/SplCheat.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/SplCheat.dfm |
---|
File deleted |
/LevText.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/SplSpeicherung.pas |
---|
File deleted |
/SplInfo.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/SplText.pas |
---|
File deleted |
/ComMain.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevInfo.pas |
---|
File deleted |
/SplSplash.dfm |
---|
File deleted |
/SplSplash.ddp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/SpaceMission.identcache |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/SplSplash.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Compiler.bdsproj |
---|
File deleted |
/SplMain.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevEdit.dof |
---|
File deleted |
/SpaceMission.bdsproj.local |
---|
File deleted |
/SplText.dfm |
---|
File deleted |
/Compiler.identcache |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevInfo.dfm |
---|
File deleted |
/SplSpeicherung.dfm |
---|
File deleted |
/SpaceMission.cfg |
---|
File deleted |
/SpaceMission.dof |
---|
File deleted |
/Musik/Title.MID |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Musik/Boss.MID |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Musik/Game.MID |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Musik/Scene.MID |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevEdit.identcache |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevEdit.cfg |
---|
File deleted |
/Dokumentation.pdf |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevSource.pas |
---|
File deleted |
/SplText.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevInfo.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevSpeicherung.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevText.pas |
---|
File deleted |
/LevEdit.todo |
---|
File deleted |
\ No newline at end of file |
/SplSpeicherung.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/SpaceMission.bdsproj |
---|
File deleted |
/SplInfo.pas |
---|
File deleted |
/ComMain.pas |
---|
File deleted |
/LevSplash.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevMain.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/SplSplash.pas |
---|
File deleted |
/LevText.dfm |
---|
File deleted |
/Unit1.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/SplInfo.dfm |
---|
File deleted |
/SplMain.pas |
---|
File deleted |
/_Projektgruppe.bdsgroup.local |
---|
File deleted |
/ComMain.dfm |
---|
File deleted |
/LevOptions.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/_Projektgruppe.bdsgroup |
---|
File deleted |
/LevEdit.bdsproj |
---|
File deleted |
/Compiler.bdsproj.local |
---|
File deleted |
/Bilder/LevSplash.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Bilder/Auswahl.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Bilder/Delphi.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Bilder/Thumbs.db |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Bilder/SplSplash.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/LevEdit.bdsproj.local |
---|
File deleted |
/VCL_PJVERSIONINFO/PJVersionInfo.htm |
---|
File deleted |
/VCL_PJVERSIONINFO/PJVersionInfo.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_PJVERSIONINFO/PJVersionInfo.pas |
---|
File deleted |
/LevSource.dfm |
---|
File deleted |
/Compiler.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Compiler.cfg |
---|
File deleted |
/Texte/Mitwirkende.txt |
---|
File deleted |
/SplMain.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Compiler.dof |
---|
File deleted |
/Compiler.dpr |
---|
File deleted |
/LevSource.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/Einstellungen/SpaceMission.ini |
---|
File deleted |
/SplCheat.pas |
---|
File deleted |
/ComLevelReader.pas |
---|
0,0 → 1,763 |
unit ComLevelReader; |
interface |
uses |
Classes; |
type |
// If you add a new enemy or item, please edit |
// - ComLevelReader.pas : EnemyTypeHasLives() |
// - GamMain.pas : TMainForm.SceneMain |
// - LevMain.pas : * GUI |
// * TMainForm.SelectedEnemyType |
// * TEnemyOrItem.Create |
// * TMainForm.DXDrawMouseMove |
// * TMainForm.DXDrawMouseDown |
// - Add integer type to OIDplus: https://hosted.oidplus.com/viathinksoft/?goto=oid%3A1.3.6.1.4.1.37476.2.8.10 |
TEnemyType = ( |
etUnknown, |
etEnemyAttacker, |
etEnemyAttacker2, |
etEnemyAttacker3, |
etEnemyMeteor, |
etEnemyUFO, |
etEnemyUFO2, |
etEnemyBoss, |
etItemMedikit |
); |
TEnemyAdvent = record |
enemyType: TEnemyType; |
x: integer; |
y: integer; |
lifes: integer; |
end; |
TLevelData = class(TPersistent) |
strict private |
procedure SortEnemies; |
strict protected |
procedure AssignTo(Dest: TPersistent); override; |
public |
RasterErzwingen: boolean; |
LevelEditorLength: integer; |
LevelName: string; |
LevelAuthor: string; |
EnemyAdventTable: array of TEnemyAdvent; |
function IndexOfEnemy(x,y:integer;enemyType:TEnemyType;lifes:integer): integer; |
procedure AddEnemy(x,y:integer;enemyType:TEnemyType;lifes:integer); |
procedure DeleteEnemy(i: integer); overload; |
procedure DeleteEnemy(x,y:integer;enemyType:TEnemyType;lifes:integer); overload; |
function CountEnemies: integer; |
function HasBoss: boolean; |
procedure Clear; |
procedure LoadFromStrings(sl: TStrings); // version 0.3 - version 1.2 files |
procedure LoadFromFile(filename: string); // version 0.2 - version 1.2 files |
procedure SaveToStrings(sl: TStrings); |
procedure SaveToFile(filename: string); |
destructor Destroy; override; |
end; |
TGameMode = (gmUnknown, gmLevels, gmRandom, gmEditor); |
TSaveData = class(TPersistent) |
strict protected |
procedure AssignTo(Dest: TPersistent); override; |
public |
Score: integer; |
Life: integer; |
Level: integer; |
GameMode: TGameMode; |
LevelData: TLevelData; |
procedure Clear; |
procedure LoadFromStrings(sl: TStrings); |
procedure LoadFromFile(filename: string); |
procedure SaveToStrings(sl: TStrings); |
procedure SaveToFile(filename: string); |
destructor Destroy; override; |
end; |
TLevelFile = record |
levelNumber: integer; |
fileLocation: string; |
isUser: boolean; |
found: boolean; |
end; |
function GetLevelFileName(lev: integer; forceuserdir: boolean): TLevelFile; |
function EnemyTypeHasLives(et: TEnemyType): boolean; |
implementation |
uses |
SysUtils, StrUtils, Global, Windows, System.Types; |
const |
// { iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 37476 products(2) spacemission(8) file-format(1) lev-sav-v12(1) } |
// https://hosted.oidplus.com/viathinksoft/?goto=oid%3A1.3.6.1.4.1.37476.2.8.1.1 |
OID_LEVSAV_VER12 = '1.3.6.1.4.1.37476.2.8.1.1'; // do not localize |
resourcestring |
SLevelFileFolder = 'Levels'; |
SLevelFileSubFolder = 'SpaceMission'; |
SExtraContentAfterLine = 'Zeile %d ist ungültig (Zusatzinfo am Ende)'; |
function GetLevelFileName(lev: integer; forceuserdir: boolean): TLevelFile; |
function _GetLevelVerzeichnisSystem: string; |
begin |
// Für die Auslieferungs-Levels |
result := OwnDirectory + SLevelFileFolder; |
end; |
function _GetLevelVerzeichnisUser: string; |
begin |
try |
result := GetKnownFolderPath(FOLDERID_SavedGames); |
except |
result := ''; |
end; |
if result = '' then |
begin |
// Pre Vista |
result := OwnDirectory + SLevelFileFolder; |
end |
else |
begin |
result := IncludeTrailingPathDelimiter(result); |
result := result + SLevelFileSubFolder; |
end; |
result := IncludeTrailingPathDelimiter(result); |
ForceDirectories(result); |
end; |
function _GetLevelFileNameUser(lev: integer): string; |
var |
old, new: string; |
begin |
new := IncludeTrailingPathDelimiter(_GetLevelVerzeichnisUser)+'Level '+inttostr(lev)+'.lev'; // Version 0.3+ Level Files // do not localize |
old := IncludeTrailingPathDelimiter(_GetLevelVerzeichnisUser)+'Lev'+inttostr(lev)+'A1.lev'; // Version 0.2 Level Files // do not localize |
if fileexists(new) then exit(new); |
if fileexists(old) then exit(old); |
exit(new); |
end; |
function _GetLevelFileNameSystem(lev: integer): string; |
var |
old, new: string; |
begin |
new := IncludeTrailingPathDelimiter(_GetLevelVerzeichnisSystem)+'Level '+inttostr(lev)+'.lev'; // Version 0.3+ Level Files // do not localize |
old := IncludeTrailingPathDelimiter(_GetLevelVerzeichnisSystem)+'Lev'+inttostr(lev)+'A1.lev'; // Version 0.2 Level Files // do not localize |
if fileexists(new) then exit(new); |
if fileexists(old) then exit(old); |
exit(new); |
end; |
var |
usr, sys: string; |
bfound: boolean; |
begin |
result.levelNumber := lev; |
usr := _GetLevelFileNameUser(lev); |
sys := _GetLevelFileNameSystem(lev); |
bfound := fileexists(usr); |
if bfound or forceuserdir then |
begin |
result.isUser := true; |
result.fileLocation := usr; |
result.found := bfound; |
exit; |
end; |
bfound := fileexists(sys); |
if bfound then |
begin |
result.isUser := false; |
result.fileLocation := sys; |
result.found := bfound; |
exit; |
end; |
result.isUser := true; |
result.fileLocation := usr; |
result.found := false; |
end; |
// this is just an example, there are many |
// different ways you can implement this |
// more efficiently, ie using a TStringBuilder, |
// or even modifying the String in-place... |
function CollapseSpaces(const S: string): string; |
var |
P: PChar; |
AddSpace: Boolean; |
begin |
Result := ''; |
AddSpace := False; |
P := PChar(S); |
while P^ <> #0 do |
begin |
while CharInSet(P^, [#1..' ']) do Inc(P); |
if P^ = #0 then Exit; |
if AddSpace then |
Result := Result + ' ' |
else |
AddSpace := True; |
repeat |
Result := Result + P^; |
Inc(P); |
until P^ <= ' '; |
end; |
end; |
{ TLevelData } |
procedure TLevelData.AssignTo(Dest: TPersistent); |
var |
DestLevelData: TLevelData; |
i: integer; |
begin |
DestLevelData := Dest as TLevelData; |
if Assigned(DestLevelData) then |
begin |
DestLevelData.RasterErzwingen := Self.RasterErzwingen; |
DestLevelData.LevelEditorLength := Self.LevelEditorLength; |
DestLevelData.LevelName := Self.LevelName; |
DestLevelData.LevelAuthor := Self.LevelAuthor; |
SetLength(DestLevelData.EnemyAdventTable, Length(Self.EnemyAdventTable)); |
for i := 0 to Length(Self.EnemyAdventTable)-1 do |
begin |
DestLevelData.EnemyAdventTable[i] := Self.EnemyAdventTable[i]; |
end; |
end |
else |
begin |
inherited; |
end; |
end; |
procedure TLevelData.Clear; |
begin |
SetLength(EnemyAdventTable, 0); |
LevelEditorLength := DefaultLevelLength; |
LevelName := ''; |
LevelAuthor := ''; |
end; |
function TLevelData.CountEnemies: integer; |
begin |
result := Length(EnemyAdventTable); |
end; |
procedure TLevelData.DeleteEnemy(i: integer); |
var |
j: integer; |
begin |
for j := i+1 to CountEnemies-1 do |
begin |
EnemyAdventTable[j-1] := EnemyAdventTable[j]; |
end; |
SetLength(EnemyAdventTable, Length(EnemyAdventTable)-1); |
end; |
procedure TLevelData.DeleteEnemy(x, y: integer; enemyType: TEnemyType; |
lifes: integer); |
begin |
DeleteEnemy(IndexOfEnemy(x, y, enemyType, lifes)); |
end; |
destructor TLevelData.Destroy; |
begin |
Clear; |
inherited; |
end; |
function TLevelData.HasBoss: boolean; |
var |
i: integer; |
begin |
for i := 0 to Length(EnemyAdventTable) - 1 do |
begin |
if EnemyAdventTable[i].enemyType = etEnemyBoss then |
begin |
result := true; |
exit; |
end; |
end; |
result := false; |
end; |
procedure TLevelData.AddEnemy(x,y:integer;enemyType:TEnemyType;lifes:integer); |
resourcestring |
SInvalidXCoord = 'X-Koordinate muss ohne Rest durch %d teilbar sein'; |
SInvalidYCoord = 'Y-Koordinate muss ohne Rest durch %d teilbar sein'; |
begin |
SetLength(EnemyAdventTable, Length(EnemyAdventTable)+1); |
if enemyType = etEnemyMeteor then lifes := 0; |
if RasterErzwingen then |
begin |
if x mod LevEditRasterW <> 0 then raise Exception.CreateFmt(SInvalidXCoord, [LevEditRasterW]); |
if y mod LevEditRasterH <> 0 then raise Exception.CreateFmt(SInvalidYCoord, [LevEditRasterH]); |
end; |
if lifes > MaxPossibleEnemyLives then lifes := MaxPossibleEnemyLives; |
EnemyAdventTable[Length(EnemyAdventTable)-1].x := x; |
EnemyAdventTable[Length(EnemyAdventTable)-1].y := y; |
EnemyAdventTable[Length(EnemyAdventTable)-1].enemyType := enemyType; |
EnemyAdventTable[Length(EnemyAdventTable)-1].lifes := lifes; |
end; |
function TLevelData.IndexOfEnemy(x, y: integer; enemyType: TEnemyType; |
lifes: integer): integer; |
var |
i: integer; |
begin |
for i := 0 to Length(EnemyAdventTable) - 1 do |
begin |
if (EnemyAdventTable[i].x = x) and |
(EnemyAdventTable[i].y = y) and |
(EnemyAdventTable[i].enemyType = enemyType) and |
(EnemyAdventTable[i].lifes = lifes) then |
begin |
result := i; |
exit; |
end; |
end; |
result := -1; |
end; |
procedure TLevelData.LoadFromStrings(sl: TStrings); |
resourcestring |
SInvalidLevelFile = 'Level-Format nicht unterstützt oder Datei ist beschädigt'; |
SEnemyTypeNotImplemented = 'Gegner-Typ %d wird nicht unterstützt (Alte Spielversion?)'; |
var |
curline: integer; |
z, act: integer; |
sl2: TStringList; |
tmpX, tmpY, tmpLifes: integer; |
tmpEnemy: TEnemyType; |
ergebnis: string; |
ary: TStringDynArray; |
sLine: string; |
iEnemy: Integer; |
begin |
Clear; |
LevelEditorLength := DefaultLevelLength; |
LevelName := ''; |
LevelAuthor := ''; |
if sl.Strings[0] = '; SpaceMission 0.3' then // do not localize |
begin |
{$REGION 'Backwards compatibility level format 0.3 (convert to 0.4)'} |
sl.Strings[0] := '; SpaceMission 0.4'; // do not localize |
sl.Insert(1, '; LEV-File'); // do not localize |
{$ENDREGION} |
end; |
if (sl.Strings[0] = '; SpaceMission 0.4') and // do not localize |
(sl.Strings[1] = '; LEV-File') then // do not localize |
begin |
{$REGION 'Backwards compatibility level format 0.4 (convert to 1.0)'} |
sl2 := TStringList.Create; |
try |
z := 0; |
act := 0; |
while z < sl.Count do |
begin |
inc(z); |
if z > 2 then inc(act); |
if act = 5 then act := 1; |
ergebnis := sl.Strings[z-1]; |
if ergebnis = '; SpaceMission 0.4' then // do not localize |
sl2.Add('; SpaceMission 1.0') // do not localize |
else |
begin |
if (ergebnis = '30000') and (z = 3) then |
sl2.Add(IntTostr(DefaultLevelLength)) |
else |
begin |
//if not (((ergebnis = '0') and (z = 4)) or ((ergebnis = '-624') and (z = 5)) or ((ergebnis = '222') and (z = 6)) or ((ergebnis = '3') and (z = 7))) then |
if (z < 4) or (z > 7) then |
begin |
if act = 4 then |
sl2.Add(inttostr(strtoint(ergebnis) + 32 - (5 * (strtoint(ergebnis) div 37)))) |
else |
sl2.Add(Ergebnis); |
end; |
end; |
end; |
end; |
sl.Text := sl2.Text; |
finally |
FreeAndNil(sl2); |
end; |
{$ENDREGION} |
end; |
if (sl.Strings[0] = '; SpaceMission 1.0') and // do not localize |
(sl.Strings[1] = '; LEV-File') then // do not localize |
begin |
{$REGION 'Level format 1.0'} |
LevelEditorLength := StrToInt(sl.Strings[2]); |
curline := 3; |
while curline < sl.Count do |
begin |
iEnemy := strtoint(sl.Strings[curline]); |
if TEnemyType(iEnemy) = etUnknown then // <-- for some reason, etUnknown will also be set if iEnemy is too large. This is actually good! |
raise Exception.CreateFmt(SEnemyTypeNotImplemented, [iEnemy]); |
tmpEnemy := TEnemyType(iEnemy); |
Inc(curline); |
tmpX := strtoint(sl.Strings[curline]); |
Inc(curline); |
tmpY := strtoint(sl.Strings[curline]); |
Inc(curline); |
tmpLifes := strtoint(sl.Strings[curline]); |
Inc(curline); |
AddEnemy(tmpX, tmpY, tmpEnemy, tmpLifes); |
end; |
{$ENDREGION} |
end |
else if (SameText(sl.Strings[0], '['+OID_LEVSAV_VER12+']')) then |
begin |
{$REGION 'Level format 1.2'} |
for curline := 1 to sl.Count-1 do |
begin |
sLine := sl.Strings[curline].Trim; |
if (sLine = '') or (Copy(sLine, 1, 1) = ';') then continue; |
ary := SplitString(CollapseSpaces(sLine), ' '); |
if SameText(ary[0], 'Width') then // do not localize |
begin |
LevelEditorLength := StrToInt(ary[1]); |
if (Length(ary) > 2) and (Copy(ary[2], 1, 1) <> ';') then |
raise Exception.CreateFmt(SExtraContentAfterLine, [curline+1]); |
end |
else if SameText(ary[0], 'Name') then // do not localize |
begin |
LevelName := Trim(Copy(sLine, Length(ary[0])+2, Length(sLine))); |
end |
else if SameText(ary[0], 'Author') then // do not localize |
begin |
LevelAuthor := Trim(Copy(sLine, Length(ary[0])+2, Length(sLine))); |
end |
else if SameText(ary[0], 'Enemy') then // do not localize |
begin |
iEnemy := strtoint(ary[1]); |
if TEnemyType(iEnemy) = etUnknown then // <-- for some reason, etUnknown will also be set if iEnemy is too large. This is actually good! |
raise Exception.CreateFmt(SEnemyTypeNotImplemented, [iEnemy]); |
tmpEnemy := TEnemyType(iEnemy); |
tmpX := strtoint(ary[2]); |
tmpY := strtoint(ary[3]); |
tmpLifes := strtoint(ary[4]); |
if (Length(ary) > 5) and (Copy(ary[5], 1, 1) <> ';') then |
raise Exception.CreateFmt(SExtraContentAfterLine, [curline+1]); |
AddEnemy(tmpX, tmpY, tmpEnemy, tmpLifes); |
end; |
end; |
{$ENDREGION} |
end |
else |
begin |
raise Exception.Create(SInvalidLevelFile); |
end; |
SortEnemies; // Sortierung nach X-Koordinate ist sehr wichtig für das Spiel! |
end; |
procedure TLevelData.LoadFromFile(filename: string); |
var |
sl: TStringList; |
i, j: integer; |
temp: string; |
m: array[1..6] of tstrings; |
begin |
sl := TStringList.Create; |
try |
if EndsText('A1.lev', filename) then // do not localize |
begin |
{$REGION 'Backwards compatibility level format 0.2 (split into 5-6 files; convert to 0.3)'} |
m[1] := TStringList.create; |
m[2] := TStringList.create; |
m[3] := TStringList.create; |
m[4] := TStringList.create; |
m[5] := TStringList.create; |
m[6] := TStringList.create; |
try |
for i := 1 to 6 do |
begin |
filename[Length(filename)-4] := IntToStr(i)[1]; // ...A2.sav, ...A3.sav, etc. |
if FileExists(filename) then |
m[i].loadfromfile(filename); |
end; |
m[1].strings[0] := '-624'; |
if m[6].Text = '' then m[6].Text := '30000'; |
sl.Add('; SpaceMission 0.3'); // do not localize |
sl.Add(temp); |
for j := 0 to m[1].count-2 do |
begin |
for i := 0 to m[1].count-2 do |
begin |
if strtoint(m[1].strings[i]) > strtoint(m[1].strings[i+1]) then |
begin |
m[1].exchange(i, i+1); |
m[2].exchange(i, i+1); |
m[3].exchange(i, i+1); |
m[4].exchange(i, i+1); |
m[5].exchange(i, i+1); |
end; |
end; |
end; |
for i := 0 to m[3].count-1 do |
begin |
for j := 1 to 4 do |
begin |
if j = 1 then sl.Add(m[3].strings[i]); |
if j = 2 then sl.Add(m[1].strings[i]); |
if j = 3 then sl.Add(m[2].strings[i]); |
if j = 4 then sl.Add(m[4].strings[i]); |
end; |
end; |
finally |
FreeAndNil(m[1]); |
FreeAndNil(m[2]); |
FreeAndNil(m[3]); |
FreeAndNil(m[4]); |
FreeAndNil(m[5]); |
FreeAndNil(m[6]); |
end; |
{$ENDREGION} |
end |
else |
begin |
sl.LoadFromFile(filename); |
end; |
LoadFromStrings(sl); |
finally |
FreeAndNil(sl); |
end; |
end; |
procedure TLevelData.SaveToStrings(sl: TStrings); |
resourcestring |
SLevelEnemyLineComment = '; Type XCoord YCoord Lives'; |
var |
i: integer; |
begin |
sl.Clear; |
sl.Add('['+OID_LEVSAV_VER12+']'); |
if LevelName <> '' then sl.Add('Name ' + LevelName); // do not localize |
if LevelAuthor <> '' then sl.Add('Author ' + LevelAuthor); // do not localize |
sl.Add('Width ' + IntToStr(LevelEditorLength)); // do not localize |
SortEnemies; |
sl.Add(SLevelEnemyLineComment); |
for i := 0 to Length(EnemyAdventTable)-1 do |
begin |
sl.Add(Trim( |
'Enemy'.PadRight(6, ' ')+ // do not localize |
' '+ |
IntToStr(Ord(EnemyAdventTable[i].enemyType)).PadRight(6, ' ')+ |
' '+ |
IntToStr(EnemyAdventTable[i].x).PadRight(6, ' ')+ |
' '+ |
IntToStr(EnemyAdventTable[i].y).PadRight(6, ' ')+ |
' '+ |
IntToStr(EnemyAdventTable[i].lifes).PadRight(6, ' ')+ |
' ' |
)); |
end; |
end; |
procedure TLevelData.SaveToFile(filename: string); |
var |
sl: TStringList; |
begin |
sl := TStringList.Create; |
try |
SaveToStrings(sl); |
sl.SaveToFile(filename); |
finally |
FreeAndNil(sl); |
end; |
end; |
procedure TLevelData.SortEnemies; |
var |
i, n: integer; |
e: TEnemyAdvent; |
begin |
// Bubble Sort Algorithmus |
for n := Length(EnemyAdventTable) downto 2 do |
begin |
for i := 0 to n - 2 do |
begin |
if |
// Sort by X-coord (important for the game!) |
(EnemyAdventTable[i].x > EnemyAdventTable[i+1].x) |
or |
// Sort by Y-coord (just cosmetics) |
((EnemyAdventTable[i].x = EnemyAdventTable[i+1].x) and (EnemyAdventTable[i].y > EnemyAdventTable[i+1].y)) |
then |
begin |
e := EnemyAdventTable[i]; |
EnemyAdventTable[i] := EnemyAdventTable[i + 1]; |
EnemyAdventTable[i + 1] := e; |
end; |
end; |
end; |
end; |
{ TSaveData } |
procedure TSaveData.AssignTo(Dest: TPersistent); |
var |
DestSaveData: TSaveData; |
begin |
DestSaveData := Dest as TSaveData; |
if Assigned(DestSaveData) then |
begin |
DestSaveData.Score := Self.Score; |
DestSaveData.Life := Self.Life; |
DestSaveData.Level := Self.Level; |
DestSaveData.GameMode := Self.GameMode; |
if not Assigned(DestSaveData.LevelData) then DestSaveData.LevelData := TLevelData.Create; |
DestSaveData.LevelData.Assign(Self.LevelData); |
end |
else |
begin |
inherited; |
end; |
end; |
procedure TSaveData.Clear; |
begin |
Score := 0; |
Life := 0; |
Level := 0; |
GameMode := gmUnknown; |
FreeAndNil(LevelData); |
end; |
destructor TSaveData.Destroy; |
begin |
Clear; |
inherited; |
end; |
procedure TSaveData.SaveToStrings(sl: TStrings); |
var |
sl2: TStringList; |
begin |
sl2 := TStringList.Create; |
try |
sl.Add('['+OID_LEVSAV_VER12+']'); |
sl.Add('Score ' + IntToStr(Score)); // do not localize |
sl.Add('Lives ' + IntToStr(Life)); // do not localize |
sl.Add('Level ' + IntToStr(Level)); // do not localize |
sl.Add('Mode ' + IntToStr(Ord(GameMode))); // do not localize |
LevelData.SaveToStrings(sl2); |
sl2.Delete(0); // Delete additional level signature |
sl.AddStrings(sl2); |
finally |
FreeAndNil(sl2); |
end; |
end; |
procedure TSaveData.LoadFromStrings(sl: TStrings); |
resourcestring |
SInvalidFile = 'Spielstand-Format nicht unterstützt oder Datei beschädigt'; |
var |
curline: Integer; |
ary: TStringDynArray; |
sLine: string; |
begin |
if (sl.Strings[0] = '; SpaceMission 1.0') and // do not localize |
(sl.Strings[1] = '; SAV-File') then // do not localize |
begin |
Score := StrToInt(sl.Strings[2]); |
Life := StrToInt(sl.Strings[3]); |
Level := StrToInt(sl.Strings[4]); |
GameMode := TGameMode(StrToInt(sl.Strings[5])); |
if Assigned(LevelData) then FreeAndNil(LevelData); |
end |
else if SameText(sl.Strings[0], '['+OID_LEVSAV_VER12+']') then |
begin |
Score := 0; |
Life := 0; |
Level := 0; |
GameMode := gmUnknown; |
for curline := 1 to sl.Count-1 do |
begin |
sLine := sl.Strings[curline].Trim; |
if (sLine = '') or (Copy(sLine, 1, 1) = ';') then continue; |
ary := SplitString(CollapseSpaces(sLine), ' '); |
if SameText(ary[0], 'Score') then // do not localize |
begin |
Score := StrToInt(ary[1]); |
if (Length(ary) > 2) and (Copy(ary[2], 1, 1) <> ';') then |
raise Exception.CreateFmt(SExtraContentAfterLine, [curline+1]); |
end |
else if SameText(ary[0], 'Lives') then // do not localize |
begin |
Life := StrToInt(ary[1]); |
if (Length(ary) > 2) and (Copy(ary[2], 1, 1) <> ';') then |
raise Exception.CreateFmt(SExtraContentAfterLine, [curline+1]); |
end |
else if SameText(ary[0], 'Level') then // do not localize |
begin |
Level := StrToInt(ary[1]); |
if (Length(ary) > 2) and (Copy(ary[2], 1, 1) <> ';') then |
raise Exception.CreateFmt(SExtraContentAfterLine, [curline+1]); |
end |
else if SameText(ary[0], 'Mode') then // do not localize |
begin |
GameMode := TGameMode(StrToInt(ary[1])); |
if (Length(ary) > 2) and (Copy(ary[2], 1, 1) <> ';') then |
raise Exception.CreateFmt(SExtraContentAfterLine, [curline+1]); |
end; |
end; |
if Assigned(LevelData) then FreeAndNil(LevelData); |
LevelData := TLevelData.Create; |
LevelData.RasterErzwingen := false; |
LevelData.LoadFromStrings(sl); |
end |
else |
begin |
raise Exception.Create(SInvalidFile); |
end; |
end; |
procedure TSaveData.LoadFromFile(filename: string); |
var |
sl: TStringList; |
begin |
sl := TStringList.Create; |
try |
sl.LoadFromFile(filename); |
LoadFromStrings(sl); |
finally |
FreeAndNil(sl); |
end; |
end; |
procedure TSaveData.SaveToFile(filename: string); |
var |
sl: TStringList; |
begin |
sl := TStringList.Create; |
try |
SaveToStrings(sl); |
sl.SaveToFile(filename); |
finally |
FreeAndNil(sl); |
end; |
end; |
function EnemyTypeHasLives(et: TEnemyType): boolean; |
begin |
result := (et <> etEnemyMeteor) and (et <> etItemMedikit); |
end; |
end. |
/ENU/GamSplash.dfm |
---|
0,0 → 1,10055 |
object SplashForm: TSplashForm |
Left = 241 |
Top = 158 |
BorderIcons = [] |
BorderStyle = bsNone |
Caption = '"Please wait..."' |
ClientHeight = 480 |
ClientWidth = 640 |
Color = clBlack |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poScreenCenter |
TextHeight = 13 |
object SplashImage: TImage |
Left = 0 |
Top = 0 |
Width = 640 |
Height = 480 |
AutoSize = True |
Picture.Data = { |
0954506E67496D61676589504E470D0A1A0A0000000D49484452000002800000 |
01E00802000000BAB34BB30000000970485973000004BB000004BB016E1F0EAE |
0000000467414D410000B18E7CFB51930000FFFF4944415478DAD4BD79B86D55 |
75A73DF739A4AD4AA51ACB5E5AE945AEA022229644B14220420C8140E8A2A0F4 |
207D4FE8EEA51301810B4A495D90D8017628A2C1520491468242A174A2D15499 |
EA53E94BEEDDDF8FFD3ADF8CB3F6D927A1EAFBBE27B5FE38CF3E7BAF35D79C63 |
8E39FA66D45A9B9B9BFBC7FFF81F8FC7E3FFF5BFFED7DFFCCDDFFCECCFFEECEA |
D5ABE7E7E7F3EFCFFFFCCF3F33B9FEE93FFDA77FFAA77FBAD65A6BFDE4273FC9 |
4FDB6FBFFD5D77DD95EF73431EFFEBBFFEEB356BD6FCE22FFEE25FFEE55FE69E |
7CFF0BBFF00B7FF5577FF5333FF333F9DC665C7963DE95017FEEE77E2E23ACBF |
FEFADFFBDEF7F27D9EE2D78C9C5FF9F08217BCE0BFFDB7FFC6ACF83573FEF33F |
FFF34C35BFE6EDBC313F650299C9FFFC9FFF33C332990C92EF734FEE644A1967 |
341AE559BECF6DACE29FFC937FF2677FF6670CCEC27367FE7267AEFCCB07BEC9 |
6D7FF1177F91FBF399E5F36BBECF64F27D66952FF337AFCB9D0157DE956F32B7 |
803AAFCEF78B0287F7E6C17CF01540DBB7E4D78C9071D659679D3FFEE33F66B6 |
9958D698FBF36FC09BDB02B17C6037014856CA372F7CE10BFFCB7FF92FA79E7A |
EAFBDFFFFEFFFEDFFF7B06CF46FFD7FFFA5F33AB8C909BFFD13FFA47D9F70C9B |
7F01547ECABFC02A40661A9B6CB2C91FFEE11F6651CF7BDEF33213A69157E45D |
792AF301DAB9FED93FFB67997F5ECDF8B9F26B469B8527793023BCF6B5AFBDEF |
BEFB32FFDC1C6800B78CEF6C337260CE7CB20A379711801EA0CEE73CF53FFEC7 |
FF6021DE36B89EFFFCE7FFC99FFC493E5C71C515871F7E78DDDFCC21180522E5 |
A5997CFE7DC94B5E92856786F9F7577EE557EEBDF75E0E54BE0996FED22FFD12 |
D3E6D94035FFFEF22FFF72EEC9AFF91EBC0D00F37D66951BB2967C030A019F7C |
00679C646ECB2B382F995BDE921BF26FFEB2EA7CC34AF35456CD39CDF79943DE |
9EEFF32B90C9BBCE3BEFBC33CE3823CFE60616029204BB7EF0831F0420391AC1 |
6A0E5A769F85CF4D2EC09E99671A192D9F39B69088DC09F4F8FBB297BD2C6739 |
DF07E5DEF9CE77DE79E79D193FF764F9E0E47FFC8FFF915767A8DC96BF995576 |
2A930450B9195CCD6879C58B5FFCE23FFAA33F5A7BEDB5F377B3CD367BF4D147 |
395F7930D0C88483C3793063B2F680250F6640A80A8785755D7EF9E5C71D775C |
1EE4D433CEB265CB3266A09DA7A0002C93C9F06086058CC004F807DA792A7F73 |
C3BFF817FF22B89A9B734FFECD3D5960A09AC1BFF9CD6FE65DF932DF00463036 |
9FF376095ABEF9E7FFFC9F6762B92D10086432BDFC9B07F38AFC9BDB58512E88 |
9E47C05390BFCC9CBFA053DE18E0641CE8C3BFFC97FF327B0D26640E50A1BF99 |
5C994006CF232C8761734FF0014ACB91E75D2C81D30A8DE5ED192D5FFED66FFD |
D60D37DC208DCAE433C88F7FFCE3FC9B0FF93EA4298BCA66FDE7FFFC9FC1F680 |
9D1371E491475E70C1051913220353C80D2F7AD18BDEF086377CFCE31FCF5A5C |
B2EFF5B0E7CE830E3AE8031FF840C891F48ABD96B4C2BFF85E26521715F40B26 |
3FFDF4D339C2DC9FF94024615B5248E700A8D95F0035CA54B297CC8C79409E18 |
D133CF2BD99E4C8B33900F793CA70882E2A1CD3D99741E07D08B12383726F704 |
F4F9BCF9E69B6731FFE93FFD2788544683A166913FFCE10F7D2A5726C962984F |
80987F33E76C55C66139A12F59FCA1871EFAE10F7F38BFE63372462696EDCCDF |
BC9A25C09503C4CC242FCD42B2EA0C9EB7672D3066F6B2E2311FF89C7771C219 |
012C01E1C02D773D8357529B09E7BDB3A4930C9547004EE60F7264B43C9E2583 |
949946702EA81CC2C1538BF2B07C9F71329FBC31EB42C8801ED543557707AA0D |
C9431282E7E591002484233B05F5C96855326017200AF93253CD411D4C29CB07 |
E6B90154992588E47539EA3BECB0C31D77DC114C6339797B0E6776396FCF5FD0 |
1DB4E603878D09B0907CFFD297BE344F65F21924742AA3650E4A33D3EF0DB664 |
5D7984456599AB56AD7AD7BBDE059BC9B31916390319828307C2F3DE7C13F042 |
B28124E211EBCDE0F91736C34BF353FE150F416F4EA580CABF6151795DA08A10 |
00AAE4C140C3A79843BE418E042C9588705B26EF2439CB6166FFE13FFC87DC10 |
592A6BCF97871D76D835D75C130CCFCDD9CDC82521114148E0ECA140C002CF91 |
18722EF2C6C02AD3CB07609579E6FB6C3D141FE865DAD911241E61C52A7243C6 |
47628368B0D87C50C2434F8056725A3326948EF3C580E06AA697C920B8303247 |
2377667519077C067F32ABC099A3C7E4A5939C62A84DC6C9B09E650842E82FA7 |
2027F4473FFAD180F4412D33C8BAEBAEFBE4934F42F406C41A5AE74F7CE01403 |
7F6602A0C0B76C4DA601E51CBC51A65BCF5AA69A0D62811CEA4083CDF211C46E |
F617C80414D9B2DC9957231E05141C074990FC06F8700AFC12C10EB0E4599084 |
85C0ECDB448D01A45954EECF3D6C41E6C38B44F5480CA160994FF62ED08E0007 |
936226428343C7E943CEF39864F0D34F3FFDFCF3CFCFF8192DD4D5B74F5345D5 |
3F9455D01EE87116F27D5E04F71DC09C412005CF72C0AC16411B792DDF56CD26 |
73CD390CA2E46588DB6866B92049014DEEA9080AD7E1B44F33605101FAC5FE31 |
69B4C9FC4541CC676ECE7CF8373FB1C2681BD088CCBC1E24363B13CB4F9912DF |
C03C90625497595D6EB8ECB2CB4E3EF9E42C04A2C06D1CB31C8CEF7FFFFBADAB |
3E88E76DC68518A1BC93CFC8ECB3F8CADF79212EC01E10849906E065E1D963F4 |
6364266D0F596F3E87768480224FB0416C4AF611BA005A4038180A8E8594005A |
0711AB9A78CC31C784D3C34278295B894016FA2523CF97882FFBEEBBEF55575D |
F5F297BF3C54263084A6A094ECB8E38ED17E98DB2C4081F18808AC9D9943BF32 |
B7B0673433BE84974C33E00033B7B5222D6532E79C73CE89279EB8E87BE18581 |
3962281B91F11159D4A137DC70C3C71F7F1C1CC608D426EA9132566012AE96B7 |
9F7AEAA979F6ACB3CECAE3D21AFEE64EC828F225F26BFE06F3590EC8CC9DBE1D |
0A853C94C751C1B901F603A064F09C380E3B6265669B19AAD043E54133842D86 |
82DA7A707891BBC35F7ECD1579779F7DF6F175600EBC1C0CACEA1197B6AB8C1C |
9AC824198D4738C2DE8F4E0C0FE6BD0E08116C13158AC308A1D47A71E185179E |
70C209DCCC4222514513CABFD9A9EDB7DFFE339FF90CBBC946B42E37B335F91E |
B2060BC9CC813FF8997F43349E78E2893CE84CBC946C20771936E0CD9DD572C6 |
7AABEA86A89D9B77DA69A72F7DE94B594B1EC9EB82CC2CBC025319C5DDA9DA42 |
EBAAB0670D9A5FE9156290E687AA6648BD4515E5AAE933DB1632609EF5F0E633 |
148CDD6140D100806407B3EAE0430E78969C330B1671F0F30AA4109931DB8415 |
8461397A4C29BFE62D39354C83455566C48AB454714C32F2061B6C1024C1E2A2 |
0D55711075AB4D04FA9D77DE390A3D26B13C8E18075584F208F3FA61C4B2E1A3 |
1C57860E14B20D5921CB0B2DCE0DD842031A2C3FAC1939948304B9E7F0284329 |
D0D5ED44AA523647A2848ED73D830A00DF238F3CF2E28B2F8EDC1452CEE39CC3 |
56C4795007E15AB46310CFB3F7E72D6CB6C24E8E0D26A94079D75D77FDD4A73E |
9507232BFDF8C73F96302D4AAF513195D1D85105B4016A2ED88082AC4B70EB6C |
D036DB6C73FFFDF77368350FBA46588567066B2DBA429804F661443644486437 |
268910E701C853C8C5C19B8C16BC8FEEF8D0430FE5D8836DF2DA2BAEB8229339 |
EDB4D3809E0603CD4A7969F62B2CAA52010EB9FF8630AD58B1E280030E980558 |
3FB3E9F99069E3BCC81A333774146C983260D5020779C52B5E11187EEE739FCB |
6E069E59726EAE947DF05E44CC2A652B17A3DB05A3F6DE7BEFA8C5194A1EB3DE |
7AEB3DFDF4D3CAFBB94796CF1966F92AAF08E081157B8165120E1AD29319227E |
E55F9C1A5B6FBDF5830F3E08C5E7ECE4D0B14C841B6C986AE7198D8554410AD2 |
C099E580A350B689BAA00548E327A68E6C7AA85B4097D13281BCB7720EF4CEBC |
2E3B820A92B7E4CE8D37DEF8D1471FAD8754BC8532A0B4E1D7901A5626548D87 |
FC5B656E1D559961B0E8631FFB58E69C79E6455938665276FFE1871FCE36651A |
2040E60FD9C9E3F91762EDBE64B1B901212CFF627B40C2639B9086D9D0DD77DF |
FDBAEBAED302C42145778463712EB078617709AEB6899EC0AF18CC733F980373 |
CD37471D7554E483E00F071C83369670250F84039528A1E4BF758FD4C0B83FFA |
6204058E5280F38E77BC63E5CA95412DCF9A5214D303386D22C8663E58206611 |
3A69FB8001E7D73C1E760807D16305628087C8E59870323D10DE7B20562AC10A |
315000A85F702F9BFEC8238F0C3C71F8745A97E47850F346C8510E329A64F66B |
B3CD367BECB1C790C0248F921A9C74192133DC76DB6DEFB9E79E2A46E41E2500 |
6C87EEACF6D4D149279D74D14517E5B160464E4E5013092BABCDDF5FFDD55FFD |
FDDFFF7DC11A75E1924B2EC9F74108ECB78BDA3C5B77913EA70BDD1A8756B03F |
AFC80AB34FD056C85F161C0A88F8CFE681E2596A40909FF254A6A485193492C8 |
625DC962435340D0B090F0F57CC60CC23620AB86EFE68DB8C3F317982CC18099 |
39EF5281A81618442AA6AD234DA5B92DB4714156EAFCB186715B451AFDB58C2F |
AF424F6D5DB168DDFDC3F6A3A24129320EE6C7FABA90A4FCCA082E0D6EADAF0B |
B52F53E538E91503CBF32CFBE237483CDC094D076E4B00168CAFDE1027093509 |
97223840FF8D1AB0589EA72EBDF4D2638F3D16FE94A5A1A9B39C591B0AEE3179 |
F85FFE664559428E287C3447264882BB1714CD693AE59453C2E9EFBAEB2EC53B |
CF39D41CDBBB1B11F8E39DC59600E7630BB04670D698466655CD0C7819C167CC |
B9D833105BB92D6826B3C90891628F38E208F9933C2F73CB2BA0A41599C552B5 |
8DBC6BABADB6FAD18F7E94C721E8F00F8DCFD5A901F9030DB04561B104B60120 |
762629571876485EB59A563557826E780AAB66AAF0B95674EE3A936CC4DBDEF6 |
B610B4EC94765AC5A320529E459AC1F987A1181D979940A3F246F0010D35F8BC |
FEFAEB47F10550820B36D026A20C50CDBBB081E381D6AF87D4A5B157568AB693 |
2F03E7FCCDB4F7D8638F7FFB6FFF6D8662CE838B01C17F4D08831BE4CDAD0B88 |
E28932016E2FF5287EF528A96EF2BDD10FC8F1D5D6ED516AC57E2BA97758BD8D |
BEA275CF63C0BBD75E7B5D7FFDF579DD8D37DE1879B775A91152C9923109E058 |
45DC54C44467D5046868823664F52583900C20C8CD7A4654D2C040F170101AD2 |
BAF13204E790430EC9FCC352A346E7B000ED6A9F78F66FEE0E343363E078DE79 |
E78527855EE7CBD6ADE7AADB482BEC81AEA959F4AB3D970B3E0A91955F029D68 |
A501E57EFBED1749107711180C498A04970386D4836982F82975442D69B84F94 |
D79879F03BE727BC366220B40CC508CB7C066103E49A6CEAF4853708D30A811E |
22873B34B008E9F3AFD6AA6A41929DA09E1A089007817F0D0D1077F5F86A36C7 |
D8E5D9D03EC9C89AEE7D0423369E6C28113497C74331F1DC20AA2BDE4E1FBC7A |
B159EE35D265205F892902841A0FE49E91F520E899E6B3DE148DB7E87FD32668 |
A6171296F7E6988540FFE5E49A3561CCB36E1933441D3418C4A511D3149A1896 |
896440E0558E55E5376EBDF673C3AFD84775773922568D1A63880E843A95C9E4 |
4E6C1B1E19B00546187E73FBEDB79F70C209E79E7B2ED6F2564272D85F5E8452 |
45F084267A8F150E1A90844899D0C79C0B1405095C6ECEAB31B967F0003037E7 |
7061A54741E7F431ECC0A77BC61967448F24E0433AE32E037011A92A8E794BE6 |
ACCEED42086B5AB1624548471E0FA7E7BD8161FE8D2E71F0C10783F04490E08A |
82172A3029EC6651599AD10608977A3D31C9E85C6026803123471A70151228C8 |
05EABBBBDFBAA00CD2F20D2181B921043D43711CC46D999966D2568CBDFC6B58 |
C0C004AD9BAC8A475831F52EB76EC5AC1AED85175E78F5D5570756A106795679 |
A80ABEADEBD9AECEB81FA4762C616E2EF44AEF64EBB671C7514963AA04D3B141 |
C83D441A824E21DDC18A8C8FA8A4819673A4B68390042E656BF239A81EB6929B |
33A0B7F9415AA4DD1E991EF3307E68BEDC65975DEEBDF75EF8B7024A5B689F18 |
E999685D56C572C8B221676D22C0E643040DD4D0488B59064B5D947E3D57DF67 |
CEDE59679D252BC2061E51FD81071EF8CC673EC397C4DD3937C3379C3637645F |
F3A5875CA32B086DF0973E80FC25A80715A475EB476491B3CF3EFB577EE557EE |
BFFFFE9CCF430F3DF4F2CB2F5F625D986D0108B14E0426640E79D7DA6BAF1DF9 |
06D4D40F67805F2B1A803B04B6551F4CE09FD1AADD0F320469E366281D0E48DD |
BD355C859F3C906ADB21A93FF8C10F5A09AE36C61B7104A04520BDF5D65B032E |
CFA483545A308D0F99C33AEBACF3F4D34F23A8E611CC7D9A07F42741CBE4B58E |
59654F0901CC385325869F43CBFC091221EC1CB183A3888A03BD18D0772F3460 |
0411F08A77716C2285844F649E608E4663B7C6385B9CDFAD5B35D0FBB7DB6EBB |
CF7EF6B346705451A62203BB867E9C499E7EFAE9D75E7B2DF676C84D94A1830E |
3A28930C5DD68AAB5F4D914B7D054F13D611C4054C64357301F14ECF0EA605C4 |
5079F3ACF3CE5FC082111898C3DBEAA173FBD4CE33ED2C04EA9F2FB12B54CF25 |
4C05B4D13E09056410681F2AAF8A0BFE23219C47020DB0379B98494ABBF378D6 |
ABAE9FC9C30F32324C3A68F0D4534F81EDC01CFA8E2809AB76BBA1600846A79D |
76DA0D37DC90C3654823E41E175B5E010E4894C1937CC85BF068B4EEB8818E57 |
572E87CE830F4A8BCC6C811B3AA0CC487B8440238B6FB1C5160F3FFC70EB1AD1 |
A221B4B93F4BCEFD481804C9CB60A63D6B0306CCE788C2F9D76082561CC3E046 |
B60941B646D1C3E73076E65F1DD206402137C3DDF3D4C9279F1CCEA27A908D26 |
E9007C80EE0D522108756283FC573D87B30391C9D961282CAFAC0B0355BE21AC |
3DF713A28F56C3EE40B4A1D8238805A61BE917E2307BCF4E67944019D4C99C0E |
3CF0C0CB2EBB6C8914A3E7CA80736C588F0619564B1A0C2C1654D349C332905E |
2522A038465AF646F8826458812055FEE4980C027A698EE30A9EE50068E71C5C |
7976D9B2650F3DF4100948D00208964630E917D1010AD735F87CD4C3AD8D4AAB |
BC073D3B1819B212420CC7AA5E4CA513D892EA828922D5F2836914FBD8BAEBAE |
9BBD0E82E645CC2D6FC1E9A2D787BF3BEEB8E397BEF4255FC154F314E47B09D7 |
4396BFCD36DB4424444CC9DC80439DBF669C2A026AF862738DE6E5B842C2182A |
A0CEF79936A0FED0873E946379D2492745FAF9D3C9152DF089279EF02C49E6A4 |
1198733D54FBEFBFFFAA55AB08BA811A467BCEDC5062500AC5BDBC347FA1D7C4 |
526836AF263BB90E9A1FB659D60299C88A30D46BFC4086F371D24220DC647605 |
F2679E7966C8CDEB5FFFFAAF7FFDEBDA7E8873C1BF801720335CBE7CF929A79C |
020C390ED0EE7A58AAE7156E04AE42E9C8418244E6713C883A65E122A4486415 |
E27FE519153182F9F99B3BD935439A5B918AAA56479C0B123631718248F784FA |
4AEB11EC0488C0118DC421FC0DB714F06C5DEB424CD744919B23A14687161A51 |
92C2DA1116B92DF3DF76DB6DEFB8E30E169B0161ED279C7042F445A66128893A |
9FC65E5F078DD690C6C952863034B215FDB22AB548C6F006C31ECDDEACF41906 |
2C21628608709A36A7C520A2F14331C21188F81DF530F556E2BC7C7051133466 |
57A0079263EA374647A3B1E967FC84E7A24D747A633E383E39E67BEFBDF79557 |
5E99B798BAA91428BED5A837235B515E3DA4352ECC43A167530242881CD3A8CE |
0E18CA565B6D158E0091E4B0F339F7434F9EB5B510B48D94B1D1461B3DFEF8E3 |
7AB031B5B90D30B06C7FD00E7AF7BCE73D6F3AC3E47FEF22E685F0961C45D47C |
A80CF20B272A6FCC22F3AF4A499B68C6597C08EB7BDFFBDE0B2EB8200422B711 |
40A18165DCF370327E663EEA59B96033308D44FC8637BC21E727DF44DFBDE69A |
6B324E2683A8AB9762D1F9873DE3CAFAC0073E90F396A7342D6417C9580DBEE6 |
6FE6902598ADC87C704BB7857A30549B88034D94A838885706DC67F97923A64E |
3C341953615CFD839C480E36278477D5C4B38C10EEBEEBAEBB46D9E218C0A25C |
A9AE771411D921B466167CE0D69B6CB249561DB0B71EEE07D1CCFCF32CE60A30 |
A1A64571DEF47013701E5419F76480E973B5E805220955081330CFE4F5F4ECBE |
FBEED12C0393DC137EF6B9CF7D0EF8E0E04401427B764CC82814C11C2D636579 |
7B24F1ABAEBA2ABA17DC3AE811048683624C0E1AE72D358846BA4CEC02FC0372 |
808F533AFE9297BC84509A4C32E3A353564B60EB218D596CDE4BB85C860D9C4D |
D6AF3C5E522BB961A5AF7EF5ABDFFDEE771F79E491049607E0A0109680B666AC |
79CD48936759FBEA67D65F7FFD40180247D21A111EF93E584ACEA5DE6B537A98 |
A4DB0AE411BBC116ED13F9297320D681C9871CE7C441B5B3BF279E78E245175D |
44B27BEB016BA6A86ACB852B33BD7C9343142D8D352A2823A2D52053D5F76C2B |
7330AA116A9BD9BEEB5DEF8AE41A1D9A097B3C5B8989231981C80C6DD706AF61 |
C4424CC100AE28A3D963B095E833A001AF809022A8A996311A22570E69B80024 |
97D35DE3193165999929A3527CA97E5C554FED58A392CF2919CF80001F88710F |
DE9CFC8491A696795043837182158664EFB7DF7E1FFDE84711445851CDEF1A48 |
065570315E27C0846703612D82BAAB89ED6ADDD2C9CC518D90E6F5D2229D2800 |
791E177CD0CB0552AA7968B0658A3F33B9CCA6AFFAD9FFF9A5E980971E72C821 |
37DF7C7318218EE7B0C9202274CA47C2273255182D1E6B4A5E104B456008F238 |
68849190250020D52CE188E77F34C9340DBDF0F0075132C2120C663CC93039E7 |
9C730077EECF84431643E010E76B18172EAB9A81FD73930B73310181F910A6FE |
477FF4476021A2622D09B2F1C61B07D5F252CC77E8D626A8048611C6EFBEFBEE |
D64DF7AD04D1543A1BA96BEBADB7BEE5965BF2C861871D76F9E5970313C358C0 |
10021F480325C71A3D0F1A1DA862EB9B15548C8709266D2D028B4B200ED7F973 |
D568886A73C62292ADC1EA004D818B2F6A95A9FA90592558AA897EC23E4CB599 |
8C938543F208D7C2B2A2C30C81409148330082CE200F84445B24F42C79830D36 |
88A0A6C50F5DD63C99BA46CC150E85C302524ECD0DF225F2D3ADB7DEBACB2EBB |
002EB45880A08A3F30DB181C04CC75EAD70B3CE7C405209979361DB008465407 |
9C6124EFCDB505FE45875A3DFE5B9517C736CC7B348986C5F485410BE990584B |
0A0C903D02FDA91A95F4AB2AEE96A0D1029F71326C568AD7A075414D132B1E10 |
F8817938DE96F375E699671276CAB926F8FC861B6EF8DDDFFD5D041A3C7166E6 |
C0E7B8B3C2C17A06F829DFF8C6378619E71B1465F6A2BA7220DF6C9FBE24B097 |
703922125458A13C66C30F4CC178139472F6DC73CF681AEE3BAB965058860224 |
94B38E17A639A1BDD4F09A56981CCB0127B1811BD907FEE3CFAEC2071AB08671 |
B042B11BDFBC9162E3529841475806C7245EC3CDAA303A8B018F7A602943B55E |
890133B2D27F4E44EEDC69A79D6EBBED364A85882AE6828A4BA256A5BA95F53E |
FBD702259AF50CEBAF91EE801210074CA1234F3FFDF49AD9859C9EEB6564CAE6 |
9B6F1EB4809DB0DACA74A1C8B243B60D413EEBCF2079103DBE927EA30A07FE27 |
D520BD98DAF4C8EA23EEDF74BD5672BAA7091684BB6649B622B5E4185F7AE9A5 |
418E6F7FFBDBF083952B571E7BECB1F98947E407AD3B0536DC70C3EF7CE73B03 |
750D7B234E11A85EF662CB2DB78C66F9DDEF7E979D0A041E7BECB1886979170A |
B45958507C0092C79151387E06E000D2903F13BB15E7B9A1860E2246645FD65D |
77DD880BB36432D00ED9991DB1864074A057BEF295997016EBFCF96C7D1983E6 |
98C09A5E096B871D76B8F3CE3B21E588178B7AAD463D3B1EB106AAC72A327314 |
29E383F2EFBEFBEEFBE52F7F39C425D48A7355BD98D5C7A6155464C3106DC91E |
AC8ECB972F3FFAE8A34DD372211C5D8CAEE8CD0621434D38C619872478236C73 |
C33EFBEC73DD75D7F95EC98469C435742E2FCA1232026E782B455053A9AEA832 |
60BE343223D320EC3CEB854BE5279CB5D47AFB9BBFFAEB096D1B8F261BCE16E7 |
9F3CF5A217BD28FF86BE0720CB2757604B629B416A91F9088918583531004C27 |
10B71E438B7C039270A791169C7A03B333CF134E38E18A2BAE80EB3348CD0D6D |
13D9026EC7A66B5AE4DF36D1A7C9C3AC414F242961388447B2B3016F5E4AD92F |
28AD66124C20992A36B64A945C6C5528735BA0946157AC5871F2C927B72E72A9 |
16633CAFDC77CD8C3A481639F0039BC55E6BE59217D4676B98B19F473DECB115 |
6355BDF01C67B48C8CE98E19C22FCDDBC47156C32988C9D25A86918C1C2409E3 |
A8479E12135069CEC01B6DE44A9BD2806B903FD6B52815018EB93978486BC02F |
989FC960EFC488AB857C5C426EEBB11AFC1D8D7A5A9579D6040848D106A113EA |
130A2F8B92BCF65CAE8C19792AAC77D4936A72CE830ABC9A2599B80D7DC15D27 |
EA9C7EFAE9514083A311EEAEBDF65A9EB23426533560159911EF3D528C099A10 |
5CB55582712C65374BC343F3769F349322656763A8DBD7BA66698E292151D238 |
3DD9F91B1D3792C4B8D7393276208B8D381FFEFAB5AF7D0DF61CD0F138322953 |
AA9F1523EA9C0D556D9DD5A19784389E7FFEF986FB425F347E20A5D680498412 |
230616850FDB81FFA61A6FD93B45EF4AEB9575AADBACEE4846C04760B82C310E |
D36FE7006059DA64934DC2DDC19C9AC765358C0A2B8568E23CD1DAA16B9E05AC |
555697C4F96498186E1AFC0239A54F3CF1843183C1B490BF68F0A141D929A316 |
20AC5AFF781DEE834C3B83FCD9E4625342CB22F7A89951EB8DDA3835773680CD |
9D8F3CF248C65CB56AD5FEFBEFEFBBC8529B562E813C36C05A1D2992C455575D |
45708A5AFB7892381B913193F9F18F7F4C0911E512B7D5F81AB02E83FFDEEFFD |
DE29A79CA2A9890DBDF8E28BC3604871D60C3E1D2B37EAD9CF2095E1F18ADA37 |
DF7CF36FFEE66FB685C5433817D364B19A6D2DC924B9E33366C2E38F3F3E9A31 |
4555A5CB9642C32599B5B3EA9AD085122CD9443DB2325A75781BF7E036A99562 |
8B22455BEF619B24B0E65F537507DA9E62013645B626142F6424B22FAA304321 |
60C180A71909474F1051C62420458485011BEE9B47A21E64C9063AA06360D2CB |
A6E4BDD5ED3AEE3541833F04CA49675A778DB3C57E537DF09690534E1D95BC67 |
B054F5639A01F3597348568AD50497259CDB00402EA2BA2C56011B5697AB8921 |
D378FBD3CFAA8383CA5B35EABA0667053AF90686349D7FED65F88F874D3783C9 |
30121727471459BE219D579A0B531CF7DAD1CA3E06D91BC890B760CFE4049A90 |
3A2B5DAA72B55632E104880743F7738D2630DE413F652564E35E16D1CC044407 |
D2528F39E698FC5AEBF550DB761058CE01D683327021E8CDC55308060328035F |
B1E0B97D2C4107393B05576825069E40212083E58799CFF742A6A6722A314026 |
8C181A006A51F8533245E36D801C9AB544D131AC32083773BDE0700D8A5E9401 |
B3465062F3CD370F175483372DB8C6AF99EBC923BA00D94A6EA87155B58E2087 |
107311BB40650675DF8F7EF4A3BFFDDBBFCDBE844653EB06134BB56456AD8E82 |
D23509182D01B7139174D9AFDCC9C111563AA13378086BA8096810F932039A38 |
60F107E9AC34F7AD6F7DEBDD77DF6DB55BC93DC5F6281E10A69B5547788D1096 |
B563214758A990912C8A39F91C021D061060E691503ADD1F482D54B5CB5B105B |
17D580EB9752835AAD101997B767BDF00F935B2ACE70706ADA09BB89FCE15923 |
53390CF8D8638F3DF3CC3357F7029C9C9A6C10D558ABAAB7DD76DB3DF0C003EF |
79CF7B2EB8E002CE20AE53069CAE47EB9460EA9900260142BE2D7B670566008E |
0C6D65F5B9527F789A5073641047A89A9971DEF296B7DC71C71D1487E071CBC5 |
48DFF040E5913C4EBA9DC972322ACC8AD9FDDD76DBED8B5FFCA2F13A3C15C844 |
CAA7365CC08866059942A6C73A8D1BD11D91E657EF3B265F134DABB5AC9A9DDB |
DFC58065931C732803152E11024CCACA54A18D180B390E6F7EF39BBFFDED6F67 |
7F234D56D3FD400C9ADEE59F462BE40845ACBBFAEAAB5FFFFAD7DF7EFBED84D8 |
E086613D180F11CC71CBA9F82F4A28818B4467E084AF9E33EE979C714ECE3BEF |
BC6C8F5656EE31D2D5A0CA0103D66065CD746DA74B306045549609128C4ADA43 |
46D86BAFBD3EF8C10F4E57079572CDF7FAE9D30C3873D874D34DA3751D72C821 |
2B57AEE44E92D22CAB44C2A2F64C32AC30B310905211A55A3034E4560E84D220 |
E25ACCC408D58173A1E6F256A1CAE2F595C7D4F9FB0AB6469DDB14A39A47380B |
FE188E4059A6A44B6CFA8228E33B47A4531468C5235B917EBEF7CF98BE564F2A |
38BEFCE52F7FF8E187F11F53E6C97417B1CB8CCF1AAE92F55A0D0A0F4240FD9A |
D7BCE62B5FF90AF281A13A9816C84D02D31013C12E90CA439E61F365A8FC5D77 |
DD950749FC0392E1DC9FFEF4A75D660624493D3F65266F7FFBDB3FF7B9CF5D79 |
E595071E7820561305444510DE48341927BA758953AF3F6C63342982C6DBB3AE |
D050B891557AF6D8638F1C8AFCFAA637BD2944A3C2DFD7D52020E43FBC21621D |
38A3A9D6C22FE843D5A730888B6EC58837D080C7BDE23F2242ADE95DD5A95908 |
E634AC870F0181F311E0C90DBBEEBA6BB6836252D98B830F3EF8FCF3CF3FEAA8 |
A3DEFFFEF7E368274F69DCD32BA2716699B0BAAAEF5AAA0C09AFDA8D2B913464 |
2994E4A69B6ECA9DE4D1629ED961871D2259662659728DE3199C3E721131B35B |
514B2B0B679CBA167AA3A1633C4BFC8A249D7DCC21426072A72C0496C3853BC9 |
E45DA853D0E3E8A38F0E3DD4C925C051543886AD274439F8C0992AC9D24E6638 |
91A4B275D1610913B4A369ABAB448F807F425F85A429FE41302AA53019932A35 |
C8B7D9D768BADE2F9238B80B3BB41EAC7ECA5A1861161E3B45E3631542311B66 |
55997A70C8242D761DE70D7BE02021F1E80AB55E4F7D7B15FC6BD400EAD412F3 |
D4D232EAD1FF3A0809B2A8B94373BD5709E7BCE6A7D79DF673B5B699C80FDF8D |
F643B52FFEF5D843FA03644BE37A08A75D08E31E408729128995FB4F3BEDB465 |
CB961D70C001D077806FF914D9AD622648039C9940B59C0B55968F05B29A9431 |
AF611FD320C1E1B7D2CDA2F047FA26DE87641EC8D6A2F7E7B6D0B8C30E3B6C20 |
6448E6A6C9749BCDFEB12985E9C266EC53C4699C2B45FBB407C2B7287F911D0C |
26B3A7084F997F284ED423C420C4A94A8207755B6187D00B8C01AD9B43A21A12 |
8287F6837D9BEAB898BCD8D075D75DF7473FFA919A6E2DCDA8DEE61E011FEB7E |
507482842290A422214FD16F4A88850787FBE2108174BCF7BDEF8DAC6C1E3641 |
DD8446CE2DAC2AC3BF9663B4930FE36025CE047203E782ED3EFDF4D383C91699 |
5F8201B3B49AEE6F693F5C03369BD29038502146A50474EBD932A8F2EC3E9168 |
B987B4BDF1C2387CF2C7484EF3278A9E12EBB7BAB7D6316D8F9D026212A25A4C |
431D0B5F29FB422C55EB8931E848E19A592CBCD33A71836017A210A88B805D1D |
AA6BFC69E69F2FF34DED60D6A60A82B69E604D59989D76DAE90B5FF8825CCD84 |
7E89860D30783683E77591DB6EB8E1068CF644B0134D8DBE5E5F270FAE7E7189 |
6D4D93B19EB167A12DAC49522B2B8C178B826E3D370C742240C43433425210A6 |
DB248C51DF04E448C5AFD662AA2F1A32608F1CDE780B08A00BC205CDCD37B670 |
BEB4F35BF4323E7075EFEE906316F119293B8F6FBEF9E6D1D9611E60AA89B95A |
4D89C518F5420D38C94C915E7C3D3DF4C31DD24B3FEB11F5C26A3F6913D93CD3 |
D6E00994D52AAAC153138D7BE9070F9532BE1800C19DEB858420FD1610370018 |
DCAD4B9E163BA8591A4933FF22B55403E9A8545E25A8523182E9A16A7B364C80 |
AB0120D0B8512F61C14F64696FB4D146193CA277AD7ECEBAC6BDEBD62CE00FD4 |
6E640E18CCA2F75761DCEA54793CD36056445AA987E1865862F75DB85B03391B |
588D06E2369810B04353289A81BA60F48D9C80AC3008969E6F4A9F562295EBEA |
ABAF3EFEF8E339719212CEA01390678C7B4D7576A12D0C77AF660CACBB148E37 |
6FAA4D145FEB4528E0DAD9CC38642DB7F3BDDE671E3FF1C4132FBCF042346964 |
88BA9B9A7FA52484D50C8A1ED80702F99EB28E6830F90BDC702A05BB34A80E84 |
D19AAC61241A63C2A830D552AAB01682ADC4D75D1EF752396091EAAF5535F213 |
F0D462818500F9838000B96CEB0CC91ABA524ED80CE157BA302544350F986315 |
C5FA965B6E41C6A57A3FE24BEBB6812DB6D8E291471EA9195C56F2119F6BD781 |
5AAF517516DE03176CBD634FC5FF56AC08E09BE6EBD6BD1E603EC67FCC1E4C29 |
50A2AC66486BFE329AEE278258E5F4FABCE1D0E35E48B9955871365A41413430 |
7AB4FA56ACCE3B8B01D7F2EC3AB6AC38B6BAD70AAC62A59D6FC01C4EEB9ADE07 |
61D423012B031AE806330953D08581A872102C210FBD75097D601998A66BB921 |
72CDAFFDDAAF5D7BEDB5C0B1C62084013FFAE8A3440F8D7AE564D906E21E2668 |
58383A22C5C64C739C26916A78C268E950ED2A4CF159E915B647928615EC0651 |
BE730B0BAB2E0A8750DE8C19199FE22C56C0A1681F223FA1A44009B29EDB36DC |
70C3806BD1F73A797DED1432B5961B7A2D5A54A0A7126319C5F95E8DD2A43A0A |
1851AEABD6516A45781CF5FA5C039BB3AD6F30774BFD07594FD357261C8DF6B8 |
E38E8BFCF7D4534FF125B1B58BDE4F3F54E550BF77DF65849CFF7CB974723022 |
9D0544E1078ADB55E21E95340FBBA000D236E1C1DC503B038642054AC71E7BEC |
25975CF2FEF7BFFFD0430F7DCD6B5EF3C0030FC8865B31F7E5D52F7AD18B2846 |
A6D36789B83F643EC5B8ECF5134F3C813D1FD305819A41BF1C99C8BE943FA35E |
1BBA3E15752EBAE822E327F01A2848298EF3464E65C6CC410E5EE193C67B820A |
4E8EAC1666A5CF5A0CC7363B2861266F58BA9CFCD74CA056A759F494554729E8 |
2A1EF20D9DB22C6984D304EDB096CF1CE82B6B2DEC13230DD18348B470B8C5C9 |
279F7CE9A5979A4C08EE81F66452E0B040A797CE60A59478027CFCCAB5633172 |
D86892BF2BFFABFDEF5AE78573BD8694D0D02F33EAF1FFC8C1024126CA981699 |
9203E137C160C068386294AA5B29CA38DFABE513D33EEE318FF05D3C3539E667 |
9C710686E50CB2E79E7BDE74D34D4AF9CC3F380C11A8C5E78DBAA81D44287654 |
0BCFA178CCF5DEF070AEFCBBCF3EFBE4C4D10E04AD008B7175837266D5A7E74B |
316D8E618DE1CD38AF7DED6B33E640111FF56A364E8657687AE457D246D8FD67 |
830058EAF465E89DA951AF7AD5ABEEBFFFFEF1A43312E95F4B54C2FABDDFFBBD |
33CF3C3353E1F8055861B4ECB10E6AEB4B308E65C618A1665EE318A3272EC092 |
BD0D4EA35412E0CEF5F2B3B39475CD8C1E724E322F3DFBECB38334C822D46AE0 |
48ACEE3D682BF35E74FCD18CFA70ECC421871CF28217BC206FC9D2F0C48B5573 |
A5BAF2A231145C62B9965B1979ED98FD0B936BAFBDF65AB56A1561BA8E2FAC9E |
F7BCE74597FDD6B7BE8594079950B36945FC1498F44D222365907F55214C5CEE |
2CFE676C0BE273E0F0E4934F2EADB3D64A4FEF7BDFFB38D8AD07FA711ED6EA1D |
9F96B0977074B1EEACE9DD4C2B820D2E746E5230716821A40328EC9C442F8F7A |
59C1CC21B2111962ADC41FD530997129C166DE4B6DFFE2C91F846DB7AEB499D2 |
3A2AAD47C06D1322F58BD7AB4DB8C5565B6DF5E0830F4AC8607B541538F2C823 |
0361D192DE000461C0BA880523091B2A8CB4570B0369C46A0B2B602C0A640B11 |
6B3984782D8142B52D582B2ADA6FFEE66FDE7CF3CDC8F750586D249879E67AF3 |
CDEA891BD82DABA9CF000B4C14642B91B687E1176AABB9AB4D24337BFEA00BAA |
C009847C38E2882322A2D5FA42BAE4B5084230DD626D2AB5180E42A4814874E1 |
AC1E905A166A50BB86A0B07CA3B9DB4A61D3677FADD2B31905A90A016A11D41B |
31A26850EAEEC20B2FA44127B5E70E3BECB0E5CB97C3E3CDAF81B2D5683EF7C2 |
FAB21C8DB57A333D1D2EA605B7DEA6BA461E108A38EA1523B415CF955ACDA4B7 |
28D380336F7CE31B3FFDE94F5706DC3A07F15CCF95BEF56A3B3282BF0D8A5A22 |
3CB58645E04E0F289FE97D2494B0167DDC9D638F835E37DC7043D08893902FAF |
B9E69A7DF7DD17FD92DC03A68BE1DA44B4DC19E8531B1268523E66D67B0731B1 |
AC730959C1485A4376572FACA01B2137B29B9A22C50E518E4188F16291997E26 |
D49E32F1044672443164A12E5476C88477D96597CF7FFEF3E79C73CEE9A79FFE |
E217BF98ECAC59F36F258BBA953A7FC674D8E5039E84C2C46951A8878E44B379 |
FAE9A79FE93DE3B425563EC1BEDBC48635662139E711B956AC58A15316DBE3D2 |
26E88C69896FE4EB0C4E95BB45EF87A0908C8121A49E4CF3F3E0E5DAA6969880 |
C4BAE67AD59A3E6DAA1A9F56D6B95E57DC1045F4955AC12EDBBD6CD9B28835A3 |
4946BBB41294A38C3010C66E61331F227DC016888B4179B8336BB8594D1B1D84 |
F0D4AB95681415CABC2B47FB9BDFFC2695E650BC6A9A56087D66550BA48C26D5 |
82107A6CDB3757FACC1B0B034CB06A56DAB28423C9FCDDEABA93B4CDC222D24C |
336D9DB87904CCD78C09626BDAE5A2D87BD60251E606DE3EDF7BA507D4EBADB7 |
5E8E216787903ABB05C0F36893156245A1BAC0815651279E78E2C73EF6B14C43 |
7E3CBFB05B97344443974965EC7E95AD5B9774335AE867944842106AB1082433 |
FDC4AD87F5E00277E15614201627CC9E69E7E6A38E3A2A52973B9EF990516988 |
FEB8E7BEFBB9EAE8B51F2B1E90830F3EF8E28B2F86A4DB49105AC43199E6AF27 |
9C70C2CA952B8DE8C62A0900B1D6D49290B23A8412BE5713E5028C6A2CF89BC1 |
2B42C745B94AC3612883E9597A7A9A014B4B2126B03F03D0E04D685F3F6D183F |
0BA76B901B51911AAF5AB1A78F6607378559660B2DF9A47C8160023874B15455 |
72DAB24DE6861456CBE7B43754DDC879FEA4341B9FBEAAD7A7061D04E7A29E7E |
E4231F79EAA9A7C8BB6F3D9E7654CA9B55D7C860583EBCFEF5AFCFB9253C4A43 |
90624DD87968DF030F3C902F11786BCD2691C972306D8ADF8F4BA6530D7A8493 |
21D2B649D1282441B7951B065E10F1C638D881DF11BB654640B9C99C738C9F78 |
E289516F4577E38D37DE7DF7DDB7DF7EFB638F3DD6BAB766094374849B88384C |
06696CB7DD76FBD4A73E350BAFAC0A0EFACDF7EE2898C5708BA073B7898F1366 |
B9C4EEBBBA17BCE00514BDD2A3AFD4DF7A2ED6A283E4ED79367B47A11218704D |
27AB09D9ADB0FCD6959B51E9C8B6E1861B46060A050CF541DBAE282ADF628603 |
9EDABAC565519FC868B188452EDE6E7793D683B0F2AEC8CD21F4C4586131CE46 |
6739F844CD9765238018A546A18FD6FA681382D87AF9AD254CEBA3A9B48D6A82 |
9EBECC7C354C12DE8955DCC9A8C4C048B8D934273515E55143B839EC50614BC6 |
92748B90C153900E4E01D6A32BAEB8E21DEF78878AAC6B01A36A626175492212 |
656E1442D860830D36DF7CF3071F7C304C17B3B64B8E1E76E79D779A9026A180 |
40D5865AADD4A020645ACE54016B95476B190D2A3D2025A346A34D562B63EBF5 |
99718D2339A19502848AF91E042D70D41870B41046ECC6D6BD1757DDCD1AB194 |
A3075A66048D82E01EC262CDC421961BE301150E705E54D65399EB749BA6E97B |
E4C74A214C9E6A16BA1E5A4F3AF8E908B334E04B2FBD343288BAFC124131D55B |
5E438A903A3375CC59885A7AD14071CCE2E690B07EA42AEBE08804244D9E71C6 |
19CB972F27227CAE549669A52E0C72C7741FC01A5C636D749000B9D2DC65F35B |
8C5A42E55A42E0009F80037C020508BF887762909FE598340A467AD17A5A54A5 |
B0AD87E66295AAD9CC58662C5243D11CC49D00F0D0430F8DD4FCDDEF7E97C103 |
5BCC3BAB4B77BF2A09B6EED9E2CA7200485E17A9F6FAEBAFE724233B1BA13048 |
09B0A081F28D356BF019DBDE0A419ED4C67149CAAC092AB5BC22617AD8E5982D |
7895F1F5FEAEB5B02FC55AA59DF0ACAD1C9CABB6A497C1133BDDDDB9BAEB243A |
60E0EADE6E96CD457FB23F63A80F21D0D05CC84410239448D3F460D5528481D6 |
3E2016D317BCD330A58C9F6F8894CC1525F23BDFF90EB59CD0740F38E080ECFB |
9A5E9B095D9073CDF9B5DDDE6852E167871D76887A1D5152392912C9565B6DF5 |
C52F7EB1CDB8A6A7BA442401F62D280FA41984C44160472F17CBF79060532A08 |
92C271EEB046066434837EE1A07916CB8D0DECF2216CE6FBDFFF3E929C8C0A2D |
255FE67192DCE67A7F406D6F88D135A3AF75FB3067B3C666D72E7036D493F622 |
B1E92D86ABA14C3367DA9FBCF5AD6F0DFC23F2C21E5464ED6341F202C27A96B0 |
DE7AEB2191E7152039554241570E2C317AF3939E898140DE85A7D2D228188AA0 |
E441F581D3DA0D5573354381EF230B867CD9E4A6F6F1833C7200CF39E79CCB2E |
BB8C98533295352DD4E69B0A46D85C41CECA83B589EA4644B2074472968A9CEC |
2CC6C59A5907CDD74BCD45ECC84C064CF5000AA3E04A5CF43623DD252E982E5F |
F5AA57FDE11FFE21F2949A5CD577D7F42AAC6CCFA0F89C6700CF41AD8564551D |
6DB986BF66C2D57D0553A1CF125221BFE62F457CE62675F5D8E00B2FBC300287 |
CDC0CF3DF7DC2BAFBC322C99F42104CF25F2536D1A5FBD175E586EDB8495EA24 |
58741CE89AF9FB79756DE53B4D610761A56E0AB84ED873F035F0AFC69901DE57 |
7B267350A9D2A152B700DCC2BEA70BAAA69F0F3229D18F3588298151DD130B5E |
EBF150FCF44CE989ABB032D76BFEB5D28778DCB3FE67D16B880EF7C8D4E77B2F |
DEB6985161E0056C4B86F251369CA6435923E9DD28AF88CC3FE96D621964F5A4 |
7637F3E19E41682531A24609418FF047F8D241E08261204BDB6316FD32DA76A4 |
ED002458478BDFC19DDA4E5B2FE89173914986085A9463DC6BB3183BFA4C6F4D |
460E311F721BE49B620E6DC6252ABA234B30606D3388BF5015359E6A0314EDC1 |
190BBF8F7BFFEC3A01D8A71E506CE9D985E38F3F5EC4965992B84C8A26CD57D8 |
59FDC1AD5B3B54B2070C78756F8CBDE79E7BAE5AB58A6A5079302350AA828201 |
D820A9E9866E076C9138954A6115941C818CFCEB7FFDAFBFF0852F102D5F59D7 |
C04E9BF7666723FC59F632CF66C068DB77DF7D37A432D3C0D35FFD140C658146 |
DDE1CC2D9321A29E8076DE152933AAD41E7BECD1BAED81DC5782C55882C60343 |
9910045B57CC08287309D5DA94F964F996D4F574B0D7A1F65FFEF2979F7CF2C9 |
6C8AF1D2AD9494804F61B65CC25AD3A64CD0A3D26782DBF2C6B7BCE52D6188E1 |
236CB4215D4B158C5462DD74D34D8D2299BE873A26488558D8F3F93DEF794F4E |
359417D76F544C1A5BB685ED9D5B2779DA07905C087BC3C2E0F9E1030631D40B |
11281843421BB88E8541E6544B1B0E0E39FB8DCFA6754E83E90C4E50D33696B0 |
43C22DC6BDF5A6112EADDB845B09EB9F4550B4322139EEBDF7DE9FF8C42754A0 |
A7AD883212D7D27A00D720447954AA38E52D992DC522F43DD7F1E5C110D32053 |
FED2A8801C6E856E45A856BC77DA246A9E2EFCC9E2D8E4BD8C7AB4E134D92576 |
345C81107160680DD86AC76BB3D5BB0A6A3A451AB03AF0294E07F40D34E059E3 |
D7CC7DABA7D5808BB6307AA5F5689A41494E1438940370DB336C09747A6004BD |
090BA80CD8C90C04B281A76A1A568130A5C8E140614BF98B62446A295A148A97 |
B92B95EC6A6CC08681C80857C69C58BD9EF29B5971918B1A1B96B0401839B5BA |
F763B00C9CCD5CB55BEADCCDCDD75E7BEDBBDEF52ED3858DD66492A804B249AC |
7AA34987DA1D77DC31DC883A1BEBACB30E722D0870D34D37EDB5D75EA6595370 |
1BCE016446BD9987238F7A0462EB6DD7A980587D55AD842B62501D28CA8A1188 |
3E6B7A730BB2C8F24D143E24721A535E7CF1C5617E048E653E5170C96847E5C5 |
30096CF1D4A299E8514229CC5361CC79D71D77DCF1831FFC2083238BA3316709 |
4A63005C1C5B7BEDB573A815E950B2390E78B82C8005DD209D097BC668D201B3 |
1E280E5DF84B786AA4495BA96AE143785225C32725E3401546126A25E97F20CE |
82CFDA2AC653C53E2B43E15C30AB1CD53C9BC38B4ED5BAA6F153F7539B7DE5A6 |
5FFDD55FFDFEF7BFFFE8A38FCEC27EBC86DA4F548207C5DBF06AB0AF0A7D6AF7 |
6EEA33BDD718A9EBBC82D2CD925D444B54193B38666F3EF0810FE43881A0D93F |
820E089EB4DA0E678F8DFFCC673EF3B6B7BD0D251B59CFBAE4203727D9AAFAAD |
A79ACCA21AC6D0B71217A0DF57DA477EE7AC90CE1A0D9B6783F764F70ED28EBD |
DF1631557955CD82E1D9DD8FC685042DB72299926636A0CE0C15BC79C31BDE70 |
DB6DB7D5EE0B1C8CFCB5C6566DC8DA7AA7EBF1C2DE29E23A30575A6A33989CB9 |
07683636205BD34B998E7B3AC4DCC20644D3049ABE31AEFAA7E10FFFEFF51131 |
8A985AC150196738571A8B99DA5F2B1DEA7BE338406E2A690E3043B382334AF7 |
16B7A9E690814351802C2D43E081469792B6BEF6B5AFBDE79E7B5A316F9A03AA |
956BDC336E113DB1E54277C6BD0C85A53F086F6C3DAA796917C0AC79CE3A3260 |
23361E8415533691EC6B9D1C126C10C52C99E96806D6C92661C6B93823A3D20E |
AB361F83BC980458738760FF7AA3074158A3926A8FBB4771872836CCD72ACD9A |
00492944D8AD31E708E5D8E414EF6C98C6349C0981D9D6A91D4DA2A06D786AE5 |
324828B1DF2452E35B6C5D13AD0DBC733F0134440918F734289194EF33ED68DB |
ADC7046819E5BAEEBAEB0E3CF040400A8483F3E3529C5F014B7110991545882D |
58D38B078BABCC102BA32D7C5A370E0F421A8D20B10AF2A2419AF5DFD5BD7E78 |
FEEEB2CB2E914EA4AEC43386F4ADEE9D6F46D07A5B57AE29CD5F2D1B4BF9B459 |
A7C5CDCB872C1E3988AE73419DC0578A89643A9014DC18022238361648ABC9C1 |
5CF6A5113406F786BE67BF110C0732576DAE30288FEC62D93080BBF9E69BE71E |
8AFE8C7ADDCD1A7A377D618A6C5D116C45FD9D2B457C96489E1635418E41595A |
E36BD62CAC2E34F0F98D1726E1B5CEF6140536D96413EC19765E9B2FF551F531 |
4320705470C06A38BEC5A2D1DBF0B4311975E2AA8ECB634CC6F714B585694EAD |
D85769DDD34A78B39B5E0DD135726D51E5898D1EC4670E34E069EBC2B41EBCE8 |
1574DA669B6DEEBFFF7EFC0B6A87A312B9A623BC75634C8E62D6BBEDB6DBDE7E |
FBEDF0EC514FD924D81ED72F52A9295E41CB7C78E73BDFF9BEF7BDAF5A3E2A09 |
182D99983EFD7D755021100444518F8E3FFE782ADFE9C33304AC025C5F1A2887 |
9B063998926ACA49BA4B5B77DC2E7104FE3E5FBA9C40387FDFF296B74468C8CE |
D2A260DCABBAA26D0FA2E589FB7590DC96B547FEAEC6B6FC3DE8A0833EFCE10F |
67FBB223483FD09F9C9D2C64C58A15C71D771C4E65BA08403FC137BEB78DF433 |
A549A276912A379B644C91004813C1BA26D75ADAD31652267AC85A2AC1B4E90B |
45CD6CFB5D0B71547786C479547232DD8251A914A6546152161A171A141882A3 |
5AEAB46661352B11B8468FCEF502D4C2C767B1B35AA2D25C73204FF40C8A93F3 |
B7F6DC34A1680BED730ABE4A21834C907ABF0C8B9401664BD841CD12541637EB |
29871A88417B7F0A6B3652928D67CE9A82B6955814FB71B9839A175D74D169A7 |
9D563B37B4DE5F81F61AAD1B9F05BA7B30EEC51FC693C26C005A93695571402F |
FEC2A858926C75BE5F4699D71455840C0DE3A856BAFAF3EF4B5FFA52887E4809 |
E60ED59725A8302A1D5E10C6C47E6E5EBF8EBA2552625A8F6A817058D4DAEA80 |
02AD324BC5AEF1C2BCE42A7D2B13E041D968A38DA2ACE7116D416BF5A68D8A0B |
9552B023348922EDA17561132CD43500FBD115A4B11A76CBE3F40FC0358BC176 |
2043C068B353AF7BDDEBBEF295AFA807DBA7683CD5C87369065C3BD28C7AB880 |
E19712BE5A26693AA26A50EBD160AE361165B0151B9D5179704D11692583A0F5 |
CA5FAD44C08E4BAE17E403B2525F1774CDAFCAC455B0D01E3BEA09F11A8D6631 |
3CACDFD8B190F1ED2C220AE15FD4F28F45216F09BA6EB6D966D1CF88840FD0C2 |
B1AEB8E28AD1A43F042DCE4CD83044912451929D30505B600BDD1124ACF4C1E4 |
DD5674E8D64537B802A6B2D5BDF6E1AC384713A848286297B3E9CB962D43E987 |
E7B16BF6416AC53A5ABD9B689903733A06E736B14B8B395021DCE455FDD57AE1 |
3716C43564CF53AFC910564708CB5C2FD42500DBC47028AF52D8C550610F66A4 |
935958E14BA7C53B89582D11EF11B6F19115B594081DAD76CC6C5D92AE32EB78 |
D27350D357D5B02DFD3D70F140DBC7BDA512B48893DE7A80EA5CEF3F4B909DE0 |
AA1D655A8FC2B175348F0B13A1A4E1619A4F71E270CA987D5A2D6460DA08421F |
DA8A42A396262A98A4BCE83E01C1E0C17BDEF39E33CF3C1317779674DE79E75D |
70C105999CD5A489E037E0D67233D52ECFDBDDD49F9F5C54A79B46F49C6D1AA4 |
E8A0C5746C8F520C47F9F5777EE7773EF2918FE44BC08AA9190943FBB0357D40 |
5303715B69FFB9B4A371BA0F3192E9A86437B562E39A358EF80487335305D2AF |
25AA75D7320356D26955202AD91A18591D27E83A515FF6DC73CFEBAEBB0E87F7 |
B8347F5CDD7B3C1C71C411975E7A69EBBA8E3D0A1118C904D0F54B0416710070 |
1D8350C2A53219B030BF6EB7DD765FFBDAD7F869DAC38742B0F1C61B5BC24631 |
A84645CD95C66DB3B606BBC55C2977E580D371F24AAF9C76CD7D6DA1A15B22C5 |
7A0DD38062E2F752DF52181A95781F8465D301B51299B34F299F6AC8A10E4086 |
05E00AAC2A13E471B5A938B5AA2B4F5FD2B8B6B01D78BD415B3AACCE40598C93 |
74A460A38118E5FEA90F2A0320AEB3D6EE96317018E72675B6ABD7069C07E1CD |
F03124C2F9B46ECE992FCD2D66AD57BF953BF8CA57BE326866C416EB0A6DA56D |
1F49FC86F9E4E060E80EB5C17D6065D63553D52A5A8F0ECBC83BEEB8E3E73FFF |
79FDDF035C9A2B6514C70B3BA00C02B578450E23E6ABAAEF46FAB9F6DA6BC7A5 |
E464A8475E9D7922555823E1924B2E39E594538CFE6D0BB92323AC59AC1E1C1A |
85DFD8FD89E86E730EA71D1F8313EA2E0F6C1B41278CB47CCE5686686CB0C106 |
915DA0159501CFF5FEB9C60FA103D8D24DD31762A8825420B6CB2EBBFCBB7FF7 |
EFB6DF7EFB2F7CE10B73938C7CD362F165E880AF5B8303ABDA83B56F410357AC |
5871F5D55793F009286A55C18C70F0C1075F75D555EBACB34E54A06755114687 |
CA63526FDD1868382BFAC7A2D84CBC31E28361E88066F5A4196A2677DC71C785 |
C48734502E07600114CB7643B660572CEFB5AF7DEDCE3BEF1CA62E8699C30AAC |
AFBFFEFABDF7DEDB6C221CEF39FFC4D9939109178130CDF7C61DD94B4BB38225 |
A4F0B3220B72E9E094C12F51512BF3BFF1C61BC3E9E53773A578C5A844A0AC59 |
B23677EBF1E7C84D73A5D46565C0B21F2826C2667D177DAB34F7518D12710CEB |
1CF51F007815F3AB6C642807AF03AD758454935ACDB6C49E6942917ABC7EA9B5 |
7AB76302CE07362E0F7CEBBA1D635276634076E50D4B3B74091F3568486F0B7E |
EBB5D75E9B029CA35EBB9503A9C3B5C6C26866AF55DDDB4416CE6855EB02741C |
04857D04174C3894149012D104867280AD5480A2862B9549307262AF425C46D9 |
026E7BEDB5D7ADB7DE4A4489F60C0D274B987C3307ACFD0073BE37B3D23CE039 |
ADBEBAAA31803FF56FEB9110F669805A11DE416F761B9B0A617B5A38C2A8D4F6 |
1AF5207CA228707FB489881C05E0ECB3CF36EDCDD2CD8B1E55CA4D9C7BEEB927 |
9F7C32D56133C94C29D279D86A7E3AFCF0C3E9786FED7A832AEA4CE80284D080 |
F4600282A6087498ACF455AF7AD537BEF10DBB3C0DD4CAD60DD1957057C7792B |
26224F0DD51F596C804C1C3BEE5525066FCEAA8960875A2273D788D1CA6EAB46 |
3B5E582D0075A8CE0455A196F06C537EA569AC1B387A84552BB1149C7D7BB6E2 |
DCD41A6F757AD37E5096C6BD3BB8D62C2C5BA01C31715456DE70C30D9F7CF249 |
4F31DCC18E039816C84AD5C5DE2676CAFC94254BED0DE952A6C77D0E24B10E6A |
ED032661F3CFF6A5F661A227B8637569436D8055EB76003DCC08C584D8E150B1 |
11262109ABA7EAC9514B126CCE9232DDAC19FB557B2E1761F784FCF9A5A88613 |
3EA00F9433D588E479DD85175E9853AA1317150496F0CE77BEF3E69B6F260D2E |
07EF9C73CEA919E835A0BC95E0A0712F0793A1028D638F3DF6ACB3CE0AFF366F |
AA36C7AD3E7CCED820A1DB841FC20DDAC41D5EBD9EAD34E5D6CF14C13F38F4C8 |
238F50CBDE80615BF5B5EEDE369202616BAE573FCF2B726EFF7C72E59E10E29C |
61F3FAD93509040057C4DE74D34DA3F4E39E090AE56FE6B0DE7AEB3DF0C00324 |
5CA231DB103AE0B26C562B3196AD5779AC0256EB2130F8D22AEE514F87414693 |
4CB3E05285F680E02E5BB6ECA1871E22F406F9409338E74A550C234A75A0AC2E |
15893515C2FF2AEF41CFCE2AAC1B60B5967A76DA545E7235A28A0C447BE259A4 |
F14E88485EC4DC90353980D5DD1B1DEB4B5FFA92AF18F5182ED06696ECC8F2B7 |
D9669B7BEFBD17312573030E75FE8322826D61DF78AC265A86710AB0597611CD |
F79936A0FED0873E945379D2492745FAF9D3C915340E1DF08861C354179F9F34 |
268274124FB4FFFEFBAF5AB54A02B5F9E69BFFFB7FFFEF0319E24EC64BE66D5B |
FFD95C23E05F8F644E7D36945D1E4D129A031CEAC5668BA94A6BF05135A4DB61 |
0259A4F5D8E60AA86ADA158C83934E4FDCEA09AA279113072F7CDDEB5E77CF3D |
F7988129E1CA5923BA5BEFBB321306B059C9901556D3DF80578458E7A599EA76 |
DB6D177568AE374870AA15E516F50D99FF03A2663BE80B123C09218AD6C40870 |
A8AC22F7AB29CD9762CEDEC39758E98CD5CD45D1157604C7ADEDB04CF420D01A |
0736E1ABB987363610F0EC7B36289B628F42983D56DE37BDE94DDFFAD6B76890 |
9C1719E062DE07422DA483B8D767050878E745175D74EAA9A7524C24CF6CBDF5 |
D6C1661C5DE6E69AC5AB360D2924F4D196E373BDDECA786138195B62C41A2A5A |
C6DC7EFBEDEFBCF34EBBE8FC3D2FE317F449ACE90DE34E3BEDB4152B5660BB86 |
7C73B4608DA8ECF6A269A5A8A99D49AC1AAADD068A1640A313D70022F36B0D67 |
D7F397673FFEF18FE76C442F81B8E4414C8822A89E7C7C6C9C1F80A658833403 |
3162929C5EAC5BC1D4EF7DEF7BE35EA4508CCC53B84040B510B837BFF9CDEBAF |
BFFE09279C106AC85642C42DA49CF31C9A78E289271AD18D9CA123AACAC861DB |
5B6DB5D597BFFC65180F376063A0523F0A0AC004E032E34B2EB9E498638E0113 |
C8771C68E1198DD2A7621A1B8760AB8935C36EB6D96699ED273FF9C9D5338A7E |
073E04B77FE0031FC8DA8315E64172D88218D12FF33700C9C9CF808F3EFA6846 |
C65566F1A3AA070B6AEB999B9749F828CE0EC2CEF3467420F62863BA34230AF1 |
D1A06BB27CDE5503673242906DD75D77BDF6DA6BB1C4D6904967858F195B9425 |
8209995EF42801B44D36D924AB46F2B3307D7EC26A8592379EC4675455406FF1 |
EADE7E0E6D6CBCB04F9F024D96B37CF9F220582696313D71034729C833EE4D55 |
B1F41004CB1A2D82B1BAB768E51BEB1EB4D9BA178C937BDEFAD6B7DE76DB6D8C |
99E3966960C7C62B67D83FFE7873F0DEFEF6B7DF7FFFFD38E6E9D7A9BCD816BA |
2AD4A59442544CE5555E1AF631CE074B8396D0AE6AFBF1301A0685229BF9676B |
AAEF9C6C4398C4B8570A134F10262A77AC7F67410FB7F1C0DF19AAF2C31FFEB0 |
6AF6F3A5B3537D7C54922CEA8A06D682BC2580BAF4D24BA33211FD8A423C3000 |
B42217D6DEA908D673BD31C39A5E3B48EF75F697886026000A71EE6AD89A0ED3 |
EAE48A1AF3EA57BF3AE73734046F82796E03A5DF809EBA765FC134461E0F5434 |
6C29E4DB8C7B3CAD3C18B86B8D618528F8AB7B1952A406AAEAB4A9DE6198DAA9 |
82DD26B221F2CE73D58011C470A4B7DE7F319301C9028ED34F3FFDDC73CF359A |
26BCE78E3BEEA899A0EC1975F500B4C535C11B1876EB8D8672736485CF7FFEF3 |
6D61E02827198238E8C707E178FEF39F9FBD89BC4F1639AC5D539513AEDD36F2 |
EA7CD879E79DFFE00FFEA0D23B2E43C461E18684586F3DFB152C09B1D093C469 |
E72DD3352FAB268A4DDB2E9876F7ABB2B0AA5536DAD8727FC50D233D62044815 |
0B84ECAAF3BDE31DEFC84FB7DC728BDC1ACBCF6EBBEDF6B18F7DCCBA57EE1A58 |
44505875995B756F1A55CE3AEBAC73CE390770855267F921F4149EE40819244F |
C1A05AB79D16E2988BB10C6127A05215F235C60667B8F1C61BEFB7DF7E792927 |
0559ADA6AC6CBBEDB677DF7D775BD840701AC81B6DB45144E140268F1C76D861 |
975F7E398759C96CD43B6DAC9EB4DF09F3A0C005D61D384D608E8C38AB98008A |
175894A1B0EE62BE23F00D3C77FE5CB5D94EB53913F51AE4C1EA605037BEA751 |
2FBA691B8F4C9B240B05596DF2863868774146E4880508790A637EA61A80C051 |
8CCB9DD55183FDE208E7B61CFF28CDFBECB3CFC5175F9C2F71FD62FC1C970255 |
6C1CE98879B0BA2708EF7FA677B1D4855F7DFF06618C4BEEEF20A2C74EA0EC5A |
9683DFA1AACB15AB81F601071CF0D5AF7E35F2BD5A0DC4DCF241785B6A060A44 |
B8152BEE2C06391D9921C500BBA80F68E0B1C12E351A7416016FDD325A0DA591 |
4D23B91A93FFB297BD2C5811385884A47AA0B43F1B784BE89F4DDC65D59B6EBA |
6940A4664848208C8F4A03107F917CD5AA55471C71847D2C024C84038DE12656 |
B995E349B66DF03083043864D2B7853101D562DF26212623249A57BCE2150F3F |
FCB0DE8B2C60CB2DB7BCF7DE7B5FF7BAD7DD75D75D2E83869DE35E7ED2901382 |
2F30106143E0908CA6523BA41A762EABDCFAEF7FE906D0A463C58C6C12C220F1 |
CF04B385BEA08864B156A8605DB939E0908E1028885066CE686E3EF5D45357AE |
5C498935A27FF17C67F2EABEE81CF980F2C42B5EFAD297062666E21A198F7B0F |
32C783B6D2E3286EB7DD76F7DD771FFA3A04489D0C6DCF8A079676726BA41728 |
49DAD6C4B06BAEB9E6E8A38F46B3093B013BAB34A0E37C3AC4293B68C1104812 |
5992E8F7E4293D33691A38F05DB5928D66F7CDE8AF9912EA8BF686FCF4A637BD |
E92B5FF94A2B6622A26A2378B259C6646168CA16E7AC4E1F786CD430DDDAAF49 |
D3D099679E19593B40F8F6B7BF0D30B3D1C71E7B6C7EE211B27174F6E48D1B6E |
B8E177BEF31D289AB18156B727888FF66A3947D12CC9FBCA9CC3531F7BECB11C |
B7BC0B051A4516489A0F46B46DFE25B6C8AC419C9716F7E1D5EC3837D488686D |
0FEBAEBB6E38D3A21D2D5B774372F6E53A6839113D5FF9CA5766C259ACF3E733 |
2F35F8B37533FE9ADE9D62871D76B8F3CE3B75A34064293E15C21AF2940743FB |
B2EF3AF0DAC4E2829D4CF79E4EF4CD37DFFC91471EC9C8E14C9955345760A586 |
013510FEB3040E54105C3910310C5181AA9E758E492D568C24BDFBEEBB470C62 |
1CB428283EF58234F00E92DC585D359BE12EAD0642BE77A35B11B3E64BFB5BB7 |
0CE356ADAECCE135141C474634C83CFEDEF7BE37C4D6D417EC13C8B54B44D7FA |
AEFAE540DACE0EA2E41912659BB84110569B32682360596E0C3C39E8A083AEBC |
F24ACC5D082B1049762D7FA96AD716061ECFF762B77402C548666A4CDEB2C71E |
7B1001A701CC7C395B8BB24D1E7614897149280521DB44A6C9B3210E11B20F3C |
F040184A208F5FC008798735F0502D48FBF1DF86005478E126A9D5045B8FCE47 |
D6A67A03289BFD6606EC0D72681DB3427F3CA97A7FDE79E745A257B15E22B8E9 |
B95ED924D4F16C4C6662C79E56FCE4B55C1960CAD97EF2C92789C538E69863CE |
3EFBECCC9C8E8A48CAA349B7BEE8C1466F0190FCABC10D9D98FA73FA05F1791B |
2A923BD9F5B952C13C07DB8463E34A5A7172E0B2AA99E666BFA9F379E621BE61 |
39E4E1C19CF2544620A03770B8EEBAEB424A4C716104E357514D0875998E6411 |
4FF2A250764CEB9580825E1017C884711CC6A011885EB93B7046A4C0DB372804 |
0FD1C9418A5C88B8E04F946247639EAE158AF78E93C359C54C8AFE512D57903C |
6D5084441908BD56694D1A1DF7F1C71F1F97F6155AC523B884BF7EED6B5F833D |
938733C0BAFA590B679D73D02983C332D9653AF02C5FBEFCFCF3CFC7128B2383 |
1D271207E919898D561CA0C77AEBADF7F4D34FCFD245E67A25AFB54A9344895A |
95D65948C5BA5A86A9063667045A9C197288F70B438206EA8B2EBA28FC2C2C19 |
C66C715963097593A37FE4A90B2EB820AAC9806872129989F2EB12BA57E57FC6 |
7EC2B3897F26091B3282E10AAB00D62C7C8D167852735522E145065BA0B1E55F |
CC2AE38597E85D3FCFF5AEB484611B1C372E2940161AB2D90E5A5D4D1F523903 |
FF076F6CBDF222CC0FA655330EB85359B9D2995A53DDFC576D003EAB6DD6002B |
C3919C49F63D6312481F998F3E2E4C3B400BC21F7CF0C1358AB3A6081AC08CF4 |
1F9A1F6137C7E4B4D34E6347F097E7575A48B1CB7AEEE5F19AFA5A496455513E |
FDF4D38F3FFE78FB5ED4943F834C57F72AF71C4600321D45A1ABFEA4934E0A0D |
99C980C1808CA2733BD33DFCF0C33FFAD18F8676A06E463FFEC637BEC1E18149 |
90500B755874D8C0F7A9A79E02FAC69211FFF59C18EDDC54490A9158FD1B7D3D |
53C2A3CEAF354E15EB62B6078F20078FDE5B34E7C9E3365E6CA55D441E79E10B |
5F881BAF627F9B781CB3D378F5E9B28761645CCA4299A2476661A879E823B671 |
0095FD0BAEC0686B6C39D6120F982E070F790DE6C25EA71382B7E7D56DD29126 |
9FB31708280840047DE4A908A19FFCE427B38A1AD13D2AA9BABC3A808D92FA99 |
CF7C86AA67D8BE3866DC4C313F46303802DDB7E2255E588BB3F352F602226E78 |
4B2B1E77B2D56B1211BE5B53E6C410FD94D527322E5DA478295A7BEE8F361C21 |
8C784BE94566581B1C79A2DAC2B636F583DEDCD1A429C5B8E78F592871501006 |
7305F6CCD5BDA906A14CBCCEE40A9C3EADA7363AF3F95E64B896689062D62035 |
037FDAECB2E4A8776698642FC2809730ED0279849BB9DEE5B306458F7AA511A8 |
D8AC30111D871C874D36D9846879645369289CDE8EF4355167D4ABC158CEC202 |
5EADD49F19F59A56561A31D1133D1269BE16C371B1A8683853F278087494A1DA |
328422F61E2EF5994174712BEEB9FA0D4B18F5424EAA50ADF7C3AEA273609EB7 |
E07A68A59A713DB373A516903F993101235FABF4BDB780C67C6FB5D44AA4E480 |
012367B30BAD971B6BBDDA86FCD25C09768D332E35E014F8764DE8445C52F18A |
F3485228670A290DAF197E621A5511B587D5DA20CD087C6161BC9D5029F82BDC |
47818085788A5B89D5F09E818CFBE10F7FF880030E5026B3B50966AD01778BEA |
2C0F5DC07DB9780736C69ADB6EA727AB25EB6D4260CFDA22ADB4525E60FA5A33 |
A9BCFAA31FFD68A38D360A03BBECB2CB22CFB6C562E4FE9ED7B475743CA9D696 |
F5433E4881A899DA302A9977E61C89293707D6071E78E0B5D75E0BCD7DDFFBDE |
F79EF7BC275C2A8C50DB11E73060F9B55FFBB58F7CE4239CD82834B9F3C61B6F |
7CE49147B82D48136619B964AE14798151D5767250CCF0EC4800D8B2CC8094A3 |
DB5E29DF6CBBEDB65FFCE21769DA1AF28D850ACA3B703521CD211EC2DAF3F60C |
953D2548072A8635C62049B6DBAE32BCA2B296011B632B6B4000357150CEC093 |
D5BD0B4275166683287C58E3E7AD8EAB26C769647CABF68C7B22BF6DA0B4BDD7 |
28682371E67B2BF869069C096CBAE9A6DFF9CE770E39E490952B5772276E2D5E |
6A7678ADAC64496AAA5B8BBA035956436EE54078CEA4E6A6BAA9DC0CAC023597 |
B76A57D3D9A2A213F3F715C8A3EADCA61839D4DCECBE20D824CCC46D4BF623C1 |
48889267107E155E4D5064E6D67EA95C67B4B0EF6FD063C71D77FC833FF80326 |
6FC3313AEF521C7B3A53B68AA1CE795C8A1919AB2566AA7220472AC1A820C2F8 |
A11EF67A313192BECEE42FE8B4D243AFD2F6852F7C61E79D77AE785809575B98 |
68243A4D5762D2778B301191F1A8A38EE22CD7A00D471820FFE08D5B6CB1C5C3 |
0F3FCCB0E15511B334BA400D3889D8C3C449E55725C5B65052E7ED58F83938B5 |
DC539B38F5DEFBDEF712F91198139C01C51EF76844966C98DEF5D75FBFFFFEFB |
BB2FE35211881519B43C2AD99B3BECB0C3B7BEF5ADA050C4F71C0D2B3FB6CE59 |
075577AAE30C6F37FC8E5851ECE1FA7AF886B24EF91E1F592BBDD1309AE26F6D |
13352F4FEDBEFBEE575E79656E9EC98007D22B1849EE66EB45305031B55700BB |
28C4E1AC73BD29E900C9903A3993E89A0480C8E19E13DF5554D17A60CABF64C2 |
18B10149E25F7432FD2E810E45BBB807EADC7A6B04180C93AFC557A70D1AE299 |
512A52160331146CBD1900827F9543B7AE66916B31574A2BA8630D18F089279E |
78CB2DB77CF7BBDF1DF5861E2ACD84D5042C190114B1F2C06EBBED163102991D |
AF15605C9458D4D4754E5ADE1BD0292D02D5710FCFD65569811EF3E8479324E3 |
D6956674680B26006A103A9C1BF72AD6758BD392C412DC8BE4B7BA14FD1FF732 |
F76DA1FDCD59F152F4154DA3794B662EBDF0B81ADA8D8859CB084CC7918E7B2C |
7A443112636CCF70DA69A72D5BB62C2233FB6EBD7E8415D92DA090D7D2BEC25E |
935ACE2B4D645D089D326C6C54D6B6D34208C358A2CA6C2686144B08959DE117 |
BD3FB745963DECB0C30642C6A89403337C66DC2B2F4E33608AB549D6293F429D |
1F9524F8DFC04253152F33F1C8806F93DE3B98AC5A2F46A607142CAA3D0024CD |
9A97BD39542B37E4A7D0C0A81C36AE7756ADD415194D72C9824551333EF8C10F |
5208BD2D165735573AA556DEB9A65400A45910F44792152979CDA45E21CDA630 |
9F2830555FECF429E6C28A1E2064F030C5F3CE3B4F897CCB2DB70CEBC2C46256 |
D520D168D453251D70F06ACC30601A421814C6D254DAC36AC987F124A629E245 |
8E3FB1051E28345D2858561DDCA6D979EB328A0419A72CA65C2D2ED4D6B6218D |
A76F6093907A8C7BFF37BE4123CFA1CEBED7BE7C969CC23C130DED8FFFF88FEF |
BDF75EF39DAC3691CF1B6CB0419E7D36376151AAC12B656C12F7674A673AB381 |
8980CFF7A832D9BFECE2A07896FC92E99A55A998F05C3560255C93882A7F25B9 |
1E652587E4E28B2F1E58DECC569CE57BCE310B2A0463F221D41FA2066527482D |
D3263E9C8C8581515DC64C4620E86B5364A2939E29BDD2C6A5AF80A6A7811109 |
78E262670E88FC040E685AAF01D5382D6862639515232DE5FD049313FE0AB2AE |
BBEEBADFFBDEF796D897710FF9B31576EB99F2392D44C09E7CF2C9175C70017C |
DA8809E3D490F030046197960DB792DF32ADB6D66FAA25CD4E5C8338CCAAE155 |
062CE6E847B4B606D6D7B9D2DC5A99AC95006032F417B4D79E1264B3C0CD36DB |
8C8E1A4833B57491323B8D2351375923D3B3E2412B51B2483CA352C45F45C4AA |
4C14A2DA68A38D201383F87C516E560C4E9B52BB9139D06366A18456076C9598 |
467F9AEFD8CBCD56CDA6CDD0C91449C14CE436D369204435FE689A010B9C5098 |
DC496F9CF02A966008A4C8C6329FE90D7956976630F6060DC7A59DDC68128448 |
ED0B786DDE0273C51B2585A1B3A45E5292D63CCE836CE03625E9B622C1E71590 |
9D6A0BE58D3576C102096B962CF823770C7246FD0D55099ED8E897A42C6B65D7 |
521EE8A375B38CED90FB56068C5F3263861B0DF2A0CC0A01CDA8018C772F1F90 |
C37884A545C5CF2491BFCF3DF7DC48B14CCFF04363B0AB7D88E6B31C0DFD5F50 |
098B01805A3C3E901EC067BBE3CCF7564873933AA670190661B696D05242D22C |
B4A697DE3373ECD96AC7B308873E80AAECB785EA02AC22EA024A77B02DA3D754 |
D4D154DBB8402D1C7A5CB23C09EE78AE0C78AE74C592892A9C129461D3AE2A8C |
575BDFC019592FCB3E644556F8B3A86F00170C38F2C82381350568486F603284 |
61031FC494F95ED2B93A933434D5DCD6693C1E4F82110834C0AB9DBF2B57AE3C |
E490439C30D86CFC36C40ED9B3BA586A00BDB524F7DD77DF6BAEB9061FED78E2 |
26C7E21DBC99553E2987245409289D72CA29975F7E79DE0E3FC604DD26590499 |
27063D12F2486DD2B8A2FF15211AFE043E58EEEEEFC98075ADB9A173A588D834 |
5DE3CBAC2233218211A10D6752A64AB439F5B0E41C7A34A27047EE469C5A34BA |
B8DAE5486383042367648488C011A4D4CF5AC9EB9FEFD528B591644A010BE5BA |
6A65BB56EA8269771DD89C4D42C3DCED860EB29E163D02D1688F3BEEB84863B6 |
F9A2CEEBA2F7870611FA2E028899A8836609129F3F2B2A3BF76FBBEDB68F3DF6 |
18558EA96F6C4FDFFC74CF3DF7D8AFCC66C3557F68C50A3D9E3455C44278FCF1 |
C75F76D96566C6CFF5EAA4DC064140DECA19C9DA6FBAE9A62C1C06407A1EB9BF |
9E656C33D535A04986629CCCCD6CE05612EB070C789A00564E805008BB42B7C3 |
D60D6FA0E9D04E3BED74DB6DB7118425036E0B959F8A9F5C8874B43622199D70 |
04547CECEA845BE757BDFB03B169A0C269D2470C0A770F3DFCE637BF89DC9FB3 |
F3F8E38F6337AE8991ADCB1346CF803641390AFEEFBCF3CE1FFFF8C77D2F1C0E |
B9D962FE350378E063E68821111E75D4511FFCE0078D0F78F7BBDF0D011C1447 |
028B383E78730929ADE105CE4434708B71CEE60A41D3EE98D1882B22C6732603 |
76C32A1BC08B699579E502FA33AF2965500C0C69DD64D1260C2C8FE4598DB71A |
729F2B035603435160620404222D66CDF94BBEFFC0D4E339276961D6F83BECB0 |
C35D77DDC5F97CC73BDE71E38D37E275C7F723F471BAB05B3A0B0F3DF4D0F7BD |
EF7DE0811D1B89B221B883D869C1A28A2083199C167255294E2B3BB746A6A237 |
87A47529BE75D1C720CC0CB5CD36DB84F493D99C018D929077069F28888848B1 |
287C4653D984AD4748D5E8E59A2A204B60D85A2A28F039FAE8A33FFAD18FE6C0 |
635F15BC03BBF1B4A200E6309A731E2FEC4B316B09B2AE2A5F92C013E1E6052F |
78C1D9679F1DC86075D0CC505D00D5D738B89475B4DCCAC82131FA0873EDB5D7 |
5EAB56ADC2AEEEF886C107D5A3CB7EEB5BDFC2B90E0FB0BB49EB86CA9A716834 |
7BEBD52DA66738D7AB8C2D3A7FB555D03257E010A17989A3AA6F8CBF3902679C |
7186655EC63D45826D5AA2B1981D446CF402F0E1BB064B1BFE366B1C328548CE |
C91618C80DA2627735CB9C7F0355A37B6099428F3752890C9EB7A6B71EB2708D |
45635C9DC546483DE7408DCBD5A6EA320A4CB7C9FD1D97B8C26AF6237A83E0DB |
EA6568859E0F64562D2539984F3CF144C6BCEEBAEB228BFBD2DC4F26883EAC6A |
D7ACB2CE78B1BC2344435028472968801F2A82C2E73FFF79DBD5589375BBEDB6 |
BBFBEEBB7334B6DE7AEBAF7FFDEBE79C734E247B62AC0C645BDD7BBC12238988 |
70C411475C72C925D848AA6C0A7DC3DDC0C434DCBEEC652F2378052F0318B566 |
61699451A9688485AC9E14BDAEA0B769F451C6B01D92206EF1108F67E6892417 |
096FC58A153319F0E07B6C41993D0E8F20DCD34F3F8D210B428CB245446B14E2 |
9AC835EEC1110A23F06CC2596184B3422B675DB88D6B63732165DF093A8E2141 |
8397AA4A6692D9994EB395F7E494D2F63C6F79EB5BDFFAA94F7DCAB052F1006D |
C6FD460185DBC17888B2A30E730DA7042768D73CEAD1EAF6301F976CFDD603B8 |
88E8230890931F2671FDF5D76747881804927661628DB5F7351840524A9B6833 |
39B466B3A844C2EF75D5CC22B5FA47735B38046372D5F00DCB67A2F81AE33AEE |
B5972B9953A19C65379EC5804121264349D136C3A0E767804FA9FD3593FAA952 |
76BC357ACDABA577975D7609F9087538FDF4D3A3E2B37D8B82C8A94A8E250DC6 |
04A01CB7D25213FE0A22497033424846202CCD5DABB48ED7358541E2A52F7DA9 |
D97716FE0C19CD69D70E847D6B6913F478D20D1A5D04812983471BC6D9367D49 |
CED06E574F7500CC80A46FC15C17ADE03DEE81A3585F14293278E61C243F6F72 |
714306A711646506EE3B269CDA3C2D5F46EF39E8A0836AB7E06A70E2F4F15232 |
E5C897AD45618D925320969DB3D89A4C4FB7F9134F3C3182C8686169C6014E0E |
9650315F7F81D95986BB4309D13DE626CDA9A8D350317F9AB58FCA9567A35D7C |
E94B5FFAE10F7F9861833C9065D652D163BE37C6A8F6B9369540E507AB849A62 |
CEEB086469251FC9A202403E7388CA5B8369681148C41942B035A279C4DA76EC |
29E63D2CEAD3DDA830746910D6E034B04668C3AF3E11D018028E73842233402C |
83EFB7DF7E51D30973D14B2216B5125D9B39FF34C4B5CA2C425047DAA88774DA |
6F3280D8628B2DEEBBEF3EF21131709304E25655495C9A389AF44DCAECB31892 |
3D28F4313FBBDBD212D461804F6127B6E346C0C1D2450554AD22B6C4A994EE17 |
2717775A50D42A3CD8A63082E96630A9B74D586F9649FE157E2643DBC39942B2 |
6FBEF96612B703F14C2FF7D08CF32D6F794B501F597B6E529CD934F351C99A35 |
722A98CAD6B0E58A5D4450E3887AD7BBDE75FBEDB7071D236AE5DF5D77DD35E2 |
646688CA0B4A91E76AEF3C8E4AC4C9206818361D6133E6DBDEF6B6CF7EF6B38B |
C21FFF3A1E5FBF24AB0A87B70D7C38B1744D31B8A3D64E022943CB42F2680997 |
63B668105F3DED03715E6FA574B03A02A7E95DAED7BFFEF54112C2A394F19573 |
B3172F7FF9CB1F78E0014AB50C6A87990D054A4CE3645B98E95483E1E164D094 |
36C9A42284C4905A6E182FAC80AFFB0D97649517C7BD831BF0879665CEC116AA |
AC73486FBCF1C66818C10DE228A1A74B18A223A19F7CF2C94C062FCC6EBBED16 |
317496C0015327AA8E6002B643E6917785F8E6ED48BDD5555F0188E91EDE0F53 |
D15A40F51E646262D4C939D6373C60666C6BE85550BA16D8699364246A151972 |
C1066DB5D5560F3EF8206E112B900F6A5461280A540F38E080952B574225DCBE |
5A2E430CB4F91D9ADC5E7BED75F5D5571BD327D64D33E36A8FAC8282070473C8 |
B897EDAC8C6480421E52344ED39D432D73F0E77AA39720181A7F8D4D514C69DD |
1A21D611BCD6BA843A28CC87230C5BCBB8C7A8621144A31D4D32154793A04B92 |
1DC0F3D0731CDBA409307953C888D1C15A16AC88F4D03AAFF59C220351CD069A |
66F3D00C525D725FFCE2177FFDD77F9D9A0DC47059A07EAE770FC407C191515F |
D2146A423CC9ABA8DA6032931F9846D0D69E5D3E50AE268B019DAA0C987904C4 |
793E948BD960ACC7E985C417716FF9F2E5E1255ACCA4B6B59B66EBD6B9259A95 |
CEBA2846C81AB03D72C0609CBFF11BBFF1B18F7D8C5DA772FDA817101F4DC22C |
C36CD012FE9E59BCEACDD930CCDAECC77C6FA19A9FD8D768A5FFE6DFFC1B33BB |
F361934D36A110D25C6997CD41A502BE498A5A963C57D6E4239681A062512A93 |
C99799F0D65B6F1D56C153A1BCF20673E06A0A3FF48B6A2FE4BFCA44FFD5BFFA |
575FFDEA57DBC47E12E272DD75D72D1171C387F94941CA802B5C81D0A41ADA6D |
C80321158A8D35D93F5F62C931EF68F7DD778FC8B2C4EE4F6BC0175C704114A3 |
D6E3BA073757320A9FC0915F2BB5B65E0C64561F59F398A12CDAFFABFDB0E641 |
629EA9353A46BDD00AEB8D4A1A0EA775F4D0430FBDE9A69B822A0C1E5070340C |
0B683DC5B3F23CED8DB897C8B83BF8E083AFBFFE7AA44328BE5DF6A414360E22 |
4140C9D27228F88C810FB406720CC24BE66AF2AB75435B0F685FA22006525A9B |
882016F969BDC9AE0C15B390241E91AEA660B6A227545D42B9AA4D4455B26808 |
7A0864224C446188546AF91AA8D0DE7BEF7DDB6DB7D105A14D427872B3B1CDBC |
919AF0E492224D2AF955CDBED62A805C18A350DB5CDA48715128AD59581252CE |
2A039EEBFD0C6A2EF83403B61899A67BAD0210647D19D6399FEF1D45DBC29867 |
0DB3FA41B0BD993689ABC5BE00B52807C88376C8F151642161327333D88D138A |
A80479CF0D74D843E56034A57CABC229F7F0EF1E7BEC913DCD3E22BC0EF29EC1 |
3D98A5D542DA4235D2475A8FB6C96C21B355F032B0C67D1934F20A55441C916D |
8F6AB8D72C1A2771212AC43DB0C1671696D9547F188EC69A0D0C3BC4AF0E39B6 |
A7D834FBFF3BAF718F1423E2001C8A5019D283F17DCB2DB78C2E659E652B0EAA |
FFC32C5EC015BDF6D65B6FDD628B2DF2944AD26852F98842271C36981CC15984 |
C34144B070323E2C41640203B0A64295101B33A5305D0B27ADB7DE7A519B0C6C |
D11E4ECE0950E518B05F44F3075044C10CEC545E1413AE956B16BDEC4FB26856 |
286C0391566C3155C05040CD538CB6FEFAEB13674437928A7B4B2027BF9AB334 |
7D33F90F048D4FFB1DD90E688181E88B2E194C30269618C8EA73AA6C605C929E |
EB35D76B8013F61C68E7E0A84FD759594D65C080D5813C6EB51C15120C966D49 |
80B61C2954EBB409FD58682BA8C11A7F32B95A0F23E227994D1556AA1743923D |
EE45F61785A7715866E5AE2E85CDAB7F072F12568160FB7852230CD62E1799D6 |
1D71D1E15CA880C518531B205AC77BBCB0922B88219B37D17CD4F3B9DBC23AA9 |
AA5F68D5BA722A64C443CA2AE49B57BFFAD5F7DD77DF9A85BDE346A55097DCB4 |
AE4E6D78D40B9898A3B128033658152149F8D75CF3B690DF8B7295199BCA81C2 |
C0C962F2B5020C6EF2B6903F5180A2F54E74CFF466F0E3DE74005023E912F995 |
6FF6DB6FBF4F7DEA5384837DF8C31F8E8404929047646D7F5E5403660925C3D9 |
27BA565720ED3DD44A6BB2689ECD217AFCF1C7D586D5B5584B44E76BAFBD96FA |
8F08D68318AE4A636DDD8D17C3B4F567376E40C846A59CD880D8197E49E530DA |
0D056AAF7CE52BBFF18D6F2047230392FB186E410D1D50DC4C6DCDB33518F27F |
2308EB8A2BAE38FCF0C333994C4C6D15132889CFAA9EFF1F65F16A8850D17193 |
34696EB4D146D9C5B5D75E9B7E0CAD84F2834621BEE1DC0862941730940E06CC |
86B5AE3104EDC2A58C1BB4B915F17EE1CA791DEE2B108B4242B8CC5D08219422 |
134AD8061B6C9041C29EADD0B4846B0050D34D08057AD9B265391B279C708292 |
A93743BE77DD75D74F7EF293F9097E2390A99380AA31A8AF3940CEBAFB839F34 |
C74DF33CB9C5B8D7421A97FAAE881AAD97436A8B798EB9F454814E59EC273EF1 |
8941AB933A3DA127216BDD0A3208516653A020A62756DF731D5F1E3CDFDBA8E5 |
2F891024E5DBC57DBE94B9370952CE515303E0C116C726E1B81A6607623A611F |
D4651BF74EAEAAAD83C48759477B3C2903FED4534FAD559AFEBEFFFDEF8F342C |
5F69BDCC7BEBF5E32EBAE8A2DC89B5837C872A260E7C9F7A796BFB673EB3F6F9 |
491B92419C26CEDD4A4FC5494B40F01936A345041B26C484072B035ED3DB110E |
AC7D386E2523AD1361F90ADB5D4FE2C0BD52F9F1DF6982C6DEF64C6FAB034BB0 |
C01969662C73C0E0C73D79A4BA540873835C44550DF220910FDAA2A3BD6CBCF1 |
C64F3EF924D64AC891557A8880238D0A7F1CFA62460E057BE28927B0F9D55A2E |
6B7A575DFA1FE429950173A3E74B81D8BC11F332AA6AF51057BB05C42A27227C |
EDA1871ECA7CFEE44FFE845FB103419323363DF8E083AD873E487FF41C57FF4E |
3556E7EC53A982EE87C30CE069C2C795731EFE61D0578D7E023BB1D942CA812C |
4168B2DBF985ED1BAD2F6A44E8AC538AE42257600E48A355E55FABB4E4FCFF3F |
8B57B857973EA29F02A0B6B5E73FFFF9BC54011FB2A88C42B7A8EDB7DFFEEB5F |
FF3A965BE2B9EC20665552ADBB78ADC45D756BB41C5601AD1F8477692EE3ED47 |
1C71C4CA952B4D8321D5C1B8B636A92467DA9F871C4AD77AEC462B061C2BA649 |
47AA2C5F95FEB6B030B2546F41C6671B8D5BD7035AA73BEDD9E14C6E9E45E8F9 |
B7C6D0D52824A26C10EA1745C5B57AE74D22FF434DC8EE1DA41D7B3F88D1A662 |
3A4C59C6F62E53CFA6E3DF82AE65D5545CD74130E0C1C1ED37BCE10DB7DD765B |
EDBE80810A330FB61FF536B80282E3B804977121D251431149A8BE74401CAC59 |
88615FBCD5DF392E79ED4B1BB70C2DCE51C2F6B86661F38F51AFAAC1310FC10D |
40B09CA1CB4E870BF82FA2FFA0EE69669B0318FCA40F04920A4215472C1B113E |
61A4029963CA01D8422B13AD151CEDAD32EEE5716A8D14290320426921679479 |
9A1035D7BB0ACE95FE8303B23CED345C82017B2AABB951DC501AF6430DF5AFB1 |
41223CF413640307D03E75FD2A590AF6418351990831220160F03F1FF09BCA6B |
463D012750C2F8C44F6190DFFEF6B7DFFCE637DF7DF7DD16DBE774C8715EFCE2 |
179F7AEAA9071F7CB010A8957646BD6429AE7D80AFC112DD49DE3C5F4AFC6A8E |
1E24B262CDAED15B83ADB1D4FFA8B705FB5B13B4F20EB0ABBEF75CD16CAEB9E6 |
9A7C19626A7F72823B9E99F40CC7A51AADF4D8638FD5D14B6AA336AE9AA18CC1 |
61D48B99CD3A9FE39EB9D1BAE162DC43616BFCCBE0FA0795C54B5A9456627474 |
6088B9D87CAA9A4D98F90703E83A40566E6ED865975D427091F5CC7536500598 |
13A8428003B30A10DEFEF6B77FF5AB5F45D0A90C58C8D3A4A8E6B30F7A21D46A |
BAD54C5703439C79858CA685B65801A0D1247A2ECB37C3BDF5CA4D18C3C7A564 |
D5B362E39FFF45456B91644D1BD36C75D16082BC02DE667AB1EA6F0DAB5E33D5 |
F7699AC061821EC4B44FDB8D5A116E2A41AC34AE75B6A728A0CDC660934170A6 |
B610C0D27A655DDAE7A98751FD8DD38E8D84C9A81357751CF7243C3B9F15A35D |
452BD1B0DAC9D659671DE2DE2D116AC67935440F4A280F36250A74F6F49C73CE |
39E698639050338E1663646593D191D40F38E0805B6FBD35DFE4F8604A51ED68 |
25F25CFEC7A653250A8195A234BE450383DAAABD29AD692F9D111A1293D6654D |
BBF3CA80353829AD5ACEC2B023A7417EA3D558E71616C66A53266831BFE2675B |
ACA296331F974A64B842A85AD82682AFE98B9A240720857F60738688F9769478 |
743E037AF4CE9A05AEDD11ACA8A2CC2F4F2E7CE16829588972409E99342C377E |
08B3B3FA18155158A9E8076DB47BE6B3F52E46A3A034951C212FAD387A7465B6 |
DEF0787569510A57E6AC412AF189CC4D0A331B2BA0D5B0624BB54C303E473BF7 |
E7A73085BFCD0993FB82F416D0E26F4409266D78BDEE1F83B969076465CEC0EE |
A8A38E3AE38C33DC3FF30E2555BA126765E557064C3C170C9BCFFFD765F1222D |
E25E95FCE1CD023E7A2330A45B0F0808481907917E28EB765FC14E72D1451745 |
18F2110DADF5B83A5B832F82F7410B70259B4EADD06AA31BE462896AD54E45E1 |
FE3695C2D8168B2DE006A2DB486F07E04C75C58A15A79C724ACE0CAAFFFC686E |
20E230C85A3FFBB7A2E500FEA87438E011D5CDD4C2F8A900B1B4AE667BED005F |
9CD73FA4CA5299E5A8D4F2AD0603566DB6EBB847B504FE91BAA2ACE711F3C76A |
0CBF0CD817D91A9910FA71A98E5B8B29D25B0D73ABDB64D93C2CD824CF60EECA |
67FCF7031902461B7C7BDDEB5EF795AF7C453D58D34525FADCBC4486A1C83970 |
0087B366AA114D38A7DB6EBBEDAFFFFAAF070DBC9FB413236CABFDA9AE4E91CE |
F3921BE807C3718086288DE99EF7CB566AAA54B734378F27D16103060C9BE7A5 |
06FD4A66255C9A25AB21AD566262BB07B9CEF51079102AAF9DC58047BD48AD51 |
38F91C95F4D1471FE538032BA326CDBF50FE803560D7851DDA040F564A9C8AD1 |
0CF26C339A74900316A89C9493F203D4A8C15EB5E5965B4603C1716B04B26A40 |
C85DFE42F15CDAA69B6E4AEB8E8C5CCD69F2DAE863BFFBBBBFFBA10F7D88AEA6 |
4601D7DA88286348B15870C725A4C34D69250ACAF1179598357EA013AE5AB56A |
FFFDF76F93123DA3B9A98EADCA629552F36E2474F01E0116528BD21C886447EF |
BBEF3EA69BEDC966C015ACEEA6C1F6FAEBAF0F9F33916B9A6E6AFF91D18E7BAD |
3B05CF59B1D379EA252F79094A7920F80F338BF7E0830FBEE1861BC8239271EA |
F35FD3BB29F0D9361218AB89A234D38E2544D6B9EAAAAB54A643A46878803B20 |
2F0A61C54DD84AA007F2074E1AA29F80BC6165AC228BCD1BB17352EB67F554C1 |
F7B95E460A88B1709CD30AC595F5B69EACE9E399CCAB5FFDEA77BFFBDD471E79 |
E49A491F313C256DA2303DEBF65E339E5BA87683E53F59FD6C4EAD6982F5CA3D |
5893FC462BD9A8B41077024B7843444B389CA6A0F95ED65FB560AE37935FD33B |
A4D6C63BF9095F06DAB3E48317C15D02FF3DF7DCF3BAEBAED3A8058630084697 |
238E38E2D24B2F6D5D93B647A135CE4817017F8800627FC725A0A64DA4F24C06 |
C3497EDD6EBBEDBEF6B5AF79E8A61DF0B927CA04698735A05D741D95D646B38C |
0A06D150659A54341B474A64FF7A7269BE53CACC879A3C2ABF57128292E2D4E4 |
842E5BB6EC8D6F7C63DE72F3CD37A3AF703F2154A86BA8BC0B8C2BDD0EACB008 |
30253E9501570B10C03411A5751502E5CFB098C0C1EA81D599854FCD90DAB630 |
0DA915C77C9544AB6C3A8B016BF3885C1BB4D143A14EBF56694C591930621CE5 |
C103B1DD77DFFDA69B6E0ADA10C09C9FF6D9679FA83AF2DA6A86AD7ED68A12C6 |
A3F88D12E14E3BEDF4918F7C8482A6D92FE533BA47FCC66FFCC6673FFB59D229 |
717265F07DF7DD371330DFAC36A8E05D942B01F8957EEA75D6913CD7BBCB545D |
D4E81FCBB3B8E3EC6C35530DD8193BCB21A5D5CD4F63B8F4E2B452177EB07FD3 |
22527D8151F5A8ED1E6C834D90262CB36ECF0A246EC3D9C5155E4D88D6208BB7 |
4D1C8DF2E045CFF6EADE201DA19E0C849A6BF10F3F8B972285AF78C52B9E7CF2 |
496D53F686AB26414469362843457E8CE4C16271B4CC4FFA610DFA564A7A1C6A |
6ED23A09D732E49B3A59F9E9D65B6F0D1C5AF78BCF9742DC35F3A41E2AC82810 |
D60B50AF51EFE810200474F8268847E306D909C649CECC5C5B401C1D6AF57881 |
8D74C03072267FE7777E67101832EE7D619599D62C593EB7758117F9A3CA5895 |
01CB7E64061C1CDF45B4A0B60D369A4DC400432D058B630F188C564D193CB7B1 |
351ABB0C3CD47A46ED02AC794CB51622C023B556EF768C1AB168980FDF18BD82 |
1DB59AF44DEC19F7FE138B0213D92BA24CA6044FB2C79A818A6ED97AEBAD177A |
97D7FDF66FFF76D417300AAA322EF975302DB82F8380AE864C06D3727EBFF7BD |
EFA12B33134552B33C060E85D1C29267A31E053DB7B006351D415AF7D1045B76 |
DE79E74F7CE213A385219CE6170067BC4588B690410897C1F9F01B7FD50C3048 |
99D3C8AC605A5757A58A7A4C24A46B7A056F0C729C3B77994AD4D12F33139A85 |
5B4C9E841CD48F6A04528CE04BB88C9DCD50273226C8F9C217BE905C6DC829D8 |
482F1CEBBFA23269D5A86E752C94014BF0E4873FFCA1BE98DC6FF208D9CFB5E1 |
4D5B683068DDD638D7EB3CE72F51B1269E09ABDA4068D4735C45186DDA5ADD39 |
9E4083115078461664500DC70055F70938627926C9215CA1263C706EC58CEA0C |
5F679D757254E67B6BE175D75D97D657E810465155E4C809C904082FCA651ABE |
5A85E2E72CE19ACDA60C37015C681BC1ECBF9A5CFF1765F1020A6D5338B410D5 |
C793AC094207972F5F7EF4D147A3777236D80E737E305A444E923EB27CCC0F19 |
879AA58A99B921F26C3430400AAF0556E0B7F646E321B3BF1901EF206F37A4A2 |
CAC215B5F8B2367BCFFC831BC1759CA0185A58E9B3168BBF9AF424696322B046 |
73131DABF729CAFE52856DDC334733CFC0E4D8638F3DEBACB3C02B9BEF6A5737 |
6C1BDBDAEAA992B0125F6C776DE256AF5E4F696ECDCFC92E87223FF2C82384A9 |
1B306CAB3E8046317A4455D5BBEC3BE687908F3F9F5CB927800D4C7444C15774 |
2EEA96630E215E51FAB122E0E5C91C429E82691C3A3466683AD4CAB259AD8707 |
D7441D031D46BDC58D1E25432E3805E02477DA8A95652A6E42E6D0391043F360 |
2016C232A8AA6FF740399C5412AAAD1591D85AB6833243F2F58037F7835138BC |
38AD708BEA7AA81EE581F9BDF5CA1E468788D50804EF7CE73B7FFFF77F3F4B46 |
56184F8A8DA3270D82D17252328D37BDE94DD1F0502B45B93C92798E4B0FB11C |
C30F7EF0836C7AF642110A06896C074719046A4D5B37A779B0555FEA0C757E99 |
56C00D00BC4DF5AB08D5AA15B907C75CF171BE57FF8588E51199CE79E79D77F6 |
D9676371945E8D4BB806F447E9D3EF6BD388B630E6C08C41B92065433CE04638 |
016DFC35C01398581BBF2D0C05ADF19BB5FA349134DABD01636DCD37EA65BD49 |
FD78564468DD3840EE41D61FB488C653E7D74A45BD2A6FF2326606EDA84D575A |
E9CCA3F91EDB66762248869204C7AD40443DA7B8749BAA76AB915DDBEFF4A5E6 |
1D08E671FA87288E65B1E79F7FFE49279DF49AD7BCE6FEFBEF771747FF80B378 |
AD8AA0D46FCD3CB01F7409DD0985624A882091781E7AE8A1D0EE00A48A59E861 |
4621F23A7C3C19E4CF2617E7936E7AC493433121BBF63D658FC2297367F84DC6 |
C4C9E1BB68A433705FF1A0D57AB181B3CB871F7EF865975D665E4DF537D713BE |
682D49A22DA4654833ECAFFA0A5BF3F18F7FFC9E7BEE09AAA3B504C299003A37 |
548393A3282DFED763CFABD97D2296414E363A608F782A311D9522069C1DB025 |
7CE5CD6F7E7364D9134E38016300C67CC24FD8ACC027187BE28927EA21B3E6FB |
B8C496337E3662ABADB6FAF297BF0C0273038998B4D202B570762201CB8C2FB9 |
E492638E390642660FD4AA858F4B2715EBFBA036D568C40CBBD9669B65B69FFC |
E427ABD9B3150B271B542914E19CF066F2BEA44E84AD5AAC43B3D09A5E5D0440 |
FDD2E47AD5AB5E75CB2DB7383DE8A97D295AA98D3CD70B5968B566643DCA7C9F |
3151A6ABADCE6EB294D7B76521F2B7F82CF9AEC6EAD69510345D2C4F35382E38 |
969FF6DA6BAF8B2FBE581164D75D77FDF4A73F8DE2483C94F9B2226A35500FEC |
16D33C12A582851B9EA6AC6FFD4B8906C9EB10795C5799C36FFDD66F5D71C515 |
6D4ACFE6D5A142C1EA903B5C8AE31E21DFBA2D014C43F4648B15E302614819F1 |
EAAD383850ACADB837EAC9CAD0253116D021E2E33B9836D1F357357775E953DE |
7AC20E084C1E0A3A3A2768C71D777CECB1C7FE1FF6DE044CB2B23CFB7FCFA9AD |
BB676355715805C40CF0810A28EA77B99004138D06302A268AA8082220209BEC |
6E8323BBCAAA28E03F1143142410C5200105090A61191411148890A808220333 |
D3DD5575BEFB9C5F9F9BA7ABBA3B12FD9B7069053B3555A7CEF22ECF7A3FF723 |
19E21209068A000C529D2976BE7F9A8192EA1C861970B6DB6EBB9B6FBE794001 |
F3B41C89CE8F2002F804D0402CD3A2028EEB6EE4796864CF39E71C16AE3E9474 |
D684A1B09D961FC0BF1455A7420CE158EA90423A2426C3075E980BEC162686EE |
6C595DA4E894BEC3E9C40CFF9757F1226E486CB01974ABB4E0250CCEC6BEE8A2 |
8BDEFCE63733C25A79BACF4816C65EF21DE2CA901D010AE1C218848269F9741B |
3A121DC338C7248A4E2E8122EB8145462595390523364177BEEDB6DB4A8BC826 |
000C4F4182EDE5DF844BD260C0546728B06707FAF131DD1A1C66B65177466325 |
00C689A4BE362634AA7AF39AD7BCE6AAABAE7229B95FAC64EE3CA28A9065AC76 |
8C3C135C385EEAB630D18A8F9E282280781553DFAF5BAFC7C131A4C5184E7F8B |
B395EA380D67C029E101D173DE59EF78C73BF4953499B53579FDBFFCCBBFFCE2 |
17BFE8EC43C42B19141653E614E0917B2205E3E920C307E3075E11F30B705D5F |
39599E82419F6AEA5D521844D77445C3CB99597DE596DE0862144CF4F61861C7 |
D51C528ED22F85FA3ADB70DDE93D16F9D62128EB121C74B4237F0D534D43752C |
A42468F48461C70669561D058E3FFEF8638E3906D51B69255C3421B951CC54E9 |
9766F27DAD805D04CCCA61BD791FD95CB31CB06E739A63EBADB706103090A2E6 |
133915B208FFEDDFFE2D464DF8B9CBF0FC22CC895260A9CF08524B814B358A08 |
20AE45857877FF5DC4B8CF63C112CBDCDD1DC49E8664BBDE20C1EC40CBAE958F |
C13F9187FA2B11149B84B24F391B26265804D2A0F815AC90D26EC0E22B022A12 |
3341637ACB2DB778555125FDC217BE50BA5976FAC73FFE717761C442C942B129 |
781962B3208C8AE9B03D562D858F123A04F4E04CD7615B6DB5D5F2E5CB357CA0 |
D2ED0EA24D99D41D76D8E13BDFF9CE6CE92543A5F43702EBF35948791C84C45B |
75BFC648E3E2F3FC0F56F192A67DF18B5F7CFDF5D7C3D5E0C212F04AE06ED0FA |
0455C88E20980C1E910ED0875B6CB1C575D75DA71F4A11DA2991E696896D641C |
B3C0BCE83E77DD75D72BAEB8E28C33CE78D7BBDE852D92D78447561BE69B7437 |
12000B7C4B0F5D82D8FDBA032EC9FE39D04FBF3E9724CE0A16AB1EDFBE6FA326 |
33B7FDAEF7EBAFBFBE46C606073AB25B378B754DA7531226817AE94B5FAAE5C7 |
66C10FE3B486D9A396A27D594C675902541F5B89B89241D6EA81071E0850563E |
34A568D11A20E0E9D30E5827260CC14FA2BA0CFFDEB9039CEC343D3E49008D15 |
CB43C97FD52D495B982A9275F28A57BCE29A6BAE49D379A0B4A840961A139ED7 |
7C909A29EA85627170AB6E59ADBFD2E8FFF88FFFE85CE9739EF39CD7BEF6B517 |
5E78218C579A44DD004DD4C115A60A3866C248BF242B75663D9DEEF06B5FFBDA |
D2A54B8F3CF2483DB2EE6D00851081BE186AB184BD31BD650BB61A67E057D622 |
244D08B31144B4099B6A6CBF97AE0B935003C03EACD449B29032C3CC1DE63863 |
23301D98262869FDF3E52F7FB98433D98A58EC3BB03C06DE3B214DCB45AD31F7 |
3FD015CB3A991A2484BDC5F198F25476388BD10F645E598DE286DA05E169D71F |
CD1D8B410830B806047DE4D0B1D56ABFA6DC8A93C8AE87D13AAB898670855DCE |
E7AAD76C3AAF88EF16D43436071D7DDEFDEE779F7CF2C96C0A9C131DACAD271F |
838D1C738E56B12904F0754BA0C9E4FD1F74D0415FF8C2174C0DE9DCD39365A0 |
58A064EC748A9D77DEF91BDFF8069CCFA966EC63ACA5D535314C838372CE596A |
096AD1CBF1C5ADC1BE2622E798BEFBD6E9739DAA5FB7CE8652C472CAE93A2C3E |
E60CCCDB21871C72FAE9A7CF5186E45B725D0D05B27328EC08476AD4349E34F4 |
76C3F9C89005B722E1EEDF65152F8925A237ACB368959BFFD65473BCC1796260 |
79105AD292B3C400D202D08CB8EF3A87B1B2713B10255E76A4A8B3BAED36BD8A |
C9BB93CA65DC64AEC96833B4E7231FF98854B8CE496F699B9333B25AA6A7CE25 |
99EA1400F503BA04FB4A776ED4BD798B5CC20F28CFF0137697C42E567056D338 |
474D4F5C1AB05BAA238A269835A187D786F7888E27D0A711D0AF7406E22BDA6E |
9FFBDCE7DEF08637E873B606672080E60E83C615CE285EB16E37DE786342EB7E |
46DE60497069B664117AAAEB3D0198A8DD71863029745791BDCFD7D5D9DEF8C6 |
37DE78E38DACF9B8B374CF78CC3476D48338BAE0940D5D92982C5D4543E7CEC1 |
A83A074219792DB3DD77DFFDF39FFF3C0EA5CEAC25670317D4926E12107EC45B |
11EAC42C33B493035CDC85D19F6A7665A4FF4E3BED241F4EBF32394C5EB3E6C9 |
BE84CFCB33E240AB438EAEFDCD43FF72AF256E4FA7CAAACE04C4F3F557F30E4A |
9C5A0C1D492E899D62FC1AE26B9B6DB6B9EDB6DB2257579A093D970D61DAF989 |
BB89C3B9E491CFA7B3D246CAEB54D726593FC5826C1C41F2774EDB63C1389241 |
58056FA711F8EA7D15DD8C163CDE4511988E06C650C7BFF295AFFCF18F7F2C13 |
9088348E9FBE92A839E9A493880D68DE1D3CCF03BB08D2833E1CBE0D53E77224 |
5635FB9A9410A78266DC2617E69A3B8B9B3D826BE9063456AE0B2DFDAE54FBF2 |
8EF223D00D54F6704499124BAF588BE6524FB581E396C54C2AF8755208EF7FFF |
FB659C5AE701C48F524CBAEACA2BAFC47A4A432C5AEE30381B084BC793571E68 |
4590CD596112C90A9C5B72B5007C1A4462F52C203F5D3DC912B7136CB6A3F4FF |
43156F5EF7C060C5E3ECEA36306B3C35260F8A90F5B3CF3EFBD0430F85CBC9AE |
24A600B3666A5C27419920735C609E4739324C1E193317BA379074A9B6A84066 |
F5EBB6E1B1ABC18CB3F394B8247598C6810CE5AFD969232250E03BE4B6C103DF |
7BEFBDF0CD16752B18EAACCCBC86448097D132C8B2C6C0E06C3A990E43E1A252 |
F645AA70E37A2F1790223AF2DF1A7F424A7BEDB5D725975CA2A78888EE8815E2 |
D29A23B980975D76199975AA5910A31C8C44B0C3E100CF404494EEA25A9671B9 |
B2A7244AF4B9B9E752C8B8BBC542AA4D55B74A33034324A3272D02F2438FC9B7 |
F6991C190239A1E988C8525FDD5C407A435F905479C94C0A67A317A1665F2B01 |
1EC1BC7E393C468835AE28264EBA102204833171B5E1E5C7D0D498E455AB5742 |
26B1C420923B1274443AEB66C85BE53547A976FD11471C31503890D50C0D303F |
D87C2426CC318E1245FD345C3230A0830D5070002636CBB14DCF4E71C32BD789 |
D875190E2E6675FD2A9E25FD159C1965D7ECB2CB2E175F7CB1C57EAAF14D4EF6 |
BB3C240A99816254DE5075C90A27F8AC6B5162600BC07598455D5363B8BBBEA5 |
850903ABCB51CF69BF9F554AD7610CAF543576F32DA1439D9BC06DD0A6D009DF |
FCE6375F70C1053C38FBCB5B60AA16D3FC38C3FD3D22509BB9E17367A1091E6A |
A4B4DC65815E7AE9A53278F1F92878E2BE899660777B436EB5D556B440C011D4 |
577419A3217CAA8D6B549DEC323C6CB63D9A6036856A0C21469CB6258D57E778 |
459C73B45575123DB843197250CE3FFF7CA84C5EF292975C71C515AE7526B2DF |
A829A9532826FBED56F166758D1690756DDA534E39E5939FFCE4BEFBEEBBFDF6 |
DBDF74D34D455DA14B00DC56306FECBED0C7DBA625717B6484697A3480E79E7B |
EEBBDFFD6E1D033A9FB4535EF1B1110020686F620A89FED7BDEE75140EEA782D |
03CB473C1B22190672739539CCA35F9F4B52B7FD9B74DA48A1AF00410ED9D488 |
1E5FCB72DF21717DB2E38E3B7EFDEB5F970886D79AD0A24B0E9C76B2FD4E3601 |
D5AEABEB54008E08FFEAB464FABDCF9929BC70EB2A1B3AD9F4EACF54E372B102 |
BD08D9922E4CEFD54CBC45E019D0E264E119A940481F9945DEC4DBDF552511E8 |
8E41E987658A099521075848C41B18C9882CA3DA42924B1B96A1B6370C2C43CF |
A59B876EF62FFEE22F24C1914B2C369D64D75D77FDC637BE81C4742C0D9B80EC |
581ED82B23AAD419F448E8C162D302A603BA9347765A3C5096AAA8252B36FA29 |
D9CC92D48A049C9E022F27864597F8E0073FA8AD27A14AA0058CA44EAB0191AD |
43790C9B88C884163695900399D11955637CAF830F3BEC300DDA0F7FF8436A2C |
91605EEACE61A3CC986E4BCB819E5D455D4FEC959982196DCB4C370FF20BD807 |
42D29E9EFE42392EE176EAA9A76AFC253351D2B13A390B8D3178B15A9C9EB7AC |
D0C8EB0C7123BB501059ADCBB10DB10634ADBABA5C410D8B911C28FE8849E272 |
B108C2B6027B903B643CB91F23C8A63C60E78DBD158DFE75FAD0861523CE1EF3 |
0FD99F2E7BA263148105BC4696940317AC426E14D96DD1C03DE8D635047A365A |
9F5AF0D9EBC5399BDBA325F5E88AE91959FE7945D88B611A5A2BFD8AC0BD5F13 |
23A3F22911C130840DC0848BAC42172BA7E9BEFB6FB78A97B02A6BAB5F37618D |
AEA74D3354380208FB00950081D130AA330B0536CDBA513C9C70445D8CAC612F |
45CE36DBD1035C69EC586E7ECB2DB7D4310EED323E03BB68E0F594B8247F2B9D |
366253C554F3B4442654737BF15BDA8CE7814137ABCBD90714F0E1871FFEE52F |
7FF9073FF801B38F382842BD38557CECF9BCE6F093512B3302E3430385A79E66 |
62164B75B3040343F0F501EB31BF6CC0013BD5DE7F0A69DAACEE2F69C590050E |
45861AFDA739225C44741D7DAFF7D40E6DB0C1065A0F0850A7EE0648BF63DB73 |
1BF7DE41E0AAB0B9B96EA4FA8AB2CF5D25C86B127B937BA09323BBEC374BC268 |
C7E99E351D6CB739B25A067378A7F01583E97286D813498769A9534011F19EAE |
0AF1C2C8026F0F65F4C813DD309A40CAF8C8238F74C28BE78A080F472FA84D8A |
81E268107877C7E3535DC7A1B351E58199A59F50A4A0BF1A7F5984AC0A143CA3 |
3D801C8C0EB4C61C7BDD483D4C4C3D23336BDD91A6974DDA86E36C9190196F3B |
D611A51AC0E14BE07868D84109685D69C1BCFAD5AF96E364AC0F625C17D29106 |
B17B9D7BA717354509E60EE6ACA36E7A0A80B4CE06A690C3F6BC93062573EF63 |
50E453A5EBA611E8864E172940FE064412C30D9684256B5C9C065DDECFA73FFD |
69943C862A00106226146B3A61E3058127413D89771D2F221E8062CC4364F0DE |
F0EB139FF8C4FEFBEFEFC88936BFCE3FD0F16D406C5993C9E9917BE45D442129 |
EE8203326F7DEB5BAFBEFA6AED04DD152AC7A2AD984EC31D6B52D36FB58AD721 |
539D1C6998D77C3DB6B0FC68B60401A9124FE671E274B345F94B151DA230329D |
DA71476FD9BE493510433F07DFEE6A6C77FE915D058130F54288FB7C4EFEA9F4 |
14B924ED0CFD163B6D3898E1BA9422504BDA8562492313919E03A4AD11508D2F |
A5BFD47EB092DDF53D8586CA485B42A33ACCB19C39AC4FCB442D0FC317F473AD |
A86DB7DDF6D65B6FFDC0073EB06CD932F4B49781716AA8077D8B02886A38D57E |
C080C35D4C6F9CE7DBCB42F389E10E2EBC81FD86D6D4C4F7908694E0B33C588D |
BAF4F6DB6F7FC30D37F87162E226D284C5BC23D09648714CC0C30D0D753C630E |
F7CB1C0A9813127C223026C18A6EDB6BAFBD3EFBD9CF52C7E2044144BF0F30A8 |
DB81B3F031218C05B21EFCB4D34E7BCF7BDE93EAE6F0441DB4C22531CE3CF34C |
39588C959E51525E9B8B9333594ED5B13E6DED919ECCABAEB4367A4093314A3C |
29910FEE59527DF7DD77D7CD0CF039731E07FC4843985E2605A68BE160381595 |
98831C3CD09745E741B4BA194FAC2F822E03F42B56A6D73051A2484793025B1C |
99D081EE3E5806FD9A53081B081BCB028AA4AA6D2FA6CC311E9327C62A6A2255 |
4C3D883054BEE36D539BC492A55FD365392BC0D1D6C438C1B1CF2B0657AA1BEE |
EA16A5C39044845C98D44898C95361EF138863E8317324D3696BE524B6135D26 |
7F70D06C4631C4F18EA273FC1C0ABBA859F2754E6DFB3BEFBC3336ABF2CFD9DB |
916234969612F477596DA36E758E11C090321AC56FA38A97DBC3032036E54090 |
2BD6FD4FF707F4192039D1FC522232800DD16606A5E2042D06BE69314821EBDB |
BFFEEBBFFEC217BEA00F1191849ACD666A2BC19524A4D57D3FC4D0BAFF55438E |
5F9F4B5293F8BBECB481D30FCC180C9AFE9E75D659084D5E60DD4D8F8728C700 |
8A0921EF5BE7EFB53564EA9D73CE396CBAA2E20460D82375C3C04B4290AEE39A |
35F94C32467575F4B159D0B5D2749FB81AB83218342C03FBA658CC4004528D05 |
7310E2D754C0A6D5C38CE031355CFADC818A33CE38E3B0C30EC39F4855C8DD4D |
82518A2EAB8D319B48091063214EB512C96372317CD155B6C386E5C66CB0122C |
3FE7593514B63BEDF14870A151089803AE6CD65D0B9956E3CFE3A27558657860 |
F5B936A34E4B8D5C9454C309B82C54AB73DA46DD1A928C460AA0BC546382086D |
62DE7DE8431F3AF1C41363BF0A1D036E94F50300C2D068F39977EB5EBCBA377D |
059A5A6776C0390FACC8A96E1C3440244053F9254B962C5FBE3CAFA9F2B50B62 |
01A1CB0D623893556AB7981F22228C6907A9CE3296B404812879F5A217BDE8F2 |
CB2FD78398E7806D68320993FF732ABBC58C8F4923082993ED4EA1FDB94C968F |
7DEC63FBECB30FB9734746318CA62503FCEAD62DEECD6E3310F8E615B734A5C7 |
18D40E2AE2D712678E29747836624D18DAC8E86896C8C1071F4C5304EFB1D984 |
CEF08BD0B7CE89C770F6D967CBEA8F2421C3BB8B29DF72CB2DA505DDE22DAF59 |
676D9D4560023FF12364A1B16B941411DBF2DBAAE2E59CEF7FFFFB2FB8E002AD |
7BB2E38E3899E5CAC21175C5ADEEB0C30EAF79CD6B8E3BEE38DFA40BAE580917 |
5E78E15BDEF2166C3D5D97D5A99B0160A23D8038F0AE6BD40DB7E100A291A7C3 |
A10E49E9A10887B8599E157C73A656BEBC8AA7C22569E85FFA9D77DA800D0A75 |
EEE732108C4857AA5984521DBB069F4F885EB24096AB96AB7940BD0DD9688647 |
6052CC385C805090CE03941751F8C6F887650DA7C5926331687C0E3CF040AD49 |
8A1771473C2F31931A5588EF24D5904C33C445FD67A405013DB68FB7B94B3B6C |
EB6B3476DB6DB78B2FBE982564167A6BACAC26ECE5FC6C43F4AE05BA8163E8EC |
285BE6C669C6C890F6CEB265CB90F5DAD1A67EE360B886B83D4E2B0BE3BDEF7D |
AFBD5B929D7194A24937A0576C736352DB7503314E1B2BE863891122E80974A5 |
DA41D202F8C94F7EE29FB013590C317AC7752D16BC6080585B9A99FECFED198A |
0098A73CD5C03D53A6A4E9762DC7D0BBD79B853D8299AE93EB13F2EB3CB50676 |
E79D77D69DFCE8473FD22E83BBCD2158CEE3B079A49A48B579ED7EDB1E649247 |
BCD7752999931BB6D34E3B9D77DE79AECE7732882431F873F8D7088AE8A1604D |
318179AA2A91241E7976D80601A32190CB840E2B381614BAF8CC5A33A6646238 |
C51236ABE887308D750732664924EBE0D34F3F5D2B0FF64A3D1B626E009D48D1 |
855E445474972480757F5C4547CE5DF86BE81360139B026CB64F7FFAD3324022 |
2E20FA318D5908A59954CDF1669B6D268B0CF506A40207976446AA528F68BBA2 |
A622412E63BA1AF0493C60FBEDB7BFE69A6B7E2B55BCD75E7BAD5323443F58EE |
4CB3AEA89B973131877339E3CB3443D1DC71A41A3432817DAD0449195DEEE31F |
FFF841071D64E14EB081F5F3CE77BEF34B5FFA1284F8B2813EFCE10F47351049 |
095268AD5AFC77B9245D6393FD8F76DA90072C2346FB9FB98084CF917396A2FB |
1DA5DA0005E59B2A235D934ECEDE4BB4A8DB09F76B76B0D9548543BE909B724E |
5E8E6CC78CA9090DAC0CB2BAEE22D5580A0BE58877FD751430F8065DEB924B2E |
79F5AB5FCD09A9184E35BC9F2D63E329C23C354AD21C4C6E541BAC0DF21DD114 |
C8EA0A13AF5E575E35EB967670F70F945138F63EE3A872331CE082497FAB413E |
F9E493F7D8630FFB4F8E6A60D9DB3122D28B168C49A214A205C6F7EA257D7FDF |
7DF769CBEB0CF2A8A4EC630ED8F9118BEB46DD578AF82DB1137DAB1D74CE39E7 |
5025E1E1C2A9D03935DA3A2D7A859520114D2CD7D8787DAB6B0182E15988ED53 |
F16FE23CF76BC1C2369E2B8EB323F0261848759F3E9DE1539FFAD4DE7BEFCD18 |
EA00CAD0C94B6A3C35D4D2BE3647EC39E81EC8931262345C0E3C29661C87616B |
5ADA90D9D5233B2BAAF5A981EAD56D8FA98BB303069F3129F654D90DA9CE1802 |
8945CEE3BA98495B278C7C20DE1AD9808512EDA0E8D49B7B3ACA38C7EE8CDFA3 |
3ADB959D26DB332C2205A885338E8EE85E79E59532705C730C9B1581D65FA7F0 |
37BE1CA38016437FC901477B33AE89D94EABDB268B89296A2043162AC98A9A7D |
0659469E4F8F0065074DE2502A7A4CA9F3BBEEBA2BFB6D54F1C2EEE63BF11400 |
BAD10FFFEFFFFDBFDFFCE63767F3FB677BB930310BE5EA3CDDD1471F7DC20927 |
10BB2680C1EE423502DC73F953AAF385A6124439E13D476E0744063B367A12FF |
3D2EC9FFFD9D36683BF1FAD7BFFEDBDFFEB6EE109717B5473A8A548EA5B0E4AF |
54A004043DF874CED7BDEE75FFF88FFF38E3F4917D1F0851E20822B38C73E9D6 |
BDD0B5611DFB8D403F64B496DFC61B6FBCEDB6DB6AB42522678BD35A740C84A0 |
1D0F24FE2673FCB4D34E8B5076F7724F352CD1728D8C8696BA6690C23FDD9E04 |
F4BFFCCBBF7CFDEB5FD7D9069AB80CA84CA91657BA6FB4D14612F1D75D771DD2 |
DFB5AD8641A51ACB33E3A8FA18D86D9199F22B64DC64554117F4A260ACF49775 |
88983EF2C8236577E6A1172FEEA3336836E6F2D0040285119B03BA92DBC91D82 |
04C003B350A4804F6658288F060214D30A6D8A27FD8637BCE18B5FFCA22D0F6F |
3ABF343B80AEE5C9ECBFFFFEB40090F039F1C4132596413339D2604565DC6834 |
8FE2C332051855FAABB5E728A9CE06F894C563DC560A2024322628A681DA3958 |
9BE2B3986D5ECBA0A8CA40B4A21A3505298349413911206D679DC79560D626BA |
B1E38F3FFED0430F8DBA031C835312A9F62B22FB9E79AB9C9E670D64F97456B6 |
BCA68232B92B7B430B48A3AFD58C700725EFB0ADBD7BBD077E49365BE69B2E73 |
48F5E2318E3BEEB8238E3822051CE3134F3C3E3636B268D102A92A89A046DE5A |
F1B8F48D2C03ADE609F9B0E3135D69642DC8390A7FA9D682BD051B39866E28A0 |
76F01D1784340650EDB913909E0383BDF3E93D34E236B60F073D1EC38D1406EF |
6E5CD56F52C50BC494356A7947E0118323555E05A4484FD5032EEACED046B590 |
E13019D331C71CF3918F7C8492682DD99D76DAE91BDFF8065C33BE55DD8C9E4B |
ABDCAC370E66E82F0A3B559C47A81FD90AFFF44FFF94EA28D66FC225F934EAB4 |
118BD4535D5D06F61E509295E8CB5FFEF26BAFBD9675F8F6B7BFFD739FFBDC40 |
07AAE1150B21A5640175B1C6E64427D85C6CE62FCB437B41A0A49A0BFBA312D6 |
3259E65E3C7153E8EFB265CB3EFAD18FA69A224DC2FA4FFEE44FBEF6B5AF6148 |
C54A62061945EEC87F3CB9593CD92CE045ACB923CC871FC635A36FA1318A2744 |
0D14751BAB343BB40D79E28C8086855E021A4C32BE60A3526D7B692D49E87DF0 |
831F4CB51A60593AB6EF887716F85607C2D17CB5E5965B4AF092088023C5FA9E |
2B122C0423E2F80A5BD8D866B67051B36B39FCD09FCE660F77E6273FF949D949 |
1FFBD8C70E3BEC30605F6623C0DCE41212EF1A040744FFF66FFFF6AD6F7D6BC4 |
3751D21625A4C348DC067F2FBCF0C2B7BDED6DA9D2F43A1EDA25576003F2A093 |
92B14BE0ABB94A5E51DA018893C041CE171505E6AB5EF5AA4B2EB9C4B95442F4 |
90B1A4A056410A139370488633C343E911D013C99C3AF8E0839D4DD026354075 |
EBADB7BEEDB6DB8ABAE005358A4AA5C7866EDBB5F2940C3C592CE18274630DA2 |
F4B724627009A41475A78814CAC02D4D743198B78816225980FCAC5EAD7D9ECD |
9B37D6EB4E1C77DCE15FB9F473CF7CE6482A267FF6D04AC98A9FFEEC8935168D |
ACBD56EF99CF1899189FF8D563BD5F3C923FF4D0F8BCF953BED1B016C6859544 |
83078EA6EE7CA8E7A4C30158531430995A82BAB3E11E79617C115D0739E9B453 |
04E3F0627761ABFAB48459503F2E459FBB8AD76A9887C274A5A383C959C0980C |
F0111A1644BB082221B3592D73CB50C34A236306BC80545ED16281AC89960400 |
756713F39A501E88992B978C4532B9920E3EEAA8A3CE3AEB2C57E0FD265C923A |
F9D3AED386A698CE5188F201DBCE2F3DB8EE2D9FCE4C34FC62F3C7CEA603EB99 |
C18FB95503466C1D024F23E9ABF3C84E923181C31AF367C3EA6A5801BB66C903 |
C8F3C62278B9AAB4EBB0E2FFFBBFFFFB5D76D9C5245C925F8407B91FFDD5617B |
EFBDB7364EBC565460AC5EED05BD414FA4BA22CE9E651A0243CDB1293098BC86 |
5D07AC597607C95437E622852F790D59233B9D99CD43A7E43C749AB12471A294 |
B3BDF6B5AFBDE69A6BA048C40C8AB95E3691F36EA9EE5E65FC47AAF1442E1082 |
7F9B8E583A00E2304640E3294DEFDCBC81EBE87B1288A96E7F64646B51D317BA |
F765A4DEB4B41C8E3E028126A9876A30F1994E2523E0FCF3CFD785786ACC5F88 |
7D004CB9529480A2DB3AB13D53803EF46A4272FD7CE79D77FED6B7BE25ABDD81 |
3D6302F821C812BDB42C77DC71472D45F27A38184E4044CE3BCBE1489A9BEA0C |
0B092F99025AD2914BA384A933104C64115A8BB81506434CA1B78E946770D75D |
77E9F9A55F35401FFAD0875C43C9942343D948E47AE94F67527E2DB9850B3A9B |
6CFCACD1D16CFE68BEF8D90BD65A2B6FB424E2277B93AB1F7EF8B1C756649D91 |
89B51616CD562F659256D94F1EE8DEF7EFBD9FFE6CD56457F681CCD5AC5FDEAA |
364FC1D2659A35D0E48F991B982206CA4C237E8790D11CB28C0D8FE5E1927CC4 |
D38C07B3F42980617CC9B15185098286CDEFE8AEEE41D20D3F2C85BAD518ADF2 |
64237D1004FC6D86EE69FAAB0197B7A17971B4608E64E1537D810C42EB6CB8E1 |
86106B44A19F0274D0D25CF6FB3DF7DC033A5F96A3168C9EFDF8E38F3FEEB8E3 |
10AFFAA7F6334D2D416FA5DF804B123F237F1A76DAC86A1A5B7622774EE46AD3 |
4D37D5498C2B49752067C669C23BD73DC3029DAA46F46F79CB5BE4CD3859EE83 |
B12F5FFFFAD74B3AD8B37492085943587E805F33CAD0014535F095D7217175CB |
6E87E31C78C0178FC966DC4A8449ECDF80F553548401A493A30DCA4B1B444BD1 |
6560EE87A3E1D53D68FCF58CB168D5250F0E050F642E91D494E0D3346CAFBDF6 |
D276F3C14568C7BBF9E69BCBD8D255F6DC734F7A7A6A12698DE52228073F5AA1 |
77B22595373852141B0E68314A9153915FB4616A81C0823775620C0B13852EA6 |
7725B24BC7924605E0CC81C5618F0386F0CBA3AD4B683C1DD230EA902A7023E0 |
B8568C18E73517B7B35DF4DA0247C62ECB6A9A2099B01435BCE215AFB8EAAAAB |
B09EBD30403FF56B624B0C08A28F280806A41F38ABE35AE5D989150147B0F745 |
E5925D7068E0986B9E0526197E9855B4BE46A7423404E8E7B4D34E3BE08003BC |
D834B31939398408396A2036D877785A585B46F4192B613F8C091E205F343394 |
3CA8B5D75AD46E35D758347FF1E275DBADFE3A6BB51BAD6C6CA45189B2BEBCEE |
22AD2AFAABA4BC9A9ABE897E56E8A9C66508365A237ACCEE64F7F115E3793F7B |
6275B16255FEC8A3BADBFCF1277A3F7F68F2170FF7FABD4CCE314D190DABCEEA |
FA57C63452C1319D26809D9B35C66BD7D2B9115AB365A118344D0F449BF124AB |
5B6D509687011BE112928FB7DD769BBE72FD7BAAA3AC14F217752FE4ACA60F84 |
EA84580D9FE8182972164111CA5E81F53E25459B4FEF46EE055AD42D01526DF5 |
93B9E1C6623824D53D2AB424287E307A50C76B3CB53AF5F358FF6E13523FF94D |
B8248721754F974E1B59A0894FA1F4CE25F8FBEFBFFF59679D655A1876A53BD8 |
A7CAF38845D5C5F4FA9CD86C80056C38120BB83FD44567A02ED3580D6BE27840 |
9EB222D55A30D538C72A5C450CCCA1574058A9C6582010638DA26BF6DC791E03 |
881C93EB029AA11FF3C05AD5EB0D6F78C337BFF94DCA521943C0E414FBC50245 |
7CA322B0D00F9C8A61B1B5E7C3D65B6F3D2A67526086B12CCD43733D2F72D7D0 |
6B21119E352AC217C58AB59B6BE32CAF19CDF439EA501BF0D8638F952DABF7BA |
195918AC28F37FF1D4547F1555B7284B69645A1CC02CBCE80FAD6F75CE73CF3D |
576BCFB4DB31F8E75F010ACB2B161182282CC88F7DEC63E79C730E30C0184F45 |
CFC5CAB1BC66024E1502609F7DF639FBECB3BD062229AF1E41A3418CC1CBC696 |
9664237C17EC7AB069DE748D9AB3DAF2CDA29B243DA84F3AF39E74D249FBEEBB |
6F8ABD13AA9D05A2A5573705D1C11189164B4B6C6D10CD769D2ABC3765833EAC |
30DC02BD809B9B7F2405DA7D87FEF3C06C4720AB1AB85615AB9CC8ABCD9797E9 |
BD0DB7DDF6FFFCF09EDBD658B860FD0D166FB0C1E2B5D698BF72E58A871FFEA9 |
6C9146B3228249F271BB459ACCD378CA57EB7DBB5B86238ADE4A6DE8466B3435 |
F2D2CF4DDD2CE523EDAA5A346B35AA8D34D1ED3FBEA2BBAAD378EC810D2EBBE2 |
072B1E9FE23A2F2A2202DA23C6641BE05EAC0A5789308573547498A446034DE8 |
752070148B44673C09E424D0B85330800563373A7A8D03420D8F2722D265516A |
35BFEF7DEF932CA6A0D6D7ED57CD3A6476C9B793023BFDF4D3B56DD2EC69ADFF |
F2351091631CA4A2B41258702C74BBA404AB634E4BDB6FE9D2A58006DFF5AE77 |
7DE6339F61FF9F7AEAA9071D74902C06C920A739B10A35447FE0924CBFC75C92 |
119A84D0E4A9B93D27B007B289A92AF9D0AA30271DA2D076A1150F3563A0F47B |
75230DD21376336295BF234C915E037D133590739659DD423822FC350E24E375 |
2A77484CA10556AA7B11EA87B877E8331E507B6438AD6860113455460CA1775D |
5B6F68B771F8A9468647F80B9E288F9687AEA3787BAE1A62780714700A51F458 |
19EC854DA04BAFD82F0873A45F3341C6D031889614F8E0305988C3FB3171D325 |
5D5DFDA8137ACCCD69430B514DBACB70E3231435899E051D061F7BC7740ED974 |
32C754C5B7E58E7315670CE99443AD5AECE694EA96CFDE4A989E990791ED4DF8 |
149E17787076DB6DB74B2EB984B85631BDF9A5CDA55436677DD9DD77DFF5F02F |
7EDEE9B4FA5D89C2FE261B3F73BBED5ED01EE9569ED0D89A8BE67546DA8FFD4A |
02F797D50E29776FA3D4D6D2C1D222AB8A3491B289E6E44AA9DB5EBFAC0669B6 |
475379E4782ABA8D567B7424EFF7345BDA9FFDD1B1CEA2459DCEA8ACEEE2915F |
B67E70D75A0FFC6CE137AFBB413ABDE8A7E7FDD112CD1C7D57BCB84D6D8AFC72 |
F677A0CAD9664B367B45E00056227E38871A8BF1AE5413A90CC487ED8EE09713 |
906476E075E2F8CD36DB0C78672456CC42E908BE26B091D918B3E7D6BBC60418 |
D681C91649F8E0B2E9855E8491906FC08FD17284B48B632C86CC561373847FE0 |
92FCBDE59274AA08B39546A870B29A5CCCA79599F258F5D2A27AF39BDFFCF9CF |
7F9EB43D5C0D447AC970EBFC7A04D904BBEFBEBBCC3BDFAD47430F7BD861877D |
F2939F4401C7CC4E747F5D23808F6BFE5716896113585AE857DD9BDEBFFEF5AF |
BFE8A28B9C8E45DBE9BD8682502A27D109B7DB6EBB9B6EBAC94C96DE0E2654A7 |
360651863490CDFAA94F7D8A9A37ACC0ACEA6C08FCD08608702757990FF4DE40 |
FB12C2F17551391B6EB8A18614304A9AA9EA843A17EA1D4CEF432E9CC4DC40A6 |
CFE2A5173A1842F411378E868B494756B3EC8DB8B632A351D89FFDD99F6966F5 |
F9F39FFFFC5B6EB98565E9C839EE99157C0AAC20082E02C8601D528DBA456BDA |
3537DA9732571E5C5781238138BC7B201AAA4D05505153D479ED953151E35006 |
06349F4E48192DF42829AC83C7463B953F245F36ADB1666B8BCD37DFE4391B2D |
5AB4A0D19A6866B2ADB2563B9737BB62C5A34F3C51DE4A7FF2B1466973E58D66 |
D1C8268A6C75D15F55BAC2BDF17E3151A4FE48BBD568B6525FFF9CCC92767BB3 |
D11E9B1C9F90DDA67FEAA7F317CE5F7BED7CB4DD5D35DE5AB172D1A38F368AC6 |
E27BEEF9C55DF7FCFCE147269F5839B972E5D4863172CAA1A11876061F616722 |
F6701DD0A0FE67F480FD7E36050C8FB1461C0631E87E9074ADBAED366B949390 |
F0E77E3806A7C7F7A3450902D37514BE25F0507C627DFF543D600B568740A27E |
D57284714237B0DF7EFB9D74D24931646A86813972CFB83EB482D10E071C8737 |
43CAE40F5C92BFCF5C92767631941D6AD620A38748AE733C6A06781A318348AA |
E3594B553814C5AF7BD37E2463CA24F66BD6FA482FEFF1C15173F824A2FD3DF2 |
8EFAC4CA96489AA85993EEA446C8FB1DAA263DA334EEB7BEF52DD20A8E84132F |
058AA8E3DFF4A6375D70C1057A461DE0B26C4AB4ADAA53E5BD617650FFEA3EF0 |
2067C137E18A603D3466E92AED676761B8C4716ED85DAA5375ECC158C1818ED4 |
C19AF408D71D96AE5E5DB63C18E1254B96ECB2CB2E679C71065822224FA4D2D9 |
59B4DC80A9C6D96E4A0638B9FB34386EE4A51E6F437289B64091839A75D8AFC8 |
955FF18A575C7CF1C59606CF7EF6B3755AA055E8602D12E09CB112A755F7DB26 |
A03D0584F455710A7978ACD4B8163D31563CD6CA53CB4E4E6A33B5F23432DA7A |
D633D7DE70A3C5EBACB356A7D5A8C84CA44AA57D35D6BD5FFEF291152BCA905A |
2B4D349A996C6C29E03CEBF68A95FDDECA52F5F62652DE2DFA13CD72ED35F449 |
5674B33C35F36691B526BB93FC53AE73ABDD5CB87074ADB5CB7B6977C6524F36 |
CED8C478EB57E30BAEFA97FB6FBFE3978F3FA1C97872331BCD84CB65D3CF4F17 |
B796EB71675C67337AC0B3E933840BCAD24637331A0730AAAB28E98C88C6A626 |
4989EB8C02F3A58F3EFAE88F7EF4A3FA27288654034F9EAA02467C67D37B97EA |
5A5AE2B193717476535DB6C8A6E26E670BECB31C81E4B800D49143C9C13F7049 |
FEDE72493A594EAE1D9E0453584009801CEC865E3D118FAA1BD30810B7972FA2 |
E3015B41F83C9083D031279F7CF241071D847D80691BD121A9B6DB0C924A2144 |
E4CC7D1A32C7FD743A894EAE47C61A8E10334021EE648CA180010A662DE2D835 |
E3A6824797C808D3983B9F4AC0A05FF50040803B0445C07F55F5CAEB1EBD9633 |
038AD0F30E5E09EB846FE9713EA01A8A1A64E7242E13811DC60D90628FD85513 |
40455542188CCB99FEA5A8C812907EC81CC3CE9D4071A546E489D28849744054 |
879D44D0C80AD8577715A2AE8E891FA3323111839C79C94B5EF2DDEF7E973DAE |
AFE8E947BFF3AC66F6366AA45F719452408F69C2EA9A2AC477EB0C0F8DF38E73 |
48E781A5566EE99EB64A63D34D37DE6CD38D46C7DAAB56AF6864FDF9F3C75ACD |
D22E6EB7E406F7A435573CBEE2A1877ED12FD282917259779A65EE384B93BDFE |
CA6E7745AF5F2A60A9E46E5752A69F671AA65E9EF5A5893329F012F6DCCF0A2D |
FA42BE71BB998F8CB4D65DB7393A9AF7BA1AD666231FC99AF35AAD790F3DB2EA |
7B77AF79D1C5B748544A071B703180BDB2F203D6C8031AD9FFDF4E9D0EBC7415 |
5A3DA79A51DD743F455D55ECBA1783459942F2886E86C15A61E207125490A6EA |
13CB44DB8F4FF541EC81E19160661ACE2D59264100C980B9A8BC362C5863926C |
F8FCAF7CE52BAFBBEE3A1EFF1DEF78C7DFFEEDDF125002B1F2072EC9DF5B2E49 |
BB1A741FD120ECB9E79EE79D771E4C8A262AD0DF0D36D8E0FEFBEF7712443F7F |
F18B5F7CE38D373AF6E38A1D8A4F60867AE73BDF79E18517E2A66873E930EC24 |
BB1CCC7B5123727D6FB13C9447CBEB2604337AC0D8A03AB9A606F641E4AA9BAC |
605D7DF8C31F76920575E5C1673BA0504D00C7C8802770F99CAEBEF5D65BDF7C |
F3CDFC500FABFB746E9BABA74088EBC7E4B79ECAF88AA57792061A43E8808A1A |
F91C9790D78C8B0F09B4DADB668BC13A472D038B2D9B0E62E57D2C6D60EFC067 |
E2FE4E9C1070998ED7BCEFB8E38E9209E41A68E8E4CCBA6EE6A8A38EFAD0873E |
A431743FBA3CB4AB4158B1BB6321460469C619319306F017AA07353BFBECB3CF |
29A79CA227FAF297BF2C4F9DA7701525E95D473E38B9C6E4C95E4E4E38C16C12 |
633851D65B2244028192AC67EDF6A69B6EB2C97336181D69757BAB3BAD7CCD35 |
172C58386FA4BD669EC9F6197FE28915FDDEB85CD8471E7EF8F195AB168E8DCA |
2B6E95E2AE68E4E3DDFE13FDDEAA5EB1BAD998487288272764B032C9599EE930 |
4D50AB29059CAD5E55FAC4EDB63CE0C6D848E719CFCC25A527C6FB4599501E49 |
F9E848471F1777DFDFFFE17DCFF8F6B71FB8FFBE07F3BA1665187B55D4C8DEA7 |
69875AAFDDD85CCCB45FACADD98AA6667B91368E5E78AAA3AF166D5AA6E4E7B2 |
BADD4A3644A4379B87A75B954948364B8FF9A77FFAA7975E7AA9CBDE3C92D91F |
B8247FFFB8248D56B51DE62541EC87CF75AA430E3964D9B2655899DA3E5A8DB1 |
C59EE954F1BCB931ED74D0AD4E3CA7908DD38EFEFEF7BF1FA3918D9AB739B2D8 |
E681E7D296FD30080B436100CD804AC65E243BA05BD2831C7DF4D1D45C519046 |
D184DD039C42EACBE977C434F150310C906AE6322EA19F1C77DC713A3963A87F |
929E8C1643369DBFCC2F838F4C38432518BE598C24F18A2E23EBCD0E0F210D79 |
8DDAF26C49EEDCFC0A6EB1639CBCDE9C70C209F2EF2D8A63DB5D133DB9320570 |
6B0449456409ED9381C560AF1BDAC236615EA29F639C0102CD1246139AAA2C09 |
DC9CB220314A488B183292426566E49E649F72B629E4A3479C7EEF3A918CA91F |
FEF0870F3D84918B2EA9E7262BFF6B64534E74517D397F744CBF7AC10E8B37DF |
7C735DEC8107FE9DD64BF3E697BDF6367A761923268E0145F5F8F8C4F8EA89D2 |
A94DA5179B37A53B57E7D9AA225B55A2A07B2B2427FBDD55294F79B3AD5BD68F |
53A6916AB65B79B7973DFED82A0D7EA72519DD925DBBDEFA8D76A3DFEDB75291 |
F7FA8DF2B076A3D34E13939D9F3CFCCC5FFEC7FC4BBE7AFB83FFF14B5D7446EC |
1523F2F4ED50CB6423058812EBDBD34E3BEDE0830F9661282F738E82D1D95E03 |
2218F88C5630770EBD785E11B06133B203D94EDC8C75F08CE7E75BF36A81A58F |
90B43F7049FEDE7249D2A7520F0EEC5F57D1BCE8B7C71E7BAC9C188FCFEEBBEF |
FEC52F7EF1B9CF7DEEEDB7DF4E78495B58520BE031129C4E0CA9A61A865F1089 |
E9C63B9CD059734C40A9734DA204025617EB27929FF873FB82CEDA689911EED6 |
9860040FD489394D980211BA43E845C59228E1C9537852207DE34356324A91B0 |
3C3D97B405E4FF714BAE616391132B7ACD6B5EF3D5AF7ED5CB526BD2AC4C56E4 |
038558FA90AEBA1A6A1D2C5B61E9D2A5864DC4C0351E3F29803DF7DCF3339FF9 |
8C9E91074444B0CB6C9D209422559911B248E0F3CF3FFFED6F7FBB671C8D0570 |
0C3709D3843D4BEA2A527C9BE499F0AF3E2475859CD432B03D6AE5AAB5FAAA57 |
BD4AD765B8A817887431D4018345B007EF1C0AE69A16EA49279D74F8E1871F71 |
C4110ED86804A811B58E286A1AB8CCE8245BD680446693DAD3A47339EE69C3C5 |
8B37DA78C3ADB77956AD685757972C710165FDC3F80AAF6FAA562A21A22BCA28 |
C89BB9D64A2FCBB59457FED728E851A9CFF4CB876568ACEA8C68D5E66B2EEAAC |
B7B83DD2AAB0EC65803ACF1BA9D9D0136645365A641B67CD85377EF7579FFDDC |
8DE3E37AF2CC61E75463AF0C5E78FA76A87516C044F39C9060D71CF4B6B3BDE8 |
190C30AA171A311169DC75D75DF1E66968486FB2A2AE54B6204BB3E7C5DD2758 |
7FE9F449B34258CE11BBF91FB8247F2FB924ED4871CED89687CF29CE89EA3026 |
95317D1068FA09361C18728C54CDA9965C2C1C48B59154D44DE51C0889DD3F59 |
D5DCB6FDC208B3727619141E0B40F7B6DD76DB5D75D55530F435EA36EC68A69D |
76DA49069CAE4BB602C7AB57F741C96B660C32230E0879F62991889D86E9226A |
0F3585E82ECF4575ACA7C3B02CB686AB78FD73EE0A7884C554114AC66304857B |
436F019163F1E3EE33BC5A8DC4D58C30453F61C9B9B380BE3DE8A0834E3FFD74 |
6E006C9A6F9B58143D12ECF246885956D1DE41E0CFAE8175C72D1C9808F6AF03 |
E6D48001928A900E9625687C6E608F3DF6F8BBBFFBBB0113844103066B995654 |
8C983FF9C94FB40CB4CE11FE31B29879350F94E76784A90AF46CF58F22E7E1FB |
859EB068E45A70C5C2F9239B3F77D32DB678EEFACF1E7BF8915FE0C84B1B56C6 |
5459FAB6E2B147D9A5454DE53865943D4514B48E6D8F2EC89B638F3EBC52078F |
8D65F3E635D75CABB568612E375AF32F053CD92DB2BC284B858BD41A59A333BA |
5EAB33FACB47FA175DFAEF77DEFEB3477FA5C195FAEF0D089AA77B875A941F32 |
822D044694E0642C39FF355F45DD62086803EBE1DC73CF95FF4750544FA44798 |
1175126135B3E5389DB084D71EBB98581057FC0397E4EF3397A471B03A550473 |
0D206681BC6615A70166AE8E211B877CA76F0113170DD3E816C7FD9B6AFBCC16 |
8C632DD8B21A643991679E79263F89597C275C6C38FAB431651EB7B6F38203EC |
AD8E7FA2B7FC204C9C0F76EB59F6A921171EC638B9F8674F52A6E4B9A68305CF |
50D88CCBA63393B09CB804B51BA6FD1958E418B24E39A3BD88D235EBD6B9A972 |
7929C226A1C07E9F91FF0497310518840E5B7FFDF5418119BA64B56505CCDCF1 |
136E431795C97BD65967B9A8815CACC7C4F1F668E03A747CEAA9A71E78E0815A |
A83243497BD15601AD11D14251D2FAC6307C237AC3074CD5017B5F65A12DCFA0 |
022E1AA8E122E9A44596A46CD21A8B46D67BF63A1B6DB8F819CF58679D353AD4 |
66C903AEB64A6F2A67DC6ED92246FB325B73A0A0A58625330750D0C09EF3C6FC |
5513925FFDB5D76ECE9BDF18E9149D7621772969E9F672A9D754F4A47DA5D5C7 |
C6D66C9597D6FC759E9818FDDEF255D77FFBE1DB96FF62C5E3BABDA9E40AE21B |
9B485B9420F9D3AB436D5ED377A73A9D89C8203CC5BAFF6F80B0685F4A5333DA |
81317D5EA3588B047863A3684766F2D99B3783B3A0B015D120415092C2D44920 |
874CFEC025F9FBC625390057E18A447D30E922E91E1E8CA9C79A7577395D515F |
115E2AAA56B85A1EC71F7FBCECE06DB6D946561D266F44E2F84991E0E40E717A |
C8F001C8A078DDBC2266473086DF41CB4838C53987DD7AB397536FA6135291F5 |
A637BD897AD654339CE8CE8F3EFA68230C9CD2D2E869ADF2ECC54CEC75F185BE |
312824E6CB719CA43E6545A168490C6904C0CA45DC780AC8F988C6B2A69439AB |
3BD4ADBEFFFDEF97174B4F3C94BA331A59DD91D0812B362FDBDC50DFAC66CD64 |
2BBDE0052FB8FEFAEB6D49E075B0901CEA47F04A7F6BB73AC1C79419B2E73C20 |
E91B8B53F62C017F407FFA27F0E654C393A58C4F3BED340278C0899C53C74CF1 |
E5F2AA59936B2BD21070AA54DEA94E2F399B38B5327A934F2AE0A259FBC1FA6F |
B2FAB4BB707E6BB3CD37D86AABCDD67DC69A52AF238DBC4A98F72B007AE94F4F |
76CB0063B335423DA53E37FAA984ECCE8282EE8EAF2E523765AB1B65AA790A05 |
AD4907F62CC5DD6C75162C6CCE5FD868B67540D1960E2A73D225A5D62A79CBE5 |
70A476ABDD698D1669A5AED1199DBF70D1DAF317ACBDFC8E55679EB3FCEE7B1E |
5DB162A547138A168C6836E4D3AB432D1BD85C07C6C5F039CF3207948C3BF7FA |
C03BE1418055B3CFA5E4F6DC73CF134F3C51071F72C821B225718249FC205CD0 |
A69C76EEE6CD7E2893755867CF76FC1FB824D3EF0797A447D85456F8828497C0 |
22217653EDB0A61A2D45E682CE075AF6EF79CF7B34DA7E5293E0131C02C64C22 |
A398DE2021AB095830C1CDB0E15B1DEE601F755EA4F4D11D62CF99D18CB0846E |
86672438415DB86EF8E28B2F36FDD195575E49FF06EC489763B9303D9A53DE53 |
D1EA8DB1687601CCC970AD6048C9A4D07E6136F53AE79C73741B7BECB1C70517 |
5C802BBFCF3EFB5C73CD35247A08CE0F03057C03F9F486CA2E67A7E33BA01934 |
B4343D53600B1EA585C06CD6BDA7000438E90E278CF1A18DC00AECBD8024977C |
BEF0C20BA544B90A6B49CFAB47901DB3D34E3B9D7DF6D9261645E53B98AF9F48 |
D34B82B15AE89608264083BFC1061BC808B3F3E6A18E8B81F358AED21D87A4B5 |
A30853421B2B152F0A2F274D0194BA95D2AD3666197C9E7ADF6AEA4DB7D5ECAF |
B3EEC2ADB6DC6CC9969B2F5C343AB1FAF156DEAA0550511925530498AB4B37A3 |
ECD20A7F21A35652F1CD1F330A3ACFC6BBBD27BADD95DDDECAF1D512A3DD3C9B |
CC1BDD86146CBFFCBF5623017BEEB45B63F38AD1D1C6485B065DCA4B9F239505 |
488D4E2A1572A73CB859AE83662ED13129ADDC6C8E2E58B8EE1AEBAE377F74ED |
2F5E7CEF399FF9CE23BF5C89B53180BD3296AAF9F4E9506BA4AB8B2075AB1434 |
E390CD1D488F592E0C02360042DF0921AC04149B6E922098CD0E28A9496E41A3 |
FAEB346FE6D232BAF5149C3FD2840D2BEC88C977944F03AB3B375545C4B21195 |
752AC85B05954345238611944F1AF9AF7EF5ABFA2AD63AEB5A920BDAB76C6F6E |
92FC13DA4823B0EBAEBB5E7BEDB5183A51017BE41916C25618EC03F12827AAA3 |
54F5A9AC53234A854931942FD5709B01FF55E68856113E195F114527185ED444 |
5A2CCB958F3F11135A9EAC7E2A60014475E193B9FC345E91C503E18CB3031AD5 |
3FFBB33FF331C8594692DB704C880358483C14B4FE5945811EAD524C2EEA8B38 |
83D93411B53AF3830F3E1861ED06074CA5D86A832F668B5228E7EDD70D778BBA |
4A73E38D37A6F6DA8D958034BBBEBC3FBDA9F080364A55E825468CDCDF97F089 |
A61E74154004BD37CDBE4D310DBEA6AF5FB5CCA176C349A898D4180E417327DA |
0EB0393A0FE2A6EC681A4A9EB06030553198CCF89807F6E6343D7180C147FC9C |
909273F00816DA25B914CA984D96AEF4E27DF7DD1707CDC6B1E3796E6288B68A |
CF8BE8430113ADD16469FDC31F9C2AD2665B008620B0DD8AA1B654C448008E4D |
913607230C0FBE1F3A3F66815D202E300E70C98C3FF4D932BC2B97FA3D09B84F |
AD19A5619E261B795A7B9D459B6CB2DE861BADB7D6DAF3474B4E95347F6C518D |
70A9606CFD49E678D5CA7174066DB9BC981694543859A755C9B14CE27565A983 |
7BE3BDD52BF2464FFFB55B927165885C8F295DDA6EF547465B9DB17CDE68D669 |
E7CD466A643A4F31315E8402A4D1327E9C3D5124FDB09F32A9E346B79737DBF3 |
9FF1AC8D17ADB9DEA34F74962DFDB7EBBF7DC73AEBAC0BF463187B458CF1E9D2 |
A1D6045279DD88C2210EA71207D25D51115AA8816B60BFE1587B6D39064B6373 |
3600D23F762CCE029330F6DC6C202CCA51A41806404C7378EA56485CABA8DB76 |
0137E59C9A4A5A146BCC1101D8283C91351C1B60A071480A6CEF1E13A60F705C |
246CD2B7279E78A24CEC48101F45798CDCA61064B3B591AAA4295CA1B1967AA0 |
162B2EADAC662A906820DE9E87FE13C54C952456094450CD406EBFE184134E38 |
F2C823A59271FDA96EC8A673DE6555F981CD05DDB6268E1C9E59F7DC1DDC2017 |
46C6B4E1038C1938CD11A862C1671967FB0CE246D2C02E848B8F69CF1E9CB0C6 |
67BFFDF63BE698636CFE222E413E4752D5C6F476847EDE22948C13B8024EE186 |
E279DDFE280F0DEC08CF6435C78EF30830BE39ACC56CEA2BE48CCD0BAE0E7715 |
182E6B20DDA11406AD75B85BFA096A1CDEFBDEF79E71C6195EB15615712B5935 |
CAE8DC71C71DAFBEFAEA7BEEB927AB791FB5008E3DF65882A5E82AC49A96F7B9 |
E79E8BD073A98271E3C32807EE217EA85F69CCE55B6735B36F51D7D7B190341D |
8E1BE9E0ADB7DE1A6E5A0AE5BDBCA94462C0ED6F4499C0CD8099C0DF459D611E |
215A01B2811B2027A2E5A7E745663A061E59AC5308E498F21DDF29AF3B380D0C |
B2F7BBB71E4CDA2F7FF9CBFFF55FFF154B0257DB619E2C46CC1CC72F75646AFB |
E4D5C29CDA21ADAC377FC1D873B7D878DB6D96ACB5F68289D58F359AB26A17AD |
7CA2EAAF99152CBE76BBC963772726B927C42222A0124925D4B6045A3553D698 |
48FD55DDBE84E644DE7D226F948D08A580DB9DD42AF74E2A53B9F3E4AEE51ADE |
9156D62A9DE67E9EF5F262860224CDD4849669158B2E924C723D6763D11ACF5E |
7B9D678C8E2CFAC6F5FD8F7CE44BAB574B1ECD80BDB2E07B5A74A835529A20BF |
D9DD2EBCF0C27DF7DDD79DFB66536CFA96AA737605104A788BFAA1771897D3E2 |
C372D2B766814F751A46AA4E9FE82F17C5719F8D83BA98CE60ACE7323BE31CAF |
689144EB5227D1DC61DBEA41DEF086379C7FFEF9BABA8E79C94B5E72C51557A0 |
3BDD9B0BC918E1366E2341988EA71BA84090903AF3CC332127D191121F343C60 |
A6F4D454F1D97F724E084C0D36966B84BC00586C8B172FD615A970C011611D46 |
494AF4520F8B2827DF8F61348C398F51C7387ADB6DB7DDDE7BEF7DC0010718EB |
8BB78DA39CFA453EDDED669C277BDDE73CE7391A610392F14BB4ECF5B9A439FA |
09EB0DA7CA408448E4C9C8E3CDE0F9C1D004F994EE81F6E1DCFC861B6E78FFFD |
F723E634BF871F7EB88C1EB7D4D56FA5FBE50BFA914D6300B24F075075665840 |
9A6E5A1575BD1FC850AB5EDC53C79F6305609A1E28EAD5CDBFD99B361DBC3263 |
9CC3C9C5E8B7196D8B03275D0546890C8BF6A31E79CF3DF7F4CC5226C0B3E800 |
4995A38F3EBA51B7FF33D66900051D13C3EE153BB0547C18C388D5CEFA917D46 |
B76FE06091C7342E39743CCBCC8E75DCBCD8F1FC4473F7B297BDEC861B6ED023 |
7B52206337BD8C53E6260CA7002926DA106EBDE91D968C587652891C9617B6E6 |
4537C3624BC17FF0DC6910745136B8D78F91F0311065BFB91F788B59155928C4 |
276E11B9B152CC01A7E0073070E54165E429976E6C64E05AF590722BCB9CD092 |
E76DB4EDF3B75C7FC37547CA76C245E589665EC44E7D31A9D80E401800CD9330 |
EB947D06CB55DB9202CEFB795ADD2FC68BD46D16E359DE6B9665BEFD76A73FD2 |
295AEDB2D86974ACA5CFF3ACDB6AF41BB9FE2B8545A31273830548A92FB778B2 |
DBABF657A348AD5E91B79A23CD86CCC94E6AACFBF5AB7EF52FD7DEFB9F3F7D74 |
72B23B80BD222BA9333F2D3AD4C24909B2C02046D70C90B904EB349B568BD1E0 |
5477E021B08929804F43EC88EDA791F9F33FFFF3CB2EBB4C17D210D9D633F828 |
8524D91C17A55A9FBF697A426BE015A1E05E9FEEC5ED942A2A1F1A19F03B18B9 |
0ED53AF293EA7C6AF4DDCD921379546084C0CB21FA2AAF85102819239DC180C9 |
58808B9713C3E61477412B6F9E2C7D75F9E597BFF6B5AF4D751D5A23107103DE |
19C04B6B9C71B8F14E5C801B5F59DDD1013812B90986C5C3081302763D81843C |
3DA9EFA3073C55EF5FEB0C0434A210D31310405EB74765D7E873F34FA59AF72D |
0D15194720AB4BECCCA2A0F38093D763A26E89724B91E8937BEFBD175D857F83 |
FF404441CF4EBDA6BE35AA43C7D04010EB01C34B43E4208A4BC331F58AAA316B |
11589179520E73E688D5CB3EE5D26E7500F76F0AB10D3F9D63AABE44B424188D |
65CB9649CB7266C454AA128AC71F7FBC3CD48140450C9E4705365ABD74805BB9 |
C4C25F97EAA6BA96971A27B2578EBBC41D3110FC8B6ACC924452C202DF763688 |
54F68ECC0B08E1ADB17C157C0CD470AA4BFBB6D9669BBBEEBA0B0B380612525D |
A28638855B9B7BF3EEE6E97054F0B222440EF1625856AA7B69D8A1CF439B26FD |
50EFC907C78897B5BB19B319A814CCF119C73323528AE987CB322583F2AC54B8 |
E5FFAB146AB909BB595E6CB0E1B336DD6483CD9FBBF19A6B8D256DB7EEEAAC5F |
86829BCDB6654DCC13A071D924BC9F62D36D8E34AA0793722D2B9AB2C924055C |
4CB6B2D59507DC6FEBBF91A2DD293AADD468EA4D5692594A37EBBFA61CDEC465 |
8AA102247DDAEDC968AD982CCB3B97135D0D8166241F9DBF60ED5667EDEFDCBC |
EAC2FFEFA69FFFFC57BA9D01EC95C57DE37F7D875A680571D4F45E7EE4F2E5CB |
536DE7366A46E2D91421280C4825F573A9FC9D76DAE9C61B6F84A698F5AD6727 |
09E48DD4AC3AAACAB474D70A187C3444C83BC292E8E319AFFB894F7C62FFFDF7 |
7749864C6CDD0099F5195F594DAFAA51D280634B7ADBE048D9BDD03FDFFAD6B7 |
5E7DF5D50F3DF490F618EE6F44CDC4B465C4D6A5BA68442731219A7EA5FDBC74 |
E9D2030F3C10BF13216842419734E0379B8587E808FB5FE7D110C1DF49F85407 |
FCCDDFFC8D39E2D1B5980898D8E6066209E9424C901E5F5A87ABDB761C4603C5 |
18B8C31514F640344FC0405F699478D27281AD5A0DEA2AAB2543B955AB8D26BD |
D5A81ABD694096562F40C87A7CDC2F080B4D871973100400FA43B4FBDCA711E9 |
2C398E34F6D52525642BD073F82534E0E349B168490DB226F3BA19003362F785 |
EB129DC6C73500135F0AB7D8553D844C387F64BFB24E75B14A5155A3E913A05E |
2E19F06C5AEC3A2A6051435EC9E047A37EA23E66B3133E2171335C6168858176 |
7749349FD3C596DC4D242C33AE05B09BE3A0B1BAC6F1981929666D7FB808DE82 |
8EAEC6481820E5AE48F6224F35111B16A7210BFECA0F8296B5E4B1DB635896C5 |
26AB1D639D47E0A11804D3BCD8334E014895D58C6671DEAD711BF54B62506790 |
3832B3D330020E8D8EC530304D5336A83FB5C5AD91921376FB1DCB7B937D4A8F |
4A9871EA962E6633DF7E87FFB378BD673C7BF1BAA3635ADC2B4BC073554C3C51 |
5F3AAF7BCE18995997274DB80CA9BC5CD6E2319A152F98CE5FA4B200A993AF2E |
156DB354C0AD4EBFD396075C349AA9ECAA2447B951EAE0CA094E5306BB6454AF |
E102A46A80CA01EC97A1E9AC74AECBBF0DE97BD946CDD6E848675EAB337FBCDB |
3EFBDC5BBFF9AD1FCB4B713A5D8F4FCBBCA74B875A56157E0CE25B07EB5B8957 |
9CA454D9CBFC70F8E564956BE00CC8F4CE77B770B358B3D958A39E50B70727E0 |
015DED6CA0AABC26F38B4DD109EECD787C51D7F8EB8ACF7BDEF3EEBCF34ECE6C |
63939F73DD88F58D1039B65CB76E57ECA7C60870B2073E3997EABBE44607D0C8 |
1DF31C2211593CB7DE7AAB26548A876A1923DA181C5F4E5F41B2AF93ACA85ECC |
B5968D4C1937D5A0890AF502111C2465A323B5DE74CE0B2EB8608F3DF6F0B516 |
2F5E4C016E1A02A6925004A58F35A03B912571E69967D2BEC95E7B51D1C26CBE |
F9E6BA19C962E087B64BACC2074C439D5CAED891471E197BA14B6D9C74D2491F |
F8C00708BD380C3E9017F727885D368251C7ECA32F7DE94BBBEDB65BAA8325FC |
CA3BC54E8CF308D190C2DD89DD67DD430230B63B260D38DF3198E11D1A090E3F |
F5A94F1D70C00114E7E008C67EDECDAAD333615E129034A820D0CD6949D968A0 |
6486FEDDDFFD9D7ECB2AF5C00EE09C4136E942BAE8473FFAD1FDF6DB2F55B623 |
A71A004F30E084E2296274357984E622A2F1D1714F71969CF98E1E9BF311595D |
09C6C6D7C9D96B08015323D005C16B324EBA368BCCA65EDD95CEF07EE708B059 |
6D36F12DBBC92608712988BE39F2BCF3CE93456BA0A8B9D0ADF93C8931D26626 |
5736A93C07CD85E94162E04DA7A25E2E763772B239D2FB38121C9F3106C053A8 |
8F288F94CC954D0D74CD135F62141F5FD1EF5284D42852590BA4ED3C7FC1D88B |
5EBCEDBA6B2F5A7B9D35E4A44E4E48A2492F4A4337578DF79C34E2C2A9AEA340 |
01C7F63E180759654C9455BCA5AF3D59160117FD56AE3DD36B36BA8D66B7CC04 |
B7FBAD76CA1B1261A56296EA9591D0CC4B8074B53A2AAACAA2B16ABC54F56581 |
7251E9B9CAF14D79BBD968F7FAFABF6C6CDE5AEDCEC2D2D996575C46BFC7AEBF |
E1A7679D7BE38A1553B111D91C1A01E4E0D3A543ED5E7BEDA56D76EEB9E77ADF |
4A3AFFD55FFD150B71B8AFE2C00B5DD2ABFB1EBAF376248271EE70975D7639EA |
A8A38CA18551E4FEFBEFC756D02667F9620513999F03800DAC469726FB7BF6D9 |
674B640F04B5FC8A0DE63426D282DE24114C11613E68567E62AE662387A3A59C |
824F83ECD036233889F444CAD8F7BDE8A28BDEFCE63733C2D24CAEA8C1FDE23C |
035E1DE83668AD0C0E201C4D9A00EC581EBAA0A7DAD036E0564A5A23CFD4004F |
7570B551370048018FCAFB3FFDD33FBDFEFAEB4D67E1FC881E8DBB925891D245 |
626EB2C9267A7622E4182B7164ECBEC760DDA69B6E7AD75D77693041CF3205B6 |
5AE8A9AEAB90F39ED1038E1F46598959E016055C9D963ED17B4BA18F16F746BD |
1327811F543335A34991D7B5FB886CE2E79C967E62D16F86D730226BA811D0DF |
77BFFBDDFFF00FFF20BD62DA0AC4A005BDE3CF3AA106FCF9CF7FBE56914EA2E7 |
FACBBFFCCBCB2FBF9CE6014821DD3C1BC1F5E8C6FA211FCCCB1861B303E83963 |
2CE06E731B0376C421871C2277C26CDE03A68CB33C337AC0DC0F77480089A267 |
243C2D9BACA508E7D8B6D018BEE0052F904C0381EC7B76923E5AE40C17BA0384 |
291A247690649D906A31FDB85E040F8C0FC745219DE73E8C8CA41B23EABD26FD |
473FFA91ADC6180AD585649EDE77DF7D844C1CB3E4315D5268E22303AC9CBF88 |
A010EBC78407CC04D89F9822BEC92BFBB4549392D193FABBCEBA0B9EF5AC75B6 |
D976C99A8B162C5838D22FC6C757AF9C98589DB3839A1D2BE066DD9A2AD5696D |
C6CEDE61B5F42B56E9AC51D61EEA878514F0A4F651D67BAC647E4E937973B2D5 |
986CB67BCD120E9DB53BAB1A79D16A96CE7115884EF67753D6ECF55B7D29E3A2 |
FCB02C1E4E79AFD003744647174E4EAE2A74739D75B2D42A4A6A6B793F6D49C5 |
9F3C38F9B193FE65E5AA293423EB00D9F1B4E8504B5A916292811DA84B48464B |
A4EA71888F5169A037911C801E50DCA771A1BDBA1BA383DE36CF67CBD1623CCA |
5FBFE5965BA49211D06E8998EAE2C8A9DC7FA7A32BD2C516FCC8A73FFDE97DF6 |
D967C6844A9A9D501AD341BE912EB47CF9723D08B54C00DAC96659A0E3FFE128 |
B3C361ED01158886EB5794EEDB6FBFFD35D75C83E5C16818AF84018ED6A73E81 |
7961482DAC755A7DB8C5165B5C77DD75FA612C8292E6FECA57BEE2D4944E48B3 |
F454213F77DD75D72BAEB8E28C33CE78D7BBDEE5A6AACE3BF24FAE089A2C92C6 |
44794D916556178C998C09DB0253527FDFF8C6376AE4F5ED2B5EF18A2BAFBC32 |
859C992FE78D0CF88E70623F5030E2FCC5BE43A9EECDCE72B5F1C7F1C31E3061 |
BAE8011735B32E260249101ECDCF1B812666C358B264891E1050218A9F136A4E |
BFF39DEF68B79E70C209871E7AA88E74D7C8A883B39A2F4803F8C217BEF06B5F |
FB1AF1218CEC54C708C1EF10D220A6FA246EA69A29DC2C7AE741C200D503B10D |
C7F609CFD27231D5DE185F99F7862BA20C34087FF4477F247347E7D4998991CC |
A88063F9296FFEE99FFE69B7DD76E3EA5AEA3ABFC613AB4E27D70C025AA4AC31 |
D6B666439078B4830C719D61EFBDF73EEDB4D3DCF3D479375645F4209DEBE12B |
077807D643B36E796499E62CAFA130B4DF767609CB0C346B3FB4CDB03A0703EF |
3AF2684AFADE900F203C9CC92689C6A603F6AFC77437087015D06DC67582AC20 |
5DA5BB925946CC1F68823D604660CAA2D1BA3CF6D86331C983755A0E4069E7F6 |
C17F4B193CE3399B6EB4D1461B2C9C3F3636AFD3EBAF9A58BDBADB9BC8AA5845 |
37F006B06E383F4B9CADE8855E8632FADD32449CF2D4AB50643D0D8114B0B4F0 |
A329EBE76932CB65E04CB43AFD66AB68350A8D92FCE066A35F9627E5FD526F47 |
7F37B5B3BCD56087972A3DEB158DBC31D66EAF51F427522683A55D9E3E95AD0C |
3B236332B056AC4C575FBFF2AAAFFDEB132B57B1569E5E1D6A0932A3E38D7EA2 |
6281BE75FA1C804CAA19918CDEF4CEA4E25E076B0D1C74D041C4FA6234CF05A3 |
A9A6EB1B7EE5359B23B150B7321CCE51F965618D33E7F64DC381CA34BD7B4F7C |
616AE8595033A08841A20D83013918BD054E92E43AC05A175F499DD3D413CBDD |
A5AE76AC2D2EDD7306E16B265BCC596D66594EA0C731803492BA3DF8074C8EB8 |
F1C61B535E625B9BC104E343DCD232117562B4AD4E480ED8A8638F2A363B1649 |
6495910E264F6F2979F2C9271F75D4511897C8743044033DED53ED1EC1CBC600 |
82CEE33CAC1CE0A3745C4F558CE798638E39FAE8A31D099C4301F3687620F457 |
3B51AB8274067E89B91263DE844FFCEC364FD99545A8FAF375790A2B60E7A7AD |
8FF5389ABE2C54D6D121C3FC53D2F41E43ED38F40DB43CCCC8F1C71F2F65CF5D |
E900DD92A6DB5C13CE8CEAD1E8BFFEBEF7BD4FCA0C28197391EADC30A166EF4A |
9E7DB610B4794329B9C1561B605FD1E2FCF18F7F5CD4F423697A2D56B3EA0E44 |
1C7B38043D004D20C3A8D7B9E79E2B0949CF1203D0904B26D6B0F2039EE23C4B |
36BD126720BDADC1D400CA37255C5454FD2A682D85C2721E8D5DEC3ECAE61547 |
E43ACBF6DCE73E578FAF29237C95EAE8916140AE3771A7732F30DBA003B2C845 |
A1A4BA209CD185EEBDF75E6E0649926AFF0A1D5CAA0CFDEFC4134F3CF2C823B1 |
6151D46552EAD15F6AE42A9C75D6EBF7C646D3669B6FB2C5169BAEB1C65AF3C7 |
463A9D66BF98E84E968E3C141C8FAD5A61DD800246210DD74BF166A2585DFABD |
DDACB47DA58DBB13BDFEA4D65AD65F5595F04EE48DC976ABDB1E91C62D73CFA3 |
235A4992A1FD76B3A4A12E81D3C1DFEDA746AB312295A46356AE2E7B03371BA3 |
59BE502BA1D74823A9333EA1792A39A5DB23C5A245238DD6BC477FD1BCEF81F1 |
7FB874F9F7EFFC91B6FFD3AB43ADA3494C164463F870EF7FFFFB972E5DEAA88E |
C957BDC2CE3EFB6C799C94219AFAD13CFE29E44B526544932C9C9B98330578BD |
F779B36EDE996A7839506D9026319B028622D5C037FB61C479E608657BF48C1F |
713C6340D667A1AB0F73440A2055CDCE4C7C6D5C953501760C660DCF68745B0A |
D00CBD34B092B9DA6FD484E0BB109FF70D58D6D8A68186330DF5C6F17A23BA4B |
C0D3F9CE543B82607169B4E7042DFD22C12113B925BC61B17EF8E1877FFCE31F |
473A9BB234AF3B523BFC8B92E33123CC9B97051CB17A1C3E27B318371A0E3ADE |
9B8650D0FDD01BC7262FE704910BBB64F435534834384EA04796A69796FDE427 |
3F59D41C70BE4FA391234439BA045E308C333F74C49EF89386547F5DBB05E281 |
782C95E23AB3DE6CBEF9E6D216941D7FE0031F9024912E7704DBF1E4013F8CE6 |
C4468DC41226C647E77FDBDBDEF6A52F7D89840B4F3123088B93EB00C93199D7 |
F8151402E132422E4B2655EF3FFBD9CF1E7CF0C1FA0ABE086E6C2004ED7DC423 |
501490AA109D7EC89AE78665EBE82B1E8DA9895CBCFA56374660C328C5A2EE13 |
1A9F37D51E8B1E5CF6D01D77DCC1D4100C0029A9F7AF79CD6BBEF295AF78D658 |
12AE1465B7B292F17423E75DAABB3D62CA20948653391CC653702ABD0C60D469 |
A930F44A8693A0EC04B8D146B8D4A9AE0FCAEBB6A15E96599A5E406201DA94F6 |
A3ACAD6A41B87041FBB95B6CF2BC3FDA6C7464D168093149DDDEEAC989AA5A3C |
2F1D8BC7279F880A186F03316ACF2F0577A49B5616FD92C7AA37D12B27626252 |
CEB4646FABA2BA941BD068763BED6E6724B53B59AB994B664AEFB69A851CE266 |
DECDB3222FA6F9BB296B359A1DFD4FDA3BCBDB13237A8C11E95D190A3A49A3D9 |
EA755190AB16CCD7C16BAD1E5F4BF2F65F6FFDC5A7CFBE787CBCFBF4EA504B0B |
55560C19595003BA81254B967CFFFBDFD779B6DA6A2B6062EC3D7D65108A4D4B |
1C0B2D172D267D65B645EE903A7ABA5A49B4CDA680539DE4709EDB380854024A |
4E32912428B5E0287B8D1B7965C2FE286027CC7A75EFC8D95EAC2E0437FEA205 |
6B0C2AF072E16614B2BE3D0E4037A393E8972583E694534E91589799B5FDF6DB |
DF74D34DDE66A9F2E0295E2206404784BC661C8C7CFD032F1EDF1018C9BEBBEF |
BE9BBE059480E38248F16B7569166027D000B230E655AF77BDEB5DB29E11C4B8 |
A42652480137CB15A106D33961DE20270D15062E38EC548E30BB3F414C4C600F |
E1B6F2137AF4D28A2ED50DECA8C1352866C0ECB034E78DB15791D5527FCB562E |
2B5644FE64403A780F66897242DD5E0539AF54599F14EE4B17EAAEE466484933 |
E603109B1811952ED46D102A685444E56C1C365D0A2D8475F58F7CE423279C70 |
C240B38A2C101EBDFBDDEF3EE79C735215AED7451F7CF041DDB07696DEB0CDED |
A91B00E5EA4402A1D132B6626ED45D4FA26AB469A26FF7DB6FBFF3CE3BCFA5E7 |
36B50D4866D6480EB2F0185B620F34F4CD86CA6608E4BAA80C4BD1D0045C4CAD |
64424DEC446EC036E28089E9CA9FA2E6A6400465753B26864B238CF5A00B1D7B |
ECB15AF6687DD070A93685637D94878218000A5867E60E07F6A373E4BEA8A5B4 |
5B081B8897D72DAAF05B8ABA981301A8BDACA190ECA56ADF752206CC7A104A1A |
160AB6B833D4C9949D9E8AD1B1720574278B76272D7EF63A1B6D2C09F38C858B |
4AF535A550FBD5DC5463F7F8AAC78BBAFA985219E2E046823906C5584FF65655 |
A2B65F5E6182247125474A82C97E89BA6A6BB5A5D131F9BE79AB9535F3879A8D |
ACD5CE3BADA2553AC1DD546880FA2B5616E4928BB25F4327971A96CB98B71A9D |
7E2ADA52E8BDAE9EA5373A3A2E4B256F8CE5697C64745EABB968BC98A7B9BE63 |
F92FCF3FFFFAEF7DFF1EDDD4D3AB43AD660AB00C6681D7B4719E060BE0C1DB2F |
240EA9B3C5A698C64646AAA0341D9A9FCD4EE8C1CA7104D57B9ED019C92ADC32 |
E0391A31A010BDE9AD97F3D0D382F19FA36B107361100702140D3AE3C118CE24 |
F20173828104AF4B9CB351F7AD63A1EA1EB45DE1264B017FE414BEEF96E9D0AC |
39C94AA71AE3C5D2106CDBC36B7446165A48B9D2DFF66B31F46279D01037052C |
3A10219DEA80030E38F5D4530DAED4A4EB5689A39A5053230F830A71171CC788 |
3A248E65EB7038EC195F047E6CE65B02CC062030F1857589D5D86EBBEDA6AD94 |
552595AE4B7182466F3465EC50893C6C4D07DE2C67EC6319EF4DF412CD64BD1B |
F9AD52E8A6EE15DE9FDE788E203CCC3C3680CCB74C93533611021609A06FDD2F |
287AC079E08806B4C12642E813F624974C6A5CA3A15D2C738A3E13B1DCD1F616 |
75CCD86AFAB9C33C8CD281071E78C61967B836CFA60CCBEF2D6F79CB45175DC4 |
7906427464DC190152065E182CB9BCEA61E55B9A6D9D6066613778EFF015D3ED |
401AE68E33417C1ED76A4447B396FC20D1F7639A30A7F8D0E1E2588ACD859015 |
FC24E2C64934409D4D930603B2B8BA8B9DD85031B5CFF3C2490727A8DCF7A976 |
6396747A98329EAC95216D362207ABDBEFA5050B9B1BACBFDE061B3EF399CF5C |
6764B40DEAAABCD15E9500A8C09F13BDA92416F004421C8DBA5DCF2C0A385558 |
836EA5E6FBD546283ACDA26CBDD028F937A4803B2379A7D36837F34E7B4509C5 |
6A69708B56495129BD3A21CDBA6A5C039D9755CA79A38255B7F2EA4DDE99285D |
F15647CE73968FF6261FD1F2181D5DD06ECDCFB391A2DFE8771616FDE64F1EE8 |
9E7AF2D7977FEFFE55AB563F5D3AD46EB3CD36B7DF7E3B7136A25EA8B7ACA28D |
D4918EB118D700565927F7CDA49AD6C74923842CF5FBAEAC705B85811E15F1E5 |
449A0126B1C02926F6D0795EE5B625BD930DC0B1708C409EE19785B5611A8DC0 |
CF1E932E697A20DAC63E9B0A772AAB4801E39E9140DC76DB6D6FBBED363685CB |
0C58CFC8D9A2EE859CD59C82005CC136EB57D15276D421A6FF2DC5ECC75816C4 |
570A0C44762875ADCD36DBECE69B6F26F2865B10CBB424A37557EEE7CA69DDEB |
D0190A2750F0BC59158C89019F968FF974E6E1F872FD6E445CDA7B98F1C52207 |
51E884655635A4FBF18F7FECB6C7265721EAAB2762A6A2D3EFCB799460BA60FD |
3308C64C5963C51014C0280C5C820AA4E1FB816A3B1A46006B639131B74138C1 |
8101AC5E24B2F52E404830EAEE2191EAEE49595DC0E6C16740EC04BFF0852FD4 |
BCC78B3A1002BF0A387CD7313BAFE93310F4423E98815CABE86FFEE66F4E3BED |
B41915B03F61937A4CFCF89826B4EE880F3BF0CA028395A69E8831B158DF8CD1 |
246E9F1513C99A47C8E062E83832AFC51D14778D394AAD3BD9CB92B7515CFB24 |
86CD1ACBADAB4BCECB1F95E1AB3398F29A911F600173562B5569A322C0D47586 |
2C92AB7950CA47EA69561A7AEA54A4673C73C1861B3CFB59658FA945CD569E7A |
75EEA15F5A58E355D9A21430E21EF80FB4992681CA6AD62E8B1B692B56ADD477 |
75DF53818E4E855D2D7B1FB54AD5DB6937DB65C45BD6CAEA4A01E7ED568982CE |
D264EA4FF48BB27AD82679236FF92ACDD6CABC59D6E18D74E6B7DA63DD89271A |
CDEEFC798B3AED8559DE91EA6D8CCCCB9BA3FFF1607ECA2957DD7AFB7D3FFFF9 |
D3A9432D3786D396AA0C6B8CEAD887C645E62AD8ADF2CB698C4156CC8E4E39B5 |
8B16D1ECCCF6A3853E00AB34FB0B13DE491D1BA145A85E30228F906051B782E0 |
1EB002B1A09DE38CF08D19F7B0B3AAB25120BD2AA6F3AA47B0DB8C27D13DE8B7 |
9A4DF279286013EEA7D0BD985744A839C48A29AD4F36DF7C738DE1FBDEF7BEB3 |
CE3A0B6FDBB815F642AC0B1FD0A9718886055FBCFF81AFB83A4953DB52D0E07D |
FEF39F7FEB5BDF0AC68A88B116861E07B9EF4A391B7F9C2D55E01D249D0998A8 |
2942D6CC115A1F489EA500A69DF17873DFBA831B56145171DF8CF10408E8888E |
199894E18172C51AF613F920245EAA3447BF26E2E0C3386BE892484C31FC80B6 |
A42129634D1212D38063D0386D4CC47EA0100E2A50563B09266CE8134E38E1F8 |
E38F87E44477F5BAD7BDEEB2CB2EEB55ED9234087BEFBDB7BC583B85314136A0 |
36008850CA5F54F45E8CA17D470E460421649CA81A98B898A98DDC61200C4C1B |
39DBF2882F1380A43AE4107D03A0218C5B2CDEF55C3398EC59368E9E05405C9A |
DE9A37BEC8D391F6D23E3DFDF4D3D998EC8EA38E3AEAD0430F6582C852C37FA9 |
B3494CEDBBEFBE279D74926B469C2C67FD10FBC1D64420E3EF9A27BC08DDB281 |
8E96EEAE01B190FD1ABB3BD9D329F4B37EAB99D6DFE05952C06BAC3926B7B6D5 |
6EF4266AF6D4A2146DDAA0657EB10A72E2FEEAD641DC906688567C30E0A71470 |
AC50D2B49629DEAC6A3EDA6976AA7A8666A31CDCF6BC154D29D8765612639539 |
E0C9544C961C1C79B7281570AF52DBA5F32BB7BC0A4794466EB32D6B60C1E8C8 |
C2A25C31DDB1790B473A0B9BB9B46CAB68E8DEE67DFF07BDCF9CF7AD6BAEBD65 |
F5EA09CB2F3D02722AFB5FD9A1165D8543409CD9ABB351F5398007C0EE26376C |
7434F214725DDD9873C6B60F74FC1E7BEC71F9E5973FF0C003FA27C8C629BAE0 |
59646E446946FC48162AE1EC986EB9E5961A0A8D8F0F0356E6F2761ED0FC3208 |
08378DC86A6EF7196FA608D55C2928B96C4E5ECC34048A890908BFDCF80F9B0F |
831D316D66501D2697140834FCB78485E886E6D0747C8498631BF0DAE320CF78 |
FFE84EC394747E7D420724BDE433DD79E79D6032F174DFFEF6B75F78E18506E8 |
699031DB23EF1B1DD3B28AC3EB95AF7CA5DC2CAD1C0B7459242F78C10BBEFEF5 |
AFCF2658876F7536EDEBA94774986A98E56452E2888561B13998914FEF6834E3 |
8BA56B34104B28D5C699936E595DA909AC264611F2E904A5D9F4B2054765230F |
94EE5F52FEE0830F96D46679E84350693267DFF9CE772E5DBA548BE7924B2E79 |
D39BDE84D9A715E2C25F4A0F48DBFB41004EA6DA6A890ACCFBD7D364BA0C0742 |
B4428091EB5AF271CF3FFFFC81BEC57920B074E9C1F03A741C3BC25674AA1D77 |
DCF1C52F7EB16C0202C83AF38CC5DF7EB9533D7BEDC3D58B9DA5A1D05FEAA3E8 |
C5646BEC94534ED97FFFFDB5CEF5AD04A3CE404899C9457CD9F44F4301B068FA |
E824DA381A52D4968154C423B5FC1CCEA463EF165B6CB17CF972870C531DB934 |
DF994BE7699B980239092F902E44A149ED67A92664304D3996543FC91CD35817 |
F3E78D3E67D30DA58047C74A160BE9C58955AB497550C2DBABC02FBFAAA028BA |
BC3D60C68293474CDDD45E2ABB164EA2801DB02A8F21042DC7B1D9AA98A2A77C |
E8F6FC47A480B53DCBBE848D92143A2FDB0697DABA6A7D58B52C6C35F2923544 |
1265A2D1A243F8D8E8BC850BE6AF2933B16C8DD46E75DA6514BA91B735CEE313 |
F36EBEF5F1CBAEF8B75B6EBEF33F7FFA08CE2E82A05FB7E99871E9FC4F75A825 |
330ADA486F64BEBDF7BDEF85105F2B09D0B509318C5B01B0236DAAEB9285A527 |
287D12B567B4AAE46D132A71A6D9CDBA69C307F667B6BD64E2D32808B29AB88E |
354DF8851883E5949D9298598C9B162494A119C3EC22C3167A3EBDAF5CAAFB93 |
CC269D7FF6B39F61326AF4E02DC286C59B617E2DA67B1591ACD94B3090A38096 |
7ED2080F50C94BB21C73CC31518A0D8872870A862DF719EFDC1F52BEA201A13A |
6E38FF4D331997E8683C65D2E92665FC9994C322DBE90370702803E2A27AA3C3 |
504B73D09CA521B8C0B03131305FA9EE68C49AD10D00118AA5F35E7BC085EC22 |
6735F42F9FDE26CF77620D6D2F8A6D85742AEAC65FFE395177CDB8EE6180BF62 |
E0013D894E2DBB1D0266161BD03D7119370A96D004660B00F40429AC7B1EB37E |
9C1F344E8AC2B654D58E3BDF4FFED8B94CC7CF39DE5159EB6CDEE8AFE6D141B2 |
A2C681DB154933D5043AD9E49D4594588F4C1823223DE7068E009B02B3525408 |
F318DED07BE4950ED690EA60C275A895BC629AF4D3E1B0C2F24D5C3D1A552984 |
97D0A6A673E14EF4575B69D9B265C0D709E931261135ED8408FA1E655CD4A553 |
A96E54F5EA57BFFAD24B2FD54976D965177932C4272263C9938E44AA6D190241 |
AE9A2AD55555F6B9C6A2855B3C6FD38D375A7F64546BB4D7686693ABC789D115 |
BD3EEE80AEBD72F5143D21E91696635693613A19EEF968350AC01A9275A5E99D |
A6D6773F2FF23A0BD86E5499D78A73B23DFFD132B5DB4CADA69CF2B220B891C9 |
102E1A653552BF99CB33CE3B6DA9EBF2868A7EB7689409989179F317CC5F63DE |
FC35A577758EB2B97026A53EDA6C6811CF7FF4B1CEEDDF7BE49BDF5ABEFC8EBB |
FEE30199102B5C054FA1F7FFC20EB58C211369F64AD440BCA2DB7C9A97F1CA2B |
AFDC79E79D4D2D646A492B6C76020B48BB9A0D7CC41147C8548FAC4CC32FEC09 |
4C6F148F0D912CB0CA8177401940D668125DC75D6713D03C1AE00BC67F20A758 |
0CC16B073CE0D914808D8314E01EF66906DC775E269EB53CC2C7A593127E3020 |
5E549759EF6918AE7505187EC0974A3375908D3EF18C124D7AD778DA54B5FBD5 |
DF9FFFFCE778C31225900010A03614C8624EF681830DE4AA91F286E81BD6E45C |
695157A6CE365F337AC0730862F45FAFA68474C990DD0537028985378E181B37 |
976672D736D9649397BEF4A5575F7DB54649A62A65216053AC80FB81761140C0 |
409498C4F640B220ABA13DA9EE580AC642F32B5749C690AE65C8A4EBBCF9213E |
9004C25D77DD05BEDAA925AA8640F198038405067604A19FD55DB666DB952848 |
20B8F4D7CA6A881F46212CB3FD9A0AD771722FC5E19D95424C2B9AB636374DCA |
91A64BC5E117F66EB44BD82652811FF8C007C86002D8D40C921A43E81138E4FC |
44A4FA752BB37EDD880917C5698548F2E3C7A11F497C3A4055BA258968F37939 |
FBB6E5965BDE79E79DDA53F8DC038F83A603EA916A232F5525D72CB91817847A |
9DF8E554D884E7C11F9D122B453F6F94CD8FD65C63C1922D9FFB9C4D3694072C |
05AC0F7B13933870FD6E455B532DCA896E3F22688C7F8B21DCACA647282F9F43 |
FF241DDEADDE8043E9772B75DB280F2BCA88B27ED228699F1B6DADB9B20B61D5 |
8CA1277F57DB47DAB739B25A5E72474AB5D39407DC6E6679D59DA9D77C4CEEEE |
A85CF1D1851DFDD75ED86ACECBCBCE4EA9727FC75675E7FFEA57CDBBEEF9C5BF |
DEF8BDDB6EBFF3DE7B1E26530B8D8EE6788EC4A19760F6BBED50CB82C399D6CA |
D0FB43AA17937ADC71C7495FA6DA00679B61450255309501115D33CD0E4048CC |
20E3B2224C07A632BA6B04877B81BF37D5CCECF2CEB59168674DCD8647C69134 |
7765994D8858B4D912B21F90CD5E1CFC945E7A16A3886D94A49042738EA75F37 |
FAB69D0EB794078AE54D8970CC296A30B52135D4CE25BB65778C92C55C6954B7 |
73DB10B86B380A0C8B2EBDC30E3BDC70C30D29A43F2D678B1A0058D415B7B085 |
E078B9669DD568EA8F7ECD3164A9FA5F86F487EF73C6CF31D38991CA5C400A9B |
4C23AF7B2AF8E4B84A6862F6DD1CD6550ABD2FED53026562D6D2F41CB0D170CC |
AC157F749107AE682092C92C535DD2ADC1C42763BB39C7A1D32E5EBCD884F018 |
A908FA934F3E59DB198031E97684356BD2B84EEC129EC8E45951CD30E94E6F19 |
1B48FA83392D2A460BF7B74835D55736BD99F78C20AC683B6635261CF852AA8B |
EB18D5390CEB98E541C2681074CF10E2EA546F7CE31BE58140660E39AE4EC818 |
EAB635C83026C5F804F4BD9E9A886CE7454481C856AAE255FA049257EC7B7604 |
311E5D826C8E493F525D3E4470911977EBD5BC6EE951D4DC3EEE9098EA18731A |
48D231313A08E960A84556161BA57E4FC262F48F966CBED9A61B8FCDD3922DDD |
CDD4C373EDA280F36ACA578D4F4639E2C51A29B1F240C1D5CE39A662C84ABD4A |
01571D05CA29ACC2BF951E6D48E94ED13E8F979F17DD2CEF361BA5026E360AE9 |
E6D1854FB43B4DD94BF33AED4A01E7CDCA69EE8FAC86ECADD599D76A8E351AF3 |
DAAD79CDC6880ED178F68BF9AB27DA8F3E9EFFE8DE5FDC70C31DB7DCFABDBBBE |
FF338209C44835DF33F69989AF8873CE7E271D6A7D09B9ADD86570A76045B186 |
226CE1139FF8C401071C10179FDB90591C9036061B52D434373C35500592CD26 |
0B239C52D4358BE68561EF99D528124AA7CA3436CFF6EB5FFFFA4B2FBD543F44 |
E6BA9FCC6C1BD514BB2EE919683C926682DE0CFBC133BEF4EC2F7AD18BBEFBDD |
EF122AB077E8671C00469ADB484FBDE38E3B5E79E595AC16FB4FFA2D06900300 |
EE2520E9A037EF7CE73B4F3DF5D427732EE12667D4C1C30312FF898182B0466D |
6888962E5D7AE8A187E293D93C32042C96C0467881668A5C32211640BC965FE6 |
774C75E276C6DB9B71CBCCB18FD871FAFBC77FFCC7321A34B35AD8165E96D111 |
18E8BA612B66E36687E73A1A5878991193952A055CD42868FCB9CD36DB6CABAD |
B6D2124D958767944C9A2949EFA5A87B204CAA4B98F4DFD446596847CF5A7AD9 |
CB5E76CB2DB7E061F3F900EBB80D3B9613195004054D3B6865064ACE91E1A22E |
B8726721F098A8103F3B3E2B554F8E3F1775C92F56F58CEB2D7AC0466071368C |
EC54A7E48737E9C08B21320ED4528E2C9B7E8B1F098C26AB7A5F72A4A41F311E |
A295343EA26EE53DEF79CF673EF31932B8D813CE32A45037982A2D68783FEB59 |
EA5F434AE84B47FED55FFDD517BEF005DD83BC05173AC38252D4F55D6C0783F0 |
0917915274189CAD946AD61DB215D2B6D0C6951EF04B5FFA529DE2DA6BAFD5A7 |
0068CBDA8911F925E3A9903B356FD3CD36DA68C30DA4CB26BBE32323ADDC9660 |
15822E95B2044DD1B765DA9FDE7A2CBAC576851B50394F459EA78EAFA822BD7F |
A67CE27A1D54E52B65D32439C9E36573A4564F3A785EA73F3A3A327F417BDEFC |
76E904779AAD1201DA4E9D15ADE648BB3DD66C8C3653696636AB1B58DD2B1B22 |
E5CDF9DDC9CE638FE7F7DFF7E88DDFB9F3D65B7F70D70F7F5129DD292CB7B64C |
5D983F039AEE7FAA436D649D25744C7F3A93F2F35BA8EF74693ED7F2A2289935 |
447513794D0A130989BBF33157610303E5A090DC1932DC822C14AD120DA3EA80 |
9BA7694C560194065C46908A2E146659CFA180B11F2D7FD1FA7E5827934C40EF |
FA9FE1F972A572BC7F8DA43B51463E9DAC2E3D8C51AC483A4127A254FB04B638 |
0D3B27014F68D197D31AA02E33DE9B734B385B594D1B42E47F0E8587794E5E1C |
5C42B36E998E46A1DE174B1C95434421AFE859962C59221BE8EEBBEFD6B71AB4 |
BDF6DA4B134734D2B138B48EEB44A1A001DB6F42EF54873151062C511B192ED2 |
4BD32393B895F86A444A1867C283B3096EEB18EAFA5060FAD01E5854D879A0C0 |
8CA9777DFEA10F7DE8F8E38F4F359F2B5744AC1395B15D35909E1F8EC9175575 |
32358144115CDA8E0AD4DFD8A456B2FEED6F7FFBB265CB88276B21691662359A |
23C0DDBAD5A92D5AFC04072D186DFF3046E9A17F3FFAE8A38F38E288E73FFFF9 |
D2F7EC350858C0E561BD0D136F35A6F7BBF583C7ECB20339FE2AA66006E8E5B3 |
1A526E1887533F28B0F5D75F1F779312A654B98CC840D0DACCAC1E4AE721DF7C |
E081077EF0831F04A28511A391D457EE3BE238B321697E40BC0BCD5ABFEA09ED |
1400E10472BAAF7CE52B2FBFFCF25413A815358E8F55E11C1359E7E8B039066C |
8518AB3934E6BA1F5DAE0C6F6008907567C808A3AD9E182FFB0B6569AD35E76D |
BCC9861BACBFDED858698D96BD106CA75729607839F256B31F5E56C0B6BEA3F6 |
2DBDF246564FED933AB880D96A9A029E52D2BDEE78E97CF77B459AC8B3F1BCEC |
D3D06DB68AB196346A6BFE8291B179ADB19166BB845995A9ACC6BC89A6EEA931 |
9A67EDACAF059A55B1ED62B218EB8C8E65B914467BC5E3AD071F78FCA69B7F70 |
DB6D3FBCE7478F56CD4D276B999ED5EB6F066490DD9DFEEFB043AD696530BECC |
F26A14348B0CFDE473A247CD3D1B85BE768B4EF2B6B7BDEDDC73CF6501B05E11 |
E892115ACAFA956B438D8FB5376CA1EC08ADD964B439F598260AA03D1C8A1364 |
1685D4D69AC34D4679B169F34077E52DE4C4A71F360BAC0229F4D14BD3E35496 |
26BD407C9FEA082DA2C46365E1CBC963D89C147BE49663DF7266B72CF54F481E |
231170328AC0AC6B12F2C8A890875E58338E4FAC138D050FF100C7D2593011D9 |
EB8E14CC3223068ED2107DC402FE59ACFF718A84F827AE5B6CB2691222DC5CEC |
B608D6739894C5D008CD2DE636C874695D62871D76906B0BCF25852206E94417 |
B098FEF2A962668726F3DA4780893C746665F179861307066C923F461398D0DF |
015EE438C58AA94EC4DAB8249EE9B9B63D670B2C1AE80E7E0E8F8F7E08AED0F4 |
D7D6139C241AEB1AA277BCE31D975C7209E14F4A28FBA12FA48DB668FF51B48D |
B1DEA8599D31F5F05C49BD6150F2508DD0DE313E1DAF819EBE9A085927DA0E87 |
1F7E38403CA346226B90C79046A55A8AFE7CB8E8193903B591349FBFE266A059 |
E5066294682A585B8DB65FC80746C092900D15532703F5E8D8139EB8A54B977E |
FCE31F2FC1B92E71D3A8C915FED6B7BE553392E4A9E45E6EACB168FE7ACF5EF7 |
59CF5C6764A45D762BCAFBCDAC8E24735CE501B746A678C323A3420A1D1A4CCA |
C1E7EDA60DD22735EE93DBAC7AAFF3D5BBAE0C795767EDF67BE3291F6F352B0F |
B895465BE39D4E4BEEEFBC79AD9191E66885FF2AA11CF3FB8DBCA34D5174B312 |
AF4DBA3A2BB2E6BC567B34E5F2FFE499B5FEF3A7AB6EBDF5C7DFBBE3EEEFFFE0 |
E12A88E11E82596D2E3DB9F3A31448BFF30EB5598D574A73A28A065EC71E7BAC |
8C44AB2256C949279D74D34D375D76D9657CC89EB4DE7245A9E1F11CC0CDA0F2 |
AD860708F47D937CE20247040DE7FFE8473F2AE7E355AF7AD577BFFB5D2DC17D |
F7DDF7139FF8C41C5162F8170D1A6237126C282A8CE2830F3E58D4B5B65C5D87 |
39E11A8B089DB6EF4E2DA7A961045B11BD2EB0E8C4FCBB75E7706C532C15B25C |
D6371A13BE8A7DAE5087B2B529262153A041B01F8339C2A0EDBEFBEE32B76124 |
E0DE7C12F211330E0E0282404851F391E1313B3CE0AE212E7FEA07BA6F8BF5F8 |
37D50560EED3902A8FAA57F5E34291E879AD801961F7B4F019629824AB3986C0 |
AA38AF26C973D041076949E00E12541FC6B9785E9C387487F901645924791DC0 |
4F79C6797CCFBB4FC51A7BEF7BDFAB35A985A7E930BAC78F1053068ECF3BB6CC |
F96163CE425B524C31E2EA9C907C24618346A085CF0201A425864C25C7CFCD80 |
9DA6D3E00C14CD5B07834B020AB4F3CE3B7FF9CB5FD6277A76286091338470F9 |
A157758C30F195011C3E43AA2DBF2C1422BB6E1BDF144197EAF4A781230E2FC5 |
565A6C37648EBB27F56A82522C30C34E53C0CA0CF0FAE9F60E3EF8600940041A |
10B965CB969D78E28965D9CEAF7EE5041909786A3D1C2A738C015F8265407B78 |
876AD8F53A3978B114124903028D6C82AB8F607128D379B84D8CD792254BEEBE |
FB6EA2F91393BD56BB21A5BB70C1D85A6B2F5C63E182664B9A6C527F5B7983D0 |
534EF0A1BA686AE471953BDA63EC5554C059D50DB8729CB1289FD4C1BEEF627A |
747A0A6FD1EBF6CB64F0AA8A29BA2F777CAC3D51E680E73547461B7285351A63 |
9D91564B3A39CBB3562AA41EB26E6983F6B27EA5806529B4E5018F4C743BABC7 |
3B0FFD7CF5F2E5F7DEF1BD1FDD7EC7CFB432B44AEB35ED54C72000B5A84998F3 |
DF61875AAFCBEC29828F807DB1D60DAA720F0054ACEBAF8C84A7AE1C73D29CD8 |
A90ED2C67869AA4B66B59E28A5479A18D4CA394DD6886B18D5899487C4C46CCC |
4AFAEDB6DB6E7BEBADB7B28D8998B1E5ECF178071247B267DC08AD9F62B001FD |
17750F7EB6B6935C76ED25A45594657136635D720CA27A91E8FC4471F5A10496 |
54A3F6304148E09D60611899549B537FF2277FF2CFFFFCCFBE841D2F73EFCD36 |
C57A7C82B1880FDD1BE310EFDF2BCA0F1261474CAE23C3C4F4D0679C4A43ADCF |
895E6AA83FFBD9CFCA743BE28823E85FAB970B1F538DE521E6EC881C89AD46CD |
8B4B1B2EC7D8C1CE6864A433FEFDDFFFBD98B36E3B46057CFE3FFEE33FBEF2CA |
2B1D8B666D0C83802C97CC3D020662BFFDF6BBE8A28BDC066D75C56DA0F77253 |
8E3AEA28436AB380AAB581E5BA413DE33AEBACC3FD0FF42834B43BD50103EEC4 |
D1FB48229D6AC222BD39FDF4D3DFF7BEF7E1EA799D1B36613A2A43F189CCB9FF |
4ACCC5443E808151B5ED324C00EE890081882FF1F77FFFF75AD5F250F9EDA69B |
6E2A278447A3DE216655E8F9DD0F54D52980D8532849EA871E44B14039AB89F3 |
D835DE8988A3AC2E024E957DA0CF69846A6656B2095A1232FD0F3BEC303C4C86 |
8B8E81D88598837AC30FCDEF11B526B602851E8B172FD6200C87D6667BFD3FDA |
CE034E92B25AFB6F55774FDCDD6123CBC292D6250A8222C835DCEB45D48B4812 |
4510143120E02292040444C292BC822012445110F11301C58011451104D31511 |
490B927761E36C98D4DDF59DAA7FBFCF9EA99E19E50BFDD3A177A6BBEAAD379C |
F89CE7B0259063DC2837D182331CF4CAD3186BF12C3BA74CEE9D3A75CAA4DECE |
9064C3C3831D9DE97A055C60B888488F8CEEF7A9FD2A7FBC329A14BADA52BD39 |
C8998D3D3AD25B3C92CF1367B51CA595D34F0F26A9ED8FA15A47D3AC81DE8E21 |
53C0DD5D959CB4B2C31C941A2649DA51CD39A2B36A7D2433059C0BBB6023343D |
D45133059C748ED46DA53B5F5C3AFCE05F9FFCFB438BFEF6E8729B713B9271BD |
93B8F6997FA87474A79D528FA0C6FF9F0EB577DE79E77854BAFFF4452E596CF2 |
E46F907A3E500342D2FEE92927EDBDED5A13ACFFFDDFFF6D96A3C95C481689AA |
69BD2076862030295AEFD9DEC274654F6FB2C9266F78C31B7EF18B5FD86FCCDF |
BDFAEAAB69698EDB2172CA31C74F47117B73CD35D7D8E1B16F619170DA49AB9B |
7F693F6D0CF608F08AC0D24E9645B049CDA17073BE0B13C1C346D1701B8B98B6 |
CA76474C52A4AA5D53AD8E9547A0901F5F1361E1998F843637D9B7EFBEFB5E7B |
EDB544629516F5A322C74CACDE13EF25E3A3886DCCDB6CB38D3D35381D20ACA8 |
55489EF10ED9098AAF4ADA7A8D82EB9945B8101F9341638FB370E14213BBC451 |
E5354A6802379326209E49FAC0C6067DA0381735DB21C66044021AC66732CA22 |
4FB8CAD870D44CA39B5960CF0B0E512500CC617B0E9898390025D5C7ABD80F6C |
9A5272F65CE6EAB5E7B6096084D8F5CFF6FC0E3BECF0FBDFFFDE27B3392CB269 |
143AF61B52110BC949292441282AB1C3A9A7FD626E9BAE81188AC46E6183C1FD |
C5D3C2C266CBA935B8FD09BA0CF61BC432C807F951AA7D6059F1E0B15DC8C8DA |
EF65E0322AB63DC84DFBFC8E3BEEF8C73FFE5111416D272963AC25B1644BF7DB |
AE36ED68E3A4840F754E9C5FF7F2701CB3A2AEBBEE3ADB607642EDA100BAFABE |
2FB6AC7476B71B11805177138A9DE04B61785B6FBDF5A1871EFAD9CF7E56D92E |
C4B5C215F4743193D1360C881CCA9FBC552D8793DC8A78994C94996D376BD6AC |
161107E537A4F4A2C56492A0D2D3DB356DEAE49933A7F54DE931753838B8AE5A |
0B84A073155B049F51C0C3CE9C97EA0D0EF2E073C0F99EABF0BEA0C04CD599D2 |
3172E00D47C51C4CEFE7CD07EDAF7573E42AB5E19C93B21A26759A8199747699 |
5ECD4C1FE740E822071CD2CE82233A698CE429D5C648BD70A99BDDDDBDD54A67 |
33AB0E0EDB91E858BA74F8A1879E7EF891271E796245B1F946296086A1C5AEB8 |
06A221FA3DF257C2FF9F0EB5D88FFF67DA37C4FEA08A091F75D451B7DC720B4D |
D4EDF7B6E96DA742C3ABAF989EB0A940D1D22C8866EC0802024DAA5EC703E070 |
2A512D1941C4582D8F94A0D221B4A365579840C1D8D5EC0C9C73CE39084D0A03 |
805A10EAF4302ED35510BA42141322ED09E16222FCA4ED61AA42469079922165 |
07EFFDEF7FBFDD94002C3E874F2FEDBEFBEEBFFDED6FC3E806828DB6EEE25B6D |
B5D56B5EF39A5B6FBDD5BE4248933911F03889E4C3D011D8B450FC40E04ED5D5 |
B82CE3D553B2CD449F4274570CFE28183F7E5E2C50E240B321BA142C37510781 |
BAB1269348BA693F6DA836601B36AD30E557493A038EE58CE0EB43080516C926 |
C1BE45309FFEF082BCC2CB3D71796B89781940A9FD924A42E2137AA83113C0DE |
C2B0A7A02655A9227395CCF10DCEFA69CFFE86D19803C0343C85FC3F051EC41F |
A24C399A18D3C47351A93E0A4D0FB2E9E0830FFED297BEE4AB131144AA66F6DB |
43A87B98CEB2A2F04C430D85DBCD987D7311DF134FB00F64A907D01183556F1F |
F9CD679D75D6F9E79F8FB4C1DDFCD8C73E6676AAF9CA18AC8A366BE6A53B4990 |
9988B02D846DCA6197A9AD64BC6A3EC54D54899CED7653CEB550233BEFBCF37D |
F7DD474812962BBF6DC0128A0060975D76B9EBAEBBBCB5217275F0012A522573 |
BFCF3EFBFCF0873F443EF8C92FD54F4BAC2951623F6DBB528C9A8B53F18872B4 |
D693272479D2AED691CC98DEB7C9261BCF9A39D5945FF181AC1A15090E2A1E6C |
A3D896CDD194E5FA99B611717414D549C58E2C3CCB8AA0070D17452F367D819E |
CA15705AA8ED4A3DAD346C45AAB58629E09E9A39B595AECE50ADE57D82D3BC1D |
9279E7D546DA9DE47D95F204F0C8909DC6BC19B05D6152F7942CA90E0D878181 |
6CDD6065F98AC6A38F3EFBD863CF3CF6D4B2A2BA4EAA3489B3B91E55A818B284 |
35028B9855186DB6FFBFEA503B0102F65F7929BAB2FDF6DB9B39893A59DF7263 |
B444963AE4100248B1ED6B17B12F9668D524DA9AAE1166C335776AC4CE71696C |
C20535235B4EA971ACCEF15C7CBB14307289155ECA037DE6339FB9F4D24BEDEC |
3DF0C0031CE92BAFBCF284134EB03FF115A1D379701BCCFCF9F3FFFEF7BF978A |
C7C0E0D8C754CC3D6FDEBC57BDEA55E6594247670F6233F0C8238FBCF295AFB4 |
7B61D5AA0A0BE424134294AC5274D1A08D23328B291506845B331B7CC023A231 |
236C5DCC0233B1528A51953692E823A4506D0C5B6EB9A5391F3660C2838C5FA1 |
42EA34049A6300CDD89DE2CD6F7EF3AF7FFD6B5C4C4172B0A24C2C9AB854D986 |
27F707D5824193C456A40CC6B6DF830F3E6857361565A3BAE38E3B982B9F35E4 |
1C31FF13D0AE2591F400F30279DD748D4FF42C0A7266AEA75E69EAF063F0FFE0 |
A123844BDF59F51F0BCE9750205A01709971213A761E566D5FA1AFA8BE428678 |
CC721DC50851C0AAD3F554C1484E451792C8AB651F302D78EAA9A7DA9B0B2EB8 |
C06C3E9AB80038802BAD1949A1C154A3E7CCC497EA0D91095C216E245E1A890E |
CD2F344753BD4D7D84964750999032C159E43C082E1B5289ECA70AB0133960EA |
EC790F3CF040DB844F3DF514761E2211924EE994347295F801882396C9B1F726 |
43389558A5E0A8B5636DFC64127D241C958FCB81A98188E38C880FA45210BE92 |
7FF9A7E168CC444C58620F89D07A426AB4E0E3D5EE467D24A48DE95337D87C8B |
B973369A69AA7960709DB99B15C58A9BC5FE2B766633091ABD4741A76D2494FC |
A9560931349D78055C1C98669CDC42948397CEEB77EDAF453386AAA925D3BEF5 |
4AB5D95DB5594EF24E83D5666A6640D22A016A64BDB6392BA1D26C6445A3A566 |
EE6D5793CEA4BBDE4CD7AE1BB6B55E37545DB1A2BE68D1E227163DFBC4F32B8A |
DC648383C63416E6C8A89396B8FE658A96F8948C62417CF2FFA6436D88443325 |
CDFDB21430C524502F71244CCB723C38BDA1085AAAC529B24325C236C233CE38 |
C31C503B03071D74D0B5D75ECBB7E0D415204BD5EB76118E84B8A3A998B2932F |
6404DE6AE660B41390FBE37983E1E2001026659BD1F182EFE259AAD7299028A1 |
CF94C986D3D52C892CF62E5445A93DEC269B6C62FAF537BFF90DEA993A9C30BA |
25837FEF11767A2913295587FC5DB870A1894522B1A0259147881BCC79112C48 |
EE131C1B6FDDD3C8E4E59B24CA18928FAE79F0914FED5B65C7E55D912368C696 |
F5D49E12485080FAE28B2F36116F2A19C58CB328320792FDC1310CDBB72EBCF0 |
C2050B1668B7B37970DC1989D874C77B5E9D3B8AEB6C21D842CA0BF0010E9DAF |
0FF6C727194DF909B88CD1A29F92480BC506230EAC902C0B47809D47E0A6CC9E |
089CEDA1285FF1E91E684F084AB1FA78A2A5369452C0C20AA08C4B9D8C43E42F |
C358274B42BC4A8D297D1F8B107BA0A126CDE3B40D6F83B4E380A627825A19DD |
D9502751D84396C0DEDB5980B0C5FE4A7B531314A4D2ED317152ED9A488024D6 |
100AB929235E5C5A426CD8D68504B094214D5C7B4A459E58056A2E407831033C |
BB4FABB1BB1401D201F7F3A30639648ED0B53244A889B2EF7EF8C31FBEEAAAAB |
ECD1FEF33FFFF3F6DB6F57E706BF751515AE385A40B6DCC73EF6B19B6FBE39F1 |
597129F0DC630BF67EA428439ABCD966B902EEECB2DD3354C942DC1F75CCAE9C |
A02ADF3495D056ABA34164EB9B20B554514735877089358B40B44B1B0739C738 |
C1CD50B173DD69EABF1AAA95461E6DEE4CCD21B6AD9B7F3D6D24A673B346D192 |
308F8DD4C3142CC97C7459C15B56EB2CBCC97E737FD7F48FACE96F9A0C5CB5A2 |
FEC4932F3CF3F4F30FBFB0DCC797F0D8B2582E6222C67615B36FEB6A2B4D7E65 |
82571201933A5D25551AC6E950CB09A724BFDD9E12FC47FB52596415C30859ED |
83E7546E50CE2B99CB76CF62F7EF2C627D4B6638B9281C0E46E5117D633EBED7 |
6A0C3244C8896FF01922414FD3B1110587ED549ED267564A1B1A2C22914FF386 |
8F3FFE78FB2B3604F7F2F8463F93210633159BD11B6573B176F16B8570092EA8 |
8B1A03E18CA52C238CB41FB723AA0CFB015768C45EC84203659193590A55C753 |
940EC1E1A7820B79955EE81E9592DB249BA09938B44BAE0B132A8BDDD17D5483 |
C7AF445AF26C7423C5D4715984D8E66F9B6DB631173C8DBD1654F485AE52FB0D |
653D4374BC90A1E869EF4279762A13AC056EA3CE74793B8CD551E625897DDE04 |
59F266878A47351B0AF680810A0E4AE99772975D76F9CB5FFE825CE62CCB0622 |
F6AED280F9F3E7DB056D37DA4391001202DC1750705935C7558CC1F7050A8575 |
AE8E3D3078F079CCAC3436B4079A3058BC585FF6A43E4FE914ADC13D92DC87A3 |
6551A9EDA9BA4D10A755846FCC7D253F3875BDEE394AEA39A143649F34496B5E |
3B511331DACACD2D51EDFA794B0B2E0E95F3DA17E588B3CA34C3B6BF927153D9 |
BAEEAE11322DF8BE9FFCE4273FFFF9CF5337CFF1219345E2830251A8BC0199B2 |
9F357B9C05CC0E852210C51CCCC423CE7D446568B88E02DEA0AF77934DE69802 |
EEEAEECC03B90D1DB011AF80CD24F551562FD17C0E4627B6A0B8CA075052C008 |
56E43FFE712B5A9B98A56F4A34CD93D09566ADC30468A556358738E7CE4AF30E |
C1235968A06B0BC28DDC30B4FFE360D7D25A47D1DD61A8BE66605D63E58A8155 |
FD2343EBAAFDFDCD679F79E9B9675F7CE899257EB49EEDD616D5BCA2C71E7B0C |
AA3C5BAD37BDE94D66F28497F3C27EA44BB3C45312D19862A44B62B397F13634 |
8721757439255461E9EBDAA91C75925B9E323344F0B040C589EBDFECE3196C53 |
A9D57FAA8055E3C8864601CBBA07DF7BF0C1077FF9CB5FF60939E9037DACA47A |
83A362D876DB6DFFFEF7BF1F75D451575E79259FA4B52A175471856756824603 |
5F013BA07DC786E84895E0A09E4920B8027C8F445DBFC3E3175357242DEDA8BC |
9D8FC869FCBA054B239F5B254675D77A72BCF927EFA84A5CF680EF335F129478 |
7B60C291B6F206148A44D492BC1C33A8E38301A60BF7DC73CF9FFFFCE70C5E5D |
DF712984AC195301EB3A6AF41422DE5E916D512BF0A29D8E582D43D4D615D768 |
D517D5941A4D9AB6A35F90D4863850A9C567F7B25864C1F7DA6BAFAF7DED6B59 |
0466DBF070B630A91BB1B385FDF3F2CB2F3FEEB8E3245204B754BAC107BD43C4 |
60DAE0CF3AEBACABAFBEFA85175EA0BF1C9E9CEFAF20BC37D55C175C70411A9B |
9DC828513F4A42EE84FA891261A6109350FC430BAD347388603DB10E80C36509 |
2AAE394AE9451C989A78E4860E026FF0A1ED9A78C97BEFBDF79D77DE29E249FB |
8CB0F7E9E89A786D925294CB3E6C6F6CA292889D16EA4D69020D06730D9B5816 |
701639C659685B11FB18AE8B087F6CD83648A4960D1543D083C9ABB1B7A3171D |
21222D5409B2DE59AEB8CEA9B98159B05AD9234C99DC3367CE6C53C0BD93723F |
6064605D4C818C30FB2D055CEBF0FAD5E3ADBCDCD4894D9BD018A53CAA9CDD5A |
47259EE74C9E58AE8043352F8BEA303FD8645696FFEC4873D2AB5ADE8921ADE4 |
0C5959A39E87A00B71319485CE229D938305427EA46BC5ADD68D0CAD5D33B87C |
D9DA952B1B23C3D5B56B92E79F5BF6DCB38B1F7DE6C5E014B0B08EBC80475144 |
61877662A69EF1049CD78BAAD65704923323969909404992654288F0C60E3F61 |
431B9E5D9F7C8F44581AB92CECBBEA202D7C41C375F00EA303DDDE8DF6CE10F6 |
E004E3544903C6384E8C4AD7ED3CF8DA21C1494A044315C703AC9164B1CC03A1 |
6C0F0B728D59B5C5B22B6372D2ED5C755FF861305879A3D3ABDEC4A1F1EDF899 |
5CA6B044ED194E3FFDF49D76DAE9F0C30FE7F831F995486225754BF249BA9679 |
66003E72AE59E5F1C16DFA9032015EB05A0A4870C47C27CAF6F9870F017B1FC1 |
64D332DE7AD9C74C761F73CC31252343990B168521658E98A2A4805BC5153100 |
00FD882986CF7CE633EA4CAE9A544492B2AA4DD7B50623C01E0195A30833D34B |
A6537B00558A0457E58F00F028E0CCC1A63CC7131B8F07049A40945571751B36 |
EA5C156BCA5B83DEA24E941527875D120E0C8FF9413473E44F3BED34FB8D3D8B |
5D44E6AF7AF4FA26757A79E0BA0C08E6A1FDBEB05EF39832373D730BB7439A31 |
57E4CEC4F5C6FA7AF88E40C88A982A143CE6BE9202164B0C03509EC2DBA600D9 |
50D29A64A8DCD830CA46A945870DFE231FF9C855575DC5B0C9A31147643B6591 |
6794CBDAF3DA2980CA571C3560450567F3CE8F8231EA2786A7AE55106D278777 |
D34D377DEAA9A70013342237BBE078E8239EC2364F4E33A7DBD8F360D1B4225D |
FC2509937A3B67CD9AB1D1EC5953A6E4BC1343EB561368F20AB8F0614785A4A4 |
809351C5456E611AF598E417403A2491B7DAF4A8D7C1F6A619CC7731056C9E6C |
5AAD64795BA4C203B665CDAF908EE41C1D593DE48D81F395AE76AEE70303D855 |
29C0DB03F560C6CAAA15836BD63447866AABFAEB4F3FB5F899A7173FF7E27A8C |
A8876C80C4A35061C71D77342577CF3DF7D86F5E6E2E169B7D9B6DB679F4D147 |
495E52FF805A5265BAB7D6C77CA1BAF05410FD760E6D3C9872F6F5EDB7DFFE81 |
071E60E3A28194A352D414873B8955F66C883472058F7790E45E6B5B37266C8A |
E0C37DDEC5B101032924E0C9D112B780AF3ECC22F188D6456FAAAE0BBA629BAD |
EC46117D55EA512438E06F95FE819DC03F72BBD961CBB4DD76DB99936DFFC46A |
F119A9A4E0A7A5DA016A0599110C4FEDE142F47485794C5C5F55D928E209A24A |
7BABADB6B28BDB29D5E0434CA966B18DCF04FBCD8B366C0EDF35B2F492AD435E |
13709C7D1D3E2CEF4C280917C64A3965AE8489A60240CCC8A12AA35CAAA52929 |
604D0EBDC5A8AAB7DD6B8FC0FADA31B4F74C0506AB621E708DB12B5427D65E80 |
0040EFFAEBAFFFD4A73E857F69CB6A877D75F1E23469ADE7CD9BF7E4934FA200 |
C84784C25701286B9F2C55C69BD146CAC37EE3093A541C150ACD4A969494966A |
730592B745572C04A91D46FBBEFE8809C381B887EC70B7DD76FBDBDFFE665723 |
F4CAB2320FA6EF6DCC36B1845E595C8664EBC5189236C837DB5B9659296134C1 |
BE4251A9B7077CBD707A7022ECAF1C3492D9F6275B141C477C5F7BC066D16E55 |
1CCEF218DFFCE637DF75D75D5FF8C217162C58005D894E1C5AD376914D230D22 |
1BB1F79798F8AEB9E69AF7BDEF7D0ABE7ABA85D243216F7DD136A46C50856035 |
BEF18D6FFCFDEF7F8F28260482491A9CF2B66D00258059A5890E2A6BC6F6CDA7 |
B89045491A3A3B2A1B6C3065E68C6976A71C8736D24A32D7EBC331765D48C9B4 |
22DF31388B581E4C29C497D4F32847A59A440FB875482AA2A88C3AB835178939 |
B495CEA27B638EADAADAC357AA2DE5DD4C2BCD34349A5941625204503BBAB176 |
09A116CABEA3B07383F99AC9D0405837900CAC0B2FBDB4F6B147FFF1E413CFAC |
E81FF292D7C7D2B3D8EAC4F6258D757D80FA5F7C4151B9D75E7BFDFCE73F875E |
079603DB5E666B53EAAA1634CDD164DAA50D6D1F3027CF2E75EDB5D772F2B1D6 |
85767EE8A187C4E28BCC9528012142081A158E8F48D35F9099DED7D4C2C9C393 |
D06F8EDF64D72F77E65A27219D517B302F7AA2B892FE90D732E654D82F4D6CD9 |
356DF7DBCE8439815837287F4A53ECAFD21C2A3C983F7FBE4DD798F7D5E0E528 |
E046B05EF807760593C8E616CB3F0BAEBB5925B251AA48C38664EB055D972C2D |
3D266EA5E2AEA598336022003E1EED55AA7A1A73BF99477BE289279A2C5BB468 |
11BFB461F8A0AB7F011325B95812F15A77C52A88938F791DFBFCEEBBEFFEC823 |
8F402C4FA64DB156FBD3BDF7DEABA6086A365C927789632BA314DBE6F0A4934E |
3221AB46DA2A83B1CD6C5B57362856918DD9F3A827B12A52274B3ECDB1C71E7B |
EBADB7DA61915FC831246387E9100A7D59C24061C0D1E60805639BD9F4A8D2BA |
BE2DAE37A14221CAED2B9AC3B4E08CA3C3FC01071CF0F0C30FFFF297BF0CA36B |
BA2AAEB59FCE0EAA88C8BC047D88D69E6F284E0C4636A84A64FA3F0000FFFF49 |
444154FA1D99AD60632694A2DCF0FA76F131619439506DD3355FF12080F1E495 |
57C0C46929223FE49043BEF9CD6F626DF8B4B43F1D26E2CE38E30C3B3B242C78 |
103EA06844257208E2BCC20140C8012828A746454DB8D4BE36524D5493C8DEAC |
0717800B7CF825975C72D4514775172F3AE609851A0ABFDCE69C927191AA565C |
E36446AE62CE7CDE7CD85AADB9F3D457AD80415572C7B1ABAB63AA29E1299372 |
0F3AA947DB673D082BFF673A8A7355B38F2B90B84684BC6ACD08738F3A3849FC |
C73274703C96F6E9EE4A35EDA8A479D1706296458A07DC0CB6C07967A424CD09 |
27B966350F4ED7B3A4A57D1BC196BFDA91F3647556AB7DD54A57C83AD70D64FD |
2B479E7DE6A5071F7CFCF1C7FFB166A03E9EAC2FD5EA49468497F3E2CA945786 |
9890C0C3DB79E79DCD68CA0AB639DB3713D71D9D75D6596637016707126CB203 |
DD89282760C259E53AA289E70A123DCAC1D8CEA6905132A8DDB34922665B7115 |
91C38D394E9D5E963B8B08796E7AF6D9679F79E69958B5748E425293D8CB46F3 |
988E797DC650775D7B4344539B64B4436216AEDDC51E0D3124D7C10B659F6B2C |
BDE4C629722B45CE994C62152F99ECAF7FFDEB202CBC8462AE4CAA9A2FFB97BF |
FC056F83E419B2525A21B85874882946807EA5FA2B3FC344DBC61C7F89C7D85E |
360FB6D127D8B759ECE6C44F9335B646CA5664B133B964E878D7114ECA842CFA |
9EC94701082CDD9EEC28BDEC5B7623357857AA0F481D3008C5393C876B52B04C |
D0D60C5E91D2542711508656A09686F8103B8A83F0C94F7EF2AAABAE2238699F |
4425432DC7ACDAC5172E5C684792EAD8D7BCE6356679989437A3C7D60E960602 |
18849795EEE101ED14DB1818A1A781C4BDB38BD8A8EC6A3045E000D842C0DC44 |
81F8873FFC61DBE461346259469BDD0E88A58C429ECE5491ED287B5EFBB09944 |
66AFE354885D92FA3ABF345E07FB88F4BFA280B5A942A1A2A4FEED7170F6EC97 |
A41888FF131086674A7D21E9662D8B59712F5835506976359B1334AE875CD805 |
BFFAD5AFBEFBDDEFDE61871DEC61A9E5250267B7BEE9A69B0E3CF04071AA7844 |
148FA6400EAA1A3926035DBBBD527425D108859A545502CB849340BCC4162849 |
C782DAE6065747C68D433367849E3C69929D9C1C6E5A6D443E8A46840A17A89F |
4A5533AE4C954F21085BCB3F3BB20AFE2E3A38FE697D7517FC945968E5BDD24A |
6F0E8D2E169D8ADE5A47C5FCE166C819A1ABB5A492DAAC35AB8580ABE688B0DC |
BEC87570EEA0875A67B5BBB7CBBCD0AEEAF4CECE9E3431855A7F69C99A454F3E |
FFE05F1F59F4F8536B87C7703A4BA9235B30D20C617CA69EF15E9548678A58F4 |
5806369F308D8A918E791D08658832D9865BB060C10D37DC205A70FBE5D5575F |
7DD861876123534C82B7C48610DD124018B821ED6AE61993631BEFBE254C2CFB |
7B025B41485A8163E5F93186534F3DD55C34798A901DE21C7BF6A2D272E8BD9D |
4F7B40DC8E66C1F22AC94ED6B3197BA5F948EFDE7BEFFDA31FFDE89C73CE31B3 |
DACE36D559E38D3FB82A6ABFE20A5529C786F18AD340C64B595222BA666B9B34 |
114C43E5134A75AB87922D1CE1109ED11EC48485995CE79F7FBE427FC8B28943 |
D05964D325AC859632994E854CFB4B0C0378B70DD75028449267CAB7D4AFBE7D |
EAD866C0A43D7ECD2E4E0CF0BCE2A5EA141A417AC91E1CCA41DB5542EDCB5FFE |
F2C73EF6B15098A1B6828434EC65BA04DF8E0433AB63E6C2E1871F6E0A52C864 |
2D22E3378D8E0759226BB4A36157360D6A1F805B2629B05762096E38CE76AE4C |
9F12BE2510BB6D690F0EE2C02AF7646F70FED4BC92403A42D5DF2B44AB519BD9 |
36C90B2FBCC09EB18109E2E06144A1886613D1A467AD9858D8841876EA0F4113 |
BD37BCE10D77DE79273417AA0451B459A9DF301A9331C12B8B6520EC7991E128 |
D8130A4B8BA0345F51BB08AABF8815E31CCA362224498219D5C8A83023CC1822 |
436197B25FDA2AD82DEC76F6BCEC25332E4F38E1048E2A37458372AC7CA2CDE6 |
C77ECAFB2A998FB41784008BBD0723AFF09569AC83E7EB2039D8B1F6D7DC4DE7 |
0FE2AC592F5E9BF522CF5A353D58ADA6A680EDD279A7DBDE6A34169A52C0F958 |
2B559F65515D1ABA241DFDCA37415651B951B5A6DFB7CA4B8065E597CAEAADE4 |
687552E149E515BD216BE43AB556310B36A4F56A0E8DCE6AD5505C2DEDCCB1CF |
D5467DA4889C862C6DA4D5B4B3AB5628E05A573ABDA3B327099DFDAB869E7F7E |
F9138B9EFBEB838F3FF1C43FD68D94F75312294430FFBDAB3101EA6F828DC8D9 |
83E6B012BB92D97BD1A105D7ED6E028BD294A59D25513EE960A0DD4BD5F1DE95 |
6C8F6C7FEB5BDF7AEF7BDF1BA21DA7C8677B365466ACC6E9897EDA5F492CF310 |
DA82AD6547C2DC53B33A172D5A047F4D88511A79C0617486A97D51ECF56FFFF6 |
6FA63E8147295227E7DEA48999357FF8C31FEC9744267DF5A4526E13F43DCD5C |
A5932FCF4393D1263D14A45144F55532C107BCEF9EB98263565C4F270BAFB778 |
D91570956CCC262FE812C82ADF78E38DBFFDED6F7FF2939F988F152227CC0481 |
68336ECCC461305863FBEDB7DF77BFFBDDF1F69558C1D97E784B4A36233DB7DF |
7E7BBBBB84E998FB04CF00199A161D0F152D30A1036690E89C6774CA46F34C69 |
481493980F0442908FC1FA090C228B7DDD55E68480C30E20E5A650538891407C |
440D1BF8B129836DB6D9E6E1871F1635823D85896C8A5CC92F90D7B0CD2399B6 |
F3CE3BDF7FFFFDEC0D48EB70FDEDA9D97BD0F4A34510DF988C7C056B86ED2192 |
29C874A928C5DE6A149DC454DDAEFC2235FDEC3DCF791E46F37B2840AA39374D |
BFEFBEFB7EEF7BDF033FA8D4A1F9887FFBDBDF507E0C29C468531671FE8903B2 |
F9D8FE78F20A335D742EC4726D4F9AC56F33668B8B42A247A7EAF843A10B097B |
D87CD294501B4615A11C498E89FDD32CEC5D77DDF594534E092EE64C2216223F |
051B44DD9FB4E1B433D71F5AE113F6CCB9E79E6B261D8110E225328C34E11ECE |
9CB9820819DF26666D0BD99F6C121205E2244C5BE54A49DEC02FD7AD39016498 |
DA3769FA8CBE9E9EAEA99327E78CDB5D2D5A5113982D8D9BCA8B6DD5E003A96D |
C67684E968468ECE4A4768358D490AEBA355E1DECC5ABDB26567355A8DB15A22 |
CFC6945FD3CC8202D69C54D676546B1D9DB90B52ABE4C5465DB9DF5E74E7B095 |
CAEB839B795BA76AD125A9338FA6DBB6191E0A2F2DED7FFAA9258F3FFEEC534F |
3DB77CD9AA556BD77939ABB36A73642B4708B7E25AD394EA0B838BB58EB711B5 |
D11522F660BFF6CF0B9EE07B689379E284D80E500E559C1E9A70218C541B831F |
A3F48F7C3BDBE5760ECF3CF34CDB5B8D829E975D2EE8BCBA6962C5B7F7014C1D |
D5170743DC7B18DA3E6D060647A8255CAE090C0E95AF00236473A3BCFDEC1190 |
1F0F9DAEFA01F112845816E53126215A90AC918F1D21B805ED0188ABE8E8D147 |
1FFD9DEF7CC7C43717B7B9B5DF0B09A9789D9753B802BCEC719810BB9D3979D7 |
5F7F3DB15F813F53D78131294A932588D5B53E44CA43E58CD5DEAA1A3B93A38D |
648EF82E34800FF415DCBEF1D6054F31449A52513F82E2914245E4893D1F90BF |
A71909A3E102FC86ED84020E85DB61DF359D2D662EA4339103B6375171669B4A |
1B9A27FA1B994F6CD68F88936C05ED9F975E7AA98FD086C246B48B9801F7C73F |
FED1E4AC294E2EA2B9F527A274F6B5975054A83D26565C132AAB05BBC7F07C1B |
C7D0D6482AB822400269FAAB5C6A34B4F2E23609261F28FA22EE8DF5AC434D9D |
4FDEFA3DDEDAF41C5401728B6539E13D7B9BD26F8609F2089889F08BB17C0CA0 |
EA1A379999F2BEF7BDEFCA2BAFC4C1850805614B125D6932D5044BA756467791 |
8A78DE14E4A9EC8666A42F648A9A919612E59D8DE670F4D6B3578E7CB254826C |
671F97972007590F5FC4CF56492333A0AF6ECDC9F335538C8C73953759ECEB1A |
19B6A3520FCDDCD79C3675CAAC0D67F4F5F5F61415CAF963B782C3F5567BAC8E |
9A8F37E29547DDB93E67A007AB25D5C4716EB4F8B072ADD9D4F6F55363FAC22B |
E0A4E8289C8FB93254CDC159B9902988A0AB1DA667AB79BAB7111A59B0356E64 |
393D56CD1CEDFCA4353AEB23CDD56B87972C5EF1CCD32F3EFDF4E21797AC58BB |
7660DDF088CFDE29808971EAB94AC6846B867F9615C63300F827DE479C830936 |
2EEF0596B6E7A5B136C74C9E9CF7779BB1899838D5D8D6FECC90D052E320E659 |
39361F6649228C8B43A81A92A46088A4FB82F0D56A3C42F00767FAA28B2E3AF9 |
E493B7DE7A6B0819CC84BCE28A2B4C25533E84C337417D2AB17A393DA5BF22D3 |
51A53ED2D8FE62997040913EBE956F490D648E21B9B428087A44A729399BFFF6 |
F632B285C917941266BA3E9FF14B804944645BB81B1F9DF2840C8449282F91B0 |
6073A21A398321C6B7F893A489375698B4CAE83EC4D8BEE3CDA77058EAA02058 |
7E180D3321BB4F54C0844E56708421CE24CB92361016950224174A138B3F2742 |
3A1DDB12639DCC1D7B52E4BEDDCE4E1C4FCD5065DDDA529A0975DE79E70930C1 |
9FD4DA564D6C881233E73AC25E5805873340A812AC16C2C61B403CB892C47E9F |
73F4B00C98BDB4E825AAE5165E5A34CBBAB5EFBFC4A652BC172A0FBB0E23870F |
8B09B121615F9E75D659279C70825D1FA20931E5614984B6F8734988E99F492C |
C251F90D2788C7F1B6DA76DB6D679E37EA50D7E780D830B6D8620BFBAB00DB8A |
B5B076FEBE4A71966AC45908E9579FBAF6C653BB02666E4361F0C9226C463A4F |
FBABF217826B71B230BE85534962CF5948F1C46693737101E5B0175B131CE9AC |
8DA6AD5AD9BF6AD5EAFA7071547ABA66CE9A367DFAD4E97D53EC195BE7B60038 |
17AB36680A580F83B9D168A3A5F40F5CCD6A11E79C88F72AD71CD5F56D94FCA2 |
D6730AEA9CD32A6F6AD424B699D6F2F0B51DC2DC35E934D5DBC1CF6AB1FFAACD |
7C4F0E65393E2CA7B2CC3B0C3693A1C1E6D048D6DFBF76F10BCB9F7EFAC5179E |
5FBAB2DFCE5B23CD13CA150C79A97F95127A39C53AF9DCB9370C27F0E44261AE |
9E74D249A6841085DB6EBB2D3CC3ED2F14B67A4DABE1E8273FF949B3D9115EA4 |
7E412B688492EF2196F1C87AC051A674875A43853D7843C13E6B275C22F11FE1 |
B988024939790FA3A4C9A8482EB10770CE1545F09EE878F380B650EC288B4520 |
218686F8A744C398D7918CE3601C72C82137DF7CB31CE8F650AAB20C7A1649B7 |
124439713D25ED2E365AC8A42482FDF5A58351C07668ED27AD15A9E196589109 |
2529C074219DBD044707ABA61CA48FD7405A115E84F2CC160122CE1C4A145646 |
773B98603FCF9B376FD1A245DE1BBBFCF2CB6D7FFA4CA15C0D7263B462353D67 |
BFB17F02F629CDBCDECBA0F7ED9FF17AD35881EA054E68239B63F062C56A44AA |
5DE85330AF21CAB0CF2405FD243F7D636FFF5E7B924A6EC1FABCDAE03D068AAC |
1CD535D1794257D33AAA6D09BFE4D836636B13516DAB02076B0C57878D3167CE |
1C9303421A0BCDEEF34422A3B0636887FDA0830EBAE4924B04C5D7040AD429EA |
BA3DF6D8E3FEFBEF27F15CD255A57D52F2B55A089EB1C2D49EFF5CBF8179238B |
A5E78AE735231FB5864AE0C75FB3E4E34946895583CB8AC63244C23B21A8DB15 |
B06C716423240A765AED3D75D56A00A39A31B3696C29A92BA1011DD36886F511 |
471C619B1F190BCD5992C402C42C5676F20C5336C84F75CE6C117255D7D3DDB9 |
D19C5973E6CCEEAA121C8E51BB4A206F570FEBDD05B9FC3A18BE1800A3B5D2AC |
C669A34E3496BB54474DA55E28E0C2562962F4C5A8F258B379B649913AED303F |
B8DA5164800BFCB69DFCE146D6B03F575BC9F03034D230056CEAB67FD5BA1716 |
2F7BE6E9C58B97AC5CB366201F5D44F612DC20E9A2B8813F6052759EB8271B5D |
C0DAFEE250D9C29032DC6BAFBDCC157EE8A187C6FB3C9EB7AAEEE40483DC533C |
C40E3695219E5148A5B7692CD5259149864C7E24D4CD12BB94D92071887086A2 |
92F59A6BAEF9E8473F9A146D6E09EB89F80D55845C1026E5F6DB6FDF679F7D70 |
B2EDF32605D4C45BF527C4A308B373977F2AE8F9A7E04BA5905D12290EC64305 |
576343620A31CD23A7BAB75476ACCF33155E8E30512A39450A4BA913ABE4BB54 |
F4D99352665692505CCA54EF1BDEF0863BEEB8C3775F40D0930B4449084B89BC |
60A14BF69FE43B732E6B69CCE7D2544037E81B1B372395A99C8FF49F91CB7B78 |
11EDE4DA0D6E50142883D9B367D380D2EE62926BCC96BDFA27DAD18761851096 |
3CD5CB979B7BB89CAC4C0C14BBB5AD14D834256866CD9A656B71CB2DB7E88B26 |
1C412FB23ACAF0019C561F05E562138751D2C06079C449B56F4184D78C1C7038 |
B2C427C51DC1727866784D7225F6540EAE68478AD6BEF2BAD7BDEE9E7BEE41A9 |
788C18C15E1C7736B08C9E1D76D8E1AF7FFD2B4CAEB4156124DA3F34C222EE4A |
092C53540AD86AAD4B723B14CA9BCFB094D2A684F4F105013092B8B183F9F8E3 |
8FAB696612A12D9A0A6643B1995231A48694BA6E51C121163D9566284C7FEC30 |
9CF276058CF583E09226E6F873E818DB0D37DC70D86187292B0F45BC42329B6E |
BAE9E2C58B6D65297C62D55A623C38623C117CD8F95FBEA2350595C2CFADA466 |
F8CFD868CE8633A74E21C552B85285D194E6F7583BD46AFD81D2E58105C5E252 |
F8ECADB04CB3C6462DA6B955F25B7CA6BCA2BC1A9522C41D8A3685C50475542B |
2D9ED2C281EEC813C0E6C6A660AAEDE27673BB728E7FEEEE4EAB1D8DBAD9E9F5 |
D5FD038383C3CB96AF7AE1F9979E79EEC5E5CB560F8FD8EDD2A25570951A32F6 |
377D6CBC3FE7C58A428882C37887693C5DA2FC281DBB68E536DE8745324CBC88 |
D69BB467A16FB92426E1A6F6A1B263ECA6A1C8D5B11DD9B21E31CF4BAC05DAF1 |
02F7128C22845571FD2742C4709672453EBC09C43189C9F2EDB7DFDE3E635F41 |
D934221FF204652D74300C2E1C24F757318930BA52A2FDC5080941CBE8967353 |
12DCA1CDADD15D3C6BA6E05DEC76203C21D6F88718132EE5983996B4DC10D1BF |
67CC87188F7C33808CB455225F51542938AA8D3436898381CF979F963C0FC947 |
B302899AA8F19C16DD07A24BBCFFA54531DBCBF6CC39E79C73FCF1C7B32592A2 |
1BB4F61ED68312AB36B6C30F3FFC073FF881FDC6F600A17B5FF5EE234C89232A |
B12722300B6D453ABA69EE048B1E622483DCB38DD6C6A01DCBB9106F179C0F02 |
0A48E8FBAA590DD2D685F0A3C88A4561C8EC410B6C5FA430F4D39FFEB4B93E5C |
C48E09FCCC7605AC1049607FB87A8A976D30B69C52122274931AE60376233A70 |
63AE259116D4C7ABF8A70DA05EB46E0C6D310366AC28D75C1F5C1583778878AE |
7F5D01CB76292574BC018D63C03F217DE4EB6A8A90142546495B313719312F33 |
C3683789E48BC2D1BE0ABFEADA290262185301EBB2B65214E852B2419B38C41D |
CCE1B2C2BFFEF5AF9BC742DA8EFC45D3F5CCB6CD6C3FE9E79883B0FC79B37BD8 |
98B868B5A084B4B5367D37343490E4230E7D1B4CDA798757DAC77A7BF1A50670 |
C54C07AF195CCBD410C02453E811D849EC5F0D6E226DA0ECA3C84B549F5746D5 |
B6E460AD337AC005F9591E378B0AB8C04E174CD1452E396985F8F279AC2439F2 |
B9679229A966231D693457AEC82B3B16BFB0F4E9675F78E9A5156BD7350A17BF |
838037C712808F9D55ADAEDFA372349934F216F24BC6130728540C2E32883A00 |
E3090E95515E7CF1C5A79F7E3ADB51BAAD52F457A0716F88C1E724F2C3F97A47 |
B61DEA1F11A690A977717CC9078A0AE9AC7D56892F94967DDD97A8621D2B308E |
2D4F6B6466C9761B42DFA6D7BE4E295E1AD9EAC713A0B87444FCBC7FD08C748F |
DE079A4010D31B95825199DEAADFD0A4796599B8A60252C68A79AAFE4FB2C0E6 |
CD8EA239EBF615A421BC16CA594801EB46AC084DA2A82E0D5157215E951A801E |
52B81805AB51B77C1DF48A7DDDDE131F2BD910285A5B29F3967EF5AB5FC90F56 |
4F272F7A92880E1D6F4AA5E94B0960D3AC3654D31C6CD4DD77DFFD9DEF7CE769 |
A79DA6CF034F25F0E683C942D8AACEB214A715E2867D28FBBE64777A450EE70C |
E5B6C2ACF14FE91ED153C3E0E12BFE851FC6614291D8F877DB6D379BB15FFEF2 |
9778F3496450F26C4ABA08D35B8D4D4BA189B6DFC035C6A499F5469536003A02 |
45A85B5B5CD1A7D8C889828A4E4B9034D24399C3937B118A7366EA012DCE0E47 |
B39263D6F3A2EDC2E8F801533A73E64C40DDFF7A089AC2364143B054442A22FB |
4F8D37F4023FE139CF157C0E31F36256A0193725BDEB7F7ADB884E4DB6F19A8E |
0D030740FC9A6386A08909813F5700929A789521B19708DA4B1FE3D3D68BFE72 |
90F1919F1A458AE78FCD9BDEF4261BCACF7EF6B3DC7E8F28B0B4184AB592E5B9 |
D58E74AB2DB7B085B43D610AAFA01F1AE4F106EA2D0F9859C3626AC64ECE9AC1 |
96F66D79C0CC5A716C1219E9A3F2407ADFAC56A34C340F98EE4628E07CC757F3 |
34303C5949DE25B1D1CC9AD566C8AB957265D0D55DAD7434333BB1D9B2652B4C |
DE3DF7C24B4B162F5DD53F501FC98D0CFBEB487D404A8BD494A21C7E55F4425E |
2711E7293293F1882944A2145C35CB04E54CDCCEA61A1E5D903536E166475F78 |
E185667F094542A25A80DBAAEB0F2ACF468246FB1E90243888928D6CC7CCA467 |
E6DA771381C1E921B6862078DFFBDE77D34D37D92F51D8E296933D8B98A62302 |
A24740DC5068623B75635694FA7968EF430C122771D54D217A8413E7E02BAE49 |
9FCA36E44E496EA6B1993C1B581160D5E0C3188021D2748D90A55DCC903FE8A0 |
83AEBBEE3A12DE996BFED8883D1E162C5870E9A5970697204448E113C309ACD4 |
2F393FB4481669F111E8CA39C126FBFAD7BFFE37BFF90D7FCADA40092889ADB7 |
DEFAA1871E0AA30B4C7D4CAF5486D1FE429A10AEB425463C89AA97E596AB27A7 |
4DE9587B4398B1E208C695DCC58E679BA92E7CA79D76320175C515576832B53A |
15D70323B405DE995216CEA41CF5EE0850225E2FBEF8225BD7A766758818A166 |
9B63C8D8C8B5833243DCC91C07D2486D0CE927DA1CD93521D8225CC1686D036C |
B7DD767FF8C31F42E1915343BCDF7EFBCD9D3BF78C33CEE0A4D395124FDDB305 |
50F55E4A8864A35B83C8A1D75CD1892871EC3A82B20B69C82D944FF19BC47B99 |
A1CD8BF0CA98608098CF4B0EB70C7A1C621B27E9673915220FF1753E8838B34A |
6D116D1BFB4C44189DEB51CC2F14C6AECDEA534F3D958C7EF1E1F172C09ED2EE |
CB5FFEF2D1471F6D9FFCEC673F6B323914C48226F79003B80A3CA0727364913C |
8F34CA58DB637DC4C046690E8D3D1B458D210F2CA78D7ABE92B99A29D0DA369B |
5B6CBA911D78DBC73D3D5D2414F18347C2B01E1B21CBF6F5659DE8E0A8803BB3 |
4CAC87EB03D11E7AE5A7B51E01E65E01E752B2C2694C5BF02BBB700E93AEAF5B |
CBA9CED21A61EA8EAC691B282C59FC92EDBC1797DA8E5ABD6EA05168FFB4F85F |
9D58AE4D0A662949F5129ACE6F320401C251B565E3115364050B238123881269 |
CB3C5E1912D1153625266A25B6A369144D3C6C78279E78A289F8679F7D96548D |
B00918988D48118EF84B628BD35D77DDF51DEF78876D2085A09564E2B9AEBFFE |
FA430E3944D1721B891D6CDB31366C5C2EEA3DEC2B14987280F186ED52F69828 |
3636BD0259C2972AC129053F81E162E3BFF1C61B4DD37BEE7E76852A8C9513CD |
C607C13118EEA5A0AE3793B3C8AECC4695321064837BD1854D5CC7B05192D4A1 |
CA0BEE21265C78192918C43A925A16036975E912CC0B5F3489AB4D79820A8AE4 |
C7F331B5A813E07CBC2299107D4AAEA98CA6773294091E6F3EC91A9829634302 |
9A00C20E3B00B3434B66CA83BDF1DEF7BEF7AB5FFD2ADB86487BE66A0A5453D4 |
88F4E0AAFD438CB0CF9BB1113DABA30D2CD8A682D84951AF65CF82FEB00DFFB6 |
B7BDEDC73FFE31BF11F446991A09509D08956F72658198686E06E52F90089288 |
724CD5FD42DCA2F6D37E79EEB9E77EEE739FB34D22F438599EEDB7DF1E183083 |
6F38E6760EE6FEFBEF7FE79D77DA49B49901CEEDAB01E12467A8DA3C024C904B |
A2C5908D410C27427A7348F9BCEFC661573651BFFBEEBB9B57668F60AA614CA8 |
E3C406B40FB9639D60E072B23C8A5310EE12565CAD12650DB3DC267328A8F505 |
7EE9E8EA50F182D9D7C9415422376488C112D5708E1782C63E00BDA86B725FFB |
25991772078418D5E92B4498AAEF434CCD216D635A5C13DA7C76951D77DCF181 |
071EC8BBD9B70E0365739833D994DE8E4D3699634768D2A49E22DB6A139A0BD3 |
E146DD5B2208E822D2B2BE3C067143DC381B599F45907A4601670E26AED5CDAA |
EBA743267091FA6DB11F74A83EAA788D0CE61AA85E684FBB52D624B41596AE19 |
58B9A2DFFCE0356BD6D93F0BFFBED54A8CA8FDBC79F3EC2E8B162D02C0365E08 |
4E3113A0469E95C287B6B2080F5139938FA1E9E22C8CC82ED85EF65395062AC9 |
50C3106DA04AEC1F0C768CDA1EDB0AB63B6172082FE7457C8C18867E29690E1A |
D9F693D9E6365433E2EC76175D7491B9E94AE23269A8840F7DE843B7DC720BF3 |
73EAA9A79E73CE3912CAC101F779091C94C5CA5108B44F38E1043339613B525E |
5CCD71BD184582F891FB6C3D688B50A4C34BE00E7F48B8855999F3E7CF7FF0C1 |
07891D0930AC567DC131F860F0CABD333D01D275A38D365A53BCEC33662C2F59 |
B28467876928755CBB4C7816D92EB7DD765B9A766056DB4F1B83A931739290F8 |
BE55009B47B45921761445AEA94FAD0CAC50442CD3C864E9F71EA4135C24292A |
CD6C2F31DB4DD7101E198A4D0928C1BE683366CEA52F4AE69A92B0369FB62115 |
D234C9FEFCF3CFA3A514046639E6CC99630F28BD6ED36B9FF73800BBE6DBDFFE |
F69FFEF4A776404C2B784894E4B52F9065960061D97DCD1A48234F351B490693 |
3621DA3138306DE2CA407928CFBD901480D877BEF39D37DC700387D71EDF96CC |
8C21FB69EE7556546129C1E9B303590431507744E037C4769CE4AD8E3CF248B3 |
B649C448B233786609DD9F1625B012F4D482936EA728DFFC7EEC7E6C2FCD8FEC |
DAF65EC56C6FA5A21105B20FD4C7C94B3CC189EC2E471C71C497BEF4250A6F9A |
B16F849F044EAE10DDB62554A82675EB956B18DD2F4744954A8A4F6C10E8115E |
F9CA57DA010F31D18050F58524C42993B19A7950305692C38ADE87D1342049EC |
C5043E8EF3DED2B950A752D48F6D65DBE5EF7FFF7B7FBF825DA314706735CC9E |
BDE1461B6D3879726F778FC9C7DC16C893C4D544B123657F9BEEA5E01E0F3332 |
B0BE0CCECF9789A6305647846625F3093F450E3BD22005CC198BA9BB1113FB03 |
037966AB5964F1ECBF79C9C7DA3C04B46AD5EA75E6FFD6338FFF60DF28495E9F |
B0D1F4EB5FFF7A3BF9CF3CF30CFFA4AB0167800320D759C1228C061C44A1E183 |
ABE255724282401D9EA99AC81C3ABF94AD6469F1A5C0BFBCF18D6FFCF5AF7FED |
29E0FF95970804948DE35E36B1A79F7EFAF9E79F4FEC1AF985644735E2B20BEF |
1A62050EC539369F6488F19E15EF42652229EC4F1E40A4FA5AAC10F9AC4CDDB7 |
BFFDED7BEFBDF7073FF881C9F45004BA61DD93FDEBE52F069074B6CC1AAC19F4 |
3783647791B43395F9C4134F48E6CAAEB26F61AE21B94CAFECB1C71E5B6EB9E5 |
C9279F6CC288A5C48A1291B289A1534E39E5539FFA9410DDD819BC9AAE3E3814 |
10DC57BFFAD5E6EED880F918C70AE9A9702E93C9844B197FFEF39F3FFEF8E3D9 |
0936ABB42EA88CEE23A9D67EEABE2EFA46A91CBBEC76DB6D67A3BDEDB6DB5826 |
05E224105920493D7B11C865A352F7A5EA2C148FC83A900F59AC5A66CF40D068 |
AF9D77DEF9D65B6F2D3587C7EDD006E35EE2B4625A88EE6A0B09356D1739E9A4 |
93CE3AEB2C948ADD82D39AC40265EDD51033359AD23476B82A118F53CE80FA91 |
54B51933AB14778DAF6FBAE9A6A681162E5C087D3FB2BE24F7C861A9D45E06A8 |
AC43822E9E423289642C21B6FB3DEAA8A32EBFFC724E0728934A41399E451E2E |
4662932013503C3C1000F0C8FEE0D06FD166E3E69B6F7EF7BBDFCD39B5619C71 |
C619B6DB43C47F21737030A498054584018DEDEDF93815CD5646DF97448A7220 |
8C4EEA4BE871D265E1714D2595C7936FC4E4F041CD3DB8FAEAAB91D8C1557905 |
57C85E0A56EB9CA6E3D4C7370A0A6EA4AE4D2CA02D51737813BF156308D1604C |
634F6962A4B977D8CA09D5A5804D50D452137693A74DDBC014F094BE49058A24 |
0F103592A14CF4D02D8ACA4253868AF2C1D216F9861B182E59162DAFB1A3E277 |
E7FA49777D616574E47E4CDA0A5EA180D90A69411B5D54360FE44B989941DA5C |
B76EB048950D16145123C3C323E61FDB308BA1E6A9E5D455792B2C3FDE5A527C |
493769337676DA692773F56C2B9862FED39FFE8449C8CE264B448B1E8FA1E5D8 |
64B1CA9BD8B2373389D18979C77603C594DE3AD15C111E81D03514290D24E0CB |
F580316E5A34E0A15563D68C9D706CABD8D93BF7DC736D269165A67B7EF18B5F |
4053D0702CF3363F3496C09CA7D088F914732F8C13F661B3157EF4A31F85C866 |
25372E44B2B0523F3E4C199B5EDBB736C3485854BB32581AB0771AECD6F6E61D |
EF78C7CF7FFE7399EDDEF86846DE188F2A52098AAD97ADB8C917490AC54BED2E |
ED9C97DE1345871109F4BE4E2997863CCACB1022B65C7F2585213DC11580F6A8 |
DD0D55DA7CC0A4ADFDC93499B4755A3039ECB7DF7EFFEB7FFD2FF15E790F4FA0 |
B0CCA5CC010A24B1CB90CD8967F1554105AD8DD86F00D7ED4F4A964BCE785813 |
D2D0FE5A62DC6565ED4FDB6EBBAD3903211AA932E0DA4B5785D90158D474443A |
90BB49916B3E3592301A2EAE308FDE8418ED00830334FDD0430F25BA83B803CF |
1C1C98119B46310F82643ED5E285BBFDC9BCE73BEEB803EBC1F612615B2DF715 |
575CF1E94F7FBA517479B26D4C5C04B3866D76C209279C73CE394A0A08FE6357 |
B60D6F1A9479C67157C01C3C9A3DBEA9673368ECCAF65C575D751545C6D89D8A |
07900B5048438DC2E0B5368D6BE381D116E22A490312E104E7ECA7EDC06F7EF3 |
9B25CC816A567DD73FE5D715E49087806F60B297B6CD1EB3ADCFB7BFA8E682EF |
93C7B159C29414E614435CA6FC78118B3056972D8D815497FDDEB370239FB190 |
5A89B01093C3F05653FD86A08BB764042D07B4803BE540CA9EDE2E34714F6F0E |
13AF37D62AF8ECFDB3463D554853D22D5775F5310AE7C3E86CB11ECCC6611E36 |
8179F964AD4F666988054E14B411880E9D64629AA67D6D8B0E0C0C9A7458B9A2 |
7FC5329B0B53B4A170D2B322408DC01DF10752EF275060E45D749885F8C53436 |
214595910DE9B2CB2E3BF2C823CDB3B1FD77CC31C7D83F5FF7BAD7DD7DF7DDF2 |
7AD5B784CD4DD52F262A3C9198C0127CA5148517DFD89B4472A4AD5F96020EB1 |
DE2EC4E8289E87CD86C9057B04F0CF2FBCF082ED1CBA912386C450C173890857 |
721C8383F712FD2656AEBCF24ABBACD0BF64BED59655051869C158C40CD8FB4D |
36D9C4E644C01351D5484C9038F7611FE4A01949F7DF7F3F3A003F8CCB021F43 |
3C29F927248BE40EF0510C7605C774CCCCA63EEEB8E3F0816C2798838E3B286B |
4089F3768893ADA0274542CB82CE158567BD681AD88E8551359A5268E68DD990 |
6C4A7DBCC1FEF41FFFF11FBFFAD5AF828BCFDB17E92A9D396EA934F241DA1253 |
2FE48B83A551ECA7C9D3EF7FFFFB49AC7B31B9BCF7DE7B5F7FFDF504126D116D |
0076051892597413D6B6B22529691B800A511BE18F7FFC63F31A4F3BED347B64 |
1B9BCD989F2566B2BD7A0D410CB80F472244FCA3A49ED9CA071C70C099679EE9 |
BDDE303AC2CC6F94430563983A3650FBEB6B5FFBDADFFFFEF79EDF74EEDCB9FB |
EFBFFF97BFFC65EA06B93E4B89D694B8F0E21B396613A55669A96B3E08158FCE |
7E524044E18984530943C4A6024EABAC00E50AE649C0EC55AF7AD59FFFFC67A6 |
4B649632FE880760C4D8EF15F8B1AF730BD5253303A645C0039BF1FDDDEF7E17 |
0E1966C026D9E6EAFDEF7FBF7DF7D24B2F35A56E0FAE3E19985FB63AF61B5153 |
790C87C78D7296858AF00914FFE2D9172C58F0B9CF7D4EA6D804C43E59A45E67 |
27D88473AE11DAE03DC528E957AA5DDE86B142E279C96B9A125156B4C6961ECB |
49FBAA19BBA127AA4030414F635A10F0E623C67BF0DF98E24E8A946A4EC56C1A |
A877C60C9BFF69DD3D5D211905C2928E1C1A6C30D1501363B3E708942CF85C66 |
E28823145E807932E2B1734CB3DDBCD1D29CEB15701649FF6D8DC1ECE5D9FEAE |
4AD6647FDB56AE2F5BBAE2B9E75EC82B43D6C6CAA222375CC0AFEC0E9582B472 |
8C091D6F21D1BEB6C36CBA007F6254E2C272D8CE3AEBAC2F7CE10BEC3F7150D8 |
207DD3CD10ABD014BBE027D741A5B1B1C06DB607EDE510DB093CEFBCF34CC1CB |
B19E00DCF4725F764A71C7652CFB3FF14452C0215A75DB6FBFFDE38F3FCE493E |
FEF8E3CF3EFB6C1B391D1571769302020A853DC1F910ED478482FD129FD8A60E |
43A411FB80FA64957D52ADD7912FA170A454704CD896B15562A340DC23FC33D4 |
3F72C40343A478503690E010D9A333BC5D81089ECDC375D75D77E0810702E593 |
CB4E20441D0629A32F75B70C2EE46337DA7CF3CD09ADEB198543E16489CF2F73 |
B567F69EC0ACD7EECC332605740A3E0D1F22E5E17BDEF39EFBEEBB0F73417FB2 |
DFDB98F19869EC487C952DAAF4215D92582CDC4D750E26CD2CF40D336FA7E3E0 |
830FBEE1861B2064B52BDB5651F35AB143D8B06913A4DD8E97E911005227186D |
E60F816D96F21065269BD3831F2B8E7C3F38678032399B40206FC418D07C843A |
D9878A6D602233A58ADF725FDC65559EC8E0D3CC4BD69169F20B9A14C05A946E |
163B4495309BE8574C2E0F192154E03B04F3524181AC01E5CBD5B75116864FBE |
DA95ED03D2DFFC12698632A6DB1561E71271AC599C2046EDF304AE45DD9339E4 |
23BA435E8D6D21FBBCED37A60E9A5BF8DAF4EC04EAA4D8144701E33DA61C235A |
2611CD2FD972A10D9AE31DEB314F6BFBCB06A06F116FA39681E9B215B435F54D |
A31345E76C066DFA6836596CD091B8C5991ADBA631101DCD6E53F6D3674CDD70 |
C39939915B18D186A6ED792CA0AC01F88468142FA4406A8C08A895C52AC96249 |
1C202B649534A472FFABA150E48DA1415330EB9999F578705620BEBBBA7B8B8B |
A405EFD51A33604D012F5FDE6FD6706140648DBA14709A77224E47316928333C |
9E07D9FE7BEA4600D401D7B4C744736013007D14BF15671500C2C73FFEF16F7D |
EB5B2620D88EE61FFFEE77BF83360525817B4DA54A2944CF4F733B162D5AC459 |
B5BD6B23C79B6C17F413BFD2364A0AC926F9DFF8EB3624240B7FF5657CE4026C |
AB0143204F66A2D63E4F731EFBBA4A298223DFB6AFA850C4E30643115778EEB9 |
E7A06F84C988425E8FAAC0E927D90C1EF8C9279F24362EE1624B80A2F5D87278 |
19155C51F445A14E0FE622A7AB5610DC1DE80077B7B5C040C100B2E932B168DF |
FAC8473E72DB6DB7D9537844777B6EC926D65CC0DB6FBF9D8067A5E8EA233C48 |
88092AAE8040F4A056AD827D0C29E323C0AC057D2A7D01A832EE6AB1A075DF6E |
BBEDA85952CB4BFE8AFD04569902127B4C5F6B415D32AAC5A68E421A6176BC3A |
11579ABDB1A3CAEF4D1CB1285CCD3C4B9BC0E078B0B30894F5194D6D63958779 |
64195A592B1B1CAC4673DBEA945E482E7B04F3C2CF3FFF7C22C3EA0B821EB5AB |
D9956D905C0AC906BE173FE4139FF8C4C5175FEC938B5E70FBD8A6083B89D84B |
F1F308341846DFDBF1B13B0ACC0F1097F467335259B1B254481230F755EFF2CC |
A462D107045D406FD99CDB46B5EFAAA74B7054EAB6A58F3DF6D86F7EF39B9889 |
A65CCD0155B911F3633B814889D8BB84CC80798649F391D12C968AE0C4B34C9C |
774F0022E3D27E9A89BFEBAEBB7EFBDBDF0E45055788141FE3C96DAD2F163FA5 |
74DC88A9B3676FC4AEE4E3B57A0B0EB3565A4DFC5A41F9EC594C70D9E6D9638F |
3D4CA4D386D9FE4446DF76789238CA6FEDE022E1311C194352ED8FA25F6FB163 |
0A9A1AFBEF94BE2E3BBAD3A74FEDEAEC40A8519BC436A21481B92640810B5548 |
930121B63257625BAD76685B56121A00B71E0F1C5611FA6B983D5098C6EB1953 |
316D7815E5C19D454CACB966CDBAA52F2D37D1D0DFBFDA5CFDCEEE5AA17DF37B |
E6B1ED8C4318EC4A3EBEAFF18C57A74BCC870C963DAC9D0ABABEDB64FA40134D |
94C9531256223D060DA43029443C7C2D075862DB22361E53CF175C7041281AC4 |
7200DA5F364E629B66E49A0233CF7BC18205614240E0C4AFF6E86856346CB0F3 |
831F809925971489E367CCC6BC70E142B8603EFCE10F5F7BEDB57803975C72C9 |
273FF949D35276AE4A78199B96BDF6DAEBA69B6E422F9AD7629FBCF1C61B012B |
726C4C0A985D92BAD655282AA9C310191B6CEB9B0500705775C992FB6AAF64BF |
D97DF7DD81D4122AC48D5025A576828A64281C40B553E802E008D16397050309 |
0F1F2639C60AC518DC42C237713542FC64293D20001B8E9023FB8461F045F925 |
B64084793D7E5E44B30874102EC430EDFAC2ADC8CD521B28C5DEF138510F892B |
7964263DB28C44A9C904B283CADFF314B639EDB9487899B87CE73BDF79F3CD37 |
B3E1A926B08B1C70C001BFF8C52FD0EBCABF6213085491C50E8FA20AF1B064C1 |
9B797C362A8F961614AA3466F767470637A96EAA7DCE38E38CB3CF3E1B2FCD06 |
6C7BD516CE0620F7C5FBC1EA44E2FF0A1E1EA1DFEEBFFA176B617365EAC4E483 |
0D4F04D4BEE0DB3E435E962A8C8AEBE384A202BB247B42E101A4073A554574CA |
7F338DBE97868AF5D96C5E5ED9DEDE79E79D7FF8C31F86982FE776360F76F1AB |
AEBAEAB0C30EA3DC80FBDA81B5FB8AC68BCCB440E6A252514510032662E15D52 |
54956AF994E8C5ED9695A38A9EF1C41A9601D16FB07B1C649BC0CF7EF6B3266C |
43B46BBD03E63137A533EB15B0A49F2DD07BDEF39E9FFDEC673821ECCF6F7CE3 |
1B871E7A688831F0DC42AD14FD196C6FB1CC36B991D2368D11F95689240AD8EE |
98B34D55024646A56A677E839933A7CF9EB521D61FC80EFC831C80D351F56548 |
42639A3FCC03341DAB597148BA3557D59CD66A0C1C56336B16A640254D6C6D06 |
1B8DF5C90380D0B9D3B0D636506E9EAF58B16AD9D2156BD742789B7BBC76B166 |
83F9CADB05C77B8F88C526B80623E32DA4DDE588238EB0DD26878C8C0B014C90 |
470A03A8E64F85BC92987C91DACD1049307031C59080103187D834EB984E79B4 |
5D5ACD0DF135A9F093867B597A5791312D19E0520F7915464CB023442DFF6487 |
09926A9208D22E3E23708D6A16259E7C55836615FDA1805E7078252D194A9791 |
331E7D589DDBE5DD8A5389EF528529A52E7B5CC03129E04F7DEA53B7DE7AEBC3 |
0F3F8C38F0781F58176C5AEC0A0832E5CCF6DB6F3F33237088017B338DED564E |
88CD12E4E7E1EB0B9E8A860027E24B62E4FD0797A64D6203738FEA147A96A946 |
EC0AB149741D7D6FEFA91DB2BD07375C88E10AC50314AED76CAB45A61A26DA4D |
C1556933D87D3DD597E706525709FB005EA0FD52BAA79D1D53E10A1BC06B5FFB |
DA7BEFBD175249EAAFD80CF68CE2E64B2371BAE6DC6356B4229A55BB94A79F43 |
436491123589E5187947B83445D9A8B342A99255B68E6CAFE0821F4CA0A94925 |
E3D5D19DEE9649AC02506B3F6C3E7B4FA843AEB90E2CCA15A495D688585D1AFB |
FA218E783A0FC6F6EC8CC125986C36ECBD3DA6E20AF8548A48D9153802285D29 |
1B751C97BC4A62597C1A499BB1E36D058F39E618B389CDD4861F9458A96077D8 |
CD6203D5A3297A3A01AF80A790E397F42F11690949681F0C2B29DAF633AB0FE0 |
73B2D9D836C48138117859F0A0B592FAB2837C70DF73797B1BA408103D67B669 |
1101B63FA59A8B8D379E69BB7CEAD4BE028E38D2E2C0CC1A69522B309205FE30 |
C96251921D8CAA4F78ACDF884D3D6156C943C3EB5157692D6D1D12539B694E52 |
6D9BBFB87E43AD0FA5CE878603764071125AD5C0F9D7B3DAD80B1346FC5C9722 |
B1A5E01E6BEF43E8449289166AF77B85E4494842589FFF662FD65D673A5503DB |
4FF363ECF7B832E79D77DEA73FFDE9127996468B465447EEF5398697E9014BB0 |
0AA2E2F56BC17D3684A565A6E2E73EF739EF3AA8906082DC33AE8F2D8ABD3129 |
4C0702CD21AC5EE0C36D36F4380AAA6BFE15E9120819B39A588B3A8265AEAF40 |
651CD27CE6931C2463C0F6C2995368DD03AA1137541FF208A180ECE12C4A1C90 |
A3A2450487889EED61C21C92D0D4B68B10796A8A056CE4D4534FBDF0C20BD1D3 |
2225104E0D914DC48FB8B4D4B096B5E4706791BA35B4A1EB85CC170745180D5F |
30690B6B29814D650D60C6C614207469B74641EA7154392DD09FCE946F148859 |
2005994482555574806AB19FFBEFBFBF7966F5A2E5705670AF82FD963B185C8F |
3CFBA72A70148154685ADB2689556DBEBE2338DE120F2317D39F1A24A7A31B98 |
A69175CE5B7B3225D3D86C83DA56B4B8DFB73E6C1EA2C92BED28BCB16FB0A16C |
8B6FDBEC5947A4B6050C66545A4AAE40969D304C12A9A96040CB754757230C85 |
1E93F759B31A2AC3B5CA407338E99B942D4FFB66D6562D5F3663EAA4D34E3AF7 |
539F3ABDBBD36ED1FF9DAFDFF6EEC3DE631EDC7062DE50DEF3A7AB6FCA60FFCA |
6DE66DBBE8C927F2204D77EFE0F0406834AB1D791674686804BB4D2BAE6C2619 |
10494E848FE659263E07368B14C2020C1E7CF0C1175D7451E65E25CD2A6B490A |
AB14B262964AAD4291C010B00037E1F864115FDD22C6508905000185BF4384C2 |
722492A22ADFFCE3871F7EA8B0595AE02CDED8C766CC98628B6A523527E8C895 |
44CB33181EA61A38BF71A3C537D042D546E68D544F9E7F6E845CAC8D32A9A6EB |
E1E6C560D737F9893C0669AD6ABB275094C9C599EEC1A14069A93D4D5228F262 |
B2EC72632BE0245DDFB52938262015A50181D1D125BFE281AC3C0E1B82924476 |
B92AADE556EA08F9AF03D38710982367D281F085ADA26D2F5F8A9AB4B58D3BFD |
F4D3617B5795A7E2752F4B01A7B18152EAF8296D596D67D33F0ED483B72D349E |
2C12E095EC15FF12ED833D1181D6E0E20DB66BCF3DF7DC638F3D964D6C827BC9 |
92254C29830186CDFC60A6C852F4BE91C0A5BEB6B5747292081A07664C56DB7E |
5E79E595471D7594B748E40D207C1158E2F14022C8FF538ECD56FFB0C30EBBFA |
EAABC9D19226E7A0A94541FB6BF6ECD9A6AB98A5D34E3BEDB2CB2EB3BBA38FAB |
B1C19C1D431BA7BD27F24F34D20757B838A6B7502AEC07796FFFA202AEB83E6E |
C41889A8DBEF15A8B8E28A2B4E3EF964DB9F0AB92BE4036A01E340D95C4DAC37 |
C14759E14572179791C5B53BA2564BA0E510A379CC18918CE052DA89AB7594ED |
953ABEF4E07C7784A62F49C24B43D964AEC423712F5D2A718DCC4384777975EE |
77A97ABC6352436082A42D7DC533BEE94104E5B307B7614BFB1290DB70C30D6D |
ADC7CC837A081E05668C248B746FEAD0C79E978BAC58172073269C22EFBC7DF8 |
E4AEFACAB5265B67CCDEE8D9975E08B5EAB49E298379295D6856928146164C2D |
6F34B3B172D9EB8F38B4D15159D66C6C336B931F7CE9ABD9532F7666CD49DD3D |
CB06D685AE70DEE9679FF599B34D09B0C6B9095B4BF37C653DA38C028A31EC0C |
1D43827F9EBF2C8CEE9BA2ECB5EC1E0278A8120C6B1F8EF5389B64342CD7BF84 |
FE6BB8A66A20426C8AEC9C3EF5D453D274F5D8D042B5B8B94E538CC86B0206D1 |
700DAE15D32F7C59CECFFA6D9A2F582DAFCDB01B4F9ADC03272DACCE0AD19866 |
CF838023431C45AC6099BDBAD7F0D048B10B4367AD9AA449BDD16CC472C9E1E1 |
C1E22B26DFABDAFD69566D64AD4A27D0F9E4F04D09FAE3AAA29AAC59195BF154 |
9AD9E8466649ECE2D78CEC2D8A08D5638FE5F6E5F1D8109FB2F21FE6E5D50059 |
4C657D64C9D23A4D7160D15F346307723D1D8C6892890AE4BE5C052C0F8C1963 |
609C529B13DBB5E4C0986A7FC215D36359C7EB6E645F79F39BDF7CF7DD7763DF |
1C71C41137DE7823F623C13D799C401398670819EC2B471F7D341D4C914120DA |
280A22B62630A78E873C8C3143F77653CA2A300B50E7E2C81410CCDE7098E9A9 |
2CF908F30071C5DD76DBCD7C682A9B290144A04B7742F183BD3B9E8192C492EE |
D04679E145A7EFA5A1D8A08C3F05156D7E8E3BEEB86F7DEB5BA6B001BB6A7ABD |
B13F41A88DAB292842B1AF3EC07110B98418DC184CA9E781CDC6BBDEF5AE9B6F |
BE99002000570FA8E18EDA48240BD1BB72E644532C926D2F5B0F39E4906F7CE3 |
1B1852AC9442BEFE79B99A690E35000E4508E4C4134F34E36F4C05AC4196A608 |
F559CA5CF8B503012376B0AA6B35E6593FF9A72C271C213C7BC922A185E58293 |
BBC57C014A02B60E7032EBA256692236B1E7B529B29D80BF086AAC11FBAEAAE2 |
967A219B5EFB241B924270F0165A5F463EADBBA7122A238D64B53D6B73A86F93 |
D9FFBEF5768FDCF5BB473AFBCD337EC3BEEF1EEE489F5AF38FE9F3371AEE9CB2 |
626DBAF9B49E8EAE4E9B9BE9DD3D3BCDDDF2AC033E1806C2F4109667E641D69A |
F958AA23F566489A23F522719EB5CACF6CF03058C9754405AAADA7AFB092F12D |
66053B8FA2BA33E39E0201CF8ADA1C4DC298B67160F14FF238AA7760CEC173A9 |
320D6FCD5755F940484B012BAB47A84ADE262B27D156F2C44B098CA4480EDB1D |
BBBAF25633BDBDB90EAED65A840985FCAA14CB5620B30A0AE88E5AA7E876F16F |
6204C6FEDAACA62D4AAC46C1EC4C70D964BEC9F642FBBABE34F5B4D16C39C4F6 |
8436B3F63805D8643D03781A29B927C8E9DA89ABB4B522978EA48B803047A246 |
2ACD830496ED549B3DD364CF3DF71C89522FECBC5E244A29E8D6BC79F3A05C47 |
0D43C8C507ECCC98432C90453ABA2393A0ECA64EB0FD51841374B319F345DAD8 |
C71B43B49AC5F46BE608B05E542372C1F3F6C9096B7FD95037DE786320AF36AB |
6F7DEB5BBFFBDDEF7A4312F345009F1033B8286C30846941BD49B565A9B72042 |
C76E61BE75121BC56353CA23D1CA0AD04476193FD216D73CE0EBAFBFDE5604EA |
0066525D987846F53B0A317D03CA3714BEA61D19D26C9202596C27DC8C24BD63 |
CE8F7281041B6C0B714D5EBEA64519D33476C3F4C7538000A0379ED7C9DFEB9F |
2A60B690DDEBB6DB6E7BFBDBDFCE05495286D1E5F22267F541239AF161004106 |
EE294BE99D558AFBC95DE037AABCE289D42348181950BEE4BCB7DD76DB871E7A |
8819566CC61F523D970A6D094EA8EEB3E288C1834B30B71BD09A6A1F53F1DAB1 |
1929BA3C7B9D32D0D2C4D0E7A9005D5B3414C14C447968234AF431649FCE9C3B |
77EEC2850B0F3BECB0E02AEB3CDC9DB161646311A2809955AFAE7C1CCB16EBAA |
ABAEFAE0073FE8EB00E56BBEEE75AFFBEBEF7E3718D2465A0DB5CE69937A562C |
5BD231250C6561DA47A75586B7187A69C6D4297D49BAB4D659EFE99D1B1AB37B |
36CE66D8CAA5D52D66CD7EE68945DBEFB05D3D6B4C99D677ECCEEF0A45738024 |
87C7A69326F7AE59B7DA26AF6F72EB1989BD7134B0E150C37616480041C94201 |
3A781A24C6A9A79E7ACA29A768D39AE96F92870ED682919614B09F31BFB2EC4F |
2681CC97AC43DF2B2944D23D84B6871AAC3FAA36ACBBEEBAEBCF7FFEB30A1F05 |
82F04AC8D6D2A69B07CE46935FB74E0E034DD2AEEE3C943A6952AB1CA8D11C06 |
265AAF0F179AA3A502C5F38EE787A157086253A749E16E55BC4962FEADFDAB98 |
88AC2888229C9BD64742A3DE323CE12800FFD5D5350DDC4DEEF3A6AD244A81DE |
1AAFACA841DE05FBCE477A33C78D2ED21255799656CBFFD39791A56D6C6A5E10 |
B0E3CD28DB61871DEEBFFF7EFB96487F54041246E7E9894141B39C147D93E03C |
BBF4D24B8F3FFE78883E2AE3775B1AEF5512C144C24DA3B3DBEC789B62838902 |
E397274A63AB1FCF5933E6F5F9AB882908A379026115F58642F5DA67A8BF22D7 |
08CA9F9DBDF7DE7BDF72CB2DF6495309B6CBA1F2A61EE32D6F79CBCF7EF633C0 |
0E6941CE6CB7F329C01272CAC6C3D8582F556580A0A6ADFA473FFAD19FFCE427 |
D017DB3FF7DD77DF7BEEB9C74688CB8B2CA67294007B88F809102B7626E9C167 |
D7DC679F7DBEFFFDEF8F393FE4D74991EA973882A457D881044292827F1876A1 |
50C47EB543580E52749B6FBEF94E3BED74EFBDF79AC93F5E659D4E7A2904DD8C |
5D6888851C73CC31B6C1BCA964BB4EA904DCAC50040F422C2E329BD2561033D4 |
86F7C52F7EF197BFFCE54F7FFA53BB9AAF522DE9365B448A7A49F46EB6D96676 |
3AE0AEC1E7C3F2B035B2C7B719B6C32278A017D36316D485E8E07A72153B41F6 |
5E9C8032D74A31C9923AF7D7F7AEB337F27C5936DA8EEC9E0C47FB89FEE08DAE |
96C6E67DA51CB0DE3763C70B3B08B63F159CB00D6397B519983D7BB62D7A1671 |
A069410D864CB3893DE38C33CE3AEB2CA90DE526D9B740F6BA8BD715575CF1A3 |
1FFDC8AC52322CB6DF4C1768843970FDD6EFADAA64C9B469D94BABA685916A2D |
BCB87998FA5F5BAF98F94858B6D194F4B58D978666F6D67B6ACD55CB9AF3B778 |
5D6DFA70A837B6DBEA15AB57AD9CBBF9C6B59E8EA5FDCB67CD9DFDBA35BDFFF9 |
FABDCD699E3D6BCE92C5797ABEABD78637541F6E6883113EE14951B7C445BC02 |
B6C12B0A281B9D20813DBB6D3CE14081AF0B4234A6026E3F2CB65B80E608BEBE |
C71E7B7CE73BDFF1568BF02249EC505912FEF97B99C6648C88C9E0E5D05F2C14 |
F1CCD7BCE63536CADFFEF6B745F5D17A240BF2C23E33B86E289256A6E6F1DA5C |
7476D50AF7B73A69720FC016536485C39716FB6C089589F195451C53A14EB24A |
D5ECD04449971C5F3E3498A42DCF9D3D5DADD6466C55B2DAE0E030E020320470 |
7BD43ABA25D395AA29C63C51BF5ED03DA4E8F896180F4AFD5EC4645B9A53DFBC |
1A9213B2F4CC64BB87214BBC5A74E736516E42079F869D94148910FA6C9C79E6 |
9966DE42FD81CE93B42590227D2F8EFBF13CD1F15E9011B223893D927A21D268 |
278D1A21CABDA01E64457C7C3EB4D9257AA94F30351BF4ACB6F7C403A92411A4 |
880D40B0C8BCD2AF7CE52BA2B5B237C07C42F4363CEC76B7DD76BBEFBEFB2014 |
F33D53992B1C74254D453E67BFB77B513E64BF34AD69DB9E267158DC8416C4C8 |
8173ECB30F448C485E82C5E5A9FFFDDFFFDDCC5CB6C7E1871F7EDD75D78D5791 |
A2798390D2CE3975B102527927D8071BC9D1A6AEBD202DEA4C2DC91F3DF0C003 |
4D524FB0FAEDFBF3C20B2F3CEFBCF3420CD598D0D973CF3D7FFCE31FE3927AD7 |
8A4996299CB491DC89C59388BA7D80404568536C7CD1F38FDA5F4DCD433A8889 |
ACAEF5204BD128C4B4D91E0451C5EF1D5C8818D301792D495D89A4F9AA870931 |
15E583CCC129D7D28C79235B364A492B4BC389BAC713F0F98DEAB154DE64D478 |
70DA2809E3A42847E09BE9B68889924449348C637BF6934F3EF9820B2E50BB0E |
0D4F096F6F19DBFCDB2C017750AC48A8FEB4D95831B02E24956E930443EB4EFA |
EF636E5A7ED743230F876A7D5AD72603CF4E9F5E9B9B349A0383FDAF7CD52E4F |
3DBB748B9EDECDB79F5F9F540B1D61A319D366556AE9D2551B764D1A1A5EDD5B |
EB7BCF1E0787E1D0D3D5D7D3DDB57479DE1BB7566DF55D0DCEB1B1FD639AB811 |
3B384901DBB3C0E775F1C5179F70C20912DD343F55CFA210E3432233680F4157 |
5DD3F1C668E2585E37DF7CF341071DC4A133E961A7159F9B332BBEA0F51AB704 |
A2263A078196C4901406084FA0E4F62AEC8E54FB18EE0B2CB855CB5717DC56B0 |
74340A5D996F9D0DA6F6DAF24C9ED28B67607A19B354802F7C269D10138C2375 |
B3706D18A966A4385179F429E4DC96B6ABF21E83495A5DB674952D8D3DA4899E |
8266CB3FD9284375CC872F891E52803E21DD8C8DCFA8D4022BE1AB59DAD72373 |
BC1002E04D705F215094000EB1711EBC6EB431911E25D1E8AB81D3D81211F396 |
9815C1C9F640C53F7D65B1C5106BC45EBFE69A6BCCBE26A4615361EA50E52E12 |
2E58CD7217C6CB712A6169DBC9BE4E188D8DCE1D4D229C72CA29F0FC8518C3B1 |
0F20BEC904632409EE0FD8956487DAD5B1582176FA5499134FA1A497FDD526D9 |
94AE28E1B6D8620BDAAE0968C64182178559A5A297F532F16D7B8384597B79BE |
5EB0F3C422F871EB41519948D5F6BFB2A35A247671B7C0A217221C8CD4383E01 |
57DB72CB2D4DCAB0C3C723D81BEFB0A866C9D789D9F37AC22073556D436AE7DB |
20BFFDED6FEFBFFFFE22E1328D4B448EF1D0DAEBC8238FFCFCE73FEFEFE543B8 |
A8223383AA45DF5C7930BC11CB412882AEF444C13441BB0B80938EDF96515958 |
15CE016BF0C91DD5C68C67507A65ACF0BE42D3DC516E80B833C5B311224CDAAC |
49B15E53AE0D61538851710FC2C21F50FC001985B424344552D3B3BF955E083A |
CC74A59CB57B99347145D919B4AD8B3340E911B107404C2D43A127CDD636CC07 |
AE4DE91A48D6CD3E78B3C5B5A77AB7E94907D70DBC18FA1AF3B355B38656756E |
BAF996D529E1C515CF6FB0D1E65B6D323759D1BFC32673D391E18DE6CCECEAEB |
AE757765FD4BEB6BB223FEEB0369B33B5BDBB4A9EFEEAA0E0C0FD035DE1EF323 |
1FF9C895575EF98A57BCC2C6463B4885C4993AB2AD0236098EA7EC214AD19E17 |
59449F6696BE1D8445A22D8B0D51B4979A9177019966D3487E1D53E6A4934E32 |
DDAFE4BD6844FD0E6FED1FB54C61216D49C0F27098CD40B0ABDBE151266C6868 |
7DAA000791D51A1EAA2721F751A935321D9C141B3E24F569D3FA6C2DBBBA490F |
770BB7568FAFE6A817DDE26C8775DB50F940BE272A66062543C359A3DE2C9252 |
3DBD3D93162F5EB27CF90A7F3A24529AD9186D502756C0FE9F5E929A17327FFE |
FC3FFDE94F086215F9B51F695EBE1512ABEE3B15B6DF517ADAD602C942F671C7 |
1D77FCDDEF7E871DCA8CD99FD0169C01D65B6BA7F0AC8EC7C48F3CDE3C5C71C5 |
15C71C738C0DC6060693303EBD4C72C86288F3E0D17A018449319EE79D152516 |
14B612E1871B5D596415D2F8541F7B268B8D399B05A5C3A38F3EBAE9A69BD28F |
2114211C7219180D76F0EC7C52964DAB3B215C50C02A0645A5D921312D25FE0A |
22403033DB339A56B6DB115345F49BC47CE49147F0B174D2C4F8EF05DCBC79F3 |
EC2276027D87D7F10C238C2DEC5A1CE89D76DAE990430E3167C5D32368E7D823 |
ECBBEFBEB7DD769B3C4B8FE915717F895FD3EB8FF14E41491D125717BFB73683 |
020F187F3ED94CB342219ED4BF41856726C24827FB13CACBD4BC094795818167 |
54F9994DB21D0480081FF8C0074CDFDB8755C7816C8153C987A93CFA54E0530E |
940DCFCC083AF2CA89F70A6F3C835BE1E5ACAD4045674115FF6847619889B4A1 |
3BDFFFFEF7DF72CB2DB63D00CAA16231B37CBDAC5F14AC19F6987779ED50983D |
0478B0191B1ACA0605B346F8C1DEA0B39B058585C0E18A2D07574FCC0935E1B0 |
60C102DC68BB3B7D17729FA4239BDB3975A47FF5E25A3D7DEF2BB29DD36CE9A3 |
3D4958D71572FCF38AA91B365F952D9B3973DAC6C3D9928EDE351B5736DF7AA7 |
ED473AC2485A9F31B36FEECC19EB96BC64C6F2E4BE505FD9ACACAA1DB9CFE195 |
D06D267912EAB58E64A4DE527B8009F0F2E1982B79C088087C48854918AD2FC4 |
5227158C3C61114ACAC26B4D1FEF645955AC4FA0541DBA94B017DDA6BF943FFB |
491251CADA737C8D7D4C29AAFDE42015018AB10577ADDA393C526882A4C0E615 |
EF3B6A1D8D6C9DE96824941D4E130A787B401C29F6B7C306248F246E4747FE00 |
D54A6ADABAF07DEB45ABA26A7FFFC0AA556BE7CCC9F78D6DBE79F35EF1D0430F |
8DE928FC1FBC34EFA5394564B089853BE524F83CB1A2FC7483808F934F565C87 |
9F51F35EBC4CBB9B641114AEBDDA122405C7A0123B87C3BF2A03D9E3D855D5C7 |
17C753C00AAA4B2B30063631B06A3228769E3FF8C10F9A41671F3EF1C413CDFC |
C409268C86C78336E5B2BBEEBAEBFDF7DF3FDE7D059512598736F4789F17E88C |
502AC2C2971CE83A26A6291D16F3112753360ADD48DEF8C637DE73CF3DB808E0 |
B9049A10A9A1348AE753947300E883EC80246309DE95444C2F7737B16553C77E |
E0A6B215283150F6D163A9549FA38882B2BC624C436A344713DA78A73FC46C48 |
A98AD77F20379C43143D212A92A2704F3E59285C4F405821721A20C53C6F7089 |
83A5A77881ECB327C597F2755CA517E7E2C0030FFCF5AF7F6DF684886C052667 |
F3C8CEA0274FE958AD974B9118526BADDA56CC629926E6915F7DF5D50C5B255B |
253B52A1FEE88DAC8F6478562C668C5BAB29B25D19222DDA178AA0232BDA1E6C |
BDF5D6344B16978ED96D8F3FFE38996C09F110553E1B2F8D9D18EC5BA79F7EFA |
45175DA49647FEF3B9164FEB23C355DBD4492D87351CB7E08C85E79F1D92C1E0 |
B080FEC4D6C386695835654AEFAAFEA15E734C2BABD7AE1D9A317DF3A54BFF21 |
90B9197C30A0E5D6D5DAA1DE9175760827BDE5D56BFA7AABC9B28E8D9E5A3777 |
6DD7CA4D87EA4F4F9E1DFA5F0AE99A2D77AD7D28D4FF3ADC59CB7AA6FCFB6B77 |
EC6FACDB6C5A7767DA19A65437087D8B963CD7D1B1F90BD5955B0F0D0D86D5BD |
2B87CE3FE0C465496D5A63D2CA7495300AA97BD9E49C7FFEF9679F7DB65960D7 |
5D77DDD1471F2D2A72927A741FB229BAE4924BECAF1834EDFACED49CED6AFB3C |
0C16FF545F94D4B37F93B9977E3F1EE83291FE508C3B89B4B79241E44BEC3785 |
9C1D1B5C53B42C0A93274D5EBD2657241BF46DB072D5CA6AA55A6F0E02C731CD |
6D9A18563920B5403DA947426EB22F617B1F1919EEE9EE1A1ACE037D8D7AA3E8 |
E51CFAFB57637A40988E39F94F27EB5F7965059CD2AE46997916C1A8218680C8 |
9120717CB8268C469612FAE33D17A40DF59852C65EE6D9D8B1B78B9B60626763 |
A9601D8B23F78B5FFCE209279CA0442FE59550AB84D1AC3D7406C42098D8E397 |
5F4E51077E9BEC5F40BF5C4703B36D2A361C98EEE9DA86976FCF6E633325FD85 |
2F7C618232A410D3A854A973FDF148CFD9129AC0D4358AB1A9B0918BAAC23364 |
119525C4E4C528A2CABC67BA0E884F67EFBDF7BEE38E3BEC4FBED6D9EE45031F |
E69C4112AF431BD90C1C70C00177DD7517868E57C08943B9E3CB2A9D56EA85A0 |
4475188D09F2275923F7F5CD22080B31465AF25F4D8B10A353730EA2B504C333 |
D7F927F7BAD6AC6D0F14E57A3DE43176C06536365827D570C6DF91CDC39E5476 |
C066F5BFFEEBBFF419242333C93054691646E3BF48FAF0E098BF883066AFA4ED |
D8F0A14D0E86D8DB987E79219615A189436CB56BF7B27DD22858BBC90A370BFE |
321B00F12754A927EBF5156E25B6165513612A69C0606BA8DC053869F360CAB8 |
E4555F76D965679C7106AD2FC82C94123D214A7381E388454179ADEC8CFDC404 |
E7B2937B9235EBAA7923B8247FF0D9B3E62E59F242DF0661E59AF131228554DB |
A037D97FBF03AFBBFEE68E8E504B27177DD687A02539E8A083BEF39DEFD8FCE4 |
735BA9551B23595FD2B1FB2E03BD5392FABA8E0D960CCD5C12BAD656926A63B0 |
1ED2EADC74EF19E9E3C32BF6686CB4E495DD1B76CC9DF3DABEDAD2B46FFE567D |
9567BA1E6C2EDE38DB70D9DAC56B3A86BB4706935A36A7A3EFA83D3F62666165 |
A496A50D9FCB17A782DA5DDB22DAF3DA8CC12AA846C5583F440AD5DF2C1DDD88 |
C95EA69B6FBAE9265B0E3FB77C7D4C09E673BA3E81C2D74B6B3A510A32C4A09F |
D21E1273B61DF7DF7F7F530FD88366EFD8B61818183B7DD5DD95B7801E1C1AAC |
A4C5D9181C30ED9B4717FB97D9DE5394D88C0FE2CC66CE926C9D3367F6F3CF2F |
9E3CD9CEED5AF31E8949873CD5B4C18A15AB0ACAC9504CB81DC261748C48E183 |
030DFE5FBE32C7F106EAC7438E358F447508D784D17581ACAB398BF7DE7BAF99 |
AE726415476D5F3FFB493FCBE078747598792F075AC7C9B4E0273EF18933CF3C |
33440A8534F2F80810A45462A91D8A7F5E99E104B7919B1886CA5A29062BD621 |
2AB254B05BF2BF559B345ECE8C08929DD8128869024F3D4485C4BDB2D8C55DE1 |
77E036B0CFD81C02B805F9ACBEF7728245ED145CF996DCB5127720B2D21336D9 |
5F4176E82B80683C1D923F814287C9DA0845D214AE505F4B5DAAC5D249F48153 |
4A2FC2E82A177906A5BDCA07609CA74648D2CA7E6F7EC369A79D662A19D73F67 |
7D1D2B825AED589F47B461DBC251E06EE3E798508E8293C1CE9113096DB8FC6C |
B117915FC4D5D0BC95C69F4554261F109A41D0741E10554AEBC93056449D1C19 |
A664899955AD73EDFDC2850BAFB8E28AE79E7B4E9BC15339DA674E39E5143382 |
D93684FA6D83C13AC0C084480A11B88045A2FE4B0496381DF6F3DA6BAFFDD087 |
3E84CAA40F182903A5307DD042FB5FD9193F481E47667470E970332CC0730C0F |
0D4DEA996E327EDDD0CA4993AAABFBC3A4DE49AB0756D62A7D7EFEFDBECDC2DA |
5A47B53932A9911FCFB5D5B4526F7475760D6BD5881B4113DDD1D93B34D23F7D |
874DD76EBEE9BA7472B2B66146EC48F7CAF0AAC7A775F7AD5AB2A6A33AB577A4 |
A3F252DF06B366BD944C7AC586D3779A3965F20EAF9FD978361B9CB76AC6F29E |
7F6CF08FE6D25DBAD68E0C0EAF99DA1386C2F0EA91A15543177CE0E49EBE4983 |
CBD7B5C7F69358874D6C0C4B5DD54130C308B12867A63D142CF9C93FEDF3543A |
B4A3E87D84298CC62EB487978373B4C6F58043183B57CA7B65B035D0F1046B6F |
EFE43DF7DCD3BC01AA924D3EBEF6B5AFFDCD6F7EE3C3B66134C7B21D519B23F6 |
B45AE52862A3A3CBC17EDFFB0EFEDEF7BE77F0C107FFE8473FB2556760138CE7 |
E5BE688B66B7C6DEC7C72DA15D24EF044192640C110A41CD891791102B365D2D |
BF263944C10DA097B0924D8B1D1B55B921AD5EF18A57DC7FFFFD4825BB853D7B |
896D40E561D75F7FBD5973EADC379E62C3F027D94CDF43DB7038D6C020354254 |
2FA11111E2EBCCA3EAEC373480C25901573CE67DB3D10CC6364B62679CE0E571 |
CE3EAF661731B1057BB93DC881071EF8B5AF7D2DEFCD9524FFF66FFFF6C31FFE |
50B3448097D08E849AA0A458BB745F56E70C19BF66EB7CE94B5FE240DA274D0F |
D1F08074803DB56D1EB8BBB52B94A7A07A07F4132B2258193B01242738473232 |
0DD79E448F4F148ABA67762686513BE69C6FF95EB93CE92EBBEC72E491471E7B |
ECB1406761690D45DC3EF7609A59C9ED669E471AF52DB7DCD26658B512E83C93 |
50F67B333481FB61BD21F884F352BF2F554FB11C442678AF4A36BF43B2D8158A |
CA3ACD95E7360A0EA881EE19339F4D420EEB8710C2669B6DF6F18F7FFC339FF9 |
8C5D8AC3AE203F010F7B6FCB6D8748203EDB63E6FAFFE94F7FC299A63FA3924A |
BEF2441A3189D56E8AD80159E2F39EB016F06088CD7C42ECD62793318B9C12E4 |
47D487407846C98450E87E9BD512F156FE7364D814F0E0C09A46666B94DA66DC |
6CB3AD9E7AFA6FF42C66FA5B2987E24DA563CBC91B642B5F5C1CB2CEC9537B56 |
F73F6FBE77DA0C23F5F51D0C45049D27E91A9DAB929573FE73C7A5BD1DC3D9A4 |
746DD2D56C64617060F68ACAF4A7B3C9EB427747F385E159FDFBBE6AE7CAF32B |
BA5FD73D7DDA9CF9BB6C3B3954B75D3DF23FCB9E98BCA26BF1C67DF357AEF8DD |
D446F75F3A9AC32F0E6FD0B761A8755EB6CF473373C3C218DD87422436818D07 |
9797FC2BE585DA339C5CC9AE9295CC060378017F22BFB7B3C9ACB6DBB8ED2329 |
FD3371AFE05248A5D7A8EA727F51252788C8118419CF9D2A0E7CF75BDFFA5653 |
C0EC3FFBBA1DF8BBEFBEBBF4B45260362F6F7BDBDBBEFBDDEFCE9F3FDF74CFBB |
DEF52E7B0F94D43613C2056B1AC13763C6341581604552C8F5724146E3BD5800 |
7B73D861877DE52B5F21352B5AD1C4310368C194636FB651DCD1CCD20E33A857 |
C84BFD426AD8D8D70A0897DC6EED18FC45452F75F638D8640A9282A65F6D3E31 |
0F2758321F0D0EB1030F029110A2DABFCB7EB7E3BDD75E7BDD7EFBED7623D39A |
72B3043E0A8E6676829B82FEE76770A1D7F6972798440173E015DBC72D40E5D3 |
7C86C27CE27B0AD53662BB0E1D06EFBB33E6126296A4230B44F4D52C6825F889 |
5EAA87952FC02561E1ED6B8ABB6CC05054421C617FFAC10F7EB0F7DE7B8708DC |
F344DC58DF25BC34A5EAA1E87BA8252B1FE9D8D1C12C039B1072134C8BA69132 |
36F42281843424ED7220B7DCB3F5163DCC85248F1A458F3C5C0AD18BB252C496 |
B13B091A811222BC24AC1671E392451B5CCB394DA9B033D443D30E4BCC881323 |
1C836B70AB372CB4FE49C350EAD1F1D1C53291C4FEF0AAE9041B4161BA1D702A |
059A055B91443C069C782B8353CC6A1181C706D92AB36763C058E4CC8A844B2C |
78F2FB919F80DAE80ACAE2EEB8E38E0F3CF000A9227B3A22D8F6FED0430FBDF2 |
AACB8706AB49684C9D561DC8E772E6478E3A7EBFF7BC736565B6849257339357 |
376ADDF54AA5FAAB5FFCF1DC334E9CDC37B47AD5735D61D26078494F4195790B |
8B10260DF53527BF6587D561206F725BEFE80C6967BDB96CB816A63E1BE63D11 |
6687B072E38DD6AC9AB9F48066BA24E998BED39BE6CF9FF6EAE1C98FF574BD2A |
0B7F7F7255675F4FDD9CF4EA9291873BD2CEB5B5FED5836B06877EF0B1336B21 |
194A46C2582038BD146821526873655ECD638F3D4602C8E77D4AFBBC64B06291 |
9320305977C30D37840961F0A5A3A76B7AED5B521FA5AF8CA17D7550A9F5644F |
30D1E3E9BBAEAE6E3CA4E09C3F14582957A421D23A2DA7319B36CD7EA99A3F5F |
CF2A3F8903497557289C92B3CF3E3B4C185E7F592F481FCDB1B633402E933E30 |
C1D5E1494C9086F4E9736DDF520882BA1DF123B643EC004316FD1F077129D82B |
404B30DC747AE9B4C369B7A930E15B89AD854D1AD2539AFDA75AB2F1E607382B |
5595F675931A7BECB1C77DF7DD47EE191562230735A3984435F63C5736855C9D |
CD9B4925FB8D5A838D576973D965972D58B040A48F73E7CEB501F828CB987B9A |
309A3DB2495EE57224D30502B27F9AFD74E79D779A75A29EDB9E33C86F459998 |
5A290887C1A0526E61EBB270E1C2E38E3B0EBF9323EA3BE4208910BB6216647B |
A86C03D602ED6AFB8009C4EBAEBB4EF79589805013FE96BD64376281ECF19F7C |
F249EE6E57032D91B495DB7A7B57061C7586B637EC7909181068E1497394D9C0 |
20A8AB244A8F5C0B66CDEE8204E3E0830FBEFCF2CB45782945EBE3F61C76CA63 |
3C751AA34281B139F949D6C0575E2A7890B9068BD255681D12FC764C801D40F0 |
A970CB983A58ED0E09219025215F43208DCCB47D0CE2333028A4BD7DFB483B32 |
F608A4CF052CF03587E408D8FF685F347A28B2EF766A385338F13E620CB76288 |
B16BDF5A31753D1B44A9663F2FBEF8E2E38F3F5E9D09F00730A7C48CED8B9DCC |
D59A3563E3E5CB96D6B3A1491BCCB8FE5BBFF98FB76EB36638CCAD3057EB7FF2 |
A6BF636D164656379AB574DA437F796CCF5DB7CA217AF5E0ABED450D9D632342 |
EFE00EB36B3BCC19195C53CBEA59254D9A594FBD526DCE684C1A59D9F578D8F4 |
85C9D37A877ED73FFC0B7BF8ADC3DA47D2A1C9DF7AF0DB4FDEBDB863DA92FF59 |
D67CE5D46C78C38D1F5BB274E0D915C39D5D49B3FAE813FF78D556DBDFF8B153 |
270FA76BC29AF6950DB15C1E0A7D88E2498ACB6DF06B34417F74E12B7D3F6C13 |
AA2663B3D19CFF13BF04BD2CE101C7F580DBA3B85E42299F6F3B12176770706C |
4FC5BE84DBC181E7E417E318A57A9B2D926D93085DEBD6D9C53B06074D6ACFE4 |
60E075AD5EBD76A38D36C47C5EBA74F9D4A97D0504661AE93D9BC4534E39E5D3 |
9FFEB499FFF84FFF4F5EB8AA60D9E14AA5B658D39A8C2EF8F393562AC0F7FA58 |
16AB2F63F06B93C57E9F99E373F00D44D1229E9420B8CE3C2A1024B669DBD1CE |
3F4E5228AC63B027ED2FE1EC74903C9A9449101B1781475057AC8BE8F5437479 |
9931B4083ED078F38C3D28327A8510C7D957ADD8A3DD915A49B52C55E5B46A30 |
DAD366AC0834ADF5D8AE584F8D1120D42E7CB0A29E57C98D7DC0CC0EACE95010 |
2CDBC3DAE1FC9FFFF91F5306A69680E60AD1C6E4E87694CBDBB0ED22AB8B5728 |
E4B5793F2694E90A05E88F449400473C851D25FBA40968BBE6D7BFFEF50F7CE0 |
03BA179524DEB6D381A735B5ED1962E07CDEAC9F638F3DD69481691D82DEAC6F |
3EEC5A51DF55F8BBB56A8DAC55A3D9489C54B281BDFAD5AFA63EDB161D420C05 |
F6B92FCF0B622B449A27F8BF5A70DC087E5678D6870AA48009ED841863245960 |
57A3BB898FEB485597449E4EAECAD9439B138CD6A4662F8B15F00216F8F3AB3E |
0DCD826A5FF9D7993367DAF5399BA6CEF7DC73CFBBEFBEDBEC2441D2D8EAF3E6 |
CDB3C345DA5B757D66ADDA67306BECF4FDE31FFFC88AEE2064F19048180AC03F |
436C5FEF3D1C76ECA69B6E6AAA629F7DF6F9DEF7BEA72C0FC4B444F28647862B |
053F77A8D687D3BE634FBA7ABB5DDE316D4E7565583EA66A99DC9FD49381C993 |
A777A45D77DC7EC7173EF3A110565593CE7A6305FE3DA802163AA764A9665D6F |
D96D555F677560A4A73EFCBF597B0F384BCA326BFCADAA9B6F87E9E9C9892433 |
644110D0352CE8222614152448CE022A0C2279244806092AB02C208288E9D3DD |
357C2A98C18023202230E380334C9ECE7DF3AD5BF53F55A7EBF0F6EDB0F2FFF6 |
AECBAFA7BB6ED55B6F78E279CE53C906BEDF48059EDF48E7B2A91A36C31C2765 |
FE1C3CD75148974A9B169AC28029D4CCAAF0865FDD576BF46E5BF36777CFBD5E |
FDF3CAADFD7E219F73B70D6C0D2BBDDB2FAABDDA37DB297C6FC5ED78F5497D09 |
2769186A92943F568479841B6EB8016A42D1479BC1D7FEBA8E0FBBE64843AB5F |
7898F041D9DF9A4A8F70074A014B884DA980459E602CDB394CF84585CFC2E0B0 |
FFE29CD3E4374AA5C6843E371C1F6975CBE1382485C900C56A8A8E919152CC23 |
9D2B9518118A0EEAE5D167C53EFBBCF1E9A79F651F62599D4C0E712F4E95DC7E |
BD1FBE236516C1A24E5C23A4848A633168F3A08A23C61BDF6450D24478DD368F |
D096142A55623295250A843841586015202BA96318A224EA1262E8CA2BAFC4D8 |
EEB9E71E0A23FC12D2F988238EA0C296873A154A5C0CB4ACF150EAC8EEEDA3DC |
E1E1871F8EAD2C0C2DFB14AD5DBB9671330C06A2047284B20CAB1F474AA6DCA3 |
747D18C38454BAFBEEBB2FBEF862DBBCB03FCC7D7024BBEFBE3BB4A0A28E8C3C |
63C6DA603ED4ACFC8AB89A851CA69E9604B7137850901B376E640C8A14F66444 |
91EFFBE8A38F1E75D4519C61E84555D4B0B6556BCDA8B5228DCCFEB2CDBBB12A |
9DC43DC7DA3CD2E0702476121A37C73EC4CC73695849853F29D4D1961B4BCE63 |
A4B7F6DF7FFF238F3CF2820B2E2073354748C38B14195CFAC8EBCAC6B8E5202A |
DFA7BB1F2909BFE95AF945BC3296ECA5975EE22473C9948EE13666849963504F |
24564C1238C9F8B362124ADA1142A1A02B0F1DAEC4D7A93B6D8F50DA510693D0 |
D46D3AF8B4D34E3BE8A083702E18C2C5B443AC5C7DF5D54E425E8D47C0A0BFF1 |
C61B1982A6A2252CC0CE2213CBC6EDC4FA1613FB490C4270C6F057F2818BDA42 |
D8F59D77DE995EBB7891D4838842067FC2895EB1628549A01576C717E2439992 |
E09925F843804D2E28A504E30182EFE0F7E79E7BEEEDB7DF10F8D986DF328E6F |
DC591F3BFDD6DEED0E28B7829E72872D97F4B31FCC0C52A520EA635B19E87FFA |
07DF5B614AAB228A667F9C1F42432D923641A3FBC3070EB7C25433DF1D9AD142 |
D8089B4E900DDD7AC64F17C2663EE36EFAE15FD373863E76CC09DFFAE38373FD |
CE743DBD2D68545E285D71FF1DD0C61B5E7EA592CE54AA8D52505E5A6DF5CF31 |
03A946664BD9EBE87EE2AA7B4DA961639D24B469FC31DFC1405D1BB051758066 |
7CD4C18C8F45AB78D724D52B582966FD6C928A8916DEA4EEAB63D5554E8A917C |
6DCE25CB24A915F0510F764A1FFC7E9ADC9E6D5948B5D8C9CEB60FCF1EE68B41 |
426641C8E1C2BC1AFF442DCEA34888602B694F6DC643A2E451D17D5449252363 |
8A1E0716A1B91C1A93E4EA299570BDB62F8F90DDED80772357114682A3C5D8AF |
00936A32C187F2590A16EDB9E79E4F3FFDB4B42015D8BEFBEEBB72E5CA0B2FBC |
108240486F8ECDB18A4D899761E10AE7C776A9F9205C0C190D3F18829521688A |
3CDBB8C330301E16D590494E45C6C66ADE2E19C78CDDA4EB18C414D66F79CB5B |
F052ECBD852FAA2522EFA0F1E3AF5C3BB118DE7BEFBD679E79A60D21B6F18053 |
114A9BD87480FF870761F2D9949B8C1341C2F3279348546B2AFF2080454CABCC |
286312DEFCE637FFF297BFA4E5A11C1EF14AA447E049E15614EEC39698B82D7E |
B96CD932B8412C6E91D508CD0DEF449945DC106B845B99187DF3918F7CE4873F |
FCE197BFFCE5534F3D9507508509322FB439D5FF671AB01BDB1ADA36EB180708 |
563F9D218A228C9B9A443890A869DC1888C12E6FD532C964E1A3F5BE12C184E0 |
D1D72433227611DE91D938EA33326370A5646D381638D9C6F789EF90671FCFC5 |
8E624C55303A637930C60A890B6ECDADCB42703D0EE361899D3C0405787807DA |
617C2E5787A7BEED717C77F66C5EBE7CF92DB7DC62AC4614947BAC689274B569 |
95DAEE238A0C63D52F71F78649C102D376C4968749CB0D27E91586D714E088A2 |
8F181AA28A320E9E9EAAD4FC4CA1E3E44F7DF6CB5FF9DA47CFB930C8766DF50B |
4CD2AB94C090A8BF3E3AABBB581DD834AFC3FDFA0D5798B0DC996E356B7E2A09 |
A10B2DCB6C74E15F534DA786397203930AE0D81582C23C539C512E578B616E56 |
2DBFF6D7BFCFED9ADFEFD03DDD2DB95FDDF38B51C71CFCEE1D57D65E095B5DEE |
DFC2F79E77F2EA59E5F4C0B0576AA60A5DE9566664DB7061DECC4A3832376CFD |
F2F66F99CA586736DF6A3868C3D3F08EB07ED6AF5F2FBBC76E992346616962A6 |
F9A9C2B513D4FD8C47601A07464627FFCB28A022FF349EB6DB6E3B529D9046C9 |
241D1014F58C964F6A89475471730E05EF70DD75D77DEA539FE22952EDDD540A |
381CDF34699AF212CA65613768864B4CF004526AF3BF760997686FC533A2BA78 |
3B7EAB53C7EC08DF5F54299A5911A862337DE2139F804A20C409E79009215EC6 |
FC999D426009C1D1471FFDCD6F7E1373CD84B193147ADB7C1D82E7E02BEF79CF |
7B1E7FFC71723EF397C432506812ABC994B00D92A280BBE4924B6026F3B9CCEE |
886E9A3A497DEBD8242B483A5F522672E36A924F38E10438CDB8184B7CDE79E7 |
1112659333A860D424D48093AE3BD91C190B552B43D91F133F825CD19953FBA6 |
3668A2EE3FD501C0CCE05DA8E4B85775DEDC094DC4A89219B7C73B92B283A923 |
155F419DC3BD236E88E96105B1D5F8CC243D6AA880C5C6C737A204DC69A79DD4 |
458006106612C3C3147173F2329A29B63B8E9FD99B441EB04C013281C37B634C |
4C31DEA9CE17E7844D26682EE0B951D666FDFA4C3A26D36E45A7063A38E0E6F4 |
5254FC94AAD8CF709BCE3EFB6C6371A7A8268A860BF7334BE7C3A489B5A82482 |
A44F00B5B510D1A40B35E3A15B7619372D66458F76DC7147187624D3A65AA2EE |
6F0BDAD92FCE682DFD457A36663CCD326F8E0160EF51E7E1329C9DC30E3BECAB |
5FFDAACD22622C188A1D2094E274ADE6107618C658B1716C039AE694B9768ACA |
24462766608F3DF680FEC07828A619E8621532878437C20FF7DC730FF43DE650 |
F60A678C004CA687886090B68E30957E904EB91DB9F4E0D028C6DA4C158D9737 |
35DFF8FD99D82C88CC8558D675E1D4E3DD7B7636E592C9A74D69C860E61A6513 |
36BB3A8B23A3651A52D408128FB9779AC0336E542B6CB2A1D7F453A530DBC2BC |
F6B4DC8A3BBB366BFDEF5699F9DE01EF7FD30F6EFF697E4B77716EAD62D6CC39 |
64CFF21663D698779E7AF4B3A57FECD13DBB9A69FAC6C97AE9DA68C3ED983154 |
091604339FBCEB1BA639646F6F01D4099E5231B4498ADD95B3135A7B221F803C |
0DF94EBC9E1513A45025606252F983CD4341CA70911EA4138D953AE38C334C82 |
42506F6C0A93B1D830BF6627E4C8FF4C3C086E7DF2C927E346B4B3A621F79F08 |
009B3E714D4F02AF2AF93BB69031AA855BCAEE25A7E1F144F1BFF212088D566C |
87C1617AD8980B3BFECE59A0A100F18D59B673422AD6B471B9FC8A3817B1B4F4 |
E16878D2A1A1E3ABC1B8E3B95B6928F15C09A86C12E56A3F4B11368E9FC75B0E |
225F4D7DDF18BFC25B13CC823BE3645E7BEDB562AEC050F1FA1C36239677DF7D |
373C4EE25745FD288386436D0BF5D3716F4DDD3ECF583007BD8B2AD94DECC713 |
D0C76E74CA028AC155B0E4206919C9E4DCC4DA92898F3649030C2A51D79DA45C |
C1B1BAFA50CDB0C5A189EBC8E5A20957A5B43DED18D5BC7169C4946E43D631B1 |
9FFDEC677994086B2222891938AE23975B7293687FE5E0DBD0D4F6F83563F656 |
6158722A83983112E61A71E5DBDFFEF6175F7C11C2DD23515DD45B2C6E03E08E |
3560C7EF397B7859FA7F0CD24267AF5AB58A0DC6497FC18EAA2AC2E6D6523338 |
1E2E1BD29F4A9ADA7EFEF39FBFF4D24BF9155A812CF360E65B9A491D7FB95598 |
C5847303C38EE46536BA581FA2BE4502457E155A33DAE426C9A16AC76A4BE0B6 |
583B988FF83A9E423B122361330C5266DA269DBDAF48BEFF2FFFF22F2B57AEA4 |
39E8245C1F5C6BB1B2DBA8B489B2D1662A15CDA1D69A529BA7891624D58C8078 |
5C3E93B4A2B28BFD70C32BAFBFF5F24B3EE7366B50A97E13F69681BBBA70E1BC |
CD1B367714BC52A595F6A2345FA1901E2D35C3886D3F9AB152B5918E36A7EF65 |
73A974A68E1BE6527443695DBDF5AD6F7DF2C927A192D36FAD349CD037213CE0 |
E8CC876ECD31F0214C107AAE99D5ECECFF5BA5735ECF7EFFB6EF376EF9566F33 |
0AE0FBE9910F5E7CC2FFFDFA63666B66EFA30FDBDCDCBA38CC0F748C0C5607BB |
0A59B85675373B5475B77716FEF56B3F35C166CA7302ACDAEAACF0C305175CF0 |
ED6F7F5BD425122637DE782344226603DE05372AB7AE6C2CB1E091BD47079009 |
C1691C4839BE6AA7A1ADCE8CAD63D1809B18D2A5D6A2364ACBB1D107E451E2D7 |
C4FCC070106FF73FA28EEDDB4E9A9DD296A24C79F8E187E18AE1CE2C2B124A82 |
8E08379C02386A2E411FD1C6128709D90295B113F703100B2B190D69AF11DC0B |
8B9BFF3CF0C0030F39E4102C920D6B6C03223A63BD8A235145448F42DC8A4538 |
497DAA3759FB3093707D087F64AB0A9E4CBB91AAFC398C7CEEDCB9D822DFFFFE |
F73FFCE10F53B25029B21E9FC80EBA56EA5D285C25E99CE8BBDB763DEF8FBBE1 |
D1901A0C5571485C179C70089DCEF80333709A5C3BDF57B916DB0662108F849A |
4C82920E82D382A9A0B94A9B8F6786E617DD26A5B826FDD0D0E1D21367A406EF |
36AC811FAE0BFD5DDD56C3E305D4CD34DAD8711206CDADB7DE7AE79D777EF293 |
9F547F087E30423AB8D84EF82F190938061BBEA72A1106B119A7617447314393 |
808318A2C4CC4358D822585C3F2CB76515266B99A6398FB4B5F952CB962DC3E1 |
67B991971E8335A53231AE877AA81691ACE162280CFCF7BCF3CEBBEEBAEB18A2 |
508B30DE568229B448A0EC508149D2582C5B3209D10163FB6ED2239CC1157E51 |
74223A2C785932F45234610F135DC895D581D2EB73FF733C58B5DD77DF1D9E03 |
8316931A64F2B08D0511E03F31EDF8EE5D77DDC56BD45F5DC3B36BD574671A25 |
342664CCBDEB5DEF7AFCF1C76DA3AA2DA263270815D2A433CD8DCDF015EEF393 |
9FFC4412C6062E980455B060C1022C31BE22ADCF23C90C0B74AE5F2DCF99DDE3 |
5746E092C4AFE995AA2D3FD70309DB316BD63EFBECF39B9FFD2C9AF959B3A2D7 |
195D3B5235BD338B5B06CAA16B5A815B9C3113BFAF0CF7DBB597EA5D9D7D73D5 |
4F9BA667021F1E70A4E0E137E337D0F761CB3803F96D7FA8CED86ECEE76FBBFC |
C4F71D9FAB16FC3035ECF49FF9B973FEF8DB17B7BCF0F7ED3FFE8ED16239D50C |
F2E1BCBE91A1EEAE22BE371A547CAFB5244C3FF7C84F72C138FE388EC14D08AB |
2996638C708D7E0B4D4FD9B8663C6529D794F616BE45B39BC9384692B96FA749 |
F1286FC29B501951E9D8C078AE202409B4EFD2A54BFFF8C73FD297E3EC453136 |
13B3BD43F35D7DF5D5FFF11FFF71D8618741E2483EEABC99D89D223CC14CFBF9 |
2715307E0F8D72F4D14793CB10FFC40F343CD99058D0CDFDF7DFFFA0830EBAE1 |
861B086552CC81729366ACFD38DAE942C3DA895ECE884A2DD5625DD145F693E2 |
08A9AE6896B2EA838A999D030435E416E4658A163A56C746657D842AA7D72B32 |
265A6AD28854F32A27E580B90A981F8A5DA2FF3903CA3A68CC22DFE1E4B0E893 |
93C3B83ABE8B23AA50893D78339E4CC05663534979650168A368125A494745AA |
014C1441C5ECCA493BCFB15AC46890F4ED14539AEAC32EBC5C17C61B28F727BD |
588D2B9849E219A3E4A25F45D3952FD2468FA50F91381CBC33A1FE87462131C3 |
0CCBAB5E0BC70F3F53A4DE7FFFFD279E78A2493858C856662732DFF296B7FCF6 |
B7BF15D5949BB04FD35E816EB67BF84C8FB1608D99B604730A7C593F88FBAE47 |
39E0C8D38502C6B021239E7BEE394C3BF6091E44BB904B899F71011C568C8AEB |
286B06F7D977DF7D619D281B47E79BA1236A23BC0EDF5490692686C8278C5BE1 |
B6D893F8016E311B6E9AD8383EF4D043AFBCF24A82A26D76D536C44998D41411 |
070B9B92915BC5A5EC1DEB2444AD0A6B7187B3A0857B158248E605FEA9AD68D7 |
4D39096BAF7A783024C6FC17531EC40761FCB89280E736189174B0CC3293F4EC |
525A11CE09F60F4FABCAAF21159F78E209DC1C338625E60C131CC77B527F5C1F |
7F6AD572EC9044BF2F4264D59AB962576DB4E405634EF6BCB9B34885D4F443D7 |
319942114627F62A7D30CC2D9E82BD412383E1FDF3CF3F1FCA82FADE596A7233 |
9D544F2E0279E18C0451411B96B998CA6C1B6A14837C6DAD57CCE51FF9BF0F8E |
0EF57DF8C00FE1A9D7FCFBC5994AF5C12F3EB02930C50FE6BCA5B991A1A145C3 |
EF1CA9841DE90541C52DB79A85CEB067A4FFC56FFE62C1AC05782F4E665BAB6C |
D2CC11432A2F53E104A82D0C18DFA5D1891384EB8957E0DC9E74D2493FFAD18F |
680E2A4129337D9AF365926A141E2E9BB155BF577F2D62489F7FFE79D60A9998 |
8F39F2926D7219DA11E419D0EFE5A1139B308D4BFEBA42D061CC7E8041A83A90 |
C3E52F196611D8CA7E04C3A1A2C8A043C9A814F5AB49B27414A95284071C70C0 |
DBDEF6B6DB6EBB4D547F2AF0D741D2539442BEF9E69B3FFFF9CF53C5E24A1E09 |
6CCD3BEEB8830350204B45CF5ED258341CDFBFD3AED6D0BBC871E48453AABA71 |
3B231E45F5EE8084827974EFBDF7F26E983446D7B95D9C9836120BA4F552E892 |
502F2690A465F9826A6A463D4AD35B2C1F6AAB6093CAB67D840C7712AA48BBC0 |
49C9609BEC4DA90486E9788D00044C7F7202DBD0FF6D1FA5AB051B6CAB48B105 |
9CBC072526C57E45DBC8A645D48BD07AC5CE8722B433460494F11A6C0CF64D82 |
58C421649F79AACC30A1E7B4A1031A2DAD4C45B1647462DAA1CCC2B822C5368C |
547B464DCFFD390D28927130FE136B8A318C65073263A469B808A693F1DC4247 |
476528BA92205EAE0829BA68D407560778FB15C664F7BC791FFCE007BFF39DEF |
10444293DA0EA773C09887188E7B3BD79DBD924E39E594FFFEEFFF562E530744 |
C2C18EC48AF6D95E5CC762461384C52EA077C77374CB81E68740332265EC09C4 |
002EBDF4521C739C29166E4D54C0AA51A614E26FA4AAA19557AC5871DE79E74D |
4349DB26D0EDE5E361A48CE21CF244930684F56382B0B5913F7FEE739F7BF8E1 |
87E9077378A9C895EA0E5D6F5BDF9071B0E49D41ADE17676A787366044C56214 |
D3FEFB9A881377F6ACC8B21F0C3BCE3AEBACF973E75C7ED18591576B823DF7D8 |
EDC5175F0C4287DEC285175E08A7886388E67F76A530B7E8CE4A379DB25F6FA6 |
B0B93C2774DCD12DDEDC9D666F5AB3A1509959593FB0E33BB75B7EC1A736AFDE |
F4725F7F7151F1DECF7D29D56F726FCF36F70B6AA9A6D93E935B03893CA360B6 |
0F876604614F4FE78CECDA6D6B7FF0D8CC9E0EB27B52244AE46AC330768B69FC |
EE77BF7BF8E1871BCB7574120A6125209821C6A1602C934D4DB05B3E1B7F847F |
324941F0A4FA8B896746108F39E698471E798406EB75D75D77F1C5173B569529 |
16118FB33BEE285FE308BEC4E1DA296B0A38956DA8A9E13482F89F076149F4AB |
9C8E2D158DD5CE0FA3A48BC36DA44DCF2C91209AA2612276461637A71E0B6362 |
28A33237E273E648703782B02834791386CB14D6C0EE64369E69791B0042D9ED |
241D70A93FB84BA8786C1C16679282D5CEBB537993C6CF4E0AC83A26E3C476DB |
6D07E54A79C1BA55133BF7F646144C97F9302DA2133720C34D88EC60132A6E50 |
FC80BBD1726CE315C2A305CE9CEAC31511F584639558683338491117DBDA2B4D |
C831702BD3B964DE81F0D1A91AE618ABFE0FB762BFDBB6F60093C2734C5293AA |
4DC80326DD46B01B9FCEA913AB36CD2327A99391A3AC238365C5E328F1B903F9 |
A79D76DA09734BC5490A686649F8834D3D6DDB73F6F42A270257862A41839FEA |
7C911E99D81C227EC7865A1AC54A44F5F8B07522CB358E18170A7EA5A6720ECA |
04F290E0AF471E79247424253B06036F0C86BC8979B82013B9EE2235A325078D |
A56C1C4F01A9551526A1E6206A1D9741D5DD74D34D7834BDD8FBEEBBEFD4534F |
351694CC6ECCCC38B6B1482B79CCD9E6814BC06A6CC13B643AD8E509DA9CB22A |
180EA17C502C8715CF3AAAB6FEB6E3F08A2761E6F1FAAB56ADA2317DE69967AE |
5CB91216958EC9441016370FA52B5315D2D9ACA9237A9CB211375FBF7E3DAE84 |
ED026583B389FDCFE0B3B1D83A95ED8253B87AF5EA258B1746945B8DD8C77023 |
C6DCAD5BB6F44695EEC3D9CECE7ABC819D3878DB820181170CC7CE5D577777A3 |
5E55BA84DE0E5D3515914797CD29A6E667C2D9CDAA5BF29B266A42E816823057 |
EEAFB7B2E5DE855DB5B5B5D33E71FA6D377F69EE5E3DA5CD95A091F3E7179B4F |
6D346537F7C15DEBF3FA8A41B991CD35BAFB4CDA649DCE74B9C30BE7E55B7383 |
674AF5DFAD3FE39C2361E1F1989B8447886284101C6C27CC3CA53477A3F220B8 |
8CE93C56ED4B8F30DEC02D277813FD07BB51DB540A98FB0A17EB80D3602239AE |
4840F14F1C134C38D68E743D8A861A515132E8276788084CDAAD70BCA02D1473 |
73FE97CA90546F8E63CCB3AA743A243EDE84BA81017D6A5CE545C8BEC47A7F86 |
13C55E44CDCA2027CB1C4D624CD0AFE2E124DD3967508E2C03D7CAFB727215E8 |
13EC8BBE0BF5AB486EDBF026260EE04B03F1978EC509609307D92D756513A8DB |
815DBAA3982DFD5AC63AA44EBCA453A6ED6E7260424773D5612043DE6154CA19 |
6B0670FD09279CF0831FFC00875CBB678C2E780A456897CAB451BE85499D801C |
D3DD77DF1DAF8F8DA8CBB8F5553149652C8EC069407F84EEE389BBECB20B641C |
E33F76E9972D64892665D899C7956A893B8A6718B30459B666CD1A9C1F26D79D |
A41C8B0BC1C3135AEDDC19782011348D09E1F8B45518A2645081B41B141F2681 |
BC311FC1238DE340760EFC9E594F5972DC907489F8150AF4A9048470B35C8231 |
E0B4EBA81E3F9DCBF9410BB6612697833FC499518A94C7011F51C2A934888503 |
DC3CE294C6FC90490A6F871579EEB9E758CBAEBC1503B9F299881267A2819005 |
05035427CDB7E3C9D2C620C4A64D018BB8860F72E2A23B110587E3F9DB5B498F |
ED3061667012FCB60C507C6BEFBDF77EE69967986CA2656C2650DDD93613A954 |
B8B22A16C78BB0699BC82C83846BD34C8817DA05C4147A5C7D46A170066D1C80 |
B6049F4EDB9113AE3A1CC233A347FBD0A92184505767B15E1E6D35C354DCEEA8 |
E2F22861B74441F2FEFE41D836D8205DF87DCA148A510E1847B7A777F6C0C060 |
77EFACE1BECD8C9009F8F2C0030FC42995547AA19BD9DE093AEAD85E5ED3D42B |
39BFEC143B9C6076A5DA30B39B5E6BD42BCEE9AE412D9BEE9941DFDFB19E1BC2 |
B9F9EDD7CEAD1B7FCDE220DDB7A551FDD74E93C32EF55375E3364DA3AFC3FCBA |
EAAD728B5D11950DD98225F1340FF881447E102C0A3E336DA108A228B8DB242D |
0F3E04ACFA182AD0D2966BB73FDC5A826ED06C85E3FB852F7C81F5A2380834F5 |
D41F565F1484CDD854946D1FD6B9E2A6A79D76DADD77DFCD27D9247CC6620056 |
B12CED113C807244BE94ADE029A7047A74AC3E6EDC97DAE2F66E3313A8D81920 |
15C93B3B93E0F79017B00D2FB9E412EE8F36F5460C0853B9FC0DB629C64F7D2F |
AF5AE324C7024745C490B1BA70DB0B19249CFEEA26B4D75E7B4172612D6D2F4A |
302E6D20D1D688F1D149E87C693170AE6EBEF9E60B2FBC90B20917DF7EFBED67 |
9F7D36D92BC5462B420CDDB3187FA04D291F211DB0C9886DC6B70E3CF040084A |
78549C461A078225F330636EE5424DFA51E36463110C3909CBA64A4B29C87801 |
9373CC17522E33CE815F2E5FBEFC9A6BAE21CB31436A02199A2408494B4B1DE5 |
308D6A9B6A63796C2C8289E34E369F391EF1A10F7DE8DE7BEFF59386BEA2EFD0 |
26F4929EC7748068D6703599A0C5088F3FFE78AC05A530E68A65668C58928A88 |
405F9CCC0B2EB8803E258FAB264D7EA119EFB8DBF18396D503582EB26AF35417 |
A0823D99290206F21176C10C9683EB1ECD49C135351834DD2383C36E9870CE44 |
43090AF94CD4E63BE51D73EC713FFEF18FD7AE83B9EC15B3A6516FF961DCAC8C |
FEA51BCF5503BBDF9F3B67EEE6AD5BC6F01333BAB1465B376D9ED53BEB80030E |
F8D5AF7E15E5BCE3DEC39974C64DA59906121F2426F017BFF8C5F0F0A032F134 |
BEA977C929C683033BF2FEFBEFC78667212F2390CC3473073228625ECF871345 |
0F5B7C203447D4276DCC7C191F2BB2174E192E8652F027880E72B532B9C6F927 |
D081EB62330DD89E137EC3FE7AC62A88629E9243E214E1D46083E97DB9736C3E |
A620A18FE68AE34FFBEDB71FE4A7B18C660132243DB8576D4215892FFC97C464 |
9C1F3FF04DA7D9EDADDBAF1B5A571A094C8799D193AD458906981441A3860D89 |
3D1C7A69932BE6CBE5AAEFA57229E3B6FC0666C2CBA58A4BFCD4BC9A9F33F59F |
CEF153C3FBF6D4DD6D663B63460BCE172AF386E6F767227FF7B8E38EC38A6BAB |
2B3EEF4CF8A8199D5CE43BEFBCF3DC73CFE50187FB71D9659751F56EDAB44904 |
678AFE0A134A43961962097027A189956DC7AD4E370F0E319921A4B028C7689F |
91CF5192734A05CC3D04F181EFB495DE5334130EAE689BEC0E6EAFEBAFBFFEA2 |
8B2E52165A4529ADA417B7E23036C0274C287095BCA49B480F92DB94F48AF8EF |
C1071FFCD8638F1160C28D8E338CBDC50A6BCE9D6A0F6C5A54C57E172C5880D3 |
CB2554E293D34AAF5A644364AB5EBA74E9AA55AB68DAE85812CC2689C991D376 |
3EEBACB3EEBAEB2E4A163B8D2A01EA582C041AB328128D4587C6364DB412F015 |
BA2666BC65A7F5E6F9B179197FF2939F40AEA9E658CC0352D8ACAD62C1227712 |
BE8815BCF6DA6BDB5A03B57DB8A5987DA78BA92277F9195C53AD26D3DE84CED1 |
0715028ED686E069A79E7A2ACE9BDE94A61E4B6FF9B30D8C2410C6B5283F8DD5 |
1FDB2EF553B92DC3F876F4BE2D4768D73328AE40ACB2139358F132FAD361D2C4 |
82F5694CD48918597BC906C462005C08BE755BAB60BD02052891266C8F8889DA |
61871D5E7EF96511AED1ACE4D956C12E45BC8AA64C921822C8204898C222705F |
A3E24088D6708EC28C13B99B2BAEBA12167D77B1D0373870E2F1273CFAE8B75A |
26AC366A5E2ADBF49B1D1D71D221A0FF44C026EBF25BAAB74965D27E33E2D28A |
EC182F8AE808272572B18ECE48BFE2B20CDC086C9B540ADE4314124CB99FF8C4 |
27B0FA782FD89DBFFFFDEF7FFEF39FEB78720EDB5A95D03DA09CE57E9E1E253E |
8DDC4B253DDB156924B535CF1DC9CED4F6D84C8652E466D31130166B8400986D |
383E26CBEC3F61A72D59B2E44D6F7A13AC16B6D31007386967180B24B5087B6F |
28EB695B6F9481728B4970CB540213ED32AF9D1891C7B004734F544E7890DA8E |
31AFC10E25A4DF8AE051336794EA43DDF3D3C303CD3DDEB5EBDACDEBAA61B9B3 |
C71BEC6FA5B3261F2D388E4F2EEA7E376A66CD2B5446E17B4705C638AF4D936B |
3A9D7E66A69BE96CA407E697529B52434E6B6B763B536BB9E9EF07DEE6190D37 |
8AA310C9EC594D91EDD7B4DF9AEE10142DBCC7356BD6309A4B55D5D68D4D15EA |
26B6F29513A4152EE9C4B0B6F41DBF684394DA0A08191823D4490E866775637B |
CD429A74237294A256A78E610C8AE809EE7B92B1C959A411CAE327C654261D09 |
B0620C90A06D3B95A20D6ADBEF4CC752FA4F4CC008BA457A3C9A210C910966A5 |
E9133F2DE53E862A1EF95B6EB905EE326D1FEC398C9C695A92F5D8D32A23A38D |
CA43F254CE9C5088B8AD0A3D8D95306690004EDED5575F0D276CDDBA756A3C2E |
0606292DAC257EA6A941CF0FE3C4232E883F26368D57AC58017D2961C45D85AF |
332A28D5AB90801A3ECACCE7872ADF4687B13C6E7A43CD588CFCDCCA1824D512 |
437334D79C846B89D5562CE46FD349F8E5CE3BEF8C27F26E22C4A7F1470745BE |
23F7005E997DEBC4D8158E2F3B31E3D137B6C7D9766CEC64A18C2AFD86DE3007 |
202249BB628D89065A66625BD4CD6DFC97BA6C71243671BC9982B82E4CFAEAB0 |
199189AD460A1A3140851388E31901731298A19080D42224048563FAE057BF5A |
C8E6AEBCEC8A6BAFF942063BA4D92CD5CB69376D82E692F98BD66E5AEF39E97A |
D8849F9BCDE4D2B9ECD068C47210AD8783198B394D4D14E56EB4AAE91854C11E |
1E1464D1E973C7D0E602F933D0DAF4A3E39A85848119173B0450C3B86DD08AA8 |
92E9B109CECA3887CA11A90219A0E6BADBA59CD3CCE4F41F79C0F64C0656F724 |
63D562D96545F6B31473E68E2208DFC44603390E136AFD31E395679F8FD609E2 |
D1262AD65855E072BC6CE6A6368A6C7BF39BC494B4CD68611704E1D60F2689B5 |
D885CBC6F2E9F95C9509448FAE96BB7A3B470647A3AC66CA6CFFD61DFB5B1BDC |
CE7AA1009511F960A3C3AD7CDE7415E185C74E42DA6D3583B4EBA473B9462B18 |
AEB7C26CAED0D9359A7DC3DC0137E737D6FEFA4933D32C3A68E1869F6D080793 |
36F2F187363177B22D97DA64142144B46E459481912B16AB082B639C1FFEF087 |
9F7EFA6998747C475C0F03148EB2028A70A81E7EF861C289C461C00DA9161A26 |
7624F04FA20770673B3AA8689C36D8741EB05208EC45CAB9A630A50DCB3DA4FD |
A103CF30A9EDAA1BAB5A14EFF95FFFF55FD452531D0F3BF3CA6320E49B49F828 |
8284066C62D70B1135DB2507A22011A98D89D3096D8E232E839DB57AF56AA84F |
3C08675EB46736513B953191538CC908F1A12493B81758A5F7EAABAFDA246742 |
231368C61BB26B0DF70D47A8F0BEF4876AA51860A056A6F5C31DC0AD40E67D4D |
A9D215548D3C57F4F58904667E85F573F8199EC499679EC909275E66AA7DC2E4 |
13352505939C660C1BF3436E6A6E21829FEDE00417177348C663DD99EB428F81 |
0BC15834DF574133C2EE18C06823369707C36DA08C2F5F8A511C6E243B21A76F |
E905ED9A93D34F3FDDC4D8C8071F7C30B458EF199AC39F98E0C78C31198F81D1 |
A4D36A126028FDCD7DB2D34E3B9145CFB1D8E16DAC1F97497B95EFAB0D89DF13 |
CC892922E099C616431AF8D92EE8B269CC753673997CAD5A72C855895FA4DCD9 |
73E644288D6AB3669AB37BE7F40F0D76CD9AB571CBA6742E72268C139B32B0B7 |
9C149C5E58BC29279AE76A90A4D9E293DD3B2BDA0F610BE34F8B5B6674B44C76 |
F759B366F6F5471E5B212E588ADACA7ADEE8C84847672714B6F86AA0B4F05DCC |
27014A2A845529361E01070517D0CB21264307DFBC9E8F93341D6A2B2897DB44 |
501BB3ADC4B7CB3168936676B76646FBC97EAAC233EE460256962F5F7ED55557 |
293B6857305373B008058B8B9FC5D9C4ADA8C27D11794EFCB411D4B4D14D4820 |
8CF5168CA504AD5BAA138561F12DC5E105CB8D003DC38358F19E8E8E663DA8C3 |
6ACBD43A76CBA47AFDD14AD0AA9BAE599124EFDF06830C3A385B29D58B39D3F2 |
236E6927E5B5C2A0E60761DAA4F0CBC2C11DFFA80CFEE1F94C504D7785E5A065 |
304CF823A161EA44C57E7412A6C14098C4E495D781B7C06F0E3BECB0830F3EF8 |
9C73CEC106234D021D39FCC01600CA9AC136DDBC793345CDB265CB582F8769F7 |
E326ADFBECB3CF9FFEF427C609E6CD9B879B289EA7FA6327615E12F7BEDA0708 |
A43CF906A580200B2E85AF42A3246A664015BF21658134229799C56A5C48C13A |
3859EF7BDFFB7EF4A31FD969D436C02AFEC49A6339BEAE45B3AC3827452A760C |
11C50C10516F89C480E29BA9175B1591FCF2ECB3CF86E348CF864FE10CB24DDE |
7EFBEDF7BDEF7D8F83E77920C11B6FF2C10F7EF085175EB0198F35361E2A9E1F |
9B595474D0E29A204514B73EBC10F8F15836EC6F0C8CA7D13E2A3C0F3432183A |
667F3A3BB68961602BE02950754AA062EB6CD8B0016B44EE3462A4557B2D7392 |
2CDC64645CB56A9597F451E7769F066D2B5B017738F9E493EFBEFB6E25B9153D |
E6D263CE313039DC0C4B30524787FEDFFFFDDFF915FA887C059A268CF9B0DB9A |
5D24AD40F497BFFC65CC9B8C306D71E6CC48784B49CAB40837E4C47DA8036C43 |
138C95D83BE8A083F6DD775FCCE16DB7DDA6A88F3D27AC0493BD68BB11B69BC2 |
0B66C5BC0750C098735E36A902E69BB2E6C18614302D622C97857D8BC5C3E7C6 |
6D1E8C95E1A3E9430B9DF58E9152774C4FD78CD1E1A19E62C768B9544879997C |
6E68B43C3F57F4211F9BCD7210BD0C14B5974943BFA762A186AB20929B8D5694 |
028CF05DA6734E14F6A8976BB97CB6ABA3F30D3140544D23EA751C0788D16667 |
2736218C5DC76F854C883012C3E00117880A9B9B87F6BAA22C4C7FF28C8BB2C3 |
8E6C7309A6693F37D5470E4A90F487A0C5865D7DC5155750F1D899021AD036AE |
AAED5CA8C24D30113BE72A4B942D226C052C10AB88F99CA46FBCED36F0D8AA1C |
BFED9C8613AA9B84B554B5985C37E8128A0E885FDC76EDDAB5825C10FAC04A7A |
9E3E6A0736798C9277AE37A3A3A33232EA608F643B47BCD130D3ECDAD52BCE2C |
962AA3A39570E6FC48C60E6EF36774E3FB9928E5E1985660A28E3C9EC967634B |
BA69BAAA3BF6AD7C39EB171ACD56E88569CFC5DACF4D776F690E32076433030A |
7439F14D79CC3975A422E18910B5A7B1DC5019282C1962B84E2A434108B904C4 |
BA0AC707B98A079188ED339FF90CB60A2684554C74A64D1275E31A05096BD358 |
0676D28DA8509596470134DE17FF24D64B5B5C20492D18C404113DCC55A8F448 |
F2B14DC428E4CB6F61A660D8C22A113A7122A88AE171BB8A9717E87A1E006D4D |
52D6C9A09370742D5A79A6041833572B5F7B13D3E823A9135D3AE551949F104A |
D024A541F47884852176493039CE9BDC6811F2893AD85804DD8CDC72626913B0 |
8329B42FF156AAC1807CDF61871D9E7DF6591BFD212C8F9370E699C4D556B101 |
3CBC33CE388337C72AB0F4655281456F0C8FC67FF1E2679D75D63DF7DC13C4BD |
51211661E240B2BCE31DEF78ECB1C704A792E8A10860FA00EAF39A6BAEC1EFC5 |
A089F9C7353839C4A17CFAD39FBEFDF6DBA195991D6050847A0563FECA57BE82 |
DDAFD48014B017B7E8C195EA88CEC88D338149831F456E180F1452417AFA231F |
F908E43B6606BBE8D65B6FA5278DA1C2512071D8FBDFFFFE7BEFBD976948723B |
B02D1DAD0A1BE86792B09EA21A53054E9DA4EC8A057B0C71E30062305FFFFAD7 |
79D0684E61B1A07BDAFA571205ADB8771BC34914A8C8A61AF8653398D3511C2E |
958B11E1C3E27FFCE3D5DE5C715BAD0CCD86A51AA955B2DDDD5B0606BB7B3A2B |
83A363597C3FE2F49037ED27E2C4C30F81993F77D6C0B63E2C48E0E229A95ADD |
4F79C66F9919DDD8B7A5562C3C8B8531DE984A35524BB367F56EEBEB6F59FD7C |
A43668D18A6F52213ACC1EF63314E465975D26335A02E19F54BDDACFF611A688 |
97C9C875A40250172CDB51B65730483A06F2E2458B1611D64EA9C2BF2A19A7B3 |
C987D292702C9A1AF559C23FE11E1C75D451DFF8C637B067ECF48D8DDA9D28B5 |
B88D5BE31BB40B6935B1D69F3B0AB2228CCB32850AA2C76C628EF1D744BA939E |
D33BA3512967BD62DFE848A1ABE867ABD55AB57B6976DE9279EBFBD6969B66F6 |
421CBD666DB495CF7AF5B0E5A5BD267CE56698754D47BA681A4175A85A5E69D2 |
B31C674BD848B951634CDFEDE8EE4A0D0F0CB8AD20A17EB469BD276516B37FD0 |
C4D219C5CF381A9837AA09957A723938990C2CB3092FED5D76A2C4D10BE32237 |
DC44E17AC93D05B7148CD1EAE30E0CE071734A01BF96B29E74239AA4F909E79D |
B5169FFAD4A71E78E00119E02661E2151488B02013C746A4BC555249042C13C3 |
6D01719354374B494328EFBEFBEE7FFBDBDF284AC4CE48CF495DF3E008626CB4 |
4D44CFCD3B50E8F0B6B49A99FDC50E8646E12CE367DC5F4606F3AF6D124AF93F |
9E9689B531F480A9B64DD21E87482E7EE54B5FFAD239E79C23CD672CA231E689 |
8D55F18967D9ACB0729B589284EB715A04193349721A3767651BE79321650C80 |
F4499899050B16B09281B5FC4433D9FC21AAABE6E3D40A7A9AFA6F599A1CFF4F |
7FFAD377BFFBDD90835FF8C21728CBA8F074015D5E06CF499A4A60212E6095B3 |
A8600495E283983C8B6A1993E3C4ADC293A074946BB54A15FF095F56E4E161D2 |
E542EB65AFA34C3109624E0EAD5712A8C1033EF4D043D7AC59839B3CF2C823C2 |
62503CB1190363EFB009EEB8E30EDB37527F78BE9A2AE5981F991852E3CCDB71 |
4B7CE5E4934F7EF4D1471901C269C790C8E14C330BBFDF6FBFFD5E7EF9657217 |
88F3C4661A51A91BDF1493DE057FB615608296F4F442920ED46B7B2E59B266DD |
BAEDE72D59B379DD95575F73DEE5976170B9627EB05C75A3A97602E3D482C8F9 |
8DDA2939C687A28D61359D853CFCD97AAD998AB4B099D9D1D1572A157263A0DF |
6ABD997293F44160F2996CB551EFC84741A35AB3D155EC1829971AB1D8D26194 |
596F1F49B19B190B8D68CB9C89408DFFF1E35AE4A61220BA096F2EF7947E2D7F |
B0DD09A10E791F2F6E46B9F3CE3BFFF9CF7FB68D032653687F13E4C55A060D46 |
E5E9D84B24E0A3B015C891882AC7624074A6AD5B3589FF60120BD58929F44585 |
7BF8E187FFEE77BF3BFEF8E3AFBBEE3A420E790A70D6B08D4F3AE924BB731AB5 |
03BE1BB98C153F93751ACDDAF2E5E7DD74E39D0B172CD9B8711D8E75D069BC5E |
B3F33EDBF755360F566B850E77742088CAC44CDA7841E846F3966A386E25D31A |
30AD51E36EAE8FA64C67C3943A32A19F2AD4C28AE7CF31A941D7D7D4716255E7 |
39D5FBAA1D16CBCDDBF295C6EA4EC8BD84CDC3E6252C3A67773E93A48DB4BE36 |
0E4ECD187067D8DC3001219619C638FAE8A39F78E20946A7F8211E9B516865BB |
A654C037DD74D3E5975FCED2A8302E64C620EEBCF34E11BB088020CF404474C6 |
CAF0531571A71265D0A63C8C856493ABA153C446D636184AA63D370DE4CE0107 |
1CF0F8E38F63B24441A70A5D2C181D5CE81EAC044415A113346A28C469444B37 |
408612D38F91ABB16E6891D6525BE0B9CC04F0EB764C9F00139BF6993721B08B |
3C647885DB6EBB0D0FD28CD1C2B5FB595275898C82CE226F081FEBB7BFFDAD89 |
3193781706E1D5C2F6CA2BAF3CFFFCF34DE231F3CC086FC51FE0DD62D256AF5E |
ADE60752752CD7511E9AB6D754D97A0506DB18D3B83A586BDC9F65242C647493 |
EE5D840D0B522804AF4C4B253855D4C4F160A2307BCC97330EC6302073BD5C8E |
3605CC008C8DBDB2F3A06D404A3ABE9268AA23D4E131711A65C71D77A4838241 |
C2F9E6A11045B34865955357FF2EFED3C4F8036194E895CA8309A7284362B371 |
DED68C2FCDB235ABC8F044B363129E3BAA347E5118EFA81CDF847EA3D9699CD9 |
F9CE91EAC8CE33664127546AE5AE6C777146D7FAAD9BFBC246269569A5539BAA |
959E422E4867203BE18756EAB5060480E7C29B69F8269F4B576B4D27AE3185F6 |
CD7A5EA3D54A1B276607364D5830F14969E0C4C569627661624C153F44F22B0C |
D2AEB778D95232C33351223F46D5B482F5325AC6B00A54020D6B61F7A6E1309F |
6A3FCBF02242828083871E7AE8B8E38EE36CEFB1C71E4F3DF514A3682CB65678 |
A30D2864177013C12BC3D18C2F4392C014748BB1130D86004FDADFF82FAD6A66 |
BB8D450ED52657DB1492D845ECF345C142942F4D55F54FA38783ED8DE306AB9A |
6139D19BF362689DEBAFBF3EF4D35EA619A41ADD3D33B6AD1F72C2ECCC6C57B5 |
3EF2A56FDE71F22967CCDCAD5098975DBF7970EE7685A1814A2EED39D574D3D4 |
9CB4C9A48C3F6846D79970AB49B5526953A8E61B33ABB5D16CA6590FE1688F74 |
BBCE0814C76BB83395D54EF3CA61D2F2CF24A6B649388B84E909C677B0B6CF91 |
DAD5701B504A13364B82553593C67F6910A820905DCE689D480B485D6A938C09 |
1F790CCE64ACBCD273766DCC85175EF88D6F7C83D121ACA848705445AE10073B |
0790AB13476B975D7681D360AB0411FB29C92103CD195F573795256BE760EC40 |
102D50E97E22E2882FA0101455422A6EAFCDE4225D400EECD39FFEF47DF7DD37 |
1158A8E70A1483FFE28B320CED8514140B7B147A91EE2F1E073B80A869FC46E5 |
C59A0A0E5E714551F37033A9B704DD17A546BCA49901771525970DEAB1C7CFF3 |
4C974E0001D95232269407B5CB2D6CF8BAFA2E380907A71C023DCB2EE661B36B |
D2E3E1E4C341C4F1A67927971716007E60F708CE189792A625CD0E0D8C197ABC |
E999679E092949BDCE0931562645FBDC8C873AF31D99A7B021CA26C11BEBA00A |
E7CCD378F0C107E3A431D98F8BEFB8FDF67C3EDB552C0C0CC07C4E076EBA526D |
CC9CB77070D3DA4224A7AA0B162E1C181EA995C899D545C64ABB2A9FE7C83379 |
C74464BCCDD00F4D3C60FCC383B3D984420B636DD2D1DDD1ACF83D1DB3FAB6F5 |
2FDC6E0E4E1605B1CC440E9899AA8E42B15C29BBB1AA8BFEEA780DBF1E95E1C2 |
1CF14C50874A3529C79DE18705E3741BB7C7710BB1A5D2324E23805B9C1EAD96 |
3BBBBB07CAE54C3E370267D435CD56AB64C27F7DD7C1BF79F28951C8CA66AB19 |
EDA8DC50A9E6C79960D704A95801A72061A27F62A378F816FB40A4BD14364AB5 |
D1E84A654B99965F8988120BD97C5FBD8A352B668B477EE4A30F7FF751EE2BD2 |
29504B65E35225C7382C2376CC185E263AB6CD0691AE8C971A0B22F47A15B044 |
900D0EA0FF802D7AEEB9E7E22CC34CBCF8E28B455B684B275ECC5FDA484C8C93 |
3173262C48324A654CAD4F2825837C36CE96594F397F426011D32BA253BBA5A3 |
8DA7D159168841370C128651559953FB1E79E491F7DC730F03EC2CD5A397CCBA |
1866E838212CC561D1A98C24156B44F3601A6E0BFB2CDA794E36CCCC4817E6E6 |
F0DF2810D25F1BDD586E0C35DD16B689091D662A5CF933B62467B858FFB5DF4E |
49223B95A9F725F780B03B9496CC06CA6FE48712865E326CACE79E7B8E8900BA |
40CC7CE132B8A6587763759DC241C3C9A58E537C8B6B81438D3B10BB632C60C7 |
6BBB45E946C965B121F267DE91728A156C73E6CC21A197E2D2C6AA42617980B1 |
A03736E72DFE09AD76CA29A79884A08A5B81BB7062F95A1B2065E2C72E29B6AF |
91E3288F996F4A0FA04D28DBA5ABE28F253A6E9A10C744A4BEBC64EA3379FF82 |
3232D14293534917CA5FCCEAB1C71EFBF0C30F2B3CD09600268703DD1AE95AA9 |
4937691CAB0433F59C9D23B14BE5A426B989E50B52C3F1E6F21EA69162EE046E |
5BDEDF6E5CA3ECB8CD7245C4008944ECFDD356AE0DABE54B5FFA12031BB4DFE9 |
4953533A71893DBF2BBE0219349A468E8486B38DBCD029B5F98CEEBAEBAEB3CF |
3E9B9245200061DC289D71D9C73FFE712C1946850B208E478607BFF295BB6EB8 |
E1FACF5E78119F9BCBA6D9BD0AC37EFCE7BFDCB2655B3E5EC12A5CF6A8EAA642 |
E4205169DC4577DE79E7F2CF9E8B11456DDC62911E9A98B72A340E543A147B3E |
571E1D8982BC7E90CBA49B8D7AC6EAFFA897126AEFF2CB2FBFE4A28BA3E8482A |
353018E18D431A79C542B55C21E619FFCB416784E19C54B61884D9A0B178E69C |
254B9694AAB535FF782515AF60A1BB73B85CA9B69AF556D0D9D3DD373080CD0D |
5F67D5A6CD9DB96C2A9FADFBADBED172DA357527A644C680231D1C46CD979C58 |
017BAE1FBB2F0D3F52C06E10561BF5CE54B69131E9C0CCEE9CD93F3CDCC8A683 |
4CBABFBFAFE0E5475A51F69194D7C6F2EC5DF39A88B0B734143016EEACB3CEC2 |
B72837C9A5357D3F8F7F5E01EB08B303A0FAA189108D6E960D11E205943FD8F9 |
A79F7EFA6DB7DD66A79F24124F3AE9A4071E7840495C3BEC612B09064509ADB0 |
EB7AA560EC66DEF63EB735B1DE54E47D8CFCD9142E8C42E1CEACC3E169259495 |
202686C1ED1614FC937899C4F7E01B3FDA0361DA099C46588F779B891A166274 |
38E5D8B92D033718BF6F393059C2943B66E68613283F25D87181AC2B6732F6D9 |
30A136E33F15CDB2ADF089A919FCCC84B72A542597C4344EFF4A08472C0746C2 |
DA6B280EDC90491F02483106CE0F3D138DCDD6538EB11871F933F71669E81957 |
C483BFF8C52FC2F4534C55C458E43150076C6E4166C258B34C3B480D6BA93F44 |
28CA7DA3B00C3DFA4915F05407662A0FCF265DD20B3265A2036057647236ED50 |
83493AD24FFA5C6E5C4104B9E77866542767C39E75209934DD7EFBEDA124C8D8 |
407D836771421812C1A4B1029286A78D14B0959FC041046E28462AC865DB5CB5 |
8534ED6F8968C256D2F61755AE63135648FD2B5AABBC32EF29262993981A42D1 |
ABD19B7A3E1A4BD9F311C44198F1D0532502EC79E69F60721E73CC31B7DC720B |
362106803D4CA9A48CA00241B660155498179F71C6198F3CF208834B2AE8FAC0 |
073EF0831FFC80928839A1F7BEF7BDD82A0B162C58BB76ED760BE7A573F99E39 |
0B33D99C0983534F3C7664DBA6622EFDF5FFF3431DD7FE81A1A8743EEA5558EF |
9931D6900A7F828CA3570115F2C9B8CC696C7D234D9B8AD5B0136501CBA38149 |
173BBAB259AFBF7F533A13EEB5E72E2B57BE60128C02279C9179F6668F0B5A1D |
BFE5D34AEAECE81CA94411F262BE50AB560A5EAA804BFC00527156BED0AC46D8 |
AB05C5CE421CEDAF34A3B6B125BFB66C871DD7BEBA61D0AF2F9C3DEFE56D9B21 |
A167173BCBAD869B8ADA096F18199DD73BB36F78B0EC873D9DC5FE4A4C4A0309 |
1806582497FB215ADC48EEA4B23185137CF120AC556B5DD97CA55987DCDD7EC6 |
DC5787B678B98E6DB5C8D69CD9D9B3B53CCCAC046C08D2FB617E22AB28CEBAD1 |
F7E5A90F62C2AEDE5819DC78E38D175E78A17D48FF7F84A0A752C03A11B63C91 |
7416A686011BCCBF88A9695DD94DE3F122F82E29D218022107755B8D228F867D |
4C741060AB9D7FFEF9420CF0AFEC5BCCE34F8944875B85D10237A811A7225B61 |
DCFC03BFDFB2658BED6AEBF850432B784E94861D2054C45149C0E8B25603DB37 |
ED64DC101BCD6F193FD2C1DC8E41A47D5326ED3A6EE004BE6946EAA83576F629 |
97585A421387479E7345BCC83490EF3675B0CB2EBBE07A92FD31836B8B7162CB |
55F666E2524FF239D3C6224938742A6BC0EC5A7C63519599D86DD86DB7DD9E7D |
F6592761B2140ED74CAA8029DF19A1A5BB2D1BCA26C6E4AAD3CAFE7CFC61D251 |
154A5C0F26FC8488613F511A470AFCF2E6DC94EF78C73B7EFDEB5FAF58B10227 |
0717C391B7E5AF31FF731DFD544056FD9E5602DE029B9EF9212EAD931417A999 |
2E2E7EE31BDF0887ECA8A38EFAF6B7BF4DE4DB5403E04DC440E624DCFA2C39E0 |
BAF267FAA676BEC724D93B7E7DF6ECD9F827EFC3340FAD36319CF19C9BF19D58 |
A4876CBD280D4D9348D8EFA942085C1766B06C60B619DF55224CB8CCF42037A1 |
6C9453A82C00FF2AB39AF3EC24ED9939572CB460876031297283313E8F7F42B1 |
C10CD264B681426DB9230A21EE55BBB10713D27055E93404497B0C29603B00C0 |
FE3F0F3DF4D089279E78CA29A77CED6B5FE3F6B6BFC20F6E88C3FCBEF7BD0FF7 |
DC79E79DA3D358AF74F7CE19A936EFBAF3CB1BB76E36CDEAFC9E826954EE78F0 |
FF44A0B35C664677E735D75C3377DE0228E06CA168FC3A9F8EFB908E9B31B160 |
460ECB16C9A668E19CA879BA1FCBE258D266331D954633164A6EA53682BF67D3 |
590606249EB0CFF1674C1D660376F359679E994EA5B3E974A51AE98C80ADA81C |
E385A6D34D158CD7E9A63DE3B4FCDAAC6257A7E70595121E9A2DE4BD54A60E13 |
CE35471C71C4EFFFF0873FFDF52F8B162E2E576BA3A552AD519B3977EEEA2D9B |
97CCEACD158AFFD8F06A2B3050BC9994371CEF35D3A2DE329E33C69D628228FC |
E065D241D387079C76DC66B5D6D3D93D383A34BF63E6760B173DF9D25F22D9DC |
5128576AADA0598B85E0C9279F7CDD75D72977CE10B48915B0ACC968E325F4D6 |
5841A861FE5EFDC25FD7672A05CC7203D28D7157304D2803548949F885D88110 |
65B8123B04969C5832B84C8AF1E002FC869CD58A039B18E5C0D20F25B3580943 |
6580EFAAD0808D19D8D511A7E690430EF9DEF7BE471F94702D1271F3D4B81619 |
9C6B35B6A2ABCAA203929F10FA8B3B5C7DF5D5679F7D3659D85482451750AC5B |
3C6266BC7D6F12A3B052AB4001BBA1E746B9895816A5023715AF4BE0B82D2F68 |
45A5BE810942278062F68CD7663329F8D416E0945733A9889348CFC59FFDF7DF |
FFE9A79F666D859C783593E023F6D8638F55AB564128E1F59D0925128C7C5C7B |
EDB5B008190C604812221A33A3321F95C3A8360466D64452015B55398CA66240 |
9005902C0C58D3DD56DE9B4E18D1E7182E9593CA28E916E085D57AC5B1481695 |
AE6018106B8C9B93FB89325A349076DAA6CD039EE62C8D3328924DC01A593C08 |
9372EAA9A742C1DB8D9EA463B88AAC1122E289B061926690E06DAA87B201162D |
329B50891207D6280660E72D1499618371BC320F1E69ED5847248E085560D335 |
E77B71239AF158033399152232018582DB8C2F3521E0519429BD64C912AC1A71 |
837620A8ADE112E5456871B619CB33A6358D5F8A25809B95550D2CCE616F1013 |
7332435A857147581E724556F0EEB85E08038A548A42A155299A69DFB0705CDD |
5B79CC087AD261B3D3D86ED258908110B1B71386C675C135D84B8C93E3A5885A |
5023AFFDF6DB0F8384CCCDA59CE172CDA4B2956AEDED6F7F7B269DDA63979D4B |
43FDCFBCBCB577E68CBFBFF0DC50DF96FFB8F7DE62315F2AD767CF99E337EBD8 |
EAAA32202F5804C51C89C2CE104529C775424C78D535CD0CD4492E8631852656 |
A36E3106452F5AB2B06FEB3631A1126843E012036BD1B66CFA1071A9C8178D4E |
E2C0C870219FF5ABF5D9C50E1F7E9509E798426706C2BA51CC66B2F0979BF574 |
CACD43941853AE5406EA91E1BF796B849E2B053E660D7A7A6379A433B2AB72AD |
30D8DAA817A1BF4D982F760C954BAD4CECFD84C1D85EF3C6EC33CF84D41FF57A |
132E4FC6F1C2A63FAB6B86D70A3B33B9A56F58B67160E0E9B57FDFE6D7162F5A |
7CCA49A75E75CB0D6CFFC54E35D45251CCC37B2DD26ED789657263A95015764B |
70FFAF28E030E97AA46A63990526E919430703A3A5EF8EA7EFB4D34E0C7499A4 |
8E5FF149FCFC96B7BCE577BFFB9D0A14891BC507DAE2F7BFFFBD9A4930CF6292 |
BAF99B6FBE194AD1C400D5356BD6182BB024583B73C344891A0B6F2582580A13 |
D810904284592861477402E70163C36F704E55462FACA5490815DA3A77B9497B |
1B228F6AADAA03A3AFE599444445C6539CC5E77F99CE8FE0F35EE0A49CA03E76 |
1D73D518003BD1D1BE543B4E92FBB6E2FEB0767C2EB4FADF705DF0C1356F78C3 |
1B56AF5EAD523DC1A6E421E035D571528E10A1A90C0088C4972813BB5536D52D |
2E8621820BE04F5E7FFDF5AA8CA0189F32078CFF27C00FDF842DF3F2CB2FDB7F |
56AB268A30BB00979B12B370EEB9E7C2215665115F9E017112A9F0C5942B85B4 |
C2B95AB972A57C6B13FB6A620B7B5D0A78A2A9C205A05EFCEE77BFFBD18F7E94 |
F116AE1073BDCAFCD1F363C24F8809137BA8621199F4B95424380C175D7491C2 |
A4EC0F418F0DF6D433CF3C437B992A991550AC49DD7BEFBD9F7AEA2901BE7001 |
96E09BDFFC26B4113BCF30BF72D34D375D7AE9A534CAF0CB7DF7DD17F3E64EA0 |
2C36E3F108F63827D695CA3EB5493A75B7A54B97E2BCE1D1B698A3A091309276 |
6F0325DA9EB149E2DB2AB3711282307C859690B226AC4F637D9493147AB5F5DE |
20D8554D08A8741975A0BA65B4A08D5B805940A63626056129F5259625810A25 |
58ED523A93D8C2CC3B1C74D0418CA88F5972851CBCCDBEA1D1771DFA8157B70E |
1DF82F6FFFDE7FFFC8AF95BD4669FFBD770B9BB546BDEA7AE942B17370A0EFA7 |
3FFD29CBF9702B52E2E159733ABCBA1FE27FD57A0BB3D1BF7563AD5CC37497D3 |
71C82EC42352F013464BF5D9B3E61F75F427EEBAEB8B0AD0D1665294658CF5AC |
2336E012F907B1E7865114B0DB4B777B996C33EC70D26ED0E82A74D56B954226 |
D5DD99AFD7AB9B4606E1A375B8A9D1B085D585B931BF1035E8AD07CDAE7C44C0 |
D4571DDD75F192575E5D974A656A7EA315D56C4602B7EC448E5A3388EA8B5AC6 |
6883160B99563CBC5AB59E0A4DC6441B18BADCADD58BA93CDCA9B57D5BFBC266 |
39ED0C57A3F7AD5B36DF01071C00110C773332B39A3E63CED19E8F69A6B9E79B |
2D9FAD4253560B4BAEFBFF960296052FC25AFCC0B213EE495A81AC62E096E048 |
54D06C836624EB9440A56EC0D3F7DC734FB86BB62E6170911621EFA6F02FBBD5 |
5152A968CAFED9584689609EDCD8301F7FFEF39F5306721A79B4E92A70E72BF5 |
C390180F3B0D0572CFF1006AFB8949778CDEC0B49C300ECE87AEF205E335502C |
E71DE20DC34C2A2B5FC876256DC61B9BE39333E6244D42258814B252E28F617C |
1AD976A69CE21AFB045AECBAEBAEE39F18C4A5972FB2429338369000905A1C06 |
E60723C48A085CCC214180D39D1012DE4C9503B639CCA050B1B73074968D7322 |
880D96C341BF10FF9559243E6B7A0F641C542F552761B3A2D0C78EA169C6A61C |
181F143F79BC54C7E68C07D04F736026D5D3320208A70A1276787A93AA7CD509 |
27B4CF24A11E56DDD18C9D0684A5A240A672EDC650B8F3B265CB5E7CF14585F4 |
790169C9648BD0ACA1ADCA32651BFE268B9BCA469AA00DEF672BE0B65F3A5370 |
4DD81F6659A495D90189BE26CF2DCF9230EADC8226414ADB5BCA1E180D323A61 |
B6FEC667C71D77C446FFF8C73FCEA58105033B03CF85E68390F59376CE6250C1 |
31205A8D6EB444AA622AFCA710E96C092777968AD96666B03D601D4215CE0B09 |
6F927E3822DF171C5DC89A306ED171E081070E8C947B3AB2D5E1FE94EB98FC8C |
4DD5D4FE877CE4E77FFC6BA655C938AD547D68DF5D7728F56D7AE985E7B094EB |
376CC29EC14160E52EBC0AE21CA3616CF73EDFE4BCDCEC6C71AE6B3A9BE596F1 |
5BF0177FF3D55366CCEF1EDAFA9209625AABC87170E7CEDD6EDBB6B5F42C4DD2 |
74C4495A53F36036EB5192321D8BC5D8F08FCED9AE3BECB0FE955776E89DD715 |
A6FC9151B8162DD398DF31B790CF0C0DF7551A955426E3A532D546BDCF6FEEBD |
C7EE70D337F50FE48C3BA77736D762564FF7FAC17E2CF65D5FBCE3ACF33ED591 |
CE979AD542263FD28AD44F3334418CE18E3AB9C707C84B43EF9B2C0E4B0D0AD8 |
494739E2566FA1AB103ACD6A65CE9C05ABB6AE87CDB5A1325C0D4C57B1D072A2 |
AD08B9245C274F8D6B41A019D18DD44C18E4ACD20356D29387FC7FCB03568987 |
0AF6E880DA75833CA4F2C3B8972858943696078CBF1E7FFCF177DC71079B6861 |
3B6963DB405FFD938D2C2940548BC55A73FC0053008E29FC3C35069654E48657 |
A0C846A5EDB0C30E14F26AC82DD82CF51959D67958546D75CB2DB7C02B50F5B0 |
5248548A6A2544934282C8F1AC36B5AD585E39C16B02BCD50E70C19CE059786B |
72BDE15698226A102FEE38F4C20B2F18AB7B158727CC1AF96D083E67E2805602 |
5F815E2FE78472DB2E5DD975D75D71736953CCD285175E78FAE9A7E367D24F9A |
84948252E5B2CB2E83CB4B3B86E5490AEE3266C6B0D9E40A98628B3762296A1B |
0440AD0D45BA84EF7FE52B5FF9E4273FC982271B1F0FB70F5E20FC4EBB7D26BF |
CB8E492C38113E8DB3A9E02D77F3FF3B084BA82EDAA4F2F004F669258D75B91E |
02B0C88652E8782AAE519E43AC076C55CA65DC072F88D721F26D526A565B3FD9 |
586B7C6BB7DD767BEEB9E7D47C8D23271A9E3075EE2A06408C55871D8EE7A1D5 |
23DC8403994B2E65C9CB3CAB47EF4485CD090C2D4A6A292AB9BF7C0AAD5DDB23 |
E7693FE28823FEF8C73F3244260E7749314EAFAC22EC2B82E68898A3E36B8399 |
C56960127C190F5E2AEE1B8FDD25DA3976FB503E9E3721DC71521096768ED2C9 |
ECB3EB5B9D9B09C1A02287C7C010BD9B7C1E7BEC31E8D199F3B773EAC35E63B4 |
BB98DF3854FBFB687AF65E07BF32E477B586EFB9EDF270B4DCEDD6C3CA603A76 |
D8204A72F9224C90A80D51BC4B19348EAA3C5341332CA4F28BBB7B76CBE71687 |
F5A2D348A54D2A931BAD555FFDC9F7BF64C2F5B97CC38D0AA08394570CC2AAC2 |
AD5C7495608DE1D4BC94DFF2538ECB3856A93494CFE5CE3EF58C87EEFD8F19E9 |
BC53AE7A7E6346AAA3335F181CEDAF9A5A3A0A1B3B90647E54B9E48D84AD08FA |
65CC7673E6366A0DBF1E45E476DB65F7975E7C3603199B8F16D44B67B68D0C16 |
52B9B25F8B40CFD15EF170C002D7336EFC5F63FA4B25FCA5504807B0275C0F0A |
38A8357ABB66D44786B69BB568AFBDF6FEC6CF7FE0E78A5B1AE53097AE559AA1 |
7564E4264636597DAC285FB5005114B4E52F5EB2047E12565FAE216BB2FF4703 |
F49F54C09A64B564BDF6DA6B3FF399CF98A4CACE24C00E6315809804212C528B |
564C7BAE1E0C02129A241186BF422060635070730C92511405F27A1516B24FAE |
63F1A7DAA06B938421F3F107525D68539A9B7C0B921892124436B77C8CAF7FFD |
EBC71C730CE7966F17C6E58EA9F12D32190F8872734EAA1515D485868650F2DF |
543ADEB1AD31CE702782CA7BF092E1317B49E33B4E0BEBA729252840F0CBA38E |
3AEAD1471FB5AB1FDB1430C5BE9BB03F86315D8130AAF687B009CCE7B9E79E7B |
DF7DF731142A8E49F6D4B2E31F34BE9589602122B98D29F9A9F2A94DA8F57524 |
270941ABED818C23C62419ADB54B89A051882C0827FB047117E28F7DEC630F3E |
F8E055575DB57CF9720E681A0F12C28ED01BB5F8509F1C41C3C527A028BF3DE3 |
D3E478707F58850CA56EBFFDF6D00476AF0F928D7142F7DB6FBF430E3904669D |
189B69B7DAAD7927BDBFD89245FA3A0DEEC3CE71E22B6F7EF39B57AF5E0DC1ED |
8C2FBF365685CCEB3244A6FAD0B60D933A7171535010287D88CFBBDFFD6EE812 |
3E9705CA6269C0C030996BD7AEE54E80568365F0873FFC01AF43FB4CA872A593 |
99E552029B6A95FA9B6E250F399D7E45C0DADC77937020D3B8E6EF65B4A90284 |
7B9DEBC5F3206C059590285C3006ED67D5CB518FCA869007A3C3CC45A1F5F3B3 |
9FFD0C77C3C26142701CF01642BFE3D13423F059B06001B97369FCAA9C093761 |
793E2316B05FE1F7B324949936F106E31A5CC9A809F66D61E19E3FFBAF97DDFA |
FC6271F8EB8F9C6D52D58E9C5B2DF5B44CBF38ADECC2E5EEB9E69C4FDEF28515 |
0F5C78FDAD7BBC656933D34AE57AABD55C676B3882C3504C078E0ED41F7FF8B7 |
47EF7AEB9C413327B5B0DEB961CB607EA6970F5B038B76D9FBE9179FD97EFE92 |
2D7DDBF299EC687968D71D96BEEB9DFFFAC8830F653369F8B98D66CD3750F069 |
E386F5C0AF64C352CD74655C5818AF0E8F42EA64F3E926846BB9E97A4E23CA52 |
7BB834E5876ECBCF3B9956D8E84D43F1B8237ECB9D3B737D69A46F74A4B3A393 |
2278B8349A8BADB754261D75498AFA0D8F410AC4C82F3675860AA99608088878 |
08EA5E88035A4F9BE2ECD3CEFFC53EEF5CD433B3305CD9D8E5E4263D2FE986B3 |
F2972F5DBFE2DD4E58EEEE34A3556C95AE5A3062EA460CBB8C4EC1C484ACA3C8 |
1AF3CE935ECBB2536D6A8EB6A21A869DB85836F455291E1E5B1A67E4DF208297 |
6796A18E30C10FEA9F0CEFA940514283A758CD214C92A15060D25835A8D205B2 |
41A93F08D1A2794A01C2321E865E5476811F70FC71047040585363771F927093 |
C343BF4B4BC04037E750D556ACCA11631795114F715B09565BCF6C0A58452608 |
1C6641369D752A54E8089C323ACDC60A4238495F48F67054A8B29534E70DE3C6 |
074CDD422640E851CD9F74D249F09DE82EAB6F848C242D74F4D38F7FFCE3C30E |
3B0C7FA641C4B14221DD74D34D9B376FF6E2D608545D7435DAF40A7F50AC8F65 |
368C3F4C5306C065668E5062D4CE6B0A53DD4641D77693A9140FD17DB2434959 |
4E83D16E576E271554DF6C2CD2FC6914AACD146DEFAD49AF77ADBEAD26319665 |
DFD8E952528548F7FF3F2AE0C4EF29D9D508DC8894148422E39AE38F3F1E4625 |
6D089BCA9B93AF540AE354501BD82AB8C9BEFBEE8B4DC2405698343FA0B52EBB |
9B368A2C153675666718FB9766B294BF824BF6A233BD74C10517DC78E38D4494 |
E0E9175F7C3136AD94A80DCFA6F3CD1761A99F1A898B164E4F94DF0309421C29 |
1137DCFCCC16BFED6D6F5BBA74296603EE352F6385037D235C0C830F0A15EFF8 |
C31FFE10A3852AC5C524C0C29F54798FB566673AB2C5F2E09838CC4E3A784A13 |
18464FAD7A7E76E75E85D492A7FEF8989B5E67C24A04C9F27B5ACE6B2465F676 |
F2D35105E6E3BF5AFBD60316A59CB898A919F11C5463BDE324AE4898FCDC6FCC |
C65F998FFF6B7A76DADFDA3433F38B9D606B97E78FD472AD886CD2CFC78669B9 |
34D295C79B14CA8383D974C60B0D344260FCB4930EBCC8D5A89956AE981B29D7 |
30D78B162EEC2B8F6E1A1A49A5DD8CE341B615BA3BFA874AA9F8890B7245D70F |
6677759687465A81DFB360C9531B5F86B7DF8C42E87009A2F352F7A33EC15104 |
CB319891345C936A8DC2917D90F00A82403279AFFC0E0389E908251E38D919BF |
FBCDEA7DDFD49DF29AA6BACDA46637E2FD36F18379A8D7CC86E747DEB6DF769E |
89F845D2B97AAD39944D8DC977ED37B63E3449024E0A408ACD0E0BB9133A699A |
38484679ADC6F2C6F2A729C7250F5951A2F41F234F52C0F249646487E35BADEB |
3E32BB85DE10968AC54B047EB2ADAA508AB256196D964FE958BCE24ACAD21865 |
E37666F46856AA1BB75D73253A04F5F316B44D4F179F815D4C659759ABFB2A95 |
1CA3231226EA6AA34ECC74DC29A318D2200696E91BC76A2820378F6610050B5F |
5F5465A145806312D26956A22B26AF9E1C6D29B0D7B4851D09116474A79D76A2 |
5DC098893690AD1BF85F512ADA2AB08D23A64D2149D829DD2844B400FA52A57E |
D252507B8E4B359196590A124711321AEE38EE0909A8E2285BEFF2302BAB77FF |
FDF79F7EFAE9D285D8F436A37DDBFD4D9CA850FF25E6BFED62B289D7CB3A0B62 |
0679E82DAEA2ED075327BDDE5CF8541F6594B5A1599C3D5624100F9ED6E2EEBB |
EFFEFCF3CF5F74D145B7DF7E3B7515BE48E4A1EDBBF32B6AFA2622377DB47D65 |
8AE11AD62DE0DDAFB9E69A4B2EB9844768D9B265EBD6ADC3B368594F9C2E1E1E |
C5AB291A6C5CBA339E49A36D18F604AA00831F76B293433CD16C92D96B2C3490 |
7C4DFCFC9EF7BC077F65EF2991D23100804132F703F58CF7C2357859D8B89801 |
16C4639F60EA56AF5E8D998186662763CA32E68D703D5E934637E670E5CA95B3 |
16A5FBA018FD744416645A7CDD8C57305174B0C1334F824013077832AED34AEF |
70D2A76E7ACB7BDE5B4FF9A3950D737BBACB43954C9C59303157061D7F461D36 |
8C54467E35E7BE6B3A6698FAACC22E6B2A2FEE34AFA73C38DCAAA7765DB6DB1F |
5E7A6646A6586D543DE36433998146759E03CF369376DC20A2A60AE34A5FA7D9 |
822636F5B0D54C791BFD46219B1EAE3773855C6450FAADA12A8CE9C832EBE99E |
E1D49AE9D0E92F8D2CF672854C36688543ADD6BA56B9E1A6E62C5AB46EDD3F7C |
33E608E29ED12AC791CA42B158C8E515E8A3FFA4F60638EC77DE792736097B85 |
5119A4C2967167D7C3CA19E7FFF73B3EB463E8CEF18AC3E5C1DEAEECE40C7741 |
A6E85736BCF4C496AB577CC8A9435C2C0ECDEA7C7EB6EF0FC99A170930175DC1 |
30FE1E8A845DC838B12DAB37B91C12CA3D784EB018E8DED9544D76009C21714A |
090274746CDDF1CD7CCC78275B3F48F1E3EBD84BF22B145BB21B81E00E0F3CF0 |
00BCB7360E83B62A0F9B9FD5E6A56A5974EBD2F40ADEBA56BB58391BD411BBEC |
B2CB473EF211D8D37445080FA29450985D0DE0E959A97322EFD046B23191E740 |
BFB7535454900CAAF197A227A2F34D5D20EF45B3CAB4BDFD6A7421E8D5A87ADB |
2404FE6C1FA232C8D7C29C544BBC9A4D00398994B9B650B3131B1A87569A2F40 |
140FE12A1CCD34E8651B952AF4AC948480FE0409CBA73149249DDF9A2A474B77 |
848DEB598915C4FD7948A2E4C4A5A812CD8C9F13A9480B00BA0733006765AAF1 |
937556FF1469ED54D75322133AFB6FFFF66F7FF9CB5F683E73BFAA0A50AEF0FF |
96023649350E11CB9C643B6E66122394FA86E6F039E79C73DF7DF7919DD14E5C |
B909A10CC120F690B8E22491D62FD9AA92D87D7B48D4CDB8C9873FFCE19FFDEC |
67505434E1F5BEA155FEA43E4EA2DD603A4DCAC6C4892B63694A3B6CC0DB8ADE |
160B8D1FB0DBD55CCC58296D5DCF2E66049F6BA2D4100C1B09DEF677BEF31DDC |
01DBEC90430EB9F2CA2B596EF8E28B2FC2F7C572E3DD172F5E8CB93AF6D863E9 |
A541EEF0D0D2C05AB162054FAF9C001D5D4614699213CED6F41B701B71C6236F |
D44FE7325DB5C660C48FE58C51CC538CD23C8F0A48D2E9A14ACF899FBEAB91DB |
21DB31B388091C189DD5D1B3A91ABD8813BD691015E9461D15A0247C6F7E7AE8 |
B9FFFCED439F99592F2CE8ED6EE536BEB0A19531CE6E73B7DFFFC0037EFEEB5F |
D4033F1614F99EAEEE72A91496AA11E01B47D20FDCA0957671B348D934C33A5E |
A9ABA3737379D4ED28BE3A5AEE888C96545FA59676A35E49D8E69E1341B4B06C |
8B66CE4E8D94719F46D3CFCC9EB5A1565A3B3CB860E1E2F5EB5F35F9AC68AB29 |
9778EA19B9A1B38B39BFFBEEBB094826FD0813584C164600B4667374A8DA72EB |
1DF33A8F3FF65BB5E6826C7AAF7C4FA36FDB70AE589BF4B0542372E2B58DC135 |
5FBFFF988E0E53DAE66292536ED16FBD4617AC2C95E00B843590989DABA646E6 |
D2A6145FB6BCB21BF54C75BAA57E6CF12B463F33BE9B9E6EE25A5DBCC47525FD |
C12225DA8BD22BD8B1CB972FBFFCF2CBB1DFE81AB27E8F9A1B5B5A250FF28019 |
F3172099C7DCA6FB203AEC95575E31E3D94BE401E31A984D77DD75174188744C |
591CAFEC35352E868731C06487D9CA0268080D2A29DD8ACEC01E7BEC813348DC |
A8A62BB4BA6B689F98B858DCBE400A980299315AC256EC4A6E1C7F280BE1784C |
ECBE6378B7DE7AEBC5175F2CF4B19482B18C0F2FE94B68E401DBC1469A93ACB0 |
E6B6D861871D2086884C615461527D1026A4FCB67D61A68D1287E3093CF5C413 |
4E38E137BFF90D949FEAB1E858D8DBCBB19898A6B93F7F80A8A5BE696B02E159 |
BD60ED23A14D394D190353F40CDEE2FE6420A3F89BF47A95C7912895A911963F |
719753AB61230ACE3E6908FAF5A23AF90A8C22F0BD08911053153BACB1EB8678 |
A34C92318D7CA998D6472C3C340EA8FFDC84E84AC6BECDD4214C13BBBA2AACC2 |
9BF0372C1D51EB721B42C28FD4BF89ED39668CB8B568CCAA445255E96D3751CC |
87B76295302E26E4505CE2AA9EE20CE3F0BCF18D6FC4FAAE5AB58A268BD0C512 |
7F41D24759A4F93419DFF4A637915BF4D0430F65D13CCE271119F82E26FCC413 |
4FE4F663DD3CE304B886751D7C4DC521594477D717FFFDA4D38F8DD02B199376 |
6796AA8DB973F35BFAB7197F0CA38B616026152EEAC4D2CFEFDD5CED3AF8F44B |
82DEF91B47861A61B398CFCDAEE7A37D1AAD960F77369D72A302DDA63FA7DEF5 |
F0FDEF5D3052EC0EBCA2375285DF98EA4D43E80C6F78C30E3BAFDFB4BEBF5662 |
8B85AC8900AD9D8E9B755359C7CB60724227E524B53A5D1DA395F240A3829D77 |
E8473FF487E7FEF2D4B3CF556218573E9FAB06CD4ABDB5E76E4B57FD6D1536F4 |
AE0B17BF71C19297FFFEF7FEC1A1234E3BF5B6871E28BB4E3A972F0D0E87858C |
603E4B972EC52EC211B3831F7243F973A4E3E34E5F34AA14249B9B5EB8D97F35 |
84304FE78FB8E2C76B4A2FD7B299F48CB0674B61D2F33273B07B7EEFDC2F5F73 |
887123A7B0A3683266FEC0D02678E08CB8D2C4145A5E8295CD2428076C452B48 |
0D77B8D800B1F1386086BE14F46A935D61C237C05A17C81CDC4A34678E556C63 |
8740A5F54D02ECBFEAAAABE05F42AAE06E9C37A681705B3812D467767686F14B |
7A75071F7CF0534F3DC59EDCF4F0A8A5043EA5DEB2C165BC8CB5B3B2573CAB35 |
88ED5B1330CB383CEFC62A7C132B60426525FADA729AB6BBC9AAFA238F3CF23F |
FFF33F49D8A9E09C10243CCB61C25542B2E13041412B27451785D16F4A0FD199 |
E14A76FC643B5A6D457C05AB43E39B9D0E14D1248A7372054C5C1901239A7DD6 |
8171A99CF1346C1CBDB1005DD29D2C6861328C101E9B657AD28F931041A876ED |
8E3BEE38EBACB33000CC29C41F04342B94B8C6FF3C08CB8B7BE090678A7A97F1 |
04313D71B40A3890413315779FA59025BC76AA660CF8CA15575C71D34D373121 |
2FEE0E3BCED9A608E94192D504538491336588FBE06E77DE7927C9496C5A8C89 |
67F2F52A60297EE10065540A34681BE0DCCAE484C230E0A17EFFFBDF9756E6B1 |
E429B263326D4FA4C54DCC88321F6CC340CB9AA0505634924947D54DF6CBDA46 |
BD4ADD68E5C82EA17EB2FB4C4F14617C47685CCC30E776D1A2455093CF3CF30C |
94968DBDB2078035C50251E84BE0CA5BC50D317E1C7876CDE386C17BEDB5D75E |
B445CE39E71C76CBC12624612CBEF2B9CF7D0E03C09E640A9CA79774457C2ECB |
FF8985A10CE2212A7AF35A6EC538F572056678ECEDB52AE99C694628A134D757 |
CDD2F1F45DF6DAF1F9BFAC3641FAFA1BEEB8F4C2CF2DEA9A996996ABD56DEB0D |
F44F065AB7D5C4466D659D488AB78266902A1453E579DED294593552369D6641 |
901FDD541DED82228EFECF196ED4E7747635EBB510DE6A2ADDD16CA55C0F6651 |
1ADA778CF3D9857E2EFB15CFB8053898BE9FE9ED59B965235EB26746D16DB9A5 |
5A35CC78A572FD84138EFDD5CF1EDFB47133A4FBD2CE99CD7A6373A3F48665BB |
FFF2A5E7292CB0847E6A6C1D71DB486955AAD47CE96C94D1A087A046E8CCBBB3 |
088D6E288903A1E142374C174CA7BBFDC8F03F3266F68CDC36E808CF64B6B953 |
7044E77C535D929D3358DFEAF7CC983118A9DEF9F9CE4DF5F2984FA9D0227FC0 |
B360695D7FFDF5471C718449EA38B84B85F370C7778155FCD6068228F26CACC4 |
9C0C476E03FA5222F4505A344C18CE79D2B581C38469C74D98625D8BB294BB45 |
56B2EA7D29CAE8BDD16F7EF39BDF0C056CBF5D2B69A1463B9ECA86F005DAC7AC |
9FC49F6EB8E186152B56906698981E9398B03C385CD6B6760B14F8F44AA98055 |
7A84A384476303B03C49CD0F580781BFE254C6B9FFB42A1D74B4EDDE44B2A1E5 |
24C89C72129244E68C9563A56CC72FB104E40EE2B7202D8F3BEEB87BEEB98725 |
A6A294B0894A6C2ADC712168BB14849A9C9E10C7BA64C9123C49948D4C1FDA7A |
D796598AB013C3C65D355568C5491A8CDBB61BEFB0E79E7B3EF7DC735A27C68D |
B9BAB6446E03CDB67DA856B90C147911943486C806492F4F7DB78DD391961466 |
436C4D133F9C7ADAC2302D2FB9E41236479A4A61E34A313CF0BDB0512EBBECB2 |
F3CF3F1F2BCAE434DE14BF6762C3CEB5B72912F37A3E36FA9A475D89061D399C |
0D3AE51025F813FB3662C6F0570652789C680C32A9C31811D5B08D75B27316D4 |
1F263663D9478FC245B6243590DA2A4CBA9A0A5FF37AEA2746F9546C67924E1B |
3A42123D8A94D8C2C2367128DD2606188404E11991C1418A7FCE9B4D4F8DCF3E |
FBEC4350DBC73FFE711E691A67982EFC15AA973242DCB37C04B3C294B64CDFB4 |
110CF140E5F29DF51AB66EAB6766F7E0C0D68ECE5C69B4D6D90977AA629264B9 |
C200988A4B2FBAE9CAAB2EF35B65F85F4D3F4220074ED34B19BF6E72F96CDA75 |
62551AC55BA18D3185BDD19F7A46C2E1B409AEBAF4BC2FDEF2B54DB5FE030E3C |
E0A5954F979B0D27866BCD801C6834E00167BC5457AB15E5838DEB19B897914F |
8C8D603C77D91B767AF96F2FA5A33E485EC9401B671ABDC575C3037ECB04AED3 |
4A394395C6B21D97AC7B659D1B9A19B97CBA565D347B3E1EF1C250BF29E66322 |
722FAC374BCD5A269F87BDD66AC6DE4FEC7C777576418BB701186D48BC922CCC |
35F0F0BA7847AFA35E6FF6F6CCEE1F5A0F253EB373E940F9F949CF8B5B308EEF |
B4A27E5191D7EC999C97CE349C2D26B1AB1952A24146B8A2EC578A72FA52A48F |
A5C0A5E78045E1050CFF9088EA95575E512ACD86E74848CA915ABE7CF9934F3E |
F9D7BFFE95682365EBA480DB4058C6AA543449BF42F2023164C2583ADE058629 |
C41D732B447153D4B3478EE04E9C73956BBE46B5111708A853BB58C0D8EA9B4F |
9FD89D563C890AA4433CD210E741F6927E33E264B4C979D4CE9C7A514817BBD4 |
C52478141A4376829C6164D6C8F0FE9C49B9790C5AA809378F6A5BA6C04672E1 |
AD0F3DF450F82A44A77EE73BDFF9D8C73EA6F24BFAB7848EDBC189680B9D79E6 |
99F7DF7FBF491A834358635E687AE0F130EB1E78E001AA19767467BADE4C0841 |
2BAF6E170E4D5308EF597DE21C8B9B97E1089E2EBC00269A13AAB24B1B133B8D |
82BFF6DA6B2FBEF8621E4E6A205C7CFBEDB79F7BEEB9DA97DAF19C7A762DC4EB |
DF7AEBADB0DA48AB349542659A9098EAFF11324DFDC13D0AEB89B10B913F10B3 |
27A400AED1DEFD7F57C078DCDE7BEFFDC4134FF00E782243AF5C26EEA13677D6 |
6E69A54A414D7890F48E549F6A7B3348E7913C96720A7BFDFDEF7FFF430F3D24 |
F01773309C79EEE0894C5EF271F7DB6FBF3FFDE94FF7DD771F8C954F7FFAD357 |
5D7595CD7F69E79E151CD38BD842CA1604824DDA90786385EFE4C488694B4133 |
BC0E368932643CE4D0BE78C4F1C71F4F1E2E139B1DEC127FDA69A7C97CA1BC68 |
6BC58A3B93FFC4AE7930966F140DAC10B46A269DEA6E058D5CB6E9B9C16824BE |
BA3C6F54284D35FE8A4C93663DED9A7CC64041F7CEE9DCD85782AEEC5838B7BC |
764B3E97CDA5BC7AA5DC0A5A98BB8CE760967B23F6CBDE72BEBFD958385C1F58 |
BC5D75E366335A378B3BA232B6A0D52CE60B8D72B5E6B7663A50BA4E4FAC1433 |
06EE2F1CD648417B6E1460AC362A3B167B7BDD8253F547FDE646535D6DCA9488 |
9942BEBF529D33BB67EBB6C1C5F3E70C6DEB87E65E9C8FD8055AE9549FDFDC66 |
02AAFAAC9BAA077E54740429548C0227F0B9474786D3A9B46FC2B1363B569702 |
9314A7D1D81230275A88FA825AB0D6647DCF2F9A54D9AFF7E666F5D7464C66F2 |
40153E1DC694B2DE2227BFBE54336E6B5690ED0BEA70F27DBB1C4351473A2790 |
30AC5927D2D0C6274B2FE244C0E686D326FCC1E1871FFEA31FFD889DC2196BB4 |
DD3563C180B11F644633F345BD2261A850A22AC2253329EEAFBBEE3A988026E1 |
7852C3798CE4031FF8C0E38F3FCE30E179E79DF7D5AF7E951790F9875486D097 |
D8A244C9D8205646D11451A3FA541F718C93749BB65EB0A14CF82704F29D77DE |
49042BAE676052CDA68CD5D81B13C817A74F856388DDAE52603C9DB8748643F0 |
575CCCF0950DF25583F6F7BEF7BDB06648142A63CE26733649BF2301CAC444CB |
280BC306E262E2F5045BB949631BE519858276ADAE33919059BC783169B44C9C |
F6C3774471826171F6B99F6C68B8B1723036CF9993905E71465AE35B70F0F78C |
C46A6704E36984F1C3B265CBA021687110768F6761242FBDF412FE6AD3825376 |
6BBFAAA59D4816B5476DD21611A272D67818B4BF191755EBB1A950CD72F15542 |
8041B2B580B829DA40E78C98D1B9B1791E6CF638C7AA2877C7F700B0E142133F |
7620A10D6DA87A09C676F8BE61C24BC7AFE31ABC3E9686484B5C86D19E7EFAE9 |
37DD74138BD0C4E0833FA987B1CE861BB7CFC25CC929A4B452A723C2389945E3 |
A32FBDF4D22BAFBC92C7D5667C14A1152D003AAC0C19A904DE2E36A0F00D121A |
3C4E38C6C03824CF2D06C64996374F3033C98CB04F48786BC637E5DE79E79DB1 |
0FB997B858175D74D1CD37DF4C61C70ADD975F7E792C449C0062D903FB9E7BEE |
C15410CFC2B7C67D60D55161E3292FBEF8A2B8E444038EA7B09C97D1020E8627 |
45FC246D5579749769B95216885747875C68E1E8267137A4E38E3BEE6B5F7DB0 |
23978D1B58FA1DE96C572B6C042D78C4E942AE65A25E814E100506CB2325D802 |
BD1D79B7545BE41552AD3ABCDBEE7477BE39DA91E9AC36B0D8B051329566152E |
EE92454BFCBE7E3CB35C2DED306BBB8D7D5B61A63D5DEFAFE5331131D9F048BD |
D10C7369B790DDDC370ADD3F2F9D9BDD4A43BF0D9AE6DC9D767C116BE1A4DC5C |
6EB05A0A634D3C16D8A8D5A07A5B7E339BC936FCE8ADFC88C1213E1761904967 |
6005CB0CC74230EF3E668834A6D4B4D37CC2F1EDEB234C68B512F596883CA1A8 |
D1442A939E356FEEE60DEB8D978F061AF8C60DA8A54AD55A696008068909C234 |
FCF694D7747DE3846E26DD9D2B9686FBF17B2C4E3107332333522AE73ABB6BE5 |
8A13362852DA7A0AA9BA4460088284DB2237B61F62CB1CA65D79B8747068B888 |
C30B06FA33CF3C432C08A5CD92254BB0B19DA45EB98DE0825F877C80018173FA |
D8638F3DFFFCF37877EA45DBA2A5493431EF6B2C1A3B2A051C81534E39055602 |
D5A74948E8F8757EF18A2BAEC009E2B4E09F279D74125CC7DD77DFFD2F7FF98B |
195FB2CC6BCC148DE4692EC8BA250A9D8DA1D47308B77DF6D9674F3EF9E4471F |
7DB48DEFDA9E6121BDF15C4C080D14B233493FEEB8E38E34CE8456E3B6A497E5 |
705EF06595C06EBFFDF6471D75D4F5D75FAFE709644FD1A6A88BD0A14E523C6E |
0F94B3CF8804AB2914AFB37DF9B6A40525AF58D698A287785ABE7C391C7C322B |
F1976EDC428E1628C51F06A98CAFE815E5A5B17B89CE15076CF748B8E5965BF0 |
14936441B8CF9CA9EB80A9D2C8F0AC3486490A79C53C472003137B61D22C9380 |
3D556A4DCC6DDB3B381CDF1A73AAF1E8C0F018532D292928B2595A45541B6C7B |
8039C7217CF2C927696629CDC919A3A3DF6696C29D3DFBECB3D57ADA998CAD9E |
DB5A268510A49C19FC950158E96C6E591D78352A507A468246B88489A782A136 |
C57938FFA246C2D8F06AEC6534916F4B482B2EBDEC62BC23440CA412E927A1AA |
615FE34AECB4050B16C03A61191584082EDEB061035EE481071EC066C0CD7119 |
742D1E87AF3FF5D453307430AA75EBD67DE8431FC200585ACD6D7CD6596789B7 |
55BCD62C07B0C36E26A198C7BC61244296C1D558B972254C408658281728DD04 |
7D8FCCD9D1B84676B7DD5E78FE6F9908420D4561F28ED71191F4BA4DE8813088 |
8A833D68C2E880C0C2AAB68285BD33B2E5C68EB99ECE46E03583742E35DB8D14 |
03DCDEEE593386CBA567FBD72DC8751E73ECB1FFF5AD471BB5A6F9FF587B0F70 |
CBCAF26CF85D65F77DCA9C339D3230D2040CFEB6200A8928516330B1204AB160 |
45404054B022360615A4D81021894010F9E3C767024413490C2A1A839F28D261 |
1818A6CF9CBAEB6ADFFDAEFBACDBF7EC3367D45CDFBAE69AEB9C7DD65EE52D4F |
BD9FFB89B25A50E927E90E136D0ED2D64879DF7DF77BFC91472DE2CC377125F8 |
F2555FBDE07DE796FA69238A4757AEFE3F5B9E844D510B4AF84AD724E56ABD6F |
52B1D3049E6F0B02F33519A796D23283D76E13C5B114B029A20B2EDC34F91F35 |
631056882D7EE7BA850E0D4FCDD8F653ABF6DE1BC30E99F58ED3DEFEF5AF7DAD |
EE572CF96816E1AEA57250B2E5C2FD761CD981B763EBF54D366B9B6BE49E7D29 |
CCB75842918727C79B767B51CFEA0CC3F6A6928A949CC6092EBA815C9752C355 |
C06E70C814D8052FAF70E37A203E03AF86358345ABACB9EAA0B84F19C0A73825 |
171529E1D480D5E4C69F254B29BA0EB81B930B8FB00939F13CC7A5EE11AD3AAD |
643A5D74D514B872219F69C1EA2CFA2A194984AAA91CDC9FDFA75CCB40B02437 |
0147D3D92D32A4CA27924BEA96CF4CEE17C2ACE81653D14ACEE30AD0DFD8F5AC |
A1FAC0073EF0E94F7F5A6026426184FFF05C482789F229919914A4F025004F8F |
AE40B91BF222ECCD959203A9082A95673DEB59F7DF7F3F5789C02FAEC5C4C02C |
1E202B5AF291A3405C33E2C9E210D3D3E71570CE6B5FFBDADB6FBF5DBDE7B4FE |
F033AC8A7FFEE77FC6DCC36E8269A34E82D4BEAA4D72493E85CE5D78B09F3CBE |
FBD9CF7E16CE1C9B841033CC1589EF32F12C9350AC175A43AE4A932D22F4AFAB |
7755C8BF078B3E73086EF45EDC481C3D469F5C266A55AD89502D2D38B43D877E |
CFB5B79AF9816B4A40B8A00602AF30328C5D0B122F1093A0CB32B65803A0EA46 |
0E1443B27C179E067D8CA173E3D5AE6DEB2E3C1112B984B4DA96F8E4E4934FBE |
F6DA6B21D3F1D8471C7104CC7FD64A31BBCC8813818BA6B0AC8F3DF658D6E672 |
EE98E1C3837DF7BBDF65BF2646D49971BFECB2CB48C54E5B84AB1DB7F8C10F7E |
C00A51C6034C9E20307923454C13FECA7ED5F8962C1BBE1D197FC8ABC5C665EF |
78C73B2EBFFC72E5087132EEA20884CB71A6D8D29C204B73AABF7EBF5C0A4D9C |
C0CDADD87CAD37E68561AD028536DBEB28459DF4A356B7FBE7473EEFB9871CFA |
EB7FBB6B72E3FA7D4C75AFDA523B479D7868A439313BBD33996A56862A438D7E |
16619FEF9ADAD5ED77970E8F47B3D1F0F0E883939BA6CA95ADA63B323EB67DF3 |
B69EC92A4375AF51EB45FD5D3B67EA3080FC465C0D6702D3F56CEB86A89F64E5 |
60FBEC54AF90E6247F1E1B199D9CCA3B01FB15BC826D6D177A54C096CD3F7F55 |
D757231104A4D66229AAC50EE5265D8BC7625FDADDA52B566CDDBE159EAE094B |
E3F54632DD3671543359DD84555BCD15D998BC1F42CCF5D3C42F079E7595BDAE |
C926927826E71EA91A6FCA78CD469385E3AF7EF5AB6FFA871B43DFEE8D566457 |
E92DB7DC72C209276055101960F28831960A991C842E36BB43C32C54C02E132D |
ABD4F0578AD31B6FBC11BB403A8969115ADE2E47ECCB5EF6B2FFF5BFFE17B721 |
911F0CEC8BA990874800FDF93D7F2878797DF836575D7515AB89B4C1E98CE2FA |
EF7CE73BBFF4A52FA9917CE0B47BA1FE537F52CA1995EDBA72437A648000CACD |
2E317394E63C8F0C27A865AFAE4CEE39D6730BBD250A3FE3F08EC993E6107DF5 |
AB5F3DE79C73C839484F80CE2ECD38551BE12B78F7ABAFBEFADDEF7EB7E7C663 |
F140ACA8D198AAF889216F868E212C30850C76338EC10427EF472F84D10CBC27 |
C6FD8A2BAE20391CA7CD25A31858405C5B6E1ACF35ACDCD174516D302EF09C98 |
1BFA9D6E1B635338E2B81764E89D77DE49EA73BCA35B67C66970895A7E2F17B4 |
D6166E871FE876D35E6110292B1A6840C4435C9E75D659F8F994534EB9E1861B |
5C3A0BB5F818783529666525FD829475B7CF43231167C214D8B0610345394D30 |
DCEB231FF9C8E73EF739DA0D34458952D9B469930C404EB178E094B01C20B472 |
E348AAC155F5B64A9EB0A3BEF39DEF60AED7AF5F3F5041CE1166EC94A93219C8 |
2AACE42391B9825B459D2A4411BA7091F010DF8D080BB5F499B4C33958819C5F |
329C0F406094A9120F3E4302AE39C23F9148047B950A9B76D5ADB7DE8A3F4141 |
624DE2649187E03A7830165B73D3BAED9E38B00C9F240E4D37CE87B980BDAAAC |
2749A0B29CA99BEF88CF396EC71C73CC1D77DCB1706D98025BDB1C1EC2644D4F |
4D0D351BB16D6E1457213733681153F24378B456BD51E2C03D8EE2154B1AFD56 |
A79E999571704038BC14FAAEDFEB9856C3349AE5E1D84BDA713F2D7BF87F269A |
CD2CAE1A0E56343E32DE9BED8E8D2D7F78DBD3DBC3EC89B89D7B80B67B71CBC4 |
5BA3E4CACB2EF9E8FBCF5F39325AE9C4A5B1D187B76C84A21BADD4E10CCE1808 |
B5EA8E288FBBE6185E93B3D6ECDAB1B31FF76B8DD199D6AC6DCD084FD8AE43DB |
F6C1D6EA9A797953EC4A2C6FCCCE9EAB30161E0CE470D8B9561935094D189B74 |
C9EA1513DB36C371F5DBFDE526AC59DB25AE1BBF1178419206963D1BFE7000CD |
9BF8516875AEDFCECC2E13B76C80C18397FB7062D572B539D4CD55FBF2E5CB26 |
77EEA8944A7ED9FA4FD0FD5A6CDA140C3D92AE87DB59EE9D5980F6D720B846AA |
37BF9B35332FECFE0BA30DC290A02157D212E7453A49C6815D6A462A08065758 |
A6ACECCF805BC59E28B4FFF00C6BD6ACC15EA0F52966241C471F7DF45D77DD45 |
794B2D23D3817A1D4F7BFCF1C7E339050BA51C7033E27842B6BFA3FB3190DCE4 |
75F02DBC32BDF9D7BCE635FFF44FFFA40E572CA3672A5ACFA69E2EA6F0715D51 |
469416398FA9C299C32666199F63839343D42512B8F0C20B593E0341318737A1 |
67C641E11B320427D784D3C93427EF4D96280AF4A2D14AE6A28B0579A7EBA3A7 |
A76E9010971922D06996B37C510A602DAA392E3EE1603134441B9F607453444E |
3E991F449D31C32171E626CFC8F1A4EC3577A95A5DBAA9E23D80C8688551F6E1 |
F531CA9C06A955FAF1344DB85EC579229C8837BF0C7A602F713A69AFB94A7AE1 |
C118039E8175E82C16C4879C32FCCF96D10C8393A380349F14DFF8C1D66C14C5 |
CD540622DFF08B7E41320B8E3AEAA89FFEF4A7B475682AD2EC50F52AD9C7DCA8 |
388697FD91948C77ABAE7129FE89CA12E6028C062C036232F1277E5DF87CB380 |
FD47BE2623662499635A08377271D7F8E1B5AF7DED2F7FF9CB071E78209BDF40 |
D438C936E242D9CD90A1721A55FBECB30F7319B8F2F5D75FCF8D4A1781611518 |
C2B8C2CF7EF633D90ADC3E620DE33B1276C0724C326131C46D722A4ABCCB4927 |
9DF4AD6F7D4B4AC5CD9B487E2902A606E92CC0E344674E4F0E9AC5E5EA1CED7E |
D4EBFAB6097A56B6582ABF09E720B3BA815D054D929683B056AE64EDA9343378 |
A66706CDBD9360D4244D531EAA37A34E8AF3BD925FAA56A67AB35BFA3B7C13AE |
5AB67A3BD475AF6B1B1445A65CA94F9B6C53D6DBD89FA995AAB87D278BC366B3 |
13645D93B4A6BA4BFC60556508BF6E9C9D5ABD6AAF5D3B26FA513C6BFA7EB936 |
63D25E3F67760C4B78B5FDF65D83BD69DBD20D2F99989A0CAB9538E9639D85E5 |
52D2EB873E14A0EF5684AB28F37F1082E6A453118A1827809BDBA8B5DA336BD7 |
EEFBF4634F8E19F327ABF69ADEBC156E38E4572D4B4B990D337B790328DB9C31 |
FF87039205EBA36BEBA4FD20F51FAC85D3DD6E14949A4BC7DBF01A33DBD2D6FA |
CFB1DDF22CBE17DE021EFC95575E79F6D96753F6322E95168DBA17EA5DFDAA19 |
67C617EB012B4D512EE3C08B8CD3AF1DE32638982E2BC8A488EEB96554963320 |
8524A6A8F90439A4F3FD8637BCE1DBDFFE36638774EE21B2D4E8D66504931251 |
C1159E8D85F2AEA6304EB7471EDC41F25625914CE1E0D1EEC7BD18E5955783C7 |
C393E0E2871E7AE8FDF7DF7FD14517414DBA602E53F8BE7C2FEE383EC669A79D |
76DD75D7A9820B87C0D80CCE316C40794B267C4A603BA0071C7000A4366416B3 |
D9260FD313B885FF2126F094129AB8D30F7FF8432C4DFA16C46A335E2FFC9E9B |
D4A44F8CC93EF7DC73BFF18D6FB09003CFC759E7A4AA2489EE173B019802B38E |
4F582AAA09F60B166F9936981BD10A1A8775C5143536B81D7623633BA2201695 |
891BC371BD9C3D705913E88B0541D6305C47A5F4AA1C10572AAF26E83C71714C |
CE2F16E276DD2055FA63D10885BEF07CC643A0A8785941FE682AE905D9E2C32D |
46A49AA725EB3B2D72DDBD44E5C1102E96111521277A0000EFD64EB846AEBB93 |
B9676800B152D6388453A6E08BC6F072E8545DE0B29DB8B92253187CF8D30B5E |
F082871E7A087B43711DA9524E991BA1C5DD7105C63C9883E0EA12584C91768D |
8642FDB4E83FFDE94F3392C62A405CF9AAABAEC25FEFB9E71E2CB6E73FFFF9EC |
97255E2DE5DBA8745D2758997B06F0A9A1614713868A9114C30EB3CE42086AB5 |
D01897432F11F0BB005AFED9D8F8381CCA9267A036E071D74B956178F0ED3674 |
6AB954B6A8E624AD972BA343C3FD899D2BC6C6D25D536371B2CA9883AB2BCABE |
D9DADE32EA2F85CE6B47ED69331B9AF2E8C8582F8EB6B5B6F89566EA07B39D76 |
25A846704D479A8FB6763DDD6F57AD2AAD6C897BE530881BD51DD3AD5A6082D8 |
3CA3BE647D7BA25AA91EF3D297FEE4AE9FF6D3AC6DD2CDADE9AC54EE477D3F4F |
9456CB15965C77DBEDAC54ED45FDDA50B3D3B24B25288552C0EA824C09BBE7E6 |
287B3E709137BFF9CD9087B06569C8C2BA6BD66BFDE92988F0B5C3CD787AB669 |
AC5D1258F3C5B27AD5ACBF6E43E47D9345B0FB31B0B93EC63668E52AD9F64F34 |
D96F7CDBEA78470A2BC3AF2C59D26BCD5CF8C98F7F69DDBAE1E612951B30BDC5 |
9052965329291F21BAA4C5E48664A9F63BF60E59EE716081EDB7DF7EF058A880 |
59F04390A66C65AF6097649DAE4C7FD5CB0A64AA6DA89F07961CB120A6E82084 |
FFB18C712FD511F064BE9470B20338705E5F1BD9CC27BBC5436277509EE3FA37 |
DC70C3AB5EF52A533016F08D4CEEF8F15B64C8812E902324D25CB91C5C007848 |
765BA10320DF92D711B284D86CD620402DBEE73DEFF9DBBFFD5B16079F7EFAE9 |
F006714D5C0A263BDF08E7E382840D6155CFF5C495EC8374A6EAA26C65DD1807 |
82A145A5A999E3249938097B39F17C61852EF12D5C13EAD3CDF3634C0F3BEC30 |
081752B6EA43B57038E69863EEBCF34EB8EA9FFDEC67393A74C4DD9319EBE000 |
519E2A2AA2E6B549D1AD889A80E0856BAEB9066684DB6684D75433064642084A |
5C6C03437D624CE974A679EB2E46ABF015865C244C99BDC087A41AA7F6FDF8C7 |
3F0EC1AD8B0F04543D6F2E37EF26C8315BB80EFCB6DD3E8FB2ECEE8157F8C007 |
3EB06EDD3A3A85787D2C0BFCC0D123AB8E8C38FCCA56D51C19A5758DE36552EB |
D04B8092C04EE6E6D97FFFFDB1C8DEF8C6379E77DE798CAFD2FFC06E8735C0D5 |
89D717444E8D29F5E20A2B310CCBADCE44C611471C71EFBDF77EFDEB5FBFECB2 |
CB18ED906BEE3945754A41E1A6B8B5AA7A589BC8EEB0DAED748E8520130A9D29 |
22F20FB8F00AC5E759FF80EF721740D9E395C94240E18569C5C57FF4A31FF135 |
F14582BC7435D62A704C08B052ED0AEECB07738B91041363944C6005229F496F |
C91C957840D92DD4356D597C6CF76FB91447117CA2D6CC6C35B46AB9562A37CA |
55ACE0CC7665B5B8212FCF0A574D580E4B61DCA958CD12BDA0B97ABC9354928E |
AD3BC25F4C10C570E44AE54AA907311DDB478DD3A465A252B9D683051394EC88 |
371B8FB5279E8ABBA390C2F591C94E2BAA95B7F4DA49E0A5FD6CB4541A8BBCB0 |
D9787476626973A45CAE6E9B9ADA9E74CBF5DA647BAE23B597992889421FD65E |
0C153E1BC336F257AFD967EBF62D51A7E38741DA8F1882A6352681EB96C9FDE1 |
07EB732013E457CD6109CB7EDAEA8D7966EF4A2DEA76FE74EF7D9EDCF8D4B26A |
D8EEC6155BBA64A3D0560F990C4E4D025F374EAB78A234EB5BAE1483E72C6536 |
36FD5439DBD84FB75BADEC75C352E67B4116A791DDBAC46F13C44E343B45AE02 |
4BCC41B081C742B9A44CE7801CC022C7BE83B0D250B0D7023E67B7793511C241 |
2300B7639887E7B31864E148064587A5AC206E33F381C7DC80B8147CBC7FFFF7 |
7F979948AC0FC1CF10082CC42276840B551141D991984A7889F7DD779F2960CC |
4C16B046068FA7BEBA7C06C5CC4920415143E7818122BCEC05175C80DDCAB0A8 |
A03FB21B781115D4D0191BA85A14653421D04A8C9202CC14E12846AA0443C680 |
60CFCE159A7250B0B7F10EAC1F5717238CCE59679DF5F9CF7F9E74FC50A25CE2 |
3C59B537B896C84507EC3297BE4A9D8A094CC5D8B10F0C1D2642D88D037C200C |
8411C8C021D756F9AC8BED92E582A54691CAD4375706C1B74C55322DCAA02E3F |
24A014DF2586C5E404A182202D56F6C3E951D19B29AC3C771B7395244E5F2028 |
2D169BBB3D3716469E3DA7D2CE2F1A606064F0762C28DAEDF3900E972153DA7A |
18C94B2FBDF4E28B2F86F2536E090B82094B3C15B3417811CCAF48425491AC74 |
382D09176A81AB3DEF79CFFB977FF9177C2E51450388D97405ABB9A2984F7AE1 |
0B5F08779016006E01B54D675DFDE35CA9814F04B9FCD6B7BE058FC41489B181 |
B8BDEFF445760B0DB95171293CEAAF7EF52B6C0301EB8805A3E5CEA6BCC42864 |
4E6B6EF174AA73254609BFE26A3FFEF18F8578C77AFBEE77BF4B8B136762C031 |
6277DF7D372D2D2FA70063888F5639C6106610EE082BF37BDFFB9E1B3A66D8F9 |
E69B6FC6B7700203517C5416C463103014B045CE39E71C5555724CF016B838DD |
1A3E3F5F3071DAD5D91A92219B33EA6027964B5E92667152836D1D94FCA857AB |
59750EDFD7C6A5FDC040A9469D86C9563497859DEEB357EC559F9CA942C7FB59 |
3F894C92750C947150F12BB65B12E13F590CE59C95C34E924C745A1D93F4BCEA |
F672BA35EDD4A36CBCB164476BD21B1A9A30FDAD33DD914A58F7C2655DAFE3A5 |
3BB25EB55C6F3487B74C4D4E65FDA9342D57F22885C942ABB69266A54EC4E9CE |
D9767368E819871CB4E1A927B66DDA54AE56FAED4E2908A324AECDEFDC2556A3 |
3F4A01AB3C0F73040F81A1601B7D29994A6296A5E6D091B1646A177CDFD192D7 |
89B2A60931804D3F2C9B141649DB24ED3C0A1D546AD50C464A1AC1ECF132883C |
6CCE304AB79A682B866964EC81A9C909EB3087397A2BEBE5BD7A1885E29C62B1 |
BDF5AD6FFDCC673E030314BBC6E4B5820CDE2E54C09EC3A2658A748CEC0F8E0C |
269744981008F0CC145262460F8B0A6E097E86997BF6D9670FB42A125E929EA8 |
29786179D301C0CA40B502E93669100BE1A59A284A15A572C53AA9830E315FC7 |
CC8F6EF210710D9F96704BE14E54044845C3740F814D6494749B88F367D9CA54 |
D814957A5321CFB5EFF03FE5038617D751D1E68B5FFC62080ACA0D4232198A27 |
669BA8146FB1058A1161C527E3AB546F70AEE156D3F960000D8636CC6D9CF68A |
57BC62FDFAF57050F0641C083A281407D4B87461053CE340733A93A287E50025 |
A10E7E912549A608D6F1EB8CE305F90AA6DC812274B3111A325314A767452F07 |
051C08CDC7FF2ABE5403BBDD1E5C19DAF32A5CE12DB8E0B8B6A8F0948413270B |
979752D182F651F1739404B7A3227753B3D2317A0002978C130AE6AFEF7FFFFB |
B1A98C03EB38E594536EBCF146FC153BED965B6E814DE092E852078B828A6FEA |
B6DED48AC7E2C3B7941B6634C2E4160C16314BEB9483A127CA98BF1B3A1E2833 |
70298D8484A2534E624B6D788D83F62D5BB6B93010F1B72892264EB8852C2BAE |
C5CD2C118C2A9CACF407D7EDDAB56B69B5C858C139FFF88FFF8887F9D4A73E05 |
F3F6DFFEEDDFF045B6F29611C3D0911BD663BF3C1101B2BE93402D3E3C09CCC9 |
C52DAB42F5577C546A08D991CCBB5F75D555679E79A60BF1E33A61FB1D966A6C |
7AFA29B88D63F53AD4F08AF1A59B366DAC42C6A5493FCDB08BC66B43A5D4EBF6 |
66567AD52CF06B5EB63A2BEFE755970441D78B27B35E3931BDA8572D55866BCD |
89E91D23E5E1FDF7DE0FFBEE91D6B6A81F25265E39B64F36DCB8FB8907CCC8F0 |
86A99D4B8DED48581F1ADAD69EDE81F12F59777BACD698E9B7EB263051BCCFDE |
CF583FB1637D6BAA9F076CB5F182FC45FD6272FA491696CA5E18C03CB0E5B426 |
F5F2E46B5AAC224D2586F7FEFBEFFFA315702530FD38482D242D815982D14BD8 |
4E3E1ECBCCEACC5B05399BB36459C4998F9F6DABA69A0D04D8C5D0EAB6E33C2E |
5DAF84496AE9B3922C2732F46CA41AFF6F8D92E92CDDE9998992D9EEF9BB3052 |
36D65031DD099B07F2E0F1670916B06F22939A3431D1EFA60F4B05EB873D72C8 |
82C0054999EE15740B02D5AA8589BB9DA50F887054F53925153F3185F1CAEDE6 |
52BFC545A76152BC512078F35B7F7A05FF149FCAED21418C950293D2DC94C07C |
1196BC534AAB8C45958A8C35B2DF06AE40363197C15E0DE629A9DEF18E775C79 |
E5951CC00F7EF083B08F25737865EE2921763D87127140C64A40B92FA5B80B4D |
843DF40260B60E8F84EDCCA1833FB6A8027639CC3876E4C4E053AA2882B14D3F |
6FD84E174A076D8A534F3DF5AEBBEE6234831E123EA77DC1E496B68D8B2C5878 |
D09F3085832FD0B28AC3A8AE88C275096224B6CC828A759C497F5AE072759DE3 |
15F6E001FB4E1378F9F74256B3CC0E0FECAA1FCEABEBB7D124C499E444952EA1 |
0A570458D84256827160D3F9A48FAE93ADA6CE0CBC93FA4ABC685EDE6087F7C5 |
6AC66313C8F6F18F7F1CE6365F4497E5EB08DE4C25C1BF62FA5EF292977CFBDB |
DFA6B1E2E632156330F3A1DD6E0FF0CC69652A1C045E8D0D94588426B6135194 |
C88AA2294DDF5A58B9CC212DD721F4A3571007BA3D15DC15E22D20C362F84499 |
72AE1606B5DCE5075715A60C24DAADB7DEFAFDEF7F9F196B1AF58A96F3CA5FF9 |
CA57DEF39EF71027C201C1CB72CAD4E191C3A255A1F28FDD3E274F26A8822DAD |
58BCEE0E0293204F3DF5142FF2EE77BFFB861B6EE8F73A2BC7976DDFBA75DFE5 |
2BB66EDB1AE41A65BFBDF782FB3B3B31E5C7E9587378E7C4B6657845138ED5AA |
FB9787F6CF2AF57E34D19B99C83AB5D072A78C0E0D57FCD2AE1D3B5B597B456D |
59AB33BBD1CC2C1F5ADE8962A882E7FCF931FF70C7F736A6DD5AA53E6641C2DE |
E6B803DF7A479A04CD72DED7A1840D5049824ED25D36BA7253AFB53D8DFBBE81 |
3668158FEF73064D118A4CE16397FC52D887A9902BE0001A2EB3D06D39BE9CA9 |
830F3EF8A1871EDA830DBDDB230BAD3550CEEF6CE3E4B6D5845F35FE5E266D1A |
6F8981CB9BD60C6942706F534F4C1EB1B70A7B6E76724AB07ED485EAC43F6E4B |
A8A3B23D2D4BC3720B8E8D4961876E4FCDB62C9B819F1C5412AF63515A360D90 |
17DE047E8C8BA5F1487384C820975A475E8ABBF25DBF5F5AC10D1FAA5894BB55 |
0241EFAEA01D91C02E57B30A0A241918FC13A3962BD35C49ABEA5693DBE53405 |
7030B32E94A512CF824032B4CBC58C27C187DC1D8CD5C91F80AD79DE79E7519A |
B1FC928E0461281C0A61189552E4876EB11337B571DA8173FB53D39BDC1AE668 |
BBC93E9527294E2EFEDD81438871EA9D97BEF4A5F7DC730FD4DFA20A58834EB7 |
92BE822BDC5D55C4E116F7105353D4F3ECB443D837F1C69C3C0CD65FFDD55FDD |
7EFBED642726029636FB620ACFE43E3E2ECBCA6E4659C5F0C0F5648A526B97F1 |
CBCC8FEE425B6779DB09B7F649D5C6C42A331439D0A264E180F2455CD5828B93 |
448CD911D97A032A410774DE05175CC0CF99181601C84273848A568BC0A58C5E |
B97225843E17254BAD7011B7CE585029E5FBA99EDD2837AB78B94B55D8CEEC3B |
F4223E57798F3A8B9D7FFEF9EBD6ADC3AFE469E30650E725E36871E300DC5CE0 |
1B17BA205A0C68AB965A88471527689F28B9C28087B8DF5C334BDF723B74F1D0 |
9499F9505237AFCCD1633DB7A20B8C81A705BF20460386C8CD37DF7CC925979C |
71C619EA91A5F839C699E74331C35A35B90B42F403CB18146B21D49F752F038C |
578B190A0A380BEFC6783E33BEDC959C534C2EA966B8D12AE57066721A52A759 |
AE34ABB524EED1C5EFF5FAC3B5FA4CC7160E0D79A5FDFD4A3F892002D6969A07 |
98DA5092467ED2AD78BD08FA0F9E56258DE24AA9BAB5BB65993F0EE768264CB3 |
209C4E7A3BE3CED27DD73CB4F1C9569A34478693A989FDC656ED9C9A5AB276EF |
7B373E3169C5BAA9603326D95EB5B1D00BB3E1FA6FB76F793AB19E0E061A46A8 |
97CDBD2F75307EB5112328B8B064A09FB218969767523FB5DD15A1AEE408D2BF |
81B0DAB061C36206F4624790B1602ACD3C5C382B67D938EC0F533AC42481756D |
63DF6A5FAB803D7AE6293FCFD5B017E44EAC9FA4E974DF2A60EC372EB89299F3 |
80874B96D9AD9F669DCCECCCCC2693EE347EDB0F770691F5B3ADC39D2F3C1AEE |
69520AE716ADF013A6E885EC3A9DA6083B73DEE9D530E5C19F6172BDF39DEFC4 |
62A3CE23BE048BE7D8638FBDFFFEFB9F7CF24905A85D460EA6392863098C70A5 |
19A3F4A6D0DC8CDEB9DAC1C5C1098E40FF9802C72D51215C83D574ECA5815D40 |
0084902838E135AF79CD9D77DE29761A355BD44DB5CD251E193A655D8C1E46E5 |
4982569905A55C94E1A6283772215D9A0853F0C6ABE860B7EB2A2DC8B4F975C1 |
8A1755C0445D2ABE4188B6DB7ECB38559B8CBE623E203AEDF2CA1D0B45ED3519 |
7C4A2566082A7103477B38C43F4C179E23C5FA19C83B11F57DEC631F834A2332 |
CD155B3ADC20955770840A469B16ECA32C2F86A85ACC20088AF6737C29B1102B |
96AB5BBB9D2977FB5E4C31BA3539041BFB45C7123A3A6C9C878B53831E78E081 |
9842D82EE2BBC05BFFCDDFFCCD37BFF94D0E290410B6872AD69532142728A358 |
0C90B2560783C66D893FC151FBE217BF484A2077D7B1B4090FC60167BE44AC55 |
228210F3B8147056B4B976C3BCA6003A2A5F457C2FA1032CC2535C4BAEB3E0F7 |
03243EC1FC5648AEDAC6F5857EE2AF1CD5C51873082553428ECF4FB30C6F44CC |
94F6959C69BCB8501E7C3CE945ED7C5E47744B1C40CEA90B23B8E9A69B4E3AE9 |
24F6287451AF0B3D602C54CC8EBA364928935A849F63A7E081699CE17CCBE5E4 |
6561E6C5FDFE58BD31DB6E35AC291FCCF6FA4B4786833CAC0ACDFA8CB56B8F68 |
8EED9A9C4CA6269775B2D5ADB41A771393C5E5200AFD567B26B21EA93978EF83 |
9FDEB8B1D9B0D6DBF6A8159782C9B89F342B8FCCEC5ABD6CC5B61DDBBB59BA7F |
D0A884A5ADBDC9BEF1B799B4346CA541DC49F631DEBE4BF681A2DA1EF5EE9DDD |
8A678DE056D69AD3390AC6BE6CF63B1D9CBF7E804D9BF95E6212AC03388C5E9A |
EBCC22EBA9A9E490FEB121E83C0AE763E19A1043903612B3C694F70EEB6BE2A9 |
2467FD8873A71C7F2C9BA0641B4EF4E15B94AC269E9BD37E1CB5A27ECF967559 |
054C5C4329270E817A1CF5E10AFB1563DB28438A6D31E9D6C09F098347A36EDE |
CEC22451CC27F672C03ADE902FA2FEF3A24D35858E498BE6015484A6700FE40D |
9B3C656BE6B70382B8802B29435F5134D60B3181825F193F736BF3B89CF02BA4 |
CD6DB7DDA69C20736494F31417ACDC633491CB9265AEDABC94935CB41492106B |
8F3CF208DF6E808B868A466D7D49FBF3A1FC90327293743435D45ADB14BCB62E |
CA5AC6BAA8BB5C40098D6CB7FF8A3062AA86324E887EC035750FBDCB00E9D89E |
3C600A62E25328264441EE153C20BA250CFFD7BFFEF5B7DC720B240861A8C41E |
D349C7AF6AC54311A3ACBB8ACF2079CF3CF34C7881BB7D9E97BFFCE53FFFF9CF |
59A3A6A025B7DC273EF189CB2EBB0CB6D2030F3C600A466BB7A7BD2BEE21D148 |
F8677206222E56E20F4987C4FA7D4CED89279E78EBADB7BABD35DC83EB861911 |
6926FECC77644D1BCB275CF96B1644C24D6149E12B64936659B60B6D50352DE7 |
EFE0830F7EF4D14761BDFEC77FFC072B6E091561905F8E3B2D4DE62764FDA970 |
88D837BCFBBBDEF5AE2F7DE94BFC2B5E1FDB529509248CE415B8DBDD7C244E60 |
D30BCE26C33804E8BB0FEFEADA8583E08652A5CCDCA6DFA2A815B30F7FA5AFEC |
06C6077C5C5E590A5866AC5C2589A701C5669CCC0B0D3EB77DF79CA42E1231B4 |
939807A141C0A69634BA391A98508C246C798A332C424222655FF34C358A60AC |
4875046E39CD8002F69C16D4E4E7622B1B21FFB920494E891FF03F79CAA03261 |
AD1CBA76ED138F3F3E3E34323933550F8217BFF8C5471DF9C2CB2FBF7CBAD74D |
734DB37F9E911D36E62033F44CD3586253B769BFE4753C9B23C88B57CDE1871D |
FEE8E3EB3102ED5E7BD6F32AC3CD0D535BB35A757B6766D5AABDD66F7EBAE605 |
6B4697857EB06CD5AABBEFFB3F3B4C12D62B9D760F0F7048B8A4D91CDED59EDD |
94749F4A3AB3151801F90C96429316D08DFC07CE53E057A005F10F0AD85001E7 |
39E0A470A794A8536CE08F3DE0FB5ADCB74D2CC7B5C81C68FC35616D346ECDB5 |
64F24D989A6A66EA59A99285BB4A51096AD778509C14E2BDA8DF4AE2BEEF41E3 |
F5331F6A38B317CB2A5EEA7BA6969846609A5EC986FA53B3CD4BB785DE4CE0FF |
BA1B11284046042F57C05032E57A8DD4BC6F7BDBDBE0AA42065208A84E495D93 |
195CA4FBABD21D799C5FFBDAD7205DB9E9C4FF4A35C6458ECB5232D7F2834624 |
4E7BDEF39EF7F0C30F63211138ADDA1E46C5E91333AB18E4BDB12931F07517CA |
1A14CD6654F9C9A21D8178F8D6C27C915A00520E52880F29241404026414EB02 |
2869A1386891301EC941D0A5284F20DFCE3DF75CB88862D35B4C5372C4249D54 |
9A2CF8957C592199702F0ED71E889B9889D756E50CCEC1CD1653C00AA341B35E |
7FFDF5C659E2D2FF2E848CA0127DE8F2F2133B278629A56CFFF22FFFF2273FF9 |
09F4874B64B1DB434E1B5D22593A340E38ACA4BF27BE80C431D2BEEE7B51F8B2 |
27ABDB4DC5EDBB874F588EBDD8F830FAE74A641777670A6233BF68A820BF7F20 |
2DCDC9A0FA67EE990FC3822522E528FA5909A3BB93D89265CDA27D21AA99E790 |
C9598A5093A29839D3A8A45FA6FB4EABEB95AF7CE5FFFEDFFF5BA4666AFA9639 |
5D23315669CE688AF33192471D75D40F7EF0032A15265C99801908EDBA043766 |
7E5E40B84DFA8558D3981ACA089712561166F6FEC42B10D6C86CCDC2ECAF1680 |
97F7A162E057295EAF202B308E85C483C2858101ED408A3CDC14E3FCD0430F99 |
221A8F7370F14D9B36A9059E0A973114F82B06193FB0185D605733BF9D38BBBB |
88AC83E258CC097B0841631C706B2E577C0E517BFAE9A74B164B0FF12E948F76 |
DD6619545F8F567958DE7FAFD58F6D78020371F0BEFB3DF8E413FBAE5C05B778 |
627A7A4D602331A341F00CAF7E485A1B8BB35ED29B31BD96C94A61054E683F89 |
97AF58F5E4D6A742CFBA3B33D5605777A267E2D05422639FB5DAC869DB6767F6 |
5EB1EAE52F7FC5F7FEEDFB8F6DDD3C1DF5A03257941A2BEA4B8252B879766A53 |
BFFB74DA69875E2FCE461B43D3FD8E542FFDE0B94D175423CC0C3EF3AD6B0C1D |
39A08083A2296A5234CEFBE3B42F94A4CD38FB967212539398B5C6C04D1FF533 |
3FC8F3E19E2967A69AF8E52C2C9B70A26C5160264ED278CE4634BE078371324B |
E801F7AC176B9FD03AC1D87799698656014390CF2609341E243796D76F6C8387 |
0AF64094C46420F1F216CB2426330ED10A0FBEA66C2C3746C5382773B4F28C59 |
E1C26546C8959B64D11709AF1162115F24528746B00BF924B101A3E28A3C919D |
86F50B0325093C58BDE9C2579596C2328606F9C52F7E811F18D956B28C2E9F2A |
F509FFC4BD589527AA1C6E4FFC4FB14C1E24314F888487BD70DC5A292F0748BB |
C17C8530454B3C30C85E418787FFE1AEC0205898E4720F8E86FA5268E41755C0 |
5FFEF297CF3FFF7C42CEF010D75C73CDBBDFFD6EF53CD069CCFB7A05288EDA11 |
23A85222C265692C08A286B7A5A6749B3A991CF5EE2E32F7707BF8F07DE04C9C |
72CA29575C7105D5123E616F73DE545C0403AE275EEAF6DB6FFFD5AF7EC5CBE2 |
2BB82029EC797D2275BDA265E662E3E37253F0EE6EDA6F283F1890173E599772 |
7FA046917147C1C19A131177F0FA2AD0725932F4339F0737FAD0873E74DD75D7 |
E11970325606AEE37E8B7B8C53C0C21B3CF03EFBEC0323D7255AA26FE7153D77 |
613FE2B27C18BAA45A678A03D3F3A6D017F879C0CD950A59F8A116157D4DD8AA |
78363CBCBB5E79F0571634BBAFAFCDB370904D5EC20111867DC288AE9246EE69 |
EE411B9C0814F564C42261FAE3C8238FFCED6F7F8BF7858CA0A1ED8A48F599D0 |
1E810A670E8FBD9258F84816174E07458CAEC690BE48825C6CC4C210B4925518 |
3AF9E26C77434D2F924B7678A5EC181D199A9D9A19AD565FFED297FDD36DFF3C |
64CCEA652BA727ACAF3FD36E410F4DC6FDAACD40DA3AD711D873263CDC0C3DA3 |
32EC97FCE9B4B7AD3D5B2A575AFD7664D2D0ABCC66DD7AD080EED910CD362AB5 |
AA17948C0FDD3C154D8F8C2DDDBC6BDB6C182471B466C5DE0F6CDD88B91FAE36 |
E0C92E6B2EE9D7CAAD4EF7A9899D1BB3EE2EDB8EB732DA1C7DD5CBFEE26FBFF3 |
0FC6717F9900B67B24ACF5E2080A188F614F482228CA12965C96322AE6FAC1FE |
E2ED4A173D7CEB5F5B17383061D61F49CCBE980E4C3DDE08DEB79795E6B8A733 |
BAE5BDC087EAB59C62CC585BFFD90F4BA55DFD6E9C59160E2AE020076A05BEA9 |
A7A609FBB56C033C6D4BFB65F00F42FD97A694057EE4C3BE892DADA667A9B3B0 |
ED433F9053ABE266692F387F649BA76E50DC8B0C7DA2BAA3E867EC8738676242 |
D9F0662E109A1BB8B46219C11EC8219AF9505CE3848B59E44AC5E64A487620C6 |
8391A0975D3B7FFDEB5FAB461F5A40C11E8146B97A0F39E490E38E3BEEC61B6F |
64868BD44FA6D0CA32B63020F8842DFB583224D393DA0E363103A284A7D02219 |
300B162E12DF69254EA0B171D2A0124A04FC1E74D04118072260F4A781439037 |
1AD622D3DE93074C314721488C99B41A95BF29520B26376DF09410E5184197F7 |
92CF44E4DBE1871F7EEFBDF72A02CE0F494F28DCD61E149EA26D18533AAF428A |
6286F06E4C79623E94485BE8040B9CACB42861539E036F839CC5F3405863853D |
FAE8A3BB7D1E563D31EB60729F95FC355ED190E7831FFCE0C5175F8C65F4E083 |
0F1A07E33D30D92C0833B9C38AC7265B08561EAC0452B5E9FAEA8D485B019FAB |
6D1F879A9B908159BC0B2EE8AE1B33BF817C50F45993C1A87602DC75B83B3E81 |
92A097FCA637BDE9EEBBEF269A5D54E34C6FD3D2640AD9055EBAC167FDEC39E0 |
3257A1524030604E1E0F3C15C7D373D095FAFF7DEF7BDF17BEF00586316849D0 |
1A5DCCE349733E6138A0922F030FE3268CBDBC9CDAE4BA133FBFF5AD6FBDE186 |
1B5CD6025DCA14968D589AC5B3C62DC7EE9990506F7EF39B6FBAE926B211E178 |
C31BDE70CB2DB7D0600DF296C9380D03FEF9CF7F1EAF468E0272C10FD4B30E28 |
60EC05A86A059F4D119793D92E2758C9A7B9661B5066BE8F3D3C363CD29D6D95 |
E368A8DA80BCE9F53BE55235F2B24E12C5707393B4590E473C6FAF9E39D434D6 |
96A1A9D3EDFD999E1F942AE5594B8551F2C2204AB3384BA16E83E5ABDEF49AD7 |
DE75DB0F1EDDF8C08869408A4FC69DCAF010F46B7FB65DCAFCC83238FBE5A0D4 |
48FCA5B5910D417F72767687E9B77DAF550E5B70F8FAE9F30F3BE2BF1EBACFCB |
7EE7FEE64227A740B2A0B0D8128694F3745D1A430143A4B5FB3DA5A5C80BC492 |
C23F960B1A77096D9363EBDD56C378348D567BD972DF5B1A55CA26AB7A5EE8A7 |
91493A26E9C2C1F5E69A22563CBF52B2E1AB6E6C1B2396C3523B8DE001777327 |
38CED53A3437FE8746AF07956AA504D716CFDCCB4C2FF37A26BD3BA8F5B2A49D |
C2F9B5354F5ED9D2009B28B60DAB8A8C29A1914A02126886CD2E3789E63B573B |
73B1142F594EDBA7D8CCDBDFFEF66F7CE31B342529091947C55AC222C4725239 |
25235258BDEC1EA6A548B5870BB29084D00AA526B9955C335D81404549DD9224 |
5300BEF0DDD5AB579F74D2495FFFFAD7E956B91595783CF23E49F2883853D751 |
D3175921DA17C1FC76AE52646E51A832C1A6A88C85203AFAE8A37FFCE31FB387 |
8402A5FC99FF43C8C381A10FB6D87ACB1CDE46814FEDB0B8693933BF2F022E27 |
B82CAD06DC58FD6D940CA73D45AC8A60B70C9C6605CD320F06E8BC1CB2CB6A36 |
BC0C2B3D4CC12AC23757945BF1409363B021BFA8CED5158743CF51234C8E0110 |
55A652E83CF7B9CFBDE79E7B34F404DDD1C1554343853BE8FC89DC517D1C4DC1 |
EFCFD500F57CDF7DF761DD93CF85B2928310E4ED2BF0752E2355B55249F08272 |
5FA89B197626C6876FC795C74237DCEED8638FBDEBAEBB366DDAE4DA130B3D48 |
2912B7D079E141909DC05378862F7FF9CBA79F7EBA291C7146A2189961DA89A1 |
4BF537D44D655F2BB033B0D48C13C17681155CCAF2EC35F86E418EC01A597150 |
7FB0DC9E0EC17BDEF39EEBAFBF7EA09F9AF2318C64B8806A02A715E052BE598A |
79B7E567AE0DB1F07337FBC83B6A4D2A876D1C079D22D2E4C9053AC76E331F17 |
E1C5CC0B973AC40D612C1470F81F862FC641EDE1980EE7D272DB8AFC0E44D3EB |
FA9917E004ECAAC083E86D66C1501A8C04F818DA244BB234B6CC1A699E93B0F9 |
CB666696996085A9C21819CAFC15A5DAF2DA70BBDB494BDED6D66473A8D169CF |
4609345F69787CE4A9AD9B563DE319BF78ECB191FAF8780D36C4968A0922136D |
0BDB416C1DC1A6659E0E4DB992944ADB67263698D82B85A656DD3C3D53A9555A |
BD3E86208432EB474C827472C287A034B7C06803613BE075208E0F38E0007808 |
18968B2EBA68DDBA759C776E5BAEDE3FB61F30F67023312D3F81B27C5E521A87 |
B7EB47AB1333522D597CB2ED309867344D16C5692F8DD8E6C812878541C96387 |
441BA69EF07C8B56CBB2BE2A91F2695D01BFDCCE6529F1FC6E9AC0E0E8A431D6 |
E513613558BBFAB8135EF7A5755FF26084786958A904BD7E12787C6BD19C61E5 |
D31DA470937F660A5B909B82A160AE79C566B4C6580ACC70341706E52A4D7C45 |
5C841A3105BD81CA2E3EFCE10F5F72C925D411F8136EC19C8BE770DB3122C8CA |
3D01357811B6CA9628B8F2CA2BAFB8E20A52AC8BF040D5190C6D52200B7E4B05 |
C1B40ED436FB03C949658A9A5B00F2E1073FF8C1F1C71F8F5B0CE0345D3496DB |
4F96F7A5C681570937CCF5275DC1BB50D14A9431B7ADAC998294C681622D0A11 |
A498C320422E9F76DA69FC502E94D8915CB949CC2A550873F2D49D84288B2F09 |
3FE082975D7699CB268165F4E4934FD2A164D482A6961209B089308EF813A415 |
5B265080BAE803CEBDC648082F7C78CA29A77CF7BBDF254D01956E56343C71CB |
7FE9FAB0A286B07BDE5D884A393D78B0356BD660E96705C9B3B48E57703389C6 |
8CBE325906BDA25E5EC6975F50F59A02BEC89FD523D3146C888468ED5601BBC1 |
1F3794BA18C25C405CF583C2A4FCFDDFFF3DD3908C64AA3180968B1BFD3605B2 |
C0B519E5595221CD0159E7B78B66A29A8993D4E915CA61579007FF9B3CC442FD |
A464B03EA75DE8361B51636D4A1CB70E016792A683CF4F5BD03563CDFC26E18B |
852EBD05A4A16E105B9CAC1A76975ACF38E6115D76BFE8CFCA12F68155610AFE |
19956D78F3CB10F1822C91E256E234B90FA00C19B7BD7D0CCF3A7981F1523F83 |
02868AA3025E5ECB891DE0B5E4D0A6C8AA61DB52A11AFAF5D85B62C251BF54F3 |
CD78A9BA7678D97E4B963EBC75E38B9E75C44FFFF34EDF0433A6D71C1D8DA767 |
2BA979D04CC3A02BD74AE5A1915E2782AAE926D16477763C320DBF540E422F0B |
EDDAAA56F06FA235B3C54BB775DB514E4FBD756257B9DE6875DAFD240DBDB9E2 |
EF88F8067F4E1330E83550078F713BF4D04321BEA936240AF62028173B1653C0 |
C39530892D2EDA9EE48718A25E0257386D93341EB211D3041F37B53D914ABED7 |
4E4D3E8CA63F47046D8D0F18DDE3383F0FF726068E6FD649D3765ECEFC903110 |
6AF5154B26B64E54FC7237CB210299E5185329398D66D7A8C585FEFCCFFF1C72 |
151E18F5342D3F4A511682D271622D1CE184F8E195AF7CE5EDB7DF2E1A224942 |
8E983C579264B1B0C514A12F0A01165998BCA84654CF1083447E5186F3EB9218 |
69D19F9BB29D5B40AC8B780BB7F4CE2FA8DDDDDC330165A2F1A1B4B9F9E69B4F |
3CF144333FC22761A5DDAD86B603AB823FD39DE3B748080ABDFBF297BFFC9BDF |
FCE6C22BEF413E50F70BC2499125D62017F3C15CDEBC14A97BF03B9C54975C90 |
496CC5E830AF0CF19BDCCEC21BF26D290BC4DF2DE00F4503F53715122692814D |
B10F0AC0422786521E26D219679CC16723668F8537B80227523E19F72D5D04CF |
690942424A957379456DA822F26EE52B05B1EC0C0268D50084AADDC50828EA65 |
9CCA5789573EB6DBB5432952895AB78B14CD31D69BD2E31498D9B54CDD053428 |
479C3CEBEE054D5E212A229BACE02F9387AA1F82A2370B762F299DD91F8DDD2F |
14B3D54DA5745532242F9FDA1A23C3D811B420394DB1128872C412C269D8CC70 |
CDB1BDA9B9B11E5833C743517D4E8A4AB14D61292B5E82EBA8B93551272AC035 |
0ECDA75B8C48FE9085D97AD9CB0375C63274F409A1798C219326CCCCCF34D35E |
61C24C4B5D6100F9282210D06062F619245435A0BE25D9F7C217BEF0EEBBEF16 |
67881EEC7760C9C4C66CE501DB3AE05C012FF56DABE0284DF225E825BE89734C |
4AC5D876490DE3E7BD7DD2A6316B2BE3FB8F2ECF764C8EECB3FC374FDC7F507D |
55AB6D01D58DDACA473AF65DF63AF0198F6DDDF6C4F44E5B495CAD3DD4ED8C55 |
CC9A7EB593F54B5E6578E9D25EE0D9A46FAFD5CED149E56A6DA6DB9B34D06779 |
05AECD955A0D3707F8C8DF945824E6FCF8CAFBEDB71F860E23ACC20A0153BD02 |
DF9EFE0FA8281751C043156BA0A4B15D28B868DFC0B54DB1B161346569E267A6 |
EA5968B4855959A45858F1B324F36293F653ABB8ED46F672C8714EFC1027708E |
4DEC7B36499C25F0929F0C2A8F24BDAE6F4A5E5809CAB331B4733654AECCF4E6 |
82799036A40D2761FB1CE23A4F0E32874AE401951916C945175D74D555579116 |
91CEA2B00259DE5B89D95F52C09E7AEAA937DD7413D6CC473FFAD10B2FBC5055 |
9D94396290E0755CAE63F78088802EC032A3AC502A90B28EBA5345AA22C0A246 |
2792912CDCAC71A2C6A1DC763B3148389BA2FD2B0390046A54F283EA4D4DEF99 |
A6A4A9ADD498EBA598A24CD90DEBE287830E3A889031B244B829DE3D7BC00352 |
C2755C1595A43AF006A81F5D8F4AA02FEE5ECAA937BCE10D3FFAD18F68FB9029 |
572DD3CF3DF7DC2F7DE94B928FAC35862425520EDF854D41E7954B0A934D08D5 |
BEFBEE3B951FD4D00A35C8D0C053C1037EE73BDF0901845FF1DC905CF881ED0D |
6816D03CA47E22E3B4C2986E4F1E970B822971C6C009BF72B520214BCA897A39 |
F73D11D7BC8B827B949262C572F3FCC4E83316C4CF151E7799BF24C4256D89A1 |
C0E8AD5FBFDE14E69BCB78B5F0185084BF77A1885779002CCA620306FA703BBC |
2FD70ACC9D97BCE4253FF9C94F4479B6FFFEFB6342F5D80B732A26B7E43CA719 |
0083691FFEF0872FBBEC323181D33612C290DC8A6ED36FCA0BE6DD618731F6A5 |
C4B6E07259D18399A92F5D530E3ACEFCDCE73E878547E5E4024139BF4C4C0C94 |
2499F9F582BB55C0A68842D35BC5F4110FA122345D50FC091855A6544C6EC8E2 |
07D56A9BF9AC785E0EE1C64D31E0F7DF7F3F6513A13704CE305A8B6F5D70C105 |
18585AFA69D11587E330672F864138C75C61EB67830C0AD81BCA826579998F8D |
9AE6854699ADC6B149CB91C40BF39E80F0E07A18DB2C5E6AFCE57EB39BF60F6F |
AC58D9F3E034B7472BEBDBBB562E5FB17EE3833BBD7A6C43AF71C5787513EC34 |
9D678CAE988C5A958E4D9386CDC654DCDD3C3BBD39EA41088DAD5CD2D9321556 |
AB53DDCEF8DE7B3FBCF1298C10BEDEA836DA512F4E625B8AC360553447AC4F0B |
FEB0C30E5BBB76ED1D77DCC1C006C699D6BC58A2B8C717A270FFC70A78A46ADD |
03982F70BD23CF06963BB9C5301BF86992C2468102AEE42067BC38DCBAF13CA4 |
1F65967323C9727601BF94DB1376897663BBF262E345816F15706AD69B604B39 |
9BC8D2AA5789FB73B5C050C07D93D246146645080C82A464DF33EA43518CB966 |
F72D82F049D74F47C58D60D17DA2CBC1021E8862964E640561838430C10454CC |
F8228B7D2187D95ED76D1C2ED978E38D379E7CF2C9AC79912FA73C822B96710E |
6BF3702FE6AA5D59A796B5DCB0DA207847FC896941AA247DEB939FFC24EE0E49 |
E5B630A7AC1E50C0D2772EDD340644CFA636B50A4AED812151C29F5B8F563885 |
2DF1D87C18A2C10931196400E16351A8654EC35D33BF0791DBA90A6387AB0BFA |
84EF5E7CF1C5D0C7AA9C917E9246A4E0606F19F2F63154422028969197574FEF |
21B68CBB7CEA539FFAD0873E441F91DA9D75D3F4EE714DA6D6E82B93E44524E0 |
7C5459854233317493E52CE1947481D3CF98912ECD8D3BE5CA3212696C8A3A63 |
7EC2F2797A60748B5DE9403DE4E5A57B2E1E987E9232B56EBFCC01E5EA820BA4 |
33CCEFB3D438A1DA66B452310BC24AB8ED8FF039134E780C9C49CC3335AB990F |
6A10C0CF0D9771E7A85087E69AC9A3C158399FCA8F238F3CF2DFFFFDDF65F2D3 |
54C498B0AB12DFE5BDEF7DEFB5D75E4B5A3BB78321C32138E79C73CE59B76E1D |
45004B6C19CEE199ACD2A1F7EF153D07B92DD9B9723105ACE15D4C01CBD7E7B2 |
C1AC41206AB179F3ABB0F0F399679EF995AF7C05EBF691471E7113E1037BCD38 |
AD1404AC13CDAF0B79A3C226F08446214B3CD5E0395FF196E1C9B35AD6BA9F70 |
DD868C379C85ABC3B2ED2C84D18EA34EDC8F4D62F557295C129B20CD4A7EE855 |
4A3D13F5BB3DE8C36153DAD784E5A1D1C97EA79A7AAF7AF14BFEEBBE7B7FB4FD |
D115471DB1A19FBDEFBDEF1D4ABD3561E313EF7CEFAAC6E8E4F44465A861BDBB |
5AA5ED250FEFDA8E490DEAC18EB67D841163562D5BB161FBD6D95CF0CD74BAF9 |
C8FAB1972569B2500133A848E18B6543BE490D9AB2366ECFA83F50F5CE4DF462 |
0AB8D248A07A7305DC35D6F7ED5A63C54CE5A494B62361E055331F0642296F20 |
B1D467083A8D7232693BA19E5D1B6139A0024E727016DCD2BEF592CD13267CDC |
C451D54FBBA9AD64AA5523086B686E470FC162836CC4DBD132C69BF23521B244 |
9D464A70DAA3949672BF5CAA0A42284C61DA7239C9BE712349E2A620F489C69C |
361D6F2AD42A21C70C232909C273DC7206968972A750F0726BB0E50F45345E96 |
A04E6A0AD576CB2495C34A62197AE7B83223ED784138C4CC7051F8D0A07795AE |
998FA1210A957E173691BEC2B651DCB96E4BC4C5E4AA5F34266794D75516744A |
2994709DEBAEBB6E8EA8C82DD9E423928C1B27B13C911F12014F8B8CF15B6297 |
385578670C0425354FE086C1C42BF2003D247AA9CF7CE633975E7A29AE8651C3 |
603102CCAFBBFC883C28B8718BE38E3BEE7BDFFB1ED9AF48E74D0DCA137847FE |
AF9E019A784EADAB1EF03AB4FED8D702A6007B20FED99FFDD90F7FF8432942BE |
322E0571095F50B02CDD5DA02D49520C2C7EE61432E5AC642AE526AD048A0C97 |
4885CA98B40CB4EBD96596AB44E9998115F07B5DDE818391DB81A40B15D54517 |
5D74FEF9E71F75D4513FFDE94F09296201922051344845B5EA3928E5C4690BBD |
5B101647E6861B6E38F5D45331D41FFFF8C7B3A2693CE387C476322BC1B24292 |
358A049BF81197565AE62D65040799A07D09203AF12E044CE5611A7686A0DD0D |
E61A31D270667E48591B9827D0A1374EDC68E104C9DB56636058155FF8C217F4 |
788AD064F39B9FEB04AE70C23ABCBC75928CE685BA9C07096ABABDAE0A674D5E |
D53AEC85436930961339E1667D3864B684D55829522E0D2599D78B42DBA630EC |
FA592BED5994AFADD20956F8F5346A0D0D2F0B0FDCBBB7AC393135FD8E37BFB5 |
373E16F4BAE1CED96B3FF1996784CD65E546278AA7FB9D6DE5DE869D9B597233 |
D2AC9AC09F9C6A1FB0DFDE531B7734C74737EFD819956DA7FADE1CC9836D61B0 |
DB1034631B845BE238FEF8E37FF6B39F616661CC9D7DF6D91450DC2674FDFF68 |
2EE8451470332CD3728AD2AC6B12D617E199663DFBA05601E79072C85DC8D3B2 |
1F34BC9421684B079DCF7C982BE05A0EAA8A129BDC8507DC839ACCAC27BDAD31 |
F29BD694375CED4E77876B436D934001D783B01DF74D91A1B0ED633D0F2F8B99 |
C1AB41B2BBFE09A50DEDF5534E3905CB89A47232015D949F5754B2900C00BFE2 |
6A34675D9D214A3ED5E2BFE52D6FF9C637BE31961FAC1021B78CA40AD515B7F9 |
77BFFBDD57BFFAD55481A247E54663D89C094D3DA1E4F6EF02364E3344B7E7A6 |
80202E2898A58302E570E36B3BB8A5190BE524DF5106343FC41D49732487F00F |
046149A01D78E081E443656C1C238379F9E0073FA839F5C416E6CA4DAFE01BC2 |
55B0C46FBDF556B1000A2DACA6CAD049279F7CF265975DE6E5F8520C81741EFE |
0459A916431A17360B528B1B2FA7DBC6271CC1356BD650FE0ACEAAD6878415D0 |
A9370EE85CF25DD2CAC5F7E2672878410324E04C4166493702BE29839C4A828A |
8C50868FAA0CBD0220268253FE7AD24927DD73CF3DEC5BE9A290F0BF5832D4FA |
0ACF79C82187C02652F0802FC5A64F24B79223C82CF86221B58148861B8E5EEC |
FCD46982CB720276E962CB11F77DB5463923F2B6B5A6D5FC64000B660AD8B072 |
C00C180A24823725428DC0783C098BAF38D792056A858B1BB12D9AA261ECC74C |
D49ECBD4FAAC673DEBFEFBEFC71D2186C8D392E66CCC9C505A662EF0CD14114E |
651CDCA113AA5C594651D6F150D2911A91E68230011C28190AB432F152443070 |
04B49C1E33250000FFFF49444154DAE9B22B076C9C3603FCBA38E0340B41D1C4 |
549DD460447EEC631F8381FBFEF7BF1F5B061787796A1552D40F536B71C33983 |
02867530EC05F08097D8825B68B9D4A2788D97F9B61F00666EBC51AFB4E366EC |
95BD60D68B7726D86C26A8967B9D78E5410794960C8D8E2EE94ECFBEE1A49347 |
D6ECED8F0FC577FEFCAA2F7CE1992B56B71EDFB02CA86D696F8B4D7DB381E8AA |
6DEBB52B015CDB14BEA017A5FB2C5D7EFADBDF79CD2D37FFEAF147312E575C75 |
D53BCE3A0B8F1696C25E04DF370B833910969D08FF77705C53D4651065A24626 |
26F780B160E8C4780515D4FF13053C1CFA24E3C2DCE43A38637D51370853C8C9 |
3C535ECE915665CF9482DCABC93DE03C046D6B7A831C7EB7246F76843D01ADDC |
33F63ABD3C1AB1A154DB60BAED7218B7E2D0047D2F5F90794913DE42BC4EF48B |
58BD297384F61CFEC77222C59297E301951D57C28EEF485F8539573ABEF44189 |
D1651F58626518FAE6D544F347EBD638F4D4CCBC908B06FB114FC55A26CD0B59 |
51B9E352A7530E4D464A03E25E2969F14830D01F7EF8E19FFFFCE70C16AAA0C0 |
5DF3A62870A2A0A6E5CDBE9C3C93BE389F5C70A5852168AF207634791886AA9D |
DF5206C72B58BD041ADFEDFA51B9171E0C328D980C4158184124AFF39CBF2E06 |
1057B27B0555103E674ED72BC802B1C3C95391166D2E685F0CB4F4614F1B3E25 |
170D3D5A85824D1E5B27A318AD0FFA287838184D309D303172D849C6A656913C |
DF2D59E1D0F37F4AEDD7BFFEF5F7E787DBE85194E2528D0C1733939DE51DE868 |
8251490882ABA9C522A69BC5F33D87619C0A98ADB264AFF1C52994DFF8C63792 |
A899582A3E3F6C145C9F6B8EF59A1CE7AF7EF5AB50B7B461398C5C1903654503 |
F2656124633105ACC524820E0974EE4F3C36F72D7E769B154A25BB6FCD50D840 |
B3C53D80B0B4CDDC4D252B878DD2FC9C7F8E519677BDEB5D37DD74D3D34F3FCD |
D7A1B986CF3186EA6FC8C247BE1A560E6C38AC043CB6885479C25BDFFAD6EF7C |
E73B2ECC9EF1A2ACA0A85CC810641CAA58E6AD99A0558E362BCAE2895655E113 |
27DA763EC833DF146AA4C422FACCAD4CA0712D20370359A6E8D6620A78170D50 |
F9E282752868C4454E53585D6B58C76F6B051B753F864E487A7074733AA96666 |
FBC91FB26CA5256FE976AC8CCC1B0EF4621BF61D2A9925516985A9364A955993 |
6C4D3BED8AE737AAF5430EEAB53BC3C3A3AF7DD39B0E7AE6A1D634E94495D4BB |
E46FFE127B2948D21A26346799D8550B37C77118993276C7E8F08E9D1363F5DA |
92526D6A6AD701432B7F32B3656C6464DBCC7427CDEAA3C3DB27A7ABF56AABDD |
B59AAC94331FC1E381122C52182EB797D219B4CCD43B9C27780559ECFF13053C |
1A16336EAC4D6013B7B907DCF3CB58C19E6D8C64115861DEF8A80A6FBE1F5BE2 |
E80565482B53DB2E091785FBDB4D93B68D66DB50F6637EB9B37CF8B16D3B7C4B |
03E2E18A8DE1E1DED4A4576C4CB279D3E763E332C542A41D6946730B280A22E7 |
84F1007518739356A24262F30353E09BDCD4860B16C14DF13CF4742DAD69DE9E |
E8CC33CFBCEEBAEB5CC413CE67E1B2BB955C44924B9C121444B3B49CF424A470 |
F70AFE76D6DA51814929D232807066BCD6F574D9166900C6ACA09D30A4429991 |
3293AB883B14B6EC873EF421953619C764DFAD5CE57852F7ABE1BA294818791A |
25AA6DE90B4DC9DEA59450CCEC72F4B975D5884A66B8BAB311A0A422574E30C1 |
506219253D05EB85701A24E9CD37DF8C919233AA8A589C40D380BE821B2DC139 |
279C70C26DB7DDA6BA235A346AFEAAD26C1705C3808C97171DD16F5088584006 |
419D4D91C33385A1EDEE5E57CFFDDEDC2AD330342DC58FC8A24F051BD2F9348D |
031A8B33C4F809069345D534EB5C97D48DB4B86F649CFA6CDA19AA5257C09C7B |
292DDAB709AF4F53E3C20B2F84F3A4D27BA96798239835820C05BE53CD3B23D5 |
4A88CA4B13189EFEA5D0AAC629BFA38DAF22770E1157946CF001A4185BAAD19D |
BDFCF2CBB149D282F69DCA92EB8AAFC91A33AE5B6D7B45E015DA151DA92C4B53 |
70FB510629DF0FFF12A3449B4CC5E2C6019D71E8B88C35477C9273CE39E78B5F |
FCA20BDAA226E612E5173920BC8EFACCF08DF0DD8F7EF4A30CFC2C2A08FC1103 |
3D1078691279706D3BADD1A54B5FF5AA57DD72CBDF7B9D2848CDD048B35B09A6 |
27A796FB8D52B737E265DC26955AF5E99D3BEA8DDA54A7B374E5B2BD7625DBBA |
936163386E541BAB56F84B8692921FD6AB67FCF5A9CD6563A5A17AB95EEB765A |
B5C874B6EDB8F8639FDCBCE18186F19B893FE4DBD0DAAEAC93942B51C99FAD1B |
F8D9E589D6F2B41C623D9A282CD55B516F6BA5F694D7D91A261004D5D9141659 |
1FFEF750B33F33030F384EE246BDD16AB7021F3A3D814A6632D8382C2E5C2A9A |
41B5CEA599F247695F3B6EF592E926E3A65E49BA637012AA95D16E7BCCA4B339 |
45561E5E8625E17B9967916626DD8CC5607FCDBC34C32A6984D5B26F9DE5ADFD |
56099B2CF33B2699F1B29E673B46944DD84863088211BF540FCA90AA3BD3DECE |
2C6DFB665375E9AAB56B7EF3D8C33B3B33999F9B0EFD68B8DE986EB7B8FE2FBA |
E8A24F7FFAD34C37F01DFFE44FFEE4D7BFFEB5719AE210C1A0B0161358D4408A |
23BA0CAC41DE941E034591C8DDA19A72D1A072F5724132623A7098829A70FDFA |
F55E4EF3C07815775F56B4A839E8A083603031EEC534A5A490E7948D0927E136 |
02A78A51677BBE94D88855ED23BE393FA79B2617A16423970A237974BAA8E679 |
47D28AE1AFEBD6AD3BEFBCF37065764A96EFE1157C20F44FDC40A06C71815D24 |
84A9B9B3A28F8BBCF3B980BC9F3765640D833C12697B1550C2D8913F416D47FB |
48E01D6F3EAD2E87580171160EE18509E962631F1A6EA27190F79C152DA2A499 |
BC9CA58FB13515CF70158AFD8073C993697FC975F0E7378B76E93BA808A50E19 |
7E217683E865797B030A780FE84A2E0ECF21A310C9B3AA59F48371600E72BF8C |
83DDE7F3F38D04AC186871A8D5E03608D29A6605BDC9FDB3CCE9CB6B0AAE5001 |
C5A9B798B627DB83AB7DD5CC80B0463E0C11832C93374EE9339F875FE7E6773B |
842F54C0EE5BF00426ECBDF945D50B23C35C78036007D70E50B6821609DF112F |
826D76C10517609B116AEEDA31A4E724325FA0011D021F78454139C18D5EC120 |
6D0AD814432C1CF6673FFBD910977C4168D00F7CE003DCDEAC9AC016A3A3B0DF |
7EFB6DD8B00146F7473EF211B6C4E083D189E710C1CF8021CBD759CCC31B0AEC |
5B9F72CA89D7FEDDCD70CEEBCDE11DBBA61BF5CA743F855F365CADCE7467B3C0 |
D4ABE5A0D55F5B5FD26E4F2CA93620838E7DE94BBF7CDD357BAD5EFDD0A64DF5 |
929F44E9F225CBF63FF4E0A95E7764C5F2E1A56327BDF92DB65B4E6E6A4F4CEC |
9C9C98D86B6CFC952F79D9885FCED23E4CC567EEBBFF3ECB576D7E6AE3D35B37 |
25A1DFF6E02C42AA648DCC42AEF60D862C58A95AE907A693F47ED3E96C0EFA53 |
150B65F2DA16481C566BA5F125ADAD36B619C551B562C943A88C3DE3599A4667 |
8A5D1D600AF602357AC91667465B5401FB968EA469194A7A75635695822551B2 |
DC829C7DDBCCD786844DAD5CF20DACA2A417C59DC006C76D135FEBE37A8D5215 |
8F9546F12E2F2E659E6FC1D2D9B49776F3BCBBE51DAB954DA7DFF07C081A2860 |
5816D379F3A807D35AB5D9786A725B58AD5A1879AFB7F7AABD366F7A5A4F4FDD |
63E6771CA128E68EC6F238FFFCF32FBBEC328A0BAE7C394B2E7C417931ACF6B7 |
BDED6D575F7DB52B52D89490F281314886705EFEF2977FE73BDF91333720C4D2 |
82A78846A492C16A3F8C2B7CFEF39F3FFBECB3B5D35D53C0F57C5CC145492238 |
91C9C36378B6A38F3EFAAEBBEEA2C1A1FD481AC4934E3AE9AAABAE52F85DB297 |
0296928D36017EFDABBFFAAB1FFEF0870C2CE18B5FFBDAD7E8FEE1C50952738B |
A4597A20ADE4FA87A670AE38417C6CF9DC8CB1AB2313937D2CEC9EC38330B127 |
5FD614548B1838558C317C91161DDD292F6478D28487ED830913D85ADEEAC242 |
66AFE0BF16E605621D0FE0664375E86D695589374328658510B9E5E8E50CF894 |
9A78D1CAF84E9B49AE92012893CE59A880170BEDAAC077006B37C0AAEAFED5AD |
76DF6DAD8B0BB5A06F2D15C5B83D9D21668E65D3B9FD8CF522F8CA21871CF282 |
17BCE01FFFF11FD98D84498E57BCE215DFFFFEF7E9F311FE80E9C00FE42B16AE |
CD1504B4AF39EC9C112C7AFCE0E2B4A5D1B16DF0C05A826AC49B16AD99F0F361 |
871DF6E0830FCA1A53E595ABD83432AE0BAE2BB06AD01D3A77C9A9BAD1144965 |
B76B905F7468611114C398025C28CFEA92C1BAA689FA1B2A96252005EFC87BB1 |
60977E865848192B92FAC7E74CF2A9B50BAF00A180B9D6DB893766B7EB7008D6 |
55D5F878E47275DB44BB52AF8E2F5D7EDA69A77DF6F22F47AD4E3D0CE0B2D586 |
2AD1CC74D88E70F278A531D36B0D85D6F278F489F59D2C1A5FBAEC557F7D3C36 |
F3E34FAC6F8E8E4CB7DAEB2EB92484EB56AE4C4F4C6E4C67864AD5E1B0548EB2 |
E38E3966AFA52B2C342489FDC4EBDB0E7DD524B3C4578D211B812C85FE703F5D |
D518AAF5D265E58667FF963ED6DB39E4D71ECAE25DE574B262739E412BA9A441 |
75C9707DE9F8CE0D4FD920581297C2D25C89489CE71776B783B8C2B5328588DC |
43779AC58EB21F64A957A9D73ABDAE67FA2BABE1D27EBC2AF4463B50C08925DC |
28994ADEF4B70705DC8F1B7E4918B1921F94C3BCE6308966021F0AD88302CED2 |
699BE8B55C1CE53C460D1B65F550A31284DB26A776E5517AD81A4F551AD3BD56 |
0962B66B1DD0B1F1F1891D3B6D9BE15C9AABD997585CE8A87DF0831FD4521763 |
397430CC3BB9A42C6894C2A3A814A6471DECF1D8F086CF38E30C587EBCA05B16 |
9F158CE86ED9AABBCBB4B994AE36852746975D8067BC05692C653D9B229E2159 |
ED56A928BACEFC0E778AC0B60C474BCDFB0517E1273EF1896BAEB9863020E328 |
2059D8743C5C54260F89352538989F5660D98DAF780B4A4E5C5DE3E744754F3C |
F10473DB746E53877CC98E00D535F34374E7D5CD983E22113A22A16484E199CF |
7CE6A38F3EFAE4934FB254063307531D8FFEAC673DEB37BFF98D7C11958DF357 |
86A3C54DC10455963352A58B30FFE90D159477893DE9F27270B3A2D6CA55FC2E |
F856A3AF6C191B4A8B6F52DA8E4A85A6D36E01A566F11074B0A0BDB1BFBB2691 |
2E182F289AFCB8D3C313B8E81984E4B3B15321A71C3F1F7EF8E11870069A0850 |
E233D096A28F45AA64F7EEEC709215F5F8F8E439CF790EAE63F2403733496EE7 |
25EA7286773EF399CF5C78E1856E9A96A69C761D232D780061F78D533946C63B |
2A1B4E0D03067897238E38E2BFFEEBBFBCA2168BA878CDB5A049DEFC6AE3CC69 |
FE6A8A5A3D19491A67A53C5C2E0E751B84D6C1D35235D224D70FC60C22A21903 |
B8F4D24BDFF39EF71015CF54BA7160EA9C5355A9E28D44C3425B5666BBAC58AE |
643AC48C85609AC86CC085ADA27CD2EFB98D45171E8DD1A52D0C48E685CDA1B8 |
D5827596B466EBC3CDDED4CE91E1C6C4748B12AE94FF1BAB940FDC6BFF5D98C2 |
A99D25CFB6D76B47BDBE495E70E491D5D5ABB3C03FE09907BFF6F5AFF332BF64 |
FCD6D474D97259F64BFD24DE397DF209AFC37B97FDEAB6B40BE3BE545A32D19A |
6965DDD1A5A33166B9D7AD2766DFE52B9BB3EDD9D9E923563F63CDD2D53FFBF5 |
DD95A019974BBB3AB34F87D94C90CE947D4B171565D0DFA57AB5343434916FCC |
344B037F4EE273F659536B7687375477323798F1C746A1599BEFD7EA51844BA5 |
C39E59159935BEB7343573482BCFF644826913DB92656FA408AD99BC727A2EEB |
9165D3BEC915B0D735E94C0E99C697E0DF0F5947DA8C06B6D3D1449CC04BC0F4 |
6FEFB4EE8AD3E6D0D06CB713964B679FF5BE2F5E72C948737876663A712412A5 |
8408110F38E0000861628C199AC66AC42E20C52CD6B34B03679C4020838E5CAB |
A49FC35FE95F41EB10644E1B94F7A2DD698A166ABB1565DCC8F8E1A31FFDE867 |
3FFB59AA1C468FD8D35A9C33704FCF3AEB2C6F3E3B9EFC48E3B8924A3FF37345 |
E9589701DD46674F8CB66487C68BE3E7356BD6B03998D416F3D670F088F55147 |
07DD5DBF326A257D01C7E081071E50F657B1683D73EAB0E5D00BE2457097238F |
3CF217BFF8059B39E2578A68B9D4F65B9229342E0406D3A310C1C4ECA3FA5DA8 |
8C6CC0B2600B3C193E1C3837F0C85FE3BCDD3D868F7908B245520DCB21966C95 |
C9EF3B9DF598F9E3F55D9214BA4AA29870F7AAC0AB6420C2D79FFDEC67DF73CF |
3D5C5BBC329BB9AA19B559600798C57D5FFD95121617BFF7DE7BA14109255828 |
08F452EE5276A36AB8CE71C71DF7AFFFFAAF4AC6C8BAA42993E67498307D38F8 |
6490A17DF7BEF7BD0F9AF2A28B2E82B264D488998F2CAF86D2A257BB621EC28E |
B24B09D62811001C340DAFE73067C10CBFF8E28B49A282A7921A965254639F6B |
AFBDF684134ED07A9009A51A448C150C76D503703A70654608140A96E1CC48E3 |
6E5B4DB8C6A9C4B7162D76D46F7FFB5B38A3F819DAF7939FFC2446098B1077C1 |
ED581B462352D99001639FBA5031186667282C9483570ED8E4AEF9A9A79EFA2F |
FFF22F580C6EC5217164A4E07031686CAEAC1E0F38071FB2D8115F87E2C760EE |
D9B70B8796C6BD08E36B42DFC4BDA13A545C6F9F95E33B376DDED5B5FC882BF7 |
5AB9F9E96DF552254DA23BEEB8AD3335F5B39FFE14CF0CFFC9922E753BA7BCED |
2DE54A65D58A7D5FF7A6139FD8B4D1947350613F5A3E3AD69E9E197F62F3D9EF |
3ABD998526EAAFFBE2174E39EB9D1361B2ADDF9F866AAA943B51B739D2E84EB6 |
1A9647DAD4F37ADFBA298F551BC395E6F6A95DB1F177994E62820963CB6A7BA5 |
2009A05CBD34B230ECCCF33B163E6CB5EF5C8433D7BBBE6715B0BB4D8C53CACF |
05BC7AF56AB6B21E209DF8030F22AE2B8D66AFDB33497F9917AC865833D561B8 |
F5C6AB7AF06B6D2B88D406AB03AF542EC711BC61BB20F3A512DBE223BBFC2692 |
8CA068C85AC8C128EFC7804F56D41BB3B087AC320E3A266D05A51D491F3BF061 |
DB6CD8B7549741609BD7BEEF7DF09EEB956AAB37B7A45D7BCB0D173355246A2A |
D10161796739A99C9A40F3BBF464082754A2877126CFA1B2E1E87129CA3F1603 |
8FD95D04829E22FE3FF6D863EFBCF34E6C2216B3A83A888F872B0B244475E386 |
FD3CA750DEBD3EC1ADFAF58A2BAE38F7DC73E963A828596014A27F18AF65BE4C |
92C16D1A4B418787219122C50B5F19C28D042618BD17BDE845FFF11FFFC1F8A8 |
3A7C88CDC9CC57C0F2374C0EA53EF4D04319D563B08AA834DB082B9F0E1B8266 |
A653F688AC39E5AE29020409612C5B7E0046197A54A816E95A42B1DC368A02AA |
707C5FFFFAD7DF77DF7D8F3FFEB80823CDEE1A1A2FD4766E89B05BA16B1CEFC7 |
755F8CE3C108534EBD023F1E8298029DA8519ECF05CD915114D77583F6A08331 |
6134C1C483EFB613705F4A0960CD9F789ED382F0E54FFFF44F7FFEF39F33652E |
9C144D162C3B1613335049B648DA988476E3A66C184C88E3C0C0E20AEC43650A |
34A99B65C4158E39E618D86E5E5E20689CB40D631E04EB92738795CAE251C9F2 |
F256D70223F89E95703879B11C30339A6ED257600DA1133511822EBB31F68150 |
BF3B65BA2915BCC295A6689CCC9FF93A7249DD5018179E2A85B2A21B28AB38F4 |
D8DA4DAE05493F00B3E31515775AAE03B038ED02BC3BA973F4F062EE14D1DB1E |
BAAFE0C9FCD084A572A793479B8A22995658CB4B5C42DB372FACDE71EBFFDFA8 |
97B6ECD8F2D31FDB8C1A5C8F6AA9DC8BA3D1254BE0048F8D8FBFE5D527FDFAC1 |
FBC7572D0B1A556B4EB43A63F5C68E4D5B6E38F9CC1DDB36974DB67264F9E353 |
4FB58C3F5B32DBA376A75A4FC26CC76C67E9D26634333B1656CAADA86EBC4A60 |
86ABCD99D654C9044B869675B374364DB6B7A77A39F756EC0571E06365F793B4 |
973714EADB66BF59B954F4CC29DAE266F3E1575951444EC9082571F0C107DF76 |
DB6D72711603A92D7640C7065ED8A88FB4DA5D2F4A5604C1B25E7F7550ADC7B3 |
0D5BDDEBD9B05816A5964CBBE497C238EA79F90358811B5B23D1B79D7D4B33FD |
C8E6B38DDF8396C562B66548A69AB33B87C60619B2209C8CE32D69D43141756C |
ECEEC91DFBEFBF3F341C0B79776CB314699552D9B69C726A404CC1C643D35999 |
41B7CE8DC85B2D3F57FC9ADCFC656C8F5A8A6AF5EAABAF3EE38C330844C0F9A4 |
761880220ED08A79BBABA3350E7695158614AA8AE4713AB0E370534EA25B37E1 |
CA55D7FDD5AD599243579B8E32C1CF18136E22C6ED082BA6F96E0AEA6286A615 |
4533F3F9F38D83CAC69890FA8A8F44F1E5A2C15D8FCE15E93A81A182B4E851CB |
365692B74227CC2580556825AE10E5D82835DCDA32DE4FDD09F9AB6E234837A3 |
D97E413DAACB0EA087B820A45DDC4E82034A4E6CCF6E4859316759C1C4F4BADA |
77406572943D870289F371E28927C2617DF8E1875501B267F3790F2868A83DFC |
F08A57BC026620E692BD87DDD0E8C0C27567D12B0E3A4F52875C2E12FA0C92D0 |
25A515A99A22326B2A81610A738CA97153E0935DC14D73815E350B8AF0839A7D |
727EA19E896C54EB27E87B7CEB2D6F79CB2DB7DCC2EEC55CDF38191FDE70C30D |
A4AE8539824B91138E4FE572F6660E2326DF8B39023D9EA4AD717C9D0134BB2A |
4F04571E0099E3E24AB8D2E655D288AB85D57B447E52D37324DD408B961C318D |
0B17B3427C9A6E3D06BD5B970CCE4D4CC8B7A8E5870C3853A0EA5C9235052154 |
4FB2DB7558832AAD076F3AEDF42F5FFD775611D891B1B77BFE6BCEAE2F1F838E |
ECEFDCD69C9DBAF0BDA775DA9B2FBBEA92D66C7CF8A1870D372DC39D6D04D9ED |
ACDC7BAFD3CF78EFD6C7378E2E1BEFC6516B66CA747B2B1B4377DE7ADB37AFFC |
CA415D4B6359F1FCD964AA6C2A7EBD36157777F6274B43A313AD99B8E42781B7 |
B5DD5F3954DE39D31F0BCDFE2B563EFCF496D5E5EACA657B6DC1508F8DFDD92B |
5FF1B7FF707D27B5AC8B496A3A5ED6F2AD6B9E25791F032F8339502957D82C64 |
B6355B0AE7B2AD7C77379D497307A3814DF79BDFFC0653C934A11B06FB030F5B |
98959A46B5D9EAC0C4CF6A81D748A271E3EF6BD2BA67867D7FD80B4A9997E475 |
C05807B6419252AA091C78AB806137E0C772EA05C6B37CD1C6D62C95A0BC8D3F |
95DA97EAF4BBADDC3386BD3CBADF9AE71D7DCCB537DF9CC6C9A9A79EFA777FFF |
77764914095D37512A18018524D6060B55541592163DEBCC7CBD4BC011F374EC |
FECB9F557DC46B3EE739CF79E08107C4EA2A24260D7AF1342C3A7445DD30AC5B |
3C3C43719882BFFEEBBFBEF5D65BF157180DF890A5C3AA53606AC98586B9A141 |
2960D59EB9A51F544F448AF9059D0E4B699821F6169013F80E452BBB072968AC |
56EE2CCAE72D5C9E225E6D803C640084C5B4B49C58B54EA098520A5531B0DF65 |
225537CDF495CCA52CAF35E2ABD2361760DD14149A6EEB9501722553006D0423 |
A246D1FE518568BA3BE674CF299A768B820451163B1D950A6B52D5B180633160 |
05DBEAABFC0A5873AA898608C6DAD2331083866B72AD7B7F701912339AF83A89 |
304DD18262A167C643E81EA5E899A1615A14AA024A0B234FC5868D849FA55AB8 |
C724DC4F3BEDB46BAFBD160372C20927E0877DF6D907273372CB95CD0972A1D1 |
328F32A72C9846093D2D6E3C7E912E3235965A20509399A240994FAEE68F2EF1 |
A7D415CD43F9880C6368FBA9AD85BA5D51AC70668951E7BDC8D1EA7674C07051 |
D608EBAF6590E424F59C6BBE206F6472AA4BE3B8CB8A49B0558BD22EA6B05DB8 |
ECB951C5C8B35001BBDA97E6302B83B5CBF0031E1EEAF6FDEF7FFFA5975E8A27 |
64B85E30104A90A38E3A0A361C6501E7DA6DA4B898878721CB2A43266BBCF4B4 |
B37AA5D15DED280BECA6DB198D6E9DD81ED6B3D5E578DDDB4FDAC79FFAF0B9A7 |
B6BA3B82D2F27AB5363B353D940FE08B8F3E7AA6DD8227F7C6379F627B2378A6 |
3B3DBDDFE8F8CB8E78FE75975C7EF9A72FF6A3F6259FFEEC673E7E61889559A9 |
F693DEC6D6E69543ABBA516B7B77BA3632BA616AB236D63CE12DA7DCF09D6F3F |
B56572B967F6C2CB6EDFD58AE2E5C34B9F9EDE71D811CFFDEF7B7F1D552D5438 |
89B3A9246AB3671041EB99A5A284AEA297C37892C5F1B5663DA7258E4247DCF2 |
5021BFFCE52F4D9EACA1F2580CA4B60705ECA7A65969CE76FBA997D9946FBF3F |
149883631B481F3566ACE4374B76D25BBD7E0BC662E04739041A16810FB7384B |
AD071C84E53C071CA450D250B4311CFA20F32AC67F1A0ADB33138C7E2D19F9ED |
C414647F73F978679B057658A0561E7B9B9A9DC10FBD7ECF337388D7A0E874CE |
1826ED54426A58AE433007D7869C36C83A9764C33804B7260F8341E57FFDEB5F |
A78427EE8F85B6595E49EC366395D3E28A41572A4AF2F35BC403D17727F73095 |
F78D37DEF8F6B7BF9D713BCF294EA16A5092557AC138614271625077E2CA975F |
7EF939E79C43AE40B735855A7C9ADCC9663C898BC12D1571418E7C6CB12CB3F8 |
9314C26BD6AC218792EBF2EDB60CC90D650972A4E8054127ECF9C6F1B742E779 |
CF7BDE7FFFF77F730818D9C3BD311F90057C20FCE9F8E38FBFEDB6DB2C955D91 |
96A7C414FA948FA5D6541C1186EC64F80B17CA4FD8DF83EA99C13465FB5D8345 |
ED8076BB61188A61829D8C65A60866EE7E8315197817782512A2812CA95C64CA |
4DDF690CC743700F992CA6B0D1C8A0C650FC1EFA92327EAEBAAF030E38004A85 |
CC187EC13FCE65477D494B901901F1B8F234AA4995EBB9A5505CEB8A87BBB5F0 |
D2400B434C94EFBCA9CA5561586CD9B2E5F4D34FC7BEC575F0B28CAC4ACDB830 |
349CCF8EF45845388116890EA667B01BAFBEFA6AA603F4392E8239623DBAD0FF |
842D7CE31BDF78EF7BDF4B19A4C6852CB976B1D69C2C02CB859624AD18D16778 |
18F181B01B20B10EB8C241071D04139E806A15101367CE95A3D9E41069F607A0 |
EF66F16C45E6709B1B07DDADBC328D54760BC68672ED0937036A6C454F29EAB4 |
861A9599560FBF0D2D5BBD6BCB0ED35C7BF41BDE08A5FBD8D35B1A23CB3B89D7 |
E9277E589AACAEACA5B3A5D9A7C6D3ED23BDED3B1EFDF5E4C62796346BBB7AFE |
81071E9864798D409E1AB45AADDFFBDEB55FB9AF1585CD252B3BBBDEFA9263A6 |
66834953AE8FA6A3FDD1D9F6D3CF5F5A31D3C147CEB9E20B5FF8F892A18EDFA9 |
4E443BBD5ABAB3932E1F5DBD35DB545A75389CFB1595FEB6E97447BFB3EFF8B2 |
4D3BB70F8D8E6E9D9C4C030F62A9451BDDB34E709CA509659A370777567519B1 |
429C417C02E9C492480E3B56176BD3253DDC7E507F940256F13A5D8EDF25E066 |
760DA7DE8199B736811AB6ECCE98B9B864269210C60EC47C2D2C599EAFB86F9B |
38FAA69A9AA120AC87E534CEBA498C933B26EB98B86D82AE97CD04FE54904DC3 |
E94FB218836E730273ED63DDC02F6C688C9E949312856E71ADA41039C0294C4E |
3AE9A4EBAFBF9E182BB6ACA763C05F19975295C140B9A652B002A30C2CBCDD8E |
1BEF4EEC154E932BE982A295E452CE9E1397169D91160A798579DDD0311F8FE6 |
2C8D604A03375A207756941DD4B5CA5569CFBA1689B86F598FCAE1554855EA5C |
BE3BAE8F17578F3B7715995C79B31F8626D40DC7CEF996B8DF473EF29175EBD6 |
E14157AC58016D9F1574D2A2A5C6A81D7CF0C10F3FFC70563443660A41A284FE |
10453055A9182B55E321D5A5D211333FCF472DEB862044696D16F738A1097EF4 |
A31F5176D3D0236469E07CFDEAA2AB0E3DF4D0871E7A489D18984AC9E6379697 |
432C1E416522599AEC86075DD605167731C8B3877208E54A19873CEFBCF3E00C |
9982E1C82F9ADED0BE3345390D75834AB44D5157C36FD1EB15EF74565050B93B |
8ACC65DCCC2AEB625081F0457E9116B1FA4A697608FE320EA78C123FF895242F |
6AD5E20699DDF1E4E79805E2158D138C5DB81BB990F06C0C03E0936BAEB9E6CC |
33CFA4EF8B8950198682486E3F705C4D38640578F50985110504FE7FD18B5EF4 |
AFFFFAAFF4DDD558DB8D121122C080D26E45D2EF95FB62DD7279F84C0130A4C4 |
C4C569A7BABDA8CDFCE81C4EBB64DDE73E74DE79516A96ADDE67473B4D5BF1AB |
DEF1DE47828360F7B055146BC9A0512C5561BCBD3FB3FDD907EDFDEE93FFFA6F |
5EFCDC030E588B77DBBA7973BD39CC6B421D58D04ACED06EF1654BC71AA5FDBF |
79D547DE74C20BC221F3F066D39B364B6DAF78B3EFC8F2DEC4B6A60957D4C64C |
6F7B23ED2E2FADF4A2DACA6796FEBFE7FEE9B76FB867AA7CFFFA3E448C09FA66 |
C2983F39F899BF7AE801AB6B6AB5995E67060FBC74C9933B262C9BB26F53BE69 |
66FFE7A6E39A17DB91C068AB57AF86852A6F4CD13861D7B11820F1E906FC0FCA |
9038C8FC3AD3315427A61A36E3749FD4DB2F0896662648E304A3E5995E126626 |
B6E549F645BDFC25ACFD9006A66AFD60B86EA61F2550BAD8B17D936ECD0C2C5F |
588870575BF87A66288FB22254463B8FF6345EF6DE7BEFF51CD83F253B5F567B |
8D883385D920CFAFBCF24AD2D468FD981C8AF1177FF117B09BA5C9949372B9ED |
4C1107CA165014FFDE7163EF73BAE0F080EFBCF34ED6CB50465149AB4B2E668A |
693225CE5831B55B9C8D5B83601C6A5899C27EC110C59161809711633544E22A |
523B5E9C40C88E2908C5E46871B469AFD326A3DED568107A894572E28927FEE7 |
7FFE27F3F13828585CD94599A6F2D4016492C7582BBE46D3D2AD4482447BDDEB |
5E87BF7EEB5BDF62DA8F46A51C05E320939536A0FFAE80096F86CB2A89CB059D |
383DD7248BA57818F716E6991D5D16536024B996A054C8D7734A7DF403FC098A |
572E4A35215E88DBCA1CCE0A6E75EA579A05CCF02B13C997A50E1603A5BEB267 |
EA32690EFDC00A1C952C7B7921D0002C8845B7AC32A27272A32E14EE035C25AE |
63AAE7098B83BD375846CC2828953D351C465849043730659C7C86EFF4D066AE |
9A8BE4F9CF7FFE2F7EF10B5398A5C6A12BE24A50DC854D05A002319858B8C4C9 |
FB054B14334CB4DED8DD4802976B89A6212D71E160855C5385F1B7BFFDED37BE |
F18D0A8CB34A92490DEE907DF7DD97F4AD9247DC785941E8ED0EA09B6ED7F17B |
1530D7069C4E5C8DEF0E5F019EFD85175E68722B5BC5DFC2B56AF7CE13945936 |
B664A8D5EE6461AD1D6393D70E3EF655D5A125CDD6D32B968D675137EDB5968D |
364DD4DEB165D38A654BB724CD91E17A6B6A62666647A35A9B989AE974E3952B |
F77AC111876304B08466DB2D367C7D6AE3C6DB6FBFFDE24B3F5D4D9606DEA3C7 |
1DF7BA2438B8B6AABEE3E9FF63BCBD837863DD9865A5712FF6C787D2DE8EEE41 |
F57D47FC99787667AD71509A3D5DEAED28579EF558F248544F6726D64C79EBDB |
19FC3F6CF0D2AE7EB47CD5B227376FF77CD3F3ACBEF2F2459D25BF1B3DAD733C |
099E0A26974B6B70C71D771C77DC7126C7AC52C8C890A5A58861FCDCE73EE70A |
813FF0F0F34EA06F7FFBDBBFF295AF48B8DB29DE391124D128E4E9FFE5EC4CC0 |
E42AABF4FFDDAADE3B7B48C22661DF6415450671DC1D1C196610044431AC9100 |
41F65D2024806CB26FC230880828A088A08038A3A322ABC08008486411086BC8 |
DAE9ADAAFE6FD52FF7E5F4ADEE16FFF5E4C9D35D5D75EF77BFE5ACEF794FA93C |
453A5207AA81B71A2C97529D0BBA5EDDDBDEA835CA1AFF0FB4D61FA75C6D7000 |
D4956EAD374BD5529A9F5AFA6A95A5D5DAD2BC9D439611C01C8C36ABC5A689EE |
A3C08C39205C4CFC75896B2D59AD51AA14E963014BB363D9DB16B9187C858ABB |
940385D0CD71E38D346F0E413B6AA821E95C6881E87A57381AB59C3F0011E72A |
41E4462D9023F9FAF10AD115262C1C759EB50993A30F9F74D249F3E6CD4B3906 |
48E25A5F24680F0BBDE3DB6E1728D39C5FD1CAD59CB3367213996FD8E594DEBD |
A8065DF3939FFCE46F7FFB5B9E2E2AE0950F62B91CCD258F2F0B0D0CCCAFE428 |
8D892F5866C94DB80BC0E9B124ECE961AB69B5CBFFF33FFF33E52859D75093D5 |
487937A8D1259A949674C60B2FBC80EDA3E976DE31A297FD752EE8321BA62942 |
827D0E992CCFB56BB7CDE3013314DA22CEA9F7963DAD51362EEB17F9F334B6A3 |
8F3E5ADB25F68A77D3C6B3CF3EFBB0C30E339574CA41BCD2C7471C71C429A79C |
E2980F515FBAB379B1206E4D8DD8831E8446551837A6F2D0BDF6DA6BAF3BEEB8 |
43979563AD53C412537EE7661810C2617F50A4A45F09FFC6AA79FDBFC30E3BDC |
7FFFFDC0E323EFB12EA59FA1D4D753038C2CE5B45F6EE6E5780C27440FA80113 |
69C03223640D888C435580473971AB8FC1C3AC99D453D8DA356F0C2B851C89E1 |
BE98D3A5061AF61CF67934B09ACB33865D770BD042F9168682ABA531296C8F16 |
701F7A8DE9685DB6BCB74AC8366BFFFA2187B78D9DFCC49FFFB2FEB85A394B63 |
3ADB06562C5BBAF0CD555799581B90B2AB0EB68CEB1D90335679E16F2F4F99B6 |
C63B8B96748D9D3C5049E3CAF50AC0AC51883565DAD459B366690EFFE737BF1E |
DBBAB0ADEDD3EF56DFBAFA9AF34A6FBFBBF6F405AFF46CF5CA823B5A07577BF7 |
DDE5F2DFCA6D63ABED4FB72EDD785C7A636979F5CD3B524F6FDB6A9D6BAC5D9B |
347FF9A3935AA72C2FA56F1CBCC789175EB9BC56A7D2A8B49517F757F4437B77 |
4B6FDF601D9F5D3F330DED3B5823F25C4FA936CE1D69FE1933667CEF7BDF93E9 |
23D3D01695A317262481F19F988D96188FFF1FF58053A049A75FD6CAE857D692 |
6AD5B654D5969D9465E36AA531A9DA99CAEFB60F962AF5AE099D39CF46E38152 |
7B65E5D3B43402EC3DB506BEAC9C1E2BB5F5572BBDD5CA0A4071F2FDB30604A4 |
D267B1A30D0608401B83CAD7B80F0D5D24009B72BE2A82616C1BFE776A26E5C5 |
9F84C72431A472002DF2A4054F97604FF4806B4399859A5FD8FD044D89E25ADB |
A5DCB94759C413870CC117426B20A60AD16FCBD588B9B371800D4120935B63E5 |
3357DCE8E31FFFF8AF7FFDEBC83AAC8B40BCC35D7039489923F38DE2B61026CC |
800AD0277529FB60F16179B91066A38D367AF2C9275D05531008F53975C3617B |
81F15AA6C4423444923396994261AABB521E61367875EEDCB973E6CC411C93E7 |
D3ED20F923CAC49E30C319B534265624D0878F32ECC26B8AA554183FF146FB34 |
69A8EFCB0FFA8C565AFBF580030EB8E9A69B7034638D5DB30035790A81779E5A |
9BFEDC73CFFDEA57BF7AE9A5971E7AE8A129EFC6185BE099E6228DAC83AFBAEA |
AA9933679AFE0DCDE1A2755D07BDB8F1C61BEB52D3A74FBFF3CE3B3D5A3D88B6 |
0269069C248C0F7D40C3A3A1AFF531711EF90DF7DD771FD11E93B967792741C7 |
A2F5D75AA39A8872DB3A2C368F423BB41B39A118AA5E5A5632AC1C2A5405B56A |
38C7CED3F804FABEB1EFC5165B6C21694B1F4C2738B027DC9E8C872572A3F1C8 |
6439EAA8A3249775350083FA8C9646FEAEFB626DB6D9664F3CF1844F8BAD5452 |
ECA4936DF794021F99A1E9661431D503DE79F34EE3E7519A01D84C4EB94512AB |
35CC4AEDFCB7456144CE571ACD66CBA56A7B4BB9AFBF2E26AAF5BCCC3716F6B5 |
620D8F1D3FB1F1FF04244BEDDD57A74E5DE5DDC5F2427B071B6265D1A225E3C6 |
8C6F2FB700BA696B80C3E79D79066D57AAE5BF4C6EF9EC5DBFFED140AD6F9DDA |
D6D5B7EFEF9BD27EDE2D93178E934735AE6DB5A796A68E850B376B9BFC9B29E5 |
C92FDD38B77DD96B5DADABB70CF4ADBB5AC7EA4BB67AA3EFF17275ED15B517CF |
BAE6BFF6DE7FDFA9D3D77CFAA557064B69F2AA937BFA7A572C5E9E5AEB65B3A5 |
8602AE0D5609C89202364C06218010D47E26D3C93B2608C456F332B1971068FF |
1F0A98D823D7077EB864294DC0AA2D59EAAA56EA6A38B58C2FB7BD53E969CF52 |
67963A1A5D81DB72B6CC31593D515C656DB2D28A4AB5AF561BCC6A0F341E6D70 |
658EBB6145D559A2533DA8DF1086DA09D3A64D735D1C2A24E545103127CACFD8 |
A6905E4100C906367632923DE97DFAA6571B9DC1B0A46B81A0DE5BDD9B3F5A96 |
A3E4806B39E12BC06C833F62C315009B04A8C054B28EA4CF5CE8D8ACA8FCC829 |
4F4D3A2C6F6F272EB444841ECD4D2CA0C1816927E53112C9FF6BAEB9C66DD6BE |
FFFDEFEFBEFBEE1223975D76D9D5575FFD873FFCC1690E63D0DC83C70130B628 |
082F5B1229A4F30AA0EE6172C0466A49CE6ABEEC0641454D3B49C332D16D9602 |
38DD286352A772B71F7AE8A1E38E3BEE8C33CE807684A25544248CE1F68631D9 |
340EED09A2223A5DF296E40DCF9F3FBF50AD344AD98F341F9DCF292CF1562B6C |
0E5E38D9B159A1D606A7301B5A0CEDC3ECC215F656D43AFAAEFE645564CC4884 |
0D4770ECB0E347991D7BECB1575C710591347052D82591FCD96152D3B6B92964 |
CA1B44E295F2C8667D72F1F4B6DB6E0BDB94DCE5DFFFFEF78F3CF2882B1CF415 |
B4B8C1D20E231702F2592866E54D742AA372F95996B7CC8A9960FBB8AE07230D |
C329F2FF071E78E02DB7DC82A74B88897DC8033AEE82F1A7B9822E4026D19147 |
1E49DB700C1AC362ED30792A3845B109B92EA5E9723B8742C2A694374EB15521 |
13818B10411976BB8EE481D572261323F84C4812F3CA5C5FE61439A08259597F |
475E55B9D45E4E837D7DE3BA5A56F40C76B7A6DE81BA32686FAD239BC64E1AF3 |
EA5BCBCAADA5D6CEAE254B96B5754FED5BBE3495500183DAEFDD1D1DCB97F6B6 |
135E4BF5B3DCD3D7FFF39FDF59AFADD4665BB3D4FFABEECBCE3E60D96A8FBFB0 |
206DD49DB5B44EDB79BFABDAC7545F7FEBB9D6F1D5BE6CCDE5958F2C5ADAD296 |
551FFCEF3FBED136F5EDB65FADD9B1DE5FBFF7E5B5B2CF8C1BF3ECE281C51DFD |
D35FACBE34D088B8F69652E7C4EE154B7BA4A0C68CAF933DE9694A0D19552F40 |
4A25CF36DC0B8E393583311D83F14AB14388EBE84F9151E77DBE704089097130 |
C9074BEC57EB09EA527D7095C1F6549D90B2F12DED6D83BD9DA945FFDA53ADA5 |
F12FD5693A2AFDF5D0724902B8B7529588ACA4AC37D5FDFEE709B9670D47B6DA |
3856B55ABECE55A4E5061B6CF0FCF3CF536DAF3D86BE8934790C353E9ACD35A2 |
508536509A164E31B2574B7CE185174A02B8562705068814DCCDF70FC2420BC4 |
05B2968AE8CE42DC8E37258DA57AF4D4CF3EFBECB0E59A05F9E95E64A82404D1 |
D4A953B55292EAD007E9E92EB9E412CB28DF5D7B43AB89B8DB6DB7DD7EFAD39F |
6A6C85E6C118D93A9E68713B0C2860B696BEAE61CB77927B696735124723E2B4 |
85B409A5A15037C384A0D96492DD8458B578D63159A83876FF7613699A2630D6 |
A871DD484EA44782C1431739E490436468E857D73BEABE525146C4452986F4E7 |
C9E90F38ECC2A3176DDA3873167746B43B2084824102F7D7141C31B5500B0C0F |
B22EB5571C7376D7207C441ED6AD31A3898A1A4821DED8FC02E646FE18BC5B0A |
2821363134179C4F08E73475981A11D69872CF5BB3AA3BCAA6F1767798AE80A5 |
228A6BBA50D72DAC6CDE9E3B79575E79E561871D868903A6CC6D3D5826D495B9 |
AC63A494222536954B95525EF48C94C1DB00B817ABF13C4BFA8CBEE546DFFAD6 |
A9A79E2A75EB4A4794D93EFBEC73E38D371AB6E6D6CEBC8CF0D2A4E92BCC30FB |
96E5DB6FBFFDAEBBEEBAE9D3A7937B662381464629BA409905BAE1861B4E3CF1 |
44F9135815CD10E834AA024EA1AF03803E4DA34642EA87280528922DB6D8E2FE |
FBEF8FA7377A27689D7ABC54B2A394EA0ABD21E277DD6DF7FBEEBBEFB537DE6C |
3402A86727DBBBBAFAEB33D636902A13274F58F8E6EBA5D6ACDA5FE7C32BD752 |
B9E14EF5CAEC2B971E78F821DD5A52A336BEEBEA99FB947A5E7B74711A3F75CD |
1D3658EFC1A77EF3DB979F6A59B16947C760B57759A973EC05DFBD7E45A53B2B |
F74E9AB8E4B8EF5FDF31F50B8B1694BA7E755AA9B26AE7E0C6D5D26F5AAAAB97 |
27AE78E3DD77B331EDCB07FAA487B38EB65A4FFF84091397BF6B105656ADD9C7 |
7B8F22B896D76F6033C1AE0A6ADD936982FB949BF5B19F47FA475E3E1760F750 |
FF2B538C0DDC526A48FFD2607F4B56D5A19A5029B797DB3AA45007074AF51873 |
E3E8D7C937AA1D6DED323017F7D5778C0C3A3D59EFE0605FE3130D35FE1E2A47 |
764F7B6B1B95395AD3B5D65A0BE5446AC33BB0A080D9901CC6830F3EF8AAABAE |
82B854BBE599679E01901C396539473A14D2768623D926B61F1CC5A0832EE9EF |
C11A6AA12C9EB2B1C83305AA8E224680B79FFEF4A7EFBAEB2E1BE87A7F975D76 |
914B80148DF78DEB125F0C9B1261560AE12971BDF3CE3B5F74D14544F25110FA |
C1081B7F9D2CB5F9EAB1B4F4B386AD9981C1D0063A37420E584F43C6E0FD69A0 |
5CAC92209A3D12B82CF301768DBF33916EF9423495E21CBDAF71EB6764993E5C |
6DB443479A541B5C92D2107A30A21F48375D478739CBDB3732447E96E542F766 |
39CD279C700273917205ECF3338A07ECC6AB7E137DEFFD5D78728296EC5D9A52 |
B17ED5A1CD74539EE4DF6CB3CD9E7EFA69720CA43CBD351DEEF6568BC45EE433 |
52C3221989539A44A9F919341BDA2BD204D2790681174AD676DD75D7DB6EBB4D |
A74B13FBB5AF7DEDACB3CEB2DCD1B63BEEB8E34CC2C219A0541F880D1DB3750B |
798414B7E047D6F206C62B036E0D2A1C6B9A8B2FBEF8F0C30F67D56C9C11FE82 |
078A5DA4A770BC14CB89E53375409677352058ED131BB306963B98BD461E48DD |
1E7DF4D10622A2A75D4FC554CB8896E8F19FB057A8764BB9C7C0574C06628F47 |
DFD2E46B7E224B17C23DE5B0C68841939494B0C0439A3B77AEE6E7BD4315F6EA |
48216826C7D287B6A986B3B9373026FCA69B6E2A9728EEE15A5EBD3DAE3DEB1D |
A87717EAED1B9482ADF5D7490F75F534D03F658D35DE7AF56FD3565BF59DB75E |
AF0CF48D1FD3BD74D9F2310DEC4FDD1995DFD956D6814F55898952476A5DD1D7 |
D7A1ADA8BBB7B5FEE8B65B3956C7CE386C6AE7330B16A78FEF72D6C05BAF3CF3 |
EBCB964F99FC91E31E59346679FB60A97B70E28ADE4595F6775BBAA6F4F60EDC |
F3CBCBA7BDB255FF268FF62CDAE1951B3FDB92A6ADD29D7A96D795BF16A9B5A3 |
7569DF40E7E4712B962DD5EDD7FAC0F497FFFA4257439BE4654879AF852C7576 |
BC878AA01ACDD5DB168B18D36EDD23CBC9C6903EEFEE78E91F79B995596C8656 |
0F8C657532AEACD4DADADED5D25AAE47640665BE0FD62AA5526B5BB9561DECEB |
2FE72255FBAC5BB2B1AB6BB094BDB56C799D9CB2ABABA5AD75A06F20ADE8A9F7 |
7D8A122CFCECF496F6A1EBFE0B0AD891393B3F00E9A9E72900FB536EA3C77710 |
7706C99A13A3927763CBF212C498034EA3EA60D3C294F266ED2BF767C3BC3615 |
B1A587D421EC1998CEFA134820B73B8C69E9987689B96AC35D7DB471C139D480 |
BFAAA1C9105361E3DEA16F7D98A4153D6DEDB863F0456F3316F2E87FF0BFB550 |
3DA8EF9A988148BB49EC4754C011D3454205598FBFEB8027974B392D67A1CDA4 |
D549356FC964E82970003C77474735FA5AA3D6DBDCF41C2DD2F82D792773FDEC |
7B8D7460223F67CAFD6F8E9FC6E30C7184E36BA5F9FA77BEF39DD34F3F1D7D13 |
032CB18B031EB0A433E485A5406EEED5657F3012DD7DBBEDB67BECB1C766CE9C |
79F9E5974B2E703B23239C6BC4C888BCC1C46FB1ECAC600043A6DCDA289C04C6 |
5CA869D6F5B5BD6C47F32CA59C6DD5148631A7EBBE8460EE318FB2BCC09C0C82 |
46222547DB0663A34826C9EABCFBEEBB657BB924AC10FDEB6ABC403D7CF5AB5F |
FDC10F7EE0145D296F3EEF5C4E6C55C6D7B57C80DB3515D3A64D03DCC853A341 |
23C5742177CB86D450E504D32A0A8B5547119ED82CB097BB2E30CB6BEA8D3B73 |
8B536CB8941BFB6C75CE2191404D2388747BD2661D42CBE2C3D9B367A137D964 |
937DF7DDF7D8638FF579AE05BA224B1C4798F4F98D36DA486EEECAFC6E1E318A |
666B0CDF658101DFB6CB4AF32EAD8CBA0F34DAEEDE7DEF3D48A2E30EDE6B49FF |
925267FAFCC777EF5FB241CBE4D7EF7CF0DE35D738EAED71D992BE3726ACDAFD |
C682C109E32674B4BCD9B6E863CFDCF1B954CB3A52B9D4FACB9E8113DABA9FAA |
2CEF1A2371D1F78AB497FCEFBE9E9E8EEEEE5EB9B00DBA985B6FBDB56D456FA9 |
CEF451EF2F3490AA7D957A07A404323AF77DA9E1D67ED6D3C9B2B78395F27088 |
77B8CFB89E941E004384DD708CEE05A562FD8124F4ACF2BEB3AA4C8ED334DEF0 |
7CD2BD2F3989D4E3AEB7DE7ACF3DF79C3E49057381C31C6DAAB5A020CD1556A3 |
381E3ECEE670A57D38C50205062817525E71C515471E79A4E1CA3C0B848E1AF6 |
861B6E28670311E4E8AEF96E5D8AC9C1E71045CDEA7930AA9400981E99CDE636 |
3031E504CC883D499A52F7353312A2353A66CED120FC750A3466B3F4B8B1586D |
685307648253AE38A6D07AF02086CB60D0E88206E2B013C0E850021A359DC52F |
4BE9F87301E399F28A093716AA072323880B8FD35C5F9812318D6C76081F75EE |
94055A2BD33915C20880EC41D29A76038B062E7BD6D23EB7AF40E860948D6837 |
02CB8EBD72E28927DE7CF3CDEC78A6869C90C1697A47DB5D4794EF3A85C9921B |
FA6F70C151471D75F5D557EBBB11F8A38F45DF9491B86B34F954EA79E2325045 |
0A630B52DED953AB0D7E00F14B810D8D4E91FBCDA2849C28E1F433CF3C73DEBC |
794E25E0497B89110D9C076F236C43470562C5BAAD511C91AF7CE52B3FFCE10F |
65554054E998367869F71E30FCDB958B29A7DF9A33678E7C591357817807EDEC |
3353CA79955D5565C50C4681C974F5335549B6365201E9D0D0E56BAFBDB6CEEA |
830F3E089D10F841E690E83414B2D8E648735C07625C548AC72523984650848D |
2DFF03F606F062B16BA1F11A6EAD91426F474B5E0B0EE6900F4024C4C927BA6E |
3A78466B4A38CF8093D6B59C668E3B5A3720C8DE633819AC37FEABEFFCD6D665 |
CB97DD73EFBDBA91D6BAB658CAAFFBE8130F79F62FF767E5D7B3716FDE7E4779 |
E96B170D0E7EACA3BDDC238F767C6B7FCF40A53E937F4A533E937A577495D6E9 |
59F6B731137B972F4D2D95AE81C1CE3AB3F292DE7A7F7A3D57032504E78CDCFA |
CEC1AC560F41D7A14B8D2467BD17425D9E0C56A83FD47EB6CB0272C78C4E6C09 |
BD235D2BB1EE744F2DA7F88F28C8349C0317B3E92920895C60EA8260A7903486 |
8B2EBAE8D0430F050941EBAA94834E225088D498E941B4FD24C76A8197D75524 |
D043C6A03A6647418916E49EA504EAD608C172E8096F191B632AD40268BA0E3E |
F8E08B2FBE181F89ADBBD75E7BDD74D34D4C02A516FCD56923C4B24705E1924B |
9023EAC550099D29CE8EA9512C2B104D2824742143BDF0C20B67CD9A65EB902D |
8DD677DD8A260DFCD4ECD9B3E5475143CCE3BB66A159017B025DB66A0B03CA68 |
1F6ADFDD855598E08E2FF22D1BC7B138C8555ED8460810F6B0C3811ED87BDF64 |
E200DF97F2AECE60A4E350528EC9245F18259DE5A6CBA7B06EE01424B3654961 |
EC2E396D0DD7A8547D405AE4BCF3CED39E30A267D88D88F1B2F1C61B3FFBECB3 |
DA4FD291D676AE7861C750136553EED4534F3DE5945362C1FEB00A38364BE644 |
45925537AE6175C17339408A94E77F0A661C353AA3F122465A10070E9B177880 |
4D6E35AC02B6856BF70BD3981D89794178C7DDAB5829E2197EBAD818240B0D95 |
5935A41EBEBE0B065054EE225C7822D0D7664FA57093C0BBABC9A58FB5D69C1C |
1367A6D01184C3401E451BF2A5975E72F5B335960DB5E6AD52CB29F4409BA3C9 |
38428CD6640EB89B968C9A968F7EF4A3BFFBDDEFE2D54C90AE47C0642607A9EF |
F2EB0D37DCF0B5AF7D4DBFAEBEFAEAEEEF94023423068D0013447A325B606C5D |
FB558510BA5B4016E2A5C8CA8865E50AD6C1C62B4449940657B27F2C5BD13379 |
D2E48B2FBDE4FFFEEFFFEA5AA4B6A2D4AD25E97FF14F69C5DB5353E78BE569CB |
7FF0A33FA4DE57DADA53BF4E58A55D4AF3DAEF9D73EA49472F7A5D9258639870 |
C9B9577DF3F8AFA4D6D2B2DE7163A7742F59FAB7D52734EAD9AA15FAFB3AD85C |
6E8C360DE5788FEE26EF509E7EEDB5D7EEBFFFFEDA42A951BD566070D384E87F |
EC30192E10B44506B1B8880E0916B42F2F9C1E6DCB73CE3907BA508AB6F7DC73 |
4F1D5B0434FF47A08CAFA91F0082D1881E418472D23ED765A581B476BA854D04 |
FD40AC8B80A70FF54820B252E8FCC1A9F491B4F64D4323790CD5DBAFDE73E988 |
23F4742001795307444FCAA1003C1B93BBBA29559710BFFB2E5C5346F9165B6C |
F1873FFC0158A851AB8E00A3442211A191CFA67A36AD15CE181C521AC3698D17 |
F668A1F227B2D6FB748CA2804D228BD2C5BCC0C2367316513DE7AAB8381A3AE5 |
2C0BDCCB451951395A01A3596C824352AD3964E1EA043B2984A0535EB582A436 |
52D407955381FC25504050CE822C05A7CAF077AEEF1423E827A216E060B3BC0C |
06EB1E35F69FFFF99F3A6C3C0C95F8C36EC41861DB72CB2D639149CAC389EC03 |
7F858EEBE848C8CD011CC5CC5F2C71A6DDFACC99332FB9E4122AF34C9C843DC1 |
72CA283EFFFCF391146E12E03801D3A28F012907179042E957296FD18C243DF9 |
E493D1499A433D977C91B973E78E5455EC4C33C13AB62F019928A19A59A9BD4C |
F85286F5C6E9B502AB063ED8EA50D653D84C8D5C8D5A1C7F22E53DA8F5085B6D |
B5150D2ACC89A65B53086E051C475860FBE24D7ED69FC8703B8247C2B880A7B3 |
371F6B15DC82C2CACF941AAC38661F907ECC50AD1DDE27219C5A5E164C93D1AC |
4121A22FEA82DA09FA22E790398FA12AFF1C4B44341EFD4F7F654C6C561F260A |
F02311EA68EFD9146C44EA3C816CA758B0C1A3B1F1B4ED19EACA46670D52BCBE |
FE3EAD7D477BC701330FD44DEB519CDA92E5834B2AB59681A563AB4B6BD5F2AB |
CFBEF6F45DF73C3469C5A49E5A5A75CA84850B174F98307E69DF7C29E3556A1F |
AF4DF85DCFD271B5D4B574F02DCD757BE7B49EDE775BC6F7B42E6FEB1FE82F65 |
254C5E265C4EE15F5EFA2B31CD3A2E49276EA02E7C2943CAF2AE9708388E8F7E |
95B38B414C504D3386499105F2D414729F8523138F796A8A4513B8E2E0D07B27 |
E5857914C545218E11E9B3C075288867AB2382534EF9A7D95E6FBDF5B46A6C39 |
22701277FAA4BB0A462CCBE8096C441F86B5F798C39E3192646D8156803E5D33 |
C96922E2AA4F125DC395D4F8E7CD9B77D2492711B6D4F82582EEB8E30E083D30 |
7669EA0A5F1BB3C441269F65D25CC46CA9D189CF2CBF05329FF8ABBB1239A568 |
C888A422CD4F7D82ACDB34879A5BED0D074B4652C05CDF4811027EF178DAAD92 |
6F7DD96597A1A19DE00014421136B43C9041D9AF2D28E018D6D203CA28E72CAF |
240989D6047B17E311F27A22AE0EA7783939BD24E41CBF45C099AECF8D1521C7 |
001FFFD9CF7EF6BEFBEEB348D5826913A0D578F3C4134F94EFCB93E82EF25365 |
308EE201E37C801AD3451CD884C48305C09C417E696C16790E60326097BE6543 |
A9C039CCC43D7460F08911AC7C9183AAF775775D70DD75D7D577A5CC4C1740CD |
B4BE15034A3A065AB34278304221E80E66167552E3265B29685FE818192A4B6E |
14B1B7722C0C40DBB976AD5075DA2C028CFD436720DD4C64163525366C61EBB3 |
C108CCEAE7F5D75F5F0735BACE2D431BE8A65CFE6639AD8C0E0C54245FF8C217 |
EEBAEB2E8D811096D1064624149C60AFA96E044927A962BB26DE09C47E38F304 |
C458B528CA4BA12F217B5B42EA3BDFF90E9005AAA5F5C5030F3CF08A2BAEE029 |
7095F09B8D87E47965D49F70C209718D484BB3B58E3CF2C86BAEB906A3844037 |
5B9470742CC6709D652162590AECBE7E275A2126616D2B95A57DDB5ADBB4F557 |
F4AED864D34D3FF5A94FD5DB63D726B7748E2DB74D5CF2CE8BE3C7BDFAFC5F9E |
E8EEFEE8BB8B56FFF12D470FD6A4F5534BA96DB0DA3FA675AD6C704C5FF6F429 |
E77DF384E32E2AB5A4EAA01479EA5DDE56AA75C9BA2EA5A51D6D1D3A293AF20F |
3CF0C0DB0B57DAD383AD592A9575D3D654EF865B1DACE89FFCE3F6A0309C02F0 |
C1A19694FE5A3A929AC36F7FFBDB5B6FBDF5A38F3ECA7672FFAE61A1E969680D |
8FFF6A6BDEA6DE8F7EF4A3BDF6DA2BA6CC35639A43E73BA2F6C5ADE96EBCB4D6 |
CE98663977152B1BD9065DB808CD80ED635B66A3A4DEB2C0F41E49704DAFE1CD |
602F369229A6DC464115E13950F48FBC45B6BBBD8FBF2E03FA739FFBDCD5575F |
8DCAC1188D0CF04C82E13E51B960E392EBA14E04416D3C0D9B19E3128E1A421D |
F066D80DD3C0740B43AEB8F5EEBBEF7EF3CD37DBFA1F56015B1C6924FA2E2146 |
1C59C2005A59EECE9A12C725FB46529C263D48D7C289B3542496462186792135 |
78D481AE3F67CE9C830E3A28CB72BA3E5C5E965F42412A104F99F83E53639A2E |
7D5FD3B7F3CE3BDF72CB2D9B6DB6D9934F3EE99CAEE3D2BA202B8AF940852E9B |
C07B2BB68B421E1930261DF6FCF3CF3B926036AE613762CA1B40A2AB6C52902F |
D4836824B2539C18031FAB3DB7EBAEBBFEE217BF406D63813687A02927D7F47D |
FDEB5FBFF4D24B5975E8365DB4C34870926436CA4C4B21D6EF34120B0C75A22B |
04CAA11F3093E06E1BA03030A89961DCBB611530C125C6B0F7DE7BDF7AEBAD7A |
2EC223A82817B9C7DA5CBD36DF7CF3175E7841373DF8E083B5A06E8459986706 |
1693D936BC20AA8C0D0F5C7E174D0A361B712DE20D469C5E78E185C71F7F7C6A |
380AD6257CD1B07C8FC41805DD88D8606A843A1C1D1A2904CD7CA6DC17C701A5 |
0AD9F11B27C98C998C8A0AD179F6D9674B3542BF059ECE004000ABDA5A1B6EB8 |
A16695398F368DDD599398923CD699D2A5B07711CAB6E73CFFD59C9915F8B4B6 |
3A60344E3B079E6362D1DC9CFA8A421F71B092BEA6ADBDB7AFB7ABB3ABCEBF3C |
38901A36A89CF8D4DF521BB3A4A36BB59E85F54C554BADEDA9BF3EDA39EDA581 |
855BFCFC9E1B5BDAFA16BEDBD33D2EF52C4BF546C27D529FD3C74DED5EF2F65F |
4B5DA5D66CB06FD98A715DABAC585E696B5F410EA26E752DAECFEABAEBACAB29 |
5DB06C519D85A32E442BF552A47A3554DD34EC1F1C122A60E4B278F48CA79C72 |
CAB1C71E6BDF053983AAB6E2D4AF7295F449AF6C6157344F0B0297720FC221B0 |
20E89ABA8BD47C21746F1455161AB3F3BE16D71E790ACD4ED83388051F933543 |
E741593C941238793452081A71E1C22187B8B0574849B82CD0522246BC092F93 |
FA8D44F74689466609073E198F859B2701563BA2142EEBE763D652D2EE5FFDEA |
576FBFFD762A7C28F821A464089107002CC3E6142029E63F326BC61704F5E4BC |
78F66141586E5DCA0C6B59750A1CDB93317DF8E187EB4D4493BD531E01816C1F |
BA4EAE3E76ACFD8D084343F550E8A5BB48D7DC79E79D9E195F7365E2D681293D |
B06E2F11A3AB6BA960C2732346EE04FB81A39D05DE7C834DF072F43FF14650AC |
5C9C76F1CE014B8EE82BAE86E60AFA1F1C1A2AB3D02529DE0E2BC6BBCD1D6F9C |
12DF72CB2D351284B851A91877ECD75864620F38E5E485663E22E465DE700D58 |
8747EAD955DBAE00B351C6A18560E580030ED061D6AED2E4B0B438D6DE25A6EC |
A8E6F4E8DA5274D68C0D06A20EB6F665EFBA2D173A866575A1116616A11E8667 |
A27F66D869E618BF8D02DDAACEF8055EE40B7C200DDBCE867684B4F969D652C0 |
F006A0996D1BDBCB079E2BA3753803DA335FFCE217AFBAEA2AFC5A5D0DE3A310 |
608C1365E0BD4F9D66957A4430DEABAFBE3A2C6CF6C5E3D18844602E2976544A |
7FD5D83875B19516FB04AB99B5B6C095EC933770FAE9A75F7FFDF5460BC68272 |
5C6DB9CE14B64A62AEB7DE7A2FBEF862A435C01CD430A89527811D4B35BCA5D9 |
5D3CA9FE97A091C9C5D2D79D9B4617DBFE81FECEAE7AB0E1AD77DEE6BB33F7FD |
FA9A1B8F79FCA9BF7D6CDBED572C79BEB5B6466F7FE79F5FBDB3B3A5EB9D57A7 |
DCF1F31BBBC7A7FEC55306AA69C294B7162DAE337C541B5C13DD63C72E5FBCBC |
CE0B554D59ADB3A53C60783348345D5CB72BB7B532C27A41546DE57A119F40F6 |
1111D5234BA1122D2021455C8432424D9164BDBEF2D4534F4573CD4AB7D90F46 |
B7156A6CEC01BBCF81FD5DC82B4E3AE924DB64CE7738E06F53CFA51FFCE03D6C |
740F058DFC1A6968D350DA0A9FA3E6171A1197DA9CF3A490EDCC18ED550BEC22 |
F88EC6721A4EEC2D8AA033915F3567FB0152A4A7E63A24AD5D166F401F32846D |
ECE60A4E32725E242D1D78232D8A7DAFEF52858129A92F9A139069C1C07256BE |
94F7F83186D1CA68941074EC1A9742CB6DD60EF56CCC170A9B1571961D24B266 |
40EE16348886673A43471C9E07240C46D8461F93D7AA8DBA12B3625BA634B4AD |
82CD9CEF7EF7BB3367CEFCFCE73F7FEFBDF7E2EE10FD5B679D758822E2259B99 |
C83BC9B9F1885A32E312DB488E82448FB6F5F9E79F8F0F4DB484F836AA9132B5 |
51080D62FECF2CC42E5AD507E44F93CBB1C03222CC7693B50E16A573C0DE04BA |
9406864127A12937D7D5BD5A099FF98B2FBE586242239178759BE858D8CAD6A4 |
3B4504E2A6A1202C4D171D217505384B23774CB3078C51864FB3C9269B68E68D |
D77594180DE44237A2D0707FEA49B7DF7EFBFBEFBFDFFB350DF5128CA488CD91 |
C8EBEBC3F25F655791B3741F5FE2BD517F1B1EA94BC9893CEFBCF35C4AAF6B5A |
4E1172E41C6A6E310151CFD449A3985D6E4E7F4C62C550B615147096D3C8212C |
4A39DDB4361E99753C0FB8D8405D0210336735B958C48DB3986C753A371354AC |
35AAF55862AA419C409A3D7B36E400921D9C028EB72E42DC1E4668CF4F44693A |
897ED4514769836160693F3CFFFCF34E4662D47A32E33E41A5B158CCEA99679E |
79DA69A791A85B595EA8D52CD773818B9735A8831BA2BCBEB1176603A577BE36 |
E3E0B1E33ADA5B174C68DDBC32B8666DDCFC579E7EB5BD7B45CFC2F137FFF857 |
DD6DEF2CED7FBBBB6BE240256BED7B77ECB8AE854B077A6AE3EBB0E7F446A923 |
D506EAFF1C23B194AC67731A432D97CA752C74C061999D1BF915BB8A31458523 |
EFB021CFA82BEB0A1897C346A1CDA71673404465100B6635F077F16652E8069D |
421012D8A963CB9182B114DAF142AEC265F1326509CD9A35EBC4134F941DF6C2 |
0B2F7029932E8D14828ED96EBBC2E49BD3D0AA01CFAAABED8D24B005E307646C |
28A758AB934258DEE08FC83BED61139E8D7D50F05FD149B27165B9024D651B9B |
3A8A0000A82B60A1101351284559145C0B687A6B5012B1802281E3202E8655C0 |
DE7BB23E1F78E081FFFBBFFF233D6FB58DA235352CB29A1CB6FB0DBB72077F0C |
873BCBAB04CB7963F56810486850EC6A238C4DB27275D1589C52A4A475A4C559 |
015F37FACBFB2622E0298CC15642D702C0C69F8830E9534E39E5D4534FD5BD34 |
051276E69F3294C9F96D2B12478178452ACAC2C6051F61154B3617CB4E6FCA6E |
8045D987D93452C49C538E94615DB5A5A4BFF5EB873EF4A1471E79C4DD791DDB |
27664060C45E5D4BDEFA10F18709A967778D7204437112DCEA2BA25B3DDBB540 |
DD9542EC2EE2D1AA79CF2242D3C3CECF4821AF02CCCF2061C48DCFB9B763618D |
DC2DD8E85C1D802BAFBC92BF4AD06B5FCA5ED19F70647535B0C4167C84EE5D38 |
48021BA3D270247CCA684BF9F81951E92782C19525B0D5283978C9259720D631 |
38CCF6EC35359AD47E06C9E39867F5A4551B546BD688C6FF03F22225664186CF |
046885102BE2DEBD5948B51C7DF4D137DE7823D3154D1C0B472CF4886920C588 |
6C85F0CEA20151CEAA596E5AF7678D621BFA76CF98314313A579636B699CB871 |
B2D1A307E01C902B447D4D77A98A8C7D0589E1A9334144CA837BDEC3843DF0AE |
0A2DB65228AF4879DF657D580EF419679C418B434C67B7A08F0601B3842623FB |
43504123D191715F778BA3421C3B0A4042293102A46FC938931A6B6974F1DA6D |
B7DDAEBAEAAAD4C078534BE6C88A897D38B0DECC2D79137BD61DA31C2217FC51 |
8D596FEEBEFBEE975D7619679CC78FF5050613701DFB6DB5463B3B248CC6891B |
6A0FC1F5B858DE40D5B2D00911BFC51C7994997973E2F417206FCDFA221271D4 |
02151713AEF3C2E9D868A38DDC3E3CE5FEB1371E3F9842188C951FC483B40BE1 |
0D066D91B68A8E98934498655C79EBADB796A322C155C99BFA001A2F38DCA929 |
FA42A6091B88C0808579662165C995054A8A82021E69C38DA480F1F3227E474B |
2B55C703E027595FC6D89D69E44C7AE01EB4DE04B8B3163A56C0B5BCEC645805 |
038C0D2F843DC17D514B520CDABB34A9E5BCD9A44580325A26946B3AA9F6939F |
FC64975D76493930D5F06FEFCE9493AABB588D58A8CD4CF937C71D775C2D2F16 |
22B4A80F94F326390573BE80AFF1AF2DA16F2882CC890AF9C75B6CB1C52DB7DC |
3292A21D6941DD8A231A07EE6AC01C4671A6F9D464CACD25B415C3B39E7F320E |
06844B57117172D7305259E655773B4FAB767C115869A8268FC8A31889653EB9 |
1A8B4844979F0192400FE4058D6443AE0DD5C8B51565A5B1BE78062ECA2AC40F |
AAA17919C3305711895B5D9608331BC33BC1406B4DE3BFFEEBBFFEE217BF58D1 |
78A586EDAF4156F36ED0D1F02AE5844195D04C020FB29AF7F0B67629E79D70B8 |
2C4F0D0D93FEF4B39FFD6CA79D762292848963DE92BDF6DA8B3A280DE0E73FFF |
B9FEBFE79E7B082DE017924005708478621A2D223DC3D9507AE1B8BD1D378A58 |
106D15EA67A22D4ECF73A07C313962B83EBB91D8A9695528518DBBC833998512 |
5BAE76CC31C7FCD77FFD9737271CBF696490146A128D1515705406CE9B3A2845 |
0C166BD2D731C22BE5902E2C784DB28CFEDFFDEE776ED5EA59F52E2AECBD7841 |
9E9431802B8607431B4067F680030E200CE96144A336DA0491D0C3EA5C63FBCC |
673E73D34D37C580198611453811D511A7B19473415BDDF0838674F2C9276BEF |
5D74D145D28E1ADE0F7FF8433D784C1231BDFAF5F39FFFBC4431810186641451 |
1492848B887539D96AFF5EA70C7A4B1B76F8DCA438E527605E78AFA69C0ECC6A |
98C5728A0DF46E16CA76647865A5A67AB878C566D59B8D8A8C6F9E505429D124 |
90A584F2F0E7B4DEC077B39CDFBFD4A097232AA8411B54A58F7DF18B5FBCFDF6 |
DBAD624D2558883259E80C3B3047008841C5BC053FB8DF3B45353ADEE604AEE5 |
74C72E18A056C4F034D42406A0EFE876D329541F3AD2580B1D0FA9E902B08628 |
21EAC207D8B89C559F6D439C62C149CAA302B5BCEA3F560067D97BD0F7F7FFC2 |
08ADE46DCF6B39134BA4FB61B9012271B02585356C0B08E02136C5F41969E873 |
CF3D577B5A7F922F8888C73A895CD044EC093C98D44292C251475A23B8E2D992 |
D47B3D86CB7477E90CE06691F94B321AFA2A2AF6B4AC2472AA39ED286ACC7CDD |
F079610D14425EDE87A5BCAD21DA5D1FFED4A73EF5FBDFFF9E39D15FA5BFE9DB |
931AC619F5EBA506079ECBFC7174B82CB850ABB4725327C4080B30BECF6E0A5A |
1F99EBF3AEC7AC8526B21FFCE007255C747714BCD3D2EE67E5BA14FD558ECE93 |
4F3EA90D70E79D77EA2E50FEE290F91490B024C68E1E35E30128D6E6AC419448 |
60DF08EBC55E7B6C7E9C6C302B7E9072682147DC9B0B1A4B911A4D2753DE708C |
E3E081B1EE4E04EA7FF686C5744C2D8D72640AC1AA189CB41D694E34AA8AA55A |
7EF9CB5F82662085EC839C02DD07D283EC584BDE95162F303542740618C7A472 |
6968AB832C27BEB065669EFF6818C5106E96D3093BB1C524E026C5BA2C7F9DDE |
44A91135B1A41DC9032ECC6741B09B832C3E85A32F66E97199F2F5D75F7FE289 |
276EBBEDB63FFEF18F53F0F76CAD22D3625837E671539E309694C05533FDC01E |
7BECF1F0C30FCB92B67CF035E3C12F85AE39B2961E7AE821948B239DC380149A |
0F736AAA96FBBBAF68D1204D705374020D07882F12871C755280CCA05BE8E819 |
76D8610749AE98F224BA954600DD0C3B30BEA21B6DB7DD76FACC030F3CE026F6 |
EE821E7B6214CE703CBAA5C0FC99F27CB66F0410B1B0A5E201C872EA92B85458 |
8BB415E3C06B24723266CC98A15F09E3173C2DF4B1A96A228786A39136C0EDC6 |
FDDD856B96262DA15BA57D3B0428FE903BEC52E11353742920301DA5D705D75C |
734DA916BB380475BFFFFDEFEFBDF7DEEC0AF06EFAE215575C316BD62C295DDD |
11EA0066B8904477A639053679CFB94BF448E70358D591F0202FB9E492934E3A |
C97486B5BCD3976350DC1786D42CA7CBC8F26E0DD1F82B38DFDE30A07659596C |
6A9D086A46EDDAC6738187A7F974889807A12822D691DBA4F3066006B2A6B23A |
4BAE52830857A6AD2C09EB2D4907A84ED658630D9938061060FFC5D98EE8C858 |
1B9D1A502900BD08E8425F3CABEAD877B62004FD3F4F6DAF85C2845AA8C78D60 |
A26A5E11EBC8165FC70401B86EF16A1AFC2CEF166029E1A4A04BF953201828E5 |
34907F372258D80C4E06C79E4BB012B22536D964135260F61DB997A38329F76A |
0C96B6411C07EFFB1A8DE130A12BC549BB424207D0C4FC4D05D72B7A8DDCDD59 |
39D35EA2A59864A38591574C1446461AAE54212AE042F036E54C761620884762 |
3FC8225A12500284F0C902B92CCE40D620BE4821F6E3D88026507BFED9679F2D |
7483F55E25DD6EA00658AD880F20AA4A12DAD9C91442CB9AABCD37DF1C125F1D |
F38F7FFCE38F3EFA689D2BA6F9519B256FFAC75FBE8E6D25234239241E9629CA |
780624B8257BAC4F350EC892B470E60B0778D881394AA359D66748E31BECCE30 |
7064DD7F29925A9000E3A6003DD88566EBC60423CC481644278D9A45CF6794C8 |
6C56BBA4067C313334B3242F8E80E01445D56BADE37362739BE1C5FC04A7429F |
2F84809A17AEF08A8993C8F690F206537A5858C0806FE0B0C2C8CDC49A399634 |
672C8572FB645D16C777DAB469C4A98038512A0689A3EDA494670DB49BFFF77F |
FF3719D91FCA42620C164F37364D338103B8744DBEAC01FD15001DE07CF0833C |
7E2493B3D7A5F53DEAA8A34E3DF5D458619982F786D768E6DB827F800BAEBB5C |
7AE9A5C71C730CF10C824371FE0D47AAE54012E8739B45731A9A85AA36113218 |
DEE814F236DB6C237160B996423ED559610F09BA1BF7DF25B46BAA57607DF8F4 |
1A98AD527A75E8D6281822C058DBB5A164993EBFA6503506D3712607B491EF64 |
01B40365D940A8C741461023A65D265E4861F86A91B8DBFC770E1AEB312169E1 |
F86010D801687E453BAC703C4D470ABCD63DBB2C9A52A835A8E5D9599B5929CF |
A319F1EA75E4A10C7465D5087EBAF16535EF639F05AA735656FB7FCF3DF7BCE9 |
A69BD0C4293761A37964AB944364052C4773EEDCB929F728682E42F24BCF224B |
0EAB22E5F677413E171450B3F44623005AA40609081B206AEE3B7DFA74506C2C |
31294BC9765D9322556438C7D9191986F4E52F7FF9861B6E70FC35E59835E2B2 |
84C74C20432A9A68AEE6DF36A88933239331A283034B068D85E3A01583B7FE79 |
A41CEAFBD4C7D1A271690ACF40508510AE1E92127B030BD9DF9244679F7DB6DE |
0107AF8F515A078968ACAD6C5EB0D13DE0949BEA51B41153C2F574CA2AC67809 |
56000071143D855C8BA489D6094BD0354BC4F468618BE42D58CD6C5FF30C6330 |
9AEC14730FB303E9131183165B31D9E039AF068237ECB56A4E1BF23E17AEF9E5 |
7AFF18D44A79584C4B23A5B5B2A6250700A740166DCD11F181A67176E92D8138 |
77FE907A3BF6D8634F38E1042A3E659DB845ABBE8BFD7ED86187C96906AFE832 |
AA9800CE4267620766FD14C71F7FFCB7BFFD6D9EC5782E0BE868B702C3C1C825 |
2E8A9D64628118DB88C6908508961CFD839144F6E0294EB098E01691A68009E1 |
EC98A5C1C41A36B3B2BCA3733CB3C31E0ACF4C3CF54831139AA6C0888BC238F0 |
C0032FBFFC722DB71E99E40B6155B70BA4EB1CA2476FFEEC673FFB8FFFF80F1F |
2266150B75EDB5D7C6688BB18A91C64610BBD4206C9216D720C194E94F288CED |
B6DBEEC1071F7425BA4B30990ACF09A11A6EAA15993163C6430F3D2469F8CA2B |
AF909602700BC6D51D3E1C6E6512A21F3C929C8C695733BFEA0773A91A1D6D97 |
8353A64D08140BE778580F38DECB0D5AEC9FF8EEACDD461B6DE4F633519B7AF3 |
78A8605F5A4237B95843E8CF131444013B8A4B29A69F82C572B09319705D4021 |
1833ACD8895EB85790638B1183A0C0C1D534EEB1C71E0F3CF0C0FCF9F3C9E545 |
5B8DBA67774F6795233E4E96A2BE8810A68CD684A088F79D76DAE9AEBBEE82C8 |
D60C5C1E3C13AED9FBD39FFE64056C691985A17F5E29AC46CA01BFCF50F348AF |
68D1D472E0C9CC9933AFBBEEBA9443995268930E94DC5C80D43E450401273CC2 |
7062A4E5FDBF6A7999135A81AD8F1225590B63976599D98F7162304B51C00484 |
49AA11B2B0DFB0F1C61BEB087DEE739FFBE52F7F49E8C37890180C8CBE292841 |
E91B170030608E90D5702D102CA4E04FB38EDE556C3E820DC41252EE70E3408F |
545F38CABC455F81A31E63037E19ADA6BB473E7A9C7B2EF2F5AF7FFDFAEBAF77 |
C30F56C45D9F4DD64A7A8C0F648DCA69B23B0EE47247F471813CC89BD9049FC4 |
6048EA1B46A73FC9789F376F9E034D7866523F7C5D43D2A6FDC637BEC1F6D3DD |
F1595D7095723C4141E5F32BD11D725759600D2BF083DA53FFC4273E217D4051 |
63EC8994421F9828925CEE8950C369C3FF88C7306E8096BC77276294F84D2CCC |
E3C5D3190DC799C550A67685DEE698658586547E52A9732D13D98A8B2FBE5886 |
35B97FAD2FF3ECD4899F6B58EF876382BA8A547FEC16875BA8BE73DD6396E3AE |
CB8DF603911422E5D6333207EFD387D4A1F588FC8766D5253DE0A54749D94405 |
CC636AF9A45C3512F81A4D4041DB37D691883ABBC20674B3026690FC1C6BEEB9 |
4896179E62EA7DF2939FFC9FFFF99F587315239400977488CC8FE178759637F3 |
B0C7CC80091346051C0B2ED65C734DBDF9E28B2F72A9CF7CE6333BEEB8E3B7BE |
F52D04C54A0AC61142D023193408C668175A48AEBBEEBA7A5819AFE007534E57 |
A7AF407418C34EFED5787200348422984C5395455FC8958AE07EF4C233C68520 |
40BBE5965BFEE10F7F28A46B9D1C6156513DBAB23E0FF86988EFEFFF0B9C76FF |
A89E2B24D5799259B3665D7BEDB52C9B067DC51557ECB3CF3E7A80F5D75F5F66 |
17FB8633663A319D7C0D9A8E6F6674A2DC132B350E7BF4258C328B78606AC05E |
8848648D6E24918AC55429E01AD0CA2869A2A02EE6C3F647CD94432B126D0849 |
A5D8B411D412FA0995A64B69EBCBBC920F8722815D0FED45920F6C088D42252C |
22082BE526AD4B45390F56C02E8FB13CFAFF5B50D0223104CD7E22B887FC655D |
3033B5D6175E78A159DA356C4D0EC24E76E273CF3DD75CB562F1C77550F0B26A |
6FBFFD762DB41FD0C2977DEFEE6395D0FE25DA2540544E3BEDB4B973E75229CB |
4E8BE168E7C922834F04FB145A086311BAF69DF31C73F3598061479C4B0A4627 |
014CFC305F87746FE47C8ED9BE58F7852F8E435FCA5BE0B17B25A430640B5220 |
C2D76D8BF8B99047FA559AECE5975F76C1AEED0C7614359D8602301E52336E7F |
02E1B0FEA75B067120CE2F5D02792860748593CBA459FA93B0C7E2B19776D041 |
07CD9E3DDBB1D318FE89A3E22CC8B8DF7AEBAD81FD4792DA5268F9C7E970DED7 |
350E86893133C80D9FA3422C2DBE0A0A181B820A284291CE6AA36BAD1A0B5DAD |
526E5B174058D12066F56B392E3505B58A49BADA6AAB49D6BBF74941503B578A |
1502CD452DAFD4A8E5D5D2B5A1E0F08202D6FF5A0E9C07C69F35C85F21BA623F |
3B57DD4C305250C0CD29D1286DD2D04603A506C1B20E2C46A7992DDC62C795C1 |
293786701220782905067BFC691C9EE86B7992E155B4A58285E46991A0D3D12E |
606EACEF51A9110B5D97453136827E76CCF01F12D0B5A1C0631F7B0462CC48F3 |
839B15A746EE01C4291959103D60C65C8886C8C303E03AB1DE340597C24F6499 |
455818D03201F0E6BA616610F2108B3F1B4D54F47EED6B5FDB65975D64E3C861 |
F27DF18AF4C94D36D94456D8B0CE10679B360CD255B546F99375BCAE20352337 |
8B7DC0424013B1C61A6B1C71C4111AB6E4548C3B7DE4231F79F8E18723314D6A |
B82C6E8EA6D7565B6DF5D9CF7E962A2047633C4BA3AF6F3C0F3C88D688093709 |
33567944C9392651CB99777C66B246258023AE3CB821A0DCCB4CB62D792BB494 |
93917184B07F0F3FFCF0934F3E19FF0078B94D25D6945387A2A584461F8652CD |
366FCA3D06B478ADD16E057215F05906ED637A3BC86CA2BEC1BC79B399FA39D5 |
081D27F3FCB29D115B3E683229FD2476A2499E3163868CD4C8F36739187D5F2F |
4D96A352BDB21AAA9CCBF9F3E70F0BEFF4AF56AB4E3D72BEE4BE48C36977690C |
2E4C2078808B8C1D46A4DA58300F35CB8BA06A79ABDA98E2C5F8E0D670AAD88A |
753DA126D663733418C79DB437D698EB7674058D596F4AFE6AADCDF6A7E9B520 |
6687D8FA2C05D2A10855AD0E2576B6FE230FE5F8560AA5C60EF85773B2FE18BE |
72C2D88FE65570AEC1D286436D6033F5055C6765CFE69089473DDB6469F6A30A |
3F680C9A2502FED199CBF23688647F1C75F709359F46ECD69572109933659233 |
DFFEF6B7E940E59A521BB82D79CF2BBDE9AF007031181E1817093B3CC0022D3C |
F3A0D122DBC1664669CFBD88CF710547CE52E8F8A903A28BC4500D09EF02FAAC |
32943F9FC7D78468E74B2010876393F0954268A1F02AA474AD17567EDA359A66 |
C67F9F841B511CC40BA660C9163644CA1530FC851216071E78E099679E090414 |
45ABC7D359929CF2BC13C924F08B596D5735CB3B2A461FC51BD442C70B9F0D57 |
37EC1E88C71E7B2CC1B1D85A2706645C504BC4836094DEFFD297BE74CF3DF7C4 |
EA8E38DDCE5BD32C01830368282DBA10827407C373F5EEB12A42646B9BCA0EB8 |
EDB6DB52C32F775826623B21962A87E69D595E26CF8C554726DC88EBE5177AD1 |
243E31CC18A9DDB4B9F5264CA2CC9ECD20D42AB94344B9F79861C0B613759E4F |
39E59448E367802BB6B6B68A973B35E25AA858630E7C66B05863FD5FE1C55E5A |
7BEDB5F1C6C8F01186BAECB2CB66CE9C69FA2AC6A34D2259536E90FADA2FE749 |
231539E11CEA538D568D8D5451F02827A961ED252DA5E42FF9BF96D0131EF3A2 |
30786731EDEDB199498D6BF2A302B6414CF20C89EC89A248C1BB022E14AEC942 |
93B7B3FB42FCC0887A6D4B643A2135072162328C489266CC6CDB9A5B39B2DAAB |
1AD282050BE80E49FE980E667C3EEA2ABF7043497FF8F35863514D124AC1BB35 |
2F5B14E8D1166721A2D319B318EE9767AA999443826B0D142ED163EEEE52632F |
4A0A21285C343B3CEE6E223148A931D12F2A08304D28E0C1E783AF2A2623A202 |
F6CF05913BD8D457D84EA4710F29EF2BE3804A2D6FF11E67DECA095B41CFA50D |
A303824CC34087ABD8059F18B559603463A8D123F74EF609B279576EB046BB72 |
CFE83C0FCC9929801429579C12A73A59924BF556988D49D3531F7AE8A1BAE095 |
575EA9F7F5ABAEA65D873968A00C3B04EB1CCBC991093D35C8245BC046C5A691 |
89AA0ADEE97BAB63422F1E63C71D7794167168F7FDBFAC809B01A8A929BE9D72 |
03131C8AF7A2B3A10CC09918434935056E980899087677E4F1F1900846B1605A |
C86DB6D906B4451A2E645D80F2BB3D561A811C0A0A057B6FB1474A41E4F12B15 |
8A967A20CB220607FBC08781CA5D0EB9EE12890BA81940DF947256E73494E535 |
4A07DD5126059585B51C583E4AEE6A985DD2D0B5A5A1D5F7FC1C8923220F11C1 |
862CC77F926EA4BC1BC982851B192B6D21ADBBEEBA524238D6A96194E8076C1D |
AD8BF6866B12B419089795720274A440AD510CAAA7D69BDA2DB41521329FE598 |
35A7B111D311986D1007FC1EBA820B8440F9EA67288D1C08C181D86EBBED7EFB |
DBDF82CF241A118908B0234B3957700A74ADF6A86A796749AC8D6ADE1179A4F5 |
72C4AF3CB433552C1968DE8D295464A5BC2DB4768E1E0A5427DE8943B5B8FE6C |
605FD9DC849AB73973E69C70C2092606412411876026ED1FE82258AEFAD6B71A |
AF5855E2A52CE5343524FCC08E02572C907880B4D7AF12B5FA303060D41EA3CD |
F2AE1EC38A457BED862E3ADB8AE16BA60E77FAC352441C399E61578C4002900E |
8B8EA8B69DAA3453183115F6B68FA78D72B6E5DCB9732FBFFC729D1D53468FA4 |
809B85BED5093722064E08C7090EBD6F2C0BB6266B07E722EE38401CEB452E1E |
33AFC81CB62BFE5229341CACE69DADF10438177AA879F3E6E92CEBD1A4DB74D6 |
343C69746877CD40B7CF3EFBFCE637BFA1434FADD12A37E5FD2D08D2904D9049 |
77C30D371012275410390F6C077B846E73901A0914F24A59CE5C8B23C482BAF4 |
A365B89E63D6C1CD86CEB0BBEE3DD15ACE49FCA1C5FAF0873FFCF8E38F17CAF2 |
DECFCB35E9DECD2947D93507F4FD8AE8762C6B04288707439218A66D52F62B4A |
DAE8507236D3A74F87C5B09C3784F20E884D55477A49AB55735620A0B92E42C0 |
D6CE1A38CC5AA37D3A5FA19B070B89C47160CA22CFE7E4631FFB982C0076A1D9 |
371D16E65454F2169831FAA44B6DBEF9E6FABC36BAA910195B215A8E7AD37EC2 |
370226E0070480503069FFEE4649B9028EE9ED8240470C21B553CED8C09F5C3A |
9C1A411E13D0EBD9DD41D38A470F25B1AE65D2AFA858D3405E7FFDF55FFFFAD7 |
B91172798B2DB6A0693CF6A9BEF8D24B2FF9BC398C19494C475F7D429D881ECE |
5E29B4E6D50F1282679F7D3602176B8088197D6334F9DFFCE637F5015C87D430 |
CBECE65ABBF35CC8A04F7EF2937FFCE31F495069D87A04CD099A2F8A6C530D64 |
43D1DD29CFF6A55CC45BD545DF2B4A674495264792CEC48A964D9A6D4DA0FE64 |
25E7E89C09B723AB91C746662B8564732DB4F5D4074E3FFD74DA8C627970B4F7 |
DF7F7FF97C6C12CE351E98FE5A6E503F3280E38F3F5E0ADE82CF0EB1964C17FF |
977FF997279F7C524BEF56312ED34A39F19CE3C9715A78C5A23E47CED2D06C6B |
5CC108D727A8631A6A524851ECA06C62421A416772B7E6972D75C7C3D98A6E4E |
4C75CDFB51C051EA46B0052FB8B4B0846EBAE9A65D77DD95290535D25CAD9486 |
BA1997345E3A0B1CD2D8E9B5C0C3E5D88676DD4E3BED74EBADB746438489B21F |
88EDFBE52F7FF9EEBBEFB67C30D359944B0CACC07A16BDE7C2A98F0464B4B3D3 |
3B981A4EA2B92583D1DA7C6C30EF615C3025E32E1A1D7B54308CDE13ADFCAE95 |
886888D1195E867DD995B18C88D8FAD4A47DF16E5DB2E69972C2D541A70F7CE0 |
0332B4B1D635CEBFFDED6F5980F5733BC90B5D812C2C210BDD1AF1576BB05BD8 |
1169CEA5311770F7E8D6B2E2752F5D64FBEDB77FF0C1075370EE23B30F254395 |
46D7646D94534F3D55322292C51714B05EDB6EBBED238F3C12C3D7B8DDBE324F |
8D2C633C6602C1F68FF170E7BFD9B2B85C3EFC595E1A78F3CD377FE52B5FA1E2 |
1E37A5DC68153C7AAEA220E5B39CD836CBA91EBCCACE023891E38B987DC90242 |
EF5F75D555E79F7F3E4581C62747D2B894D36959A310BF4A015EE1F844A11CDE |
4089185E932271BD56D64416B6C71E7BDC75D75D34FEB2F4B4B2B4F47192120C |
20EA013D84D5680FC6A8E6949BC391921EF1ED7341B2A096635C79F9EE2086AA |
39296E6928D9590A91529F081F3D7EB0B0889ADB65813A4D32586531C805D1B3 |
DB1D679EB9A6C4BD1E2A0A070B32AE13E9708D9E8D29B43866E7117846BA86B0 |
99F5B0BA4E0436C251A54F927DD70646683078EB12FBA0C4665343C74720742D |
14C1B316AE0B28A8A8B80429F77D5D66C619D490584AD01B00796C54016BD017 |
7990C8E1036E4E2381090E5613EF0790E4101D7B53159C2D23D21171A32BE061 |
E52D4163DD481797B3A829BDE0820B7828C2BCE0E328522029ABC794B09A3F7F |
BED1C2327F6964CEF1A45B5754A2B12D37297C36338D403499C036813EA406AF |
91E32BA448565D7555FD5557D6CF30C08306C81A601A2243DE60845191C95443 |
40118F7C60F50B85BF29474A1BC743FEC851F172CE59C6FCDBA8259781DC2E14 |
CE0D3BED7E153EF95E0E982E0D3C0CA61C9BE91F0D419BF9CC3294A9190525E8 |
4AD02C2F6C8F792642949A880D37DC502E91048406A6132B27D2B5685C0AB354 |
DF95AA964071DACC322232D01297683E7E946063F570B474E4647A6B839AA78D |
782FCE25114E92F93626A2621B25E887336DBE34DB1C6C23273E6D64D8DBD049 |
D009B18315ED3B248E153005B22EAD46C9D99A6B8EA2C44116F616FB243ABEF1 |
D1F0687DF796469363329A2D795FBC48A480E142FC8753EAD8209245FA40DE92 |
AEE94E7F1A36CEAEE3F3869B110D234959E8CF8114D3600E3FFCF00B2FBC90C2 |
09C36DD86C1C33C733222625E5DD1ACC6E7DC00107C851480D9E3FDEE1A98937 |
38CEEC45893161C382F4A6D645F20599E5C612E82422A59B6EBAE90B2FBC00DC |
C9D5E7CD652129389A05C3C2E1B25A1337358F162BB9631771360CC7049A0B36 |
B92151D59CDADA9A038BD38EB57921BC10882D3A67BB1F86A72EE26F892590A0 |
915AD507F0C275D9CB2FBF9CCE1C8ED841A6016C05AADAD80D896C3A85E99E07 |
14306AA0B9CAC3410B4EA503AAC6312004AC177D88D06AEE3299F2A4B83447CC |
8895730E29EAD970824B39EFBDF5B44782214EEC1DBD45F8974203699A6115F0 |
482FCC295DCAE84884BF1BFFF9529C02CC74BEEB94019902C0A45008470270E3 |
EAD9C9D59C2F3335D47F6A1846667604C7C3309C3D4489204853A3338AC42FA9 |
AB428A9057A1090AB8013D239F6F8E3120046265A6811D40449B6B5B0CC6745C |
04CBA336B4C4DF47ECFD28E0A207EC17A722F26DBEFF9759732320BE90948D2F |
048A315305B9C051615B4840682B932F5C7FFDF5E53C71F2ED39359F25CB591B |
471859A3305150FE412284926DCDC34B2FBD44E806F161D19CF244B5399E9CDF |
F5D2163C48838189D5C0ED8C28D70730421D8ED606655B1895A0DBD90B89043A |
E6CEF446D4FB92EFEBAEBBEEEF7EF73B4E2C1BD788898146CBF798AE8EAF4290 |
C0F9BC02E3A325BB81C10E5AFEEC673FFBB77FFB375B0F4435A9D0A7B417A16C |
7C8D2D2D87DF5D8D879A8C713344369B07580A0B7146E3951AC152A27C38A3FA |
D58E5D3C2A4E5266792914E4567CDDA45DD5BCC55B349F1161B2F6BEF18D6F9C |
72CA29F6EDF40150BE5A62AAC98D128F07018F0D478A28370B84E5AE37B7DA6A |
AB279E7862658D60E365126626DC169835446A0A5AF8D8FB22B55010052BCE82 |
050B2C5B89ADB944AA604F1B4BE118ACF910BEF39DEF1C7AE8A13C69256F9152 |
C9BBC1138B022D21FB89C69738CD086E3769C67694B5245D9BF21C10DE126180 |
94E366F15D6C3639AA8C7D267D2CC1AD7531CD7B6D2827112C545913550BBFCA |
76D4E202AD770B29025DC04756B6716D682FADD1C5175FACC7677DD918975C72 |
C9ECD9B337DB6C3359514621914D406D6BE7689C4E70A4DC1B23291BC3BC0624 |
43BD62265AEB80F7AF80BD75254BBFF295AFFCF4A73FADE6CD1639B9D75E7BED |
D1471FCD333A80A4FDA039D7B33CF6D86332FD199E3E13EB71D11706A9A540B3 |
CF0932E1CC8F7EF4A3FDF7DFDFE15F7A3F6007EB1DE7FBFDF5A38E3AEAFCF3CF |
2FE492082480E2B6E876A7F042040B27D070B0582993050CA9850CE288B80B30 |
3AA241267C8DA55F317FDAEC6E8DFECAE20B8AF95ADE99A0145A88BCFF17898D |
94439F4C116C9BA530383BC7EE87EC066AC8EB34B45B192FE3B3A826E44DAD07 |
EA1F7D0600C70C975E5787AAD27020AC345C61406A8AF59B23C6CBC0EED11E95 |
65E0E5299C6DDED1983500A7823056CC30470C533FC33AC415E8F3CA3B043F29 |
1528343F662B185EAF9F3FF8C10FFEE94F7F72F7AB52833F28E56573A31098C4 |
8A972C104A8FC4E485A569FF897A6574180245E707DC2040E294578B726C1855 |
CC0021B8E3AE70E48D526CB03FBCC9C71C74D20F00494A392513C1036AAFAB39 |
DD744BDE838C2DEA99B19763AC9CAE76D249270114723CDCA185943749B58C48 |
79AAAF1618CB531E7AC5EFBFE8A28BF6DB6FBF942732DC19D0710E2C862CF401 |
24525DCE79D9CCE417F159B5A1E43E592842755AC171EC4A686697F2C8CA9C39 |
73A4BA48C7F0743444C91A507C63FA4A43BB1CA248340F581E845531C1AD8019 |
0335660E7B20EC982BF8E050F046329B333CE5958AEC1C2A8C0945A61C8656CE |
39A2A1CFD3FB32C82EBDF452DA3FC44C21837778A6395B04A6044C35007E9DBB |
238E38E2DC73CFD58D74D9534F3D152420CA18035D33462307220A5E4D6F691E |
50EF7CF18B5FBCEFBEFBE853A24FBABA3292E4C7680A52D46BCAD860C31D5D01 |
47C115750F65D968320D4FE70589C7FEA1239954AF46883071E4C91E1AC7CDC2 |
C4B9A1022493F123C66DDB99B3E5B0C30ED394FAFDD4209CD284B8334D2CCBA6 |
17A7FE8FFC7AB1BC3ECB499378B390D4F01130096BCCCD5703E7A8E39D9C5C13 |
A6A646A8D55032EF9FDA7010F4F7A97D131E309143D7F9A45C076319E1B1A546 |
42CBA02746E02CBD5EDFFCE637EFBDF7DEA79F7E9A55874DA2102975CF0387DD |
EC9F794219892E285354A28DF34FB4D639705FCD90229FD8387D0E70C1AF669E |
C291140F300AF8967529D98977DF7D3738CFE617EBA7AD49FD0FF3A3BD45798C |
57DAD8251C56126FAFBEFA2A87C14CD78452699181EB03B90F1BD104EE3ABA77 |
DC7147C41AF8A1502A2C9FF73459F0345CC87D24636DFAF4E912CABA2930317B |
6FA384563CF90E03E8E7DD76DBED9A6BAE01DC8FB365FE328CAAC821C0CE8EBA |
2DA2DC6D87B9679F3E13ABC8C0D9B21B4F38E1840B2EB8802C60AD012F808B1B |
930E4DAFAF938AB3ECF3CE89F0370D18CBDACD6831FF5DEA83D1E0CC05DB12D5 |
42DC9847F6695F6FBDF5B4BE384F7C970F18B60D1B36BAD66D2D2CC84A818AC4 |
DF2D18F529AFBF8C118BD2D086B22E4B2B44D24C16C1CE41C493B9F083F8449B |
9B37CAC188458F4562B5BC1D2C071C64A59BBD47D488EBCB6DC0914FC152A93B |
372DADA994F50FF4A7C6F3965ACA95DE3ECD6F2D0DFEC78CFDEEFFF54F079EEF |
1B9BBA5E6E7B33D53A53A9B194AB4ED87CA7CFB74DAE875BC70C0C3EF05F37A4 |
9E34AE521A18AC65A9AD925AAAA934900DA496BEC9D3577BE7F9D790B9B66E25 |
06A1C78189895888CD7AF78D2E18DC2395A3503D4188116B00A96BFB269ED372 |
CE9AC70C83A2B726CE72083733196BF6D250D33F5ACC36A9F92BCCC67A9659B3 |
665D7EF9E558B46C12D37D1B8F4D97307789D512531A004AD14C5BB5F0B2C5A3 |
2D0432D9D87212CFD5409FE9C1D3F20F17D9B15213E3A446A0CB62877DC25F5D |
AF9F02FE397601F1CF4EDB030EDF68A38D9E7AEAA9C2C6D6F36EB3CD367FFCE3 |
1FB14E0892C738A863E908492BB28802F6875DACEF74DECA15B23A8CE9ABE60C |
B35D37CF2C4A1AA82DD3010B41CC75632599F6C5FBA016DA747837F3D2636B9A |
E4073CFCF0C31895961A48F9580446EC9E2F9A13C0D17CAD8164EE0E3BECF093 |
9FFC440F354A79D569A79D76FAE9A79BCA8042BD3472837ADD4BEE82DC23AFA8 |
6BD1A2F39185FE272CF98C1933BEF7BDEF41491F755BA9C1E7229DE73B6A5A10 |
3A7E7C3B5E365C22D281DDA3DBC9FDD575008497863620FBBB0AF8ECB3CF96C3 |
A71F8E3EFA68DD454A549722DA36ECE79DF24FB99F8757943508ADBCAC482E16 |
C53A63ADB5D6925033337E243672758DBD43FA9060BF17CABDB250A80D2C48F7 |
DA77DF7DE56B624610A2E7B039B34553010784C91190D22EE554CF6C2D9A2162 |
4DEB93B7DC72CBCE3BEFCCD850905A383A55933BB0DFB0E79E7B6A0249CDC4BA |
1D36182A2AD629F9A1BCCF4B79C76BC4349566ACA9AE8007030708A1692B7BF0 |
3E05819882351C4B5D4B0DF67C8463AC572E94E1998017B30C09E58D91E5C455 |
3EEC9CC4238F3CF29C73CE49B92F08C2DC50559F978202DE6BAFBD7EFDEB5FCB |
BF34BA9813412BF1BAC478BBBEB55A6493497065A5D45DDE74F2062FBCB87845 |
F7AB55D9F92D1FD876C74D6BBD0B6BDDABF5B6A4711F587D517F7D176DB4C61A |
CB5F5DB0F6E429B5D6B68B4F392D2DEA2BB77557962C1FD3DA31D0DFDB9695D3 |
982EEF103C3F06A93B9A96C0250C18D9C3967B8D74BE9822CC9A18DE8BC64D4C |
0321754B3945923F4675107E9E4BEA238371B302763A2C22399C74A79A2BCBE9 |
AB885DA177890A989123856862E4ED1A1694949AB8BD6CAA124D344F649617A1 |
11E8065362C5C9FEB7FE2B0DADF8470DE946B367CF3EEFBCF30C4649B98ECC86 |
3647628951903C9484B9C40564B7E506CD24F75D7BEDB5F5A451804350C17759 |
CD68017829D10B8CC405020E5C95F2AE1899EB9A5DA362C48796815BD209555B |
DFA106174AF201448923156EE7542073362F4425F4D2719E63DEBC799A050E39 |
7D9BB972CA9D66A6CC9D3B4D92EE6002268F9FDCE9580E4CECB9DDFC42E21758 |
8AD2C8A8B672835D164BDF95793626A4F5F5455343A440F3641DC0A35542CB42 |
4D2F1C752CDB76DB6DF7E8A38F6AC24137682751248778658B386C45BB24CD5B |
B494B109FE21058C55C451B1953ABA07CCE1311F10EFEBC10F3DF4D09B6EBA09 |
C46696338A207F817818FB9D1A96B89129C059014158B4195FE3F9AF0DC503B3 |
AD299B4EA174874894FD5AC892F4453A0FBAD4C11DA81CE9212ECA3EB7404451 |
B926C79BC70D12A292033BE6B9328F4F846C0004D5FB1FFEF0871F79E41192AF |
6EBCE1CA45A6CE6E280051585FA4D7F5BEE699743B006637892B886317B76401 |
D5CF53736C7DC689F96B06B4992917B1FC35146B24FE6D03E8F05C8D97E4E0F3 |
75BEE5C45335E786C4B2B4F487138AB0613D8CB47CD9F87175913AA6AB7B79CF |
F231DD0D5CDB92C5B5CE495356641D69C2DFD69F3F7EAF693DCF6FB15A1A9C30 |
AEF6E6B272A9A36DECC449CB1B9C68AB4D9AD0DD529E30A6BB7395556ABD2BBA |
0607369E3A6DC6A7BF92FAD3B4B163572CEE6B99348682CC180875E68BEC9829 |
A5880E16D46D212CD97C5E526E62EA79097A45239B858E99FE483087D76BEC1E |
6C5F70FB6872D03484850AD1F5C200E279B797C62D4CAEE02084AEE685D66064 |
6E7EF4A31FBDF3CE3B4D06093F97AF1C3DECD408AA49243236936481156846F0 |
C497B9D09D34A1EC931DC21761D93471B786A79D233514735848665BBD298F47 |
3A1EC384475F4BD3B2E38E3BDE7EFBED29E7D44C0DD623F74A72D629C23BEC10 |
BBB2573FC3D990F218552D40C9EAEFC436679626ACBD29840C284DB9A5835D66 |
E22EDC6A14B00599D6494E582C548DDE127941568E5A1147A4EDFA5898C6583F |
548E969B294F12A0C5C9DB81EBA148401A91782C5260A4F23B6C193EE030C028 |
0408B5BCC30433A651E9D91D47F5C76807C6CF2E1C2A545216EAB55243FD6BFC |
F2921F7BECB1943B4C513F1D72C821175C70013167DD1128BBFED70523251659 |
B4F48F28E0E6F7311E63E025BE4AA1312AC25DC3D0FB5272583CFE2E0933BB7A |
3EF931EA9B42B2CA46B13101585D18162CD34805EB4EFD128F2576444CDB0E37 |
FF9F7FFEF973E6CCD1F5491FC4788C140F4DF4409E5BFEFA2EE6C3730229E5BD |
5A23EF2EEE2C9A8634B9C7C07E40F3FDEBBFFEAB7C3E09534D1D52863B3A8950 |
CB61BA64E06EBBEDB6DD77DF3DE534B94441903BF614E332319FC61C18FCE52C |
807ED86CB3CD6431E0FD6BAE00BB6EBAE9A67FFEF39FF55C1A09602B26D6A056 |
8C66D7267084BFF9CD6F5E75D555FA0AEB2E693063C68CB3CE3A4BB3AA370954 |
443E8DE6CD690C6A0AD88553E79E7EFA69A78DE9E8EA41132F695C21652DED63 |
06FA3A2A53DE5A65E6B8B73B7ACB7DD3D658FA89775F7B6AECAAD3C78F19DBD9 |
DE35D05B67D96CEF284F993AA99A55BB7A4BAB4D1DBFDAE4CEE50BDF98D2357E |
8F2F7E3D49A2B48D49794D0E07161968766B301C887EE70B0A1AB7507BDDBC33 |
DDFA459B419AEC81071EA035359112AF8B8319594EED675E88182EE275F2C927 |
CB81E15839146C911BCFF5B007DF8819EFE4AC014EE6D464399CD63B0AD11753 |
BCA5A646F4844F34661A952E58B02092C368F6D8BAC6FA6579AD23A72C924F0D |
2B73A83E30B78F149E363F9420084C0D927C1394995C33E52957B8022D85B8D7 |
3AEBACA3BDEA7261539BA5DC5F4A8DB89D76F2E9A79F7ECC31C7DC70C30DDA1E |
D8D0E4269813B42F17F7757C465224C028E53C1540EC98915A8EFEB2390CA847 |
E3C632E54291D9959F4D9B42397F0A5DEB4B396F14B80CF3D4E0D6E0DABA3735 |
063E4A519BDE04D9EC12C2D72EBA77330082428E1EB00F08E2636AD1946AD883 |
41850CD60D76136579239551B1BA6410B188535E93B3E5965B3EF7DC7374CD23 |
40570B9855DC74763615844C38EA4193E948972324BA0E2AC1F50F0E0A91DE4E |
79936ADAB6939271E948FA4714B07B45C032E384C2289100DBB011CC19B9E8BC |
8B389C12C17A2E66C6883F3C4B7D9D640C7565585130A2386E59E0138852869D |
CD6E89D92C6BEE94A7978C592D8428526EFD1053420246D64C6F0F86C15A6050 |
6B4D9DE341B1A5DC9CB57555CA995923350777977CC79EF39B345AC1B7B0931D |
212DD89A72E58F3EFA681BA0E8090E88A3821161E49C3183673C06BCE057E998 |
F0ECFAC0C61B6FFCFCF3CF97F3BE7EAD8D57A1AB7CF32E22E98B01819BE8A238 |
B2E304456A23B44AD4B9E08BC600AE147FEBAEB3E0D55707FBFAC776E9CACBF5 |
1DED8CAC5CAAF6F4F5AF5A6D3F34F569D79753A93365AF6D35BD65CB85CB5E99 |
3471627B6AADF657D6FEC05A2D9DE5D5A7AF3E581DD868EA5A9D9DB5658BFEB6 |
C15AAB5696F5D596B5EFF5D9AFA54A6B777B1BCBAA3BE251706C890790FE00A8 |
AC45D749BFEFBEFB52F06B0BF1DEE6572D47E731E7DAEDCF3EFB6C96F7ABE62C |
54F26EC74401198FDE04C3EC5A6A265FCBADC5A21C8B2BE07EC412F034B25960 |
EB395240CBAD84728B664A241A5C2DA9170548EC556D45B8190A9966E7C2A5B1 |
348D859E34D02ED5F29E7DFE19470E19E80C45CA2B8E10089A105BC9988F9230 |
2E12411FD9EE7752D6E9120F95B3A94BD12984722F49275D5057239EC4014408 |
E82BC71E7B2CF9145FDFC22DB65EE04D88BD520E1FD15D787C7D97D4523DB208 |
2C05CD9772523A47DB59750D4BB73FF3CC33BFF5AD6F6119315C079A5878986F |
6D97EDB1C71EF7DE7BEF71C71D77E79D77FEFEF7BF478868BBE807EC94F5D65B |
0F0EB96A206A07280B7C463F909940132050348FB50617953385FAE2E73EF7B9 |
871F7E585B9999DD7CF3CDFFF297BF44907D16B83B463A18D1322AA8AB613FCF |
299578FAC637BE71C41147301B9161C3E88998A7F12B92F2689090C345D43BBA |
30E2B9F0A5D8F718433A817629A2408FF8C9F48F28E02CD044477CF54839E05A |
20F2347353D491BE88CBD8536EEE18AD602A696DB6ADB7DEFAB7BFFDAD0BE789 |
42A3DA516C856729E52CE731D3C9CBB1107E8D7956E723500C106B00C2B41D56 |
00C0FB711C86D2EB820B2ED0D2A7862A02A259884EFBA04A96699549151B744A |
E21910162967C33730CBFCAB993BF57972C900F75069E41D8C969745A8A3540B |
441C9E9FA880BDC138831B6CB0C1ECD9B367CD9AE5E9E2BCC4689B25BBFEBAEE |
BAEB6AB73FF1C41318FB6865325EBE8B6783D41AA68F4B660DB6B06B6E4F281E |
13EBFEFA89AB5552B5B6DB2EBBFEE4C7B7954BE5B6AECE652B96A7AC966AADAB |
CE697D3DF5B44E686F7FBDAFDCD5B6F8A5FE555BF6ED5BF4C2D429533ACAEDE5 |
545E6DDAAAE3278E99386542A536D832B66DB34DD67FE7B5BFAE396162EBB281 |
F46EB6D7E7BED6923AAAB595B594DEAB76071174AC3E93AFFFC90234C7784791 |
1BA5D04CDA0800320259DEF24F3FE844481569A161A200810FD2CAB17D748F84 |
8064BD7406AE586528F767B302F6D870B26D1D1A6A67001A7F8D2A8D5A503A46 |
A378644300DA2F9007782A4C311BBD49A7266B3967B8C3D16BAFBD36F59FA5D0 |
62956A08C200FBEDB7DF77BEF39D993367DE7CF3CD386C5C4D23D1EE3DFCF0C3 |
390B30B7484F9F75D659175E78A1E64757B8FEFAEBF7DC734FCADB001845FBC3 |
A156B446A10C87708823374E30C5DA27337810634B016E66D8A949B6EB6668CA |
7B761E75D451175D74D1A73FFDE9BBEFBEBB3494C18B9373E595571E72C821CC |
324BA28F698BE8A8EB4EDFFDEE77E598A73C3FAFD5D2BC9B698C780BE44111A2 |
49A51D5686E118244A2957D5F455F3A602FAF0DCB9734F38E1047D66DEBC79A7 |
9C720A158DFA5F479A68B9F11A3EBD6C3EFC9E5150D02EBD48A1F51E20D8613F |
AFA7B3578759901A99BCEBAEBB6EEFBDF7A66E84DE32142A98BD81DA127C650D |
469B46EE05FB40128D8E28F3E7CF2FF09573544C034209A69302086292A9C400 |
1C1DAAE65D84A3D24AA386A0C92C98409F628C91E6CD292B534749157DE10B5F |
B8E1861B9C9E31513ECC3BC71F7F3CB9467A9EC7E888E9992256087A07FD2A29 |
4335360A292ADD984021FE66842DF3638208E7F3D8337A403CD473CF3DF79863 |
8EE17481D125456415EEBC692534DA224E1B6B15F0FC38CC59DED4451FD3B468 |
7DE5DCEBFA4641239BF4754D089B843C426AD003A51CBC46A62666C1E379C626 |
30750650BE022826C609AC410BA04B1E93CA37B3BC39D48FA38F2FCBD8F4A41A |
3936B45F3EDD2E9923A3CFB6749821FA3168BB025B191956DF8B3C48FD115ACA |
CB2419B372AD8A1D91A5722D7577ADF5F91D5E1E7B6FE766ABAE58FC7A5A2AC1 |
923ABA3BDE7D71930D5BD619337EDC807CDE81CA8471E337DA609D09E3C78C1F |
DBDD5B59B6DAAA535BCB69E19B6F4F681FBB4AC7A4F94FCCFFD69127762E1BC0 |
80D03E94F2833205317ACD35D71C70C00129AF3D437CB92EA3F6BE4B5022BA2A |
A6390DF5672A7458489F19529EF2CA31FF2AD1ADB5664BDB1436F8CEEA76D8C3 |
1ED5B033ACDA9C569328DA82CD4A940E7713DCC9965B6E29FFCAF56F31189072 |
7C9FCB4A9DCC8E7962076320ABD96CB3CD9E7EFA69E4A73D8A88C37717356E6A |
A7C5C4006C1E5C64975D11FE941693BFE4121E14101940F21D2E32263861A65B |
3C01F037FA353AD31698388A29EFE186E7200F4D8F83391B73AC9C91CC05B812 |
10E48A2DB5F527E95748FC658EFDF33FFFF38F7FFCE34215E6AEBBEEFAA31FFD |
08217BFEF9E79F71C619E4066CDA1BC1E11062249B8CB0BD0F7DE8438F3FFEB8 |
5C5EA91F9E6DDF7DF7FDDEF7BEB7D65A6B71C863F73D5785E207A3AAC16B602F |
5318EE70BCDBBDB9F344E1E52A4F72121625A358B2DAA0D29D7A109883AC1828 |
A4D317357B84A963E0310D8D8118D3CFE3507C5580036043915D8EEDACF58CCC |
3F6BCF7E2D20E0FFD110B443CAD14E6AEEDF19E7C1E91FE7A5B6DF7EFBFBEFBF |
3F85F80F3C098E9A1A7F9105A659537090F0F3E0DD8526AE4B6968BF9A2C74B8 |
42355229171B56A63C3CE5F03812C7C3762F01A8CDCA79CF06B6593449237AB9 |
9413D216F89023A89B5995F494CAF784F0A60D6A8E7A2C29D69F0055917661D2 |
888BEAE2FA24890FFB4F5C5666F491471E49409262D961FD78A63D4A6D1E0159 |
E92E8D0499E21C72CA4C769FF26AB76A687BECDC3665B8CC15F5CD5019EBD1CC |
41163DE0665DC560C834D52F9EA58D36DC68E79DFEED86EBAF5FF0F69B49626D |
C2D8D5D75FE7B535FABA5B3A6BE39FE899D691C6D5D2DBBD13BB3EF06E65C9B4 |
173E3C71CA2A72394BAD756DB1F5A61B972A0313C78EF9C8B4292FBFF146D72A |
935F5F52879F94DABBDADABBDE78E3ADEDDF6C9D3D7B368FE3C487575026948E |
2795AF1A980B93223799CFC5B0E7A594F7B48F3B271E3176175F8F8534D4FC7C |
F6B39FFDD5AF7E45EC14B8808B734CF563E8BBAD99E6331B7F8DBCFAA91189D4 |
06D3037EEA539FD2BD061BFD1FB3501DEEA760956940445671582074DC3C7E40 |
17E25773C66C3B1B9B6CB2C933CF3C13215D28C8982D95B49775A2C9A13E987A |
BCEDB6DB4E1A042A0262CB3A8FD4BC1986AD1B9D73CE3973E6CC814AAC34942A |
D5424FD7DC79E79D255A256F89D61835C6CB7D5F9A635DDE065CEDE0830FBEE2 |
8A2BE43D4BFA39C9951AB0D3BA00F4F25773C63B8B2A4DF755575D25A30F8C0F |
75323A3C98F67CDEED68F80AA947902CB4554979EC916D51CE9BB66256786134 |
807DF6D9E7EAABAF46A15E72C925071D7410457810AFB8788E15C5F0A404D352 |
C3DCDF9E144A4D288929E0B6CA4399EE5360A0D53581BA54F23EA6CD2FF23148 |
43AE4FA0BBD2E86177D4514771002819A4D0A53294CF3D8A4E447F4BE8028955 |
55CB7913E3B676D6C1986D503C3E42CDA896611567C4FDBA29CA48A0444B6A77 |
8030B3A31DC442E4100E4862097A2E335239A38FE48A1BD7C672D4DCB6A9B17C |
1DAD35117429E761774D30AAD77D998C1F2935D1299B5EC7F800D357998B8D11 |
2291530E614D39A308C05DC3E86CA4BB44A416DA12300C6E5ACD390809ADE316 |
3BF8C90C9C78E2899A4377F036F108F0130373B47F08F070C44E3AE9A479F3E6 |
A13B1DF384018AA7767F59C48AE71FF38EF749F5E9BE5A38691D422CB5D08826 |
6ACD52E0094FC1F888D40ACC9ED9FE1C871F562B308744DD8DC3D23E5FB0E00D |
E9E0B6CECE96157D59ADB23CD5D2B8D2F8CF6D2F67A667B0B7326671EB6AAF67 |
93DFAC0F51F7AC4CEE7E63F3ED279496F77EA0B76B70CCC4B4E9EA533FB6EE1A |
CFBEF581F23A95EE6CFCD23757544AD5BE6C494BB6EC039D1D7DAFBCB57CD22A |
A7FCC7AC8E45A92DB5D6EDA0AE968B2E3CEFA899870CE6AB46449A888EFDD794 |
87D9405047F4BE8F617C402C18BEC5EAB3D5DD8407F3B15E37D152B74A2BD54A |
5B6B5BFF40FFE4499365C1FCF1B13F6A9F9ABBD4EC63BACBA1871E7AEBADB7A2 |
337C9A223973CC527B9C4E37E03B71BE742372B736494B81B19FB36F0AE1C1D0 |
F354DF4546991B00890D836F6CCDE9BC2902392246E3FFA3CCA4E75C9792F3F6 |
DC73CFB97119E68BA58D3E2993E217BFF8456AB0C9460C2C9B5C5ADFE1077704 |
30601672374D29B84B467272E3556AB4A7A3479F6B7CC8A8EA331AD55FFFFA57 |
66B8F995C52265209A80F110F4E00EC06DFA50F93C43C944E2871A09562806C7 |
C956A6865F12A3138E9BB33684E96CFB333BA64875F1B55B796B6C9AEB682712 |
D6F79C9222DD69A79D64C510C8329A1C6091D1104433E2BABA8C2A8D0A3ED2CC |
B881E0B9E79E7BFAE9A7B347D97040B87910177D23CDA1DB25D489D2C56567B1 |
AB394570611732126D914F7FFAD3F22FE1CE3586D66ACC7BBA94F7F44823BC5C |
FAE903304AB9113173A7730A2F4406A7CE4219EB270A1D7C531356A49C56B3DA |
68882B6382D0086823D3C280ADAB345A1163026B56DD929206C37A167DDD9696 |
FED7674CA29235D142A580B2C6067736884D0B5A55BF460235E0BE5663B13E9B |
182079416D512CAA82E95DCBF9A152E8756A165CFE6A920DEEEE5254365BA431 |
8128FF90430EB9EEBAEB88B6692780CBDD6DB7DD7EF0831FB03D22931F9D59F5 |
26D08D638F3D76EEDCB94C85AEA6FF3575D6B2B2DC7FFEF39FBFF8E28B36F890 |
15ECB7986E8C1182B89198AE485BC16BDB6DB77DE8A1875240E9378B5A4D29C3 |
8ED673FD34F5AE68EB6A6D6F695DB1B84762A5B72D8DFDD00669AD5596F7F4D7 |
CAA55A7B35752E4913DE2E8D5D526DADA46A2A2D4AD5F6CF7CB0674AB9639571 |
93CA1FFBD0F4D7DBBB3F3A41575B7F79D6FADA3B8BCAD5C18969B0BA7C61B9AD |
B565EC9825955AEFD30B6E3CEDB2856FBE5BEA1EDBD3B7544AB2B59ABA1B7024 |
2774107486ADD8CCAAE585A1D192484D95C18ED6F84F6473F5D266730AA311CC |
1B7006943B6EB8E18652156FBCB100A79C3B6207633639F3E2E87DA1CA3C4A36 |
7B2FEC40622D29B8AD16FB6C542D252E56648204C3614AA296D010C5CA3B560A |
9832280D65A0CB8652DE16662CCB5FCC98E102848538EC4425D350B75BDE27A9 |
4C000A387E0858348B66ECFCF3CF97D7444E01998C2C2228A5B3EC8222C40E02 |
DC882D0FD2157A2984C4A267555C85D4A80FA1971CBB3CCB1B6671C0806C99AC |
B840C54E58BF9AB7C2D0AFB366CD92FF1A1555396F4956480FB8B3AF3388BC00 |
5EC1C5A36F69FAF6DD775F4D90F6A5C4B4A660C68C19DFFDEE77914D281E8482 |
D3CFD0AEA65098856FE74D437523C1BDD430A368FB6AA78A1EBAAFBDF6DA28A0 |
2D0D8CC679FC80C830E68BB89C938EBAB29C12893C6F0EC71EF980ABA8293E69 |
06FA6639CF91843B1DA1FD2C5A114DFB7FFFF77FD3B02CDAB62329547F86632C |
C379EBADB7DE7FFFFD47F1983DB14600E00B46AF88FD608A159C1847A7E1A988 |
784857CB1D70C001D75E7BAD8C6ECE0F93E30003CFE847D6EADC78E38D7BEEB9 |
277D009DCEC0D28A0DC65127D8E9050F2085C035252EF8E83161AF616CB3CD36 |
8F3DF698BE42BF6ECC1AF8DAC04FDA0B49A1FDD141071D74D75D77393F1A2B5C |
53EE3EA2A8B40F89A4A5A1D5E7F6BC53D0F47A1CD979DA453C32C59A08351BAF |
A5465BB0975E7A4997327511A5F0BE3E2D16F0393463FCD5629AC5F2578863C7 |
C6E12664B531810513D9FB628D0ADFD21510DCDA6C5A6B1D55CE60B3B44D792A |
8484D7BFFFFBBF3FFCF0C31A70DDF8CB52D798B65AA5DADB33D8D2960DB4D5D6 |
FC971D5EABF65607FBA47C4AB5D6FEC14AEAAAB54F5B5A9DF0E240CB8A49E326 |
4DBE678DC9DB6CBA384980766E3A71957DD6DDED4FABCC4F6F541664836FA7BE |
7195CA46ED5D834B963EF9D65B8BC68DEB6E2BAD59E93E6197992D83A5C1541A |
33695CEFB2C5A5FE4A7FEE151029D16809FEA5C0AA6B8D620C7C3346A1F918BA |
3C0C9615E00E43B184124A726334C3F5FD3F69D284850B17B9CF0FF628385923 |
AA7C009D0DCC86A326D56BC71D77D4F6361964CAEB29F4755005C41D3135A25C |
723E25D61372530293284587153FF1894FCC9F3F5F12954A2A700F8EBA5543B3 |
AF3839FE3956CFC709749530C6259C655AA0683D189FE8C0983E697CB29D317B |
179CD6D34E3B4D6E9523F059DE24D8B776C134BC0BB10095A3E41A012664F80D |
E0EC23A391E0B8F0C20B6DB6A00B3D4AACF852A327B9D6C395B248B7BDF7DEFB |
273FF909AE00A717CD6FCE04321F595E8C6C2C0367955E3192236641D203600C |
023FC3A0405C1207F0CC9A7680758DF1D298B1D39BE79C73CECD37DFFCC73FFE |
11294FE3307DFEB4C64B6F4A34ECB7DF7E71BF0E3B710496750BE90C92D61104 |
6EA7010DC4083578CD1B6D0938BDA45BD8408851D6B8507F6CEDCBE161721C15 |
E167232362436FDD7A24109955911BEE366FFA820276E7ED98A764ED76DA69A7 |
3BEFBCF3B8E38E3BFBECB3E11630E9A3DB92C7D8ACE5B2D983F5ADE79E7BCE56 |
333BCA007BAF855318E6D3D776954E22809F1A5EA076A6BEA85B3B30502071F3 |
21C1B7202B49140B89633CA43E2041A3C771B123F9170C91422D2633832E4409 |
E9146830D59C4239E5E16B328BBA82CCA62BAEB8C22B68767BA6971162B6BB90 |
51BF6ADBC8E08387CB9DEF902058091E4F24DAC5A6916ED63C3BFC70F1C5174B |
9DDB8831B5B5C6090D2D317C8853F450286303EE782EDA65B21B3D1857792197 |
6DDFBBE5940FAF375861BF61556B48DAD8BBEFBEFBEDB7DFDE98994503FD83A5 |
AC54CB52ADBBBD36AE63DC87375D92FA53A9ABB565A05C1DA8F4B5A752676972 |
6F9A32BFBFFBB5DA92B163D61CB7F65B5BF62D4F6DADB5CF7CEC9F6B93AAD3BB |
BFD0B2FC4F6FF5F7B48C97EA5D38B6AFAFB3ADFB2F4B7A17B58F5BFEEECB032F |
BC73E745D7AD3771CDF9CF3F5F3F0EB5CAF7AFF9EE81B3BFE9CD89B82FF03040 |
D1AC657518B3F9C4A51162AA05E03746D5CA79CE2413E4174AF6C25B52AB8FA8 |
965ACA2DA41BB45894EAC1A14B623805D56E7CB59305A5C00DBEF9E69BCBE4C5 |
1A4B8120D6DC581E242611A02A7DFECB5FFEF23DF7DC037110BB8B9E5AFAF9E0 |
830F968384AED211200791E5A56E007237DD74D3679F7D5622B494779D2A9087 |
14FE078217A344B66C50F9B18A87EC8C5B98C465A2B67BABADB67AF4D1479166 |
FA80769AF6ADE650528B0A2BFD8C1D4FE0211B4ACCE2983F7368CD4D836A1808 |
307A46A29D786FF5536E7703EBD02D8DE08AC933376E44F7486669FA1C9AC022 |
4640DB44B2BC2E18CB292FD6D409A76E182F39F60DE4BB7100E82A5D64ADB5D6 |
DA638F3D649BA0E3530E4A04F1A4C1BBC10B6B494098C883E9DCD84C116DE4CC |
041EBFA3FFA3A08553DE030A3717B0062298F5D0BAEA221A363573F855005623 |
190AF60AB57431CE9F8646AE5C4EC067DC8BD4CA9EA5D4C722D1DA280AB59C37 |
E491ACD4834BFAC7029BC28B4F3A71A231F0032A81ADE691B831594C0C534A9E |
02513B8F1323166C778C0C3FA649FB8025134DE103D8B3E6BEB78F42BD6C342C |
A2B043D7F2C2B5D50CACB9E69AF2B4E6CE9D5B287E4843A3058809DD42A74042 |
E437BFF90D828F4364E4B6EF5BCE5B6B3B0954CE1B04CD9933E7C8238F243C00 |
57173B598321DA69F7A2194AA3CFE84D6D786AEE110AF49921318C91E4E0D031 |
C71C73D1451791D021C8AFB9926EF6BCA13EED25700B139B13333CEBACB34E3E |
F9E44ADE9BDDAC76A59C4D8FA81DAD392365201BA6A5D102CBD97DD7958DA480 |
9D414C8D28A21EB631F8092B7A967794CA597B6B4F6960DC8736E919DF5AE96C |
2D0DAE52197CBD9C16B796DAB5A7065A2AB571EFB64D5C3CB0CADB1D0B06AB37 |
B7B6BC33A6B3AD65717AEBA207CE7F6BC9AA0B57BCBDF4ED451BAFB7DE40A5E7 |
A9179FEE4DE5C1EAD8526DFC3B4B5EDC60FCAA4FDFFDBB076FBF37ADA8945375 |
FA5AD35F7EF9A5C9D3A6FDD33FFDD35D77DDE5E82E47DE342F6C452D1CA7A000 |
122C88C1E653898DCE8970F5737DD75565AD96659337249554A934713D20B4A2 |
67C075ED8491310E0CAC89C7AAC0DB6F25570BAC4CD4C2A1516293BAE8F53AF4 |
85E67EF2C927E3076CB342B2A4593AFAE8A3C971B484CEA48064DD73D367A414 |
784FA31AB6DC8B58FDE6174E9A265FEB02E10F352CB1B70A8AD3E171D38F7085 |
0235907FB5956C456BFC8AF41768444E5679380A684D1A8524C32B606B5FA4F6 |
4F7FFA53892117075BA81969CDD2EA39757AB104713D1DBFFAD0873EA48501A7 |
6A0EB90869B3E3054B8891234C6EEC24C56248B36A4313C9A4C482310307271C |
A4F1ECBAEBAE3A1EBBECB2CBE5975F5E4855464C6CCABD101F7E7EA6BCDDA5E8 |
24F3F47F6C455E1010D228F478B0248AD14B7CA072E0E6766A5CC38637CE9411 |
1FFBD8C7FEF77FFFD7D831CD3F0CDBCDF1AB66A428A95C90D896FB9A01DDC5C1 |
80E617050C645BAD60881F0CFB79D93D5FFAD2972EBBEC327D65BDF5D67BFCF1 |
C753605961956D15C64D850FA419D0333EFCF0C3BABE09199837BC641D5A8245 |
245C4D25C39235C78D498E2062883D904AD738E5013816E4223A8BBC660F38E6 |
02287FC4BD368725880C2AB931E6B8824D4C36B3C68C0BC83997C9F8F2CB2FF3 |
4990C3D8EFD5BC4FEAD4A953E179C56D757F98D4C40E66723A8D449F646F4392 |
C03C4494839E0B1FA894B3B5BB51B41D7144526A98D41C768024D8589A46633E |
34728D93380DA8B1E38E3BEE924B2E21EBE912CC78C6F9A2164272505F913374 |
D04107D90A015619E5F5B01BBB9673D718B0B6F203E5715D5949C76979EAAB76 |
0C4EFFB74FBDDEBFA8DA526AAB4D5ED1F74E4A4BDA3BDA74C2FAFAF5A8D58ECE |
52EBE6CF2C99D793D6C8D29871F5CE0B0B97955E1C73ECAFCE68ED18FFEA9F5F |
9ED43D71B02B7BFCD5BFBCD5B3B463A0ABBDA7A3AFBD776CA5347E79F5A7E75E |
DA9EB56B4BE9AEAB3784BBAC643D17901FF49C5B29BB856DCAA191264269266B |
2BA840EF6DC47A1628421B2AB9FEDD818162222CA6751D70B6A26D09DD732342 |
CA3775F2C5C058B6871E0473505BE2ECB3CF96E279F1C517A92724D5E8E81432 |
5CFB4DD2E099679EA16709559778F06425280D8234C2DC9098EC080D07F0B3D0 |
77390DD5C1F104112034B017FB951364525BAB406D36A24D487B274F097479D3 |
BA6627D6FE69F05A4AA99E7DF7DDF7B6DB6E83883EE5503506691B08239E5651 |
1FFDE847DD0AB699FEA1A8806124E11CEAC614F8BBE45F17C5E4E1D04618242F |
4723F1FC78D4D470C653832F3E0D85C0385566808903CBE68C74340C0A40E605 |
2909AC94249C91CF8C96C2123D02FD8371ADA8E6344101E13B785CBD5A29F7CB |
D9A68698A690456F7E1994EFA022CC261B6EB8E1B3CF3E6BC0829CF51FFFF8C7 |
C0E1CCC14690136D0DD00C78B93EE04C1B436A56C0A0AF3DEDAE8E477340C11F |
C3CE2379C0B367CFBEF8E28B6951A289D565B564F3E7CF1FE9F358FA3EE1EE3A |
629E551D5124B52B586048AFE6C4A54633991EC4314C77E0817CC715DB9A4C38 |
984A3977B98D68ADA34483FB0839BB29A971FCF1C7EBD6DA5D5A08B60D122AE5 |
1D090B8F16094C2CB9CCF8C8FB482B726CBA2966AF817248043BF188B32CB494 |
E0BB294F65419E8A52E70CE3B503E68ACD4568A4CA086D28C8F2831B12280391 |
215C4FBEE81A5CC2BF484CC721CD34A4FDA90FC84A60FFC486EA9C1A96EC8003 |
0EB8F5D65BF526CBE761940249AF779A6BC96C87A5BC7380A988FCBEBB75352B |
608AAA4D30821DA06F2D59B6626C5BE740EF925EDD6D6A5AE59F365DFAFF487B |
0F38DBCAFADEFB596BB7A9A7D2BB940328A0A0128D9AAB9F9744CD4DA2D18005 |
2C8014B9A834514001E94D94A254351154A258A2895EA2AFCA255CCD35421451 |
10E500877E386DCED45DD67A7F6B7D67FD7866CFCCD1DC77878C73F6ECBDD6B3 |
9EF2AFBFFFEF1FA6DBBDF670ADD1E90DF492A15080193B49AF9B4C8564A6D1FB |
D1CFC23E7B1F7AC83E5FFDD93F0DAC0C83EBC2731BF75DF9EBDF1DF3F50B27F3 |
E6EF9FDBF4F4D8A6766FA29EE44B06978476AD379086C999A5D3D98B966E77E3 |
F9977727A7374D4D34978EB4378D7B15344531550B4154BA9C1997CE3C108B5E |
30BF139B2C31A4C8E217098EEA256EE70C54F9C52C9DD757A316B5E5F1B135E2 |
C91AD72537F88838827CCBE8D1FABC0630A13211B891E9F7F5D2C630E82906DC |
71F025ACF40B628D3E66264C8EF98663E3209EAEA462D48A9DC03037CEA4E922 |
12A62373C105177CF8C31F7EE52B5F293FD0395DC9372914CD03226EBE528C0D |
1A3D91FC69F0345A6E1E0A6C0A5C289E6DD8CADEFEF6B75F75D5556C7EDDD118 |
5E375B2358B2A05C9DAD832639A74BEFBDF7DEBFFDED6FF130E2741D50119F52 |
B2B0943F9B182FA9AA929D0261289E50F88F9288CD00DE00AD475A76E7A69815 |
1309DDE96C1C83D1739E7CF2C93C18C924A4D84D37DD248D624C7F985B301377 |
BD30318893A9C865A35A08DF935C8963C57D2F3DE9D1471F7DEBADB76A0CEF7C |
E73BE57C4B0E22B070EBF38A539EA43865D624C618D5CB5EF6B25FFCE217840A |
78D1F5D6F9BF10797E49C4A260BB955A67FFD3DA252ED35ACC80C0CAC390D7B4 |
2352B70016D095E5C2DE7DF7DD5483601B85B9A43649C5E66A4BD93119EC36D3 |
59DB6230710A5BC834874CD1B9E79EFB894F7CC2720AB03D51326AF635B76C48 |
483DE943F0E94F7FFA431FFA5052358DF631888F34B20C18141365FC7988D064 |
FACC9E7BEEA913C1CC7824988086383A76E7E942B5A050BD85B823647E1A9896 |
49E75C12219F5BBA03CCA71E355AB6DD63EDAE7774ECBFF9CD6F029606BDC991 |
7133223B46287B5D5FF373C20927D0F1DE25EF9A40D42D729F1C9BE366BA23ED |
EA5C64C5E4300686373F2A18B7CB24D743EEDCD466664DFF831E3060167D528E |
45515C5E0F238D7A36D54D47436B9F15EB4666D2E17AD6996E2533497DC776D8 |
3D4BEAA1313194CE249BBB33CF65DDDA9AB7FCC901039B77BFF6FAABEAADDE0B |
FF6C55AFB9E9A94DDB87DF3DF986938E5BBF629BC79F7C66EB902C957794664F |
CD4CD45A43F9F8F46EA3CB7F78D5F5613A34F2D0D4B3CC4C9C74E249B2A4E5DE |
D167DAD82243FCDEF8C637FEFBBFFF3BC103687D0D7CB13A89BDDE5813872A25 |
E400A649089A8D21126433ED8ACD342943B579BB56B56B337D6C7C4D54781675 |
80C690B57086EF08D2099F0BFC31A8BEF6DD77DF871F7E987C6A2C6AD28A7AC8 |
C4A2EC3AD7B318554A86D84D6E8818E9A4432EEB944DA8707C7E843E4BC5BA43 |
9F27F4C2E7AD23984FB4635C34AC73414237C69DF4F18D98A716DDC493021EEA |
559D72482B38A417DB31A12A82A8552F927A60C5BDAC8B82611DAD25FFE41001 |
6C127C48FAFFC0030FBCF7DE7B316D0016850A311422BF01D24B7DD172D9C86C |
8C17FC4EF21C58462F7DE94B7FF6B39FE1144AD8C9508A0B76A9BAD34F42BB44 |
BCE34E5EE00EDC030E9A564AD08827DBD9424B391B112B39BDF3EE77BF5BD250 |
123FA6B63EF4D043BFF6B5AFB950077D0F32089968C74E6BC03EC032C8A22697 |
16A0683B165E973AE594533EF9C94F862A166AE30E1907D006A79694A7C73FBF |
AA1D91A72BC4B624E2CFC98C580F615E304BFAE221871CF2DDEF7E577B282685 |
0855482044440DF35F6C5C4AB9307EE3EEB03615EDFF31211822B5B9DD6443E5 |
29324ED455280BD8D2B98CCD8809FD72F6D9679F7FFEF944B148CDEA841C75D4 |
5132C8587A2693FD43C48C6A25DDE5631FFBD839E79CE30977C88ED93BF1C413 |
BFFDED6F3FFAE8A31039395262CFCCB8B92DE02C1C2DB7723572125395A7482A |
B2FB2BAFBCF2CC33CF24051857B4F7B5BE2676D7ABBA821BE61AE7FFFA2AEB6C |
B8580D30BDB5AA212B7B5B53A4EF72F0B71C22864CD194877150CEB6A007C083 |
ECBAEBAEDAD2DCC80A3E36D7E28396450C6E9865EC9FE9CEF46836DACBB3C9E6 |
C4C86BC2781A960C85C673CD89A176BD27EB64281998199F991AAE85A513236B |
7E323EBAFFF0017BEDF3FFFEE34F5A5D9D94900D76F67AE58ECF6EDE38F37867 |
DFF7BCE9F1D0DD79A0BB7DE7D94456476DB73CDD636CE8C9CDBDB064A679CF4D |
DFDA66BA3ED99B1A4F66422DECB1CB1E3295742A5FFDEA573FF2C823FFF11FFF |
11A20274A64B5B1AFA24AFBE9F8519EEAB959FFB4A177C97680431B9B955FE5B |
0279A515C9549F5D686913AA5EDAF162CD8F8A870AB28062237D9B57555860A3 |
5C8265BD4E8F2673CD86D238C00BCC4BF4B8042CDE115776081A90A385983B8F |
5141A773FDA94F7D0ADEF550055F2D001DC5A1B81C210386D7FB107E46E93B3E |
E312646E6A8C673C93EE8766C3250EFC78D2426432860A19E3BCBB5166489E3C |
E24E4888D7C79099B7BCE52DDFF9CE77782A34795ED1FC1AF8E338AA642EC44C |
D07D797FC0CC82151C2FB3D71E116C27E6E31FFFB8A40F312E139C126D77F6A8 |
6F336104B1BAF66BF38A4EC5BE426D6EFB1D2BE02482E3F38EBD07A7BD49069B |
ABABEF159BF9EC21B3B7F795B72755239D98C73F54C1CF0515B0F48A9C3F2A61 |
B0900C6AAF45DD2CFAEC65541D3A0CE989C11E2A6722EE8B10AA8ABDBDF6DA6B |
F5EAD54EE43B974922071BDF12B6EF651DC952BA182056C0DE76BDA86FB92EAE |
5D44FD1B66B5D965D137C0BE98ABB4EA8B2EEFF6A4934E0A51DCB81EF571E3FA |
071D74102877AC225397D7AB36E37A138D057F058EAF4F17070C551D4BB77887 |
E85240E8A9F1A79C26EE7612C7D3B00FDCA3D48BCE91D118F42DFDC251C2B7C0 |
0DA5A69354715C37C920D1CDB21A8F3FFE781913DE2771FFB1582ECC97C5B12D |
AFFD76D55557D1942C464E3974D677048C43E98BD0E0A6F327D7C2F5F1635B20 |
C2BB6994599C028CC78F5986D4EB86EED26449AFD39B5E3A39FAB2C6D49276B3 |
136A1B9BDD25EDD0AEE5BD8130D099EAB447E4288F2F7DE2DF3785DDC351EF3B |
F2920F5EB855BEBD7CE3E9DAF8FFF3BEBFF8DFFFF1B3C15F8CBEF088D7FFAEB9 |
7E30C9967793B4918FD7A736F72697861D37E7BD6579EB77B77CBBD50EB5249D |
4CCACAECC1596CADBBCB1135D11A11B282F5EF15AF78C55D77DD65E29D0531CF |
FF770AD88D2C2BCE8D7E86008395C2DCF8F6965FB13CF417810E20991105F6D3 |
8C0A8C8944507571AADE95F1A16A90C501D427413EDB00E5D4387E96545D8A49 |
D9C63D5DE29221BB433C8513A66E14C4802D004DCBCCE761F45C600DAAE31F22 |
EE740497CF8E15703CED7E3911E0DC4ACCF9DF77128BA7F0322364E3D6EEDC83 |
8021D6B7A3FC6F78C31B6EB9E5963DF6D8436E225040D71A7EF18B5F94F7E0C2 |
061E29762F6C2BC5455A4626DB1F427221BC801DDAB843B9C64D3FE8BFE66CA2 |
1D0E2C06C25FF831B111CA6062509855A9A18C8EA533485D0A020D9C2A52B6FA |
9DE6489A74F79E637BD99F0B11F917DB5A0E813601722A89FA44F6B94D8E4638 |
5462FA65AB3DF6996DC93E41C9EEF9EA57BF7AD8618749815D7CF1C5A400CD32 |
EFAA6E72F3EC18DD5DDBF4D7BFFE355F5F4C013B24A529D217354E5B7F4954F6 |
E36DA7CBE2F66986FFECCFFEEC9BDFFC269BD58C36582AB15B6C7F8E5EF4FA49 |
F51A64EB186A6682F546621149A9A200425914412E87D4C065975D76EEB9E7A2 |
EDF2A8460EB1A26BEAF37282D9156C09D2ABB696F419C0D854121BE597563D6E |
391A71FB369F32F6E709279C70F9E597A3B488DF50528541ECAA120810246278 |
765D41638359CC39273B01A4966358A97F6760F1E6E703AB56AD9211E67C33C9 |
6357718485D07F717E24FEA7199A6C76FB9A4462D8215E5FB744EB45BD114364 |
BF8698C22CCD86F2E1D00BD34313E95E61E9EEF5F1B16E433EEA92901799DF7A |
6D20B443A79527CDB1656B7FBE211CB4D515E79D75FC21870F87B23C21AC3BEC |
C3477FFFEEFF48FEFDB9556F7FE3E323C379A7BDA437596B651AEED4647749B2 |
6232E96CD56C3DF8C5AF25D361C9E892B1F1CD4B0646364D6D0E91B517E602E5 |
EC1D529D184A731950BA13347F48152E6AE0A2C08C814A67C92C9F4F8DC549D3 |
F90A18616E92A9BEE8778CD6EE8B905B10B13965A6FFE637BF09118634447C17 |
C810C8612CAB638EA0F7BFFFFD37DE78239B1F8207BBDA0E4C7AFB8512CB46C0 |
15C317AA096386D830BBECB28BEE0E7126B92D34482843A1FA7ADCB28CF0158B |
C202E99A6078FBF268F1665ED0843212AD6F65F38A11CF1B9ECC7AAC74FA4A24 |
12909FE79C73CEADB7DEFAE0830FBA9A2DCC05A0BB90E6231FF9883E29452B51 |
7EF2C9275B01600CEA968E95239808BA122174349F13685AF939164115E6757F |
A810E5AB88B3617DF34E1AD12C9BF4835E5DB491EA3306D3881B3936DBD38A37 |
4A4FF4D18F7E542E4528294AF4D35CA09C3D09BE430F3DF4E69B6FD61D09F01E |
77DC71F21EF44548BAF1C5814152DD811061EB8054D29C1C75D451D75D775D1E |
1144C4107C42CA3EC01A9E7C1D70CB58E2046F89FDC6595203EB6B559B643759 |
A2C9A346E88C00F20E7199547D0BA80BD7FBBAA384B22641A2BFAFE0D52F18B2 |
74121E7BEC31CDC30D37DC80D9E45E43F95C2246F69B56E788238EB8FAEAAB8D |
82D60780BB03AACAAA064AA610B726E6ACEA5924E9302FD016DC174A4EBA4B71 |
926546BCE52D6FB9F2CA2BC9CBE2C4C85A627BC73EBAADBA58BC5253A1372FB8 |
E0826BAFBD169C20DD4CF109E819ECB60D7198D7D9A3502132BCD9786A7D5E3B |
EDC20B2FAC57BD17A9E8CF2AFE515D473B4D3E6E52559751666D426CCA94A110 |
718CC4E85C2BB018E3E35854529147DA557DC73BDEF195AF7C25DEED5BCED186 |
79D14E4E681C0C0855A522FC65D822175D74D179E79D67061E979C0197651109 |
3BDB436224BDB457EF34D290B69399B03C6CFBCAE10DE31303B5D0AB17F9DAAC |
97D607A58EDB793BAD8F8D8C3DB029ECB0F5376EBBA9DE6DBFEEA0BF908FFCC9 |
CF5EB26E62EA86EBBF1466C686DEB6727287B1FAE665236B0F6A8CEF32D2680F |
D69E583B319237F395B5DA83B77E23CC84E650AB3DD1599E0C6D4A263158D999 |
36FD79C56E435EE27229D3D2D3696F9807664181BEE517273144F9A03FE8DDCE |
D62F55F14F3007E8A73E304488C254F315B083B43ADD6BD6ACF9DBBFFDDB7FFE |
E77FDE77DF7DB5D34CC28A4947718A219971E304DFC575A74C88AD348261AE82 |
7152CF54719A491D90534E3905E901292C4D6B4E3DF5D44F7EF2937D8C7BCEA3 |
852A4CADCF9C7EFAE96F7EF39BBFFEF5AFB3B721B79A3F7516C58BADD48200B1 |
BE90B51E90F3183FA363AE7120AAD0776E114F0A5A8FC703700010D32499B05C |
30C925D1BEF18D6FE8F3DB6FBFFD934F3EA9C945F5C616B4412B40649D8E8E03 |
4D7D8DC9702F101C043A2835416ABBA5ABA78027F43A994618B9F3D297BEF4BE |
FBEE93E5F599CF7C069C11D8DD0537311E243D5BC839A525FF57A8309C80AB31 |
058C8605E60ABC851312B7EE3210C049BB1071AA491249D0F0271F369F045C7F |
806052847A288AE2F1B9B9BEE5AC3E2F7F5ABE910BC6B820F3ACAFE8221A67EC |
2AC5B28FE8165FE1C19D9BD4EBE0830FD65E5F2C77E565C54EC73632EA92278A |
31C04061797C8D0A5B984B7DE0031FA07EDFD1EC5EC588EBB02A1B06D8398931 |
A3E5B9885306C87487348C19096524CAB4E1FC9515674E9023449B4D81ABCB6A |
D8FAE799679E2903F4B7BFFD2D5F41105B57CD2A89882199689E94B79E8E29A2 |
F535F329C9256BAC17F50646F16BC9E0538B8114CE6F61F450C8245115972782 |
6C32B538E66CBE509BBF3892861F4F230AEC66A605660F2FF416C47DA810E624 |
F6DC483BAD58E9113224F00C90CC4B70A264B7DE07C2A3BF624E85A87FA59B76 |
1447A3163229572960A9C7A1B0D32BB71ACBD72783B5CE7467B0DEE8CC744323 |
99CAB3EE4C18EE8D4C3D3BB35D6F87B064EAE2EB2EBBFB9EFB8A58CEC4C6AFDE |
F8952561DB275FF858786133AC68873C8C6603D31B465BD3BB8DB6B79BCCA686 |
0706974C741EF8C6F7C3E65E3AD0CCA6BBCB426B6378BE6A252626C34A36D225 |
54862FF63180264723FF083F7881F3D5A7B99345E8A2626DE7CC0226350AD840 |
99B8AC60B11CB05166495923A34591F094A8774B445D817E94728B7155633260 |
9F381BA0C6BEF8E0CCCF5F20F021D9C588CFCB620ABDA383AFBB33C3A1046150 |
8C00D19B248644259A488742E60212002D0BECDF813122B50E79926CEA8BF0C5 |
3AB84FCBFA682FA880B39255F7252F79C977BFFBDDACEA33D10753ED5BBEE4E2 |
8B2FBEECB2CB28BA375C052A76D409234E2B82823EE0CC0B5EF00209116D3239 |
C7D75F7F3D7830906FD4DD4BD44A3710CA3683397B027D4C356AFCFC043D38C9 |
21F2804314524F4B4A6A834D9C4F2270A73F51A3D9F7F5302F62D61715EF956C |
BAAC346A439795E9F4D6B7BE95A305913725C8A172CB7828B4A39C12EDC877BF |
FBDD92D4071D74D09D77DEE9317374617A03E01D6317FBC41CD4224E2740C389 |
6A8CD53CDA9AEC887E01016151EBF6DD14AA4BDE615810F1F379EE2B2921C189 |
ECD6FAD2EF73410101853530317864283CB5FEEE53C0A1B4E52937D4B6F139D7 |
CF3DF6D883F8B067D539691334F6A27EDDA1B22D42855B06720976C3FCDB543E |
5005617A6442CA9E87A4E2CB253603A302EAF9C8238F94ADC9D18AED3C90AE46 |
4DBBA63C545576BCAF8B6800DAFFA630644E1C52E2496FB8E186E38E3B4E1612 |
E7D3DCCB7959E0EBAA0F7D18D6EB10E559083F605CF2A6E130286047564214A5 |
34AC096B430FB56AD52A6DF24B2FBDD4AE4C58DC03F651EAF380B522C810CA17 |
2D3408E6C318AC3D430D853E2927E6D39FFE34DA1A392371A15B83D10B95AFF9 |
FC21D5ADF274B03E90A779BB39BDCDDECBDBCBA7A69B53E9CCD060AD3E313ED6 |
498B2E0CA11B4687865ADDF4B9BBC6C392B0D32BB67F7C5399607AEAA9155963 |
FDEF3A3BFFE56B9F5A7A6F77E5A6301896AE0C9BDA5A8E5EE84D0F6D3C604563 |
79EFFE751BFFED77C964984A9334C9477B6163773A4EE6395F13AA16D171EF3C |
FBC198D1045A1C72584CD5FE41651C1FC19854C30B1447D1BC0381E32070624B |
11FDB7A0071C2A2323CE62C40151626FFE2766313B396E3EE8F20A7AE55D75D5 |
553EE0F84E1EB9014A1AA74E0A89182222F8C714B8727E930A6F683D859AEF6B |
2CC638990A1802A0990A55D98B99044304C8DDF212F4698D302F046D62251D49 |
ABFC1869182A0388D45EF165576E19D163102FA59CE07E51962E15FFDCE73EF7 |
BEF7BD8F8C1DB7276A8F9D4EEA1B23976427182EF35410A7652E70B28985FABC |
79A7EEBFFFFEBAD1873EF4214BB4BC220D370325712DDD54DF62BBF349883AB5 |
395812AF5F3297959009BAF0C20BCF3AEB2C6D26ADA223AE167304D8096C12EB |
365B376152ED3099206EDDDAD7A329540D8E48D1519A46A3C6050F8044D5D147 |
1F2DD9A4EF524EE3A06852816689B5C25078F9E597DF7EFBED3FF9C94FD87FFA |
8A7E215E6ABBC121CA1039E2DE22EC7EE0A94EC2E19C194FB7E08E34BA4D1B00 |
A3C789097BC00E4BC034ABABE92E2F7CE10BB5346E15608A25AB4F16D10C182E |
9ED6EFEF7AD7BBBEFCE52F03D98DE9C308D9119146446655A33D5DEAF5AF7FFD |
D7BEF635DBFE7A13503D2A872039869DF3581AE4AF7FFDEB103964EC55CC4740 |
22CE14B832C41127A03AEE518FE0C68575F029293B5742EB16AAD21D7D521BF2 |
B4D34EA352CBA492575E79E5873FFC615945B4C284FD34CE4D6AEA7400F1F209 |
21C6E86E260720455E757D26A5674A38E6105B365EE83ED51B670A2D46355A02 |
6638EB5E5696BE56B585D6988DF5D380F5C50F7EF083F204B4ED292AC5EBB5C2 |
8B1255257830D5B3D5B25A2F5BDE19DD77604363B239B962A8914F8D6FC81B21 |
6BD524AD465BF5C15ADE98DE6AB2B776DB1D7758F378E157AD585E1F5BBFA137 |
39D05ABECDB3599E8C347AE1E1D1DD66368D6A8B486DB7C2C6FA92999563DF7E |
ACB53A34C3E0E690A5C3493A31DDADA0643E2F7D6176D691F575610296257BA9 |
2FFCF8472A608827F965AE2B3C7B7ED3B9A4D3BD795D9810560E3EE7113A3D2C |
1282B64060FE319B641F4B8C1304E664813BD3017473027B2300603977846191 |
93AED6056315231550C0310E0679EB27C285706A4F2FDED1D9D11888AE6947E9 |
747CEA539FFAD33FFDD31FFDE84776E16C16E8E0C81094A378ECB1C742E70726 |
DF5AACCFEB5D2C1CBD600E38949BC43180B8D1915F20BD396B454820544173D4 |
2767CF0D380158E942871E7AE8F7BEF73D0899DD1D4CE32697A6CF43FC0B28D4 |
A81346B0FBEEBBAF5EBD3A8F3A20C134848110571BF719E9A4F4A96A0F1511A6 |
E7453F01CA4A659E74D249175C7001B40FB013C8E72040A78F49795F7DF5D5FA |
80F46B3EAF07248B4D84D93C187A7C69FD9B6FBE996386BFEE7A0F46A867D49B |
586AA16CA9411346BCD2EDB7DFDE494ABECB19A8CFED7EB8D801085534D56C91 |
BA11740DE87862B0F2B0E59E02040367A849F323A066E27634CCB683967DDC69 |
5C44F7D25D7025F50157CD2F28204CB84D74D1F8F63E2B27CE47B285AC51F0E6 |
35B0F3CF3F5F22D814DFA14A32E5558799ACEAA1CB4DD1CD2ECEB3C513A26A1F |
E43E9762FF703B0332C96E6011A34AD1491C5DE62DCE2A21CE7A556F4D6B8874 |
5E7FE22442A59A1DC9B07CF7FBCA2BDC3EEF6061B00F4D5C4ACD18FCE1B45576 |
9E8CC9278F20E1F2C0030F38A11BD7DC7B77F9AF310E80A98B63514955176485 |
B1A0029E1FBA0C73390D2CC4EDF1C7012700F0CEA0F3151D1C006B2132659E2F |
DE486A85AB9AA7B5504B43D269B657BE7A645D733C3CB57C7828E9B6D7B79634 |
D3E181F1998946E8B542D8988465A3B56C436FA457DCAB3B3CF5DC78686D3732 |
335E0F8D6D562E79C1C4E38F26C34F4F2DDD58DF3E196D0D6E5832BD64C3F2B1 |
1BD78D6E0CC361ABA7C3C4F07603936B37B41A038656B8C601D4671CAD89B7BD |
9ECE6536B1BDF25F52C0E5C45A0117BF7B1DE64376AD5CFBB6A297AF8FCB627E |
2C30D640B1B07224B9AF309D8FB17577DB6DB7534F3D55A29855B3C1EAEA0334 |
AEA6059A451BBE315DAB6940906304A575B57DF6D9E7BEFBEECBABA64FF6A60C |
B3F249B4F430A589BC11F8B920A7C3F775589834621C48B01A4AE65176F469A8 |
BE0844A838F3F52D4D17AE9A6B9C4285D2A2F25E832F40A38E8C5D72C925679E |
79A6AE2B7DF9D6B7BE553602F4EBE430E0272349CC33FB31DC8B86243FE9E4B4 |
EA8EA22BC7E4124804FB3144478D28E1A934D7128EB253F009DC8E29990B2ED5 |
7A6BA877DC7187AE231DFCFBDFFF5E37D2904C629545BC1C69F55AACB1BC6B28 |
6968C5905057ACA84BC448E0B36B65156A45FD08BE9ABFE2624DC77C20A0E179 |
718201ADF0502C39F542BA35545988244DDA5FFEE55FDE76DB6DD8B92CA11B5A |
C4A2C1791A8E871913A96FD14F94B1630921CCA163D5CF134E38E1339FF98CC6 |
73CC31C77CF6B39FC5C5374C298BAAFB597DF85B78AE430E39E45FFFF55FD38A |
7A8CA73617ABCF894BDA50D80E2CDB4DA7A62B2D29D280ADE90A3C4B52B5A8D3 |
67645D69DFC6347271D0D5F225EECC112AA2250C14BD73CD35D79C78E2897601 |
43847999270DFBE17BF116CAA25692AEC0317B3B41206361582F07EE382FC600 |
93B0773A5C173FF7DC73E510E765B933D175362D65815AA04F7CE213FA0C3B76 |
BEE9DD37607D17F6560D80F61531ECD145964989934F225A9550B519C5D87510 |
0F6C7F289107719694DE12FAE588238EF8C77FFC4774B0D68B2CB54EAEFC2A56 |
4D26BE0C7D5A59C46400B146191A189D9C9ACC43566F26DDBC275DBCFF4B5F78 |
DFBDBFDEEACFEADD5A77A6161AC3413BBAB739ECB47264E353E3B591C16E32D3 |
A967B43EAFE7A1D14DEB796BA03635D66B4DD5770FC32F9052CFA79FAE4F3F3C |
90AD1B3B386C9BAF7CE65FD68587C3B2EEF281FAC00EAB767872C3E3531BA709 |
32C7B58249C4B6DFEF8C26F9AC4A4D664B76D931B564A897F7D290356A12086D |
7DA8D54C071ACDF593D3E56E29B46CB757FC227F5B73DC6895F0E019C9C9D048 |
B56A698954D085D2244F7B1A4E29DECA1F45743EE459318A5C7252EABAB8B7FE |
A79E866EA61D580CB29B95AE705A06B4F5B7EEF330BA6C6ED7133F291630A6BC |
8EA7A487D7D7BDE5F3E8156BF73E83200EBCC5B807B758D05D64689E71C61927 |
9F7CB26B17AFBCF24AED7C9B1D2E6566B3398564E1192A9E2FA41648CFB464E0 |
22A09D57A4B0212A1088D97C5D4AE067B103E9F4AB4F07C73CAF78CBFD22C388 |
07152A0B5B23217A8A9D91B8B411D146145723BEF0C20B2FBAE822D9208EC887 |
C89E35FAE0F6DB6F7FCF7BDE639E291712782EB8BD0EB91E4FE73CAF08EA0C70 |
25A641B4C12546BD8AB71311839D9E5765C44E066B6C7A933688D258E815849D |
E357B19B9B44A563F305D3A5975E2A51EE6259EB608D4D0A49CE594C31CF02E3 |
89F2E09A40BAE1EA7D97FCDA72C4D48A33C10E7BA2CF80E67A3C706540A762D2 |
637B8DA61E4BE6960A3039DC82EDFBC217BEF0DE7BEF655919D591471EF9CFFF |
FCCFF4020B15DFA1930E087783E310E5B6F1993D074B7846BAA668CBD6CA9E39 |
1A121822943D919610956AC4CDBD69A044EA1D04598C2F5DB56A95F4BAAEAC6B |
9A27445FC76AE4B23241B439B9ACEB95FBF2616C062F28DB09F705B9B0EFBEFB |
CAEA32B14ED892A7B2A59789176C4713FCA7A5B156D3EDA1180CBC54BE69DCEB |
82AD45C61A9B5217D7836B5921CC71CB04A7156280DE62E32704ED1B1D7BECB1 |
37DE7823FE745C1A1EABFF5035EE45F669486C3FBBEFFE585C381E2A7C80B193 |
B256B54F8CE824998D154E48D31219F1B7F039CDD2E1A1616991E999C966ABD6 |
C97ACDC1FACC44370C855DFE649B4DDDF51379577A67C948A160870B486A5B3E |
73D24C022597B206DB45094F61650D8C4CD546DABD56BDB97459BD39FDE4D3E3 |
BF7B5CD739E80D2F1DDE387CDF1DBF9ADA38D1AC35B6DB7DFB87563F94F49E2F |
ECDE82D7686192D667BDBA7A5A2BF7620FC534D01AD1ED9B456FC102985CBCD3 |
285DDB96567F60C58A658383AD24CD4B8BAB3ED39E92930FAA716A7C42275B57 |
E35C4F4E4ADFD632D920ED6EBB97497D4D757AC5F5507F28BBA45E6860E9D8C2 |
04A89746409E487327794FB3346B16F47B7EFE6788B2C54644F3BEF624FACCA6 |
2DA3CAE6317FE50BE198D8E1FABAFB7721F64384BD45356847C117D477A24395 |
F2881B95FA2E9044BA2CDE5515187656C07E46449941A9FA4911B351B4046E63 |
C9E0CF1BA34E24C9DC23644243054F411B7A720C34493827E88C50B91DA14AB9 |
BBF699844DDC4188C119A519CB9DBE3D1A77568FDB4DB8E52A60FD1075F3B605 |
61A23BFBC77DA0FC73CE39E7BCF3CE7334FB631FFB98FC805ED50331CCF55192 |
C511FC3864A82E135C20FB7A11672954C366A472DD8EFB87F39251F20FFFF00F |
8E764AC0D11AD3FD79EC71DAE678D7BBDE25598CFFEDE80A467712911CA1FB89 |
F7EA91FB2ACAB9236B17D3892022B10680BA20B877DE79E7A38F3E5A6E131F23 |
CE41126BFFFDF7FFCD6F7E63AF5DEFE06D7B0EB59B4F3DF554A226D0CB91FED1 |
8A9C75D65971B91B8FD3870C67279C7DF6D9175C7001D87D0DB25E76B3D7ED74 |
2F59001A89A65193699B433F31B33CF31A217FA29384E37231381937B76F4B33 |
36A7813506F9EE3FFCE10FB7D0422ACC4D0B25D10B539DA501BDC9121F7FFCF1 |
5FF8C2178CB7D49C77AB3E867406244A19AA281FAE30D4F0D80A8CE7BDEF7DEF |
CD37DFEC83403E12AE370C418FD0AC2C0B8E3FAD18AD4305E9D20693A8628710 |
18A44DA174B3668CF4B07B9D6A92F5D7030E38E0C73FFE3184D858452CB12EF2 |
C94F7E525B42768021F77CC03E53CC1EAFAFBFE94D6FD2A5981F3A9C0392EF56 |
2DE76269AED7F0E092B171780427A43B864764DF4C27F550A89366D8E1C5DB8F |
251B075736D615A7A0EC9D9AC917D5E5D250E25D82846DBD782BCF9A53BDE96E |
3D0C0E0FB4F291DE33F58987A7B367BADBEFB9D5538F3E9174C2486338EBB6A7 |
F3E9AC96159E647776187D55FB2EEBEA1F6ADAEC75DB956C94FE250B10924AFC |
24C54A85AD570E49E31619999DB76B0D34A480878606F2D02D9C885A989999EA |
E6C56C64DD0219DA9E9A25186FD4EADDF650893EAF499376DADDF1E999E7366D |
D8B8696AA69B4C4FE533D3850EAED79BB5B444C9F4DAD2D6A1F088A1602D14B4 |
1473B14B9334560C7D9994746E872294310BEAAC565C6B1B27B9AD2617CC559F |
7EFAE992A58E9321D20DE5716375CF703CCFF108E3125E06CF2F98DAA649F1B1 |
B2AFECEA801095728408D54FC8CAE4B88EDEC700640E51A86200683A8B08D3AF |
D24902F168871819F53C67A1EEA73F5053E554685F3C3D940E87AB3EF898D171 |
0BDA86D63436079086DDB2B1BCDE9148C2EFD965975D74653747C2C43082260E |
FE301759455677C61967C83DE52E18562EE28E5F5BCEC17845D95871C8DE691E |
FDAE41D2FD974F82B020E646D29778A0440F010DFA995B77F6214A1C99D452ED |
BAEBAE12C716F1FEB0CF3C41059CA7830E3AE8E73FFFB94F8EEEC29FEC481925 |
81A0972A45F2C6FE25CE2EB17AF69013C97AE78D6F7CE3DD77DFAD357AF8E187 |
BDD6FBEDB7DFFDF7DF2F8B475A138B847022AB43C2FB4FFEE44F7EFAD39F86AA |
A5AB2EF8F18F7FFCC31FFEB063387D24270EA8C621AF503558050AC4E3B00A3E |
99E6BAB3BF45D225D68879547E87EF6583DD5964B634611B775CDFB202F65EF2 |
790675423984AE661AE71D76D8012880339D440560CC201ECBB9B5FF1783DBF1 |
E9096B13CB25900095A66CC1BCAA13053B0699C99673F6082C2D0D011BDEAF95 |
7D8AA8C3264DA515A7BB00B970702ECC18807C60FCB6C2E35E75212AF707CF95 |
54142B612E9E366E061A438BE72BB62AEB61033ADB71C7ED2FBBECB2C38F78D7 |
D0706B3059B66EFC99301AF67CD96E6B363DB2D50B963DB17E6363B8503B69A7 |
FCAF5736FB93CFDC08FA2F69078DBAD90C438D66FBB96CECA16E78AEBE24DDEA |
D57FFAAA1FFDDB0F3A613AAD877617399B96E1A56E1C4E0B115AB84FF1CCB211 |
847AA758CDF2BC27D27659AD78D87470586653B7D5D4FCAF78C1AE3BEFBAEB4E |
B57AA2C99C6A8FCB8F95D72BB75E3BB75EB8C5B9FC5E9D2D88C7F35ED6CBBABA |
1006E5606DB459AF4B7D1673D2CD364D4CAF5DB7FED9F5EB9FDB948E8F4F8F6D |
CCA6A60B1D5F4BA5036441E449361B119C4570D56B65A54F636A72D2E1DFE479 |
960F9D9AE7D9256342157C47AF32B804F7FC8897AC4F01F7656D5EFEF2973FF0 |
C003986ED0CBB8E9BBCB9C9093C603F69DBB3EA3C71039B690AB10DD64C2919B |
1829195F363611E00BD27E067EE45651A6A90F912B088C31ABBAE0501F85B626 |
946B8F2854482618EC0B94C63EFBECB37AF56A4C69E92D791BB7DE7AEB638F3D |
1697D55A8419A3E1BFC6C0E605C14D8C1B56332C775036E04DB40058CA6E95D3 |
C799E7098AA98CBDBA586404CF6D9119EA1CE60685FEA00286C7D50E531C5843 |
3A60C540F2002D0B1AC595D3400CF45756BA0F6FC58D08D5629739D8C246A15C |
12DCAC414331AB3652183C0ED901FD29C627BFE4252FF9CFFFFCCFFFF13FFEC7 |
673EF3192717DFF6B6B77DEE739F437003E8D7FCCBEB95FFAAAF100406766757 |
86DE566618EF6B6FA9116AFC1A9E7ECF2B92BC58AAC615A8F8F421EAED9344AC |
6714CF9C74D249F29CF4BEEC9B871E7A486EBD76A0F7807D262C4A0D460A805E |
D9BAAFF68FF4042CD0348D8E535921A282CA2A22214A9BB0B2F3B21F702863B9 |
B212E8776B54C81FAF806144D1E3E89ADA8724EF1DCB0166C9BE62CFC0A721AB |
EBD1471F35264E63DB76DB6D258C1C2BBAEAAAAB3EF4A10FB93128397BB49AB7 |
8AFB9CE3F45BAF2F38FEB4EAE4C85AD08A5CDF951835E33C9578EC22BE15B352 |
FB115CF9CDA1701C8BB633CEBC68D5D0E55A35DD8534181123D0E3DC37EEA22A |
69407813B3329E6D7935500E2C5D3A8A9DB4C376DB3FF5F4534361B01DDA432B |
06364D4CECF0B265BD91990DD954DE2CB4AC26A25584820BF12A2D3A53066807 |
F3303298D4DAC39B9E9C997ABC938C87C14E5ACB93953BEFF1C4338F8DAE1C5A |
BF61BDBCDEC1462B74EABD6EE82493F942B0A65AD43425AFF87C0AAEBAB440C3 |
76BA3345E4BBD07EA1D92A48DC0E3C70AFB1B18DCD5663971D77D865D71DE4F2 |
763BED75EBD63EFAF8C3535393DA4AC323ADC121F9490D8D465E7EA3D6E5B2CD |
9278B75CD41296584B6AA91E2A14CE7C081393BDE7366C5ABF71FCC975D9D464 |
6F7C7357A26B7A26F4BA69B717F22CC97BB3DEA1BCE0C2EA4A8A206D9160DABC |
89305BDE5F8B9819C308BA980DAC0D86C4D679817488396133CCEAF845C2CE21 |
8A6420181D70E565D10DA158EC84C41749E7315D032D666F3B9DE194565ED652 |
6ACC471C71C475D75DD7C7B0162B6020DF6EC54BE6850E25A47B7D41F7F06648 |
346227B316678209F561611B68ECCEA4859AE773925CF0CDFA90301D9C8AD8E3 |
2648853B455AAB6F66FB0C136C9997BDEC65D26D926E679E79666C40B95D12FC |
611CAD785262BE7B9B51F12D2C2F006FA32DD010F3556C5F9E237EB1B7D2B9A4 |
FF3CAC2D175C28EF12ED9E638E39E68A2BAE001C24B10BE48A3A489BFCF09038 |
0EEF68B67ECAE87BE491471C3786278B2C6F98D7B7D8EA1CA5A825877D5303A6 |
B0D5F7D56ED345108BFA493F1FBA8284CAE34476F3681A92AD1F8C803CA26763 |
2FC6ED71DC97D0EE14F626060133A9FBEAE9F44F8D049F0F9A0BD2339896DEBE |
E47A6311ACBF4AF79C70C20938F18EFF5C7DF5D5679C71062961AF9D876A2046 |
2C1CE3726737083243A72690C2275402058E71D5F8820A38CC0B4173532936AA |
86484F68C0B2EAA462591D935D50C8C45378F031D61A7146708238903E63BB04 |
6B15F001519FF9B43E5B30346D0E5240FCE77FFEE73FF8C10FD8EA7EEAFDF6DB |
EF57BFFA157472F64A43693E523240F987A5271B80DE6D3C8561CF21B29C7C53 |
8F4717C198C397CAA35EB316E873B90B52AFF8AB5EF9A7FFFB27FF5BFF5EB664 |
D9D8D88656B331D56E3747C3541AB67FD1F0C630B16CDBE6C44C57DE5F2FCA3B |
D58A38703A9C67336361EAB946777D33DB14B2F64C2374F5A7A98132DACCE465 |
6164606866BC9B84463B4C20F45838D6C53CB2A1F2A838416586AE3E35312905 |
5C68CD5CC23D2C5B5A182207BFE280767B7A747850AAB735504F348CF6D4F8F8 |
D8FAF5EBA66726A577B7DE66C5D265C343C30D4DC3E4E478E84E94ACFB531A5B |
112F9B0D616769D88C32CD7B9D5E9EB43BD9D84477F3F8F4FACD49D69592D021 |
6D4E4D249BC6BA9BC626A7263B25C6AB18465A4385246979127B9DCC5EE3EC83 |
901C0E5D7C219D0E8878890BE611341AC1A587E23032035944E2166BB83C0261 |
91770300CF61D7BD70D290F64EAFF2614ED37C278A70A079644D8E417E4ABB0E |
EE0E97B4C17BE3F05812A17A5DF5C495EB514FDEF8A9E5E1FCF297BFCC4AD658 |
C323902A78C988C498F22894B42106D084884DA870095CC5816484E8D86C967C |
216E374B7D67A81C0B333987455E2647351F16A68A0E9E748F7ED96BAFBDA49B |
B1B6A4CC4E3BED34B88E5D3E61B8BF25AC4F635E55703BB0CE8CC475AB71D277 |
0B0A98AD061428EE521947F3E07C9683A2B1E1BB5888C0299157F013F703B0AF |
90463487BCB4487283B49CDCC22CBEA403C0A9115F8D833F86EF87D269C365E9 |
B336624D16E6BA2F4C97D64217A19E8F9D44350E90195C28ED128036715F1D89 |
7EFD091605600EDEA338792ED992252719ED27753A90226317B0C6597FD055BA |
A9E188507C93F0A6E1016576D0E238A20EE5CB81071EF87FFECFFF71EE7FBE8D |
9CCF05F119EE8E0FD7376FFF5510562C5FE62A8C80198464215AC53A6AF6F450 |
7A041E16B79BAC84564113A8C388DB9194848214B35D73CD35471E7924B9FFD8 |
9966E7EB59A817586C9C1604D43861A56975F20A5CA3BD6468FDA73EF5A9534F |
3DD5149E3E147D9BAD567575E4178D472377691C377DD18B5E74FFFDF7EB1739 |
F49FFFFCE729B2B2568EEBE248FF6379E7735FE5C268136EBF71C3865EA7C861 |
4D8C6DCEBAB9FE6F78F9D0A60D63A303238D666DB237319D757778F18AC96CF3 |
403AD46974DBADE95EBD1426DD5A7366A0D1A9CB237CE6910D616318A80F17FD |
0BA7C6A4A7E505CC74C3C0606BB0D9DAB06EAC2A46A99591ADC1A4EA96C352C6 |
34B1F1A2B3A3A428A550B5F59A753D54181AACEFB8D3F63BEFBCE3F63BAC6815 |
859D43B2C1B25E3B49F3F6F4D4C64D1B9E7EEA996E4F2ED1E0D6DB2C1B191D18 |
182C92B3EDF6CC50A3A8059D962E4D42AD9E17C1EC1CCD31564B73190E8515D9 |
0B7AABDDA94DB7F3B65CEE7C2024A3211F9D690FC8997AFAE94DCFADDFB076FD |
6C3FC39A869625DD5E4927D26CF6DAF384E42C8EEBF9340DFD8BF4224F81B587 |
00FCF8C73F2EA17DF8E187DF72CB2DB1079CCF2D939DEF13B3551CA57BDDEB5E |
F7C31FFE90582054B59A55B7E3739CBFEF68E7731B7838776BB02732CD9DE643 |
54FE60E59247540144BF25AF68A78D8D0BF65B4FADEFBEE215AF9090B1948089 |
01CF078D3358BEFEE22FFEE2A73FFD29E81C77E48CFB0F85AAACB97892BE8633 |
B098526E0402B90FBBE436BDE81BC79FE3F47B5FA40E6C451FBFBCF4D6073EF0 |
011AB9208BF3AA73783E97AB369689F3130C243BC16687D200277490CF03616D |
41B0E206C5EACA3945E30E6C79B80C432615B931868DFBAB8F9D74D249175E78 |
A163A726A6703112D3AE9DC122C5C5D0611E4B465F4A8FF8B62B9D40F1306CB9 |
920F3DF4108D710027A366A4B17429AA4D8CA147D0833E8338C5731537CB7443 |
C3B422CA4FAADE35A424380396A1718AD77CE0F123C41B8689E52B0EB4E25B70 |
38F9B03EF0D18F7EF4BCF3CE8BB9825DBC4F34FBECB3CF9638706521466E2F6A |
B4E2034978EA6D6F7BDB8F7FFC63EAB6F5616B1D166BCB5881645E19521F6A21 |
ADFA2E609AE8E9682B891FAF9F37DF7CF399679EA907E1F3EC589FA0B89B087D |
EE42D50ED970B630B7DDBA0F3653BA85F1330FDC826F99FAC3D0481AA9C6282A |
82ABA0268922C08574DB6DB7BDFDED6F3FEAA8A3BEF9CD6F52F2CE78DC291653 |
C3D816F87BBB55AF6EB68D3B5A3A0C1897218528E8D568358BDC6A5ED4DCDC7C |
FD8DC71E7FFCE8E0C8F8D478B7D6DD65D7BD9E5DF34CB7E860DF4B86E45BE46D |
89E6C9505B1106764A9A2B8A8C5D7B7D77FAF1BC574C672B743B3ACCB572CAD3 |
7ADA4B1B5948867AB56EAF4B8D4B2DA94DE693794DC7206C37B21DE14D1C83B8 |
138C3798857271B892BC3C296178B03630D858B67474CF3D77D3611CDBB4B64C |
F7340AA4559A48D74E4D4E3CF6D8639BC7C67B5977C992A1152B9748FB365BC9 |
C060BDD0869D274B83BBDBA8273539CCDD4E896A9697BAB95E2BC0643D6E5B93 |
661EE8E5F5BC9366BD46C8476AE98A6E36BC7153EF8927D6AD5DBBE1990D9DB2 |
70409E6F018FEEF6666D85F6F4BC6603E5036579DB3E983B09CE2776E5033A9E |
EE7FDCA780F3454058BA2624187BECB107A81A0EF2C9279F2CB3CF3B9C5AF6BE |
DAD10543A173E8A5CA90AA6CBE638E39E6F8E38F0F6569ABDC3CD812B38A74DA |
AADD74CD34737BC31BDEF0BDEF7D4FDB529A1833EBCD6F7EB3F6B976BEFEBA76 |
ED5A9313E4652910CADB3154CD95D97B5C85EC91DF74D34D7A4019A37C2B217A |
E9CD141BAD0EAAB8F88FE0A471557EBF8F5E20E6D1E55B4C6E1EB523A4CDAA99 |
D6C195108808F3C8CDB760D1EB5BEE01EC3370EEB9E75E70C1057D7D4B9CD200 |
D8E280839B0EF5AA066A2E5A8D79F9CD65CA0C9C73CE3937DC7003DD115C3A89 |
E76AEC89938E313F2A0AC9A82EB20B164F71C0CD368DA12E7C4BDE0FCE370C59 |
0EEA86A8159DEB47633469BC5FB115B00789F9F4AA06C646C5539B4BF0DC1CCB |
E619A69B1E33E6AC64ADEAC2C66AB213F47523A8A9DFC51174723AABBAD76515 |
09A2792A5C9CC046E59073593D9AEB6762DE862D28CE18F2A38BBCF5AD6FBDFD |
F6DB5190AED8D68ED532E9B244E9593EABBAA4E23FD72F183ACE56F031C2D158 |
453142C71F03F342E00E0B2F54A8FE785BEAA04A7CC498E1AC6A03104A3AEB6C |
6E53F450259C1C8E73E2C6E13B1F6787E8D38A3498B8579C82C1E1265001BF15 |
D639C464A1E2FEE58E9850310E8ECBC65238FC575EF9DC86A1B67B3001635466 |
884274495488E2028A5099B071D6C302D16C2A284E57B2C54C9C59D9548393E2 |
4E53B39E53498D5904C60BCE4AF9A4BDA48418D7EB5AA96CE58AE69E7BBE60FB |
EDB61A1A2EA2AC59A7B7CD361256C573D51B3AD70D9D92A9E989CD9B37AD5DBB |
AE3C2F8DA1C186B46FBD216757DE58BB9E4FE867C867F26C3A290B8A9222FE9C |
248D769199EED43A3DFD4BD233A4CDACD84A49B3D7D50E6C767B3AFB031393E9 |
E64D9D89C9F686B1A98D1BB3B56B67C6278B69498A92688DB4D9C967A471537D |
3927F85C761A4E6605A9B6B3DCEBF26877AC7D39DAC71E7BEC1D77DC210108DC |
01FBC99236AE4AE5C09A10CDD5B160A731FB74A6D6AD5BA7AFC03564CF27548E |
693EB700CCFB219DD7DE801892916531F7806575FC0B6E640CF0843A900DCFF1 |
9CFFC26173EC5A3F0F3EF86039C79C47DED765254277DD755778A8E86887347B |
D5AB5E25AB8B78F82CF20D8786966A881EFDC2B942921A9C96540C0C48018EBD |
D381B16AC48F41A080E9707D21BA7C7E6E80F3E6EA66FE84E65BECA04209C253 |
68FDA4930C10302E9A9D611266E7DBCC5F9357C0F1B899BC9D72135040FDA8AF |
A051ACFC62E253595B0F3CF000C34337A090081B20E6080213F14EE611EA3A51 |
D7577315AA7429D2562E947CBE988295ED029F9F73300B2A606FD65856E2136B |
6C306E92E6D7C50126C02229EDDBC704EB52540C615D41AB9094DD7B0E3BECB0 |
2F7FF9CB18B9D4491340D6D56C8524554B00B3B392ECA06C805B9C78E289D75E |
7B6DA8DC6B5B4BB615F28AB669B1DCAD5D524400D279F7DD775FB3660D6808C8 |
9F111F32514F3BED348D84EABBAC6A5CA195D5B19139FC4FFFF44F640DD848B8 |
71BAEC2DB7DCA24776E10DC635755FA1A4C1D3EDC049E555D3272F7112159BC5 |
74220EE0C76A238FD0EF905AF0B1F3CF3FFF924B2E21BBAC8B00B6322B4B5635 |
0C88E3BA76E0F2AA9746AD6A68CAB6776C233611E29006A74056EF29A79C12E6 |
A249D3A827F47F55012FF62737998983D83182DAB3E4787E88FA72326FA65930 |
EE77CB0A18572CAE8AE4FDA2DEB79B9745B7A0B17A4582B6843D6FB7FDD2BDF6 |
D86D871DB71A1A2CF24783CD565968D71B19199678EF7467A6A62664FACAA3D5 |
75A483CB0853DAA84B37E7B5B49D8776A17ADB63592E4F5D2B3889022EF4BC54 |
6643EA2D91F53ED30905323CCDD3A6446E68A4F55E5ECB3319D6437936D4EE34 |
66DA49A79DB7B3D6C64DD9D3CFCC3CBB76D3C68DEBA7A77B494FC643AD885E17 |
46844C8752D314BA3D97026E1696643235D559323A3236361E7B44C6F1217628 |
D53598DF3E80A52B3F9967CADE5031AE6E304BB1D78E64705E023C43E5FBFD91 |
0AD825CB7D8C6FA855BA42E17818F4C3B9901CD35D5C9287B459AC20029B8CE6 |
130E1ABDE31DEFB8F5D65B43D478D818EF3017E421F172C5155714BD2E4C18E6 |
B8A2B7AC6E70F8E187CBF5D6F176C5083DD4E2E07B4C23A7FB513B6B42D45AD9 |
FD4D4AD1D81F7DC0D88DF9F0F4BC62EAF0F59D655CECA0F2C95AD4098B3FD9E0 |
D59F5EF18A57486FC5856B3C6028D155E62B616FD1621D50554C5784DB878FCB |
2D80C9607F60CA6969DFFFFEF77FF6B39F0D112510CB4CD6445ED7F7BEF73D30 |
A821CA8BF40555D0288E31840A71A0BBE315B19F0C0D4311020A835E0A601168 |
52CFD58201F9BC62FBC3C98313DBA5687153CF1035A1824315B2D23E98B473D2 |
A85E5B33A8190E6A4C0CCBCCF3206E5C6F4A3516CBEA9FC373D145179D7DF6D9 |
0CC900F82DA0975D716826E478CCE6FA18295FBA1AB123E9CBB46A241047E3F5 |
C8B8F28452D1703C3848EC18B584A5AF973600116F6C0897D4E7152524196E47 |
5928746603C466A215892FE290B509D4340CDDC5BA073E3FB7F8B52EB12B6CF6 |
4AAB22F2BE66EDD08E222D05FC9E3D4015A2EEA555A6E5094B66ED9B56A43A8B |
11E02CF6CAE7925C7A119D977101B7819CA1E23FC2AEF5A2136CC39072C3A87A |
D488DE7B062DBEA0020E7359043CB05AA3DEEB140CD5B594BD076EB1BE7CD9C0 |
0107ECB7DB0B766C35D35ED6999E18977A2D7A66D70AF52F4F77A63DB569D306 |
09F0620CA996A6A479977E4D937AAD1B9299ACF07ADB696F2A0FDDBC2773411E |
705B43D014940A585AB7D6EBA6ED995EBB5738E28D5668B6C2E8C088FE9E8781 |
24190CE990F64E129A21694C67A39BC792A79E997EF4B1A71F7FF2898D1B3675 |
A70B7476B74475E559AD20C7D2554A05AC0B643DED8D8278AB3D93C95C989E6E |
C331EE7E622ED3805302003061242B3C0C1753C0EA1D63E3F392AAD3B2DA7B1E |
47C509261D6DEDED77BEF39D175C70C1820A38D61DB12CB556761B18CE178A09 |
2166C33A2DE9F6C0D3E8AF882F10398B198278C09C7DA232AED3F12122A984D6 |
A76F10F601876B962999F101B8C5BD40A3201FFFFAAFFF5AC63E1CBFDEA06C59 |
EF7840403C958625FF861A414A12796C04A553D92649080BA5D3C83D53FE65CA |
F8C50EAA2378EE50042C4DBF4B8C723839937012D96772E00E7CAF0510B12C3F |
601A757FEA2B168AEBE71CE1D4E0A5056FBCF146781649DAD522CA656347699A |
C4EEECB3DC39F331F156AC5710F40C29468987AA73406C6AA5F3BAD92CB6A51C |
0B49CA72A0471E79445EBE14A446284FF1F1C71F67D548331378D03B5AEE7DF7 |
DDF79E7BEE8145415BCA61E4382282F886795FD7DC6FBFFD640F712A08AD1351 |
D4C875770AD5F4CB073FF8C1ABAFBE5ADF7244448F0C39575EF529331A0E1C40 |
1F1B5C2CD043C4A1E8DCB98E8106E05660469CC999BBF2CA2B6D258408CF693E |
32FC45F695151E7BC08CF3279C7082FC69BD49BCDACA83089055943352A13271 |
CC7E6547D3A11423AE35721907AB57AFD602C935770984FEA4FBFEFDDFFFBD36 |
BFF69BCE3521190D127E5D36582F6A9B88AE754E843821C721F6804394E6E0C5 |
A2709AC095F41DCF9889FABFF4EA53C04945B070CD35D77CEC631FD3D2B31026 |
9BD35F97942F7D0672B410959F91C7C1F240F4C738D83EBAEC304F012F98772C |
BE524BF3727D8A752999375A0DD9ACCBF67DD16EABF6DE63A0551B1FDF544B68 |
EC5D4049968E8ECC5EA420E5EA9536C47499539F2CBDE750972F5BEB25A9CECE |
B4245F2374E4014B01E7F98C3CE0827A232DB5644363AB152E6CAFD034B57ADE |
1A6A0E0E35960E0EA74933AD35D330189256485B696DA09636364C0E4F4C359E |
79B6FDD89AA7D73CF98424CFF8C6E999C95E47E3E88542BAC8832F42E839B5CB |
690D96853054043CA6E27D18C7A26984609569AB3DC6F0EA4D7D5EAA44BE1CAA |
FAE0830F064B8C22B72B6C3FDB3DC2912134245E50016F0193311F66C5EF0870 |
3BCA5E62BB7C063F6DA19E3E54D85B675D438976B6208AF3D6B18220DE06EB46 |
B103F9048AEADCF215AA108DFECC842631197AB900E8768D6F45F9D2772D5C6C |
90E6552D818672C411477CF7BBDFA59D006E449F6BDF3783269A26D26B5F70FE |
CBA745573EF0C003EFBEFB6EC7EE687C4119A2F4C725975C229FE9D4534FBDF8 |
E28B43C52C6126CE983F99161F587C8E5B1223052B4F78D6F9241A40E515541D |
C06788EA8888394B39518E06D84F5F411FC460311B712E79D29985C77FCF3DF7 |
947265F720F8F48265579F34E1B3E65FBFEB93481CEF8305F56E32B76C8C4385 |
E9C3B1410DA45577745F4D77D177F13B1D158FBB7FB085687181C985D6C1890F |
11DAC08C0D109878247473E31DCDB0B619BD50342ADD1DBA73EBC2F94771FE3E |
C11E320F946EA7C93FE8A083FEEDDFFECDF28251C98E01576C7E0C8E197B5BC6 |
3285464959C68DC6224853E07227269C1266545A41A01CC81A37CA75CEC51E6D |
52D5087A77C515E4C643F0A46EDE403495F7DD622876DD42E5E223D46242096F |
80383BEE45F1B4C0F241C694CA13E40357035609369E6265E79B6B55ABCA2D84 |
94177CCDFF7C5CA5EA280BD6009C71BDAAB7291D5C42C585A9A13A451D4AEFCD |
79F1B46A94D9474611E629600CFD24E2C08A765D313029C35ED6D3A7B7DD6E78 |
A79DB7DBFD053BECB8D3F6EDF6D4C6F5CFB6061A7996B465B50F0C8F8C0E31D4 |
F24CD508C09646615973517499486AF55E9A1421E83C746A597B560167336952 |
6479EBA9EE25B726B8264A836D34939182B5AC39586BD4D266AD3E90D4060A05 |
9C34F38290B2B6B9BD6C7AAAF1DCFADE53CF6E7AE6D9E774729F7AF2B975CF8E |
4D7502E8E8503C41ADAA41CA927476E78C94C6CAF0F0286ACC3886D889821A81 |
909549D9E663D310B3E8363698D691463E4C29FC10569C59D5999B74CF7F4901 |
DB69891322ACBBCEAFEE48AE8160188927095849182830E3FCD7622FD4B34410 |
B4B83285DD82D3FDB0AD5F1CAC9A053F57D8E1C4F6AC5C0182AB3A4E140E71FC |
62CE0D30D93102426F52C660C9E2436BB8698CD20A155424995731CC4BDA4BC6 |
115F975DFFEA57BF5A9A9B64F56207D542EAA52F7DA9BE8B38A336836303E49D |
70A88EA8CCE79B6EBA492A191386FA28B34EA6152DB383D29C40A3409D41B44B |
E46C5F6C76118D6184F8D031CC355416405F902D44D12D6D080D38AF3A186615 |
8974DC2F3244404137CFC1C6679217335CBC7193A8A8CEC7A94C4ACD76B3B73D |
A1BBD31BD880ACD835775E565A4AE298444B5EB5C5761E08CB8348A9461B130E |
FBA5AD4CD04563A066AE56BD6EB8E1860F7CE003586F6820294B39EB2E045FAC |
6D22E17ABE05E2CCADBAB44FE00E8B7B91EA93F2B464AE19E7CFBAEBD911FD4E |
CDB2939D8CD065B5B2B2FC10FAFAD67BDFFBDEEF7CE73BEE87A19F08A9F94E55 |
52756443F440D608C69B681E36190F4B459CE108EE2CE49D8F978F7160387D3E |
97E5C63930DE71F980219DEC79371BA64CD1ACB924CEDFF296B71027EBCBE4C5 |
72F0FF2E071C4B58CC975A49D64F9D925E5A5610E6D6A071A1415CA362EFFCAB |
5FFDEA61871DC694DAB274878CB088071C8BA9D85A92322DE9A80A8F569EEEB2 |
E503BBBF60C79D77D96168B8BECD365B27796FD3D8BA62757B993ED96C0C24E9 |
F3392617BC164B95165F2F0D02FDB317929990CDF432FD9C420187BC5D940237 |
82146CA18007D366BD564003EBB99CF0662B1D6C355B034D39C67AAB561F4A6B |
83696DA8E0E70CF55E9EF4C2F2F6CCE0C6F1DAFA8D331BC6363DBB76DDEA871F |
7FE2B167368CCDE85864BDE279E43ACB8608C526D41CCE6898AD566D665A6ED8 |
7239355452488ADE71C71D4C8EB32D8476D999E04CCDE6EB92048399311AAEB8 |
E20A79446E2443A931A194B855895B065841FC910A38569369C51085A1B9EBAE |
BB3EF1C41370ADB3E7E18EA5DACA1B2666599FFF420813927155A7FF4AF40B1F |
1ABBD646FCF5D75F7FF2C92703379E3DFF7298E44664556F13C7C14806F7F540 |
76B4CA2A9D6F992287E7C41AC5E3C12A476C39B2D7172AB4E7670B173207840B |
6D89173BA831A902A0301E4F2394B1C31A939A02DB02AA486F72CD989B5E934E |
2B53D28A56754E336BF11E7BEC313F780C91C77781C810D480B3E96C0B5DFCD2 |
4B2FFDD0873E84EF1B73A3CC7F289E45B7D0EA489AEFB2CB2EB2457EFAD39F6A |
A5D88EFA0C28655F1F7BC216D5628C488E40C632C51771A823E6F8D530DEF7BE |
F77DE31BDF70F953527178B95993C5740C2CE217103D2E2BD23B9A878F7CE423 |
DA030466B98B1B73F9E470B039CC1C1570D7EC40C640EC21A9D8B5B6E0012355 |
9D737524CDBD87C1751BDECC0492AA711D366AD56C12B7DE7AEB11471C71E699 |
675E75D5554C26C6848D338D10826B6FCB3E4736CCF54443D5BFD9D2D97DA2CC |
64C94F89426914C9087B7BFA3C52A32F6711AA5EB676CAFB96DEFBC1E2CF4071 |
ADCB9D77DEF9DFFEDB7FE3F3687D82070807D2F6B8D7943319051D2A056C17FF |
8F7FCD8F3F23CA39A798659224C0BE38D749C54A96571568216A76699560F23E |
A36493AA73CC1F54C061AE6B553C785E126C75DB79AF3DBAA4B5FBEE3BADDA7B |
D76DB75B29FF70747848F64FBB33DD9E9E29A272DDBC88F1A66D72CFD2C7DA0C |
C6370C3630986ACD460D0874B737297FA7D71DD3670B087468D7D34201177AB7 |
564F06B54F92562369D4F3E2CD46AADF0B244AAD5EF65D68D61ADA78A3493AD8 |
CBEA5996E4C9B02663AA3D3C3E1926DAD3EB376C7CF4E1A71E7BF4E9A79EDDBC |
69E3F8C4B806272D55EB65B3E70E41BE61C3E6654B976CDC38A67D45B6056FCF |
492EED4370F2E82DD75BC6D6BC839D46509A7E80E4A0F3FA64B5AC1A9861C420 |
3267B11CF0827AC1174107E755B76F086D407EE11FA268B4C9EFBEFB6E78E830 |
9149B96EF9FA680A94374910F7048A41F859D5A291370958EA5B898DC4CB2EBB |
ECF4D34F27EEEAEE780C1D47101FC2474B368B9E815242E48E55789CF28C9301 |
2C46ECF1F4D935A12213702B189D34CCFC2DCFB5EEA8F148FD1835EEF8B97EDF |
6BAFBDE4B785CA22A6403654D95F4DBDD6C3E568A06F8E3EFA68992A00C7355A |
67AF5FFFFAD7FFEBBFFEAB0BAB42E5F9E511838F6BAB38D8AC3DAC587818BA3E |
8A332640EE5B5A7D0B2098DFB7CBE5EC859FC89EA57307A6D7E8F3487CA33ED7 |
277E690E256701EE1ADF8B2DA5017FF6B39F3DE6986334C8BFFAABBFFAFEF7BF |
EF4E2371E52BE61A4E89E1F106AFEA33BA3EBCD9AE8A71791857BBFAEAABB51B |
CD3B66E648CAC3882282A6F1098F294817DC2431AF4DA80C141ED0591F23ADB0 |
EB01BBE5158F34790AD47FACF02873EF557DAB92AA96BDA8F32B35937B66B860 |
A66FFEE39233CCD9CF7DEE73EF7AD7BBCCC5C65172778D506208B8A64382E6C6 |
22191F7B037D48D138949A56A4BB71D20BBF90380A0479DA0F71198F318F54C4 |
02F5B0F1E1A74BFE7F9421F5ED5B143047062163A84B88DAC3B8AC31AF1A2DFB |
65A85A98EB1CF719250B2A6057152615EB1980F0C1D650C9C4372E05BCED76CB |
F7DF7FAFBDF7D96DC5CA25BD76A79769F34B65A6727F35A29025D353ED7A2B27 |
3E59A2D3DB941B48310FB58A70C5809CD8C146A329AD3ED3E94E767B3353935A |
C74EC867E401376AA1D194D22D7474DED26191DECD5BCDD06A268D66DAA8957D |
16927A2FCBB35E2349A5FE97C809EEF6B452A17099EB2BF3B06226ABCBB39E98 |
987A7CCD338F3FB6F69135EBD73DB77EC3FA894E5782BD4806D74A50950E2BE0 |
C1C9093912050537A93733DFE9050130362B0189B3CE3AEBB4D34EB3BE319C56 |
4BB6F3CE3B4BCCC240CEACF2BE6B6DE255307932712982947FA402EE0B7D8728 |
79C1B79CB772B5027BB52F9FE5E6758BED4F7D1142E26BAFBDF6C4134FE42ED7 |
5C738D6CF1071F7C30442D11B9204E20705DDADC155FC14799FF02D31BFF3394 |
CEA2410DEEC7C42C10D2C144656B922440FEE29223AC4D8C194A2729E6D637C9 |
83EF1B17692C384E9C157DCCB14147A4911A5C9004305D11A5D5481A81CA267C |
2F358F9840CD2425321C551AD75992A5E018E37EB9F81225411491B6F612CD9C |
7983A87541DD4B66013D09CE38E38CF3CF3FDF053031B57D32171DED5F1C5A88 |
0B039C338E016E49052C64A2E23A48EB2ABBDACEA5214CA5FFA4653DAB80778E |
3CF2C87FF8877F40B51069E08B449C386C260AFEFBBFFFFBF7BEF7BD7195B93C |
3942D364D3DD7CDE016D4E3832D4C5D971A83F44EC92463DA04139C3175E78E1 |
273EF10988695C11885EE179D388AE3C8EBBB2D036C0634BD19D71815699898C |
E3840FADCFCB153BE79C73987FA6054B085FD64AC8629D8310AFA33712FBD6B5 |
950E85F92C987CCA3CEF0649207A9C13E96BF96CA81713129F6E664372E4965B |
6ED1C73892641F30C4ED9A58AC848AF5C9991A669B27425F6207CB1A88695542 |
14DFA322912814F072C7FCBDE763216898181B86A498A5139112AED3E7768385 |
76D82954E6AF0BB8F93CF36932137B2D05896379104BDC8C7ED5892BA6314D1A |
9974447762F98AA155AB76DB69E7AD972D191A1E1918196E5455E9A53D925462 |
36C9084E92AA9F2A5F05DEAD88271709ECA181963CDA9074BA9D0929E0F6E458 |
1E3463D36922D3B35D107414FBA2D64BB50365F4248D5A56AFE5CDC2F5D5DA97 |
4C594941FE2C4D9A87669E0FE64933E48D6E7D246423596F494886EACD4696D7 |
366D985EBB6E7CCD9A671F7FFCA9C7D63C333121959FE3B3C98B6E35865CC913 |
238AF592AFB2DF7EFBC90F01FBA6617FFEF39FD761A71196055D1F58CF6A3576 |
CFBC55B8D181071E78DF7DF7911B36CED4106B963E8BBAB8CE87F8C5A1E9BEEC |
5E52D57C2FA6EF1032D9DC1620DE90AC9AFD01288CF48CDADBF6396DE1D956F0 |
AD4355CCA60F13D665AF2646C9F6BDF4215D0B89607F2EDEAF3E061C21C41378 |
138057085F44468CE347FE7265363A397C2C147C11466546D0BE4297F875D451 |
47FDF0873FC4A3451486920CCB143FFAA2DC68FDC49D757D946E016D6FEC1825 |
1525080F8BF4871B12EFADAFAF91EB35DD0F84BC85972ACE7FC7F539264FB67F |
E9C000FDAD6CFDC43A385435C1B6F20C96B12CA3D702B10ACA8AF84CDC362344 |
5111DFD7F1F0BC629D24F4AAF10082754D5156B14D61C48588ACDB17E403CEAB |
49E012A0E64F98B72E058E4FC5FC66EF712D694C5BC16529F86643E2B185120D |
AE936C3B1AD32444F9F5BCEA9514DF9AE2635D67AFBDF60256C6181CD72174A1 |
E9D5177910F2E59088D925352E57EF48955A16D83F4361203BB422F274FFE7FF |
FC9F6636D5E07FF39BDFE85B2EAF4A2202F77847D97689B538BFE8FCEAD6B621 |
208E4773B3DC9602049CB8358DB33C217139409F20C3A7A133310221A6A770F9 |
BB0537A139243884A38E39114FA688DCD1A37CA1CEBB49C52DCFC98D6369CE11 |
84CAC521E28255173394814D61F3C711113238A6EC20CA4534A2F870D64B92D9 |
46F77941BAA1EB2485564EEBDDF6746B20DD67DFDD0F3AF0852B568E66DDE9B4 |
960F0E50E6C4E9AD5550A082610A78A91530166A413459AFB79ACD965CE1824F |
A3DDED4DF5BAED3C9B4C422724D25233ADA68CB67CB0D990571D1A458D903675 |
2DE9160AB88C60EBEA3C574F37CA24B274C607BA592DCFEA93D940A3B6AC51DF |
2AA90DD51B2D4D831E7D6A227FF2D90D6B1E7BF2F7ABD73CB776D3D8660D4612 |
2014B645DA8A1BD079DDF3A81B92B65F5A520FC57166930730D549D9C3C01437 |
1861C618D2E08B9C8BE6FC90430EB9EDB6DBD2A8AB8D4519D1B23E3627EFCFF9 |
39E00515705A35E59BFFAA452D92E67FC6014EE7F5F80C3C8366988FEB95C35C |
6C07BE100D490F3FFCF0BBEEBAEBC9279F841165E1576C843AE0192A3BDA91CF |
B85A8690825C10797512553A9C56547C86D86FDCC1580BF0D18F7E5476936596 |
6BB771E9EC95F64593FCA21E8BBC85ABB64D95873B62CFAF2FD0E7B070CC01E4 |
4C922D68F607784554145736598439C91C8566DB992B005D6E9FC9E07004071A |
0E14180B162768FB7EC6341DB1D9EEB2164F94298279B9D56098CBECE1940CE6 |
02BC0DB6033C33B6346B55EBE5BEE65412E8925F869B01D27EC73BDE71DD75D7 |
21100DDB4632B25E5CDCDD30499452C7895916D70910C04177D215402F5D9027 |
ED554DA0F54979729FFDEC67F1D540D4E3B1397E557927B3E9760A7079965D76 |
D9E54D6F7A9334E2430F3DC479DB7BEFBD75CCF414EF7CE73BAFBEFA6A93CFB9 |
7B4152D26B4351422310500B71F884C1030BF0BC618799391C8DEBB3C045586E |
874656AD5AA5878D417F6945D21E2A1C2991A72499E5B9E3D9899F0330C4D787 |
3A0635C6314151B1875DADE7E98A259DE656B6EF35D75C4303AE5061E2624A13 |
67EB311ABEF5AD6FC94F72D829943920B8A5FCC8AEEEF59EB7ED65A5DE8D7AB2 |
EEBFFFFEB2B498376A5774A997BFFCE5FFEB7FFD2F82FF56FF04395DD9E217F8 |
708DF00D6F78C3CF7EF633CDAD0D74F044E03C661BFA9627A06C0891CD36ECCB |
BBCDBA36FFD62F7BF98BF7DB6F555A6B4F4D8C953D0F0A37B4B263EAE583107A |
996D5147931B4AEC0A9BA36C3358E8E0A2DBAF547C41BE5104B193E924EDD66A |
B203BACD5636D84A5BCD9A14706D206F35925A5DC398A9CB1B6E686FD12A292B |
A89E354B254D47BB5BEBB66BFA7DAAD31A1CDA667860DB7A6338917AAD954C1D |
BDE6B3EBC71E5FF3F443BF7D64F5234F3FF3CCBAF189226C5E68D6A459368198 |
F537ACC03C7B46867A13F6F1D422030D760915CD1FB82A87915C144010983A46 |
36061C004626396A15D786F56D4BBFAC98FB0CB8C5F49D75EA82DAD720150435 |
7E941F4DFB44B703A5E8C012A3F5AD5DBD122AC2223CD83F9098897D1A0BDF30 |
8F70C3E95BDDE3C8238FFCC217BE80803669A55D2B7B6C78F1565A06DA583331 |
E3CCF51642D07EC2984588334398CBCCB7A1449FE2B382E70C513D833DC23017 |
14A38B80376143682AF4261E83EB23DD709EF5C06976A9B15914DC45D2113048 |
8528E4201389B0CEE6323AC5CF6EAFCE2ACA9F81508DC5D2B05FF5AA57490CC9 |
EFD7C84987CBBF79E08107DC9635CC651EB5E70148812344D12D054526CD88F7 |
2B71334C87242AFB768C51A698665863433463A5B9E107CA1819ED786FDF12BB |
90C0452338F4D8CE4670A086C1609389D74D3FF2918F4813B3EEF9DC7669BC62 |
8C025B2E9444F3B214E3F82A1A021E344D859E51FFC442C77ED2E3D87D648DE4 |
519D7AEAA9A79F7E3A17C7B8B153257B452EAFCFB063C2209F69281257DA1814 |
FD96B7BCE5EB5FFFBA6C594C6FBC61900A21229FB176BFFEFAEB35065D6A7ED4 |
D720091C3EF8C0FB96389DDBA1DD2FAAFBF49850F7852A390279087ACE66B19E |
85DA0AAE79EDB5D75E7AE9A56BD6AC612431708C6D9C569DD52D139D03E64041 |
E6635441886A2E42E597906662F02EC7DF669B6DF0FBF956DC990D0FD8E10D04 |
25E9A482CB3A09CC41D96157FE65C90AA961867C971DB7DE6BD5EE7BECB9F3CA |
15A39DEE64AF33353C32D869F72A6142836A37F3C9D8F0D6BEB39D884293672C |
83C9BA4B56326175EB69A180EB6947724BFFC9D51E68A6C576196CD71BA19EEA |
29A66B49AFD928DDCD5C0E719E053D51E8F642BB13A667349F450EB8930F0D0F |
6E3D34B46DA33994A749D15638C8F2181E1B9F79E6E975BFFBFDE3BF7BE8D147 |
1E7D4A27B5D12CC97D93963162B1FCE1C41903111F70D2F0C84C19DC58A81CCF |
B422F66711D38A9DD7357E168F6080F44F6A4088E1718598A33054D9965848A6 |
73894B4314F10A73EB3C177BC5FB9C4F127FD5D8CCE14860950ED93C11F4C0DA |
3CB2FB65A087AAF225AB18D692A81A258E16F0E00B0FC85C0146F490D93529FF |
1E7BEC21318D6F41D830540573DCD88DD689BE62F1E9AFDAE2AEEB77AE45B783 |
4643EFA0D45DD4E42E7B0B8E139918076643D52F81F8920F731261ED9C7E0074 |
664C87CDEDBE2531DB8B69AD3000C96733CB5873268E2622AA278A1B09EB9F50 |
869AADDB8212556794C7820F8BF34DB4DFB691CC461AEEF691575377C19BFAFD |
89279E90ECFE977FF917DC716F5F074E5FF39AD7DC75D75D5E7DE7720C700B0B |
B54F479D6B185FF9CA57FEFAAFFF9AAF9B7C515F3CFCF0C3E527F5A55E5CAF12 |
A3F6E2C21E54025A764105DCAB3A644815D1A42FAFA843294B75229F15372C88 |
C8B34FA38BF1B3AA1391F9E5F1C9244DD8E40E1B801270369D134847267632DB |
DE75B47C46EF531F9F94E5C272B2BFFCE52FC7968DAB2F38264EBBD89B04D525 |
3D213BC34929E73B488F190A8747CB50695D75CA29A75C77DD75788AA43FB04B |
60893226DCAE0CB5D7A028C25C9E6D97531B9CC8A4B920C262B75635A722F683 |
F7437B092DB7760E37D58679F2C9276DDF23431654C046996AFC9AF3B7BEF5AD |
342DC689B74199545447B17D79C00107E8A6DAE47D05E876C5E047A425281C73 |
24D18B4D38AB80A5FC68A73323ED2B65D46CE52F3960FF7DF6DD73C992E152D4 |
B593BCD36CD5678A9E10B392274DCA5EBE019B3EC389C7FD60D5CA7DD820525D |
1416D5D3A2D351D2D687D37C4ADEB03645A3DED603351B050E4BDA361D9C6AD4 |
E5CA76F230932685175EAF950A433FF3340B891470A79BB63B69B75DEF664911 |
721A583A34B0B2D11A92B66F7743AF3B18F2813C6D8E6D9A7AE2F1E71E7AE8F1 |
877FFFC4DA751B93D028C457B7881FD8148B0FAF2BE5C2DC641C9613AE1E1630 |
3296CA4942923A56886BB744F3C299D386BBB8394A2C24C33C9F211E582DEACD |
BCA04FBC05053CDFC48C95B7AD436D786CD6589449FA211E258A91600EB38508 |
336B88891ECD10D464CB0322542BF10D11528C6F9497405D9DB51DEE0B7A1A11 |
6F562922633C03CC595A30DA745F71C51532D2DDB3DDAC8484918DF6DAF2389D |
928CAB63B1ADDC6680D72B5FF9CA9FFCE427DA07F0091C7FFCF1E79D77DE6C9A |
676E08823B7EF4A31F95C301AA0D494AB9A7734EAF7BDDEB7441DD4546FD6597 |
5D86BF8814839A202959786233C2C93F13E95D7EF9E5679D751600B1501634FF |
FCE73F0F8BBC6089D21DBFF4A52F490021BF686F6E251427956D82BDE4252FB9 |
FFFEFBD19DE833EEA87F1238C5699062F8BBBFFB3BE22431E7B3F147A84F8B5D |
B76720BAC09BE8E0983081C0A6E18E3C3EEA5F7FD5453493B7DF7E3B63735632 |
C4BCBB51085A7B9D669FEF7DEF7BBFF18D6F98421DEBD2B8770DE9BBDFFDEE21 |
871C8224B507EC23CA5AD82C251AC9B091CE7628498ABB568A7E413A8D3CCBC5 |
175F2C6F1B7B910E0DFAEE09279CA09545AFB01CCEC4435A8E8E74AC8F01A08D |
98678AAC628E1E2F476C2431697E34DD1DDACEBC22DB72AD9D993E43D52194F3 |
68E08C9BA9ECB0C30E3213EFBCF34E67647A519B0DBE2EB1B06AD52A792A7D10 |
87B8A1675C37EF50398F865C9649013738297CE7D2C24221E8AC6A3F8A0DE192 |
0DAF917ED7D568AF091692701F690B9C3357AC39A0CAE4B0B82F7AD18B34FFFA |
C5EC78858D98A4254945A1808B0D984929EA5BADD1252D29E0DDF7D8A5D9940B |
AED9CE3B3313EDCE74AD31381BB79F154EF5CA8EE9B199C94C3FEF39A40D083D |
EA451D6FC14A553050864E9215741C6922413ADDA8771BF5AC210F582A7D60A6 |
D1D461EFA541E65AA76C7A98EA4B85FE4DF48B7CDC5A3793486C74B346D64B3B |
DDBC5E1BD6BE6BB406421AA6DB79AF33208B6E607074A61D366E987A74F5B30F |
3CF8C89A479FDD3C3925152E051C978F7B73B2D94CE7C91CE280B9B803BA219C |
2856DF53ED923FD27646E438C1AF05C206256CA9A5A485917E4736C6FDDC8C43 |
0A51EA90331E97BCC719D92D78C0F93CE07DA85284925A8CFCCD6F7EF30F7EF0 |
03CA1FB4919009A14A1E99DC3E0E7D237EDD673D7ED8D9DFB7301A0926FDA233 |
2605492596AB0B7C09574C1B32C73850A2F87F480D92A3F0CAD299DCD9537D45 |
6AF8DDEF7E373425D8A4D9428C957D2F12B18E4EB8E8252F61DF263B3432C80E |
7DDC02CFB748E662B0FD8CFA98A682AA737BB440F031E54861C6756C3062226E |
D8B830281D7AE8A1724365044917C61869A68B3CF1969B4F38E24D4D0E85C2AE |
1B66B6F5136C4B5CB16D8916E7D4F7D9671F7D4C173CEEB8E3A4C9F4019C5792 |
AC14C2BADC3E8602DAF845D899B5DF17D7F3BAE5B0D614010D779D498B5EFBDA |
D7DE7DF7DDA44BDDC4C20B04AC7A3110169B4717D4F8EDEED0938A100BDB8C79 |
C060F2998C57D96122AE6F3413D39B567D329C2E99CF1C624E4478336C7402F1 |
23E410A791F896AFC37D9162320AF7DB6FBF7BEFBD97EA2677EAB567067609F6 |
3133A991BC70E17F1F47B489CA6920CDAED698B5B8869AE3086288F85CBBA973 |
DFA1E83BFB714DE78B5FFCE27BEEB9C76920C34F5C0F6DAC1F8014FDF3EAABAF |
96A5A2A142E90348A28FF9C8F77509781ED592F9312D7CC9BE633410BE0258B0 |
200687F9715199AC37C08666CE29EE9BA4BD2CC797ED95048EF2F3972C19DD69 |
E76D56EDB9C70E3B6ED368A48D7AE865333353DAF3EDFA40CB407B5D1EABA5A4 |
9AEA24159AD2BE414AD258FF9B97FC68658D58D983A15DE674DB59984893A952 |
D1E68D52D7D65B72D06B32606AE94C2DEDD41B1A59283AFDA26C0A222B99AA8D |
900F66C5CF46567471186C34878BC0552E8119B27CA4515B562F5A320DCFB4EB |
4FAC59F79BFB1F910E7EEAC9B5131353ED5EDA8DDAC27A133A4414E686FD7971 |
F6658C9E71C6196E6D6233D7EA73EFBDF776AEBD56B51ED267004FE8C04A3622 |
555CE1E9A01A41475FCA0157632C8872F1BEBF1E5B720BCAD5BE1CF07C54172F |
3A917BF36B0C1A27B9153A08D0F3AD2F71E3B8261598BAC2F375F98B99037117 |
81DD77DF9D864A44C690233AC9306C48EEE8AE4E1DC5713C377B7AE31BDFF8BD |
EF7DEFF39FFFFCD1471F0D5C054016A52CA627D432BCF39DEFBCEBAEBB740092 |
AA96D438CCC514928B103C8996B6315508F3A2BBC30ECD3B1264F26EE7D7E3C6 |
A965C4312D9A87CA57CC9848EA48573EF0C00363B795DD192A963B47D50835F7 |
AA2E0BEC12C9DCFBEEBB8F3818293D23F8FB7680FB16DB69D3AAEB17421C205A |
FB3AC3D0C640D70416AB87C545430BFA467171BD564A86828D4D6D3B081F92AA |
174AA8923164730D7DB4363208BC57B521F3910851EADDEDB648EF21CAE3BEC8 |
C6D63AD4C1D5E24684B1B241F8CA2DFED297BEC459ED96BDFFEC9CF952DE2ACC |
B90126C439E1577295F3EB5FFFFA3BEEB883A83EDE1BC45BBAA3A4F611471C71 |
D34D37B967A503397C17B80394A2BC49D8C3D4D6A1E2C6E2E5A4002F8CEB38DF |
498C979035EE20B17AF7000D15A795E6B35632E0C75104A495ECDD638E39464F |
A48D8DBB1F17011313A29E27EED950AB1A2D6715D99CFD5A1EEDE31FFFF86597 |
5D86E99C57CD2BDDB6C85E78288B851C8BBBA87C1947D6C71416E72FD0B24821 |
A6D17AD7C60DD553248942C43192579C740472C2DC7A3C67823466286C357B10 |
98177E7FDA28CF6F495C5C74B1CF244297AF58BAFFFEFBEEBAF34E5B6FBDB256 |
CF3BEDA9F1898D79AF8062142D124A96E6D26828147CA35EC85C696E47A466E1 |
57989565F2B6D4C1E516CD3ABA4BD10DA95B68E23C9F48C2649AB49B0D89BBA4 |
5150724CB59A69B391A5F599BA1473232D9DE65E3D2DC3B021CD937A51861486 |
CA660CCD5653DEA174ED909CEBE94E7BA6AD9DB06C6860EBB4313034B8340DC3 |
4F3DBDF9D7BF5AFDCBFB1E7CF8F76B366CD834399359CDE4734BC663E2813037 |
928FFF43EB4C4D66CCC881586303E8BCDC7CF3CDCEEE19F4C341DE65975D64AF |
BB7ADE3D58A1BE315ED26D516C75F529600CDF78232D8866F0F016FC2B8E07A4 |
EB126BE61BF99BBFF99B2F7FF9CB7D6491BE571A7547CDA386637C3E8E5D2DEA |
011B738811117BF7FE8C6B312D07DDBAD99131821506BBE2019BAEDA86000B80 |
290454C4E52808F12D3092B8842B54A656127162B039F2AA40C8E6522F6A3A1B |
73AFC455CEFA136164884BF4F3AFFEEAAF6EB9E5161E0131E439610740DA4282 |
FC924B2E39F5D4535D06133FAF0BDDC0AA58F43B79B6D846612DDEF18E7768F9 |
89F9104EEF552D9B42048B9095138BF2D8C2701D2AEA84B90A953B182AFE6740 |
10AE018BD580139CFCFCC217BEA051B170406F646C4991531A6E4A39898756B3 |
35D39E191E19DD3CBEB95EAB777AE5CA26A15516C9146E8A16BDCC62148BD5CB |
D8DF79551A8F4A80B01AA1891B04CA09451EEF01661E2BC1A6A19B8632CFCE9E |
E0055E7AE9A5C71F7F3C115A4EB26E21D572D6596785A8A29A828A0F7CE003D7 |
5E7BADF13EDE0F962FBDAACFB4557BDFC977FAC30CD28677F2B0AE9B0C55D14E |
9C24D62F279D74D215575C61E38CF385ED5B8B5AE1DA9B67CB9D73CE39B4CD9E |
6FB3A7D5CB3420360AC9441866E5E89743768845FF3566D8D7F02EBFFCF2D34F |
3F3DAF5A086B4274D9238F3C52160C27880DC68664990C66D668CF3CF34C9B35 |
1855B2AE08B69F76DA693A9B042AD9BD08166C350E6C9CA5EA1377C9DCC24DDC |
62D24CE5E216048FC56316A9DF5CEAB1D90A7BEEB5D3FEFBEDBD7CC9D2254B8B |
160B9D1929D44E591054EB961CCF2CBA29440AA992CD2AE0746E837AA9CB62DF |
74F3AC27358A7FACFFEF84A25F513709F22EA66AA926B6333850B8DAF57A22D5 |
DB6C4D173E71AD5936696897D9E2026E5DB629AE170D91928290324D9A997CE1 |
C12215D60B0509977441ABB964A0359AD6970D0C2EA9A74B376CE8FDFEA1277F |
7ECFFDF7DE73DFA38FAEE98506830FA50B115BA861214725AF18055CEC2B3D4A |
CD8B959F112AE4476A15DB33E29D3971236DBDF3FEF7BFFF5BDFFA16A56E8BC9 |
7F5B9C943C1C76D861DFFEF6B7A5BFB914023F8E34C43195D821EE434B255567 |
1A0774D9C00466CC17D9ABDAA27046D8A8A6E537ECB18FAB91FD807C5B5401C7 |
21F550B93BC45169D24E64DC42C40A18FE011498A506071207C2D613BE233539 |
5A36B30D78494CF11A0751FB5EB5B9FDCC5DEE196BD658B1F5454DEDF6412841 |
6ECFF5B89E77090E1D78576BE02E38EB1697183AF98AB48D3942190FE66152B6 |
CB350489D0313499A14ABD2FF8BC86B341E3C5802595CE3EFB6C8B3FE61FFFCC |
C4A27D3AD80CA54E0AFA824945E414E6DA613E69C6473072D0737A6A1B4FACE3 |
BEFBEEFBEB5FFF3A96FE85180AB3DD7FDBA5DE4D4BBBB870DF8706018516925D |
3F4B85AD7B4D4D4C02F6369C1EB1A88B4815693BEDBDF7DE0F3EF8203BCDB238 |
4647FBA0862A9DEC5E9021C2CFC7EDADA84A74EB341934E46B319E5045B4E60C |
25C93011CBBEE3C38B2CB2B6BA4645BA2854B436EC6A17BD70F839BDEEF8E49C |
19F99A98D72C4E0478454C146AC18114B8F0C20BB54338F6A41234D5EF79CF7B |
BEF8C52F9AE2C0CAC002A8EFD46821744DDDC84E2A273A2E7F4477E6552D835E |
9FFEF4A74F3EF964049C73C0C60D30E15413C5D290217140A04FEA554CF29A4F |
4921400F6C12A2EEA4D5C35C64BB97431FB361AA5F3826E486E7E32E59B8B97D |
1A8ADA9D822A39C8CF2BFCD2E52B9AABF6DEE305BBEDB874647464B4A8D993BE |
940A05F4DC0B1D9202B3DBBED4BE45E8A2963A9F1D2BE0AC5668DF424C974D92 |
3AED5E67A674E0922C95D39CC8E96CD78B52E07CA0A5C9A9359AA1DE986EB43A |
052C2BD5D8925A3213D2190DB0381D52C0792D49079274A856FC6C165F69D55B |
03DA7879A7F8B30CD325ADE668ADB9B4D51C09F9F0E64DE1E1D56B7FF9CBDFDE |
7BCF2F57AF7E74FDA66954057AD7BEEF620A384666DD70C30DC71D775C885023 |
218AF1A6F39A815A62C4925CDF9200A167DA169AF1C403D0F0F6DB6FBF5FFDEA |
570EF358F76711E5DC620AD858071CC850516730543639D252EFC37E63BFCE1D |
2338747CD86115D7D68232E38BCF9F9AC51ECC11A750B134EB25974E87163229 |
E0246862FBB86EF7861AC08BB29B627B1F92FA2F7DE94B7A9F5E0B316A31AE26 |
5C8CD3D8E3A466836221BF6F3C5EA888708951B34B1C58B389101F54BE8BACE7 |
883AC8801AB6780D113A94F526EE874386B0463F8579ECDECC2D4EB05585BEA5 |
6D77F0C107DF78E38D0B3EAFF7BA7724292E2A5588AB1B816230CB7C1D4C920C |
AD66AE09838131D91CE40C95852819A72BFFF7FFFEDF7FF4A31FB909AB54A07C |
324D8B94072D725D3360C242C090FAA59114C9F29D641D3FB27AB834D78AA5E9 |
761A65BA8146DC1AB626EAE28B2F968B36335534BD27149C57748956AE0421F1 |
B9016EC4681D36BDF6A73E60524FF42871450C41C73099843FFFF33FFFFEF7BF |
CF824AB1E98BCC83AE2347F3B2CB2E0B51838D98C42A9E5E2795E5377FE6339F |
81E28E3DA021E99A471C71C40F7EF003DEB76DC705ED50DAD5832FDE5D9F356C |
4CEC34E29F8A7346FA79DD75D749089AE48B3876ECA3E88B482B543BCF98CD23 |
F0638ADC00EA6FFEE66F3439B3818AAA2497F0B2F1D8F807842229F39561A43F |
E914E8D6BAA029EF938AA28FAF1891CEF462A01B19809F71EEB9E77EEA539FA2 |
C0DD7965F78A064E88E6662609549070B5C4D41830EE6113CB16624742E584E7 |
7B55A5B5B4D1CBB09632E9BFED77D86AAF557B6CBBCDF2E181C152B185AC5B28 |
CFA49C463C601E870385986AB49AB102B600E99585A38550EA163FBBEDAA8972 |
D11E49DBB857AB678D7A6F70200CB4A47DD38166566BC8036E4B01D7EBCD5AD0 |
399D09C98CBE4408A6E0760ECD5A3A9814ED089BB5A6F484BE584BEB45D30529 |
E66663B45E1BAC4907A783722B368FE54F3E35FEC0038FFDE7BDF7FFF6778F3C |
F5D486580187B9AC2C0BCA61DB4CEE04C3E18A63A8B1B98319A465C20D407158 |
025BDF6FC1FD0D1108376E241CF7100B91E36B70D67C051CE6823DED70BEE635 |
AFF9C52F7E81C18DC4B3611A47D4F88A3DCF50FA7826143AFFFCF33FF2918FC4 |
E49236F7B7A48093A841AC1FE0C52F7EB106C4F401018D23E09665065F305637 |
C1A508C1083714ED8E3BEE28D1F6E10F7F78F9F2E52C4936971A8913BEE0380D |
3EC25441EB80E9F5E009836415F1135A30A9F0D8183B0E0EC4103BBF895B8CE4 |
8A39997DD938CF8F24C295212EAA3F49709F72CA29946C33C8924276D29948CC |
05B6DA7C0EE7BE0D670E1ADA3BC6FC5C69D55C5ACB6F90DE822F4427211AB920 |
F7DF7FBFAB54F117E316310E2AEAA7EC837BEEB9C7FD0C928A8B7441AB96FD60 |
C8DBF4D4D4562BB77AFDEB5FFFA33B7F0C3196ACF1A5CB96613FCA1F4CCBB3C4 |
778BD8516736AC9254DD41108BA03F6806AC0F489F7DE52B5FA1E80BD54B4603 |
AC69A8A2404945A212B33118E489E0A06419256DD26F8C15735FD08822540161 |
70BC217268AC89E9ACACC727B368AB8E7E506CF5D8E974B04183E7D4E8C3871E |
7AE86DB7DD8667E9722328352CA1D8515851BA1459613379698AF445DC561F58 |
13537BEBC62377C527C15E3DA92CE68B2EBA88241CD207801E413927BA6CDAA7 |
5163A250A2253460C24EC4C908A7517F4C08D1090219FA175C7081CF1AA4FFB1 |
FD0AC40F2A53EC33EEEBDCBC3EF3894F7C42FE37910C8A831D15C00336DB6232 |
AFF2B04F7053CE5BCAA522BE3B3ADADC65D7ED77DD6DC7ADB75ADE2C82D3A57B |
5769D20200DC9946FEBAF24AB72E721665B16CAC8099F64ED629132EBD52FB76 |
668F5E372FB3CEF2BEE5EF1635480383B5A181BAF4A82C9C7A530E71A1801B35 |
29D4823E3A84E95E57A3E875678D06E9CF963C60D900A13E5506CF535900CDC6 |
60B335D2A88D14AA376D4A4FB73B8DC989FAFA8DBDD5ABD7DE73EF830FFCE6A1 |
279ED8E0867DF1617176ACCF7D0C55E021E65441385489F0596BC6BEA905085F |
89AB4343D4679A93B8989E62F36711FD6A12D1247B33C7699DC514B0DFF14ED6 |
3F6DFFC50D462DDC9208486FDF5AE6A61E0744373B969A6607779DD59ABDDD62 |
823EF6D66365C3ECC4052A140DF74166B035885292AD314617BD0BBE3C946107 |
780A99357374C8427FF0C1076912D7D73FD82F0938F7634707C7B68F9FD96939 |
27DB30400C8421229D478482AF7DED6BEFBCF34EC99D279E7802F10D3914671E |
88811140B69E6246EBB83097C79458B9E28A2B9C26BCFEFAEB4F38E104DB7AB4 |
2FC5698BDB30C4AFB8A6451305C4C62BCDA262784ACCC5256B7D0B1D5B6A1A9E |
6E97542D2AFB5265CECC994DC5EB89848F0000FFFF4944415487041F51F343EF |
5E7A42BB2134183AA28E542895443F058DF08E3B17D1E30292315C54CD4AB3D5 |
CA885FA15D483097EE4211F9C883FD54B70371A50A19443DC8E9A79F7EF5D557 |
BB76DCC7DE3BCAE61489865AD57E20CC2B28FCDCE73EA7457119CCBEFBEEBB7A |
F56A021BDA848443E172D11E9047F89DEF7C07372E8F0A816221DEE760E9A1F5 |
2C68883800E3B30D5619DDA6E93DFAE8A3A58AF8625EB22752F5EF8B842A9A8D |
8168143AE9155DC7ECE5E62707E986216873A44FFB5AF8BA1A1B91AA7900EBA4 |
CF9C7CF2C9DACF460698DDDADE86FE79E08107DE7BEFBD717FE83EAB911C04D2 |
96A34A44C752DBF97E0EACDE212C8FB1054A83EA09F764A37A8438C117BEF085 |
638F3D362D3BD5507605EF470C908951B2FE2544152CE58E628D7A491A566E35 |
BCEB6E3B6CBBEDD65BAD5C2697B2E86A5FF4B52F7836B2D2DB1E9F1AC7786524 |
7AE1FD03A0ABCDED915708875E8F8BA07D8B5E0E95E75D04E4EA4919764E0606 |
1B0312A2CD5AA33E536BC8B49A6E15E8EBB20638E92461BA142DDD2CAFD87FA5 |
9D8BA87733AF4B026B4592C6406B6870C9C0E092667D695200B5EA59AE496B4C |
779A93138D354F8CDD73CF43F7FFEAB70F3FFC2C4910832EDD35C0E22B9E3737 |
190B152E354459BCF82038E9A32DA155931C984FCCC7EF768BC3E25530D656A1 |
B2006208BD071CA26CDA820A3889EA82FAC2D47E52F62D3AAB0F14154F453C30 |
AA6DE9164AB885393149C69672C0B6C7ED44E6257BB3DE77C360971839E4EB50 |
BED90A21AD3EE38C33E402B2ED2CD36365293F586AC01EAA697A62376BFEEBC8 |
238F949A84549697A48C6E27BFC42334651AE5CBC625E9401E7EF8E15FFCE217 |
FD08CE5121BC982CB41D38784665827EECB82C6AC0871081805E1B11FE5B824B |
A6D963F65D40E9280D4E4CDC8C61C1AD26F9FBC637BEF1F6DB6FB7C962342964 |
BF44ECE7B795EEBB66565149EBF79B6EBA493ACC72D9E4357D9B1545AB8772E0 |
B1CF24345BB87D5FC7095974397DFF1F67EF01655955668F9F1B5EAAD4D589A6 |
9BD004414006C3B89419E35F19C338328A230C82840583E42059403292115092 |
C8888220BA049DE510465D66C79FC240C390A1BBE986066CECAEEE4A2FDDFBDF |
E7EC77777FF5AA5E09F356AF5E55AFDEBBF7DC13BEB8BFFDE5AA67F552C3131C |
60EB4009C003C2B413148D315C76D965A79E7A6ADECED4D79257D63977A62850 |
BC959613987DE325026423BB3000AA072854AC0569C55844C459A2BBA9D98B0D |
C1850B8E2FC603C52CEE7E4A2B370DB5EE020808B720FA918E970B645B105242 |
48081F2E60A3D84E702FEC58061828BC601F5C7FFDF5ECACC7A849629A6D2BCC |
C594819A31730333B8A718959A5649D3485489B188E16BCC1E762CD96334B6AD |
B6DAEAF9E79FA7794A6354C5277847B0648BEBC65E65FB704C0B6B9CA282DF40 |
42934163E674A3A23BA40BD6361E8788EBBC2808B436870B06E5673FFBD9DB6F |
BF5DDE98E644E60E81879A25B9B97981409C511EB63B94F8795A8A162F59B8CD |
B65B0C0C54E70ECFF1EA370B0E6B3BF334CC210EB1A1600762B89B48755A0656 |
013B9136B850C3E98DA13AB46FAB1DAA3F3C22DABBB1E1ECC4255F6A0C7FBA1C |
62DA2D1F822E7B3A0EEF82C72E8A5B91AB43F562FB7B4475141C03CFF69F462E |
69BBF55E01A71EEAD8DF3F54EB9B5F2E0D2671D947AAE34A3B2B375A7D8D66DF |
9A971B0FFDCFB38F3CF2D4938FAF52EB141AAC2CB624FDAA452A71EAC48A2FC5 |
638B48ADFFC6009BCE0BA5220B612C7B12535794CC76BDA6CBC3AEB0AB829776 |
780AE8F652C0F2ECF599B8286A256135A34A346419FEE9350F587D1C19E68989 |
299307A88A062662A8417A5A1622167185C217F94E5E3064E107D195D1AEB1BC |
74E24BE24574203DD55960F16563512A787ABD3CDE1FFAD087EEBBEFBEABAEBA |
EAE4934FA601DE6B909CA324D0E2B376DEC23E997A61A457454DCE943A308468 |
2FF8B6B7BD8D989A830E3AE89E7BEEC1D79F7EFA693E146E0193FF2B5FF90ACD |
73153B7213281C4120185BD9C818D46662C212231457A5C4BA30A5D3B1B27A29 |
DDCB698104C4F55500C0CC2E91E718959A90778912ED5D7C92B200B39115BCF9 |
D4347A3A15DD2A25ACDA68C20B77DB6DB765CB9689DC43C85B3533894391B4C2 |
213C1E38F8DE58094A0E1AB516CE210F3C1D623A67F5894935A2E7B9551886C7 |
5552553B10BB1C9752B8F23DEF79CF5E7BEDF5A52F7D292FDAC4DA0323EC02B1 |
BB7841CAC3EBBDFBEEBB6D55B72C56F97F7C934805C202669C675C41215FEC3A |
6A3B8966BC78351508B8C281C0B7F05D1ACBF816E32E14437FF3377FF3C4134F |
C8AE77455C447E3C8F1EE3F396658C0103296CEB7F5B2638E960053C68986278 |
4C5530814AA1A9224005902353D5433A6BFAC4071C70C077BFFB5DF53996E0B3 |
6969C60F692ED3C23BE9A493E06473F5594F812B63CE993E27F710C1A1587A0A |
8A1D76D801A60655859A4EB2B935B722119736F8EF7A77C8CE0B4C56C19F1557 |
AAE976DB6FB9ED765B97CB715FAD0A05DC6AFB6C029C572A608C672CB0E651EC |
548B977F8A690A98B7C8F01BD4AD179C4DB632843F4D03B813B04E830E0EAF10 |
2DC2144D24A5895292E3F7528C6BC2356F64793D8EF04396C6594212107F9BA4 |
99ADC3D5E2523008FAE7F4F7CDAB56E6C46935A899BE28AE35B2FE567BF09557 |
DB0F3EF8FCC30F3FF9F8632FC06F539D3ACD5FAE882DEF894DCB0D4939F5F553 |
E2C615405D5724D7F1311ECC134F3C91DFB5DD00199F13D546574EB74B016B32 |
2D8A65C6D5ECAA69ECF28073038496A120F4923445AA58DDD4FD63B7B4D41FCE |
1D01A48423B00411D78438BAF2CA2B3B70A25E0F6613154A4A47454F0CCBEDC0 |
7113A549F5A3500025D7D5575F7DE9A597E25470B26811904A82D160F523B34C |
C5B6275DAF71B2225913474E259E43C5BD55948C55141EC4157C49ACD5A1BEE1 |
C0E424A9E79A2C410C89993645C38436A2374CE798F28E2040D57E1D77DC7137 |
DD741303989017F83CAB235434C94D8311EEB2CB2EBFF9CD6F7AAD0BC600D3FE |
85175EA081CF740006C07C3655207EC03C74C5B1ED1C76111A40CCDD78E38D6A |
18D72E78A125D06545D1D797C487B6D87DF7DDEFBFFF7EAC1D1D419AA284E6B2 |
0F1D16911938095C170652AE5420B720DBF0E471D0BBFEFA41FE4AE936263B65 |
3074EE1574B5A15D4A25D5ECCAACE14EE06C58A799510A5724861917C2078857 |
CC035C16FA5B6109DA588AE860EDD88289A837EC1345B6BBC256CE10A7C827A0 |
7B07FF0F3E1F8D1561CA7476F83373311815B728658D5A3513BAA59BD24217DB |
8C4232471C71C477BEF31DE6C299E3202E89A5C93C08ACF9C94D8F0A49AEB8E8 |
E748839B24C69C4FECC373CE3907A2848E11574D454454ED4C1C7054AEA81224 |
3B15A3CAC4E038E3BBDBF6155D104586D069D0D442550D9B8971F2F919622F6C |
F093E757CD43590069C9FDA7BFE269ACC2954AA95E272628E91FA8BE79A76DB7 |
7FD3D6A1236F4A05EC796A030ADA050132112C579AE68CC311A7520E2774BA02 |
8ED8A4D9B57338BFCD7A1EE0D67E93E71D91DB016E79E55B0EF8EC56948C2729 |
147056F28E719CA42D1CFDDC4D625430868362F6574DA35008148F4531B4425A |
AE55FB6A831093B5EA7029AD796EEB725F9CF6B7F3C16636E7D53FE70F3EF8DC |
430F79058C17513ED4880C7A51564F57C00AFE8BD0948EA38D3CD356CB0AD658 |
AA58EE55463264D34B074BC6F692FF829ED801D86694F294E89FF40261D94CAB |
42EEE412C6518520853F76EFBDF7F2E0CB8254B658DB46B887F3CF3F1F12153A |
1BE7340FD47E5055382FA79C720AD331F2DA677E300294980363DC89428A7106 |
91C6F1C3424467450F60C91442695C119F3CF4D0436FBBED369E6A8A331E3365 |
191938627F3711ECD9A24357340090AC71A64B0FB3D19C119ABD78E08B2FBE98 |
E48EE4ACB071480C5BA553CAFA08C2CA5FE9C6E5A1AA52554C94447C7C3147B2 |
AF302EBBEFBEFBDE79E79D4CD06248B82F3C51C61FC89FF2F9CF7F1ECB6355A3 |
0D49B9229DACFC9CE0ACB3184C8C9AB210799B6DB68116FFDDEF7E8745948767 |
7324B6468B815F6EE53DF7DCF3B1C71E83E7A4ACB9B50DBBB02A5C1D883C7653 |
56C32595D0F10334C22C588FFD7F7035923DB9A2F992C23E5897786AAF2D76BD |
C64240E5431B25531B705A8A738A69CBD8ACFC3123A51C9838405CC11342154B |
9A4357D8ECB6F4222ADA02E6D3FA86BA2218631745CE9C64317F509999AA18E5 |
6BCE526EA7A2F32BAEB8E2CC33CF4C8AC68262AC94F81374455A8DF07555E83A |
C3DB6CED3067582453D35458D3481019ABC31558864D40B352D8081511E06344 |
02AA03043E73C619675C78E1853CA7AAF79030D159EE2A7DD1F02828E0169F7C |
F2C9F95FEB96D6EB9517043E2A6CFB2BA91F97B3DB101EA49D35FEF69D6FDD7A |
E962E83D887A3601F46A29A46F5DD818CDA2D9A5829F69A17AB9919465EF1CFC |
8E10E7A16B17B1884D004FA855FDEF1F39F5A1DA145F8D9B49DC86F64DCB6D28 |
5D0FB3F271E6D81347A7AE845FC37DA21256D995CA79B556F10AB836A7521A4E |
E25A5CEB4B925252AAE2A88D4F9647D6458F3FBEE6C1079F78E2F1E54F3DF9DC |
FA751BEBAD1001EDB06DC46452EFDA45849ACEA8D87ABDACE274453F531E7949 |
5789771E5295F8CBE462D18458E5E3A23FB73D35BC0285CF4E3BEDF4F4D34F77 |
251DA2A2265B45BDC2CCDB0A58B1DB3295C6DA1F8546E4F9C8E0E01491CBC5C6 |
78E82C29033B9B07CC4F9F7AEAA938F0A4BB724613B8A20C9436CB35D75C033D |
FDB39FFD8CA394EBCCEBCB816658CC19A78AE787E3566D32AE0C310A91AA96BA |
AAAFCA4D233F2EB9181F25E2216E48F98D6FC1006164C39A458A69C07EC74956 |
E8CC19C89CC422335B626184D0DF72CB2D1F7EF8615C8A8E1D9C0C324E88DF84 |
7C8132149C019B1C7BECB1975D7619F5041988BA6EAAAD4362C22EEEEF5EEBC5 |
C008BD46523BB1107E7A4D24D79E32AEAB1CD3064275C66CF3DA681A58940696 |
44BFB20CAAFDC514B1B72EE39604F51C70C00137DD741333E5F895AE8C7547A8 |
5939783A4C18C0D9679F7DEEB9E7B2D721A173160A679D1EC6DEA9B474D4B9C7 |
302DA4D4B18C168AAA75B5639266926D64AD78AB7D0503A16BC83682FC93FAC6 |
EB9AD2BB24DFA61B4DA3B8570E322E38D8D957839B3F2EEA92896FC24E639BAF |
AC20C27445DA09BF1E77DC71175C7081EC92AEAE9D6CBDC72593436C7BCF11A6 |
8EBFC2B4276F396E8415C45F89F9E4A6C53BF80C9BE1B8D0D69A2E02BD79DA82 |
38A7102674084581A70C972BEC5159DB9A7F1BE2867DF9D4534F29D3FC5725FE |
F4F99440B759B39E843F2E8F3A53D117C5D9DBDEBEEBD65B6F51AE40DBE57151 |
96D60AC829D7F653D1EA30B26CE24292093BA3028E9D363FBF52A0C7238180D4 |
772F346F70BE1B84F7925DDBB74B82022EB592D4F9BE4995B8564DFAFAD25A25 |
A956D24AEA0DA6BC04DD10A525EFCA57AB7D95D2509AF44301C31B88BD02EECB |
F3DA44BDB27143FAC4136BFEE77F9E7AF491E7A08047D68F36825D14777A0E3A |
3655B478F5E9442EAF47013B634BE501FB499D9A9946E00C910A01A0168791E9 |
7DC7571741108764E3409801EC1378B1575E79E58CB961D5AA5188E11D084686 |
F4D42282B12E0C832282F526A441647A98993B5E99F160D6B32867473C328D30 |
D9BE3D053A9F19DAE5BAEBAEC398C8484285442A5A4D04E16A32575924A346EB |
3CE19169F2D305F0B160041B6423A65794E5B4F42FBAE8A2D34F3F5DD4A0D329 |
17484AC089A018D2A8F0754A3A3E8832E4928C5D3FE0F5F77FFFF750B11061AA |
6C911B27CC27E78A15D63C7552F074B37841CA650C9866110377F65E56F1B3DB |
233EA0DC03A3DF9679D5BEF8BCAAE875460552EA3162494DC36797C148354C4F |
85683DAA015B45CD9FADCAE150590C83B98D42FB5581B30434B0E74D55B349D1 |
F4D7BAC57C64C651B1C437DE78236B7C19DC86B83FE18413AEBAEA2A4A497C18 |
EFF0A1B82EB8177EC5DDE118C141944FC9C7A4D58CFBEEB3CF3EBFFFFDEFE1BA |
110C4C8C1E9BC23208A638BC458ED83CFD8C60AB7C2AEC59B9288B43E10A72E9 |
5983C1988A9AF8C238989EB3E70B3A8F65396C2D60099F31D5B06B61F8520C31 |
A74307423DBBF0A4745889CEA371439882B53994F8A7C14E09A8201BA7E5B4D3 |
4EBBF8E28B252548E9EC02A93864023E79E9A59732CE869B424261902C88E2B9 |
23FB2963CBB4DE043890387605D6C119774775C69662FA231FF9C86F7EF31B15 |
9BBDFE97258EB0B6C82C840F012F880F972BD5D25B76DD71CB2D1757AA89CB1B |
7469BDD86D8522D72C68CAB443D42335CCEB649DDE47B1906E3CF569AC33A57A |
0D3392885F57196E16E5AD70B55694377DD8396DC21448D276C9D363C5FD7DA5 |
FEFED2405FDA57F3B9E7323473B9E919A403922BF595C155DF00D1553CAD659A |
96CA83B9C33CF7E1303DF3CC9F973DF2CC430F3EF7CCD3CB376E18B70AD84A1B |
817369EE3B13B17F3D0A189F5107F4CCB46C577F3C0825212805C4236685FCF9 |
8CDF709FAB23AA2B626984E9082144C48CA4B1CDFADB3032D40A3ED005F8C245 |
6056B2EEE0DA6BAF8542B4581099117230F42DBEC9334ECDCDCDAF06A3DCF63D |
15307116ACA975C1BFA4918E9FF7DA6BAFBBEFBE3B299A8A90B41D7284B12915 |
C061D6C84CE48A1E7354811CA8D5BBBA2F035CCCCCB1570CEE2E5E3A5C1CE215 |
1EA45C7B86BBA9F2093FDB7DF7DD7FF18B5FC006A7514FA8886D2343594F34CA |
D7BFFE750814F5FD982E58BB90F41C09713782A7297825B75E2D22D4270A9B86 |
CC4D144CE4CA50155357E20D2FF81970F88E3CF2C8AF7EF5AB7022B12DC8AF96 |
4F03D96AD88A9970A26415321F8335C215F03E330B5C3B28AA3BEEB8E3F9E79F |
E7386121DE79E79D828CD2466306349ED61756FBB8647A4DBB6027B1C912EB88 |
5C40FCC2E9CC4D87577B9219F6107B8E6DCFC7C864A9C80AB3992BD6547E36C3 |
A41A4C6ABA04D2D5B6D53E74FE64C05A46560B1EC6E05D30A7B815B9572DA6C3 |
CD648830C6887910848A794AE2380883C2786052E0FDAE8E2E2E5857B294677C |
61A5A0F6B85BA04A59428D9B5234E0FA37DF7CF3F1C71FCFAD85FF69B769F732 |
94424814B3DAC4FCD36A61B760F6B771C1F0C2721C7DF4D10A81587A1C39F45A |
05314CB98228062B45FBD815AC73626368873E921EA6140C5622DD1854B34B49 |
8CBA8D4F2A07CF420C5622911EC1F58E0CF57A7124B4D119399FB1F59E3D5F85 |
D68FE60C0F6EB7DDD2C54B16546BE5766B2C2DBC586AC9243C41522E09D42635 |
EC4CA3787AC09B147014AE1077146D71DB6C93508A78FA3AEA3976C134C4CCB5 |
27A2BC1E258DC4F74A8AD2CA68B51CF7F597A083FB6AA5FE5AB9160E72A9E2D2 |
524CE110B924CF4A79967A773609FAB7D2DF7635E88BC989CAF2E75F7BF4B1E7 |
1FFCD3F2E79E5D390E17A005EBA15B014BE3AAC46316828B5EF3C97D65D98893 |
691D06F7DE7B6F18582C2723C5B733208FAC607CE287C9A7A61D6BEBFD6C97EB |
AE531C15E4AC743378F1254B964073E1B95883E042C00C020A62993EE7273FF9 |
C97BEFBD97FA554025CA011E28712A2887A8CA468228A95E670B414B69C12525 |
DD3F6D46D26530892B4D664F0EA52A2D5C7ACC4A7173F47A720BA2E3AF975C72 |
C949279DE40AB78C40535E87271C1301478D9C8E0A0564861E96F5FE621493D5 |
EC8CB1C360028D6EFDC9CD5443A20A60B152501BB1A6908415A42DECA2D8E6DD |
F574743B3093048512E44C1A67ABD8A480C9F32C0C2D864144C02C1BDA8A758B |
99E2EAD86836FD542D04660CE3C160A0350F39E4903FFCE10FDC1FBA38659F9B |
49F168895DD1860C7BE65FFEE55FEEBAEB2E8836DA5B14FA4C4E73C559DA2B37 |
8B66ACE09110DFF82B51E2D4A3F492C588C2D205C180F175F557E61EBBE9A69B |
A08D0809A4B2A1138C17F70C968F8397EB8FFD864FAA208DF6229120B23BA717 |
F56A1E1855866EE01E608CB70BAFA16038C30C9C37DC8295A9987FF8B8471D75 |
54AF25162B055F4C6148B22B3C43C78209F256D17247CCA9B466E8FDB3C588E8 |
A67959EC93C58B173FF6D863E27577A6AA84470C573BE79C73CE3AEB2C1C4F7C |
1DDB86A7158F4F3E326E42C12DF3A24E9A616D7568E020F17925C22DC3AB3309 |
2F65F1D94CC585E22E6C27580930C75939EDDEC88BF3C0834C1F8310EB5E06AE |
F59936DB6C01B4EF8285C3D51AD458BD14274CECC53C1141956646AC76210666 |
0C41072A2B267BF943577C251429394E4B08C9B83498A7AD766B3CCBEB49EC15 |
7092E695EA78090AB81AC303AE5593FE5A0527CFA3B4FA535A9F30147DD38656 |
D46EF978B2AF4D2A95A180E1DBB7DBD5C97ADFAA17363CF9C4F23FFE69E5F3CF |
BD3039D16CB4B3762B8FD344989EAEA23551F4BC21052C9808251B6429118824 |
7DC3BEC2BAC06AA73A548286A7801907E209700552EB33B8F5C31FFE105B0B02 |
0DFFCBA456EBC32E372C2A42177C0A3A75707BB0A3F0311E673A5A5C2CDC9AED |
B1F915D8C12B57AEA4E025BC1937651586D0AF4A3D1059429AB0B7BFFDED8F3C |
F208A5714F054CAE1F86ADF6DD775FF84934783923906EF0CC6456BCF9CD6FC6 |
C85475AAA26176C8A151CC2998DE38C2194B0463BDE5965B0E3BEC30351256D3 |
1BE17148AA40DF88759F8C24F38EEDA227810041E24C60B68FA2840684AA1559 |
14A4D362E7A1AB305C4CD14AEE32399F16BDEBAD05C7F5E6FFF8E275D75D77CC |
31C7D07181C8C0FB7088B59CD61C8B8A56B55069584B71537771844D3DA2B94D |
8468245D74DCCE6802D662624D2D70117FA59A57F0B62B4DD02592F00ED301CC |
AD62CB9E76DA69A79F7EBA33754A90E96421E58D0480A40D284DCF318BB18833 |
4CFD4A8389FCDEB6E33DC3A12A54253B92748033016149070645D9E85031D5AF |
7DED6B9C64268FB5D5690188324270AAE9A299A82EFCF0894F7CE281071E80A5 |
B56CD932574079390FD8BAB43CB4D9E4794364E0465D8970FB6268EEC20B2F3C |
E38C33D8031C8FCC325F068AA5B12C0928BF4BDB8B55D1DC420CC9F000CA5EC4 |
35B91CCC258B539AE430B224E895E26A2FBFFCB2B5EAF068575C71050C08E1C6 |
F945380DD0D6942716FDC727B21805B151DA683FBD1C91C2524A60BA20160866 |
C903F3CCFFC103A6B8C00008B3A7A1F6D714B0FF6FCB2D97CC9D37343C175B14 |
276E0C0A98C19224246EA080FD87A24D5FEC3AE00A414B07D3F58D84B44A7447 |
BB1932FAC19D5F3CE5653B8714CCEA2E6FB8A89E96DB699C95AB93A534106675 |
FEC14BF7CDC84B55F251C3F24E5A4D8862AF56FDF5E2403D5BAEB55DB5D5ACC0 |
DC7DE9A5D1279F5CF1E043AB963FBF4A0A384AE230F918D51490113B5BDB2EF4 |
EE75E78055AEC333A54EDB165A9B17CCF33631DCE5E7484ABFED6D6F7BF8E187 |
9DA1FA5749AAFA31C850906AE4AF18C6CE3BEF8CAF2F5DBA941DA369F72B01CA |
17B18414CE8A21B9A98DBABB8A3F597AA0C724333C03C3F9EC4C587C543C3FB3 |
56B23109A412A6372DFA49D95DC5733EBD47A1966D3A5BBA5D421ADA510146EF |
AAF88C0DD7B6AA5489818244C0C1C6F0247D14706F170D319833A70BC2FE7D6E |
D6D013135D2C9CE08269BA313904E58A1B48EE32C3E39807E85A667345EEA19E |
073035BEF18D6F741D54DE9444489FFCE427EFBBEF3E7AE1EA5CD46B9CCE885D |
C566293A095E93CBA548299322F830D4DE934F3EC9081573A5CAFBA6D37A35DA |
9BDAE02DDD5C9677E3F1B935F120FBEDB71FCC353B6FD6A4650A87641DCE20CC |
D91C82BB85C632E793A6860BF103526E71CCAC55E55C6154D809045B91A19A86 |
2A5D436E9EEDB7DF9E4568CB972FC79F6053DE7EFBEDAB57AFD613D9A202456B |
34D5D62E71C11F251393727E0C4FF13A33F606507C5505C1B3882D4E3531562E |
448985448356860D1105EADD3C5449E16062C2F126BD467195E0BB6454E0396A |
9BB6924C48F35739A9A2E114A1988DDECB98D63167761F1F238136D533AB9F59 |
C59B17F4B40CBE61F21954944ECA8BF66B6E5AEB7567FACCE811384EA2EDFEAA |
C4EF9A4F5B21D3B59AD35FF45A6910BCE94DDBF4F55786E64001A71313EBCB64 |
714B532294635E70266E4B5704576650C02E2FDE0F9F89A5C32CFD72186DC816 |
E759EC5532DEF139E0461C3592520B0F54ABB5E0FE54AB71AD12552B69B552EA |
0BC41D5119735E4E13C881A8516F43AD84798E2A4916A5495AAA6579DA6855E1 |
22AD7969ECE9675E78F891D52B96AFEE28E0761E75687D9D1E85E7144B8FFD86 |
45A14C7B432168EE2E3653D12E2234819A825723AE05CB7DD555579D75D6598C |
F110E14F038E8B628BE079AC2064F0496287B9FF45FEDAB5E5B8EBDEF9CE77C2 |
31C590E0265D7BEDB5F8C0A9A79E7AEBADB7424E72A50811B02DB65C30E83124 |
5C967C93F875BBEDB6832C65E44C9604358E9503344FA3D9CFBC1A21E067F622 |
A68083E28192B755A771D167869285E609D3C672BC9857B68EEF74EF8A5B997A |
82D12706CA9CE92EEC0AD7810F403F9B3FE745E104F3D0620A7545384B2008D9 |
47B65ADC9E37FE40CB9D76136683D1665912B6156B6C9AC6D85831DD29BA14DC |
64F800BCE1030E3840C5B8BA9DF246AE2064E8EA69D5CB42E7DCDA3A3657A810 |
05E139B1125E342D717D167DB19F3C7933700571BEA8D1AFC2E3769CEC384980 |
BAE536890B82088C8A05C1A472B434295DB5984C2ED08967F08781474D26558B |
E47217E44DDA1D627A63784D5F0BA21E080B38E8A083EEBEFB6E0E492B4EDC04 |
B7596E180652D3ECBD2B17CE97C2CBBBEDB61B940A86AA060CDCAE74E8717D9C |
F34F7FFAD3175D7411F715A7222B7A45F7E29CC98BCE48127FB89A38B6989765 |
CB61D5DF738665EDE116C40190FF4FD34571661D5CEE1FABD284D8A45B10179C |
7162C7141652E61AEE75C411475C7CF1C5F81873CF32D7B88EF8FCE5975F7ECA |
29A7C40539972D82E046A5BDA58A8E8F7DEC633FFBD9CFF02B659F5C8D59C053 |
B30837C5B7C53234638AA178C52A56D965971D2BD57460B03A5D01FBCF854FB7 |
0B5564B34B6EAA073C15841559056C9C60271DCCB83415701C95FCFB1E81DD74 |
51530A78A01F2E515E2EB94A09BB3DAFB0FE384D5D292FA5F052CA591B8675B3 |
3ED96903552DE554C098867A0B1332F0F29AB1679F59F5D8132F4B0187D60E1C |
8FFFCF1544FA8C482D58B08065816F54015314FCEBBFFEEB3DF7DC63175A721E |
173FFDF4D3AFB9E61A02FB79966DE4CCDAF154E4D812F822C4A6B6B7F66A97D3 |
EC0A00AF12043A5F62A526591BEE0521491096ED0183CFB33A239F4AF1C13ED9 |
7A522A5A215EF1144CFFF1913B2D3C9965518E9377D20347450D00B1456E6AB4 |
212FEA5661F062405C155C1033B2CF3EFB5C70C10551C08EF3A96C644C9512CE |
B01AB1225B6E4D6ED8492C639F642B737E046D61008466D028EBB5F0100D984D |
85A621231832EDF579B159611878A2EF7DEF7BA4DB9EF1F34A5FB12302F6C1AE |
BBEE0A4F8B0B0655CA2715210023B77834E156D418D1996A2E09448909EA1226 |
567D6D62619A4988F078779D7FBDB86FF2A2657A570F796D1DCEADA4B3941FD3 |
FCCED479B3F73B9798C8582EBA620C64BA21628E78696604F302B346D57BF2C9 |
275F7DF5D552CC0C02F3A99537E245E87ED18987ACBFFEFAEB5DD1C7824FCD3B |
0A982D260182E9683B8A45CBCA4757F44055B48D63FB3F087AF5E8B53CA36E6A |
7736F1185806B1B4E8702EC7743A7E44275FD00A3CF2B1C71E7BC5155740D162 |
47B1904F804CBAAD279D74127B2A581B451D44883CC80A2AF9C83041E275DC71 |
C7C139D080BB6AB5E52BD3F7E596C0C571D03036F2FED8CE898C72CD72F4F843 |
5C10ADE3FFCF7DEE733FFEF18F31990C7B8AA445861A7B45D059176E0BD382F1 |
E067B54025A93583ED240311E8BDF7603A34BAF3E7CFD97AE9160B160E954AE9 |
C60DEB13E74DBA7225857EF4664ADEA616D502597C9945414745056A70AEBD7A |
A3B04E52464773E1FB3A6220CA8AC0A927E9F01A2BF69D91D2247351232DB7CB |
A5B8529AF0EE6EC5954BBE6F715A307E94CAD524AE440EFE62D26C649B302291 |
23B10774EDE868D66A545F7DB5BE62F99A65CFBCBA6AD58BF5C95651071C2B12 |
4BD9257218866118E3EDC215AB10C012945AD3DC1525A30CCB890E963752D374 |
45ECA8F94440243CBC332D7175585AA6A1ADA00CD3D1F23A50D22FB4FE996D54 |
31BAE88F98EBA51DAF725E254A683892A3829B3336E480AE08F871D3FAA8BE2D |
42E8A286E7F7651E5234F02A5DDA97E68C62D15DA12AFBB4C2B8D2677586D55A |
B5D84434582CAEBAB8F0696977335E21D56EF96E5CEF6812EF65590818849C25 |
047DD555579D70C2090C7FC545FB815EF59AF23694788641B472E54A1A1694AA |
4C04F2F3679E79E65D77DDC54A59E60BE3D081BCAB90DA46A7455EC14565CDB1 |
2B622F44BA4B0FE984776D38EE4E36FED3D664B9735634E4A2E67345335D4155 |
6D15A0E2AB027671E7E0EEEA8B72F3CD377FE94B5F621B6992B0532CAA4F1163 |
096ACECA3BA6A14BB1B5586343A0CF37051EE6C9E4F5B9FDA40370118EC4426A |
A58CB36994759A1F9BB6E84241BFFE17CF6432536373E18008AD77A16A5666A5 |
20DC78C67DF7DD1773D87577458C2453687A33A401ED6B5D703A9D94835D602E |
57A09F585971E8A187E25E54934B972E25EC9CFE84769AF53C343FB82F93EB5C |
7D5EC7B7800FF106575025A8475B3C6B979B5E2F225F74BEF85C18CF57BFFAD5 |
C30F3F9CBCB35C748AFE1D77DC113FBFEB5DEFFAE52F7F49B23366D0D43BEFCE |
3BEFDC6BAFBD701DCCC92CAE5BF853A7BBCCBC79435B6DBD64B345C3954AB93E |
391EE7815D01AA2C0B68C42C745434F487996998261474D7D14E1DB572D4A580 |
8DB6CE09D1EA58A28116040AB80CB716BF25CDB404C737AA9426D39283562EA7 |
799C7836CA8ECE8ECB81141A1E7054245502B628FC8F4B8D8ED5378EB4204D5F |
FBF3E4CA152F3FB972FD0B2FAC6ED4DB54C0BE2762C801076E6A7F2EB0C1283A |
18ADECAAB6B2F6A533B4F38A48A992C7226439BD5859B8C5B7DC728BD830C462 |
A6EEB47C47C1125754092BC124F7803151FA3969EFBEF27A71840A5B32978CC1 |
1C7CF0C1AED05FF85FB483D45C79C1574A65DFD5799684946A37C2E34F3A1A1F |
49D873CF3DA10318F0A11466774F81BCA959F9B476966D20EEB0C30E7BFCF1C7 |
1F7CF041E23FE9DCA8DF19D1BCA49F66758A84B808896CE0546245D58AB2DFE3 |
40222D24116D1C0BF061DDF42C07C915114561E867F16C684453E9C2573EEDB4 |
D3E2BFD617938FA627923942542A43760CCE3381413144602AAFACECDA74D013 |
93E2582352B1E0F350E1575E79A50B4EAD3078AAF7E0769FAE80D97E8A311935 |
ABC7BC4DC7964360EDB4D34EF7DF7FBF33840C506FF88160286D7A9B53604005 |
77C138E9D9E3C49234945E3B5BC211FFCCAD4C7704B760C1D557BEF21578C3DA |
D33CC9B6ACB6ABDC56965C1C989868715F70C105B80E9FC83663B04E9533E141 |
FD6FF783F53EFF0FA14ED6FF11CDA15A40CD338F344B9C992822BF0FDEE4F2E1 |
F4DA82C8AE9D8C77D497102F954AD390A29612199EE054AA9FE639E591A71081 |
1667B9B04C10D5DC7705AB290D54B06B7B789373868286561DFEC7421C79E491 |
2A0E993DA5A215D7A6B258B0C4F4D256C48ED0598643612E43E08A6143B32D29 |
CF8B0B62C24AC55E000B67147098F04128E0CD17CFABD5AA59BBC9C2DF38F1FD |
8003135698B768D317AD02B64A3733BDB352E68FA980039CABE32227AE08572B |
6D192CD110A42E27B18758A58E0AB802BD5B6AB27761923A284DCF4149DE577F |
B9146E5B9EE19C92992B342A4ED2760E15D25EBF6E74FD48A3D5A8AC5BD77C61 |
C52BCFAE1E59BDFAA5E90A58202C9B357306DCE48C2DEB0A8E399D1A719263A2 |
601B3DF9E493F42F99E0538499E04A760A507085DE33A5318328B45C052571A6 |
DD21298AE5987EFAD39FFEF18F7FCCA48F1DB6B61FBD9A34F456C7E684C483FD |
0A3B00462407C6CDEF0A6EC4B8A055E9C2B72BCF4269CF31F38B0412F1797966 |
B7DA6AABE80B5FF8C277BEF31D7A42CAB53075445F937A5B540676F4F6251312 |
1FE6C1E86205D319A02B49B983C16DBEF9E60C172B092FAE133A28DAB296921B |
8F41566B429A498D49C38711B35914A47C53F93AB3F4DF55F8D18534C3AA55AB |
3048F179CDF8EAB2E9647641B4C1D5E662E3D1A81A5534E28A06E364EC9B31D1 |
C869E19ED35F757DA6FD38690CACD9FE24D3C5F7A2458BB064D8E8D073AE30D3 |
84A852E515EE881D4F6E237C809183B868CDAB9892E2DEBC38CC821B6EB8814D |
E0A9B67990689361E7E1828C58E04D065AC42125F75DA52C0AD6294DC875617A |
9BF11255A5BB829893117EAC148D1B015F9D8992754DAF9D1F37D57EE7F5DF28 |
D847D4D9B47C4544C52B330E8FC727B38D02D114343C32BDFC6F1BC1C652627A |
B1AB950EE70EC49638FAE8A3616853172A4C6591893A89CE58182AD952BE6397 |
5D7679F8E18715D696C853DC8B5FBFFCF2CB4F3CF144D52010222B5C9B206F04 |
6ACD1E7F56D2417556D497383E2C67178E9A6604B4FB75D75DC7D69FBC9D25D1 |
744552869C421800BEC84800EB2066076386B3DCF1EAA080B7DC6AF1E225F307 |
06FADBAD866B07110CE1DF6C4901E7C99476BFCE647FF5BEA5CA8A3381B036E9 |
E04DD9E28E1A7605748BE95F28E0D48718E03127ED52190A3829973C5F55EAE3 |
CF9009ED282779ADF7C8B1F8504691633FC42834154EAB250FBEDB38567F6DED |
86919166DEAEAD1F69AE7EE1D5675F78EDC517D7B49A3915B067EA0A202C2A60 |
6BF8CADFB0EEAF3535185CC10184A86707306E0FE54AE971292205E97AD45147 |
9D77DE799484B679A544EBCE3BEF8C0DF9F39FFFDC3A18562ABA42679301E66D |
6F7B1BDBD8330C363D821B4F65D3E3438963D8F6FD7345ABE319314C9C198D93 |
347FF88052967C406262FC11E021A7A275C101E74745F3C4AC38F974A607D0F5 |
C0422AA6A6092E736F8C860BE3AA2E40D0C4580F320CECB1C71E3FF9C94F9C41 |
99AB78835B1632944D9B215221AAA0EF61D4FCC77FFC074BAF5C11647385A333 |
4B2EA72B30CE21CDA2B0B16FF0F8EC76E7A61626CDF89A9E28D5D487D33B17CF |
0BBB47B2184BC0849CB8A69D09B75A11104D25FE66092343853062945F544768 |
D5EFCE28BE999E3CFCF0C36FBCF1C6BCA826E25F29A933D3B81E4702861A1651 |
CCC3B81A1BAA5B05AC84C5F1C71F0F57CC15046CA4C526A4CB059A8BEF7EF7BB |
471C7104E90C610C2AD1CEE560CD95ED0AC51093EED295DA14ED174D4BE129B8 |
D33EFEF18FDF77DF7D3AA56E5A7FEBE9D256AC264C0B450520FF8D864C59F0E3 |
0C13AA90D5F134C67F490D9A89981C6A2CDBB3AB2B25C177CE3EFBEC73CE3947 |
7764FA53651B2E1003697D6DEBA13C1012B1B4970A95CC1E9423B46565D40BC4 |
4743473960AA467C80813EF523C1FBCCFAF31031246E0B115D6F85D74B01E3F3 |
3BECB0C3A38F3E4A4F222E88DEF0743802C42B70006AC7C43612B8BB6D4BA506 |
C90C3BB1C45966E2F45770F73B341A73E6F42F5EB21914F0D0D060AB59CF0301 |
56E6BB28F8AA6BE680F3644AB7416760B75D8FD979B53B7C9354B1495AB8BDA1 |
2543385639D1D1C24EBBA080CBE5D43784485AA5720C0F186BE819A17D44BB19 |
7928982F578A42FC1A87AF54AA24313E1C85A68A3E4F9D26B053DB1B4727D6BE |
BA71C3C6B6CB21A81B2FAE7EF5D9157F5EB3E615B8CB8D56E0C13621685798D1 |
360338FD0409EBAA9DA669DF75D75D1F7BEC315BBA23DC133E03ABC85673F00A |
12DA38DAB814D9B2F2A9D5445DD1290E4FAC769CE61915B0C402041A4628C4BE |
2B12DE344689CEA1436C83C15698584F9D87D7153CC4785876C4A2D140B917E9 |
C45E71C515E79F7F3EFE86A3C2CEEAE44397EB69E5D7F417B91168698A84D299 |
64C06EBBEDB662C50AB667F9DEF7BEB721BC9CC15229F4272E27677281CEF019 |
512B881D9B60C8B3CE3AEBB2CB2EFBC0073E70FFFDF7CF682B68A59548880A0E |
94BFDA6D491BA28BFD60C6974ABEACCC853CDA7FFFFD61A1D38B82A8C26CC4A1 |
F4169F51A742CC069E8E4DE6DD4C2168CA65DB88C9B688811A83D58699B9F3CE |
3B2146E9F94D8F3FEBF013CA887B6178C4A130B767BBAB52D2D9082A97789B6D |
B639E8A08320F7A7DB0A7CA94B317F654D7917F314D794694B5E9CD87DDB1B47 |
B895ACE8302A1AA32E8B3536BDED70CD2854E6581059978098653F8BC285F3CC |
9EEA3492DC1B79C120603648AD4A5CE1A0AB7102A149C4E2E15E38809837BECF |
78834566D8E5E35488E1929164E6C50922C5B2DAF012BFA8C82DB114B4ADB9E8 |
5C5C1283B8C28364EA1723A4CF4A8B449EB132C4AEC8F2D25E61A2049782850D |
FB80382F3286BEFFFDEFFFD5AF7EC51B59656C5FBD42D0242782394220184742 |
830C9FB9E4924BBEFEF5AFB3FC8C3E5932AD9D03468B2F327B2284A9C010BDE4 |
40B8575EF0CA55172C9CBB68F3B973E60CB9BC4D054C0F580AB859504BE65389 |
86A2A9AF4D1BB2E58ACF143898B45324A3F833D3C074883B54C171C93784C027 |
E10197E2728918AEBC94C043C6B96BBBBC93EF850F1CCCDF2A953AFC589F474E |
5C9E95E0E68E4F6623EBEAA3A3ED3CABAC7B6D62C5CAD52B57BFF6EAAB7FC1D7 |
DA79D2CEDA046179CF3B1C17AB802DC1809D315A090CC650E412CA8417A434EC |
6FCA496D2492B8E14DC85B2C31C497DC36EA086E33B1A5328E026DADECAFAD1E |
A6E2645894207CDC57911E372D04EDA6F6D2A60EB2A8493EB2EDDFD3051F9129 |
253E86EBAFBF1ECAEE4D6F7A13B62BBE2B8F5F254C185287C491B85C85B05CC1 |
28C407E0F9642CBA57D791C8703B330947839AD85AAA8DA8A0A1A7748B8BFE04 |
BCB52435C37D7222E9FB33E0CC51D182E05CD08EE0B055E222F4D0F417F1A20C |
72E27F3C3E216DBD9E4B2114ED00A6317A1D540A20016805BBC803CC5D9155AE |
3413B15941D52DFD171B4280E9202CB18FF1D9F108DC6AB2126C3B29DB35D22E |
162719D7C1873121F0839948E68BC2CB6643BB6005EAEAD8AB72836706BE3E0C |
2366EEC505414DA0AD2CFC362796B4D5D8A03BEDB4D3934F3E490A0E3EB85A26 |
6873AAB44099029E220B7784FE38E49043CE38E38C2E1341C7A6D77EA6E5AB59 |
22FBF42C646433BE58F6CD31B78A6E9E4A19D0D2E283CB4714C0986C6BD6E4EF |
DA0F79A8FAC5C452CDA8910B4CD2F3CE3BEFE0830F66AE97782ECE273749170B |
0A2750C8478A06659DE9F542B1611AD53D42A789C511F830F534FD336209E95C |
AA35E7741AF3371A4E7005C682B810EE31DA1344F6D9C83343621232E44CC01D |
6FBFFDF67DF6D9E7E4934FFEE637BF892D2D922F02117AC981803FCD695B6053 |
0CCF1D9CBF60101E30741EBB2F786AC856BB4B013BE3E3464529B9BC43AB8693 |
BCC48B50DDF2782649A781AEFF4CD46997C45FD38420ACD01ED8F744CA4AE51C |
AE301DDC246DA750C051CBF718E6AD53E7BB1E79999CF9A687790B4EB3078E45 |
7D918742432C47E3A379BD11AD7969ED334F3FB7EAA5756BD76EC4E532177AB7 |
94E2B0273B0A58D820B92EF6592CD25B95DCD47FDCA8546044CC59CA7A5E1007 |
618F3DF6B8EDB6DBAC24E1C7B09F4F3CF1C4ABAFBE9A679C8791661F854364D8 |
152516B887F9B159FA0A73C388449641665214C4A163BA33859D336E5D0A0D35 |
7F531DB00E0BBD2F88C1BDF6DAEB5BDFFA96BF8EDC4DAEAB5ADAA97495496C72 |
04769DA22E7B5CB592EA41E10AC51C056E45F62CA3FDCB6215EA09C12BC87FA4 |
3224DBB08C363BEF053F0F3F4346C3B8A057AD26AF1CC02CA1421A479C5CCC11 |
1D9459405B34B8E482280AD76B21295E2D894F01DCF0AC110AC228EE4DB09228 |
2CF0A70F7EF083FFF44FFF443E4E9B4AB1AA82A2931D66E86A908484C4A4ECE6 |
C1B9ED25F224B209DD52A32E25DDA763E2B81308A06746C042850582B0D29C7C |
81DC330A00E268EDBFFFFE32F508C7BFF4D24B4F3DF554C69C99B99991BCC219 |
ED2BDA13F97649C1BACE37B14F70441935911CD43670459CDFBEA317D7451E30 |
1F195BE58DE6802911B8BDB9D599947253C9AA483D4FD405ED12CED52DB7DC72 |
D45147B123829BC903D6FEA170A158A4FD4AFBCC368469176D9E6D1A456C56CC |
14F004510FF1B2EC9DC0C81B072F1F3A2F68FCF0C371C71D07DD061B42047044 |
63314A49126992B02ADC3D4B9F57BB225D883966E0B8819535CF8A5EDAB4E1E8 |
BB087627BB47B4742EE489557DC71DE57ADB04E19A9D20273CAEFE81EAF0DCBE |
C1C181FEBE6AA7FB429C0B84E56574B2491B490147A60CC9EA607FCDA812B60B |
03CE51814C349F893A3C9485A2CBF22C2A51384781D0AAE4CA50984925F13F47 |
D0AFB16B9392CB1FC94A1291A22B6B67394E561B1F48E1345786CBA5FE7279A8 |
DD2AE3188D8FB657AC58F5BF4F3CB36AD59FD7AD1BC7F5F22860F553B6BBC7A5 |
369506083120B9D1E586F1A51849176880F05B6D7528086C30AE29C17D02CF53 |
980824C4380A29876939713328BB24F8B0F2D354F61253D3179A790A6203D5A0 |
D3121548B6D87A426B0DF3F119C422AD0D03B1B0F360B9121A4C6374EFBDF7FE |
E10F7FD8A986C7176071AC5AB54A7EB16A9CF1855D77DDF589279EF8E217BF78 |
CD35D7702AE9DE696329FCC853D1259EF4B4339DAE48468A338DC6C8B8D6C561 |
4D81AE8248C91D5961B474B80C0AEE253E6FC1F2AF94DB1D22CE8E815CF9EC3E |
3B8B14B0C91B5B54D0EBF39A13A96105486502CBAA880A2E40522959A0990CCC |
C8944E2947CE68983490FD6257B74E57F069A8590783BD0C3F4ACE72027B755B |
62469F3829B6E976052FABCA002410C9AADA653DC8F0C790B0D9F003F622815D |
C440922B1B129C4748AD38DEFAD6B73EF6D863DC00F4CC242E679C7FC5156CD4 |
C882D2E99959CA527B6E69E1F2F8F1912D00F08D3A6D175E78E15D77DD45863C |
1F718A22D602A8EA574875C5D6C495C6396759812DF28E8A0ECD78E7A28B2E3A |
FBECB315FE617108F3263C92A2B592852AC5669370F80A9CE6638F3D560115FC |
95487B790F8C5AA9E842EA4459C95E56295F71519DC91832793048E345291C87 |
8A2C1E7FAE9125CE53AA687AEE80FB8A7B49EB2EACACD64EAD69B87521D6C820 |
C62F2AD866833A4C78FB7C07B9287217EA38D25A5F6568A87F60B00F3AAFE2A1 |
82217DEB43C4BE3F42A3516FC5A9336167C66F6CF5845C467EA0146DCA9B26C5 |
CBCFAD776F05DBCE986CF6AB9F633EA11F3B19CD2886248C93D485E683B98B3C |
3D565AF6F2A754A996D2725C294D6E18ED2F55FAD2D2E4D878544AFBE6F4670E |
9BBC3CAF7FCEC2E1CD5E7CF52F73976EFBE0FF3EFEECB32B9E79FCE9E79F79B5 |
59F7445B298690965B2E6F654D582078279ECAF61315C5CA9121B5D0D2601791 |
2E70D9B2659C5BFA7BE26ED25E6A17CD28E5A5D0FB64690691AADC6C1402D2E2 |
2C1D266A4465F41A00B61629A854A3C8949F58D5883EB1EDC3A382A84EB137A1 |
A995369213ACB8B782BB7C407814575C7105712DEA504EC59A844EDE9D102977 |
1B9F99BE332402F382DAC17806FCC9C240AC29E73A30D1B20499968726D18CA7 |
919614D7232F1A3684276F1F7EF8E137DC7003B5143E70C20927DC74D34D189E |
2C77AD139E19460467900288D1D7D0417694EA16BA1B9A9A379D3F1FFEEE7ACE |
11D1A7D22EB308741D122DC62C0A983E9362E0723169C7E91C3AD30C8BA74B76 |
A212635C51813C450CC49E5C6409C717AFBDF65A38495C5DAEB41685455F367E |
A214A95D263949B368176A6805A255E3EB0ABE0B7D8C810DCD989BAA80152467 |
612E1E048E2FCC3B5A03D44069D1D99E49CAD34F3F1D3A068F0FEDC2F4DEECE3 |
DC73CF3D7FF6B39FC119C28EC57574D2ACF7294F8837555256268BED82C78245 |
06C37BED935E2F0A234BC8D56510FCFBBFFFFBC9279F0C5B44A794C8200E8FBB |
94391DB589545920F35BF8966593E0BE12CE99A13F57109FE159F0A4C71F7FFC |
99679EA981C90BC1BA90259B50BBEDB7DF1E46B94AF6E96D70BAA8F2BB08BFA6 |
2F8D35C2948EB535A094B0182D5B45E545159F672F0E7E3347C80D633D2D37D5 |
38DE76DB6D9F7AEA29CD03EFCEBE4C786A5C24096DEC98C016E318694A5D7000 |
E8A330906E3BBD771E240EF8A39C01A1184A6DCE9C81C1A1FEFE5AD557D3572B |
5ED0E5DEBE6937431543A92C6128EDD2360D8F5DE123763CA7A256C82AE080BA |
DA847FA67BE9E50F5CDBB68B2388C7D4B72A842F0C259DFA4E4D589EF1FAC6BE |
81EA668BB09DD6CE1B9A1737F3725A9918A9FFE617BF5CBDA2319838AC65BDED |
CA1597D6A04BDC863F7B86E9E145E54FECBB5F6960F0F9E75E78E4C1871E7BF9 |
95FA64A3DD74695C6280A1D96E744152C45AD815B7579517C55D1C7A76A93F81 |
426502D9E50577822BBA76CE98DBE22E557B782E3DD5960B657B6E2A7A9F85AF |
8ADADAC38E5F8F3EFA684889E79F7F5E704E86825893296A58CA3DEE49FE2FD0 |
1247457A25352594718CC1DF7CF3CD871E7AA82B4C0AF27BE06394008CDA761A |
DA30096A29FD7880972E5D8A6780077DF9E5976B34D6EFD66CFA52726EFA001E |
F0E9B88C3A7866C030448ACC679E6D2960678C560EC652F6539309596359E385 |
3A8B3C675EA7B12B97936D06DEF296B7FCF297BFB6C3C0B3EFB8E38E78FF073F |
F8C12C62B45728B897C025FE858CB814734C603B1339E0BC31581106DCCFBA08 |
58E55FFFFAD7D50B880F2BC88910E9CC64B30106C413AEC92DB8D5565BBDF39D |
EFC4DEC21520D92FB9E4922814161345C5B556490C1D7A255067516C14E5D8B5 |
B0EC3054E583452BC8EDCBC73FF8E083A1572CDE410A98E3E7C2615AA023A16F |
98E9A09DC1CC2B5377B80B37802A5089A7887B530662DFE2713EF6B18FC1EF24 |
A9A48ACED5EF882871E121F1279E6D5697599407EBCBD3D058131F5028F80DBD |
3827A469C3241369A9B2754EBB1A8CE3490950200790F229DA7534C8C43AC417 |
BB30B1668C194DC5812CEBA7338EA35A2FB05720268796E2DE7BEFCDBA445C70 |
BBEDB68369CB4C900D2DAA108597C2523228AD1E9D36EB29538FEE3ECE05341C |
A61ADB8651414A34ECD56F7DEB5BEC3041E389010F354CD413CDA880CF38E38C |
ABAEBA8A59467C5EC40BFBEEBBEF8D37DE28EE527650E79E27BF200180B28673 |
D30C808A8730A2167451BE8909B95C89878731F0C1C181BEC17ECF479BA6898F |
41B79B59CB1FB476925AC39D274EBAAA2B13EC95BADBA492AD071CD052B17058 |
7482836283024E426B239F7CF6B9E1C42BE06AE2FA86FA5F79EDD5B9F3E6F4A5 |
E568BCF51FDFFDE570C5CDAB0C8CAE1F85A89DE3FD64AFCBDB7936EA75B91BF6 |
CE5F7963B3B53189D7D727DB2EEF77B567FBFDB9C04347F0B37DAB0888F32645 |
A1721FDC425844D115BB022BC79D464C868A4B79E2E82C8AC8C2EE64094F39AC |
F8244E3129F46992F2EBC40CB1E894EEA23D71820461FF7CF2939FFCC52F7E01 |
D164899B280D5884460D22B75B26B8EADAD5510617613B235A6F7CBA7DF6D9E7 |
DE7BEF553B4B17AC3A961433C34D55A50A40398AF8D987096571F0A06A97AB49 |
75607E99C748942D19B4759FE1E730B92E4A0C27B38FDB4433831A92A8A25DE8 |
4C0957A5DA11798C91AAFB02DCE2FFFEEFFF5EB66C99029E8AD0D283C7C0CE3B |
EFBCEBAFBF1EEE4E571422AC3A76461C947789313406D3A893E425CCA87ADD4C |
68E45E6A18CE1C0C1FD69C519433766AEB9162C301CB716275D91F03538D0FD3 |
1D514385B669236109E1AC138F172C8955AB561170C88EAD30FF71292C33E40E |
AE8FEBDC71C71DFBEFBFBFF8AD142A675C6146AA369D0D1E982DB7DC1266E331 |
C71C03B9C6F12F5AB40872534169BCC99B5A0F58539707262F11471C70C001DF |
FEF6B7A3A21B0F1F5CD4C19B764B2113A54E7A81ECF2A25318BB78CA73C2A980 |
4CC7E31F79E49174F2EC3076D861073CC27BDFFBDE9FFEF4A70200D27867B8FB |
FBDFFF3E44B93249AFFF85F130F173CA29A75C7BEDB57834BA8CDAA2B43F0E3A |
E8A06F7CE31B501B224A54375C6E51560C0B7B49E7831F609CD94D4D93670577 |
2E6F81A7C07DA1F6301BACF7A0B8F9F297BF0CBD254658C551B8096DAA98F722 |
D10DB1E574BE6D2CC442609CC97F333ACD8485ED318C7738187A1EF8197BE913 |
9FF8C46DB7DD46638252BB0B6A3B63089AE50314D942564313E368BFF8E28B58 |
7D8C4131BCC58B17B37C91540FC481320279E185177EF18B5FCC8BCAAB4DF7F5 |
ACCB2EB89BA1855F12CD9B3F67EEDC3950C003B5BE5A9FE7A38AA3D0AFB7EDC1 |
5893D994D49514B025DF70C6452E45B13379D34D0A38F22540851DB3A95B70AB |
990466ABA2B4DD278F33F83EF5B10D4BB6DC62BC31514ACA9B0FCDAD8C673FB9 |
F5FB4349796DBD31D745F3A381386F345D1D3AB8E4CA4D97A57ECF641B5C3371 |
25CC5A54F5698B3E57FA433A3ED9820BE543DD41E465F0EFD3F0E43C7A581DCC |
2D83F64C9D2A71C3EDC73A05CBB4C887E2CA2A28A8886664005C79C140CC1D48 |
2335321027172C480C80315A76C815DBA528485D11F8D11EA6C5E08AF6F64CFD |
72C3E8CAE2A4E4DD85D7813BFBC0030F9001023B0A2AE9DC73CF953EC60FA413 |
56084D3A48B8680CEFB39FFDEC8F7FFC638A477C25E23E7BCF7BDEF3DBDFFE96 |
405C418BE5DACB8552E04B33458FCABB51ED4E8B66A9D590AEC05EE9A180E3CA |
744DE60F553425E5A663A0003D8D2071E5F3EBEC3F457431C3DAB00A79A479B5 |
F1F1C981813EE8053B862EF8DC8CE3945053A6DDBE39C37315580FEAA128F032 |
326BAB53A71FF0D72DB6D80292F1C0030FBCE5965B3EFDE94FFFFCE73FB7041A |
727F3B89A29084B09626E6814DB8C40E78D65967DD74D34D0C445B3E10DB355D |
055D3CBD62B111ABD1F417CF8CB286B631005950E849505A694F772DB17E859C |
C575E4E593F40363830682F83BFEF8E3899B60524705ACAA1576BDA3D07968D8 |
4E4A1D177201625E14CA9155A1B024707DBCA3C8129165EA202984B612DBB3D4 |
8BF77A09052DD71F6E259C33C61EB834D46162D713F997CE1A8D45262995C755 |
4C48D96BC15B702F366D64208EB3C178208310EDA26717C3CBF813A61D3B9081 |
0D38A3B00688D016044F1256D5200ACA31BCA4F87C2F05AC6D40996833D0962B |
986DE9982F20904A211FD75B01E705FF1FED124264AD9B8E2B70DB33AA84FF49 |
D26E79D7398D3C56A259B53E56F038F390208CE062C2095EB8605ED50BA7D457 |
E8FA946DE4BC63D61A6F37A550395AC999BCE8F864D35B54C091E9D35038C7C5 |
9B1D8B5D75AB815A32EAF48F0AA02A5FD73B3CE09775E1FCCD563FB3FCD1DFFE |
BFB979A93AD91ECDDA3B0C2F98D8301265CD39515F3989C75BE32D9755CBB57A |
63A296423DE4F140FF331BD747A199C4C272EDFFB59A1BB3D69817DF314D5DE8 |
E0928B5BB193D5CE1A51B6FDD15A14E2B71358EE223B63DD2303AE5DDD279D49 |
6EEA48E24DBABF34D44E3FFDF40B2EB880679C871A46EDD9679FCD5019A359C4 |
1BCA5666F08C784CC2E099E6F8D0873EF4DC73CFE1F8B300921A571206EFBCE5 |
2D6F217443DA87A3E26955249C66315B21EDB7DF7EF086995BC1DD77DF7DF707 |
1F7C104F4A7C956AF670350C86A9B10E2BA1AEE84C4DB472BAD6EBE2397105DA |
48A94D1FBA08865E50BAD0AF1D4286BCB702966DE88C271D107A1DB14E1DC63F |
31EFCDA4117339FC98CC7C9251E051F190CA37842B13F1DBF668C1508DCEE517 |
A71D65D3ECF59DD33DE0D93F6C1B373177AB263391A919B72E0B6BB4D9BF4102 |
CEC2A928820394AC238F2CD902613BEA0F832F9E7AEAA9975F7EB95A86C16DE5 |
9595B2B51D7E5CC1FEDDAB2E5379595738435141E340DF9D7FDA65975D9E7DF6 |
59869866F48099F78588C7419218E5E191EEA7CAE4BE22AA50088BBFCAF54D1B |
82BCC40CE98B2C93972505AB78363AE992A9FEB46D2C4FD0046BF9454BFEFA5F |
7A7661B67171A89FB860CCA1818F1F8E3BEEB86F7FFBDB307CBB9CA4686A074C |
5718D78A6E31522D189422FF38D73C088CC4F04559496DCAC22A425A287D48D0 |
C3672464894F6DB3A18CA5735A20716EB8E106C50C4487343D048D4BC1F220CC |
F388238EB8F5D65B097EE41EC66BFBEDB7C7B4F03A77DD75D7BEFBEECB00234E |
8425B9743D42D0F2AE04AD676A86F963853AB40FF101086E6C06F6CEA2358919 |
8083F2B5AF7D4D12DC26BFC2390D4EA783CD1A0DCDF128E8ADB7DA2234DC0D61 |
5A58540CD6B69B13D994F23FCAF776D13947D85A8DBF14A5FA7C6400D2410117 |
349645143A7C0C7E082C9BA43077DA8141DAB340C74D974EB6572F7BFAC517FF |
3CDFB91DE6CE9FDC303AD1AEF78534617F94CC1D1A6C66EDF5631B1B99ABC511 |
656EB5BFF2EA78BD7F287563ADB8E556A7E50DADF65AD786FB35EEA200667550 |
C04DD7DD50481825C5EDA3A24BAC8099941E78936E80FC4B7ED222A8791EC516 |
E002549E3A88CE34AB7E25BDE980CAC58C0B12755B36A9B129AC4D2F8E1FB0B4 |
13AE68A9293148AB1D46212CD42F7FF9CBDC5AD8276AC8AB5BD09BA27FAC2A15 |
3AC7B82F36A1D89C48CB0A3703978D78B0CF3BEFBCF3CF3F9F66059EE11DEF78 |
C7B265CBD45F8851389164590F98F234289B0E6B07C3059B10A4D9CC82924746 |
C62071402196D2B4BD0AECAC9133992612EE4BE18537D5EA846E19DE3FE8A083 |
EEB8E37691034C4CD4B7DD76E9F2E52B535F4E9E4913B829B9E79E9CB4D365FD |
2C202CF87024A592EBC05003C949745FDB1983BFE203F818610558483C884D7E |
DB5E52949E4C8AE091990E11389E0DA599D1E7A6E7B4D0CC923BC89170F733AD |
58840A7AF61BE618B8ABD4F2DA150E0DEE32195E320BBA9C15AD9D38FD391836 |
AB6048137B1457C6C110705780FCD8F0DDC4BD1BA7CB037EF7BBDFFDA73FFD29 |
35CDAA33D3B3212A4ACB141EC083B31C40412A3602619C7FC672EAD7F3E256C1 |
3962699FFA660AB7C9983C1691191F3EB200C36E6ADC1ED3821F606EC3B2C62A |
3059639D0C61C7A8B4F008DB6EBBED134F3C816F7DE6339FF9FEF7BF8F27C2C4 |
2ABA8EB5236C421EAD0B8824A5C36505D2B3C405B7D9661B6C244C14EEFB777F |
F777BFFFFDEF49A12AB2E52E55A724A84E193BC7C996C205B128966C873069A5 |
FF5557360B084BA4D0023D598E4C9E0E85D6F0F8DC6024DF16C39D2BEA8C65E4 |
118E40C5EFEFE692CEDE8B5AD55A5AAB55B7DC62F1FCE1B9C3C3435E67346123 |
B6A2C07D319937AD2145F5C08CBE05722ADD9BBA64FABC111343A54B055CCC70 |
E6A2B24058506705082B6EE4CDC57D7397FDD76F4AEBEB8B926ADC9ECC42CBA3 |
52EE962E580831BD76C308BE53AB9661224CB6B3B969350F53DA2AB9D7C6EA43 |
03E9409EB4C6EAEB92D2DA76EB6597BF9CB8F5793C19F28D9E702BABEB206BA8 |
9C344B92C3BFAA1780548352ADB47D25FFA553B8816D7843C81E8856283CD623 |
91DF0DDB4685E9022D33B443660B22FB98C16170D4C25D459245C18B6160A7C1 |
26BBE9A69BA05C1F7FFC718E1F03804827829AC014DBF507A3122D0C85240991 |
70FDFDF7DFFF5BDFFA1647CBF40763C99FFAD4A7FEEBBFFE8B24719DD3A2448E |
2D8A90955154BF95241A66E4F0D324321AE658BC9BA5330A261AADAEE84E2305 |
9CBB8652F1AE284F522E6A7A619F64045E34DE69BF50D7E2F9607EE1881D74D0 |
01B7DD761BB96008A836F031370BC1888D3CF77AA7EBF3AC4B8B8A8E8A7A046A |
0EAE93F2D0C45ECA0A13CD322426710A0C399086495078597CAE3050A865092F |
E2D888F8EDA28BB3997EC96EC5A26761D924FA1A2A0A9EB40DC5C844604E9A44 |
6B168CEDA62626206D710551B289B5EA924B2EF9C217BEC02683342DA166E04C |
BB02C46F8F7DD2BB013BCB5198996630403C6E2CF4C20E87ED79D145175960B9 |
E44857102C2AE0516A31A418F8EB7C5130893A4A33C369EFEA47A2CA78678AD0 |
78003FF7B9CFDD73CF3DB429C9E4870F70F6D48842C5BE2234B0CC1E24E27085 |
DF80CF10BDA9FE510C94610BE19A2AB760EC9D1042CE39779A62DA0AF52BF0D8 |
6BFFB0870C0F88F60C2D60FC0FD71306934094AE080BD10D550CDC199FD2AA2B |
FA3494AA84F2EDB1C71E3FFDE94F1913528D293977F1573834DFFEF6B7C510C2 |
FF15E86685BDF47781E98D5C1EA49F0FF2795AA8722559306FFE565B2C86C55C |
AD961BF58946A31EFB3C6932D69A6C172FFABB34762D87306D74FA30491EBB99 |
B1268ACD8412A62204DDF6A680E776761D43A49D963CC37352290D35D33FFDE4 |
77BB560792496FD324916B446E6EE6E694FAB184D8E5A56A69647C749DF3DC1F |
0BCA037913CF128DB6EB1B5C36AF9C2E2CF7D74747D643BD3987F3B3063FC46E |
3C83F79D949252B3352EBA59656AEDBA2B9CCB2431F733D35B145334AC79B8A6 |
13266AE713B682853BF4D043991C11211D568D5720CC58613F825A58C54EFA7A |
EE3A58FC18068C7E31BEB910C8E1F8E590502928A74BDE246193758E92A2DF8F |
A8186DAD411C5868C4036301CE34FA698248027492342A4411D2813530B41CE9 |
7531A66A51DDFC3CEF34772EFCE311D8685B6E0937E2654F4F1AC36F0E9E9007 |
DD252E4F435FE7B08B63C70AB6460BE73CDB71871D9E7DEEE99060870022C7FA |
BA4AA554AF379D074F790855A55C1B1BC378FC353B7F0AD0AA4AA5DC15F52A56 |
B4549C9F8CC8D8109DAAF716103D99ADE2821F47795C8A39955548363171A5ED |
A8583DFFCA1328D8F03BDFF9CE3FFEF18F94F849D1B65387F090430EB9FBEEBB |
F149BAB0B8B5A2A9338E939A9BE59B8C4F52613387CAFEC7E4D184AA3BE9A493 |
F282E994217DFC8CF17CE4231FF9CA57BED24B803A4368CCDB512B8B3715973A |
F7DC736FB8E106FA91B269B46764A2890E302AAA30256D1917110B9B6DB7278B |
3536EC83AEE82D48F3653A963B2A5A6E70F68881ECB2E1A46654B374DD75D741 |
461F75D451575C710593D0564668A52CAF722F054C6B89CDBBFEE11FFEE117BF |
F8054FB83586D431B79A9624B046C7421EDD850297B8C3C31B87AD22AF77B0BF |
C31EC02663F6D6BCBE787998C0B6BE35068FF1FCE10F7F80A8E220610341D8C5 |
817C83E654A35E4FE250BE3539514A217F9BB5AAC785B6F276ADAF6F627C7CCE |
F0F0C8FAF5E510C8C187CBA532C58D2039B47E28496CA247F69FC86D18AE64FE |
4B78A5B8686B2D8679ED2569323C1D39D7C837EE8A0E2B679F7DF6C9279FCC35 |
B2A8852BAFBC128BABF6887951F4397B255E9776A41E5A38CF436FB6DA6A0B1C |
AE3871013DE7E325F5D60461BAC251D2160F1D0B5B59D1DE83D709659125A5E4 |
A4DBC2833767145951192E70A939D1AA0E0CBE34F2DAC09CA139E54A6B74D4FD |
F64908D63E4C38F46BE8DFC402E6268E48CB8BE05A9256E1CAE69D279ACCBD24 |
8583DB6665918BE1F778319764CDB61BCF1D44C3ABCEAD8EA235D88930151A4D |
4F489D67A13D728C81A6E552A3D9888B2E49828EC2AC8416C469F28CC7E1ECE0 |
D7CF7CE63338593CE95820AE238B62D511272A48E8D8362D2E3AF20A764A88BB |
CA35699F6DB9E596F813753356FCA31FFDE8030F3C80FDA0C49C802962AAB11E |
08578A395D22B3F6DC734FF8AF6A544FDD71EBADB71E78E0818A232A5D882BC0 |
685BB3668D3C63FA84BC2C6FA79887801D1D9C9D80E334D59D89D731374C5969 |
298E7133A6551819A3A01F1A1A683427B1E3CF3FFF2B5B2C81CC7A65EE30FC06 |
38D6B878EA41F351406CF942F24074323EFAB6DD767BF4B1478E3DF6E8AF7EF5 |
2ACFFC3EF217DCBC5AA9E2338D067449ADD9C2E975B059B98D588B8913484149 |
B3C04D83F97803AD4543950DD59322DCD17CA30AD802342C48D832AD88CE3E2B |
5A1C5A88A3B23EA490E49B58A777BDEB5DCB962DC39AD954992B2C09B691B123 |
D979E79DE1259C7FFEF9B38C13B7C0FF6C998019D6156243E060A38B9A34E9D7 |
5E1E30B71A632CDC06D61490A1C7E822B5AF0C527A66946E50F0575D75150C02 |
8D5094C56C96C28030FB32D15A24350403EC4A06BB10FA26A6D71556336990BB |
54AFE687B1191235C82951D11D6356C41C302FC0F4AA684FF2821987E2C30AF4 |
59E64D614FCB932A300E533CFBEDB7DFF7BFFFFD4EB902AE96862C57B3313830 |
C847C6A8EAB94F2D3A037BEC805C9A2DA59AF08320632A02D1346AC56D2132A5 |
926CFCBFFDDBBF7DE8A187B47BFD7297FD9F20C5A15969C460602ED8D13E9316 |
F2D01B466079FBD0CEA2458B5E5AFD22494ED449457E397E8617FEECB3CFE2F0 |
B2E32159ACB9B2964281DB95692692E0AA588B5A8D65A07C8ABC68DB408217A6 |
99F9033E03E10B614D91ED42848F3A9E98894D70D12C93A077BD5F56CEF0A6E5 |
C4FB6AB8CB669B2DA8F5B16CCC87B84727360867477F11C3F38FE91DB0A672F6 |
14BFDE09CE52ED528564C21234EDAD35805629732D17E7C9E09CB9CD766BA854 |
5EBF62D5F84BAF2E1AF77E6D258E2A599E78EBCDE77D93142EAC2F5381C35576 |
712949E1D4F821B55B0D28DACCD50354270A595EEF2A612F95A2B627CD8A37BA |
7CAD8B5F8CDC2B2E5A17C42436561A6C06BF93B34E104E9DEB14A4A422146D00 |
B628710624A7EBA2C1B254154C69E103D88D3FFDE94FB997F0C5AE5622B7DD76 |
DB01071CA0A42FD53F64086E848BE0F338590C0132C241DB9D4C8B71E857A856 |
E871D13110AF638F3DF6FAEBAF6F9B6E9E749918CAC2D6C53074A82D4D269F82 |
81134BE0A828DA74D5D309415327DB703C5EB81676B042D3EA5103D183215E73 |
CD35AE28F657E6D51F1E1CCB6A3A39D1AAD5FACBA5DAC8868D58AA3CC39A26EC |
C541D9D16A35E0CB6E1C1DC93C12AFB260C1BCB5AFBD3A591F87EAF5F661BB55 |
8394F775DF9DBAF5C54B168EACEF700833FA7FF0C107DF79E79D7878CA627B30 |
8A0855F8D589C2CDB19D8809E9BC2E054C9B4854B7222E605ED03A19EA0031DD |
4F92981632399ECAAE174FA3ADE0FEC67A1F76D861505ACCCFD98D325D34D826 |
ACAE70C729EE097CED14D417646156EF523A73BBCC787D6A507CF29BDFFCE6A1 |
871E8A0FE3A959EC44DE2BAA37852E39E0AEFE7D6C55D98563928D296036179D |
42939408A79E7AEA97BFFC65B97154907C047A96C25CCCE8FE6AAA79B61569B7 |
800E57848B6D6604973DEDB4D3CE3CF34CD6A462E45D517A0E691605CC2AA328 |
D46B29919F17CD8EF899F7BDEF7DBFFEF5AF93D034AC3931494D008FB3AFD637 |
3EE1F73C0E5133EA0478AC02F6FBB99DEDB8E38EFFFBBFFF2B1B88BA47B17D4C |
0BA9ED59538B71B2668307A70B15AFFE424C56F9FAC8FE012A48DCE5F1271EF7 |
8E4E9ECD9F377FEDBAD7FAE1B204E9B9CDB6DB52A162AE2EBFF4B2A8289AE076 |
A21DA3408B5E4A61B0AC53DB5B6870ABE7A8999473A1AB206FE3BDEF7DEF9FFE |
F427854C383F74C48F39E6989B6FBE19C7D312AD10DDC368B0C5875BA45BAF53 |
A67DD531AF3D38A8B664C9E68B172F9A333C1862305E868D4D6EB4991729609A |
7D364E43050C0FD4B2EC49747858B5B9BBD470336AF97873A596E55163627241 |
545AF7C853C32D3708151B4725EFC1FA58A3DFE4210D37DE68552010E2246A75 |
4C0D68DF8976733272ADDC4124B119441CE2D2A98B16C49EE7D22F5F1EAF6BB7 |
5ECEA186DD681CAD883DCA3BC586C7F456AB73063D06D3D34BC79BC45736B559 |
AA10677141124EA40B2D30D6BB538CF098085D2F1208F99182CE4030C2A98D42 |
4336611A544F2B14151D36DA820A3DE6A615CAE5975F7ECA29A7D0DA63648EA9 |
1937159B2C97F7820B2E8034B0CDBC597F1F05B261C1B06DC8D315A91CEB5F6D |
12506E2A779570F3F832A415EEAA8AC90B2FBCF08C33CEE0B00410977580C7F8 |
E10F7FB07CF9F289897A904A937DD539E393939552350A60A3D493947AB9E961 |
82BEDCA819CE249459DF5F46D6C2286BB6EB7DD53EA8E100641D0D6CA7AD6DB7 |
DD7664641D6604DF651C0C6EC1C6D18DEF7BEFFB7EFBDBDF4216847848D8946E |
2AD5BE53C364D2C8757600CE5A8FC3D5D303A627F7E10F7FF857BFFA155682B2 |
860A89A69FA89225E8BBF2C414B8C49AE207EE0C510849D6D8E551EB0C7C5E9D |
88A872661C2711AD0C29136823674B124D824C1884682ACDF52C393CA6246C87 |
5A5E96D40A78168A7BE6AD85D5B2A2362A3AFAF1A108A053EACE999824FD51C5 |
1E2931797AF12D061BE80CD11A63281B5F27B5C2A6153573C5F1D38A52F18094 |
28AE4FF8315C19682FA64559ADC4D2436683586C8A2FEEB0C30E4F3FFD34093E |
674765335C4C3D2DE52D8A5AEBF675B4380110A5D06F60627C9BA5DBAC58B962 |
687068E3C41835EE26B862904473E70C7FEC631FFBC94F7E8263883DB37AF56A |
9AE782717640B645FF0FB80838D49C679BF894FE13F92BBB17F0A6F8D6BBDFFD |
6E9C387CBED35DB152A6F8C37D1BF5FA702016F02D4E5FF10E286D4179C091A1 |
07C275FEF0873F60071E72C8217062E485B01F0E0BB82DDDAE2B7C146273A2A9 |
5CD65826FC401747EDAB7953826FA300FC161F0ECE080392A2A58C8B8E87DC60 |
B3339DD973DD112F7E1396E7CD9BBB70B3F9F3E60DF7F5559314176C857F9970 |
58B48C3915B61A588899BC950BD5616D8EB434A56783C680EBE7D091FDFDEB47 |
C75A13F5254975DDC3CFED54ED8F27C74A71024F378594756DEFD426317C1F88 |
E55AA9E21D5FE6D14B693BCFC69B8DB1A07A7126EBBEE4174E73540A69E3B979 |
E683D569021777A4D558EBF2F5CE4DC4EE8FB983C584757F69D52AFCB0D38E3B |
BEB872D5C8FA7571A9439825002677BE2B7C184C2C898358C72F743DF71BDE21 |
685F9C39F8136BC72D5D062F85FF197F2526F199679E91F1F49DEF7C076E318F |
12FE4A9432FEFAB5AF7DEDA8A38EC241BEEEBAEB0E3AE8203163E0EB8C417239 |
944CD48674A18FDFB265CB7876F008D83C947EE22A38E79C73E02371C3634372 |
A1E5D03AC3B71317CC5FF2B83A0AD8997EAEB2D0A9DB8F38E2885B6EB9855286 |
893A32E608EEC110993CFA0057D9807D05895A2B0FE04BA5B45A2EF7C5AE123A |
5A33E80D3B6C63E052E95B3FB2AE5E9F0869BF74DDC8BA8AE76DCE27EA101659 |
B994369AF5905DF671EC5AB54347CC2018542F15A1B672D05D051CB45C2BD0FE |
ADF0A64CD737A68055FFCAD34BC0943869B17BF0BC58C22E70D07458353D5A1B |
F8B5AC265D275C8E2936251BEE92B765961C30BF45C42089A824E8BB4A29A6F7 |
A5494C6FCB59C06554A58C161E7EF8E1575F7D35E106D897A3E1151942546738 |
BF1819A60D484361FAF5691A739CF83CAE80C3C3868604A051879D7EFAE9D75F |
7F3D2B195462AF98156E3D636B528E1F92F7431FFAD0EF7EF73B1C217A5AD0A3 |
8F3CF2081CC44F7CE21377DC71072D0641DE387B5CA69D77DEF989279ED00571 |
357C0BEFF388AAD877FA8BEBAE25A02DCB5FF133EEA5FEF61431DB068DCBEFC2 |
D6FCFCE73F7FEFBDF72E5FB1DC85C6383A9EE210AD4FF81A47223375478601C9 |
A84CE22DDE17337CFCF1C74358E4A6A7902B40C204982818C691935C9AA018CA |
C7CE898B5C1D531D8E007EA0370C01534E4B04FD896896113F32F0F1CA941EB0 |
E6CF3BEF3C350183A895E3AEA347BF84313D1A70F22D44CA8FAF5C7CF1C5F074 |
09BF504B44521AB86060115A4FAD8CB5FED18F7E245386179713F2FA51EE9DF0 |
21545D2986DE1D1A1A1C9E3B00B3ADAFBF12BCEAB64A8FB2A92F1501CB15F6B1 |
B13CB619C04D2A21D9C4CE61753084EF78A399D46A939157E18BE2D2F25F3DBA |
C4B92DB19A2E2EFB20731E6579DBE571EA8564B3DEAAA49EEFD2C33FF12758DB |
918313BC31CF5A9E2C2999F4AE89779A6158798035ACC6D80DC035CFF2B1660B |
F21767A31EB9DFE66ED1E69B2FDD7EBBC79F7C62E3BAF5BE77ED5A78C0D964CB |
C7D5A2A2CE8D9299134B5389F2939B932003B9A11FF8C0077EF9CB5F5E76D965 |
975E7A29F618C183B4B093A2B78DADEA113C1E7B8FA1C71B6FBC71BFFDF6C334 |
E24F14AA49686117855A23D2D889C99914AA2C9CA117A1BA47B1ED8A09007F3D |
F2C823A501F9B211235C9C37E575C896416081C5EA5B4DEC0C654D2704ED0C1E |
382A984B7142F060EC00837372F4D147C38EA09267CB1ACA4D6698F96B98E58D |
A1542EAD9606279BAD81EA20B46FA5348095F5454945FBEE466B3D8EFCC88691 |
6A151A6E62C992CDC7273CFD5EBDB571F3CD367FF5D557CE38E3F45BFEFD66B8 |
C81B366E983B3C3C39D10E5AD9BF966CBE046775C992254CF36CD2BEC6BB573C |
166E74240A37ECB0A8578E67E683C776491682CBA438912FB80B6C76767913D1 |
6897AD2A914D24AD0BDE2D74002C9BAF7EF5AB56015B9D2DFB91346410C4F7DD |
771F9F77C67132CA8111DAE48AFA191099450DC70791ADC7E5A050B0C8A6AE17 |
93AFFA80AD0DB37407DCD02A58A27E22A44285CBCCEDE1574A7CC68189EFC7A5 |
58B5A9F0B528F2A1097065FA91F81614C977BFFB5DA21F9DE9C13CA394D4DCB2 |
BEC586918996646A072A90306FD241580302DFC2DE666B6ACCEDB9E79E8BE3A0 |
BBCC82CA262DE2A38F3EAA6C8EEAC1584DC80BAA513CD91C312AAC9A820A5E76 |
34EA52C059D157D8EBC87A43B476B8207EC01E1375892641DBE984134EB8EAAA |
ABE8491089AA02E23C547533CCBEC962234771A897531D20A4432534283CF490 |
431212C9AD5BF737BBEDF6E8B26570D69987E6491734ECE31FFFF8FDF7DF4F48 |
3FB941BAE210AE48E4B38E4E36AE20145DBB910291511C62EBE89A5B0E1C26C5 |
B5E5683D0B67AA9E48B9E99BF2FA1570714ED3D03D302E5792FE81CAF0F0D0DC |
79438383FD596B53C9AF6098CEC7FC5B0A92B1776454F4069586EECA46C50599 |
496C1A24C7FEB0BBB452CE62DFF47A4E96AF7FFCC5CD23B76DEE93BE659CAA38 |
48759767F81704BDAF220E5230C370E25062ECB927EB7994D4E3A89E4575884A |
7CD745E534C64AC067EA875F9B3BD8CEEB031AAB0E0F18EABE529EBF78D16B23 |
EB376ED8E0D9B95AED6A529A687788626CB74ABD54328B853BF4D043AFB9E61A |
DA7F743421D6042D164CDD19702B360C7EC063E2EB2CE7DB71C71DD9BD8DF616 |
FE448A0F55F4AAE59D0A04C8CD40080B13BDF404A4D771C071175549E50531D1 |
17BFF8C5CB2FBF9CBA73FBEDB7C7E6E441204C87EB826BE233279D74120BDB04 |
CE557C858A831C2F2A26F2E697335CFCFC900B5612CD55AA1992217495A9BCE3 |
1DEF804F20D0075C84679F7D36E45D6A914B9B0DD852A5850B369F9C6CA54935 |
4D6A7996FA1AB9BC83F91A1ACE3DCD6C63120BB160E1BCD0DDC2572A0F0CFAEA |
94D0B1326B6730D6DA5B2CD962EDDA5793B8A85868B7FAFBFA47C747ABE56ABD |
51AF942BCE388EDABB34A09ACD4063EB9427CE5CD48B70A3A7E7C7E42E839398 |
16463FA863B0422CBE8E8AB639F9547ECDE294C64C1BD381A3534BED3223E883 |
3A125A017FC5C615FC8FAD26661C27B1C4181E3D0C3A40D273CA3E520733FC42 |
D160AB48675124DC8B0CF9F28460B7DD74D34D3EDD55049039ED44322BA14814 |
37DBD9D2F895CC553C80C6A047E105EB9563C0A1A5D32F435549A3C434F2231C |
4F3838199876325D11E621D4D6626DF4033D5D4E14D3A8D48B1DC29A4076A84A |
03C6A5F3823C6496DCF929A79C0271830B6293600B1D76D861679D7516E7198A |
196F726F601E68CA501058E04567F0F126B4BCD8FB4AC1411195982D99509730 |
ADBEDC6EB9E0CE14FBF1A188F6E430B8A53D745264701D60858F734C4E4C4007 |
C3F7653A302EA855A178EC16B212438D8D9DE9788309F9CFFFFCCF8F7EF4A384 |
A16187C3D6111D95B6A5A223386ED86F04DE0BCE6A69A2BB5C0D95A7F3529C52 |
583FB4F62804BB2A9A5CEF57973D173C9852E25DCC2877D8EDF9E0506DB3453E |
169D16CC55AE60E128707FCA85E5A40DA19250858598CEF4750B9D959BD17059 |
258B4AEDB89C472FAF5C3ED876F3EA6ECB5A6DB03E89A1A485CEF6DE2DD47CDB |
AF63BBD54E5D043FD8078A33E8DAA854AD8C4D4E36F199249E6CBB3A43D6216A |
DDDFCE6A49524BE09ABBF1566324CFB06C93B17B3CEADBD81EAF87BEC42E4DF0 |
3C91477B45D0E8968438330464DC90D8F6E79F7F3EAD220813929D1157C427A5 |
258A79C029C3D9C7B6E10EE1FED159D051E591270D1F1614DA44FD0AA9B0E04F |
C3506692250A5DC818FC93C14AEC0BE98F946366B11C81965C14726909CC68F7 |
03636FC28EB05C48CB2D0B92D298C96972DAAB34237205B111850815B0FA92C6 |
A69185DA99C1F23DE69863DA455707678C88607242290E8C8ED5ABA5219727FD |
7D73F07FE42A9DEC7EDE215D7ADF07FF06AEC633CF3C35340796CBD8C4E458BD |
5D5F347F61A339064D8C2787567E7EC5739B2D58B07EE42F0DAFCF7DC32ED6CC |
61784270E4536B03ECABD8F1B0395BA12F66F003B2F1D98F56D7CB260654F960 |
C5B176866A27E2A99DB96422B9A2B49F601086C5661C09B729AFCFFD44E5374B |
DF6281B620F1A11A051A74C127905126520535AFD61DB96F6699073ACA4A3653 |
23AA1EA95D747AE12DE86BC281C33B0CF0CA3855C053134501440D042DB562C5 |
0A3CECE1871FFECD6F7E93E8153C02C91AD9D68258E5071E78007E150B4E98BC |
ECA28AB43F8BAC477D4BF8EC843E915A84C4939C1C352639EFBCF34E3EF9649C |
349C02461471DA3FFFF9CFC38FD45DE2DECD21E853BAC21AB36ADE12ACDA3FE1 |
70E188D177E40C7BB86F29B50A185E860B7F82A0573F73677C05A566DCD4C88A |
95892AC7545B0E6B32528A95AB6157C3F80E810A2F4130605627B75A55F81961 |
FC6991C04E934D8A5F9B412D5D79713AE834F1E9045B3D6DF17436DE4E036EFF |
FDF7BFEFBEFB20F52C804EA460B699152D89AC600FC694E25CECB2CB2E0F3EF8 |
A09B4A2DA0079F850FA097028EA34A5884ACD19CC030AB35B768F3B90B16CC9B |
333864AB4B3A10687FBE3AA5472ED83D6CE12A2A3A57B0460B264DADA6F8B396 |
69BC1A27A3CDE42F639B570637BEF8D270EE16BBB4DFB5FA2AA9B793DA218E0D |
3BCF4593D82C9E6AD2353378B76EB052C5B8C74240A556AD4EC04382F08F92F1 |
3C6B0600420051BBB95902AD558D53A8F3F1AC3DE2BC029E88A2E7D2FE46E25E |
9B1C9DF4BC5F7E12AA956AD4CED26A457DA824816536C942A2002FA6A243D32B |
2E0B1CF9DB6EBB6D8F3DF6F8D18F7E2428BE20C44CF410E642F62BDE0E328185 |
0C7168822E9CAC68D154E2085D861FB0F7441DA880333528AB54549DA84649CA |
D2E238F32E96DED9156D758882943CEC32EC88F062DBEFD89059756C46181DE4 |
4124452ACF405C34EB880B6AB4D34E3BEDB2CB2E834C61B699C1589A00838373 |
EA93CDD1311CB374AB25DBC0017BE9A597E70E6C0D9F7864FD86A1A17971546E |
B7A0DD9B3002B67ED3DCC03C370937D777B24CBCB93D30D80F0F75CD2BAB976C |
BEE4A59757D5AAE54A1506D16B73E60C8F8DB4DAAE5D492A4C5FC1E41A9B189B |
3F77FEC8FAB100B528B262A50EBF47E2DB23D61BCDC966B3113CE016D3C0A4C6 |
8CA6D6742A40E7A6B21C33E74A7F4E53C6DD43CDAACA6E5B513EE3D1A5ABE1A6 |
42195D61DF59F3569FA7E45565AA943D858B1531449468A31097FFE637BFF9C0 |
030FFCD297BEA4BE1A5DE53494B0EAD2A5A6B37C47D615E7539DD8395A463EF8 |
26838D165E841FF6FED77DA020F1F3F8D8D8D26DB621858DFFEB64A7DF2DF31A |
96EF5EAC437C4CF148888F66F9F2E55D58569A1DB65174BB779306E13894CE11 |
BF922BAA9389BAD4E121C7533B3410D5B6A1F1470B83C313778FDD570AEC3B43 |
B22F191A17645ED375A4B8D248CDC1727E7CE5B8E38EBBE79E7B3060F621B7D5 |
4D6A0CD70E6D5BD876A9D73CE82B1C9ECC2F2D22A785C14006E2A827B8D968F5 |
CFB2CF25B634D58A2B0A42C5220B69FABCE06D15413F0315AEE85B47F81E3EF6 |
918F7CE4A1871E5ABB762DB71FEB956739774CE3B54DF33B9E6B5C8D71511B27 |
B4CDA1DDD408562F7062E448F3E911A3B0F6E3C4CD9D3B84A7DB728B85342B03 |
262B83538161F8D289A68FA8556B9510606870E7405C97CB7DB40B3BED878B87 |
A297DFE55C7AE33E6EC523F5F66075726C7CF39523C3F02FE2F61659DADF1796 |
B5458EB0B41D3BDCB2DE6A4D26B16F139C675EBFE25F12979318C27203DC13E7 |
53C5ADB6AFDA0C654B51E2E2E1B24769350240BA8E1FB2BC1102204FB978A5CB |
9A708DB312E46B3AE089A8CAADF644DBDBDCD0A06C73C9A2DEBC376320D515CD |
A6AECD2FDCB83D3E5C3236CE617C68C71D77FCD4A73E75E59557DA94B98E2115 |
AA52CE94D2B373FECFF8BE741FF33ECA08507CA949971ADBB86057D108880A2E |
F4AE8666CE809D37398B144FF834A901F524FA10BF89BB52FF4745279F229293 |
071EEF688BC54BC7C626DB2D4C41B6D9C245750F73ABBCFACA9F77D8E1CDD0BB |
D54ADF9A35AF7819DAD7DAB0717D9AD0AEF7171FAB8F95A21216769B6DB68667 |
BCF9E285AB5E5A7EF65967DEFCCD1B5E7CE9C5C1DA42EA399F2A188734CC0607 |
06474647FACA438557DA312DBD97802D946452C099473E771470146F6AA7984D |
A54814AB995D729972F65B94E66AAACCF082624A332E2423B46E9A02B636B5D5 |
E21C125514D5005B525BD14609D285B1223885E568D80779E0577345DD37FD2A |
D55932ECA17684F6FD2E9E04674C138C8A64F7A20D670C938FC048C0E09CA1F5 |
45931C48CA2659D530095907E0435CAB9B1A2DC4F5098860648978A87A484E30 |
3DFCBEF7BDEFE73FFFB9D0529141EFCF9EC3136A9DB60B66860A0067185A8D31 |
676A56E269C9640273F3E28B2F76C191255DA8568D9A8C0C38ECAC1217AD43F3 |
D02ED7CAEE19B750AF038F5BE3A9393CBE20DA186D535F175754FA33E3C0D9E3 |
44B95953095D804F359EB28D5F9C09D568F5F927C5BA66899470D3B2EA9DD3A8 |
8C1AB3B0D836909E789F05058A1BD94321E7C9CE0C8D7EA1B4A2025CCDC575BD |
5FBAAC947A5E74DF52B85BE03BF746147008EC7946A090356B4383F5F7FBE0D6 |
D2AD97D46ABE17AA8786E57EE78C8F8F7A83268BA915A298A1E9662110620BDA |
9210B09B272F6AB1FCFE89F378C3447BB06F726C74F10B1BA8809764C96025A1 |
E6F25A1D73986793D88D01E71C0542062AE05AE42A5E627A760628602C40333C |
6F1C7A2F4131575CD6CADAF5CC7FB719B900D4F270D697FA861E1BDF900F941B |
A38DE1FE39EBC637C2388A1BF5E1706CB121D52641D0DF59E4A1E4274D4CE1D2 |
5D61A76A1E2CEB915E74286DA457CB6437920D1EBCF11C7FAC2B4F01C1990ED9 |
EDA2EB22FFDAD557D085A00E71A35D7E5A0784658B225C114FE60DECC3F0C54B |
C8A4951B542EF5CF9FBF70DD5F4630F30BE66FBEFAC5358B162E86B7ED5A7D6C |
90B0F2E5954BE62F59F3DA9A3935AF151AF575EDBCDD57EDCBB3CEFC6E1C1FF5 |
DD0C63D7C826FBAB1598C2EDAC9E96A2B1F1918181FEB1F16862628CF35EADFA |
B2C27A23A06D735F5FD16EC12DAEA6D8362E8661879F5B6E030C4C7CC62B60BF |
739A54C0499A5B7349EBA40A1967E27822CF9B1EE8565E9D9C4D96D4A2D742BA |
A9EE0EFFA70FDD5502C8F140BF7EFCE31FBFE38E3B98C0207D04578A12D326C9 |
B82284A258C49365661192109F672F39FC4A20AE94BDCA4919B7A171675B5DC2 |
1DFFB77FFBB7BBEEBA8BC93C3C6D7F1F56670C16363B4057CA957AA38E9D1517 |
905A2F4CE1B0929CA1D9223336E5A9A771D8B0C1461DA6973BDB6A1FA630A923 |
B5A119D762EC6E16C58047BEFCF2CB8F39E6185E5C25BC30A2F1A62B08E05C00 |
E6E0FF4B2FBDF494534E2196925E940E1B6B5BF1DDFDF6DBEFE69B6FFEC77FFC |
C7BBEFBEDB15CD7AA9BF0595EA420674490ABBAFF857C539980CCE8AFA5717A2 |
6DF89948342E13FB0DE04F7BEFBDF70F7EF0039AD1D6989B3E0FDC75F4B7C42B |
49B14ECB1DFFE3E2785F46B925A3C51D493F3EE3F585341415B33ACCF0B9A8F8 |
71652C2514B042267A2237B530121B9843C575B6DF7EFB5FFFDAF7F3C6D1A0FD |
47BB84E1C45ECF4B674B55BF7C52F145C405FF86320256A05B293CB384CED300 |
EDF4FF3A89AA04DB209D3B3C3877EE1C883E4C260C456FD97BA6E876B3D1418A |
64B9A82A19704EDD54D8A62B2C0C2B19E4C9794ECCF5E3D99C5A7D7C62F10BEB |
E7B9248FDA5BE4D17039507A65AE09F5E9DCA4CB2723D7CCDD4860E4E8B8BFC5 |
3FFC3A542D07F7B7DDF0D02CDCC56B5F38DD31BEDE6C4E06C705FFDA514C05FC |
AC4B5F885A90D4E5B8D457AE8D34BD953CBFD6F7CABAD7708E4E3CF1C43C9008 |
D1CC657DE08CD32611CA3A1A6E03FA185D717E45286D68AAAB3B96264A1717A8 |
AD4B6ECFB24F667CDFC24D225347E40AC032AB95F8388459911B8BDE3693D392 |
0C76713BCBDAF530B285A72B0CBE706CF061717AD1A6C010E70C6DF6917FF8D8 |
CF7FFECBC8257F59B7E14DDBBD19175FF3D22B69D41746D338EC0B87DE78E38D |
F3E6CD5DB1FAF9BE725F3530EE552AB5C989063E59ABF537EA011DD36A8C4F8E |
86E69BCD286ED5B3F1729C0E0F0F4DB6DCBA0DEB3C482F2DC36D86ABD96C37FB |
AAD55A1526FCC66696D7D2814AA53F6B43019771B5A65BEBDDD1A080DBBEAFB4 |
A7DF0AC723B30691330AF5C0030FBCF5D65BD5FA4ACE84959836C7CC5F056679 |
FBDBDFFE8E77BCE3861B6EE8B5E1EC4CDA4065D7D6E10F140DBBEFBEFBEF7EF7 |
3BAE88DD0A3678AB26924B972E5DBD7AF509279C8093F0C10F7E109EA22045C4 |
D6F289449DAA0B8A3A982432B4ABC88F4848B3881138CEF7BFFFFD7FFCE31F19 |
528EDA1E4A363E315E2E95B9057D18A0516F476E60707074E3C65AC06D51C04D |
8C8FF7F5F743EFBEBC660DC13BFE9121DD20FA87BCE8677690ACC5AC58650715 |
4626287A441B42CDC4F8A41470AF83C40C3A691FF003750023603463312A961E |
12310E718F6F613054519681CB9954FA5BDFFAD6071F7C10530ADFF4E0830FFE |
C637BE1105BEEBE5CB978B39B62BD632A3F6B5E70B16060BB1D467F7BAEBAEC3 |
D8AEBFFE7A968653F78B669C31708C131A8E7C4F6E564390EA47FCB2DC6C5069 |
2FBFFCB2253190219F879AABE79E7B8E53C4B2E65E841579D1754A9E25DD5606 |
72E813731FDA923C6A4189577D975620671EEF10B22E6B4C5B77B6107188E2F2 |
1929AC740BC593784CA8C8ED83CC1EDCEE8C3C2AB7331A0D4E0704DE6D12C15A |
1ADC6CD1025824213DD9B92623AE747CDBA14561D8D50D1F122E5E5304748810 |
280B4E05EC5F799B0AB83951DF72CDE87C17070F389AEB059C8326ADE7ED0997 |
8F47793D72EDC4BDD674B014CA91ABE61DED5B76BE01D38272022F19C2B1E1E3 |
D6810C2B2860CF20DD685001FB5E4B2EAE471E13FB7C547A3E6FA6F30646FF32 |
3A6F70EE6BA3015257AE64694CDDC9B23189A959EAAA35BDCC2531231ECD5442 |
C2CB0AB322A94564FB8C061355606B6A17765975AFFF65E11DAACFCE8B026EAC |
2C2B9B391E322270870BCA804D8B09E9B82B064F37830256470BD7DB22C88BAA |
A6C4F45C0C6729D976E9F6CB57AE18A80DF7F7E1A04ED4AA83F57AB39C78F13D |
91E1B8E6D5249D6C8F2F98B3001728456C3B551E1B9D08594C389DFE3AEBD78D |
CC9B3FF7E5B52FCD1B1A5EBF61EDC2050BE001C3C12AF779B7A3DE9AD871FB1D |
9E7BFE9976DEFCFF3EF081DFFCE6378303F3A1805B795689BD02CE215B926A50 |
C0AFCEA880BD5E9F6661D9108728B661BA623C5D8DCCBACE2791C6128522C39A |
5110CC3EB13647981BDA17C2F078056A0E861CE08C6281A17431DAACE8F3E30C |
BE94D914F82B30C13EF7B9CF7DEF7BDFC305F97490F2F80A795EA09E21B5718B |
7DF6D9E79E7BEE21E06EC696882A92710639CFA782FAF46D412727162E58F8E7 |
B57FEEABF58D4D8E8B2E87995D4267375BB4E8539FFAD49D77DEB9616464EBA5 |
4B3D127E727278EEDCF57F59A7A9E0D1A2C65526982F457D2D32CEDA43B38422 |
DFF296B740AFD3EDC3B7180060B1D669A79D76C10517B070D6154486AEE8D744 |
CD21E148CB574DD07453757DA0D74559694DE6E921AC19BD615172528E30A0CD |
B5E0269106C2C0481F8F67513C9FA646AF6D468F995B8B73ABA8B2AD86C21662 |
4717FCFACFFFFCCFB7DF7E3B761ACC11CE361FB3D7F5713558242B57AE644B83 |
73CF3D1757BBE4924BD4788E162161A56CC8C12712D13757767A5A5D2F4A2A99 |
68B384165577949836795DAD57E92233AB42CF58CACFFDB5579290046D130D40 |
E780783FD897A50E0E0EE07F5FAE9972976605AAC67F1D3A98FB1CC289911ECB |
E4A5DD45CBD27AC0F5563B1A19CF866AED467DEB3F4F2C84C64FDB4B5AF16038 |
0D54C0E3B9479C36220F6EDEE0B9AA226CA6B29302F6439813F93AA5A6EF8153 |
B051C67E787D304D1A3E7818E03351C345132EC30E5B19147069FEE0C6D7360E |
5607E66FB564F9B3CF0E55AA1B26C7A54770BE28126D43AA5E52D4156A4909AF |
190F85B20CB6F055A7DE1983895B9426E6F4B0F32C865AAF114645CD6E6EBA6F |
D99C9DCEBEBA2832DCC216E3448AF025609D9345E84C0DA57C7C5DD73E615480 |
F488EA265D0E2D171F7698B368DD5F46E6CF5F1847A50F7FF8A3FF3F69EF0166 |
6B599E8DBE5F5B7DADE9BB6F606FAA084462073DFC62ACC9D16308A868C06305 |
454090A6C22FC5129A28CD02BF35B902C18209B12497F8A368148510942E65F7 |
993D75F5AF9FFBFDEEF91EDE5933B335E75F726D67D67CF52D4FBD9FFBF987DB |
6EDBB2F9C0E6427BB639B775D3D69999BD9A2733E8C176DFBB7752AF330B1B63 |
910608EF45295F2C94A1339DC546B0FA659ADD79276BD46579F084464BE5C213 |
4F3D8661D9BC71FDF69DCF960A9AE2A3D7F5A324F5ECB2E7962C05E7A080EB84 |
6A76C510F4F2FEC41C532292A8EDC8C03250493930CD62BF73CF7057EC63A9ED |
6382655E854B8B3E19A592492925461F45245B1F426E0AF68FF13A95E1D8CD13 |
A95106C0BAD42BA25FA19F7EFFFBDFF34FBCBE4472542E0D312CA4FE967C213B |
F3706D6DD9B2E515AF78C50F7EF003DCCB2D785CA0DC30AD66136691EE80343F |
FFBC238E78243B052F13F97EA95AED773AAEE34AFB263C3C2E059F12237CF6D9 |
6793F7945D4AB8F459599FE6843262900ADFD3F20F031B100D787EBAB3647E96 |
EC03B1E2342BC997042DC819A1AA602F7795BB8662F1109454CA3E9808FC8A7F |
B91EA4D66B79085A5A400EA4844D6895046FA5D602F32529068E3FB6D55FFCC5 |
5F7CE73BDF614095D301E3CCCC169B1FE92C24F90821F2254E905CA118E1E38F |
3FFEC73FFE31161BCC358C332CB31B6EB8E1231FF908FBAF0C10959BEB998BCD |
842648159995779A4AF2CE07F498C936CFA08E9DD3B55A06552A3116EC24287E |
8C487CDCD16C016E7EF027189AE4065119FDA45AA680550EB7540628FA4F54C0 |
6A69CB67994A27EB1D683BFA16D56A199395B5AF77F00D8141D9C111512361EE |
011372C5A914E0E4229F415E4FBC18B7568B216828E0FDA7BB6BE0CD3AD186C8 |
6A140BD9235951A2A3CA3DA5FFC534683F519708A78C42EB0685783A2B2DA650 |
CFA94EF1EAB60F9454BA57EC90A3FDE834D6CE74004F5AE15209C67A9BE56DB7 |
43A8F346A51E74FDD7BCF9AFB048468A255570199C301B7CED5BEE0D24DA39DD |
02C837BF4C97B55D126882BDACE59AD870035A7C1F6127F5A72960333CC3B54D |
5B9932840B69EBD6AD501C98D39B6FBEF98C33CE60C66A20DA6A1978BA45D3C3 |
A4705A6E4E9ABF72BB520D28A37DA16D150B05CD3A393C3C562AD6A62667F0E4 |
DDA0BFDFDAFDB74F6EAFB8958F7FE2A2CF7CE6333921940B1BABDBEBD0F6B432 |
38BB3645CBF80BFBE43461D746A1A6069C9D9D9BEBCCB9AA5329975ABDE611CF |
3BFC89271FA9372AA79EFAB7DFFAD6379ACD6EA26954313CF0ED35DDB4E7EA80 |
46A4DA2B82B0E00A0FA852910B4239F695AF7CE57DEF7B9F6E6F9237AB52CB62 |
C8E278717029B86944FF299B563E52DC25081189ACF2B27C4E618449F3D272B3 |
EC47E80E48AEC69238225759EA8EBF923F4470809C4122A8F1CC82D45746473F |
F2BC50ED89A5C518E973B13B3F935FCC6487E1A6FDF7DFF1ECB35EA984F505B1 |
51CF5DCC2E1F2FF3894B993A8129D71819A15CD65432D333A60893ACF0C5175F |
7CD555573129409B174F057528D5FA92EC315DC31537D28D37DE08FD21218A03 |
0F3C900509C447489C9F89407653217488916A2E75B30987C9B72CB97C12E0B1 |
34C26CF43D10E1302DFD014921BDF394017C1365CCE1227A88D7847097AC1031 |
5CFB285753794C85D38ACB526E92235A07AB723E19D8404F3DF5946058A89F36 |
6DDA74CA29A7C09DDD47D9151E9EE3C3725B3C1E0D410C354BC5F86AA405B5F3 |
6EAC248CE4DA66E592197D950FC71F4E39ECBC8F7EF4A39FFEF4A7D95C64B5F7 |
85916AB661A66BA28CA63D12DDC5AF7824F82B82BF356DA67D0C267F20AE30DB |
CB8B7FC8FE4F73E542AC55B34FA95450564C98241E27DBC2414E3853126BCC24 |
CF92364D1C8AE7A2296E319D6D4301477EF780BDFD0968083B5C1FA972D1D350 |
58DD704E236AE234E9C73A06D8D508D954B74ACC52BFAE4EE26ABDD20BE30432 |
D1D6F231CCDF066F3D9AA45A493B05AD8093A40D7F5A257D4B4D971B8F749BDD |
8286750D551A56555B3061AB69656920A14DC615B8B4F6AD80C5961225676AD9 |
81D8324B30C4A5361BAB2B235E22A0BC8124C29F9250586D7EC516140DCA82CC |
430F3DF4D1471FE54E37838562DAB2B12C04266940CC975AF4CE45EE881B91A6 |
4B1AD4AF6844B06928372DF69896DD1DDDD00D5306BB2D0A61D5AE2B781AA51D |
0531B1241025BAE9A9BDC8799DDAA566733E731F6D6D89A571BFAFD94C023FCD |
02E8E3AD66AF5E1B4E348F8B564BB633AD49FBA28E6ECF12741215D6AA30ABDB |
AE53CAF496065DE3EE054FDB01BA5632EDAF5886E4B8A94C9819DCA765008BE6 |
FCF3CF3FF7DC7359864B64935AA6AD65CB898C9039DEC782337F95C358AF2600 |
772BAFC7E5F1746844E34A923EC9BA77B1588D8D10840948E5194A096C905F97 |
ABC1E4A1148718B38919D9B66D1BF965ACBCA509F3AF3441E8B5F0439DA45843 |
557029F1B5CCED7627D6AFDF9B056F4B5EA1DFEB8D8C8ECECDCE8E64CCAE599C |
2D39E8D0439F7CEC31E8697C33C74E9CAEAE5CD444B4D92BB36B2FB51A03B9F4 |
C9F8B492A41C3081939CAA70B53A4E91ECDC1B5439DC36787D2C4E2803668531 |
9E6C1E4062933427585739970D3B1988034A4A07DCFACC33CF84AD80BBE082A4 |
1091A08818E66A5919925A8AB410D58557C67C41D55D70C105783CE29ED80043 |
10184C7F8AF74F31CD4CED6A0A122B9CD401B80B5EE184134EB8FDF6DB856480 |
4DB5A923A16BD9B8825B002F8507C0A6302B8C575BE75C36524187C7C635391A |
141D18E1D7BFFEF550A212A4319D03F166046B2AD737913878171667EFA31906 |
840F2B2F55AE2325642D03CE7585BFBEE10D6FF8CE77BE23B9C33F45012F4A15 |
D8FE8552260D168B5574977BC5D7C918068B2EDB7F5976C446F1C5A297ADC934 |
CF7FA7522E6C72BA89B7C4EF2904F4C8789574AE1DD50B50C0FB4FF6261C3BB1 |
8275914A169B1AA9A2ED96BC8CD421D222B9AFFB2CE0A2B19D5131788EE5660A |
78DA8F5262ACAC144227CA5F741406132EE2C20C72B0DC5B49D4B192C0524F25 |
D67CAD38D9ED8F0F8FCDCFCE459682191D355B817A2EA4B1221FCEF27522E24E |
19550C03872DF7924D1CBB5A29B547C3343108C8CC75F527CA67F94831885ADA |
B5C8CA3ADAC1DFA5CF4600016E271CFED75D771D762EE3C469DE60465EEAB9E7 |
5106690E8FA3AE5E4D901160E2E48D665FF18A57DC7DF7DDBA96B934D46CB7AB |
E57AA95809C3A4D969D7CB43AD5ECB56DEA6F59BA07A5BFDD6BAB175DCDEDA63 |
28D548A1899D3F353755B48BC71C73CCDD3FBF7B62689D7E429DADB01DBBDCA8 |
8F4001C30956B60E29C7495F5981E3E990491CFB7112F4FA81E77863636BF74C |
EDAD141AD0A449ACF992FA613708FA382555519206195022A6D53934545F5868 |
F1358B458D60CADCD60412E7ACB3CEBAF4D24B258526F140C91E99AC6103061A |
AB0B541EE662D88DE25EDC1DEA4E9ECECB4288AC5FBFFEBEFBEE236D9EF83D74 |
50B8924C394EBB72CD9A35D0527FFDD77FFDC31FFE50D03A8CA7894A603530BE |
3FF1C413FFE99FFE897E06BB6BE15C7A6FA2C8A5E0C4ECA5839F8F3AEAA8071E |
78404BC9D4CB83A584992CEE9F28C9B82DB9DF3C3BCD887E0A652FE88663E3C3 |
33D3F3D55AE5D39FBDF2AC33CEF02AE5356BD6ED7CFA59F8987194681E253F28 |
96CB4114BA6EA15176986E67360E6BF7E69B6F6609AC9377C015D129580C41F3 |
92DFF5652F7BD9F7BEF73D930E53E5F96C0E26C303F499844D93782E8C392E45 |
2544279865B8185BD1FD027C33A352524440DF97B72B65996FC265AC9C024CD4 |
00AB6005A06EC2EBA0BA30DA5295400F58189825F324E63F9341F82B16129B16 |
13212C716C955772F35199A9E27832A34184943066E0D9AC0C02CDB02D516959 |
9B5B5F72D2745857AC17A7E0C3335C74D145E79C738E746D910529D6245B5C08 |
505F4C43CEE96A829B7B41800E03DCD1E4E2E096B10D627D1399C11B89A761E5 |
BDE5F1BD964559A64624B5F8A022A657343E1885E2804BA729337728DA027A17 |
3B6E6474A8562BEB805F015350F00A8E1DB98234946224097D498F1DB1093C55 |
88FDC88E1D3C62D86939CDB97569B2B1E0C1742A2BABAEDC72AA3B48472A8CDC |
34F6ACD0B7D93A1027971CFDB4307971AF661C6A2BC072BA56DC828F9BAA82FE |
CF2A3B69D576AB96EDA556ACAC769ACEC7713B4D1E2F37A67BF38E5B6C45BEB2 |
2DAF5C0AFB7DDB7193209456831C13E9A12B194C13036582E03889A6AA53391F |
8B49763B90705DAE1DB9B4E8C01C7CF0C18F3DF698C9256719ACAB2AAF7C9124 |
B14878D3E932FBB9C98311E3CDBB30F069658430DCE9679C71C66DB7DD46BB93 |
A6304F842C85DCA6817BFAE9A77FFDEB5FC76ED57BCD74FCD5525F7B1FC68B98 |
B4CF752F09AC6C65FB63A36BDBED8EE71535205983E9DCD9D66CBD54D7FD8AA7 |
76179C02E551A22C7A6FF5BA8EA761F25EFAD2973EF2C8EF9F7D66D2730B199E |
1962DD2D97E020A653B3D323752BD634773D5D996685A9EA43AD2669383C34B2 |
676AAAE895FD302AD8956AB58E5374F4DB6FFA3EF4999F6A0C4194A581B12731 |
BEC54E67719FE3F19EFFFC23E1626653ABC16CD0C1183BE10294CEA9B274064C |
723354207A22C9A98F856FC5CA5B422AA3D645EAB83EF5A94F7DF2939F644893 |
0D61E08D5979C76FB30A456EC744353437069F05B21849562DF3EE69465DC9C3 |
245FC816374C154BF657B25F0C1E724B48B89524C95AE1A59EA42CA98065D56A |
551AF46C18194AFB2241CFB73D2BF15358FC1A8B575D6C54F0A5AFDC7ADA69A7 |
D9C96293F662A9E2F7FB4EA1184338E2FA892FF8263CB91892764E06641A22B2 |
2189742031A1CABC2BFC4C4B9C582467B153F5226B1DBE6150DD7C59527CB0EB |
30B5264E810570C30D37501FD330153E5B692E2B4547D848BDECC34585539889 |
900364EFE0002C7528CBFBEFBF5FD889E5BDA465162F421166B69894D7971005 |
D78CF02A9B224304D64060401C415A84CAE0E3A4E168656557A95110C1E7211D |
1BF58132A0E003F5E2E4D4A531074347E511B9814E8E03DD7F9935B47346CC7D |
8019712F312ECD6A4B3BA777B5F2E68F5C09A4EAE461495EE6CECC856491F8FC |
CCC29899201299C9402D57C0690EFCA102488D160BA22CCD986AAA017A857A03 |
6F50812C2A57F4962C958A2A5CC25829254A0CC0D089E763D040F4C33409E1CE |
7AD08249BFEB2DCCAF0DE37596AABA0EBE77B3960CA562C1762D3F09FA415CB0 |
32384286FA716C47FCC85692B80A0A587555DAB4520CBA97E05C55B655C9B6EA |
167672EAC75A376B2A4AA51E2A549B4127B1EC42A5DC0DB49117F9BE96D7E50A |
6526BEA1FFC045452C8BD48989C5AC72D01F0D2621C21306409A7D71DEA140D6 |
03B36366875D195B0136E282575D75D515575CC1800D6F447D2F2234353A9A8B |
7AC6913A4C6BE4F2B94A499F8995C0FA49AE22D94156CE434C80214C7C2F0FC8 |
9B8608BEC406875541C802AFB3881623C095B639AB4257DB00F2585C6702CEB4 |
5277E3864DF3F3CD56A7D3A80E373B9DB1A189998599CDEB0ED8B16747B558E5 |
BD717D064E774D4DEA66BD2AF15CAF1FF58A6E11B6BF6EB7E2D63192C542054E |
30847EB9D4C024B69A1D4C5C924201F7A3B813C5ED4469358CC13CF2C8E73FF0 |
C0838542090ABBE78745A7323434D2D33A20E9F53A7ED8D3F1154BD7C8A78B88 |
7AB5658B667BC731D9EE0DE804303428124A10348CEF9976898420CC30910C8E |
59B6247C2878DF534F3DF5D7BFFEF5A38F3ECA819544BB48525E416283AC9894 |
88872C1482C5F833F48D6E5F61187426E58AD9D0104B87746B04FA8A61416F46 |
BA6932ADA072FE2089D4E9D516F21D9923924851922A58C35EB49898490AF068 |
FB3DCBB51B5EA9DDC9DC3B572368165ADA0E8590EDB4741572CF0F38F8198561 |
A8295CD2404AE5A45253220D03112A919BB2434822C8D3C53DC22DA8111912E0 |
352568C1A4032F220D13190067C68E4068897F50045B79E119E1C712B4504BDB |
0030532B247103B1351A40C27DC17EA5B2E72961B17808FF86C27EE52B5F79C7 |
1D778821621AECA4E3A080635CF7CE3BEFE4680870544EA4D490F881E8690EC5 |
F28499C9404473417A10EDA35E5CFAA088FD273228DF6B4AD66A92B780E45C60 |
EEAC0C61AE56F950F2481D9A38EEFCABF455A4A32F53234A9752D8CCB2098C43 |
19AC29A295050F2F255BCB3DE08165A90CE48E99ED5386015D84130A3FA3E032 |
3D0C95DC6FF9F44C28BBE5A9D8928E800C8A17A23E3B01CCA0082E480A6B2A0A |
6A9DDE86486D84A7A5F93DF42E751DDD0658CF7556ED54750A79042B4DF2D670 |
D0BBAD58535FA54A136E34551ADA9907ACEC729A942DE8605CCEEAA631E6A3AD |
5B165ABF5069A1046F278CB236AFF078BAED8E6B3BF855B8BEC5D2BDECB2CBCE |
3AEB2C93C0400ACAF9009CA00F7CE003DFF8C637A433A6891E151A7CD1C132E3 |
120D1AC80F8A434CC222E2A5212AC9D610E50DBF251364E7ED77B985D38CE01D |
F34E3A209AE01298B4724A007E691A9466644E7852F12F7C713854424B22A790 |
BED032990E376EDC78C821873CF2C823FB489E9BED44240E86CFC8D0E8FC0246 |
CDAA551A69E274FADDB1E109BCCCEC427362449358CDB7E747EA238C97462A82 |
8A6558CFCE692069446CDE74F0CCF42C3657C12B63AE5DA7582AD6607FF7DA2D |
EDC8A67E10B6F05F9C7631E9AEAB3B90E891AA0C61F5B65A580AC5B1B1B55A0E |
F6E6B5028EB402B6B5C248323020B719552C0D6D3D495825975F7E29F5199785 |
5964C54992AD255A59A09226B8462C3B76A7A0FAC4A520E20780A9D40D6CEEA1 |
F28621D4FAECF038A07806265848F665FAE9D561E95050BEED6D6FBBFDF6DB31 |
C70C3B8BCD65BA230C0C62E9735D9254442D8548E4F8808C384DFF2F5954BD14 |
436E51A53176B056E18D6ABFDB0B026DC91633DB4E43973BEDBEEE66DF08FCA8 |
8F3F5989ED41A647A562096A586FB940EBB63409F8D66946FA4AE743A0AD03A9 |
382B6F172F5C60345D657FE280F5EBD793B59FD259DA4011CD64366FE0AEE344 |
D00AE63230E9DE042A2C2827899BD16EC01832B6CF835908C8C26295B722A728 |
9157108C121E92951B586F2C0DA224623530FDFB3407DF492A4BD6DBE1871FFE |
F0C30FB36FE075D75D47A0B26035F96A560E3F16A64311F10C2CCBF898C55DB2 |
F6B8D3F92B4D4086EF96D78B733BE3678C3054173980B805E4480A567A3F6C89 |
68625BCC615F51FE70ADDA461B318E6D9C138C4B208AAF0CB1B663C70EB31928 |
0D5919C0742910DDCA09B6326FB544F3880A78B9F63527C254C3664A7B29AC97 |
FF59C43C38BA5A49EFBB6EBBCFA7226A52681864C1988F97A9EA42A7DB6D6B4A |
675C396DC4EAC0D8D9A0DC71E56B9073D989B5EB9CE08F25CB2E7A2547B353EA |
D3630E54E60ADBAEDD8EB4076C6555461D8DC3D29CFB45ECEA3472B35A6158D0 |
BD345948D4824A7CDBFD65121202C235562EEAAA7A27F399485DC7E48B54C772 |
75D14913E8AE24F27130D63F5126C40DD0F4B7F3661252FA2F5E0AC9B6B07878 |
3B993E73FC65B848BF2CB12E953B3CE2587347C820D3653AF4D0431F7BEC314A |
F238E387C793937832C929E599B9130BDEB4B7049B828BE382471E79E47DF7DD |
878DF0F4D34F538B4B9465D14E676F452253366DDAB46DDBB67D70668AF128D9 |
506E4E3CCB6DFFF84F279FFC4E98551B36ECD76E61109D99F9B975E31BF088AC |
DF874C7C7AFBD3C3B561D8BC8F3EF17410F9AEA59B04C3CE7674FFAB686464EC |
CF8E7CC9E38F3F3E3B3B0FBD8B850DCBAF58A86A2FA1ABFDDDD4EA8751DB0F9A |
50C08E1B790567BE3539541F89A314431146292E582E57CBA56AC79FEBF7BB61 |
EC5B30E1EC9821682CD64AA5945731DA595C712DA5BC9D31C371D789D792E658 |
793194C4533137B0BDB4AD0A9B0DBCEE75AFFBE10F7FC89A3089C630BEC774BD |
985D4C49AA3C2F62D6802DF7B3053D2435A614D310FD7224C537F401FDE317BD |
E845BFFBDDEF887DA39FC70EB24CF291715ABC490910A9C176C2A4D2A4E3FE9C |
C4B11D2F893558BAE815366E5AFFE4638FEB0E54B12E6FB02DE56747619772A5 |
962B9566B7A37954A2B458F07A41A869B3C24C01A78B092171DA0664A232624D |
947A5FFBDAD7DEF5AE77E19B9B6FBE195A87D40D0C3CB0A121DE05DFE3AFCC59 |
0A0888A044AA224DCC5B2AC158F9D297BE2448633C89F41A634CCCCAB9B2B9AF |
2EB8E0824F7DEA53B457F03D2CFD8F7DEC63C2E874C20927DC76DB6DD246491E |
5B90F374D1240CC86D2FEA010AE394534EB9E5965B606150CA505D99DB50A223 |
24D0C0B978F8EDDBB7D3E849B2AE6AB43CB856998D369D5DE1C8E5225F913324 |
C909B1A5EC98F167F96679BDB8D0748BFC25CE806E9C988C5CA23865BFFDF683 |
7F008180172417BDA40357933F2A070A700789A9215848FA91FC06D377FCF1C7 |
DF75D75D149D029E9732303147E4FA828931A3EE52946FFA5BA2ADFF74054CE0 |
55765F0693F2097DEEF4E7563B4E823F2C0E80B9FE1B856AA7DF6B07FD58C5CA |
5123CADD9CB86B63774DDA2EDBD0822ECCE2B01F59DA9D758A56B16BF74552E9 |
0AA5481BD4B83814B0975A8E0635A76DA543D00E1C5F3CA695A449A6B23DB76F |
3BD3513C9B25FF1EB513ED625B163675A35617DC86E5E89D42554AA23A2A51D2 |
DA083381CABD5EA926C00E85D548D1E4E44D5920D37098205ACCB2311C70F4D1 |
473FF4D0436C88C45CC9C0BCD040A719CD76586CB480CD42720C1ECC81950095 |
C9128F07E323A92C1BCDD2797C033F8AB95BF2102779031B73193018CEA80FDE |
E2A0830E8227E6E4EDC2246BB3280D3816EC7C2E61679EBCDA0610F49A591B83 |
C5B2FF7EFB6FDBB623635371C647D74CCFCE0ED74718D1C1BBED9ADCE56AA7C8 |
C5286CDFB57D68783FBF0F1FAEEAB979A7C204CE4763746402DA888CFCF4E259 |
0518E9C28A24557E94B4836821497BB613382E0C3A3DAC7B76EFC5CB62EB15F4 |
D5F4864C6C8DC082DEB56C9C156AEA993C045DAF6B2AC45B6EF95FA79D761A06 |
1FAF93F92E7B85EE40CC25317BC5FB142884A9802DA3AE89213B3CF081071EC8 |
025913782C1FBE1457158F67BC02234FC6DD81BE5722206427D3F9938B33FE49 |
2E492987C71AE5F4BFE52D6FF9EE77BFCB8621C2E84B424A8D54CF0A8A52A341 |
AC098CCFFD7B799625D1D462C18D82A858D074DE9BD6AF7FF6D91D1A63E95956 |
565458AA78AD6E385CAFCCB5BA25CFED691309EB0D4F18158A6EDF8F60790571 |
466E9AAF7E6E36B3A47DF920705421A9CF3BEFBC3BEEB8037A8E2292B81E4692 |
210B285BC97CC9A411C7848A56F61B8E871A80F6BAE69A6BAEBCF24A8CA1D9F3 |
510AED78533B231D8372C5F5315C5093EF7DEF7BD9A551973B6745BAB0E577EF |
DE8DA1BBFDF6DBFFF66FFF76792D8DCA82DEEC89466DC14984F98B7B315F405F |
4130167C4E16440D8C06362F83587854F603E7AC510949851B1E8C202333D562 |
820C4CC4E94064EF2FFFF22F7FF0831F5C78E185181F8C1E6EC7C396D78B4B10 |
4519D0507AA86610D232E0B2D75F7F3DA940497465AD540969CA1FB141995FE7 |
AF5CB474E5252AAE32FBE6D8638FBDF7DE7B95E1D68BF832F33B7247F92B4D3A |
BA6BA6845DAE6E07F6A69577C01405BCDC6F564B9D5A93B065E03370302D8334 |
A38E847C8BED04FAB3945AC3915D53E9817077D3B0ACA2BA6355B0D352270ED2 |
50452D4BB765756C5580168C9320D29D07617DF7E2B094DA8E72A2141E70D2D7 |
A54A70829DC4B5D9402DB29DB6ADA6A2785E597063672DF83370A7A3AC7454C7 |
B275FA667E6E6478B1F05742AA42A12323C9871718942C72D8C424EEE0F7D8D1 |
279D745292F5EB843728800F19CC238E38E2E1871F66304F2078CB6D476A6BE9 |
3B6E4EB4097D302B30F1A7A38E3AEA8D6F7CE3D5575F8D2BC01426DA439AEE98 |
904349F0CB1DB96C881BE5F5A595AA32226A14DAB4862DA1EDA0ECE3A348C3C2 |
E51F0A320981525169D84EA3D66AB537ACDFB873D764BDDAC05B43FA958A950F |
7EF0C3B7DE7AEBECC22C0C3BD776A95AB48F02A74239D5CAF0F0D0DA24F2C2C0 |
2A15EB90099D7637087DDD2B5ADB608157801CD16ADEF24B7064538595D30AE3 |
66A23A590E18AE6FB35828CF35E787AA63FD1EDEB65129D7A025E75ABB333672 |
05051C27BA1E49C7A26DCD0F3737B750AB55FAFD20AB016DE77B35A1F720D296 |
533E0025954C8CB9EB4C3F7839B28653C2E8BF6871B91AB9B49823110C0B51A3 |
ABF97FD02258F458DF0F3EF8209193EC92CB1719CF59D15FF08217DC77DF7D74 |
C7A9122871483FC4076683614654B807F8CA92E110134D27961605D092605AC9 |
B15CCB0E82D8D66DC0B3761CA9AA963D4F2FADEAB63D738DB23DB176ED93CFEC |
3EF4E003A0F6DAA18E696B430103D5F5B156C32823553014304798CE872C4E19 |
0A9183D8B7B80E0EC33EC15667CD3BBEB9E9A69BCE3CF34C46776872329E4FE7 |
8F941AC439B325BB90D6D242C75CC0C1FDCC673E8341938E08A6ABC76FA0FBA1 |
7D19DDA2EDCF841307108741FB9E78E289B206C48FE182E1E6FFF33FFFF3279E |
78E23DEF790F9C0049FCD39F236719E7944D70B98424A0628E09CEFAE217BFF8 |
BEF7BD8F17617F37499472AEB1AEF046B8A6198533299165192BA3AAD2D4A902 |
9B12A4FDF27A71959766D2DBE0333091C1E7970EC45C8DC4E04899354DC37DF4 |
BD4E33AE6C46AD2973656AA449499AB7525FC4B92CE5D2123F9E650B74946569 |
C9C13C97ACA83250CB43D0E9328E08F35222A35753AB6C21A39676F192781B65 |
85998AE22AD571FBBEEE07E8690D986619C18C6952A98D5EA91C06E32A596BA9 |
F182E758B61F249D246C3BB8858E62553CDD6130862CC25EB3BDC88ACA709195 |
0D83B9ABE29E6E8CA40F9B87951C47816E41A86653856DE0DBAE536F745AB385 |
523909C24D1B363EBBED59AF50F0CAA54EBB093F9CCA5560DB981726F518DDE1 |
8E56B9774710005E04561734023B9A0C844944CFD1A566DCDB1C43B3ADEA0046 |
C44400D0BDE11E645A97B7E6CA97049698DAD263464C766584A3F1C0D8AD279F |
7CB2E4927309F91CF31DEFCB9E0252B42958512C6F1AA67AE5A89C094BC8C0EC |
7D308FE76A401A89C8A2B4B2800646094AB754ACCE379B1BD76F9E9B85E7BE08 |
269C5B98DBB87EE309279CF08D6F7C436FBCD27EB0CED3B858298F745A71E8BB |
13E39BC2401B63D56A19633533BBBBD99A29955DD85B73CD9975B5ADCA8AE1F8 |
C6693B4A5A71D2CE22229172DA610661D96FF3D6A7B63D6B296F7C684DAFE7F7 |
A3796A719C1E463D3FE84919D225977CE2AAABAE82DCC882B1DAE816BDC2789D |
ACFB24EFEDA372526841BE89916E2A60CEBA949C62A0F13344B3D9303C27FF5A |
2C73C405A5B11DA140A2FF06825DFC55EADCA5B2C5AC2213EC92D96A90420D53 |
46D209A816280F7A5DAC7CA5421A70FD071A79E2A118B1CB1F29FBCF565EA436 |
6D1CEFB4DA43D54A737E7EC3BAF553937BA092CB156FC7DEEEA15BD73EF3CCE4 |
E878ADDF0B665AC1BAF1DA820F93DA23AAA299C9CD6E0F7BC3F6E384AC2C1224 |
E4330CB862CAC0079572924B890289B32BE5311801CCF545175D2421DC3407C7 |
A99C5C93812C9264B11E89A0536E3076C83181182C1097D21DB2E170EE482B4F |
5780D791853420857105D8DABFFAD5AF0859C2AE86AD4DC5265868AA13B1A8B8 |
0225ED24321A0F004381BA8D8A50F2D6521C2C251618799A1D826FA0BEB79792 |
DF0992459C3F38BEA47691D1B056AA175746DD171715A7D5A42E5719B9187F65 |
46809696D9037B3510A8CA5B2C9BF6287E15F0202D152A695C070ED9934F3EB9 |
75EB563C1EBE918E581C1FAA6D662EF811B816ADA877BCE31D7FFFF77F6F62F7 |
D4520FD808112D49432E5FB1A25C8D8B2CCE205C915419C7642C5A499A072A1C |
979D3A4D305737E9E18C429468F96A6757B2B50C83441C556A8B6D6D52E970AA |
EC54535162093675C356AD59AB50DF291C97D0D69458F0891228E00A3C605D6B |
A47B1A279913BC2BCB07630EE0EE4D6A7C968A4AD5FADAB50BBBB661BE3DDBBD |
E0BCF3BE7BE79D4F6D7BA6D7EF2ACF2D248BADC018CB617F30ACE4534F3D1503 |
4819C87528B0792931A2A2D2BD1AF322580E148F3731FCF8123B65E7CE9D588D |
981D214B5F710AECBC6F20B90229578F3EFAE83FFCE10F2C3623713D751FC796 |
1BE4852F7CE16F7FFBDB3487E0C94A56B9E92920479597024A7D298D27263B4C |
64A82C69EE295D119EE1B92C3633A79820CB0143013CC1ACB3DC776DF59BFEEA |
CDDFFFE7EFAF9958373A32F6E8E38F978BD5C0CF7AD80D4DF4FA1DCD36EE306B |
05C15A8492EEF9A369E2AC5FBB65B8B151A5E585B96072CF7C46D301B5A46C37 |
84E9E6B889EB59E4C94AFA50186DAFA052AB37DFDC6539ED5225E9FBBA914EB3 |
B5C094E7AEC9DD439589FD366FF9FD638F14BDC40FBB9572A1D76F3A19BD6BA8 |
81BC56ADE1FECD09277DE31BFF8035B06662EDD4DE4988294C1F37A19833F2B2 |
2C0BC3AF975D76D925975CF2F297BFFC97BFFCA5D087F1B0238F3CF2A1871EA2 |
80C30733248873957332AF96D3DABC79337C9D5FFFFAD7CC474A85AE32E8D6CC |
558505FDC31FFE10129F29493357A1F21A27C9C941BA3DFBECB35C55E2F1D0A1 |
A12E7FEB5BDFFAE52F7FD9CEBA0F41AE410E4E4EEEA17E354CAEECCA76D1F6EC |
C8EF158A5EE087D8C96547950AAE6F29CD728BD1F4354EBA5C525E51AFCB7E2B |
2E95B4868BA27872B2FB9AD71CF3D39FFEC275556168786A6A7EFF2D9B1FFB83 |
6E085169949BCD1E4EE9FBA4517C5819A4C419467A71DC2A95ACE1571A9B5685 |
64DF059160E70D925967C5099572DE030E38003FBCE10D6F200504E191B8178D |
0F9A4D62600948D2AC35E43032888DC3603C3DF3CC33D41FDC1A1C6D5370701E |
05C6A5724C96983826E05C12B7E6A4ABCC65E4AF2609178997F94814168251E2 |
2B8B4EA279272E292FC55C1A1D476E73E2A7A47AC70CDC71254BD20BDB6DC57A |
71C9AA4A7244202DA47931E7D7CE5B2242834AF5D14D37DDA4CBD572E7551ABD |
51DEF17B92104010E3A55EFBDAD7DE73CF3D3429E86C6110DEFBDEF742EEB318 |
C684F098C89581DC213F7818F178F090FBEFBF3F8651588D643CF9545232BEBC |
1A4A2D0DE30FD837CB3FCBC3DA228B5466CC61A1E28E7865B1206D83BC569208 |
899354427548B15AF7BB1BEC42CD81A19FCC05DA97B5331C4721FBD7C90095A9 |
FED571955580A8D5ACD1319CE0B6154367B7E3CA64DC8570F1CBA5A7A6672636 |
AD9D9A9C3EEEB85761A869A648359A89A463512CA912F154842262DC288E0449 |
20010CB5945941B60C7F60824336A619AC3569E984792331CAB56D83BD79C081 |
21804BE5583CAE7CEC052C60953BE80CF45A793523E3344C03D356A04A66510F |
DB48A8A5E92AD1C4F4C7844CDE8C5DEB153E408568E734D37856E9E7C04D4B7B |
61C5704AF6D2D69A8935537BA7B35E205ACE8F8F69CA75DF8F182B4A1731F465 |
D729C1B6EB0713D06BE3239B2BE5B12870BB9D248ED4BAB59B34583CEC5A76E4 |
15D258BF69374EB454F5D27218FAA5B263397EAB33A9EC56B19CFA416B628DAE |
1BC12D7430B9581E1E1E7FF9CB5EF9B37B7EBE6B7A279C9120ECD4EA5EA5EAEE |
DABDB35CD65B2849A389F1B1E9E979589DE572A5D36D572A90808BEE91D9138D |
461C313256565EC25C291E468A68618E41109F72CA295FFBDAD7384AE79E7BEE |
6DB7DD068F96B1657ACCFB08E9E3AFD8E46C8CCA48B2590047D34C7ACCA93C29 |
A80CDF94CFC9B913DF5A0C70D9D8B24C1909A440A14CA4AB4435B0A28C106B7D |
6C627406FE77AA466B85D80F60B78F8D0D779B2D0FDF34EAD0BCDD1E8C2D6C3F |
77C3FAF5DBB76F6F36D5E84801B2E395AF3CEEDFFFFDDF61089787C7B6ED9AF9 |
F2976FF8F8C597F8511CC449B3D53AE9A4B7FDFD77EF3CECF0C3619CEA028691 |
E1858516CBE6131862DD6E054E6173C1815ECCDAC810404E5E43864FA5130BFD |
21FAA9429F49C4BFA08DE00F3DFDF4D35412694EFE971AADB64D2A22D3B8A67A |
63C4023A180B8F163DC3093987F9625F4BF1C66825F04B219DC089D85F583C52 |
5E8C5916ACC072054CC8719A37AE171DA6727E2EC6E82495F8A94F7DEA861B6E |
60645EF4A81468EDB7DF7EF8E1D5AF7EF58F7EF42381A799024E1965B5949EAC |
6B141764B57A71F12748C689E7840286158873B1CE31BF44774BB525DF9ABA8D |
6E34C58EC9F325CA4FDE977E3C874B308C1C1FD66B0A49169E9F7683D462328A |
E018CD30962B426E1CB16F60CDB05D121E5B948484B22594B50F2236D1A9ABC9 |
0173D2EDA50CE7F815EB99945E58302BDE48A2D6898ABD285D6B39C369BCD6F1 |
0A7158D1788CB46FEB7223BCBC975AAE16D13921A0D27D718A3A3BACA234F155 |
DCCF1A003F6379B06A77063DFC5A19AE4FCFEBBCE17063687A7686F69C408899 |
E6A0654FE5A4B2E802B532E10B666306E95BC0E52A8D81ADBC9052CACCD29CF8 |
D66CF387C3D89B8B02D64C46A83C4E2970DAE50A98D16C012ACBB9EF7AD7BBEE |
BAEB2EB2B8ABBC464860DB6A29B1124501F6172CC577BFFBDD3831D34183A904 |
73FF8A3CB70D1A2C468ED5E05799C8C0C638F6D863EFBEFB6ECC3A8B8B3928AB |
2DA04AA9DAED75D7AFDBE8F783D9F9F9EBAEFDC2D9E79C33D218996BCE95BC92 |
EDA830802070CBA5BAA5701DACA183317123431B3CB7E6F754123BF5FAD0C107 |
1FFA9FFFF99B76A75528C26BA946719FCCB4985C4717AFC5F080A3B833DFDCED |
87B396DD0F93EE61871DF8FB477F3F3A348C49DA35B9E70BD7DE78E5DF5DEBFB |
61BB19DE70E3B5679CF93E5BC7C5DB091CE05887F5533C889FD46A8D76BB5BD4 |
EC719A309D2C98345E582FCBE95706844A70B99271E4349C79E699D75E7BAD44 |
8FD967D7CAFB998BF9B20F056C624A053B2A768032A02E92D820165778E4694C |
898F45852AC92D8A51AE48E99C351014354C7877C5E78424C4458E3FFE7FFCE8 |
873FAC14ECF14623E876CA9EF7B727FCCD7DBFFCC5D38F3D592B798D4AB1DFD3 |
6DAF86471A41DFCF6A0F74739EC08F082AD65DAA6CB7D5E96E9BEB3CFFA0FD76 |
4DED2DD7EACFEE9AAA558B3B3BFEE8F8F8D4F474AA0159D576B7B318A0C3F440 |
35EA9CB25EC4EF7CC7DBFFE55FFE85D84B49CF889210F382AF6319458103F072 |
332E2474198C4A518830F623F97E293963BA4870F24C04C0A566F52D079CFFD2 |
3B1432350A203377C3199467607DAD6DB401353730F726AF430AB98F7FFCE35F |
F8C217B06889B3E3801C73CC31BFF9CD6F98BA86B038E18413E0EBB3AE495485 |
AC2B1CCFBC14CB7CCF38E38C7FFCC77F64C8E4FCF3CFBFF4D24B694172259B05 |
18A2FB97D78B13754273C4C434A81C7FBE8FE990426A5E4176905C849B912C40 |
049AF2EE22F5B853A874E9A74AB64F0A90947AAEDE412D4542A93CC7CC0A13C9 |
02103177FAE9A77FF5AB5F65E5182EBE79F3662274E405CDF6AC6A69FF25B9F5 |
6AD93DCB2830B38D06031CF672D6C8048F2486B8A96C28A6E8CCF5FAF0634328 |
BD21DB5E5328C0685A57AEC02D9DEC763C4BD7F8963227D8CAC3DFFDACEEC84D |
33AAE82CECACBBFF2AF5BB52B513F49B496C17BC524D1B4C97FECFCB3E73C567 |
FEE20DAF86A7281D7EAC9C2FC88C12B31796084FC11C71EDF1B195913D954A13 |
8613E87DD2AAB60D0E2CC9FBA8BC0538C9851283A26700D3B05C010FCC85D85B |
8C0F49ED9308104A5AAE6759FC381827620F8A7D40F34EF85ED44AB69DB9CCE4 |
984524FD40129BE621BC726C66D9390C10ADB6805C5B13F764DC0B56B55C8775 |
522E55774FED76B361D5D7CF38581C0B3ACFCB48B20EC67A68D4D7468113F8A9 |
6EA290B5A09F9B9FEA741730BCAE67753A2DC840C7CE6AF693BE265C2DEAA446 |
CF9F8D93B6E30519C0AAB366EDC4E4E4EE0C345BB52DE7A52F3DF6DFFFED2741 |
5A9A680C3B5E34B7B0C38F9AE3E3F5D9D92928065D9AD9872980C59ABA3AAF89 |
2B849913AC3346A41DE64C63343FFFF9CFC355C2B863E36164CF3AEBACEF7EF7 |
BBC4368BC68281FFD4534F115C3E40D5C49F07ECF7818F007F448372F548F093 |
56BCA4DCB81C29FD0776B844084DE098D911CC8C89A9BCA289D5B7C6A3AE1CE1 |
7075576F75CCCB5FF2ABFFF875A3E20E57CBFD66AB5A281E79D0965DDB9EEDCC |
F5466B6EBD5C8AFD5E92C6A552B1DBF6E1A6F22DE0E140EF7BAE46092C8471A9 |
52EE747BC36BD76CDB3915DACA0FD4F068652E726395CEC0F1D5CC2930C655B9 |
56AD946BD373F370D361665E74FE79FA8D6C45678BC3A2F21CBCE07EB91BB913 |
68ED327FC6FA2B7ACFC48008798DB09BD106E798437B45461FD634A781A49AA1 |
A460BC8466135D7029D116794109CEB20AFC2CE29BC6FE8B5FFCE2FBEEBB4F78 |
ACCCFD69261139B93C9117A7A36F65C5C4D0AF18222CD40B2FBCF0EAABAFA6F2 |
E063B0E101B730A3592A47F90A8F155F9CE320A15A0678F1573A948ED10512B7 |
A689A956AE174FCC78AC32E28A036028316D4D1256B321318605BFB219331D77 |
795A4E1C4795225B65187232CF3044611A0ACB55DD6A9251601CF4AEC4F5E7D5 |
0870950C1D51F7071F7CF0C30F3F2C17E115482EAD32625A79FDD56EFD4764B4 |
81E41275425B103FB0741E63482901E1D6ED77B4D51AC555CD87A5D664BAB648 |
82E8EC9BA2B2DD5C01074E46B59F684A9D4859BE867459B1B27FA97471C2D0E8 |
C8BC4E64D8C56269F386CDCF3CF5878DFB6F8433C6C21ED3AB23C51E660432FC |
F9CF7FFEBDF7DECBA2F6679E794626425C11E9152872493EB8322E75F9E5979F |
7BEEB9C4F1B1060F560E3949544EACB628979622F9FFA8072C7734D38222AE85 |
4346268256A0E875B37325B94BF7EEDD9B1AF4D7CB277160230F187C96B5BA67 |
26114B0A0B21345879D5A4D6FEFBEDFFECB6ED70295F71ECFFF5B37BEFAD5786 |
5ADD56AD5C0BC2BEA59C2CBB6E433EDB56A952A92B7590E7564B85E185392875 |
A75AA977BAAD30EA8D8EC10185EF5FC0CF5981F230FE343B3B57F4824CFD0441 |
D80B238DC3B2EC008E72B33DB36EDD9AD9D9E962A930393D39541D8527DD6A76 |
92B081BF2ABBAF5929C3D94E771EFAC00FB287CF9232FBEFB76572720A1387C7 |
8322BBE69A6BCE39E79C81221F13C72811E9030E38007F4AF2C69C2262A40F33 |
64BD9947544BC97E0715DB524A7DDA5F9202112E3A610551463EDF5E89C388F7 |
654619A6287C237C03A5056B5DCA51F00DA50975F3622FC84543C15BF1394B19 |
5AD9B355D15323B54AC5758356ABE83A33CD687D5DAD1F6E14146CA43EF6AFE3 |
66A425B12E12C8047A4C3104834CF754A8D626A716B61EB2E59E879EDE6F53BD |
50AD2D74BA937B17124B572505A92A948B3A6FA1D49FFDF90B8F7EC10B6FBDF5 |
7F3546469A5A7D6AAD502E159E78E20958A0785A080276081850AE226439EC82 |
1812176DF18D323D21DF987B52E269A698303110703A61E39B314931BFB2B477 |
44D5CB500A951957146E8AEF71161FF56FFEE66FE0D0AB0C94A48C10C8720F98 |
5286C96321F6137C161E00EB931802DCE2031FF8C057BEF215769580E4A28C50 |
46089A8B99341AA22FE9494BF9B8847679162E8527C7CF58485BB76E255B80B9 |
206524657D126F952E65A2975547108300DD996C5339CEC50CF0A6592D19AD16 |
D3DF55064C4C2D058E2923403280DD332396CB25A69DB3643337448DCE3DB265 |
0B24C62406C7CA69CE548680C368DC7FFFFD82D1E54A60753EA3296201FFD1F8 |
F3C001E25FD2F853B9E747DB112F889FC91C8EA1A63DDD6AF59CA2AB997122DF |
5656294A0F59BBA13B3D535591CEF52ABBA441CE96432108C7D7D1582F8C602F |
55DD24E9AA34B0756F86673D07A38FA34627D6CC4ECF28A8F372ADDFEBC62A32 |
25CF6261B1E103E04B2CF85DBB76C91A960881EC14DB686B2FA91F59E7DC95A6 |
AE91CD25F8184E2EE38E0CEF09D2909FD514F06A8A90F84D951B3AC213200B8F |
493A2C5A2650187FE6DB718A712401ADF20003CA740070B0F8BE038C4E82D8E4 |
1B56B4A475696BEF1B4430DC18C91272B8BAB57EDDC65D7BF68C8FACC96887EB |
7064B96471934E3BF0DCF2F0D0B8651D044DECDA8D76332D166A9A31A735B7B0 |
306739BA22A85EAF4101E385A142C6C7D7ECD93D552DEB6DD6EECCB75AF341D8 |
E9070B61D42A14E128EB2EA1B6A37B5742E2C3B59D999EEB04BDA1D27A658549 |
DA0BA23978C0A3A3553FD0DE2FD470E04328975EF98AE37EF293BBC984DE6A2D |
66CE49C728FE0106977ED5D4D414859D1484F178AC00E247F011D63ACA203B67 |
1556CBC878972B609123DC4584C261C45865A496E251455598400651F64C93E0 |
ACB56BD71E7EF8E177DF7DB7528B5E23F159244551465E4A2287BA72C3CA080A |
0C4C269BBAD43D5D70D96EFB876C5DDF999FB3FA3E5C95B1A1214883A14ACD0A |
C3EEEC8C15C68D7AB9E0664DDF624D3198F5D66D650C328BA89CC02A541AB5A9 |
D9D942A331DD6E3D31D95B33E1A58E5B2F8ECCCD2F74822071DC855EBF1BEBE8 |
CCD89A75381D82A05AAFF7DAADACE543028703DE1E0681429F996F9AD5925EE2 |
EE95B48D388E26B7BBD97957E5863C55355D67717CC577A1678C73B1D4A99604 |
C368E2C64DF426AE79C61967B0A5F140C5211E80502606DC84364FAD9203A666 |
827370E59557B229EFF6ED1AC8063D81C9A56746618723191F234D1857729AB7 |
7512275256204D7BBA922CD860769C0AC00C200B89A6446296D58B2FE1105DEE |
F0ADF8E50077BA0CB232EA4A0960C916615BB01AFC12B7C36A3FE9A493BEFAD5 |
AFE267229F9551C76FE6D74C81A8560A419BCDD5499EC368369F87B38079E70A |
CC2A29D632246319EC08842930B5618EC6BE4158A6AD209AC364AB15BCAECA69 |
9E843E3617024A373BD188E8B052AB571CE790CD074CEDDC6DB79ABA1F701C3B |
9A4132B6163778EA697F57FBBE5D2BEDA409846FA680959FDACAD50D94A07A6B |
F53AB6B35E45F5469C26144A625570B844DF086645DE94911BF14AB9410614B0 |
40B1AEBEFAEA0B2FBC50656963AC70AC07D629D04B619D1ED600FCE3AF7FFDEB |
BB77EF96343F0E300D1D33A46F2A60E1B01C38CC5C9F5235CA71A660C7A6BBF8 |
E28BDFF5AE777DE94B5FA2D06099B295734298EC55CBD5FC8ABF5A96D1AF63E0 |
416D833B57AADDD5EA390C9545B34786C73E7CC699975D71C5BA351BF64C4D95 |
BC92EB408B40412EB6FDD2E15FBB50ADD693E48028F08ADE581A57CAA5E1ACF4 |
A21527BE5750BD7EAB522906617766662FD41E64C7EEDD93D552EA7A7686EAEA |
164B769CF4A2A483C3C2085BC5EE76DBEDEE0274A9AEAB53B6CE3586F121876C |
7DF0A15F7BC5E8D477BDEDC69BAEC3338C8F8FC058692E7471D8E1CF3BE2F73A |
7084297183A09FF5CDAE12B9C3F5846DCC548795776065CB7AA20020FBA4D21C |
0F89618178621485DEAAA490499EB0DAC673F21657DC5734B5B8E1055DC996EF |
02E6E494735E046FC92538E06773E940111E77DC71BFFAD5AFF0CC4C3AE21B46 |
264D44A2C97468FA07D4F75E1CAF5F33DCEBB4D64F8C4DEE982AC1E42A394395 |
4AC149633F74C2B0645B233A13E5E83058AF9F71CDEB4ED4FD9E16FA8D8646BA |
2E2CF43E70D687BFF1AD6F3EB97B7EE3011347BFFCE5FFF5F8234FEFDA35BBD0 |
49421DF3EAA72A7654B13614286BBAD9C4738C4EAC9FCD304AE3E3631FFBD8C7 |
AEBAF2B3C2E849CF52E5C14C163398FD80397AACCC91A42F552FE151E6621654 |
8E6C0A110AA9D13C9C2E3536FFC9279FCC46BCB83EFE959EA0A2D518B365080B |
6B896A0C53F6E94F7FFAEFFEEEEFCC06F2825D37EBBF4D89CC78232D27BE14E5 |
084600EF2BF53F6C472324F59483B011A5052F3F54C9B4B0CD6E42B7DC72CB45 |
175D8427C7080B00B3987DCC560A5CF6D62AF5E2FC990E8468651A07E6EB48C8 |
876F8A87A4AD403F03F73AEBACB33EF7B9CF89A6C1434A387DE02331241A04D2 |
A99A1C87036997E5D3BD5C444A4092FA9E65E2CA2876E0C70C840E445C04E3A3 |
96064EF6AD80ED9CEF565C1D3BE76997B56A3EF040066A60D9AB3C14C1D04BBD |
58D41B2C4E2CAD7D17BB16AAECDF34D3C171564FBCD82F09E77A050E298D36C8 |
D8971DF3F29FFFEC5ED759529A6132A50B948F89039523FCA5BD15CD35060FD2 |
A525D7023034E355BC85B944250D4C62483B272EB473D24A738DADA8D796D3BD |
F17B42BAA4EB94DC8EF03D996EEE1A81679BB967C693CCFD6BDA76AB4DBDA556 |
094FA74B7BF890CF61F9643F371396965671925EFA3F2FBBF5D6AFEED8B1AB5C |
D268DEA2379275FC4D933463CE8C75C938766EA5FAFC6E3BA9963614DC51C7AE |
64A2B355AE7838727E7EBA562FC2A9DD3BBD07BB08026E6A726FADA20547ABD5 |
84B2C45F93B4EF076D1C9F69C7CAB61D4FD56BD5280E376ED8F4C81F1EB39433 |
D6180AC25EAB375D2ED9E58ADDEECC427FC303D69493B1AE7FAFD786A08CF1D2 |
41D82F978B94E010555BB66C2173EC5FFDD55FDD73CF3DB829EB3E31020CF731 |
DD2531678641B88C7805D9BDC2FFB26F6631330A2D6420BC38542FFEF4F297BF |
FCDFFEEDDFC8C124F13D331B646E72E9A2C33B52C552859B2EB5F867564E2CBA |
D85423B708F3D6DC8BDC78A5389D18AB763B9D6A117B25DEB27E83EAFB0B33D3 |
23C552E2878D4261AC5A5761BFB3B0502D15D7AD9DD8B16B27EB2C31DA7891F1 |
F109726F156A23BBF74E568687DB51E83BF6933BA7A07147D78CCEB7BBE3136B |
7B71FCC4333B5A89728BAE9F5AD813BD76DFA3C91C06A572D9B652AA34EC8737 |
BDE94DDFF9CE77705916D172C4A8CC187BA0D9C40932FBC88A84152F47F0D2E2 |
6DD0D0B68CBA64192802A127272785795138A5A52B19342EB3B38C583267C6C8 |
04E4F8134F3C814BE1CA871D76D8E38F3F6E565F7076560C41F3003A67787D2A |
48DEDAE4D4250F3359D24C3273113D8232357B65925B5BA486B8A47C7D9C4B45 |
8EBF7EF0831FFCE637BF49036279BD38038C643B11B949E72CCD29A84C5F99D4 |
6FCA804A304BC2C5094BF1BCF3CE3BFDF4D369F2724245F3116325FEF751471D |
F5BBDFFD0E6F87B3181BB09731F58B62131139A0833968DC35B0003EFAD18F32 |
9B6302E8ECBC971444137E1062F081EAC481D0F7400874F987D364FA85B6418F |
256F218067C93D3D0781CE3E2E7C9038AD60DB542B7BE767C7D6AD9DDE3BA9AB |
8D926C57B3BC184FE15A1A52E1DB9A7CD2CE60D1D8AB49AAD13A19262B59ECC4 |
6E25962A94601805C56A418516034E5457260F9444CBC59A1743843E2E93A95C |
BA62E6AABC9923F958E033ECDAB58BD92BCEB2EC5CD35BD87F7FDD5027C99B93 |
322A29EA56B47BFA2783B04C14946C64D9805C1542558B9580DD8D9FA58184B5 |
AC178E39AD66FC7879827FE50541B7CF0C3548225A8275CAC82A0DD5873520A2 |
EF8F0C8DCE6963DFF6EC62B61376E1181CD0EDF4F3E5E266DDE337EDBFE9905A |
7562666FB7DD0A2B651DD269B51792D4AFD7AB69D6ECA854F6B23490CE70C441 |
BBD7EB668D0543E8E66E0FA67DBDD787DB6113F798451A7BEF7FFFFB3F73ED67 |
FEFCF017355B33EDEECC426B8F1FCCDB6EC83AB128A2FC756D4B1B0541E8178B |
90683D4D69192DE67D857A973245B613239C54BD82AAA08A252DA29469C9A4CA |
2A9405611AD7045BD11EC4150E3EF860F67626728AF6A0D45952B69A10566941 |
43803EBF64104F588BC5AEB4F21A53562767FBD589E2A856ADB53A9A033C0803 |
DBB1748313DD984883E53CD70EE1DA5A104985340E474B3AB51B8741C5B527EA |
8DBAE3C236C6BB0D15E04AA4C54461037971E25AB1CB12F88C4C00FAD28653AB |
2B0E9D48B30DD8DBA766C7D68FC212DE3E3BDDB7ADC6C438FEBA7B72B21929EC |
423FD6B0CBD8F17A613CD3EEE04F766989E2547429D2B458289AD2D3CA3F541B |
4CE325199BDDA1871E7AEFBDF7323E217AD7AC3B22E851A8FCD9450A7BECED6F |
7F3B143CA36749DE1FCCEC2DAFF28A5E167F6305D2FC92123571D6891822D448 |
7495861CCECD917193E05ED205F0E1996A52B9D5CF0A4B2BC7634B418B10B0C8 |
477C7DCE3B4F119AADD52258CC2992AA22C9E8A56890D1BC5079A188D9F55619 |
590CCA5C6E07820CC4D4B3F2FA46FE49A88ECC0E1076DEE60B4742D742B1FDFE |
F7BF27FA5400FFB29BA492842333C03A27DCDAD4E27259E9F9B662545CE4AF28 |
33BA44D89BA44DC87BA76A7187CB6635EBBFE3E98242379F641F8A76B5F137ED |
0391D418B4638E39E617BFF8C5809EE6BA357DE534EF4E2D8A5908A4A83F18FB |
E5221940A548A1296B2CEDBCE39E989866D444192DC884BD47D86DD95C047F1A |
1B1BE3FA372B7FB0AE5EFDEA57FFEC673F636A83DB21C369F6D29C168D096012 |
A8897EA5D9CD19973032A7C3A4B7946540192ED4E24C0951148BCA14F7924547 |
B2A2A47D137701E35E428C014B94814F73A8ED9C0651F019CBD52D2DCEC5F25F |
832BED8F1486B3188EFEB568628EA64C9B7E8D54C395AFBFFEC60F7EE843A3C3 |
E3D0855188DB6059E82E3DB80B14B08E91AAD8D68D2A4B05EFCFD6AF3BA05C1C |
5D988BBA9DD073355E0383353A0EFF6F2608BB8EABFB1725C9620466B85E7C76 |
F733A3755C2AE9FBED7AA302831EE3D2E9B65841444538D4D0B12CCD23ED04BD |
7EB3DD9D245C4B135BEA714CB385D2CE3080161C343FE895CB1EEC06681D4EA7 |
20874DFA2A2E7AB1A4B882CDECACAC48496FA8A57978CE0D09AE850A9167D145 |
83997FF3CD37BFE0052FF8CFFFFC4F59FADC3052BFC14087CA303B827D37F1F1 |
03E937BE024BF8490029B679A9A00946600F57352B67BF522B371732F669DBCD |
546F80575D33363C33338F77A855BD35D562B7DD2ED86AA45E2F2451D2EED53D |
776268C4E9B53C6849CCA94A8A490AAB1A8A1A86B59B2960364A4A522BB69CD8 |
D2C50EFD24ED2511546F5470FA2A6D86413F7BE0050C9BE3B67A7E3F56FDD80A |
2DBB1FC55EA1D48CFD014B96E2DEB51DB592A748316DF62F93CA6949B753F5D2 |
58917A7F5A39F8190AFBC1071F240A494818D8C6915E20573E77A94477CDA626 |
040AD0DFE514489884220CBA192BF6E8A38F866540CA49116DE6871293AA4B9A |
21A606B7F0BEDD2929C7A295466CCB3E223104F8A89C2792DF0B6DAA30FE5846 |
DF11B552A8CDCEF90807549D0CA332F0A52653AE8817DAF7D2C695D9169A1AB4 |
4EE40104D7433F29CD4BBDC55B5A11FC48327D315C0656516AF4365619433514 |
89C0B3890E3BF5D453EFBAEB2E7C8F65B36EDDBA471E79848871EE538AE63F41 |
ED2E197F51C0A6B38E15F59297BCE43FFEE33F0855630023C989AC93A5DC4F2A |
8FA89108880876694D2D1C552AC34EABDC1265F04326828CE2347D04CC8FE5CD |
8090D9734C36148771C3860D700A0551214A8BFB8B4D11F02B8B94A4E8DCECA7 |
2B9C8C2AA7E630ABF0E9808A8BC92C89A0A5640989BF2115F65C48D2145C54BB |
E458696B26794B06FC55372C5F5ABD0253FE23D987A283D92EBA644C9A709F8A |
01972EA51917254238B3FCBBAA02C6750950A42620690306CEAC69618C11DF68 |
8D62EB8450DF0FCA45F8B26EA7E78F3446F570F889346311D3468F697AD0707D |
6DC6C2518802CFB117E9DA5FF492239F79E649E8CE62091E6A8F4D7270FDD9B9 |
1DEBC6D7EC9EDE393E3C92AAD02BD8BBA776564B3A468F81C64EE826DDF1DAF8 |
747B7ABF35FBE1F89E3F1BC659DB064DA616E6AA90A36C8F8D4E5C78E145975C |
72311470D6B06131872D3E16F35B42982291C934475A32D1CB8207BA05DCC992 |
29375335140A92B3E487E81289613265A8F24E2F429DCA064AE434E0B6A1ACA1 |
47AE71C54BC97B85F0687C7C1CD797C63EBCA9E44BE0EC562BD5F7BFFFFDD75E |
778D5E7C6902A3288BE468FFB25C2A56CA65BFD34EC26878A8562D57FEEFE38F |
7DF081FBA7F7ECA9178B35D7AE28CB8BD3B8DB9F287B85C4D2E50D49ECC10057 |
99F6B555C1769595587A48D238C54F2E74B06EBB522CEF5D98EBDA6961B8DEB3 |
D4EEB9D96E10962AE5DDBD7EB95AEBF861B136B473663E758B53BAE8C5694385 |
E76B5A191A378D072181E952621DB6E11429E0E65DE8A984ACAC8007FB53328B |
54818C3AE248D8E9F7DC730F0D174ABA37BFF9CD77DE79A799915279534EA6ED |
E978C901AC9165B69EA968E2F504148A99C283E1E02D5BB63CFDF4D3C4D4E05E |
9FFEF4A7AFB8E20A764D10933C6FE1A5D42ADCC26A5956421C4D8AEC7DD7A34B |
FAD6649E92C4845ACA0E4DC925C36E2AB064297D9868053CCC5BDFFAD63BEEB8 |
832433820C2786885B408C5A7ECCCA1395FBFA123FC7954935CCC61BF81E0613 |
163C8EE7AE7CFBDBDFFEFDEF7F9F7E1B0EE0389C7DF6D9D75E7BADA49FCDE7E7 |
63534CD1E9A16B6B0A62899D9884621C67A861DC17B61413816621D67F4B010F |
AC6A13DD29F106A9ACB59622BACDF8275351C2B2427A1FB2145C74D1455FFAD2 |
97C87682D7B9F8E28B2FBBEC327911A95FE7BA95E8BA949F5939F75C94374D67 |
94824EB630E0E2492EB9E4925B6FBDF5E4934FC698737207821FE67A96B73343 |
F762FC89D3CF53680A5B79B71EEA7BE109661C9B24869CCDE585701234E6F1C7 |
1D77DC6B5EF39AB3CE3A8B015D485DECDF0B2EB8E0F2CB2F8758E09E15D94251 |
BC75EB56AC317CF9F5AF7F1D26BE2444EC657DA0EDBC6D1D2FCE152529B3553D |
609A0C9FFCE427BFFCE52F63E831706C63275496F80652E99FFFF99FF528B876 |
16E0B50B6E5977D172CB3052ABD57ABF870DE3727432411FF1093A9D35A5E250 |
B938E6D9A396AAA489F695F553360AF3F3B37ED0763DCD4309E99DF5A50A36AC |
CD3A4FA9B0D369C789065E1D7CC8414F3FFD071DE6B4AC6657ABAEA1EAD0F070 |
832194A999A7324C4F3751902654B118743B0BAFD5E1A0D76B8D56BB89D9DFBC |
79FDCE5D3BE1BEB314878F2A168D2860B3DC9B03CA582566E8FAEBAFC70EC174 |
9E76DA69F8796063F0747CF39EF7BCE71FFEE11F309D1410101CC4AF4BA98C28 |
630A2CBC88C814CC05D9F5082F64B776CA0EE2BC92AC7707841A2514FD5DFCE9 |
94534EC1F4E1013077B82937B36660986F8E8F8D4FCF4C8F8C6A368672B594B5 |
23C9CAECA02AE617EC8CAFAEE4A89146E3E0430E0C6676CD4ECF3869E26296FB |
6AF34879DDF070777E7EADE76168E0FB9692B4A8AC8A63153CC773E04447996C |
CBBA372A1BDA37B25CECADAEB2FA49D249A38EAD7CC78213DC0BA3308EFAB56A |
B71FC48ED7EA079D386DF6F1280E747337E72B564B69B7C5D15F31C183F77DF1 |
8B5F0C6908D941892F240912F314FE748C2D0D523228618258548073F12B4C7E |
469829ADDEF18E77E0B28F3DF61893BB92E8A265CD083F814BB8F2D5575FFDA1 |
0F7DE8139FF804142A0E78F7BBDF7DFBEDB7C38A278E89810D338B2CD96B91EC |
19EEA14570BEF9A6A9D1377E35854A1BD18CF4AAD59D665AD2388BBC6C1C2B3A |
A903D68F39CE964175A28C26E76A299C4D98F584F5D3A440974D27AC0B58C9DB |
B76F678842F4A234B4E064F1CAD8084CCBA93C08C15185758BE371114A3D3A4F |
705BBFF7BDEF6154E59481E0330D0E0A74FC7BD45147FDE637BFE16220B0885A |
84749534AD24E2853FC1B723A5DD3EAA1EFE144D6CFE6A8E305BECA559C91665 |
F7F264B62453CC7307BA439A113521C5E3BF94F9182E1A8BD47C34FE2C03AA29 |
0818A2044C462A7AD29CA0AC084213C5E05F56751228233D0F78712934108169 |
2DC5AC5939BB0E771691861C1F01C9539CB270062AFFAAABAEC22E836376DE79 |
E7DD74D34D4C29AABCAF115F8D92939966582190E42A2F40B50D220776DA664A |
48C2A25C6C18288C21DD2A8C2A5685694CD806F50A6E44DA4189594A247CE50D |
09ED02CF80B6B9CA6BDBCDED4A85F4DAD7BEF6C73FFEB1CA3175CF3BECF98F3C |
FA58C1AD36EAF0275A9572ADD96D432F66FAA0D30BB3464E4A13C9F603E8DD52 |
C1192DB863565A0D032B8E123DE07654AB97FA7E2B0C7B43C3356CEA454BA7AF |
8760CFE4AECD9B362569F0B6B79D74C38DD7F3E1D9CB082382F7DDB479C3A38F |
3EAADDC7600F664D597E6A69B5AD07215BD8E3E318DF997A6DA8D56E4F8C8FF7 |
FA9DD7BFFE2FEEF8F6774AC5C5601DEB344C108129E5655710149066FC098C5A |
6832EAAC4D9B0978113144B642AC6FFC60C6A952831A82213E2E65E24DF0EFA5 |
975E0A092E5DA74C189E32F002B031CF39E71CF995F385DBE1187C0FA78A6D5C |
19AED18BAF58E9FBFD35136BA667F766A18B8CD5B25E85E459989BB72D552F17 |
6BC5928A42F8BF911F14FA2D0CE0DAB1EA48A96CF783F5438D896AAD3D3B5F58 |
68B9A956C01565D76C0BFE71BD5C2E16DCCEF48C06586A47557BC0D0A6D0C189 |
652FC4A92ABACD24DADBEFF66DCBAE94034C71B7D7AB963BBEDFF2C3726364D7 |
EC8253AD4D37DB6D3FEAE5A4EA94E302BB904D3BA096C4646691C040AE4BC2F5 |
3852E73B464799D2136925F89D818F502C31EA20123FCD5AA6E3A9B0E1B1D5E9 |
D4720A184F1354BCCABD10A1EDC587FC181924A225C0632B635AE629A420203A |
7A458FC1D48BA6ECA61C7CDDEB5EF7A31FFD48F0E1905692965EAEB059A605C3 |
E5C1071FC43A84D768E28906702B821292C0AF3C98008EC4CA611C828E382B29 |
21E320D720D118C9B4722A0F1C803184F079E8A1879CBC23160E60BB2AC292F1 |
6535FBC094649F44286CB613C6C571BABC2361EA2AF7E6715FFE89C39EE67556 |
E2A9884E627F495AE4D4FDF40565EA1984A43367E5F50803B8E8FF73EDABF260 |
2F79365887430743065998A4B8B525D2A3F22E3BE2AD4A593689DEB8A7685CAA |
CCA7C43293D4AFC8792C666904C41A717C4F481A330854C034953EFFF9CF9F7D |
F6D9C40332F5438A2E9C0521C6623C78749069F886DD51E9A3DB46153E63212A |
EFFD2A190DCC3234EB35D75C43863209F84B6A83F13F1C898BDF78E38D1FF9C8 |
47C82E47252D2EBB50A8F25C7224E09A9FFDEC675901C5665C69D6388E44D662 |
00B1BCC5A4A864A8808B7FA0E12693D35494B8E311471CF1C0030FE01BE2B725 |
ADB9AA074C1B47CCA571A8AB5ECF8CBF2923F1E064AD87424D97E47A4E258C93 |
35A31BB44F9CF9B57DBF07B3CCF5F0345196512F24F6B095965C7BB8E08CDBAA |
9E268524D64FD3EDB61B43B538E90761078B84D8E962A11CFA731A9C95EACDDC |
F7BBB39DE9934F78DB3DF7DCB3777A4F160977CB95A2D2C95188F17EABDF72ED |
4EC6E8D24BB51FAC15B06EA897EDB2A1212CB556A958260B87EBAA0D1BD74DEE |
99E182964A7F139C2C424A5C5B46EAA409CC00FEC22CE94973DE35D10D5C25D8 |
CC6CC3CCEB0B444B0E930C2EC69FE8682C3238D9DFFEF6B7310B2637108514D7 |
3455382372245260F0934816DE427B5A7E448FA4E7EB4C861FF8C32343F3737A |
5156CA3035BDCE5CEBF4F7FDBFDFB9FDB6F985EE960D13636EB8776ABE64AB75 |
43D58A4A2B892AA71636E5818D869D7565810D8209A8DA6EA5E0603E129D5126 |
B0328DB299F0531BC3EA17CB7D2B6D27E1421CB654D2B3750D626229BF5EDBB9 |
676F2F5298B09EA5AC52C52E1567E61666C34115BB18044BF71582962CA0B3B4 |
01ADA4C6E9254883642A3F6A5F8A1B6C3CAA67495B0A6E8EC92AB3F4501AFB30 |
CBC5B02763158C7FC21EC2C310A8C5F8AD647C697E617249AA40120361A520FC |
FECB5FFEF289279E285E88893B5BEE30899266A08CA683F840FB08415391D04E |
975E17723BC1B8AADC91E262E32BCB97A2AA939C5E5E4247184F8C065CFF73CF |
3D17F68AA0A625F068E73D7D7118F605438E4CB5703488AFE6F24E73B436BE61 |
2F4813FF22891BFCFCBCE73DEF91471E51B91535E0E250BECB9697E8B169BA49 |
1291AF2384FB129D66568806AE3858FF3F14F08A3A5819E159E9D5219978DA16 |
5CF3E652574A0DC82E7924167AF07472CEE0C30509AF114344E01223738C1B13 |
8BC4320A711BE4318422D78C870BF489BB46BC1A16D31325C7788670FF0940C9 |
EC4A209782BB8989BBE0820BBEFFFDEFC3CBA28424253BE12FF44A29B4E9DDD2 |
6CC253D1AB61D6499625C42F1639DE970D89B90285DF43195C2E621C8B8DC5C2 |
7AFE2C8D14B924041CC7E5C4B7C038C02279EAA9A7688E53C8D37A5B85586378 |
98C137E20C3FF4A10F7DEB5BDF22ED08B3688CD8D042D7ED2074C0D3ABD746A6 |
A7E75DA71C44F1706D1C7B737404B67CBBD569BA8E0DCD8ACDD8E968A4A855A8 |
B84E15DAD7B5465D7B043FDB165C40278ED2F98569F8BEF54669EFDEDDD0B56C |
40313A547874DBA3076D3870A1A9DBDAAC5BB7E6C9279F8C92C075740545B1E4 |
6172BBDDCEF4FC54BD023FA36BB9BD2485EAED6B7A352BCEFC27162061945D38 |
E87D1805FDAEE7398D46656676CEB117B3B0564EAD2E05E666964824A0540868 |
6FBEDFA7B4A5149031349D068CD581071EF8F4D34F4BB7794916F216B425A562 |
1297C597D4EE5810DCF64EDE108621200A23AA07CCCE3BDFF94EA1D4606047D2 |
390CE0B0828540472BA3A27BDE61CF7BF8510D37B51CE5F70378C00C44D74B05 |
BF171CBC79C3B6EDBBD60E55866A75BB35E95AAA562C542C5B75FA9EAFD6D60A |
EBC746EB6154482D0F4A3D0CA186BD2472313896D5A0A2D4EDAF7437343F517E |
62E187AE570861F63AE9828AE6A3A01D45A16E0C6D6FEBF60F7BDE61FFF5C413 |
E77DE292ABAEBFF175FFCF0937DD720B36FD4CB0B82D5385CB3E870E8DD315BA |
978B28A782140A78A9179436856A2989BFF8611C3D3AB5F8D317BFF8451C7CFE |
F9E74B88986B839B4A0224D896B8CBC73FFEF18B2FBE58C0CF02FE1274B45969 |
C360262F2B9D03E46118321598C90095D200E8C954ABF203DDB54B2EB9E4739F |
FB9CCED1649202DE2DC9655714F1E239A9DC2196849F5A0A8761AE9A6E19D692 |
B428E7B399F9022B67A237DD47B10CA862E9D299ECE5FC9805DCCA2879126397 |
1BEA6D6F7BDBBDF7DE8BA9C4405D71C515975F7E39A689E468ACEC4FF31E0CBA |
0D79E64B309829082FFE953F102949402F3B4A91085ADA75ABA5E4CFD2E9C19C |
917D941DFE773FDCCB69D61A8FEB4AE20AE9B2121A2A5406D213A3893D7D44AE |
0189F140C233F0C6EF45C7D0E25F5E554FB4844936679275338027992F3C362F |
C28010BB59E007F158E81DA639C3AB295D055EC7DDC175280D3C64851035695A |
18348028BA31B9B817BE240D9C986BD75E7BED79E79DC7F6A3A456A5FB2EAF49 |
958773F1FC69569EF7FAD7BFFE8E3BEEE072A53E66B2CF0C6132FB4BB35B19C9 |
32B57AB9F6735B6CC5894F0DDE3E9A1E0C854B69016F802FF986BA902C1B8A62 |
A11A06AA54ACA689D3A88F4CCFCE56CB550C66928661E4777A2D5B5923A3430B |
DD5EC1AB43FBAAB861A575E841D72DA589B571C301FFF5C8FD071EB0DF41076F |
F9AFFFBA7F7E6116B7C012E9B6A68686F4867FCB5FBFF90B377DA15228710314 |
4B2A4EA08D8A90873BA69E29DA5E3FE955BC8AB23B71E227690F0AD8CEDA16C7 |
711A47ECB9BB303C343AAFB7108485B566CD68ABBDD06EF505EC201CE25C6A03 |
A92F53885C7FFDF51FFEF0873101871F7EF8030F3CC075264B4AA24302B6246C |
4DD86BA97105E56FC2E52914485C65D6B062F3BFEE75AFFBE94F7F2AAC5B4CAB |
D0796236E24D6F7AD35D77DD05298073B128F18329C7A178B66DDB662B073BED |
ECB3CFFED8272ED249B8542B15CC20FDE08AE778296CEA78E36863ACD178FC99 |
1D5B2B6A78A85CB46C2F0EC74B9561C755ED6ED0EA6EAED78AB655551A9605BF |
12D2085BC452E990CAB4A56E7B6685A9F253AB877BA46A328A2BC30DBFE04EF5 |
DAB3A11F7A6E68A7DD7ED0F6BC8576BF13A9C69AE12776CED7C7EB4D3F9C6BF6 |
DB4E563C40E63CCB16DE92307E0E6D2EB24FD248E688A9DCFCA7F5CA78145EF9 |
2D6F79CB9D77DE49035C4C166112E5FCB2A72F15B9E4BD784D5AA25293C6EDC7 |
FD4970006519D53FBD4932CD3214411F0ECE196CF933CF3C139A5E6A66A4252D |
5F04070BB590190CB0F20A0D73CF9A4B94301C063F08B012D6C615F73B0EC313 |
42B5D021C09726DBC0003486917C221504B445D37039529A1F7C4FE638E67AD2 |
AC12DACA51C774FAE966A9CC808029032188256D560C0B5088FE8DE495393822 |
4C3917AC57219534DD1A4A6D3C2AE6081767D055E4A354313103CA318482FFE6 |
37BF8997653E9E3AC3EC7FCC0F69444DA6B3FF13BD2BA773AE71EB37BCE10D0F |
3FFC3076AE00686D83B84394716AB01E9A7A5A360501222A2B391194328EA11D |
CF9CA309BF97634E3AE9248C0383BA5C512C3FB196E1C6A5164008C5B85099AF |
648D38A3505C24B2540418C5A765CC9CA60F871DD60316D89E3D7B2457C8D522 |
380F0A5E29BB6243055E930637B71293414444B2BA015A0C9201736A8673181B |
C0EB40627045E15F3C8914B90DAC7093D7D68C0430DB8D31E122945E6D7A578A |
4D3190C59170071737A9E90413C1B1E6E5683A59196721EF68E1A64EB9546C14 |
BC32EC1E5C157A2E4E8276BF0935FD82171CF5B297BDE45BB7DF9E44F097CA2A |
A9D969C3B5873CB7E238C582E3763A1AB39EB9ADF19E49C84AAFD3EF8C34CA70 |
B37111585A85A2675B6CA9613B1EA627E8F5DB7005E33474B3808C8E3EF577BA |
1E663409A39E7E296B3107EC389ECA713ACC826095E075B66CC104EDFFDBDFFE |
96DE098698EB66C588900C97B5EC43E64E8CF8C1071F4CDE1C016111B6A68C92 |
95E38F3F1E3A60C5EB53E2637D24595B4D06E2586047765F0EBEF873BC359355 |
5400584F54D252DF06A981BF62C16925B47B57210B2231D4C16D16417A96BCA8 |
1F0E37EA69BFFFC5CF5F77C985E7CFCC775E74C4FE0BBB9EAD595EDC0CABAEDA |
B87EC8F603AFD9DB3C321ACECED54BC561AF887D003B109ABCE85A254C7F1C67 |
E5FCD0134E68295F27036C38BB0B61D4F1AC3995B6556217CB49B1B4B7DBD939 |
3F5F1CAD0451DC8DE36EAABAA9DD49550F06540C877A687A7EAE502A6E39F890 |
877EF710DC604C7041DB2801653D551163A1928F111C8A69564BDE4E19BC866C |
1DCF20980CBE09D7920492F4B9A2161148A7E940B355DFFBDEF73EC2E5303B5C |
5D829EE5CC8A2BC629B38CE222FA37A4FB6138844D2AD5B28A7E79CED5D62793 |
1D6C846C65FC245213C963045142F097CAF320A6B56EFDB132C50101C4D32952 |
8E3AEAA8279E78828DD997AB25FE8CFB325B8FB9C3FA24A726212A9492A676E7 |
F194FEB46328CD898EA6BE5199714C3C1D24F562942F83CBF2071EC6BEB0E4B8 |
660121362C79EED29C1C918A8A35AC9C653EAACA6D74C1638B03CDE1E5DA9092 |
A1812192F8B95962BB8FD4C08ADF4B958E543D88CF4D5A63866A08D69124B795 |
F35D3B79E30D09E9338EFAAA57BDEA273FF98928216A20B2B54C4C4C4C4E4EF2 |
4D1954E39AC1A5BEF6B5AF7DF0831FC460EA9685C3C318A234AF811C78772BE7 |
B5A6A7AE3227C4C410D04EA54C932BE021714768472B47E9337C2DD6B0D96145 |
B42F0EC6015806E79C73CEF9E79F6F16BC397947262E36865EE476B4AE707D98 |
6B2CF95539990CDB523154C07827179BC970A9F256953483A84754EEF2D20816 |
7DBA643F0C6C2AB3C9B95410F118280F4EDBADB7DE0A71A305C12A0AB8D70DA3 |
18C61AC6C883131C84DD72B9343CD2986DFA49ECC4919BE9E0A2EB54E13AEB78 |
C85C0B22AFD3D10228F023B241359B3072E79515D94E8CA1B36CCDFC4C53A0D5 |
99CEB0AC107381E3DA14017A209CF94E772149D95F2BEB3AAD98665892FB5139 |
7801B37FE8A1876EDFBE5DA213FB1640F22753FB72885878FEF6B7BFFDB6DB6E |
8352870CE2F19C24E1B35579B67F350137D0CE45AA564CC0C2006E16062C0105 |
071C7000FC60A21ED8E50D23C3C4069EEAAD6F7D6BA952EEF77AD55AADD36E7B |
2C5F863D383CEC477EBFDDC3EA5671325474BD34DEB47E7CD78EBDE5441DB679 |
78B4580CBA9DD8EF397E7CC4A675AF7DE92B1EF8DF3F850953F0A37212579214 |
2ABDEC5845CF1981A0B36CCD269B581090BD24EDA54E00BD9BAAA6AB5A8ED577 |
6DAD800BA5661ACF87FE54B7090F144BAA9B58DDD412053CD94D6B956A37F44F |
7CFBC9B7FDD3EDFBEFB7E5F1C71EB373C6AE81A8E9400E4CE5812C95D9C86296 |
52AC3059CBE96028891C64FCE6F2CB2FBFE28A2B703C0920B181AFBCF24AEC2B |
7179C90DC9EDB77CA638D44CB01149840B7EF2939F54995B29470A104332DC37 |
DE78E3E9A79F2E0F2FDD9CA4F992D9F76D3545C8EF25FBEBE4FD85F88124857C |
A1D742EB591222785A8A6F526C4A93A215AFAF9666B994D14E9BE5EC2C6DE768 |
C80619D856744F29D0AFBBEE3A8C33DD23332AC874A394FD38463743F1392882 |
F93A661742692366196C8E645CE180734E21D00E3AE82098AD38DD940FDC685C |
63ACD8965024A584998917541ABD978122E38199924542716AAE8AE54266F987 |
7166A80A36C7E5E9423B2A7B418A88245E22EE9644E9981CE16BC2C2800CB4F2 |
C66B8CFA30A42F424C82A00CB130528D7F313ECF3CF3CC05175C70EDB5D7B2E3 |
0863F8F22203181A6A59B3DE442E8ECBE2009C2BE4FC1C259C7EDA69A7C1BAC5 |
34E1A6986E42AE04264637972EB8640A18DA347BD870F6257A8FD714CA233A2D |
6296A5594F6261DEA0E9865FF12F8E27163D35DAC0082841A48DE03739A4E2DF |
A73945D273D9A3246F044163393538336DA39903051FF1DCB2315653C0810F1B |
A717A54141FB701E74A7EEC21EC785F25A2CC83872C2401354B16A0207548BA3 |
ED56B7D11871EC62E0A773B3AD7A7D388ED24A158FDE0BE3B6B27CAFA0E94B61 |
1CE3FDA162172372CAD6F41E929271663BBD56D6E7238610CE4C512E02CF2CCF |
32502D0985A9CA3B9CD3DAF853C014E626E1C660808576370501C368694E25A6 |
721B761F962FEBE8B1C18831917672F81EC2E2E1871F4E734A109A96241396BD |
2D20ED012145A9D7ED75CBB0E0BADD0D199FF0FCDCDCBAF5EBF7ECDE5DAD55BA |
ED6EC1B6610DF97D7FACEA4D8CD6DBCDF9B18233E416AC9EEFA9B85129B9815F |
8BD2FD87C74AED56DCF32193F61F1919AF54F07D12F8587A8D2829C01E72DC38 |
4D7A61D282E39BAA44B96DCF69AA78D68A7B3A310C5D9BF61CCB2FB833A17615 |
BBB156D55D657512AB17C750C00B49B1E3F7E10107496A39B6DF0B5C4CB11EDB |
548C56BC2F594D301A12AA65088EEB5E657E0CC79FE15F9108F23323014ED6D1 |
59CA09644EA3A5AD6DE96A63303FFBD9CF7EE2139F307393425CC58D8D7FCF38 |
E30CA85565F47E3685EF721C99E03B7030E60E77E4F1B27E78B0E910AFF881E5 |
2A21353E958833494CA89CDF40650173566D11D8C25C9A59986B7E4447DA5987 |
09957B8AD24A5D65716032499955B3036F0DCFE9AB5FFD2AC6841053B12C09FA |
8DF386D6B1D1E068205F232C9EAC691968052D3FF05D044EAF96A12C85564922 |
A203C10938521B376E3CF7DC73CD087062306B9A9E9C64C4CD99E563080A441A |
E9A8FF66A441E56C013C5777B26936A5A70B2D3695199DA9D1D05ADE85FA55E5 |
3CE7B23C84CB9A2FC5861F587898231852E2F02D52E965B6AF6482A59689AA57 |
2495E9049BBE0AD3B42A3752B93C88B63BF3CC33B1245446372445B72A2F1B91 |
8010BF17C351421102CCB6F2F6A0924919E0DF3501835479F8F98D6F7CE3BFFE |
EBBFE20718DC3007C57C64A401373DF1C413BFF9CD6F32272D9241D246B27AB9 |
FD6110C0A0A1BA158F9F01008EBF45B7CCACB06C641F28798A0F739F9B4B4D16 |
37C55C5F7BD32B85A07BBA00085E7E9C68368C52A9502A6BA6BA6EA7CAD383B0 |
EF0730A08242D12A14DD4E2BF1DCB26397CAA5C61B5F7FC2FFFEE92FB64F4EBE |
F088973CF6D803B57AD12B249DDEF442732A4A7BAE037F17DBC9B2350DB50D05 |
BC08C18F21CB7B41B207B783BECF9E977CFA7AAE83A06F9AA5E24608EE94F248 |
42FCFFDD5C8EB9D64D5C280596884BDC8E85A7AB09503EA1B85CD863975D76D9 |
473FFA511A8F52A198E4E4A504EE3293C718A6084AE6CC88BD12421CCCD578E6 |
09293D821A5CDA84A01F1D9D9B992D788E95A4B0D636AF5F3BBF77328DD4E68D |
43F1C242C3B5ABA95D2F7923F5AAEAF5ED857643397F7DEC4BA777EDEAED9DA9 |
61BF6121418686AA58509B3181050F1386476AF5836618F5131B2B60260E1754 |
DC293A21746AA4DA38A55C7247861EDDB3C74FA20E1570EA40314319F7A378AA |
974419BA20D2ADBBEC343787306FCC7C8B0E867F79D6596799797709CB130629 |
1364763BC1DE8076FCC0073E806360D562842FBCF04296E1D3C13DF6D8637FF4 |
A31FE116647F85D0C4F8D322C6A8DE70C30DEF79CF7B842200C348F65622F2B8 |
A2B66EDDBA63C70E21625C9E3E343F7020AEB9E69A8B2EBAE8965B6E21E84680 |
97A667CF0DBC0FEB90F2850046A9D4E466675EF9F39FFF3CEE8575B56BD72E52 |
5E306C2874D6C258B2E2F539ECA61FCC75CE5344E90E08A6E59B45DE88C7336F |
C261140F8932578AB9794D6E28696F251A1A7F124A32E84B084D2E78B13E45E3 |
CAB97C60A941102D25969C84A3B0CCB8D170220BFFACBC9FB49463495190B5B4 |
1254E50429C71D77DC6B5FFB5A2C57AE1911F1FB9003CB3F1C04717059D296F5 |
AAF165E191FC813037F35DACBC9B0B4317720B5E8D21105C0DD28923F6CA57BE |
F2E73FFFB9247A999A25FD2429B4241E6072434A6DB74C749AD77DD939C5A938 |
24981D9553B0890A9736AFD44AD80E921BC5BAC51EA4397BD86187BDF39DEF84 |
298CD7A7F72830756E492A38E9BC69FA9C9247E760D2EDC665E9FF70DF0DB07C |
BFE8452FBAFFFEFBB98404C829D525D4F78C19E3215FFDEA577FFBDBDFE60A94 |
0E3AA6F36D59CB22CFB8316BA579A818505C5E82D5E46623D453DB2630405652 |
C0ADA69FA5A0F5E086910F959951C5DA6130A1F7AD8389ECF7FC6610B632B454 |
62A9D29F1D75F46F7EF360AABCE1DADA85767FBFF55BB6EFDE5DB46CC785F7DC |
F193A66345A532BC81B8D7EF562BC3F095A17DD39477C7313E947A944EE12192 |
3482C6E5662B952A6962B5DA73E67E504B0B2831647835A9D397ACFE8AB263C5 |
1D92E6BD4B05C5C3FA7D729332C3C1F9A0AFBC8F1093A40A18ED17361622F2C5 |
6B61365156008BF0F0161239116382EB95E7AEDBA0FD5DE860BA14DC451A33DC |
EBE3816A70177CBFE6D9AE958C0E5542BF3B6CDB435EA16EBB25C72A3AAA9424 |
C3CA99289447C35E67AEE9066A5DC5192E78A524AE148BA38DBADA3B5B2E164A |
8562A2D2AE1FB530738985ED3813064D2BE9953D28E09E1F433A46C582373AFC |
87F9B900EA1B8615DE5787A02DBC333CE05DDDA85AAE2CC05FC77876309E63F3 |
8BAD2FB47C217D31812104CD5A06F983329059700789A091DA2106A289EBA130 |
1AF0D238A426B846606ED416B47B70EE17BEF085D34E3B4D0A2EC5434AB35A3E |
EA7EB35D01F3976A59F1AE9551AC602298C51728A69942A6F740D9644A93E50A |
52653E045D491CC96A1CC823FC4A3001AB7D18CD8280C3AAC06531500C42B290 |
63DF4D44A8D1C587E39AA7394BEFCAE8333DB8714C81C344A38C8695376FA61F |
4661F7C217BEF035AF790DE4ACB4BE60029E83404C1C5D25161A89D3CFB016ED |
1E73DBCA8C30004EDD203687191E3311ECE2AEE176AC0C943026AF6C32779A0A |
585420716164B72668834B57FD773EB26C70EEAB5EF5AAC71F7FFC61DDDB4DD1 |
84C28345D162FE8E5D58B81D842ECACCB972354A513B2D1B29B9564B21452AE7 |
E63CE8A083205ECC0A3D128711F94CCCA3E00FD452E4A02860EE97246FE420B4 |
F9BC08251E17006F413830DF911E2DCC17320B711948B605B7806EC292268895 |
F75D919E4C2CB081BEC5521F28F6DC00F7380E80EEC7B04B3CC6045B50EA6223 |
CB2899A49BB21E2C593492BD50FF1F6B6F02264959A5FB7F91597B7575374BD3 |
EC4B2320A22088023ACB1D44FFEAA0731144940157560165DF6407511490E541 |
0404C56D80514747BC5E65B83A5E441904940101071045767AABBD2A33E3BE11 |
BF8E774E452D3373FF371F1FCCCECA8CF8E25BCEFA9EF7CCCCFC47ECA5EBB4C0 |
DF4768FE7C21E8D6749974694D9666750E4EA1988E7CD3E27D7753EEE9E4D4F0 |
A47CA4B66CF0E9A98E7679B6C17A1B6DB6E9568F3CF2D8365BBFE2D1C71FDB7C |
F9560540B660811E9E9A1EED1F680E950533050AA97F436DA1AC606DD2146B08 |
1AD3E8C4C4C874A7386C9D7CAA5C511D9BDE762B6B15BB70DA1D7EAA6DB1AEF3 |
0F905767BF78F0F904504D8E4497DAD6B44BBF4DB8DA28794409EFCF278FBC22 |
144548E29C79E699D85F866BD668A2B3D0B43CCA7A200312E8911F671D68BE60 |
815E8428D97BEFBD7FF4A31F69757B8A9E65ADAE324FD025BFB3936FBCDE407F |
5F73726274F3C58BB3B10939AD52C0033DCD8166D7D054AB7B727A59A3D3DDC9 |
37E8ED5F560AECE991B5D954DEDB9D36D6B5BABB7A6928349D0FB7DBE379369D |
35D7B4DB6B537BB8A721D763F5E8C40BC313A359EA0C36A707FBE5EF8EB7724D |
CD586A8E750A0F78AAD55E359526B5879A0D29E3EEDE9EE9C9964E6DA760B1E9 |
75992F7C0B74B2CB663636B102B62BE6F6C0C0DC1C95D2BA501BB3D1461B3DFE |
F8E3F4A1824B96CC900F213464FAAF3CC833CE38C3219308B2039669636BA79D |
767AF2C927CDE69FE6C9E032D4934F3EF9B39FFDACC3D4B18F026A0F435B8FCC |
F3CEB97FCE3EFBECF3CE3B0FEBC121193F02E162EC098B57533FC6F6D20B1888 |
911DDA4084C81DE800524D82C76BEA730A63C0BC680048520C17EC18829F31F6 |
4E9533B15C67F7A9E642EEA36E21ECD375F446CE8AD4031A1D0D842A9D330435 |
3B374F2E50DF4753BA1529891E371B48331B1FD590AD685CE8DFB19B9B335B27 |
FDE75F8891183097F3A0C7A43C46E3A427B419CDCC7E6CCBC0462A8A874DCE80 |
0DADD04E73F05677E414D070DA354BDACFFA508F13AB927831BCD96233AB6ADE |
20D0C6474F815E4A17D787CEDDBAF31267DCA45D45FB9F32DDE3AC472A713090 |
D9EDB3CF3EFFFCCFFF3C1FC8C67A2DAB7AEAA4CABA0243C02383B127C9954ABF |
DF3CC1A87F379C704088E64EA02FB917B66C0A3AF4DF75B08F93B3EE11C09285 |
C2CA39CD614C92054058F0428C8D8FB59364BAD4F6BAB45C7B7AA3428B77F594 |
4163F9AC3A6CE3ADF6D478FB85D34E39FDEAABAF2AFBFBCA8B5F5A8CB2919E7D |
667CDBAD56ACBFC1E2175E78EEE9A7FF90A76CC9E2F5FAFB0627C79B25C34661 |
4C15DD091B5323632FAE59FB522BD7BCCBBED39C92FAEE481D0C0D2D5EB9EA79 |
1470391D335604892C35EC70EE02E8C4F95E7955FB083CCAA899C8E4EC942155 |
AA735E07740317440CE987B49903D4AE4D8046EF54DCB091BF9A280A4E9249E3 |
0842A2B9172D1E624FB7A6A7FBFA0B40967ED5DBD7D71A9FE82985C2404FB7F4 |
F0605FD7C8C8F4861B76F58CB6D6EBEDDE7870B0576B3735362097A2D9BB3835 |
3692426E4DF74CB6B4738BFF75F2A5837D8B0707B235C3DDCDAE9E223629F738 |
8DCABBED34744AD64C4CADED4AE3BDDD533D5D13ED7C78BA3DDA48ADDEEE975A |
53938507DC1A2D405BD96819829621BD521B2765B2E2A476A66543A5666B1D71 |
5521E3A4422407D9DC9205B2544E3CF1C428F55C937AFAE9A7FFE0073FB8FFFE |
FB995E1AAA9367A57645136507170B06291309E5AD502FBAE8A273CE39475218 |
30884B7E5395FE71DA126EB25D77DDF59E7BEEB109B500E8862434D299581FA7 |
D2B946E405827B81088AC6E08A64FD70BBEDB67BED6B5F7BDB6DB711B74F81C3 |
0F81423A8381E18553A1315F8A24F63A244848AE84A746E29BA170B62EF77B54 |
913B3F6A4AFFF22FFFF2FBDFFF3EDAC5ED6B38479E01E8997047B0BD1CEFE164 |
5D72C925279C7002959340CC76D86187071F7CD0781F2ECB08C976A36E4DBB18 |
5505AB8645459E528361D181FFE0F3793209FBD70A5B71F8F041B10F5C2B855E |
F9AFCA19B75F03314EE1062A0DA34463D3DC62754577BC11A8E5DA551F170FC6 |
C4E9044850CF24565D428916D1772EB8E002997AAED08329055A373DA0DB50DA |
1C6133101BC7D2C237005BAA0F4F3AE9A4B3CE3A8B3A7E169A8BA7AA3F52ECC5 |
4B3DB78627EB4A5B1D6FC4712C423E51358233B00F691B917146D6230C3B9F7A |
6E6D702E339F07D611D3DE69215C82A549DB7CF3CD1F7BEC3114A88DDA34B313 |
6216BD3787E981FBF3862095466018370104B6EFBAC0FA3C0AB8F4BBD625530B |
27AC3DDD48C5D5BA9B9B17FAA2AB87BAA0E969E9E002C9BC68BDE9679E7F4A3F |
D6D70706BBD70EBF5C80615B9DAE7CF9B265CBFAFA0B22C0C989A9DEB2CE786C |
747CBD259B4B8FE80B05C5DDE2BE46D7E4CBAB9E7E71D5D33DDDADA9E90949BC |
BEBE9ED15109CDC62BB6DD7E8F3DF6FCC637BF5C4D816541F13F66460B20C12A |
F18AE8716FF3390F40FC67346510BE9189898C5D1EDA55E681A872CEEB033B27 |
9B7BECB1C75E7FFDF5263137801EB9D0A8BAC7DB9F33E03E55A92FB7A6877CA0 |
EC16D538F8E083AFFDC217966DB4D18B25F06FF192256BD7ACE9A2584BABDC6C |
64EDCEE04073A0BFD9694F6DD4DDDFD36A2FEEEAEED57475A6869ACDF5B3EEDE |
C9E9A1AE5CD27730CF063AF9A2942FEEE9DB606860B0BF6FE5EF9F6A668DEEA2 |
D56897ECC0F18E7470D26CCA091E6EE6C35DCD027BD54963791AC93BE38D7C6D |
EA940AB85DE09FB3C6589B10B47CE2AEA952E5CA00992EC229EB44B02C394EDA |
965B6EF9F4D34F6B3277DE7967FA393AB611DFFF7BDFCC00A422AE6BAB453AC9 |
A48F70E2A4AAE85EB37DD04107DD7EFBEDFA5C329D1661E453A9B5B544B01310 |
DB3698D235C2AF6A3BC7BF82994BEBC8656787D317F879549050A4E555D92202 |
34818928B78D9B1E9A360B6FE3831FFCE017BFF8C55416947FEB5BDF9A6FFF23 |
01A8BAE1D1648E3FFAE8A36CC5087BA981B066E3CEA88FE77941997218F55FAD |
02FE34FA92F24DD780452CF42B5EF10A0A605069FA8E3BEB112DFCF5AF7FDDA8 |
88CCE8B6446FDA39C97352A57D8111A0ECA90CB453456A89196018B083E9BDA3 |
AF76776C1F733C630D5BFAAF83B062F3223253767075E50B2FBCF0DC73CF3546 |
49E6D7534F3D9555157A79C5609557257CCED31305A9D57063AB515040F52D77 |
BFF6DA6B8F3BEE383A8349DDB285AC50CC74112B621D830529E65A26A78D0943 |
128074512F0BA44374E8A1875E7CF1C5EC25B37C1082B287A3034B7A8E640AB2 |
372A3F0BD8ACAA8CC78CCB03C936C628045BC86A02CBD8C7DA3386B86AC01205 |
AE1A77EC9A6D831AF63E9C638F45B45ECC482132F8999EE4CFFEECCFEEBCF34E |
A29D731FF8DE81F189D1465121546CB6FE9E25D3539A82CDB01699F418C1EEE9 |
5AAEE95DB278D9E444AB4C514C7775672FBDF442B32B5B33BE72516FCFF0E40B |
8312FDF9F89FFDC5EEF7DEFBCB552B8B79EC2A7E2ACBA5A7BF6FB174EBD8D8D4 |
E0C0626D8091E1228731353DD23F28D7EB9991D1559D348C6DCEC166CD28C098 |
6FA383BBD19B3BEEB8639F7DF6490BC68538E18DD0A383199F0F357AC61967FC |
8FFFF13FEEBBEFBE5441AB48FF447C0A043A6C44BBAD38ACD4B06615BB9E6338 |
12526077F91AF6AF5BA0B82157540F15C54797BCBE8181FED1F1926DBF51ECB3 |
BCD5EAE96D4E4D4CF736536FF12CEDC1AEB464703075DA43ED49C9C881AEC6D2 |
BE9E7E19D163138D89A9CD37DAA8B966E5E2BE8125DDDDFD79A76B7AA2BBD36E |
CA5B6DA4FEA9C2266864BA6CA6A1686493A933DDEA8C647D53A93396151A7724 |
6F8F48B777DAB22986FB7BE48269DC239D6CAC938F68E15B854A1E9E4CDD5DDD |
93ADA99EDEBE89A9E2905040D5D55CC750289F89F244269048BB713AEDAACB2F |
F2919CA54B81B12075D2B0C1F521448C4042A405F120D1F1A4CA622F614B0DC3 |
180DE1B1DBE15442AD29A97D3E87709D5B0231D7283932110DCEE33AC04B0E08 |
6131E77EB3DCA9A916BC0A470EB4430A3AD20ACD44C75C9B260B83BCCCC10B14 |
45837CE73BDF89C28EFD5EA254B29A77B549AAE072AE5F88A1ECD92FC62C4124 |
ABF48A2BAE905CFADFFFFB7FA7AA391B4E15E59B9C05D01838FD9E6A087358AC |
88B57430897BBDF6B5AF95D36CB0BDFEC408CD622D9BE3031FF880F410F74558 |
937FC575A30934FCA3B49166CF385D6D14D57CA1DA051C80188AB794A73197A6 |
E298638EB9FAEAAB5309BBB59286049BA3A1DFCA3F7BE28927F8ED65975DF6F9 |
CF7F5E168C350A9FEB14E8B7D89A3604A122A164AB111A3C3018B7078E25CE5E |
74CDEAFDF7DF6F28BBAD1393D5FBF14D644D36DA31FC1462B9E851F66A4CC3E7 |
558DA2011991E2021988829465F6C8238FA0F264C3FDF8C73F86D88EB3C9050D |
75367FA72BF70CB7B47FCC41237CCDF33EF0C003A9027F44BF2ECBFEA3F82A09 |
33EA4A75C666D756C71D31D05F14B7F474F735B2EED67463F9F24DC746A7D8F1 |
A5D0694705DCDFB771BB5524678786D65BBB66987C70892F7D6670B07F626A4D |
5F7FF6E2EAA7B57F962E1958BDE6E5A1C1E59C99EEAEDE62EA1A7D52C065EFBC |
DE258BD79B98982AA0CE696ACDD873FD7D9DD189D5FDFD89B5C7D4D2339B6A60 |
CEE11B3AE8D0DC4E3BED4461FE7C072055241B2CCFC239B3ACA27245E8C7FECA |
3867266342FCC1FBE3B159F5461DE36DEA3D912A3F89F6477A967FFDD77FD50F |
673B5EBCFAFB7BC7272637DD6CB39756AE9E1A1F1FD472AF5D9DF2D4D795693A |
87FA7A1AA5425D6FE9D225EDC9028C2CBFA1BBA9F12D1B1CE8CF53B3D51E9C9A |
1CECEA5ADCD535D848FABC3B6F7715B190CED2AE9E76AB641F2B4FADF68196A7 |
95F2A99EA1E9948D65EDE1463E2ADF57DBB1E8D6D059D995E1018FE799B4CA58 |
A731DA9A9E9C6E4FE5BD13D3933DDD3D537ACCBCD327F93851CAC77C461D0240 |
2A8E74843BE655C3512C9E6C26E5054754F37FCA29A79C75D6595E7A0B441DAA |
D34F3FFDD4534F85FF447318492AA28B1379DBA3BB692EA154B9BF56A251C23A |
F8C45D6A3BD3F10C873DC804035D9E73BF3566F64E704CF5924B2E39E79C735C |
86CEBD08B6FB743B489016B44129CC007AA3F1DC76DB6DFBEDB79FF7A7E3644C |
08C05AC968CBA9582980E63034BD96339EB9630B9DAAFFEA3A4EBF5965DA9E80 |
37F1CA2BAFFCF8C73F8EB943AC38E2636B0B91059659C93D0DF288238EB8FDF6 |
DB694263C3CBA0741ED0F8006266B6EA52A86B72C7682B89198528552D499A05 |
CA5BE0D5A81AA71A189C571C58E0EDCD53C130AEBBEEBAE38F3F1E1962469A4F |
7EF2939FFBDCE7888DD98D364A08087D0C0FB857127D7949CFEBE2A00509DEC4 |
7D6502571F49CDC6473FFAD11B6FBC91EF702EA80024954B4AD819D3E8A367A1 |
2FBB4FB10DB5885AB0F71CC35D6681E54F3827FAC269A79D76EEB9E752BC6B37 |
9AC190B073B1A24D103074E4895389A0264C4D883E76F4C15D368CC35C1CC985 |
D173AA0A2B18773DB25B3DAF519CE752A1D3ADE92CE9A2F2057B170DAE373D95 |
77773799D03C590117B3363EDD3DD833B4786883DD76DDE3778F3D393DD5D1F3 |
4B10680EA5809FFED3931B6CB8F899E77EDF4E133D6553C266573E36516CEBEE |
060AB8A7A77B51A72D3DD1AF33507818DDE9A597FFB464BD9E763ED2EE4CF40F |
140E44E41F5858A000B220DEC5FEC6249FCDE1C98B4013CB09420AD1335F4E77 |
CF3DF7BCFBEEBB5308E093CF302BA131B78E5BDABD66CCBAE376DB6DF7F0C30F |
3BE61C01756EB3E58D48408C0EB5B6C7D907650EA6A0705BBB76A4403615C7A0 |
045FC83C4F9DC1FE81A2246968E08DAF7FC3BDBFB87B4A4E799E365BD4DD6EB5 |
B6DC74E3D5CF3DBB6C403E5AF6AE7DDEFCCF77DC29DBBE37CBFAF53FB944D2BE |
9D02BDD56CA4F57B0BB5D19A6A35BB7B9A52C659A3D355CCE9F3C353D3593EDE |
48A38D3496F209A9E422FC9FBDD06969228ADADFAC7BBAD11CEBA4910217D01A |
6BA58D976F7CD249279D70F249438B86D68E0C036E24B6A3C73173270EA554E9 |
57BFFA5500BDA6644A33C9E8A3E2246E4198C4A210B182E6B3668D2CB8F18CA4 |
5043EF2A14EC00A3DF5D4E8612A27D96BEC9F9A4D85177E4A82331D91B944BC2 |
BD8522E954CCC3FF99AEEF358875AAFC7EA0F50C83AA0F806C912D6B61831277 |
D38E17D059574920F74900CF3E41A84CB37E7A81A23932DFB923F21457137787 |
45A13538D021F0ED4CA926EA6FFEE66FBEF39DEF00F832F22E852041368B5251 |
8B456215E8286972E057AC91B784B5B20998640168244E5BA2C91C8E6606007B |
B2222E1CFA4FEA608FD3A203894472049703AD4C8219B143CA8080BF641D4A48 |
2EE0A38F3EEA508D1E61934D36D1339AEA4B8EB2FE290B55A69BEE22B5FD99CF |
7C06F493FEC9C83D154830772B7275867D5653AF58549211A78C8A3853AD9D62 |
7C53DB9059286E8E7F0503B1FBEEBBFFEC673F338302B82D1ECAF482FAC4208F |
54611AF408FAE48C33CE90FD6DDB8B5D9795D57D9A46AC5594AB435F9E0AA332 |
0F3BECB0EBAFBF3E1A0ACE88B3E7EBF9181F30433F9C885AA02E76BD254B57AF |
59C5057A7B06FB7A87A48BFBFBD675CFE8E485074C2FA3AC51FAFED35943CA34 |
EB79C58A9D9EFAFD33DD5D5212AD8D976F323A322D892D39BC64E9A24D365DF6 |
D043BFD1F78787D7B4D3AA5681C1C9713B87162DEDEF1BD24F365C6FC56F9F7C |
68C3A1F5A53B4E3CF998934EFFD89E6FD8E517F7FCAC6C019001B1A1A6D019AF |
05040ADBC57C2808F139BF6F8F19B331557401F3CD0F425F3B4072471E832588 |
437386219826148801B5C21AC98A152BFEFAAFFF5A46BD81D0A09064A13B5A58 |
F37B78D9B18BEDD24AC955B24FAC59AB71A7ACF9F56F7EF3E0830ED204172A67 |
7CACDD9A7ECD2BB77FEC91C7D65F3CD4D5D5E8195F2B3F7874CDAA6D36DBE4F9 |
DF3F7BE2911FFEF637BE363532B5F5FA4372F4FA34211A52BBD39375FA7A7B06 |
7A7B362B2354E323E38DACC8018F4E4DC8C16D76778DB40AF2E7F10C05DC91E6 |
97026EE7D9CB794BFE6EA980F585AEB14E3E3C393D3ED16A370BAB6EA0BFB4D9 |
2727B6D87C8B3F3EFDC73CC46648F8CDCEB6DA8B229E1C957154C059D5DC504F |
AD5590D074E3779F49034C3A55AB165BB2FE0487868C80E4DDADB7DE7AE08107 |
FAB72860EC215CC654226977DC71C7C71E7B0CE4172B45D931F2112616968F68 |
2DC306F39955640273EEB70584780494E197CC261123569F6606B1E30B45A8E7 |
2D1096A59344501D5D82DE8D545C9C14DC2C4D0531F0349354204AD505084638 |
1D1C1986E18251EA8E48C1C851D329062CA62F68AA7FF39BDF1850E302F1686A |
44051C593C53E56B42C728C97EF4D1475F7CF1C5C4AB703018862FC29CD0C8C1 |
195FCA8DB8268BABEFBCE73DEFF9D6B7BED598D9D937FD472F2F1391DBD8F82B |
EE7CD8C130741C2A2031071C04E4398E4A010D29DB1E6CBFFDF652C99ABD48A2 |
E2E66044508159115D774D5DBB6A6D9E2AB2745D1003142C3AE62391704E8D13 |
E1AE2E033F5C3BA4B33137DE3031B7DA08DD9DA9A9431A50AF18A1CED2FAFA1A |
811FDD5D26FE0D37DC00F8D1F29FA98BAC61F18D934A8C047FC0FA3BB2FDC8C3 |
BEE8A28B901876EBD76D7BC44D5EB5CC4B332B6A30AC905F0694CEB72324A64B |
30DEF0D0A2F58647C6B6DAFC15A32393139363E5166F95B0A722068307DC3FB0 |
787878B45DC2B625C0BBD3C0D2C5CBA4532727082C148FF4EAD7EC74F7DD7795 |
276DB8AB774C8A59BF2D3A1D35D2B20D37EAEF2F9B177564688FE669BA7FA0E7 |
8FCFFD6EF34D973DFDCCE34B96AC6B241CFD75D9A4BBECB28BACE03987CFE251 |
B661B684C6FC5CD05A30D9560F3CF08023C9C8E5F99C128CE8189B8ABD1F40BA |
127E246C1225058D20F5A1B691AE038F2066EC5BDEF216C96B7755F2EA20F5F0 |
E0818C72C67460B0C40707FB4BFC6727350A599035BBC7868707172F9E182DB2 |
E9EF39E0DD7FF7B5AF4E4E4E2C19EC1F191DDF6883F5BAC7D60CF4F52C1D5AB4 |
76E54B679F74E217AFB8A2A7D5DA62934DA756BEDC93A581AC31D868CA2290EB |
2185BD74E9E2CED4C49AD5AB27C78BA8499E1AA363F2F4DBA9BB39DDE82B1470 |
9E8F661DFD571EF074D1D7285BDD4C53A5029E4E5D13A931DEEE0C4FC8036E4B |
DCCAF31E1CA8D83457AFD2FB2263D49A469A107BC0CB61FE756C346F8404D17C |
31099466C61B3945DA1BB263A41A9F7AEA293A8BF9B045843312CD0A38569E44 |
3CA4669B727EA252117C8E24029FAC5B935DA65D8C4433CCF23626D884B0D2B3 |
736A06F19CFEA505F46CDDAC0F891FBA3DA24421BD5A2523FEF22FFFF2273FF9 |
492A73DE301EA7FF081C54C3633ACD8C6622DF492EDCE7C8CD98F557D8FCD3CC |
36760B243E53459D88DE750215578620015F7341B6418BEBB8EFABD00569F554 |
75F18B00375B60B2123478734D539C6DD02CB2D1500342502C137AD7D8171D5B |
33FEF380DAA27887FA9556444E794DF6FE6772C029F4EBB52D9242F121DEF0BE |
FBEEFBF39FFF5C43D59603E58ED3AC611F7CF0C172CE520918961568B0B47605 |
2549F800BA94062983C92D0849F01B42E597EEA861E8FB963936135D5043EF07 |
E23DC042A99795A6B41F9FAAC0463B749B3650C99363CFC781932C505638106D |
B967767D8486B17E5A0B021BC8DE58F8402209F547FD313879E2ED3CA3A97598 |
130799611AC64772843205AFBD7816E634E272E392A38108E3180F36E786D866 |
6B1DDAA774DF0D3658EFE597D75C73F5F5C71C73FC861B6CA467900AD0EF52D6 |
297AD8E48517ABF9ECEE19284DC2A523C3134B972C9F9E6A0CF62F7DE9A5D5CB |
976DA9679668D0CCEB01FEF4FCB31B6FB8714113B1E685C2D56CB447C756B73B |
9312F11A95266E787C7AC9C0D0C9A71CFFE9CF5CD4DB97E9AFB2387BFB64A68D |
337248C6B1103160E71CBFC18D3EBA9AE2134E38E1ECB3CF9EF3FBE6ADA47737 |
7279817202ADCD39E79C73D6596749EF6A3D76DB6DB7FBEEBB0F81AEF538F6D8 |
636FBBED369D4FE4E9EEBBEF7EEFBDF76A00B0B032E7F2EDFEEAAFFEEA6B5FFB |
1A75022008DEF8C637EA74A5A0C53B15DD3106938EFA7BDFFBDE6BAFBD563F91 |
2E01275C39FA1BBEF8E24B5AEC829372721A9EC281DEC191E1611DBB5C365347 |
5E636BC5365B3EF3C7A77B5A9D3D767BD5BDF73DBCFD16EBAF7A76E516CB162D |
EAEECAE4D569353B9DBEBCD19F35BAF38EB6C8E2C181A25DC40B7F989A683572 |
0D6CA0A7A74F5250BA3E6B36D64EC9EBED48EF8EE605146B326FB7DA05BD9596 |
67AADD9A2890D269A29D8D4E7746A75B53AD3C2B5BE848344C416394647B2D7B |
F1A517F32A1B8408C03CE73DDE069C3850FD11C988E1298B3973627060882CE5 |
55EFC29A4034599215701EB805CCAE87AD804AE0D06AB77CFAD39F3EF1C41369 |
84AE7D1BE114BA17CDE60CFB94D72B7578E38D37220528D3E761719EA01371FB |
81F95EB3E35B94AFC0D6E28251BA7AD0F2163925992249B4000E8BF029A1368D |
87B363A0EFAB5FFDEA471E7944BE9DEC5D7D53870EC1EA66415FF9CA57341B30 |
63C4BAED08B159E0B922DABF111A86CA95DC7FFFFDA15839FFFCF3757E5315F8 |
41194732CB1A8395C5622D038DC5F3DFFFFB7FD709356288ED814F693BC0F5D6 |
9E6DB35C596DE425E11AF25A66904481032DB3D76E01051CF906CC744802D8DA |
88A7A01AC7B80400E454EFA48AE0DADFC76AF4B16297929E908A9292C66602AB |
984AA4B19600B71EFA260DE3B2CB2E3BEEB8E388C6A3A46BA94C5B78A6C7FF8B |
BFF88B5FFCE217F8BE79208A7266A736B13503259A9B9D8AE60C3B982C0F7F72 |
DCDBA83AAD1DA94F7DD3ECAADA304583DD929C04030ECC0D91679BC2FA27A033 |
5CA3ABAEBAEA90430ED1EDB0FE5D2A9DAAF6181E6723104A66A491F3992F6F71 |
C776500C0BD5C51607BB4B6E4E315F59575FEFD092C5B22C8A62DC225297A61B |
45F8B8D5C90B48ACAED1D5DD3535D5921F363A3AD9D73BA86959B268A3D52323 |
CD34B07CC3E53ADA83038B25C4A49E172D2AA6A335D59C6E8D678D297947532D |
ED575D6A7A746274B06F5006DF4BAB5ED864F946139323AB56AFECE9818DB9C7 |
F0D4F944527C69DFC801928B7CF7DD776B73D00E9360DA9CDF277C0F53959307 |
3642E7FC3E048744830F3DF4D0BDF7DEFBC31FFE308400248FB1C538B4663765 |
DF344A22493F82F98DAD12A2A0E4AF464A83832070043D2F6BAF292ADE640D79 |
88BD038B26C7C6D65FB6ECD8A33E71C185E7ADB764E9CB2B5F6AA47CBB6DB7F9 |
B7C7FF6DFDF5969E79CC11675FF099159BACD7DFDD688D8E6CBAFED255CF3DBF |
E946CB7A3A536DB9B9ED34D8EC2AC4C074AB9915032ED2BE9D5C4BDDC8B3BC93 |
4D770A6267AD992CAFA92C4D669DB1948FE59DC9029B27059C0F17FF2D0A9326 |
5AF9682B9F98CE274A585D86D9D76A2FDB60433DC2E8C8F092C54BF4CFE1C975 |
F588D81CC67B9377D08E970E903BFBF8E38FA7D2C8F56198FD22FBA053A779E3 |
6B9E55E06FF8A6A4F11AD52B55B80F04A5858B21AFB87AB8BFA90AD09173256A |
A7CF4173A089B3B226D2BD77B08C8912BB5403F16A5AD3052234763BE2278E43 |
6AFBDD72CB2DD8191AAA3ED4B0A5BABEF8C52FEAFD165B6C4107FBB4A0075CDB |
75E6F730EC99C8041039D30553EB05DEB011FA504505DC5EB06DA25505694837 |
74C2AA709F985456A4E8B8E555119A5B35988A2E054A7607457816ED1969C79A |
0A741247B6ECEAF205A72C5D19F28ABD4B4F27C5F66FFFF66F7955AA2EFD2DE3 |
40EF756B8D41C750A3D5F5212C9481321B3497167CD54058EC167C56C83835CF |
F8AC46513178DBEE4C14F607D1386007FAB92C037D9318526CA57CF1C5175F74 |
D1453848A98AE4A50A274809168B224FE3D4534F4D5538D72CD31057C932FBE1 |
0F7F8865C92348A30345C660B5DE75C076BE09E9546D8FD3CCD41BC109DE532B |
68260DF292E0C22C696D529864D025D1A9C2CA991B0EBFCE24ED9E07D752EB13 |
4D97EEAB152FBCC4F249D32C5064666D9C66F186B39F8C8EB38B3CDF446CB1F9 |
C67FFCE3B3E5934BE8A745034B46C6A63658BAD1DAB5AB5B9DE93CB51BA990C7 |
795A37295D3D32B2747D09A0C9462673B233D0B7646242F3DEBDA85F66F8A474 |
F4B20D37999A6A6FB07E11FD587FC98AB5C32B9B5D53434B9A53AD3523A32B5B |
ED427A4BA98F8F8F36BBB2A969CD6F87E05E39EC55B1CF86668A6CCD7C8238C6 |
A952657F2C20B85D85C6FED029D27F23D75DED15C9EBC1586238732343E15951 |
D9C885CF570630DDF3B953F5EAD20E0041A0F5D61D5D3AE2820ADB1CECEF3FFF |
F33FFFD9CF7E463756A80DCB104AFFF0F0E881071EF09DEF7EAF5C8E4243CB56 |
EA6EF49756CB748FC4FDF4449624E9FA26C72696F5659B6EBCF18B2F3CD7D3C8 |
07BA9B69B4BDD5264B573DBF7AD30D06A7C6C69BEDCEFAB226BB7BF242024F35 |
A437FB5ADD4D7D37155A37CFE4FCCA039E6EEB6FCD76964B648E67693CE5D345 |
72A218D1CB053957A3A8186EE7A3539DB1E982FCB9931AEDD491206F4FB72450 |
56AF5C25BBB4ABD19C989AE854063E51201470EC4AC44E3010B1568717D34B84 |
EB415A01D281DDDEFE9F8DD9D80A26CDCAB31ADA83AB676EBC5895A1C53AE288 |
232EB9E412AF14DF21D780EC935C8ECC652E19028499552C51D8E0F3455C6AA0 |
159F7C6364CCAB60FA910895479B2E5056E7BBD454141977FD57CFBBEDB6DB3E |
F1C413B45FD4D7DC435317A76B6704003B7F69993BE71D99A55ACC3F969C1973 |
8B03C4236455B38D54B9E90415F3AA6146ED169856663241675B34C7642AFA46 |
179183A82F3B37B4EFBEFBFEE8473F2241EE322DE293FAA68E61EC73C5E06B2E |
D0C22F1B4064CDC83B1A524EA8CF34DAD88284829C8A82854623BCF2CA2BE5B0 |
1A306C19885EB1691B1DFDBC6A2BE26080DBB2B912A9C6C2168B7660CEF2D6CA |
AA96BD1C10C8A752C8E9CEB64B6ADEB0FB56595BC30C4360D9386A70B5DAF0BB |
EFBEFBB7BFFDED549101D8088B7120A85DC05E20E78D7B8D9883545105A4AA80 |
1065CCADC98FF065E4091E91A124F3BA77B66D6BD3172D8B547963C5279916AC |
7F627C4AFBB9A7BB4FFFB77CA34D9E7FE1C566569EAE7CBABFAFB75DC04730F6 |
8BC8A4D64FAB4ED8C155AA5D5D3DCD46CFE454BEC9465B8E0C4F4F4DE44B976C |
A46D3CD8F3CAD1D13583438DB189957D03EDA9D6AAE9D688946E3B5FCB997737 |
28DEC744425C2DCBDF766800890F1A231ED40E5A40D4D00D29446C583C6CA5F0 |
145D4636F239DEAD76B37E25C7F7FAEBAF8F1C6959451393CF6CD542A3728C6E |
5BDF46D999AA7481AE35B5D08D19F8EC4841EA84ED4C6F031443E48C2D985D9B |
594F4F97D4F6D2A1816C7A7264E5CAC16663EBCD37CB5F7A6E6A74BAAF993618 |
5AD49B6572510B0B6370607CCD70B3A7BB444EB51B5D59DFE0A25462025FD611 |
5DB278E5DA61ED623DE4AA91D1E189CEFA1B0CBD383A225F7CB29D8FB7F295E3 |
72D47AE5316B37E5253449A2533EC437BFF94D73DB02B265C0BACBE1871F2E97 |
0E7621F81439F95AC7547600B4AD0D05779A590E3F5BE42DECF9491643F4C369 |
744F08594EB015DE78E38D5A65F2466ECE4ABF36237490D4EDB28D5A5E714C42 |
87892302F501EA04B6E4D7BDEE75BFFAD5AFCE3BEF3C2D19127381714239E744 |
5A5EF5CE8283C27E8C35563EEBC5A5E0D56384A066169E1F6F5DF7E8753C56B7 |
7EEB5BDFFAE31FFF98B802CDEFE6BC0ECEB1CB3C7CE20C4C7198D42E20F13924 |
267904C70CD22C860D0DE3A73FFD69A7EAE7161D9DF8F278AEB9E69AA38E3A0A |
0B8F234F99227FB51CF7C0B45175C069C24D57035C493991679E79260AECCD6F |
7E7341015B66C4B5C9B51C8E139811222E4434FB6A3C274809A496F91481311B |
65163B366A2DB4793A65477A22A8D4FE9A01C695DCA96414D717F409D5475601 |
E054C0421375902A02430AFE0616AAAC2252045A65A00C2073A3996A3D286BC7 |
10A1E41A368C0373BE46BBC18F6C72923C7434E03B9A28DD4E97A2B78466039C |
23365C348CD8544E36A7C087836DA76F4AD7EAE79498823A0429A9D990BBEF5A |
357DAE2DF4C52F7ED154044580CD4A25C2103CDC4EE8B899AADA290C13CC7016 |
A330F9FB8BF87357B33130A04D3076D9A5979F70E249BD3DBD9353D38527A36B |
4ABF34F4FC3810DA0DEB5C047A58DA502A6041A9B16CC38DF7FEABFFEF3BDFBE |
7D4ACB93FA36DC60A389D13E29D3C9A9910D371AFAFD9F1ED964F9FA438B7B1E |
FBDDA3D2A42EB864F679AF15027F64EBC61C9E29F041C6954B55B51F08678C2F |
80FB5E5A6B2F17F22261ED3153B71041F91C4BEC3B226F263B053D912AC4A03B |
E56106EA2E3864BA88769E8C2CF434952D589A4804971ECEA730CCEED4A99A84 |
A3B96B444BA0066AB93104F7809E65516FDE6EA54E7BE960DF92FEDEAE56BBD1 |
690F35F366E1DEB66470F67535FB9AC5648E8FB5375C5AF2D51535BE991CE03C |
6B760A047B9A6A74CB02945E7A79CD9A91C9BCD9DB5C6FD9068F3FF942EF0683 |
ABD68C2E597FBD675F5CD56964EDAC393ED9EAD6FE999E628FB9778245006588 |
60A64CA0C139D7D6979E76BF3622C9B1260D4D4C4C18A16053C376F402F3F9F9 |
CF7F9ECE4B6E8244BA97BC1126512C50915C83DF2755B5893534755E110412F6 |
4855ABB8BCEAC3A33FC17247E443F7D545BC7FE61C670A0E652390EF6B72F45B |
8C065318D65251D134995D20B74005546C4E67FBD5BDDEC0F99B3F6476BFFAD9 |
8F60F96B06442F19C211E3C6E1074B006497738A6966358BF42210C8489092E6 |
8A1C30001CE8D86C0387890198F2890015FF756FCA14A20B26F4678AB0339C54 |
62FFA41288072623CD8A5B7A5DCC6EC89CEB8732A62FB8E082F7BCE73DB2EF4D |
E6A3BD071B52F49279A8D90DA79984E8806117F2435909184C2E3CCBABF6F0DA |
4EBBEEBAEB3BDEF18ECB2EBB8C47A6AC88F927A88041C6A9F4184CE792850662 |
69162A9E23CF71E0C83B95EE08B06D2F6F061E369FD926D2756536E008F698BC |
48AB09CB8ACE383DBC67BF6C0EEA31A51375C18F7CE423D75D775DAA88658E3F |
FE784D850EBB11D16926AA8E616756458D8A20B453D146A6AA288A308BBEF99A |
D7BCE6AEBBEE8AA6A817B2DD996E3628C893F86EF4F56A2AC73A79A7D9E82EBF |
A0156D15FD7F5BDAB85AE0868E9E77A7996560A8E1540E2D5A9C72F90A93AD4E |
BBA8506D143D940606FBA6A6C69B5DB96EF5C637BEE1273FBD73647822E672E2 |
FB54E565D9E568689766827727F6889F1479D49820C2926624AF51B71B014190 |
0DF21D7DED6FFEE66FBEF7BDEF45CA3A5EB10A882D8E8189B5EE7E1A5B6FBDF5 |
8E3BEEF8939FFCC4BA99D30E6E93B580CF5D9316690DE6DC2804DC905954BBFA |
5EFAAD6E71F4D147CB5D239645AC296E5C9B7E3D05D95957C1F9D94E4B17752D |
E9ED6E8D8D4F8FA5C543597796D65FB478FD458B5AA3A3AB57AD1E1AEADF7CF3 |
CD9F7FA68013E78DACABBB470A78AA5512B0F4144C59BF7B7ACD365BAE373C3E |
26AFAABB7F60CDE898B4ECAAE9EEB6D474A36B786CA2E8C1D429405B834383C3 |
23631FFDE847FFFEEFFF5E03E6984574438D19C661092A5039CFCE4DA6CAD0F1 |
2137638ED34856870B6885487DA799A4F634959A15FC05C340D11A4B89B2D11E |
C82B08A867D882559F1C71C411B291E5279D75D6595A20FD0AE19E57545F46FD |
2C0C8A8CA89FF8B93901C80E12AED4B67451662D15E53673A87F6CCDC81233FB |
BE3C324C498833C37FA216F732CD37D584EF7C78233605B5873C25E76A715473 |
9A6B8F5F83EAF06554608CF9C5C7895347E4DF42267626C64034101A905AE4F4 |
9774968C3665874FAEB7B4692BDA552BF114E2E129240E6BEBAE7BE9B2D24664 |
76755917A1BAAA273E057E88AFE01832710E5835F06BE9815153CC4654E9CD0E |
3BECF0F8E38FA3F3E22A58D6194EE1008CCF02E1717BE756C3B35781F58A077F |
ABADB63AE8A083BEFEF5AF533864EBC17117B05DF19479D1632215939D6813BC |
A42C3AAB832115337AF64BE38DCCA1C49177224C6F749CAFBAEA2A0083FAE791 |
471E099526D65B61A4DA48C427C8AA2691760862CD130140BE89EE7187358DAD |
74143BE53F8B29EEE9EE2BF74A9A9A9E2A888B52A7DCEE9D5864EDF68D7A78BD |
4701F0F0D5AA37A469CAF846D127FC99679EEBEBEB613A5872B9B88D992D4752 |
055143EC1AA4CA8BEDE8B23CDDDA4514F7DD77DF6EBBEDE6D405A65FAB7AA552 |
25B3D87959E5FDF4D34F4781429C0134C409279CF099CF7C469F48526BC34921 |
3DF9E4937803A6968DC95AC8C75945ADBACE00F35CF4501C18D0B600AD1AE98A |
6A5A673E41C695110A3630B7D9661BF9D3A6E764DACD39373BA15258D945FBBF |
A209E0D060B70EF7D4D8D4D2819E6DB7DAFA89DF3DB664D1903C8EB1B5938B7A |
D2261B2FD3659F7E6ECD661B36E80F29DF576F3A79D6C94AB3BD6FE8A597562E |
D960BD3F3DBF6ACB155B3CF1873FAE1A4BEB2FE97976BCC8A33FFBDCB37DBD7D |
1393138D2C75F51685CE7DFD831C033DBB5927B3D08DDC92913043AC3C495526 |
468B026A3DB2A1217CB38A41D74E8619B2E69C4FC2DAF0ADEB6A5B6EB9E55BDF |
FA566D06F9C4A4D068958135E38E349A64CE363E440C3CA49939697BCC4402BD |
409C172287045D16566048BA46D523C15E145E02DD4FF520DAB1B527AD5DF0D2 |
4B2FD5667EF5AB5FFDAFFFFAAF009E41472F1021D0B1D21B734E5169CADE860D |
D4FC500BD4D9D7E2C679D51E1B601A0AD8A1457BDB6916BF553EB388255E10B3 |
9BCC9AEB3BE7CB35424F68AA00104C55D06E1D9B15B940007450C45022C15444 |
922CD74469E7E8AFE456D179E8AD7FF8877F38F0C003ED2CCE56C078113192C7 |
15E0FEC4D6D127844C30136BD17E6BFDDD77DFFD9E7BEEC17D2BF0100000E1BD |
494441542E2771065D01D577DC4E7345372453A8220FF7DE7BEFBBEFBE1BB9A7 |
0FA9BD36AB0C48A53433BC1AA3E2ACA9F947E7EB9E942A3235679AF509D1C154 |
D51145866D8A9A2CC73A55BB435633E2FE624E2A4EA6C56C0CA2B87F83199052 |
552BAC7F9AA1451F7EFAD39FFED8C73E8606D142B8F4068D634467C645232B77 |
A36AA41C63FD9121DD23E68477AA76DF55B36B4D59A1B0C11DA0897529B854F4 |
570AE62842C746C30F6676A47A2597748B55ABD65C73CDD5279CF88972FA24AA |
B4BDB4DE65B7D112B6A22B4F4C90F59C5B010325B7C0ED842E8A5A276D470AE3 |
F41432E21E7EF8E138FB1A92A6D5F40898510639774AE23747BC359B3A2A7222 |
D1EE8818FD577ECC15575CA12DA2BBC01B600FDB8CB8CE55C4B2969A66C5C3D6 |
145D7EF9E5175C7081E6CD9C004EB72C2010B3AAB37AAADAE4E9BFAF7AD5ABEE |
BFFF7E93C44A2B68076BC75C7DF5D5AC57A447E09F8BFABAC727CAB64E033D5D |
52C61353DB6FBDF59BF6DAF3CEDB7F985AEDA1FEFE25FDFD5363A32B57BEA43D |
B77CE38D56BEF4C70234D8C9476544E725B8B135BD66B83DD6497BECB5EB1D77 |
DDBF7CC38176D678FEC591ADB7DD5C771F6994E0D5F65419145DD5DDD540CDB4 |
DA05FE80E242824EB55CB8178E64812607E60ACD8F3ED73789116176ECBCF3CE |
7AAE071E78E00F7FF803A83414A49F37550180F9CA6FF89A3BCE6241A351ACD8 |
CCD7ADE9D596A6BD2E9A4093FCD5AF7E1543673EC549340C09EBA0BA250276DE |
7F8892250080390231859732F6C1A59384E36F35A9A7D799679E79C30D37BCEB |
5DEFD2B06DC691339BF3BE189DA96AE745D620667910942E829FEF414C709102 |
7562A36A4DE8C03882D575DED9CC1A0F7F27556E6E4CAF98CBC57E1BD31513C0 |
8E225848D2E0DD0D5F3B552B40BDA7F88AC2D6C1F24535AD4433F04C6D575263 |
FA93375E2A03D4844950B7DAE7EC581440ED307A1332399A676DF8584D0E7004 |
AEC4148A6ADCF69801180882CDEDC236002B6F7FFBDB7FF4A31FA14D63B4C39B |
872BC8E6909E267209020E618E2F67608A39120CA979FDEB5F2FA9EB32933C94 |
1ECDA980795E0D86041F66A50B73B7DE7AEBD7BDEE75B7DF7EBBA3FA0EE3D5FC |
57FCFB48BD6E0E7FCC14CA3E990AAA9FE315B82633EF18B81D391D769B022C9C |
870DB6C3E4625949CAE402F47553E01BC48003720AB884DB23BFED6D6FBBF3CE |
3B8F3DF6586905FD095B490F58F5349C519CA0BB22B000F8107175C20C128057 |
BEF2950F3EF860750CBA4A18F7AAAC21EB66E961871D76F9E59715CDEA3A8503 |
F1ECB3CF1728CA66CFD0D0E2027698A6E2A6AC613E39B120001D31883DBAC9C3 |
6BC36990575E79A59E2856975BCEA6D2F165B5B4D27BEDB5D737BFF94D04CDB5 |
D75E7BCC31C77074ADA48973BAD12621BE7C66E586B36E8693705AB06F0892A7 |
D2429799ACAF69B1312C6A3D46D885F3454DC92CB8FB0DC1222D99361673627D |
06B4275655FAFC1766534F5769EC6BC7A4EE666AB6D2064B966CBDF9668F3FF4 |
485F4F5767AA95F2CEFA8383CB37DA70727AE2B9E79E5FD297160D0EB5533E32 |
36DAD5D3B778E992A9E9B62673A2BB6B64B8B5E9E6CB5A297BE6B917F4F093ED |
BCE0A25CB4448B42C5616F6F77C9722CF12DD3A120D678FFFBDF0FB37C2A0324 |
E496BCD19979866D0C0B08037C657D8DEE757CC26C9B5866CE10F4021E1E0ADE |
01318957AD08082CDD1A7DC651C766BDE9A69B3EF4A10F69D7716B1FC248DC93 |
074E2E933F532EC9ED5826AD35810AE3E7171827AE188513AED66857AD1B3506 |
6D602BADF960681007D20A97D92664B7C07DF55F69EB430E394463D662E911E0 |
7FD060F444147BD0FE7D010F9E79D65FA503B8DD9BDEF4A67DF7DDF7C20B2F74 |
04885D4DB8C2AE6D14E82C684C4B71E8B0749D02B33D5D03C4441C964F905EF2 |
2E28D3825EBF59360625D7837D0F3EC305AF1217F7DE7B2F6B6149C2860411F2 |
EE77BFFB0B5FF842B403F085DC8D270FA538C6D3696E5994A81A61BD666792A5 |
629F60766B0EAFBAEA2A4954492D3FF5C73FFE71B98C279C7002210A660C3963 |
166BB04E464ABBE09BE30666050382F8258371BC1DB704EFC5D1B5146A49BC8E |
F385A001C6E27EA4D05D06D99E02B44236C12EBBEC72C71D7770232723B0095E |
F18A57485B91D28E7907EC2479D5BFFCE52F63A839C2F2D18FEB3031155B6D56 |
B2F43BA2B3FDF6DB3FF4D04331FDE4102333833B2A65BA4E1347C59E2A6FCF09 |
336C165D5757C1E6A5F7A71B0360A54AD668BA3194B473E4B5CA5B5D3B3CB278 |
F1C0DA35635B6EB9F99FFDD99FFDE217F7682F923990C12275A25D22E544AB00 |
5970E6CBB5916BA2356214FCD34A9108B365474D0DBB65A3A962B57E50C1E9D6 |
C8380C13EF2A6F1A0C284367596F2814CCB623EFF6ECB3CF269EC06CB84A2185 |
86B2F83A5FFAD2973EF2918FB0038859C54E993EF0A804E37A20DF262AC50F19 |
B64E8B66F2F8E38FD718F6DE7BEF1FFEF0870B83629807C45024634B55188A29 |
7502C2AA5D93CCC62A5457D12DB8A7DCD0ED2EEDCF76D11750C35DBEC1FA5393 |
E3FDDD5D4B0616E9CDEA975737BA25DFD7EF0CAF6C16C2AE21F5DA3FB86868C9 |
E289228CBC7AFD4D36DB73CF3DAFBDF1EB977FF6E24F9E73EEA2A5EBBDF8C24B |
FACE58BBF38A6D573CFEFB270B620F29733A3C77754D4F163EB1F7B19BD035AA |
8EE27166524501A66535C3805B20B4AB8EADAC2FA854AE5603612D10D23756D3 |
69369F1ADB7C98C68E5E6277C26B86334752A32652EDA1F2A4368C8C7425E9B8 |
D34E3B11B0C1885C40813566316E223B6A8020C91DD9079FF9CC67E6BB0E4428 |
A67135C873BEEF23949D044D8199447ECF4F7EF2133618EC020B84A04D9741F1 |
3A621AC0BF315C298473B380198EFF8C5961205A9C08F68CA1DD11FF1155AF3F |
2157AAF7BBEDB69B9680343F07C7BD712C0DE49948A5E58176430FA2E3A6EFF3 |
08185B10C84867E8737335A7121762D59B87D29ABC625436864BB611EE3558DC |
A38F3EFA9A6BAED1871A06EDAD305FC063EB8E5A44495D4AB10980BB9CDA0E89 |
B73A6E430C20A70AFCEC6E25141D3402BF26E22592DEA38071DE382C72BA6473 |
B8D1C56C54410D84C51B762F617059B77442C42EA40ADCA15C2729AC05B8889E |
5D5F63B953204BE0BD54E39FFEF4279E94C09B513B359B0C9C39481AAD9DF692 |
161181A3D77EFBED27B1CC6EF10620DE76E8A1877EE52B5FD1CCCBEE39EDB4D3 |
D6B1FC334D5657B13D4016CA9022F38B0404163D84F580C22727C75BAD4E510A |
DC9681B668F5EA919E927063EBADE525FF017BA1746E74DF0E116C302C0082AA |
32BE29D40F8252123F4B599EA6D7456E7B1B9B6FBED9134FFC510273E9D2C155 |
2BC7E654C006EBB30F9862C4F7B9E58B82CB934E3AE9739FFB9CE6E8C0030FD4 |
C675AC80B6E460CA8D6220AA46188A3A5D22EDFAAFBEA30DC197654695E1F72E |
72AE86B65A6619BC8A14B061E8B899DBA81D7CF0C15FFBDAD7F2B252029E6102 |
59BA1AEDB25385DC4EF3BCCC548001D1A8E8F7B8916F9D952CBE663C465451AC |
A20FE1EE2896B5C035A7DE9EEE9E46B3276B2EEA1FF8D3EA17A5307B9B69B0B7 |
68FEDBEEB4B26671AFA1BC48F64FB5F26677A37F70A8D95D142AAC5E33DE9A92 |
97DFD7D5DDFBF2EA357DFD83A3E38569ADEB4C76A62EB9E492633F7EC2B2E5CB |
9E7BFE457D7FBD22B5B3AA591055E66E604279BBE11EA825C35210D9FA9AEE75 |
E491475E76D96558CDF03A91FEB0F9982A746504FDFAF3F9A694650297004400 |
7D0FA824521AC1F2E8F3A9EFD321AE965F4C33338E48736292AE5E23C9CD22CA |
2F7CFCF1C7237BF39CE3ACB512C1FC6A578D75F38AF2C9711D8BD79A2B6C6689 |
3CB450C4A39DF3BE902CFA9F923272B69C2900B3E3468A31EF335B01FBC80057 |
D108F5EC24ADD9C6766A3B81867DB634706BF7541156933376B08A13112721AE |
8853CB0C3B7A2366BF324697F41320125BF69A2E7D689E61FA356199B9BE8B4D |
6ECC546CF164ED9B55658A761FDDBA27C2DC52C5666AA6017C24DBAFA9CA6AA3 |
5D70D3DD409354A0BE0F63B94D0AFC60C6C3CCC741FA8553DBA978AF5C10886D |
813DC45D28E2689464A5FCB6D6373A2E84E1B41C0472CF3584B94C10DD8EBE4C |
F6716376C92FAC70F60C2D49F024EDEF36673588F4CB7022B47B0A1DEAB6DD76 |
5BB9D7C015991FF45D210F4B6A0E208A24D4C8356450C3B3845224BBEEBAAB1E |
0C4FCE530F2D1465BBB19F57EDE5AE3BC6BC39FAE13658EC781C59AD874C03F3 |
EBEAE2BBEFBEBB0670D5555721DD9CDA7174423B43FFFCC0073E70E38D37D205 |
3A55AE3DDA85BBBB3450F3223FF5939FFCE41E7BECF18B5FFC82ADECFEA0AC9C |
1B3D693AF4E0945739C682818C0675ECAB0670778CCB0E592CBD90C3BAD75E7B |
7DFDEB5F8FE64BAA42A0EC66CE30FB0F2BE4FCF3CF3FF5D4536FBDF5D6F7BCE7 |
3D146F68E68DBB89E42F0CC36081B86BED51D147CF414B864DF44CFF8589904C |
33EE85ED000656447E3A25D9597FD18B97FF76951E64D69ADA76C5564F3CF194 |
6EBCFD762BDEFFFEF76B0EF5B0CDC971E06CC313EDA543BD6B86270706BA245B |
FA4BA8F0EA35239C89458B07D6F193347B3990C8884F7DEA53A79F7E3A2922A7 |
039DC063F73BD9533B33FAE4CC33CF945D053692BEDC8EAFA4D0A40C2A5A176C |
A01E107F0888D84116F1C43767A7EAD3CC3A4B99776F7EF39BBFFBDDEF9293D3 |
E35C78E185A05ED1A94EF0A31B6296B459F51C8C8AA4394F7FDC9A93C48736AA |
AC517864F49691C37A2F97542AE17FFECFFFE9048D73A8F6BC1B552B62227EC4 |
815C2BE598ADE704A9AA89DD669B6D50B79A344E9C233DDC6B3EF737556031DB |
079E8DB3CE3A4BBB4B066E5E91213BB3607046166A0EDD1062BBEDB683871520 |
24C542A807835A5C2C10718E6E399C667AC69EF65499B97A5ED9F40EB4A05951 |
EDB8137AA8F7BEF7BD7280B41CB82E3A9B1ADEFEFBEFFF8D6F7C0375CECC5F77 |
DD75871F7EB8B933AD30781CA23BBDE54B13AB1DAED99654944F89D4226A98AA |
CC77744B8E3BEE380D00F62E5D9F64BCB1F15821EC7947951A815B26722312D1 |
A12888738AB3EB243D33198D21D7E6DA6C9AAD20C91F71BAF5279DCA279E78C2 |
7A84A7C07D02844109B231408628B3E7C146716C0989E7815C997DE523DCA8C8 |
CCE3B18A7D77F0B87C46D80F5E5F0DE6B0C30E2359E6426AE4AA6EE4A49584A4 |
961BD3276310B8C95989CAA3218C3B0760A699FA188371F68B55C1508D46A5C7 |
AADBE3B1996C2C82F8F9AFAEA01BC9522361C6A13534D107E335AF79CD830F3E |
085F0926A131B10E0C3A28AF65404F5B2BA36E63CF13C4AB0B039C99F0E16F04 |
BEB754C11F5CE28D70749D09A3C2E28BC5A07E5E365694B93557800BFA2CB110 |
46FDCDA980A35C70A8242F7B2C12B13FE4904374AA7565F985F24BF8EB45175D |
24BF13FE714E3862C8342E06BA0F0C16C417BA7A4F05E590F89426CE5AE353D3 |
9DA145FDC323E34B160FDABE5EAFB777F5C8787757319913539323637A70CD5B |
3AF3EC4F9E7BDE859B6CBCEC831FF9F0E5975F3E3A3EB5C51645EFB3E9A9BC26 |
C4A1F92567C1D85057555C649A2C0327D0F9609270322BE5A360C6B11599256D |
C282CFB2ACE181BBC0FA5B3BE14D6F7AD35D77DD656E391F781F486F8CAC62E4 |
B77DE6B49003A712C7326D77D965975FFFFAD7D086D47AC5D8D867B67D689D0B |
C802C5CF02E54635DFDDFF34B8CFD41FAE3E4AC17F22A2C8F77D7754AFF1E484 |
100D2EF32D50667113EA255343B623CFA233A569FCD39FFEC4D4C558B14109F3 |
3D57AAE8CC38A4AE87E6BCB325D22C0232184BACC5757D7E7ED45147493FD11D |
1D8613D28791FC0EDA139715111A954B20CD6D34AF45734C21A1CB29AA06FC4C |
D0283E5156E26E00B19341A0A4B5ABECE89795BD142521A39E0373E454ABBE09 |
37DF69A79D46771DAC647D28175616A73E34F5B4EB882C36CDB941ACD19C94A9 |
42C63130965592501A5DAADADC0F7955C4E1885AAD0C21D635717231FA238ADB |
780B4C93E8EF7AFE3DCF2C9C0CF18B2FBED8C2594F417EDD791FCD2A36A25E94 |
C85B5FEA9A72EA402FD11F85A403C1BFC62CF2E06C16FADDE7946372E9A5977E |
E2139F700B3B92F4CC808BCA4C8C15EBA6E244A13BD6B555E60F0E2644748FF6 |
9346BCDF7EFB49709B216F016A3AE3B909F4F1DEFCF2B814583714C6110E220E |
46D5500CD2BA042D55B126C74C9AA1CFB3EF8E6BAF073EFAE8A36FBAE9267C56 |
F06CF6FCF493238F3C52721F28A3C649460417D0FDAAB4F0A9A44F329B95EBAF |
B07A9CCF48A105ECECFA5168B94C63865CA3B808EE21F7E9D478489FE8A9A53C |
0E3CF040F94CAEA3779A765DED764845581CA42AD4E69C0743725706875ED937 |
2E5A77CB1D742D51F1B7BCE52D77DC718761DBE5CC8F34CBC6445D65444BE207 |
4D2C437F62A255D676D30417F85E81D2EA6E66D3ED62644B962C1A1B1F9F9C6A |
4B43AF1C1EDD68A3F5CB26B8C5140D2CEE1F1B2E365E56F605892462AEB837BC |
D9AEA1432C18A43E09ADAA055E349BD8997955B9C15641C4A062211222A0E430 |
8F33373EF9357602EB5D2FB74DA5684E11F5310CDEB2862FF08CEF7BDFFB6411 |
E755C7CF583663A4D87C20BBD88F21DA0ABC90053E5C363B9849D73ED6E2C05C |
9354A54E07C601F346E5928CB6CF7FFEF305A4AE129759E8880C6788264D5FFE |
E4273F29ADC00C585FA62A23BB4033095AE651524F0938CD5C39D17878B8BC1C |
70EC215482C68CD78890C1BBA5D167AAB2B9160B0E83A592416F361282FD60C7 |
23AF1AC7F9DC11BB32188ABD148F1B9E89CD0236A7CEB54ED92DB7DC22F59995 |
2CB629F0DFE1AEE056523049AA956A63F02BAC635ED5D7BA93A91B1D4651C961 |
27894618529AE9A1871ED2459C12AE2D81532AA6E4440AC1F296AA460E043E71 |
67D96F1151E4448999DBB978A3A2408EF8473D8BCC569D68CE78A36A70022709 |
0118E3E6CCEC51E38B6D547CBD08C31827778ABD86848DB8B068D1D6F0255108 |
6B4570764177DB84C5A6F160ACA40C35903CA1908FE04116ED5C9E0A41401736 |
7DA2FD015A327A6CB35F8ECA5A13B884E0E0830F960AD76FDD98364A2B375BC5 |
26025067B999551D601831C7A66682611C7059F64A0CF6027BA15C8711FEFDDF |
FFFD01071CE061103D40BB4BA06B2AD96D59281922501F417731B0E30D94AA70 |
3D290127535D72CEE0F18750C0663B8B4230869ADB55672B3B01358488770C15 |
A8BABE85F86C73C1BB90D81D868E26EAAAABAEFAD8C73E46DD8B1E900E2A06D6 |
EB229B6DBEE5D3A5FF3DB868D1E8C8C8B1C71D77D59557360A013ADDD32B2BB2 |
1C7C9EFA8A9850E19276751A9CC689E9726B56BE69D64CB90692A5ACABD1ABDD |
5978D5A97FD1E0F89A7F27C74855C932F5DC786644A51C17A200ECAFFFFAAFFF |
F11FFF51CBAD2593CAD4E31024C005A19D941E4A3FE7F048D6E88924358035E8 |
9A40949D2FD0B6D79891BF32BDBFFAD5AFD2A650D290996F575D9C91D744A880 |
EC794B38F5E57D088814BFCD76009C56FA9514F097BEF4253243264F9D4FE3D6 |
5EB351B25E771ECAAD203A555F7422631A838EF6CE3BEF4C43E2152B56E84F1A |
008688637DFAADF6863C5A8734B5379E7CF2C93FFFF33FD734120A06984906A4 |
55755D741C6836A82D9FD97C70BE4773A4314E782CDCF48601AF60E1A80FE585 |
4BF74B1AD0D4D6E174943163466E9201C55BC2494833D9F1E22B0BB549967B0E |
8F6B0EB5FD1CCDC6CA77E283952278C36F21164DA58EE7D17440708CCE3FFFFC |
B3CF3E9BFD73FDF5D74BD65B9ADBDC217A6C411A75465682F03521871F7EB8BC |
584960694D9D47C83A0C8FD7C5B5E1356CED81D1F2E56C0ECBCD009A55DF4090 |
47455162E99A4B918402D44259BEF6B5AFBDF7DE7BFD8035F6348216FA9AA459 |
5995BA0E558E55CD758E3AEAA8DB6EBB0D73045582CB4E958ABC4F5D210A7C9E |
57173FE490431E7EF861CD27F3DFA93A1BDA0240967AC0BA2C9EB4215A0E6CC4 |
C96C84A64C368FB04D0978E4155F8DFE445F13EA68C09D582FB0DFF465B97FC7 |
1C730C42E3CC33CF5C878236001DA7533796EDF9D39FFED4140DD21F04D017D0 |
C1F879AE29C4B4A9A92B6D1A0AD48C3EC0B567D6E2C563D40B9DE190AF8520BE |
A3C616B9F84D82EA4EDDA61177DD954E269004CC526DAF830E3AE8E69B6F3665 |
922654572692A0F5DE7BEFBDEFBAEB2E9D2EAC48997E0F3EF860ED58D622814E |
FFE8846B8BCBA1F48E8C638BDB48E3D717A4F00CAA44A0C0A2A25B93869C6FFE |
8928186A68EC9246ABFDAA39D1534B8BE365A6807877EDA6368DBE1081FE06F7 |
97B8B934B478F1F0DAB55DA5D95858E2A3A34B365CBC66E5EA6611AEEB9A1C9B |
78DD1B76FFD53DF7F6F4F70EF50CFDEDA187C8C0D749DB74B3CD4A04D66A3DC6 |
D8F8DA75D8FDB5231B2C2FE829F2B24B562A3AFFFE7BF30CA769A52448E681AA |
48556109615E1A1598F99679B0D4D083ECB3CF3EDAC635FA7E9E1DBD68622C18 |
82E8C40CD686358D7813B805F045B8CEF6DB6FBFC71E7B687D2531F30A00EC33 |
95CD240C89100A6872D933F0689AC8C5C1D52CC07AFFAB2FF801708CF6DB6F3F |
C95FFC952C3459D1BDB4E2DAE4B309C52C323CB7C4C9FDCD3901385C9CE00161 |
303D3EDD5C606DA48F88F7EAC2E1340709B015F42CF48CD327F08CE2E37A4858 |
C95A0B60AE9E46D78B732A4DA0C130DEFEF6B7CBD69425115D40804B6C48AA25 |
517256C07E43CB07FADEC8A3FDEE77BFAB45941D2FA54E78135183B34E3016DD |
0C753333EC40A8DB05A2D70D0EF0CE81DAB6A0AC299D04C40269D7B244F35960 |
3E18AF8E7F000A8B651A314424A793AEF5711D89C033814CAFCB69D81E36AD48 |
CCE1C67029D77A19E91673161AA744A2F4B4EBEFA3ED48DB256D214D827B35A2 |
08F119DC83D27701E5EABEDDEC4C7605BC87451FF1AA0F87B36C9A9CB2E96D1B |
19D8151A0EC57968549CE46C57FA8B801372797A24354B33190F53051264AA65 |
7990EA655AF4CF7528680F2BAFAA177475C274F85E2C9843D873BE580C1C6D36 |
1CD6B4248B269181E298237D38962686C5494D213DE6F9E2BD3F34D8CAE12007 |
5A3184755CF527DD8B002043A25A1C162AB632B30F9C9895F664D582726CE508 |
0699532CE276B80C1C27401F522A90CCFF5911E9A52A230E842AD61F93B138F0 |
C003FFE99FFE893DADBF6A7FBB397CED15CBB11AA1B9A9137B06FA73909C90E6 |
736D2C8D96F804FC4D5435A48A233A654D5A77713504496F810F18C3274EA530 |
1A191EDE70D9B2977450F3860B81BA0B177C4A7E4A5BC2A5BF7742EAADC40F17 |
F5704FFDBE777050EE6D4FB68E51C1C173AC040481D1613C97095578767D47C2 |
45C735AFA0FB56848CC1A94A3603AEA18D3916052DA84FE43C9D75D65984C163 |
EB40BD4E3EF9644AA5C128509508ECC00D456C5333F38CB0C6086896D3144A98 |
085BC5DC70AC6D9D2F545BDB8AB57F9A080CA347FFD52C19D3E7EF138B266A8A |
974FE49FD84CDCF3F04873880C594246D7CC3E3D4E59EFB0AE972A97B20D8D49 |
ED82A2D92F7F0DB8500A5EE991471E79EBADB7423FA42B1F7DF4D1DFF8C63770 |
7FD9E1FAFC9A6BAEF9D4A73E45E8AE53F5BA8FBC1C28574223660E211D6B13BF |
06B54B0B66DCF57AD5AB5E2527CC3A00CE07B3876AF24DAF91420E1EB62CCD95 |
BB914A7C139363BB3AF38D2E6712D0430E0EBB3CCF31488409C65084C712A0D2 |
7F213F300226853E5191BF229561455D5CDF4485E3DBD5B8F44DCA485ACDC879 |
CF9EA347BA9D9E917EC0A90A9D5A5EA50A589742F6074A19E43322C86E77A7A2 |
9EE529D8EA9844355E237F9FD531A480D0BDB5C9EC1034A60662C785CE140119 |
18AB2F5F7FFDF5BAE0E9A79F8EBD02CF9AEC096C20ED2B80753C1749AE82E1CE |
75A2EC78933DCD26AF8949FBD92F774F74B3523E811259BB1CF0BD1540C400DB |
B5670C18B6BE728CB1901461B4C8298E0D3DA4D846CEDE61C6C666095C44F6A9 |
26C56D31CCE866F045DCC7EE3BC62673D14BD4D031165D73B37C6EB1378978EB |
B75424635E35AB965EFA27C7CF4CE22C1591583AA5CFE96D7B9610491C06E4A3 |
AEF0918F7C842ACFDD77DF5D8627568286212976C001074430055209A7D028B6 |
CA0B6C64707A4C4F0F96816BA2C4AF79F5AB1E7FFC71BD417C5C72C92545719B |
E6A19DF7568DA1362825516A965DD2FEF474B1BBCA46494581AF4DC5EA811A25 |
8FA3D14C29D4A3D79E5DDF94689095401331767C2A39BD6329ADDD5019191AAA |
FBC576959DC34F3AE924BB4A668AD69F64FAECB5D75EC71E7B6CAAEA3438B72E |
1B8B217D8C2D7B454879CAA51C12B4EA8D75045A88682F1B6EE3078CF8D539CF |
5D33F4FBAAE58039CBA4C97DF8595F808A596871CA2C397C4A909690AC5BA552 |
544A1251FB4A8F1C87CA8448F369B3E9C8FB314DAE69A2538AC74C493BE773B9 |
7C8E2B60DFE8BE575D75D505175CA0ED04C1909EEEA1871EB25EC158D4E64101 |
D8CF73022B4A30F092AE8D71BC2DC6AB11BE88A939974017A4B288D0374457CE |
46CBDB3BECB0C3EEBAEB2E02609A043865B1E62342B31108F6355422BDC43034 |
FF6ECFFCA637BD49EFB52DCF3BEF3CD6C58E353F34D2CDA151DAD6CAB6B315A8 |
D3A10FB1FBB38A1C0D3198AAF47CAA80DCCCE4FBDEF7BE6F7EF39B59E8EA4803 |
25761A016AA6313242C75942BCD7DA6F44BA6FFEC421457069CC679E79E68D37 |
DE88919142A237BA856C7BCD3CD5C9EB20A2654D5756B264906F22D86069604C |
2B0455B5A23E2BE358EB8505932AB413C637C25C83B191A1B1E9BDB6A8CE82AC |
432433707756DF51C6826AC68220265609D099D11E0C82C37173BECC28C946B7 |
BD40A058FFD45181FEE38A2BAE38E288237C47C428C1DEB817ED25D480A35945 |
856A026E7E4599ECA5975E7AC619671C77DC7192028ECB6715E3A6A1D74C8A3C |
307C5F4D1692487FD2A43018DB5F665D3107503E8B98268584018796A1A215CC |
05E85D682B21B67D361060871D7678F4D147A92EC71566BDBD1B662B603D3E45 |
F47619F38A1782709613489C46FEC9346AFE757DAC7562EC664830C064C365CB |
5FA22D681937D3F44AD14E162B581C2742646EC5A84FB6DE72ABC79F787CF32D |
B6D0808B139B25305C599E160D2E1A1E2D33D9CDB2A7CDD4D4D0D2A5C3AB5637 |
ABDE99B6DEFC5FFC2AE213269E4C655230D62611CFC031D5A3D1701B762DE656 |
4F2A9BE3CA2BAFB4FDEB623389513C7E8AF11D4F46BC628012AE88AC499179D8 |
2D806253979A7DC34220DF678770FBCA179616D69B61590BD425D772C0D184B7 |
16E12298B6460CB09F6DF87AA8A6C6E5D13835EDD0B180988163517E524E1928 |
4B04B74FEE3BDEF18E071F7CF0F7BFFF3DE3E473D4C3020AD849440EA30B5462 |
5416CB2F55E623729C7A361DB198EEE90A8D8FACE02510B55538F2F818385BC6 |
A680B289646111CDEBC5DD7AEBAD65A581FFA26A8E59425568301AB0DCC74660 |
9A735A94B42206740410A432C44A4211E28154B19AA4AA052AA19AA8F3786423 |
F6ED95F2736388DC2B22561CF9FAA4E78CC2D173E9CB0EB412D7D5175C836B80 |
A46B9A63490FDB4FD734351B2B15DD182B30C7E15315FD668977DE79E7DFFCE6 |
370E8CE7156B450AF85F1F342E58CBF4796EF5A777BFFBDD0F3FFCF0238F3C12 |
0D82D965487CAEC7D44DA9943119307B83E533E596450A55CBA9EA936B8303B5 |
EDE442962DC8A413A379CE014424828798578DA24E3EF9E40B2FBC70D75D777D |
E08107B035289FC746335B29F21D92F70F7FF8C35FFFFAD789FFC4B5B4F28862 |
CE3C61CEB3423111ED146A2D5CDC26DDFFF4D34F9BA281330C0BEEA73EF5A973 |
CF3D97CC90A14F84F875323589316A549B9F7C26481D79EA7ACD984E801D4993 |
8040D16ED666BAFFFEFB7176513084F2F457DDF76D6F7B9BEC4D07F40C03B6D0 |
37C0CD90AB9D76DA499B090B1118645E56FAB305ED137B48D01A0C972FF6287E |
0698117C945475BCF0639AC2D7C68DD70843929881D7977EC96EB1C7302800D0 |
7B4C813CB425F03934E5A1D1A7B58C1142169E4E9333B8C6A606F949C145E384 |
B878064149FB17AA2A996D9330BB1C08E96C58135E20E694FB72A6D08FCB69E0 |
F9F60F4C2F8842B268BAF28E3BEE283B007E25977C58FE1292D5AF10A3AE35C4 |
F4893B901574F12E796BFD934D6E4F3455F5EBFA9A5C64DACB106E4901BC1AEB |
35AD414D85CD05FDECDB6CB3CDEF7EF73B7403C3405BCF390FB134CBCB14ABEC |
A0E4950F6497917400512853CA70FDD986E97C3EC3669B6D0690C73ADE95F1E8 |
DD76D58DD8B232F2194495E6920D375EE3CCA68A443AD6E158AE924631E8246A |
50B30DB2C3BBE6EAF6C6C4B6677670F2E37BA818FAA849FB7CCDAAB5E5965B6E |
89D16965E3FFDA8736EF84BFE60EE5116A47590EF5DF262189D039034263D404 |
DD86FDD428C92065A344A23A176D32ABE83FCC3E9B32CC09DBC6F5E5713F4455 |
1ACBD5223F31D2202EB10557F4DAED2F49781245074087CCC4F4B4176E45C61E |
009B4D3A406F28FA9A570163C523E2CD78CE8CD7BEC91590D436F4528585CE2B |
5EAD152B56C8CC649D0E3EF8602A85C0D992AF4D73213B1A818D8B479A5DEDC3 |
6924DF4EF00781E28AF54F7CE21337DF7CB3BE59F3FC8A1C78F95C8E789333BB |
F8E28B3FFDE94F635F1B2E5F7BD59CE9385ADE4728B8658169BBF1B3B9B899F0 |
08A5A63234A18341AAB559B5CCC32C98CD1CE48D28A17CE28927CA9E2055EF32 |
27AF42B4F53427D75D771D07C64C3D8E41590177559D8C5D4EAD43458751E35C |
BCA79D046230EE0DDE0E84AB44568099381E6B6E236EC711C50CAFB544F5ABC6 |
11CF7D4DB73BA702361C373A977CC2BAEB9BB1B2A206D66D54C43A91552D55E8 |
D65893EA833AE77989A3AA9D23A685094C55919205964332911841B7D0346241 |
02BD710C9C688D73B40B6C668E0FF50E98B324D5509CF6066A9E5FAD02DEDBDE |
11C54B2FBD541B12213B9FA76BAB28AFFA1876AAFE04D219C03FF7DF7FFF5B6E |
B9C5B5E9B18604598C3E8B2AC44EC27C91030DEC1FFEE11F207B4A65ECCDDD0B |
52A89F71002F557A8BF80407D959B6D7BDEE75F7DD779F6E4728D24D1DD2CC08 |
99A323358B13C3917209DA33F327B03235F723852675F9CC420C0784A1A02F8B |
FD5A2833D74150CDE5FAC6DABCCD56C05E749F23E2A8471F7DF4D5575F8DEE41 |
8299E11C1EE998C48CA715C4864C01B6B1DD24A29E6E2DE3E2490E29B39AAD23 |
52FCF7BC4C042AC710E37C065FAAC8496C313B85E4221DE3B9BCCDE2094522FD |
EDDFFEED9D77DEE90653B6996C31A45915564C88BD29186AE755C0471D75D417 |
BFF8458C0E6A9CB98D53EB7179E271CA2B12D714407D4E6E2128AD68F566DF7D |
F7FDEE77BFABCF1DDF70719B45462D270DA2415786F05A7F220C6238400D2F5D |
635D778E87841F0951C7A8531984D4F7A590AC87E67C715A4046A0235D89CB1A |
F8EC7924AE5837F8057FDDDD8A524523D7A89A28102BB30FCDAD114C74FBA2BA |
3F55B62A959D91E425CAA35A182DC66DF4D4F47B608ACC2AC59462CA59071C7A |
E8A1B269D83FB6BDB07C357EFDF398638ED1B21A97D8A83A191BFA4B106236A6 |
4F1FDA51762D41A7EA19E088565EF5FFA270B053D1A6CF2E147190CAEB9B85B2 |
31CDF95BDFFA560D157801C6812CB0E38F3F3E1EA19A290D64BA5D76FF65BFE1 |
CDF327A49223D2736E1EA7514830EB93534E39E5924B2E81374A7F75AC38DA9D |
5D65E769ED4CFDF7831FFCA04C280477A362158D52633AF4C48DFB10925B0EB5 |
259D9B5BD89F9BDDF8322AE01A7D81D10F9E2EA364D9B7F3CD83E5600A192876 |
94A93C10583EC2911EA451358FF1DEAE29E0F972E718BB0E18B2EBF4FDBDF7DE |
FB9E7BEE31C92B7E36D3BECF3EFBC80E70D0D52952E234A4D52DBBB3EAE5C9B7 |
1F697437E9C93457D593439D5106C6F7F1D1AC20A3C91811BF5C50F38981F5EF |
38CA2A879266DAB835051C1F04FD815EC7BEB174F54FC806E244B285CCCCCFF2 |
916741B64422A6D93BAD1118DA81794767D4866F7C6AC7476B6E7D9C16B6BD5B |
1E80754F333D406320D2CC7C934BF3492799F8A59646AC1D1C27171A15893DF3 |
932D7030B6DA6A2BD30981E377155D0CAEB212D12A24F8091FC2B1C71E7BEFBD |
F7FEEC673FE3FBC6739159D443BEF6B5AFBDFBEEBB9DFFF376F4F499E9D486B6 |
1618274CFBE9D65B6FFDD5AF7E75C30D37487940A1CC2D88B63958879D15AB80 |
DC7AC11C5511BFCE0238B23FA700754ACF9353FB8E97CD6434790532E76CE415 |
6127CFCB247823762AAAB3BC621867EBB8B88D1C12A21CA09901D52C8153B936 |
0ED8CAB694CF3AEBAC73CE39873818A5FDEE55E090A3B121EE7C422F36DD947E |
A2D8E9E800C8D9DD7A5D4B00BEA3D67193E7720DA5DE4861FFE217BFF8CD6F7E |
133A4CAF6BE2E43CA879ECD0165293C71D77DCE5975F5E64A327279D569FF315 |
83133544ABCB30F4B9FC06CAC06ABE45FC7E6C9FCE7B979F9AE8C0A1AAF93C30 |
0E24F16422755404D5BEE64C988B897D40A884461944F9E2A0518DCC32559CCF |
5AA3EEB2F939B9C346E0E1D3E35C70C105471C7104E39789832A8AD23962CDA2 |
1070A035F2A2A4592C6FB3E58CC3B6B5C407AC4F3535D3A9DA7762A2A5AAE48F |
1FCE0E41CFF7E2B0002B8B7606F08B34B3C10699170C3EA0945FF8C2170E39E4 |
1087ACED45617E3542639F88D7D327071C70C04F7EF213CA10407EE916E0A400 |
609B7D33AF603471056BA1666BC7289410291AA45BE311CCB073EC12383465DC |
937E13CFCB6CE0670A295B04A61E9C0C0E6BED5C95C529113E3D2F766A5671C9 |
756631E93AB68FC8420E2C5BB66CFBEDB7977C60BDC8A7B403736A9A4911684B |
BD06076B541CF2C8648718758B2DB6D8420284B5337CD2DE919738421F5CECD0 |
A848B51AB3380A3D304C52B7C6010FB8500E9837B2E99E7EFA697B3FB507B6A9 |
C211B2F2B365E40790FD52148396FE93769BC6614E09FB2288981A8D91BD2EA3 |
DB0905501F922A0DED2EC7EE879302A6AC96407548A4569AC911D2007447B926 |
54B6CC7786350CD928C86E439CFC7DCB620B1A6BD65A1DB02BB0A374B0FB02B8 |
312F2960CCA2F2FAD7BFFEBEFBEE937173D5555799E22755E552AE62740E2355 |
9E9023B4348ED6810134A7232A0FECECB3CF66452CCE3C630645C34FAB877DC7 |
3BDEF1831FFC00DD40980EAD608C12B81EE6593F69977D732D2F62D9370699B3 |
2FA9228F6C0726DB5411B3D891258643F8AE53B586F569AFEDE4F9641687446B |
AD492075A299E994CCE7B5B5F6F75DAF4C01522AD3841A3F1CFD1A9EDEC82638 |
F1C41337D96413D348D55E363735A5D834787B847FB1B2993A53F45D73CD3567 |
9C7186D69A32D3152B563CFEF8E3D8DD79D518CA1E43CCE145F1CD762264EDC8 |
3FD92F84B283DB5955F1559326BC22FA3A4E1163E0D15C87369B643FBE20ACC8 |
CBBA06B7AC8F991D6283EEBD862996CFAC44888F19C733DFF92518E35902439B |
57B51524B36CE26869D0BE3EB9E4E65299E04434EBBFAE996105E754C0BBECB2 |
CB830F3ED80E4D8839ADDD55D36E4CAE054CFF39B771CCFE620B52E42971612E |
C99B6FBEF9031FF88043EBA893C65C9D28D34C032BCE646326DB1279163419E3 |
21F70F5B3818523C047617D342672D921D40779DE54C15348F2F634C30E7AF7C |
E52B1F7EF8E1AC62ADB2A1996606621D94CE67D285DA99C197707B447632C0D5 |
98D9A1DAD8F340CB677C0F00BC5A6E4E28AB0F80C60A312EBD259E9F31761099 |
5B01EB7EC0D558247A3EA7501A918202B66B1503FA4E68936224B711E1FE587F |
983F64112C920853E0F822C50CD7B4E9C132C8D4D2BD707D8CDCE6F0588DB9C8 |
5D23C1C6C9AA960991A281C1DBCE78E31BDFF8F39FFF7CBE03CC3EDB73CF3D65 |
CFDA0FA6CB29EBDAA8B881E85C64DBCA8E2F8B0416200FE491162831D8C2F4B2 |
8F0D6490207EF6D967413C1A49EF46CB4C72EC1D96AA06C93A005047E9A6681D |
571F9A93D29BD5E94C302F8672B80691580A611C67BF8846582C124E6854ED77 |
6A0F683B17CBD435A67C18237856C0D1208DF1524BA55AE8B8B6CFBDACC09448 |
B59296D67FC9E4A5591077E7F2355D9A938873E16A086EE4325522F39D2F2604 |
0F3885CE9EB153244C3D8DAADFAD76AFD9D05208A62D6C23D632917E96089BB2 |
E5A43F2D5FBE5C43229B65AD30E7D4D97A8E4E6AAD93419AC54B30E75418101B |
D972885D9B8B067D1CD90DD101A6299D33043D5FFD345B825A5B582DF9DCC895 |
6801DB4CD7BA6BCBDD74D34D727F311FB7D9661B19431A00A8916F7DEB5B5A74 |
72FF7386A0B9ACAE43AA88B09CBEFFBEF7BDEFF6DB6F974515573326146B7E70 |
2D329C57E0440E0E25C81413432F6381CCBEE2E0B442FFDDD93B276E7EDFDAE0 |
44A7A58CAAC130228BFFA52F7DE9139FF804DE2A0892B1F2C5C5CDEE494AD5D8 |
60C623DD26C162416717AE9613897CE08623188A85508D93694731AF0A6ECD4F |
9C9598060DF8924B2E49A181290FE836531C0AF7E54C337955D34CE5E8694CC1 |
1D775A0AB1CC2D16F2807557FD461BC59EBB6BE7E32660104C0115AEB182D632 |
17624B5AA3C039E009B5D2251F833223BF05BE1F7455A7A2F58A681D9F49137B |
721A7D71590FE0113833CC82E5425611AE5294AD5BF0F99BDFFCE67FFAA77F5A |
607EF4FD1D76D881D27BA3371D56F5734951496949977BD5BDEF9D7E4B55F0B0 |
5971C43B13E609F451F7D7D0C78ED3D6241DB45676670D6AD002E910EA9A4610 |
9051FEE4273FF9D9CF7E966C2EE931360D03F0303083E4795F78E1853A277E28 |
275009BD9E7AEAA9DFF9CE771E7AE8A15441D3ED88B3763EB78428C05FF01DCC |
52971658F9652101CC8B0EA6180D64B65CFF537B45A442942CEF7DEF7BB5CAC4 |
DE914ACCC06CC5C392F127077BBC9738F0F6F3703BA8F95BE07C354A88FE934F |
3EA97938F7DC732FB8E082934F3EF97BDFFB1E0C85A9340A3980C6B8E916C469 |
30DBBDE2B60F18EA9C1C17B5DC5EF4D2A85F74C75F1628F66D4C33E30A9DC02E |
1955B21D4A1697E1CD399FBC387A4C235EA6E1AFDAF09AE1A79E7A8ADD0BE221 |
FAC1C40638D7D93C39E0F914B0018FA932A6E1C195DEC22643AFC313F7FEF7BF |
FF861B6E702F0A9E9DD0A0532A794501E60AB79AE9C30626366B4194AA321567 |
316253CB181BAB41B1627ECA097EBD286ED600D89F679E79A62C03E261EC6D17 |
29392557DBE171296B41142FB4EE426F4D9313786B41EAE29694A0E8B1D119BC |
853669321F224286BAD7B6DB6EAB45079D833A80C984A7E690BA603D0BF8DC54 |
05A8D02CF9CCF28A144C468CCB18E80695469740C4B8551833E6ECBE5D6460D2 |
51F853798C356F74A1B5246E8CBD32F0C8F32A60FD123E26FB6774938EA7BD16 |
03C9AAF23EC3D3ED836A648D922FD7CFD3A83AA3F11DFFD0EBE13A3C527431CA |
EF69C5083269570A85566C354390CC01228910EB6AFC26AB40C87A0379489A59 |
C439E7CBA93E831B31825C43C226D3A90368E309A95973B6219AA10111C7C3ED |
B4F6DF7FFF7FFCC77FA47ACF9C12F057BB21819BAFA1F01AA1F62696D8F280B8 |
9258A3917D9ADC790C4E724A3512C9178E31C29A5A6DE311DCC525A60F00FB34 |
2BF67F172945936BCE8925EE6AE162672B0F9D278C9E88E0D83457083A7E5E73 |
23CE3FFF7CC9A954F9B254CD4696D0288C78D18FEBCB5FFEF209279CA025B099 |
CCE31044A10C7FBEF3054A9CE0AA31F9708DB1A3881F7ACF58FD630C19F813BB |
C6A659C930DB2BFE6757D5B9B611C8891A556F44AAD1A82489C8D5D9F399CD44 |
C95A40B3E1BDA6A6325DE004A17A35877BEDB5D71D77DC919548573241707DAC |
6B045ECD0C23B740675FCD97039E2F3C80188990AE54D9ACAE77D2A8B446F4E7 |
C00B0736E5CA63C913C23C54DC624DA6D2A275BDFEEC3224367334C7358C2DB7 |
DCF2D1471F7528C8AE55940C292860C709BC0AC81CAC434628BB9FD8A195076F |
624AAE362DD1868B8E753C02EE8C67CE4BD0705887A09477D96517C8E47184FC |
144C38B14F4325D830EEAFB0FDF6DB4BE03BE16552C95AC55AED29BCDCBA8E81 |
9C44566A51040C022C3F173BDC72CB2D1FF8C00730E62CF1D8575CEAA0830E92 |
132531EEC4B0F5B44BD7748481E3687E6C67703A90542860B4B56E0D9DD6BC21 |
880F7FF8C3DFFFFEF7B5846443ED0123E5ED6F99527CB7DD76BBEFBEFB5285F5 |
C53F8370AB533153BA329295B0E472DA983530FCC7072C55959760BB783C83B9 |
B2AA5B03C4755E27B744D6FB9D77DE798F3DF6F8CA57BE42C0C135E6914ACD99 |
5A976C5B07FBF010B84E218D17139FF3CD67C487C74D6313C9510E3B94CC43A7 |
E20147EC32E048AF9A2A86587B6036A2A35AF23E6624F2CB3551DA37CB972F97 |
496E78912EAE73CBE1C1ACF10F09A065552DA30BF85EFFFAD7FFCBBFFC8BD988 |
882C31693EB451816181DA5C6B54FC707C270A2CAB1F7BFF7A23C79D35326800 |
29FFD18F7EF4073FF881F499E334E8EC85D1C85E5FEA987183102BA96200B0C5 |
A07B1D7EF8E1D75E7B6D0AD02D2359FCA48DF00207D00835CA9C6A9375187360 |
1A23BE9CAA660F98989A528246595502A42BC37E9CFE5FBC6038D2B35F71C515 |
3AF85E14F229367A108B6CB6A8B699F358DD80F1E455982D4053E5B439ED8A6D |
E7449AB3DAB3816C163EE489E276F27233C2F914B0C9786993ECFA90BC42A7F3 |
A156E7F8E38FBFF4D24B1D3FC3AC771C8B7DA243F4A10F7D48BEA6B5883E3CE9 |
A4933EF7B9CFA50AFB962A6C33ECF479599C9D66B658F001B110B6A71EF91DFD |
747EC3936207CBDC7FFBDBDF7EF3CD37C355F9FCF3CF231B61A34C95556429E1 |
A872ADF8900078CC563896E6BA1A4286849DBDB8B15B5F5CEB1851D36577D861 |
870F7EF083A79D761A3687F1B996783E53DCD1070A9D6A998CBD0B9280ECFB65 |
975D26CB380A9F9AA33827542A16769B1ED11FE2E7F02121C31AE0990BC21067 |
03D409F254E2FBF6DC73CFBFFBBBBFC303D4E125A53DB76092352A29AC335963 |
9C71C11315C7BA9FAE2B6F4023DB71C71D1F78E00136909BC39809BDAB6A4A6A |
EF90427E146AA72AF6B74D67782453D6AE98BE5370F9A1A50483A7ABE1A06BCB |
1E79E491D75F7F3D62D4647B29C4C3B30051C92BAE5D6D5CEA7062C289D9707A |
3BA6CAC0D7443310E53A9F8CCB2B3033601337445BB1620561468872A2596A72 |
1FB6235BC1069AE9D7231BB88F41C49721B811FA0EF37A4DA9C6A66B906E5450 |
34FFF18FAC1DADD0B4DB74A47FF6B39FC17D8317EBD9B8E4924BCE3DF7DC4659 |
529C2AD05C3C3FF124D86E75A12AC72F9643C449B3B983CCD5BD4E39E51420EE |
D8CE182BDAA8AEE7B1AB84505E5801FB8E86D9BB81C774E88FC9DD9D768214F7 |
C4134FBCFCF2CB892280328D4EA1CB75A2F6F5E637B7545671CE98ED2195AD30 |
B38AB3CC8583575F7DF531C71C93AA6A40B2EC0B3CD77FE995CF047C727DA766 |
B14E5AA1A978AAD0E0D109CB2BEABE9AE5C77B2F379155CC08A745897918AF60 |
2466CC44E0DF6082C83DD57997D772D34D372128AC21D8B1794940381F773DB1 |
0442CD04662C91912AD080D31FCCE086BCEA2BEAD2388D5923A19F920E0E8EE6 |
8D37DEF8B18F7DCC510D270E7529A9F32F7DE94B0E25D218CD0DB26647683A15 |
3DB2F39DD6978D4015CE7BAB4F04A669AE7127005850F19F66E6E6F57DADA6E3 |
C6696624DC4D1D28764833E1458EB1194D96978851568AEDED4A8A5441DCE3B1 |
B234A0B744F4F87D71A73CA2DAB352D7936A2B9E75D6599FFDEC67F5A11B35FE |
E715B0E1BAF6EEA21B63DEBA5A69FE9C782B6EEABEC529E4BCA195E48C1C76D8 |
61B7DE7AEBBC0A18575AA3D1B381B589D48C66054A41ABC5185A0A7D37AD004C |
B08092C36049C191F5C9499575EC07D3FE78E73BDF29F3215510415B82CE0FA5 |
D2CAF8DDEF7EA749910121E7C08D055368D6441E94AC30E19488C845A112A4CD |
ABCE771A792CBDD7758E3AEAA85B6EB945BEA38B9774293A5DCC27E06CFAB105 |
DDEF9DBDCB96D57728EDC59E65FBBAD9A4FEBBF7DE7BDF79E79D669E22F2A3A1 |
66259B040597C41B906B3120CFC9D44D91F27AA2FDF6DB4F9B40C3B63942492B |
CFCE4DC9D3C0779A2AF51609B7F11B102531A5E7731275AA03AA2C2ECB11E3FC |
31B561031FF1AD1DA8F72012F6D8638F471E790496257E684C1F7AD7053C4884 |
05CA819C13615D1CEB63C3036F9600C2048E1574404E22E1700DE89455A02D03 |
9A58AF66D9D8C79A809D03B96EC403A6D0DC5B372536EE18C902EEDDFFC58B73 |
842581778853080C18234FB73EF5D4536573E88DCC9DADB7DEFAD1471F85108D |
D835F201A96A73D9947B3103ED163DB160DDC656AA8C0016850D8652A9150818 |
E9A67FCA9A64FFDBA45B8089CC54948EDC78BF4523E3820B2E90584F554336D7 |
BD58FE460007D1299C601C0C4D1ACD30621896C7D7BD346F11C1578BF4F24F76 |
117C937C4E5F0D30BAF92CBE04E4AABE208BF93BDFF98E3BF7219C357B6F7BDB |
DBEEB9E71E1433320D5BF390430E91D3AC4D2EB109FD884F872EF2C4134F383F |
68565D43B591365D558FB254119CB503F55E56F135F11466EBE3B2261733E75A |
ADDC861FBA6C09CB8C7BD1E0153662EAA01CCC984F015BC2386F92E6B23B9DAD |
E36AEE62E0586054C02CAEBEFFAE77BD6BDF7DF77DEF7BDF9B4A0F4733A92795 |
E7A0B3832DAE277599D6BC0A184200B49A6E09191ED2DC01BA481CE197BBB951 |
590BA4C853E0E83FBE97C4E8AF7EF5AB73CB976EA1CDDA3557274EAEF696B7BC |
E5C73FFEB1B766AADC230D491B9D2D653399C020670C959FAA964A525472D669 |
83CAF5E54A820002C5E32C2C380BE2F5E6EBC096947C81AED988836833CE77E6 |
A391E572497615AC9CA9722C9C72485573727AE272BCF95524EE0132A36B4A5E |
9C71C6196C535C25FBD07945ED469458F3633E7783D87D0C4C059A55C063FC1B |
0D0FFF9827D2E73A9FCF3CF30C4F8449617375B686306738262A11F89A871A7F |
15A3949E3100EDAEF031F816DA452C6E2BE02CB0DECCA978DC6599C029A7FDA4 |
934EBAF4D24BEDB6625E00D2919092A3536377A929604B1CE3094091449F83F0 |
1DB77609386E8A7E02C85C8796461AFE957B0C479FE9FFFF4BF309AF88FCB38F |
7CE423B1F02195242DDA2D5A5C76A959B2CD0CE3ED7DDD75D7C9364DA508DE6E |
BBED64B290B4822D879D6C87B2A696626A0607200BE5EF310362BC987FF8F18F |
7F5C9681C6A0D38D9D74E595576AA37EFAD39F9EF379316763D9450AA1357635 |
75269A6ADD2E3656F25A64258E5A2F90628D8A04AA260D1C5AD8628B2D346311 |
3A0A9883D074CD27B302B63C04799002CF685EF1F34777993BD2739751DD74D3 |
4D471C7104FEAB5C1459AEEE7A6479EBA28654C5D856AC58410F12D210A67648 |
C15630A9051934B7FC8AE87A67D9889C39FE079B8D434736B96A26850F788480 |
38C5431729024518044E992DAC80A304C82B16362DDF2B5FF9CA5FFFFAD71A27 |
C9534750343FBBEDB6DB2F7FF94B1D61E627AFB86C536570DB532793A591D0F4 |
56EAE6FEFBEFC78638E59453BEFDED6F6B09F06DE655C00C5D3A5F3F938D1673 |
9CEDAA6730A78803A6B9069F0684C7017DACBF188F4A15311E5049C60AEF4F0C |
A566A1BEA246FA682D9BCA8A6F8B09BAF5012D33C299958BF2B7ABECD1AB5F91 |
06F784F2D7D34F3FFDE28B2FB63A7486987B69A5910271DE1D346BCCE4968A2F |
A4159A4FF3B3CF3EFBDC71C71D78DB795920CF83DB6CC440C94AD8A466094BC8 |
3396AA4814BB9F8D4B358E39C5C8D136AB466638EB9A674622034DD60C46953E |
D1F55914D711A1CCDC15008BDEF98C3493B08D4D8F39EF1E44B3B753AA8873F3 |
D01BCE71DA3433555C13973A185A91785373FD7455AD063D7E3E44C26270CCC7 |
68661B3C856E1F56D83BEDB4D3430F3D647646BEF38637BCE1B7BFFDADE656EE |
A964964B6FD35C0607BA84A01C9FB804C51938DDEEB39FFDAC548877298462B8 |
DAA9AA7E8173C7CE314AE8FF9502467C1382324F321D3EB2508C61318D0B92CA |
B4085B8523A9B1812A80A02DAB208D9FFBDCE73EFFF9CFFBA8A659544D696662 |
488BE222CB4EC5328803C0462569C2A14BA5CE38E79C73CE3BEF3C7A2A4B7968 |
8D1608416B4B90728A8518EDAA799A0591117935ACD9EC8D1D6597D367F072E8 |
9AFA931D6B7BFFD2F1EF79CF7B2407A456C9FAA7CA97722C074344075F13A533 |
2BA7561791914101023B3C2A954EC5B79F2AFF815D845474E58873D5E8D714E8 |
2D712AF413E97B9D384E2B969329AF6DFDC77C30DF21931597382E2EBB4826AC |
0C9A1A52CFB131EF019BF2B66E63BC1D7B886490FB14609A984074B6029EEF15 |
D7917687C63C11DFCE4BB600BD616E1D6F7348DCE155FC4F24734FD90F3B8504 |
B3A951B02FE755C09AFDDFFCE637FEA7F3FC2E00B01DB7CB2EBBFCB7FFF6DF74 |
BA4C8F401D2AFA3855E1883C34104C15B90F45605C9F289615A713C3FC15DE47 |
9A8D4023605BA9BF7CD184C0CE377833431C716B38635E784D8A2EA8AD8C49C1 |
4E05D9C821C42740461B9E873D2165A32BB8A351CFCC168AF3BD228A8D6DD755 |
355AA6B5B8A42A15BAEF7BDFFBFED7FFFA5F3A00483AF3FA9226D41B6D38ED33 |
39BB1AA7BC5E0D09EF53A33DFFFCF3E5BDB1A7EDFA232B9DCF9031AE2BD00888 |
3D84AD0AD88423E7965BEC66C98BB5E54B7FD238F7D8638FDB6FBF5D3F3FF3CC |
33AFB8E20AEA0E11430B94DF9049E27DECB7315B1FF860E058ECBAEBAE9A9038 |
935457DB20201FDCA85A3F995C0CEB64BE686DCC7DBAD68E78804DF2430F3DF4 |
CB5FFEB22C0099C03FF8C10F74E6B50D220D53CD37AA85DC5B55C33B0E852142 |
0490B0D9212E80A7D7F803883E881CA29B213F015FEDFDF91FEEBAFFCC8BF924 |
8CA4DD088920E59BB67D89874BFA930540F5C6B604A98A3F9315D245D89324AD |
C889EAA1F0CC5CC59B66192ED87FCC838FB9E719E8D9C5E5EBA0830E92CF5D2B |
1545D5219A1748B151EE820796829FCA61C44EA58BA266065B36A25252D5899C |
EE813AB688534CE74EC96C8C5FCB9CE45581562A73FCA067F54F1D43C78D1D65 |
B513EC7C9CBE403BA054A15CF182DC2FA451B56273D34C763236101636363476 |
7FBBEAD7841C66903623F44F7DAE1970C59DC5572C1330FD7E6C481CFB5B8082 |
CC2BCE4E6D217DED75AF7BDDBFFCCBBF689C54D6E232C63ADD3493549248A73F |
6727D85AE576D6C1B6ECFF4B0AD82E90E33AD867AF7AD5AB642EFCFCE73F47A0 |
11FF27C5E072501FFF4649AF4BBB1D4798A519258DFFF0873F4413CD009D853C |
602C779F104B31EC1D1ADA1BE6030299D3083CC7E11DB60269CE4EC524670A02 |
BD07F5C3AC41CC842312931CC8A0D8F6CE4944B608BA9C59D3D8A227ED936328 |
3CE0345337B8E08C94306A09B08C41E479D951F199679E31ED784FD539B8BB6C |
0EEF00EF9CF3F9FAD7BFFE57BFFA152A4A0F22012AA78733CFD6B9E8A28B2886 |
61F1BC89318D4D2199825D198D8054457725E39C198D655D1A9BFE44576627B4 |
52085E711AED7C58E8E3E759C1B005BDE3E576E841389FD8FBECFBF9EA2F2914 |
767234CD22C275F6D7A78BE08AFC4E882ADD67CD867044B0636A38426B472A9B |
1FED1F319F59D94192C7E14CD2B484B4CB873EF4A11B6EB8C187DC67DE69CE39 |
CF11E95BC46E2A4DDB430E39E4C20B2FC4D644DCC38028CBE9ECB3CF4E211EE8 |
8A17E4B837BF37F67CFBEDBFFAAA014139237A7C1C74DC713661CD47C1CF23F1 |
4F3C0C4E3AA822311623557BAA8A9B0DF9899EA5E7D0C4B74E4020EC6813ABB1 |
C1ED83178EBED70589E5F21363C4E67C5EFD70BBEDB67BECB1C70C82C5FA34B1 |
224700BB012C7124028A3914C75409183881C509D5A99470E3D9BFF5AD6FEDBF |
FFFEB14C0B62A276D53F2755954B761BCC301CEB025269B751FCE3835C4B8250 |
10ACAF49FA9F77DE79243B9C37F1214225233F1918ED7D6271A0FD2269A3871F |
7ED89A12AF06398CE1EE4A68D0C81165E9E36FC6EC48C26CF73156D0A600C2F2 |
7B24732A6B0470847447578EB081ED49CFA78067A78AF2503E67D826C71CBC2D |
BA898411691436675E751B7234D4D9076D307D1FCBCC1805D9F1709DE6158E7D |
A176848047D004DE9A0422ECDD4AACEB8DCE983D5AC3D890E62869280699356E |
411095DDE6D0ABCC5B1D24FB4F1E1ECB0CF2330A71CD0E8D83E0277AE73BDF79 |
CB2DB7D83B4F55FD0FF6545E35CDB06185E0766910DFD11C9D70C2091FFFF8C7 |
8D5375CC1C87D8DD3453959FB073BF40F79B886BF7E68BC15B5D5683D1E3FBFC |
63CFC6A8033A55BF02879C4A65C3866369880D401F6F74D58E3BEEF8DBDFFEF6 |
B4D34ED36964C231634D921E5BC16301B03ABAA6EC6EC9299D401ECDFD8E8C3E |
23B1FDFDEF7FFF6D6F7B5BD419B52D6EF16100A7897F3B33690EE37B428EEE88 |
ECBF466A4C9709E515C518A451C86B68EDE6DBE78DD0D48C690483E6D38EAB07 |
F185F61E44609A5B4D3BBD5322C175ED61F3AA6569BB6AC511FB3448AC6B81F4 |
4F9032A499F573608FC66411B9E14F6C3099449A61B64D6DAAFFAF5FB641390B |
FAEF6DB7DD76C00107A4403DCD1EC6E3C92B2661570DB087D97B975F7EF9F1C7 |
1F4FF8A11358C4393E94B6EB6BFA8EACB7D9E0A3BC42CB831C74CF4DC206B04C |
A08063AD0B47182DC80658B81B154B391B22808305357A0AA07A9632463EB28A |
59D0E6913739518D68461360A0A20C69A95F9177A4203586915340BAF04F783D |
B555345402152800FB15368C889371C4C04EEA0A871F7EF8CD37DFEC63CE64FE |
1FE6DE34D8AAF25CDB7DE75CEB9CAFEA7CA7EAFC49DC7B9BB8897D8B4654D4B2 |
4763AFB1DB6C63870D880D763422BD8020A2821D2AD8A0A2A8C12606C5BEA334 |
04151548EC6213F72EB755F975CE8FF3EB9335CFEDB878EF3C73CC39062EC3A9 |
EF1B3FA8C55A738EF18EB779DAFBB91F674F2241A12610D6420E1D8E130D7165 |
80DE7AEBAD76691CF6E008ECB0C30E7233B46D5C0C89D9CAB300C39331DC669B |
6D2826C448E2EB36832CB123C4AC2793E211AA64E6633BA30D811BDC5FEF9702 |
EECD0D22E9D5C876D50018A4A64593F9CD37DF60727969ACCEC0D2025AD4D4E9 |
07930CEA3748C5E8F9E0106F544256FEFC56371A3366CC73CF3D47CE5F5F6364 |
35E51CF88E087A8764F5E173CE39E7830F3E2072D2DBDED25C3F13E774D53325 |
567A2BB2479E7D9711130D33B0A827F3173A8C697412498E466E501541B9C605 |
F46536699D0162F7724DA4BFB15F5C3D62904E23332CA676AE5A2F80FDADAE07 |
DEC7DB0805F3516033F275CCE4AA79A6F485B4AEBE02B53AB0260313524E9018 |
31E8DFA7EC6A10588E74136E4BE262BB141ACEB8850B85197845680E627D6C35 |
4961E87F3B9BBCF2943973E62C5DBA74EDDAB529D7607807F78656DE4E2E0038 |
7288CC613D2EE7A76DAEE20CFDFAD7BF96208028CA304E9E12C36E0EA9010981 |
F05CD241E6B9942B9060F640AC2EB5A5122932AA2E7263A9707F5B19549F321E |
1031E7CC3A63B3353662C4889B6EBA49E6E0279F7C1233A69CD658971943A396 |
3B3132DCC8746F7CC0E7BDD44C13999E321408E9692E1D6C5FCE97E5A3AB6252 |
01C2A056927002E01D84BB6D5CC74B5D2F9BDAAD1656F6924B2E59B56AD57BEF |
BDC7AE23BA66B7CC2567BA0FD03F531CA0231B9975A42A426073CD247A10BF34 |
33FBBAB6D0A38F3EEAAC9659E7AC98BD3FE5330C1A34E8B7BFFDADFE8B1A3699 |
306B0DCC5013386FDEBC2BAFBCF27F2B5AD973074223F6010C2174F0AFB7A3AD |
590CC046EE7D4B157651C446B0A350E10681C6C893B70159063B51981D3022E8 |
C5A545B4BED0EF18B6894D698320AA25BB3AD192B0B48C4B130974F997701DB5 |
0F0864F6BFE641469BA611440EBAD69E742317AD344239AB2D60D31C452EA0FF |
3D77BC8E0674D4DC884A62CB6E36A3BF723063DED333490D1293EFF881B6F49D |
77DE092E8A55FB3EECE129A0BF907D474C27CEAA0B9F7B6BBBBBE849C71C73CC |
3BEFBC23F985AD2A83E8C30F3F34C0D86BE9F7348209EB7E43EED6EE9DE75686 |
F078210E4A6D0F5C2C6B051CB76C2B13957907A38F530E6AB1FC7818DA61A425 |
B4E47604F9B001FD710F21E6341E6032AE26ACD1C1C607610AD946468D6990E4 |
FC6B4043A9BD7105C7A915DAB5A6D0BEDEB2D5C7C0F143361F433241554F6EA7 |
13C318F8CA1A2754C90E84EA24CC9E3D1B74EB94295366CE9C49FE899AE0D29C |
C7309AC9FF5286B29B61D5CE6E2374B8A3CC205282F0016BEB66E82DCA62C98E |
244E4E32C611B9D27C1A07071305C25DDA17C35FDFD29C686F2C5AB4483E04AA |
142C1BEA0A91DDAA2E739274963B0B5C88541FCB1DCB946DBF97DA53E229A650 |
95E496098815A45889DAC21D79A9A9309B476CFE11CBA3BD497C4C1A81428BD0 |
94CE05237169162289321B7D8B40D4C5175F7CF7DD77DB868B3DBEAC147D0A1C |
AE88E85FBF08921D8BCA279AE7D20C8DCC8B26D32654CA88365DD130AD394729 |
F4372C555732F9047840424D9D3AF5E69B6FA64651F78F154406584D9F3E7DDA |
B469C4E4B1AE74730907C9130DC6993F5C1A7006EEF1DC6C6F97E24172585281 |
9B8924801695F6D12D30BD8E204ED8A57A117B9C687A8D87FD0327815EF3B4D3 |
4E7BF6D96789006DC87D73D1B566674330BAB3AA2BE64B49435F9D0A989DA0A7 |
93AC8CDC0C7E170993193366109FE7B801CB8F3C89FA98564413AE016B576892 |
3D27550AB8549EEE289A075952C025CA52105E4032C91311D28B5CF75E6508B9 |
B4619C2B741722F67F83F9C58A640339541B3D6B5BC13560168D4627D0845628 |
DAB812A5469E11B9C7B1B4D6D4B72822241888E54E4C554FD1EF4DB36517D9B0 |
E4AAC08587D10CEDA923BBDB7F2B2E4979FD0B19325CF0948549100F1E3C98B6 |
895023C1736B4063CAB57D555CC45ED44666BFB292638BF4E58E7B1C862A056C |
9345AAE5A0830E7AEAA9A7BCF35247FCB3F45DFFB591CB1BBC7B8CE9B025EED1 |
4645C809D1070E3CF0C0575E79C5772332E9E2CB8DD1957621C254639EB77233 |
478FEDAAABAE7AFCF1C725F21C45C0F205971483ED1895313A446A0A2CAEFE8D |
2C3F042DD04688574C34FED5E7478E1CF9BBDFFD4E9BCA015EBCAB499326C987 |
FEECB3CF52764C5D451615700C21745D2FBA5C6080A2877C286C8F474A770669 |
33D1AA2EE5DA01F68016DD640EBC2346AAB75F33D05439868C8C202BA4FD03CC |
9E13F1774C66BBA126036BFCF8F19C5F67A3504E7C524792723EFD12B8BEA7A2 |
743CBDAF1C9722C8EC0F77D23BC48945458159437B19FF8510EBC9BDFC52117A |
D5B025C4BB129DA69C63262687B2742C3AAAF35464CD5C5F8409C5BA30BDD4E2 |
23F18902EAB937DD7493A617FC9AC3275E05C6890A0111620516A58427C13557 |
487CBDDAB5D75E3B71E2449B560E3098222605A7364637DD6358D7B871E36440 |
B32D0959E36ED289C4FC2751FEA76CBDC5A89B7E49B15C34A45A8104AD33C560 |
B7D2D6865E4A8FA6C081E40BEC406C726C1DBE45E911121828AB016E2997CBE3 |
94DBD48B5B9138F3ADB7DE7AC1051738F4D5CC34C99DF213EDC35BE3F2120397 |
4C803DB4A7E875E147901C193B76ACD688D36DEBB944034584F5FBE71176B011 |
4794090416BEB33BFDD5081A0941A92BF0C36E44C891C381F6F2C4A48B8D0ED6 |
0919A1C71D77DC71CB972FA78EEABF171725F6F22788704696E6AE0A83638F3E |
76AA40ABA5FBB8FD85DF85A4C286C015CE15F9AA62E921360EEEF2D5575F4D9C |
F0FDF7DF27E3982AAEE86A44CB43B3A1453283A6775BD79B10DC70C910FD9D4A |
AC6FF5574CAB370A14A5891DCC02D379A1DE1CAA35E37184233DF6D8631A8C36 |
9FFE2A714C531DDF01E4DDD9679F2D3B0618428C7FD0FA42679213950A9F1505 |
ACA7ECB1C71E5F7CF18544C6AC59B3C86EF05C9D01891B1922AFBDF69A4586AC |
370D66F8F0E177DE79E75E7BEDA5C72167F52D79C6FA00910C19F2FA9877946E |
882E31D601B9AC55D65B1B16DBC89521A84F046BCAF9ECAE8BDE0C4C5829076C |
224491A5D448F48E9E7F1B28948A22471007CEBFA41C3FF0D6D2F9DFADB81E79 |
E411AA89CC17D6CAEDBF8C5B74F0B9D3E0F3C16C14042FA0DFB7DA6A2B6D6FDD |
D021567FDE7197D2618C37B47BD4C8D4F9D82551615B70939C723B74341F42BF |
95F92828E7D07FCDBB07380356FD2876BAAE8B8322DA45279D74927E96390B02 |
837C3FC1ED92211BF925CC9E0D431C995DEDA2525323DC099768A64216936BA4 |
13303A2F7AC0B6D1250DD887A6F3F38473A0A8F560E60D1D6772742AE9921E17 |
1A0B524FDC7BEFBDD7AF5F1FEFE9184974638C9571E48C673919E720652B1065 |
A46C7861D9941430075FD32E3342161ED90436BCF488862DF940C4C5C48B8E06 |
45C885E397F8B2A5704E1C86C52F5205334887DA68C7AE008E14228E7AC49E7B |
EEB966CD1A071B4CE385BAE435CDAD644E69903D0E5892F8B7C4DED89DC3CAB9 |
2774F831399FEDBE1ACF4CB3A64DEFE42E3E2BAE86C14AB6F4099B70F314CA1E |
B8950623D9A1E976734087C18D6C24D0DFCC449225058C2714A977531196DC7E |
FBED25A963501D848B5E503B72432631D724908747EB60C810DE6199352ABD14 |
4D9F88432627D53715828E022E65EBA12FF7A14C9BE2AF8FE93D937379DF971E |
E15D18F765CA168F7BA092D78C2ABC6422F04B1C419A10FBD44940E88B981D98 |
0E4C9A7480A4BF26930380B9A359D5E2221CFDFA367DB8308F6C1DE321B1859C |
4D81FA83ADA51B12A0462B404B9942B5A5A355A034A74D9BA65790B6D3B04DE5 |
A10FEBB93AFC6BD7AE056246AA9579D06F62FF41076FED7EA55A05EC885F0A9C |
82445653066CEB59471D75D4CA952BF1EAC85203989069F2D65B6F51BF84A742 |
6C4643D2875D7E63501EF257BF193264C88A152B7816F9E6146C47340DA6AD51 |
2A9DFB24157A51AFACC9C71D9128A4470B42939C28553D44A74A22D85EAF23DB |
2918CD3DED5D837C8AFBDA09C3AD1298402C45FB61A6C73177102A5C3F5481B0 |
9CFF738537B96A3C07A2535E531E04C025EE730EAC7F00A78288431D6ADAB7DC |
72CBFDF6DBEF85175ED01D68DD4D8C07F5C9621154B3026E85E6A43652317180 |
77E9AF1283044BF0A7B1F370C19D762134058470C18205E79E7BAEF76A4426A3 |
02382072A0815B4665E62D810C771130DD7A88CA46D049E95B5687ADC02E0253 |
A69E3B72E4C8175F7C115034792EDE17B75063D3EA7863EB151E78E001D0CE04 |
A55C4D43E97CABE0D501D49642FED17B0F1B9467617E11F2B4C82D85A00D9DA1 |
6E5BE6BE9B49987E31067AC9A069C368A2806ED1F626EE79B4FE46A63638D051 |
CB6EA0EDCA68BED0CCAD6D6B14702353CD610B00E20506D9A9810CEF86989443 |
3278F060D9A1928F31A7650B8521B971158108E7113B759BBD049C0604B16610 |
7A3C4B431B01749577229DCDCDD262EC50408CE10CF7373B00110C900AAC56AA |
BEBA8ED3A51DBDB96558CD4DF0DB783B8D64CA9429F2BF491EA70A745FD7FFB6 |
0AF21750A98E3859CC3542B53B1F90D895CEB373206BA35194A87237681A3D8D |
9A58994A1A1579CDDED018CA32CB986D1F3CB24A91C9841172B4883DE285A35C |
ADB96D51D15D84901435ACC86E1E6A78B64C6FC8BCE49A4804600B73C0F4DF12 |
213B7683DED4EA3FF6DEE88C94962EE790F0981D82B684ED6C6A12CF087EB9C4 |
7D6FE8B41813B1EEC06328625FEEB572E081074A73FB592927FEA5B9A5EC5F7F |
FD7537E1F8C52F7EC1F275EE1FD43C80C158E1E645C472F5B74A39206FB6526E |
2BDA9D96CEF62C5959278FAD959DF6D6ACCE9D3BF7D24B2F95B7A0A5C415862A |
5CFFCE9933A719D8EBBAAE0B05AC36C409F8C55A007B1168417473E4D9355ACD |
500C3731736A89A5DF669B6DC000DA6CB513C2DD162E5C78C925974405ECD317 |
7BA9999C67EAD4A9B366CD72390366198A10EF961829FE800E02DBDE410BBB5B |
460C31CED23AF28375AA1D3B07DB7DA0E840D017FAE8947691B781712AD477D1 |
9482C24E664F630396A8DDEEFBFF1FC5A59B137233DD98D7C82DBD3B1F6DB9EA |
E1C50C0E742E5DC18036224D7A614BDAD49BBC1133CFF2799340C6A02F12D567 |
21F42C4340D8301B091D35F5B7DE7AEBD8B163CD7C44EECACC067634AB048D19 |
6A527B9F4B4777E34BC6CA9FDED0E2D85135897BF94F988AF01598E4AC649AC5 |
BC6649C1706CF86E674214AC0ADA0EE43D407CBC2B7B4EB6767D56F1C22D7CA1 |
DF6A6502EEFADEE3D1258D032E35BAA851C0781504C71C37D674B9B96FE96AB5 |
53AFD9C9E0DCE21B91F524C5E2D7ECE9687F9642953AEF0223CF01071CF0F6DB |
6FA7405CDC6C6F29118D037254AD82DB04CB3D05FA5237CB24646A854D988EE6 |
7D3DA10F286610017037614486F252C8651C38E811EC834652278869EC9BBA39 |
71AC9B04FEDD2AEAAF6842876A8F2AA7EBFC7BBF59C1F0EEF114A4A071AD968C |
AEF49FE8A6AE911822E4F5F2C94210188DE29110C722010C9EC54D9652B50161 |
994BCCC9AEB6AB12A4BCB5A0FAD3B871E31E7FFC71FAB5C5BD973ADA23A6ACA7 |
99E1945DDE28EB317DF80C5605DB7843E85B6C01AD330B496FE48BA8670A737F |
759434962239DD9EDC1010E49AFBB8B07962B35E9706E07BC5565D0EF899D1DD |
91D22882F4DF254B968C1831C2F1BC9838EF0B7DA80C74C75327A4892D821272 |
37AA56A6B3BEFAEAAB6FBFFD763C6F8AE96DC236338984D9D67C36536EDEE0F8 |
470C2E22702CEA2510E4C2D2F4C91AAE337896DA11302E61D2C9C53BD2170158 |
D81E320B105288F0D5983163264C98009E913C311B9E435A6A19122B0CEDB85B |
AAE8331A8CF60F45DE111A5C3AB9F6467C161A99402602592CDB4DC919D3707A |
DCE5975F7EEDB5D71AFDB0518EE159925ED6E79E7AEAA9B3CE3ACB0DFE62DEA2 |
D3C78A973BABC762AC481AE0438818EA097D276C9A51C680CAB70D58CAFA200A |
9BB9EDAE6DAE663B79377BCBF84999211C4BAC42EF2DFDBBC30E3BC8F97EF8E1 |
87759EB584871E7A2838408A528CE87144DD1B25C2CADC9FB94677C6E77A9B3A |
ABE758BD31595D6FE28462AB40E8497398C1B56A03A5F660A0B1097A05492EDD |
EAB0C30E7BEEB9E7FE47EE731E435E1697C86E9E2BB7E38B2FBE6062BD76ACCB |
8D37DE78CD35D77080F51BFD1EB6CB184E8CB844BD029855E42066139A98C1A0 |
F33433D2EE1819FAE49E7BEEB96AD5AA14AC282F3A5BC261676416FBD0FABB91 |
FBF6686CD48DB8D636C6727D2B922FC60C5B2B978E5FD7F5C24749D91E750238 |
9E0E6D301D4369C4EDB7DF5EAE92152AED6989554A5411BCD1CFFAFD05175C70 |
F7DD779B7ECF2418DE36648EB7DB6E3B7D46AFC37675DF4F878E1CBC2D81F862 |
086EABADB6D2A924C714C110D08DD9E2F97B5AAB8306BC640AA40EDC46942D8D |
4CFBFC7F1617481427C8FA8A6621180D5A3BB4889B66EA5F791E5224C3860D73 |
BD47D77571535B36982361B847F4B4F7B063A9553333D570A608DE184F876233 |
441F922CA2FDFA19325A9C271CD32843E289EBCD3D9788A01836C8E9B01F4622 |
494BCCCED4C8A574E7CF9F2FE34C4BAF5533D9A49783DC0A8C024EE2624A1A2A |
DF6940DB386885C641145BC33C6ABBB6E45A742680099BEB0EA5C204A28C041A |
71104D54C0E3E2468DA70F470BE9110542A702C61F25FE6FA1D1E886F84BEDC9 |
3E9738728E7A32833D016753C1F7B5B798F3A1F37C9A88D03B6A23D34AE7A5DF |
CBB6452BA76CAC61EBA5FE5C580D11A3618694AACF5B5BA7ACABD870BC18916D |
FC037341C0B2E67C4F4F7B73DF4680A463685BDC93A7A18D064B22E906519C13 |
0FE4ED5B99029E407D4CECC1C0AC9782492A56EFA55A9AA4941BB3A7CC4711F3 |
DCD1EC28410F80C53A575A931AF04EEA5A85C24CEABDCCA959C565DDCA4CDD26 |
5423D7428416E7C3EC30B13EBD7455CD839D5A7BDE31D4E1D246840EFE0AAF4F |
3E1E90A049061A19E60D0E457F85686CF6ECD9B7DC728B7EE3EA5EBB4D8DC0F2 |
CF89E58444FCA4ED4B769776823C7E08FCAAC077A49AD89CD1224C81B03E85AA |
A458DDBB21F76D8CDD8408E9F3617B57D142D2FEA143510A7AD433E99DCF9EC1 |
FE306F5DD775974575CF3DF710A13153690A641429A8DB9A1415E7CEF68DC6AC |
A1CAA7D1FDE9003168D0A08F3FFE98894A4131C78C6CCCEC3AB44B700FD71040 |
168CBECE7C775E36340D4C61661A01F39F421CD25503E827ED791E542ABC899E |
862B476C5BA7F6DE76A6BFC00BF22621B4806B7BD96597C9325BB162455F669B |
EA2DFA0450FDE547C35A4AA719900D40140902A1C23B6780A097F6BF11B8ECFF |
08712D1D5BDBB8A846B2783A657EA85F13D1ED324BBDA3FEF56BF2FAE09C752B |
4960E8F67443323E9687119AAAB7D3BF714D1D368BE374900F1D0980892857AC |
674B45DEF39D77DE49ED453A2E74F4EBB88CD3F3C002993E8C9FADF29D5772B6 |
88547D64BDDE78EA5D0650BA343E39FBB7DE7AABB96A09F4D5E738BB1EE0285F |
D2A61452235CA91D9A013C1BE3053B8E785194F576C822E18B561705C364997E |
819B104F43CC8D1E3DFA861B6E40DCE3D4BA63319FDC628B2DA047407BB572F9 |
1030043BC76685B4795E958B724E9E51D98D707EDA481FDE9D21A55C94A27D09 |
5556D5FD63593A7E0F0690314A6850A33DABD6858DBE64C99233CF3CD3A11E5E |
93C83916B43D807E6D128EAEB56C0A054BBC78D4BB5155447A55F6A79B8DC3C2 |
C37CEA6340C75D9E14E9BA9C13E2D82091D97531FE6654672AAA7BE54C9F72CA |
29CB962D2302560F9AB3ED689945110B87A291EB2B480D3A60401487881F4E4C |
23F74D6224881E2681C13B3E54C29244058CBDE2A9E8DA3CC3970646B744ED7C |
E8BEEDEDA51051F4C9ADDA87E0E390F2D8D0FACDDE7BEFFDD24B2FD1150ADAFA |
BED061D057692138D1975C72C9CC9933491EB13A20D2AD8AEA73C0CC1B653958 |
CF669AEC6B6F87E7DC273AC001805253C8E8F035325B21878E13C7D451F2EE76 |
350E04F66462DDE82A30243D88958A1C96969636AFF10762280E1F3756BF343A |
F0AAD631B17F6D4901C7BDC157CC1885D6C19C351F43C98289569771A360B3FF |
4768F59D3245926E157161985972EB6FBCF146B8E7FC314F57699337DA592125 |
AEE7CC99A301E805F5ACD8EFEEBAEBAED39F0CF9EC34534A411A4F056A888932 |
32891483AC99B163C76A736A7EB4E1D942FC55FFC61CE5F7E7B459DD405EEBA7 |
B38769E3AE4155219DAACB703BAC48F6598D07DCAAE8D768522440AA0841D977 |
A8525AD3BBBB991D7C9D19BDB35CF9B56BD7521C066735247FEE9B143BCCD00A |
D7FB3815981D393AE0D9F41B498DF7DF7F9FD3D209ABE1BBF69E29B66BD63603 |
D876DB6D65E4223ED819EEA39CB2696683DDBF24AE106963BBDEDF548E71E1F4 |
146DE851A346C11B356DDAB4C993271365AD11582459314422058FCB99527BD1 |
67D57DBAFEDE44C7CE3A434BABF3C38127584A0DAE9689F827A4D9908871AE40 |
FFBBC0408EAF8E1F1293C3EFC2410074E6DF801DD7A8A8C88710476E8709C1DA |
5790A9D5789090AC9D71C61930AC115A27181E438E40254CAC8FFFCD89457835 |
039B18138E858E3EF8D9CF7E76E8A1873EF2C8237A0BCA75AA6493D9631CD4E5 |
F755290F072AADA7BD3939D1A98343A37EDDEDB2104D0515EFB02DABDCA9697C |
99AF4DFFD29521859413FD225361F10061A93A17588DEC2514BFEF1F31105687 |
8CB337B74EA114B526E5E402B3A896BCE2FAAB9C7E99FB3806A65FF68BA3DB5C |
40CC53CCF58BCC61FE1D567490209E4D471CA34DC665052C6D072482D6148DDC |
3DA26A1DD9F918FDFA79FBEDB71F3468D0430F3D44A538A9106F547BAB46CFB9 |
A13554BB7A3B4D2CECD024A189A211C6D07F2FBBECB2C58B1743039932CC1888 |
99E58F21059101022EDE14688B4C3E8A5D4B45AF74644F6E208D442D052F53C8 |
1EFA72A52BADE50DE682B50D43537BE697BFFCA5862D3D156D1AAD32BDDBBF4F |
F5561D98D871DD38D2FA5067D7EBE73FFF39DC6C76F00198541DB0689DA576D0 |
900B0FF0E476DD75D7AFBEFA4AAF4DAB9C75EBD61994ABE3A77703C3C2DE825F |
CDB120D4926999F9167F0273EB7937532B5943A41B8DCF4A1BCEB126CC376D14 |
626EC01FAA249449303664566AE269CDCC4BE7EDCE968DB171B725D10BBAA2A6 |
7435735B34C898F449B6A09EAB5FD236CE558C354C6784FEDC1D4F1F8E641751 |
54A50C3CA959DFCECBAE5B4424910204A0E14FC6D0B434D991471EF9F4D34FC3 |
A16D9982D54C2307A4274276C08001FA3D7B892CA96EA24322978B574335C6BA |
EA5288D52D0B0D4B34A747D7F7429B52C3C3731D946B74547A7859090C626319 |
A05E82C344B54A45B8D6914FCA06B77F1FD5707C8A441E352443870E7DFDF5D7 |
4141771D7FCA94C2CDD02530069F6D05A66A43B027B3C6C2F98378D53DDD289E |
7A5C6DC8529360DFB3915B80CBDAF8BF8B0B3B7B8F3DF6907D230BD2C8DEBE4C |
315B6318E15C3A818D1037B8297574E3D16724707EF5AB5FFDF6B7BFB51F66FE |
E4CEDCB917B7E468A68075E232B4854C53F4417B738B02B8F91C53E5243A4C82 |
2636C2ABC4546A4FBDD18EC4646084EB24A5B561B42E3A0B1F7EF861AAE65CC2 |
49708B178E83433B483027CB1C342A9584513A68BE3F6DDDF1E3C7CB13D53B22 |
E1A1DF21BAB6E38E3B6A48B14DC84F7FFA53A9FC4F3EF98454A08F4344D1533B |
D7973BE544342535A5546D1D77DC712B56ACC0ECB002F69E890AB824C1DCE7C6 |
1030F72E32C5981EA489855D24024BB5E71150DFF769A8F1547C8C914AF5D46E |
5597D52795A67D995CBEAA3EAF74EA4A383A569D438B89C039D1FB68319AB91B |
54AAE8CE6B33C46A3565758258C4106B842EBF5CFABC564B93A079D7F223AD70 |
CB28844FED66977430D680A3EE558ACD46A2998970825DAB9042FAD6BDFC5AB9 |
26121C443DE100C74063D08725ADDE7EFBED529D5F6C2651E501334EE78A6260 |
3C05EC5B245BA8D90F5D2F3838FD5F3D0B90114977C4969EC818C85F92E4E390 |
A30BB19F484E47C1E75A73968C083CF2CE1634F2B4A4504B0106E6217621ADEF |
BAE379230043FCC0F524AD40779072B98EDE0B961F22F0E0547B32B97CABBD12 |
01754BAD244F7127B8AE13CEA635F83965087ACD7A19BFEDE8ABCF91655FEAA6 |
694ACFD5D2941AC699D30D0406D302952970BF38F846004E92ED26B5E4014009 |
071A8860634D3D3DE638D1DD134E3861F9F2E56C39F7E1B0078C68A600577F3D |
F6D863253A3FFAE823364CC921F19823EEA611F0CCCDD03D7AE79D77FEF4D34F |
51158C07F4492AE48639598D2931B4D08E84F7434FEEF9E1D429D024B338A50E |
378ED34A9B57FAA3EB0565CAC8C27070B8B485A29945EE0C4CABE9513989A53D |
609B75BBEDB63BE594536EB8E1066F09DAD6F18389BDC03CA2CC6CAD322D7829 |
443DF9D73E6B3C17ADA23EC2B00C73CEDBD84220EB5BC816A25F2950A0FB354B |
E8E898CA41980C1F3E9C226F0904ED408D53BE101A33E572237725EFCD7D9CE4 |
01EB2C6CA4C0AC3A7829E7D5528002F5D70336B3318E2F50821A8551F5FB66EE |
9F63EDD813E8E9199E29A5F80ADC9029870BB0DC013D120C21CC624F2E5E8038 |
407811F069E4EAB738A4463BB498C7E1D492D8D3CD35695A8C9AF775BB50171D |
A600666916ECD0124C46E260BBC5A0420D08081C04717B7D1DB78F86161A1B11 |
78F65C23334B542D652B5761E2204211C59D3BD56A7F15B0CB6F62085ABFD409 |
9190E240EADFA953A74E983081D2611366C1474366881A65A82D7865BD2C7B98 |
47DB8600AE625A7FB6103AC0D451A584995D22CB44733257795AB7DF7EBBC6AF |
7F6D4DC756A0A93DE7628F047C033487917326B50B417E60487A2F82AEA9A807 |
E3FC576D39028F5494C999F8E0830F52F5E5196024A06AA38D652155E5D3A7F6 |
6E600011A4CE5997D83208B1C8A14B1DA52C5C469622F1A9CE82147AC488110B |
162CD04D2EBAE8A2FBEEBBCFADD83A2F760B9A03BF045EEB1883F1BBC7502A67 |
8D2AF6A8593B57273AEEF12DD83CF8463C85E526756210161CCE50DEEA5F5E16 |
33CE92C745C3460961531AB05642C9441DDCC868F3382DBBEDB69B3C4BF3AC95 |
96208630A30705476CF4411DB061B74748F0A851A31E7DF4517A3495FA9A44A0 |
3ED5804698D3022065CC762A68C089E4459FDBB81C07E4409BD3C25CFB0D371D |
2C981691B8140799A44F0AA664E7598BA91C3E1CD124906AB046C64CC4B4694F |
E872B1D1B7AE3A759442C293C926FE21BD5F3A2F1D89356BD6AC5FBFDECCA23D |
A19D53E7D5F50CB3B1D0DC863E1AC26A20B74BA4BDCF9844939DB296CE864211 |
E73C0A446ED486BBB43F866E88669F7FFEF93ADB0EF9761E304D9D1E645C4C4F |
41551F8B854A17DA05A727DE07A882FEDD6AABADA4244C97436CCA969A76C041 |
071DF4CC33CF74BD39121CC4AC33C13E15F6C09843A7723B2F7A36EB8BBA09B8 |
E2924FDFA8A8CFFE8117072362EC0920BB5F324625DDE071BE69DB872D8959A0 |
A579E4914760C636E4185259305032F01F7CF041DA2D5C71C515F3E7CFD76780 |
E042194DEB18BBA79DFBD0D36576EB92F55DBACCC866E30CCBBDB39A207A90F1 |
E93EB49D1A8ECF3B8403B9819E78F1C517CF9D3BB7F3FE292B4B7B45C68F5445 |
3E30765D6492B2C1EAF867F4186AD61D3FC0C0579DA37DF6D967DDBA753A205A |
D03DF6D863EDDAB520D5DD3095ABB40AAEDF6D854A364F26912DBC0DC3C4BA8E |
A7950BF7B56D2EBFFCF2C9932793D592FA2995E121D691E38E90F9EBA0174B59 |
F01815288D9FC8562BD7C4E3A3530B8BEA6DE5DA0A22A27A23FA1F370A76A368 |
AC78E6A302C62EA153727457E2EAD8176FE42E1D48096879522E30EB342C6236 |
903E25DA7BA466B1771DB42BB108787E38C5242070F7D105FBEDB7DF5B6FBD05 |
29A1E939DD8F9999717D91893580CE4512402F37CDBC63E479FFFDF77FF9E597 |
537BAD0730029309966CAF78CF38755E7D9C52583F01799D75D6594B972EA576 |
D752BA91F96B4DED8E07FFFD025585A0FB0A1A52D2C020C7227FDE0FBF0CD9C0 |
B9F92EF49DAEF9565751AE5F6A4843860C79EAA9A75CD7657C32DAC5C9B99EDC |
5EDB9C0CC667119ED25FC78C1973F3CD37E31CDBF2658EB89B7E397AF4E8458B |
16A18961602925A862452349327969D3A64D2334EDF6F5F520292D8F74C05D77 |
DD65586F7C040A03F3227230D15305ABB9CA0333418AF4B476F9EAD5AB09599B |
FA27B59BB455E39440977CD4D8F4AF660613C4B9D2C81B50025F94AE9A79183B |
76ECF5D75F6FEE4979BA37DD7493D98075730A2ADC7815EE270DDB4935BC5B80 |
BBB42AD37CC258628715E5C74C5AC7DB12E70EB12EB6844588A2DF78A29AC810 |
82839D138BD36217E478D4CDDCCBA37B4313F8D4618937425B785364BBAB58D5 |
B4F765FE57E204781E55988C7818DDCDB4B3053282BEC47C57BA897620B1076E |
E88219E61CCF467726B91B43DCF13E3680A0CA019CC17E7688CE03A680B06A1F |
9ACD389AB3CE16C5640A3A8CB7D68ED2382510D00D6E6BD8A98063AA3E0A3D76 |
9723318859B6220841C78D63D7C8DEA2B7A6EC609DDFE87C47EDCB2565205B19 |
0966FC510A065C94AECC18DBACD9DE2F32EECC526E9B4F4A4DBA33AC312BCEC7 |
D9B14171600AEB33B2921F7AE8214E9FD3254E49985DD2BC3AAE023551A0C3B1 |
8DDC8F39EA7BCFBFCF32351AE848A781DC5CC4E34CEDFA3546BC4A27881970A9 |
A4E48F6C4A760EF0460E17E3343D510A7C3E3E2675216828C180989BAB883C99 |
EB4FF0E2B56F34116ECFAEEFE2A73602378237376FC561E33C0301B508881A4E |
7F923E0344EEDE6A5ED7C8CA4BF4A399FB127ADE2D2C8CC14E85158F9EB3DFD3 |
5F8FADEAB2BD89FB1BADAD58A91C294AAAEED3CA24A0F81C7C5D524CA69CAC45 |
8D1F3BD1214DBD9D0BF25C5183A00163D9C8CDC5EAAD9FFF29174290001A1A45 |
DA57D60F3B8A55D38942677862F579923DF8EE006BC91211086139CC2400A697 |
0D536F70B83E1BAC8D9CA4050B16B886CFD22122992549E5C9BDF7DE7BF63F62 |
F29EC0209C44C8293EE30EC72513BE744587D81A54C7FB9A6BAE59B26489EC4B |
D7E8F383F37F48BDABAEBAEA8E3BEE881DA04B979388F197744F933F7DCB2DB7 |
60CE5A14F4E6D66C884BB2A70EC59B47C23619C610F90EB740C63C326D45CAFD |
0423B289358DDD8BA357473A46BFDF7DF7DDE5DF90706916CD6D58A31AEC8591 |
2824D1F50874A1CF2C123C7A511A1EF146C7E45051FE8A13B7CEF54648545C65 |
F0F9FA62EC38C96D510CCEB8EFBDF7DEF445BEF7DE7BB58E7A352CCE2DB6D802 |
6D2D990077234CCEBFFAD5AF9E7DF6590666CD14315996C6CD4C05D8991BC6D8 |
8AD85BE3BA1D4873FA0602DA934F3E59E374E36D1AD6791E48DB1358D67B91E3 |
E318C2C8612B9096A63888CC9EF3E23DB9D91AEDBCC8A140C0E91635F2D05E7B |
ED353EE9F422D3CBD9B1A5E2938509058932F2A72FF7C18CDD90520869980836 |
E227C8145080CE1C8243326F41CA7C612983762B15308F2F1598734E5C7748D5 |
4AA44D29E976D6CCA8E088A1ED7CA2D321101251854291ABC5A8D3B70E3A1921 |
6282E89ED03FAB91EB1398352B6903655D7DDB5F8291AA4B4F84B3A92734E673 |
AF43CC02AC3F6A5EAB220A31DAE315E1155C7D8196F56695BC38FAE8A39F7CF2 |
49DE1D8224F6812613299F72767973191C9BEB0215E5BA7EF06E66C947719658 |
DFB6DE7A6B6ACF98077954905CF2155BC76C2D8332348D3BEFBCF39FFEF42738 |
476B729604575A05F7F58E3BEEE8B8A8C49CE432A9B894633C6C518C21D35DF5 |
1454E4AEBB60E74F9A3469FEFCF9383416E284D96B72F984D4B0746D9148F2EA |
37883C97D3940A1E40751ADD5AA3E04D5FA37BEA63BA1B1B69D0A041EFBFFFBE |
3F69239B78AC83D8BC2F4A2BD2E13979ECC62A58BDFAA23B2A1AFB8A67C94233 |
5D988F7A96DC08B7F1B6764F99CEE2FEFBEF3FF3CC33F190F42F19B8C30F3FFC |
85175EE8FABE403420F0F2D9DF90DB4BF35FA012280F83481AB93B35E6AC535A |
2528493374A52D81EA1BB928FFEAABAF9E316386C4C5F8F1E365E12D5AB4E8D2 |
4B2FC562D05C1179D6CDEFBEFBEE51A346FDFEF7BF3FF6D8637D5808FE918C37 |
9997E6E1A28B2E92B5C47218E64290D975C6A5288533CA29D035E3B01AACE44F |
BA941958936C88B163C7A65CA985DD83114C2CCA8830DB1F77DD7597CC885641 |
6F47628279E675501950BE981D052146EE869C233B13D224074B402FEEB3CF3E |
5A74E05D58DE0C8C43643118777E0ADCA829C4667C94D038461A3532A785E601 |
41610FC7AE604C83F6E5D6B7A5E76E0C9374DDA07E49A832511829501F704E76 |
DA69A7AFBEFA0A64B2AB27A1D063F963790945087A1313D7992E8E1D892D8C48 |
C24C66557A73AF78986035A1129DB4D62148EE438B29D4CA78694C4593A1F8B4 |
EB9E1249EBD7AF4F45B4D3C1B17FFCD21359BC66EE200D3A867C095314DDE2AA |
F90766054E449F21CAB121F71EA0860A92901462686693367A8E5E1FEC0F13FA |
A4FFF514300AC08026BD0876B13B967038E1BD239BE8AEF500DAB14264956BFE |
0DE548ED84919EF9AE0506A5F190E56DE6DEF24CB25673B7DD76D3CE6187C7E2 |
108448A4B4E5B20B054683FA723B8B1C285CF91A34752B143FE8875D77DDF5CF |
7FFEB3FFEA784FCA71A618306F0506E61A83CFADFD52B6864B2F122BC4A8AD1A |
3870E01B6FBC0131CB942953A44E0E3EF8601904E4F908D23A004BEE40F71C3D |
7A34C5F14C1D1F88A68311C8A5D172BAADC3E25FAFB9E61AE960377633E971CD |
7C22550DD4009B22198DAE2D51A698F6D9AAB4330AC24DA64D9BA6A9704B06B3 |
E7A6C260D212CB389050C2D88A76B6539B4E769AEC938405A292013B84E67A5F |
4E8413B4A85E572A32E6584D4EE233E2613BD1BF29B77892BB2267D7FCBB7AC4 |
F9E79FFFCA2BAFE001632A99AA562F72E289276A6358A8A2D2F431FD6CA48B43 |
B84C6FA42F341CAF9453F025D1AAAF0C1B366CC1820578D2C8370DDB08E41871 |
C40487A9307503F73945ADC33872E4C8C58B17EBFE285DDB5EDC13C618F85E62 |
E246BFD18789035968A47642B7945150A970849881EE1BD404058E70A2DB992F |
D04FA81659409A052C0BB685A3C43C184E6083938F3CF2C837DF7C73E2C489B2 |
E968FFA23BEB29FA0AE11DD35E12A907B5C1C69235C0E482E635E69E63C34BE2 |
82A482285CE2E08F7FFC2325CFFAF0565B6D25E9C027410178E1379742322C59 |
4B357CF87059A39046E12EF06AB07CD830ACBA4FA3A8F2266A8725E19A6CAC7E |
4479ABBDE32C1E061CAD9AF3923EF009EF6F2EFFFFEF8B400505BBC62EDE79E7 |
9D12ACE60440E2CB7905340E864E675BAECFCD37DF4C168D53012703484BCEB0 |
453C334FE178CDFCF32D668923E084A296126164524F5641CB8AD06F65127510 |
3AC48DB41B2172B1B7A1016B93836FD75B80BEAEE9EBAC3B902CD4429F76DA69 |
1270700B1353F92EB794370AD42206B58DDF594339E984910425D04B738781C8 |
4D4518D059C09933672E5CB890BE52925C1ABFDE9DBE082E66450C2183704428 |
E4D5B728226AE6CEB22638848F02A9AA7F291441983A6FCA1513AB7AEE09279C |
20EF2A15BDB924256296BAEBFBDAF7050F41D3025B54A93D95C8B734C8DFFCE6 |
372B56ACD0B089581885C7A18B1D17F49AFA22A7D25AC1DE556A6F275CD29466 |
648C3452361FED201A6F61462D5936F3E6CDFBF6DB6FADF5FD52C631914A40DF |
47504E2C3437018B3EA691ECB7DF7EEFBEFB2E02331560692DB781A5AE1AB227 |
A0F32503D12D53BD09ED89192FDDCA95F41C13633522C0FBBBDC6EA82FF7C340 |
A611D701518FEEE06EA48DF474EA1A9003DE905D4173D103768C16A810BAE381 |
071E909C7114C7F493F15CA7EC48F4E4E64BDE36B10ECD88998D8E72D506A5C7 |
DCB871E3A445860C19F2E28B2FC68ECDAEE19B3C79B2A42461318CA094D9A3FA |
0A0E5E1D54B435795C8D9EA2FEAE8292A113E471B1BC47A5A9E11C4224C4AB6A |
2432BDC13D4D9D3A553FB3DB747FA84FF00BF1B34B74DE9C9C4DB611FCE15724 |
B1622139603A18E3C78FA799A043D335DD93646168F289736A21060D1AB47AF5 |
6AF9D325AA2F340AFB29E6CF0804B93EC74C78ADDA22DDFF89970629198A5195 |
323394F33140F9F50A9A1622AEADCCDBAC8F4923EA93FCAC49AE32ECB83C4BF5 |
A87E1F92545875AEA337642322EF52E6F8753033A2FD7FF2939F38D6DA2C6884 |
C9CEFCFAD7BF7EFCF1C7F55E18BBF514AD8E64326CE2E70E1E7246746A3445A6 |
6225118571E90ABAAAFB63CF9532A6D81CF86150C4C056C60982DFA6119A9B19 |
D6C4C56BA6C2D8274944741110099E44CADD249958CC0BCC62433D52287968B6 |
B7808C10390E7BF4362C8E3A2FE65CD3621241FC66F7D5415C10F300234652CC |
3902746AF4BCFB32DDBF8EB65EA4AFE027D72C69F561E5BBECB2CB24A6500F24 |
D7A0D7FD2E7446076688DC2727CD8AD3BD9BEA419612F7A32F13B532C3BAB4DB |
77DC7147592D11F11E39C62585D09DBDB9A15EEA50C08D5C6BC7F2D1AD8730AF |
67C086720A58F4286063EAC7668D3368F1B255EA208D7349C4DB238907314E9B |
9B6653D1B3A85632132DABA66D400D3A2E75C942F5EB33720913ED2222AFA469 |
CD7D0465A98D24306810DAE8325CB42AA2D06C6F8F8DFEAA0B416FC81DE864B2 |
593B227AE0ACC1341E3A74E87DF7DD07B796D128FBEEBBAF1486768F2405C579 |
B006B229F52D8DBE2A5468A82A3FEFB3CF3EAB56AD024B86CF7DF2C927CB0895 |
EEA790AEAFE8E40A97371160DF8A33499E98945E2AFAF33433C73D25D8A01EFA |
A12EAA2F4071BA1B2C77C4B270CE3478F6BDCEA48EB4ADECAAFBA440A2E6DA18 |
7B72ACB79B052132B063B493E4FABFF4D24B5803CC063310DB95FC2F75F1BE9A |
191D575488931D1C7B5AFA70CEF51BE27890891263183E7CF8BDF7DE5B95DAB0 |
59CDD4B91761CDFC3743073D1BC5C84433CB5B70508A0A75808D2A6D3F1D7BA3 |
D0FB329F3EC00D9422F128FD558B08EF66D7F150FA0C43426C0A198B946CFCD9 |
5C88FB87A6C255A0242C775C04721FB2F96476DF70C30DAE743451062927B23F |
4EACF05DD43089734B0C6C44EEAF77D7599629990A058FBA8D6902330C13D485 |
8F25F6268F2CF9114A638CA7DB70716ABABE2F45B71484C04E0C8CDC78027DB1 |
950B6D23F49D9204B3A3901B721F71F9C71286B8AD7CA5A4B6274C9870FBEDB7 |
1B6F55625533379FF4F44D37DDC4F6D06CEFBEFBEE52A8F6D1ED0B12FFC342F2 |
E9B01964DFDDCA5B7FD260A8AD4751495A7655C04EDE7367771120054E93F966 |
E8959B32BB270040B69C09BF305674134D94AB409BA16F4D4FE831EAA07A2BF3 |
46917945969AFBC14D480DBD761343EE2FC571FCF1C7CF9E3D9B11BAF632750B |
419B66DF2143A72F61BC828BD476B9CEC277456F6C52A56674778D5969735A01 |
C71AE58D345E350231925D303B9C64BDD5C48913D9AC3A4EBA29E2CC34A49A1D |
BD2DD3A1054B8539A0B5D187F57B4A955337B08C332E36DC860D1BB678F1625C |
076D5F999C3A605A180D03DC5A5F669E4B8542C256E06A861EABF1EDA835B443 |
F323CAABAAAEE8CDA422E20403B0063C6AD4A8BBEFBE5B071B69AE4FEAA15565 |
126C14809A71FCE67B739E2FD6F931FF5A23FD468F28355672806833BEEFE6BA |
7A435F3C98EAB4D073E6CC41D3B8909F774148999A0EFB8339EF9C4F5C2237BC |
C218BAEAAAABB4A9FEDFE2AA9AFF883D2163E7BA4623AB4D59C0B922950BEC4E |
E3D96BAFBDDE78E30DB20FFA3DE5B93AD8580698D5AE52709D5ED7F1B4722B24 |
77EC6814FD98B5BE54E8C6636F4D1C6B39E073A82A3732E8D24F69164DC1F52E |
7A1CFAC315C0BCB5F715B361984869F20D3F71320F9F0662044B0CCDD2175F7C |
419006FF8332D98B2EBAE8AEBBEE924BB76EDD3AB45DEA10A00646A5E04BB966 |
B76A3EF1EACC4E6C4E2559F3D80729BB8FBC781456CDD0D54DA3A5233D8B427D |
4B4C25D0B08BB30C920896E31428573506C23C7DA14F063FC4463D067592F570 |
18195D48E400A54E602FE5389C756A2A7C50A9732F50CCA9B70247B4730DA457 |
90D8D165726C20A6366CCA9871253254A78C90C720765B3633EBB976800DA99F |
F5146D033C60EE49A4C7907EF46EDCB734FF4E39E0CF386DBBA76EC41A869EE1 |
34737E29F03582183241DD4AEBA5E1912CC38688989EAE5BAEB3C6E1EF75635D |
37682337F460CAFC335E26F00142795E0F748369421D168009599725113989AE |
E52298F9084DC8407A73DBE09EDC9C98A9744E9A7A067A45D09A3EC213DCB4DC |
6564FAF019679C215DE862D04E68DC8FBE5AB91715800B09FAA54B97D23B0C64 |
2C1693A5554D48D055EDBCAFFB7E3B76CA0EE60E7ACD638E39E6C5175F343775 |
A9FAAB95CB557DA836CBFB6EAE8BC3D3939B43C8BC63D5A251CC3130CEC02138 |
A31B36E45E3D5DCBDB98106EE2D2E19A2A8054A81623262C9876D861872FBFFC |
D21544B1E0C13446388B70436242F168728D36B471202422755B09D6E9D3A75F |
7BEDB55DC7437414D627C292FA8DEC514D141FE045A8A276ADA4E736D2E4562D |
8143EE311F69B04F29499902872542965DEA2E5BE0155C0864B88D4628AF5AC6 |
A8016228BF112346DC73CF3D3ABF5F7DF595A791BA8E58491247EB3DCC7E366F |
83394D2D3A3A2FFD69EAD4A953A64C41753169FAA274D575D75DA7DFF705CA33 |
1B3D3DB98BB68432A977BE6E827A57B32006D9B470ADEB33CEA99BCCAB93438D |
3F6DBBEDB61A89DE822081A9D91C3623476BEE3F5869894968EF5D7AE9A5325E |
79051786B9CC4F72F8EBAFBF8614052E4F1E5D0A994662BE880FE72070ABE8E1 |
C42CBE1D7A6E6E1AFF147A1FF1F9A87A4D6FE0B85D0A5477680720BDE8234241 |
C6F9DA204632980A82EC550A7172EBBE56BEE25677D30B8D61C890216FBEF926 |
25B89EE179F3E6690F13814332138473596C3334A9E4BF31076CD9B2891CF0C6 |
2AA5C2E8B3AC71F537195F1AD1B8F946CAE2DE1D007931FD7BD45147BDF0C20B |
9ED9CE51A61CF7236D204113415271FA584B1D8373CF3D17AE061A189C7FFEF9 |
F7DF7F3F063B2327E4E5C2891AE963D4773370D1812EC141711CA91E32DD2A68 |
481119440B0CB374791956AA95CAB871E366CD9A65DDE02E754495396071D377 |
15B855AF76C92597AC58B14242CD02AB1427295DB6229904F91FBBECB28B9CD1 |
AA5C1A715442C4ECBFE8AC732BCD0364C56C71A6452F3B66CC98993367920867 |
78CC806371C86882C9B1956494C53EA82E12AD79AFB8570DDAF48EE23735AD78 |
6A2E371B7027380663041662571B78E4C8914B962CA98A7CF4F7B241E6BC9789 |
A6BB7E3EFAC7846163C13A9D0CB0EA4A9C39CD406E6CB00C2570A79E7AEAF3CF |
3F0FC77D5F6E01D9087C2C1087B9DB8FD71AEFBCE6EDEC06F84C514982DE825F |
1AEA7534A2B68A14B96C6B8AC539C2A6A941B8DF7EFBEDD24FBC9415867E298D |
A593EE3C5F8C6D5AB0E23610C0831E8B0207EA2C74CF050B168C1F3F9EF63808 |
6597446B18FA18BDEB39FE2E4637DC3A054F111BAB0A9467799532EE526F813D |
544A8DA79C8C67D19DD9B13875ADAD2BEBA2FB6BA0A271BFF8639E9CDEDC273B |
86B23D4E0C08948DABE17DC44A043EAE4A22CBEBB77314D067D66E373FC4AC44 |
0A245FDE3650ADB1758D64F2544456869273BCE79E7BBA060F3C9A4B7B060C18 |
207FD2E456B653B136F4E8529E281EC9E879773FA8449F6CDD8C1E3D5A6ADF85 |
1936FAA27AD35349D844A8A7F6E8B1C71E2B230290646C475502671B18A6D703 |
E9CEEF29F0A5C20CACB96362D4F25A43831A4BB973B0959CC64933C11A012D1D |
2345A545C2A86400DA2B975D769994BA6E75F5D557CF9F3F9FB351E3419AD94A |
0B40AF08DDCD75CF8D76226B475C818CE92B1471975AA469BA587222365D438E |
551CCE44381B9962C912AD067CD40A75E888899A794B05108FAD661BC50760FF |
FDF77FE79D77860D1BF6E0830FCAE9FCAFFFFA2F363DF49058D08DA2E4D47773 |
DCC20D6DA00D02B3E6FE396EA06B498406AA09E1627968B4148170F64A759F0E |
15F63722128DE812934C4FD1BB547A77D1A24548B11F71FFAA0B303F569A5D81 |
9AF0462B345720E3AEB925E2DA93DB4A3A830EAB3647D582D8678A38AA24AC3E |
2F53F8965B6E292101816D33C97C57F383ADB6C973E43A5ABEAB316B27EB74FB |
F3A41535BD529CF265E5D5FDE94F7FE28B383DD41AB84A02EA02EA8E388F646A |
8909A15F7115105F98532933273857C5EC1974065A05998B26B6A442E6423347 |
C1AE7911284F48A1D75C6C746DD6FEFA26192E3349A1963712F146056C6FCFF8 |
C16857C5AA45829778F3EE25C0875991AAA60B29C4576C076078A58E92B66660 |
60ECF414FD6113757972DC8F072FCBA99312AA99923F8E86F61B9148BDA38BA1 |
1BB9B996C195A95B6E985B11FEC15A72BD9F11FBA62B21000330458FD601D13E |
ACAA38FDFBD2542DB0639EDAEB707A9520BB202352E676D0C6DA6AABAD48EFD3 |
BB036B5A6AF28B2FBE30AA0D83345A4C299842CEE5A44220B20B591207940CAB |
4945941F5CB1B4EFE1871FBE78F162588B538E5D786FD930EFFABE80B463115E |
6A6F6969861D123035028E6D87BBE31C3E8A990809E5AA94D0B14D6DE545BE4F |
DD04A811C10D6C4F83413A413755E349816CD2CC9D35EBEEA2024D9D06A3D9EB |
DC97BE88161A730F2D3BDA97D9D3B0A57A11C4D8B692FBBC7B49CBBAFC8CF88F |
3D307D4BFFD598CF38E38CD75F7F5DF644E472411CE8563487A86ACBC8198E88 |
0FE254B84D4417F1E62969F8110AD238203C4B5EC7F5637A6BE9B9E820F6F7FE |
35EB9B0A852491A4A9937BA7535015B1A090AF99D93165558F1D3B5692221585 |
827A778D9F9026D23C2A42934F3933D228088AC98DE907F7FA74C8D1D5EADC41 |
4B294DF9EDB7DFEA4F9C8EAA715A2C103BD5B30E39E490F7DE7B4F1B892202A3 |
AB4C0EAF3DA0B30FC2D63484FAFA8D37DEA839D1085381CCF22348EDBB75AB49 |
BE3454D8D74BFB2752341B56865C226B8669EB042D5F44A9E3A294660F13DFB9 |
4902B61B42574127A1AAE6A72777864685580EC4D3DACA0C1B462D1178B8F7DE |
7BAFB8E20AB0321C61A20B64C79C888DF4859C9A94C3A7A99D8897AB11AE9451 |
2CEE9E022D01782EB466098AECCD8318418A42FA868ED4F080E2E3E730D57E47 |
DF0A01E2AA21061F49461DFE01706E226EA39453E6C6E7C00E1932E40F7FF883 |
19D9604ED54421D0B41B31D78C8435059EB3FB5DD7B15201C7B204FD3C7BF6EC |
993367368AE6395161F024A632820BAC2AEC6AE89C482FE282A011A3024E21A9 |
03911077888DF34A663800600E30879010017059FC729DC3E38F3F5EFEF71147 |
1C21A9147B5475DDD0B1FE0C6C213BA011E0E3D29D9A04973577DE274636287F |
8ABFC1DC4601BBA444A2999349B126F3A9D1C2F9100B6131473ACB4EAAD691B7 |
20A6CDFE062152F5F91D76D84126148C89CCAD3EEFC6359D97FC12D93DCB962D |
23A514DBCA968296296B5CC35C7FF2939FC875368F29297F37C1E4F8C1209672 |
CD831BFEB84EC9E11D78D3AA6C2324085801EA501D57D4B4ECB8E38EDA3F84BF |
C8103B7CF4032F6C8856EE8B0752C37166C7CCFF7B71E9E69B51017B2AB83FC8 |
DB1A030B548B3EB6CB2EBB681E060F1EBC72E54AEBDA940BF7356003C4224A03 |
A7018DEBC82A62CE7E1EF1616D6CCC477B4B1419D38738D5F617C70A8C24D8AC |
11DAAE51B0F9E39DDB7137C3A56C119DF7871E7A883ED991C426153066F410AA |
5733A657D090282AD55BE8D103070E94B26FE4EA11346B6CB9135DAE18C93345 |
94F77C29CE17E3A2DB6DB79DDEC80EA8C63F71E24479F38E42D5D4EBDB31603C |
B16AB6A4455A99C28543A7CDA96701C74939801C33E50ECE79F2B12CF17F9090 |
C60AB0D6B15B576AEF1AC20E89002BB8C36CE5F395E85AA476C2108FDF808356 |
26DF8E832C858EA3CA68E6BEB4AEA0F3A8806496B22DEC762EB2BF4696408482 |
794DDBC4850B179E7FFEF953A64C917E6400FBEFBFFFAA55AB6223C5AEE58ED6 |
F1DD0FAAB371104EE95EEE6C45EB2E90694EBFA7C071D8CA2C3320ADAD35894D |
B94D4D7C67832A5D32E1A98FFD9EB03B62C75FFD5506357B3A164AF2AF648D66 |
99EC2391C02A4F0EAA1744B0F57AAC8E90E0D086C3C1AA29E74839B5E62239C6 |
465D2FBEACE482164966C1F70D9933E0101FD7E5EA8C93E081591DB0B8AB8817 |
BA0EC68E4B6FEEA0DED74E7F53BA2EBCF0C2254B9620C87097C1FB6D3252C283 |
3011FA72AFA4D8C8084E41EFFE54C4FA623990398CF0D4FB32B377A3C0B8EA2B |
648E35BD129D6C1897BAA64DF5B56DE6DEE088124E1DDE89812AA4CA7041FA0B |
5273DD2AB11FCC73F61B0019FD408317CEED77FD6CEB597581BAB74242740214 |
AF5A2FE3A49AB9C585F6E7F0E1C39F7FFE79B83C7D5A4DB2EF824BE26C4435E8 |
C6C15601D7032117DE9E46326AD4A8458B1691B327FC130F94F3C15DC7C932D9 |
3F767D0E2B6E91A23BEBE90874935AE88B26711C3972A44ED689279EB87CF972 |
7842503CBAA4EAE6CE9D4BCA80DC9E8FA1E3161BDAFBEBA5F6A6524E5B7A8458 |
75C481626212ED684078FC13D6395202BB1C8B0AC76693204DD33EA08323C745 |
0C44F786EE995B6CB10565909037E162729A2EBDF4D2FBEEBB4F7776FF031C47 |
BBD7D6EE2407D9CFA88618D66E0458357BC3001466C95979C3FBD96054D0D8DC |
B7E34E4EA4995984E1562AC5D8FD15EF73B72D90F4D673C90B98119A12ED98C1 |
8DE2C211FE18D721ABC2CFF7DC738F76385B145673A2084608354269591C5E8C |
10D485A0630F321391C7B26EBD091825D2E3AE45D356663F95D8CC1D9CB10DD8 |
087CEBB6DDA8CCD351D12BD961C508E0846068FB0DF5E8B163C7DE78E38DD6FA |
EE4A218BF2FAEBAFD7B104FBD095D52C2E1B51325749F1E24E4873C93EA064B3 |
EA3EC71D77DC5B6FBDA5910F1D3AF4EDB7DFD6FC38E06C3E01F0F1E6BBB11CD1 |
670E38E0007DCB4F27AB873BE5C177520F5609686FD092E95A25A08DB8D6E36C |
FAD43F62AFBDF692BBA0F15032CE2F23DEA19111B08DC0F3CE6AEA117A966462 |
8444A69CD0A5C29B0C25CD9509653742E9245212EC1E8D8F6A041667DEACD1A8 |
220D001492830435A0B69A798EA538B6FAD9EA6E2A473E025BB05FF7AFBA509F |
0EA5EA925FFBD1471FD5A45AE8138555A731432B9632EAC7FD85B6DA6AAB934E |
3AE9B6DB6E734E2E6682987CEAECBD102C0D2FAECF134D41EBB0E5800463226C |
927AD34A173DA12533A9452A42EE3A385AB2CB2FBF5C8A9678604C346A0C9326 |
4D9A3E7D3ACB41B071FCF8F19F7DF6D9B265CB48BB02B1DE7AEBADA521B431E4 |
F16B78FA0D68067A0CB83026E2465B994B21756BBA17B575D4825684BA212006 |
6A8E756A3ABB923B275AB3DF785FEBE956A87A4FEDA95F42860E84122CD43B5E |
77DD7593274F6654BBEFBEFBBA75EB52F6BEB0BFA12871E4C3B95BB426388C18 |
3EC149F544E9A103070EFCF0C30F1943A3C08723580C0626D645C04333AF4D45 |
9514E3DF71C71DB5C7B45574B7EDB7DF5EE274E79D775EBB762D5AA3A6B20861 |
6ECC798CA43212DDEDF3CF3FC710715F8DE8C7A7DC94857A7A0D9BD8156C24D8 |
88B8E6066FC2CE41FD6D2B93E720674AE602EB5BA980B1AC6390992D62A1DC28 |
7A806B2E3EFEF863EAB253202F751CC3704417DD1B62C720B0C47167414EE967 |
2939292DCD8E7E09CA91978CEC9AFC0B8889DD8F5DEF57D0CED66FA04136A567 |
D5FB723E298BA2025237D4AA0F1B364C4F9776C76A236A7AFAE9A73FFEF8E35D |
EFE386C4BA21C5EF085F24179F893966A01CAE70D0BFE79D77DEC30F3F0CE297 |
936C79A77F252CBA92EFD758CA787E11B755D37CC2EDF0E8D8FACA2BAF1075A9 |
A9578EF87B8CB694C32108326C7CEC301F54A33D2FB9E412D9927C1E919D0244 |
73F4E8D10B172EA4AE86109039FA5D0762E2DCFAD06B2A6A43F522FBEEBBEF1B |
6FBCC1729F71C6198F3DF6180A4CAA4BC6D39D77DEC99F527FAE56AE7065D892 |
1A12F429343900C7410FD17A50DB8F782E991169113DE5E69B6F1E376E5C1590 |
DBA916A492FD485D184F0639F76516B0144282680EE008902F4A087036A377CB |
FD29D077D9490A7DDAD3A6FA8B03EA7412C4B6A3BB569811D01FB339EE481281 |
073DDDC4BAE693379AAF6452F0F40889F27F234EC7423F26FC4053EABF3E2C11 |
6A64F9ABE7622B1C79E491B2D43506EC186D1EEDBD112346B0B14B21D6CEF989 |
79012060B07A21815347014CCA6E1C265ACA25C2B02A49B0D3012515BDEE5326 |
774326633D136A8ED52B113615C1CC0E6752B6A7B31081A22EF7407F1B774242 |
213278A422C92515003A045E528926A4444DF3125369D2B00B160AF70075C214 |
BE552C86B846F10720EEE4C2A45308FD6A909A64B7D4E37D75BA7588EEBAEBAE |
2BAFBCD222CB85E32505CC4CD679C02E3C47AC1C7DF4D12B57AE749728B6087C |
BCFE162B0AE4A795DBCD72B1006CBE0DED1D37F94023370971C240337EE18517 |
4A3E928872ECDA20DB94BD67443049440EA78D4DAA05EC8857BDAF513F78C031 |
4268E3D420F81AF46623D44FA70C04D36A31A40863D9488392B377AE8173157F |
CC983672396C55FBB91ACF3E16EA3472F7EF5471E19A603AE0B8D7746B4FB963 |
0C69A4280ACD0FE0E23C1317E028BB2208C005FD398E38E288175E78C1BCEA64 |
68908FC0550C2E4D39BA6EDD00C6B5EAD58C774D856D41DC1B1E34D28A6681AF |
6728AB9907F33769C6745864BB9010490585B286A7A77076C82DF5EBFE5517C6 |
B8BBE099B6BA8AE2943D5C2A156B6416688D2DD69AFBC8380442C319883F5B99 |
0DD4C10F57EAF3F51B6EB861CE9C3974AD60D71921D1CC5C4E350AA6C4B52251 |
F3D7BFFED5FBDCDDCAF120ED8523E6A88474C4CE0373353387FA9FFEE99F3430 |
98B0F481534E39E5C9279F44677BDB388318AF98D94D81E2C6253D4C5794B9CD |
4C598A5B8F7CD383D88D006B3028CDAB5563A8E1C3F1492D3A459B7013B9B82B |
2A601FB72DB7DC92A085259EB360B8A1A4186CF13BBF03179515B025248EAC83 |
D5F68E6C33B1401107431A915010FBB62774C3C41F75FD3D75D8407A017001EA |
8C6662A7F4B3FE027F60D82678284B45F0594E39D9AE6A050C1DA41F6E1B1A21 |
D9C4939CCAF16AA6F6B275577E46EF7C230F65CD02F3FE46333A714BF081301A |
0214FDA4773BF5D453972E5D6A0A536C3164849CC86BAFBD16441294601140D1 |
DC142315885F9F49E6C5E9CC9E8AE68926CC8B97F7165B109955938B32BE2315 |
36574C48EBF784D1C8FB7A96800B113535E2CCF40BFCEC4A0CFFCC4D08BAD67B |
72C0025D69CE268E768F375C15E1092058BDCEAC59B3E465CE9E3D7BEEDCB932 |
3C6B9E4B034A7D60F7DD777FEFBDF7FA6A39A51B99D501B63F76085FD1D8860C |
19B27CF9726265EC45F9C1F7DE7B2F796E9BC0359E3AAE0CA1722870F53A35A8 |
DA1F7131D53675395A1137471CCFFC91AE76B5AC214FA657D07E7089943940F4 |
57B9FEE3C78FD70E31477FCDFC479E3C83AD5220A831D9322AD6F90E770CD487 |
F90A75F3C83BF6BF05371683B3F8291BA01640CC79CD38F5A0F9F3E75F7CF1C5 |
AE08E2D8824DC35221676692042957CD899CBF850B17E272B14529A037451AF1 |
3D8AC2A9FF71A0252668E226D4E3501B78BA93264DBAF9E69BB186811DF4167D |
215328A24343986829A29C3CED36CA1DDE885D4F62F2CEA90DBBD116539AC956 |
C1D9E949B6B96010965996B0833164E3B3F05391A2AECAC32F8A10F456A0EA44 |
08C08765E08506306FDEBCB3CF3EDB2018FC1992FD314BAA8922859402EF951D |
5FB308185715BB126DB3CD3612C8C71F7FFCD34F3F8DA88CC0AB1A79528F068F |
0D6A634905D50706B4BBE093FF8244F32EB5DEF50FB12D105F79E8A187CE39E7 |
1C7632456536E99AB9DF7C23F4CA8C8EAF3B43A722F0DECA64B7751EF0F4E9D3 |
AFBFFE7A2AA9A920E25EF6C9BC8766CE9C29D75BCAE9DAE24AEDEC2764FBF403 |
A5B1E85AA3F9533B16BA66A2010B60927CD7DE0EBDA768F58C04C48A77BAC589 |
4F3604E72152DBD42C7C2B70935E71C515922C9A476D41FDFE6F7FFB5B2C5A95 |
50D6C67AE4914790207ACAA5975EBA60C1023A354148C943F937EE69E7807513 |
02A4555C1F44B64D79AA3B4B765310E9BA676B027FAB93F233E29B2480A032A8 |
99876620BC445B50F75205AF4724FDF4A73FD59BCA2C93D7EE84B79EE2523149 |
019D01A8EAA3A964906DD590607A019D78E699673EF0C00384AFFB0B9EAABA34 |
813A9F7A4DD90ACF3CF38C8BA3FA0A26B83DF6D863FDFAF504667A8AF63E9418 |
19319B724883FC3D3490B6F14B7D6C089042015183E236D31C47EFA69B6E9A3A |
752ABAB695B971FC617040C056C96598DD5073AB91031A9709AF7744D53532F7 |
02F5FDB8AD29B7736747F504EAE9AEE304C44E89ADDE45239413CCFB229A314F |
8F3CF2C8175F7C11C094AB5C8C0A76B180467BECB1C782B18F891B23CC35C894 |
2B15BB8E67C28409B272308239899AEA01030668B7BB076DCA529B208A21A556 |
57299732B74233F694ED60A2592CAB8F1B05786626C75070561B1719B41AE702 |
1A8D942DFE58631A5736722D59C4C701A742AFECBFFFFECF3DF75CACE734B0D4 |
731B6387262490C8D2BEF230F40159459A7F685CA5CC64BB983CC414FA8EB453 |
68400AC009FE585063442AE725DA79CDD096B8F3AAFABD5D2F1C1BCB3DCFF929 |
A79CF2DA6BAFE94FA41B40A1437074D249273DF6D863541563D811A622B4101B |
E9A600DF416D9B00C44102F208AC854F7A4FE87FA31F22A0D89BB9EE2069AC7A |
B0249D9947E2E70D85775FB6C18307BFF5D65BADA25B834C5A0EB316C37CE586 |
A1A7D0F589AF6F1224159147D8839A2F629231C1C9E5DE76E42FE35F41398D1C |
39522E17E1CD9A3A2D1B8070279105D7EB80FAE1F58969F88D6CEF13C8750731 |
B89638A8A6D4E80B54A2EC634973795A1BAA49F37D2CB5E4FAAFEC3BC810B4E3 |
0DF931959A145BD7A617C41BB163F012528EE1573D17CE07A02B7AAF830F3EF8 |
D5575FAD3798522122351ECD18DB1A5880BEFBFCF3CF93FC4678C9035EBC78B1 |
FE0ABBACE68AA466BDA7853700FA89BDB47973AB18B02010CF38E30C6D861933 |
66602E687BC7AE21B6FAF561C40DA460EE6FE300B513879A76BA46EA56B8A7BA |
B91CE2AEE3896876244E33D308EB7190C1816F72B3ED94A1EFC6977AC2890C39 |
4401F81F7B9480D65E7BEDB566CD1AB7FAE0A176E66214AE748121700CC0B89E |
943B8B130033DD9B09E0F88C3727A203CF9B7324A90DF31D65A006BFA4C06E58 |
023DA5422CCADA407DBA6DAD5190080A1EA1DFCB6B97CBD16C270E8CE0DE54B0 |
1DE8BFC430CC9CC3B993490A5237D6163BA7A6FFC65CB866C0861A8B4B489F80 |
8A398EC8F4E9A1840AECE64690572B5CDC3FC6201D278B9CAC1873FBECB3CFCA |
952B1998E6509F3FE28823E49BCA159E3871A226846A14E328BDCA440BA865F0 |
96C0A0C76399346992568AD0A92397467239171BBDAF1F7772ED1D39FFE29947 |
DB2127298F74AF179004D40EE01A3169445CF0FE09927354255E5871FB397D99 |
FB9D50B19E22EFEBD9679F35D2D30A3815262CC75C43D200F4B86DB6D9867C4A |
A502D6825D75D555F4CD26C642121BD6025C7E747ECAD959D4BE83336410F575 |
F9EC7250284570658EBE0E9EC87871278AAAE69A6533019E29E659D7566E5D62 |
E4179BCCD124E435FDAA52A6F0361B5C8DA0B70830C0C106E3E4C993B5D56C9D |
6872522686B490A26ACBF588175E78A16663EFBDF796A552C2A913ABF781EC3A |
1EBDBB3EE658A8839C1C8098304E2128DAD9F6D1CFD5A6C4C0AAE7A6067AE33E |
3C92147A742492ED1C27C01CDB8912796447F45C2A714DA7DC088D579129301E |
D774B3217913ED7722635586547FAF88C761BA2C6D53361989FDE20391B8321B |
095AD98D78B564575E79A5DC41841D625DEA76E6CC99D75F7FFDFCF9F3B53DA0 |
67E140757D5F039DD8871C7B9B5651C26A30142368CEE56A48DC5098401F27AA |
AEC905E867360C1B03D30A3FBE2FF738E110E986DAC614AF6F92A189025C5379 |
EBBBFA17E5C4DEC6BE779A16CBC0896143AB9867F38BA1901C91F6431DC76A84 |
E6E75121A58CF1B64A0022AA01482C5AE6B822BF8497B1B6D38B4845AD58B1A2 |
2FF32A1B9D8AE727D773FDFAF5CCB3D608D66B8FD68128A2DFD8DF0C5E2F3570 |
E0405900B244B9A13DAA071F7CF0CC33CFF4CA62CEA6ACB95B1D5D8CFCCA9176 |
90B783381393D75801F3541395C4A5462043FF84F2D0A331EC76DC71C77DF7DD |
F7C9279F7494CEF103DD0D2D3868D0A00F3EF800AF915C03A971276B4A94BAA9 |
DAC72D7DAC73BF7128C8A138AA64C25A2C2DB72FD30FFAA47E8371E9423BB029 |
F46CD644711E77D861076D78B354DABAFD2E5FEE2FAE276A4EFEF0873FC40C0E |
51AE9403CEB2CFB4BE73E6CC4138D01BAA2E04AD2DA54FE8D3D80B31A340B6D2 |
FAC6FCE3FAEF6DB7DD262B12B9C9DEDA6EBBEDBEFAEA2B9C06FD0630B7568BFE |
276832ADDC0F41B17A31F4DF5D76D9E5BCF3CE93C7607C263E74C4345181AAD1 |
42A544B9145B1F5B521FAECF01EB9EC3860D5BB4681187D380F294B9C7102BE6 |
73C7B6A5922A156AFEA28B2EBAE38E3BF4457C029B6925025840DA9A167D0094 |
44D7F1E893175C70C17DF7DDE7FA199BFF4EA8A7C27187EE4E6BD1B53FAE6DD2 |
68F1D4E4E0E93A87F1C136C0FAAB21BB87C344FF12E74CED5C95881E4CF59828 |
622ADCCABEEA406240500567126FCBCA7FFCD2C074376D5446689F1200045EA3 |
2BE31DCCE0652598621C8CE3B370E14259B49C919EDC4F4D0B01341AD150B30F |
6B1430093CAC2BC6C0BE92163CE080035E7EF96572A586CDB35D35008DE7AEBB |
EED27B9D7CF2C99F161769750D4FEEFEFDF7DF8F643736AD0482AB5A17E249B8 |
C27403236FAA71EAE6241A7091E109700987F3FAE4BC9CA9415922B61CC4D32B |
133680D623D675A4D05C8FC68204276CA0B84F1FB6053975FD0C039AC13B1B72 |
CFAB94BB11E88692B3AB56AD72C919C6A2C6A9E5D36E41D639CF3A77EEDC3163 |
C638F8648AC76668C340AD9AA967B1F338328CD30142427A7115621D941FAA3B |
00FA654E407B4820ECBEFBEEEFBEFB6E8941281A07FAA43E4F66A799DB3ED2D9 |
BDE40FB00AE04B4882B0332D8B8C1B8029C8ED0D584A27C8D33FAC800D6A0190 |
01BC00278175717F201D37F8D72828A272C71D63B5972888C0093CFBECB39F7A |
EAA954643780D0A6CC518A89696898D3DB8E8135326B5823F334103DE58BC084 |
F5AF79C237A1F0883BE100C5C6821AB1DEF090430E912727CDE42C941BAA8395 |
70EF17AF312BD72A3A1B6AA65812D8096ACA121C5BC7CFD35ABAA0B0140D73C1 |
A84CC8534F3DF5E9A79FD656C6AE97CA97CF8DA4D30D478C18F1E8A38FCAE494 |
A35F458CD0C8E56E9EE8E1C3872F5EBC18230B418C0FDA93FB1DB9B08FDF6B4E |
88036307D14F148999729910397C962465FBBD46C0B1E73005F415B88DF80DB1 |
658AE7DC2AA4B75B7F5C824E74784531D4A352B1F1C96C1199AC2F236986DE26 |
2EE4277AA6A5919C2293875D0C521D9B66E2C4890B162C20305B554E03407ACA |
942993264DC2380013B1B972C0C61C68F6D0A0F4F532BCD3C1D2485B21313778 |
F0E0E5CB975B0B46D8A05E7FD75D77FDFAEBAFB142C85FEA8B4855B28655F35F |
1582A6644E17AE9B61F3C4BAB5E1B507F45F0AF90872E05A6148B137A427A48C |
CDA540BA9A1A5979E79A6164A8C4961C02ED963BEFBC53B66FD5BC39CD14D399 |
9A49DD56D3E8E8ABB61F0E5664498B2409A4D8E38AEBF793274F5EBA7429616D |
2B361003A95B089A1F1C7234585DC710468EC852900A1BDA5CC72527D8AE24D1 |
17D617133FD21E943A4FB8BC9004965F87283AFC9DAEC9D6235CE98E92667846 |
57718E5A99BCBA5411647E122E0497A9B9E102229F228DE26A0BB78EF56CD04E |
CA9DADF549C9138DF0B3CF3E837683605E2985ECD8A704A0DE62C08001F2AF9A |
B9890253618AA42860E389ABBAAAE48CAD10A75DB54B350C895CAD0BA62AE134 |
4E2E551BFAAB5E90591D3A74A876940F7BE95D745D79E595B7DC728BB55B4C25 |
905F70E20630602353B534326F97EB72999C73CF3D572E19199F4A054CD448D7 |
84091324E6F424B980D267B7DF7E3B6EB806A455C4148A859EEC423FCF4E0F09 |
18F3B33B2F9DB2475BEFC1E803DB6CB38D16FE2F7FF90B77E8C9ED441A994885 |
1084167EEBADB77EF5D557D973DA04645E893B11BEE684B015DC2FB3EAB92C8C |
DE54CF72F72772788692EA8684FB9853CD95963F72ACC42A498B54A3E3289005 |
66AC9FA9B8E83A1E8DD6940E7AA26E2BD57EFAE9A73FFCF0C39E494D0B47A82B |
24B8191A9E58DE41A65D937345C9C948D483B4197EF39BDFC84382D1A26AFFE8 |
D86BC9A468D985FBECB38F5C07CB4D3E6099855D657099237BF5217110069A8A |
D8652B6D8E0B298CAF5F4A9FA35C4D6B0A26A851B0B4EA932C3D2371634476A0 |
062C3D77EBADB71AB280D1D61758766B0CC1AE202CED409D3B90A8B1C88D0490 |
B51DE45CE43880E1B4025B16D85AC6CC998AA7D866AEB3C8355881946D057617 |
4163BB0EDAD83A6BF813BAEDBFFDDBBF3DF2C823CC2AB961976F72E12D8D1E3D |
5AC779EDDAB51B724B4AEF3119131A898C8C2AC385F3821472C11E8E1A963A1C |
7FD81C764F5BED2D7D4A97264793C9309C94614FB261A831D5C144F1F7B63706 |
65EB6A485A23CD06707AA2B2DE1500DFF817BD8BACD76FA40B3FFDF4D3E8EB73 |
61281078200867E20440F8A5DD852AF29B6A4E08EA38B1E8BE1A2E882AE5FE5D |
B9640A30A2629424A4509ADF939BFB6ED2D1EAEF459043534DB930AE0514AA76 |
FC08B440C372DD75D74992132EE28BA478E938A7AF68C37CFBEDB7BDF972E379 |
3689462E934B738203EDE0444C88D820C024E2743B11998AF00F79A88D919B9A |
038F58349988E671F6ECD973E6CCE1F1A02A4C454940D2345DD2DC684A7B9CF0 |
E030179C345C61D6A3BEACC5C420AEDC42349815DDE57AC04A8926B9D6DE3B0F |
B16E5820A6438DE7A7EFCA219B316386DB23A6C24E24DAAC77D48420DDB0FA6D |
503BC6CB23982553936304A4DC71D6AC2EC4DF6A0E3F1D1AF0A7B10CF45F2881 |
5211388562C68CD929673137B4F7C7A53F57C489C8D1915D565FD8EEC3C916AF |
0959B732DF19261A2961D7B631E1B108B595BB15994CCAD0DCAEF7C76A31A795 |
41F59BE554A7C0A08BF34721324714943BF28B98879D5136E499679EF9C61B6F |
80FB30E5ECA1871EBA72E54AB0EE3A11C4124C9DC8B46829AB38B76BCA9062CD |
2EE044D72F60AABB043966CB0C9FB4B2C4A5035DA87D857DA97FA9698667DBA8 |
FBFA28344B697421A02A07AB3C5D865B936FC6EDE64F8485620ED8D88E940BB8 |
BD796AD0B391FD317534E1313799E684765244173C1568414F6F6FEE65D21B5A |
C7EB63F4E942ED91D8327948A4E940831A22604DE0242B9619FD9ACCC8FBDA6B |
AF1D76D861165CB2E1647B71643AA14C5CF1A14C2319372A1798376C05ACB148 |
B50458C7213A2A9A6221752A9C99984173450C66594FD1D7044046A4148D8B15 |
A92BFFF1A3CAEA48144BBF6A605A4A496C99A7CE976162821439F8E083972F5F |
6ED25FF6B99700BE52B28D00179816DBF764211B99D7D681F74851D5C8F5C48E |
E41B0E82D42244FABDE2F37D2D1C537B329F234177C2CD35652950AABA95A6F9 |
376C772314D8E2FD7D2E614C1B62B27D6EBCF1C6CDC84064C628C25F575F7DF5 |
2DB7DC12C1235806E6DDE5D5860E1DFAE4934FBAD6DE5D96FD9BB87E5D1B9557 |
190AEE52C2BF9C5E872B2D686C21A5D062DDB1172A40687579D14517C9BC3025 |
A44F57646FC622E637247DC1F74F2C2EC374810B5C73CD35F3E6CD839DD54831 |
1D129D192C18F22588EC885FA83A755857A07FAD9F526ED4111527B7C27B4BD9 |
3BD7319343FF97BFFCE5C30F3FD4DC7AFC2947961C7BB47B9142E48089A2BB8B |
54D433CF3C630EE194CB456A283CF14DB5B8DA3F9A01E619158E0783ABC45E22 |
8A8525E77AAD98EAEB74DAB4E1E55C4A8E984CC3F5BB26796EE4A6BF35E97652 |
45B6A45D7A5B7F8E08447304AC0C2CF2285639E288235E7EF965EA824A33D3C8 |
DD005BA1F7577DF953D5A5B99565998A40ABDEC276A1A31A7661EDC3B532CB84 |
491BFC5CF3D9D96AD1DC1285A6F2CA090BA7AED05296AE244A528E08BA751D92 |
1DE810B918A346222FBA96E0F2CB2F9702B6056F46681F161F04AE527F7BCD86 |
3686036C311CE5D699E8121B0AEC551C380A17C1C0B28B30B322139653C8F570 |
819ACD9302F99A47DE0C14D329735960E290E340B600C2870391F5A27C884A04 |
820AD4916BB1586B387FF4579422D61E7618445A3449339587F92F6D76B85972 |
3353EDFAC54D25A95F52989A72800D66A4BF3364A676E63904592ACA6CB6DB6E |
3B8821379702767B5AA34BF4F2DA7084715A05190D7130023EFD2558D0B93AF9 |
E493EFBDF75E16CF8CE735A1B3FEEE9246E821BFF7DE7BBFF7DE7BFC49DB1764 |
2CF32E6751E7934FDA4701560A25906F18A1CBCDA28D923E06540D83B1A6FC03 |
0D3470E0C075EBD6390EC63D717A743702C218BF1AC9AEBBEEFAF1C71F7BF3F1 |
08EF01D46A8CAE10029527B77AF56ACD2467988995672C592F850DF93EB51366 |
A9E58634094939024398F4FF29AE142899C84C13184CD50257624ECFB5B6A6CB |
5E0ABE913F69FBC61E243B2D15B400FA8DE4B2310A464F94F67923301999691C |
C98B7C6CE506677C57ABACFFD6B435D4EF355DF7DD771FF0783252C046AC1459 |
8B187EA4B908A9D312F03526C3FA8AEE082C900D9498506F647209009F9D557C |
BEB458325324B2B54CAD4CC1AFABAA4EBD955909FD1413F220A92D5877DB6D37 |
3AF8EA0314D653A1D113BAF1C4129AFA107DCD8501D1CA4C14ADD070535275DC |
B8713367CEF4D8B05009E639E3EB7973D1ADED30CDB3EEFFD1471F69C7024170 |
90BCB7BD454D89942A85F4B32446AB20BE45F3198EA747833EE3261C49E32BE3 |
EAC75C4634B0BCEEFA13328A4C133B8A3A226E5E32E04C628C2581EE29B5C9E1 |
7210252AE00844EAD76239141A131906D9A5F696BDDE4B9164C6C15A62A5A4B4 |
E97FA59FE557DC7DF7DD6C803BEEB8E3B2CB2E239978DE79E7CD9F3F9FD41245 |
CC5A7D2D07EDD76EBDF5D63163C6B86AC3A87B3BDF31C318FFEA35A22EDF7010 |
84C3F721C958D09D42970F08CA31C3B5F0526672DD005BF5F70074BDBC63346E |
09326D2C6F4D3C7AC7EEB0C2FABB90BA1B5B2D5AB8117DF70F5E2EE341A15A1F |
B3D8980E863B19FF092DAA7D0277A730EDAACF556FE85FCB13A3E5D5791115E7 |
E8126F81AE84BF42D93D7CF8F0071E78001F4B2EF5C1071F0CEFA38D417D72CE |
9C39D75E7BADBE2817560E2BA17E82E73C9DC268760BE63C43D500F427ED10CC |
465E3C9A7798F02C072D2EA481E06C9114D3CCFCF9CF7FFEE69B6F0CF727B257 |
D3F6D10D7D8D2625BBC612CBEE41B5505BE9B837964A27054F09E2843BEE67C5 |
63AF3B9F70C209CB962DD3DD8C5231F520F1370DBB7EBDF0AE6CFDA4C0ADC8DD |
E213A9427EECB1C774677697BE4B9CD00BE733B52174DA71C0D09B8D0ED3BCB5 |
66E690430E81F5A5669C940E237D0052D4E4DA5BEDED11391DF6B653E87FC75E |
F5D419034C36DD8EBB651CABD65F943BE540005E346F9A3D077E6354900FB339 |
1D38F1C62871ACA6EC6B3A7B1D9D78B3C1E3AED8718F2146161D2389614486CE |
1270C4EC2E31F8E19E69E654F21CC65A6AB374E90EC71C73CC902143468D1A15 |
DD6B6B383768E180332AC3C5D969B0A822EBDCF3CA87C8A9E87F5C013743EF87 |
AEA5C3CE5BA560C74867E1EA807EE5E930F65806A6C01F49D00B97CC3C0D9034 |
44CE090ED186DCE2C298A11875B7E08D0644CA705A4499964F5F3CE79C7364F5 |
8E1E3D9AB445C32F96DA8D0BCE33A926BDCC26737EFDBD78D081071EF8C1071F |
8C1F3F5E82383EDD50A95626C4E9AFE78A2C76E11DB356036EEAEFE5ACB34397 |
C451A9F792BD22A7810EE72E3028ED33BCD278C6482ED2B985DA5CE7170965D7 |
A3C4D1439CE446A6C66533F145397C3A5A449BF51BED4838D90DFAF006E2BDB0 |
2B233135DEB91D1A4E604C1C30986829E38893BDE38DF4B1A54B975E70C10550 |
F2EA719A22C422AC52C06565216EB21289B012086D027744F928A8252874C411 |
47BCF2CA2B29672211E28401D85D507872869D4BB6B7E4C8330FB53434228926 |
F6807A305362FAA6CAE0BBE5965BAEBCF24A0C1102686EBAE57C951BDC7298B7 |
DD76DB534F3D95C072AB5BDDA75D8494898A8C54279C8B04C1BC400B6EBFFDF6 |
5F7EF9654DFA7CF6ECD9D3A74FA70524A4690041AB9A73E0A9F4E6DEB1E64DB4 |
24C2B123B1CAC7A096D3075C50D4CAF4738DC032FBE34076CC86CC625930F278 |
F0743D69A66AA711B5C43774FF2974B72444E7F810E7B1AFA34705AFE362A792 |
C7D6C817C6A5591BE937CA66307B06AA6BE0C081EBD7AF671EAC0841CE13236D |
E56E07517A971E41E0C77B20C6115D7E6D6C542B949C59929428EABCB1CD1F9C |
DA4D46176ED503D9AA2E8C068E4054C0769F1AB9D88CFBB3850C80C09D60FC40 |
1F989398B0074C80FD81191AD985BD7C1C1FBAF2FCF297BF5CBD7A358E0AF68A |
6E22EFF9B6DB6E830311F8ED86DC079AD0022BCE878D1CD4A1D63D41F8CB0BFA |
7BD8CA9B9277D3E84179B8BE16729FCD9543753D00BD8CF024F43336FEFF555C |
D43C0083D2D5DF85242B80648933BB59C61F4D30FC57D2D524D8791CC7862437 |
7E8074DEA79F7ECA99410B72BCE3E4EB0E5AD1356BD6902B2D51D3D5F44568E5 |
0A2572514649C424905B1261DA470F9B0C90142189438A10623357EE03B510C5 |
85F66BB133F4BE92A186071BEDA9FF46578C4646D4C6D086C5A4F929A7762C4A |
AA88353845607A29A870569E6BF2E4C90F3EF8A03E60DC1F76009393023CA724 |
297A3B5A9437027938E01447110969F0318C3C388F582C7CDC9AC5C2D322949D |
0A3B5A5F31E4C75307B11A6DC15C5091727A0F694530C9038E4E67E41C4ED9C8 |
A0EAC9935995DAD09AEA26144AD1B8BEFEF38DC0EC6F1272A75D9AB981154910 |
F374C63B90B783CE17C3CED56B3F22FCE636DB78309898B178C69FA4040E394E |
A3275BC9297B78D1AFC5CE602661FA8CC11B87124BE979A8C12211AF9D7E760E |
E946FDF7B4D34E5BB66C997C0669E89453E31804FA4CA9821F31DEC89CCFC460 |
53E1B739DE83B0A5EC2D856E01ACA65E9FDF98C2429FBCF1C61BAFBAEA2AAC7F |
705898AAD4DAC68C98E56AD758F10FBF50C09C41F425212E87A63CEDCCEA9429 |
53A64E9D4A6C66E6CC993366CCD02FB569414123198CCCD0F8255A39B0082B27 |
C8EC29D94CC7C1C076813726B537A7775698B7062161EC9B4185E87E3D5AF797 |
6C97B7C994C2A754D6464C9F8D292C1A0E09E4B15507EF475CADA235B416D2DD |
C1C079C97D193A74E8BC79F368E7649FACBF37B7CA71172DCD6355D9CC8F187C |
0AFD914C1C0AA68E1891513F5E2DAA5010CD2903B81C4172E196C6490B6BDE3D |
C28BAA04BA239F29BB7A1634BA060C18208F10F8347B08AB4DA25F2602EE886F |
15D9CC3512F8379C49B5BBCCC68A915B8C620E3C7866FA1070E031A8FD2E91B6 |
D3A0B3462640881BB266FE23DE84A891ABF2298D4DB9CC91029E1432110E1218 |
3CEF683648607461B3BDF5965E53CB9A8A0A7D9E0BD5833EA91764BDF4C53973 |
E68C1B37AE06D86FC992B21F861A762B56DBEC253DC1055D06C5DF680E730BA7 |
8E9A37DB1FFA3DA58AAC2F81A5DED0F7BEEB3C13978BB4B735EB6204BE89C36C |
FBD2328F5736EC60ECD8B1AFBDF6DAFBEFBF4FA90659589E85EE4C2147D05BDB |
97BAEBA5D581B31D63D4806AB6AB7E2F0DF7F9E79F0352D368E5F14F9830018E |
052771E2364311E2A39B0C39E6627180D8D5F8C429F335A28F097BDAAE8D6176 |
5687F0F82F7EF18B8F3EFAC8E81E1CA1D871CB6DD10DCD71FCB62F732363BBB7 |
72113F07A12F379A34A96DCADD732132D2DA3533A1660ABC2571569D87620796 |
FC7E9FD0FEEA605E0105CCE460B495B00EAEC222E4C072B0644067526E3C8564 |
8600CE3C86A6FA32CACCD5288DDC4AC1104873B9A422F680DDCC08F122343946 |
44B3E8840D8C3BE1DC914ED62035CFBAE146160E63C92C621801E45666953244 |
79737990B880BCB6E58B1EAA177606C8514D92C4FDBDBF268EBE69A6B4BDE69A |
6B6EB8E186CD32FE947BAD10E5300D8A3CF5FBEFBF5FB34FB911A8C26DB6D9E6 |
CB2FBFA4D6DE6CAE34984CB9E20B115362C3661E5CAC529F7BA3BA5C1F23829D |
729798E8647366B01B9C1F4AA13284A208FD46968A9C5D6D143C151602251ACB |
F0636D8CFE8A0EE6BD0CBA762DAC619344721046DAC40E59DBE643A9E8BF35A9 |
07DD5036EF238F3CB266CD1A591560D1F59B943590391A9DAA8F9C418E958195 |
2BD12FFCEC673FD3D4A1991CBCD507E4135C7FFDF558C13A7BFA01125A9D73C2 |
4ADAAB175C70C1FCF9F3F5527FFDEB5F6B1430F969030C010A1075D0EB6BF269 |
FCDC083C9DA9B0C1F545C20FEE17C4117657357EE310254FECC98D6FE3CF4C11 |
067BD77102CF86C60E986E23934B77FD3CD120233952D16F431A2EE528949BF8 |
3230BD32195967E8599798DDD86DB7DD3EF9E413E705FA7548CF3DF7DCC58B17 |
A7C00D6738B4A734321345CC660AC08B08FC890A18BA2117437A09F09FF80CD3 |
850124774D0A1EEBD3CD1377DD7557E9DA18AB8B1D789C89C0DE6586D179365E |
4B362BC11E34B70119FAE5B469D3A64F9F6EEB8DB3194BE952EEB8CCEEA27ACD |
3EA27EA9D5D443753A56AD5A054F62B4C97C84FD9B1F118566A27A72F752DBA9 |
D1B78E6A586B8A44E25983070F7EE79D77F46A7BEEB9E71FFFF847570A415C61 |
0517F1F98DA260156A71271D9C1D4FB9D5A9DE54C75F863565FDD495C0E88E2D |
8BE2D7CFFFF22FFF220F4A5FA113017111F93C72D0CF3FFF7C9C6F7660C3FD85 |
62B6A9139605B1C3E64A00A7DCEC41A33FEDB4D31E7EF861577FA60C8530A136 |
067B7F153FE673A360F88C14F09BCB838FB12673E621D1E0CD36EC8D731E5569 |
CC72F586EE5458FD36C1A2CFE1A2F8AA7980699928D6C5175FBC68D122383D52 |
26EED148C02AB73211012E97C35616A90C9586714C17406EC2710C1BCBC33034 |
A48345955362256E64FD3066CC98DB6EBB0D8A5A3761345B6CE77BD5181CB61E |
802622583996047CE8150F612FF300B0A2BECC9AE530F5660AFE8D3BC0B8290D |
7139F7B3C36976BFB69A8845A459C0CBD4DD4CD7A7C93FE8A0835E7EF96562A1 |
4E3CBBAE9DD7EC6C5D5C72389CB9441C536A427C12054CCA1317B96A9E4F38E1 |
84E5CB97A7505D5AA3085B455B724D3E43D58B1C78E08112D6104F1A7B95DAFB |
1C50B1635B10EB5CFFC5A43BF9E4937FF7BBDF21C8FA7B7ED9B4DA093A14B28A |
BCFADE3C6EC70B966ADF7DF75DBD7A752430313820D6BC725A9910706A294480 |
7DA253C0423BAD48080A3D17474265393584A050E194F8EAABAF78B406039662 |
437B8F3FCF6464F090504A0580833DE65CB2F680AB781D6BFD2EB7239388A055 |
A837BFC159716BEDB4D34E3289FCF4A82CE3277F8402B605C9B09D46B5BA6DE5 |
EA67434D899333819A61ED2E6417FE8F2B74A538F5496F78CB9F520B87941D62 |
B822B407E0BB75D4C4F5E8BBECB20B181AE7FE51071247FFFAAFFFFAD9679FB9 |
C29319464C114836BEB85163A1C7DEDA29DB74C8A651A346E96562D8C113EDD4 |
23384F1B5624B19A99D02BF6F8C482D0B36ABA12B1AB22E4C18C1C550BC980BD |
5A3E21AE4291D2D24CAD5BB7CEA97BC76430086288A6D3104193119607A4562F |
20E49CC9FE8D2165969CAD7FEAA9A7AE58B18214784DB9975303DC84C4032220 |
C23D52C0EE6AE6CF3AEBAC3BEEB883B5A3C2A1BF07435371F9E597EB2664F57A |
732320E729C171686E6150EA2BB888496D32E0881E4CEDB0494C4E7317C43F21 |
8BFD5F78E062ECC83CA02CB48F9329F2317B7F443AAA4640A42C37C1137198DD |
6F91035CB242229DD68F80E2477215A33C62683A22B0B8DC83DD345B6C4E8F04 |
1DE0BC7264548D7169930FA71C9C678663F00D894F80D4E3ECEDC6B9DF399F91 |
50B627B76FB3A1E0F06604B92052AD1489EF59383472EB43EC57D3BDA5E21413 |
9BAD5A8212B623D277F07B1F5ECAEA4A38385715DACD4A01029D728B6B5E563F |
938D325B729C5E175F71A652E187EDB3CF3E6BD7AED57AB1011852C461B9B022 |
15E22515FDF8DE78E30DB87AAC892356CB2B08C8CE218A584681CF075F8A67C0 |
8E04F3C92BEBB66C0C6203FAAFEF99DAB9E4BACA2BAB1B398B4B972E95C30043 |
BE4602F291B0815BD8B542CF0272BD84C781B25280873FA38F4199D7898F4B59 |
8B951064E416CF39E79C254B96A0C8C1C67234F49A575C71C5A4499348F9B151 |
BD61B83963604FE2ACA3C8CDE7D368D4E6D8982FBD127451DC4BD789279EF8E4 |
934FC60017467A4C4BC07B8722D464B9D891E680443F6086A23D38E4098DEABA |
492BD1524AA0EBE7A387AA47EBB82217ACF3F4446798203D2125638B01F9856B |
D2198A8F2088DEDC73A906B5ABE78E1831E2BEFBEE031282DA267865E405297D |
ADABFE5B1512C48070E6D85B3F0A8E4E601DC61A6CC63F8448A14A50CA5EF9FC |
F3CFADE4DCD3AD591024514B968A089E36EE6EBBEDF6C1071F68CB6AFEFFF6B7 |
BF31690658F56496548B422CD694950DF3895048013203BB4D2AAC7B5C0A77D3 |
6A15CC359A497D7DCE9C39B28BB1D228CFEDD7FBD65CE82797D998EF17238C14 |
1171118832785F5BF4FEA15F0F2D95803393B1C6D432C5E598C41E5145087A54 |
A9264D9E1034ECFA8D7CBEF5EBD76B8AB07D238A1E9A717D121DC95B635BC30B |
ADBDAA5169DFEA63FA939BB4C34DC80AD6B8D72933F6A5AC3C38114C9AC30CC6 |
7FB1BBB425468E1C295BD0E101AB5EDB0D508593CE24158D85D1CA1DC16BE41E |
D2139D8449ED4815A15D84C0A04183DE7FFFFDBE70A58E9E31BE67CA208312E0 |
231AF7682FAC3A3D94B07FCA4956F48D5E87EC4F0A49569F74FE75F09F738A81 |
C5236270311551659253E833433E093C50076CE49DED30E61977903C94F7DB77 |
45CB739AEED1F50E4147C29BFD063231DAC425D0160BEAF2D1587A1BCBB42257 |
0699A6934E3AE989279EB0E434E0D4F10383243AAD558BD3283C394D76F799F6 |
94E90B81C8D0969183863FA0FFEA97C6BB917F6402B13C2CED79629D0293E8D4 |
E2913A45EE10C3A1822D4E0AC2E8BBDCC55A6BA00DA4C7E303395FE55966D047 |
1F7DF4ABAFBE4A6E3C15E120047AD7839142576433875581B3B05380589343B2 |
E1A97DA9114ACA60138D1E3DFAF6DB6F1F3A74E8B265CBD08E44444DF5D7158C |
666194324DA6FE0AA8B56AFC7BEEB9A714520A96B5E59DD912D86D3539397287 |
E604D730B6DB6EBBCF3EFB2CAADBB8BDD0D64831684E916BFD2534B040C49A61 |
3F697DC911E2BC32451076EA1DE560E90839E0118B29B96C3B9BACAAE49738B6 |
B3E5965BD209BC555082C7E4A8D60BFE4EA7307A72AF2108891CCFE8D7FBD6CC |
033F5840C82979F7DD7739059C0B98D223B8D708AF466018F811CFC59476AED1 |
429CFBA7DC072D5A90320B201BB1C76026D4BEDC8B9A5D078BF5F4E9D367CD9A |
75D861873DFFFCF31C522246BCA04E318AEDAEBBEE1A33668CA3442CB1DB873B |
6D89E5571FB2F6C6D6BC118625CA8ADD16A5E4D65B6FADBD576AEF1D11129C77 |
3692BB19A6400A88DC8F07B06A4896F2ADD0EE25B22618BBDE0A554629D84031 |
999D42C52D0ACC6CA02E2580F6C115BAFA301081088368E68E8DF1FC7A367CE4 |
23F922E7483727BCE1BE5B0E232D5FBE5C0E15312A8A59CDD3A7A75855D3BB5A |
77EE2C9E26106239A92F6AD86ED4DD79F4A88CEA1C7F0AB5EC86493A56CF808D |
7BB515E2A9C00236D6AF14FBC1758E91BF92024EED69EC18D54FD91735D8D616 |
4F2C58F7DD1CF732E215308D5FFFB4D34E7BEEB9E790CC9BA82B6DE48A496A01 |
E3567022044395836D738F65260763804F6A4FA411BB83EA925357351E9DBDFF |
FCCFFFA473B8967CBFFDF65BB97225567CD7CF130FE134C2008594970FA79F53 |
AE55D56FB6DD765B2930E9FE534F3DF5D9679F9500E548538B4C01436739164F |
E1843BD8587FAABD75307CEC45B9D1186ACC6DCEAA6E4518DC7541064D786FC5 |
3DE4920FB78C4438F637244BB2930DA76907760F7DAEB61198EAD44E6AE12F6E |
686FCB11372B1AC5E78D3A1F53C4C5479F75D659340BD3BB68B134037A77ADA6 |
7E38F8E083DF7AEBAD5641EECD8AB3DF5C56216F584664BFDEB7E6A21D21B97C |
2C1B448C66E6924B2E79F8E1875DA1611562486A4C98F5EBA156C04064D92106 |
C7953CE01498875371E0D9B748284B7CD00903060C183162C4DCB97351632EFD |
72F76B2F819E7EF1C517DF7BEFBDF415D531041A09989F6D96B2A0E45F6D4E57 |
F7767DAF66687DAD4720431800D15A59A8980BFA4166C1030F3CF0CFFFFCCF1A |
EA85175EF8E8A38F6A24BA33A61EC0754F8849EC31565802C2723572A691CBA8 |
B4B5BEFEFA6B8EBC3FEC525A3019DFE5E6A72903DF527B10A2E4DBF9605A4373 |
3A22F986AEBDF6DA6BCD9A3511ED2C65AF698C6D2A3A87ED118244718D2F9699 |
434DB82EB8B3E0B958BB66D14B8D874A361218E79E4B962C39FBECB3213077D4 |
DA915EAD1A21134030A58ABE562ED9A29609BFA82FD37DA7F6405D0A5DD4B49A |
FAD9C68711D77AB48EBF6E3279F2E4B163C73672A998FB17310CA72C2133C01A |
7039400C3EC7E081C3D1FE253284603E9052EB5176A65105B1B5B9E7D9713BA3 |
1DF9FA01071CF0F6DB6F6FDC1255079E129414E8DFD88E0E676152959270C6C7 |
B34EE66169660E046EA2F161ADA01B8E3DF6D8679E79A6542A5E1A0FA863D8C5 |
E80A505317CB79F82E774B66F37991B4A1A5B4908364EC0113699311498BA416 |
5D0949B8A1CD1F493169A01A058C094966C53975D6460F1D356AD4ECD9B38DE6 |
489B2AF3D07D1037FACA21871CA2E32ABBA1F39C3B6BD5CA94A7DECDFD55C08D |
D096DCC14FDDF9DFFFFDDF5F7EF9650962EB6003384165E33601A734B548CAF9 |
48BF298223053DEDFD468B153258BAB95E19C4A32514734B768A35251FC30FE0 |
DA36A307CCDC6A07D29264E8D0A12FBDF412BC98443E2195D5F02813C21044EC |
C2B4AA4FD6D47377BD62083A82DA6A84F2A44993162F5E2C2F4D9B56B341DCC2 |
F85E9629B660235C8F564805C8137B8B901A02179D8D7094DBF4EAABAF4ACAB0 |
64F83D309AB1C724288F3AEAA8279E7822D27575BE975D76AC529C78073C63FB |
237BD82983A7FC576D36F8CEBCED356CCA55491CA6A286C49FAF57C07AD0C081 |
03F5229A96E8495B9EC2874C496E0A9E93CB49DC229A976AE4FA3A8C6C3B55A6 |
B56121E0223EFEF8E3E55DE833EEDB5DC24896F45C3C4729AB0D22E73C4E77C0 |
A960F549299AE6890A60B4692B34CCA0B291BC69CA6832C080D8CDC4C38948E1 |
9F986DD1212E5C266B298844D0179EB168AFF405DAF938E1CD4C214E5F043800 |
08CD82E7D5B790A8A0319A99C72A86D6489C7B8D3ACDA3CE8D61F039A7D85F74 |
22A915D8C5B1F338E0049668306AE417A41F25C87A25051D6CA863C68CB9F9E6 |
9BCD29E1F8832B85A87C4DD988D0332885A4EC040111F9C423E582211B5438D4 |
7806BC8C0BF3DD96A73E878D7D802C4EC161C544D04694E076DE9AA022B63358 |
5609176DAFAE949C6E754CC9E0A04183D6AD5BA779A8023791CB2C159BFAC33C |
1AA389085555081AC4BCD6C2E111122DD1AC8B1B0B191D3BC6C3B8D65F6EED56 |
01E6D29DE137C612C4ECE5AC4E983061C68C19FAD811471C218564087723D30E |
1B611113D59E014BC688CD76BB08D3FAB8BE08961282FF88007AAAD35115EA09 |
B6532754F81FB9C8F79BCD03FC85493034BD90E9E36CF5163DDE53C6162119F1 |
4DABBA4ED52F01EB88738678B5FC8A3B044006157D9C14E3755D64ECFA314B13 |
EC3F6EEBF2E8D34F3FFDF7BFFFBD7E202604E304451DFA166820C8BD4BB93772 |
132EA7AEF1804B81C1184471077BFDA0A9C37975308030234A8513CA8B13B262 |
C3A4D0C991765E1CDEAAF3C58BEBB6DA54FFF11FFF1133FDF163A5EC9BF13BAD |
CC0DE99653385E3DB9AF0CD9655EB0157AB0F615AD85C910197D8D81FBE69B6F |
D2D13C6AB2D215B5AF858C63C88CD6B0C1F9F3E75F7CF1C58D5C696DB7A49171 |
DA11A0CE2677233B7AEB12BDD3CC378B26EBB2FE098E9622B129A71A49289883 |
C19DC46CB2C4EC6F648563AE5897123ED779658E64649561924DD16C9FC1164F |
9C7CB65F33B4C98A530A7015820A63729BB95B97E7A7991966BC3A522EB24E22 |
55A7FF8A31A4DBD6A1A05B19E2AB7F91B931776B90A7230F4ECB9B1BB927F7D9 |
A05E0ABB0934363B0C80003A0FAFBA464AC65C91BD9F9AA82F8CA629543858F1 |
1397E78DA64F9F7EDB6DB76954126AEBD7AFD7B734121AC96984DA613A123D15 |
4D295A01A64BBDBF357DE7E5F83CB4064C572353AA92A421ABAD01C8E899366D |
5AD7FBD813758937118846A88E88A7D102C570D056A0CBFFE11796D665975D36 |
6BD62CAF172263D8B0610F3CF08049F288B4687B498FD2FD1B25844C71C62865 |
EFA715A08FF26376DF7D77598B7A3532ACD8DA7A0494C5BA9531265CC8E8666E |
AEA9BB413A0F08420396B869169D2DFAF5BEF597CDDE94B1C48D4085E38610CD |
D0D18537D51C7216AA1440FDFE27BB2C2FF3E38F3FC6B42D01EEBCFA5A8EE1C3 |
87DF7FFFFD5A3857C1599F69B3E903871F7EF892254B881638F4E793F55DE857 |
880AD4CCEB4D638F20401BD879FC92A5040F6122827AEBA7D58EA68C959A0032 |
70899CF2970E9012753E92D21AB25A3A35D75F7FBD067CF5D557CF9E3D1B42BD |
6FBEF9863DA9DDB5E79E7BAE5EBDBAE485C4CB9186284C639F4163CB4B760F21 |
B7780C1D734243B8B6D0B298D966057FFEF39FEB119200B088837403C41A0390 |
584535D5222907934818F5E57667BA894CE43973E6B8E48F59B5788C6E151A05 |
5F05463C0D7BC182059A5EC004BA090DA775CF3BEFBC138B070D675ACA46EEB5 |
858E3CEAA8A364087EFAE9A78CCDE448680DFB4B8C996DEC182117C396BEA72F |
3B86057A5ABFD4D4E15460C1B3F18CC3C24B3465214F2C29E01286867F9B057D |
18A1665EDC85DD6E951109152C16B8F4D6EFBCF3CE55575D3575EA54EC272FBD |
D95A2A2DD346A6B2E3A38423F4AA928C94BD3A45943ABC7272C0B0BA6C0884E0 |
6455CDEE9642A331CC93AAD01C8A1FEF0791613C7DD7CFCBC47BE2892700DFF3 |
447AE51A869772479DE88E37721752204EA593D917DA32328320B719CF267922 |
233AD4A92F576B90AB009B5EC37DDDCA1C966C7437E98C0CB725F8A55E591F36 |
8E86D45AEAE7C573192D30B156811B4F855620BB1CBD9614BC5B6F59BD97B4A3 |
2C1882D51676268DD37DB6DF7EFBCF3EFBCC5EDAF4E2C25CC39EEBCB54D571B6 |
F1339804098579F3E6F15733D96E2E0FD8928245375C40FF95B297D03756DFE0 |
58E77DE372F7773CA86D5670A79D76D21C9AA0B4F476D66724837410162E5C68 |
7DA3AF83221C356AD4830F3E88EF185B48D1C284D3CDF8790AB6327B58EBA817 |
213BC3D81A459131C7DC5177DE9448584D799EBD1F7BC3AD769AFB030F3C70CD |
9A350487622F3F936FDB2A251B1D2BFDB84C414A77DB9A72C1566E554B0C2315 |
607B0A1608EA323044B93107A9BD591E2A243A918EB846A61D76113929CA66C8 |
D4387C9A7269006164C007C8F766E8A216C7EFE672FBEEBB2FCDC750632E148C |
AD21B186D197AE8372821668313A4F2ACDB06777204D05A5B98E1B4D9D1DEC34 |
B8CC511FCD98639629B094B07051013B266A33C2A686ADD8C30E3B6CE5CA95AC |
29F6251F70D4C1B162BEEEDC3FBFE13346C979BD3C9F56C0040990F0B19D5AC9 |
7A8B5DABFDDFD8FE08A27BA2F78D4C7C0644A3D15F4160C5CCBB794523CD4DA3 |
BD011306C8C489132549A17F72C939E7199BC54625FDB167CC9871E59557D2CA |
E6FF6BEDDC42AD2ADF35FE8DE9BADEB7FF4032D3CC12D3A2881204A573D909CA |
2EA428CBECE0A9D42CB5B3655A794ACB434907324AA3A40483AC4CA2ACE8402A |
694A7482A88B7DB1F7CD66B7D6DC0FE3F7FF1EDE35E61CA3BDCC7121CBB5C61C |
F31BDFE13D3EEFF3DA1E8C502F0265030DA5D65D45E8F6EA6280A8D53AE78140 |
287842DED4CD009CBB020AC186B3F870BB18769B830A0E953015583CE08AFB72 |
7BF0E6BA67D68548D75FB9F53A7B28E5CE36246B0D59342F66AB3FBB6CA5CE95 |
BA20D2E114F634C7B15D2D677A0A130FB183515DAD925B47325137540A858F82 |
FEAC797D8DCB43B5B3D9ECE7C59EF6BDB9F349E78599685FE16F39C66D034507 |
319E589EE35A67C706ECD03B265FF7FC1830F4CFCB972FD789EBCB6C532EE532 |
7C4CDB4002B1B3EB4B8575E1D81A2E5DAF98C9D6A69A3265CAABAFBEEAA2BE98 |
58F590082973163008A2FD87F7D6CEACC875E3A974AE74E2A652B49AFA039853 |
095F88F89D54EE76325928787E392834A792BF280382F083FB9A788F71BEB819 |
69C054A06B4D89E3D9B00233D3A79F166B6FF4047D565E87350DFC0D44B39C4C |
65B7C74C7C91292DEDA0DB9A44F546F898E991F1709C9F8AEBD5CED4EE38A08C |
B0151A0EC6EE70B14019AF9101204050C3E015B0B1643202270273A727C03ECB |
E41C77DC71F2D479B57FFDEB5FE3C78FDFBB772FA6400C6358AD7AD5989CC8E6 |
E6E6EE84BBB46A7FFEF9A7BDF6D4BFF958EAEF0D1B32E59DCC220E58013BEECA |
14B403469F8D88116AA483CB66E48CBFFBEEBBC65978F798E58A70931658B359 |
41EAC771BBD1446F635BB4815E684790CF362F52A360D550B500EE70E07A3BE3 |
AB8BD08583BD357CF870B917CC9816D58D6822C9003B8C79338B16F2A841016B |
CF69E12B942EDE01D4A4EA8D2476651A7FF4D147847180CF50E816E1825DEB5C |
A99502FCAC6DAD0F9206AE9B1F066FBA440B29B64D4F6837D40E5C9E3097112D |
DCB76F1FFC8EFFFCC274A0F5505F6E45C79F2015E168F9FE66858AAD1039CEEA |
EED7EBC319CB5BB3F38999EB4B251FE3164AFD332C29B45BA84B19D8DFED09DD |
67918FB0DCD05972D1A245A0A8B0EA52683C4ACD9BE3077EFD58C7F2CFAF0605 |
6C5F5973A59981483526CF8AD06B56FF1D3C78B044AA0CF4A54B97222210FAF8 |
527D81AFAA791D2924259415E5989D69FC51660C850DA6069D8476370C9854F4 |
ECD9B3B76EDD4AB29348F8EAD5ABF5100D75C18205765750E704BAB0B0539672 |
E657276A4AF50791B9C813EEADEB1577E2806EF3104291B8758A90B773E923D1 |
0223C830DD6231454501734EB108E5FBEA65E1A6A054442F822626E2455A34AE |
A06900DC9528F246547678857F3B825E1DD68A65CAB86A1A83EE3CFDF4D3F7EC |
D9E3FA257D4A4FA364C3BD288C87E5AD3D9346CC7953E9EBA64E9DBA64C91283 |
0FFEA3BCB4162860B008166B6C39643E5A9613E75010EEB8BDF30113023862E0 |
8A11642B8615F10A491C52BF24215A654344662AB273B93119216B3C24831450 |
42DA2EA4703057DD610A43E9185AE8281B304DCC6F434E77506E156E91EAC3CC |
5F91A77A17A86D883FF059A7CF89D622E6468E1C79F0E0415797A65C875794ED |
4738210D21F798C3A38DB6664C82006DEA9390CA6A39D9B0EC369D25AD14B029 |
22F316949D75AE76A43053084B3484CAC149AE58B1E2965B6EE178C75E22D40B |
EA8DF4044E14A7CB5DC33400F3BBFEF36BEDDAB5B366CD22F8433492C080E15D |
C46CF136F011BB3EC7A160BDBB7CB5EDDBB76B32617CAD9B87482142428E9B35 |
1B101F32277AA64486812A2077E89127B3A9CE10712EC371FE9413F6688B1490 |
CF7115402D1C7FFCF1201E3CC898CE380AAC40DD5571A93BA13AB1EF166366FC |
DC69B52A29317FFEFC279E78429B47338363E1F621CC00B05E824C75B9D2566E |
7B87C90BAD1B68233487C37B8E9D428A6086EAF82F536AFA65C3656CBEF48416 |
5BA81613EFF484A68D8E36A54CA2994245D9E4C9933FF8E0038D818A20E09FB0 |
0D027903026636D3566EA860A253DBD31596C3CE32B6D4BFB342CA38830A9228 |
959A8F2431B7990F270577DC915E3FCDA525187F3DB971964B364CB38FB9FC57 |
D9728DD3A1D9BEE4924B5E7BED35FE2AAF86865176B5B1960C8687454A4F063F |
C8A290504819DD9DB2F11A0D59433E0100A68CEA258845EE03CBD55C5D95B58E |
EF6EE96726937FD3720DE82059011765ED8DCE404CEB0293035A9C42E8C6F104 |
D72FB1BAA80A1B71EC211C8BA79E7A4AC78C35704023BE5B730E78A0D7A851A3 |
5C3E21B574F1C517CB926D4035CF983163DBB66DB043D8BC284289CE983163C8 |
654AEE6FDEBC197F11117CCE39E77CF6D96704DB89C94316E62E7EE63E95E5B5 |
65CB16B4949E2C254D4FE9CE0B9C082132D9DAF20FDCEFCFD97E2C2F077F1CB4 |
944AD66D2E9EEB5AE7AADB56AE5C298B9E09E71D1B22108C07A206149E356B0A |
995486610FDBBBBC3730BC1F93F565185ACDDB6FBFFDE9A79F7668D790511225 |
F49FC070EE7AC52ECE7E7283A156E45EBC29777DE0F704483406397345595FC7 |
A1C0248D82DB2989AECF8F653CA93F2B562A252FDC0E787248FCBEB2D58A31A2 |
D1D530CE390557E098CC7FA73F1AD37E76EF52AE2F92E7A761D09AC2AF362877 |
C841D79A5707121BC79C7C7FBB9E998E44385BB49D696B25D0E07849814B2B65 |
316AC2A34E6302FC878D21777F49D9B773E60F1F48F7CB8CF8E8A38FBEFEFA6B |
1D0D68CC1DE5B6B717213F1AA16E73520610066E4F6C99A51DF55FE5C51BB532 |
2F7A2A3D1FA38B1D6667BF756EA1BE1A62AF56E87DA429D290E8B02E51036788 |
53DD2988E84EAC3B17D2C0D1EC14325671C57D3F3C309ABAE5CB9783F6D06B2E |
5AB448BA0DBBE7C1071FD4FE99366D9A5BDD500E0008A6F3ECB854D5AF1CCB96 |
D8693D65233519ACFF5D5EB27588792030792F67DC5C9840FAAF9D3941B5B5F6 |
EDDB377BF6ECD5AB576BB494B7D13FED6842D038F57AA8661F2C06E388DD0E62 |
1B5AD756BB152B0B49EE87A23A988DA9F576145713B170E1C255AB56492BFFFE |
FBEF644C5DF57114F5AC0DEF65A6154D3769F3BEFA767238FDBD81DF9C4414E8 |
71B8499D8D37C79B01EB29F448800068E2C4897BF6ECD10C7CFFFDF7EDCCC5C3 |
CD804A38BACDA151DBE3B2608C034FA560D5A36055D557C8A2778DBCA1613CDC |
0434953A57DDF0E38F3F6A73EB66A9285AA390F26998D2143AD873B4103118EF |
60585C27432A0B9DD12A7B47C2517CACD6971F62D63366CDC182EABD4C18DBF5 |
3916401C4EA2020DF5EB0409AC5D680A426CD0F04B0E307878F7AEB11522D3B0 |
CEEA4A0134C45E35384E274866048CFC88DD9933676ED8B021954953FD5E0245 |
CAC6D0048310DDB7878336D07AE5E6F9B753E5A4B5B5A65157E4FE5908078D8A |
DCB70DD7CD6CC6E8BCE9D3A7AF5FBFBEC2740D8F669D2D65B34F2702BC058745 |
F3FFCE3BEF5C78E1852954A83333380FB87726AA34813CE24EB34A743486F7AC |
7D31C1115F16083A17A46907E54EEF0837E78029E0C13CE5A5E88E470D9E81E8 |
4465264C98B073E74EA7787DD0C09D6002C634478302EE14AD0EEC239F2BF539 |
0E7DC753167301D1F8F6D7B9DF622AB53832C7E958D6C8141626974E9907576F |
AAD774640EB0ADC626B7E7E5975FE67D51759A10CDD5B871E3E468496D99B739 |
BABCA9A33C922BB6FE4DD9C04AB9CBA4FB75CA1C91A88F6DACB8C7670AD801F8 |
2763FB8F46C0217D7076919BEC1E30EBA8162924BA1E464A23D6D5D9ECF3CF3F |
7FD7AE5D72D7EEBFFF7E42F68608612D6AB84CA8D4C0175F7C6180437CE03111 |
1024333C3002C2ADC6A608EE45954AEBD2E06A541A1154DDE6FE2AF6D7D93AED |
DC754BEB41798911ED5839FA3D9C3844C5BD665DC74371173170647D4F6EFECA |
C16BE5CE272967748A928484D814E71F3FB56B9D2B0B27097EEBADB77ACB5255 |
59373FB11F30F59A8EC050668D393966CC9803070ED02CB30845C311DDF0CF2F |
79F9E6EA428E6B5484D15C24DD17DAACD69D8B254B96AC5CB9525B45DB559FD5 |
1AB9AAAD6E1EC0F11E3A74E8871F7ED0EAE883575C71C573CF3D479A43671B25 |
11A7A828DBD322DC2FBEF8E28F3FFEB8AE8F753BB78571C759EF584863107050 |
F9B057C920DC78E38DCF3FFFFCA9A79E8A768FDE864DC374AC41589DA1CE22B7 |
CF72655705F6D1EAE8974A0C1F0B929BB50F69009A3246A45D76E79430F9F2CB |
2FBB8E8762FA1D3B765C7EF9E5D89DFAF6A54B97CE9831836DCF59C348354B41 |
C5B575332B031D1CB9890C275E145767A5C05743CCDFF38F9F4D5044CFD4A8B4 |
793EFFFC73DD49F80AEBD0694B8A458BDC76E2E4934F96A7E5C21BCEA0F507DC |
C5ADDCD63AF24C75AE4BEAE6019B9BDD81134933EC033C31B32CA4EC0EC6754C |
D9858338851D5E945D4735D4134F3CF1BBEFBE03DC4AAD26E91E52FBEE20CE9F |
1CC5A14C142E0EDE88D264FD498EB2E6E1DE7BEFB5FBEB748C212F955393FAC7 |
4EDAB9BD15C2133A7157005A8A32306C0EFA8A6287A56C165011F7F3CF3F1B72 |
3876ECD86FBFFD76C00A3832B9C4F3637627C7FA639F0DF31C0DCA9D9ED86418 |
0E36E210D69C4610CE367CB46040E18D723CBAA6020D02C27C40768FBA9A81F1 |
00E3D50D1B364C8764DBB66D506F92D5200D0C5C931F3403A3478F96145EBC78 |
F1B265CB347EBEC8A51D94F710D32E72771A13DF3487D470052EBBEC329929FA |
EF1F7FFC8105903220B955D271D3A3501B1D64602B1001C632B076479D6B2AE3 |
3F44EDF4271D39475D1AC6A355D319983A75AACF3CFCBACE7815256DB80E8F5D |
84541A43BA4167E91802A191C89C0AE072F3E7CF7FE699674C8F90729C001AE1 |
BA79A6888BF0A08F169E7DC33EB104E41DA1D27430B3E8D67CDE6521D291B2D9 |
1B147C91B9969C69864A5082A6C2CB4F3C0DA1A33D408F6AA498AB2C225C030E |
D76335FF29C7725336015316201C01A8F7503C985F11B6E33532A41F000EBF81 |
0FBCC281EA17A91B0F6E19C45E8ED31A94E0B81D562C707D0727624BB794137B |
44C52C0F8D77313027E5E8B78E95CC2343BD52968D988328600EA0FB23B18B0C |
F14DA11B4AD4FDBA8DD229DD29D3E4C89123A4C9FBCA5E46B86BBAA4AA651416 |
E18A20ACE6485BCA217A8BF1E9D3A76FDDBA959433BA0DF7B7C8D49E0EED1243 |
2208442CC12970BD8E9EE91614069DE0EFA51CBCB111E31D8BCEE6E46A4A51B1 |
6621654E00219BD0A3C84C1AF8182C41AC1CB30266DA2B4E30AF699B4CDF4BFD |
5E2AAD1C597EB26B91FC9666AB56AD9A33674E0A75A15AA0A30941637BF29E46 |
0AD8D8A97453E9CBED0A9814E0A6AEB288B42F76CE7C96D8D09178C1CD1898DF |
9ED034ED1F5E11A7D7CAAD4953A3828F98E448ECE7F6F214B9BB5AD41693D1EA |
D8BC1649600DA27D332893EC63F439FBD2755DFCBD318F2E351303FECCAD590E |
A06D33939197A9B3CE5577F25793D4639636CC0F9170C3C263C775DED7670F60 |
146E4D1128668E6D8A410FD7EBB8148A680DDE953B70987FBFB9814F4FEEAA66 |
9AC06681E5673A53907208E1975F7E31B1178788BC438527A1D9F04A99BA4ECF |
94D63CE38C33DE7CF34D942B85A47047803B436CF12F2BCB8A1852C70F43860C |
B9FEFAEB1F7FFCF16335FFA99B027641AD9370D75D77DDEBAFBFEE6899BD13F6 |
302387F908938E34B69D397332BBB4AFEB78384DE82436339A4FDFA2EDFAEBAF |
BFDA4074BDD635D75CF3F6DB6F43FD615AC094F1D2AC9A4B0A2379962B85FCED |
8E344088812D6E67866305F682D22628AF25BE653212B3010279D34D376DDEBC |
593BC79100E9667222FAAF1CFAFBEEBB8F04D3EAD5ABE7CD9B077F4314B97565 |
487539FB54DA402E1980C77ECB962D93264DD20D326D35000A8E6358DBCC1ECE |
60021264DDD102786BE79D77DEA79F7E0A00C5AD9AD9AB5E6E3D07918504763D |
2A78585880B48238E5469678BDF09E913348605C26F64C0CC5A75C8E8C18D45C |
51D19082C503684EAEC255575DB57DFB767D979B1D01C161F0B8196EE021B1FC |
F2CB2FB3AC030661F5766B147FFFFDF7BFF8E28BDAA9AECA30DA3385780BB621 |
73C1288DCD614B69856EB8E186F5EBD7337AF8D94D22815B40B6D5A9B8BA030F |
71746C269AFABBEC8683794B19F280B289DBC8790E360A9B98CD1DEBA1915FBD |
B993522B7388BB64194F94FEE44EF9207F5380E347E82CB33D62C488F1E3C76F |
DAB4A96E69909B0E71B432F9B88B6E53690936E73879888194000899049FC008 |
E36A65F6763D907660B6136562CBC7FA2B77A2F612D429005745A3DA31866414 |
6B53B92899D0A8714F989F1CC266CAC9221701F3226EAD41FA93B3576105F267 |
39E1BD65138EE69C37A6D5DCB97357AE5C09A2BB4E912F5EBCB8EB79B9F3CE3B |
376EDCC83070CEF44B3D50B6D4D0A1432191F0C6D00F7071531FD9CA6D64343F |
FA6A4E9FA11880ED712839C2B6209B895FA2C1C4368EAD8E117045C9A0028209 |
1F117BAB194196B2071F697F5AB97D083754FA8B23106978673805906917E2F7 |
E65E580DA5EADEBA0C95D9A068C7C180D8B61DCA71E2313EE01EAA6B0D8CA8E8 |
0B6DA95A815CB395D9874C3CC2DBE90401A38D76AD13D511508D1037BB9633DF |
294387EC0B01ED24644A1A95F7D51B11FF4C038F20DA24B292D6099D3061C295 |
575EA9AD6B4E0CF7C1ADC0562AF674844131726D27A864F5FBB3CE3AEBC08103 |
349A23205164AA13D60B57102306EA4DBDA98D398FC1DD4BF54CE69916E6DA24 |
FAAC9E0C6A1A46A318A9AD981171BA383B46EFA3C2C81B0ECA8D5691C0A9749F |
F82B2979FD69DAB46932EC162E5C78341E70CA91B4D8080CBEE954065860948D |
202C43B1DCC8413FEB85E14BC34E4776C8BAC46C21D872EBADB7CA06A76F65E5 |
2CFD2DC34E0A3C946C65CC2EC341539927D3629026816B894395CA108A130086 |
5E47A6116F416623F6CBA4D84B93134539CA0648854B9E64963EF4D043B473E1 |
6C238990BF29E7B9914D24DD1BD62565154E122565A0B28F8A06A051FD6DDB47 |
6B7108E718837E89FD010A26E5349839174F39E59443870E996AC07CB9AE754E |
D9A2EC0C81B23B6DE520B03099354B92B0123A985CA05E7590CC004C4B697D6F |
4317A9229325A5EC8F46A26073931112A726CAA38AB4440D4428FCA0D7D4F46A |
8925282FBDF45299925DEF3FE9A493EACE8B5E9650391B2696F3B702A956EC83 |
E6D44F94D4564B941EE999880307ABB5A088E3E67A7A37FDC442D526A41B12A2 |
B0B39E5B86029A581F94943972E44803652CC5F4C8323C2117C6D4F51767CFE8 |
370F3CF0C00B2FBCA08D217367E6CC997EA646488D4D03BBADE3DE31FFE76D8F |
FEB6DB104B86B439ED4B10D2700D127BBE0EBE44C4CE7D148C47ABD4E7A4FEA4 |
5A5E027E636F0CA046CA7021EB7216DD122FE5DE035A086D0046A87B64CA7FF2 |
C92750A8A6815C8E54936533FFE2FF9497EDC8D8C0C071DD0AFE2E85C4301BC9 |
01515023D44043A118C1ED1E33C3D0CC13B733CB552A2D00EC42C768BDD01C16 |
3D13930E8392D9731829F2ADA6C093D8CE5CDF31066601C20169057278DBBBFA |
F9DC73CFFDEAABAFE0D0D62F5D6672340B8038ABD80B29D3D018908D1E428C22 |
5E5DE4106B618D9D33B8CE6D29A500A0724DA1C24C0BF3D34F3F8103AC23B51F |
366C18C56194665B0B56F2ED5CB1081273CC39330B5C6710A11A26CFEFC4AD74 |
1BDE8903C89196CFC1766B474E081B486B79F3CD374B9478F7AC59B3E6EEBBEF |
76BACED16CF81A1BD605393B28B7A84A39138FD98525D4DC0BCF9591AEC6EE8A |
832D02518313FCB6F4AD45348DA9048FC469EF0A028AEE94DB1FC550BC84ECC3 |
0F3FCCA94023023234EED103EBFA5EED506B6FAF02961C6F54CA044F3BED340D |
C9F5CA9051BB2EB04E014F9F3EFDFDF7DF3F7CF830FF8D8091BAF1743D2F29D0 |
D75057C67AE17EC97A2380E1639FB283EE167E681DD210CE79CBBC03A04B4082 |
8D1449361AE68D9D8C7BA161687EF6EDDB6782CFA2ACF6A6ED8A1682EC63CC83 |
A6ACABBA3EFFF2CB2FDFBF7F3F0ADBD36BE4C75F1DFDC56985994ACBD2A5A2FA |
AB7EA65A9730899663DDBA7511E2D0B981C976A183F5D537DD74D3B3CF3E4B4C |
15702F0CA3C822E2E42851A6DAD28FD966EBEA2374EB228963598C33AA4B8B18 |
F3DF9E76ABED8AF67540D841026B0B27568D5B76ACAB2FF3585588D528767084 |
E028523CB1E72C0E15CC45A9342591574C4B8C9FD95EB7CDD10A7D2CFC0392C4 |
0C049E6157FBA4A0B309152C5FBEFC9E7BEE615DC84A385386E6FB2B774E4C21 |
109B424623E506A39DA5FC9CDF2294F6B533556A3B947A9BD3C289062F712BB0 |
D499BFD326B516EB681430F1D2F8AD64DD89F21358377C3C7ED645383DB9B9B1 |
7E29DDB376ED5AD762022A93F8B35267D61C2EA6400258816DF9CE6BCA9429BB |
77EF8644A69DBB1DE8F9F0A8E997C3870FD75F91E67AB85E8A2E1F28C5ABAFBE |
7AFBF6EDCE1960F6B21206472064595D5BC1A9749D639D25C86A0E0337B300B1 |
9E8ADDA61592612141A3FBC9FFB1CFF0D89A51A9BA01962B19595827FAF80927 |
9C2005431E5D371072A0ECA14E31B40249B57E78F4D147B53A7A4D16DA704D14 |
ADA3E5F813B001574A1DBCFF5A813FA8B30C26E574A0790C8A5C77A82F92C9A5 |
D5D1F8357573E7CE956C95F8E06C8350653C6655EB7A21DFF5404873B0088934 |
DAF9D65FC9CB82648931DB945B8D767D3809276D037D8596CF189C3ADA6D6309 |
2BE705A64FE87E34C8BBEEBAEBC9279F7410323AB818558EA8F3AF0BE12485A5 |
ADA9C877C23BE5FA51D780920234B0B34EE69A467850D9515BA6675C59C3A7CD |
69A57FCF3CF3CCBD7BF79AB0B64E016BC6346F950A3D045FD7FEE2AE4F25114B |
4F56324D041B8934920B6C00C7E9C5B59710F486C9F0A779F3E63DF5D453AC88 |
843B485A3DCAECF7CEA6E3EF02FF7121626FEE4063748F370FD8FB8A4758E4E6 |
19C4F3225974917B82E15CBAB14A0CD75B8BF358C7BAE36DB18B435CE8A350C0 |
91C02495AACBB4F9D69778A2EE5DEF197025525F68ED97FAC7A511B6C810F61B |
2F68DE02AB43E40F2C1C4CD43BEFBC237B8E8A640D29462688B96A3CDA36FAB7 |
E237A6006966ED4098B67343B64A3EDBAEBF2D6C1FBA8A83E7CA2B9F11AF85EF |
1F7008DA5D5D094B226E7A42EF656005AE0AE0006382F192BC1E0A86D7731315 |
6A16B1864843EABF0E4C4D9C38F1C30F3F7CE081071E79E411279FBA8ED38409 |
7AA68145BD99A239327F9AE5840D4A3218485B5C21000E7AC76BAFBDF6BDF7DE |
D393C1BC013A9F3C79F2962D5BF459CC0B6A005A99DCD5314C3F10330D139253 |
0DE48FB8BA3D1BD70BB94ABDD222226EDCFF2D3BC0C37EE5789D8B117B42AF75 |
0AFFEBD6977122DFF51C3373A59CF2A72423851ADF56E00B4407EB87A143874A |
FD7B715D6E514704E1487ECCC77300FE4D19530A14FCDD08C7734FADD491648A |
EF85056604A934C415575CA18D64E1552106894BA6A1EA75468C18B173E7CEBA |
E7FBEC55F84FBADE1F73B1F1BCA49CF5B4BDE24E00C3860D3B78F0A05F10D7BC |
1588FB53695C8F1C39F2D24B2F95DA90F27EFAE9A75D74EE860A29E3AE416F80 |
3F6F687F99021195B18A985CB1E18C0165986229E3A1FED670E487CAF2B914B5 |
D25F3CA69FC9867288A0D430391D5FDA10FA765D90714973E6CC59B56A9531FF |
0693524F4F80C47E4F2A11B991D0D42DC6BDBED61C9E3D138944ADE9F3DB972F |
CF00DA0BB38FF54299619D58E37AFBE19038391AA11B2C16B3CAF8490F0D9468 |
C54F7324A0955930EDB83B4B924237ADB89DE221B51648591ACBAEA2A0167488 |
89FC2254DB11B8DE40DB4E1931360AD6AD8E3C9CBBBA7FF1E2C572278C21EFAC |
F725B5E11C1CD156E6B92FB091636522E250C03C048BB01538355BA1C521707A |
37022F42EFA20183B07C00F88D7D533B3A9E324B58235C6C7F5198B860C182CD |
9B37736E0D538ABDA353CE84F17A1CBF58B153377EA37B580948AA3518AAFB51 |
30E848265162DD35D4A8314711992C464E32C667C0063B5138147934339D02E7 |
ECC9C7A51D299969C2F8B366CD7AE18517887952064D12D41169164C5B473A80 |
2AA3AE07435F0197A1F52E821B05EF448566523FD45127C688909E3375EAD4B7 |
DE7A4B3753C95EF1FF8815C7D03A613A7D9DBE65F4E8D1DF7DF79DE6103CA715 |
6D572A44CF157A05E910DDF422F0E9981457DF3E78F0E0FF2CAFD468D1735C51 |
E4F40289E40F18102C22CC44AC20B3C1B6D464EAA5EACAA262999383516E8351 |
F791CEF3A209F9F1C71F35546DBFCB2EBBECA5975E62E74BBE9F75D659BB77EF |
A636C9A4C729937A72B65D74A0DD2EEB870D801E623038CAA98CACF0F339E79C |
73FEF9E73FF4D0430D83749435950905C3DAF5A5D49A3B74AF85405439C8D95C |
D6A2E5D3B0A9A84ED9AA88A9D9AEFDC5CD97E93C025F019A5DEF4BFC00B9D4F5 |
7B630E1E3B5EDB524B0FF29F6F31DD87C676F7DD776FD8B0810A34A7DE8BCC2E |
E778FBA4499376EDDAF5D8638FDD77DF7D710EBD2D23F563F4747B735B8222F4 |
A88FE7C2997817769A91308622F01A1DC7AA44B32391706A4C0DD45DF6E4CC18 |
13FF6A918838D5BFBFFDF65B7C7DBFAFF795535D18762EBE003896FA934247F5 |
66482041A3549A44FA08140E3A35D3A64D7BF2C927392CDA8D38BECE919153B0 |
2E378031F62D365990316E46E617B9E99F85957CF1C3870F33C37D99613B22F9 |
236CC256EC8015309EA59E256520DF9F87F68416D3D1E444915061E263E34C0F |
659700FFE456EED8B1835D65460BCEA7CCCF9EDC30DCACE558D6DE949D97B720 |
A02AF499FB01EB4B6FBEF9E6575E7965C89021DF7EFB2DB9641BDD48286A9CBC |
571CB8C78D20D9A60FD27DDD9E8A6D25FDAB2591304533699CBAF9820B2E90F7 |
AC07D2F553C2451B943A076053F2A4DF7FFF7DBB2929473C9CF5AC43751ACACB |
7F2BEDD8345ABD9484A33CFB534E39E5CB2FBF345EB172B916455F8A4559941C |
40E79D779EDEC57DE099CF76E8888CD647E4310C6D657D8BE92711646E656AA1 |
80FBC58E1C3B76EC37DF7C136BCD69B24B737B770836905E9F9D3B77EEB265CB |
74837EAFADD200C24A1D043729781E1530519C5867161ACAAE68348405662DD2 |
000026C0D3795E18897D0BCD210E996EA3EB8B9B49B7731F24A2057D99065C9F |
B5C780773B7FFEFC75EBD6C9E83124D01E30C1864A8BE5AEFBCA13656C9D29B4 |
22782D65E4E3C2850B1F7FFC71E9B9FDFBF73778D851CD70EE30239CA0A9F417 |
D7A3F427C8D5794DB742D1F620F3A7FB9F78E289071F7CD065A09D970C1D9D68 |
D867490C7164C0AC603FE1CAB3D3162D5AB466CD1ADB9131178019E74463E7E9 |
EB3AAB516B1AA568411F33533C4A52827E4A1C19944DEA0FF3D173C08757BA20 |
1059D50FD4C2A6ACAADBF5BC0275173ADB4C0FBC0502966A6CA4478C0D18EF1D |
9D48EB8B4E4F74D4A851870E1D8A54AF6C80D4DF8CE3ED20F1B6631D41AF44A7 |
EDF4EB82019E488091F67E0B8EDE45175D247B4E2ADC2462C0745269B3C648B8 |
278165A25E9FC839C724054A4B0CB5C80BE9CCC28073C01C30D9179B366D32F8 |
C8693C4B049CBCA54B97EA7DA475607EB036C2E535D144443CE241F2F2F6EB99 |
2323AAD8850D45C0315CE6890063AC6570E7C894634D8E343241B7DC72CB1B6F |
BC61FE9422906E531066F2397BEA92953A24F2F974DBB061C3E42A698A366EDC |
48FA96650354AC4799A0D5C5FEB7DF7EFB8A152B6232BF08A5E22953B13484D4 |
98100C05C4A5B5A3F19929672B8B46B4B05B4FDB072557C7B7231C7B3369250B |
EAA494F7340DFE98671F33673E3ADBE1694E6EBBED36A98A2253D3718CAD1E08 |
4A3BF889BBA37FEFB8E38EF5EBD793566F063D21A0D97ED84C4E68F95B28A771 |
10CFAF5CE4DEA55D9F8F67008369CA4ECFDF86403BCF4B0A69113205CE91A76C |
05C64699804EA9307193732EE296368088D9F4E54664A8345BE875E7C89ACFFB |
4A7B5BF23185D217A76F23F9A2A37345E016EEBC6282D38A87DC794FB7FEE258 |
36907CB143243177EEDC19E9E22168D35A3418645075A60CAEC47B060862382B |
E56DB292A5DA2BE540CE2C125460727427B5AD9A2299AADEF3910ACAFB275A1E |
0088527F8868911BC7B139C78D1B77B8BCE20124809732CDB8FE7BF6D9674BEB |
5060CADCB673C195035404186271D4FFFF42DDA28A6CB3FA4D234A5F53A7B995 |
18E4ACB962CAF2A1C290D5CACC6292BD205207E5BE6186FDA61CC967E3B53399 |
81F17A29070B757C2878A1A25D52970C3D7BC3B5218E70A4AC778841FA50631E |
15B9F95E3B13CFA5AC8FB9B39509737A427F2A8FD9EB1E13A0BCEFFF015AB03D |
44233550ED0000000049454E44AE426082} |
Transparent = True |
end |
object Label1: TLabel |
Left = 104 |
Top = 83 |
Width = 195 |
Height = 18 |
Caption = 'Loading game...' |
Font.Charset = ANSI_CHARSET |
Font.Color = clAqua |
Font.Height = -16 |
Font.Name = 'Arial Rounded MT Bold' |
Font.Style = [] |
ParentFont = False |
end |
object Label2: TLabel |
Left = 56 |
Top = 21 |
Width = 313 |
Height = 64 |
Caption = 'SpaceMission' |
Font.Charset = ANSI_CHARSET |
Font.Color = clLime |
Font.Height = -48 |
Font.Name = 'Arial Unicode MS' |
Font.Style = [fsBold] |
ParentFont = False |
end |
end |
/ENU/GamSplash.dfn |
---|
0,0 → 1,260 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\GamSplash.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\GamSplash.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4429398148</prop> |
<prop prop-type="OrigDateTime">45408.4422453704</prop> |
<prop prop-type="XlatDateTime">45407.694375</prop> |
<prop prop-type="Translated">43</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:SplashForm.Left" resname="O:SplashForm.Left"> |
<source>241</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">1</prop><prop prop-type="Order">0</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Top" resname="O:SplashForm.Top"> |
<source>158</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">1</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.BorderIcons" resname="O:SplashForm.BorderIcons"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.BorderStyle" resname="O:SplashForm.BorderStyle"> |
<source>bsNone</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">3</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Caption" resname="O:SplashForm.Caption"> |
<source>'Bitte warten...'</source> |
<target>'"Please wait..."'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">1</prop><prop prop-type="Order">4</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.ClientHeight" resname="O:SplashForm.ClientHeight"> |
<source>480</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>497</source> |
<target>497</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45408.3372372454</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:SplashForm.ClientWidth" resname="O:SplashForm.ClientWidth"> |
<source>640</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>658</source> |
<target>658</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45408.3372424653</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:SplashForm.Color" resname="O:SplashForm.Color"> |
<source>clBlack</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Charset" resname="O:SplashForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Color" resname="O:SplashForm.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Height" resname="O:SplashForm.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Name" resname="O:SplashForm.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Style" resname="O:SplashForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Position" resname="O:SplashForm.Position"> |
<source>poScreenCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.TextHeight" resname="O:SplashForm.TextHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Left" resname="O:SplashForm.O:SplashImage.Left"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>8</source> |
<target>8</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45408.3372424653</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Top" resname="O:SplashForm.O:SplashImage.Top"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>8</source> |
<target>8</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45408.3372424653</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Width" resname="O:SplashForm.O:SplashImage.Width"> |
<source>640</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Height" resname="O:SplashForm.O:SplashImage.Height"> |
<source>480</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.AutoSize" resname="O:SplashForm.O:SplashImage.AutoSize"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Picture.Data" resname="O:SplashForm.O:SplashImage.Picture.Data"> |
<source>0954506E67496D61676589504E470D0A1A0A0000000D4948445200000280000001E00802000000BAB34BB30000000970485973000004BB000004BB016E1F0EAE0000000467414D410000B18E7CFB51930000FFFF4944415478DAD4BD79B86D5575A73DF739A4AD4AA51ACB5E5AE945AEA022229644B14220420C8140E8A2A0F4207D4FE8EEA51301810B4A495D90D8017628A2C1520491468242A174A2D15499EA53E94BEEDDDF8FFD3ADF8CB3F6D927A1EAFBBE27B5FE38CF3E7BAF35D79C638E39FA66D45A9B9B9BFBC7FFF81F8FC7E3FFF5BFFED7DFFCCDDFFCECCFFEECEAD5ABE7E7E7F3EFCFFFFCCF3F33B9FEE93FFDA77FFAA77FBAD65A6BFDE4273FC94FDB6FBFFD5D77DD95EF73431EFFEBBFFEEB356BD6FCE22FFEE25FFEE55FE69E7CFF0BBFF00B7FF5577FF5333FF333F9DC665C7963DE95017FEEE77E2E23ACBFFEFADFFBDEF7F27D9EE2D78C9C5FF9F08217BCE0BFFDB7FFC6ACF83573FEF33FFFF34C35BFE6EDBC313F650299C9FFFC9FFF33C332990C92EF734FEE644A1967341AE559BECF6DACE29FFC937FF2677FF6670CCEC27367FE7267AEFCCB07BEC96D7FF1177F91FBF399E5F36BBECF64F27D66952FF337AFCB9D0157DE956F32B7803AAFCEF78B0287F7E6C17CF01540DBB7E4D78C9071D659679D3FFEE33F66B69958D698FBF36FC09BDB02B17C6037014856CA372F7CE10BFFCB7FF92FA79E7AEAFBDFFFFEFFFEDFFF7B06CF46FFD7FFFA5F33AB8C909BFFD13FFA47D9F70C9B7F01547ECABFC02A40661A9B6CB2C91FFEE11F6651CF7BDEF33213A69157E45D792AF301DAB9FED93FFB67997F5ECDF8B9F26B469B8527793023BCF6B5AFBDEFBEFB32FFDC1C6800B78CEF6C337260CE7CB20A379711801EA0CEE73CF53FFEC7FF6021DE36B89EFFFCE7FFC99FFC493E5C71C515871F7E78DDDFCC21180522E5A5997CFE7DC94B5E92856786F9F7577EE557EEBDF75E0E54BE0996FED22FFD12D3E6D94035FFFEF22FFF72EEC9AFF91EBC0D00F37D66951BB2967C030A019F7C00679C646ECB2B382F995BDE921BF26FFEB2EA7CC34AF35456CD39CDF79943DE9EEFF32B90C9BBCE3BEFBC33CE3823CFE60616029204BB7EF0831F0420391AC16A0E5A769F85CF4D2EC09E99671A192D9F39B69088DC09F4F8FBB297BD2C6739DF07E5DEF9CE77DE79E79D193FF764F9E0E47FFC8FFF915767A8DC96BF9955762A930450B9195CCD6879C58B5FFCE23FFAA33F5A7BEDB5F377B3CD367BF4D147395F7930D0C88483C3793063B2F680250F6640A80A8785755D7EF9E5C71D775C1EE4D433CEB265CB3266A09DA7A0002C93C9F06086058CC004F807DA792A7F73C3BFF817FF22B89A9B734FFECD3D5960A09AC1BFF9CD6FE65DF932DF004630369FF376095ABEF9E7FFFC9F6762B92D10086432BDFC9B07F38AFC9BDB58512E889E47C05390BFCC9CBFA053DE18E0641CE8C3BFFC97FF327B0D26640E50A1BF995C994006CF232C8761734FF0014ACB91E75D2C81D30A8DE5ED192D5FFED66FFDD60D37DC208DCAE433C88F7FFCE3FC9B0FF93EA4298BCA66FDE7FFFC9FC1F6809D1371E491475E70C1051913220353C80D2F7AD18BDEF086377CFCE31FCF5A5CB2EFF5B0E7CE830E3AE8031FF840C891F48ABD96B4C2BFF85E26521715F40B263FFDF4D339C2DC9FF94024615B5248E700A8D95F0035CA54B297CC8C79409E18D133CF2BD99E4C8B33900F793CA70882E2A1CD3D99741E07D08B12383726F704F4F9BCF9E69B6731FFE93FFD2788544683A166913FFCE10F7D2A5726C962984F80987F33E76C55C66139A12F59FCA1871EFAE10F7F38BFE63372462696EDCCDFBC9A25C09503C4CC242FCD42B2EA0C9EB7672D3066F6B2E2311FF89C7771C219012C01E1C02D773D8357529B09E7BDB3A4930C9547004EE60F7264B43C9E2583949946702EA81CC2C1538BF2B07C9F71329FBC31EB42C8801ED543557707AA0DC9431282E7E591002484233B05F5C96855326017200AF93253CD411D4C29CB07E6B90154992588E47539EA3BECB0C31D77DC114C6339797B0E6776396FCF5FD01DB4E603878D09B0907CFFD297BE344F65F21924742AA3650E4A33D3EF0DB6645D7984456599AB56AD7AD7BBDE059BC9B31916390319828307C2F3DE7C13F042B28124E211EBCDE0F91736C34BF353FE150F416F4EA580CABF6151795DA08A1000AAE4C140C3A79843BE418E042C9588705B26EF2439CB6166FFE13FFC87DC10592A6BCF97871D76D835D75C130CCFCDD9CDC82521114148E0ECA140C002CF9118722EF2C6C02AD3CB07609579E6FB6C3D141FE865DAD911241E61C52A7243C647628368B0D87C50C2434F8056725A3326948EF3C580E06AA697C920B83032472377667519077C067F32ABC099A3C7E4A5939C62A84DC6C9B09E650842E82FA72027F4473FFAD180F4412D33C8BAEBAEFBE4934F42F406C41A5AE74F7CE014037F6602A0C0B76C4DA601E51CBC51A65BCF5AA69A0D62811CEA4083CDF211C46EF617C80414D9B2DC9957231E05141C074990FC06F8700AFC12C10EB0E459908485C0ECDB448D01A45954EECF3D6C41E6C38B44F5480CA160994FF62ED08E0007936226428343C7E943CEF39864F0D34F3FFDFCF3CFCFF8192DD4D5B74F5345D53F9455D01EE87116F27D5E04F71DC09C412005CF72C0AC16411B792DDF56CD2673CD390CA2E46588DB6866B92049014DEEA9080AD7E1B44F33605101FAC5FE3169B4C9FC4541CC676ECE7CF8373FB1C2681BD088CCBC1E24363B13CB4F9912DFC03C90625497595D6EB8ECB2CB4E3EF9E42C04A2C06D1CB31C8CEF7FFFFBADAB3E88E76DC68518A1BC93CFC8ECB3F8CADF79212EC01E10849906E065E1D963F46364266D0F596F3E87768480224FB0416C4AF611BA005A4038180A8E8594005A0711AB9A78CC31C784D3C34278295B894016FA2523CF97882FFBEEBBEF55575DF5F297BF3C54263084A6A094ECB8E38ED17E98DB2C4081F18808AC9D9943BF32B7B0673433BE84974C33E00033B7B5222D6532E79C73CE89279EB8E87BE185813962281B91F11159D4A137DC70C3C71F7F1C1CC608D426EA9132566012AE96B79F7AEAA979F6ACB3CECAE3D21AFEE64EC828F225F26BFE06F3590EC8CC9DBE1D0A853C94C751C1B901F603A064F09C380E3B6265669B19AAD043E54133842D8682DA7A707891BBC35F7ECD1579779F7DF6F175600EBC1C0CACEA1197B6AB8C1C9AC824198D4738C2DE8F4E0C0FE6BD0E08116C13158AC308A1D47A71E185179E70C209DCCC4222514513CABFD9A9EDB7DFFE339FF90CBBC946B42E37B335F91EB2060BC9CC813FF8997F43349E78E2893CE84CBC946C20771936E0CD9DD572C67AABEA86A89D9B77DA69A72F7DE94B594B1EC9EB82CC2CBC025319C5DDA9DA42EBAAB0670D9A5FE9156290E687AA6648BD4515E5AAE933DB1632609EF5F0E633148CDD6140D100806407B3EAE0430E78969C330B1671F0F30AA4109931DB84158461397A4C29BFE62D39354C83455566C48AB454714C32F2061B6C1024C1E2A20D55711075AB4D04FA9D77DE390A3D26B13C8E18075584F208F3FA61C4B2E1A31C57860E14B20D5921CB0B2DCE0DD842031A2C3FAC1939948304B9E7F0284329D0D5ED44AA523647A2848ED73D830A00DF238F3CF2E28B2F8EDC1452CEE39CC356C4795007E15AB46310CFB3F7E72D6CB6C24E8E0D26A94079D75D77FDD4A73E9507232BFDF8C73F96302D4AAF513195D1D85105B4016A2ED88082AC4B70EB6CD036DB6C73FFFDF77368350FBA46588567066B2DBA429804F661443644486437268910E701C853C8C5C19B8C16BC8FEEF8D0430FE5D8836DF2DA2BAEB8229339EDB4D3809E0603CD4A7969F62B2CAA52010EB9FF8630AD58B1E280030E9805583FB3E9F99069E3BCC81A333774146C983260D5020779C52B5E11187EEE739FCB6E069E59726EAE947DF05E44CC2A652B17A3DB05A3F6DE7BEFA8C5194A1EB3DE7AEB3DFDF4D3CAFBB94796CF1966F92AAF08E081157B8165120E1AD29319227EE55F9C1A5B6FBDF5830F3E08C5E7ECE4D0B14C841B6C986AE7198D8554410AD2C099E580A350B689BAA00548E327A68E6C7AA85B4097D13281BCB7720EF4CEBC2E3B820A92B7E4CE8D37DEF8D1471FAD8754BC8532A0B4E1D7901A5626548D87FC5B656E1D559961B0E8631FFB58E69C79E6455938665276FFE1871FCE36651A2040E60FD9C9E3F91762EDBE64B1B901212CFF627B40C2639B9086D9D0DD77DFFDBAEBAED302C42145778463712EB078617709AEB6899EC0AF18CC733F980373CD37471D7554E483E00F071C83369670250F84039528A1E4BF758FD4C0B83FFA6204058E5280F38E77BC63E5CA95412DCF9A5214D303386D22C8663E582066113A69FB8001E7D73C1E760807D16305628087C8E59870323D10DE7B20562AC10A315000A85F702F9BFEC8238F0C3C71F8745A97E47850F346C8510E329A64F66BB3CD367BECB1C790C0248F921A9C74192133DC76DB6DEFB9E79E2A46E41E25006C87EEACF6D4D149279D74D14517E5B160464E4E5013092BABCDDF5FFDD55FFDFDDFFF7DC11A75E1924B2EC9F74108ECB78BDA3C5B77913EA70BDD1A8756B03FAFC80AB34FD056C85F161C0A88F8CFE681E2596A40909FF254A6A485193492C8625DC962435340D0B090F0F57CC60CC23620AB86EFE68DB8C3F317982CC1809939EF5281A81618442AA6AD234DA5B92DB4714156EAFCB186715B451AFDB58C2FAF424F6D5DB168DDFDC3F6A3A24129320EE6C7FABA90A4FCCA082E0D6EADAF0BB52F53E538E91503CBF32CFBE237483CDC094D076E4B00168CAFDE102709350997223840FF8D1AB0589EA72EBDF4D2638F3D16FE94A5A1A9B39C591B0AEE3179F85FFE664559428E287C3447264882BB1714CD693AE59453C2E9EFBAEB2EC53BCF39D41CDBBB1B11F8E39DC59600E7630BB04670D698466655CD0C7819C167CCB9D833105BB92D6826B3C90891628F38E208F9933C2F73CB2BA0A41599C552B58DBC6BABADB6FAD18F7E94C721E8F00F8DCFD5A901F9030DB04561B104B60120762629571876485EB59A563557826E780AAB66AAF0B95674EE3A936CC4DBDEF6B610B4EC94765AC5A320529E459AC1F987A1181D979940A3F246F0010D35F8BCFEFAEB47F10550820B36D026A20C50CDBBB081E381D6AF87D4A5B157568AB6932F03E7FCCDB4F7D8638F7FFB6FFF6D8662CE838B01C17F4D08831BE4CDAD0B88E28932016E2FF5287EF528A96EF2BDD10FC8F1D5D6ED516AC57E2BA97758BD8DBEA275CF63C0BBD75E7B5D7FFDF579DD8D37DE1879B775A91152C9923109E05845DC54C44467D5046868823664F52583900C20C8CD7A4654D2C040F170101AD2BAF13204E790430EC9FCC352A346E7B000ED6A9F78F66FEE0E343363E078DE79E78527855EE7CBD6ADE7AADB482BEC81AEA959F4AB3D970B3E0A91955F029D68A501E57EFBED1749107711180C498A04970386D4836982F82975442D69B84F94D79879F03BE727BC366220B40CC508CB7C066103E49A6CEAF4853708D30A811E22873B34B008E9F3AFD6AA6A41929DA09E1A089007817F0D0D1077F5F86A36C7D8E5D9D03EC9C89AEE7D0423369E6C28113497C74331F1DC20AA2BDE4E1FBC7AB159EE35D265205F892902841A0FE49E91F520E899E6B3DE148DB7E87FD32668A6171296F7E6988540FFE5E49A3561CCB36E1933441D3418C4A511D3149A1896896440E0558E55E5376EBDF673C3AFD84775773922568D1A63880E843A95C9E44E6C1B1E19B00546187E73FBEDB79F70C209E79E7B2ED6F2564272D85F5E845245F084267A8F150E1A90844899D0C79C0B1405095C6ECEAB31B967F0003037E77061A54741E7F431ECC0A77BC61967448F24E0433AE32E037011A92A8E794BE6ACCEED42086B5AB1624548471E0FA7E7BD8161FE8D2E71F0C10783F04490E08A82172A3029EC6651599AD10608977A3D31C9E85C6026803123471A70151228C805EABBBBDFBAA00CD2F20D2181B921043D43711CC46D999966D2568CBDFC6B58C0C004AD9BAC8A475831F52EB76EC5AC1AED85175E78F5D5570756A106795679A80ABEADEBD9AECEB81FA4762C616E2EF44AEF64EBB671C7514963AA04D3B141C83D441A824E21DDC18A8C8FA8A4819673A4B68390042E656BF239A81EB6929B33A0B7F9415AA4DD1E991EF3307E68BEDC65975DEEBDF75EF8B7024A5B689F18E999685D56C572C8B221676D22C0E643040DD4D0488B59064B5D947E3D57DF67CEDE59679D252BC2061E51FD81071EF8CC673EC397C4DD3937C3379C3637645FF3A5875CA32B086DF0973E80FC25A80715A475EB476491B3CF3EFB577EE557EEBFFFFE9CCF430F3DF4F2CB2F5F625D986D0108B14E0426640E79D7DA6BAF1DF906D4D40F67805F2B1A803B04B6551F4CE09FD1AADD0F320469E366281D0E48DDBD355C859F3C906ADB21A93FF8C10F5A09AE36C61B7104A04520BDF5D65B032ECFA483545A308D0F99C33AEBACF3F4D34F23A8E611CC7D9A07F42741CBE4B58E59654F0901CC385325869F43CBFC091221EC1CB183A3888A03BD18D0772F34600411F08A77716C2285844F649E608E4663B7C6385B9CDFAD5B35D0FBB7DB6EBBCF7EF6B346705451A62203BB867E9C499E7EFAE9D75E7B2DF676C84D94A1830E3A28930C5DD68AAB5F4D914B7D054F13D611C4054C64357301F14ECF0EA605C45079F3ACF3CE5FC082111898C3DBEAA173FBD4CE33ED2C04EA9F2FB12B54CF254C05B4D13E09056410681F2AAF8A0BFE23219C47020DB0379B98494ABBF378D6ABAE9FC9C30F32324C3A68F0D4534F81EDC01CFA8E2809AB76BBA1600846A79D76DA0D37DC90C3654823E41E175B5E010E4894C1937CC85BF068B4EEB8818E57572E87CE830F4A8BCC6C811B3AA0CC487B8440238B6FB1C5160F3FFC70EB1AD1A221B4B93F4BCEFD481804C9CB60A63D6B0306CCE788C2F9D76082561CC3E046B60941B646D1C3E73076E65F1DD206402137C3DDF3D4C9279F1CCEA27A908D26E9007C80EE0D522108756283FC573D87B30391C9D961282CAFAC0B0355BE21AC3DF713A28F56C3EE40B4A1D8238805A61BE917E2307BCF4E67944019D4C99C0E3CF0C0CB2EBB6C8914A3E7CA80736C588F0619564B1A0C2C1654D349C332905E2522A038465AF646F8826458812055FEE4980C027A698EE30A9EE50068E71C5C7976D9B2650F3DF4100948D00208964630E917D1010AD735F87CD4C3AD8D4AABBC073D3B1819B212420CC7AA5E4CA513D892EA828922D5F2836914FBD8BAEBAE9BBD0E82E645CC2D6FC1E9A2D787BF3BEEB8E397BEF4255FC154F314E47B09D74396BFCD36DB4424444CC9DC80439DBF669C2A026AF862738DE6E5B842C2182AA0CEF79936A0FED0873E946379D2492745FAF9D3C9152DF089279EF02C49E6A41198733D54FBEFBFFFAA55AB08BA811A467BCEDC5062500AC5BDBC347FA1D7C4526836AF263BB90E9A1FB659D60299C88A30D46BFC4086F371D24220DC647605F2679E7966C8CDEB5FFFFAAF7FFDEBDA7E8873C1BF801720335CBE7CF929A79C020C390ED0EE7A58AAE7156E04AE42E9C8418244E6713C883A65E122A4486415E27FE519153182F9F99B3BD935439A5B918AAA56479C0B123631718248F784FA4AEB11EC0488C0118DC421FC0DB714F06C5DEB424CD744919B23A14687161A5192C2DA1116B92DF3DF76DB6DEFB8E30E169B0161ED279C7042F445A66128893A9FC65E5F078DD690C6C952863034B215FDB22AB548C6F006C31ECDDEACF419062C21628608709A36A7C520A2F14331C21188F81DF530F556E2BC7C705113346657A0079263EA374647A3B1E967FC84E7A24D747A633E383E39E67BEFBDF795575E99B798BAA91428BED5A837235B515E3DA4352ECC43A167530242881CD3A8CE0E18CA565B6D158E0091E4B0F339F7434F9EB5B510B48D94B1D1461B3DFEF8E37AB031B5B90D30B06C7FD00E7AF7BCE73D6F3AC3E47FEF22E685F0961C45D47CA80CF20B272A6FCC22F3AF4A499B68C6597C08EB7BDFFBDE0B2EB8200422B71140A18165DCF370327E663EEA59B96033308D44FC8637BC21E727DF44DFBDE69A6B324E2683A8AB9762D1F9873DE3CAFAC0073E90F396A7342D6417C9580DBEE66FE6902598ADC87C704BB7857A30549B88034D94A838885706DC67F97923A64E3C341953615CFD839C480E36278477D5C4B38C10EEBEEBAEBB46D9E218C0A25CA9AE771411D921B466167CE0D69B6CB249561DB0B71EEE07D1CCFCF32CE60A30A1A64571DEF47013701E5419F76480E973B5E805220955081330CFE4F5F4ECBEFBEED12C0393DC137EF6B9CF7D0EF8E0E04401427B764CC82814C11C2D6365797B24F1ABAEBA2ABA17DC3AE811048683624C0E1AE72D358846BA4CEC02FC0372808F533AFE9297BC84509A4C32E3A353564B60EB218D596CDE4BB85C860D9C4DD6AF3C5E522BB961A5AF7EF5ABDFFDEE771F79E491049607E0A0109680B666AC79CD48936759FBEA67D65F7FFD40180247D21A111EF93E584ACEA5DE6B537A98A4DB0AE411BBC116ED13F9297320D681C9871CE7C441B5B3BF279E78E245175D44B27BEB016BA6A86ACB852B33BD7C9343142D8D352A2823A2D52053D5F76C2B7330AA116A9BD9BEEB5DEF8AE41A1D9A097B3C5B8989231981C80C6DD706AF61C4424CC100AE28A3D963B095E833A001AF809022A8A996311A22570E69B8002497D35DE3193165999929A3527CA97E5C554FED58A392CF2919CF80001F88710FDE9CFC8491A696795043837182158664EFB7DF7E1FFDE84711445851CDEF1A48065570315E27C0846703612D82BAAB89ED6ADDD2C9CC518D90E6F5D2229D2800791E177CD0CB0552AA7968B0658A3F33B9CCA6AFFAD9FFF9A5E980971E72C82137DF7C7318218EE7B0C9202274CA47C2273255182D1E6B4A5E104B456008F23868849190250020D52CE188E77F34C9340DBDF0F0075132C2120C663CC93039E79C730077EECF84431643E010E76B18172EAB9A81FD73930B73310181F910A6FE477FF4476021A2622D09B2F1C61B07D5F252CC77E8D626A8048611C6EFBEFBEED64DF7AD04D1543A1BA96BEBADB7BEE5965BF2C861871D76F9E5970313C358C010021F480325C71A3D0F1A1DA862EB9B15548C8709266D2D028B4B200ED7F973D568886A73C62292ADC1EA004D818B2F6A95A9FA90592558AA897EC23E4CB5998C938543F208D7C2B2A2C30C81409148330082CE200F84445B24F42C79830D3688A0A6C50F5DD63C99BA46CC150E85C302524ECD0DF225F2D3ADB7DEBACB2EBB002EB45880A08A3F30DB181C04CC75EAD70B3CE7C405209979361DB0084654079C6124EFCDB505FE45875A3DFE5B9517C736CC7B348986C5F485410BE990584B0A0C903D02FDA91A95F4AB2AEE96A0D1029F71326C568AD7A075414D132B1E10F8817938DE96F375E699671276CAB926F8FC861B6EF8DDDFFD5D041A3C7166E6C0E7B8B3C2C17A06F829DFF8C6378619E71B1465F6A2BA7220DF6C9FBE24B097703922125458A13C66C30F4CC178139472F6DC73CF681AEE3BAB96505886022494B38E17A639A1BDD4F09A56981CCB0127B1811BD907FEE3CFAEC2071AB08671B042B11BDFBC9162E3529841475806C7245EC3CDAA303A8B018F7A602943B55E890133B2D27F4E44EEDC69A79D6EBBED364A85882AE6828A4BA256A5BA95F53EFBD702259AF50CEBAF91EE801210074CA1234F3FFDF49AD9859C9EEB6564CAE69B6F1EB4809DB0DACA74A1C8B243B60D413EEBCF2079103DBE927EA30A07FE27D520BD98DAF4C8EA23EEDF74BD5672BAA7091684BB6649B622B5E4185F7AE9A5418E6F7FFBDBF083952B571E7BECB1F98947E407AD3B0536DC70C3EF7CE73B03750D7B234E11A85EF662CB2DB78C66F9DDEF7E979D0A041E7BECB1886979170AB45958507C0092C79151387E06E000D2903F13BB15E7B9A1860E2246645FD65D77DD880BB36432D00ED9991DB1864074A057BEF295997016EBFCF96C7D1983E698C09A5E096B871D76B8F3CE3B21E588178B7AAD463D3B1EB106AAC72A32731429E383F2EFBEFBEEFBE52F7F39C425D48A7355BD98D5C7A6155464C3106DC91EAC8ECB972F3FFAE8A34DD372211C5D8CAEE8CD0621434D38C619872478236C73C33EFBEC73DD75D7F95EC98469C435742E2FCA1232026E782B455053A9AEA83260BE343223D320EC3CEB854BE5279CB5D47AFB9BBFFAEB096D1B8F261BCE16E79F3CF5A217BD28FF86BE0720CB2757604B629B416A91F9088918583531004C2710B71E438B7C039270A791169C7A03B333CF134E38E18A2BAE80EB3348CD0D6D13D9026EC7A66B5AE4DF36D1A7C9C3AC414F242961388447B2B3016F5E4AD92F28AD66124C20992A36B64A945C6C5528735BA0946157AC5871F2C927B72E72A916633CAFDC77CD8C3A481639F0039BC55E6BE59217D4676B98B19F473DECB1156355BDF01C67B48C8CE98E19C22FCDDBC47156C32988C9D25A86918C1C2409E3A8479E12135069CEC01B6DE44A9BD2806B903FD6B52815018EB93978486BC02F989FC960EFC488AB857C5C426EEBB11AFC1D8D7A5A9579D6040848D106A113EA130A2F8B92BCF65CAE8C19792AAC77D4936A72CE830ABC9A2599B80D7DC15D27EA9C7EFAE9514083A311EEAEBDF65A9EB23426533560159911EF3D528C099A105CB55582712C65374BC343F3769F349322656763A8DBD7BA66698E292151D2383DD9F91B1D3792C4B8D7393276208B8D381FFEFAB5AF7D0DF61CD0F138322953AA9F1523EA9C0D556D9DD5A19784389E7FFEF986FB425F347E20A5D680498412230616850FDB81FFA61A6FD93B45EF4AEB9575AADBACEE4846C04760B82C310ED36FE7006059DA64934DC2DDC19C9AC765358C0A2B8568E23CD1DAA16B9E05AC555697C4F96498186E1AFC0239A54F3CF1843183C1B490BF68F0A141D929A31620AC5AFF781DEE834C3B83FCD9E4625342CB22F7A89951EB8DDA3835773680CD9D8F3CF248C65CB56AD5FEFBEFEFBBC8529B562E813C36C05A1D2992C455575D45708A5AFB7892381B913193F9F18F7F4C0911E512B7D5F81AB02E83FFDEEFFDDE29A79CA2A9890DBDF8E28BC3604871D60C3E1D2B37EAD9CF2095E1F18ADA37DF7CF36FFEE66FB685C5433817D364B19A6D2DC924B9E33366C2E38F3F3E9A314555A5CB9642C32599B5B3EA9AD085122CD9443DB2325A75781BF7E036A995628B22455BEF619B24B0E65F537507DA9E62013645B626142F6424B22FAA30432160C180A71909474F1051C62420458485011BEE9B47A21E64C9063AA06360D2CBA6E4BDD5ED3AEE3541833F04CA49675A778DB3C57E537DF09690534E1D95BC67B054F5639A01F3597348568AD50497259CDB00402EA2BA2C56011B5697AB8921D378FBD3CFAA8383CA5B35EABA0667053AF90686349D7FED65F88F874D3783C930121727471459BE219D579A0B531CF7DAD1CA3E06D91BC890B760CFE4049A903A2B5DAA72B55632E104880743F7738D2630DE413F652564E35E16D1CC044407D2528F39E698FC5AEBF550DB761058CE01D683327021E8CDC55308060328035FB1E0B97D2C4107393B05576825069E40212083E58799CFF742A6A6722A3140268C181A006A51F8533245E36D801C9AB544D131AC32083773BDE0700D8A5E9401B3465062F3CD370F175483372DB8C6AF99EBC923BA00D94A6EA87155B58E2087107311BB40650675DF8F7EF4A3BFFDDBBFCDBE844653EB06134BB56456AD8E82D23509182D01B7139174D9AFDCC9C111563AA13378086BA8096810F932039A3860F107E9AC34F7AD6F7DEBDD77DF6DB55BC93DC5F6281E10A69B5547788D1096B563214758A990912C8A39F91C021D061060E691503ADD1F482D54B5CB5B105B17D580EB9752835AAD101997B767BDF00F935B2ACE70706ADA09BB89FCE1592353390CF8D8638F3DF3CC3357F7029C9C9A6C10D558ABAAB7DD76DB3DF0C003EF79CF7B2EB8E002CE20AE53069CAE47EB9460EA9900260142BE2D7B670566008E0C6D65F5B9527F789A5073641047A89A9971DEF296B7DC71C71D1487E071CBC548DFF040E5913C4EBA9DC972322ACC8AD9FDDD76DBED8B5FFCA2F13A3C15C844CAA7365CC08866059942A6C73A8D1BD11D91E657EF3B265F134DABB5AC9A9DDBDFC58065931C732803152E11024CCACA54A18D180B390E6F7EF39BBFFDED6F677F234D56D3FD400C9ADEE59F462BE40845ACBBFAEAAB5FFFFAD7DF7EFBED84D8E086613D180F11CC71CBA9F82F4A28818B4467E084AF9E33EE979C714ECE3BEFBC6C8F5656EE31D2D5A0CA0103D66065CD746DA74B306045549609128C4ADA4346D86BAFBD3EF8C10F4E57079572CDF7FAE9D30C3873D874D34DA3751D72C8212B57AEE44E92D22CAB44C2A2F64C32AC30B310905211A55A3034E4560E84D220E25ACCC408D58173A1E6F256A1CAE2F595C7D4F9FB0AB6469DDB14A39A47380BFE188E4059A6A44B6CFA8228E33B47A4531468C5235B917EBEF7CF98BE564F2A38BEFCE52F7FF8E187F11F53E6C97417B1CB8CCF1AAE92F55A0D0A0F4240FD9AD7BCE62B5FF90AF281A13A9816C84D02D31013C12E90CA439E61F365A8FC5D77DD950749FC0392E1DC9FFEF4A75D660624493D3F65266F7FFBDB3FF7B9CF5D79E595071E7820561305444510DE48341927BA758953AF3F6C63342982C6DBB3AED050B891557AF6D8638F1C8AFCFAA637BD2944A3C2DFD7D52020E43FBC21621D38A3A9D6C22FE843D5A730888B6EC58837D080C7BDE23F2242ADE95DD5A95908E634AC870F0181F311E0C90DBBEEBA6BB6836252D98B830F3EF8FCF3CF3FEAA8A3DEFFFEF7E368274F69DCD32BA2716699B0BAAAEF5AAA0C09AFDA8D2B9134642994E4A69B6ECA9DE4D1629ED961871D2259662659728DE3199C3E721131B35B514B2B0B679CBA167AA3A1633C4BFC8A249D7DCC21426072A72C0496C3853BC9E45DA853D0E3E8A38F0E3DD4C925C051543886AD274439F8C0992AC9D24E663891A4B275D1610913B4A369ABAB448F807F425F85A429FE41302AA53019932A35C8B7D9D768BADE2F9238B80B3BB41EAC7ECA5A1861161E3B45E3631542311B6655997A70C8242D761DE70D7BE02021F1E80AB55E4F7D7B15FC6BD400EAD412F3D4D232EAD1FF3A0809B2A8B94373BD5709E7BCE6A7D79DF673B5B699C80FDF8DF643B52FFEF5D843FA03644BE37A08A75D08E31E408729128995FB4F3BEDB465CB961D70C001D077806FF914D9AD622648039C9940B59C0B55968F05B29A9431AF611FD320C1E1B7D2CDA2F047FA26DE87641EC8D6A2F7E7B6D0B8C30E3B6C206448E6A6C9749BCDFEB12985E9C266EC53C4699C2B45FBB407C2B7287F911D0C26B3A7084F997F284ED423C420C4A94A8207755B6187D00B8C01AD9B43A21A128287F6837D9BEAB898BCD8D075D75DF7473FFA919A6E2DCDA8DEE61E011FEB7E507482842290A422214FD16F4A88850787FBE2108174BCF7BDEF8DAC6C1E3641DD8446CE2DAC2AC3BF9663B4930FE36025CE047203E782ED3EFDF4D383C916995F8201B3B49AEE6F693F5C03369BD29038502146A50474EBD932A8F2EC3E9168B987B4BDF1C2387CF2C7484EF3278A9E12EBB7BAB7D6316D8F9D026212A25A4C431D0B5F29FB422C55EB8931E848E19A592CBCD33A71836017A210A88B805D1DAA6BFC69E69F2FF34DED60D6A60A82B69E604D59989D76DAE90B5FF8825CCD847E89860D30783683E77591DB6EB8E1068CF644B0134D8DBE5E5F270FAE7E71896D4D93B19EB167A12DAC49522B2B8C178B826E3D370C742240C43433425210A6DB248C51DF04E448C5AFD662AA2F1A32608F1CDE780B08A00BC205CDCD37B670BEB4F35BF4323E7075EFEE906316F119293B8F6FBEF9E6D1D9611E60AA89B95A4D89C518F5420D38C94C915E7C3D3DF4C31DD24B3FEB11F5C26A3F6913D93CD3D6E00994D52AAAC153138D7BE9070F9532BE1800C19DEB858420FD1610370018DCAD4B9E163BA8591A4933FF22B55403E9A8545E25A8523182E9A16A7B364C80AB0120D0B8512F61C14F64696FB4D146193CA277AD7ECEBAC6BDEBD62CE00FD46E640E18CCA2F75761DCEA54793CD36056445AA987E1865862F75DB85B03391B588D06E2369810B04353289A81BA60F48D9C80AC3008969E6F4A9F562295EBEAABAF3EFEF8E339719212CEA01390678C7B4D7576A12D0C77AF660CACBB148E376FAA4D145FEB4528E0DAD9CC38642DB7F3BDDE671E3FF1C4132FBCF04234696488BA9B9A7FA52484D50C8A1ED80702F99EB28E6830F90BDC702A05BB34A80E84D19AAC61241A63C2A830D552AAB01682ADC4D75D1EF752396091EAAF5535F213F0D462818500F9838000B96CEB0CC91ABA524ED80CE157BA302544350F986315C5FA965B6E41C6A57A3FE24BEBB6812DB6D8E291471EA9195C56F2119F6BD7815AAF517516DE03176CBD634FC5FF56AC08E09BE6EBD6BD1E603EC67FCC1E4C2950A2AC66486BFE329AEE278258E5F4FABCE1D0E35E48B9955871365A414134307AB4FA56ACCE3B8B01D7F2EC3AB6AC38B6BAD70AAC62A59D6FC01C4EEB9ADE0761D423012B031AE806330953D08581A872102C210FBD75097D601998A66BB92172CDAFFDDAAF5D7BEDB5C0B1C62084013FFAE8A3440F8D7AE564D906E21E266858383A22C5C64C739C26916A78C268E950ED2A4CF159E915B647928615EC0651BE730B0BAB2E0A8750DE8C19199FE22C56C0A1681F223FA1A44009B29EDB36DC70C3806BD1F73A797DED1432B5961B7A2D5A54A0A7126319C5F95E8DD2A43A0A1851AEABD6516A45781CF5FA5C039BB3AD6F30774BFD07594FD357261C8DF6B8E38E8BFCF7D4534FF125B1B58BDE4F3F54E550BF77DF65849CFF7CB9747230229D0544E1078ADB55E21E95340FBBA000D236E1C1DC503B038642054AC71E7BEC25975CF2FEF7BFFFD0430F7DCD6B5EF3C0030FC8865B31F7E5D52F7AD18B2846A6D36789B83F643EC5B8ECF5134F3C813D1FD305819A41BF1C99C8BE943FA35E1BBA3E15752EBAE822E327F01A2848298EF3464E65C6CC410E5EE193C67B820A4E8EAC1666A5CF5A0CC7363B2861266F58BA9CFCD74CA056A759F494554729E82A1EF20D9DB22C6984D304EDB096CF1CE82B6B2DEC13230DD18348B470B8C5C9279F7CE9A5979A4C08EE81F66452E0B040A797CE60A59478027CFCCAB5633172D86892BF2BFFABFDEF5AE78573BD8694D0D02F33EAF1FFC8C1024126CA9816999203E137C160C068386294AA5B29CA38DFABE513D33EEE318FF05D3C3539E6679C710686E50CB2E79E7BDE74D34D4AF9CC3F380C11A8C5E78DBAA81D442876540BCFA178CCF5DEF070AEFCBBCF3EFBE4C4D10E04AD008B7175837266D5A7E74B316D8E618DE1CD38AF7DED6B33E640111FF56A364E8657687AE457D246D8FD67830058EAF465E89DA951AF7AD5ABEEBFFFFEF1A43312E95F4B54C2FABDDFFBBD33CF3C3353E1F8055861B4ECB10E6AEB4B308E65C618A1665EE318A3272EC092BD0D4EA35412E0CEF5F2B3B39475CD8C1E724E322F3DFBECB38334C822D46AE048ACEE3D682BF35E74FCD18CFA70ECC421871CF28217BC206FC9D2F0C48B5573A5BAF2A231145C62B9965B1979ED98FD0B936BAFBDF65AB56A1561BA8E2FAC9EF7BCE74597FDD6B7BE8594079950B36945FC1498F44D222365907F55214C5CEE2CFE676C0BE273E0F0E4934F2EADB3D64A4FEF7BDFFB38D8AD07FA711ED6EA1D9F96B0977074B1EEACE9DD4C2B820D2E746E5230716821A40328EC9C442F8F7A59C1CC21B2111962ADC41FD530997129C166DE4B6DFFE2C91F846DB7AEB499D23A2AAD47C06D1322F58BD7AB4DB8C5565B6DF5E0830F4AC8607B541538F2C8230361D192DE000461C0BA880523091B2A8CB4570B0369C46A0B2B602C0A640B116B3984782D8142B52D582B2ADA6FFEE66FDE7CF3CDC8F750586D249879E67AF3CDEA891BD82DABA9CF000B4C14642B91B687E1176AABB9AB4D24337BFEA00BAAC009847C38E2882322A2D5FA42BAE4B5084230DD626D2AB5180E42A4814874E1AC1E905A166A50BB86A0B07CA3B9DB4A61D3677FADD2B31905A90A016A11D41B31A26850EAEEC20B2FA44127B5E70E3BECB0E5CB97C3E3CDAF81B2D5683EF7C2FAB21C8DB57A333D1D2EA605B7DEA6BA461E108A38EA1523B415CF955ACDA4B728D380336F7CE31B3FFDE94F5706DC3A07F15CCF95BEF56A3B3282BF0D8A5A223CB58645E04E0F289FE97D2494B0167DDC9D638F835E37DC7043D08893902FAFB9E69A7DF7DD17FD92DC03A68BE1DA44B4DC19E8531B1268523E66D67B0731B1AC730959C1485A4376572FACA01B2137B29B9A22C50E518E4188F16291997E26D49E32F1044672443164A12E5476C88477D96597CF7FFEF3E79C73CEE9A79FFEE217BF98ECAC59F36F258BBA953A7FC674D8E5039E84C2C46951A8878E44B379FAE9A79FE93DE3B425563EC1BEDBC48635662139E711B956AC58A15316DBE3D226E88C69896FE4EB0C4E95BB45EF87A0908C8121A49E4CF3F3E0E5DAA6969880C4BAE67AD59A3E6DAA1A9F56D6B95E57DC1045F4955AC12EDBBD6CD9B28835A34946BBB41294A38C3010C66E61331F227DC016888B4179B8336BB8594D1B1D84F0D4AB95681415CABC2B47FB9BDFFC2695E650BC6A9A56087D66550BA48C26D582107A6CDB3757FACC1B0B034CB06A56DAB28423C9FCDDEABA93B4CDC222D24C336D9DB87904CCD78C09626BDAE5A2D87BD60251E606DE3EDF7BA507D4EBADB75E8E216787903ABB05C0F36893156245A1BAC0815651279E78E2C73EF6B14C437E3CBFB05B97344443974965EC7E95AD5B9774335AE867944842106AB1082433FDC4AD87F5E00277E15614201627CC9E69E7E6A38E3A2A52973B9EF990516988FEB8E7BEFBB9EAE8B51F2B1E90830F3EF8E28B2F86A4DB49105AC43199E6AF279C70C2CA952B8DE8C62A0900B1D6D49290B23A8412BE5713E5028C6A2CF89BC12B42C745B94AC3612883E9597A7A9A014B4B2126B03F03D0E04D685F3F6D183F0BA76B901B51911AAF5AB1A78F6607378559660B2DF9A47C8160023874B1545572DAB24DE6861456CBE7B43754DDC879FEA4341B9FBEAAD7A7061D04E7A29E7EE4231F79EAA9A7C8BB6F3D9E7654CA9B55D7C860583EBCFEF5AFCFB9253C4A4390624DD87968DF030F3C902F11786BCD2691C972306D8ADF8F4BA6530D7A849321D2B649D1282441B7951B065E10F1C638D881DF11BB654640B9C99C738C9F78E289516F4577E38D37DE7DF7DDB7DF7EFB638F3DD6BAB766094374849B88384C06696CB7DD76FBD4A73E350BAFAC0A0EFACDF7EE2898C5708BA073B7898F1366B9C4EEBBBA17BCE00514BDD2A3AFD4DF7A2ED6A283E4ED79367B47A11218704D27AB09D9ADB0FCD6959B51E9C8B6E1861B46060A050CF541DBAE282ADF6286039EDABAC565519FC868B188452EDE6E7793D683B0F2AEC8CD21F4C4586131CE466739F844CD9765238018A546A18FD6FA681382D87AF9AD254CEBA3A9B48D6A829EBECC7C354C12DE8955DCC9A8C4C048B8D934273515E55143B839EC50614BC692748B90C153900E4E01D6A32BAEB8E21DEF78878AAC6B01A36A626175492212656E1442D860830D36DF7CF3071F7C304C17B3B64B8E1E76E79D779A9026A18040D5865AADD4A020645ACE54016B95476B190D2A3D2025A346A34D562B63EBF599718D2339A19502848AF91E042D70D41870B41046ECC6D6BD1757DDCD1AB194A3075A66048D82E01EC262CDC421961BE301150E705E54D65399EB749BA6E97BE4C74A214C9E6A16BA1E5A4F3AF8E908B334E04B2FBD343288BAFC124131D55B5E438A903A3375CC59885A7AD14071CCE2E690B07EA42AEBE08804244D9E71C619CB972F27227CAE549669A52E0C72C7741FC01A5C636D749000B9D2DC65F35B8C5A42E55A42E0009F80037C020508BF887762909FE598340A467AD17A5A54A5B0AD87E66295AAD9CC58662C5243D11CC49D00F0D0430F8DD4FCDDEF7E97C1035BCC3BAB4B77BF2A09B6EED9E2CA7200485E17A9F6FAEBAFE724233B1BA1304809B0A081F28D356BF019DBDE0A419ED4C67149CAAC092AB5BC22617AD8E5982D7895F1F5FEAEB5B02FC55AA59DF0ACAD1C9CABB6A497C1133BDDDDB9BAEB243A60E0EADE6E96CD457FB23F63A80F21D0D05CC84410239448D3F460D5528481D63E2016D317BCD330A58C9F6F8894CC1525F23BDFF90EB59CD0740F38E080ECFB9A5E9B095D9073CDF9B5DDDE6852E167871D76887A1D5152392912C9565B6DF5C52F7EB1CDB8A6A7BA442401F62D280FA41984C44160472F17CBF79060532A0892C271EEB046066434837EE1A07916CB8D0DECF2216CE6FBDFFF3E929C8C0A2D255FE67192DCE67A7F406D6F88D135A3AF75FB3067B3C666D72E7036D493F622B1E92D86ABA14C3367DA9FBCF5AD6F0DFC23F2C21E5464ED6341F202C27A96B0DE7AEB2191E7152039554241570E2C317AF3939E898140DE85A7D2D228188AA0E441F581D3DA0D5573354381EF230B867CD9E4A6F6F1833C7200CF39E79CCB2EBB8C98533295352DD4E69B0A46D85C41CECA83B589EA4644B2074472968A9CEC2CC6C59A5907CDD74BCD45ECC84C064CF5000AA3E04A5CF43623DD252E982E5FF5AA57FDE11FFE21F2949A5CD577D7F42AAC6CCFA0F89C6700CF41AD8564551D6DB986BF66C2D57D0553A1CF125221BFE62F457CE62675F5D8E00B2FBC300287CDC0CF3DF7DC2BAFBC322C99F42104CF25F2536D1A5FBD175E586EDB8495EA2458741CE89AF9FB79756DE53B4D610761A56E0AB84ED873F035F0AFC69901DE577B267350A9D2A152B700DCC2BEA70BAAA69F0F3229D18F3588298151DD130B5EEBF150FCF44CE989ABB032D76BFEB5D28778DCB3FE67D16B880EF7C8D4E77B2FDEB6985161E0056C4B86F251369CA6435923E9DD28AF88CC3FE96D621964F5A47637F3E19E41682531A24609418FF047F8D241E08261204BDB6316FD32DA76A4ED002458478BDFC19DDA4E5B2FE89173914986085A9463DC6BB3183BFA4C6F4D460E311F721BE49B620E6DC6252ABA234B30606D3388BF5015359E6A0314EDC1190BBF8F7BFFEC3A01D8A71E506CE9D985E38F3F5EC4965992B84C8A26CD57D859FDC1AD5B3B54B2070C78756F8CBDE79E7BAE5AB58A6A5079302350AA828201D820A9E9866E076C9138954A6115941C818CFCEB7FFDAFBFF0852F102D5F59D7C04E9BF7666723FC59F632CF66C068DB77DF7D37A432D3C0D35FFD140C658146DDE1CC2D9321A29E8076DE152933AAD41E7BECD1BAED81DC5782C55882C603439910045B57CC08287309D5DA94F964F996D4F574B0D7A1F65FFEF2979F7CF2C96C8AF1D2AD9494804F61B65CC25AD3A64CD0A3D26782DBF2C6B7BCE52D6188E1236CB4215D4B158C5462DD74D34D8D2299BE873A26488558D8F3F93DEF794F4E359417D76F544C1A5BB685ED9D5B2779DA07905C087BC3C2E0F9E1030631D40B11281843421BB88E8541E6544B1B0E0E39FB8DCFA6754E83E90C4E50D33696B043C22DC6BDF5A6112EADDB845B09EB9F4550B4322139EEBDF7DE9FF8C42754A0A7AD883212D7D27A00D720447954AA38E52D992DC522F43DD7F1E5C110D32053FED2A8801C6E856E45A856BC77DA246A9E2EFCC9E2D8E4BD8C7AB4E134D92576345C81107160680DD86AC76BB3D5BB0A6A3A451AB03AF0294E07F40D34E059E3D7CC7DABA7D5808BB6307AA5F5689A41494E1438940370DB336C09747A6004BD090BA80CD8C90C04B281A76A1A568130A5C8E140614BF98B62446A295A148A97B92B95EC6A6CC08681C80857C69C58BD9EF29B5971918B1A1B96B0401839B5BAF763B00C9CCD5CB55BEADCCDCDD75E7BEDBBDEF52ED3858DD66492A804B249AC7AA34987DA1D77DC31DC883A1BEBACB30E722D0870D34D37EDB5D75EA65953701BCE016446BD9987238F7A0462EB6DD7A980587D55AD842B62501D28CA8A11883E6B7A730BB2C8F24D143E24721A535E7CF1C5617E048E653E5170C96847E5C530096CF1D4A299E8514229CC5361CC79D71D77DCF1831FFC2083238BA33167094A63005C1C5B7BEDB573A815E950B2390E78B82C8005DD209D097BC668D201B31E280E5DF84B786AA4495BA96AE143785225C32725E3401546126A25E97F20CE82CFDA2AC653C53E2B43E15C30AB1CD53C9BC38B4ED5BAA6F153F7539B7DE5A65FFDD55FFDFEF7BFFFE8A38FCEC27EBC86DA4F548207C5DBF06AB0AF0A7D6AF76EEA33BDD718A9EBBC82D2CD925D444B54193B38666F3EF0810FE43881A0D93F820E089EB4DA0E678F8DFFCC673EF3B6B7BD0D251B59CFBAE4203727D9AAFAADA79ACCA21AC6D0B71217A0DF57DA477EE7AC90CE1A0D9B6783F764F70ED28EBDDF1631557955CD82E1D9DD8FC685042DB72299926636A0CE0C15BC79C31BDE70DB6DB7D5EE0B1C8CFCB5C6566DC8DA7AA7EBF1C2DE29E23A30575A6A33989CB907683636205BD34B998E7B3AC4DCC20644D3049ABE31AEFAA7E10FFFEFF511318A985AC150196738571A8B99DA5F2B1DEA7BE338406E2A690E3043B382334AF716B7A9E690814351802C2D43E081469792B6BEF6B5AFBDE79E7B5A316F9A03AA956BDC336E113DB1E54277C6BD0C85A53F086F6C3DAA796917C0AC79CE3A326023361E8415533691EC6B9D1C126C10C52C99E96806D6C92661C6B93823A3D20EAB361F83BC980458738760FF7AA3074158A3926A8FBB4771872836CCD72ACD9A00492944D8AD31E708E5D8E414EF6C98C6349C0981D9D6A91D4DA2A06D786AE5324828B1DF2452E35B6C5D13AD0DBC733F0134440918F734289194EF33ED68DBADC7046819E5BAEEBAEB0E3CF040400A8483F3E3529C5F014B7110991545882D58D38B078BABCC102BA32D7C5A370E0F421A8D20B10AF2A2419AF5DFD5BD7E78FEEEB2CB2E914EA4AEC43386F4ADEE9D6F46D07A5B57AE29CD5F2D1B4BF9B459A7C5CDCB872C1E3988AE73419DC0578A89643A9014DC18022238361648ABC9C15CF6A5113406F786BE67BF110C0732576DAE30288FEC62D93080BBF9E69BE71E8AFE8C7ADDCD1A7A377D618A6C5D116C45FD9D2B457C96489E1635418E41595AE36BD62CAC2E34F0F98D1726E1B5CEF6140536D96413EC19765E9B2FF551F5314320705470C06A38BEC5A2D1DBF0B4311975E2AA8ECB634CC6F714B585694EADD85769DDD34A78B39B5E0DD135726D51E5898D1EC4670E34E069EBC2B41EBCE81574DA669B6DEEBFFF7EFC0B6A87A312B9A623BC75634C8E62D6BBEDB6DBDE7EFBEDF0EC514FD924D81ED72F52A9295E41CB7C78E73BDFF9BEF7BDAF5A3E2A09182D99983EFD7D755021100444518F8E3FFE782ADFE9C33304AC025C5F1A28879B063998926ACA49BA4B5B77DC2E7104FE3E5FBA9C40387FDFF296B74468C8CED2A260DCABBAA26D0FA2E589FB7590DC96B547FEAEC6B6FC3DE8A0833EFCE10F67FBB223483FD09F9C9D2C64C58A15C71D771C4E65BA08403FC137BEB78DF433A549A276912A379B644C91004813C1BA26D75ADAD31652267AC85A2AC1B4E90B45CD6CFB5D0B71547786C479547232DD8251A914A6546152161A171A141882A35AEAB46661352B11B8468FCEF502D4C2C767B1B35AA2D25C73204FF40C8A93F3B7F6DC34A1680BED730ABE4A21834C907ABF0C8B9401664BD841CD12541637EB29871A88417B7F0A6B3652928D67CE9A82B6955814FB71B9839A175D74D169A79D563B37B4DE5F81F61AAD1B9F05BA7B30EEC51FC693C26C005A93695571402FFEC2A858926C75BE5F4699D71455840C0DE3A856BAFAF3EF4B5FFA52887E4809E60ED59725A8302A1D5E10C6C47E6E5EBF8EBA2552625A8F6A817058D4DAEA8002AD324BC5AEF1C2BCE42A7D2B13E041D968A38DA2ACE7116D416BF5A68D8A0B9552B023348922EDA17561132CD43500FBD115A4B11A76CBE3F40FC0358BC1762043C068B353AF7BDDEBBEF295AFA807DBA7683CD5C87369065C3BD28C7AB880E19712BE5A26693AA26A50EBD160AE361165B0151B9D5179704D11692583A0F5CA5FAD44C08E4BAE17E403B2525F1774CDAFCAC455B0D01E3BEA09F11A8D66313CACDFD8B190F1ED2C220AE15FD4F28F45216F09BA6EB6D966D1CF88840FD0C2B1AEB8E28AD1A43F042DCE4CD83044912451929D30505B600BDD1124ACF4C1E4DD5674E8D64537B802A6B2D5BDF6E1AC384713A848286297B3E9CB962D43E987E7B16BF6416AC53A5ABD9B689903733A06E736B14B8B395021DCE455FDD57AE13716C43564CF53AFC910564708CB5C2FD42500DBC47028AF52D8C550610F66A4935958E14BA7C53B89582D11EF11B6F19115B594081DAD76CC6C5D92AE32EB78D27350D357D5B02DFD3D70F140DBC7BDA512B48893DE7A80EA5CEF3F4B909DE0AA1D655A8FC2B175348F0B13A1A4E1619A4F71E270CA987D5A2D6460DA08421FDA8A42A396262A98A4BCE83E01C1E0C17BDEF39E33CF3C1317779674DE79E75D70C105999CD5A489E037E0D67233D52ECFDBDDD49F9F5C54A79B46F49C6D1AA4E8A0C5746C8F520C47F9F5777EE7773EF2918FE44BC08AA9190943FBB0357D405303715B69FFB9B4A371BA0F3192E9A86437B562E39A358EF80487335305D2AF25AA75D7320356D26955202AD91A18591D27E83A515FF6DC73CFEBAEBB0E87F7B8347F5CDD7B3C1C71C411975E7A69EBBA8E3D0A1118C904D0F54B04167100701D8350C2A53219B030BF6EB7DD765FFBDAD7F869DAC38742B0F1C61B5BC24631A84645CD95C66DB3B606BBC55C2977E580D371F24AAF9C76CD7D6DA1A15B22C57A0DD38062E2F752DF52181A95781F8465D301B51299B34F299F6AC8A10E408605E00AAC2A13E471B5A938B5AA2B4F5FD2B8B6B01D78BD415B3AACCE40598C9374A460A38118E5FEA90F2A0320AEB3D6EE96317018E72675B6ABD7069C07E1CDF03124C2F9B46ECE992FCD2D66AD57BF953BF8CA57BE326866C416EB0A6DA56D1F49FC86F9E4E060E80EB5C17D6065D63553D52A5A8F0ECBC83BEEB8E3E73FFF79FDDF035C9A2B6514C70B3BA00C02B578450E23E6ABAAEF46FAB9F6DA6BC7A5E464A8475E9D7922555823E1924B2E39E594538CFE6D0BB92323AC59AC1E1C1A85DFD8FD89E86E730EA71D1F8313EA2E0F6C1B41278CB47CCE5686686CB0C106915DA0159501CFF5FEB9C60FA103D8D24DD31762A8825420B6CB2EBBFCBB7FF7EFB6DF7EFB2F7CE10B73938C7CD362F165E880AF5B8303ABDA83B56F410357AC5871F5D55793F009286A55C18C70F0C1075F75D555EBACB34E54A06755114687CA63526FDD1868382BFAC7A2D84CBC31E28361E88066F5A4196A2677DC71C785C48734502E07600114CB7643B660572CEFB5AF7DEDCE3BEF1CA62E8699C30AACAFBFFEFABDF7DEDB6C221CEF39FFC4D9939109178130CDF7C61DD94B4BB38225A4F0B3220B72E9E094C12F51512BF3BFF1C61BC3E9E53773A578C5A844A0AC59B23677EBF1E7C84D73A5D46565C0B21F2826C2667D177DAB34F7518D12710CEB1CF51F007815F3AB6C642807AF03AD758454935ACDB6C49E6942917ABC7EA9B57AB76302CE07362E0F7CEBBA1D635276634076E50D4B3B74091F3568486F0B7EEBB5D75E9B029CA35EBB9503A9C3B5C6C26866AF55DDDB4416CE6855EB02741C04857D04174C3894149012D104867280AD5480A2862B9549307262AF425C46D9026E7BEDB5D7ADB7DE4A4489F60C0D274B987C3307ACFD0073BE37B3D23CE039ADBEBAAA31803FF56FEB9110F669805A11DE416F761B9B0A617B5A38C2A8D4F61AF5207CA228707FB489881C05E0ECB3CF36EDCDD2CD8B1E55CA4D9C7BEEB9279F7C32D56133C94C29D279D86A7E3AFCF0C3E9786FED7A832AEA4CE80284D080F4600282A6087498ACF455AF7AD537BEF10DBB3C0DD4CAD60DD1957057C7792B26224F0DD51F596C804C1C3BEE5525066FCEAA8960875A2273D788D1CA6EAB463B5E582D0075A8CE0455A196F06C537EA569AC1B387A84552BB1149C7D7BB6E2DCD41A6F757AD37E5096C6BD3BB8D62C2C5BA01C31715456DE70C30D9F7CF2494F31DCC18E039816C84AD5C5DE2676CAFC94254BED0DE952A6C77D0E24B10E6AED032661F3CFF6A5F661A227B8637569436D8055EB76003DCC08C584D8E150B111262109ABA7EAC9514B126CCE9232DDAC19FB557B2E1761F784FCF9A5A886133EA00F9433D588E479DD85175E9853AA1317150496F0CE77BEF3E69B6F260D2E07EF9C73CEA919E835A0BC95E0A0712F0793A1028D638F3DF6ACB3CE0AFF366FAA36C7AD3E7CCED820A1DB841FC20DDAC41D5EBD9EAD34E5D6CF14C13F38F4C8238F50CBDE80615BF5B5EEDE369202616BAE573FCF2B726EFF7C72E59E10E29C61F3FAD93509040057C4DE74D34DA3F4E39E090AE56FE6B0DE7AEB3DF0C003245CA231DB103AE0B26C562B3196AD5779AC0256EB2130F8D22AEE514F874146934CB3E05285F680E02E5BB6ECA1871E22F406F9409338E74A550C234A75A0AC2E15893515C2FF2AEF41CFCE2AAC1B60B5967A76DA545E7235A28A0C447BE259A4F14E88485EC4DC90353980D5DD1B1DEB4B5FFA92AF18F5182ED06696ECC8F2B7D9669B7BEFBD17312573030E75FE8322826D61DF78AC265A86710AB0597611CDF79936A0FED0873E945379D2492745FAF9D3C915340E1DF08861C354179F9F34268274124FB4FFFEFBAF5AB54A02B5F9E69BFFFB7FFFEF0319E24EC64BE66D5BFFD95C23E05F8F644E7D36945D1E4D129A031CEAC5668BA94A6BF05135A4DB610259A4F5D8E60AA86ADA158C83934E4FDCEA09AA279113072F7CDDEB5E77CF3DF7988129E1CA5923BA5BEFBB321306B059C9901556D3DF80578458E7A599EA76DB6D177568AE374870AA15E516F50D99FF03A2663BE80B123C09218AD6C40870A8AC22F7AB29CD9762CEDEC39758E98CD5CD45D1157604C7ADEDB04CF420D01A0736E1ABB987363610F0EC7B36289B628F42983D56DE37BDE94DDFFAD6B768909C1719E062DE07422DA483B8D767050878E745175D74EAA9A7524C24CF6CBDF5D6C1661C5DE6E69AC5AB360D2924F4D196E373BDDECA786138195B62C41A2A5AC6DC7EFBEDEFBCF34EBBE8FC3D2FE317F449ACE90DE34E3BEDB4152B5660BB867C73B4608DA8ECF6A269A5A8A99D49AC1AAADD068A1640A313D70022F36B0D67D7F397673FFEF18FE76C442F81B8E4414C8822A89E7C7C6C9C1F80A6588334033162929C5EAC5BC1D4EF7DEF7BE35EA4508CCC53B84040B510B837BFF9CDEBAFBFFE09279C106AC85642C42DA49CF31C9A78E289271AD18D9CA123AACAC861DB5B6DB5D597BFFC65180F376063A0523F0A0AC004E032E34B2EB9E498638E0113C8771C68E1198DD2A7621A1B8760AB8935C36EB6D96699ED273FF9C9D5338A7E073E04B77FE0031FC8DA8315E64172D88218D12FF33700C9C9CF808F3EFA6846C65566F1A3AA070B6AEB999B9749F828CE0EC2CEF3467420F62863BA34230AF1D1A06BB27CDE5503673242906DD75D77BDF6DA6BB1C4D6904967858F195B94258209995EF42801B44D36D924AB46F2B3307D7EC26A8592379EC4675455406FF1EADE7E0E6D6CBCB04F9F024D96B37CF9F220582696313D71034729C833EE4D55B1F41004CB1A2D82B1BAB768E51BEB1EB4D9BA178C937BDEFAD6B7DE76DB6D8C99E3966960C7C62B67D83FFE7873F0DEFEF6B7DF7FFFFD38E6E9D7A9BCD816BA2AD4A59442544CE5555E1AF631CE074B8396D0AE6AFBF1301A0685229BF9676BAAEF9C6C4398C4B8570A134F10262A77AC7F67410FB7F1C0DF19AAF2C31FFEB06AF6F3A5B3537D7C54922CEA8A06D682BC2580BAF4D24BA33211FD8A423C3000B42217D6DEA908D673BD31C39A5E3B48EF75F697886026000A71EE6AD89A0ED3EAE48A1AF3EA57BF3AE73734046F82796E03A5DF809EBA765FC134461E0F54346C29E4DB8C7B3CAD3C18B86B8D618528F8AB7B1952A406AAEAB4A9DE6198DAA982DD26B221F2CE73D58011C470A4B7DE7F319301C9028ED34F3FFDDC73CF359A26BCE78E3BEEA899A0EC1975F500B4C535C11B1876EB8D8672736485CF7FFEF36D61E02827198238E8C707E178FEF39F9FBD89BC4F1639AC5D539513AEDD36F2EA7CD879E79DFFE00FFEA0D23B2E43C461E18684586F3DFB152C09B1D093C469E72DD3352FAB268A4DDB2E9876F7ABB2B0AA5536DAD8727FC50D233D620448150B84ECAAF3BDE31DEFC84FB7DC728BDC1ACBCF6EBBEDF6B18F7DCCBA57EE1A5844505875995B756F1A55CE3AEBAC73CE390770855267F921F4149EE40819244FC1A05AB79D16E2988BB10C6127A05215F235C60667B8F1C61BEFB7DF7E7929270559ADA6AC6CBBEDB677DF7D775BD840701AC81B6DB45144E140268F1C76D861975F7E398759C96CD43B6DAC9EB4DF09F3A0C005D61D384D608E8C38AB98008A175894A1B0EE62BE23F00D3C77FE5CB5D94EB53913F51AE4C1EA605037BEA7512FBA691B8F4C9B240B05596DF2863868774146E4880508790A637EA61A80C0518CCB9DD55183FDE208E7B61CFF28CDFBECB3CFC5175F9C2F71FD62FC1C9702556C1CE98879B0BA2708EF7FA677B1D4855F7DFF06618C4BEEEF20A2C74EA0EC5A9683DFA1AACB15AB81F601071CF0D5AF7E35F2BD5A0DC4DCF241785B6A060A44B8152BEE2C06391D9921C500BBA80F68E0B1C12E351A7416016FDD325A0DA5914D23B91A93FFB297BD2C5811385884A47AA0B43F1B784BE89F4DDC65D59B6EBA6940A4664848208C8F4A03107F917CD5AA55471C71847D2C024C84038DE12656B995E349B66DF03083043864D2B7853101D562DF26212623249A57BCE2150F3FFCB0DE8B2C60CB2DB7BCF7DE7B5FF7BAD7DD75D75D2E83869DE35E7ED29013822F30106143E0908CA6523BA41A762EABDCFAEF7FE906D0A463C58C6C12C220F1CF04B385BEA08864B156A8605DB939E0908E1028885066CE686E3EF5D45357AE5C498935A27FF17C67F2EABEE81CF980F2C42B5EFAD297062666E21A198F7B0F32C783B6D2E3286EB7DD76F7DD771FFA3A04489D0C6DCF8A079676726BA4172849DAD6C4B06BAEB9E6E8A38F46B3093B013BAB34A0E37C3AC4293B68C11048125992E8F7E4293D33691A38F05DB5928D66F7CDE8AF9912EA8BF686FCF4A637BDE92B5FF94A2B6622A26A2378B259C6646168CA16E7AC4E1F786CD430DDDAAF49D3D099679E19593B40F8F6B7BF0D30B3D1C71E7B6C7EE211B27174F6E48D1B6EB8E177BEF31D289AB18156B727888FF66A3947D12CC9FBCA9CC3531F7BECB11CB7BC0B051A4516489A0F46B46DFE25B6C8AC419C9716F7E1D5EC3837D488686D0FEBAEBB6E38D3A21D2D5B774372F6E53A6839113D5FF9CA5766C259ACF3E7332F35F8B37533FE9ADE9D62871D76B8F3CE3B75A34064293E15C21AF2940743FBB2EF3AF0DAC4E2829D4CF79E4EF4CD37DFFC91471EC9C8E14C9955345760A586013510FEB3040E54105C3910310C5181AA9E758E492D568C24BDFBEEBB470C621CB428283EF58234F00E92DC585D359BE12EAD0642BE77A35B11B3E64BFB5BB70CE356ADAECCE135141C474634C83CFEDEF7BE37C4D6D417EC13C8B54B44D7FAAEFAE540DACE0EA2E41912659BB84110569B32682360596E0C3C39E8A083AEBCF24ACC5D082B1049762D7FA96AD716061ECFF762B77402C548666A4CDEB2C71E7B1001A701CC7C395B8BB24D1E7614897149280521DB44A6C9B3210E11B20F3CF040184A208F5FC008798735F0502D48FBF1DF86005478E126A9D5045B8FCE47D6A67A03289BFD6606EC0D72681DB3427F3CA97A7FDE79E745A257B15E22B8E9B95ED924D4F16C4C6662C79E56FCE4B55C1960CAD97EF2C92789C538E69863CE3EFBECCC9C8E8A48CAA349B7BEE8C1466F0190FCABC10D9D98FA73FA05F1791B2A923BD9F5B952C13C07DB8463E34A5A7172E0B2AA99E666BFA9F379E621BE6139E4E1C19CF2544620A03770B8EEBAEB424A4C716104E357514D0875998E64114FF2A250764CEB9580825E1017C884711CC6A011885EB93B7046A4C0DB3728040FD1C9418A5C88B8E04F946247639EAE158AF78E93C359C54C8AFE512D57903C6D5084441908BD56694D1A1DF7F1C71F1F97F6155AC523B884BF7EED6B5F833D938733C0BAFA590B679D73D02983C332D9653AF02C5FBEFCFCF3CFC7128B23831D271207E919898D561CA0C77AEBADF7F4D34FCFD245E67A25AFB54A9344895A95D65948C5BA5A86A9063667045A9C197288F70B438206EA8B2EBA28FC2C2C19C66C715963097593A37FE4A90B2EB820AAC9806872129989F2EB12BA57E57FC67EC2B3897F26091B3282E10AAB00D62C7C8D167852735522E145065BA0B1E55FCC2AE38597E85D3FCFF5AEB484611B1C372E2940161AB2D90E5A5D4D1F523903FF076F6CBDF222CC0FA655330EB85359B9D2995A53DDFC576D003EAB6DD6002BC3919C49F63D6312481F998F3E2E4C3B400BC21F7CF0C1358AB3A6081AC08CF41F9A1F6137C7E4B4D34E6347F097E7575A48B1CB7AEEE5F19AFA5A496455513EFDF4D38F3FFE78FB5ED4943F834C57F72AF71C4600321D45A1ABFEA4934E0A0D99C980C1808CA2733BD33DFCF0C33FFAD18F8676A06E463FFEC637BEC1E1814990500B755874D8C0F7A9A79E02FAC69211FFF59C18EDDC54490A9158FD1B7D3D53C2A3CEAF354E15EB62B6078F20078FDE5B34E7C9E3365E6CA55D441E79E10B5F881BAF627F9B781CB3D378F5E9B28761645CCA4299A2476661A879E823B6710095FD0BAEC0686B6C39D6120F982E070F790DE6C25EA71382B7E7D56DD291269FB31708280840047DE4A908A19FFCE427B38A1AD13D2AA9BABC3A808D92FA99CF7C86AA67D8BE3866DC4C313F46303802DDB7E2255E588BB3F352F602226E784B2B1E77B2D56B1211BE5B53E6C410FD94D527322E5DA478295A7BEE8F361C218C784BE94566581B1C79A2DAC2B636F583DEDCD1A429C5B8E78F5928715010067305F6CCD5BDA906A14CBCCEE40A9C3EADA7363AF3F95E64B896689062D62035037FDAECB2E4A8776698642FC2809730ED0279849BB9DEE5B306458F7AA511A8D8AC30111D871C874D36D9846879645369289CDE8EF4355167D4ABC158CEC2025EADD49F19F59A56561A31D1133D1269BE16C371B1A8683853F278087494A1DA328422F61E2EF5994174712BEEB9FA0D4B18F5424EAA50ADF7C3AEA273609EB7E07A68A59A713DB373A516903F993101235FABF4BDB780C67C6FB5D44AA4E480012367B30BAD971B6BBDDA86FCD25C09768D332E35E014F8764DE8445C52F18AF3485228670A290DAF197E621A5511B587D5DA20CD087C6161BC9D5029F82BDC47818085788A5B89D5F09E818CFBE10F7FF880030E5026B3B50966AD01778BEA2C0F5DC07DB9780736C69ADB6EA727AB25EB6D4260CFDA22ADB4525E60FA5A33A9BCFAA31FFD68A38D360A03BBECB2CB22CFB6C562E4FE9ED7B475743CA9D696F5433E4881A899DA302A9977E61C89293707D6071E78E0B5D75E0BCD7DDFFBDEF79EF7BC275C2A8C50DB11E73060F9B55FFBB58F7CE4239CD82834B9F3C61B6F7CE49147B82D48136619B964AE14798151D5767250CCF0EC4800D8B2CC8094A3DB5E29DF6CBBEDB65FFCE21769DA1AF28D850ACA3B703521CD211EC2DAF3F60C953D2548072A8635C62049B6DBAE32BCA2B296011B632B6B4000357150CEC093D5BD0B4275166683287C58E3E7AD8EAB26C769647CABF68C7B22BF6DA0B4BDD728682371E67B2BF869069C096CBAE9A6DFF9CE770E39E490952B5772276E2D5E6A7678ADAC64496AAA5B8BBA035956436EE54078CEA4E6A6BAA9DC0CAC023597B76A57D3D9A2A213F3F715C8A3EADCA61839D4DCECBE20D824CCC46D4BF623C148889267107E155E4D5064E6D67EA95C67B4B0EF6FD063C71D77FC833FF803266FC3313AEF521C7B3A53B68AA1CE795C8A1919AB2566AA7220472AC1A820C2F8A11EF67A313192BECEE42FE8B4D243AFD2F6852F7C61E79D77AE785809575B9868243A4D5762D2778B301191F1A8A38EE22CD7A00D471820FFE08D5B6CB1C5C30F3FCCB0E15511B334BA400D3889D8C3C449E55725C5B65052E7ED58F83938B5DC539B38F5DEFBDEF712F91198139C01C51EF76844966C98DEF5D75FBFFFFEFBBB2FE35211881519B43C2AD99B3BECB0C3B7BEF5ADA050C4F71C0D2B3FB6CE59075577AAE30C6F37FC8E5851ECE1FA7AF886B24EF91E1F592BBDD1309AE26F6D13352F4FEDBEFBEE575E79656E9EC98007D22B1849EE66EB45305031B55700BB28C4E1AC73BD29E900C9903A3993E89A0480C8E19E13DF5554D17A60CABF64C218B10149E25F7432FD2E810E45BBB807EADC7A6B04180C93AFC557A70D1AE299512A52160331146CBD1900827F9543B7AE66916B31574A2BA8630D18F089279E78CB2DB77CF7BBDF1DF5861E2ACD84D5042C190114B1F2C06EBBED163102991DAF15605C9458D4D4754E5ADE1BD0292D02D5710FCFD65569811EF3E8479324E3D6956674680B26006A103A9C1BF72AD6758BD392C412DC8BE4B7BA14FD1FF732F76DA1FDCD59F152F4154DA3794B662EBDF0B81ADA8D8859CB084CC7918E7B2C7A443112636CCF70DA69A72D5BB62C2233FB6EBD7E8415D92DA090D7D2BEC25E935ACE2B4D645D089D326C6C54D6B6D34208C358A2CA6C2686144B08959DE117BD3FB745963DECB0C30642C6A89403337C66DC2B2F4E33608AB549D6293F429D1F9524F8DFC04253152F33F1C8806F93DE3B98AC5A2F46A607142CAA3D0024CD9A97BD39542B37E4A7D0C0A81C36AE7756ADD415194D72C9824551333EF8C10F5208BD2D165735573AA556DEB9A65400A45910F44792152979CDA45E21CDA6309F2830555FECF429E6C28A1E2064F030C5F3CE3B4F897CCB2DB70CEBC2C46256D520D168D453251D70F06ACC30601A421814C6D254DAC36AC987F124A629E2458E3FB1051E28345D2858561DDCA6D979EB328A0419A72CA65C2D2ED4D6B6218DA76F6093907A8C7BFF37BE4123CFA1CEBED7BE7C969CC23C130DED8FFFF88FEFBDF75EF39DAC3691CF1B6CB0419E7D36376151AAC12B656C12F7674A673AB3818980CFF7A832D9BFECE2A07896FC92E99A55A998F05C3560255C93882A7F25B91E652587E4E28B2F1E58DECC569CE57BCE310B2A0463F221D41FA2066527482DD3263E9C8C8581515DC64C4620E86B5364A2939E29BDD2C6A5AF80A6A781110978E262670E88FC040E685AAF01D5382D6862639515232DE5FD049313FE0AB2AEBBEEBADFFBDEF796D897710FF9B31576EB99F2392D44C09E7CF2C9175C70017CDA8809E3D490F030046197960DB792DF32ADB6D66FAA25CD4E5C8338CCAAE155062CE6E847B4B606D6D7B9D2DC5A99AC95006032F417B4D79E1264B3C0CD36DB8C8E1A4833B57491323B8D2351375923D3B3E2412B51B2483CA352C45F45C4AA4C14A2DA68A38D201383F87C516E560C4E9B52BB9139D06366A18456076C9598467F9AEFD8CBCD56CDA6CDD0C91449C14CE436D369204435FE689A010B9C5098DC496F9CF02A966008A4C8C6329FE90D7956976630F6060DC7A59DDC68128448ED0B786DDE0273C51B2585A1B3A45E5292D63CCE836CE03625E9B622C1E715909D6A0BE58D3576C102096B962CF823770C7246FD0D55099ED8E897A42C6B65D7521EE8A375B38CED90FB56068C5F3263861B0DF2A0CC0A01CDA8018C772F1F90C37884A545C5CF2491BFCF3DF7DC48B14CCFF04363B0AB7D88E6B31C0DFD5F50098B01805A3C3E901EC067BBE3CCF7564873933AA670190661B696D05242D22CB4A697DE3373ECD96AC7B308873E80AAECB785EA02AC22EA024A77B02DA3D754D4D154DBB8402D1C7A5CB23C09EE78AE0C78AE74C592892A9C129461D3AE2A8C575BDFC019592FCB3E644556F8B3A86F00170C38F2C82381350568486F60328461031FC494F95ED2B93A933434D5DCD6693C1E4F82110834C0AB9DBF2B57AE3CE490439C30D86CFC36C40ED9B3BA586A00BDB524F7DD77DF6BAEB9061FED78E226C7E21DBC99553E2987245409289D72CA29975F7E79DE0E3FC604DD2659049927063D12F2486DD2B8A2FF15211AFE043E58EEEEEFC98075ADB9A173A588D8345DE3CBAC2233218211A10D6752A64AB439F5B0E41C7A34A27047EE469C5A34BAB8DAE5486383042367648488C011A4D4CF5AC9EB9FEFD528B591644A010BE5BA6A65BB56EA8269771DD89C4D42C3DCED860EB29E163D02D1688F3BEEB84863B6F9A2CEEBA2F7870611FA2E028899A8836609129F3F2B2A3BF76FBBEDB68F3DF618558EA96F6C4FDFFC74CF3DF7D8AFCC66C3557F68C50A3D9E3455C44278FCF1C75F76D96566C6CFF5EAA4DC064140DECA19C9DA6FBAE9A62C1C06407A1EB9BF9E656C33D535A04986629CCCCD6CE05612EB070C789A00564E805008BB42B7C3D60D6FA0E9D04E3BED74DB6DB7118425036E0B959F8A9F5C8874B43622199D7004547CECEA845BE757BDFB03B169A0C269D2470C0A770F3DFCE637BF89DC9FB3F3F8E38F6337AE8991ADCB1346CF803641390AFEEFBCF3CE1FFFF8C77D2F1C0EB9D962FE350378E063E68821111E75D4511FFCE0078D0F78F7BBDF0D011C1447028B383E78730929ADE105CE4434708B71CEE60A41D3EE98D1882B22C673260376C32A1BC08B699579E502FA33AF2965500C0C69DD64D1260C2C8FE4598DB71A729F2B035603435160620404222D66CDF94BBEFFC0D4E339276961D6F83BECB0C35D77DDC5F97CC73BDE71E38D37E275C7F723F471BAB05B3A0B0F3DF4D0F7BDEF7DE0811D1B89B221B883D869C1A28A2083199C167255294E2B3BB746A6A23787A47529BE75D1C720CC0CB5CD36DB84F493D99C018D929077069F28888848B1287C4653D984AD4748D5E8E59A2A204B60D85A2A28F039FAE8A33FFAD18FE6C0635F15BC03BBF1B4A200E6309A731E2FEC4B316B09B2AE2A5F92C013E1E6052F78C1D9679F1DC86075D0CC505D00D5D738B89475B4DCCAC82131FA0873EDB5D75EAB56ADC2AEEEF886C107D5A3CB7EEB5BDFC2B90E0FB0BB49EB86CA9A7168347BEBD52DA66738D7AB8C2D3A7FB555D03257E010A17989A3AA6F8CBF3902679C7186655EC63D45826D5AA2B1981D446CF402F0E1BB064B1BFE366B1C328548CEC91618C80DA2627735CB9C7F0355A37B6099428F3752890C9EB7A6B71EB2708D45635C9DC546483DE7408DCBD5A6EA320A4CB7C9FD1D97B8C26AF6237A83E0DBEA6568859E0F64562D2539984F3CF144C6BCEEBAEB228BFBD2DC4F26883EAC6AD7ACB2CE78B1BC2344435028472968801F2A82C2E73FFF79DBD5589375BBEDB6BBFBEEBB7334B6DE7AEBAF7FFDEBE79C734E247B62AC0C645BDD7BBC1223898870C411475C72C925D848AA6C0A7DC3DDC0C434DCBEEC652F2378052F0318B56661699451A9688485AC9E14BDAEA0B769F451C6B01D92206EF1108F67E6892417096FC58A153319F0E07B6C41993D0E8F20DCD34F3F8D210B428CB245446B14E29AC835EEC1110A23F06CC2596184B3422B675DB88D6B63732165DF093A8E21418397AA4A6692D9994EB395F7E494D2F63C6F79EB5BDFFAA94F7DCAB052F1006DC6FD460185DBC17888B2A30E730DA7042768D73CEAD1EAF6301F976CFDD603B888E8230890931F2671FDF5D76747881804927661628DB5F7351840524A9B683339B466B3A844C2EF75D5CC22B5FA47735B38046372D5F00DCB67A2F81AE33AEEB5972B9953A19C65379EC5804121264349D136C3A0E767804FA9FD3593FAA95276BC357ACDABA577975D7609F9087538FDF4D3A3E2B37D8B82C8A94A8E250DC604A01CB7D25213FE0A22497033424846202CCD5DABB48ED7358541E2A52F7DA9D97716FE0C19CD69D70E847D6B6913F478D20D1A5D04812983471BC6D9367D49CED06E574F7500CC80A46FC15C17ADE03DEE81A3585F14293278E61C243F6F72714306A711646506EE3B269CDA3C2D5F46EF39E8A0836AB7E06A70E2F4F15232E5C897AD45618D925320969DB3D89A4C4FB7F9134F3C3182C8686169C6014E0E9650315F7F81D95986BB4309D13DE626CDA9A8D350317F9AB58FCA9567A35D7CE94B5FFAE10F7F9861833C9065D652D163BE37C6A8F6B9369540E507AB849A62CEEB086469251FC9A202403E7388CA5B8369681148C41942B035A279C4DA76EC29E63D2CEAD3DDA830746910D6E034B04668C3AF3E11D018028E73842233402C83EFB7DF7E51D30973D14B2216B5125D9B39FF34C4B5CA2C425047DAA88774DA6F3280D8628B2DEEBBEF3EF21131709304E25655495C9A389AF44DCAECB318923D28F4313FBBDBD212D461804F6127B6E346C0C1D2450554AD22B6C4A994EE172717775A50D42A3CD8A63082E96630A9B74D586F9649FE157E2643DBC39942B26FBEF96612B703F14C2FF7D08CF32D6F794B501F597B6E529CD934F351C99A35722A98CAD6B0E58A5D4450E3887AD7BBDE75FBEDB7071D236AE5DF5D77DD35E2646688CA0B4A91E76AEF3C8E4AC4C9206818361D6133E6DBDEF6B6CF7EF6B38BC21FFF3A1E5FBF24AB0A87B70D7C38B1744D31B8A3D64E022943CB42F268099763B668105F3DED03715E6FA574B03A02A7E95DAED7BFFEF54112C2A394F19573B3172F7FF9CB1F78E0014AB50C6A87990D054A4CE3645B98E95483E1E164D09436C9A42284C4905A6E182FAC80AFFB0D97649517C7BD831BF0879665CEC116AAAC73486FBCF1C66818C10DE228A1A74B18A223A19F7CF2C94C062FCC6EBBED16317496C0015327AA8E6002B643E6917785F8E6ED48BDD5555F0188E91EDE0F53D15A40F51E646262D4C939D6373C60666C6BE85550BA16D8699364246A151972C1066DB5D5560F3EF8206E112B900F6A5461280A540F38E080952B574225DCBE5A2E430CB4F91D9ADC5E7BED75F5D5571BD327D64D33E36A8FAC8282070473C8B897EDAC8C6480421E52344ED39D432D73F0E77AA39720181A7F8D4D514C69DD1A21D611BCD6BA843A28CC87230C5BCBB8C7A8621144A31D4D32154793A04B921DC0F3D0731CDBA409307953C888D1C15A16AC88F4D03AAFF59C220351CD069A66F3D00C525D725FFCE2177FFDD77F9D9A0DC47059A07EAE770FC407C191515FD2146A423CC9ABA8DA6032931F9846D0D69E5D3E50AE268B019DAA0C987904C4793E948BD960ACC7E985C417716FF9F2E5E1255ACCA4B6B59B66EBD6B9259A95CEBA2846C81AB03D72C0609CBFF11BBFF1B18F7D8C5DA772FDA817101F4DC22CC36CD012FE9E59BCEACDD930CCDAECC77C6FA19A9FD8D768A5FFE6DFFC1B33BBF361934D36A110D25C6997CD41A502BE498A5A963C57D6E4239681A062512A93C99799F0D65B6F1D56C153A1BCF20673E06A0A3FF48B6A2FE4BFCA44FFD5BFFA575FFDEA57DBC47E12E272DD75D72D1171C387F94941CA802B5C81D0A41ADA6DC80321158A8D35D93F5F62C931EF68F7DD778FC8B2C4EE4F6BC0175C704114A3D6E3BA073757320A9FC0915F2BB5B65E0C64561F59F398A12CDAFFABFDB0E641629EA9353A46BDD00AEB8D4A1A0EA775F4D0430FBDE9A69B822A0C1E5070340C0B683DC5B3F23CED8DB897C8B83BF8E083AFBFFE7AA44328BE5DF6A414360E224140C9D27228F88C810FB406720CC24BE66AF2AB75435B0F685FA22006525A9B882016F969BDC9AE0C15B390241E91AEA660B6A227545D42B9AA4D4455B268087A0864224C446188546AF91AA8D0DE7BEF7DDB6DB7D105A14D427872B3B1CDBC919AF0E492224D2AF955CDBED62A805C18A350DB5CDA48715128AD59581252CE2A039EEBFD0C6A2EF83403B61899A67BAD0210647D19D6399FEF1D45DBC298670DB3FA41B0BD993689ABC5BE00B52807C88376C8F151642161327333D88D138AA80479CF0D74D843E56034A57CABC229F7F0EF1E7BEC913DCD3E22BC0EF29EC13D98A5D542DA4235D2475A8FB6C96C21B355F032B0C67D1934F20A55441C916D8F6AB8D72C1A2771212AC43DB0C1671696D9547F188EC69A0D0C3BC4AF0E39B6A7D834FBFF3BAF718F1423E2001C8A5019D283F17DCB2DB78C2E659E652B0EAAFFC32C5EC015BDF6D65B6FDD628B2DF2944AD26852F98842271C36981CC15984C34144B070323E2C41640203B0A64295101B33A5305D0B27ADB7DE7A519B0C6CD11E4ECE0950E518B05F44F3075044C10CEC545E1413AE956B16BDEC4FB26856286C0391566C3155C05040CD538CB6FEFAEB13674437928A7B4B2027BF9AB3347D33F90F048D4FFB1DD90E688181E88B2E194C30269618C8EA73AA6C605C929EEB35D76B8013F61C68E7E0A84FD759594D65C080D5813C6EB51C15120C966D4980B61C2954EBB409FD58682BA8C11A7F32B95A0F23E227994D1556AA1743923DEE45F61785A7715866E5AE2E85CDAB7F072F12568160FB7852230CD62E1799D61D71D1E15CA880C518531B205AC77BBCB0922B88219B37D17CD4F3B9DBC23AA9AA5F68D5BA722A64C443CA2AE49B57BFFAD5F7DD77DF9A85BDE346A55097DCB4AE4E6D78D40B9898A3B128033658152149F8D75CF3B690DF8B7295199BCA81C2C0C962F2B5020C6EF2B6903F5180A2F54E74CFF466F0E3DE74005023E912F9956FF6DB6FBF4F7DEA5384837DF8C31F8E8404929047646D7F5E5403660925C3D927BA565720ED3DD44A6BB2689ECD217AFCF1C7D586D5B5584B44E76BAFBD96FA8F08D68318AE4A636DDD8D17C3B4F567376E40C846A59CD880D8197E49E530DA0D056AAF7CE52BBFF18D6F2047230392FB186E410D1D50DC4C6DCDB33518F27F2308EB8A2BAE38FCF0C333994C4C6D15132889CFAA9EFF1F65F16A8850D1719334696EB4D146D9C5B5D75E9B7E0CAD84F2834621BEE1DC0862941730940E06CC86B5AE3104EDC2A58C1BB4B915F17EE1CA791DEE2B108B4242B8CC5D08219422134AD8061B6C9041C29EADD0B4846B0050D34D08057AD9B265391B279C708292A93743BE77DD75D74F7EF293F9097E2390A99380AA31A8AF3940CEBAFB839F34C74DF33CB9C5B8D7421A97FAAE881AAD97436A8B798EB9F454814E59EC273EF18941AB933A3DA127216BDD0A3208516653A020A62756DF731D5F1E3CDFDBA8E52F891024E5DBC57DBE94B9370952CE515303E0C116C726E1B81A6607623A611FD4651BF74EAEAAAD83C48759477B3C2903FED4534FAD559AFEBEFFFDEF8F342C5F69BDCC7BEBF5E32EBAE8A2DC89B5837C872A260E7C9F7A796BFB673EB3F6F9491B92419C26CEDD4A4FC5494B40F01936A345041B26C484072B035ED3DB110EAC7D386E2523AD1361F90ADB5D4FE2C0BD52F9F1DF6982C6DEF64C6FAB034BB0C01969662C73C0E0C73D79A4BA540873835C44550DF220910FDAA2A3BD6CBCF1C64F3EF924D64AC891557A8880238D0A7F1CFA62460E057BE28927B0F9D55A2E6B7A575DFA1FE429950173A3E74B81D8BC11F332AA6AF51057BB05C42A27227CEDA1871ECA7CFEE44FFE845FB103419323363DF8E083AD873E487FF41C57FF4E3556E7EC53A982EE87C30CE069C2C795731EFE61D0578D7E023BB1D942CA812C4168B2DBF985ED1BAD2F6A44E8AC538AE42257600E48A355E55FABB4E4FCFF3F8B57B857973EA29F02A0B6B5E73FFFF9BC54011FB2A88C42B7A8EDB7DFFEEB5FFF3A965BE2B9EC20665552ADBB78ADC45D756BB41C5601AD1F8477692EE3ED471C71C4CA952B4D8321D5C1B8B636A92467DA9F871C4AD77AEC462B061C2BA64947AA2C5F95FEB6B030B2546F41C6671B8D5BD7035AA73BEDD9E14C6E9E45E8F9B7C6D0D52824A26C10EA1745C5B57AE74D22FF434DC8EE1DA41D7B3F88D1A6623A4C59C6F62E53CFA6E3DF82AE65D5545CD74130E0C1C1ED37BCE10DB7DD765BEDBE80810A330FB61FF536B80282E3B804977121D251431149A8BE74401CAC5988615FBCD5DF392E79ED4B1BB70C2DCE51C2F6B86661F38F51AFAAC1310FC10D40B09CA1CB4E870BF82FA2FFA0EE69669B0318FCA40F04920A4215472C1B113E61A4029963CA01D8422B13AD151CEDAD32EEE5716A8D142903204269216794799A1035D7BB0ACE95FE8303B23CED345C82017B2AABB951DC501AF6430DF5AFB141223CF413640307D03E75FD2A590AF6418351990831220160F03F1FF09BCA6B463D012750C2F8C44F6190DFFEF6B7DFFCE637DF7DF7DD16DBE774C8715EFCE2179F7AEAA9071F7CB010A8957646BD6429AE7D80AFC112DD49DE3C5F4AFC6A8E1E24B262CDAED15B83ADB1D4FFA8B705FB5B13B4F20EB0ABBEF75CD16CAEB9E69A7C19626A7F72823B9E99F40CC7A51AADF4D8638FD5D14B6AA336AE9AA18CC161D48B99CD3A9FE39EB9D1BAE162DC43616BFCCBE0FA0795C54B5A94566274746088B9D87CAA9A4D98F90703E83A40566E6ED865975D427091F5CC753650059813A8428003B30A10DEFEF6B77FF5AB5F45D0A90C58C8D3A4A8E6B30F7A21D46ABAD54C5703439C79858CA685B65801A0D1247A2ECB37C3BDF5CA4D18C3C7A564D5B362E39FFF45456B91644D1BD36C75D16082BC02DE667AB1EA6F0DAB5E33D5F7699AC061821EC4B44FDB8D5A116E2A41AC34AE75B6A728A0CDC660934170A6B610C0D27A655DDAE7A98751FD8DD38E8D84C9A81357751CF7243C3B9F15A35D452BD1B0DAC9D659671DE2DE2D116AC67935440F4A280F36250A74F6F49C73CE39E698639050338E1663646593D191D40F38E0805B6FBD35DFE4F8604A51ED6825F25CFEC7A653250A8195A234BE450383DAAABD29AD692F9D111A1293D6654DBBF3CA80353829AD5ACEC2B023A7417EA3D558E71616C66A53266831BFE2675BACA296331F974A64B842A85AD82682AFE98B9A240720857F60738688F9769478743E037AF4CE9A05AEDD11ACA8A2CC2F4F2E7CE16829588972409E99342C377E08B3B3FA18155158A9E8076DB47BE6B3F52E46A3A034951C212FAD387A7465B6DEF0787569510A57E6AC412AF189CC4D0A331B2BA0D5B0624BB54C303E473BF7E7A73085BFCD0993FB82F416D0E26F4409266D78BDEE1F83B969076465CEC0EEA8A38E3AE38C33DC3FF30E2555BA126765E557064C3C170C9BCFFFD765F1222DE25E95FCE1CD023E7A2330A45B0F0808481907917E28EB765FC14E72D145174518F2110DADF5B83A5B832F82F7410B70259B4EADD06AA31BE462896AD54E45E1FE3695C2D8168B2DE006A2DB486F07E04C75C58A15A79C724ACE0CAAFFFC686E20E230C85A3FFBB7A2E500FEA87438E011D5CDD4C2F8A900B1B4AE667BED005F9CD73FA4CA5299E5A8D4F2AD0603566DB6EBB847B504FE91BAA2ACE711F3C76A0CBF0CD817D91A9910FA71A98E5B8B29D25B0D73ABDB64D93C2CD824CF60EECA67FCF7031902461B7C7BDDEB5EF795AF7C453D58D34525FADCBC4486A1C839700087B366AA114D38A7DB6EBBEDAFFFFAAF070DBC9FB413236CABFDA9AE4E91CEF3921BE807C3718086288DE99EF7CB566AAA54B734378F27D16103060C9BE7A506FD4A66255C9A25AB21AD566262BB07B9CEF51079102AAF9DC58047BD48AD5138F91C95F4D1471FE538032BA326CDBF50FE803560D7851DDA040F564A9C8AD10CF26C339A74900316A89C9493F203D4A8C15EB5E5965B4603C1716B04B26A40C85DFE42F15CDAA69B6E4AEB8E8C5CCD69F2DAE863BFFBBBBFFBA10F7D88AEA64601D7DA88286348B15870C725A4C34D69250ACAF1179598357EA013AE5AB56AFFFDF76F93123DA3B9A98EADCA629552F36E2474F01E0116528BD21C886447EFBBEF3EA69BEDC966C015ACEEA6C1F6FAEBAF0F9F33916B9A6E6AFF91D18E7BAD3B05CF59B1D379EA252F79094A7920F80F338BF7E0830FBEE1861BC8239271EAF35FD3BB29F0D9361218AB89A234D38E2544D6B9EAAAAB54A643A46878803B202F0A61C54DD84AA007F2074E1AA29F80BC6165AC228BCD1BB17352EB67F554C1F7B95E460A88B1709CD30AC595F5B69EACE9E399CCAB5FFDEA77BFFBDD471E79E49A491F313C256DA2303DEBF65E339E5BA87683E53F59FD6C4EAD6982F5CA3D5893FC462BD9A8B41077024B7843444B389CA6A0F95ED65FB560AE37935FD33BA4D6C63BF9095F06DAB3E48317C15D02FF3DF7DCF3BAEBAED3A8058630084697238E38E2D24B2F6D5D93B647A135CE4817017F8800627FC725A0A64DA4F24C06C3497EDD6EBBEDBEF6B5AF79E8A61DF0B927CA04698735A05D741D95D646B38C0A06D150659A54341B474A64FF7A7269BE53CACC879A3C2ABF57128292E2D4E4842E5BB6EC8D6F7C63DE72F3CD37A3AF703F2154A86BA8BC0B8C2BDD0EACB00830253E9501570B10C03411A5751502E5CFB098C0C1EA81D599854FCD90DAB6300DA915C77C9544AB6C3A8B016BF3885C1BB4D143A14EBF56694C591930621CE5C103B1DD77DFFDA69B6E0ADA10C09C9FF6D9679FA83AF2DA6A86AD7ED68A12C6A3F88D12E14E3BEDF4918F7C8482A6D92FE533BA47FCC66FFCC6673FFB59D229717265F07DF7DD371330DFAC36A8E05D942B01F8957EEA75D6913CD7BBCB545DD4E81FCBB3B8E3EC6C35530DD8193BCB21A5D5CD4F63B8F4E2B452177EB07FD322527D8151F5A8ED1E6C834D90262CB36ECF0A246EC3D9C5155E4D88D6208BB74D1C8DF2E045CFF6EADE201DA19E0C849A6BF10F3F8B972285AF78C52B9E7CF2496D53F686AB26414469362843457E8CE4C16271B4CC4FFA610DFA564A7A1C6A6ED23A09D732E49B3A59F9E9D65B6F0D1C5AF78BCF9742DC35F3A41E2AC82810D60B50AF51EFE810200474F8268847E306D909C649CECC5C5B401C1D6AF578818D74C03072267FE7777E67101832EE7D619599D62C593EB7758117F9A3CA589501CB7E64061C1CDF45B4A0B60D369A4DC400432D058B630F188C564D193CB7B1351ABB0C3CD47A46ED02AC794CB51622C023B556EF768C1AB168980FDF18BD821DB59AF44DEC19F7FE138B0213D92BA24CA6044FB2C79A818A6ED97AEBAD177A97D7FDF66FFF76D417300AAA322EF975302DB82F8380AE864C06D3727EBFF7BDEFA12B33134552B33C060E85D1C29267A31E053DB7B006351D415AF7D1045B76DE79E74F7CE213A385219CE6170067BC4588B690410897C1F9F01B7FD50C304899D3C8AC605A5757A58A7A4C24A46B7A056F0C729C3B77994AD4D12F33139A855B4C9E841CD48F6A04528CE04BB88C9DCD50273226C8F9C217BE905C6DC829D8482F1CEBBFA23269D5A86E752C94014BF0E4873FFCA1BE98DC6FF208D9CFB5E14D5B683068DDD638D7EB3CE72F51B1269E09ABDA4068D4735C45186DDA5ADD399E4083115078461664500DC70055F70938627926C9215CA1263C706EC58CEA0C5F679D757254E67B6BE175D75D97D657E810465155E4C809C904082FCA651ABE5A85E2E72CE19ACDA60C37015C681BC1ECBF9A5CFF1765F1020A6D5338B410D5C793AC094207972F5F7EF4D147A3777236D80E737E305A444E923EB27CCC0F19879AA58A99B921F26C3430400AAF0556E0B7F646E321B3BF1901EF206F37A4A2CAC215B5F8B2367BCFFC831BC1759CA0185A58E9B3168BBF9AF424696322B04673131DABF729CAFE52856DDC334733CFC0E4D8638F3DEBACB3C02B9BEF6A57376C1BDBDAEAA992B0125F6C776DE256AF5E4F696ECDCFC92E87223FF2C82384A91B306CAB3E8046317A4455D5BBEC3BE687908F3F9F5CB927800D4C7444C157742EEA96630E215E51FAB122E0E5C91C429E82691C3A3466683AD4CAB259AD8707D7441D031D46BDC58D1E25432E3805E02477DA8A95652A6E42E6D0391043F3602016C232A8AA6FF740399C5412AAAD1591D85AB6833243F2F58037F7835138BC38AD708BEA7AA81EE581F9BDF5CA1E468788D50804EF7CE73B7FFFF77F3F4B4656184F8A8DA3270D82D17252328D37BDE94DD1F0502B45B93C92798E4B0FB11CC30F7EF0836C7AF642110A06896C074719046A4D5B37A779B0555FEA0C757E9956C00D00BC4DF5AB08D5AA15B907C75CF171BE57FF8588E51199CE79E79D77F6D9676371945E8D4BB806F447E9D3EF6BD388B630E6C08C41B92065433CE04638016DFC35C01398581BBF2D0C05ADF19BB5FA349134DABD01636DCD37EA65BD49FD78564468DD3840EE41D61FB488C653E7D74A45BD2A6FF2326606EDA84D575AE9CCA3F91EDB66762248869204C7AD40443DA7B8749BAA76AB915DDBEFF4A5E61D08E671FA87288E65B1E79F7FFE49279DF49AD7BCE6FEFBEF771747FF80B378AD8AA0D46FCD3CB01F7409DD0985624A882091781E7AE8A1D0EE00A48A59E8614621F23A7C3C19E4CF2617E7936E7AC493433121BBF63D658FC2297367F84DC6C4C9E1BB68A433705FF1A0D57AB181B3CB871F7EF865975D665E4DF537D713BE682D49A22DA4654833ECAFFA0A5BF3F18F7FFC9E7BEE09AAA3B504C299003A37548393A3282DFED763CFABD97D2296414E363A608F782A311D9522069C1DB0257CE5CD6F7E7364D9134E38016300C67CC24FD8ACC027187BE28927EA21B3E6FBB8C496337E3662ABADB6FAF297BF0C0273038998B4D202B570762201CB8C2FB9E492638E390642660FD4AA858F4B2715EBFBA036D568C40CBBD9669B65B69FFCE427ABD9B3150B271B542914E19CF066F2BEA44E84AD5AAC43B3D09A5E5D0440FDD2E47AD5AB5E75CB2DB7383DE8A97D295AA98D3CD70B5968B566643DCA7C9F3151A6ABADCE6EB294D7B76521F2B7F82CF9AEC6EAD69510345D2C4F35382E38969FF6DA6BAF8B2FBE581164D75D77FDF4A73F8DE2483C94F9B2226A35500FEC16D33C12A582851B9EA6AC6FFD4B8906C9EB10795C5799C36FFDD66F5D71C5156D4ACFE6D5A142C1EA903B5C8AE31E21DFBA2D014C43F4648B15E302614819F1EAAD383850ACADB837EAC9CAD0253116D021E2E33B9836D1F357357775E953DE7AC20E084C1E0A3A3A2768C71D777CECB1C7FE1FF6DE044CB2B23CFB7FCFA9ADBB676355715805C40CF0810A28EA77B99004138D06302A268AA8082220209BEC6E8323BBCAAA28E03F1143142410C5200105090A61191411148890A808220333D3DD5575BEFB9C5F9F9BA7ABBA3B12FD9B7069053B3555A7CEF22ECF7A3FF72319E21209068A000C529D2976BE7F9A8192EA1C861970B6DB6EBB9B6FBE794001F3B41C89CE8F2002F804D0402CD3A2028EEB6EE4796864CF39E71C16AE3E9474D684A1B09D961FC0BF1455A7420CE158EA90423A2426C3075E980BEC162686EE6C595DA4E894BEC3E9C40CFF9757F1226E486CB01974ABB4E0250CCEC6BEE8A28BDEFCE63733C25A79BACF4816C65EF21DE2CA901D010AE1C218848269F9741B3A121DC338C7248A4E2E8122EB8145462595390523364177BEEDB6DB4A8BC826000C4F4182EDE5DF844BD260C0546728B06707FAF131DD1A1C66B6517746632500C689A4BE362634AA7AF39AD7BCE6AAABAE7229B95FAC64EE3CA28A9065AC768C3C135C385EEAB630D18A8F9E282280781553DFAF5BAFC7C131A4C5184E7F8BB395EA380D67C029E101D173DE59EF78C73BF4953499B53579FDBFFCCBBFFCE217BFE8EC43C42B19141653E614E0917B2205E3E920C307E3075E11F30B705D5F39599E82419F6AEA5D521844D77445C3CB99597DE596DE0862144CF4F61861C7D51C528ED22F85FA3ADB70DDE93D16F9D62128EB121C74B4237F0D534D43752CA42468F48461C70669561D058E3FFEF8638E3906D51B69255C3421B951CC54E99766F27DAD805D04CCCA61BD791FD95CB31CB06E739A63EBADB706103090A2E6133915B208FFEDDFFE2D464DF8B9CBF0FC22CC895260A9CF08524B814B358A0820AE45857877FF5DC4B8CF63C112CBDCDD1DC49E8664BBDE20C1EC40CBAE958FC13F9187FA2B11149B84B24F391B26265804D2A0F815AC90D26EC0E22B022A123341637ACB2DB778555125FDC217BE50BA5976FAC73FFE717761C442C942B129781962B3208C8AE9B03D562D858F123A04F4E04CD7615B6DB5D5F2E5CB357CA0D2ED0EA24D99D41D76D8E13BDFF9CE6CE92543A5F43702EBF35948791C84C45B75BFC648E3E2F3FC0F56F192A67DF18B5F7CFDF5D7C3D5E0C212F04AE06ED0FA0455C88E20980C1E910ED0875B6CB1C575D75DA71F4A11DA2991E696896D641CB3C0BCE83E77DD75D72BAEB8E28C33CE78D7BBDE852D92D78447561BE69B743712000B7C4B0F5D82D8FDBA032EC9FE39D04FBF3E9724CE0A16AB1EDFBE6FA32633B7FDAEF7EBAFBFBE46C606073AB25B378B754DA7531226817AE94B5FAAE5C766C10FE3B486D9A396A27D594C675902541F5B89B89241D6EA81071E0850563E34A568D11A20E0E9D30E5827260CC14FA2BA0CFFDEB9039CEC343D3E49008D15CB43C97FD52D495B982A9275F28A57BCE29A6BAE49D379A0B4A840961A139ED77C909A29EA85627170AB6E59ADBFD2E8FFF88FFFE85CE9739EF39CD7BEF6B5175E78218C579A44DD004DD4C115A60A3866C248BF242B75663D9DEEF06B5FFBDAD2A54B8F3CF2483DB2EE6D00851081BE186AB184BD31BD650BB61A67E057D622244D08B31144B4099B6A6CBF97AE0B935003C03EACD449B29032C3CC1DE6386323301D98262869FDF3E52F7FB98433D98A58EC3BB03C06DE3B214DCB45AD31F73FD015CB3A991A2484BDC5F198F25476388BD10F645E598DE286DA05E169D71FCD1D8B410830B806047DE4D0B1D56ABFA6DC8A93C8AE87D13AAB898670855DCEE7AAD76C3AAF88EF16D43436071D7DDEFDEE779F7CF2C96C0A9C131DACAD271F838D1C738E56B12904F0754BA0C9E4FD1F74D0415FF8C2174C0DE9DCD39365A058A064EC748A9D77DEF91BDFF8069CCFA966EC63ACA5D535314C838372CE596A096AD1CBF1C5ADC1BE2622E798BEFBD6E9739DAA5FB7CE8652C472CAE93A2C3EE60CCCDB21871C72FAE9A7CF5186E45B725D0D05B27328EC08476AD4349E34F476C3F9C89005B722E1EEDF65152F8925A237ACB368959BFFD65473BCC179626079105AD292B3C400D202D08CB8EF3A87B1B2713B10255E76A4A8B3BAED36BD8AC9BB93CA65DC64AEC96833B4E7231FF98854B8CE496F699B9333B25AA6A7CE2599EA1400F503BA04FB4A776ED4BD798B5CC20F28CFF0137697C42E567056D338474D4F5C1AB05BAA238A269835A187D786F7888E27D0A711D0AF7406E22BDA6E9FFBDCE7DEF08637E873B606672080E60E83C615CE285EB16E37DE786342EB7E46DE60497069B664117AAAEB3D0198A8DD71863029745791BDCFD7D5D9DEF8C637DE78E38DACF9B8B374CF78CC3476D48338BAE0940D5D92982C5D4543E7CEC1A83A074219792DB3DD77DFFDF39FFF3C0EA5CEAC25670317D4926E12107EC45B11EAC42C33B493035CDC85D19F6A7665A4FF4E3BED241F4EBF32394C5EB3E6C9BE84CFCB33E240AB438EAEFDCD43FF72AF256E4FA7CAAACE04C4F3F557F30E4A9C5A0C1D492E899D62FC1AE26B9B6DB6B9EDB6DB2257579A093D970D61DAF989BB89C3B9E491CFA7B3D246CAEB54D726593FC5826C1C41F2774EDB63C138924158056FA711F8EA7D15DD8C163CDE4511988E06C650C7BFF295AFFCF18F7F2C139088348E9FBE92A839E9A493880D68DE1D3CCF03BB08D2833E1CBE0D53E772245635FB9A9410A78266DC2617E69A3B8B9B3D826BE9063456AE0B2DFDAE54FBF28EF223D00D54F6704499124BAF588BE6524FB581E396C54C2AF8755208EF7FFFFB659C5AE701C48F524CBAEACA2BAFC47A4A432C5AEE30381B084BC793571E684590CD596112C90A9C5B72B5007C1A4462F52C203F5D3DC912B7136CB6A3F4FF43156F5EF7C060C5E3ECEA36306B3C35260F8A90F5B3CF3EFBD0430F85CBC9AE24A600B3666A5C27419920735C609E4739324C1E193317BA379074A9B6A84066F5EBB6E1B1ABC18CB3F394B8247598C6810CE5AFD969232250E03BE4B6C103DF7BEFBDF0CD16752B18EAACCCBC86448097D132C8B2C6C0E06C3A990E43E1A252F645AA70E37A2F1790223AF2DF1A7F424A7BEDB5D725975CA2A78888EE8815E2D29A23B980975D76199975AA5910A31C8C44B0C3E100CF404494EEA25A9671B9B2A7244AF4B9B9E752C8B8BBC542AA4D55B74A33034324A3272D02F2438FC9B7F6991C190239A1E988C8525FDD5C407A435F905479C94C0A67A317A1665F2B011EC1BC7E393C468835AE28264EBA102204833171B5E1E5C7D0D498E455AB574226B1C420923B1274443AEB66C85BE53547A976FD11471C31503890D50C0D303FD87C2426CC318E1245FD345C3230A0830D5070002636CBB14DCF4E71C32BD789D875190E2E6675FD2A9E25FD159C1965D7ECB2CB2E175F7CB1C57EAAF14D4EF6BB3C240A99816254DE5075C90A27F8AC6B5162600BC07598455D5363B8BBBEA5850903ABCB51CF69BF9F554AD7610CAF543576F32DA1439D9BC06DD0A6D009DFFCE6375F70C1053C38FBCB5B60AA16D3FC38C3FD3D22509BB9E17367A1091E6AA4B4DC65815E7AE9A53278F1F92878E2BE899660777B436EB5D556B440C011D4577419A3217CAA8D6B549DEC323C6CB63D9A6036856A0C21469CB6258D57E778459C73B45575123DB843197250CE3FFF7CA84C5EF292975C71C515AE7526B2DFA829A9532826FBED56F166758D1690756DDA534E39E5939FFCE4BEFBEEBBFDF6DBDF74D34D455DA14B00DC56306FECBED0C7DBA625717B6484697A3480E79E7BEEBBDFFD6E1D033A9FB4535EF1B1110020686F620A89FED7BDEE75140EEA782D03CB473C1B22190672739539CCA35F9F4B52B7FD9B74DA48A1AF00410ED9D4881E5FCB72DF21717DB2E38E3B7EFDEB5F970886D79AD0A24B0E9C76B2FD4E3601D5AEABEB54008E08FFEAB464FABDCF9929BC70EB2A1B3AD9F4EACF54E372B102BD08D9922E4CEFD54CBC45E019D0E264E119A940481F9945DEC4DBDF552511E88E41E987658A099521075848C41B18C9882CA3DA42924B1B96A1B6370C2C43CFA59B876EF62FFEE22F24C1914B2C369D64D75D77FDC637BE81C4742C0D9B80EC581ED82B23AAD419F448E8C162D302A603BA9347765A3C5096AAA8252B36FA29D9CC92D48A049C9E022F27864597F8E0073FA8AD27A14AA0058CA44EAB0191AD43790C9B88C884163695900399D11955637CAF830F3BEC300DDA0F7FF8436A2C91605EEACE61A3CC986E4BCB819E5D455D4FEC959982196DCB4C370FF20BD80742D29E9EFE42392EE176EAA9A76AFC253351D2B13A390B8D3178B15A9C9EB7ACD0C8EB0C7123BB501059ADCBB10DB10634ADBABA5C410D8B911C28FE8849E272B108C2B6027B903B643CB91F23C8A63C60E78DBD158DFE75FAD0861523CE1EF30FD99F2E7BA263148105BC4696940317AC426E14D96DD1C03DE8D635047A365A9F5AF0D9EBC5399BDBA325F5E88AE91959FE7945D88B611A5A2BFD8AC0BD5F1323A3F22911C130840DC0848BAC42172BA7E9BEFB6FB78A97B02A6BAB5F37618DAEA74D3354380208FB00950081D130AA330B0536CDBA513C9C70445D8CAC612F45CE36DBD1035C69EC586E7ECB2DB7D4310EED323E03BB68E0F594B8247F2B9D366253C554F3B4442654737BF15BDA8CE7814137ABCBD90714F0E1871FFEE52F7FF9073FF801B38F382842BD38557CECF9BCE6F093512B3302E3430385A79E6662164B75B3040343F0F501EB31BF6CC0013BD5DE7F0A69DAACEE2F69C590050E45861AFDA739225C44741D7DAFF7D40E6DB0C1065A0F0850A7EE0648BF63DB731BF7DE41E0AAB0B9B96EA4FA8AB2CF5D25C86B127B937BA09323BBEC374BC268C7E99E351D6CB739B25A067378A7F01583E97286D813498769A9534011F19EAE0AF1C2C8026F0F65F4C813DD309A40CAF8C8238F74C28BE78A080F472FA84D8A81E268107877C7E3535DC7A1B351E58199A59F50A4A0BF1A7F5984AC0A143CA33D801C8C0EB4C61C7BDD483D4C4C3D23336BDD91A6974DDA86E36C9190196F3BD611A51AC0E14BE07868D84109685D69C1BCFAD5AF96E364AC0F625C17D29106B17B9D7BA717354509E60EE6ACA36E7A0A80B4CE06A690C3F6BC93062573EF6350E453A5EBA611E8864E172940FE064412C30D9684256B5C9C065DDECFA73FFD69943C862A00106226146B3A61E3058127413D89771D2F221E8062CC4364F0DEF0EB139FF8C4FEFBEFEFC88936BFCE3FD0F16D406C5993C9E9917BE45D442129EE8203326F7DEB5BAFBEFA6AED04DD152AC7A2AD984EC31D6B52D36FB58AD721539D1C6998D77C3DB6B0FC68B60401A9124FE671E274B345F94B151DA230329DDA71476FD9BE493510433F07DFEE6A6C77FE915D058130F54288FB7C4EFEA9F414B924ED0CFD163B6D3898E1BA9422504BDA8562492313919E03A4AD11508D2FA5BFD47EB092DDF53D8586CA485B42A33ACCB19C39AC4FCB442D0FC317F473ADA86DB7DDF6D65B6FFDC0073EB06CD932F4B49781716AA8077D8B02886A38D57EC080C35D4C6F9CE7DBCB42F389E10E2EBC81FD86D6D4C4F7908694E0B33C588DBAF4F6DB6F7FC30D37F87162E226D284C5BC23D09648714CC0C30D0D753C630EF7CB1C0A9813127C223026C18A6EDB6BAFBD3EFBD9CF52C7E2044144BF0F30A8DB81B3F031218C05B21EFCB4D34E7BCF7BDE93EAE6F0441DB4C22531CE3CF34C39588C959E51525E9B8B9333594ED5B13E6DED919ECCABAEB4367A4093314A3C29910FEE59527DF7DD77D7CD0CF039731E07FC4843985E2605A68BE16038159598831C3CD09745E741B4BA194FAC2F822E03F42B56A6D73051A2484793025B1C99D081EE3E5806FD9A53081B081BCB028AA4AA6D2FA6CC311E9327C62A6A22554C3D883054BEE36D539BC492A55FD365392BC0D1D6C438C1B1CF2B0657AA1BEEEA16A5C39044845C98D44898C95361EF138863E8317324D3696BE524B6135D267F70D06C4631C4F18EA273FC1C0ABBA859F2754E6DFB3BEFBC3336ABF2CFD9DB916234969612F477596DA36E758E11C090321AC56FA38A97DBC3032036E540902BD6FD4FF707F4192039D1FC522232800DD16606A5E2042D06BE69314821EBDBBFFEEBBFFEC217BEA00F1191849ACD666A2BC19524A4D57D3FC4D0BAFF55438E5F9F4B5293F8BBECB481D30FCC180C9AFE9E75D659084D5E60DD4D8F8728C7008A0921EF5BE7EFB53564EA9D73CE396CBAA2E20460D82375C3C04B4290AEE39A35F94C32467575F4B159D0B5D2749FB81AB83218342C03FBA658CC4004528D057310E2D754C0A6D5C38CE031355CFADC818A33CE38E3B0C30EC39F4855C8DD4D82518A2EAB8D319B48091063214EB512C96372317CD155B6C386E5C66CB0122C3FE7593514B63BEDF14870A151089803AE6CD65D0B9956E3CFE3A27558657860F5B936A34E4B8D5C9454C309B82C54AB73DA46DD1A928C460AA0BC546382086D62DE7DE8431F3AF1C41363BF0A1D036E94F50300C2D068F39977EB5EBCBA377D059A5A6776C0390FACC8A96E1C3440244053F9254B962C5FBE3CAFA9F2B50B6201A1CB0D623893556AB7981F22228C6907A9CE3296B404812879F5A217BDE8F2CB2FD78398E7806D68320993FF732ABBC58C8F4923082993ED4EA1FDB94C968F7DEC63FBECB30FB9734746318CA62503FCEAD62DEECD6E3310F8E615B734A5C718D40E2AE2D712678E29747836624D18DAC8E86896C8C1071F4C5304EFB1D984CEF08BD0B7CE89C770F6D967CBEA8F2421C3BB8B29DF72CB2DA505DDE22DAF59676D9D4560023FF12364A1B16B941411DBF2DBAAE2E59CEF7FFFFB2FB8E002AD7BB2E38E3899E5CAC21175C5ADEEB0C30EAF79CD6B8E3BEE38DFA40BAE5809175E78E15BDEF2166C3D5D97D5A99B0160A23D8038F0AE6BD40DB7E100A291A7C3A10E49E9A10887B8599E157C73A656BEBC8AA7C22569E85FFA9D77DA800D0A75EEE732108C4857AA5984521DBB069F4F885EB24096AB96AB7940BD0DD96886476052CC385C805090CE03941751F8C6F887650DA7C5926331687C0E3CF040AD498A1771473C2F31931A5588EF24D5904C33C445FD67A405013DB68FB7B94B3B6CEB6B3476DB6DB78B2FBE982564167A6BACAC26ECE5FC6C43F4AE05BA8163E8EC285BE6C669C6C890F6CEB265CB90F5DAD1A67EE360B886B83D4E2B0BE3BDEF7DAFBD5B929D7194A24937A0576C736352DB7503314E1B2BE863891122E80974A5DA41D202F8C94F7EE29FB013590C317AC7752D16BC6080585B9A99FECFED198A0098A73CD5C03D53A6A4E9762DC7D0BBD79B853D8299AE93EB13F2EB3CB50676E79D77D69DFCE8473FD22E83BBCD2158CEE3B079A49A48B579ED7EDB1E649247BCD7752999931BB6D34E3B9D77DE79AECE7732882431F873F8D7088AE8A1604D318179AA2A91241E7976D80601A32190CB840E2B381614BAF8CC5A33A6646238C51236ABE887308D750732664924EBE0D34F3F5D2B0FF64A3D1B626E009D48D1855E445474972480757F5C4547CE5DF86BE81360139B026CB64F7FFAD33240222E20FA318D5908A59954CDF1669B6D268B0CF506A40207976446AA528F68BBA2A622412E63BA1AF0493C60FBEDB7BFE69A6B7E2B55BCD75E7BAD5323443F58EE4CB3AEA89B973131877339E3CB3443D1DC71A41A3432817DAD0449195DEEE31FFFF841071D64E14EB081F5F3CE77BEF34B5FFA1284F8B2813EFCE10F47351049095268AD5AFC77B9245D6393FD8F76DA90072C2346FB9FB98084CF917396A2FB1DA5DA0005E59B2A235D934ECEDE4BB4A8DB09F76B76B0D9548543BE909B724E5E8E6CC78CA9090DAC0CB2BAEE22D5580A0BE58877FD751430F8065DEB924B2E79F5AB5FCD09A9184E35BC9F2D63E329C23C354AD21C4C6E541BAC0DF21DD114C8EA0A13AF5E575E35EB967670F70F945138F63EE3A872331CE082497FAB413EF9E493F7D8630FFB4F8E6A60D9DB3122D28B168C49A214A205C6F7EA257D7FDF7DF769CBEB0CF2A8A4EC630ED8F9118BEB46DD578AF82DB1137DAB1D74CE39E75025E1E1C2A9D03935DA3A2D7A859520114D2CD7D8787DAB6B0182E15988ED53F16FE23CF76BC1C2369E2B8EB323F0261848759F3E9DE1539FFAD4DE7BEFCD18EA00CAD0C94B6A3C35D4D2BE3647EC39E81EC8931262345C0E3C29661C87616B5ADA90D9D5233B2BAAF5A981EAD56D8FA98BB303069F3129F654D90DA9CE18028945CEE3BA98495B278C7C20DE1AD9808512EDA0E8D49B7B3ACA38C7EE8CDFA33ADB959D26DB332C2205A885338E8EE85E79E59532705C730C9B1581D65FA7F037BE1CA38016437FC901477B33AE89D94EABDB268B89296A2043162AC98A9A7D0659469E4F8F0065074DE2502A7A4CA9F3BBEEBA2BFB6D54F1C2EEE63BF11400BAD10FFFEFFFFDBFDFFCE63767F3FB677BB930310BE5EA3CDDD1471F7DC2092710BB2680C1EE423502DC73F953AAF385A6124439E13D476E0744063B367A12FF3D2EC9FFFD9D36683BF1FAD7BFFEDBDFFEB6EE109717B5473A8A548EA5B0E4AF54A004043DF874CED7BDEE75FFF88FFF38E3F4917D1F0851E20822B38C73E9D6BDD0B5611DFB8D403F64B496DFC61B6FBCEDB6DB6AB42522678BD35A740C84A01D0F24FE2673FCB4D34E8B5076F7724F352CD1728D8C8696BA6690C23FDD9E04F4BFFCCBBF7CFDEB5FD7D9069AB80CA84CA91657BA6FB4D14612F1D75D771DD2DFB5AD8641A51ACB33E3A8FA18D86D9199F22B64DC64554117F4A260ACF4977588983EF2C8236577E6A1172FEEA3336836E6F2D0040285119B03BA92DBC91D8204C003B350A4804F6658288F060214D30A6D8A27FD8637BCE18B5FFCA22D0F6F3ABF343B80AEE5C9ECBFFFFEB40090F039F1C4132596413339D2604565DC68348FE2C332051855FAABB5E728A9CE06F894C563DC560A2024322628A681DA39589BE2B3986D5ECBA0A8CA40B4A21A3505298349413911206D679DC79560D626BAB1E38F3FFED0430F8DBA031C835312A9F62B22FB9E79AB9C9E670D64F97456B6BCA68232B92B7B430B48A3AFD58C700725EFB0ADBD7BBD077E49365BE69B2E7348F5E2318E3BEEB8238E3822051CE3134F3C3E3636B268D102A92A89A046DE5AF1B8F48D2C03ADE609F9B0E3135D69642DC8390A7FA9D682BD051B39866E28A076F01D1784340650EDB913909E0383BDF3E93D34E236B60F073D1EC38D1406EF6E5CD56F52C50BC494356A7947E0118323555E05A4484FD5032EEACED046B590E13019D331C71CF3918F7C8492682DD99D76DAE91BDFF8065C33BE55DD8C9E4BABDCAC370E66E82F0A3B559C47A81FD90AFFF44FFF94EA28D66FC225F934EAB4118BD4535D5D06F61E509295E8CB5FFEF26BAFBD9675F8F6B7BFFD739FFBDC4007AAE1150B21A5640175B1C6E64427D85C6CE62FCB437B41A0A49A0BFBA312D63259E65E3C7153E8EFB265CB3EFAD18FA69A224DC2FA4FFEE44FBEF6B5AF6148C54A62061945EEC87F3CB9593CD92CE045ACB923CC871FC635A36FA1318A27440D14751BAB343BB40D79E28C8086855E021A4C32BE60A3526D7B692D49E87DF0831F4CB51A60593AB6EF887716F85607C2D17CB5E5965B4AF092088023C5FA9E2B122C0423E2F80A5BD8D866B67051B36B39FCD09FCE660F77E6273FF949D9491FFBD8C70E3BEC30605F6623C0DCE41212EF1A040744FFF66FFFF6AD6F7D6BC43751D21625A4C348DC067F2FBCF0C2B7BDED6DA9D2F43A1EDA25576003F2A09392B14BE0ABB94A5E51DA018893C041CE171505E6AB5EF5AA4B2EB9C4B95442F490B1A4A056410A139370488633C343E911D013C99C3AF8E0839D4DD026354075EBADB7BEEDB6DB8ABAE005358A4AA5C7866EDBB5F2940C3C592CE18274630DA2F4B724627009A41475A78814CAC02D4D743198B78816225980FCAC5EAD7D9ECD9B37D6EB4E1C77DCE15FB9F473CF7CE6482A267FF6D04AC98A9FFEEC8935168DACBD56EF99CF1899189FF8D563BD5F3C923FF4D0F8BCF953BED1B016C685954483078EA6EE7CA8E7A4C30158531430995A82BAB3E11E79617C115D0739E9B45304E3F0627761ABFAB48459503F2E459FBB8AD76A9887C274A5A383C959C0980CF0111A1644BB082221B3592D73CB50C34A236306BC80545ED16281AC89960400756713F39A501E88992B978C4532B9920E3EEAA8A3CE3AEB2C57E0FD265C923AF9D3AED386A698CE5188F201DBCE2F3DB8EE2D9FCE4C34FC62F3C7CEA603EB99C18FB95503466C1D024F23E9ABF3C84E923181C31AF367C3EA6A5801BB66C903C8F3C62278B9AAB4EBB0E2FFFBBFFFFB5D76D9C5245C925F8407B91FFDD5617BEFBDB7364EBC565460AC5EED05BD414FA4BA22CE9E651A0243CDB1293098BC865D07AC597607C95437E622852F790D59233B9D99CD43A7E43C749AB12471A294B3BDF6B5AFBDE69A6BA048C40C8AB95E3691F36EA9EE5E65FC47AAF1442E10827F9B8E583A00E2304640E3294DEFDCBC81EBE87B1288A96E7F64646B51D317BAF765A4DEB4B41C8E3E028126A9876A30F1994E2523E0FCF3CFD785786ACC5F887D004CB9529480A2DB3AB13D53803EF46A4272FD7CE79D77FED6B7BE25ABDD813D6302F821C812BDB42C77DC71472D45F27A38184E4044CE3BCBE1489A9BEA0C0B092F99025AD2914BA384A933104C64115A8BB81506434CA1B78E946770D75D77E9F9A55F35401FFAD0875C43C9942343D948E47AE94F67527E2DB9850B3A9B6CFCACD1D16CFE68BEF8D90BD65A2B6FB424E2277B93AB1F7EF8B1C756649D9189B51616CD562F659256D94F1EE8DEF7EFBD9FFE6CD56457F681CCD5AC5FDEAA364FC1D2659A35D0E48F991B982206CA4C237E8790D11CB28C0D8FE5E1927CC4D38C07B3F42980617CC9B15185098286CDEFE8AEEE41D20D3F2C85BAD518ADF264237D1004FC6D86EE69FAAB0197B7A17971B4608E64E1537D810C42EB6CB8E186106B44A19F0274D0D25CF6FB3DF7DC033A5F96A3168C9EFDF8E38F3FEEB8E310AFFAA7F6334D2D416FA5DF804B123F237F1A76DAC86A1A5B7622774EE46AD34D37D5498C2B49752067C669C23BD73DC3029DAA46F46F79CB5BE4CD3859EE83B12F5FFFFAD74B3AD8B37492085943587E805F33CAD0014535F095D7217175CB6E87E31C78C0178FC966DC4A8449ECDF80F553548401A493A30DCA4B1B444BD16560EE87A3E1D53D68FCF58CB168D5250F0E050F642E91D494E0D3346CAFBDF6D276F3C14568C7BBF9E69BCBD8D255F6DC734F7A7A6A12698DE52228073F5AA177B22595373852141B0E68314A9153915FB4616A81C0823775620C0B13852EA67725B24BC7924605E0CC81C5618F0386F0CBA3AD4B683C1DD230EA902A7023E0B8568C18E73517B7B35DF4DA0247C62ECB6A9A2099B01435BCE215AFB8EAAAABB09EBD30403FF56B624B0C08A28F280806A41F38ABE35AE5D989150147B0F745E5925D7068E0986B9E0526197E9855B4BE46A7423404E8E7B4D34E3BE08003BCD834B31939398408396A2036D877785A585B46F4192B613F8C091E205F3433943CA8B5D75AD46E35D758347FF1E275DBADFE3A6BB51BAD6C6CA45189B2BEBCEE22AD2AFAABA4BC9A9ABE897E56E8A9C66508365A237ACCEE64F7F115E3793F7B6275B16255FEC8A3BADBFCF1277A3F7F68F2170FF7FABD4CCE314D190DABCEEAFA57C63452C1319D26809D9B35C66BD7D2B9115AB365A118344D0F449BF124AB5B6D509687011BE112928FB7DD769BBE72FD7BAAA3AC14F217752FE4ACA60F84EA84580D9FE8182972164111CA5E81F53E25459B4FEF46EE055AD42D01526DF593B9E1C6623824D53D2AB424287E307A50C76B3CB53AF5F358FF6E13523FF94DB8248721754F974E1B59A0894FA1F4CE25F8FBEFBFFF59679D655A1876A53BD8A7CAF38845D5C5F4FA9CD86C80056C38120BB83FD44567A02ED3580D6BE278409EB222D55A30D538C72A5C450CCCA1574058A9C6582010638DA26BF6DC791E03881C93EB029AA11FF3C05AD5EB0D6F78C337BFF94DCA521943C0E414FBC502457CA322B0D00F9C8A61B1B5E7C3D65B6F3D2A67526086B12CCD43733D2F72D7D06B21119E352AC217C58AB59B6BE32CAF19CDF439EA501BF0D8638F952DABF7BA195918AC28F37FF1D4547F1555B7284B69645A1CC02CBCE80FAD6F75CE73CF3D576BCFB4DB31F8E75F010ACB2B161182282CC88F7DEC63E79C730E30C0184F45CFC5CAB1BC66024E1502609F7DF639FBECB3BD062229AF1E41A3418CC1CBC6969664237C17EC7AB069DE748D9AB3DAF2CDA29B243DA84F3AF39E74D249FBEEBB6F8ABD13AA9D05A2A5573705D1C11189164B4B6C6D10CD769D2ABC3765833EAC30DC02BD809B9B7F2405DA7D87FEF3C06C4720AB1AB85615AB9CC8ABCD9797E9BD0DB7DDF6FFFCF09EDBD658B860FD0D166FB0C1E2B5D698BF72E58A871FFEA96C9146B3228249F271BB459ACCD378CA57EB7DBB5B86238ADE4A6DE8466B3435F2D2CF4DDD2CE523EDAA5A346B35AA8D34D1ED3FBEA2BBAAD378EC810D2EBBE2072B1E9FE23A2F2A2202DA23C6641BE05EAC0A5789308573547498A446034DE8752070148B44673C09E424D0B85330800563373A7A8D03420D8F2722D265516A35BFEF7DEF932CA6A0D6D7ED57CD3A6476C9B793023BFDF4D3B56DD2EC69ADFFF2351091631CA4A2B41258702C74BBA404AB634E4BDB6FE9D2A58006DFF5AE777DE6339F61FF9F7AEAA9071D74902C06C920A739B10A35447FE0924CBFC75C92119A84D0E4A9B93D27B007B289A92AF9D0AA30271DA2D076A1150F3563A0F47B75230DD21376336295BF234C915E037D133590739659DD423822FC350E24E3752A77484CA10556AA7B11EA87B877E8331E507B6438AD6860113455460CA1775D5B6F68B771F8A9468647F80B9E288F9687AEA3787BAE1A62780714700A51F45819EC854DA04BAFD82F0873A45F3341C6D031889614F8E0305988C3FB3171D3255D5DFDA8137ACCCD69430B514DBACB70E3231435899E051D061F7BC7740ED97432C754C5B7E58E7315670CE99443AD5AECE694EA96CFDE4A989E990791ED4DF8149E17787076DB6DB74B2EB984B85631BDF9A5CDA55436677DD9DD77DFF5F02F7EDEE9B4FA5D89C2FE261B3F73BBED5ED01EE9569ED0D89A8BE67546DA8FFD4A02F797D50E29776FA3D4D6D2C1D222AB8A3491B289E6E44AA9DB5EBFAC0669B6475379E4782ABA8D567B7424EFF7345BDA9FFDD1B1CEA2459DCEA8ACEEE2915FB67E70D75A0FFC6CE137AFBB413ABDE8A7E7FDD112CD1C7D57BCB84D6D8AFC72F677A0CAD9664B367B45E00056227E38871A8BF1AE5413A90CC487ED8EE09713906476E075E2F8CD36DB0C78672456CC42E908BE26B091D918B3E7D6BBC60418D681C91649F8E0B2E9855E8491906FC08FD17284B48B632C86CC561373847FE092FCBDE59274AA08B39546A870B29A5CCCA79599F258F5D2A27AF39BDFFCF9CF7F9EB43D5C0D447AC970EBFC7A04D904BBEFBEBBCC3BDFAD47430F7BD861877DF2939F4401C7CC4E747F5D23808F6BFE5716896113585AE857DD9BDEBFFEF5AFBFE8A28B9C8E45DBE9BD8682502A27D109B7DB6EBB9B6EBAC94C96DE0E2654A7360651863490CDFAA94F7D8A9A37ACC0ACEA6C08FCD08608702757990FF4DE40FB12C2F17551391B6EB8A18614304A9AA9EA843A17EA1D4CEF432E9CC4DC40A6CFE2A5173A1842F411378E868B494756B3EC8DB8B632A351D89FFDD99F6966F5F9F39FFFFC5B6EB98565E9C839EE99157C0AAC20082E02C8601D528DBA456BDA3537DA9732571E5C5781238138BC7B201AAA4D05505153D479ED953151E3500606349F4E48192DF42829AC83C7463B953F245F36ADB1666B8BCD37DFE4391B2D5AB4A0D19A6866B2ADB2563B9737BB62C5A34F3C51DE4A7FF2B1466973E58D66D1C8268A6C75D15F55BAC2BDF17E3151A4FE48BBD568B6525FFF9CCC92767BB3D11E9B1C9F90DDA67FEAA7F317CE5F7BED7CB4DD5D35DE5AB172D1A38F368AC6E27BEEF9C55DF7FCFCE147269F5839B972E5D4863172CAA1A11876061F616722F6701DD0A0FE67F480FD7E36050C8FB1461C0631E87E9074ADBAED366B949390F0E77E3806A7C7F7A3450902D37514BE25F0507C627DFF543D600B568740A27ED57284714237B0DF7EFB9D74D24931646A86813972CFB83EB482D10E071C873743CAE40F5C92BFCF5C92767631941D6AD620A38748AE733C6A06781A318348AAE3594B553814C5AF7BD37E2463CA24F66BD6FA482FEFF1C15173F824A2FD3DF28EFAC4CA96489AA85993EEA446C8FB1DAA263DA334EEB7BEF52DD20A8E84132F058AA8E3DFF4A6375D70C1057A461DE0B26C4AB4ADAA53E5BD617650FFEA3EF02067C137E18A603D3466E92AED676761B8C4716ED85DAA5375ECC158C1818ED4C19AF408D71D96AE5E5DB63C18E1254B96ECB2CB2E679C71065822224FA4D2D959B4DC80A9C6D96E4A0638B9FB34386EE4A51E6F437289B64091839A75D8AFC8955FF18A575C7CF1C59606CF7EF6B3755AA055E8602D12E09CB112A755F7DB26A03D0584F455710A7978ACD4B8163D31563CD6CA53CB4E4E6A33B5F23432DA7AD633D7DE70A3C5EBACB356A7D5A8C84CA44AA57D35D6BD5FFEF291152BCA905A2B4D349A996C6C29E03CEBF68A95FDDECA52F5F62652DE2DFA13CD72ED35F4495674B33C35F36691B526BB93FC53AE73ABDD5CB87074ADB5CB7B6977C6524F36CED8C478EB57E30BAEFA97FB6FBFE3978F3FA1C97872331BCD84CB65D3CF4F17B796EB71675C67337AC0B3E933840BCAD24637331A0730AAAB28E98C88C6A6264989EB8C02F3A58F3EFAE88F7EF4A3FA27288654034F9EAA02467C67D37B97EA5A5AE2B193717476535DB6C8A6E26E670BECB31C81E4B800D49143C9C13F7049FEDE72493A594EAE1D9E0453584009801CEC865E3D118FAA1BD30810B7972FA2E3015B41F83C9083D031279F7CF241071D847D80691BD121A9B6DB0C924A2144E4CC7D1A32C7FD743A894EAE47C61A8E10334021EE648CA180010A662DE2D835E3A6824797C808D3983B9F4AC0A05FF50040803B0445C07F55F5CAEB1EBD9633038AD0F30E5E09EB846FE9713EA01A8A1A64E7242E13811DC60D90628FD8551340455542188CCB99FEA5A8C812907EC81CC3CE9D4071A546E489D28849744054879D44D0C80AD8577715A2AE8E891FA3323111839C79C94B5EF2DDEF7E973DAEAFE8E947BFF3AC66F6366AA45F719452408F69C2EA9A2AC477EB0C0F8DF38E7348E781A5566EE99EB64A63D34D37DE6CD38D46C7DAAB56AF6864FDF9F3C75ACDD22E6EB7E406F7A435573CBEE2A1877ED12FD282917259779A65EE384B93BDFECA6E7745AF5F2A60A9E46E5752A69F671AA65E9EF5A5893329F012F6DCCF0A2DFA42BE71BB998F8CB4D65DB7393A9AF7BA1AD666231FC99AF35AAD790F3DB2EA7B77AF79D1C5B748544A071B703180BDB2F203D6C8031AD9FFDF4E9D0EBC74155A3DA79A51DD743F455D55ECBA1783459942F2886E86C15A61E207125490A6EA13CB44DB8F4FF541EC81E19160661ACE2D59264100C980B9A8BC362C5863926CF8FCAF7CE52BAFBBEE3A1EFF1DEF78C7DFFEEDDF125002B1F2072EC9DF5B2E49BB1A741FD120ECB9E79EE79D771E4C8A262AD0DF0D36D8E0FEFBEF7712443F7FF18B5F7CE38D373AF6E38A1D8A4F60867AE73BDF79E18517E2A66873E930EC24BB1CCC7B5123727D6FB13C9447CBEB2604337AC0D8A03AB9A606F641E4AA9BAC605D7DF8C31F76920575E5C1673BA0504D00C7C8802770F99CAEBEF5D65BDF7CF3CDFC500FABFB746E9BABA74088EBC7E4B79ECAF88AA57792061A43E8808A1AF91C9790D78C8B0F09B4DADB668BC13A472D038B2D9B0E62E57D2C6D60EFC067E2FE4E9C1070998ED7BCEFB8E38E9209E41A68E8E4CCBA6EE6A8A38EFAD0873EA431743FBA3CB4AB4158B1BB6321460469C619319306F017AA07353BFBECB3CF29A79CA227FAF297BF2C4F9DA7701525E95D473E38B9C6E4C95E4E4E38C16C12633851D65B2244028192AC67EDF6A69B6EB2C97336181D69757BAB3BAD7CCD35172C58386FA4BD669EC9F6197FE28915FDDEB85CD8471E7EF8F195AB168E8DCA2B6E95E2AE68E4E3DDFE13FDDEAA5EB1BAD998487288272764B032C9599EE9304D50AB29059CAD5E55FAC4EDB63CE0C6D848E719CFCC25A527C6FB4599501E49F9E848471F1777DFDFFFE17DCFF8F6B71FB8FFBE07F3BA1665187B55D4C8DEA769875AAFDDD85CCCB45FACADD98AA6667B91368E5E78AAA3AF166D5AA6E4E7B2BADD4A3644A4379B87A75B954948364B8FF9A77FFAA7975E7AA9CBDE3C92D91FB8247FFFB8248D56B51DE62541EC87CF75AA430E3964D9B2655899DA3E5A8DB1C59EE954F1BCB931ED74D0AD4E3CA7908DD38EFEFEF7BF1FA3918D9AB739B2D8E681E7D296FD30080B436100CD804AC65E243BA05BD2831C7DF4D1D45C519046D184DD039C42EACBE977C434F150310C906AE6322EA19F1C77DC713A3963A87F929E8C1643369DBFCC2F838F4C38432518BE598C24F18A2E23EBCD0E0F210D798DDAF26C49EEDCFC0A6EB1639CBCDE9C70C209F2EF2D8A63DB5D133DB93205706B0449456409ED9381C560AF1BDAC236615EA29F639C0102CD1246139AAA2C09DC9CB220314A488B183292426566E49E649F72B629E4A3479C7EEF3A918CA91FFEF0870F3D84918B2EA9E7262BFF6B64534E74517D397F744CBF7AC10E8B37DF7C735DEC8107FE9DD64BF3E697BDF6367A761923268E0145F5F8F8C4F8EA89D2A94DA5179B37A53B57E7D9AA225B55A2A07B2B2427FBDD55294F79B3AD5BD68F53A6916AB65B79B7973DFED82A0D7EA72519DD925DBBDEFA8D76A3DFEDB75291F7FA8DF2B076A3D34E13939D9F3CFCCC5FFEC7FC4BBE7AFB83FFF14B5D7446EC1523F2F4ED50CB6423058812EBDBD34E3BEDE0830F9661282F738E82D1D95E032218F88C5630770EBD785E11B06133B203D94EDC8C75F08CE7E75BF36A81A58F90B43F7049FEDE7249D2A7520F0EEC5F57D1BCE8B7C71E7BAC9C188FCFEEBBEFFEC52F7EF1B9CF7DEEEDB7DF4E78495B58520BE031129C4E0CA9A61A865F1089E9C63B9CD059734C40A9734DA204025617EB27929FF873FB82CEDA689911EED69860040FD489394D980211BA43E845C59228E1C9537852207DE34356324A91B03C3D97B405E4FF714BAE616391132B7ACD6B5EF3D5AF7ED5CB526BD2AC4C56E4038558FA90AEBA1A6A1D2C5B61E9D2A5864DC4C0351E3F29803DF7DCF3339FF98C9E91074444B0CB6C9D209422559911B248E0F3CF3FFFED6F7FBB671C8D05700C3709D3843D4BEA2A527C9BE499F0AF3E2475859CD432B03D6AE5AAB5FAAA57BD4AD765B8A817887431D4018345B007EF1C0AE69A16EA49279D74F8E1871F71C4110ED86804A811B58E286A1AB8CCE8245BD680446693DAD3A47339EE69C3C58B37DA78C3ADB77956AD685757972C710165FDC3F80AAF6FAA562A21A22BCA28C89BB9D64A2FCBB59457FED728E851A9CFF4CB876568ACEA8C68D5E66B2EEAACB7B83DD2AAB0EC65803ACF1BA9D9D0136645365A641B67CD85377EF7579FFDDC8DE3E37AF2CC61E75463AF0C5E78FA76A87516C044F39C9060D71CF4B6B3BDE8190C30AA171A311169DC75D75DF1E66968486FB2A2AE54B6204BB3E7C5DD27587FE9F449B34258CE11BBF91FB8247F2FB924ED4871CED89687CF29CE89EA302695317D1068FA09361C18728C54CDA9965C2C1C48B59154D44DE51C0889DD3F59D5DCB6FDC208B3727619141E0B40F7B6DD76DB5D75D55530F435EA36EC68A69D76DA49069CAE4BB602C7AB57F741C96B660C32230E0879F62991889D86E9226A0F3585E82ECF4575ACA7C3B02CB686AB78FD73EE0A7884C554114AC66304857B436F019163F1E3EE33BC5A8DC4D58C30453F61C9B9B380BE3DE8A0834E3FFD746E006C9A6F9B58143D12ECF246885956D1DE41E0CFAE8175C72D1C9808F6AF03E6D48001928A900E9625687C6E608F3DF6F8BBBFFBBB0113844103066B9956548C983FF9C94FB40CB4CE11FE31B29879350F94E76784A90AF46CF58F22E7E1FB859EB068E45A70C5C2F9239B3F77D32DB678EEFACF1E7BF8915FE0C84B1B56C65459FAB6E2B147D9A5454DE53865943D4514B48E6D8F2EC89B638F3EBC52078F8D65F3E635D75CABB568612E375AF32F053CD92DB2BC284B858BD41A59A333BA5EAB33FACB47FA175DFAEF77DEFEB3477FA5C195FAEF0D089AA77B875A941F32822D044694E0642C39FF355F45DD62086803EBE1DC73CF95FF4750544FA447981175126135B3E5389DB084D71EBB98581057FC0397E4EF3397A471B03A5504730D206681BC6615A70166AE8E211B877CA76F0113170DD3E816C7FD9B6AFBCC168C632DD8B21A643991679E79263F89597C275C6C38FAB431651EB7B6F38203ECAD8E7FA2B7FC204C9C0F76EB59F6A921171EC638B9F8674F52A6E4B9A68305CF50D88CCBA63393B09CB804B51BA6FD1958E418B24E39A3BD88D235EBD6B9A9727929C226A1C07E9F91FF0497310518840E5B7FFDF5418119BA64B56505CCDCF1136E431795C97BD65967B9A8815CACC7C4F1F668E03A747CEAA9A71E78E0815AA83243497BD15601AD11D14251D2FAC6307C237AC3074CD5017B5F65A12DCFA0022E1AA8E122E9A44596A46CD21A8B46D67BF63A1B6DB8F819CF58679D353AD466C903AEB64A6F2A67DC6ED92246FB325B73A0A0A58625330750D0C09EF3C6FC5513925FFDB5D76ECE9BDF18E9149D7621772969E9F672A9D754F4A47DA5D5C7C6D66C9597D6FC759E9818FDDEF255D77FFBE1DB96FF62C5E3BABDA9E40AE21B9B485B9420F9D3AB436D5ED377A73A9D89C8203CC5BAFF6F80B0685F4A5333DA81317D5EA3588B047863A3684766F2D99B3783B3A0B015D120415092C2D44920874CFEC025F9FBC625390057E18A447D30E922E91E1E8CA9C79A7577395D515F115E2AAA56B85A1EC71F7FBCECE06DB6D946561D266F44E2F84991E0E40E717AC8F001C8A078DDBC2266473086DF41CB4838C53987DD7AB397536FA6135291F5A637BD897AD654339CE8CE8F3EFA68230C9CD2D2E869ADF2ECC54CEC75F185BE312824E6CB719CA43E6545A168490C6904C0CA45DC780AC8F988C6B2A69439AB3BD4ADBEFFFDEF97174B4F3C94BA331A59DD91D0812B362FDBDC50DFAC66CD642BBDE0052FB8FEFAEB6D49E075B0901CEA47F04A7F6BB73AC1C79419B2E73C20E91B8B53F62C017F407FFA27F0E654C393A58C4F3BED340278C0899C53C74CF1E5F2AA59936B2BD21070AA54DEA94E2F399B38B5327A934F2AE0A259FBC1FA6FB2FAB4BB707E6BB3CD37D86AABCDD67DC69A52AF238DBC4A98F72B007AE94F4F76CB0063B335423DA53E37FAA984ECCE8282EE8EAF2E523765AB1B65AA790A05AD4907F62CC5DD6C75162C6CCE5FD868B67540D1960E2A73D225A5D62A79CBE570A476ABDD698D1669A5AED1199DBF70D1DAF317ACBDFC8E55679EB3FCEE7B1E5DB162A547138A168C6836E4D3AB432D1BD85C07C6C5F039CF3207948C3BF7FAC03BE1418055B3CFA5E4F6DC73CF134F3C51071F72C821B225718249FC205CD0A69C76EEE6CD7E2893755867CF76FC1FB824D3EF0797A447D85456F8828497C022217653EDB0A61A2D45E682CE075AF6EF79CF7B34DA7E5293E0131C02C64C22A398DE2021AB095830C1CDB0E15B1DEE601F755EA4F4D11D62CF99D18CB0846E86672438415DB86EF8E28B2F36FDD195575E49FF06EC489763B9303D9A53DE53D1EA8DB1687601CCC970AD6048C9A4D07E6136F53AE79C73741B7BECB1C705175C802BBFCF3EFB5C73CD35247A08CE0F03057C03F9F486CA2E67A7E33BA01934B4343D53600B1EA585C06CD6BDA7000438E90E278CF1A18DC00AECBD8024977CBEF0C20BA544B90A6B49CFAB47901DB3D34E3B9D7DF6D9261645E53B98AF9F48D34B82B15AE89608264083BFC1061BC808B3F3E6A18E8B81F358AED21D87A4B5A30853421B2B152F0A2F274D0194BA95D2AD3666197C9E7ADF6AEA4DB7D5ECAFB3EEC2ADB6DC6CC9969B2F5C343AB1FAF156DEAA0550511925530498AB4B37A3ECD20A7F21A35652F1CD1F330A3ACFC6BBBD27BADD95DDDECAF1D512A3DD3C9BCC1BDD86146CBFFCBF5623017BEEB45B63F38AD1D1C6485B065DCA4B9F239505488D4E2A1572A73CB859AE83662ED13129ADDC6C8E2E58B8EE1AEBAE377F74ED2F5E7CEF399FF9CE23BF5C89B53180BD3296AAF9F4E9506BA4AB8B2075AB1434E390CD1D488F592E0C02360042DF0921AC04149B6E922098CD0E28A9496E41A3FAEB346FE6D232BAF5149C3FD2840D2BEC88C977944F03AB3B375545C4B21195752AC85B05954345238611944F1AF9AF7EF5ABFA2AD63AEB5A920BDAB76C6F6E92FC13DA4823B0EBAEBB5E7BEDB5183A51017BE41916C25618EC03F12827AAA354F5A9AC53234A854931942FD5709B01FF55E68856113E195F114527185ED4445A2CCB958F3F11135A9EAC7E2A60014475E193B9FC345E91C503E18CB3031AD53FFBB33FF331C8594692DB704C880358483C14B4FE5945811EAD524C2EEA8B3883D93411B53AF3830F3E1861ED06074CA5D86A832F668B5228E7EDD70D778BBA4A73E38D37A6F6DA8D958034BBBEBC3FBDA9F080364A55E825468CDCDF97F089A61E74154004BD37CDBE4D310DBEA6AF5FB5CCA176C349A898D4180E417327DA0EB0393A0FE2A6EC681A4A9EB06030553198CCF89807F6E6343D7180C147FC9C909273F00816DA25B914CA984D96AEF4E27DF7DD1707CDC6B1E3796E6288B68ACF8BE8430113ADD16469FDC31F9C2AD2665B008620B0DD8AA1B654C448008E4D913607230C0FBE1F3A3F66815D202E300E70C98C3FF4D932BC2B97FA3D09B84FAD19A5619E261B795A7B9D459B6CB2DE861BADB7D6DAF3474B4E95347F6C518D70A9606CFD49E678D5CA7174066DB9BC981694543859A755C9B14CE27565A9837BE3BDD52BF2464FFFB55B927165885C8F295DDA6EF547465B9DB17CDE68D669E7CD466A643A4F31315E8402A4D1327E9C3D5124FDB09F32A9E346B79737DBF39FF1AC8D17ADB9DEA34F74962DFDB7EBBF7DC73AEBAC0BF463187B458CF1E9D2A1D6045279DD88C2210EA71207D25D51115AA8816B60BFE1587B6D39064B63733600D23F762CCE029330F6DC6C202CCA51A41806404C7378EA56485CABA8DB760137E59C9A4A5A146BCC1101D8283C91351C1B60A071480A6CEF1E13A60F705C246CD2B7279E78A24CEC48101F45798CDCA61064B3B591AAA4295CA1B1967AA0162B2EADAC662A906820DE9E87FE13C54C952456094450CD406EBFE184134E38F2C823A59271FDA96EC8A673DE6555F981CD05DDB6268E1C9E59F7DC1DDC201746C6B4E1038C1938CD11A862C1671967FB0CE246D2C02E848B8F69CF1E9CB0C667BFFDF63BE698636CFE222E413E4752D5C6F476847EDE22948C13B8024EE186E279DDFE280F0DEC08CF6435C78EF30830BE39ACC56CEA2BE48CCD0BAE0E7715182E6B20DDA11406AD75B85BFA096A1CDEFBDEF79E71C6195EB15615712B5935CAE8DC71C71DAFBEFAEA7BEEB927AB791FB5008E3DF65882A5E82AC49A96F7B9E79E8BD073A98271E3C32807EE217EA85F69CCE55B6735B36F51D7D7B190341D8E1BE9E0ADB7DE1A6E5A0AE5BDBCA94462C0ED6F4499C0CD8099C0DF459D611E215A01B2811B2027A2E5A7E745663A061E59AC5308E498F21DDF29AF3B380D0CB2F7BBB71E4CDA2F7FF9CBFFF55FFF154B0257DB619E2C46CC1CC72F75646AFBE4D5C29CDA21ADAC377FC1D873B7D878DB6D96ACB5F68289D58F359AB26A17AD7CA2EAAF99152CBE76BBC963772726B927C42222A0124925D4B6045A3553D69848FD55DDBE84E644DE7D226F948D08A580DB9DD42AF74E2A53B9F3E4AEE51ADE9156D62A9DE67E9EF5F262860224CDD4849669158B2E924C723D6763D11ACF5E7B9D678C8E2CFAC6F5FD8F7CE44BAB574B1ECD80BDB2E07B5A74A835529A20BFD9DD2EBCF0C27DF7DDD79DFB66536CFA96AA737605104A788BFAA1771897D3E2C372D2B766814F751A46AA4E9FE82F17C5719F8D83BA98CE60ACE7323BE31CAF689144EB5227D1DC61DBEA41DEF086379C7FFEF9BABA8E79C94B5E72C51557A03BDD9B0BC918E1366E2341988EA71BA84090903AF3CC332127D191121F343C60A6F4D454F1D97F724E084C0D36966B84BC00586C8B172FD615A970C011611D46494AF4520F8B2827DF8F61348C398F51C7387ADB6DB7DDDE7BEF7DC0010718EB8BB78DA39CFA453EDDED669C277BDDE73CE7391A610392F14BB4ECF5B9A439FA09EB0DA7CA408448E4C9C8E3CDE0F9C1D004F994EE81F6E1DCFC861B6E78FFFDF723E634BF871F7EB88C1EB7D4D56FA5FBE50BFA914D6300B24F0750756658409A6E5A1575BD1FC850AB5EDC53C79F6305609A1E28EAD5CDBFD99B361DBC32639CC3C9C5E8B7196D8B03275D0546890C8BF6A31E79CF3DF7F4CC5226C0B3E8004995A38F3EBA51B7FF33D66900051D13C3EE153BB0547C18C388D5CEFA917D46B76FE06091C7342E39743CCBCC8E75DCBCD8F1FC4473F7B297BDEC861B6ED0237B52206337BD8C53E6260CA7002926DA106EBDE91D968C587652891C9617B6E64537C3624BC17FF0DC6910745136B8D78F91F0311065BFB91F788B59155928C4276E11B9B152CC01A7E0073070E54165E429976E6C64E05AF590722BCB9CD092E76DB4EDF3B75C7FC37547CA76C245E589665EC44E7D31A9D80E401800CD9330EB947D06CB55DB9202CEFB795ADD2FC68BD46D16E359DE6B9665BEFD76A73FD2295AEDB2D86974ACA5CFF3ACDB6AF41BB9FE2B8545A31273830548A92FB778B2DBABF657A348AD5E91B79A23CD86CCC94E6AACFBF5AB7EF52FD7DEFB9F3F7D7472B23B80BD222BA9333F2D3AD4C24909B2C02046D70C90B904EB349B568BD1E05477E021B08929804F43EC88EDA791F9F33FFFF3CB2EBB4C17D210D9D633F8288524D91C17A55A9FBF697A426BE015A1E05E9FEEC5ED942A2A1F1A19F03B18B90ED53AF293EA7C6AF4DDCD921379546084C0CB21FA2AAF85102819239DC180C958808B9713C3E61477412B6F9E2C7D75F9E597BFF6B5AF4D751D5A23107103DE19C04B6B9C71B8F14E5C801B5F59DDD1013812B90986C5C3081302763D81843C3DA9EFA3073C55EF5FEB0C0434A210D31310405EB74765D7E873F34FA59AF72D0D15194720AB4BECCCA2A0F38093D763A26E89724B91E8937BEFBD175D857F83FF404441CF4EBDA6BE35AA43C7D04010EB01C34B43E4208A4BC331F58AAA316B11589179520E73E688D5CB3EE5D26E7500F76F0AB10D3F9D63AABE44B424188D65CB9649CB7266C454AA128AC71F7FBC3CD48140450C9E4705365ABD74805BB9C4C25F97EAA6BA96971A27B2578EBBC41D3110FC8B6ACC924452C202DF76368854F68ECC0B08E1ADB17C157C0CD470AA4BFBB6D9669BBBEEBA0B0B380612525DA28638855B9B7BF3EEE6E97054F0B222440EF1625856AA7B69D8A1CF439B26FD50EFC907C78897B5BB19B319A814CCF119C73323528AE987CB322583F2AC54B8E5FFAB146AB909BB595E6CB0E1B336DD6483CD9FBBF19A6B8D256DB7EEEAAC5F86829BCDB6654DCC13A071D924BC9F62D36D8E34AA0793722D2B9AB2C924055C4CB6B2D59507DC6FEBBF91A2DD293AADD468EA4D5692594A37EBBFA61CDEC4658AA102247DDAEDC968AD982CCB3B97135D0D8166241F9DBF60ED5667EDEFDCBCEAC2FFEFA69FFFFC57BA9D01EC95C57DE37F7D875A680571D4F45E7EE4F2E5CB536DE7366A46E2D91421280C4825F573A9FC9D76DAE9C61B6F84A698F5AD672709E48DD4AC3AAACAB474D70A187C3444C83BC292E8E319AFFB894F7C62FFFDF77749864C6CDD0099F5195F594DAFAA51D280634B7ADBE048D9BDD03FDFFAD6B75E7DF5D50F3DF490F618EE6F44CDC4B465C4D6A5BA68442731219A7EA5FDBC74E9D2030F3C10BF13216842419734E0379B8587E808FB5FE7D110C1DF49F85407FCCDDFFC8D39E2D1B5980898D8E6066209E9424C901E5F5A87ABDB761C4603C518B8C31514F640344FC0405F699478D27281AD5A0DEA2AAB2543B955AB8D26BDD5A81ABD694096562F40C87A7CDC2F080B4D871973100400FA43B4FBDCA711E92C398E34F6D52525642BD073F82534E0E349B168490DB226F3BA19003362F785EB129DC6C73500135F0AB7D8553D844C387F64BFB24E75B14A5155A3E913A05E2E19F06C5AEC3A2A6051435EC9E047A37EA23E66B3133E2171335C61688581767749349FD3C596DC4D242C33AE05B09BE3A0B1BAC6F1981929666D7FB808DE828EAEC6481820E5AE48F6224F35111B16A7210BFECA0F8296B5E4B1DB635896C526AB1D639D47E0A11804D3BCD8334E014895D58C6671DEAD711BF54B625067903832B3D330020E8D8EC530304D5336A83FB5C5AD91921376FB1DCB7B937D4A8F4A9871EA962E6633DF7E87FFB378BD673C7BF1BAA3635ADC2B4BC073554C3C515F3AAF7BCE18995997274DB80CA9BC5CD6E2319A152F98CE5FA4B200A993AF2E156DB354C0AD4EBFD396075C349AA9ECAA2447B951EAE0CA094E5306BB6454AFE102A46A80CA01EC97A1E9AC74AECBBF0DE97BD946CDD6E848675EAB337FBCDB3EFBDC5BBFF9AD1FCB4B713A5D8F4FCBBCA74B875A56157E0CE25B07EB5B89579CA454D9CBFC70F8E564956BE00CC8F4CE77B770B358B3D958A39E50B70727E0015DED6CA0AABC26F38B4DD109EECD787C51D7F8EB8ACF7BDEF3EEBCF34ECE6C63939F73DD88F58D1039B65CB76E57ECA7C60870B2073E3997EABBE44607D0C81DF31C2211593CB7DE7AAB26548A876A1923DA181C5F4E5F41B2AF93ACA85ECCB5968D4C1937D5A0890AF502111C2465A323B5DE74CE0B2EB8608F3DF6F0B5162F5E4C016E1A02A6925004A58F35A03B912571E69967D2BEC95E7B51D1C26CBEF9E6BA19C962E087B64BACC2074C439D5CAED891471E197BA14B6D9C74D2491FF8C00708BD380C3E9017F727885D368251C7ECA32F7DE94BBBEDB65BAA8325FCCA3BC54E8CF308D190C2DD89DD67DD430230B63B260D38DF3198E11D1A090E3FF5A94F1D70C00114E7E008C67EDECDAAD333615E129034A820D0CD6949D968A06486FEDDDFFD9D7ECB2AF5C00EE09C4136E942BAE8473FFAD1FDF6DB2F55B623A71A004F30E084E2296274357984E622A2F1D1714F71969CF98E1E9BF311595D09C6C6D7C9D96B08015323D005C16B324EBA368BCCA65EDD95CEF07EE708B0596D36F12DBBC92608712988BE39F2BCF3CE93456BA0A8B9D0ADF93C8931D266265736A93C07CD85E94162E04DA7A25E2E763772B239D2FB38121C9F3106C053A88F288F94CC954D0D74CD135F62141F5FD1EF5284D42852590BA4ED3C7FC1D88B5EBCEDBA6B2F5A7B9D35E4A44E4E48A2492F4A4337578DF79C34E2C2A9AEA34001C7F63E180759654C9455BCA5AF3D59160117FD56AE3DD36B36BA8D66B7CC04B7FBAD76CA1B1261A56296EA9591D0CC4B8074B53A2AAACAA2B16ABC54F565817251E9B9CAF14D79BBD968F7FAFABF6C6CDE5AEDCEC2D2D996575C46BFC7AEBFE1A7679D7BE38A1553B111D91C1A01E4E0D3A543ED5E7BEDA56D76EEB9E77ADF4A3AFFD55FFD150B71B8AFE2C00B5DD2ABFB1EBAF376248271EE70975D7639EAA8A38CA18551E4FEFBEFC756D02667F9620513999F03800DAC469726FB7BF6D9674B640F04B5FC8A0DE63426D282DE24114C11613E68567E62AE662387A3A59C824F83ECD036233889F444CAD8F7BDE8A28BDEFCE63733C2D24CAEA8C1FDE23C035E1DE83668AD0C0E201C4D9A00EC581EBAA0A7DAD036E0564A5A23CFD4004F7570B551370048018FCAFB3FFDD33FBDFEFAEB4D67E1FC881E8DBB925891D245626EB2C9267A7622E4182B7164ECBEC760DDA69B6E7AD75D77693041CF3205B65AE8A9AEAB90F39ED1038E1F46598959E016055C9D963ED17B4BA18F16F746BD1327811F543335A34991D7B5FB886CE2E79C967E62D16F86D730226BA811D0DF77BFFBDDFFF00FFF20BD62DA0AC4A005BDE3CF3AA106FCF9CF7FBE56914EA2E7FACBBFFCCBCB2FBF9CE6014821DD3C1BC1F5E8C6FA211FCCCB1861B303E839632CE06E731B0376C421871C2277C26CDE03A68CB33C337AC0DC0F77480089A267243C2D9BACA508E7D8B6D018BEE0052F904C0381EC7B76923E5AE40C17BA0384291A247690649D906A31FDB85E040F8C0FC745219DE73E8C8CA41B23EABD26FD473FFA91ADC6180AD585649EDE77DF7D844C1CB3E4315D5268E22303AC9CBF88A010EBC78407CC04D89F9822BEC92BFBB4549392D193FABBCEBA0B9EF5AC75B6D976C99A8B162C5838D22FC6C757AF9C98589DB3839A1D2BE066DD9A2AD5696DC6CEDE61B5F42B56E9AC51D61EEA878514F0A4F651D67BAC647E4E937973B2D5986CB67BCD120E9DB53BAB1A79D16A96CE7115884EF67753D6ECF55B7D29E3A2FCB02C1E4E79AFD003744647174E4EAE2A74739D75B2D42A4A6A6B793F6D49C59F3C38F9B193FE65E5AA293423EB00D9F1B4E8504B5A916292811DA84B48464BA4EA71888F5169A037911C801E50DCA771A1BDBA1BA383DE36CF67CBD1623CCA5FBFE5965BA49211D06E8998EAE2C8A9DC7FA7A32BD2C516FCC8A73FFDE97DF6D967C6844A9A9D501AD341BE912EB47CF9723D08B54C00DAC96659A0E3FFE128B3C361ED01158886EB5794EEDB6FBFFD35D75C83E5C16818AF84018ED6A73E817961482DAC755A7DB8C5165B5C77DD75FA612C8292E6FECA57BEE2D4944E48B3F454213F77DD75D72BAEB8E28C33CE78D7BBDEE5A6AACE3BF24FAE089A2C92C644794D916556178C998C09DB0253527FDFF8C6376AE4F5ED2B5EF18A2BAFBC32859C992FE78D0CF88E70623F5030E2FCC5BE43A9EECDCE72B5F1C7F1C31E3061BAE8011735B32E260249101ECDCF1B812666C358B264891E1050218A9F136A4EBFF39DEF68B79E70C209871E7AA88E74D7C8A883B39A2F4803F8C217BEF06B5FFB1AF1218CEC54C708C1EF10D220A6FA246EA69A29DC2C7AE741C200D503B10DC7F609CFD27231D5DE185F99F7862BA20C34087FF4477F247347E7D4998991CCA88063F9296FFEE99FFE69B7DD76E3EA5AEA3ABFC613AB4E27D70C025AA4AC31D6B666439078B4830C719D61EFBDF73EEDB4D3DCF3D479375645F4209DEBE12B077807D643B36E796499E62CAFA130B4DF767609CB0C346B3FB4CDB03A0703EF3AF2684AFADE900F203C9CC92689C6A603F6AFC77437087015D06DC67582AC205DA5BB925946CC1F68823D604660CAA2D1BA3CF6D86331C983755A0E4069E7F6C17F4B193CE3399B6EB4D1461B2C9C3F3636AFD3EBAF9A58BDBADB9BC8AA584537F006B06E383F4B9CADE8855E8632FADD32449CF2D4AB50643D0D8114B0B4F0A329EBE76932CB65E04CB43AFD66AB68350A8D92FCE066A35F9627E5FD526F477F37B5B3BCD56087972A3DEB158DBC31D66EAF51F427522683A55D9E3E95AD0C3B236332B056AC4C575FBFF2AAAFFDEB132B57B1569E5E1D6A0932A3E38D7EA26281BE75FA1C804CAA19918CDEF4CEA4E25E076B0D1C74D041C4FA6234CF05A3A9A6EB1B7EE5359B23B150B7321CCE51F965618D33E7F64DC381CA34BD7B4F7C616AE8595033A08841A20D83013918BD054E92E43AC05A175F499DD3D413CBDDA5AE76AC2D2EDD7306E16B265BCC596D66594EA0C731803492BA3DF8074C8EB8F1C61B535E625B9BC104E343DCD232117562B4AD4E480ED8A8638F2A363B16496495910E264F6F2979F2C9271F75D4511897C8743044033DED53ED1EC1CBC60082CEE33CAC1CE0A3745C4F558CE798638E39FAE8A31D099C4301F3687620F4573B51AB8274067E89B91263DE844FFCEC364FD99545A8FAF375790A2B60E7A7AD8FF5389ABE2C54D6D121C3FC53D2F41E43ED38F40DB43CCCC8F1C71F2F65CF5DE900DD92A6DB5C13CE8CEAD1E8BFFEBEF7BD4FCA0C28197391EADC30A166EF4A9E7DB610B4794329B9C1561B605FD1E2FCF18F7F5CD4F423697A2D56B3EA0E441C7B38043D004D20C3A8D7B9E79E2B0949CF1203D0904B26D6B0F2039EE23C4B36BD126720BDADC1D400CA37255C5454FD2A682D85C2721E8D5DEC3ECAE61547E43ACBF6DCE73E578FAF29237C95EAE8916140AE3771A7732F30DBA003B2C845A1A4BA209CD185EEBDF75E6E0649926AFF0A1D5CAA0CFDEFC4134F3CF2C823B16151D46552EAD15F6AE42A9C75D6EBF7C646D3669B6FB2C5169BAEB1C65AF3C7463A9D66BF98E84E968E3C141C8FAD5A61DD800246210DD74BF166A2585DFABDDDACB47DA58DBB13BDFEA4D65AD65F5595F04EE48DC976ABDB1E91C62D73CFA3235A4992A1FD76B3A4A12E81D3C1DFEDA746AB312295A46356AE2E7B03371BA359BE502BA1D74823A9333EA1792A39A5DB23C5A245238DD6BC477FD1BCEF81F17FB874F9F7EFFC91B6FFD3AB43ADA3494C164463F870EF7FFFFB972E5DEAA88EC957BDC2CE3EFB6C799C94219AFAD13CFE29E44B526544932C9C9B98330578BDF779B36EDE996A7839506D9026319B028622D5C037FB61C479E608657BF48C1F713C6340D667A1AB0F73440A2055CDCE4C7C6D5C953501760C660DCF68745B0AD00CBD34B092B9DA6FD484E0BB109FF70D58D6D8A68186330DF5C6F17A23BA4BC0D3F9CE543B82607169B4E7042DFD22C12113B925BC61B17EF8E1877FFCE31F473A9BB234AF3B523BFC8B92E33123CC9B97051CB17A1C3E27B318371A0E3ADE9B8650D0FDD01BC7262FE704910BBB64F435534834384EA04796A69796FDE4273F59D41C70BE4FA391234439BA045E308C333F74C49EF89386547F5DBB05E281782C95E23AB3DE6CBEF9E6D216941D7FE0031F9024912E7704DBF1E4013F8CE6C4468DC41226C647E77FDBDBDEF6A52F7D89840B4F3123088B93EB00C93199D7F8151402E132422E4B2655EF3FFBD9CF1E7CF0C1FA0ABE086E6C2004ED7DC423501490AA109D7EC89AE78665EBE82B1E8DA9895CBCFA56374660C328C5A2EE131A9F37D51E8B1E5CF6D01D77DCC1D4100C0029A9F7AF79CD6BBEF295AF78D65812AE1465B7B292F17423E75DAABB3D62CA20948653391CC653702ABD0C60D469A930F44A8693A0EC04B8D146B8D4A9AE0FCAEBB6A15E96599A5E406201DA94F6A3ACAD6A41B87041FBB95B6CF2BC3FDA6C7464D168093149DDDEEAC989AA5A3C2F1D8BC7279F880A186F03316ACF2F0577A49B5616FD92C7AA37D12B27626252CEB4646FABA2BA941BD068763BED6E6724B53B59AB994B664AEFB69A851CE266DECDB3222FA6F9BB296B359A1DFD4FDA3BCBDB13237A8C11E95D190A3A49A3D9EA755190AB16CCD7C16BAD1E5F4BF2F65F6FFDC5A7CFBE787CBCFBF4EA504B0B55560C19595003BA81254B967CFFFBDFD779B6DA6A2B6062EC3D7D65108A4D4B1C0B2D172D267D65B645EE903A7ABA5A49B4CDA680539DE4709EDB380854024A4E32912428B5E0287B8D1B7965C2FE286027CC7A75EFC8D95EAC2E0437FEA2056B0C2AF072E16614B2BE3D0E4037A393E8972583E694534E91589799B5FDF6DBDF74D34DDE66A9F2E0295E2206404784BC661C8C7CFD032F1EDF1018C9BEBBEFBE9BBE059480E38248F16B7569166027D000B230E655AF77BDEB5DB29E11C4B8A42652480137CB15A106D33961DE20270D15062E38EC548E30BB3F414C4C600FE1B6F2137AF4D28A2ED50DECA8C1352866C0ECB034E78DB15791D5527FCB562E2B5644FE64403A780F66897242DD5E0539AF54599F14EE4B17EAAEE466484933E603109B1811952ED46D102A685444E56C1C365D0A2D8475F58F7CE423279C70C240B38A2C101EBDFBDDEF3EE79C735215AED7451F7CF041DDB07696DEB0CDEDA91B00E5EA4402A1D132B6626ED45D4FA26AB469A26FF7DB6FBFF3CE3BCFA5E736B50D4866D6480EB2F0185B620F34F4CD86CA6608E4BAA80C4BD1D0045C4CAD64424DEC446EC036E28089E9CA9FA2E6A6400465753B26864B238CF5A00B1D7BECB15AF6687DD070A93685637D94878218000A5867E60E07F6A373E4BEA8A5B45B081B8897D72DAAF05B8ABA981301A8BDACA190ECA56ADF752206CC7A104A1A160AB6B833D4C9949D9E8AD1B1720574278B76272D7EF63A1B6D2C09F38C858B4AF535A550FBD5DC5463F7F8AAC78BBAFA985219E2E046823906C5584FF65655A2B65F5E6182247125474A82C97E89BA6A6BB5A5D131F9BE79AB9535F3879A8DACD5CE3BADA2553AC1DD546880FA2B5616E4928BB25F4327971A96CB98B71A9D7E2ADA52E8BDAE9EA5373A3A2E4B256F8CE5697C64745EABB968BC98A7B9BE63F92FCF3FFFFAEF7DFF1EDDD4D3AB43AD660AB00C6681D7B4719E060BE0C1DB2F240EA9B3C5A698C64646AAA0341D9A9FCD4EE8C1CA7104D57B9ED019C92ADC32E0391A31A010BDE9AD97F3D0D382F19FA36B107361100702140D3AE3C118CE24F20173828104AF4B9CB351F7AD63A1EA1EB45DE1264B017FE414BEEF96E9D0AC39C94AA71AE3C5D2106CDBC36B7446165A48B9D2DFF66B31F46279D01037052C3A10219DEA80030E38F5D4530DAED4A4EB5689A39A5053230F830A71171CC7883A248E65EB7038EC195F047E6CE65B02CC062030F1857589D5D86EBBEDA6AD94552595AE4B7182466F3465EC50893C6C4D07DE2C67EC6319EF4DF412CD64BD1BF9AD52E8A6EE15DE9FDE788E203CCC3C3680CCB74C93533611021609A06FDD2F287AC079E08806B4C12642E813F624974C6A5CA3A15D2C738A3E13B1DCD1F61675CCD86AFAB9C33C8CD281071E78C61967B836CFA60CCBEF2D6F79CB45175DC47906427464DC190152065E182CB9BCEA61E55B9A6D9D6066613778EFF015D3ED401AE68E33417C1ED76A4447B396FC20D1F7639A30A7F8D0E1E2588ACD859015FC24E2C64934409D4D930603B2B8BA8B9DD85031B5CFF3C2490727A8DCF7A9766396747A98329EAC95216D362207ABDBEFA5050B9B1BACBFDE061B3EF399CF5C6764B40DEAAABCD15E9500A8C09F13BDA92416F004421C8DBA5DCF2C0A385558836EA5E6FBD546283ACDA26CBDD028F937A4803B2379A7D36837F34E7B4509C56A69708B56495129BD3A21CDBA6A5C039D9755CA79A38255B7F2EA4DDE99285DF15647CE73968FF6261FD1F2181D5DD06ECDCFB391A2DFE8771616FDE64F1EE89E7AF2D7977FEFFE55AB563F5D3AD46EB3CD36B7DF7E3B7136A25EA8B7ACA28DD4918EB118D700565927F7CDA49AD6C74923842CF5FBAEAC705B85811E15F1E5449A0126B1C02926F6D0795EE5B625BD930DC0B1708C409EE19785B5611A8DC0CF1E932E697A20DAC63E9B0A772AAB4801E39E9140DC76DB6D6FBBED363685CB0C58CFC8D9A2EE859CD59C82005CC136EB57D15276D421A6FF2DC5ECC75816C4570A0C44762875ADCD36DBECE69B6F26F2865B10CBB424A37557EEE7CA69DDEBD0190A2750F0BC59158C89019F968FF974E6E1F872FD6E445CDA7B98F1C5220751E884655635A4FBF18F7FECB6C7265721EAAB2762A6A2D3EFCB799460BA60FD3308C64C5963C51014C0280C5C820AA4E1FB816A3B1A46006B639131B74138C18101AC5E24B2F52E404830EAEE2191EAEE49595DC0E6C16740EC04BFF0852FD4BCC78B3A1002BF0A387CD7313BAFE93310F4423E98815CABE86FFEE66F4E3BEDB41915B03F61937A4CFCF89826B4EE880F3BF0CA028395A69E8831B158DF8CD1246E9F1513C99A47C8E062E83832AFC51D14778D394AAD3BD9CB92B7515CFB2486CD1ACBADAB4BCECB1F95E1AB3398F29A911F600173562B5569A322C0D475862C92AB7950CA47EA69561A7AEA54A4673C73C1861B3CFB59658FA945CD569E7A75EEA15F5A58E355D9A21430E21EF80FB4992681CA6AD62E8B1B692B56ADD47775DF53818E4E855D2D7B1FB54AD5DB6937DB65C45BD6CAEA4A01E7ED568982CED264EA4FF48BB27AD82679236FF92ACDD6CABC59D6E18D74E6B7DA63DD89271ACDEEFC798B3AED8559DE91EA6D8CCCCB9BA3FFF1607ECA2957DD7AFB7D3FFFF9D3A9432D3786D396AA0C6B8CEAD887C645E62AD8ADF2CB698C4156CC8E4E39B58B16D1ECCCF6A3853E00AB34FB0B13DE491D1BA145A85E30228F906051B782E01EB002B1A09DE38CF08D19F7B0B3AAB25120BD2AA6F3AA47B0DB8C27D13DE8B79A4DF279286013EEA7D0BD985744A839C48A29AD4F36DF7C738DE1FBDEF7BEB3CE3A0B6FDBB815F642AC0B1FD0A9718886055FBCFF81AFB83A4953DB52D0E07DFEF39F7FEB5BDF0AC68A88B116861E07B9EF4A391B7F9C2D55E01D249D0998A82942D6CC115A1F489EA500A69DF17873DFBA831B56145171DF8CF10408E8888E199894E18172C51AF613F920245EAA3447BF26E2E0C3386BE892484C31FC80B6A42129634D1212D38063D0386D4CC47EA0100E2A50563B09266CE8134E38E1F8E38F87E44477F5BAD7BDEEB2CB2EEB55ED9234087BEFBDB7BC583B85314136A036008850CA5F54F45E8CA17D470E460421649CA81A98B898A98DDC61200C4C1B39DBF2882F1380A43AE4107D03A0218C5B2CDEF55C3398EC59368E9E05405C9ADE9A37BEC8D391F6D23E3DFDF4D3D998EC8EA38E3AEAD0430F6582C852C37FA9B3494CEDBBEFBE279D74926B469C2C67FD10FBC1D64420E3EF9A27BC08DDB2818E96EEAE01B190FD1ABB3BD9D329F4B37EAB99D6DFE05952C06BAC3926B7B6D56EF4266AF6D4A2146DDAA0657EB10A72E2FEEAD641DC906688567C30E0A71470AC50D2B49629DEAC6A3EDA6976AA7A8666A31CDCF6BC154D29D8765612639539E0C9544C961C1C79B7281570AF52DBA5F32BB7BC0A4794466EB32D6B60C1E8C8C2A25C31DDB1790B473A0B9BB9B46CAB68E8DEE67DFF07BDCF9CF7AD6BAEBD65F5EA09CB2F3D02722AFB5FD9A1165D8543409CD9ABB351F5398007C0EE26376C7434F214725DDD9873C6B60F74FC1E7BEC71F9E5973FF0C003FA27C8C629BAE059646E446946FC48162AE1EC986EB9E5961A0A8D8F0F0356E6F2761ED0FC320808378DC86A6EF7196FA608D55C2928B96C4E5ECC34048A890908BFDCF80F9B0F831D316D66501D2697140834FCB78485E886E6D0747C8498631BF0DAE320CF78FFE84EC394747E7D420724BDE433DD79E79D6032F174DFFEF6B75F78E18506E8699031DB23EF1B1DD3B28AC3EB95AF7CA5DC2CAD1C0B7459242F78C10BBEFEF5AFCF2658876F7536EDEBA94774986A98E56452E2888561B13998914FEF6834E38BA56B34104B28D5C699936E595DA909AC264611F2E904A5D9F4B2054765230F94EE5F52FEE0830F96D46679E84350693267DFF9CE772E5DBA548BE7924B2E79D39BDE84D9A715E2C25F4A0F48DBFB41004EA6DA6A890ACCFBD7D364BA0C0742B4428091EB5AF271CF3FFFFC81BEC57920B074E9C1F03A741C3BC25674AA1D77DCF1C52F7EB16C0202C83AF38CC5DF7EB9533D7BEDC3D58B9DA5A1D05FEAA3E8C5646BEC94534ED97FFFFDB5CEF5AD04A3CE404899C9457CD9F44F4301B068FAE824DA381A52D4968154C423B5FC1CCEA463EF165B6CB17CF972870C531DB934DF994BE7699B980239092F902E44A149ED67A92664304D3996543FC91CD35817F3E78D3E67D30DA58047C74A160BE9C58955AB497550C2DBABC02FBFAAA028BABC3D60C68293474CDDD45E2ABB164EA2801DB02A8F21042DC7B1D9AA98A2A77CE8F6FC47A480B53DCBBE848D92143A2FDB0697DABA6A7D58B52C6C35F29235441265A2D1A243F8D8E8BC850BE6AF2933B16C8DD46E75DA6514BA91B735CEE313F36EBEF5F1CBAEF8B75B6EBEF33F7FFA08CE2E82A05FB7E99871E9FC4F75A825330ADA486F64BEBDF7BDEF85105F2B09D0B509318C5B01B0236DAAEB9285A527287D12B567B4AAE46D132A71A6D9CDBA69C307F667B6BD64E2D32808B29AB88E354DF8851883E5949D9298598C9B162494A119C3EC22C3167A3EBDAF5CAAFB93CC269D7FF6B39F61326AF4E02DC286C59B617E2DA67B1591ACD94B3090A380967ED2080F50C94BB21C73CC31518A0D8872870A862DF719EFDC1F52BEA201A13A6E38FF4D331997E8683C65D2E92665FC9994C322DBE90370702803E2A27AA3C3504B73D09CA521B8C0B03131305FA9EE68C49AD10D00118AA5F35E7BC085EC226735F42F9FDE26CF77620D6D2F8A6D85742AEAC65FFE395177CDB8EE6180BF62E0013D894E2DBB1D0266161BD03D7119370A96D004660B00F40429AC7B1EB37E9C1F344E8AC2B654D58E3BDF4FFED8B94CC7CF39DE5159EB6CDEE8AFE6D141B2A2C681DB154933D5043AD9E49D4594588F4C1823223DE7068E009B02B3525408F318DED07BE4950ED690EA60C275A895BC629AF4D3E1B0C2F24D5C3D1A55298497D0A6A673E14EF4575B69D9B265C0D709E931261135ED8408FA1E655CD4A553A96E54F5EA57BFFAD24B2FD54976D965177932C4272263C9938E44AA6D190241AE9A2AD55555F6B9C6A2855B3C6FD38D375A7F64546BB4D7686693ABC789D115BD3EEE80AEBD72F5143D21E91696635693613A19EEF968350AC01A9275A5E99DA6D6773F2FF23A0BD86E5499D78A73B23DFFD132B5DB4CADA69CF2B220B891C9102E1A653552BF99CB33CE3B6DA9EBF2868A7EB7689409989179F317CC5F63DEFC35A577758EB2B97026A53EDA6C6811CF7FF4B1CEEDDF7BE49BDF5ABEFC8EBBFEE30199102B5C054FA1F7FFC20EB58C211369F64AD440BCA2DB7C9A97F1CA2BAFDC79E79D4D2D646A492B6C76020B48BB9A0D7CC41147C8548FAC4CC32FEC094C6F148F0D912CB0CA8177401940D668125DC75D6713D03C1AE00BC67F20A7580CC16B073CE0D914808D8314E01EF66906DC775E269EB53CC2C7A593127E30205E549759EF6918AE7505187EC0974A3375908D3EF18C124D7AD778DA54B5FBD5DF9FFFFCE778C31225900010A03614C8624EF681830DE4AA91F286E81BD6E45C695157A6CE365F337AC0730862F45FAFA68474C990DD0537028985378E181B37976672D736D9649397BEF4A5575F7DB54649A62A65216053AC80FB81761140C0409498C4F640B220ABA13DA9EE580AC642F32B5749C690AE65C8A4EBBCF9213E9004C25D77DD05BEDAA925AA8640F198038405067604A19FD55DB666DB95284820B8F4D7CA6A881F46212CB3FD9A0AD771722FC5E19D95424C2B9AB636374DCA91A64BC5E117F66EB44BD82652811FF8C007C86002D8D40C921A43E81138E4FC44A4FA752BB37EDD880917C5698548F2E3C7A11F497C3A4055BA258968F37939FBB6E5965BDE79E79DDA53F8DC038F83A603EA916A232F5525D72CB91817847A9DF8E554D884E7C11F9D122B453F6F94CD8FD65C63C1922D9FFB9C4D3694072C05AC0F7B13933870FD6E455B532DCA896E3F22688C7F8B21DCACA647282F9F43FF241DDEADDE8043E9772B75DB280F2BCA88B27ED228699F1B6DADB9B20B61D58CA1277F57DB47DAB739B25A5E72474AB5D39407DC6E6679D59DA9D77C4CEEEEA85CF1D1851DFDD75ED86ACECBCBCE4EA9727FC75675E7FFEA57CDBBEEF9C5BFDEF8BDDB6EBFF3DE7B1E26530B8D8EE6788EC4A19760F6BBED50CB82C399D6CAD0FB43AA17937ADC71C7495FA6DA00679B61450255309501115D33CD0E4048CC20E3B2224C07A632BA6B04877B81BF37D5CCECF2CEB59168674DCD8647C691347765994D8858B4D912B21F90CD5E1CFC945E7A16A3886D94A49042738EA75F37FAB69D0EB794078AE54D8970CC296A30B52135D4CE25BB65778C92C55C6954B773DB10B86B380A0C8B2EBDC30E3BDC70C30D29A43F2D678B1A0058D415B7B085E078B9669DD568EA8F7ECD3164A9FA5F86F487EF73C6CF31D38991CA5C400A9B4C23AF7B2AF8E4B84A6862F6DD1CD6550ABD2FED53026562D6D2F41CB0D170CCAC157F749107AE682092C92C535DD2ADC1C42763BB39C7A1D32E5EBCD884F018A908FA934F3E59DB198031E97684356BD2B84EEC129EC8E45951CD30E94E6F191B48FA83392D2A460BF7B74835D55736BD99F78C20AC683B6635261CF852AA8BEB18D5390CEB98E541C2681074CF10E2EA546F7CE31BE58140660E39AE4EC818EAB635C83026C5F804F4BD9E9A886CE7454481C856AAE255FA049257EC7B7604311E5D826C8E493F525D3E4470911977EBD5BC6EE951D4DC3EEE9098EA18731A48D231313A08E960A84556161BA57E4FC262F48F966CBED9A61B8FCDD3922DDDCDD4C373EDA280F36ACA578D4F4639E2C51A29B1F240C1D5CE39A662C84ABD4A01571D05CA29ACC2BF951E6D48E94ED13E8F979F17DD2CEF361BA5026E360AE9E6D1854FB43B4DD94BF33AED4A01E7CDCA69EE8FAC86ECADD599D76A8E351AF3DAAD79CDC6880ED178F68BF9AB27DA8F3E9EFFE8DE5FDC70C31DB7DCFABDBBBEFF338209C44835DF33F69989AF8873CE7E271D6A7D09B9ADD86570A76045B186226CE1139FF8C401071C10179FDB90591C9036061B52D434373C35500592CD260B239C52D4358BE68561EF99D528124AA7CA3436CFF6EB5FFFFA4B2FBD543F44E6BA9FCC6C1BD514BB2EE919683C926682DE0CFBC133BEF4EC2F7AD18BBEFBDDEF122AB077E8671C00469ADB484FBDE38E3B5E79E595AC16FB4FFA2D06900300EE2520E9A037EF7CE73B4F3DF5D427732EE12667D4C1C30312FF898182B0466D6888962E5D7AE8A187E293D93C32042C96C0467881668A5C32211640BC965FE6774C75E276C6DB9B71CBCCB18FD871FAFBC77FFCC7321A34B35AD8165E96D11118E8BA612B66E36687E73A1A5878991193952A055CD42868FCB9CD36DB6CABADB6D2124D958767944C9A2949EFA5A87B204CAA4B98F4DFD446596847CF5A7AD9CB5E76CB2DB7E061F3F900EBB80D3B9613195004054D3B6865064ACE91E1A22EB8726721F098A8103F3B3E2B554F8E3F1775C92F56F58CEB2D7AC0466071368CEC54A7E48737E9C08B21320ED4528E2C9B7E8B1F098C26AB7A5F72A4A41F311EA295343EA26EE53DEF79CF673EF31932B8D813CE32A45037982A2D68783FEB59EA5F434AE84B47FED55FFDD517BEF005DD83BC05173AC38252D4F55D6C0783F00917915274189CAD946AD61DB215D2B6D0C6951EF04B5FFA529DE2DA6BAFD5A70068CBDA8911F925E3A9903B356FD3CD36DA68C30DA4CB26BBE32323ADDC966015822E95B2044DD1B765DA9FDE7A2CBAC576851B50394F459EA78EAFA822BD7FA67CE27A1D54E52B65D32439C9E36573A4564F3A785EA73F3A3A327F417BDEFC76E904779AAD1201DA4E9D15ADE648BB3DD66C8C3653696636AB1B58DD2B1B22E5CDF9DDC9CE638FE7F7DFF7E88DDFB9F3D65B7F70D70F7F5129DD292CB7B64C5D983F039AEE7FAA436D649D25744C7F3A93F2F35BA8EF74693ED7F2A2289935447513794D0A130989BBF33157610303E5A090DC1932DC822C14AD120DA3EA809BA7694C560194065C46908A2E146659CFA180B11F2D7FD1FA7E5827934C40EFFA9FE1F972A572BC7F8DA43B51463E9DAC2E3D8C51AC483A4127A254FB04B6380D3B27014F68D197D31AA02E33DE9B734B385B594D1B42E47F0E8587794E5E1C5C42B36E998E46A1DE174B1C95434421AFE859962C59221BE8EEBBEFD6B71AB4BDF6DA4B134734D2B138B48EEB44A1A001DB6F42EF54873151062C511B192ED24BD32393B895F86A444A1867C283B3096EEB18EAFA5060FAD01E5854D879A0C08CA9777DFEA10F7DE8F8E38F4F359F2B5744AC1395B15D35909E1F8EC917557532358144115CDA8E0AD4DFD8A456B2FEED6F7FFBB265CB88276B21691662359A23C0DDBAD5A92D5AFC04072D186DFF3046E9A17F3FFAE8A38F38E288E73FFFF9D2F7EC350858C0E561BD0D136F35A6F7BBF583C7ECB20339FE2AA66006E8E5B31A526E1887533F28B0F5D75F1F779312A654B98CC840D0DACCAC1E4AE721DF7CE081077EF0831F04A28511A391D457EE3BE238B321697E40BC0BCD5ABFEA09ED1400E10472BAAF7CE52B2FBFFCF25413A815358E8F55E11C1359E7E8B039066C8518AB3934E6BA1F5DAE0C6F6008907567C808A3AD9E182FFB0B6569AD35E76DBCC9861BACBFDED858698D96BD106CA75729607839F256B31F5E56C0B6BEA3F62DBDF246564FED933AB880D96A9A029E52D2BDEE78E97CF77B459AC8B3F1BCECD3D06DB68AB196346A6BFE8291B179ADB19166BB845995A9ACC6BC89A6EEA9319A67EDACAF059A55B1ED62B218EB8C8E65B914467BC5E3AD071F78FCA69B7F70DB6D3FBCE7478F56CD4D276B999ED5EB6F066490DD9DFEEFB043AD696530BECCF26A14348B0CFDE473A247CD3D1B85BE768B4EF2B6B7BDEDDC73CF6501B05E11E892115ACAFA956B438D8FB5376CA1EC08ADD964B439F598260AA03D1C8A13641685D4D69AC34D4679B169F34077E52DE4C4A71F360BAC0229F4D14BD3E3549626BD407C9FEA082DA2C46365E1CBC963D89C147BE49663DF7266B72CF54F481E231170328AC0AC6B12F2C8A890875E58338E4FAC138D050FF100C7D2593011D9EB8E14CC3223068ED2107DC402FE59ACFF718A84F827AE5B6CB2691222DC5CECB608D6739894C5D008CD2DE636C874695D62871D76906B0BCF25852206E94417B098FEF2A962668726F3DA4780893C746665F179861307066C923F461398D0DF015EE438C58AA94EC4DAB8249EE9B9B63D670B2C1AE80E7E0E8F8F7E08AED0F4D7D6139C241AEB1AA277BCE31D975C7209E14F4A28FBA12FA48DB668FF51B48DB1DEA8599D31F5F05C49BD6150F2508DD0DE313E1DAF819EBE9A085927DA0E871F7E38403CA346226B90C79046A55A8AFE7CB8E8193903B591349FBFE266A059E5066294682A585B8DB65FC80746C092900D15532703F5E8D8139EB8A54B977EFCE31F2FC1B92E71D3A8C915FED6B7BE553392E4A9E45E6EACB168FE7ACF5EF759CF5C6764A45D762BCAFBCDAC8E24735CE501B746A678C323A3420A1D1A4CCAC1E7EDA60DD22735EE93DBAC7AAFF3D5BBAE0C795767EDF67BE3291F6F352B0FB895465BE39D4E4BEEEFBC79AD9191E66885FF2AA11CF3FB8DBCA34D5174B312AF4DBA3A2BB2E6BC567B34E5F2FFE499B5FEF3A7AB6EBDF5C7DFBBE3EEEFFFE0E12A88E11E82596D2E3DB9F3A31448BFF30EB5598D574A73A28A065EC71E7BAC8C44AB2256C949279D74D34D375D76D9657CC89EB4DE7245A9E1F11CC0CDA0F2AD860708F47D937CE20247040DE7FFE8473F2AE7E355AF7AD577BFFB5D2DC17DF7DDF7139FF8C41C5162F8170D1A6237126C282A8CE2830F3E58D4B5B65C5D8739E11A8B089DB6EF4E2DA7A961045B11BD2EB0E8C4FCBB75E7706C532C15B25CD6371A13BE8A7DAE5087B2B529262153A041B01F8339C2A0EDBEFBEE32B76124E0DE7C12F211330E0E0282404851F391E1313B3CE0AE212E7FEA07BA6F8BF5F837D50560EED3902A8FAA57F5E34291E879AD801961F7B4F019629824AB3986C0AA38AF26C973D041076949E00E12541FC6B9785E9C387487F901645924791DC04F79C6797CCFBB4FC51A7BEF7BDFAB35A985A7E930BAC78F1053068ECF3BB6CCF96163CE425B524C31E2EA9C907C24618346A085CF0201A425864C25C7CFCD809DA6D3E00C14CD5B07834B020AB4F3CE3B7FF9CB5FD6277A76286091338470F9A157758C30F195011C3E43AA2DBF2C1422BB6E1BDF144197EAF4A781230E2FC5565A6C37648EBB27F56A82522C30C34E53C0CA0CF0FAE9F60E3EF8600940041A10B965CB969D78E28965D9CEAF7EE5041909786A3D1C2A738C015F8265407B78876AD8F53A3978B114124903028D6C82AB8F607128D379B84D8CD792254BEEBEFB6EA2F91393BD56BB21A5BB70C1D85A6B2F5C63E182664B9A6C527F5B7983D0534EF0A1BA686AE471953BDA63EC5554C059D50DB8729CB1289FD4C1BEEF627A747A0A6FD1EBF6CB64F0AA8A29BA2F777CAC3D51E680E73547461B7285351A639D91564B3A39CBB3562AA41EB26E6983F6B27EA5806529B4E5018F4C743BABC73B0FFD7CF5F2E5F7DEF1BD1FDD7EC7CFB432B44AEB35ED54C72000B5A84998F3DF61875AAFCBEC29828F807DB1D60DAA720F0054ACEBAF8C84A7AE1C73D29CD8A90ED2C67869AA4B66B59E28A5479A18D4CA394DD6886B18D5899487C4C46CCC4AFAEDB6DB6E7BEBADB7B28D8998B1E5ECF178071247B267DC08AD9F62B001FD17750F7EB6B6935C76ED25A45594657136635D720CA27A91E8FC4471F5A1049654A3F6304148E09D60611899549B537FF2277FF2CFFFFCCFBE841D2F73EFCD36C57A7C82B1880FDD1BE310EFDF2BCA0F1261474CAE23C3C4F4D0679C4A43ADCF895E6AA83FFBD9CFCA743BE28823E85FAB970B1F538DE521E6EC881C89AD46CD8B4B1B2EC7D8C1CE6864A433FEFDDFFFBD98B36E3B46057CFE3FFEE33FBEF2CA2B1D8B666D0C83802C97CC3D020662BFFDF6BBE8A28BDC066D75C56DA0F772538E3AEA28436AB380AAB581E5BA413DE33AEBACC3FD0FF42834B43BD50103EEC4D1FB48229D6AC222BD39FDF4D3DFF7BEF7E1EA799D1B36613A2A43F189CCB9FF4ACCC5443E808151B5ED324C00EE890081882FF1F77FFFF75AD5F250F9EDA69B6E2A278447A3DE216655E8F9DD0F54D52980D8532849EA871E44B14039AB89F3D835DE8988A3AC2E024E957DA0CF69846A6656B2095A1232FD0F3BEC303C4C868B8E81D88598837AC30FCDEF11B526B602851E8B172FD6200C87D6667BFD3FDACE034E92B25AFB6F55774FDCDD6123CBC292D6250A8222C835DCEB45D48B48124510143120E02292040444C292BC822012445110F11301C58011451104D31511490B927761E36C98D4DDF59DAA7FBFCF9EA99E19E50BFDD3A177A6BBEAAD379CF89CE7B0259063DC2837D182331CF4CAD3186BF12C3BA74CEE9D3A75CAA4DECE9064C3C3831D9DE97A055C60B888488F8CEEF7A9FD2A7FBC329A14BADA52BD39C8998D3D3AD25B3C92CF1367B51CA595D34F0F26A9ED8FA15A47D3AC81DE8E2153C0DD5D959CB4B2C31C941A2649DA51CD39A2B36A7D2433059C0BBB6023343DD45133059C748ED46DA53B5F5C3AFCE05F9FFCFB438BFEF6E8729B713B9271BD93B8F6997FA87474A79D528FA0C6FF9F0EB577DE79E77854BAFFF4452E596CF2E46F907A3E500342D2FEE92927EDBDED5A13ACFFFDDFFF6D96A3C95C481689AA69BD2076862030295AEFD9DEC274654F6FB2C9266F78C31B7EF18B5FD86FCCDFBDFAEAAB69698EDB2172CA31C74F47117B73CD35D7D8E1B16F619170DA49AB9B7F693F6D0CF608F08AC0D24E9645B049CDA17073BE0B13C1C346D1701B8B98B6CA76474C52A4AA5D53AD8E9547A0901F5F1361E1998F843637D9B7EFBEFB5E7BEDB544629516F5A322C74CACDE13EF25E3A3886DCCDB6CB38D3D35381D20ACA855489EF10ED9098AAF4ADA7A8D82EB9945B8101F9341638FB370E14213BBC451E5354A6802379326209E49FAC0C6067DA0381735DB21C66044021AC66732CA224FB8CAD870D44CA39B5960CF0B0E512500CC617B0E9898390025D5C7ABD80F6C9A5272F65CE6EAB5E7B6096084D8F5CFF6FC0E3BECF0FBDFFFDE27B3392CB269143AF61B52110BC949292441282AB1C3A9A7FD626E9BAE81188AC46E6183C1FDC5D3C2C266CBA935B8FD09BA0CF61BC432C807F951AA7D6059F1E0B15DC8C8DAEF65E0322AB63DC84DFBFC8E3BEEF8C73FFE5111416D272963AC25B1644BF7DBAE36ED68E3A4840F754E9C5FF7F2701CB3A2AEBBEE3ADB607642EDA100BAFABE2FB6AC7476B71B11805177138A9DE04B61785B6FBDF5A1871EFAD9CF7E56D92EC4B5C215F4743193D1360C881CCA9FBC552D8793DC8A78994C94996D376BD6AC161107E537A4F4A2C56492A0D2D3DB356DEAE49933A7F54DE931753838B8AE5A0B84A073155B049F51C0C3CE9C97EA0D0EF2E073C0F99EABF0BEA0C04CD599D23172E00D47C51C4CEFE7CD07EDAF7573E42AB5E19C93B21A26759A81997476995ECD4C1FE740E822071CD2CE82233A698CE429D5C648BD70A99BDDDDBDD54A6733AB0E0EDB91E858BA74F8A1879E7EF891271E796245B1F946296086A1C5AEB806A221FA3DF257C2FF9F0EB5D88FFF67DA37C4FEA08A091F75D451B7DC720B4DD4EDF7B6E96DA742C3ABAF989EB0A940D1D22C8866EC0802024DAA5EC703E0702A512D1941C4582D8F94A0D221B4A365579840C1D8D5EC0C9C73CE39084D0A03805A10EAF4302ED35510BA42141322ED09E16222FCA4ED61AA4246907992216507EFFDEF7FBFDD94002C3E874F2FEDBEFBEEBFFDED6FC3E806828DB6EEE25B6DB5D56B5EF39A5B6FBDD5BE4248933911F03889E4C3D011D8B450FC40E04ED5D5B82CE3D553B2CD449F4274570CFE28183F7E5E2C50E240B321BA142C37510781BAB1269348BA693F6DA836601B36AD30E557493A038EE58CE0EB43080516C926C1BE45309FFEF082BCC2CB3D71796B89781940A9FD924A42E2137AA83113C0DEC2B0A7A02655A9227395CCF10DCEFA69CFFE86D19803C0343C85FC3F051EC41FA24C399A18D3C47351A93E0A4D0FB2E9E0830FFED297BEE4AB131144AA66F6DB43A87B98CEB2A2F04C430D85DBCD987D7311DF134FB00F64A907D01183556F1FF9CD679D75D6F9E79F8FB4C1DDFCD8C73E6676AAF9CA18AC8A366BE6A53B49909988B02D846DCA6197A9AD64BC6A3EC54D54899CED7653CEB550233BEFBCF37DF7DD474812962BBF6DC0128A0060975D76B9EBAEBBBCB5217275F0012A522573BFCF3EFBFCF0873F443EF8C92FD54F4BAC2951623F6DBB528C9A8B53F18872B4D693272479D2AED691CC98DEB7C9261BCF9A39D5945FF181AC1A15090E2A1E6CA3D896CDD194E5FA99B611717414D549C58E2C3CCB8AA0070D17452F367D819ECA15705AA8ED4A3DAD346C45AAB58629E09E9A39B595AECE50ADE57D82D3BC1D9279E7D546DA9DE47D95F204F0C8909DC6BC19B05D6152F7942CA90E0D8781816CDD6065F98AC6A38F3EFBD863CF3CF6D4B2A2BA4EAA3489B3B91E55A818B28435028B9855186DB6FFBFEA503B0102F65F7929BAB2FDF6DB9B39893A59DF7263B444963AE4100248B1ED6B17B12F9668D524DA9AAE1166C335776AC4CE71696CC20535235B4EA971ACCEF15C7CBB14307289155ECA037DE6339FB9F4D24BEDEC3DF0C0031CE92BAFBCF284134EB03FF115A1D379701BCCFCF9F3FFFEF7BF978AC7C0E0D8C754CC3D6FDEBC57BDEA55E6594247670F6233F0C8238FBCF295AFB47B61D5AA0A0BE424134294AC5274D1A08D23328B291506845B331B7CC023A231236C5DCC0233B1528A51953692E823A4506D0C5B6EB9A5391F3660C2838C5FA142EA34049A6300CDD89DE2CD6F7EF3AF7FFD6B5C4C4172B0A24C2C9AB854D98627F707D5824193C456A40CC6B6DF830F3E6857361565A3BAE38E3B982B9F35E41C31FF13D0AE2591F400F30279DD748D4FF42C0A7266AEA75E69EAF063F0FFE0A123844BDF59F51F0BCE9750205A01709971213A761E566D5FA1AFA8BE428678CC721DC50851C0AAD3F554C1484E451792C8AB651F302D78EAA9A7DA9B0B2EB8C06C3E9AB80038802BAD1949A1C154A3E7CCC497EA0D91095C216E245E1A890ECD2F344753BD4D7D84964750999032C159E43C082E1B5289ECA70AB0133960EAEC790F3CF040DB844F3DF514761E2211924EE994347295F801882396C9B1F72643389558A5E0A8B5636DFC64127D241C958FCB81A98188E38C880FA45210BE927FF9A7E168CC444C58620F89D07A426AB4E0E3D5EE467D24A48DE95337D87C8BB973369A69AA7960709DB99B15C58A9BC5FE2B766633091ABD4741A76D2494FCA9560931349D78055C1C98669CDC42948397CEEB77EDAF453386AAA925D3BEF54AB5D95DB5594EF24E83D5666A6640D22A016A64BDB6392BA1D26C6445A3A566EE6D5793CEA4BBDE4CD7AE1BB6B55E37545DB1A2BE68D1E227163DFBC4F32B8ADC648383C63416E6C8A89396B8FE658A96F8948C62417CF2FFA6436D88443325CDFDB21430C524502F71244CCB723C38BDA1085AAAC529B24325C236C233CE38C31C503B03071D74D0B5D75ECBB7E0D415204BD5EB76118E84B8A3A998B2932F6404DE6AE660B41390FBE37983E1E2001026659BD1F182EFE259AAD7299028A1CF94C986D3D52C892CF62E5445A93DEC269B6C62FAF537BFF90DEA993A9C30BA25837FEF11767A2913295587FC5DB870A1894522B1A0259147881BCC79112C48EE131C1B6FDDD3C8E4E59B24CA18928FAE79F0914FED5B65C7E55D912368C696F5D49E12485080FAE28B2F36116F2A19C58CB328320792FDC1310CDBB72EBCF0C2050B1668B7B37970DC1989D874C77B5E9D3B8AEB6C21D842CA0BF0010E9DAF0FF6C727194DF909B88CD1A29F92480BC506230EAC902C0B47809D47E0A6CC9E089CEDA1285FF1E91E684F084AB1FA78A2A5369452C0C20AA08C4B9D8C43E42FC358274B42BC4A8D297D1F8B107BA0A126CDE3B40D6F83B4E380A627825A19DDD9502751D84396C0DEDB5980B0C5FE4A7B531314A4D2ED317152ED9A488024D6100AB929235E5C5A426CD8D68504B094214D5C7B4A459E58056A2E407831033CBB4FABB1BB1401D201F7F3A30639648ED0B53244A889B2EF7EF8C31FBEEAAAABECD1FEF33FFFF3F6DB6F57E706BF751515AE385A40B6DCC73EF6B19B6FBE39F1597129F0DC630BF67EA428439ABCD966B902EEECB2DD3354C942DC1F75CCAE9CA02ADF3495D056ABA34164EB9B20B554514735877089358B40B44B1B0739C738C1CD50B173DD69EABF1AAA95461E6DEE4CCD21B6AD9B7F3D6D24A673B346D192308F8DD4C3142CC97C7459C15B56EB2CBCC97E737FD7F48FACE96F9A0C5CB5A2FEC4932F3CF3F4F30FBFB0DCC797F0D8B2582E6222C67615B36FEB6A2B4D7E6582571201933A5D25551AC6E950CB09A724BFDD9E12FC47FB52596415C30859ED83E7546E50CE2B99CB76CF62F7EF2C627D4B6638B9281C0E46E5117D633EBED76A0C3244C8896FF01922414FD3B1110587ED549ED267564A1B1A2C22914FF3868F3FFE78FB2B3604F7F2F8463F93210633159BD11B6573B176F16B8570092EA88B1A03E18CA52C238CB41FB723AA0CFB015768C45EC84203659193590A55C753940EC1E1A7820B79955EE81E9592DB249BA09938B44BAE0B132A8BDDD17D5483C7AF445AF26C7423C5D4715984D8E66F9B6DB631173C8DBD1654F485AE52FB0D653D4374BC90A1E869EF4279762A13AC056EA3CE74793B8CD551E625897DDE0459F266878A47351B0AF680810A0E4AE99772975D76F9CB5FFE825CE62CCB0622F6AED280F9F3E7DB056D37DA4391001202DC1750705935C7558CC1F7050A8575AE8E3D3078F079CCAC3436B4079A3058BC585FF6A43E4FE914ADC13D92DC87A36551A9EDA9BA4D10A755846FCC7D253F3875BDEE394AEA39A143649F34496B5E3B511331DACACD2D51EDFA794B0B2E0E95F3DA17E588B3CA34C3B6BF927153D9BAEEAE11322DF8BE9FFCE4273FFFF9CF5337CFF1219345E2830251A8BC0199B29F357B9C05CC0E852210C51CCCC423CE7D446568B88E02DEA0AF77934DE69802EEEAEECC03B90D1DB011AF80CD24F551562FD17C0E4627B6A0B8CA075052C00856E43FFE712B5A9B98A56F4A34CD93D09566ADC30468A556358738E7CE4AF30EC1235968A06B0BC28DDC30B4FFE360D7D25A47D1DD61A8BE66605D63E58A8155FD2343EBAAFDFDCD679F79E9B9675F7CE899257EB49EEDD616D5BCA2C71E7B0CAA3C5BAD37BDE94D66F28497F3C27EA44BB3C45312D19862A44B62B397F136348721757439255461E9EBDAA91C75925B9E323344F0B040C589EBDFECE3196C53A9D57FAA8055E3C8864601CBBA07DF7BF0C1077FF9CB5FF60939E9037DACA47A83A362D876DB6DFFFEF7BF1F75D451575E79259FA4B52A1754718567568246035F013BA07DC786E84895E0A09E4920B8027C8F445DBFC3E3175357242DEDA8BC9D8FC869FCBA054B239F5B254675D77A72BCF927EFA84A5CF680EF335F1294787B60C291B6F206148A44D492BC1C33A8E38301A60BF7DC73CF9FFFFCE70C5E5DDF712984AC195301EB3A6AF41422DE5E916D512BF0A29D8E582D43D4D615D768D517D5941A4D9AB6A35F90D4863850A9C567F7B25864C1F7DA6BAFAF7DED6B590466DBF070B630A91BB1B385FDF3F2CB2F3FEEB8E3245204B754BAC107BD43C460DAE0CF3AEBACABAFBEFA85175EA0BF1C9E9CEFAF20BC37D55C175C70411A9B9DC828513F4A42EE84FA891261A6109350FC430BAD347388603DB10E80C365092AAE394AE9451C989A78E4860E026FF0A1ED9A78C97BEFBDF79D77DE29E249FB8CB0F7E9E89A786D925294CB3E6C6F6CA292889D16EA4D69020D06730D9B5816701639C659685B11FB18AE8B087F6CD83648A4960D1543D083C9ABB1B7A3171D21222D5409B2DE59AEB8CEA9B98159B05AD9234C99DC3367CE6C53C0BD93723F6064605D4C818C30FB2D055CEBF0FAD5E3ADBCDCD4894D9BD018A53CAA9CDD5A47259EE74C9E58AE8043352F8BEA303FD8645696FFEC4873D2AB5ADE8921ADE40C5959A39E87A00B71319485CE229D938305427EA46BC5ADD68D0CAD5D33B87CD9DA952B1B23C3D5B56B92E79F5BF6DCB38B1F7DE6C5E014B0B08EBC8047514461877662A69EF1049CD78BAAD65704923323969909404992654288F0C60E3F61431B9E5D9F7C8F44581AB92CECBBEA202D7C41C375F00EA303DDDE8DF6CE10F6E004E3544903C6384E8C4AD7ED3CF8DA21C1494A044315C703AC9164B1CC03A16C0F0B728D59B5C5B22B6372D2ED5C755FF861305879A3D3ABDEC4A1F1EDF8995CA6B044ED194E3FFDF49D76DAE9F0C30FE7F831F995486225754BF249BA967966003E72AE59E5F1C16DFA9032015EB05A0A4870C47C27CAF6F9870F017B1FC164D332DE7AD9C74C761F73CC31252343990B168521658E98A2A4805BC515310000FD882986CF7CE633EA4CAE9A544492B2AA4DD7B50623C01E0195A30833D34BA6537B00558A0457E58F00F028E0CCC1A63CC7131B8F07049A40945571751B36EA5C156BCA5B83DEA24E941527875D120E0C8FF9413473E44F3BED34FB8D3D8B5D44E6AF7AF4FA26757A79E0BA0C08E6A1FDBEB05EF39832373D730BB7439A3157E4CEC4F5C6FA7AF88E40C88A982A143CE6BE9202164B0C03509EC2DBA600D950D29A64A8DCD830CA46A945870DFE231FF9C855575DC5B0C9A31147643B65916794CBDAF3DA2980CA571C3560450567F3CE8F8231EA2786A7AE55106D278777D34D377DEAA9A70013342237BBE078E8239EC2364F4E33A7DBD8F360D1B4225DFC2509937A3B67CD9AB1D1EC5953A6E4BC1343EB561368F20AB8F0614785A4A4809351C5456E611AF598E417403A2491B7DAF4A8D7C1F6A619CC7731056C9E6C5AAD64795BA4C203B665CDAF908EE41C1D593DE48D81F395AE76AEE70303D85529C0DB03F560C6CAAA15836BD63447866AABFAEB4F3FB5F899A7173FF7E27A8CA8876C80C4A35061C71D77342577CF3DF7D86F5E6E2E169B7D9B6DB679F4D147495E52FF805A5265BAB7D6C77CA1BAF05410FD760E6D3C9872F6F5EDB7DFFE81071E60E3A28194A352D414873B8955F66C883472058F7790E45E6B5B37266C8AE0C37DDEC5B101032924E0C9D112B780AF3ECC22F188D6456FAAAE0BBA629BADEC46117D55EA512438E06F95FE819DC03F72BBD961CBB4DD76DB99936DFFC46AF119A9A4E0A7A5DA016A0599110C4FEDE142F47485794C5C5F55D928E209A24A7BABADB6B28BDB29D5E0434CA966B18DCF04FBCD8B366C0EDF35B2F492AD435E13709C7D1D3E2CEF4C280917C64A3965AE8489A60240CCC8A12AA35CAAA52929604D0EBDC5A8AAB7DD6B8FC0FADA31B4F74C0506AB621E708DB12B5427D65E800040EFFAEBAFFFD4A73E857F69CB6A877D75F1E23469ADE7CD9BF7E4934FA200C84784C25701286B9F2C55C69BD146CAC37EE3093A541C150ACD4A969494966A730592B745572C04A91D46FBBEFE8809C381B887EC70B7DD76FBDBDFFE665723F4CAB2320FA6EF6DCC36B1845E595C8664EBC5189236C837DB5B9659296134C1BE4251A9B7077CBD707A7022ECAF1C3492D9F6275B141C477C5F7BC066D16E551CCEF218DFFCE637DF75D75D5FF8C217162C58005D894E1C5AD376914D230D221BB1F79798F8AEB9E69AF7BDEF7D0ABE7ABA85D243216F7DD136A46C50856035BEF18D6FFCFDEF7F8F28260482491A9CF2B66D00258059A5890E2A6BC6F6CDA7B89045491A3A3B2A1B6C3065E68C6976A71C8736D24A32D7EBC331765D48C9B422DF31388B581E4C29C497D4F32847A59A440FB875482AA2A88C3AB835178939B495CEA27B638EADAADAC357AA2DE5DD4C2BCD34349A5941625204503BBAB17609A116CABEA3B07383F99AC9D0405837900CAC0B2FBDB4F6B147FFF1E413CFACE81FF292D7C7D2B3D8EAC4F6258D757D80FA5F7C4151B9D75E7BFDFCE73F875E079603DB5E666B53EAAA1634CDD164DAA50D6D1F3027CF2E75EDB5D772F2B1D685767EE8A187C4E28BCC9528012142081A158E8F48D35F9099DED7D4C2C9C393D06F8EDF64D72F77E65A27219D517B302F7AA2B892FE90D732E654D82F4D6CD9356DF7DBCE8439815837287F4A53ECAFD21C2A3C983F7FBE4DD798F7D5E0E528E046B05EF807760593C8E616CB3F0BAEBB5925B251AA48C38664EB055D972C2D3D266EA5E2AEA598336022003E1EED55AA7A1A73BF99477BE289279A2C5BB46811BFB461F8A0AB7F011325B95812F15A77C52A88938F791DFBFCEEBBEFFEC8238F402C4FA64DB156FBD3BDF7DEABA6086A365C927789632BA314DBE6F0A4934E3221AB46DA2A83B1CD6C5B57362856918DD9F3A827B12A52274B3ECDB1C71E7BEBADB7DA61915FC831246387E9100A7D59C24061C0D1E60805639BD9F4A8D2BABE2DAE37A14221CAED2B9AC3B4E08CA3C3FC01071CF0F0C30FFFF297BF0CA36BBA2AAEB59FCE0EAA88C8BC047D88D69E6F284E0C4636A84A64FA3F0000FFFF49444154FA1D99AD60632694A2DCF0FA76F131619439506DD3355FF12080F1E49557C0C46929223FE49043BEF9CD6F626DF8B4B43F1D26E2CE38E30C3B3B242C78103EA06844257208E2BCC20140C8012828A746454DB8D4BE36524D5493C8DEAC0717800B7CF825975C72D4514775172F3AE609851A0ABFDCE69C927191AA565CE36446AE62CE7CDE7CD85AADB9F3D457AD80415572C7B1ABAB63AA29E12993720F3AA947DB673D082BFF673A8A7355B38F2B90B84684BC6ACD08738F3A3849FCC73274703C96F6E9EE4A35EDA8A479D1706296458A07DC0CB6C07967A424CD0927B966350F4ED7B3A4A57D1BC196BFDA91F3647556AB7DD54A57C83AD70D64FD2B479E7DE6A5071F7CFCF1C7FFB166A03E9EAC2FD5EA49468497F3E2CA9457869890C0C3DB79E79DCD68CA0AB639DB3713D71D9D75D6596637016707126CB203DD89282760C259E53AA289E70A123DCAC1D8CEA6905132A8DDB34922665B711591C38D394E9D5E963B8B08796E7AF6D9679F79E69958B5748E425293D8CB46F3988E797DC650775D7B4344539B64B4436216AEDDC51E0D3124D7C10B659F6B2CBDE4C629722B45CE994C62152F99ECAF7FFDEB202CBC8462AE4CAA9A2FFB97BFFC056F83E419B2525A21B85874882946807EA5FA2B3FC344DBC61C7F89C7D85E360FB6D127D8B759ECE6C44F9335B646CA5664B133B964E878D7114ECA842CFA9EC94701082CDD9EEC28BDEC5B7623357857AA0F481D3008C5393C876B52B04CD0D60C5E91D2542711508656A09686F8103B8A83F0C94F7EF2AAABAE2238699F4425432DC7ACDAC5172E5C684792EAD8D7BCE6356679989437A3C7D60E96060218849795EEE101ED14DB1818A1A781C4BDB38BD8A8EC6A3045E000D842C0DC4481F8873FFC61DBE461346259469BDD0E88A58C429ECE5491ED287B5EFBB0994466AFE354885D92FA3ABF345E07FB88F4BFA280B5A942A1A2A4FEED7170F6EC97A41888FF131086674A7D21E9662D8B59712F5835506976359B1334AE875CD805BFFAD5AFBEFBDDEFDE61871DEC61A9E5250267B7BEE9A69B0E3CF04071AA7844148FA6400EAA1A3926035DBBBD527425D108859A545502CB849340BCC4162849C782DAE6065747C68D433367849E3C69929D9C1C6E5A6D443E8A46840A17A89F4A5533AE4C954F21085BCB3F3BB20AFE2E3A38FE697D7517FC945968E5BDD24A6F0E8D2E169D8ADE5A47C5FCE166C819A1ABB5A492DAAC35AB8580ABE688B0DCBEC87570EEA0875A67B5BBB7CBBCD0AEEAF4CECE9E3431855A7F69C99A454F3EFFE05F1F59F4F8536B87C7703A4BA9235B30D20C617CA69EF15E9548678A58F45806369F308D8A918E791D08658832D9865BB060C10D37DC205A70FBE5D5575F7DD861876123534C82B7C48610DD124018B821ED6AE61993631BEFBE254C2CFB7B025B41485A8163E5F93186534F3DD55C34798A901DE21C7BF6A2D272E8BD9D4F7B40DC8E66C1F22AC94ED6B3197BA5F948EFDE7BEFFDA31FFDE89C73CE31B3DACE36D559E38D3FB82A6ABFE20A5529C786F18AD340C64B595222BA666B9B34114C43E5134A75AB87922D1CE1109ED11EC48485995CE79F7FBE427FC8B28943D05964D325AC859632994E854CFB4B0C0378B70DD75028449267CAB7D4AFBE7DEAD866C0A43D7ECD2E4E0CF0BCE2A5EA141A417AC91E1CCA41DB5542EDCB5FFEF2C73EF6B15098A1B6828434EC65BA04DF8E0433AB63E6C2E1871F6E0A52C8642D22E3378D8E0759226BB4A36157360D6A1F805B2629B05762096E38CE76AE4C9F12BE2510BB6D690F0EE2C02AF7646F70FED4BC92403A42D5DF2B44AB519BD936C90B2FBCC09EB18109E2E06144A1886613D1A467AD9858D8841876EA0F4113BD37BCE10D77DE79273417AA0451B459A9DF301A9331C12B8B6520EC7991E128D8130A4B8BA0345F51BB08AABF8815E31CCA362224498219D5C8A83023CC1822436197B25FDA2AD82DEC76F6BCEC25332E4F38E1048E2A37458372AC7CA2CDE6C77ECAFB2A998FB41784008BBD0723AFF09569AC83E7EB2039D8B1F6D7DC4DE70FE2AC592F5E9BF522CF5A353D58ADA6A680EDD279A7DBDE6A34169A52C0F9582B559F65515D1ABA241DFDCA37415651B951B5A6DFB7CA4B8065E597CAEAADE4687552E149E515BD216BE43AB556310B36A4F56A0E8DCE6AD5505C2DEDCCB1CFD5467DA4889C862C6DA4D5B4B3AB5628E05A573ABDA3B327099DFDAB869E7F7EF9138B9EFBEB838F3FF1C43FD68D94F75312294430FFBDAB3101EA6F828DC8D983E6B012BB92D97BD1A105D7ED6E028BD294A59D25513EE960A0DD4BD5F1DE956C8F6C7FEB5BDF7AEF7BDF1BA21DA7C8677B365466ACC6E9897EDA5F492CF310DA82AD6547C2DC53B33A172D5A047F4D88511A79C0617486A97D51ECF56FFFF66FA63E8147295227E7DEA48999357FF8C31FEC9744267DF5A4526E13F43DCD5CA5932FCF4393D1263D14A45144F55532C107BCEF9EB98263565C4F270BAFB778D91570956CCC262FE812C82ADF78E38DBFFDED6F7FF2939F988F152227CC048168336ECCC461305863FBEDB7DF77BFFBDDF1F69558C1D97E784B4A36233DB7DF7E7BBBBB84E998FB04CF00199A161D0F152D30A1036690E89C6774CA46F34C69481493980F0442908FC1FA090C228B7DDD55E68480C30E20E5A650538891407C440D1BF8B129836DB6D9E6E1871F1635823D85896C8A5CC92F90D7B0CD2399B6F3CE3BDF7FFFFDEC0D48EB70FDEDA9D97BD0F4A34510DF988C7C056B86ED219229C874A928C5DE6A149DC454DDAEFC2235FDEC3DCF791E46F37B2840AA39374DBFEFBEFB7EEF7BDF033FA8D4A1F9887FFBDBDF507E0C29C468531671FE8903B2F9D8FE78F20A335D742EC4726D4F9AC56F33668B8B42A247A7EAF843A10B097BD87CD294501B4615A11C498E89FDD32CEC5D77DDF594534E092EE64C2216223F051B44DD9FB4E1B433D71F5AE113F6CCB9E79E6B261D8110E225328C34E11ECE9CB9820819DF26666D0BD99F6C121205E2244C5BE54A49DEC02FD7AD39016498DA3769FA8CBE9E9EAEA99327E78CDB5D2D5A5113982D8D9BCA8B6DD5E003A96DC67684E968468ECE4A4768358D490AEBA355E1DECC5ABDB26567355A8DB15A22CFC6945FD3CC8202D69C54D676546B1D9DB90B52ABE4C5465DB9DF5E74E7B095CAEB839B795BA76AD125A9338FA6DBB6191E0A2F2DED7FFAA9258F3FFEEC534F3DB77CD9AA556BD77939ABB36A73642B4708B7E25AD394EA0B838BB58EB711B5D11522F660BFF6CF0B9EE07B689379E284D80E500E559C1E9A70218C541B831FA3F48F7C3BDBE5760ECF3CF34CDB5B8D829E975D2EE8BCBA6962C5B7F7014C1DD5170743DC7B18DA3E6D060647A8255CAE090C0E95AF00236473A3BCFDEC11901F0F9DAEFA01F112845816E53126215A90AC918F1D21B805ED0188ABE8E8D1471FFD9DEF7CC7C43717B7B9B5DF0B09A9789D9753B802BCEC719810BB9D3979D75F7F3DB15F813F53D78131294A932588D5B53E44CA43E58CD5DEAA1A3B93A38D648EF82E34800FF415DCBEF1D6054F31449A52513F82E2914245E4893D1F90BFA71909A3E102FC86ED84020E85DB61DF359D2D662EA4339103B6375171669B4A1B9A27FA1B994F6CD68F88936C05ED9F975E7AA98FD086C246B48B9801F7C73FFED1E4AC294E2EA2B9F527A274F6B5975054A83D26565C132AAB05BBC7F07C1BC7D0D6482AB822400269FAAB5C6A34B4F2E23609261F28FA22EE8DF5AC434D9D4FDEFA3DDEDAF41C5401728B6539E13D7B9BD26F8609F2089889F08BB17C0CA0EA1A379999F2BEF7BDEFCA2BAFC4C1850805614B125D6932D5044BA7564677918A78DE14E4A9EC8666A42F648A9A919612E59D8DE670F4D6B3578E7CB254826C671F97972007590F5FC4CF56492333A0AF6ECDC9F335538C8C73953759ECEB1A19B6A3520FCDDCD79C3675CAAC0D67F4F5F5F61415CAF963B782C3F5567BAC8E9A8F37E29547DDB93E67A007AB25D5C4716EB4F8B072ADD9D4F6F55363FAC22BE0A4E8289C8FB93254CDC159B9902988A0AB1DA667AB79BAB7111A59B0356E64393D56CD1CEDFCA4353AEB23CDD56B87972C5EF1CCD32F3EFDF4E21797AC58BB7660DDF088CFDE29808971EAB94AC6846B867F9615C63300F827DE479C8309362EEF0596B6E7A5B136C74C9E9CF7779BB1899838D5D8D6FECC90D052E320E65939361F6649228C8B43A81A92A46088A4FB82F0D56A3C42F00767FAA28B2E3AF9E493B7DE7A6B0819CC84BCE28A2B4C25533E84C337417D2AB17A393DA5BF22D351A53ED2D8FE62997040913EBE956F490D648E21B9B428087A44A729399BFFF6F632B285C917941266BA3E9FF14B804944645BB81B1F9DF2840C8449282F91B06073A21A398321C6B7F893A489375698B4CAE83EC4D8BEE3CDA77058EAA020587E180D3321BB4F54C0844E56708421CE24CB92361016950224174A138B3F27423A1DDB12639DCC1D7B52E4BEDDCE4E1C4FCD5065DDDA529A0975DE79E70930C19FD4DA564D6C881233E73AC25E5805873340A812AC16C2C61B403CB892C47E9F73F4B00C98BDB4E825AAE5165E5A34CBBAB5EFBFC4A652BC172A0FBB0E23870F8B09B121615F9E75D659279C70825D1FA20931E5614984B6F8734988E99F492CC251F90D2788C7F1B6DA76DB6D679E37EA50D7E780D830B6D8620BFBAB00DB8AB5B076FEBE4A71966AC45908E9579FBAF6C653BB02666E4361F0C9226C463A4FFBABF217826B71B230BE85534962CF5948F1C46693737101E5B0175B131CE9AC8DA6AD5AD9BF6AD5EAFA7071547ABA66CE9A367DFAD4E97D53EC195BE7B6003817AB36680A580F83B9D168A3A5F40F5CCD6A11E79C88F72AD71CD5F56D94FCA2D6730AEA9CD32A6F6AD424B699D6F2F0B51DC2DC35E934D5DBC1CF6AB1FFAACD7C4F0E65393E2CA7B2CC3B0C3693A1C1E6D048D6DFBF76F10BCB9F7EFAC5179E5FBAB2DFCE5B23CD13CA150C79A97F95127A39C53AF9DCB9370C27F0E44261AE9E74D249A6841085DB6EBB2D3CC3ED2F14B67A4DABE1E8273FF949B3D9115EA47E412B688492EF2196F1C87AC051A674875A43853D7843C13E6B275C22F11FE1B988024939790FA3A4C9A8482EB10770CE1545F09EE878F380B650EC288B4520218686F8A744C398D7918CE3601C72C82137DF7CB31CE8F650AAB20C7A1649B7124439713D25ED2E365AC8A42482FDF5A58351C07668ED27AD15A9E1965891092529C074219DBD044707ABA61CA48FD7405A115E84F2CC160122CE1C4A145646773B98603FCF9B376FD1A245DE1BBBFCF2CB6D7FFA4CA15C0D7263B462353D67BFB17F02F629CDBCDECBA0F7ED9FF17AD35881EA054E68239B63F062C56A44AA5DE85330AF21CAB0CF2405FD243F7D636FFF5E7B924A6EC1FABCDAE03D068AAC1CD535D1794257D33AAA6D09BFE4D836636B13516DAB02076B0C57878D3167CE1C9303421A0BCDEEF34422A3B0636887FDA0830EBAE4924B04C5D7040AD429EABA3DF6D8E3FEFBEF27F15CD255A57D52F2B55A089EB1C2D49EFF5CBF8179238BA5E78AE735231FB5864AE0C75FB3E4E34946895583CB8AC63244C23B21A8DB15B06C716423240A765AED3D75D56A00A39A31B3696C29A92BA1011DD36886F511471C619B1F190BCD5992C402C42C5676F20C5336C84F75CE6C117255D7D3DDB9D19C5973E6CCEEAA121C8E51BB4A206F570FEBDD05B9FC3A18BE1800A3B5D2ACC669A34E3496BB54474DA55E28E0C2562962F4C5A8F258B379B649913AED303FB8DA5164800BFCB69DFCE146D6B03F575BC9F03034D230056CEAB67FD5BA17162F7BE6E9C58B97AC5CB366201F5D44F612DC20E9A2B8813F6052759EB8271B5DC0DAFEE250D9C29032DC6BAFBDCC157EE8A187C6FB3C9EB7AAEEE40483DC533CC40E3695219E5148A5B7692CD5259149864C7E24D4CD12BB94D92071887086A292F59A6BAEF9E8473F9A146D6E09EB89F80D55845C1026E5F6DB6FDF679F7D70B2EDF32605D4C45BF527C4A308B373977F2AE8F9A7E04BA5905D12290EC64305576343620A31CD23A7BAB75476ACCF33155E8E30512A39450A4BA913ABE4BB54F4D99352665692505CCA54EF1BDEF0863BEEB8C3775F40D0930B4449084B89BC60A14BF69FE43B732E6B69CCE7D2544037E81B1B372395A99C8FF49F91CB7B7811EDE4DA0D6E50142883D9B367D380D2EE62926BCC96BDFA27DAD187618510963CD5CB979B7BB89CAC4C0C14BBB5AD14D834256866CD9A656B71CB2DB7E88B261C412FB23ACAF0019C561F05E562138751D2C06079C449B56F4184D78C1C7038B2C427C51DC1727866784D7225F6540EAE68478AD6BEF2BAD7BDEE9E7BEE41A9788C18C15E1C7736B08C9E1D76D8E1AF7FFD2B4CAEB4156124DA3F34C222EE4A092C53540AD86AAD4B723B14CA9BCFB094D2A684F4F105013092B8B183F9F8E38FAB696612A12D9A0A6643B1995231A48694BA6E51C121163D9566284C7FEC309CF276058CF583E09226E6F873E818DB0D37DC70D86187292B0F45BC42329B6EBAE9E2C58B6D65297C62D55A623C38623C117CD8F95FBEA2350595C2CFADA466F8CFD868CE8633A74E21C552B85285D194E6F7583BD46AFD81D2E58105C5E252F8ECADB04CB3C6462DA6B955F25B7CA6BCA2BC1A9522C41D8A3685C50475542B2D9ED2C281EEC813C0E6C6A660AAEDE27673BB728E7FEEEE4EAB1D8DBAD9E9F5D5FD038383C3CB96AF7AE1F9979E79EEC5E5CB560F8FD8EDD2A25570951A32F6377D6CBC3FE7C58A428882C37887693C5DA2FC281DBB68E536DE8745324CBC88D69BB467A16FB92426E1A6F6A1B263ECA6A1C8D5B11DD9B21E31CF4BAC05DAF102F7128C22845571FD2742C4709672453EBC09C43189C9F2EDB7DFDE3E635F41D934221FF204652D74300C2E1C24F757318930BA52A2FDC5080941CBE896735312DCA1CDADD15D3C6BA6E05DEC76203C21D6F88718132EE5983996B4DC10D1BF67CC87188F7C33808CB455225F51542938AA8D3436898381CF979F963C0FC947B302899AA8F19C16DD07A24BBCFFA54531DBCBF6CC39E79C73FCF1C7B32592A21BB4F61ED68312AB36B6C30F3FFC073FF881FDC6F600A17B5FF5EE234C89232AB12722300B6D453ABA69EE048B1E622483DCB38DD6C6A01DCBB9106F179C0F020A48E8FBAA590DD2D685F0A3C88A4561C8EC410B6C5FA430F4D39FFEB4B93E5CC48E09FCCC7605AC1049607FB87A8A976D30B69C52122274931AE60376233A7063AE259116D4C7ABF8A70DA05EB46E0C6D310366AC28D75C1F5C1583778878AE7F5D01CB76292574BC018D63C03F217DE4EB6A8A90142546495B313719312F33C3683789E48BC2D1BE0ABFEADA290262185301EBB2B65214E852B2419B38C41DCCE1B2C2BFFEF5AF9BC742DA8EFC45D3F5CCB6CD6C3FE9E79883B0FC79B37BD898B868B5A084B4B5367D37343490E4230E7D1B4CDA798757DAC77A7BF1A50670C54C07AF195CCBD410C02453E811D849EC5F0D6E226DA0ECA3C84B549F5746D5B6E460AD337AC005F9591E378B0AB8C04E174CD1452E396985F8F279AC2439F2B9679229A966231D693457AEC82B3B16BFB0F4E9675F78E9A5156BD7350A17BF838037C712808F9D55ADAEDFA372349934F216F24BC6130728540C2E32883A00E3090E95515E7CF1C5A79F7E3ADB51BAAD52F457A0716F88C1E724F2C3F97A47B61DEA1F11A690A977717CC9078A0AE9AC7D56892F94967DDD97A8621D2B308E2D4F6B6466C9761B42DFA6D7BE4E295E1AD9EAC713A0B87444FCBC7FD08C748FDE079A4010D31B95825199DEAADFD0A4796599B8A60252C68A79AAFE4FB2C0E6CD8EA239EBF615A421BC16CA594801EB46AC084DA2A82E0D5157215E951A801E52B81805AB51B77C1DF48A7DDDDE131F2BD910285A5B29F3967EF5AB5FC90F564F272F7A92880E1D6F4AA5E94B0960D3AC3654D31C6CD4DD77DFFD9DEF7CE769A79DA6CF034F25F0E683C942D8AACEB214A715E2867D28FBBE64777A450EE70CE5B6C2ACF14FE91ED153C3E0E12BFE851FC6614291D8F877DB6D379BB15FFEF29778F3496450F26C4ABA08D35B8D4D4BA189B6DFC035C6A499F5469536003A0245A85B5B5CD1A7D8C889828A4E4B9034D24399C3937B118A7366EA012DCE0E47B39263D6F3A2EDC2E8F801533A73E64C40DDFF7A089AC2364143B054442A22FB4F8D37F4023FE139CF157C0E31F36256A0193725BDEB7F7ADB884E4DB6F19A8E0D030740FC9A6386A08909813F5700929A789521B19708DA4B1FE3D3D68BFE7290F1919F1A458AE78FCD9BDEF4261BCACF7EF6B3DC7E8F28B0B4184AB592E5B9D58E74AB2DB7B085B43D610AAFA01F1AE4F106EA2D0F9859C3626AC64ECE9AC196F66D79C0CC5A716C1219E9A3F2407ADFAC56A34C340F98EE4628E07CC757F334303C5949DE25B1D1CC9AD566C8AB957265D0D55DAD7434333BB1D9B2652B4CDE3DF7C24B4B162F5DD53F501FC98D0CFBEB487D404A8BD494A21C7E55F4425E2711E7293293F1882944A2145C35CB04E54CDCCEA61A1E5D903536E166475F78E185667F094542A25A80DBAAEB0F2ACF468246FB1E90243888928D6CC7CCA467E6DA771381C1E921B6862078DFFBDE77D34D37D92F51D8E296933D8B98A62302A24740DC5068623B75635694FA7968EF430C122771D54D217A8413E7E02BAE499FCA36E44E496EA6B1993C1B581160D5E0C3188021D2748D90A55DCC903FE8A083AEBBEE3A12DE996BFED8883D1E162C5870E9A5970697204448E113C309ACD42F393FB4481669F111E8CA39C126FBFAD7BFFE37BFF90D7FCADA40092889ADB7DEFAA1871E0AA30B4C7D4CAF5486D1FE429A10AEB425463C89AA97E596AB27A74DE9587B4398B1E208C695DCC58E679BA92E7CA79D76320175C515576832B53A15D70323B405DE995216CEA41CF5EE0850225E2FBEF8225BD7A766758818A1669B63C8D8C8B5833243DCC91C07D2486D0CE927DA1CD93521D8225CC1686D036CB7DD767FF8C31F42E1915343BCDF7EFBCD9D3BF78C33CEE0A4D395124FDDB30550F55E4A8864A35B83C8A1D75CD1892871EC3A82B20B69C82D944FF19BC47B99A1CD8BF0CA98608098CF4B0EB70C7A1C621B27E9673915220FF1753E8838B34A6D116D1BFB4C44189DEB51CC2F14C6AECDEA534F3D958C7EF1E1F172C09ED2EECB5FFEF2D1471F6D9FFCEC673F6B323914C48226F79003B80A3CA0727364913C8F34CA58DB637DC4C046690E8D3D1B458D210F2CA78D7ABE92B99A29D0DA369B5B6CBA911D78DBC73D3D5D2414F18347C2B01E1B21CBF6F5659DE8E0A8803BB34CAC87EB03D11E7AE5A7B51E01E65E01E752B2C2694C5BF02BBB700E93AEAF5BCBA9CED21A61EA8EAC691B282C59FC92EDBC1797DA8E5ABD6EA05168FFB4F85F9D58AE4D0A662949F5129ACE6F320401C251B565E3115364050B238123881269CB3C5E1912D1153625266A25B6A369144D3C6C78279E78A289F8679F7D96548DB00918988D48118EF84B628BD35D77DDF51DEF78876D2085A09564E2B9AEBFFEFA430E3944D1721B891D6CDB31366C5C2EEA3DEC2B14987280F186ED52F698283636BD0259C2972AC129053F81E162E3BFF1C61B4DD37BEE7E76852A8C9513CDC607C13118EEA5A0AE3793B3C8AECC4695321064837BD1854D5CC7B05192D4A1CA0BEE21265C78192918C43A925A16036975E912CC0B5F3489AB4D79820A8AE4C7F331B5A813E07CBC2299107D4AAEA98CA6773294091E6F3EC91A98296343029A00C20E3B00B3434B66CA83BDF1DEF7BEF7AB5FFD2ADB86487BE66A0A5453D488F4E0AAFD438CB0CF9BB1113DABA30D2CD8A682D84951AF65CF82FEB00DFFB6B7BDEDC73FFE31BF11F446991A09509D08956F72658198686E06E52F90089288724CD5FD42DCA2F6D37E79EEB9E77EEE739FB34D22F438599EEDB7DF1E1830836F38E6760EE6FEFBEF7FE79D77DA49B49901CEEDAB01E12467A8DA3C024C904BA2C5908D410C27427A7348F9BCEFC661573651BFFBEEBB9B57668F60AA614CA8E3C406B40FB9639D60E072B23C8A5310EE12565CAD12650DB3DC267328A8F5057EE9E8EA50F182D9D7C9415422376488C112D5708E1782C63E00BDA86B725FFB25991772078418D5E92B4498AAEF434CCD216D635A5C13DA7C76951D77DCF181071EC8BBD9B70E0365739833D994DE8E4D3699634768D2A49E22DB6A139A0BD3E146DD5B2208E822D2B2BE3C067143DC381B599F45907A4601670E26AED5CDAAEBA743267091FA6DB11F74A83EAA788D0CE61AA85E684FBB52D624B41596AE1958B9A2DFFCE0356BD6D93F0BFFBED54A8CA8FDBC79F3EC2E8B162D02C0365E084E3113A0469E95C287B6B2080F5139938FA1E9E22C8CC82ED85EF65395062AC950C3106DA04AEC1F0C768CDA1EDB0AB63B6172082FE7457C8C18867E29690E1AD9F693D9E6365433E2EC76175D7491B9E94AE23269A8840F7DE843B7DC720BF373EAA9A79E73CE3912CAC101F779091C94C5CA5108B44F38E1043339613B525E5CCD71BD184582F891FB6C3D688B50A4C34BE00E7F48B8855999F3E7CF7FF0C107891D0930AC567DC131F860F0CABD333D01D275A38D365A53BCEC33662C2F59B28467876928755CBB4C7816D92EB7DD765B9A766056DB4F1B83A931739290F8BE55009B47B45921761445AEA94FAD0CAC50442CD3C864E9F71EA4135C24292ACD6C2F31DB4DD7101E198A4D0928C1BE683366CEA52F4AE69A92B0369FB62115D234C9FEFCF3CFA3A514046639E6CC99630F28BD6ED36B9FF73800BBE6DBDFFEF69FFEF4A776404C2B784894E4B52F9065960061D97DCD1A48234F351B4906933621DA3138306DE2CA407928CFBD901480D877BEF39D37DC700387D71EDF96CC8C21FB69EE7556546129C1E9B303590431507744E037C4769CE4AD8E3CF248B3B649C448B233786609DD9F1625B012F4D482936EA728DFFC7EEC7E6C2FCD8FECDAF65EC56C6FA5A21105B20FD4C7C94B3CC189EC2E471C71C497BEF4250A6F9AB16F849F044EAE10DDB62554A82675EB956B18DD2F4744954A8A4F6C10E8115EF9CA57DA010F31D18050F58524C42993B19A7950305692C38ADE87D1342049ECC5043E8EF3DED2B950A752D48F6D65DBE5EF7FFF7B7FBF825DA314706735CC9EBDE1461B6D3879726F778FC9C7DC16C893C4D544B123657F9BEEA5E01E0F3332B0BE0CCECF9789A6305647846625F3093F450E3BD22005CC198BA9BB1113FB03037966AB5964F1ECBF79C9C7DA3C04B46AD5EA75E6FFD6338FFF60DF28495E9FB0D1F4EB5FFF7A3BF9CF3CF30CFFA4AB0167800320D759C1228C061C44A1E183ABE255724282401D9EA99AC81C3ABF94AD6469F1A5C0BFBCF18D6FFCF5AF7FED29E0FF95970804948DE35E36B1A79F7EFAF9E79F4FEC1AF985644735E2B20BEF1A62050EC539369F6488F19E15EF42652229EC4F1E40A4FA5AAC10F9AC4CDDB7BFFDED7BEFBDF7073FF881C9F45004BA61DD93FDEBE52F069074B6CC1AAC19F43783647791B43395F9C4134F48E6CAAEB26F61AE21B94CAFECB1C71E5B6EB9E5C9279F6CC288A5C48A1291B289A1534E39E5539FFA9410DDD819BC9AAE3E381410DC57BFFAD5E6EED880F918C70AE9A9702E93C9844B197FFEF39F3FFEF8E3D90936ABB42EA88CEE23A9D67EEABE2EFA46A91CBBEC76DB6D67A3BDEDB6DB582605E224105920493D7B11C865A352F7A5EA2C148FC83A900F59AC5A66CF40D068AF9D77DEF9D65B6F2D3587C7EDD006E35EE2B4625A88EE6A0B09356D1739E9A493CE3AEB2C948ADD82D39AC40265EDD51033359AD23476B82A118F53CE80FA9154B51933AB14778DAF6FBAE9A6A681162E5C087D3FB2BE24F7C861A9D45E06A8AC43822E9E423289642C21B6FB3DEAA8A32EBFFC724E0728934A41399E451E2E4662932013503C3C1000F0C8FEE0D06FD166E3E69B6F7EF7BBDFCD39B5619C71C619B6DB43C47F21737030A498054584018DEDEDF93815CD5646DF97448A72208C4EEA4BE871D265E1714D2595C7936FC4E4F041CD3DB8FAEAAB91D8C155790557C85E0A56EB9CA6E3D4C7370A0A6EA4AE4D2CA02D51737813BF156308D1604C634F6962A4B977D8CA09D5A5804D50D452137693A74DDBC014F094BE49058A240F103592A14CF4D02D8ACA4253868AF2C1D216F9861B182E59162DAFB1A3E277E7FA49777D616574E47E4CDA0A5EA180D90A69411B5D54360FE44B989941DA5CB76EB048950D16145123C3C323E61FDB308BA1E6A9E5D455792B2C3FDE5A527C493769337676DA692773F56C2B9862FED39FFE8449C8CE264B448B1E8FA1E5D864B1CA9BD8B2373389D18979C77603C594DE3AD15C111E81D03514290D24E0CBF580316E5A34E0A15563D68C9D706CABD8D93BF7DC736D269165A67B7EF18B5F4053D0702CF3363F3496C09CA7D088F914732F8C13F661B3157EF4A31F85C86625372E44B2B0523F3E4C199B5EDBB736C3485854BB32581AB0771AECD6F6E61DEF78C7CF7FFE7399EDDEF86846DE188F2A52098AAD97ADB8C917490AC54BED2EED9C97DE1345871109F4BE4E2997863CCACB1022B65C7F2585213DC11580F6A8DD0D55DA7CC0A4ADFDC93499B4755A3039ECB7DF7EFFEB7FFD2FF15E790F4FA0B0CCA5CC010A24B1CB90CD8967F1554105AD8DD86F00D7ED4F4A964BCE785813D2D0FE5A62DC6565ED4FDB6EBBAD3903211AA932E0DA4B5785D90158D474443A90BB49916B3E3592301A2EAE308FDE8418ED00830334FDD0430F25BA83B803CF1C1C98119B46310F82643ED5E285BBFDC9BCE73BEEB803EBC1F612615B2DF715575CF1E94F7FBA517479B26D4C5C04B3866D76C209279C73CE394A0A08FE6357B60D6F1A9479C67157C01C3C9A3DBEA9673368ECCAF65C575D751545C6D89D8A07900B5048438DC2E0B5368D6BE381D116E22A490312E104E7ECA7EDC06F7EF39B25CC816A567DD73FE5D715E49087806F60B297B6CD1EB3ADCFB7BFA8E682EF93C7B159C29414E614435CA6FC78118B3056972D8D815497FDDEB370239FB1905A89B01093C3F05653FD86A08BB764042D07B4803BE540CA9EDE2E34714F6F0E13AF37D62AF8ECFDB3463D554853D22D5775F5310AE7C3E86CB11ECCC6611E368179F964AD4F666988054E14B411880E9D64629AA67D6D8B0E0C0C9A7458B9A27FC5329B0B53B4A170D2B322408DC01DF10752EF275060E45D749885F8C53436214595910DE9B2CB2E3BF2C823CDB3B1FD77CC31C7D83F5FF7BAD7DD7DF7DDF27AD5B784CD4DD52F262A3C9198C0127CA5148517DFD89B4472A4AD5F96020EB1DE2EC4E8289E87CD86C9057B04F0CF2FBCF082ED1CBA912386C450C173890857721C8383F712FD2656AEBCF24ABBACD0BF64BED59655051869C158C40CD8FB4D36D9C4E644C01351D5484C9038F7611FE4A01949F7DF7F3F3A003F8CCB021F433C29F927248BE40EF0510C7605C774CCCCA63EEEB8E3F0816C2798838E3B286B4089F3768893ADA0274542CB82CE158567BD681AD88E8551359A5268E68DD9906C4A7DBCC1FEF41FFFF11FBFFAD5AF828BCFDB17E92A9D396EA934F241DA12532FE48B83A551ECA7C9D3EF7FFFFB49AC7B31B9BCF7DE7B5F7FFDF504126D116D0076051892597413D6B6B22529691B800A511BE18F7FFC63F31A4F3BED347B641B9BCD989F2566B2BD7A0D410CB80F472244FCA3A49ED9CA071C70C099679EE9BDDE303AC2CC6F94430563983A3650FBEB6B5FFBDADFFFFEF79EDF74EEDCB9FBEFBFFF97BFFC65EA06B93E4B89D694B8F0E21B396613A55669A96B3E08158FCE7E524044E18984530943C4A6024EABAC00E50AE649C0EC55AF7AD59FFFFC67A64B649632FE880760C4D8EF15F8B1AF730BD5253303A645C0039BF1FDDDEF7E170E1966C026D9E6EAFDEF7FBF7DF7D24B2F35A56E0FAE3E19985FB63AF61B5153790C87C78D7296858AF00914FFE2D9172C58F0B9CF7D4EA6D804C43E59A45E6727D88473AE11DAE03DC528E957AA5DDE86B142E279C96B9A125156B4C6961ECB49FBAA19BBA127AA4030414F635A10F0E623C67BF0DF98E24E8A946A4EC56C1AA877C60C9BFF69DD3D5D211905C2928E1C1A6C30D1501363B3E708942CF85C66E28823145E807932E2B1734CB3DDBCD1D29CEB15701649FF6D8DC1ECE5D9FEAE4AD6647FDB56AE2F5BBAE2B9E75EC82B43D6C6CAA222375CC0AFEC0E9582B4728C091D6F21D1BEB6C36CBA007F6254E2C272D8CE3AEBAC2F7CE10BEC3F7150D8207DD3CD10ABD014BBE027D741A5B1B1C06DB607EDE510DB093CEFBCF34CC1CBB19E00DCF4725F764A71C7652CFB3FF14452C0215A75DB6FBFFDE38F3FCE493EFEF8E3CF3EFB6C1B391D1571769302020A853DC1F910ED478482FD129FD8A60E43A411FB80FA64957D52ADD7912FA170A454704CD896B15562A340DC23FC33D43F72C40343A478503690E010D9A333BC5D81089ECDC375D75D77E0810702E593CB4E20441D0629A32F75B70C2EE46337DA7CF3CD09ADEB198543E16489CF2F73B567F69EC0ACD7EECC332605740A3E0D1F22E5E17BDEF39EFBEEBB0F73417FB2DFDB98F19869EC487C952DAAF4215D92582CDC4D750E26CD2CF40D336FA7E3E0830FBEE1861B2064B52BDB5651F35AB143D8B06913A4DD8E97E911005227186DE60F816D96F21065269BD3831F2B8E7C3F38678032399B40206FC418D07C843AD9878A6D602233A58ADF725FDC65559EC8E0D3CC4BD69169F20B9A14C05A946E163B4495309BE8574C2E0F192154E03B04F3524181AC01E5CBD5B75116864FBEDA95ED03D2DFFC12698632A6DB1561E71271AC599C2046EDF304AE45DD9339E423BA435E8D6D21FBBCED37A60E9A5BF8DAF4EC04EAA4D8144701E33DA61C235A2611CD2FD972A10D9AE31DEB314F6BFBCB06A06F116FA39681E9B215B435F54DA31345E76C066DFA6836596CD091B8C5991ADBA631101DCD6E53F6D3674CDD70C39939915B18D186A6ED792CA0AC01F88468142FA4406A8C08A895C52AC962491C202B649534A472FFABA150E48DA1415330EB9999F578705620BEBBBA7B8B8BA405EFD51A33604D012F5FDE6FD6706140648DBA14709A77224E47316928333C9E07D9FE7BEA4600D401D7B4C744736013007D14BF15671500C2C73FFEF16F7DEB5B2620D88EE61FFFEE77BF83360525817B4DA54A2944CF4F733B162D5AC459B5BD6B23C79B6C17F413BFD2364A0AC926F9DFF8EB3624240B7FF5657CE4026CAB0143204F66A2D63E4F731EFBBA4A298223DFB6AFA850C4E30643115778EEB9E7A06F84C988425E8FAAC0E927D90C1EF8C9279F24362EE1624B80A2F5D8727819155C51F445A14E0FE622A7AB5610DC1DE80077B7B5C040C100B2E932B168DFFAC8473E72DB6DB7D9537844777B6EC926D65CC0DB6FBF9D8067A5E8EA233C4888092AAE8040F4A056AD827D0C29E323C0AC057D2A7D01A832EE6AB1A075DF6EBBEDA85952CB4BFE8AFD04569902127B4C5F6B415D32AAC5A68E421A6176BC3A11579ABDB1A3CAEF4D1CB1285CCD3C4B9BC0E078B0B30894F5194D6D6395877964195A592B1B1CAC4673DBEA945E482E7B04F3C2CF3FFF7C22C3EA0B821EB5ABD9956D905C0AC906BE173FE4139FF8C4C5175FEC938B5E70FBD8A6083B89D84BF1F308341846DFDBF1B13B0ACC0F1097F467335259B1B254481230F755EFF2CCA462D107045D406FD99CDB46B5EFAAA74B7054EAB6A58F3DF6D86F7EF39B9889A65CCD0155B911F3633B814889D8BB84CC80798649F391D12C968AE0C4B34C9C774F0022E3D27E9A89BFEBAEBB7EFBDBDF0E45055788141FE3C96DAD2F163FA574DC88A9B3676FC4AEE4E3B57A0B0EB3565A4DFC5A41F9EC594C70D9E6D9638F3D4CA4D386D9FE4446DF76789238CA6FEDE022E1311C194352ED8FA25F6FB1630A9A1AFBEF94BE2E3BBAD3A74FEDEAEC40A8519BC436A21481B92640810B5548930121B63257625BAD76685B56121A00B71E0F1C5611FA6B983D5098C6EB1953316D7815E5C19D454CACB966CDBAA52F2D37D1D0DFBFDA5CFDCEEE5AA17DF37BE6B1ED8C4318EC4A3EBEAFF18C57A74BCC870C963DAC9D0ABABEDB64FA40134D94C9531256223D060DA43029443C7C2D075862DB22361E53CF175C7041281AC47200DA5F364E629B66E49A0233CF7BC18205614240E0C4AFF6E86856346CB0F3831F809925971489E367CCC6BC70E142B8603EFCE10F5F7BEDB57803975C72C9273FF949D35276AE4A78199B96BDF6DAEBA69B6E422F9AD7629FBCF1C61B012B726C4C0A985D92BAD655282AA9C310191B6CEB9B0500705775C992FB6AAF64BFD97DF7DD81D4122AC48D5025A576828A64281C40B553E802E008D163970503090F1F2639C60AC518DC42C237713542FC64293D20001B8E9023FB8461F045F925B64084793D7E5E44B30874102EC430EDFAC2ADC8CD521B28C5DEF138510F892B7964263DB28C44A9C904B283CADFF314B639EDB9487899B87CE73BDF79F3CD37B3E1A926B08B1C70C001BFF8C52FD0EBCABF6213085491C50E8FA20AF1B064C19B797C362A8F961614AA3466F767470637A96EAA7DCE38E38CB3CF3E1B2FCD066C7BD516CE0620F7C5FBC1EA44E2FF0A1E1EA1DFEEBFFA176B617365EAC4E4830D4F04D4BEE0DB3E435E962A8C8AEBE384A202BB247B42E101A4073A554574CA7F338DBE97868AF5D96C5E5ED9DEDE79E79D7FF8C31F86982FE776360F76F1ABAEBAEAB0C30EA3DC80FBDA81B5FB8AC68BCCB440E6A252514510032662E15D5254956AF994E8C5ED9695A38A9EF1C41A9601D16FB07B1C649BC0CF7EF6B3266C43B46BBD03E63137A533EB15B0A49F2DD07BDEF39E9FFDEC673821ECCF6F7CE31B871E7A688831F0DC42AD14FD196C6FB1CC36B991D2368D11F95689240AD8EE98B34D55024646A56A677E839933A7CF9EB521D61FC80EFC831C80D351F5654842639A3FCC03341DAB597148BA3557D59CD66A0C1C56336B16A640254D6C6D061B8DF5C90380D0B9D3B0D636506E9EAF58B16AD9D2156BD742789B7BBC76B16683F9CADB05C77B8F88C526B80623E32DA4DDE588238EB0DD26878C8C0B014C90470A03A8E64F85BC92987C91DACD1049307031C59080103187D834EB984E79B45D5ACD0DF135A9F093867B597A5791312D19E0520F7915464CB023442DFF648709926A9208D22E3E23708D6A16259E7C55836615FDA1805E7078252D194A9791331E7D589DDBE5DD8A5389EF528529A52E7B5CC03129E04F7DEA53B7DE7AEBC30F3F8C38F0781F58176C5AEC0A0832E5CCF6DB6F3F33237088017B338DED564E88CD12E4E7E1EB0B9E8A860027E24B62E4FD0797A64D6203738FEA147A96A946EC0AB149741D7D6FEFA91DB2BD07375C88E10AC50314AED76CAB45A61A26DA4DC1556933D87D3DD597E706525709FB005EA0FD52BAA79D1D53E10A1BC06B5FFBDA7BEFBD175249EAAFD80CF68CE2E64B2371BAE6DC6356B4229A55BB94A79F43436491123589E5187947B83445D9A8B342A99255B68E6CAFE0821F4CA0A94925E3D5D19DEE9649AC02506B3F6C3E7B4FA843AEB90E2CCA15A495D688585D1AFBFA218E783A0FC6F6EC8CC125986C36ECBD3DA6E20AF8548A48D9153802285D291B751C97BC4A62597C1A499BB1E36D058F39E618B389CDD4861F9458A96077D8CD6203D5A3297A3A01AF80A790E397F42F11690949681F0C2B29DAF633AB0FE073B2D9D836C48138117859F0A0B592FAB2837C70DF73797B1BA408103D67B6691101B63FA59A8B8D379E69BB7CEAD4BE028E38D2E2C0CC1A69522B309205FE30C96251921D8CAA4F78ACDF884D3D6156C943C3EB5157692D6D1D12539B694E526D9BBFB87E43AD0FA5CE878603764071125AD5C0F9D7B3DAD80B1346FC5C9722B1A5E01E6BEF43E8449289166AF77B85E4494842589FFF662FD65D673A5503DB4FF363ECF7B832E79D77DEA73FFDE9127996468B465447EEF5398697E9014BB00AA2E2F56BC17D3684A565A6E2E73EF739EF3AA8906082DC33AE8F2D8ABD31294C0702CD21AC5EE0C36D36F4380AAA6BFE15E9120819B39A588B3A8265AEAF40651CD27CE6931C2463C0F6C2995368DD03AA1137541FF208A180ECE12C4A1C90A3A2450487889EED61C21C92D0D4B68B10796A8A056CE4D4534FBDF0C20BD1D32225104E0D914DC48FB8B4D4B096B5E4706791BA35B4A1EB85CC170745180D5F30690B6B29814D650D60C6C614207469B74641EA7154392DD09FCE946F1488592005994482555574806AB19FFBEFBFBF7966F5A2E5705670AF82FD963B185C8F3CFBA72A70148154685ADB2689556DBEBE2338DE120F2317D39F1A24A7A31B98A69175CE5B7B3225D3D86C83DA56B4B8DFB73E6C1EA2C92BED28BCB16FB0A16C8B6FDBEC5947A4B6050C66545A4AAE40969D304C12A9A96040CB754757230C851E93F759B31A2AC3B5CA407338E99B942D4FFB66D6562D5F3663EAA4D34E3AF7539F3ABDBBD36ED1FF9DAFDFF6EEC3DE631EDC7062DE50DEF3A7AB6FCA60FFCA6DE66DBBE8C927F2204D77EFE0F0406834AB1D791674686804BB4D2BAE6C261910494E848FE659263E07368B14C2020C1E7CF0C1175D7451E65E25CD2A6B490AAB14B262964AAD4291C010B00037E1F864115FDD22C6508905000185BF4384C2722492A22ADFFCE3871F7EA8B0595AE02CDED8C766CC98628B6A523527E8C89544CB33181EA61A38BF71A3C537D042D546E68D544F9E7F6E845CAC8D32A9A6EBE1E6C560D737F9893C0669AD6ABB275094C9C599EEC1A14069A93D4D5228F262B2EC72632BE0245DDFB52938262015A50181D1D125BFE281AC3C0E1B82924476B92AADE556EA08F9AF03D38710982367D281F085ADA26D2F5F8A9AB4B58D3BFDF4D3617B5795A7E2752F4B01A7B18152EAF8296D596D67D33F0ED483B72D349E2C12E095EC15FF12ED833D1181D6E0E20DB66BCF3DF7DC638F3D964D6C827BC992254C29830186CDFC60A6C852F4BE91C0A5BEB6B5747292081A07664C56DB7E5E79E595471D7594B748E40D207C1158E2F14022C8FF538ECD56FFB0C30EBBFAEAABC9D19226E7A0A94541FB6BF6ECD9A6AB98A5D34E3BEDB2CB2EB3BBA38FABB1C19C1D431BA7BD27F24F34D20757B838A6B7502AEC07796FFFA202AEB83E6EC41889A8DBEF15A8B8E28A2B4E3EF964DB9F0AB92BE4036A01E340D95C4DAC37C14759E14572179791C5B53BA2564BA0E510A379CC18918CE052DA89AB7594ED953ABEF4E07C7784A62F49C24B43D964AEC423712F5D2A718DCC4384777975EE77A97ABC6352436082A42D7DC533BEE94104E5B307B7614BFB1290DB70C30D6DADC7CC837A081E05668C248B746FEAD0C79E978BAC58172073269C22EFBC7DF8E4AEFACAB5265B67CCDEE8D9975E08B5EAB49E298379295D6856928146164C2D6F34B3B172D9EB8F38B4D15159D66C6C336B931F7CE9ABD9532F7666CD49DD3DCB06D685AE70DEE9679FF599B34D09B0C6B9095B4BF37C653DA38C028A31EC0C1D43827F9EBF2C8CEE9BA2ECB5EC1E0278A8120C6B1F8EF5389B64342CD7BF84FE6BB8A66A20426C8AEC9C3EF5D453D274F5D8D042B5B8B94E538CC86B0206D1700DAE15D32F7C59CECFFA6D9A2F582DAFCDB01B4F9ADC03272DACCE0AD19866CF838023431C45AC6099BDBAD7F0D048B10B4367AD9AA449BDD16CC472C9E1E1C1E22B26DFABDAFD69566D64AD4A27D0F9E4F04D09FAE3AAA29AAC59195BF1549AD9E8466649ECE2D78CEC2D8A08D5638FE5F6E5F1D8109FB2F21FE6E5D500594C657D64C9D23A4D7160D15F346307723D1D8C6892890AE4BE5C052C0F8C1963609C529B13DBB5E4C0986A7FC215D36359C7EB6E645F79F39BDF7CF7DD7763DF1C71C41137DE7823F623C13D799C401398670819EC2B471F7D341D4C914120DA280A22B62630A78E873C8C3143F77653CA2A300B50E7E2C81410CCDE7098E9A92CF908F30071C5DD76DBCD7C682A9B290144A04B7742F183BD3B9E8192C492EED04679E145A7EFA5A1D8A08C3F05156D7E8E3BEEB86F7DEB5BA6B001BB6A7ABDB13F41A88DAB292842B1AF3EC07110B98418DC184CA9E781CDC6BBDEF5AE9B6FBE99002000570FA8E18EDA48240BD1BB72E644532C926D2F5B0F39E4906F7CE31B1852AC9442BEFE79B99A690E35000E4508E4C4134F34E36F4C05AC4196A608F559CA5CF8B503012376B0AA6B35E6593FF9A72C271C213C7BC922A185E58293BBC57C014A02B60E7032EBA256692236B1E7B529B29D80BF086AAC11FBAEAAE2967A219B5EFB241B924270F0165A5F463EADBBA7122A238D64B53D6B73A86F93D9FFBEF5768FDCF5BB473AFBCD337EC3BEEF1EEE489F5AF38FE9F3371AEE9CB2626DBAF9B49E8EAE4E9B9BE9DD3D3BCDDDF2AC033E1806C2F4109667E641D69AF958AA23F566489A23F522719EB5CACF6CF03058C9754405AAADA7AFB092F12D66053B8FA2BA33E39E0201CF8ADA1C4DC298B67160F14FF238AA7760CEC173A9320D6FCD5755F940484B012BAB47A84ADE262B27D156F2C44B098CA4480EDB1DBBBAF25633BDBDB90EAED65A840985FCAA14CB5620B30A0AE88E5AA7E876F16F6204C6FEDAACA62D4AAC46C1EC4C70D964BEC9F642FBBABE34F5B4D16C39C4F68436B3F63805D8643D03781A29B927C8E9DA89ABB4B522978EA48B803047A2462ACD830496ED549B3DD364CF3DF71C89522FECBC5E244A29E8D6BC79F3A05C470D43C8C507ECCC98432C90453ABA2393A0ECA64EB0FD51841374B319F345DAD8C71B43B49AC5F46BE608B05E542372C1F3F6C9096B7FD95037DE786320AF36AB6F7DEB5BBFFBDDEF7A4312F345009F1033B8286C30846941BD49B565A9B72042C76E61BE75121BC56353CA23D1CA0AD04476193FD216D73CE0EBAFBFDE5604EA0066525D987846F53B0A317D03CA3714BEA61D19D26C9202596C27DC8C24BD63CE8F7281041B6C0B714D5EBEA64519D33476C3F4C7538000A0379ED7C9DFEB9F2A60B690DDEBB6DB6E7BFBDBDFCE05495286D1E5F22267F541239AF161004106EE294BE99D558AFBC95DE037AABCE289D42348181950BEE4BCB7DD76DB871E7A8819566CC61F523D970A6D094EA8EEB3E288C1834B30B71BD09A6A1F53F1DAB11929BA3C7B9D32D0D2C4D0E7A9005D5B3414C14C447968234AF431649FCE9C3B77EEC2850B0F3BECB0E02AEB3CDC9DB161646311A2809955AFAE7C1CCB16EBAAABAEFAE0073FE8EB00E56BBEEE75AFFBEBEF7E3718D2465A0DB5CE69937A562C5BD231250C6561DA47A75586B7187A69C6D4297D49BAB4D659EFE99D1B1AB37B36CE66D8CAA5D52D66CD7EE68945DBEFB05D3D6B4C99D677ECCEEF0A4573802487C7A69326F7AE59B7DA26AF6F72EB1989BD7134B0E150C37616480041C942013A781A24C6A9A79E7ACA29A768D39AE96F92870ED682919614B09F31BFB2EC4F2681CC97AC43DF2B2944D23D84B6871AAC3FAA36ACBBEEBAEBCF7FFEB30A1F0582F04AC8D6D2A69B07CE46935FB74E0E034DD2AEEE3C943A6952AB1CA8D11C06265AAF0F179AA3A502C5F38EE787A157086253A749E16E55BC4962FEADFDAB9888AC2888229C9BD64742A3DE323CE12800FFD5D5350DDC4DEEF3A6AD244A81DE1AAFACA841DE05FBCE477A33C78D2ED21255799656CBFFD39791A56D6C6A5E10B0E3CD28DB61871DEEBFFF7EFB96487F54041246E7E9894141B39C147D93E03CBBF4D24B8F3FFE78883E2AE3775B1AEF5512C144C24DA3B3DBEC789B62838902E397274A63AB1FCF5933E6F5F9AB882908A379026115F58642F5DA67A8BF22D708CA9F9DBDF7DE7BDF72CB2DF6495309B6CBA1F2A61EE32D6F79CBCF7EF633C00E6941CE6CB7F329C01272CAC6C3D8582F556580A0A6ADFA473FFAD19FFCE427D017DB3FF7DD77DF7BEEB9C74688CB8B2CA67294007B88F809102B7626E9C167D7DC679F7DBEFFFDEF8F393FE4D74991EA973882A457D881044292827F1876A150C47EB543580E52749B6FBEF94E3BED74EFBDF79AC93F5E659D4E7A2904DD8C5D6888851C73CC31B6C1BCA964BB4EA904DCAC50040F422C2E329BD2561033D486F7C52F7EF197BFFCE54F7FFA53BB9AAF522DE9365B448A7A49F46EB6D966763AE0AEC1E7C3F2B035B2C7B719B6C32278A017D36316D485E8E07A72153B41F65E9C8032D74A31C9923AF7D7F7AEB337F27C5936DA8EEC9E0C47FB89FEE08DAE96C6E67DA51CB0DE3763C70B3B08B63F159CB00D6397B519983D7BB62D7A1671A069410D864CB3893DE38C33CE3AEB2CA90DE526D9B740F6BA8BD715575CF1A31FFDC8AC52322CB6DF4C1768843970FDD6EFADAA64C9B469D94BABA685916A2DBCB87998FA5F5BAF98F94858B6D194F4B58D978666F6D67B6ACD55CB9AF3B7785D6DFA70A837B6DBEA15AB57AD9CBBF9C6B59E8EA5FDCB67CD9DFDBA35BDFFF9FABDCD699E3D6BCE92C5797ABEABD78637541F6E6883113EE14951B7C445BC02B6C12B0A281B9D20813DBB6D3CE14081AF0B4234A6026E3F2CB65B80E608BEBEC71E7B7CE73BDFF1568BF02249EC505912FEF97B99C6648C88C9E0E5D05F2C14F1CCD7BCE63536CADFFEF6B745F5D17A240BF2C23E33B86E289256A6E6F1DA5C7476D50AF7B73A69720FC016536485C39716FB6C089589F195451C53A14EB24AD5ECD04449971C5F3E3498A42DCF9D3D5DADD6466C55B2DAE0E030E0203204707BD43ABA25D395AA29C63C51BF5ED03DA4E8F896180F4AFD5EC4645B9A53DFBC1A9213B2F4CC64BB87214BBC5A74E736516E42079F869D94148910FA6C9C79E69966DE42FD81CE93B42590227D2F8EFBF13CD1F15E9011B223893D927A21D268278D1A21CABDA01E64457C7C3EB4D9257AA94F30351BF4ACB6F7C403A92411A4880D40B0C8BCD2AF7CE52BA2B5B237C07C42F4363CEC76B7DD76BBEFBEFB2014F33D53992B1C74254D453E67BFB77B513E64BF34AD69DB9E267158DC8416C4C88173ECB30F448C485E82C5E5A9FFFDDFFFDDCC5CB6C7E1871F7EDD75D78D5791A2798390D2CE3975B102527927D8071BC9D1A6AEBD202DEA4C2DC91F3DF0C0034D524FB0FAEDFBF3C20B2F3CEFBCF3420CD598D0D973CF3D7FFCE31FE3927AD78A4996299CB491DC89C59388BA7D80404568536C7CD1F38FDA5F4DCD433A8889ACAEF5204BD128C4B4D91E0451C5EF1D5C8818D301792D495D89A4F9AA87093115E583CCC129D7D28C79235B364A492B4BC389BAC713F0F98DEAB154DE64D47870DA2809E3A42847E09BE9B68889924449348C637BF6934F3EF9820B2E50BB0E0D4F096F6F19DBFCDB2C017750AC48A8FEB4D95831B02E24956E930443EB4EFAEF636E5A7ED743230F876A7D5AD72603CF4E9F5E9B9B349A0383FDAF7CD52E4F3DBB748B9EDECDB79F5F9F540B1D61A319D366556AE9D2551B764D1A1A5EDD5BEB7BCF1E0787E1D0D3D5D7D3DDB57479DE1BB7566DF55D0DCEB1B1FD639AB8113B384901DBB3C0E775F1C5179F70C20912DD343F55CFA210E3432233680F41575DD3F1C668E2585E37DF7CF341071DC4A133E961A7159F9B332BBEA0F51AB704A2263A078196C4901406084FA0E4F62AEC8E54FB18EE0B2CB855CB5717DC56B074340A5D996F9D0DA6F6DAF24C9ED28B67607A19B354802F7C269D10138C2375B3706D18A966A4385179F429E4DC96B6ABF21E83495A5DB674952D8D3DA4899E8266CB3FD9284375CC872F891E52803E21DD8C8DCFA8D4022BE1AB59DAD72373BC1002E04D705F215094000EB1711EBC6EB431911E25D1E8AB81D3D81211F3969815C1C9F640C53F7D65B1C5106BC45EBFE69A6BCCBE26A4615361EA50E52E122E58CD7217C6CB712A6169DBC9BE4E188D8DCE1D4D229C72CA29F0FC8518C3B10F20BEC904632409EE0FD8956487DAD5B1582176FA5499134FA1A497FDD526D994AE28E1B6D8620BDAAE0968C64182178559A5A297F532F16D7B8384597B79BE5EB0F3C422F871EB41519948D5F6BFB2A35A247671B7C0A217221C8CD4383E0157DB72CB2D4DCAB0C3C723D81BEFB0A866C9D789D9F37AC22073556D436AE7DB20BFFDED6FEFBFFFFE22E1328D4B448EF1D0DAEBC8238FFCFCE73FEFEFE543B8A8223383AA45DF5C7930BC11CB412882AEF444C13441BB0B80938EDF9651595815CE016BF0C91DD5C68C67507A65ACF0BE42D3DC516E80B833C5B311224CDAAC49B15E53AE0D61538851710FC2C21F50FC001985B424344552D3B3BF955E083ACC74A59CB57B99347145D919B4AD8B3340E911B107404C2D43A127CDD636CC07AE4DE91A48D6CD3E78B3C5B5A77AB7E94907D70DBC18FA1AF3B355B38656756EBAF996D529E1C515CF6FB0D1E65B6D323759D1BFC32673D391E18DE6CCECEAEBAE757765FD4BEB6BB223FEEB0369B33B5BDBB4A9EFEEAA0E0C0FD035DE1EF3231FF9C895575EF98A57BCC2C6463B4885C4993AB2AD0236098EA7EC214AD19E1759449F6696BE1D8445A22D8B0D51B4979A9177019966D3487E1D53E6A4934E32DDAFE4BD6844FD0E6FED1FB54C61216D49C0F27098CD40B0ABDBE151266C68687DAA000791D51A1EAA2721F751A935321D9C141B3E24F569D3FA6C2DBBBA490F770BB7568FAFE6A817DDE26C8775DB50F940BE272A66062543C359A3DE2C92523DBD3D93162F5EB27CF90A7F3A24529AD9186D502756C0FE9F5E929A17327FFEFC3FFDE94F086215F9B51F695EBE1512ABEE3B15B6DF517ADAD602C942F671C71D77FCDDEF7E871DCA8CD99FD0169C01D65B6BA7F0AC8EC7C48F3CDE3C5C71C515C71C738C0DC6060693303EBD4C72C86288F3E0D17A018449319EE79D15251614B612E1871B5D596415D2F8541F7B268B8D399B05A5C3A38F3EBAE9A69BD28F2114211C7219180D76F0EC7C52964DAB3B215C50C02A0645A5D921312D25FE0A22403033DB339A56B6DB115345F49BC47CE49147F0B174D2C4F8EF05DCBC79F3EC2276027D87D7F10C238C2DEC5A1CE89D76DAE990430E3167C5D32368E7D823ECBBEFBEB7DD769B3C4B8FE915717F895FD3EB8FF14E41491D125717BFB73683020F187F3ED94CB342219ED4BF41856726C24827FB13CACBD4BC09479581816754F9994DB21D0480081FF8C0074CDFDB8755C7816C8153C987A93CFA54E0530E940DCFCC083AF2CA89F70A6F3C835BE1E5ACAD4045674115FF6847619889B4A13BDFFFFEF7DF72CB2DB63D00CAA16231B37CBDAC5F14AC19F6987779ED50983D0478B0191B1ACA0605B346F8C1DEA0B39B058585C0E18A2D07574FCC0935E1B060C102DC68BB3B7D17729FA4239BDB3975A47FF5E25A3D7DEF2BB29DD36CE9A33D4958D71572FCF38AA91B365F952D9B3973DAC6C3D9928EDE351B5736DF7AA7ED473AC2485A9F31B36FEECC19EB96BC64C6F2E4BE505FD9ACACAA1DB9CFE195D06D267912EAB58E64A4DE527B8009F0F2E1982B79C088087C48854918AD2FC45227158C3C61114ACAC26B4D1FEF645955AC4FA0541DBA94B017DDA6BF943FFB491251CADA737C8D7D4C29AAFDE42015018AB10577ADDA393C526882A4C0E615EF3B6A1D8D6C9DE96824941D4E130A787B401C29F6B7C306248F246E4747FE00D54A6ADABAF07DEB45ABA26A7FFFC0AA556BE7CCC9F78D6DBE79F35EF1D0430F8DE928FC1FBC34EFA5394564B089853BE524F83CB1A2FC7483808F934F565C879F51F35EBC4CBB9B641114AEBDDA122405C7A0123B87C3BF2A03D9E3D855D5C717C753C00AAA4B2B30063631B06A3228769E3FF8C10F9A41671F3EF1C413CDFCC409268C86C78336E5B2BBEEBAEBFDF7DF3FDE7D059512598736F4789F17E88C502AC2C2971CE83A26A6291D16F3112753360ADD48DEF8C637DE73CF3DB808E0B9049A10A9A1348AE753947300E883EC80246309DE95444C2F7737B16553C77EE0A6B215283150F6D163A9549FA38882B2BC624C436A344713DA78A73FC46C48A98AD77F20379C43143D212A92A2704F3E59285C4F405821721A20C53C6F708983A5A77881ECB327C597F2755CA517E7E2C0030FFCF5AF7F6DF684886C052667F3C8CEA0274FE958AD974B9118526BADDA56CC629926E6915F7DF5D50C5B255B253B52A1FEE88DAC8F6478562C668C5BAB29B25D19222DDA178AA0232BDA1E6CBDF5D6344B16978ED96D8F3FFE38996C09F110553E1B2F8D9D18EC5BA79F7EFA45175DA49647FEF3B9164FEB23C355DBD4492D87351CB7E08C85E79F1D92C1E0B080FEC4D6C386695835654AEFAAFEA15E734C2BABD7AE1D9A317DF3A54BFF2190B9197C30A0E5D6D5DAA1DE9175760827BDE5D56BFA7AABC9B28E8D9E5A37776DD7CA4D87EA4F4F9E1DFA5F0AE99A2D77AD7D28D4FF3ADC59CB7AA6FCFB6B77EC6FACDB6C5A7767DA19A65437087D8B963CD7D1B1F90BD5955B0F0D0D86D5BD2B87CE3FE0C465496D5A63D2CA7495300AA97BD9E49C7FFEF9679F7DB65960D75D77DDD1471F2D2A72927A741FB229BAE4924BECAF1834EDFACED49CED6AFB3C0C16FF545F94D4B37F93B9977E3F1EE83291FE508C3B89B4B79241E44BEC37859C1D1B5C53B42C0A93274D5EBD2657241BF46DB072D5CA6AA55A6F0E02C731CD6D9A18563920B5403DA947426EB22F617B1F1919EEE9EE1A1ACE037D8D7AA3E8E51CFAFB57637A40988E39F94F27EB5F7965059CD2AE46997916C1A8218680C89120717CB8268C469612FAE33D17A40DF59852C65EE6D9D8B1B78B9B60626763A9601D8B23F78B5FFCE209279CA0442FE59550AB84D1AC3D7406C42098D8E3975F4E51077E9BEC5F40BF5C4703B36D2A361C98EEE9DA86976FCF6E633325FD852F7C618232A410D3A854A973FDF148CFD9129AC0D4358AB1A9B0918BAAC23364119525C4E4C528A2CABC67BA0E884F67EFBDF7BEE38E3BEC4FBED6D9EE45031FE69C4112AF431BD90C1C70C00177DD7517868E57C08943B9E3CB2A9D56EA85A04475188D09F2275923F7F5CD22080B31465AF25F4D8B10A353730EA2B504C333D7F927F7BAD6AC6D0F14E57A3DE43176C06536365827D570C6DF91CDC39E5476C066F5BFFEEBBFF419242333C93054691646E3BF48FAF0E098BF883066AFA4EDD8F0A14D0E86D8DB987E79219615A189436CB56BF7B27DD22858BBC90A370BFE321B00F12754A927EBF5156E25B6165513612A69C0606BA8DC053869F360CAB8E4555F76D965679C7106AD2FC82C94123D214A7381E388454179ADEC8CFDC404E7B2937B9235EBAA7923B8247FF0D9B3E62E59F242DF0661E59AF131228554DBA037D97FBF03AFBBFEE68E8E504B27177DD687A02539E8A083BEF39DEFD8FCE4735BA9551B23595FD2B1FB2E03BD5392FABA8E0D960CCD5C12BAD656926A63B01ED2EADC74EF19E9E3C32BF6686CB4E495DD1B76CC9DF3DABEDAD2B46FFE567D9567BA1E6C2EDE38DB70D9DAC56B3A86BB4706935A36A7A3EFA83D3F62666165A496A50D9FCB17A782DA5DDB22DAF3DA8CC12AA846C5583F440AD5DF2C1DDD88C95EA69B6FBAE9265B0E3FB77C7D4C09E673BA3E81C2D74B6B3A510A32C4A09FD21E1273B61DF7DF7F7F530FD88366EFD8B61818183B7DD5DD95B7801E1C1AACA4C5D9181C30ED9B4717FB97D9DE5394D88C0FE2CC66CE926C9D3367F6F3CF2F9E3CD9CEED5AF31E8949873CD5B4C18A15AB0ACAC9504CB81DC261748C48E183030DFE5FBE32C7F106EAC7438E358F447508D784D17581ACAB398BF7DE7BAF99AE726415476D5F3FFB493FCBE078747598792F075AC7C9B4E0273EF18933CF3C33440A8534F2F80810A45462A91D8A7F5E99E104B7919B1886CA5A29062BD6212AB254B05BF2BF559B345ECE8C08929DD8128869024F3D4485C4BDB2D8C55DE177E036B0CFD81C02B805F9ACBEF7728245ED145CF996DCB5127720B2D21336D95F4176E82B80683C1D923F814287C9DA0845D214AE505F4B5DAAC5D249F481534A2FC2E82A177906A5BDCA07609CA74648D2CA7E6F7EC369A79D662A19D73F677D1D2B825AED589F47B461DBC251E06EE3E798508E8293C1CE9113096DB8FC6CB117915FC4D5D0BC95C69F4554261F109A41D0741E10554AEBC93056449D1C19A664899955AD73EDFDC2850BAFB8E28AE79E7B4E9BC15339DA674E39E5143382D93684FA6D83C13AC0C084480A11B88045A2FE4B0496381DF6F3DA6BAFFDD0873E84CAA40F182903A5307DD042FB5FD9193F481E47667470E970332CC0730C0F0D4DEA996E327EDDD0CA4993AAABFBC3A4DE49AB0756D62A7D7EFEFDBECDC2DA5A47B53932A9911FCFB5D5B4526F7475760D6BD5881B4113DDD1D93B34D23F7D874DD76EBEE9BA7472B2B66146EC48F7CAF0AAC7A775F7AD5AB2A6A33AB577A4A3F252DF06B366BD944C7AC586D3779A3965F20EAF9FD978361B9CB76AC6F29E7F6CF08FE6D25DBAD68E0C0EAF99DA1386C2F0EA91A15543177CE0E49EBE4983CBD7B5C7F69358874D6C0C4B5DD54130C308B12867A63D142CF9C93FEDF3543AB4A3E87D84298CC62EB487978373B4C6F58043183B57CA7B65B035D0F1046B6FEFE43DF7DCD3BC01AA924D3EBEF6B5AFFDCD6F7EE3C3B66134C7B21D519B23F6B45AE52862A3A3CBC17EDFFB0EFEDEF7BE77F0C107FFE8473FB2556760138CE7E5BE688B66B7C6DEC7C72DA15D24EF044192640C110A41CD891791102B365D2DBF263944C10DA097B0924D8B1D1B55B921AD5EF18A57DC7FFFFD4825BB853D7B896D40E561D75F7FBD5973EADC379E62C3F027D94CDF43DB7038D6C0203542542FA11111E2EBCCA3EAEC373480C25901573CE67DB3D10CC6364B62679CE0E571CE3EAF661731B1057BB93DC881071EF8B5AF7D2DEFCD9524FFF66FFFF6C31FFE50B3448097D08E849AA0A458BB745F56E70C19BF66EB7CE94B5FE240DA274D0FD1F08074803DB56D1EB8BBB52B94A7A07A07F4132B2258193B012427384732320DD79E448F4F148ABA67762686513BE69C6FF95EB93CE92EBBEC72E491471E7BECB1406761690D45DC3EF7609A59C9ED669E471AF52DB7DCD26658B512E83C9350F67B333481FB61BD21F884F352BF2F554FB11C442678AF4A36BF43B2D8158ACA3ACD95E7360A0EA881EE19339F4D420EEB8710C2669B6DF6F18F7FFC339FF98C5D8AC3AE203F010F7B6FCB6D8748203EDB63E6FAFFE94F7FC299A63FA3924ABEF2441A3189D56E8AD80159E2F39EB016F06088CD7C42ECD62793318B9C12E447D487407846C98450E87E9BD512F156FE7364D814F0E0C09A46666B94DA66DC6CB3AD9E7AFA6FF42C66FA5B2987E24DA563CBC91B642B5F5C1CB2CEC9537B56F73F6FBE77DA0C23F5F51D0C45049D27E91A9DAB929573FE73C7A5BD1DC3D9A4746DD2D56C64617060F68ACAF4A7B3C9EB427747F385E159FDFBBE6AE7CAF32BBA5FD73D7DDA9CF9BB6C3B3954B75D3DF23FCB9E98BCA26BF1C67DF357AEF8DDD446F75F3A9AC32F0E6FD0B761A8755EB6CF473373C3C218DD87422436818D079797FC2BE585DA339C5CC9AE9295CC060378017F22BFB7B3C9ACB6DBB8ED2329FD3371AFE05248A5D7A8EA727F51252788C8118419CF9D2A0E7CF75BDFFA5653C0EC3FFBBA1DF8BBEFBEBBF4B45260362F6F7BDBDBBEFBDDEFCE9F3FDF74CFBBDEF52E7B0F94D43613C2056B1AC13763C6341581604552C8F5724146E3BD58007B73D861877DE52B5F21352B5AD1C4310368C194636FB651DCD1CCD20E33A857C84BFD426AD8D8D70A0897DC6EED18FC45452F75F638D8640A9282A65F6D3E310F2758321F0D0EB1030F029110A2DABFCB7EB7E3BDD75E7BDD7EFBED7623D39A72B3043E0A8E6676829B82FEE76770A1D7F6972798440173E015DBC72D40E5D37C86C27CE27B0AD53662BB0E1D06EFBB33E6126296A4230B44F4D52C6825F8895EAA87952FC02561E1ED6B8ABB6CC05054421C617FFAC10F7EB0F7DE7B8708DCF344DC58DF25BC34A5EAA1E87BA8252B1FE9D8D1C12C039B1072134C8BA6913236F42281843424ED7220B7DCB3F5163DCC85248F1A458F3C5C0AD18BB252C496B13B091A811222BC24AC1671E392451B5CCB394DA9B033D443D30E4BCC8813231C836B70AB372CB4FE49C350EAD1F1D1C53291C4FEF0AAE9041B4161BA1D702A059A055B91443C069C782B8353CC6A1181C706D92AB36763C058E4CC8A844B2C78F2FB919F80DAE80ACAE2EEB8E38E0F3CF000A9227B3A22D8F6FED0430FBDF2AACB8706AB49684C9D561DC8E772E6478E3A7EBFF7BC736565B6849257339357376ADDF54AA5FAAB5FFCF1DC334E9CDC37B47AD5735D61D26078494F4195790B8B10260DF53527BF6587D561206F725BEFE80C6967BDB96CB816A63E1BE63D116687B072E38DD6AC9AB9F48066BA24E998BED39BE6CF9FF6EAE1C98FF574BD2A0B7F7F7255675F4FDD9CF4EA9291873BD2CEB5B5FED5836B06877EF0B1336B21194A46C2582038BD146821526873655ECD638F3D4602C8E77D4AFBBC64B062919320305977C30D37840961F0A5A3A76B7AED5B521FA5AF8CA17D7550A9F5644F30D1E3E9BBAEAE6E3CA4E09C3F14582957A421D23A2DA7319B36CD7EA99A3F5FCF2A3F8903497557289C92B3CF3E3B4C185E7F592F481FCDB1B633402E933E30C1D5E1494C9086F4E9736DDF520882BA1DF123B643EC004316FD1F077129D82B404B30DC747AE9B4C369B7A930E15B89AD854D1AD2539AFDA75AB2F1E607382B5595F675931A7BECB1C77DF7DD47EE191562230735A3984435F63C5736855C9DCD9B4925FB8D5A838D576973D965972D58B040A48F73E7CEB501F828CB987B9A309A3DB2495EE57224D30502B27F9AFD74E79D779A75A29EDB9E33C86F4599985A290887C1A0526E61EBB270E1C2E38E3B0EBF9323EA3BE4208910BB6216647BA86C03D602ED6AFB8009C4EBAEBB4EF79589805013FE96BD64376281ECF19F7CF249EE6E57032D91B495DB7A7B57061C7586B637EC7909181068E1497394D9C020A8AB244A8F5C0B66CDEE8204E3E0830FBEFCF2CB45782945EBE3F61C76CA633C751AA34281B139F949D6C0575E2A7890B9068BD255681D12FC764C801D40F0A970CB983A58ED0E09219025215F43208DCCB47D0CE2333028A4BD7DFB483B32F608A4CF052CF03587E408D8FF685F347A28B2EF766A385338F13E620CB76288B16BDF5A31753D1B44A9663F2FBEF8E2E38F3F5E9D09F00730A7C48CED8B9DCCD59A3563E3E5CB96D6B3A1491BCCB8FE5BBFF98FB76EB36638CCAD3057EB7FF2A6BF636D164656379AB574DA437F796CCF5DB7CA217AF5E0ABED450D9D632342EFE00EB36B3BCC19195C53CBEA59254D9A594FBD526DCE684C1A59D9F578D8F485C9D37A877ED73FFC0B7BF8ADC3DA47D2A1C9DF7AF0DB4FDEBDB863DA92FF59D67CE5D46C78C38D1F5BB274E0D915C39D5D49B3FAE813FF78D556DBDFF8B153270FA76BC29AF6950DB15C1E0A7D88E2498ACB6DF06B34417F74E12B7D3F6C13AA2663B3D19CFF13BF04BD2CE101C7F580DBA3B85E42299F6F3B12176770706C4FC5BE84DBC181E7E417E318A57A9B2D926D93085DEBD6D9C53B06074D6ACFE460E075AD5EBD76A38D36C47C5EBA74F9D4A97D0504661AE93D9BC4534E39E5D39FFEB499FFF84FFF4F5EB8AA60D9E14AA5B658D39A8C2EF8F393562AC0F7FA5816AB2F63F06B93C57E9F99E373F00D44D1229E9420B8CE3C2A1024B669DBD1CE3F4E5228AC63B027ED2FE1EC74903C9A9449101B1781475057AC8BE8F54374799931B4083ED078F38C3D28327A8510C7D957ADD8A3DD915A49B52C55E5B46A30DAD366AC0834ADF5D8AE584F8D1120D42E7CB0A29E57C98D7DC0CC0EACE950102CDBC3DAE1FC9FFFF91F5306A69680E60AD1C6E4E87694CBDBB0ED22AB8B5728E4B5793F2694E90A05E88F449400473C851D25FBA40968BBE6D7BFFEF50F7CE003BA179524DEB6D381A735B5ED1962E07CDEAC9F638F3DD69481691D82DEAC6F3EEC5A51DF55F8BBB56A8DAC55A3D9489C54B281BDFAD5AFA63EDB161D420C05F6B92FCF0B622B449A27F8BF5A70DC087E5678D6870AA48009ED84186324596057A3BB898FEB485597449E4EAECAD9439B138CD6A4662F8B15F00216F8F3AB3E0DCD826A5FF9D7993367DAF5399BA6CEF7DC73CFBBEFBEDBEC2441D2D8EAF3E6CDB3C345DA5B757D66ADDA67306BECF4FDE31FFFC88AEE2064F19048180AC03F436C5FEF3D1C76ECA69B6E6AAA629F7DF6F9DEF7BEA72C0FC4B444F28647862B053F77A8D687D3BE634FBA7ABB5DDE316D4E7565583EA66A99DC9FD49381C993A777A45D77DC7EC7173EF3A110565593CE7A6305FE3DA802163AA764A9665D6FD96D555F677560A4A73EFCBF597B0F384BCA326BFCADAA9B6F87E9E9C9892433644110D0352CE8222614152448CE022A0C2279244806092AB02C208288E9D3DD357C2A98C18023202230E380334C9ECE7DF3AD5BF53F55A7EBF0F6EDB0F2FFF6AECBAFA7BB6ED55B6F78E279CE53C906BEDF48059EDF48E7B2A91A36C31C2765FE1C3CD75148974A9B169AC28029D4CCAAF0865FDD576BF46E5BF36777CFBD5EFDF3CAADFD7E219F73B70D6C0D2BBDDB2FAABDDA37DB297C6FC5ED78F5497D092769186A92943F568479841B6EB8016A42D1479BC1D7FEBA8E0FBBE64843AB5F7898F041D9DF9A4A8F70074A014B884DA980459E602CDB394CF84585CFC2E0B0FFE29CD3E4374AA5C6843E371C1F6975CBE1382485C900C56A8A8E919152CC239D2B9518118A0EEAE5D167C53EFBBCF1E9A79F651F62599D4C0E712F4E95DC7EBD1FBE236516C1A24E5C23A4848A633168F3A08A23C61BDF6450D24478DD368FD096142A55623295250A843841586015202BA96318A224EA1262E8CA2BAFC4D8EEB9E71E0A23FC12D2F988238EA0C296873A154A5C0CB4ACF150EAC8EEEDA3DCE1E1871F8EAD2C0C2DFB14AD5DBB9671330C06A2047284B20CAB1F474AA6DCA3747D18C38454BAFBEEBB2FBEF862DBBCB03FCC7D7024BBEFBE3BB4A0A28E8C3C63C6DA603ED4ACFC8AB89A851CA69E9604B7137850901B376E640C8A14F6644491EFFBE8A38F1E75D4519C61E84555D4B0B6556BCDA8B5228DCCFEB2CDBBB12A9DC43DC7DA3CD2E0702476121A37C73EC4CC73695849853F29D4D1961B4BCE63A4B7F6DF7FFF238F3CF2820B2E2073354748C38B14195CFAC8EBCAC6B8E5202ADFA7BB1F2909BFE95AF945BC3296ECA5975EE22473C9948EE13666849963504F24564C1238C9F8B362124ADA1142A1A02B0F1DAEC4D7A93B6D8F50DA510693D0D46D3AF8B4D34E3BE8A083702E18C2C5B443AC5C7DF5D54E425E8D47C0A0BFF1C61B1982A6A2252CC0CE2213CBC6EDC4FA1613FB490C4270C6F057F2818BDA42D8F59D77DE995EBB7891D4838842067FC2895EB1628549A01576C717E2439992E09925F843804D2E28A504E30182EFE0F7E79E7BEEEDB7DF10F8D986DF328E6FDC591F3BFDD6DEED0E28B7829E72872D97F4B31FCC0C52A520EA635B19E87FFA07DF5B614AAB228A667F9C1F42432D923641A3FBC3070EB7C25433DF1D9AD142D8089B4E900DDD7AC64F17C2663EE36EFAE15FD373863E76CC09DFFAE38373FDCE743DBD2D68545E285D71FF1DD0C61B5E7EA592CE54AA8D52505E5A6DF5CF3103A946664BD9EBE87EE2AA7B4DA961639D24B469FC31DFC1405D1BB0517580667CD4C18C8F45AB78D724D52B582966FD6C928A8916DEA4EEAB63D5554E8A917C6DCE25CB24A915F0510F764A1FFC7E9ADC9E6D5948B5D8C9CEB60FCF1EE68B41426641C8E1C2BC1AFF442DCEA34888602B694F6DC643A2E451D17D54492523638A1E0716A1B91C1A93E4EA299570BDB62F8F90DDED80772357114682A3C5D8AF00936A32C187F2590A16EDB9E79E4F3FFDB4B42015D8BEFBEEBB72E5CA0B2FBC108240486F8ECDB18A4D899761E10AE7C776A9F9205C0C190D3F18829521688A3CDBB8C330301E16D590494E45C6C66ADE2E19C78CDDA4EB18C414D66F79CB5BF052ECBD852FAA2522EFA0F1E3AF5C3BB118DE7BEFBD679E79A60D21B6F18053114A9BD87480FF870761F2D9949B8C1341C2F3279348546B2AFF2080454CABCC286312DEFCE637FFF297BFA4E5A11C1EF14AA447E049E15614EEC39698B82D7EB96CD932B8412C6E91D508CD0DEF449945DC106B845B99187DF3918F7CE4873FFCE197BFFCE5534F3D9507508509322FB439D5FF671AB01BDB1ADA36EB180708563F9D218A228C9B9A443890A869DC1888C12E6FD532C964E1A3F5BE12C184E0D1D72433227611DE91D938EA33326370A5646D381638D9C6F789EF90671FCFC58E624C55303A637930C60A890B6ECDADCB42703D0EE361899D3C0405787807DA617C2E5787A7BEED717C77F66C5EBE7CF92DB7DC62AC4614947BAC689274B56995DAEE238A0C63D52F71F78649C102D376C4968749CB0D27E91586D714E088A28F181AA28A320E9E9EAAD4FC4CA1E3E44F7DF6CB5FF9DA47CFB930C8766DF50B4CD2AB94C090A8BF3E3AABBB581DD834AFC3FDFA0D5798B0DC996E356B7E2A09A10B2DCB6C74E15F534DA786397203930AE0D81582C23C539C512E578B616E562DBFF6D7BFCFED9ADFEFD03DDD2DB95FDDF38B51C71CFCEE1D57D65E095B5DEEDFC2F79E77F2EA59E5F4C0B0576AA60A5DE9566664DB7061DECC4A3832376CFDF2F66F99CA586736DF6A3868C3D3F08EB07ED6AF5F2FBBC76E992346616962A6F9A9C2B513D4FD8C47601A07464627FFCB28A022FF349EB6DB6E3B529D9046C9241D1014F58C964F6A89475471730E05EF70DD75D77DEA539FE22952EDDD540A381CDF34699AF212CA65613768864B4CF004526AF3BF760997686FC533A2BA783B7EAB53C7EC08DF5F54299A5911A862337DE2139F804A20C409E79009215EC6FC999D426009C1D1471FFDCD6F7E1373CD84B193147ADB7C1D82E7E02BEF79CF7B1E7FFC71723EF397C432506812ABC994B00D92A280BBE4924B6026F3B9CCEE886E9A3A497DEBD8242B483A5F522672E36A924F38E10438CDB8184B7CDE79E71112659333A860D424D48093AE3BD91C190B552B43D91F133F825CD19953FBA63668A2EE3FD501C0CCE05DA8E4B85775DEDC094DC4A89219B7C73B92B283A923155F419DC3BD236E88E96105B1D5F8CC243D6AA880C5C6C737A204DC69A79DD4458006106612C3C3147173F2329A29B63B8E9FD99B441EB04C013281C37B634C4C31DEA9CE17E7844D26682EE0B951D666FDFA4C3A26D36E45A7063A38E0E6F45254FC94AAD8CF709BCE3EFB6C6371A7A8268A860BF7334BE7C3A489B5A82482A44F00B5B510D1A40B35E3A15B7619372D66458F76DC7147187624D3A65AA2EE6F0BDAD92FCE682DFD457A36663CCD326F8E0160EF51E7E1329C9DC30E3BECAB5FFDAACD22622C188A1D2094E274ADE6107618C658B1716C039AE694B9768ACA24462766608F3DF680FEC07828A619E8621532878437C20FF7DC730FF43DE650F60A678C004CA687886090B68E30957E904EB91DB9F4E0D028C6DA4C158D973735DFF8FD99D82C88CC8558D675E1D4E3DD7B7636E592C9A74D69C860E61A651336BB3A8B23A3651A52D408128FB9779AC0336E542B6CB2A1D7F453A530DBC2BCF6B4DC8A3BBB366BFDEF5699F9DE01EF7FD30F6EFF697E4B77716EAD62D6CC3964CFF21663D698779E7AF4B3A57FECD13DBB9A69FAC6C97AE9DA68C3ED983154091604339FBCEB1BA639646F6F01D4099E5231B4498ADD95B3135A7B221F803C0DF94EBC9E1513A45025606252F983CD4341CA70911EA4138D953AE38C334C8242506F6C0A93B1D830BF6627E4C8FF4C3C086E7DF2C927E346B4B3A621F79F08009B3E714D4F02AF2AF93BB69031AA855BCAEE25A7E1F144F1BFF212088D566C87C1617AD8980B3BFECE59A0A100F18D59B673422AD6B471B9FC8A3817B1B4F4E16878D2A1A1E3ABC1B8E3B95B6928F15C09A86C12E56A3F4B11368E9FC75B0E225F4D7DDF18BFC25B13CC823BE3645E7BEDB562AEC050F1FA1C36239677DF7D373C4EE25745FD288386436D0BF5D3716F4DDD3ECF583007BD8B2AD94DECC713D0C76E74CA028AC155B0E4206919C9E4DCC4DA92898F3649030C2A51D79DA45CC1B1BAFA50CDB0C5A189EBC8E5A20957A5B43DED18D5BC7169C4946E43D631B19FFDEC677994086B2222891938AE23975B7293687FE5E0DBD0D4F6F83563F6566158722A83983112E61A71E5DBDFFEF6175F7C11C2DD23515DD45B2C6E03E08E3560C7EF397B7859FA7F0CD24267AF5AB58A0DC6497FC18EAA2AC2E6D65233381E2E1BD29F4A9ADA7EFEF39FBFF4D24BF9155A812CF360E65B9A491D7FB95598C5847303C38EE46536BA581FA2BE4502457E155A33DAE426C9A16AC76A4BE0B6583B988FF83A9E423B122361330C5266DA269DBDAF48BEFF2FFFF22F2B57AEA439E8245C1F5C6BB1B2DBA8B489B2D1662A15CDA1D69A529BA7891624D58C80785C3E93B4A2B28BFD70C32BAFBFF5F24B3EE7366B50A97E13F69681BBBA70E1BCCD1B367714BC52A595F6A2345FA1901E2D35C3886D3F9AB152B5918E36A7EF6573A974A68E1BE6527443695DBDF5AD6F7DF2C927A192D36FAD349CD037213CE0E8CC876ECD31F0214C107AAE99D5ECECFF5BA5735ECF7EFFB6EF376EF9566F330AE0FBE9910F5E7CC2FFFDFA63666B66EFA30FDBDCDCBA38CC0F748C0C5607BB0A59B85675373B5475B77716FEF56B3F35C166CA7302ACDAEAACF0C305175CF0ED6F7F5BD425122637DE782344226603DE05372AB7AE6C2CB1E091BD47079009C1691C4839BE6AA7A1ADCE8CAD63D1809B18D2A5D6A2364ACBB1D107E451E2D7C4FCC070106FF73FA28EEDDB4E9A9DD296A24C79F8E187E18AE1CE2C2B124A828E08379C02386A2E411FD1C6128709D90295B113F703100B2B190D69AF11DC0B8B9BFF3CF0C0030F39E4102C920D6B6C03223A63BD8A235145448F42DC8A4538497DAA3759FB3093707D087F64AB0A9E4CBB91AAFC398C7CEEDCB9D822DFFFFEF73FFCE10F53B25029B21E9FC80EBA56EA5D285C25E99CE8BBDB763DEF8FBBE1D1901A0C5571485C179C70089DCEF80333709A5C3BDF57B916DB0662108F849A4C82920E82D382A9A0B94A9B8F6786E617DD26A5B826FDD0D0E1D21367A406EF36AC811FAE0BFD5DDD56C3E305D4CD34DAD8711206CDADB7DE7AE79D777EF2939F547F087E30423AB8D84EF82F190938061BBEA72A1106B119A7617447314393808318A2C4CC4358D822585C3F2CB76515266B99A6398FB4B5F952CB962DC3E167B991971E8335A53231AE877AA81691ACE162280CFCF7BCF3CEBBEEBAEB18A2508B30DE568229B448A0EC508149D2582C5B3209D10163FB6ED2239CC1157E5174223A2C785932F45234610F135DC895D581D2EB73FF733C58B5DD77DF1D9E038316931A64F2B08D0511E03F31EDF8EE5D77DDC56BD45F5DC3B36BD574671A25342664CCBDEB5DEF7AFCF1C76DA3AA2DA263270815D2A433CD8DCDF015EEF3939FFC4412C6062E980455B060C1022C31BE22ADCF23C90C0B74AE5F2DCF99DDE35746E092C4AFE995AA2D3FD70309DB316BD63EFBECF39B9FFD2C9AF959B3A2D7195D3B5235BD338B5B06CAA16B5A815B9C3113BFAF0CF7DBB597EA5D9D7D73D54F9BA667021F1E70A4E0E137E337D0F761CB3803F96D7FA8CED86ECEE76FBBFCC4F71D9FAB16FC3035ECF49FF9B973FEF8DB17B7BCF0F7ED3FFE8ED16239D50CF2E1BCBE91A1EEAE22BE371A547CAFB5244C3FF7C84F72C138FE388EC14D08AB2996638C708D7E0B4D4FD9B8663C6529D794F616BE45B39BC9384692B96FA749F1286FC29B501951E9D8C078AE202409B4EFD2A54BFFF8C73FD297E3EC45313613B3BD43F35D7DF5D5FFF11FFF71D8618741E2483EEABC99D89D223CC14CFBF92715307E0F8D72F4D14793CB10FFC40F343CD99058D0CDFDF7DFFFA0830EBAE1861B086552CC81729366ACFD38DAE942C3DA895ECE884A2DD5625DD145F693E208A9AE6896B2EA838A999D030435E416E4658A163A56C746657D842AA7D72B32265A6AD28854F32A27E580B90A981F8A5DA2FF3903CA3A68CC22DFE1E4B0E89393C3B83ABE8B23AA50893D78339E4CC05663534979650168A368125A494745AA014C1441C5ECCA493BCFB15AC46890F4ED14539AEAC32EBC5C17C61B28F727BD588D2B9849E219A3E4A25F45D3952FD2468FA50F91381CBC33A1FE87462131C30CCBAB5E0BC70F3F53A4DE7FFFFD279E78A2493858C856662732DFF296B7FCF6B7BF15D5949BB04FD35E816EB67BF84C8FB1608D99B604730A7C593F88FBAE4739E0C8D38502C6B021239E7BEE394C3BF6091E44BB904B899F71011C568C8AEB286B06F7D977DF7D619D281B47E79BA1236A23BC0EDF5490692686C8278C5BE1B6D893F8016E311B6E9AD8383EF4D043AFBCF24A82A26D76D536C44998D41411070B9B92915BC5A5EC1DEB2444AD0A6B7187B3A0857B158248E605FEA9AD68D74D39096BAF7A783024C6FC17531EC40761FCB89280E736189174B0CC3293F4EC525A11CE09F60F4FABCAAF21159F78E209DC1C338625E60C131CC77B527F5C1F7F6AD572EC9044BF2F4264D59AB962576DB4E405634EF6BCB9B34885D4F443D7319942114627F62A7D30CC2D9E82BD412383E1FDF3CF3F1FCA82FADE596A72339D544F2E0279E18C0451411B96B998CA6C1B6A14837C6DAD57CCE51FF9BF0F8E0EF57DF8C00FE1A9D7FCFBC5994AF5C12F3EB02930C50FE6BCA5B991A1A145C3EF1CA9841DE90541C52DB79A85CEB067A4FFC56FFE62C1AC05782F4E665BAB6CD2CC11432A2F53E104A82D0C18DFA5D1891384EB8957E0DC9E74D2493FFAD18F680E2A4129337D9AF365926A141E2E9BB155BF577F2D62489F7FFE79D60A99988F39F2926D7219DA11E419D0EFE5A1139B308D4BFEBA42D061CC7E8041A83A90C3E52F196611D8CA7E04C3A1A2C8A043C9A814F5AB49B27414A95284071C70C0DBDEF6B6DB6EBB4D547F2AF0D741D2539442BEF9E69B3FFFF9CF53C5E24A1E096CCD3BEEB8830350204B45CF5ED258341CDFBFD3AED6D0BBC871E48453AABA713B231E45F5EE8084827974EFBDF7F26E983446D7B95D9C9836120BA4F552E892502F2690A465F9826A6A463D4AD35B2C1F6AAB6093CAB67D840C7712AA48BBC049C9609BEC4DA90486E9788D00044C7F7202DBD0FF6D1FA5AB051B6CAB48B1059CBC072526C57E45DBC8A645D48BD07AC5CE8722B433460494F11A6C0CF64D8258C421649F79AACC30A1E7B4A1031A2DAD4C45B1647462DAA1CCC2B822C5368C547B464DCFFD390D28927130FE136B8A318C65073263A469B808A693F1DC4247476528BA92205EAE0829BA68D407560778FB15C664F7BC791FFCE007BFF39DEF10444293DA0EA773C09887188E7B3BD79DBD924E39E594FFFEEFFF562E530744C2C18EC48AF6D95E5CC762461384C52EA077C77374CB81E68740332265EC09C4002EBDF4521C739C29166E4D54C0AA51A614E26FA4AAA19557AC5871DE79E74D4349DB26D0EDE5E361A48CE21CF244930684F56382B0B5913F7FEE739F7BF8E187E9077378A9C895EA0E5D6F5BDF9071B0E49D41ADE17676A787366044C56214D3FEFB9A881377F6ACC8B21F0C3BCE3AEBACF973E75C7ED18591576B823DF7D8EDC5175F0C4287DEC285175E08A7886388E67F76A530B7E8CE4A379DB25F6FA6B0B93C2774DCD12DDEDC9D666F5AB3A1509959593FB0E33BB75B7EC1A736AFDEF4725F7F7151F1DECF7D29D56F726FCF36F70B6AA9A6D93E935B03893CA360B60F876604614F4FE78CECDA6D6B7FF0D8CC9E0EB27B52244AE46AC330768B69FCEE77BF7BF8E1871BCB7574120A6125209821C6A1602C934D4DB05B3E1B7F847F324941F0A4FA8B896746108F39E698471E798406EB75D75D77F1C5173B56952916118FB33BEE285FE308BEC4E1DA296B0A38956DA8A9E13482F89F076149F4AB9C8E2D158DD5CE0FA3A48BC36DA44DCF2C91209AA2612276461637A71E0B636228A33237E273E648703782B02834791386CB14D6C0EE64369E69791B0042D9ED241D70A93FB84BA8786C1C16679282D5CEBB537993C6CF4E0AC83A26E3C476DB6D07E54A79C1BA55133BF7F646144C97F9302DA2133720C34D88EC60132A6E50FC80BBD1726CE315C2A305CE9CEAC31511F584639558683338491117DBDA2B4DC831702BD3B964DE81F0D1A91AE618ABFE0FB762BFDBB6F60093C2734C5293AA4DC80326DD46B01B9FCEA913AB36CD2327A99391A3AC238365C5E328F1B903F9A79D76DA09734BC5490A686649F8834D3D6DDB73F6F42A270257862A41839FEA7C911E99D81C227EC7865A1AC54A44F5F8B07522CB358E18170A7EA5A6720ECA04F290E0AF471E79247424253B06036F0C86BC8979B82013B9EE2235A325078DA56C1C4F01A9551526A1E6206A1D9741D5DD74D34D7834BDD8FBEEBBEFD4534F351694CC6ECCCC38B6B1482B79CCD9E6814BC06A6CC13B643AD8E509DA9CB22A180EA17C502C8715CF3AAAB6FEB6E3F08A2761E6F1FAAB56ADA2317DE69967AE5CB91216958EC9441016370FA52B5315D2D9ACA9237A9CB211375FBF7E3DAE84ED026583B389FDCFE0B3B1D83A95ED8253B87AF5EA258B1746945B8DD8C77023C6DCAD5BB6F44695EEC3D9CECE7ABC819D3878DB820181170CC7CE5D577777A35E55BA84DE0E5D3515914797CD29A6E667C2D9CDAA5BF29B266A42E816823057EEAFB7B2E5DE855DB5B5B5D33E71FA6D377F69EE5E3DA5CD95A091F3E7179B4F6D346537F7C15DEBF3FA8A41B991CD35BAFB4CDA649DCE74B9C30BE7E55B7383674AF5DFAD3FE39C2361E1F1989B8447886284101C6C27CC3CA53477A3F220B88CE93C56ED4B8F30DEC02D277813FD07BB51DB540A98FB0A17EB80D3602239AE4840F14F1C134C38D68E743D8A861A515132E8276788084CDAAD70BCA02D147373FE97CA90546F8E63CCB3AA743A243EDE84BA81017D6A5CE545C8BEC47A7F8613C55E44CDCA2027CB1C4D624CD0AFE2E124DD3967508E2C03D7CAFB727215E813EC8BBE0BF5AB486EDBF026260EE04B03F1978EC509609307D92D756513A8DB815DBAA3982DFD5AC63AA44EBCA453A6ED6E7260424773D5612043DE6154CA196B0670FD09279CF0831FFC00875CBB678C2E780A456897CAB451BE85499D801CD3DD77DF1DAF8F8DA8CBB8F5553149652C8EC069407F84EEE389BBECB20B641CE33F76E9972D64892665D899C7956A893B8A6718B30459B666CD1A9C1F26D79DA41C8B0BC1C3135AEDDC19782011348D09E1F8B45518A2645081B41B141F2681BC311FC1238DE340760EFC9E594F5972DC907489F8150AF4A9048470B35C8231E0B4EBA81E3F9DCBF9410BB6612697833FC499518A94C7011F51C2A934888503DC3CE294C6FC90490A6F871579EEB9E758CBAEBC1503B9F299881267A281900505035427CDB7E3C9D2C620C4A64D018BB8860F72E2A23B110587E3F9DB5B498FED3061667012FCB60C507C6BEFBDF77EE69967986CA2656C2650DDD93613A954B8B22A16C78BB0699BC82C83846BD34C8817DA05C4147A5C7D46A170066D1C80B6049F4EDB9113AE3A1CC233A347FBD0A92184505767B15E1E6D35C354DCEEA8E2F22861B74441F2FEFE41D836D8205DF87DCA148A510E1847B7A777F6C0C06077EFACE1BECD8C9009F8F2C0030FC42995547AA19BD9DE093AEAD85E5ED3D42B39BFEC143B9C6076A5DA30B39B5E6BD42BCEE9AE412D9BEE9941DFDFB19E1BC2B9F9EDD7CEAD1B7FCDE220DDB7A551FDD74E93C32EF55375E3364DA3AFC3FCBAEAAD728B5D11950DD98225F1340FF881447E102C0A3E336DA108A228B8DB242D0F3E04ACFA182AD0D2966BB73FDC5A826ED06C85E3FB852F7C81F5A2380834F5D41F565F1484CDD854946D1FD6B9E2A6A79D76DADD77DFCD27D9247CC6620056B12CED113C807244BE94ADE029A7047A74AC3E6EDC97DAE2F66E3313A8D8192015C93B3B93E0F79017B00D2FB9E412EE8F36F5460C0853B9FC0DB629C64F7D2FAF5AE324C7024745C490B1BA70DB0B19249CFEEA26B4D75E7B4172612D6D2F4A302E6D20D1D688F1D149E87C693170AE6EBEF9E60B2FBC90B20917DF7EFBED679F7D36D92BC5462B420CDDB3187FA04D291F211DB0C9886DC6B70E3CF040084A78549C461A078225F330636EE5424DFA51E36463110C3909CBA64A4B29C878019373CC17522E33CE815F2E5FBEFC9A6BAE21CB31436A02199A2408494B4B1DE5308D6A9B6A63796C2C8289E34E369F391EF1A10F7DE8DE7BEFF59386BEA2EFD026F4929EC7748068D6703599A0C5088F3FFE78AC05A530E68A65668C58928A88405F9CCC0B2EB8803E258FAB264D7EA119EFB8DBF18396D503582EB26AF35417A0823D99290206F21176C10C9683EB1ECD49C135351834DD2383C36E9870CE4443090AF94CD4E63BE51D73EC713FFEF18FD7AE83B9EC15B3A6516FF961DCAC8CFEA51BCF5503BBDF9F3B67EEE6AD5BC6F01333BAB1465B376D9ED53BEB80030EF8D5AF7E15E5BCE3DEC39974C64DA59906121F2426F017BFF8C5F0F0A032F134BEA977C929C683033BF2FEFBEFC78667212F2390CC3473073228625ECF8713450F5B7C203447D4276DCC7C191F2BB2174E192E8652F027880E72B532B9C6F927D081EB62330DD89E137EC3FE7AC62A88629E9243E214E1D46083E97DB9736C3EA620A18FE68AE34FFBEDB71FE4A7B18C660132243DB8576D4215892FFC97C4649C1F3FF04DA7D9EDADDBAF1B5A571A094C8799D193AD458906981441A3860D893D1C7A69932BE6CBE5AAEFA57229E3B6FC0666C2CBA58A4BFCD4BC9A9F33F59FCEF153C3FBF6D4DD6D663B63460BCE172AF386E6F767227FF7B8E38EC38A6BAB2B3EEF4CF8A8199D5CE43BEFBCF3DC73CFE50187FB71D9659751F56EDAB44904678AFE0A134A43961962097027A189956DC7AD4E370F0E319921A4B028C7689F91CF5192734A05CC3D04F181EFB495DE5334130EAE689BEC0E6EAFEBAFBFFEA28B2E52165A4529ADA417B7E23036C0274C287095BCA49B480F92DB94F48AF8EFC1071FFCD8638F1160C28D8E338CBDC50A6BCE9D6A0F6C5A54C57E172C5880D3CB2554E293D34AAF5A644364AB5EBA74E9AA55AB68DAE85812CC2689C991D3763EEBACB3EEBAEB2E4A163B8D2A01EA582C041AB328128D4587C6364DB412F015BA2666BC65A7F5E6F9B179197FF2939F40AEA9E658CC0352D8ACAD62C1227712BE8815BCF6DA6BDB5A03B57DB8A5987DA78BA92277F9195C53AD26D3DE84CED10715028ED686E069A79E7A2ACE9BDE94A61E4B6FF9B30D8C2410C6B5283F8DD51FDB2EF553B92DC3F876F4BE2D4768D73328AE40ACB2139358F132FAD361D2C482F5694CD48918597BC906C462005C08BE755BAB60BD02052891266C8F8889DA61871D5E7EF96511AED1ACE4D956C12E45BC8AA64C921822C8204898C222705FA3E24088D6708EC28C13B99B2BAEBA12167D77B1D0373870E2F1273CFAE8B75A26AC366A5E2ADBF49B1D1D71D221A0FF44C026EBF25BAAB74965D27E33E2D28AEC182F8AE808272572B18ECE48BFE2B20CDC086C9B540ADE4314124CB99FF8C427B0FA782FD89DBFFFFDEF7FFEF39FEB78720EDB5A95D03DA09CE57E9E1E253E8DDC4B253DDB156924B535CF1DC9CED4F6D84C8652E466D31130166B8400986D383E26CBEC3F61A72D59B2E44D6F7A13AC16B6D31007386967180B24B5087B6F28EB695B6F9481728B4970CB540213ED32AF9D1891C7B004734F544E7890DA8E31AFC10E25A4DF8AE051336794EA43DDF3D3C303CD3DDEB5EBDACDEBAA61B9B3C71BEC6FA5B3261F2D388E4F2EEA7E376A66CD2B5446E17B4705C638AF4D936B3A9D7E66A69BE96CA407E697529B52434E6B6B763B536BB9E9EF07DEE6190D378AA310C9EC594D91EDD7B4DF9AEE10142DBCC7356BD6309A4B55D5D68D4D15EA26B6F29513A4152EE9C4B0B6F41DBF684394DA0A08191823D4490E866775637BCD429A74237294A256A78E610C8AE809EE7B92B1C959A411CAE327C654261D09B0620C90A06D3B95A20D6ADBEF4CC752FA4F4CC008BA457A3C9A210C910966A5E9133F2DE53E862A1EF95B6EB905EE326D1FEC398C9C695A92F5D8D32A23A38DCA43F254CE9C5088B8AD0A3D8D95306690004EDED5575F0D276CDDBA756A3C2E0606292DAC257EA6A941CF0FE3C4232E883F26368D57AC58017D2961C45D85AF332A28D5AB90801A3ECACCE7872ADF4687B13C6E7A43CD588CFCDCCA1824D512437334D79C846B89D5562CE46FD349F8E5CE3BEF8C27F26E22C4A7F1470745BE23F7005E997DEBC4D8158E2F3B31E3D137B6C7D9766CEC64A18C2AFD86DE3007202249BB628D89065A66625BD4CD6DFC97BA6C71243671BC9982B82E4CFAEAB0199189AD460A1A3140851388E31901731298A19080D42224048563FAE057BF5AC8E6AEBCEC8A6BAFF942063BA4D92CD5CB69376D82E692F98BD66E5AEF39E97AD8849F9BCDE4D2B9ECD068C47210AD8783198B394D4D14E56EB4AAE91854C11E1E1464D1E973C7D0E602F933D0DAF4A3E39A85848119173B0450C3B86DD08AA892E9B109CECA3887CA11A90219A0E6BADBA59CD3CCE4F41F79C0F64C0656F72463D562D96545F6B31473E68E2208DFC44603390E136AFD31E395679F8FD609E2D1262AD65855E072BC6CE6A6368A6C7BF39BC494B4CD68611704E1D60F2689B5D885CBC6F2E9F95C9509448FAE96BB7A3B470647A3AC66CA6CFFD61DFB5B1BDCCE7AA1009511F960A3C3AD7CDE7415E185C74E42DA6D3583B4EBA473B9462B18AEB7C26CAED0D9359A7DC3DC0137E737D6FEFA4933D32C3A68E1869F6D08079336F2F187363177B22D97DA64142144B46E459481912B16AB082B639C1FFEF0879F7EFA6998747C475C0F03148EB2028A70A81E7EF861C289C461C00DA9161A267624F04FA20770673B3AA8689C36D8741EB05208EC45CAB9A630A50DCB3DA4FDA103CF30A9EDAA1BAB5A14EFF95FFFF55FD452531D0F3BF3CA6320E49B49F8288284066C62D70B1135DB2507A22011A98D89D3096D8E232E839DB57AF56AA84F3C08675EB46736513B953191538CC908F1A12493B81758A5F7EAABAFDA246742231368C61BB26B0DF70D47A8F0BEF4876AA51860A056A6F5C31DC0AD40E67D4DA9D215548D3C57F4F58904667E85F573F8199EC499679EC909275E66AA7DC2E413352505939C660C1BF3436E6A6E21829FEDE00417177348C663DD99EB428F810BC15834DF574133C2EE18C06823369707C36DA08C2F5F8A511C6E243B21A76FE905ED9A93D34F3FDDC4D8C8071F7C30B458EF199AC39F98E0C78C31198F81D1A4D36A126028FDCD7DB2D34E3B9145CFB1D8E16DAC1F97497B95EFAB0D89DF13CC892922E099C616431AF8D92EE8B269CC753673997CAD5A72C855895FA4DCD973E644288D6AB3669AB37BE7F40F0D76CD9AB571CBA6742E72268C139B32B0B79C149C5E58BC29279AE76A90A4D9E293DD3B2BDA0F610BE34F8B5B6674B44C76F759B366F6F5471E5B212E588ADACA7ADEE8C84847672714B6F86AA0B4F05DCC27014A2A845529361E01070517D0CB21264307DFBC9E8F93341D6A2B2897DB44501BB3ADC4B7CB3168936676B76646FBC97EAAC233EE460256962F5F7ED55557293B6857305373B008058B8B9FC5D9C4ADA8C27D11794EFCB411D4B4D14D48208CF5168CA504AD5BAA138561F12DC5E105CB8D003DC38358F19E8E8E663DA8C36ACBD43A76CBA47AFDD14AD0AA9BAE599124EFDF06830C3A385B29D58B39D3F2236E6927E5B5C2A0E60761DAA4F0CBC2C11DFFA80CFEE1F94C504D7785E5A065304CF823A161EA44C57E7412A6C14098C4E495D781B7C06F0E3BECB0830F3EF89C73CEC106234D021D39FCC01600CA9AC136DDBC793345CDB265CB582F8769F7E326ADFBECB3CF9FFEF427C609E6CD9B879B289EA7FA6327615E12F7BEDA0708A43CF906A580200B2E85AF42A3246A664015BF21658134229799C56A5C48C13A3859EF7BDFFB7EF4A31FD969D436C02AFEC49A6339BEAE45B3AC3827452A760C11C50C10516F89C480E29BA9175B1591FCF2ECB3CF86E348CF864FE10CB24DDE7EFBEDF7BDEF7D8F83E77920C11B6FF2C10F7EF085175EB0198F35361E2A9E1F9B595474D0E29A204514B73EBC10F8F15836EC6F0C8CA7D13E2A3C0F3432183A667F3A3BB68961602BE02950754AA062EB6CD8B0016B44EE3462A4557B2D73922CDC64645CB56A9597F451E7769F066D2B5B017738F9E493EFBEFB6E25B9153DE6D263CE313039DC0C4B30524787FEDFFFFDDFF915FA887C059A268CF9B0DB9A5D24AD40F497BFFC65CC9B8C306D71E6CC48784B49CAB40837E4C47DA8036C43138C95D83BE8A083F6DD775FCCE16DB7DDA6A88F3D27AC0493BD68BB11B69BC20B66C5BC0750C098735E36A902E69BB2E6C18614302D622C97857D8BC5C3E7C66D1E8C95E1A3E9430B9DF58E9152774C4FD78CD1E1A19E62C768B9544879997C6E68B43C3F57F4211F9BCD7210BD0C14B5974943BFA762A186AB20929B8D5694028CF05DA6734E14F6A8976BB97CB6ABA3F30D3140544D23EA751C0788D166672736218C5DC76F854C883012C3E00117880A9B9B87F6BAA22C4C7FF28C8BB2C38E6C7309A6693F37D5470E4A90F487A0C5865D7DC5155750F1D899021AD036AEAAED5CA8C24D30113BE72A4B942D226C052C10AB88F99CA46FBCED36F0D8AA1CBFED9C8613AA9B84B554B5985C37E8128A0E885FDC76EDDAB5825C10FAC04A7A9E3E6A0736798C9277AE37A3A3A33232EA608F643B47BCD130D3ECDAD52BCE2C962AA3A39570E6FC48C60E6EF36774E3FB9928E5E1985660A28E3C9EC967634BBA69BAAA3BF6AD7C39EB171ACD56E88569CFC5DACF4D776F690E32076433030A7439F14D79CC3975A422E18910B5A7B1DC5019282C1962B84E2A434108B904C4BA0AC707B98A079188ED339FF90CB60A2684554C74A64D1275E31A05096BD3580676D28DA8509596470134DE17FF24D64B5B5C20492D18C404113DCC55A8F448F2B14DC428E4CB6F61A660D8C22A113A7122A88AE171BB8A9717E87A1E006D4D52D6C9A09370742D5A79A6041833572B5F7B13D3E823A9135D3AE551949F104AD024A541F47884852176493039CE9BDC6811F2893AD85804DD8CDC72626913B08329B42FF156AAC1807CDF61871D9E7DF6591BFD212C8F9370E699C4D556B1013CBC33CE388337C72AB0F4655281456F0C8FC67FF1E2679D75D63DF7DC13C4BD51211661E240B2BCE31DEF78ECB1C704A792E8A10860FA00EAF39A6BAEC1EFC5A089F9C7353839C4A17CFAD39FBEFDF6DBA195991D6050847A0563FECA57BE82DDAFD48014B017B7E8C195EA88CEC88D338149831F456E180F1452417AFA231FF908E43B6606BBE8D65B6FA5278DA1C2512071D8FBDFFFFE7BEFBD976948723BB02D1DAD0A1BE86792B09EA21A53054E9DA4EC8A057B0C71E30062305FFFFAD779D0684E61B1A07BDAFA571205ADB8771BC34914A8C8A61AF8653398D3511C2E958B11E1C3E27FFCE3D5DE5C715BAD0CCD86A51AA955B2DDDD5B0606BB7B3A2B83A363597C3FE2F49037ED27E2C4C30F81993F77D6C0B63E2C48E0E229A95ADD4F79C66F9919DDD8B7A5562C3C8B8531DE984A35524BB367F56EEBEB6F59FD7CA43668D18A6F52213ACC1EF63314E465975D26335A02E19F54BDDACFF611A68897C9C875A40250172CDB51B65730483A06F2E2458B1611D64EA9C2BF2A19A7B3C987D292702C9A1AF559C23FE11E1C75D451DFF8C637B067ECF48D8DDA9D28B5B88D5BE31BB40B6935B1D69F3B0AB2228CCB32850AA2C76C628EF1D744BA939ED33BA3512967BD62DFE848A1ABE867ABD55AB57B6976DE9279EBFBD6969B66F6421CBD666DB495CF7AF5B0E5A5BD267CE56698754D47BA681A4175A85A5E69D2B31C674BD848B951634CDFEDE8EE4A0D0F0CB8AD20A17EB469BD276516B37FD0C4D219C5CF381A9837AA09957A723938990C2CB3092FED5D76A2C4D10BE32237DC44E17AC93D05B7148CD1EAE30E0CE071734A01BF96B29E74239AA4F909E79DB5169FFAD4A71E78E00119E02661E2151488B02013C746A4BC555249042C13C36D01719354374B494328EFBEFBEE7FFBDBDF284AC4CE48CF495DF3E008626CB44D44CFCD3B50E8F0B6B49A99FDC50E8646E12CE367DC5F4606F3AF6D124AF93F9E9689B531F480A9B64DD21E87482E7EE54B5FFAD239E79C23CD672CA231E6898D55F18967D9ACB0729B589284EB715A04193349721A3767651BE79321650C80F4499899050B16B09281B5FC4433D9FC21AAABE6E3D40A7A9AFA6F599A1CFF4F7FFAD377BFFBDD90835FF8C21728CBA8F074015D5E06CF499A4A60212E6095B3A8600495E283983C8B6A1993E3C4ADC293A074946BB54A15FF095F56E4E161D2E542EB65AFA34C3109624E0EAD5712A8C1033EF4D043D7AC59839B3CF2C823C262503CB1190363EFB009EEB8E30EDB37527F78BE9A2AE5981F991852E3CCDB714B7CE5E4934F7EF4D1471901C269C790C8E14C330BBFDF6FBFFD5E7EF965721788F3C4661A51A91BDF1493DE057FB615608296F4F442920ED46B7B2E59B266DDBAEDE72D59B379DD95575F73DEE5976170B9627EB05C75A3A97602E3D482C8F98DDA2939C687A28D61359D853CFCD97AAD998AB4B099D9D1D1572A157263A0DF6ABD997293F44160F2996CB551EFC84741A35AB3D155EC1829971AB1D8D26194596F1F49B19B190B8D68CB9C89408DFFF1E35AE4A61220BA096F2EF7947E2D7FB0DD09A10E791F2F6E46B9F3CE3BFFF9CF7FB68D032653687F13E4C55A060D46E5E9D84B24E0A3B015C891882AC7624074A6AD5B3589FF60120BD58929F445857BF8E187FFEE77BF3BFEF8E3AFBBEE3A420E790A70D6B08D4F3AE924BB731AB503BE1BB98C153F93751ACDDAF2E5E7DD74E39D0B172CD9B8711D8E75D069BC5EB3F33EDBF755360F566B850E77742088CAC44CDA7841E846F3966A386E25D31A30AD51E36EAE8FA64C67C3943A32A19F2AD4C28AE7CF31A941D7D7D4716255E739D5FBAA1D16CBCDDBF295C6EA4EC8BD84CDC3E6252C3A67773E93A48DB4BE360E4ECD187067D8DC3001219619C638FAE8A39F78E20946A7F8211E9B516865BBA654C037DD74D3E5975FCED2A8302E64C620EEBCF34E11BB088020CF404474C6CAF0531571A71265D0A63C8C856493ABA153C446D636184AA63D370DE4CE01071CF0F8E38F63B24441A70A5D2C181D5CE81EAC044415A113346A28C469444B37408612D38F91ABB16E6891D6525BE0B9CC04F0EB764C9F00139BF6993721B08B3C647885DB6EBB0D0FD28CD1C2B5FB595275898C82CE226F081FEBB7BFFDAD893193781706E1D5C2F6CA2BAF3CFFFCF34DE231F3CC086FC51FE0DD62D256AF5EADE60752752CD7511E9AB6D754D97A0506DB18D3B83A586BDC9F65242C647493EE5D840D0B522804AF4C4B253855D4C4F160A2307BCC97330EC6302073BD5C8E3605CC008C8DBDB2F3A06D404A3ABE9268AA23D4E131711A65C71D77A4838241C2F9E6A11045B34865955357FF2EFED3C4F8036194E895CA8309A7284362B371DED68C2FCDB235ABC8F044B363129E3BAA347E5118EFA81CDF847EA3D9699CD9F9CE91EAC8CE33664127546AE5AE6C777146D7FAAD9BFBC246269569A5539BAA959E422E4867203BE18756EAB5060480E7C29B69F8269F4B576B4D27AE3185F6CD7A5EA3D54A1B276607364D5830F14969E0C4C569627661624C153F44F22B0CD2AEB778D95232C33351223F46D5B482F5325AC6B00A54020D6B61F7A6E1309F6A3FCBF02242828083871E7AE8B8E38EE36CEFB1C71E4F3DF514A3682CB65678A30D2864177013C12BC3D18C2F4392C014748BB1130D86004FDADFF82FAD6A66BB8D450ED52657DB1492D845ECF345C142942F4D55F54FA38783ED8DE306AB9A6139D19BF362689DEBAFBF3EF4D35EA619A41ADD3D33B6AD1F72C2ECCC6C57B53EF2A56FDE71F22967CCDCAD5098975DBF7970EE7685A1814A2EED39D574D3D49CB4C9A48C3F6846D79970AB49B5526953A8E61B33ABB5D16CA6590FE1688F74BBCE0814C76BB83395D54EF3CA61D2F2CF24A6B649388B84E909C677B0B6CF91DAD5701B504A13364B82553593C67F6910A820905DCE689D480B485D6A938C091F790CCE64ACBCD273766DCC85175EF88D6F7C83D121ACA848705445AE10073B0790AB13476B975D7681D360AB0411FB29C92103CD195F573795256BE760EC40102D50E97E22E2882FA0101455422A6EAFCDE4225D400EECD39FFEF47DF7DD371158A8E70A1483FFE28B320CED8514140B7B147A91EE2F1E073B80A869FC46E5C59A0A0E5E714551F37033A9B704DD17A546BCA49901771525970DEAB1C7CFF34C974E0001D95232269407B5CB2D6CF8BAFA2E380907A71C023DCB2EE661B36BD2E3E1E4C341C4F1A67927971716007E60F708CE189792A625CD0E0D8C197ABCE999679E092949BDCE0931562645FBDC8C873AF31D99A7B021CA26C11BEBA00AE7CCD378F0C107E3A431D98F8BEFB8FDF67C3EDB552C0C0CC07C4E076EBA526DCC9CB77070D3DA4224A7AA0B162E1C181EA995C899D545C64ABB2A9FE7C83379C74464BCCDD00F4D3C60FCC383B3D984420B636DD2D1DDD1ACF83D1DB3FAB6F52FDC6E0E4E1605B1CC440E9899AA8E42B15C29BBB1AA8BFEEA780DBF1E95E1C21CF14C50874A3529C79DE18705E3741BB7C7710BB1A5D2324E23805B9C1EAD963BBBBB07CAE54C3E370267D435CD56AB64C27F7DD7C1BF79F28951C8CA66AB19EDA8DC50A9E6C79960D704A95801A72061A27F62A378F816FB40A4BD14364AB5D1E84A654B99965F8988120BD97C5FBD8A352B668B477EE4A30F7FF751EE2BD229504B65E35225C7382C2376CC185E263AB6CD0691AE8C971A0B22F47A15B044900D0EA0FF802D7AEEB9E7E22CC34CBCF8E28B455B684B275ECC5FDA484C8C933173262C48324A654CAD4F2825837C36CE96594F397F426011D32BA253BBA5A38DA7D159168841370C128651559953FB1E79E491F7DC730F03EC2CD5A397CCBA1866E838212CC561D1A98C24156B44F3601A6E0BFB2CDA794E36CCCC4817E6E6F0DF2810D25F1BDD586E0C35DD16B689091D662A5CF933B62467B858FFB5DF4E49223B95A9F725F780B03B9496CC06CA6FE48712865E326CACE79E7B8E8900BA40CC7CE132B8A6587763759DC241C3C9A58E537C8B6B81438D3B10BB632C60C76BBB45E946C965B121F267DE91728A156C73E6CC21A197E2D2C6AA42617980B1A03736E72DFE09AD76CA29A79884A08A5B81BB7062F95A1B2065E2C72E29B6AF91E3288F996F4A0FA04D28DBA5ABE28F253A6E9A10C744A4BEBC64EA3379FF823232D14293534917CA5FCCEAB1C71EFBF0C30F2B3CD09600268703DD1AE95AA94937691CAB0433F59C9D23B14BE5A426B989E50B52C3F1E6F21EA69162EE046E5BDEDF6E5CA3ECB8CD7245C4008944ECFDD356AE0DABE54B5FFA12031BB4DFE94953533A71893DBF2BBE0219349A468E8486B38DBCD029B5F98CEEBAEBAEB3CF3E9B9245200061DC289D71D9C73FFE712C1946850B208E478607BFF295BB6EB8E1FACF5E78119F9BCBA6D9BD0AC37EFCE7BFDCB2655B3E5EC12A5CF6A8EAA642E4205169DC4577DE79E7F2CF9E8B11456DDC62911E9A98B72A340E543A147B3E571E1D8982BC7E90CBA49B8D7AC6EAFFA897126AEFF2CB2FBFE4A28BA3E8482A353018E18D431A79C542B55C21E619FFCB416784E19C54B61884D9A0B178E69C254B9694AAB535FF782515AF60A1BB73B85CA9B69AF556D0D9D3DD373080CD0D5F67D5A6CD9DB96C2A9FADFBADBED172DA357527A644C680231D1C46CD979C58017BAE1FBB2F0D3F52C06E10561BF5CE54B69131E9C0CCEE9CD93F3CDCC8A6834CBABFBFAFE0E5475A51F69194D7C6F2EC5DF39A88B0B734143016EEACB3CEC2B72837C9A5357D3F8F7F5E01EB08B303A0FAA189108D6E960D11E205943FD8F9A79F7EFA6DB7DD66A79F24124F3AE9A4071E7840495C3BEC612B09064509ADB0EB7AA560EC66DEF63EB735B1DE54E47D8CFCD9142E8C42E1CEACC3E169259495202686C1ED1614FC937899C4F7E01B3FDA0361DA099C46588F779B891A16627438E5D8B92D033718BF6F393059C2943B66E68613283F25D87181AC2B6732F6D930A136E33F15CDB2ADF089A919FCCC84B72A542597C4344EFF4A08472C0746C2DA6B280EDC90491F02483106CE0F3D138DCDD6538EB11871F933F71669E81957C483BFF8C52FC2F4534C55C458E43150076C6E4166C258B34C3B480D6BA93F4428CA7DA3B00C3DFA4915F05407662A0FCF265DD20B3265A2036057647236ED5083493AD24FFA5C6E5C4104B9E77866542767C39E75209934DD7EFBEDA124C8D8407D836771421812C1A4B1029286A78D14B0959FC041046E28462AC865DB5CB58534ED6F8968C256D2F61755AE63135648FD2B5AABBC32EF29262993981A42D1ABD19B7A3E1A4BD9F311C44198F1D0532502EC79E69F60721E73CC31B7DC720B362106803D4CA9A48CA00241B660155498179F71C6198F3CF208834B2AE8FAC0073EF0831FFC80928839A1F7BEF7BDD82A0B162C58BB76ED760BE7A573F99E390B33D99C0983534F3C7664DBA6622EFDF5FFF3431DD7FE81A1A8743EEA5558EF9931D6900A7F828CA3570115F2C9B8CC696C7D234D9B8AD5B0136501CBA38149173BBAB259AFBF7F533A13EEB5E72E2B57BE60128C02279C9179F6668F0B5A1DBFE5D34AEAECE81CA94411F262BE50AB560A5EAA804BFC00527156BED0AC46D8AB05C5CE421CEDAF34A3B6B125BFB66C871DD7BEBA61D0AF2F9C3DEFE56D9B21A167173BCBAD869B8ADA096F18199DD73BB36F78B0EC873D9DC5FE4A4C4A03091806582497FB215ADC48EEA4B23185137CF120AC556B5DD97CA55987DCDD7EC6DC5787B678B98E6DB5C8D69CD9D9B3B53CCCAC046C08D2FB617E22AB28CEBAD1F7E5A90F62C2AEDE5819DC78E38D175E78A17D48FF7F84A0A752C03A11B63C917416A686011BCCBF88A9695DD94DE3F122F82E29D218022107755B8D228F867D4C741060AB9D7FFEF9420CF0AFEC5BCCE34F8944875B85D10237A811A7225B61DCFC03BFDFB2658BED6AEBF850432B784E94861D2054C45149C0E8B25603DB37ED64DC101BCD6F193FD2C1DC8E41A47D5326ED3A6EE004BE6946EAA83576F62997585A421387479E7345BCC83490EF3675B0CB2EBBE07A92FD31836B8B7162CB55F666E2524FF239D3C6224938742A6BC0EC5A7C63519599D86DD86DB7DD9E7DF6592761B2140ED74CAA8029DF19A1A5BB2D1BCA26C6E4AAD3CAFE7CFC61D251154A5C0F26FC8488613F511A470AFCF2E6DC94EF78C73B7EFDEB5FAF58B102270717C391B7E5AF31FF731DFD544056FD9E5602DE029B9EF9212EAD931417A9992E2E7EE31BDF0887ECA8A38EFAF6B7BF4DE4DB5403E04DC440E624DCFA2C39E0BAF267FAA676BEC724D93B7E7DF6ECD9F827EFC3340FAD36319CF19C9BF19D58A4876CBD280D4D9348D8EFA942085C1766B06C60B619DF55224CB8CCF42037A16C9453A82C00FF2AB39AF3EC24ED9939572CB460876031297283313E8F7F42B1C10CD264B681426DB9230A21EE55BBB10713D27055E93404497B0C29603B00C0FE3F0F3DF4D089279E78CA29A77CED6B5FE3F6B6BFC20F6E88C3FCBEF7BD0FF7DC79E79DA3D358AF74F7CE19A936EFBAF3CB1BB76E36CDEAFC9E826954EE78F0FF44A0B35C664677E735D75C3377DE0228E06CA168FC3A9F8EFB908E9B31B160460ECB16C9A668E19CA879BA1FCBE258D266331D954633164A6EA53682BF67D3590606249EB0CFF1674C1D660376F359679E994EA5B3E974A51AE98C80ADA81CE385A6D34D158CD7E9A63DE3B4FCDAAC6257A7E70595121E9A2DE4BD54A60E13CE35471C71C4EFFFF0873FFDF52F8B162E2E576BA3A552AD519B3977EEEA2D9B97CCEACD158AFFD8F06A2B3050BC9994371CEF35D3A2DE329E33C69D628228FCE065D241D387079C76DC66B5D6D3D93D383A34BF63E6760B173DF9D25F22D9DC5128576AADA0598B85E0C9279F7CDD75D72977CE10B48915B0ACC968E325F4D65841A861FE5EFDC25FD7672A05CC7203D28D7157304D2803548949F885D8811065B8123B04969C5832B84C8AF1E002FC869CD58A039B18E5C0D20F25B35809436580EFAAD0808D19D8D511A7E690430EF9DEF7BE471F94702D1271F3D4B816199C6B35B6A2ABCAA203929F10FA8B3B5C7DF5D5679F7D3659D85482451750AC5B3C6266BC7D6F12A3B052AB4001BBA1E746B9895816A5023715AF4BE0B82D2F6845A5BE810942278062F68CD7663329F8D416E0945733A9889348CFC59FFDF7DFFFE9A79F666D859C783593E023F6D8638F55AB564128E1F59D0925128C7C5C7BEDB5B008190C604812221A33A3321F95C3A8360466D64452015B55398CA662409005902C0C58D3DD56DE9B4E18D1E7182E9593CA28E916E085D57AC5B1481695AE6018106B8C9B93FB89325A349076DAA6CD039EE62C8D3328924DC01A593C089372EAA9A742C1DB8D9EA463B88AAC1122E289B061926690E06DAA87B201162D329B50891207D6280660E72D1499618371BC320F1E69ED5847248E085560D335E77B71239AF158033399152232018582DB8C2F3521E0519429BD64C912AC1A71837620A8ADE112E5456871B619CB33A6358D5F8A25809B95550D2CCE616F10137332435A857147581E724556F0EEB85E08038A548A42A155299A69DFB0705CDD5B79CC087AD261B3D3D86ED258908110B1B71386C675C135D84B8C93E3A5885A5023AFFDF6DB0F8384CCCDA59CE172CDA4B2956AEDED6F7F7B269DDA63979D4B43FDCFBCBCB577E68CBFBFF0DC50DF96FFB8F7DE62315F2AD767CF99E337EBD8EAAA32202F5804C51C89C2CE104529C775424C78D535CD0CD4492E8631852656A36E3106452F5AB2B06FEB3631A1126843E012036BD1B66CFA1071A9C8178D4EE2C0C870219FF5ABF5D9C50E1F7E9509E798426706C2BA51CC66B2F0979BF574CACD43941853AE5406EA91E1BF796B849E2B053E660D7A7A6379A433B2AB72AD30D8DAA817A1BF4D982F760C954BAD4CECFD84C1D85EF3C6EC33CF84D41FF57A132E4FC6F1C2A63FAB6B86D70A3B33B9A56F58B67160E0E9B57FDFE6D7162F5A7CCA49A75E75CB0D6CFFC54E35D45251CCC37B2DD26ED789657263A95015764B70FFAF28E030E97AA46A63990526E919430703A3A5EF8EA7EFB4D34E0C7499A48E5FF149FCFC96B7BCE577BFFB9D0A14891BC507DAE2F7BFFFBD9A4930CF6292BAF99B6FBE194AD1C400D5356BD6182BB024583B73C344891A0B6F2582580A13D810904284592861477402E70163C36F704E55462FACA5490815DA3A77B9497B1B228F6AADAA03A3AFE599444445C6539CC5E77F99CE8FE0F35EE0A49CA03E761D73D518003BD1D1BE543B4E92FBB6E2FEB0767C2EB4FADF705DF0C1356F78C31B56AF5EAD523DC1A6E421E035D571528E10A1A90C0088C4972813BB5536D52D2E8621820BE04F5E7FFDF5AA8CA0189F32078CFF27C00FDF842DF3F2CB2FDB7F56AB268A30BB00979B12B370EEB9E7C2215665115F9E017112A9F0C5942B85B4C2B95AB972A57C6B13FB6A620B7B5D0A78A2A9C205A05EFCEE77BFFBD18F7E94F116AE1073BDCAFCD1F363C24F8809137BA8621199F4B95424380C175D7491C2A4EC0F418F0DF6D433CF3C437B992A991550AC49DD7BEFBD9F7AEA2901BE700196E09BDFFC26B4113BCF30BF72D34D375D7AE9A534CAF0CB7DF7DD17F3E64EA02C36E3F108F63827D695CA3EB5493A75B7A54B97E2BCE1D1B698A3A0913092766F0325DA9EB149E2DB2AB3711282307C859690B226AC4F637D9493147AB5F5DE20D8554D08A8741975A0BA65B4A08D5B805940A63626056129F5259625810A2558ED523A93D8C2CC3B1C74D0418CA88F5972851CBCCDBEA1D1771DFA8157B70E1DF82F6FFFDE7FFFC8AF95BD4669FFBD770B9BB546BDEA7AE942B17370A0EFA73FFD29CBF9702B52E2E159733ABCBA1FE27FD57A0BB3D1BF7563AD5CC37497D371C82EC42352F013464BF5D9B3E61F75F427EEBAEB8B0AD0D1665294658CF5AC2336E012F907B1E7865114B0DB4B777B996C33EC70D26ED0E82A74D56B954226D5DD99AFD7AB9B4606E1A375B8A9D1B085D585B931BF1035E8AD07CDAE7C44C0D4571DDD75F192575E5D974A656A7EA315D56C4602B7EC448E5A3388EA8B5AC66883160B99563CBC5AB59E0A4DC6441B18BADCADD58BA93CDCA9B57D5BFBC26639ED0C57A3F7AD5B36DF01071C00110C773332B39A3E63CED19E8F69A6B9E79B2D9FAD4253560B4BAEFBFF960296052FC25AFCC0B213EE495A81AC62E096E04854D06C836624EB9440A56EC0D3F7DC734FB86BB62E6170911621EFA6F02FBBD55152A968CAFED9584689609EDCD8301F7FFEF39F5306721A79B4E92A70E72BF5C390180F3B0D0572CFF1006AFB8949778CDEC0B49C300ECE87AEF205E335502CE71DE20DC34C2A2B5FC876256DC61B9BE39333E6244D42258814B252E28F617C1AD976A69CE21AFB045AECBAEBAEE39F18C4A5972FB2429338369000905A1C06E60723C48A085CCC214180D39D1012DE4C9503B639CCA050B1B73074968D7322880D96C341BF10FF9559243E6B7A0F641C542F552761B3A2D0C78EA169C6A61C181F143F79BC54C7E68C07D04F736026D5D3320208A70A1276787A93AA7CD50927B4CF24A11E56DDD18C9D0684A5A240A672EDC650B8F3B265CB5E7CF14585F4790169C9648BD0ACA1ADCA32651BFE268B9BCA469AA00DEF672BE0B65F3A53704DD81F6659A495D90189BE26CF2DCF9230EADC8226414ADB5BCA1E180D323A61B6FEC667C71D77C446FFF8C73FCEA58105033B03CF85E68390F59376CE6250C131205A8D6EB444AA622AFCA710E96C092777968AD96666B03D601D4215CE0B096F927E3822DF171C5DC89A306ED171E081070E8C947B3AB2D5E1FE94EB98FC8C4DD5D4FE877CE4E77FFC6BA655C938AD547D68DF5D7728F56D7AE985E7B094EB376CC29EC14160E52EBC0AE21CA3616CF73EDFE4BCDCEC6C71AE6B3A9BE596F15BF0177FF3D55366CCEF1EDAFA9209625AABC87170E7CEDD6EDBB6B5F42C4DD274C4495A53F36036EB5192321D8BC5D8F08FCED9AE3BECB0FE955776E89DD715A6FC9151B8162DD398DF31B790CF0C0DF7551A955426E3A532D546BDCF6FEEBDC7EE70D337F50FE48C3BA77736D762564FF7FAC17E2CF65D5FBCE3ACF33ED591CE979AD542263FD28AD44F3334418CE18E3AB9C707C84B43EF9B2C0E4B0D0AD8494739E2566FA1AB103ACD6A65CE9C05ABB6AE87CDB5A1325C0D4C57B1D072A2AD08B9245C274F8D6B41A019D18DD44C18E4ACD20356D29387FC7FCB035689870AF6E880DA75833CA4F2C3B8972858943696078CBF1E7FFCF177DC71079B68613B6963DB405FFD938D2C2940548BC55A73FC0053008E29FC3C35069654E48657A0C846A5EDB0C30E14F26AC82DD82CF51959D67958546D75CB2DB7C02B50F5B05248548A6A2544934282C8F1AC36B5AD585E39C16B02BCD50E70C19CE059786B72BDE15698226A102FEE38F4C20B2F18AB7B158727CC1AF96D083E67E28056025F815E2FE78472DB2E5DD975D75D71736953CCD285175E78FAE9A7E367D24F9A84948252E5B2CB2E83CB4B3B86E5490AEE3266C6B0D9E40A98628B3762296A1B0440AD0D45BA84EF7FE52B5FF9E4273FC982271B1F0FB70F5E20FC4EBB7D26BFCB8E492C38113E8DB3A9E02D77F3FF3B084BA82EDAA4F2F004F669258D75B91E02B0C88652E8782AAE519E43AC076C55CA65DC072F88D721F26D526A565B3FD9586B7C6BB7DD767BEEB9E7D47C8D23271A9E3075EE2A06408C55871D8EE7A1D523DC8403994B2E65C9CB3CAB47EF4485CD090C2D4A6A292AB9BF7C0AAD5DDB23E7693FE28823FEF8C73F3244260E7749314EAFAC22EC2B82E68898A3E36B8399C56960127C190F5E2AEE1B8FDD25DA3976FB503E9E3721DC71521096768ED2C9ECB3EB5B9D9B09C1A02287C7C010BD9B7C1E7BEC31E8D199F3B773EAC35E63B4BB98DF3854FBFB687AF65E07BF32E477B586EFB9EDF270B4DCEDD6C3CA603A76D8204A72F9224C90A80D51BC4B19348EAA3C5341332CA4F28BBB7B76CBE71687F5A2D348A54D2A931BAD555FFDC9F7BF64C2F5B97CC38D0AA08394570CC2AAC2AD5C7495608DE1D4BC94DFF2538ECB3856A93494CFE5CE3EF58C87EEFD8F19E9BC53AE7A7E6346AAA3335F181CEDAF9A5A3A0A1B3B90647E54B9E48D84AD08FA65CC7673E6366A0DBF1E45E476DB65F7975E7C3603199B8F16D44B67B68D0C1652B9B25F8B40CFD15EF170C002D7336EFC5F63FA4B25FCA5504807B0275C0F0A38A8357ABB66D44786B69BB568AFBDF6FEC6CF7FE0E78A5B1AE53097AE559AA17564E4264636597DAC285FB5005114B4E52F5EB2047E12565FAE216BB2FF4703F49F54C09A64B564BDF6DA6B3FF399CF98A4CACE24C00E6315809804212C528B564C7BAE1E0C02129A241186BF422060635070730C92511405F27A1516B24FAE63F1A7DAA06B938421F3F107525D68539A9B7C0B921892124436B77C8CAF7FFDEBC71C730CE7966F17C6E58EA9F12D32190F8872734EAA1515D485868650F2DF543ADEB1AD31CE702782CA7BF092E1317B49E33B4E0BEBA729252840F0CBA38E3AEAD1471FB5AB1FDB1430C5BE9BB03F86315D8130AAF687B009CCE7B9E79E7BDF7DF731142A8E49F6D4B2E31F34BE9589602122B98D29F9A9F2A94DA8F57524270941ABED818C23C62419ADB54B89A051882C0827FB047117E28F7DEC630F3EF8E055575DB57CF9720E681A0F12C28ED01BB5F8509F1C41C3C527A028BF3DE3D3E478707F58850CA56EBFFDF6D00476AF0F928D7142F7DB6FBF430E3904669D189B69B7DAAD7927BDBFD89245FA3A0DEEC3CE71E22B6F7EF39B57AF5E0DC1ED8C2FBF365685CCEB3244A6FAD0B60D933A7171535010287D88CFBBDFFD6EE8123E9705CA6269C0C030996BD7AEE54E80568365F0873FFC01AF43FB4CA872A59399E552029B6A95FA9B6E250F399D7E45C0DADC77937020D3B8E6EF65B4A902847B9DEBC5F3206C059590285C3006ED67D5CB518FCA869007A3C3CC45A1F5F3B39FFD0C77C3C26142701CF01642BFE3D13423F059B06001B97369FCAA9C093761793E2316B05FE1F7B324949936F106E31A5CC9A809F66D61E19E3FFBAF97DDFAFC6271F8EB8F9C6D52D58E9C5B2DF5B44CBF38ADECC2E5EEB9E69C4FDEF285150F5C78FDAD7BBC656933D34AE57AABD55C676B3882C3504C078E0ED41F7FF8B747EF7AEB9C413327B5B0DEB961CB607EA6970F5B038B76D9FBE9179FD97EFE922D7DDBF299EC687968D71D96BEEB9DFFFAC8830F653369F8B98D66CD3750F069E386F5C0AF64C352CD74655C5818AF0E8F42EA64F3E926846BB9E97A4E23CA527BB834E5876ECBCF3B9956D8E84D43F1B8237ECB9D3B737D69A46F74A4B3A3932278B8349A8BADB754261D75498AFA0D8F410AC4C82F3675860AA9960808887808EA5E88035A4F9BE2ECD3CEFFC53EEF5CD433B3305CD9D8E5E4263D2FE986B3F2972F5DBFE2DD4E58EEEE34A3556C95AE5A3062EA460CBB8C4EC1C484ACA3C81AF3CE935ECBB2536D6A8EB6A21A869DB85836F455291E1E5B1A67E4DF2082976796A18E30C10FEA9F0CEFA940514283A758CD214C92A15060D25835A8D205B241A93F08D1A2794A01C2321E865E5476811F70FC71047040585363771F927093C343BF4B4BC04037E750D556ACCA11631795114F715B09565BCF6C0A584526081C6641369D752A54E8089C323ACDC60A4238495F48F67054A8B29534E70DE3C6074CDD422640E851CD9F74D249F09DE82EAB6F848C242D74F4D38F7FFCE3C30E3B0C7FA641C4B14221DD74D34D9B376FF6E2D608545D7435DAF40A7F50AC8F65368C3F4C5306C065668E5062D4CE6B0A53DD4641D77693A9140FD17DB24349594E83D16E576E271554DF6C2CD2FC6914AACD146DEFAD49AF77ADBEAD26319665DFD8E952528548F7FF3F2AE0C4EF29D9D508DC8894148422E39AE38F3F1E46256D089BCA9B93AF540AE354501BD82AB8C9BEFBEE8B4DC2405698343FA0B52EBB9B368A2C153675666718FB9766B294BF824BF6A233BD74C10517DC78E38D4494E0E9175F7C3136AD94A80DCFA6F3CD1761A99F1A898B164E4F94DF0309421C291137DCFCCC16BFED6D6F5BBA74296603EE352F6385037D235C0C830F0A15EFF8C31FFE10A3852AC5C524C0C29F54798FB566673AB2C5F2E09838CC4E3A784A1318464FAD7A7E76E75E85D492A7FEF8989B5E67C24A04C9F27B5ACE6B2465F676F2D35105E6E3BF5AFBD60316A59CB898A919F11C5463BDE324AE4898FCDC6FCCC65F998FFF6B7A76DADFDA3433F38B9D606B97E78FD472AD886CD2CFC78669B934D295C79B14CA8383D974C60B0D344260FCB4930EBCC8D5A89956AE981B29D730D78B162EEC2B8F6E1A1A49A5DD8CE341B615BA3BFA874AA9F8890B7245D70F6677759687465A81DFB360C9531B5F86B7DF8C42E87009A2F352F7A33EC15104CB319891345C936A8DC2917D90F00A82403279AFFC0E0389E908251E38D919BFFBCDEA7DDFD49DF29AA6BACDA46637E2FD36F18379A8D7CC86E747DEB6DF769E89F845D2B97AAD39944D8DC977ED37B63E3449024E0A408ACD0E0BB9133A699A38484679ADC6F2C6F2A729C7250F5951A2F41F234F52C0F249646487E35BADEB3E32BB85DE10968AC54B047EB2ADAA508AB256196D964FE958BCE24ACAD21865E37666F46856AA1BB75D73253A04F5F316B44D4F179F815D4C659759ABFB2A951CA3231226EA6AA34ECC74DC29A318D2200696E91BC76A2820378F6610050B5F5F5465A145806312D26956A22B26AF9E1C6D29B0D7B4851D09116474A79D76A25DC098893690AD1BF85F512ADA2AB08D23A64D2149D829DD2844B400FA52A57ED252507B8E4B359196590A124711321AEE38EE0909A8E2285BEFF2302BAB77FFFDF79F7EFAE9D285D8F436A37DDBFD4D9CA850FF25E6BFED62B289D7CB3A0B620679E82DAEA2ED075327BDDE5CF8541F6594B5A1599C3D5624100F9ED6E2EEBBEFFEFCF3CF5F74D145B7DF7E3B7515BE48E4A1EDBBF32B6AFA2622377DB47D658AE11AD62DE0DDAFB9E69A4B2EB9844768D9B265EBD6ADC3B368594F9C2E1E1EC5AB291A6C5CBA339E49A36D18F604AA00831F76B293433CD16C92D96B2C34907C4DFCFC9EF7BC077F65EF2991D23100804132F703F58CF7C2357859D8B8980116C4639F60EA56AF5E8D998186662763CA32E68D703D5E934637E670E5CA95B316A5FBA018FD744416645A7CDD8C57305174B0C1334F824013077832AED34AEF70D2A76E7ACB7BDE5B4FF9A3950D737BBACB43954C9C59303157061D7F461D368C54467E35E7BE6B3A6698FAACC22E6B2A2FEE34AFA73C38DCAAA7765DB6DB1F5E7A6646A6586D543DE36433998146759E03CF369376DC20A2A60AE34A5FA7D9822636F5B0D54C791BFD46219B1EAE3773855C6450FAADA12A8CE9C832EBE99EE1D49AE9D0E92F8D2CF672854C36688543ADD6BA56B9E1A6E62C5AB46EDD3F7C33E608E29ED12AC791CA42B158C8E515E8A3FFA4F60638EC77DE792736097B855119A4C2967167D7C3CA19E7FFF73B3EB463E8CEF18AC3E5C1DEAEECE40C7741A6E85736BCF4C496AB577CC8A9435C2C0ECDEA7C7EB6EF0FC99A170930175DC130FE1E8A845DC838B12DAB37B91C12CA3D784EB018E8DED9544D76009C21714A090274746CDDF1CD7CCC78275B3F48F1E3EBD84BF22B145BB21B81E00E0F3CF000BCB7360E83B62A0F9B9FD5E6A56A5974EBD2F40ADEBA56BB58391BD411BBECB2CB473EF211D8D37445080FA29450985D0DE0E959A97322EFD046B23191E740BFB7535454900CAAF197A227A2F34D5D20EF45B3CAB4BDFD6A7421E8D5A87ADB2404FE6C1FA232C8D7C29C544BBC9A4D00398994B9B650B3131B1A87569A2F40140FE12A1CCD34E8651B952AF4AC948480FE0409CBA73149249DDF9A2A474B77848DEB598915C4FD7948A2E4C4A5A812CD8C9F13A9480B00BA0733006765AAF1937556FF1469ED54D75322133AFB6FFFF66F7FF9CB5F683E73BFAA0A50AEF0FF96023649350E11CB9C643B6E66122394FA86E6F039E79C73DF7DF7919DD14E5CB909A10CC120F690B8E22491D62FD9AA92D87D7B48D4CDB8C9873FFCE19FFDEC67505434E1F5BEA155FEA43E4EA2DD603A4DCAC6C4892B63694A3B6CC0DB8ADE160B8D1FB0DBD55CCC58296D5DCF2E66049F6BA2D4100C1B09DEF677BEF31DDC01DBEC90430EB9F2CA2B596EF8E28B2FC2F7C572E3DD172F5E8CB93AF6D863E9A541EEF0D0D2C05AB162054FAF9C001D5D4614699213CED6F41B701B71C6236FD44FE7325DB5C660C48FE58C51CC538CD23C8F0A48D2E9A14ACF899FBEAB91DB21DB31B388091C189DD5D1B3A91ABD8813BD691015E9461D15A0247C6F7E7AE8B9FFFCED439F99592F2CE8ED6EE536BEB0A19531CE6E73B7DFFFC0037EFEEB5FD4033F1614F99EAEEE72A91496AA11E01B47D20FDCA0957671B348D934C33A5EA9ABA3737379D4ED28BE3A5AEE888C96545FA59676A35E49D8E69E1341B4B06C8B66CE4E8D94719F46D3CFCC9EB5A1565A3B3CB860E1E2F5EB5F35F9AC68AB299778EA19B9A1B38B39BFFBEEBB094826FD0813584C164600B4667374A8DA72EB1DF33A8F3FF65BB5E6826C7AAF7C4FA36FDB70AE589BF4B0542372E2B58DC1355FBFFF988E0E53DAE66292536ED16FBD4617AC2C95E00B843590989DABA646E6D2A6145FB6BCB21BF54C75BAA57E6CF12B463F33BE9B9E6EE25A5DBCC47525FDC12225DA8BD22BD8B1CB972FBFFCF2CBB1DFE81AB27E8F9A1B5B5A250FF28019F3172099C7DCA6FB203AEC95575E31E3D94BE401E31A984D77DD75174188744C591CAFEC35352E868731C06487D9CA0268080D2A29DD8ACEC01E7BEC813348DCA8A62BB4BA6B689F98B858DCBE400A980299315AC256EC4A6E1C7F280BE1784CECBE6378B7DE7AEBC5175F2CF4B19482B18C0F2FE94B68E401DBC1469A93ACB0E6B6D861871D2086884C615461527D1026A4FCB67D61A68D1287E3093CF5C4134E38E137BFF90D949FEAB1E858D8DBCBB19898A6B93F7F80A8A5BE696B02E159BD60ED23A14D394D190353F40CDEE2FE6420A3F89BF47A95C7912895A911963F719753AB61230ACE3E6908FAF5A23AF90A8C22F0BD08911053153BACB1EB8678A34C92318D7CA998D6472C3C340EA8FFDC84E84AC6BECDD4214C13BBBA2AACC29BF0372C1D51EB721B42C28FD4BF89ED39668CB8B568CCAA445255E96D3751CC87B76295302E26E4505CE2AA9EE20CE3F0BCF18D6FC4FAAE5AB58A268BD0C5127F41D24759A4F93419DFF4A637915BF4D0430F65D13CCE271119F82E26FCC4134FE4F663DD3CE304B886751D7C4DC521594477D717FFFDA4D38F8DD02B1993766796AA8DB973F35BFAB7197F0CA38B616026152EEAC4D2CFEFDD5CED3AF8F44B82DEF91B47861A61B398CFCDAEE7A37D1AAD960F77369D72A302DDA63FA7DEF5F0FDEF5D3052EC0EBCA2375285DF98EA4D43E80C6F78C30E3BAFDFB4BEBF56628B85AC8900AD9D8E9B755359C7CB60724227E524B53A5D1DA395F240A3829D77E8473FF487E7FEF2D4B3CF556218573E9FAB06CD4ABDB5E76E4B57FD6D1536F4AE0B17BF71C19297FFFEF7FEC1A1234E3BF5B6871E28BB4E3A972F0D0E87858C603E4B972EC52EC211B3831F7243F973A4E3E34E5F34AA14249B9B5EB8D97F3584304FE78FB8E2C76B4A2FD7B299F48CB0674B61D2F33273B07B7EEFDC2F5F73887123A7B0A3683266FEC0D02678E08CB8D2C4145A5E8295CD2428076C452B480D77B8D800B1F1386086BE14F46A935D61C237C05A17C81CDC4A34678E556C638740A5F54D02ECBFEAAAABE05F42AAE06E9C37A681705B3812D467767686F14B7A75071F7CF0534F3DC59EDCF4F0A8A5043EA5DEB2C165BC8CB5B3B2573CAB3588ED5B1330CB383CEFC62A7C132B60426525FADA729AB6BBC9AAFA238F3CF23FFFF33F49D8A9E09C10243CCB61C25542B2E13041412B27451785D16F4A0FD199E14A76FC643B5A6D457C05AB43E39B9D0E14D1248A7372054C5C1901239A7DD68171A99CF1346C1CBDB1005DD29D2C6861328C101E9B657AD28F931041A876ED8E3BEE38EBACB33000CC29C41F04342B94B8C6FF3C08CB8B7BE090678A7A97F104313D71B40A3890413315779FA59025BC76AA660CF8CA15575C71D34D3731212FEE0E3BCED9A608E94192D504538491336588FBE06E77DE7927C9496C5A8C8967F2F52A60297EE10065540A34681BE0DCCAE484C230E0A17EFFFBDF9756E6B1E429B263326D4FA4C54DCC88321F6CC340CB9AA0505634924947D54DF6CBDA46BD4ADD68E5C82EA17EB2FB4C4F14617C47685CCC30E776D1A2455093CF3CF30C94968DBDB2078035C50251E84BE0CA5BC50D317E1C7876CDE386C17BEDB5D75EB445CE39E71C76CBC12624612CBEF2B9CF7D0E03C09E640A9CA79774457C2ECBFF8985A10CE2212A7AF35A6EC538F572056678ECEDB52AE99C694628A134D757CDD2F1F45DF6DAF1F9BFAC3641FAFA1BEEB8F4C2CF2DEA9A996996ABD56DEB0DF44F065AB7D5C4466D659D488AB78266902A1453E579DED294593552369D6641901FDD541DED82228EFECF196ED4E7747635EBB510DE6A2ADDD16CA55C0F66511ADA778CF3D9857E2EFB15CFB8053898BE9FE9ED59B965235EB26746D16DB9A55A35CC78A572FD84138EFDD5CF1EDFB47133A4FBD2CE99CD7A6373A3F48665BBFFF2A5E7292CB0847E6A6C1D71DB486955AAD47CE96C94D1A087A046E8CCBBB3088D6E288903A1E142374C174CA7BBFDC8F03F3266F68CDC36E808CF64B6B9537044E77C535D929D3358DFEAF7CC983118A9DEF9F9CE4DF5F2984FA9D0227FC0B360695D7FFDF5471C718449EA38B84B85F370C7778155FCD6068228F26CACC49C0C476E03FA5222F4505A344C18CE79D2B581C38469C74D98625D8BB294BB4556B2EA7D29CAE8BDD16F7EF39BDF0C056CBF5D2B69A1463B9ECA86F005DAC7AC9FC49F6EB8E186152B56906698981E9398B03C385CD6B6760B14F8F44AA980557A84A384476303B03C49CD0F580781BFE254C6B9FFB42A1D74B4EDDE44B2A1E524C89C72129244E68C9563A56CC72FB104E40EE2B7202D8F3BEEB87BEEB98725A6A294B0894A6C2ADC712168BB14849A9C9E10C7BA64C9123C49948D4C1FDA7AD796598AB013C3C65D355568C5491A8CDBB61BEFB0E79E7B3EF7DC735A27C68DB9BAB6446E03CDB67DA856B90C147911943486C806492F4F7DB78DD391961466436C4D133F9C7ADAC2302D2FB9E41236479A4A61E34A313CF0BDB0512EBBECB2F3CF3F1F2BCAE434DE14BF6762C3CEB5B72912F37A3E36FA9A475D89061D399C0D3AE51025F813FB3662C6F0570652789C680C32A9C31811D5B08D75B27316D41F263663D9478FC245B6243590DA2A4CBA9A0A5FF37AEA2746F9546C67924E1B3A42123D8A94D8C2C2367128DD2606188404E11991C1418A7FCE9B4D4F8DCF3EFBEC4350DBC73FFE711E691A67982EFC15AA973242DCB37C04B3C294B64CDFB4110CF140E5F29DF51AB66EAB6766F7E0C0D68ECE5C69B4D6D90977AA629264B9C200988A4B2FBAE9CAAB2EF35B65F85F4D3F4220074ED34B19BF6E72F96CDA7562551AC55BA18D3185BDD19F7A46C2E1B409AEBAF4BC2FDEF2B54DB5FE030E3CE0A5954F979B0D27866BCD801C6834E00167BC5457AB15E5838DEB19B897914F8C8D603C77D91B767AF96F2FA5A33E485EC9401B671ABDC575C3037ECB04AED34A394395C6B21D97AC7B659D1B9A19B97CBA565D347B3E1EF1C250BF29E66322722FAC374BCD5A269F87BDD66AC6DE4FEC7C777576418BB701186D48BC922CCC35F0F0BA7847AFA35E6FF6F6CCEE1F5A0F253EB373E940F9F949CF8B5B308EEFB4A27E5191D7EC999C97CE349C2D26B1AB1952A24146B8A2EC578A72FA52A48FA5C0A5E78045E1050CFF9088EA95575E512ACD86E74848CA915ABE7CF9934F3EF9D7BFFE95682365EBA480DB4058C6AA543449BF42F2023164C2583ADE058629C41D732B447153D4B3478EE04E9C73956BBE46B5111708A853BB58C0D8EA9B4F9FD89D563C890AA4433CD210E741F6927E33E264B4C979D4CE9C7A514817BBD4C52478141A4376829C6164D6C8F0FE9C49B9790C5AA809378F6A5BA6C04672E1AD0F3DF450F82A44A77EE73BDFF9D8C73EA6F24BFAB7848EDBC189680B9D79E699F7DF7FBF491A834358635E687AE0F130EB1E78E001AA19767467BADE4C08412BAF6E170E4D5308EF597DE21C8B9B97E1089E2EBC00269A13AAB24B1B133B8D82BFF6DA6B2FBEF8621E4E6A205C7CFBEDB79F7BEEB9DA97DAF19C7A762DC4EBDF7AEBADB0DA48AB349542659A9098EAFF11324DFDC13D0AEB89B10B913F10B327A400AED1DEFD7F57C078DCDE7BEFFDC4134FF00E782243AF5C26EEA13677D66E69A54A414D7890F48E549F6A7B3348E7913C96720A7BFDFDEF7FFF430F3D24F01773309C79EEE0894C5EF271F7DB6FBF3FFDE94FF7DD771F8C954F7FFAD3575D7595CD7F69E79E151CD38BD842CA1604824DDA90786385EFE4C488694B4133BC0E368932643CE4D0BE78C4F1C71F4F1E2E139B1DEC127FDA69A7C97CA1BC686BC58A3B93FFC4AE7930966F140DAC10B46A269DEA6E058D5CB6E9B9C16824BEBA3C6F54284D35FE8A4C93663DED9A7CC64041F7CEE9DCD85782AEEC5838B7BC764B3E97CDA5BC7AA5DC0A5A98BB8CE760967B23F6CBDE72BEBFD958385C1F58BC5D75E366335A378B3BA232B6A0D52CE60B8D72B5E6B7663A50BA4E4FAC143306EE2F1CD648417B6E1460AC362A3B167B7BDD8253F547FDE646535D6DCA94889942BEBF529D33BB67EBB6C1C5F3E70C6DEB87E65E9C8FD8055AE9549FDFDC6602AAFAAC9BAA077E54740429548C0227F0B9474786D3A9B46FC2B1363B5697029314A7D1D81230275A88FA825AB0D6647DCF2F9A54D9AFF7E666F5D7464C66F240153E1DC694B2DE2227BFBE54336E6B5690ED0BEA70F27DBB1C4351473A279030AC5927D2D0C6274B2FE244C0E686D326FCC1E1871FFEA31FFD889DC2196BB4DD3563C180B11F644633F345BD2261A850A22AC2253329EEAFBBEE3A988026E17852C3798CE4031FF8C0E38F3FCE30E179E79DF7D5AF7E951790F9875486D097D8A244C9D8205646D11451A3FA541F718C93749BB65EB0A14CF82704F29D77DE49042BAE676052CDA68CD5D81B13C817A74F856388DDAE52603C9DB8748643F0575CCCF0950DF25583F6F7BEF7BDB06648142A63CE26733649BF2301CAC444CB280BC306E262E2F5045BB949631BE519858276ADAE33919059BC783169B44C9CF6C3774471826171F6B99F6C68B8B1723036CF9993905E71465AE35B70F0F78CC46A6704E36984F1C3B265CBA021687110768F6761242FBDF412FE6AD38253766BBFAAA59D4816B5476DD21611A272D67818B4BF191755EBB1A950CD72F155428041B2B580B829DA40E78C98D1B9B1791E6CF638C7AA2877C7F700B0E142133F7620A10D6DA87A09C676F8BE61C24BC7AFE31ABC3E9686484B5C86D19E7EFAE937DD74138BD0C4E0833FA987B1CE861BB7CFC25CC929A4B452A723C2389945E3A32FBDF4D22BAFBC92C7D5667C14A1152D003AAC0C19A904DE2E36A0F00D121A3C4E38C6C03824CF2D06C64996374F3033C98CB04F48786BC637E5DE79E79DB10FB997B858175D74D1CD37DF4C61C70ADD975F7E792C449C0062D903FB9E7BEEC15410CFC2B7C67D60D55161E3292FBEF8A2B8E444038EA7B09C97D1020E862745FC246D5579749769B95216885747875C68E1E8267137A4E38E3BEE6B5F7DB023978D1B58FA1DE96C572B6C042D78C4E942AE65A25E814E100506CB2325D802BD1D79B7545BE41552AD3ABCDBEE7477BE39DA91E9AC36B0D8B051329566152EEE92454BFCBE7E3CB35C2DED306BBB8D7D5B61A63D5DEFAFE5331131D9F048BDD10C7369B790DDDC370ADD3F2F9D9BDD4A43BF0D9AE6DC9D767C116BE1A4DC5C6EB05A0A634D3C16D8A8D5A07A5B7E339BC936FCE8ADFC88C1213E17619049676005CB0CC74230EF3E668834A6D4B4D37CC2F1EDEB234C68B512F596883CA1A8D1442A939E356FEEE60DEB8D978F061AF8C60DA8A54AD55A696008068909C234FCF694D7747DE3846E26DD9D2B9686FBF17B2C4E3107332333522AE73ABB6BE58A13362852DA7A0AA9BA4460088284DB2237B61F62CB1CA65D79B8747068B888C30B06FA33CF3C432C08A5CD92254BB0B19DA45EB98DE0825F877C80018173FAD8638F3DFFFCF37877EA45DBA2A5493431EF6B2C1A3B2A051C81534E39055602D5A74948E8F8757EF18A2BAEC009E2B4E09F279D74125CC7DD77DFFD2F7FF98B195FB2CC6BCC148DE4692EC8BA250A9D8DA1D47308B77DF6D9674F3EF9E4471F7DB48DEFDA9E6121BDF15C4C080D14B233493FEEB8E38E34CE8456E3B6A497E5705EF06595C06EBFFDF6471D75D4F5D75FAFE709644FD1A6A88BD0A14E523C6E0F94B3CF8804AB2914AFB37DF9B6A40525AF58D698A287785ABE7C391C7C322BF1976EDC428E1628C51F06A98CAFE815E5A5B17B89CE15076CF748B8E5965BF014936441B8CF9CA9EB80A9D2C8F0AC3486490A79C53C472003137B61D22C93803D556A4DCC6DDB3B381CDF1A73AAF1E8C0F018532D292928B2595A45541B6C7B8039C7217CF2C927696629CDC919A3A3DF6696C29D3DFBECB3D57ADA998CAD9EDB5A268510A49C19FC950158E96C6E591D78352A507A468246B88489A782A136C57938FFA246C2D8F06AEC6534916F4B482B2EBDEC62BC23440CA412E927A1AA615FE34AECB4050B16C03A61191584082EDEB061035EE481071EC066C0CD7119742D1E87AF3FF5D453307430AA75EBD67DE8431FC200585ACD6D7CD6596789B755BCD62C07B0C36E26A198C7BC61244296C1D558B972254C408658281728DD047D8FCCD9D1B84676B7DD5E78FE6F9908420D4561F28ED71191F4BA4DE88130888A833D68C2E880C0C2AAB68285BD33B2E5C68EB99ECE46E03583742E35DB8D1403DCDEEE593386CBA567FBD72DC8751E73ECB1FFF5AD471BB5A6F9FF587B0F70CBCAF26CF85D65F77DCA9C339D3230D2040CFEB6200A8928516330B1204AB16045404054B022360615A4D81021894010F9E3C767024413490C2A1A839F28D2611818A6CF9CBAEB6ADFFDAEFBACDBF7EC3367D45CDFBAE69AEB9C7DD65EE52D4FBD9FFB89B25A50E927E90E136D0ED2D64879DF7DF77BFC91472DE2CC377125F8F2555FBDE07DE796FA69238A4757AEFE3F5B9E844D510B4AF84AD724E56ABD6F52B1D3049E6F0B02F33519A796D23283D76E13C5B114B029A20B2EDC34F91F35631056882D7EE7BA850E0D4FCDD8F653ABF6DE1BC30E99F58ED3DEFEF5AF7DADEE572CF96816E1AEA57250B2E5C2FD761CD981B763EBF54D366B9B6BE49E7D29CCB75842918727C79B767B51CFEA0CC3F6A6928A949CC6092EBA815C9752C355C06E70C814D8052FAF70E37A203E03AF86358345ABACB9EAA0B84F19C0A73825171529E1D480D5E4C69F254B29BA0EB81B930B8FB00939F13CC7A5EE11AD3AAD643A5D74D514B872219F69C1EA2CFA2A194984AAA91CDC9FDFA75CCB40B024370147D3D92D32A4CA27924BEA96CF4CEE17C2ACE81653D14ACEE30AD0DFD8F5ACA1FAC0073EF0E94F7F5A6026426184FFF05C482789F229919914A4F025004F8FAE40B91BF222ECCD959203A9082A95673DEB59F7DF7F3F5789C02FAEC5C4C02C1E202B5AF291A3405C33E2C9E210D3D3E71570CE6B5FFBDADB6FBF5DBDE7B4FEF033AC8A7FFEE77FC6DCC36E8269A34E82D4BEAA4D72493E85CE5D78B09F3CBEFBD9CF7E16CE1C9B841033CC1589EF32F12C9350AC175A43AE4A932D22F4AFAB7755C8BF078B3E73086EF45EDC481C3D469F5C266A55AD89502D2D38B43D877ECFB5B79AF9816B4A40B8A00602AF30328C5D0B122F1093A0CB32B65803A0EA460E1443B27C179E067D8CA173E3D5AE6DEB2E3C1112B984B4DA96F8E4E4934FBEF6DA6B21D3F1D8471C7104CC7FD64A31BBCC8813818BA6B0AC8F3DF658D6E672EE98E1C3837DF7BBDF65BF2646D49971BFECB2CB48C54E5B84AB1DB7F8C10F7EC00A51C6034C9E20307923454C13FECA7ED5F8962C1BBE1D197FC8ABC5C665EF78C73B2EBFFC72E5087132EEA20884CB71A6D8D29C204B73AABF7EBF5C0A4D9CC0CDADD87CAD37E68561AD028536DBEB28459DF4A356B7FBE7473EEFB9871CFAEB7FBB6B72E3FA7D4C75AFDA523B479D7868A439313BBD33996A56862A438D7E16619FEF9ADAD5ED77970E8F47B3D1F0F0E883939BA6CA95ADA63B323EB67DF3B69EC92A4375AF51EB45FD5D3B67EA3080FC465C0D6702D3F56CEB86A89F64E560FBEC54AF90E6247F1E1B199D9CCA3B01FB15BC826D6D177A54C096CD3F7F55D757231104A4D66229AAC50EE5265D8BC7625FDADDA52B566CDDBE159EAE094BE3F54632DD3671543359DD84555BCD15D998BC1F42CCF5D3C42F079E7595BDAEC926927826E71EA91A6FCA78CD469385E3AF7EF5AB6FFA871B43DFEE8D566457E92DB7DC72C209276055101960F28831960A991C842E36BB43C32C54C02E132DABD4F0578AD31B6FBC11BB403A8969115ADE2E47ECCB5EF6B2FFF5BFFE17B721911F0CEC8BA990874800FDF93D7F2878797DF836575D7515AB89B4C1E98CE2FAEF7CE73BBFF4A52FA9917CE0B47BA1FE537F52CA1995EDBA72437A648000CACD2E317394E63C8F0C27A865AFAE4CEE39D6730BBD250A3FE3F08EC993E6107DF5AB5F3DE79C73C839484F80CE2ECD38551BE12B78F7ABAFBEFADDEF7EB7E7C663F140ACA8D198AAF889216F868E212C30850C76338EC10427EF472F84D10CBC27C6FD8A2BAE20391CA7CD25A31858405C5B6E1ACF35ACDCD174516D302EF09C981BFA9D6E1B635338E2B81764E89D77DE49EA73BCA35B67C66970895A7E2F17B4D6166E871FE876D35E6110292B1A6840C4435C9E75D659F8F994534EB9E1861B5C3A0BB5F818783529666525FD829475B7CF43231167C214D8B0610345394D30DCEB231FF9C8E73EF739DA0D34458952D9B469930C404EB178E094B01C20B472E348AAC155F5B64A9EB0A3BEF39DEF60AED7AF5F3F5041CE1166EC94A93219C82AACE42391B9825B459D2A4411BA7091F010DF8D080BB5F499B4C33958819C5F329C0F406094A9120F3E4302AE39C23F9148047B950A9B76D5ADB7DE8A3F4141624DE2649187E03A7830165B73D3BAED9E38B00C9F240E4D37CE87B980BDAAAC2749A0B29CA99BEF88CF396EC71C73CC1D77DCB1706D98025BDB1C1EC2644D4F4D0D351BB16D6E1457213733681153F24378B456BD51E2C03D8EE2154B1AFD56A79E999571704038BC14FAAEDFEB9856C3349AE5E1D84BDA713F2D7BF87F269ACD2CAE1A0E56343E32DE9BED8E8D2D7F78DBD3DBC3EC89B89D7B80B67B71CBC45BA3E4CACB2EF9E8FBCF5F39325AE9C4A5B1D187B76C84A21BADD4E10CCE1808B5EA8E288FBBE6185E93B3D6ECDAB1B31FF76B8DD199D6AC6DCD084FD8AE43DBF6C1D6EA9A797953EC4A2C6FCCCE9EAB30161E0CE470D8B9561935094D189B74C9EA1513DB36C371F5DBFDE526AC59DB25AE1BBF1178419206963D1BFE7000CD9BF8516875AEDFCECC2E13B76C80C18397FB7062D572B539D4CD55FBF2E5CB2677EEA8944A7ED9FA4FD0FD5A6CDA140C3D92AE87DB59EE9D5980F6D720B846AA37BF9B35332FECFE0BA30DC290A02157D212E7453A49C6815D6A462A08065758A6ACECCF805BC59E28B4FFF00C6BD6ACC15EA0F52966241C471F7DF45D77DD45794B2D23D3817A1D4F7BFCF1C7E339050BA51C7033E27842B6BFA3FB3190DCE475F02DBC32BDF9D7BCE635FFF44FFFA40E572CA3672A5ACFA69E2EA6F0715D51469416398FA9C299C32666199F63839343D42512B8F0C20B593E0341318737A167C641E11B320427D784D3C93427EF4D96280AF4A2D14AE6A28B0579A7EBA3A7A76E9010971922D06996B37C510A602DAA392E3EE1603134441B9F607453444E3E991F449D31C32171E626CFC8F1A4EC3577A95A5DBAA9E23D80C8688551F6E1F531CA9C06A955FAF1344DB85EC579229C8837BF0C7A602F713A69AFB94A7AE1C118039E8175E82C16C4879C32FCCF96D10C8393A380349F14DFF8C1D66C14C5CD540622DFF08B7E41320B8E3AEAA89FFEF4A7B475682AD2EC50F52AD9C7DCA8388697FD91948C77ABAE7129FE89CA12E6028C062C036232F1277E5DF87CB380FD47BE2623662499635A08377271D7F8E1B5AF7DED2F7FF9CB071E78209BDF40D438C936E242D9CD90A1721A55FBECB30F7319B8F2F5D75FCF8D4A1781611518C2B8C2CF7EF633D90ADC3E620DE33B1276C0724C326131C46D722A4ABCCB49279DF4AD6F7D4B4AC5CD9B487E2902A606E92CC0E344674E4F0E9AC5E5EA1CED7ED4EBFAB6097A56B6582ABF09E720B3BA815D054D929683B056AE64EDA9343378A66706CDBD9360D4244D531EAA37A34E8AF3BD925FAA56A67AB35BFA3B7C13AE5AB67A3BD475AF6B1B1445A65CA94F9B6C53D6DBD89FA995AAB87D278BC366B313645D93B4A6BA4BFC60556508BF6E9C9D5ABD6AAF5D3B26FA513C6BFA7EB93663D25E3F67760C4B78B5FDF65D83BD69DBD20D2F99989A0CAB9538E9639D85E552D2EB873E14A0EF5684AB28F37F1082E6A453118A1827809BDBA8B5DA336BD7EEFBF4634F8E19F327ABF69ADEBC156E38E4572D4B4B990D337B790328DB9C31FF87039205EBA36BEBA4FD20F51FAC85D3DD6E14949A4BC7DBF01A33DBD2D6FACFB1DDF22CBE17DE021EFC95575E79F6D96753F6322E95168DBA17EA5DFDAA1967C617EB012B4D512EE3C08B8CD3AF1DE32638982E2BC8A488EEB965549633208524A6A8F90439A4F3FD8637BCE1DBDFFE36638774EE21B2D4E8D66504931251C1159E8D85F2AEA6304EB7471EDC41F25625914CE1E0D1EEC7BD18E5955783C7C393E0E2871E7AE8FDF7DF7FD14517414DBA602E53F8BE7C2FEE383EC669A79D76DD75D7A9820B87C0D80CCE316C40794B267C4A603BA0071C7000A4366416B3D9260FD313B885FF2126F094129AB8D30F7FF8432C4DFA16C46A335E2FFC9E9BD4A44F8CC93EF7DC73BFF18D6FB09003CFC759E7A4AA2489EE173B019802B38E4F582AAA09F60B166F9936981BD10A1A8775C5143536B81D7623633BA2201695891BC371BD9C3D705913E88B0541D6305C47A5F4AA1C10572AAF26E83C71714CCE2F16E276DD2055FA63D10885BEF07CC643A0A8785941FE682AE905D9E2C32D46A49AA725EB3B2D72DDBD44E5C1102E96111521277A0000EFD64EB846AEBB93B9676800B152D6388453A6E08BC6F072E8545DE0B29DB8B92253187CF8D30B5EF082871E7A087B43711DA9524E991BA1C5DD7105C63C9883E0EA12584C91768D8642FDB4E83FFDE94F3392C62A405CF9AAABAEC25FEFB9E71E2CB6E73FFFF9EC97255E2DE5DBA8745D2758997B06F0A9A1614713868A9114C30EB3CE42086AB5D01897432F11F0BB005AFED9D8F8381CCA9267A036E071D74B956178F0ED36746AB954B6A8E624AD972BA343C3FD899D2BC6C6D25D536371B2CA9883AB2BCABED9DADE32EA2F85CE6B47ED69331B9AF2E8C8582F8EB6B5B6F89566EA07B39D7625A846704D479A8FB6763DDD6F57AD2AAD6C897BE530881BD51DD3AD5A6082D83CA3BE647D7BA25AA91EF3D297FEE4AE9FF6D3AC6DD2CDADE9AC54EE477D3F4F9456CB15965C77DBEDAC54ED45FDDA50B3D3B24B25288552C0EA824C09BBE7E6287B3E709137BFF9CD9087B06569C8C2BA6BD66BFDE92988F0B5C3CD787AB669AC5D1258F3C5B27AD5ACBF6E43E47D9345B0FB31B0B93EC63668E52AD9F64F34D96F7CDBEA78470A2BC3AF2C59D26BCD5CF8C98F7F69DDBAE1E612951B30BDC59052965329291F21BAA4C5E48664A9F63BF60E59EE716081EDB7DF7EF058A88059F04390A66C65AF6097649DAE4C7FD5CB0A64AA6DA89F07961CB120A6E82084FFB18C712FD511F064BE9470B20338705E5F1BD9CC27BBC5436277509EE3FA37DC70C3AB5EF52A533016F08D4CEEF8F15B64C8812E902324D25CB91C5C007848765BA10320DF92D711B284D86CD620402DBEE73DEFF9DBBFFD5B16079F7EFAE9F006714D5C0A263BDF08E7E382840D6155CFF5C495EC8374A6EAA26C65DD180782A145A5A999E3249938097B39F17C61852EF12D5C13EAD3CDF3634C0F3BEC30081752B6EA43B57038E69863EEBCF34EB8EA9FFDEC67393A74C4DD9319EBE000519E2A2AA2E6B549D1AD889A80E0856BAEB9066684DB6684D75433064642084A5C6C03437D624CE974A679EB2E46ABF015865C244C99BDC087A41AA7F6FDF8C73F0EC1AD8B0F04543D6F2E37EF26C8315BB80EFCB6DD3E8FB2ECEE8157F8C0073EB06EDD3A3A85787D2C0BFCC0D123AB8E8C38FCCA56D51C19A5758DE36552EBD04B8092C04EE6E6D97FFFFDB1C8DEF8C6379E77DE798CAFD2FFC06E8735C0D589D717444E8D29F5E20A2B310CCBADCE44C611471C71EFBDF77EFDEB5FBFECB2CB18ED906BEE3945754A41E1A6B8B5AA7A589BC8EEB0DAED748E8520130A9D2922F20FB8F00AC5E759FF80EF721740D9E395C94240E18569C5C57FF4A31FF135F14582BC7435D62A704C08B052ED0AEECB07738B91041363944C6005229F496FC91C957840D92DD4356D597C6CF76FB91447117CA2D6CC6C35B46AB9562A37CA55ACE0CC7665B5B8212FCF0A574D580E4B61DCA958CD12BDA0B97ABC9354928EAD3BC25F4C10C570E44AE54AA907311DDB478DD3A465A252B9D683051394EC88371B8FB5279E8ABBA390C2F591C94E2BAA95B7F4DA49E0A5FD6CB4541A8BBCB0D9787476626973A45CAE6E9B9ADA9E74CBF5DA647BAE23B597992889421FD65E0C153E1BC336F257AFD967EBF62D51A7E38741DA8F1882A6352681EB96C9FDE107EB732013E457CD6109CB7EDAEA8D7966EF4A2DEA76FE74EF7D9EDCF8D4B26AD8EEC6155BBA64A3D0560F990C4E4D025F374EAB78A234EB5BAE1483E72C653636FD5439DBD84FB75BADEC75C352E67B4116A791DDBAC46F13C44E343B45AE024BCC41B081C742B9A44CE7801CC022C7BE83B0D250B0D7023E67B7793511C2412300B7639887E7B31864E148064587A5AC206E33F381C7DC80B8147CBC7FFFF77F979948AC0FC1CF10082CC42276840B551141D991984A7889F7DD779F2960CC4C16B046068FA7BEBA7C06C5CC4920415143E7818122BCEC05175C80DDCAB0A8A03FB21B781115D4D0191BA85A14653421D04A8C9202CC14E12846AA0443C68060CFCE159A7250B0B7F10EAC1F5717238CCE59679DF5F9CF7F9E74FC50A25CE23C59B537B896C84507EC3297BE4A9D8A094CC5D8B10F0C1D2642D88D037C200C8411C8C021D756F9AC8BED92E582A54691CAD4375706C1B74C55322DCAA02E3F24A014DF2586C5E404A182202D56F6C3E951D19B29AC3C771B7395244E5F20282D169BBB3D3716469E3DA7D2CE2F1A606064F0762C28DAEDF3900E972153DA7A18C94B2FBDF4E28B2F86F2536E090B82094B3C15B3417811CCAF48425491AC74382D09176A81AB3DEF79CFFB977FF9177C2E51450388D97405ABB9A2984F7AE10B5F08779016006E01B54D675DFDE35CA9814F04B9FCD6B7BE058FC41489B181B8BDEFF445760B0DB95171293CEAAF7EF52B6C0301EB8805A3E5CEA6BCC428644E6B6EF174AA73254609BFE26A3FFEF18F8578C77AFBEE77BF4B8B136762C0316277DF7D372D2D2FA70063888F5639C6106610EE082BF37BDFFB9E1B3A66D8F9E69B6FC6B7700203517C5416C463103014B045CE39E71C5555724CF016B838DD1A3E3F5F3071DAD5D91A92219B33EA6027964B5E92667152836D1D94FCA857AB59750EDFD7C6A5FDC040A9469D86C9563497859DEEB357EC559F9CA942C7FB593F894C92750C947150F12BB65B12E13F590CE59C95C34E924C745A1D93F4BCEAF672BA35EDD4A36CBCB164476BD21B1A9A30FDAD33DD914A58F7C2655DAFE3A53BB25EB55C6F3487B74C4D4E65FDA9342D57F22885C942ABB69266A54EC4E9CED9767368E819871CB4E1A927B66DDA54AE56FAED4E2908A324AECDEFDC2556A33F4A01AB3C0F73040F81A1601B7D29994A6296A5E6D091B1646A177CDFD192D789B2A60931804D3F2C9B141649DB24ED3C0A1D546AD50C464A1AC1ECF132883C6CCE304AB79A682B866964EC81A9C909EB3087397A2BEBE5BD7A1885E29C62B1BDF5AD6FFDCC673E030314BBC6E4B5820CDE2E54C09EC3A2658A748CEC0F8E0C269744981008F0CC145262460F8B0A6E097E86997BF6D9670FB42A125E929EA829786179D301C0CA40B502E93669100BE1A59A284A15A572C53AA9830E315FC7CC8F6EF210710D9F96704BE14E54044845C3740F814D6494749B88F367D9CA54D814957A5321CFB5EFF03FE5038617D751D1E68B5FFC62080ACA0D4232198A27669BA8146FB1058A1161C527E3AB546F70AEE156D3F960000D8636CC6D9CF68A57BC62FDFAF57050F0641C083A281407D4B87461053CE340733A93A287E50025A10E7E912549A608D6F1EB8CE305F90AA6DC812274B3111A325314A767452F07051C08CDC7FF2ABE5403BBDD1E5C19DAF32A5CE12DB8E0B8B6A8F0948413270B979752D182F651F1739404B7A3227753B3D2317A0002978C130AE6AFEF7FFFFBB1A98C03EB38E594536EBCF146FC153BED965B6E814DE092E852078B828A6FEAB6DED48AC7E2C3B7941B6634C2E4160C16314BEB9483A127CA98BF1B3A1E283370298D8484A2534E624B6D788D83F62D5BB6B93010F1B72892264EB8852C2BAEC5CD2C118C2A9CACF407D7EDDAB56B69B5C858C139FFF88FFF8887F9D4A73E05F3F6DFFEEDDFF045B6F29611C3D0911BD663BF3C1101B2BE93402D3E3C09CCC9C52DAB42F5577C546A08D991CCBB5F75D555679E79A60BF1E33A61FB1D966A6C7AFA29B88D63F53AD4F08AF1A59B366DAC42C6A5493FCDB08BC66B43A5D4EBF666567AD52CF06B5EB63A2BEFE755970441D78B27B35E3931BDA8572D55866BCD89E91D23E5E1FDF7DE0FFBEE91D6B6A81F25265E39B64F36DCB8FB8907CCC8F086A99D4B8DED48581F1ADAD69EDE81F12F59777BACD698E9B7EB263051BCCFDECF583FB1637D6BAA9F076CB5F182FC45FD6272FA491696CA5E18C03CB0E5B426F5F2E46B5AAC224D2586F7FEFBEFFFA315702530FD38482D242D815982D14BD84E3E1ECBCCEACC5B05399BB36459C4998F9F6DABA69A0D04D8C5D0EAB6E33C2E5DAF84496AE9B3922C2732F46CA41AFF6F8D92E92CDDE9998992D9EEF9BB305236D65031DD099B07F2E0F1670916B06F22939A3431D1EFA60F4B05EB873D72C882C0054999EE15740B02D5AA8589BB9DA50F887054F53925153F3185F1CAEDE652BFC545A76152BC512078F35B7F7A05FF149FCAED21418C950293D2DC94C07C1196BC534AAB8C45958A8C35B2DF06AE40363197C15E0DE629A9DEF18E775C79E5951CC00F7EF083B08F25737865EE2921763D87127140C64A40B92FA5B80B4D843DF40260B60E8F84EDCCA1833FB6A8027639CC3876E4C4E053AA2882B14D3F6FD84E174A076D8A534F3DF5AEBBEE6234831E123EA77DC1E496B68D8B2C5878D09F3085832FD0B28AC3A8AE88C275096224B6CC828A759C497F5AE072759DE315F6E001FB4E1378F9F74256B3CC0E0FECAA1FCEABEBB7D124C499E444952EA10A570458D84256827160D3F9A48FAE93ADA6CE0CBC93FA4ABC685EDE6087F7C56AC66313C8F6F18F7F1CE6365F4497E5EB08DE4C25C1BF62FA5EF292977CFBDBDFA6B1E2E632156330F3A1DD6E0FF0CC69652A1C045E8D0D94588426B6135194C88AA2294DDF5A58B9CC212DD721F4A3571007BA3D15DC15E22D20C362F8449972AE1606B5DCE5075715A60C24DAADB7DEFAFDEF7F9F196B1AF58A96F3CA5FF9CA57DEF39EF71027C201C1CB72CAD4E191C3A255A1F28FDD3E274F26A8822DAD58BCEE0E0293204F3DF5142FF2EE77BFFB861B6EE8F73A2BC7976DDFBA75DFE52BB66EDB1AE41A65BFBDF782FB3B3B31E5C7E9587378E7C4B6657845138ED5AAFB9787F6CF2AF57E34D19B99C83AB5D072A78C0E0D57FCD2AE1D3B5B597B456D59AB33BBD1CC2C1F5ADE8962A882E7FCF931FF70C7F736A6DD5AA53E6641C2DEE6B803DF7A479A04CD72DED7A1840D5049824ED25D36BA7253AFB53D8DFBBE813668158FEF73064D118A4CE16397FC52D887A9902BE0001A2EB3D06D39BE9CA9830F3EF8A1871EDA830DBDDB230BAD3550CEEF6CE3E4B6D5845F35FE5E266D1A6F8981CB9BD60C6942706F534F4C1EB1B70A7B6E76724AB07ED485EAC43F6E4BA8A3B23D2D4BC3720B8E8D4961876E4FCDB62C9B819F1C5412AF63515A360D9017DE047E8C8BA5F1487384C820975A475E8ABBF25DBF5F5AC10D1FAA5894BB550241EFAEA01D91C02E57B30A0A241918FC13A3962BD35C49ABEA5693DBE534057030B32E94A512CF824032B4CBC58C27C187DC1D8CD5C91F80AD79DE79E7519AB1FC928E0461281C0A61189552E4876EB11337B571DA8173FB53D39BDC1AE668BBC93E9527294E2EFEDD81438871EA9D97BEF4A5F7DC730FD4DFA20A58834EB792BE822BDC5D55C4E116F7105353D4F3ECB443D837F1C69C3C0CD65FFDD55FDD7EFBED642726029636FB620ACFE43E3E2ECBCA6E4659C5F0C0F5648A526B97F1CBCC8FEE425B6779DB09B7F649D5C6C42A331439D0A264E180F2455CD5828B93448CD911D97A032A410774DE05175CC0CF99181601C84273848A568BC0A58C5EB97225843E17254BAD7011B7CE585029E5FBA99EDD2837AB78B94B55D8CEEC3BF4223E57798F3A8B9D7FFEF9EBD6ADC3AFE469E30650E725E36871E300DC5CE01B17BA205A0C68AB965A88471527689F28B9C28087B8DF5C334BDF723B74F1D09499F9505237AFCCD1633DB7A20B8C81A705BF20460386C8CD37DF7CC925979C71C619EA91A5F839C699E74331C35A35B90B42F403CB18146B21D49F752F038C578B190A0A380BEFC6783E33BEDC959C534C2EA966B8D12AE57066721A52A759AE34ABB524EED1C5EFF5FAC3B5FA4CC7160E0D79A5FDFD4A3F892002D6969A0798DA5092467ED2AD78BD08FA0F9E56258DE24AA9BAB5BB65993F0EE768264CB3209C4E7A3BE3CED27DD73CB4F1C9569A34478693A989FDC656ED9C9A5AB276EF7B373E3169C5BAA9603326D95EB5B1D00BB3E1FA6FB76F793AB19E0E061A46A897CDBD2F75307EB5112328B8B064A09FB218969767523FB5DD15A1AEE408D2BF81B0DAB061C36206F4624790B1602ACD3C5C382B67D938EC0F533AC42481756D63DF6A5FAB803D7AE6293FCFD5B017E44EAC9FA4E974DF2A60EC372EB89299F380874B96D9AD9F669DCCECCCCC2693EE347EDB0F770691F5B3ADC39D2F3C1AEE69520AE716ADF013A6E885EC3A9DA6083B73DEE9D530E5C19F6172BDF39DEFC462A3CE23BE048BE7D8638FBDFFFEFB9F7CF24905A85D460EA6392863098C70A519A3F4A6D0DC8CDEB9DAC1C5C1098E40FF9802C72D51215C83D574ECA5815D400084902838E135AF79CD9D77DE29761A355BD44DB5CD251E193A655D8C1E46E54982569905A55C94E1A6283772215D9A0853F0C6ABE860B7EB2A2DC8B4F975C18A1755C0445D2ABE4188B6DB7ECB38559B8CBE623E203AEDF2CA1D0B45ED35197C4A2566082A7103477B38C43F4C179E23C5FA19C83B11F57DEC631F834A2332CD155B3ADC20955770840A469B16ECA32C2F86A85ACC20088AF6737C29B1102B96AB5BBB9D2977FB5E4C31BA3539041BFB45C7123A3A6C9C878B53831E78E0819842D82EE2BBC05BFFCDDFFCCD37BFF94D0E290410B6872AD69532142728A3580C90B2560783C66D893FC151FBE217BF484A2077D7B1B4090FC60167BE44AC55228210F3B8147056B4B976C3BCA6003A2A5F457C2FA1032CC2535C4BAEB3E0F703243EC1FC5648AEDAC6F5857EE2AF1CD5C51873082553428ECF4FB30C6F44CC94F6959C69BCB8501E7C3CE945ED7C5E47744B1C40CEA90B23B8E9A69B4E3AE924F6287451AF0B3D602C54CC8EBA364928935A849F63A7E081699CE17CCBE5E46561E6C5FDFE58BD31DB6E35AC291FCCF6FA4B4786833CAC0ACDFA8CB56B8F688EED9A9C4CA6269775B2D5ADB41A771393C5E5200AFD567B26B21EA93978EF839FDEB8B1D9B0D6DBF6A8159782C9B89F342B8FCCEC5ABD6CC5B61DDBBB59BA7FD0A884A5ADBDC9BEF1B799B4346CA541DC49F631DEBE4BF681A2DA1EF5EE9DDD8A678DE056D69AD3390AC6BE6CF63B1D9CBF7E804D9BF95E6212AC03388C5E9AEBCC22EBA9A9E490FEB121E83C0AE763E19A1043903612B3C694F70EEB6BE2A92467FD8873A71C7F2C9BA0641B4EF4E15B94AC269E9BD37E1CB5A27ECF967559054C5C4329270E817A1CF5E10AFB1563DB28438A6D31E9D6C09F098347A36EDECEC22451CC27F672C03ADE902FA2FEF3A24D35858E498BE6015484A6700FE40D9B3C656BE6B70382B8802B29435F5134D60B3181825F193F736BF3B89CF02BA4CD6DB7DDA69C20736494F31417ACDC633491CB9265AEDABC94935CB41492106B8F3CF208DF6E808B868A466D7D49FBF3A1FC90327293743435D45ADB14BCB62ECA5AC6BAA8BB5C40098D6CB7FF8A3062AA86324E887EC035750FBDCB00E9D89E3C600A62E25328264441EE153C20BA250CFFD7BFFEF5B7DC720B240861A8C41ED349C7AF6AC54311A3ACBB8ACF2079CF3CF34C7881BB7D9E97BFFCE53FFFF9CF59A3A6A025B7DC273EF189CB2EBB0CB6D2030F3C600A466BB7A7BD2BEE21D148F8677206222E56E20F4987C4FA7D4CED89279E78EBADB7BABD35DC83EB8619116926FECC77644D1BCB275CF96B1644C24D6149E12B64936659B60B6D50352DE7EFE0830F7EF4D14761BDFEC77FFC072B6E091561905F8E3B2D4DE62764FDA97088D837BCFBBBDEF5AE2F7DE94BFC2B5E1FDB529509248CE415B8DBDD7C244E60D30BCE26C33804E8BB0FEFEADA8583E08652A5CCDCA6DFA2A815B30F7FA5AFEC06C6077C5C5E590A5866AC5C2589A701C5669CCC0B0D3EB77DF79CA42E1231B4939807A141C0A69634BA391A98508C246C798A332C424222655FF34C358A60AC4875046E39CD8002F69C16D4E4E7622B1B21FFB920494E891FF03F79CAA03261AD1CBA76ED138F3F3E3E34323933550F8217BFF8C5471DF9C2CB2FBF7CBAD74D734DB37F9E911D36E62033F44CD3586253B769BFE4753C9B23C88B57CDE1871DFEE8E3EB3102ED5E7BD6F32AC3CD0D535BB35A757B6766D5AABDD66F7EBAE6056B4697857EB06CD5AABBEFFB3F3B4C12D62B9D760F0F7048B8A4D91CDED59EDD94749F4A3AB3151801F90C96429316D08DFC07CE53E057A005F10F0AD85001E739E0A470A794A8536CE08F3DE0FB5ADCB74D2CC7B5C81C68FC35616D346ECDB564F24D989A6A66EA59A99285BB4A51096AD778509C14E2BDA8DF4AE2BEEF41E3F5331F6A38B317CB2A5EEA7BA6969846609A5EC986FA53B3CD4BB785DE4CE0FFBA1B11284046042F57C05032E57A8DD4BC6F7BDBDBE0AA42065208A84E495D93195CA4FBABD21D799C5FFBDAD7205DB9E9C4FF4A35C6458ECB5232D7F28346244E7BDEF39EF7F0C30F63211138ADDA1E46C5E91333AB18E4BDB12931F07517CA1A14CD6654F9C9A21D8178F8D6C27C915A00520E52880F29241404026414EB022869A1386891301EC941D0A5284F20DFCE3DF75CB88862D35B4C5372C4249D549A2CF8957C592199702F0ED71E889B9889D756E50CCEC1CD1653C00AA341B35E7FFDF5C659E2D2FF2E848CA0127DE8F2F2133B278629A56CFFF22FFFF2273FF909F4874B64B1DB434E1B5D22593A340E38ACA4BF27BE80C431D2BEEE7B51F8B227ABDB4DC5EDBB874F588EBDD8F830FAE74A641777670A6233BF68A820BF7F202DCDC9A0FA67EE990FC3822522E528FA5909A3BB93D89265CDA27D21AA99E790C9598A5093A29839D3A8A45FA6FB4EABEB95AF7CE5FFFEDFFF5BA4666AFA96395D23315669CE688AF33192471D75D40F7EF0032A15265C99801908EDBA0437667E5E40B84DFA8558D3981ACA089712561166F6FEC42B10D6C86CCDC2ECAF168097F7A162E057295EAF202B308E85C483C2858101ED408A3CDC14E3FCD0430F99221A8F7370F14D9B36A9059E0A973114F82B06193FB0185D605733BF9D38BBBB88AC83E258CC097B0841631C706B2E577C0E517BFAE9A74B164B0FF12E948F76DD6619545F8F567958DE7FAFD58F6D78020371F0BEFB3DF8E413FBAE5C05B778627A7A4D602331A341F00CAF7E485A1B8BB35ED29B31BD96C94A61054E683F8997AF58F5E4D6A742CFBA3B33D5605777A267E2D05422639FB5DAC869DB6767F65EB1EAE52F7FC5F7FEEDFB8F6DDD3C1DF5A03257941A2BEA4B8252B879766A53BFFB74DA69875E2FCE461B43D3FD8E542FFDE0B94D175423CC0C3EF3AD6B0C1D39A08083A2296A5234CEFBE3B42F94A4CD38FB967212539398B5C6C04D1FF5333FC8F3E19E2967A69AF8E52C2C9B70A26C5160264ED278CE4634BE078371324BE801F7AC176B9FD03AC1D87799698656014390CF2609341E243796D76F6C83870AF64094C46420F1F216CB2426330ED10A0FBEA66C2C3746C5382773B4F28C59E1C26546C8959B64D11709AF1162115F24528746B00BF924B101A3E28A3C919D86F50B0325093C58BDE9C2579596C2328606F9C52F7E811F18D956B28C2E9F2AF509FFC4BD589527AA1C6E4FFC4FB14C1E24314F888487BD70DC5A292F0748BBC17C8530454B3C30C85E418787FFE1AEC0205898E4720F8E86FA5268E41755C05FFEF297CF3FFF7C42CEF010D75C73CDBBDFFD6EF53CD069CCFB7A05288EDA1123A85222C265692C08A286B7A5A6749B3A991CF5EE2E32F7707BF8F07DE04C9C72CA29575C7105D5123E616F73DE545C0403AE275EEAF6DB6FFFD5AF7EC5CBE22BB82029EC797D2275BDA265E662E3E37253F0EE6EDA6F283F1890173E5997727FA046917147C1C19A131177F0FA2AD0725932F4339F0737FAD0873E74DD75D7E11970325606AEE37E8B7B8C53C0C21B3CF03EFBEC0323D7255AA26FE7153D77613FE2B27C18BAA45A678A03D3F3A6D017F879C0CD950A59F8A116157D4DD8AA78363CBCBB5E79F0571634BBAFAFCDB370904D5EC20111867DC288AE9246EE69EE411B9C0814F564C42261FAE3C8238FFCED6F7F8BF7858CA0A1ED8A48F599D01E810A670E8FBD9258F84816174E07458CAEC690BE48825C6CC4C210B49255183AF9E26C77434D2F924B7678A5EC181D199A9D9A19AD565FFED297FDD36DFF3C64CCEA652BA727ACAF3FD36E410F4DC6FDAACD40DA3AD711D873263CDC0C3DA332EC97FCE9B4B7AD3D5B2A575AFD7664D2D0ABCC66DD7AD080EED910CD362AB5AA17948C0FDD3C154D8F8C2DDDBC6BDB6C182471B466C5DE0F6CDD88B91FAE36E0C92E6B2EE9D7CAAD4EF7A9899D1BB3EE2EDB8EB732DA1C7DD5CBFEE26FBFF30FC6717F9900B67B24ACF5E2080A188F614F482228CA12965C96322AE6FAC1FEE2ED4A173D7CEB5F5B17383061D61F49CCBE980E4C3DDE08DEB79795E6B8A733BAE5BDC087EAB59C62CC585BFFD90F4BA55DFD6E9C59160E2AE020076A05BEA9A7A609FBB56C033C6D4BFB65F00F42FD97A694057EE4C3BE892DADA667A9B3B0ED433F9053ABE266692F387F649BA76E50DC8B0C7DA2BAA3E867EC8738676242D9F0662E109A1BB8B46219C11EC8219AF9505CE3848B59E44AC5E64A487620C68391A0975D3B7FFDEB5FAB461F5A40C11E8146B97A0F39E490E38E3BEEC61B6F64868BD44FA6D0CA32B63020F8842DFB583224D393DA0E363103A284A7D02219300B162E12DF69254EA0B171D2A0124A04FC1E74D04118072260F4A7814390371AD622D3DE93074C314721488C99B41A95BF29520B26376DF09410E5184197F792CF44E4DBE1871F7EEFBDF72A02CE0F494F28DCD61E149EA26D18533AAF428A6286F06E4C79623E94485BE8040B9CACB42861539E036F839CC5F3405863853DFAE8A3BB7D1E563D31EB60729F95FC355ED190E7831FFCE0C5175F8C65F4E0830F1A07E33D30D92C0833B9C38AC7265B08561EAC0452B5E9FAEA8D485B019FAB6D1F879A9B908159BC0B2EE8AE1B33BF817C50F45993C1A87602DC75B83B3E8192A097FCA637BDE9EEBBEF269A5D54E34C6FD3D2640AD9055EBAC167FDEC39E03257A1524030604E1E0F3C15C7D373D095FAFF7DEF7BDF17BEF00586316849D01A5DCCE349733E6138A0922F030FE3268CBDBC9CDAE4BA133FBFF5AD6FBDE1861B5CD6025DCA14968D589AC5B3C62DC7EE9990506F7EF39B6FBAE926B211E178C31BDE70CB2DB7D0600DF296C9380D03FEF9CF7F1EAF468E0272C10FD4B30E2860EC05A86A059F4D119793D92E2758C9A7B9661B5066BE8F3D3C363CD29D6D95E368A8DA80BCE9F53BE55235F2B24E12C5707393B4590E473C6FAF9E39D434D696A1A9D3EDFD999E1F942AE5594B8551F2C2204AB3384BA16E83E5ABDEF49AD7DE75DB0F1EDDF8C08869408A4FC69DCAF010F46B7FB65DCAFCC83238FBE5A0D448FCA5B5910D417F72767687E9B77DAF550E5B70F8FAE9F30F3BE2BF1EBACFCB7EE7FEE64227A740B2A0B0D8128694F3745D1A430143A4B5FB3DA5A5C80BC492C23F960B1A77096D9363EBDD56C378348D567BD972DF5B1A55CA26AB7A5EE8A791493A26E9C2C1F5E69A22563CBF52B2E1AB6E6C1B2396C3523B8DE00177732738CED53A3437FE8746AF07956AA504D716CFDCCB4C2FF37A26BD3BA8F5B2A49DC2F9B5354F5ED9D2009B28B60DAB8A8C29A1914A02126886CD2E3789E63B573B73B1142F594EDBA7D8CCDBDFFEF66F7CE31B342529091947C55AC222C472523925235258BDEC1EA6A548B5870BB29084D00AA526B9955C335D81404549DD92245300BEF0DDD5AB579F74D2495FFFFAD7E956B91595783CF23E49F2883853D751D3175921DA17C1FC76AE52646E51A832C1A6A88C85203AFAE8A37FFCE31FB3878402A5FC99FF43C8C381A10FB6D87ACB1CDE46814FEDB0B8693933BF2F022E27B82CAD06DC58FD6D940CA73D45AC8A60B70C9C6605CD320F06E8BC1CB2CB6A36BC0C2B3D4CC12AC23757945BF1409363B021BFA8CED5158743CF51234C8E011055A652E83CF7B9CFBDE79E7B34F404DDD1C1554343853BE8FC89DC517D1C4DC1EFCFD500F57CDF7DF761DD93CF85B2928310E4ED2BF0752E2355B55249F082725FA89B197626C6876FC795C74237DCEED8638FBDEBAEBB366DDAE4DA130B3D482912B7D079E141909DC05378862F7FF9CBA79F7EBA291C7146A2189961DA89A14BF537D44D655F2BB033B0D48C13C17681155CCAF2EC35F86E418EC01A5971507FB0DC9E0EC17BDEF39EEBAFBF7EA09F9AF2318C64B8806A02A715E052BE598A79B7E567AE0DB1F07337FBC83B6A4D2A876D1C079D22D2E4C9053AC76E331F17E1C5CC0B973AC40D612C1470F81F862FC641EDE1980EE7D272DB8AFC0E44D3EBFA9917E004ECAAC083E86D66C1501A8C04F818DA244BB234B6CC1A699E93B0F9CB666696996085A9C21819CAFC15A5DAF2DA70BBDB494BDED6D66473A8D169CF4609345F69787CE4A9AD9B563DE319BF78ECB191FAF8780D36C4968A0922136D0BDB416C1DC1A6659E0E4DB992944ADB67263698D82B85A656DD3C3D53A9555ABD3E86208432EB474C827472C287A034B7C06803613BE075208E0F38E000780818968B2EBA68DDBA759C776E5BAEDE3FB61F30F67023312D3F81B27C5E521A87B7EB47AB1333522D597CB2ED309867344D16C5692F8DD8E6C812878541C96387441BA69EF07C8B56CBB2BE2A91F2695D01BFDCCE6529F1FC6E9AC0E0E8A431D6E513613558BBFAB8135EF7A5755FF26084786958A904BD7E12787C6BD19C61E5D31DA470937F660A5B909B82A160AE79C566B4C6580ACC70341706E52A4D7C455C841A3105BD81CA2E3EFCE10F5F72C925D411F8136EC19C8BE770DB3122C8CA3D01357811B6CA9628B8F2CA2BAFB8E20A52AC8BF040D5190C6D52200B7E4B05C1B40ED436FB03C949658A9A5B00F2E1073FF8C1F1C71F8F5B0CE0345D3496DB4F96F7A5C681570937CCF5275DC1BB50D14A9431B7ADAC998294C681622D0A11A498C320422E9F76DA69FC502E94D8915CB949CC2A550873F2D49D84288B2F093FE082975D7699CB268165F4E4934FD2A164D482A6961209B089308EF813A4155B265080BAE803CEBDC648082F7C78CA29A77CF7BBDF254D01956E56343C71CB7FE9FAB0A286B07BDE5D884A393D78B0356BD660E96705C9B3B48E57703389C68CBE325906BDA25E5EC6975F50F59A02BEC89FD523D3146C888468ED5601BBC11F3794BA18C25C405CF583C2A4FCFDDFFF3DD3908C64AA3180968B1BFD3605B2C0B519E5595221CD0159E7B78B66A29A8993D4E915CA61579007FF9B3CC442FDA464B03EA75DE8361B51636D4A1CB70E016792A683CF4F5BD03563CDFC26E18B852EBD05A4A16E105B9CAC1A76975ACF38E6115D76BFE8CFCA12F68155610AFE19956D78F3CB10F1822C91E256E234B90FA00C19B7BD7D0CCF3A7981F1523F8302868AA3025E5ECB891DE0B5E4D0A6C8AA61DB52A11AFAF5D85B62C251BF54F3CD78A9BA7678D97E4B963EBC75E38B9E75C44FFFF34EDF0433A6D71C1D8DA7672BA979D04CC3A02BD74AE5A1915E2782AAE926D16477763C320DBF540E422F0BEDDAAA56F06FA235B3C54BB775DB514E4FBD756257B9DE6875DAFD240DBDB9E2EF88F8067F4E1330E83550078F713BF4D04321BEA936240AF62028173B1653C0C39530892D2EDA9EE48718A25E0257386D93341EB211D3041F37B53D914ABED74E4D3E8CA63F47046D8D0F18DDE3383F0FF726068E6FD649D3765ECEFC9031106AF5154B26B64E54FC7237CB210299E5185329398D66D7A8C585FEFCCFFF1C72151E18F5342D3F4A511682D271622D1CE184F8E195AF7CE5EDB7DF2E1A2249428E983C579264B1B0C514A12F0A01165998BCA84654CF1083447E5186F3EB921869D19F9BB29D5B40AC8B780BB7F4CE2FA8DDDDDC330165A2F1A1B4B9F9E69B4F3CF144333FC22761A5DDAD86B603AB823FD39DE3B748080ABDFBF297BFFC9BDFFCE6C22BEF413E50F70BC2499125D62017F3C15CDEBC14A97BF03B9C54975C90496CC5E830AF0CF19BDCCEC21BF26D290BC4DF2DE00F4503F53715122692814DB10F0AC0422786521E26D219679CC16723668F8537B80227523E19F72D5D04CF690942424A957379456DA822F26EE52B05B1EC0C0268D50084AADDC50828EA659CCA5789573EB6DBB5432952895AB78B14CD31D69BD2E31498D9B54CDD053428479C3CEBEE054D5E212A229BACE02F9387AA1F82A2370B762F299DD91F8DDD2F14B3D54DA5745532242F9FDA1A23C3D811B420394DB1128872C412C269D8CC70CDB1BDA9B9B11E5833C743517D4E8A4AB14D61292B5E82EBA8B93551272AC0350ECDA75B8C48FE9085D97AD9CB0375C63274F409A1798C219326CCCCCF34D35E61C24C4B5D6100F9282210D06062F619245435A0BE25D9F7C217BEF0EEBBEF1667881EEC7760C9C4C66CE501DB3AE05C012FF56DABE0284DF225E825BE89734C4AC5D876490DE3E7BD7DD2A6316B2BE3FB8F2ECF764C8EECB3FC374FDC7F507D55AB6D01D58DDACA473AF65DF63AF0198F6DDDF6C4F44E5B495CAD3DD4ED8C55CC9A7EB593F54B5E6578E9D25EE0D9A46FAFD5CED149E56A6DA6DB9B34D0677905AECD955A0D3707F8C8DF945824E6FCF8CAFBEDB71F860E23ACC20A0153BD02DF9EFE0FA8281751C043156BA0A4B15D28B868DFC0B54DB1B161346569E267A6EA5968B4855959A45858F1B324F36293F653ABB8ED46F672C8714EFC1027708E4DEC7B36499C25F0929F0C2A8F24BDAE6F4A5E5809CAB331B4733654AECCF4E682799036A40D2761FB1CE23A4F0E32874AE401951916C945175D74D55557911691CEA2B00259DE5B89D95F52C09E7AEAA937DD7413D6CC473FFAD10B2FBC50559D94396290E0755CAE63F78088802EC032A3AC502A90B28EBA5345AA22C0A2462792912CDCAC71A2C6A1DC763B3148389BA2FD2B0390046A54F283EA4D4DEF99A6A4A9ADD498EBA598A24CD90DEBE287830E3A889031B244B829DE3D7BC00352C2755C1595A43AF006A81F5D8F4AA02FEE5ECAA937BCE10D3FFAD18F68FB9029572DD3CF3DF7DC2F7DE94B928FAC35862425520EDF854D41E7954B0A934D08D5BEFBEE3B951FD4D00A35C8D0C053C1037EE73BDF0901845FF1DC905CF881ED0D6816D03CA47E22E3B4C2986E4F1E970B822971C6C009BF72B520214BCA897A39F73D11D7BC8B827B949262C572F3FCC4E83316C4CF151E7799BF24C4256D89A1C0E8AD5FBFDE14E69BCB78B5F0185084BF77A1885779002CCA620306FA703BBC2FD70ACC9D97BCE4253FF9C94F4479B6FFFEFB6342F5D80B732A26B7E43CA7190083691FFEF0872FBBEC323181D33612C290DC8A6ED36FCA0BE6DD618731F6A5C4B6E07259D18399A92F5D530E3ACEFCDCE73E878547E5E4024139BF4C4C0C942499F9F582BB55C0A68842D35BC5F4110FA122345D50FC091855A6544C6EC8E207D56A9BF9AC785E0EE1C64D31E0F7DF7F3F6513A13704CE305A8B6F5D70C10518585AFA69D11587E330672F864138C75C61EB67830C0AD81BCA826579998F8D9AE6854699ADC6B149CB91C40BF39E80F0E07A18DB2C5E6AFCE57EB39BF60F6FAC58D9F3E034B7472BEBDBBB562E5FB17EE3833BBD7A6C43AF71C5787513EC349D678CAE988C5A958E4D9386CDC654DCDD3C3BBD39EA41088DAD5CD2D9321556AB53DDCEF8DE7B3FBCF1298C10BEDEA836DA512F4E625B8AC360553447AC4F0BFEB0C30E5BBB76ED1D77DCC1C006C699D6BC58A2B8C717A270FFC70A78A46ADD03982F70BD23CF06963BB9C5301BF86992C2468102AEE42067BC38DCBAF13CA41F65967323C9727601BF94DB1376897663BBF262E345816F15706AD69B604B399BC8D2AA5789FB73B5C050C07D93D246146645080C82A464DF33EA43518CB966F72D82F049D74F47C58D60D17DA2CBC1021E8862964E640561838430C10454CCF8228B7D2187D95ED76D1C2ED978E38D379E7CF2C9AC79912FA73C822B96710E6BF3702FE6AA5D59A796B5DCB0DA207847FC896941AA247DEB939FFC24EE0E49E5B630A7AC1E50C0D2772EDD340644CFA636B50A4AED812151C29F5B8F5638852DF1D87C18A2C10931196400E16351A8654EC35D33BF0791DBA90A6387AB0BFA84EF5E7CF1C5D0C7AA9C917E9246A4E0606F19F2F63154422028969197574FEF21B68CBB7CEA539FFAD0873E441F91DA9D75D3F4EE714DA6D6E82B93E44524E07C5459854233317493E52CE1947481D3CF98912ECD8D3BE5CA3212696C8A3A637EC2F2797A60748B5DE9403DE4E5A57B2E1E987E9232B56EBFCC01E5EA820BA433CCEFB3D438A1DA66B452310BC24AB8ED8FF039134E780C9C49CC3335AB990F6A10C0CF0D9771E7A85087E69AC9A3C158399FCA8F238F3CF2DFFFFDDF65F2D354C498B0AB12DFE5BDEF7DEFB5D75E4B5A3BB78321C32138E79C73CE59B76E1D45004B6C19CEE199ACD2A1F7EF153D07B92DD9B9723105ACE15D4C01CBD7E7B2C1AC41206AB179F3ABB0F0F399679EF995AF7C05EBF691471E7113E1037BCD38AD1404AC13CDAF0B79A3C226F08446214B3CD5E0395FF196E1C9B35AD6BA9F70DD868C379C85ABC3B2ED2C84D18EA34EDC8F4D62F557295C129B20CD4A7EE8554A3D13F5BB3DE8C36153DAD784E5A1D1C97EA79A7AAF7AF14BFEEBBE7B7FB4FDD115471DB1A19FBDEFBDEF1D4ABD3561E313EF7CEFAAC6E8E4F44465A861BDBB5AA5ED250FEFDA8E490DEAC18EB67D841163562D5BB161FBD6D95CF0CD74BAF9C8FAB1972569B2500133A848E18B6543BE490D9AB2366ECFA83F50F5CE4DF4620AB8D248A07A7305DC35D6F7ED5A63C54CE5A494B62361E055331F0642296F20B1D467083A8D7232693BA19E5D1B6139A0024E727016DCD2BEF592CD13267CDCC451D54FBBA9AD64AA5523086B686E470FC162836CC4DBD132C69BF23521B2449D464A70DAA3949672BF5CAA0A42284C61DA7239C9BE712349E2A620F489C69C361D6F2AD42A21C70C232909C273DC7206968972A750F0726BB0E50F45345E96A04E6A0AD576CB2495C34A62197AE7B83223ED784138C4CC7051F8D0A07795AE998FA1210A957E173691BEC2B651DCB96E4BC4C5E4AA5F34266794D75516744A2994709DEBAEBB6E8EA8C82DD9E423928C1B27B13C911F12014F8B8CF15B6297385578670C0425354FE086C1C42BF2003D247AA9CF7CE633975E7A29AE8651C3603102CCAFBBFC883C28B8718BE38E3BEE7BDFFB1ED9AF48E74D0DCA137847FEAF9E019A784EADAB1EF03AB4FED8D702A6007B20FED99FFDD90F7FF8432942BE322E0571095F50B02CDD5DA02D49520C2C7EE61432E5AC642AE526AD048A0C974885CA98B40CB4EBD96596AB44E9998115F07B5DDE818391DB81A40B15D545175D74FEF9E71F75D4513FFDE94F09296201922051344845B5EA3928E5C4690BBD5B101647E6861B6E38F5D45331D41FFFF8C7B3A2693CE387C476322BC1B24292358A049BF81197565AE62D65040799A07D09203AF12E044CE5611A7686A0DD0DE61A31D270667E48591B9827D0A1374EDC68E104C9DB56636058155FF8C217F4788AD064F39B9FEB04AE70C23ABCBC75928CE685BA9C07096ABABDAE0A674D5ED53AEC85436930961339E1667D3864B684D55829522E0D2599D78B42DBA630ECFA592BED5994AFADD20956F8F5346A0D0D2F0B0FDCBBB7AC393135FD8E37BFB5373E16F4BAE1CED96B3FF1996784CD65E546278AA7FB9D6DE5DE869D9B597233D2AC9AC09F9C6A1FB0DFDE531B7734C74737EFD819956DA7FADE1CC9836D61B0DB1034631B845BE238FEF8E37FF6B39F616661CC9D7DF6D91450DC2674FDFF682EE8451470332CD3728AD2AC6B12D617E199663DFBA05601E79072C85DC8D3B21F34BC9421684B079DCF7C982BE05A0EAA8A129BDC8507DC839ACCAC27BDAD31F29BD694375CED4E77876B436D934001D783B01DF74D91A1B0ED633D0F2F8B99C1AB41B2BBFE09A50DEDF5534E3905CB89A47232015D949F5754B2900C00BFE26A34675D9D214A3ED5E2BFE52D6FF9C637BE31961FAC1021B78CA40AD515B7F977BFFBDD57BFFAD55481A247E54663D89C094D3DA1E4F6EF02364E3344B7E7A680202E2898A58302E570E36B3BB8A5190BE524DF5106343FC41D49732487F00F046149A01D78E081E443656C1C238379F9E0073FA839F5C416E6CA4DAFE01BC255B0C46FBDF556B1000A2DACA6CAD049279F7CF265975DE6E5F8520C81741EFE0459A916431A17360B528B1B2FA7DBC6271CC1356BD650FE0ACEAAD6878415D0A9370EE85CF25DD2CAC5F7E2672878410324E04C4166493702BE29839C4A828A8C50868FAA0CBD0220268253FE7AD24927DD73CF3DEC5BE9A290F0BF5832D4FA0ACF79C82187C02652F0802FC5A64F24B79223C82CF86221B58148861B8E5EECFCD46982CB720276E962CB11F77DB5463923F2B6B5A6D5FC64000B660AD8B072C00C180A24823725428DC0783C098BAF38D792056A858B1BB12D9AA261ECC74CD49ECBD4FAAC673DEBFEFBEFC71D2186C8D392E66CCC9C505A662EF0CD14114E651CDCA113AA5C594651D6F150D2911A91E68230011C28190AB432F15244307004B49C1E33250000FFFF49444154DAE9B22B076C9C3603FCBA38E0340B41D1C4549DD460447EEC631F8381FBFEF7BF1F5B061787796A1552D40F536B71C3398302867530EC05F08097D8825B68B9D4A2788D97F9B61F00666EBC51AFB4E366EC95BD60D68B7726D86C26A8967B9D78E5410794960C8D8E2EE94ECFBEE1A49347D6ECED8F0FC577FEFCAA2F7CE1992B56B71EDFB02CA86D696F8B4D7DB381E8AA6DEBB52B015CDB14BEA017A5FB2C5D7EFADBDF79CD2D37FFEAF147312E575C75D53BCE3A0B8F1696C25E04DF370B833910969D08FF77705C53D4651065A2462626F780B160E8C4780515D4FF13053C1CFA24E3C2DCE43A38637D51370853C8C93C535ECE915665CF9482DCABC93DE03C046D6B7A831C7EB7246F76843D01ADDC33F63ABD3C1AB1A154DB60BAED7218B7E2D0047D2F5F90794913DE42BC4EF48B58BD297384F61CFEC77222C59297E301951D57C28EEF485F8539573ABEF44189D1651F58626518FAE6D544F347EBD638F4D4CCBC908B06FB114FC55A26CD0B5951B9E352A7530E4D464A03E25E2969F14830D01F7EF8E19FFFFCE70C16AAA0C05DF3A62870A2A0A6E5CDBE9C3C93BE389F5C70A5852168AF207634791886AA9DDF5206C72B58BD041ADFEDFA51B9171E0C328D980C4158184124AFF39CBF2E061057B27B0555103E674ED72BC802B1C3C95391166D2E685F0CB4F4614F1B3E25170D3D5A85824D1E5B27A318AD0FFA287838184D309D303172D849C6A656913CDF2D59E1D0F37F4AEDD7BFFEF5F7E787DBE85194E2528D0C1733939DE51DE8688251490882ABA9C522A69BC5F33D87619C0A98ADB264AFF1C52994DFF8C63792A899582A3E3F6C145C9F6B8EF59A1CE7AF7EF5AB50B7B461398C5C1903654503F2656124633105ACC524820E0974EE4F3C36F72D7E769B154A25BB6FCD50D840B3C53D80B0B4CDDC4D252B878DD2FC9C7F8E519677BDEB5D37DD74D3D34F3FCDD7A1B986CF3186EA6FC8C247BE1A560E6C38AC043CB6885479C25BDFFAD6EF7CE73B2ECC9EF1A2ACA0A85CC810641CAA58E6AD99A0558E362BCAE2895655E11327DA763EC833DF146AA4C422FACCAD4CA0712D20370359A6E8D6620A78170D50F9E282752868C4454E53585D6B58C76F6B051B753F864E487A7074733AA96666FBC91FB26CA5256FE976AC8CCC1B0EF4621BF61D2A9925516985A9364A9559936C4D3BED8AE737AAF5430EEAB53BC3C3A3AF7DD39B0E7AE6A1D634E94495D4BBE46FFE127B2948D21A26346799D8550B37C77118993276C7E8F08E9D1363F5DA92526D6A6AD701432B7F32B3656C6464DBCC7427CDEAA3C3DB27A7ABF56AABDDB59AAC94331FC1E381122C52182EB797D219B4CCD43B9C27780559ECFF13053C1A16336EAC4D6013B7B907DCF3CB58C19E6D8C64115861DEF8A80A6FBE1F5BE2E80565482B53DB2E091785FBDB4D93B68D66DB50F6637EB9B37CF8B16D3B7C4B03E2E18A8DE1E1DED4A4576C4CB279D3E763E332C542A41D6946730B280A22E784F1007518739356A24262F30353E09BDCD4860B16C14DF13CF4742DAD69DE9EE8CC33CFBCEEBAEB5CC413CE67E1B2BB955C44924B9C121444B3B49CF424A470F70AFE76D6DA51814929D232807066BCD6F574D9166900C6ACA09D30A44299913293AB883B14B6EC873EF421953619C764DFAD5CE57852F7ABE1BA294818791A25AA6DE90B4DC9DEA59450CCEC72F4B975D5884A66B8BAB311A0A422574E30C1506219253D05EB85701A24E9CD37DF8C919233AA8A589C40D380BE821B2DC139279C70C26DB7DDA6BA235A346AFEAAD26C1705C3808C97171DD16F5088584006419D4D91C33385A1EDEE5E57CFFDDEDC2AD330342DC58FC8A24F051BD2F9348D031A8B33C4F809069345D534EB5C97D48DB4B86F649CFA6CDA19AA5257C09C7B292DDAB709AF4F53E3C20B2F84F3A4D27BA96798239835820C05BE53CD3B23D54A88CA4B13189EFEA5D0AAC629BFA38DAF22770E1157946CF001A4185BAAD19DBDFCF2CBB149D282F69DCA92EB8AAFC91A33AE5B6D7B45E015DA151DA92C4B5370FB510629DF0FFF12A3449B4CC5E2C6019D71E8B88C35477C9273CE39E78B5FFCA20BDAA226E612E5173920BC8EFACCF08DF0DD8F7EF4A30CFC2C2A08FC11033D1078691279706D3BADD1A54B5FF5AA57DD72CBDF7B9D2848CDD048B35B09A627A796FB8D52B737E265DC26955AF5E99D3BEA8DDA54A7B374E5B2BD7625DBBA936163386E541BAB56F84B8692921FD6AB67FCF5A9CD6563A5A17AB95EEB765AB5C874B6EDB8F8639FDCBCE18186F19B893FE4DBD0DAAEAC93942B51C99FAD1BF8D9E589D6F2B41C623D9A282CD55B516F6BA5F694D7D91A261004D5D91416591FFEF750B33F33030F384EE246BDD16AB7021F3A3D814A6632D8382C2E5C2A9A41B5CEA599F247695F3B6EF592E926E3A65E49BA637012AA95D16E7BCCA4B33945561E5E8625E17B9967916626DD8CC5607FCDBC34C32A6984D5B26F9DE5ADFD56099B2CF33B2699F1B29E673B46944DD84863088211BF540FCA90AA3BD3DECE2C6DFB665375E9AAB56B7EF3D8C33B3B33999F9B0EFD68B8DE986EB7B8FE2FBAE8A24F7FFAD34C37F01DFFE44FFEE4D7BFFEB5719AE210C1A0B0161358D4408A23BA0CAC41DE941E034591C8DDA19A72D1A072F5724132623A7098829A70FDFAF55E4EF3C07815775F56B4A839E8A083603031EEC534A5A490E7948D0927E13602A78A51677BBE94D88855ED23BE393FA79B2617A16423970A237974BAA8E67947D28AE1AFEBD6AD3BEFBCF37065764A96EFE1157C20F44FDC40A06C71815D2484A9B9B3A28F8BBCF3B980BC9F3765640D833C12697B1550C2D8913F416D47FB48E01D6F3EAD2E87580171160EE18509E962631F1A6EA27190F79C152DA2A499BC9CA58FB13515CF70158AFD8073C993697FC975F0E7378B76E93BA808A50E197E217683E865797B030A780FE84A2E0ECF21A310C9B3AA59F48371600E72BF8C83DDE7F3F38D04AC186871A8D5E03608D29A6605BDC9FDB3CCE9CB6B0AAE5001C5A9B798B627DB83AB7DD5CC80B0463E0C11832C93374EE9339F875FE7E6773B842F54C0EE5BF00426ECBDF945D50B23C35C78036007D70E50B6821609DF112F826D76C10517609B116AEEDA31A4E724325FA0011D021F78454139C18D5EC1206D0AD814432C1CF6673FFBD910977C4168D00F7CE003DCDEAC9AC016A3A3B0DF7EFB6DD8B00146F7473EF211B6C4E083D189E710C1CF8021CBD759CCC31B0AEC5B9F72CA89D7FEDDCD70CEEBCDE11DBBA61BF5CA743F855F365CADCE7467B3C0D4ABE5A0D55F5B5FD26E4F2CA93620838E7DE94BBF7CDD357BAD5EFDD0A64DF5929F44E9F225CBF63FF4E0A95E7764C5F2E1A56327BDF92DB65B4E6E6A4F4CEC9C9C98D86B6CFC952F79D9885FCED23E4CC567EEBBFF3ECB576D7E6AE3D35B3725A1DFF6E02C42AA648DCC42AEF60D862C58A95AE907A693F47ED3E96C0EFA53150B65F2DA16481C566BA5F125ADAD36B619C551B562C943A88C3DE3599A46678A5D1D600AF602357AC91667465B5401FB968EA469194A7A75635695822551B2DC829C7DDBCCD786844DAD5CF20DACA2A417C59DC006C76D135FEBE37A8D52158F9546F12E2F2E659E6FC1D2D9B49776F3BCBBE51DAB954DA7DFF07C081A28605816D379F3A807D35AB5D9786A725B58AD5A1879AFB7F7AABD366F7A5A4F4FDD63E6771CA128E68EC6F238FFFCF32FBBEC328A0BAE7C394B2E7C417931ACF6B7BDED6D575F7DB52B52D89490F281314886705EFEF2977FE73BDF91333720C4D282A78846A492C16A3F8C2B7CFEF39F3FFBECB3B5D35D53C0F57C5CC14549223891C9C36378B6A38F3EFAAEBBEEA2C1A1FD481AC4934E3AE9AAABAE52F85DB2970296928D36017EFDABBFFAAB1FFEF0870C2CE18B5FFBDAD7E8FEE1C50952738BA4597A20ADE4FA87A670AE38417C6CF9DC8CB1AB2313937D2CEC9EC38330B1275FD614548B1838558C317C91161DDD292F6478D28487ED830913D85ADEEAC24266AFE0BF16E605621D0FE0664375E86D695589374328658510B9E5E8E50CF8949A78D1CAF84E9B49AE92012893CE59A880170BEDAAC077006B37C0AAEAFED5AD76DF6DAD8B0BB5A06F2D15C5B83D9D21668E65D3B9FD8CF522F8CA21871CF28217BCE01FFFF11FD98D84498E57BCE215DFFFFEF7E9F311FE80E9C00FE42B16AECD1504B4AF39EC9C112C7AFCE0E2B4A5D1B16DF0C05A826AC49B16AD99F0F361871DF6E0830FCA1A53E595ABD83432AE0BAE2BB06AD01D3A77C9A9BAD1144965B76B905F7468611114C398025C28CFEA92C1BAA689FA1B2A96252005EFC87BB160977E865848192B92FAC7E74CF2A9B50BAF00A180B9D6DB893766B7EB7008D655D5F878E47275DB44BB52AF8E2F5D7EDA69A77DF6F22F47AD4E3D0CE0B2D5862AD1CC74D88E70F278A531D36B0D85D6F278F489F59D2C1A5FBAEC557F7D3C36F3E34FAC6F8E8E4CB7DAEB2EB92484EB56AE4C4F4C6E4C67864AD5E1B0548EB2E38E3966AFA52B2C342489FDC4EBDB0E7DD524B3C4578D211B812C85FE703F5DD518AAF5D265E58667FF963ED6DB39E4D71ECAE25DE574B262739E412BA9A44175C9707DE9F8CE0D4FD920581297C2D25C89489CE71776B783B8C2B5328588DC43779AC58EB21F64A957A9D73ABDAE67FA2BABE1D27EBC2AF4463B50C08925DC28994ADEF4B70705DC8F1B7E4918B1921F94C3BCE6308966021F0AD88302CED2699BE8B55C1CE53C460D1B65F550A31284DB26A776E5517AD81A4F551AD3BD560962B66B1DD0B1F1F1891D3B6D9BE15C9AABD997585CE8A87DF0831FD4521763397430CC3BB9A42C6894C2A3A814A6471DECF1D8F086CF38E30C587EBCA05B169F158CE86ED9AABBCBB4B994AE36852746975D8067BC05692C653D9B229E2159ED56A928BACEFC0E778AC0B60C474BCDFB0517E1273EF1896BAEB9863020E3282059D8743C5C54260F89352538989F5660D98DAF780B4A4E5C5DE3E744754F3CF10473DB746E53877CC98E00D535F34374E7D5CD983E22113A22A16484E199CF7CE6A38F3EFAE4934FB254063307531D8FFEAC673DEB37BFF98D7C11958DF35786A3C54DC10455963352A58B30FFE90D159477893DE9F27270B3A2D6CA55FC2EF856A3AF6C191B4A8B6F52DA8E4A85A6D36E01A566F11074B0A0BDB1BFBB26912E182F289AFCB8D3C313B8E81984E4B3B15321A71C3F1F7EF8E11870069A0850E233D096A28F45AA64F7EEEC709215F5F8F8E439CF790EAE63F2403733496EE725EA7286773EF399CF5C78E1856E9A96A69C761D232D780061F78D533946C63B2A1B4E0D03067897238E38E2BFFEEBBFBCA2168BA878CDB5A049DEFC6AE3CC69FE6A8A5A3D19491A67A53C5C2E0E751B84D6C1D35235D224D70FC60C22A21903B8F4D24BDFF39EF71015CF54BA7160EA9C5355A9E28D44C3425B5666BBAC58AE643AC48C85609AC86CC085ADA27CD2EFB98D45171E8DD1A52D0C48E685CDA1B8D5827596B466EBC3CDDED4CE91E1C6C4748B12AE94FF1BAB940FDC6BFF5D98C2A99D25CFB6D76B47BDBE495E70E491D5D5ABB3C03FE09907BFF6F5AFF332BF64FCD6D474D97259F64BFD24DE397DF209AFC37B97FDEAB6B40BE3BE545A32D19A6965DDD1A5A33166B9D7AD2766DFE52B9BB3EDD9D9E923563F63CDD2D53FFBF5DD95A019974BBB3AB34F87D94C90CE947D4B171565D0DFA57AB5343434916FCC344B037F4EE273F659536B7687375477323798F1C746A1599BEFD7EA51844BA5C39E59159935BEB7343573482BCFF644826913DB92656FA408AD99BC727A2EEB9165D3BEC915B0D735E94C0E99C697E0DF0F5947DA8C06B6D3D1449CC04BC0F46FEFB4EE8AD3E6D0D06CB713964B679FF5BE2F5E72C948737876663A712412A58408110F38E0000861628C199AC66AC42E20C52CD6B34B03679C4020838E5CABA49FC35FE95F41EB10644E1B94F7A2DD698A166ABB1565DCC8F8E1A31FFDE8673FFB59AA1C468FD8D35A9C33704FCF3AEB2C6F3E3B9EFC48E3B8924A3FF37345E9589701DD46674F8CB66487C68BE3E7356BD6B03998D416F3D670F088F5514707DD5DBF326A257D01C7E081071E50F657B1683D73EAB0E5D00BE2457097238F3CF217BFF8059B39E2578A68B9D4F65B9229342E0406D3A310C1C4ECA3FA5DA88C6CC0B2600B3C193E1C3837F0C85FE3BCDD3D868F7908B245520DCB21966C95C9EF3B9DF598F9E3F55D9214BA4AA29870F7AAC0AB6420C2D79FFDEC67DF73CF3D5C5BBC329BB9AA19B559600798C57D5FFD95121617BFF7DE7BA1410925582808F452EE5276A36AB8CE71C71DF7AFFFFAAF4AC6C8BAA42993E67498307D38F86490A17DF7BEF7BD0F9AF2A28B2E82B264D488998F2CAF86D2A257BB621EC28EB24B09D62811001C340DAFE73067C10CBFF8E28B49A282A7921A965254639F6BAFBDF684134ED07A9009A51A448C150C76D503703A70654608140A96E1CC48E36E5B4DB8C6A9C4B7162D76D46F7FFB5B38A3F819DAF7939FFC2446098B1077C1ED581B462352D99001639FBA5031186667282C9483570ED8E4AEF9A9A79EFA2FFFF22F580C6EC5217164A4E07031686CAEAC1E0F38071FB2D8115F87E2C760EED9B70B8796C6BD08E36B42DFC4BDA13A545C6F9F95E33B376DDED5B5FC882BF75AB9F9E96DF552254DA23BEEB8AD3335F5B39FFE14CF0CFFC9922E753BA7BCED2DE54A65D58A7D5FF7A6139FD8B4D1947350613F5A3E3AD69E9E197F62F3D9EF3ABD998526EAAFFBE2174E39EB9D1361B2ADDF9F866AAA943B51B739D2E84EB61A9647DAD4F37ADFBA298F551BC395E6F6A95DB1F177994E62820963CB6A7BA52009A05CBD34B230ECCCF33B163E6CB5EF5C8433D7BBBE6715B0BB4D8C53CACF05BC7AF56AB6B21E209DF8030F22AE2B8D66AFDB33497F9917AC865833D561B8F5C6AB7AF06B6D2B88D406AB03AF542EC711BC61BB20F3A512DBE223BBFC26928CA068C85AC8C128EFC7804F56D41BB3B087AC320E3A266D05A51D491F3BF061DB6CD8B7549741609BD7BEEF7DF09EEB956AAB37B7A45D7BCB0D173355246A2AD10161796739A99C9A40F3BBF464082754A2877126CFA1B2E1E87129CA3F16038FD95D04829E22FE3FF6D863EFBCF34E6C2216B3A83A888F872B0B244475E386FD3CA750DEBD3EC1ADFAF58A2BAE38F7DC73E963A828596014A27F18AF65BE4C92C16D1A4B418787219122C50B5F19C28D042618BD17BDE845FFF11FFFC1F8A83A7C88CDC9CC57C0F2374C0EA53EF4D04319D563B08AA834DB082B9F0E1B8266A653F688AC39E5AE29020409612C5B7E0046197A54A816E95A42B1DC368A02AA707C5FFFFAD7DF77DF7D8F3FFEB80823CDEE1A1A2FD4766E89B05BA16B1CEFC7755F8CE3C108534EBD023F1E8298029DA8519ECF05CD915114D77583F6A083316134C1C483EFB613705F4A0960CD9F789ED382F0E54FFFF44F7FFEF39F33652E9C144D162C3B1613335049B648DA988476E3A66C184C88E3C0C0E20AEC43650A34A99B65C4158E39E618D86E5E5E20689CB40D631E04EB92738795CAE251C9F2F256D70223F89E95703879B11C30339A6ED257600DA1133511822EBB31F68150BF3B65BA2915BCC295A6689CCC9FF93A7249DD5018179E2A85B2A21B28AB38F4D8DA4DAE05493F00B3E31515775AAE03B038ED02BC3BA973F4F062EE14D1DB1EBAAFE0C9FCD084A572A793479B8A22995658CB4B5C42DB372FACDE71EBFFDFA897B6ECD8F2D31FDB8C1A5C8F6AA9DC8BA3D1254BE0048F8D8FBFE5D527FDFAC1FBC7572D0B1A556B4EB43A63F5C68E4D5B6E38F9CC1DDB36974DB67264F9E3534FB58C3F5B32DBA376A75A4FC26CC76C67E9D26634333B1656CAADA86EBC4A6086ABCD99D654C9044B869675B374364DB6B7A77A39F756EC0571E06365F793B4973714EADB66BF59B954F4CC29DAE266F3E1575951444EC9082571F0C107DF76DB6D72711603A92D7640C7065ED8A88FB4DA5D2F4A5604C1B25E7F7550ADC7B30D5BDDEBD9B05816A5964CBBE497C238EA79F90358811B5B23D1B79D7D4B33FDC8E6B38DDF8396C562B66548A69AB33B87C60619B2209C8CE32D69D43141756CECEEC91DFBEFBF3F341C0B79776CB314699552D9B69C726A404CC1C643D3599941B7CE8DC85B2D3F57FC9ADCFC656C8F5A8A6AF5EAABAF3EE38C330844C0F9A4761880220ED08A79BBABA3350E7695158614AA8AE4713AB0E370534EA25B37E1CA55D7FDD5AD599243579B8E32C1CF18136E22C6ED082BA6F96E0AEA6286A6154533F3F9F38D83CAC69890FA8A8F44F1E5A2C15D8FCE15E93A81A182B4E851CB365692B74227CC2580556825AE10E5D82835DCDA32DE4FDD09F9AB6E234837A3D97E413DAACB0EA087B820A45DDC4E82034A4E6CCF6E4859316759C1C4F4BADA77406572943D870289F371E28927C2617DF8E1875501B267F3790F2868A83DFCF08A57BC026620E692BD87DDD0E8C0C27567D12B0E3A4F52875C2E12FA0C92D025A515A99A22326B2A81610A738CA97153E0935DC14D73815E350B8AF0839A7D727EA19E896C54EB27E87B7CEB2D6F79CB2DB7DCC2EEC55CDF38191FDE70C30DA4AE8539824B91138E4FE572F6660E2326DF8B39023D9EA4AD717C9D0134BB2A4F04571E0099E3E24AB8D2E655D288AB85D57B447E52D37324DD408B961C318D0B17B3427C9A6E3D06BD5B970CCE4D4CC8B7A8E5870C3853A0EA5C92350521544FB2DB7558832AAD076F3AEDF42F5FFD775611D891B1B77BFE6BCEAE2F1F838EECEFDCD69C9DBAF0BDA775DA9B2FBBEA92D66C7CF8A1870D372DC39D6D04D9EDACDC7BAFD3CF78EFD6C7378E2E1BEFC6516B66CA747B2B1B4377DE7ADB37AFFCCA415D4B6359F1FCD964AA6C2A7EBD36157777F6274B43A313AD99B8E42781B7B5DD5F3954DE39D31F0BCDFE2B563EFCF496D5E5EACA657B6DC1508F8DFDD92B5FF1B7FF707D27B5AC8B496A3A5ED6F2AD6B9E25791F032F8339502957D82C64B6355B0AE7B2AD7C77379D497307A3814DF79BDFFC0653C934A11B06FB030F5B98959A46B5D9EAC0C4CF6A81D748A271E3EF6BD2BA67867D7FD80B4A9997E475C05807B6419252AA091C78AB806137E0C772EA05C6B37CD1C6D62C95A0BC8D3F95DA97EAF4BBADDC3386BD3CBADF9AE71D7DCCB537DF9CC6C9A9A79EFA777FFF77764914095D37512A18018524D6060B55541592163DEBCC7CBD4BC011F374ECFECB9F557DC46B3EE739CF79E08107C4EA2A24260D7AF1342C3A7445DD30AC5B3C3C43719882BFFEEBBFBEF5D65BF157180DF890A5C3AA53606AC98586B9A1412960D59EB9A51F544F448AF9059D0E4B699821F6169013F80E452BBB072968AC56EE2CCAE72D5C9E225E6D803C640084C5B4B49C58B54EA098520A5531B0DF65225537CDF495CCA52CAF35E2ABD2361760DD14149A6EEB9501722553006D0423A246D1FE518568BA3BE674CF299A768B820451163B1D950A6B52D5B18063316005DBEAABFC0A5873AA898608C6DAD2331083866B72AD7B7F701912339AF83A89304DD18262A167C643E81EA5E899A1615A14AA024A0B234FC5868D849FA55AB8C724DC4F3BEDB46BAFBD160372C20927E0877DF6D907273372CB95CD0972A1D1328F32A72C9846093D2D6E3C7E912E3235965A20509399A240994FAEE68F2EF1A7D415CD43F9880C6368FBA9AD85BA5D51AC70668951E7BDC8D1EA7674C07051D608EBAF6590E424F59C6BBE206F6472AA4BE3B8CB8A49B0558BD22EA6B05DB8ECB951C5C8B35001BBDA97E6302B83B5CBF0031E1EEAF6FDEF7FFFA5975E8A2764B85E30104A90A38E3A0A361C6501E7DA6DA4B898878721CB2A43266BBCF4B4B37AA5D15DED280BECA6DB198D6E9DD81ED6B3D5E578DDDB4FDAC79FFAF0B9A7B6BA3B82D2F27AB5363B353D940FE08B8F3E7AA6DD8227F7C6379F627B2378A63B3DBDDFE8F8CB8E78FE75975C7EF9A72FF6A3F6259FFEEC673E7E61889559A9F693DEC6D6E69543ABBA516B7B77BA3632BA616AB236D63CE12DA7DCF09D6F3FB56572B967F6C2CB6EDFD58AE2E5C34B9F9EDE71D811CFFDEF7B7F1D552D543889B3A9246AB3671041EB99A5A284AEA297C37892C5F1B5663DA7258E4247DCF25021BFFCE52F4D9EACA1F2580CA4B60705ECA7A65969CE76FBA997D9946FBF3F149883631B481F3566ACE4374B76D25BBD7E0BC662E04739041A16810FB7384BAD071C84E53C071CA450D250B4311CFA20F32AC67F1A0ADB33138C7E2D19F9EDC414647F73F978679B057658A0561E7B9B9A9DC10FBD7ECF337388D7A0E874CE1826ED54426A58AE433007D7869C36C83A9764C33804B7260F8341E57FFDEB5FA78427EE8F85B6595E49EC366395D3E28A41572A4AF2F35BC403D17727F73095F78D37DEF8F6B7BF9D713BCF294EA16A5092557AC138614271625077E2CA975F7EF939E79C43AE40B735855A7C9ADCC9663C898BC12D1571418E7C6CB12CB3F89314C26BD6AC218792EBF2EDB60CC90D650972A4E8054127ECF9C6F1B742E779CF7BDE7FFFF77F730818D9C3BD311F90057C20FCE9F8E38FBFEDB6DB2C955D9196A7C414FA948FA5D6541C1186EC64F80B17CA4FD8DF83EA99C13465FB5D8345ED8076BB61188A61829D8C65A60866EE7E8315197817782512A2812CA95C64CA4DDF690CC743700F992CA6B0D1C8A0C650FC1EFA92327EAEBAAF030E38004A85CC187EC13FCE65477D494B901901F1B8F234AA4995EBB9A5505CEB8A87BBB5F0D2400B434C94EFBCA9CA5561586CD9B2E5F4D34FC7BEC575F0B28CAC4ACDB830349CCF8EF45845388116890EA667B01BAFBEFA6AA603F4392E8239623DBAD0FF842D7CE31BDF78EF7BDF4B19A4C6852CB976B1D69C2C02CB859624AD18D1677818F181B01B20B10EB8C241071D04139E806A15101367CE95A3D9E41069F607A0EF66F16C45E6709B1B07DDADBC328D54760BC68672ED0937036A6C454F29EAB4861A9599560FBF0D2D5BBD6BCB0ED35C7BF41BDE08A5FBD8D35B1A23CB3B89D7E9277E589AACAEACA5B3A5D9A7C6D3ED23BDED3B1EFDF5E4C62796346BBB7AFE81071E9864798D409E1AB45AADDFFBDEB55FB9AF1585CD252B3BBBDEFA9263A666834953AE8FA6A3FDD1D9F6D3CF5F5A31D3C147CEB9E20B5FF8F892A18EDFA94E443BBD5ABAB3932E1F5DBD35DB545A75389CFB1595FEB6E97447BFB3EFF8B24D3BB70F8D8E6E9D9C4C030F62A9451BDDB34E709CA509659A370777567519B1429C417C02E9C492480E3B56176BD3253DDC7E507F940256F13A5D8EDF25E066760DA7DE8199B736811AB6ECCE98B9B864269210C60EC47C2D2C599EAFB86F9B38FAA69A9AA120AC87E534CEBA498C933B26EB98B86D82AE97CD04FE54904DC3E94FB218836E730273ED63DDC02F6C688C9E949312856E71ADA41039C0294C4E3AE9A4EBAFBF9E182BB6ACA763C05F19975295C140B9A652B002A30C2CBCDD8E1BEF4EEC154E932BE982A295E452CE9E1397169D91160A798579DDD0311F8FE62C8D604A03375A207756941DD4B5CA5569CFBA1689B86F598FCAE1554855EA5CBE3BAE8F17578F3B7715995C79B31F8626D40DC7CEF996B8DF473EF29175EBD6E14157AC58016D9F1574D2A2A5C6A81D7CF0C10F3FFC70563443660A41A284FE10453055A9182B55E321D5A5D211333FCF472DEB862044696D16F738A1097EF4A31F5176D3D0236469E07CFDEAA2AB0E3DF4D0871E7A489D18984AC9E6379697432C1E416522599AEC86075DD605167731C8B3877208E54A19873CEFBCF3E00C9982E1C82F9ADED0BE3345390D75834AB44D5157C36FD1EB15EF74565050B93B8ACC65DCCC2AEB625081F0457E9116B1FA4A697608FE320EA78C123FF895242F6AD5E20699DDF1E4E79805E2158D138C5DB81BB990F06C0C03E0936BAEB9E6CC33CFA4EF8B8950198682486E3F705C4D38640578F50985110504FE7FD18B5EF4AFFFFAAFF4DDD558DB8D121122C080D26E45D2EF95FB62DD7279F84C0130A4C4C4C569A7BABDA8CDFCE81C4EBB64DDE73E74DE79516A96ADDE67473B4D5BF1ABDEF1DE47828360F7B055146BC9A0512C5561BCBD3FB3FDD907EDFDEE93FFFA6F5EFCDC030E588B77DBBA7973BD39CC6B421D58D04ACED06EF1654BC71AA5FDBF79D547DE74C20BC221F3F066D39B364B6DAF78B3EFC8F2DEC4B6A60957D4C64C6F7B23ED2E2FADF4A2DACA6796FEBFE7FEE9B76FB867AA7CFFFA3E448C09FA66C2983F39F899BF7AE801AB6B6AB5995E67060FBC74C9933B262C9BB26F53BE6966FFE7A6E39A17DB91C068AB57AF86852A6F4CD13861D7B11820F1E906FC0FCA9038C8FC3AD3315427A61A36E3749FD4DB2F0896662648E304A3E5995E126626B6E549F645BDFC25ACFD9006A66AFD60B86EA61F2550BAD8B17D936ECD0C2C5F588870575BF87A66288FB22254463B8FF6345EF6DE7BEFF51CD83F253B5F567B8D883385D920CFAFBCF24AD2D468FD981C8AF1177FF117B09BA5C9949372B9ED4C1107CA165014FFDE7163EF73BAE0F080EFBCF34ED6CB50465149AB4B2E668A693225CE5831B55B9C8D5B83601C6A5899C27EC110C59161809711633544E22A523B5E9C40C88E2908C5E46871B469AFD326A3DED568107A894572E28927FEE77FFE27F3F13828585CD94599A6F2D4016492C7582BBE46D3D2AD4482447BDDEB5E87BF7EEB5BDF62DA8F46A51C05E320939536A0FFAE80096F86CB2A89CB059D383DD7248BA57818F716E6991D5D16536024B996A054C8D7734A7DF403FC098A572E4A35215E88DBCA1CCE0A6E75EA579A05CCF02B13C997A50E1603A5BEB267EA32690EFDC00A1C952C7B7921D0002C8845B7AC32A27272A32E14EE035C25AE63AAE7098B83BD375846CC2828953D351C465849043730659C7C86EFF4D066AE9A8BE4F9CF7FFE2F7EF10B5398A5C6A12BE24A50DC854D05A002319858B8C4C9FB054B14334CB4DED8DD4802976B89A6212D71E160855C5385F1B7BFFDED37BEF18D0A8CB34A92490DEE907DF7DD97F4AD9247DC785941E8ED0EA09B6ED7F17B1530D7069C4E5C8DEF0E5F019EFD85175E68722B5BC5DFC2B56AF7CE13945936B664A8D5EE6461AD1D6393D70E3EF655D5A125CDD6D32B968D675137EDB5968D364DD4DEB165D38A654BB724CD91E17A6B6A62666647A35A9B989AE974E3952BF77AC111876304B08466DB2D367C7D6AE3C6DB6FBFFDE24B3F5D4D9606DEA3C71DF7BA2438B8B6AABEE3E9FF63BCBD837863DD9865A5712FF6C787D2DE8EEE41F57D47FC99787667AD71509A3D5DEAED28579EF558F248544F6726D64C79EBDB19FC3F6CF0D2AE7EB47CD5B227376FF77CD3F3ACBEF2F2459D25BF1B3DAD733C099E0A26974B6B70C71D771C77DC7126C7AC52C8C890A5A58861FCDCE73EE70A813FF0F0F34EA06F7FFBDBBFF295AF48B8DB29DE391124D128E4E9FFE5EC4CC0E42AABF4FFDDAADE3B7B48C22661DF6415450671DC1D1C196610044431AC910041F65D2024806CB26FC230880828A088A08038A3A322ABC08008486411086BC8DAE9ADAAFE6FD52FF7E5F4ADEE16FFF5E4C9D35D5D75EF77BFE5ACEF794FA93C453A5207AA81B71A2C97529D0BBA5EDDDBDEA835CA1AFF0FB4D61FA75C6D7000D4956EAD374BD5529A9F5AFA6A95A5D5DAD2BC9D439611C01C8C36ABC5A689EEA3C08C39205C4CFC75896B2D59AD51AA14E963014BB363D9DB16B9187C858ABB940385D0CD71E38D346F0E413B6AA821E95C6881E87A57381AB59C3F0011E72A41E4462D9023F9FAF10AD115262C1C759EB50993A30F9F74D249F3E6CD4B390648E25A5F24680F0BBDE3DB6E1728D39C5FD1CAD59CB3367213996FD8E594DEBDA8065DF3939FFCE46F7FFB5B9E2E2AE0950F62B91CCD258F2F0B0D0CCCAFE4288D892F5866C94DB80BC0E9B124ECE961AB69B5CBFFF33FFF33E52859D75093D5487937A8D1259A949674C60B2FBC80EDA3E976DE31A297FD752EE8321BA62942827D0E992CCFB56BB7CDE3013314DA22CEA9F7963DAD51362EEB17F9F334B6A38F3E5ADB25F68A77D3C6B3CF3EFBB0C30E339574CA41BCD2C7471C71C429A79CE2980F515FBAB379B1206E4D8DD8831E8446551837A6F2D0BDF6DA6BAF3BEEB843979563AD53C412537EE7661810C2617F50A4A45F09FFC6AA79FDBFC30E3BDC7FFFFDC0E323EFB12EA59FA1D4D753038C2CE5B45F6EE6E5780C27440FA8011369C03223640D888C435580473971AB8FC1C3AC99D453D8DA356F0C2B851C89E1BE98D3A5061AF61CF67934B09ACB33865D770BD042F9168682ABA531296C8F16701F7A8DE9685DB6BCB74AC8366BFFFA2187B78D9DFCC49FFFB2FEB85A394B633ADB06562C5BBAF0CD555799581B90B2AB0EB68CEB1D90335679E16F2F4F99B6C63B8B96748D9D3C5049E3CAF50AC0AC51883565DAD459B366690EFFE737BF1EDBBAB0ADEDD3EF56DFBAFA9AF34A6FBFBBF6F405AFF46CF5CA823B5A07577BF7DDE5F2DFCA6D63ABED4FB72EDD785C7A636979F5CD3B524F6FDB6A9D6BAC5D9B347FF9A3935AA72C2FA56F1CBCC789175EB9BC56A7D2A8B49517F757F4437B774B6FDF601D9F5D3F330DED3B5823F25C4FA936CE1D69FE1933667CEF7BDF93E923D3D01695A317262481F19F988D96188FFF1FF58053A049A75FD6CAE857D6926AD5B654D5969D9465E36AA531A9DA99CAEFB60F962AF5AE099D39CF46E381527B65E5D3B43402EC3DB506BEAC9C1E2BB5F5572BBDD5CA0A4071F2FDB30604A4D267B1A30D0608401B83CAD7B80F0D5D24009B72BE2A82616C1BFE776A26E5C59F84C72431A472002DF2A4054F97604FF4806B4399859A5FD8FD044D89E25ADBA5DCB94759C413870CC117426B20A60AD16FCBD588B9B371800D4120935B63E53357DCE8E31FFFF8AF7FFDEBC83AAC8B40BCC35D7039489923F38DE2B61026CC800AD0277529FB60F16179B91066A38D367AF2C9275D05531008F53975C3617B81F15AA6C4423444923396994261AABB521E61367875EEDCB973E6CC411C93E7D3ED20F923CAC49E30C319B534265624D0878F32ECC26B8AA554183FF146FB3469A8EFCB0FFA8C565AFBF580030EB8E9A69B7034638D5DB30035790A81779E5A9BFEDC73CFFDEA57BF7AE9A5971E7AE8A129EFC6185BE099E6228DAC83AFBAEAAA9933679AFE0DCDE1A2755D07BDB8F1C61BEB52D3A74FBFF3CE3B3D5A3D88B60269069C248C0F7D40C3A3A1AFF531711EF90DF7DD771FD11E93B967792741C7A2F5D75AA39A8872DB3A2C368F423BB41B39A118AA5E5A5632AC1C2A5405B56A38C7CED3F804FABEB1EFC5165B6C21694B1F4C2738B027DC9E8C872572A3F1C86439EAA8A3249775350083FA8C9646FEAEFB626DB6D9664F3CF1844F8BAD5452ECA4936DF794021F99A1E9661431D503DE79F34EE3E7519A01D84C4EB94512AB35CC4AEDFCB7456144CE571ACD66CBA56A7B4BB9AFBF2E26AAF5BCCC3716F6B5620D8F1D3FB1F1FF04244BEDDD57A74E5DE5DDC5F2427B071B6265D1A225E3C68C6F2FB700BA696B80C3E79D79066D57AAE5BF4C6EF9EC5DBFFED140AD6F9DDAD6D5B7EFEF9BD27EDE2D93178E934735AE6DB5A796A68E850B376B9BFC9B29E5C92FDD38B77DD96B5DADABB70CF4ADBB5AC7EA4BB67AA3EFF17275ED15B517CFBAE6BFF6DE7FDFA9D3D77CFAA557064B69F2AA937BFA7A572C5E9E5AEB65B3A58602AE0D5609C89202364C06218010D47E26D3C93B2608C456F332B1971068FF1F0A98D823D7077EB864294DC0AA2D59EAAA56EA6A38B58C2FB7BD53E969CF5267963A1A5D81DB72B6CC31593D515C656DB2D28A4AB5AF561BCC6A0F341E6D70658EBB6145D559A2533DA8DF1086DA09D3A64D735D1C2A24E545103127CACFD8A6905E4100C906367632923DE97DFAA6571B9DC1B0A46B81A0DE5BDD9B3F5A96A3E4806B39E12BC06C833F62C315009B04A8C054B28EA4CF5CE8D8ACA8FCC8294F4D3A2C6F6F272EB444841ECD4D2CA0C1816927E53112C9FF6BAEB9C66DD6BEFFFDEFEFBEFBEE1223975D76D9D5575FFD873FFCC1690E63D0DC83C70130B628082F5B1229A4F30AA0EE6172C0466A49CE6ABEEC0641454D3B49C332D16D960238DD286352A772B71F7AE8A1E38E3BEE8C33CE807684A25544248CE1F68631D9340EED09A2223A5DF296E40DCF9F3FBF50AD344AD98F341F9DCF292CF1562B6C0E5E38D9B159A1D606A7301B5A0CEDC3ECC215F656D43AFAAEFE645564CC48840D4770ECB0E347991D7BECB1575C710591347052D82591FCD96152D3B6B92964CA1B44E295F2C8667D72F1F4B6DB6E0BDB94DCE5DFFFFEF78F3CF2882B1CF415B4B8C1D20E231702F2592866E54D742AA372F95996B7CC8A9960FBB8AE07230DC329F2FF071E78E02DB7DC82A74B88897DC8033AEE82F1A7B9822E4026D191471E49DB700C1AC362ED30792A3845B109B92EA5E9723B8742C2A694374EB1552113818B10411976BB8EE481D572261323F84C4812F3CA5C5FE61439A08259597F475E55B9D45E4E837D7DE3BA5A56F40C76B7A6DE81BA32686FAD239BC64E1AF3EA5BCBCAADA5D6CEAE254B96B5754FED5BBE3495500183DAEFDD1D1DCB97F6B6135E4BF5B3DCD3D7FFF39FDF59AFADD4665BB3D4FFABEECBCE3E60D96A8FBFB0206DD49DB5B44EDB79BFABDAC7545F7FEBB9D6F1D5BE6CCDE5958F2C5ADAD296551FFCEF3FBED136F5EDB65FADD9B1DE5FBFF7E5B5B2CF8C1BF3ECE281C51DFDD35FACBE34D088B8F69652E7C4EE154B7BA4A0C68CAF933DE9694A0D19552F404A25CF36DC0B8E393583311D83F14AB14388EBE84F9151E77DBE704089097130C9074BEC57EB09EA527D7095C1F6549D90B2F12DED6D83BD9DA945FFDA53ADA5F12FD5693A2AFDF5D0724902B8B7529588ACA4AC37D5FDFEE709B9670D47B6DA3856B55ABECE55A4E5061B6CF0FCF3CF536DAF3D86BE8934790C353E9ACD35A2508536509A164E31B2574B7CE185174A02B8562705068814DCCDF70FC2420BC405B2968AE8CE42DC8E37258DA57AF4D4CF3EFBECB0E59A05F9E95E64A82404D1D4A953B55292EAD007E9E92EB9E412CB28DF5D7B43AB89B8DB6DB7DD7EFAD39F6A6C85E6C118D93A9E68713B0C2860B696BEAE61CB77927B696735124723E2B485B409A5A15037C384A0D96492DD8458B578D63159A83876FF7613699A2630D6A871DD484EA44782C1431739E490436468E857D73BEABE525146C4452986F4E7C9E90F38ECC2A3176DDA3873167746B43B2084824102F7D7141C31B5500B0C0FB22EB5571C7376D7207C441ED6AD31A3898A1A4821DED8FC02E646FE18BC5B0A2821363134179C4F08E73475981A11D69872CF5BB3AA3BCAA6F1767798AE80A5228A6BBA50D72DAC6CDE9E3B79575E79E561871D868903A6CC6D3D5826D495B9AC63A494222536954B95525EF48C94C1DB00B817ABF13C4BFA8CBEE546DFFAD6A9A79E2A75EB4A4794D93EFBEC73E38D371AB6E6D6CEBC8CF0D2A4E92BCC30FB96E5DB6FBFFDAEBBEEBAE9D3A7937B662381464629BA409905BAE1861B4E3CF144F9135815CD10E834AA024EA1AF03803E4DA34642EA87280528922DB6D8E2FEFBEF8FA7377A27689D7ABC54B2A394EA0ABD21E277DD6DF7FBEEBBEFB537DE6C3402A86727DBBBBAFAEB33D636902A13274F58F8E6EBA5D6ACDA5FE7C32BD752B9E14EF5CAEC2B971E78F821DD5A52A336BEEBEA99FB947A5E7B74711A3F75CD1D3658EFC1A77EF3DB979F6A59B16947C760B57759A973EC05DFBD7E45A53B2BF74E9AB8E4B8EF5FDF31F50B8B1694BA7E755AA9B26AE7E0C6D5D26F5AAAAB9727AE78E3DD77B331EDCB07FAA487B38EB65A4FFF84091397BF6B105656ADD9C77B8F22B896D76F6033C1AE0A6ADD936982FB949BF5B19F47FA475E3E1760F750FF2B538C0DDC526A48FFD2607F4B56D5A19A5029B797DB3AA45007074AF51873E3E8D7C937AA1D6DED323017F7D5778C0C3A3D59EFE0605FE3130D35FE1E2A47764F7B6B1B95395AD3B5D65A0BE5446AC33BB0A080D9901CC6830F3EF8AAABAE82B854BBE599679E01901C396539473A14D2768623D926B61F1CC5A0832EE9EFC11A6AA12C9EB2B1C83305AA8E224680B79FFEF4A7EFBAEB2E1BE87A7F975D76914B80148DF78DEB125F0C9B1261560AE12971BDF3CE3B5F74D14544F25110FAC1081B7F9D2CB5F9EAB1B4F4B386AD9981C1D0063A37420E584F43C6E0FD69A05CAC92209A3D12B82CF301768DBF33916EF9423495E21CBDAF71EB6764993E5C6DB443479A541B5C92D2107A30A21F48375D478739CBDB3732447E96E542F76639CD279C700273917205ECF3338A07ECC6AB7E137DEFFD5D78728296EC5D9A52B17ED5A1CD74539EE4DF6CB3CD9E7EFA69720CA43CBD351DEEF6568BC45EE43352C3221989539A44A9F919341BDA2BD204D2790681174AD676DD75D7DB6EBB4DA74B13FBB5AF7DEDACB3CEB2DCD1B63BEEB8E34CC2C219A0541F880D1DB3750B798414B7E047D6F206C62B036E0D2A1C6B9A8B2FBEF8F0C30F67D56C9C11FE82078A5DA4A770BC14CB89E53375409677352058ED131BB306963B98BD461E48DD1E7DF4D10622A2A75D4FC554CB8896E8F19FB057A8764BB9C7C0574C06628F47DFD2E46B7E224B17C23DE5B0C68841939494B0C0439A3B77AEE6E7BD4315F6EA48216826C7D287B6A986B3B9373026FCA69B6E2A9728EEE15A5EBD3DAE3DEB1DA87717EAED1B9482ADF5D7490F75F534D03F658D35DE7AF56FD3565BF59DB75EAF0CF48D1FD3BD74D9F2310DEC4FDD1995DFD956D6814F55898952476A5DD1D7D7A1ADA8BBB7B5FEE8B65B3956C7CE386C6AE7330B16A78FEF72D6C05BAF3CF3EBCB964F99FC91E31E59346679FB60A97B70E28ADE4595F6775BBAA6F4F60EDCF3CBCBA7BDB255FF268FF62CDAE1951B3FDB92A6ADD29D7A96D795BF16A9B5A37569DF40E7E4712B962DD5EDD7FAC0F497FFFA4257439BE4654879AF852C7576BC878AA01ACDD5DB168B18D36EDD23CBC9C6903EEFEE78E91F79B995596C86560F8C657532AEACD4DADADED5D25AAE47640665BE0FD62AA5526B5BB9561DECEB2FE72255FBAC5BB2B1AB6BB094BDB56C799D9CB2ABABA5AD75A06F20ADE8A9F77D8A122CFCECF496F6A1EBFE0B0AD891393B3F00E9A9E72900FB536EA3C777107706C99A13A3927763CBF212C498034EA3EA60D3C294F266ED2BF767C3BC3615B1A587D421EC1998CEFA134820B73B8C69E9987689B96AC35D7DB471C139D480BFAAA1C9105361E3DEA16F7D98A4153D6DEDB863F0456F3316F2E87FF0BFB5503DA8EF9A988148BB49EC4754C011D3454205598FBFEB8027974B392D67A1CDA4D549356FC964E82970003C77474735FA5AA3D6DBDCF41C2DD2F82D792773FDEC7B8D7460223F67CAFD6F8E9FC6E30C7184E36BA5F9FA77BEF39DD34F3F1D7D13032CB18B031EB0A433E485A5406EEED5657F3012DD7DBBEDB67BECB1C766CE9C79F9E5974B2E703B23239C6BC4C888BCC1C46FB1ECAC600043A6DCDA289C04C65CA869D6F5B5BD6C47F32CA59C6DD5148631A7EBBE8460EE318FB2BCC09C0C8246222547DB0663A34826C9EABCFBEEBB657BB924AC10FDEB6ABC403D7CF5AB5FFDC10F7EE0145D296F3EEF5C4E6C55C6D7B57C80DB3515D3A64D03DCC853A34123C5742177CB86D450E504D32A0A8B5547119ED82CB097BB2E30CB6BEA8D3B738B536CB8941BFB6C75CE2191404D2388747BD2661D42CBE2C3D9B367A137D964937DF7DDF7D8638FF579AE05BA224B1C4798F4F98D36DA486EEECAFC6E1E318A666B0CDF658101DFB6CB4AF32EAD8CBA0F34DAEEDE7DEF3D48A2E30EDE6B49FF925267FAFCC777EF5FB241CBE4D7EF7CF0DE35D738EAED71D992BE3726ACDAFDC682C109E32674B4BCD9B6E863CFDCF1B954CB3A52B9D4FACB9E8113DABA9FAA2CEF1A2371D1F78AB497FCEFBE9E9E8EEEEE5EB9B00DBA985B6FBDB56D456FA9CEF451EF2F3490AA7D957A07A404323AF77DA9E1D67ED6D3C9B2B78395F2708877B8CFB89E941E004384DD708CEE05A562FD8124F4ACF2BEB3AA4C8ED334DEF07CD2BD2F3989D4E3AEB7DE7ACF3DF79C3E49057381C31C6DAAB5A020CD1556A3381E3ECEE670A57D38C50205062817525E71C515471E79A4E1CA3C0B848E1AF6861B6E28670311E4E8AEF96E5D8AC9C1E71045CDEA7930AA9400981E99CDE6363031E504CC883D499A52F7353312A2353A66CED120FC750A3466B3F4B8B1586D685307648253AE38A6D07AF02086CB60D0E88206E2B013C0E850021A359DC52F4BE9F87301E399F28A093716AA072323880B8FD35C5F9812318D6C76081F75EE94055A2BD33915C20880EC41D29A76038B062E7BD6D23EB7AF40E860948D683702CB8EBD72E28927DE7CF3CDEC78A6869C90C1697A47DB5D4794EF3A85C9921BFA6F70C151471D75F5D557EBBB11F8A38F45DF9491B86B34F954EA79E23250450A630B52DED953AB0D7E00F14B810D8D4E91FBCDA2849C28E1F433CF3C73DEBC794E25E0497B89110D9C076F236C43470562C5BAAD511C91AF7CE52B3FFCE10F65554054E998367869F71E30FCDB958B29A7DF9A33678E7C591357817807EDEC3353CA79955D5565C50C4681C974F5335549B6365201E9D0D0E56BAFBDB6CEEA830F3E089D10F841E690E83414B2D8E648735C07625C548AC72523984650848D2DFF03F606F062B16BA1F11A6EAD91426F474B5E0B0EE6900F4024C4C927BA6E3A78466B4A38CF8093D6B59C668E3B5A3720C8DE633819AC37FEABEFFCD6D665CB97DD73EFBDBA91D6BAB658CAAFFBE8130F79F62FF767E5D7B3716FDE7E4779E96B170D0E7EACA3BDDC238F767C6B7FCF40A53E937F4A533E937A577495D6E959F6B731137B972F4D2D95AE81C1CE3AB3F292DE7A7F7A3D57032504E78CDCFACEC1AC560F41D7A14B8D2467BD17425D9E0C56A83FD47EB6CB0272C78C4E6C09BD235D2BB1EE744F2DA7F88F28C8349C0317B3E92920895C60EA8260A79034868B2EBAE8D0430F050941EBAA94834E225088D498E941B4FD24C76A8197D75524D043C6A03A6647418916E49EA504EAD608C172E8096F191B632AD40268BA0E3EF8E08B2FBE181F89ADBBD75E7BDD74D34D4C02A516FCD56923C4B24705E1924B9023EAC550099D29CE8EA9512C2B104D2824742143BDF0C20B67CD9A65EB902D8DD677DD8A260DFCD4ECD9B3E5475143CCE3BB66A159017B025DB66A0B03CA681F6ADFDD855598E08E2FF22D1BC7B138C8555ED8460810F6B0C3811ED87BDF64E200DF97F2AECE60A4E350528EC9245F18259DE5A6CBA7B06EE01424B3654961EC2E396D0DD7A8547D405AE4BCF3CED39E30A267D88D88F1B2F1C61B3FFBECB3DA4FD291D676AE7861C750136553EED4534F3DE5945362C1FEB00A38364BE64445925537AE6175C17339408A94E77F0A661C353AA3F122465A10070E9B1778804D6E35AC02B6856BF70BD3981D89794178C7DDAB5829E2197EBAD818240B0D955935A41EBEBE0B065054EE225C7822D0D7664FA57093C0BBABC9A58FB5D69C1C1367A6D01184C3401E451BF2A5975E72F5B335960DB5E6AD52CB29F4409BA3C938428CD6640EB89B968C9A968F7EF4A3BFFBDDEFE2D54C90AE47C0642607A9EFF2EB0D37DCF0B5AF7D4DBFAEBEFAEAEEEF94023423068D0013447A325B606C5DFB558510BA5B4016E2A5C8CA8865E50AD6C1C62B4449940657B27F2C5BD13379D2E48B2FBDE4FFFEEFFFEA5AA4B6A2D4AD25E97FF14F69C5DB5353E78BE569CB7FF0A33FA4DE57DADA53BF4E58A55D4AF3DAEF9D73EA49472F7A5D9258639870C9B9577DF3F8AFA4D6D2B2DE7163A7742F59FAB7D52734EAD9AA15FAFB3AD85C6E8C360DE5788FEE26EF509E7EEDB5D7EEBFFFFEDA42A951BD566070D384E87FEC30192E10B44506B1B8880E0916B42F2F9C1E6DCB73CE3907BA508AB6F7DC734F1D5B0434FF47A08CAFA91F0082D1881E418472D23ED765A581B476BA854D04FD40AC8B80A70FF54820B252E8FCC1A9F491B4F64D4323790CD5DBAFDE73E98823F4742001795307444FCAA1003C1B93BBBA29559710BFFB2E5C5346F9165B6CF1873FFC0158A851AB8E00A3442211A191CFA67A36AD15CE181C521AC3698D17F668A1F227B2D6FB748CA2804D228BD2C5BCC0C2367316513DE7AAB8381A3AE52C0BDCCB451951395A01A3596C824352AD3964E1EA043B2984A0535EB582A43652D407955381FC25504050CE822C05A7CAF077AEEF1423E827A216E060B3BC0C06EB1E35F69FFFF99F3A6C3C0C95F8C36EC41861DB72CB2D639149CAC389EC037F858EEBE848C8CD011CC5CC5F2C71A6DDFACC99332FB9E4122AF34C9C843DC172CA283EFFFCF391146E12E03801D3A28F012907179042E957296FD18C243DF9E493D1499A433D977C91B973E78E5455EC4C33C13AB62F019928A19A59A9BD4CF85286F5C6E9B502AB063ED8EA50D653D84C8D5C8D5A1C7F22E53DA8F5085B6DB5150D2ACC89A65B53086E051C475860FBE24D7ED69FC8703B8247C2B880A7B3371F6B15DC82C2CACF941AAC38661F907ECC50AD1DDE27219C5A5E164C93D1AC4121A22FEA82DA09FA22E790398FA12AFF1C4B44341EFD4F7F654C6C561F260AF02311EA68EFD9146C44EA3C816CA758B0C1A3B1F1B4ED19EACA46670D52BCBEFE3EAD7D477BC701330FD44DEB519CDA92E5834B2AB59681A563AB4B6BD5F2ABCFBEF6F45DF73C3469C5A49E5A5A75CA84850B174F98307E69DF7C29E3556A1FAF4DF85DCFD271B5D4B574F02DCD757BE7B49EDE775BC6F7B42E6FEB1FE82F65254C5E265C4EE15F5EFA2B31CD3A2E49276EA02E7C2943CAF2AE9708388E8F7E95B38B414C504D3386499105F2D414729F8523138F796A8A4513B8E2E0D07B27E5857914C545218E11E9B3C075288867AB2382534EF9A7D95E6FBDF5B46A6C3922701277FAA4BB0A462CCBE8096C441F86B5F798C39E3192646D8156803E5D33C96922E2AA4F125DC395D4F8E7CD9B77D2492711B6D4F82582EEB8E30E083D307669EA0A5F1BB3C441269F65D25CC46CA9D189CF2CBF05329FF8ABBB1239A568C888A422CD4F7D82ACDB34879A5BED0D074B4652C05CDF4811027EF178DAAD926F7DD96597A1A19DE00014421136B43C9041D9AF2D28E018D6D203CA28E72CAF240989D6047B17E311F27A22AE0EA7783939BD24E41CBF45C099AECF8D1521C7001FFFD9CF7EF6BEFBEEB348D5826913A0D578F3C4134F94EFCB93E82EF25365308EE201E37C801AD3451CD884C48305C09C417E696C16790E60326097BE6543A9C039CCC43D7460F08911AC7C9183AAF775775D70DD75D7D577A5CC4C1740CDB4BE15034A3A065AB34278304221E80E66167552E3265B29685FE818192A4B6E14B1B7722C0C40DBB976AD5075DA2C028CFD436720DD4C64163525366C61EBB3C108CCEAE7F5D75F5F0735BACE2D431BE8A65CFE6639AD8C0E0C54245FF8C217EEBAEB2E8D811096D1064624149C60AFA96E044927A962BB26DE09C47E38F304C458B528CA4BA12F217B5B42EA3BDFF90E9005AAA5F5C5030F3CF08A2BAEE0297095F09B8D87E47965D49F70C209718D484BB3B58E3CF2C86BAEB906A38440375B9470742CC6709D652162590AECBE7E275A2126616D2B95A57DDB5ADBB4F557F4AED864D34D3FF5A94FD5DB63D726B7748E2DB74D5CF2CE8BE3C7BDFAFC5F9EE8EEFEE8BB8B56FFF12D470FD6A4F5534BA96DB0DA3FA675AD6C704C5FF6F429E77DF384E32E2AB5A4EAA01479EA5DDE56AA75C9BA2EA5A51D6D1D3A293AF20F3CF0C0DB0B57DAD383AD592A9575D3D654EF865B1DACE89FFCE3F6A0309C02F0C1A19694FE5A3A929AC36F7FFBDB5B6FBDF5A38F3ECA7672FFAE61A1E969680D8FFF6A6BDEA6DE8F7EF4A3BDF6DA2BA6CC35639A43E73BA2F6C5ADE96EBCB4D6CE98663977152B1BD9065DB808CD80ED635B66A3A4DEB2C0F41E49704DAFE1CD602F369229A6DC464115E13950F48FBC45B6BBBD8FBF2E03FA739FFBDCD5575F8DCAC1188D0CF04C82E13E51B960E392EBA14E04416D3C0D9B19E3128E1A421DF066D80DD3C0740B43AEB8F5EEBBEF7EF3CD37DBFA1F56015B1C6924FA2E21461C59C2005A59EECE9A12C725FB46529C263D48D7C289B354249646218679213578D481AE3F67CE9C830E3A28CB72BA3E5C5E965F42412A104F99F83E53639A2E7D5FD3B7F3CE3BDF72CB2D9B6DB6D9934F3EE99CAEE3D2BA202B8AF940852E9BC07B2BB68B421E1930261DF6FCF3CF3B926036AE613762CA1B40A2AB6C52902FD4836824B2539C18031FAB3DB7EBAEBBFEE217BF406D63813687A02927D7F47DFDEB5FBFF4D24B5975E8365DB4C34870926436CA4C4B21D6EF34120B0C75A22B04CAA11F3093E06E1BA03030A89961DCBB611530C125C6B0F7DE7BDF7AEBAD7A2EC223A82817B9C7DA5CBD36DF7CF3175E7841373DF8E083B5A06E84599867061693D936BC20AA8C0D0F5C7E174D0A361B712DE20D469C5E78E185C71F7F7C6A380AD6257CD1B07C8FC41805DD88D8606A843A1C1D1A2904CD7CA6DC17C701A50AD9F11B27C98C998C8A0AD179F6D9674B3542BF059ECE004000ABDA5A1B6EB8A16695398F368DDD599398923CD699D2A5B07711CAB6E73CFFD59C9915F8B4B63A60344E3B079E6362D1DC9CFA8A421F71B092BEA6ADBDB7AFB7ABB3ABCEBF3C38901A36A89CF8D4DF521BB3A4A36BB59E85F54C554BADEDA9BF3EDA39EDA581855BFCFC9E1B5BDAFA16BEDBD33D2EF52C4BF546C27D529FD3C74DED5EF2F65F4B5DA5D66CB06FD98A715DABAC585E696B5F410EA26E752DAECFEABAEBACAB295DB06C519D85A32E442BF552A47A3554DD34EC1F1C122A60E4B278F48CA79C72CAB1C71E6BDF053983AAB6E2D4AF7295F449AF6C6157344F0B0297720FC221B020E89ABA8BD47C21746F1455161AB3F3BE16D71E790ACD4ED83388051F933543E741593C941238793452081A71E1C22187B8B0574849B82CD0522246BC092F93FA8D44F74689466609073E198F859B2701563BA2142EEBE763D652D2EE5FFDEA576FBFFD762A7C28F821A464089107002CC3E6142029E63F326BC61704F5E4BC78F66141586E5DCA0C6B59750A1CDB93317DF8E187EB4D4493BD531E01816C1FBA4EAE3E76ACFD8D084343F550E8A5BB48D7DC79E79D9E195F7365E2D681293DB06E2F11A3AB6BA960C2732346EE04FB81A39D05DE7C834DF072F43FF14650AC5C9C76F1CE014B8EE82BAE86E60AFA1F1C1A2AB3D02529DE0E2BC6BBCD1D6F9C12DF72CB2D351284B851A91877ECD75864620F38E5E485663E22E465DE700D588747EAD955DBAE00B351C6A18560E580030ED061D6AED2E4B0B438D6DE25A6ECA8E6F4E8DA5274D68C0D06A20EB6F665EFBA2D173A866575A1116616A11E8667A27F66D869E618BF8D02DDAACEF8055EE40B7C200DDBCE867684B4F969D652C0F006A0996D1BDBCB079E2BA3753803DA335FFCE217AFBAEA2AFC5A5D0DE3A310608C1365E0BD4F9D66957A4430DEABAFBE3A2C6CF6C5E3D18844602E2976544A7FD5D83875B19516FB04AB99B5B6C095EC933770FAE9A75F7FFDF5460BC682725C6DB9CE14B64A62AEB7DE7A2FBEF862A435C01CD430A89527811D4B35BCA5D95D3CA9FE97A091C9C5D2D79D9B4617DBFE81FECEAE7AB0E1AD77DEE6BB33F7FDFA9A1B8F79FCA9BF7D6CDBED572C79BEB5B6466F7FE79F5FBDB3B3A5EB9D57A7DCF1F31BBBC7A7FEC55306AA69C294B7162DAE337C541B5C13DD63C72E5FBCBCCE0B554D59ADB3A53C60783348345D5CB72BB7B532C27A41546DE57A119F40F61111D5234BA1122D2021455C8432424D9164BDBEF2D4534F4573CD4AB7D90F46B7156A6CEC01BBCF81FD5DC82B4E3AE924DB64CE7738E06F53CFA51FFCE03D6C740F058DFC1A6968D350DA0A9FA3E6171A1197DA9CF3A490EDCC18ED550BEC22F88EC6721A4EEC2D8AA033915F3567FB0152A4A7E63A24AD5D166F401F32846DECE60A4E32725E242D1D78232D8A7DAFEF52858129A92F9A139069C1C07256BE94F7F83186D1CA68941074EC1A9742CB6DD60EF56CCC170A9B1571961D24B26640EE16348886673A43471C9E07240C46D8461F93D7AA8DBA12B3625BA634B4AD82CD9CEF7EF7BB3367CEFCFCE73F7FEFBDF7E2EE10FD5B679D758822E2259B99C83BC9B9F1885A32E312DB488E82448FB6F5F9E79F8F0F4DB484F836AA9132B551080D62FECF2CC42E5AD507E44F93CBB1C03222CC7693B50E16A573C0DE04BA9406864127A12937D7D5BD5A099FF98B2FBE586242239178759BE858D8CAD6A43B4504E2A6A1202C4D171D217505384B23774CB3078C51864FB3C9269B68E68DD77594180DE44237A2D0707FEA49B7DF7EFBFBEFBFDFFB350DF5128CA488CD91C8EBEBC3F25F655791B3741F5FE2BD517F1B1EA94BC9893CEFBCF35C4AAF6B5A4E1172E41C6A6E310151CFD449A3985D6E4E7F4C62C550B615147096D3C8212C4A39DDB4361E99753C0FB8D8405D0210336735B958C48DB3986C753A371354AC35AAF55862AA419C409A3D7B36E400921D9C028EB72E42DC1E4668CF4F44693A897ED4514769836160693F3CFFFCF34E4662D47A32E33E41A5B158CCEA99679E79DA69A791A85B595EA8D52CD773818B9735A8831BA2BCBEB1176603A577BE36E3E0B1E33ADA5B174C68DDBC32B8666DDCFC579E7EB5BD7B45CFC2F137FFF857DD6DEF2CED7FBBBB6BE240256BED7B77ECB8AE854B077A6AE3EBB0E7F446A923D506EAFF1C23B194AC67731A432D97CA752C74C061999D1BF915BB8A31458523EFB021CFA82BEB0A1897C346A1CDA71673404465100B6635F077F16652E8069D421012D8A963CB9182B114DAF142AEC265F1326509CD9A35EBC4134F941DF6C20B2F7029932E8D14828ED96EBBC2E49BD3D0AA01CFAAABED8D24B005E307646C28A758AB934258DEE08FC83BED61139E8D7D50F05FD149B27165B9024D651B9B3A8A0000A82B60A1101351284559145C0B687A6B5012B1802281E3202E8655C0DE7BB23E1F78E081FFFBBFFF233D6FB58DA235352CB29A1CB6FB0DBB72077F0C873BCBAB04CB7963F56810486850EC6A238C4DB27275D1589C52A4A475A4C559015F37FACBFB2622E0298CC15642D702C0C69F8830E9534E39E5D4534FD5BD34051276E69F3294C9F96D2B12478178452ACAC2C6051F61154B3617CB4E6FCA6E8045D987D93452C49C538E94615DB5A5A4BFF5EB873EF4A1471E79C4DD791DDB27664060C45E5D4BDEFA10F18709A967778D7204437112DCEA2BA25B3DDBB540DD9542EC2EE2D1AA79CF2242D3C3CECF4821AF02CCCF2061C48DCFB9B763618DDC2DD8E85C1D802BAFBC92BF4AD06B5FCA5ED19F70647535B0C4167C84EE5D3848021BA3D270247CCA684BF9F81951E92782C19525B0D5283978C9259720D63138CCF6EC35359AD47E06C9E39867F5A4551B546BD688C6FF03F22225664186CF046885102BE2DEBD5948B51C7DF4D137DE7823D3154D1C0B472CF4886920C5886C85F0CEA20151CEAA596E5AF7678D621BFA76CF98314313A579636B699CB871B2D1A307E01C902B447D4D77A98A8C7D0589E1A9334144CA837BDEC3843DF0AE0A2DB65228AF4879DF657D580EF419679C418B434C67B7A08F0601B3842623FB43504123D191715F778BA3421C3B0A4042293102A46FC938931A6B6974F1DA6DB7DDAEBAEAAAD4C078534BE6C88A897D38B0DECC2D79137BD61DA31C2217FC518D596FEEBEFBEE975D7619679CC78FF5050613701DFB6DB5463B3B248CC6891B6A0FC1F5B858DE40D5B2D00911BFC51C7994997973E2F417206FCDFA221271D402151713AEF3C2E9D868A38DDC3E3CE5FEB1371E3F9842188C951FC483B40BE10D066D91B68A8E98934498655C79EBADB796A322C155C99BFA001A2F38DCA929FA42A6091B88C0808579662165C995054A8A82021E69C38DA480F1F3227E474B2B55C703E027595FC6D89D69E44C7AE01EB4DE04B8B3163A56C0B5BCEC645805038C0D2F843DC17D514B520CDABB34A9E5BCD9A44580325A26946B3AA9F6939FFC64975D76493930D5F06FEFCE9493AABB588D58A8CD4CF937C71D775C2D2F1622B4A80F94F326390573BE80AFF1AF2DA16F2882CC890AF9C75B6CB1C52DB7DC3292A21D6941DD8A231A07EE6AC01C4671A6F9D464CACD25B415C3B39E7F320E06844B57117172D7305259E655773B4FAB767C115869A8268FC8A31889653EB91A8B4844979F0192400FE4058D6443AE0DD5C8B51565A5B1BE78062ECA2AC40FAAA17919C3305711895B5D9608331BC33BC1406B4DE3BFFEEBBFFEE217BF58D178A586EDAF4156F36ED0D1F02AE5844195D04C020FB29AF7F0B67629E79D70B82C4F0D0D93FEF4B39FFD6CA79D762292848963DE92BDF6DA8B3A280DE0E73FFFB9FEBFE79E7B082DE017924005708478621A2D223DC3D9507AE1B8BD1D378A58106D15EA67A22D4ECF73A07C313962B83EBB91D8A9695528518DBBC8339985125BAE76CC31C7FCD77FFD9737271CBF696490146A128D1515705406CE9B3A28450C166BD2D731C22BE5902E2C784DB28CFEDFFDEE776ED5EA59F52E2AECBD78419E9431802B8607431B4067F680030E200CE96144A336DA0491D0C3EA5C63FBCC673E73D34D37C580198611453811D511A7B19473415BDDF0838674F2C9276BEF5D74D145D28E1ADE0F7FF8433D784C1231BDFAF5F39FFFBC44318101866414511492848B887539D96AFF5EA70C7A4B1B76F8DCA438E527605E78AFA69C0ECC6A98C5728A0DF46E16CA76647865A5A67AB878C566D59B8D8A8C6F9E505429D12490A584F2F0E7B4DEC077B39CDFBFD4A097232AA8411B54A58F7DF18B5FBCFDF6DBAD624D2558883259E80C3B3047008841C5BC053FB8DF3B45353ADEE604AEE574C72E18A056C4F034D42406A0EFE876D329541F3AD2580B1D0FA9E902B0862821EAC207D8B89C559F6D439C62C149CAA302B5BCEA3F560067D97BD0F7F7FFC208ADE46DCF6B39134BA4FB61B9012271B02585356C0B08E02136C5F41969E873CF3D577B5A7F922F8888C73A895CD044EC093C98D44292C251475A23B8E2D992D47B3D86CB7477E90CE06691F94B321AFA2A2AF6B4AC2472AA39ED286ACC7CDDF079610D14425EDE87A5BCAD21DA5D1FFED4A73EF5FBDFFF9E39D15FA5BFE9DB931AC619F5EBA506079ECBFC7174B82CB850ABB4725327C4080B30BECF6E0A5A1F99EBF3AEC7AC8526B21FFCE007255C747714BCD3D2EE67E5BA14FD558ECE934F3EA90D70E79D77EA2E50FEE290F91490B024C68E1E35E30128D6E6AC41944860DF08EBC55E7B6C7E9C6C302B7E9072682147DC9B0B1A4B911A4D2753DE708CE3E081B1EE4E04EA7FF686C5744C2D8D72640AC1AA189CB41D694E34AA8AA55A7EF9CB5F82662085EC839C02DD07D283EC584BDE95162F303542740618C7A4726968AB832C27BEB065669EFF6818C5106E96D3093BB1C524E026C5BA2C7F9DDE44A91135B1A41DC9032ECC6741B09B832C3E85A32F66E97199F2F5D75F7FE289276EBBEDB63FFEF18F53F0F76CAD22D3625837E671539E309694C05533FDC01E7BECF1F0C30FCB92B67CF035E3C12F85AE39B2961E7AE821948B239DC380149A0F736AAA96FBBBAF68D1204D705374020D07882F12871C755280CCA05BE8E81976D8610749AE98F224BA954600DD0C3B30BEA21B6DB7DD76FACC030F3CE026F6EE821E7B6214CE703CBAA5C0FC99F27CB66F0410B1B0A5E201C872EA92B854588BB415E3C06B24723266CC98A15F09E3173C2DF4B1A96A228786A39136C0EDC6FDDD856B96262DA15BA57D3B0428FE903BEC52E11353742920301DA5D705D75C734DA916BB380475BFFFFDEFEFBDF7DEEC0AF06EFAE215575C316BD62C295DDD11EA0066B8904477A639053679CFB94BF448E70358D591F0202FB9E492934E3AC97486B5BCD3976350DC1786D42CA7CBC8F26E0DD1F82B38DFDE30A07659596C6A9D086A46EDDAC6738187A7F974889807A12822D691DBA4F3066006B2A6B23A4BAE52830857A6AD2C09EB2D4907A84ED658630D9938061060FFC5D98EE8C8581B9D1A502900BD08E8425F3CABEAD877B62004FD3F4F6DAF85C2845AA8C78D60A26A5E11EBC8165FC70401B86EF16A1AFC2CEF166029E1A4A04BF953201828E534907F372258D80C4E06C79E4BB012B22536D964135260F61DB997A38329F76A0C96B6411C07EFFB1A8DE130A12BC549BB424207D0C4FC4D05D72B7A8DDCDD5939D35EA2A59864A38591574C1446461AAE54212AE042F036E54C7616208847623FC8225A12500284F0C902B92CCE40D620BE4821F6E3D88026507BFED9679F2D7483F55E25DD6EA00658AD880F20AA4A12DAD9C91442CB9AABCD37DF1C125F1DF38F7FFCE38F3EFA689D2BA6F9519B256FFAC75FBE8E6D25234239241E9629CA780624B8257BAC4F350EC892B470E60B0778D881394AA359D66748E31BECCE307064DD7F29925A9000E3A6003DD88566EBC60423CC481644278D9A45CF6794C86C56BBA4067C313334B3242F8E80E01445D56BADE37362739BE1C5FC04A7429F2F84809A17AEF08A8993C8F690F206537A5858C0806FE0B0C2C8CDC49A399634672C8572FB645D16C777DAB469C4A98038512A0689A3EDA494670DB49BFFF77FFF3719D91FCA42620C164F37364D338103B8744DBEAC01FD15001DE07CF0833C7E2493B3D7A5F53DEAA8A34E3DF5D458619982F786D768E6DB827F800BAEBB5C7AE9A5C71C730CF10C824371FE0D47AAE54012E8739B45731A9A85AA36113218DEE814F236DB6C237160B996423ED559610F09BA1BF7DF25B46BAA57607DF8F41A98AD527A75E8D6281822C058DBB5A164993EBFA6503506D3712607B491EF6401B40365D940A8C741461023A65D265E4861F86A91B8DBFC770E1AEB312169E1F86010D801687E453BAC703C4D470ABCD63DBB2C9A52A835A8E5D9599B5929CFA319F1EA75E4A10C7465D5087EBAF16535EF639F05AA735656FB7FCF3DF7BCE9A69BD0C4293761A37964AB944364052C4773EEDCB929F728682E42F24BCF224B0EAB22E5F677413E171450B3F44623005AA40609081B206AEE3B7DFA74506C2C31294BC9765D9322556438C7D9191986F4E52F7FF9861B6E70FC35E59835E2B284C74C20432A9A68AEE6DF36A88933239331A283034B068D85E3A01583B7FE79A41CEAFBD4C7D1A271690ACF40508510AE1E92127B030BD9DF9244679F7DB6DE0107AF8F515A078968ACAD6C5EB0D13DE0949BEA51B41153C2F574CA2AC6780956000071143D855C8BA489D6094BD0354BC4F468618BE42D58CD6C5FF30C63309AEC14730FB303E9131183165B31D9E039AF068237ECB56A4E1BF23E17AEF9E57AFF18D44A79584C4B23A5B5B2A6250700A740166DCD11F181A67176E92D813877FE907A3BF6D8634F38E1042A3E659DB845ABBE8BFD7ED86187C96906AFE832AA9800CE4267620766FD14C71F7FFCB7BFFD6D9EC5782E0BE868B702C3C1C8252E8A9D64628118DB88C6908508961CFD839144F6E0294EB098E01691A68009E1EC98A5C1C41A36B3B2BCA3733CB3C31E0ACF4C3CF54831139AA6C0888BC238F0C0032FBFFC722DB71E99E40B6155B70BA4EB1CA2476FFEEC673FFB8FFFF80F1F2266150B75EDB5D7C6688BB18A91C64610BBD4206C9216D720C194E94F288CEDB6DBEEC1071F7425BA4B30990ACF09A11A6EAA15993163C6430F3D2469F8CA2BAF909602700BC6D51D3E1C6E6512A21F3C929C8C695733BFEA0773A91A1D6D978353A64D08140BE778580F38DECB0D5AEC9FF8EEACDD461B6DE4F633519B7AF378A8605F5A4237B95843E8CF131444013B8A4B29A69F82C572B09319705D40211833ACD8895EB85790638B1183A0C0C1D534EEB1C71E0F3CF0C0FCF9F3C9E5455B8DBA67774F6795233E4E96A2BE8810A68CD684A088F79D76DAE9AEBBEE82C8D60C5C1E3C13AED9FBD39FFE64056C691985A17F5E29AC46CA01BFCF50F348AF68D1D472E0C9CC9933AFBBEEBA9443995268930E94DC5C80D43E450401273CC27062A4E5FDBF6A7999135A81AD8F1225590B63976599D98F7162304B51C0048449AA11B2B0DFB0F1C61BEB087DEE739FFBE52F7F49E8C37890180C8CBE292841E91B170030608E90D5702D102CA4E04FB38EDE556C3E820DC41252EE70E3408F545F38CABC455F81A31E63037E19ADA6BB473E7A9C7B2EF2F5AF7FFDFAEBAF77C30F56C45D9F4DD64A7A8C0F648DCA69B23B0EE47247F471813CC89BD9049FC46048EA1B46A73FC9789F376F9E034D7866523F7C5D43D2A6FDC637BEC1F6D3DDF1595D7095723C4141E5F32BD11D725759600D2BF083DA53FFC4273E217D405163EC8994421F9828925CEE8950C369C3FF88C7306E8096BC77276294F84D2CCCE3C5D3190DC799C550A67685DEE698658586547E52A9732D13D98A8B2FBE588635B97FAD2FF3ECD4899F6B58EF876382BA8A547FEC16875BA8BE73DD6396E3AECB8DF603911422E5D6333207EFD387D4A1F588FC8766D5253DE0A54749D94405CC636AF9A45C3512F81A4D4041DB37D691883ABBC20674B3026690FC1C6BEEB94896179E62EA7DF2939FFC9FFFF99F587315239400977488CC8FE178759637F3B0C7CC80091346051C0B2ED65C734DBDF9E28B2F72A9CF7CE6333BEEB8E3B7BEF52D04C54A0AC61142D023193408C668175A48AEBBEEBA7A5819AFE007534E57A7AF407418C34EFED5787200348422984C5395455FC8958AE07EF4C233C6852040BBE5965BFEE10F7F28A46B9D1C6156513DBAB23E0FF86988EFEFFF0B9C76FFA89E2B24D5799259B3665D7BEDB52C9B067DC51557ECB3CF3E7A80F5D75F5F6617FB8633663A319D7C0D9A8E6F6674A2DC132B350E7BF4258C328B78606AC05E8848648D6E24918AC55429E01AD0CA2869A2A02EE6C3F647CD94432B126D0849A5D8B411D412FA0995A64B69EBCBBC920F8722815D0FED45920F6C088D42252C22082BE526AD4B45390F56C02E8FB13CFAFF5B50D0223104CD7E22B887FC655D3033B5D6175E78A159DA356C4D0EC24E76E273CF3DD75CB562F1C77550F0B26A6FBFFD762DB41FD0C2977DEFEE6395D0FE25DA2540544E3BEDB4B973E75229CB4E8BE168E7C922834F04FB145A086311BAF69DF31C73F3598061479C4B0A4627014CFC305F87746FE47C8ED9BE58F7852F8E435FCA5BE0B17B25A430640B5220C2D76D8BF8B99047FA559AECE5975F76C1AEED0C7614359D8602301E52336E7F02E1B0FEA75B067120CE2F5D02792860748593CBA459FA93B0C7E2B19776D04107CD9E3DDBB1D318FE89A3E22CC8B8DF7AEBAD81FD4792DA5268F9C7E970DED7350E86893133C80D9FA3422C2DBE0A0A181B820A284291CE6AA36BAD1A0B5DAD526E5B174058D12066F56B392E3505B58A49BADA6AAB49D6BBF74941503B578A1502CD452DAFD4A8E5D5D2B5A1E0F08202D6FF5A0E9C07C69F35C85F21BA623F3B57DD4C305250C0CD29D1286DD2D04603A506C1B20E2C46A7992DDC62C795C1293786701220782905067BFC691C9EE86B7992E155B4A58285E46991A0D3D12E606EACEF51A9110B5D97453136827E76CCF01F12D0B5A1C0631F7B0462CC48F3839B15A746EE01C4291959103D60C65C8886C8C303E03AB1DE340597C24F6499455818D03201F0E6BA616610F2108B3F1B4D54F47EED6B5FDB65975D64E3C861F27DF18AF4C94D36D94456D8B0CE10679B360CD255B546F99375BCAE203523378B7DC0424013B1C61A6B1C71C4111AB6E4548C3B7DE4231F79F8E18723314D6AB82C6E8EA6D7565B6DF5D9CF7E962A2047633C4BA3AF6F3C0F3C88D68809370933567944C9392651CB99777C66B246258023AE3CB821A0DCCB4CB62D792BB49493917184B07F0F3FFCF0934F3E19FF0078B94D25D6945387A2A584461F8652CD366FCA3D06B478ADD16E057215F05906ED637A3BC86CA2BEC1BC79B399FA39D5081D27F3FCB29D115B3E683229FD2476A2499E3163868CD4C8F36739187D5F2F4D96A352BDB21AAA9CCBF9F3E70F0BEFF4AF56AB4E3D72BEE4BE48C36977690C2E4C2078808B8C1D46A4DA58300F35CB8BA06A79ABDA98E2C5F8E0D670AAD88A753DA126D663733418C79DB437D698EB7674058D596F4AFE6AADCDF6A7E9B5206687D8FA2C05D2A10855AD0E2576B6FE230FE5F8560AA5C60EF85773B2FE18BE72C2D88FE65570AEC1D286436D6033F5055C6765CFE69089473DDB6469F6A30A3F680C9A2502FED199CBF23688647F1C75F709359F46ECD69572109933659233DFFEF6B7E940E59A521BB82D79CF2BBDE9AF007031181E1817093B3CC0022D3CF3A0D122DBC1664669CFBD88CF710547CE52E8F8A903A28BC4500D09EF02FAAC32943F9FC7D78468E74B2010876393F0954268A1F02AA474AD17567EDA359A66C67F9F841B511CC40BA660C9163644CA1530FC851216071E78E099679E09041445ABC7D359929CF2BC13C924F08B596D5735CB3B2A461FC51BD442C70B9F0D5737EC1E88C71E7B2CC1B1D85A2706645C504BC4836094DEFFD297BE74CF3DF7C4EA8E38DDCE5BD32C01830368282DBA10827407C373F5EEB12A42646B9BCA0EB8EDB6DB52C32F775826623B21962A87E69D595E26CF8C554726DC88EBE5177AD1243E31CC18A9DDB4B9F5264CA2CC9ECD20D42AB94344B9F79861C0B613759E4F39E59448E367802BB6B6B68A973B35E25AA858630E7C66B05863FD5FE1C55E5A7BEDB5F1C6C8F01186BAECB2CB66CE9C69FA2AC6A34D2259536E90FADA2FE749231539E11CEA538D568D8D5451F02827A961ED252DA5E42FF9BF96D0131EF3A230786731EDEDB199498D6BF2A302B6414CF20C89EC89A248C1BB022E14AEC94293B7B3FB42FCC0887A6D4B643A2135072162328C489266CC6CDB9A5B39B2DAAB1AD282050BE80E49FE980E667C3EEA2ABF7043497FF8F35863514D124AC1BB352F5B14E8D1166721A2D319B318EE9767AA999443826B0D142ED163EEEE52632F4A0A21285C343B3CEE6E223148A931D12F2A08304D28E0C1E783AF2A2623A202F6CF05913BD8D457D84EA4710F29EF2BE3804A2D6FF11E67DECA095B41CFA50DA303824CC34087ABD8059F18B559603463A8D123F74EF609B279576EB046BB72CFE83C0FCC9929801429579C12A73A59924BF556988D49D3531F7AE8A1BAE095575EA9F7F5ABAEA65D873968A00C3B04EB1CCBC991093D35C8245BC046C5A69189AA0ADEE97BAB63422F1E63C71D7794167168F7FDBFAC809B01A8A929BE9D7203131C8AF7A2B3A10CC09918434935056E980899087677E4F1F1900846B1605AC86DB6D906B4451A2E645D80F2BB3D561A811C0A0A057B6FB1474A41E4F12B158A967A20CB220607FBC08781CA5D0EB9EE12890BA81940DF947256E73494E5354A07DD5126059585B51C583E4AEE6A985DD2D0B5A5A1D5F7FC1C8923220F11C1862CC77F926EA4BC1BC982851B192B6D21ADBBEEBA524238D6A96194E8076C1DAD8BF6866B12B419089795720274A440AD510CAAA7D69BDA2DB41521329FE59835A7B111D311986D1007FC1EBA820B8440F9EA67288D1C08C181D86EBBED7EFBDBDF82CF241A118908B0234B3957700A74ADF6A86A796749AC8D6ADE1179A4F572C4AF3CB433552C1968DE8D295464A5BC2DB4768E1E0A5427DE8943B5B8FE6C605FD9DC849AB73973E69C70C2092606412411876026ED1FE82258AEFAD6B71AAF5855E2A52CE5343524FCC08E02572C907880B4D7AF12B5FA303060D41EA3CDF2AE1EC38A457BED862E3ADB8AE16BA60E77FAC352441C399E61578C4002900E8B8EA8B69DAA3453183115F6B68FA78D72B6E5DCB9732FBFFC729D1D53468FA4809B85BED5093722064E08C7090EBD6F2C0BB6266B07E722EE38401CEB452E1E33AFC81CB62BFE5229341CACE69DADF10438177AA879F3E6E92CEBD1A4DB74D6343C69746877CD40B7CF3EFBFCE637BFA1434FADD12A37E5FD2D08D2904D904977C30D371012275410390F6C077B846E73901A0914F24A59CE5C8B23C482BAF4A365B89E63D6C1CD86CEB0BBEE3DD15ACE49FCA1C5FAF0873FFCF8E38F17CAF2DECFCB35E9DECD2947D93507F4FD8AE8762C6B04288707439218A66D52F62B4ADAE8507236D3A74F87C5B09C3784F20E884D55477A49AB55735620A0B92E42C0D6CE1A38CC5AA37D3A5FA19B070B89C47160CA22CFE7E4631FFB982C0076A1D9371D16E65454F2169831FAA44B6DBEF9E6FABC36BAA910195B215A8E7AD37EC2370226E0070480503069FFEE4649B9028EE9ED8240470C21B553CED8C09F5C3A9C1A411E13D0EBD9DD41D38A470F25B1AE65D2AFA858D3405E7FFDF55FFFFAD7B91172798B2DB6A0693CF6A9BEF8D24B2FF9BC398C19494C475F7D429D881ECE5E29B4E6D50F1282679F7D3602176B8088197D6334F9DFFCE637F5015C87D430CBECE65ABBF35CC8A04F7EF2937FFCE31F495069D87A04CD099A2F8A6C530D6443D1DD29CFF6A55CC45BD545DF2B4A674495264792CEC48A964D9A6D4DA0FE6425E7E89C09B723AB91C746662B8564732DB4F5D4074E3FFD74DA8C627970B4F7DF7F7FF97C6C12CE351E98FE5A6E503F3280E38F3F5E0ADE82CF0EB1964C17FF977FF997279F7C524BEF56312ED34A39F19CE3C9715A78C5A23E47CED2D06C6B5CC108D727A8631A6A524851ECA06C62421A416772B7E6972D75C7C3D98A6E4E4C75CDFB51C051EA46B0052FB8B4B0846EBAE9A65D77DD95290535D25CAD9486BA1997345E3A0B1CD2D8E9B5C0C3E5D88676DD4E3BED74EBADB746438489B21F88EDFBE52F7FF9EEBBEFB67C30D359944B0CACC07A16BDE7C2A98F0464B4B3D33B981A4EA2B92583D1DA7C6C30EF615C3025E32E1A1D7B54308CDE13ADFCAE95886888D1195E867DD995B18C88D8FAD4A47DF16E5DB2E69972C2D541A70F7CE00332B4B1D635CEBFFDED6F5980F5733BC90B5D812C2C210BDD1AF1576BB05BD81169CEA5311770F7E8D6B2E2752F5D64FBEDB77FF0C1075370EE23B30F25439546D7646D94534F3D55322292C51714B05EDB6EBBED238F3C12C3D7B8DDBE324F8D2C633C6602C1F68FF170E7BFD9B2B85C3EFC595E1A78F3CD377FE52B5FA1E21E37A5DC68153C7AAEA220E5B39CD836CBA91EBCCACE023891E38B987DC90242EF5F75D555E79F7F3E4581C62747D2B894D36959A310BF4A015EE1F844A11CDE4089185E932271BD56D64416B6C71E7BDC75D75D34FEB2F4B4B2B4F47192120C20EA013D84D5680FC6A8E6949BC391921EF1ED7341B2A096635C79F9EE2086AA39296E6928D9590A91529F081F3D7EB0B0889ADB65813A4D32586531C805D1B3DB1D679EB9A6C4BD1E2A0A070B32AE13E9708D9E8D29B43866E7117846BA86B099F5B0BA4E0436C251A54F927DD70646683078EB12FBA0C4665343C74720742D14C1B316AE0B28A8A8B80429F77D5D66C619D490584AD01B00796C54016BD0177990C8E1036E4E2381090E5613EF0790E4101D7B53159C2D23D21171A32BE061E52D4163DD481797B3A829BDE0820B7828C2BCE0E328522029ABC794B09A3F7FBED1C2327F6964CEF1A45B5754A2B12D37297C36338D403499C036813EA406AF91E32BA448565D7555FD5557D6CF30C08306C81A601A2243DE60845191C9544340118F7C60F50B85BF29474A1BC743FEC851F172CE59C6FCDBA8259781DC2E14CE0D3BED7E153EF95E0E982E0D3C0CA61C9BE91F0D419BF9CC3294A9190525E84AD02C2F6C8F792642949A880D37DC502E91048406A6132B27D2B5685C0AB354DF95AA964071DACC322232D01297683E7E946063F570B474E4647A6B839AA78D782FCE25114E92F93626A2621B25E887336DBE34DB1C6C23273E6D64D8DBD049D009B18315ED3B248E153005B22EAD46C9D99A6B8EA2C44116F616FB243ABEF1D1F0687DF796469363329A2D795FBC48A480E142FC8753EAD8209245FA40DE92AEE94E7F1A36CEAEE3F3869B110D234959E8CF8114D3600E3FFCF00B2FBC90C209C36DD86C1C33C733222625E5DD1ACC6E7DC00107C851480D9E3FDEE1A9893738CEEC45893161C382F4A6D645F20599E5C612E82422A59B6EBAE90B2FBC00DCC9D5E7CD652129389A05C3C2E1B25A1337358F162BB9631771360CC7049A0B36B92151D59CDADA9A038BD38EB57921BC10882D3A67BB1F86A72EE26F892590A0915AD507F0C275D9CB2FBF9CCE1C8ED841A6016C05AADAD80D896C3A85E99E0714306AA0B9CAC3410B4EA503AAC6312004AC177D88D06AEE3299F2A4B83447CC8895730E29EAD970824B39EFBDF5B44782214EEC1DBD45F8974203699A6115F0482FCC295DCAE84884BF1BFFF9529C02CC74BEEB94019902C0A45008470270E3EAD9C9D59C2F3335D47F6A1846667604C7C3309C3D4489204853A3338AC42FA9AB428A9057A1090AB8013D239F6F8E3120046265A6811D40449B6B5B0CC6745C04CBA336B4C4DF47ECFD28E0A207EC17A722F26DBEFF9759732320BE90948D2F048A315305B9C051615B4840682B932F5C7FFDF5E53C71F2ED39359F25CB591B471859A3305150FE412284926DCDC34B2FBD44E806F161D19CF244B5399E9CDFF5D2163C48838189D5C0ED8C28D70730421D8ED606655B1895A0DBD90B89043AE6CEF446D4FB92EFEBAEBBEEEF7EF73B4E2C1BD788898146CBF798AE8EAF4290C0F9BC02E3A325BB81C10E5AFEEC673FFBB77FFB375B0F4435A9D0A7B417A16C7C8D2D2D87DF5D8D879A8C713344369B07580A0B7146E3951AC152A27C38A3FAD58E5D3C2A4E5266792914E4567CDDA45DD5BCC55B349F1161B2F6BEF18D6F9C72CA29F6EDF40150BE5A62AAC98D128F07018F0D478A28370B84E5AE37B7DA6AAB279E7862658D60E365126626DC169835446A0A5AF8D8FB22B55010052BCE82050B2C5B89ADB944AA604F1B4BE118ACF910BEF39DEF1C7AE8A13C69256F9152C9BBC1138B022D21FB89C69738CD086E3769C67694B5245D9BF21C10DE12618094E366F15D6C3639AA8C7D267D2CC1AD7531CD7B6D2827112C545913550BBFCA76D4E202AD770B29025DC04756B6716D682FADD1C5175FACC7677DD918975C72C9ECD9B337DB6C3359514621914D406D6BE7689C4E70A4DC1B23291BC3BC062443BD62265AEB80F7AF80BD75254BBFF295AFFCF4A73FADE6CD1639B9D75E7BEDD1471FCD333A80A4FDA039D7B33CF6D86332FD199E3E13EB71D11706A9A540B3CF0932E1CC8F7EF4A3FDF7DFDFE15F7A3F6007EB1DE7FBFDF5A38E3AEAFCF3CF2FE492082480E2B6E876A7F042040B27D070B0582993050CA9850CE288B80B303AA241267C8DA55F317FDAEC6E8DFECAE20B8AF95ADE99A0145A88BCFF17898D94439F4C116C9BA530383BC7EE87EC066AC8EB34B45B192FE3B3A826E44DAD07EA1F7D0600C70C975E5787AAD27020AC345C61406A8AF59B23C6CBC0EED11E9565E0E5299C6DDED1983500A7823056CC30470C533FC33AC415E8F3CA3B043F291528343F662B185EAF9F3FF8C10FFEE94F7F72F7AB52833F28E56573A31098C48A972C104A8FC4E485A569FF897A6574180245E707DC2040E294578B726C1855CC0021B8E3AE70E48D526CB03FBCC9C71C74D20F00494A392513C1036AAFAB39DD744BDE838C2DEA99B19763AC9CAE76D249270114723CDCA185943749B58C4879AAAF1618CB531E7AC5EFBFE8A28BF6DB6FBF942732DC19D0710E2C862CF40124525DCE79D9CCE417F159B5A1E43E592842755AC171EC4A686697F2C8CA9C3973A4BA48C7F0743444C91A507C63FA4A43BB1CA248340F581E845531C1AD80190335660E7B20EC982BF8E050F046329B333CE5958AEC1C2A8C0945A61C8656CE39A2A1CFD3FB32C82EBDF452DA3FC44C21837778A6395B04A6044C35007E9DBB238E38E2DC73CFD58D74D9534F3D152420CA18035D33462307220A5E4D6F691E50EF7CF18B5FBCEFBEFBE853A24FBABA3292E4C7680A52D46BCAD860C31D5D0147C115750F65D968320D4FE70589C7FEA1239954AF46883071E4C91E1AC7CDC2C4B9A1022493F123C66DDB99B3E5B0C30ED394FAFDD4209CD284B8334D2CCBA617A7FE8FFC7AB1BC3ECB499378B390D4F01130096BCCCD5703E7A8E39D9C5C13A6A646A8D55032EF9FDA7010F4F7A97D131E309143D7F9A45C076319E1B1A54642CBA02746E02CBD5EDFFCE637EFBDF7DEA79F7E9A55874DA2102975CF0387DDEC9F794219892E285354A28DF34FB4D639705FCD90229FD8387D0E70C1AF669EC291140F300AF8967529D98977DF7D3738CFE617EBA7AD49FD0FF3A3BD45798C57DAD8251C56126FAFBEFA2A87C14CD78452699181EB03B90F1BD104EE3ABA77DC7147C41AF8A1502A2C9FF73459F0345CC87D24636DFAF4E912CABA2930317B6FA384563CF90E03E8E7DD76DBED9A6BAE01DC8FB365FE328CAAC821C0CE8EBA2DA2DC6D87B9679F3E13ABC8C0D9B21B4F38E1840B2EB8802C60AD012F808B1B930E4DAFAF938AB3ECF3CE89F0370D18CBDACD6831FF5DEA83D1E0CC05DB12D542DC9847F6695F6FBDF5B4BE384F7C970F18B60D1B36BAD66D2D2CC84A818AC4DF2D18F529AFBF8C118BD2D086B22E4B2B44D24C16C1CE41C493B9F083F8449B9B37CAC188458F4562B5BC1D2C071C64A59BBD47D488EBCB6DC0914FC152A93B372DADA994F50FF4A7C6F3965ACA95DE3ECD6F2D0DFEC78CFDEEFFF54F079EEF1B9BBA5E6E7B33D53A53A9B194AB4ED87CA7CFB74DAE875BC70C0C3EF05F37A49E34AE521A18AC65A9AD925AAAA934900DA496BEC9D3577BE7F9D790B9B66E2506A1C78189895888CD7AF78D2E18DC2395A3503D4188116B00A96BFB269ED372CE9AC70C83A2B726CE72083733196BF6D250D33F5ACC36A9F92BCCC67A9659B3665D7EF9E558B46C12D37D1B8F4D97307789D512531A004AD14C5BB5F0B2C5A32D0432D9D87212CFD5409FE9C1D3F20F17D9B15213E3A446A0CB62877DC25F5DAF9F02FE397601F1CF4EDB030EDF68A38D9E7AEAA9C2C6D6F36EB3CD367FFCE31FB14E0892C738A863E908492BB28802F6875DACEF74DECA15B23A8CE9ABE60CB35D37CF2C4A1AA82DD3010B41CC75632599F6C5FBA016DA747837F3D2636B9AE4073CFCF0C31895961A48F9580446EC9E2F9A13C0D17CAD8164EE0E3BECF0939FFC440F354A79D569A79D76FAE9A79BCA8042BD3472837ADD4BEE82DC23AFA86BD1A2F39185FE272CF98C1933BEF7BDEF41491F755BA9C1E7229DE73B6A5A103A7E7C3B5E365C22D281DDA3DBC9FDD575008497863620FBBB0AF8ECB3CF96C3A71F8E3EFA68DD454A549722DA36ECE79DF24FB99F8757943508ADBCAC482E16C53A63ADB5D6925033337E243672758DBD43FA9060BF17CABDB250A80D2C48F7DA77DF7DE56B624610A2E7B039B34553010784C91190D22EE554CF6C2D9A21624DEB93B7DC72CBCE3BEFCCD850905A383A55933BB0DFB0E79E7B6A0249CDC4BA1D36182A2AD629F9A1BCCF4B79C76BC4349566ACA9AE8007030708A1692B7BF03E05819882351C4B5D4B0DF67C8463AC572E94E1998017B30C09E58D91E5C4553EEC9CC4238F3CF29C73CE49B92F08C2DC50559F978202DE6BAFBD7EFDEB5FCBBF34BA9813412BF1BAC478BBBEB55A6493497065A5D45DDE74F2062FBCB87845F7AB55D9F92D1FD876C74D6BBD0B6BDDABF5B6A4711F587D517F7D176DB4C61ACB5F5DB0F6E429B5D6B68B4F392D2DEA2BB77557962C1FD3DA31D0DFDB9695D3982EEF103C3F06A93B9A96C0250C18D9C3967B8D74BE9822CC9A18DE8BC64D4C0321754B3945923F4675107E9E4BEA238371B302763A2C22399C74A79A2BCBE9AB885DA177890A989123856862E4ED1A1694949AB8BD6CAA124D344F649617A111E8065362C5C9FEB7FE2B0DADF8470DE946B367CF3EEFBCF30C4649B98ECC863647628951903C9484B9C40564B7E506CD24F75D7BEDB5F5A451804350C17759CD68017829D10B8CC405020E5C95F2AE1899EB9A5DA362C48796815BD209555BDFA106174AF201448923156EE7542073362F4425F4D2719E63DEBC799A050E397D9BB972CA9D66A6CC9D3B4D92EE6002268F9FDCE9580E4CECB9DDFC42E217588AD2C8A8B672835D164BDF95793626A4F5F5455343A440F3641DC0A35542CB424D2F1C752CDB76DB6DF7E8A38F6AC24137682751248778658B386C45BB24CD5BB494B109FE21058C55C451B1953ABA07CCE1311F10EFEBC10F3DF4D09B6EBA09C46696338A207F817818FB9D1A96B89129C059014158B4195FE3F9AF0DC503B3AD299B4EA174874894FD5AC892F4453A0FBAD4C11DA81CE9212ECA3EB7404451B926C79BC70D12A292033BE6B9328F4F846C0004D5FB1FFEF0871F79E41192AF6EBCE1CA45A6CE6E280051585FA4D7F5BEE699743B006637892B886317B76401D5CF53736C7DC689F96B06B4992917B1FC35146B24FE6D03E8F05C8D97E4E0F375BEE5C45335E786C4B2B4F487138AB0613D8CB47CD9F87175913AA6AB7B79CFF231DD0D5CDB92C5B5CE495356641D69C2DFD69F3F7EAF693DCF6FB15A1A9C30AEF6E6B272A9A36DECC449CB1B9C68AB4D9AD0DD529E30A6BB7395556ABD2BBA0607369E3A6DC6A7BF92FAD3B4B163572CEE6B99348682CC180875E68BEC9829A5880E16D46D212CD97C5E526E62EA79097A45239B858E99FE483087D76BEC1E6C5F70FB6872D03484850AD1F5C200E279B797C62D4CAEE02084AEE685D660646E7EF4A31FBDF3CE3B4D06093F97AF1C3DECD408AA49243236936481156846F0C497B9D09D34A1EC931DC21761D93471B786A79D233514735848665BBD298F473A1EC384475F4BD3B2E38E3BDE7EFBED29E7D44C0DD623F74A72D629C23BEC10BBB2573FC3D990F218552D40C9EAEFC436679626ACBD29840C284DB9A5835D66E22EDC6A14B00599D6494E582C548DDE127941568E5A1147A4EDFA5898C6583F548E969B294F12A0C5C9DB81EBA148401A91782C5260A4F23B6C193EE030C0280408B5BCC30433A651E9D91D47F5C76807C6CF2E1C2A545216EAB55243FD6BFCF2921F7BECB1943B4C513F1D72C821175C70013167DD1128BBFED70523251659B4F48F28E0E6F7311E63E025BE4AA1312AC25DC3D0FB5272583CFE2E0933BB7A3EF931EA9B42B2CA46B13101585D18162CD34805EB4EFD128F2576444CDB0E37FF9F7FFEF973E6CCD1F5491FC4788C140F4DF4409E5BFEFA2EE6C3730229E5BD5A23EF2EEE2C9A8634B9C7C07E40F3FDEBBFFEAB7C3E09534D1D52863B3A8950CB61BA64E06EBBEDB6DD77DF3DE534B94441903BF614E332319FC61C18FCE52C807ED86CB3CD6431E0FD6BAE00BB6EBAE9A67FFEF39FF55C1A09602B26D6A0568C66D7267084BFF9CD6F5E75D555FA0AEB2E693063C68CB3CE3A4BB3AA370954443E8DE6CD690C6A0AD88553E79E7EFA69A78DE9E8EA41132F695C21652DED6306FA3A2A53DE5A65E6B8B73B7ACB7DD3D658FA89775F7B6AECAAD3C78F19DBD9DE35D05B67D96CEF284F993AA99A55BB7A4BAB4D1DBFDAE4CEE50BDF98D2357E8F2F7E3D49A2B48D49794D0E07161968766B301C887EE70B0A1AB7507BDDBC33DDFA459B419AEC81071EA035359112AF8B8319594EED675E88182EE275F2C927CB81E15839146C911BCFF5B007DF8819EFE4AC014EE6D464399CD63B0AD11753BCA5A646F4844F34661A952E58B02092C368F6D8BAC6FA6579AD23A72C924F0D2B73A83E30B78F149E363F9420084C0D927C1394995C33E52957B8022D85B8D73AEBACA3BDEA7261539BA5DC5F4A8DB89D76F2E9A79F7ECC31C7DC70C30DDA1ED8D0E4269813B42F17F7757C465224C028E53C1540EC98915A8EFEB2390CA847E3C632E54291D9959F4D9B42397F0A5DEB4B396F14B80CF3D4E0D6E0DABA3735063E4A519BDE04D9EC12C2D72EBA77330082428E1EB00F08E2636AD1946AD88341850CD60D76136579239551B1BA6410B188535E93B3E5965B3EF7DC7374CD2340570B9855DC74763615844C38EA4193E948972324BA0E2AC1F50F0E0A91DE4E79936ADAB6939271E948FA4714B07B45C032E384C2289100DBB011CC19B9E8BC8B389C12C17A2E66C6883F3C4B7D9D640C7565585130A2386E59E0138852869DCD6E89D92C6BEE94A7978C592D8428526EFD1053420246D64C6F0F86C15A60506B4D9DE341B1A5DC9CB57555CA995923350777977CC79EF39B345AC1B7B0931D212DD89A72E58F3EFA681BA0E8090E88A3821161E49C3183673C06BCE057E998F0ECFAC0C61B6FFCFCF3CF97F3BE7EAD8D57A1AB7CF32E22E98B01819BE8A238B2E304456A23B44AD4B9E08BC600AE147FEBAEB3E0D55707FBFAC776E9CACBF51DED8CAC5CAAF6F4F5AF5A6D3F34F569D79753A93365AF6D35BD65CB85CB5E993471627B6AADF657D6FEC05A2D9DE5D5A7AF3E581DD868EA5A9D9DB5658BFEB6C15AAB5696F5D596B5EFF5D9AFA54A6B777B1BCBAA3BE251706C890790FE00A8AC45D749BFEFBEFB52F06B0BF1DEE6572D47E731E7DAEDCF3EFB6C96F7ABE62C54F26EC74401198FDE04C3EC5A6A265FCBADC5A21C8B2BE07EC412F034B25960EB395240CBAD84728B664A241A5C2DA9170548EC556D45B8190A9966E7C2A5B1348D859E34D02ED5F29E7DFE19470E19E80C45CA2B8E10089A105BC9988F92302E12411FD9EE7752D6E9120F95B3A94BD12984722F49275D5057239EC4014408E82BC71E7B2CF9145FDFC22DB65EE04D88BD520E1FD15D787C7D97D4523DB2082C05CD9772523A47DB59750D4BB73FF3CC33BFF5AD6F6119315C079A5878986F6D97EDB1C71EF7DE7BEF71C71D77E79D77FEFEF7BF478868BBE807EC94F5D65B0F0EB96A206A07280B7C463F909940132050348FB50617953385FAE2E73EF7B9871F7E585B9999DD7CF3CDFFF297BF44907D16B83B463A18D1322AA8AB613FCF299578FAC637BE71C41147301B9161C3E88998A7F12B92F2689090C345D43BBA30E2B9F0A5D8F718433A817629A2408FF8C9F48F28E02CD044477CF54839E05A20F2347353D491BE88CBD8536EEE18AD602A696DB6ADB7DEFAB7BFFDAD0BE78942A3DA516C856729E52CE731D3C9CBB1107E8D7956E723500C106B00C2B41D5600C0FB711C86D2EB820B2ED0D2A7862A02A259884EFBA04A96699549151B744AE21910162967C33730CBFCAB993BF57972C900F75069E41D8C969745A8A3540B441C9E9FA880BDC138831B6CB0C1ECD9B367CD9AE5E9E2BCC4689B25BBFEBAEEBAEB6AB73FF1C41318FB6865325EBE8B6783D41AA68F4B660DB6B06B6E4F281E13EBFEFA89AB5552B5B6DB2EBBFEE4C7B7954BE5B6AECE652B96A7AC966AADABCE697D3DF5B44E686F7FBDAFDCD5B6F8A5FE555BF6ED5BF4C2D429533ACAEDE5545E6DDAAAE3278E99386542A536D832B66DB34DD67FE7B5BFAE396162EBB281F46EB6D7E7BED6923AAAB595B594DEAB76071174AC3E93AFFFC90234C77847911BA5D04CDA0800320259DEF24F3FE844481569A161A200810FD2CAB17D748F848064BD7406AE586528F767B302F6D870B26D1D1A6A67001A7F8D2A8D5A503A46A378644300DA2F9007782A4C311BBD49A7266B3967B8C3D16BAFBD36F59FA5D062956A08C200FBEDB7DF77BEF39D993367DE7CF3CD386C5C4D23D1EE3DFCF0C3390B30B7484F9F75D659175E78A1E64757B8FEFAEBF7DC734FCADB001845FBC3A156B446A10C87708823374E30C5DA27337810634B016E66D8A949B6EB6668CA7B761E75D451175D74D1A73FFDE9BBEFBEBB3494C18B9373E595571E72C821CC324BA28F698BE8A8EB4EDFFDEE77E598A73C3FAFD5D2BC9B698C780BE44111A249A51D5686E118244A2957D5F455F3A602FAF0DCB9734F38E1047D66DEBC79A79C720A158DFA5F479A68B9F11A3EBD6C3EFC9E5150D02EBD48A1F51E20D8613FAFA7B3578759901A99BCEBAEBB6EEFBDF7A66E84DE32142A98BD81DA127C650D469B46EE05FB40128D8E28F3E7CF2FF09573544C034209A69302086292A9C4001C1DAAE65D84A3D24AA386A0C92C98409F628C91E6CD292B534749157DE10B5FB8E1861B9C9E31513ECC3BC71F7F3CB9467A9EC7E888E9992256087A07FD2A294335360A292ADD984021FE66842DF3638208E7F3D8337A403CD473CF3DF798638EE17481D125456415EEBC692534DA224E1B6B15F0FC38CC59DED4451FD3B4687DE5DCEBFA4641239BF4754D089B843C426AD003A51CBC46A62666C1E379C62630750650BE022826C609AC410BA04B1E93CA37B3BC39D48FA38F2FCBD8F4A41A3936B45F3EDD2E9923A3CFB6749821FA3168BB025B191956DF8B3C48FD115ACACB2419B372AD8A1D91A5722D7577ADF5F91D5E1E7B6FE766ABAE58FC7A5A2AC1923ABA3BDE7D71930D5BD619337EDC807CDE81CA8471E337DA609D09E3C78C1FDBDD5B59B6DAAA535BCB69E19B6F4F681FBB4AC7A4F94FCCFFD69127762E1BC080D03E94F2833205317ACD35D71C70C00129AF3D437CB92EA3F6BE4B5022BA2AA6390DF5672A7458489F19529EF2CA31FF2AD1ADB5664BDB1436F8CEEA76D8C31ED5B033ACDA9C569328DA82CD4A940E7713DCC9965B6E29FFCAF56F311890727C9FCB4A9DCC8E7962076320ABD96CB3CD9E7EFA69E4A73D8A88C37717356E6AA7C5C4006C1E5C64975D11FE941693BFE4121E14101940F21D2E32263861A65B3C01F037FA353AD31698388A29EFE186E7200F4D8F83391B73AC9C91CC05B81210E48A2DB5F527E95748FC658EFDF33FFFF38F7FFCE34215E6AEBBEEFAA31FFD08217BFEF9E79F71C619E4066CDA1BC1E11062249B8CB0BD0F7DE8438F3FFEB85C5EA91F9E6DDF7DF7FDDEF7BEB7D65A6B71C863F73D5785E207A3AAC16B602F5318EE70BCDBBDB9F344E1E52A4F72121625A358B2DAA0D29D7A109883AC1828A4D317357B84A963E0310D8D8118D3CFE3507C5580036043915D8EEDACF58CCC3F6BCF7E2D20E0FFD110B443CAD14E6AEEDF19E7C1E91FE7A5B6DF7EFBFBEFBF3F85F80F3C098E9A1A7F9105A659537090F0F3E0DD8526AE4B6968BF9A2C74B842355229171B56A63C3CE5F03812C7C3762F01A8CDCA79CF06B6593449237AB99413D216F89023A89B5995F494CAF784F0A60D6A8E7A2C29D69F0055917661D2888BEAE2FA24890FFB4F5C5666F491471E49409262D961FD78A63D4A6D1E0159E92E8D0499E21C72CA4C769FF26AB76A687BECDC3665B8CC15F5CD5019EBD1CC41163DE0665DC560C834D52F9EA58D36DC68E79DFEED86EBAF5FF0F69B49626DC2D8D5D75FE7B535FABA5B3A6BE39FE899D691C6D5D2DBBD13BB3EF06E65C9B4173E3C71CA2A72394BAD756DB1F5A61B972A0313C78EF9C8B4292FBFF146D72A935F5F52879F94DABBDADABBDE78E3ADEDDF6C9D3D7B368FE3C487575026948E2795AF1A980B93223799CFC5B0E7A594F7B48F3B271E3176175F8F8534D4FC7CF6B39FFDD5AF7E45EC14B8808B734CF563E8BBAD99E6331B7F8DBCFAA91189D406D3037EEA539FD2BD061BFD1FB3501DEEA760956940445671582074DC3C7E4017E25773C66C3B1B9B6CB2C933CF3C13215D28C8982D95B49775A2C9A13E987ABCEDB6DB4E1A042A0262CB3A8FD4BC1986AD1B9D73CE3973E6CC814AAC34942AD5424FD7DC79E79D255A256F89D61835C6CB7D5F9A635DDE065CEDE0830FBEE28A2BE43D4BFA39C9951AB0D3BA00F4F25773C63B8B2A4DF755575D25A30F8C0F75323A3C98F67CDEED68F80AA947902CB4554979EC916D51CE9BB66256786134807DF6D9E7EAABAF46A15E72C925071D7410457810AFB8788E15C5F0A404D352C3DCDF9E144A4D288929E0B6CA4399EE5360A0D53581BA54F23EA6CD2FF2314843AE4FA0BBD2E86177D4514771002819A4D0A53294CF3D8A4E447F4BE802895555CB7913E3B676D6C1986D503C3E42CDA896611567C4FDBA29CA48A0444B6A778030B3A31DC442E4100E4862097A2E335239A38FE48A1BD7C672D4DCB6A9B17C1DAD35117429E761774D30AAD77D998C1F2935D1299B5EC7F800D357998B8D112291530E614D39A308C05DC3E86CA4BB44A416DA12300C6E5ACD390809ADE3163BF8C90C9C78E2899A4377F036F108F0130373B47F08F070C44E3AE9A479F3E6A13B1DF384018AA7767F59C48AE71FF38EF749F5E9BE5A38691D422CB5D088266ACD52E0094FC1F888D40ACC9ED9FE1C871F562B308744DD8DC3D23E5FB0E00DE9E0B6CECE96157D59ADB23CD5D2B8D2F8CF6D2F67A667B0B7326671EB6AAF6793DFAC0F51F7AC4CEE7E63F3ED279496F77EA0B76B70CCC4B4E9EA533FB6EE1ACFBEF581F23A95EE6CFCD23757544AD5BE6C494BB6EC039D1D7DAFBCB57CD22AA7FCC7AC8E45A92DB5D6EDA0AE968B2E3CEFA899870CE6AB46449A888EFDD79487D9405047F4BE8F617C402C18BEC5EAB3D5DD8407F3B15E37D152B74A2BD54A5B6B5BFF40FFE4499365C1FCF1B13F6A9F9ABBD4EC63BACBA1871E7AEBADB7A2337C9A223973CC527B9C4E37E03B71BE742372B736494B81B19FB36F0AE1C1D0F354DF4546991B00890D836F6CCDE9BC2902392246E3FFA3CCA4E75C9792F3F6DC73CFB97119E68BA58D3E2993E217BFF8456AB0C9460C2C9B5C5ADFE107770430601672374D29B84B467272E3556AB4A7A3479F6B7CC8A8EA331AD55FFFFA5766B8F995C52265209A80F110F4E00EC06DFA50F93C43C944E2871A09562806C7C956A6865F12A3138E9BB33684E96CFB333BA64875F1B55B796B6C9AEB682712D6F79C9222DD69A79D64C510C8329A1C6091D1104433E2BABA8C2A8D0A3ED2CCB881E0B9E79E7BFAE9A7B347D97040B87910177D23CDA1DB25D489D2C56567B1AB394570611732126D914F7FFAD3F22FE1CE3586D66ACC7BBA94F7F44823BC5CFAE903304AB9113173A7730A2F4406A7CE4219EB270A1D7C531356A49C56B3DA68882B6382D0086823D3C280ADAB345A1163026B56DD929206C37A167DDD9696FED7674CA29235D142A580B2C6067736884D0B5A55BF460235E0BE5663B13E9B182079416D512CAA82E95DCBF9A152E8756A165CFE6A920DEEEE5254365BA4318128FF90430EB9EEBAEB88B6692780CBDD6DB7DD7EF0831FB03D22931F9D59F526D08D638F3D76EEDCB94C85AEA6FF3575D6B2B2DC7FFEF39FBFF8E28B36F89015ECB7986E8C1182B89198AE485BC16BDB6DB77DE8A1875240E9378B5A4D29C38ED673FD34F5AE68EB6A6D6F695DB1B84762A5B72D8DFDD00669AD5596F7F4D7CAA55A7B35752E4913DE2E8D5D526DADA46A2A2D4AD5F6CF7CB0674AB963957193CA1FFBD0F4D7DBBB3F3A41575B7F79D6FADA3B8BCAD5C18969B0BA7C61B9ADB565EC9825955AEFD30B6E3CEDB2856FBE5BEA1EDBD3B7544AB2B59ABA1B70242774107486ADD8CCAAE585A1D192484D95C18ED6F84F6473F5D266730AA311CC1B7006943B6EB8E18652156FBCB100A79C3B6207633639F3E2E87DA1CA3C4A367B2FEC40622D29B8AD16FB6C542D252E56648204C3614AA296D010C5CA3B560A9832280D65A0CB8652DE16662CCB5FCC98E102848538EC4425D350B75BDE27A94C000A387E0858348B66ECFCF3CF97D7444E01998C2C2228A5B3EC8222C40E02DC882D0FD2157A2984C4A267555C85D4A80FA1971CBB3CCB1B6671C0806C99ACB840C54E58BF9AB7C2D0AFB366CD92FF1A1555396F4956480FB8B3AF3388BC005EC1C5A36F69FAF6DD775F4D90F6A5C4B4A660C68C19DFFDEE77914D281E8482D3CFD0AEA65098856FE74D437523C1BDD430A368FB6AA78A1EBAAFBDF6DA28A02D0D8CC679FC80C830E68BB89C938EBAB29C12893C6F0EC71EF980ABA8293E6906FA6639CF91843B1DA1FD2C5A114DFB7FFFF77FD3B02CDAB62329547F86632CC379EBADB7DE7FFFFD47F1983DB14600E00B46AF88FD608A159C1847A7E1A988784857CB1D70C001D75E7BAD8C6ECE0F93E30003CFE847D6EADC78E38D7BEEB9277D009DCEC0D28A0DC65127D8E9050F2085C035252EF8E83161AF616CB3CD368F3DF698BE42BF6ECC1AF8DAC04FDA0B49A1FDD141071D74D75D77393F1A2B5C53EE3EA2A8B40F89A4A5A1D5E7F6BC53D0F47A1CD979DA453C32C59A08351BAFA5465BB0975E7A4997327511A5F0BE3E2D16F0393463FCD5629AC5F2578863C7C6E12664B531810513D9FB628D0ADFD21510DCDA6C5A6B1D55CE60B3B44D792A8484D7BFFFFBBF3FFCF0C31A70DDF8CB52D798B65AA5DADB33D8D2960DB4D5D6FC971D5EABF65607FBA47C4AB5D6FEC14AEAAAB54F5B5A9DF0E240CB8A49E3264DBE678DC9DB6CBA384980766E3A71957DD6DDED4FABCC4F6F541664836FA7BE7195CA46ED5D834B963EF9D65B8BC68DEB6E2BAD59E93E6197992D83A5C1541A33695CEFB2C5A5FE4A7FEE151029D16809FEA5C0AA6B8D620C7C3346A1F918BA3C0C9615E00E43B184124A726334C3F5FD3F69D284850B17B9CF0FF628385923AA7C009D0DCC86A326D56BC71D77D4F6361964CAEB29F4755005C41D3135A25C723E25D61372530293284587153FF1894FCC9F3F5F12954A2A700F8EBA5543B3AF3839FE3956CFC709749530C6259C655AA0683D189FE8C0983E697CB29D317B179CD6D34E3B4D6E9523F059DE24D8B776C134BC0BB10095A3E41A012664F80DE0EC23A391E0B8F0C20B6DB6A00B3D4AACF852A327B9D6C395B248B7BDF7DEFB273FF909AE00A717CD6FCE04321F595E8C6C2C0367955E3192236641D203600C023FC3A0405C1207F0CC9A7680758DF1D298B1D39BE79C73CECD37DFFCC73FFE11294FE3307DFEB4C64B6F4A34ECB7DF7E71BF0E3B710496750BE90C92D611046EA7010DC4083578CD1B6D0938BDA45BD8408851D6B8507F6CEDCBE161721C15E167232362436FDD7A24109955911BEE366FFA820276E7ED98A764ED76DA69A73BEFBCF3B8E38E3BFBECB3E11630E9A3DB92C7D8ACE5B2D983F5ADE79E7BCE56333BCA007BAF855318E6D3D776954E22809F1A5EA076A6BEA85B3B30502071F321C1B7202B49140B89633CA43E2041A3C771B123F9170C91422D2633832E4409E9146830D59C4239E5E16B328BBA82CCA62BAEB8C22B68767BA6971162B6BB9051BF6ADBC8E08387CB9DEF902058091E4F24DAC5A6916ED63C3BFC70F1C5174B9DDB8831B5B5C6090D2D317C8853F450286303EE782EDA65B21B3D18577921976DDFBBE5940FAF375861BF61556B48DAD8BBEFBEFBEDB7DFDE98994503FD83A5AC54CB52ADBBBD36AE63DC87375D92FA53A9ABB565A05C1DA8F4B5A7526769726F9A32BFBFFBB5DA92B163D61CB7F65B5BF62D4F6DADB5CF7CEC9F6B93AAD3BBBFD0B2FC4F6FF5F7B48C97EA5D38B6AFAFB3ADFB2F4B7A17B58F5BFEEECB032FBC73E745D7AD3771CDF9CF3F5F3F0EB5CAF7AFF9EE81B3BFE9CD89B82FF03040D1AC657518B3F9C4A51162AA05E03746D5CA79CE2413E4174AF6C25B52AB8FA8965ACA2DA41BB45894EAC1A14B623805D56E7CB59305A5C00DBEF9E69BCBE4C51A4B8120D6DC581E242611A02A7DFECB5FFEF23DF7DC037110BB8B9E5AFAF9E0830F968384AED211200791E5A56E007237DD74D3679F7D5622B494779D2A908714FE078217A344B66C50F9B18A87EC8C5B98C465A2B67BABADB67AF4D1479166FA80769AF6ADE650528B0A2BFD8C1D4FE0211B4ACCE2983F7368CD4D836A1808307A46A29D786FF5536E7703EBD02D8DE08AC933376E44F7486669FA1C9AC0224640DB44B2BC2E18CB292FD6D409A76E182F39F60DE4BB7100E82A5D64ADB5D6DA638F3D649BA0E3530E4A04F1A4C1BBC10B6B494098C883E9DCD84C116DE4CC041EBFA3FFA3A08553DE030A3717B0062298F5D0BAEA221A363573F855005623190AF60AB57431CE9F8646AE5C4EC067DC8BD4CA9EA5D4C722D1DA280AB59C37E491ACD4834BFAC7029BC28B4F3A71A231F0032A81ADE691B831594C0C534A9E02513B8F1323166C778C0C3FA649FB8025134DE103D8B3E6BEB78F42BD6C342CA2B043D7F2C2B5D50CACB9E69AF2B4E6CE9D5B287E4843A3058809DD42A74042E437BFF90D828F4364E4B6EF5BCE5B6B3B0954CE1B04CD9933E7C8238F243C0057173B598321DA69F7A2194AA3CFE84D6D786AEE110AF49921318C91E4E0D031C71C73D1451791D021C8AFB9926EF6BCA13EED25700B139B13333CEBACB34E3EF9E44ADE9BDDAC76A59C4D8FA81DAD392365201BA6A5D102CBD97DD7958DA4809D414C8D28A21EB631F8092B7A967794CA597B6B4F6960DC8736E919DF5AE96C2D0DAE52197CBD9C16B796DAB5A7065A2AB571EFB64D5C3CB0CADB1D0B06AB37B7B6BC33A6B3AD65717AEBA207CE7F6BC9AA0B57BCBDF4ED451BAFB7DE40A5E7A9179FEE4DE5C1EAD8526DFC3B4B5EDC60FCAA4FDFFDBB076FBF37ADA8945375FA5AD35F7EF9A5C9D3A6FDD33FFDD35D77DDE5E82E47DE342F6C452D1CA7A000122C88C1E653898DCE8970F5737DD75565AD96659337249554A934713D20B4A267C075ED8491310E0CAC89C7AAC0DB6F25570BAC4CD4C2A1516293BAE8F53AF485E67EF2C927E3076CB342B2A4593AFAE8A3C971B484CEA48064DD73D367A414784FA31AB6DC8B58FDE6174E9A265FEB02E10F352CB1B70A8AD3E171D38F70850235907FB5956C456BFC8AF41768444E5679380A684D1A8524C32B606B5FA4F64F7FFA53892117075BA81969CDD2EA39757AB104713D1DBFFAD0873EA48501A76A0EB90869B3E3054B8891234C6EEC24C56248B36A4313C9A4C482310307271CA4F1ECBAEBAE3A1EBBECB2CBE5975F5E4855464C6CCABD101F7E7EA6BCDDA5E824F3F47F6C455E1010D228F478B0248AD14B7CA072E0E6766A5CC38637CE94111FFBD8C7FEF77FFFD7D831CD3F0CDBCDF1AB66A428A95C90D896FB9A01DDC5C180E617050C645BAD60881F0CFB79D93D5FFAD2972EBBEC327D65BDF5D67BFCF1C753605961956D15C64D850FA419D0333EFCF0C3BABE09199837BC641D5A8245245C4D25C39235C78D498E2062883D904AD738E5013816E4223A8BBC660F38E602287FC4BD368725880C2AB931E6B8824D4C36B3C68C0BC83997C9F8F2CB2FF34990C3D8EFD5BC4FEAD4A953E179C56D757F98D4C40E66723A8D449F646F4392C03C4494839E0B1FA894B3B5BB51B41D7144526A98D41C768024D8589A46633E34728D93380DA8B1E38E3BEE924B2E21EBE912CC78C6F9A2164272505F913374D04107D90A015619E5F5B01BBB9673D718B0B6F203E5715D5949C76979EAAB760C4EFFB74FBDDEBFA8DA526AAB4D5ED1F74E4A4BDA3BDA74C2FAFAF5A8D58ECE52EBE6CF2C99D793D6C8D29871F5CE0B0B97955E1C73ECAFCE68ED18FFEA9F5F9ED43D71B02B7BFCD5BFBCD5B3B463A0ABBDA7A3AFBD776CA5347E79F5A7E75EDA9EB56B4BE9AEAB3784BBAC643D17901FF49C5B29BB856DCAA191264269266B2BA840EF6DC47A1628421B2AB9FEDD818162222CA6751D70B6A26D09DD732342CA3775F2C5C058B6871E0473505BE2ECB3CF96E279F1C517A92724D5E8E814325CFB4DD2E099679EA16709559778F06425280D8234C2DC9098EC080D07F0B3D077390DD5C1F104112034B017FB951364525BAB406D36A24D487B274F097479D3BA6627D6FE69F05A4AA99E7DF7DDF7B6DB6E83883EE5503506691B08239E56511FFDE847DD0AB699FEA1A8806124E11CEAC614F8BBE45F17C5E4E1D04618242F4723F1FC78D4D470C653832F3E0D85C0385566808903CBE68C74340C0A40E6052909AC94249C91CF8C96C2123D02FD8371ADA8E6344101E13B785CBD5A29F7CBD9A68698A690456F7E1994EFA022CC261B6EB8E1B3CF3E6BC0829CF51FFFF8C7C0E1CCC14690136D0DD00C78B93EE04C1B436A56C0A0AF3DEDAE8E477340C11FC3CE2379C0B367CFBEF8E28B6951A289D565B564F3E7CF1FE9F358FA3EE1EE3A629E551D5124B52B586048AFE6C4A54633991EC4314C77E0817CC715DB9A4C38984A3977B98D68ADA34483FB0839BB29A971FCF1C7EBD6DA5D5A08B60D122AE51D090B8F16094C2CB9CCF8C8FB482B726CBA2966AF817248043BF188B32CB494E0BB294F65419E8A52E70CE3B503E68ACD4568A4CA086D28C8F2831B12280391215C4FBEE81A5CC2BF484CC721CD34A4FDA90FC84A60FFC486EA9C1A96EC80030EB8F5D65BF526CBE761940249AF779A6BC96C87A5BC7380A988FCBEBB75352B608AAA4D30821DA06F2D59B6626C5BE740EF925EDD6D6A5AE59F365DFAFF487B0F38DBCAFADEFB596BB7A9A7D2BB940328A0A0128D9AAB9F9744CD4DA2D180052C8014B9A834514001E94D94A254351154A258A2895EA2AFCA255CCD3542145110E500877E386DCED45DD67A7F6B7D67FD7866CFCCD1DC77878C73F6ECBDD6B39EF2AFBFFFEF1FA6DBBDF670ADD1E90DF492A15080193B49AF9B4C8564A6D1FBD1CFC23E7B1F7AC83E5FFDD93F0DAC0C83EBC2731BF75DF9EBDF1DF3F50B27F3E6EF9FDBF4F4D8A6766FA29EE44B06978476AD379086C999A5D3D98B966E77E3F9977727A7374D4D34978EB4378D7B15344531550B4154BA9C1997CE3C108B5E30BF139B2C31A4C8E217098EEA256EE70C54F9C52C9DD757A316B5E5F1B135E2C91AD72537F88838827CCBE8D1FABC0630A13211B891E9F7F5D2C630E82906DC71F025ACF40B628D3E66264C8EF98663E3209EAEA462D48A9DC03037CEA4E92212A62373C105177CF8C31F7EE52B5F293FD0395DC9372914CD03226EBE528C0D1A3D91FC69F0345A6E1E0A6C0A5C289E6DD8CADEFEF6B75F75D5556C7EDDD1185E375B2358B2A05C9DAD832639A74BEFBDF7DEBFFDED6FF130E2741D50119F52B2B0943F9B182FA9AA929D0261289E50F88F9288CD00DE00AD475A76E7A698151309DDE96C1C83D1739E7CF2C93C18C924A4D84D37DD248D624C7F985B301377BD30318893A9C865A35A08DF935C8963C57D2F3DE9D1471F7DEBADB76A0CEF7CE73BE57C4B0E22B070EBF38A539EA43865D624C618D5CB5EF6B25FFCE217840A78D1F5D6F9BF10797E49C4A260BB955A67FFD3DA252ED35ACC80C0CAC390D7B42352B70016D095E5C2DE7DF7DD5483601B85B9A43649C5E66A4BD93119EC36D359DB6230710A5BC834874CD1B9E79EFB894F7CC2720AB03D51326AF635B76C48483DE943F0E94F7FFA431FFA5052358DF631888F34B20C18141365FC7988D064FACC9E7BEEA913C1CC7824988086383A76E7E942B5A050BD85B823647E1A989649E75C12219F5BBA03CCA71E355AB6DD63EDAE7774ECBFF9CD6F029606BDC9917133223B46287B5D5FF373C20927D0F1DE25EF9A40D42D729F1C9BE366BA23EDEA5C64C5E4300686373F2A18B7CB24D743EEDCD466664DFF831E3060167D528E45515C5E0F238D7A36D54D47436B9F15EB4666D2E17AD6996E2533497DC776D83D4BEAA1313194CE249BBB33CF65DDDA9AB7FCC901039B77BFF6FAABEAADDE0BFF6C55AFB9E9A94DDB87DF3DF986938E5BBF629BC79F7C66EB902C957794664FCD4CD45A43F9F8F46EA3CB7F78D5F5613A34F2D0D4B3CC4C9C74E249B2A4E5DED167DAD82243FCDEF8C637FEFBBFFF3BC103687D0D7CB13A89BDDE5813872A25E400A649089A8D21126433ED8ACD342943B579BB56B56B337D6C7C4D5478167580C690B57086EF08D2099F0BFC31A8BEF6DD77DF871F7E987C6A2C6AD28A7AC8C4A2EC3AD7B318554A86D84D6E8818E9A4432EEB944DA8707C7E843E4BC5BA439F27F4C2E7AD23984FB4635C34AC73414237C69DF4F18D98A716DDC493021EEA559D72482B38A417DB31A12A82A8552F927A60C5BDAC8B82611DAD25FFE410016C127C48FAFFC0030FBCF7DE7B316D0016850A311422BF01D24B7DD172D9C86C8C17FC4EF21C58462F7DE94B7FF6B39FE1144AD8C9508A0B76A9BAD34F42BB44BCE34E5EE00EDC030E9A564AD08827DBD9424B391B112B39BDF3EE77BF5BD250123FA6B63EF4D043BFF6B5AFB950077D0F32089968C74E6BC03EC032C8A2269716A0683B165E973AE594533EF9C94F862A166AE30E1907D006A79694A7C73FBFAA1D91A72BC4B624E2CFC98C580F615E304BFAE221871CF2DDEF7E577B2826850855482044440DF35F6C5C4AB9307EE3EEB03615EDFF31211822B5B9DD6443E529324ED455280BD8D2B98CCD8809FD72F6D9679F7FFEF944B148CDEA841C75D45132C8587A2693FD43C48C6A25DDE5631FFBD839E79CE30977C88ED93BF1C413BFFDED6F3FFAE8A31039395262CFCCB8B92DE02C1C2DB7723572125395A7482AB2FB2BAFBCF2CC33CF24051857B4F7B5BE2676D7ABBA821BE61AE7FFFA2AEB6CB8580D30BDB5AA212B7B5B53A4EF72F0B71C22864CD194877150CEB6A007C083ECBAEBAEDAD2DCC80A3E36D7E28396450C6E9865EC9FE9CEF46836DACBB3C9E6C4C86BC2781A960C85C673CD89A176BD27EB64281998199F991AAE85A513236B7E323EBAFFF0017BEDF3FFFEE34F5A5D9D94900D76F67AE58ECF6EDE38F37867DFF7BCE9F1D0DD79A0BB7DE7D94456476DB73CDD636CE8C9CDBDB064A679CF4DDFDA66BA3ED99B1A4F66422DECB1CB1E3295742A5FFDEA573FF2C823FFF11FFF11A20274A64B5B1AFA24AFBE9F8519EEAB959FFB4A177C97680431B9B955FE5B0279A515C9549F5D686913AA5EDAF162CD8F8A870AB28062237D9B57555860A35C8265BD4E8F2673CD86D238C00BCC4BF4B8042CDE115776081A90A385983B8F5141A773FDA94F7D0ADEF550055F2D001DC5A1B81C210386D7FB107E46E93B3EE312646E6A8C673C93EE8766C3250EFC78D2426432860A19E3BCBB5166489E3CE24E4888D7C79099B7BCE52DDFF9CE77782A34795ED1FC1AF8E338AA642EC44CD07D797FC0CC82151C2FB3D71E116C27E6E31FFFB8A40F312E139C126D77F6A86F336104B1BAF66BF38A4EC5BE426D6EFB1D2BE02482E3F38EBD07A7BD49069BABABEF159BF9EC21B3B7F795B72755239D98C73F54C1CF0515B0F48A9C3F2A61B0900C6AAF45DD2CFAEC65541D3A0CE989C11E2A6722EE8B10AA8ABDBDF6DA6BF5EAD54EE43B974922071BDF12B6EF651DC952BA182056C0DE76BDA86FB92EAE5D44FD1B66B5D965D137C0BE98ABB4EA8B2EEFF6A4934E0A51DCB81EF571E3FA071D74102877AC225397D7AB36E37A138D057F058EAF4F17070C551D4BB77887E85240E8A9F1A79C26EE7612C7D3B00FDCA3D48BCE91D118F42DFDC251C2B7C00DA5A69354715C37C920D1CDB21A8F3FFE781913DE2771FFB1582ECC97C5B12DAFFD76D55557D1942C464E3974D677048C43E98BD0E0A6F327D7C2F5F1635B20C2BB6994599C028CC78F5986D4EB86EED26449AFD39B5E3A39FAB2C6D49276B3136A1B9BDD25EDD0AEE5BD8130D099EAB447E4288F2F7DE2DF3785DDC351EF3BF2920F5EB855BEBD7CE3E9DAF8FFF3BEBFF8DFFFF1B3C15F8CBEF088D7FFAEB97E30C9967793B4918FD7A736F72697861D37E7BD6579EB77B77CBBD50EB5249D4CCACAECC1596CADBBCB1135D11A11B282F5EF15AF78C55D77DD65E29D0531CFFF770AD88D2C2BCE8D7E86008395C2DCF8F6965FB13CF417810E20991105F6D38C0A8C8944507571AADE95F1A16A90C501D427413EDB00E5D4387E96545D8A49D9C63D5DE29221BB433C8513A66E14C4802D004DCBCCE761F45C600DAAE31F22EE740497CF8E15703CED7E3911E0DC4ACCF9DF77128BA7F0322364E3D6EEDC838021D6B7A3FC6F78C31B6EB9E5963DF6D8436E225040D71A7EF18B5F94F7E0C2061E29762F6C2BC5455A4626DB1F427221BC801DDAB843B9C64D3FE8BFE66CA21D0E2C06C25FF831B111CA6062509855A9A18C8EA533485D0A020D9C2A52B6FA9DE6489A74F79E637BD99F0B11F917DB5A0E813601722A89FA44F6B94D8E46385462FA65AB3DF6996DC93E41C9EEF9EA57BF7AD8618749815D7CF1C5A400CD32EFAA6E72F3EC18DD5DDBF4D7BFFE355F5F4C013B24A529D217354E5B7F4954F6E36DA7CBE2F66986FFECCFFEEC9BDFFC269BD58C36582AB15B6C7F8E5EF4FA49F51A64EB186A6682F546621149A9A200425914412E87D4C065975D76EEB9E7A2EDF2A8460EB1A26BEAF37282D9156C09D2ABB696F419C0D854121BE597563D6E391A71FB369F32F6E709279C70F9E597A3B488DF50528541ECAA120810246278765D41638359CC39273B01A4966358A97F6760F1E6E703AB56AD9211E67C33C96357718485D07F717E24FEA7199A6C76FB9A4462D8215E5FB744EB45BD114364BF8698C22CCD86F2E1D00BD34313E95E61E9EEF5F1B16E433EEA92901799DF7A6D20B443A79527CDB1656B7FBE211CB4D515E79D75FC21870F87B23C21AC3BECC3477FFFEEFF48FEFDB9556F7FE3E323C379A7BDA437596B651AEED4647749B26232E96CD56C3DF8C5AF25D361C9E892B1F1CD4B0646364D6D0E91B517E602E5EC1D529D184A731950BA13347F48152E6AE0A2C08C814A67C92C9F4F8DC549D3F90A18616E92A9BEE8778CD6EE8B905B10B13965A6FFE637BF09118634447C17C810C8612CAB638EA0F7BFFFFD37DE78239B1F8207BBDA0E4C7AFB8512CB46C015C317AA096386D830BBECB28BEE0E7126B92D34482843A1FA7ADCB28CF0158BC202E99A6078FBF268F1665ED0843212AD6F65F38A11CF1B9ECC7AAC74FA4A2412909FE79C73CEADB7DEFAE0830FBA9A2DCC05A0BB90E6231FF9883E29452B517EF2C9275B01600CEA968E95239808BA122174349F13685AF939164115E6757FA810E5AB88B3617DF34E1AD12C9BF4835E5DB491EA3306D3881B3936DBD38A374A4FF4D18F7E542E4528294AF4D35CA09C3D09BE430F3DF4E69B6FD61D09F01E77DC71F21EF44548BAF1C5814152DD811061EB8054D29C1C75D451D75D775D1E1144C4107C42CA3EC01A9E7C1D70CB58E2046F89FDC6595203EB6B559B643759A2C9A346E88C00F20E7199547D0BA80BD7FBBAA384B22641A2BFAFE0D52F18B274121E7BEC31CDC30D37DC80D9E45E43F95C2246F69B56E788238EB8FAEAAB8D82D60780BB03AACAAA064AA610B726E6ACEA5924E9302FD016DC174A4EBA4B71926546BCE52D6FB9F2CA2BC9CBE2C4C85A627BC73EBAADBA58BC5253A1372FB8E0826BAFBD169C20DD4CF109E819ECB60D7198D7D9A3502132BCD9786A7D5E3BEDC20B2FAC57BD17A9E8CF2AFE515D473B4D3E6E52559751666D426CCA94A110718CC4E85C2BB018E3E35854529147DA557DC73BDEF195AF7C25DEED5BCED18679D14E4E681C0C0855A522FC65D822175D74D179E79D67061E979C01976511093BDB436224BDB457EF34D290B69399B03C6CFBCAE10DE31303B5D0AB17F9DAAC97D607A58EDB793BAD8F8D8C3DB029ECB0F5376EBBA9DE6DBFEEA0BF908FFCC9CF5EB26E62EA86EBBF1466C686DEB6727287B1FAE665236B0F6A8CEF32D2680FD69E583B319237F395B5DA83B77E23CC84E650AB3DD1599E0C6D4A263158D99936FD79C56E435EE27229D3D2D3696F9807664181BEE517273144F9A03FE8DDCED62F55F14F3007E8A73E304488C254F315B083B43ADD6BD6ACF9DBBFFDDB7FFEE77FDE77DF7DB5D34CC28A4947718A219971E304DFC575A74C88AD348261AE827152CF54719A491D90534E3905E901292C4D6B4E3DF5D44F7EF2937D8C7BCEA3852A4CADCF9C7EFAE96F7EF39BBFFEF5AFB3B721B79A3F7516C58BADD48200B1BE90B51E90F3183FA363AE7120AAD0776E114F0A5A8FC703700010D32499B05C30C925D1BEF18D6FE8F3DB6FBFFD934F3EA9C945F5C616B4412B40649D8E8E034D7D8DC9702F101C043A2835416ABBA5ABA78027F43A994618B9F3D297BEF4BEFBEE93E5F599CF7C069C11D8DD0537311E243D5BC839A525FF57A8309C80AB31058C8605E60ABC851312B7EE3210C049BB1071AA491249D0F0271F369F045C7F806052847A288AE2F1B9B9BEE5AC3E2F7F5ABE910BC6B820F3ACAFE8221A67EC2AC5B28FE8165FE1C19D9BD4EBE0830FD65E5F2C77E565C54EC73632EA92278A31C04061797C8D0A5B984B7DE0031FA07EDFD1EC5EC588EBB02A1B06D8398931A3E5B9885306C87487348C19096524CAB4E1FC9515674E9023449B4D81ABCB6AD8FAE799679E2903F4B7BFFD2D5F41105B57CD2A89882199689E94B79E8E29A2F535F329C9256BAC17F50646F16BC9E0538B8114CE6F61F450C82451159727826C32B538E66CBE509BBF3892861F4F230AEC66A605660F2FF416C47DA810E624F6DC483BAD58E9113224F00C90CC4B70A264B7DE07C2A3BF624E85A87FA59B761447A3163229572960A9C7A1B0D32BB71ACBD72783B5CE7467B0DEE8CC74432399CAB3EE4C18EE8D4C3D3BB35D6F87B064EAE2EB2EBBFB9EFB8A58CEC4C6AFDEF8952561DB275FF858786133AC68873C8C6603D31B465BD3BB8DB6B79BCCA6860706974C741EF8C6F7C3E65E3AD0CCA6BBCB426B6378BE6A252626C34A36D22554862FF63180264723FF083F7881F3D5A7B99345E8A2626DE7CC0226350AD84099B8AC60B11CB05166495923A34591F094A8774B445D817E94728B71556332609F381BA0C6BEF8E0CCCF5F20F021D9C588CFCB620ABDA383AFBB33C3A10461508C00D19B248644259A488742E60212002D0BECDF813122B50E79926CEA8BF0C53AB84FCBFA682FA880B39255F7252F79C977BFFBDDACEA33D10753ED5BBEE4E28B2FBEECB2CB28BA375C052A76D409234E2B82823EE0CC0B5EF00209116D3239C7D75F7F3D7830906FD4DD4BD44A3710CA3683397B027D4C356AFCFC043D38C921F2804314524F4B4A6A834D9C4F2270A73F51A3D9F7F5302F62D61715EF956CBAAC346A439795E9F4D6B7BE95A305913725C8A172CB7828B4A39C12EDC877BFFBDD92D4071D74D09D77DEE9317374617A03E01D6317FBC41CD4224E2740C3896A8CD53CDA9AEC887E01016151EBF6DD14AA4BDE615810F1F379EE2B2921C189ECD6FAD2EF73410101853530317864283CB5FEEE53C0A1B4E52937D4B6F139D7CF3DF6D883F8B067D539691334F6A27EDDA1B22D42855B06720976C3FCDB543E5005617A6442CA9E87A4E2CB253603A302EAF9C8238F94ADC9D18AED3C90AE464DBBA63C545576BCAF8B6800DAFFA630644E1C52E2496FB8E186E38E3B4E1612E7D3DCCB7959E0EBAA0F7D18D6EB10E559083F605CF2A6E130286047564214A534AC096B430FB56AD52A6DF24B2FBDD4AE4C58DC03F651EAF380B522C810CA172D3408E6C318AC3D430D853E2927E6D39FFE34DA1A392371A15B83D10B95AFF9FC21D5ADF274B03E90A779BB39BDCDDECBDBCBA7A69B53E9CCD060AD3E313ED6498B2E0CA11B4687865ADDF4B9BBC6C392B0D32BB67F7C5399607AEAA9155963FDEF3A3BFFE56B9F5A7A6F77E5A6301896AE0C9BDA5A8E5EE84D0F6D3C60456379EFFE751BFFED77C964984A9334C9477B6163773A4EE6395F13AA16D171EF3CFBC198D1045A1C72584CD5FE41651C1FC19854C30B1447D1BC0381E32070624B11FDB7A0071C2A2323CE62C40151626FFE2766313B396E3EE8F20A7AE55D75D5553EE0F84E1EB9014A1AA74E0A89182222F8C714B8727E930A6F683D859AEF6B2CC638990A1802A0990A55D98B99044304C8DDF212F4698D302F046D62251D49ABFC1869182A0388D45EF165576E19D163102FA59CE07E51962E15FFDCE73EF7BEF7BD8F8C1DB7276A8F9D4EEA1B23976427182EF35410A7652E70B28985FABC79A7EEBFFFFEBAD1873EF4214BB4BC220D370325712DDD54DF62BBF349883AB5395812AF5F3297959009BAF0C20BCF3AEB2C6D26ADA223AE167304D8096C12EB365B376152ED3099206EDDDAD7A329540D8E48D1519A46A3C6050F8044D5D1471F2DD9A4EF524EE3A06852816689B5C25078F9E597DF7EFBED3FF9C94FD87FFA8A7E215E6ABBC121CA1039E2DE22EC7EE0A94EC2E19C194FB7E08E34BA4D1B00A3C789097BC00E4BC034ABABE92E2F7CE10BB5346E15608A25AB4F16D10C182E9ED6EFEF7AD7BBBEFCE52F03D98DE9C308D9119146446655A33D5DEAF5AF7FFDD7BEF635DBFE7A13503D2A872039869DF3581AE4AF7FFDEB103964EC55CC474022CE14B832C41127A03AEE518FE0C68575F029293B5742EB16AAD21D7D521BF2B4D34EA352CBA492575E79E5873FFC615945B4C284FD34CE4D6AEA7400F1F20921C6E86E260720455E757D26A5674A38E6105B365EE83ED51B670A2D46355A026638EB5E5696BE56B585D6988DF5D380F5C50F7EF083F204B4ED292AC5EBB5C28B1255257830D5B3D5B25A2F5BDE19DD77604363B239B962A8914F8D6FC81B216BD524AD465BF5C15ADE98DE6AB2B776DB1D7758F378E157AD585E1F5BBFA13739D05ABECDB3599E8C347AE1E1D1DD66368D6A8B486DB7C2C6FA92999563DF7EACB53A34C3E0E690A5C3493A31DDADA0643E2F7D6176D691F575610296257BA92FFCF8472A608827F965AE2B3C7B7ED3B9A4D3BD795D9810560E3EE7113A3D2C1282B64060FE319B641F4B8C1304E664813BD3017473027B230060397784619193AED6056315231550C0310E0679EB27C285706A4F2FDED1D9D11888AE6947E9747CEA539FFAD33FFDD31FFDE84776E16C16E8E0C81094A378ECB1C742E70726DF5AACCFEB5D2C1CBD600E38949BC43180B8D1915F20BD396B454820544173D42767CF0D380158E942871E7AE8F7BEF73D0899DD1D4CE32697A6CF43FC0B28D4A81346B0FBEEBBAF5EBD3A8F3A20C134848110571BF719E9A4F4A96A0F1511A6E7453F01CA4A659E74D249175C7001B40FB013C8E72040A78F49795F7DF5D5FA80F46B3EAF07248B4D84D93C187A7C69FD9B6FBE996386BFEE7A0F46A867D49B586AA16CA9411346BCD2EDB7DFDE494ABECB19A8CFED7EB8D801085534D56C91BA11740DE87862B0F2B0E59E02040367A849F323A066E27634CCB683967DDC695C44F7D25D7025F50157CD2F28204CB84D74D1F8F63E2B27CE47B285AC51F0E635B0F3CF3F5F22D814DFA14A32E5558799ACEAA1CB4DD1CD2ECEB3C513A26A1FE43E9762FF703B0332C96E6011A34AD1491C5DE62DCE2A21CE7A556F4D6B88745E7FE22442A59A1DC9B07CF7FBCA2BDC3EEF6061B00F4D5C4ACD18FCE1B455769E8CC9278F20E1F2C0030F38A11BD7DC7B77F9AF310E80A98B63514955176485B1A0029E1FBA0C73390D2CC4EDF1C7012700F0CEA0F3151D1C006B2132659E2FDE486A85AB9AA7B5504B43D269B657BE7A645D733C3CB57C7828E9B6D7B79634D3E181F1998946E8B542D8988465A3B56C436FA457DCAB3B3CF5DC78686D3732335E0F8D6D562E79C1C4E38F26C34F4F2DDD58DF3E196D0D6E5832BD64C3F2B11BD78D6E0CC361ABA7C3C4F07603936B37B41A038656B8C601D4671CAD89B7BD9ECE6536B1BDF25F52C0E5C45A0117BF7B1DE64376AD5CFBB6A297AF8FCB627E2C30D640B1B07224B9AF309D8FB17577DB6DB7534F3D55A29855B3C1EAEA0334AEA6059A451BBE315DAB6940906304A575B57DF6D9E7BEFBEECBABA64FF6A60CB3F249B4F430A589BC11F8B920A7C3F775589834621C48B01A4AE65176F469A8BE0844A838F3F52D4D17AE9A6B9C4285D2A2F25E832F40A38E8C5D72C925679E79A6AE2B7DF9D6B7BE553602F4EBE430E0272349CC33FB31DC8B86243FE9E4B4EA8EA22BC7E4124804FB3144478D28E1A934D7128EB253F009DC8E29990B2ED57A6BA877DC7187AE231DFCFBDFFF5E37D2904C629545BC1C69F55AACB1BC6B286968C5905057ACA84BC448E0B36B65156A45FD08BE9ABFE2624DC77C20A0E179718201ADF0502C39F542BA35545988244DDA5FFEE55FDE76DB6DD8B92CA11B5AC4A2C1791A8E871913A96FD14F94B1630921CCA163D5CF134E38E1339FF98CC673CC31C77CF6B39FC5C5374C298BAAFB597DF85B78AE430E39E45FFFF55FD38A7A8CA73617ABCF894BDA50D80E2CDB4DA7A62B2D29D280ADE90A3C4B52B5A8D367645D69DFC6347271D0D5F225EECC112AA2250C14BD73CD35D79C78E289760143847999270DFBE17BF116CAA25692AEC0317B3B41206361582F07EE382FC60093B0773A5C173FF7DC73E510E765B933D175362D65815AA04F7CE213FA0C3B76BEE9DD37607D17F6560D80F61531ECD145964989934F225A9550B519C5D875100F6C7F289107719694DE12FAE588238EF8C77FFC4774B0D68B2CB54EAEFC2A564D26BE0C7D5A59C46400B146191A189D9C9ACC43566F26DDBC275DBCFF4B5F78DFBDBFDEEACFEADD5A77A6161AC3413BBAB739ECB47264E353E3B591C16E32D3A967B43EAFE7A1D14DEB796BA03635D66B4DD5770FC32F9052CFA79FAE4F3F3C90AD1B3B386C9BAF7CE65FD68587C3B2EEF281FAC00EAB767872C3E3531BA70932C7B58249C4B6DFEF8C26F9AC4A4D664B76D931B564A897F7D290356A12086D7DA8D54C071ACDF593D3E56E29B46CB757FC227F5B73DC6895F0E019C9C9D048B56A698954D085D2244F7B1A4E29DECA1F45743EE459318A5C7252EABAB8B7FEA79E866EA61D580CB29B95AE705A06B4F5B7EEF330BA6C6ED7133F291630A6BC8EA7A487D7D7BDE5F3E8156BF73E83200EBCC5B807B758D05D64689E71C619279F7CB26B17AFBCF24AED7C9B1D2E6566B3398564E1192A9E2FA41648CFB464E022A09D57A4B0212A1088D97C5D4AE067B103E9F4AB4F07C73CAF78CBFD22C38807152A0B5B23217A8A9D91B8B411D146145723BEF0C20B2FBAE822D9208EC887C89E35FAE0F6DB6F7FCF7BDE639E291712782EB8BD0EB91E4FE73CAF08EA0C7025A641B4C12546BD8AB71311839D9E5765C44E066B6C7A933688D258E815849DE357B19B9B44A563F305D3A5975E2A51EE6259EB608D4D0A49CE594C31CF02E389F2E09A40BAE1EA7D97FCDA72C4D48A33C10E7BA2CF80E67A3C706540A762D2637B8DA61E4BE6960A3039DC82EDFBC217BEF0DE7BEF655919D591471EF9CFFFFCCFF4020B15DFA1930E087783E310E5B6F1993D074B7846BAA668CBD6CA9E391A121822943D919610956AC4CDBD69A044EA1D04598C2F5DB56A95F4BAAEAC6B9A27445FC76AE4B23241B439B9ACEB95FBF2616C062F28DB09F705B9B0EFBEFBCAEA32B14ED892A7B2A59789176C4713FCA7A5B156D3EDA1180CBC54BE69DCEB82AD45C61A9B5217D7836B5921CC71CB04A7156280DE62E32704ED1B1D7BECB137DE7823FE745C1A1EABFF5035EE45F669486C3FBBEFFE585C381E2A7C80B193B256B54F8CE824998D154E48D31219F1B7F039CDD2E1A1616991E999C966ABD6C97ACDC1FACC44370C855DFE649B4DDDF51379577A67C948A160870B486A5B3E73D24C022597B206DB45094F61650D8C4CD546DABD56BDB97459BD39FDE4D3E3BF7B5CD739E80D2F1DDE387CDF1DBF9ADA38D1AC35B6DB7DFB87563F94F49E2FECDE82D7686192D667BDBA7A5A2BF7620FC534D01AD1ED9B456FC102985CBCD3285DDB96567F60C58A658383AD24CD4B8BAB3ED39E92930FAA716A7C42275B57E35C4F4E4ADFD632D920ED6EBB97497D4D757AC5F5507F28BBA45E6860E9D8C204A89746409E487327794FB3346B16F47B7EFE6788B2C54644F3BEF624FACCA62DA3CAE6317FE50BE198D8E1FABAFB7721F64384BD45356847C117D477A24395F2881B95FA2E9044BA2CDE5515187656C07E46449941A9FA4911B351B4046E63C9E0CF1BA34E24C9DC23644243054F411B7A720C34493827E88C50B91DA14AB9BBF699844DDC4188C119A519CB9DBE3D1A77568FDB4DB8E52A60FD1075F3B60561A23BFBC77DA0FC73CE39E7BCF3CE7334FB631FFB98FC805ED50331CCF55192C511FC3864A82E135C20FB7A11672954C366A472DD8EFB87F39251F20FFFF00F8E764AC0D11AD3FD79EC71DAE678D7BBDE25598CFFEDE80A467712911CA1FB89F7EA91FB2ACAB9236B17D3892022B10680BA20B877DE79E7A38F3E5A6E131F23CE41126BFFFDF7FFCD6F7E63AF5DEFE06D7B0EB59B4F3DF554A226D0CB91FED18A9C75D65971B91B8FD3870C67279C7DF6D9175C7001D87D0DB25E76B3D7ED742F59001A89A65193699B433F31B33CF31A217FA29384E37231381937B76F4B3336A7813506F9EE3FFCE10FB7D0422ACC4D0B25D10B539DA501BDC9121F7FFCF15FF8C2178CB7D49C77AB3E867406244A19AA281FAE30D4F0D80A8CE7BDEF7DEFCD37DFEC83403E12AE370C418FD0AC2C0B8E3FAD18AD4305E9D20693A862871018A44DA174B3668CF4B07B9D6A92F5D7030E38E0C73FFE3184D858452CB12EF2C94F7E525B42768021F77CC03E53CC1EAFAFBFE94D6FD2A5981F3A9C0392EF562DE76269AED7F0E092B171780427A43B864764DF4C27F550A89366D8E1C5DB8F251B075736D615A7A0EC9D9AC917D5E5D250E25D82846DBD782BCF9A53BDE96E3D0C0E0FB4F291DE33F58987A7B367BADBEFB9D5538F3E9174C2486338EBB6A7F3E9AC96159E647776187D55FB2EEBEA1F6ADAEC75DB956C94FE250B10924AFC24C54A85AD570E49E31619999DB76B0D34A480878606F2D02D9C885A989999EAE6C56C64DD0219DA9E9A25186FD4EADDF650893EAF499376DADDF1E999E7366DD8B8696AA69B4C4FE533D3850EAED79BB5B444C9F4DAD2D6A1F088A1602D14B41473B14B9334560C7D9994746E872294310BEAAC565C6B1B27B9AD2617CC559F7EFAE992A58E9321D20DE5716375CF703CCFF108E3125E06CF2F98DAA649F1B1B2AFECEA801095728408D54FC8CAE4B88EDEC700640E51A86200683A8B08D3AFD24902F168871819F53C67A1EEA73F5053E554685F3C3D940E87AB3EF898D1710BDA86D63436079086DDB2B1BCDE9148C2EFD965975D74653747C2C43082260EFE301759455677C61967C83DE52E18562EE28E5F5BCEC17845D95871C8DE691EFDAE41D2FD974F82B020E646D29778A0440F010DFA995B77F6214A1C99D452EDBAEBAE12C716F1FEB0CF3C41059CA7830E3AE8E73FFFB94F8EEEC29FEC48192581A0972A45F2C6FE25CE2EB17AF69013C97AE78D6F7CE3DD77DFAD357AF8E187BDD6FBEDB7DFFDF7DF2F8B475A138B847022AB43C2FB4FFEE44F7EFAD39F86AAA5AB2EF8F18F7FFCC31FFEB063387D24270EA8C621AF503558050AC4E3B00A3E99E6BAB3BF45D225D68879547E87EF6583DD5964B634611B775CDFB202F65EF2790675423984AE661AE71D76D8012880339D440560CC201ECBB9B5FF1783DBF1E9096B13CB25900095A66CC1BCAA13053B0699C99673F6082C2D0D011BDEAF957D8AA8C3264DA515A7BB00B970702ECC18807C60FCB6C2E35E75212AF707CF9554142B612E9E366E061A438BE72BB62AEB61033ADB71C7ED2FBBECB2C38F78D7D0706B3059B66EFC99301AF67CD96E6B363DB2D50B963DB17E6363B8503B69A7FCAF5736FB93CFDC08FA2F69078DBAD90C438D66FBB96CECA16E78AEBE24DDEAD57FFAAA1FFDDB0F3A613AAD877617399B96E1A56E1C4E0B115AB84FF1CCB211847AA758CDF2BC27D27659AD78D87470586653B7D5D4FCAF78C1AE3BEFBAEB4EB57AA2C99C6A8FCB8F95D72BB75E3BB75EB8C5B9FC5E9D2D88C7F35ED6CBBABA1006E5606DB459AF4B7D1673D2CD364D4CAF5DB7FED9F5EB9FDB948E8F4F8F6DCCA6A60B1D5F4BA5036441E449361B119C4570D56B65A54F636A72D2E1DFE479960F9D9AE7D9256342157C47AF32B804F7FC8897AC4F01F7656D5EFEF2973FF0C003986ED0CBB8E9BBCB9C9093C603F69DBB3EA3C71039B690AB10DD64C2919B1829195F363611E00BD27E067EE45651A6A90F912B088C31ABBAE0501F85B626946B8F2854482618EC0B94C63EFBECB37AF56A4C69E92D791BB7DE7AEB638F3D1697D55A8419A3E1BFC6C0E605C14D8C1B56332C775036E04DB40058CA6E95D3C799E7098AA98CBDBA586404CF6D9119EA1CE60685FEA00286C7D50E531C58433A60C540F2002D0B1AC595D3400CF45756BA0F6FC58D08D5629739D8C246A15C12DCAC414331AB3652183C0ED901FD29C627BFE4252FF9CFFFFCCFFFF13FFEC7673EF3192717DFF6B6B77DEE739F437003E8D7FCCBEB95FFAAAF10040676675786DE566618EF6B6FA9116AFC1A9E7ECF2B92BC58AAC615A8F8F421EAED9344AC6714CF9C74D249F29CF4BEEC9B871E7A486EBD76A0F7807D262C4A0D460A805ED9BAAFF68FF4042CD0348D8E535921A282CA2A22214A9BB0B2F3B21F702863B9B212E8776B54C81FAF806144D1E3E89ADA8724EF1DCB0166C9BE62CFC0A721ABEBD1471F35264E63DB76DB6D258C1C2BBAEAAAAB3EF4A10FB93128397BB49AB78AFB9CE3F45BAF2F38FEB4EAE4C85AD08A5CDF951835E33C9578EC22BE15B352FB115CF9CDA1701C8BB633CEBC68D5D0E55A35DD8534181123D0E3DC37EEA22A69407813B3329E6D7935500E2C5D3A8A9DB4C376DB3FF5F4534361B01DDA432B06364D4CECF0B265BD91990DD954DE2CB4AC26A25584820BF12A2D3A53066807F3303298D4DAC39B9E9C997ABC938C87C14E5ACB93953BEFF1C4338F8DAE1C5ABF61BDBCDEC1462B74EABD6EE82493F942B0A65AD43425AFF87C0AAEBAB440C376BA3345E4BBD07EA1D92A48DC0E3C70AFB1B18DCD5663971D77D865D71DE4F2763BED75EBD63EFAF8C3535393DA4AC323ADC121F9490D8D465E7EA3D6E5B2CD9278B75CD41296584B6AA91E2A14CE7C081393BDE7366C5ABF71FCC975D9D4646F7C7357A26B7A26F4BA69B717F22CC97BB3DEA1BCE0C2EA4A8A206D9160DABC89305BDE5F8B9819C308BA980DAC0D86C4D679817488396133CCEAF845C2CE218A6420181D70E565D10DA158EC84C41749E7315D032D666F3B9DE194565ED6526ACC471C71C475D75DD7C7B0162B6020DF6EC54BE6850E25A47B7D41F7F06648346227B316678209F561611B68ECCEA4859AE773925CF0CDFA90301D9C8AD8E32648853B455AAB6F66FB0C136C9997BDEC65D26D926E679E79666C40B95D12FC611CAD785262BE7B9B51F12D2C2F006FA32DD010F3556C5F9E237EB1B7D2B9A4FF3CAC2D175C28EF12ED9E638E39E68A2BAE001C24B10BE48A3A489BFCF090380EEF68B67ECAE87BE491471C3786278B2C6F98D7B7D8EA1CA5A825877D5303A6B0D5F7D56ED345108BFA493F1FBA8284CAE34476F3681A92AD1F8C803CA267632FC6ED71DC97D0EE14F626060133A9FBEAE9F44F8D049F0F9A0BD2339896DEBEE47A6311ACBF4AF79C70C20938F18EFF5C7DF5D5679C71062961AF9D876A20462C1CE3726737083243A72690C2275402058E71D5F8820A38CC0B4173532936AA86484F68C0B2EAA462591D935D50C8C45378F031D61A7146708238903E63BB046B15F001519FF9B43E5B30346D0E5240FCE77FFEE73FF8C10FD8EA7EEAFDF6DBEF57BFFA157472F64A43693E523240F987A5271B80DE6D3C8561CF21B29C7C538F4717C198C397CAA35EB316E873B90B52AFF8AB5EF9A7FFFB27FF5BFF5EB664D9D8D88656B331D56E3747C3541AB67FD1F0C630B16CDBE6C44C57DE5F2FCA3BD58A38703A9C67336361EAB946777D33DB14B2F64C2374F5A7A98132DACCE4656164606866BC9B84463B4C20F45838D6C53CB2A1F2A838416586AE3E353129055C68CD5CC23D2C5B5A182207BFE280767B7A747850AAB735504F348CF6D4F8F8D8FAF5EBA66726A577B7DE66C5D265C343C30D4DC3E4E478E84E94ACFB531A5B112F9B0D616769D88C32CD7B9D5E9EB43BD9D84477F3F8F4FACD49D69592D0216D4E4D249BC6BA9BC626A7263B25C6AB18465A4385246979127B9DCC5EE3EC83901C0E5D7C219D0E8878890BE611341AC1A587E23032035944E2166BB83C026191770300CF61D7BD70D290F64EAFF2614ED37C278A70A079644D8E417E4ABB0EEE0E97B4C17BE3F05812A17A5DF5C495EB514FDEF8A9E5E1FCF297BFCC4AD658C323902A78C988C498F22894B42106D084884DA870095CC5816484E8D86C967C216E374B7D67A81C0B333987455E2647351F16A68A0E9E748F7ED96BAFBDA49BB1B6A4CC4E3BED34B88E5D3E61B8BF25AC4F635E55703BB0CE8CC475AB71D2770B0A98AD061428EE521947F3E07C9683A2B1E1BB5888C0299157F013F703B0AF90463487BCB4487283B49CDCC22CBEA403C0A9115F8D833F86EF87D269C365E9B336624D16E6BA2F4C97D64217A19E8F9D44350E90195C28ED128036715F1D897EFD091605600EDEA338792ED992252719ED27753A90226317B0C6597FD055BAA9E188507C93F0A6E1016576D0E238A20EE5CB81071EF87FFECFFF71EE7FBE8D9CCF05F119EE8E0FD7376FFF5510562C5FE62A8C80198464215AC53A6AF6F4507A041E16B79BAC84564113A8C388DB9194848214B35D73CD35471E7924B9FFD89966E7EB59A817586C9C1604D43861A56975F20A5CA3BD6468FDA73EF5A9534F3DD5149E3E147D9BAD567575E4178D472377691C377DD18B5E74FFFDF7EB1739F49FFFFCE729B2B2568EEBE248FF6379E7735FE5C268136EBF71C3865EA7C8614D8C6DCEBAB9FE6F78F9D0A60D63A303238D666DB237319D757778F18AC96CF3403AD46974DBADE95EBD1426DD5A7366A0D1A9CB237CE6910D616318A80F17FD0BA7C6A4A7E505CC74C3C0606BB0D9DAB06EAC2A46A99591ADC1A4EA96C352C634B1F1A2B3A3A428A550B5F59A753D54181AACEFB8D3F63BEFBCE3F63BAC6815859D43B2C1B25E3B49F3F6F4D4C64D1B9E7EEA996E4F2ED1E0D6DB2C1B191D18182C92B3EDF6CC50A3A8059D962E4D42AD9E17C1EC1CCD31564B73190E8515D90B7AABDDA94DB7F3B65CEE7C2024A3211F9D690FC8997AFAE94DCFADDFB076FD6C3FC39A869625DD5E4927D26CF6DAF384E42C8EEBF9340DFD8BF4224F81B58700FCF8C73F2EA17DF8E187DF72CB2DB1079CCF2D939DEF13B3551CA57BDDEB5EF7C31FFE90582054B59A55B7E3739CBFEF68E7731B7838776BB02732CD9DE64354FE60E59247540144BF25AF68A78D8D0BF65B4FADEFBEE215AF9090B194808901CF078D3358BEFEE22FFEE2A73FFD29E81C77E48CFB0F85AAACB97892BE8633B098526E0402B90FBBE436BDE81BC79FE3F47B5FA40E6C451FBFBCF4D6073EF0011AB9208BF3AA73783E97AB369689F3130C243BC16687D200277490CF03616D41B0E206C5EACA3945E30E6C79B80C432615B931868DFBAB8F9D74D249175E78A163A726A6703112D3AE9DC122C5C5D0611E4B465F4A8FF8B62B9D40F1306CB9920F3DF4108D710027A366A4B17429AA4D8CA147D0833E8338C5731537CB7443C3B422CA4FAADE35A424380396A1718AD77CE0F123C41B8689E52B0EB4E25B7038F9B03EF0D18F7EF4BCF3CE8BB9825DBC4F34FBECB3CF9638706521466E2F6AB4E2034978EA6D6F7BDB8F7FFC63EAB6F5616B1D166BCB5881645E19521F6A21ADFA2E609AE8E9682B891FAF9F37DF7CF399679EA907E1F3EC589FA0B89B087DEE42D50ED970B630B7DDBA0F3653BA85F1330FDC826F99FAC3D0481AA9C6282A82ABA0268922C08574DB6DB7BDFDED6F3FEAA8A3BEF9CD6F52F2CE78DC291653C3D816F87BBB55AF6EB68D3B5A3A0C1897218528E8D568358BDC6A5ED4DCDC7CFD8DC71E7FFCE8E0C8F8D478B7D6DD65D7BD9E5DF34CB7E860DF4B86E45BE46D89E6C9505B1106764A9A2B8A8C5D7B7D77FAF1BC574C672B743B3ACCB572CAD37ADA4B1B5948867AB56EAF4B8D4B2DA94DE693794DC7206C37B21DE14D1C83B8138C3798857271B892BC3C296178B03630D858B67474CF3D77D3611CDBB4B64CF7340AA4559A48D74E4D4E3CF6D8639BC7C67B5977C992A1152B9748FB365BC9C060BDD0869D274B83BBDBA8273539CCDD4E896A9697BAB95E2BC0643D6E5B93661EE8E5F5BC9366BD46C8476AE98A6E36BC7153EF8927D6AD5DBBE1990D9DB270409E6F018FEEF6666D85F6F4BC6603E5036579DB3E983B09CE2776E5033A9EEE7FDCA780F3454058BA2624187BECB107A81A0EF2C9279F2CB3CF3B9C5AF6BEDAD10543A173E8A5CA90AA6CBE638E39E6F8E38F0F6569ABDC3CD812B38A74DAAADD74CD34737BC31BDEF0BDEF7D4FDB529A1833EBCD6F7EB3F6B976BEFEBA76ED5A9313E4652910CADB3154CD95D97B5C85EC91DF74D34D7A4019A37C2B217AE9CD141BAD0EAAB8F88FE0A471557EBF8F5E20E6D1E55B4C6E1EB523A4CDAA99D6C195108808F3C8CDB760D1EB5BEE01EC3370EEB9E75E70C1057D7D4B9CD200D8E280839B0EF5AA066A2E5A8D79F9CD65CA0C9C73CE3937DC7003DD115C3A89E76AEC89938E313F2A0AC9A82EB20B164F71C0CD368DA12E7C4BDE0FCE370C590EEA86A8159DEB47633469BC5FB115B00789F9F4AA06C646C5539B4BF0DC1CCBE619A69B1E33E6AC64ADEAC2C66AB213F47523A8A9DFC51174723AABBAD7651509A2792A5C9CC046E59073593D9AEB6762DE862D28CE18F2A38BBCF5AD6FBDFDF6DB5190AED8D68ED532E9B244E9593EABBAA4E23FD72F183ACE56F031C2D158453142C71F03F342E00E0B2F54A8FE785BEAA04A7CC498E1AC6A03104A3AEB6C6E53F450259C1C8E73E2C6E13B1F6787E8D38A3498B8579C82C1E1265001BF15D639C464A1E2FEE58E9850310E8ECBC65238FC575EF9DC86A1B67B3001635466884274495488E2028A5099B071D6C302D16C2A284E57B2C54C9C59D9548393E24E53B39E53498D5904C60BCE4AF9A4BDA48418D7EB5AA96CE58AE69E7BBE60FBEDB61A1A2EA2AC59A7B7CD361256C573D51B3AD70D9D92A9E989CD9B37AD5DBBAE3C2F8DA1C186B46FBD216757DE58BB9E4FE867C867F26C3A290B8A9222FE9C248D769199EED43A3DFD4BD233A4CDACD84A49B3D7D50E6C767B3AFB031393E9E64D9D89C9F686B1A98D1BB3B56B67C6278B69498A92688DB4D9C967A471537D3927F85C761A4E6605A9B6B3DCEBF26877AC7D39DAC71E7BEC1D77DC210108DC01FBC99236AE4AE5C09A10CDD5B160A731FB74A6D6AD5BA7AFC03564CF27548E693EB700CCFB219DD7DE801892916531F7806575FC0B6E640CF0843A900DCFF19CFFC26173EC5A3F0F3EF86039C79C47DED765254277DD755778A8E86887347BD5AB5E25AB8B78F82CF20D8786966A881EFDC2B942921A9C96540C0C48018EBDD381B16AC48F41A080E9707D21BA7C7E6E80F3E6EA66FE84E65BECA04209C25368FDA4930C10302E9A9D611266E7DBCC5F9357C0F1B899BC9D72135040FDA8AFA051ACFC62E253595B0F3CF000C34337A090081B20E6080213F14EE611EA3A51D7577315AA7429D2562E947CBE988295ED029F9F73300B2A606FD65856E2136B6C306E92E6D7C50126C02229EDDBC704EB52540C615D41AB9094DD7B0E3BECB02F7FF9CB18B9D4491340D6D56C8524554B00B3B392ECA06C805B9C78E289D75E7B6DA8DC6B5B4BB615F28AB669B1DCAD5D524400D279F7DD775FB3660D6808C89F111F32514F3BED348D84EABBAC6A5CA195D5B19139FC4FFFF44F640DD848B871BAEC2DB7DCA24776E10DC635755FA1A4C1D3EDC049E555D3272F7112159BC574220EE0C76A238FD0EF905AF0B1F3CF3FFF924B2E21BBAC8B00B6322B4B56350C88E3BA76E0F2AA9746AD6A68CAB6776C233611E29006A74056EF29A79C12E6A249D3A827F47F55012FF62737998983D83182DAB3E4787E88FA72326FA65930EE77CB0A18572CAE8AE4FDA2DEB79B9745B7A0B17A4582B6843D6FB7FDD2BDF6D86D871DB71A1A2CF24783CD565968D71B19199678EF7467A6A62664FACAA3D575A483CB0853DAA84B37E7B5B49D8776A17ADB63592E4F5D2B3889022EF4BC546643EA2D91F53ED30905323CCDD3A6446E68A4F55E5ECB3319D6437936D4EE3466DA49A79DB7B3D6C64DD9D3CFCC3CBB76D3C68DEBA7A77B494FC643AD885E1746844C8752D314BA3D97026E1696643235D559323A3236361E7B44C6F1217628D53598DF3E80A52B3F9967CADE5031AE6E304BB1D78E64705E023C43E5FBFD910AD825CB7D8C6FA855BA42E17818F4C3B9901CD35D5C9287B459AC20029B8CE6130E1ABDE31DEFB8F5D65B43D478D818EF3017E421F172C5155714BD2E4C18E6B8A2B7AC6E70F8E187CBF5D6F176C5083DD4E2E07B4C23A7FB513B6B42D45AD9FD4D4AD1D81F7DC0D88DF9F0F4BC62EAF0F59D655CECA0F2C95AD4098B3FD9E0D59F5EF18A57486FC5856B3C6028D155E62B616FD1621D50554C5784DB878FCB2D80C9607F60CA6969DFFFFEF77FF6B39F0D112510CB4CD6445ED7F7BEF73D30A821CA8BF40555D0288E31840A71A0BBE315B19F0C0D4311020A835E0A60116852CFD58201F9BC62FBC3C98313DBA5687153CF1035A1824315B2D23E98B473D2A85E5B33A8190E6A4C0CCBCCF3206E5C6F4A3516CBEA9FC373D145179D7DF6D90CC900F82DA0975D716826E478CCE6FA18295FBA1AB123E9CBB46A241047E3F5C8B8F28452D1703C3848EC18B584A5AF973600116F6C0897D4E7152524196E475928746603C466A215892FE290B509D4340CDDC5BA073E3FB7F8B52EB12B6CF64AAB22F2BE66EDD08E222D05FC9E3D4015A2EEA555A6E5094B66ED9B56A43A8B11E02CF6CAE7925C7A119D977101B7819CA1E23FC2AEF5A2136CC39072C3A87AD488DE7B062DBEA0020E7359043CB05AA3DEEB140CD5B594BD076EB1BE7CD9C00107ECB7DB0B766C35D35ED6999E18977A2D7A66D70AF52F4F77A63DB569D30609F0620CA996A6A479977E4D937AAD1B9299ACF07ADB696F2A0FDDBC2773411E705B43D014940A585AB7D6EBA6ED995EBB5738E28D5668B6C2E8C088FE9E878124190CE990F64E129A21694C67A39BC792A79E997EF4B1A71F7FF2898D1B3675A70B7476B74475E559AD20C7D2554A05AC0B643DED8D8278AB3D93C95C989E6EC331EE7E622ED3805302003061242B3C0C1753C0EA1D63E3F392AAD3B2DA7B1E47C509261D6DEDED77BEF39D175C70C1820A38D61DB12CB556761B18CE178A092166C33A2DE9F6C0D3E8AF882F10398B198278C09C7DA232AED3F12122A984D6A76F10F601876B962999F101B8C5BD40A3201FFFFAAFFF5AC63E1CBFDEA06C59EF7840403C958625FF861A414A12796C04A553D92649080BA5D3C83D53FE65CAF8C50EAA2378EE50042C4DBF4B8C723839937012D96772E00E7CAF0510B12C3F601A757FEA2B168AEBE71CE1D4E0A5056FBCF146781649DAD522CA656347699AC4EEECB3DC39F331F156AC5710F40C29468987AA73406C6AA5F3BAD92CB6A51C0B49CA72A0471E79445EBE14A446284FF1F1C71F67D548331378D03B5AEE7DF7DDF79E7BEE8145415BCA61E4382282F886795FD7DC6FBFFD640F712A08AD1351D4C875770AD5F4CB073FF8C1ABAFBE5ADF7244448F0C39575EF529331A0E1C401F1B5C2CD043C4A1E8DCB98E8106E05660469CC999BBF2CA2B6D258408CF693E32FC45F695151E7BC08CF3279C7082FC69BD49BCDACA83089055943352A13271CC7E6547D3A11423AE35721907AB57AFD602C935770984FEA4FBFEFDDFFFBD36BFF69BCE3521190D127E5D36582F6A9B88AE754E843821C721F6804394E6E0C5A2709AC095F41DCF9889FABFF4EA53C04945B070CD35D77CEC631FD3D2B310269BD35F97942F7D0672B410959F91C7C1F240F4C738D83EBAEC304F012F98772CBE524BF3727D8A752999375A0DD9ACCBF67DD16EABF6DE63A0551B1FDF544B68EC5D4049968E8ECC5EA420E5EA9536C47499539F2CBDE750972F5BEB25A9CECEB4245F2374E4014B01E7F98C3CE0827A232DB5644363AB152E6CAFD034B57ADE1A6A0E0E35960E0EA74933AD35D330189256485B696DA09636364C0E4F4C359E79B6FDD89AA7D73CF98424CFF8C6E999C95E47E3E88542BAC8832F42E839B5CB690D96853054043CA6E27D18C7A26984609569AB3DC6F0EA4D7D5EAA44BE1CAAFAE0830F064B8C22B72B6C3FDB3DC2912134245E50016F0193311F66C5EF08703BCA5E62BB7C063F6DA19E3E54D85B675D438976B6208AF3D6B18220DE06EB46B103F9048AEADCF215AA108DFECC842631197AB900E8768D6F45F9D2772D5C6C90E6552D818672C411477CF7BBDFA59D006E449F6BDF3783269A26D26B5F70FECBA745573EF0C003EFBEFB6EC7EE687C4119A2F4C725975C229FE9D4534FBDF8E28B43C52C6126CE983F99161F587C8E5B1223052B4F78D6F9241A40E515541DC06788EA8888394B39518E06D84F5F411FC460311B712E79D29985C77FCF3DF7947265F720F8F48265579F34E1B3E65FBFEB93481CEF8305F56E32B76C8C4385E9C3B1410DA45577745F4D77D177F13B1D158FBB7FB085687181C985D6C1890F11DAC08C0D109878247473E31DCDB0B619BD50342ADD1DBA73EBC2F94771FE3EC11E320F946EA7C93FE8A083FEEDDFFECDF28251C98E01576C7E0C8E197B5BC63285464959C68DC6224853E07227269C1266545A41A01CC81A37CA75CEC51E6D52D5087A77C515E4C643F0A46EDE403495F7DD622876DD42E5E223D46242096F80383BEE45F1B4C0F241C694CA13E40357035609369E6265E79B6B55ABCA2D8494177CCDFF7C5CA5EA280BD6009C71BDAAB7291D5C42C585A9A13A451D4AEFCD79F1B46A94D9474611E629600CFD24E2C08A765D313029C35ED6D3A7B7DD6E78A79DB7DBFD053BECB8D3F6EDF6D4C6F5CFB6061A7996B465B50F0C8F8C0E31D4F24CD508C09646615973517499486AF55E9A1421E83C746A597B5601673369526479EBA9EE25B726B8264A836D34939182B5AC39586BD4D266AD3E90D4060A059C34F38290B2B6B9BD6C7AAAF1DCFADE53CF6E7AE6D9E774729F7AF2B975CF8E4D7502E8E8503C41ADAA41CA927476E78C94C6CAF0F0286ACC3886D889821A81909549D9E663D310B3E8363698D691463E4C29FC10569C59D5999B74CF7F4901DB69891322ACBBCEAFEE48AE8160188927095849182830E3FCD7622FD4B34410B4B83285DD82D3FDB0AD5F1CAC9A053F57D8E1C4F6AC5C0182AB3A4E140E71FC62CE0D30D93102426F52C660C9E2436BB8698CD20A155424995731CC4BDA4BC6115F975DFFEA57BF5A9A9B64F56207D542EAA52F7DA9BE8B38A336836303E49D70A88EA8CCE79B6EBA492A191386FA28B34EA6152DB383D29C40A3409D41B44BE46C5F6C76118D6184F8D031CC355416405F902D44D12D6D080D38AF3A1866158974DC2F3244404137CFC1C6679217335CBC7193A8A8CEC7A94C4ACD76B3B73DA1BBD31BD880ACD835775E565A4AE298444B5EB5C5761E08CB8348A9461B130EFBA5AD4CD04563A066AE56BD6EB8E1860F7CE003586F6820294B39EB2E045FAC6D22E17ABE05E2CCADBAB44FE00E8B7B91EA93F2B464AE19E7CFBAEBD911FD4ECDB2939D8CD065B5B2B2FC10FAFAD67BDFFBDEEF7CE73BEE87A19F08A9F94E5552756443F440D608C69B681E36190F4B459CE108EE2CE49D8F978F7160387D3E97E5C63930DE71F980219DEC79371BA64CD1ACB924CEDFF296B71027EBCBE4C572F0FF2E071C4B58CC975A49D64F9D925E5A5610E6D6A071A1415CA362EFFCAB5FFDEA61871DC694DAB274878CB088071C8BA9D85A92322DE9A80A8F569EEEB2E503BBBF60C79D77D96168B8BECD365B27796FD3D8BA62757B993ED96C0C24E9F3392617BC164B95165F2F0D02FDB317929990CDF432FD9C420187BC5D94023782146CA18007D366BD564003EBB99CF0662B1D6C355B034D39C67AAB561F4A6B83696DA8E0E70CF55E9EF4C2F2F6CCE0C6F1DAFA8D331BC6363DBB76DDEA871F7FE2B167368CCDE85864BDE279E43ACB8608C526D41CCE6898AD566D665A6ED87239355452488ADE71C71D4C8EB32D8476D999E04CCDE6EB92048399311AAEB8E20A79446E2443A931A194B855895B065841FC910A38569369C51085A1B9EBAEBB3EF1C41370ADB3E7E18EA5DACA1B2666599FFF420813927155A7FF4AF40B1F1ABBD646FCF5D75F7FF2C92703379E3DFF7298E44664556F13C7C14806F7F54076B4CA2A9D6F992287E7C41AC5E3C12A476C39B2D7172AB4E7670B173207840B6D89173BA831A902A0301E4F2394B1C31A939A02DB02AA486F72CD989B5E934E2B53D28A56754E336BF11E7BEC313F780C91C77781C810D480B3E96C0B5DFCD24B2FFDD0873E84EF1B73A3CC7F289E45B7D0EA489AEFB2CB2EB2457EFAD39F6AA5D88EFA0C28655F1F7BC216D5628C488E40C632C51771A823E6F8D530DEF7BEF77DE31BDF70F953527178B95993C5740C2CE217103D2E2BD23B9A878F7CE423DA030466B98B1B73F9E470B039CC1C1570D7EC40C640EC21A9D8B5B6E00123559D737524CDBD87C1751BDECC0492AA711D366AD56C12B7DE7AEB11471C71E699675E75D5554C26C6848D338D10826B6FCB3E4736CCF54443D5BFD9D2D97DA2CC64C94F89426914C9087B7BFA3C52A32F6711AA5EB676CAFB96DEFBC1E2CF4071ADCB9D77DEF9DFFEDB7FE3F3687D82070807D2F6B8D7943319051D2A056C17FF8F7FCD8F3F23CA39A798659224C0BE38D749C54A96571568216A76699560F23EA36493AA73CC1F54C061AE6B553C785E126C75DB79AF3DBAA4B5FBEE3BADDA7BD76DB75B29FF70747848F64FBB33DD9E9E29A272DDBC88F1A66D72CFD2C7DA0CC6370C3630986ACD460D0874B737297FA7D71DD3670B087468D7D34201177AB7564F06B54F92562369D4F3E2CD46AADF0B244AAD5EF65D68D61ADA78A3493AD8CBEA5996E4C9B02663AA3D3C3E1926DAD3EB376C7CF4E1A71E7BF4E9A79EDDBC69E3F8C4B806272D55EB65B3E70E41BE61C3E6654B976CDC38A67D45B6056FCF492EED4370F2E82DD75BC6D6BC839D46509A7E80E4A0F3FA64B5AC1A9861C4203267B11CF0827AC1174107E755B76F086D407EE11FA268B4C9EFBEFB6E78E8309149B96EF9FA680A94374910F7048A41F859D5A291370958EA5B898DC4CB2EBBECF4D34F27EEEAEE780C1D47101FC2474B368B9E815242E48E55789CF28C93012C46ECF1F4D935A12213702B189D34CCFC2DCFB5EEA8F148FD1835EEF8B97EDF6BAFBDE4B785CA22A6403654D95F4DBDD6C3E568A06F8E3EFA68992A00C7355A67AF5FFFFAD7FFEBBFFEAB0BAB42E5F9E511838F6BAB38D8AC3DAC587818BA3E8A332640EE5B5A7D0B2098DFB7CBE5EC859FC89EA57307A6D7E8F3487CA33ED7277E690E256701EE1ADF8B2DA5017FF6B39F3DE6986334C8BFFAABBFFAFEF7BFEF4E2371E52BE61A4E89E1F106AFEA33BA3EBCD9AE8A71791857BBFAEAABB51BCD3B66E648CAC3882282A6F1098F294817DC2431AF4DA80C141ED0591F23ADB0EB01BBE5158F34790AD47FACF02873EF557DAB92AA96BDA8F32B35937B66B860A66FFEE39233CCD9CF7DEE73EF7AD7BBCCC5C65172778D506208B8A64382E6C622191F7B037D48D138949A56A4BB71D20BBF90380A0479DA0F71198F318F54C402F5B0F1E1A74BFE7F9421F5ED5B143047062163A84B88DAC3B8AC31AF1A2DFB65A85A98EB1CF719250B2A6057152615EB1980F0C1D650C9C4372E05BCED76CBF7DF7FAFBDF7D96DC5CA25BD76A79769F34B65A6727F35A29025D353ED7A2B273E59A2D3DB941B48310FB58A70C5809CD8C146A329AD3ED3E94E767B3353935AC74EC867E401376AA1D194D22D7474DED26191DECD5BCDD06A268D66DAA8957D16927A2FCBB35E2349A5FE97C809EEF6B452A17099EB2BF3B06226ABCBB39E98987A7CCD338F3FB6F69135EBD73DB77EC3FA894E5782BD4806D74A50950E2BE0C1C9093912050537A93733DFE9050130362B0189B3CE3AEBB4D34EB3BE319C564BB6F3CE3B4BCCC240CEACF2BE6B6DE255307932712982947FA402EE0B7D872879C1B79CB772B5027BB52F9FE5E6758BED4F7D1142E26BAFBDF6C4134FE42ED75C738D6CF1071F7C30442D11B9204E20705DDADC155FC14799FF02D31BFF3394CEA2410DEEC7C42C10D2C144656B922440FEE29223AC4D8C194A2729E6D637C983EF1B17692C384E9C157DCCB14147A4911A5C9004305D11A5D5481A81CA267C2F358F9840CD2425321C551AD75992A5E018E37EB9F81225411491B6F612CD9C7983A87541DD4B66013D09CE38E38CF3CF3FDF053031B57D32171DED5F1C5A880B039C338E016E49052C64A2E23A48EB2ABBDACEA5214CA5FFA4653DAB80778E3CF2C87FF8877F40B51069E08B449C386C260AFEFBBFFFFBF7BEF7BD7195B93C3942D364D3DD7CDE016D4E3832D4C5D971A83F44EC92463DA04139C3175E78E1273EF10988695C11885EE179D388AE3C8EBBB2D036C0634BD19D71815699898CE3840FADCFCB153BE79C73987FA6054B085FD64AC8629D8310AFA33712FBD6B5950E85F92C987CCA3CEF0649207A9C13E96BF96CA81713129F6E664372E4965B6ED1C73892641F30C4ED9A58AC848AF5C9991A669B27425F6207CB1A8869554214DFA322912814F072C7FCBDE763216898181B86A498A5139112AED3E776838576D82954E6AF0BB8F93CF36932137B2D05896379104BDC8C7ED5892BA6314D1A9974447762F98AA155AB76DB69E7AD972D191A1E1918196E5455E9A53D92546236C9084E92AA9F2A5F05DEAD88271709ECA181963CDA9074BA9D0929E0F6E4581E3463D36922D3B35D107414FBA2D64BB50365F4248D5A56AFE5CDC2F5D5DA974C594941FE2C4D9A87669E0FE64933E48D6E7D246423596F494886EACD4696D7366D985EBB6E7CCD9A671F7FFCA9C7D63C333121959FE3B3C98B6E35865CC913238AF592AFB2DF7EFBC90F01FBA6617FFEF39FD761A71196055D1F58CF6A3576CFBC55B8D181071E78DF7DF7911B36CED4106B963E8BBAB8CE87F8C5A1E9BEEC5E52D57C2FA6EF1032D9DC1620DE90AC9AFD01288CF48CDADBF6396DE1D956F0AD4355CCA60F13D665AF2646C9F6BDF4215D0B89607F2EDEAF3E061C21C41378138057085F44468CE347FE7265363A397C2C147C11466546D0BE4297F875D45147FDF0873FC4A3451486920CCB143FFAA2DC68FDC49D757D946E016D6FEC18251525080F8BF4871B12EFADAFAF91EB35DD0F84BC85972ACE7FC7F539264FB67FE9C000FDAD6CFDC43A385435C1B6F20C96B12CA3D702B10ACA8AF84CDC3623445111DFD7F1F0BC629D24F4AAF10082754D5156B14D61C48588ACDB17E403CEAB49E012A0E64F98B72E058E4FC5FC66EF712D694C5BC16529F86643E2B185120DAE936C3B1AD32444F9F5BCEA9514DF9AE2635D67AFBDF60256C6181CD72174A1E9D5177910F2E59088D925352E57EF48955A16D83F4361203BB422F274FFE7FFFC9F6636D5E07FF39BDFE85B2EAF4A2202F77847D97689B538BFE8FCEAD6B621208E4773B3DC9602049CB8358DB33C217139409F20C3A7A133310221A6A770F9BB0537A139243884A38E39114FA688DCD1A37CA1CEBB49C52DCFC98D6369CE1184CAC521E28255173394814D61F3C711113238A6EC20CA4534A2F870D64B92D946F77941BAA1EB2485564EEBDDF6746B20DD67DFDD0F3AF0852B568E66DDE9B4960F0E50E6C4E9AD5550A082610A78A91530166A413459AFB79ACD965CE1824FA3DDED4DF5BAED3C9B4C422724D25233ADA68CB67CB0D990571D1A458D9036752DE9160AB88C60EBEA3C574F37CA24B274C607BA592DCFEA93D940A3B6AC51DF2AA90DD51B2D4D831E7D6A227FF2D90D6B1E7BF2F7ABD73CB776D3D8660D46122014B645DA8A1BD079DDF3A81B92B65F5A520FC57166930730D549D9C3C014371861C618D2E08B9C8BE6FC90430EB9EDB6DBD2A8AB8D4519D1B23E3627EFCFF939E00515705A35E59BFFAA452D92E67FC6014EE7F5F80C3C8366988FEB95C35C6C07BE100D490F3FFCF0BBEEBAEBC9279F841165E1576C843AE0192A3BDA91CFB85A8690825C10797512553A9C56547C86D86FDCC1580BF0D18F7E54769365966BB771E9EC95F64593FCA21E8BBC85ABB64D95873B62CFAF2FD0E7B070CC01E44C922D68F607784554145736598439C91C8566DB992B005D6E9FC9E07004071A0E14180B162768FB7EC6341DB1D9EEB2164F94298279B9D56098CBECE1940CE602BC0DB6033C33B6346B55EBE5BEE65412E8925F869B01D27EC73BDE71DD75D721100DDB4632B25E5CDCDD30499452C7895916D70910C04177D215402F5D9027ED554DA0F54979729FFDEC67F1D540D4E3B1397E557927B3E9760A7079965D76D9E54D6F7A9334E2430F3DC479DB7BEFBD75CCF414EF7CE73BAFBEFA6A93CFB97B4152D26B4351422310500B71F884C1030BF0BC618799391C8DEBB3C045586E874656AD5AA5878D417F6945D21E2A1C2991A72499E5B9E3D9899F0330C4D7873A0635C6314151B1875DADE7E98A259DE656B6EF35D75C4303AE5061E2624A1367EB311ABEF5AD6FC94F72D829943920B8A5FCC8AEEEF59EB7ED65A5DE8D7AB2EEBFFFFEB2B498376A5774A997BFFCE5FFEB7FFD2F82FF56FF04395DD9E217F8708DF00D6F78C3CF7EF633CDAD0D74F044E03C661BFA9627A06C0891CD36ECCBBBCDBA36FFD62F7BF98BF7DB6F555A6B4F4D8C953D0F0A37B4B263EAE583107A996D5147931B4AEC0A9BA36C3358E8E0A2DBAF547C41BE5104B193E924EDD66AB203BACD5636D84A5BCD9A14706D206F35925A5DC398A9CB1B6E686FD12A292BA89E354B254D47BB5BEBB66BFA7DAAD31A1CDA667860DB7A6338917AAD954C1DBDE6B3EBC71E5FF3F443BF7D64F5234F3FF3CCBAF189226C5E68D6A459368198F537ACC03C7B46867A13F6F1D422030D760915CD1FB82A87915C144010983A4636061C004626396A15D786F56D4BBFAC98FB0CB8C5F49D75EA82DAD7201504357E941F4DFB44B703A5E8C012A3F5AD5DBD122AC2223CD83F9098897D1A0BDF308F70C3E95BDDE3C8238FFCC217BE80803669A55D2B7B6C78F1565A06DA583331E3CCF51642D07EC2984588334398CBCCB7A1449FE2B382E70C513D833DC2301714A38B80376143682AF4261E83EB23DD709EF5C06976A9B15914DC45D21130488528E4201389B0CEE6323AC5CF6EAFCE2ACA9F81508DC5D2B05FF5AA57490CC9EFD7C84987CBBF79E08107DC9635CC651EB5E70148812344D12D054526CD88F72B71334C87242AFB768C51A698665863433463A5B9E107CA1819ED786FDF12BB90C0452338F4D8CE4670A086C1609389D74D3FF2918F4813B3EEF9DC7669BC628C025B2E9444F3B214E3F82A1A021E344D859E51FFC442C77ED2E3D87D648DE4519D7AEAA9A79F7E3A17C7B8B153257B452EAFCFB063C2209F69281257DA1814FD96B7BCE5EB5FFFBA6C594C6FBC61900A21229FB176BFFEFAEB35065D6A7ED4D720091C3EF8C0FB96389DDBA1DD2FAAFBF49850F7852A390279087ACE66B19E85DA0AAE79EDB5D75E7AE9A56BD6AC612431708C6D9C569DD52D139D03E64041E6635441886A2E42E597906662F02EC7DF669B6DF0FBF956DC990D0FD8E10D0425E9A482CB3A09CC41D96157FE65C90AA961867C971DB7DE6BD5EE7BECB9F3CA15A39DEE64AF33353C32D869F72A6142836A37F3C9D8F0D6BEB39D884293672C83C9BA4B56326175EB69A180EB6947724BFFC9D51E68A6C576196CD71BA19EEA29A66B49AFD928DDCD5C0E719E053D51E8F642BB13A667349F450EB8930F0D0F6E3D34B46DA33994A749D15638C8F2181E1B9F79E6E975BFFBFDE3BF7BE8D1471E7D4A27B5D12CC97D93963162B1FCE1C41903111F70D2F0C84C19DC58A81CCFB422F66711D38A9DD7357E168F6080F44F6A4088E1718598A33054D9965848A673894B4314F10A73EB3C177BC5FB9C4F127FD5D8CCE14860950ED93C11F4C0DA3CB2FB65A087AAF225AB18D692A81A258E16F0E00B0FC85C0146F490D93529FF1E7BEC21318D6F41D830540573DCD88DD689BE62F1E9AFDAE2AEEB77AE45B7834643EFA0D45DD4E42E7B0B8E139918076643D52F81F8920F731261ED9C7E0074664C87CDEDBE2531DB8B69AD3000C96733CB5873268E2622AA278A1B09EB9F50869AADDB8212556794C7820F8BF34DB4DFB691CC461AEEF691575377C19BFAFD89279E90ECFE977FF917DC716F5F074E5FF39AD7DC75D75D5E7DE7720C700B0BB54F479D6B185FF9CA57FEFAAFFF9AAF9B7C515F3CFCF0C3E527F5A55E5CAF12A3F6E2C21E54025A764105DCAB3A644815D1A42FAFA843294B75229F15372C88C8B34FA38BF1B3AA1391F9E5F1C9244DD8E40E1B801270369D134847267632DBDE75B47C46EF531F9F94E5C272B2BFFCE52FC7968DAB2F38264EBBD89B04D5253D213BC34929E73B488F190A8747CB50695D75CA29A75C77DD75788AA43FB04B60893226DCAE0CB5D7A028C25C9E6D97531B9CC8A4B920C262B75635A722F683F7437B092DB7760E37D58679F2C9276DDF23431654C046996AFC9AF3B7BEF5AD342DC689B74199545447B17D79C00107E8A6DAE47D05E876C5E047A425281C7324D18B4D38AB80A5FC68A73323ED2B65D46CE52F3960FF7DF6DD73C992E152D4B593BCD36CD5678A9E10B392274DCA5EBE019B3EC389C7FD60D5CA7DD820525D1416D5D3A2D351D2D687D37C4ADEB03645A3DED603351B050E4BDA361D9C6AD4E5CA76F230932685175EAF950A433FF3340B891470A79BB63B69B75DEF664911721A583A34B0B2D11A92B66F7743AF3B18F2813C6D8E6D9A7AE2F1E71E7AE8F1877FFFC4DA751B93D028C457B7881FD8148B0FAF2BE5C2DC641C9613AE1E16303296CA4942923A56886BB744F3C299D386BBB8394A2C24C33C9F211E582DEACDBCA04FBC05053CDFC48C95B7AD436D786CD6589449FA211E258A91600EB38508336B88891ECD10D464CB0322542BF10D11528C6F9497405D9DB51DEE0B7A1A116F562922633C03CC595A30DA745F71C51532D2DDB3DDAC8484918DF6DAF2389D928CAB63B1ADDC6680D72B5FF9CA9FFCE427DA07F0091C7FFCF1E79D77DE6C9A676E08823B7EF4A31F95C301AA0D494AB9A7734EAF7BDDEB7441DD4546FD65975D86BF8814839A202959786233C2C93F13E95D7EF9E5679D751600B1501634FFFCE73F0F8BBC6089D21DBFF4A52F490021BF686F6E251427956D82BDE4252FB9FFFEFBD19DE833EEA87F1238C5699062F8BBBFFB3BE22431E7B3F147A84F8B5DB76720BAC09BE8E0983081C0A6E18E3C3EEA5F7FD5453493B7DF7E3B63735632C4BCBB51085A7B9D669FEF7DEF7BBFF18D6F98421DEBD2B8770DE9BBDFFDEE21871C8224B507EC23CA5AD82C251AC9B091CE7628498ABB568A7E413A8D3CCBC5175F2C6F1B7B910E0DFAEE09279CA09545AFB01CCEC4435A8E8E74AC8F01A08D98678AAC628E1E2F476C2431697E34DD1DDACEBC22DB72AD9D993E43D52194F368E08C9BA9ECB0C30E3213EFBCF34E67647A519B0DBE2EB1B06AD52A792A7D1087B8A1675C37EF50398F865C9649013738297CE7D2C24221E8AC6A3F8A0DE1920DAF917ED7D568AF091692701F690B9C3357AC39A0CAE4B0B82F7AD18B34FFFAC5EC78858D98A4254945A1808B0D984929EA5BADD1252D29E0DDF7D8A5D9940BAED9CE3B3313EDCE74AD31381BB79F154EF5CA8EE9B199C94C3FEF39A40D083DEA451D6FC14A553050864E9215741C6922413ADDA8771BF5AC210F582A7D60A6D1D461EFA541E65AA76C7A98EA4B85FE4DF48B7CDC5A3793486C74B346D64B3BDDBC5E1BD6BE6BB406421AA6DB79AF33208B6E607074A61D366E987A74F5B30F3CF8C89A479FDD3C3925152E051C978F7B73B2D94CE7C91CE280B9B803BA219C2856DF53ED923FD27646E438C1AF05C206256CA9A5A485917E4736C6FDDC8C430A51EA90331E97BCC719D92D78C0F93CE07DA85284925A8CFCCD6F7EF30F7EF003CA1FB4919009A14A1E99DC3E0E7D237EDD673D7ED8D9DFB7301A0926FDA2332605492596AB0B7C09574C1B32C73850A2F87F480D92A3F0CAD299DCD9537D456AF8DDEF7E373425D8A4D9428C957D2F12B18E4EB8E8252F61DF263B3432C80E7DDC02CFB748E662B0FD8CFA98A682AA737BB440F031E54861C6756C3062226ED8B830281D7AE8A1724365044917C61869A68B3CF1969B4F38E24D4D0E85C2AE1B66B6F5136C4B5CB16D8916E7D4F7D9671F7D4C173CEEB8E3A4C9F4019C5792AC14C2BADC3E8602DAF845D899B5DF17D7F3BAE5B0D614010D779D498B5EFBDAD7DE7DF7DDA44BDDC4C20B04AC7A3110169B4717D4F8EDEED0938A100BDB8C79C060F2998C57D96122AE6F3413D39B567D329C2E99CF1C624E4478336C7402F123E410A791F896AFC37D9162320AF7DB6FBF7BEFBD97EA2677EAB567067609F63133A991BC70E17F1F47B489CA6920CDAED698B5B8869AE3086288F85CBBA973DFA1E83BFB714DE78B5FFCE27BEEB9C76920C34F5C0F6DAC1F8014FDF3EAABAF96A5A2A142E90348A28FF9C8F77509781ED592F9312D7CC9BE633410BE0258B0200687F9715199AC37C08666CE29EE9BA4BD2CC797ED95048EF2F3972C19DD69E76D56EDB9C70E3B6ED368A48D7AE865333353DAF3EDFA40CB407B5D1EABA5A49AEA24159AD2BE414AD258FF9B97FC68658D58D983A15DE674DB59984893A952D1E68D52D7D65B72D06B32606AE94C2DEDD41B1A59283AFDA26C0A222B99AA8D900F66C5CF46567471186C34878BC0552E8119B27CA4515B562F5A320DCFB4EB4FAC59F79BFB1F910E7EEAC9B5131353ED5EDA8DDAC27A133A4414E686FD7971F6658C9E71C6196E6D6233D7EA73EFBDF776AEBD56B51ED267004FE8C04A3622555CE1E9A01A41475FCA0157632C8872F1BEBF1E5B720BCAD5BE1CF07C54172F3A917BF36B0C1A27B9153A08D0F3AD2F71E3B8261598BAC2F375F98B9903711781DD77DF9D864A44C690233AC9306C48EEE8AE4E1DC5713C377B7AE31BDFF8BDEF7DEFF39FFFFCD1471F0D5C054016A52CA627D432BCF39DEFBCEBAEBB740092AA96D438CCC514928B103C8996B6315508F3A2BBC30ECD3B1264F26EE7D7E3C6A965C4312D9A87CA57CC9848EA48573EF0C00363B795DD192A963B47D50835F7AA2E0BEC12C9DCFBEEBB8F3818293D23F8FB7680FB16DB69D3AAEB17421C205AFB3AC3D0C640D70416AB87C545430BFA467171BD564A86828D4D6D3B081F92AA174AA8923164730D7DB4363208BC57B521F3910851EADDEDB648EF21CAE3BEC8C6D63AD4C1D5E24684B1B241F8CA2DFED297BEC459ED96BDFFEC9CF952DE2ACCB90126C439E1577295F3EB5FFFFA3BEEB883A83EDE1BC45BBAA3A4F611471C71D34D37B967A503397C17B80394A2BC49D8C3D4D6A1E2C6E2E5A4002F8CEB38DF498C979035EE20B17AF7000D15A795E6B35632E0C75104A495ECDD638E39464FA48D8DBB1F17011313A29E27EED950AB1A2D6715D99CFD5A1EEDE31FFFF865975D86E99C57CD2BDDB6C85E78288B851C8BBBA87C1947D6C71416E72FD0B24821A6D17AD7C60DD553248942C43192579C740472C2DC7A3C67823466286C357B1098177E7FDA28CF6F495C5C74B1CF244297AF58BAFFFEFBEEBAF34E5B6FBDB256CF3BEDA9F1898D79AF8062142D124A96E6D26828147CA35EC85C696E47A466E157989565F2B6D4C1E516CD3ABA4BD10DA95B68E23C9F48C2649AB49B0D89BBA45150724CB59A69B391A5F599BA1473232D9DE65E3D2DC3B021CD937A51861486CA660CCD5653DEA174ED909CEBE94E7BA6AD9DB06C6860EBB4313034B8340DC34F3DBDF9D7BF5AFDCBFB1E7CF8F76B366CD834399359CDE4734BC663E2813037928FFF43EB4C4D66CCC881586303E8BCDC7CF3CDCEEE19F4C341DE65975D64AFBB7ADE3D58A1BE315ED26D516C75F529600CDF78232D8866F0F016FC2B8E07A4EB126BE61BF99BBFF99B2F7FF9CB7D6491BE571A7547CDA386637C3E8E5D2DEA011B738811117BF7FE8C6B312D07DDBAD99131821506BBE2019BAEDA86000B80290454C4E52808F12D3092B8842B54A656127162B039F2AA40C8E6522F6A3A1B73AFC455CEFA136164884BF4F3AFFEEAAF6EB9E5161E0131E439610740DA4282FC924B2E39F5D4535D06133FAF0BDDC0AA58F43B79B6D846612DDEF18E7768F989F9104EEF552D9B42048B9095138BF2D8C2701D2AEA84B90A953B182AFE674010AE018BD580139CFCFCC217BEA051B170406F646C4991531A6E4A39898756B335D39E191E19DD3CBEB95EAB777AE5CA26A15516C9146E8A16BDCC62148BD5CBD8DF79551A8F4A80B01AA1891B04CA09451EEF01661E2BC1A6A19B8632CFCE9EE0055E7AE9A5C71F7F3C115A4EB26E21D572D6596785A8A29A828A0F7CE003D75E7BADF13EDE0F962FBDAACFB4557BDFC977FAC30CD28677F2B0AE9B0C55D14E9C24D62F279D74D215575C61E38CF385ED5B8B5AE1DA9B67CB9D73CE39B4CD9E6FB3A7D5CB3420360AC9441866E5E89743768845FF3566D8D7F02EBFFCF2D34F3F3DAF5A086B4274D9238F3C52160C27880DC68664990C66D668CF3CF34C9B351855B2AE08B69F76DA693A9B042AD9BD08166C350E6C9CA5EA1377C9DCC24DDC62D24CE5E216048FC56316A9DF5CEAB1D90A7BEEB5D3FEFBEDBD7CC9D2254B8B160B9D1929D44E591054EB961CCF2CBA29440AA992CD2AE0746E837AA9CB62DF74F3AC27358A7FACFFEF84A25F513709F22EA66AA926B6333850B8DAF57A22D5DB6C4D173E71AD5936696897D9E2026E5DB629AE170D91928290324D9A997CE1C12215D60B0509977441ABB964A0359AD6970D0C2EA9A74B376CE8FDFEA1277F7ECFFDF7DE73DFA38FAEE98506830FA50B115BA861214725AF18055CEC2B3D4ACD8B959F112AE4476A15DB33E29D3971236DBDF3FEF7BFFF5BDFFA16A56E8BC97F5B9C943C1C76D861DFFEF6B7A5BFB914023F8E34C43195D821EE434B2555671A0774D9C00466CC17D9ABDAA27046D8A8A6E537ECB18FAB91FD807C5B5401C721F550B93BC45169D24E64DC42C40A18FE011498A506071207C2D613BE2335395A36B30D78494CF11A0751FB5EB5B9FDCC5DEE196BD658B1F5454DEDF64128416ECFF5B89E77090E1D78576BE02E38EB1697183AF98AB48D3942190FE66152B6CB350489D0313499A14ABD2FF8BC86B341E3C5802595CE3EFB6C8B3FE61FFFCCC4A27D3AD80CA54E0AFA824945E414E6DA613E69C6473072D0737A6A1B4FACE3BEFBEEFBEB5FFF3A96FE85180AB3DD7FDBA5DE4D4BBBB870DF8706018516925D3F4B85AD7B4D4D4C02F6369C1EB1A88B4815693BEDBDF7DE0F3EF8203BCDB2384647FBA0862A9DEC5E9021C2CFC7EDADA84A74EB341934E46B319E5045B4E60C25C93011CBBEE3C38B2CB2B6BA4645BA2854B436EC6A17BD70F839BDEEF8E49C19F99A98D72C4E0478454C146AC18114B8F0C20BB54338F6A41234D5EF79CF7BBEF8C52F9AE2C0CAC002A8EFD46821744DDDC84E2A273A2E7F4477E6552D835E9FFEF4A74F3EF964049C73C0C60D30E15413C5D290217140A04FEA554CF29A4F4921400F6C12A2EEA4D5C35C64BB97431FB361AA5F3826E486E7E32E59B8B97D1A8ADA9D822A39C8CF2BFCD2E52B9AABF6DEE305BBEDB874647464B4A8D993BE940A05F4DC0B1D9202B3DBBED4BE45E8A2963A9F1D2BE0AC5668DF424C974D923AED5E67A674E0922C95D39CC8E96CD78B52E07CA0A5C9A9359AA1DE986EB43A052C2BD5D8925A3213D2190DB0381D52C0792D49079274A856FC6C165F69D55B03DA7879A7F8B30CD325ADE668ADB9B4D51C09F9F0E64DE1E1D56B7FF9CBDFDE7BCF2F57AF7E74FDA66954057AD7BEEF620A384666DD70C30DC71D775C885023218AF1A6F39A815A62C4925CDF9200A167DA169AF1C403D0F0F6DB6FBF5FFDEA570EF358F76711E5DC620AD858071CC850516730543639D252EFC37E63BFCE1D2338747CD86115D7D68232E38BCF9F9AC51ECC11A750B134EB25974E87163229E0246862FBB86EF7861AC08BB29B627B1F92FA2F7DE94B7A9F5E0B316A31AE265C8CD3D8E3A466836221BF6F3C5EA888708951B34B1C58B389101F54BE8BACE7883AC8801AB6780D113A94F526EE874386B0463F8579ECDECC2D4EB05585BEA56D77F0C107DF78E38D0B3EAFF7BA7724292E2A5588AB1B816230CB7C1D4C920CAD66AE09838131D91CE40C95852819A72BFFF7FFFEDF7FF4A31FB909AB54A07C324D8B94072D725D3360C242C090FAA59114C9F29D641D3FB27AB834D78AA5E9761A65BA8146DC1AB626EAE28B2F968B36335534BD27149C57748956AE0421F1B9016EC4681D36BDF6A73E60524FF42871450C41C73099843FFFF33FFFFEF7BFCF824AB1E98BCC83AE2347F3B2CB2E0B51838D98C42A9E5E2795E5377FE6339F81E28E3DA021E99A471C71C40F7EF003DEB76DC705ED50DAD5832FDE5D9F356C4CEC34E29F8A7346FA79DD75D749089AE48B3876ECA3E88B482B543BCF98CD23F0638ADC00EA6FFEE66F3439B3818AAA2497F0B2F1D8F807842229F39561A43FE914E8D6BAA029EF938AA28FAF1891CEF462A01B19809F71EEB9E77EEA539FA2C0DD7965F78A064E88E6662609549070B5C4D41830EE6113CB16624742E584E77B55A5B5B4D1CBB09632E9BFED77D86AAF557B6CBBCDF2E181C152B185AC5B28CFA49C463C601E870385986AB49AB102B600E99585A38550EA163FBBEDAA8972D11E49DBB857AB678D7A6F70200CB4A47DD38166566BC8036E4B01D7EBCD5AD0399D09C98CBE4408A6E0760ECD5A3A9814ED089BB5A6F484BE584BEB45D30529E66663B45E1BAC4907A783722B368FE54F3E35FEC0038FFDE7BDF7FFF6778F3CF5D486580187B9AC2C0BCA61DB4CEE04C3E18A63A8B1B98319A465C20D407158025BDF6FC1FD0D1108376E241CF7100B91E36B70D67C051CE6823DED70BEE635AFF9C52F7E81C18DC4B3611A47D4F88A3DCF50FA7826143AFFFCF33FF2918FC4E49236F7B7A48093A841AC1FE0C52F7EB106C4F401018D23E09665065F305637C1A508C1083714ED8E3BEE28D1F6E10F7F78F9F2E52C4936971A8913BEE0380D3EC25441EB80E9F5E009836415F1135A30A9F0D8183B0E0EC4103BBF895B8CE48A39997DD938CF8F24C295212EAA3F49709F72CA29946C33C8924276D29948CC05B6DA7C0EE7BE0D670E1ADA3BC6FC5C69D55C5ACB6F90DE822F4427211AB920F7DF7FBFAB54F117E316310E2AEAA7EC837BEEB9C7FD0C928A8B7441AB96FD60C8DBF4D4D4562BB77AFDEB5FFFA33B7F0C3196ACF1A5CB96613FCA1F4CCBB3C4778BD8516736AC9254DD41108BA03F6806AC0F489F7DE52B5FA1E80BD54B4603AC69A8A2404945A212B33118E489E0A06419256DD26F8C15735FD0882254016170BC217268AC89E9ACACC727B368AB8E7E506CF5D8E974B04183E7D4E8C3871E7AE86DB7DD8667E9722328352CA1D8515851BA1459613379698AF445DC561F5813537BEBC62377C527C15E3DA92CE68B2EBA88241CD207801E413927BA6CDAA75163A250A2253460C24EC4C908A7517F4C08D1090219FA175C7081CF1AA4FFB1FD0AC40F2A53EC33EEEBDCBC3EF3894F7C42FE37910C8A831D15C00336DB6232AFF2B04F7053CE5BCAA522BE3B3ADADC65D7ED77DD6DC7ADB75ADE2C82D3A57B5769D20200DC9946FEBAF24AB72E721665B16CAC8099F64ED629132EBD52FB76668F5E372FB3CEF2BEE5EF1635480383B5A181BAF4A82C9C7A530E71A1801B3529D4823E3A84E95E57A3E875678D06E9CF963C60D900A13E5506CF535900CDC660B335D2A88D14AA376D4A4FB73B8DC989FAFA8DBDD5ABD7DE73EF830FFCE6A1279ED8E0867DF1617176ACCF7D0C55E021E65441385489F0596BC6BEA905085F89AB4343D4679A93B8989E62F36711FD6A12D1247B33C7699DC514B0DFF14ED63F6DFFC50D462DDC9208486FDF5AE6A61E0744373B969A6607779DD59ABDDD62823EF6D66365C3ECC4052A140DF74166B035885292AD314617BD0BBE3C946107780A99357374C8427FF0C1076912D7D73FD82F0938F7634707C7B68F9FD9693927DB30400C8421229D478482AF7DED6BEFBCF34EC99D279E7802F10D3914671E88811140B69E6246EBB83097C79458B9E28A2B9C26BCFEFAEB4F38E104DB7AB42FC5698BDB30C4AFB8A6451305C4C62BCDA262784ACCC5256B7D0B1D5B6A1A9E6E97542D2AFB5265CECC994DC5EB89848F0000FFFF4944415487041F51F343EF5E7A42BB2134183AA28E542895443F058DF08E3B17D1E30292315C54CD4AB3D5CA885FA15D483097EE4211F9C883FD54B70371A50A19443DC8E9A79F7EF5D557BB76DCC7DE3BCAE61489865AD57E20CC2B28FCDCE73EA7457119CCBEFBEEBB7AF56A021BDA848443E172D11E9047F89DEF7C07372E8F0A816221DEE760E9A1F52C68883800E3B30D5619DDA6E93DFAE8A3A58AF8625EB22752F5EF8B842A9A8D8168143AE9155DC7ECE5E62707E986216873A44FFB5AF8BA1A1B91AA7900EBA4CF9C7CF2C9DACF460698DDDADE86FE79E08107DE7BEFBD717FE83EAB911C04D296A34A44C752DBF97E0EACDE212C8FB1054A83EA09F764A37A8438C117BEF085638F3D362D3BD5507605EF470C908951B2FE2544152CE58E628D7A491A566E35BCEB6E3B6CBBEDD65BAD5C2697B2E86A5FF4B52F7836B2D2DB1E9F1AC77865247AE1FD03A0ABCDED915708875E8F8BA07D8B5E0E95E75D04E4EA4919764E06061B0312A2CD5AA33E536BC8B49A6E15E8EBB20638E92461BA142DDD2CAFD87FA59D8BA87733AF4B026B4592C6406B6870C9C0E092667D695200B5EA59AE496B4C779A93138D354F8CDD73CF43F7FFEAB70F3FFC2C4910832EDD35C0E22B9E3737190B152E354459BCF82038E9A32DA155931C984FCCC7EF768BC3E25530D656A1B2006208BD071CA26CDA820A3889EA82FAC2D47E52F62D3AAB0F14154F453C30AA6DE9164AB885393149C69672C0B6C7ED44E6257BB3DE77C360971839E4EB50BED90A21AD3EE38C33E402B2ED2CD36365293F586AC01EAA697A62376BFEEBC8238F949A84549697A48C6E27BFC42334651AE5CBC625E9401E7EF8E15FFCE217FD08CE5121BC982CB41D38784665827EECB82C6AC0871081805E1B11FE5B824BA6D963F65D40E9280D4E4CDC8C61C1AD26F9FBC637BEF1F6DB6FB7C962342964BF44ECE7B795EEBB66565149EBF79B6EBA493ACC72D9E4357D9B1545AB8772E0B1CF24345BB87D5FC7095974397DFF1F67EF01655955668F9F1B5EAAD4D589A69BD004414006C3B89419E35F19C338328A230C82840583E42059403292115092C8888220BA049DE510465D66C79FC240C390A1BBE986066CECAEEE4A2FDDFBDFE7EC77777FF5AA5E09F356AF5E55AFDEBBF7DC13BEB8BFFDE5AA67F552C3131C60EB4009C003C2B413148D315C76D965A79E7A6ADECED4D79257D63977A62850BC959613987DE325026423BB3000AA072854AC0569C55844C459A2BBA9D98B0DC1850B8E2FC603C52CEE7E4A2B370DB5EE020808B720FA918E970B645B10524248081F2E60A3D84E702FEC58061828BC601F5C7FFDF5ECACC7A849629A6D2BCCC594819A31730333B8A718959A5649D3485489B188E16BCC1E762CD96334B6ADB6DAEAF9E79FA7794A6354C5277847B0648BEBC65E65FB704C0B6B9CA282DF4042934163E674A3A23BA40BD6361E8788EBBC2808B436870B06E5673FFBD9DB6FBF5DDE98E644E60E81879A25B9B97981409C511EB63B94F8795A8A162F59B8CDB65B0C0C54E70ECFF1EA370B0E6B3BF334CC210EB1A1600762B89B48755A0656013B9136B850C3E98DA13AB46FAB1DAA3F3C22DABBB1E1ECC4255F6A0C7FBA1C62DA2D1F822E7B3A0EEF82C72E8A5B91AB43F562FB7B4475141C03CFF69F462E69BBF55E01A71EEAD8DF3F54EB9B5F2E0D2671D947AAE34A3B2B375A7D8D66DF9A971B0FFDCFB38F3CF2D4938FAF52EB141AAC2CB624FDAA452A71EAC48A2FC5638B48ADFFC6009BCE0BA5220B612C7B12535794CC76BDA6CBC3AEB0AB829776780AE8F652C0F2ECF599B8286A256135A34A346419FEE9350F587D1C19E68989299307A88A062662A8417A5A1622167185C217F94E5E3064E107D195D1AEB1BC74E24BE24574203DD55960F16563512A787ABD3CDE1FFAD087EEBBEFBEABAEBAEAE4934FA601DE6B909CA324D0E2B376DEC23E997A61A457454DCE943A3084682FF8B6B7BD8D989A830E3AE89E7BEEC1D79F7EFA693E146E0193FF2B5FF90ACD73153B7213281C4120185BD9C818D46662C212231457A5C4BA30A5D3B1B27A29DDCB698104C4F55500C0CC2E91E718959A90778912ED5D7C92B200B39115BCF9D4347A3A15DD2A25ACDA68C20B77DB6DB765CB9689DC43C85B3533894391B4C2213C1E38F8DE58094A0E1AB516CE210F3C1D623A67F5894935A2E7B9551886C75552553B10BB1C9752B8F23DEF79CF5E7BEDF5A52F7D292FDAC4DA0323EC02B1BB7841CAC3EBBDFBEEBB6D55B72C56F97F7C934805C202669C675C41215FEC3A6A3B8966BC78351508B8C281C0B7F05D1ACBF816E32E14437FF3377FF3C4134FC8AE77455C447E3C8F1EE3F396658C0103296CEB7F5B2638E960053C689862784C5530814AA1A9224005902353D5433A6BFAC4071C70C077BFFB5DF53996E0B36969C60F692ED3C23BE9A493E06473F5594F812B63CE993E27F710C1A1587A0A8A1D76D801A60655859A4EB2B935B722119736F8EF7A77C8CE0B4C56C19F1557AAE976DB6FB9ED765B97CB715FAD0A05DC6AFB6C029C572A608C672CB0E651EC548B977F8A690A98B7C8F01BD4AD179C4DB632843F4D03B813B04E830E0EAF102DC2144D24A5895292E3F7528C6BC2356F64793D8EF04396C6594212107F9BA499ADC3D5E2523008FAE7F4F7CDAB56E6C46935A899BE28AE35B2FE567BF09557DB0F3EF8FCC30F3FF9F8632FC06F539D3ACD5FAE882DEF894DCB0D4939F5F553E2C615405D5724D7F1311ECC134F3C91DFB5DD00199F13D546574EB74B016B322D8A65C6D5ECAA69ECF28073038496A120F4923445AA58DDD4FD63B7B4D41FCE1D01A48423B00411D78438BAF2CA2B3B70A25E0F6613154A4A47454F0CCBEDC07113A549F5A3500025D7D5575F7DE9A597E25470B26811904A82D160F523B34CC5B6275DAF71B2225913474E259E43C5BD55948C55141EC4157C49ACD5A1BEE1C0E424A9E79A2C410C89993645C38436A2374CE798F28E2040D57E1D77DC7137DD741303989017F83CAB235434C94D8311EEB2CB2EBFF9CD6F7AAD0BC600D3FE85175EA081CF740006C07C3655207EC03C74C5B1ED1C76111A40CCDD78E38D6A18D72E78A125D06545D1D797C487B6D87DF7DDEFBFFF7EAC1D1D419AA284E6B20F1D16911938095C170652AE5420B720DBF0E471D0BBFEFA41FE4AE936263B653074EE1574B5A15D4A25D5ECCAACE14EE06C58A799510A5724861917C2078857CC035C16FA5B6109DA588AE860EDD88289A837EC1345B6BBC256CE10A7C827A07B07FF0F3E1F8D1561CA7476F83373311815B728658D5A3513BAA59BD24217DB8C4232471C71C477BEF31DE6C299E3202E89A5C93C08ACF9C94D8F0A49AEB8E8E748839B24C69C4FECC373CE3907A2848E11574D454454ED4C1C7054AEA812243B15A3CAC4E038E3BBDBF6155D104586D069D0D442550D9B8971F2F919622F6CF093E757CD43590069C9FDA7BFE269ACC2954AA95E272628E91FA8BE79A76DB77FD3D6A1236F4A05EC796A030ADA050132112C579AE68CC311A7520E2774BA028ED8A4D9B57338BFCD7A1EE0D67E93E71D91DB016E79E55B0EF8EC56948C2729147056F28E719CA42D1CFDDC4D625430868362F6574DA35008148F4531B4425AAE55FB6A831093B5EA7029AD796EEB725F9CF6B7F3C16636E7D53FE70F3EF8DC430F79058C17513ED4880C7A51564F57C00AFE8BD0948EA38D3CD356CB0AD658AA58EE55463264D34B074BC6F692FF829ED801D86694F294E89FF40261D94CAB42EEE412C6518520853F76EFBDF7F2E0CB8254B658DB46B887F3CF3F1F12153A1BE7340FD47E5055382FA79C720AD331F2DA677E300294980363DC89428A710691C6F1C3424467450F60C91442695C119F3CF4D0436FBBED369E6A8A331E3365191938627F3711ECD9A24357340090AC71A64B0FB3D19C119ABD78E08B2FBE98E48EE4ACB071480C5BA553CAFA08C2CA5FE9C6E5A1AA52554C94447C7C3147B2AF302EBBEFBEFBDE79E79D4CD06248B82F3C51C61FC89FF2F9CF7F1ECB6355A30D49B9229DACFC9CE0ACB3184C8C9AB210799B6DB68116FFDDEF7E87459487677324B6468B815F6EE53DF7DCF3B1C71E83E7A4ACB9B50DBBB02A5C1D883C765356C32595D0F10334C22C588FFD7F7035923DB9A2F992C23E5897786AAF2D76BDC64240E5431B25531B705A8A738A69CBD8ACFC3123A51C9838405CC11342154B9A4357D8ECB6F4222ADA02E6D3FA86BA2218631745CE9C64317F509999AA18E56BCE526EA7A2F32BAEB8E2CC33CF4C8AC68262AC94F81374455A8DF07555E83AC3DB6CED3067582453D35458D3481019ABC31558864D40B352D8081511E0634402AA03043E73C619675C78E1853CA7AAF79030D159EE2A7DD1F02828E0169F7CF2C9F95FEB96D6EB9517043E2A6CFB2BA91F97B3DB101EA49D35FEF69D6FDD7AE962E83D887A3601F46A29A46F5DD818CDA2D9A5829F69A17AB9919465EF1CFC8E10E7A16B17B1884D004FA855FDEF1F39F5A1DA145F8D9B49DC86F64DCB6D285D0FB3F271E6D81347A7AE845FC37DA21256D995CA79B556F10AB836A7521A4EE25A5CEB4B925252AAE2A88D4F9647D6458F3FBEE6C1079F78E2F1E54F3DF9DCFA751BEBAD1001EDB06DC46452EFDA45849ACEA8D87ABDACE274453F531E79495789771E5295F8CBE462D18458E5E3A23FB73D35BC0285CF4E3BEDF4F4D34F77251DA2A2265B45BDC2CCDB0A58B1DB3295C6DA1F8546E4F9C8E0E01491CBC5C678E82C29033B9B07CC4F9F7AEAA938F0A4BB724613B8A20C9436CB35D75C033DFDB39FFD8CA394EBCCEBCB816658CC19A78AE787E3566D32AE0C310A91AA96BAAAAFCA4D233F2EB9181F25E2216E48F98D6FC1006164C39A458A69C07EC74956E8CC19C89CC422335B626184D0DF72CB2D1F7EF8615C8A8E1D9C0C324E88DF847C8132149C019B1C7BECB1975D7619F5041988BA6EAAAD4362C22EEEEF5EEBC5C008BD46523BB1107E7A4D24D79E32AEAB1CD3064275C66CF3DA681A5894069644BFB20CAAFDC514B1B72EE39604F51C70C00137DD741333E5F895AE8C7547A85939783A4C18C0D9679F7DEEB9E7B2D721A173160A679D1EC6DEA9B474D4B9C7302DA4D4B18C168AAA75B5639266926D64AD78AB7D0503A16BC83682FC93FAC6EB9AD2BB24DFA61B4DA3B8570E322E38D8D957839B3F2EEA92896FC24E639BAFAC20C27445DA09BF1E77DC71175C7081EC92AEAE9D6CBDC72593436C7BCF11A68EBFC2B4276F396E8415C45F89F9E4A6C53BF80C9BE1B8D0D69A2E02BD79DA8238A7102674084581A70C972BEC5159DB9A7F1BE2867DF9D4534F29D3FC5725FEF4F99440B759B39E843F2E8F3A53D117C5D9DBDEBEEBD65B6F51AE40DBE5715196D60AC829D7F653D1EA30B26CE24292093BA3028E9D363FBF52A0C7238180D4772F346F70BE1B84F7925DDBB74B82022EB592D4F9BE4995B8564DFAFAD25A25A956D24AEA0DA6BC04DD10A525EFCA57AB7D95D2509AF44301C31B88BD02EECBF3DA44BDB27143FAC4136BFEE77F9E7AF491E7A08047D68F36825D14777A0E3A3655B478F5E9442EAF47013B634BE501FB499D9A9946E00C910A01A0168791E97DC7571741108764E3409801EC1378B1575E79E58CB961D5AA5188E11D084686F4D42282B12E0C832282F526A441647A98993B5E99F160D6B32867473C328D30D9BE3D053A9F19DAE5BAEBAEC398C8484285442A5A4D04E16A32575924A346EB3CE19169F2D305F0B160041B6423A65794E5B4F42FBAE8A2D34F3F5DD4A0D32917484AC089A018D2A8F0754A3A3E8832E4928C5D3FE0F5F77FFFF750B11061AA6C911B27CC27E78A15D63C7552F074B37841CA650C9866110377F65E56F1B3DB233EA0DC03A3DF9679D5BEF8BCAAE875460552EA3162494DC36797C148354C4F85683DAA015B45CD9FADCAE150590C83B98D42FB5581B30434B0E74D55B349D1F4D7BAC57C64C651B1C437DE78236B7C19DC86B83FE18413AEBAEA2A4A497C18EFF0A1B82EB8177EC5DDE118C141944FC9C7A4D58CFBEEB3CF3EBFFFFDEFE1BA110C4C8C1E9BC23208A638BC458ED83CFD8C60AB7C2AEC59B9288B43E10A72E95983C1988A9AF8C238989EB3E70B3A8F65396C2D60099F31D5B06B61F8520C31A74307423DBBF0A4745889CEA371439882B53994F8A7C14E09A8201BA7E5B4D34EBBF8E28B252548E9EC02A93864023E79E9A59732CE869B424261902C88E2B923FB2963CBB4DE043890387605D6C119774775C69662FA231FF9C86F7EF31B159BBDFE97258EB0B6C82C840F012F880F972BD5D25B76DD71CB2D1757AA89CB1B7469BDD86D8522D72C68CAB443D42335CCEB649DDE47B1906E3CF569AC33A57A0D3392885F57196E16E5AD70B55694377DD8396DC21448D276C9D363C5FD7DA5FEFED2405FDA57F3B9E7323473B9E919A403922BF595C155DF00D1553CAD659A96CA83B9C33CF7E1303DF3CC9F973DF2CC430F3EF7CCD3CB376E18B70AD84A1B817369EE3B13B17F3D0A189F5107F4CCB46C577F3C0825212805C4236685FCF98CDF709FAB23AA2B626984E9082144C48CA4B1CDFADB3032D40A3ED005F8C2456056B2EEE0DA6BAF8542B4581099117230F42DBEC9334ECDCDCDAF06A3DCF63D15307116ACA975C1BFA4918E9FF7DA6BAFBBEFBE3B299A8A90B41D7284B12915C061D6C84CE48A1E7354811CA8D5BBBA2F035CCCCCB1570CEE2E5E3A5C1CE2151EA45C7B86BBA9F2093FDB7DF7DD7FF18B5FC006A7514FA8886D2343594F34CAD7BFFE750814F5FD982E58BB90F41C09713782A7297825B75E2D22D4270A9B86CC4D144CE4CA50155357E20D2FF81970F88E3CF2C8AF7EF5AB7022B12DC8AF964F03D96AD88A9970A26415321F8335C215F03E330B5C3B28AA3BEEB8E3F9E79FE7386121DE79E79D828CD2466306349ED61756FBB8647A4DBB6027B1C912EB885C40FCC2E9CC4D87577B9219F6107B8E6DCFC7C864A9C80AB3992BD6547E36C3A41A4C6ABA04D2D5B6D53E74FE64C05A46560B1EC6E05D30A7B815B9572DA6C3CD648830C6887910848A794AE2380883C2786052E0FDAE8E2E2E5857B294677C61A5A0F6B85BA04A59428D9B5234E0FA37DF7CF3F1C71FCFAD85FF69B769F73294424814B3DAC4FCD36A61B760F6B771C1F0C2721C7DF4D10A81587A1C39F45A05314CB98228062B45FBD815AC73626368873E921EA6140C5622DD1854B34B498CBA8D4F2A07CF420C5622911EC1F58E0CF57A7124B4D119399FB1F59E3D5F85D68FE60C0F6EB7DDD2C54B16546BE5766B2C2DBC586AC9243C41522E09D42635EC4CA3787AC09B147014AE1077146D71DB6C93508A78FA3AEA3976C134C4CCB527A2BC1E258DC4F74A8AD2CA68B51CF7F597A083FB6AA5FE5AB9160E72A9E2D2524CE110B924CF4A79967A773609FAB7D2DF7635E88BC989CAF2E75F7BF4B1E71FFCD3F2E79E5D390E17A005EBA15B014BE3AAC46316828B5EF3C97D65D98893691D06F7DE7B6F18582C2723C5B733208FAC607CE287C9A7A61D6BEBFD6C97EBAE531C15E4AC743378F1254B964073E1B95883E042C00C020A62993EE7273FF9C97BEFBD97FA554025CA011E28712A2887A8CA468228A95E670B414B69C12525DD3F6D46D26530892B4D664F0EA52A2D5C7ACC4A7173F47A720BA2E3AF975C72C949279DE40AB78C40535E87271C1301478D9C8E0A0564861E96F5FE621493D5EC8CB1C360028D6EFDC9CD5443A20A60B152501BB1A6908415A42DECA2D8E6DDF574743B3093048512E44C1A67ABD8A480C9F32C0C2D864144C02C1BDA8A758B99E2EAD86836FD542D04660CE3C160A0350F39E4903FFCE10FDC1FBA38659F9B49F168895DD1860C7BE65FFEE55FEEBAEB2E8836DA5B14FA4C4E73C559DA2B378B66ACE09110DFF82B51E2D4A3F492C588C2D205C180F175F557E61EBBE9A69BA08D0809A4B2A1138C17F70C968F8397EB8FFD864FAA208DF6229120B23BA717F56A1E1855866EE01E608CB70BAFA16038C30C9C37DC8295A9987FF8B8471D7554AF25162B055F4C6148B22B3C43C78209F256D17247CCA9B466E8FDB3C588E8A67959EC93C58B173FF6D863E27577A6AA84470C573BE79C73CE3AEB2C1C4F7C1DDB86A7158F4F3E326E42C12DF3A24E9A616D7568E020F17925C22DC3AB33092F65F1D94CC585E22E6C27580930C75939EDDEC88BF3C0834C1F8310EB5E06AEF59936DB6C01B4EF8285C3D51AD458BD14274CECC53C1141956646AC762106660C41072A2B267BF943577C251429394E4B08C9B83498A7AD766B3CCBEB49EC157092E695EA78090AB81AC303AE5593FE5A0527CFA3B4FA535A9F30147DD38656D46EF978B2AF4D2A95A180E1DBB7DBD5C97ADFAA17363CF9C4F23FFE69E5F3CFBD3039D16CB4B3762B8FD344989EAEA23551F4BC21052C9808251B64291188247DC3BEC2BAC06AA73A548286A7801907E209700552EB33B8F5C31FFE105B0B020DFFCBA456EBC32E372C2A42177C0A3A75707BB0A3F0311E673A5A5C2CDC9AEDB1F915D8C12B57AEA4E025BC1937651586D0AF4A3D1059429AB0B7BFFDED8F3CF208A5714F054CAE1F86ADF6DD775FF84934783923906EF0CC6456BCF9CD6FC6C85475AAA26176C8A151CC2998DE38C2194B0463BDE5965B0E3BEC30351256D31BE17148AA40DF88759F8C24F38EEDA227810041E24C60B68FA2840684AA155914A4D362E7A1AB305C4CD14AEE32399F16BDEBAD05C7F5E6FFF8E275D75D77CC31C7D07181C8C0FB7088B59CD61C8B8A56B55069584B71537771844D3DA2B94D8468245D74DCCE6802D662624D2D70117FA59A57F0B62B4DD02592F00ED301CCAD62CB9E76DA69A79F7EBA33754A90E96421E58D0480A40D284DCF318BB188334CFD4A8389FCDEB6E33DC3A12A54253B92748033016149070645D9E85031D5AF7DED6B9C64268FB5D5690188324270AAE9A299A82EFCF0894F7CE281071E80A5B56CD932574079390FD8BAB43CB4D9E4794364E0465D8970FB6268EEC20B2F3CE38C33D8031C8FCC325F068AA5B12C0928BF4BDB8B55D1DC420CC9F000CA5EC435B91CCC258B539AE430B224E895E26A2FBFFCB2B5EAF068575C71050C08E1C6F945380DD0D6942716FDC727B21805B151DA683FBD1C91C2524A60BA20160866C903F3CCFFC103A6B8C00008B3A7A1F6D714B0FF6FCB2D97CC9D37343C175B14276E0C0A98C19224246EA080FD87A24D5FEC3AE00A414B07D3F58D84B44A7447BB1932FAC19D5F3CE5653B8714CCEA2E6FB8A89E96DB699C95AB93A534106675FEC14BF7CDC84B55F251C3F24E5A4D8862AF56FDF5E2403D5BAEB55DB5D5ACC0DC7DE9A5D1279F5CF1E043AB963FBF4A0A384AE230F918D51490113B5BDB2EF4EE75E78055AEC333A54EDB165A9B17CCF33631DCE5E7484ABFED6D6F7BF8E1879DA1FA5749AAFA31C850906AE4AF18C6CE3BEF8CAF2F5DBA941DA369F72B01CA17B18414CE8A21B9A98DBABB8A3F597AA0C724333C03C3F9EC4C587C543C3FB356B23109A412A6372DFA49D95DC5733EBD47A1966D3A5BBA5D421ADA510146EFAAF88C0DD7B6AA5489818244C0C1C6F0247D14706F170D319833A70BC2FE7D6ED6D013135D2C9CE08269BA313904E58A1B48EE32C3E39807E85A667345EEA19E073035BEF18D6F741D54DE9444489FFCE427EFBBEF3E7AE1EA5CD46B9CCE885DC566293A095E93CBA548299322F830D4DE934F3EC9081573A5CAFBA6D37A35DA9BDAE02DDD5C9677E3F1B935F120FBEDB71FCC353B6FD6A4650A87641DCE20CCD91C82BB85C632E793A6860BF103526E71CCAC55E55C6154D809045B91A19A862A5D436E9EEDB7DF9E4568CB972FC79F6053DE7EFBEDAB57AFD613D9A202456B34D5D62E71C11F251393727E0C4FF13A33F606507C5505C1B3882D4E3531562E448985448356860D1105EADD3C5449E16062C2F126BD467195E0BB6454E0396A9BB6924C48F35739A9A2E114A1988DDECB98D63167761F1F238136D533AB9F59C59B17F4B40CBE61F21954944ECA8BF66B6E5AEB7567FACCE811384EA2EDFEAAC4EF9A4F5B21D3B59AD35FF45A6910BCE94DDBF4F55786E64001A71313EBCB64714B532294635E70266E4B5704576650C02E2FDE0F9F89A5C32CFD72186DC816E759EC5532DEF139E0461C3592520B0F54ABB5E0FE54AB71AD12552B69B552EA0BC41D5119735E4E13C881A8516F43AD84798E2A4916A5495AAA6579DA6855E122AD7969ECE9675E78F891D52B96AFEE28E0761E75687D9D1E85E7144B8FFD8645A14C7B432168EE2E3653D12E2234819A825723AE05CB7DD555579D75D6598CF110E14F038E8B628BE079AC2064F0496287B9FF45FEDAB5E5B8EBDEF9CE77C231C590E0265D7BEDB5F8C0A9A79E7AEBADB7424E72A50811B02DB65C30E831245C967C93F875BBEDB6832C65E44C9604358E9503344FA3D9CFBC1A21E067F622A68083E28192B755A771D167869285E609D3C672BC9857B68EEF74EF8A5B997A82D12706CA9CE92EEC0AD7810F403F9B3FE745E104F3D0620A7545384B2008D947B65ADC9E37FE40CB9D76136683D1665912B6156B6C9AC6D85831DD29BA14DC64F800BCE1030E3840C5B8BA9DF246AE2064E8EA69D5CB42E7DCDA3A3657A81005E139B1125E342D717D167DB19F3C7933700571BEA8D1AFC2E3769CEC384980BAE536890B82088C8A05C1A472B434295DB5984C2ED08967F08781474D26558BE47217E44DDA1D627A63784D5F0BA21E080B38E8A083EEBEFB6E0E492B4EDC04B7596E180652D3ECBD2B17CE97C2CBBBEDB61B940A86AA060CDCAE74E8717D9CF34F7FFAD3175D7411F715A7222B7A45F7E29CC98BCE48127FB89A38B6989765CB61D5DF738665EDE116C40190FF4FD34571661D5CEE1FABD284D8A45B10179C7162C7141652E61AEE75C411475C7CF1C5F81873CF32D7B88EF8FCE5975F7ECA29A7C40539972D82E046A5BDA58A8E8F7DEC633FFBD9CFF02B659F5C8D59C053B30837C5B7C53234638AA178C52A56D965971D2BD57460B03A5D01FBCF854FB70B5564B34B6EAA073C15841559056C9C60271DCCB83415701C95FCFB1E81DD7451530A78A01F2E515E2EB94A09BB3DAFB0FE384D5D292FA5F052CA591B8675B33ED96903552DE554C098867A0B1332F0F29AB1679F59F5D8132F4B0187D60E1C8FFFCF1544FA8C482D58B08065816F54015314FCEBBFFEEB3DF7DC63175A721E173FFDF4D3AFB9E61A02FB79966DE4CCDAF154E4D812F822C4A6B6B7F66A97D3EC0A00AF12043A5F62A526591BEE0521491096ED0183CFB33A239F4AF1C13ED97A522A5A215EF1144CFFF1913B2D3C9965518E9377D20347450D00B1456E6AB4212FEA5661F062405C155C1033B2CF3EFB5C70C10551C08EF3A96C644C9512CEB01AB1225B6E4D6ED8492C639F642B737E046D61008466D028EBB5F0100D984D85A621231832EDF579B159611878A2EF7DEF7BA4DB9EF1F34A5FB12302F6C1AEBBEE0A4F8B0B0655CA2715210023B77834E156D418D1996A2E09448909EA1226567D6D62619A4988F078779D7FBDB86FF2A2657A570F796D1DCEADA4B3941FD3FCCED479B3F73B9798C8582EBA620C64BA21628E78696604F302B346D57BF2C9275F7DF5D552CC0C02F3A99537E245E87ED18987ACBFFEFAEB5DD1C7824FCD3B0A982D260182E9683B8A45CBCA4757F44055B48D63FB3F087AF5E8B53CA36E6A7736F1185806B1B4E8702EC7743A7E44275FD00A3CF2B1C71E7BC5155740D16247B1904F804CBAAD279D74127B2A581B451D44883CC80A2AF9C83041E275DC71C7C139D080BB6AB5E52BD3F7E596C0C571D03036F2FED8CE898C72CD72F4F8435C10ADE3FFCF7DEE733FFEF18F31990C7B8AA445861A7B45D059176E0BD382F1E067B54025A93583ED240311E8BDF7603A34BAF3E7CFD97AE9160B160E954AE9C60DEB13E74DBA7225857EF4664ADEA616D502597C9945414745056A70AEBD7AA3B04E52464773E1FB3A6220CA8AC0A927E9F01A2BF69D91D2247351232DB7CBA5B8529AF0EE6EC5954BBE6F715A307E94CAD524AE440EFE62D26C649B30229123B10774EDE868D66A545F7DB5BE62F99A65CFBCBA6AD58BF5C95651071C2B124BD9257218866118E3EDC215AB10C012945AD3DC1525A30CCB890E963752D37445ECA8F94440243CBC332D7175585AA6A1ADA00CD3D1F23A50D22FB4FE996D5431BAE88F98EBA51DAF725E254A683892A3829B3336E480AE08F871D3FAA8BE2D42E8A286E7F7651E5234F02A5DDA97E68C62D15DA12AFBB4C2B8D2677586D55AB5D84434582CAEBAB8F0696977335E21D56EF96E5CEF6812EF65590818849C25047DD555579D70C2090C7FC545FB815EF59AF23694788641B472E54A1A1694AA4C04F2F3679E79E65D77DDC54A59E60BE3D081BCAB90DA46A7455EC14565CDB12B622F44BA4B0FE984776D38EE4E36FED3D664B9735634E4A2E67345335D41556D15A0E2AB027671E7E0EEEA8B72F3CD377FE94B5F621B6992B0532CAA4F1163096ACECA3BA6A14BB1B5586343A0CF37051EE6C9E4F5B9FDA40370118EC4426AA58CB36994759A1F9BB6E84241BFFE17CF6432536373E18008AD77A16A5666A520DC78C67DF7DD1773D87577458C2453687A33A401ED6B5D703A9D94835D602E57A09F585971E8A187E25E54934B972E25EC9CFE84769AF53C343FB82F93EB5C7D5EC7B7800FF106575025A8475B3C6B979B5E2F225F74BEF85C18CF57BFFAD5C30F3F9CBCB35C748AFE1D77DC113FBFEB5DEFFAE52F7F49B23366D0D43BEFCE3BEFDC6BAFBD701DCCC92CAE5BF853A7BBCCBC79435B6DBD64B345C3954AB93E391EE7815D01AA2C0B68C42C745434F487996998261474D7D14E1DB572D4A5808DB6CE09D1EA58A28116040AB80CB716BF25CDB404C737AA9426D39283562EA7799C7836CA8ECE8ECB81141A1E7054245502B628FC8F4B8D8ED5378EB4204D5FFBF3E4CA152F3FB972FD0B2FAC6ED4DB54C0BE2762C801076E6A7F2EB0C1283A18ADECAAB6B2F6A533B4F38A48A992C7226439BD5859B8C5B7DC728BD830C462A6EEB47C47C1125754092BC124F7803151FA3969EFBEF27A71840A5B32978CC11C7CF0C1AED05FF85FB483D45C79C1574A65DFD5799684946A37C2E34F3A1A1F49D873CF3DA10318F0A11466774F81BCA959F9B476966D20EEB0C30E7BFCF1C71F7CF041E23FE9DCA8DF19D1BCA49F66758A84B808896CE0546245D58AB2DFE340222D24116D1C0BF061DDF42C07C915114561E867F16C684453E9C2573EEDB4D3E2BFD617938FA627923942542A43760CCE3381413144602AAFACECDA74D01393E2582352B1E0F350E1575E79A50B4EAD3078AAF7E0769FAE80D97E8A311935ABC7BC4DC7964360EDB4D34EF7DF7FBF33840C506FF88160286D7A9B5360400577C138E9D9E3C49234945E3B5BC211FFCCAD4C7704B760C1D557BEF21578C3DAD33CC9B6ACB6ABDC56965C1C989868715F70C105B80E9FC83663B04E9533E141FD6FF783F53EFF0FA14ED6FF11CDA15A40CD338F344B9C992822BF0FDEE4F2E1F4DA82C8AE9D8C77D497102F954AD390A29612199EE054AA9FE639E591A710811667B9B04C10D5DC7705AB290D54B06B7B789373868286561DFEC7421C79E4912A0E993DA5A215D7A6B258B0C4F4D256C48ED0598643612E43E08A6143B32D29CF8B0B62C24AC55E000B67147098F04128E0CD17CFABD5AA59BBC9C2DF38F1FD8003135698B768D317AD02B64A3733BDB352E68FA980039CABE32227AE08572B6D192CD110A42E27B18758A58E0AB802BD5B6AB27761923A284DCF4149DE577FB9146E5B9EE19C92992B342A4ED2760E15D25EBF6E74FD48A3D5A8AC5BD77C61C52BCFAE1E59BDFAA5E90A58202C9B357306DCE48C2DEB0A8E399D1A719263A2601B3DF9E493F42F99E0538499E04A760A507085DE33A5318328B45C052571A6DD21298AE5987EFAD39FFEF18F7FCCA48F1DB6B61FBD9A34F456C7E684C483FD0A3B00462407C6CDEF0A6EC4B8A055E9C2B72BCF4269CF31F38B0412F1797966B7DA6AABE80B5FF8C277BEF31D7A42CAB53075445F937A5B540676F4F62513121FE6C1E86205D319A02B49B983C16DBEF9E60C172B092FAE133A28DAB296921B8F41566B429A498D49C38711B35914A47C53F93AB3F4DF55F8D18534C3AA55AB3048F179CDF8EAB2E9647641B4C1D5E662E3D1A81A5534E28A06E364EC9B31D1C869E19ED35F757DA6FD38690CACD9FE24D3C5F7A2458BB064D8E8D073AE30D384A852E515EE881D4F6E237C809183B868CDAB9892E2DEBC38CC821B6EB8814DE0A9B67990689361E7E1828C58E04D065AC42125F75DA52C0AD6294DC875617A9BF11255A5BB829893117EAC148D1B015F9D8992754DAF9D1F37D57EE7F5DF28D847D4D9B47C4544C52B330E8FC727B38D02D114343C32BDFC6F1BC1C652627AB1AB950EE70EC49638FAE8A3616853172A4C6591893A89CE58182AD952BE63975D7679F8E18715D696C853DC8B5FBFFCF2CB4F3CF144D52010222B5C9B206F046ACD1E7F56D2417556D497383E2C67178E9A6604B4FB75D75DC7D69FBC9D25D1744552869C421800BEC84800EB2066076386B3DCF1EAA080B7DC6AF1E225F30706FADBAD866B07110CE1DF6C4901E7C99476BFCE647FF5BEA5CA8A3381B036E9E04DD9E28E1A7605748BE95F28E0D48718E03127ED52190A3829973C5F55EAE3CF9009ED282779ADF7C8B1F8504691633FC42834154EAB250FBEDB38567F6DED86919166DEAEAD1F69AE7EE1D5675F78EDC517D7B49A3915B067EA0A202C2A606BF8CADFB0EEAF3535185CC10184A86707306E0FE54AE971292205E97AD451479D77DE799484B679A544EBCE3BEF8C0DF9F39FFFDC3A18562ABA42679301E66D6F7B1BDBD8330C363D821B4F65D3E3438963D8F6FD7345ABE319314C9C198D93347FF88052967C406262FC11E021A7A275C101E74745F3C4AC38F974A607D0F5C0422AA6A6092E736F8C860BE3AA2E40D0C4580F320CECB1C71E3FF9C94F9C4199AB78835B1632944D9B215221AAA0EF61D4FCC77FFC074BAF5C11647385A3334B2EA72B30CE21CDA2B0B16FF0F8EC76E7A61626CDF89A9E28D5D487D33B17CF0BBB47B2184BC0849CB8A69D09B75A11104D25FE66092343853062945F544768D5EFCE28BE999E3CFCF0C36FBCF1C6BCA826E25F29A933D3B81E4702861A1651CCC3B81A1BAA5B05AC84C5F1C71F0F57CC15046CA4C526A4CB059A8BEF7EF7BB471C7104E90C610C2AD1CEE560CD95ED0AC51093EED295DA14ED174D4BE129B8D33EFEF18FDF77DF7D3AA56E5A7FEBE9D256AC264C0B450520FF8D864C59F0E30C13AA90D5F134C67F490D9A89981C6A2CDBB3AB2B25C177CE3EFBEC73CE39477764FA53651B2E1003697D6DEBA13C1012B1B4970A95CC1E9423B46565D40BC44743473960AA467C80813EF523C1FBCCFAF31031246E0B115D6F85D74B01E3F33BECB0C3A38F3E4A4F222E88DEF0743802C42B70006AC7C43612B8BB6D4BA506C90C3BB1C45966E2F45770F73B341A73E6F42F5EB21914F0D0D060AB59CF030156E6BB28F8AA6BE680F3644AB7416760B75D8FD979B53B7C9354B1495AB8BDA12543385639D1D1C24EBBA080CBE5D43784485AA5720C0F186BE819A17D44BB197928982F578A42FC1A87AF54AA24313E1C85A68A3E4F9D26B053DB1B4727D6BEBA71C3C6B6CB21A81B2FAE7EF5D9157F5EB3E615B8CB8D56E0C13621685798D1360338FD0409EBAA9DA669DF75D75D1F7BEC315BBA23DC133E03ABC85673F00A12DA38DAB814D9B2F2A9D5445DD1290E4FAC769CE61915B0C402041A4628C4BE2B12DE344689CEA1436C83C15698584F9D87D7153CC4785876C4A2D140B917E9C45E71C515E79F7F3EFE86A3C2CEEAE44397EB69E5D7F417B91168698A84D29964C06EBBEDB662C50AB667F9DEF7BEB721BC9CC15229F4272E27677281CEF019512B881D9B60C8B3CE3AEBB2CB2EFBC0073E70FFFDF7CF682B68A59548880A0E94BFDA6D491BA28BFD60C6974ABEACCC853CDA7FFFFD61A1D38B82A8C26CC4A1F4169F51A742CC069E8E4DE6DD4C2168CA65DB88C9B688811A83D58699B9F3CE3B2146E9F94D8F3FEBF013CA887B6178C4A130B767BBAB52D2D9082A97789B6DB639E8A08320F7A7DB0A7CA94B317F654D7917F314D794694B5E9CD87DDB1B47B895ACE8302A1AA32E8B3536BDED70CD2854E6581059978098653F8BC285F3CC9EEA3492DC1B79C120603648AD4A5CE1A0AB7102A149C4E2E15E38809837BECF78834566D8E5E35488E1929164E6C50922C5B2DAF012BFA8C82DB114B4ADB9E85C5C1283B8C28364EA1723A4CF4A8B449EB132C4AEC8F2D25E61A2049782850DFB80382F3286BEFFFDEFFFD5AF7EC51B59656C5FBD42D0242782394220184742830C9FB9E4924BBEFEF5AFB3FC8C3E5932AD9D03468B2F327B2284A9C010BDE440B8575EF0CA55172C9CBB68F3B973E60CB9BC4D054C0F580AB859504BE6538986A2A9AF4D1BB2E58ACF143898B45324A3F833D3C074883B54C171C93784C027E10197E2728918AEBC94C043C6B96BBBBC93EF850F1CCCDF2A953AFC589F474E5C9E95E0E68E4F6623EBEAA3A3ED3CABAC7B6D62C5CAD52B57BFF6EAAB7FC1D7DA79D2CEDA046179CF3B1C17AB802DC1809D315A090CC650E412CA8417A434EC6FCA496D2492B8E14DC85B2C31C497DC36EA086E33B1A5328E026DADECAFAD1EA6E2645894207CDC57911E372D04EDA6F6D2A60EB2A8493EB2EDDFD3051F9129253E86EBAFBF1ECAEE4D6F7A13B62BBE2B8F5F254C185287C491B85C85B05CC128C407E0F9642CBA57D791C8703B330947839AD85AAA8DA8A0A1A7748B8BFE04BCB52435C37D7222E9FB33E0CC51D182E05CD08EE0B055E222F4D0F417F1A20C72E27F3C3E216DBD9E4B2114ED00A6317A1D540A20016805BBC803CC5D9155AE3413B15941D52DFD171B4280E9202CB18FF1D9F108DC6AB2126C3B29DB35D22E162719D7C1873121F0839948E68BC2CB6643BB6005EAEAD8AB72836706BE3E0C2366EEC505414DA0AD2CFC362796B4D5D8A03BEDB4D3934F3E490A0E3EB85A266873AAB44099029E220B7784FE38E49043CE38E38C2E1341C7A6D77EA6E5AB5922FBF42C646433BE58F6CD31B78A6E9E4A19D0D2E283CB4714C0986C6BD6E4EFDA0F79A8FAC5C452CDA8910B4CD2F3CE3BEFE0830F66AE97782ECE273749170B0A2750C8478A06659DE9F542B1611AD53D42A789C511F830F534FD336209E95CAA35E7741AF3371A4E7005C682B810EE31DA1344F6D9C83343621232E44CC01D6FBFFDF67DF6D9E7E4934FFEE637BF892D2D922F02117AC981803FCD695B60530CCF1D9CBF60101E30741EBB2F786AC856BB4B013BE3E3464529B9BC43AB8693BCC48B50DDF2782649A781AEFF4CD46997C45FD38420ACD01ED8F744CA4AE51CAE301DDC246DA750C051CBF718E6AD53E7BB1E79999CF9A687790B4EB3078E457D918742432C47E3A379BD11AD7969ED334F3FB7EAA5756BD76EC4E532177AB794E2B0273B0A58D820B92EF6592CD25B95DCD47FDCA8546044CC59CA7A5E1007618F3DF6B8EDB6DBAC24E1C7B09F4F3CF1C4ABAFBE9A679C8791661F854364D8152516B887F9B159FA0A73C388449641665214C4A163BA33859D336E5D0A0D357F531DB00E0BBD2F88C1BDF6DAEB5BDFFA96BF8EDC4DAEAB5ADAA97495496C7204769DA22E7B5CB592EA41E10AC51C056E45F62CA3FDCB6215EA09C12BC87FA43224DBB08C363BEF053F0F3F4346C3B8A057AD26AF1CC02CA1421A479C5CCC111D9459405B34B8E482280AD76B21295E2D894F01DCF0AC110AC228EE4DB092282CF0A70F7EF083FFF44FFF443E4E9B4AB1AA82A2931D66E86A908484C4A4ECE6C1B9ED25F224B209DD52A32E25DDA763E2B81308A06746C042850582B0D29C7C81DC330A00E268EDBFFFFE32F508C7BFF4D24B4F3DF554C69C99B99991BCC219ED2BDA13F97649C1BACE37B14F70441935911CD43670459CDFBEA317D7451E301F195BE58DE6802911B8BDB9D599947253C9AA483D4FD405ED12CED52DB7DC72D45147B123829BC903D6FEA170A158A4FD4AFBCC368469176D9E6D1A456C56CC14F004510FF1B2EC9DC0C81B072F1F3A2F68FCF0C371C71D07DD061B4204704463314A49126992B02ADC3D4B9F57BB225D883966E0B8819535CF8A5EDAB4E1E8BB087627BB47B4742EE489557DC71DE57ADB04E19A9D20273CAEFE81EAF0DCBEC1C181FEBE6AA7FB429C0B84E56574B2491B490147A60CC9EA607FCDA812B60B03CE51814C349F893A3C9485A2CBF22C2A51384781D0AAE4CA50984925F13F47D0AFB16B9392CB1FC94A1291A22B6B67394E561B1F48E1345786CBA5FE7279A8DD2AE3188D8FB657AC58F5BF4F3CB36AD59FD7AD1BC7F5F22860F553B6BBC7A5369506083120B9D1E586F1A51849176880F05B6D7528086C30AE29C17D02CF53980824C4380A29876939713328BB24F8B0F2D354F61253D3179A790A6203D5A0D3121548B6D87A426B0DF3F119C422AD0D03B1B0F360B9121A4C6374EFBDF7FEE10F7FD8A986C7176071AC5AB54A7EB16A9CF1855D77DDF589279EF8E217BF78CD35D7702AE9DE696329FCC853D1259EF4B4339DAE48468A338DC6C8B8D6C5614D81AE8248C91D5961B474B80C0AEE253E6FC1F2AF94DB1D22CE8E815CF9EC3E3B8B14B0C91B5B54D0EBF39A13A96105486502CBAA880A2E40522959A0990CCCC8944E2947CE68983490FD6257B74E57F069A8590783BD0C3F4ACE72027B755B62469F3829B6E976052FABCA002410C9AADA653DC8F0C790B0D9F003F622815DC440922B1B129C4748AD38DEFAD6B73EF6D863DC00F4CC242E679C7FC5156CD4C882D2E99959CA527B6E69E1F2F8F1912D00F08D3A6D175E78E15D77DD45863C1F718A22D602A8EA574875C5D6C495C6396759812DF28E8A0ECD78E7A28B2E3AFBECB315FE617108F3263C92A2B592852AC5669370F80A9CE6638F3D560115FC95487B790F8C5AA9E842EA4459C95E56295F71519DC91832793048E345291C878A2C1E7FAE9125CE53AA687AEE80FB8A7B49EB2EACACD64EAD69B87521D6C820C62F2AD866833A4C78FB7C07B9287217EA38D25A5F6568A87F60B00F3AAFE2A182217DEB43C4BE3F42A3516FC5A9336167C66F6CF5845C467EA0146DCA9B26C5CBCFAD776F05DBCE986CF6AB9F633EA11F3B19CD2886248C93D485E683B98B3C3D565AF6F2A754A996D2725C294D6E18ED2F55FAD2D2E4D878544AFBE6F4670E9BBC3CAF7FCEC2E1CD5E7CF52F73976EFBE0FF3EFEECB32B9E79FCE9E79F79B559F7445B298690965B2E6F654D582078279ECAF61315C5CA9121B5D0D26017912E70D9B2659C5BFA7BE26ED25E6A17CD28E5A5D0FB64690691AADC6C1402D2E22C1D266A4465F41A00B61629A854A3C8949F58D5883EB1EDC3A382A84EB137A1A995369213ACB8B782BB7C407814575C7105712DEA504EC59A844EDE9D1029771B9F99BE332402F382DAC17806FCC9C240AC29E73A30D1B20499968726D18CA7919614D7232F1A3684276F1F7EF8E137DC7003B5143E70C20927DC74D34D189E2C77AD139E19460467900288D1D7D0417694EA16BA1B9A9A379D3F1FFEEE7ACE11D1A7D22EB308741D122DC62C0A983E9362E0723169C7E91C3AD30C8BA74B76A212635C51813C450CC49E5C6409C717AFBDF65A38495C5DAEB41685455F367EA214A95D263949B368176A6805A255E3EB0ABE0B7D8C810DCD989BAA80152467612E1E048E2FCC3B5A03D44069D1D99E49CAD34F3F1D3A068F0FEDC2F4DEECE3DC73CF3D7FF6B39FC119C28EC57574D2ACF7294F8837555256268BED82C7824506C37BED935E2F0A234BC8D56510FCFBBFFFFBC9279F0C5B44A794C8200E8FBB94391DB589545920F35BF8966593E0BE12CE99A13F57109FE159F0A4C71F7FFC99679EA981C90BC1BA90259B50BBEDB7DF1E46B94AF6E96D70BAA8F2BB08BFA62F8D35C2948EB535A094B0182D5B45E545159F672F0E7E3347C80D633D2D37D538DE76DB6D9F7AEA29CD03EFCEBE4C786A5C24096DEC98C016E318694A5D7000E8A330906E3BBD771E240EF8A39C01A1184A6DCE9C81C1A1FEFE5AD557D3572B5ED0E5DEBE6937431543A92C6128EDD2360D8F5DE123763CA7A256C82AE080BADA847FA67BE9E50F5CDBB68B2388C7D4B72A842F0C259DFA4E4D589EF1FAC6BE81EA668BB09DD6CE1B9A1737F3725A9918A9FFE617BF5CBDA2319838AC65BDEDCA1597D6A04BDC863F7B86E9E145E54FECBB5F6960F0F9E75E78E4C1871E7BF995FA64A3DD74695C6280A1D96E744152C45AD815B7579517C55D1C7A76A93F81426502D9E50577822BBA76CE98DBE22E557B782E3DD5960B657B6E2A7A9F85AF8ADADAC38E5F8F3EFA684889E79F7F5E704E86825893296A58CA3DEE49FE2FD01247457A25352594718CC1DF7CF3CD871E7AA82B4C0AF27BE06394008CDA761ADA30096A29FD7880972E5D8A6780077DF9E5976B34D6EFD66CFA52726EFA001EF0E9B88C3A7866C030448ACC679E6D2960678C560EC652F6539309596359E3853A8B3C675EA7B12B97936D06DEF296B7FCF297BFB6C3C0B3EFB8E38E78FF073FF8C12C62B45728B897C025FE858CB814734C603B1339E0BC31581106DCCFBA0858E55FFFFAD7D50B880F2BC88910E9CC64B30106C413AEC92DB8D5565BBDF39DEFC4DEC21520D92FB9E4922814161345C5B556490C1D7A255067516C14E5D8B5B0EC3054E583452BC8EDCBC73FF8E083A1572CDE410A98E3E7C2615AA023A16F98E9A09DC1CC2B5377B80B37802A5089A7887B530662DFE2713EF6B18FC1EF24A9A48ACED5EF882871E121F1279E6D5697599407EBCBD3D058131F5028F80DBD3827A469C3241369A9B2754EBB1A8CE3490950200790F229DA7534C8C43AC417BB30B1668C194DC5812CEBA7338EA35A2FB05720268796E2DE7BEFCDBA445C70BBEDB68369CB4C900D2DAA108597C2523228AD1E9D36EB29538FEE3ECE05341CA61ADB8651414A34ECD56F7DEB5BEC3041E389010F354CD413CDA880CF38E38CABAEBA8A59467C5EC40BFBEEBBEF8D37DE28EE527650E79E27BF200180B28673D30C808A8730A2167451BE8909B95C89878731F0C1C181BEC17ECF479BA6898F41B79B59CB1FB476925AC39D274EBAAA2B13EC95BADBA492AD071CD052B170587482836283024E426B239F7CF6B9E1C42BE06AE2FA86FA5F79EDD5B9F3E6F4A5E568BCF51FDFFDE570C5CDAB0C8CAE1F85A89DE3FD64AFCBDB7936EA75B91BF6CE5F7963B3B53189D7D727DB2EEF77B567FBFDB9C04347F0B37DAB0888F32645A1721FDC425844D115BB022BC79D464C868A4B79E2E82C8AC8C2EE64094F39ACF8244E3129F46992F2EBC40CB1E894EEA23D71820461FF7CF2939FFCC52F7E01D164899B280D5884460D22B75B26B8EADAD5510617613B235A6F7CBA7DF6D9E7DE7BEF553B4B17AC3A961433C34D55A50A40398AF8D987096571F0A06A97AB4975607E99C748942D19B4759FE1E730B92E4A0C27B38FDB4433831A92A8A25DE84C0957A5DA11798C91AAFB02DCE2FFFEEFFF5EB66C99029E8AD0D283C7C0CE3BEFBCEBAFBF1EEE4E571422AC3A76461C947789313406D3A893E425CCA87ADD4C68E45E6A18CE1C0C1FD69C519433766AEB9162C301CB716275D91F03538D0FD31D514385B669236109E1AC138F172C8955AB561170C88EAD30FF71292C33E40EAE8FEBDC71C71DFBEFBFBFF8AD142A675C6146AA369D0D1E982DB7DC1266E331C71C03B9C6F12F5AB40872534169BCC99B5A0F58539707262F11471C70C001DFFEF6B7A3A21B0F1F5CD4C19B764B2113A54E7A81ECF2A25318BB78CA73C2A9804CC7E31F79E49174F2EC3076D861073CC27BDFFBDE9FFEF4A70200D27867B8FBFBDFFF3E44B93249AFFF85F130F173CA29A75C7BEDB57834BA8CDAA2B43F0E3AE8A06F7CE31B501B224A54375C6E51560C0B7B49E7831F609CD94D4D936705772E6F81A7C07DA1F6301BACF7A0B8F9F297BF0CBD254658C551B8096DAA98F722D10DB1E574BE6D2CC442609CC97F333ACD8485ED318C7738187A1EF8197BE9139FF8C46DB7DD46638252BB0B6A3B63089AE50314D942564313E368BFF8E28B587D8C4131BCC58B17B37C91540FC481320279E185177EF18B5FCC8BCAAB4DF7F5ACCB2EB89BA1855F12CD9B3F67EEDC3950C003B5BE5A9FE7A38AA3D0AFB7EDC15893D994D49514B025DF70C6452E45B13379D34D0A38F22540851DB3A95B70AB990466ABA2B4DD278F33F83EF5B10D4BB6DC62BC31514ACA9B0FCDAD8C673FB9F5FB4349796DBD31D745F3A381386F345D1D3AB8E4CA4D97A57ECF641B5C337125CC5A54F5698B3E57FA433A3ED9820BE543DD41E465F0EFD3F0E43C7A581DCC2D83F64C9D2A71C3EDC73A05CBB4C887E2CA2A28A8886664005C79C140CC1D482335321027172C480C80315A76C815DBA528485D11F8D11EA6C5E08AF6F64CFD72C3E8CAE2A4E4DD85D7813BFBC0030F9001023B0A2AE9DC73CF953EC60FA41356084D3A48B8680CEFB39FFDEC8F7FFC638A477C25E23E7BCF7BDEF3DBDFFE96405C418BE5DACB8552E04B33458FCABB51ED4E8B66A9D590AEC05EE9A180E3CA744DE60F553425E5A663A0003D8D2071E5F3EBEC3F457431C3DAB00A79A479B5F1F1C981813EE8053B862EF8DC8CE3945053A6DDBE39C37315580FEAA128F032326BAB53A71FF0D72DB6D80292F1C0030FBCE5965B3EFDE94FFFFCE73FB7041A727F3B89A29084B09626E6814DB8C40E78D65967DD74D34D0C445B3E10DB355D055D3CBD62B111ABD1F417CF8CB286B631005950E849505A694F772DB17E859CC575E4E593F40363830682F83BFEF8E3899B60524705ACAA1576BDA3D07968D84E4A1D177201625E14CA9155A1B024707DBCA3C8129165EA202984B612DBB3D48BF77A09052DD71F6E259C33C61EB834D46162D713F997CE1A8D45262995C7554C48D96BC15B702F366D64208EB3C178208310EDA26717C3CBF813A61D3B90810D38A3B00688D016044F1256D5200ACA31BCA4F87C2F05AC6D40996833D0962B986DE9982F20904A211FD75B01E705FF1FED124264AD9B8E2B70DB33AA84FF49D26E79D7398D3C56A259B53E56F038F390208CE062C2095EB8605ED50BA7D457E8FA946DE4BC63D61A6F37A550395AC999BCE8F864D35B54C091E9D35038C7C59B1D8B5D75AB815A32EAF48F0AA02A5FD73B3CE09775E1FCCD563FB3FCD1DFFEBFB979A93AD91ECDDA3B0C2F98D8301265CD39515F3989C75BE32D9755CBB57A63A296423DE4F140FF331BD747A199C4C272EDFFB59A1BB3D69817DF314D5DE8E0928B5BB193D5CE1A51B6FDD15A14E2B71358EE223B63DD2303AE5DDD279D496EEA48E24DBABF34D44E3FFDF40B2EB880679C871A46EDD9679FCD5019A359C41BCA5666F08C784CC2E099E6F8D0873EF4DC73CFE1F8B300921A571206EFBCE52D6F217443DA87A3E26955249C66315B21EDB7DF7EF086995BC1DD77DF7DF7071F7C104F4A7C956AF670350C86A9B10E2BA1AEE84C4DB472BAD6EBE2397105DA48A94D1FBA08865E50BAD0AF1D4286BCB702966DE88C271D107A1DB14E1DC63F31EFCDA4117339FC98CC7C9251E051F190CA37842B13F1DBF668C1508DCEE517A71D65D3ECF59DD33DE0D93F6C1B373177AB263391A919B72E0B6BB4D9BF4102CEC2A928820394AC238F2CD902613BEA0F832F9E7AEAA9975F7EB95A86C16DE59595B2B51D7E5CC1FEDDAB2E5379595738435141E340DF9D7FDA65975D9E7DF659869866F48099F78588C7419218E5E191EEA7CAE4BE22AA50088BBFCAF54D1B82BCC40CE98B2C93972505AB78363AE992A9FEB46D2C4FD0046BF9454BFEFA5F7A7661B67171A89FB860CCA1818F1F8E3BEEB86F7FFBDB307CBB9CA4686A074C5718D78A6E31522D189422FF38D73C088CC4F04559496DCAC22A425A287D48D0C3672464894F6DB3A18CA5735A20716EB8E106C50C4487343D048D4BC1F220CCF388238EB8F5D65B097EE41EC66BFBEDB7C7B4F03A77DD75D7BEFBEECB00234E8425B9743D42D0F2AE04AD676A86F963853AB40FF101086E6C06F6CEA23589198083F2B5AF7D4D12DC26BFC2390D4EA783CD1A0DCDF128E8ADB7DA2234DC0D615A58540CD6B69B13D994F23FCAF776D13947D85A8DBF14A5FA7C6400D2410117349645143A7C0C7E082C9BA43077DA8141DAB340C74D974EB6572F7BFAC517FF3CDFB91DE6CE9FDC303AD1AEF78534617F94CC1D1A6C66EDF5631B1B99ABC511656EB5BFF2EA78BD7F287563ADB8E556A7E50DADF65AD786FB35EEA200667550C04DD7DD50481825C5EDA3A24BAC8099941E78936E80FC4B7ED222A8791EC516E002549E3A88CE34AB7E25BDE980CAC58C0B12755B36A9B129AC4D2F8E1FB0B413AE68A9293148AB1D46212CD42F7FF9CBDC5AD8276AC8AB5BD09BA27FAC2A153AC7B82F36A1D89C48CB0A3703978D78B0CF3BEFBCF3CF3F9F66059EE11DEF78C7B265CBD45F8851389164590F98F234289B0E6B07C3059B10A4D9CC82924746C62071402196D2B4BD0AECAC9133992612EE4BE18537D5EA846E19DE3FE8A083EEB8E37691034C4CD4B7DD76E9F2E52B535F4E9E4913B829B9E79E9CB4D365FD2C202CF87024A592EBC05003C949745FDB1983BFE203F818610558483C884D7EDB5E52949E4C8AE091990E11389E0DA599D1E7A6E7B4D0CC923BC89170F733AD58840A7AF61BE618B8ABD4F2DA150E0DEE32195E320BBA9C15AD9D38FD391836AB6048137B1457C6C110705780FCD8F0DDC4BD1BA7CB037EF7BBDFFDA73FFD2935CDAA33D3B3212A4ACB141EC083B31C40412A3602619C7FC672EAD7F3E256C13962699FFA660AB7C9983C1691191F3EB200C36E6ADC1ED3821F606EC3B2C62A3059639D0C61C7A8B4F008DB6EBBED134F3C816F7DE6339FF9FEF7BF8F27C2C42ABA8EB5236C421EAD0B8824A5C36505D2B3C405B7D9661B6C244C14EEFB777FF777BFFFFDEF49A12AB2E52E55A724A84E193BC7C996C205B128966C873069A5FF5557360B084BA4D0023D598E4C9E0E85D6F0F8DC6024DF16C39D2BEA8C65E4118E40C5EFEFE692CEDE8B5AD55A5AAB55B7DC62F1FCE1B9C3C3435E67346123B6A2C07D319937AD2145F5C08CBE05722ADD9BBA64FABC111343A54B055CCC70E6A2B24058506705082B6EE4CDC57D7397FDD76F4AEBEB8B926ADC9ECC42CBA352EE962E580831BD76C308BE53AB9661224CB6B3B969350F53DA2AB9D7C6EA4303E9409EB4C6EAEB92D2DA76EB6597BF9CB8F5793C19F28D9E702BABEB206BA89C344B92C3BFAA1780548352ADB47D25FFA553B8816D7843C81E8856283CD62391DF0DDB4685E9022D33B443660B22FB98C16170D4C25D459245C18B6160A7C126BBE9A69BA05C1F7FFC718E1F03804827829AC014DBF507A3122D0C8524099170FDFDF7DFFF5BDFFA1647CBF40763C99FFAD4A7FEEBBFFE8B24719DD3A2448E2D8A90955154BF95241A66E4F0D324321AE658BC9BA5330A261AADAEE84E23059CBB8652F1AE284F522E6A7A619F64045E34DE69BF50D7E2F9607EE1881D74D001B7DD761BB96008A836F031370BC1888D3CF77AA7EBF3AC4B8B8A8E8A7A046A0EAE93F2D0C45ECA0A13CD322426710A0C399086495078597CAE3050A865092FE2D888F8EDA28BB3997EC96EC5A26761D924FA1A2A0A9EB40DC5C844604E9A446B168CEDA62626206D710551B289B5EA924B2EF9C217BEC02683342DA166E04CBB02C46F8F7DD2BB013BCB5198996630403C6E2CF4C20E87ED79D145175960B9E44857102C2AE0516A31A418F8EB7C5130893A4A33C369EFEA47A2CA78678AD078003FF7B9CFDD73CF3DB429C9E4870F70F6D48842C5BE2234B0CC1E24E27085DF80CF10BDA9FE510C94610BE19A2AB760EC9D1042CE39779A62DA0AF52BF0D86BFFB0870C0F88F60C2D60FC0FD71306934094AE080BD10D550CDC199FD2AA2BFA3494AA84F2EDB1C71E3FFDE94F1913528D293977F1573834DFFEF6B7C510C2FF15E86685BDF47781E98D5C1EA49F0FF2795AA8722559306FFE565B2C86C55CAD961BF58946A31EFB3C6932D69A6C172FFABB34762D87306D74FA30491EBB99B1268ACD8412A62204DDF6A680E776761D43A49D963CC37352290D35D33FFDE477BB560792496FD324916B446E6EE6E694FAB184D8E5A56A69647C749DF3DC1F0BCA037913CF128DB6EB1B5C36AF9C2E2CF7D74747D643BD3987F3B3063FC46E3C83F79D949252B3352EBA59656AEDBA2B9CCB2431F733D35B145334AC79B8A613266AE713B682853BF4D043991C11211D568D5720CC58613F825A58C54EFA7AEE3A58FC18068C7E31BEB910C8E1F8E590502928A74BDE246193758E92A2DF8FA8186DAD411C5868C4036301CE34FA698248027492342A4411D2813530B41CE97531A66A51DDFC3CEF34772EFCE311D8685B6E0937E2654F4F1AC36F0E9E9007DD252E4F435FE7B08B63C70AB6460BE73CDB71871D9E7DEEE99060870022C7FABA4AA554AF379D074F790855A55C1B1BC378FC353B7F0AD0AA4AA5DC15F52A56B4549C9F8CC8D8109DAAF716103D99ADE2821F47795C8A39955548363171A5EDA8583DFFCA1328D8F03BDFF9CE3FFEF18F94F849D1B65387F090430EB9FBEEBBF149BAB0B8B5A2A9338E939A9BE59B8C4F52613387CAFEC7E4D184AA3BE9A493F282E994217DFC8CF17CE4231FF9CA57BED24B803A4368CCDB512B8B3715973AF7DC736FB8E106FA91B269B46764A2890E302AAA30256D1917110B9B6DB7278B3536EC83AEE82D48F3653A963B2A5A6E70F68881ECB2E1A46654B374DD75D741461F75D451575C710593D0564668A52CAF722F054C6B89CDBBFEE11FFEE117BFF8054FB83586D431B79A9624B046C7421EDD850297B8C3C31B87AD22AF77B0BFC31EC02663F6D6BCBE787998C0B6BE35068FF1FCE10F7F80A8E220610341D8C5817C83E654A35E4FE250BE3539514A217F9BB5AAC785B6F276ADAF6F627C7CCEF0F0C8FAF5E510C8C187CBA532C58D2039B47E28496CA247F69FC86D18AE64FE4B78A5B8686B2D8679ED2569323C1D39D7C837EE8A0E2B679F7DF6C9279FCC35B2A8852BAFBC128BABF6887951F4397B255E9776A41E5A38CF436FB6DA6A0B1CAE3871013DE7E325F5D60461BAC251D2160F1D0B5B59D1DE83D709659125A5E4A4DBC2833767145951192E70A939D1AA0E0CBE34F2DAC09CA139E54A6B74D4FDF64908D63E4C38F46BE8DFC402E6268E48CB8BE05A9256E1CAE69D279ACCBD248583DB6665918BE1F778319764CDB61BCF1D44C3ABCEAD8EA235D88930151A4D4F489D67A13D728C81A6E552A3D9888B2E49828EC2AC8416C469F28CC7E1ECE0D7CF7CE63338593CE95820AE238B62D511272A48E8D8362D2E3AF20A764A88BBCA35699F6DB9E596F813753356FCA31FFDE8030F3C80FDA0C49C802962AAB11E08578A395D22B3F6DC734FF8AF6A544FDD71EBADB71E78E0818A232A5D882BC0685BB3668D3C63FA84BC2C6FA79887801D1D9C9D80E334D59D89D731374C5969298E7133A6551819A3A01F1A1A683427B1E3CF3FFF2B5B2C81CC7A65EE30FC0638D6B878EA41F351406CF942F24074323EFAB6DD767BF4B1478E3DF6E8AF7EF52ACFFC3EF217DCBC5AA9E2338D067449ADD9C2E975B059B98D588B8913484149B3C04D83F97803AD4543950DD59322DCD17CA30AD802342C48D832AD88CE3E2B5A1C5A88A3B23EA490E49B58A777BDEB5DCB962DC39AD954992B2C09B691B123D979E79DE1259C7FFEF9B38C13B7C0FF6C998019D6156243E060A38B9A34E9D75E1E30B71A632CDC06D61490A1C7E822B5AF0C527A66946E50F0575D75150C028D5094C56C96C28030FB32D15A24350403EC4A06BB10FA26A6D71556336990BB54AFE687B1191235C82951D11D6356C41C302FC0F4AA684FF2821987E2C30AF459E64D614FCB932A300E533CFBEDB7DFF7BFFFFD4EB902AE96862C57B3313830C847C6A8EAB94F2D3A037BEC805C9A2DA59AF08320632A02D1346AC56D2132A5926CFCBFFDDBBF7DE8A187B47BFD7297FD9F20C5A15969C460602ED8D13E9316F2D01B466079FBD0CEA2458B5E5AFD22494ED449457E397E8617FEECB3CFE2F0B2E32159ACB9B2964281DB95692692E0AA588B5A8D65A07C8ABC68DB408217A699F9033E03E10B614D91ED42848F3A9E98894D70D12C93A077BD5F56CEF0A6E5C4FB6AB8CB669B2DA8F5B16CCC87B84727360867477F11C3F38FE91DB0A672F614BFDE09CE52ED528564C21234EDAD35805629732D17E7C9E09CB9CD766BA8545EBF62D5F84BAF2E1AF77E6D258E2A599E78EBCDE77D93142EAC2F5381C35576712949E1D4F821B55B0D28DACCD50354270A595EEF2A612F95A2B627CD8A37BA7CAD8B5F8CDC2B2E5A17C42436561A6C06BF93B34E104E9DEB14A4A422146D00B628710624A7EBA2C1B254154C69E103D88D3FFDE94FB997F0C5AE5622B7DD76DB01071CA0A42FD53F64086E848BE0F338590C0132C241DB9D4C8B71E857A856E871D13110AF638F3DF6FAEBAF6F9B6E9E749918CAC2D6C53074A82D4D269F8281134BE0A828DA74D5D309415327DB703C5EB81676B042D3EA5103D183215E73CD35AE28F657E6D51F1E1CCB6A3A39D1AAD5FACBA5DAC8868D58AA3CC39A26ECC541D9D16A35E0CB6E1C1DC93C12AFB260C1BCB5AFBD3A591F87EAF5F661BB558394F775DF9DBAF5C54B168EACEF700833FA7FF0C107DF79E79D7878CA627B308A0855F8D589C2CDB19D8809E9BC2E054C9B4854B7222E605ED03A19EA0031DD4F92981632399ECAAE174FA3ADE0FEC67A1F76D861505ACCCFD98D325D34D826ACAE70C729EE097CED14D417646156EF523A73BBCC787D6A507CF29BDFFCE6A1871E8A0FE3A959EC44DE2BAA37852E39E0AEFE7D6C55D98563928D296036179D42939408A79E7AEA97BFFC65B97154907C047A96C25CCCE8FE6AAA79B61569B7800E57848B6D6604973DEDB4D3CE3CF34CD6A462E45D517A0E691605CC2AA328D46B29919F17CD8EF899F7BDEF7DBFFEF5AF93D034AC3931494D008FB3AFD6373EE1F73C0E5133EA0478AC02F6FBB99DEDB8E38EFFFBBFFF2B1B88BA47B17D4C0BA9ED59538B71B2668307A70B15AFFE424C56F9FAC8FE012A48DCE5F1271EF78E4E9ECD9F377FEDBAD7FAE1B204E9B9CDB6DB52A162AE2EBFF4B2A8289AE076A21DA3408B5E4A61B0AC53DB5B6870ABE7A8999473A1AB206FE3BDEF7DEF9FFEF427854C383F74C48F39E6989B6FBE19C7D312AD10DDC368B0C5875BA45BAF53A67DD531AF3D38A8B664C9E68B172F9A333C1862305E868D4D6EB4991729609A7D364E43050C0FD4B2EC49747858B5B9BBD470336AF97873A596E55163627241545AF7C853C32D3708151B4725EFC1FA58A3DFE4210D37DE68552010E2246A754C0D68DF8976733272ADDC4124B119441CE2D2A98B16C49EE7D22F5F1EAF6BB75ECEA186DD681CAD883DCA3BC586C7F456AB73063D06D3D34BC79BC45736B559AA10677141124EA40B2D30D6BB538CF098085D2F1208F99182CE4030C2A98D424336611A544F2B14151D36DA820A3DE6A615CAE5975F7ECA29A7D0DA63648EA91937159B2C97F7820B2E8034B0CDBC597F1F05B261C1B06DC8D315A91CEB5F6D12506E2A779570F3F832A415EEAA8AC90B2FBCF08C33CEE0B00410977580C7F8E10F7FB07CF9F289897A904A937DD539E393939552350A60A3D493947AB9E96182BEDCA819CE249459DF5F46D6C2286BB6EB7DD53EA8E100641D0D6CA7AD6DB7DD7664641D6604DF651C0C6EC1C6D18DEF7BEFFB7EFBDBDF4216847848D8946E2AD5BE53C364D2C8757600CE5A8FC3D5D303A627F7E10F7FF857BFFA155682B2860A89A69FA89225E8BBF2C414B8C49AE207EE0C510849D6D8E551EB0C7C5E9D88A872661C2711AD0C29136823674B124D824C1884682ACDF52C393CA6246C875A5E96D40A78168A7BE6AD85D5B2A2362A3AFAF1A108A053EACE999824FD51C51E2931797AF12D061BE80CD11A63281B5F27B5C2A6153573C5F1D38A52F1809428AE4FF8315C19682FA64559ADC4D2436683586C8A2FEEB0C30E4F3FFD34093E674765335C4C3D2DE52D8A5AEBF675B4380110A5D06F60627C9BA5DBAC58B962687068E3C41835EE26B862904473E70C7FEC631FFBC94F7E8263883DB37AF56A9AE782717640B645FF0FB80838D49C679BF894FE13F92BBB17F0A6F8D6BBDFFD6E9C387CBED35DB152A6F8C37D1BF5FA702016F02D4E5FF10E286D4179C091A107C275FEF0873F60071E72C8217062E485B01F0E0BB82DDDAE2B7C146273A2A95CD65826FC401747EDAB7953826FA300FC161F0ECE080392A2A58C8B8E87DC60B3339DD973DD112F7E1396E7CD9BBB70B3F9F3E60DF7F5559314176C857F997058B48C3915B61A588899BC950BD5616D8EB434A56783C680EBE7D091FDFDEB47C75A13F5254975DDC3CFED54ED8F27C74A71024F378594756DEFD426317C1F88E55AA9E21D5FE6D14B693BCFC69B8DB1A07A7126EBBEE4174E73540A69E3B979E683D569021777A4D558EBF2F5CE4DC4EE8FB983C584757F69D52AFCB0D38E3BBEB872D5C8FA7571A9439825002677BE2B7C184C2C898358C72F743DF71BDE21685F9C39F8136BC72D5D062F85FF197F2526F199679E91F1F49DEF7C076E318F12FE4A9432FEFAB5AF7DEDA8A38EC241BEEEBAEB0E3AE8203163E0EB8C417239944CD48674A18FDFB265CB7876F008D83C947EE22A38E79C73E02371C3634372A1E5D03AC3B71317CC5FF2B83A0AD8997EAEB2D0A9DB8F38E2885B6EB9855286893A32E608EEC110993CFA0057D9807D05895A2B0FE04BA5B45A2EF7C5AE123A5A33E80D3B6C63E052E95B3FB2AE5E9F0869BF74DDC8BA8AE76DCE27EA101659B994369AF5905DF671EC5AB54347CC2018542F15A1B672D05D051CB45C2BD0FEADF0A64CD737A68055FFCAD34BC0943869B17BF0BC58C22E70D07458353D5A1BF8B5AC265D275C8E2936251BEE92B765961C30BF45C42089A824E8BB4A29A6F7A5494C6FCB59C06554A58C161E7EF8E1575F7D35E106D897A3E1151942546738BF1819A60D484361FAF5691A739CF83CAE80C3C3868604A051879D7EFAE9D75F7F3D2B195462AF98156E3D636B528E1F92F7431FFAD0EF7EF73B1C217A5AD0A38F3CF2081CC44F7CE21377DC71072D0641DE387B5CA69D77DEF989279ED00571357C0BEFF388AAD877FA8BEBAE25A02DCB5FF133EEA5FEF61431DB068DCBEFC2D6FCFCE73F7FEFBDF72E5FB1DC85C6383A9EE210AD4FF81A47223375478601C9A84CE22DDE17337CFCF1C74358E4A6A7902B40C204982818C691935C9AA018CAC7CE898B5C1D531D8E007EA0370C01534E4B04FD896896113F32F0F1CA941EB0E6CF3BEF3C350183A895E3AEA347BF84313D1A70F22D44CA8FAF5C7CF1C5F07409BF504B44521AB86060115A4FAD8CB5FED18F7E245386179713F2FA51EE9DF021545D2986DE1D1A1A1C9E3B00B3ADAFBF12BCEAB64A8FB2A92F1501CB15F6B1B13CB619C04D2A21D9C4CE61753084EF78A399D46A939157E18BE2D2F25F3DBAC4B92DB19A2E2EFB20731E6579DBE571EA8564B3DEAAA49EEFD2C33FF12758DB918313BC31CF5A9E2C2999F4AE89779A6158798035ACC6D80DC035CFF2B1660BF21767A31EB9DFE66ED1E69B2FDD7EBBC79F7C62E3BAF5BE77ED5A78C0D964CBC7D5A2A2CE8D9299134B5389F2939B932003B9A11FF8C0077EF9CB5F5E76D965975E7A29F618C183B4B093A2B78DADEA113C1E7B8FA1C71B6FBC71BFFDF6C334E24F14AA49686117855A23D2D889C99914AA2C9CA117A1BA47B1ED8A09007F3DF2C823A501F9B211235C9C37E575C896416081C5EA5B4DEC0C654D2704ED0C1E382A984B7142F060EC00837372F4D147C38EA09267CB1ACA4D6698F96B98E58DA1542EAD9606279BAD81EA20B46FA5348095F5454945FBEE466B3D8EFCC886916A151A6E62C992CDC7273CFD5EBDB571F3CD367FF5D557CE38E3F45BFEFD66B8C81B366E983B3C3C39D10E5AD9BF966CBE046775C992254CF36CD2BEC6BB573C166E74240A37ECB0A8578E67E683C776491682CBA438912FB80B6C76767913D16897AD2A914D24AD0BDE2D74002C9BAF7EF5AB56015B9D2DFB91346410C4F7DD771F9F77C67132CA8111DAE48AFA191099450DC70791ADC7E5A050B0C8A6AE1793AFFA80AD0DB37407DCD02A58A27E22A44285CBCCEDE1574A7CC68189EFC7A558B5A9F0B528F2A1097065FA91F81614C977BFFB5DA21F9DE9C13CA394D4DCB2BEC586918996646A072A90306FD241580302DFC2DE666B6ACCEDB9E79E8BE3A0BBCC82CA262DE2A38F3EAA6C8EEAC1584DC80BAA513CD91C312AAC9A820A5E7634EA52C059D157D8EBC87A43B476B8207EC01E1375892641DBE984134EB8EAAAABE8491089AA02E23C547533CCBEC962234771A897531D20A4432534283CF490431212C9AD5BF737BBEDF6E8B26570D69987E6491734ECE31FFFF8FDF7DF4F483FB941BAE210AE48E4B38E4E36AE20145DBB910291511C62EBE89A5B0E1C26C5B5E5683D0B67AA9E48B9E99BF2FA1570714ED3D03D302E5792FE81CAF0F0D0DC79438383FD596B53C9AF6098CEC7FC5B0A92B1776454F4069586EECA46C50599496C1A24C7FEB0BBB452CE62DFF47A4E96AF7FFCC5CD23B76DEE93BE659CAA3848759767F81704BDAF220E5230C370E25062ECB927EB7994D4E3A89E4575884A7CD745E534C64AC067EA875F9B3BD8CEEB031AAB0E0F18EABE529EBF78D16B23EB376ED8E0D9B95AED6A529A687788626CB74ABD54328B853BF4D043AFB9E61ADA7F743421D6042D164CDD19702B360C7EC063E2EB2CE7DB71C71DD9BD8DF616FE448A0F55F4AAE59D0A04C8CD40080B13BDF404A4D771C071175549E50531D117BFF8C5CB2FBF9CBA73FBEDB7C7E6E441204C87EB826BE233279D74120BDB04CE557C858A831C2F2A26F2E697335CFCFC900B5612CD55AA1992217495A9BCE31DEF804F20D0075C84679F7D36E45D6A914B9B0DD852A5850B369F9C6CA549354D6A7996FA1AB9BC83F91A1ACE3DCD6C63120BB160E1BCD0DDC2572A0F0CFAEA94D0B1326B6730D6DA5B2CD962EDDA5793B8A85868B7FAFBFA47C747ABE56ABD51AF942BCE388EDABB34A09ACD4063EB9427CE5CD48B70A3A7E7C7E42E83939816463FA863B0422CBE8E8AB639F9547ECDE294C64C1BD381A3534BED3223E8833A125A017FC5C615FC8FAD26661C27B1C4181E3D0C3A40D273CA3E520733FC42D160AB48675124DC8B0CF9F28460B7DD74D34D3EDD55049039ED44322BA1481437DBD9D2F895CC553C80C6A047E105EB9563C0A1A5D32F435549A3C434F2231C4F3838199876325D11E621D4D6626DF4033D5D4E14D3A8D48B1DC29A4076A84A03C6A5F3823C6496DCF929A79C0271830B6293600B1D76D861679D7516E7198A196F726F601E68CA501058E04567F0F126B4BCD8FB4AC1411195982D99509730ADBEDC6EB9E0CE14FBF1A188F6E430B8A53D745264701D60858F734C4E4C4007C3F7653A302EA855A178EC16B212438D8D9DE9788309F9CFFFFCCF8F7EF4A384A16187C3D6111D95B6A5A223386ED86F04DE0BCE6A69A2BB5C0D95A7F3529C52583FB4F62804BB2A9A5CEF57973D173C9852E25DCC2877D8EDF9E0506DB3453E169D16CC55AE60E128707FCA85E5A40DA19250858598CEF4750B9D959BD17059258B4AEDB89C472FAF5C3ED876F3EA6ECB5A6DB03E89A1A485CEF6DE2DD47CDBAF63BBD54E5D043FD8078A33E8DAA854AD8C4D4E36F199249E6CBB3A43D6216ADDDFCE6A49524BE09ABBF1566324CFB06C93B17B3CEADBD81EAF87BEC42E4DF03C91477B45D0E8968438330464DC90D8F6E79F7F3EAD220813929D1157C427A5258A79C029C3D9C7B6E10EE1FED159D051E591270D1F1614DA44FD0AA9B0E04FC3506692250A5DC818FC93C14AEC0BE98F946366B11C81965C14726909CC68F703636FC28EB05C48CB2D0B92D298C96972DAAB34237205B111850815B0FA92C6A69185DA99C1F23DE69863DA455707678C88607242290E8C8ED5ABA5219727FD7D73F07FE42A9DEC7EDE215D7ADF07FF06AEC633CF3C35340796CBD8C4E458BD5D5F347F61A339064D8C2787567E7EC5739B2D58B07EE42F0DAFCF7DC32ED6CC61784270E4536B03ECABD8F1B0395BA12F66F003B2F1D98F56D7CB260654F960C5B176866A27E2A99DB96422B9A2B49F601086C5661C09B729AFCFFD44E5374BDF6281B620F1A11A051A74C127905126520535AFD61DB96F6699073ACA4A365323AA1EA95D747AE12DE86BC281C33B0CF0CA3855C053134501440D042DB562C50A3CECE1871FFECD6F7E93E8153C02C91AD9D68258E5071E78007E150B4E98BCECA28AB43F8BAC477D4BF8EC843E915A84C4939C1C352639EFBCF34E3EF9649C349C02461471DA3FFFF9CFC38FD45DE2DECD21E853BAC21AB36ADE12ACDA3FE170E188D177E40C7BB86F29B50A185E860B7F82A0573F73677C05A566DCD4C88A95892AC7545B0E6B32528A95AB6157C3F80E810A2F4130605627B75A55F81961FC6991C04E934D8A5F9B412D5D79713AE834F1E9045B3D6DF17436DE4E036EFFFDF7BFEFBEFB20F52C804EA460B699152D89AC600FC694E25CECB2CB2E0F3EF8A09B4A2DA0079F850FA097028EA34A5884ACD19CC030AB35B768F3B90B16CC9B333864AB4B3A10687FBE3AA5472ED83D6CE12A2A3A57B0460B264DADA6F8B39669BC1A27A3CDE42F639B570637BEF8D270EE16BBB4DFB5FA2AA9B793DA218E0D3BCF4593D82C9E6AD2353378B76EB052C5B8C74240A556AD4EC04382F08F92F13C6B0600420051BBB95902AD558D53A8F3F1AC3DE2BC029E88A2E7D2FE46E25E9B1C9DF4BC5F7E12AA956AD4CED26A457DA824816536C942A2002FA6A243D32B2E0B1CF9DB6EBB6D8F3DF6F8D18F7E2428BE20C44CF410E642F62BDE0E3281850C7168822E9CAC68D154E2085D861FB0F7441DA880333528AB54549DA84649CAD2E238F32E96DED9156D758882943CEC32EC88F062DBEFD89059756C46181DE44124452ACF405C34EB880B6AB4D34E3BEDB2CB2E834C61B699C1589A00838373EA93CDD1311CB374AB25DBC0017BE9A597E70E6C0D9F7864FD86A1A17971546EB7A0DD9B3002B67ED3DCC03C370937D777B24CBCB93D30D80F0F75CD2BAB976CBEE4A59757D5AAE54A1506D16B73E60C8F8DB4DAAE5D492A4C5FC1E41A9B189B3F77FEC8FAB100B528B262A50EBF47E2DB23D61BCDC966B3113CE016D3C0A4C68CA6D6742A40E7A6B21C33E74A7F4E53C6DD43CDAACA6E5B513EE3D1A5ABE1A642195D61DF59F3569FA7E45565AA943D858B1531449468A31097FFE637BFF9C0030FFCD297BEA4BE1A5DE53494B0EAD2A5A6B37C47D615E7539DD8395A463EF826838D165E841FF6FED77DA020F1F3F8D8D8D26DB621858DFFEB64A7DF2DF31A96EF5EAC437C4CF148888F66F9F2E55D58569A1DB65174BB779306E13894CE11BF922BAA9389BAD4E121C7533B3410D5B6A1F1470B83C313778FDD570AEC3B43B22F191A17645ED375A4B8D248CDC1727E7CE5B8E38EBBE79E7B3060F621B7D54D6A0CD70E6D5BD876A9D73CE82B1C9ECC2F2D22A785C14006E2A827B8D968F5CFB2CF25B634D58A2B0A42C5220B69FABCE06D15413F0315AEE85B47F81E3EF6918F7CE4A1871E5ABB762DB71FEB956739774CE3B54DF33B9E6B5C8D71511B27B4CDA1DDD408562F7062E448F3E911A3B0F6E3C4CD9D3B84A7DB728B85342B03262B83538161F8D289A68FA8556B9510606870E7405C97CB7DB40B3BED878B87A297DFE55C7AE33E6EC523F5F66075726C7CF39523C3F02FE2F61659DADF1796B5458EB0B41D3BDCB2DE6A4D26B16F139C675EBFE25F12979318C27203DC13E753C5ADB6AFDA0C654B51E2E2E1B24769350240BA8E1FB2BC1102204FB978A5CB9A708DB312E46B3AE089A8CAADF644DBDBDCD0A06C73C9A2DEBC376320D515CDA6AECD2FDCB83D3E5C3236CE617C68C71D77FCD4A73E75E59557DA94B98E2115AA52CE94D2B373FECFF8BE741FF33ECA08507CA949971ADBB86057D108880A2EF4AE8666CE809D37398B144FF834A901F524FA10BF89BB52FF4745279F229293071EEF688BC54BC7C626DB2D4C41B6D9C245750F73ABBCFACA9F77D8E1CDD0BBD54ADF9A35AF7819DAD7DAB0717D9AD0AEF7171FAB8F95A21216769B6DB68667BCF9E285AB5E5A7EF65967DEFCCD1B5E7CE9C5C1DA42EA399F2A188734CC060706474647FACA438557DA312DBD97802D946452C099473E771470146F6AA7984DA54814AB995D729972F65B94E66AAACCF082624A332E2423B46E9A02B636B5D5E21C125514D5005B525BD14609D285B1223885E568D80779E0577345DD37FD2AD55932ECA17684F6FD2E9E04674C138C8A64F7A20D670C938FC048C0E09CA1F545931C48CA2659D530095907E0435CAB9B1A2DC4F5098860648978A87A484E303DFCBEF7BDEFE73FFFB9D0529141EFCF9EC3136A9DB60B66860A0067185A8D31676A56E269C9640273F3E28B2F76C191255DA8568D9A8C0C38ECAC1217AD43F3D02ED7CAEE19B750AF038F5BE3A9393CBE20DA186D535F175754FA33E3C0D9E344B95953095D804F359EB28D5F9C09D568F5F927C5BA66899470D3B2EA9DD3A88C1AB3B0D836909E789F05058A1BD94321E7C9CE0C8D7EA1B4A2025CCDC575BD5FBAAC947A5E74DF52B85BE03BF746147008EC7946A090356B4383F5F7FBE0D6D2AD97D46ABE17AA8786E57EE78C8F8F7A83268BA915A298A1E9662110620BDA9210B09B272F6AB1FCFE89F378C3447BB06F726C74F10B1BA8809764C96025A1E6F25A1D73986793D88D01E71C0542062AE05AE42A5E627A760628602C40333C6F1C7A2F4131575CD6CADAF5CC7FB719B900D4F270D697FA861E1BDF900F941BA38DE1FE39EBC637C2388A1BF5E1706CB121D52641D0DF59E4A1E4274D4CE1D25D61A76A1E2CEB915E74286DA457CB6437920D1EBCF11C7FAC2B4F01C1990ED9EDA2EB22FFDAD557D085A00E71A35D7E5A0784658B225C114FE60DECC3F0C54BC8A4951B542EF5CF9FBF70DD5F4630F30BE66FBEFAC5358B162E86B7ED5A7D6C90B0F2E5954BE62F59F3DA9A3935AF151AF575EDBCDD57EDCBB3CEFC6E1C1FF5DD0C63D7C826FBAB1598C2EDAC9E96A2B1F1918181FEB1F16862628CF35EADFAB2C27A23A06D735F5FD16EC12DAEA6D8362E8661879F5B6E030C4C7CC62B60BF739A54C0499A5B7349EBA40A1967E27822CF9B1EE8565E9D9C4D96D4A2D742BAA9EE0EFFA70FDD5502C8F140BF7EFCE31FBFE38E3B98C0207D04578A12D326C9B82284A258C49365661192109F672F39FC4A20AE94BDCA4919B7A171675B5DC21DFFB77FFBB7BBEEBA8BC93C3C6D7F1F56670C16363B4057CA957AA38E9D1517905A2F4CE1B0929CA1D9223336E5A9A771D8B0C1461DA6973BDB6A1FA630A923B5A119D762EC6E16C58047BEFCF2CB8F39E6185E5C25BC30A2F1A62B08E05C00E6E0FF4B2FBDF494534E2196925E940E1B6B5BF1DDFDF6DBEFE69B6FFEC77FFCC7BBEFBEDB15CD7AA9BF0595EA420674490ABBAFF857C539980CCE8AFA5717A26DF89948342E13FB0DE04F7BEFBDF70F7EF0039AD1D6989B3E0FDC75F4B7C42B49B14ECB1DFFE3E2785F46B925A3C51D493F3EE3F585341415B33ACCF0B9A8F871652C2514B042267A2237B530121B9843C575B6DF7EFB5FFFDAF7F3C6D1A0FD47BB84E1C45ECF4B674B55BF7C52F145C405FF86320256A05B293CB384CED300EDF4FF3A89AA04DB209D3B3C3877EE1C883E4C260C456FD97BA6E876B3D1418A64B9A82A19704EDD54D8A62B2C0C2B19E4C9794ECCF5E3D99C5A7D7C62F10BEBE7B9248FDA5BE4D17039507A65AE09F5E9DCA4CB2723D7CCDD4860E4E8B8BFC53FFC3A542D07F7B7DDF0D02CDCC56B5F38DD31BEDE6C4E06C705FFDA514C05FCAC4B5F885A90D4E5B8D457AE8D34BD953CBFD6F7CABAD7708E4E3CF1C43C9008D1CC657DE08CD32611CA3A1A6E03FA185D717E45286D68AAAB3B96264A1717A8AD4B6ECFB24F667CDFC24D225347E40AC032AB95F8388459911B8BDE3693D3920C76713BCBDAF530B285A72B0CBE706CF061717AD1A6C010E70C6DF6917FF8D8CF7FFECBC8257F59B7E14DDBBD19175FF3D22B69D41746D338EC0B87DE78E38DF3E6CD5DB1FAF9BE725F3530EE552AB5C989063E59ABF537EA011DD36A8C4F8E86E69BCD286ED5B3F1729C0E0F0F4DB6DCBA0DEB3C482F2DC36D86ABD96C37FBAAD55A1526FCC66696D7D2814AA53F6B43019771B5A65BEBDDD1A080DBBEAFB4A7DF0AC723B30691330AF5C0030FBCF5D65BD5FA4ACE84959836C7CC5F056679FBDBDFFE8E77BCE3861B6EE8B5E1EC4CDA4065D7D6E10F140DBBEFBEFBEF7EF73BAE88DD0A3678AB26924B972E5DBD7AF509279C8093F0C10F7E109EA22045C4D6F289449DAA0B8A3A982432B4ABC88F4848B3881138CEF7BFFFFD7FFCE31F19528EDA1E4A363E315E2E95B9057D18A0516F476E60707074E3C65AC06D51C04D8C8FF7F5F743EFBEBC660DC13BFE9121DD20FA87BCE8677690ACC5AC586507154626287A441B42CDC4F8A41470AF83C40C3A691FF003750023603463312A961E12310E718F6F613054519681CB9954FA5BDFFAD6071F7C10530ADFF4E0830FFEC637BE1105BEEBE5CB978B39B62BD632A3F6B5E70B16060BB1D467F7BAEBAEC3D8AEBFFE7A968653F78B669C31708C131A8E7C4F6E564390EA47FCB2DC6C50692FBFFCB2253190219F879AABE79E7B8E53C4B2E65E841579D1754A9E25DD560672E813731FDA923C6A4189577D975620671EEF10B22E6B4C5B77B6107188E2F21929AC740BC593784CA8C8ED83CC1EDCEE8C3C2AB7331A0D4E0704DE6D12C15A1ADC6CD1025824213DD9B92623AE747CDBA14561D8D50D1F122E5E5304748810280B4E05EC5F799B0AB83951DF72CDE87C17070F389AEB059C8326ADE7ED09978F47793D72EDC4BDD674B014CA91ABE61DED5B76BE01D38272022F19C2B1E1E3D6810C2B2860CF20DD685001FB5E4B2EAE471E13FB7C547A3E6FA6F30646FF323A6F70EE6BA3015257AE64694CDDC9B23189A959EAAA35BDCC2531231ECD5442C2CB0AB322A94564FB8C061355606B6A17765975AFFF65E11DAACFCE8B026EAC2C2B9B391E322270870BCA804D8B09E9B82B064F37830256470BD7DB22C88BAAA6C4F45C0C6729D976E9F6CB57AE18A80DF7F7E1A04ED4AA83F57AB39C78F13D91E1B8E6D5249D6C8F2F98B3001728456C3B551E1B9D08594C389DFE3AEBD78DCC9B3FF7E5B52FCD1B1A5EBF61EDC2050BE001C3C12AF779B7A3DE9AD871FB1D9E7BFE9976DEFCFF3EF081DFFCE6378303F3A1805B795689BD02CE215B926A50C0AFCEA880BD5E9F6661D9108728B661BA623C5D8DCCBACE2791C6128522C39A5110CC3EB13647981BDA17C2F078056A0E861CE08C6281A17431DAACE8F3E30CBE94D914F82B30C13EF7B9CF7DEF7BDFC305F97490F2F80A795EA09E21B5718B7DF6D9E79E7BEE21E06EC696882A92710639CFA782FAF46D412727162E58F8E7B57FEEABF58D4D8E8B2E87995D4267375BB4E8539FFAD49D77DEB9616464EBA54B3D127E727278EEDCF57F59A7A9E0D1A2C65526982F457D2D32CEDA43B38422DFF296B740AFD3EDC3B7180060B1D669A79D76C10517B070D6154486AEE8D744CD21E148CB574DD07453757DA0D74559694DE6E921AC19BD615172528E30A0CDB5E0269106C2C0481F8F67513C9FA646AF6D468F995B8B73ABA8B2AD86C216624717FCFACFFFFCCFB7DF7E3B761ACC11CE361FB3D7F5713558242B57AE644B8373CF3D1757BBE4924BD4788E162161A56CC8C12712D13757767A5A5D2F4A2A9968B384165577949836795DAD57E92233AB42CF58CACFFDB5579290046D130D40E780783FD897A50E0E0EE07F5FAE9972976605AAC67F1D3A98FB1CC289911ECBE4A5DD45CBD27AC0F5563B1A19CF866AED467DEB3F4F2C84C64FDB4B5AF160380D54C0E3B9479C36220F6EDEE0B9AA226CA6B29302F6439813F93AA5A6EF8153B051C67E787D304D1A3E7818E03351C345132EC30E5B19147069FEE0C6D7360E5607E66FB564F9B3CF0E55AA1B26C7A54770BE28126D43AA5E52D4156A4909AF190F85B20CB6F055A7DE1983895B9426E6F4B0F32C865AAF114645CD6E6EBA6FD99C9DCEBEBA2832DCC216E3448AF025609D9345E84C0DA57C7C5DD73E615480F488EA265D0E2D171F7698B368DD5F46E6CF5F1847A50F7FF8A3FF3F69EF01666B599E8DBE5F5B7DADE9BB6F606FAA084462073DFC62ACC9D16308A868C06305454090A6C22FC5129A28CD02BF35B902C18209B12497F8A368148510942E65F7993D75F5AF9FFBFDEEF91EDE5933B335E75F726D67D67CF52D4FBD9FFBF987DB6EDBB2F9C0E6427BB639B775D3D69999BD9A2733E8C176DFBB7752AF330B1B63910608EF45295F2C94A1339DC546B0FA659ADD79276BD46579F084464BE5C2134F3D8661D9BC71FDF69DCF960A9AE2A3D7F5A324F5ECB2E7962C05E7A080EB846A76C510F4F2FEC41C532292A8EDC8C03250493930CD62BF73CF7057EC63A9ED6382655E854B8B3E19A592492925461F45245B1F426E0AF68FF13A95E1D8CD13A95106C0BAD42BA25FA19F7EFFFBDFF34FBCBE4472542E0D312CA4FE967C213BF3706D6DD9B2E515AF78C50F7EF003DCCB2D785CA0DC30AD66136691EE80343FFFBC238E78243B052F13F97EA95AED773AAEE34AFB263C3C2E059F12237CF6D96793F7945D4AB8F459599FE6843262900ADFD3F20F031B100D787EBAB3647E96EC03B1E2342BC997042DC819A1AA602F7795BB8662F1109454CA3E9808FC8A7FB91EA4D66B79085A5A400EA4844D6895046FA5D602F32529068E3FB6D55FFCC55F7CE73BDF614095D301E3CCCC169B1FE92C24F90821F2254E905CA118E1E38F3FFEC73FFE31161BCC358C332CB31B6EB8E1231FF908FBAF0C10959BEB998BCD842648159995779A4AF2CE07F498C936CFA08E9DD3B55A06552A3116EC24287E8C487CDCD16C016E7EF027189AE4065119FDA45AA680550EB7540628FA4F54C06A69CB67994A27EB1D683BFA16D56A199395B5AF77F00D8141D9C111512361EE011372C5A914E0E4229F415E4FBC18B7568B216828E0FDA7BB6BE0CD3AD186C86A140BD9235951A2A3CA3DA5FFC534683F519708A78C42EB0685783A2B2DA650CFA94EF1EAB60F9454BA57EC90A3FDE834D6CE74004F5AE15209C67A9BE56DB743A8F346A51E74FDD7BCF9AFB048468A255570199C301B7CED5BEE0D24DA39DD02C837BF4C97B55D126882BDACE59AD870035A7C1F6127F5A72960333CC3B54D5B9932840B69EBD6AD501C98D39B6FBEF98C33CE60C66A20DA6A1978BA45D3C3A4705A6E4E9ABF72BB520D28A37DA16D150B05CD3A393C3C562AD6A62667F0E4DDA0BFDFDAFDB74F6EAFB8958F7FE2A2CF7CE6333921940B1BABDBEBD0F6B43238BB3645CBF80BFBE43461D746A1A6069C9D9D9BEBCCB9AA5329975ABDE611CF3BFC89271FA9372AA79EFAB7DFFAD6379ACD6EA26954313CF0ED35DDB4E7EA8046A4DA2B82B0E00A0FA852910B4239F695AF7CE57DEF7B9F6E6F9237AB52CB62C8E278717029B86944FF299B563E52DC25081189ACF2B27C4E618449F3D272B3EC47E80E48AEC69238225759EA8EBF923F4470809C4122A8F1CC82D45746473FF2BC50ED89A5C518E973B13B3F935FCC6487E1A6FDF7DFF1ECB35EA984F505B151CF5DCC2E1F2FF3894B993A8129D71819A15CD65432D333A60893ACF0C5175F7CD555573129409B174F057528D5FA92EC315DC31537D28D37DE08FD21218A030F3C900509C447489C9F89407653217488916A2E75B30987C9B72CB97C12E0B134C26CF43D10E1302DFD014921BDF394017C1365CCE1227A88D7847097AC10315CFB285753794C85D38ACB526E92235A07AB723E19D8404F3DF5946058A89F366DDA74CA29A7C09DDD47D9151E9EE3C3725B3C1E0D410C354BC5F86AA405B5F36EAC248CE4DA66E592197D950FC71F4E39ECBC8F7EF4A39FFEF4A7D95C64B5F785916AB661A66BA28CA63D12DDC5AF7824F82B82BF356DA67D0C267F20AE30DBCB8B7FC8FE4F73E542AC55B34FA95450564C98241E27DBC2414E3853126BCC24CF92364D1C8AE7A2296E319D6D4301477EF780BDFD0968083B5C1FA972D1D35058DD704E236AE234E9C73A06D8D508D954B74ACC52BFAE4EE26ABDD20BE30432D1D6F231CCDF066F3D9AA45A493B05AD8093A40D7F5A257D4B4D971B8F749BDD8286750D551A56555B3061AB69656920A14DC615B8B4F6AD80C5961225676AD981D8324B30C4A5361BAB2B235E22A0BC8124C29F9250586D7EC516140DCA82CC430F3DF4D1471FE54E37838562DAB2B12C04266940CC975AF4CE45EE881B91A64B1AD4AF6844B06928372DF69896DD1DDDD00D5306BB2D0A61D5AE2B781AA51D0531B1241025BAE9A9BDC8799DDAA566733E731F6D6D89A571BFAFD94C023FCD02E8E3AD66AF5E1B4E348F8B564BB633AD49FBA28E6ECF12741215D6AA30ABDBAE53CAF496065DE3EE054FDB01BA5632EDAF5886E4B8A94C9819DCA765008BE6FCF3CF3FF7DC7359864B64935AA6AD65CB898C9039DEC782337F95C358AF2600772BAFC7E5F1746844E34A923EC9BA77B1588D8D10840948E5194A096C905F97ABC1E4A1148718B38919D9B66D1BF965ACBCA509F3AF3441E8B5F0439DA45843557029F1B5CCED7627D6AFDF9B056F4B5EA1DFEB8D8C8ECECDCE8E64CCAE599C2D39E8D0439F7CEC31E8697C33C74E9CAEAE5CD444B4D92BB36B2FB51A03B9F4C9F8B492A41C3081939CAA70B53A4E91ECDC1B5439DC36787D2C4E28036685319E6C1E4062933427585739970D3B1988034A4A07DCFACC33CF84AD80BBE082A41091A08818E66A5919925A8AB410D58557C67C41D55D70C105783CE29ED8004310184C7F8AF74F31CD4CED6A0A122B9CD401B80B5EE184134EB8FDF6DB8564804DB5A923A16BD9B8825B002F8507C0A6302B8C575BE75C36524187C7C635391A141D18E1D7BFFEF550A212A4319D03F166046B2AD737913878171667EFA31906840F2B2F55AE2325642D03CE7585BFBEE10D6FF8CE77BE23B9C33F45012F4A15D8FE8552260D168B5574977BC5D7C918068B2EDB7F5976C446F1C5A297ADC934CF7FA7522E6C72BA89B7C4EF2904F4C8789574AE1DD50B50C0FB4FF6261C3BB18275914A169B1AA9A2ED96BC8CD421D222B9AFFB2CE0A2B19D5131788EE5660A78DA8F5262ACAC144227CA5F741406132EE2C20C72B0DC5B49D4B192C0524F25D67CAD38D9ED8F0F8FCDCFCE459682191D355B817A2EA4B1221FCEF27522E24E19550C03872DF7924D1CBB5A29B547C3343108C8CC75F527CA67F94831885ADAB5C8CA3ADAC1DFA5CF4600016E271CFED75D771D762EE3C469DE60465EEAB9E75106690E8FA3AE5E4D901160E2E48D665FF18A57DC7DF7DDBA96B934D46CB7ABE57AA95809C3A4D969D7CB43AD5ECB56DEA6F59BA07A5BFDD6BAB175DCDEDA6328D548A1899D3F353755B48BC71C73CCDD3FBF7B62689D7E429DADB01DBBDCA88F4001C30956B60E29C7495F5981E3E990491CFB7112F4FA81E77863636BF74CEDAD141AD0A449ACF992FA613708FA382555519206195022A6D53934545F5868F1358B458D60CADCD60412E7ACB3CEBAF4D24B258526F140C91E99AC6103061AAB0B541EE662D88DE25EDC1DEA4E9ECECB4288AC5FBFFEBEFBEE236D9EF83D7450B8924C394EBB72CD9A35D0527FFDD77FFDC31FFE50D03A8CA7894A603530BE3FF1C413FFE99FFE897E06BB6BE15C7A6FA2C8A5E0C4ECA5839F8F3AEAA8071E78404BC9D4CB83A584992CEE9F28C9B82DB9DF3C3BCD887E0A652FE88663E3C333D3F3D55AE5D39FBDF2AC33CEF02AE5356BD6ED7CFA59F8987194681E253F2896CB4114BA6EA15176986E67360E6BF7E69B6F6609AC9377C015D129580C41F392DFF5652F7BD9F7BEF73D930E53E5F96C0E26C303F499844D93782E8C392E452544279865B8185BD1FD027C33A352524440DF97B72B65996FC265AC9C024CD400AB6005A06EC2EBA0BA30DA5295400F58189825F324E63F9341F82B16129B1613212C716C955772F35199A9E27832A34184943066E0D9AC0C02CDB02D5169599B5B5F72D2745857AC17A7E0C3335C74D145E79C738E746D910529D6245B5C08505F4C43CEE96A829B7B41800E03DCD1E4E2E096B10D627D1399C11B89A761E5BDE5F1BD964559A64624B5F8A022A657343E1885E2804BA729337728DA027A173B6E6474A8562BEB805F015350F00A8E1DB98234946224097D498F1DB1093C5588FDC88E1D3C62D86939CDB97569B2B1E0C1742A2BABAEDC72AA3B48472A8CDC34F6ACD0B7D93A1027971CFDB4307971AF661C6A2BC072BA56DC828F9BAA82FECF2A3B69D576AB96EDA556ACAC769ACEC7713B4D1E2F37A67BF38E5B6C45BEB22DAF5C0AFB7DDB7193209456831C13E9A12B194C13036582E03889A6AA53391F8B49763B90705DAE1DB9B4E8C01C7CF0C18F3DF698C9256719ACAB2AAF7C9124B14878D3E932FBB9C98311E3CDBB30F069658430DCE9679C71C66DB7DD46BB93A6304F842C85DCA6817BFAE9A77FFDEB5FC76ED57BCD74FCD5525F7B1FC68B98B4CF752F09AC6C65FB63A36BDBED8EE71535205983E9DCD9D66CBD54D7FD8AA776179C02E551A22C7A6FF5BA8EA761F25EFAD2973EF2C8EF9F7D66D2730B199E1962DD2D97E020A653B3D323752BD634773D5D996685A9EA43AD2669383C34B2676AAAE895FD302AD8956AB58E5374F4DB6FFA3EF4999F6A0C4194A581B12731BEC54E67719FE3F19EFFFC23E1626653ABC16CD0C1183BE10294CEA9B274064C723354207A22C9A98F856FC5CA5B422AA3D645EAB83EF5A94F7DF2939F6448930D61E08D5979C76FB30A456EC744353437069F05B21849562DF3EE69465DC9C3245FC816374C154BF657B25F0C1E724B48B89524C95AE1A59EA42CA98065D56A551AF46C18194AFB2241CFB73D2BF15358FC1A8B575D6C54F0A5AFDC7ADA69A7D9C96293F662A9E2F7FB4EA1184338E2FA892FF8263CB91892764E06641A22B22189742031A1CABC2BFC4C4B9C582467B153F5226B1DBE6150DD7C59527CB0EB30B5264E810570C30D37501FD330153E5B692E2B4547D848BDECC34585539889900364EFE0002C7528CBFBEFBF5FD889E5BDA465162F421166B69894D7971005D78CF02A9B224304D64060401C415A84CAE0E3A4E168656557A95110C1E7211D1BF58132A0E003F5E2E4D4A531074347E511B9814E8E03DD7F9935B47346CC7D8019712F312ECD6A4B3BA777B5F2E68F5C09A4EAE461495EE6CECC856491F8FCCCC29899201299C9402D57C0690EFCA102488D160BA22CCD986AAA017A857A036F50812C2A57F4962C958A2A5CC25829254A0CC0D089E763D040F4C33409E1CE7AD08249BFEB2DCCAF0DE37596AABA0EBE77B3960CA562C1762D3F09FA415CB032384286FA716C47FCC85692B80A0A587555DAB4520CBA97E05C55B655C9B6EA167672EAC75A376B2A4AA51E2A549B4127B1EC42A5DC0DB49117F9BE96D7E50A6526BEA1FFC045452C8BD48989C5AC72D01F0D2621C21306409A7D71DEA140D603B36366875D195B0136E282575D75D515575CC1800D6F447D2F2234353A9A8B7AC6913A4C6BE4F2B94A499F8995C0FA49AE22D94156CE434C80214C7C2F0FC89B8608BEC406875541C802AFB3881623C095B639AB4257DB00F2585C6702CEB45277E3864DF3F3CD56A7D3A80E373B9DB1A189998599CDEB0ED8B16747B558E5BD717D064E774D4DEA66BD2AF15CAF1FF58A6E11B6BF6EB7E2D63192C542054E30847EB9D4C024B69A1D4C5C924201F7A3B813C5ED4469358CC13CF2C8E73FF0C0838542090ABBE78745A7323434D2D33A20E9F53A7ED8D3F1154BD7C8A78B887AB5658B667BC731D9EE0DE804303428124A10348CEF9976898420CC30910C8E59B6247C2878DF534F3DF5D7BFFEF5A38F3ECA819544BB48525E416283AC989488872C1482C5F833F48D6E5F61187426E58AD9D0104B87746B04FA8A61416F46BA6932ADA072FE2089D4E9D516F21D9923924851922A58C35EB49898490AF068FB3DCBB51B5EA9DDC9DC3B572368165ADA0E8590EDB4741572CF0F38F8198561A8295CD2404AE5A45253220D03112A919BB2434822C8D3C53DC22DA8111912E0352568C1A4032F220D13190067C68E4068897F50045B79E119E1C712B4504BDB0030532B247103B1351A40C27DC17EA5B2E72961B17808FF86C27EE52B5F79C71D778821621AECA4E3A080635CF7CE3BEFE4680870544EA4D490F881E8690EC5F28499C9404473417A10EDA35E5CFAA088FD273228DF6B4AD66A92B780E45C60EEAC0C61AE56F950F2481D9A38EEFCABF455A4A32F53234A9752D8CCB2098C4319AC29A295050F2F255BCB3DE08165A90CE48E99ED5386015D84130A3FA3E0323D0C95DC6FF9F44C28BBE5A9D8928E800C8A17A23E3B01CCA0082E480A6B2A0A6A9DDE86486D84A7A5F93DF42E751DDD0658CF7556ED54750A79042B4DF2D670D0BBAD58535FA54A136E34551ADA9907ACEC729A942DE8605CCEEAA631E6A3AD5B165ABF5069A1046F278CB236AFF078BAED8E6B3BF855B8BEC5D2BDECB2CBCE3AEB2C93C0400ACAF9009CA00F7CE003DFF8C637A433A6891E151A7CD1C132E3120D1AC80F8A434CC222E2A5212AC9D610E50DBF251364E7ED77B985D38CE01DF34E3A209AE01298B4724A007E691A9466644E7852F12F7C713854424B22A790BED032990E376EDC78C821873CF2C823FB489E9BED44240E86CFC8D0E8FC0246CDAA551A69E274FADDB1E109BCCCEC427362449358CDB7E747EA238C97462A828A6558CFCE692069446CDE74F0CCF42C3657C12B63AE5DA7582AD6607FF7DA2DEDC8A67E10B6F05F9C7631E9AEAB3B90E891AA0C61F5B65A580AC5B1B1B55A0EF6E6B5028EB402B6B5C248323020B719552C0D6D3D495825975F7E29F51997855964C54992AD255A59A09226B8462C3B76A7A0FAC4A520E20780A9D40D6CEEA1F28621D4FAECF038A07806265848F665FAE9D561E95050BEED6D6FBBFDF6DB31C70C3B8BCD65BA230C0C62E9735D9254442D8548E4F8808C384DFF2F5954BD14436E51A53176B056E18D6ABFDB0B026DC91633DB4E43973BEDBEEE66DF08FCA88F3F5989ED41A647A562096A586FB940EBB63409F8D66946FA4AE743A0AD03A9382B6F172F5C60345D657FE280F5EBD793B59FD259DA4011CD64366FE0AEE344D00AE63230E9DE042A2C2827899BD16EC01832B6CF835908C8C26295B722A7289157108C121E92951B586F2C0DA224623530FDFB3407DF492A4BD6DBE1871FFEF0C30FB36FE075D75D47A0B26035F96A560E3F16A64311F10C2CCBF898C55DB2F6B8D3F92B4D4086EF96D78B733BE3678C3054173980B805E4480A567A3F6C8968625BCC615F51FE70ADDA461B318E6D9C138C4B208AAF0CB1B663C70EB319280D5919C0742910DDCA09B6326FB544F3880A78B9F63527C254C3664A7B29AC97FF59C43C38BA5A49EFBB6EBBCFA7226A52681864C1988F97A9EA42A7DB6D6B4A675C396DC4EAC0D8D9A0DC71E56B9073D989B5EB9CE08F25CB2E7A2547B353EAD3630E54E60ADBAEDD8EB4076C6555461D8DC3D29CFB45ECEA3472B35A6158D0BD345948D4824A7CDBFD65121202C235562EEAAA7A27F399485DC7E48B54C77275D14913E8AE24F27130D63F5126C40DD0F4B7F3661252FA2F5E0AC9B6B078783B993E73FC65B848BF2CB12E953B3CE2587347C820D3653AF4D0431F7BEC314AF238E387C793937832C929E599B9130BDEB4B7049B828BE382471E79E47DF7DD878DF0F4D34F538B4B9465D14E676F452253366DDAB46DDBB67D70668AF128D9506E4E3CCB6DFFF84F279FFC4E98551B36ECD76E61109D99F9B975E31BF088ACDF874C7C7AFBD3C3B561D8BC8F3EF17410F9AEA59B04C3CE7674FFAB686464ECCF8E7CC9E38F3F3E3B3B0FBD8B850DCBAF58A86A2FA1ABFDDDD4EA8751DB0F9A50C08E1B790567BE3539541F89A314431146292E582E57CBA56AC79FEBF7BB61EC5B30E1EC9821682CD64AA5945731DA595C712DA5BC9D31C371D789D792E658793194C4533137B0BDB4AD0A9B0DBCEE75AFFBE10F7FC89A3089C630BEC774BD985D4C49AA3C2F62D6802DF7B3053D2435A614D310FD7224C537F401FDE317BDE845BFFBDDEF887DA39FC70EB24CF291715ABC490910A9C176C2A4D2A4E3FE9CC4B11D2F893558BAE815366E5AFFE4638FEB0E54B12E6FB02DE56747619772A5962B9566B7A37954A2B458F07A41A869B3C24C01A78B092171DA0664A232624D947A5FFBDAD7DEF5AE77E19B9B6FBE195A87D40D0C3CB0A121DE05DFE3AFCC590A0888A044AA224DCC5B2AC158F9D297BE2448633C89F41A634CCCCAB9B2B9AF2EB8E0824F7DEA53B457F03D2CFD8F7DEC63C2E874C20927DC76DB6DD246491E5B90F374D1240CC86D2FEA010AE394534EB9E5965B606150CA505D99DB50A22324D0C0B978F8EDDBB7D3E849B2AE6AB43CB856998D369D5DE1C8E5225F913324C909B1A5EC98F167F96679BDB8D0748BFC25CE806E9C988C5CA23865BFFDF6837F008180172417BDA40357933F2A070A700789A9215848FA91FC06D377FCF1C7DF75D75D149D029E9732303147E4FA828931A3EE52946FFA5BA2ADFF74054CE055765F0693F2097DEEF4E7563B4E823F2C0E80B9FE1B856AA7DF6B07FD58C5CA5123CADD9CB86B63774DDA2EDBD0822ECCE2B01F59DA9D758A56B16BF74552E90AA5481BD4B83814B0975A8E0635A76DA543D00E1C5F3CA695A449A6B23DB76F3BD3513C9B25FF1EB513ED625B163675A35617DC86E5E89D42554AA23A2A51D2DA083381CABD5EA926C00E85D548D1E4E44D5920D37098205ACCB2311C70F4D1473FF4D0436C88C45CC9C0BCD040A719CD76586CB480CD42720C1ECC81950095C9128F07E323A92C1BCDD2797C033F8AB95BF2102779031B73193018CEA80FDEE2A0830E8227E6E4EDC2246BB3280D3816EC7C2E61679EBCDA0610F49A591B83C5B2FF7EFB6FDBB623635371C647D74CCFCE0ED74718D1C1BBED9ADCE56AA7C8C5286CDFB57D68783FBF0F1FAEEAB979A7C204CE4763746402DA888CFCF4E2590518E9C28A24557E94B4836821497BB613382E0C3A3DAC7B76EFC5CB62EB15F4D5F4864C6C8DC082DEB56C9C156AEA993C045DAF6B2AC45B6EF95FA79D761A061FAF93F92E7B85EE40CC25317BC5FB142884A9802DA3AE89213B3CF081071EC8025913782C1FBE1457158F67BC02234FC6DD81BE5722206427D3F9938B33FE492E492987C71AE5F4BFE52D6FF9EE77BFCB8621C2E84B424A8D54CF0A8A52A341AC098CCFFD7B799625D1D462C18D82A858D074DE9BD6AF7FF6D91D1A63E95956565458AA78AD6E385CAFCCB5BA25CFED691309EB0D4F18158A6EDF8F60790571466E9AAF7E6E36B3A47DF920705421A9CF3BEFBC3BEEB8037A8E2292B81E4692210B285BC97CC9A411C7848A56F61B8E871A80F6BAE69A6BAEBCF24A8CA1D9F3510AED78533B231D8372C5F5315C5093EF7DEF7BD9A551973B6745BAB0E577EFDE8DA1BBFDF6DBFFF66FFF76792D8DCA82DEEC89466DC14984F98B7B315F405F4130167C4E16440D8C06362F83587854F603E7AC510949851B1E8C202333D562820C4CC4E94064EF2FFFF22F7FF0831F5C78E185181F8C1E6EC7C396D78B4B104519D0507AA86610D232E0B2D75F7F3DA940497465AD540969CA1FB141995FE7AF5CB474E5252AAE32FBE6D8638FBDF7DE7B95E1D68BF832F33B7247F92B4D3ABA6BA6845DAE6E07F6A69577C01405BCDC6F564B9D5A93B065E03370302D8334A38E847C8BED04FAB3945AC3915D53E9817077D3B0ACA2BA6355B0D352270ED250452D4BB765756C5580168C9320D29D07617DF7E2B094DA8E72A2141E70D2D7A54A70829DC4B5D9402DB29DB6ADA6A2785E597063672DF83370A7A3AC7454C7B275FA667E6E6478B1F05742AA42A12323C9871718942C72D8C424EEE0F7D8D1279D745292F5EB843728800F19CC238E38E2E1871F66304F2078CB6D476A6BE93B6E4EB4097D302B30F1A7A38E3AEA8D6F7CE3D5575F8D2BC01426DA439AEE98904349F0CB1DB96C881BE5F5A595AA32226A14DAB4862DA1EDA0ECE3A348C3C2E51F0A320981525169D84EA3D66AB537ACDFB873D764BDDAC05B43FA958A950F7EF0C3B7DE7AEBECC22C0C3BD776A95AB48F02A74239D5CAF0F0D0DA24F2C2C02A15EB90099D7637087DDD2B5ADB608157801CD16ADEF24B7064538595D30AE366A23A590E18AE6FB35828CF35E787AA63FD1EDEB65129D7A025E75ABB33367205051C27BA1E49C7A26DCD0F3737B750AB55FAFD20AB016DE77B35A1F720D296533E0025954C8CB9EB4C3F7839B28653C2E8BF6871B91AB9B49823110C0B51A3ABF97FD02258F458DF0F3EF8209193EC92CB1719CF59D15FF08217DC77DF7D74C7A9122871483FC4076683614654B807F8CA92E110134D27961605D092605AC9B15CCB0E82D8D66DC0B3761CA9AA963D4F2FADEAB63D738DB23DB176ED93CFEC3EF4E003A0F6DAA18E696B430103D5F5B156C32823553014304798CE872C4E190A9183D8B7B80E0EC33EC15667CD3BBEB9E9A69BCE3CF34C46776872329E4FE78F941AC439B325BB90D6D242C75CC0C1FDCC673E8341938E08A6ABC76FA0FBA17D19DDA2EDCF841307108741FB9E78E289B206C48FE182E1E6FFF33FFFF3279E78E23DEF790F9C0049FCD39F236719E7944D70B98424A0628E09CEFAE217BFF8BEF7BD8F17617F37499472AEB1AEF046B8A6198533299165192BA3AAD2D4A9029B12A4FDF27A71959766D2DBE0333091C1E7970EC45C8DC4E04899354DC37DF4BD4E33AE6C46AD2973656AA449499AB7525FC4B92CE5D2123F9E650B74946569C9C13C97ACA83250CB43D0E9328E08F35222A35753AB6C21A39676F192781B6585998AE22AD571FBBEEE07E8690D986619C18C6952A98D5EA91C06E32A596BA9F182E758B61F249D246C3BB8858E62553CDD6130862CC25EB3BDC88ACA7091950D83B9ABE29E6E8CA40F9B87951C47816E41A86653856DE0DBAE536F745AB385523909C24D1B363EBBED59AF50F0CAA54EBB093F9CCA5560DB981726F518DDE18E56B9774710005E04561734023B9A0C844944CFD1A566DCDB1C43B3ADEA0046C44400D0BDE11E645A97B7E6CA97049698DAD263464C766584A3F1C0D8AD279F7CB2E4927309F91CF31DEFCB9E0252B42958512C6F1AA67AE5A89C094BC8C0EC7D308FE76A401A89C8A2B4B2800646094AB754ACCE379B1BD76F9E9B85E7BE08269C5B98DBB87EE309279CF08D6F7C436FBCD27EB0CED3B858298F745A71E8BB13E39BC2401B63D56A19633533BBBBD99A29955DD85B73CD9975B5ADCA8AE1F8C6693B4A5A71D2CE22229172DA610661D96FF3D6A7B63D6B296F7C684DAFE7F7A3796A719C1E463D3FE84919D225977CE2AAABAE82DCC882B1DAE816BDC2789DACFB24EFEDA372526841BE89916E2A60CEBA949C62A0F13344B3D9303C27FF5A2C73C405A5B11DA140A2FF06825DFC55EADCA5B2C5AC2213EC92D96A90420D5346D209A816280F7A5DAC7CA5421A70FD071A79E2A118B1CB1F29FBCF565EA4366D1CEFB4DA43D54A737E7EC3BAF553937BA092CB156FC7DEEEA15BD73EF3CCE4E878ADDF0B665AC1BAF1DA820F93DA23AAA299C9CD6E0F7BC3F6E384AC2C1224E4330CB862CAC0079572924B890289B32BE5311801CCF545175D2421DC3407C7A99C5C93812C9264B11E89A0536E3076C83181182C1097D21DB2E170EE482B4F5780D791853420857105D8DABFFAD5AF0859C2AE86AD4DC5265868AA13B1A8B80225ED24321A0F004381BA8D8A50F2D6521C2C251618799A1D826FA0BEB79792DF0992459C3F38BEA47691D1B056AA175746DD171715A7D5A42E5719B9187F6546809696D9037B3510A8CA5B2C9BF6287E15F0202D152A695C070ED9934F3EB975EB563C1EBE918E581C1FAA6D662EF811B816ADA877BCE31D7FFFF77F6F62F7D4520FD808112D49432E5FB1A25C8D8B2CCE205C915419C7642C5A499A072A1C979D3A4D305737E9E18C429468F96A6757B2B50C83441C556A8B6D6D52E970AAEC54535162093675C356AD59AB50DF291C97D0D69458F0891228E00A3C605D6BA47B1A279913BC2BCB07630EE0EE4D6A7C968A4AD5FADAB50BBBB661BE3DDBBDE0BCF3BE7BE79D4F6D7BA6D7EF2ACF2D248BADC018CB617F30ACE4534F3D15034819C87528B0792931A2A2D2BD1AF322580E148F3731FCF8123B65E7CE9D588D981D214B5F710AECBC6F20B90229578F3EFAE83FFCE10F2C3623713D751FC7961BE4852F7CE16F7FFBDB3487E0C94A56B9E92920479597024A7D298D27263B4C64A82C69EE295D119EE1B92C3633A79820CB0143013CC1ACB3DC776DF59BFEEACDDFFFE7EFAF9958373A32F6E8E38F978BD5C0CF7AD80D4DF4FA1DCD36EE306B05C15A8492EEF9A369E2AC5FBB65B8B151A5E585B96072CF7C46D301B5A46C3784E9E6B889EB59E4C94AFA50186DAFA052AB37DFDC6539ED5225E9FBBA914EB3B5C094E7AEC9DD439589FD366FF9FD638F14BDC40FBB9572A1D76F3A19BD6BA881BC56ADE1FECD09277DE31BFF8035B06662EDD4DE4988294C1F37A19833F2B22C0BC3AF975D76D925975CF2F297BFFC97BFFCA5D087F1B0238F3CF2A1871EA280C30733248873957332AF96D3DABC79337C9D5FFFFAD7CC474A85AE32E8D6CC558505FDC31FFE10129F29493357A1F21A27C9C941BA3DFBECB35C55E2F1D0A1A12E7FEB5BDFFAE52F7FD9CEBA0F41AE410E4E4EEEA17E354CAEECCA76D1F6ECC8EF158A5EE087D8C96547950AAE6F29CD728BD1F4354EBA5C525E51AFCB7E2B2E95B4868BA27872B2FB9AD71CF3D39FFEC275556168786A6A7EFF2D9B1FFB836E085169949BCD1E4EE9FBA4517C5819A4C419467A71DC2A95ACE1571A9B568564DF059160E70D925967C5099572DE030E38003FBCE10D6F200504E191B8178D0F9A4D62600948D2AC35E43032888DC3603C3DF3CC33D41FDC1A1C6D5370701E05C6A5724C96983826E05C12B7E6A4ABCC65E4AF2609178997F94814168251E22B8B4EA279272E292FC55C1A1D476E73E2A7A47AC70CDC71254BD20BDB6DC57A71C9AA4A7244202DA47931E7D7CE5B2242834AF5D14D37DDA4CBD572E7551ABD51DEF17B92104010E3A55EFBDAD7DE73CF3D3429E86C6110DEFBDEF742EEB318C684F098C89581DC213F7818F178F090FBEFBF3F8651588D643CF9545232BEBC1A4A2D0DE30FD837CB3FCBC3DA228B5466CC61A1E28E7865B1206D83BC569208899354427548B15AF7BB1BEC42CD81A19FCC05DA97B5331C4721FBD7C90095A9FED571955580A8D5ACD1319CE0B6154367B7E3CA64DC8570F1CBA5A7A6672636AD9D9A9C3EEEB85761A869A648359A89A463512CA912F154842262DC288E044920010CB5945941B60C7F60824336A619AC3569E984792331CAB56D83BD79C08121804BE5583CAE7CEC052C60953BE80CF45A793523E3344C03D356A04A66510FDB48A8A5E92AD1C4F4C7844CDE8C5DEB153E408568E734D37856E9E7C04D4B7B61C5704AF6D2D69A8935537BA7B35E205ACE8F8F69CA75DF8F182B4A1731F465D729C1B6EB0713D06BE3239B2BE5B12870BB9D248ED4BAB59B34583CEC5A76E415D258BF69374EB454F5D27218FAA5B263397EAB33A9EC56B19CFA416B628DAE1BC12D7430B9581E1E1E7FF9CB5EF9B37B7EBE6B7A279C9120ECD4EA5EA5EAEEDABDB35CD65B2849A389F1B1E9E979589DE572A5D36D572A90808BEE91D9138D461C313256565EC25C291E468A68618E41109F72CA295FFBDAD7384AE79E7BEE6DB7DD068F96B1657ACCFB08E9E3AFD8E46C8CCA48B2590047D34C7ACCA93C29A80CDF94CFC9B913DF5A0C70D9D8B24C1909A440A14CA4AB4435B0A28C106B7D6C627406FE77AA466B85D80F60B78F8D0D779B2D0FDF34EAD0BCDD1E8C2D6C3F77C3FAF5DBB76F6F36D5E84801B2E395AF3CEEDFFFFDDF61089787C7B6ED9AF9F2976FF8F8C597F8511CC449B3D53AE9A4B7FDFD77EF3CECF0C3619CEA028691E1858516CBE6131862DD6E054E6173C1815ECCDAC810404E5E43864FA5130BFD21FAA9429F49C4BFA08DE00F3DFDF4D35412694EFE971AADB64D2A22D3B8A67A63C4023A180B8F163DC3093987F9625F4BF1C66825F04B219DC089D85F583C525E8C5916ACC072054CC8719A37AE171DA6727E2EC6E82495F8A94F7DEA861B6E60645EF4A81468EDB7DF7EF8E1D5AF7EF58F7EF42381A799024E1965B5949EAC6B141764B57A71F12748C689E7840286158873B1CE31BF44774BB525DF9ABA8D6E34C58EC9F325CA4FDE977E3C874B308C1C1FD66B0A49169E9F7683D462328AE018CD30962B426E1CB16F60CDB05D121E5B948484B22594B50F2236D1A9ABC90173D2EDA50CE7F815EB99945E58302BDE48A2D6898ABD285D6B39C369BCD6F10A7158D1788CB46FEB7223BCBC975AAE16D13921A0D27D718A3A3BACA234F155DCCF1A003F6379B06A77063DFC5A19AE4FCFEBBCE17063687A7686F69C408899E6A0654FE5A4B2E802B532E10B666306E95BC0E52A8D81ADBC9052CACCD29CF8D66CF387C3D89B8B02D64C46A83C4E2970DAE50A98D16C012ACBB9EF7AD7BBEEBAEB2EB2B8ABBC464860DB6A29B1124501F6172CC577BFFBDD3831D34183A90473FF8A3CB70D1A2C468ED5E05799C8C0C638F6D863EFBEFB6ECC3A8B8B3928AB2DA04AA9DAED75D7AFDBE8F783D9F9F9EBAEFDC2D9E79C33D218996BCE95BC92EDA830802070CBA5BAA5701DACA183317123431B3CB7E6F754123BF5FAD0C1071FFA9FFFF99B76A75528C26BA946719FCCB4985C4717AFC5F080A3B833DFDCED87B396DD0F93EE61871DF8FB477F3F3A348C49DA35B9E70BD7DE78E5DF5DEBFB61BB19DE70E3B5679CF93E5BC7C5DB091CE05887F5533C889FD46A8D76BB5BD4EC719A309D2C98345E582FCBE95706844A70B99271E4349C79E699D75E7BAD448FD967D7CAFB998BF9B20F056C624A053B2A768032A02E92D820165778E4694C898F45852AC92D8A51AE48E99C351014354C7877C5E78424C4458E3FFE7FFCE8873FAC14ECF14623E876CA9EF7B727FCCD7DBFFCC5D38F3D592B798D4AB1DFD36DAF86471A41DFCF6A0F74739EC08F082AD65DAA6CB7D5E96E9BEB3CFFA0FD764DED2DD7EACFEE9AAA558B3B3BFEE8F8F8D4F474AA0159D576B7B318A0C3F44035EA9CB25EC4EF7CC7DBFFE55FFE85D84B49CF889210F382AF6319458103F072332E2474198C4A518830F623F97E293963BA4870F24C04C0A566F52D079CFFD23B1432350A203377C3199467607DAD6DB401353730F726AF430AB98F7FFCE35FF8C217B06889B3E3801C73CC31BFF9CD6F98BA86B038E18413E0EBB3AE495485AC2B1CCFBC14CB7CCF38E38C7FFCC77F64C8E4FCF3CFBFF4D24B694172259B0518A2FB97D78B13754273C4C434A81C7FBE8FE990426A5E4176905C849B912C40049AF2EE22F5B853A874E9A74AB64F0A90947AAEDE412D4542A93CC7CC0A13C902103177FAE9A77FF5AB5F65E5182EBE79F3662274E405CDF6AC6A69FF25B9F56AD93DCB2830B38D06031CF672D6C8048F2486B8A96C28A6E8CCF5FAF0634328BD21DB5E5328C0685A57AEC02D9DEC763C4BD7F8963227D8CAC3DFFDACEEC84D33AAE82CECACBBFF2AF5BB52B513F49B496C17BC524D1B4C97FECFCB3E73C567FEE20DAF86A7281D7EAC9C2FC88C12B31796084FC11C71EDF1B195913D954A138613E87DD2AAB60D0E2CC9FBA8BC0538C9851283A26700D3B05C010FCC85D85B8C0F49ED9308104A5AAE6759FC381827620F8A7D40F34EF85ED44AB69DB9CCE4984524FD40129BE621BC726C66D9390C10ADB6805C5B13F764DC0B56B55C8775522E55774FED76B361D5D7CF38581C0B3ACFCB48B20EC67A68D4D7468113F8A96EA290B5A09F9B9FEA741730BCAE67753A2DC840C7CE6AF693BE265C2DEAA446CF9F8D93B6E30519C0AAB366EDC4E4E4EE0C345BB52DE7A52F3DF6DFFFED27415A9A680C3B5E34B7B0C38F9AE3E3F5D9D92928065D9AD9872980C59ABA3AAF892B849913AC3346A41DE64C63343FFFF9CFC355C2B863E36164CF3AEBACEF7EF7BBC4368BC68281FFD4534F115C3E40D5C49F07ECF7818F007F448372F548F09356BCA4DCB81C29FD0776B844084DE098D911CC8C89A9BCA289D5B7C6A3AE1CE17075576F75CCCB5FF2ABFFF875A3E20E57CBFD66AB5A281E79D0965DDB9EEDCCF5466B6EBD5C8AFD5E92C6A552B1DBF6E1A6F22DE0E140EF7BAE46092C8471A952EE747BC36BD76CDB3915DACA0FD4F068652E726395CEC0F1D5CC2930C655B956AD946BD373F370D361665E74FE79FA8D6C45678BC3A2F21CBCE07EB91BB91368ED327FC6FA2B7ACFC48008798DB09BD106E798437B45461FD634A781A49AA1A460BC8466135D7029D116794109CEB20AFC2CE29BC6FE8B5FFCE2FBEEBB4F78ACCCFD69261139B93C9117A7A36F65C5C4D0AF18222CD40B2FBCF0EAABAFA6F2E063B0E101B730A3592A47F90A8F155F9CE320A15A0678F1573A948ED10512B7A689A956AE174FCC78AC32E28A036028316D4D1256B321318605BFB219331D77795A4E1C4795225B65187232CF3044611A0ACB55DD6A9251601CF4AEC4F5E7D50870950C1D51F7071F7CF0C30F3F2C17E115482EAD32625A79FDD56EFD4764B481E41275425B103FB0741E63482901E1D6ED77B4D51AC555CD87A5D664BAB64882E8EC9BA2B2DD5C01074E46B59F684A9D4859BE867459B1B27FA97471C2D0E8C8BC4E64D8C56269F386CDCF3CF5878DFB6F8433C6C21ED3AB23C51E660432FCF9CF7FFEBDF7DECBA2F6679E794626425C11E9152872493EB8322E75F9E5979F7BEEB9C4F1B1060F560E3949544EACB628979622F9FFA8072C7734D38222AE854346268256A0E875B37325B94BF7EEDD9B1AF4D7CB277160230F187C96B5BA6726114B0A0B21345879D5A4D6FEFBEDFFECB6ED70295F71ECFFF5B37BEFAD57865ADD56AD5C0BC2BEA59C2CBB6E433EDB56A952A92B7590E7564B85E185392875A75AA977BAAD30EA8D8EC10185EF5FC0CF5981F230FE343B3B57F4824CFD0441D80B238DC3B2EC008E72B33DB36EDD9AD9D9E962A930393D39541D8527DD6A7692B081BF2ABBAF5929C3D94E771EFAC00FB287CF9232FBEFB76572720A1387C78322BBE69A6BCE39E79C81221F13C72811E9030E38007F4AF2C69C2262A40F3364BD9947544BC97E0715DB524A7DDA5F9202112E3A610551463EDF5E89C388F7654619A6287C237C03A5056B5DCA51F00DA50975F3622FC84543C15BF1394B195AD9B355D15323B54AC5758356ABE83A33CD687D5DAD1F6E14146CA43EF6AFE366A425B12E12C8047A4C3104834CF754A8D626A716B61EB2E59E879EDE6F53BD50AD2D74BA937B17124B572505A92A948B3A6FA1D49FFDF90B8F7EC10B6FBDF57F3546469A5A7D6AAD502E159E78E20958A0785A080276081850AE226439EC821812176DF18D323D21DF987B52E269A698303110703A61E39B314931BFB2B47744D5CB500A951957146E8AEF71161FF56FFEE66FE0D0AB0C94A48C10C8720F985286C96321F6137C161E00EB931802DCE2031FF8C057BEF215769580E4A28C5046089A8B99341AA22FE9494BF9B8847679162E8527C7CF58485BB76E255B80B9206524657D126F952E65A2975547108300DD996C5339CEC50CF0A6592D19AD16D3DF55064C4C2D058E2923403280DD332396CB25A69DB3643337448DCE3DB2650B24C62406C7CA69CE548680C368DC7FFFFD82D1E54A60753EA3296201FFD1F8F3C001E25FD2F853B9E747DB112F889FC91C8EA1A63DDD6AF59CA2AB997122DF5656294A0F59BBA13B3D535591CEF52ABBA441CE96432108C7D7D1582F8C602F55DD24E9AA34B0756F86673D07A38FA34627D6CC4ECF28A8F372ADDFEBC62A3225CF6261B1E103E04B2CF85DBB76C91A960881EC14DB686B2FA91F59E7DC95A6AE91CD25F8184E2EE38E0CEF09D2909FD514F06A8A90F84D951B3AC213200B8F493A2C5A2650187FE6DB718A712401ADF20003CA740070B0F8BE038C4E82D8E41B56B4A475696BEF1B4430DC18C91272B8BAB57EDDC65D7BF68C8FACC96887EB7064B96471934E3BF0DCF2F0D0B8651D044DECDA8D76332D166A9A31A735B7B0306739BA22A85EAF4101E385A142C6C7D7ECD93D552DEB6DD6EECCB75AF341D8E9070B61D42A14E128EB2EA1B6A37B5742E2C3B59D999EEB04BDA1D27A658549DA0BA23978C0A3A3553FD0DE2FD470E04328975EF98AE37EF293BBC984DE6A2D66CE49C728FE0106977ED5D4D414859D1484F178AC00E247F011D63ACA203B671556CBC878972B609123DC4584C261C45865A496E251455598400651F64C93E0ACB56BD71E7EF8E177DF7DB7528B5E23F159244551465E4A2287BA72C3CA080A0C4C269BBAD43D5D70D96EFB876C5DDF999FB3FA3E5C95B1A1214883A14ACD0AC3EEEC8C15C68D7AB9E0664DDF624D3198F5D66D650C328BA89CC02A541AB5A9D9D942A331DD6E3D31D95B33E1A58E5B2F8ECCCD2F74822071DC855EBF1BEBE8CCD89A75381D82A05AAFF7DAADACE543028703DE1E0681429F996F9AD5925EE2EE95B48D388E26B7BBD97957E5863C55355D67717CC577A1678C73B1D4A99604C368E2C64DF426AE79C61967B0A5F140C5211E80502606DC84364FAD9203A666827370E59557B229EFF6ED1AC8063D81C9A56746618723191F234D1857729AB77512275256204D7BBA922CD860769C0AC00C200B89A6446296D58B2FE1105DEEF0ADF8E50077BA0CB232EA4A0960C916615BB01AFC12B7C36A3FE9A493BEFAD5AFE267229F9551C76FE6D74C81A8560A419BCDD5499EC368369F87B38079E70ACC2A29D632246319EC08842930B5618EC6BE4158A6AD209AC364AB15BCAECA699E843E3617024A373BD188E8B052AB571CE790CD074CEDDC6DB79ABA1F701C3B9A4132B6163778EA697F57FBBE5D2BEDA409846FA680959FDACAD50D94A07A6BF53AB6B35E45F5469C26144A625570B844DF086645DE94911BF14AB9410614B040B1AEBEFAEA0B2FBC50656963AC70AC07D629D04B619D1ED600FCE3AF7FFDEBBB77EF96343F0E300D1D33A46F2A60E1B01C38CC5C9F5235CA71A660C7A6BBF8E28BDFF5AE777DE94B5FA2D06099B295734298EC55CBD5FC8ABF5A96D1AF63E0416D833B57AADDD5EA390C9545B34786C73E7CC699975D71C5BA351BF64C4D95BC92EB408B40412EB6FDD2E15FBB50ADD693E48028F08ADE581A57CAA5E1ACF4A21527BE5750BD7EAB522906617766662FD41E64C7EEDD93D552EA7A7686EAEA164B769CF4A2A483C3C2085BC5EE76DBEDEE0274A9AEAB53B6CE3586F121876C7DF0A15F7BC5E8D477BDEDC69BAEC3338C8F8FC058692E7471D8E1CF3BE2F73A7084297183A09FF5CDAE12B9C3F5846DCC548795776065CB7AA20020FBA4D21C0F89618178621485DEAAA490499EB0DAC673F21657DC5734B5B8E1055DC996EF02E6E494735E046FC92538E06773E940111E77DC71BFFAD5AFF0CC4C3AE21B46264D44A2C97468FA07D4F75E1CAF5F33DCEBB4D64F8C4DEE982AC1E42A3943954AC149633F74C2B0645B233A13E5E83058AF9F71CDEB4ED4FD9E16FA8D8646BA2E2CF43E70D687BFF1AD6F3EB97B7EE3011347BFFCE5FFF5F8234FEFDA35BBD049421DF3EAA72A7654B13614286BBAD9C4738C4EAC9FCD304AE3E3631FFBD8C7AEBAF2B3C2E849CF52E5C14C163398FD80397AACCC91A42F552FE151E66216548E6C0A110AA9D13C9C2E3536FFC9279FCC46BCB83EFE959EA0A2D518B365080B6B896A0C53F6E94F7FFAEFFEEEEFCC06F2825D37EBBF4D89CC78232D27BE14E5084600EF2BF53F6C472324F59483B011A5052F3F54C9B4B0CD6E42B7DC72CB45175D8427C7080B00B3987DCC560A5CF6D62AF5E2FC990E8468651A07E6EB48C8876F8A87A4AD403F03F73AEBACB33EF7B9CF89A6C1434A387DE02331241A04D2A99A1C87036997E5D3BD5C444A4092FA9E65E2CA2876E0C70C840E445C04E3A396064EF6AD80ED9CEF565C1D3BE76997B56A3EF040066A60D9AB3C14C1D04BBD58D41B2C4E2CAD7D17BB16AAECDF34D3C171564FBCD82F09E77A050E298D36C8D8971DF3F29FFFEC5ED759529A6132A50B948F89039523FCA5BD15CD35060FD2A525D7023034E355BC85B944250D4C62483B272EB473D24A738DADA8D796D3BDF17B42BAA4EB94DC8EF03D996EEE1A81679BB967C693CCFD6BDA76AB4DBDA556094FA74B7BF890CF61F9643F371396965671925EFA3F2FBBF5D6AFEED8B1AB5CD268DEA2379275FC4D933463CE8C75C938766EA5FAFC6E3BA9963614DC51C7AE64A2B355AE7838727E7EBA562FC2A9DD3BBD07BB08026E6A726FADA20547ABD584B2C45F93B4EF076D1C9F69C7CAB61D4FD56BD5280E376ED8F4C81F1EB39433D6180AC25EAB375D2ED9E58ADDEECC427FC303D69493B1AE7FAFD786A08CF1D241D82F978B94E010555BB66C2173EC5FFDD55FDD73CF3DB829EB3E31020CF731DD2531678641B88C7805D9BDC2FFB26F6631330A2D6420BC38542FFEF4F297BFFCDFFEEDDFC8C124F13D331B646E72E9A2C33B52C552859B2EB5F867564E2CBAD85423B708F3D6DC8BDC78A5389D18AB763B9D6A117B25DEB27E83EAFB0B33D323C552E2878D4261AC5A5761BFB3B0502D15D7AD9DD8B16B27EB2C31DA7891F1F109726F156A23BBF74E568687DB51E83BF6933BA7A07147D78CCEB7BBE3136B7B71FCC4333B5A89728BAE9F5AD813BD76DFA3C91C06A572D9B652AA34EC8737BDE94DDFF9CE77705916D172C4A8CC187BA0D9C40932FBC88A84152F47F0D2E26DD0D0B68CBA64192802A127272785795138A5A52B19342EB3B38C583267C6C804E4F8134F3C814BE1CA871D76D8E38F3F6E565F7076560C41F3003A67787D2A48DEDAE4D4250F3359D24C3273113D8232357B65925B5BA486B8A47C7D9C4B458EBF7EF0831FFCE637BF49036279BD38038C643B11B949E72CCD29A84C5F99D46FCA804A304BC2C5094BF1BCF3CE3BFDF4D369F2724245F3116325FEF751471DF5BBDFFD0E6F87B3181BB09731F58B62131139A0833968DC35B0003EFAD18F329B6302E8ECBC971444137E1062F081EAC481D0F7400874F987D364FA85B6418F256F218067C93D3D0781CE3E2E7C9038AD60DB542B7BE767C7D6AD9DDE3BA9AB8D926C57B3BC184FE15A1A52E1DB9A7CD2CE60D1D8AB49AAD13A19262B59ECC46E25962A94601805C56A418516034E5457260F9444CBC59A1743843E2E93A95CBA62E6AABC9923F958E033ECDAB58BD92BCEB2EC5CD35BD87F7FDD5027C99B93322A29EA56B47BFA2783B04C14946C64D9805C1542558B9580DD8D9FA58184B5AC178E39AD66FC7879827FE50541B7CF0C3548225A8275CAC82A0DD5873520A2EF8F0C8DCE6963DFF6EC62B61376E1181CD0EDF4F3E5E266DDE337EDBFE9905A7562666FB7DD0A2B651DD269B51792D4AFD7AB69D6ECA854F6B23490CE70C441BBD7EB668D0543E8E66E0FA67DBDD787DB6113F798451A7BEF7FFFFB3F73ED67FEFCF017355B33EDEECC426B8F1FCCDB6EC83AB128A2FC756D4B1B0541E8178B90683D4D69192DE67D857A973245B613239C54BD82AAA08A252DA29469C9A4CA2A9405611AD7045BD11EC4150E3EF860F67626728AF6A0D45952B69A1056694143803EBF64104F588BC5AEB4F21A53562767FBD589E2A856ADB53A9A033C0803DBB1748313DD984883E53CD70EE1DA5A104985340E474B3AB51B8741C5B527EA8DBAE3C236C6BB0D15E04AA4C54461037971E25AB1CB12F88C4C00FAD28653AB2B0E9D48B30DD8DBA766C7D68FC212DE3E3BDDB7ADC6C438FEBA7B72B21929EC423FD6B0CBD8F17A613CD3EEE04F766989E2547429D2B458289AD2D3CA3F541B4CE325199BDDA1871E7AEFBDF7323E217AD7AC3B22E851A8FCD9450A7BECED6F7F3B143CA36749DE1FCCEC2DAFF28A5E167F6305D2FC92123571D6891822D4487495861CCECD917193E05ED205F0E1996A52B9D5CF0A4B2BC7634B418B10B0C8477C7DCE3B4F119AADD52258CC2992AA22C9E8A56890D1BC5079A188D9F55619590CCA5C6E07820CC4D4B3F2FA46FE49A88ECC0E1076DEE60B4742D742B1FDFEF7BF27FA5400FFB29BA492842333C03A27DCDAD4E27259E9F9B662545CE4AF2833BA44D89BA44DC87BA76A7187CB6635EBBFE3E98242379F641F8A76B5F137ED0391D418B4638E39E617BFF8C5809EE6BA357DE534EF4E2D8A5908A4A83F18FBE5221940A548A1296B2CEDBCE39E989866D444192DC884BD47D86DD95C047F1A1B1BE3FA372B7FB0AE5EFDEA57FFEC673F636A83DB21C369F6D29C168D096012A8897EA5D9CD19973032A7C3A4B7946540192ED4E24C0951148BCA14F7924547B2A2A47D137701E35E428C014B94814F73A8ED9C0651F019CBD52D2DCEC5F25F832BED8F1486B3188EFEB568628EA64C9B7E8D54C395AFBFFEC60F7EE843A3C3E3D0855188DB6059E82E3DB80B14B08E91AAD8D68D2A4B05EFCFD6AF3BA05C1C5D988BBA9DD073355E0383353A0EFF6F2608BB8EABFB1725C9620466B85E7C76F733A3755C2AE9FBED7AA302831EE3D2E9B65841444538D4D0B12CCD23ED04BD7EB3DD9D245C4B135BEA714CB385D2CE3080161C343FE895CB1EEC06681D4EA720874DFA2A2E7AB1A4B882CDECACAC48496FA8A57978CE0D09AE850A9167D14583997FF3CD37BFE0052FF8CFFFFC4F59FADC3052BFC14087CA303B827D37F1F103E937BE024BF8490029B679A9A00946600F57352B67BF522B371732F669DBCD546F80575D33363C33338F77A855BD35D562B7DD2ED86AA45E2F2451D2EED53D776268C4E9B53C6849CCA94A8A490AAB1A8A1A86B59B2960364A4A522BB69CD8D2C50EFD24ED2511546F5470FA2A6D86413F7BE0050C9BE3B67A7E3F56FDD80A2DBB1FC55EA1D48CFD014B96E2DEB51DB592A748316DF62F93CA6949B753F5D258917A7F5A39F8190AFBC1071F240A494818D8C6915E20573E77A94477CDA626040AD0DFE514489884220CBA192BF6E8A38F866540CA49116DE6871293AA4B9A21A606B7F0BEDD2929C7A295466CCB3E223104F8A89C2792DF0B6DAA30FE5846DF11B552A8CDCEF90807549D0CA332F0A52653AE8817DAF7D2C695D9169A1AB44EE40104D7433F29CD4BBDC55B5A11FC48327D315C0656516AF436561943351489C0B3890E3BF5D453EFBAEB2E7C8F65B36EDDBA471E79848871EE538AE63F41ED2E197F51C0A6B38E15F59297BCE43FFEE33F0855630023C989AC93A5DC4F2A8FA89108880876694D2D1C552AC34EABDC1265F04326828CE2347D04CC8FE5CD8090D9734C36148771C3860D700A0551214A8BFB8B4D11F02B8B94A4E8DCECA72B9C8C2AA7E630ABF0E9808A8BC92C89A0A5640989BF2115F65C48D2145C54BBE458696B26794B06FC55372C5F5ABD0253FE23D987A283D92EBA644C9A709F8A01972EA51917254238B3FCBBAA02C6750950A42620690306CEAC69618C11DF688D62EB8450DF0FCA45F8B26EA7E78F3446F570F889346311D3468F697AD0707D6DC6C2518802CFB117E9DA5FF492239F79E649E8CE62091E6A8F4D7270FDD9B91DEBC6D7EC9EDE393E3C92AAD02BD8BBA776564B3A468F81C64EE826DDF1DAF8747B7ABF35FBE1F89E3F1BC659DB064DA616E6AA90A36C8F8D4E5C78E145975C72311470D6B06131872D3E16F35B42982291C934475A32D1CB8207BA05DCC99229375335140A92B3E487E81289613265A8F24E2F429DCA064AE434E0B6A1ACA147AE71C54BC97B85F0687C7C1CD797C63EBCA9E44BE0EC562BD5F7BFFFFDD75E778D5E7C6902A3288BE468FFB25C2A56CA65BFD34EC26878A8562D57FEEFE38F7DF081FBA7F7ECA9178B35D7AE28CB8BD3B8DB9F287B85C4D2E50D49ECC1005799F6B555C1769595587A48D238C54F2E74B06EBB522CEF5D98EBDA6961B8DEB3D4EEB9D96E10962AE5DDBD7EB95AEBF861B136B473663E758B53BAE8C5694385E76B5A191A378D072181E952621DB6E11429E0E65DE8A984ACAC8007FB53328B54818C3AE248D8E9F7DC730F0D174ABA37BFF9CD77DE79A799915279534EA6EDE978C901AC9165B69EA968E2F504148A99C283E1E02D5BB63CFDF4D3C4D4E05E9FFEF4A7AFB8E20A764D10933C6FE1A5D42ADCC26A5956421C4D8AEC7DD7A34BFAD6649E92C4845ACA0E4DC925C36E2AB064297D9868053CCC5BDFFAD63BEEB8832433820C2786885B408C5A7ECCCA1395FBFA123FC7954935CCC61BF81E0613163C8EE7AE7CFBDBDFFEFDEF7F9F7E1B0EE0389C7DF6D9D75E7BADA49FCDE7E763534CD1E9A16B6B0A62899D9884621C67A861DC17B61413816621D67F4B010FAC6A13DD29F106A9ACB59622BACDF8275351C2B2427A1FB2145C74D1455FFAD297C87682D7B9F8E28B2FBBEC327911A95FE7BA95E8BA949F5939F75C94374D6794824EB630E0E2492EB9E4925B6FBDF5E4934FC698737207821FE67A96B73343F762FC89D3CF53680A5B79B71EEA7BE109661C9B24869CCDE585701234E6F1C71D77DC6B5EF39AB3CE3A8B015D485DECDF0B2EB8E0F2CB2F8758E09E15D94251BC75EB56AC317CF9F5AF7F1D26BE2444EC657DA0EDBC6D1D2FCE152529B3553D609A0C9FFCE427BFFCE52F63E831706C63275496F80652E99FFFF99FF528B87616E0B50B6E5977D172CB3052ABD57ABF870DE3727432411FF1093A9D35A5E250B938E6D9A396AAA489F695F553360AF3F3B37ED0763DCD4309E99DF5A50A36ACCD3A4FA9B0D369C789065E1D7CC8414F3FFD071DE6B4AC6657ABAEA1EAD0F070832194A999A7324C4F3751902654B118743B0BAFD5E1A0D76B8D56BB89D9DFBC79FDCE5D3BE1BEB314878F2A168D2860B3DC9B03CA582566E8FAEBAFC70EC1749E76DA69F8796063F0747CF39EF7BCE71FFEE11F309D1410101CC4AF4BA98C28630A2CBC88C814CC05D9F5082F64B776CA0EE2BC92AC7707841A2514FD5DFCE994534EC1F4E1013077B82937B36660986F8E8F8D4FCF4C8F8C6A368672B594B523C9CAECA02AE617EC8CAFAEE4A89146E3E0430E0C6676CD4ECF3869E26296FB6AF34879DDF070777E7EADE76168E0FB9692B4A8AC8A63153CC773E04447996CCBBA372A1BDA37B25CECADAEB2FA49D249A38EAD7CC78213DC0BA3308EFAB56AB71FC48ED7EA079D386DF6F1280E747337E72B564B69B7C5D15F31C183F77DF18B5F0C6908D941892F240912F314FE748C2D0D523228618258548073F12B4C7E469829ADDEF18E77E0B28F3DF61893BB92E8A265CD083F814BB8F2D5575FFDA10F7DE8139FF804142A0E78F7BBDF7DFBEDB7C38A278E89810D338B2CD96B91EC19EEA14570BEF9A6A9D1377E35854A1BD18CF4AAD59D665AD2388BBC6C1C2B3AA903D68F39CE964175A28C26E76A299C4D98F584F5D3A440974D27AC0B58C9DBB76F678842F4A234B4E064F1CAD8084CCBA93C08C15185758BE371114A3D3A4F705BBFF7BDEF6154E59481E0330D0E0A74FC7BD45147FDE637BFE16220B0885A84749534AD24E2853FC1B723A5DD3EAA1EFE144D6CFE6A8E305BECA559C91665F7F264B62453CC7307BA439A113521C5E3BF94F9182E1A8BD47C34FE2C03AA290818A2044C462A7AD29CA0AC084213C5E05F56751228233D0F787129341081692DC5AC5939BB0E771691861C1F01C9539CB270062AFFAAABAEC22E836376DE79E7DD74D34D4C29AABCAF115F8D92939966582190E42A2F40B50D220776DA664A48C2A25C6C18288C21DD2A8C2A5685694CD806F50A6E44DA4189594A247CE50D09ED02CF80B6B9CA6BDBCDED4A85F4DAD7BEF6C73FFEB1CA3175CF3BECF98F3CFA58C1AD36EAF0275A9572ADD96D432F66FAA0D30BB3464E4A13C9F603E8DD52C1192DB863565A0D032B8E123DE07654AB97FA7E2B0C7B43C3356CEA454BA7AF8760CFE4AECD9B362569F0B6B79D74C38DD7F3E1D9CB082382F7DDB479C3A38F3EAADDC7600F664D597E6A69B5AD07215BD8E3E318DF997A6DA8D56E4F8C8FF7FA9DD7BFFE2FEEF8F6774AC5C5601DEB344C108129E5655710149066FC098C5A6832EAAC4D9B0978113144B642AC6FFC60C6A952831A82213E2E65E24DF0EFA5975E0A092E5DA74C189E32F002B031CF39E71CF995F385DBE1187C0FA78A6D5C19AED18BAF58E9FBFD35136BA667F766A18B8CD5B25E85E459989BB72D552F176BC5928A42F8BF911F14FA2D0CE0DAB1EA48A96CF783F5438D896AAD3D3B5F5868B9A956C01565D76C0BFE71BD5C2E16DCCEF48C06586A47557BC0D0A6D0C189652FC4A92ABACD24DADBEFF66DCBAE94034C71B7D7AB963BBEDFF2C3726364D7EC8253AD4D37DB6D3FEAE5A4EA94E302BB904D3BA096C4646691C040AE4BC2F53852E73B464799D2136925F89D818F502C31EA20123FCD5AA6E3A9B0E1B1D5E9D4720A184F1354BCCABD10A1EDC587FC181924A225C0632B635AE629A420203A7A458FC1D48BA6ECA61C7CDDEB5EF7A31FFD48F0E1905692965EAEB059A605C3E5C1071FC43A84D768E28906702B821292C0AF3C98008EC4CA611C828E382B2921E320D720D118C9B4722A0F1C803184F079E8A1879CBC23160E60BB2AC292F16535FBC094649F44286CB613C6C571BABC2361EA2AF7E6715FFE89C39EE67556E2A9884E627F495AE4D4FDF40565EA1984A43367E5F50803B8E8FF73EDABF2602F79365887430743065998A4B8B525D2A3F22E3BE2AD4A593689DEB8A7685CAACCA7C43293D4AFC8792C666904C41A717C4F481A330854C034953EFFF9CF9F7DF6D9C40332F5438A2E9C0521C6623C78749069F886DD51E9A3DB46153E63212AEFFD2A190DCC3234EB35D75C43863209F84B6A83F13F1C898BDF78E38D1FF9C847C82E47252D2EBB50A8F25C7224E09A9FFDEC675901C5665C69D6388E44D66200B1BCC5A4A864A8808B7FA0E12693D35494B8E311471CF1C0030FE01BE2B725ADB9AA074C1B47CCA571A8AB5ECF8CBF2923F1E064AD87424D97E47A4E258C9335A31BB44F9CF9B57DBF07B3CCF5F0345196512F24F6B095965C7BB8E08CDBAA9E268524D64FD3EDB61B43B538E90761078B84D8E962A11CFA731A9C95EACDDCF7BBB39DE9934F78DB3DF7DCB3777A4F160977CB95A2D2C95188F17EABDF72ED4EC6E8D24BB51FAC15B06EA897EDB2A1212CB556A958260B87EBAA0D1BD74DEE99E182964A7F139C2C424A5C5B46EAA409CC00FEC22CE94973DE35D10D5C25D8CC6CC3CCEB0B444B0E930C2EC69FE8682C3238D9DFFEF6B7310B2637108514D73455382372245260F0934816DE427B5A7E448FA4E7EB4C861FF8C32343F3737A5156CA3035BDCE5CEBF4F7FDBFDFB9FDB6F985EE960D13636EB8776ABE64AB7543D58A4A2B892AA71636E5818D869D7565810D8209A8DA6EA5E0603E129D5126B0328DB299F0531BC3EA17CB7D2B6D27E1421CB654D2B3750D626229BF5EDBB9676F2F5298B09EA5AC52C52E1567E61666C34115BB18044BF71582962CA0B3B401ADA4C6E9254883642A3F6A5F8A1B6C3CAA67495B0A6E8EC92AB3F4501AFB30CBC5B02763158C7FC21EC2C310A8C5F8AD647C697E617249AA40120361A520FCFECB5FFEF289279E285E88893B5BEE30899266A08CA683F840FB08415391D04E975E17723BC1B8AADC91E262E32BCB97A2AA939C5E5E4247184F8C065CFF73CF3D17F68AA0A625F068E73D7D7118F605438E4CB5703488AFE6F24E73B436BE612F4813FF22891BFCFCBCE73DEF91471E51B91535E0E250BECB9697E8B169BA491291AF2384FB129D66568806AE3858FF3F14F08A3A5819E159E9D5219978DA165CF3E652574A0DC82E7924167AF07472CEE0C30509AF114344E01223738C1B138BC4320A711BE4318422D78C870BF489BB46BC1A16D31325C7788670FF0940C9EC4A209782BB8989BBE0820BBEFFFDEFC3CBA28424253BE12FF44A29B4E9DDD26CC253D1AB61D6499625C42F1639DE970D89B90285DF43195C2E621C8B8DC5C27AFE2C8D14B924041CC7E5C4B7C038C02279EAA9A7688E53C8D37A5B8558637898C137E20C3FF4A10F7DEB5BDF22ED08B3688CD8D042D7ED2074C0D3ABD746A6A7E75DA71C44F1706D1C7B737404B67CBBD569BA8E0DCD8ACDD8E968A4A855A8B84E15DAD7B5465D7B043FDB165C40278ED2F98569F8BEF54669EFDEDDD0B56C40313A547874DBA3076D3870A1A9DBDAAC5BB7E6C9279F8C92C075740545B1E46172BBDDCEF4FC54BD023FA36BB9BD2485EAED6B7A352BCEFC27162061945D38E87D1805FDAEE7398D46656676CEB117B3B0564EAD2E05E666964824A05408686FBEDFA7B4A5149031349D068CD581071EF8F4D34F4BB7794916F216B425A5621297C597D4EE5810DCF64EDE108621200A23AA07CCCE3BDFF94EA1D4606047D2390CE0B0828540472BA3A27BDE61CF7BF8510D37B51CE5F70378C00C44D74B05BF171CBC79C3B6EDBBD60E55866A75BB35E95AAA562C542C5B75FA9EAFD6D60AEBC746EB6154482D0F4A3D0CA186BD2472313896D5A0A2D4EDAF7437343F517E62E187AE570861F63AE9828AE6A3A01D45A16E0C6D6FEBF60F7BDE61FFF5C413E77DE292ABAEBFF175FFCF0937DD720B36FD4CB0B82D5385CB3E870E8DD315BA978B28A782140A78A9179436856A2989BFF8611C3D3AB5F8D317BFF8451C7CFEF9E74B88986B839B4A0224D896B8CBC73FFEF18B2FBE58C0CF02FE1274B45969C360262F2B9D03E46118321598C90095D200E8C954ABF203DDB54B2EB9E4739FFB9CCED1649202DE2DC9655714F1E239A9DC2196849F5A0A8761AE9A6E19D692B428E7B399F9022B67A237DD47B10CA862E9D299ECE5FC9805DCCA28791263971BEA6D6F7BDBBDF7DE8BA9C4405D71C515975F7E39A689E468ACEC4FF31E0CBA0D79E64B309829082FFE953F102949402F3B4A91085ADA75ABA5E4CFD2E9C19C917D941DFE773FDCCB69D61A8FEB4AE20AE9B2121A2A5406D213A3893D7D44AE0189F140C233F0C6EF45C7D0E25F5E554FB4844936679275338027992F3C362FC28010BB59E007F158E81DA639C3AB295D055EC7DDC175280D3C64851035695A18348028BA31B9B817BE240D9C986BD75E7BED79E79DC7F6A3A456A5FB2EAF49958773F1FC69569EF7FAD7BFFE8E3BEEE072A53E66B2CF0C6132FB4BB35B19C932B57AB9F6735B6CC5894F0DDE3E9A1E0C854B69016F802FF986BA902C1B8A62A11A06AA54ACA689D3A88F4CCFCE56CB550C66928661E4777A2D5B5923A3430BDD5EC1AB43FBAAB861A575E841D72DA589B571C301FFF5C8FD071EB0DF41076FF9AFFFBA7F7E6116B7C012E9B6A68686F4867FCB5FBFF90B377DA152287103144B2A4EA08D8A90873BA69E29DA5E3FE955BC8AB23B71E227690F0AD8CEDA16C7711A47ECB9BB303C343AAFB7108485B566CD68ABBDD06EF505EC201CE25C6A03A92F53885C7FFDF51FFEF0873101871F7EF8030F3CC075264B4AA24302B6246C4DD86BA97105E56FC2E52914485C65D6B062F3BFEE75AFFBE94F7F2AAC5B4CABD0796236E24D6F7AD35D77DD05298073B128F18329C7A178B66DDB662B073BEDECB3CFFED8272ED249B8542B15CC20FDE08AE778296CEA78E36863ACD178FC991D5B2B6A78A85CB46C2F0EC74B9561C755ED6ED0EA6EAED78AB655551A9605BF12D2085BC452E990CAB4A56E7B6685A9F253AB877BA46A328A2BC30DBFE04EF5DAB3A11F7A6E68A7DD7ED0F6BC8576BF13A9C69AE12776CED7C7EB4D3F9C6BF6DB4E563C40E63CCB16DE92307E0E6D2EB24FD248E688A9DCFCA7F5CA78145EF92D6F79CB9D77DE49035C4C166112E5FCB2A72F15B9E4BD784D5AA25293C6EDC7FD4970006519D53FBD4932CD3214411F0ECE196CF933CF3C139A5E6A66A4252D5F04070BB590190CB0F20A0D73CF9A4B94301C063F08B012D6C615F73B0EC31342B5D021C09726DBC0003486917C221504B445D37039529A1F7C4FE638E67AD2AC12DACA51C774FAE966A9CC808029032188256D560C0B5088FE8DE4953938224C3917AC57219534DD1A4A6D3C2AE6081767D055E4A354313103CA318482FFE637BF8997653E9E3AC3EC7FCC0F69444DA6B3FF13BD2BA773AE71EB37BCE10D0F3FFC3076AE00686D83B84394716AB01E9A7A5A360501222A2B391194328EA11DCF9CA309BF97634E3AE9248C0383BA5C512C3FB196E1C6A5164008C5B85099AF648D38A3505C24B2540418C5A765CC9CA60F871DD60316D89E3D7B2457C8D522380F0A5E29BB6243055E930637B71293414444B2BA015A0C9201736A8673181BC0EB40627045E15F3C8914B90DAC7093D7D68C0430DB8D31E122945E6D7A578A4D3190C59170071737A9E90413C1B1E6E5683A59196721EF68E1A64EB9546C14BC32EC1E5C157A2E4E8276BF0935FD82171CF5B297BDE45BB7DF9E44F097CA2AA9D969C3B5873CB7E238C582E3763A1AB39EB9ADF19E49C84AAFD3EF8C34CA70B37111585A85A2675B6CA9613B1EA627E8F5DB7005E33474B3808C8E3EF577BA1E663409A39E7E296B3107EC389ECA713ACC826095E075B66CC104EDFFDBDFFE96DE098698EB66C588900C97B5EC43E64E8CF8C1071F4CDE1C016111B6A68C9295E38F3F1E3A60C5EB53E2637D24595B4D06E2586047765F0EBEF873BC3593555400584F54D252DF06A981BF62C16925B47B57210B2231D4C16D16417A96BCA81F0E37EA69BFFFC5CF5F77C985E7CFCC775E74C4FE0BBB9EAD595EDC0CABAEDAB87EC8F603AFD9DB3C321ACECED54BC561AF887D003B109ABCE85A254C7F1C67E5FCD0134E68295F27036C38BB0B61D4F1AC3995B6556217CB49B1B4B7DBD9393F5F1CAD0451DC8DE36EAABAA9DD49550F06540C877A687A7EAE502A6E39F890877EF710DC604C7041DB2801653D551163A1928F111C8A69564BDE4E19BC866C1DCF20980CBE09D7920492F4B9A2161148A7E940B355DFFBDEF73EC2E5303B5C5D829EE5CC8A2BC629B38CE222FA37A4FB6138844D2AD5B28A7E79CED5D627931D6C846C65FC245213C963045142F097CAF320A6B56EFDB132C50101C4D329528E3AEAA8279E78828DD997AB25FE8CFB325B8FB9C3FA24A726212A9492A676E7F194FEB46328CD898EA6BE5199714C3C1D24F562942F83CBF2071EC6BEB0E4B8660121362C79EED29C1C918A8A35AC9C653EAACA6D74C1638B03CDE1E5DA9092A1812192F8B95962BB8FD4C08ADF4B958E543D88CF4D5A63866A08D69124B795F35D3B79E30D09E9338EFAAA57BDEA273FF98928216A20B2B54C4C4C4C4E4EF24D1954E39AC1A5BEF6B5AF7DF0831FC460EA9685C3C318A234AF811C78772BE7B5A6A7AE3227C4C410D04EA54C932BE021714768472B47E9337C2DD6B0D96145B42F0EC6015806E79C73CEF9E79F6F16BC397947262E36865EE476B4AE707D986B2CF95539990CDB523154C07827179BC970A9F256953483A84754EEF2D208167DBA643F0C6C2AB3C9B95410F118280F4EDBADB7DE0A71A305C12A0AB8D70DA318C61AC6C883131C84DD72B9343CD2986DFA49ECC4919BE9E0A2EB54E13AEB78C85C0B22AFD3D10228F023B241359B3072E79515D94E8CA1B36CCDFC4C53A0D599CEB0AC107381E3DA14017A209CF94E772149D95F2BEB3AAD98665892FB51397801B37FE8A1876EDFBE5DA213FB1640F22753FB72885878FEF6B7BFFDB6DB6E8352870CE2F19C24E1B35579B67F350137D0CE45AA564CC0C2006E16062C0105071C7000FC60A21ED8E50D23C3C4069EEAAD6F7D6BA952EEF77AD55AADD36E7B2C5F863D383CEC477EBFDDC3EA5671325474BD34DEB47E7CD78EBDE5441DB67978B4580CBA9DD8EF397E7CC4A675AF7DE92B1EF8DF3F850953F0A372125792142ABDEC5845CF1981A0B36CCD269B581090BD24EDA54E00BD9BAAA6AB5A8ED5776DAD800BA5661ACF87FE54B7090F144BAA9B58DDD412053CD94D6B956A37F44F7CFBC9B7FDD3EDFBEFB7E5F1C71EB373C6AE81A8E9400E4CE5812C95D9C8629652AC3059CBE96028891C64FCE6F2CB2FBFE28A2B703C0920B181AFBCF24AEC2B7179C90DC9EDB77CA638D44CB01149840B7EF2939F54995B29470A104332DC37DE78E3E9A79F2E0F2FDD9CA4F992D9F76D3545C8EF25FBEBE4FD85F88124857CA1D742EB591222785A8A6F526C4A93A215AFAF9666B994D14E9BE5EC2C6DE768C80619D856744F29D0AFBBEE3A8C33DD23332AC874A394FD38463743F1392882F93A661742692366196C8E645CE180734E21D00E3AE82098AD38DD940FDC685C63ACD8965024A584998917541ABD978122E38199924542716AAE8AE54266F9877166A80A36C7E5E9423B2A7B418A88245E22EE9644E9981CE16BC2C2800CB4F2C66B8CFA30A42F424C82A00CB130528D7F313ECF3CF3CC05175C70EDB5D7B2E30863F8F22203181A6A59B3DE442E8ECBE2009C2BE4FC1C259C7EDA69A7C1BAC534E1A6986E42AE04264637972EB8640A18DA347BD870F6257A8FD714CA233A2D6296A5594F6261DEA0E9865FF12F8E27163D35DAC0082841A48DE03739A4E2DFA73945D273D9A3246F044163393538336DA39903051FF1DCB2315653C0810F1BA717A54141FB701E74A7EEC21EC785F25A2CC83872C2401354B16A0207548BA3ED56B7D11871EC62E0A773B3AD7A7D388ED24A158FDE0BE3B6B27CAFA0E94B611CE3FDA162172372CAD6F41E929271663BBD56D6E7238610CE4C512E02CF2CCF32502D0985A9CA3B9CD3DAF853C014E626E1C660808576370501C368694E25A6721B761F962FEBE8B1C18831917672F81EC2E2E1871F4E734A109A96241396BD2D20ED012145A9D7ED75CBB0E0BADD0D199FF0FCDCDCBAF5EBF7ECDE5DAD55BAED6EC1B6610DF97D7FACEA4D8CD6DBCDF9B18233E416AC9EEFA9B85129B9815F8BD2FD87C74AED56DCF32193F61F1919AF54F07D12F8587A8D2829C01E72DC384D7A61D282E39BAA44B96DCF69AA78D68A7B3A310C5D9BF61CCB2FB833A17615BBB156D55D657512AB17C750C00B49B1E3F7E10107496A39B6DF0B5C4CB11EDB548C56BC2F594D301A12AA65088EEB5E657E0CC79FE15F9108F23323014ED6D159CA09644EA3A5AD6DE96A63303FFBD9CF7EE2139F307393425CC58D8D7FCF38E30CA85565F47E3685EF721C99E03B7030E60E77E4F1B27E78B0E910AFF881E52A21353E958833494CA89CDF40650173566D11D8C25C9A59986B7E4447DA598709957B8AD24A5D65716032499955B3036F0DCFE9AB5FFD2AC6841053B12C09FA8DF386D6B1D1E068205F232C9EAC691968052D3FF05D044EAF96A12C85564922A203C10938521B376E3CF7DC73CD087062306B9A9E9C64C4CD99E563080A441AE9A8FF66A441E56C013C5777B26936A5A70B2D3695199DA9D1D05ADE85FA55E53CE7B23C84CB9A2FC5861F587898231852E2F02D52E965B6AF6482A59689AA572495E9049BBE0AD3B42A3752B93C88B63BF3CC33B1245446372445B72A2F1B918010BF17C351421102CCB6F2F6A0924919E0DF3501835479F8F98D6F7CE3BFFEEBBFE20718DC3007C57C64A401373DF1C413BFF9CD6F32272D9241D246B27AB9FD6110C0A0A1BA158F9F01008EBF45B7CCACB06C641F28798A0F739F9B4B4D1637C55C5F7BD32B85A07BBA00085E7E9C68368C52A9502A6BA6BA6EA7CAD383B0EF0730A08242D12A14DD4E2BF1DCB26397CAA5C61B5F7FC2FFFEE92FB64F4EBEF088973CF6D803B57AD12B249DDEF442732A4A7BAE037F17DBC9B2350DB50D05BC08C18F21CB7B41B207B783BECF9E977CFA7AAE83A06F9AA5E24608EE94F24842FCFFDD5C8EB9D64D5C280596884BDC8E85A7AB09503EA1B85CD863975D76D9473FFA511A8F52A198E4E4A504EE3293C718A6084AE6CC88BD12421CCCD578E609293D821A5CDA84A01F1D9D9B992D788E95A4B0D636AF5F3BBF77328DD4E68D43F1C242C3B5ABA95D2F7923F5AAEAF5ED857643397F7DEC4BA777EDEAED9DA961BF6121418686AA58509B3181050F1386476AF5836618F5131B2B60260E1754DC293A21746AA4DA38A55C7247861EDDB3C74FA20E1570EA40314319F7A378AA974419BA20D2ADBBEC343787306FCC7C8B0E867F79D6596799797709CB1306291364763BC1DE8076FCC0073E806360D562842FBCF04296E1D3C13DF6D8637FF4A31FE116647F85D0C4F8D322C6A8DE70C30DEF79CF7B842200C348F65622F2B8A2B66EDDBA63C70E21625C9E3E343F7020AEB9E69A8B2EBAE8965B6E21E8468097A667CF0DBC0FEB90F2850046A9D4E466675EF9F39FFF3CEE8575B56BD72E525E306C2874D6C258B2E2F539ECA61FCC75CE5344E90E08A6E59B45DE88C7336FC261140F8932578AB9794D6E28696F251A1A7F124A32E84B084D2E78B13E45E3CAB97C60A941102D25969C84A3B0CCB8D170220BFFACBC9FB49463495190B5B41254E50429C71D77DC6B5FFB5A2C57AE1911F1FB9003CB3F1C04717059D296F5AAF165E191FC813037F35DACBC9B0B4317720B5E8D21105C0DD28923F6CA57BEF2E73FFFB9247A999A25FD2429B4241E6072434A6DB74C749AD77DD939C5A93824981D9553B0890A9736AFD44AD80E921BC5BAC51EA4397BD86187BDF39DEF84298CD7A7F72830756E492A38E9BC69FA9C9247E760D2EDC665E9FF70DF0DB07CBFE8452FBAFFFEFBB98404C829D525D4F78C19E3215FFDEA577FFBDBDFE60A940E3AA6F36D59CB22CFB8316BA579A818505C5E82D5E46623D453DB2630405652C0ADA69FA5A0F5E086910F959951C5DA6130A1F7AD8389ECF7FC6610B632B45462A9D29F1D75F46F7EF360AABCE1DADA85767FBFF55BB6EFDE5DB46CC785F7DCF193A66345A532BC81B8D7EF562BC3F095A17DD39477C7313E947A944EE121923482C6E5662B952A6962B5DA73E67E504B0B2831647835A9D397ACFE8AB263C51D92E6BD4B05C5C3FA7D729332C3C1F9A0AFBC8F1093A40A18ED17361622F2C56B61365156008BF0F0161239116382EB95E7AEDBA0FD5DE860BA14DC451A33DCEBE3816A70177CBFE6D9AE958C0E5542BF3B6CDB435EA16EBB25C72A3AAA9424C3CA99289447C35E67AEE9066A5DC5192E78A524AE148BA38DBADA3B5B2E164A8562A2D2AE1FB530738985ED3813064D2BE9953D28E09E1F433A46C582373AFC87F9B900EA1B8615DE5787A02DBC333CE05DDDA85AAE2CC05FC77876309E63F38BAD2FB47C217D31812104CD5A06F983329059700789A091DA2106A289EBA1301AF0D238A426B846606ED416B47B70EE17BEF085D34E3B4D0A2EC5434AB35A3EEA7EB35D01F3976A59F1AE9551AC602298C51728A69942A6F740D9644A93E50A52653E045D491CC96A1CC823FC4A3001AB7D18CD8280C3AAC06531500C42B29063DF4D44A8D1C587E39AA7394BEFCAE8333DB8714C81C344A38C8695376FA61F4661F7C217BEF035AF790DE4ACB4BE60029E83404C1C5D25161A89D3CFB016ED1E73DBCA8C30004EDD203687191E3311ECE2AEE176AC0C943026AF6C32779A0A585420716164B72668834B57FD773EB26C70EEAB5EF5AAC71F7FFC61DDDB4DD184C28345D162FE8E5D58B81D842ECACCB972354A513B2D1B29B9564B21452AE7E63CE8A083205ECC0A3D128711F94CCCA3E00FD452E4A02860EE97246FE420B4F9BC08251E17006F413830DF911E2DCC17320B711948B605B7806EC292268895F75D919E4C2CB081BEC5521F28F6DC00F7380E80EEC7B04B3CC6045B50EA6223CB2899A49BB21E2C593492BD50FF1F6B6F02264959A5FB7F91597B7575374BD3EC4B2320A22088023ACB1D44FFEAA0731144940157560165DF6407511490E5410404C56D80514747BC5E65B83A5E441904940101071045767AABBD2A33E3BE11BF8E774E452D3373FF371F1FCCCECA8CF8E25BCEFA9EF7CCCCFC47ECA5EBB4C0DF4768FE7C21E8D6749974694D9666750E4EA1988E7CD3E27D7753EEE9E4D4F0A47CA4B66CF0E9A98E7679B6C17A1B6DB6E9568F3CF2D8365BBFE2D1C71FDB7CF9560540B660811E9E9A1EED1F680E950533050AA97F436DA1AC606DD2146B081AD3E8C4C4C874A7386C9D7CAA5C511D9BDE762B6B15BB70DA1D7EAA6DB1AEF30F905767BF78F0F904504D8E4497DAD6B44BBF4DB8DA28794409EFCF278FBC22144548E29C79E699D85F866BD668A2B3D0B43CCA7A200312E8911F671D68BE60815E8428D97BEFBD7FF4A31F69757B8A9E65ADAE324FD025BFB3936FBCDE407F5F73726274F3C58BB3B10939AD52C0033DCD8166D7D054AB7B727A59A3D3DDC937E8ED5F560AECE991B5D954DEDB9D36D6B5BABB7A6928349D0FB7DBE379369D35D7B4DB6B537BB8A721D763F5E8C40BC313A359EA0C36A707FBE5EF8EB7724DCD586A8E750A0F78AAD55E359526B5879A0D29E3EEDE9EE9C9964E6DA760B1E975992F7C0B74B2CB663636B102B62BE6F6C0C0DC1C95D2BA501BB3D1461B3DFEF8E3F4A1824B96CC900F213464FAAF3CC833CE38C3219308B2039669636BA79D767AF2C927CDE69FE6C9E032D4934F3EF9B39FFDACC3D4B18F026A0F435B8FCCF3CEB97FCE3EFBECF3CE3B0FEBC121193F02E162EC098B57533FC6F6D20B1888911DDA4084C81DE800524D82C76BEA730A63C0BC680048520C17EC18829F31F64E9533B15C67F7A9E642EEA36E21ECD375F446CE8AD4031A1D0D842A9D3304353B374F2E50DF4753BA1529891E371B48331B1FD590AD685CE8DFB19B9B335B27FDE75F8891183097F3A0C7A43C46E3A427B419CDCC7E6CCBC0462A8A874DCE800DADD04E73F05677E414D070DA354BDACFFA508F13AB927831BCD96233AB6ADE20D0C6474F815E4A17D787CEDDBAF31267DCA45D45FB9F32DDE3AC472A713090D9EDB3CF3EFFFCCFFF3C1FC8C67A2DAB7AEAA4CABA0243C02383B127C9954ABFDF3CC1A87F379C704088E64EA02FB917B66C0A3AF4DF75B08F93B3EE11C09285C2CA39CD614C92054058F0428C8D8FB59364BAD4F6BAB45C7B7AA3428B77F5944163F9AC3A6CE3ADF6D478FB85D34E39FDEAABAF2AFBFBCA8B5F5A8CB2919E7D667CDBAD56ACBFC1E2175E78EEE9A7FF90A76CC9E2F5FAFB0627C79B25C346614C15DD091B5323632FAE59FB522BD7BCCBBED39C92FAEE481D0C0D2D5EB9EA791470391D335604892C35EC70EE02E8C4F95E7955FB083CCAA899C8E4EC942155AA735E07740317440CE987B49903D4AE4D8046EF54DCB091BF9A280A4E9249E30842A2B9172D1E624FB7A6A7FBFA0B40967ED5DBD7D71A9FE82985C2404FB7F4F0605FD7C8C8F4861B76F58CB6D6EBEDDE7870B0576B3735362097A2D9BB38353692426E4DF74CB6B4738BFF75F2A5837D8B0707B235C3DDCDAE9E223629F7388DCABBED34744AD64C4CADED4AE3BDDD533D5D13ED7C78BA3DDA48ADDEEE975A53938507DC1A2D405BD96819829621BD521B2765B2E2A476A66543A5666B1D715521E3A4422407D9DC9205B2544E3CF1C428F55C937AFAE9A7FFE0073FB8FFFEFB995E1AAA9367A57645136507170B06291309E5AD502FBAE8A273CE3947521830884B7E5395FE71DA126EB25D77DDF59E7BEEB109B500E8862434D299581FA7D2B946E405827B81088AC6E08A64FD70BBEDB67BED6B5F7BDB6DB711B74F81C30F81423A8381E18553A1315F8A24F63A244848AE84A746E29BA170B62EF77B54913B3F6A4AFFF22FFFF2FBDFFF3EDAC5ED6B38479E01E8997047B0BD1CEFE1645D72C925279C7002959340CC76D86187071F7CD0781F2ECB08C976A36E4DBB185505AB8645459E528361D181FFE0F3793209FBD70A5B71F8F041B10F5C2B855EF9AFCA19B75F03314EE1062A0DA34463D3DC62754577BC11A8E5DA551F170FC6C4E9044850CF24565D428916D1772EB8E002997AAED08329055A373DA0DB50DA1C6133101BC7D2C237005BAA0F4F3AE9A4B3CE3A8B3A7E169A8BA7AA3F52ECC54B3DB78627EB4A5B1D6FC4712C423E51358233B00F691B917146D6230C3B9F7A6E6D702E339F07D611D3DE69215C82A549DB7CF3CD1F7BEC3114A88DDA34B3136216BD3787E981FBF3862095466018370104B6EFBAC0FA3C0AB8F4BBD625530B27AC3DDD48C5D5BA9B9B17FAA2AB87BAA0E969E9E002C9BC68BDE9679E7F4A3FD6D70706BBD70EBF5C80615B9DAE7CF9B265CBFAFA0B22C0C989A9DEB2CE786C747CBD259B4B8FE80B05C5DDE2BE46D7E4CBAB9E7E71D5D33DDDADA9E90949BCBEBE9ED15109CDC62BB6DD7E8F3DF6FCC637BF5C4D816541F13F66460B20C12AF18AE8716FF3390F40FC67346510BE9189898C5D1EDA55E681A872CEEB033B279B7BECB1C75E7FFDF5263137801EB9D0A8BAC7DB9F33E03E55A92FB7A6877CA0EC16D538F8E083AFFDC217966DB4D18B25F06FF192256BD7ACE9A2584BABDC6C64EDCEE04073A0BFD9694F6DD4DDDFD36A2FEEEAEED57475A6869ACDF5B3EEDEC9E9A1AE5CD27730CF063AF9A2942FEEE9DB606860B0BF6FE5EF9F6A668DEEA2D56897ECC0F18E7470D26CCA091E6EE6C35DCD027BD54963791AC93BE38D7C6DEA940AB85DE09FB3C6589B10B47CE2AEA952E5CA00992EC229EB44B02C394EDA965B6EF9F4D34F6B3277DE7967FA393AB611DFFF7BDFCC00A422AE6BAB453AC9A48F70E2A4AAE85EB37DD04107DD7EFBEDFA5C329D1661E453A9B5B544B01310DB3698D235C2AF6A3BC7BF82994BEBC8656787D317F879549050A4E555D9220234818928B78D9B1E9A360B6FE3831FFCE017BFF8C55416947FEB5BDF9A6FFF2301A8BAE1D1648E3FFAE8A36CC5087BA981B066E3CEA88FE77941997218F55FAD02FE34FA92F24DD780452CF42B5EF10A0A605069FA8E3BEB112DFCF5AF7FDDA888CCE8B6446FDA39C97352A57D8111A0ECA90CB453456A89196018B083E9BDA3AF76776C1F733C630D5BFAAF83B062F3223253767075E50B2FBCF0DC73CF354649E6D7534F3D9555157A79C5609557257CCED31305A9D57063AB515040F52D77BFF6DA6B8F3BEE383A8349DDB285AC50CC74112B621D830529E65A26A78D0943128074512F0BA44374E8A1875E7CF1C5EC25B37C1082B287A3034B7A8E640AB2372A3F0BD8ACAA8CC78CCB03C936C628045BC86A02CBD8C7DA3386B86AC01205AE1A77EC9A6D831AF63E9C638F45B45ECC482132F8999EE4CFFEECCFEEBCF34EA29D731FF8DE81F189D1465121546CB6FE9E25D3539A82CDB01699F418C1EEE95AAEE95DB278D9E444AB4C514C7775672FBDF442B32B5B33BE72516FCFF0E40B8312FDF9F89FFDC5EEF7DEFBCB552B8B79EC2A7E2ACBA5A7BF6FB174EBD8D8D4E0C0626D8091E1228731353DD23F28D7EB9991D1559D348C6DCEC166CD28C0986FA383BBD19B3BEEB8639F7DF6490BC68538E18DD0A383199F0F357AC61967FC8FFFF13FEEBBEFBE5441AB48FF447C0A043A6C44BBAD38ACD4B06615BB9E633812526077F91AF6AF5BA0B82157540F15C54797BCBE8181FED1F1926DBF51ECB3BCD5EAE96D4E4D4CF736536FF12CEDC1AEB464703075DA43ED49C9C881AEC6D2BE9E7E19D163138D89A9CD37DAA8B966E5E2BE8125DDDDFD79A76B7AA2BBD36ECA5B6DA4FEA9C2266864BA6CA6A1686493A933DDEA8C647D53A93396151A77246F8F48B777DAB22986FB7BE48269DC239D6CAC938F68E15B854A1E9E4CDD5DDD93ADA99EDEBE89A9E2905040D5D55CC750289F89F244269048BB713AEDAACB2FF2919CA54B81B12075D2B0C1F521448C4042A405F120D1F1A4CA622F614B0DC3180DE1B1DBE15442AD29A97D3E87709D5B0231D7283932110DCEE33AC04B0E086131E77EB3DCA9A916BC0A470EB4430A3AD20ACD44C75C9B260B83BCCCC10B1445837CE73BDF89C28EFD5EA254B29A77B549AAE072AE5F88A1ECD92FC62C4124ABF48A2BAE905CFADFFFFB7FA7AA391B4E15E59B9C05D01838FD9E6A087358AC88B57430897BBDF6B5AF95D36CB0BDFEC408CD622D9BE3031FF880F410F74558937FC575A30934FCA3B49166CF385D6D14D57CA1DA051C80188AB794A73197A6E298638EB9FAEAAB5309BBB59286049BA3A1DFCA3F7BE28927F8ED65975DF6F9CF7F5E168C350A9FEB14E8B7D89A3604A122A164AB111A3C3018B7078E25CE5E74CDEAFDF7DF6F28BBAD1393D5FBF14D644D36DA31FC1462B9E851F66A4CC3E7558DA2011991E2021988829465F6C8238FA0F264C3FDF8C73F86D88EB3C9050D75367FA72BF70CB7B47FCC41237CCDF33EF0C003A9027F44BF2ECBFEA3F82A0933EA4A75C666D756C71D31D05F14B7F474F735B2EED67463F9F24DC746A7D8F1A5D0694705DCDFB771BB5524678786D65BBB66987C70892F7D6670B07F626A4D5F7FF6E2EAA7B57F962E1958BDE6E5A1C1E59C99EEAEDE62EA1A7D52C065EFBCDE258BD79B98982AA0CE696ACDD873FD7D9DD189D5FDFD89B5C7D4D2339B6A60CEE11B3AE8D0DC4E3BED4461FE7C072055241B2CCFC239B3ACA27245E8C7FECA3867266342FCC1FBE3B159F5461DE36DEA3D912A3F89F6477A967FFDD77FD50F673B5EBCFAFB7BC7272637DD6CB39756AE9E1A1F1FD472AF5D9DF2D4D795693A87FA7A1AA5425D6FE9D225EDC9028C2CBFA1BBA9F12D1B1CE8CF53B3D51E9C9A1CECEA5ADCD535D848FABC3B6F7715B190CED2AE9E76AB641F2B4FADF68196A795F2A99EA1E9948D65EDE1463E2ADF57DBB1E8D6D059D995E1018FE799B4CA58A731DA9A9E9C6E4FE5BD13D3933DDD3D537ACCBCD327F93851CAC77C461D02402A8E74843BE655C3512C9E6C26E5054754F37FCA29A79C75D6595E7A0B441DAAD34F3FFDD4534F85FF447318492AA28B1379DBA3BB692EA154B9BF56A251C23AF8C45D6A3BD3F10C873DC804035D9E73BF3566F64E704CF5924B2E39E79C735C86CEBD08B6FB743B489016B44129CC007AA3F1DC76DB6DFBEDB79FF7A7E3644C08C05AC968CBA9582980E63034BD96339EB9630B9DAAFFEA3A4EBF5965DA9E8037F1CA2BAFFCF8C73F8EB943AC38E2636B0B91059659C93D0DF288238EB8FDF6DB694263C3CBA0741ED0F8006266B6EA52A86B72C7682B89198528552D499A05CA5BE0D5A81AA71A189C571C58E0EDCD53C130AEBBEEBAE38F3F1E1962469A4F7EF2939FFBDCE7888DD98D364A08087D0C0FB857127D7949CFEBE2A00509DEC47D6502571F49CDC6473FFAD11B6FBC91EF702EA80024954B4AD819D3E8A367A12FBB4FB10DB5885AB0F71CC35D6681E54F3827FAC269A79D76EEB9E752BC6B379AC190B073B1A24D103074E4895389A0264C4D883E76F4C15D368CC35C1CC985D173AA0A2B18773DB25B3DAF519CE752A1D3ADE92CE9A2F2057B170DAE373D9577773799D03C590117B3363EDD3DD833B4786883DD76DDE3778F3D393DD5D1F34B10680EA5809FFED3931B6CB8F899E77EDF4E133D6553C266573E36516CEBEE060AB8A7A77B51A72D3DD1AF33507818DDE9A597FFB464BD9E763ED2EE4CF40F140E44E41F5858A000B220DEC5FEC6249FCDE1C98B4013CB09420AD1335F4E77CF3DF7BCFBEEBB5308E093CF302BA131B78E5BDABD66CCBAE376DB6DF7F0C30F3BE61C01756EB3E58D48408C0EB5B6C7D907650EA6A0705BBB76A4403615C7A0045FC83C4F9DC1FE81A2246968E08DAF7FC3BDBFB87B4A4E799E365BD4DD6EB5B6DC74E3D5CF3DBB6C403E5AF6AE7DDEFCCF77DC29DBBE37CBFAF53FB944D2BE9D02BDD56CA4F57B0BB5D19A6A35BB7B9A52C659A3D355CCE9F3C353D3593EDE48A38D3496F209A9E422FC9FBDD06969228ADADFAC7BBAD11CEBA4910217D01A6BA58D976F7CD249279D70F249438B86D68E0C036E24B6A3C73173270EA554E957BFFA5500BDA6644A33C9E8A3E2246E4198C4A210B182E6B3668D2CB8F18CA45043EF2A14EC00A3DF5D4E8612A27D96BEC9F9A4D85177E4A82331D91B944BC2BD8522E954CCC3FF99AEEF358875AAFC7EA0F50C83AA0F806C912D6B61831277D38E17D059574920F74900CF3E41A84CB37E7A81A23932DFB923F2145713778745A13538D021F0ED4CA926EA6FFEE66FBEF39DEF00F832F22E852041368B52518B456215E8286972E057AC91B784B5B20998640168244E5BA2C91C8E6606007BB2222E1CFA4FEA608FD3A203894472049703AD4C8219B143CA8080BF641D4A482EE0A38F3EEA508D1E61934D36D1339AEA4B8EB2FE290B55A69BEE22B5FD99CF7C06F493FEC9C83D154830772B7275867D5653AF58549211A78C8A3853AD9D627C53DB9059286E8E7F0503B1FBEEBBFFEC673F338302B82D1ECAF482FAC4208F54611AF408FAE48C33CE90FD6DDB8B5D9795D57D9A46AC5594AB435F9E0AA3320F3BECB0EBAFBF3E1A0ACE88B3E7EBF9181F30433F9C885AA02E76BD254B57AF59C5057A7B06FB7A87A48BFBFBD675CFE8E485074C2FA3AC51FAFED35943CA34EB79C58A9D9EFAFD33DD5D5212AD8D976F323A322D892D39BC64E9A24D365DF6D043BFD1F78787D7B4D3AA5681C1C9713B87162DEDEF1BD24F365C6FC56F9F7C68C3A1F5A53B4E3CF998934EFFD89E6FD8E517F7FCAC6C019001B1A1A6D019AF05040ADBC57C2808F139BF6F8F19B331557401F3CD0F425F3B4072471E832588437386219826148801B5C21AC98A152BFEFAAFFF5A46BD81D0A09064A13B5A58F37B78D9B18BEDD24AC955B24FAC59AB71A7ACF9F56F7EF3E0830ED204172A677CACDD9A7ECD2BB77FEC91C7D65F3CD4D5D5E8195F2B3F7874CDAA6D36DBE4F9DF3F7BE2911FFEF637BE363532B5F5FA4372F4FA34211A52BBD39375FA7A7B067A7B362B2354E323E38DACC8018F4E4DC8C16D76778DB40AF2E7F10C05DC91E697026EE7D9CB794BFE6EA980F585AEB14E3E3C393D3ED16A370BAB6EA0BFB4D92727B6D87C8B3F3EFDC73CC46648F8CDCEB6DA8B229E1C957154C059D5DC504FAD5590D074E3779F49034C3A55AB165BB2FE0487868C80E4DDADB7DE7AE08107FAB72860EC215CC654226977DC71C7C71E7B0CE4172B45D931F2112616968F682DC306F39955640273EEB70584780494E197CC261123569F6606B1E30B45A8E72D1096A59344501D5D82DE8D545C9C14DC2C4D0531F0349354204AD5050846381D1C1986E18251EA8E48C1C851D329062CA62F68AA7FF39BDF1850E302F1686A44051C593C53E56B42C728C97EF4D1475F7CF1C5C4AB703018862FC29CD0C8C1195FCA8DB8268BABEFBCE73DEFF9D6B7BED598D9D937FD472F2F1391DBD8F82BEE7CD8C130741C2A2031071C04E4398E4A010D29DB1E6CBFFDF652C99ABD48A2E2E66044508159115D774D5DBB6A6D9E2AB2745D1003142C3AE62391704E8D13E1AE2E033F5C3BA4B33137DE3031B7DA08DD9DA9A9431A50AF18A1CED2FAFA1A811FDD5D26FE0D37DC00F8D1F29FA98BAC61F18D934A8C047FC0FA3BB2FDC8C3BEE8A28B901876EBD76D7BC44D5EB5CC4B332B6A30AC905F0694CEB72324A64B30DEF0D0A2F58647C6B6DAFC15A32393139363E5166F95B0A722068307DC3FB0787878B45DC2B625C0BBD3C0D2C5CBA4532727082C148FF4EAD7EC74F7DD7795276DB8AB774C8A59BF2D3A1D35D2B20D37EAEF2F9B177564688FE669BA7FA0E78FCFFD6EF34D973DFDCCE34B96AC6B241CFD75D9A4BBECB28BACE03987CFE251B661B684C6FC5CD05A30D9560F3CF08023C9C8E5F99C128CE8189B8ABD1F40BA127E246C1225058D20F5A1B691AE038F2066EC5BDEF216C96B7755F2EA20F5F0E0818C72C67460B0C40707FB4BFC6727350A599035BBC7868707172F9E182DB2E9EF39E0DD7FF7B5AF4E4E4E2C19EC1F191DDF6883F5BAC7D60CF4F52C1D5AB476E54B679F74E217AFB8A2A7D5DA62934DA756BEDC93A581AC31D868CA2290EB2185BD74E9E2CED4C49AD5AB27C78BA8499E1AA363F2F4DBA9BB39DDE82B14709E8F661DFD571EF074D1D7285BDD4C53A5029E4E5D13A931DEEE0C4FC8036E4BDCCAF31E1CA8D83457AFD2FB2263D49A469A107BC0CB61FE756C346F8404D17C31099466C61B3945DA1BB263A41A9F7AEA293A8BF9B045843312CD0A38569E443CA4669B727EA252117C8E24029FAC5B935DA65D8C4433CCF23626D884B0D2B3736A06F19CFEA505F46CDDAC0F891FBA3DA24421BD5A2523FEF22FFFF2273FF9492A73DE301EA7FF081C54C3633ACD8C6622DF492EDCE7C8CD98F557D8FCD3CC36760B243E53459D88DE750215578620015F7341B6418BEBB8EFABD00569F55475F18B00375B60B2123478734D539C6DD02CB2D1500342502C137AD7D8171D5B33FEF380DAA27887FA9556444E794DF6FE6772C029F4EBB52D9242F121DEF0BEFBEEFBF39FFF5C43D59603E58ED3AC611F7CF0C172CE520918961568B0B476052549F800BA94062983C92D0849F01B42E597EEA861E8FB963936135D5043EF07E23DC042A99795A6B41F9FAAC0463B749B3650C99363CFC781932C505638106DB967767D8486B17E5A0B021BC8DE58F8402209F547FD313879E2ED3CA3A97598130799611AC64772843205AFBD7816E634E272E392A38108E3180F36E786D8666B1DDAA774DF0D3658EFE597D75C73F5F5C71C73FC861B6CA467900AD0EF52D6297AD8E48517ABF9ECEE19284DC2A523C3134B972C9F9E6A0CF62F7DE9A5D5CB976DA9679668D0CCEB01FEF4FCB31B6FB8714113B1E685C2D56CB447C756B73B9312F11A95266E787C7AC9C0D0C9A71CFFE9CF5CD4DB97E9AFB2387BFB64A68D337248C6B1103160E71CBFC18D3EBA9AE2134E38E1ECB3CF9EF3FBE6ADA477377279817202ADCD39E79C73D6596749EF6A3D76DB6DB7FBEEBB0F81AEF538F6D8636FBBED369D4FE4E9EEBBEF7EEFBDF76A00B0B032E7F2EDFEEAAFFEEA6B5FFB1A75022008DEF8C637EA74A5A0C53B15DD3106938EFA7BDFFBDE6BAFBD563F912E01275C39FA1BBEF8E24B5AEC829372721A9EC281DEC191E1611DBB5C3653475E636BC5365B3EF3C7A77B5A9D3D767BD5BDF73DBCFD16EBAF7A76E516CB162DEAEECAE4D569353B9DBEBCD19F35BAF38EB6C8E2C181A25DC40B7F989A6835720D6CA0A7A74F5250BA3E6B36D64EC9EBED48EF8EE605146B326FB7DA05BD959667AADD9A2890D269A29D8D4E7746A75B53AD3C2B5BE848344C416394647B2D7BF1A517F32A1B8408C03CE73DDE069C3850FD11C988E1298B3973627060882CE555EFC29A4034599215701EB805CCAE87AD804AE0D06AB77CFAD39F3EF1C4136984AE7D1BE114BA17CDE60CFB94D72B7578E38D37220528D3E761719EA01371FB81F95EB3E35B94AFC0D6E28251BA7AD0F2163925992249B4000E8BF029A1368D87B363A0EFAB5FFDEA471E7944BE9DEC5D7D53870EC1EA66415FF9CA57341B3063C4BAED08B159E0B922DABF111A86CA95DC7FFFFDA15839FFFCF3757E5315F841194732CB1A8395C5622D038DC5F3DFFFFB7FD709356288ED814F693BC0F5D69E6DB35C596DE425E11AF25A66904481032DB3D76E01051CF906CC744802D8DA88A7A01AC7B80400E454EFA48AE0DADFC76AF4B16297929E908A9292C66602AB984AA4B19600B71EFA260DE3B2CB2E3BEEB8E388C6A3A46BA94C5B78A6C7FF8BBFF88B5FFCE217F8BE79208A7266A736B13503259A9B9D8AE60C3B982C0F7F72DCDBA83AAD1DA94F7DD3ECAADA304583DD929C04030ECC0D91679BC2FA27A0335CA3ABAEBAEA90430ED1EDB0FE5D2A9DAAF6181E6723104A66A491F3992F6F71C776500C0BD5C51607BB4B6E4E315F59575FEFD092C5B22C8A62DC225297A61B45F8B8D5C90B48ACAED1D5DD3535D5921F363A3AD9D73BA86959B268A3D52323CD34B07CC3E53ADA83038B25C4A49E172D2AA6A335D59C6E8D678D297947532DED575D6A7A746274B06F5006DF4BAB5ED864F946139323AB56AFECE9818DB9C7F0D4F944527C69DFC801928B7CF7DD776B73D00E9360DA9CDF277C0F539593073642E7FC3E048744830F3DF4D0BDF7DEFBC31FFE308400248FB1C538B4663765DF344A22493F82F98DAD12A2A0E4AF464A83832070043D2F6BAF292ADE640D7988BD038B26C7C6D65FB6ECD8A33E71C185E7ADB764E9CB2B5F6AA47CBB6DB7F9B7C7FF6DFDF5969E79CC11675FF099159BACD7DFDD688D8E6CBAFED255CF3DBFE946CB7A3A536DB9B9ED34D8EC2AC4C074AB9915032ED2BE9D5C4BDDC8B3BC934D770A6267AD992CAFA92C4D669DB1948FE59DC9029B27059C0F17FF2D0A93265AF9682B9F98CE274A585D86D9D76A2FDB60433DC2E8C8F092C54BF4CFE1C975F588D81CC67B9377D08E970E903BFBF8E38FA7D2C8F56198FD22FBA053A779E36B9E55E06FF8A6A4F11AD52B55B80F04A5858B21AFB87AB8BFA90AD09173256AA7CF4173A089B3B226D2BD77B08C8912BB5403F16A5AD3052234763BE2278E436AFBDD72CB2DD8191AAA3ED4B0A5BABEF8C52FEAFD165B6C4107FBB4A0075CDB75E6F730EC99C8041039D30553EB05DEB011FA504505DC5EB06DA2550569483774C2AA709F985456A4E8B8E555119A5B35988A2E054A7607457816ED1969C79A0A741247B6ECEAF205A72C5D19F28ABD4B4F27C5F66FFFF66F7955AA2EFD2DE340EF756B8D41C750A3D5F5212C9481321B3497167CD54058EC167C56C83835CFF8AC46513178DBEE4C14F607D1386007FAB92C037D9318526CA57CF1C5175F74D1453848A98AE4A50A274809168B224FE3D4534F4D5538D72CD31057C932FBE10F7F8865C92348A30345C660B5DE75C076BE09E9546D8FD3CCD41BC109DE532B68260DF292E0C22C696D529864D025D1A9C2CA991B0EBFCE24ED9E07D752EB134D97EEAB152FBCC4F249D32C5064666D9C66F186B39F8C8EB38B3CDF446CB1F9C67FFCE3B3E5934BE8A745034B46C6A63658BAD1DAB5AB5B9DE93CB51BA990C7795A37295D3D32B2747D09A0C9462673B233D0B7646242F3DEBDA85F66F8A474F4B20D37999A6A6FB07E11FD587FC98AB5C32B9B5D53434B9A53AD3523A32B5BED427A4BA98F8F8F36BBB2A969CD6F87E05E39EC55B1CF86668A6CCD7C8238C6A952657F2C20B85D85C6FED029D27F23D75DED15C9EBC1586238732343E15951D9C885CF570630DDF3B953F5EAD20E0041A0F5D61D5D3AE2820ADB1CECEF3FFFF33FFFD9CF7E463756A80DCB104AFFF0F0E881071EF09DEF7EAF5C8E4243CB56EA6EF49756CB748FC4FDF4449624E9FA26C72696F5659B6EBCF18B2F3CD7D3C807BA9B69B4BDD5264B573DBF7AD30D06A7C6C69BEDCEFAB226BB7BF242024F35A437FB5ADD4D7D37155A37CFE4FCCA039E6EEB6FCD76964B648E67693CE5D34572A218D1CB053957A3A8186EE7A3539DB1E982FCB9931AEDD491206F4FB7245056AF5C25BBB4ABD19C989AE854063E51201470EC4AC44E3010B1568717D34B84EB415A01D281DDDEFE9F8DD9D80A26CDCAB31ADA83AB676EBC5895A1C53AE288232EB9E412AF14DF21D780EC935C8ECC652E19028499552C51D8E0F3455C6AA0159F7C6364CCAB60FA910895479B2E5056E7BBD454141977FD57CFBBEDB6DB3EF1C413B45FD4D7DC435317A76B6704003B7F69993BE71D99A55ACC3F969C19738B03C4236455B38D54B9E90415F3AA6146ED169856663241675B34C7642AFA46179183A82F3B37B4EFBEFBFEE8473F2241EE322DE293FAA68E61EC73C5E06B2ED0C22F1B4064CDC83B1A524EA8CF34DAD88284829C8A82854623BCF2CA2BE5B01A306C19885EB1691B1DFDBC6A2BE26080DBB2B912A9C6C2168B7660CEF2D6CAAA96BD1C10C8A752C8E9CEB64B6ADEB0FB56595BC30C4360D9386A70B5DAF0BBEFBEFBB7BFFDED549101D8088B7120A85DC05E20E78D7B8D9883545105A4AA801065CCADC98FF065E4091E91A124F3BA77B66D6BD3172D8B547963C5279916AC7F627C4AFBB9A7BB4FFFB77CA34D9E7FE1C566569EAE7CBABFAFB75DC04730F68BC8A4D64FAB4ED8C155AA5D5D3DCD46CFE454BEC9465B8E0C4F4F4DE44B976CA46D3CD8F3CAD1D13583438DB189957D03EDA9D6AAE9D688946E3B5FCB99773728DEC744425C2DCBDF766800890F1A231ED40E5A40D4D00D29446C583C6CA5F0145D4636F239DEAD76B37E25C7F7FAEBAF8F1C6959451393CF6CD542A3728C6E5BDF46D999AA7481AE35B5D08D19F8EC4841EA84ED4C6F031443E48C2D985D9B594F4F97D4F6D2A1816C7A7264E5CAC16663EBCD37CB5F7A6E6A74BAAF9936185AD49B6572510B0B6370607CCD70B3A7BB444EB51B5D59DFE0A25462025FD6115DB278E5DA61ED623DE4AA91D1E189CEFA1B0CBD383A225F7CB29D8FB7F295E372D47AE5316B37E5253449A2533EC437BFF94D73DB02B265C0BACBE1871F2E970E7621F81439F95AC7547600B4AD0D05779A590E3F5BE42DECF9491643F4C369744F08594EB015DE78E38D5A65F2466ECE4ABF36237490D4EDB28D5A5E714C4287892302F501EA04B6E4D7BDEE75BFFAD5AFCE3BEF3C2D19127381714239E7445A5EF5CE8283C27E8C35563EEBC5A5E0D56384A066169E1F6F5DF7E8753C56B77EEB5BDFFAE31FFF98B802CDEFE6BC0ECEB1CB3C7CE20C4C7198D42E20F13924267904C70CD22C860D0DE3A73FFD69A7EAE7161D9DF8F278AEB9E69AA38E3A0A0B8F234F99227FB51CF7C0B45175C069C24D57035C493991679E79260AECCD6F7E7341015B66C4B5C9B51C8E139811222E4434FB6A3C274809A496F91481311B65163B366A2DB4793A65477A22A8D4FE9A01C695DCA96414D717F409D5475601E054C0421375902A02430AFE0616AAAC2252045A65A00C2073A3996A3D286BC710A1E41A368C0373BE46BBC18F6C72923C7434E03B9A28DD4E97A2B78466039C23365C348CD8544E36A7C087836DA76F4AD7EAE79498823A0429A9D990BBEF5A357DAE2DF4C52F7ED154044580CD4A25C2103CDC4EE8B899AADA290C13CC7016A330F9FB8BF87357B33130A04D3076D9A5979F70E249BD3DBD9353D38527A36B4ABF34F4FC3810DA0DEB5C047A58DA502A6041A9B16CC38DF7FEABFFEF3BDFBE7D4ACB93FA36DC60A389D13E29D3C9A9910D371AFAFD9F1ED964F9FA438B7B1EFBDDA3D2A42EB864F679AF15027F64EBC61C9E29F041C6954B55B51F08678C2F80FB5E5A6B2F17F22261ED3153B71041F91C4BEC3B226F263B053D912AC4A03BE56106EA2E3864BA88769E8C2CF434952D589A4804971ECEA730CCEED4A99A84A3B96B444BA0066AB93104F7809E65516FDE6EA54E7BE960DF92FEDEAE56BBD1690F35F366E1DEB66470F67535FB9AC5648E8FB5375C5AF2D51535BE991CE03C6B760A047B9A6A74CB02945E7A79CD9A91C9BCD9DB5C6FD9068F3FF942EF0683ABD68C2E597FBD675F5CD56964EDAC393ED9EAD6FE999E628FB977824500658860A64CA0C139D7D6979E76BF3622C9B1260D4D4C4C18A16053C376F402F3F9F9CF7F9ECE4B6E8244BA97BC1126512C50915C83DF2755B5893534755E110412F64855ABB8BCEAC3A33FC17247E443F7D545BC7FE61C670A0E652390EF6B72F45B8C065318D65251D134995D20B74005546C4E67FBD5BDDEC0F99B3F6476BFFAD98F60F96B06442F19C211E3C6E1074B006497738A6966358BF42210C8489092E68A1C30001CE8D86C0387890198F2890015FF756FCA14A20B26F4678AB0339C5462FFA41288072623CD8A5B7A5DCC6EC89CEB8732A62FB8E082F7BCE73DB2EF4DE6A3BD071B52F49279A8D90DA79984E8806117F2435909184C2E3CCBABF6F0DA4EBBEEBAEB3BDEF18ECB2EBB8C47A6AC88F927A88041C6A9F4184CE79285066269162A9E23CF71E0C83B95EE08B06D2F6F061E369FD926D2756536E008F698BC48AB09CB8ACE383DBC67BF6C0EEA31A51375C18F7CE423D75D775DAA88658E3FFE784D850EBB11D16926AA8E616756458D8A20B453D146A6AA288A308BBEF99AD7BCE6AEBBEE8AA6A817B2DD996E3628C893F86EF4F56A2AC73A79A7D9E82EBFA0156D15FD7F5BDAB85AE0868E9E77A7996560A8E1540E2D5A9C72F90A93AD4EBBA8506D143D940606FBA6A6C69B5DB96EF5C637BEE1273FBD73647822E672E2FB54E565D9E568689766827727F6889F1479D49820C2926624AF51B71B0141900DF21D7DED6FFEE66FBEF7BDEF45CA3A5EB10A882D8E8189B5EE7E1A5B6FBDF58E3BEEF8939FFCC4BA99D30E6E93B580CF5D9316690DE6DC2804DC905954BBFA5EFAAD6E71F4D147CB5D239645AC296E5C9B7E3D05D95957C1F9D94E4B17752DE9ED6E8D8D4F8FA5C543597796D65FB478FD458B5AA3A3AB57AD1E1AEADF7CF3CD9F7FA68013E78DACABBB470A78AA5512B0F4144C59BF7B7ACD365BAE373C3E26AFAABB7F60CDE898B4ECAAE9EEB6D474A36B786CA2E8C1D429405B834383C323631FFDE847FFFEEFFF5E03E6984574438D19C661092A5039CFCE4DA6CAD0F12137638ED34856870B6885487DA799A4F634959A15FC05C340D11A4B89B2D11EC82B08A867D882559F1C71C411B291E5279D75D6595A20FD0AE19E57545F46FD2C0C8A8CA89FF8B93901C80E12AED4B67451662D15E53673A87F6CCDC81233FBBE3C324C498833C37FA216F732CD37D584EF7C78233605B5873C25E76A7154739A6B8F5F83EAF06554608CF9C5C7895347E4DF42267626C64034101A905AE4F49774968C3665874FAEB7B4692BDA552BF114E2E129240E6BEBAE7BE9B2D2466476755917A1BAAA273E057E88AFE01832710E5835F06BE9815153CC4654E9CD0E3BECF0F8E38FA3F3E22A58D6194EE1008CCF02E1717BE756C3B35781F58A077FABADB63AE8A083BEFEF5AF533864EBC17117B05DF19479D1632215939D6813BCA42C3AAB832115337AF64BE38DCCA1C49177224C6F749CAFBAEA2A0083FAE791471E099526D65B61A4DA48C427C8AA2691760862CD130140BE89EE7187358DAD74143BE53F8B29EEE9EE2BF74A9A9A9E2A888B52A7DCEE9D5864EDF68D7A78BD4701F0F0D5AA37A469CAF846D127FC99679EEBEBEB613A5872B9B88D992D4752055143EC1AA4CA8BEDE8B23CDDDA4514F7DD77DF6EBBEDE6D405A65FAB7AA55225B3D87959E5FDF4D34F4781429C0134C409279CF099CF7C469F48526BC349213DF9E4937803A6968DC95AC8C75945ADBACE00F35CF4501C18D0B600AD1AE98A6A5A673E41C695110A3630B7D9661BF9D3A6E764DACD39373BA15258D945FBBFA209E0D060B70EF7D4D8D4D2819E6DB7DAFA89DF3DB664D1903C8EB1B5938B7AD2261B2FD3659F7E6ECD661B36E80F29DF576F3A79D6C94AB3BD6FE8A597562ED960BD3F3DBF6ACB155B3CF1873FAE1A4BEB2FE97976BCC8A33FFBDCB37DBD7D1393138D2C75F51685CE7DFD831C033DBB5927B3D08DDC92913043AC3C495526468B026A3DB2A1217CB38A41D74E8619B2E69C4FC2DAF0ADEB6A5B6EB9E55BDFFA566D06F9C4A4D068958135E38E349A64CE363E440C3CA49939697BCC4402BD409C172287045D16566048BA46D523C15E145E02DD4FF520DAB1B527AD5DF0D24B2FD5667EF5AB5FFDAFFFFAAF009E41472F1021D0B1D21B734E5169CADE860DD4FC500BD4D9D7E2C679D51E1B601A0AD8A1457BDB6916BF553EB388255E10B39BCC9AEB3BE7CB35424F68AA00104C55D06E1D9B15B940007450C45022C15444922CD74469E7E8AFE456D179E8AD7FF8877F38F0C003ED2CCE56C078113192C715E0FEC4D6D127844C30136BD17E6BFDDD77DFFD9E7BEEC17D2BF0100000E1BD494441542E2771065D01D577DC4E7345372453A8220FF7DE7BEFBBEFBE1BB9A70FA9BD36AB0C48A53433BC1AA3E2ACA9F947E7EB9E942A3235679AF509D1C154D51145866D8A9A2CC73A55BB435633E2FE624E2A4EA6C56C0CA2B87F83199052552BAC7F9AA1451F7EFAD39FFED8C73E8606D142B8F4068D634467C645232B77A36AA41C63FD9121DD23E68477AA76DF55B36B4D59A1B0C11DA0897529B854F4570AE62842C746C30F6676A47A2597748B55ABD65C73CDD5279CF88972FA24AAB4BDB4DE65B7D112B6A22B4F4C90F59C5B010325B7C0ED842E8A5A276D470AE3F41432E21E7EF8E138FB1A92A6D5F40898510639774AE23747BC359B3A2A7222D1EE8818FD577ECC15575CA12DA2BBC01B600FDB8CB8CE55C4B2969A66C5C3D6145D7EF9E5175C7081E6CD9C004EB72C2010B3AAB37AAADAE4E9BFAF7AD5ABEEBFFF7E93C44A2B68076BC75C7DF5D5AC57A447E09F8BFABAC727CAB64E033D5D52C61353DB6FBDF59BF6DAF3CEDB7F985AEDA1FEFE25FDFD5363A32B57BEA43DB77CE38D56BEF4C70234D8C9476544E725B8B135BD66B83DD6497BECB5EB1D77DDBF7CC38176D678FEC591ADB7DD5C771F6994E0D5F65419145DD5DDD540CDB4DA05FE80E242824EB55CB8178E64812607E60ACD8F3ED73789116176ECBCF3CE7AAE071E78E00F7FF803A83414A49F37550180F9CA6FF89A3BCE6241A351ACD8CCD7ADE9D596A6BD2E9A4093FCD5AF7E1543673EC549340C09EBA0BA250276DE7F8892250080390231859732F6C1A59384E36F35A9A7D799679E79C30D37BCEB5DEFD2B06DC691339BF3BE189DA96AE745D620667910942E829FEF414C7091027562A36A4DE8C03882D575DED9CC1A0F7F27556E6E4CAF98CBC57E1BD31513C08E225848D2E0DD0D5F3B552B40BDA7F88AC2D6C1F24535AD4433F04C6D575263FA93375E2A03D4844950B7DAE7EC581440ED307A1332399A676DF8584D0E7004AEC4148A6ADCF69801180882CDEDC236002B6F7FFBDB7FF4A31FA14D63B4C39B872BC8E6909E267209020E618E2F67608A39120CA979FDEB5F2FA9EB32933C941ECDA980795E0D86041F66A50B73B7DE7AEBD7BDEE75B7DF7EBBA3FA0EE3D5FC57FCFB48BD6E0E7FCC14CA3E990AAA9FE315B82633EF18B81D391D769B022C9C870DB6C3E4625949CAE402F47553E01BC48003720AB884DB23BFED6D6FBBF3CE3B8F3DF6586905FD095B490F58F5349C519CA0BB22B000F8107175C20C128057BEF2950F3EF860750CBA4A18F7AAAC21EB66E961871D76F9E59715CDEA3A8503F1ECB3CF1728CA66CFD0D0E2027698A6E2A6AC613E39B120001D31883DBAC9C36BC36990575E79A59E2856975BCEA6D2F165B5B4D27BEDB5D737BFF94D04CDB5D75E7BCC31C77074ADA48973BAD12621BE7C66E586B36E8693705AB06F0892A7D2429799ACAF69B1312C6A3D46D885F3454DC92CB8FB0DC1222D99361673627D06B4275655FAFC1766534F5769EC6BC7A4EE666AB6D2064B966CBDF9668F3FF4485F4F5767AA95F2CEFA8383CB37DA70727AE2B9E79E5FD297160D0EB5533E3236DAD5D3B778E992A9E9B62673A2BB6B64B8B5E9E6CB5A297BE6B917F4F093EDBCE0A25CB4448B42C5616F6F77C9722CF12DD3A120D678FFFBDF0FB37C2A0324E496BCD19979866D0C0B08037C657D8DEE757CC26C9B5866CE10F4021E1E0ADE01318957AD08082CDD1A7DC651C766BDE9A69B3EF4A10F69D7716B1FC248DC93074E2E933F532EC9ED5826AD35810AE3E7171827AE188513AED66857AD1B35066D602BADF960681007D20A97D92664B7C07DF55F69EB430E394463D662E911E07FD060F444147BD0FE7D010F9E79D65FA503B8DD9BDEF4A67DF7DDF7C20B2F7404885D4DB8C2AE6D14E82C684C4B71E8B0749D02B33D5D03C4441C964F905EF22E28D3825EBF59360625D7837D0F3EC305AF1217F7DE7B2F6B6149C2860411F2EE77BFFB0B5FF842B403F085DC8D270FA538C6D3696E5994A81A61BD666792A5629F60766B0EAFBAEA2A4954492D3FF5C73FFE71B98C279C7002210A660C3963166BB04E464ABBE09BE30666050382F8258371BC1DB704EFC5D1B5146A49BC8EF385A001C6E27EA4D05D06D99E02B44236C12EBBEC72C71D7770232723B0095EF18A57485B91D28E7907EC2479D5BFFCE52F63A839C2F2D18FEB3031155B6D56B2F43BA2B3FDF6DB3FF4D04331FDE4102333833B2A65BA4E1347C59E2A6FCF09336C165D5757C1E6A5F7A71B0360A54AD668BA3194B473E4B5CA5B5D3B3CB278F1C0DA35635B6EB9F99FFDD99FFDE217F7682F923990C12275A25D22E544AB005970E6CBB5916BA2356214FCD34A9108B365474D0DBB65A3A962B57E50C1E9D6C8380C13EF2A6F1A0C284367596F2814CCB623EFF6ECB3CF269EC06CB84A218586B2F83A5FFAD2973EF2918FB0038859C54E993EF0A804E37A20DF262AC50F19B64E8B66F2F8E38FD718F6DE7BEF1FFEF0870B83629807C45024634B55188A297502C2AA5D93CCC62A5457D12DB8A7DCD0ED2EEDCF76D11750C35DBEC1FA5393E3FDDD5D4B0616E9CDEA975737BA25DFD7EF0CAF6C16C2AE21F5DA3FB86868C9E289228CBC7AFD4D36DB73CF3DAFBDF1EB977FF6E24F9E73EEA2A5EBBDF8C24BFACE58BBF38A6D573CFEFB270B620F29733A3C77754D4F163EB1F7B19BD035AA8EE27166524501A66535C3805B20B4AB8EADAC2FA854AE5603612D10D23756D369369F1ADB7C98C68E5E6277C26B86334752A32652EDA1F2A4368C8C7425E9B8D34E3B11B0C1885C40813566316E223B6A8020C91DD9079FF9CC67E6BB0E4428A67135C873BEEF23949D044D8199447ECF4F7EF2133618EC020B84A04D9741F13A621AC0BF315C298473B380198EFF8C5961205A9C08F68CA1DD11FF1155AF3F2157AAF7BBEDB69B9680343F07C7BD712C0DE49948A5E58176430FA2E3A6EFF308185B10C84867E8737335A7121762D59B87D29ABC625436864BB611EE3558DCA38F3EFA9A6BAED1871A06EDAD305FC063EB8E5A44495D4AB10980BB9CDA0E89B73A6E430C20A70AFCEC6E25141D3402BF26E22592DEA38071DE382C72BA6473B8D1C56C54410D84C51B762F617059B77442C42EA40ADCA15C2729AC05B8889E5D5F63B953204BE0BD54E39FFEF4279E94C09B513B359B0C9C39481AAD9DF692161181A3D77EFBED27B1CC6EF10620DE76E8A1877EE52B5FD1CCCBEE39EDB4D3D6B1FC334D5657B13D4016CA9022F38B0404163D84F580C22727C75BAD4E510ADC9681B668F5EA919E927063EBADE525FF017BA1746E74DF0E116C302C0082AA32BE29D40F8252123F4B599EA6D7456E7B1B9B6FBED9134FFC510273E9D2C1552BC7E654C006EBB30F9862C4F7B9E58B82CB934E3AE9739FFB9CE6E8C0030FD4C675AC80B6E460CA8D6220AA46188A3A5D22EDFAAFBEA30DC197654695E1F72E72AE86B65A6619BC8A14B061E8B899DBA81D7CF0C15FFBDAD7F2B252029E610259BA1AEDB25385DC4EF3BCCC548001D1A8E8F7B8916F9D952CBE663C465451ACA20FE1EE2896B5C035A7DE9EEE9E46B3276B2EEA1FF8D3EA17A5307B9B69B0B768FEDBEEB4B26671AFA1BC48F64FB5F26677A37F70A8D95D142AAC5E33DE9A9297DFD7D5DDFBF2EA357DFD83A3E38569ADEB4C76A62EB9E492633F7EC2B2E5CB9E7BFE457D7FBD22B5B3AA591055E66E604279BBE11EA825C35210D9FA9AEE75E491475E76D96558CDF03A91FEB0F9982A746504FDFAF3F9A6946502970044007D0FA824521AC1F2E8F3A9EFD321AE965F4C33338E48736292AE5E23C9CD22CA2F7CFCF1C7237BF39CE3ACB512C1FC6A578D75F38AF2C9711D8BD79A2B6C66893CB450C4A39DF3BE902CFA9F923272B69C2900B3E3468A31EF335B01FBC80057D108F5EC24ADD9C6766A3B81867DB634706BF7541156933376B08A13112721AE8853CB0C3B7A2366BF324697F41320125BF69A2E7D689E61FA356199B9BE8B4D6ECC546CF164ED9B55658A761FDDBA27C2DC52C5666AA6017C24DBAFA9CA6AA35D70D3DD409354A0BE0F63B94D0AFC60C6C3CCC741FA8553DBA978AF5C10886D813DC45D28E2689464A5FCB6D6373A2E84E1B41C0472CF3584B94C10DD8EBE4CF6716376C92FAC70F60C2D49F024EDEF36673588F4CB7022B47B0A1DEAB6DD765BB9D7C015991FF45D210F4B6A0E208A24D4C8356450C3B3845224BBEEBAAB1E0C4FCE530F2D1465BBB19F57EDE5AE3BC6BC39FAE13658EC781C59AD874C03F3EBEAE2BBEFBEBB0670D5555721DD9CDA7174423B43FFFCC0073E70E38D37D2053A55AE3DDA85BBBB3450F3223FF5939FFCE41E7BECF18B5FFC82ADECFEA0AC9C1B3D693AF4E0945739C682818C0675ECAB0670778CCB0E592CBD90C3BAD75E7B7DFDEB5F8FE64BAA42A0EC66CE30FB0F2BE4FCF3CF3FF5D4536FBDF5D6F7BCE73D146F68E68DBB89E42F0CC36081B86BED51D147CF414B864DF44CFF8589904C33EE85ED000656447E3A25D9597FD18B97FF76951E64D69ADA76C5564F3CF1946EBCFD762BDEFFFEF76B0EF5B0CDC971E06CC313EDA543BD6B86270706BA245BFA4BA8F0EA35239C89458B07D6F193347B3990C8884F7DEA53A79F7E3A2922A7039DC063F73BD9533B33FAE4CC33CF945D053692BEDC8EAFA4D0A40C2A5A176CA01E107F0888D84116F1C43767A7EAD3CC3A4B99776F7EF39BBFFBDDEF9293D3E35C78E185A05ED1A94EF0A31B6296B459F51C8C8AA4394F7FDC9A93C48736AAAC517864F49691C37A2F97542AE17FFECFFFE9048D73A8F6BC1B552B62227EC4815C2BE598ADE704A9AA89DD669B6D50B79A344E9C233DDC6B3EF737556031DB079E8DB3CE3A4BBB4B066E5E91213BB3607046166A0EDD1062BBEDB68387152024C542A807835A5C2C10718E6E399C667AC69EF65499B97A5ED9F40EB4A05951EDB8137AA8F7BEF7BD7280B41CB82E3A9B1ADEFEFBEFFF8D6F7C0375CECC5F77DD75871F7EB8B933AD30781CA23BBDE54B13AB1DAED99654944F89D4226A98AACC77744B8E3BEE380D00F62E5D9F64BCB1F15821EC7947951A815B26722312D1A12888738AB3EB243D33198D21D7E6DA6C9AAD20C91F71BAF5279DCA279E78C27A84A7C07D02844109B231408628B3E7C146716C0989E7815C997DE523DCA8C8CCE3B18A7D77F0B87C46D80F5E5F0DE6B0C30E2359E6426AE4AA6EE4A49584A4961BD3276310B8C95989CAA3218C3B0760A699FA188371F68B55C1508D46A5C7AADBE3B1996C2C82F8F9AFAEA01BC9522361C6A13534D107E335AF79CD830F3E085F0926A131B10E0C3A28AF65404F5B2BA36E63CF13C4AB0B039C99F0E16F04BEB754C11F5CE28D70749D09A3C2E28BC5A07E5E365694B93557800BFA2CB11046FDCDA980A35C70A8242F7B2C12B13FE4904374AA7565F985F24BF8EB45175D24BF13FE714E3862C8342E06BA0F0C16C417BA7A4F05E590F89426CE5AE353D39DA145FDC323E34B160FDABE5EAFB777F5C8787757319913539323637A70CD5B3AF3EC4F9E7BDE859B6CBCEC831FF9F0E5975F3E3A3EB5C51645EFB3E9A9BC26C4A1F92567C1D85057555C649A2C0327D0F9609270322BE5A360C6B11599256DC282CFB2ACE181BBC0FA5B3BE14D6F7AD35D77DD656E391F781F486F8CAC62E4B77DE6B49003A712C7326D77D965975FFFFAD7D086D47AC5D8D867B67D689D0BC802C5CF02E54635DFDDFF34B8CFD41FAE3E4AC17F22A2C8F77D7754AFF1E484100D2EF32D50667113EA255343B623CFA233A569FCD39FFEC4D4C558B14109F33D57AAE8CC38A4AE87E6BCB325D22C0232184BACC5757D7E7ED45147493FD11D1D8613D28791FC0EDA139715111A954B20CD6D34AF45734C21A1CB29AA06FC4CD0283E5156E26E00B19341A0A4B5ABECE89795BD142521A39E0373E454ABBE0937DF69A79D46771DAC647D28175616A73E34F5B4EB882C36CDB941ACD19C94A942C63130965592501A5DAADADC0F7955C4E1885AAD0C21D635717231FA238ADB780B4C93E8EF7AFE3DCF2C9C0CF18B2FBED8C2594F417EDD791FCD2A36A25E94C85B5FEA9A72EA402FD11F85A403C1BFC62CF2E06C16FADDE7946372E9A5977EE2139F700B3B92F4CC808BCA4C8C15EBA6E244A13BD6B555E60F0E2644748FF69346BCDF7EFB49709B216F016A3AE3B909F4F1DEFCF2B814583714C6110E220E46D5500CD2BA042D55B126C74C9AA1CFB3EF8E6BAF073EFAE8A36FBAE9267C56F06CF6FCF493238F3C52721F28A3C649460417D0FDAAB4F0A9A44F329B95EBAFB07A9CCF48A105ECECFA5168B94C63865CA3B808EE21F7E9D478489FE8A9A53C0E3CF040F94CAEA3779A765DED764845581CA42AD4E69C0743725706875ED9372E5A77CB1D742D51F1B7BCE52D77DC718761DBE5CC8F34CBC6445D65444BE2074D2C437F62A255D676D30417F85E81D2EA6E66D3ED62644B962C1A1B1F9F9C6A4B43AF1C1EDD68A3F5CB26B8C5140D2CEE1F1B2E365E56F605892462AEB837BCD9AEA1432C18A43E09ADAA055E349BD8997955B9C15641C4A062211222A0E4308F33373EF9357602EB5D2FB74DA5684E11F5310CDEB2862FF08CEF7BDFFB6411E755C7CF583663A4D87C20BBD88F21DA0ABC90053E5C363B9849D73ED6E2C05C9354A54E07C601F346E5928CB6CF7FFEF305A4AE129759E8880C6788264D5FFEE4273F29ADC00C585FA62A23BB4033095AE651524F0938CD5C39D17878B8BC1C70EC215482C68CD78890C1BBA5D167AAB2B9160B0E83A592416F361282FD60C723AF1AC7F9DC11BB32188ABD148F1B9E89CD0236A7CEB54ED92DB7DC22F599952CB629F0DFE1AEE056523049AA956A63F02BAC635ED5D7BA93A91B1D4651C96127894618529AE9A1871ED2459C12AE2D81532AA6E4440AC1F296AA460E043E7167D96F1151E4448999DBB978A3A2408EF8473D8BCC569D68CE78A36A700227090118E3E6CCEC51E38B6D547CBD08C31827778ABD86848DB8B068D1D6F02551086B4570764177DB84C5A6F160ACA40C35903CA1908FE04116ED5C9E0A414017367DA2FD015A327A6CB35F8ECA5A13B884E0E0830F960AD76FDD98364A2B375BC526025067B999551D601831C7A66682611C7059F64A0CF6027BA15C8711FEFDDFFFFD01071CE061103D40BB4BA06B2AD96D59281922501F417731B0E30D94AA703D290127535D72CEE0F18750C0663B8B4230869ADB55672B3B01358488770C15A8BABE85F86C73C1BB90D81D868E26EAAAABAEFAD8C73E46DD8B1E900E2A06D6EB229B6DBEE5D3A5FF3DB868D1E8C8C8B1C71D77D59557360A013ADDD32B2BB21C7C9EFA8A9850E19276751A9CC689E9726B56BE69D64CB90692A5ACABD1ABDD5978D5A97FD1E0F89A7F27C74855C932F5DC786644A51C17A200ECAFFFFAAFFFF11FFF51CBAD2593CAD4E31024C005A19D941E4A3FE7F048D6E88924358035E89A40949D2FD0B6D79891BF32BDBFFAD5AFD2A650D290996F575D9C91D744A880EC794B38F5E57D088814BFCD76009C56FA9514F097BEF4253243264F9D4FE3D65EB351B25E771ECAAD203A555F7422631A838EF6CE3BEF4C43E2152B56E84F1A008688637DFAADF6863C5A8734B5379E7CF2C93FFFF33FD734120A06984906A455755D741C6836A82D9FD97C70BE4773A4314E782CDCF48601AF60E1A80FE5854BF74B1AD0D4D6E174943163466E9201C55BC2494833D9F1E22B0BB549967B0E8F6B0EB5FD1CCDC6CA77E283952278C36F21164DA58EE7D17440708CCE3FFFFCB3CF3E9BFD73FDF5D74BD65B9ADBDC217A6C411A75465682F03521871F7EB8BC584960694D9D47C83A0C8FD7C5B5E1356CED81D1F2E56C0ECBCD009A55DF409047455162E99A4B918402D44259BEF6B5AFBDF7DE7BFD8035F6348216FA9AA4595995BA0E558E55CD758E3AEAA8DB6EBB0D73045582CB4E958ABC4F5D210A7C9E57173FE490431E7EF861CD27F3DFA93A1BDA0240967AC0BA2C9EB4215A0E6CC4C96C84A64C368FB04D0978E4155F8DFE445F13EA68C09D582FB0DFF465B97FC71C730C42E3CC33CF5C878236001DA7533796EDF9D39FFED4140DD21F04D017D0C1F879AE29C4B4A9A92B6D1A0AD48C3EC0B567D6E2C563D40B9DE190AF8520BEA3C616B9F84D82EA4EDDA61177DD954E269004CC526DAF830E3AE8E69B6F3665922654572692A0F5DE7BEFBDEFBAEB2E9D2EAC48997E0F3EF860ED58D622814EFFE8846B8BCBA1F48E8C638BDB48E3D717A4F00CAA44A0C0A2A25B93869C6FFE8928186A68EC9246ABFDAA39D1534B8BE365A6807877EDA6368DBE1081FE06F797B8B934B478F1F0DAB55DA5D95858E2A3A34B365CBC66E5EA6611AEEB9A1C9B78DD1B76FFD53DF7F6F4F70EF50CFDEDA187C8C0D749DB74B3CD4A04D66A3DC6D8F8DA75D8FDB5231B2C2FE829F2B24B562A3AFFFE7BF30CA769A52448E681AA48556109615E1A1598F99679B0D4D083ECB3CF3EDAC635FA7E9E1DBD68622C1882E8C40CD686358D7813B805F045B8CEF6DB6FBFC71E7B687D2531F30A00EC3395CD240C89100A6872D933F0689AC8C5C1D52CC07AFFAB2FF801708CF6DB6F3FC95FFC952C3459D1BDB4E2DAE4B309C52C323CB7C4C9FDCD3901385C9CE00161303D3EDD5C606DA48F88F7EAC2E1340709B015F42CF48CD327F08CE2E37A4858C95A0B60AE9E46D78B732A4DA0C130DEFEF6B7CBD69425115D40804B6C48AA25517256C07E43CB07FADEC8A3FDEE77BFAB45941D2FA54E78135183B34E3016DD0C753333EC40A8DB05A2D70D0EF0CE81DAB6A0AC299D04C40269D7B244F359603E18AF8E7F000A8B651A314424A793AEF5711D89C033814CAFCB69D81E36AD48CCE1C67029D77A19E91673161AA744A2F4B4EBEFA3ED48DB256D214D827B35A208F119DC83D27701E5EABEDDEC4C7605BC87451FF1AA0F87B36C9A9CB2E96D1B19D8151A0EC57968549CE46C57FA8B801372797A24354B33190F53051264AA657990EA655AF4CF7528680F2BAFAA177475C274F85E2C9843D873BE580C1C6D361CD6B4248B269181E298237D38962686C5494D213DE6F9E2BD3F34D8CAE120075A3184755CF527DD8B002043A25A1C162AB632B30F9C9895F664D582726CE5080699532CE276B80C1C27401F522A90CCFF5911E9A52A230E842AD61F93B138F0C003FFE99FFE893DADBF6A7FBB397CED15CBB11AA1B9A9137B06FA73909C90E6736D2C8D96F804FC4D5435A48A233A654D5A77713504496F810F18C3274EA5301A191EDE70D9B2977450F3860B81BA0B177C4A7E4A5BC2A5BF7742EAADC40F17F5704FFDBE777050EE6D4FB68E51C1C173AC040481D1613C97095578767D47C245C735AFA0FB56848CC1A94A3603AEA18D3916052DA84FE43C9D75D65984C163EB40BD4E3EF9644AA5C128509508ECC00D456C5333F38CB0C6086896D3144A98085BC5DC70AC6D9D2F545BDB8AB57F9A080CA347FFD52C19D3E7EF138B266A8A974FE49FD84CDCF3F04873880C594246D7CC3E3D4E59EFB0AE972A97B20D8D49ED82A2D92F7F0DB8500A5EE991471E79EBADB7423FA42B1F7DF4D1DFF8C637707FD9E1FAFC9A6BAEF9D4A73E45E8AE53F5BA8FBC1C28574223660E211D6B13BF06B54B0B66DCF57AD5AB5E2527CC3A00CE07B3876AF24DAF91420E1EB62CCD95BB914A7C139363BB3AF38D2E6712D0430E0EBB3CCF31488409C65084C712A0D27F213F300226853E5191BF229561455D5CDF4485E3DBD5B8F44DCA485ACDC879CF9EA347BA9D9E917EC0A90A9D5A5EA50A589742F6074A19E43322C86E77A7A29EE529D8EA9844355E237F9FD531A480D0BDB5C9EC1034A60662C785CE14011918AB2F5F7FFDF5BAE0E9A79F8EBD02CF9AEC096C20ED2B80753C1749AE82E1CE75A2EC78933DCD26AF8949FBD92F774F74B3523E811259BB1CF0BD1540C400DBB5670C18B6BE728CB1901461B4C8298E0D3DA4D846CEDE61C6C666095C44F6A926C56D31CCE866F045DCC7EE3BC62673D14BD4D031165D73B37C6EB1378978EBB75424635E35AB965EFA27C7CF4CE22C1591583AA5CFE96D7B9610491C06E4A3AEF0918F7C842ACFDD77DF5D8627568286212976C001074430055209A7D028B6CA0B6C64707A4C4F0F96816BA2C4AF79F5AB1E7FFC71BD417C5C72C92545719BE6A19DF7568DA1362825516A965DD2FEF474B1BBCA46494581AF4DC5EA811A258FA3D14C29D4A3D79E5DDF94689095401331767C2A39BD6329ADDD5019191AAAFBC576959DC34F3AE924BB4A668AD69F64FAECB5D75EC71E7B6CAAEA3438B72E1B8B217D8C2D7B454879CAA51C12B4EA8D75045A88682F1B6EE3078CF8D539CF5D33F4FBAAE58039CBA4C97DF8595F808A596871CA2C397C4A909690AC5BA552544A1251FB4A8F1C87CA8448F369B3E9C8FB314DAE69A2538AC74C493BE773B97C8E2B60DFE8BE575D75D505175CA0ED04C1909EEEA1871EB25EC158D4E64101D8CF73022B4A30F092AE8D71BC2DC6AB11BE88A939974017A4B288D0374457CE46CBDB3BECB0C3EEBAEB2E02609A043865B1E62342B31108F6355422BDC43034FF6ECFFCA637BD49EFB52DCF3BEF3CD6C58E353F34D2CDA151DAD6CAB6B315A8D3A10FB1FBB38A1C0D3198AAF47CAA80DCCCE4FBDEF7BE6F7EF39B59E8EA480325761A016AA6313242C75942BCD7DA6F44BA6FFEC421457069CC679E79E68D37DE88919142A237BA856C7BCD3CD5C9EB20A2654D5756B264906F22D86069604C2B0455B5A23E2BE358EB8505932AB413C637C25C83B191A1B1E9BDB6A8CE82AC432433707756DF51C6826AC68220265609D099D11E0C82C37173BECC28C946B7BD40A058FFD45181FEE38A2BAE38E288237C47C428C1DEB817ED25D480A35945856A026E7E4599ECA5975E7AC619671C77DC7192028ECB6715E3A6A1D74C8A3C307C5F4D1692487FD2A43018DB5F665D3107503E8B98268584018796A1A215CC05E85D682B21B67D361060871D7678F4D147A92EC71566BDBD1B662B603D3E45F47619F38A1782709613489C46FEC9346AFE757DAC7562EC664830C064C365CB5FA22D681937D3F44AD14E162B581C2742646EC5A84FB6DE72ABC79F787CF32DB6D0808B139B25305C599E160D2E1A1E2D33D9CDB2A7CDD4D4D0D2A5C3AB5637ABDE99B6DEFC5FFC2AE213269E4C655230D62611CFC031D5A3D1701B762DE6564F2A9BE3CA2BAFB4FDEB623389513C7E8AF11D4F46BC628012AE88AC499179D82D806253979A7DC34220DF678770FBCA179616D69B61590BD425D772C0D184B716E12298B6460CB09F6DF87AA8A6C6E5D13835EDD0B180988163517E524E19284B04B74FEE3BDEF18E071F7CF0F7BFFF3DE3E473D4C3020AD849440EA30B54625416CB2F55E623729C7A361DB198EEE90A8D8FACE02510B55538F2F818385BC6A680B289646111CDEBC5DD7AEBAD65A581FFA26A8E59425568301AB0DCC746609A735A94B42206740410A432C44A4211E28154B19AA4AA052AA19AA8F3786423F6ED95F2736388DC2B22561CF9FAA4E78CC2D173E9CB0EB412D7D5175C836B80A46B9A63490FDB4FD734351B2B15DD182B30C7E15315FD668977DE79E7DFFCE6370E8CE7156B450AF85F1F342E58CBF4796EF5A777BFFBDD0F3FFCF0238F3C120D82D965487CAEC7D44DA9943119307B83E533E596450A55CBA9EA936B8303B5EDE442962DC8A413A379CE014424828798578DA24E3EF9E40B2FBC70D75D777DE08107B035289FC746335B29F21D92F70F7FF8C35FFFFAD789FFC4B5B4F28862CE3C61CEB3423111ED146A2D5CDC26DDFFF4D34F9BA281330C0BEEA73EF5A973CF3D97CC90A14F84F875323589316A549B9F7C26481D79EA7ACD984E801D49938040D16ED666BAFFFEFB7176513084F2F457DDF76D6F7B9BEC4D07F40C03B6D037C0CD90AB9D76DA499B090B1118645E56FAB305ED137B48D01A0C972FF6287E0698117C945475BCF0639AC2D7C68DD70843929881D7977EC96EB1C7302800D07B4C813CB425F03934E5A1D1A7B58C1142169E4E9333B8C6A606F949C145E384B878064149FB17AA2A996D9330BB1C08E96C58135E20E694FB72A6D08FCB69E0F9F60F4C2F8842B268BAF28E3BEE283B007E25977C58FE1292D5AF10A3AE35C4F4893B901574F12E796BFD934D6E4F3455F5EBFA9A5C64DACB106E4901BC1AEB35AD414D85CD05FDECDB6CB3CDEF7EF73B7403C3405BCF390FB134CBCB14ABECA0E4950F6497917400512853CA70FDD986E97C3EC3669B6D0690C73ADE95F1E8DD76D58DD8B232F2194495E6920D375EE3CCA68A443AD6E158AE924631E8246A50B30DB2C3BBE6EAF6C6C4B6677670F2E37BA818FAA849FB7CCDAAB5E5965B6E89D16965E3FFDA8736EF84BFE60EE5116A47590EF5DF262189D039034263D404DD86FDD428C92065A344A23A176D32ABE83FCC3E9B32CC09DBC6F5E5713F44551ACBD5223F31D2202EB10557F4DAED2F49781245074087CCC4F4B4176E45C61E009B4D3A406F28FA9A570163C523E2CD78CE8CD7BEC91590D436F4528585CE2B5EAD152B56C8CC649D0E3EF8602A85C0D992AF4D73213B1A818D8B479A5DEDC36924DF4EF00781E28AF54F7CE21337DF7CB3BE59F3FC8A1C78F95C8E789333BBF8E28B3FFDE94F635F1B2E5F7BD59CE9385ADE4728B8658169BBF1B3B9B899F008A5A63234A18341AAB559B5CCC32C98CD1CE48D28A17CE28927CA9E2055EF3227AF42B4F53427D75D771D07C64C3D8E41590177559D8C5D4EAD43458751E35CBCA79D046230EE0DDE0E84AB44568099381E6B6E236EC711C50CAFB544F5ABC611CF7D4DB73BA702361C373A977CC2BAEB9BB1B2A206D66D54C43A91552D55E8D65893EA833AE77989A3AA9D23A685094C55919205964332911841B7D034624102BD710C9C688D73B40B6C668E0FF50E98B324D5509CF6066A9E5FAD02DEDBDE11C54B2FBD541B12213B9FA76BAB28AFFA1876AAFE04D219C03FF7DF7FFF5B6EB9C5B5E9B18604598C3E8B2AC44EC27C91030DEC1FFEE11F207B4A65ECCDDD0B52A89F71002F557A8BF80407D959B6D7BDEE75F7DD779F6E4728D24D1DD2CC0899A323358B13C3917209DA33F327B03235F723852675F9CC420C0784A1A02F8BFD5A2833D74150CDE5FAC6DABCCD56C05E749F23E2A8471F7DF4D5575F8DEE418299E11C1EE998C48CA715C4864C01B6B1DD24A29E6E2DE3E2490E29B39AAD2352FCF7BC4C042AC710E37C065FAAC8496C313B85E4221DE3B9BCCDE2094522FDEDDFFEED9D77DEE90653B6996C31A45915564C88BD29186AE755C0471D75D417BFF8458C0E6A9CB98D53EB7179E271CA2B12D714407D4E6E2128AD68F566DF7DF7FDEE77BFABCF1DDF70719B45462D270DA2415786F05A7F220C6238400D2F5D635D778E87841F0951C7A8531984D4F7A590AC87E67C715A4046A0235D89CB1AF8EC7924AE5837F8057FDDDD8A524523D7A89A28102BB30FCDAD114C74FBA2BA3F55B62A959D91E425CAA35A182DC66DF4D4F47B608ACC2AC59462CA59071C7AE8A1B269D83FB6BDB07C357EFDF398638ED1B21A97D8A83A191BFA4B106236A64F1FDA51762D41A7EA19E088565EF5FFA270B053D1A6CF2E147190CAEB9B85B231CDF95BDFFA560D157801C6812CB0E38F3F3E1EA19A290D64BA5D76FF65BFE1CDF327A49223D2736E1EA7514830EB93534E39E5924B2E81374A7F75AC38DA9D5D65E769ED4CFDF7831FFCA04C280477A362158D52633AF4C48DFB10925B0EB5259D9B5BD89F9BDDF8322AE01A7D81D10F9E2EA364D9B7F3CD83E5600A19287694A93C10583EC2911EA451358FF1DEAE29E0F972E718BB0E18B2EBF4FDBDF7DEFB9E7BEE31C92B7E36D3BECF3EFBC80E70D0D52952E234A4D52DBBB3EAE5C9B71F697437E9C93457D593439D5106C6F7F1D1AC20A3C91811BF5C50F38981F5EF38CA2A879266DAB835051C1F04FD815EC7BEB174F54FC806E244B285CCCCCFF2916741B64422A6D93BAD1118DA81794767D4866F7C6AC7476B6E7D9C16B6BD5B1E80754F333D406320D2CC7C934BF3492799F8A59646AC1D1C27171A15893DF3932D7030B6DA6A2BD30981E377155D0CAEB212D12A24F8091FC2B1C71E7BEFBDF7FEEC673FE3FBC6739159D443BEF6B5AFBDFBEEBB9DFFF376F4F499E9D486B61618274CFBE9D65B6FFDD5AF7E75C30D37487940A1CC2D88B63958879D15AB80DC7AC11C5511BFCE0238B23FA700754ACF9353FB8E97CD6434790532E76CE4156127CFCB247823762AAAB3BC621867EBB8B88D1C12A21CA09901D52C8153B9360ED8CAB694CF3AEBAC73CE39873818A5FDEE55E090A3B121EE7C422F36DD947EA2D8E9E800C8D9DD7A5D4B00BEA3D67193E7720DA5DE4861FFE217BFF8CD6F7E133A4CAF6BE2E43CA879ECD0165293C71D77DCE5975F5E64A327279D569FF31583133544ABCB30F4B9FC06CAC06ABE45FC7E6C9FCE7B979F9AE8C0A1AAF93C300E24F16422755404D5BEE64C988B897D40A884461944F9E2A0518DCC32559CCF5AA3EEB2F939B9C346E0E1D3E35C70C105471C7104E39789832A8AD23962CDA21070A035F2A2A4592C6FB3E58CC3B6B5C407AC4F3535D3A9DA7762A2A5AAE48F1FCE0E41CFF7E2B0002B8B7606F08B34B3C10699170C3EA0945FF8C2170E39E41087ACED45617E3542639F88D7D327071C70C04F7EF213CA10407EE916E0A400609B7D33AF603471056BA1666BC7289410291AA45BE311CCB073EC12383465DC937E13CFCB6CE0670A295B04A61E9C0C0E6BED5C95C529113E3D2F766A5671C9756631E93AB68FC8420E2C5BB66CFBEDB7977C60BDC8A7B403736A9A4911684BBD06076B541CF2C8648718758B2DB6D8420284B5337CD2DE919738421F5CECD0A848B51AB3380A3D304C52B7C6010FB8500E9837B2E99E7EFA697B3FB507B6A9C211B2F2B365E40790FD52148396FE93769BC6614E09FB2288981A8D91BD2EA3DB0905501F922A0DED2EC7EE879302A6AC96407548A4569AC911D2007447B92654B6CC7786350CD928C86E439CFC7DCB620B1A6BD65A1DB02BB0A374B0FB02B8312F2960CCA2F2FAD7BFFEBEFBEE937173D5555799E22755E552AE62740E23559E9023B4348ED6810134A7232A0FECECB3CF66452CCE3C630645C34FAB877DC73BDEF1831FFC00DD40980EAD608C12B81EE6593F69977D732D2F62D9370699B32FA9228F6C0726DB5411B3D891258643F8AE53B586F569AFEDE4F9641687446BAD492075A299E994CCE7B5B5F6F75DAF4C01522AD3841A3F1CFD1A9EDEC82638F1C41337D96413D348D55E363735A5D834787B847FB1B2993A53F45D73CD35679C7186D69A32D3152B563CFEF8E3D8DD79D518CA1E43CCE145F1CD762264EDC83FD92F84B283DB5955F1559326BC22FA3A4E1163E0D15C87369B643FBE20ACC8CBBA06B7AC8F991D6283EEBD862996CFAC44888F19C733DFF92518E35902439B57B51524B36CE26869D0BE3EB9E4E65299E04434EBBFAE996105E754C0BBECB2CB830F3ED80E4D8839ADDD55D36E4CAE054CFF39B771CCFE620B52E42971612EC99B6FBEF9031FF88043EBA893C65C9D28D34C032BCE646326DB1279163419E321F70F5B3818523C047617D342672D921D40779DE54C15348F2F634C30E7AF7CE52B1F7EF8E1AC62ADB2A1996606621D94CE67D285DA99C197707B447632C0D598D9A1DAD8F340CB677C0F00BC5A6E4E28AB0F80C60A312EBD259E9F317610995B01EB7EC0D558247A3EA7501A918202B66B1503FA4E68936224B711E1FE587F983F64112C920853E0F822C50CD7B4E9C132C8D4D2BD707D8CDCE6F0588DB9C85D23C1C6C9AA960991A281C1DBCE78E31BDFF8F39FFF7CBE03CC3EDB73CF3D65CFDA0FA6CB29EBDAA8B881E85C64DBCA8E2F8B0416200FE491162831D8C2F4B28F0D6490207EF6D967413C1A49EF46CB4C72EC1D96AA06C93A005047E9A6681D571F9A93D29BD5E94C302F8672B80691580A611C67BF8846582C124E6854ED776A0F683B17CBD435A67C18237856C0D1208DF1524BA55AE8B8B6CFBDACC09448B59296D67FC9E4A5591077E7F2355D9A938873E16A086EE4325522F39D2F26040F3885CE9EB153244C3D8DAADFAD76AFD9D05208A62D6C23D632917E96089BB2E5A43F2D5FBE5C43229B65AD30E7D4D97A8E4E6AAD93419AC54B30E75418101BD972885D9B8B067D1CD90DD101A6299D33043D5FFD345B825A5B582DF9DCC8956801DB4CD7BA6BCBDD74D34D727F311FB7D9661B19431A00A8916F7DEB5B5A7472FF7386A0B9ACAE43AA88B09CBEFFBEF7BDEFF6DB6F974515573326146B7E702D329C57E0440E0E25C81413432F6381CCBEE2E0B442FFDDD93B276E7EDFDAE044A7A58CAAC130228BFFA52F7DE9139FF804DE2A0892B1F2C5C5CDEE494AD5D860C623DD26C162416717AE9613897CE08623188A85508D93694731AF0A6ECD4F9C9598060DF8924B2E49A181290FE836531C0AF7E54C337955D34CE5E8694CC11D775A0AB1CC2D16F2807557FD461BC59EBB6BE7E32660104C0115AEB182D63217624B5AA3C039E009B5D2251F833223BF05BE1F7455A7A2F58A681D9F49137B721A7D71590FE0113833CC82E5425611AE5294AD5BF0F99BDFFCE67FFAA77F5A607EF4FD1D76D881D27BA3371D56F5734951496949977BD5BDEF9D7E4B55F0B05971C43B13E609F451F7D7D0C78ED3D6241DB45676670D6AD002E910EA9A46109051FEE4273FF9D9CF7E966C2EE931360D03F0303083E4795F78E1853A277E28275009BD9E7AEAA9DFF9CE771E7AE8A15441D3ED88B3763EB78428C05FF01DCC52971658F9652101CC8B0EA6180D64B65CFF537B45A442942CEF7DEF7BB5CAC4DE914ACCC06CC5C392F127077BBC9738F0F6F3703BA8F95BE07C354A88FE934F3EA97938F7DC732FB8E082934F3EF97BDFFB1E0C85A9340A3980C6B8E916C46930DBBDE2B60F18EA9C1C17B5DC5EF4D2A85F74C75F1628F66D4C33E30A9DC02E1955B21D4A1697E1CD399FBC387A4C235EA6E1AFDAF09AE1A79E7A8ADD0BE221FAC1C40638D7D93C39E0F914B0018FA932A6E1C195DEC22643AFC313F7FEF7BFFF861B6E702F0A9E9DD0A0532A794501E60AB79AE9C30626366B4194AA321567316253CB181BAB41B1627ECA097EBD286ED600D89F679E79A62C03E261EC6D1729392557DBE171296B41142FB4EE426F4D9313786B41EAE29694A0E8B1D119BC853669321F224286BAD7B6DB6EAB45079D833A80C984A7E690BA603D0BF8DC5405A8D02CF9CCF28A144C468CCB18E80695469740C4B8551833E6ECBE5D6460D251F853798C356F74A1B5246E8CBD32F0C8F32A60FD123E26FB6774938EA7BD1603C9AAF23EC3D3ED836A648D922FD7CFD3A83AA3F11DFFD0EBE13A3C527431CAEF69C5083269570A85566C354390CC01228910EB6AFC26AB40C87A0379489A59C439E7CBA93E831B31825C43C226D3A90368E309A95973B6219AA10111C7C3EDB4F6DF7FFF7FFCC77FA47ACF9C12F057BB21819BAFA1F01AA1F62696D8F280B89258A3917D9ADC790C4E724A3512C9178E31C29A5A6DE311DCC525A60F00FB342BF67F172945936BCE8925EE6AE162672B0F9D278C9E88E0D83457083A7E5E7323CE3FFF7CC9A954F9B254CD4696D0288C78D18FEBCB5FFEF209279CA025B099CCE31044A10C7FBEF3054A9CE0AA31F9708DB1A3881F7ACF58FD630C19F813BBC6A659C930DB2BFE6757D5B9B611C8891A556F44AAD1A82489C8D5D9F399CD44C95A40B3E1BDA6A6325DE004A17A35877BEDB5D71D77DC919548573241707DAC6B045ECD0C23B740675FCD97039E2F3C80188990AE54D9ACAE77D2A8B446F4E7C00B0736E5CA63C913C23C54DC624DA6D2A275BDFEEC3224367334C7358C2DB7DCF2D1471F7528C8AE55940C292860C709BC0AC81CAC434628BB9FD8A195076F624AAE362DD1868B8E753C02EE8C67CE4BD0705887A09477D96517C8E47184FC144C38B14F4325D830EEAFB0FDF6DB4BE03BE16552C95AC55AED29BCDCBA8E819C44566A51040C022C3F173BDC72CB2D1FF8C00730E62CF1D8575CEAA0830E92132531EEC4B0F5B44BD7748481E3687E6C67703A90542860B4B56E0D9DD6BC21880F7FF8C3DFFFFEF7B5846443ED0123E5ED6F99527CB7DD76BBEFBEFB5285F5C53F8370AB533153BA329295B0E472DA983530FCC7072C55959760BB783C83B9B2AA5B03C4755E27B744D6FB9D77DE798F3DF6F8CA57BE42C0C135E6914ACD995A976C5B07FBF010B84E218D17139FF3CD67C487C74D6313C9510E3B94CC43A7E20147EC32E048AF9A2A86587B6036A2A35AF23E6624F2CB3551DA37CB972F97496E78912EAE73CBE1C1ACF10F09A065552DA30BF85EFFFAD7FFCBBFFC8BD988882C31693EB451816181DA5C6B54FC707C270A2CAB1F7BFF7A23C79D3532680029FFD18F7EF4073FF881F499E334E8EC85D1C85E5FEA987183102BA96200B0C5A07B1D7EF8E1D75E7B6D0AD02D2359FCA48DF00207D00835CA9C6A93751873601A23BE9CAA660F98989A528246595502A42BC37E9CFE5FBC6038D2B35F71C5153AF85E14F229367A108B6CB6A8B699F358DD80F1E455982D4053E5B439ED8A6DE7449AB3DAB3816C163EE489E276F27233C2F914B0C9786993ECFA90BC42A7F3A156E7F8E38FBFF4D24B1D3FC3AC771C8B7DA243F4A10F7D48BEA6B5883E3CE9A4933EF7B9CFA50AFB962A6C33ECF479599C9D66B658F001B110B6A71EF91DFD747EC3936207CBDC7FFBDBDF7EF3CD37C355F9FCF3CF231B61A34C95556429E1A872ADF8900078CC563896E6BA1A4286849DBDB8B15B5F5CEB1851D36577D861870F7EF083A79D761A3687F1B996783E53DCD1070A9D6A998CBD0B9280ECFB65975D26CB380A9F9AA33827542A16769B1ED11FE2E7F02121C31AE0990BC2106703D409F254E2FBF6DC73CFBFFBBBBFC303D4E125A53DB76092352A29AC3359639C71C11315C7BA9FAE2B6F4023DB71C71D1F78E00136909BC39809BDAB6A4A6AEF90427E146AA72AF6B74D67782453D6AE98BE5370F9A1A50483A7ABE1A06BCB1E79E491D75F7F3D62D4647B29C4C3B30051C92BAE5D6D5CEA7062C289D9707A3BA6CAC0D7443310E53A9F8CCB2B3033601337445BB1620561468872A2596A721FB6235BC1069AE9D7231BB88F41C49721B811FA0EF37A4DA9C6A66B906E545034FFF18FAC1DADD0B4DB74A47FF6B39FC17D8317EBD9B8E4924BCE3DF7DC4659529C2AD05C3C3FF124D86E75A12AC72F9643C449B3B983CCD5BD4E39E51420EED8CE182BDAA8AEE7B1AB84505E5801FB8E86D9BB81C774E88FC9DD9D768214F7C4134FBCFCF2CB892280328D4EA1CB75A2F6F5E637B7545671CE98ED2195AD30B38AB3CC8583575F7DF531C71C93AA6A40B2EC0B3CD77FE995CF047C727DA766B14E5AA1A978AAD0E0D109CB2BEABE9AE5C77B2F379155CC08A745897918AF602466CC44E0DF6082C83DD57997D772D34D372128AC21D8B1794940381F773DB10442CD04662C91912AD080D31FCCE086BCEA2BEAD2388D5923A19F920E0E8EE68D37DEF8B18F7DCC510D270E7529A9F32F7DE94B0E25D218CD0DB26647683A153DB2F39DD6978D4015CE7BAB4F04A669AE7127005850F19F66E6E6F57DADA6E3C6696624DC4D1D28764833E1458EB1194D96978851568AEDED4A8A5441DCE3B1B234A0B744F4F87D71A73CA2DAB352D7936A2B9E75D6599FFDEC67F5A11B35FEE715B0E1BAF6EEA21B63DEBA5A69FE9C782B6EEABEC529E4BCA195E48C1C76D861B7DE7AEBBC0A18575AA3D1B381B589D48C66054A41ABC5185A0A7D37AD004CB08092C36049C191F5C9499575EC07D3FE78E73BDF29F3215510415B82CE0FA5D2CAF8DDEF7EA749910121E7C08D055368D6441E94AC30E19488C845A112A4CDABCE771A792CBDD7758E3AEAA85B6EB945BEA38B9774293A5DCC27E06CFAB105DDEF9DBDCB96D57728EDC59E65FBBAD9A4FEBBF7DE7BDF79E79D669E22F2A3A166259B040597C41B906B3120CFC9D44D91F27AA2FDF6DB4F9B40C3B63942492BCFCE4DC9D3C0779A2AF51609B7F11B102531A5E7731275AA03AA2C2ECB11E3FC31B561031FF1AD1DA8F72012F6D8638F471E790496257E684C1F7AD7053C488405CA819C13615D1CEB63C3036F9600C2048E1574404E22E1700DE89455A02D039A58AF66D9D8C79A809D03B96EC403A6D0DC5B372536EE18C902EEDDFFC58B73842581778853080C18234FB73EF5D4536573E88DCC9DADB7DEFAD1471F85108DD835F201A96A73D9947B3103ED163DB160DDC656AA8C0016850D8652A9150818E9A67FCA9A64FFDBA45B8089CC54948EDC78BF4523E3820B2E90584F554336D7BD58FE460007D1299C601C0C4D1ACD30621896C7D7BD346F11C1578BF4F24F76117C937C4E5F0D30BAF92CBE04E4AABE208BF93BDFF98E3BF7219C357B6F7BDBDBEEB9E71E1433320D5BF390430E91D3AC4D2EB109FD884F872EF2C4134F383F68565D43B591365D558FB254119CB503F55E56F135F11466EBE3B2261733E75AADDC861FBA6C09CB8C7BD1E0153662EAA01CCC984F015BC2386F92E6B23B9DADE36AEE62E0586054C02CAEBEFFAE77BD6BDF7DF77DEF7BDF9B4A0F4733A92795E7A0B3832DAE277599D6BC0A184200B49A6E09191ED2DC01BA481CE197BBB951590BA4C853E0E83FBE97C4E8AF7EF5AB73CB976EA1CDDA3557274EAEF696B7BCE5C73FFEB1B766AADC230D491B9D2D653399C020670C959FAA964A525472D66983CAF5E54A820002C5E32C2C380BE2F5E6EBC096947C81AED988836833CE77E6A391E572497615AC9CA9722C9C72485573727AE272BCF95524EE0132A36B4A5E9C71C6196C535C25FBD07945ED469458F3633E7783D87D0C4C059A55C063FC1B0D0FFF9827D2E73A9FCF3CF30C4F8449617375B686306738262A11F89A871A7F15A3949E3100EDAEF031F816DA452C6E2BE02CB0DECCA978DC6599C029A7FDA4934EBAF4D24BEDB6625E00D2919092A3536377A929604B1CE3094091449F83F01DB77609386E8A7E02C85C8796461AFE957B0C479FE9FFFF4BF309AF88FCB38F7CE423B1F02195242DDA2D5A5C76A959B2CD0CE3ED7DDD75D7C9364DA508DE6EBBED64B290B4822D879D6C87B2A696626A0607200BE5EF310362BC987FF8F18F7F5C9681C6A0D38D9D74E595576AA37EFAD39F9EF379316763D9450AA135763575269A6ADD2E3656F25A64258E5A2F90628D8A04AA260D1C5AD8628B2D3463113A0A9883D074CD27B302B63C04799002CF685EF1F34777993BD2739751DD74D34D471C7104FEAB5C1459AEEE7A6479EBA28654C5D856AC58410F12D210A67648C15630A9051934B7FC8AE87A67D9889C39FE079B8D434736B96A26850F78848038C5431729024518044E992DAC80A304C82B16362DDF2B5FF9CA5FFFFAD71A27C9534750343FBBEDB6DB2F7FF94B1D61E627AFB86C536570DB532793A591D0F456EAE6FEFBEFC78638E59453BEFDED6F6B09F06DE655C00C5D3A5F3F938D16739CEDAA6730A78803A6B9069F0684C7017DACBF188F4A15311E5049C60AEF4F0CA566A1BEA246FA682D9BCA8A6F8B09BAF5012D33C299958BF2B7ABECD1AB5F9106F784F2D7D34F3FFDE28B2FB63A7486987B69A5910271DE1D346BCCE4968A2FA4159A4FF3B3CF3EFBDC71C71D78DB795920CF83DB6CC440C94AD8A466094BC83396AA4814BB9F8D4B358E39C5C8D136AB466638EB9A674622034DD60C46953ED1F55914D711A1CCDC15008BDEF98C3493B08D4D8F39EF1E44B3B753AA8873F3D01BCE71DA3433555C13973A185A91785373FD7455AD063D7E3E44C26270CCC768661B3C856E1F56D83BEDB4D3430F3D647646BEF38637BCE1B7BFFDADE656EEA964964B6FD35C0607BA84A01C9FB804C51938DDEEB39FFDAC548877298462B8DAA9AA7E8173C7CE314AE8FF9502467C1382324F321D3EB2508C61318D0B92CAB4085B8523A9B1812A80A02DAB208D9FFBDCE73EFFF9CFFBA8A659544D696662488BE222CB4EC5328803C0462569C2A14BA5CE38E79C73CE3BEF3C7A2A4B79688D1608416B4B90728A8518EDAA799A0591117935ACD9EC8D1D6597D367F072E89AFA931D6B7BFFD2F1EF79CF7B2407A456C9FAA7CA97722C074344075F13A5332BA7561791914101023B3C2A954EC5B79F2AFF815D845474E58873D5E8D714E82D712AF413E97B9D384E2B969329AF6DFDC77C30DF21931597382E2EBB4826AC0C9A1A52CFB131EF019BF2B66E63BC1D7B886490FB14609A984074B6029EEF15D7917687C63C11DFCE4BB600BD616E1D6F7348DCE155FC4F24734FD90F3B8504B3A951B02FE755C09AFDDFFCE637FEA7F3FC2E00B01DB7CB2EBBFCB7FFF6DF74BA4C8F401D2AFA3855E1883C34104C15B90F45605C9F289615A713C3FC15DE479A8D4023605BA9BF7CD184C0CE377833431C716B38635E784D8A2EA8AD8C49C14E05D9C821C42740461B9E873D2165A32BB8A351CFCC168AF3BD228A8D6DD755355AA6B5B8A42A15BAEF7BDFFBFED7FFFA5F3A00483AF3FA9226D41B6D38ED3339BB1AA7BC5E0D09EF53A33DFFFCF3E5BDB1A7EDFA232B9DCF9031AE2BD008883D84AD0AD88423E7965BEC66C98BB5E54B7FD238F7D8638FDB6FBF5D3F3FF3CC33AFB8E20AEA0E11430B94DF9049E27DECB7315B1FF860E058ECBAEBAE9A9038935457DB20201FDCA85A3F995C0CEB64BE686DCC7DBAD68E78804DF2430F3DF4CB5FFEB22C0099C03FF8C10F74E6B50D220D53CD37AA85DC5B55C33B0E8521420490B0D9212E80A7D7F803883E881CA29B213F015FEDFDF91FEEBAFFCC8BF9248CA4DD088920E59BB67D89874BFA930540F5C6B604A98A3F9315D245D89324ADC889EAA1F0CC5CC59B66192ED87FCC838FB9E719E8D9C5E5EBA0830E92CF5D2B1545D5219A1748B151EE820796829FCA61C44EA58BA266065B36A25252D5899CEE813AB688534CE74EC96C8C5FCB9CE45581562A73FCA067F54F1D43C78D1D65B513EC7C9CBE403BA054A15CF182DC2FA451B56273D34C7632361016363634767FBBEAD7841C66903623F44F7DAE1970C59DC5572C1330FD7E6C481CFB5B8082CC2BCE4E6D217DED75AF7BDDBFFCCBBF689C54D6E232C63ADD3493549248A73F6727D85AE576D6C1B6ECFF4B0AD82E90E33AD867AF7AD5AB642EFCFCE73F47A011FF27C5E072501FFF4649AF4BBB1D4798A519258DFFF0873F4413CD009D853C602C779F104B31EC1D1ADA1BE6030299D3083CC7E11DB60269CE4EC524670A02BD07F5C3AC41CC842312931CC8A0D8F6CE4944B608BA9C59D3D8A227ED9363283CE0345337B8E08C94306A09B08C41E479D951F199679E31ED784FD539B8BB6C0EEF00EF9CF3F9FAD7BFFE57BFFA152A4A0F22012AA78733CFD6B9E8A28B288661F1BC89318D4D2199825D198D8054457725E39C198D655D1A9BFE44576627B452085E711AED7C58E8E3E759C1B005BDE3E576E841389FD8FBECFBF9EA2F2914767234CD22C275F6D7A78BE08AFC4E882ADD67CD867044B0636A38426B472A9B1FED1F319F59D94192C7E14CD2B484B4CB873EF4A11B6EB8C187DC67DE69CE39CF11E95BC46E2A4DDB430E39E4C20B2FC4D644DCC38028CBE9ECB3CF4E211EE88A17E4B837BF37F67CFBEDBFFAAA014139237A7C1C74DC713661CD47C1CF23F14F3C0C4E3AA822311623557BAA8A9B0DF9899EA5E7D0C4B74E4020EC6813ABB1C1ED83178EBED70589E5F21363C4E67C5EFD70BBEDB67BECB1C70C82C5FA34B1224700BB012C7124028A3914C75409183881C509D5A99470E3D9BFF5AD6FEDBFFFFEB14C0B62A276D53F2755954B761BCC301CEB025269B751FCE3835C4B825010ACAF49FA9F77DE79243B9C37F1214225233F1918ED7D6271A0FD2269A3871F7ED89A12AF06398CE1EE4A68D0C81165E9E36FC6EC48C26CF73156D0A600C2F27B24732A6B0470847447578EB081ED49CFA78067A78AF2503E67D826C71CBC2DBA898411691436675E751B7234D4D9076D307D1FCBCC1805D9F1709DE6158E7DA176848047D004DE9A0422ECDD4AACEB8DCE983D5AC3D890E62869280699356E411095DDE6D0ABCC5B1D24FB4F1E1ECB0CF2330A71CD0E8D83E0277AE73BDF79CB2DB7D83B4F55FD0FF6545E35CDB06185E0766910DFD11C9D70C2091FFFF8C78D5375CC1C87D8DD3453959FB073BF40F79B886BF7E68BC15B5D5683D1E3FBFC63CFC6A8033A55BF02879C4A65C3866369880D401F6F74D58E3BEEF8DBDFFEF6B4D34ED36964C231634D921E5BC16301B03ABAA6EC6EC9299D401ECDFD8E8C3E23B1FDFDEF7FFF6D6F7B5BD419B52D6EF16100A7897F3B33690EE37B428EEE88ECBF466A4C9709E515C518A451C86B68EDE6DBE78DD0D48C690483E6D38EAB07F185F61E44609A5B4D3BBD5322C175ED61F3AA6569BB6AC511FB3448AC6B81F44F9032A499F573608FC66411B9E14F6C3099449A61B64D6DAAFFAF5FB641390BFAEF6DB7DD76C00107A4403DCD1EC6E3C92B2661570DB087D97B975F7EF9F1C71F4FF8A11358C4393E94B6EB6BFA8EACB7D9E0A3BC42CB831C74CF4DC206B04CA08063AD0B47182DC80658B81B154B391B22808305357A0AA07A9632463EB28A59D0E6913739518D68461360A0A20C69A95F9177A4203586915340BAF04F783DB555345402152800FB15368C889371C4C04EEA0A871F7EF8CD37DFEC63CE64FE1FE6DE34D8AAF25CDB7DE75CEB9CAFEA7CA7EAFC49DC7B9BB8897D8B4654D4B24763AFB1DB6C63870D880D763422BD8020A2821D2AD8A0A2A8C12606C5BEA33404151548EC6213F72EB755F975CE8FF3EB9335CFEDB878EF3C73CC39062EC3A9EF1B3FA8C55A738EF18EB779DAFBB91F674F2241A12610D6420E1D8E130D716580DE7AEBAD76691CF6E008ECB0C30E7233B46D5C0C89D9CAB300C39331DC669B6D2826C448E2EB36832CB123C4AC2793E211AA64E6633BA30D811BDC5FEF9702EECD0D22E9D5C876D50018A4A64593F9CD37DF60727969ACCEC0D2025AD4D4E907930CEA3748C5E8F9E0106F544256FEFC56371A3366CC73CF3D47CE5F5F636435E51CF88E087A8764F5E173CE39E7830F3E2072D2DBDED25C3F13E774D53325567A2BB2479E7D9711130D33B0A827F3173A8C697412498E466E501541B9C605F46536699D0162F7724DA4BFB15F5C3D62904E23332CA676AE5A2F80FDADAE07DEC7DB0805F3516033F275CCE4AA79A6F485B4AEBE02B53AB0260313524E901831E8DFA7EC6A10588E74136E4BE262BB141ACEB8850B85197845680E627D6C354961E87F3B9BBCF2943973E62C5DBA74EDDAB529D7607807F78656DE4E2E00387288CC613D2EE7A76DAEE20CFDFAD7BF96208028CA304E9E12C36E0EA9010981F05CD241E6B9942B9060F640AC2EB5A5122932AA2E7263A9707F5B19549F321E1031E7CC3A63B3353662C4889B6EBA49E6E0279F7C1233A69CD658971943A3963B3132DCC8746F7CC0E7BDD44C13999E321408E9692E1D6C5FCE97E5A3AB625201C2A056927002E01D84BB6D5CC74B5D2F9BDAAD1656F6924B2E59B56AD57BEFBDC7AE23BA66B7CC2567BA0FD03F531CA0231B9975A42A426073CD247A10BF3433FBBAB6D0A38F3EEAAC9659E7AC98BD3FE5330C1A34E8B7BFFDADFE8B1A3699306B0DCC5013386FDEBC2BAFBCF27F2B5AD973074223F6010C2174F0AFB7A3AD590CC046EE7D4B157651C446B0A350E10681C6C893B70159063B51981D3022E8C5A545B4BED0EF18B6894D698320AA25BB3AD192B0B48C4B130974F997701DB50F0864F6BFE641469BA611440EBAD69E742317AD344239AB2D60D31C452EA0FF3D77BC8E0674D4DC884A62CB6E36A3BF723063DED333490D1293EFF881B6F49D77DE092E8A55FB3EECE129A0BF907D474C27CEAA0B9F7B6BBBBBE849C71C73CC3BEFBC23F985AD2A83E8C30F3F34C0D86BE9F7348209EB7E43EED6EE9DE75686F078210E4A6D0F5C2C6B051CB76C2B13957907A38F530E6AB1FC7818DA61A425B4E47604F9B001FD710F21E6341E6032AE26ACD1C1C607610AD946468D6990E4FC6B4043A9BD7105C7A915DAB5A6D0BEDEB2D5C7C0F143361F433241554F6EA713C318F8CA1A2754C90E84EA24CC9E3D1B74EB94295366CE9C49FE899AE0D29CC7309AC9FF5286B29B61D5CE6E2374B8A3CC205282F0016BEB66E82DCA62C98E244E4E32C611B9D27C1A07071305C25DDA17C35FDFD29C686F2C5AB4483E04AA142C1BEA0A91DDAA2E739274963B0B5C88541FCB1DCB946DBF97DA53E229A65095E496098815A45889DAC21D79A9A9309B476CFE11CBA3BD497C4C1A81428BD094CE05237169162289321B7D8B40D4C5175F7CF7DD77DB868B3DBEAC147D0A1CAE88E85FBF08921D8BCA279AE7D20C8DCC8B26D32654CA88365DD130AD394729F4372C555732F9047840424D9D3AF5E69B6FA64651F78F154406584D9F3E7DDAB469C4E4B1AE74730907C9130DC6993F5C1A7006EEF1DC6C6F97E241725852819B8924801695F6D12D30BD8E204ED8A57A117B9C687A8D87FD0327815EF3B4D34E7BF6D96789006DC87D73D1B566674330BAB3AA2BE64B49435F9D0A989DA0A793AC8CDC0C7E170993193366109FE7B801CB8F3C89FA98564413AE016B5768923D27550AB8549EEE289A075952C025CA52105E4032C91311D28B5CF75E6508B9B4619C2B741722F67F83F9C58A640339541B3D6B5BC13560168D4627D0845628DAB812A5469E11B9C7B1B4D6D4B72822241888E54E4C554FD1EF4DB36517D9B0E4AAC08587D10CEDA923BBDB7F2B2E4979FD0B19325CF0948549100F1E3C98B6895023C1736B4063CAB57D555CC45ED44666BFB292638BF4E58E7B1C862A056C9345AAE5A0830E7AEAA9A7BCF35247FCB3F45DFFB591CB1BBC7B8CE9B025EED14645C809D1070E3CF0C0575E79C5772332E9E2CB8DD1957621C254639EB77233478FEDAAABAE7AFCF1C725F21C45C0F205971483ED1895313A446A0A2CAEFE8D2C3F042DD04688574C34FED5E7478E1CF9BBDFFD4E9BCA015EBCAB499326C987FEECB3CF52764C5D451615700C21745D2FBA5C6080A2877C286C8F474A77066933D1AA2EE5DA01F68016DD640EBC2346AAB75F33D05439868C8C202BA4FD03CC9E13F1774C66BBA126036BFCF8F19C5F67A3504E7C524792723EFD12B8BEA7A2743CBDAF1C9722C8EC0F77D23BC48945458159437B19FF8510EBC9BDFC52117AD5B025C4BB129DA69C63262687B2742C3AAAF35464CD5C5F8409C5BA30BDD4E223F18902EAB937DD7493A617FC9AC3275E05C6890A0111620516A58427C13557487CBDDAB5D75E3B71E2449B560E3098222605A7364637DD6358D7B871E36440B32D0959E36ED289C4FC2751FEA76CBDC5A89B7E49B15C34A45A8104AD33C560B7D2D6865E4A8FA6C081E40BEC406C726C1DBE45E911121828AB016E2997CBE394DBD48B5B9138F3ADB7DE7AC1051738F4D5CC34C99DF213EDC35BE3F21203974C803DB4A7E875E147901C193B76ACD688D36DEBB944034584F5FBE71176B0114794090416BEB33BFDD5081A0941A92BF0C36E44C891C381F6F2C4A48B8D0ED60919A1C71D77DC71CB972FA78EEABF171725F6F22788704696E6AE0A83638F3E76AA40ABA5FBB8FD85DF85A4C286C015CE15F9AA62E921360EEEF2D5575F4D9CF0FDF7DF27E3982AAEE86A44CB43B3A1453283A6775BD79B10DC70C910FD9D4AAC6FF5574CAB370A14A5891DCC02D379A1DE1CAA35E37184233DF6D8631A8C369FFE2A714C531DDF01E4DDD9679F2D3B0618428C7FD0FA42679213950A9F1505ACA7ECB1C71E5F7CF18544C6AC59B3C86EF05C9D01891B1922AFBDF69A4586AC370D66F8F0E177DE79E75E7BEDA5C72167F52D79C6FA00910C19F2FA9877946E882E31D601B9AC55D65B1B16DBC89521A84F046BCAF9ECAE8BDE0C4C5829076C224491A5D448F48E9E7F1B28948A22471007CEBFA41C3FF0D6D2F9DFADB81E79E411AA89CC17D6CAEDBF8C5B74F0B9D3E0F3C16C14042FA0DFB7DA6A2B6D6FDDD021567FDE7197D2618C37B47BD4C8D4F9D82551615B70939C723B74341F42BF95F92828E7D07FCDBB07380356FD2876BAAE8B8322DA45279D74927E96390B02837C3FC1ED92211BF925CC9E0D431C995DEDA2525323DC099768A64216936BA413303A2F7AC0B6D1250DD887A6F3F38473A0A8F560E60D1D6772742AE9921E171A0B524FDC7BEFBDD7AF5F1FEFE9184974638C9571E48C673919E720652B1065A46C7861D9941430075FD32E3342161ED90436BCF488862DF940C4C5C48B8E0645C885E397F8B2A5704E1C86C52F5205334887DA68C7AE008E14228E7AC49E7BEEB966CD1A071B4CE385BAE435CDAD644E69903D0E5892F8B7C4DED89DC3CAB92774F831399FEDBE1ACF4CB3A64DEFE42E3E2BAE86C14AB6F4099B70F314CA1EB8950623D9A1E976734087C18D6C24D0DFCC449225058C2714A977531196DC7EFBED25A963501D848B5E503B72432631D724908747EB60C810DE6199352ABD144D9F88432627D53715828E022E65EBA12FF7A14C9BE2AF8FE93D937379DF971EE15D18F765CA168F7BA092D78C2ABC6422F04B1C419A10FBD44940E88B981D980E4C9A7480A4BF26930380B9A359D5E2221CFDFA367DB8308F6C1DE321B1859C4D81FA83ADA51B12A0462B404B9942B5A5A355A034A74D9BA65790B6D3B04DE5A10FEBB93AFC6BD7AE056246AA9579D06F62FF41076FED7EA55A05EC885F0A9C82445653066CEB59471D75D4CA952BF1EAC85203989069F2D65B6F51BF84A7426C4643D2875D7E63501EF257BF193264C88A152B7816F9E6146C47340DA6AD512A9DFB24157A51AFACC9C71D9128A4470B42939C28553D44A74A22D85EAF23DB2918CD3DED5D837C8AFBDA09C3AD1298402C45FB61A6C73177102A5C3F5481B09CFF738537B96A3C07A2535E531E04C025EE730EAC7F00A78288431D6ADAB7DC72CBFDF6DBEF85175ED01D68DD4D8C07F5C9621154B3026E85E6A4365231718077E9AF1283044BF0A7B1F370C19D762134058470C18205E79E7BAEF76A4426A302382072A0815B4665E62D810C771130DD7A88CA46D049E95B5687ADC02E0253A69E3B72E4C8175F7C115034792EDE17B75063D3EA7863EB151E78E001D0CE04A55C4D43E97CABE0D501D49642FED17B0F1B9467617E11F2B4C82D85A00D9DA16E5BE6BE9B49987E31067AC9A069C368A2806ED1F626EE79B4FE46A63638D051CB6EA0EDCA68BED0CCAD6D6B14702353CD610B00E20506D9A9810CEF869894433278F060D9A1928F31A7650B8521B971158108E7113B759BBD049C0604B166107A3C4B431B01749577229DCDCDD262EC50408CE10CF7373B00110C900AAC56AABEBA8ED3A51DBDB96558CD4DF0DB783B8D64CA9429F2BF491EA70A745FD7FFB60AF21750A98E3859CC3542B53B1F90D895CEB373206BA35194A87237681A3D8D9A58994A1A1579CDDED018CA32CB986D1F3CB24A91C9841172B4883DE285A35CADB96D51D15D84901435ACC86E1E6A78B64C6FC8BCE49A4804600B73C0F4DF12213B7683DED4EA3FF6DEE88C94962EE790F0981D82B684ED6C6A12CF087EB9C47D6FE8B41813B1EEC06328625FEEB572E081074A73FB592927FEA5B9A5EC5F7FFD7537E1F8C52F7EC1F275EE1FD43C80C158E1E645C472F5B74A39206FB6526E2BDA9D96CEF62C5959278FAD959DF6D6ACCE9D3BF7D24B2F95B7A0A5C415862A5CFFCE9933A719D8EBBAAE0B05AC36C409F8C55A007B1168417473E4D9355ACD500C3731736A89A5DF669B6DC000DA6CB513C2DD162E5C78C925974405ECD3177BA9999C67EAD4A9B366CD72390366198A10EF961829FE800E02DBDE410BBB5B460C31CED23AF28375AA1D3B07DB7DA0E840D017FAE8947691B781712AD477D19482C24E664F630396A8DDEEFBFF1FC5A59B137233DD98D7C82DBD3B1F6DB9EAE1C50C0E742E5DC18036224D7A614BDAD49BBC1133CFF2799340C6A02F12D56721F42C4340D8301B091D35F5B7DE7AEBD8B163CD7C44EECACC067634AB048D196A527B9F4B4777E34BC6CA9FDED0E2D85135897BF94F988AF01598E4AC649AC5BC6649C1706CF86E674214AC0ADA0EE43D407CBC2B7B4EB6767D56F1C22D7CA1DF6A6502EEFADEE3D1258D032E35BAA851C0781504C71C37D674B9B96FE96AB553AFD9C9E0DCE21B91F524C5E2D7ECE9687F9642953AEF0223CF01071CF0F6DB6FA7405CDC6C6F29118D037254AD82DB04CB3D05FA5237CB24646A854D988EE67D3DA10F286610017037614486F252C8651C38E811EC834652278869EC9BBA3971AC9B04FEDD2AEAAF6842876A8F2AA7EBFC7BBF59C1F0EEF114A4A071AD968CAEF49FE8A6AE911822E4F5F2C94210188DE29110C722010C9EC54D9652B50161994BCCC9AEB6AB12A4BCB5A0FAD3B871E31E7FFC71FAB5C5BD973ADA23A6ACA799E1945DDE28EB317DF80C5605DB7843E85B6C01AD330B496FE48BA8670A737F759434962239DD9EDC1010E49AFBB8B07962B35E9706E07BC5565D0EF899D1DD91D22882F4DF254B968C1831C2F1BC9838EF0B7DA80C74C75327A4892D82127237AA56A6B3BEFAEAAB6FBFFD763C6F8AE96DC236338984D9D67C36536EDEE0F8470C2E22702CEA2510E4C2D2F4C91AAE337896DA11302E61D2C9C53BD2170158D81E320B105288F0D5983163264C98009E913C311B9E435A6A19122B0CEDB85BAAE8331A8CF60F45DE111A5C3AB9F6467C161A99402602592CDB4DC919D3707ADCE5975F7EEDB5D71AFDB0518EE159925ED6E79E7AEAA9B3CE3ACB0DFE62DEA2D3C78A973BABC762AC481AE0438818EA097D276C9A51C680CAB70D58CAFA200A9BB9EDAE6DAE663B79377BCBF84999211C4BAC42EF2DFDBBC30E3BC8F97EF8E187759EB584871E7A2838408A528CE87144DD1B25C2CADC9FB94677C6E77A9B3AABE758BD31595D6FE28462AB40E8497398C1B56A03A5F660A0B1097A05492EDDEAB0C30E7BEEB9E7FE47EE731E435E1697C86E9E2BB7E38B2FBE6062BD76ACCB8D37DE78CD35D77080F51BFD1EB6CB184E8CB844BD029855E42066139A98C1A0F33433D2EE1819FAE49E7BEEB96AD5AA14AC282F3A5BC261676416FBD0FABB91FBF6686CD48DB8D636C6727D2B922FC60C5B2B978E5FD7F5C24749D91E7502389E0E6D301D4369C4EDB7DF5EAE92152AED6989554A5411BCD1CFFAFD05175C70F7DD779B7ECF2418DE36648EB7DB6E3B7D46AFC37675DF4F878E1CBC2D81F862086EABADB6D2A924C714C110D08DD9E2F97B5AAB8306BC640AA40EDC46942D8D4CFBFC7F1617481427C8FA8A6621180D5A3BB4889B66EA5F791E5224C3860D73BD47D77571535B36982361B847F4B4F7B063A9553333D570A608DE184F876233441F922CA2FDFA19325A9C271CD32843E289EBCD3D9788A01836C8E9B01F4622494BCCCED4C8A574E7CF9F2FE34C4BAF5533D9A49783DC0A8C024EE2624A1A2ADF6940DB386885C641145BC33C6ABBB6E45A742680099BEB0EA5C204A28C041A71104D54C0E3E2468DA70F470BE9110542A702C61F25FE6FA1D1E886F84BEDC93E9738728E7A32833D016753C1F7B5B798F3A1F37C9A88D03B6A23D34AE7A5DFCBB6452BA76CAC61EBA5FE5C580D11A3618694AACF5B5BA7ACABD870BC18916DFC037341C0B2E67C4F4F7B73DF4680A463685BDC93A7A18D064B22E906519C130FE4ED5B99029E407D4CECC1C0AC9782492A56EFA55A9AA4941BB3A7CC4711F3DCD1EC28410F80C53A575A931AF04EEA5A85C24CEABDCCA959C565DDCA4CDD265423D7428416E7C3EC30B13EBD7455CD839D5A7BDE31D4E1D246840EFE0AAF4F3E1E90A049061A19E60D0E457F85686CF6ECD9B7DC728B7EE3EA5EBB4D8DC0F2CF89E58444FCA4ED4B769776823C7E08FCAAC077A49AD89CD1224C81B03E85AAA458DDBB21F76D8CDD8408E9F3617B57D142D2FEA143510A7AD433E99DCF9EC1FE306F5DD775974575CF3DF710A13153690A641429A8DB9A1415E7CEF68DC6ACA1CAA7D1FDE9003168D0A08F3FFE98894A4131C78C6CCCEC3AB44B700FD71040168CBECE7C775E36340D4C61661A01F39F421CD25503E827ED791E542ABC899E862B476C5BA7F6DE76A6BFC00BF22621B4806B7BD96597C9325BB162455F669BEA2DFA0450FDE547C35A4AA719900D40140902A1C23B6780A097F6BF11B8ECFF08712D1D5BDBB8A846B2783A657EA85F13D1ED324BBDA3FEF56BF2FAE09C752B4960E8F67443323E9687119AAAB7D3BF714D1D368BE374900F1D0980892857AC674B45DEF39D77DE49ED453A2E74F4EBB88CD3F3C002993E8C9FADF29D5772B688547D64BDDE78EA5D0650BA343E39FBB7DE7AABB96A09F4D5E738BB1EE0285FD2A61452235CA91D9A013C1BE3053B8E785194F576C822E18B561705C364997E819B104F43CC8D1E3DFA861B6E40DCE3D4BA63319FDC628B2DA047407BB572F91030043BC76685B4795E958B724E9E51D98D707EDA481FDE9D21A55C94A27D095556D5FD63593A7E0F0690314A6850A33DABD6858DBE64C99233CF3CD3A11E5E93C83916B43D807E6D128EAEB56C0A054BBC78D4BB5155447A55F6A79B8DC3C2C37CEA6340C75D9E14E9BA9C13E2D82091D97531FE6654672AAA7BE54C9F72CA29CB962D2302560F9AB3ED689945110B87A291EB2B480D3A60401487881F4E4C23F74D6224881E2681C13B3E54C29244058CBDE2A9E8DA3CC3970646B744ED7CE8BEEDEDA51051F4C9ADDA87E0E390F2D8D0FACDDE7BEFFDD24B2FD1150ADAFABED061D057692138D1975C72C9CC9933491EB13A20D2AD8AEA73C0CC1B653958CF669AEC6B6F87E7DC273AC001805253C8E8F035325B21878E13C7D451F2EE76350E04F66462DDE82A30243D88958A1C96969636AFF10762280E1F3756BF343AF0AAD631B17F6D4901C7BDC157CC1885D6C19C351F43C98289569771A360B3FF4768F59D3245926E157161985972EB6FBCF146B8E7FC314F57699337DA592125AEE7CC99A301E805F5ACD8EFEEBAEBAED39F0CF9EC34534A411A4F056A88893232891483AC99B163C76A736A7EB4E1D942FC55FFC61CE5F7E7B459DD405EEBA7B38769E3AE4155219DAACB703BAC48F6598D07DCAAE8D768522440AA0841D977A8525AD3BBBB991D7C9D19BDB35CF9B56BD7521C066735247FEE9B143BCCD00AD7FB3815981D393AE0D9F41B498DF7DF7F9FD3D209ABE1BBF69E29B66BD63603D876DB6D65E4223ED819EEA39CB2696683DDBF24AE106963BBDEDF548E71E1F4146DE851A346C11B356DDAB4C993271365AD11582459314422058FCB99527BD167D57DBAFEDE44C7CE3A434BABF3C38127584A0DAE9689F827A4D9908871AE40FFBBC0408EAF8E1F1293C3EFC2410074E6DF801DD7A8A8C88710476E8709C1DA5790A9D5789090AC9D71C61930AC115A27181E438E40254CAC8FFFCD89457835039B18138E858E3EF8D9CF7E76E8A1873EF2C8237A0BCA75AA6493D9631CD4E5F755290F072AADA7BD3939D1A98343A37EDDEDB2104D0515EFB02DABDCA9697C99AF4DFFD29521859413FD225361F10061A93A17588DEC2514BFEF1F311056878CB337B74EA114B526E5E402B3A896BCE2FAAB9C7E99FB3806A65FF68BA3DB5C40CC53CCF58BCC61FE1D567490209E4D471CA34DC665052C6D072482D6148DDC3DA26A1DD9F918FDFA79FBEDB71F3468D0430F3D44A538A9106F547BAB46CFB9A13554BB7A3B4D2CECD024A189A211C6D07F2FBBECB2C58B1743039932CC188899E58F21059101022EDE14688B4C3E8A5D4B45AF74644F6E208D442D052F53C81EFA72A52BADE50DE682B50D43537BE697BFFCA5862D3D156D1AAD32BDDBBF4FF5561D98D871DD38D2FA5067D7EBE73FFF39DC6C76F00198541DB0689DA576D0900B0FF0E476DD75D7AFBEFA4AAF4DAB9C75EBD61994ABE3A77703C3C2DE825FCDB120D4926999F9167F0273EB7937532B5943A41B8DCF4A1BCEB126CC376D14626EC01FAA249449303664566AE269CDCC4BE7EDCE968DB171B725D10BBAA2A67435735B34C898F449B6A09EAB5FD236CE558C354C6784FEDC1D4F1F8E64175154A50C3CA959DFCECBAE5B4424910204A0E14FC6D0B434D991471EF9F4D34FC3A16D9982D54C2307A4274276C08001FA3D7B892CA96EA24322978B574335C6BAEA5288D52D0B0D4B34A747D7F7429B52C3C3731D946B74547A7859090C626319A05E82C344B54A45B8D6914FCA06B77F1FD5707C8A441E352443870E7DFDF5D74141771D7FCA94C2CDD02530069F6D05A66A43B027B3C6C2F98378D53DDD289E7A5C6DC8529360DFB3915B80CBDAF8BF8B0B3B7B8F3DF6907D230BD2C8DEBE4C315B6318E15C3A818D1037B8297574E3D16724707EF5AB5FFDF6B7BFB51F66FEE4CEDCB917B7E468A68075E232B4854C53F4417B738B02B8F91C53E5243A4C822636C2ABC4546A4FBDD18EC4646084EB24A5B561B42E3A0B1F7EF861AAE65CC249708B178E83433B483027CB1C342A9584513A68BE3F6DDDF1E3C7CB13D53B22E1A1DF21BAB6E38E3B6A48B14DC84F7FFA53A9FC4F3EF98454A08F4344D1533BD7973BE544342535A5546D1D77DC712B56ACC0ECB002F69E890AB824C1DCE7C61030F72E32C5981EA489855D24024BB5E71150DFF769A8F1547C8C914AF5D46E5597D52795A67D995CBEAA3EAF74EA4A383A569D438B89C039D1FB68319AB91B54AAE8CE6B33C46A3565758258C4106B842EBF5CFABC564B93A079D7F223AD70CB28844FED66977430D680A3EE558ACD46A2998970825DAB9042FAD6BDFC5AB926121C443DE100C74063D08725ADDE7EFBED529D5F6C2651E501334EE78A62603C05EC5B245BA8D90F5D2F3838FD5F3D0B90114977C4969EC818C85F92E4E390A30BB19F484E47C1E75A73968C083CF2CE1634F2B4A4504B0106E6217621ADEFBAE379230043FCC0F524AD40779072B98EDE0B961F22F0E0547B32B97CABBD1201754BAD244F7127B8AE13CEA635F83965087ACD7A19BFEDE8ABCF91655FEAA6694ACFD5D2941AC699D30D0406D302952970BF38F846004E92ED26B5E4014009071A8860634D3D3DE638D1DD134E3861F9F2E56C39F7E1B0078C68A600577F3DF6D863253A3FFAE823364CC921F19823EEA611F0CCCDD03D7AE79D77FEF4D34F51158C07F4492AE48639598D2931B4D08E84F7434FEEF9E1D429D024B338A50E378ED34A9B57FAA3EB0565CAC8C27070B8B485A29945EE0C4CABE9513989A53D609B75BBEDB63BE594536EB8E1066F09DAD6F18389BDC03CA2CC6CAD322D7829443DF9D73E6B3C17ADA23EC2B00C73CEDBD84220EB5BC816A25F2950A0FB354BE8E898CA41980C1F3E9C226F0904ED408D53BE101A33E572237725EFCD7D9CE401EB2C6CA4C0AC3A7829E7D5528002F5D70336B3318E2F50821A8551F5FB66EE9F63EDD813E8E9199E29A5F80ADC9029870BB0DC013D120C21CC624F2E5E8038407811F069E4EAB738A4463BB498C7E1D492D8D3CD35695A8C9AF775BB50171DA600666916ECD0124C46E260BBC5A0420D08081C04717B7D1DB78F86161A1B1178F65C23334B542D652B5761E2204211C59D3BD56A7F15B0CB6F62085ABFD4099190E240EADFA953A74E983081D2611366C1474366881A65A82D7865BD2C7B9847DB8600AE625A7FB6103AC0D451A584995D22CB44733257795AB7DF7EBBC6AF7F6D4DC756A0A93DE7628F047C033487917326B50B417E60487A2F82AEA9A807E3FC576D39028F5494C999F8E0830F52F5E5196024A06AA38D652155E5D3A7F66E600011A4CE5997D83208B1C8A14B1DA52C5C469622F1A9CE82147AC488110B162CD04D2EBAE8A2FBEEBBCFADD83A2F760B9A03BF045EEB1883F1BBC7502A678D2AF6A8593B57273AEEF12DD83CF8463C85E526756210161CCE50DEEA5F5E1633CE92C745C3460961531AB05642C9441DDCC868F3382DBBEDB69B3C4BF3AC9596208630A30705476CF4411DB061B74748F0A851A31E7DF4517A3495FA9A44A03ED5804698D3022065CC762A68C089E4459FDBB81C07E4409BD3C25CFB0D371D2C981691B8140799A44F0AA664E7598BA91C3E1CD124906AB046C64CC4B4694FE872B1D1B7AE3A759442C293C926FE21BD5F3A2F1D89356BD6AC5FBFDECCA23DA19D53E7D5F50CB3B1D0DC863E1AC26A20B74BA4BDCF9844939DB296CE864211E73C0A446ED486BBB43F866E88669F7FFEF93ADB0EF9761E304D9D1E645C4C4F41551F8B854A17DA05A727DE07A882FEDD6AABADA4244C97436CCA969A76C041071DF4CC33CF74BD39121CC4AC33C13E15F6C09843A7723B2F7A36EB8BBA09B8E2924FDFA8A8CFFE8117072362EC0920BB5F324625DDE071BE69DB872D8959A0A579E4914760C636E4185259305032F01F7CF041DA2D5C71C515F3E7CFD76780E042194DEB18BBA79DFBD0D36576EB92F55DBACCC866E30CCBBDB39A207A90F1E93EB49D1A8ECF3B8403B9819E78F1C517CF9D3BB7F3FE292B4B7B45C68F54453E30765D6492B2C1EAF867F4186AD61D3FC0C0579DA37DF6D967DDBA753A205AD03DF6D863EDDAB520D5DD3095ABB40AAEDF6D854A364F26912DBC0DC3C4BA8EA7950BF7B56D2EBFFCF2C9932793D592FA2995E121D691E38E90F9EBA0174B59F01815288D9FC8562BD7C4E3A3530B8BEA6DE5DA0A22A27A23FA1F370A76A368AC78E6A302C62EA153727457E2EAD8176FE42E1D48096879522E30EB342C6236903E25DA7BA466B1771DB42BB108787E38C5242070F7D105FBEDB7DF5B6FBD0529A1E939DD8F9999717D91893580CE4512402F37CDBC63E479FFFDF77FF9E597537BAD0730029309966CAF78CF38755E7D9C52583F01799D75D6594B972EA576D752BA91F96B4DED8E07FFFD025585A0FB0A1A52D2C020C7227FDE0FBF0CD9C0B9F92EF49DAEF9565751AE5F6A4843860C79EAA9A75CD7657C32DAC5C9B99EDC5EDB9C0CC667119ED25FC78C1973F3CD37E31CDBF2658EB89B7E397AF4E8458B16A18961602925A862452349327969D3A64D2334EDF6F5F520292D8F74C05D77DD65586F7C040A03F3227230D15305ABB9CA0333418AF4B476F9EAD5AB09599BFA27B59BB455E39440977CD4D8F4AF660613C4B9D2C81B50025F94AE9A79183B76ECF5D75F6FEE4979BA37DD7493D98075730A2ADC7815EE270DDB4935BC5B80BBB42AD37CC258628715E5C74C5AC7DB12E70EB12EB6844588A2DF78A29AC81082839D138BD36217E478D4CDDCCBA37B4313F8D4618937425B785364BBAB58D5B4F765FE57E204781E55988C7818DDCDB4B3053282BEC47C57BA897620B1076EE88219E61CCF467726B91B43DCF13E3680A0CA019CC17E7688CE03A680B06A1F9ACD389AB3CE16C5640A3A8CB7D68ED2382510D00D6E6BD8A98063AA3E0A3D769723318859B6220841C78D63D7C8DEA2B7A6EC609DDFE87C47EDCB2565205B190966FC510A065C94AECC18DBACD9DE2F32EECC526E9B4F4A4DBA33AC312BCEC7D9B14171600AEB33B2921F7AE8214E9FD3254E49985DD2BC3AAE023551A0C3B18DDC8F39EA7BCFBFCF32351AE848A781DC5CC4E34CEDFA3546BC4A27881970A9A4E48F6C4A760EF0460E17E3343D510A7C3E3E2675216828C180989BAB883C99EB4FF0E2B56F34116ECFAEEFE2A73602378237376FC561E33C0301B508881A4E7F923E0344EEDE6A5ED7C8CA4BF4A399FB127ADE2D2C8CC14E85158F9EB3DFD35F8FADEAB2BD89FB1BADAD58A91C294AAAEED3CA24A0F81C7C5D524CA69CAC458D1F3BD1214DBD9D0BF25C5183A00163D9C8CDC5EAAD9FFF29174290001A1A45DA57D60F3B8A55D38942677862F579923DF8EE006BC91211086139CC2400A6970D536F70B83E1BAC8D9CA4050B16B886CFD22122992549E5C9BDF7DE7BF63F62F29EC0209C44C8293EE30EC72513BE744587D81A54C7FB9A6BAE59B26489EC4BD7E8F383F37F48BDABAEBAEA8E3BEE881DA04B979388F197744F933F7DCB2DB760CE5A14F4E6D66C884BB2A70EC59B47C23619C610F90EB740C63C326D45CAFD0423B289358DDD8BA357473A46BFDF7DF7DDE5DF90706916CD6D58A31AEC85912824D1F50874A1CF2C123C7A511A1EF146C7E45051FE8A13B7CEF54648545C65F0F9FA62EC38C96D510CCEB8EFBDF7DEF445BEF7DE7BB58E7A352CCE2DB6D8026D2D990077234CCEBFFAD5AF9E7DF6590666CD14315996C6CD4C05D8991BC6D88AD85BE3BA1D4873FA0602DA934F3E59E374E36D1AD6791E48DB1358D67B91E3E318C2C8612B9096A63888CC9EF3E23DB9D91AEDBCC8A140C0E91635F2D05E7BED353EE9F422D3CBD9B1A5E2938509058932F2A72FF7C18CDD90520869980836E227C8145080CE1C8243326F41CA7C612983762B15308F2F1598734E5C7748D54AA44D29E976D6CCA8E088A1ED7CA2D321101251854291ABC5A8D3B70E3A19216282E89ED03FAB91EB1398352B6903655D7DDB5F8291AA4B4F84B3A92734E673AF43CC02AC3F6A5EAB220A31DAE315E1155C7D8196F56695BC38FAE8A39F7CF249DE1D8224F6812613299F72767973191C9BEB0215E5BA7EF06E66C947719658DFB6DE7A6B6ACF98077954905CF2155BC76C2D8332348D3BEFBCF39FFEF42738476B729604575A05F7F58E3BEEE8B8A8C49CE432A9B894633C6C518C21D35DF51454E4AEBB60E74F9A3469FEFCF9383416E284D96B72F984D4B0746D9148F2EA37883C97D3940A1E40751ADD5AA3E04D5FA37BEA63BA1B1B69D0A041EFBFFFBE3F69239B78AC83D8BC2F4A2BD2E13979ECC62A58BDFAA23B2A1AFB8A67C942335D988F7A96DC08B7F1B6764F99CEE2FEFBEF3FF3CC33F190F42F19B8C30F3FFC85175EE8FABE403420F0F2D9DF90DB4BF35FA012280F83481AB93B35E6AC535A2528493374A52D81EA1BB928FFEAABAF9E316386C4C5F8F1E365E12D5AB4E8D24B2FC562D05C1179D6CDEFBEFBEE51A346FDFEF7BF3FF6D8637D5808FE918C379997E6E1A28B2E92B5C47218E64290D975C6A5288533CA29D035E3B01AACE44FBA941958936C88B163C7A65CA985DD83114C2CCA8830DB1F77DD7597CC8856416F47628279E675501950BE981D052146EE869C233B13D224074B402FEEB3CF3E5A74E05D58DE0C8C43643118777E0ADCA829C4667C94D038461A3532A785E60141610FC7AE604C83F6E5D6B7A5E76E0C9374DDA07E49A832511829501F704E76DA69A7AFBEFA0A64B2AB27A1D063F963790945087A1313D7992E8E1D892D8C48C24C66557A73AF78986035A1129DB4D62148EE438B29D4CA78694C4593A1F8B4EB9E1249EBD7AF4F45B4D3C1B17FFCD21359BC66EE200D3A867C095314DDE2AAF90766054E449F21CAB121F71EA0860A92901462686693367A8E5E1FEC0F13FAA4FFF514300AC08026BD0876B13B967038E1BD239BE8AEF500DAB14264956BFE0DE548ED84919EF9AE0506A5F190E56DE6DEF24CB25673B7DD76D3CE6187C7E2108448A4B4E5B20B054683FA723B8B1C285CF91A34752B143FE8875D77DDF5CF7FFEB3FFEA784FCA71A618306F0506E61A83CFADFD52B6864B2F122BC4A8AD1A3870E01B6FBC0131CB942953A44E0E3EF8601904E4F908D23A004BEE40F71C3D7A34C5F14C1D1F88A68311C8A5D172BAADC3E25FAFB9E61AE960377633E971CD7C22550DD4009B22198DAE2D51A698F6D9AAB4330AC24DA64D9BA6A9704B06B3E7A6C260D212CB389050C2D88A76B6539B4E769AEC938405A292013B84E67A5F4E8413B4A85E572A32E6584D4EE233E2613BD1BF29B77892BB2267D7FCBB7AC4F9E79FFFCA2BAFE001632A99AA562F72E289276A6358A8A2D2F431FD6CA48B43B84C6FA42F341CAF9453F025D1AAAF0C1B366CC1820578D2C8370DDB08E41871C40487A9307503F73945ADC33872E4C8C58B17EBFE285DDB5EDC13C618F85E62E246BFD18789035968A47642B7945150A970849881EE1BD404058E70A2DB992FD04FA81659409A052C0BB685A3C43C184E6083938F3CF2C837DF7C73E2C489B2E968FFA23BEB29FA0AE11DD35E12A907B5C1C69235C0E482E635E69E63C34BE282A482285CE2E08F7FFC2325CFFAF0565B6D25E9C027410178E1379742322C594B357CF87059A39046E12EF06AB07CD830ACBA4FA3A8F2266A8725E19A6CAC7E4479ABBDE32C1E061CAD9AF3923EF009EF6F2EFFFFEF8B400505BBC62EDE79E79D12ACE60440E2CB7905340E864E675BAECFCD37DF4C168D53012703484BCEB0453C334FE178CDFCF32D668923E084A296126164524F5641CB8AD06F651275103AC48DB41B2172B1B7A1016B93836FD75B80BEAEE9EBAC3B902CD4429F76DA691270700B1353F92EB794370AD42206B58DDF594339E984910425D04B738781C84D4518D059C09933672E5CB890BE52925C1ABFDE9DBE082E66450C2183704428E4D5B728226AE6CEB22638848F02A9AA7F291441983A6FCA1513AB7AEE09279C20EF2A15BDB924256296BAEBFBDAF7050F41D3025B54A93D95C8B734C8DFFCE6372B56ACD0B089581885C7A18B1D17F49AFA22A7D25AC1DE556A6F275CD29466648C3452361FED201A6F61462D5936F3E6CDFBF6DB6FADF5FD52C631914A40DF47504E2C3437018B3EA691ECB7DF7EEFBEFB2E02331560692DB781A5AE1AB227A0F32503D12D53BD09ED89192FDDCA95F41C13633522C0FBBBDC6EA82FF7C340A611D701518FEEE06EA48DF474EA1A9003DE905D4173D103768C16A810BAE381071E909C7114C7F493F15CA7EC48F4E4E64BDE36B10ECD88998D8E72D506A5C7DCB871E3A445860C19F2E28B2FC68ECDAEE19B3C79B2A42461318CA094D9A3FA0A0E5E1D54B435795C8D9EA2FEAE8292A113E471B1BC47A5A9E11C4224C4AB6A2432BDC13D4D9D3A553FB3DB747FA84FF00BF1B34B74DE9C9C4DB611FCE15724B1622139603A18E3C78FA799A043D335DD93646168F289736A21060D1AB47AF56AF9D325AA2F340AFB29E6CF0804B93EC74C78ADDA22DDFF89970629198A5195323394F33140F9F50A9A1622AEADCCDBAC8F4923EA93FCAC49AE32ECB83C4BF5A87E1F92545875AEA337642322EF52E6F8753033A2FD7FF2939F38D6DA2C6884C9CEFCFAD7BF7EFCF1C7F55E18BBF514AD8E64326CE2E70E1E7246746A3445A66225118571E90ABAAAFB63CF9532A6D81CF86150C4C056C60982DFA6119A9B19D6C4C56BA6C2D8274944741110099E44CADD249958CC0BCC62433D52287968B6B7808C10390E7BF4362C8E3A2FE65CD3621241FC66F7D5415C10F300234652CC3902746AF4BCFB32DDBF8EB65EA4AFE027D72C69F561E5BBECB2CB24A6500F24D7A0D7FD2E7446076688DC2727CD8AD3BD9BEA419612F7A32F13B532C3BAB4DB77DC7147592D11F11E39C62585D09DBDB9A15EEA50C08D5C6BC7F2D1AD8730AF67C086720A58F4286063EAC7668D3368F1B255EA208D7349C4DB238907314E9B9B6653D1B3A85632132DABA66D400D3A2E75C942F5EB33720913ED2222AFA469CD7D0465A98D24306810DAE8325CB42AA2D06C6F8F8DFEAA0B416FC81DE864B2593B227AE0ACC1341E3A74E87DF7DD07B796D128FBEEBBAF1486768F2405C579B006B229F52D8DBE2A5468A82A3FEFB3CF3EAB56AD024B86CF7DF2C927CB0895EEA790AEAFE8E40A97371160DF8A33499E98945E2AFAF33433C73D25D8A01EFAA12EAA2F4071BA1B2C77C4B270CE3478F6BDCEA48EB4ADECAAFBA440A2E6DA187B72ACB79B052132B063B493E4FABFF4D24B5803CC063310DB95FC2F75F1BE9A191D575488931D1C7B5AFA70CEF51BE27890891263183E7CF8BDF7DE5B95DAB059CDD4B91761CDFC3743073D1BC5C84433CB5B70508A0A75808D2A6D3F1D7BA3D0FB329F3EC00D9422F128FD558B08EF66D7F150FA0C43426C0A198B946CFCD95C88FB87A6C255A0242C775C04721FB2F96476DF70C30DAE743451062927B23F4EACF05DD43089734B0C6C44EEAF77D7599629990A058FBA8D6902330C13D4858F25F6268F2CF9114A638CA7DB70716ABABE2F45B71484C04E0C8CDC78027DB1950B6D23F49D9204B3A3901B721F71F9C71286B8AD7CA5A4B6274C9870FBEDB71B6F55625533379FF4F44D37DDC4F6D06CEFBEFBEE52A8F6D1ED0B12FFC342F2E9B01964DFDDCA5B7FD260A8AD4751495A7655C04EDE7367771120054E93F966E8959B32BB270040B69C09BF305674134D94AB409BA16F4D4FE831EAA07A2BF346917945969AFBC14D480DBD761343EE2FC571FCF1C7CF9E3D9B11BAF632750B419B66DF2143A72F61BC828BD476B9CEC277456F6C52A56674778D5969735A01C71AE58D345E350231925D303B9C64BDD5C48913D9AC3A4EBA29E2CC34A49A1DBD2DD3A1054B8539A0B5D187F57B4A955337B08C332E36DC860D1BB678F1625C076D5F999C3A605A180D03DC5A5F669E4B8542C256E06A861EABF1EDA835B443F323CAABAAAEE8CDA422E20403B0063C6AD4A8BBEFBE5B071B69AE4FEAA15565126C14809A71FCE67B739E2FD6F931FF5A23FD468F28355672806833BEEFE6BA7A435F3C98EAB4D073E6CC41D3B8909F774148999A0EFB8339EF9C4F5C2237BCC218BAEAAAABB4A9FEDFE2AA9AFF883D2163E7BA4623AB4D59C0B922950BEC4EE3D96BAFBDDE78E30DB20FFA3DE5B93AD8580698D5AE52709D5ED7F1B4722B2477EC6814FD98B5BE54E8C6636F4D1C6B39E073A82A3732E8D24F69164DC1F52E7A1CFAC315C0BCB5F715B361984869F20D3F71320F9F0662044B0CCDD2175F7C419006FF8332D98B2EBAE8AEBBEE924BB76EDD3AB45DEA10A00646A5E04BB966B76A3EF1EACC4E6C4E2559F3D80729BB8FBC781456CDD0D54DA3A5233D8B427D4B4C25D0B08BB30C920896E31428573506C23C7DA14F063FC4463D067592F57018195D48E400A54E602FE5389C756A2A7C50A9732F50CCA9B70247B4730DA45790D8D165726C20A6366CCA9871253254A78C90C720765B3633EBB976800DA99FF5146D033C60EE49A4C7907EF46EDCB734FF4E39E0CF386DBBA76EC41A869EE134737E29F03582183241DD4AEBA5E1912CC38688989EAE5BAEB3C6E1EF75635D37682337F460CAFC335E26F00142795E0F748369421D168009599725113989AEE52298F9084DC8407A73DBE09EDC9C98A9744E9A7A067A45D09A3EC213DCB4DC6564FAF019679C215DE862D04E68DC8FBE5AB91715800B09FAA54B97D23B0C642C1693A5554D48D055EDBCAFFB7E3B76CA0EE60E7ACD638E39E6C5175F343775A9FAAB95CB557DA836CBFB6EAE8BC3D3939B43C8BC63D5A251CC3130CEC02138A31B36E45E3D5DCBDB98106EE2D2E19A2A8054A81623262C9876D861872FBFFCD21544B1E0C13446388B70436242F168728D36B471202422755B09D6E9D3A75F7BEDB55DC7437414D627C292FA8DEC514D141FE045A8A276ADA4E736D2E4562D8143EE311F69B04F29499902872542965DEA2E5BE0155C0864B88D4628AF5AC6A8016228BF112346DC73CF3D3ABF5F7DF595A791BA8E58491247EB3DCC7E366F83394D2D3A3A2FFD69EAD4A953A64C41753169FAA274D575D75DA7DFF705CA331B3D3DB98BB68432A977BE6E827A57B32006D9B470ADEB33CEA99BCCAB93438D3F6DBBEDB61A89DE822081A9D91C3623476BEE3F5869894968EF5D7AE9A5325E79051786B9CC4F72F8EBAFBF8614052E4F1E5D0A994662BE880FE72070ABE8E1C42CBE1D7A6E6E1AFF147A1FF1F9A87A4D6FE0B85D0A5477680720BDE8234241C6F9DA204632980A82EC550A7172EBBE56BEE25677D30B8D61C890216FBEF92625B89EE179F3E6690F13814332138473596C3334A9E4BF31076CD9B2891CF0C62AA5C2E8B3AC71F537195F1AD1B8F946CAE2DE1D007931FD7BD45147BDF0C20B9ED9CE51A61CF7236D204113415271FA584B1D8373CF3D17AE061A189C7FFEF9F7DF7F3F063B2327E4E5C2891AE963D4773370D1812EC141711CA91E32DD2A68481119440B0CB374791956AA95CAB871E366CD9A65DDE02E754495396071D37715B855AF76C92597AC58B14242CD02AB1427295DB6229904F91FBBECB28B9CD1AA5C1A715442C4ECBFE8AC732BCD0364C56C71A6452F3B66CC9899336792086778CC806371C86882C9B1956494C53EA82E12AD79AFB8570DDAF48EE23735AD786A2E371B7027380663041662571B78E4C8914B962CA98A7CF4F7B241E6BC9789A6BB7E3EFAC7846163C13A9D0CB0EA4A9C39CD406E6CB00C2570A79E7AEAF3CF3F0FC77D5F6E01D9087C2C1087B9DB8FD71AEFBCE6EDEC06F84C514982DE825F1AEA7534A2B68A14B96C6B8AC539C2A6A941B8DF7EFBEDD24FBC9415867E298DA593EE3C5F8C6D5AB0E23610C0831E8B0207EA2C74CF050B168C1F3F9EF638086597446B18FA18BDEB39FE2E4637DC3A054F111BAB0A9467799532EE526F813D544A8DA79C8C67D19DD9B13875ADAD2BEBA2FB6BA0A271BFF8639E9CDEDC273B86B23D4E0C08948DABE17DC44A043EAE4A22CBEBB77314D067D66E373FC4AC440A245FDE3650ADB1758D64F2544456869273BCE79E7BBA060F3C9A4B7B060C18207FD2E456B653B136F4E8529E281EC9E879773FA8449F6CDD8C1E3D5A6ADF851936FAA27AD35349D844A8A7F6E8B1C71E2B230290646C475502671B18A6D703E9CEEF29F0A5C20CACB96362D4F25A43831A4BB973B0959CC64933C11A012D1D2345A545C2A86400DA2B975D769994BA6E75F5D557CF9F3F9FB351E3419AD94A0B40AF08DDCD75CF8D76226B475C818CE92B1471975AA469BA587222365D438E551CCE44381B9962C912AD067CD40A75E888899A794B05108FAD661BC50760FFFDF77FE79D77860D1BF6E0830FCAE9FCAFFFFA2F363DF49058D08DA2E4D47773DCC20D6DA00D02B3E6FE396EA06B498406AA09E1627968B4148170F64A759F0E15F63722128DE812934C4FD1BB547A77D1A24548B11F71FFAA0B303F569A5D819AF0462B345720E3AEB925E2DA93DB4A3A830EAB3647D582D8678A38AA24AC3E2F53F8965B6E292101816D33C97C57F383ADB6C973E43A5ABEAB316B27EB74FBF3A41535BD529CF265E5D5FDE94F7FE28B383DD41AB84A02EA02EA8E388F646A8909A15F7115105F98532933273857C5EC1974065A05998B26B6A442E6423347C1AE7911284F48A1D75C6C746DD6FEFA26192E3349A1963712F146056C6FCFF8C16857C5AA45829778F3EE25C0875991AAA60B29C4576C076078A58E92B6666060ECF414FD6113757972DC8F072FCBA99312AA99923F8E86F61B9148BDA38BA11BB9B996C195A95B6E985B11FEC15A72BD9F11FBA62B21000330458FD601D13EACAA38FDFBD2542DB0639EDAEB707A9520BB202352E676D0C6DA6AABAD48EFD3BB036B5A6AF28B2FBE30AA0D83345A4C299842CEE5A44220B20B591207940CAB4945941F5CB1B4EFE1871FBE78F162588B538E5D786FD930EFFABE80B463115E6A6F6969861D123035028E6D87BBE31C3E8A990809E5AA94D0B14D6DE545BE4FDD04A811C10D6C4F83413A413755E349816CD2CC9D35EBEEA2024D9D06A3D9EBDC97BE88161A730F2D3BDA97D9D3B0A57A11C4D8B692FBBC7B49CBBAFC8CF88F3D307D4BFFD598CF38E38CD75F7F5DF644E472411CE8563487A86ACBC8198E880FE254B84D4417F1E62969F8110AD238203C4B5EC7F5637A6BE9B9E820F6F7FE35EB9B0A852491A4A9937BA7535015B1A090AF99D93165558F1D3B5692221585827A778D9F9026D23C2A42934F3933D228088AC98DE907F7FA74C8D1D5EADC414B294DF9EDB7DFEA4F9C8EAA715A2C103BD5B30E39E490F7DE7B4F1B892202A3AB4C0EAF3DA0B30FC2D63484FAFA8D37DEA839D1085381CCF22348EDBB75AB49BE3454D8D74BFB2752341B56865C226B8669EB042D5F44A9E3A294660F13DFB94902B61B42574127A1AAE6A72777864685580EC4D3DACA0C1B462D1178B8F7DE7BAFB8E20AB0321C61A20B64C79C888DF4859C9A94C3A7A99D8897AB11AE94512CEE9E022D01782EB466098AECCD8318418A42FA868ED4F080E2E3E730D57E47DF0A01E2AA21061F49461DFE01706E226EA39453E6C6E7C00E1932E40F7FF88319D9604ED54421D0B41B31D78C8435059EB3FB5DD7B15201C7B204FD3C7BF6EC993367368AE6395161F024A632820BAC2AEC6AE89C482FE282A011A3024E21A903911077888DF34A663800600E30879010017059FC729DC3E38F3F5EFEF711471C21A9147B5475DDD0B1FE0C6C213BA011E0E3D29D9A04973577DE274636287F8ABFC1DC4601BBA444A2999349B126F3A9D1C2F9100B6131473ACB4EAAD691B720A6CDFE062152F5F91D76D84126148C89CCAD3EEFC6359D97FC12D93DCB962D23A514DBCA968296296B5CC35C7FF2939FC875368F29297F37C1E4F8C1209672CD831BFEB84EC9E11D78D3AA6C2324085801EA501D57D4B4ECB8E38EDA3F84BFC8103B7CF4032F6C8856EE8B0752C37166C7CCFF7B71E9E69B51017B2AB83FC8DB1A030B548B3EB6CB2EBB681E060F1EBC72E54AEBDA940BF7356003C4224A03A7018DEBC82A62CE7E1EF1616D6CCC477B4B1419D38738D5F617C70A8C24D8AC11DAAE51B0F9E39DDB7137C3A56C119DF7871E7A883ED991C426153066F410AA5733A657D090282AD55BE8D103070E94B26FE4EA11346B6CB9135DAE18C9334594F77C29CE17E3A2DB6DB79DDEC80EA8C63F71E24479F38E42D5D4EBDB31603CB16AB6A4455A99C28543A7CDA96701C74939801C33E50ECE79F2B12CF17F9090C60AB0D6B15B576AEF1AC20E89002BB8C36CE5F395E85AA476C2108FDF80835626DF8E832C858EA3CA68E6BEB4AEA0F3A8806496B22DEC762EB2BF4696408482794DDBC4850B179E7FFEF953A64C917E6400FBEFBFFFAA55AB6223C5AEE58ED6F1DD0FAAB371104EE95EEE6C45EB2E90694EBFA7C071D8CA2C3320ADAD35894DB94D4D7C67832A5D32E1A98FFD9EB03B62C75FFD5506357B3A164AF2AF648D6699EC2391C02A4F0EAA1744B0F57AAC8E90E0D086C3C1AA29E74839B5E62239C6465D2FBEACE482164966C1F70D9933E0101FD7E5EA8C93E081591DB0B8AB8817BA0EC68E4B6FEEA0DED74E7F53BA2EBCF0C2254B9620C87097C1FB6D3252C2833011FA72AFA4D8C8084E41EFFE54C4FA623990398CF0D4FB32B377A3C0B8EA2B648E35BD129D6C1897BAA64DF5B56DE6DEE088124E1DDE89812AA4CA7041FA0B5273DD2AB11FCC73F61B0019FD408317CEED77FD6CEB597581BAB74242740214AF5A2FE3A49AB9C585F6E7F0E1C39F7FFE79B83C7D5A4DB2EF824BE26C4435E8C6C15601D7032117DE9E46326AD4A8458B1691B327FC130F94F3C15DC7C932D93F767D0E2B6E91A23BEBE90874935AE88B26711C3972A44ED689279EB87CF9727842503CBAA4EAE6CE9D4BCA80DC9E8FA1E3161BDAFBEBA5F6A6524E5B7A845875C481626212ED684078FC13D6395202BB1C8B0AC76693204DD33EA08323C7450C44F786EE995B6CB10565909037E162729A2EBDF4D2FBEEBB4F7776FF031C47BBD7D6EE2407D9CFA88618D66E0458357BC3001466C95979C3FBD96054D0D8DCB7E34E4EA4995984E1562AC5D8FD15EF73B72D90F4D673C90B98119A12ED98C18DE2C211FE18D721ABC2CFF7DC738F76385B145673A2084608354269591C5E8C10D485A0630F321391C7B26EBD091825D2E3AE45D356663F95D8CC1D9CB10DD8087CEBB6DDA8CCD351D12BD961C508E0846068FB0DF5E8B163C7DE78E38DD6FAEE4A218BF2FAEBAFD7B104FBD095D52C2E1B51325749F1E24E4873C93EA064B3EA3EC71D77DC5B6FBDA5910F1D3AF4EDB7DFD6FC38E06C3E01F0F1E6BBB11CD1670E38E0007DCB4F27AB873BE5C177520F5609686FD092E95A25A08DB8D6E36CFAD43F62AFBDF692BBA0F15032CE2F23DEA19111B08DC0F3CE6AEA117A9664628444A69CD0A5C29B0C25CD9509653742E9245212EC1E8D8F6A041667DEACD1A8220D001492830435A0B69A798EA538B6FAD9EA6E2A473E025BB05FF7AFBA509F0EA5EA925FFBD1471FD5A45AE8138555A731432B9632EAC7FD85B6DA6AAB934E3AE9B6DB6E734E2E6682987CEAECBD102C0D2FAECF134D41EBB0E5800463226C927AD34A173DA12533A9452A42EE3A385AB2CB2FBF5C8A9678604C346A0C93264D9A3E7D3ACB41B071FCF8F19F7DF6D9B265CB48BB02B1DE7AEBADA521B431E4F16B78FA0D68067A0CB83026E2465B994B21756BBA17B575D4825684BA2120066A8E756A3ABB923B275AB3DF785FEBE956A87A4FEDA95F42860E84122CD43B5E77DD7593274F6654BBEFBEFBBA75EB52F6BEB0BFA12871E4C3B95BB426388C183EC149F544E9A103070EFCF0C30F1943A3C08723580C0626D645C04333AF4D459514E3DF71C71DB5C7B45574B7EDB7DF5EE274E79D775EBB762D5AA3A6B208616ECC798CA43212DDEDF3CF3FC710715F8DE8C7A7DC94857A7A0D9BD8156C24D888B8E6066FC2CE41FD6D2B93E720674AE602EB5BA980B1AC6390992D62A1DC287A806B2E3EFEF863EAB253202F751CC3704417DD1B62C720B0C47167414EE9672939292DCD8E7E09CA91978CEC9AFC0B8889DD8F5DEF57D0CED66FA04136A567D5FB723E298BA2025237D4AA0F1B364C4F9776C76A236A7AFAE9A73FFEF8E35DEFE386C4BA21C5EF085F24179F893966A01CAE70D0BFE79D77DEC30F3F0CE297936C79A77F252CBA92EFD758CA787E11B755D37CC2EDF0E8D8FACA2BAF1075A9A9578EF87B8CB694C32108326C7CEC301F54A33D2FB9E412D9927C1E919D024473F4E8D10B172EA4AE86109039FA5D0762E2DCFAD06B2A6A43F522FBEEBBEF1B6FBCC1729F71C6198F3DF6180A4CAA4BC6D39D77DEC99F527FAE56AE7065D8921A12F429343900C7410FD17A50DB8F782E991169113DE5E69B6F1E376E5C1590DBA916A492FD485D184F0639F76516B0144282680EE008902F4A087036A377CBFD29D077D9490A7DDAD3A6FA8B03EA7412C4B6A3BB569811D01FB339EE481281073DDDC4BAE693379AAF6452F0F40889F27F234EC7423F26FC4053EABF3E2C116A64F9ABE7622B1C79E491B2D43506EC186D1EEDBD112346B0B14B21D6CEF98979012060B07A21815347014CCA6E1C265ACA25C2B02A49B0D3012515BDEE5326774326633D136A8ED52B113615C1CC0E6752B6A7B31081A22EF7407F1B774242213278A422C92515003A045E528926A4444DF3125369D2B00B160AF70075C214BE552C86B846F10720EEE4C2A45308FD6A909A64B7D4E37D75BA7588EEBAEBAE2BAFBCD222CB85E32505CC4CD679C02E3C47AC1C7DF4D12B57AE749728B6087CBCFE162B0AE4A795DBCD72B1006CBE0DED1D37F94023370971C240337EE185174A3E928872ECDA20DB94BD67443049440EA78D4DAA05EC8857BDAF513F78C0314268E3D420F81AF46623D44FA70C04D36A31A40863D9488392B377AE8173157FCC983672396C55FBB91ACF3E16EA3472F7EF5471E19A603AE0B8D7746B4FB9630C69A4280ACD0FE0E23C1317E028BB2208C005FD398E38E288175E78C1BCEA6468908FC0550C2E4D39BA6EDD00C6B5EAD58C774D856D41DC1B1E34D28A6681AF6728AB9907F33769C6745864BB9010490585B286A7A77076C82DF5EBFE5517C6B8BBE099B6BA8AE2943D5C2A156B6416688D2DD69AFBC8380442C319883F5B990DD4C10F57EAF3F51B6EB861CE9C3974AD60D71921D1CC5C4E350AA6C4B52251F3D7BFFED5FBDCDDCAF120ED8523E6A88474C4CE0373353387FA9FFEE99F343098B0F481534E39E5C9279F44677BDB388318AF98D94D81E2C6253D4C5794B9CD4C598A5B8F7CD383D88D006B3028CDAB5563A8E1C3F1492D3A459B7013B9B82B2A601FB72DB7DC92A085259EB360B8A1A4186CF13BBF03179515B025248EAC83D5F68E6C33B1401107431A915010FBB62774C3C41F75FD3D75D8407A017001EA8C6662A7F4B3FE027F60D82678284B45F0594E39D9AE6A050C1DA41F6E1B1A21D9C4939CCAF16AA6F6B275577E46EF7C230F65CD02F3FE46333A714BF081301A0214FDA4773BF5D453972E5D6A0A536C3164849CC86BAFBD16441294601140D1DC142315885F9F49E6C5E9CC9E8AE68926CC8B97F7165B109955938B32BE231536574C48EBF784D1C8FB7A96800B113535E2CCF40BFCEC4A0CFFCC4D08BAD67B72C0025D69CE268E768F375C15E1092058BDCEAC59B3E465CE9E3D7BEEDCB9323C6B9E4B034A7D60F7DD777FEFBDF7FA6A39A51B99D501B63F76085FD1D8860C19B27CF9726265EC45F9C1F7DE7B2F796E9BC0359E3AAE0CA1722870F53A35A8DA1F7131D53675395A1137471CCFFC91AE76B5AC214FA657D07E7089943940F457B9FEE3C78FD70E31477FCDFC479E3C83AD5220A831D9322AD6F90E770CD487F90A75F3C83BF6BF05371683B3F8291BA01640CC79CD38F5A0F9F3E75F7CF1C5AE08E2D8824DC35221676692042957CD899CBF850B17E272B14529A037451AF13D8AC2A9FF71A0252668E226D4E3501B78BA93264DBAF9E69BB186811DF4167D215328A24343986829A29C3CED36CA1DDE885D4F62F2CEA90DBBD116539AC956C1D9E949B6B96010965996B0833164E3B3F05391A2AECAC32F8A10F456A0EA4408C08765E08506306FDEBCB3CF3EDB2018FC1992FD314BAA8922859402EF951D5FB308185715BB126DB3CD3612C8C71F7FFCD34F3F8DA88CC0AB1A79528F068F0D6A634905D50706B4BBE093FF8244F32EB5DEF50FB12D105F79E8A187CE39E71C7632456536E99AB9DF7C23F4CA8C8EAF3B43A722F0DECA64B7751EF0F4E9D3AFBFFE7A2AA9A920E25EF6C9BC8766CE9C29D75BCAE9DAE24AEDEC2764FBF403A5B1E85AA3F9533B16BA66A2010B60927CD7DE0EBDA768F58C04C48A77BAC5894F3604E72152DBD42C7C2B70935E71C515922C9A476D41FDFE6F7FFB5B2C5A9550D6C67AE4914790207ACAA5975EBA60C1023A354148C943F937EE69E780751302A4555C1F44B64D79AA3B4B765310E9BA676B027FAB93F233E29B2480A032A899876620BC445B50F75205AF4724FDF4A73FD59BCA2C93D7EE84B79EE2523149019D01A8EAA3A964906DD590607A019D78E699673EF0C00384AFFB0B9EAABA34813A9F7A4DD90ACF3CF38C8BA3FA0A26B83DF6D863FDFAF504667A8AF63E941819319B724883FC3D3490B6F14B7D6C089042015183E236D31C47EFA69B6E9A3A752ABAB695B971FC617040C056C96598DD5073AB91031A9709AF7744D53532F702F5FDB8AD29B7736747F504EAE9AEE304C44E89ADDE45239413CCFB229A314F8F3CF2C8175F7C11C094AB5C8C0A76B180467BECB1C782B18F891B23CC35C8942B15BB8E67C28409B272308239899AEA01030668B7BB076DCA529B208A21A55657299732B74233F694ED60A2592CAB8F1B05786626C75070561B1719B41AE7021A8D942DFE58631A5736722D59C4C701A742AFECBFFFFECF3DF75CACE734B0D4731B6387262490C8D2BEF230F40159459A7F685CA5CC64BB983CC414FA8EB45368400AC009FE585063442AE725DA79CDD096B8F3AAFABD5D2F1C1BCB3DCFF929A79CF2DA6BAFE94FA41B40A1437074D249273DF6D863541563D811A622B4101BE9A600DF416D9B00C44102F208AC854F7A4FE87FA31F22A0D89BB9EE2069AC7AB0249D9947E2E70D85775FB6C18307BFF5D65BADA25B834C5A0EB316C37CE586A1A7D0F589AF6F1224159147D8839A2F629231C1C9E5DE76E42FE35F41398D1C39522E17E1CD9A3A2D1B8070279105D7EB80FAE1F58969F88D6CEF13C8750731B89638A8A6D4E80B54A2EC634973795A1BAA49F37D2CB5E4FAAFEC3BC810B4E30DF931959A145BD7A617C41BB163F012528EE1573D17CE07A02B7AAF830F3EF8D5575FAD3798522122351ECD18DB1A5880BEFBFCF3CF93FC4678C9035EBC78B1FE0ABBACE68AA466BDA7853700FA89BDB47973AB18B02010CF38E30C6D86193366602E687BC7AE21B6FAF561C40DA460EE6FE300B513879A76BA46EA56B8A7BAB91CE2AEE3896876244E33D308EB7190C1816F72B3ED94A1EFC6977AC2890C394401F81F7B9480D65E7BEDB566CD1AB7FAE0A176E66214AE748121700CC0B89E943B8B130033DD9B09E0F88C3727A203CF9B7324A90DF31D65A006BFA4C06E58023DA5422CCADA407DBA6DAD5190080A1EA1DFCB6B97CBD16C270E8CE0DE54B01DE8BFC430CC9CC3B993490A5237D6163BA7A6FFC65CB866C0861A8B4B489F808A398EC8F4E9A1840AECE64690572B5CDC3FC6201D278B9CAC1873FBECB3CFCA952B1998E6509F3FE28823E49BCA159E3871A226846A14E328BDCA440BA865F096C0A0C76399346992568AD0A92397467239171BBDAF1F7772ED1D39FFE29947DB2127298F74AF179004D40EE01A3169445CF0FE09927354255E5871FB397D99FB9D50B19E22EFEBD9679F35D2D30A3815262CC75C43D200F4B86DB6D9867C4AA502D6825D75D555F4CD26C642121BD6025C7E747ECAD959D4BE83336410F575F9EC7250284570658EBE0E9EC87871278AAAE69A6533019E29E659D7566E5D62E4179BCCD124E435FDAA52A6F0361B5C8DA0B70830C0C106E3E4C993B5D56C9D6872522686B490A26ACBF588175E78A16663EFBDF796A552C2A913ABF781EC3A1EBDBB3EE658A8839C1C8098304E2128DAD9F6D1CFD5A6C4C0AAE7A6067AE33E3C92147A742492ED1C27C01CDB8912796447F45C2A714DA7DC088D579129301ED774B3217913ED7722635586547FAF88C761BA2C6D53361989FDE20391B8321B095AD98D78B564575E79A5DC41841D625DEA76E6CC99D75F7FFDFCF9F3B53DA067E140757D5F039DD8871C7B9B5651C26A30142368CEE56A48DC5098401F27AAAEC905E867360C1B03D30A3FBE2FF738E110E986DAC614AF6F92A189025C5379EBBBFA17E5C4DEC6BE779A16CBC0896143AB9867F38BA1901C91F6431DC76A84E6E75121A58CF1B64A0022AA01482C5AE6B822BF8497B1B6D38B4845AD58B1A22FF32A1B9D8AE727D773FDFAF5CCB3D608D66B8FD68128A2DFD8DF0C5E2F3570E0405900B244B9A13DAA071F7CF0CC33CFF4CA62CEA6ACB95B1D5D8CFCCA917690B783381393D75801F3541395C4A5462043FF84F2D0A331EC76DC71C77DF7DDF7C9279F7494CEF103DD0D2D3868D0A00F3EF800AF915C03A971276B4A94BAA9DAC72D7DAC73BF7128C8A138AA64C25A2C2DB72FD30FFAA47E8371E9423BB029F46CD644711E77D861076D78B354DABAFD2E5FEE2FAE276A4EFEF0873FC40C0E51AE9403CEB2CFB4BE73E6CC4138D01BAA2E04AD2DA54FE8D3D80B31A340B6D2FAC6FCE3FAEF6DB7DD262B12B9C9DEDA6EBBEDBEFAEA2B9C06FD0630B7568BFE276832ADDC0F41B17A31F4DF5D76D9E5BCF3CE93C7607C263E74C4345181AAD142A544B9145B1F5B521FAECF01EB9EC3860D5BB4681187D380F294B9C7102BE673C7B6A5922A156AFEA28B2EBAE38E3BF4457C029B6925025840DA9A167D009444D7F1E893175C70C17DF7DDE7FA199BFF4EA8A7C27187EE4E6BD1B53FAE6DD268F1D4E4E0E93A87F1C136C0FAAB21BB87C344FF12E74CED5C95881E4CF59828622ADCCABEEA406240500567126FCBCA7FFCD2C074376D5446689F1200045EA32BE31DCCE0652598621C8CE3B370E14259B49C919EDC4F4D0B01341AD150B30F6B1430093CAC2BC6C0BE92163CE080035E7EF96572A586CDB35D35008DE7AEBBEED27B9D7CF2C99F161769750D4FEEFEFDF7DF8F643736AD0482AB5A17E249B8C27403236FAA71EAE6241A7091E109700987F3FAE4BC9CA9415922B61CC4D32B133680D623D675A4D05C8FC68204276CA0B84F1FB6053975FD0C039AC13B1B72CFAB94BB11E88692B3AB56AD72C919C6A2C6A9E5D36E41D639CF3A77EEDC3163C638F8648AC76668C340AD9AA967B1F338328CD30142427A7115621D941FAA3B00FA654E407B4820ECBEFBEEEFBEFB6E8941281A07FAA43E4F66A799DB3ED2D9BDE40FB00AE04B4882B0332D8B8C1B8029C8ED0D584A27C8D33FAC800D6A019001BC00278175717F201D37F8D72828A272C71D63B5972888C0093CFBECB39F7AEAA954643780D0A6CC518A89696898D3DB8E8135326B5823F334103DE58BC084F5AF79C237A1F0883BE100C5C6821AB1DEF090430E912727CDE42C941BAA839570EF17AF312BD72A3A1B6AA65812D8096ACA121C5BC7CFD35ABAA0B0140D73C1A84CC8534F3DF5E9A79FD656C6AE97CA97CF8DA4D30D478C18F1E8A38FCAE494A35F458CD0C8E56E9EE8E1C3872F5EBC18230B418C0FDA93FB1DB9B08FDF6B4E88036307D14F148999729910397C962465FBBD46C0B1E73005F415B88DF80DB1658AE7DC2AA4B75B7F5C824E74784531D4A352B1F1C96C1199AC2F236986DE262EE4277AA6A5919C2293875D0C521D9B66E2C4890B162C20305B554E03407ACA942993264DC2380013B1B972C0C61C68F6D0A0F4F532BCD3C1D2485B21313778F0E0E5CB975B0B46D8A05E7FD75D77FDFAEBAFB142C85FEA8B4855B28655F35F1582A6644E17AE9B61F3C4BAB5E1B507F45F0AF90872E05A6148B137A427A48CCDA540BA9A1A5979E79A6164A8C4961C02ED963BEFBC53B66FD5BC39CD14D3999A49DD56D3E8E8ABB61F0E5664498B2409A4D8E38AEBF793274F5EBA7429616D2B361003A95B089A1F1C7234585DC710468EC852900A1BDA5CC72527D8AE24D117D617133FD21E943A4FB8BC9004965F87283AFC9DAEC9D6235CE98E9266784657718E5A99BCBA5411647E122E0497A9B9E102229F228DE26A0BB78EF56CD04ECA9DADF549C9138DF0B3CF3E837683605E2985ECD8A704A0DE62C08001F2AF9AB9890253618AA42860E389ABBAAAE48CAD10A75DB54B350C895CAD0BA62AE1344E2E551BFAAB5E90591D3A74A876940F7BE95D745D79E595B7DC728BB55B4C25905F70E20630602353B534326F97EB72999C73CF3D572E19199F4A054CD448D784091324E6F424B980D267B7DF7E3B6EB806A455C4148A859EEC423FCF4E0F0918F3B33B2F9DB2475BEFC1E803DB6CB38D16FE2F7FF90B77E8C9ED441A9948851084167EEBADB77EF5D557D973DA04645E893B11BEE684B015DC2FB3EAB92C8CDE54CF72F72772788692EA8684FB9853CD95963F72ACC42A498B54A3E328900566AC9FA9B8E83A1E8DD6940E7AA26E2BD57EFAE9A73FFCF0C39E494D0B47A82B24B8191A9E58DE41A65D937345C9C948D483B4197EF39BDFC84382D1A26AFFE8D86BC9A468D985FBECB38F5C07CB4D3E6099855D657099237BF5217110069A8AD8652B6D8E0B298CAF5F4A9FA35C4D6B0A26A851B0B4EA932C3D2371634476A0062C3D77EBADB71AB280D1D61758766B0CC1AE202CED409D3B90A8B1C88D0490B51DE45CE43880E1B4025B16D85AC6CC998AA7D866AEB3C8355881946D0576174163BB0EDAD83A6BF813BAEDBFFDDBBF3DF2C823CC2AB961976F72E12D8D1E3D5AC779EDDAB51B724B4AEF3119131A898C8C2AC385F3821472C11E8E1A963A1C7FD81C764F5BED2D7D4A97264793C9309C94614FB261A831D5C144F1F7B6370665EB6A485A23CD06707AA2B2DE1500DFF817BD8BACD76FA40B3FFDF4D3E8EB7361281078200867E20440F8A5DD852AF29B6A4E08EA38B1E8BE1A2E882AE5FE5DB9640A30A2629424A4509ADF939BFB6ED2D1EAEF459043534DB930AE0514AA76FC08B440C372DD75D74992132EE28BA478E938A7AF68C37CFBEDB7BDF972E3793689462E934B738203EDE0444C88D820C024E2743B11998AF00F79A88D919B9A038F58349988E671F6ECD973E6CCE1F1A02A4C454940D2345DD2DC684A7B9CF0E030179C345C61D6A3BEACC5C420AEDC42349815DDE57AC04A8926B9D6DE3B0FB16E5820A6438DE7A7EFCA219B316386DB23A6C24E24DAAC77D48420DDB0FA6D503BC6CB23982553936304A4DC71D6AC2EC4DF6A0E3F1D1AF0A7B10CF45F28815211388562C68CD929673137B4F7C7A53F57C489C8D1915D565FD8EEC3C916AF0959B732DF19261A2961D7B631E1B108B595BB15994CCAD0DCAEF7C76A31A79541F59BE554A7C0A08BF34721324714943BF28B98879D5136E499679EF9C61B6F80FB30E5ECA1871EBA72E54AB0EE3A11C4124C9DC8B46829AB38B76BCA9062CD2EE044D72F60AABB043966CB0C9FB4B2C4A5035DA87D857DA97FA9698667DBA8FBFA28344B697421A02A07AB3C5D865B936FC6EDE64F8485620ED8D88E940BB8BD796AD0B391FD317534E1313799E684765244173C1568414F6F6FEE65D21B5AC7EB63F4E942ED91D8327948A4E940831A22604DE0242B9619FD9ACCC8FBDA6BAF1D76D861165CB2E1647B71643AA14C5CF1A14C2319372A1798376C05ACB148B50458C7213A2A9A6221752A9C99984173450C66594FD1D7044046A4148D8B15A92BFFF1A3CAEA48144BBF6A605A4A496C99A7CE976162821439F8E083972F5F6ED25FF6B99700BE52B28D00179816DBF764211B99D7D681F74851D5C8F5C48EE41B0E82D42244FABDE2F37D2D1C537B329F234177C2CD35652950AABA95A6F9376C772314D8E2FD7D2E614C1B62B27D6EBCF1C6CDC84064C628C25F575F7DF52DB7DC12C1235806E6DDE5D5860E1DFAE4934FBAD6DE5D96FD9BB87E5D1B9557190AEE52C2BF9C5E872B2D686C21A5D062DDB1172A40687579D14517C9BC3025A44F57646FC622E637247DC1F74F2C2EC374810B5C73CD35F3E6CD839DD548311D129D192C18F22588EC885FA83A755857A07FAD9F526ED4111527B7C27B4BD93BD7319343FF97BFFCE5C30F3FD4DC7AFC2947961C7BB47B9142E48089A2BB8B54D433CF3C630EE194CB456A283CF14DB5B8DA3F9A01E619158E0783ABC45E228A8525E77AAD98EAEB74DAB4E1E55C4A8E984CC3F5BB26796EE4A6BF35E9765245B6A45D7A5B7F8E08447304AC0C2CF2285639E288235E7EF965EA824A33D3C8DD005BA1F7577DF953D5A5B99565998A40ABDEC276A1A31A7661EDC3B532CB84491BFC5CF3D9D96AD1DC1285A6F2CA090BA7AED05296AE244A528E08BA751D921DE810B918A346222FBA96E0F2CB2F9702B6056F46681F161F04AE527F7BCD863686036C311CE5D699E8121B0AEC551C380A17C1C0B28B30B322139653C8F570819ACD9302F99A47DE0C14D329735960E290E340B600C2870391F5A27C884A04820AD4916BB1586B387FF4579422D61E7618445A3449339587F92F6D76B859723353EDFAC54D25A95F52989A72800D66A4BF3364A676E63904592ACA6CB6DB6E3B8821379702767B5AA34BF4F2DA7084715A05190D7130023EFD2558D0B93AF9E493EFBDF75E16CF8CE735A1B3FEEE9246E821BFF7DE7BBFF7DE7BFC49DB17642CF32E6751E7934FDA4701560A25906F18A1CBCDA28D923E06540D83B1A6FC030D3470E0C075EBD6390EC63D717A743702C218BF1AC9AEBBEEFAF1C71F7BF3F108EF01D46A8CAE10029527B77AF56ACD2467988995672C592F850DF93EB51366A9E58634094939024398F4FF29AE142899C84C13184CD50257624ECFB5B6A6CB5E0ABE913F69FBC61E243B2D15B400FA8DE4B2310A464F94F67923301999691CC98B7C6CE506677C57ABACFFD6B435D4EF355DF7DD771FF0783252C046AC14598B187EA4B908A9D312F03526C3FA8AEE082C900D9498506F647209009F9D557CBEB458325324B2B54CAD4CC1AFABAA4EBD955909FD1413F220A92D5877DB6D373AF8EA0314D653A1D113BAF1C4129AFA107DCD8501D1CA4C14ADD070535275DCB8713367CEF4D8B05009E639E3EB7973D1ADED30CDB3EEFFD1471F69C702417090BCB7BD454D89942A85F4B32446AB20BE45F3198EA747833EE3261C49E32BE3EAC75C4634B0BCEEFA13328A4C133B8A3A226E5E32E04C628C2581EE29B5C9E17210252AE00844EAD76239141A131906D9A5F696BDDE4B9164C6C15A62A5A4B4E97FA59FE557DC7DF7DD6C803BEEB8E3B2CB2E239978DE79E7CD9F3F9FD41245CC5A7D2D07EDD76EBDF5D63163C6B86AC3A87B3BDF31C318FFEA35A22EDF701084C3F721C958D09D42970F08CA31C3B5F0526672DD005BF5F70074BDBC63346E09326D2C6F4D3C7AC7EEB0C2FABB90BA1B5B2D5AB8117DF70F5E2EE341A15A1FB3D8980E863B19FF092DAA7D0277A730EDAACF556FE85FCB13A3E5D5791115E7E8126F81AE84BF42D93D7CF8F0071E78001F4B2EF5C1071F0CEFA38D417D72CE9C39D75E7BADBE2817560E2BA17E82E73C9DC268760BE63C43D500F427ED10CC465E3C9A7798F02C072D2EA481E06C9114D3CCFCF9CF7FFEE69B6F0CF727B257D3F6D10D7D8D2625BBC612CBEE41B5505BE9B837964A27054F09E2843BEE67C563AF3B9F70C209CB962DD3DD8C5231F520F1370DBB7EBDF0AE6CFDA4C0ADC8DDE213A9427EECB1C774677697BE4B9CD00BE733B52174DA71C0D09B8D0ED3BCB566E690430E81F5A5669C940E237D0052D4E4DA5BEDED11391DF6B653E87FC75EF5D419034C36DD8EBB651CABD65F943BE540005E346F9A3D077E6354900FB3391D38F1C62871ACA6EC6B3A7B1D9D78B3C1E3AED8718F2146161D2389614486CE1270C4EC2E31F8E19E69E654F21CC65A6AB374E90EC71C73CC902143468D1A15DD6B6B383768E180332AC3C5D969B0A822EBDCF3CA87C8A9E87F5C013743EF87AEA5C3CE5BA560C74867E1EA807EE5E930F65806A6C01F49D00B97CC3C0D903444CE090ED186DCE2C298A11875B7E08D0644CA705A4499964F5F3CE79C7364F58E1E3D9AB445C32F96DA8D0BCE33A926BDCC26737EFDBD78D081071EF8C1071F8C1F3F5E82383EDD50A95626C4E9AFE78A2C76E11DB356036EEAEFE5ACB34397C451A9F792BD22A7810EE72E3028ED33BCD278C6482ED2B985DA5CE7170965D7A3C4D1439CE446A6C66533F145397C3A5A449BF51BED4838D90DFAF006E2BDB02B233135DEB91D1A4E604C1C30986829E38893BDE38DF4B1A54B975E70C10550F2EA719A22C422AC52C06565216EB21289B012086D027744F928A8252874C41147BCF2CA2B29672211E28401D85D507872869D4BB6B7E4C8330FB53434228926F6807A305362FAA6CAE0BBE5965BAEBCF24A0C1102686EBAE57C951BDC7298B7DD76DB534F3D95C072AB5BDDA75D8494898A8C54279C8B04C1BC400B6EBFFDF65F7EF9654DFA7CF6ECD9D3A74FA70524A4690041AB9A73E0A9F4E6DEB1E64DB424C2B123B1CAC7A096D3075C50D4CAF4738DC032FBE34076CC86CC625930F278F0743D69A66AA711B5C43774FF2974B72444E7F810E7B1AFA34705AFE362A792C7D6C817C6A5591BE937CA66307B06AA6BE0C081EBD7AF671EAC0841CE13236DE56E07517A971E41E0C77B20C6115D7E6D6C542B949C59929428EABCB1CD1F9CDA4D46176ED503D9AA2E8C068E4054C0769F1AB9D88CFBB3850C80C09D60FC401F989398B0074C80FD81191AD985BD7C1C1FBAF2FCF297BF5CBD7A358E0AF68A6E22EFF9B6DB6E830311F8ED86DC079AD0022BCE878D1CD4A1D63D41F8CB0BFA7BD8CA9B9277D3E84179B8BE16729FCD9543753D00BD8CF024F43336FEFF555CD43C0083D2D5DF85242B80648933BB59C61F4D30FC57D2D524D8791CC78624377E8074DEA79F7ECA99410B72BCE3E4EB0E5AD1356BD6902B2D51D3D5F44568E50A2572514649C424905B1261DA470F9B0C90142189438A10623357EE03B510C585F66BB133F4BE92A186071BEDA9FF46578C4646D4C6D086C5A4F929A7762C4AAA88353845607A29A870569E6BF2E4C90F3EF8A03E60DC1F76009393023CA724297A3B5A9437027938E01447110969F0318C3C388F582C7CDC9AC5C2D322949D0A3B5A5F31E4C75307B11A6DC15C5091727A0F694530C9038E4E67E41C4ED9C8A0EAC9935995DAD09AEA26144AD1B8BEFEF38DC0EC6F1272A75D9AB981154910F374C63B90B783CE17C3CED56B3F22FCE636DB78309898B178C69FA4040E394EA3275BC9297B78D1AFC5CE602661FA8CC11B87124BE979A8C12211AF9D7E760EE946FDF7B4D34E5BB66C997C0669E89453E31804FA4CA9821F31DEC89CCFC46053E1B739DE83B0A5EC2D856E01ACA65E9FDF98C2429FBCF1C61BAFBAEA2AAC7F705898AAD4DAC68C98E56AD758F10FBF50C09C41F425212E87A63CEDCCEA942953A64E9D4A6C66E6CC993366CCD02FB569414123198CCCD0F8255A39B0082B27C8EC29D94CC7C1C076813726B537A7775698B7062161EC9B4185E87E3D5AF7976C97B7C994C2A754D6464C9F8D292C1A0E09E4B15507EF475CADA235B416D2DDC1C079C97D193A74E8BC79F368E7649FACBF37B7CA71172DCD6355D9CC8F187C0AFD914C1C0AA68E1891513F5E2DAA5010CD2903B81C4172E196C6490B6BDE3DC28BAA04BA239F29BB7A1634BA060C18208F10F8347B08AB4DA25F2602EE886F15D9CC3512F8379C49B5BBCCC68A915B8C620E3C7866FA1070E031A8FD2E91B6D3A0B3462640881BB266FE23DE84A891ABF2298D4DB9CC91029E1432110E12183CEF683648607461B3BDF5965E53CB9A8A0A7D9E0BD5833EA91764BDF4C53973E68C1B37AE06D86FC992B21F861A762B56DBEC253DC1055D06C5DF680E730BA78E9A37DB1FFA3DA58AAC2F81A5DED0F7BEEB3C13978BB4B735EB6204BE89C36CFBD2328F5736EC60ECD8B1AFBDF6DAFBEFBF4FA90659589E85EE4C2147D05BDB97BAEBA5D581B31D63D4806AB6AB7E2F0DF7F9E79F0352D368E5F14F9830018E052771E2364311E2A39B0C39E6627180D8D5F8C429F335A28F097BDAAE8D61765687F0F82F7EF18B8F3EFAC8E81E1CA1D871CB6DD10DCD71FCB62F732363BBB772113F07A12F379A34A96DCADD732132D2DA3533A1660ABC2571569D87620796FC7E9FD0FEEA605E0105CCE460B495B00EAEC222E4C072B0644067526E3C85648600CE3C86A6FA32CACCD5288DDC4AC1104873B9A422F680DDCC08F12234394644B3E8840D8C3BE1DC914ED62035CFBAE146160E63C92C621801E4566695324479737990B880BCB6E58B1EAA177606C8514D92C4FDBDBF268EBE69A6B4BDE69A6B6EB8E186CD32FE947BAD10E5300D8A3CF5FBEFBF5FB34FB911A8C26DB6D9E6CB2FBFA4D6DE6CAE34984CB9E20B115362C3661E5CAC529F7BA3BA5C1F23829D729798E8647366B01B9C1F4AA13284A208FD46968A9C5D6D143C151602251ACBF0636D8CFE8A0EE6BD0CBA762DAC619344721046DAC40E59DBE643A9E8BF35A907DD5036EF238F3CB266CD1A591560D1F59B943590391A9DAA8F9C418E9581952BD12FFCEC673FD3D4A1991CBCD507E4135C7FFDF558C13A7BFA01125A9D73C24ADAAB175C70C1FCF9F3F5527FFDEB5F6B1430F969030C010A1075D0EB6BF269FCDC083C9DA9B0C1F545C20FEE17C4117657357EE310254FECC98D6FE3CF4C11067BD77102CF86C60E986E23934B77FD3CD120233952D16F431A2EE528949BF83230BD32195967E8599798DDD86DB7DD3EF9E413E705FA7548CF3DF7DCC58B17A7C00D6738B4A734321345CC660AC08B08FC890A18BA2117437A09F09FF80CD3850124774D0A1EEBD3CD1377DD7557E9DA18AB8B1D789C89C0DE6586D179365E4B362BC11E34B70119FAE5B469D3A64F9F6EEB8DB3194BE952EEB8CCEEA27ACD3EA27EA9D5D443753A56AD5A054F62B4C97C84FD9B1F118566A27A72F752DBA9D1B78E6A586B8A44E25983070F7EE79D77F46A7BEEB9E71FFFF847570A415C610517F1F98DA260156A71271D9C1D4FB9D5A9DE54C75F863565FDD495C0E88E2D8BE2D7CFFFF22FFF220F4A5FA113017111F93C72D0CF3FFF7C9C6F7660C3FD8562B6A9139605B1C3E64A00A7DCEC41A33FEDB4D31E7EF861577FA60C8530A136067B7F153FE673A360F88C14F09BCB838FB12673E621D1E0CD36EC8D731E5569CC72F586EE5458FD36C1A2CFE1A2F8AA7980699928D6C5175FBC68D122383D5226EED148C02AB73211012E97C35616A90C9586714C17406EC2710C1BCBC33034A48345955362256E64FD3066CC98DB6EBB0D8A5A3761345B6CE77BD5181CB61E802622583996047CE8150F612FF300B0A2BECC9AE530F5660AFE8D3BC0B8290D7139F7B3C36976BFB69A8845A459C0CBD4DD4CD7A7C93FE8A0835E7EF96562A14E3CBBAE9DD7EC6C5D5C72389CB9441C536A427C12054CCA1317B96A9E4F38E184E5CB97A7505D5AA3085B455B724D3E43D58B1C78E08112D6104F1A7B95DAFB1C50B1635B10EB5CFFC5A43BF9E4937FF7BBDF21C8FA7B7ED9B4DA093A14B28ABCFADE3C6EC70B966ADF7DF75DBD7A752430313820D6BC725A9910706A2944807DA253C0423BAD48080A3D17474265393584A050E194F8EAABAF78B406039662437B8F3FCF6464F090504A0580833DE65CB2F680AB781D6BFD2EB7239388A055A837BFC159716BEDB4D34E3289FCF4A82CE3277F8402B605C9B09D46B5BA6DE5EA67434D899333819A61ED2E6417FE8F2B74A538F5496F78CB9F520B87941D62B822B407E0BB75D4C4F5E8BBECB20B181AE7FE51071247FFFAAFFFFAD9679FB9C29319464C114836BEB85163A1C7DEDA29DB74C8A651A346E96562D8C113EDD423384F1B5624B19A99D02BF6F8C482D0B36ABA12B1AB22E4C18C1C550BC980BD5A3E21AE4291D2D24CAD5BB7CEA97BC76430086288A6D3104193119607A4562F20E49CC9FE8D2165969CAD7FEAA9A7AE58B18214784DB9975303DC84C4032220C23D52C0EE6AE6CF3AEBAC3BEEB883B5A3C2A1BF07435371F9E597EB2664F57A732320E729C171686E6150EA2BB888496D32E0881E4CEDB0494C4E7317C43F218BFD5F78E062ECC83CA02CB48F9329F2317B7F443AAA4640A42C37C1137198DD6F91035CB242229DD68F80E2477215A33C62683A22B0B8DC83DD345B6C4E8F041DE0BC7264548D7169930FA71C9C678663F00D894F80D4E3ECEDC6B9DF399F9150B627B76FB3A1E0F06604B92052AD1489EF59383472EB43EC57D3BDA5E214139BAD5A8212B623D277F07B1F5ECAEA4A38385715DACD4A01029D728B6B5E563F938D325B729C5E175F71A652E187EDB3CF3E6BD7AED57AB1011852C461B9B02215E22515FDF8DE78E30DB87AAC892356CB2B08C8CE218A584681CF075F8A67C08E04F3C92BEBB66C0C6203FAAFEF99DAB9E4BACA2BAB1B398B4B972E95C30043BE4602F291B0815BD8B542CF0272BD84C781B25280873FA38F4199D7898F4B598B951064E416CF39E79C254B96A0C8C1C67234F49A575C71C5A4499348F9B151BD61B83963604FE2ACA3C8CDE7D368D4E6D8982FBD127451DC4BD789279EF8E4934FC60017467A4C4BC07B8722D464B9D891E680443F6086A23D38E4098DEABA492BD1524AA0EBE7A387AA47EBB82217ACF3F4446798203D2125638B01F9856BD2198A8F2088DEDC73A906B5ABE78E1831E2BEFBEE031282DA267865E405297DADABFE5B1512C48070E6D85B3F0A8E4E601DC61A6CC63F8448A14A50CA5EF9FCF3CFADE4DCD3AD591024514B968A089E36EE6EBBEDF6C1071F68CB6AFEFFF6B7BF31690658F56496548B422CD694950DF3895048013203BB4D2AAC7B5C0A77D36A15CC359A497D7DCE9C39B28BB1D228CFEDD7FBD65CE82797D998EF17238C141171118832785F5BF4FEA15F0F2D95803393B1C6D432C5E598C41E5145087A54A9264D9E1034ECFA8D7CBEF5EBD76B8AB07D238A1E9A717D121DC95B635BC30BADBDAA5169DFEA63FA939BB4C34DC80AD6B8D72933F6A5AC3C38114C9AC30CC67FB1BBB425468E1C295BD0E101AB5EDB0D508593CE24158D85D1CA1DC16BE41ED2139D8449ED4815A15D84C0A04183DE7FFFFDBE70A58E9E31BE67CA208312E0231AF7682FAC3A3D94B07FCA4956F48D5E87EC4F0A49569F74FE75F09F738A81C5236270311551659253E833433E093C50076CE49DED30E61977903C94F7DB7745CB739AEED1F50E4147C29BFD063231DAC425D0160BEAF2D1587A1BCBB422570699A6934E3AE989279EB0E434E0D4F10383243AAD558BD3283C394D76F799F694E90B81C8D0969183863FA0FFEA97C6BB917F6402B13C2CED79629D0293E8D4E2913A45EE10C3A1822D4E0AC2E8BBDCC55A6BA00DA4C7E303395FE55966D0471F7DF4ABAFBE4A6E3C15E120047AD7839142576433875581B3B05380589343B2E1A97DA9114ACA60138D1E3DFAF6DB6F1F3A74E8B265CBD08E44444DF5D7158C666194324DA6FE0AA8B56AFC7BEEB9A714520A96B5E59DD912D86D3539397287E604D730B6DB6EBBCF3EFB2CAADBB8BDD0D64831684E916BFD2534B040C49A613F697DC911E2BC32451076EA1DE560E90839E0118B29B96C3B9BACAAE49738B6B3E5965BD209BC555082C7E4A8D60BFE4EA7307A72AF2108891CCFE8D7FBD6CC033F5840C82979F7DD7739059C0B98D223B8D708AF466018F811CFC59476AED1429CFBA7DC072D5A90320B201BB1C76026D4BEDC8B9A5D078BF5F4E9D367CD9A75D861873DFFFCF31C522246BCA04E318AEDAEBBEE1A33668CA3442CB1DB873B6D89E5571FB2F6C6D6BC118625CA8ADD16A5E4D65B6FADBD576AEF1D11129C773692BB19A6400A88DC8F07B06A4896F2ADD0EE25B22618BBDE0A554629D84031999D42C52D0ACC6CA02E2580F6C115BAFA301081088368E68E8DF1FC7A367CE423F922E7483727BCE1BE5B0E232D5FBE5C0E15312A8A59CDD3A7A75855D3BB5A77EE2C9E26106239A92F6AD86ED4DD79F4A88CEA1C7F0AB5EC86493A56CF808D7BB515E2A9C00236D6AF14FBC1758E91BF92024EED69EC18D54FD91735D8D6164F2C58F7DD1CF732E215308D5FFFB4D34E7BEEB9E790CC9BA82B6DE48A496A01E3567022044395836D738F65260763804F6A4FA411BB83EA925357351E9DBDFFFCCFFFA473B8967CBFFDF65BB97225567CD7CF130FE134C2008594970FA79F53AE55D56FB6DD765B2930E9FE534F3DF5D9679F9500E548538B4C01436739164FE1843BD8587FAABD75307CEC45B9D1186ACC6DCEAA6E4518DC7541064D786FC53DE4920FB78C4438F637244BB2930DA76907760F7DAEB61198EAD44E6AE12F6E686FCB11372B1AC5E78D3A1F53C4C5479F75D659340BD3BB68B134037A77ADA67E38F8E083DF7AEBAD5641EECD8AB3DF5C56216F584664BFDEB7E6A21D21B97C2C1B448C66E6924B2E79F8E1875DA1611562486A4C98F5EBA156C04064D92106C7953CE01498875371E0D9B748284B7CD00903060C183162C4DCB97351632EFD72F76B2F819E7EF1C517DF7BEFBDF415D531041A09989F6D96B2A0E45F6D4E57F7767DAF66687DAD4720431800D15A59A8980BFA4166C1030F3CF0CFFFFCCF1AEA85175EF8E8A38F6A24BA33A61EC0754F8849EC31565802C2723572A691CBA8B4B5BEFEFA6B8EBC3FEC525A3019DFE5E6A72903DF527B10A2E4DBF9605A43733A22F986AEBDF6DA6BCD9A3511ED2C65AF698C6D2A3A87ED118244718D2F9699434DB82EB8B3E0B958BB66D14B8D874A361218E79E4B962C39FBECB3213077D4DA915EAD1A21134030A58ABE562ED9A29609BFA82FD37DA7F6405D0A5DD4B49AFAD9C68711D77AB48EBF6E3279F2E4B163C73672A998FB17310CA72C2133C01A7039400C3EC7E081C3D1FE253284603E9052EB5176A65105B1B5B9E7D9713BA31DF9FA01071CF0F6DB6F6FDC1255079E129414E8DFD88E0E676152959270C6C7B34EE66169660E046EA2F161ADA01B8E3DF6D8679E79A6542A5E1A0FA863D8C5E80A505317CB79F82E774B66F37991B4A1A5B4908364EC0113699311498BA4165D0949B8A1CD1F493169A01A058C094966C53975D6460F1D356AD4ECD9B38DE6489B2AF3D07D1037FACA21871CA2E32ABBA1F39C3B6BD5CA94A7DECDFD55C08DD096DCC14FDDF9DFFFFDDF5F7EF9650962EB6003384165E33601A734B548CAF948BF298223053DEDFD468B153258BAB95E19C4A32514734B768A35251FC30FE0DA36A307CCDC6A07D29264E8D0A12FBDF412BC98443E2195D5F02813C21044ECC2B4AA4FD6D47377BD62083A82DA6A84F2A44993162F5E2C2F4D9B56B341DCC2F85E9629B660235C8F564805C8137B8B901A02179D8D7094DBF4EAABAF4ACAB064F83D309AB1C724288F3AEAA8279E7822D27575BE975D76AC529C78073C63FB237BD82983A7FC576D36F8CEBCED356CCA55491CA6A286C49FAF57C07AD0C08103F5229A96E8495B9EC2874C496E0A9E93CB49DC229A976AE4FA3A8C6C3B55A6B56121E0223EFEF8E3E55DE833EEDB5DC24896F45C3C4729AB0D22E73C4E77C0A960F549299AE6890A60B4692B34CCA0B291BC69CA6832C080D8CDC4C38948E19F986DD1212E5C266B298844D0179EB168AFF405DAF938E1CD4C214E5F04380008CD82E7D5B790A8A0319A99C72A86D6489C7B8D3ACDA3CE8D61F039A7D85F7422A915D8C5B1F338E0049668306AE417A41F25C87A25051D6CA863C68CB9F9E69BCD29E1F8832B85A87C4DD988D0332885A4EC040111F9C423E582211B5438D47806BC8C0BF3DD96A73E878D7D802C4EC161C544D04694E076DE9AA022B633585609176DAFAE949C6E754CC9E0A04183D6AD5BA779A8023791CB2C159BFAC33C1AA389085555081AC4BCD6C2E111122DD1AC8B1B0B191D3BC6C3B8D65F6EED5601E6D29DE137C612C4ECE5AC4E983061C68C19FAD811471C218564087723D30E1B611113D59E014BC688CD76BB08D3FAB8BE08961282FF88007AAAD35115EA09B6532754F81FB9C8F79BCD03FC85493034BD90E9E36CF5163DDE53C6162119F14DABBA4ED52F01EB88738678B5FC8A3B044006157D9C14E3755D64ECFA314B13EC3F6EEBF2E8D34F3FFDF7BFFFBD7E202604E304451DFA166820C8BD4BB93772132EA7AEF1804B81C1184471077BFDA0A9C37975308030234A8513CA8B13B262C3A4D0C991765E1CDEAAF3C58BEBB6DA54FFF11FFF1133FDF163A5EC9BF13BADCC0DE99653385E3DB9AF0CD9655EB0157AB0F615AD85C910197D8D81FBE69B6FD2D13C6AB2D215B5AF858C63C88CD6B0C1F9F3E75F7CF1C58D5C696DB7A49171DA11A0CE2677233B7AEB12BDD3CC378B26EBB2FE098E9622B129A71A49289883C19DC46CB2C4EC6F648563AE5897123ED779658E64649561924DD16C9FC1164F9C7CB65F33B4C98A530A7015820A63729BB95B97E7A7991966BC3A522EB24E2255A7FF8A31A4DBD6A1A05B19E2AB7F91B931776B90A7230F4ECB9B1BB927F7D9A05E0ABB0934363B0C80003A0FAFBA464AC65C91BD9F9AA82F8CA629543858F11397E78DA64F9F7EDB6DB76954126AEBD7AFD7B734121AC96984DA613A123D154D295A01A64BBDBF357DE7E5F83CB4064C572353AA92A421ABAD01C8E899366D5AD7FBD813758937118846A88E88A7D102C570D056A0CBFFE11796D665975D366BD62CAF172263D8B0610F3CF08049F288B4687B498FD2FD1B25844C71C62865EFA715A08FF26376DF7D77598B7A3532ACD8DA7A0494C5BA9531265CC8E8666EAEA9BB413A0F08420396B869169D2DFAF5BEF597CDDE94B1C48D4085E38610CDD0D18537D51C7216AA1440FDFE27BB2C2FF3E38F3FC6B42D01EEBCFA5A8EE1C387DF7FFFFD5A3857C1599F69B3E903871F7EF892254B881638F4E793F55DE857880AD4CCEB4D638F20401BD879FC92A5040F6122827AEBA7D58EA68C959A003270899CF2970E9012753E92D21AB25A3A35D75F7FBD067CF5D557CF9E3D1B42BD6FBEF9863DA9DDB5E79E7BAE5EBDBAE485C4CB9186284C639F4163CB4B760F21B7780C1D734243B8B6D0B298D966057FFEF39FEB119200B088837403C41A0390584535D5222907934818F5E57667BA894CE43973E6B8E48F59B5788C6E151A055F05463C0D7BC182059A5EC004BA090DA775CF3BEFBC138B070D675ACA46EEB5858E3CEAA8A364087EFAE9A78CCDE448680DFB4B8C996DEC182117C396BEA72F3B86057A5ABFD4D4E15460C1B3F18CC3C24B3465214F2C29E01286867F9B057D18A1665EDC85DD6E951109152C16B8F4D6EFBCF3CE55575D3575EA54EC272FBDD95A2A2DD346A6B2E3A38423F4AA928C94BD3A45943ABC7272C0B0BA6C0884E06455CDEE9642A331CC93AAD01C8A1FEF0791613C7DD7CFCBC47BE2892700DFF3447AE51A869772479DE88E37721752204EA593D917DA32328320B719CF267922233AD4A92F576B90AB009B5EC37DDDCA1C966C7437E98C0CB725F8A55E591F368E86D45AEAE7C573192D30B156811B4F855620BB1CBD9614BC5B6F59BD97B4A32C1882D51676268DD37DB6DF7EFBCF3EFBCC5EDAF4E2C25CC39EEBCB54D571B6F1339804098579F3E6F15733D96E2E0FD8928245375C40FF95B297D03756DFE058E77DE372F7773CA86D5670A79D76D21C9AA0B4F476D66724837410162E5C687DA3AF83221C356AD4830F3E88EF185B48D1C284D3CDF8790AB6327B58EBA817213BC3D81A459131C7DC5177DE9448584D799EBD1F7BC3AD769AFB030F3C70CD9A350487622F3F936FDB2A251B1D2BFDB84C414A77DB9A72C1566E554B0C2315607B0A1608EA323044B93107A9BD591E2A243A918EB846A61D76113929CA66C8D4387C9A7269006164C007C8F766E8A216C7EFE672FBEEBB2FCDC750632E148CAD21B186D197AE8372821668313A4F2ACDB06777204D05A5B98E1B4D9D1DEC34B8CC511FCD98639629B094B07051013B266A33C2A686ADD8C30E3B6CE5CA95AC29F6251F70D4C1B162BEEEDC3FBFE13346C979BD3C9F56C0040990F0B19D5AC97A8B5DABFDDFD8FE08A27BA2F78D4C7C0644A3D15F4160C5CCBB794523CD4DA3BD011306C8C489132549A17F72C939E7199BC54625FDB167CC9871E59557D2CAE6FF6BEDDC42AD2ADF35FE8DE9BADEB7FF4032D3CC12D3A2881204A573D909CA2EA428CBECE0A9D42CB5B3655A794ACB434907324AA3A40483AC4CA2ACE8402A694A7482A88B7DB1F7CD66B7D6DC0FE3F7FF1EDE35E61CA3BDCC7121CBB5C61CF31BDFE13D3EEFF3DA1E8C502F0265030DA5D65D45E8F6EA6280A8D53AE78140287842DED4CD009CBB020AC186B3F870BB18769B830A0E953015583CE08AFB727BF0E6BA67D68548D75FB9F53A7B28E5CE36246B0D59342F66AB3FBB6CA5CE95BA20D2E114F634C7B15D2D677A0A130FB183515DAD925B47325137540A858F82FEAC797D8DCB43B5B3D9ECE7C59EF6BDB9F349E78599685FE16F39C66D034507319E589EE35A67C706ECD03B265FF7FC1830F4CFCB972FD789EBCB6C532EE5327C4CDB4002B1B3EB4B8575E1D81A2E5DAF98C9D6A69A3265CAABAFBEEAA2BE9858F590082973163008A2FD87F7D6CEACC875E3A974AE74E2A652B49AFA039853095F88F89D54EE76325928787E392834A792BF280382F083FB9A788F71BEB81969C054A06B4D89E3D9B00233D3A79F166B6FF4047D565E87350DFC0D44B39C4C65B7C74C7C91292DEDA0DB9A44F546F898E991F1709C9F8AEBD5CED4EE38A08CB0151A0EC6EE70B14019AF9101204050C3E015B0B1643202270273A727C03ECBE41C77DC71F2D479B57FFDEB5FE3C78FDFBB772FA6400C6358AD7AD5989CC8E6E6E6EE84BBB46A7FFEF9A7BDF6D4BFF958EAEF0D1B32E59DCC220E58013BEECA14B403469F8D88116AA483CB66E48CBFFBEEBBC65978F798E58A70931658B35941EAC771BBD1446F635BB4815E684790CF362F52A360D550B500EE70E07A3BE3AB8BD08583BD357CF870B917CC9816D58D6822C9003B8C79338B16F2A841016BCF69E12B942EDE01D4A4EA8D2476651A7FF4D147847180CF50E816E1825DEB5CA99502FCAC6DAD0F9206AE9B1F066FBA440B29B64D4F6837D40E5C9E3097112DDCB76F1FFC8EFFFCC274A0F5505F6E45C79F2015E168F9FE66858AAD1039CEEAEED7EBC319CB5BB3F38999EB4B251FE3164AFD332C29B45BA84B19D8DFED09DD67918FB0DCD05972D1A245A0A8B0EA52683C4ACD9BE3077EFD58C7F2CFAF06056C5F5973A59981483526CF8AD06B56FF1D3C78B044AA0CF4A54B97222210FAF8527D81AFAA791D2924259415E5989D69FC51660C850DA6069D8476370C9854F4ECD9B3B76EDD4AB29348F8EAD5ABF5100D75C18205765750E704BAB0B0539672E657276A4AF50791B9C813EEADEB1577E2806EF3104291B8758A90B773E923D10223C830DD6231454501734EB108E5FBEA65E1A6A054442F822626E2455A34AEA06900DC9528F246547678857F3B825E1DD68A65CAB86A1A83EE3CFDF4D3F7ECD9E3FA257D4A4FA364C3BD288C87E5AD3D9346CC7953E9EBA64E9DBA64C912830FFEA3BCB4162860B008166B6C39643E5A9613E75010EEB8BDF30113023862E08A11642B8615F10A491C52BF24215A654344662AB273B93119216B3C2483145042DA2EA4703057DD610A43E9185AE8281B304DCC6F434E77506E156E91EAC3CC5F91A77A17A86D883FF059A7CF89D622E6468E1C79F0E0415797A65C875794ED4738210D21F798C3A38DB6664C82006DEA9390CA6A39D9B0EC369D25AD14B02922F316949D75AE76A43053084B3484CAC149AE58B1E2965B6EE178C75E22D40BEA8DF4044E14A7CB5DC33400F3BBFEF36BEDDAB5B366CD22F8433492C080E15DC46CF136F011BB3EC7A160BDBB7CB5EDDBB76B32617CAD9B87482142428E9B351B101F32277AA64486812A2077E89127B3A9CE10712EC371FE9413F6688B1490CF7115402D1C7FFCF1201E3CC898CE380AAC40DD5571A93BA13AB1EF166366FCDC69B52A29317FFEFC279E78429B47338363E1F621CC00B05E824C75B9D2566E7B87C90BAD1B68233487C37B8E9D428A6086EAF82F536AFA65C3656CBEF484165BA81613EFF484A68D8E36A54CA2994245D9E4C9933FF8E0038D818A20E09FB00D027903026636D3566EA860A253DBD31596C3CE32B6D4BFB342CA38830A9228959A8F2431B7990F270577DC915E3FCDA525187F3DB971964B364CB38FB9FC57D9728DD3A1D9BEE4924B5E7BED35FE2AAF86865176B5B1960C8687454A4F063FC8A290504819DD9DB2F11A0D59433E0100A68CEA258845EE03CBD55C5D95B58EEF6EE96726937FD3720DE82059011765ED8DCE404CEB0293035A9C42E8C6F104D72FB1BAA80A1B71EC211C8BA79E7A4AC78C35704023BE5B730E78A0D7A851A35C3E21B574F1C517CB926D4035CF983163DBB66DB043D8BC284289CE983163C8654AEE6FDEBC197F11117CCE39E77CF6D96704DB89C94316E62E7EE63E95E5B565CB16B4949E2C254D4FE9CE0B9C082132D9DAF20FDCEFCFD97E2C2F077F1CB4944AD66D2E9EEB5AE7AADB56AE5C298B9E09E71D1B22108C07A206149E356B0A995486610FDBBBBC3730BC1F93F565185ACDDB6FBFFDE9A79F7668D790511225F49FC070EE7AC52ECE7E7283A156E45EBC29777DE0F704483406397345595FC7A1C0248D82DB2989AECF8F653CA93F2B562A252FDC0E787248FCBEB2D58A31A2D1D530CE390557E098CC7FA73F1AD37E76EF52AE2F92E7A761D09AC2AF362877C841D79A5707121BC79C7C7FBB9E998E44385BB49D696B25D0E07849814B2B65316AC2A34E6302FC878D21777F49D9B773E60F1F48F7CB8CF8E8A38FBEFEFA6B1D0D68CC1DE5B6B717213F1AA16E73520610066E4F6C99A51DF55FE5C51BB5322F7A2A3D1FA38B1D6667BF756EA1BE1A62AF56E87DA429D290E8B02E5103678853DD2988E84EAC3B17D2C0D1EC14325671C57D3F3C309ABAE5CB9783F6D06B2E5AB448BA0DBBE7C1071FD4FE99366D9A5BDD500E0008A6F3ECB854D5AF1CCB96D8693D65233519ACFF5D5EB27588792030792F67DC5C9840FAAF9D3941B5B5F6EDDB377BF6ECD5AB576BB494B7D13FED6842D038F57AA8661F2C06E388DD0E621B5AD756BB152B0B49EE87A23A988DA9F576145713B170E1C255AB56492BFFFEFBEF644C5DF57114F5AC0DEF65A6154D3769F3BEFA767238FDBD81DF9C4414E871B8499D8D37C79B01EB29F448800068E2C4897BF6ECD10C7CFFFDF7EDCCC5C3CD804A38BACDA151DBE3B2608C034FA560D5A36055D557C8A2778DBCA1613CDC0434953A57DDF0E38F3F6A73EB66A9285AA390F26998D2143AD873B4103118EF60585C27432A0B9DD12A7B47C2517CACD6971F62D63366CDC182EABD4C18DBF53916401C4EA2020DF5EB0409AC5D680A426CD0F04B0E307878F7AEB11522D3B0CEEA4A0134C45E35384E274866048CFC88DD9933676ED8B021954953FD5E0245CAC6D0048310DDB7878336D07AE5E6F9B753E5A4B5B5A65157E4FE5908078D8ADCB70DD7CD6CC6E8BCE9D3A7AF5FBFBEC2740D8F669D2D65B34F2702BC058745F3FFCE3BEF5C78E1852954A83333380FB87726AA34813CE24EB34A743486F7AC7D31C1115F16083A17A46907E54EEF0837E78029E0C13CE5A5E88E470D9E81E84465264C98B073E74EA7787DD0C09D6002C634478302EE14AD0EEC239F2BF5390E7DC753167301D1F8F6D7B9DF622AB53832C7E958D6C8141626974E9907576FAAD774640EB0ADC626B7E7E5975FE67D51759A10CDD5B871E3E468496D99B739BABCA9A33C922BB6FE4DD9C04AB9CBA4FB75CA1C91A88F6DACB8C7670AD801F82763FB8F46C0217D7076919BEC1E30EBA8162924BA1E464A23D6D5D9ECF3CF3F7FD7AE5D72D7EEBFFF7E42F68608612D6AB84CA8D4C0175F7C6180437CE031111024333C3002C2ADC6A608EE45954AEBD2E06A541A1154DDE6FE2AF6D7D93AEDDC754BEB41798911ED5839FA3D9C3844C5BD665DC74371173170647D4F6EFECAC16BE5CE272967748A928484D814E71F3FB56B9D2B0B27097EEBADB77ACB525559373FB11F30F59A8EC050668D393966CC9803070ED02CB30845C311DDF0CF2F79F9E6EA428E6B5484D15C24DD17DAACD69D8B254B96AC5CB9525B45DB559FD51AB9AAAD6E1EC0F11E3A74E8871F7ED0EAE883575C71C573CF3D479A43671B2511A7A828DBD322DC2FBEF8E28F3FFEB8AE8F753BB78571C759EF584863107050F9B057C920DC78E38DCF3FFFFCA9A79E8A768FDE864DC374AC41589DA1CE22B7CF72655705F6D1EAE8974A0C1F0B929BB50F69009A3246A45D76E79430F9F2CB2FBB8E8762FA1D3B765C7EF9E5D89DFAF6A54B97CE9831836DCF59C348354B41C5B575332B031D1CB9890C275E145767A5C05743CCDFF38F9F4D5044CFD4A8B4793EFFFC73DD49F80AEBD0694B8A458BDC76E2E4934F96A7E5C21BCEA0F507DCC5ADDCD63AF24C75AE4BEAE6019B9BDD81134933EC033C31B32CA4EC0EC6754CD9858338851D5E945D4735D4134F3CF1BBEFBE03DC4AAD26E91E52FBEE20CE9F1CC5A14C142E0EDE88D264FD498EB2E6E1DE7BEFB5FBEB748C212F955393FAC74EDAB9BD15C2133A7157005A8A32306C0EFA8A6287A56C165011F7F3CF3F1B723876ECD86FBFFD76C00A3832B9C4F3637627C7FA639F0DF31C0DCA9D9ED864180E36E210D69C4610CE367CB46040E18D723CBAA6020D02C27C40768FBA9A81F100E3D50D1B364C8764DBB66D506F92D5200D0C5C931F3403A3478F96145EBC78F1B265CB347EBEC8A51D94F710D32E72771A13DF3487D470052EBBEC329929FAEF1F7FFC8105903220B955D271D3A3501B1D64602B1001C632B076479D6B2AE33F44EDF4271D39475D1AC6A355D319983A75AACF3CFCBACE7815256DB80E8F5D84541A43BA4167E91802A191C89C0AE072F3E7CF7FE699674C8F90729C001AE1BA79A6888BF0A08F169E7DC33EB104E41DA1D27430B3E8D67CDE6521D291B2D91B147C91B9969C69864A5082A6C2CB4F3C0DA1A33D408F6AA498AB2C225C030ED76335FF29C7725336015316201C01A8F7503C985F11B6E33532A41F000EBF810FBCC281EA17A91B0F6E19C45E8ED31A94E0B81D562C707D0727624BB794137B44C52C0F8D77313027E5E8B78E95CC2343BD52968D988328600EA0FB23B18B0CF14DA11B4AD4FDBA8DD229DD29D3E4C89123A4C9FBCA5E46B86BBAA4AA651416E18A20ACE6485BCA217A8BF1E9D3A76FDDBA959433BA0DF7B7C8D49E0EED12432208442CC12970BD8E9EE91614069DE0EFA51CBCB111E31D8BCEE6E46A4A51B16621654E00219BD0A3C84C1AF8182C41AC1CB30266DA2B4E30AF699B4CDF4BFD5E2AAD1C597EB26B91FC9666AB56AD9A33674E0A75A15AA0A30941637BF29E460AD8D8A97453E9CBED0A9814E0A6AEB288B42F76CE7C96D8D09178C1CD1898DF9ED034ED1F5E11A7D7CAAD4953A3828F98E448ECE7F6F214B9BB5AD41693D1EAD8BC1649600DA27D332893EC63F439FBD2755DFCBD318F2E351303FECCAD590EA06D33939197A9B3CE5577F25793D4639636CC0F9170C3C263C775DED7670F60146E4D1128668E6D8A410FD7EBB8148A680DDE953B70987FBFB9814F4FEEAA669AC06681E5673A53907208E1975F7E31B1178788BC438527A1D9F04A99BA4ECF94D63CE38C33DE7CF34D942B85A47047803B436CF12F2BCB8A1852C70F43860CB9FEFAEB1F7FFCF16335FFA99B027641AD9370D75D77DDEBAFBFEE6899BD13F6302387F908938E34B69D397332BBB4AFEB78384DE82436339A4FDFA2EDFAEBAFBFDA4074BDD635D75CF3F6DB6F43FD615AC094F1D2AC9A4B0A2379962B85FCED8E344088812D6E67866305F682D22628AF25BE653212B3010279D34D376DDEBC593BC79100E9667222FAAF1CFAFBEEBB8F04D3EAD5ABE7CD9B077F4314B97565487539FB54DA402E1980C77ECB962D93264DD20D326D35000A8E6358DBCC1ECE60021264DDD102786BE79D77DEA79F7E0A00C5AD9AD9AB5E6E3D07918504763D2A78585880B48238E5469678BDF09E913348605C26F64C0CC5A75C8E8C18D45C51D19082C503684EAEC255575DB57DFB767D979B1D01C161F0B8196EE021B1FCF2CB2FB3AC030661F5766B147FFFFDF7BFF8E28BDAA9AECA30DA3385780BB62173C1288DCD614B69856EB8E186F5EBD7337AF8D94D22815B40B6D5A9B8BA030F71746C269AFABBEC8683794B19F280B289DBC8790E360A9B98CD1DEBA1915FBDB993522B7388BB64194F94FEE44EF9207F5380E347E82CB33D62C488F1E3C76FDAB4A96E69909B0E71B432F9B88B6E53690936E73879888194000899049FC008E36A65F6763D907660B6136562CBC7FA2B77A2F612D429005745A3DA318664146B53B92899D0A8714F989F1CC266CAC9221701F3226EAD41FA93B3576105F26739E1BD65138EE69C37A6D5DCB97357AE5C09A2BB4E912F5EBCB8EB79B9F3CE3B376EDCC83070CEF44B3D50B6D4D0A1432191F0C6D00F7071531FD9CA6D64343FFA6A4E9FA11880ED712839C2B6209B895FA2C1C4368EAD8E117045C9A00282091F117BAB194196B2071F697F5AB97D083754FA8B23106978673805906917E2F7E65E580DA5EADEBA0C95D9A068C7C180D8B61DCA71E2313EE01EAA6B0D8CA8E80B6DA95A815CB395D9874C3CC2DBE90401A38D76AD13D511508D1037BB9633DF294387EC0B01ED24644A1A95F7D51B11FF4C038F20DA24B292D6099D3061C295575EA9AD6B4E0CF7C1ADC0562AF674844131726D27A864F5FBB3CE3AEBC08103349A23205164AA13D60B57102306EA4DBDA98D398FC1DD4BF54CE69916E6DA24FAAC9E0C6A1A46A318A9AD981171BA383B46EFA3C2C81B0ECA8D5691C0A9749FF82B2979FD69DAB46932EC162E5C78341E70CA91B4D8080CBEE954065860948D202C43B1DCC8413FEB85E14BC34E4776C8BAC46C21D872EBADB7CA06A76F65E52CFD2DC34E0A3C946C65CC2EC341539927D3629026816B894395CA108A1300865E47A6116F416623F6CBA4D84B93134539CA0648854B9E64963EF4D043B473E16C238990BF29E7B9914D24DD1BD62565154E122565A0B28F8A06A051FD6DDB476B7108E718837E89FD010A26E5349839174F39E59443870E996AC07CB9AE754ED9A2EC0C81B23B6DE520B03099354B92B0123A985CA05E7590CC004C4B697D6F4317A9229325A5EC8F46A26073931112A726CAA38AB4440D4428FCA0D7D4F46A8925282FBDF45299925DEF3FE9A493EACE8B5E9650391B2696F3B702A956EC83E6D44F94D4564B941EE999880307ABB5A088E3E67A7A37FDC442D526A41B12A2B0B39E5B86029A581F94943972E44803652CC5F4C8323C2117C6D4F51767CFE8370F3CF0C00B2FBCA08D217367E6CC997EA646488D4D03BBADE3DE31FFE76D8FFEB6DB104B86B439ED4B10D2700D127BBE0EBE44C4CE7D148C47ABD4E7A4FEA45A5E027E636F0CA046CA7021EB7216DD122FE5DE035A086D0046A87B64CA7FF2C92750A8A6815C8E54936533FFE2FF9497EDC8D8C0C071DD0AFE2E85C4301BC901515023D44043A118C1ED1E33C3D0CC13B733CB552A2D00EC42C768BDD01C163D13930E8392D9731829F2ADA6C093D8CE5CDF31066601C20169057278DBBBFAF9DC73CFFDEAABAFE0D0D62F5D6672340B8038ABD80B29D3D018908D1E428C225E5DE4106B618D9D33B8CE6D29A500A0724DA1C24C0BF3D34F3F8103AC23B51F366C18C56194665B0B56F2ED5CB1081273CC39330B5C6710A11A26CFEFC4AD741BDE8903C89196CFC1766B474E081B486B79F3CD374B9478F7AC59B3E6EEBBEF76BACED16CF81A1BD605393B28B7A84A39138FD98525D4DC0BCF9591AEC6EE8A832D02518313FCB6F4AD45348DA9048FC469EF0A028AEE94DB1FC550BC84ECC30F3FCCA94023023234EED103EBFA5EED506B6FAF02961C6F54CA044F3BED340DC9F5CA9051BB2EB04E014F9F3EFDFDF7DF3F7CF830FF8D8091BAF1743D2F29D0D75057C67AE17EC97A2380E1639FB283EE167E681DD210CE79CBBC03A04B40828D1449361AE68D9D8C7BA161687EF6EDDB6782CFA2ACF6A6ED8A1682EC63CC83A6ACABBA3EFFF2CB2FDFBF7F3F0ADBD36BE4C75F1DFDC56985994ACBD2A5A2FAAB7EA65A9730899663DDBA7511E2D0B981C976A183F5D537DD74D3B3CF3E4B4C15702F0CA3C822E2E42851A6DAD28FD966EBEA2374EB228963598C33AA4B8B18F3DF9E76ABED8AF67540D841026B0B27568D5B76ACAB2FF3585588D528767084E028523CB1E72C0E15CC45A9342591574C4B8C9FD95EB7CDD10A7D2CFC0392C40C049E6157FBA4A0B309152C5FBEFC9E7BEE615DC84A385386E6FB2B774E4C21109B424623E506A39DA5FC9CDF2294F6B533556A3B947A9BD3C289062F712BB0D499BFD326B516EB681430F1D2F8AD64DD89F21358377C3C7ED645383DB9B9B17E29DDB376ED5AD762022A93F8B35267D61C2EA6400258816DF9CE6BCA9429BB77EF8644A69DBB1DE8F9F0A8E997C3870FD75F91E67AB85E8A2E1F28C5ABAFBE7AFBF6EDCE1960F6B21206472064595D5BC1A9749D639D25C86A0E0337B300B19E8ADDA61592612141A3FBC9FFB1CFF0D89A51A9BA01962B19595827FAF809279C2005431E5D371072A0ECA14E31B40249B57E78F4D147B53A7A4D16DA704D14ADA3E5F813B001574A1DBCFF5A813FA8B30C26E574A0790C8A5C77A82F92C9A5D5D1F8357573E7CE956C95F8E06C8350653C6655EB7A21DFF5404873B0088934DAF9D65FC9CB82648931DB945B8D767D3809276D037D8596CF189C3ADA6D63092BE705A64FE87E34C8BBEEBAEBC9279F7410323AB818558EA8F3AF0BE12485A5ADA9C877C23BE5FA51D780920234B0B34EE69A467850D9515BA6675C59C3A7CD69A57FCF3CF3CCBD7BF79AB0B64E016BC6346F950A3D045FD7FEE2AE4F25114B4F56324D041B8934920B6C00C7E9C5B59710F486C9F0A779F3E63DF5D453AC88843B485A3DCAECF7CEA6E3EF02FF7121626FEE4063748F370FD8FB8A4758E4E619C4F3225974917B82E15CBAB14A0CD75B8BF358C7BAE36DB18B435CE8A350C091C02495AACBB4F9D69778A2EE5DEF197025525F68ED97FAC7A511B6C810F61B2F68DE02AB43E40F2C1C4CD43BEFBC237B8E8A640D29462688B96A3CDA36FAB7E237A6006966ED4098B67343B64A3EDBAEBF2D6C1FBA8A83E7CA2B9F11AF85EF1F7008DA5D5D094B226E7A42EF656005AE0AE0006382F192BC1E0A86D77313156A16B1864843EABF0E4C4D9C38F1C30F3F7CE081071E79E411279FBA8ED384097AA68145BD99A239327F9AE5840D4A3218485B5C21000E7AC76BAFBDF6BDF7DED393C1BC013A9F3C79F2962D5BF459CC0B6A005A99DCD5314C3F10330D1392530DE48FB8BA3D1BD70BB94ABDD222226EDCFF2D3BC0C37EE5789D8B117B42AF750AFFEBD6977122DFF51C3373A59CF2A72423851ADF56E00B4407EB87A143874AFD7B715D6E514704E1487ECCC77300FE4D19530A14FCDD08C7734FADD491648AEF85056604A934C415575CA18D64E1552106894BA6A1EA75468C18B173E7CEBAE7FBEC55F84FBADE1F73B1F1BCA49CF5B4BDE24E00C3860D3B78F0A05F10D7BC1588FB53695C8F1C39F2D24B2F95DA90F27EFAE9A75D74EE860A29E3AE416F803F6F687F99021195B18A985CB1E18C0165986229E3A1FED670E487CAF2B914B5D25F3CA69FC9867288A0D430391D5FDA10FA765D90714973E6CC59B56A9531FF0693524F4F80C47E4F2A11B991D0D42DC6BDBED61C9E3D138944ADE9F3DB972FCF00DA0BB38FF54299619D58E37AFBE19038391AA11B2C16B3CAF8490F0D9468C54F7324A0955930EDB83B4B924237ADB89DE221B51648591ACBAEA2A016748889FC2254DB11B8DE40DB4E1931360AD6AD8E3C9CBBBA7FF1E2C572278C21EFACF725B5E11C1CD156E6B92FB091636522E250C03C048BB01538355BA1C521707A37022F42EFA20183B07C00F88D7D533B3A9E324B58235C6C7F5198B860C182CD9B37736E0D538ABDA353CE84F17A1CBF58B153377EA37B580948AA3518AAFB5130E848265162DD35D4A8314711992C464E32C667C0063B5138147934339D02E7ECC9C7A51D299969C2F8B366CD7AE18517887952064D12D41169164C5B473A802AA3AE07435F0197A1F52E821B05EF448566523FD45127C688909E3375EAD4B7DE7A4B3753C95EF1FF8815C7D03A613A7D9DBE65F4E8D1DF7DF79DE6103CA7156D572A44CF157A05E910DDF422F0E9981457DF3E78F0E0FF2CAFD468D1735C51E4F40289E40F18102C22CC44AC20B3C1B6D464EAA5EACAA262999383516E8351F791CEF3A209F9F1C71F35546DBFCB2EBBECA5975E62E74BBE9F75D659BB77EFA636C9A4C729937A72B65D74A0DD2EEB870D801E623038CAA98CACF0F339E79C73FEF9E73FF4D0430D83749435950905C3DAF5A5D49A3B74AF85405439C8D95CD6A2E5D3B0A9A84ED9AA88A9D9AEFDC5CD97E93C025F019A5DEF4BFC00B9D4F57B630E1E3B5EDB524B0FF29F6F31DD87C676F7DD776FD8B0810A34A7DE8BCC2EE778FBA4499376EDDAF5D8638FDD77DF7D710EBD2D23F563F4747B735B8222F4A88FE7C2997817769A91308622F01A1DC7AA44B32391706A4C0DD45DF6E4CC1813FF6A918838D5BFBFFDF65B7C7DBFAFF795535D18762EBE003896FA934247F566482041A3549A44FA08140E3A35D3A64D7BF2C927392CDA8D38BECE919153B02E378031F62D365990316E46E617B9E99F85957CF1C3870F33C37D99613B22F9236CC256EC8015309EA59E256520DF9F87F68416D3D1E444915061E263E34C0F659700FFE456EED8B1835D65460BCEA7CCCF9EDC30DCACE558D6DE949D97B720A02AF499FB01EB4B6FBEF9E6575E7965C89021DF7EFB2DB9641BDD48286A9CBC571CB8C78D20D9A60FD27DDD9E8A6D25FDAB2591304533699CBAF9820B2E90F7AC07D2F553C2451B943A076053F2A4DF7FFF7DBB2929473C9CF5AC43751ACACB7F2BEDD8345ABD9484A33CFB534E39E5CB2FBF345EB172B916455F8A4559941C40E79D779EDEC57DE099CF76E8888CD647E4310C6D657D8BE92711646E656AA180FBC58E1C3B76EC37DF7C136BCD69B24B737B770836905E9F9D3B77EEB265CB74837EAFADD200C24A1D043729781E1530519C5867161ACAAE68348405662DD2000026C0D3795E18897D0BCD210E996EA3EB8B9B49B7731F24A2057D99065C9FB5C780773B7FFEFC75EBD6C9E83124D01E30C1864A8BE5AEFBCA13656C9D29B422782D65E4E3C2850B1F7FFC71E9B9FDFBF73778D851CD70EE30239CA0A9F417D7A3F427C8D5794DB742D1F620F3A7FB9F78E289071F7CD065A09D970C1D9D68D867490C7164C0AC603FE1CAB3D3162D5AB466CD1ADB9131178019E74463E7E9EB3AAB516B1AA568411F33533C4A52827E4A1C19944DEA0FF3D173C08757BA201059D50FD4C2A6ACAADBF5BC0275173ADB4C0FBC0502966A6CA4478C0D18EF1D9D48EB8B4E4F74D4A851870E1D8A54AF6C80D4DF8CE3ED20F1B6631D41AF44A7EDF4EB82019E488091F67E0B8EDE45175D247B4E2ADC2462C0745269B3C648B8278165A25E9FC839C724054A4B0CB5C80BE9CCC28073C01C30D9179B366D32F8C8693C4B049CBCA54B97EA7DA475607EB036C2E535D144443CE241F2F2F6EB992323AAD8850D45C0315CE6890063AC6570E7C894634D8E343241B7DC72CB1B6FBC61FE9422906E531066F2397BEA92953A24F2F974DBB061C3E42A698A366EDC48FA96650354AC4799A0D5C5FEB7DF7EFB8A152B6232BF08A5E22953B13484D498100C05C4A5B5A3F19929672B8B46B4B05B4FDB072557C7B7231C7B3369250BEAA494F7340DFE98671F33673E3ADBE1694E6EBBED36A98A2253D3718CAD1E084A3BF889BBA37FEFB8E38EF5EBD793566F063D21A0D97ED84C4E68F95B28A77110CFAF5CE4DEA55D9F8F67008369CA4ECFDF86403BCF4B0A69113205CE91A76C05C64699804EA9307193732EE296368088D9F4E54664A8345BE875E7C89ACFFB4A7B5BF23185D217A76F23F9A2A37345E016EEBC6282D38A87DC794FB7FEE25836907CB143243177EEDC19E9E22168D35A3418645075A60CAEC47B060862382BE56DB292A5DA2BE540CE2C125460727427B5AD9A2299AADEF3910ACAFB275A1E0088527F8868911BC7B139C78D1B77B8BCE20124809732CDB8FE7BF6D9674BEB5060CADCB673C195035404186271D4FFFF42DDA28A6CB3FA4D234A5F53A7B99518E4ACB962CAF2A1C290D5CACC6292BD205207E5BE6186FDA61CC967E3B5339981F17A29070B757C2878A1A25D52970C3D7BC3B5218E70A4AC778841FA50631E15B9F95E3B13CFA5AC8FB9B39509737A427F2A8FD9EB1E13A0BCEFFF015AB03D44233550ED0000000049454E44AE426082</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">0</prop><prop prop-type="Order">20</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">0</prop><prop prop-type="Open">{</prop><prop prop-type="Close">}</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Transparent" resname="O:SplashForm.O:SplashImage.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335368866</prop><prop prop-type="Status">6</prop><prop prop-type="Order">21</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Left" resname="O:SplashForm.O:Label1.Left"> |
<source>104</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759375</prop><prop prop-type="Status">6</prop><prop prop-type="Order">22</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Top" resname="O:SplashForm.O:Label1.Top"> |
<source>83</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759375</prop><prop prop-type="Status">6</prop><prop prop-type="Order">23</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>91</source> |
<target>91</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45408.3470762037</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Width" resname="O:SplashForm.O:Label1.Width"> |
<source>195</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759375</prop><prop prop-type="Status">6</prop><prop prop-type="Order">24</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Height" resname="O:SplashForm.O:Label1.Height"> |
<source>18</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759375</prop><prop prop-type="Status">6</prop><prop prop-type="Order">25</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Caption" resname="O:SplashForm.O:Label1.Caption"> |
<source>'Das Spiel wird geladen...'</source> |
<target>'Loading game...'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759375</prop><prop prop-type="Status">1</prop><prop prop-type="Order">26</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Charset" resname="O:SplashForm.O:Label1.Font.Charset"> |
<source>ANSI_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759375</prop><prop prop-type="Status">6</prop><prop prop-type="Order">27</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Color" resname="O:SplashForm.O:Label1.Font.Color"> |
<source>clAqua</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759375</prop><prop prop-type="Status">6</prop><prop prop-type="Order">28</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Height" resname="O:SplashForm.O:Label1.Font.Height"> |
<source>-16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759375</prop><prop prop-type="Status">6</prop><prop prop-type="Order">29</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Name" resname="O:SplashForm.O:Label1.Font.Name"> |
<source>'Arial Rounded MT Bold'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759375</prop><prop prop-type="Status">6</prop><prop prop-type="Order">30</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Style" resname="O:SplashForm.O:Label1.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">31</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.ParentFont" resname="O:SplashForm.O:Label1.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">32</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Left" resname="O:SplashForm.O:Label2.Left"> |
<source>56</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">33</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Top" resname="O:SplashForm.O:Label2.Top"> |
<source>21</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">34</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Width" resname="O:SplashForm.O:Label2.Width"> |
<source>313</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">35</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Height" resname="O:SplashForm.O:Label2.Height"> |
<source>64</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">36</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Caption" resname="O:SplashForm.O:Label2.Caption"> |
<source>'SpaceMission'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">1</prop><prop prop-type="Order">37</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Font.Charset" resname="O:SplashForm.O:Label2.Font.Charset"> |
<source>ANSI_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">38</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Font.Color" resname="O:SplashForm.O:Label2.Font.Color"> |
<source>clLime</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">39</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Font.Height" resname="O:SplashForm.O:Label2.Font.Height"> |
<source>-48</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">40</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Font.Name" resname="O:SplashForm.O:Label2.Font.Name"> |
<source>'Arial Unicode MS'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">41</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.Font.Style" resname="O:SplashForm.O:Label2.Font.Style"> |
<source>[fsBold]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">42</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label2.ParentFont" resname="O:SplashForm.O:Label2.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4205759491</prop><prop prop-type="Status">6</prop><prop prop-type="Order">43</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/LevEdit_DRC.RES |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/ENU/LevEdit_DRC.rcn |
---|
0,0 → 1,3864 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="C:\SVN\SpaceMission\LevEdit.drc" source-language="de-DE" target-language="en-US" datatype="cpp" tool="ETM v10.0" ts="C:\SVN\SpaceMission\LevEdit.drc"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4428703704</prop> |
<prop prop-type="OrigDateTime">45408.4428703704</prop> |
<prop prop-type="XlatDateTime">45408.409537037</prop> |
<prop prop-type="Translated">487</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="LevMain_status_lives" resname="LevMain_status_lives"> |
<source>"Leben: "</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Lifes: "</target> |
</trans-unit> |
<trans-unit id="LevMain_status_nolives" resname="LevMain_status_nolives"> |
<source>"Einheit hat keine Lebensangabe"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Unit has no lives"</target> |
</trans-unit> |
<trans-unit id="LevMain_SUnknownEnemyType" resname="LevMain_SUnknownEnemyType"> |
<source>"???"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="LevMain_SExitWithoutSave" resname="LevMain_SExitWithoutSave"> |
<source>"Beenden ohne abspeichern?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Close without saving?"</target> |
</trans-unit> |
<trans-unit id="LevEdit_SAlreadyStarted" resname="LevEdit_SAlreadyStarted"> |
<source>"Der Editor wurde bereits gestartet."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The editor is already open"</target> |
</trans-unit> |
<trans-unit id="LevEdit_STitel" resname="LevEdit_STitel"> |
<source>"SpaceMission Level-Editor"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"SpaceMission Level Editor"</target> |
<alt-trans> |
<source>"SpaceMission Leveleditor"</source> |
<target>"SpaceMission Leveleditor"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45407.8486206481</prop> |
</prop-group> |
</alt-trans> |
</trans-unit> |
<trans-unit id="LevEdit_SFileMissing" resname="LevEdit_SFileMissing"> |
<source>"%s fehlt. Bitte installieren Sie SpaceMission erneut."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"%s is missing. Please reinstall SpaceMission."</target> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_sNoRunningObject" resname="Vcl_OleConst_sNoRunningObject"> |
<source>"Es kann kein Zeiger auf ein ausgeführtes Objekt geholt werden, dass mit OLE für %s/%s registriert ist"</source> |
<target>"Unable to retrieve a pointer to a running object registered with OLE for %s/%s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_EdgeConst_SWebViewFailure" resname="Vcl_EdgeConst_SWebViewFailure"> |
<source>"Edge-Browser-Steuerelement konnte nicht erstellt werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Edge-Browser control could not be created"</target> |
</trans-unit> |
<trans-unit id="Vcl_EdgeConst_SNoWebView" resname="Vcl_EdgeConst_SNoWebView"> |
<source>"Das zugrunde liegende WebView2-Steuerelement ist nicht initialisiert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"WebView2 control was not initialized"</target> |
</trans-unit> |
<trans-unit id="IEConst_sNotSupportedByEdge" resname="IEConst_sNotSupportedByEdge"> |
<source>"Vorgang wird vom Edge WebView2-Steuerelement nicht unterstützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Action not supported by Edge WebView2 control"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExMissingExpression" resname="System_RegularExpressionsConsts_SRegExMissingExpression"> |
<source>"Ein in RegEx angegebener regulärer Ausdruck ist erforderlich"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"A regular expression is required in RegEx"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExExpressionError" resname="System_RegularExpressionsConsts_SRegExExpressionError"> |
<source>"Fehler in regulärem Ausdruck bei Offset %d: %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Error in regular expression at offset %d: %s"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExStudyError" resname="System_RegularExpressionsConsts_SRegExStudyError"> |
<source>"Fehler beim Untersuchen von regex: %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Error while evaluating regex: %s"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExMatchRequired" resname="System_RegularExpressionsConsts_SRegExMatchRequired"> |
<source>"Übereinstimmung erforderlich"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Match required"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExStringsRequired" resname="System_RegularExpressionsConsts_SRegExStringsRequired"> |
<source>"Strings-Parameter darf nicht Nil sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Strings parameter must not be nil"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExIndexOutOfBounds" resname="System_RegularExpressionsConsts_SRegExIndexOutOfBounds"> |
<source>"Index überschreitet das Maximum (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Index is greater than maximum (%d)"</target> |
</trans-unit> |
<trans-unit id="LevMain_SFileError" resname="LevMain_SFileError"> |
<source>"Die Datei kann von SpaceMission nicht geöffnet werden!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"File cannot be opened by SpaceMission"</target> |
</trans-unit> |
<trans-unit id="LevMain_SCaption" resname="LevMain_SCaption"> |
<source>"SpaceMission %s - Level-Editor"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"SpaceMission %s - Level Editor"</target> |
<alt-trans> |
<source>"SpaceMission %s - Leveleditor"</source> |
<target>"SpaceMission %s - Level Editor"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45407.8486262847</prop> |
</prop-group> |
</alt-trans> |
</trans-unit> |
<trans-unit id="LevMain_SYes" resname="LevMain_SYes"> |
<source>"Ja"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Yes"</target> |
</trans-unit> |
<trans-unit id="LevMain_SNo" resname="LevMain_SNo"> |
<source>"Nein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No"</target> |
</trans-unit> |
<trans-unit id="LevMain_SReallyDeleteLevel" resname="LevMain_SReallyDeleteLevel"> |
<source>"Level wirklich löschen?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Do you want to delete this level?"</target> |
</trans-unit> |
<trans-unit id="LevMain_status_info" resname="LevMain_status_info"> |
<source>"Zeigen Sie mit dem Mauszeiger auf eine Einheit, um deren Eigenschaften anzuzeigen..."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Hover your mouse cursor over an entity to show its properties"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SSelbsterstellt" resname="LevSpeicherung_SSelbsterstellt"> |
<source>"Selbsterstellt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Own creation"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SLevelFileNotFound" resname="LevSpeicherung_SLevelFileNotFound"> |
<source>"Leveldatei nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Level file not found"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SReallyDeleteLevel" resname="LevSpeicherung_SReallyDeleteLevel"> |
<source>"Dieses Level wirklich löschen?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Do you really want to delete this level?"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SLoadNewLevelAndDiscardChanges" resname="LevSpeicherung_SLoadNewLevelAndDiscardChanges"> |
<source>"Neues Level laden und Änderungen verwerfen?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Load new level and discard changes?"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SLevelIsEmpty" resname="LevSpeicherung_SLevelIsEmpty"> |
<source>"Das Level ist leer!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The level is empty!"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SLevelAlreadyExists" resname="LevSpeicherung_SLevelAlreadyExists"> |
<source>"Level ist bereits vorhanden. Ersetzen?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Level with the same number already exists. Replace?"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SYes" resname="LevSpeicherung_SYes"> |
<source>"Ja"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Yes"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SNo" resname="LevSpeicherung_SNo"> |
<source>"Nein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SFields" resname="LevSpeicherung_SFields"> |
<source>"%d Felder"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"%d Fields"</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SXbyY" resname="LevSpeicherung_SXbyY"> |
<source>"%s von %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"%s by %s"</target> |
</trans-unit> |
<trans-unit id="ComInfo_SVersion" resname="ComInfo_SVersion"> |
<source>"Version %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SBadPropValue" resname="Vcl_OleConst_SBadPropValue"> |
<source>"'%s' ist kein gültiger Wert für die Eigenschaft"</source> |
<target>"'%s' is not a valid property value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SCannotActivate" resname="Vcl_OleConst_SCannotActivate"> |
<source>"Aktivierung des OLE-Steuerelements misslungen"</source> |
<target>"OLE control activation failed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SNoWindowHandle" resname="Vcl_OleConst_SNoWindowHandle"> |
<source>"Das Fenster-Handle des OLE-Elements nicht verfügbar"</source> |
<target>"Could not obtain OLE control window handle"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SInvalidLicense" resname="Vcl_OleConst_SInvalidLicense"> |
<source>"Lizenz-Information für %s ist ungültig"</source> |
<target>"License information for %s is invalid"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SNotLicensed" resname="Vcl_OleConst_SNotLicensed"> |
<source>"Lizenz-Information für %s nicht gefunden. Sie können dieses Steuerelement im Entwurfsmodus nicht verwenden"</source> |
<target>"License information for %s not found. You cannot use this control in design mode"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_JConsts_sChangeJPGSize" resname="Vcl_Imaging_JConsts_sChangeJPGSize"> |
<source>"Die Größe einer JPEG-Grafik kann nicht verändert werden"</source> |
<target>"Cannot change the size of a JPEG image"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_JConsts_sJPEGError" resname="Vcl_Imaging_JConsts_sJPEGError"> |
<source>"JPEG-Fehler #%d"</source> |
<target>"JPEG error #%d"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_JConsts_sJPEGImageFile" resname="Vcl_Imaging_JConsts_sJPEGImageFile"> |
<source>"JPEG-Grafikdatei"</source> |
<target>"JPEG Image File"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Global_SDownloadError" resname="Global_SDownloadError"> |
<source>"Ein Fehler ist aufgetreten. Wahrscheinlich ist keine Internetverbindung aufgebaut, oder der der ViaThinkSoft-Server vorübergehend offline."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Could not download version information from the ViaThinkSoft server. Please try again later."</target> |
</trans-unit> |
<trans-unit id="Global_SNewProgramVersionAvailable" resname="Global_SNewProgramVersionAvailable"> |
<source>"Eine neue Programmversion ist vorhanden. Möchten Sie diese jetzt herunterladen?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"A new program version is available! Download now?"</target> |
</trans-unit> |
<trans-unit id="Global_SNoUpdateAvailable" resname="Global_SNoUpdateAvailable"> |
<source>"Es ist keine neue Programmversion vorhanden."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"You are already using the latest version"</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SLevelFileFolder" resname="ComLevelReader_SLevelFileFolder"> |
<source>"Levels"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="ComLevelReader_SLevelFileSubFolder" resname="ComLevelReader_SLevelFileSubFolder"> |
<source>"SpaceMission"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="ComLevelReader_SExtraContentAfterLine" resname="ComLevelReader_SExtraContentAfterLine"> |
<source>"Zeile %d ist ungültig (Zusatzinfo am Ende)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Line %d is invalid (additional information at line end)"</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SInvalidXCoord" resname="ComLevelReader_SInvalidXCoord"> |
<source>"X-Koordinate muss ohne Rest durch %d teilbar sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"X-Coordinate must be a multiple of %d."</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SInvalidYCoord" resname="ComLevelReader_SInvalidYCoord"> |
<source>"Y-Koordinate muss ohne Rest durch %d teilbar sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Y-Coordinate must be a multiple of %d."</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SInvalidLevelFile" resname="ComLevelReader_SInvalidLevelFile"> |
<source>"Level-Format nicht unterstützt oder Datei ist beschädigt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Level file format is not supported or the file is corrupt."</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SEnemyTypeNotImplemented" resname="ComLevelReader_SEnemyTypeNotImplemented"> |
<source>"Gegner-Typ %d wird nicht unterstützt (Alte Spielversion?)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Enemy type %d not supported (Old game version?)"</target> |
<alt-trans> |
<source>"Enemy Type %d not implemented"</source> |
<target>"Gegner-Typ %d ist nicht implementiert"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45406.840819456</prop> |
</prop-group> |
</alt-trans> |
</trans-unit> |
<trans-unit id="ComLevelReader_SLevelEnemyLineComment" resname="ComLevelReader_SLevelEnemyLineComment"> |
<source>"; Type XCoord YCoord Lives"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="ComLevelReader_SInvalidFile" resname="ComLevelReader_SInvalidFile"> |
<source>"Spielstand-Format nicht unterstützt oder Datei beschädigt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Savegame format is not supported or the file is corrupt."</target> |
</trans-unit> |
<trans-unit id="LevSpeicherung_SLevelListBox" resname="LevSpeicherung_SLevelListBox"> |
<source>"Level %d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownCriticalChunkText" resname="Vcl_Imaging_pnglang_EPNGUnknownCriticalChunkText"> |
<source>"Dieses \"Portable Network Graphics\" Bild enhält einen unbekannten aber notwendigen Teil, welcher nicht entschlüsselt werden kann."</source> |
<target>"This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownCompressionText" resname="Vcl_Imaging_pnglang_EPNGUnknownCompressionText"> |
<source>"Dieses \"Portable Network Graphics\" Bild wurde mit einem unbekannten Komprimierungsalgorithmus kodiert, welcher nicht entschlüsselt werden kann."</source> |
<target>"This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownInterlaceText" resname="Vcl_Imaging_pnglang_EPNGUnknownInterlaceText"> |
<source>"Dieses \"Portable Network Graphics\" Bild benutzt ein unbekanntes Interlace-Schema, welches nicht entschlüsselt werden kann."</source> |
<target>"This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownColorTypeText" resname="Vcl_Imaging_pnglang_EPNGUnknownColorTypeText"> |
<source>"Dieses PNG-Bild (Portable Network Graphics) verwendet einen unbekannten Farbtyp, der nicht decodiert werden konnte."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This PNG image (Portable Network Graphics) contains an unknown color type, which could not be decoded."</target> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCannotAssignChunkText" resname="Vcl_Imaging_pnglang_EPNGCannotAssignChunkText"> |
<source>"Die Abschnitte müssen kompatibel sein, damit sie zugewiesen werden können."</source> |
<target>"The chunks must be compatible to be assigned."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnexpectedEndText" resname="Vcl_Imaging_pnglang_EPNGUnexpectedEndText"> |
<source>"Dieses \"Portable Network Graphics\" Bild ist ungültig: Der Dekoder ist unerwartete auf das Ende der Datei gestoßen."</source> |
<target>"This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGNoImageDataText" resname="Vcl_Imaging_pnglang_EPNGNoImageDataText"> |
<source>"Dieses \"Portable Network Graphics\" Bild enthält keine Daten."</source> |
<target>"This \"Portable Network Graphics\" image contains no data."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCannotAddChunkText" resname="Vcl_Imaging_pnglang_EPNGCannotAddChunkText"> |
<source>"Das Programm versucht einen existierenden und notwendigen Abschnitt zum aktuellen Bild hinzuzufügen. Dies ist nicht zulässig."</source> |
<target>"The program tried to add a existent critical chunk to the current image which is not allowed."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334983218</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCannotAddInvalidImageText" resname="Vcl_Imaging_pnglang_EPNGCannotAddInvalidImageText"> |
<source>"Es ist nicht zulässig, einem ungültigen Bild einen neuen Abschnitt hinzuzufügen."</source> |
<target>"It's not allowed to add a new chunk because the current image is invalid."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCouldNotLoadResourceText" resname="Vcl_Imaging_pnglang_EPNGCouldNotLoadResourceText"> |
<source>"Das PNG Bild konnte nicht aus den Resourcendaten geladen werden."</source> |
<target>"The png image could not be loaded from the resource ID."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGOutMemoryText" resname="Vcl_Imaging_pnglang_EPNGOutMemoryText"> |
<source>"Es stehen nicht genügend Resourcen im System zur Verfügung, um die Operation auszuführen. Schließen Sie einige Fenster und versuchen Sie es erneut."</source> |
<target>"Some operation could not be performed because the system is out of resources. Close some windows and try again."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCannotChangeTransparentText" resname="Vcl_Imaging_pnglang_EPNGCannotChangeTransparentText"> |
<source>"Das Setzen der Bit-Transparent-Farbe ist für PNG-Images die Alpha-Werte für jedes Pixel enthalten (COLOR_RGBALPHA und COLOR_GRAYSCALEALPHA) nicht zulässig"</source> |
<target>"Setting bit transparency color is not allowed for png images containing alpha value for each pixel (COLOR_RGBALPHA and COLOR_GRAYSCALEALPHA)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGHeaderNotPresentText" resname="Vcl_Imaging_pnglang_EPNGHeaderNotPresentText"> |
<source>"Die Datei, die gelesen wird, ist kein gültiges \"Portable Network Graphics\" Bild, da es keinen gültigen Header enthält."</source> |
<target>"This operation is not valid because the current image contains no valid header."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EInvalidNewSize" resname="Vcl_Imaging_pnglang_EInvalidNewSize"> |
<source>"Die neue Größe für die Größenanpassung des Bildes ist ungültig."</source> |
<target>"The new size provided for image resizing is invalid."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EInvalidSpec" resname="Vcl_Imaging_pnglang_EInvalidSpec"> |
<source>"\"Portable Network Graphics\" konnte nicht erstellt werden, weil ungültige Bildtypparameter angegeben wurden."</source> |
<target>"The \"Portable Network Graphics\" could not be created because invalid image type parameters have being provided."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGInvalidBitDepthText" resname="Vcl_Imaging_pnglang_EPNGInvalidBitDepthText"> |
<source>"Das PNG-Bild (Portable Network Graphics) konnte nicht geladen werden, weil das Bild eine ungültige Bit-Tiefe verwendet."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The PNG image (Portable Network Graphics) could not be loaded, because the image contains an unsupported bit-depth."</target> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDIB" resname="DXConsts_SInvalidDIB"> |
<source>"DIB is invalid"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDIBBitCount" resname="DXConsts_SInvalidDIBBitCount"> |
<source>"Bitcount in invalid (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDIBPixelFormat" resname="DXConsts_SInvalidDIBPixelFormat"> |
<source>"PixelFormat in invalid"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDisplayBitCount" resname="DXConsts_SInvalidDisplayBitCount"> |
<source>"Display requires 8, 16, 24 or 32 bits"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SNotSupportGraphicFile" resname="DXConsts_SNotSupportGraphicFile"> |
<source>"Graphic format not suported"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDXTFile" resname="DXConsts_SInvalidDXTFile"> |
<source>"DXT file is invalid"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SCannotLoadGraphic" resname="DXConsts_SCannotLoadGraphic"> |
<source>"Can not load graphic"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPngInvalidCRCText" resname="Vcl_Imaging_pnglang_EPngInvalidCRCText"> |
<source>"Dieses \"Portable Network Graphics\" Bild ist ungültig, weil Teile der Daten fehlerhaft sind (CRC-Fehler)"</source> |
<target>"This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGInvalidIHDRText" resname="Vcl_Imaging_pnglang_EPNGInvalidIHDRText"> |
<source>"Dieses \"Portable Network Graphics\" Bild konnte nicht geladen werden, weil wahrscheinlich einer der Hauptdatenbreiche (IHDR) beschädigt ist"</source> |
<target>"The \"Portable Network Graphics\" image could not be loaded because one of its main piece of data (ihdr) might be corrupted"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGMissingMultipleIDATText" resname="Vcl_Imaging_pnglang_EPNGMissingMultipleIDATText"> |
<source>"Dieses \"Portable Network Graphics\" Bild ist ungültig, weil Grafikdaten fehlen."</source> |
<target>"This \"Portable Network Graphics\" image is invalid because it has missing image parts."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGZLIBErrorText" resname="Vcl_Imaging_pnglang_EPNGZLIBErrorText"> |
<source>"Die Grafik konnte nicht entpackt werden, weil Teile der komprimierten Daten fehlerhaft sind. \r\nBeschreibung: "</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This graphics could not be decompressed because parts of the compressed data is invalid. \r\nDescription: "</target> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGInvalidPaletteText" resname="Vcl_Imaging_pnglang_EPNGInvalidPaletteText"> |
<source>"Das \"Portable Network Graphics\" Bild enthält eine ungültige Palette."</source> |
<target>"The \"Portable Network Graphics\" image contains an invalid palette."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGInvalidFileHeaderText" resname="Vcl_Imaging_pnglang_EPNGInvalidFileHeaderText"> |
<source>"Die gerade gelesene Datei ist kein gültiges PNG-Bild (\"Portable Network Graphics\"), weil sie keinen gültigen Header enthält. Diese Datei ist möglicherweise beschädigt. Versuchen Sie, eine neue Version davon zu bekommen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The read file is not a valid PNG picture (\"Portable Network Graphics\"), because it does not contain a valid header. The file is probably corrupt. Please try to receive a newer version of the file."</target> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGIHDRNotFirstText" resname="Vcl_Imaging_pnglang_EPNGIHDRNotFirstText"> |
<source>"Dieses \"Portable Network Graphics\" Bild wird nicht unterstützt oder ist ungültig.\r\n(Der IHDR-Abschnitt ist nicht der erste Abschnitt in der Datei)."</source> |
<target>"This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGSizeExceedsText" resname="Vcl_Imaging_pnglang_EPNGSizeExceedsText"> |
<source>"Dieses PNG-Bild (Portable Network Graphics) wird nicht unterstützt, weil die Breite oder Höhe die maximale Größe von 65535 Pixel überschreitet."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This PNG image (Portable Network Graphics) cannot be loaded because width or height exceeds 65535 piels."</target> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownPalEntryText" resname="Vcl_Imaging_pnglang_EPNGUnknownPalEntryText"> |
<source>"Es gibt keinen solchen Palettenwert."</source> |
<target>"There is no such palette entry."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectDrawSurface" resname="DXConsts_SDirectDrawSurface"> |
<source>"Surface"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectDrawPrimarySurface" resname="DXConsts_SDirectDrawPrimarySurface"> |
<source>"Primary Surface"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_STexture" resname="DXConsts_STexture"> |
<source>"Texture"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SNotMade" resname="DXConsts_SNotMade"> |
<source>"%s not made"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SCannotMade" resname="DXConsts_SCannotMade"> |
<source>"%s cannot be made"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SCannotInitialized" resname="DXConsts_SCannotInitialized"> |
<source>"%s cannot be initialized"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDLLNotLoaded" resname="DXConsts_SDLLNotLoaded"> |
<source>"%s is not loaded"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SImageNotFound" resname="DXConsts_SImageNotFound"> |
<source>"Image '%s' not found"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SListIndexError" resname="DXConsts_SListIndexError"> |
<source>"Index of the list exceeds the range. (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SScanline" resname="DXConsts_SScanline"> |
<source>"Index of the scanning line exceeded the range. (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SNoForm" resname="DXConsts_SNoForm"> |
<source>"Form not found"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SSinceDirectX6" resname="DXConsts_SSinceDirectX6"> |
<source>"Requires DirectX 6.0 or later"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SSinceDirectX7" resname="DXConsts_SSinceDirectX7"> |
<source>"Requires DirectX 7.0 or later"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_S3DDeviceNotFound" resname="DXConsts_S3DDeviceNotFound"> |
<source>"3D device not found"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDisplayModeChange" resname="DXConsts_SDisplayModeChange"> |
<source>"Display mode cannot be changed (%dx%d %dbit)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDisplayModeCannotAcquired" resname="DXConsts_SDisplayModeCannotAcquired"> |
<source>"Display mode cannot be acquired"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleFormatError" resname="Vcl_Consts_SStyleFormatError"> |
<source>"Ungültiges Stilformat"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid style format"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleHookClassRegistered" resname="Vcl_Consts_SStyleHookClassRegistered"> |
<source>"Klasse '%s' ist für '%s' bereits registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Class '%s' is already registered for '%s'"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleHookClassNotRegistered" resname="Vcl_Consts_SStyleHookClassNotRegistered"> |
<source>"Klasse '%s' ist für '%s' nicht registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Class '%s' is not registered for '%s'"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleInvalidParameter" resname="Vcl_Consts_SStyleInvalidParameter"> |
<source>"Parameter %s darf nicht nil sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Parameter %s must not me nil"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleFeatureNotSupported" resname="Vcl_Consts_SStyleFeatureNotSupported"> |
<source>"Funktion wird von diesem Stil nicht unterstützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Function is not supported by this style"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleNotRegistered" resname="Vcl_Consts_SStyleNotRegistered"> |
<source>"Der Stil '%s' ist nicht registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The style '%s' is not registered"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleUnregisterError" resname="Vcl_Consts_SStyleUnregisterError"> |
<source>"Die Registrierung des Systemstils kann nicht aufgehoben werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The registry of the system style cannot be removed"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleNotRegisteredNoName" resname="Vcl_Consts_SStyleNotRegisteredNoName"> |
<source>"Stil nicht registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style not registered"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_sBeginInvokeNoHandle" resname="Vcl_Consts_sBeginInvokeNoHandle"> |
<source>"BeginInvoke kann nicht ohne übergeordnetes Element oder Fenster-Handle aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"BeginInvoke cannot be called without superior window or window handle"</target> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_SOleError" resname="System_Win_ComConst_SOleError"> |
<source>"OLE-Fehler %.8x"</source> |
<target>"OLE error %.8x"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_SNoMethod" resname="System_Win_ComConst_SNoMethod"> |
<source>"Die Methode '%s' wird vom Automatisierungsobjekt nicht unterstützt"</source> |
<target>"Method '%s' not supported by automation object"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_SVarNotObject" resname="System_Win_ComConst_SVarNotObject"> |
<source>"Variante referenziert kein Automatisierungsobjekt"</source> |
<target>"Variant does not reference an automation object"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_STooManyParams" resname="System_Win_ComConst_STooManyParams"> |
<source>"Dispatch-Methoden unterstützen maximal 64 Parameter."</source> |
<target>"Dispatch methods do not support more than 64 parameters"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_SDCOMNotInstalled" resname="System_Win_ComConst_SDCOMNotInstalled"> |
<source>"DCOM ist nicht installiert"</source> |
<target>"DCOM not installed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectDraw" resname="DXConsts_SDirectDraw"> |
<source>"DirectDraw"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectDrawClipper" resname="DXConsts_SDirectDrawClipper"> |
<source>"Clipper"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDomain" resname="Vcl_Consts_SDomain"> |
<source>"&Domäne"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"&Domain"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SLogin" resname="Vcl_Consts_SLogin"> |
<source>"Anmelden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Login"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SErrorSettingCount" resname="Vcl_Consts_SErrorSettingCount"> |
<source>"Fehler beim Setzen von %s.Count"</source> |
<target>"Error setting %s.Count"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SListBoxMustBeVirtual" resname="Vcl_Consts_SListBoxMustBeVirtual"> |
<source>"Stil des Listenfeldes (%s) muss virtuell sein, damit Count gesetzt werden kann"</source> |
<target>"Listbox (%s) style must be virtual in order to set Count"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_STrayIconRemoveError" resname="Vcl_Consts_STrayIconRemoveError"> |
<source>"Shell-Benachrichtigungssymbol kann nicht entfernt werden"</source> |
<target>"Cannot remove shell notification icon"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SWindowsVistaRequired" resname="Vcl_Consts_SWindowsVistaRequired"> |
<source>"Für %s ist Windows Vista oder höher erforderlich"</source> |
<target>"%s requires Windows Vista or later"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_STaskDlgButtonCaption" resname="Vcl_Consts_STaskDlgButtonCaption"> |
<source>"Button%d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">6</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_STaskDlgRadioButtonCaption" resname="Vcl_Consts_STaskDlgRadioButtonCaption"> |
<source>"RadioButton%d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">6</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidTaskDlgButtonCaption" resname="Vcl_Consts_SInvalidTaskDlgButtonCaption"> |
<source>"Caption darf nicht leer sein"</source> |
<target>"Caption cannot be empty"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleLoadError" resname="Vcl_Consts_SStyleLoadError"> |
<source>"Stil '%s' kann nicht geladen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style '%s' cannot be loaded"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleLoadErrors" resname="Vcl_Consts_SStyleLoadErrors"> |
<source>"Stile %s können nicht geladen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Styles %s cannot be loaded"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleRegisterError" resname="Vcl_Consts_SStyleRegisterError"> |
<source>"Stil '%s' bereits registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style '%s' is already registered"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleClassRegisterError" resname="Vcl_Consts_SStyleClassRegisterError"> |
<source>"Stilklasse '%s' bereits registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style class '%s' is already registered"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleNotFound" resname="Vcl_Consts_SStyleNotFound"> |
<source>"Stil '%s' nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style '%s' not found"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleClassNotFound" resname="Vcl_Consts_SStyleClassNotFound"> |
<source>"Stilklasse '%s' nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style class '%s' not found"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleInvalidHandle" resname="Vcl_Consts_SStyleInvalidHandle"> |
<source>"Ungültiges Stil-Handle"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid style handle"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInsertLineError" resname="Vcl_Consts_SInsertLineError"> |
<source>"Zeile kann nicht eingefügt werden"</source> |
<target>"Unable to insert a line"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SIconToClipboard" resname="Vcl_Consts_SIconToClipboard"> |
<source>"Zwischenablage unterstützt keine Symbole"</source> |
<target>"Clipboard does not support Icons"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCannotOpenClipboard" resname="Vcl_Consts_SCannotOpenClipboard"> |
<source>"Zwischenablage %s kann nicht geöffnet werden"</source> |
<target>"Cannot open clipboard: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidMemoSize" resname="Vcl_Consts_SInvalidMemoSize"> |
<source>"Text überschreitet Memo-Kapazität"</source> |
<target>"Text exceeds memo capacity"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidPrinterOp" resname="Vcl_Consts_SInvalidPrinterOp"> |
<source>"Operation auf ausgewähltem Drucker nicht verfügbar"</source> |
<target>"Operation not supported on selected printer"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoDefaultPrinter" resname="Vcl_Consts_SNoDefaultPrinter"> |
<source>"Aktuell ist kein Standarddrucker ausgewählt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Currently no default printer is selected"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDuplicateMenus" resname="Vcl_Consts_SDuplicateMenus"> |
<source>"Menü '%s' wird bereits von einem anderen Formular verwendet"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Menü '%s' is already used for a different form"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockedCtlNeedsName" resname="Vcl_Consts_SDockedCtlNeedsName"> |
<source>"Angedocktes Steuerelement muss einen Namen haben."</source> |
<target>"Docked control must have a name"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockTreeRemoveError" resname="Vcl_Consts_SDockTreeRemoveError"> |
<source>"Fehler beim Entfernen des Steuerelements aus der Andock-Hierarchie"</source> |
<target>"Error removing control from dock tree"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockZoneNotFound" resname="Vcl_Consts_SDockZoneNotFound"> |
<source>" - Andockzone nicht gefunden"</source> |
<target>" - Dock zone not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockZoneHasNoCtl" resname="Vcl_Consts_SDockZoneHasNoCtl"> |
<source>" - Andockzone enthält kein Steuerelement"</source> |
<target>" - Dock zone has no control"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockZoneVersionConflict" resname="Vcl_Consts_SDockZoneVersionConflict"> |
<source>"Fehler beim Laden der Andockzone aus dem Stream. Version %d erwartet, aber %d gefunden."</source> |
<target>"Error loading dock zone from the stream. Expecting version %d, but found %d."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPromptArrayTooShort" resname="Vcl_Consts_SPromptArrayTooShort"> |
<source>"Länge des Werte-Arrays muss >= der Länge des Prompt-Arrays sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Length of the value array must be >= length of the prompt array"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPromptArrayEmpty" resname="Vcl_Consts_SPromptArrayEmpty"> |
<source>"Prompt-Array darf nicht leer sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Prompt array must not be empty"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SUsername" resname="Vcl_Consts_SUsername"> |
<source>"&Benutzername"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"&Username"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPassword" resname="Vcl_Consts_SPassword"> |
<source>"&Passwort"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"&Password"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcSpace" resname="Vcl_Consts_SmkcSpace"> |
<source>"Leer"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Space"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcPgUp" resname="Vcl_Consts_SmkcPgUp"> |
<source>"BildAuf"</source> |
<target>"PgUp"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcPgDn" resname="Vcl_Consts_SmkcPgDn"> |
<source>"BildAb"</source> |
<target>"PgDn"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcEnd" resname="Vcl_Consts_SmkcEnd"> |
<source>"Ende"</source> |
<target>"End"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcHome" resname="Vcl_Consts_SmkcHome"> |
<source>"Pos1"</source> |
<target>"Home"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcLeft" resname="Vcl_Consts_SmkcLeft"> |
<source>"Links"</source> |
<target>"Left"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcUp" resname="Vcl_Consts_SmkcUp"> |
<source>"Auf"</source> |
<target>"Up"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcRight" resname="Vcl_Consts_SmkcRight"> |
<source>"Rechts"</source> |
<target>"Right"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcDown" resname="Vcl_Consts_SmkcDown"> |
<source>"Ab"</source> |
<target>"Down"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcIns" resname="Vcl_Consts_SmkcIns"> |
<source>"Einfg"</source> |
<target>"Ins"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcDel" resname="Vcl_Consts_SmkcDel"> |
<source>"Entf"</source> |
<target>"Del"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcShift" resname="Vcl_Consts_SmkcShift"> |
<source>"Umsch+"</source> |
<target>"Shift+"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcCtrl" resname="Vcl_Consts_SmkcCtrl"> |
<source>"Strg+"</source> |
<target>"Ctrl+"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcAlt" resname="Vcl_Consts_SmkcAlt"> |
<source>"Alt+"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SOutOfRange" resname="Vcl_Consts_SOutOfRange"> |
<source>"Wert muss zwischen %d und %d liegen"</source> |
<target>"Value must be between %d and %d"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_sAllFilter" resname="Vcl_Consts_sAllFilter"> |
<source>"Alle"</source> |
<target>"All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgYes" resname="Vcl_Consts_SMsgDlgYes"> |
<source>"&Ja"</source> |
<target>"&Yes"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgNo" resname="Vcl_Consts_SMsgDlgNo"> |
<source>"&Nein"</source> |
<target>"&No"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgOK" resname="Vcl_Consts_SMsgDlgOK"> |
<source>"OK"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgCancel" resname="Vcl_Consts_SMsgDlgCancel"> |
<source>"Abbrechen"</source> |
<target>"Cancel"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgHelp" resname="Vcl_Consts_SMsgDlgHelp"> |
<source>"&Hilfe"</source> |
<target>"&Help"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgAbort" resname="Vcl_Consts_SMsgDlgAbort"> |
<source>"&Abbrechen"</source> |
<target>"&Abort"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgRetry" resname="Vcl_Consts_SMsgDlgRetry"> |
<source>"&Wiederholen"</source> |
<target>"&Retry"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgIgnore" resname="Vcl_Consts_SMsgDlgIgnore"> |
<source>"&Ignorieren"</source> |
<target>"&Ignore"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgAll" resname="Vcl_Consts_SMsgDlgAll"> |
<source>"&Alle"</source> |
<target>"&All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgNoToAll" resname="Vcl_Consts_SMsgDlgNoToAll"> |
<source>"&Alle Nein"</source> |
<target>"N&o to All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgYesToAll" resname="Vcl_Consts_SMsgDlgYesToAll"> |
<source>"A&lle Ja"</source> |
<target>"Yes to &All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgClose" resname="Vcl_Consts_SMsgDlgClose"> |
<source>"S&chließen"</source> |
<target>"&Close"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcBkSp" resname="Vcl_Consts_SmkcBkSp"> |
<source>"Rück"</source> |
<target>"BkSp"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcTab" resname="Vcl_Consts_SmkcTab"> |
<source>"Tab"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcEsc" resname="Vcl_Consts_SmkcEsc"> |
<source>"Esc"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcEnter" resname="Vcl_Consts_SmkcEnter"> |
<source>"Eingabe"</source> |
<target>"Enter"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SHelpButton" resname="Vcl_Consts_SHelpButton"> |
<source>"&Hilfe"</source> |
<target>"&Help"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCloseButton" resname="Vcl_Consts_SCloseButton"> |
<source>"&Schließen"</source> |
<target>"&Close"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SIgnoreButton" resname="Vcl_Consts_SIgnoreButton"> |
<source>"&Ignorieren"</source> |
<target>"&Ignore"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SRetryButton" resname="Vcl_Consts_SRetryButton"> |
<source>"&Wiederholen"</source> |
<target>"&Retry"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SAbortButton" resname="Vcl_Consts_SAbortButton"> |
<source>"Abbrechen"</source> |
<target>"Cancel"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SAllButton" resname="Vcl_Consts_SAllButton"> |
<source>"&Alle"</source> |
<target>"&All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCannotDragForm" resname="Vcl_Consts_SCannotDragForm"> |
<source>"Formulare können nicht gezogen werden"</source> |
<target>"Cannot drag a form"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVMetafiles" resname="Vcl_Consts_SVMetafiles"> |
<source>"Metadateien"</source> |
<target>"Metafiles"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVEnhMetafiles" resname="Vcl_Consts_SVEnhMetafiles"> |
<source>"Erweiterte Metadateien"</source> |
<target>"Enhanced Metafiles"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVIcons" resname="Vcl_Consts_SVIcons"> |
<source>"Symbole"</source> |
<target>"Icons"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVBitmaps" resname="Vcl_Consts_SVBitmaps"> |
<source>"Bitmaps"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVTIFFImages" resname="Vcl_Consts_SVTIFFImages"> |
<source>"TIFF-Grafiken"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"TIFF graphics"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgWarning" resname="Vcl_Consts_SMsgDlgWarning"> |
<source>"Warnung"</source> |
<target>"Warning"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgError" resname="Vcl_Consts_SMsgDlgError"> |
<source>"Fehler"</source> |
<target>"Error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgInformation" resname="Vcl_Consts_SMsgDlgInformation"> |
<source>"Informationen"</source> |
<target>"Information"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgConfirm" resname="Vcl_Consts_SMsgDlgConfirm"> |
<source>"Bestätigen"</source> |
<target>"Confirm"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMenuNotFound" resname="Vcl_Consts_SMenuNotFound"> |
<source>"Untermenü ist nicht im Menü"</source> |
<target>"Sub-menu is not in menu"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoTimers" resname="Vcl_Consts_SNoTimers"> |
<source>"Nicht genügend Timer verfügbar"</source> |
<target>"Not enough timers available"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNotPrinting" resname="Vcl_Consts_SNotPrinting"> |
<source>"Der Drucker druckt aktuell nicht"</source> |
<target>"Printer is not currently printing"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPrinting" resname="Vcl_Consts_SPrinting"> |
<source>"Druckvorgang läuft"</source> |
<target>"Printing in progress"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPrinterIndexError" resname="Vcl_Consts_SPrinterIndexError"> |
<source>"Druckerindex außerhalb des zulässigen Bereichs"</source> |
<target>"Printer index out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidPrinter" resname="Vcl_Consts_SInvalidPrinter"> |
<source>"Ausgewählter Drucker ist ungültig"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Selected printer is invalid"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDeviceOnPort" resname="Vcl_Consts_SDeviceOnPort"> |
<source>"%s an %s"</source> |
<target>"%s on %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SGroupIndexTooLow" resname="Vcl_Consts_SGroupIndexTooLow"> |
<source>"GroupIndex darf nicht kleiner sein als der GroupIndex eines vorherigen Menüelements"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"GroupIndex must not be smaller than the GroupIndex of a previous menu item"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoMDIForm" resname="Vcl_Consts_SNoMDIForm"> |
<source>"Formular kann nicht erstellt werden. Aktuell sind keine MDI-Formulare aktiv"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Form cannot be created. Currently no MDI forms are active"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SImageCanvasNeedsBitmap" resname="Vcl_Consts_SImageCanvasNeedsBitmap"> |
<source>"Ein Bild kann nur geändert werden, wenn es ein Bitmap enthält"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"A picture can only be changed if it contains a bitmap"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SControlParentSetToSelf" resname="Vcl_Consts_SControlParentSetToSelf"> |
<source>"Steuerelement kann nicht sich selbst als Vorfahr haben"</source> |
<target>"A control cannot have itself as its parent"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SControlNonMainThreadUsage" resname="Vcl_Consts_SControlNonMainThreadUsage"> |
<source>"Steuerelement '%s' wird nicht für einen Haupt-Thread verwendet"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Control '%s' is not used for a main thread"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SOKButton" resname="Vcl_Consts_SOKButton"> |
<source>"OK"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCancelButton" resname="Vcl_Consts_SCancelButton"> |
<source>"Abbrechen"</source> |
<target>"Cancel"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SYesButton" resname="Vcl_Consts_SYesButton"> |
<source>"&Ja"</source> |
<target>"&Yes"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoButton" resname="Vcl_Consts_SNoButton"> |
<source>"&Nein"</source> |
<target>"&No"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SImageIndexError" resname="Vcl_Consts_SImageIndexError"> |
<source>"Ungültiger ImageList-Index"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid ImageList index"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SImageReadFail" resname="Vcl_Consts_SImageReadFail"> |
<source>"ImageList-Daten konnten nicht aus dem Stream gelesen werden"</source> |
<target>"Failed to read ImageList data from stream"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SImageWriteFail" resname="Vcl_Consts_SImageWriteFail"> |
<source>"ImageList-Daten konnten nicht in den Stream geschrieben werden"</source> |
<target>"Failed to write ImageList data to stream"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SWindowDCError" resname="Vcl_Consts_SWindowDCError"> |
<source>"Fehler beim Erstellen des Fenster-Gerätekontexts"</source> |
<target>"Error creating window device context"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SWindowClass" resname="Vcl_Consts_SWindowClass"> |
<source>"Fehler beim Erzeugen einer Fensterklasse"</source> |
<target>"Error creating window class"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCannotFocus" resname="Vcl_Consts_SCannotFocus"> |
<source>"Deaktiviertes oder unsichtbares Fenster kann den Fokus nicht erhalten"</source> |
<target>"Cannot focus a disabled or invisible window"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SParentRequired" resname="Vcl_Consts_SParentRequired"> |
<source>"Element '%s' hat kein übergeordnetes Fenster"</source> |
<target>"Control '%s' has no parent window"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SControlPath" resname="Vcl_Consts_SControlPath"> |
<source>". Pfad:\r\n%s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>". Path:\r\n%s"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SParentGivenNotAParent" resname="Vcl_Consts_SParentGivenNotAParent"> |
<source>"Das angegebene übergeordnete Element ist kein übergeordnetes Element von '%s'"</source> |
<target>"Parent given is not a parent of '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMDIChildNotVisible" resname="Vcl_Consts_SMDIChildNotVisible"> |
<source>"Untergeordnetes MDI-Formular kann nicht verborgen werden"</source> |
<target>"Cannot hide an MDI Child Form"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVisibleChanged" resname="Vcl_Consts_SVisibleChanged"> |
<source>"Eigenschaft Visible kann in OnShow oder OnHide nicht verändert werden"</source> |
<target>"Cannot change Visible in OnShow or OnHide"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCannotShowModal" resname="Vcl_Consts_SCannotShowModal"> |
<source>"Sichtbares Fenster kann nicht in modales geändert werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"A visible window cannot be converted to a modal window."</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SScrollBarRange" resname="Vcl_Consts_SScrollBarRange"> |
<source>"Eigenschaft Scrollbar außerhalb des zulässigen Bereichs"</source> |
<target>"Scrollbar property out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPropertyOutOfRange" resname="Vcl_Consts_SPropertyOutOfRange"> |
<source>"Eigenschaft %s außerhalb des zulässigen Bereichs"</source> |
<target>"%s property out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMenuIndexError" resname="Vcl_Consts_SMenuIndexError"> |
<source>"Menüindex außerhalb des zulässigen Bereichs"</source> |
<target>"Menu index out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMenuReinserted" resname="Vcl_Consts_SMenuReinserted"> |
<source>"Menü zweimal eingefügt"</source> |
<target>"Menu inserted twice"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidImage" resname="Vcl_Consts_SInvalidImage"> |
<source>"Ungültiges Bild"</source> |
<target>"Invalid image"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SScanLine" resname="Vcl_Consts_SScanLine"> |
<source>"Bereichsüberschreitung bei Zeilenindex"</source> |
<target>"Scan line index out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SChangeIconSize" resname="Vcl_Consts_SChangeIconSize"> |
<source>"Die Größe eines Symbols kann nicht geändert werden"</source> |
<target>"Cannot change the size of an icon"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SChangeWicSize" resname="Vcl_Consts_SChangeWicSize"> |
<source>"Die Größe einer WIC-Grafik kann nicht verändert werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The size of a WIC picture cannot be changed"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SOleGraphic" resname="Vcl_Consts_SOleGraphic"> |
<source>"Ungültige Operation für TOleGraphic"</source> |
<target>"Invalid operation on TOleGraphic"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SUnknownExtension" resname="Vcl_Consts_SUnknownExtension"> |
<source>"Unbekannte Bilddateierweiterung (.%s)"</source> |
<target>"Unknown picture file extension (.%s)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SUnknownClipboardFormat" resname="Vcl_Consts_SUnknownClipboardFormat"> |
<source>"Nicht unterstütztes Zwischenablagenformat"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Clipboard format not supported"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SUnknownStreamFormat" resname="Vcl_Consts_SUnknownStreamFormat"> |
<source>"Nicht unterstütztes Stream-Format"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Stream format not supported"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SOutOfResources" resname="Vcl_Consts_SOutOfResources"> |
<source>"Systemressourcen erschöpft"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"System resources are exhausted"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoCanvasHandle" resname="Vcl_Consts_SNoCanvasHandle"> |
<source>"Canvas erlaubt kein Zeichnen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Canvas does not allow characters"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidTextFormatFlag" resname="Vcl_Consts_SInvalidTextFormatFlag"> |
<source>"Das Textformat-Flag '%s' wird nicht unterstützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Text format flag '%s' is not supported"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidFrameIndex" resname="Vcl_Consts_SInvalidFrameIndex"> |
<source>"Ungültiger Bild-Frame-Index %d: es sind %d Frames vorhanden (0-%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid picture frame index %d: there are %d frames available (0-%d)"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidImageSize" resname="Vcl_Consts_SInvalidImageSize"> |
<source>"Ungültige Bildgröße"</source> |
<target>"Invalid image size"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidImageList" resname="Vcl_Consts_SInvalidImageList"> |
<source>"Ungültige Bilderliste"</source> |
<target>"Invalid ImageList"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SReplaceImage" resname="Vcl_Consts_SReplaceImage"> |
<source>"Bild kann nicht ersetzt werden"</source> |
<target>"Unable to Replace Image"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInsertImage" resname="Vcl_Consts_SInsertImage"> |
<source>"Bild kann nicht eingefügt werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Picture cannot be inserted"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWinRTInstanceError" resname="System_RTLConsts_SWinRTInstanceError"> |
<source>"Instanz der Klasse %s kann nicht erstellt werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Instance of class %s cannot be created"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverUnsupported" resname="System_RTLConsts_sObserverUnsupported"> |
<source>"Observer wird nicht unterstützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Observer is not supported"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverMultipleSingleCast" resname="System_RTLConsts_sObserverMultipleSingleCast"> |
<source>"Der Observer-Kollektion können nicht mehrere Einfach-Typumwandlungs-Observer hinzugefügt werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Multiple single cast observers cannot be added to observer collection"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverNoInterface" resname="System_RTLConsts_sObserverNoInterface"> |
<source>"Das Objekt implementiert das Observer-Interface nicht"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The object does not implement the observer interface"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverNoSinglecastFound" resname="System_RTLConsts_sObserverNoSinglecastFound"> |
<source>"Der Observer-Kollektion wurde kein Einfach-Typumwandlungs-Observer mit der ID %d hinzugefügt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No single cast observer with ID %d found in collection"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverNoMulticastFound" resname="System_RTLConsts_sObserverNoMulticastFound"> |
<source>"Der Observer-Kollektion wurde kein Mehrfach-Typumwandlungs-Observer mit der ID %d hinzugefügt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No multi cast observer with ID %d found in collection"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverNotAvailable" resname="System_RTLConsts_sObserverNotAvailable"> |
<source>"Observer ist nicht verfügbar"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Observer is not available"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidDateString" resname="System_RTLConsts_SInvalidDateString"> |
<source>"Ungültiger Datums-String: %s"</source> |
<target>"Invalid date string: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidTimeString" resname="System_RTLConsts_SInvalidTimeString"> |
<source>"Ungültiger Zeit-String: %s"</source> |
<target>"Invalid time string: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidOffsetString" resname="System_RTLConsts_SInvalidOffsetString"> |
<source>"Ungültiger Zeit-Offset-String: %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid time offset string: %s"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sMustWaitOnOneEvent" resname="System_RTLConsts_sMustWaitOnOneEvent"> |
<source>"Es muss auf mindestens ein Ereignis gewartet werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Waiting for at least one event"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sBeginInvokeDestroying" resname="System_RTLConsts_sBeginInvokeDestroying"> |
<source>"BeginInvoke kann bei der Freigabe für TComponent nicht aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"BeginInvoke cannot be called to free TComponent"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidBitmap" resname="Vcl_Consts_SInvalidBitmap"> |
<source>"Bitmap ist ungültig"</source> |
<target>"Bitmap image is not valid"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidIcon" resname="Vcl_Consts_SInvalidIcon"> |
<source>"Ungültiges Symbol"</source> |
<target>"Icon image is not valid"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidMetafile" resname="Vcl_Consts_SInvalidMetafile"> |
<source>"Metadatei ist ungültig"</source> |
<target>"Metafile is not valid"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidPixelFormat" resname="Vcl_Consts_SInvalidPixelFormat"> |
<source>"Ungültiges Pixel-Format"</source> |
<target>"Invalid pixel format"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2008" resname="System_RTLConsts_SWindowsServer2008"> |
<source>"Windows Server 2008"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows7" resname="System_RTLConsts_SWindows7"> |
<source>"Windows 7"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2008R2" resname="System_RTLConsts_SWindowsServer2008R2"> |
<source>"Windows Server 2008 R2"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows2000" resname="System_RTLConsts_SWindows2000"> |
<source>"Windows 2000"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsXP" resname="System_RTLConsts_SWindowsXP"> |
<source>"Windows XP"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2003" resname="System_RTLConsts_SWindowsServer2003"> |
<source>"Windows Server 2003"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2003R2" resname="System_RTLConsts_SWindowsServer2003R2"> |
<source>"Windows Server 2003 R2"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2012" resname="System_RTLConsts_SWindowsServer2012"> |
<source>"Windows Server 2012"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2012R2" resname="System_RTLConsts_SWindowsServer2012R2"> |
<source>"Windows Server 2012 R2"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2016" resname="System_RTLConsts_SWindowsServer2016"> |
<source>"Windows Server 2016"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2019" resname="System_RTLConsts_SWindowsServer2019"> |
<source>"Windows Server 2019"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2022" resname="System_RTLConsts_SWindowsServer2022"> |
<source>"Windows Server 2022"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows8" resname="System_RTLConsts_SWindows8"> |
<source>"Windows 8"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows8Point1" resname="System_RTLConsts_SWindows8Point1"> |
<source>"Windows 8.1"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows10" resname="System_RTLConsts_SWindows10"> |
<source>"Windows 10"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows11" resname="System_RTLConsts_SWindows11"> |
<source>"Windows 11"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SGenericItemNotFound" resname="System_RTLConsts_SGenericItemNotFound"> |
<source>"Eintrag nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Entry not found"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SGenericDuplicateItem" resname="System_RTLConsts_SGenericDuplicateItem"> |
<source>"Duplikate nicht zulässig"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Duplicates are not allowed"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInsufficientRtti" resname="System_RTLConsts_SInsufficientRtti"> |
<source>"Unzureichende RTTI zur Unterstützung dieser Operation verfügbar"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Not enough RTTI for this operation"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SParameterCountMismatch" resname="System_RTLConsts_SParameterCountMismatch"> |
<source>"Parameteranzahl stimmt nicht überein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Parameter count not matched"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNonPublicType" resname="System_RTLConsts_SNonPublicType"> |
<source>"Typ '%s' ist im interface-Abschnitt einer Unit nicht deklariert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Type '%s' is not declared in the interface-Abschnitt of a unit"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SByRefArgMismatch" resname="System_RTLConsts_SByRefArgMismatch"> |
<source>"VAR- und OUT-Argumente müssen exakt mit dem Parametertyp übereinstimmen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"VAR- and OUT-arguments must match the parameter type"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SPropIsReadOnly" resname="System_RTLConsts_SPropIsReadOnly"> |
<source>"Eigenschaft '%s' ist schreibgeschützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Property '%s' is write-protected"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SPropIsWriteOnly" resname="System_RTLConsts_SPropIsWriteOnly"> |
<source>"Eigenschaft '%s' kann nur geschrieben werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Property '%s' can only be written"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidRttiDestroy" resname="System_RTLConsts_SInvalidRttiDestroy"> |
<source>"RTTI-Objekte können nicht manuell vom Anwendungscode freigegeben werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"RTTI objects cannot be freed through source code"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SServiceNotFound" resname="System_RTLConsts_SServiceNotFound"> |
<source>"Angegebener Dienst für die Anmeldeinformationen nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Service for login information not found"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SVersionStr" resname="System_RTLConsts_SVersionStr"> |
<source>"%s (Version %d.%d, Build %d, %5:s)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SSPVersionStr" resname="System_RTLConsts_SSPVersionStr"> |
<source>"%s Service Pack %4:d (Version %1:d.%2:d, Build %3:d, %5:s)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SVersion32" resname="System_RTLConsts_SVersion32"> |
<source>"32-Bit-Edition"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"32 bit edition"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SVersion64" resname="System_RTLConsts_SVersion64"> |
<source>"64-Bit-Edition"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"64 bit edition"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows" resname="System_RTLConsts_SWindows"> |
<source>"Windows"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsVista" resname="System_RTLConsts_SWindowsVista"> |
<source>"Windows Vista"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sSpinCountOutOfRange" resname="System_RTLConsts_sSpinCountOutOfRange"> |
<source>"SpinCount außerhalb des Bereichs. Muss zwischen 0 und %d liegen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"SpinCount outside range. It must be between 0 and %d"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sTimespanTooLong" resname="System_RTLConsts_sTimespanTooLong"> |
<source>"TimeSpan zu lang"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"TimeSpan too long"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sInvalidTimespanDuration" resname="System_RTLConsts_sInvalidTimespanDuration"> |
<source>"Die Dauer kann nicht zurückgegeben werden, weil der absolute Wert den Wert von TTimeSpan.MaxValue überschreitet"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Duration cannot be returned because the absolute value exceeds TTimeSpan.MaxValue"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sTimespanValueCannotBeNan" resname="System_RTLConsts_sTimespanValueCannotBeNan"> |
<source>"Wert darf nicht NaN"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Wert must not be NaN"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sCannotNegateTimespan" resname="System_RTLConsts_sCannotNegateTimespan"> |
<source>"Negation des Minimalwertes einer Zeitspanne ist ungültig"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Negation of mimimum value of a time range is invalid"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sInvalidTimespanFormat" resname="System_RTLConsts_sInvalidTimespanFormat"> |
<source>"Ungültiges TimeSpan-Format"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid TimeSpan format"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sTimespanElementTooLong" resname="System_RTLConsts_sTimespanElementTooLong"> |
<source>"TimeSpan-Element zu lang"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334984722</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"TimeSpan element too long"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoContext" resname="System_RTLConsts_SNoContext"> |
<source>"Keine kontextsensitive Hilfe installiert"</source> |
<target>"No context-sensitive help installed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoContextFound" resname="System_RTLConsts_SNoContextFound"> |
<source>"Keine Hilfe für Kontext %d gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No help available for context %d"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoIndex" resname="System_RTLConsts_SNoIndex"> |
<source>"Index kann nicht geöffnet werden"</source> |
<target>"Unable to open Index"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoSearch" resname="System_RTLConsts_SNoSearch"> |
<source>"Suche kann nicht geöffnet werden"</source> |
<target>"Unable to open Search"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoTableOfContents" resname="System_RTLConsts_SNoTableOfContents"> |
<source>"Inhaltsverzeichnis nicht gefunden"</source> |
<target>"Unable to find a Table of Contents"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoTopics" resname="System_RTLConsts_SNoTopics"> |
<source>"Kein themenbezogenes Hilfesystem installiert"</source> |
<target>"No topic-based help system installed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNothingFound" resname="System_RTLConsts_SNothingFound"> |
<source>"Keine Hilfe für %s gefunden"</source> |
<target>"No help found for %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SArgumentOutOfRange" resname="System_RTLConsts_SArgumentOutOfRange"> |
<source>"Argument außerhalb des Bereichs"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Argument outside of valid range"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SArgumentNil" resname="System_RTLConsts_SArgumentNil"> |
<source>"Argument darf nicht nil sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Argument must not be Nil"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadExternalCheckTerminated" resname="System_RTLConsts_SThreadExternalCheckTerminated"> |
<source>"CheckTerminated kann nicht für einen extern erstellten Thread aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"CheckTerminated cannot be called for an external created thread"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadExternalSetReturnValue" resname="System_RTLConsts_SThreadExternalSetReturnValue"> |
<source>"SetReturnValue kann nicht für einen extern erstellten Thread aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"SetReturnValue cannot be called for an external created thread"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SParamIsNil" resname="System_RTLConsts_SParamIsNil"> |
<source>"Parameter %s darf nicht Nil sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Parameter %s must not be Nil"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SParamIsNegative" resname="System_RTLConsts_SParamIsNegative"> |
<source>"Parameter %s darf kein negativer Wert sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Parameter %s must not be negative"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInputBufferExceed" resname="System_RTLConsts_SInputBufferExceed"> |
<source>"Eingabepuffer für %s = %d, %s = %d überschritten"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Input buffer of %s = %d, %s = %d exceeded"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidCharsInPath" resname="System_RTLConsts_SInvalidCharsInPath"> |
<source>"Ungültige Zeichen im Pfad"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid character in file path"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidCharsInFileName" resname="System_RTLConsts_SInvalidCharsInFileName"> |
<source>"Ungültige Zeichen im Dateinamen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid character in file name"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SEmptyFileName" resname="System_RTLConsts_SEmptyFileName"> |
<source>"Dateiname ist leer"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Filename is empty"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SPathTooLong" resname="System_RTLConsts_SPathTooLong"> |
<source>"Der angegebene Pfad ist zu lang"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The path is too long"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDriveNotFound" resname="System_RTLConsts_SDriveNotFound"> |
<source>"Das Laufwerk wurde nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Drive not found"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_hNoFilterViewer" resname="System_RTLConsts_hNoFilterViewer"> |
<source>"Kein Hilfe-Viewer, der Filter unterstützt"</source> |
<target>"No help viewer that supports filters"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sArgumentInvalid" resname="System_RTLConsts_sArgumentInvalid"> |
<source>"Ungültiges Argument"</source> |
<target>"Invalid argument"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sInvalidStringAndObjectArrays" resname="System_RTLConsts_sInvalidStringAndObjectArrays"> |
<source>"Die Länge von String- und Objekt-Arrays muss gleich sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Length of string and object array must be equal"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sSameArrays" resname="System_RTLConsts_sSameArrays"> |
<source>"Quell- und Ziel-Arrays dürfen nicht gleich sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Source and target arrays must be different"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sNoConstruct" resname="System_RTLConsts_sNoConstruct"> |
<source>"Klasse %s soll nicht erzeugt werden"</source> |
<target>"Class %s is not intended to be constructed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sInvalidTimeoutValue" resname="System_RTLConsts_sInvalidTimeoutValue"> |
<source>"Ungültiger Wert für Zeitüberschreitung: %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid value for timeout: %s"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SReadError" resname="System_RTLConsts_SReadError"> |
<source>"Stream-Lesefehler"</source> |
<target>"Stream read error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SReadOnlyProperty" resname="System_RTLConsts_SReadOnlyProperty"> |
<source>"Eigenschaft kann nur gelesen werden"</source> |
<target>"Property is read-only"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SRegCreateFailed" resname="System_RTLConsts_SRegCreateFailed"> |
<source>"Erzeugung von Schlüssel %s misslungen"</source> |
<target>"Failed to create key %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SRegGetDataFailed" resname="System_RTLConsts_SRegGetDataFailed"> |
<source>"Fehler beim Holen der Daten für '%s'"</source> |
<target>"Failed to get data for '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SRegSetDataFailed" resname="System_RTLConsts_SRegSetDataFailed"> |
<source>"Fehler beim Setzen der Daten für '%s'"</source> |
<target>"Failed to set data for '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SResNotFound" resname="System_RTLConsts_SResNotFound"> |
<source>"Ressource %s nicht gefunden"</source> |
<target>"Resource %s not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SSeekNotImplemented" resname="System_RTLConsts_SSeekNotImplemented"> |
<source>"%s.Seek nicht implementiert"</source> |
<target>"%s.Seek not implemented"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SSortedListError" resname="System_RTLConsts_SSortedListError"> |
<source>"Operation für sortierte Listen nicht zulässig"</source> |
<target>"Operation not allowed on sorted list"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SUnknownGroup" resname="System_RTLConsts_SUnknownGroup"> |
<source>"%s befindet sich nicht in einer Gruppe für Klassenregistrierungen"</source> |
<target>"%s not in a class registration group"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SUnknownProperty" resname="System_RTLConsts_SUnknownProperty"> |
<source>"Eigenschaft %s existiert nicht"</source> |
<target>"Property %s does not exist"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWriteError" resname="System_RTLConsts_SWriteError"> |
<source>"Stream-Schreibfehler"</source> |
<target>"Stream write error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadCreateError" resname="System_RTLConsts_SThreadCreateError"> |
<source>"Fehler beim Erzeugen des Thread: %s"</source> |
<target>"Thread creation error: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadError" resname="System_RTLConsts_SThreadError"> |
<source>"Thread-Fehler: %s (%d)"</source> |
<target>"Thread Error: %s (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadExternalTerminate" resname="System_RTLConsts_SThreadExternalTerminate"> |
<source>"Ein extern erstellter Thread kann nicht beendet werden"</source> |
<target>"Cannot terminate an externally created thread"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadExternalWait" resname="System_RTLConsts_SThreadExternalWait"> |
<source>"Auf einen extern erstellten Thread kann nicht gewartet werden"</source> |
<target>"Cannot wait for an externally created thread"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadStartError" resname="System_RTLConsts_SThreadStartError"> |
<source>"Start kann für einen laufenden oder unterbrochenen Thread nicht aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Start cannot be called for a started or paused thread"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SFCreateErrorEx" resname="System_RTLConsts_SFCreateErrorEx"> |
<source>"Datei \"%s\" kann nicht erstellt werden. %s"</source> |
<target>"Cannot create file \"%s\". %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SFOpenErrorEx" resname="System_RTLConsts_SFOpenErrorEx"> |
<source>"Datei %s kann nicht geöffnet werden. %s"</source> |
<target>"Cannot open file \"%s\". %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidImage" resname="System_RTLConsts_SInvalidImage"> |
<source>"Ungültiges Stream-Format"</source> |
<target>"Invalid stream format"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidName" resname="System_RTLConsts_SInvalidName"> |
<source>"''%s'' ist kein gültiger Komponentenname"</source> |
<target>"''%s'' is not a valid component name"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidProperty" resname="System_RTLConsts_SInvalidProperty"> |
<source>"Ungültiger Eigenschaftswert"</source> |
<target>"Invalid property value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidPropertyPath" resname="System_RTLConsts_SInvalidPropertyPath"> |
<source>"Ungültiger Pfad für Eigenschaft"</source> |
<target>"Invalid property path"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidPropertyValue" resname="System_RTLConsts_SInvalidPropertyValue"> |
<source>"Ungültiger Eigenschaftswert"</source> |
<target>"Invalid property value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidRegType" resname="System_RTLConsts_SInvalidRegType"> |
<source>"Ungültiger Datentyp für '%s'"</source> |
<target>"Invalid data type for '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListCapacityError" resname="System_RTLConsts_SListCapacityError"> |
<source>"Kapazität der Liste ist erschöpft (%d)"</source> |
<target>"List capacity out of bounds (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListCountError" resname="System_RTLConsts_SListCountError"> |
<source>"Zu viele Einträge in der Liste (%d)"</source> |
<target>"List count out of bounds (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListIndexError" resname="System_RTLConsts_SListIndexError"> |
<source>"Listenindex außerhalb des gültigen Bereichs (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Index outside valid range (%d)"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListIndexErrorRangeReason" resname="System_RTLConsts_SListIndexErrorRangeReason"> |
<source>". %s-Bereich ist 0..%d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>". %s range is 0..%d"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListIndexErrorEmptyReason" resname="System_RTLConsts_SListIndexErrorEmptyReason"> |
<source>". %s ist leer"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>". %s is empty"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SMemoryStreamError" resname="System_RTLConsts_SMemoryStreamError"> |
<source>"Expandieren des Speicher-Stream wegen Speichermangel nicht möglich"</source> |
<target>"Out of memory while expanding memory stream"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoComSupport" resname="System_RTLConsts_SNoComSupport"> |
<source>"%s wurde nicht als COM-Klasse registriert"</source> |
<target>"%s has not been registered as a COM class"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SPropertyException" resname="System_RTLConsts_SPropertyException"> |
<source>"Fehler beim Lesen von %s%s%s: %s"</source> |
<target>"Error reading %s%s%s: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidCharCount" resname="System_SysConst_SInvalidCharCount"> |
<source>"Ungültige Anzahl (%d)"</source> |
<target>"Invalid count (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidDestinationIndex" resname="System_SysConst_SInvalidDestinationIndex"> |
<source>"Ungültiger Zielindex (%d)"</source> |
<target>"Invalid destination index (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidCodePage" resname="System_SysConst_SInvalidCodePage"> |
<source>"Ungültige Codeseite"</source> |
<target>"Invalid code page"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidEncodingName" resname="System_SysConst_SInvalidEncodingName"> |
<source>"Ungültiger Codierungsname"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid coding name"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SNoMappingForUnicodeCharacter" resname="System_SysConst_SNoMappingForUnicodeCharacter"> |
<source>"Keine Zuordnung für Unicode-Zeichen in der Multibyte-Zielcodeseite vorhanden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No mapping for Unicode character in the target Multibyte code page found"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidStringBaseIndex" resname="System_SysConst_SInvalidStringBaseIndex"> |
<source>"Ungültiger StringBaseIndex"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid StringBaseIndex"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SAncestorNotFound" resname="System_RTLConsts_SAncestorNotFound"> |
<source>"Vorfahr für '%s' nicht gefunden"</source> |
<target>"Ancestor for '%s' not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SAssignError" resname="System_RTLConsts_SAssignError"> |
<source>"%s kann nicht zu %s zugewiesen werden"</source> |
<target>"Cannot assign a %s to a %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SBitsIndexError" resname="System_RTLConsts_SBitsIndexError"> |
<source>"Bits-Index außerhalb des zulässigen Bereichs"</source> |
<target>"Bits index out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SCantWriteResourceStreamError" resname="System_RTLConsts_SCantWriteResourceStreamError"> |
<source>"In einen zum Lesen geöffneten Ressourcen-Stream kann nicht geschrieben werden"</source> |
<target>"Can't write to a read-only resource stream"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SCheckSynchronizeError" resname="System_RTLConsts_SCheckSynchronizeError"> |
<source>"CheckSynchronize wurde vom Thread $%x aufgerufen, der NICHT der Haupt-Thread ist."</source> |
<target>"CheckSynchronize called from thread $%x, which is NOT the main thread"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SClassNotFound" resname="System_RTLConsts_SClassNotFound"> |
<source>"Klasse %s nicht gefunden"</source> |
<target>"Class %s not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDuplicateClass" resname="System_RTLConsts_SDuplicateClass"> |
<source>"Klasse mit der Bezeichnung %s existiert bereits"</source> |
<target>"A class named %s already exists"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDuplicateItem" resname="System_RTLConsts_SDuplicateItem"> |
<source>"Liste gestattet keine doppelten Einträge ($0%x)"</source> |
<target>"List does not allow duplicates ($0%x)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDuplicateName" resname="System_RTLConsts_SDuplicateName"> |
<source>"Komponente mit der Bezeichnung %s existiert bereits"</source> |
<target>"A component named %s already exists"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDuplicateString" resname="System_RTLConsts_SDuplicateString"> |
<source>"In der String-Liste sind Duplikate nicht zulässig"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Duplicates are not allowed in a StringList"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameWed" resname="System_SysConst_SShortDayNameWed"> |
<source>"Mi"</source> |
<target>"Wed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameThu" resname="System_SysConst_SShortDayNameThu"> |
<source>"Do"</source> |
<target>"Thu"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameFri" resname="System_SysConst_SShortDayNameFri"> |
<source>"Fr"</source> |
<target>"Fri"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameSat" resname="System_SysConst_SShortDayNameSat"> |
<source>"Sa"</source> |
<target>"Sat"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameSun" resname="System_SysConst_SLongDayNameSun"> |
<source>"Sonntag"</source> |
<target>"Sunday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameMon" resname="System_SysConst_SLongDayNameMon"> |
<source>"Montag"</source> |
<target>"Monday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameTue" resname="System_SysConst_SLongDayNameTue"> |
<source>"Dienstag"</source> |
<target>"Tuesday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameWed" resname="System_SysConst_SLongDayNameWed"> |
<source>"Mittwoch"</source> |
<target>"Wednesday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameThu" resname="System_SysConst_SLongDayNameThu"> |
<source>"Donnerstag"</source> |
<target>"Thursday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameFri" resname="System_SysConst_SLongDayNameFri"> |
<source>"Freitag"</source> |
<target>"Friday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameSat" resname="System_SysConst_SLongDayNameSat"> |
<source>"Samstag"</source> |
<target>"Saturday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SCannotCreateDir" resname="System_SysConst_SCannotCreateDir"> |
<source>"Verzeichnis kann nicht erstellt werden"</source> |
<target>"Unable to create directory"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidSourceArray" resname="System_SysConst_SInvalidSourceArray"> |
<source>"Ungültiges Quell-Array"</source> |
<target>"Invalid source array"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidDestinationArray" resname="System_SysConst_SInvalidDestinationArray"> |
<source>"Ungültiges Ziel-Array"</source> |
<target>"Invalid destination array"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SCharIndexOutOfBounds" resname="System_SysConst_SCharIndexOutOfBounds"> |
<source>"Zeichenindex außerhalb des gültigen Bereichs (%d)"</source> |
<target>"Character index out of bounds (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SByteIndexOutOfBounds" resname="System_SysConst_SByteIndexOutOfBounds"> |
<source>"Startindex außerhalb des gültigen Bereichs (%d)"</source> |
<target>"Start index out of bounds (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameDec" resname="System_SysConst_SShortMonthNameDec"> |
<source>"Dez"</source> |
<target>"Dec"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameJan" resname="System_SysConst_SLongMonthNameJan"> |
<source>"Januar"</source> |
<target>"January"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameFeb" resname="System_SysConst_SLongMonthNameFeb"> |
<source>"Februar"</source> |
<target>"February"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameMar" resname="System_SysConst_SLongMonthNameMar"> |
<source>"März"</source> |
<target>"March"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameApr" resname="System_SysConst_SLongMonthNameApr"> |
<source>"April"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameMay" resname="System_SysConst_SLongMonthNameMay"> |
<source>"Mai"</source> |
<target>"May"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameJun" resname="System_SysConst_SLongMonthNameJun"> |
<source>"Juni"</source> |
<target>"June"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameJul" resname="System_SysConst_SLongMonthNameJul"> |
<source>"Juli"</source> |
<target>"July"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameAug" resname="System_SysConst_SLongMonthNameAug"> |
<source>"August"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameSep" resname="System_SysConst_SLongMonthNameSep"> |
<source>"September"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameOct" resname="System_SysConst_SLongMonthNameOct"> |
<source>"Oktober"</source> |
<target>"October"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameNov" resname="System_SysConst_SLongMonthNameNov"> |
<source>"November"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameDec" resname="System_SysConst_SLongMonthNameDec"> |
<source>"Dezember"</source> |
<target>"December"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameSun" resname="System_SysConst_SShortDayNameSun"> |
<source>"So"</source> |
<target>"Sun"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameMon" resname="System_SysConst_SShortDayNameMon"> |
<source>"Mo"</source> |
<target>"Mon"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameTue" resname="System_SysConst_SShortDayNameTue"> |
<source>"Di"</source> |
<target>"Tue"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAssertError" resname="System_SysConst_SAssertError"> |
<source>"%s (%s, Zeile %d)"</source> |
<target>"%s (%s, line %d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAbstractError" resname="System_SysConst_SAbstractError"> |
<source>"Abstrakter Fehler"</source> |
<target>"Abstract Error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SModuleAccessViolation" resname="System_SysConst_SModuleAccessViolation"> |
<source>"Zugriffsverletzung bei Adresse %p in Modul '%s'. %s von Adresse %p"</source> |
<target>"Access violation at address %p in module '%s'. %s of address %p"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SOSError" resname="System_SysConst_SOSError"> |
<source>"Systemfehler. Code: %d.\r\n%s%s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"System error. Code: %d.\r\n%s%s"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SUnkOSError" resname="System_SysConst_SUnkOSError"> |
<source>"Ein Aufruf einer Betriebssystemfunktion ist fehlgeschlagen"</source> |
<target>"A call to an OS function failed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameJan" resname="System_SysConst_SShortMonthNameJan"> |
<source>"Jan"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameFeb" resname="System_SysConst_SShortMonthNameFeb"> |
<source>"Feb"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameMar" resname="System_SysConst_SShortMonthNameMar"> |
<source>"Mär"</source> |
<target>"Mar"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameApr" resname="System_SysConst_SShortMonthNameApr"> |
<source>"Apr"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameMay" resname="System_SysConst_SShortMonthNameMay"> |
<source>"Mai"</source> |
<target>"May"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameJun" resname="System_SysConst_SShortMonthNameJun"> |
<source>"Jun"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334987037</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameJul" resname="System_SysConst_SShortMonthNameJul"> |
<source>"Jul"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameAug" resname="System_SysConst_SShortMonthNameAug"> |
<source>"Aug"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameSep" resname="System_SysConst_SShortMonthNameSep"> |
<source>"Sep"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameOct" resname="System_SysConst_SShortMonthNameOct"> |
<source>"Okt"</source> |
<target>"Oct"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameNov" resname="System_SysConst_SShortMonthNameNov"> |
<source>"Nov"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeTooManyCustom" resname="System_SysConst_SVarTypeTooManyCustom"> |
<source>"Es wurden zu viele benutzerdefinierte Variant-Typen registriert"</source> |
<target>"Too many custom variant types have been registered"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeCouldNotConvert" resname="System_SysConst_SVarTypeCouldNotConvert"> |
<source>"Variante des Typs (%s) konnte nicht in Typ (%s) konvertiert werden"</source> |
<target>"Could not convert variant of type (%s) into type (%s)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeConvertOverflow" resname="System_SysConst_SVarTypeConvertOverflow"> |
<source>"Überlauf bei der Konvertierung einer Variante vom Typ (%s) in Typ (%s)"</source> |
<target>"Overflow while converting variant of type (%s) into type (%s)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarOverflow" resname="System_SysConst_SVarOverflow"> |
<source>"Variant-Überlauf"</source> |
<target>"Variant overflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarInvalid" resname="System_SysConst_SVarInvalid"> |
<source>"Ungültiges Argument"</source> |
<target>"Invalid argument"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarBadType" resname="System_SysConst_SVarBadType"> |
<source>"Ungültiger Variant-Typ"</source> |
<target>"Invalid variant type"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarNotImplemented" resname="System_SysConst_SVarNotImplemented"> |
<source>"Operation nicht unterstützt"</source> |
<target>"Operation not supported"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarUnexpected" resname="System_SysConst_SVarUnexpected"> |
<source>"Unerwarteter Variant-Fehler"</source> |
<target>"Unexpected variant error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SExternalException" resname="System_SysConst_SExternalException"> |
<source>"Externe Exception %x"</source> |
<target>"External exception %x"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAssertionFailed" resname="System_SysConst_SAssertionFailed"> |
<source>"Auswertung von assert fehlgeschlagen"</source> |
<target>"Assertion failed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SIntfCastError" resname="System_SysConst_SIntfCastError"> |
<source>"Interface nicht unterstützt"</source> |
<target>"Interface not supported"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SSafecallException" resname="System_SysConst_SSafecallException"> |
<source>"Exception in safecall-Methode"</source> |
<target>"Exception in safecall method"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SMonitorLockException" resname="System_SysConst_SMonitorLockException"> |
<source>"Kein Eigentümer der Objektsperre"</source> |
<target>"Object lock not owned"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SNoMonitorSupportException" resname="System_SysConst_SNoMonitorSupportException"> |
<source>"Unterstützungsfunktion für Monitor nicht initialisiert"</source> |
<target>"Monitor support function not initialized"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SNotImplemented" resname="System_SysConst_SNotImplemented"> |
<source>"Feature nicht implementiert"</source> |
<target>"Feature not implemented"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SObjectDisposed" resname="System_SysConst_SObjectDisposed"> |
<source>"Methode für freigegebenes Objekt aufgerufen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Method called for freed object"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SArgumentMissing" resname="System_SysConst_SArgumentMissing"> |
<source>"Kein Argument für Format '%s'"</source> |
<target>"No argument for format '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SDispatchError" resname="System_SysConst_SDispatchError"> |
<source>"Variant-Methodenaufruf nicht unterstützt"</source> |
<target>"Variant method calls not supported"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SReadAccess" resname="System_SysConst_SReadAccess"> |
<source>"Lesen"</source> |
<target>"Read"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SWriteAccess" resname="System_SysConst_SWriteAccess"> |
<source>"Schreiben"</source> |
<target>"Write"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SExecuteAccess" resname="System_SysConst_SExecuteAccess"> |
<source>"Ausführung"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Execute"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidAccess" resname="System_SysConst_SInvalidAccess"> |
<source>"Ungültiger Zugriff"</source> |
<target>"Invalid access"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarArrayCreate" resname="System_SysConst_SVarArrayCreate"> |
<source>"Fehler beim Erzeugen von Variante oder sicherem Array"</source> |
<target>"Error creating variant or safe array"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarArrayBounds" resname="System_SysConst_SVarArrayBounds"> |
<source>"Variante oder sicheres Array-Index außerhalb des gültigen Bereichs"</source> |
<target>"Variant or safe array index out of bounds"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarArrayLocked" resname="System_SysConst_SVarArrayLocked"> |
<source>"Variante oder sicheres Array ist gesperrt"</source> |
<target>"Variant or safe array is locked"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidVarCast" resname="System_SysConst_SInvalidVarCast"> |
<source>"Ungültige Varianten-Typumwandlung"</source> |
<target>"Invalid variant type conversion"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidVarOp" resname="System_SysConst_SInvalidVarOp"> |
<source>"Ungültige Variantenoperation"</source> |
<target>"Invalid variant operation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidVarNullOp" resname="System_SysConst_SInvalidVarNullOp"> |
<source>"Ungültige NULL-Variantenoperation"</source> |
<target>"Invalid NULL variant operation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidVarOpWithHResultWithPrefix" resname="System_SysConst_SInvalidVarOpWithHResultWithPrefix"> |
<source>"Ungültige Variantenoperation (%s%.8x)\n%s"</source> |
<target>"Invalid variant operation (%s%.8x)\r\n%s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeOutOfRangeWithPrefix" resname="System_SysConst_SVarTypeOutOfRangeWithPrefix"> |
<source>"Benutzerdefinierter Variant-Typ (%s%.4x) außerhalb des gültigen Bereichs"</source> |
<target>"Custom variant type (%s%.4x) is out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeAlreadyUsedWithPrefix" resname="System_SysConst_SVarTypeAlreadyUsedWithPrefix"> |
<source>"Benutzerdefinierter Variant-Typ (%s%.4x) bereits benutzt von %s"</source> |
<target>"Custom variant type (%s%.4x) already used by %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeNotUsableWithPrefix" resname="System_SysConst_SVarTypeNotUsableWithPrefix"> |
<source>"Benutzerdefinierter Variant-Typ (%s%.4x) nicht brauchbar"</source> |
<target>"Custom variant type (%s%.4x) is not usable"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SRangeError" resname="System_SysConst_SRangeError"> |
<source>"Fehler bei Bereichsprüfung"</source> |
<target>"Range check error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SIntOverflow" resname="System_SysConst_SIntOverflow"> |
<source>"Integerüberlauf"</source> |
<target>"Integer overflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidOp" resname="System_SysConst_SInvalidOp"> |
<source>"Ungültige Gleitkommaoperation"</source> |
<target>"Invalid floating point operation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SZeroDivide" resname="System_SysConst_SZeroDivide"> |
<source>"Gleitkommadivision durch Null"</source> |
<target>"Floating point division by zero"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SOverflow" resname="System_SysConst_SOverflow"> |
<source>"Gleitkommaüberlauf"</source> |
<target>"Floating point overflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SUnderflow" resname="System_SysConst_SUnderflow"> |
<source>"Gleitkommaunterlauf"</source> |
<target>"Floating point underflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidPointer" resname="System_SysConst_SInvalidPointer"> |
<source>"Ungültige Zeigeroperation"</source> |
<target>"Invalid pointer operation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidCast" resname="System_SysConst_SInvalidCast"> |
<source>"Ungültige Typumwandlung"</source> |
<target>"Invalid class typecast"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAccessViolationArg3" resname="System_SysConst_SAccessViolationArg3"> |
<source>"Zugriffsverletzung bei Adresse %p. %s von Adresse %p"</source> |
<target>"Access violation at address %p. %s of address %p"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAccessViolationNoArg" resname="System_SysConst_SAccessViolationNoArg"> |
<source>"Zugriffsverletzung"</source> |
<target>"Access violation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SStackOverflow" resname="System_SysConst_SStackOverflow"> |
<source>"Stack-Überlauf"</source> |
<target>"Stack overflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SControlC" resname="System_SysConst_SControlC"> |
<source>"Strg+C gedrückt"</source> |
<target>"Control-C hit"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SPrivilege" resname="System_SysConst_SPrivilege"> |
<source>"Privilegierte Anweisung"</source> |
<target>"Privileged instruction"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SException" resname="System_SysConst_SException"> |
<source>"Exception %s in Modul %s bei %p.\r\n%s%s\r\n"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Exception %s in module %s at %p.\r\n%s%s\r\n"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SExceptTitle" resname="System_SysConst_SExceptTitle"> |
<source>"Anwendungsfehler"</source> |
<target>"Application Error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidFormat" resname="System_SysConst_SInvalidFormat"> |
<source>"Format '%s' ungültig oder nicht kompatibel mit Argument"</source> |
<target>"Format '%s' invalid or incompatible with argument"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SUnknown" resname="System_SysConst_SUnknown"> |
<source>"<unbekannt>"</source> |
<target>"<unknown>"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidInteger" resname="System_SysConst_SInvalidInteger"> |
<source>"'%s' ist kein gültiger Integerwert"</source> |
<target>"'%s' is not a valid integer value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidTimeStamp" resname="System_SysConst_SInvalidTimeStamp"> |
<source>"'%d.%d' ist kein gültiger Zeitstempel"</source> |
<target>"'%d.%d' is not a valid timestamp"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidGUID" resname="System_SysConst_SInvalidGUID"> |
<source>"'%s' kein gültiger Wert für GUID"</source> |
<target>"'%s' is not a valid GUID value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_STimeEncodeError" resname="System_SysConst_STimeEncodeError"> |
<source>"Ungültiges Argument zum Codieren der Uhrzeit"</source> |
<target>"Invalid argument to time encode"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SDateEncodeError" resname="System_SysConst_SDateEncodeError"> |
<source>"Ungültiges Argument zum Codieren des Datums"</source> |
<target>"Invalid argument to date encode"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SOutOfMemory" resname="System_SysConst_SOutOfMemory"> |
<source>"Zu wenig Arbeitsspeicher"</source> |
<target>"Out of memory"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInOutError" resname="System_SysConst_SInOutError"> |
<source>"E/A-Fehler %d"</source> |
<target>"I/O error %d"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SFileNotFound" resname="System_SysConst_SFileNotFound"> |
<source>"Datei nicht gefunden"</source> |
<target>"File not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidUnknownFilename" resname="System_SysConst_SInvalidUnknownFilename"> |
<source>"Ungültiger Dateiname"</source> |
<target>"Invalid filename"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_STooManyOpenFiles" resname="System_SysConst_STooManyOpenFiles"> |
<source>"Zu viele geöffnete Dateien"</source> |
<target>"Too many open files"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAccessDenied" resname="System_SysConst_SAccessDenied"> |
<source>"Dateizugriff verweigert"</source> |
<target>"File access denied"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SEndOfFile" resname="System_SysConst_SEndOfFile"> |
<source>"Versuch hinter dem Dateiende zu lesen"</source> |
<target>"Read beyond end of file"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SDiskFull" resname="System_SysConst_SDiskFull"> |
<source>"Zu wenig Speicherplatz"</source> |
<target>"Disk full"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidInput" resname="System_SysConst_SInvalidInput"> |
<source>"Ungültige numerische Eingabe"</source> |
<target>"Invalid numeric input"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SDivByZero" resname="System_SysConst_SDivByZero"> |
<source>"Division durch Null"</source> |
<target>"Division by zero"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334988194</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/LevEdit_ENU.bdsproj |
---|
0,0 → 1,42 |
<?xml version="1.0" encoding="utf-8"?> |
<BorlandProject> |
<PersonalityInfo> |
<Option> |
<Option Name="Personality">W32ResourceDLL.Personality</Option> |
<Option Name="ProjectType">ResourceDLL</Option> |
<Option Name="Version">1.0</Option> |
<Option Name="GUID">{B04A6309-AA15-4241-9786-4590C5C6B408}</Option> |
</Option> |
</PersonalityInfo> |
<W32ResourceDLL.Personality> |
<Source> |
<Source Name="MainSource">LevEdit.dpr</Source> |
</Source> |
<Options> |
<Options Name="BaseLang">1031</Options> |
<Options Name="TargetName">..\LevEdit.ENU</Options> |
<Options Name="BRCC_IncludePath"></Options> |
<Options Name="Company"></Options> |
<Options Name="Configuration"></Options> |
<Options Name="Copyright"></Options> |
<Options Name="Description"></Options> |
<Options Name="Trademark"></Options> |
<Options Name="Product"></Options> |
<Options Name="ProductVersion"></Options> |
<Options Name="Title"></Options> |
<Options Name="FileVersion"></Options> |
<Options Name="Evidence"></Options> |
<Options Name="KeyFile"></Options> |
<Options Name="KeyName"></Options> |
</Options> |
<FileList> |
<File FileName="ComHilfe.dfm" ContainerId="W32Form" ModuleName="ComHilfe.dfm"/> |
<File FileName="ComInfo.dfm" ContainerId="W32Form" ModuleName="ComInfo.dfm"/> |
<File FileName="LevMain.dfm" ContainerId="W32Form" ModuleName="LevMain.dfm"/> |
<File FileName="LevOptions.dfm" ContainerId="W32Form" ModuleName="LevOptions.dfm"/> |
<File FileName="LevSpeicherung.dfm" ContainerId="W32Form" ModuleName="LevSpeicherung.dfm"/> |
<File FileName="LevSplash.dfm" ContainerId="W32Form" ModuleName="LevSplash.dfm"/> |
<File FileName="LevEdit_DRC.rc" ContainerId="W32RC" ModuleName="LevEdit_DRC.rc"/> |
</FileList> |
</W32ResourceDLL.Personality> |
</BorlandProject> |
/ENU/LevSplash.dfm |
---|
0,0 → 1,7636 |
object SplashForm: TSplashForm |
Left = 241 |
Top = 158 |
BorderIcons = [] |
BorderStyle = bsNone |
Caption = 'Please wait...' |
ClientHeight = 373 |
ClientWidth = 515 |
Color = clBlack |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poScreenCenter |
TextHeight = 13 |
object SplashImage: TImage |
Left = 0 |
Top = 0 |
Width = 515 |
Height = 373 |
AutoSize = True |
Picture.Data = { |
0954506E67496D61676589504E470D0A1A0A0000000D49484452000002030000 |
01750802000000FA2A7E410000000970485973000004BB000004BB016E1F0EAE |
0000000467414D410000B18E7CFB51930000FFFF4944415478DAACBD09BC1C65 |
95367EAABAAAABF7BEB7EF9E3D842501059771FD3B8BCBA8333AA38E280E2202 |
82826C02814058022191254008B223A08220A39F333AE8B88C8EE8F867107101 |
04C2928424775F7BEFAEEEAAFA9EBE0F7D2CEE4DEE2738FDD3D0B7FAAD7739EF |
79CF7ECE6B1886212FFF0441C02FA954AA542A45A351DFF7F170D5AA55CF3EFB |
6C5757D7CCCC4C7F7FFFF8F8B8EBBA78DD34CD60F6C3EFDAA165599148043DD8 |
B6DDD3D333343474E8A1873EF5D453F829DC122FB27FB6AFD7EB788857D0A0D1 |
68A00D2650AD56F1B0B3B3339FCFA371269329140A68DF6C36D12C168BA1017A |
E8E8E8C0DCF024994C562A15CFF3B8043EE7CC39167A8BCD7EF064DBB66D175D |
741146C42BB55A0D0FD7AF5F7FC30D3760089DA12E902F62218F3DF618FAC758 |
E8906BC1ACA6A7A7B93AB6C777AC08FFA2653A9D2E168B0A55B459B264C99E3D |
7BB00AFC8AE7E8842DF99DAFEB5EF0213E5832FB673FE81FF3C1CCBBBBBBB123 |
80D5DFFFFDDFFFEC673FC3D6E009FA674B4C126DD0091ADC7EFBEDC71D775C36 |
9BC5EB37DE78E329A79C82E70411B6696A6A0A73C017F496CBE5F0A7CE0D9D00 |
4AF8170DE2F138608EA1B1473A3D4C8CBF2AACF831421FB4C79CB94CAC3D9148 |
9C77DE79975F7E39F69DDB8A7ED000CD3004FAC18E707A6880113101FCA4F099 |
FFC1736CF4E4E4A42E8AAB466FE80A3D1355F01048522E97F545DD297D82B1D0 |
12000FFF0A24E42EE3C381FAFAFA46474715562B56ACD8B56B17BE1044C4528C |
F5C10F7EF0473FFA1156818DE043C771F0A74283F3997F1E755D9C0311587744 |
CF1A61AB33C7776C315A02A461DCC3886CC6368B172F1E1C1CC4EBBA767EC7F4 |
082534DBBA75EBF9E79F8F11B93B6800ECD21EF0040BC14CD033C80200423C01 |
B40176B6E41A8190131313D87142000F095BFCA40F89DB3CD77A88B858FE0994 |
FBC8473EF2C0030F601442ACB7B7975D0163D1833FFB41334E8020E2409C0F77 |
EAB0C30E7BE6996788B1C43742896DF01DAFE3217673F7EEDD18176B242A7239 |
A44E5826668EB7D0092189D7F1135A1E7FFCF1BFF8C52F9E7FFE790C8177D127 |
09C5FEF0165DA10DFE45E71C88E0E5F2F12ECF3BBAC25E5C77DD75F8BECF7E88 |
541C85070A2FA2434563CE017FE23BB789AB30E6631E07C629C20A89C4A4F8F8 |
971B06D08F8D8D1164244FE13DD30EB10CB4C73C3EF4A10FDD79E79D3836EF7B |
DFFB7EF0831F809AA331E9859209D2381C1EFC4B62C1DD65CFC0216C1E511047 |
115060E758037AC373B4212831731E338C8B6EB1046027DEC5AF8011CFEAC0C0 |
00DE226564637C416F981280B87CF9F2175F7C91209BC309385BFC4B228EF6A4 |
E36122AE6D785C312EFEC44F071E78201EEED8B10343006940A18E39E6986F7F |
FBDBD8AA399C80679E678C98AA4C05BD01C50179C01F4F48AF89C1447D3C7CDD |
EB5E0714C77256AE5C09D4C492D11E10036CD1214E4E983110E1F0840C069351 |
020738E05F34E3FC490230134C0CDB71D249278183BEF7BDEF7DF0C107959787 |
49FF1CC182BB4CE285B961A7B01C7C476F6F7BDBDB1E7EF8612588982D1B808C |
E20BD685EF001A0F981E8FFD514CA2019016AFA3FFFBEFBF1F709E33BDA54B97 |
822451BCE034D01BBE285A921E11FE9C15F18158AD670C5FD6AC59F3777FF777 |
DFF9CE7740FD716400227085B56BD7DE76DB6DD814BC454A819F80754F3FFD34 |
90101D02DA980370003F81306114B22E4C9ED8B84F4E8077092525D39C64987B |
6197714030DC73CF3D77EAA9A75E7FFDF56F7CE31B21B5E8C9D2A561624A4D30 |
07E221E1C0556BB7A441847C98872D5BB60CD3566E0AAC00B7BBF7DE7BD192B0 |
C58BC01F9E65EC9D028DF3241DC764889F60A8679E79E6C5175FCC51C28B0AE3 |
8F3EC7EBE8937B8781F01645133C21326392447215A17872219262742C1F6787 |
B48E8B22E7461B1E28C010B322C52486A319491F7AC6CC791C301FCC1FE36269 |
2035687FCE39E75C7AE9A5389B6849CAA93C35CCADE7EFAF724A4C03E8F18E77 |
BCE3273FF909C40E0CC16592ABF1BC2C203128CFD3A189C09824A64D91489FAB |
50BE0F4E103E3394CD29A743C40001C513808020C34F1852E97578C348CE4838 |
7898B10C504330498A5A64DD121218B961688FE7E896B848FC03E8F913350000 |
5D052E0ECDC5903D60FB89A97C573758DAD23A9FA325C7529104F80424807C7A |
E2892762CB81E573B416ED81A7050BC78B040E1EEAD1DA2727E0886436A429D0 |
B1705CD120AC07E8774A103CF9041499D9DFFCCDDF40E4E791A0CAC59F00310C |
0138EB7A417A868787A9AC60E3C8EDB04CA21A27CC9EC94238163486B3CF3E1B |
DDB2B112418A021212A5C95AB01C6E9F6A033A6DC58A39479A3A9C1E302E1CF3 |
4757243A6C09D2F0AE77BDEBBBDFFD2E87C35E8360E17491A02C701278CE495B |
F554E064023EF815A0C013C53A6CA24AD961F88767AE5B8F1749E61433F55CA8 |
AEA08A88F236EE08F68EF8F6D6B7BEF557BFFA9512A039E2FC02EBA210805700 |
28526DE564AA1CF0432114C0C45B541CC99038130010DF5531A284A478C8F928 |
F5C17248C7EBB31F6211B666E7CE9D9FFBDCE7C0F0B81D175E7821F44BC001BF |
A2438002EFE23471379510530B64574AA055100EEB5BBA41DC1DB228BC8E6638 |
9B18480F386514920BB2072E84FBA2947DD1A245E001E807CF6939A03640798E |
1B817F2988E02DBE8B290138E8013FA125A04AB583B88D5F79D6C27C0ECB6763 |
1E4C9E0B15C0F7B7BF2A27B1074ABDCA7A95A6870D03FBC313EE9A3BFBC11780 |
94E414107BC31BDEF09BDFFC0688411CD6E3B65F4EA08A921E6F60215AE2FD2D |
5BB69C7BEEB96CC99D53D084F198E492E84E0A422E4DA263B63FA405841A3640 |
993C255C5A36283850542789E702C8068E3AEAA8FBEEBB8F622CDF225A508622 |
EEAA984F4313CF03814B7A77DA69A7018FF93A9A4166874A88C69C3657C789C9 |
AC7588E26A5850C2874A19413ADF3A04FC23D1C41061394EA1A7D0507E13D609 |
F085E41EA3FFE55FFEE50F7FF84325D35826E643FA4B8188A225E826A921190F |
8FB7AA11980CF6859091B6DCA7F640341B191909D33B7ED4CEA07C42F9105935 |
899D2E212C588419A40293980AE050A653C8108C981E280EFE3CE8A083204310 |
A9A8A0EC4FCB264791B666837F713EB904B2049C5852521E27C596F0AE29330E |
7FC1EB7857ED1BF84E2306351BF257FCF99AD7BCE6D7BFFEB5B485564C18B21E |
6810608BBD035939F2C8231F7AE821A80E383EE801F0C41C680AC3C416D00988 |
66619D403FA4929CC9FC7775D7544AA04E404B11D645EE15D67E14261B376EBC |
E0820B489ED03F760A10A0DC060403B6A0254833640E7EA1E513679656232A22 |
1489301CE91A3711CBE77004294546BC48DC50794BF91CD9301AE87288CC611B |
143EFCCE9345E11D0351E3E101A784C40E29AAAA4D090F69E409A32B96BC6EDD |
BA8B2EBA886C181F2295B415C4E4EC07320A968F3F81CFB46A704A1435303419 |
C6FE28F8D1471FFDAD6F7D0B13C61E0137F890CC8CD0C04FA4C3181AFF12C9E7 |
7FC0F074FEF87EF8E187031B0125122E6C04E0433D8688246D81DEA0599020C3 |
D66260D20B6046D84AC5CD232C28C7E93901A0B1311800239133D3B8B1BF35EF |
EFA3D450E54A9935F029E525E9A1F042018D74471185425F98EE68CF7A6054CF |
529B38570138F0750C47B98FAC8B3C13DB03D0D35A475EC2C65835DAA001A9BC |
D2B8F99C4027031512A4FCFBDFFF3E700ED48D5B129649C3566015045430C717 |
EC14A081F3008CE131D013CEA1B18FD83E72566EB69ABC6FB9E596534E390518 |
46E309CD6894D07954F02FDEBAECB2CB366CD8A02A140F30F101F30793A00444 |
5180679E82ED3E655B95EFB8A1E4F494B0A8117374AE022BA2C4407AA7EC1CF3 |
4433E027CFF3023211E6061029CC21B87CF39BDF042DC679BEE69A6B48AF4F3A |
E9249C90C71E7B4C95DAF0AE2915D01DC42BE816EB8588C06E7926F99C4A003F |
58055E5736A9544937827E1DE2F31C1B882CA813CC51F68957FA902F526200D0 |
3037F0A4279F7C52E51E502B1A9A89AB2452EADE503C24A6A9FC81E76803D219 |
6651EC533D55EA0653919C4A094F10BD3B2A7D135155B22402A31976075C47DA |
A62A328CF99CE0F4D34F872282E79C36AD5ED44D95A92B0F80EE0222C8D7D5B9 |
0899EFFCF3CF0722A9F95E42FC5E669569AC051DF2F8AB5DE575AF7B1DC426BC |
42EE428240FABE75EBD6F5EBD753F3C3736C2E66459EC473CDB52C4015B13A9C |
4AB013C0109DEFDDBB57E9158F03B94298DAEC0F4F0025F02A2C01F3E469C5BB |
F88EDE4E38E184AF7FFDEB801259F521871CB27DFB76FA6C5A671263ABE30B7F |
8293ECD8B14366D573CC00C35364A078A89C196F6198175E78819BC78D516BF5 |
025CEB95720269B35685C2EAD5AB9F79E619695B2AB012CC0AE72A6C109CCF09 |
14E7E64C4CC9A83DFBA1E54465616A12442F40507D80BAEAB084CB79EED33A04 |
9287774932484039131A8E75EDCAA5D5424D3AA2BC010DB8BBD2B6FFA8B74DB5 |
C8B02F94BFAAA5E2F6DB6F877443370325711E06FADF788C57AE5C09491C2F62 |
81C4C8B0D0A474108DC94D756EAADCCC315EABF54F66C5283D5ABA3ABEAB9E5E |
B6848485C68A991FF8C0077EF4A31FF170F20CEF0F8BD039E56BAC880C1E10A0 |
71E0EAD90FE68CCE0143AA7D73AC43737CB3EC16BFD2E8846E290F624369C3C5 |
1098219D19F889DB8AC61C1A2F6274104ABCA23637FE24B3D23AFEE5131A64F6 |
A7EB287556C2416CA1FE37C73AA4744D719B543B6C16E7F139EEB8E3FEE77FFE |
E7E9A79FA6B41B96C4C9096856C2A248A778881830C2F34824E1795163322806 |
404109923D70686A092AB9530027BA52ADA4C2A726C7F9D6212C04A2034D58C4 |
1374A586787586D398C9C3CB3DD5F0133DFE615BB132544509BA48293071F26A |
96A422AB24857026559C6F46262F54A962CE4E85A9107D726C89B700581C310C |
44F8A8B18BD478613F9982426D954436EE3B250309D9F05F326630EA063F9330 |
AD5AB5EAA9A79EE2C909C34BF939BE63721C80363534C04F7805F3A6556701FD |
FD957202DA882824860510F2037C07700129F5C5E936CFE104DC4E7509A0439E |
6D501915F9C30229361E4FA8872A6439347829DE020480CAB4A248DBF7A206DC |
F97E0269DB49814F071C7000E40B5052503A7D5DAD4312B2AEA84B879059B66C |
D9AE5DBBA8D0C9AC3C422B99B4637BE8BDA04446C90BF3C4A2F090E8ABCAB532 |
332019A10ABE427E409B26DB2832A92514432F59B2E4E31FFFF895575E49A555 |
2DA7CAC6E658395427E02E9080A213AC852109A4111C941A864E00ABD8B66D1B |
64465A1E6846D89F9C81AD446F73027E3873808E123DA566F48685031908F330 |
BE110FC39E83F047C51D4539527FD5A4156294B6A8B9629934F133B04D0DB8A4 |
65739067FE673E5994767C81A882DF6E401D97C61FAC9D7A2D6D14F897C48B54 |
4CA74ACC991395C4810E3AE820B00A5D2F8DF5738297A8A9D39F47030EC90D26 |
F0E637BFF957BFFA954A601A1B86A18F39E6989B6FBE995C16DD0220444EDA84 |
F7893F1865CD9A3550A6C933D4A31B769E93D5D1B32AED701A0C87E553520E63 |
32E40F5A63742DA06378F7BFFEEBBF783418938257F0E7F2E5CBD1C3A9A79EBA |
79F36634A34F586DADD8596ABA1AFD41273FB67B4E34DDFE283895187488D38A |
C34868A8C848F703158E053CCF24CBDC65CA0A34D1E35D9E7775DCAA4CD0022E |
E453323D200404250025ACAA1310CAFA68A9E431C0171E89152B566063C2B3A1 |
70F7BF651DA2564B54C3BFDCBFB56BD76ED8B041B1194BC0D6AA2CB04F4E10F6 |
0B291E93C252E8660C2B1E62459FFCE427F1F0AEBBEEDAB3670F40445F05F95F |
F80CA8F005D0D11827FB8922D55826251F1AF3A33A41D8E91A264F61AB85CA26 |
EAD550F99A561A2E21ACEDAA3D545572D21D7A4D20DB628BD5928E7952BD63D0 |
ADF6C33EE7780E48D4F85DBD1A0A99605E20AC848C783854EF7FFFFBEFBDF75E |
B4574D6B8E990B2BC5771E5AAE97409B1F5B12DE6BF2091A15F1E49E7BEEF9D4 |
A73E4509400342A4CD11C3CE79E504EAA7E159A0C9853494FD84A3696901C727 |
AC742A33A342C3B1D42683F95F73CD351B376E5457ADE2E102275C2DF8AA83CE |
4195397E26BA1F748DCAC0F8D16851EA7073BCD6BA6BFA9606F56A20294D1074 |
BDA89B477559B4017A00B54E38E1846F7CE31B009A46FD61AA0008B08B7C0802 |
01B48A700481C61104F3A248C16EC1306834A618A45C5F51825874C515578044 |
704768BBA615945E0DAE114BA09156A5076E2235091E10D595A9C16032D853F0 |
8070708784E424EEF81CDB8346972E6CD5D1F010B57F48C8B4A8BA7EF8DCCDF9 |
F00C127A00B22AA9340FD2A687876192485B880151EBAAABAED28EB05B679F7D |
36381E04A8E79E7B8E411D8CC0C1D8CA120041AC4AF9366084B1B1431AB41E16 |
CFFF4C4E402323F5FDB0D90133BFE38E3B3022F91BC837E6093D668EEF5A42B1 |
1F61C204960EDAAD4181C0516A0C18823294AA631ADD817FDFF296B73CFAE8A3 |
D75F7FFDE9A79F4ECCD0E34DAB289A71866A97A4DAC42DC177004DC3B129A4A8 |
3D81984AFC53AA8D7ED03E6C28449F1ABD4393345D0214B5A46D7D92B63EC84E |
48161966CE758503BDC2279F448443681433E91A46E4CE129F002B0001CC326C |
22E32B4A88F99027814FAEBEFA6A3A21E948BFECB2CBCE3BEF3C028DE11F0C75 |
55873C0499A38E3A0A3C03AF533298233086A986E237F608E2022740E2AB944E |
7D4E6132AAFED2818101DAC488F9848FBAD0341D045F48DC29A9B071D8A7C58C |
0D7A5FB8950A1C1D51631F54329076D43FD9834A3FD42A28EEF050A87D4CC3DB |
C902296A7CEC631FFBDEF7BE879680D5D2A54B3FFFF9CF6FDDBA95269DB0E2A5 |
B1E74AF4C3B100611F2CD921BFAB4750E6C5BCEDCF12400AA5364C5267D213BC |
4219140FE9B6A1A1292CD390678028A119E9A3068C92E1A967957C050DCE3CF3 |
CCDB6EBB0DCB01BB05FE53D8553197890500C81C031A35D470CA05CF11A57E0D |
BB22A81790F4B95E4CFBC8238FFCD77FFD57FC497FD8FEAC436A1442B774C5AB |
456B9FEDB98FB4AC42D0F9977FF9174AFDDC44E55E61F11708096DE6861B6E60 |
581169949A075AC3D06BA76E00705D7A9FD5C6A7FC8D2D95D6A0EB9B6EBAE98C |
33CEA014A9E44F9D54FF2B9C8084490DE898037815944A68FAC40F2C1B8D39AE |
0656EECF634CE860B1AB57AF1E1919A1D84BF54D8D0678171A315AEEDCB913BF |
2A55C2AFB4D091AE910A2BE5C2BFC40F1A8548CDF5D4E115025DD33DE8FF94B6 |
C9E8A31FFD28B693867BC8CB20AF5471D00310FAACB3CED2D41B66C1BCF6B5AF |
C5F9F9E0073F78E28927B25B9A65F116F608871FAB231E87D3EBE861631A9DA2 |
2CD90F26C9FC0CEEF5AA55ABE8049AA35EA876C89DC204FEF33FFF136CF89967 |
9E9993F477E8A1870280B41662816F7AD39B7EFBDBDFE257BA37D44A80E30DFE |
AD245E774163CFD046A3BF487198D1A6CA87BAD383D9A06C100260265EA462AA |
BB8F49429423F9C3704466F5618445C270FE145569B461203639D9C5175FCCBC |
10CC0A8DE991A3D0A73482832A3551168E06B7DE7AEB71C71DC79F56AE5C094C |
A6394E234D756BD4898221D012741073662C23E9F29C6402601D70039BAB640E |
9491BB83434DDA8439D081216DD5767EE85158A465D4104F227AC304683FFCDF |
E204C0D5356BD660868003E7A3AADB9BDFFC663CA7AC4DCB06C6A58E4E158DA6 |
3FAC178D8148C05E50DE7FFBB77FC32B684FB30F71523D195FFBDAD78E3EFA68 |
42AFBFBF1F9301366262A07B20A9D85C9E6ECE44D92D75682200DEA29509AF90 |
1ECEFF5026C05BA024DBB76F57B56C7F564DE2F99CA00045C27D524B0D8252B3 |
A49AF82464CA030EA8F44917310E1A094B381AD5E0E92205C10600768C93C59F |
38360C10643E024D60127286A83519C887A56EDAB40992320F181057B348FE4C |
4E0092F7F8E38F63F618859E525A9F88AC7848675D1888B21F3F01A91E57A152 |
5E3870281C5DC713CEF83335F22829246D626E1E45549D001E9221D1A0C4734B |
EA40E2AE065385AAFA4BE9B0A1124667B81ADF40F7711218BD4A34851E8AE951 |
E3A3E989EB65749DD24DEC0810059054DF8F92F2F9F93B61BEABC405FF6274C6 |
9BFEEDDFFEED4F7FFA5369273450D79EE3ACA318A2B113A40224A9340BF060D0 |
A38B5DC017B4E47A29BC90472A31A5D18F01F21476C2FC896786560E0656317C |
000DB0763606707854745673082E519A4700B409FFD213ABF17254AE2FBDF4D2 |
4B2EB944CF85B2254DD7A4827FC41147FCFEF7BFD78077EE26B7064FE8BCA565 |
9979C5948B71E29873134E7824CFA6ED1818A2818944360608E9CE6AAE8CC6AE |
E0988063EDD8B183C6194D619550580B236D643FF1A614CF4952DFF9CE773EF5 |
D4530BE4C1FC899C802A94F60CB0335789C79316766A21E1AC497E8006DC68B5 |
E85236E7290EC70BA1A59A7AC823F58CD09C3B67B6A4A4A4D7D47101490A49A0 |
3CD83BBC4EFBD81C3FCDFC0FB7296CB223FE2F0C1FE003E374D575B43F1D0288 |
8D4DFFC31FFE40440A879F802332E4878E7DAA95EA56E149D1D4EB3F72024D30 |
53D70149218DB614E8F49C2BF9E0D9537799AE90D487E8FBBFA5135C71C51510 |
C10820CCE49E7BEEF9C4273E41E4507CA5BA1A8EB3DEA74E206D01597383C91B |
888E6A1D56C6A088CBF6C66C96166D358C9EC69418114156F49EF7BCE717BFF8 |
C505175CB061C306325E0DD8A00187A80F717BD7AE5DE1BC415A90989273EFBD |
F71E73CC31F8F3E0830F7EF6D967C3145991189D28AD544192280B8E82D7C195 |
E90E254C34B88B6B51873FA9677817D09E59A9FC53CDE2F3EDD74C4C63CC89CC |
4AD36472E1E042B0319054AAB1345FE095B02ECFEC714A5BEA60C7779086134E |
38E1C61B6FE441C29F20826A75D1D7C30749457B35A3E1E8423F50BCE749C6AF |
1415E9F4E2461BA15C62A237D158A33E5486C517BAD6D927890B78030B005074 |
00E5D5701A526A99573C80441C9BF5D0430FA97801290F9BFEF0C30F333F566D |
65DC262A07CCCEC5582416AC7142295B662308D4814464E3FC3131DA09C3052A |
78DC780428C052365746ABBB4F1908DD82FA60ED6AD47E759C200C4F752CB187 |
70DC47D83CCB66E0D0C016061A314286984C898A749CAFD368A1FA99DA51F11C |
2FBEF5AD6FFDD9CF7E46EB1C8F033754655C4D7757231836FA5DEF7AD7D34F3F |
CD8A3B980375B805647665A2CC96A034B3B03509D3C391A126BDB0F549AD7CCC |
53416365729C39261CAEB962CC26FA013915AA4AE85E9A4098E290DCA88A3187 |
0A845566CA2F5A2846CD02612B1B3192C841A344B8A007252C1D856D888EB441 |
2B19529314D90FD64C659CCE2EA39D9B170EDE92B6B158753A8C8B4149B6346F |
995C94A9255AFC20EC7333F6551F89DBF099CF7CE6E69B6F56FFA71E6609A5F2 |
127DD103C005CD1773608004FBA7399870C3BB201FC072124D8DF62324F113DE |
A2AEA01BC1883A2AD11C5A836B0F38E00008058027D90350043A2FA82ACB1085 |
C97A9813686C06DE2281534C007020AB0E0E0EE2C9673FFBD9AF7FFDEB980FA5 |
481C4E5A63C2F1451A8BC5851038383F982DCDA0546E98484894603417B9DD1C |
E71B2838FE5CB76EDDB66DDB8036147ED5972E2FF70349DBE2C165B22B86B260 |
2D60D2102C1844A4E98D0C3754F5E8F0C30F870E2A21791CA0C671021212ED31 |
10738BE85D0FC756A9BA76C30D377CF9CB5F663F9809964CAE4C3E47C6AF5202 |
16889FE84D25E70893300DBA07904920B85846AA7CEA539FFAF6B7BF8D33128E |
AB0E47045177E18632A42408E53F868B44A1CD61871D063153B579C56ACC4759 |
BEB42D727F0E2750C76CD0CE75A7662F6D15904496CC98248FC49D6962AAE553 |
70C476D08DFCDEF7BEF7C73FFE31FE5473B722A4CC464FCAAC364FA11BA80B15 |
E781071E00E4D542AED2A45A2F31E7709935761EB4AB9C2D40D9C9068C7665B6 |
85AD431A17035E8B731A06DA3EDB9F74D2499018A09C91C6D2324C6D895E2B72 |
7D02211CF8A0A14DE154D6D658241FEA29251B2445A020CC180386900217D129 |
B0DF68A7BD3148430BC230E58AC71B9C8767FEAEBBEE827CC75788D980267ED5 |
58913909FAB7DC72CB69A79D8699003AE4752043D0CE5481A542BD3F4EA095AD |
146B813D5AD74563F65595518AA0A13BD29631C37E48D25FDA82F127CFCC1C1B |
0B28173012844683A96EBFFD76904E8C0B8CC41CE84E00404E3DF554E6A99276 |
68A6FB71C71D8757743EF44DA936007802BCCAFC9554A9A18C6B04CCD574A8D9 |
FFE8FCFEFBEFFFE8473FAAA53834BB5BD18EBC8781CC2CDAA1353FE6CB3E4C9B |
640325FA5A990E5D61698CB20D677E526157FA8281343D82479D3883570E3DF4 |
D0279E7882150B0007025C42D9FCEAF1D60DC29F37DD741300CEA375ECB1C702 |
97D095D67BA0B4AE194012721D318E16FFFEC33FFCC3830F3E4834E629E261D6 |
2835F5BD4B5B27F8ABBFFAAB5FFEF2973C8DD4F1C947094CD5C61497C8A43101 |
06136BD674309BD14A3B09115569B15A54284330A28F522D453CEA2B6A4BD180 |
D170A4A026AF84B343B4F2230685520256C7BA787A4C9478612C2A9A0CBDFDF3 |
394138965FAB8771DAFA9306EFE30988384E160520B5D5007F202E68581DA398 |
C8FB49407860D18039C00C8FC416A01312130D9D521133BC5FD0E0DFF4A6377D |
E31BDFD0787AEA0484D8FE6278A41D184A66C6E92DA0433024474231054A8216 |
6EAFA8ABFE39AC1AF4136B042501CD61A22517A5A9A01AB3FE47EB90B4CDCA12 |
CAE7562B18ED5C5473F0A1B010564595A131569A33D3105D1E5A0DB460F043B8 |
04A3F26AE6E9A83E1B96D1C2E0A0ED9E6C99E6E6F99C40428626EAC8CC55A136 |
A05224D992AE224CF4C3E3CEE7041421292CD0AAA0413B120AF9A2A087451186 |
543E34FA0DF88D7789E2000BABA24262DDB46913378229AC9ACCC2904A15D680 |
FDE804AF9C75D6595FFAD297D424A2C539280CF2C013C53996F29E305419100C |
68609250932FBBECB28B2EBA88F9657A66884346BB842A8D03745A68314E0099 |
29876A13072DFEEA57BF8ACD2241A46380B51BD9217AC0138D32A07352CBAD48 |
283496A056149D7F36A82769603EB7150BE7705A76866792D23D73AD955C12EB |
68E2A7F8ACF52464D698B37DFB76DAD90104BC1E2E81154EF60E8BD28C47D0F0 |
210A6EDC2930AD4F7FFAD3E80ACF7162B5768BDA2DB9AE39A61240126B79E185 |
1754F3A6558A61EF124AC6D443C428A630DCB473EAD94C5C97504E4C5871A477 |
9A4A9E024AA3F85E1D2708D7B3E32E0037B4E81069162B6062B114E13128F442 |
B076BAEE805D58324B526AFA15BBA5579CA7921636EC8846D3E1096928F500B2 |
4C5A20D5FDCB25935BE33BE65098FD68594C365B40C6D7CC0C2ABBEA1D5C208A |
9460E1A6F09505AC431AFB4ED954130548D0E8AAA438A279607842DD3D2C04FC |
91CC5222A3258BDE2DEA14322BF5A80D9ACF0174B4E4C6E8AE6BBF9C073D7BDC |
75DA2EB8DF803BD09DF4541938260722A2D95E684F873879BB395B6F8EDA035E |
819008A99076520A26FBB30E69E548A65931438FAC88966235B2AB5B264CF195 |
31ECD33A64B6EB38324883915B3CF05A1F915E448C4E8A43CECA23A705F27850 |
89C11A2CCF0E553CE74610D43C0C8CE6D2792AABD6480C094559F088028FB1C5 |
94B9C2F1308A526A2CA6F08E3F4937D580A3353259908BFBC258263F545A4ADA |
128D8A66EC478D452A37E0DF638E3906320B8F160D1D9A7FA7D84885403512D5 |
1D29DB4A3BB199DD924930FE5251FCBAEBAEFBC217BE40AE46BF3AF19901E67A |
DECC509910450F8D62E29CD7AE5DBB65CB16260C87C3C0A46D73E769D7BDD3FC |
1D4C0C4F88AEB455AA84443A2E21678F84C47055C7D5AA4945219C304C983329 |
8F08C0D3C730303DA43C719AD640F1C80F7DF004DB4403AF320C129A7030BBDA |
DFFF9C28D23027A040A6653054D8DABC7933A08DD9A267487EC03AB63CE59453 |
20FA70149E6E3D509A1EAB761B8DD839F9E493EFBBEF3E865768A014319F0667 |
8D8C20DDE32455750B4B78B431508839E9A493AEBFFEFA7DAE57ADD35A8A8E14 |
D958B09A08ADFF5A5E93C1C1FB8367D02EC0AC6673068B53475737BBD6EAD7F5 |
4A5BCA97700565991519687F544E1884CAB207A182911C4FDA128AC69E73F62C |
7DCCC07F4E519377488235F1841E794AC1575C7105DEC21AA097B0064078C16A |
4FD4A240E1749205FC04E10F74702D17A3529EC69E52A30F1B85D892A4619F7E |
021636D1AA871AD21731FD9813142A92F52529C650362285A6649C48BE9E96F8 |
8CF8B1DE5CAD346954DD982155F414B196D95273ED92E754C417A72E49533CDF |
F10CB7DE0C2C1393905822E28B5F2C5886340319B0CD21D397BA9DE8E936C621 |
8107271EF3D1FFBCED2BBB4CB1572EF6770E66A35DC55857A3F86CC2EB89644A |
956235969232082988068EBF6B74381D664326FD49E829B144776D720214A689 |
C9C7A5E94A0CF301EE79CEE141E6F1E4744F3D6A38F658B5B8C44F3A99EE1D85 |
B1742A6A35CBE59A6B6662D55A33EDC4E9F809DBE5C88A5481500F10156462A4 |
1EC5F9F91F7FCA678EC6167E480B2F704CCB8E86836DC2BCDF08DDAE212F8F2C |
304297409060D1F64AD68E061FFCE0071F7EF861F40C14D26C89B0B7FC258E12 |
4B5BF562C72107379F1935AC7CB2297B8D9C199D0EEA01A62856B45928753976 |
B10E9C485D70EB1DD79D748A1573CBB54AEB6862CB3CB182A82941241BABBAC5 |
583599127B02A8644A3C906A546235A925B391723EEB2F2BBA533D2B4B432399 |
64D5342215CBB3EAD2A8661A529554B4B354AE9839C3AFD6CC6AB62F97284C0D |
D7121D09AB56C6934632E23419E4AA7AD2DD77DF0DB26BD6BCA634DC25B6541B |
D624B88E31D3085276C62F152A209B5133DE104CB627021CAE57FA53D19152B7 |
DD3DD998AE473D0924E2C53C3F9074F380626E5CF245C976487D265B5859B227 |
BD642131D353E96CC652D3F5B2D80DC3722395BA8363215288193D8D8E697FBA |
D92552320E6CBE66B2F962C92E980DB3DEE7CB684F87E535BC99B2E948AC7ACF |
B93FF8CCA5EF77C04393F189C64CBA2B5D1CAE1956D4C4396CD63CE3E05861BB |
8343E4F478F57120A86BA4D3B144A90AC1B4191812B552D8F9BA0B98FBD9406A |
5913728B5173B2D22C61276D096A76421A95FEA4CC94A58EE9594B92A9F1D24C |
2521DD157322D12D6E336B940A4DD731CCA82F55C35F12C48625525B55965179 |
F8A6FFF9EB933EE126765905A7E99B3D7DC9F1A9092306E049BD2091C0C67A41 |
9E5B701E681D796B14C290143C890631716B5DD2012A5312BF2AA69595467106 |
00803C72FEF9E75F78E1858C395497EDFE387130AF5AB55A65A1D3B7CEAF1AD4 |
82D94B2D2862D0C2A0745CDA85187906DEF9CE77BEE10D6FB8F3CE3BC9B195C3 |
D311077CFACE77BEF3810F7C80821B43A1C142316334C3D84C4D2465A72F345C |
1887AE5D0D0B638E9286F1A2313D13941FF7C909C2466D5A48C06CA05732928F |
D23A992D7969B86E9D92242534FBF313287094596A29E639744AE3A03010341E |
C6B0B3AA256D38321B40A991A061270F87A60849FD80E2A1722FBD9183FDD39A |
8CEF5FFEF2978F3BEE38B578A8CF1648C3902779B92F647F08F4BFFE51E22B6D |
C104DBCAD4CD573187F99C400BF86804E79CDCB1B0F9D59C571F4943E9E8C865 |
50B584CCF4AC8B008C3DE288237EFDEB5FA3DBD7BEF6B5BFFBDDEFA42D1E6986 |
209941335F8F476A13B629AE23DD557342227657AA3E399D92AC99F20B959AE5 |
37B0B10959564B77958DDF0AF8703D1DB702F1CBD5663A3B5BF7D868F6D66383 |
D1D2A29EDED8B833E48EF5C456E76B6E4176A5C58C89ED431517AB0AB923263D |
F19815ED18AE8F6425579EF19BD25CDC6F0F96A6C5950137E57724471BA3DB3E |
BFE9DCBB6E92A961372DDD855CC96964B2715A54683C8420492776CE4C1B0765 |
DC17A63A9B9D652B594B4CF565AD922FF1C1F48C8CE7CDA2D8012414C7332392 |
A94A3938242ADBAB96644CCBF49A53D101A94E487F23392E55CFF0259D8B3467 |
BC6E5F06A5C35F51B0268C66C98E592D21CA08247021EB0804A058225DF18A20 |
7D20BA8DCEA4044D99313BCD62C14E24FA2A95DD09AFBF628CE0D7080427916E |
3337B1B87CF9F11BEEBEE91B4393430D7722BEC4288D06AD71AD72A4D9E345C7 |
8DCEA5CDD1B8C45F306C2F519032DE0CFC5C671A1CCD6D0411CBC19E1B861BB8 |
E98811D4B1232EFE5F15A72A752B660D1C21CB9F6CFEB69936EB8DF285EBCEBC |
E6B26D582FB852DAAF4E75744AB199F120ACE17C3A09B1AB781944C88FAFBF76 |
F3B7AEBB737AF7CC9414834C21559082C4318A13F1C1209B3E78A5196D390FAA |
5D66A63C60FA7B0B3DD23329113F5E8A49B950F7E2E9A566AC562E8E432CB06A |
1231D275FC271D93A9E2A1871EFAECB3CFAA8EB8F04D47F2F232C0ACBF843FE9 |
D03DEFBCF30C22AE56D025E924695EB366CD934F3EA9F6A270B16C5A09D858AB |
BFA9104DC788AA8134E0AA9F9366E5D5AB57EFDDBB976AC46DB7DD76ECB1C786 |
27ADF6074825F8154B459FF8BE71E3469DB0BA7A649EC758EB88D11205360066 |
C0480F4DE3D63810B526A9A0BA4F12A99C201C80A4713E3AE29CC00C99D51834 |
5F49756AEAB37872EEB9E76EDBB68D8C2DDC27C3E3A872517F57EB0DFD3A7ACD |
03357D4658D36EA6A000A305A8D1A716772303632897C68D98A14B725EA96CFE |
2A68B75696F6DB3731295EBDA27EE6B7A701416B14D3B814F60CEB562AAE86DD |
5146FB920C99556B40EB7FF9CB5F32905A0DA1CA5AC2BEDCF5EBD77FF18B5FE4 |
49C38B60B43820E8B9255A25ACA59DB1A1C14AA724269695641C804E67FC9A99 |
B4F3F95A20F6DBFFBFB7FDF3D11F3EE7CC2F9CFCA97FFEEADDF707870D14B60F |
0F24FB1AC5BA6F59536E5E220D8949AFDB3F9619979219338C9AE54AD33C30F5 |
E672ED05D0ED4672B2D6D2F8414263ABEAFD7B2BBBCAF8B34364C6E9902EB1EA |
33CDC90D175DB8E9B2CDE903EC99B1464F4A26861329C9C4FA4AD0456ACD2031 |
60559E7B4978A203F68FF185C988D4BD74538C885188055672D10176FCD9B117 |
242D465CA283D00B3AAC81E1F2B4F4640ECB8FFD01AC45AA4EB29989A7CC097F |
7CEDA9673CF2FFFFD72F7EF37B5926B25BFAABBD19893CDB359598F43BE3CB46 |
1A2F78DDD8369149893725E544673CB761D9625846B5DA93EB2C4C61908EA2B9 |
C78B37023CEECB65B64FE5B232EA9B95A60F91270166919449F48089E49DB4D7 |
510F0A8DA46B3703CFF5932B22EE68F475FE5F3E557BA4D052B21CE99D909217 |
AB98B55E1F627636966C949A600562465A1BDB841C2E3DAE4CA42389B2E7A6A4 |
E148CF38F021339E9BC140D69EF8E2AEC376947E0D9D2C133DB0967FDE87A61E |
11A7691AE2D772401147EA8144DD485E924BB2F5BDE5A4341BDDE2A5C4DF25AF |
E9ECFB75AA24C3E5CE48D6ADD79A62D6B19149C30722CD9219C0399D4D0F8103 |
556CA7D100DC7351ABB2A8093E2E4559E20D344BD022662A69DF28BDA4FE2E5D |
BA14F23743FFFDFD5730D4E724C8200820BF90DD2988934E1ABC1592F638D00B |
72053C7CC73BDEF1C31FFE50DAB5EB689632DB17D728D9D24AB0D2362C6A3952 |
1A64692B00ED03C93BEBACB334C5236CF5D6501635866A346EF8F61246B3A96F |
677FD6A13962B55A7EC3C6A57BEFBDF77BDFFB1E8E3AF51812719A118C500109 |
735FB76CD2DC1CCEC0D2EA9574A53235064FC06CAFBDF65AC2443D0A5BB76E7D |
E491477EF4A31FEDD9B3472F075516A2DC9BB6667268D2263AF6B55998147244 |
8DC5661B2D0ACF15D18877E69967624A50DA1E7EF8619C793057B0494D23F2DB |
F743309E988672AA11ACB103FE440BB8D5BE428EBE38CDF020A15CB812AD8618 |
D152CFB80E2DCBFE27720279B9358F30A4B604A8E20B83DF35754B297E980170 |
DFF527ED13C06730AEB4EDF57CC8486DBC0E38E03BAB36319D0D2B0219FDF8C7 |
3F0E3C276EB474F68823F9F1C4AC2FA3719115ED8C9427CD81B43D6C14560CF7 |
4EDF3216B852582ABDA7BE7E2CF2B4D46BD99D3DF95F8ECBB392F093A64417AF |
5EB2FDB9274077E49296B1A863E680786474B8A39C76D2C77927DF7FFED609BB |
299B9C6439E7948B53B7966E3FEDC79FFDDA916B26DC7C23180241956A2C2325 |
373EE0AE9A8A3E595F276F08DEB86BE363FED255F69E9171701867D2DEB428BA |
7DAAF72703640000886E28165888BB7D13D6E89252EE14A82CA9E7B60C4B2D65 |
C74A8D462A766E29488A3162D8122FDEEE0D340E1BB67FF3BAF8B2DF15C631EE |
6BDEB0F4774F8E25DDBEB2B15B36486A775FE907A391A14C446AEE79E9682A70 |
6B15C9D40E9E7C63636F7DF0E73BBCC18ACD1D114B8C683951C995531989EFEA |
1DEFF878DFCCDDA38E97EAFA6434B624B7C31897CEDC929DE6DE3B5E10CF929A |
6D899993BAB964E5C4DEE79CB494EB0EC695D450F9E4A6D99DEDFFEFFEC9FFD9 |
EE4C48212ECEF1E26533CD44A1FFA9E523FFF122C86BDCB3A3E964BE9C0702B5 |
D4925B25BE1BBCAC658EB1D356A3B6B8EBBEC9C95D2589755AA74D277AC51FB4 |
3B533D7BBE54E9292C1B8F3E6EBB56031C2A11E4BB9BDE07B28D4E438C19C9CE |
5AB82662A95B539DD3B13D4BF75A1F88663B0F998C8E267735CA3F9B963DADFD |
B5CD78DECF4BB489A125692C6F74BD189D904FCBE24876F08E821453B144D137 |
CCCE4F2C99EE9F854BBD5AB9633C3A9973ECA411CFE3ECE000FEF55FFFF5430F |
3D047E0062B2406C1209AC962BA61C130E313024E40C7969EF0B0588EDCC77E5 |
F967D6DF2B951659F486EE97A09D77864308BAC38230CC2A7AF7BBDFFDC4134F |
300E8C33A3B986BE04AAA8E41C1A1BCE1C1999AD1DC4E872A80BB7DC728B84BC |
6DE4490C8F0B57C453283089038C91975DD04F452212CC56FCE05BFC69CED5A0 |
18EE9E7BEE21D0B5FA42F86A21752A86D37AF5215DA64A2BFDD03D0461CAAE8A |
91D6F835DBD7D1842559EA108CDFD592DA7A3F0617C54C6C7C487049B6A86DC8 |
AC78CB7803BA0AC3691CE12AE5122A03CE00470D0CC3D0EC8181C8DC445D4E98 |
6AD3A7A2AE05CE96D178AF542750B22EA1C482700C06F39FFD79F5F8E839D054 |
B2FD71027979A299067186432F7870A07B811FA8BCA22A608BA7C6D3B5F2CC5F |
BCE64D8F3CF9A85CDA1BAF46AA5F1E060112EF20A739BAB4BFF97CAC22EF8654 |
D92FF70FF694D64C5FF7BCF38455F97ED5DE1BEDEAEC1F2D8FFB8D7AAE33979E |
2936FD5E5722E39DBB126BC52CF6946E1EEF5ADD3FF9DE99BE20327E7FD93F01 |
4B5ED47D51A19CC8576BE672BFCB3830D8353C6694CDD71EF8F6C707FF7BD1F1 |
2B677AF3956BA6E25E975B9DEC5E911CF5CB2B8E5AB12BB54BE23139AFA65759 |
85D341B2F1AEE960BCFB8CFE89DA887C53A46558B63B631DC1E76AA5CEA2F525 |
698C8977A5634C44E3DBFC4AA4BCA2D6BF2B3202E5A3B7B97C626F3D9F1C5AFE |
E955F9BE42FC8A48B338DA94C8B453974B6549A967EFB6F1545D4A19F407F525 |
6E058E2FAEEF5662A08A004F7279B1FCA29716E72CA903A16E4A5AC391CCA5F5 |
A972FD24EF1D777CEDBF3B8EEEEF49F73F77EDEF5EDF58F1DB8E89659389D1E4 |
581D4C246FC6A5B7121FE93A7A917188E99D37BD78F91B9E1CFB458BD49D17B1 |
7391F8B9AED1B93C73B2B5E7AB2FC85E711A56B6B373AC308E06A948B2591F58 |
2CC61E998ABEBD226F4A960AA6FC684CCAB2EC0B8B775706E5869689A6B92962 |
E693C6964A7C99592ABA52347B9A96274625B6D8A93929294F3AF9DAD9E5C54E |
EFE0D5439DAB96953F30DEA8F9C177FD96D7F04289FF215AFD46DD2ED98E952A |
7945315A1C2869A74BD6CC92F3564C44A66B37E60582AE9D88D4BCCC66A339E3 |
176F74635559F6E1D80BCFD79C1D894AC38DF82F098BCC4322B908972A99CF09 |
683555679EDE2A7FDF7DF79D78E2892F79CFC241F71AA1C11829A63C40200DC7 |
78FD291F2D4DA32608B35DAF9817390D0E0EB25A0EDD127C8BF457830EC3B7A4 |
E22DCD2367E02305F333CE3803DC2531FBA1159E9788CACBD31495FB6955262A |
C214F4980148C224ED68F139CE64D5060E3FFCF0DFFFFEF76186C71803A35D28 |
86FE648AE461731656E1CF56BAD6DA0C5EE896C770EC20ADCC582366B86EDDBA |
071F7C70FBF6ED3477CCE104B41A318180EE4A26876BBAC6EAD5ABB1EB5080D0 |
FF91471E096588C9FD0032FAC1B6EA25B71ADCA238B072E54A401233BFFBEEBB |
BFF4A52FFDE637BF61215F66EA3326123B059184656D289B283D0DFB4BF82746 |
0C5F1A4515849FFD89330B73823959056A1BD48C3609E5F7D2FE49249CEF1F0A |
5B87007CAC912167E4D6733C37D859F048F4FCE28B2F6A215596DF8078C1EB56 |
5AD18AA6186939FDC8B3BEF5B5DB46CFE95AD5C8ECFCEA508FA487AABB5B0681 |
66CB3692EC4E342A95AC6315C69AF56B243D122F7EA51A9D8A0411CB8B067EB9 |
999044C52CC9ACCDA7EF73D97AC2FDDBA17FFCC99D3F338EA94E2F2F74DE6AE5 |
F7F419CB07E553D2E8EE34AF9E5E3ED4B113F435318EF6CED0619DB243B63546 |
A4E99C290372D0EEEE3D816D3823D5DA06C9B9C6F468101C184D6E6AA1FDFCF4 |
DDE566FFE8590DBB2752B9A6D431D1EBDBA389B4353405E1D81ACD8EC4F2B15A |
AC2C5BC5A9C4BC736A86A4FD78CE335E94A81C16FB5069E4A1174F9F91D788F3 |
3950732BD28C74F5AD1A8B3C2567D8FD93FD23370E1BB5E4AA2302BB9C1A7ABE |
98F702893620F78A2731683F8DC5236F1C8CFC83E9593ECE6E738344EA8EB7D1 |
9578562E9C31E3B61F6F648F4DE7C5956BEBFD1E38540FD69B3AACA7F1682FD6 |
5BDA5C2D61EDA78A1F9106F89CEF66EA7EE13C1C5719582FC331B137C483479A |
C95F471B7B5D0CE9614857527626D1E597871A75AB9E3B3E6176C746BE3E95D8 |
ED245BBEFBEEF1C4708FD75FEC1AA99D299D999CB9AE962F984D33C08FDD117F |
C2A80AB85A79D62EF7291988C971071E7FE771DF0FA47F5C9ECFD8E5CE46AB97 |
3DD7CBB2F2A2DDDB8622E0A0408E886F476211D74C88E15FD831E38DCB756EB7 |
BB32929C2A55F315BF2FB8705A3C43BE5C074805F37F4EE4EE6CBAD255941D1A |
BA46DAB270B537A5305A04FE7DEF7B1F94090619B682DAC3A17238A2575D7515 |
F803B3FEB46CD3FFD317B1C0D8D216CFF5C4325B325C588607297CA9024F1DD8 |
1D7ED2D263E79C73CEB5D75E8BD96EDEBCF9FCF3CFF7DA775E92EE53A834DB97 |
5D906180BDA107B007DE35C898C870A2B6DE03AC9448B30418FA829E19F7C29C |
00DA6AC27E729D3663DD94E5AA9B5EAF11C693134E38E12B5FF90A3B619006B5 |
0D350DA91CAD99076057581AD3468C7649D4B0CD8A1F901E66C0133358C94E9D |
ED0CA394D92A6C2323231AA9C6F43DE5F16C4F3287E5A0138C7BF1C5176FD9B2 |
85FD00DA0C4F24AD643566E6FEE05D167258B366CDD34F3F1D5E4BB8C20FBE33 |
9991AA0065F370DCE7ABF884F901FBA4B4A1F63D691BF7683133DAF7F486E726 |
2FF718CF8FDEA3304106C35B7A68AC3BE8A08340FA3FF6B18F7DED6B5F937619 |
225D4BC619281823CBFB578DEC7EBE7E798B12C9508B58F46F5F52FAC5D4E2D1 |
25D3C55A41BC9AE43B1335A3D29CBAC258337DC8D35B9F591CEF1F2C8E5C70D5 |
FAFFF8E6F79E79F49954EA50B33E34161D4D6EE82B8F4DF45EEB34824AE54B52 |
2FCAF2F5998A0CD4E3DB9DF3653C2EC605B238911B4FD8F5C268DFA295ABE36F |
7DACF640E9F37E8BC25E62D580686E23C8CA9A697976D30AEF865DFDE71F3E31 |
F5C499D5B3EFBAEB2E9C38C8891A6F8AE373E2D613B7ECBC510A55790033CF44 |
A5D18A224AC49B56D52FC497C821439D3B329FF52183A04174A2C375AA7667BD |
3161F6C911A3B1DFCA8696DD21774566CA2E08C46EAF2BB02765BD58BE34FD96 |
2294F9B913D925138FD62362BB7127709AE2D6A4D6B2FB1FB261D9B37B4683AC |
23CD8271A338A5546D4B293D6A2CBB66912DB11DF242F292E8F0B2A89C5C3AA0 |
33B5A3D814BB267E3C5E5E74F15DFFBC7E7A93A4C43933D2B062D112B48D664E |
AAFEE5C93199597DF1C098744C5DF3F492B12553F78C4587A325A91CF817073F |
F3BB67224DDB8A79752FD3B2F09C9F312C3FD854926657261A91DC8C143AA594 |
2CD8BBB267C54B8DB27797A40B7DD520EF899F887A65C0D790645DCAD06836A5 |
92CF3A95FF33138C452586936FF764A5385338E9D833BED47343F29944E57B15 |
A768D78C06E87BC430ED9A5DCBD5E58C44C2082A5BAB66A92BDE04FA155A70DE |
508D4F4BF3CA162A055F840863F89717D30D6FBA6D50D5C2100B5F1369B46BB1 |
A88715C7107BAD95230C25012CF61496AD98326ACCD6EB7815BEC4F94AB78E85 |
D9B05E26044926C8D15C406396D1BE61584BAB6B72FF4B5EB8593264CED6C166 |
9F9A378B55312896CE74D02CADE04F6F2A0D291499157C545F3432D56C57F73E |
E080032089ABA0142EBF31A7F83BE8359A311B9653D23B81A955AC5AB58A154B |
C036C2C9EB1AC518A6EFD24E3E60343D88CED0D0906A73FBF35E680125BA7334 |
948896347A83FC97970BA5018A36258D3B26A0B466329F73E6AA21C5663F78B2 |
6DDBB68B2EBA88E61DA6B6AE5FBFFE861B6ED04BE7C37A215FC4421E7BEC3165 |
D85C0BEBE7BC22EAAF16A17D52701594F4F210AD23A2161E33740590CC8B4462 |
3138722C1A4883D0159264BDE1EAEBD49B39105378D0B82B0826400BDCCCB26C |
62F7A79BF2CD89CC20C84526D836EC62331F14198BE4E28929A3983969596151 |
A56BCC9ABC63A4A7D2E356EB65ABD4B467330CAA563DDDCC1525D22DE32740E8 |
30E21B6DB36C95AFA948C38A5E107332CDA253CB9ED0ED343A0BD7156AF1D15C |
556A9D0389E972C92ED4CECE4A229F9BB0A6BA16479BE3B91BEB238DCCCA7202 |
F24BB563B0F6058934A5E7CBFD4C3AC1E48F3FFEF83BEFBCF32505717D6D69A1 |
672C3D5E07F71ACB4C5C1B89FB76D11A332A0276629D9769BA85D53B7A9EFD77 |
28EB6214EC4E6954B27D8B0AF66ED91BDDB4B4620C0F4C39C376FA903163FBBF |
0FCB5457266EA6FED919BA776F9F7FD074ADE4DE508C3F69B8DF2BC6064148AD |
9A04B6659B4DAFBCB9D13FD63172EB4CCF494BC70F1F93CF9B07340FDEB1E9F7 |
60A29DA72D9906733F7050FE3188C425737976DA8E2C97C28B4DBB3BB0BD4CA1 |
7CCE806B8E748D5B93995ECB2B366F2C4810499512CEB9D5C9DE66F72D203E65 |
B95C168D2D1ABA66A8CBCD1683F251A71E7DFF3DDF9082D12DF5D1DC9268716F |
FDE29677267749CBDA1FAD9580550144FE2F389274FF62D78A5FDFB5533AA2D1 |
092BEA5570BA7C4302D07437B33288ED34C6BCCB178B3F2E5F74FB5CA36248CA |
EB194E8C39E765EB12C955EDA9AF8C3AA34E4C9C46C2AD04B5D9E871ABBE3958 |
3A9D1B8A8F7B8B24F3AC55BA29E93423D5D8946CE81677C2D92889864C9F2BD1 |
F822F7CA31B19A96FBD2790F676B2F108047C332D34D485568F4D6EA432F8951 |
540BE80AA3C873FFFDF77FE4231F51AFEF0295B5173EAB733C7554CCF5DE8670 |
197A09DD394E727FCB2DB7AC5BB78E055B284D736EB7DE7AEBC9279F4CD2C6EC |
4D0D0FC5FC81C777DF7D373B01153BFBECB381D6BC8A400D205A44C56CDF4E25 |
ED240B9522F12F74028AD2242B8CE624D90D5F110712F0FAD7BFFE273FF989C6 |
AA635C66485217A3C24146C2982535259B2FBF914339010B45003E1FFAD08730 |
7F106268733FF8C10FB0E4A05D2E4642360D5A2768F4A0BD88530DDA55DED4C1 |
CBFA362ADD6B967FF81A230D6905D3A2FE88B5B36A021447BCA599EE5A321353 |
026269F9E8F95A8B4A034C32503D200C7C7EB437BD458722AA96B9659A6858D5 |
982376FC3F31533F4CC0868A79C1051768D5AC85B13D08959267F10C6336A7CC |
6C575D550DAF550C555A265F71AC56A60658328E7D4CEAAEF49C981EEF8FCAF5 |
93CBA6D2BB53450894514B8CB312F55465D970DFEE6DA39D7ECA4AC6C6DD0910 |
C848D33133D9F8CC58E17A74974E6C2A42DE85105ADE64483A1E3DD3B7536E39 |
EEDA9F482CCA1C38BA79149C00345E3A66205C476AE26D028E46129FEF88C964 |
7963A61E29242ECC785288189611A4CA17CC38914E77F34B816A2A21BDE4D65A |
2BD22DB1ABA43E6D053738326127374262AFB5A230937E2BF8F53D03BB0F1C8E |
79C9DA4DE5F8945441AA979465A4E104523F4FA4479267774765627A8BF4967A |
C7AE194B976D484F12A977F8627AD23C5F6A899C7BC55477B56F2239DA6230B6 |
C855D9D84CA1B63540773DE7CAB823727D579799324E7A71222BB90B964E4148 |
CFEE8A9E2C89B4155DD73196B4B3123DF1F27F2EEC18F9DE03FF3E74F224548A |
C4055D71AC77AB447FDB57F8667E75AAEB99EAA05C6049A6B9F20F8B762E1B8A |
3D9BA87DD7CD4CA52B52F462CD0008D88883134C983DB27EB215C773B174BAFD |
D3B191642D598E5425DDD2AB0EFAF88AE70EDC2563225F91D8B4D4622D085BA9 |
6C502AF749624FAC209FCDC8D2829C9B71E2AE55AF457DC8FD8951BB228BC43C |
CEF1EDFA01F9C5BBAE1F3CFE5DC7DEF3C3FB9D45C9E2F88C0145EB7CC8624DB9 |
4C1241BA7279552AD9D4868A2FD54A141A464C8CDA4025331E98CDC28CDC29FD |
F925A3C6E02BA2C6EA31D6608D3915EE0CB590E81D43D20EF4A41D194FA808BF |
529D205CE1C8685F434A071DE3964013D59BCA0F1E02FF78891DFE541D85F543 |
3055D61D94D9E01356A760AD957025063C616632893E391E4368345153939BB4 |
C8A884FC8D9A01A70E525E39A9F3D4E47EAA05186EC58A15CF3DF7DC9C28AE70 |
A895D693D1E46FE549732CE912BA5F349CAAAA226A10AA1BA3148D4C458B926A |
BD20268AF3276A005A20411D395A77259CB1A985A4B4EA51382E8B69C0F45868 |
8A3876EDF2CB2F3FF1C413B1B36117FDFC0C700A040C7D631B7A9B75B132EB86 |
3DF6D863D7AC59837FD133B6181AA4EAC2C1BEEE7CFE135134CC096496E932B7 |
91C14B1AD1B4CF77A942A90B446FD8A6B4C475BD2C10391258D144506F44BC46 |
B46529B1800B715954DAFA87CAD46AB9F7A9FE1919290C64BC6AA7CC8C4A7F6D |
CB48CFF4A2F1DB869293A050B500A2A02703B1BEA9A6A4CB85FCA668D3F7822D |
A558D14A27A3E39755A42E875FB8745C3293C61FA2EBA4D4235D574A755CBA23 |
DD7BFC890E33E27B9677B1550A5CD9B4D832C69A6B2B9294D8C6542D28618919 |
A7ABBC69B2598E24AF8AB1501DB397B552BD75A1670511F3925A5CECC1F58D96 |
77F7F288449D6E3737618C24BD442D510E3E17EB4AA4C7B78EB4A65ACF8E18F9 |
78202DB3C865CE4C2C62AFEB6ACAEEE0E2FACAA9153BBFB22BEEA593B5E64C22 |
685A31A92565FDA093ECAA6F981CA8F48C75E5AD193F6E45F3474BA2BBE2A456 |
49355FEF98283B929E5CB1D2CA3C298F676BF64157AE9C96C28C35D2384B66BA |
C4DE2CB122868B5B7DA637DD68B846724B6EA8342D97F59B32E29F956C85855E |
5B4C4FC6EBA96CAA54AC3AE5EA6592A9A70AFF5E92DF89D38CFB46BDE1F89DD9 |
2E77CA2F47DD68B96C5FE294FB0239D3ED6F264712E56825DE69F78EFA8358AF |
D1E5978EF196F70EBCB87947CBD353EB4907E3C52E7C919E725FC329A7CFEDDD |
D3BB237A7E8F5B9B14D36FE501F8768FB3C8AFBB3529E7B715123BB295DBF37D |
E6C0587922B05BDE83A867C53647FCBA17DDD8049C87AFC243C7DE647B11ABD9 |
98E9AFE646E25389B5BDD5E258F0EF22A346BA142D19AFC0A9266DD59919483C |
2C94628D70DDA170DA1185598691F080E9E17CA59CC098975DA5A9E4747943DA |
658130D61EC117AD8961B52FA9074D619541622726892F604B2CAC419B925AB7 |
A9FEA8B6AE7783B0EE394DD29AEF1ACE320FBB37FDD0FD27D2CE7EA2D0ADE21E |
C941F8FE1969FB0934238F76210AEF5A7666CB962DE79E7B2EDB6B9D99394593 |
9413840B3918ED4C7469DBAF94D1AABF845E104E8F51F09A2448515DC558CD9B |
3DEAA8A3EEBBEF3E6EBD86D872CE1A85A5623E0D4D0AB1A05D47F6B4D34EBBF1 |
C61B35E0153BBB7BF76E4610A98CACF8A3B77AA92EC87493F085742C60475BFC |
F0F0B05AE4A1EA6DD8B0014066718239F7EEFEE9283A4727E05A4E39E5148082 |
49610B7BDE18A6A555DBDEF6B6B7FDFCE73FA79A4BE6AD26AFD6DA938154A4DF |
E82D795E09D4029266BDE514954D628D8AF3F554FF78FF0E19918E202855241A |
C836DB7A32D5FCCAB45174A0FBF5ADE819DD399C10AB11CF346253725A2457E8 |
CC3F58F5769617A593431798522ACAD562B98B83A5831DA7CB2464D5DBA5B760 |
4F99B166A4685A66AC11AD9C51937E915B5B9188F153326EB590DC9A2B16A682 |
56DAB921EB5BA2B773ADA3778169C8406B833634C4EC908DE54C2A5D583F6542 |
ABB9482CA33FEED78AC919299B92F165B3610C1A892D7ECC1B285A15D7C863DC |
5490287CA6242B05D36B05FB9F29AB9FEB7BF6CBC5147430299563C5294FBA1B |
89892D9568B3C3DD38D35D8D4FC4AA462D99137BB26FA6E55D1DB740A73BCEE8 |
ABDA56FDAAC1651DD9D2E7974C2577CB959E942BF125627D34598C78E92F07C9 |
C9FA183414BBDC22BB5032D7FB6EAFC895B3A19C6767A55CEABFD38BBC98F30F |
5996DEBE774626C6B6752EF97D72EF77F7CA2464F05890F2EA4663CD8A43C777 |
4C8FD5A7C0CD929F8E96F726E4DE72BAE9953312293931DF29A6668C7224487B |
729E7445BB8BE74DA465A01A8D79EECE3A04D766DCAAFACDFE7AD7897D93D3A3 |
729B64024906BD537EB36E365B49219E9F753AF2374CD97F4837BE3125237634 |
11F322ADE490841B9D5E5F969E457269114B93CB3D4C4CAE1123E889C978B72C |
DD2323FD1774B95E636AEBB4D3E8A9778C1BF957968619A6C62AFD3386F0A506 |
5A70E3924B2E8140C772CA5A5C45A3775E8575688EC54AE9977A8CFF886D6DEE |
C4104FB21F8CCB6BB334AC93A4137F628674D2B24C9516949659EDE1ECB3CFBE |
F2CA2B59F59A7634CAC57A1D2B17CF2FE18B0CB5128BB4EF6960869D86D8F26C |
D334AC8611ABFDD132035A0754DA11FA1A864876A2366B866CF13258ADE5C2CA |
59AFC22B63EEEB7687F07D8AD28E5632DA19B3BA5EADE7A178337F1F0967A39D |
7FCBD83509153A27CFE37D6D645D44388D4A649C222969305B044913FDC8C0D4 |
BAA58926BA53BC18807924BC2522CC09BCD0EDBEAF8813508A8712FCC637BEF1 |
C1071F945052C53EDFD5E44CDD564DA4E0437A14D403D1EDF7D9D29CB0C6EBDD |
123BB62FD1199BBAFD459990CECFE4A697F7CAE61D9949B770AE74340DF3FA60 |
0AA2E567ADEC4867FE7BE332DABA47EAD8933EFDECEF9FFCC3AF1E2F4A2D7681 |
555BDC94756215BB9AD1C9AC2BF94CCABE14BACCE4E4D7EA7222766871C7A505 |
2F532F35ECC02C8B159592DFEDF54CF40E77BF67B1759F53901DE92B168F6E1F |
34BF118356556FD42521F659A69D8955CEADE8753D3CA1ACE2693972F0314B9E |
FA3F7BA529E6F9B2DCED1ADC38E9D9DDDE25134EB32B7175A451CBD76EB49BCF |
970EFE41EFF8D3C9E9D44E89C66DCF595AECDBD1B77DF9070FCEDF518A25A647 |
D6554D39D8BF6AF6BE8D7392E235ADABEBD96662F2BA7A6247AE72F3789F1F1D |
755CA9A7BAC49C8C14AC40E2FE8A627721F7D96ABE5AF5B74A879D9DFE5CCD1C |
F0FD2F36C05A62FFD491757253F7EFE89F48ED591297CAA45849BB1EE9CAA747 |
7AF62CFAC0CAE0AB663E78A172BE64CB3DF9FF184F0E4A50CD55BACB7D27E646 |
D345E3C66A30EE453D478CA66BB4A27816F70E4C0CCEA4C59EB8A4D419CBB997 |
CD548268E054C04F21D8071BC5F1BA925B2CB73A53BAB22EE3D2779F531DEAAB |
4727EB41396AF7642AF1626277FD14492D5B92BEB65998B66AC5B2674FCB0AE9 |
3EB2539A8D89074AE0628D2B3ABCDFD5BD1F57ED32D43BB113969BAF38623A9D |
7EE63D99BD3F2A40EB8AAEB532A3A67F9B3955894AA42E9D75F9BC881B49DEE2 |
49BEAB9CB3ACA951EF555968F87DE9D2A5434343386894145F3A14E1747CB37D |
7385925D4DEFD23B5DF747F1C3F95F8C54E1BB7A45140D148CAFA790AE2116CA |
03CCF6A5CF3C6F6A6C0D5B2A80A3AF7FFDEB1F79E4115A093EF7B9CF4120255D |
E69C9900415EC268D4B0BF170C6FE3C68D6042BC0099927B38C936ECDB0817E8 |
A76C4B13BCCC4640697E805ACF40AD34FA1EC4056B99C3F0B4942618557F7F3F |
AF87D4C2C51AEAB3408DC357CA09A47D7D92D25CBDC6406D5F9A25AEE5C6E673 |
82F075EDE17195B3D2B3AA090DE1A84D1AA0796F947250AE7A0ED9D51445DAF1 |
40F1F51E128E82BDBBFDF6DBF7EEDD3B4727083B4E5E1127A06609EC55C7C3C2 |
752FC8ED342E0BDB0DD51653D26CF3399CC0CFF932252BFC6C49CA13D9A6F377 |
A960C0EB5B949D1E1D916D62363A0A4649524DE768BBFE9A20F9DB74AF11DBF9 |
C3612809B958AA546BF851A359AB9962DA86DFB9B163B43413B95272C1B2725F |
3D353A9A97819A3D2C5B73D1413327FEC80D538BCBEF18CC3E32906F945AFA7E |
0A9D2703A7BCB86E7C36961DEA2F770C39CFC74BCFE5E5713B6B274B8DB299B1 |
12FF68473AACE99BA679651B03ED0A85024FD396AF5EBDFED1DB3C237A4067CF |
8EB127FD6F4E6527250F6AD5B01BE71A81E3661BD298C836EEF30EAC0E3C9D7A |
6E85D1552A0713C1542CB06A034DE78C8CF76434F7DAC898331EB9D4CFE513CD |
4CB66A0C0727A4EB472C5AFAABE29EF2983C62249E69003BA75B258792B14AD9 |
4898D5A89F99718AB17AB01EB865755DD2ECCF75FCE1423BFD8C5B3C3023B178 |
FAD129F98F8962D1890629BF52CB885B17AB6C54B34632BFA82C273A99C1BE60 |
D18C15294C5F214E75C5C1CB7A9E1879D4BC38ED438BBA0E32BA1DB39C46D3B5 |
1366B95E03B040EF4DDFCE49666CC354726F3271A7350ECE94AA44271DD7AC27 |
FC78ED3CDF8FD63BC0118B7D53374F1E122CDF9E7AC176630DA96593CBCC69AF |
981A74D63BE517FDDC6DE9A9D854A266B53CF552A8AC10E31F23CEE28EDA78B5 |
6FD01E7D2C2F3B241E446AC0598C0A8CF502C948EF997F510530C7A66AE6847C |
BF901D02A7773A0BF6F4DA8AD9E7FBD788943BA275AFB3519CEA8835F3AF983E |
9040016F419F77EDDA45F2FE47E14FE33734C9369C3ACBE3BAF09D0C24F71A09 |
CAFAA3AC32ADA676994D08E005AA5A2041DDB61AFF47698B4574D571C789856F |
8ED44BAB41DCDFFAD6B7FEF4A73FA56DC468DFB5A2644EDA5E4DC6C390B8E04F |
2688EA8DCD0C1F22C5A41C0D3A8E21F4A640320CADC74B1A34A71637892FF498 |
A79E7A4A13CAD4B6AEEE018DD496F6556568C0B29D8018AD3AAFA2084FB0FF5B |
A05917576B109181911FE03BF339C2F9C9FBE40466E8122B7608028D3F19C746 |
919F25F23916334534813C5CCDFF90430EC15B80006F2F083BEAB53E07F75D0B |
07913D907FAB7B768E75E8D57102BDB38851D5E0E80B97BE607A0DBFD302C669 |
10A5E75B874C3BD511756AE5A972C4972E818C13EC0992D2514E8D8BD391CC5B |
5E30511B10A948764A7AEC439E8F6E97BAE46CB352F51B80443221A6E7076EC6 |
4D4C9A2D1F5E24103B22B54A2E2A536E4E7ACB4BC69A7B21480EBC79E931EF39 |
E6CE4B6EE8E83276E44BF1A4D100D94D400CEEA848B5D6892F07B9B1E9526A42 |
4A92A8A422CD483DA8795011FB9AD29044F125AD51BD1DDCB5A5E2EC49D65BE6 |
1D30AC94041358756A7A71D9D86D80024BC98AFBB9AA39D69149554ABE9BAC08 |
54914612E30E54FAEA963BD539658DF7E6061C6378A62CF18E567D8591F154D0 |
324B5767AD374B445E484147708D6A039B6CD9526FC556AEAA75BD60031BF32D |
4B1A46AF9AC089664C7A6B1092BDBC29B101A98D48DA6B25A65506B2B162A93E |
1DF352F5CE52A6B5DE5435535D5990E1783C6DB9E3453F79F467CFFFD9DDD717 |
228D166F9C2C46BDACED98F95A3ED399A6485AADB6EEADAA7BB6F4955A61437B |
336294224610B77B2AE698D1B0BC58532AADF5DA5DA5C2642595E828D93376B1 |
DFF64620D543BC9772C558D4CA175EDAB16ACFCE19E801D998E41B2D31BF950D |
00C8D492665FD99D14A729512312441325B79AEA4C556BC545156B0F647F5FE2 |
5149C7E3E5DD55D38C15BB6A329E8AF63A6E69A655B1D200B3926CDCA81783FA |
2BD7097846C289F12FE30446FB9A08BD23E2EAABAFBEE28A2BDEFEF6B75359E6 |
E90DEB11F3691093FBC3174EF120F1D8D0F7A07AB4D9BEA490A447FD8A0CBC0B |
E737D052A4F79C842FCB9576740DABDBB3AC3193B9C02778433AC90A441BB404 |
9683EECBEC3D159C3628EFC73EF6B1BBEFBE9BE5E6799D24278F79FED33FFDD3 |
030F3C406244A339AD196A16A0D19C323EEF9CE115EA7AEF02D51796C3D44C05 |
9ABFA59D1987EF7A4DB17EC219D17F3E27D0BB90E8402654D7AE5DBB61C3064E |
8CB7AF307744932AE673024DC7A3CF46DAB55A83769D74DACDF1102BFAE4273F |
898777DD75D79E3D7B78FF381927A354A51DC5AFFA282F95E5256E9A5FC65B9A |
09765E63A731428C9252758DB8F4A773D039D621C081F1BE7A3947F8C289F970 |
D6146BEA944C25A37AB14F8FB1B4C4BEAC2D71DFAB45A56943FC12633A82E548 |
47B3C3961E3732DC30ED5A23E1598371DB71ABF558C4A87B41C44ABA7E331057 |
8C201BEFF24B154B56E4B34F0725491B871462DBA529E996613D3B231381C4EB |
46A1910E4C501E2756356B52CD49FF14D48BAE646CD2AA8194B7DCD5ADCEAC56 |
DCA867B6A21F2D23681A81E1DBD64BC931D495B5B079C30824E1B7E8D6A49748 |
76B88572441A951894918303191C97B867D52241299E90523193906A25ED4B39 |
27E971D0F098405A96FE6CF71BDE7EE8CFBEFB54C5F1A4E28A6B77E6FA538D7A |
A53C38197141229DD28015A996933366CD497846D9AF0566A2C3B0668C427436 |
BE088F3B339958A930117163D6D26A6DA7D4725E6406D34EA7E255B71AA9D8F5 |
68C3F0FB821585C8CE5A326216E25EC28856AAAE935EEA4CECF1A4A76FD5A13B |
773C94080083DCA27874AF572EBA4530A4A81D0BDCC0173F12355CCF954826E6 |
16C0829A99A454CAD1A6ED89E545AA7DDE81860C4F4AB21129DB66B9E949E0CF |
AED7B00EE9486E2F4E485F2A3AD8888959CDC83F1CF577DFBEEBDB11AF050147 |
3A1CE99A964A4D0AF1E5B1EA8B934B077A4787C74CD38A4493E55AC5B0835685 |
BD8E5CD0989646900621AD5991867FF8C1073FBAF72930800EEBA064C3AFC8B8 |
B72651D833962EF945470CF795D1079AA6E75CFAA2D5E6FFC80948DAA42DE068 |
6E54F87EBE85750269DF57C37B9AF0842495C581E912048DFBF0873F0C02C124 |
292DF2A39C803778A8CC152EE1A085F829C7714A6A4E51D347F8CA6C264340D0 |
66E2EBA9A79EFAAD6F7D0B3C898E628C029A050620ED0AA674CF927A0E0C0CEC |
D8B143AD25EAAB90B623DA9FBDBB8A0497448D26B5B3CF3E7BF3E6CDCB962D7B |
EEB9E7C82369D7C2015396003860DACA59211A3337824219F95FF8DAB53F8713 |
D01017CC960A0FD7DB59B76EDD1D77DCC1634FF28D798283CE97ACC34F94CE82 |
8F32305742B7DFE8CD77F2F2EC6E75CCBEE52D6F79F4D147AFBFFEFAD34F3F1D |
AB864266844A3CB17396C5657499721DCAD704A35E3EA1D45FD765ECFFB6BFFD |
71025EEE489588B5D38D765EE1FEDE25D2AA9F89A9E3131313FB8C2235A266E0 |
A3AB00FF491A52F7C44DB664E158C989808876943D48FE652B80FCE004860B9A |
9092565808FE1789DA49D7ADE3253B2A2FB147BF4F8CD15C43BCE4E179797C45 |
B9EB456332C865E38DBC57C8A541F11B43E2E492453F223351E999488DC7A001 |
482A9F7163A581B25F5CD19D9A9C982AC64BE04FAD429EAE24BD6457B26B7779 |
3750E59C73CEB9F2CA2B95D5B5B6C37503C925C4AA486DC669B43210EA2070A9 |
914CA965F76A9577882DF14B531097535D5D9572CDAF759B2B5E7476A5AA565A |
B2C3F664BCB1B46771D7EEE1E7BA6235B7E9617F9C660C6CC283702F552B9094 |
BF72C61892441D343605A1D7F1F2F5CE162FA939FD46D66C8C0D0197BDE599A0 |
D88C4E79AE59EFF423D565E966A9DA9CB2BB064AE5E15CED1057B677CAB23DF1 |
DDB156AA6FC7983593310E283466A06AF5E493E3112824D259710AD881BEA80C |
A79D781142472C15F32BA6CC06D3F72CE91A1CDB9D71538D6C67901F4E48730A |
BA88918B55AA4612475DB20DC9078EF876AF5BC2412DD9A95CB33195AB9FFCFE |
931EF8F60F8BB5B16450AB3A29D730BB5A44C999328A4157CBBE2F85744A92A6 |
3D5DF42BDDDDAB3EFC91BFFFDA57EF00072A16AAF158BC569BC1FEA65CA882E9 |
4E490651633098723A63C7BEEDDD3FFECECF77754F381312E42CB7DA4C572DDF |
8895639027FC46ED15DB0C28EA6921CE3937E7189A31AB219E5A8945235516BE |
774D2D063C454A2C9440600638FC20C494DC49AFA5EDE50B07D4EB8D4EB432A9 |
F157423735EAE57C7A5709D90CAD9CA0A7175E78E1962D5B8E38E288471E7904 |
0D582B1BEDFBFBFB49F7C1A818B0C8840370148DB161BA108926E7A3890E5ABF |
89166A46E6CA6C793E5E104106AB1627757B2AD0F542665A60412B6FBAE9A633 |
CE38834E02095D02BC40ECCA2BE5042AC3722B3107F0AA9B6FBE1930E1DAF59E |
06164BD09BF3E67002095DF48895AE5EBD7A646484323E130F5599C3BB071D74 |
105AD257A42923F895F2041D42C66CC6228D780B689CF4181186BA0BD039BEF9 |
CD6F4ADB12481CE34F32EB10D35BD57811C5ABC890FF333F3A9C1D4F64DDA0D0 |
28670F5B3EFAFC8BB159EB6ECD6991FA5E898D456A128F2D2A368B6216E31123 |
DE199487C02732996C613C1F8F3A5ECDC70640864F493D58BE667C70346D15A4 |
86F67149C4A431DD1524F3CD7AB3159E6AB5444BC8342D838655703BC49CB1DC |
46CAE89E092A122D4843D0D837CBD37D8E8CD43B5B314DD2D1AA289AD91583A8 |
5E8D444D0F5C2B689DB572BE022D013A43D248E48382DD69BBD3F5B8677E71C3 |
951BAFBF72BA3AD5E5CA940C003362D6305493A6996D3AF8ABD0AAE21C894B90 |
B9E2F22F5E76D1A9B548CD8E8951C2727BD231B718292EF616156AE3C5FE4662 |
C40730BC54445C2FE3DB915656AD808C962DBF55B91F6A8A1BF35DCF8B36A219 |
DB9FB0E3925EBA68D9B3A3BB9A563E9B05BCDC62151A561C1AD08D1BAF387BED |
29AD1B362239C36D6662B592990793EB4958E385CE94532F59A5CE724753CAC5 |
64BD4F64B20C68D98D66C39FBD5B24C05E194D538206CE4BABB27442A219A94F |
A7833AB4E8295002AB335B9EAEC9F2BAD42C19ED48C84425292634B27A67C39A |
AEDB582FF648FCB1A6DD4CA4C49B1637BAC4F1A66AB15AAA9C8C48339FACB682 |
825B72B3530777379D78220168572AF956286A4B54E888E58C5A61DA69CA8A03 |
96BFFBA347DF7CDDF569D389D833335579E7FB3FF08B9F3DE4554B60CE3D9D3D |
E3D385BAD4B54C80161D7A15FE4556956E616C386844357728E6AC9EAF95D716 |
38484A29D47C7FCD35D7AC5DBB560BBD312C955C4123882494C915B40B38F315 |
0A7DE1E2F212E2043CD8E19874721769935ABD309DF229E9205FC74F14E4F19C |
0E74DE4A8A2F0C72A5F91B8489F662BE4BF2C7495201A232A1F5FC980301A08D |
8D8DA119968C66F8AEF7896BA6AB8462EA59884D66ED6F98EAA64D9B20296BF2 |
54387DE14FF9EC8F13BCF6B5AF7DFCF1C701348CC28B29687DD2AB8F7993B8F1 |
F21B7EF6E927A0FCAED7A2B17E6D3870C89CBDCD0DBD71EFB88AF0ED48AA1531 |
32158D8DD9ACC005104C539A1928CC20312CEA89279E90B62E28B3EA20B32019 |
7440F514FFBE64E278E5B1587FE647874BFAD28A3D8900B76D29B7881D786610 |
B10CA9663C6BB2155F28990A08437CBC518E35CD0C089B119F094AC96CC748FE |
FF12F726609295D5DDF8B9FBADBAB5F7DE3DD3D3330C302C2218779468CC1792 |
2F065CE22731B8B04410019961DF666084611F706411028A1F286A48946C6A12 |
F9DC9098888A802CB34F774F2F555D7BDDBAFBFD9FB7CED4C9659841F1C9F34F |
C1334F77F55DDEFBDEF73DE777B6DFA90A5A86AC05BA6A96E3B79DF0961FFFFC |
27BEDD914D251584BE234B5070F5AA20B997152D0805918D047E2C5CEBA23E4B |
16BC466A88E252110EF50E98AEEE1828F447C6636BAFB103C660AC333857AEAF |
7B68C3E68F5EAD19C27AF35C5F3734CFF1A92031461498361CD7B5B229A7DE2D |
E4ACA566475813CB2DA8B6741F0A6A6131F040B651D34C8523BBC385B4950D3A |
1D13225CDCA2EF8C95D3027C7165342BDC14581D1C6FCA4E457A5795B3A3839D |
4A25EA38522417B362EDD6DB662C972055D1BB86E8E7A478D9AEE37BB8F87455 |
3BF684D7D7BEBFF4627707644464E5E843DFFEE2CEDDBEBBA0C7417E6050D58D |
EADC1CDE3752E456C1846E008E2299DD411DCA0A8CB4322D2FB44DE1CD0A2023 |
41D934CC9495F1DCA0DD69F718A08444B6E010D7DA1EB7616C7CC54C7737BEBC |
11F590BAB3D51D94208AA181A05DEBE07CAA0E2AB709BFB417AA38FD03662674 |
5A68D1D9A514D8BEE86DA07651A6E3F3E63A0A3E6FCBF44CC7700403B5D883B1 |
7837C4C582E052B80B47C2C139B982D6160A861041816EA95A27EE347D156ED8 |
74D3E6DB3EBFB454312DDD736C1FF53EC8BAAE52AA216D25CEA9E18EC2BFBDDC |
A07D2431DF4BB2108C135D9816F455A822C940E63EAEE42CA65C7B42CAF8EFE6 |
CD9B118AE2CE5CBB762D9A9F494D20F7F9FD79C31F7FFCF14F3CF104241C0B90 |
E806C749239CCC43329AE520D75541DF35CF6D5AB9431E8D8A612CC3762EC125 |
F849B832A9938875F984134E78EAA9A750FAD393E2B9DCA58B4421590C14FEE5 |
F006AB13D23AE40222638B4D222ED4FAEFB2096EB8E186ABAFBE1A8532A9F687 |
1E7AE894534EE1C4470AED9081956CD07A409B00FA1962C95EBB4C7121F5FB85 |
B162604F1D97EF51F627117413D3354FE0AB68025E061C1FC29B123B45921F94 |
D896C8D0A10A70D23DE419FB9FD204B88C82810CCAFE521B6574B4287541D5F3 |
B6D750828C0C6DCD106DC99CC05470D3496381F992872F2E3EFCD043B76D7D5E |
82D09424D3D0DA8EEDA48B63A350DF5593E3711782505EC453622FE5E85D945F |
464FE28B8F015D4D8DBCC042E13C28A3400A2A5E20C9760E2FAB671BA106C3D5 |
EC9EE26125784AAA099FF982D016CD8CAA878855972F5B3E3D2308048BA58280 |
8AA86A4AE946B50BB1AAA8B16185B61BA3C4D7A5AC11B49AA626BACA74DD6288 |
DF151D458EC32550AC58EDAC184A2DCE74D55CBAD19521D07388B4730E34DBE9 |
C9F1FA9EBD86A636144FB4E4D141EAAAC2E2495B1D5B2417A44CABED74D00ECA |
9534BF1A99B2E966EC4ED71FCCE52BB546694DBAF36BDB2A95BC2E44DDB00B61 |
6CF820BB26FEAAE7BCA0B962D4E856DDB283E3B5CCEC8859B3EB309F161D1310 |
8A87BAAA3433BE2082CD8A50B422E3CA44A915F402815A2A850ACF8EBAB8CFF3 |
4AAEA6E8E0562606D3A92E6C0B1D4D89FC66DA0045828E538CD0D49B50F2D9C5 |
F917F2A5F16A7DAF1E8B66830DD1162D8FCF3BA1E5E6DC9DD948727329B4CE50 |
33A04A100E3E516E87F2080554EC385E6F6DE37E9151774B4EA865B35264B81D |
474F655AC11268BE81BA533674C40DBE877A3E30648882A18965DD6AC36E77A2 |
5E3B6194964F3EF9245559C16F5D5CC99FC9C949DC2FC29D43BF93C424A94780 |
17E51139FDA53E99C1ABDC831CB50CDBC93C271F08EE4CDC96DCF396C2ADC924 |
1F0E6A330933AA8A6BAFBD9662CB44BBFFCA6623D03320284C4D691B54574C16 |
03425DFC950AD088D599FC18445641D2017A623D49E60709CBE3F0C30FDFBA75 |
2B299564F0908E640E356ADD8CF378F9E5976FD9B285AAD848A426498AA09F74 |
4F88980827B8E11C47AA99ED00FA4A91843B0548296F958AE9A85A82EF42C750 |
C51C0557E1E5E4D2D0EF5D8E33895A01C7496A553A48EF4FD6BB3463D4482ED9 |
A2875E0A75DF255D4B689DAB31E2837481869E3E3EE38C33EEBEFB6E861ACCD6 |
77404DB09FAA20E4C1BDF7E8934C34A094042A7063320CAEA0F9FF5913447AA4 |
C96ACA8E7450C46B40B124ABA576B7AA83EEA108C8C76800A75C35E5DB4B2E1A |
10AED83ECB4E3FFDCCCF7DFEAEAEE776EC36983DB78F12A1E8B45C28C2641542 |
5B9D834C2435211D89C62E3EF8822B4181DE8E3240D224431A6D4508B866F5A0 |
303CA0CF08AA9ECE70C66C6BA1B3B73A00033618FECABD9EF34ED5FA65B0CD01 |
E1B20BA22093CEB4ED36CA34D590F594DE6DD972A8A5B46CDB6FC6726058A085 |
96E2A51B9ABDBC3BAE433C3B38E3044EB63EA24254CB9415BCBED92B455625BD |
935D73E8B17B9E7B2A0B9D690D560D8EBFE58477FDF087DF9F5F2C47A15C34D3 |
CA88AE569DC5162A281928E48638C98F4A29E1D9977D548520DC553E4CEA5375 |
AFDA82666C09236AD42E4471B50CED60184F510ACD52CBAF8745FFA48FBDEFEF |
1FFC96DC4A47913EAC4B8A576B0CC8A96EAAED879EEF0C0E8D54CA750D22CFC0 |
05ACBB1D0F22B4A2509B498A26FAD4F841387A74AEFA4C33924782C8589D894E |
FECB3FBBEFB1BFB1172AA1919E749659A0CE8C4DB73AADB1D621134343BF8AFF |
3D2C6B216A179C5C17242F25C529135A79F0E744A22D0A78358A03B400143014 |
08F0BEC43E8B58340AC496406BC0B25246CAACD84B606BA3D170045579309E57 |
1CD1DEAC9B534AA56E756E79318B67CE3B1DA350B4CB8BBA8CD8482197F8CA95 |
2B897AE037B2A41CF013F759F4A5240743B22D227B57504811D316B79AE2E27E |
4E84677143A543740F4EA181BE3780E988095AE275C8B34FBD71C85B42E3E1CD |
4F0325A1C6AC0F745FF272241137F450305909ECD3609B23D9C7F1957CC5E438 |
2256353235509311C7354E13DE940B74998F4FEEF7F266D8CB0616FFCC4DC929 |
95082F4BA6030B3892F86CDC9130A59672F4985FFCE2174F3FFD743A85E6131F |
1CFFCA14224C864A0F78CF3DF79C7BEEB944328AD7472DB57AF56A149AA4EAF0 |
CAE4343F9826E04A3AD6F14C579EE478605386DD7D5C500D2FEF8BC9D749F6FE |
3CEAA8A39E7BEE393692F6939EFB89548AD6B08A4D72D642DFCEC341E278B809 |
28B9BC92951CFF53364154908D6AA0823CB062D55CB5E2B7EB2275B204A9664E |
758C612839D05990AA816543A80F0CAE5C6ABD28E8F9ABC25D21C94AECC5FBDC |
084AB0C2186CD8953AE2D99134CC68D0755033981D4D158D631CD01019A52227 |
CA436E402EBC94FA35B8793C4B1F76DE72CC9AC6AEC6F6ED3B3ABDB7311CEBE7 |
5CF8E96B6EBD5DA41299F0E94F9CF1E0ED0FAC3EEE98E79F7BC190CDC00BF086 |
411CF891870718BE9A2EE66BADA5E2F0506DAEACC4A01BE9AEEBC180C83D15FF |
939B5B835C9C725A688574DCD16CD06AA9E140CAF15DB0BD54001300D3A3BA57 |
2C58FAA2FB1C22EB35D1B2A657F3A05E498BD335B4239BBDD48CBCE6B93E7E53 |
B427F26AA91297DBCAD26071ACBB208C0B7FB093EE0C56A3BD222953105A0842 |
D3C8D6C6F313E097F72A5D14AB301FAD294DCEB5661A6A4B389196062C75C2F1 |
AAD6A4B46A62ACFAE46EDC9D36545A03865B7771E0B974CE757DD7EB8A68810C |
59055A19D0BA66DA571BD9767E6040DB56F387B38DA8091D9106261E56426D2B |
AD1E9A9ADEBA2443535E39DC5A5CC4D91E874C2558F0F2010C89E705372D6220 |
A98A2CC35827130AA3A0B954D4FC966010917AF2097A817BD3326FDB70E73957 |
9C8E7A5EF05A3BE2E926971F56DD55E9A0DD97F2B594D768C462AA233597CBB4 |
9A75E9E5D53FEC5478AD9A803236C545709F103446894F397C0F3CF0C025975C |
42929D653D77B190A4FF2A46A3FC10CAA3205F1065E6724A8FD5FB901380B88C |
70F3A3604240CDD290082148DC535A37799928A3833CBFF40DA1F524370EA537 |
8C8F8F132B353964D84912BFBC0F25F47B0990726255C72E6FFCF2CC33CFBCFF |
FEFBC9D1FFA637BDE9473FFA110E008FA10C7AF68424773BAB1CBA38C530A04F |
5341B292AAAE08AA53CC19FA0179E8E75C715D020A7A4A75253F1885FBA9DE9B |
1512E7AA422F644DD51B1CD7491A4FC90000F9EEF1FAF846C8487AA5268084A3 |
898219449DC47001FA044D74777A8AA4D04FDEF7959A80E240644910A4E0B0FC |
C184359986DC3169BF843152486468E2BF1B366CB8E28A2BC88947DD359886F6 |
7F44130C98BAEDF87629FFA63FF8FD6D8FFF50AE2C55504C7C70322357DA3FB4 |
61BA97697E1AC8934AB43D046D78B49A95BBB0F73F774239525B6A1A95088429 |
D06DC8E6A1DD5DDD5EFA5F42FEAA5F3686FCC18AE1FA1B2A22057DD1D3B541B3 |
1237FF6D4990A37970A80D0DC82ECA2D5806237F906B0D8DD9E9368C2CC27521 |
548DD5CEE0B6C1FAC499132DF785E670A1F4E576757B804033ABE7DA8D4EDA4C |
B79DF68DB76C2A8D94AE3E7BC33CDA1FA370C8D16B661E9F4ED97A3DAEA164CF |
FF314883D9747ED8DF512DFF5B0D7680146AB1AC5B51C755CC426AACE840A0D4 |
760ED6579C7AD4AC56D7AF9B0D15599F8ADA1F85B8D8EB78834F360987FCEC84 |
EDFFFC63753A1AEAC9455CF7C13269D91FBE79E6F09F0AC342C45861B435367F |
C71CB455308355CEC48EE2AC768E35E8E4E6B6CC8DF98784602F4973660C9E9A |
8A02E3F5C5C99DB55FD57290FAE050BC227DDCDFCAD6C0E4BFFDF207E6A5AA93 |
0B0015C1B00E03DEB1FFF7F52F3DB7D5AED89AA44A91E4C7BEACA9E96C5AAE4A |
5D6828EB879C54377D797B756EC5D3DA6E84E7C3E74053D3ACC288558DF6FCDD |
5E7C713AA4BD301E31BD05475220B342CAD5E23DB541587EDA11D3F6EEF45DB6 |
88870F895E05B01A602708B59485A3FEEEC8E91D33CDF9A614A19960B8A1DB8B |
57C3AA6862C79A593849CFB752E72C3FEF3BB7FEBF6DD5E76CA99E95D3757CF9 |
2538E6DD4795FF63219A89EB763333945F2A57A89E9F5A0AE2BFE4747DAD88E7 |
820B2E78FCF1C79F7EFA69896531E17416FDA818700792BAD82F5A489A80C135 |
55FA40CFA3F2E28B2F92FE20BF33B1E443DF1F42A79C76DA69DFFCE637C9734D |
EE94642748AE24DA2F8D921D38D4218BC6CC055C491E3D1640FC03572D71B61F |
A913D26749473FDA2EA81528C5050F66D75B9CE8F7C63096B130894EA6596677 |
36394F985E02150CF5D2A1BA84B8DF1A971E901C4D943B4F3340357A34153818 |
04E6244FC92D8E2F08DF083520A3DC2D3C9EAC2EFC13F3CD91F580A71C79E491 |
08C351449258A4A2E2037A87384D9322ED38CFD4B085922C93BD25181624253E |
CFFC01BD4334F9447C4BDCD7D4D1F360A111AE4F4E0684A81D1BC5187048BC0C |
68916CD9B205A10CB710F89FB50910CB747B8B6C60D9D8D2EE5DB8A597FFC9A8 |
7FB8B578C39EA8A31623AD9B695A9F9CECF80DE7D10674ACE1C17871DA468340 |
570C2F883283C5B65387C01B82B1B232A79EA46ACB53DD9FB6941F401EF2221F |
68635A5992DDC7165101189EA5074106F46C26FDD2C442F6C594AF83FBA942DA |
08A57B16DBA1687592F233DDEB532BADE53BCF7A2E35E8766F01F9A4C3F4353B |
D20FA7ABDB9B29D3ECD69D5276A0E3740C0BB14BCB884C77B5237F501E9146E7 |
B6EC55ED7490B34B67E6AA434DB80994364467CB7A667CF8DE186ADE74A98C52 |
4B72D206981E549D12E81FD0572C3F76EBDDFFA135C0772D503BD685595C1AF2 |
037EBB62A080D133E0E0B69625500CE1204243C4F325150AEEB21A94E13837FB |
E6BCD932CB8F2DE88811C1D77438E293C76EF5E7BB0FCDAFC9BE6EE9455C8B0B |
85155A63B1AD39793956E8BEA58F95B2D6E4EEFB7F291A47CB39909AC5CB073A |
9D2EDED7A9A3CD55FFA3534F7CE63F9F9EDB3ADFABD612589F24720E6D9E4D13 |
4BCD5A747F5D1046B5F50A78DAED935D6911D63B8A0DC65A2B548AC53B3DB32D |
EF2ACC1B2EC4DDD4B032520B77754A90FFCBFCD0C061DBEEFB4FBD86CF9103B5 |
A97FDA54553DB8A7137407A4A82C8F6A7E45C44824914620A46A28C5A2B37D36 |
CAFD69415E95AF7F6F069E90F330E043CBD63AF75CBFF153B7AED73F3E5C50F2 |
8B776ECDB6851DD7D26C43DEE7CC4876D0E340EF6FFFF9AFDC21BE0A093E62A5 |
27F24E025F4CF3C91E15829C247A28671F372462D20F7EF083DFFEF6B7290593 |
4689B7A1EE25885BE9789402681C301705A910DCC07805BC0BD5F792039A3038 |
5E9C3132B983D6AD5BB779F366AA42228F3995C893079C2848F939994883B0ED |
F2E5CB5157D180E901F15C72587116CDA9A79EFAFDEF7F1FE50B993B78223E05 |
35D7247D401E12669EE0FC71FA2BFDCA340FF46E48EE939B1EFAB614DE9DBEA4 |
E02D4D268537C930A29A3EB9D730807E20104D7D3D515D5D7EF9E537DC7003F1 |
68E2BB43759B749DF32B63777CB28D33C041BB40EFB75656AD5AB567CF1EFA99 |
7C4A149EA5DCD3FDDABAFD9757A4DF32FE9571021C00BD5F8EEA3327F6013501 |
F111716107F709A07A695421EF7DEF7BFFE55FFE855215B81107D11C31F1D16B |
CDA9F8EFD204514A023B1E887509BCCA7024FF9F55F901AFF6E519049ABE6CA4 |
62B99BEDC20579CDE906F778C34D6D418D539952D070AF5F7FED8D9B36B5FDAA |
A44781700A807B7A0EC606E0BA5DCB978AD3521D8622BD0CE13550AA5AE5AF75 |
8C0518904B4B08C9D3685B888CFD947C482D6AA20611D183B20A56B4EA2F96CD |
8FD7ECDB5BB056E498C26D30D25CE92895C6F5F6313F3DEC573F791EAA50CA17 |
1B9596611A364A680D327AC13C5DAA1C56831AC066C88543C3EFCFEF38669B7E |
D1800C6E8C064CCA874657717B694BBA0A72A005C5C8F7CFBAEB630F54BFE46A |
01DCE21FB534F2225402A90866052EEEE5E9DC8AA8C7B01437D055B71BA912EE |
05B16D719B3A7E1BC5A4A1A6DDBC5DF88005CBA2FADF75E15768DB4CD4A2B9CE |
6D91BCDB8ABEE24CB6265ADE4C4D8B202F21881741F3B6B56C687C26DC9ABAD0 |
725210DFD039AA3C3297F5AA2D6960D25F3AA5A5A421DC04929FB214D1D14C84 |
8E7D34A8742980208C230D0294C93787C5EDD9DA175B435E4E0B86F766B615CE |
1F6AC765E586129ADFAE1A4049A5E7350DB513451F3AEB233FFFF633BBB66F0F |
4B6DFD02D333F00ADEEB97269E85B9100AA055B50D8A0CB1BB31020FB19EE3A4 |
85DAD16405D0940D229144A4C9912CC537FAEAEE6CF0E576AE961D4AE97F75E3 |
B9975D730D7434D3F3073E35397B6807E63D78A475DF599FBB68C3354DA39506 |
9D5C23A3A3A3BB77EFA62491DF8DAF0CA85517FDCE748F8CEB7147C9BDA62E88 |
E5F17E547E493B90892550FA93DF9CF62A8AF8E9E96936DED97BCEF921F82F4A |
B164439264761053C511BF0D770A237119F79BBC737D2FF4FBC8CBFDAE2CFB89 |
B324D11BC1F337BFF9CDCF3CF30CF79361B73EB7151391134922CD47D4F3F4E0 |
2494B91D04C7459336017DC9A5092CC7E9D1F016D450F3DDEF7EF71BDEF08607 |
1E7880EAAEA11FABA0BA071CD2638F3DF6A77FFAA754EB443D4F70C6500BE261 |
28E8F1076A7E89B7989898A07A3476075168975F13954DD0EBC015830793FEE3 |
84A8576A02AE13847E15052A9B4B2FBD94FC75D404825F04A709ED2701D93574 |
B038014F0E2B4B5AC7F83D294B2A73C50133F114CD0679A8186ABC52F2523C9C |
743F4EE3238F3CC2C1AA641F693CE6E28B2FBEEDB6DBE8ADA155F1894F7C62D3 |
A64DD0AFF648C69F706DE3C1B7DC720B474AA869D295575E79DD75D7B18E61CE |
77760F8AC1588DD2DEC1C55CE5DA0B2FFEEC865B32170F699E52BE6BDE0CC01C |
9DA89717C1F2C73E7E1C04B5B97FDA75DCD1AFFBC58F9E1182DB0125560D5978 |
0F8C8C66E3F85390B9F8F76CB468EFDE3D150EFDEF8F7DF24BDFBEBFD55CD0AE |
30326DEBE4F69F4F0C0E5F7FDD755FFADC43A75DF331AB3EEC1A7AA0CC2CF707 |
6AA9B0EDD6C05F690635E9D2F69811EDF8AC061B5D434EBB1BEC5290F1D581D6 |
6DBB07ABD9DAB55E414A2F656A690F4CB7E458BE2DB5603DA4168CAEE5420694 |
4B40970ADD8D7588D2F0909DDA96294AE9BDF945C493E9DA90067AA3B098A9AB |
ED5CD768EB5EECE5AE9F6ACCB6E1DEBA159831E4EDD46C4E83E67A09A438D7CC |
36AB2D182BC0CDF5A263D51C05F2C1B027D220FCD280D36814D351CD8B602348 |
8D427C573DEB2B057B62DA98D3AE344ACF0C2F3CB9039A60350B366871B652E8 |
4886595A502B6A132176285D36A00596BB79D60C51350DB68BD34A13C2DB0DF0 |
DC7C3B27ABCD5A47817B43BD9AF28A4EAA964148EEE6DA4AD308332E5C66C1EE |
D2D0439D72AA0A75A1D8D0903AC2519EFF7A98DD5B40A3663E53118EA1EA900E |
465D9F313D2D3C2A1B3D57CF15157FDD68B71A661EF6DD725B946A2C9BF3E720 |
FCAC60CBC854AD4EB7230F0F8637560E785F631D14CC29E78A5D2D79BC187596 |
CC2E84D982566C5F5E093C115B4AD70CFB6B2E5A7E3895A834DDE8652B9FFCE4 |
B4BBB9D108AE40926C4991C86293626F04A63FF399CF48EC6BC6331F7EF8E153 |
4E3985C8705EE957E53441DAE19CD2434603E12FC2B9F83D0A29DC6CE45C3AFE |
F8E3FFE88FFE68C3860D64C5A3D6215E9A9999191C2B85F556AC58313B3BCBDC |
3849A633CA4CE5C49BB1B13144E8246AF1F9F1D65BB66CB9E69A6B504A26F120 |
F4F362E30481DAD4D4142A3C2A11E0C827DD8886C12E20726731390429129292 |
C9C498FD22C6D4F59344F311471CF1ECB3CFB2BF883D6078305964246799FD8D |
4134E9421A1E553EE387893929DCB266CD1A9C3D3223EEBDF7DE8F7DEC63C937 |
C559589FFAD4A7F0AFF86AF09AF8F3C68D1B934D950F163126D04D821EBF4135 |
80CA804B1369C1D1FC24BD498CFA93B199576A82640212B3B671A8990646DDD9 |
68BAA82D33FE9502DDAC74F7C33EFC2BE9127A6BFC4E29BACE3C5494C346FE40 |
22B9A2AC569C64D2195CF988776793940AE6B940816F4D9179B60269C5E231A4 |
4E021F86B5232BE6737241F23F98863708F631554D65CB47D6BEFED47033B3E8 |
B5A5EBB3B1D9826760C5C4A193CF0DFDC70FFE23EA40C91A6C541BC28F2C478A |
298FAD2DCEA4450316E13A6F67E12BEDB1DDDA9CEEA1A406134AF2607747A5FB |
0F90DBAD2983915CD554C319EFC28EA2DEAD7B22BB3D0BC199002B44EF4CFD3A |
C3FBBCA9EC6D869F17C467F9BD6A63035A1D90BD7F289CF36DABAE77D4945168 |
E42B23A78F282D6DE9AE8E7B79006345E5FCA550ED8C5F39B6379E1BDB98A982 |
6A9472E77EF2A377DE787D4E2DD564BF03ADBC57F0535D67584EBDD7ECACA9A1 |
E42A99B96AD02C6D18A8E6AA6845AC3AEDE89DF73E1BC703F9B7FA8DDF6BAE0E |
5695FF66B6515521E51B5D6FB0589A6D36F3192B68A43BD9B9910B0A43BB079E |
FDFA761154D0D5D4F956D76A8849C0C5B21D86BF3A8032B761B8685E0CC5F9AE |
D56A4377E28295B3F99D222CBF17770B942E19A8A6961413464E5E3DF7E56D78 |
5F282E0DAF1D58DA1E875FAD43188D4606AAA639C501532B9C39E68FEDE91441 |
DE05F80AE06145AD86C19D0A94A3A96B4B1590FFEAE273BFB0E526CDB525D046 |
561EF2D2EC0B45AF54876A9C07EBD462E7A89EE554051880D215E279D7AFBFE8 |
919DFF52FECA8BF5BAA5BEAE1EFC7EA8B44A07BC6F3DB70786C5CBCD40BA7DB9 |
5D8AF2D5950DF3F7F1D7E1EA3F2C46970F0ED4C2EE67635BB50C98758311C3A8 |
53AE7C32F39BCA30596EE0623EF4D043B76EDDCAAC3C49227D92DB9C8CF3B2ED |
C4F4908443972F5F8EBF12AD02A52DD2FDB8228CCC023629701BE09D888487F3 |
2369B7C77DDA1976F7739510DE0BBF3CEEB8E37EF0831FB0EF82535C92092A9C |
2D839294327CF03AF7DD771FCA38561EEC60895FDE9B9E85233D2949DB65CB96 |
A1487DE9A597D0BCA23A613C38D9F486FA6BD26CB0CEE0A809CB353253701210 |
D4531E148EF01DEF78C777BFFB5DD2B2CCF221F71BD7B028A47749A2871E93E9 |
4889068A5E0ADEFD739FFBDCDAB56BF16A846D93D4CD54614B856F045AD9F996 |
64EF20D38D9C697070EF1067A4D18BE6C040D2B984A0E19FFEE99F9E78E209B2 |
6398BE906474B287F07EDE21B60293A1A064E919139C104909190AF8D454BF8D |
CBEC80F507FC2B1794E0BC71688A0FE32437BA083E1AB14571A401F5011E8FAB |
6BDDBA75F7DC730F9306B2E8C71B31091DC21D5412FC144C97C27E4B9170FCBA |
E35E7866CF842A5503B7BBB104F26EEB2AE864F2D286463C0F837783D385F695 |
C24D7BFFCA5B2E3EE3E2F3EFB8FAF69B6F6FCEB7A508F19B0C2291525410C379 |
B94C6EC0F9ECCEBC0C4BEB7BD9A89B109416DCDBEA63AD6CE31AC944510AFEC0 |
D8C8F23F9EFCF1433F334B4BDDA60C8A3E941DA9CD07C1CAD9E2C9A51A2C83AF |
FC4AB44CBE16D18A0F9BA2E5F5D462DED42FAAB5F00D5C0FF9CEB85CF0EDBAEB |
EACDA10B87CBB945B80786F640F966199CE8D0F5F2D66C24DF726461C70BF657 |
F34EB986964D4E3396A428547C4586A166B6AA85684BD4F2A05CB63255DDD9FE |
3C9AC9329CA90D66BDCA3DB13C0BA695CAB423571B6BFA0BE3EBAC85C80EFEDA |
2EC6A5164A41DB960CDD0F83B194E5F98A7D8ED655CAF0200C35A011281EDEE0 |
461F6CC85C3D2683D9BDAC66781DEFF3BEE16BAD91FCF5E75D7CEB5597E27D53 |
EB0FEF6E7B51FB066E7C90CF4B0F584EF9DE28B5A0CA9A5E6AA93539DF892A78 |
DFCE50A7BEC9053FA29232CA084A5FA974A530BE1E46DDD1C646B7BBA766DE0F |
F96B972D983370B3091D278B4739D0D465D023F060CCCBDDFAF05F9F77EA87AB |
AB0C38B5087BE787FE9F5C9E8F5297162DA55ED91C0F427EA9DE180A0D471D35 |
7251744A2D5C1E1EF0BE8AB2DCBDAAE96955695329D7C83B37EF1CBA429F19F4 |
A7EE8EE79F07E766803A14AFC7A7D724C377AC51A5516639CC0A007F40D1BF6D |
DB36320E70319F74D2498F3EFA28398D930CFC64FBE2F2E610A3C4A219770EEE |
73EA4F403D4FD81992E4ABD9EF93CD679ACD36EEBF6C26EBE33BF4FC308AADB4 |
8592018D800B2FBAF0D0D5876EDDB675D9B2F199995E7B325970F5E13B354D49 |
575143F4AAC36408244588B2482457E1A696D1021265F68A1BA0A0440DDA4301 |
FBD0A5DADBF678A2F8531CEF8B75C852CF8D1E1F3860F2CACC16B9DF4A93C827 |
F05F9411AF64FB6181C83285B2EC494C43A283234E3DD92808DBA9E70F5E9033 |
5E5EABFF8E3291288B9F53C4F0D608CF2FBAE822126A2831DFF39EF73CF3CC33 |
14C62075C2C58084852936CB6DDD92D9532CFE5095A2D4838485442F9D72A592 |
8C781C39C765840616DA25289A893D826C522668A2B3E84F5CA94E63C0DB3DF4 |
D043347BC93924F58F17A17A14323B78F9BEEB5DEF3AFCF0C3D1C4A1459C4C24 |
4D6A02B6D828F4C2D50FF48E4821714643B2DE10DF17FE4CC90294AC45AF9E19 |
96F007BC208E9F6AA7090651E22F17B193DA2055448B41641C8EA6AC3931E1AD |
1B04E3D0AA2BD42575B07865BCAB5D956FCF4A5E10DE674B0B8179B51265B292 |
693B350F577BC6CC52002994FCAED7D53683370DD90733AD85106EEC16BC626A |
03CCC58DE2B9137A0A16EE9A160DEB25B3E40CF88737CB5B5B4AA48E0EAEAA55 |
E66DDD1F8ABAEAC5D9A566CBFB1620485FE51FBBFB9C9D190B82FF1BD80B9E85 |
CAE6AC381A97DD3BA24CABD80EEA469CF286DDE5A78FCCC973BE350E9D69DC6E |
CA4A283EFD86A53B5FC89E66378F80811B47CEFFD49937DD799BADC6D070870D |
A3E5BADD5E846EC233664B2E7CDA5423BF748BBAE445E11D3254DCF4758531C8 |
6D87194845A75F7CCA176FFD1ADC04BA37E87DBE72CFD9B79F73D9C5A5523A30 |
4DD7F38C4A1D415CE56EB10F505D59331D0BC65AAAE45FBB370897E5D63715DD |
AE5D164364C29D9D6C4B0D8DD245D7AFBD6FEDD5F3C500CE16A55AC3B79B653B |
F06FF6D00A495F5D1884D41E585046A2D016957CA289CD62EFDF48E423412F09 |
36F06DF5CA20F4A6A23B768946099B24797130BAA3BCE2B2E26EBD06EBD5F1C1 |
C25CB312EB90B572FE4253D6245B2476C553416697DE868BCDA17CC6BEA86215 |
4717D7CEE315EF931E5C7FD985762E7432752F0045851055FEDC81EF8BAA6178 |
6369D1A8021E138C58F72F743E902A1A0335DB80E1563A5B75DB41AEB3A2F637 |
BB61374CC4B09848E9A6AEC3492F0EFB7588DD8B4413D12CA27442E08B6BF88D |
6F7CE3534F3DC5FB482211C3A49B37DD74D3FAF5EB117CE1265FB972258A18BA |
C1C14B40A53CC2B7DEE58403DA0F56AC58B17DC776B17414DC639A6D0B303532 |
5A5858A81F7EF894AA23A894CD949ED235498E02DF0D433C20AA3685D33C0E7D |
E1D711725F9163DCD24AC7165011F50B8E2EE8D5CFEC13E9A83D22723EC8FDE1 |
FD86A0F97EEE6CFA70E89BF63069416EDEC4228C6413B312B12EE1803027DD73 |
B63B9D4EF8915CDEAF49137012147BA25875E1CB4235802F98989F292C416791 |
FC253382753CA90D3C0B251AB784238F3FFE70FEF9E7A37649F73E543F816F9F |
421A491639E8773B6052D2D1D1515C1E548FCDD65BD20EDB2F98CCD6C031C71C |
F3F4D34F27151E657C5E70C10577DC71071D4957A00170108B9E8E8B510EA809 |
924CB1F844E4674B727BC0CB990DF129289D8CE699064303C369C43DC38000FA |
B590641BE12DF018EAB2475029D90C030F43858DFBF0AACB2EEEC4C1C85829D8 |
DD88CF0DABCB012E87655169E6C2AA7AE86474767318E4F90BAAAA0ECADD2537 |
0A206C16F38566AD895BA1878822DAA6139F81D922C016595A4AC5577452A111 |
DD04715A4F9F9F0E65A7755F431CD814E4A675BD9EF29400965BF9C5BA04521D |
054DCA57BBC68275FB91EB6FFBCC5F97E3B9F6864EE441FEAB83EDDD6158A8A5 |
AE33C69E1DDB71DFAE62B1546B56337EA6ADB4212FEEBCA27AC85261FBD8A985 |
965A0FEEC03BACF2AE6B98C5A5ECA7333518014389C3970607D30B4B9A70E028 |
0D51F0DC82359323BBFFAC5BCFB5E04669304E55AEEB4CC1AA5D572DC2581B2F |
A1A1A92390C9B2C6BA17FD50873BBAE9969A1F1B999B9F150D9F83E8B0546E7B |
A71EDDA54ABF1CD2EE6D49A94E2C8DBBF16CEA3CE89A8ABE318C0C08AE12120F |
36DB560DAD9BBC97AF0DB896E7B4E573B20D44E817574BB151BDC91FA81683FB |
D38D60B79C12F3A3DA391F52E675F56ECA854BB47428683F4C19ED6FB3063E5C |
D14937967977CF84085837802E8F7937CC59A7CA9D35F1E4DAC1BD90B34AB938 |
7CA1DDEE4AC66018FB92D98855C328BB268AA173F3B54945BFC6BDE6E3EBAE38 |
E4E6C2BC55BFD513CF1B0A7F9111E43D30E3CB1644A9C181EE0BE3B0FA82B139 |
98EB5C86A26A15DCB00BDE31003F293F7CCEF5D73F714BFBF702BCCCDEAFB7D5 |
06AC39EC8DCF6E7FCED462825F5CC64FB288A009855A698FE397B4F20987F14A |
26761C2A9642F9B04F2092D785301DED6DA6FD82BE2FE520E255E91D20F6BFE7 |
762501E809C0A2A15D989BAF4F4D0D0D0E0EFCEC672F1C7BDC145E677834AD28 |
92AAA1548B82C041D18FFB5156A496DD0B9F86BD165AE43097441D1D043D5A21 |
DFEFD84EA7ED365A4EC7F63C17BA54D2224B8ABC8F173E08038843095E0D7A27 |
7D6AF4610181F382E206712E8A6CF20E91578A4506D752E184E237242293A5AD |
636363A847CF3CF34C8A1610CF337B097EB7983EF4E139A7E570C7B7A4CE209F |
0FAB7702B32886F04FD478127FBDF0C20B6FBBED361CEDF5D75F7FD9659771CF |
4B92FB94C499CC85851EF4C62B50EB12BC05598ADCFD2DA941A53E9D355709E0 |
BFCB962DC32B73E49FF3C19271721E3677D0A43211A20C827EA2115521109CA1 |
2BBC8A26208D8E53446E256216A1BFE23AC75BE02B469483AA9DB315E89AF436 |
3FF1894FDC7DF7DD3403AB56ADA2AE3838BC5DBB76E123E3B3B0F3F08C33CE78 |
F0C10709FE533E2BC5F9F160A230117EDCB6D6C69569B6724EB639521FFCF421 |
959BF708B69F5BE6A00DFAB5908AC1BC6B34682BF6A5E51118D905D35C2E3E39 |
39897342B9B68604C3B7FCEFE96B7FBCAAEB343FED55A600AE85527B79F59669 |
C491EE2D20074A94023DC87A50B7BA9347178C9F065BF36DC89660E622D0A594 |
F1B958AB65AB5016956B63A07F1846E756EFF9D6B6CCB9137E63D6BD1B46E591 |
F9CE0218B0DC1C9FAEEE45BC3AE42F2BCB36E04997F510D77DA543F716B6FA3B |
44706250D33EE707BB413D2F0F7251BAA9BC0C8A3BAC199055E804A311B48E05 |
FB0313F1ADB3CBBC62F96CCFCD44CBAFEB2EE0FEBC60CCCD4A831BF7A2765EB8 |
6428DF8E1BF7CE15A2523DAA4A3118999463BB855009AE5AD9565E1AB80F86E7 |
D22F801D6BE3A02D89065E9F057DAD293C4557D9B203F266C8799986960BE5BD |
10CAA34134BF1A529F3CA47BF3F62CEAF7CB8A8D947FD4CDD15EA95DFFF8409C |
8EC6EFA805A1BAB8AE68959BD6A3434D7BC98F516AC90AA410A5775EB7041F56 |
D3376A7657832B9A038A55BDB6A3AD84F07FE5C3231B02CB23D83B5D368A53EA |
0DD51218D3438B8262A8E51D1A67B78EB7E0D402DC53CF3665FB5C2D5C3538BC |
6E36CA43EBF431982C65D63E87EBAC79F5A4B567E120F74DA9574516B8AD4BB5 |
52FAADE186274FF9D447FFE14BDF9A59D584ED215C5FC027886F1170D710D904 |
BD46103D4705FB9339D99AA91CC87B4C8973E418C0C58FD2637E7E1ECFC22D40 |
9DB270AF5D7EF9E512B3DCE036A0BC1772DF1F77DC71BFF8C52F180D1D2C4DD5 |
D02DC71530BF98CF55962A564AED76512AA5342DACD5BCB7BDEDE8E38F7FDB13 |
3FF9F1D4D4248AD397B6BE90CBA7745DD57414FE28F53DD407A8157ABAA1B793 |
A37DA6BD2AED0B30668C8CF0FB07421354EB9DC5C56665A9D56EB99586D00491 |
7022A1752A6280618C9A00CF3F289930BCBCC2803ED4DA0CFAA18EE1E16162AD |
E1B6E6C4D049EDD49321040E5D1048C4D9E3A02EC3614AB1E59AE4DF4D137036 |
0EFD8AF7A2623D8A61502625515050B440EA7718A6E41CFC06051385F4F1601A |
3FAE06E2C1DEF712FBAD5A70CEF14F78351464781714A6F8203445548540E964 |
D48B86F3F4098F70662AC97D1C158AD1175F7C9139A992F41B780A5E874788C0 |
9C22D8E449A38329C60589182F8FF695B824393F64C5AE5EBD9A1A3F7083E564 |
D7FB3FFFF33F7FFCF1C751CE123920BE599C525A03DC3F952264ACB4103711A5 |
39F9CDA8AD0DFE40157F74775242A8025F78E105FADE84D2E64DF79E73DB8794 |
1A840580B3D49C64784ABC6CCF8A6DFFFABC3AAF0583019C9E012D8047BAB00B |
8A5609AFDFEA34938174BC662CD9CE87201E07B56004B50C3CB8B472A1B853AA |
99E70E38A5A591EC70796971C5D2E8F417E611CFAED197AF3CE5CDFFFC95BF15 |
043BEB2661760F1C2EC1928E4F6F488EBE1172D23195C15F1BEF939B8779A333 |
7AEBBEA26FD4AF3E6BFDD5B75C299B60DA9693EE4421AC768FDA653D97EA807B |
93A646E3E1E588ACAD6E760CBADB8CB34134EFD5B2B93D9DD4AFA2CEAEC1F6AC |
978770686C726779BB1AC46ECE4F7F46755A4129CA559637D112B282BC0ACB1A |
DA73D606CD431923C1723B33FD95B6B947F5211DA2A0EEB43C07A46C21132BB5 |
75AEE5FA999BE208BC86E0D31871A179284CCD5DFC7C50E891B9EE06EB6BE9B8 |
ECD9662039D6B2D2483DA8E6A4D46C3CA79C8D5A4CB1BAE9A5E5AD4BEAE77EE3 |
CEEFEC6D467A6987F3690870E18CC28A4A6EF7ADCD01B7B894AA094089FF6BCA |
447B745E9A0DAF5045AFE9BC88488F7E2DD79D8186D134645D5BEBB57388A5AD |
D1AAF4C9D7FFC5C633FE5A95860CAFE983AAA4A5C876F179AD0B34395486A4C1 |
1DC6CC079EF9E31F3EFA4B272A140FD9397D922BB46F0E56B60A3B6FAE1FF0BE |
A5F3B3E521D72C05515BF2AE0E47DC31A9A484CE4CB927FADD9B87F47279F416 |
CDD6143B74EC92B52A3742BD1111AEE13EE5FCCC64592BA5AD936B9449162051 |
8A4CDB9992FB256E2C8390F6C4134FFCD297BE4431CF534F3DF5EFFFFEEF69CF |
BF4A9A2ADA04A6AEF5283B7C040D87AF59B67C6262EFDCCCF289611455131363 |
8A1A9BA65EAB57B76E7DB1D56AE02DAD4CCAB2F02444009E84A6608CF64BA0C8 |
81040AE15E14659A12A36E400D81B2162494F2B1ED7AB586532E77CA15BBD50A |
5B3620D242596D7763C7055CB5147B39982648161EC3CBBD43D44A254914CA40 |
9BA4DEDAB56B376FDE4CC49994054B750FA48AD92C206F1D11F53CF2C823EF7F |
FFFB39EAFB3B5481EF57A39B0C6C301060C2674EC3C57BB1BABAE79E7B2EBDF4 |
52148B78CAE9A79F8EE895C6F6852F7CE1ECB3CFA60544CD99393D14C77FDA69 |
A7E11AA08BA0B05BB76EDD030F3C408E720A1A51F881E57E9CE81FC9E3A43FA1 |
40DCB97327F43382983A90D2C0923C1F083BBEF7BDEF412FD515010BF39973A9 |
3007DB93096C07D404D4F01207B97EFDFA2D5BB6A051C2AF9E59B5A167D01011 |
05095C767FE13C105F21E92D2EE620354901733A85224074596A9AC4DDBFD99D |
25ACB7B061B43391D11E11ACA187C4E676C3F1EA63C24FAD29E9942093E83653 |
22C53E8BE210265BDA92EBBB56C60A22DF0B5CA1D11B22E95985028A12D9A983 |
87FF9524D052508DD222053E90C3C1CEB29A5A09F3CE797FB5EEF37FBD39BD94 |
B7D5C65870C89C685B53CE2AC5613B2C9BCDA60CFFE7FDA77DFF7B3F6E2CEE76 |
0DAFE84F4641E7F72F7DC73FDFF458A0895E63F941CB6976654F6F0D0857A7B2 |
940A215D1A564B8BF2B432E70E01CC9754E8E620D34533030700BEAB1AB1E0DC |
0914148A206FBCF6EA4BAFBD7678F8F5B5F9795017FC0C22E1928A76BE5E8D70 |
7BBA962675BC224C5407674B955427D38DDB452F27E74797BC97F0D8A80BB6AC |
F5DCE85D6B2C033BC73AB91908BA251BAA45D06B439E561EF10F69C13CA43C1C |
088A0148D74D5BF8C6D4AC6AB78AE3C591AAFDAC83F7D2962BAD8E9CAEE2C636 |
BDD2D0204C3BD595F5F19D85BD5ACBF455C77033AED54EF9A26F654781823B54 |
8716649CE1B6E541314CCDB8DD8CA79420B3C7681402DCE8D0D4406E892C2B1D |
BA2D43D00B9AB1ECB545678E43E2B6E3C9B3614E3C6F564A75B5D92086743CE8 |
799560B93E346D96C79BCA9C1EEADE01EF3B02CEC2806E2CE5DD426475966C7C |
9E508EA1308C4643DADD1B54844D16E62C69D4F66A9AEA5D7CE9B90F3DF4D09E |
3D7B98D19DF3D793509252A22141D8C3E98EBC2370D10A772BF4CD0AC6AD94F8 |
41CC307451CEBB3F902A901459324C458A03CF8F4647D26F3FFE2D280A72E914 |
6E832074C6C7C7AAB5C5A5A572AD2EE2B129CB2CE4B2F942064F51E4100FF09C |
4EB72BB8360433A0DC2BF78B3D49F61535C24DE7B71AB8CB43089D20EE74C246 |
3B42E4DD75200E5146A05C531B8DB85AB51B2DC7EF0DF060DE212623DACF4144 |
9A80BAB652560977D1A12656384794C28F8A8D8C29CE6D4FA691E05904A2A19F |
E84961497673BF569B20490D4BD9389CA2436F14CD178AF7F287F9B1F15FE8F1 |
E2D1F794E648B28F9286F15FCA71249F46D2D621F72215E8E10C90CB9E5B0051 |
6E127D3867793F7B8B2BE0B84F32B145F138C9BBC56601DE6E6A6A6AEBD6AD34 |
EDA40CF66B9BCC3501EF7AD7BB9E7CF24992C5E4A027B7129AB777DC7147B2C9 |
01472628D98E729159C5D264128B09C11D7AB364E7D143B132E6683CB743805E |
9BD2E9E9E964EDC57E3FEFF30E05919549B73B6D59EF1128B9812E9AC90B2A7C |
D05570A3C181B1DAFC02DED8893D4829E0F4F2B506738D4A9356731C82A1998A |
6F058037E88A7663A6042E9AC3AA6458B1D39054887BCE529153A04ABEDFE3A2 |
C1B951A408445605503B25DAC18AB880D1230B42450791A6C7888025A3982FD7 |
AA387643B63A911D82ABA6A520F2B2CEB00BDD50F642C98594C820D23345AFEB |
83EBE2E2082237C29B88B941D594F1EBB6241DB8834A7232930B86B117A5FF72 |
5B40E8971CD27B67C24166B8E1C445A6B1E12466AA48253B92B2872917996113 |
2100B2773993F2D57BD51DEC4337E27A29FC97730720C192893F735F2C26FF67 |
3084C207BF7CDBDBDEF6E31FFF183729F72F6127304780C99B8AFFE2B0F10A08 |
B666676789CC86163FD7D572DF24DA8907635B6152997D09ECD00FB511E7A59C |
686B0CFD9AAF035EA85428566B557CB363A35944FAC71FFFA65C2E2DC9B11A8B |
60C0C04069B1BC17C7B6B0B8B75C5EC0976E65F44231572CE6ACB4AEE9B81ADD |
6EB76D77DBB1DFDDD7B7200EA3B82B1483E2CB4AA0F9226F288C45B32707979F |
23B98111FAAA14671529138456BD0E73F3CDF9856AADD97011A245AF4D139067 |
1C9FFD431FFA10353FE1928264AE2E4EE5B9E79E8B9601CE0321717E4F743CC9 |
23EAD3490C0D2483B8D0E3B56A82A44D40AF83797B700C131313279F7C32A27E |
7A65C46D47D14BDA4254A680DA822C187A4C1C24B1D7E208A9933B75B720EA7F |
928C9C3DC53424D4F58CE423BBB0C9F0E4A63A2C37D9EA4C5AA9245E79A3E21D |
F1AC646A33F4E30494E5C9093F244CF141706FE031D56A950E20B18E3F53649B |
F413A58DD206A02036AF7EFC13BD1ADC3FCC629D9C5B9A1FE6F3E250C42B3501 |
8A249C67D4EEC71E7B2CDA31D4E3418403DA6DBA0E7BA28E39E6985FFDEA5778 |
222A5A6278A68F99323CC72FA86A1BF59065763A4ECE4CA1088CF195B9EED0E0 |
40B922EC89E191A1C585B295DE17F657445F77912E818A41F41A8BF62548446A |
6FE6C34451774FEE4BF1BE852DB0646F152BAA8C1A05016DE8DB61E4C99A1AAB |
3AEE2CF010588BAC8D5C3EDDACA3AC19A8D71ABA61786EB7777971BA65C9DD4E |
94B114B4451A1DE79AF5D75CB5F19A6236E7D85D3FF40786F145547434C834AD |
72905E7BFB698264C50951ED72FF3B5C9CF81EF91550EF71FC86DBACE294AE5C |
B912A103F452213EF2918F7CF5AB5FC597CB0B8CD600AD46CA42C64B7DF8C31F |
7EF8E187D97AE3362FB81A3FFAD18F7EFBDBDF46FBF577F0E2D275684993B94C |
1C651420C4A1FEE11FFEE13FFEE33FE20A44DC46B726F14D9A0C4F39F2C8237F |
F9CB5F42C29FC999FEB81FF12238030452D9E02699333939F99EF7BCE791471E |
A11071B2DBC761871DF6D24B2FB1A6B9EEBAEBAEBEFAEA836902128F12CB4402 |
7DF46E28BF90781D284504B418757F14A2EA2ED89DCEFBDFFFFE6FFEEDA3A9B4 |
11475DDCF2664A191B1D9A9A9A2CE6B33854C340D911F69C506233E3E0E6E7E7 |
70FF88E621393D9FB38AA56CCAC42977C2A00BB1831B537880047E09A4D88F21 |
90440E75281290D0EC8C7B8D61D1F45010CA88D6467E10EBCA68E89B1058CDA6 |
B777BEB2506D561B41A5D27103143A91485495445E130E58A6626359E2D82F43 |
1242F7C919E19F393794DB0C247D2F72BFBD7BDC6B468FC7AC5FBFFEB39FFD2C |
E5E0B29780B3777E67B658FE30E527478C93449BBCD3D8C78DF745D08A460CA7 |
7512D0C05F718414A4A526424C284D0A0F5FFA8D37DE48E52314BC25A14CAE30 |
C6E6DCBB913394694ED888619CC5A11446284CA6047D3A742A8746D94A5B022F |
8E13889B1F61FE55575DC5F510F4C12BAF5AB5EAD9679FFDF297BFFCF18F7F9C |
8EC771E29CE0136DDAB4E9BBDFFDEEBFFEEBBF9239C28572F827BC232129F253 |
E1D48D8D8DE1FEA701705A30A9165E2DFB69020E0EE17E46D545B3412280AC28 |
228BC5AB9D78E2898F3DF698DDB50D5DDC0EA530D12B919C32C3206DA59A6E47 |
4EC99D4EA499BAEFC49A9E0E9CD6CB9601F49238422F36404E59E0C45127947B |
2EC900A2180573DCF57C2F86E8BFEA4845D3FB58D1A5C013A335F55ECB907E76 |
750E522E442E88165D6A2FA71DAF1CA6454D9366288EDD2BB92FE53F75DAA7BE |
F5F56FEDD9B1BB5B0AC4812D0F0235972EBA6820FA8E81562654A08B12411ECC |
0FD41B35438E03B185C13F78D7CF036A025A2184D9C938A32C5E32CA93996304 |
59D8D4C6C3504CA148A5065904F393D7A74D447627FECB448A90606887845385 |
4C90DFADD34B920481B6245DF6E8A38F9E9B9BA356BEE469A4F83F85974E38E1 |
04541238542204E59C34B2D4E9B288501F7DF4515CF3F825D572921F82B61B27 |
8932291CB57DA46E5778299C3A5C8DDDDEE7D5E58CC4A97E0CF70852F199FB12 |
C34DC543581EEF6BB5B37C627C66760F0A7DB45A56AF9E5CB9623293B51488A3 |
58A8A6E1A10190FCDEDED8D7E5B85EAF5125A7ACF9E99499C9E2D3C6A2D944D8 |
8D4347788444832351392034414C9A005F6A1C38A807C40A9364D1E24152F428 |
56C478A37CE419106511AA541AF566276CB5E3A5BA5B6F8A24F16EB7874C45D8 |
408EFA8088240265A7E07A22466B16D0FB495EEED8434C79FC3D5B0C49BE3CE8 |
27FBD34264B1CBE55DAF6254D17D93F55F88779897892B186891918626904E6E |
FDA40E2040CA9526B41FD808A5F78B8F73DC71C7FDF4A73FA5A49AB3CE3AEBCE |
3BEFA4C7A13193FB9B7449322D92243B2ABC8D1B3772DF73AAAB90135D859356 |
17F348F31A23031C7A1950CCFDC0DE331A2D9511D0CEBFECB2CBAEB9E61A12E8 |
647D93BD4F99D1DC8388763B9747403F78E3F53E90E85094A4D4C6A778FDEB5F |
4F74B390005CA4CF0EE61D62EE45BA1141FE33CE38E3BEFBEEA3EEADB4157163 |
AF59B3E6D7BFFEB5914111EFE38A96F7F5A8022B6521FAFBF9B3CFDEB6E5D68B |
2F5F2B4A8C7069A8067485AFE6A8C304E9088E106D505475337333821D5A34F2 |
053D9655919487239143E129F2719F9872CA0D5D5AE162E67B03C77D18AA8168 |
61162B866AF8812FFA62F5DA0F18100429A14E65DFD33A8112425B814003C3D1 |
70C378AAA76754D1BCC5062592D392652B2D290043F4935406ACA1C5CE5C71A8 |
E4C4CE125A0C2253CF4CEB19BB563533BAE3347A9D677EB32660CC1EF78946D8 |
9D4DB629A71210AF14AD1FAACCA7142F32EC280392562CEFA6FD94010545C968 |
C38B536A001E73FBEDB7DF70C30D547BC88D6CC9B0784D9A8036295E99FD8A84 |
2F49BDA1F064B3958D1E32A6718590CB8B613EB1D313AAE08A5AD294719F346C |
6A6AEABDEF7DEF030F3C4056141FC089794C7E43CCF68875F01BAA37FA0DEF85 |
03CA9CCF473B13C74A39E694478F400031A2C0178EE88E1747D4307674D5AA81 |
6513E3F87861E8A38D8ADB3397B5F09D497280AF1001043949BA5D9B72F32545 |
241AE93AA8B2E88E1D05DD30125E7F34FBC4B044A119AE2F5153805B070D02C7 |
9605478E7836507531A18AACC5323EBC1679A61467A250B1DDC08F14C7336A8D |
70AEDC5D5AAA55CA555C1BBDD44B8504145E90FD397891F7BDEF7DB84B89221F |
5E6110903820DA4E3C6BD7AE5D88AF714EA8EE1A2784A037F42B9592CEB464E9 |
2C49529AD883BD095A499C094AFCA3C432CDAE76E859C1F8036507B33B9BBD19 |
741D4A6B21FA046E5BC1149E2CBFB8C928BEDCB7BEF5AD8F3FFE3855514889F6 |
417C5F1A186119B2D3F1570AC972C7661294B42229E83A323282B7A06F487452 |
9361F61451CD79928B9B8A0068F9B2BB1FB1FF8E1D3B983F9C021E1475601D8C |
4322BF19EE705C786429734A2B4D2F6179DA4B2CCA71D828AC5F7CF1454E2248 |
AAB48369027649E13C1372A2143D4A79A2D809299E7D6D30025126A64A9A28A1 |
5175DBB1BB819DCEA4E2CC60776151C717676A76E021A2D6636DD21AD966EF12 |
1E7F3CA3E74E0A21D41084793E6E077C3F6A0F57CA86BCD46908BFBF0A6A43C3 |
63C45F750883088D5F343E4CC5ACF955A91775947B88C8344C341F6CA7139944 |
73AF097B20F00D846FA6E929E94243192C968E7DCBEBBEFBA3EFB4ECB699D29C |
AEAF6BBAA4FAE974A6B6D42A16B3B5460B65FDFADB2ED978E9CDAFCFAD7E7E76 |
37E8168E2DA39ADDA02D658C40F5A5C6AB61EAF8150CB5043A39FF823AB9E21A |
38E79C7350DE91C4648E13FC1751369A838485E99AA8CE9F7EFA6922DE49A684 |
D05DC8DC44DBF1AB5FFD2AF42A5DC8FE230F27D187D076C685C45460BFFD879A |
20D146E3F4682EEFC7072171CF6D4870CD9F76DA690F3DF410CA74047C44CAC0 |
C15B72879264A76D42710EDA86D4F28F8C7E0AB0E13CA0DD9F6CD04BCF4ECCF3 |
90488F0E0EE2B5E37C0A89D95D50C6EDDEBD9B70D9962D5BD6AD5B974C624323 |
170D0232825018BB9E3B353972F8E1871EBE66943829EDB6E870303458324DA1 |
1E7543EE956875E9C15C779FDDA7EA084F82183C45C25F510774E308A59B0751 |
A3F70E4361F24AA28DD0BEC0A3970E233F087B7C733A4206BD871A3490B4D0D7 |
54C8C9AA114452ACA4BD20DD6844D38BDEFCFCE2CCF4DE7ABDE5A3FD8C36462C |
89E4D2681FA311C938D276BC22933A803E24657089E08627E394B934E88064C7 |
479238E45EB8F9E69B116BBCFDED6F47BB0FFAAC67AFD2B19D3603879538958B |
C4312E62822ACCCB4FB602E9576E24871721033359DF40EB9BCD4646255CFCC5 |
999A78233C92562AEA0944D6846EA0E741C223F1A971C6F05762E0815E7D32DA |
AD5FFAD297F02C3C059525775EC3717EE0031FF8FAD7BFCEE58A3824FC978381 |
5CF9453179A22721D6073A60BF8209E8DB5EF42FEA577C6A2A3E887BCC229C27 |
C7213B8A3432FBF77E8A8703D1DC139BA403DB6D1C093FA04D002F2FA180BE87 |
573483ED598438301C242206C1FA6757E550763B3E4976D3323A4E877CF7AF9F |
3AB2B57DBE15B7464627B7CE6F4FF518FBED61D35E721450DE75FCBBBFFFC3EF |
9B29B3E3B6F1543D1C15494308DF738850F466B30EF8BED256D46A6BA6EA8387 |
6AA0B770C5FF1923DB0E5A269A501EAA875095D510F56F2C5AD08006AA9335A3 |
5C2C7CBD2D198291D2F2D1D2D47F6E7FD25035D7B7538A91CEA65A5E4B4D29CD |
764B72074483C5B46A648DFAE2AC887207C1C8F884B97B870DB29D56D138FC9B |
2F7EF1CA7557CDD4CB2E68A1F46ABDE192659271BF6F20A56310113237EC230C |
417D4D7085D026C285BD76EDDABBEEBA8B0C5F520F941140AB3A598CC9611BE2 |
7664E541989D83C308F2A87E3089AB7EFB0F479BA8F27C3F867642FA1C1E20DB |
97D4CF79E79D77CF3DF7D089948E9C2CD6496E191CF9DCDC1CE76D272B87B8AF |
1741104AC9835ED781071F7C10EF42F60A5942BFE1BDE075296088AB99189B71 |
D2497ED12D8F39E618C4CE6C9429928C40A154B08E3A7ACD6187AF42809849A5 |
29033D651A78A2D2637D30D2946CE793A5839A806C1649EA462218804F88CAC0 |
157DF7C08B71154755E68D4038A4A8BDCA67843A9041011B43202BA1A1ABA994 |
D14BDE37244DC74DA12959553145537025ED0656BD11ED5DF41716CABB77CDEE |
9D5FAA376CA71B8591E8F72DC5FB686DA47E3705E8F3CA1D5013B06786D8C470 |
96715A6FBDF55694F2780A558D11D6267D4EEB92140387D99942E737DA04D0EF |
5783174721428E45A23CA3341B627D4053E68B5FFC22673771209A340191DEB0 |
97295949CB3D734854D190F66BF9C2FE13DA66540CC166D0A73FFDE9471F7D94 |
12EAC93FC3B91014D6A385480604DAA488E5D9A5CEB10AE807A229559F3C45D0 |
6793C5515121DB15575C71E79D77D243E1EE25394E0FC20912C4560B0962383C |
1D573C1168B3C500FD98300B71E8974CC7FDCA414E35613C48DBF2809A40EA11 |
085231361173B1D39638AF98368ACC2CC42128F4D386E53AAE8410DE52101F09 |
0EB51050FB2955D19DBC2647302888E4C406E86D580DA1783B50443FFB089428 |
96A120675A61BB57E20C392303D5D88811E7A766602E9D353B08D464C80EA535 |
C9A8CED6A4588EE5289D4E054E24DC4A96D6EEB651074825886B90EECA4528E0 |
7D174B155F1511827400B605CA80AE54157FD19F1A999C5E980E245FCE681947 |
7315D70D42390D9227BDF3A8774C3F351D4058D7A61BB97DEDD4FEEA931FFAF2 |
F57FA38A5458CB970EDA11888566D226A06CB137BFF9CD3FF9C94FB8A01DA70E |
150042E92BAFBCF2FAEBAFA7F9C4978208E33BDFF90E2E27B2FFF07834D17071 |
222E618C92243F2718C44CC34440494B88FC51544F4A66E211471CF1C20B2F1C |
AC84F6551E8AF206F12970319070E0F80705C36948445F06FD84CEA48B82303B |
E5E931FEA62C068AFDE223E0F1F8A4B49289248DE00EE939CE19C5BB73B93B6D |
37141A08CB7EA38693383C70E8A187A226C01F2EBAE82204B6E40BC6C77BEB5B |
DFFA8D6F7C03ED6F4B58E56DC3903369FDB0C3574E4D8D4F4D2D5B5CD84D08CB |
ED8A5887DE270D56B45E2210446435A388232D1DC7B68C3B43F214395464349C |
9D38F2A2D8479BA037ADA245B670856A083EC48B44A3571247C608C252A64635 |
A2A666E01131BE3E358BF68187905F46319AAB37E3F29257ADD66767CB337B2B |
73F34B95A58ED313FB2274DCEF248CFFE21EC6D5C6ABE795DE2184C0B862989E |
09FAC96AEF7EF7BB9F79E61914A3C9DE29BCEC58E642BF9917C9885729D2E63E |
33E465E691704E3DBEEF3BEEB8030531217792D7D0C7A749BE55F250533099A2 |
327C35B61C4942914143DB86D40C954AE14AC5BD77CB2DB7A0C5FDD39FFE147A |
0DAF719DE1F1B81248EE134D13BB56712A38E6C66C1C4C7ECB850EE41D927A9D |
21C889C424B8BCACA96481A0097E68AB90638A36098740180AD1FC53410065F1 |
124D3A9BFFF4579E5836235824D105B9E286ED98837987E8D7640A20C126F238 |
251F1C97108E07D17AECE1623650363B5157C0FE3CFCDE1F1C339F77661F7F09 |
76819E4B794AB7F09163DBA9C520AEFEDEAEC39EFADEAFA009868AFAD37403D7 |
0B5C2DADFAE70482754EEF51D578B9E0A5D0FECF8EE8C0D505338B40D2C52BBF |
F3C4B717D3A59F3FF98B999DB3A2B58091E9B471BBC95A5A117D24B3F0963F7E |
C34BF985DA776645AFB411809352B006E476909E8FCD5C2EDA0BD57FAEAA5D7D |
D3DA1B6EB9E5B6B25D46AD635C1CB97E282AADD092F1E595F1AAED0F6D137CA8 |
2A0C9EF2BA8AD5C8A595D27CB4EB2BBB85C5125A92FF1A3401F41BBB921B90CB |
F8938B965775327783E69FA100055A59139016A72D499CF99436BDDF5EE07EB4 |
94FF46A0FB605E94830AD07E120A851E497CE3AD3FFCE10FA3FC652846AB8222 |
16279F7CF2D7BEF635AE95610B3559AAC9255CC949632A01AEAA2181465E537C |
4C4A79C76130B6233CC7A959071CFFBE1FE82E28E8C5560D7BA029066E388CC7 |
A152DABE7D7B141281170C0DA4C7278656AF5E6665B4E1910109A19E17361B0D |
11543453BD89883559F121E86D7EAF9F9D0D84BC744D787E542592140F22378A |
3A61D0C503A5B8236A13A45895635403862E0B94A9E1320E550521A76C1A8A6E |
6829DD34345D55F458D1213674CDC20BBB4124A9D9281EE87475BBE3375BDD72 |
A5B9B088FA60697AB6B25445D340686ECAEE602C09BD38ED7E69B6BC0A695112 |
D00BFB1F9C65B4D42835906428F419DF2091268C3A83522199B6E8551432DF91 |
DDF76879A03266A2374A4B25ADC0194490A8E4626D44A790519CECA3905CFDEC |
0FA1F581DF9376813E4F27A10976CD275D90D4EA19CFC5EF519552EC1AE7047F |
20070B31A6E1AC22CEA2841C7AFB5CCF42061019131C7BA71A0852B43C1E2639 |
A75E4982B73E118621F84243256F03677D70AC0CFA6C51ECFFDC2FCB90C43A89 |
956407E6D7240892EF912D7A9E5EA1D14516664A81E5B5EC4BD9AE66077E781D |
803D0A5F981FAF96F6228C2EA4337F59D3A6DCDA4D596838EA157AF0B90E08BC |
1415027062C81F7A5865EBB62988B6A78F06FB4518F5E172096D02F82CE4A2A1 |
A656CEA58B61C3E95CDE850180EBA01067CD465ACE2E745A69DCCAE77FF1139B |
CFD8E0C691F679DDD95B2CDDE05633F5743B656B5DB8128AC160FDBA2E8A0D39 |
1D3BB62B81944BE79A76D34C996ED8C5B737A9E5F76836C47ECE81E675596829 |
6FBF632A7C9BFFF3E3CABEB998DA04DD7815ACDF218D437C360A65D575424A7F |
C4894DA26F4236EF7CE73B7FF6B39F91CAA482419A7C169774304B3AE2854C66 |
A691FDCDAC8EF43629579BDE02BB40B9CE9F16C37E3556072F958D19FCD1F2C3 |
8DF9918F7C04E1D1EFB630F6FB7065228D87C0070D9E47087D78419D0AE34483 |
2C0246AF92954E07B3C380500B550C90C1C14D0F4968701B6081D4A57DD49EFB |
B8AE860645F206E70BC23E8F338A451416D6D4E4C4D1AF3B6C70301384DD6CCE |
8C83489164427371D803C2A148AF6CBBC24B6BDBED7E48705FD2483665A27CD7 |
D4589170581DCF6FF97E47940B0B9881978A6425D235D930F17D2B9A2A4BBAA3 |
8908B386BA01AD044DD1155953408E75530E0D4D4D4792ECF9A1ACE56575D475 |
D0C056BBB65B6F762B351B35C1CE5D73D333E546ABDDEAEC139AF47699E58699 |
3EF793CB9C9D4DBD6B70F0E410A063A8E5B2DCEF4F002F2F04A349E74E61AFBE |
F2A8F8801637A5C9930D419E74023E9B376F5EB76E1D2E82B56BD7DE78E38D49 |
4D20F7F9FD79E11E7FFCF14F3CF104BCBC0B1049435284F4C89CCC13F75B4212 |
FEA5E8021B3A9C9F03890C1C1A15C72418D4E052A66035A3366E8943334338E8 |
84134E78EAA9A770D173490EC9F43FF9933FF9D18F7EC417C477847B98DA0390 |
31814F77D55557DD70C30D888C88EFEFA4934EFADEF7BEC7AD0B489D400F7F1D |
75D45168E67EF39BDFA4BBD0BB8813954DD02FAB8913157CD2CB4BBB7FFB0FBF |
144E842770E7995E5ECF0615A96335C186A34E3BEAB9D73D071BA15803B738E1 |
74AA25AF2B5FA92DAABE7AADBC1CC6765E393B3E37B5F7A15DE958ED42A00602 |
44C90329A719497E346274DD7333686134B62C398A0188F4E36188164B971CD5 |
98FAB5FA4CCABD777499B730B34A824A5B76A1E48D7497799D99DA1BCF79E3CF |
323F837B406B957CAB6AB68B8ED2800D91DE91E2BB25C58F1C1F6F2347418C78 |
CCD045024FC7691706F3F57A67504E3B7E27FA84658F36E15E3097E4912396ED |
9EDB0B52305C9BD44199B966E758DD88BE30DC706AA5F11CBD2F5284ECA6A015 |
C829F3D0D7D3BC6EB9388BDD29C976DCD0033178594227A46B49AA32073B39B4 |
69E370B3BFF3CF3F7FD3A64DC71E7BEC2F7EF10B0AE41069FC7E5CB64909C06E |
12CA4DC26F56AE5C4906F17FCB8753FB68992130A26C313623B86F15E5F1D31C |
2639E149431C6C1DD2162673E49501702EE8212E098ED8E3064BF9BEDB2F08E2 |
36C228987A354A8A1A84E268DF0B0C551A192DAC3972E5A1AB57940672289245 |
665C1CF04662539DF63FDE861C2C048D05CF8465292A0A4A45D41BC8511CDA9E |
D770DD7A10BA71D0C1BB2B6AAC09D7508C681BF501EA0C15D1BF2A1BBAF85517 |
192222315416659308330D49CE286A0AC44AD6E238AF4AC55A57350C136D9B7A |
CD9E5FA8CECCD676ED9A9F9F2F7BBE52AFB763900BF952BD818B209255548C21 |
44FB22ABDC4091B63437C6213C7BEDB5D7A2004ABAB669B17225173922F0A909 |
F0E2C3324B07D3D8BD8A10A12E3704DB69871040C095DD53A83673EFD01ED84F |
13108022CA1D5415385A8A2D277BFEECB7AF384C4D994854574C16036E00FC95 |
0AD0B8AC91C35F044F48AC53E530271AF1231C7EF8E15BB76EA589DDAFA98BA0 |
EC5FB3E685175EC0FB52EB66DCB4975F7EF9962D5B887A88AC6C2EDECEF53E68 |
2D9D7DF6D95FF8C217A05F654A3087F63F259E128CE2FA3B3C00D11C35F64BBE |
0296F23493FBF5FAE0035EAB71C01CF19CFF4E5F7ABE95926B5A084D5930DEC0 |
A93A8C797069EFCF215821747047DC84AF20485FA206BED9BAB935EA1F3D7FE3 |
B3D916B40403849681A89E0A4183521374D0E6AFF615DC8B37A4DC516578BED9 |
36868C4DDDDA620D0F58E3BD7DE7CD4FAD3C696AFAC969BF5B82F60CCE2FDD57 |
3A6730D62AE9DBC06E8B165AE9A511C7B05337BA9D390F1EE8B593B44131E5B4 |
96B61BDD2814A49042DD5697D002CFBA7A550A60B33F06C38DB54B82E7274A6B |
5EECA5A321DB282F6BE2E314AA796743C319D06149EC1A7C590F3FFC30B3F5B1 |
BD4B909670FD89279EF8F8E38F73650C2371CAC6211A349480636363F83D2D30 |
DE9EC95C4FDA62543180173FF9E4931F7BEC31629BC7D329B738C9D4C69963AF |
F22AC94945EB933B30FE7768817D6920C469882A137FA5A6BF383C5CC338F87F |
FFF77F9F9D9DA50003C50E69004947F4AB2438F162C6C15307432E9FA6E2470A |
F2BDE10D6FF8F9CF7F4EC2E188238E78DFFBDE2731E10CCF69DF5853500DE886 |
8AB85E30C429CAC850696AE5D8F2C99181014B446D85170264E965343E241C49 |
1988D841EF4305231484149473AA6AF4720EE3D0F1BCBAE70B0791223B8A2A69 |
2A3EA7A46BB1A6C7C23BA448316E0505BF8F453E9BD22B9F8CE8695102EA2059 |
92AC879212046A0C3905F29132202C8E4876DCB0DD0ECA157BF79E85D99985E9 |
998AE7F97F71CA47BFFCD0C3027AA035107AA8374DC324794D9E07E8FB827991 |
D182A04546E901F80D3970B85915F7876117047B57508AE12266A8C87E0948C0 |
256E9F422E4BBA3517F4E2CF2B56AC4089C62E3BA66526CF3EE976728FB0033D |
093A987284F22FE9BE6415257B34422FE2CDC5D890A817E3F17363E4FDF291C8 |
718413451D8428439CAC280256EC93653E3EF9151DDFD87147BB9DA8BCF1FB7B |
EFBDF7ACB3CEA26921A14F494A6C4D33071F6D5794C5DC7D2CA99FD858664DC0 |
5CBE49B695DFED43B61D4E08355C63A7C7F278785A5A48C9D04DC3C047565656 |
EC29E8F9895F1EB97D45DBB9F3977A03BC153AFC590029091E0B0569FE15002F |
6AF00D7F282E96ED861A2926C4ED5270E6891F7AE0B16FC58A9FBB2ADBDCD182 |
FB33604AE94E2B3A1FB4DCF2E8F3D39D9B852BFF8875EA79DFFAD2DA0F7F34E7 |
E682A21F3B4E3D8C074F5B595939034DFFC8DDC7E73B73CFEEDA61FC3257474B |
FCDA0E8CA8B99F1D921B4E1DB777FC1FBEF6CF464A970209771B2D5DB1F85BAD |
B23400AB6BF0B128BB5B931EC86A7977A9E91951685893AABAB7FA090F8A9073 |
869BB72F8201E940B0DB52360EB9DD49B293E6A67548E6020923E8E303260AE4 |
96A8747A32CE4F4524D4B6889DEF5C4F8EEB875602410A027371BF4F2F15D5D3 |
C6E41EDA07FC9031CD40908CFBD71A3F781549CD0B92F61417D0E006C79153AA |
C87E056E880E899596E4C9AB143DEC3769F4A19DC221749A3462ABA6D7811B53 |
22E0964C7EEA7F0406C49917A9112862B3D6116B561E71E4EAD280254B017EA3 |
2B3DA8E5859C16C67B9B6C13BC2571FD533E1F85FB887954D754C1451A3A5188 |
6AA013C59EA1D9C26BA4E19F640D918F1EEBAA84BA4131225546E5816A40B42C |
E8E1819E1AC01B055A188942332F42298C9039A72879D518C5E1C49222C9065A |
871D3B9ADEB3B8677A7E37FEBB67E62F3FF2B13BEFBA177A95063184B97C96E8 |
BDB8108CEB38784D50E3143CE099679E21D38126911607FE4AD0980A46F0311F |
78E0814B2EB984243BCB7A12F1241AD855C20C2A54224B1DD3385B947608D18E |
52EC81C855D0BE46402DF589B28910822411395EC9CB448C6F84A1E81B5A7CB4 |
0AD93908BD7C5062A5A6885C92AA6F3F6F49B2CB0DAB3A7C467C0ADA57679E79 |
E6FDF7DF8F7385C378D39BDE44455B780CD5DF5375182FAFFD0262CC204DEA24 |
ECB735251F118D8DAD10DA42A841F1FA34C3D4BE98ABFC78CB9195C065D8AFD4 |
04E48ED80F0C413FA7F0B7FF10DAC5C11F7DF4D1CF3FFF3C4D94DCABF10D7443 |
AA37E234C07968D2467067EF84B5BA5A8E33FF38E0CCD84EB13974FE9B42352A |
ED7C69DBEB5A47CD1CF1DCDDCF83AF1662FDA24B2F7FE0B14776BEF0EBA970C5 |
AE5C05CEEF643590EE82F4E2E83CB4E09ACEE8F8F0FCF98B3979A579A9BDB8B4 |
000F186FEC4E6D8FAADD5CD709C2926EBA66ADF3FFF1F626F09A55D59DE83AF3 |
F4CD77AE5B23F31C7D4693483486BCA7A6CDAF8DB322DA82D20E08C101111144 |
5110D0872809C6101134240E4934C4D6A76D6BDAB48808028550D4444D771EBE |
E97C671EDEDA67DD6FD5A94B552524E9FE7EFC8A7BCF3DDF3E7BEFB3D7BCD67F |
BDA70A1D141E45C0F9DA0A1C74E14BB6ADB6BCB71F3213086F0334393C139CA6 |
79FEEB2FF8D65F7FABBDB8E639C11797BBAE563DA3F7F6396BB23DF80CD8AEA5 |
065A4FEF4D38D35A3B3AB479497F254C36B61CB865BF624FDD75C90D6FBDFE42 |
181627318F8361091EBE2CD66FE825963162F19571C351427225AB0EBF825FA7 |
EA5CD64228EB816816AF201BBDE8A28BD02066305A2AA939E18413D03C2D3B21 |
8F8F12CFCA1323379475A37FFF07C524C1A5E0DE2245B3D9C1A624A9955CEC89 |
879F400128FD9450815FFDEA57A3C975ACF97396396957279F7CF2739FFBDC5F |
FEF2974F3DF5141E7EE198519437BFF9CD5FFEF29789CAA84FA524FC2DD21AEE |
74BE06E49915F3A0F8242469822F62F3A689B3CF3CED9453B7E96616851E7233 |
9DF4A95862490085264B4445294361F1C175B20AA9A0A62F2B421E884E34619E |
FB908539C49ADA5735C530145324886668161016A961657842C4AF0AF2EFC2FD |
9A89424A9C69142B718CC2400A93388865C86B8A54B72AD3A80D002A049A6DEA |
F53851E6E63BB333CBFBF72F3CF2C863610C9DB69B664365B9E278AE78D9549C |
C2BBB92E8A08858B9C8E0ED5BB13F7C1F7443A0EBE1ED2D3F94F78E87143C817 |
290FBB5D72C130173795B35A4F3DF5547C55243F48945291140C1561FACA8517 |
5EF8F77FFFF754F94C4A68B913E4D0B9A7AE6364ECC0C179D2FDF82B17E5B261 |
CEED71E019453AC479297C47E284586A99C6D076C1834BA7166FA693CD25D014 |
1F2E4756CAAE2D92B2B4ED575F7D35927439A2C574427A1F1527D3BE31E60759 |
39CC59884770FC705D32060CBD432C09CA59A7F08C9AF37FF143F206C79C9E9E |
C65D95B843A79A40509B04BF2BC7FEE71B10A5E6FBFB8101CE27958197563F26 |
6F85E9EDEA41D4A6A101E60510983A7C398259192CD376BDF1A9ADFB560ED515 |
6DE04315FCF69D06EC91949B82711DE603A87F664367B65757DDEE491B616656 |
20C4290EDCDA850EF297C05437367A0B79235EB8BE0EAB5DEB63C22E119D06BA |
00B742DD9EE85EBEA03B5674A30FB9A1A9A26B9421EBA11B99BA15A7D1E9A79F |
BE77DF1ECF8A2796F2E006ADDB49E1D6B812830C9B7AF6416A262CBFBDDADCA0 |
AF7C7245F4EF759A63FDC8B5040A3AC13F5069056D4EB9771E717072EB13A809 |
BF353AEAA40CE1CFC8B0EEBBEF3E3485E9F4E231C6B38A37E4C31EAB3074E6E0 |
AFE40C219417AA8F61B141879011768F93D54DEF914D0AF88FF30B31A766872D |
AE854096366FDE8C6B24D2C08B37DE78E37BDFFB5EDA2EE23CD4FF0E371667FE |
BEF7BDEF9E7BEE610FE4BA0FA977749E39831CC99341302910422B65D42FD173 |
A538FA421808941E410C680A10A923FB2E1C64326CDC387EFAE9DBB66D991E9F |
6826A91F85032422A56061B6D560AA6649403E5996017485A23A690E9A227659 |
913309521902499414A4AAD215B5C786649A4212189A881628A2578DC8A2C09F |
350514811E24C9851229923462E4AD6A9266411A87910279156D8266734B81AB |
A7E7124A1C5BB404EA04AB2BBD5F3FB1E7D0C1B9877EF9B466401C8169393431 |
F230A2A14A290DEC892B03E2F399A314054A11C1638A879BA361C4F8E8451278 |
27E7BD901ACB87920E3D315FCAF1C201D12221772105A219A110393E2A0E482D |
743FBE17340E188B82CBA370047C0AD5F752D88D7470AA36A4202A314A8A4195 |
7BED52974D6AEA4B10A47CAA58C5A65802DA4654714247199F85DF2587159E5A |
12FC175C70C14F7EF2133C6164EEE017711514422CA740E443E409CEE7610981 |
A7162786E6C5ADB7DE8A73266305F799AA4F3FFEF18F7FF8C31FA603C67C9C1D |
41EC2F12CA6C9146220F7B671EAEA53C3262CCD2681D45FDDB2A8CE0C8320EFC |
B7A6CA469C1BB6BDEA49E1DB8364430C9F5150D5893EE89B4DD03E0835989A6F |
B963ABE9CA195E7C3E4CED9998BB776152DFB412AEC49907895C719ABED7BFE6 |
63975F77DBCD809C373DB97DCFC3C885ABABD057506018A2935F24D9578F04FD |
20BF0D6A9A338803435AFA8BEB3F7FD5A73F3AEFC6C6A57AEF84015C95A9A996 |
5C1F3663A37D4DAC831D7DCC5590083F2D3A6A8559B75AADA0895CB1ABE4607C |
C39B5FF7A52FFD0554C6C059925E0D4DF5B4EC2B07836E94369A7967511985F0 |
E2A206A26FC1E77D98AE588B512C4749C15B280B1E8EECD74D8793FC90E4A3E0 |
5416EE9B4D805794DA80DC9F22CCD42384B8DB39E79C83E79FDE38657F328829 |
BD022A0BA0AC628A6FE1CFC86A29528DFA164A293C6314B778E687B39CE957C6 |
4779B618A5C7FA507103C72D8899C0B08D2B79B13EF6B18FDD75D75DB881E598 |
139E6D9401D75E7B2DA7CC1DFF1C9200C01DA3D40CCE19A1681F0DC2994B8211 |
15879E4EBE52C00A2197540BBE8334288A1BEB75F3B4D34F3AF9A42DA3AD8665 |
AB61E46669A8EBAA900401EA591AE98C0CBC43060195D8901B9DCBAF840F2B97 |
8B3422819222C085F248C6532C678ADC115E2343D235D08C54D7B23549007D59 |
C1BFE6BA8A9220A7B2353997052C3BDA04A92AFA1BA4492800B5AAAA5C772AE3 |
42D196B530CE935495723B8A70C7E3A7F7CDEFDD7368FF81B983FB97D132105E |
A038D34D83FC21E488E74AA8323BE06C48283C06A432B054A70FBF30D6EB0524 |
40216350E0E3CD8419CB99E994178C6F88FCE694C2842CFEE0C183EC1A62EF79 |
19F396BA23F073CBD9410C1547B28A3B8591A5990FE1B1B8BE17865E14BACE41 |
05FE81BD58449678CF0B5EF082EDDBB7A340E2CA1DE2DD5CB943795624F97069 |
A4A951089A20FECB7944EC286376CC6C144A5D1FB8C930816D30A235DE76C71D |
77BCFBDDEFE65C2612031C23214710FDC0CED3676691F28B66F7E65105C3BF46 |
1270863845AD891084A713627712A0732AE44F9DF11178E22679DA6BCEBFDF4B |
37FBF029D4D015334A41AE24EF71C05E4DEE884132EB3D3303B75F4FC095EAA9 |
E957ED4A3F5EBDD155B38A724DAF626E5A09D25A36EBC2A4A1CFE3BBDC146973 |
1F89131D2A9F025786F1B0D28568BC211D3443397C4EE63DB2ED7DF0F4E7E0B4 |
60EB8EEBF6B5D4D6E07AA499C8B8C9F7BAA2ADAE80C4D7A2244E1DC389C33881 |
2483CCAE9AB22667AB2DFFD603F559E533E7DEFAF6575D06F908345736F55003 |
33963F65C5F9A07953D0EEDB28D4908B045A2F570DCA4B218C04DC10F23F94C5 |
24D994A79D76DAAE5DBBA84E0ACFCCBAE0131D09D2DF39C6861F3464A97890EF |
E73E4B44324C50D4199BE0E7E8C0139D5246C671382959994C867C5CFF432441 |
99768899D0ACCA763CC7E4E85FDA4FF256E15E115F3DCEFC29F19D0D1A3229CA |
E03494D1CB78DD94962D5916BEB9B00809981BA7378B3E3852426E65D4EF4D4B |
1B9F689D75D6E91BA6C6AA8E859C3A8ABD2C45335F5625B198204A58129012CA |
213812D4445744EDA2125A12C21019BAA8FACD918D07280C728865D46F54D055 |
1400295A0E142A101E21CD15024A41A32117456745BE12ED02B2E534D5441669 |
9626A262A1262B759161A48BAEA2BE9F4609CA1E34149C3CD3BC207FE457BF5E |
5EEA6DDFBECB1BA4DDBE78CD1BA7371E9C3904A5244B1866F2509319C6C12779 |
408A36EDE6873EF421DCB29B6EBA090ADD04FFFAB5AF7DED8D6F7C232389AF7B |
439C224DBBC1B284C880D3E7A9EE697A7A1A5F123997CE3DF7DC97BEF4A5A826 |
903307CF0D2190A052C3CE74946433333314EF2DE70B4191E143BC894EC6D4D4 |
146AE879D1538C4CCECF7FFEF3D75D77DDFCFC3C516F5900B08388A88E4A3449 |
B433941B3D88DDBBE402221B9F760C86B5DC14C36065F999116318A22711A7C0 |
25DF7DF7DD94BD47328F223A380736FFD1BEB9E69A6B489251E483042AAD7D5D |
EF0E7611501205F7AD2410112EE22FA37150A893EB18D8B2A10C08A2AE32561A |
912EC93F7A1775B01CCD598E3B91998005A7BCF58C056D71A0BB0D7F6AF98B4F |
BFA871F2C373BB06DBC0F84F279C94B4767CE997202B2C5F095E899E183AE109 |
6FFACD85D5FEE0BF3D65C7907A481A6A8C2676A62566001538FB7567E3FDFBFF |
FB7E5805253646C1F6C0ABB7460EF567A10EDB5E7FF2A2BE1457222DAA0D3E3F |
BF39A877D5B072C9C67967F59499E9E8AB8B4FC31AF8CABA5AEB742C1D7FD969 |
8A599DFBF683D222E839D8D5CAD5D77CECCAF615B2230914541DAA59B5B1DA7C |
CD6FBCEE73977FD6491CC21161E0C5E373D272861BC9807BEEB9E76D6F7B1B29 |
5214FB61A7E23A7649FA2CFB36E95552B4996884CABF495B221D82CD593A30AC |
7F1C4B03E02C922F7CE10B78D250D55857A4C9D52AC4B2293F951655F6071004 |
24DD8FD6FF4F7FFA53EA01CEA7F4589283A8034D61B4067815C7974C444DA4D7 |
520E1205C0499D82A17DC3095D6B0F4285350CC9D14C1218A78E0BD3500C2063 |
6F34AB1393CDB3CE3A737C6CA4223A0AC841D8F30783348B55A19E2BB2AAC1D0 |
27CB098EA48B91FB851E43578A84214D255792C8E08C0416691127903257E8FE |
6AA6A989A22299096180E42F2B3D55B88462340884249004E8EEDA191599A346 |
2E2989849200FF5251D486A1A202AE2385F881005CB1AC11D36A28B2EE07F2DC |
ECD2E3DB77EDD933B7BCD4EDF4FC5EAFE8C15BD02DB178CE5820E645294FA411 |
E38750E909F9726565851043CB2F800C2E0212219006FC956015C8E6A5F7C7F1 |
316EB5414A01B3A432F035699704B7801360773F4583E964E0C5E73EF7B9FFF4 |
4FFFC4E712B912C5C418D1908F051F563AF45FFAD29750AD665224BC0472A794 |
7BD3738A2AAD942C0F3C49A8D6A10D8BE614157FE1CDE5A637D45F9376836506 |
474DE421881E51116E02EA7AB46A69D86B9E9A93706E156788F2F8B86F8CEBC2 |
08A9D4C7832C159664CC3EE845D04E52C769C6A3A6715845A510773E6C6BC36D |
1EB89307DD433E2E2ED0FBABBFFAAB37BFF9CD44B1429FA839116E489C8B544D |
1508F9074582340EF96E307DD4AEF49ED215681378164230A4C34E64CA10A325 |
380D18E0FFB7349D1E5CFEAAFFF2F92FDC2139158119955B03A927C20C661110 |
EE8941FEE4EDEFBFEDAFFF4CC09566B251B5C2415F3C7A0CA05FA490423D6C9B |
69BCA24C25690F5A53CDD55DB102BE54EA19C06EB44CCE44C19A29C342861247 |
96542F87CD279E38BF67975ED573531EB81E3ED1CCB47346CE995B999F55E651 |
1833163FA10AE201388E99C56A32A56010C20A2B31541D06435F10A7F3115971 |
E637E9192430884733323CA5AB411184C093CFA5A024F5C96745F62B1EC2B9B9 |
396EAD5156DDC86F43010FA4741C13C5D5F7BEF73D0A6833D835174690A82019 |
8053454A4175EDE73FFF399DF617BDE845DFFCE63719520C953CF2B21E6B7390 |
D6E886B4E84F8E6475FC3807F122766B1309BCE52D6FF9EE77BF8BBC8B85BD5C |
EAFD2715D5C56BCC9A604470B9C89AB334171182E9C699679EBAED842DD5227C |
8FE2C1F37B59863480DA3DD24FA0C826D7B0912420C71C17F2B0B77D4D48009A |
02850D5E541D6468910A6CEA4415E8409EAC79921C0AB8511DB5E654D590F662 |
4D2E0A0B945C80D641224B22862C694A962A399E50D9C91543C0E2E9C209A3E5 |
6819C505685DAEC896A6376D73C4D06BFDC46CAFBABB77CD3CF4F08E9D4F3DBD |
BAD289D752848E69643103856139060E4FFA3B656D52AE0B31DCF7BDEF7DB7DE |
7A2B776EA1283F9F6FFA17591BC51238CA7AD96597E1B748972456CB02609D7F |
9F380B71E772290337D7E542078EF7AE539DD88BBA67CF1EAE6263CB1D0F0A3E |
0829965472C665E302BAE39031999F65DF20512F29D4DC4C953BDBE0B7F834D3 |
69A1DE7050AAD326764CB030E4ECE2BDFDEDDFFEEDFBEFBF1F86F81F43149335 |
4BEB9DEF7C271A675EF1816190836C113AFDB49FF8201481F7DE7B2F2E19E910 |
978CFA1105D289CB94B3AB294CC235C9381AF214A44CEE8946EF82B0D258BF5B |
931066D159660072AAD7352B89FDF1D191F9E5995C64F0CB2393A7DFFC89EB2E |
FDAFAFABDAEA4280A2C218A956A80487412C28C1A61A04838AE365A11E291A9A |
C09AE5E629CECCF051FC6B83C4B3EA8EDFEFCB9236511F5B5D5D411B42ADD7EC |
D474177AF8DC3C16FDCEA6C7275EF6A217DFFE777F0BA6F2F257BEEAFEBFF986 |
0959475242431401E6431C2D0EA5E0CF53B93C2B896A063952AAA065BADE476B |
1E59765A436E91A23E96FAA06450007B69B693FB2E67B551F66099FC8F7A7E38 |
4FE1991E42C6AAA28A302895C5B01F158FF4934F3E490E40D233F0F0105221A1 |
427DB2F850752763D551362A0CD32EA100BE3DF3CC33FFE11FFE815324CAF32C |
A72C53570F8669E164103235B8EB2DD102B391B2CF8AE04B29C44D2890C7DA1F |
94649B376F7EE289274892517AF4F1FB9D502A2D3EE8CE3BEF4472A039107F26 |
2A63EA63BD4D629F29978615B55BA23D0C4A02CB866D5BA74F39E5A4A90D138E |
78B582498511DA6B28BA5594044263CA648E01902545B4CD27A99C8B82FFA25D |
2B9E95486BA9A649885C1B4FA09626B21A2A9AA70ACB403234D0CD58D5D1F248 |
F1579DB248259423286C7359121DD1842490502973403641AC14ED016448A8D5 |
8AD39CA139215B8656370C94049558A977DA83DD3B671E7A70C7638F3F353FB7 |
E4A3D590AE05498E25096068CDF0EAA89A1A5F0FBE572AF3A32EA0286FBFFEF5 |
AFC330A185BB6E91C793616699B3946D704A59FBE0073F8852819459D249C9C0 |
24FF38CE87CA0EB9AB17216EE2E3C805BFAED1423980C9E444EC8F3A37E17564 |
B2381AFE4C2A18F52BA5D42096049C577A1C494039D75CAE4C1E7906C0A0EE69 |
8400C179A8149829D7FBC0D048A72F12BD51B2047990089A09EFF9C33FFCC31F |
FCE0071424C771F022AB3FF82F05C0E99531340D6F7519FD18F7938422D73FB3 |
3D44DB4E8C83D2586915640A2021BDE4252FF9E77FFE67D47CC93185D6090A12 |
1A87D172E8A1B621276186A6ACADD4BC34FEC4B5D75FF5898FE6906DD2A0A7DB |
1D3F5173B59E7B12041D90934ACD4A4342D7610C3BDAC6A9D0F41BD6427FD548 |
3313D4D436DC60806A9589FA5192E98A99A4990A6A73B43EBF3C3B3931BEBC32 |
9F0A6846F15C90B41C1F007110FBA74C9CB87761E7ED7FFEB977BFF3BD1568EA |
92DECF3BAA8D2BCDF97CB2EF4EF447046759CA022971325435124FB40B76D228 |
AE55C075BD2412F92676DDD46A4A7B69001590970497C03376C10517E02B4B05 |
22BD4FA521C73A3F9CC84E6715F55F7C8324FF887596853DD123A12E53351907 |
24983BD39D5CCAC32E23725D90EAC6C88F0C8A85DFA5C3C3A2AB0C529B1715EC |
78E44837A263801444EE29024247550FF9C03DF7DC838BC55FC974204B1D8A28 |
23CF9C5026717A975C72C99FFFF99FAF6BEFBA6E7FC86258330D8B1CD0E3480E |
6E5740791994A44E0200451D121DCBAD32ECB1C47920504A3F224980876C64D4 |
3AE5E413B66EDB58AFD74C55A47F16F91821CA00DC4F24F9C2FFB366169116C0 |
DB478B2FDB9BA4C9861020BDA0311047199E27A1834001EC9CA218880C3DD674 |
516D80AA36EA648A8622974C04056D001975932C06D1CA06751053B448C273AE |
582806D06A504588D1409D48A22E65E2A55774AD66680D457324ADEEF6E2A7F7 |
CE3FFCD0CE5F3DBC63EFBE83855D96C3B1DD9779093D82D134E9183D1336991A |
844129A78D933BCBC5BDF845FC97380B9E1B9C031E1A525EF04F975E7AE94D37 |
DD445E4EAE9CC4B7883C8B90A299A1131F6454F432A4D73A49409E1CAECB2705 |
0A8E44EBC4A38CB7511B556A9BF7AC248134EC180C47F6AB61740AD2F109681E |
AF20A9FFC11FFC01EAF578BE298F8D76809541728CB0C2C23F90D70BB533D2F1 |
F122A957E43262271B8AE437BDE94DB40A7238307A010CFD5DECEDA5C20892EE |
F44EB9A68F6245940540B9F09C3E4BBE41FA2E85226EB9E5961B6FBC91564184 |
BD8668529CA6C9B1A9D9A5851832D5D2E33800152A923AF0931CB4BA5D1978ED |
71B4ED42BFEFFA90AFE9C56CAE118B5490DD8F8FB8BE2BF7FD9A61F6F31029BD |
62A80112BE27BA162BC2EB04959ADD71DB535B46DB4F234793EB95461BCF3D64 |
B92AE1433FF0E10F7EF6BA3F9D18D1FB2BAB96ADF5F36A94CA10754CC0D10FA3 |
8CC8A5EE8F06C8A1A1421A2909D88ADACF12B4A2D10648713C1123D02A52D5CF |
43DC59170668B33BB668D9883B89E7B9DCF8E5F81157D227881D518E5CB99B05 |
0548391E43185CF4456A1384470BF92FE9A02447CBAF983B26952501CF871DDA |
FC2BD7AC917B87AA7CC92E24968A93C4D551A90423BEE1B19C9F9FA75F9190EF |
BBEFBE7DFBF6B17BA0EC27283304E4F278D2086AE9A83B832B7AFDEB5FFFA31F |
FD080727CF3E7B508F7A3F729557BCE215680D107A2B9926D2B0D319990B3855 |
9CE4F5D75F8FDC862510CEAF2272848A8FAE8B76459222E782C5C086E9D6E9A7 |
9DBC617A1C15624B5387E67F2CAA63044585C56372D2BFA83C8A5E060383B065 |
C0A1D75841E24CE3488A454D6881A6291A92656A1EA2816A986098AAA9199A8E |
93413338D454813BA4E9321A21B2E89013004A803C4D62240D01DBAEA826727F |
341344A4CEC0C359442C44E99AA9A88EA65464D5112EACDC09FC7C7EB6BF7DFB |
FE871FDEB173F77EE1204A8F593D54AEA8224940E1F8AF7CE52B687091B382C1 |
3D58CCC2B0C28B3341F96071AA036D11D72B90F4A611F81E3AC465487D628E77 |
DD75172AF5A4D552A90E8E836440DAF45125013B34F834A02E83F3C71FF060E1 |
77A9D887DA02533BA767EB1D2AD339FF4A64CC89B3E47261C9C4DE153602F8C3 |
AE00BC8712DD883B739C03862617511D6D17D755E20F9FFAD4A7AEBEFA6A829D |
A109703F1C4673A4F4734E462C7B54B90716C90F4A88A4FD67B589B1EDC8ED8B |
D7CB8D418E281EF44301AB9567E419ADD70CB7179A260C5261209FBE79F3CEFD |
075245F8652DC7AAA4F2525F9404E2E3A8250ECE84BC0156BDDAEBAD82A94F57 |
1A6FBDE0CD37FEBFB73AB696F7624F05CD90622F6F35474572A19235C76AABCB |
3D71E22A4ED4EB6ED83435E8B67B5D6FD3746366A693E55AAE169D4AABC6A01D |
579C7A26055EE8A369B2AE7E6AED57D4ABEA0E049EE4E7554777F3084970DC50 |
16A55432EDBC1FD5AC56BF375015BDDAAC777ADD2C6AD31B643F21C14F1DEB08 |
D15FCB316AD47B3802C7110228E92E7C9291A3E139C1BF1222340793A9F925F5 |
38C3F755F60EB14240B1FDBC04968ED484FFE2B1E4D03169B7E5B616641FE017 |
D182BFFDF6DB714C0A17B17788CE3C2EEAE52F7FF90F7FF8439C241E63A5E831 |
4EB0BB94582F975A4372E1FDB1E88B312569FEA836A1883D56E5E3E5975F7EC7 |
1D777002210CC3752453C9C785BB47B13112126B1C0F2DFBC287A517B10E2D8C |
62A1260B0E059BB74C9D7ACA09A3634D9C80A9AE79A851B324EA0D428FAC5752 |
51713DB811E4F3A53239E9C8D6D2742C22D91592208030889078A5A22F8D24E7 |
9A842F06842410499702024BD702450B343DD415B9C02042BE8FCA4D9CA5C29B |
84367D2EAA0B709374D194499C2159D3945CC593875FB774CD91554B911D5936 |
5167F57D343CB54E27DDB56BF9915FEDFAF5937BE717568A785472AC17C0E129 |
D27939D1853082081D93D4557262E0CF042E583ED68C9149A62579BA91415038 |
1D7FC03920DBA52665DC850E860900F888E73DEF79BFFAD5AF70EB28824A5FC7 |
919109A24271F6D967E36B7EFCF1C78F1527A077512EB0620F3E110325C95064 |
BB8CF4C9250BFF1A9B605DD1D65A76C0B05A9B7387C84EA2C9E44756ED91539E |
2B0C18758BF0EF700E78C0A89B39396AA054484159D2A44BD220948DCEE2991B |
7052CF32CA4FA72E40575D7515AAF3C8C7CB49BA94588C3A5D5E42A62C0FC5BF |
52109BC0B4C9BCA31417FCCA5AFA962A5BF586DF59C5538A6A0B2A40D313A3BD |
76A7074AB36AF5563A9AA546B22A585C10A0E63288D6EAE948712303B16082E0 |
4C8C0C563B754975233F55E1B433CE987DEC891E391B0195A3048A6D5724F9ED |
6FBFF08EBFF80BA7D91AF43A10A39E218B721BCB46969D4B60B75A3D549C7D6F |
6A7C74717E19B57B5471A36E4F2EB50D389C4823A1B121898E200321BC525D44 |
BEA79DEA7CBFAF6BA80EAEF5E4343459D14C17D597A1B98C261ACE8562FE706C |
9B80539979575105FEC637BE210F7B13512A07A9E794C18C8446B909F81E5166 |
704B6DCA534A879D54F83A912A3C23624C8C0B0A33B1CC58CB5973EB0E36A54E |
E038783668BBC8A9485A3F2529D081C1F38033219397C2E6A4B5B07F92BC26E4 |
C0A4491E757FC89BC4889954814FB037C7A24782A5A19A21285542E034DEF5AE |
777DE94B5FC209708712DE7689A017C6C644BF4DDB411A2BF456159A0D7BD3A6 |
0D9B374DD51B15D18E589259C89360241798E82659383170A9E4B9A62C3A8650 |
6649B096A4012E3273B43CA230CDA88C4BA6064392AAE586A9189AA96B569145 |
2A2481A186A2F65845FD3415E5C55924E589084E8980AF244B2A9DA42C8F04A2 |
B526E572A4EAA665D64DA3AA6AB622C400FEA70C7C39490D6FA01D3CD07BF4D1 |
030F3FBA63DFFE59D7F58A264FC76470CAB01F3A2F040F011D6E2E0D23E64EE9 |
3DA44A97B32FC8E14BFA3E6528B16CA099D3FDA45D52491A859B58A7268C2362 |
A66548162E7623C7E8B12401C5BE18798A4E0972191CF61DEF78070CB3A4C8DF |
45DE79F650932FF55F6913484743F1A49340B6455975A22550751BB3544EC0C0 |
1BA8020E7FA5F27A02CFA04188DA89F352092B49114A19A26DE47204CEB68242 |
C1246947E44792956E103596924459866491FCD11FFD1101A332C201497D46B0 |
218D92F83ED901A42D96AD3AFCA1296B3E5AC2B2E265A9A41B1972CE04B44A4D |
EE7B464DEDB96D59552A6ADD1B0C2A8ED319ACF20B65B428DA90A81B44825C33 |
1BD458967C477DFD6B5EF39DAF7C15F7B8D51C996BCFD75AF51E8AB15C6E9875 |
3FF09A96D2F15DD1A712C50F8A114991CC4A1E446A25487B72531B35ABFA6C77 |
3F98A044AA195706D0E12AAAB2925E932BFD2C7434338B8B098CD4E34EC7107F |
ACA0C298AA519CFB60009AE6E90017664170D8DD07253DFAF89550AC76505605 |
6E234965F27FD280E41BC4BF721A1B5A0F149EE10468B2B0E948509C80B8108E |
4CEA309D6DC64A816167116EAE476F96DE663AEC5AC1F9E594DAC021E5729D33 |
B5A1E7B746670C353CFC3AB2D6129E5B4EABE3ACEBE37B7B3876CD78DDC8828E |
D397982C21C63EA103CFF8B8E47E603B8698CF5AA880AC334E211746449A588E |
B6616A6C7A7A7264A462DB968810C4515194BFE605C69D2D2401DA4112711992 |
042406D6D90450D232D24C04B5D348F8ACF1179044A35545865C1058AEE9AAA9 |
E2E34C0D557B23444960EA42A3110EA2224E5074BE4C50C1C9323C0AF210442C |
4523218718470039D40CCBB6EAB6D542F3581551045D12350728BA91C39A0BF3 |
D1A38F1DF8F9834FECD8B177A5DDC9D3634A823256252F8480C5F15FF2A7A33C |
20C58D3690B050F860D187524839819D1458D2D3F15BE493610D421D766F87C2 |
074A5E11CA69A18217669DEB387E39ED1A86862A295394824249EE6452B0B642 |
CD9E18FE059783178981BEFAD5AFFEBBBFFB3B1C901AE9E0F89C744FE204BF42 |
D6EEC5175FFC677FF667B40304A4415863B7DD76DB95575E490E771CFCD4534F |
25DB853DB36CEC3F131EE33FFCC31BC54A1941C531BD715B1B18BAB0D67D913F |
1424A02341F038B42D1FFFF8C76FBEF966DA31600C0F49D32D33F206AD5A75D0 |
EBD60CDD0B2359349829B24A7503F929441E723B45B3E34493F3EE51AF6B723F |
064D606E895EAC31DA4A014A16BD91C5CB71AE82654314564C3918F89262DEF8 |
E9DBAEFEF0BB73D58A62E19892211E6FB696DAAEAAD5F26425958D34CBD1E8CE |
02176923574CF15CE8298683F7D79A8DFECAC258A3B1DAF3934C53C115F3416B |
3D0A475B95CE4A1BC7CF7253CA3ACF6AFE6BD7355DBCFCC8D390059BD524D5A7 |
27AD83F32B89704E28A9DF57846AA6E50237A39716F78BB625B15F180E4692E9 |
A6EA0589A4D5EA5914E6A12BE762FC3046A3C7CD1514B492AA6B388E81DC3F43 |
FDBD15058BB42E94A2069EF128C9251D24DBD27D374891852073C107ABB9A418 |
157C6EE8CD3FAB75E98A8BF3C1EB15C70E7ACB35CB69BB013D57D6ED58C8EED4 |
D1F11B22330CCF8BA10E7CA460DD9025986C5516E716EC4AB3E7C6387FCDAA36 |
26A7E60F1EB8EEEA2B3EFBE99BDD10254D3D4A573EF4918F7CE63337A3389204 |
DA1A7CE883577EFAC61B32E998DE24A22FB9D4B483E413711E32FA49E13B0207 |
8CE369308C14C5495C6F3ADBB66E9CDA30EA08DEAEE8861A7B841BB1D6C61D95 |
39B20990F996250189010E17F3E7B0B6286A08F2A2A9A52813C6396B2A0A0329 |
5244D5328A1C0D0D02C944FB4037D026F04D0D65B2C02815FD2C8524880BF4D3 |
0CB22EAAEC85EC453992C589874C524659A2C5A651B19D46C519D18DAAA63A45 |
1D9B9AEB8D3C35A3A4BAB4903CF6F8CCCF7EBE7DFBE34F2D2EAD0CFA476FB154 |
4E9F801282318A01646D44EA9C8C451089C867294782F505D20BD8E10385E398 |
4A04F12B9B366D421B13F57D64A39497463C14390BA150D05338CD060ACDA88C |
37520E069061C10D9B4859C65776D555577DF2939F3CFBECB3B76FDF8EEFE895 |
AF7C25C1054BC32E8CA4298BB6A385379397FFFCE73FFF17BFF8055E4433FF79 |
CF7BDE77BFFB5D566148CC505A08144DC691A5924AC5ADC7B83219177BE18517 |
DE75D75D9C60BEAE33CC3A03FC7FD387840D474D60E8D3E7C412A5D4816E9DC2 |
C53A8D54EA5D4C1F5A2F0969D4675142D0CE93152FDC50922E0E7B86EC5ACE92 |
0839833636120FDC5A12F70682010ACE0E9926019ED230556A4E7AD4EB0A8476 |
B51A2479EC8BFC3A1019A4BA1F4B961EFA1198957AE47B48578E21F9613E3EB9 |
75717E9F60AE869D840112DDBB2FBEF0AB5FFB6677801C27540D2395D49A6377 |
5697905053D13DDC38EDE4891DBB0EE07371E955473DEFC52FFAE93F3F18C438 |
E755DDAA777B039CCF79BFFFC2DD3B9E9C5FE844997AAC791EEBBAAE84C2EF25 |
8C7824C8089F1BC552023ACEA7D871556C701E23F1CB8ADDF392565DEAF423D1 |
B7B318C7D290018BF53AA220DB08C284AEDB3A72066710E4A6EEE3BFFCDCB1A6 |
E35446F61D5C6C35A4958E8FD72DCB0C3C17C799DAB0F5C0CCB28C9243D665DD |
4AA330890245A028897D78B6EB1A69C85665E4D0EC02727C94AD790CE313931F |
FDD80DEF7DCF45C8CB122882AE49A40870B3E7BCEAB56FFEF40D576692F9C53B |
EF7AE73BDE8EF339EDA4CD3B771F00D93650770A81C6DFBC697CEEE0BC6E987E |
2429B26845D9ED778290B07FE46AA5DE13502EC79404643D50F06FEBD6ADC8A3 |
2871038F3A5ABA5FFFFAD7D9022BF76893D887C30C05C536F2C0E73EE79CADDB |
36E1BB719C22B13A0908588668982C3E8A43120B232EC6B1E202B35A660590C9 |
2949A282110CDB754AF990C628B22F1560A5A01425A522E06E256834085C5225 |
5224B40F52594970507C0BA2E18DC86812AD0E24399101CD8248D2047257B5DA |
74EC86A15775CD12A163458DD4BA6E34DDBED25E81EDBF3EF4B3FBB7EFD8B16F |
FFBE43ED76371F369FA3A01FD7C7521497AC2DD4EF48C5E68825AEE2FDEF7F3F |
773262606AC65C84C255CA75F6E5E08132EC69950E5B1741E11024E732AA99E4 |
0CBDEEBAEB2EBDF452E4D1340815D61E4B57658B351FF65526E403CAA861C73D |
A57BA2343AFFFCF3BFFDED6F5378A05C6B86CFA534708EC7E2D2262626D00C27 |
C02CFC133961CAC522F421E712E9C214B523BB07C7C7C9CFCECE723ADD3A10BA |
E358C7FF519FB24D4039DDB8ED3831AA2AE264ADB256540E7B309E0AA1C3528B |
4D5A5D3E44CBA0700BBBFE90F0D04AB8E28A2B84BB4FE8815AC31E71BDB008C2 |
CA893A27789B69485216477146A783F6E068D7058B88C59F3453C9B3F4431FBA |
F4864F7D4133D4A9E9FA81BD2B78BD395A6FAF147D800D6106A44986967D9AC8 |
911FE2D7C727ACC5455F2A52C4B3A8607BC5B0684BF8816081625292F801C78F |
C3B4D952DBAB22811014A8D56DDF4BE2201A9F74161706C79FE7F1AEE3DC8407 |
42B4B4121F196D2F3DCD2311D6336B8341CF1F0C55D4BC988FD0F7910C713982 |
5FE5850688D747C71BCB4B5DC350433F3E7CBF56AC22035913BFAE3DB718C7B0 |
70C750D2889A8AC3392252F15F3126EE49B58A2CC58842C91BF8CF7A5D39D49B |
0DE488FDEE006D13BBA2BA682F15F3A77D6EB450378F035F4C46E09EF96BD7ED |
0A7803D8B0A9353BB38A57705DBDAE8FF34C93288ED6B6A8155B21C4C24DE258 |
A992F7E2200D5C706CA97BF4B842597FE50FA75A509750246D3AA5654CD6353B |
82FD83C2BA3750E9D350126CD9BA11D570C7B19075C75140FA1D3B0128D597A3 |
3AE4A861D549530E4355C350F52B58554C9A17459E41625B86C28CA81100F9E5 |
04B6345AAE5220347D2517A88E72AAE0BF6885A0B56A08FFACA999421D57041C |
0548B10C89666B86613B76D5B6EABA56295A210849906A754D6FB87DA9DB919F |
7C72EE7FDDFFEB279F7C7AEFDEFDBDAE478C0917821B843C8EBCCC52099D98E2 |
99E48B1C1D1D25943D627648EDC82EC9838C8C00390B4A602894774A3166915B |
86085DD794068ADC2F0A3F506200316B7A3537DC70C3CD37DFFC4C34DD759240 |
2E75F05883781A228D90F2CB0FE5A4CC72630318E2EB31880219169425C933BC |
F2CA2B6FBAE9264A70A68431BC0DA508E7E150D626810D10C24C5E0085B2BFBE |
8C82CE6877FF07240173794E20614750398F9EA7C1228A7FA54FD926E04812F9 |
4549A213422DDBDD53239BBABD552F19B426ADD5555F14C857501F06AB6FC8A9 |
F0911430EB89E85D9F20473213C53BEAF548722B6A5D8A351F50350DB76C4583 |
72BF01151FBA3A588E541741613D59F5961B76B3EF05D59A11F462C14B41312B |
DAB2BBA8815EB34756BCB9AAD2683A63EEA0D74D5753884DD93A61CBA94F3CFD |
C8447543A7EF5A92D1CF3B6827D49D469EA85EDA41D35D1545C6386B3F8168AC |
3E8E0C2B538267357FBCAEA47A2ED62F74EA5C4B73116D3642E80B847B51248D |
DC35527559052D89A44C0D00553EC1E0F115A4928E363F720B3D557C23B763E1 |
26CB701F74434DC2D454AB7ED605D1CBA1A280E442F7E4534E7CE9792FFBD6D7 |
BFB3DC9F1DAB4E2EB74573AA5AD5F11217C7A9DAAD85DE414BDC6CC480F605DA |
25C83D70AFEC67BB2EA326E999D5750712E4E79DF77BBB0FECDCBD7B8F25D706 |
59BBA18FA491144180EB45898CA70FC7C7F53EE794E71DDA3B1F2761A284AA2D |
FB7DE1A54AC1C7F712096775A6C8E0670353B1E21482264A2A1D7AAE029A9E08 |
479F8356661E748EDB69078FDFC9279FBC6BD7AE729F572EC547DE5506493C2C |
093824B256DFA1A184AC9C73F6E99BB74C230B364DE1DA4BE2B00CDE4BC5685C |
40548EB3D3BF45637A850D0E6988F0557C3D1BBAD08BEF02370E24FB202F6400 |
90F99365AE080FC899AAC4AA92A0FDA50B9852E46262C1C8AA6C136D1159152E |
26FC626ADA86B86C548435A09A8A6C8A6E978A961B0D5DABF67A52DF5576EF5E |
7DE0E7BFDEFEF89E9DBB9E5E5A1459F9E4E7E11C4146E5A41C67CEB02CA79170 |
890755BA72EEFCC68D1BF7EDDB471841E552407A3D2C71E521EC2D8A1F8A2951 |
6A17BE362E5620EDF5F4D34FDFBE7DFBBFC8E9385D95D916D907DBB66DC399E4 |
457F5D327D70707C10D90A343D7CC4EEDDBB39E0C9616D0AEDD21BA46801B7CC |
2ECBB3F211BCEBAEBBDEF39EF770B1054A085A2C7E11F59103070E70DBA9B22B |
A63CF9FF7D1F56F669D5A79D76DA534F3D558E00F10D2C568F2A09A8C2401EF6 |
B66398300622A45004921CFED0763B390A9A2056413E6DFAA483334FE30F1618 |
FBCD1EE0598EB404925C47A628724C45EF30C1FA8E7E5DCA0D2336C22CCCB508 |
2A48515A45B1FBBD76C56EC5ED38CAA3179CF75B0FFCEC7F8AFB05CE3CF255D9 |
92AA9AA9F5C2E5E60913EDFD0B426BD60102D9C81DBC1F07C98D440402322858 |
B43E628CF4BD7E240FA4A69E774359D5B334C27190C39A0ECEB89FA1426B28E0 |
A6C799E771AEEB115E8AC543A594AEEB93158192ED8A094446240C96C24D0322 |
6BDCC4FBD7D6ABE4858A2D810DD0935AF6B8177A8116ACDD8FE3E3F550178E03 |
81402625E140ADD9C98A27444CAC5999AD5B7A375A11F33155E827E0A04A8C62 |
5CCF90F3D6D5241BA0A0D30C2B8EFC67B7AE960E2B899219388E5C53D2C8C3F1 |
2DD9F2C1834E7EC4758089C9E985E519F0E4BA31D2F37B5A53375B46EFD0F257 |
EEF9DA4597BD235B8AF07A2EE7F8BE70F98D0DE39DFD8BB84F78CE2CDDF64517 |
49A9DA6AF4822E20AF1B1C3DAEC63957ACE8203953062D9534132DA33AC8A090 |
6B0C84981D67F8145222AFD59D534F3961D3A66953477DBA200F29E3C421F6FE |
C33014CC9FC3BA1248642810A53121099F24AC717912066B693605E91563523B |
65AA79CE442DBB080F44B2142BA22A3E2B124C25BB9259A66EDBA6EDA0A842CE |
256902A4088A2456013D244B3A2A1492A42AA2658D2C5B0D45A9F4DDDCF7F47D |
077A0FFE62C7A38FED7D72C72E29B7C9314261C0B3CF3E7BC78E1D04DC81C47C |
CD35D7502748F2B75C7BEDB537DE7823152E52974A46A1222E80DF1229584547 |
6F0A0FAC2BFD852303A41C42A0502D79D8B97B01C918F248505A279962EB04C0 |
3A4E57BE5E666DFC4546D3FBF0873FFCB9CF7D6E6A6A8AD2B7B9271A95865087 |
4882C1A06C4EB67EF0065C2337032054BBF223D080C07D181F1FC77BC83B8FE2 |
ED79CF7BDE430F3D449EA5756B397EF5FC7FA018A0B5E3B37045E79E7BEE830F |
3E48BD9C6008E9CEBB57164E65EF102E1CBFF8FDEF7F9F643F0799192495F696 |
B0AA84EDA5C0A68D1B7C3FFECF7FFCDA2F7FE92BAA5D4FBC48B32B717AC0CC9B |
7224AA25F3AA122153F37C43B1C3C43DFAF5DC973CC3025302E4D37D682830F0 |
5047CE4D30025B89E58A59BDE8CAFF7AFB3D7FEACECC56ECA69B0E2A693DF750 |
714E43C9873AEA99812A99A89C6AA133618C2F79CB890DA91EE2F8A3ADA9E5F6 |
1C3F3732B35CF1204E84A2DC30A7F4C9EE4207AF8BFBD38E7092A84E940E9EDD |
FCD5C40E1D0850FBCB422D064770D211B37EE26F9ED5DBB5B2B46BD1CF83D046 |
1683AA7DCEE3AB9112A39D89CFC571E2A466D67BE900BA52131A1EF84AD3F090 |
69A6999CEB9914CAA153879A0F41207930A29FB875DB9E871E0747A9E6CD7490 |
08BE5D8118E78F7A37AE4BCF707C2B32238807AA078A37BE75DB1FBCE0457FFD |
8D7B9EDDBA9478D2DC804CBF1D75C4BE194586572FC4F1F5B46E2526AED377E2 |
24698B760E60BCE065BFF7F3FB7E6A8365EBCE72B2045AD09CDED8DE3707351D |
3A28CE2CE4617DA90BF85E14154D839A93051ED896D917F9C5B25277529404C8 |
5EFDA3DB04D2B0853DC514C96BCDBA3FB31D28BCBE65E43B89D2BC8EA4C3AC56 |
AF6CD93CBD71E364D5115D1EF18A683236A48D7C88C92397C00BCB31C08293AF |
A9BDF2919F2C4F868E97AC2C0C866EA28C1F4199FE220493A32D88AA7AA04891 |
AE27A6816B909D8A30562A558B62DAA6AE0A37918028D28BE7A890AB592A7264 |
654914072A664D556CD7CDC2D89E9D19FCF297BB1F7B74EFAF9FDC9DA6062BB6 |
5C764138975C2544A512DC7D09993ED23C7B09386ECC3D2ECE39E79C471F7D94 |
B9F0DA9E96E02A491220EF78EB5BDFFAC52F7E91BCF030F4F15123DF321A1ACE |
046FE690C33A195066FAE5E03C3BFD7056C8AC0983010724B00A0A41538F1DBC |
CE0A42B91E823C2784D3C26871A42E9008E4BA740A9BE3CF77DE79E7DBDEF636 |
AEAC26914666040A068AC4949308FE0F9802656E4E8FA35C2914575471C39220 |
3FB28DC1BAEF72C498EAC9E5129236891606AEC07D23518A5B3702A34BF1526A |
2630019BDFB0F5A03A9B8FA0960D63F968FFA995E067C5F25F04B5CDB5D0ED1B |
7E6E4C1FF37A6FC772F83F0484DCF41B37CCF467CF3EE3D4A71E780A46B59A6B |
2EFFA20F0B507D5525304343965AB2DD5692F069377A4028B3CE79F620F0369F |
32D93BB018D7CD7C26AC07F6DC42BFFE1B35A929F7563A1B2B8DC5CC6F78F6FC |
DFB5719E95173A03CDDBB261CA9F6B77D4B4DA37967FD817C816FF8FA18CA8B1 |
3718552B38CEB39ABF3456F376F7E25F0ADDDF78B1EE4C57DCF6AAEA82B36574 |
E9E165F88550EAD5172BB5CDF5A0DF93BA8931DD1CEC6A87F7172EF573C1D98C |
1C1039AAD237A01554E6FFB62DD8EA2B74B9A558A8ECF52218ADE2FDFE7FCF70 |
1CFD3CCDDEE0B8EDCEB85EE9E9A8EBA98BFF288CD4C6ABEAEAA836E8B471FE61 |
555F7D7C29F9B9309294DF958D0913C71F519C67BBAEA0A2694BF9E0A7098C41 |
E5371D4FF7E534DB5C1B5DCA83E480E73F845207A47361FACC8DB86FE142179F |
5B1F58F3FFA30D3E4CBC6EBC9D771C5D4B5706781DDFE3D2B77BD004FBF7ACE6 |
B6D6E2CCCC8862E7DD93F36EBAF8E06E58CA8C7E8696CFB8827676B0470A8E7A |
CEF3021503CFDEBBDEF5AE3BEEB803EDD7C71E7B8C744AEEA68554CFDD6D0FB3 |
113CB50C32CC9C7D64B43E353936353556AF56FC40B8AD85C65D7016A6136634 |
2448F83A7DB238629B401EC24F1EC6B890F323B9412AC9875772E427CDF248E0 |
95E60305D5192D364CD9D0240BA5A7A93915DDB2354347855DB50AF25334438C |
9E091C15219B849D543444D06C59357D5F8A636B6EDEFFD5AF9E7E7CFB812776 |
3CDDED865BB66C41268BAC10B9D8473EF211E4F8C42871BF5EF8C217FEEC673F |
6397CEE6CD9B91A391202509F1D18F7EF4EAABAFE62802F27AE40B975C72C927 |
3FF949549C19580D8615496589CB0E22EA7CC99E65F65C735F3328B28070402E |
81293BE258003087E57E3B9CED53CE8FA462B12BAEB8E2B6DB6EA39807D77C91 |
FD414612672231C616D93DA46550ED28BD5C4AF9E73A499C034A4702DD655712 |
23C573BF0A8EC4A4FFEE1EC2FF9A0FC70688831355301A391D35CAA95897FFBE |
4E5695FD7BF42DAA69E2AE15DC528DB2923239D36C2B1EF8B665F86E282C7D15 |
8DA72C30A09AD7CC480A210F2C88A41E24E0A8DA208D8F75DD492BF5C4F420E9 |
C000AAB1400095E440CE74DF6880858A490775E18A1033E2CB0E989E55118E15 |
E8498132A9A72BAE9A42A282119AA754B6EC77E77C3347D68AAC6AB2D99AEFAC |
369596E5C92E44E2B9790F5535034752F24A52356309C711F71B0388337C4EFE |
ECE7DF909B9A9FE1F5818EA2780029D40CB3170575A9610668B6A43D25021375 |
FFE2B9528ED78D008403C89103A58BF644CBA9AC86EEBBDFF89E6F7DF9AF701C |
6DBCBAD29B1169A7C86F1518D14625572868383E8C48B85E71BFE7E27C0CB12B |
D09343A16BE7A0A510ABD0909AAA2FF4DCB8A2F838BE9FE93944F2B35ED786CA |
74B4D2CF405D955C68E610C6D200D056D302BD0E687380983FDA2299C0F48E50 |
E70FB44D30BE02FDBE1AAB135ABCD4AB68BA9B4463C6B82A4C9EB88752C2440D |
18D4049246E1C2EF159EA81C4D19034C05421737E8A8E79CF451EAF749E79011 |
EFA99082B4D58B2FBEF8EEBBEF2E974C8AA8E0CB5FFEF2EF7DEF7B4400E4F79C |
9E9E1A1D69345BD58A6DB86ECF303545022A9780611A0C49029601CC928679A3 |
191BD46507116504913028BE31B4C7E5C32C32CFCAD075B20026CAFC0C06B21C |
1868D319224E601AA896AA8EA3A160D035A190E2E24DCD147FCB91D47391EE54 |
98FB8A524802D554753B0884A9B9B810FEEAD1034F3E31F3D493FB73652DD047 |
AA3D14BE118A88C0B05F36875C7886EC5F63C048CA32A2A1C851C00942CCB5B9 |
0406867D77A9E40A5F01FE4A1163C6827EB69C91ABF6C9F4FBD0873EF4D9CF7E |
561E36EFA6D8EFADB7DEFAC0030FFCE0073F3878F020251795E5370CAD3DAA42 |
E0660C9CBACAB795E7464F6465622D5FA0C851631C2A6A41FC277FF22738A557 |
BCE215F7DF7F3FCA894F7CE21337DE786319488062D484FD4075616446904CE5 |
9248129FBCDB3455EA1203436089637D1850884AE7A84E07779E98384583E81E |
F2C8B1D64F09C18C935CC6D3A7B7CF6392DC6D341A4875737373466EB7265BB3 |
9D83A8EB6D7CF519CBC66A60B860669078CDEE48FBBE954BAEBBF4DE07BE1A6F |
085C2F30352BB643E740ADF7B782718CBCBE956E8C3A28B1724D6E82B4430D7F |
28325B6A7F584DA643AF1F39D54A6078E6D3CEE07B82A18FBE66A4D76C231F8D |
7A3938B9B2574B7F1A431F1AAFA987939E1FC49AA2A795D8DA5719A08E1F80F3 |
87B6BC2DEF0F7CC7AC0C54D7DE5FF17EE8A2AEEDBCC4CE37275E1C69B91ECBD1 |
54303DF7373378FFE60B371D520E66293297EA40EDDBFBABE2B93E4C5D30D96F |
75DC7ED068347B52677C656AFEEE59D4FDC75E37EA8E74FD2846028DEDA8B530 |
BAFAED651460A89B071383544DE3D51C46C1D86B8975C550798583F3E9753D01 |
2C6F46E3EDC9C5AF0AA2187FD3983FEEF6FBBE695841E46F92B61CBC733FCE73 |
E35BA667B5195CAF9E59B8AEF471C87E2C621EC6FFADEB272B7D3C5AB104F55C |
DDA527FF5F849CB4FAC715ED2479B5D3D364311F6DB711FFAF10DAE0FC671BEF |
6FBB7D1D0CDA67FF3B0370C07A8989FBAF55B4C162288D00EE9BF78F627FEC97 |
5AC629AA1BBB99A7A495A4393FD2FEE60A98609F673967984BAB6D11F446EB62 |
B6D9451B2B83B1D78F761BABB99EC7DD1C8FC1B1E6533D54EF7F17051EB45EDB |
CC36C59D8EABA97A53AAF576BAC1C3013C0D7A62C9281D14545E4229C9196497 |
BDCD54B049491FA4F0C1301DE30D6F78C37DF7DD4794C202A05CDB2C48FA8C33 |
CED8B973277E99B3534E38616BA35E4175DBD4955EAFE3542CE4EC94274ADC2D |
1FC23995DB3B940B0854F9B06BB5240644C5C01A2B91B22167C98E900439E7B3 |
163F488A94C7B930853C544C0DE11D92345D56E5D43015CB960D5D42E66F6828 |
0904F640D1A3584A132109508146E3A0D0683545D50DC3F651126442126C7FEC |
D0934FCEEDDC79A8DD179B42393C1420654F3D6E1997DDC2D077C45A36810211 |
9608C18F502A0EED0F972FADFB500881581EF54B211E7DFEF9E7134428377E59 |
8770F7AFD1795932415132463D8ACB177186655E59CE982C737679D88D80AA76 |
393DAC8C9F4AE78FCACB29B9964E21A593B1AB84BA5A12D010727F3A79646D40 |
6127919E42D2911C62C48E71045C82E89B547CB80716B788910A74527C348D80 |
9BC9AE2A5E4EB96481B839A57E92E544051FF844B49DF10A4E8F441777A69387 |
F8EACF8C6130B6200C01CE08751CC727890545CB6BE10F74C3348F7447336B6A |
6F50509D530448F144792D3BB5CFDA78E63F1DFA51A089D227A1B89A30214DAA |
BE2A701A0D7F190A5D52D223396A2523D5A41A41E8C9BDBE33181D6DFECE392F |
FECE8FBE33956F9007483FA9DE92F70733C21D9148B9998F24A3566CA119106A |
835528B2C57467900E9AB1782EDE8FD7DB462F0F41CD45BFE546D4AC66D504E2 |
48F7DA46370B40F40F9C529483E6583E3600F78B5FBB7DB7BBF3E31FFF446FCE |
57C76132D854ED553BD096AAE96C207CA7A6822A7D309A8D199181E3FB4ABF83 |
36860635B5D68B7BA66FBDF3F7DFF98D1F7FBD0B2B9EB055E0B7FEAFDF7A60FB |
031BE469DD455D3D48CC604969E326548C8A9BB83CCEDAFC91052B76607BFAB2 |
3502233964ABB078C2F3B73EF1C86E399533339BC8276DDF0EC0C7F9AF685D1C |
87D63B0E137A8066029265B0ACB671BD74FDCCB1B32EFFE3CBBF7AEF3DFBB2DD |
07DC59C582DC450B2BDBA86FBAE62DD7DCF8A737B846673913153662FF95A8E6 |
D7AB502DCF474DC5BEE1F8E301EAF8CB2E74BC9A5FA0742BA9964E291B1A8306 |
EE4F6A858B89D0232DD5F273FFA8F3F1CC81B122D685E35B63DAF9EF7FE3273F |
7173CB6AADD656C569E98114A9261A15528E0B14E1FD0408381D8F1F12D78103 |
07CA90A5302C8182A1CF869B7CD0A7DC1B718DA2E9B81307246687043E32DADC |
BA6563ABD548056BC22F64867E0443679D5D1E925CD935C47E55BAFFC8242291 |
30BA864F37F411519DC13A59B2E6654A555954172720FB92F00E09943A4D57EA |
6681568D224113D2A508D451745B8488F354A06AC54158C4FB0BCC22A39EC479 |
94EA41A82D2E054F3E35F3F8AF9F3E3433DF6D2753535384FACD209470A4E385 |
C3E965BD927FA68871B9CDE9BA282EB1C5B55A8D52F5352B9530CCD1647CF37F |
834D40EC9542D0A492B36E4BC9AFF8575C2603103168280CBD822C09D040C199 |
2067BCF2CA2BFFF11FFFF1A9A79E6200C8B22420AFD1D8D818F23E926AB41B8C |
5C74DA69A7A192F1DDEF7E17C77FED6B5F8BA28E241C81F350F10B2D561EB657 |
E5C661DBB66D5B5C5CC499DF75D75D5FF8C2171E7EF861EAA080D609F979500C |
A09546E85A3831CEC73D6C940E5747BF52649B42E2640FF19D380D7A28D31219 |
88E42CA222415CCEC68D1BF11D71B0442EF5B683A1FB8E0E06CE137F5D3316E3 |
68CBA68D6F79E3F99FB9F9E60AE8459679E280BDCF7421A83B5043B5A693CDA0 |
12095A1D7A0A98AB5A3EAE86DAC4F8E8BEFE4E518C1C6B72D2C8AA1DC9ABEAA9 |
914294683D5063C8CC117BF34AB4474F47A54016D76DE4111EF8DAC6F1330EB5 |
1F83B051C9AA010C8C0975102CC14081A48AE32BE9682516D743A30B7288E3DB |
EAA4070721A86DAA6D9BEB1D4ACC0168C8D27588F1FE15BCFE377FFEAD0BDEF9 |
26711D75B258ABE81BDC6C3F5EAF412B95A281BA24E62339B267674D57F3AA72 |
287003926618ABBE78AE67E073C71BA7F6E7DD46BD3AE7ED11F70FD7AB0A8E6F |
86E0ADAD2BD6689EB43F8A8A6C704EEC8F5C81810EA3112CCB63FA949FB8F958 |
F29AFFF2EA7BBE70F788B971C5DF79781CB4BA8A7549493D37D10A6958B913A3 |
A451BB621C1ADF6A835FAD42D30737AD46E6A8E11FECD6AD4DDD782F8EA345BA |
0499677568FFC5FDF50174CD2A344049E366100C9671FE724FCFCCA5E9B1B37E |
EF9C97FCCFFB7F7CC8DF4BF76F183D6DB6B31DC71953C757BCC5A8E243EAFE0B |
F331571BF6B670355ABBDE50A083F2A499E5FDA2D2232B4E4E96A02D208BD0B3 |
1096856A4F471DCF361E4EFC811A961083E5BC6D6AEAC9CD54A82538A5471ED6 |
E3C99541EAD8B0072CB446EADBB66E1A1D6DC9F8EC04B9522EFA111CE91918D6 |
0C67254F0EC033B8398B84E1D7C9AD545C911991A208151CF915FA288A519431 |
A7280664050560AA1B394A828A168B58B02E21F317558B6BD50C683869F86F16 |
4B4110A571A229E21EFC432219519CA19DEA87DAF272F8D4AEB91D3BF6CDCEAF |
743A11278F3EE739CF79E49147702B71430E275795D24838FF84190DC199ADAB |
F63A6A2CF49956823404AA2D63E330DAC4B39504543806C3808434C4C3A22B17 |
5D74D157BEF21572F8E01B4786C530EEBCE7340E1B34289CF04810E89B545454 |
4847C287D0870250B4345C08D51BF262B9B3DBD6AD5BF1A492714ADD0DF166C6 |
ACA7FBE945201BC541F0B9D75C73CD2DB7DCC2E5F2788E693904DB476D760849 |
06AFA0DC22C0EDF25ACAB940F8334AA61D3B76902940E10A8EDE2397C7295D72 |
C9251FFDE84709AF94402E694BA912E7ECB3CF7EECB1C7284ECEB3257F51396F |
EAACB3CE42F9F7FDEF7F1F09F2AAABAEBAE9861BF07826198C8D4E2EADAC2AB2 |
262B7A188560097FCED8687369A52DAC841C1A9613CDA74133C8FAC24E9E3E69 |
6C6666A96811039AA78516B2C8C27ED68B8C4F21B4A19E56BB465FC9510915CA |
ACC88FC19733804DF5E983EE8C70C457ED5EE44191538A5AA41D9A9E11500596 |
B85874725325A8C6F5B626FC12279EB065CFD3FBC57549E46D1A03713FF262D4 |
73CDA61CE06354A82496DA33A211CF5D88446D5671338E66CAC8BC94C02C6821 |
02C92E6AC154319FADADCDFB7A0784A79B9EEB806481D207D5D5A5C9D4EFA4C2 |
185244301C0C3090D0BB7A3C1AC49DE27E4AE257D120D092D53C32129C0F127D |
18A778FFD489CDB9EDED717374515E1629FE1EAC556CC8C2F0AA268E5B1DE483 |
62F9CA5A5B37B44674D78A46FC8A56692FB893DB5AF3F3AB500558864F7CF0BA |
6BFFF43A080BA73CED0F4EB58FFB53E9A174098FD8375D91509245F5043C186D |
3596573BE2BA2D7ACFE9892AAE0F4AF3D7C43E18B11635E2A3CE67600AFFD886 |
A9F1D9D5C522A3174ED8BCE90F9EFBD2EFFCD5F753B4D224DF13F0B5E43E014D |
59435424164F0E09FC10AE303900A8851FC5F908D4801121CB9AEB619597E209 |
1CF1938678C2A363F5A9A989F189515C6F1805521E17D05B4A9E1E05746C9DB6 |
C81FF1AB52480228987E91CA834ABEA0557908172ED3681C3FC838A11B4A5E08 |
94048A2CDADC23E58A5C523D35855F48F4DC162D95B5224F4941A1A7A4B9824F |
4B42B4AEA32C8D152957155DD674900466757FA044A1B4BCE2EFDEB3F8C41307 |
0F1C58EA0F62BC2EC96BBD3260584DC60D0B29344AB8E72472CA0DF0D67DF267 |
F467A7651D35624CB0B7F8E64E3AE9A4DDBB7773DE0E41843E2B49C0F3A117CA |
6180134F3C71E7CE9D84964AF05E2427CA4932659B8044118E40CDFC66676719 |
9F473A1A9054192889368A538948414643932A18280F8A83B41412C011C80E20 |
871BE556319A235EA799B3238BE1186FBBED36E4DAE4DEA1D2878F7CE4239FFF |
FCE7B9F906CB2AFA156FC0853CF4D0431C349687FDAD289582E2E184AA7BDE79 |
E7FDE8473FA25E9878270575F0EB2809D87C59270968CED9B0E128412DE19B6D |
D64771DE9D3ECAB0DC1AA9FB9DB660B19037E24A9006966975823E5AD64A0602 |
87172C4917D639EA3FA79C73F22F1F79584D653B75645007A2F324A050C9F4D4 |
8F12BCBF0EB50AD49661314391271A7708688656A53A614DBEFC77FFD3F71FF8 |
6F870E1D0A21C4EBB596A3A68A1EE084E3548EC32C9490799B799C277A2E4213 |
B849890809C3EFBCE8771E7EE2A176BF23BCF9720335DE2EB4EBD57ABBDF1EDD |
387270769E9E0B423C0542C241122B518424379CBF07EE5863ACE376709E8320 |
3A79CBD6D9A7E750A33647F4DFFFFDDFBFF75BF79E74C689BFDEB193EE6FC168 |
1B5612C1772155933813FB6081A983E9151EB41CF20804FE909A829E1B365422 |
3910B9F07EDF4DDC44344890ECCC71A0BA024B1A68B992875290881AEEC3F311 |
A75AD49626B46F741DE78FCFC57D438308E789D747B51154355741B850B202FD |
08D7A58AB0B9B81F4D1B4BB3A22C522B4A079948060DA98EFBE68BA6A239DE6F |
568DBE8FD2C5C47D967205AF9BBAD98FFA1BB74DEF3D70504951A6D80D682DC2 |
FC51E783F3747407EFA7E7D2F85A6EB4A12DF27735B109228D2A469B4414DF35 |
279B6834533DECCACA0A1EFE1B6EB801C9E1B2CB2EFBC94F7E822A111117F99F |
A9135FB9E91B9E6102342D6391AED13FC7C488801B4D67CB962D9B364D1BBA8C |
9220C7372ED28744D23F93655918301C3FAC738F143FCA80B7A532717612000A |
398E2476139171206444C907250F1B1EC86A8437EB7872D554D7C4BFA2878140 |
2B49501729444551AF2015FA03EE6424E759224BA9AE162875929CA01D9BC4ED |
768E6B5F598DF6ED5BDEB173E6D0A1E5819F0A08235D62B458CAFAE03DE224F1 |
32F2E8F17576B9D4FD8EDCF49CD4CF3161060864E181CFA59DFC37E4D2D008D4 |
19957404E2F8A43B205323140D8E73C825E8DDB22420141DE46BAF7CE52BFFF2 |
2FFF12CFD9CB5EF632D470A927F03ABC20B9D4359B56C460D464A852E7160AF0 |
22A3A4C149BB279F2445BDB8009B535A09719E42C714AB47FB17BF4529BFE56A |
6D6A204CE84C1C9782232D33BA828AFFC18307CBE8A15078C3F0AFF8757C228A |
4CCAA625604162FAB42E7CEFB48130AC7E78A6778886958A762B4444C2E9B7B8 |
72FD0D37DEF4E94F554CA3BBB298C699634A499CABB5A99EDF4F45782C15683F |
99940BA8692D01D1090A8FF0D8968D4BFB0E1605B9A8B5CBD59AD3F38A0C9202 |
C15600F8C4729616F5AE78BF2E83A901B252F19F54B56A6ED0CBA5D46CD58241 |
4F5C1C8EB376BF92AF190A43101DBA3E79E296F9D98310A57C1DA93E4943700C |
083DA73516FBD12DD7DF7CDB676FDB7B60976AE949EC83268B5651B99C79C908 |
8A3D255D6D2FE1F846AB1EF63D0813C76ADCFEB9DB2FBCF8ADBA638A3869E45B |
8D117FA583F3196D8CAD7497C4A30D454CAD78AE0C468E0C06121C1FA790859E |
623A7226C5FDB066D7717CA751999F3B08B681F7D7EBADEE425B381A50FD43D2 |
370A48A63029965C5A2FCE1F7FF4421ABFE0F4B1A42BB908AF4446AD1976FA13 |
A3D38B0B8BBAA186B85E4DD21C13178BEBC27D4E62017C6956EDC0EF8BD1648D |
C6D78A725FA3624552DA1C6DAE1E9CC5F155D96A541ACB9D85B57DB674F00B93 |
07B9D1B1E7A3EA7214FBE6483D70BBA022D3D5A25E20CE83D22B00A3D7E037E4 |
54910B8687329E5AC211020D65EB212572AB0C2AE6273AA554200A7FE2AF7838 |
919A262626D044E6A8A1C44C84DCD9EC64A8D5EDCD9B37A124B04C3D4ED0A24C |
0AE53D139521C3B45176E34029DD85AFAC7196A4A8172B8A06A4C20554D80492 |
AC2AC31042A16C2A30F423655CF3CC897D020A18F744011DDF9091696AAE6BA9 |
80A553D0B62DC0EE098F49C6B38B6AA92630781345340F5765532FE27E693EF0 |
033F889697A334913B9D64DF81D5DDBB6766E6DB7E988B4C536DADB08B9C3604 |
DD47EE7B4EE8A4E2D275A2EEA832A0DC8B75DBB66DBB76EDC2B59020618422F6 |
4A512B228EF1B284F8B7D904AC9B97EBA509128A1375D854CC9F01034789C294 |
3E443C9AEC154E1EE5227316066407D039A3A3C9CD3BE94FA42353491A458C39 |
6B938E69D9395906975F3BA3C3002FDDC930F4F42DA40794B5D75F7FFD3BDEF1 |
0EAA655B67B5F0089CCD45DD84E81E8A36E39F088FAFBCA514D8E79424BDD4D5 |
EB9911E3B59CD161B91C8147893696152B4FD22C8C500026518CCCCA41132A4D |
91D38AFC457212C86A92D2710127474ACFBC1819882CC5A253085A0911E448FA |
89405D100C4421C81CE4D30654407745184A5C773464CDB16C809FE61590BD24 |
C39FD1386E3A95102D5A3545EBB782C24416CF4586896C4A9315D5C2D703592F |
73E33493490C890E50A0656E54D4C84AA03BB2EF6623D55AB7DF135D0A6418C1 |
9795C76E98A120C0A12C4D1FC4515E8832A4BF53CF3AF5B15F3D25FC34A6D50F |
7CD506C913EB6D8D5756165D5485465B23F3AB2B2393B6B7E8F9D9E175E932AA |
BC29AEBB020ACE87AF9BAAE62568D000CE677AF3E4C1F979D44B8BB6A0A09B32 |
CEB3A9693DB4784AE3E07A7D9C582A9C3A7C5D9390BF64A9808F9046A6C66616 |
17F17A1613E4124C6D6E2C1DE8E0A0977DE03DB7DFF6673999E5B298B951F885 |
C24C8CF39BE7FCC6AF1F7F3CC852D5C2791A5D3F4C86E3D33EE03C5BBADE0DA2 |
337FE3E4C71FDD55354CDBB23A837698E3738F3E1F2504AB6AB4DD10AF8FD51B |
ED6EA7DE74DA83013E1D8FB0E8759416D240D4CA0A549E722203B20ED451186B |
9A089C7AD1C010028B40AA49CBA42C6AE40C5408B576DA294A49B0C994364EA9 |
93B6A36FD830B561C3244A822C8FA50C3597B546358C25290DAB04A461BAE43A |
D79020A1623652213EA49C1A12AC498261C1C1614950B086B45CB840AB12AC4D |
4FA9D3BD8E46A0869ABE085DA0AD8C2A4B41EE057085A415DD2B4581310A0B45 |
40D7895EC668510471D2EDB9AEE72D2FC728097ABDE4C0A1CEDEBD0BF30BDD30 |
CA445764016AADB08B0CFF45FEF2C217BEF0C1071F24D87A5CE079E79D879617 |
25AB1CABB3843CEC07C0FDD3CF3CF3CC871E7A08BF4508C67C2785078651FAB5 |
AC987CD80FE7D9D6DCD284294AC92F885FEE2DB7DC72C51557D09DFCC432A3E4 |
4148E125459EFEC485D0870BC54BFE406EFF427C937C6878CEA8A723A9EAC4E2 |
39851FAFBFE10D6FB8F7DE7BB9FF0645DDB9891BB16956F3C9D15436C84806BC |
F7BDEFBDFDF6DB39E115D5A203070E5006116D603E6C7B0B8577885A8290E38B |
B4246E7B4BEF82B2BFE81E8A7EB3978F7026D6B2188E96450A431C2732146858 |
214DC34033E454F455D27201AAA5E602F24D164E4C4B8B421F72CBD1AA5ED8CF |
55D4AF33C95751770E030F52C3D2AA413CC8E581F05024762CA5591AE3754371 |
F025F8D92A68B914A8A8DB0A8CE24835643B4A7DC54E932C50425D181CBA0ABE |
74781C1DF07E1172140DE851F1B4912945201CDC6A64C8A61A6589067612086E |
2FCA8CB5BCAA343CFC3D892A95F14157A03157278C7677498C23B4635435A67A |
AB7D038DE6BCCDF379EBDB2FFCEBBBBF2945729878665DF6C3BE169B92A1E07A |
719CA01B0AE345191C9E3F3281024A26C9C24C7671BD768E7B32502B761EA27D |
9FDB863110EB4DADB4E2471E3E57D71B783FCEF31D97BDF5B63FFDAC169A7116 |
E17A95DCC2FBC5FC713FD58CC7875813E3E7A1D80713259398BF6C9B0D7BB4BD |
D4714CD3C5F1E5C4CC1C94C4491C9A662B1E24384FA7A5B95E47120ABA6C561D |
29D62E3CFFA2BBEFFEB21B2D024A38578C33B56DCBDCDE79DC4F5D57C4F52A48 |
5DD5AA39D77CE2BAAB3E708D2959B80FF85C73CA0867D2A3CE676DFE261A1092 |
ADD7AEBDF6EAAB3F75459A874680B7A258B633E1918B855C936391D49569E465 |
45B2FAC0073E70EDB5D7524C8E1B6CD099277396A800F903B575229B95B5ED23 |
6C021886D7F0AC22E1A422655843D2DAB8698365A04D10E5494CCC3A0A448E4D |
92A524064091D798427E185FA8EC5066F5561AA6DF149C5F883545E534532A5A |
2E585296ACB9830A57144902154D02816E8A3429899EC6AA283356E502B74EF6 |
38B147969461EF4C0DEDA454A83E8537465191E256DB6EAF1B049E1AF849BF1F |
2F2CF5F6EE9D9D39B4889A8470A5F91EBBD2C84B430E62920DA45093E7BACC5F |
9EF9A128024399968333AC9893D9C18DC3CAE036CCC2A412DA4199EF94ED30EA |
CC455042380EA5F17017846CD8E5982C00726870230A9407283628BA4BAA2E75 |
50F837D822E5CA2C529329EC4C9C977BC9D249207F0BDB16F46B39DDE099560E |
0927DA198277E58A168ED9E0E3C8BD290D7BE14291D945E9FF482D244BE866C2 |
02214D7FDD7AF9D7AD5BB7EEDDBB974D131CE1E28B2F7EFEF39F7FFEF9E79701 |
9748CFE2D80694708DC87C31469DC15C478793427BB78D2AAD3BD9D7E61359AB |
8571CFC445E20FCD9EB3D81C98557D7C213A20D444E43ED5A61118ED78453263 |
2D00172AA925D7FDD06B86711B556ADD3606ADD09A43E969474DF7C434DB139B |
6A1E18813680F10DEA4CA89A0312904411784EB81309A91DDCDDE5CE3BEFBCE8 |
A28B18775D1E62AAD3CDA300CB4D0B067E3386246F44B2192AF32331AC98764B |
20ACE6FD8A85DC693A465DAAB72C898AADF1B8B1A826955A74F9A5EFFACC2D7F |
51F564CFB29ABEBF5255FCA4278570823EB124D266F1A02E788606515CCFC793 |
EAE22042D578ABA6CFC5C86151D1CEAD8DF973E6ACFBB39EDC80AC0313777DEE |
AA0F5E7EF9B2231C5BD501D4D4CDB3899B9BABCD4028DA4AA5D90F8389385AA8 |
A4E03AA039102FC386AC39DBAA54D40E4A77883B6A1C8D010CC6EBBDD5D0301B |
69342F0BA8F089B0B9803FA8FE485D979746546530270D6AA8BB2759172A23B2 |
8B32A105DA0CC82DC0F1AB4ED84BAAA3D96A3F53D73A88D0EEF1BFC7A21764C7 |
A8C1E021BCE79E7B50252F1B9A5CB40847F64D8361732752D38F95D9CC54C3F8 |
57C443A83B267B2CB9F0856C7D9E808898D1D9F5FD011E69AAF5C509D8B63235 |
35B5617AD2B14CE112223857298BC3A02C0990FFAF51757E04E66839998F2501 |
2D4C9148541494AC1D4512306E73B123B08677AD8961510608E79C468204D042 |
CCF33EEF82A81B1842A266A2A70D4E529C6954F9E3085C3719B8B12F22C659A7 |
131C3CB4FAF4BE99B905642BB952D0066BA3AC9F52CFBCDFFDDDDF45EDF5C73F |
FE3161421C3F9C4BFCBAACD4E3CFA79C72CA9E3D7B38BD442E7593978F6C95C7 |
7117BE876645DC102513D58CE0AF48C9A850531D7939FB1EAFE09B46D9C00D7B |
496F259811FCD6E4E4244E064A8DA55804AE6B5EF1EF9104304C67629E4BA93B |
502A0EA03E946558A4674A02D2B8F9D5F0A7DCD39864405E6AE54696048970EA |
A3C0FE3A5AB57C8C46517CE5DC73CF7DF4D147C94C244E4A33A1AF233D53C807 |
07A73F915F88702638E948BC3E05524593D3A9A876A0959941D7F647569D9566 |
220F023582543DC739E13165A7D9465EE6D81BA5A867A90DD55FEC4222C1A801 |
ED55C15CF5692B98552B71E682695713D5EAF6904185E0394DC9EAA59D742431 |
572602A50366F41B8393779A3BD1F0C03532D63A0C5309B8B31ECE9CAA3DC85C |
930AA44572D651411F6912B1EA8084DC6F4611716625B1533420CCD5D30369AF |
9EA7A62AF5B258B18D3CCA8CAAEE7B22056E433E3A1B0F8F0E5EDB0000FFFF49 |
44415420F75B0D73B59BD452A9D700E8A495D12D6E77055281C524BCDE3A38C8 |
F4BC46BED18343B89855758B16EE6FA9FA2ACA0673AAE12B567AA80FA70DB443 |
6359BE280D2692FA020435C8512E2C18B27037086F575DAB2F9FD9D51F074F02 |
DB69F53BAB0A545323B68C5ADE5BD4A1DEABB8E0A58D0674CCE6697A7BD7BEBF |
BDE26B97DDFDE119FF505D57078BDA88322643776134541782A80227C10907DC |
BD912D8D8CD73A4BDD54D9ACF66613817C19422D87B8D158913B1B56ED593D92 |
018D180ABD92514EFB4959D7C7A2176426946E47D5452448F067D4CCC826A6D3 |
4E07BEACA61FF5A0AEFB8C8E8EBEF8C52F7EE4914790C651249453E07058A41A |
5401D17460FC82C31163FC03D1214A029C9540422F52FEF1BFD1D1D6C4E458D5 |
11DD2B45C3884CE89512242409D6B898BC56BC20FA370CA778D40F172F115EF5 |
5A4302551EFA97D6DCB8521E73B818869D770A6D5AB49C41D1231ADA6845EF1A |
1216993BCC37FDFF597B0F38BBCEEA5E74ED72F6D9A7CF999933555D96BB3125 |
8043800B978417E2102081406E28C6180CD8B8C84D962DDB928BE426DC2BB621 |
260408B9402EF5BD4730EFC20F880BCD5D92D56634FDF4BEDB5DDFFECF59DA1A |
95843CF6EF67F9CC39BB7CFBFBD6B7FAFA2F093CA8CBBB6E93E59612550AE23C |
C65CC2750C366C9A35B3DD71E7666B3B774DEEDE33552CD75C2F886AD0D46B36 |
00CD08914F3E01D8A278161C05475B69C16980BACD84F2CE77BEF35BDFFA1676 |
1AAAB178D557AC58313B3B0BF94C87453883B0A70A85A1C8459E12D2C775D75D |
77C71D77207ECBBC1EF9A0FCD3DAB56B9F7FFE790936886F5DC203FC19481214 |
AAAB7822FFC497944A257875F46336AAFCBD24019411941708DFE1B7863CE0CF |
3C3FE84929F5C94794047A0FFA1F2101C4EDF94FC4C7A0F2A377209EC59A0D2A |
27E8B052F0134E3881AFE219606317E19FC37794FCB966CD1AD698F0596A329A |
E121416FE1ADFCE868640B16180F69D9B265F3BB76551430E2801B5BB06A03B1 |
84D3C857571E18DC4B0D8AA9DCF351D2A7FA3A194DAF95D39935FDB5F93D6FAC |
D02F4D1A4D8C06B5A9E902AD2AD37ED6C454EA48CCC858F1221384E72E272AFA |
A64D630BCBF6E517A8D9226F90AC20D3AC6CBA66FBE5F75CB02AAB1012B1D63C |
42588DD1B218780978BA784E50768470226A5F6403F27AAEF1866654068BB33C |
DEF762B24C191AD9A74FC7F98CB8DE6D9ACAEE26CF4F0DAD3AA9512A37323B73 |
B3898AE38F0EE41766A6FD449A5A75EB2DFDCECF8AB158B6D97162C9AE954B34 |
1ACC523BA4B9E3CDBEC9B1B231651941A69B5C8805838E57CA75BD3A990532CA |
CBDC87AFBDF723175C926B356A7AD2B79B699D86EB8373544925CC58CBDB37D0 |
A51C8DBCA24FDBFEA035D6B2756B76421FCA35662BED74D8512074B22B3C695E |
C7C6B206B5C85A789D9FFDF38F5E75E3F736D15C37EB2DEB532958CF370B9499 |
A3DAA8919D5D5535772BC8EAAA13C2ED0D5BDE4CDB4FB87CA351273355C81AD6 |
646672A493EEB41C27ADB0D9790705917681B2A98FB85FE4339325851588BC16 |
679D75D6534F3DF5ECB3CF46351E20484B5A39E25B48AC8882C72DB93F0B7294 |
DD60EF60178086056C981FCD242195F98AB1A3C635849AE830A9684A073742B5 |
B7CBCFEBEBCB6633A9783C66EA1AA0E2744DD98C2C0916C9455F7C61B46E5852 |
5540BD5237490BED458C17254198FA2981C73060A002638B6250B9AD553B1A75 |
90E9ABDC25555BA099866A59CCFF8636444BEB553985AEADC5E77A7E534523AC |
30F32716378D84AE27352DD6AAC79B8DCEEE3DD3CF3DBF6BEF9EA9B073880ACB |
45A5EEA2B973100B6FF127D19D8F6116401240B7922FD1324CDCCDB0F55EFDEA |
57F3DA073D38BF68272FF1E58900D8BC79F3962D5B9832D80EE0458512CAA731 |
5F43F92EB82D3465448945E04BEE133EE32D56AD5A259C0E07BCF67F28EF100F |
121E7908544CDAA5975E7AEDB5D76260FC2EFC0AE80CACF57A811D2E09A0CB4B |
EE29F5AAE731CF7822E401BFD1DFFFFDDFF3978F3EFAE8FEFDFB59C541AC02F2 |
EF101768CFDEC29E39A2248836758271C3B30A071AC40CF3D0F7BFFFFDBFF8C5 |
2F90622B1D49A9278699BD9E7AEAA9CF3CF144D5B6533A35BAEEEAC4A9BB8D5F |
D3B994BA87628D1575DA670D649BAD2A5D48CB06D213FB1C2BE17733B472CF8A |
BD5FDBA502B55A70F259A7EF19986A8E16E952F7C4FA692F267E67B712ED319F |
3ED229BCB076EE75BBE8067E9FCC717E6327EB3DDD949E6C389B56F43B54BC66 |
1FB2E078B901FD443D030B4C01C60D9FB37CF9725612A5A865DBB66D1B366C40 |
AE842227B7F5FA13CF78F2AF9FA5C17A625FAE1573692E47DF3C40A5583248B7 |
33A5559FC81FE82BB5EB94C8245B5AF3C4A74F7AF95F5FF0F598ED9BCC83DB6C |
47E49CB59F3DEDE5C1DFD13C65627DD9662CB1D7DAF92D55EE101B20778E826B |
2CBAB79B9C1F6D262B5AB3C996F8B0DF8E5919D3EB2BB5F6D729A5671AEB3E1B |
9FFA9A59DED30A627E86FA6A1BBA34D61A2BAD3C30B72F1B3BA9FAF073F90C0D |
ED1BDD4DC538DB9F03E96EA37EDC55AF9D5F9828D7CCECF105AB569CFFC2FE53 |
66623B02D3FBFCA8D7DC6F959DEEB896AD047E2953FF5F35DA479A9DC8D78CA2 |
5EDF78E9795F8C7F6521E68D55D315B7E18D0E57F497DFF0F8E8B3BF2DEAF18E |
DD39D5A567CB9BE2747B27E6E4D269FD8FFEE88F9E7CF249A6B1952B57F24E44 |
B3A9A3716A0A9338809E226EE4E825A3A3A3CCA6CBE141A122C81B138560D823 |
AF7BDDEBFEEAAFFE8A35C223DE5CDCD10297221502D087789BB0D46793974917 |
A60C5308FF7410186E91D11B8ADF859A9A1B765EB65912B02C8A2B374EA8B2FB |
ED107774D1CF8BE800A1BB6A2FB76449A2A148027C804DD053E17B31E75EF2A8 |
A12D6A2EB03A94E43095CFC7A310C4D4F04D3D907E96EAFC40353553136AEABD |
2235259E5DEA30A35010D676CC8EA7E276366E654D23DEAC59A562ED85975EF9 |
F56F9E679BA0D5F69049AB32B523C8191401C3E195E3C98D06938FC12EA535D8 |
929A03F15708CA29B3095601240CBB44124011860B28EAE2871E8A8E317273E6 |
7AEBD7AFBFF1C61BD9CE409E1206C03B190D234143A890121A65D5986FCBEA0C |
BCDEF018FEBEFD848F2609D0F93D085B5E47736A79E40F3FFCB0A4EA335DF238 |
D141E18892400C267CC9160CF36ED03AF362A4F0471B944B77876841DC1BDFF8 |
46DEAB6C4B7DEE739F13EC58ACD4D16C02C48DE15C92843A1C52CF2C72178DEF |
9738F4F85A5E8E99E9030D471B4E1033FC36F9C75D39F4FCD8FEC2F379E77EBF |
45954E2C6EE7FDEE79F9ECBC5BFE5A517537B6695D7670477981EAC1D8C6130F |
ECDD9FF952A37E9939E00C68B7D7E7FA1B0AB8E6758323A7E9130FCFD227CCD1 |
7662EACE5ABC499D982ACB3AEEEA753B1B3B1438FB0D2A170EB3C1A609CFB060 |
728018A22E4A50356ABF9169861956CA81BEF08E53FFE867FFD753DD3D947E80 |
82E3A97E462638AD465F20FB256AEB34B469CD6CF3003DD61E988F954DC71B26 |
3A40FA70419FAD0E59F979A3D3354ADA47E285AC33FBA84F732A0367CDABD6EE |
7B66CA0A725D32C6D6FBFBC60F1C3F3D3A7F77B7DDAEDA89A068E78DCA9C9722 |
AAA5683C5836694F5DD54F899D5E69EC9E919BCEBFE5AC6C8BAA9712EDA7B5FF |
92DCA53773FF63BC32324977D3D04C6A8E3A6F7CD389A7FFB7F73CF8E59BE87F |
C428A11D777D67673FF5FDEDB2C6E08473371B5266DF8D41ABE1D14DF1C0EEEB |
6A33F92BFB5AA56EFBCE26F9FD997E375159D348BCD2D850A57A9CEEEC582DBD |
1BF7AD0B285D4D680F060BE3EDE327D7BE7C67C7684E903FEE5D57D4DCB6A862 |
147AF9513773341621604120126126F2A79434C9D208F64934B677342F2EDF41 |
8032B12FC0B8842FF19790319215CD527FEDDAB59A600741690F427B100E19E6 |
AB7C592E9BCE645261064E9898EFB761132CE297E9BDE070B088382F1DA9849F |
F604C062741A36012441A8D62D4A081807265A45A95C55350FBA6AACCABF9A0E |
75350ABB98996C2493EA786C8690D3E11D161B1A1BE87C103E5A735544C18EB1 |
30B313193B9EB1622CF7E295A2373D3DFFFCF33B9F7BF6E5BDFBA79A2D179280 |
DF236A16A00B157C2FD18C4614191DCE41964802904510F614E53F7977F10778 |
60C0A6794501EB1F657651EF102846381ACC08FE57EA9F61D14B18A050280041 |
8F1F0D9FA3F8D60572045943FC0AF7DE7BEF05175C20987AD2750011D73F8824 |
004D0BC62D8F8165D57DF7DDB76FDF3E0430A4D58F6AF61BD6B2D1D123C648CC |
E5973DF1C4135957858E0F1217B83ABE76DDBA757C26DACD4364E2573E1FC16A |
BDD775072AD8E156F6C1A4BA30F42703402A1ECC6A8801097BA0A19058D9206C |
AC915A02D7213B93EA54326E723ADDA473880A29D21AD666E5EA74FDDCC0686E |
FAFDDE582379E0F1E995B59836D0DF58A83769BA71D3007517BEF8970F3EF3C3 |
8967EEFCCA4F6FDA95DB6156EE76E97C9B4C3D714BD3F1C9E5C93E9F06560DD6 |
2EEC763341F2535ABB594DACD3E3B37E719B723E3001BCE52D6FF9D18F7E043A |
E13DCF24270E4CA4F94AC35424B6C156D07A6880E374C2582EF3E496A7546F83 |
F56D8B6DF65432736EDE6CBBF53B66BC38B9570D50AA41D7B5C76B54EEA34687 |
F241A29431698E1979A2CDEA45B23270E9C842BC4877BBABF61DBF9FF67B2B1A |
54A25C4D75C62C6EAB52276EB53BDDBBE8F8EEC81E673A3634D65898CE0C69B5 |
4ED22EFA414A0BCE6F74530169697D53771D9DD6A2D97DB7EC8FA7529D4B9B5A |
3B30FAD3B18F25F441ABBDB1E8F5299008AD3B1238D3F65546470BB49B077D6B |
811C2F7121151AA7ECFB7A85CE9AB047CCF67A772477C25CFC25EFFC708DAFA1 |
64B0A699DD9DAD9A836BDD572E0CD88219F96A6EE6652348F9D9EB0DB7DD696E |
A9939FA06E8C6EAD66E7356672CDBBC96F2B47E29E3D7B783E51F202BCA96896 |
60F4C0AC629302920BCC169133D8D0D24B15B6B2EC234900E17504111E713FCA |
F94BE43DFC01EF7AD7BB7EF8C31F62EF083E314B054D4E0DC3035AC8DDD14B52 |
75914CA7538303F96C369DB4177B156BD4852458743B6A8BBDC9F8FF7807A452 |
48028C580622097A36412C6213F4125299A7F724013AAB86EDEBD46787424546 |
F3C3B6C62A6E8C6C229BD57E43F14D4BC9AA830D90156BD7152E453CC1A3B64D |
23E593E57BC6D46479EAC0ECCE5D7B77EF3D303B576EA075AAA99173B0A94B10 |
B61106DB956A52A85422278E96450A0E2EB31A8D3D48560F7234F543119CE8B0 |
88316A5985830F0F0FB30C97F41BE8AA7C5B66ACD8DE7C1AFF1945D566262BAD |
8F25A75EDA55027EE4861B6E604D19D202B1AF3F8824003603B3187E0A6056E1 |
7D12E866C4D6B443BB951D314E00DAC05B48A2543471480F1BC8F0DDA03AE12D |
303F14AA69A2082333954FD67AA82C47B30990632308AF2215B66EDD7AE59557 |
223D8305C935D75C73CF3DF7A045B3A04B512FBE1546D45CCD57900CF96EA2B4 |
AEA57D3C1FDC5EA2F57C235209817ECCEF739487878F05EAAF50513F39FDD07E |
2BA8153F426F48F7FFFB2D45B247ED86D3BE627E2847FACD83F357145DC74F5E |
3BD2CC4C276A63F15BA6CACD207B5DA2DA678F9C5598FEC6CBD6E599FC2BB5F9 |
BB15E141EF8B4A7A213FD16FC0FA912F47BDB8142F1C9FC02451D092ED2059BB |
663ED539A571734337F6581EB537929530BA37784923A97F32D54DFBDD7B1A23 |
9581399AF588B579BD917073A98C37DFAD93C972C23A3FA54F5ACE374BF946DF |
BCA65017546F4AE61985802E20DA4E746186BE59CBFF2A51325A9944B2E17613 |
6D636834E7B5F57DCD69BA918CEBC8BB52A3CF0785856433B01B571473E6E995 |
1B2BA9F414D53BFE8DA956D0C8DF3AE86683DAC282D61C1DCECE972E703A1E59 |
5BB38598E13BDDB90D8D81D8D8CC8DA5911BADE681A6FE60BADE4DFAFA54EAFC |
5CCA4CBAF737CB2D7273A5FFFE86F7FFFBFFF38DFAB69436E9065FEAB01D6775 |
1343E7A6BBBADBFC4AAB5E31E3B97AE746B2CFA7E415547C90CCBA29D93EF2E1 |
18B985A82B4272E792485534DB42A8319A7BB2C40379C4FBAF5EBD1A396FBCAC |
088661C741F5416488FF647A806121D8390725013356E57D0E167BBAB2EDAEAB |
64E1F4F0D0605F5F36196796ABDC8EBEA7840924415823D06BD11E4A02146749 |
63588A401418BDBA33D804CA36385412C02C8024087D4D4ABAA0BA2E50FD1E9C |
C5CEC67AA0C047D94009338892F1649885622A479075D0327055CC83794460C4 |
F841A6EB2990896E27D8B3FB004B82FD13B3730BD54AB511B68453516CC3D7C5 |
A3BD04E01BDC1C2E63307A7C3E864C86BCE5D9478487ED35D68511921157CCE1 |
46FA922C52EAE1CAF1ADD0600BA9F4808E92320EEA4118E15948848F26D2C878 |
90580581CD4B09CE4587363AFE43D904CC31376DDAC44C1986CBE38F3FFEA10F |
7D4810A425A10D8339761629F57C62521B0CD9008B478BD4A2433008C88714FD |
32F5F3CB22D95F12637A285B479504328130D16097F07DE072C1E24AFA009E2E |
7B55246E2613F36A4E733065CF6BD6355695ACDC16C3BC6A8A8AC72F7CF5C5E1 |
4A21E1B7D2179DF0EC579ED69DC174C9AB7EBE44A5A4B5B5A95F6CB50752B12B |
4A29BB601A73B50D0399D2C0FC5D93C98BBA7EC669DFAC4AA15674E2FB367556 |
EACB2736EFF70C1A08FA17E265BA9AC9A92F7143073B11C20FB3243D6CA91780 |
417E2D8C48BC2FEB13FC5EA05225BC630B349D8ADFDA28EC1999787481924E6A |
811A5BB3B17AC3B9C3239772E753658CCC66D6AB9AC14871CDD675A5F98952AA |
C5F22FD98A35C84AAD6CFB1F4CB647B2C1CC24E5C9E898DEBDB47C76643233E1 |
5F442C07F56D2B8AD7B9B146C9B8D56827EAC916658673CD9942CDDE697729B7 |
B17F66A83874C1E8EC0D5303A5FCC24325AAA5B2773592CF0D4E3F56D4F27E6A |
86EA9BD94E6A17AE527D3049E5BDAED0685F70BBCEFB5D7BD02A24127E393E7F |
D90CFF9CB953AF5DE4B39546BEEABD33D04AD60DEA7CA9993B60D41D2D63B865 |
8306BB7AFDFAE10ECDDB35A73546A9994463458BAE23AA51AA99B02F59B5B0E2 |
05EDC2D3ECAD3B5B453F76870F62833908CDE3D8397842D86886818D297B19CA |
A89C0657B9786E04743ADA4FFB8837C78191C051810C25A87AD1A0E0A21A0AF9 |
8F2E5DFC33DAF0C201C23FE6F399B19191FE813EE6BCAA3764E8CD51AF4D4CEE |
1D1E8DE33BE02FD83CD09EA24DD0E4832A3D50D71AC82225CD5D0C0C18075D43 |
E1E18585012C065858193EEAAC9508080D70CD57E81131439590A9A695B164DC |
0AD56733A1DC39CA53E47ABC01BAA85C539E62259602C763B2F03A6D6F6ABA34 |
3931B567F7E442A9EE74017DBDC84D60E6A3BC560F8186FC43DBD8CA7B45FD1E |
C2BBE9480AA6D6937F1B366CB8F9E69B01D60FA515E26489462CE7F316450E28 |
ECF7CB2FBFFC81071E882AECC71F7FFCCB2FBF4C3D6FB5DC0D0CFD7013847A9E |
416888781D7C063405CE07B30673078C04C00B81E78C30943C25E8154EC31B83 |
E145C1A5216650C0258E35A9355952032C132BF6103AAF02F359EA96912B25D1 |
36F4D590CAE7E05024A5205269CC577DE2139FB8EFBEFB248A23687D520F2845 |
D17468FA83AC8EA4170B9E20DE5758BFCCFC625AB71637876DB7515B51B3E636 |
B55B691ABC22E55E3FEAD6E29DDB9F1B207DDA64AA3655F5AA9658E1E727AE9E |
50F5B45BC6E86A961AA5F4D5541F232A927E7976A8BD6C7AFBDEF47AD72A68C5 |
ABD5D3C73B66F106B3ABB7531BFB562C1BDA31F10A51B67347994A8171832E89 |
EDC84D04ED19B98C530A9627FB5ACD7D9E4E5593F77E405E7390F4F95C92AA6D |
55BB9CB5A9D9ED73F5B2D952686EE514DDD0585B5CB9EB9EFD94F0D7C4E2AF5C |
64C6AB8DCE761AD2ADD94D26594D6B23F57BFDB574C3A544A751B603EADAE477 |
328520369F2C0697F23459F479C39E1B88FB1315D589662841B3CDBBD2C9B9FE |
E4F50BF377B4B4497FEDADD99D892A3348AA1B0AD839D718AC9C347FD36ED2DB |
742DD17964F7A5DA3736FA3BA3C5ABA74C67CCDD7E603046CDA6D9BC2547AD85 |
C2B54A12743364D59424E85CAF343CBA857541B2BB59E5FA77C9D842DEE544B9 |
3EDADC26DF3C2E3FBCF3BC5D14A3A1AB32B3FC73D0229B0A75AADE4AB1F9D1FA |
CDF3038958BB95686F5B509D696E4A9D44C9176E99B3A747DAF74DD3161A5C48 |
356F377CD63A59F9A18E672B6F8ADFA424A57DDB0558217CE6CC5AA1C081F0A2 |
BA97E41A6199B055D1F61C5FF216433101B60C2C605CC277C316A65EA4817ACD |
2971BED030487DCD9A355353539FFCE4271F7AE821B9E7229147C7812C69388B |
1517D5D5861F1A1C1C1A1ECCA553CC79D54E40B23CB18E196ED15E374AA93B15 |
614011B46AC58F7A1E7F1D8E79CD9594A1450DB78786892EC89A121846A07A73 |
87918640DD9CFF0749C0E365B61FF62C56EC80ED15CB8A29F4694DF53E0E4D7B |
9574C4B7613ED0757D9601ADA6DB68B5272766A7A7E62727A6AB7547C5BB8D83 |
189C9871E93BBF44448BAB4E2ACBC49514FD468CA1259C7D7474747272F2D5AF |
7E35CFF6CE9D3BB106E82B7DC4F3519C053E8E9546F11494B575EBD6BDF8E28B |
122945B017FA081461C866A49022E905CEDFA057C48B751768073053E496C15D |
F0E8A38F9E7DF6D9428B7C1F50B3804E0B8234C8FAFEFBEF3FFFFCF30132CAF7 |
07AC1EDBA770C2F09DD1FAE2689260495416F13124BD083E07A81CA6CC1123ED |
51F79ADC07294660DCA79C72CA73CF3D274652F47130022459483652F46E9852 |
5E359E1F24560085427C2F9076FCB2A55209B4B12A08F626C9EFA6736EA06DD6 |
CB89E69F57DEF383F6FF540EC947022AEAB1CC68A2DB705B6555BFCB2CF2120A |
FA569A97EF75B7B2EE648F5FD26DF62586CBEB5EBCFEE9418D3AD7256A57B654 |
49F0A67EB7501C6B9F72E0FCE72845C377AF9E99DD6D04CCC7ECF696762CD0DB |
D7FA522C161569C9545FBB51F2B2E1DFAD98D5355583E39C2A3AD6EAFA809FB0 |
C83BA0BCEFD4AFDBBE9BF7FC99843E3E7BC5FE74706A7D5B83B4DDCCE5CD6DD9 |
B643EEB66AAA418DCB75CAFAB16B49F7B29D7C834A7A2A13F76BF596DA43C911 |
2F359D988B6DC966666B955B83040D0FAFF4761D98CF69E329636AEAD37EC046 |
F8E344975AF67C10DF6A55E226F99557B9F664400B46DBF04CEF0A379E333A37 |
782B3714F676E6866FA47A821AB751DFECABCBB7FD3AA922E889C9DB5BE419FA |
E5BA6F396492DE1C4B9B075878541DCDDA9261B196A278EB8686D1185AB8B9D6 |
7F2D39734EFE1E3F3970DC9FBEEEF58FBFED9F2BF56EF6A6B467E7C76C6B47C0 |
A64387EE70A8364E9B27FB7CBDE9F775AF2952DAA29B595296E946D25FE9F7FF |
A1A86DD0128DA0B99D62A63D98E8AFD6CB0D95B9CE0B6B26F54CB55B02B9A25F |
EC12555D3CFE2057105BD497ABDA2F861E24F11960FB3375457B3AE921DEFBD7 |
BFFE757000893D44571C3E1B2178FE77EDDAB5BB77EF068EB228349A34D89220 |
5B4FB752FCD430B56C3A3D363E32363CA492D03525E014E3EB9517B024105688 |
3D190D1A4BA840316B03F13A0310417E003E8BDDDBCBC6E9C1534312F02E0E25 |
0185BE25F50826DB58CC3015BEA9CA208AAB0C9510A24E6191AA73146C4A78FB |
B89589C54D309176D76B36BAA572BD566BEEDB3B3137579C9FAB761C952FC4A6 |
0306CF9C1AE81CBC6C92002A0064516B0073AA47DAA11CD1B9713867A73078CB |
27338393EE31D14BA2E7837F81EF8BCECE57499D8854124AD59818A7587829C5 |
802041BA0285F9CB781C9AED48311D337A44B001AD01BB840709900C297043AE |
AA6223AD16BF0EB33C245C8AA623EF1265C74C667C7F9E5B047B0F9704147134 |
41BF8631046B402C658825798B256C5A9E7BB824401A352C09F047FC49873AE8 |
A2B2E188F7A79E658D97C554F39078FE016B8A1DCE3373E0C001556866266A6E |
39DEE94B0F77CC8FB666EAC6EAFE57ED4EBE9820BD754F6374EA842C0D4CD02E |
9766FA12D64CD7A72D2E3556C4EFDE677E901AC7AF886DDDE794C90A0ADD3BE7 |
0AF3C9B9CF37E91C5DCBA432B7353DF258031FBAF9B85265C2D9E25A19DE7581 |
D7216313F1BFCCB0C4F98017E4518D8F8FEFDEBBDF4AB971D7D2BACBAB5E9B8C |
03961198DD54772870E79B0AFCB99FDC698A27A8D636ECC01CA0551AD527364F |
328F8BDD1EB7DC4ECB4AC63F9E327DBBF6E559BBDCF13666FCA4E35DDBA64E8A |
D28D2CE5B5B8D15C9877143A92997513D54C8D3EADA5BC60F4EBF93D131E7FC1 |
54E8B4137EA6459F207D34DBB76F501B76F4F2FEB93B28ED15EAC9390505D1EF |
8E6587E69C367DCC74465BDAF3819DCAB6065D6B43D2D283FA35930AD3F3DB79 |
7DAA6B525CDFC492BE99BEC7AE6B21485FB34FB7CA2C533D9F0A5F3E69AEF802 |
D9B1BE0BB460F750E5FB3E6D98A38A93DB46159DF2A356E9535D65F7B0CDC16F |
DFA6651477C999D8EAC7DD42E7FAB964979A964EF76668BEA25D9908622D6B93 |
9D8E2F6FED9D769627DD4A9DBEDC50E8A56DDD24C353584EBEF264B84CCFCAF3 |
F699CF7CE6DE7BEF4571226F015E08DEB3705722DF4C9A83495E22DA49C99751 |
8000C962D022982B279C70C2DEBD7BA1C24665C9E1EEDF25E8F7F0171DDCB0FC |
0056EE78D0FBF6ED8BDA11E1E654F7B162DAF0F0D0EA95AA5D81DA549AA2ADAE |
EBB04D004920EE20D84138A25065F00F88246021A018962F887587B4B10CF021 |
B411D4C9101E07F1D1345BF55D60511016169866DC58042B5556C36295836228 |
76228B0A6105F5D5F1CB95FAFC5CB954AAEEDFBFBF5454B9B97E9839CA3601C6 |
BF6CD932C0B7F22617A349EA06846145ABDE0E57188FC1D931EF92D72F251E4B |
EA18A2E7DF78E38D9B376F964A10293BE45F590CB0BA2D1D7445A5A530C82168 |
68F89E956B3E93B930C2D41870B44882425B9269006152B892412BCCD180CA09 |
060A87128F070DC850EDC5E7A3090CFF247873B01EF892934F3E99D570A651E4 |
35A3A8F888DE21411E04481CAF056F1E8822FE57D243652196A4A8D1A136E812 |
EF106C6A1EAAEA2316625F4BD8461614D178F46B5BD27A480E012A87570AC56E |
3CC3C0C0401ABEDE8374545697795CD2DFE95AF9C6C5311A98A5BB48B1307EDA |
06EAAF2D2B3E38A140EA3F1B42D5FF0369AFE8B15B92DDD94EE23E27538BCFDE |
A8998E6F7FBE5BBF8B56EE5AD3DC3233976ED0CA78EE0D235498ADFC438BCEB3 |
4E7A7EF48527F616A63334A0CFBB15A55F5D1E23C3A2AB1A128B42F91EBF38AF |
C533673EDD2DF9DEC3DDF1727A7EBCDEB988B49215DCDCB5BDE1F6C08C7676D2 |
480FB837EFB79A85AE598DA53A8E4E469906EFB3E67FDB4DDD4FD534A53E3CDC |
583543B7109575D541F8928C8255BBB555888D5A863F37B7D0D5299734469617 |
CEBEF8F2AB3F7D8563B5565F7BDCEE5889B62EE8D5ACAF55733E554CADEFDC53 |
CB27EFA0F3DBCA47C0DC6F335175B576F5013600CADEB255D49CA3A27F2159B6 |
59B9CF4DD763AD9CE35DA31C65E6CD54B88D9A0D0A36A6ABF9BAF109D206C97D |
848676A48ABAF2D29011A7FE8EF9B9014AEA83EBE7A6C768E8836B66F55762DF |
23E70593D6BB0383E46C5C5B35F8D141EA72B351DC677F3FD72E5614F65E6998 |
45637763975C9BEE9BD6543441CF9D6399C9D50BFF738E3E3EAFD6EE6ECA5492 |
B564932EA313F69DF0D2775E4AB433A96EB2EDB4EBAE022B35E30923F0D1AE83 |
F72C5601CA1F227F02C0CEEA39A00198A2F804DE6BA266B1C2819CD12516B314 |
63CA8E408C50808DF10D5F025D33DA890F5B00AE0B38600F26CBB11878EB5BDF |
CA7F3FF1C413303D10C743585969E814E47299552B98552ECB645286AE0262ED |
2EBF5E1BDE21A95D845F088EDD285E69541228A7BF1F1C0C8A6A08B2634BFBC2 |
7315CE62684B04C27C15B044C082286EB3AE6FAAA085AE85718BC5CAA9501D76 |
E4CE763C1BB3E328D3ED74DD72A93135335F2C5667A70E341A61C9854209B782 |
45B00C1FD6197FC08B53CF1D246E5F245748EF49796BE13E62221C8DB3A3CC07 |
169824141D9E2A800F0F3DF4D0D9679FCD2780316DDBB6EDB2CB2E43FE9624CE |
F34262B4604CE242111716F83EDCF4D4CBB54742AAE06C036D0D3A05E2E102A3 |
0D162CCA08326B59A9BFF2CA2BB76EDDCA5731EB671D07AD80A3E2506AD90514 |
081873D1E00A1D294E103DD6AC5923DA09F82FB610724FA39D5365DEA8577776 |
C438012AAD1037A61E123B042D9615E4CAB304DF0E2E9715C1372221C4310855 |
0BEFB872E5CA0F7FF8C3DBB76F478A8152C1F4FE8174D173FACA9FB334ABBEF6 |
2EEBAD6FF9B39F7CF77FEF7A68BA6F221B6CA9AEA4E5BF2DEC1FF8DCF19D855D |
2DDE43A3D6F8C695B5FE1D55E61ECDACF5D9B693EFAADE26F7D21F75FEF8A9EC |
CFED6AA23DD0D2CFB3D6EC3E75E7EA67682B8DAEC9745FA20F9DF577F73EFE10 |
6568FC9CE34AED46FBBE19294E14C43D9ED2BD1FDDE35535F7D1CEF87C7A6EAC |
DEBD80F45ADCBFCDB33B03DDB119EBEC7C3BB068FB8CD52A7463353BC393C59C |
3870AF31A9D0C84D176A5A3BDE186D7DE165AB46F174FFF8AA74FDCC44DB6B2E |
3CB8DF68C4937E27D062F6CAE5737B5E29E4ADB946574165C4DD551F5FB5475B |
A0AFD4CC5AC2355A395FAF187EE293A7B4D22FAED93658A622ABF9D317B95438 |
217EE51ECDE8B483FE4C2C5FF377DB7758D6EEA133EBEFFED157BFBD502E791B |
1BC36661768B137CAE4C6F26FB67C7B9835DB7BB8F6E57CC63B493AAB22C0FEA |
258B99B766BE77C0301D2D36D4CCB839B755F9D2F4BA699A8B0D54B66502679A |
BA6DADDF369EB5285B757F48FDCF8D3B6E2B46D9627E8FCA53F910D10A32D836 |
EA1F6E561D1A2BD27A2AF8B1DCE644B76A4F6E6FA68254D598316E4EAE7D7ED9 |
CBDF7899DA66A26BDB09BB1534DB9D26297D57D1181CAD68700BB506A0BC2021 |
FEFEB4D34E7BF6D967F91B3E13688C9FFAD4A7F827DEFE08DC3221C1078B28A6 |
A05B623731F949332869BE0BE2974C6EC42A60460B18306A3F11F35B643E1466 |
46F31067676797D4CD86C244ED24CB3247860A2B562C63553461AB7174147ABF |
0A2176BDAE788744124443058B4102E5BF89859B4D0BBC431BA9F78441EFB13E |
BC4F8B0CA257AF109019C6D099C5ABCA8698D16B5A498BCD52428D95202DD5A3 |
752B2C6EE20BF56ED72957DBB3330BC562B9522C75BBBE42CC53F690C211840D |
313838C44FE4254166BA4C74341F349AAB23DC768953E26836013076F03DAF3A |
FAAB1CDB8680FF075C15B811F08C5F7FFDF59B366D42674A490317F84FE1E3E0 |
C84C6DA81F79FBDBDFFEDAD7BEF691471EE15FA389ADC86BE29B7FFBDBDF3EF3 |
CC33A17100E3881922D3229FC68C1E1A0A38FBF8F838EAD144A421B48BD78755 |
2131555693F9644426401E479404523F41BDEE922C6CAEB8E20A385E00F48680 |
DB119B05C9BC2D31D496C409647264F96088A0FC0D5204854210FC5141824355 |
59C6E380A70DD1BA5ACCFDB14CD8B1E2F743B67E4B6B518E7253F146B2434D66 |
D403ADE30BED9D3B33BEDBB453463B96A04E4557814A669A89C4F2567D8282F8 |
B2A03E4D036EDF829DA054ECB50BB3CFA8FD11C48895DDA65DF51BEE904F0D4A |
F751BD6890E3196E62209DAED64B0EB99EAD9A7F69654DCA4DA3B14485B79871 |
9341CA6F8D959D26E9937136213AA966A6A97AAED8E1FCF3D726B55DDDA69863 |
7496797D0D725C6AF05DA772BC6FE8C47AFF4B6E2D3029E93ACD94CA064955A9 |
9909C9B1DE64538E2A359BFC91D38EDBF3DCDE5C7FE28C0F9FF1C457FFEF8C97 |
69CDB51A298588AA359C4E2E6C52366BD2E0E0AA85E484F78A6BD06A6B74776C |
4AB1258B72737D9578D9E8C48746935395D2699DD17D54744EEA18CF66339469 |
B3C56098654BB57E1B75CDA9AC9B6EF7D7A9DBDF555392F4A8B5825882EA35C5 |
933FBDE9A30FDCFA0F566338994E97BBBB5ED54DFCD66AC575B2DA094795F3F1 |
D30A9ED56E0409CD0906C96FC52BAD981BAB93911A6836EACBA8B37F1D657664 |
6ABAAB273CDFE9B242BBBC4D7E61743235C546DE506EB43833AFFADE245879F7 |
0357CF6413306A99BFF3BF9FFDEC676FBBED36701558EDD8D4480D87058FFD08 |
080A49E5FAEBBFFEEB1FFFF8C72803E2ED2328875044A23E1FA90712030298EA |
824D2DD503516A3F84F940F76182466483CF08B7CD2214A86AC8C3F49D8A8F8F |
8FF2AE1EE8CF841A3AAB695D9104A13EEE1DD13B247CD3A04566BD4412847EA0 |
40840136B3AF4614024D1F2A09541FCD304EA0BAD6841163CB8C61B7C34BCE62 |
08E69817A209A90454D5B84261CF2DCC978BA54AABD60EA535BF42C80BC80B4B |
91CD934F7A15BFCED4D414F826E201C2FA71F0E3A4817B548D3D2419EBE89C1D |
8B114D3B59825AB1E47C187DB02424DE8B2587FD08C41B542FF3E480359F74D2 |
49285D16DA92AC4A383170B2A0BF89120DEA144B08969604B40175C74AC3C4C4 |
04CC88071F7CF0A31FFD685475805F886FFB99CF7C867F65E1C4F7E4CF5BB66C |
8936553E5AC4186616183D7FC362808501FA150B8C1DD29FA2DE2461D6D170F1 |
E192209A80B48851180157970C0DDE87AC64EDDDBB17A0B351B3EF70AB8507C3 |
2F2B85BB700D510818C00F8241F3C642E29745D6765A093DD9F4CC4C2E5B6B94 |
B3E9FA2983AFFBF9DEA7694495110C05DAAC1BD07066A063C4E6DCE9612A2CD4 |
CB41DE49375755DCE34F78EF8E3D2FD5B5C9DC384DED2A698655F7421A2BE8B4 |
C0268CE1975BA4399AAFDB46CC521D6514804A27B228123054CEE5545FA759F6 |
D2E16F1D153136B456AB5FF5DF654155A094498EB532B37772C176C9D647CB29 |
87FC1C75260CBFA3366F56F5571B745EDF747634CDD6B8956877DBFDA97CB3D4 |
9ED42BE4F8CAF363C5A84B851895129ADB8C1712297EA7C116CD9BFAB06B2557 |
8FEE9ED83DAE6516B4A6DEF1DA266FFB34F92A8EB86224B773FF4E3212635EEB |
00654F3C75F58BCDDFD07ED3706C8DEA06C53BC9CE7F7BE75FFCE4D95FE49D8C |
5BDE5BF350459A27A746CA2F1667ED2EDF6D95629476AC76CC8C3BCDC680965B |
48754DB7C5824A1B6D349F2D0CE45293F624CDC4546E51CACE36DB4150ABB394 |
75286B67679216C51AA4B5B485786076B43E4A35629D56CC31F3317FD2253313 |
D8CCFE6A09DB6CCCDB0E7934DC3FF6E76F79E713FFDFBFED9BDD17A848A5B6BC |
B06ADFEC6EB6C0E0F9E9EBEB63D2950A2495F1183A3FA385C4D21851A80B7C9C |
25C18F7EF423563504AE2E6AA3C3B729ED46A225EE62DDC2BCE69180F8A3C525 |
517EA5A121098FF58C33CEF8FEF7BF2FB63CEF20705E5D856A5531D7D0506174 |
74B830A840334C5E6CF2A39200DC5F22C6D186E98B416342CB012D0C45ABA644 |
9AD6F3BCF75ADB532F7C1746A47D651F2C4A02D54D4E69F2E487B8437A585FA6 |
24412A915CB439147C8D32F37976C21A2387EFAECA23DC80C542ABE9144BF54A |
B9D6AEA1CC4AE5A77ABE1728694776C28A9909405A22F42A65A251D1CA93C89B |
9C27873779D4B92CA1DA2388D91E6787638E5708656202591AE52C4B2481487B |
AD970C8E50019E82AE907C5B04302115F8CB37BFF9CD3FFCE10F212AB41E0E9D |
DE6B5C23AC100B043F18540C8123C5CB4AC1D19D77DE79F1C517F3DDA0ED4A0D |
334512A225BD073E74E946201388E6C0C82B3D9A77086313E545DCA051E7D297 |
BFFCE5EF7EF7BB3FFBD9CF60C780C781F6B40880C4E1DE21019F88566062E1C4 |
D440701578D49899C36500F630426BEF7BDFFBF8E44B2EB944EAB00044810143 |
E26EB97EEBC6EBFF2163FDAE5326276ED81DEFF4357FFC8BE99F53B3A0E9A5C0 |
723364E6DAF6AC99ED1AB39BFEEA3D0FFCAF7F99B3C3B6C00B669B92F95475D5 |
90FDAB729B3AB981A6BB60372C2DEBB6824CBA96ABA70EC45CD3E95814BFF2E6 |
2B6EBAFE965AA3AD42BE66BEE93474DF158026EA614F2907603ED72DFAFDAAD3 |
D882F23FC5D33C79E435975172221D50DB1F1E1C5AF38EB7FCFC5FBF97AAD51B |
A63BE8D2BC4DC99C65CEF0E9F92699A9E1B9D80C6BF3FDFBED723C96E834BB26 |
A54DCF6D5BAD91C0683A9D6A5F96CAAD55697B4F9315F27486EC36955D4A04CB |
CCD169B7EAD61A69ABBFAE15797DEC34651672B37D1D2AF7AF5AF657FFFD8C07 |
BEF40D7BE08FDBB34FF653AA491537468193C859A9AEBFD0E2658CE75FAFA79E |
6A94BD0413B35368B1DC2A4C697B528192085A32D770BA434E67D6F6A99D2296 |
8C5AF5DCBB2EFDD7F3BE5CA2A94C2AEF37CAB5B8D3B2F8B9CBAD525D8F55DBED |
416535301B88F5679C498FE26DABA3E2989A4986BBA2A5972851CB34D848EA7A |
693353775B2B29D8CFB2D0EE260C6A3512B9B4A775BB9DB5CB57BDBCFF85783F |
EF02AF55F2D9904B0D263EF6B18F7DFDEB5F4731301AE1310B061300CBE62D06 |
EB59FC45E22E167B0EEC8222D0F44C69D20596FFE5A77CF18B5F849B17D9A580 |
FCA23025843FB0D1FF918F7CE4C61B6F946A01EAC5D5A2B98E8B9C28E426253E |
5523A3DEA887DDEC1CF18C436BE6C7302B4CA6AD6C2ECDE3B378285EB7DB6E05 |
E4090A9894DDCBFE719D83AE5BEAE11084AADC21A2428FC088069143766014CA |
1F27C35D6359763C1E434F06D5C12E1CB08A9F049EABEC03D60A583674DA2D16 |
A78A2934EA9D688213456A02E848874C96F06E5403F82156FE073FF8C1871F7E |
18A2FB6B5FFB9AD427C31D8F8C78247B61BDC5C524778BC2E3403345A0654987 |
7AEAF51A13734F381A02E37C7356DB592480E1F27D42C3E8F7EE7D864C628C41 |
120FF8D1AC9E5F7AE9A514A63FB18478C73BDEF1BBDFFD8EAD04BC02850E74E4 |
334043416C96050674104950A6103B0880A96C2EDC7FFFFD14715FF44A4C0CB4 |
B68F16BF601E98F098F9B25D02870C928260E2C0498AABF013329AA807A7C18F |
7BFCF1C7317BD13914945649FEA148AC05EB88F28868CE867E6843639C26095D |
48B1553FC55266BD38908DCFD43A5A4C37BABEAB8758D52D2D4D85364DC5FAA8 |
558E27529A156F0745AAF21CA4B23E6B9D4E5BD7FCAC67F81E6F46BBA67AB377 |
6AA97EF28A31957B339CA5996A5AE9F26343F1E27407DD9A023DF9C94F7EB2B4 |
30FFAFDFFA474757FE24D58CDE48078EBFE9868D57DF70753C8883F8A35D1698 |
49F1BFC23ED0BA1562DEF652F1845B6D355D668E85245528D5D18788E62857B7 |
F7B3C2B62E3E385BAD555456AC7FF248EAB9D9F95436D9E0F909D51ADFF113F1 |
648BD5EED0C12032520B41B061EF222A838DC0748B85E07986579DCF17AD4234 |
8F834D767BEA3654E66853528A246B4A873EFE15A9D247DB17927707E500B782 |
B98C617FEA539FE22DCF1A21AB0BAA8229EC29CF54C723E491F078801B11D5EE |
A307DF1C2A0E583C9FCFAADBCF7FFE7394DF239F2DEA27B8EAAAAB986859EF11 |
64147C80BEC513C55ADACD37DFCCF4C99B4226966FCE037EF7BBDFFDAD6F7D0B |
247AB44A3444171413E679E169E59131D30C2583B138627244A188C50CB07B1E |
8469A9D91F2CF427F9162A461B322983248BD4EFF58A5AD4912926DC3FEA4C3F |
5C12881E47472AEA8962DB454F0E733D2CB486C7F79EAFB898AE38A9DF6A75D8 |
0E28162BD54AB3DDEEB88EAF6203A1A57C7865EFD1568EDF1A4806D42B7685E1 |
221C4D405DA6A7A7A3A95A0F3EF8E0F9E79F8FAA60D61CB76FDF7EEAA9A7BEFC |
F2CBB0DDA05C030E10942D2101B036FE063A26EB0EE8BA2E7325016149BA97EC |
7E5415421DE00BA150FCE70F692D2949381280E20133C14D4E4E02F91961095C |
05FE0B33223A037C3E5FC5CC517270E1F1E70F175C70014B97647880C9321B85 |
6B2E8A2247BDD0BD284100CF4141AFD6435196BC29EA75B611D21259FBAA57BD |
EA37BFF94D54E0214100E216A178ACACE08A63C062DC483A87886789A25F7FFD |
F537DC70038C2D6613BB77EF5EE45F5ABC3FAB552BED65C79DA0EACC83164F6B |
CBB14DBD1578594FAFC6B3D429F72957A555A1567AE578B334E9EBB14C590FC8 |
74124EA7E5D2F81B8E2FFF62678B066C6DAEA927F89D6CBFD64AF55150CEB586 |
2B5E95AC8E4AE3B153546BF4F38EF6BCF97253755B0CC8B04C4B8BB75B9DD7BF |
E1B5FFFED4BF2BE33A74FDA1109D1546265ABC91640062539C7EFAE9BFFAD5AF |
28A3788161E5FACCA185D909323AC680E675BC810ABDE3036FFFFABFFE98E54F |
DC48A403B3AA353E78E5D9DFD8F6E5AEDB61633BD797E5A79416CA4CDB2A5E12 |
822B00AD0FB532C22BF55E1F85F7BEF7BDCCB95098C2C3E02FF95F10306AA1A1 |
1E615DA004083B030FED6999076BA6B00A4C874CB41FFEF087B76CD94287BA70 |
0FA77FD01BAC70D460C2A90B956EF5EAD5BB76ED829040AEC1F8F8F85FFEE55F |
FEE33FFE235FCB940005E81892068E59A908938E31D1D78166C32381C8A1D038 |
E04D21B5F110E4FCC4E38F3F1E68B81469CD84B738E9A4935E7AE9255C723449 |
206C56E3D7E0197FF1C517E371655F187A6C314BC96B8BE1C003EBA8FDC61B46 |
6792CDE532BC6973D9740843A47C388BCEFD9EE335E89517841B52837B0BFE5F |
E1FE2A01F550E0CFA8457FB84DB084716BBDCA5E960489F088F58EC5458AA9A2 |
AAE242797676616E76A15A6DA8F50D8E320B47CA5D114980A44C8C01DC9FFF65 |
6687A2412811D85AC8B9648EBF61C306291184F017B50B6F0AEB0F7E15147F82 |
6B838347B38C252F984987BF018B14D8350ABDD2AC149C73CE394C1C7E0FE759 |
10C97F5F9B20EA61D723FDD1046561C99E1109443D158C298A7F42E349FE9345 |
E0EDB7DFCEA365FB94A7457A5E82EFC3D189CD26C1799E31BE03B3067E657E04 |
8ABDA589665443D47A70D6D1A651CB962DE33B63DF620205FF957A625B860D19 |
26941044AAA6E17D82EE2930AED8B13C064805967CBC703CFF175D7411D01F11 |
15E70103E6818766DB6E9BC54D90CCE5F28DCAA44E7AC22878C64CDD8991E1D8 |
8978BB96562D8D13DDF48A93EB3B9FC9FBBA1BA84827E9BEE9939FD07C3DE8F7 |
E24556AB8276C619EA92DB318AA9F4985B99EBF415A8D9E8EFEB6FCC1E88ABFE |
B84685A58245763D964AA48BAD9299B41CD5D18062BA459EAFC70D0142E02578 |
DBDBDEF6E4934FEED9B3476276C84BE199FF8BBFF88B6F7FFBDB7ECDEDCB0CCC |
D7262C5242818FB26935BD011A997A6B7AD52B3B2627F8B6A3392ACDE6E2764A |
CF4E2D4CF7E5FADA2AAD4D2D564C29CD66B3D5E4AD373434F4AE77BDEBAB5FFD |
AAF812B530B39EC99EA78BE793570DD11AD4E10BB1494B258AA0FF6B11546069 |
C82341A62826209826AF385452583C47DB1742004266C27325B51A67627F45AB |
2CC18590A27334FC2EB1F591170E6051D849A2F1043D70213960E30AB03CE85C |
500FC4BC330FEDB8251185FF9424402E20AF8161C045A5F79EAD47142EC30F2B |
D454FC58E3A989F1D40F0EE45924C4C38081C48AC1DDA8E7520875310F0A353C |
95E2D5E5FD1265C47AA4E7A5E8EC51E00A39010E169C03D38F9704C1C9D05314 |
5F24054F6913070E4CCF4CCF55ABAC86F8BA7223F33A75974C81C89A23CE91E4 |
AD47EB8FB078200566C4E8F4C2A4CCF40A468378A672A62593D2361AFC0E2A03 |
7CF79B376FBEEDB6DB98887143B600000A8FA62B7C7FBE037470212C3068F10B |
F17DA255CA5087F90E5A88B8191C1340FBD89240AC3179651E0F5CE13C24BC08 |
202860C488E704C939D8DB3C6C5E1A3E19E347718D9829E2FA44DD0DDF0D5210 |
89B628EF40E6B51EB6F7C1B4441D6B92382BD9143CAA356BD6B02A245C3B0ABF |
C197A04D1046C8E6058C2D545A40AF94BC61EC40E9754C618898B7BDF4A8A1D0 |
14E3F3512E84D239F82DB12378E1D25AEC639FFBE83D0F7CA153567DB85BCEDC |
603E5F2FF2966EB463CA7D637B5A9BB97DE0B07235FE2767FCFC89E74941A8EA |
05DD6DB6CAB1FEBED2BC9BA5FEA2B9CF5C47EE8B6405B14C225777FD8E561CED |
1E3F957839C3C68242214A1DC891D76D582D6B15C576502B6925F9C55C4D25BA |
E40672D5D9CA486E6CBE3917EDBDCC621B762D4015A39631C05659ABEAD757CD |
E96DADDF88D5BC6E779A52BA5D2DB45333566398A73EB12ADDD8339DA4462A99 |
657EDB26753796768B7D96BC2E4B0AC332B2891CD3B68482E07E11671AAB563C |
9F4C244C06804EC1F2F1B47FE10B5FF8D8C73E864C0104C3825E3B2050059409 |
3F82B849872673078716D0F09245159A2507AC169E8DCF7EF6B30F3CF08074FD |
C316901A20B4848468C1E605FA0B94D1CF7CE633AC0E1E8DE762B380B450318A |
9A1E307AA90CE713E00882F523505AA267A3331A760ACC11AD578C866453987A |
D190EDE1874CD74134F66653C925CF0D3C1FAC3C80AD815988590AB68194D74C |
25CBA6D389E1C2E0F048A12F9B512D0542CF3B80AB4061404A828C42D5037608 |
4AE0906E4A915A2D513F253B4A5CF912F1839A860F6001522E914A65D4E38C10 |
61224C0A2A576AACEB4D4FCF96CB151EB3A994052BE48FED288F8B78A88E3C53 |
D2A55D9C866CCDB1ED0F3EC5C635D82258031404F49167E24693484C02335026 |
653E0D1A28B6223276204159B8C2B46432C5B6BCF8E28B999E009CC9FF32038D |
9AD56216F0255227F24FFFF44FEF7BDFFB24EABBA472ED3F736887D6E8CAD200 |
DC1C8A89003E8336F02E22AED8BABFE28A2BB04FCE3EFBEC2F7EF18B181BEFAB |
4F7FFAD330723145921ECAE3FFF8C73FFED8638FE126BC57D7AF5FFFC8238FA0 |
1501F247A13409DF073BA09E47580251FC2FDB04C8B016FC45C9AD86F30DC3E6 |
097FCD6B5EF3A31FFD88576A6A6A0A7C1CEF026582427713BE91DC50EAA5EBF1 |
C8996BA02A5BE0BE21E7D83404DE06CF7FC2A366D2F359E3F7FA13D954B1B39F |
D96426990C8ADD7ACAB0AB669C1A158BF23EF5BBD4B73AB16377AB3E9CF58B9D |
11CF2EFB9576960C9F8EABD36ED2BB397F6565E581F8946374294C15A596457E |
977518AD130F9C0E30BA121AEBE8C957BC265555DB74E62B9EDE4D0FA4EAB38D |
34A51B5A031C0DEE4711C9528F12CD3753F2D2F28F0BD64E7476B52D3A75ECE4 |
67E79EA7389945B263C383B1D57BDABF881B34EE105B3573069DD4FFC72FECFD |
398FC736129669B9BEDB725A9A1964FA32DD8603340EBEFF19679CF1DDEF7E17 |
79C39270F5E10F7FF83BDFF90E6F01F1D4215D4D8F405A458B7BA2753F92E907 |
1E1AA579AC3EE8E475AF7BDDD34F3F2DF473344DE8BCF3CEFBE637BF09C90409 |
C4120B355F880108E00A9CECE0545AA44E78D5AA55A13978E4FD05868EF12324 |
C6FFBEF39DEFDCB163071B67926488F3A3502BD8E950FFC578C26694BEE87084 |
42D6429996D4C1238EE760DD8C40CA2C2C280F064B8256BB95B013AD760D9318 |
9AED64C67455CC1EA06D0099160DE4FB474787D9324824E261984F83F90C5B1E |
8001EA955C1FAC5F64DD6243F3C09379914316236A1044537420602463241477 |
CAF661AEA8870845FC46AAAEAFED2C944A3C41B56A43016CF5403D559981662E |
59F860B176C13BE24C895A0D3F03AFFD9FFEE99FFEE0073F10BF81D6EB9F05C6 |
01010E29082340C043B0C09217CC775BB972251ACB80D108E7E2D7E413E07F60 |
110289224DC6F989921EC04F81124DBD444FE9370285EBF7B509240821732E29 |
3AB091796F408B9483BF04D28EA442E37B0010014A0F99AFE8F3071926C164D9 |
B128BB03D387F70CBB450027C4F12806324564B9D8C2D22759901771C0E12066 |
013F8E772CCFBFA442898D225D9F10F0E0717EE0031F6005F9C9279F04F64634 |
1B18A749DF8F6821055FF5F8DD0F95336EB66FA0BBBFAE25F5567F7DDDFB4FD9 |
F195E74666E3D36627EE273AD9165D3040CB72F4EB260DC4C99948254F69DCFF |
DBC129BD93D36B67AFA2E3780C75DAD83AB572D2B3B497B42AAD24FB03E9B5B3 |
851DCB26CD1BBB1A9919A36FDE9B7797D1CA0FADDEEBCFD2503EF55CA9F1EF0D |
DA41292DDBA6866778E4502CB03CDD45C5197CEB62B1414652CFF7CD94C9D294 |
5FA1DAAA356B0DFD0AC33FD9A3E75753373E1EAF4FDE3231EED2A491A40D295A |
3947D5B52A8FB3386B3E4A6E4DF9606DC376DAA1AF23667A9AA3C7F56ECD61FA |
446EAE8458246B19A63C103B102BC692F100F8335601E42D09C4D89858EE37BD |
E94D4F3CF104985A1462011A4CB473B5B8FE8E260940273C4E9E1960F844593C |
6E22EE170C03A20B8A1DD8F431361DCE475C977A513DBE90DF8E0709CA416405 |
23841A4DBD9A24096BC16C824685D80046150D644AF4F1187DD70F66910A7E8E |
02FA0C2BBF286CDB42DAA2A32D95526D639BAD3A9BD146081581060609DBCAE5 |
3203FD7D219881CD2390D26AB14770201145120717D94DC41B239B39BADBA392 |
20E8952C2D36490849B657C8D6092FD4BC109C4349B2966AE2DC6876231DB8A4 |
89F2A22438021D68C742998E56159C74D2492FBCF00245BC72606102F3CB1312 |
ED23017E874602BC48901F50858040872594FE6270FCF169F0F59F7FFEF96C19 |
00D8802F17FF29880F6E6EBE33DF07098ED81ED0FBFCA3E3A41F8332A2BC1592 |
00E28DC7303E3EFE9EF7BC87B5FE684347DE36121046348CD9222C18C842B4DF |
434E348222B08891D500D6132DA60753802601791FF5DD4BEF2051204474E93D |
586C0116852B12F483A01F9ACE0BAF814F2F08BBBF36C243DC77A0C025160F36 |
2AB25AF94BBE613403079B50EA15F859E9963DA5CF59F95CBEA8CFF8A565171D |
571A28FA33A5E0DE7CDB2A8E34AD92D6F5AE49A53C5B7B60416B51A093E1D002 |
4FC62ACABD6D55BE10DFF3E5974E78AD7DE0B4D4B6E6B5E73DB691D2F513FE7E |
746F33D0BE36DDFAA84ED63AFACA4BE66ED28653F4AE11634C6F7F69C7C82495 |
3F1F4B3E9B2B7E793EDDC9B7A9EE9A0E196479F1AEDB01A341426154FD842701 |
7E9B8380B53905075CB858AB3403E726DD1AB43B7FDF1C1A4EC6EF6C4EB21172 |
31B915CA6FA7A64EB92D89D9796DF889C4CC8B0B2C75D28974CA4A571B559604 |
279E72E2AE175F913C0210BFE446335540B71067112F014F269F2339637C1AAC |
4CB8BCA54A1C309FAC9C7DED6B5FC3B40B3239C248B029F933EF4A74F79562DD |
23D27FB4C211A6125FC853213C9A575C767494C3224688978AA6501FCE4FC452 |
17ED1688BFC8ADA2D04D24660DA2B64B6004C1DC51FE097920452D204EF8A044 |
B3090EC55B8C1E129D55FFF5C21D291464E18C6472B126767C7C94DF7C7AE640 |
A9C4DB4373C2B83A42AFBCE9FA72A94261201F1ED15831C232A1E1A64B4AA230 |
7435383A986C1A092F2F1E60E251D40AE91B059519AF1A527393C7DC554E2CDE |
B7AA9EB0D96C2917906EF524DC2108482A7B3ACAF8A8579B4A47169B52F12479 |
8A48AEC5F2401F9484FD2829A3EB3A345CBD87712D908102A48314608C10420E |
6E131093EC842894345F1284CDE879D5AFB9E69AEBAFBF1E6DD6F9DFA86D41BD |
B0C1EF250996C848BD7748C418D412C5EE17D7243C666BD7AE652346A60B9E93 |
68DB3C34E11340690AD5EAF5EBD76FDBB60D15F000F8C4544777A07C901019C6 |
165D62C18896508A904A34E267F60E9E6464225E7BEDB51B366C8886D9C150B0 |
85821EAE35D260E43E583EF89D9084CA4FFCF8C73FFEE0830F82E6F3942BC52B |
5A2A9929B6DD413FFEC9A1923D6B25A97B798292ADB106CDE8E46DB3A862D1B6 |
7A9F47656DD5DD977EEEA2DB2F31CECB7BCB62DE5DB3B9BA516F0D79B74FF5B5 |
D67957EC696CF27CCDEFDF9C2826793A5AA98B2831D937FFD53235C8F295A2A6 |
F90993465B37BCB28256ECBB699FDDCCFAD4D173CA65EF3782BEDCC1083FF5FC |
5A227D29D2FF16CBB4C23D6E371D08AEAA9A2B29F9A9788AB25327CEC5DF3E64 |
25E3679DFE7777FFF61663743079497F8A16A6572DE4FEC7D8EA97F22F3CFD62 |
67D653ADE329EEB1500E5C3B136FD73A327BD40BC342E3E159428E1C084CD237 |
F410120D452DD085B1FA921B069ECE07D2C924972C9AB6CECB2700E9FC6AC816 |
3B868604CA81A904135FB29524044DBD6C25EC7D7863A06740E1F80F333590ED |
060AC11DC043C460922C7909EFF7522543F89CF04B69F7248E77AD872F247A95 |
7C3EB677489D10CD5E8A9E2D799F92DF1D154A3D74071F9A112F613A150FC7A3 |
A36BD822C8A8AE5A0DA04988C40F4076C2EE835E89326C313316D643863EA54E |
C7E9B5013215D6603A0D9B803F68BD0E218EA7C469A7ED28B9E3F03CBAFCA863 |
F8C58248B1DBA1F54D3E18314602670E34506891920EAF85A09E121B179A9309 |
1C1D1D9D98989035964C27796BB17025808CCF20593E0D9DEBA34C59FCD7E228 |
170C0C1010D41F6C6C29EF3A8661889B4795170098E05AA9608092858C2928E9 |
D117870C809C13EB55DE5720AFE1207ECD6B5EF3CB5FFE12F1C073CF3DF79E7B |
EEC1EB60CC2880C02E82391F8DF7B2C0DBB2650B1443497994ADBE24D34CF698 |
B00C6C150A5D07E2F117EF99D2DCD3699EF965CB96F1C2892B0FEF2B0E2290B1 |
B42D425738BEDB1BDFF8C65FFDEA57C0A986EB96225D9429931AAF3566D894D4 |
DEFCBBE19FD27929DADEA04F133D4AA9996C9CF462A64D9BDA343798CCE8CDC4 |
6C7AFF3AE7AEBA930FFCCF4D5BA94477738B55FA969FE89C6FF49F545FB8304D |
17376834D0AE1C185C5B9E7BDE223E815696EEDC3B584CA729B6472F59B94CB2 |
E4D66E690DEF8D1D78C459935CFE4AB142B64FB6436E47AF274D5208FADD20D4 |
037DF54BA74B419CCC8E02C3609554014BE4694E81AF65295D1D2AAF2ADD3AE1 |
945CBA9362F194538CD1CD65F253E69585E0BAB98CE936AFEDC43432EDD595CF |
EDA6B4419BBD65DDD109AAC55275BD411D8D2EBE6CE3DDDB6FA1D0A7AFF56ADD |
05CC55FA6AC9DA89CE4BBD1A822519E4A8E6C1F2F11DCE3AEBAC471E7944D4DE |
83937FA49A7F7C03A72528EDD65B6FDDB87123F8FE31BC46BFD701972F921DF8 |
CEA2A0401D94021474D516A68C2D03DA8E3299C30F6C37241D01BAEE701E1E3D |
E04F166E2F9586076F080D57E617E6210414DA8583DD441B94473D397836BFD5 |
407F9F659961266C8C85016F52B4A001CB16A83C248A489998ACF141A8224D89 |
819E41008D1E9183455703F43E8813C511286031C0FC850580D3651D93F9B87B |
8C8AAA25CE653A9845EA058765B5D2A11066F846E644DC0E5149C02C8F6994F9 |
267A5048504E027460494889410C8AEFB366CD1A26082C8CB05DFE9EF56B2677 |
6694509AA40F41D0AB279090495411007D43793FDA3C80DD4B2628B2BC81321D |
0533E16FF883E0A2086C83CC24440E4ADBF92602E22D0807427CE0B314EA8367 |
9C71C6BFFDDBBF49C30DEA057EE5B9029285B41FA493229C281D9B615F428943 |
2C7D7878981F2159E7D227443C4541081817C5E28696C3B75AB162C59BDFFCE6 |
9FFDEC67A8590B294AF174BE270B09090CC0E20158214C253E01CE0D714C512F |
9D51193DBA95EF508D5A6ECCA78D34185BA15F5DD66FF0A7A7BDC2FDFD15734A |
057CB7F6D9EBCB4C61B63958B96B3E55341AD778039B620BB6635E99CDDBC61C |
D5E98A1020E73ECA5F3A5CF267AC2D669A729E1934AEA8B8C620DD35932B53A5 |
CFB692ED6E83D21766EAF1DA987EF281EDCFEB73D6803D506BCF27C8612B6232 |
96D59C669E8C3E2ACCD1424D6FA9728160A0DFF0E7BC924A148D595433C83512 |
09D6DFAB5FFAC6839BFEE6CE7DD73E9FF253DAF698D6707C8A3536962945F655 |
7A77BDAEE5C6BC5B4AE4F12594DD58AE2753FAD6C6AACEEA9DDD69D25B09970A |
AB56EEDBC3F3E3A0EA4AA07329029583205CD46933303000CF1B941580564919 |
C4126246DB898373DED37E96F875A3FB9D42BD1E9C1A012D0CE9689CF7BF7048 |
308F7A9A9C745B82D2038620496BD4D332C11E0FC7255B7204918E49C71D77DC |
39E79C73F3CD37470DBE2527B3C060CEB077EF5E7E04DF962F8CF647394460D2 |
61509A4CE53C2C26746185E26D5802C1964CC4795D3399946DC7C36E0166E8C5 |
31048948E40D9E22EDDD97C895C8F958305DDCFD60BBB02AE04551BA67289C9A |
CD76A7D375433502F2E368D37758CA90D6EB4FD28DC69AB018480A92DC004955 |
16A8EAA89E220C1A95011222C673317592038A3D804EC24C2E679E79E68F7FFC |
635E159EF06AB50A251AF100F8C4C4191DEDF82828A43CF25B6EB965EBD6AD6F |
7AD39BBEF39DEF500F07EDF08EED51CA906E18D40B66607240C1883D0807847E |
802084985C415830096791D4374493D82892EF21C55F2C00D07E47CADFF92796 |
134C66C20B586DE433F9AD99EFF39F48D1A1504C7EE0031F78ECB1C7F82AF4D7 |
F37B9DD7789CA8F4962223299217351F2C1EC61FAA7B80AD84F994D236094A31 |
697DEC631FFBDEF7BE0787095FF2EE77BFFB273FF909FF249E6ED8C7181E341B |
B95C499A785F77B66425FC62AC4E5BC89ACAF4DF5CAB6DB61A99AEB63E11182E |
A59C7E32DAD54473A8BE76A17FD73545CAE883EB7D7D33CDC692831B93F37DF3 |
ACC42736EBF1E270F3D6A9D8C6814672E1F4BB964DCE69F3F6FE65D7A51726BB |
AD2F76C7AB83935418A44695F675AF5B7B7C519FFCE9DEB78DBDF547DFF9499B |
997D4261F9268C78C330A95B4976C9F38D802C3BE6B5131EEB4E5633EB51DD4F |
F8414C2737AD3099BB8D1C352A39A2BA4E77F9B487F27766B5AE53D45BD60334 |
7E80F66D27EF4AA206ADBC81F234FA6BA346DBEA5AC536EE6FDB0B296DBCAF5D |
9C0C98B8EC84EED2BDF7DFF52FFFF22F3FFDE94F796579EAE0F18FC202520F2C |
16B81DA0435E91919191DFFCE637D874E0EC2CB37939586033FBE30FAC16202A |
26E11969DCBDC4954F11B3208AD10675016AC71F4A0C043DBC00F0496C347E2E |
6F2B1E1E7264014620E811E2E414BEC173750CCECE176EDFBEFDA28B2E3A44B5 |
3F8AE48011C063E029BDE4924B366CD8007CAD830A318AF760F002E74B1A11F3 |
A04F3DF5541EF1AF7FFD6BD6317B91C3450804E9918641FBAE8A01A6D28945FA |
B763A1AFDCF62388A4701A207E00E7B8F8A02003422ED3ED051434E4832A5BC1 |
5B1C15509A85ED2A66D16E853109C775C0D9A19EEB00B03BE20C4A98112B84E6 |
538847611B6B91869492C00AD55B448564D0E3869219154D2D00EF8300909A58 |
F909161885DE24303B987B6242C2EEE199BFEDB6DB98CBF31D10A70A7A686260 |
6DD4C3F010740AA0B6FD676C02EAF5AB411A2B7F03968ABA68D88FAC9DBDF7BD |
EF7DF4D147A3353B514910CDAFA79E2216CDF1E855962CD673892223B8727209 |
0F1EC51062069D77DE79DFF8C63798532050CC4F59B56A150B00D9EAF0D16327 |
A32053EA2DA21DC031997E881E0AE59D7A88437C21729982B01E82E9965F0A75 |
9BE83983D60E7847C119067608F44A8A80064B8EF262AB8362D94CFAAD267DF6 |
23E73E92FB567BB9EBDFBD4017C54F7BB9F3BB1FE8A97D23BCE112E4159331BF |
334359CA7FFCB4D2D8EF566E5E5B39BB5B3E71FFF885B9B9AEDBAF77A6AF70B3 |
43D9E062CDBBC96B76EBA3D70DD4F35EAD55A6CBA86F3A5EFEE70E5563AA57CA |
906FFD2D75D7115D4D5465153F9149655FFD27AFF9E1FFFE7FBDA64BBE4141C6 |
A272173DCBEA0379DFB1CCF68CDDA5985E7032E9BA56A37289E8B6876EDBF8E9 |
4D093F7E5CDF492F7476D76E9856E6C2A594AE9A75CDCD9C67D512197A744135 |
78E9927115253BE95AAC699FE3EBF10C7DBD16CC675A54B374EA4B65E79A5ED6 |
D5EBFEA2051CF4E03AB408A2A298CEC829807B16DF4023812F8EA717332F590C |
922116EDC02A697BD18E524B2481A46020E10DA92EFF85B8DA310EE97F87DBE2 |
FEB06CC055C40326E70B33912E2647F3EEC240870709F43F3434B4B0B070B4F1 |
0BF0300BCE0B2EB8E0DE7BEFE51903AEE5E2CC44C5E6C16F7B798A3C4D3C1AA9 |
DF0B75BD98F8FA81CAB9B8ED99DF69BAEA64A3FAC8F38A2658A065B2A9507D8F |
C1D50E3E82D491681EAE645B4A6D459894197AABDC45BD9B0581246620CA04F6 |
51ABB796188BFF61AC867A863C381A6C0249FF124387B7316AEE60BE09E39647 |
48C2A5D6C3DE11D3817A90FA12CFC0F7C27C014924025F2AC811A762E6CBB785 |
EF0FC9736F7FFBDB7FF7BBDFF1F9D2274BD22744E9C0AB09C2D4B1ABCCA5CF0C |
2AE34535403725F882EEB8E30E66C4D0DC257D1BD24EEFA1F36332F93E0826A3 |
1393DC4D42BBE0FE306830F310337C2D5FC57CFFAAABAEBAF5D65B4F3FFDF45F |
FEF2977C02B0B2F97C5609C1F7A3705D902802C42D681CD8F6626B8B77084637 |
6C4D417245E60F2243407E851B5378132A3CD0A4017A6BD49B816072349D7789 |
2302B2BCD6688C27FDC98EAAD03DEDDCD35FF0A632BE51F25B3462D1F5B3995A |
2C4E7AD5EE0CB7ED8A7D6AB53D4F57EF51B502F7D3D0DFC6676D876EA754D76F |
53BF776F91F6123DA4A5CF4DB7066ADEE589E5FDF9FDC601E6F879ED55A52B7F |
9B6D24ABF966F62CD3CAB98D16B56EA395CB56B62B9D85F2BC9D31DB1E4F7EB6 |
5E6A1A4937D029A8997DC648C92B53A2CEC49DA95B15AB15A2B8919DA43E4B2B |
CE06C974A2E15AA36DBB9A0CCA1F9DED4F0CFB771B3C9BD5ECECD0952B835A61 |
EEEEA7AC4FA4FB83427067C721AD78CA01EB03C1F2F9B5BB1EDA65C7FBDA9DF2 |
783E3D39532723667B4E475B04BBBCF4D24B79A1110A963A5B487491074CFF3C |
C9122A135315AA34D6081422DB279A810667E092C282287FC00AC29CC597C8DB |
9101FCFF3FA25E7ED1F191D813F4F01079B428DF8382EFF5DA8D2D01C03FE2FD |
E1028D56C883928F16E7C0BC095B081601E5223DCB509F86BB80AD874E9E0CAB |
42AC91099B40396BC8237443379006A0D246BBBDD076988713A26001195555D8 |
A6D3A9B86DF00D51030C3E224AA56407058B1E9E26B23242CEAC4E761D81B453 |
6E223E81A9815F8969083A45A7E3C87B2FF16E1D4D1C0003955974C8C4A94707 |
244576720758A63B77EE3CDC3BE41EDA10867A317DC48725584A117F9A642546 |
79280400D41CD4BBF284BFFEF5AF7FEAA9A72421075998E3E3E3BFFDED6FA1D5 |
4611DF2812BD80475B7A49D27FE464C40771DFB3E5C1BB5480DE90960AA92019 |
4414A9E4126924FDD7F45E3BF8833EC39E24C036161287CCC39686D20D5D5B3A |
3383B1E272FE098A3C7FCF860282283C27FC014A03EAFB99C6E6E6E6600563C9 |
24440F0308C684C4DE510301414B3D990AAEC4AF8F2FB1D3F8A14801E06F56AE |
5CC9E344F3292902122B500E90B11A33750A757DAED04767D7A9D4A06F299C51 |
6A91F1398B82EEF01752072A0DBA6C356953E6F5EDBE34B53E439D117237D1EB |
97AD7AF293AD6429DB79748777B931FCD2F1ADAFEE56FD26FB28FBD70937659F |
B1FB847F5BF30B4A527E2395A8A08DF68D4DED702E1B9D5D3B94B8E837ED2405 |
555E2DB32F93AB55175477039D743B6D9F57277F75F3EE89D77493BF4A5654A7 |
B0DDF1E107D86E49EFCECFD04707FA9385E2DD2F2E0B964F34F6F3B3C855E0FD |
6BAE3B6E6E4FB1F64051F54CBE707CA6364977AA9F56DCB26AB2B6DFDBEAE936 |
F97F47B49A5874D9CD78BB1990D14D745557C72095E86F34CB1480CE99362425 |
543CA8121F6255E037BFF98D88559E79605249953802C56CFC9D79E699FFFCCF |
FF8CD22A7043F10E1D9E3913651190047003F042F3BE4352F87FADFEE6680744 |
11A811881AF014A1DB2086C184FDCE77BEF3073FF88154DD3319034D32CA728F |
787FA65E7808A0D442B3040F3FE2F95059500EC9F20F9507128D20891344A1BE |
3020AC8D0452A2448EFFB13C507C30EC5EA0A0A3490FBB1007618362851DCDD6 |
8032CFC90D6B8053903F602B5833F02FE4D2429EC365A7FA9B41AABB41980D8C |
EA3613D13995D23A3D8DE46E16BAB4D8E878B1F1D97F2809F87B9CB244760AD1 |
88E78767960925EA4A5B729891C6E8E2F991AC5E30233843056356AC5AB83E70 |
1A824848E343E210533FA2E23C18EC04F06E742C90326C3AB4100C5B453A8589 |
0D7EC4C1A3F840462BC529F0A403A07BFBF6EDEBD7AFE7B5BBF8E28BB76DDB16 |
9504925F403D7DFF4FFEE44F7EF6B39FD1A1991B52AA2A85BE92CC13F4DA4163 |
D544EC51CFA729793B52508A51494C42F82F2F1382D530022074974426F9C35B |
DFFAD6A79F7E1A211C5C2B8036D11C4149796202608B306A0DC06F0B2B04A920 |
E8B41CAD4C167A008F3BFFBA6BEFDF705D438F8FDE90335B8DFD371673BEC218 |
6ADE1450333E7843AD46FE28D19EBB88A658BBA7646A55E2AA995DD40AD6E4B5 |
574AFDEB8716C666699652B78C25C86952D3A0746DE50CFD0DADABAED877FC7C |
7C53D3ED50814626687AE4B2E533AB4AEE144B9FFE95DD3503D6C8330F7E875A |
F1D599FE5A71CA20DD61FBE35A37A12FAB7D7E62A84CB359323627BD058BEE2E |
E72B03A5DCC2E0679727ADFCBECFFFD6A8F61335FC81CEEAF6F257683F5D68D0 |
80D7D734CD8A6EB8E9992F36A8D261B955FE30D1F1441D23995ED39E2FF9B7CF |
B378B05A89D06BD359A627A71D6ABBCDD3060B2FCDCD41E16506C41308DA831B |
44504378BDFEECCFFEEC99679E618E8C0E5F506BB04D24590B0A2B5ADA89E22C |
196251492086F2E192807AD6ED473EF291AF7CE52BFC38A4AB1DA308EBF73A82 |
5E17491E3C53CBE4E46434082150C1002C40D49A498BB522E07FF00C88DFE218 |
F7E717B9E4924B5887E369E1CF12EA3B12DF53EECA73CF3DF7F1C71F476B0451 |
E9164F88D6CB09005E14E148EB35F0025F0B7CA3EB2C3A1CF4B0A3248A0B54BE |
28AC02C5913DFE326C3FA0129C6331856147615041B53AB04C546349E9070215 |
08B249A6A6A12B273B3F364C305F3461D20A61283D3DA384AA6984A2A5E7FA43 |
1D426FA58F9A0CC6D68034A10A139C8C5E94C297F2286164388E98452A14ECF5 |
3A0151E86D148C62D886D10476B82920E42EBFFCF2871E7A88B9BCD42E51CF8A |
E45F5971609D94FFDCBC79F3D6AD5BA3AE6DBF07F52A1C135C0F0A2F531E440B |
96EF18D9B4D4535B446D877012B05C747A9040964C545412200620FD3579B488 |
2D47D5E468D85C582418BADEEB780CB583A999FF44011A20C3786FE83DF06710 |
277611F4005124E5154E38E1841D3B7640A844571067C21247A889C25AE82BAF |
BCF2AEBBEE02B48B38D32017BD5EE307C13C001008B30C7ED6BBDEF5AEEF7FFF |
FB22EDA4B44760C2165177BADD01D2172C7FC81E9FED4E525C29CAA6D3EABA85 |
9439E7BBD4A4611A99B1A7D7B413AF906E51E3641AFCB5E5BD2655FA558C52B3 |
892CE9532B1A997D9AA719CD608C96EDB37C5A71C0DE994E12EB8AB1629F93F6 |
F375B34A1D2FDFA02E696DCAA663462556CC2BD0379639292DDF61BDD2D45CC3 |
A5649CEA6D2319780D8A79234690262A25D34EB155253DA6C79CA04381415A82 |
823AE5A9DFF4BA256265229B1F199B9D7925EB5B35BD1A142839936D6A7E7F90 |
2959B5205E3FA5662F507B3A4BD9EAA81B2B074EFC9607EFBDECD273E2B55685 |
620327AD715E78A9DAF3E748D2B05075346D0C6127AC35B810C80C2E5C419F86 |
F2843421E90FECF5FA0E2D01A15BC2106547C88222E4030BEF0F152790F2025D |
F5431C442682A459A38C94227D5BAFBAEAAAC71E7B8C6500BCA0482E5A124858 |
F222A822460A06A25CC7C810A15078202F513CC3D063166FA8F7BA6F4B948687 |
F2377FF3370F3FFC30222A4B52D471996455C3C32EC556180A96192BA71D84B6 |
8E499486FF5CB76E1D6F5AA041457BEEF0ACA1EFB9549DF0377C0E343E3C1A45 |
55FF6121F5D1A603E569E026200B985AD1BE6E18AD8C8122B1264979122EC9C3 |
F8C0073EF0E4934FBEFCF2CBD1EC5210BA981A60BBF08A88298A97F27BEDD1FF |
0F6BDF016E5755A6BD7639BDDC967B736F3A692410AA140584D15F0699E12723 |
088A44414A88940086DE49883409485740616823CCC83FA28C604544541008A8 |
A1842484F4DBEFE9E7ECF27FFBBC77BFAE9C5BC6CC781E8CE79EB3CFDE6BAFBD |
D657DFEFFDD03B130B852DD7B158E59C08E000F4460E06AE60F80188AE906A9F |
DA85E62A0D6156DC003580F9D1C9DFC1A6896EF52A2C3E00FE01B4A980FDB08D |
0C26904F9C248EC8E9E1BA10AF8C9ED11985F9D68019E7F8D918B9018F84C091 |
4C144C753958962BBC28FD99822F8C905F4A19FAA93027D916C2AFD7BECA39B1 |
00A02144679C7BEEB96C2061689C1F54452CFAA33B0213018694281579E8F268 |
109EC6A8701898D71AEE4E85982E766AE31AD697B42E4F55182D047209F450C8 |
FF6391AC5CB9F2965B6E41EF04C8538C561CF872A52CD695E33A99742697AF83 |
792C3B30F0EA2F2C3639183B972E9A1EDE09469288AAA21FF7E23555A9C64BAA |
4BA53E918A4D8F0CAA81784BAC6454BCAD2ADD946E1D68DBF8AF1FAA8A8AD562 |
B49F0827C5D3418E0D33897A0E38BB148E04A14055D0C8A5E1C2BA45794F5A30 |
59187230E8D3C5E5BDFDF6DB11548101013611152699E4898BC58687AB979DC3 |
9B619E0C4B94396A23ACF397635849809BFAD6B7BE75E9A597C2C7D563AAC6D8 |
F54FDC714AC33D370424B198711EB4445621F4886053D2B83234ED877CA0C119 |
28CEE408D6B5C224944B226BAF5BAC0DB05F999D934E3AE9D9679FC540E581ED |
BFFFFE7FF8C31F10ED8188D7A151322F627B02FC87A276440C914BD49F3D0676 |
C10517DC73CF3D679E79A65C42A4123A30205D3E7EF463AC17AB4FE58D6C3FB9 |
1DD9637269403F756C65835C6BD004244144CE59F6AA88CB860A031D260B7340 |
9780469DBD52AE8E9B9501806D117707412CF7FBF6DB6FB3940993061D00D358 |
261039B7871E7A48FC0C4876CA7A02C3E8E1A9907E07FA064E18DC179D4807B4 |
A3C83D88452CC31337560C6AEE5596A4226085403CC02130D61004A3ED838785 |
2985F213F304ACD448A3314CD400EE52612F01D6A642D5C93DA2659B7C78C619 |
673CF8E0833257328C030F3CF0A5975E9201C83172FBC0628D84D951E520DA00 |
13B2014B2EC6D0D9679F4D620CD040A199877C020E252A48F80ACC5202042597 |
9663B033111000FC494E2553812A04B194019FD58B1EB095E43DD22440EEE923 |
F7B517EF8B385DF86AD8B9B366CD5ABC78F1C5175F8C4709C34E4E8E624F72CF |
89F34E235494412A19F0E06EDDB6D50F6157D0FAF2F3B973E7BEF1C61BD031D8 |
ADF07DE11A7AA6279EB6E904E1E29A72FDA8A35A6545AAE49AA0F197B2D49CBD |
66BDBFFA83F668AB2AAB844A6E549BC8BB0E510B64271E1CA0BD3260021FF434 |
5BC33AA170E4DDB19F04EC1E91FB37DC70834EE08C29924B602D8961BE62C50A |
CC1E7007FBEEBB2F36A0D8439FFAD4A77EF9CB5FCA36673D3F942841417A630C |
15468C919BA5670C3F1821711992BC418DC558724C5697AC19D929722F18A45E |
5E0A898A4028F0177E48CC85F1A3565C26D0D0CAEFF9D0915D184655D0EE503B |
973FF0CF06A2283A2CF8562E70DA69A78918A259F4C94F7E52B62289C3B0B209 |
10924F0E39E490DFFDEE77320BA2AF0E3FFCF0E79F7F5E6E12592059A91022D0 |
810014EA64B9F273D91872186BA0765513C06BD32BABA1128E3BEEB8279E7802 |
063BC42E79CC47D50488B3E30CBA49082BC9D2BA2A32D7EA84AD895142CC3B62 |
441BE16C76B8C484E306D1C000F25DBE85AD4D520A7E258F524E059313B60971 |
FDB8048D6BE25977DF7DF777DF7D17FA03F97CAA2298A2F8C957BFFAD5679E79 |
46264A34048BEC1B6A9E47E26718C0012D15C6CC0E3F7410F5C615FA3EC79A81 |
EF22EF31CFB4B519E81795299B0490593918841F4658028D08BE9E59D1435B0D |
D21F5E1A14839C6ADBB66DB22CD1040D5548101F2AA4365221028DC5E4465896 |
0F64019C33A87C166D88712352099623C4840A5B96C2AB867DC79E27728370CB |
1A7480AE0CF4541F6E102E1DB24DB05AA898C9124667CEAD3920218EC7E2E21C |
44ECC870D54BA54CE3C90FA9B901A8D33581625940441E4DD42D7BCD89E621B1 |
23ED78C991B564B6354FDD31B023D39CC90DF528C3893767CB22735C4F793502 |
6000AD66298FDEE7551EBD5C572C4873441713A511F8C04EB2B5767E346EB8CB |
B0FE11C703A73DAFA2079AE8D0EB192C9937391231123445C06010F8C20FA114 |
11AEA1AB043A55FA9A62576DDEBC99BEE3F8DCA84A6364C26EA52781F3B3EC14 |
4CF8C0A3CBB74B962C11C90C390C0B0CD9889B6FBE59749E1C802639C32B1FB7 |
47F6693C51241FE0A661859109998741CAC35E80FD05C8871D766ED3DBF01A5A |
8F5934FDC149C26E1E4A5733B23290D6C3D9E4C9C17E9437575F7DB5DC062B47 |
46AD211CFF853D46383F5C24885799049926F0EFCBB77ABB18355A74083C8274 |
BE987534B4B662B47095D6B6176101B6A284EEE4AC2233A6A72B10BBC350653F |
C83C33CF09C187B81CF63606D3A0DD55E893913D1BD90E99E7E38F3FFEBFFEEB |
BF101663EB54F02DB35F87EC43B128C94501150218BE5C052E1D3C5698727077 |
74F88D08BE55AB5671A5C96F9118973FE1A3E8B86FBDB25D3E972722AB1F03C6 |
0DCA6F211949BDB268D1A25FFDEA57B2FDE0EE10FF437DE087E520CC2BFA5A2F |
7B926430D476D34D375D74D1450CE241DEE191017A0BA6103864D00D308A61EE |
60C1134B8674E897BFFCE5471E7984257B903B205051F52E46B810824E5E9D80 |
1E8A138D09291AF45C1157B519F6F0928725DA4BF60B584CE0F6A1890A5A9C02 |
454E6C95AE291B9A8C2E5DBA546C6479A67A300015588471332CE385E49786A5 |
7C4F45A2A653F132665614A568877E73473A13AF55829A92DEA15EC7AD434F9A |
54AC37869BD26D50150279B17A91E0916D221624C22F0C1ED2B7237498C2048D |
30E58DEC05BD81848C5F8E073218B15FE869DA855806549C88828ADC9793C07D |
817205C7143252D004ACDD55A1EB3973E64C343883E1084B02060D4AE245FA31 |
0532AABCE20A4719DA75F5976E78C96A843DC40E57B40918A5471890110EB652 |
90CFF7DC734F5106C1572C76807D8DB821A41534219E10CB3D08E4C02260DD1A |
6AF4654E658B62047A81156BED20D98DB0833994B33C15D9B7B05861BCA011B3 |
4C2ECF2CBF5AB972A5A832552FC592F3C3F2DD559F80B11A0C03134D6028E965 |
F8B47444668326406C17863F5B02E8B5827A1C938B9B790815A2179406C484BB |
07A9EA87C5623073F838792F0D9602A4B3596FDF212B1B95D840DC536BC2D982 |
2A82972ACB914DD8A95FF51239F917DD1174B9432D45AA38EC1052FEE259FB5A |
4BD806BE0D864739BDDCD59C3D1807071D749078E8885BAAB067131E16CAB069 |
BB60DD62C5EAACA23A8E8881323F2419D69BA0118084F40602A488B162C0B2B7 |
452322942A577742427F15B640F143BE232C09A82EB499459608DB9E8E0E84B2 |
1FD260C0AA45F25CECA43FFFF9CF7230DAA072F57ADE4E3039CC1556086C05C0 |
5E450163FD40D72E5CB8F0E5975F460F06CC8F0A5D2BE84E18F80C5FC857C82E |
40E1212C8E0223B0B7325408B349F663D0C9A7BB54F40BAEE9056059334859C7 |
8D98E1AA8A55C9C6D22BAFBCE1EA2BAFF1828FCBB174BCAF3014E424723958CA |
0DE45A2441C13D82528280E6064DE085AC7346D8E91626300A7AD91990E5324A |
AB48A00C046C5A77351031C318E8BB6085C8AC229E2CE2E888238E78E5955744 |
F44136CA835BB76E9D5C6BC18205B274C9622B9FC8BF286E07F3920871F9641C |
F42A03A4D0EB90C3DCAD20FD95AB8B29E987EC7544D3827D9DEB1F7E09A617EC |
06ECD813F8C17A424369863C878E38323FD14D4BC2E181FF613A1408303A7A7A |
3735849245EE234B83C7A33735158DB77CF9F2BDF7DE7BCD9A35F22BBD430818 |
076131192133DFF85DD9469D591DE341C58BC02E90F530A8C7F7099898D2A920 |
94467F36521340F9CBD431E462860D5820586953E82077F8580C205C72C925F2 |
13718C54BD3C4ABE7DECB1C7BEF8C52FCAE4639135DCAF11F2AA63D87A2C150D |
C58032F6EB251D93274F965B868A3DF4D043FFF11FFFF1DA6BAF453047B40E62 |
1D3245A83F97C364C58BFF342AAC1E86368BE910FAA328914BDF79E79DF2ACD9 |
F95957007A72057500B255C21274476911E1060982C005BD522812C838236499 |
1F993196D9868741F4841912CD637E7EF0831F1C77DC71B82F36FE6572986254 |
664FE42C82605C96640DA1DC9419209B02E27B9840EC3B5DAF90AE5985F5EA6A |
4474482785C57A03380AA5124830C820E55AD89E2C2BC56226F2ADEAD4FC3A31 |
7DC08956DF059F3FE184679F7D3662D9082E119BE06A8CD01C304DF8A497CC3B |
052B61556A653B6B3945591566AD0288AEB2636927573394ED2BC38E46ED68A4 |
56EA21808D082EC406F41213AF4EC14BDDA946448768BF631AAFB9E61A518767 |
9E79266D173122BFF18D6F900C4E9EC257BFFAD5EF7FFFFB4842807E91061981 |
C8787CB4634470C91BEC4DE84BB862E0D9D6AB64E03DCB8264CF6D3D4DA84216 |
5819F0C9279FFCF0C30F8F857C41B90FB53E1B0592B7A65EB615A403E56CA8D3 |
1475856AD0AF7DED6B6243204B4CA18DEB72F5C2EF0C3C213BECCF494B164DB2 |
C46611CF058D23C092A6633375BF03D6CD70F7E39DABFC8DB02A8D85AFF09A51 |
DC0F298FCD8CF701935D5B9B0C179B479602E8C5313CB22EE366C6EF1C3DD64B |
4F3191E58A71797972402EEAD5DEA36A827DF6D9E7CD37DFD4BD728A753D2EA4 |
42AF65AFBDF6423B75CE898C5FA6579C4759A0575C71051EB9EC5E996D98A832 |
C93251321E91C24064C933C692D5EF888D3860A4C806903F41AB0086615C94C8 |
0AE210E0525099E9C4D724D880ADC70D46E89E5C4B3EDC6FBFFD5E7CF1456287 |
B0AA8CB0E96903C912910C729EEF7CE73BB24CA93CD08009EE97DE9B9E1055DC |
293C0F99A879F3E6897B8BF5094B45EF1F80F81E66A3A1A72BB3B2106AE0B313 |
2D250E321A012201836727C7E8D14B8428DDB0B939B429F00EF208649BA14689 |
56987C227375C209273CFEF8E3A8828618C54C42C41C79E4916FBCF186A8DBF3 |
CE3B0F5E20B058EECEFCFBF2DCE1F23728030A622E51155A912C18545A56402E |
819C1C641359A70286926C5067270BF763071C209672F78E1D071C78E0EBAFBF |
9E88C5A10690C186A403648B4DB2B0EB0F3CF0C0575F7DB57E41131D412CDBF4 |
55CD3045EFAAAEB6A66AA53438580DBE33544B73B6BB3F785E4EBDE1C73BEFBC |
C391433D23CD2E2B4AB6A47833AB56AD62B9C6581963FA76B232FD7A6325AC5B |
3488C7F280BB8675E587CD97704EEAEC61DAFC7A4295E10D55C78843E6C890E4 |
3C22FA4F39E594471E7984521187A9BA13AFA78EED7A3B29B91609B810CE829C |
11D52B6B6C2C3986B0A45C51CE8600805E748915C5561F64DF83DB87841F295E |
4E3DF554598A30AC451C89B322A75DBC78F18F7EF423116586528D7D90B1F264 |
75DE71C71D981ADC21F649038B35741D53A6447C2ACDBD6880963361C81E2F78 |
06645C805442CA450F72899494ADE8876D0BBDB077D52E6902FAB33CAD2CA045 |
8B163DF5D45308BED31E1F1F3B74D6596789BE45C81841244C051E3086C714A5 |
8C538EBFEFBEFBE8C61A1ADE19469CDEC30BA515AA6EE3CBE310D3469C00B928 |
34965C428497083B6A592803A43AB83E743A176249E5F8B973E78A2E9147B362 |
C58ACB2FBF1C76B41C7CF5D557035941D30637020B1714BBF23988AB00EC83DF |
4D681A2423FC1B72C7637F12950FA790D38BC9612B12C4CDE018E9C607664637 |
D9B0F431E140FE91FE9EABB1214A698448732E60CC1E1B2892291E8F8F9CA64A |
6B164813D8A817BEAAB0F796CCCCCC9933376CD80099025F5EAECB4E9648F6A8 |
B075B01FF6B983B30F61C43A29BDF3EBB265CBEEBFFF7E6A74B5337C884A4E67 |
1F81D8822AA2954ABE261DD8CA569156C4C60C603306A160D9AA32D44D9B7557 |
8F738B7940FB074CB218DDD75F7FBD1B712D23E2965426DA52A9969356B4EC0E |
5981C44F2613F1FE52CFEDF7DE7AE1F91706B50EBE9D9DD059E8D92ACB5BB612 |
8C7A1D11DB809B209A685414290B42196E0526827176B44D85CF07B34385D9EF |
E5CB9723F84EBE2C151AF5D8D75EC8684BB98727855024AC5E53238AC7018030 |
81044C85D14E33EC11C4A8C031C71CF3F2CB2FE39851E5158C3FB1176FBFFD76 |
DC025ED83BB0AA75D812E78DF2446FC607E987A8264F85E91A4E9A21A649C171 |
F1C517A3AC1473C73DA03BEF7C11CDAA347A3F63E7FA2CDC39D4039366B6D67C |
910B8E68076A29A868887EEC55276C1F6184EC6F720BF07C891EE17251611212 |
37ABE3E86109227A0B2416451E6E0AF4380C5C288D129515C53803828050B93A |
FA05721F4E7A83F8232F901E7482294D162AFDB9A24440BE15252D020237880D |
19A9B7B6674E15F303F35F4F5953A521CC8DA6D890744C62A34900D48C39A221 |
9FEEEB5000A930948901E8313D1A59242B84DB27C688685FA807B9288985C1F3 |
C3943BC98E18DAA2BCC6EA62210288DAE10FE938576A4452F2B1A8751C4B0227 |
64032CE4BA1B0A627153E4F293338B258ED2717ACC7AECBBA19595CE57D13063 |
E6CE4CC5486881D389620ED60CD40662C40DD00FD428E1276ED8154369291908 |
743CC4E6D696DEEE1E64051070838809503795EAF9E79D77F79D7779F5EEAF55 |
D7E9ECEADABA6D6B045814314DEA2E7B801728058D6F915110C5230A4F477FA2 |
5E92EE230026E813202B4D4C2559D5A84096BBB8F3E6C7965DFEB572B55FD472 |
3CA0B95365BBFEAEA0521151D1BEE3F9CA8E541D2FA68C36235B6936FBFAFB22 |
513B914AF50EF44592899AEF2AA72ABF84690B418C7808A65A36D4BFFCCBBFC8 |
2224BE0EE2054F8A2645432EBAE175E28927FEF4A73F9555A7734A52BE515A72 |
CB8F65FBE3E74EBD0F20001414BC38805B1BC20A0A9E9179063FC9398A957FD5 |
5557898636C2DA171CC6421FE66044241A348E509EC3CA055846E066F1B51E72 |
90DABA26D043F6B80D3F2CB8C0EEE5ECEB6DDFC54FB9E28A2BC4BA641E95FD89 |
98FA00C61F420AE83A64E1611EE2B6115EC45E82850EA23A582BBE06E544D6A8 |
527FC949F6DB6F3F7191C4DA525A0299803906BB98DEC4551AA04A50B094DADC |
5A8844D37831762E7A46E68740F5B1006488ADDF73CF3DE79C730E82E0E207E8 |
6D2E503404AF93296EC66A78E9918BCFD02A5FA8BCE5D9E91A547C76B9BA3C11 |
314900FC1F5513407620933667CE1C315E706959796C5B4FD74407712F58B0E0 |
4F7FFA930AD1113A91A71FB6F1A1A2153F52242CF6159E239B08B21E95306A31 |
BAD7AD5B879D00FB403E419602FA0FC012344733C6ADE881214F9A6B82885498 |
CF00993683B02A0CE86349109B88A019ABFFB06869C0E2A6C435917B64EF2ACA |
6EEA2AB89E884D312CC082505AEB2A0C54C22301732A8DEB063797EDFF6A6E98 |
802997A74D9FBE71C3873299224383C68D22DFA3B1A64CB6BBB75B86228EBCE3 |
B94EAD3665EA5434650A826640AFCA6248A521AA66CD9A25730E1B16BC9318B3 |
1EB6D25F3A824E164FC24CF4E47A94ADEC9865BB11A3AC5CE577B44EE8F7870A |
03410F9D20239D8CCAD655554F95ABE2E3B47774746FDFC1923779225081B0C0 |
E45EC4F810DB5F85207D59ED24FB827572C61967C87623421A930FC3D1189709 |
4E64971C090523EFE5DEFFF8C73FF20018130D1CAB0D2F5AD24494C924ECBEFB |
EEBFFFFDEFCDB069AB0ABD583DB822FB54563B6C23206E182B237C03AE764329 |
1CE4E709279CF0E28B2F8A6031EEBEFB6E999D0B2EB840B40757338B5A555889 |
6AEFDC056DA426B0C2C6B68CB521804EF14AA0CBF3CF3FBF70E142F605436D14 |
5D4E142DCBCF3FFEF18FCB443CF6D863AAEEEAD2B263A1044C36E09D4467C8F2 |
BAE5965BAEBDF65A621F59F1CF4782370084A9907713163460C5985CF6A44471 |
265405A0234458C9B432CC8517A00EB88A1FF6DED16709C0245A7378BABA9268 |
C84813DC42D0025ABBC01DD1CBC7B0C3C11D0BE14E114301C4E8163E9F397326 |
A0C47AD2DB0871D923316DE3FB042C5F045A4E8FDA5336C175F3C326D523410A |
E81600B31D8781A051DE7FE10B5F78FAE9A765CC6BD6ACE10F59798B34924E83 |
21CB46EC0C2043D85E18021DE06B15AAE7716C349A239867311DDE78E30DF079 |
20062807A061192AA1E0E14D9C38110D78E500D42260D93CFAE8A35FFEF2971B |
101946C85C2BA71551F8EAABAF8AF4A4A1A7429E57B9D3F7DF7F9F8B1F421FA4 |
AAA89FBAF7DE7BB76EDD7ADE79E7C96F41D78AFDA527BA466E6133EC3911C0DE |
5C4724A823EBAAADADAFB73762FF95C34A0E9D38A1BDA7A7BBAB6BD2574E3DF5 |
DB0F3DD0135A0CA9BA7D06804D20E9643DABE1F52C4256E60D8E2F11B7327271 |
FE56AF5E4D07143B4B8F8D4C9F3EFD631FFBD8CF7FFACC60C16FEA6C1DDC3194 |
6C9AE0E72A76D5355465285951D1A42A155557FB5E9F392CD539A15CADB4B5B4 |
FEEAAE87DDDE814853B6D637944E37950673E948A25C2D55D470FB0A993A3939 |
BC6A481ED9B04B962CB9E9A69B101B0731BB8C04C13DCC1556A00A1357235FAC |
2B82DDADEA6860E463910987B3FE57A2B77149219990C0948A69850C0A57BB0A |
F331B0B490E644A90D1BD9CB0A975574F9E597DF7EFBEDA86D3442F6DC8605A0 |
7F6280631DE509B06E20FAE54FB9B08C89F529AED6A2A4412250F4E0E972E5D1 |
E66221229C412C655DC0A1A11D6A4DA90021FD91EFC293606D14E3512C7CA31A |
23530D30D4F09759DBA5C2649D1EADC21D61C5E0A28C20E187944DB82F54E7FE |
D33FFDD30F7EF003F2FC8872FECB5FFEC2506683A5DF20EECD90B25F850E0727 |
135246AFC052A1D9CE02EC8660820ACDBD913B5F0F20B2C60DCBB42191235BF4 |
BDF7DE03D85FCE03F62179461F7CF081BE7C1B34018A6621A42EBDF4D2E5CB97 |
C35A477CC90FCB35B197F0F86002C383214150C362D5390C6478225245BCD2DD |
41051FEBA4989AC685108D45B39D6F7CE31BE2516149C84F90AE40621F6B637C |
F49E0C006073F6A48466E215E7CD9B27F3C37811560810E86083515A753D1E2B |
3C579E8A570414986104A595884340809912312E18FB726660E4116F210E183F |
87EA8210912BD235D71D2FB8208126AB96DB2776766FDB164F24AAE54AC4B2E5 |
818A6AB9E6EAABDA27C8257A975D78E17DDFBE3F572CF986B262B6E10CBB14CC |
4B317380CC3F537D08A6333BADF76BC48BF90C848FD0843557ED37ABC6E7177E |
F987CFFD57BEDC7FEE154BFFF3D9FFF8E89D0FF75FF42F833D7D895832D6D632 |
643B564BBAA92DE3D59CDDED66B75CDD63F6DCAB4F597CCD8D372FBFE0D21659 |
840343B5D0EF5161FB5F465995D6234CBC0151D532A5A2C04E3BEDB43BEFBC53 |
A674EEDCB96FBDF596D280CBA3BEE83B62E9CE9E3DFBB8E38E7BE0810774E0B5 |
D290BE639D04F15818F2A024C1E6451E113589D037EC828E5404B0FB7223279E |
78E20B2FBC207308AA342C3FF42D80ED6586AD34D93B5DEE572E144830DDA9C4 |
8B4210D12E0C056B0BBE42C30D34DC06592F1AD63A36338E214F11B468C339D9 |
39C4083BD8302189CA6CC0849165C5A335EA7072F69C22EC0C1905E2791CAD53 |
23350D14061687085F99474837F9B91C2CA745E8B0010C209F88E5421F5085B6 |
A72E8B59C42467869E20FD062ECD1244F69F516171197D1179CC326FF042C8A0 |
22D6B1B884E0CB94334035227A48D93AB2029E1A48DEAF58B1E28E3BEE90478F |
821455B765742808240E1E9CAC69E69046F509D8915C66462F9F46F48CDC4DA8 |
4ED2C783FB92BB100101F38760369C1CF7C50A0F92A7A24E0A4B02974358569E |
02AAAC093005FA88C5F70830928463ACD09CEC10F99795BD871C72C8B1C71E7B |
CD35D710906A694D78BC90C714EF81E1031D855C0BDFB2A486250B542A0DE5D9 |
BA4FA0EAFDA53FF7B9CF3DF4D04372BFB040010F65933823A49AD1DD2CA425F5 |
58AB5E513152139C73FED2DB6E095A0DDF74E34D975F76595B738B5B730A859C |
A50211912F06935CB7268CAAEFB7777594868A30B09811D14962C08682A6D324 |
1A411D22884549CB886130A54F1DACE2B65D8E4C34DA86FCEE42A6E2C5D5EC45 |
F387DC4AA9BF734A4BA73354154DD432A5B3E4560CD3DD73F7DD95E365641957 |
9C8FEDB967617BEFEE9D53177EFC3386A5D276062806B9220033E83B02D5C872 |
62520F7057E2A6E43D56DA58EB84F1E4A04F571DB980FE2262268A1A164F8E1D |
E709A71CF53C7AD00FB307BA56E600648BA13D09C4BDD888E2316CD8B0816021 |
78E4682028D30EBB56C48E582AE4EC82D8C1D6D0B36E8A1DEDC1FD828D0AE1BB |
60C102B110B18688171A35E28C174BBDB91C193180B745A50A57803507B0D720 |
1464F4F215F6364B01551803A545831828902A8C6C3099819A389A7BFECED598 |
2A841C307C063D0196189D504C27B9C37A65E8D0D788A05588D992C9959B02DA |
97280296C0201E876A0E164FB2F5152BEC5518AE110BE54B5FFA129009089BA0 |
B30726845B1D77443F06F30399A847DE9596C4C6E554DD44D2BB4ECAFAC013C4 |
FD32DA08FCEE7F9B319653C91AFDFEF7BF0FF00CD24BFAB40310C566553AA99C |
1C2FA2F6E5975F461601EDD26068A3F92D348AE82459D63A7A0D3681BEEA8CB0 |
231091547ABDC2AC59B3648181255F8DDB13CA0F2B7A9033C7228122871CC71C |
C29250F5280DEC5FA05A6100A26A4F85D65510FEAEB766D46F01F10779C4F2B9 |
CC838C9F6421E4AA43B1217C771883FA4DE97945F1E0456DDC77DF7D3009119E |
028642A7385423A24362E9D72A552308BF1B93DA276EEFDE662A639FF97BBDB5 |
E62D91C99661CE9DB7FB1FDF7E3B99490EC96C7875D2E1F095490FBB23C38D03 |
43C980A522F6196C529087EBC4153A2C07CF0210B2E0998AA0B73B26DAC9F5F9 |
F72BB3D594CFB76DCAF7AAAED6A69E7D6B7DC5F6684B4B7A42C5F5A289E8A4CE |
095991C29DADC9643C998855C4DFAA56174C9D1177BC933EF3856875181C4568 |
0C941350EC881C3458A2071F7CF0EF7FFF7B8C9CA53F6349703C3E6844B90B92 |
8362C3D2DAC0542B2D583DAA26005305721B0C1540F29097C50C7B3000F7012E |
2CBBDE8415A762885E69B832AA3796A9924C085A2AB83DBD18987EEE92254BEE |
BDF75EC871A41AC85E32520D60887218EAC291BF4634831301510B6307924B54 |
820C0EE61E5BDEEB4026DA533A4399F8BC6FBEF9265C100443C9962A4A72D3A6 |
4D085C223F83DD0B7FD9D5BA7DC9BF0814D02D80092696D7E2C58BDD3A6FF8DA |
B56BE1E63300CD6D8327874E117AA1ECC8B2174E9158F16220E8402620C018D6 |
6F90D418BCBCF9D6B7BE75EEB9E792FC84BE2D9D6EDC1188A947EDA6D050E006 |
897CE699673EFEF8E3227DF4E22CE66945826CDCB8718F3DF69007FAFCF3CF33 |
0DA546CB18031B03FF0911D27DF6D947AC15392D5C5A266CF05BC853920831A4 |
AE070D00A5D053A6D800A890405474DF7DF75DBD7A358C329C13FA0F7D96F4AA |
0B31F065247239F1FAAFBAEA2A792F2E886CF2F1392087C55CA87D1B52B2D860 |
C43B0019A1073CD15C65D5AA55E79D779ED2E2BCA404D02BB354E80C51ACC360 |
E71A8679C17019AAF6980DC283A3278A2833B60CC2320D41E1911963D1FF9964 |
4AFC00A756111D9089249D5AD50DE0FE7E6BA6A93737680667B60BAED3D1D5E1 |
99C6E6CDDB2376400206D3A758AAC376E309D3B6E0FD2056894A699189A21165 |
F078DCD8B6D85C800E822B50C7B2A7DA33E5EEB2A75CBFD96B5E14CB4D16F920 |
5A2A63EF98DF6265CC0195B0322DED136BBE17B18DD933A667121165F9ED9D6D |
B3E74CAF1587AABDBDED622514F24B3E7D218C489112C81BB1FE1632014D99B0 |
CC50F202AF05F6317696AE6B475D27A407B6766E5D2E274416841F8EB5DEF014 |
306340B5C0CFA63CE13A24038A6C99E38F3FFEBBDFFD2E860A9B1235F37044A0 |
1E105D572167FE94295340F643558D4BEFC440C7AC9ADE0B17E63CC9E91A7A00 |
F105FCECF9E79F2F9B8D1E00A652270A87DC2164532F1D620F0A861A99C091E1 |
9164F8ACB3CEFACE77BE03650EE1A533C422310BA2447824F2278C7D02C5085F |
515AA33BF0AF894621DD3C769D3C4B394F43C71EBDD09A9A19E54EF0722CADDB |
25EC1D8E90B3CD1628845702F6800D2C7322F20BF94620A0A189B18E59FA0849 |
249FECB6DB6E73E7CE7DEDB5D700A585D742980A064C0D04EB1272FCC8238F44 |
9F6A68DC86642F5A0C81CC67544D4069D8004A63EB4186D45508B586CDCEF924 |
3933A492FE98287C457083EA5597BC4B972EBDF5D65BD9BD00EB53CE86920B68 |
4DD637209F244342AD29CAA4914C1B7567C29A8187C4820F62C0117591EB8AB2 |
84E983C3162E5CF8F4D34F237A8B9F433A002080C360F130AAC0A528A742F364 |
9808E40164B33F482B784B2C2843D4588575300C01C96957AE5C79F1C517EBE4 |
C3B6D6629A1A170F3166D94EB516312DB14AE266C4F79C54349988C692A9A026 |
4B6EA7B9AD75476F4F3C93EACB0F553D956D6EE91F188E8337659BE0C73BAEE3 |
87A7A5B30515C8C43BF14B8868E148AC6718D4D07CE54A6099999DD18E6326F5 |
EEDE531DCADB59D3D86858DEDE896A24EB37A713137C3B2A3AA7B5AD696A57E7 |
3C1943A56044FDF97BCD19ECDB9AB60DDBADA6A391451F3B07CB8F0C22846203 |
AF8848389F2C28199096C360C6C70EC1DFD23BE042A6C10EA66FCD3ABE712C0F |
F6B69463C4AA3BF4D0439F7BEE394C1A6B68B03D613A43E84313D3E0265615B2 |
9AD539888389343BECB0C35E78E105147241F441BCFCB5C618EB121E1C48D054 |
BDAE929D0D502687CDAC075E1A78D61A608B725AD474181AE995AB35FEE66411 |
A2C74431C1D70DBE3F16191BDD292D020EF93B8C6EAE6B02D1816094C30166C8 |
B3A6573991E05ACCB7279E78421E3C69184626FD75E31D7727024516C4A73FFD |
E91FFFF8C7084FB11787AA1BA4DBB66D93B50E294FAE2BBDEEC3A857C1E8B50E |
14106489C1606489006B481A2878A62AE4BD61A3151A11E40EC36C3351CCE484 |
CEC8C6C2B791854B32D5687D073F80CE16860A2F0D6070AC69DCAF1E14969140 |
0371FD1861FD04412630291063D1CB4D1AEA1FF529E23E247C002486D7D65F5C |
3C7852A79F7EFA534F3D85522F8C1604D7ACC9C27EBEEEBAEBAEBFFE7ACC3331 |
BB080AC99F5FFAD2971E7BEC3178F10D8C6C6AE7CA18BCD199DD54D8430DB246 |
670C34B44A3A4699080152E3BE1A34B4D8F5C3DC3803FD46BD496DA95C072385 |
6D0A83D6E38692FF7CB3DE78D65169CB4CBA7EC2F333E2134463A6E7969DDAB4 |
96F6F5FDDDCD32FDF1C4D9172CBDE2A695D17472A85C94E31329B5B5207BA733 |
57758B7EBF327DB716F78CC2F0158C00E7697962A9076F443B45AD642416CF95 |
FA12095BE6D8569661566A514BD55CD30DF8E8BC7AC9B18A458C58C4192A3A1D |
56E2E039C61CBF92DEECAA7A462490737624B74F53A57F8FD44983C6A6BE989D |
4D64FF61FEFC427FF7EE07ECDBDDFD6E6242A6251D8B140BD5217F523AFD4E77 |
E29ACF7D5155BC44245A2A15324DE9DC505DAAF87F05537147E051364060A03B |
B14118A0A69D3A9664872843F41235F07BEFBDF76F7EF31BA519F57E9DFC0E09 |
9EB1D0A5CC24C1C647A404068AFA7BBC28CD0CB214E831196C2AEC0AB2740169 |
C3241535012321FA05B82899A45ABC78F1B7BFFD6D16BBEA452EBAC481CFCB60 |
22E5293139B47A1A8ACE1A84358A42450A8B0F25561B922D74C0E191405461E7 |
0342C0DCE629A79CF2F39FFF7CD3A64D3A3E4A7F21A5C9948BFC295A938456B8 |
29F80ABA26934F3006642C0F3AE8A03FFCE10FE4A830422E235970C82F31CC0D |
F356BE5DBE7CF9CD37DF8C1A2EF90A2643432317BCE4C6B15221C59025C3DC62 |
416345EA959C08418CAA09E425478A7D27E794F100C88F08EC55575DF5FDEF7F |
5FEE1D31EB2F7CE10BCF3EFB2C7C02D826B87D56C9EA3B8DAB052A908A4AD6A4 |
AA9B11348D8139619A8BE533B29780A0951BBCE8A28BAEB9E61A0A7D20CA4994 |
8B2785B4A1DA391BC491C875B10B98EA44A64EAF005721F30459CF6094C10386 |
C14B9E286F67DE50D46FC3BD43E018912BE040B01499842081951A177D38AA26 |
68696AEEED0BE25453264FD9B479135AD044239A46317C11D63E34812CD19A4A |
DB66C633929E9735EDE658DCB6C497AAA8AAD7D136C1F1BD8DBDDB6D2BDAE756 |
65B2DA5B9BDF1B70AC4869DAA4AE6D1B7B4A6E59869B8AAB42599555CC1F5604 |
813692CF23C11B65A5CAB982885FC3B2DD4013E444478803E1CAA34D58663A9E |
8845A262D1966AD57CB55CA856BAE6CCC8A753850EDBE9AA58ADDBCD54BF6BAA |
7A43F38911A36CAEFDC49E93EDA1DC4473722411AB1C32731FBB2DDBE6E4ADE4 |
D4F9ADC9FEC1814D35B9CE8E8F1C6B9A691B43A5D9D9AE13FFCFF1E9543C3F54 |
6E6E6919E813DBE2AF048BB0932061E9A8E13D7533CB14882B45E1FD587D8669 |
19C85294F7A89EC362C023009E65C9922577DC714703E2BC41CE20C1030C243D |
AABF8B1AC00B3AE6AF8639252CE2EF1004C4B762220819A49868D0017C4FF101 |
A74CCE205EC9CB2FBF4CE1D2A009860D99308CC05D3712DA848839FA8E02A4DC |
308FE4E142D0003D641A269AFB5FCF53C12025FB3CFC26621C1B6E50856C9A4A |
33BAA196108E80A92BE344E0184CB074DF60095E79E595B7DE7A2B520E2AB46D |
E1CBB3601B3912A64348D08438839EDA41A81A2A4AEE4244A71C29020B730539 |
2897BBF7DE7BD7AF5F0FE1B86CD93294D2E0F6297446F509CC3A61323C5C0A14 |
C6D0A04E90DA39F6D8637FF9CB5FCAF9F59A3215A64346D504B8960C55062612 |
5FE4FB21871C221A054B9F493092A840BD19616B238008E457F22D9690A81678 |
60E49CA09E63321CEE2F5C0DF96AF6ECD97FFEF39FF120444DCAD359B9722580 |
BC8C08011E8E9FD35A04F0110F1A8005DC38905D887FE2BAD0F1C8AC401F4031 |
1039AD63BD74C2AEB1B02B6369026F8464113510D8011E3FAF6F4073B8E3B7ED |
A826DB6EB1A26931FB7C33C8E9F9725F155B0511959E425F7B6B575F7EA86552 |
D7DB1BD6DA86D99E8DF70C168FFAECC1BF7B6DDD87BDB901A35C4BA42BA578CC |
EBF1EBD6BDAA730FD53541F0AFE89B488007327DA358AE887F10185E35B728C3 |
F1EB25C466FD5711C3AEF9AEA7FC39C71DDB53ADEDF08A4E7CC068EE8BB6F639 |
C9821B5176BF994CFACDBD474D8915FDF2CC6AAA32A14DED3F756669822A5A53 |
3FDD95ED733A376ED96696B7F44CDA3D63F524F21BA3552BE3C4969D76B12756 |
932B0FA53537241E4045EF97A9B4C035042E9078AB56ADBAF4D24B9148603B55 |
50AD80E3612C096E6AAD2F18E5468F23EC685C68E9D2A5B201C9F936EA6365AB |
35D0EBA292F4EFA50C98B43710A7A650A388442B1C247F100DA061A546E3C5A5 |
21AC8B75FA3584638F4C3350BCE2785C11A454CCC0C0EBC77CE9E065A5B594D3 |
9F810AC9E27951C4CAE5BD987822917124108734F4483D0679C778D4481DA0EA |
AA82E962686C62818871E469C95247D1A9E3E57918DA9661A8C0565D7CF1C577 |
DE79A76E8A4230E9F42F8CADEB04E35042A0D885738A3494DE600BF8D4534F3D |
559CD6B56BD7323D339626D01F1CDC29682384BF8C909253FE947FB16728F475 |
D361D4E810CC0E3983EC1691AAA2A256AC5881EB82BE42F6214AACF5FA7B4224 |
E90F417310B4CEBE6C50C07810880B4179CB27E249DC72CB2D6CB001B271DA1F |
206484B6031523226F78AFC2ECDA25975CF2D8638F81D807EEB5133641C3AAC0 |
BF586334B9E45EC452915B468008315F6835A5B5FF344268EF38AF064D306756 |
D00B45E6537CF1279E7822F0E4EA48D0202A14AE68F10A443F5B661032CA1876 |
CCF3A39E93083A8CC5A676B44FEDEA9421BDF4D26F02F7C1329BDA260C16F3BD |
F95C2C99CC3465DFDEEA94D4B683E7EDF1E63B6B9CC0B5507ED42CB9A96A342F |
0FDB0BC6535FD5862800B3DE49D2F59CA8A8826CC62916ABCA0B10328E574B5B |
111941D57713E94CB95A139FA190CFCBCF63C71D5135ECB2EB3BAAA2AC0123D3 |
EFB7E5DDACA352393594B6924EF6A323A64D6CEAC9D566CD98346F527A5EC7EC |
CE786553FBC73F7AEBB74DAD6D056BC2C4EDBF77529354B21033637EDED9F8E6 |
BABB2F5FD594C8B8AE512856945F450099A4672A3479B12AF0EC98F9E78ED361 |
AFE36868D8F2B2C141E5A9EABD0AD6AD5B47D30D9276E2C489E20ABB6377DCDA |
638F3D609D005571D45147FDFBBFFF3B19DAFF2E9A4085642406731A68EE1150 |
CBD671A94A8B575E7DF5D5B233292E4746848C9DA1D986065D47FB273909706F |
C4A88C940846C89EBA60C102B97F62A1F4969994EC73E6CC79F7DD777516558A |
303E3098B1B8174861F070A107217489E8862F7DE94B3FFDE94F5F7FFD7564AD |
172E5CF8EB5FFF5A8C5C6450D4080A5CA5F5E560D9046B593118B637A24500B2 |
7B8812F2BA806B014543F2AB279F7CF2A4934EE234EA55DFF2438674788019F6 |
3C82B5ABB4B2F506B42530272044432A42D5D38CF25BA0E659E735AA265061EA |
12F601E43ED1E8885FC99F2C26A053A876465231FAD4A009E08411998E88A5D2 |
E290A214BFF5AD6F91D1847C3E5815BE560FCF552A5FCD9A350B4809B2867861 |
17396C7B9C0DF90F125B819C00EDC599E794B942F44F699D216411423733D08C |
FA09B533240F0E3ED209B86B71CE4403C9F9E518F69EE3E644825AEFAFB7ABD1 |
21FA0441D16FDDFC4F2682C054C03E5DC70CCA0396951D0DFE332386E97B4EB3 |
B2DA6329318EA28EEBD52A5515AC9E163B55704AB367CD7DED83772CC876DBCE |
39652365D73C4794B2EC8FE68EA6C1DAE0967E39918A17838B31866D863E4139 |
DB1671E2AA56A8D506E4C3B41DB34CBB502D64820895E578BE689AFE5CAE2C8B |
DCA9886E2AFDDF794624661929C3B14CC7F162C55A7349652B1367AF1311A54A |
D5CE9E7D67344D147F7E52C7A43D66344D9BD13AD43A7F92DDFBE2867C675BF3 |
E4FCDACDC5F8DEC9A1E73E34E29954D4B0DBCDF8B55F59A20A5E2C623BA672CB |
C3911FD813F0CB413730AA266888CBCBDE07F5F73819606CA8A38F3EFA873FFC |
A18E2221A1327A27B09BEC58E7C1E6C5BFE8E5A957F8FE2F5F7EBDBFC2DCB973 |
8354920A7B9FCA401F7DF4D1254B96C825C5B2938BA19DA4B848B26AE983AB9D |
A34314FD4ACF3F842F484932EB928242B70D293BF02D508C726960A11ADC083C |
3939E690430E79F5D5574973C45335D4F7EAF84823E46436C256398CD9B15E01 |
A8D9134F3CF117BFF885480182EB75122115968663842456439D04DC1A39C959 |
679D75F7DD77EB1C647A4F37B5B3FA44C9B85F270D47212E297D9871E5543450 |
42AA30B249BF0A50514499004B87E54E9F4FBCAE356BD6B0D5351BF2A8B1A343 |
58CA90957A3130FC124870409B49B8AF731A420A5363354487D0B203D4EA726B |
F3E6CD93E131D16A84E46ECC132086CE6BB1A077DAB469F2861CE3E263115064 |
681CE9F8A1DE2F5E857D8A40C0C5BEE764045261D12F1C6A20DF3EF7B9CFFDEC |
673FC3AFD8615B85813E8474597E8C1013E25AB2A5C566C7CC634DEA1C993AF7 |
2A013FBBA409A64C9ABCF1A3406F1DF999236525070BD8F72C3374DC8D204710 |
F38D84AC3ADF1265D0220E99EF455C2FEEA98465C513B6C8BA482CBA6D6B7734 |
95F8E2A2937FF4C20BEB3FDA986D6E59BF75536773DBD040EFDC29F3FFB0696B |
DBE4C30F3BF60BFF70DC5191D6E6A121D34A0E79CA777D00D4032D64D5D3D79D |
B1A1EFDDFFE8734FFD6BBEEFDDF9B3A6F46E19CA97F2B2A0B276C4AFBA35DFEB |
6A9FF461F7F63EE58A46CD76B5973F39A5EA394AEEDB49C4FC949CA512CDF9D1 |
82EAF8B39AA2D450E7ECD6B8B7767E36352595340FDA739FB60533A23B3EC847 |
66A5FAD6D95EB5D74E76191F14B31DB9C29C753D5B07867A67A45AEE3DE31C71 |
3066CF9CB676C34651680DCCA3084D8F151D92F5205AFFEDB7DF46AD80AC52B1 |
F481911BEB716093225DA73798C20AE73EC29BB1A243A8216755300066FF030E |
E6B15E8411FF7579D19C69287AA48B7AFEF9E78BFF0B9B4BB7F53CAD3F972E2B |
F12F2AEE6070E1927AADA3FE135A6A7AB69986AD5EE88F93C8FE14738C51293D |
15E9870D0B19E5478192AAE779484044BE1A44B7911EC78D4F9E3C190D229891 |
1EA909F409254D31C48A2C91AF7DED6BE245C1EA94E522DFA24681016B6A7B4A |
673DB1494E7915A28F802FD67D02D26B8F8A77B6B5E6BD78E40807C9BF3209A0 |
9994ABC8D8803745C21C7A7AA426F0C36E59702701EAE5A51B06A0372E05C132 |
EBE0C6CA1843ACA3A10A7C142C7A92D7C2B1434282429305F4380F2647CEB368 |
D1A2471E7904BF65A4556FA7839BE2EA421049CC3771BDB92DE10321E52E5794 |
81A1F10B7999E4AB030E382024E51F7EC1B4C2CDA2C6C2AFF70B445339C0FE70 |
069DF7102C2CF27EEFBDF75EBD7A35597239EDFF339F20168D55AAF5F2DDD033 |
8828D343B1B06802C3CA2833AD6C79938D060B3D2EBA5C8C5715C46DCA6EB5E6 |
569389A62DF981F6D6D6EDFDFD55DF6FCA366D191ACCCAA248A8DEAAE7659BEF |
7FF2679F3AEA6335E5160737753575D611430AA902AF1E35AA4393D4663792B1 |
D4EF7FBEF6E48507560A0349654FEA98B879C7E6492DE9B86F67ADF85E7BEEFD |
978F3E7A77A8779D939FB460DE50675359E51CBFA4DC48C26BB654A462146AD6 |
4034E665E675ABCA14E3A3D53DBFB5D53627387BCCBCE199878DF4C4EA87AB0B |
6632DB944EDBA5B77A2AFD9BDF29E6B3D1894D03C57CAB633C7BF9373A33ED47 |
1C76E80F7FFEBC1B24685C4F23B2FEC4273EF1CA2BAF20B63C3263BC6CD932B1 |
EA642FCBD2BAE79E7B906A1E9FADA4A11E9EA073F807F46ED57F57E188F380D5 |
0A12E9BF0D15FEED2F9C30105F0DE03CB8C328FAC041E45E268BBAEEDD1345AA |
EF6A7D76580EF3CD6F7E531C0BA5E12F47D504D84BACA2D4859A8E1D22CA1348 |
E106EC90D2322D7A5E01215704D659F20A1E21E4EE264E9C08A98D181F68FFBC |
F0D5708380C0C382008C470F029A21A3243381175E78E16DB7DD86CF093D5221 |
0C89A5CE9011A8E7A013AA7322915849699D41553DD8C76EEC2C350277050238 |
9C4C028D91FE0155A4D2480A47F5099052422A1ECB91405258BB28AED129921A |
EA18C6419182565685200D6C1E3A52729E9B6EBA69F9F2E532157A7448C76B32 |
69CF625A1572104170336B85B9220B02D3272A340E90129401104A00AC043E24 |
570AFB71022D0EAC3A6AF58D904F1F850B471E79E4B3CF3E4B963AFC8B5B907D |
71E5955722CC28A7BAE4924B6EBDF556E86CE2E5FE161BB04113588659736AA9 |
64D0C9BD5A13819E44F1574C99F51C6D9021888B0230ACB46F270CCBF4CAA224 |
5266241D8FDB11253A20572B956B22EC55A6A9F9C3C18144C4760D3558752635 |
35073507B9A19CB2CBED7BFDD35937CF3FFCC8B629CAA95406760CA4D24D810E |
103D2312B69E8A909514FC6BD7CC92FFE6AF9FBB73E5D993B391BEEEDE9425F2 |
A4D8D29234F29568CD5F306BCFD5EBD7BFE7E58B4973EAFFF9E48E52DC4BE6FD |
5449F9A65D8E1B41A3B3B21F29FBB56C25E6AAF6DFA96755C7642BB73DD9D63E |
B967C7FBE55CE4BABBBF31D092D998DF6AA592D552ACEFDD0D313F63C6B69753 |
91CDBD3DBB253A26F5798FAEB833198B171CD15CAE2E49E4895C76D965E201B0 |
06BB0145AA4213136201BEDD381ADA080B2A172F5E2C9A833866E08800A83BE6 |
9863C4F218BFE31683223AAC40FD0D58B2BFF1C5C21403501C08239A75B276E5 |
92B23A656A2EBEF862985D400D4212B14B14636D723C3B7EE06C7ED87923A038 |
AFFF1C1B8FD25985D62EDB54FDCF3ACF9861D33B4E934E114C2E1492DA13A30D |
E10B682CA23A689283DA2BB042B2CD1670FAECF3CCB00C7B1082260132DAA877 |
01945BD3A5122C56BA1DC4B118218F0D22303366CC20A782F81622FBE473F131 |
C981C3E2384A4FF2CA354478B85C80B682C98FF160FD89E2479F32114037DC70 |
03E1138853136607613AAA868075C3FE42C84BEB4D87705FBBEFBEFBFEFBEFFF |
E4934F623C0D781E3B6C8CCCEA5924E5643CE08E66B89F75E96467535A835926 |
7211B3927F45C85E71C5156443C375E9C1B03FC448494ABD28AF7BEFBDF7ECB3 |
CFC6C61E07C74DEB92FE341D59A83742C2A8BF896CD67B91B35AD8087B6DE2A5 |
DB349C289F0DF2AC40EFFAC8EDCB303C7F988A43B695659BF5B22F71114C71CE |
EAF55F533ABA4ABD7DF3274E36067356B198F74BA9482A21CEB1EFCA532B3B65 |
F995DC726F292F33B5DFFC05AFAEF9D394A6F66A4DD49B59AD96DD8A1F6D8EAF |
1DC89F74DEB752938FE9EDCB98C57247CA1F8CD69BC6F8B2B3C40250E542251D |
4BCB32D9D2113772EB92836FFFE8A16BDD818DC9881AAA297100271A5E4B3259 |
1B2826FCE4A0E3BDA7060626ABCCFE9D6533512F45109D9A50665C1981020BDC |
1A27938E0EE6FFDFEBD3F6EC8C7EC6FFE8EDEEB6816C6FFBB6CAB656F5DAC0D2 |
9F3CD436B4FD65A3BBFFDD5AAB39757BADD21CAF5AC54A7FABD9ECF8FDA581B7 |
6E78D0965395AA89B061220AAC8CB0FBF1381296D481D87DAC8D059E87AC3E2A |
ECB33BEA4960B22044AC63C3B072880C84F9AF7646D2CB45653DDF75D75D08CC |
508A8A7040DB5478AE72069DD551697573A376B6C1E23494D67A173B93F55672 |
3F889FC246139570EDB5D7EA4D91C05C06F30D581D4816987E689F023B11538C |
A018DA7B6ED8B041448FE861C02B8950DA555D6784B566C8D9C21A85CD4B909F |
0AAB5B21A6A166A90CF5A4909E1AA2B7848A274089410BA5335DA3720F816998 |
C6F2E7962D5BE4E722C745B0E26103A704080A4A16014636C3D648884BB2FE19 |
3DD1CCB02326560F74AA7CF5E0830F222C2E42500E1095431E0B3D550399CB6E |
CC50DEEC884BEE11A5F56340CE1CF205ABB6A1D5418326408581B83B77DC7187 |
DCA9DCB29C1FADE5F0D0C918AAB74340A41E159EEC3C81D9E61E90539D7AEAA9 |
6232C30940B30AD86218F6A44993C0A047B541CA3CF91CCB5D7E8B6D43023B88 |
57BD287D544D408A0B39C9F4E9D3D7AF5FDF80251B6991186197247A3C5FFFFA |
D7BFF39DEFA0F4812566721EEA6F62E1105382FFD4804DA08EA7AD40E70F8A6A |
58FD9BC17D817D42FE8BDA61FF9C3A2F50213F4C4AD3924A17CA95F6891D5F3C |
FE847FBDFFDB53D24DB5FEDEB432A29198E3E3D2750345B9E26105FA241A29CB |
AE54664579692B118BCB692BE55AE5C87907AC5EFFD647CAED6B9BB9FF179615 |
9B26275AA37DFDEB93B5298E57AB54CA56B41E7350A2AB0CD12C33AA8542CFFA |
5FFCC7FD1D914269B0777236512C89428A24DD4ADCF49B23A9C30F3EE2A72FFD |
B67F82BDBDAB929B145C3940367931DF8A99967832B66FD47B93B989D21F57B7 |
364F9EB7604ACBBCECF7563C9651992987B5D96D76F10D79E8EE99DFB8ECA52D |
6FA7DCA45DF36AF1B253CBC66B7E77C6B407CB6D9D5DBFBBFC9EA0E4DFB3AE5C |
7EE58D37DE082E199D4E7C1CF90361429BAC81F449360236BEACE7C30F3FFCA9 |
A79E1AEB3CBED6D017FB0E8F1E5DC1D9AC17362E491865251F7DF4D1725A9841 |
101DB367CF964D71F0C107BFFCF2CBF243F970CA9429B2F209736AC82C5A23BA |
5DA2BF936C2E033D3F49778CDD887E4F84E2E12C0823C8B740C592F312C629C4 |
87DE32948A94B46E7249A84A2440D0EA12B136E64F76D527602DB18839628DA8 |
2D216749B74238E9484D408A28C8149916D9D294F80DD133B91636215913100E |
227C1E825E0413940494CA75D75D27E212447530CF79177453BCB0B19C11F662 |
C3C4EADD7D6102CB5758BB2A04AA36E4339466A542D18283F39C73CEF9EE77BF |
2B0F054D9B2165640E91A5F7425E657970ECE20916C9B1A246F27EC9922562EF |
CBFCEBCD1AC12AC3A8944CDD19679CF1C4134F6CDAB4894690DA996FC7D01A8A |
C92C9D78E2890F3CF0007CA954FD85966430386402EFBCF3CEA54B97AAD0B904 |
308C17856E90F3C016C1D3013CD7082B4EC6D204D8E4AACE318709FCE77FFEE7 |
175E78414FFD8D2A2954D8EB9C6C1946487DCC7C7203CA0B2F649874CC95AED7 |
3106FD7896AA0E3F1743F99A15202E00C870E2D158BE906FC90E73231A41DF7A |
39C49CDA39A97BEBA60E33D16C5AADF158D50B1673D5A9065D25C5873087DBAF |
4612B1A66C4B5FDFE084B68E801337B0EECC4C36F50F877EEAC7FFEFDFDCAA53 |
51463A36B35071F26AE36423B223C881977CD38F6752857269A014DC70269EB4 |
267479B572F7F6CD9D99A893AFBABE9A6007F224617B96E81ED7C99AE9B219D9 |
9428E4E658FDEDB574609B2A392CA84E336DF17882E955AE953772AF95DBF7EE |
DAE7B0793FBEED87D16ABAEA55AC786CCAA78C9EED316B7366FE69C7960A7D9D |
139AF3B90FED785FC1EF9C986C7EAF564897E54A91DCD37FF8C4C70F7BF395D7 |
2A7E41D6A1DEDF14900DBD7B84FE3243627398EDF0DEF4325590CAC02ED96DB7 |
DDE0C28EAA060E38E080D75E7B4D695037550788CBE72FBEF822009664E8A19B |
2B76F38A152BE442B24EC87E0199869836541A821690E786D6BDDC08ABB54476 |
C19F26290B9AC418A0B030B4CE9C0895C0CDD70D3A021B20F82EB8E08255AB56 |
4D9B36EDFDF7DF47413262E2B24065FB815554D79CB27B65C4EBD6AD23C711B5 |
13A7F56FA9A01939B39056627F8992473705191E4A10C0CE41DA58DD1783D631 |
EAD500C8D332CAC13180531E9A4CCEFC99CF7CE6A1871ED2C3503815C362BA80 |
A3790BE5216A152252740302629014609220212833A2D43132C9575C7105288E |
09F005B61D2B4FBE625BE391691BA83A128FC84BECF7DB6FBF5DEDCC14CF7614 |
10317BECB1872CCD575E7905460A25DD484D4026741835C8E18320963E964864 |
B91DBD619E19126DCE9A35EBB4D34EBBE5965BE47688B161AE1B382E2C2A5420 |
CB8DCB22C6738487CE2A71380A34BAB133A1E42046411ACC380C3B918DA50920 |
A9E1DAAAB02FE93836231B59EB650462A3C9462065A99EB1A02F8E9FB33F018C |
155F6B760487CFD2FA59CAB73C1E1683A77C5801C3EC61A532B256A944722837 |
9488D67D3ED749066970B31E947326669A5BCC48B45AF3CA05CFA807A37C5100 |
812B601A2A6205EEBBFC21BE41DE29C7555CBC8E784226B95C73AA1D9D9D95EE |
6D535B9BAA85DAD662BE33DB3130B4A339AED695552612ABBAD57ECF9727DD35 |
B9BD3757D83E5444E1D8C489E95CBEECD65CA7EA3707B965372AEB2DDB1CF1D4 |
96FC40574BD7FB5E4F6D41725B532E5B0BC6217353D75BF55AE840D5A9DD5B3A |
DFF8F76D6A7EF4139F3BF8B757FD52E52CD5EE78057BE16587FDE8B71BA2AF97 |
92A71F952DD513B946A935E36C2DE4BA92CD7FCA0FCC6D9E5CB3ADA573FEE1EB |
175FE495ABE2B810324752A07192B17ED8455C854585C84BF9758618790F7F94 |
BB7E1CDF11D124EC5352EFC91866CE9C290F94EB81993CB1FC88A1471A03B62C |
B1E3F6CEDD58F510B1AF352983B521B770C41147BCF4D24BBE46573E5C638C20 |
0F94A1086B78D6146A9023D8FF0C19EBCB9A616E9911FC96C903EC28A4671949 |
00F5B1FC70DF7DF77DF3CD3755D8EE87B99A5D7AE9986B7C420C38A7030A8651 |
2F1D1C05CE29F9FCFAEBAFBFEAAAAB549D0E5E74099054E4E751757B1C8E2170 |
2608B340D6408DF3FC3A4DBC18CBB7DD769B5E5E08662744668068024C580603 |
1D00BE7E1516C7A1A38BDC2398F8CC7A3F58747AC0D90E3DF450B9D07FFEE77F |
32B34D3095D292C048DD934A0F2407A8E4A25402A788DEEC1BF12E901A8EE513 |
C0F416C1B778F162717A54D81148E78480A004F7B2AC1358F408EFB0DA4387D8 |
EA99F04B2EB94474BC3C56087D64DA116167BE0AB3EDD799FB54E803C1E517CF |
065E149A72600FEB68D451350111B1584B72A48CE1A28B2E1A6B89C2B2C16C93 |
B805914FA49DC01660ECDCFF12D121DCE682050B4410200F375213E855230035 |
EDB9E79E6BD6AC210E6A5813F8BE593F612A1647719FF80481AA1E1A8C458358 |
5F5B4B73776FAF6DDAFBEFB5CF9AB756B7C61276AD6ABA557718E763D4CB8195 |
6802DBB4EA1B471EB1B7FBDC3DFFF4EE5F9A92A2988B86E93A4E90A8F02BA5CE |
647AB0982F29DB899B76D21C182CCF77E3384F45793B5425164D6EAF16139178 |
53536C53CF60C5527E345E28976774B6177ABBDDAACA04CD898D54349E8EA537 |
E4BA7B6C65ED9F1CECA84502251DF8048148AFF32329C4BDB62BFF8396F20CF7 |
A67F5DF9F53DCF8A38916A62C852D9854BFFF9C7BFF9E34D272DBD76CBB39D66 |
D4AB66CBE5885FAA669B12FD1BB6362F985DD8B0DD8F9ADD8FFDA4ADB3B5777B |
CFEC59B3D1B30F203DC887F171FD483A8ABCFEE8A38F1AA2A6480521DE024134 |
162A54D6FC51471DF5F4D34F1B759A67A093D5688431A04405009A3F47E0C808 |
594C409E8A86A0042813D7D3300C3B6CA60D0909924D1ABEC35CA48CF3802156 |
0E92CD8379011501BA637FF39BDFBCECB2CB4013AF34C09CF8359FFCE4276169 |
E232043B02233F6AB75E66C3A8FDC661621AEBA587771020863C5561974AA407 |
600692044227DD832638FDF4D31F7CF041422D797E766282845ABE7C39986D0C |
AD14000A52E72B655703B1E8C559A16F216A06CB48D6D3860D1BE4F8BBEFBEFB |
A69B6E426757A41664FC3ABE58960E624122703130594024A626881E7D7A1B60 |
4E9C67481C00DA80443AE38C33646CBC84D8F2F8973964C06600AEE58A1F155D |
0AC751DE10264B51CB6240CC12CAE5316691CBF2091B591B1AF2987C3E702F64 |
B4E8D583740EA216FFF66FFFF6C52F7E114C73C898C9E5E48EAEBBEE3A648330 |
78A5396A447629ADD46EAC8C31F1A6322DF2E0E0228FE3B3C23087F642F0170F |
116B1B73D5401C465B448515A4E05B1D353AC48C028914E578795E7CD60136D4 |
AF0B4ED4F65787D90112B1B8F80451CB46DCD9F0BD9A682CC3CAC4934EA91855 |
5E532C1E313C6C40C7F5A2864A0C930E89E9EF28C36A6D9DF04F471FF3DC733F |
91AB6F1DDCD696CCB6B4346D1FEC8D146BCAABED9999E614CB8E5B6E56B1B48A |
ADCDF4E772055105D17464FB502DD2627DD0EF669A54AB3F61B054ECA9156DD9 |
1A6E4D647C2AAA8C9ADA63C2C4426E508CF4849598B8DBEC17D6AE1E9CA4E27B |
D8AA8EBC33EAEC45C11D2B518DF56E7D7EC7F697B625E676DEF5F86D6DF9D441 |
73F64DB526AEFAE63503A581A77EF8A3EABA5CE7D7DBB7EDE8B6EDB6A837C5F7 |
62C9F284163FD613338DAD439D53276F7DF88703437D3255E2DF106602F93B3E |
A31C1C3E39E6CC33CF1431083BC30CDB462A0D12C9CD32EA79E08C32BE22EB10 |
7E21FA8EC1100761017D5C94D4A0950850D1A4F1D7534724725761A444AF8262 |
E31DB4A71429044F08922AB051B84FF464023F945D2A83139945779E5DC22943 |
45E81F7FFCF1F7DD77DF934F3EB968D122A847445A00B462D11384118245722A |
6CC219336680BC8CD6EB2E69023DBF477CAE0C69FFFDF79749FCCD6F7E83500C |
75006C2B9D491C91385427884895C1C87BF493E10CB217047EC5D25018A472EF |
175C7001A4869C448FE9AB30AC4F2317A63DE1225463A0B8C04A42E131A2F3BA |
2CA3BB83CA75511B32C30002410FF9A335CE6CE057C178105BC013A46447EEBA |
6186C7C70E6109C245057C080E25D6122B42405F289FA0C050460EAD26C70700 |
95FAFCB0264B9F3DCC9B8E1905B00D3C0DA2FF60B8E05F991F44A5F06481F681 |
DD240E289A83D3D305926D2C4DD0001B03E7287BFE8D7C6133A3332B541DB872 |
4F39E514F1C4E561E1B1CAD818A244B4C7D899F58BF5316AE78CB10AF30A5CC3 |
4C230F3F716358ED8348289318A66535EB4DC744313AF59EF5F120F7D8924DA5 |
D77FB86EBF797BEED8B4C9706B8552B139590F48BA9E6DA8782C16B54CCF0920 |
0415C7330D7BF2E4A91B376DB20DBBEA97EB419A20B2B3E7A41903DB7A93C9F8 |
F67CF79454B35BA888ED9EB0BBA2513B5F14713B988AB57EF6F327BCF8C66BBF |
FBCB9B25550C6040D964BE5C10E19E8C25F243A588652E9838399D0CBAD2EFD8 |
D473CA994B6E7DFCDBEF1943A9BD225E3CA84990B9B1029FC0F45CF14464B1A9 |
EA966A536BF3E0EA813D0F9B77D95D57BDFEAB3F5B656330BBF53FBEFD93D2BA |
6DDE81C9D4AC42DF641531ADA4D73AE4D422DBBA66374D7F3F976FEAB75DC3EE |
7FFC571F3BF880356FBF2973230B432C455061633EC7C1E973139D78E2890F3F |
FCB0AA3BBE7A0B2F3C05C264C6A90F602523AD22432B70630C9090212684E829 |
32BA2847E2DB919DC375F1A8428C25C0D3B85F4432FF6A6DC09B40FC413E1213 |
F5FAEBAF975393E34C85E938F0FE533AB0C39719767E8047ACC36FA05774C7C7 |
08EB3CD977052CC766D86073642FF5FFF605B3541E920C12DDE6107080B854F5 |
CC8C588EBA854524064160727579239EC15D77DD05852F1B1BC5537AF49F3A00 |
7F820F47142C818FD467A8BD82EC5EB162C5D5575F2D2B4FBE15EB95D607C643 |
DA57B5738A1F6B14484A997014BECA3110E8801EB13C4D2FB9D0278715AA44AF |
4293C900383F725119E1B265CB8094051306C85874C530AA26603DA00A934CAC |
24D70BA1BD9DBBD843FB422553A819218527CD76AC4910D9E34F426F09A19129 |
92ADB574E9D25B6EB945C68CDD0563878051199238738093CAC0B0267568D948 |
4D70F2C9278B0B8F8728C7CB7E9337E354123156AB42DE21D691B007061967F1 |
A71EA564B2CA0F3B29A9112852C20AD87F7BA7FE1F81F90CFB39B8A90BCE3DEF |
8E3BEE08347D3EBFFCFAE5CBAFBB0E656EB66988948A1A762695AE958A9E5B4D |
8BC7E63B1537609E88980AAE8568E34424706EFAF2C578343E582DB7C49A7295 |
5CDC8C797E559EF004D72F794E5225FB5571D6B4B6EECDBD1322769BD59C2FF5 |
C858E23133928C6EEE2F374D6E7A7DF3603CA22AA98448F65241E4839289B9F8 |
A20B6FBBF56E794A56AD30A373825F76B60D0C4C9F30E7D59EF7FBC581D8A7D9 |
89957CE59A2A582D9EEB8B1751AD28A7A6DAA64C2AF56D715E56664CA5174EE8 |
7EBDA733357F5B748DFA73AAAD181F3A76AA5579B37C74466DCA4532AA1651B1 |
FE8E6C3931146B99546E3354B6E7911787867B7BD5E0C601A4078C3BD8D4C712 |
3258CF2C97515A1C18D4F140228D9FEC440C8735E4CC5419F59E04EBD7AFD7E9 |
E8E50D42AF0CB10033065380B855F822483960006A04DC80F410DCCB04E90C2F |
7E9D4E8F644CE8BAC79DDF0047D955493DEA8BE935A2B671576C62A36B39CA14 |
8833C64FB1C7987683C447F00416BA0805CC0ED9661CAD613A9F0D72E3DCB1CC |
64181AF39AA575E524F2523624F2F8441DB00A4FC750A1D10A742437FFE38F3F |
FE95AF7C05E20C7724CF52C4F1CA952B81DF2565A90ADB5F203C7243FD056B02 |
4216528FBC1A2A54CFA4C266551403718C7A613D21BC034D00B3E5D39FFEF44F |
7EF213B92911B2AB56AD429A818D5674DB04772DD38E6A8991557EFA4BAE7BE7 |
9D779E7BEEB9841A03D086FA03F9131D7AE54FD9A2DFFBDEF7F4E029560B8230 |
BA4C9437F2DC59B622D38B2E6C88FC8ECFEBA26F755D13C849162E5CF8B39FFD |
4CDE8B1E42A01F0EB59C563E617508E303549CF215CA0C496BC1C5833246804F |
F4381EF23108CFCA02B8F2CA2B7136C04B20A1D89D0DE2033EDC58DD10793B78 |
C3BED0A958B08A82C4B21510CFF9AE17374D99B28CA78A4E351E54A49979B776 |
CED95F7BE8D1474496B435653FDCBC3D6629DF5311CBF01CBF2D9B1A1C2A4C0A |
982B545C5931359C6496E94E66D2FE8EDEB9BBCDF968FD07D12060E52A33DD1F |
B5D69607FC64BCE6B99144BC7728277BB56342C7E6ED3B5AE309B75CDA233DA1 |
5CA90CA4235B2B855CB122032DCAA8FFAF526595F4927EC92CE5CB86EDC59B63 |
2AE27AB5BF460EB16161910C54FA6AA5683AB1C08A257B8B7F51C9BEA6C9663C |
95E8E9F4931B8BB90E99888CBA3E97A9A672ED99D61DDBFA775D8E2197C9763A |
A8F332C226837E9DD180F87DFC89ED00694EBD3E6BD6ACB56BD7FA61B7039D34 |
6CE46BA7004E88651867316383631D92ADC40FB90674731CF63DC4852CEFE08C |
B2ED518C404F1F452BFAAA6AD030FFFB172BAA54E8074110207242C411B6BD1F |
36B7D16B4028EFE0E383BC85D301E239E23591F727D8D40C1BFBB187A20AF58A |
1F36785261A1202C35C470C02F0FE989E42A42EAB2F3757633762C01B59CCE6A |
8007097E4DB959F4449341227807E27B244E6923CB9132783005D1F920EC52D4 |
F6673FFBD91FFCE00772E439E79C239620B4025046440003DFA6F76C414A5F6F |
1F068CBF1C230323FE0CEDFD2001E5577247F7DC738F886998EA22F56424487C |
C9CF11BC3676E62E6D78EEC8D3CA854E39E514192D16FAB469D340D9088F441E |
1CC1A6EC74462715B7C0E4D3D1471FFDCC33CF408DF15E505C0615FB3F606B50 |
75F404D8E5E0429167822D4EE50019030B9EA12D60D91D73CC31CF3DF71C9D7D |
19001ABBC2B1D6E17DBC34717EECA04004361E01C3116C34364E3415AA82CE16 |
6BD6B2C9D4603E17B123D3674CFD70DD7ADFF3AD3A2184389BA948908896ABE4 |
7DB7ABA37D7B4FB7680CF9767247AB53AB0DF4E726B7359787F2F99A9312A151 |
47F444827CAFAC51A3A644191846C44ED79C21E5CD4C3577A69BCBF97277A9B0 |
CD777B4D77875B811F9D48C66AAE93AFB81FDF6FDF57DF7873A2526D2A263F1F |
88DBDD81A9EDC9602AA64AFF6332972B59BE1D8FCA462B5755351A37ECB8E186 |
76AD9E580A1E77C4C9175424DA6227DA4B8EE9C5AA7E6CD0AFF6AAD9B14E5133 |
D3537EB1A5B26253C24D953A32A92DDB8ABB28C7FC7A776EBF4E0B6684ECBF6A |
E7EE6C2866E42AD5917278B2865649CA0FF1669CFD8237A460D013C2631D0FC9 |
0944A2DEB2945A078638FEBCF5D65BC5F230782784030239ABE31175ACFADF4B |
13A8BA58C4CCE2FDB1C71EFBCA2BAF80EE51670BD059CC0CAD1FAFD2DA41C8FB |
DB6FBFFDF2CB2F6F6B6B033252368FDCC5F6EDDB75E38BBE05BD2D98F3B088A9 |
DB79A7DCB194A16CDF06DD801A4536F011910186259DF60E9CD570DF647AC9D7 |
E6878CE7728F22EB45B83CF9E493224410D786850EDD8C56D4B7DC72CBA5975E |
4A5B43EE4BEE426E50E7A783C182781742EA40BCA83A364CCE0C2E23643E90C0 |
649361E211E5BDD8ECBFFDED6FDF7AEB2D12F032E3242FD1550D4443C87F3440 |
B6467DE8506FF057381E066A808E456449D52366BA3B88A50CAB1F66B511764A |
60520A758B575C7185DC353B548FD35144DF420D19636E6FDC3BA297B012C4C9 |
43C71EF90A406ACC007BFE206B8255C79A12198C1C2C1A0E94B44ACBBAEBE120 |
4A7C9623C027200786CEB634CE7EC43ED735819CB9ABBD63EB8EED996C76BFFD |
F6F9FDEF7E1711715E750C5F2565BD59817F2952408652766BD16422F84279C5 |
5C3108F8D4E1255D56744232E595ABED56C4AF39A6EB476CCBB0CC925BC93925 |
591087CEDBBB54C8ED0838BB6ABBB54EDDDC3F5048443F28F6E66C2B95C9166A |
95814231DB948DC4631BB775A74CB333935283F9849DE88EFA038667384AE468 |
C552A9F94D3BFA7B5542354FCA1831B7582BAA2017AE6C34D6D9890433F833A6 |
A2855A55FECF8A347BC64C2B36A1620CB8850F62134D634B777946A4AB637EEF |
7D6F55FB6C953253E55A71D780297FE528A39C957585E6BE54E77CE127220DF0 |
2DF8EA11F0089A3DF4F4A0A52ED833C7B7B071126C4CA2A575485EC30BC109C6 |
4EAFB9E69A1B6EB841DFAA40F4899C947528AB11202231400DC452E4F7805A23 |
72846A4C1A1D1807A39CBB3685636F3CA25F65A38A8C1349C7EE34D806285786 |
83827A2B153672227B0CD1EB84A0408DC9578B162D12BB4CE61D617A84564907 |
2D73014C088D6B7A9ABA03045F1EA671A9FE92F388163DFBECB329C7E524C486 |
12062ABF42CB65A85F6C78D6C1A2B803578140C7D6153313E7019727CE03E67A |
9A21009950592E5FBEFC81071E90C3E4CC2CAA028FA97CA2331F30FE2E3745F6 |
6606A979C0942953444D6266CE3CF3CCBBEEBA0B640F73E6CC11918733C80215 |
3F809D57751744BC4E5964E3B33290B4032F0670601CC824C80D225BC3C1EB1C |
AEAA9E6ABEECB2CBE4B1E236F1F8D09F190790F307DFFE2D0BB24113C86DCACF |
6566880026AA62C99225322D58784A4BE9EB952528D859B66C99A825F9E4FAEB |
AFBFF6DA6BD9E8AD211B0C56193C0204CA509D833435B62198B2A01274CCF858 |
93CCD02E9DCBC02E49A6F285BC7C3D73E68C751FACB7EB0E415496B765BB4ECD |
366DD10483E5623A91EC291533F198A7DC7CD91135B0F76ED39DDE814CD58B94 |
9DB48A4CCE647D272080089ACF5866D1AB0D560BF96AF9A2F3CEBFE1CEDBBA62 |
A9B411115FD730131BBD9C6327F2CD89CE495D1F6CDCD03B3854F383D6340F3F |
FCD0A2534F9F18B555D5E94AB7AE2F0F8A2688995171B4E511DAE95451FEBF49 |
256746626D966757C5B1AA9454D2C6DD8DB8D982A1629E1351154FD5BCCE587C |
6A349E96B7C6A6B5F9F7B689DFD13677BAF7DBEEA1FEAA1B1187C1ABEEBA4F80 |
3924799C58035FF9CA57641142B6EAC0B091FC37A43060A41AB13E9C761C1F9A |
5626C21B882DEB159123C7C98C20EC5A76DF42651556050347B4A5864F47500A |
9938C5EEA35BCDB1FE1D7D02C84712A0CAD207E71A46894FBC906813110C72BA |
29CD4D31C25650489F92B70777840D86F3880015D582C8C93DF7DC73FAE9A7AB |
B080562EC1724DB57337023C45915008B293BD0057944DBE72E54A586AF215D8 |
8A60CAEDB3CF3E2237212900E4A77D8D07207A028BE3EEBBEFBEF0C20B45B234 |
4017E41272985C856C362ACCA642C0C10E850328C75C577F0141CF06AA2A2C59 |
C25396C388DF9793C854C88D33718D64B5AA2B2748343116E46C32E7401CA1F4 |
44261F590A40DC102ED3AB07C6410313F52C3F9427F5E1871F22FE23E609D265 |
2A7450888E50616130CF2943454E1BFB0D412DF4B1812305870C69F6BFA509B0 |
1AA1093092FDF6DB4F7C23FA5B7277F2AC65124451E143A86A59BA282B5121DD |
371150A8BC01BC829441B847FDBAD8BD56BD8B998EB320951340844049C1AB23 |
727CD4DB194B1398CA306DABE604136299867283E8505CAEEE7971658802901F |
0C544A71659694974CC45BB2992DDBBB0FDB67AF43F7D9EF773F7E3E5DACCDCC |
B4E576F42495612BB3CE7564B9B65FB554D1A8557CD773C4DCC9F6F776C70C71 |
312C3399DE562DAD2BF789591B4BA486F239CF365BDADB7395D2F6BEC1582A66 |
972BCDAE3DA56BF21B5B3F2CDA46DC1271EEE5DC6A4DC5AAAAE6473CD5A1EC4E |
95ED88AAA8234B2002B2EB11FFC65C6546125565E66B05C7AFB75DB6A6A7EC69 |
DB7EF16BBB58716281D7101B549954366FB87EBEB0AB9A00F22A5E7F2191C92C |
178F81FB28AB825CE2D8B6700A19A5815F48A02609D046BDAE48865FFDEA57EF |
BCF30E0C47D4A68C537A358E26800027D4155CBF2AB42C0D2C6559AF681D0EB9 |
29BAEEE1871FA66BC964F4FF00E539CEC6E364C9BDC9649161CDAA370D07DC1B |
B38F641DE49D9E1937343A1DA08080AB114D76F2C927DF7BEFBDC02F2A2DBCC3 |
4CA9EC28967A3329A26B02FD120DDDD664EEE442B26921768DB06B02741B2D6E |
7A004AAB8065E996BC649048263FFAE8A3801B21E0206FC496147383CF899C80 |
AC5087A3804C232254B8849C8100272439682633660524190B2CD96D0D350498 |
312C5F54CF61C0E484A08BA6971FE3D600B3E1C48E7CC9A545A92006883B8509 |
82A70C0CDB6EBBED8628194BED748A2E14BBC82588136335AFCCD8B9E79E8B0D |
099BFA90430E1151FEB7D4AE376802D8FB840563E5D3C9906FC515138F042C81 |
340EC42C58BA7429D9F130B7C80061FEE110D05A848DD5908783832F6F301BD0 |
1C18007B0842BE8FDFC570D4E890512F682A964B9572B9A5B9A95A2CD42A4E5C |
7490E33645634E4031A45A5B5A7BFBFBA64C9BB665DBD64AB53A736287932F8A |
8BDA69C5DB5C3FAECA73ADAE8A5B8D28CB364CC7F74464970DBF62CB1BAF39D3 |
BCBA6FD3B468BAB3AD7DE3D68F3ADAA7BDD7B363C8F23F740A89486C409445D0 |
4152891D71E59597DE7CC76DF1AA3739926DCA645EDDFE512C9D5255CF36ACA2 |
EFE46B66C5AF544553894ACDAAEC6E91447BA4E816F9181BDEC402F6D3A49810 |
9E9517E5EB57949F6B4E7AB377FC61755419AEF25CE55888B6DB11B94AC9D835 |
6267C2C7D99000969FFC092025FC572364DE641819140062F1205A28EB4744F0 |
9FFEF427C460102E1EE73962A9ABB06B2FA4F138FC6CE3478780560720FBA8A3 |
8E7AF1C51751BD14944C2A8DDA82920B75B66A67DF533793FFF72F645F514381 |
711F7AE8A1AFBEFA2AEC41F490429E5D4682080690EF7ABF46F20222D58CD947 |
6D14823C1D1D1D279C70C2030F3C002D2237882A2D390F0416341FB6BAD2D250 |
BEC6E1435F044948521D60426114B37C175A572650A618E05478737ABF04CAB5 |
638F3D76F6ECD980D5DE78E38DD8AED8E17221B911513314B80CA6C1DA856642 |
A05F569B4C172939C97BA3278A19BF420C10E5F5FC89119685C3DE91CFC55760 |
B34CAC48B91DC43AE56099D2D34E3B0DAB0D21357803871F7EF841071D74FFFD |
F78FC5DFC260086241F0E4101D824895F3CBCFCF3FFF7C3D6085E1B1341F6C28 |
A0AEA214463B11AC284C027B0EABBF01E9303263AC6786F4D611A80682FDCEBE |
750408912F0FF5953239F210019B86434935A02320B8B940EB825410E0553A39 |
237A19EA68905DCD1807AB3D16AD890F17B5C58297556E780166B42B99549E9F |
2F97445C6663C942A59888277BCBC5C9916844FC6ACF9111CC8935CDB053135D |
C32E575D65C76425881A70AA6525FF7915E595552D93686E9BDCF197B56B8ACA |
C9AA44349529C4A36B7A370F283F194BCA0D6F2DE52D65B4CF98FAEE868D9909 |
996A4F6E8A9D741DE743559D367DFAF60F65BDF9F2DB5242FEA7C4B8F78372E5 |
5A7C7224353DEAA5AA9EE5A99DBD76C8A4603F59A2EA5432AAD266A2B0B55CDC |
6664CD8E81EE41B7E64695198D596555AAD582FB6DCA740CE6BBD5AEBC680F89 |
48912D43F0B43C1AD91A8821334FA6F38820DA012C32BE95450BFA2C069174D6 |
93519F2322DE147A0C4B8EB5BF46668C99A0460059DECF9B374F7C025863818E |
D1F124679D75D64D37DDA4573CD300E795FE8E3E01A718A210E130E460314132 |
B0EBAEBB6ED5AA55207D431681E4EF2A6CC76C840DB3482A075023CA37C04484 |
E943BC1EF10476AF26AC88B7AC9B697A852A9E2E00C590FE32240A23B1EE456E |
32FA01F1CDCA00B00890941B55C772B6030F3CF0139FF884FC50068C0091BC81 |
71AD420D0FD103C708591C3AFBAA0E711159431221F698E4C8EFBEFBEE8B2FBE |
18A29934217206D1B2A79E7AEA15575CD1C0E9AFB46821F0AC9059720C829500 |
3CE87D3C5498FF6763D87150A4F08D40E641201D66067F42AD22518415CCE581 |
B17DFDEB5FBFEAAAABA8C6506D8F183D828A9819A65EF5718EB3201BF2046CA8 |
A0B79ED641E56ED838131EB7FCBB78F1E2EF7DEF7BC89DC89BAF7EF5AB2A547B |
2A8CEC31F5AD34D0373C7AD28C53FAC355C208E5FDE9A79F2E4F53EF223556E6 |
702C1469F01C5D473EED9CD2B56DD3D680AEDA554D8978AC124460B3A2252CBB |
AF5C98DC32E1A3FE9E5993A6440AC5FEC1BE8C1D4D3ACE24233EC177F68876A4 |
3D35E0546386658AB9ED072CD88E65140DA7ECD6648744E2B19AE9178A85782C |
B1BD9257A9E68F0A4345CBCFBBB5A41DF32DB3E03A05DF29197EDE519D11ABCB |
4A17CB79F17D3EF6C9C3DE7AEDCDD25021EF55B7C8392A414427AE322555A9A6 |
CA9119410B4AC71E1DEF5FF3A211F12FFC204C640C36F7FF29A70A7EC2F044B3 |
9989A678D5A854F3AE8C3B60CAB6951137DCD12D95719607B6A118408F3CF288 |
3C38D436CAEE40E93E4C101693B3FD8911D6E103BF803DA2F7F0D02103235F28 |
2080FB0EA43BDCCD71F6D7A8285215663868D3B00C68D829C19A83C94CF6082C |
7D0817D2DDA8B07C06EB155DD13926EC1C18C5CC5BC2C0019606A0259DC59B5D |
A48DF005C83CE0ED2C1162408D776BD4393098BA10E7EBE8A38F7EF0C10755DD |
65839B26F7C6CA29D688EA907F96FFD013A264811C6492504FD0215A22778A1E |
E5B4FE282620E960FD352439C1F28103A64D9BB675EB5619E4673FFB5931F4E0 |
70C8133AE288234E3EF964DC0516CDFCF9F3DF59B326B0D4529182B8F266A46E |
0519E9A66C7E7050F95E6B6B737F5F9F690799F0622127BB33158B544AB5AED6 |
586F5F2567A96CC6CA0D88CC329B524DF9826853D73454D51FB34B25874A6B5D |
EDBA05406464C3F9B14FBEFBDDEFCA8E924F40E38CF23150443047AA777054A1 |
A68158677A8DC28E7FFA61D92D4B78E45F48CC4B2EB964C58A15D8BD6C4F8484 |
3313CBA45C1CEB7E0166E5B4C05E73C3FECFDC72D0B8A00400792AFB21738FC8 |
DDEDBBEFBE6BD6ACF1432EB0864C15AE48A410DA7002156684545D6207C80402 |
BC88B99263C4A35AB972257D0E0E0C9E442C11177FCAB48C8869B955474C12D1 |
549326B4071C50B92111012DE9745F3EDF99CE16F343562CD254516911A786DD |
15894D73AD94EB56828CAF97B0935634922BE6A256349D4896F305197A8FEA8F |
AA9418F5F1483A93697ABF6F9BD5DCF2C1C08E52C22A96CA93A29962B532A0DC |
7CC44FB4B66CD8DEDB2AEE483C552DCBC6340B86199FD8B1BD67B0E894AB56A0 |
B1AACA97275D279C9035AB0CCF6F3E3453A8166D91BDE96859AC23A71C94D319 |
2ADA636553CD6EC9DAB27687929359462A912C0C16B2A9E17A58AFDE980FC277 |
9CE80A75300C4A884BF8A368BCC102405A27840822A607413A1667AD0899BDF6 |
DAEBA5975E127F11B00879890978CE39E7E054A86D02F258E71CD46B0CC7D98C |
90CFA05363698E0AD198E2CA9F79E699DC533482D9C2CB207B1A335410C4E241 |
BCF7DE7B48588B0989C423FC23C649B0D9642FD178947959B66C99D8F24C7C03 |
1523774EDFC40BBB47310AEF692D33F59008E4290D2B6C75DA3814B5EC10ADEA |
B102B984EC5599773906D5B940E3901AF3CAFA8B0813B93AE24BFBEDB7DFA73E |
F5A95B6FBD7564792DE79A928E1D6891EE8374103171C10517C85684CF88E22F |
4E970AA1B1D8CC721EB9DCD4A953C19F2A33FCCB5FFE52B48855E76E4C06D355 |
3222D1C0F0AA2B63E5545ADB824D5B2E954429C5A2C38102DF0B2630914CD73D |
A761A49D3C0CDFB3E4A86A15017DAF1EA4F59A9BB3107CA36A02406CE52EE43D |
1EDF382B7B573501CC059937F6E034EA5D7D4456AE5FBF1EED7190E1077C5B3E |
D1B98275C3BC4113181AB91B5D01E803FC56BE45D44B960A0A2688310509C470 |
0CBD5E3832D6FDCAB580A192652F87119D8561135FC792636E4511FAAB57AFF6 |
77EE87013A2F3D95C50D8FC52F330FC643B9907842A2C9F45C3AAE827A1A3205 |
A8D00F664681A94BE4B1E3C984980E2DADCD03BD03314B59AE8A21FB1D89C522 |
56369D712B4191446B5A64E8502C1E6DAE9A59DF4EC5A2A209A67A9648A9B25F |
F1445229D9B9918A53B18256F6A6A76A6DC9D6C1F260CDB2326D6D1BB66DF194 |
D5AD8A2A92A9A5131B07B737D971AF5AAB2ACF6E6ADE5C18E877BC4C2A96AAAA |
B469D52A45B14CDC44CA4DA7BA07F2A55AA56C29C775AB41415BA009B0FD4C5F |
D55A83A989B7C49A2634F9965BF36A0185B6EFED7873C8B054407F2A73E918CA |
370D6865DB84D4D65B07ABD09F1EF5F9C20775C36E83301A103FD7FD661CC388 |
B4F8E564411F9FC98E1200E93A4806D2EDE0302EE0860A447DB58F7A7E842EF4 |
8A4582DA91CB9437E243CBD5659037DE78A3086A71A603CA038C49EE448ED029 |
4F95E65C4C9A34499C039869D01372CF720C1C67B058430802D68DA954750E55 |
067F21D9C904CB0DAFD3DD40EECBE560CB93A0036B9DDBDE0C7B094079888E39 |
F1C4136FBEF96615521440FFA360951E19A686491191777251B648541A0D085B |
6362A8BA1AE014B3AF248BD7D8EC457E2E239719837AC7E68487818A7F39C9A3 |
8F3EFAE52F7F194FEEF39FFFBCCC3F28CFE4B75BB66C79E6996754AD148B2776 |
F40E24521911FB5F3BFFC29EFEA15CB1F89BE79E0E74831841D100AB932FD41B |
20679ACAB9C1608C96E978662491B2E3A9E2C090326D55CB9BB62F1E94673A01 |
EA0F2BCD0836CC589A008B4146F5F0C30FCB138738FE7BF904F01D3181279D74 |
923807A07F612986086B99313D0CCAF4804E9AAB6F063F64AA20B5145848E59C |
FF9FB5F700B7AC2CCF86DFD5F6DAF5F473A61798A117156C115B623421620121 |
91A051312222D2150121A022022223204D0D56D448B000FA0958F83F63C1A0A8 |
B40C300CD3CF9C7E765FF5BFDF759FF5F8CE993927F9AF3FFBE21AF6D97BEDB5 |
DEF2BC4F7FEE071A37E81E3FA7D79EE1FDCB2EBB0CD442271E2E23FC1F941E62 |
02731F17E214589033CF3CF3DBDFFE36912C994DC87ECB4CD612F54D19E5CAB8 |
E6D9679FA5E7739E30309B0551EB1489228799BA210D0B5C4F08000A6C13FC80 |
916A42BF50A934BD4F4EFE0207C7FA8E2C191EDB350685A3D7F7C14B47FAFAB7 |
EFDC814BCB5910189F0FD77A2A95D2CE5DA3C3B846F935AFB8DC2FAD4EDD320E |
7E82D364B7C34EB150D46A596A851D0D3AB4FFF2359DB8FBD4E8F396EDCF26DD |
FE9E25AB0F3BE4FF3CF2AB5D4103D6EB013D0371B33D1DB7ED5265CA8A475B9D |
52C15A5EEC4B1A4D1D75568E3F3CBC3BE84E343ADD386A5B318611679A0BE148 |
29096CAB1824810BE158F13B612BEE86D9154A85BA537386BBE4149C621807F8 |
C5EA952B9FDDF60CC3A4F4EF490BDB8520862426CC501CE98AFB22D5F8923042 |
89ABF262ACE38E3BEE81071E602EC3427E7C4263D14541DF91C800763DA1C7E5 |
820B2EB8F5D65BE9C19E478D565E9EB6CFFB9BCA101BC050F316980A71AD8BDD |
4FA66D890B8571572AE052E343BF10FE7CD7BBDE75D75D7791B69843C203392F |
64A772578C084F1C1B703D327D5030F823BDB7F41749333F7AD6D8974A62C882 |
CE362FFD5CE5899871DE23570AF0B8C1C2BF88844AFC192E84898C44FA10AF11 |
E6429C7DFA7CA941587BE26D48F9D50D37DC70FAE9A7439CE2E6586EDC73EDDA |
B5501545864BEEB060E08815C928059E2BBD6E5EF5AA57BDF295AFE464F17470 |
25AC9E363826C7B180CC50BCF787F7EBC56FCF054B28875CBFE8F995F1A9E9C1 |
1E0D818051EDD8B12B6342AE6E54EE15AA49D8EA34E6407D2D8D3190F0082CEC |
1DA2BC6734D80422FDDF9204383FBB76ED62B48D317C592B7916A3E2490E974D |
058D16BAD90652E52A92703AAAF6E092D421C4AF487D8DD42E351F58DB4F7FFA |
D3AC8B56464DF8221D93C4E78B6B0836874F206C700A4C6839EA2BAC5CC1329E |
71C6191B366C80E4FBDEF7BEC72882641F0822A96334A2A1545386BBDF5C1F7A |
39F02B522CEE206D8504FA9B7E24C93FA60B8B7ECBE999E9B3CE3EFB6B5FFB0A |
6C82F56B576DDDBCB5E6FB65DB9D6E37FB7CBFBFB7AFDB6E160B7E0B5A46B753 |
759DE1A4D063178AAE33E278AB63A71447CDA8957A7E10E91C591D4FB6ECA0D1 |
0AE3CE8ABEA5E3D39333AA13832E6B3DD3EDF68B5E75CC9D0FDC37AD424B5723 |
AB25E57E70F9C9349C4A83B4E8CFD4DBABAABD6163B6AA3CDB85A859F2C4E8CE |
A96E1829ABA5421AB0444CB6326E0FF9544EFBBAD957B6E774C27646D4BA71B2 |
6FE9E4CE200E71BDE77890049552E5A57FF1D29FFF3F3F332BF5B8718BE4EAC0 |
9AFFF9CF7F4E78706EA2F84B08B5CB7C161C7962564A5F52D19EB9E60B491A72 |
6A28BBFFF00FFF70DB6DB7A579D132555B91E80426A00C90247EF31C2D828448 |
B2C78B893F843F605E250F9AA958883CB0F860FC8D03490295081B8BB0B00A38 |
2A38BAC4D910247D21653C836780FA14B33F31D055AB5661A54C8400BC5EF7BA |
D73DF5D4539007F34C219AEA1015509D88BB72E49147FEF18F7F14362D8A3963 |
EE5C38FC8A12487C4ADCB679D0A4B2076256E3E998149541EA6266772D81E8E1 |
952209286F0450DE14FB389318097434DE847D85300C4A4A2E08BBF770E24CE0 |
91347C9005D393B168F8508BBD52DFED37DFB8E599277A8A6EB9B7DADCBDFBCE |
3BEF847A391D1606FA7BBF74DBCDAD6643F709F78B8E57C2BF519C547CEFE73F |
7DB0003A286065F411E946CAD666BBEDD99EB6E6955B2D0E743AFA20056AD742 |
9C5A5A6CF3CC488BB4FF2D4920CA2FFE3DF7DC736179D00263D8893F17E03C27 |
6FCA41C78EDC7F9EB3CEDC175A72AC52B6F34672FC8A499F989D69AE9154A45B |
D1E27E5EAADBE002D0CA25C75FE506B4CA9D54D4002872B0EF38725C46217B2B |
EF2D4AF1AFF6CCCB10CD46FCC2F8D511471C8183CDBC09D0C96B5FFB5A28679C |
024F35437A926D223822745D5287BBEAAAAB2EB9F4637A0C693A3234D89C998E |
837804C6CAF474D9F18607FBB516D9ED0E56CA50B1A1F762D596699BA05054CE |
72B778B05FEDB3EC76DA9DC96C0EDBD5ECA2E4165C65D58399B22E02481DBFDC |
F19C461CED6A8F0F0EAD7C6A7C47CB5543D5DAD4F4F4AA721F94D286A79E9D9E |
AAF655204BEC465C54F188D76BFB5EDCDFF3FB6DCF4FA471AA9CAE8AA1BEA419 |
A7CFFEA75804E7AB9EAEEADA9AA2ED6E982580145C2B493166CF75A224C46175 |
3CA8FC9A2A0E3AF4C0679FDA2419CF2C845C5C12882B924E6F2AE902332CE9FC |
2AD323E99D66CA86B4A7C59DCF3EFB6C817CDFFB5CB0BF211D35645CDC3E5144 |
589328D839740F328B44D2FA1792041213C21BE1C0142D3422211EB66CD96266 |
1F8159E970AFB85C458F868273DE79E75D74D145983F519A551EA4A52312B766 |
F98C32B2CEE548F025DD3EA5F520531B59CA44BAA497935BC2BDA1DB5DE0CC54 |
0E7C4DE216B6C2440B95D718639C1C8F1C334C010AE09BDFFC6658F1F8441A86 |
B0064D72FC65D524D19EDC4152924C17334FA61C4E5E09B3802E14A260E27A33 |
C8A98C8C31FE29D99392DD289B7DCC31C7604B58F2ADF3730ABD49D879D31B5E |
1B771ACB8607962E5FF1FB3FFCA9D5EE3C335A8F3ACDDB6EDA30D053C1902667 |
EAAE066689B2EE20899786567666FCA255EF40AEABD8D3A7A8B7A73C35AE73B1 |
7DD70B2318C85A48EC9353A719BAF2C73FFE71D8A7623CCE03D6FFFF2309084A |
C19A32AEAA996425653BB28F4CC7C23292F1B1FE40B232CC67518F26BF631B4B |
5C7CD24927FDF8C73FC66A635F7062299E09FE432EFC8B5FFC0277C66F59D182 |
FBD03FB04844D16C6E418EC02998FE59211B5605731DE841222296FC56BA4C2B |
034F65EF733E2FF4C7B83A551F9601D95973666540DB525DA529A0F2D26EADF3 |
4D4D6229DAED667DBADE53F6BBAD6ED9757BFDD26CB35EC8C47F5F4F6DF7C464 |
D92F544AFEFA75FB0F876EA11976EAB33DAD6075689583B0913612B782214649 |
3C9B34FADC9EC1FE8176BDA1D3526D6722C4B3ED2DC1C4506578B2554F7B4ACF |
CE4C0D5A6A4975A0E214B64DEF4AFCD26EA8F3C5420C15AB1D0D2B7F49AD2FB1 |
AD19473D36393AA16303766025993F4877E081D20FAA765295B5D0290669ECF9 |
6EEAD841A73597434AFA8244483229EBCD79415DDF899A310372D22B7BF19A5E |
B651E23592F662672D9204D80AF4433BE0B8E38EFBC637BE41E808A27571D325 |
EF60EF17B58D792C0264296AEBBA75EBC0B86EBCF1466679AACCDD42A78899A1 |
B3D0CB3C71E298C1F431C88BB317398F34970587A41A3A07582AF54750767029 |
DE5306523D04B37BDFFBDEC79635201430AC77BFFBDDD75D771D9E87BBDC7FFF |
FD781E212BD800192360C71B86015899292C92D469265DA85C21928C080A18F1 |
AA4B10469CA72209F009BD757C84246F9988F6CA50D95416BEC7DDF85B928809 |
D36F5A1292BA6A860AE4646222F856007C4C8962E5FD4599DFC92825B363CDFA |
43BA17711F70B737BEF18D947084B5996D75ED34E9B49BC71F7FFC969D636B0F |
79E103BFF86D64796E307BF8C107B42676149DB4E85ADD08D370EEFEFE0F8276 |
CB75ACBEAA06890B53BB6B9742BBE89521DDB7779A2A6A7B5BFE6BB34A835225 |
6AB7A65C5F45CD0551A605C907CB78F4D14783997EF4A31FFD5FB4097801FD18 |
14FC5C4912A81891E0C8AF79CD6BBEFFFDEF538182B07FECB1C744B9937E796A |
CF88B144E6494BD84DB67F611C82D62D9D75A40D6927272511B41E16D2B9F02D |
E316A4403108045EDBCC6BA2614DC9C12A01163C338E2D991B669A90F9739ADD |
A4349090CC9DCB45F80A5CF9E10F7FF8F6DB6FC72CF015CBAAC57F4572322581 |
7EEEE0C0D4E4E4EA35AB766DDF9184F16AA884304FA7663B2AEEF1FD430F3DF4 |
A8A35E78F7DD774F4FCD8499436699B2FB940B3B73852A1C69F50CD96E27ED36 |
2D1B722F5249236DF597072009340349929DB3D32D9538BDB56D33E3D54ACF68 |
7312DB3C1DB4A34E77FDD092BE4235B6D59FB63DD72D7BB34117EA08A4D67EB5 |
E19AE5B5A3E0F9767DA78A46B184B8B94A2CC74AED8CEA34D4296D022B4A2D6D |
DB160A966BD16A2CD899F7DF2B631271D4216C8246DAD62E51FC283123C69404 |
8BECAFB917729009FF8505BFFEFAEB994CC1A441F6EB96FC519C771C643A1816 |
920474C213F2994E481663E2B674E5D3823175509C44BA3DC594591C79D0CA91 |
FF1925121737D57AE625823C44CBC731D49280B392F45233DF80BCC044D493E5 |
93D6862474492D17173CA8F3DA6BAF65B45A6556B9645BD2052F1133E1EC7447 |
C8111567A8000A095BB18C4A194A4BA9DB16912678443CBA2CF292E45C334989 |
1E58C90061DA3E9F45AE6DD6F493D750E0915D7EF0831FBCE5965BE8D6A7B812 |
939CFDA3059B9A252424CA3DFAC6E521A0638F3D1692981D13C1E58B956A3788 |
A6DBF1317FF3D6FFFBA7CDDB6613BBD23FD27CFAC883F66B8E6F7FE277BF59BD |
6CE8B1279FF28B65B07E2FD2CEA559E8656EC9EE199E08FD838E7ED57833EA6D |
AEB055A5C71F99199FE9EF8195B3F1BE1FDF9AB4B7E0082FC4A905678DD09B8B |
EB38FF5F258198C0B4E7187092827B3BEF01C9C36056115A3902040339C22ED5 |
9E59A434DDC06419BE12533ACD3150F12F74AE871F7E18C780C91BA43A025AC8 |
762F52E963EE29B51948AC9FFEF4A726E424EB4E79CEA94EB17B9DCA33C455D6 |
3F0386ACDCCDC97BD4CCAB689107D1BD2B2D10B83552100A223CFFFCF3B14DAC |
AB2056AEE027CAA1D60CA89021E9EB2636AA5C709D488B2F9D3CDAD3DF68CE42 |
ED7CD1A107FFFE89A7467A6BB01BDA61B2D2F6FA13D74BA355CA3B4C5587B5EB |
A6DB566EA8749667470525AF5228FA53F549306CD7E99D4983C9A413D9D66CD2 |
EC29F78DB5EB5E4FA5CF2F8EEFDE7DE8B235C79FF4F7377EFD5F9F9B9E984954 |
4FC971DBF6414B57D8ED70B6DDDC184C371C6F67AC1B68C556A213479D39BF19 |
2480AB5343210B7CF07B6C6A9CE4ACC376520D8B5DB255E458CA7355100659AF |
330F868457B545C9A39E416EBB4896301B6D515B35718559414210727134C579 |
1755AAB012975A3CA26B12B6A40949A625DD06FC507AB80A4482CA3D280B8D9F |
E3E448CC0C1D13EA26CD7B695035C1A4E6E2044CD3A434A37B917A1399B594CB |
4B492D6991EB25EAB604E258FB40C7024B30985E4D3A3EF5D453BFF6B5AF9127 |
5201E451112D9E968479DAB9D6C2384CC40516A9924770AAB806179C73CE39D7 |
5C730DC3861203E03299BA1BB99519AB4C73683C95E3E798E162F1DE62D1581B |
C57DA2A23707F49A2645B6BC48D3C1919189B1DDD5BE3EDF724E38E1842F7CE1 |
0B92ECF1E31FFF18CBCB434B89F59DEF7C87BBA225A5DB5B499A8E15FFE7D3BB |
FA0FFFCB7AE88CF8C1A7CF7F4FAF3D679F523781CD818742EE4A310B419219D5 |
D715864B0E5D32F042152E1D1C5836353DAAD2829BAEF29D35DFFFB7C374FD66 |
D255294E85AD12DB776B8E55ECA6DA43427F17B1A3E7D2EDEB730E0DC7D7874D |
E77FC35AF774FD44B735830F4199BA0579763C755C3A985B4C0A4801D4CDD8B4 |
76CABFFDED6F87E299579944BEEEAC1EE89E8269862A51AD31721BC450F7BC88 |
E8437D7DB8E12C2C367D0C40DC73E9F35A5D0AA25A4FB53EDB2815E7CA4484BA |
044AC44CA4111142671103BFB2CB26BE56BA67C5D98855FCC475B79CF6910F26 |
AAAEBD106D2C421163FEC4BF5C74DD75574F4F778A255DBD147494EBF8110EAC |
C2D4342D6B5656A8A864D68AD36A6AC565ED2CE6C9975CB54590C52443547A70 |
C2B485457EF3CD37136AC9CAEB89181558A86F41560B46887FDD01C6B3D592C1 |
C1154B963DFFD493E5D4E9F78BF556BD88F318693133D3EC82FBE26855526B24 |
75D6A8C2FE56697FA732E8149E0D2652179ABBAA075DC7AFCC765BBDD57EAD1B |
BBE1F3ADF19523AB76ECDEBEA6B24CB5A376D28E9433E1059167B7DCB4AE5179 |
022FB27A55A1E6F94BFA964C479DED416347B73D1107ED34EB2C695927BFFB9D |
5FFEF2977546BF4E906BF8061693B8D4E6B63E3B3202D8C7AFA48F85A92B5022 |
2E8EE6EDE47DC1F8A7407D60D94F3FFDF40D1B36B00246E57EEFCB2FBFFC939F |
FC24358C3447225844D2C86068ED31AA6FF6D3DEE7C562384A48695E76A9A089 |
087A18C31BD75D771D4C197C4234B9EDDBB753CCFCE55FFEE54F7EF21391403A |
2E6866C80AB60FF35BC4CFC3BC343C839DB62C03AD13237BE10B5FF8BBDFFD8E |
F4C70EE3CC5527ED9A0973BC7EDDBA7584B424E94BDB1DC9EF16D2A7438D920D |
74CF888DF03B4177C1827EE8431FFACC673E23CD69B9463CE4B0454E3BEDB48B |
2FBED844584B0D642EEE1FC16A2467863434AF138865BCA4E2833607FE6423CF |
D9E919E8477361004BBDE39DEFBCFFC10777EFDC09D68617A6C041C2A8BAE38E |
3BF068E2BBE10EBC0FB303F57EFBB5411FD4DD5A79E84B46D580552C0D7B712D |
1863A62F453D56861D02A6A6A6F0067B479C67C9C2C47DC6D2AD456F457DCA9B |
9A9EE81FD4F2727ADC7EF8979BFA8B6BC140BEF4956BD2689BB29BA58A0E3287 |
11D4349D147BF2C927834D1F79E491FFF11FFF314721B513CFB8E0DCD7BFE115 |
F546338CBB434303382BB3339AC24696F4A8588D8D4DFA5EA9522E3D70FF2F6F |
BE6E83DFFD01F118A48A3857B709E093BEE845BAB9232859B3A444150B3E737F |
99B3418834CFF51CDFC364BC4281D5CE98B39351DADAB5AB376E7C5AB30D2733 |
3BB213E115DCB03B27BDD6AF5FCFFA156A0398459CBFE6950A722B412A84A29A |
D7A56E9E2488ED5895F63FE3A3371DF5B2578C0CF6E2B93BC676F6ADF0EC8921 |
50965F54D3D3F566B3BD62F948ABA91EFAF9235FBCF684A0B5C577A18E0C4ECE |
3495D5191CE8698C37BA3AE34509CA379F482FE5E2EC43EA6CF4CA67953DA6C3 |
8D65538B2045CE9304E02BBDE5E2606FFFF4CE9D3DCA1D2896EA9DBAE5179B61 |
4727E77475C74B68A155C86F65C12658A3CAABEDE28053DCAD1ADD286CA46D57 |
152328EAE5D2646BA6A57078ADFDF63FF0A5AF7EF5430FFDDFB12D3B5B71BDA8 |
2AD5DEFED170AA9344ED386C653AA29F3A25C7837A5428F54E87ED5D41732289 |
1B76DA853590A8388D0F7FC10B1EFDC3A32000AC3E5404C7D0BEC18BB1BF74C7 |
E11310181601E4C17824E9DFC95BFB8ABB424A344C9D60A17566DC454A31F862 |
232CA659B38D0AEE8C0FD99095FE030C00ACE6AAABAE327355E6DD1F3FC71B41 |
FC34BDA37BBF04509D288778CFE4258C84D3B78C16230261249E798C070FE2D2 |
916B8976AE7273644E7C92E7B20989CAB14F257B896C11974A205B7822CD6D3C |
F28D6F7CE37DF7DDC7C6E2D80C8685A9A1D0C945F39F0E1FFC841AA2A00BE06E |
1FF9C84720B8F8437EA5B21E8D780FBBFB99679EA145A232AB9F92095FDD74D3 |
4D679C71C6DAB56B59AC4B99C131D32B4512916CF4BD5B7D928F8BF347CA89E9 |
3813A3615E4538D35488444D2B47BA6EA9CCAFAAB2144D2D57C2B9D090E3B971 |
1889D3C3CEFB7DE2CFD7BFFEF5071D74109682309314ECBAB54E5F4F4975776F |
DBEC0FAC78E0918DCD4EF493BBBF164F3EEF0FAFC57D98ED8AE948380B7BB479 |
F36656BBD060A2544ED4EC8E6D8D4A69288A5B41BCFB9BDFFAB26D553C7B70DB |
D4F3939313933B211EFAA676CFF6D696CED63B3DA5C156B4190390AC6AAE1E6E |
7BFF0F7F75F89187D67A3257AD02338AEBDD7AC5AF242AD1ED0EE3B4E094609A |
A789DBEDA8877FFDFBD7BCEE283B6F374455970A44B95C6CB5F027B42D9044A0 |
1B257A5A7DB355D6D125E3E82B96AF60BB1BFC697B732C8066C1D0F030ABCFDE |
F18E7FBCFDF6DB313CECC273CF61E2DAE9049BC02FFCB947B930472E91EC3BB5 |
162B4780905270A9ED5AC42678C5EB5EFDD18FDD74CCAB0ED591F899B402698F |
77712BAD9583B055F032431E3A7B987A6E09B3F9E1AF77BDE5B5073871435B31 |
56C1AB5A51378803776050279231B1826945922EB51007313B3C9BA96E56066F |
B965CB16DE61F1CA234BC75F997FA2D224C59F054B558B25A7DDEE758B038562 |
A3D50C5DAB95049EE74601E6A13C6891A9EA55D6B0F2965985656EA9C7F1DB81 |
8E430C8F0C8E4F4ED45BB3AE57C06DFB0607C666A676B76707A07EEE1A1DEC19 |
484076114C2315C41AD930628286E516BCA2E568D37C1C041A76A6D3B09EF593 |
8C1C5881090C415A87057DDBCCDB93B18524EF09AAB2EC29EC143803F3DDB183 |
D0CD3FF1894FB03A4A3002541EF8110C63138F611FEB633405E34A828DE01158 |
5E69A8C5E826135B98BC4BCC479515BB388BF663373D9966D9E342D7BFFBDDEF |
7EF8E1879F78E209BAFEE735D7A4EE6FFA69D8765E9C42F4498ACF93B1008E90 |
182D9416DA26300F00260C8AA4EF051FC2F6FCB77FFB37723D3BEB68CF90AC14 |
C2B07A859939FC93F57864E2581DC1A4A49A46A72A149937BDE94D5FFFFAD7D3 |
BC4D0D2FC0FBBDB7479A75D0BF4C5D9B09EF14771254A0BE4F50339620116680 |
3F915C265941D3ECA2B39515C826E7A2E7CE317A99C9EAE3A1A79C72CA77BFFB |
5DF610B6F36E913D455DA6A15DB1DD8E9B793C5CC70DE3089F80979572A86D5C |
5AC97ACC4268FCF55FFF35F38E985B49E98DCB26773EBF76D5F256A85A6961F7 |
D878296DF717E29D6D9D728A9DA2D38C2D16F05B50E4A38F3EAA327D075366AD |
AC46D4687961D72997FA9AADC95235FAC31FFFB3E095671ADDF290FBAE77BFF3 |
2B77DCE15ACECC4CDD4A0A8E5DD41140BB6EA65588C9F8C14F3EF8F297BFB46F |
B0363B3B6381E127984D50EDA969469942119EA9D57A93005A45A9E879F7DCF3 |
C02D97BD81F92DA2853116CD345F7173D3C8C55358AC8BC507791C7DF4D1A07E |
E8165A725BCACD103E689E6A04CD011DF05CB77EFDB3596D9726C52C2D2D8E74 |
3A94EFFDB91BC4CB5FFEF25FFFFAD7B8E0D24B2FBDFAEAABE779DE45B4B3D25B |
507F5981BC50A7FB245E7BE9E5B71FF8F297DBBDA103D28BDC46D0290D152A33 |
3570BC249D4B0B0E833489AD42A174FF8FBEFFA5CF7DB81C6C77BA69236C278E |
3AFA652FDEF2ECC4E8E8732A4FBD1356B5481F5DF106883A423D0C07168BF3E2 |
17BFF891471E214682CA8B8616910419195B76E6D1D399668E5B4B55CD29D46C |
4DD85D2BE9DA59B573D697D2556929B12B1A12D4EEB7BC3ECFAF388537BEE495 |
CF3FB769E5F2A53FFFCD4F068A7DD39D299DBBA692D2C8D28DBBB7459E5B0FA3 |
A13ECD1FEBA10EA73A4197250565586E7E19E4D656294C844D9D7690C4186BE0 |
D8D09522CBE9264980AD4C9372290387C882ED9D602E7048154A626CCAE8FC0E |
B2F9DDEF7E278C95B253FAB9923BB3AD589AC106EF737D7837935F83B72E5FBE |
9C19ED2033D6EEF1C0D24061FE3DB79278628BA0468B9B4174381C7908F26772 |
62DEFBFA79396984B4A3F356C49B597D22D0938C1841CF60F68D48C77928C2E4 |
7296D47672096EB9E51628DAE47DB8E8739FFBDCB9E79E4B6F8CCA95E8BD6356 |
F3FA47E2D9EC34C0C22EFC4B7A6576A6382EC8D3194C666A3FF1EE191FC664F0 |
433038C9E827D3C7C67CE8431F82F017BA07EFC0B7EC0484334CC984615F7FFD |
F5471D7514DE0B3CC87EFBED8715A723484C3FEE199EC539BEE005DA6B616E83 |
197023B3E06BFDFAF560BE12B4E08A6339FCACE846BBE9DBADA2AF9954A952C6 |
2718E796AC22514711DAEDF5071CF0FCF3CF875D0DC776CC31C730687FEFBDF7 |
CE39792DEFB5AF7DF5433FFBC9E0D0D0B2556B87FAFBA6C7769C7DC66971A1C6 |
8C05ED31CFD2DD4082EF7DEF7B390C0999B26E301B6DA4693EC5278562090659 |
13EF33FA59D6DF57ED0433ADD6388E706FBF46A6989E9973F4AF58B1824D0EC4 |
C87DD3593F01AF8FA344D985BEBEC1208CBBDD90FB95199BADA1C1FEC9C9B1B0 |
DB5CBE62D9E38FFFE93FBE7E120D4D89C69B089AA2DD9818A29207496D650E00 |
AED5F432F3B9050336CB50803028654C4119ED9DC9C1755F56CB667C8C59130C |
F19D7EFAE9B0201792042A331D3812C9F05BC826F897AFDFF8C4C692EDBEA439 |
E3EFBF74FDAECDE3ABD70E3EBFEB51E5F9D55A250CBB4CCE2B148ACD46ABD309 |
FA4BCFDC7EC5FB5C6BDC8953DBF1022B046F1DE85BD96C8E89F68A7F3154AA2C |
FFAD2E291A18DF33AF81454FA6EF7871EF507681EE4FE0A8D4CD3A0DF4A556C5 |
72FD587FD582A5E466715AFADCB03ECA2A29BBA4AC22FEB3B515774CDF7EA363 |
3B0E59BBFE0F9B1F5EEB2FEF749B591267F44CD228D57A4AC3839B77EC6877BA |
D8ECC8B69B49D2A36580532D148B8552EA58F5389A0CDB8DA8BB5D170F684089 |
D072B0A32DC852706D4B41EDAA556BF546DD76B4FFA4D96E09ABA1DA4AF0AEDD |
BB77330B8B704C02D128C54071DE769B9A13BDF9F38A9CE6495CE9E1C8B515EC |
746C2B38CF97BFFC65B6FF6581D8BBDEF52E7C42042162496137F1434914DEFB |
FEE285168CA345F68B412CEE290B1158CA2E7391DC486652305F918A35FE64A3 |
111E378C9679D28C4C58590126FDD55A120879D146E66901C7C4EF99C643C923 |
4A37BD6FDC0C7C051B0D8776EDDAB538F3EC9D42F7BD80DE611090D5994738E1 |
0E415DA5C79CE846B8153F67E19532BC342AC7689446C48216473307CC17D360 |
2E145F9238C10A207AA8E9FEC2CDA14D7FFBDBDFE6229A28312A537E593778EC |
B1C7FEE8473FD276EBF838ED44F10E9912584AAEB8BBD46AB5C3C7B2C1BC7AFB |
74E3D942D1A70601C5B6502A05D05C2C6BBF75EB9E7BE69952B50A1AFAD297BE |
34D8DB4788706A2BECD7A855548DF1952C5DBD7ACDAA15055B9DF8B6E3699092 |
CD61E46C9072F9E597937F49171476AF6466A4563A82D6EA35BDCD461B1A4CB3 |
AE2B0CC0A460A6C7091407D5A82BCFB5962D5DB365CBA8C668B18A51BA476B01 |
2B6FA212BFE8EDAF3CE6352B96EFBF6B74AAD588FBFA87F0310BC221E1A228E8 |
769A38CB4383B5B1F16D0F7DF98B6AF25794DC9814DDD9B96A632B230582FC57 |
4777E340541B5033F694FB227E1E0DD43E369675CF4D97AF58B163DBCE430F3B |
ECB9E79E6BB75AD55AAD91B151186BB695D22D468840D2B0B4A990D328DE2182 |
D74AC9A1345F5B4812E838811A78FB2537CC287BD774BDD4B77C26EAA495706D |
7744F7950B3B94E8DA90551AAFF89ECB4E53D68E5A3168B7C26ACFE04C67A2EC |
175BF5D871D30D1B369C79E699B8F30D37DC70D6596789F9BB4F8E601965952C |
5B63BC91879C674D7AE02C8246E0DA4E94CCB9437596A5956567A66A895BA828 |
D789828253A8C7DDB4A0291C62C3819CB0EC92651753DBD5EC28EB0D655B6B62 |
AFD72DAD5FBEA23D391DB7DB9EAB66BA501AD2319D569482D03B2AF5955E0A28 |
FBAD30EC2FFA05D8C885220EF66CD89DE83627C3B0994104793A47C88913BB11 |
452D0D6D6DC58E0599A16552BB0521A10DFDD61C589964FD1D72C821071C70C0 |
FDF7DF8FE95375907A1113A2D85C407AE4E97D5D284E4046C9AC4895F915F839 |
C983CDA8ADBC8784327214797EF993FF365CCC177DB92AB3E1168A2B702EBC39 |
7505B0BE75EBD6C1FAA15D48FE6CA668337AC1B03618269D0DF8E4B8E38EBBE7 |
9E7BF020CA48723C2CDD9C2420C7944C29A643F1917C3C2D326E80245F8B50A5 |
BF92D289AE7F225508CE333EA7B4A03773EBD6ADFCA1A03FCAF648E5BDCA545A |
13F7952A0FBB806200F3CAD6787AE90B63AAAC1853A66A207B26EE17715E4BE1 |
ABCAD1BBE4E7BCD53CBAE1A2B34E8A2E7B5021588FF6CD25C99AB56BFFE66FFE |
069A828685C37A66BE2CB29E8E110F3CE0E08331A9348C285138000966B89E7F |
F80B8F2A577BE2A0FD0F27BC09C2A054EBED264ED0AA3381EA939FFC245BFE62 |
0C64B2E245E57291946D1BC6414359114C8BA9C946AC95BE6468B8DFB5C3D1D1 |
B175FBAF7B7EEB36C6915821099D8DA395C4212ED12B5F72C4134F3CD56842D8 |
5454EA687F97AB196FE657813AEFF85EA1D999B555E2D820717BAA35A7776046 |
AC7A67E628084719B116CE5A5FE9A82037D86DD6FE44919D593CF4A1835DEA62 |
B76673F59A35A0A234B148755A42479197D180DEFDD65C762C1E01C3F1C61B6F |
A4D663E52DE0E7458C459F2259EEBFFFFE20B9279F7C52424AF324C150B23E2D |
F6ED6E6F5FBEDA6B8C6D8BDA6ECD5E1AA4F174BA0DF61FE51683757A5C71A40A |
CBD27067A9A03A5DF05B4F6760266AEDD08ACD63DBF1201C1306395970EE2CDC |
EB4D62833266AC0C2D66522FE999D68C69FECF7B653E9C749F92A0D7F6DD40BB |
EFC6DAB356C1E986BA7858B305CBA9584E41D9569C841A152E89ACB496A4E5CC |
4A5851EC5FD2DBB762C992DDE363BB77EFF27B8BBBEA539341BBE8579CC4EE84 |
6D1CBB725F5FAA411093669A40704E479D7A9CB433DDBFE63878BA955A516C35 |
55DC50294E4868A5652FC3258B42D8043A15258E489334E8A50C18DC802DF978 |
5459BD4F87AD74941346C4409DCA82430BD90426E4A7CABD20D4FCE8F3100C4D |
42AB819FD0597DF1C5177FE31BDFD8B87123B81358D622F50A4CCB662E354672 |
C4114740FBBCF6DA6B17971C3CA10C79EA1CB69111CCDD8C6F71DF194C66BA30 |
B36C449762753DF3F259B3859FC0D6995341545EBE287167C6316EBBED369842 |
242CB662E7809C3D7BBB2BA33397183BA6B388929C91E173CE3907E799698E8C |
5943C63EF2C823662761DE415AD0E030638D20EAC509235916F4F93032C14C70 |
72433A46D8F78A524D1C26B41F05599EA28EC906F3F22EE805A2F19E18FDA464 |
7B287868AEE2B724B8B9D4D25673190CB11D3BDCAC3566B33EEB168B51BBE365 |
2E9DA8DBED1F1AD24CBCDD864C4F8210561B3340B062C4B23EEAA8A37C5B27DF |
BDF33DFFECA49115347AABA5A96618DB7ED1F73EF0810FB0938F32A2FDE234C0 |
2790433FFCE10F89EF8F33D537509A9E1987DDDC696BFA48A1358669D5EF6BB6 |
9B955225843A1F767A7AAA9D4E4BFB6793B99D355BC9EB74632BADD79B904FFA |
B68D19CB49FCA2EA30CA9368A4BB24C07A163502606BAE3BB4D4344185D9BC79 |
3389B55CAE0A8C28CFDBDC194E3568FE40D60FA7D36E6728AA49A95C86CA5FC8 |
EC74BDDA71FC837BEE79F39BDE846F4786978EEEDAA5726F98B650751ABAEDD8 |
73397662474A7C6B9F59A4526AC02279361E21AAEE3E2581B60A8AAAD0B3A231 |
B5DD8E941DAAFE5A79B2D92AF6D69A382389A2D592D5C7668039815B2D47B006 |
7516A95BB20A41D549E27A1867874E7CDC6440F35AE3ED932308E54B561E2358 |
D2C4429415B5C08D38136C1B56219304969DA8DE2419702B85485BFFBB5A9338 |
03B095AA5E010B54B4DDAAA59378B0B2DD386AEA14B3A40AC96BB9852072D2EE |
CAE288EF6818E4DD13E36934EB94CA4DADA5BAC5D4A914CAB6EF35BA41ACE2E9 |
B03DDA698E2B1D1C8E6CE5941CB7E0F775D334D412066BD9CD7A99CD5A4957C5 |
4E365DCFF574F81D62200BC5911D91F8697B812A4E3BED34B060ACC935D75C73 |
E185179A15489209A2F288B1C0182F82356BB689355792B401E94B1E62C2568A |
D39FC8698B48E2391A3292D49904BFD0F5CC7CC11B7260B229F0B7934F3EF9E1 |
871F7EF6D967E9E8679A8F447C4D5595F157B2CD7FFCC77FBCEBAEBBCCC63874 |
6A699BC05488AC3D51B005C75F10E578A8A459077375589E43CF068F0DB74ABA |
4E4A2E87D9B9899CDD8C60B06DBACA1579DA1FB7DC720B181FA99C45CE26CEA8 |
321AB59B6E6813064E9618B21AA362BDB89DB7FAE4C6300F979EC74D9B3651A7 |
56466A79D62B4A37A7D5ED30C048B31C475FA33D6B9F065814481643D26ECD82 |
9584E1D09225F52CBC8905B5D2AC9CC4CAFC1B59A641316B95BE6BFBF6652B57 |
469D2ECC1A89E0E3F3030F3C101379FBDBDF4E8C33AA211C2D41CC058D43C097 |
B85F9CB593372F65F891FB2B9DD029B6E9DFE7C445CDE4D1A2E12CFC05FB4E73 |
4DCAC454AED19B68592AF7ABB2938664619ABFCA7FEB9AEA9280B555AB650E8C |
A9413CA81AF2B6D36D77DA585E2A285ACBCE5EB1D1DF42192D99EC1C915FDC29 |
C9BEFABFCB1B5396AB3C7C453590BA08790A9106AC1CC3D2D9ABEBA4A91BB189 |
057D4DA437EE1A993EE593AA7AAA1D62AC7694662243EDB766FF57BEE6D55FFD |
EA9DAEB263158DF40D6341742F5FCD10FD56148023970A7E27EEC645BB1B7554 |
37F66C8DC7C359F329CC14A0B3F1FCF3CF873E77C619675C75D555649A73B59F |
19F5BA9E5370A18874C1735DDB2984511F747F5DD49B3A7EB165C5139D766F01 |
8A3D147FA710A47E92B50F89E3C9A0D951B157761BADEE48B11474DA5517BF0E |
4AC572FF60DF92E2C0F6ED5B4B457BC592A1CDCF6E1AA8F53BA9B7737AE756E5 |
05563A9942B5CF16394C868A15D819975F70E1A5D75EDDF0DCB146F3E28F5D72 |
F9959F887DB79D066977AE3B61070499614AECB336D8DC4711AB0249201C8CFC |
EAA28B2E6255364350AF7BDDEB1E7CF0416E1938386162551E4032F16CD4C228 |
D6B454E81217173A332328A7A5FA55CE9495C3A74BD7EE452401AD3D518EF120 |
BA3A85EF498B2A0AA18F7DEC635FFEF29761348B38143DDE6CC2CA3F5FFFFAD7 |
FFEC673FC3659FF9CC672CA96C94F3C3C32399A02A0BC9424B850906CDCEF41B |
90A6416A37DF7C331DF4025B4D664A6604A6CF94470EFD924B2EF9F4A73FCDAC |
58628149DE8EB478141DED9BDFFC26A41FFD3F0CE0E06EDBB66DA3334A041ACB |
8669C42579E7031E72A940863CBCF3CE3B9904C6932C1E556AF7926F4A9F86F4 |
06C2230E3BECB0471EF9BD5604C239283A70FF817E5D6E8E73B5748906F89E2B |
8CD275F249B956EBE2E760C7C512232B507ABEF8C52FFED33BDF59ADD5984B0A |
6D376B0B1813240076256527235456067B823FEFBDF75EDC9C2820AC3BC7EBD2 |
4B2FC5F683083018EC0B7581E1E16150B37076EE111D68E2585346AE0519BA09 |
7229DF4AA2FA65975D063E42A81C88281000AD3DFC2959D5582BDC5C2CE23599 |
F7C6CCC33363B3B0B6A964503533D2E7137174505D605544C52F76BA7F4EA781 |
F4D5DC3FE85A7B964A4AC58DE8FB6273ECF9F4F992404EA9CACC6733C18C1A1F |
D7C7CAB0284836A6BA9DE48D27D31C1A8C5635368E4172C951C6F93CF7DC73F1 |
09A1A4C3EE5C025E94CCE102411AAC3FE08067766CD1A93D71A2D852C252BD4B |
97CCEC1EAD94FB8E7DDDEB7F74DF3D83C3C35BB6EBA4EAFEBEFEFAD454946F34 |
8184711640E7DFFAD6B7F05090074E8A09C30EDD0B9F8F2CD59E4C185E2A0BD6 |
82E1153D0D4775E8F2957E90EC18D77D0522C782C900330B6319B0BD3E18A3CA |
F11DB71D068D24049B1C8D1A4B7AFB76CC4CF766A83F054B1FE75DD3538376D1 |
B3AD206AF76AB32EF51C7F26EEF8CADBA96B17BD46D0B13DA86C961B267D8552 |
1A84B56A6D57D0D91434BADAD55C6B773BAD288C2C8D3204834A2F3819719AC8 |
46EC531290E5D10349FB989C8DD182A1CC0A9776AD048A205CA6C0388B4E831F |
529735EBB616C1A6357B4508E8246BB3440D22650AD2B5C818B2BB45EECFAA2C |
C29131942B703814066C6446BE8D6BD83C43E5A08AA6DF9BEA027D532A4B789D |
534A947AE94B5F6AC96A52AB4AF3FEBD2682ABCAB12924DB9A163D4B6DC5A38A |
F7601C1FF9C847642D68CD71ADD93D0677A3678D48763AE13DF36E73E9C91399 |
95A50CFF97E99EC22E9E7DF6D990EDC49000B9E387DC5191BA6906A306062A45 |
7799D6596525B3083C8A0D712B1333529AF75A79711C6E9BADEFB3995B094672 |
F679A7ED3A2E55D4EC1C657A96E3A6AE3ED960B1B8149F13C3A358F0C1BC72DE |
91CE64CEF71ED8466363B81DD3619972801112BB5B4A4EBEF0852F6071D882ED |
37BFF90D77870616C606FE8B93FFDC73CFB1028522F3A4934E620A8100CF1255 |
9114409B8C9E44493950B9FE2EE1475EC96FF1A1A45451E4ABCCE7031B8E92C3 |
54AB0935384F654EFFDC4C71AE84858EB81FFDE847279E78626673A4ECE224A9 |
D0A0226DC70421138835AA7BE68DF2B3C52CE425EE6276A47B76929083BACF03 |
66EA925831989EEF7AD7BB5819C4846B2EAF207AD288C40859D344FE6E9A1D72 |
A840452CE93CE8A083DEF39EF75C7EF9E5D28D44DA206B902EA50B740BE54AA3 |
53B7A14EFB85C6D46C5F4F6D7AB63ED0579B99AA57CB3A89A3E0FB279C74E25D |
77FFFBF8AE891B6FB8FEECB3CE05731A1E1A6E353BCD7673A06F686C7AB7883D |
CEE898638EF9E52F7F29270863C681E218F0EFE9A79F7EEB6DB7EA2D28F9B6B2 |
960D0F8D6EDF01B375D0736B96E7B403CF767B960CFD69E7D66AC12B174BE582 |
E784493ADBF2D2A4CFAB3A961D401BB2ADDD51735645AE65C330C193C0BDFDD4 |
1AE8EF57A9DD9A99EEB1DCBE923FD69C29E8307EA9099152CCBA8CB43BDAB281 |
508955AF5B8CDBDD31158F3BE9B624687A59F0C9B2D3083A01D8DC9C06E0B859 |
B4320A4D0CD7BDF7514CFCD86855249789E743E06468CD93D713AA40B213556E |
B799B01F8B44F2A9D14A46250720006BA62222F75F8420F796343494190E2468 |
34074C9DC9F483498B01362497A2744145A35F88DC9B66BDE429FC59A29ACE53 |
BCA005FFE94F7FE2B76632167579B67CE21057AD5AC54C551C12B34A9B1C997E |
89238E380277E3D28389DF78E38D04D18DB3AE58663319CA491A07341768649D |
79E6991B366CE021945C31563E3379865355B9B7847BCCCA52E9392ED3E11C05 |
9146D69D903BBC9B094597F13B6D762471CED4ACB9743D694C48283ACB5199E9 |
1042532274873E057ED1CBD6900122C9ACC523FA8606C197F1E7BFFFFBBF633D |
F11574C665CB9631B712D63DC533AD1C2244615258402C0EA4202B2A98E546B3 |
89F5048F3DF698CAB5450C8CB5812C8310BA115802E11A4EDEC75465B900941F |
2AB740DFFFFEF7633C96019062BE606F412659399627A5B2243552CFB072546A |
EC080E1B1E87B99B05BD925D4A3163D1E78E9DF532CF6C2677FDAC1AD92F15A9 |
EA9A99CD7B3BA316C9E2909346BEC0D375D659677DED6B5F63550D5360E53E58 |
64903A842E03BCE6E34CAF6B6A74B3E00BBA05E64BAC3DEA80DAB6EBA8BE9181 |
ADA33B54C15661F4E98F5FF19D3BBEBAF5D967D7557A669BB335AFDC0A5BA14E |
C07740E33BDAF582EF062A6D45B157AC4C4127C3F6957B9BDD261470DE905E0E |
EABC245D0C180470E8A187FEE4273F21F488D4396A375746A28E9A330B063DC7 |
0AE321CB7FD94B5EBADF61077FE5AE6F75A2102A6E2308870A8501AF5449ED72 |
EAA820B2E2040ADBA493EE6ECC345434A952F0B6354B8777EE1AD388E8E5B2EA |
8447ACDD7FE5D0926D9B9FAB77DBCD24DC529FE975340C101666C4B2AB96075B |
B847156D9536970C3F3CFAFC6CB13099841A9A65FB68090A7214AD58B91AB4D1 |
6AB774A7FA2CDF699FBB694A0232779210FF24115A7903E7D5AB57838C7101F6 |
1AD6124F2E0F17FB64085B64D6BF84A0F6DE537941E53AF5D4536FB8E1065020 |
8CE63FFEF18F2296246ECAC8A5E0DC48F617EFC9012FA4B2305A09FA01CB2533 |
E4BCC85DA92491F5812D1C7BECB15FF9CA57A870D32A12740D933D0A683F2B96 |
A966595292202B4BA90002828D8F5152415646B23F2FC3497EDFFBDE07EECC6A |
5B2A44983363D6CF3CF3CC6016FDA359200E25137A5BD8347DF4D21DD3378269 |
5C0569EEC191E4F0357380D8920C2A2C9E82D4CE9A0B9E77DE79581D8E646464 |
045AA778E528C029A541259AF2323A58BB762D0EFC3CDE0492D0161FAC8894AC |
4D490B0B56B4E171592554A2717282B93CAD6EBBC3C14C4D4E14334707989AE6 |
CBD35395B2F6FE4FCECE61AC3EF1C413AC692290355D37100FF8EA820B2EE019 |
262950E390D6407CB1A0096B45BD80AE3086B668D8514DE0DEDF7DF7DDC71F7F |
3CCD23490323B3660731EC1D4682AF60363EFAE8A394BB7434615474AA4A8121 |
56553BBBB23269B6AA67761323F364A6A26A48408F344A4B881A99C08D98AAD3 |
41071CF8FCF3CFC308B0ADB9C43E3DE024ABCBCBE1CA2909E6A54E9A92C05499 |
E7BD4C3C1F0A54CB68414E97A3DC90AE5833E066B61690D4149A141812568999 |
0BF22CC9CBB20AA534EAAA3429169C7ED72B073144C4C1BDC3CD99B161BF36D1 |
AD8F146A9997BCEB651E2430CF4DCD99724F6DB2D5768B95896E67DC8E43B0F0 |
E65C469FD9A74C1A34D959A768E26D1076FE539FFAD487CE3E2B3B2C1644EBFE |
AB75A71ACC6159B9089BA0D3ACDBFA2CECFFFB2D9BFA7B6BB3B3F573CF3DEBC9 |
3FFCE9D15FFE266EB7D6F78E2CABF675A667740B2BCB994DBBB34ADB1A76B9B4 |
6B667649AD1724B8796AA25628C641868FADAC7626C9FB07FAECE6B4D555B049 |
D7F50CF63AFEECD4A4A7CF90FD846ACDDACE68C1AA4312B5BB8E65F98E0BA1BF |
FFFE0762D8382669E6230AE339BCC8791175D97126E993A550EB676107B51951 |
D788807BC8218780AAD9269DC994924249910FE2375B558B6B649F9A84E44FD2 |
E0237484440BE8DB21F828FDFB8CC649899960252D2409F8686A634C58E22132 |
1B2C923F402CD1A122AE14E1D8A26F092AA894EF5041B14C1C1ED16B70D1E187 |
1F8EC54A73A0667A75549EB8294D83A1EF808132010E97B129B9CAC38F8C59B3 |
6E88321623C3D9D8BC793367888951C1C49F279E78E25D77DD4511CA800FAF91 |
A9529F5279334B668592DCCD947F11068CB8E20DF93BABD22978481F127ED993 |
E32B91460433C905B8CACE7C467FCA2AF8366B9BC155FFF66FFF967C4D43F56D |
DBAA9D4599EFCFB51DB0B05221C3AF6E367A6A3DB3F52C43D471E97AAA37A0EB |
CDF955BEFFFDEF536DC46831544EF98E3BEEC08AFDF4A73F15738D0427815F66 |
E9B08BC54B5EF292DFFEF6B72435B072C83C56E7E14489B1FCA217BD08FBC52E |
2B34ADC882B97482BF64368D619A00F31370433C0E37840670E185170ABE2E37 |
FA7BDFFBDE9BDFFC669543B4F3866623C6BD5F9EE730AF140C8B229F3283B995 |
788301433F60A88381A2346F2941F385BB4F0E681EA7FFB644CBFC5332D33878 |
E2FF10D051F28C05D05856461CAA5453D8078AEE78169A50C7AC662F7C2B9012 |
7A3BD2C4CFD2B9FC381D51EA8081A1F6E4789A95717996D55BABED9E9DC59FAB |
8787FF3836B65FB562379A81ED6C4EE2507358BBAE92AD4AD53DDDB5715EC611 |
DD77F2A1F804C46DD5D3D7DBCD0AD3C52628D8969FA4872D59EE85C9F8E478A9 |
BF6FEBF4784537BB9E05B7AE958AC5D42E4669AF722A61524954CD2F05BED768 |
7722CF9E8DC299B01BBACE78D88EB32EC220FB62B144D7710B9A878A5CC7AAA5 |
49214C7B53F7A0A5AB2AB6373A3ADA0ABA41126D52EDB4521B8D43F0C87AA3D1 |
57AD75A3D02AD8A582660BFA48528148E2745F4512A6978F1B2730F226FB366B |
4E55667142C1A5A407F562C560804AD88C6C4A8003C8791721A797BDEC65BFF9 |
CD6FACBC539EF4471320E7796D4AA5448E063A9E8ED558E88C502C41D9C26A40 |
23BCE9A69B28D294815B4E8D99EC4B0AA4A5124B19F8A3E99E45C8229CC0BA2D |
CBA89C32D53731284CD816C29B48D34786C518834DF2A6C4900DE46258143167 |
2EBAE8223035BC977D12FF97CA9D186CACCC9234C96C39E59453A0DBF2CC6339 |
74364510DC72CB2D1FFAD087C421208A9B4C8162405C46AC6980A6FC777FF777 |
3FFCE10FA5525C744F8AEE7BEEB9E7A4934EC257928F2FE57FD98BE9B3366C55 |
BD62764C6EAB0C686BDBE81FED6551040DFC5B2AC3C8B5FD029565BC2632A6E3 |
6721BE508B482DD58E38E2884B2EB98454487E072DE0B4D34EC3CDF11432DC2B |
AFBC12D440B6429F3E970E5F610A7C2395AB2CA0C36574AF898754B2ADAD3C05 |
93AF78CF7E612CE9A0CB1E2B4F3714AEC79661606076827C69E6AE606D25B161 |
2EF573CF1C5CA8A2D8CC8C52A9C7C17822EDCD3D9ABFBAF1C61BCF3FFF7C81C7 |
32951A897E8B12A37213DEC497DDDB53344F12A4796F716676F35428C3889674 |
9479E529666E923900931D0BEA80E9FB12E94573B6A2D472BFE474DB07567B26 |
1AB32B0A5E1C859D440DF756A04F2559D7AD94D9A8B6550B52A7B7E7A999D99A |
6315622B52CE64D979AAD509B3430432605D0B551FDAD094A604E816C8FBC30E |
3BECF1271ECFC80F82C82B17BCE6CCACC67A8EE295E55A214A678206A631A97D |
3238983DA393B3158D27A58122FA21A252AB57B9037EB51D74972C59BA73D7A8 |
57286D0AC63EF7D95B3FFEB9CF6EDCBA39F49D5DED399190E8E264B5B40CE526 |
18046D58854AAA96FA7D45D79BEEC0A08BC6938653284D45E134CC13E5F4F7F6 |
4FCFCECCA6A153F6227D8FEC4493D1ABF931FFBD2581CAC303EC53240908140F |
38776F7FFBDB7FFEF39F3FFDF4D3FC4AD2DF5FF18A57FCEA57BF4A33DC5C7EC2 |
1A0596A14816C942DA0CDDC24C522224119324A9F893F308D36346137323193A |
C268A1EC0B7F9FF7BAE28A2B3EFBD9CF625476DEEF1D463F243DD1C07842A557 |
2BE959143BB90995457E452287A2FFD8638FD1C6A5053C873B24A0C192FC97EE |
8999278E486AE2D2554A1A1570F22677304305CC791758698111A5AACE30BDF8 |
79CC7C5E4A0B6C092E906456EAEF82C9271C4D0E3F0B4CE87A6288822BC2D1E2 |
57C4EA115E0FAB0AC378EAA9A73006E6C92C5BB68CE00D52BE0B11AB375265F9 |
85DA569DABC56339A2A8C6E4178C0DE8FC30D7657E7AEA67D202E2874950EDF6 |
CA356BB63DFF3C289C0AE90B5FF8C28F7EF4A3E2EBC4C5E0FB58F63FFCE10FE2 |
BE90380F816508D4A3D1833333968B23A94152E26BE54D50E99D60E45C2A7184 |
C75979970C4620409DE79D771EC430E3C32AC7E1C0E38861A28CEC8579BD79D5 |
9E0E196E10150E58294CD703A1552A251869940410B41C00CD44A8CF843717AD |
4A421AA90100257E21D28CB8EF4D2416D38FBFB72420BBFCE0073F78DB6DB7D1 |
BE8CB33E910C6B3151427A7D98A066F342E252C328DD89B9DA74D9310224BDC6 |
B4BFC276F61B5A32BD7BC7D1BD4B3A33A3455B75A0A117D5D2C8E984712FB874 |
B65CBBF1DB825B0F22DF76EB05D5503198F55052EC26DD1D2AC5C6FC313F9B3C |
232445A92D905D2031CC6522F664F096692A3681AE068893953DFD154B671F75 |
3CABE3AAF146ABE865253ED07ABA613155C39E3B903AB5D8AA396EB9580A1B9D |
BE5275BA5D770AD5B124184D3A9389B6E940F41371D84892652B97762726BC66 |
D86FAB925518F02B4EABE36BF15048CB7E5072B7CF4CB4A36EADA77FE7ECB46B |
610D2CBB58D8DA9E76FBCA9DE9D65CC20571098D04F77D4A02BA6AB1F85028A1 |
A47FF7BBDF15679DB41E03E5BFE73DEFB9F5D65BA9804A5D2A0102085BA23217 |
08E8E1861B6E108701211F16D1D9C994697B096E1B85CDAB5EF5AA071E78800C |
D02C939698047D248B782F2511D9F49A9A3DEC4E3CF14468B11C21072CF12AF1 |
CDA83CDC8B7F314222BF51079D3B3566470B93C425819AE9AE1C0A0B2BE60061 |
3286CEC8E1BCC4C1C400F4971A0739784CC630D53765A41B2E247B252A689675 |
70C2181515378665E8C7A0B794C28904419F38383E4685AD8261C1F47C95D70C |
63D161B89C7CF2C9A2C7411E60BE26E2AB084EBE37CB7C54DED998FE773C88EC |
F2F5AF7F3D341189BECA26513BA0D22132E9AEBBEEE2B7F8EDDD77DF0D2EFCF8 |
E38FD396A4778211027AE1A16EE0E9A03033DF696F96A78CE837018524CF817E |
55DC641E9C3DBD46748E49031FD1684C170D0B3ED9C98E631072174639CFFB4F |
6F092B7458564D158916213B32B2191CE53DDD6E18092E83CCC653244BD89CA3 |
655426327A814708EA09FD99A2C1984B849F808021ADD9CA58DC59A64662FAA0 |
A094610CD27543528C04898B0E226AE86EAD58DF3DE5A70EEE52ECED0B1CC872 |
AB3D35F18A48F9E07BB6E3C52144166E54B59C8A8F1B45B16365B5B8DA74AA28 |
ABD72DE2E76D2B69479D482515D72AB9C5304AC6A14AABE4198CBFDABBB13103 |
0D62DD81876E7AEA295F7777A8CC046DD69FC37A864AC1800AC5BC19DB703DE2 |
2BA44B633B4E93754B574E4F4D411F9C0CDBAEE736C26868D5F26D5B775C7EC9 |
45575F79D588E3C26C396868E58EF16D6B545FD9F3C19B1D3A125C68469017C1 |
A46A45AEBB338ADA96B2CA5614A67694A584A66AE5506F6BBA51747CA8531694 |
C272F96D27FDFDE76EFB6290442D1576951DBB76D7B61A3A7CA2A594A4DB936F |
CCAB9B93DEBFD4AC69EC62978F3DF6D8EF7CE73BCC6761112B49149B020B1B4B |
A172843E261F523192F43072734960A379214C9F2424559C144E0BF1AB798AB9 |
CA429B74AA0B4891328A9618EA23131356CC534F77024FC7FBDFFF7EB0298A1F |
8C44324ACF3CF34C0839C17C140B95A4CBC5C47C851550F92355C0FEB67862CD |
0C3CB905411D56AF5E4DD8679CC617BDE845BFFCE52F390122C7419662298F3A |
EAA8DFFDEE771A77255769892520485ECC0E12E451A6E898C9E6223F16C9D612 |
03903C9DD6C6BCD6E4CA805665522053AFC4DD6FE568246C3A4F7E47BF2AB79F |
EC065F11BC4919FA32EF60661F838B7DF18B5FFCFBBFFF7B2270903AA5FE882F |
E2669B59342A33BF043684F03BE29AFFC637BE816140C8C362A5735919A5DDD2 |
C8410C3DB38C4BFE95B525B1324C444D44CA4CE679F0C54F22A8EE5275A1320F |
9ED00646256752E237EC5277E49147327D82D449AF05614FE8A3102500C715EB |
663A0921D1F1134A0833E141E243A24F584627B27992402C45F310D2BC30D1D9 |
E851A41816B39D8B402D473214B8EFE235C614DEFBDEF7DE74D34DF40EABDCB5 |
C88C7552B2A98279E5C2AD9FBBF9C3E77D582382694CA46ED9B3933079A5B274 |
3D97AD7D8E6E9A40552959B60F561084CA7512CBEEC4E035CA73DC02F621B582 |
54B513ED31A93856C9F192D89E8E8386360BAC46B1B011ECA3ECBFF8A5AF78F2 |
4F8F61AD66EBD3CB972DD7BDE99B4D661389DF43D66A4E0ABABA261A0F5AED15 |
61764CB71A2565B554BA6C7864DBD8EE33CF3DEBAAEB6F58B664B83E3D8D61A4 |
9D4EAFEB75A3F0875FFDE6C51F38B7E87AD75F7DF519A7BFB76AF903FDBDDB26 |
B7F47ABDCDA855ECEFE93AF678AB11D8A95D2AFDDD716FFCC1F7EF9D9D98C2F3 |
D62C5BBA65E7AE91DEC146BB5D0F3A071E78F0EF366E746C37716DF03FC8800E |
3B10BB4E4F798E51520383C5FCE8A38F827A311DC1A82751F1D051C157B9DF83 |
D61BF13C78A2091F8DCDD2750F39841C7F4B6D989625CE3515383B435326D090 |
60D34A892FD69300FB8B4492F908F1C2CBC5E2E190B68CA4AEF7BDEF7DFFFAAF |
FF2A37A420A14EA68C923A1AACA283E28D6863FCAD7482E1D921019309088829 |
34426833727C0E39E4104BA0B884298B0A4C712428928CFD527FE4F6C8684472 |
EE338BCE2CF4852904E58B1D0BCC879A518A7DAEAC19BAA079253259D2B0AC1C |
B38C250BF4D2323CC295227F11B64B8E40E12CFE7DB1DFCDC69694D5CCED51B9 |
4B5DDCE50C9FC8E9622906253CEE49E81E91FCE25590900EED44366DC66E7DF6 |
B39FC50510EFCF3CF38C242C127C54F45C0199C053703630069EF3BD6D020A4B |
95A7545F7AE9A53086F820DE5CF829DFD0E0E3F819121725C5F48D9046A9EF53 |
78883FD4AC1B97B098249E72EFE87DC2BE60112ECD5E941034A83141DC8D8964 |
C2C731123AEE247BCD94796602347F75FDF5D76FD8B0814C90C8A66A4F67919D |
BF30482E883425557938CE8C3D50846B8F6AF615010F24539BE955CAA8272071 |
AE58B274E7E828D46DFCF0E6CF7EE69C0F7CF0D0C1BEFAC4F47A0802ED1183BE |
9CD849CC26BD6ED633C077ED822E55D7141D5B2AB09230F3DA76940E1D941DAB |
AC1C954036A481638FC541B3E86C09E219470DAD5CFDDC961D7EADA2F1F8E284 |
9A9CF87525866CAE9BD80407F68F4C8E8D1DB4DFFA99A9E91DD36396B29B0A46 |
E78ADD63E3CD4EB75A29755ABA120D4B30DC536BB75A034EB1D96DC2105E5F1D |
71DAC175575E79D5159F48A2B05274661BF5A9549B046EB132D6691CFE92A31F |
FAED2307AFDFFFB96737CDA4EAC0652B1FDFB96D69DFE0AEE909CB761BD0AE40 |
48B61524693B0AA20CE26E5EAE8E44BF30546C289147597E2F453FE6957CCFF8 |
307689E5EC250000FFFF49444154E18A2BAEB8EAAAABF01369788E3DC5464BA5 |
BD34C79DEB8491C778F19E6BC80E71D4C9F889D4242D124966B2D6BCDA75868E |
E9D510FC3406C32EBAE8A2CF7CE63352A4468552F806450B4D5E713D61B29C3B |
59313E9752F679AD0B2830984A2ED58EAC57A5566D516E982E63DE82E8119015 |
4F3EF9A469A691A420E5B02E66337795376B26B6A87812E8A561C7024CF8D5AF |
7EF5D34F3FFDECB3CFEE33C96F6F3FA0BC843878EA98CB215695C83D411DE0AF |
049B850E32DE8171125A85B2825C77821A0A3BE314A8D262FAF4F3B02D06AE39 |
F4D0439F78E20995433BD10F4BC927880BA6277D1EC32273A14542683C53E725 |
9D095A322E20B612C5153D362AC35A989732314F128869297D4DCDA6438CFA50 |
8F90E51589CBF26C1E15FC09298E8DA3D383B29C2441E6C8827E699F24BD2224 |
A391A04C34AE5566A872F1A5E8814506323C7A8DA4BF317D3E6CDB39AFFB8D32 |
80C39826C8B512B6CE2431B1C6CC762E928E25D03118305806E490148E89E420 |
B1B1B24FEC1B91799292CB5340576430D568A9B86FC9E0CCC4582552EB5CAB27 |
4A97FA3099B37BEA163DA9F6C4E3AF34D6A8B58E2A5A76057497DA71AA9A69D4 |
48431C270CBD9BC5608BB6AAA47641A307D9184D3768B77C67DCB59E6B46D005 |
74CF30B015951CB86215F820E996B441DC02A3A57B86D1E2D95CC325850A74FC |
89E9A9C172ADD1D2CDE9CBD5F244A355F1DC7618154B05AC026C1ADD81A3AF67 |
627C661016646A799D6075FFA0DFECAAA0E3ABB4ACDCB5BD03DB67B6FFF50B5F |
F38217BCE0CEBBBFB3A9BE3BA99476B71A13A95AD5DB57EEE97D72EBF3955ACF |
CEFA6CB1E8CF76BA56991A4992E149D8CACED4B524EEC98ACCA5FECBB4690482 |
9BC85AA4405152258785F911D4974567259991E9E1CEA79E7AEA9D77DE490729 |
96E5A0830EC289C642317829F622F3D6E8FF249DE071D0C916EF3167E5F065F4 |
4813304E42B07C22E19CA147620CFBEFBF3FEE29AD8CC9B5CC3C0E66B8C26421 |
9403295992FDB0D72CF3320B1E859F33EF0EFC0DF767DA2116FD924B2E811236 |
07686FFA7365045470E6759464AD00E31E736D6EF226E3E4C8C28B05FAC6B4D0 |
CDB4161192FF73492036814C4C2481098363BE046158CAACE959120DC236A05C |
793D5E8C48531D662F4C61F1471D7514EC32E6C2B34A8B8C92811681D061D893 |
8C8FDBC6FCE27D962C72C360FCE2DC0A040A87C4B0B6B06C5A3394313C213CD2 |
04663095596504094C34568CF9F4D34F07E98328B1FD98297F254524E4A7D44A |
ECBC7B1F5703F635F823A438C50323E45C49F6AAA3348591CE88519A37D13633 |
B51855335B8331A949F08E703DEE8687626CA2DA706D993C86AF04B7759F9240 |
28EDCC33CFBCEFBEFB9E7BEE3909A2A83DB16BA410611E3E15D6FF98638EB9FF |
FEFBE7D124D747C00D7512CEE38FAB3C9C48DB941D5E4593D09ED24475310527 |
54913AB2B7B6265256BD3E9075B54B991964D99E5E3A6A63495AB0FCC42AA52E |
2501C4C0B4D28D5CBC2C375F9725DBAA8A0B54EAE3ECFAEE40984CA978AA608F |
86F1746A8F820356AAA3ADA6AE54C83C96D75C730D73D258692F5EAF7992E0AA |
8BFFE5B2CB2FFFDBD7FCE5430FFDBC542ACFB49B56A9D08DA33484366377C324 |
B35FEC6215B6DDECD235ABC7B6EE483A51D952B5D41E700A438552218A2B6EA1 |
DFD27D8FD356A7E4149A71D7EAA93C3D3BDA3F32DC4E9D4D63BB34A444A93CDE |
C6F8B0CE7DBB26A7BD8AD627740646AA74DAB535270952C3C1C00D65BA07F708 |
347FEDB5D79E76DA6938B0243CC96789F366EE175C70C1E73EF739C982A1424D |
26804DA7E262E7A0938CC3895F45407B44833EE79C733EFFF9CFE327A79C72CA |
BDF7DE0BDB426215FBE4577CCABC3801484597164D4DE1E920CB638F3DF65BDF |
FA16CEE03BDEF18E1FFCE00766ED98E09A905748CB452638D02B40E6809113A4 |
4084A5D9C85A14149A352CFE95FA3B06B420FFB44B4378A24077C9B8712F8116 |
50B93FDA74CA8BBD6926E3CFABE2210FB532446F412195EA06F53FF60E99F794 |
2662DC42FECB642F2AFE8CA560E1D2AC9A17B3C0D1C57BCC9C5D3D059F521896 |
1090E903A15E6C760AE48BF797D45DF62AA04A824FC87A58912B7603A9CACA61 |
9D446ED36CC21DBEFAD5AFBEE73DEF317DDF5C25620DE1CE92BDC00003AB1056 |
AF5E8D8DFCD5AF7E25AAC4BC153307BF76ED5A6C396E888B5FFBDAD76ECD5E42 |
76A478AE065755573C64CA35975A92D548E55C73098C4B05BF044E71CD4B5FFA |
D2871F7E587A8EAA2CDE4093564AF94C5187B1C1903FFBECB3550E30276DCEA0 |
6362D7FEF33FFF530A32E7614CAABCF3387E22B05C98FECB5EF6B24D9B3649DC |
4FA8942FFA06193C14331C328FA11DA167F1E69136C8FDA5904265851A189B9D |
77CE11B1B7ACDCEF2DEDDBB2F379A79D1CEE15D68671AF8A0B19E45CF6DF9FB3 |
AAE6E81F9C3E8ADDD876754B19ABA1C24656C46B65EEFBAE76A15BD55855555A |
CCAA3196ABC264D899B6AC595B359DC2B865EFB2AD6DEDF63FFDD33B1E7CF041 |
EC97B80294119C547B7987064A95925F1C1F9FC0773558D251500FA272AD08E9 |
D469613D97EDDCBED3765CBF526A3471FC753144B7DD29BA4E1AC5CB6B3DC524 |
2DA6362479187746EC728FEBD73227ED78521F195C323633F54FA79F71CD4D1B |
EC5279A2D39A4D55A5A73C39DB2A574ACDA00D1903119046691464158E4A9F94 |
6A4F8D7445751E2401460C0A04E590DF094484E423504766BA173EC79164C516 |
79BAF45737D585A38F3EFA91471EA182C502A379D59A698E5C2426382FA60B5A |
328FF7C9AF6870339305EFA147FED55FFDD5D5575F2D0C9326056D5F56A57184 |
82734CDA60CC75EFCA5CBCA1485339C40B380F0EB848502AACF4007319397D58 |
2138983FFEF18FC934C8E4FF9C732D78AD64556C000961F595AF7C85D6346D61 |
E2C5B3D40DFFD2C34E66413B8576193550F19388678651FB34C79350FFE388F1 |
3C5B41D204B94FE2A99897DECE79821DFFFEF7BFC7F2D1A1CF84192657C93911 |
3F204984EB2EF87F5C1C7A93B97C521E421070E165E4BCD05988966A465304E1 |
32FD3308CFDCCA83BCF038E8E9589CCB2EBB0CE4422425B3F1B4CA9385B9C8B4 |
DBF0158CCAA79E7A4A2A03E6D9045478992797E695EE2C3DC327E211125B52E5 |
490BDC566650D04CE48ACDF3358BE0A413765E5C01E2F0E69B6F16F72063B9E2 |
8711CF1EC52A4C57AC182D680A3F9219DE6335B0232C5291D68CD27F4AE5517D |
1A1C0CF9F2948ABB96A3322358F3288A0966B6016228A5D76216E01AE60BD262 |
66348F56C5C73EF6B1EBAFBF9E75366440CC0F713AD164D8548E5ADD3B30343E |
BD5AA5BD1A9339EDD17EA11C527B0EC39A940D861882406CD7892DBB13859D54 |
7B4E62E5CCAAB8A9C763D552AB02951F1BE7A8C1B45C4F82868A669402831C57 |
6A9B520DBF1077031E6D8C017B2D6540F3D43589185B902E65DF4954ABA3FDEC |
7ED96FC5A1532C741ABA00ADE879769016DCCCAD1776D7AED97FF3F3CFC0046A |
761AB5DE5ABB51C7F88A96F22CB57C6018B7DC39BEBB0F9AC7C88A99898934D1 |
FBBBBDD3BC7EC30DFF74CE592BD7AC7CE2F96D6EC9ED74234EDA722DCF713349 |
A0FB1CDB5951719C2195C84136B56F1C13DD143363D9ACED17B214BF9C328297 |
2AEF14468141264063978D5499A629CE1CDA0D64F7F857B22B19FF33938617E1 |
57B462C57D4D258915A3543AA979280311525CA3BA4075EB56A1400E4C4AD5A8 |
1891A3DA79A3785C005375FDFAF50F3DF410FDFEF2733C8BD0C56CE7C03A06EA |
58742551A5DB238B945A8F95433C62A0445FE10F88B36A16374BCC8D87567CC4 |
5C4D49BAA0334B0C257C28FD58FEE759A4F69E8DC3E4B70C6C0A321207C96D20 |
CE9D58365028DEFAD6B7DE7DF7DDB8926A057828989724B9D2ABC80089E40E9A |
AA84F44C2641B0FC44E5A95064DC2411618882DD2DB9BD12EB56595E0AD3E7C5 |
C117E7EDE198CB44F43791521C06B780A14EBAAA923D3138CDF5E44E51F2D1A7 |
471471A9D6E6058CB349CDA0B00C4171E1411263D94CEFA17B8AF3E2DD447449 |
F921A7607A3F99CE210C940F12C290343E395771DE1543653106668B27790B04 |
26754803327A8A2529801E2D19B0A44A53345A19E6AE3C826E5399A9990421E5 |
A366362AAD5E9A0B221779BCB57C0AC39E55CBC727775F76FA871EB8EEA6B5CA |
8955078AFF1295237D257343B1B35215F0B1200AD99139B534F25A104796D2CD |
1DA7128DEC8F1F55955549B424702D35E0D7EA51B791846D5BB52C7757923E1D |
471D4FF5963560D9BCDD14BF9CDA2B8BD4B5DD38887A8A252B558D6EDB2F9766 |
3B6DBFA7A2BB2DD5DBA542410736D2C4514ED1293562DDD8245129B6B319B621 |
018A50151CBBDDEC622DD2440D56CAC33D3D3B77EE3A686878F7F8D852BFDAB0 |
AD994EB3EDDA936104522B55714EDB10DAB695856D223D2FC803CC0F8230C984 |
9F14C4902333D183AE126E9FB04E12032981F32275E1E0D31FC21C53E6345E78 |
E185575E79A5E4777135A41FA489CDC04D14709434EF4A22DC729188B132D21D |
C5409C2786E5B432AB07548701E398C08AFDC52F7E314F7253B7A03A2E75E31C |
0F9DDE1FF8C0076EBFFD7666BB304A4709B16EDD3A5800DFFCE63779F4A4F022 |
CD1119E64E0415796A4F9C214C8C134E3801AB7CD34D3761A1253D4BF8915092 |
44B479F04464496C532A3598C1CA33264EDE390016CBD2C0FDE3E392E9B54F09 |
A18CE47DE159E29EA24227A61C452553B52485860113E8EF4C9B31755B6ACD26 |
909C689A8BA0C51E7FFCF1902BE402ACF3A480614A005B89420179FAE9A71931 |
A6A5262077A6BC945C058A07137969C58A15784F3811D3D6D9FBC51C38E27FE0 |
6E340238F1ABAEBAEAD65B6F85D81B1919C16E8268BEF39DEF10A3586C41E9D2 |
B3902416EECF35613C033B2BE57E54DE8589EFB3B801363ECB38B8477606D644 |
355F4A464CA0FFBCFF572AD4C25C11D0275686AE4BCA18CA51264751D4E126E7 |
9F7F3E8C5AB61B224F5159058038C1CCFC5409E353E13243DFF82133B8C518E7 |
237814C961994945B98B37B0ED30186CEF8A552395ADBB5642E9EB2959B36DBC |
894AAEDF89F92CCBB175FB972809B28A623F55A58207BDB813E8441A5BD9896D |
7593B869A9D8D65682C62082C98E63A5EC1EC70DE2A056EA6BA6C9F6CE2CAEF7 |
3DF719DBFB7DD0D688ADDDAEB895654995BDEFFDAD785E076684BE83D7C19A38 |
965BF2BBAD8E2AF92A8C5510AD1E5E3A3136FA994F5D7BEDD5578FCF8CBB8552 |
2368F995EAD17FF1B2877EF90BBD3BAD96572C25961DB73B2A8E7B4B25309BA0 |
D359D63F38A3D1B3EDD8D66D2967C3404B0E9C8846AB50F2834EE828ABB752ED |
B4B40FA71376532D135CB16994E1598D33B87239A7F413F2EC53DE8B862BAD02 |
4C15D374804BE63E9628CD00690E38E080E38E3B6EC3860DFB5C1FD1CA4D5077 |
53EAD0CEE6D8246CCB236FD6C9A70BD71F304BD3CA0BB0E4260B9D477AB971FF |
BFF88BBFF8D9CF7E663668D9FBC50A3895638352B84A85AF9625922B2958FF74 |
2AF1880AE8B9CA1D2F8C91D29E9A57A74AB2A3764C0B1DCC824690D482E175EA |
A9A7DE71C71D18349B599A4B83A564F04DEDE535E24BBAF49141D0CEC224C1DD |
44AF274D98DE765C20A8322A77409338280231F7B7BCE52D8F3FFEF8A64D9BE6 |
958F99780CE60BC3904423C15295465D66C72E321D6A8BF44BB2D726374632B5 |
F0210749F074D6B5E2579FFAD4A7CE3DF75C69FCBB08715054D0716FE5ED5895 |
9189CC91902E4F3EF9E4471F7D74E3C68DB27DDC59137C69DECDE53DCE0C268E |
457EEF7BDFFBD5AF7E950BAE72D49079BAD2DE125D946E920AFD8DCA086ED363 |
6E76AD91AA0853E3C67D087A4AF3942781F7610E09C1F84E3FFDF47BEEB987F5 |
684284266AD8DE6792BE29301D6C0AF3FC4E3AE9A4FBEEBB8FCC948E53A62152 |
01126EC5E3C091D35D562A55DA9DE66B6A03238DCE8EA475786FA567B61B541C |
AB35571A09D6DC8D936614763349E041126408FE31FB2F797E90C65D580659CB |
DFD05251A2AB826119F5284B4790FC42B715769415969D6ED41D0F92E794DA59 |
AB36EB0D656455FE590F5D401238495A2E15D338C93AC364C50EC5027EF6A173 |
CEBDF5F3373726A7A1A4AC1C5ED6ED74A6EA533DE59EE9D6ACE5B8856AB9D169 |
A7518833D66D4009287DFCE39FFCC879E7C3B4AE42116C367BB0655D6D2874F5 |
645DBF56A977DBB6E746B07DDADD6AB5A2B17A3B5D0D469D2625BFD4EAB65365 |
2556CA088AD86D5492A859B3E6435A6689DD09AE85B3B37DFB766E9FD4EB9820 |
3A5279CEDE96E47292116052C8DEF42F394B64D352E24EAEB86AD52AE87C5074 |
AEBEFA6AE83A575C710559B98825F653312B9FE6DD9F18CFA47C9AE94C885AE8 |
7AE9CD8917B44F06C616F1AE1F7CF0C1FFF55FFF254E0551A3E70EAC79B5E0E4 |
F14FC9FF33D9AB38E6C42AA14F40464C0F009450A863660621C41771294C2F8A |
200EE14F3017C987517B4592C51F459441A5E6036F497302959B14F488C9D24B |
0E3BCBC7D49EE55A1215A478E3824AEAE1DE2FAAF312DF274639B707DBC9347F |
C661E888A40087320E8D95BD19F01586349BBD546E7249832026C9B1580FB405 |
93D6CA7B71EC733C621D9BC8EC7C0F8E49A9C6B02D338BF162F857CA004D2369 |
9F94C4059478C0273FF9C9F3CE3B4FE5A826AC97217C1E3BD898DE2AB98954CF |
3379899D375875417AC0AD98F84BE625C0FA324D113CA6F92C879CEE41122763 |
2AB83F6D4DD32D66EEFEBC170533B545E6DB5D79E595679D7516252587444552 |
1A0AF2567BD7D964DF168B6567ED74EB00E5C795246D06CBC1D15CE52A46239D |
1492208D5B3A1EA0911FDC58151CABA06C27D56565BEEB0571D40E3AB6C69AD3 |
603E18B1675B454B9594E5A729CCC04E1D5F5B4D379EEC4224A8E1C38FDCEF4D |
7FF7CD6FDCB965CB160CE00D6F78C3830F3EA8728C3601F0D95B12B88E0D49A0 |
D3A6C3204CD5E0D2A177BCF39DB7DE7A7B1C4605982350D253C821A893BA3F04 |
863134323C3E3E86F5EAE9EF9B1D1B1F1A59323E3AEA174A3DD50A8C8062C12F |
7AEE4C7D76B0AF77767AC6AB55A7EB8D8CE366FF25500806FFFAAF5EF77F7EF8 |
639D916C3B0CF66AC5D1B63ADDACD99F11AB97F67C071D741053B6C4713D07B5 |
6D38F15812C41C076688880FC4CEF1A9A4253DCF829517D52E14016636B919B0 |
9DAB1CCC7B6AA93D3B9A90CCA81C08CB5AE47C61CCAC1012BD5E52A517E23F2A |
0B1A7330F464301CB8CFEB1924C048988F0E2D96A8CC02E16331874F65263307 |
8ADF9009A679CF00963549C986F927A39DD81548CB1B6EB80107861C8D3D3D18 |
2A64C9AE64C55095A662859F930FBEF9CD6F86447DF2C92717CA2E55465D8660 |
9CD1994EFFB5D99747A2347C43E7959915C05C263BC35353B9A39F6E7D3C8B24 |
C29B2F942F4C1F25934F7813699929E8F0EC3120FC4292A3E7D971E4B014B1E7 |
9C730EF88EA8A54C1F7ADBDBDE76EFBDF732177321CAA01D2AC103957BC399B5 |
26711413705BED8922B588E9CAF94A7E2443E5C4BC5346FB4C08861B6FBC91C3 |
1655749FE364E89B415DD3AC649D335D4C9C85A0B649E805CFE54F58844193CE |
CA31E8050186A7C24C7513FF3E37458C12B567AA2825016D0E3A33257D401C92 |
D0F8AEB9E61A46F579CE6D037C90273307D2889BADFA2B8AB555613A1E35D656 |
FC65B1DB2EAAD9266BFA7437E12EB4A538D6180BD08470135BF9DA38B04AB6EB |
7B052B6B6A0633B69B262C2980C60D7DC14D63274A6732ECA0D82EC4252708BB |
1341B251A9CDC682CB21E2BA75C37D733A4802473F3CCE76A11824B15BF497AD |
58BE69E346B7E0479DEEB2254B75B8BE56D54A3C96D4736A7D7DF5F109AF540A |
5BED41D86763BA861C72B25AAE42A56F34B32C09DB2995FC46B3155B598823A3 |
4FE895B33333D0FA615C6E7EE6D93889FD821F0641C12B74C2392613EFE94F97 |
5E92F804FC84FE6ABABC79D9A1871E0AC2667E8A589926FDA85CD325F1BCE52D |
6FF9F5AF7F8DFB1085EC7FE2BD114400EAF892D52ADD7C6191E086140C14068C |
3B32886DE5E5A5FBBC3F68ECC52F7EF16F7FFB5B501A942DE82E62BEEFF37A6A |
3CD2EDD10C25EEF37ABAD12EB9E4929B6FBE99C39628CB5C0C8F4D5124B3425C |
D532681E2D3AAFF178B083BD0BCDB004BCBB60CFD16EA0EA77CA29A7B0C30993 |
82A129732FE97AE34996A0E5429280BC40AA2519DB91703FE521BE220204519A |
659CB8F89FFFF99F31064A0556F66205A905AF5BB7EEA8A38EFAD9CF7E46E70C |
83A884CA587C65C53AE320A9E0E31333EC693A5BA4908A106C54C6613C417C8A |
B3424C543E9D2913871F7E38CCBA79DAF1BC9794C088C52A9C8EF60A43DF6407 |
B45448A0426A023EBAD07C69BD12099505F73C87E2FA63087D6F5D7B5E62B164 |
E24B353231F49940655609881F73F9F2E5201B961490D2C489A4F2745B7A3F05 |
C409D3211E00941226DBC5797736DE4452FE6582E288A0D9CAEA1BBC612E87CA |
C18D313CB0B08D1B3712444B76440245565E259B9DB1A95A6F71CD4C6B59A6D4 |
0F2A7580EB4FA6DDC4C1EE2451922696EEE4DE4EE36E565E0BCD1662002A7F21 |
D1409E3E840174750BEA7FAC333453CDAA750EB19D662C2D69E992340D52DDD0 |
172BBF58DA64798FC601B809D40B5C79DA69A7DD79E79DA0A2B98D5E304EE06B |
4D5C6948A00832066B18472A4D56AE5E33363A0AB34063EB820F263AB6EBFABA |
9F597B6ABAD6D70F21816F6D656DD8B0E1E28B2FEE349A4114F4F6F65D7AE9A5 |
1FBEF042C77303DD4E225676D23F38D469B5DACDEC08C3C8C8A48E673B612609 |
9868C0D67EF6C292008C0C8635298D5E911D3B76C88913FC2BAA44D2C79B6A10 |
6D02323AB6A691E9835A18555EC43B64EF89260D6DE0539FFA14390CEFCC6A18 |
E8DA52C6AC8C2C235A360BD91C244B0800C98716625B683C78D6C9279FFCA52F |
7D09D7103413375FA8BE817E7E8E5CCE387574EABB9614C733D822DE6D6AB8B4 |
82E9120557C2652CDC973254395D98E421871C42CC199E9CF5EBD763ADE991E0 |
AC24D31CEB8EC3BF79F366BCFFF4A73FFD918F7C44C2EB0BA15028A36BB98003 |
8B0CA76CC0383FFFF9CF4333C55429E8B0B81800670E1A3AE38C33F6C9A130BB |
134F3C113AC2534F3D95E6C5818BFB0D855BA90CB503C4870711439B2C46CC4F |
A68EF13E3211C91FC79AB0B505179CD5C2C4B7901E32C23417D11104039D442F |
1561E99E9D34D49E5E35A9B4121CE985284F20F04439C283B0C86037E4DDF411 |
E173F2D979F791234D4D04F470C209277CFBDBDF9610B488731ADAAF78C52BF0 |
94B7BEF5AD2056CC02EC8CE84C8C1CD063406C41EA687C34662A761EBF62348F |
46832417C9520821992314080A2C1A6818DB819D5DBD7A354323E284146B8006 |
659CE36F8B1542B3A050281EFFB6E39EFCC6BFAF51D692FD96EE7A6EDB51D5DE |
DD613D5216B6374C34CBEB5A9004DAF3136611E382960456014ABAEE59A68A9A |
B41D3B49BB59143BD5B8E896E782A3C7D8B9B14855949B16FDBAEA363B118863 |
BB525BF744E2921DD4472CDE373D57BD72BBDBF66C0DBE325D9FC1A8AA7DBD85 |
A23F39AA63F24B972C1D1BDD0DB1656B0C244D30B5FEBE0493EE061095BA04A1 |
528BD3A4D96A0E0F0C4C4CE954059C8DDEFE81199D659E1635FC57E042E6C17C |
57F6E0C040033C37AB7D03F5355A4DDB7582CC3B045101A1D2EDECE11DA26455 |
395832DD8F3C1A5218240088B4C8E906480D1815A920E17CE761760966E742F4 |
0FCA140D92078A5128017817BA223D482608CE08B45E33E37121CE8E1B8225E2 |
57E0E92C489630EF3EAF97B443135869116F92944C5946131B69986199AC41AA |
C0A46BB1E83B2C30A6DB5D72D1A86052EDE5A2B3C5185EF426F3B78CB408DB15 |
B58E6E22322F7AACC868F6193116A7906C3985BCB8C6B0E8444B965A5C1E577E |
C8F389B5061BE276AA3D014425C1890AA660E72DF4628106F82066B165CB163C |
E8FAEBAF674994A4B8619F3041B3CA57089754951860B36CF1465EC3F271F6B5 |
B732EC2A65C463F7391EDE90B792F649349B04C75F7C6B0221C51F52528A6766 |
9FF7673681F05069ED229A359E72E59557425122108588C9D47829C37D47D264 |
D11947883B1F7DF4D1C44287B2831558BA74291EFAEE77BF5BE51959C267E7BA |
01E73143BA894452522CF1A1624A4AB203B75E0A6DCC4435F933CDD0EA89EC84 |
E1510CF33E18F975D75D772114DE2CBE62961F0A108BCA534A2037E3247C8953 |
5C1685BB55BC9FA5D617AB3BDA8D520976701CC4DA50C07F4D8249E04CA51AB9 |
535B031ABD39F574EC56F7170B536DA967A5B8CA5596EF38AE9D60D59AB61574 |
759D8196229E1D27D6C6D87A5C25BDFD73C8E13C6562AC2FEC1DB20A6E019A6D |
27D0018BFEA1A156D06D35EA3D037DB353D32A4E067A7A69D18E4D4EE8EE1C3A |
C05B0CBB9D8AAB9B418E4EEEC67E97ABB576A7898370D6D9E772FF1DB71047F1 |
D2152B46B76F01E1FA96FB92A35F8C25FA8F877F3D599FC1830A452FC08E6488 |
4B6028894637D22D4BF108531288A64CB2C161C1B2831EE61AC446D105175CF0 |
852F7C01F6DFD34F3F4DD838959752FEBFBCBD07BC656579F6FDACDD4E9F3953 |
18CA5066E85545638D9F418D468C48101414E9BD0EBD0E88C288304A57C01701 |
411051291A8905A32926B1BDB1105440CAD019A69FBECBFAAEB5FE675D3CB34F |
110CBE3BF9E19E7DF65EEB594FB9EB755F7712315A3B6FCC36C66C72C3E198C2 |
68E2797788952024DB8FF2294A9450032EC6649C92129A7FF802A6912A71FDCA |
CB41A9C696A80FE334EC17725FB42E34D2A1C8C62D66A900CD6E63B7C0A121EF |
1BB074AE152845EDECE308004619342046B98428E78C1F00AE8BAA5153D0005B |
8A397EC36428526EAD853FE8A083AEBBEE3A342D83777B295DE4E69B6F3EFAE8 |
A3514EDA701A1558728DCA7982B6B447927366348BA6542ED49E1EB2C9ECBB5C |
408327B8ECD23C5DF0D4534F958F92169DB6DAAADE10976832C7BB204FC5C68C |
E9AF25310F3FFCF06BAEB966AAE8903D3307911CAC4748995B29EEF11022C8A6 |
D4E48E3BEEF89DEF7C672A4D431E828BB70A363D4E2999B4AC0D431EC6854FB4 |
4D13609AA1711DB8D36525556FBDF5565D81B6CC279F7C3277D1D50E3CF0C050 |
E45142146DC34171B6D0EAC19BC1A680619471344906FE6B5EF39A5FFCE217CF |
3DF71CFE994156D658B8832E83E0A082E3D67828FC212E6C1243D2711C015639 |
5FAC52574F65E1E0D88E49D77075A4732CDDA9BB6F7963A0AB5A1E196D8C3672 |
4D90042DC048485AE5A43BAD26CD4625B4BA43A9B39C01EC335A88B4352C4B3C |
0D1CB96ADEDFB8564D2AE5E4C9917A7F5269D6AAABEBC3DA56F2141E4DAABF69 |
D54BF9F3A2CCE2ECD1D4D8A1A4B3D6399A779DAC94AB23CD7A48C2DC8D377AF1 |
B9672AB58EDECEAED0680E0D48CAB4BABA7A864686F372DCB5737AFB0707D636 |
42AB56EE9026196D36C61AA31A46BEF7EAD55AA7A6BE6FC6CC756BD776246166 |
6FDFDA75ABCB21E9EEEC1D1819EA98D1DBDDDBF3CCF3CF68489D337A65646645 |
6E595D9BC6BE1E8A3444C87564FA25975C72C61967C4FCF3AE662531C64ED0D6 |
3AE9A493CC7FD32A3816011DC4453FC442A631FEF465193ABA295282CDD046AC |
809D470F3222CCDA099B6CB20936B1CD8EA9CE17BE05F230E45A0AB77E2A4D00 |
E6C2355E61DAAEDDE415342A1DC0BDF7DE5B5AD3369C76E989279EF812DB04B2 |
95A345423506EC872832DB16A3005615E3FFE237A4D743818034749D130E33AA |
7B316A792EBEF8E22BAEB84227DF7731070895560680EB1C6ADEF1E9B802E16F |
CD0B49883DF6D8E3FEFBEF77952044690C431FC29663C4821E9F68B25551EC90 |
86C873E23A845F085660699A16CAA1C0850B174AD6389F11C71362BC3C3E5328 |
0A2641DF92C562122CBBAD9831F0C1AD87A25C70AA1D066B95D4A77424121FD2 |
D05040718CFDA5DADE4D7E4281C8CA82723202B3DD5F6935EB4933EDEB92A7DF |
D2E93CF3DCD33EB5E4B3ADAC2AB5B3ABBBD7F5225C9F7ACE5058F4DE9498E7B4 |
3FD3C9E17C7EFCE31FDF669B6D007AEBA90F38E08052D10015A3014CDEA49C9A |
A1A08DD237B58564B0F338A0E54C08E84D453937C009923D6CF8B8E79783996C |
005DF6ECB3CFE6B4EBBFA5BC4B76A920FDB75D266F588BAE4F30C637ED9B5B6A |
8E740E0D6C51ADCAB0DA4CD66FA5DCAC95AB8D6625C90042D9AE6BD535D763A5 |
CC051869864A2B74B5B2B85035E39848EA210BA82769E6348C24D9D7F45EAEC3 |
CC90746541A4D668B53490A4ADB18CA56E2874FC21347F1F1A871E7BEC97BFFC |
656A682971A0B60EB58708B8E5965B34E7A1307A3C39317B8F6D1433AE87692B |
405FAD973D33C48859B0D8D2925C575F7D35610D20DA98E4A6B171A873AA0CB0 |
936A96E6280CDD4517BFF2CA2B51A240E63EF2918FFCC93A034688174BB692C0 |
0EDB52D7945188736F5801EC64DA36E0A1A7BA7E5CE51E3B37C64C039D6815CD |
BEA69A527089471E79A4D480CEA38480E926B30B865CDD690A741E00FCB8A881 |
9875AB68B6E7EA62EFAA36F4A1210A3CA78B4271DF9CE60EB9B54E956C0CE923 |
4C41E511F7724B96B8077AC873BC385CCCBEE36BDECA4418F4891EC71DDA9C5E |
674FEBCBBA0BF89F58F11AB2E60F7DD93694ADEB69499C4003A20BEAE9E08527 |
72671A5B33339B2195D22494CA473FFAD1AF7EF5ABAEDE800DD1FB8CFF9A852A |
E478767D47AB363DFA939B6A26DFFDEE77FFF8C73FD635F52B8DD65D32CCE0C4 |
836BA34882B06579104C95EE2EEDB691EAF8267E294275D6E2F33EB364C9ACB9 |
7357696E5BCD9D76DAE1C1FFF99F39FD7D9DBD33A5CE75E5DB6EBB6DFFFDF70F |
39444197D235A51BDEFCE637C319A993F3E10F7F580BA1ED8178D2D2C8ABF8D8 |
C73E264BCA5258A7516B87D18793E790AEFD3664962E2B0BE0DBDFFEB6E6D63A |
8FC79468D63E317FCBB1C71E7BE79D77EAB2F665B5FFCD5517AF3B4AE5831FFC |
E01D77DC81AF4CE6906C364CB4FAFCF6DB6FDF77DF7DA9A964D2B25CFD0BAB6A |
49634E395958ADF50D8FCCCDC732165A52B01DE54A47DE086FB4511F4A9BA349 |
689432E287CCE44F42972C7E3DBE1CCAB43996C3BDC7D23094B7362BA559EC68 |
46D6DF26E99359D3591A08ADB1E16C1E0642E74349E391B4D19D17D87B12EC45 |
E1D06B02172D5A24CB1A08169389D9E8397751914F28E6DD3486EAABF84A0AF2 |
35C7CA77DA6927ADEC65975DA6ED219FCC7443F0AF85F5F1D38E7B4C13F707A5 |
0202029423A760B3CD3673641B8EB674DA0E5AC4AC889663A219E66E2CA2F908 |
DC2061DEBC796C69EA87A6C95487C8307505003F0C454F49761D19C749AF43E0 |
4B3F845118B7C371E3714DE0440786AA8DAF50084DFD09161D4DFA8CAC88FC59 |
EF9E5074557445B19BE892DA653DDEF296B7FCD77FFD97E989B4BA44A98812E8 |
0B471D75D435D75C8367A7FF7EEA539F3AF9E493794273CF125870468848DC3B |
DFF94E89099AB7917B44498272D1A39E72CA299FF8C427883094F236CBD222FA |
FC2B5FF98A842FD3C47EC274C24F3428C5819A18A81AA22C6BA92034058D1397 |
5648ABC99DC4B4A7E0D9FAD20E1D8F633AA038DCEFEA6E2B03EEABA591007DDD |
EB5EA72DFBAD6F7D0BA2FC69D871895AE8BF9A732951ED0352AFB17D61879413 |
88B2C1F5D63064D17CF2BCF332BC7BB53C564F935A6752ED6C8DD6939EBE7474 |
38EB3035369C235FD2D06ACCECED1A191E966DEB94750C797AD7BBDE4589C382 |
050BF6DA6B2F8E8DFE099E4ADF94C662783CB5F4C79BDEF426B94D92DAD2AC3C |
08567C296A5E1D8A8A30206400AE1E78E001CA8E8C344B22020036898502C964 |
6DC2E38F3FDEDB9BD9734778E89210376D7549BC8CCC7BC97109A572686DD855 |
DDB0D9DAB89EF6A6ADDEA4349266EE941CC0AE6A2DEB0DD9CC6AC786D3563DA7 |
A5D389EF2E956BE5CCECA8B79A23CDFA682B4DCAD9AF86D24C13247926B927CF |
25CCAD5646ABE5B5A97CB8463DA31EAAFEB19C3E29DD33336BE447618AF698C4 |
194EBF14A1060CA44AFBC1513E8C6B9E17EB3BEEE38DE318B32FFCA57D02D452 |
DB87718358449BEB58F5DEA93E2D2856C534011F564DB3617C791231CAC8E1B8 |
E0820B343F4EFF4CE573336FD494E86AC41B394AC86E7B3371CF194DBE9E0E63 |
4E1B06029B49AFEFB4415C2F15C3F35C56ED7F4E7A1DD730B715573A8A3BCE7A |
A1DF9F7BEEB9175E7821263C417C7BF4669DD494EDB9E79E3FFAD18FF45E02C5 |
F2CB756B212F40D59FBC5D9CC1C7762668EE6773C88837E602C49E728BF6F891 |
0CE9B3928CE96AE92504AA17856FB94CFD08F9528A00D8EB71E022DE7332A624 |
80BEFFFDEFBB39B3EB95E29C4ADB0FE1DBD0E75A6C02230EFEB05365D10CE62F |
66D5417C13077EE6339FD15A805E2750C38CA11862067F4724A6E144D4F7F5E0 |
E067F43AE18413A49F6CB3F811FCDEECB32CAEC41FFE62330B8F26F9164F657B |
D75B19614E484A1DB54CB69E77EE999FFEF4A711AF2F2C5F81938E00E501E192 |
7BC31BDE205524012DF359730E949B4E32D4EBFEFDDFFFBDBE46233CBAFEDAC9 |
23341147AE4C4565BBA954B4A6D0ED8E39E698CB2FBF3C6E38C1812410044A58 |
6FB458788A73F2D7430F3DE4849663293E75FAD3E2C58BCF39E71CF25E1A219C |
4B4825732C0216D42464DD717BFB8607D7CEE828F70C37B7D4FE0C61C3BCED57 |
25E38F2B75963356E8D04A1BAD663D6BED9C26AD2CC85349F487B22638D304AD |
0C605AAA94A596875B2987A1232F33D621DEB85419AB260369181C6BE8E4AC08 |
E5C792D6F2A4155A2F51B030271A8FB610B381AEB5BB1C0B17F6799C56455810 |
093008ED2FAD0910CA98A41A1B84E4DAFF4E1A310C0E8564821E44CBA113A115 |
FFC0073E70D1451719A137E9F5F5A71D77DC719F7DF691C49751A2732487E3DE |
7BEF25D2406F095C678EFC54D7E1CC62D46A7EDC61D084E73EF8E6AF35CE3B06 |
9B4D933F88EF9E149C190E4E98CF11723D44CDA4F349BA17DF0EF25D1BEB014D |
402E51FB9B16EA047368CC8D44466DF23C0862C71043516DEBF65BB2C5F03EF0 |
7DB4E774C0E4EC5F7AE9A5969BF03D00EDC730612A29E7D17F31FA500CBA02C5 |
AB04CA7511FC29887DB4FC125EFAB2240BCD8CAC399C97D6E1D4C529B062996D |
5A869C67493F27B5C00140D018A7444C997C0B0CA00E5BA1055D33A2FF9E7EFA |
E97260F12A0C7763BA34604AF042E113E83AA4167423E876DDACD127938D08FC |
199DA701EB9B1A86948AFEA44D3C4D454C1CB22344A6274510C0DA8625181353 |
3B080EBDF6F8892A775464F08F8D5473E2B3ECAAA5ACCA493247926BAB051B3E |
FCF8F3AD1C063363EE466B56AE09ADE1AF7DED6BFBEEBB2FC3902BA0D9603B49 |
1BC150C4A6C42692A0D7B174D90A1E9EC15D5B6CB185F61EE5C761FDB88D4F48 |
5230BD90BA77FD3D8A8450618880005E4D12FE18F894A03BDF6B1B4AC3D6271A |
955650D7D172901141B5686F9F79E6994CA3B79F3E946B5BEBEE59B96A79296D |
656D6A429817C2A69D9D8D9191CE8E6A29EF51506ABDA4C6B247A88F5B4ECD90 |
79EC9201A3795B028D7B44A7209FE18C1D48966029D15E99D72A354AC9582919 |
68861569EBF9109E0CAD1521B5D92123C0E5DC4E4B6AFC1A2AFD440102B48AC6 |
DAAE1845915004AE4B61D2A217A70753BC5A9AA02D18EB178D4251C058A8D846 |
E01539C2AECF4FA6656769C322F2C8FA95AEA937A421AFBFFEFA430F3D741ADF |
02618D40B7511BEB2142261846A1F06C5CE616F3DB4F7AFD72D4F9DCC436C442 |
911E31CE651AAC118578EE9DC5041A2531AE091C2E0C05A645269EF6F14E3BED |
44B35654B13690E6E8B1C71E932A060142578010D5D0EA9B92566EE6E7273431 |
BDBEA953AA355BB468D195575E89AAC48C8A398D2D2B8DF98911E23EA266EEB4 |
3F0B96033F3186DFF8F033EF2029F54FC9A078194CC9C7F54F3EF9E46BAFBDD6 |
8D6BDCCD262E6A0B11C8559BE68B5FFC22895CF40DF0124D0B1CB9DFFCE637F7 |
DE7B6F9D2E8D8AD9C0F0892B06C820C99978F8E1872DF83890C6CF382545746E |
AA9309BB1F8B8B01ABB1B9A5355ADCC62FCB148320893F666C106BA41D9BE5B4 |
D1DB59AA8FE4F54D1DE5E18C7420CC9BDBBFE2C5D55D321C2BB59BBE7247BDD4 |
F9E37FFB8FFA9AE7EEB9E71EA6FAE31FFF388530071D741051290D00674563D3 |
27471C718456418A87E76556DD6126AE1BC20E70F98C2B10AD099074C4D9F42C |
7A04CF184F645B8F7FC22BAE37862D1894DC56B3ED2D846145C3745784C018C8 |
0E9769A2111654C0FD6B07564B787736C39695F2A6A1B49144EAC8703F87B0D1 |
E410BA8F8A74C37885C5381975DACACF9064F068AE0928B9AA95926A465F9ACE |
6895B3AF25C9DA507A31A4CF84F4B9345D17D26A67B6D5A55C6FBEF9E6B81A16 |
E56A5712BB2766B0218B00E31E93AFDD48DCDC5C7BD3F8A0AFD6CB4792C1E016 |
738EB0A5F466BFFDF6FBDCE73EE7F86AA9A0F2C70B373DF8A4D777AD3BFB1F92 |
41C769E36FD25F6C9A7EC571BBD6B8A6BD149544C4AEBCDE6B9C575D7595EC63 |
CAD3A6A963488BA695E33D2627CB8193B5455070B4A7BA545C1C17A2AE5FD995 |
09C4875C01CAB1226D42CC64D9B265E6F94339C7B6AACF212A2BF686E263435E |
5B57C32DE5C5ACC9BDD051D7D51CF0B9E4924BCE3AEBACB4207BE2E2B802F442 |
D0486474DF74D34D9A56A433B10BB635D01AF64D4CF380216337D9A281E89E7E |
4548C4A9574424801C3BCBF020E2A3C8003CEFBCF38C620C91736D5632FF8900 |
0581783A4A872228A90FE156B474933C72195AC86D79DE687BA19BC1BF92CD73 |
A70E9CCDA996BF2D90654E3787D743D4EFC5BDD8982266267B96BA8452B39A68 |
481D6B874643A9ABD43FAFB57628943A425AAFCEE8F8E657BED451CA007077DD |
7D6F576F5FD21C23364DF84E8FB9E79E7BCA9880F644CFAB7900C4B5D75E7BE1 |
83EB01172F5EAC0F3FF1894F9C7FFEF9EED74A10CC15BCA6A009513ECD07C9E9 |
1C47A57447CFF938157B417FAB33A9017833E08DF135C3B19CA5E76A889B98B9 |
C4871FEA0E5D44EEF5C5175FACCBEA310757AD1B6ED565F977D7AA7387EB5B55 |
AB735ACD4AB3B541B9DA0AE381AD717D965F2D7B64B923ADA61FCD6F4633FF20 |
D7041A43A24B8E935564C1A51034A01792E49924AC09C968A8648B52AD62F09A |
5E9E7EA26C006C3B6F06973A22FBF4F8B0D36097E89B8E98856959195EAD170E |
4A8CF62E155D803C3C4FBE3D5AE7991DF19F3E4F1026D051D04E527FD599C572 |
B2089EEA3A3140D9578B23F2543569135261F0777FF7777297436E9AE8FAF44D |
41004E7AFD36C8A56EA115C159C70A4162ECB2CB2EBBEFBEFBD2A54BA7795EA6 |
8B2D1DF31F6777F1EA1271B3DF8DDAF7C9616689F263FB70FC3CFBA130C0D139 |
31D597139E669125FA1437B374D328373533AD4D283C7A74A3C164380D9ACD77 |
BDEB5DFFF22FFF02D96428029A9C4362616941F263C669235FFD5021EAFA1657 |
02A3C96200120CE06E7AC74E75B80C4572DA69A7496A6B32B1735175C692C206 |
65942DA02643CA707211C1FCC958233F38C13AD9145FFDEA57354BE79E7B2E85 |
EF135FF6F7431E0763036108188F1B171863E45E7AE9A5706080C2CCB460776D |
60302F40EB9D3138DC0A1B2C7CDBEE7BD72B3DF56A5FB531D45F1A3AE1807F28 |
0FAFBCF882739A8DB137BDE1F5AD52860BA0F24E0F25D78ADA0EC60312FCBBDF |
FDEEFFF93FFF473363291C1FCEB428FFD6DD3FF2918FDC75D75D9AB40BF25798 |
E009C5A5611A3F59166F27FBD4B11FCD127FE10B5FD093E2E7C52B1ED64FFFEE |
BFFFFE1A00D2C795192E4C8D530B56DE7809ADC1D11199EE49A3B74B3338B443 |
28CD0A19A7F4DC0C3C9FA4E58C8A27E4018446B3D1CC3B1B53A09B0F2FD770AD |
541FD52AE5D1666B34CD847E3ECE90458E425855CD02469A3819F0CF4919C868 |
906E2857FB3A3B9C09F3F1E10D9840D77618F260763F97461E79E49132CE6616 |
2D856307FD2F9D2770793FE69A3B41621A320C1706C5354CA433B15CA7C9F422 |
BE586BA08CB621FCD26565F069BF61374C7A1D6C444E505CCC6F0C3A42C96C95 |
44D111087CD30ED934D70F51AB8F2DB7DC72D75D77BDFBEEBB93A2F3AE551131 |
A8A9E6D3A1AA50F04E9AB5697C425E95956B539BAEE52368EB2A50F0242EB275 |
223444A63ACE0EE75CCFA69590A9E88A36DBF5CC3E7E990547ECB2180D65ABCD |
391327F742C1924DC0274C40A9578A9EC9001208FDC73BC6F5B43601A8767638 |
3E14E5D0F2D3816F8782CC436FAEBEFAEAE38E3B4EB69B2EDBD6B578AAA9A6CB |
0213C8C5C95B007694F0D2D5A4188E38E208948D2C083DAF91768E084DBE8E49 |
A556ADB44687FBBB3257EFF0238EF9ECD59FEF9B356F756DCB1DFEE63DB33659 |
B86AB811AA5DAD467DDD9AD56963F4B9F2C2CD861EBCE98C0FCE4E561F7DE269 |
69C79C9181C1399DA5D5F52C0AA959DD679F7D645EE9FDD1471F9D15C2944666 |
D4667594D29D5FF7DA2CC3906E10BABBC2F053DDF5FE666565C65D5CED6A8E0C |
67504AA99B0DDFB0F6F965A3E5E5A111CAADD09976F5D6B67B7EEC8FA163AC2B |
07C5EB7925CA0F38E000060F218A43493424807309C590463CF5C6326807EAAF |
071E78E0ADB7DEAA9F6B71A5329F7DF6598284549049DD522D18934AB9085F6A |
FB85175E208C7EC821877CE94B5FB241D31AAB3742DAD3D73B5AAF3786476A21 |
2C9CB3C9AA15CFBF393467572BDD95B4A39C0C8C34563664EC979AB2E54B639D |
7931413937FF3545D58C74A854CBB87BC2583564EDC51A1969DD40288D84D260 |
48F5FFC3DD3DCFD647BA37DCE0B9A79F9DD9DB3BBC6E6D5A042B6035E72C2055 |
5D1C608612CD809ED7D4236954E44FCC10BBCDBB7D1A74A6A97562D41FB743FA |
707DB7218A73F244B14CF7AFC372CB2DB710CB06EA6DF79AE4598C199DC627F6 |
63F27D3603EE2F89568E43E94F759E79452F2388E262CC72D14E9CD1DAECD61B |
0981DB6FBF9D93821C70BFC95774DFD8F20B2F83ECC820F2BFB82680AFD859D6 |
187E108AD0ADE466C81123FA260B63E7459F03076C8B4AA16334A7C71F7FFC3D |
F7DCF3D0430F1144F277744D8A21CA454B740971143BE6B6C5B4D368F1E0FD06 |
2B8FF8A31D345D8A189A395DF93EDE521BA62DEEE4EEA0271C73FACE29A79C42 |
AFCA100567A6D9D9EEF975E18517820222B9CA8D70A4AC023D062E6EF2B869F8 |
947A67CD5DB76AC59C39521E4DE9A6B95BEDF0E2132FECF6B10397AD1EEBEE9F |
3BD848560F37AB5DBD9552688C0C5592D6BA7AE7AE73465EF8CF3B069E7B64F5 |
68E89CB55163DDC0EBB75F58EEEBD5CA120D9397A399BFEEBAEB3236C0D1726F |
35D9ED6D7FF5D9CB3F79F4C99FE8EC94406FCDE9098F6765511B66F4FCCD5595 |
6ABD3CB46912D6A6616DA316CE3AE67BDFBCEFE2C796FDB8395A0A1DADC6686F |
A80E74555E0AC8C64C7F846808E0189765A6D5985B22444158F33EC6AB29F9A8 |
CFA9233386041C373DAB29156427D8CB647B60E5645584B58E4B962E3DE1A413 |
35B20D66CD5EB57C7967487A4A9D3BB78667D52A61AC21D3B157DE818C95505E |
3B5A2FA5A36802CD470E180C1DA194914F944B8D52184BD27AB3551F93F40F5A |
575992CDB43C5C2ABD9836EB7DDD2BD7ADDB6CC182A71E7BBC9AF357B3218130 |
C59B416FA495BFF9CD6F3EF2C82364CEF6DD775F3997B126488AC6857E289815 |
9068D34BDEB89F5DC8AB7FFEFAAFFFFAEB5FFF7A8CC58AD9E3C9F0853C55CBA9 |
0475AD6994C563225898A01C7EC1BAE2E7E99FEA7FCEA1A3E05C0FD2D685D0CC |
D2D35766FD1922D1CF68E4BEFB505903C153347FFEFCC71E7B2CC9997E34032E |
A27AA5F2D9262C819952419E3FFDF72587FFE29A80D28110E5FD086FE990C804 |
00BEC9335B34A30328D482ACC200D010F9E646F27171D97437DC7003A167AA69 |
38FC7A4853F4513740FD3DF9098D0D5492834221CA40FA1898DE922DE8581B9D |
677AF29791AC2117223020C10472D145172D59B2846789F725A9FCB4E8FA400C |
D745CE93CE33B1B86DB7DD56CA8F4FCE3FFF7C5D1FAA51F7B8D0052923242B88 |
10B4B120DBCAB89AF675CCFEAF14926AE8EC0B8D8EB71F78CC7079E673AB0666 |
F675AF191C5937D248AA9DD55A67DA1A4B5AF55A29D9205D75D6617B1DBBEF7B |
FBFB3AE76DBEED4FFFE317B367F5A6832F8E24354D17DB8048A86EAAB17DEA9A |
5B3EF6E15D3699DDFB9B5FACECEA9D17BA5E1C5AD52835FA7AC2BAD124A49559 |
F5645532D655A90D572AA5E166AB3FA9EA26AB24ED7A9EBAF233B71DBF68FFDE |
EE30341C162ED8CA3866C88B106A9A43702F3CEF8E3BEEF8E0830FC6B48E5E65 |
36128E4B884A20C1B6861C36A3FFFED55FFD9596D8AE619C12B467AD49D6FACA |
73E527CEC1645D096B9DABD6ADDD74C1E6CBF2A4EB067337C8944152DD3CAD6F |
DADB3363AC2E83AD3B2423215D9E730A759782344157C1C719F2E6C0B590943B |
2BF5B4D568355B8D30D6CC5B1697C39A7268D493E134F46DB6E9EF9E7C5237EE |
9B396370D51AFD24CD433DDADBD446117677CAC4D9784C316C7647DBBDFDE2E0 |
9B43A6D30B97B4E882D78AFA35EA2E3A680841B29ACE37948B8E8CA1C0B7B8A3 |
9FA959A02E06FA6283AF2D9F377D66B854B0C13372433FA1090253FEEAD64960 |
6C19F613F7708C012021A2B00DB94DC3C663BDFE8CB43C17A7401A31A84FDC17 |
6BD271EA0BEF7AD7BBFE5FF8041A16214B30A024006DE3C7B5C7321B8F3DF658 |
87D13D4D4095DCA939291A72E99A927DDACAFA449B9B76456C0E89608AB0DCBC |
4253AFDD6FFB310E7A3A56137BACC6ED422FAC2F0352D2F841DCC7782C7E053E |
2ACEADE94312E3B6356420C372C1624B0C193195AECFD136CD5487DC95866675 |
9B6DB679F8E1875D1B4996CF40054742A8A2401B4D0301ECA855E66DB8F1B265 |
CF967A67BD71B7DD57D62B3337DE3AAD74EE34F4B3E1D17AB5B3ABB327ABC36A |
8E0ED54A69B5527EBEDE591A5DB3EEC5677A66CC7AF4D995DBEFB8D37BDFFE96 |
EE30BC6A246569B49A7A73DE79E75D7FFDF5D9F38EFDE294432F5EF9F49864DF |
489851AE6E34D67C26949F9F550F2361EE48F262B5B479335D566ACD2975AE0E |
E559A5FA8AEE99E9DAE5B58C07276C10663CD535B07083BE99CBD6FC4A0AC04D |
8730149876A49BA337F102C500737B601C39798A5A381873F55BFAB6A2CE3115 |
39DB5C2D260CD0036A5689706A8F01C0052B95855CF28E026912369A3FFFB9E7 |
9F0BADB492946412F74A3E9692CDCAB5394DB908C99AC6B0166CCEACBED155EB |
BAC2B826C81F2C73933A727EBA0C6394357CCFDEAF4D4ACF55931535299B99AB |
0607578C8C567ABA2BB58EC1D5AB92BC6301BB2DA647764D865B7A784F225E63 |
EC80831B845289406AFFB8F2E6E5E0DF6318E8D65B6F4D630CCE9D6148A1688C |
6AAF4E73482459479822388707806CB8309E1BB1ACD3A03059AC182F8BE5A7EB |
EFB3CF3EDFFBDEF7F4500C78A79D7692DDF0AAC843948D198D6034A04D0BC957 |
3401787AFC9218B248E6ECCF70500C10D2AD4974E95ED363BDD29C06F52FAE09 |
E80D70E595579ABD0E9A013C71327BACBACECFB5D75E7BCC31C720979DFDE319 |
C0C0384F8039809B89C517EB0C002A71F90F1F0293004FA23902934B89B60B56 |
C3FA9AC005207108023E58DD82C664404A5CE5CBED603591BC5EB66C19349F7A |
10FDF3A9A79E92EC5EB468D1F1C71F0F5511FB80DA9918F538E98B49D326C36E |
E52434A306A27133FA50B45D6BDB52D3D534A6E98CBEEE50AE7C68EF7D87461B |
63A132DA48FA67CD6D0C3CDB0A259660786430AB83EDA825A1554933CD97942B |
2BD68CE8CB19FDEA63BFDF7EE1A6AB07EBCCED49279DA4E1FDF77FFFF77859F8 |
E8E3B75CF644A5F242EFF63F5A3DF6FA07FFF30B8343BB946B43CDCEB961DDF2 |
AC3B6F3AD2159E1D091FAA868792D09CB1E99B973FF5C0A61BCE7A6EED93A1B5 |
7DA3FE58D21AED0A332A330280716B74B3CE21ACF1C6CA45F763C785DA3401A6 |
09BC20209A10FD9A6190BE80BBF861DC15CEDC762EDBD677886A02D6FCE4273F |
79DC71C7CDEA9BB16ACD9A9E997DAB57ADDA6ADB6DFF987B72E55AAD9CB63AC7 |
1A1B86A42FA4F342A5A3A3B66274A8B3AB9A8CD6BB0B9F20631E2D854A1A6A69 |
A6155AB9D390649F5724EF9FAB242B92D68B633A53A50B2FBEF4B4D3CFE8CC34 |
7D536E8254D9CCFED9403FE7CF9FAF05A298864EAE18D1FAA7B900E4B151811F |
221419BB8B5FC57154433FA6DAA271B91FE84CFDEA6FFFF66FFFF33FFF537E33 |
FE3D395E2D90BD13F20ABBEFBEFB77BEF31D683C9018245739BCF07AC6E84C1F |
D869E4929B4A119E25B9C81DF527C364A6479DFE7922D1C571DA63D07F029933 |
000748249AC907D9AD95C32BCFCC9327D0826A71DFF18E77FCFBBFFF3BC6DF54 |
7941AA2CC713DAAFD6634FE5131C7DF4D15FFFFAD7350B1C5100F560F9F106C8 |
EA60D611A82DE5FD55B0AF6DD3C508137F5F6B499C51D74728C4C07CCDFED2A5 |
4B8F3AEA285B01485E5D7F871D76904570E9A5978242F3DE0D13A24392D1546F |
6116692F7A4890EAC41C7C00F562F870C8CF157E68889C41BE63056957DA126D |
D27936A0DB2E2D76B10BB28C0F39F5D453172F5E1C0AB885FB54ECB2CB2EBBED |
B6DB5468B3DECEEAD070D6D97C664FE7C0E0C8B1471E4A2AA2A3A70341D01893 |
88CFA443AB99A7EB6B1DCB9E797EED6063C156DBBEF8E28A9191E12D36DFE4A9 |
A79675768E17AB5F71C5159A583D3220A2879EFAC5F37F1CE9EC1C5D5B7A7855 |
79FEFDFF313BAD6DBBEC855F27B3FFEFD0EA376FBCC506032F0CCEEF9EF5AB5B |
DF189A5B271DA574E489306F41D7400843BB0E27CB4275A077C6685FABF4ECCA |
4CA083AD8A3B4FC0798716945970E491472E59B224669A6C8B0E3169EC1C2046 |
44FF5826EDAB4B2EB9E4E4934F36ED25C718650F4616E6060914631F62EAECA1 |
C1C11298A29EEEE1A1A1193367AE5DB326C30D65E5C461A35A673A3622FF607E |
5FFF9A75ABA5DBE796136902A9E252481AA5ACEA583AA3D64A4A496D34698D24 |
ADBAB4429AAC4BD3E74373559E434E5B19A545AD4A5BD0023A92BE14020A9107 |
6CF319EC06416A36869387617DDC0476435AB42F250B357D5C3E8E7284A209B0 |
7E4B169D8D61E04688DAB9384D2AC74EB20CD56B42F2F7BCE73DDFFDEE775DA2 |
85CFF127519E311F0CF11F349F1E9CE0A1F1A9D330C1FD7922D16E16843DC0BE |
6D9A8409D1B63628EA9F91B7708E4777A4D193D77D9AF50AFF0FB04316EE312D |
8F29F8F5271D27E97CBC07ED92D7BFFEF5B21F01B739AD64C6B178A7C6A6076C |
AB346D70EB09000332F408E6D85ED686B63FC8ABCD7B8A33C6981213C1368845 |
2491EBFD8CE7B1E77BE38D371E7AE8A18E59992C9EBC10EEADA58C154988AA67 |
DB5EF8D16D894D04505C5E170A3A1DE7EEFC20615A9FA0BBAB03777278787483 |
D9B356AE5CA57174D72AAB9B9DBA418000ABAF4FFF6D0D0E69D5BB4AEB86C7D2 |
5A476F68B464F0572BC990B675AD6BC905E75D7CF1C57A8ADB6FBF5D2209F34D |
9AEFB213CF5BF9E27FCDE90B1B6DF8E6E5CD8E77EEF7A63169C9DA9B9A61F558 |
75DE8BC30B9F1F7CB652DBE0677FF8D663CB9FAECC19E95EB9D9F0B717AF1B4B |
FA3BC3586983758DE59271957A662F13EE2011423CC74F811C379B7A589FC431 |
CE1887A2C08A5ECA21829C511828E9A0256B03E74132C3D29F7DF6D9341C0511 |
48DD1C05310C437B230B8EAF5EDDD79B37411BCD1A0074CFE81B92D552AB96EB |
AD72ABB969DFCC6478A85A2A971A235DAD524F8E316D6655DC59E55835A37CEA |
589B34D684AC5371BD15465BE5B5A1352497A2BFA7D94C870624A9935AB536D6 |
18EAEDEF1B19196A0C3775530D40228F2671FAA7BBB16A0636DA6823C235F00C |
BA7134C939FB04EEB7F5B6B7BD4DBEEC4D37DD142248E2C4571B5F902B8A9A45 |
6F5E87014281F9D121D26EA47041B682F96B755368DA0E3CF0C03BEEB843DB92 |
D6750E0ABD9C8C715C35ADAFD14D64D75D77FDD5AF7EE57A607307FDC9AE242F |
FF954C417461EE0A7FE1AD6F7DABBC25537A58CE00B07CA5647F48062210F675 |
9CA19CF4FB642BFFE29A00220A3D1EF24E537FD965979D7EFAE9FA4492E2FCF3 |
CF8FE3B01ABD7945F00701967150CD9065CF40EF6559530A0BB420441889D80E |
62DE2194C6A271719DA77B5214E997BFFCE5C30F3F9C38B24EB5B623B4C3B66E |
E21AD4A4685DE44BD1051B296FF6A850C0CBE26A6A282D75419D96F3CE3B4F33 |
33E93C1BB6AC67070561C915226D1767419C6433A46C9A9393C7DCB2BE5837DF |
7AFBC11F3F5053DCDBD53D2029561BEEE9AA69808D964E7B323C9AEA4DEF8CEE |
356B4766CC9AB7765596BCEC29A563AD46ABD23116CA192C265FFAEF7DEF7BAE |
5A3AE9A4933A9B8F35D70CF557C2AC991B3FBDB2F9D3C79FCD7BAF94C2A8E664 |
C5F55FBB312D6F385C1F2A5566DEFEB57F1D1CDD72C582FEE537EFD7D337A3BC |
2EA4B519EBD2A172B53FD5DF6BABDB103BBCAC4D5D4FE728D0A42852BDB9FEFA |
EB8F39E618DAE6489D6841290F76DF12BB71E03D7C8C5D0862386912559E8F2F |
5367C7D8C868AD52EDC9F7DEDAB56B36D92423633FFDDCB3BF70DD756BD6AD91 |
15D11C1AE9CF3ADA3437A874351BC3DD19A7907649D208CD56161FCA20B5C3A1 |
B23A480D86A1244F1824A11EAA2DFD4F6B4C3E47D2CC93BDAD66476765646C44 |
1FD7CAE306816B1DF04ACF3DF75CE92DD7C1B8A79B85D744F9A59D298D0BE5B2 |
4177D30764CCA5188A601A6516849558B566D477DAF1710B77F3F3B8FF84F736 |
76242D62B8E334387AE7097864B9C2123EB10B6E0C4F28921CAF963CB44CA06B |
B739B4EDB5831039EBACB3241239AD2ED983B67D1ADF6BFAFB120630A1CB9FC4 |
566DB5D556E3013B9D04B9D8A63C455B4EFA4BAC5DE49D7166C83EEB5ED71BC7 |
29FB10D1C6BAB02D4E1CC1C34C60D1C97442B7E04334596D75C2AEB2E3FB311B |
D2341525F13AC5AF36EFB8337F51BF1737585FB870A1C404B16364877E85C662 |
4ED079DE7CA624B24B08D4DD8068831DC97C90ED01F8A143A87B1911CCF1806C |
84CA0077108A03A6B1F11B1FEC97B3ABDCB03EE67F0D791C86BD4B1B2F97E3C5 |
D549E8D471EEBFCEAE8191D1CEAEDEBBEEBD3BD4877AAB8D538F3DACD21C0EAD |
E16D763B352DFD7CF9FDCF3C913CF2FF9DFDD0F09695A1C75FECEAD97AF5F0EF |
FBFA37942FD41C2CFDE09FAEE96E75F78419734637FFAF7BDEDFECF8FF42E957 |
A5E1B995DA8BCDB19E5606A39F125BD57614BDB8714EDE0E25CD6343A444F544 |
18A710DF6AD761EFBB125E3FD7B6049063C47D5B74D12E1D3EBE4F876194EE99 |
A1979698E1614103F3C5C50430131FE638BA55CAB975097458F7BB2B0355F138 |
2586484D2341B802C7E78D6F7CA32E4B439EB478F9E992A894D745B0A168E6E1 |
445712714A23BB41B8D945B61163CBC900715A103B5F0D06046018D7411A58CD |
60728108D2178E3BEE38B911F8CA0B162C80E885D31A530091ECA1FB10198836 |
45486D3662016E34A2EA98D2CC0389132C429456DCA6D0B3BAE5965B3EF4D043 |
AF54B2CB28BCF9E69BE5C780B74C2272FB57F44AF33630EE5B1ED34E8C1763F3 |
3D9CD9E90B9A267DC5B6274BE82C6B88A2F9F104B9401CAB01AD4514DEFC7164 |
26390621D2D59477B9DD311055398FB7DC728B9EC71C93D34368A79AA964FDDE |
552EC1A7CBB16E21A9A16D014F211A8212D310DA1B9CA15FD99A46D4C59A8027 |
02CC40FA01AA3BFC7476B91EFFE8A38FBEFCF2CB6964666ABC5010B24A7F7FF1 |
8B5F8C7B1BB5098B693015D3CC03CB4494F9D8638F958920875DC62061476027 |
28A152D406D60E16C73863C329559A21F9EE0FBE5F09CD5A523F64BFBD1AA343 |
FD7D61CBB71D3663C69A994FCFFFC91FBF9EBEEEDA5F0FFC7CB3AE9ED0F1F4F0 |
EA6D3BFB57D5474BB530E3D16F7E28A4F37358FC4898D37FE80187DD76E52F1A |
E9AF6774ECB07AF4771DDD6174F895ADEF549A80A0BF9EF780030E907380992F |
4B59EB0B5FACC39213AF89440B79756B69FD7622719E89E596ACF9E31FFF2871 |
F0C4134F7046B8884CD42BAFBC123481D651C28B9F18DD60FEAE4935816CFC4B |
2FBD1498A00EC52EBBECF2DBDFFE964A08AA6758C7242A259D6ADD6D5D69A234 |
18D93A787569F4726CCDF1E8364D40FACA8CE29A4C496DCDB0D42DA6031D25E3 |
429F1095B3F9D526F2DCE936E42E1A886D861AF350B9EA5BE6DA638F3DA66F6A |
05DFF7BEF77DEB5BDFC282A10F0125A56465A1F5FFE8473FFAC31FFE50038307 |
CC87DA2C843C8B790D4076D8E38FE1B671F8913A32BE6076DB57B46FB7D9661B |
F0E2E6A1712FE257741DB755D7CFB5251E7DF451891DC996A38E3A8A8E7B8943 |
F6EEB0414E63AA38B5152F35DFC66960868C27150BDF221490647200C0EFDC77 |
2CF6D1BCAEFA82B68E36319079D4B89C179D1F079A1C2C2228847D6AA01896D4 |
546AD327AACD788CCF70BC35E511D390DAE178BFF18BC7D750019310B5307C38 |
DEDCA10041593DE09C029D8AABCF89EDD2094F737EE28927CA854403B15E8E41 |
836F990A2FFC4A5FBA059012C3B7CC5F6666A7107117B3136C6BBCA4EDF4FDAE |
EEC1E1B1FBBEF7FDE191A1230EF9785F67256D0C9F73CC25FFF49B27FB367A60 |
E6AA99DFF9E7EF3FBEFAF3A1F1D639E9666BD37A1A9E2A852DC6C26067A88D84 |
F7D466FF7A6C706D18DBB16BDEE3C3CF6FDDDBF79BE1B150ABCF2DF7AE1A583B |
334956BD9CC7890F8C25757C5693885E82953580CFB28926DEDA871201E4E471 |
8BE34AC6A9B067DAA548E7B8100151A2C585DF549F4BD01C74D0415A624CDA98 |
1AAB8D7ABE4D13E8875AFA18B8EC326083D989BE42E83D152C2D893863EC19C7 |
CF159B177E33A94F001700C1DE382A6065690331CE37B43D176E935B55B71991 |
9A403D883EE771A820C1978A6D5910229A67A38FFC276C35A2F6FAA1FB97C432 |
1D87C6641B2640244A118ABEBF08B18D37DE586B8A228C67155343EFF5AB3F23 |
23ED54961E2D6E74F86744F559A9534E3945677CE9D2A56D4D64B3CBF9A8C7F8 |
01666AE2CBB23B9E3593D07184581854C2C4DA60D3A832D100AA0027783B7A24 |
BE668CAD9CC810C94FB430D4D04E83C79F280B62147FDB764C8A72360DF5C823 |
8FBCF6DA6B294FB78D1FD68F42F0092C25EED54318070912A2D21B9E8B1D1CF2 |
569764F04211826BEB8AA76BF27D1CCFA4E0284728C776EB3411B089E779E217 |
66E4EDAEE822A97F2E5AB4E8B6DB6E83C1D850719FEAB8FE05498A35373C3090 |
E3E8CBB77DF5CE175E5CFEF4534FF67656D356A3525FF7BBE72AC3CD27BA06FA |
3AFB9FBFF1E6DF56E68E365F7831E96995C6B66A867ADA7AAAD6D71A5B3DA7AF |
6BDD68732CED098D553B84D2EF3479D56CAF6EB8EC9950EE78BE35F6B24EC29F |
D404EE4F27E1B2E79E7BDE73CF3D3A0B31FB6358BFAECA8CD6647490D471A6D1 |
CE255B88E416AE9204930581AF6906887860041C48A171F1A97C02CE23FD67D8 |
932C071D99F473B99577DC710729AE69D69DA3E7AE5378F0CEBD4DDC4E316423 |
D604140F69245B6CB105FDD35D10F0BAD7BDEE57BFFA5588ECFDD853E155295E |
C42435C3F2A24E3EF9649D3ED2721C8A7815D8FF711D03B544BA9A070F5291D6 |
6088BB72D1A11383D23A8CAC0F1C366E46E21D1EB39423F1F506A882E3A8FC8A |
E78AE12D7114F7E5BF40A813C2625BC659E597FFC2B6234363240E7633819624 |
44BD0E607422063D55AE398DFA18E358699601E7009E2572DDC67FA9E594D0DF |
638F3DEEBBEF3E6D4AD82E61C2C228035FE5E49E215FB412B3FAD13F39218869 |
C9AC254B961C7BECB1EEAF129720BE4C1931BD2640BBB09B91BCCE94C4A567F2 |
5AE47095F3B6ECAF7FFDEBFFF99FFF1911109B21B15BCDFC4012C991A00590DE |
C836B1DC7FED6B5FFBEB5FFFDAE62445CE9A81CD36DBEC98638EF9D4A73E4555 |
2D4C1E6DD189B4A01309936985692482D93260ECA1CA0FD59544743DBC08A9CB |
CA90FED351BFFFFEFBC9D994F30667B5AEEE030F3E3C6D654EEE33CF3EAD71F6 |
95BB5F1C6CFCF1999FCFE9EA5FB3EE8FDFFCC6FF3DF198C3BE7AED2DCF8D2C4F |
CA8DA60655EF96BF3736D2ECE808CDD1EE59B3179C72FA3E4B3EFBA9CED0FDE2 |
8ABE5618E89FD5B96A6045D2F8DF221D2C76F58CF41C85851FD304EF272DFA7A |
B6F226A95A627D4D0FFBDEF7BE573A830E1C219202B168338F059482FAD5BEFB |
EE7BF7DD776B8BEA9FDAFC5A4D5D41CEDF6F7EF39B90A36EBEFDED6FEBCA49DE |
4B07BE7734415C6CD8B6452181883DE018758DA36C885A9C656D7BD90C77DDDC |
44B6F336A367524DE044B10789835E5EBF3732C2A154B4F7887D0EFB049B6FBE |
F9E38F3F6E53929DA6A730EB1F8D220089C1EBEEB49C5690A3A1A7D0CED47BB8 |
9031406390180247E757E7CE25E25A1D2AF24CDA8890D405F5277D5F9AE96B5F |
FB1A1926D6F7F4D34FBFE28A2BDEF5AE777DEF7BDFC30E76537B84388FF34A77 |
A94D464645AFF5F0F2727E6DEBBBF7DE7BFFF8C73F3615028F26E7E0A28B2ECA |
AA1C980E242C95B4346777CEB6ED650A33026A8058F046319100EC5BA6000C60 |
795EF39AD7B0E9D1254EA8C6C862AB19779B627323DF59F2B4A8A3732713DD4B |
B2E6C0030F5CBC78F1F435BA713CB72DCB1A268B0E8110258F6FD8A28128A130 |
01B4037EF6B39FE1ECDBF621B4473AAB0DCFEE24049B5EEFB7DB6EBBDFFFFEF7 |
4E426A2DB404EC2114B33D2A8251963E0B162C905638E79C7326C6C1DBCC9089 |
EECBC417D121DC76CA7060ED264466D44D2874A7A41BED91F58C04F434DAACD8 |
7DE50B69121AF5D03F7BD6E1871D3967CE06799D7947A3B57ACDCAC1F99B2EF8 |
C52F1F6A350667F7D6FEF9875F5FBE7CB051DF36A9BDD01CEBA9CE783A1D9D3F |
38F674ADB549A99C36926737EC7BC373AB1E0E61ED669BEE78C6B9071D7BE299 |
A1DE9F2493F3B04FCC18B7A53A637DC94E76515828CC491F36AEC69E7CF7BBDF |
FDD39FFE94AF8143D7F683E1CE385D6F1E5FDF8D33436E99227AB027B431205A |
A7CB376D6611A3A4078D099E4613B8F8D68D1B097F9349D627BBEDB69B16E84F |
AEBBA310C4BECDB83E1150175BF1934687426E90D1CAD11A51E3A44729791730 |
29A67F68530649C189CBD5F42C4F3EF9A49CB6FDF6DBEFB2CB2ED39FCE3CF3CC |
4B2EB904111CA2C0720CD3080584D418741415ED2838564EF5D9D87753745D47 |
DB7EAFBDF6FAE637BFA9BB7FFEF39F3FEBACB3C8DE6FBFFDF6DAE77AA3332BE3 |
C0F4797ADEB81C9D9160A5E958EDB2CB2E0F3CF0C09F57AFD006C7FAF3EA0C2C |
1624C73442D418223A13E65801C80B6354A657382C1895BD06C83BEFEF52CC50 |
8079D08AAC07D008537751114A6D0BE29EE48CAE7CD04107DD7AEBADD2D53A72 |
0E9339EB6298309E2677018D931434CB930EDE964E1BA866AA8CB129316860EB |
BEA3B83E46501858C2E4E254C68990B844DEFF4499E13D948AB6ABA65ED1F196 |
F4F9C10F7E8025E2760B0E17B87522F8165BEB26E4B073E633EC37D34804581C |
1C94A48EDAA1DE367460CC9A12E359F59ABB41C6BD31B07658E6EFC7F73F50F3 |
BDDD0EDBAF185AB5E9CC9E271E7961D6C632B1970DAF7E78AC3E70C77DDF4B1A |
A1D29AD9086B2AE9868DCAF36963E3903C1B9290B4BABABB1BA56A3AB866839E |
BEA175236B6AADDE9034EBCDC9E3DD71BC3E162E610A4D000D0E3122B42F3890 |
B84903EB18F79920C9C61EF6B463D3B0C4DE4E6498A45C59562E486D0DF125D9 |
10328FDC1E032FDEC14F0785A78A0EA133CCBCADDF6EBDF5D692652C048F1037 |
2499BE733ABB0841C34F386EB17E8D53C71335C1C2850B39081FFDE847E5E3CA |
8AD74824047FF7BBDFC9F69430C55C68A3078FD156962431DFBBE3A5D8A91A9E |
6197A81997BFC56ACC5C0E21074AC22FBBF3CE3BCBE46AE5CDF2B81D150CC81F |
6C2F7EA89153401E8A789D5B12317843639CFD769C163B980724EE24F90B2FCE |
2B92E0EC3153338502D6380D0DC1A42FDDDD1DA8E080C2F838FEF8E351AE09FB |
12A9040A8AB6F2D3E81CF43C009E0B2FBCF0BAEBAE7BECB1C75CA91F0A242261 |
561658328BC5731EC60FD3E6CC720875D234F5049D6356556D0252B20C185751 |
F7F5F273C7693A5420A69BEB372645464F8A22D5549C74D249575F7DB5F1E6F6 |
5A78041779315418EE2020B288E7503115EC1E84350709C161E9E3F09ACD0AA3 |
05C890E367906070228B58E7444D405228D601B16537D5E23251871D76D80D37 |
DCE07E15984E64C293A88F36B6155B420FAE9B66A66EAD9C6A8E9B69B5A4F1C8 |
746D2D5E7C9E3CD366C78285B3864AE9D870AD353C98AC5BFEF8687DF6F3CDBE |
FB6E5BDAD1154687B392AA66DA15CAC3D5AA0ED2E8461BCE7DEEF917CBE9BC52 |
E70B756DC97A7F6F773A3834286530E9F84DFAE857FC68F112A309F07EF4A477 |
DE7927101497E6B2D024A5A8D18B91E03135055B0E81CB125B8012477688C3DE |
AD3D4E5786A7795D282045675F626362524D70CD35D71C7BECB1C40D70D0F5FE |
94534E59B26409C155500C31F9D2A4F3E6322B93DD8609CD41278288A6F20974 |
3BDD5A6A405B172C1CD7218AEB7602B6D8622FD64332E2DE8371E09A69213286 |
6876F81415689506D28F26B2603164D14B13840288D846711A4F888F7C6CFB7A |
B96537A04B9CD5E774F01E779C37C41518F69F61CB87224664ECF89F811D22A5 |
67226E60E27E96AC83AF5B16948BFE59218F7CC9FCB14569A88F835F61FDDEB0 |
210A4A22A11076FCC9510B9F52667CC1820552922C615C340BE0D7E52720EA50 |
D42007583C0018A79F7EFAE5975F2E3D2FD701A71BB8370EA0C3F136D35C9D28 |
134FA613D619EC1F3D3D5D85A5AF59CB224292B4BA02C6A0CF27135A6AB446C7 |
465B212757E9EE19181AECEAC91C8534AFDE7C468EB96EA4F56B34B6DE6EBB47 |
FEF0876C026BE3A765BC19D348AEDED20085DCC61B6F9C09CAFCAF18AA3E6C56 |
57F80D68759DFF2BAFBCF2ED6F7FFBBFFFFBBF1B3425F313A27CFDCA12CD303B |
A439664E529053526148E095240437628164468D336697B446DDEBD60D757549 |
138C2122F216EC61CEDCB92B5E7CB19A83BEB41FE40D69E337EAF59D76DEF97F |
1E78A08213D66CF6F6F50DAC5B77C8C1874010AF61900FD720A98F931BCE69A4 |
109D5C9656FCC8238F94BC7BEB5BDFFAB39FFD0C4F4BDFD1939219E23B3C5DDC |
8E4257D6AE90B94D51159FA01D99071F7BAD3E8919C2CA9AC90CB63B34929944 |
6B57B3BE8D56736474247B163D75BDBEF1A69B3E9B872E3B24BB8786E66FBEF9 |
D3CB9695CA890B79AC72D25C61190946FA0764378EA375462CE8B1A5B007D113 |
9C05833DAC0C90C2C81DD62E2D3AEB4ECCF186A2D300FB0A64DA79E79DF7E94F |
7FBA55B43161F698222A31B133600470A502C7D3DC098CC186201932CB2FEB33 |
C06F8E10B485A4903FEE0F8ADD3D77EE5C0D438E8E569FAD08F9849B48F35FA6 |
C2DA85B470ECCD5820FAA65209DA429A014C617BF91671DAA8E42F4951389384 |
28C0149E9808F4698D793BFC219AC075D49EAB508017683162A413A920C0E5A8 |
01BA6D638B68BAB457750BFD332EE3685324A130296C682605D7E94BB5F75E09 |
6B4227096D3AB5BD8975EF05175CF0D9CF7E960DCD623BDB161BDAE9FA486400 |
2A7BECB1C757BEF2157DB2DD76DBFD219795D84414DD982357CF80A26257A199 |
51C8F00198F8856655FAED073FF8C1BBEEBACBF50D3C0B83D73692F7AAA9FCF8 |
C73F0E50C4111E26306B12D562D9E84F909A27CEA9F54C9736B25F6DB8F146CB |
9E7EAA5C2A4B52D07EB04473E0D1D18C7BF2E9A767CE9E7DF8E1877FF9CB5F5E |
BB7A25A665A60092902BAC2C44363C38627C144475D68813E1281C392C028ACE |
C2FADD7DF7DB6FBF6F7CE31B34367AF4D147A9E3270F44F7349D900F7DE8439A |
7637A00E459A9DA033E1291C6D0A1DD1BEADF1DE9C3D3927526BC30D37A03F73 |
230D9267B57C21D288425C6274F7DD77BFFFFEFBA514E76FBAA9C6A671683D5A |
8DA696400B04F8952DAE07A739C9ADB7DE8A25EE4256B68A3E71968854F65E7B |
EDF52FFFF22F3A9FF432E43A945C4853B2810F3DF4D06F7DEB5BF0136022C4D8 |
50DD54571E7F8AA8D1205F9BD199516A8F35EA3367CD7AFE85E7F3D07898357B |
F6AA952BBBA47B0606FAE7CCD137572E5F3E63D62C69E5CB3FB7D4DDA9D86999 |
2C6E85EEAE9722661C01AAD25C81112263DF36531BE411BBD8C21A59AC097FED |
6B5FFBDFFFFDDFAE7C8C53A06D3AC0250E9A2B0D80E1915A78DBDBDEF61FFFF1 |
1FA1E88A85CFA7EF6FBBEDB6B29D4DE1890AA17815A730CE45992C81BBC39318 |
CFAD7EEEBC08C340CE72609D5A43821BCD4837313DBE8EF3FBDEF73EA2B2FAB9 |
B6B724C6FBDFFFFEFBEEBB2F268F21518C1B44DC1209609334B6FA8917E15540 |
6C6ED4BF83BDCED2D94B4B724E2463B1DA246F7CAFA9CC730D5ECFFBCB5FFE92 |
24071E033A350E01A545658F0F2977E468F3CFB3CE3AEB339FF98CAEA021699F |
9722AEC989A91DA319517B5CDF60F1F1F260A8E475C0741BE9ABDFFEF6B7C09C |
AD000C8430A4578396EB20CD461DE39E7BEEA9B59195ED09F26DDAE2B3FC93E9 |
6609636C00263F064552F408B43FF89AD7BCC6690372772ED08DF14EB6826D6D |
59B17945B1C47187F323245345B64F1959E048C8C0C04BF15648B0658F6793D6 |
CC909D6F7BFBDBB37CE9DA358417FB66CE2857AB2F3CFB6C4DCA6C7878F6061B |
10C75F95D7F874F764915C870E25266A1DD5B1916CA577DB6DB77FFDD77FD587 |
B2CECE39E71C4CF2363B9181612F1349E0D887A25A1B4D63B081775EDC510B2B |
CF612BDC2CA7B9305463FFCCA5553BEDB0F3FF3CF83F9572A5D16C6CB5E5561A |
B00EE1B3CF3D9B26AD79397DBCE6B7A7B77750673B375E86060737DA78639D2E |
29805A9E95C21E191B190D11ABA584B57C02ED3ACDAAD6514FF48FFFF88F0802 |
221B202CCDD841660534611BA881CC3C8034668FFA61F65528C2296EADCA8430 |
27681D10842C31FEECC69BCC7FCF7BDE73DF77FF49A3CDC2AC49902A06B2B99A |
D45FA9D49FB72D1A1A581B474B0865341B2D34816EFA8E77BCE3073FF881DEC8 |
C5B9F9E69BDD413E0E8C50C668961E3D23AD8788C51913198AC88611DB7A4F6B |
2688E9DB3A11C59A009333EE90C112C79C893AD1FA82D674EFBDF796B5C4AED3 |
CE5CB468D13EFBEC23DB5CA7BE14B53EE60B080A8DFC84134EB8F6DA6B2D253C |
FF46D19065693340412E4DE44D61A874F80009CA0F012EC25F1D8AC80C3FC78E |
C64972793FA2D647893D1F631FCCF3C3309C21D861871D7EF7BBDF7153493C8D |
6AD75D77FDB77FFB37A2A371AA63A2D06F53F6B6EA74246912C7548488A98C16 |
725A746A98354E4979FABD1B3D05B7A6B6AB8E09816860DF8E7C84099E81E3CF |
719C302D60FA291DEDD934F6A9B3E046DE1C71A2656135C5DC619E3B64EF9563 |
4CF144BFE42CE7FBC67EBA3390268C738B63972B7B243A24C71F7FFC75D75DA7 |
3F6946FA721E34C814B3A0445E5B1F72AA5BAC92B8342114D15B3C3B3C182B0C |
5B040C236E87A90126055414E2DC7138D0F050B3D5DC222F6487C26C9CAA3709 |
9D5D5D235A983C4292AD711EDC9764ECC84D6C962AF3D10020CE98495105A180 |
C30E3B4C7631227E529FC034ABF8C8943EB2B381AB4334462D8C46ABB9E28463 |
223115D80EF8E3B4DFB2F2962E40E0BA9B47618D663FDC70DE869AF9ECC137DF |
E289654F7475760D8F8C87803512E2E61CA45A47D7D8E868297726880B650FDB |
DFDFD951957466D54CF1FF810F7C40BB5FE3D4271ACFF7BFFF7D363DF68B5647 |
F68E13B6AEB48020485B45B341E2C4BDA6350FB1A0A18B00C64D9CD6CBFF586A |
7393714CE7CD9DF3DCF3CFA5456087E847A6841A753D57E639A6E9BC3C4CA72D |
D591AB90500442CD2622D334A4810C279E99FE7BEAA9A75E73CD35F6FD6DA9B4 |
250F80A92405AF2466294E1B61135D961A5176BBE68DD434E54E6CE0890001E6 |
07B1A809D14FD8333022404AC189BBE5965B162F5E0C1E84CC01BA1907AB55F4 |
F36873F789CD82DC3795106FD29C7C9E101CFE81BE2C83ECB1C71EE349F93014 |
8C35640DCD3CAF275DBA74A94E3D95D8EC014C34DE1318604B3B695C2A5EAD82 |
D0DE9930261C1EFB56C18D8A5D4B7ED57941AC5BD31CF08971C36D42D26FACE0 |
D388B080EBBB5408E917A71E35090B172E945481CF2644E5DFA65AA0B6EEE9A7 |
9FB6FE7658652AB5E4C214624D2441F199C617113BC8506283B1780C8B15B3E1 |
A333F406BBD270782289783A5894D6786D993A0E00CF4C3A5B8343CEA2D90880 |
3824DAC6D86C088D0B7F628DAA379AC7471E792499822180B88A46A25BC3931C |
3B31C48ED61F6D29E605224F95C5D3478774FE3798331740822EA2CD9AE5C99B |
E394671A275D3957AD5C397FD34D316031528C9BCA7A8897324C141E1F1DC710 |
F76D3E81ED47A4B3E90D4251B40C265ADB02DDE62E5D98BA2C8DF6779AF754D9 |
7AEBADE5997A56B510920EFA3C07777501C2239268BFB8B7670621236067DA82 |
3003F6F6751AD60D1A21E4688D6DB6DDFEE1871E9ABBC1061AEDB379BAA23FE7 |
950AE9787C8F7A4B881249D9998589423CF2402122D2094585CA2EBBEC227FCE |
69BA647D123A20403A72644A352169D1409B1D4B0B5FC484245B28920D0E6E64 |
5AA43EA299951C47C319DF59EBECB05F257747EE8FECC4471E7E78669E2A8FE3 |
FE8D1C815B4A4ACCADB696369BC6A9E7C2F76DCB69C7E52CB877A45B5947478D |
DC3FD26D64102BCC2A9845B70D9F6896A6055F7F88020EC43F61093520D5F38F |
660D79E5A02EEBFC6A8832BD56636EC8C56CB3994B05F521418C105166B27071 |
01B6076FEC32A631C68189CB8CA7884FB7F3341A338F46CEDFEE4B58BF515A1C |
84E4FA7CA2F1B3C41ADED9679F0D9F075E6C4C791B7BCF13131231609D2DE1DA |
9436BC8CAEC323F3B5CD36DB4C529E7C95C6AF69D77B040877D47F75D6A4A435 |
45FAB9213331F1866D778BDC58F270474FD7789E200E8121563872606FE15AA2 |
6E9058AD2EA1D9B9FDF6DBE10FD1970F38E00039F5CC1106720C90681B53EC5E |
E8D6F67921D406CC4E501ED1693B1DE3D485AC495EF6A52F6B9BEA9869843436 |
78E73BDFF9C31FFE502BDA061DC10B7197E0B4E889A6EBE423CF6C4F7982BFFD |
ED6F91D75876434323B9E53BDCD39D91FF8C8E8D66FEFEF050474F6D546B993F |
3E11806C720732EEC9CF7DEE73279E78A2460B7D2919A18ECEAC4F8BCCC9240F |
476416F1B8699949A24FE62FF0FB2C410C0F887D02377D456CB9BB833E7FC73B |
DEF1A31FFD48C3D05F3515648C5D2BC4CE3671266E10D3A8F70B162C90699621 |
23ABDD0383034948240567F4CD58BB4E9FE445B0A379C5BF642B8CD61A1252A0 |
595FB0C582C79F785C932093EDB8E38FD3DDE5313CBEECE99979373A49C3FE1C |
962AB9A937B56A2215E22374EDB5D702D3A6638C06103781B186764C83E0D8DF |
FEEDDFDE7FFFFD780C36B8FC654011AE1A053EC05FE7CD9B2743415A04E72353 |
931DBD2C2EEE826EBD7ACDEA6AA55A4F4765AAC82D1D1C18E8A8758C33ACD43A |
D6AC5B4BA84447A09A778824F65DAD758682553829E0D48D8C37AD1B91A7F585 |
7917030B49D496D7B598E6430D55FB5326828B579913375286A910E2779287A8 |
017080F171B3550123A99EF4B5AF7DAD4ECA0D37DC40D7DC187305B736CD5075 |
7D663E2D0880F1DEAC099CE50A05066FF3CD37D7C6439001858AB3050EBDB2C9 |
8904C264150AE683366E027D47CFAB23A6371A955302D8B6AE07A6A7ACBE70F1 |
C5176B75502A982FB120E2657C011E4C4C4D8AF642CD10A831D12C9ACC91A836 |
EED25819B455D71284777990C6A35B483EC88C78F0C107B1423C4E9F0E7CC17D |
F6D947024DEBEBF229BE307FFE7C4D1D851ABA3854956D819C787795D6273F0E |
EB03ED325B9ED02432252D00B9FC181C8B4613C3577D452D83064769F8873FFC |
E19FFFFCE70F3DF490C5565AD4B8C6CB1026E017750BD9E6DAEE92597BEEB9E7 |
9D77DE89A5630669C3390C678C7B1187A8041C83C834BC7122CE91225787CB82 |
960B16050AB3C11013F4D8F22BE73F0C097650B3D524561E4A0D192A1DD59A1E |
4F322E6461A1D03FB37F646C94C8FBBDF7DEFBFEF7BF3FB2AD4A84144A792224 |
4325E663EEEF1FEF3FEC9A007B8E936A021F95B8D112CF0EA096AAEF91FCC5FE |
A3FC9292CBA468F3C99549CEEBA6D204C45E1AF5807091269004E44DA60B47D7 |
7575770E0F8D7476758C0C8F66BCC7B5BCDD7477A62DA406F21E36999CFAFA9D |
5FFFE8473F2A537B46EEA74BE025B0DBCADDD1AE688D85C229D4E0B57DBDDF58 |
598C1AF4BDE4208483660E671393D093D0D44FE867D2066728E71DEDB5AFC0E9 |
D33F8E373A3FB88C84238606B3077C696F27A52C8193BD6B68BDAAD20152C91A |
76B3552D67D2AAA32BCB76701C6EBBEDB6830F3EB860EB7B2EB05E189E059037 |
6D8D875E8957304888CFD896E9FA8502FCD325510E98A0F84178335738DF3C2C |
E92897319A7B7CA226B0210CA74828A225188C268F33F339D45818F86EB36AF0 |
7E88788A4A45134AAE8F89CDD56AB9E724051C8AF23AD21BBAC599679E79FDF5 |
D76BB9E5A482D0D571D06F354E3D29142C0CE6E4934FBEF2CA2BC903B555AEA0 |
236FBDF55699A4DED5244E0884BAF42F76F7F17E0E3CF0C06F7CE31B0CC04D78 |
783436218937CA6635249D146DB90F7EF0835FFDEA57CDA01726F804067AB905 |
02F631FA1B20462862B6CC98DD05B4821BDAE83B700471049893F1DD9BAFD469 |
A79DA699D175D03D161AB1D3691DDC768826C91338DEE28C048C98F6E062AE3A |
CA32ED8968ACFA39E97EC78E4254499B4EC0B98788975F3B46DAFEE8A38F9632 |
C7C443F497F2969031B93C2E703C18975F4A2EE8CBF616090E72BBB68CBCE192 |
CC42186FB154721571FC083DDD7D834383E3D25F4F97FB073293D35A5A971559 |
CDD47BAB5EDF74FEA64F3F350E22825EDB016BB648577756BF3E1AD783E4009B |
C181B540F7A8AA8B4BB7DA5EEC63C27C566C863037C7B13DE3D1339F40D36384 |
C2CD8F6F614512F9959559FD39FEBA954BE75A87DCA0ECF15B23DD3D1D4383A3 |
956AD2A8A75DDD3993E058ABBF6FE69AB56BFA7AFBD60DACEBEDC9D398F94425 |
E50CC521BF6706EC78F8C8B9263095298621A7C2DBCCDC8D3E870E376B62B555 |
62CC4228DAA0C3D46DB47E29223B434FB856CB3473C524573A3B3A338468394F |
B88554FE41169B2E6765604939CBF1C89D968B94C5F186874A851B8EE56E3685 |
52B9FA92751CD93A7D7D3D2833E36142D4196922A68EBD4DA434448584A48239 |
5FFC15C8905BF184A81D3706699B2CE085D0E75CB010C475632B849BDA22498B |
8A8156D12A15B5E11631C616229BBEF8C52F1E71C4110EC7B1C7162F5E7CD555 |
57A1A19DD820A08A7D4A03033DD778FFE77259D2EDF8E38FDF79E79D1F78E001 |
B601A594F8673092126A0384465493BDED8816FD9A986D6482FD3052896E8D60 |
0FC6C1F45064B963BA21FC33E33526050E8522AC6D4D40A484C368D9E89DF0BE |
F7BD4F3E2E19113345A3CBE31B79578422AC44B362199AADA27B04EA27D60448 |
4E07A088F66B036B6E2FBAE8A297600E06239BE52DE62728458CA4AC373BD285 |
18B286B41E6DD0A5F83531586F04882300867BA24BAD2D8C74264D6FBB387E4E |
1244FA500F76F9E597B303A4B709B485A213850D0110602C06F113CE0C19AA38 |
5E69BBC33862D6D255052C337B9D3DE40EC671D8DAECB59EA572D118846DD1F6 |
5C4E31B5D989A1A0096360445135E0458B165D71C515182C388C567E311938FD |
9E9804E43E302D8C20BE5989FA52C471674EBE25755A10A1E452723CD6B472D5 |
B85920E59185C85BCD18C29B4625DCD3BCDA82B94941E50654EC939FFCE42597 |
5C8216071005B880D16A18AC9D8C260CCC5060CFE34D1E9B93F8E9AC235AC429 |
7DE3DF71885DC4D4D697D4E1D734A22F65C0AC82057D9BE13F69122B14990000 |
21443BFD8C4024E0AE6084694EC9E083E32E3AC86B9C510FD841512AAB4D241C |
A2349B4FB1D74E3F39E69863AEBDF6DAB85E37E60E88ED09E0822ECB37576E65 |
420798389A47E49A334EE9282E17462B179707AFF7B690401C2C59B2E4F4D34F |
77D701842FE252CFF8EE77BFFBEFFFFEEF4F3DF55492D8F4714C8B3A1BE3BB08 |
B5E9BD2E45EF399B5969C10810A21E32F152A605ED8D06499794CB2EBBEC9C73 |
CE891DB289AFF8E7048B482B86A283824F9F21B9EE636854CB19679CB174E952 |
54AF31F4965D063E21EE40573309D44E7116B09380F38EEF51D7F11AB1134727 |
62B16E0A27D9381A3DCFAF89A0D81D3C93E5053A10591057BB58973A9D827988 |
B8844C4D13A46B920C490B9AAA302149C5EC68DB690C92FEFA891E8CB8B03B54 |
608EB9138E036DB823543081D54B8B4ED32E991947C2D46AF2610F39E410BE03 |
87ADBFCF4F5854DD0813D542907FC6505FEFAA52413AD46618C6600FFFD54684 |
A6DD9B23F634B7DF7EFB471E79C465356C8865CB96C1746DEE2330D70814FCFD |
1809E7E735CBA34CBCA38E3AAA1435C3713420F3CBCA15D2D7BCE4198C6BBB22 |
F21BAF544C3035716B85084B132B45F7B6656CDAD01A36611F36378A0189DF2C |
DA28B91E98A315C7DF90D4168BA843CDE4E73FFFF9C30F3FDC09246F096B1AAC |
25D2D7566FE06E9DEE9A6629E3874D26031D7200350C4DB8CD4FDAD0D3293329 |
A84675478A9208937A9E3D06A20A7A0489090D98183A211DA682EF1B69131F4F |
04822964744764AEB90330656475699BA18DC8458582883766EA4D22AA8C899A |
C0EE29A009EAA462FABF56C1FD17727FEEE0830F9604E4E46AD107F217C294C8 |
15F306C1A5F6BC159EAB73436EDB41DBA7FD43C6487FD55D7EFFFBDFC73EA821 |
8EC9045A24EF589F147E05B5DAF4B5C449444E85D2D5CF4F39E5942F7CE10BA4 |
859D9501C8605A8E52C44F73F2C927CBFE83AD47DF2164241187872A597FD34D |
371D76D861C8615D2AA63A0E45B137BC3E9A8DACED920B4A590013CCC5E7337E |
0047AF6C084CFAB2751017CBD935333CDC51B671B152AD822771BB2E2BDB5812 |
1904C66CBA61005DDDF585B7BCE52D3FFCE10F39F6E0976293E48E3BEED86FBF |
FD600906C109798B130FFC13290F43990640CD7AABE843690DE707B447157322 |
926347235AF424059DD154E2A06DDFC49A004BD0A902E41A400B9D96BDF6DAEB |
EEBBEFD6D2EA43976B5A9CDD75D75D1FFEF087895A62597B0C31E48E63CC99D4 |
5DDC89A9B43EFDDCF8866E36B3F6B9F5B16AA54AF8785C7C34EADEF1AD88BD7C |
7A425DEF461F3C669845C7EF2163F99EF7BCE7A73FFD29B93E07D6CB053BFA97 |
BEF4A5830E3A0895309EF6587FB1CC7D96165D28F0A5DC4C31761DDC03A32DF1 |
EE6809C598DE996D154C13C5C7F44B4F865CCB77F6D9675F73CD359A52085ABC |
D6941D68436A48407126BE30A8B5D53FF6B18F61A8E901650E6B7A217674996B |
5B0831440E191B00F742871D15A883A99BDADD84FEC4609E1D77DC51E6972EA8 |
EF13916057B44D881F1FBCAC5CB7B7BDED6DDFFDEE77755FCA7A1120E60DE576 |
E830DDE5E69B6F3EE28823F485DD77DFFDE73FFFB91E04DDC019BCE8A28B162F |
5ECC83A0243403B20EA5622FBCF042668C0B3A5DCC0FC1C519B5614D10D62FD1 |
8A1F81600BD69ED3246F7CE31B7FF4A31F4D73A2DB9C42EF43F742604F1E7DF4 |
D1F2831DC106986B7619278DF012CCC767EA1DCCFF10396D9A675DBFAD10671C |
57ED1D601B2444DD253D62CB23843831FA90BB69A170AE5D436020813B2EC5AD |
741D6A888FBDF71FD0111EE0CA2BAF3CEBACB33028DA08DC3D83CE256AF6B527 |
306D205DE8CD5F66CCD6E79A085D0DB35D6B06864116B4BC45C77C1C2332E2CA |
520371D3A6028DD397494EB6D9D5F36951F08519D5883AB55A8E7091893B6C62 |
163114D12156CAD69CB53D6B8F73AD75D146A1925EFFD484E89F74FB81419E8B |
F0442EADB4207044C2E932373D371F4E52109DEBF03FF0C003DE395867561553 |
812BDA5E4C722C28B19550CF887240D30CD5EA5F1F82532030A80797C7F6F0C3 |
0FE32D69F2B53A0E033A046A9560896F881AEFF9103FB55C340931FAD6F95EBC |
1CB6C4C488FF9F5CD0892FFFD0540D2EA4025FCF604CEA3E5565937EFB8637BC |
E197BFFCE59E7BEE79EFBDF73AC11672F748D7A13C1B0563DFDA8FDC2A085A28 |
6ED0D7627E30542CA49EDCCBD25347CC4DE727729A4EDC09D89D1C9F071F7C10 |
CDCD23CBEC95F9AFC7A4623C297A476BF9A4066411BB3444B3F1894F7C02C650 |
2E2BD5E502BD361104AECC0B41EE8D0D568EBAF43021B8B07154D37E9EA370AE |
8522BBA0F7DA9C14D34DBABE939E7AE7143179B587352D7273F96BDCA9C67417 |
1AF379E79D27DD269B40B77EFAE9A7E324B9C538EFDD6F3114FD89172C58F0C8 |
238F68A85A44DD2E715A159B97C87569FDF67EB126306AD598BFB0BEADE7B0BB |
AC926DB7DDF6273FF909AE3D6A40BB107D535ABFDB5F7C7E208AD18B7DE64DEC |
3DEA54953E01D81EF74B41C6C9E4D1C695B090F920D54AE4CABB199881C58196 |
01D4B9DB21386B64A7D2E9656D3256884700BDAEFDBACB2EBBC8BB04CB456C94 |
6570C546ABA02D7416DDB6C0CBD704A5824899F0BDCD706C2BF894F4F81A924E |
D139E79C034ED71C76F7DC738F4483850BCDCEECC1F08CDC820008593502A9EE |
3F1122549C46224DF0EB5FFF9A1C662C52BD615CFA388D4FC0AFE20094AB671D |
3335D0904FB4F4501A5C7DF5D58B162D42258340D5AF6EBCF146C90B1B0AB4A8 |
24F0552EBA04DBAFC7D8345C9563E39026DA48DF916CD57E36F1AD0D110736DB |
C2CA7E9C57A409E2661BBAAC9E8BB027415E3060E5A265B9CF4E9B7C490BB210 |
2046F20C64715348C138E3224A6A2D8DDCB7730C2AA93F7FC9D2279668D787DE |
4D2E4A076468AF313698CA516FB2364D106B4DF60CCE9FF6705BB98056D00DC2 |
9CEDD3B4481C697E8C3DA505AC1B095090A5DFD2945422C5A40BD661ACBEFFEA |
07744F3A33C22613B812084DC3A60CCE4A72EF831FFCE0E5975F3E8DA66FDB12 |
69440F1772B6050DDBF51658CC3E5CD67FDABDB68D506058D877DF7DF73FFCC3 |
3FE0C8121AD2C21D77DC7137DC70837E8890B7EB6F9E9284888A39D65DE445E8 |
60A28462AEB553CF3DF75CD9EC1AAEBC122423E72A2E8B9754922D463532A149 |
E4A30C072D5E5C6866E168CF2EE4A1435D194A45969919318912C74FE3D197A5 |
8477DD7557ED57A78F6C01918DA1A4882B487C132524A669796A43C608164B0A |
3DECA1871ECA352529324282DC8371DE4C8627F340DED59571CEA0B46DA0B07E |
1A6AAA575B7428AEACD116D4C835C364086CA4A779E5A45610E9BCCD36DBC892 |
D50F499F26050D43887250B68243918E7368F2FAEBAFD7361A6F7117110C8C6F |
E224CB3FBFB87C79678EFDD02DAB79826770DD409CD161BD2C62267D4C075ED9 |
E50E825160A5277AF4D14735C9DA5D18134C2C54E100459C70D31B5D445FD314 |
E94F92AD74E50D79E82629EA66B823107BDD57F6C1BEFBEECB7808513A91532E |
DAC74BF138B58EAE226E46F4D65990F2FA3D20C3CB8E0EB1A5B540BA9AC60FE6 |
F2D4534F95B62364CCAE8B0919E39CBCC58DBB68988C361449635D99FA9B33CE |
38E3820B2E2095355E211F99653406E7C81058437FD06027149979D31213BC72 |
8C51C70DC1CA5FDBF243B14F003384C6C3A85CDFA05503EEEC1A371421EB889B |
6E563556168B27564206C58108A0F2C0B00E4E04DF8C13B3A6BA69AECF815F8A |
3AF25A3FE15B0358D27DB15DE21E9613354188B80F90D7D89DDAAE1448850224 |
C6A974ED3AFB8D2B98AF9B53C3F078705A41A445B9BB3E34F05A1FD20F391471 |
F53DF6D8E3DBDFFE761222E65B6D740DC2BD1D26DDC13E03471D75D417BEF085 |
B07E4B190AD6296C611C071F7CB08C11F4415BB7E8894693FE79CC31C7C89A33 |
FE0CDE151223DEF1F18BA40A604AFBBF10B6E85962CE19824E95F53B0C3B77E4 |
DC038A4ABFB5942788AC0B12A78E0FAD83E6488AB468DEC9EE47211BD7C5C9B4 |
DA0B7F56C698424D7B4BE85748D9C030D8C03738386E17A1F38CB505E6DAE49D |
5415C4358AB48AD5D5F4DF1830D3B670E56AC5649099AD4DEE2107E0978B86EF |
F687A6890E794EC0A85813F8B4639A983AD7B85B7EEED010162E916B94504CE6 |
EED3CE1C3A18A89F6B0F13E1D4F59D3432DEC60208B9E3E8991386EE7418234F |
C214E6FF343E018D28ECF3F1A11C5C092CD7372505B687BF9A443A599FE59F84 |
304161891863726C602613BA48968BFE2D084DE2AB9220A416ADD1D3A2EA886C |
B68E986B865B1123695C843455742896AADCDD15003EF5BA8E49C91C6E0AEB63 |
96AEB9E69A134F3C114F9729620030326912E283E06DD0860B60CFD8770F51AB |
12BB806DFB19CDDD56393C8D85E77D1E26707183856D144DC09024B6C0084282 |
044582EB2910FD76E6F465178B407022917EDA69A7C96A97906C83BDA1C37491 |
134E38E1B2CB2E1B17405A69F9F83BEDB4D33FFDD33FC9AC7687F4892852BC4E |
503D7AA36F6A8FEA5C115D89E92D5DCBAADB3BB314724B5F6EBB0667051B4F4D |
A96004F3B4828489A199E67589BBC1385181D79FE4456444F089A81A6B4C6C01 |
3BA82D7BA389938038FAE8A36FBBED361319528A45CD3015868CD9A428EE6CDC |
165D4112F198385BCDA2ADA635013EDA2B4291B28F991F3D05A1701F8C187FE6 |
C01AB4F504073C8D86023B7BF6B18F7DEC2B5FF98A134A1240706F00DA691514 |
7EA1704D3217BB94D4C7C6BAB547070793822D352BA50EE378B050B0825B084E |
7A421CC6F1AE480AB0907782F37B6C2AFEE97D6582332699DF1A5DEA0727F273 |
D249275D71C515AE5DDF7AEBAD1F7AE8A150245AAD00C879B68A4E189CC338F3 |
6CA7CA278587F5FA8629A24353CD43BA7E7758AC4283119816EC7D6B26BF8FD1 |
D80E7CE1AC58EEE04F68EAA0E8C19E35F709AC3EBA979114508122EE594D9C7E |
CD8C5C8ACF7EF6B32649E687082956C111AD897CFA6DD1210D921E679C29068F |
FDEB56485E1494EEA73EF529B9E9341075CE8C363821420420CA1094CCA13DC8 |
581F1014417F9039435CD8A20A51FBC2B854CDE15FD65DBFA2CE792A4D5F8ABA |
E4C6E10157ED59AAB8E60BC560D8AEFE79C00107DC74D34D717D1C726C9C18A6 |
782E0B3AFE84C5CCD3817E2485694AA2977C764C421286C488E25804B93567B7 |
318ECE3AEB2CED065CC2498FBA8965B8A6CE216E0B32C8D91BC60025AABE4C8C |
486B06D91CB4E6B6B89B45BB38B092C0220914B8D8D82D8D4204D82A15CD5AE9 |
531A93AF79B1A9D1D06E7695475A947D1A260C0F22556F249CBDC6362BD2025D |
67A9818585294AEB2558F0B424D61694DBA0B7C214F903B62CB52A9602AD8230 |
CAA9BFB6A03CE243A3D5B0ED3CC59928FD5CCE10FE7E5CEA6CA18621EC9A1749 |
CF471E79C40906B0982869026EC48E911A7A4C902A80E249BC4B22138827CCC2 |
B3C4E9B8B42853079B180AC8470C3943BEDB5A34773C45D7B83846C2585B932C |
CD565FC3192E551AD58E50190D834925B41AA1BFBB6FA8BEAED63167CD504728 |
3D33B327748E740E8F964B616C755F3D24D530DA2A77F6A64375DD7E5EF7CC81 |
A1D563A1D1DBD3FFE2E0F0F6BBECF8FB877F13EA4DB9A5A5566560681D68664D |
820606A0CBD8D6892FF7FF0911119B03BBC8B5B4A02423E0C9EC51EC62DA1807 |
3430B4F19FFCCD381F4E749B9889793E6C2633E1FC37293AE549891E7AE8A148 |
10EB2DCE23FE25F4994077F0AA652F2E5AB4E8F2CB2FD7BA7096193C42805593 |
44D6E9D09725A9DDC0DDE968A390D9E7F8C1EC497EC2AE606E5B05FBD09E7BEE |
79E38D3786C299331EDF87C5E971C054AFD67E8651C69906C3A34D82522A5837 |
5C6B6641D15653094619773FC94B6869023A952581F4E3FC1E78E0815FFBDAD7 |
5C8F825474031F0D9835CD524A210FEF800B0659CF20489912A97425B4EF67C4 |
05BBDCC58D1335013003C2D0A83B6C8A52699C998BAFC598277D5943321EC6C2 |
FA4B5FFA921C1972771CE3B803AD2EAB19D47BA8DFC0594F0CCE96D627A90F51 |
E13E3BD2AE37F785458E25D1F479011CFC39FDF4D3972E5DEA16CD1C30AC0C7D |
D99C9AB68BBFFEF5AF7FE4231FF182B9600D167E0BC46432063D7F18EB6F2D99 |
0E1E85249A374D29E10B1209F89BCDA85B4888BC602772992BE7C65962EE8524 |
62B9811568A8FADADE7BEF7DD75D77C988FEC31FFEE0AA542CF4B8158915F677 |
BEF39DBDF6DACB6DE9B055694EA25922BA15F3F0D86137E06776FE7AF4D147ED |
18B11094A71AF916972B1B298F46E1C15D0896A5E33A2BBDB5DEFAD058524942 |
877E9C0CAD190AF57252A9A78DAE39B3375CBDF2F14B967CE2B4C59FDCF4753B |
3EF5C707DF76F07E9DD5CE952FAEDA7CC3CDBF75DD1743A319D2FC0CAFC903D3 |
A9ACE6D6576EFFF289271EBF72C59AAE4E99414D87D74A052B78DC807EE20BCE |
3B769D010B9A6742AC4C2980E63DF6D8E3BEFBEE8B03C7683B8C18AC5A5220EC |
D536CA1653152545650CB4DE243CF06291C85A71C8AE817582E9D095AFBAEAAA |
534F3D1515651E345D7FFFFDF7BFF7DE7B43CE7FE560E676DB6DA743CDB162F3 |
EBEE1FFAD08724AA0C167094C951D3982A06D5620FCFD5649CE8D87372B1A71C |
7A5D90100A789052C43FC17EE0A18E3CF2C85B6EB9658B2DB67855F633FCA613 |
B36213318A805C31DEF5432998A4E8360CC6EF6FFEE66FEEBEFB6EEF7947B426 |
DD3C84FB9CFFB0C58038D23E3CFFFCF3B564F64D4D4297848847C84C8771D6DE |
A87C82B3CEA61AD481C8F0F7DBE417A82F2873312B4855DB2C85C092E8B6399F |
BDD88E7F618AD26FDDE2CCB84C3DB09650B3F6FBDFFF1EEC071E653C18F35598 |
9E3E2D10EB684193F5B3AE386B218A783A996CC7595FD611A5EC252EBC34AD3F |
0BE3D1E29411E03B2F7F2126C8E95BE9BAD06F2A4C11100292313288162E5CF8 |
E0830F6AF381290652652D8B0341FD08A6A57150060EB2F46DCCAF3153555C27 |
8C172CE547779110D5F4BBA74A8CCD0F514B482D8D8E9C7C5BFE9946C51C71FA |
C1EFE3E3ADD9D3F19034915A92CED35E8717C48215F63DC265715DB4CD14762C |
9B79DCF10DD53463016C04A9BF0E19FDAD9056435AEB6ACD1BEED2591AD145DF |
F8F6F70D97075795566CFE9A6D9E5F99052E767DEDEBFFE7D7BFD961C1C2BE5A |
ADA75CBAFA9473F4C55277576B6864ABF99B3FFEC813A114D252F98AABAE3AEB |
B4D371736156D0C849694C8314201547C8D160364C4888989C32D1A54C0DE96C |
41889A6272534E9CFE0A8B975E406FD10A1C402C36C25F7641E2A5216082BDE2 |
881CCD0D015C002A058B0167A7D15F2E5B6B0B5CD0FA8930B26C4A6D0C9D087B |
09B10EC03F6063300F1057E01C1841E0048FFB373021FAD321871C72DD75D739 |
1443FC20A6348E8DB9FFFD7E46FBC6668D1FC708469F7436645A5049863C3C03 |
D37E2818A741A96CB3CD36127106A74C7C115D94C57CE5955762621A2106F218 |
3A2F5DDCB0DA7161C5A7FA879CA3871F7ED8602CBC3C4CC2246A5A8BAD814CE7 |
4333994CAA091C4EE1524EADB057ECC39A1E968524F4C676C4888B217A7A1EC8 |
E8A94D6F16EDD2901A7A90BFFBBBBFBBEDB6DBE2702D217B5FA15C34AD462B30 |
C266D12982E0264A4BFF949C95C54DC024E64F36475E4CFF62221A142494B3AD |
9CC5C86DB263DDAE2587613FE4694C3D1405A5B1DC8F67D2841034BD623753ED |
295D2B23F1FEFBEF7FF2C9278DF49786B03E609BF2D4A4B958BBD89F43F46091 |
E9706A7F9B98DA478ECC157AD1413052B8FEA70B23F54F6D62E927FD0AB24273 |
C248B2EB797529BDE120C53A8F179BB854F081832ED775E4577DFBDBDF2664A4 |
9994D5A34B71593BF8C6591AA6ED5A07836A92B15AA5ABB4C1E6B31E7FEC898C |
89AE2ED7A0D2D33BA339501BEE7F6ADB83E7AF2C6DB566E59CFE4A6B76756874 |
F59ABE5D5EAFA9D648DEFE96372F7FFAE98DE6CC9C37A367664F7757BDB7ABD1 |
3866BF8F77D5437D9D9CA7D9CB57ADAC74D71A4363EEED1C26C42D27BE580B1D |
75EC27E670871D7638E8A0832EBEF8E2185BD9466A822747BD24B5236DAC443A |
2CE87277F2B1631AF270B396491240A3A5851C7E8CED2DEB24CD1B3D9C11675E |
4D930240194BE339EEB5E5965BCA00C23642078CE30B8A1EDDEEE086D149B025 |
6BF05714BBC4EC1706AAF27292996505A7EE183A817E8EA137B6532C243038EC |
6EF7F6AAEC67933CC6A72FFE84DEB1081942F1DB6FBFFD11471C71C619679074 |
24EE129BA4DEB713EB33E26D00C2C59E8714894C5570103EBC8047D94BE39986 |
72D1ED4B8B21674772448338F1C413972C59C2E82558755DAEC2BE692BBF4273 |
7A534ED4043AA5679E79E6D9679F2D512555D6C66F054C82F4E6073EF081DB6F |
BF3D1491B298658CB41253E0C4200B83754C211BDB1AD329B6294291F197B4C5 |
5B0C45C6863435EEB30B0B51A19A267D1F1A45D40347913320178C41EA221AB0 |
E46FEC6543086AE3CE63768E119D0AF827E4CC10547EC5D5AD6D98A21085CBE2 |
3A2FDBECEEF685BC33802FC99B26923A8B539D8EE41A430C0D1144A11452C173 |
A0CF0DD7C1F3D017425E0949602A44580E50BF9CE1B88C2B29D8C871FE90D404 |
799D156845D4434EBD8422476D0E099B02A61BF2619308B33D885963FCB85701 |
BF36B330466AFD1BF5BCF6CDDBFFDB0F7F5419286FD4B7F133EB9E6BE877BDE1 |
AF4E99FF8B81A74375A372E3CDB3462BA515CFBE66C136CB72F35CA2AD3E3ABC |
E376DBB446D6CD9BD537323C90B666BC66ABCDCA6B567DF8EDFB2563A19A7494 |
3ACA23F5A1BEEE7113877EBC44A2CBEBF7148B5F60E15C19448C38C644D82695 |
190138845E6FA1C82119BA73F2C927DF70C30D9AF937BCE10DFACECF7EF6336E |
213975CC31C75C70C105761C11FA318F6428228106B3C554953EBF3292E41330 |
ED30E4105932F810CBC3C34B8B0240B2D3F8F78E37D852C6D3D522EA87139D63 |
54A0CC146D423AED70AC082559FD84C2A92543A689D209752A940A2AB23564BC |
F8A7197BFE97FB39AC0F94B0E0061B4612186B18772DE69B33FBBABB3AC26FAF |
5BBB5BC6547902C221A42109E492CE5CBA74A9565C4FA10F891DB5D524273CA7 |
D9BA613036BF8AEB57BFFCE52F1F77DC716E4A83F8C66B7359F9549A20444D0B |
8E3DF6585D4A0FA3670671EC6C891E128AB4984A2944C1194B227385B6E1A228 |
1A42ED372774F446C4ECB6DB6E4FE6AFB855B2C57747D16791083EB2898AE550 |
806DF0841CA772EAC9940CFACE9BDEF4261D3CB742433941CA24CD2A4B3606EF |
E3255C76D9657233F513CDAD556F980CC56B6003CE10B78ECB9E4D1E675033AD |
1734DB3C780CA525D014F7CDF08DB440ECBF72C163CEA1323B1B11003237C82F |
3A07C47FE2E4EB01657A1019A3DEC7268F1EFCE8A38F36657FDC80C89AC06140 |
347A396257D5F7DD1D97026C6D714DBB642E6A00BC84DD4D8EF74B4DA3C28CB1 |
64F5BC85735E7C6C456FB3B316AA2B9275C9C6A176C0FC66CFD395AED0D99839 |
F2C74DFB93058DB1E6686B6893991BEA61B525240436DD64A3CE72DADB5959B8 |
60F36679E6DA157F9CDBD19CDFB5E147DE7BE8EA6734B7CD5A4733A45536B0A6 |
FDF39FFFBCA433057D6D3663FCC2463366C68C8D669C75D2BEAD7ACB4C41800B |
AD1A6FBAE9A6430E39C4EBCB22721E6FBCF146AA64D0EB5CED273FF9C95FFFF5 |
5F87095CC2A1A0A9D7D4C50C2B8462E0F542D7724269DE109F5C8FC188C950E4 |
D560990D39C59E1E96B0093E41DBFC7897C674F4487CA301DDB88D426BF34DF1 |
65BEE600144F170355FFF7FB1978BA49947D8499F934E27075B6DF594C3F5729 |
EA304819D079E79D77FCF1C7C728FFB6976306E42ACCB18890210665C112978C |
24B6404F3FFDF43BEEB8439F9A08DA681F4D10941AC6CF3AD480369BC6274045 |
DBD8844DC8A91E385B00B61311A28C8BB3CDC4190A0988D3D803EB6D37EF459C |
D96B6EABDDE0134A821D118A6323AEFE4576A4056B0D1AD810EC10F5930B79A8 |
1466F338AF40B1052977FD9CA60844459907821EB817DE769FF9CC67CE3AEB2C |
4FDDA47506FE532C2ED9E264380CA3326F705A90AD6B0733C298F1D16839E78A |
58D3182310D39371607474F521C1199428D37EDA69A75D7DF5D5906779DDDD89 |
9EE0926B3B30D0F47379C4975E7A69581F8219229B0B85E7C826378DCD8578B4 |
2EF0892D893819C6C38EEB92191BAC185A1E4AA123E9AA8E760D86E174FEF0BC |
0F6CB466FBD1D18757858D251D43EDC5FE1D37DEE3A9A7D66EB2D5ECCA5A1DEE |
74467FBFD6BDA35ADE68EEECB191B55B6EB1C5D870326B76A33EF4DCE88AD1E3 |
DE7F729030A955870656360BE14E67E04F7EF2939214C0FE263DC984E98D396E |
B3FEDC1B8EA66C5C137463C8CD381B5E206AC8226056F321F6204DBC2DBC88B9 |
EB22102899CC20D6C1EEFF1C2257953D66449FBC0D1AF032E7871D76D86DB7DD |
E6A004C370B716538B7FFAD39F968E9454750575DB9CC47512AC9A44F345175D |
24DB54D2495796B5EA9C84014E2E48D63C68B321E56C1E395784D9B769DE5550 |
1777CCE47FB99F21D89F14471327365CA6079F20AB468539351CBAF5CE3BEFFC |
D0430F317B86D44FE5535E72C925175E78214C1BC652936320B28A7967143E4B |
AC2F8C2FA7DE697F906939FCF0C3BFF8C52F8622A12111E62EA9DA76C67259CF |
EB9FB69AC3143E414C5EC6D2B2E7084D683AF44FD0EE718A92C788C5C192254B |
CE3DF75C5237C473DCE1D38C954E677903C579275355B3D7C79B10ACDFF5C5E2 |
C3A0668B42D7E587822ECA959C0ECC8588EBDC7422A8BD66C115BC78F1E2CB2F |
BF9CBD188A20C611471C71EDB5D772665C94DB56671017BC90FD835CC1615CD7 |
31781A0D7B48737E4A7DC7F538E5A28B7D0C6D262C03BF550C81F511F5566684 |
6C26360FEBE58576192450137D59C71E6D47151891E5134F3CF1AAABAE72349F |
97FFC9F89382C4DB82CFC184F1CE3F450F169B0870178628B9152F13D72F37D3 |
99F3672E7F61555775667DA8D2E81A4BDEDB99BCA1515EB72AEDE96F74374273 |
A0323ABBBC6CBBD9AD8DE7CD4E43D78C15ABD66CB3CD765B6DB3757D74644E7F |
6FB5926C326F83DA50524F9FE9E81CE82ECD58FD68F9843D8FBD60F1394B979C |
3BDC2A39FFA9611C7CF0C1D75D771DDA68D293CCC9922891CE08110D7D52506F |
E96A8B162DBAE5965B74E2B410781B6941CEE1089BBDFC50043742C1298D856B |
38D3FEFBEF7FEBADB76201B818CD3134369B8BD1E2120123D9B1DF3186CA11DD |
AC49DAF982990B62FC37B034FC0982D7935258C7C69C7B4E90C00BEBF7B26D3B |
C548092684302938281B9A36D45C31F7AAEC67E98FA4E05477CA9D909419A4CF |
3FFFFCA54B971248E0BC3B76A4319C70C2093A14309869E44812276FA6AAD5C7 |
2728150D394CB41CA2C032FA8CD219FD55DF97384A0C2303F3AB21D2E9D8956C |
2C273FE301E2E6823EBA53D9383ECFB8637A1EBD4773021F2E15AD8E8C599ECA |
56D2C2436EE54C0E46906164BAA6CC901B6EB881B026765F356F36B26EED9A4A |
B972E08107DEF38F599AD14B4EA83DCE78B7BD185E8CCD90E6D71BCAF3080E12 |
22B3C09D98E6D54B568F4C1827A900C81BC3C048682110A7D14C7686DEE5B704 |
A6622B586BF4A10F7DE8CE3BEF74659929CB3B2BD5B5EBD62E3A71D18D37DFBC |
E6FF67ED3DC02D2BCBB3E17795DD4F9BDE1866863A54412C28F99078998089D1 |
A0A18894DF51902245AA74104601214A110820214014810405D1608C9718EBA7 |
3475F2C1506660FACC99397DF7B5D67FBFEB3EEBE63DFB9C33F9727D6EBDE6DA |
ECB3F75AEF7ACB53EFE77E868702A7284F9B4378277DEE4DECEEE43B24EC4CD8 |
72B709F3A02795B5280D8423017FD6CB4887A83E85AF35A99D4B5A1B93852CD9 |
9E9E7CB9189E5B1786673FFAE8A31F78E0016E00CB593BD37A0070DCAAB56A2E |
CCAD38EDD4EF7DEF7B24EA61004484ECAEABA192E06E138CE4213EBAA281A17A |
C1371FD8DFCCEA9AD90C460EF9DFAD8186E931C54AA5DE9F98B170D7C2AE0BDA |
1FDCDA6786776CDF73D785EF3F68BF2D6B5E3960B75DE77597F326194A92C15A |
A1BF156C8F76F4F435E7B6CDEE23734E3DF2335E3E196DD5E17318CFF7DAF17B |
DFF9AEE77FFF52336A55CAB6CE86C29AF1168A33D53D51070B259264C41861DA |
6D581C189465740775D4093955B19E6484CB6429B9CCA960909A0453AACD4CB2 |
66BC932D3CAD084F813255EA63FC918F7CE4DBDFFE3609CEE45B18C7F3E6F845 |
83AA8189A56A27928EC05612AD936F463CDB6E2C6BB220324ED9709CB657C144 |
913149357A7F92FD0C6949978E915B1773411F82C12B7145504BD926806962DF |
659E77675BF1525C81F1062F23BF125E71CA79E3D37148A43156B0717C7E5863 |
C5D439D90BA82D99CFF19CCA722EA1EA2088FFC16808AA715DF50E09CE243B17 |
9810346D50D21E40F1B033916A9B27BFA00608D66421357CC3F3CF3F9F51303E |
249D0C3C1E9C869B6FBE99C8687BD8520361468F6DADE519EF984F1EFFE28B2F |
C2DB72F5BC9735919F72FC7A0F9F7AFDFAF57852E81B18656A21243A5257A374 |
D494EACC70B4B4C7E5C40897C5C00EB58BB87CC9404208C41D77DC018F154F07 |
C30AB29EE929FC2754CB99679E09C79077E7CEB3157983437112978AA5D3CF3C |
13AEFAF0E80896005FC6A528867CA79F9771C22C7EF622C88159BEBFFBBBBF7B |
E28927A8ABF062F5B84E971BBFD2FAD2E8E3A24389E2BD82AA6ADD2577844785 |
6380ED8C23D74E9B10D0ABA5DD80AFDD72CB2D175D74118557ABD1C4FFBA4AE5 |
715A9E42FE431FFAD05B6FBD4584ABC2683C33C247AADE076AB6EE9B7CB91C8F |
56BD85B3E2839746A52037D66EF58DCC58BEB656EFAAB707F2B34CD034B9B7FE |
7C71654E6EAC366FFE9CC48BF7DE6FF9E25D17EE18DC3677DE9C52A9F0D6D631 |
BF15148382976B4766A83532140E272B2FBCCE5BDF34F9B0D855A98D8DB51BCD |
7C1036A3B61706713BEAA8D461BF7866E6F1A70B2EB8001E30F5AE4A85950DE6 |
79C60F21F4D7AC59C34EB6C41AB92C7824F872A9504C56EECE88073E87ED89F9 |
240684502B698229E5293F175C47711E4D3565C57BDEF39EE79E7B4E8D97A9BD |
A45A1407977F26E8A7C9CA77A67CF94EC73D3ED7A5975EEAF6DEEA005E7B13D9 |
1D4C166825C006EAEAC9279F544A86F5377FC2FDCC6A3582B679CA0E38E0803F |
FCE10F7C6AAC1AFC094C3E3636A34F726844CDC013210D21E8973484F2F9CCF6 |
4DE76BBA4813165D426F2D59B28491A8F17A02555431EA2299F88E77BCE3A597 |
5E32599B8E1B6FBC116E291503DD2E8A92830F3E1806293C9D294740E425678A |
7017D21E901B92B7C35FBFF4A52F417C63583BF109A8C70402234F3D932D26F3 |
5B71710C0F73A7647277A56B746CB410E65AEDD6AC99B34C18D033A5B4ED4800 |
4C795F62C2940FA0123259D522539DF470B1489C493309002A714FA828BD6976 |
4F75250277986AE52FB9E4921B6EB8015FA031CE2DA57A056932712EB17C1A1A |
42C732B00D382B63D5B1D9736C7577BDD910E84D9B49BC75FC4F9D587EC8680C |
6E81C190DC543B847CB4DC8B3A3CFC1319DBE3ACC31A46CE0824B71907C9803E |
E31E2C1457DD934943196E0526E14F1C3923218C296396E1EDC5519B8FE939BC |
ED5421CA12EB79958AB030BE46139A202C16DAB5FAEC43F6A92E9D5935EDB0DA |
6A079562A55E58F852A350A99706F24977B955361BDFB5DFAEA506FC8C7269F9 |
FE0774CF9AB1EBEECBEAED68F5ABAFCEAEEC1E0E6FEF6D8E553C6FA8564FBA8A |
C519F9FF7AF5A5073F75079B60D79A8DF156A029D484F952BC81FE86BF484F4E |
8102D67F3022CC4210173824C494F6C995575E8913C4683E1685F48ED869871F |
7EF84F7EF213952FB84C732E2F102D308E6A279A40E9689346B1045B50B501D1 |
35C4346BAA494DCFE0890C231DBA246BF1A4003D6F319D44F332E264FC040254 |
187F166FBAE25B1ACB6577D079E40C30F6CBC14037D4D2D79F643F4BFE709E61 |
B890DBA79D75C16CA42F05C488BC8AD2BE78AAF2F1B2DE7914114CA731D4490B |
58915EB7E674CA7983F8229B2CBD6D3D9738593DFA1D4CB0104F42A24AF2CAB9 |
201339264A1E92494210B1E9564E0A9F816C6A72577C9B2C0FC99D3AE575AEBD |
F65ACC028997F1F37BEFBDF794534E61C2872C8018335346F2A498191F1C1828 |
168ACDC6F865692FF1CCD0C8F2774A082A8C10F79C9C1893DA3EDC2B500CF019 |
556D38E56C2459EB2B82A9794894B86E679DE45460C1E00683572E25C6B7BEF5 |
AD934E3A49D56DAC5A52F188CA6AF02F0C1CDBC6CB7854C09044F00CAAF59A5B |
684A77D0FDB9AA22E8EF2BE62B9B942916525A42FD4300B90FE8399418126AC4 |
0E6230F48AD82FD064947CCAA970C7B300CAA4C5D8C71C730C660CD7217837CE |
9AF40A7362E773D0E2D02AA5D2D66D5BF3B9BC9732E2A926880E78EC341BE14B |
E45F453F8C02AFE52571D29CF781F78CF6E61B4914C6A66CE6EF187C2D3FBF5D |
D9FBE581EA32D3FD46C9AB245B172D195BBCFB92A5A1F1F7D973CF5DE72F2C15 |
72D4CDAFC5854ADCDFE70D5782AE755B5B8D7CD760B4CD1487FEF9B86F045152 |
AFDA092FF7F48ED6AB5E62DAAD569846CFB1462CA450A717B695A7B676C1FE44 |
BB33482DBADFE5CB97BFFCF2CB6410C10BB6141C62653BF180BBEFBEFB6BAFBD |
261CB371D87BB8A5F11398A53C984ACB898866CAB3EC391DAB5C6A6B93B145E9 |
16847EE0899805757D024587A451DA59EB4DC57FA63C8F91D3AE47B5A8262B89 |
571598EB0774E02CE423EA3BEAE887D9FBCA57BEF2A7DACFF83ED697725515B8 |
10778A23511AA8B522440D79B44C0AE20AB2F69104B9C21EC5AF9813F29C2E93 |
26C3DCB38E55C9A18E1745376786F3A00E1FE393E3F641A4C52D1C924BB0C708 |
0F9509930C2A6F217673272CAC8494DD77DF7D10611A37A92E4961846975ABCC |
A67CB97D8FF9244AB21F71C411BFF8C52F34664C19B4026699D33D6B866D5057 |
1D1BF53D0B3EC9974B14C13212D9E07E273C1EB498F8D4A436A4E69748723BA8 |
749C1C57FAD031E4CE935013E48934AE0CB926595B445E9338332E0DBEC09D81 |
9F7CF8C31F7EE69967589D60528C390B8CDDD24AD38EC651A729843936097BF5 |
25594DA98B94704343843CBBAC292C0771AB9998D83053D542B36E8B6740AD75 |
445E82CFB54032095D2654E64578473EE9AF7FFD6B1A5978407E3E9EB13466C1 |
FC055B36DBAFCD9E357BCBF6FEC58B17E316D4D65EC630415D2B6B54FC1FF879 |
29CC57FDD8CC2ECD78CF816326EDC08C096F15C2D2E0586393C91F9C3FF8D966 |
B3686A03B37ACBF3AB27618E766CDD74C2311F9F35BBA75A1DE99DD9F5FADAD7 |
E705B30B8591D81B6E9AF25A4C89D7B7EECDD5BDA5C6BF7EE1B64ABE12E1609B |
10173729255D18270A7F90DB8E96292787101A763BE12E65040FA3A52660781D |
1BF2831FFC20763EC308F4B0D9C60EFFAA42556BC14417A50F3E6101A3385C19 |
9562A2CED504DEA4161AFC5C81668A5A061219EE6789BEE849B86A2E71AFC95A |
C4B0B85D6C310C647780C83B5E8C72E0EE3004EFB9E71E6A26EE1641C25C5B5E |
D003A901A1BA59D749440CC51759F4FF24FB39CC5A1373C002404ABE437F7335 |
393F6E42D864FDB7B9AC2B56AC8063076D217C916E87EFE387071D74D08F7FFC |
636DF829E78DCE077E8547C6A5F0ABE38E3BEEE1871FD62A8F3760E3C293794D |
E00A2D6787B326FFDA957DD38D80478ED0208C1B3B9B9B987829FC89C06A8AD7 |
9DDB02C6716F29A76840B1B48FC9998EBE2B769D8686ED2CF76FCB85A969DC1A |
8F309A4C4F8AF56CCAFB7283F2F8A9CB072EC83EC6F40D99B62222A2E33ADA52 |
5C634CE9F1C71FFFED6F7FBBA3C04FE28F9F53FAF3AF24A2F8C217BEA0DE17B4 |
8519EEC7C6553B0121FF884FC094626CDB366FEEEEEAB64D5A1AF5C00F20E678 |
472D2E7D2C2EA83FB17D101F5094EE5466AB56AD72FD3055D57778D37AA9E81A |
1BFA91471EC1D3611E98A3A3027305071B3FA913BAC938CF2116F1BC04FF3088 |
4403054F5A1D1D6BB69AEFD8FF006CB00D1B37044E05B8498318ACF79115AC24 |
C1B88CF34CB7971FCB1BFFE06585DD16B4ABF556A3698AB9B85DCD57AAADB165 |
89BF098B975FF47CD808E2EA48FDDEBC81182FE74CB3F18D271F2ECCEE7A65F3 |
9BA3517D8FAEB9B56864CDD6B7B635DA03F55C5FF7C26447757EA178DFB5D799 |
AD43855692F372A3A6852BE762AF1CF949D9CA14D843D833B49D4F3FFDF4BBEF |
BE5BB2C3ADC3320E57A5100A9887FDF6DBEFA5975E524DAC1A28F2F1D59D4DE4 |
B2AE90750BF1581F204D2044409235539ABCAC54544956A5CC5FA9D451DCC89F |
FEF4A75F78E10568F124239253FE8CB81A2969A1B74D96419DF23CF2E4329642 |
497AEDB5D7C2AD1173A79BE99529A334861E842126EA0FEE3DC6F4FF84FB9907 |
8D7DCEB1BED8C9309B3EF5A94F3DF1C413D40A3AB9C4E3184771D2CF203406F2 |
0D7BC0C57CE32790E33FFDE94F594446065652F809C339F9E5E2BE4C5AB8CE1E |
8BE3FB81A29056EDB1C71EFBE8A38F92AB44B41B8431715E048F314EB6C72578 |
99FC5280929B153BE3CE3BEF64E899A60D5D01EE21EAF6E93401E3981A123F21 |
9E0C033BEBACB3E0D9317C4C54C09A356BF0F943FFF4E0B1C71D3B7BC64C5B5F |
3732DC9512D81A8706990C74D3F56426719004933C3BA1D43192952B57623B12 |
21E02288DDAD3919E0412DE267CD25A4565DD23D33510D0BB5255A957DF7DDF7 |
AFFFFAAFBFFAD5AF72DBB148909635C40AE60413572E95ABB5EA9CB9B615EDC8 |
D8A89C44C6D6285F64DC09F2E84E02B9577965B75CE38E3BEE209BD5E493C3C2 |
4BF6B3350E2701EE423C89CE956BBABA0FCEAA3186CEA914CF3EFBECEBAFBF3E |
CC5EEC4B35363AFAD8A38F1D77EC3126CD8850D3B38EDF458E6357B341AEE790 |
F7D96769B77AFDC25018F51DF59EE19EB0588BA21A8E72E8F983C9C0C272DF60 |
9CCCA88FEC28CE6C7415FE4FFFF3A5726292D883D9E9E70BF566F3BC1B56BEBE |
7573EF82F95D8DA859339B37F78F997ACD4F211CA37EA15E88B66FFCC53F3F91 |
1F6AC012AEE73DEB1334A24A62C69C9A4446D25987C8F7B45865B0334BA9D88B |
0B70A04F4F2B84F64A94354C75E9C7291319B2A039CF7010298B45B2E656E474 |
444D3BB034425E421BFDF18F7F547337C22B556C2CC75D14E8D2042AFA3BF0C0 |
0321C8789A20F52013B973A63C8F0C2C4B86FA591BC40EFFDBD5047C2388A388 |
2E1873A3F86264E9861B6EB8FCF2CBFF24FB995A41A0127F2243304F2B578DEE |
02058B404126D3A6500918B30B27A314C2E34BC177B0124C396F02CB2928C43B |
AA7B8AA7A831CC13DC58A619B12BBA8D0A68DD9A4FB9843BC9F0A8D9375D303F |
6D668411D05190C714653DF03883935F44CAB3E6851127FC561E25D3B6A2CFE5 |
4FC66D1C9C964A17A343D6F4F0C74F91A66FB7DD76833C7DFAE9A7A7BCAFEC23 |
39E0DA64DC52780A32B9AAF9498726E09652148E36027E78D965975D74D145BA |
14815842ACBA411EE5DB1540A052D4DA2BA0E70AD37146A920E3E384F115B53D |
073E81A78613FABBDFFD8E3B4F65B772A85DBA8E242B85D731E0F3326CEACE18 |
F7A2A26D0266F869A308FCF5BCF3CE83EE140BA100634986FDF5B2EE78828824 |
59D70721C775E402CF8F93381F8478BA30085B49AC0EA9C2ADEFBEFBEE586518 |
A7D4E2B2AFED249BB82F0A07FD66CFD17F369C54F351CE6FB41BDDF9A4D65B29 |
6F4BC6BA43AC58657470DBEBAD575BA616FFD9A717BFFA5FAFD6075A85766968 |
47A331D8BCE7D1EFAE59B7F13771BF3F5C18DB8493D234DD3B46E2C1309811D5 |
FB76CDFB8F5FF1E54213ABD04E7ACA51BDEA457E4F648653D1A4DE236A9F2936 |
66933934507E50B7949B6EB89FDC3EC6A996126882348E784658782FBFFCB25B |
04236CA897150F1F71C411BFFAD5AF845D9E4E13B8E2D5CBAA76A0BDF0F3679E |
79063F219BACDB2FC1ADC2491C7269AD2F594CC8E6CBF15F72C925B0E7768286 |
1439BC688EF8435E5CE2BB03B5E1CA749A35E487370E7B18BB71A828F7FF713F |
271950D52DF87733F6AEAEC2368006BAE69A6BD42DC0E5F231194482507B5D81 |
CA95B916715BED447E12D242039AA17E575C786EE311F5C072954C471F1FE1D0 |
194FD0C2BC1D6F9A98A06794864D0429B34E3DF5D46F7FFBDB83030310CD9882 |
9151BB89C3F424337CA1782E5D10118988D41B6A0DC6296109260BDEA9BD9110 |
086E6A051721484E285A3E234B88992B53999514A15BD1A3D9608AF5C20BCF27 |
1880F3363808210E93BF554CF121B3665A92C866AB3977CEDCADDBB6CE9C3173 |
FB80B5D3E1A9E06A548DB4AAE85A3151C13A78EE6937702FF4B7F60721804C73 |
0919E96E2F6D7DFCBB64C9124C17D5B0C9BA20703E19B5834C6793106E77A5B0 |
A4E085F5C627679C71C6EDB7DF6E176E6444F685483E60D3AD5FBF9E4FC77E67 |
0C50AAC3A8C91245720A19DD167989C96A0029F544CCC944BD68DF5DF22B9325 |
42498449B795139B648545E4C42593819B18EB3233467B070AEF307EAF658EEB |
090B71908CB49B7EEEF07CC5AB265B93E6F06EEDF91B9F5DDDBB6BB2F7D1F317 |
EC5870E33F3C33AF111DF1E707FEA667BD5917F76DEB7AF765678C353636EBED |
7AAD1DB5ECAD7381F14C2B4EA09C663D7FC303734ADD5BEB23C5382996BB06A3 |
9AD788CC54003385B0244CD5C2850BE19AA202DE507970A2DC9A09CC39330198 |
6D8598F139B6192BCC295FB8C35D222F063A602590829FC3E071D05950BB63D9 |
2B9209534A2279C61D2117B7DFA412DDB409D84E874E39943A6B1D18CC119247 |
A4E5EAA4C213A14A059386135CAC1DEBAB795F3CD739E79C035780EA53901E99 |
1AA4DBC190945710691281464AF28B558CB62FAFE06564361D785657045310E9 |
D00938A7ED21103F1D97F14B25F12CAC6F7F7F2ECD19D8B4104E284E41ABB5DF |
FEFBAF82979606DCE0EC7775778FC24BAB8CB362B0D3F21B6FBC01778D49110C |
C0D2FB738EF6D9679F2F7EF18BA79C720A0B2544DE4DFB4B7C06AA4272230C5E |
D623694A4D807F19FC828CC0BAF2645AD84430CE0A1941F4A7117C6BB4C4D1A2 |
342E8CC1616AF6DF7FFFA79E7A8A52927B45BCD966A24FD4613270C7487B33B0 |
2E3676EE48710D528642C03DF2C823D4DB8A2A08D12F1B59F461975E6AF19DA9 |
0886C5EDA7A1F9EDC562BED568DBE2A01DDBEFFFE6FD30E50606074AC552AD5E |
DB67DF7D5F7FFD75C510D5CB421B45BC5D8C990A9BA10A3E824618B593FD8E67 |
5496D53561B40484C0AAB49876045D0A2ED097BEF425218085B76118CA4F99F1 |
B9E29ABA2BAEB80256AA443F7117EC0C831FE23B0F3EF820361259B4882C20C7 |
9698BDA9E72874B8403C81CCA44D0E0FCA1F5552874BE0C2C0F186305FC908E5 |
8A05223CEDB4D3BEFBDDEFC212247129AB700BA6AB51189DFBC19E516F386A98 |
7C0C931D06A7A90D984A5F172CFFE6487D91B77CFBF3C35E6F7B9FA3F7F8ED8D |
CF6CCF75CD894C756CD5A2D3FE7CF80F23C97F45BB7DF63868EA3068E70BCD5C |
3E365EAE15959BED4A3B82BDB9FDE55B1FE9098BC351BD109B5CB134EAB5CB91 |
5F6B35BD491588F2C64C56556E3296A1238F3CF2A73FFD29E7B0836EAB63F595 |
44650BCF8F7EF4A3BFFDED6F313F2E470B2787F3A9303DD34BC26163183093A9 |
84BC8CF6913A983FE79ACA2F9FBCFD3A3401AECC6809A3BB5C445C9CED166834 |
E03B279E78224E22634AF4EAE44F73C06A961538CDA275AC5CD7470217C79F94 |
9FB82066F2FBDFFF3E3EBFEEBAEBCE3FFF7CEE67EE4C55AB314A83F7B82F06F3 |
A94F7DCAA48138D5D8D2B1A02989CB8A079081567A00536A022F6B22CF6A384E |
3E4F1966F26FFEE66F60251B8753D2B541F165D203DBA736090E6A3ED5438424 |
5114E3D61FFEF0877FFCE31F6FDCB001B214C2A1064111D8FA155E47DC186EBF |
1A3B63AE82E28CE3513FFFF9CFC34DD3E4724CD4190A6B1A2728E606E93AB602 |
D3002A2CA4E76E8DFAFEED506B9EF1129310679DCFE561447FF4631FFBE52F7F |
49861C78F4D05D2E56952F25840516A6D4661512DB4249E5321E85FDB4EFBEFB |
BEF2CA2B4CC672C10287769F3B952639450FE6081BE5CA2BAFA4899A64140EE6 |
ED9E0D7032180484EB035BC39289CEEC9BB565EB967466EDA3F1A1EC4948E36F |
2C2CA439C62DE2428919FBD6E093ACB5ACB8252825D5902FCEDA494E1954159E |
9A8DC2E988A8391F7B1AD3A337595F5F3E2904EBA5E94B7C35D2BEE4B2679C9A |
A754EDDB5C27C6C5AA13C2CC1BD180C0BF4C0BF3AF34D93A2A0AD5F9920242D5 |
B07A52156118A79539360CCE89CB9FA1D0B0B622F51C63323857E79F79C915B7 |
5D1C2FAC4140CF5B5082453F3C5A0F0A6646CEAEE9986F4686CD8C60F6C08B75 |
936BFEAFB3FEE2675FFCFE4060666032F2EB3F70D171BFFFC1AA91971BBBFD7F |
9F186E0C15FCB8E0B7FDA4D18CA3A6976BE7CA7158EC29F9AFDFF15877BE3CE2 |
4715D8158157F3DA9524578BDE56782E3847B84C7A818953938809C7DE161397 |
22EF248F634D59EC90EF3262899F28A08417AB820E3DF4509C3293315011BCA4 |
DD887F7FF2939F1C7EF8E1325155094CC3DFCFE8E2DFFDEE7743CDD0AE22B078 |
279A00C790E96B5A24D42B7229F0271E40425AC990E1675DF9C4214AAE0885B2 |
19DBE1F1649D265759659E82B7C8CC67670BFC8965F9DCFC449A48F50659F30F |
6D459727436DB5385DC2BCA9644F699BC99A60F26975EBFE781C38CF849F3292 |
418541BD0E296FFD42CFCC9D37CFDAD6D80069B62C4C0386D5B1B1F90B1658CE |
70FC3CE3D3B4C663FDED0630B829AE0375883FC125BAE79E7B6C11B1D8B789B4 |
C12C271907963895942E27CF09275A79122585CC449FC038C8198595D4980D3A |
2A31198B5C5A13542C585C87F13DCE3B5791B24C6D6C5945E992D0054EC75457 |
277594530B71C1091553B9C9B21D181884889752C532C1882B5021B93A40728A |
B627C39AF839D69EAE8CDA0F305A259641423CF973F6ED8354B55655D3C650BA |
525CA94D82351A855458877E205E789E3179636257571492E5851DF14D49494D |
8E106C1CA708B32888B963D8A7090FEEA2B3680332304DBFE1DA6BAFBDFCF2CB |
2BE90B9B9E5B9FB87526FFDD3C878C7738286C2AC743454F02F346674B9BC735 |
E455B749A784D139E5B469EB89A64D382817F42203D62D633669F2C0520234BD |
286CECF317BB6D6D6FDC3E5CEF9A018959181A6CCC2C87D5C176D0ED55FDA4A7 |
5D1EF87DB57741E5C607AFFDDC0117D40353689A28D7FF89CB4EFDD1233FAA6F |
ACEE7EDA07B6E7927CAB94AB77F963611CB5DAB9E1A43C9C94AAA5F61E6FDDF3 |
DD52506C1683EE9637D6A8B7BC76A1EDB58309DC885A3B5939F4A8281166CD9A |
75DE79E7C1289135A09E5F8CAA992C07CBA9E3CF313938A158D0952B5732062D |
4272D12450D7D2DAC05DB09F6120737E1854A46942A79C611C26DEB9FF692026 |
4EA3AA9D68028C878FC3251335349D7E76D7B8FDF6DB4518C75D8A2F60B9D9BD |
CBA49DE994FCE7D6C5E2629C6CC5A1FA2785A1DCE24437B6C6BA7DA6E8F15CB0 |
7B70903106FC099326FFB223F5681C6E707C190383C024E888F34978249D839D |
44873412A24589FDC5E958B162058E95C95C67997A148678EAE5CB97BFFAEAAB |
445DEB522C9F64883B5F2841865827208B0BD93DDFD73734B8439010B7530B56 |
FC1FFEE11F6C1334712A2559B106B590FBFCD454B404199114AC48B6AADC5233 |
D1456058030FF9FAEBAF9F7DF6D977DF7D378D8EC0F3E107D070A62618379FB3 |
29730397AC8B93EDC0757599095CC89DCB844595460D7FFAE9A73FF8E0836497 |
15085A892C575BE098E12E0C6ABBCFA24D2031C7FDA7D437CFE77DF7DD87F9E5 |
4A2B0778F5D557DF72CB2DB8A3FCFAF17ED39532B437B4792BB3144AAC6FA8D5 |
C582D7CEDA992A48AAEDA5789D5074AE4A66A2FE8C33CEB8F3CE3BD952839B46 |
ABA62C9108339856A2D097F3C4CDC05DCBF7244C1790CC4B89BDA01E2EB8E002 |
DAF8DCB898107C08D7EA80030E80D855B08E8314EEC08D6EBB7C47EE8B0BA12A |
7CAD9A1BD7FED8C73EF68D6F7C23C9E0ED221CE55E82322633078D231C3F9CF9 |
3933176C1BDA64CA668F0FCCDF54DF5C4F4C313405BF38D0ACE71BF9DE193D55 |
6F241E88ABAB5A0BE7CEB8E9DE2FF744B9F77FE01325D377F98D970F26F547EE |
BBBFEE0F76FD65F7681F9EA7AFDC9ADFD59A9B6B553C180FF1682BA9E7E3CAC6 |
077E60EB38F25E975FACD6EB719814DB5E2BF03BD480043A5D162F23D9C69211 |
128A0717DBB3F0029861124F9A2CAFE876FB62192DA5392F485B5E49662FA3B1 |
22472F7384E49D3CF9E4939F7CF249D63A312583DD48234C7DB5F09DDB6EBB4D |
3B0AA375CBD727BF846E12C5A94492A0102CA767C010B7A65ABAEBAEBBB0B5F0 |
A45FFDEA5789198539A5F40984F221871C02EF84AE673BEB412B1B4E614F5C9C |
ECF7BC69478B0217D787F75FFBDAD7B075F9D4EAB488537CC51557B0598DC9FC |
547A154CA5B84DAB266B02CA43C1C479EEA40F088F66C193DBB25BA11796CD2B |
34AA7F29AB71C13DF75AFEEAEAD5B3E7CCC1F537A56980BE94DD2F178E77EDC5 |
65B91918A6934E1A2F12C1CF202FE039C26D7CE18517785D9C1C8C1B261B0F15 |
6D7F2FA5C9A637401B900928EEDDC946815BE5B4FFFEFB3FF7DC73E3B875FCEB |
F99C6228003F4580047E10E6738A45B20253320BE381EE952B40952074142951 |
376CD8C03A350E18862A5785839754D501A08B6DB2BA01CA56668128732910E9 |
1DF3D46524D8E3A1D80EE1552C17EAD4A069CACEB60FADD7172E5AB46DCB56EE |
3CAC0ACF15110BE90A98729A2BB6DA0B7F4AAB79E3A6C503B05DADBB95B9D558 |
5EC0D039FB57F018BB72D3CB2A62185893A7427809E324F80EF4162C9120E3B5 |
C691F8E31FFF6826B5D57EEAA9A760B241DCE3DF279E78422DD1651E32EA42F7 |
C53DE42249E553B02286DC1BCC46F0E8BA91469E16C1636046601DF186CD1BB0 |
0730B18C8DD2033369BF5C5761F84EA77233A92086C55C3433878646FCD08BBD |
68E961F336265BF27D264C72F5ED2D7F9129548BCDAA198BEB5E2DC86FAA3436 |
D40E7CFFC1977DED93FFF9F397FD70269EE7A1FBBF35F6C65B957796ABFB8C25 |
73D30860648276A5D05818561707F5451E4E7AE18D6D8F3DDB1C1B6B844921B1 |
A44349684A6DBFE11BD727700169B031D914841167BABFEE2370C26927AA0537 |
63B69C4966EC71C2598DE139EC610CCBA87F3D4439842C89D878E2082FC10F71 |
3B1637D1F2A35455F882679F52520CE73BF1091415A091CE0B2A0648CD2DE343 |
94F8ACFF60045258172508F18657C67FEEB5D75E3096C5FECF9026074C7BC5B5 |
3612A7E0DF647E277D4756817126B1F1B049E42EB3B887A833623DC9F68C0FA9 |
51FEECCFFEECE73FFFB9719216534687449B4A6782C152F23275D4964B270992 |
C3B20FBC819059BA64E9DA37D7964B6568C7B33E7F163E5CB2EB92B56F6DE865 |
F7F2560B3AC0F644A956F1268E1A4216610064F7214A1B4F67C591B4A21A4F8B |
7812973BFEF8E31F79E4119312C0617762C7E0CBCC9813B00F097BE491473EF3 |
CC3384EBB9CA40D34DCC86F6046FE4A7DE405F6FDABFA55EDB6DD96E6FAC79A3 |
5828D61A6F7741E06F19B35ABA74E9FBDEF7BEFFF88FFF801C21DD0DEB631930 |
1172603C283691CA42FC886AFE876784C85BBD7A3535301D1DB69C24F5074527 |
7E0869C8A428218CDC8269D668837AB17290C4681B2F9E917607133B34E4F7BC |
F9F3B76CDA2C1B9FA9B9F18DE8997C4A1644679FC1CA06D4AAF1784D6E7D2F65 |
9550208E9D952864B9C324463BA273F813C5018F96EBEAB9EE94BBF9C86AC7F0 |
02C6094F0E3E3BD506030BF832CE0006E0725C8BB49CAC672C8BE5E38800190B |
F7DEF7BEF797BFFC252681E44B3CC9975D76199C45669E45FBAA8479877B4E94 |
05BD10B6E7A6BAE26E5195A9EF109253D0B0845B59877123B4A7BB3E5A8B93F6 |
AEEF9D539D353C1037A21133BBD4BDC38C94ABB9D1ED2D33C378257F4E7BE1D6 |
97B79A7A73E9FF5ABCF68D75068711AAE02D2BFA677D608FED73B7CE9C536DE5 |
DACD82819F6BDA5E585B5C692E2947F35BABDF8C7FBA0A0A7EC46F15CCB82680 |
4F00DBA7C38713E51F0D26ED1619B6EE5360079E7AEAA92CA0A138935C939171 |
D34D375D7CF1C544E2F11029A2AD1C8378D71992669E53FE168E0C3FF19D3609 |
6ED74CA1E05502FDDF6A02933985494657C77DC85526C0011B861B1B4FEA7246 |
090E8B2D8AFBEA821D794A951F9A898DDE145652B852C80B52C0BA1D6139CFB4 |
74E9169F76DA695FFFFAD74D563B26E3039340FCC585175E78C71D7788AC7727 |
D121F6AC3DE288235E7CF1452A1B4DA6CB43ECA6284CC6504945D2DBDD333C32 |
0C356043CA6926F2B1471FFBE4273FD98A4C4F5A328563E0A59622F61EDE78A6 |
FD36D7560A02A6B3454D6F833A7E460A6D26167CF30C73193871DA01EC5D237C |
21FE930685990645EA4A4C3DE1E245BB40A199143F0A21F2977FF9974F3FFDB4 |
C58626E33725068E479A447D2C7FE34D79CE955D11EDC901071C000945B397A2 |
4D5E27ABFEE83FE23FA1579E7DF6594254B911F944EC46CD6CAAA4A43A197015 |
E18ABEF8E2EF89642506941BDA66D2A2B4D6B7D1806E810EE0BF8562D1C40921 |
DB49CA368A9D0727F7EAABAF6E9B848462C303035E7A42C669C5A2987E1C9F82 |
92EE9C73CE81C4C45A1041814B710FE9B44C4691426E1E78E081DFFBDEF76474 |
0BF725882A29B2F15C34DED5A85232889D2F19D613E98D7C35CA143A4C471D75 |
14A498BCEFC95F231C45A1FF952B579E77DE79E4A492CD284097CAF10878E0C9 |
84DAB8F5D65B99F2650F5BCE8F7C3BDA9B1210AED32635A0D2719C220FB66960 |
5A30D40F307DCBC2EA8E76B1511ADCD69A5B58DC68D782A5AD1DCDED959609EA |
C6CB994AEE1D737AF26FD5FF4FAED208D6997263D9A672BEBEAB176EF9833FDB |
330B4AEDBEA41DD64D3309DAA69498D1072A958D76BAC67CD31516C79AF5A410 |
941A49DD9B00A6941AC0E00F3EF860F8E56E672E1A2B2E5E5351C1B3CE3AEBF1 |
C71F67218B402F38E4D75F7F3DE6560CF56A81A9C32B69287C042D368620580F |
CFD48238EEE585BB057124F157C9DE74285233910C8E6149E2834F38E184471F |
7D9448273C239CD433CE388352C2649062F17DBA012549798147BC8CE28D9792 |
3F4A7E17F620C197796AFCB437C38F7EF42372DCBA06BBCABC459DC4B484BAAD |
F1E0605434B3B8AFA48C95EC99AC095C8C3B7E75E28927DE7FFFFD0C153064C4 |
6DC9266E6EC9B192D298041BC509C2A1E1A1EEAEEE91518B10B55097288D7604 |
367102F9D3C3321D1E041B8369D22160D644F5BC1C1B6330E3F63B6C64C850E6 |
21E9B3332645A5413E51B79C9DF84546B8B4D8EA022A0804E433ECBC7476ECA8 |
B064100890E4EDC48E8F38E538E3FEB6DB3D6AFB69640076B1FD0D341B14B50D |
2585BAB568FD6D4BC8B151A543B148CC6F734EE9698AD5874838ED279638D098 |
C5D59889EAE880EAA5643B747768E412E6983EE69B5E2678A5F9D2C3DD522324 |
6EA0F17A28BB5FD92563A85CC611AAF7F5F50C0E0EDFF7CD6F42BE33F4C1A3D8 |
6102CB5AE4BDA6ABBD147E992BEDD249D1DDF1B36641120126C3054980F2EC71 |
EF2A40E9B21C1BA7ED8F7148A5DCBA24DE5A03204B1ADD358A0C9E135A7F82A8 |
4EC79C35DD4B66573CB1B72239BD891065CC9DF57ACA859889566D21DFD56856 |
3DABA093B9FBCF492AC94832561FAE752DF2DACDC44F4C2117FA3695D28E3D63 |
A727CCC52DA8EF24F4FC2831CD284872F9B058AA877BE5FC56BCF5CDA8345278 |
4F5F35DA6442E3174C7C999D2BAAEA206B27E065F544F890054DAEF4997A7DAD |
0B6D82102ACD8BDBC98D37DE78F595D7D8486629EF62FC495F8C6D3C77F662CC |
7FB53EEA199C1D2F3049105A1F6BB8D6320956B00D6734F0EC3F499C2E7AD0C8 |
001C9E497CE7CEA9F5907E8095F732E5154F9F1976FFD3CB387F44D902D9F7AD |
6F7D8B747BC24148D5294FD951C42AF0251611FF897574E9FB25C17952848B65 |
629C6CCF64F46209B46A895C496DB29E3CB40BD98A871D67F1A7152B563CFCF0 |
C36EF7376E7897BF44C41B53022985441212043F878CA561472F8107077781C1 |
873B323FC46A6A59A20C9C26514C0CE88E811DD94EB6D2C9B26665D41A0246FA |
BE6FA679B941334F3116F73C9BAC04439D28689D3182C183B470E142A853CC02 |
AC752800F5C1C0375961E4B64351A677DC45E8AAD433590FBF941057E8771881 |
B18DB1589166C367A3A3B0CF9BB5DABC85BBB057BB4D67B169223413AE90C454 |
98BC2C341374298727CCB2C988BC310C7E998FC96A7BE1F1DDB8A190AF345185 |
8056188AF69967DECE90130A552804E2E6A3A74916D938B24975CC1CD4401A80 |
82359422051B2D5E90D515B43BDCEE74DEC4D7746C1CEEAEE57960D08C351FF8 |
15240E513AFC3E4E144D6CEE7E5AF47CAFF42335C184BDE2F418E15F695CB00F |
3B6FCD181437A2DBC78DB34A1B0ACB74F8E187FFEC673F8332568EEE7FA40954 |
A9243C315D280CC9C5DAABD1AEEA924C9674C93C1E7839B946AB96EBF177D963 |
9735AFBCB5E0DD0BEB71BD59DA61719E51DA63C64B85A067FCC0CAC5B86D5302 |
794C806F29E5622F847A28CF7CC7D01B6F95F65B38D6FF66F7E868ABBB161DD8 |
57886BEDAF26020D13CB20514520B9164815FB533E6F772FDCE2513C76CA2215 |
B59BAD28B6508B2048E0595E70E1057BEEB1E7ABAFBDBACB2E0BD7AFB7794243 |
C3CBC70C7879AB3F52182506EC055642A632DD3E9125CFC03783461B1362F079 |
A60F30B761BA28F8A1FD534AD1947EEEA59A2CD95905D9949A80D83FFCEB0676 |
F412B08D50516E2709E50E349A5E6E8E97871D22028BCE923AE60B31BDD75C73 |
CD97BFFC65527589D85C77548C54FAD8B5DC1592A525A14A859B6FBEF9A28B2E |
625ADB64B5602E1DC074F3134C6CF4E27A3990EC787C8E10E626D1AEDCA82E57 |
6B5ABA186ACFD8A4D7E8786837C8E225FC957266D3C98DB757CA64AD8D191551 |
F300DCF8B0C30E83EB44DBCD389073E20492ACBF3915FB789D5B6A8C43AC3092 |
6319482A7D038303811FA81D0ABB77F60F6DC33AE78BC52639A720EE31F51874 |
324ECC446EA90B2FBC304EDB71ACDBB459801F55B1E39A7367CE58BB76AD4A39 |
EEB8E30EB8961D951D8C3833E670F6D967C3FD64001A8FC9351E4F5DA45B96A9 |
303CF5C68D1B396085B95DD01424488726E08496CA39F2C630356F320563392F |
4B9801A8D2529AEDACF317498669637E4284ACAAF577C36E727EA73B810C3532 |
648F7FF120ECF44D0DC7E6C3CC67303A4CC12D2E1A57F4BBCC74AE26102E9307 |
F5CE3BEF3CEDB4D3786B46F314DA16E48C263F5D071D5DCEB98846A6E37D9AEE |
C5268B02D53CFAE8A3C71E7BACFEC4061594200C72721E30483CB574BF3DB1D6 |
618D31775DBD4598D026ADD55F7AC8B2ADA535F64445310F298C623E3C04556C |
DD03CC8FFD3F16238A2154FDAEAD85FE77ED6106EA73FDD933DADE2B4FFFC2CC |
32E6D825E57BB731128D6130516FD2A8081512D6087A71D9B265988A9DB3BB63 |
D6532CA0F5696C72ABD55EB264C9EB6FC0FF8622C4A5B0EBEC35E7CDEFDBB265 |
70EFBD9786F93A6442B1942FE5731E86DC6A4456B3C53B8647ECD9895A7655AD |
DC0F7CB81B493056B54B0FFD02DBBADD329895F11D0DED113390E567C38BCD4E |
5F93910B5EC64BAFE2762A45F5BC6252D7E53BE00683A8254D349D3F6E48F560 |
30A903CAADE5C2C9E410507970A711364AB1C0BDAA069671465ACE9F2B638A2D |
F4B9CF7DEE861B6E2025140511230414CD6A354C05E09243748083B5B28C4189 |
30152FD8D384E1D17D113DFB29A79C42209C8BAE36EA04DC6E136C990B738CAC |
8CC70CDA2DDD482777324D72C7A80CD926147374AB1EF863D10910602B9C861B |
50C303903C408407784F9245AB574D9E24DD8DE644DA67AF95CACD142713A5C5 |
F7B81A76B417546BD562A158CF3A0AFCDB0FFFEDAFFEEAAFE08977A7397D4C41 |
39AD2383CD99EA8F1A45ED38CD4ED6F68B8911F50050241103C3D74833C2764E |
78040682B024DC5E7A51E88BAF83EA84412A2ED084A94CDFDC7EFBADE79E7B6E |
6AFE373809FC49ABD9ECEB4D1DDBA141BC214E77786478564669C7DD49BB463B |
C96475A7EE4E9A7245E9F952DE61721E78E001E83C2581D9ED800D0674659C40 |
365D223A45CC651D9A800310E1920C13A1E2B801B467E451D18592252E1205B7 |
385CA1BC9DB4A99A4EDC68CBA903142670E5CA95975D76197BFBB8D5D72C1782 |
CCC5EA6B95E91C847E00AB79AC5ACB17C35AAB5DEC2AD4AB8DDC3B4DB92B1716 |
C25684498BED64182F6E475E984FAC6360E9AC93D457E07AF424E18E5CA56BF9 |
BB77FCEF4DF99FBF31DF2FBE951B28BD7B51FB375B39272CC765AA8CFAD5CBCA |
A0E42EAB7862AAE70DD22F584D853DEFA507269D4033776EDFA6CD834B97CE99 |
3D7BD6EF7EF7F241072FB516D2FC320CA13007B111B7DBF5C4BAA4891F782355 |
AB094C4AE36F18DBF7421B3D6AA75889566BAC5A1F1B6D0C8DD4C7AA4D1CD95A |
8BD68A17F8B971D475D43649E4196FE7ABD3A109E80051CE62B72C5DBA14FA5B |
7C537ED6018DC69680E9F020718298BC24B8830149189A7FFCE31F69BCEAFB14 |
A06CEDF7FDEF7FFFA31FFD28D34B34E4C5CD45C36E3A9FC0255F22AD1059254C |
8A1381DA265A1D278BB4DE8C8E72842E2E6832AF4647AAC0A49619BECFFA59D1 |
EBF211442E30199425836CDF7DF725CCCF38E56FA2757245FFFF8DC3ED29FF43 |
431B2F0676DD2FB94FA8D3CEA25C1C36CDBE99487B9BBDECDE9D337BCEB6FE6D |
A5A2F5DF87868720E813BFD5C81E3248F3906C3359C917C9B3469E062C64FFF6 |
7EBC692638008D7C5A48C26F16E1365AC6ED2EC6FD698DE2734A19BA6C340D5C |
0644CECB9E7BEEB97AF5EAE38E3BEE3BDFF90EB1287C2EF5AC800ABCE28A2BE0 |
91F0DC12A926861FE2FD3AD6D81B2709F1D8C3402169C688BC2C90072B939059 |
E803CB0119B585EC14F7116FEA1EAA8E3CFC4ECE1EE42C06496D8DDBE129EEBE |
FB6E1C2722A6E5C912683877EE5CEC69C5D3944C36595A9EFFE9659D3A4CA68A |
148BA4ED4F838847420119022AD44D819A80E846FC96D1AAFF96A560BA179381 |
54F9D237414636EEF21B2E58B0802A967951FCCBC0A06A4A71E34AB154AFD742 |
3F2C964B43A3238562BE3EBB599E1356FA8A118E64924AE718F6A35DDF346A12 |
47B1B1068C4D7DD918673D32CD6DA65099DD78BD59D9EA154CB0C30C4277C064 |
9B4E13507E313F6C1CA6F4299FB790AFC036B2BC26BD3D3811955258ABB5FBFA |
4AB8D8C040F37DEFDBFFB0C3DEF78B5FFE7CE9D25DB12CAB5F7DB9A717672DCC |
E521FC71AF26F401B442AA1BD2798E33DFCEF3B9D05D05DBEAB5D1B69A60C7E0 |
D8D6ADC3FDDB4746471AFD435613C43688142626ED0D9EB42D1D6B326D672A33 |
153A96DCE026C39861E3114EADB6282C8CA2B4214E9DB60BC3983220B8EB6898 |
9ACC1D67D94494F538123D092351B802E696211776C9553DA6F204EEDEA6F460 |
2F9A24E36B611B19FC7BEBADB79E70C2092C87A6634DFE09258D19D69FCEB2F1 |
9C6EB53CF2F8B9AAD8F805E6EA31B08B2FBEF8C61B6F7431207C4F100D34C14B |
2FBDA49E6B4ACDCA099319B7139FE0ED81E9FC330D80473DF2C823FFFDDFFF9D |
9E148904E8D188288ABF2406D96484DD2CCE26C84744D8A94F90A3D3877D9C4B |
5B4866731DA81AC0641CD1F62798CDEE1E26A8B113A133F879B5DE304EF09AE8 |
B7347FDB304E1E86F16E6D3BCA6EA90493253F3806ED27319FF03AD085F84FEC |
57F9494CE330EEA16E731D9A403722A3863C4A8A2A9C413BF2385AB674193328 |
CC2B942B2593F12530C02D9CAB99CABB9C4E13309F26C756905997138657667B |
673E05A76B9C002A9DD5E93481B469872620190BF304D20A4419E05E3818871E |
7AE8AF7EF52B9E0D97FA58CC45E259FC1F6902FA04CC0CB33ED6EDCDA216781C |
391FD00587F049AD1029970AB97CD468D66A56887CE3F66F5C71D595FD033B92 |
A2C9CDF6BBE614BDEEA45D6825569E268CA804396B9063FDF03EF461E9045EEC |
E70B413D2E0CFCFBD0410B971D7CFC27FEF1EF6FDDABD8FBE6587F90E1143BA2 |
433CF018D889279EF8E4934F92E6849F4FF3BC41319F83AAC509C2CED87BF92E |
8B172DDAB869FDE24573214A162D5A10841088F981C11DAFBEFACAC848DAC7AD |
0B86147E046DD5B420C204DE5E3BF0DB36559CDE060B980B12E806ABDEB09FA1 |
DE9204CEFBC0507DDBB6B16DFDD5919168A46AE0034056576B098E601CA532C3 |
56844E3D4ED9C21D9A80A07BB627314E40954749149B423373815CC267F5A871 |
F3C9CC9CB9E1D920EDADEB65CDFEEEBCF3CE33CF3CD364BC00575D75D545175D |
E41E5BE18C4DD673CD753789A4222DDD641658D127AB672DAFE6FEDCDDB17C23 |
E3529DDDD4D386405E5C841B588D9D4DD6D5CA8803CD2456CF6DDB56CCCA0B72 |
A4A61819153BA18CE09DE49F264487184097DEA0DA64EC98FA80D05A7ADC9C11 |
A2BC19F955AC569B40065AE410EEB38C0247F7D1471FFDD8C73EC6DB77003459 |
B14D241CC1E942B286619E25B2621BCD76DEDB381F2915B799B0DC25ADBD381B |
38E3F8179ECD2DB7DCF2E52F7F992C75C2243CF5D4537FFBB77FAB8B70C93900 |
4115DDBBB81253F59614CA33FB663115FC9EF7BC079A9C9499561374955C6A4C |
E324A6B481DC54C17436A3FEC4C921FD8302622C801409A8D24752693228A6CC |
137859B9964E38A928F1FEFEFBEF872C334E3D01694A15FC658AD8385A1C3604 |
2684E8647C81B8E6FFA94FD0C18B491D238A11FC7BC71D777CFEF39F7773C574 |
5E5D923BFBF8B0ED53B4734FD98211760C0D7ABEE99B3963B4BFDA2EB4CDCCA8 |
302FC8CFF29302D400CEADF19BB6377494E6633105A19F8F6B71B3D6CC75ED52 |
FB8FF5F9A2196D9905E5199B5AA3FE8C72EFA6A15A56C3DF9131664D25DEECB7 |
DF7EAB56ADD278A6B5DD122FF0BD4231F09276B315CF9F577EFF61EFC5E6EF29 |
976C562FAA2F5CB860C7C0D6EDDBB70D0CDA7C6CA952ECEBE9EEEDEBC24F023F |
C2179AF5B15A0DF2AB6EF95CACE0C383373DBF158410A9716B64086B1099A8DE |
4EC6C6A2A1D118D2A956374984630E2B301C1A4A76ECA80E8DD45324A0992E3A |
144CEC18A37D4B4D807D887F190E1571080BC72852B125C83F2A51CB1DC8181A |
4BA0E92274E45D29C7983E95716D321655069D7071FC90A821FA918A7FBA3E01 |
E51504C24D37DD243DC4BCF1B265CB60FE32338A1584B8A0D52BF630BCC1E195 |
08E22D4CE6A74A36BA3E90F83054FAC7EA364E08DD776F52BFA0309F5329B5FD |
792A3A2C5A348A65FE76F050EDFCE5C92B51908763C571C592400E3EF6D8631D |
ED594C8697FAE77FFE674881246514912BA0CE47C938791656AE9A66010C2C97 |
0D1B36A50F6F91A22E570935245D1BD15DA991596ACA8D431B93AC096AB65DDE |
0611BAA503784F8DA5B836AB04B078F4C719AC50DC5CD0DD5D3232547C812B8D |
4BB14D28CF3097D90DE57B0ED0F39E7BEE39F9E4939560103E271F169AAD6621 |
5F808C5EB7DEF627EAEDE91D1A1E82E7AD9E442CDF3393323C6EF4693A4D80C1 |
68BAF80991E39C5B8CEDCA2BAFBCFCF2CBE98449B273AE64554D4E4CB9184D69 |
0206B83903F48ED942DDD5D02603F61024C3F0111FAD830449D0D5FF91263059 |
3F038A12C61928E8D50D5B64E3BC91188798C11E7783CAE5A8D52EE482461542 |
3B5F6B3469F376457D7533D6CEB5CC4253DAC5F85D1E35461EC21236763A25F9 |
5C908F0BA383D5E60E6336E64DAB596AFB79130C05ADA0528C86EB4BF7D963ED |
FF79CD9B0A454A37C877FA76999DF6EA9AD967F182589F05F3BB61E91F76D8BB |
7B7ACA9E9F84894D06CC9A3573EBB68D38FE5BB66EDCB66D0B16B3D295EF9BD1 |
3363464FA59CCFE5F1408D5A6DB45A1B4D5AE39C3F90F17152B38A2168F9011E |
D4E286F0688DC8D45BA651F71AED42D40ABDA43BF0BADA516570D06CDA3CBC79 |
CB8E81E1A106ACA0F87FA60964551C73CC31102912B86E5F748A11D2E45D7DF5 |
D5D84BDFFCE6374F3AE92459ABDCAE02FEC91470C1A6824EE038BB94917EC6DC |
2E6FDBC54C4BD47272A460DC3E5FCAA2F17642FAE1A0413E90B01AD6E4CA952B |
E5867668025659AA2FBA9E42C28417A428563851B225769AE7582E8666B38C9D |
3C36E665AD6D2DE8C678AADC5620C44C1F4B781B0F2275C7E2028C00C63BF51E |
C68AA9B7347569193A79A04C86EDC5D7DE78E30D4C0D04196902E9585061BA2D |
09DD82144A10BA7ECC9AD22B74C367BBEDB61BC6C3208397159AE2E20CE8B380 |
50CC42CA72971D375C07CC4DBB7323BAD45D0A9AD36D97DEA696361932AC83BA |
40D10C4542B8C324C7192B647A568F4F3A7EAA71ED691A863A090233706D3A74 |
2A75958B6F9335C18063075CC185BD6A9608ABE00170637D7A2F7CB42BD671AE |
60E99C77DE795FFFFAD79979C31714675397154E919B10165C441CEBAE93CBA5 |
E4D27029D5A28FBE202F486DA16263FC4B0241E3D0F46B434B4F63C752EE0BBA |
CE7B2559FB0D1E6993611C4C9661126FB638E2052EB429C4036BF9A0E841E227 |
A54D6BB7263BD233147B3913BAAEC615575C019B8064329C01E217CF38E38CBB |
EEBA4B84E70CB19E7FBEED758163682DD05C029D134798D53E1CF2A38F3EFA89 |
7F79BC54864B0279618AA560C1FC394B97EE3AA3B71B12A6000D164429F6ACC0 |
8ABFCD9B37119F5EE9C9F7F65466CCEC2E157100EA51BB66923A84898D0019DB |
B5C84B5A89697BB6B0C0A2A702E3B593B4BB245C8FA09098C02288DA493E981F |
B58AA65D191E6E6EDCDCBF65C7F08EA1767FFF58A36D0B832C50D51A79B8AA85 |
16D985F33D6E72D7B0989CF7EAD0E5C669DDCAF09D97D5A9119F23FCF1F5D75F |
8FB9D5D622445B2A81B28551970E6D2489AC0F691904595F019631AAD58F7B28 |
28AF346C3706407C8A2B5B495F860DA36A5C2FAD50A329C07D4E51E0F69390D9 |
C452A4030F3CF0F7BFFFBD0E3B452EBD19B62C75B30226A3E9B46D0652952065 |
430F8C3B135E3BDBC5B34D8D4B4369C44A4D28A11B5DD11185058D038FA9B9FB |
EEBBB18F99CC51D7A7EF7EF7BBF01BA41EDCA6A9EE4BD824F7466AA4C9F23446 |
EDB1DEE41722ADABCC5559763225949C74214F22D6503185A24371C6EDCC9E30 |
AC0191A53F79CC54ADBA94CBE84021FBE94F7FFAF1C71F6781381E1C730A4D40 |
4828D59B1BAED1F0A409DCA66354363222BCB4CE9EE78499586218848EE52A46 |
93BAC549F399ACAA401D71E9D851F931329664F42C026C7859E51A9157444099 |
2C01F88E77BC035BB0634D5DD5629C7625240B529D170F2D053D3EE1D7B885D8 |
85065292ABB920E5D4C56964536808746C5FFC8BEFA88651DAD173AA66743269 |
0A481E918084FE812D1FCB1A9919A7916C876929B61F757712DB7932BFD9EAB7 |
3088197D3D1FF98B8FFECB234FD44631455E62C683C82C886589250B355863C8 |
67A7E89725D8412A69493E8A411366B9ADEDB2CFB578D1C2F51BDEC22396CB66 |
8F3D765DB664D7AEEE4A609238B11C2473E7CC325E2BB54F0D0DA6C1C1018CDC |
6E8C5CAB5C2A7675C30F86DB697B722651DD4684E2BA5D4F13594D90501340EC |
26ED3AF4009484F17C63F921E1ED2481DD23716FDC2C98B8BB3616F70F0D0E8F |
4523A3C9F6C1C6E0703BED2C9D06D96DDAC08F53011B84E3F1168607D5DA45BB |
B4C33855609D8D9B2497496288A973D16E3CE904BC89B0C04C6CDBA7459427E1 |
0A019D4A45E7DDFD60B25A4B9283D2CE6314C8F5CBDDF76401221F0CF90D791D |
B7ED076C26E8302C34841BBC6716C6BB093C5E870281DC88A79C72CA430F3D44 |
C18D0525D325E3F61FFFF8C7FFEDDFFE0D6631C4328BB40953C4E99601272E23 |
5CF081071E58B16205FD72056F6903B16B0B35A2A70C09A51B9D35689275EBD6 |
C9A5E2E46ACAB865F157B214E0DEB82B3FE1CEC627B83ABEEC8253F573F88627 |
9C7002D75B4D3BF5C245E84029D3C0E430FE842B431F427928A362B21E7238AB |
7A63264657DC689DF681A88A4CE6932AB826E9C97A7AE60312A760CF644179E8 |
6D4846E921C63D79116E083715AF9E441A55987500E7B4BB21027661539A911C |
738CF5D30FE06F190157B346E3D8C812943A81C2D2B855FBC44860B625A36991 |
D10011E117638622F6509A8B2CE5AE32D6647EF6B39FBDFFFEFBA1DD091CE26E |
53490A6D029752ED5BDFFAD6F1C71F2F7E6CBA5C8C3E290DCE11D20A93C337D9 |
F4E3CBF232A65E8BFC3F42B60F39E490175E782149893AA83354450FA3895CAD |
DC7526F3CFF0FEF4D34F7FFAE9A7ADCFE741D8995D7759B676CD9B0BE62CD8BA |
AD7FD1EC459BFAB744C1B8EE9742E55A2828619CB2236635187564790D5E3871 |
3639D9AAD76A8D62BED4A8B7ACF16ECBD8CCE2C5F377DB6DD62E8B16627AE13E |
79091622ECE9AEE0A4787E3B8DEF35188BAFD5AA4CCF7881051AE5F326F471F7 |
5ADCAE45B18DFAC7B1DD039E2D348B3C8B808D21FAE110D4ABBE75CC6C78C484 |
F954A5F9B9C452A3E7E266D14BBAE228A836DAAD38A8370B0343D1A66DB5EDDB |
07FAB7EDC0B2A7E67140883C2EA8281C2E023311226CD5AA552ED790AB12583B |
8635A2C430191E441C4A7846E84E980214FD984FED76011CD4C9CE38D5097EC6 |
A3E3260B1387F0DC642C0E102624382249B5DBB79C3A9BCD1C6538BA41D48E68 |
1EC6892FE09AB495B1C4975C72C965975D86A7C395B98D95205118561A5134E3 |
1417CAC95139F1A0E138107242AB4EE4B20CAC31EC21E64A9714122A01DE2745 |
3F6942A86918AAF16466EA6831F5C1BA67C62EBC147108639F7979CA687C41E2 |
98F110F69D48B2F600C4FF10D1C8C886DA282AA2CD6393648DCC7880DD9638C4 |
9C747010CAD653B980E4A08B28703F97E5885F71CF91F94FE9294545E4A6D11B |
505C4801776E0221D9F91E5B8A2606252C5D1945B1F19F279F7CF233CF3CC35A |
279AC364B86375955BC3459A555804C71E7BAC6B33320ECE0108C84430BEDBBA |
B223B3246E03CBF5B478316419857539E5BEC65FDFF9CE77FEF6B7BFC560088E |
26E6C7259960C130BB35D0C9551A4A61131962541B7884DD76DB6DF5EAD54AE6 |
2B0048052045A52995EFF2F5AF7F1DF614F6096507C987F143DC1A9B4D3C01CA |
76B8D1308A5D3A979C7FC661DC4D8533F6C61B6FB8A15E0AEE76D623DA3DD898 |
2BFC8BE9623E1C8ECEE8F6D1B1FA9867FC62DE6ECEC84479BFD88C2DCD906271 |
E458559985443F550B639B1497B7DD761B0EA7CC5EFB74B52A1C022E2E8471A3 |
D958BAEBBCBDF7DE73EFE5F34998531D1DC6A8E6CC9E095FCB0ABB829F9668D5 |
18466B34EA7486C27C2BC53735030FFF091D504B62CC7CD3C443E99445264E51 |
A47EB6439AE5286EB5A334859387699C4F2B3072C6CB45AD5C687AFCB0D08EBD |
242837DBE5A1A178DDD6E6E6CD5BD7AFDB383838D26A9B183E46E25970693C4E |
2BCB63251CC194281AE32469052FE6CA62BAB05DB185F835C9135A456EFD0AF7 |
18179464B75871C52463A7F1B871BA8BFB59D31BF1F2264E2B1B12309BAC108C |
9BD3B5297529C62A98CD6652906176EE73371E406C2885679291E17B4EB93EC3 |
9E1277AC012257123BA650D6F3873C086EAC58412D655008D2610801FFC9BDAD |
9633B8A30AE5EC617463023AB149C6D7CFD6546427C639813270C9408C9343E6 |
4BE093F9F3E7E3316011C030243AD34BEB44E01C89F24196BB6255781836FDE1 |
14333A14670D46D8BB072719D6931AB0F1F0D30965EE9A902F6F22FB87F6C15E |
7BED05B5F49BDFFC06EF972F5FFECA2BAFB05912B14F5448EC12ACB60DAA3DE1 |
9092AC1908EF4BAF48C14A85A714CEE22E8178127AB5E3E51E12262108D9E2A4 |
41325E7EF9E5441371E175BA0496752FE22678E9840AD1AF0655AA8DC05FE178 |
C264D3126805F9656A355DCA0D4609F422F8364F8E58A178C2A96FD85F487CAB |
628B9333C42FF000B07858E80322CA459ED131757C85D98BC63E1E079BED631F |
FBD875D75DA7D274DFE9F64CD5ABBC056E8159C5543CFBECB3ECD3C0732588E1 |
DBE59AC65F306FC1862D9B1263A72857C86FDFDE9F8AB4B76B474CC6A347C382 |
505D468D48ED47F5433C1E0D23DC142E26E653AA3DF0FC5CDE9BD957D96FFFE5 |
7BEDBD5BBB3DD855B272D0528B17AD5E0C52D6874239C5F847AD8C9DA69E8C77 |
8DB704AB5E82E5863268A4859CCD24C24EDE21DE8830F56FD20A2BAC5D17F444 |
62DA7E1015F261A9544841FA052F97376D3808DD61506CE3E98372A35D191C8A |
376E6D6DD9B2EDCDB51B366EDE3E3854ADD76C81050C272F19E7205168D138F4 |
569335814AA85C100EFF446549E6679C59F288DC77DF7D7037692D6156E5E9EA |
D8B28E9524EDC2F074E8214E11C749A03CBE79C20927FCF0873FC42D38007AA2 |
4A3B2997E0DA5B78C1C2FBFEF7BFEF6A265C106386A013553006B660C10212F3 |
50BE8BDB2DC87AA5A8A88BD2CFED2E25E7892A41FE37633398197C81470626D4 |
CA952BF19E44D334F985D1703907D5AA8B61038BBBD546C77FF0B48B6E9E241E |
1D34006E633686B4C6D297BA71CA2D30292015BEA1480D4D86F65572D2A44574 |
147938BDCC40B864642E384441587CD34BDBE6D04C209C8096BEE0225AAA0E73 |
C0A4B15ACC20FE7DD7BBDEF5B39FFD4C91076258B933E80F7959BB2BF5545124 |
DAE586E42EDC73CF3D61718B8A2770BA7E72E14DC6D14D058E0F498E163B44CA |
323AF8BCCC856024DC551434D80178CFE1A9E04B6171D9DACA7BE371F0B098A8 |
33CF3C1316A899D89052905F950473A2587426AEC728EBCECA44083E39ECB0C3 |
E04C40112A14CECA32FA0DECCD80F7343AC447ABC69C1D211DA69AA942542884 |
69845D0315A58080F6C064CD279F40D109AA7385FBF09F44C761FFF00DE363F2 |
BA5422A32A2132EFB3B402C60D2C2C1B35093D58DE854A3E82646D585366F62E |
B377BC351ECFD441501285DA917B9E054ADC24E79E7BEE4D37DD44C9858B1F7A |
E8A18F3EFA286E55B11D5146615D7495F37BEDBD6CE9D2854B97EEB275CB9BB4 |
031A351B22C8A75AC7FAAC396E98982BD54EC906D2FD5FF50D447E33F0A3C06F |
9AA49EC4CD3869C1274827CD56426077843993E73EF1F29EFD6602CBB054CC11 |
1A5ECC15F08D04666ED88D276BC2E4F72BED76CFE070B26D7B73C78EC10D1BB6 |
ADDFD8BF69F3F6FEED6369C18FCD75FB59A930DD50CC868ED8E4E81014309B7C |
F1C4719F530A618341316B7528227072B12EA451E126A7AB27C797A686DB53AB |
C3D89299CB2B9F76DA694F3FFD34D69DECC5AC1FE64F089127FFE87824DD512A |
4946AACA3DC691ABBA3EC9BA2AA9A5AB80335ED632C838083DA6A68E3AEA2868 |
A3242B7556EDBDFC15D7C0C577301594C6F8136C4DA81F86F1D9319ECE0D4F2B |
CB3CA5455803405264288F33CE38C353BC5883C327D8971896143265044BE98C |
D3878B53EFC628B80BE9C4B929752F6593C75D38351C10E717DA123202033DF5 |
D453A1F0E18043B8F0B4C7196BB97200AEB6C4B139E59453049377D971DDC8B2 |
8BBF74235726F59ED809873C740AD2E16BB6D3B2433AED063478591E6FAA0DCC |
3E9EE2031FF8C0534F3D454014A536452D13C8CC3D924DBE83834185D0AE7054 |
C60CFF62B5C487BAF7DE7B33CD3E25215747BA98D3E836409794A4014EC801B7 |
859A7BF079D59F84CE07CF03E38FD48E4AFC081922702A3712CD6A467829BBE1 |
90C13B11F387484FB9E5D6AE5DCB489438E370911B6FBCF18B5FFC226E8D3585 |
03C7F1339467264241F4721104DA9FAC0D74BB5B5360F1B48B91C664303337F1 |
C8591A87B1B59A7E004FBF343A9A4AA8D0F4CDE81BEC1F2CE5C7B72517D456C2 |
6778470D0C4780FEBE2AEC44E5CBC979FDF5D7E38827DFCC99555EB868CE1E7B |
EC52E9CACD9D37CB4B5AAD66343C3464C3A4C552AA3B939C1FB452DE79F803CC |
4062FD69A5E57336F21306B117344DDC88E3B1A85DC317BD64CCD6267849E827 |
500385BC6F5DD09C6FFC280CF0807EB110E40BB952BE58C8E5C3209F0479DB68 |
3C57C1851BEDD80BBBE364D6582D5F1D6B0D8FD4B6F50F6FD90A7DB07DDD86FE |
ED3BE01A5843DC4558F2C17936DD35D2AAB13447275D7B49303FCD21930184D6 |
C85467B728B23A2BEC2E13673AE8A4714AF7930CE3CFFD8FEB63BF4138CAA191 |
7DE04D85CA171A95BB0506102E822D7AD75D7741BC12A8432B4DF45FAE34D77F |
527E620FB0D6552CAD9C04FEEB72A09ACC8B62FB498C1F178732601F6F930155 |
880BC5444189928B0CD3CBD6B93C95468472CACE49F2E212106A3FF8C10F4860 |
093B48CC741C1CEF814BE3FB8C5AC815A077C33925271D03B5C6A9DF7303F1EE |
5C3049C2F168395DA744615C294372EB7FFEF39FBFF5D65B099EA339E976FC91 |
95AD127F615D8443A7DDC7023FBE79E73BDF09758A6797B44D9C526FAA7146A8 |
4CD6DD53C059B785B2DC58A97411E4262973087C2677870944E4A5AD69449DC8 |
05C29B9B6FBEF98A2BAE206F1296960691C0D493F304AA2B56B95C072C9A690C |
17EA4EAB5F0DBB09B051C88E0C3049CACF2AFE77AD1A9109268326AB98803373 |
CD35D75C7BEDB51A1EBD16AA4C65A768D3B19A040A8CF1315239E198E1915DEE |
1317CBC1A99358E172B7B32E89321ED9A148F82E8E841139F503104640D34859 |
66E33CA3D65668B55BE17819D4F64CE70D6BD37A19C657C0988E25A06EA62A75 |
71F129A40AE38740A92CDD75D1FE07EC357B76573BAA75F71493761C78FE78EC |
344AE968226B8B8C366A69C7C0D10CA410509F75978A90EFB930093C68F7B166 |
6BA4D51AB3E5C2C622886C557410E7737EA118E4F3412EF4BD7C3D6733CC39E8 |
0648AF5C900FFC5C60FC245FF4A3422E2CC79EDF6C457EAED70FE737EAF0E6C3 |
5AB531385CEB1FA84213AC59BB69DDFA6D4323A323636FA7F118D3272ACC0D15 |
B89A4045B00C3E0BC24BD2782E1FD43F9D60B7CCD8644929063318C65018D3DB |
6961ADC92239B31DD62F72C28B6C8DF906EE2297C8DD7D29D8103ADD92B98548 |
61C94DA58DA1BC85C21562BC90E683347BF0C1076949CB5357D5857C6255A850 |
6F31692AE386E28227453D38190156FF575E9009605C8D5439E321637620C01B |
4ED0EEBBEF0E6FE57BDFFB1E7E4F950E610D13464E131783E60F55B4EF348F35 |
99EF43B989D7BBDEF5AEDFFDEE77C6A9B72683B1F2FEAE1A3459774CD576738B |
07691F024A049AE49C14B6D7E0FC12D4A4181CE55D9C3538E5FAA9531D2300F8 |
886D1F023F305980A5D16C84A91BEEA271F8506E20853288760145AA0229B48C |
F07D587FA4AFE0CF69CB402C5E77DD759C1C21AF88B0A4C662DCDCA4B82969E5 |
8B2FBEF8CB5FFE32E3EFC6418B2A104FE9CCA09C1C35D1487006947683CE7BFE |
F9E73B8C38B71247BB50CF4BC16AB2AA1CFCEB267E265680BF1DFAD42CC95F36 |
591C86F4007873D555576142883765F81E4FB462C58A7BEFBD977BC6CBD82998 |
E4A741C0201E14E4D5575FADB54BB2363B5C6E1CB0279F7C1206170182EA5AC1 |
7A37EA1EE578A6131F9E0393EF90684455D0DF4AB22A21A50A784D32D88C8B15 |
CF822F717F682E93F66B6A47E9D16DB60BA1376F7EDFF27D97EDB9C79299B37A |
20923D98EC29D83FCE5833A3EC852B334C6A491E53CC0C63B64188D314D87A03 |
3F4EA26AB339D4680CB6A346D21EC3AE09C224674343106106FA003A2384F51F |
FA85BCFDCF7C4A6CEC61C5120B0B4D9282E7770561C978412BC671E80DBD1903 |
B5B0502846B1191CA86EDEB263FD8681B56BA1FAB7355BC1E0E06862FCBEDE99 |
8343909EB16D0E1A472636DAD8D4D6DCBD6EC341ED79D77757489618395A27DC |
6F227BD046E5BABB34701D186BBD7133C9EE01A70CE5F67623EC348C78C693AC |
C4951B8CC3108192E2C6F8D581071EF89BDFFCC6659FF6A6651399A29100138D |
B0F48F3FFEF85B6EB985CA4660071D67DA4CFA893045AAB921D3A27894158655 |
C592FDA17C7C9710869763FB1492E788E993C958E255D9785A315C495E97175B |
302F2CE441071DF4F39FFF9C6678D645D6FE969C775C7832F3C91BA2F5CA414A |
332BBD49FDA63E4422B7EA782291D2A8B19F9B4831A9DB0E5FB83F4DFD912CCF |
6EC47265AC3A264DA079F733BE75DFA9B9551482F632EBE3E92DD19DE28DF057 |
FC27CD1056BA26594F343E2961275A33E8F32F7CE10B26C3C651C39D7AEAA9EC |
F124D924D52B1F0253F4D9CF7E16D6B4369F02291CFF59679DC58621EA7DC836 |
559C16359671437C533EAF1424ED38F690E039C7247383D265640A47C79BF871 |
8CF0BCF3CE334E484761196920EA2A933A85E40754E73B560E332ECC38325D5B |
510D2BCB479DD121D3C51A824BD1F064388ED4F62EE25BD69F620EF211F96251 |
12F7AD5A4212D1C05407BB2E4B6C4152C3404F8711400DE40B30A7462D435C10 |
CC9B3373E9B2058B779D376B56C5BAB8290FAAEF4DA0F1E11EA332605F0A32EB |
D1E8B16949CFFA7C052B1BDB49040373B0D9B201A2C0AFDB963521A6D7CBE792 |
5C3EB1EE50E025612B17E0737CE2D9720293B251A464D430C68C57F1FC7CE441 |
C68589E9094C6F1CCCB21E47ECD71BD1E8687B5B7FF5CDB7B66C58BF65DDFA7E |
ECE54F1E7FD23F3DF4B0856CC11B889A119CF5429146895B55EEEAD10E9D4A5C |
2FE535D70E56C297BEF4A5238E3802B295C84E2E34259532BA1DDB72B20EE09B |
C8699AEDE61115AEE086A455CEF060E0349777DFFB59030002826912912E82F6 |
A2DAB89A69424C666261BF3B54F2DB43D0B11FB558EB455B89CB625F7DF5AB5F |
BDE8A28B18E72418810F82616072D4E0CBEDDBC8532F8AB371861CFC86103D22 |
79B1A14D5A72A90480C0DDD245C71D77DC6BAFBDF6DC73CF19A7B0D39FD43CD6 |
0551414613534FE38B96B5728954A7D4AE0C87B18060D5AA55EEDD2941700538 |
2E70503A18CD3053B7DF7E3B26858521F815FB63503488D3E384134E78E8A187 |
6840E1B25643B65A10FD36AA13479F59F199679F7DF6B5D75FC3278DD678C4BF |
23FF4C6137A56414741D9F430309EA336FDE3C0685252F701176FD950D0EE317 |
829EF8651229B3ED86D230B8BE5C2B8274299EA8DB896A657DA3DAA2BA5E9AF6 |
1946C5C1C82E200C59425F907F7AD91DA127457558D6C86CC4E1871FFEC4134F |
B0DBF37857862C1AD601A723A9243BCBE35F4D0B193E18A627B2DB35B2C8DEC1 |
F023771AAC6CC1A2F0A79B6EBAE99A6BAE119A39709A37F19AF83EDC02EE199A |
110434BB981F6550A875242F841470CD02BA479405D42254DB0A70533773186C |
024873A1D5AE47E371473F2D2049FBCA41C47657F659BE6C9F7DF79839ABE27B |
6D7C924F2B0EDBCDC873AA25E416103244AE7FEE646E03328FE673A1E5228DEA |
710435301627CD42AE6AA34639FCC9CFE50D34413EF4A01B82421CFA501E5003 |
B665417A8C5335801BB573516C0BCD9A3166099BB6076E7958988FE1245EE0F9 |
580BD84CF1BAB7B6BEB56EF39BF8F7ADF59F3AE1E43BBEF10F26AD34484CD4D3 |
DB3D3234AA242AA7CB8D17A9328019239C149C8BA79F7E9AD51EDC60AE2C63F5 |
9C9B2DA055E75AF7DAF0AEF075F37CDAC96E3083562F6B1BB181F12FAB656551 |
B93A46D84D658979050E0C9B0D560E09EF28DFE8F198695EDEC4173F24F7B5FB |
35DFA1FFA2714CE7982958DE9A9F7FE73BDF81943669EC8BE949BC81CF7DC619 |
67C0CF807050E03D603F459D7FDDC9DDE8140A2C62E26F703FDC298D4E56B9A8 |
8C98EBC0B8811405E2757DB7AB839A7560BDC9244E3663C1992EBDF4D21B6EB8 |
41544D620EB07D2BD3AD4F11C930821A525E7CF1C5B7DD761B56052ED505175C |
40198AEDC22FF3F0F04F26238EC691EAEEEA66A206AEC0899F3AF185175E58F5 |
5FAB822C6ADCB1C33A5ED20469ED4FC498D549279D74F7DD77BB706093D129BB |
A5CB1D31318A605A46B4A95D80B622A1B8239B9D6A0C3866B48E152ABDE79E7B |
CE39E71C6A41FE50D96F227DF12F93ED84CA60F6C8F9A5781D535E14DC1DF14D |
656219823CF1C41331E7C20EE10B38CF8CD7D14EE72CA90DB27602A500F6284B |
11E9BA51DCE38507A4FA178DE5D2A54B3FFEF18FFFFDDFFFBD78BCD98E9CF3E3 |
EA66CE834B666032E60C7C78FDF5D7DF71C71D6A4765D29E88C6A141E46F1546 |
70D5BF8EAE2AC34F3EF9E4C71F7F7C975D766119B69F5505329FC91344885D86 |
644D013CF62E5C1AD3B6FCE4E1AE8BE71DB0DFF2BDF65E962FC6CD06CE579C4F |
B756DCF23A925E74FFE9F513392D98868D26E72CB997D507B6134D037694891B |
B6B56A3812E602D818450B108DE116908BB450C26326F63F03C8EF54F14313A4 |
E4D3CD168E3C9481D768B7EA2DDF243D81D75BEA5AE4FBA1F1E1FE948BF9DE56 |
3BD8B47970E386FE37DFDCF2E28BBF6FB4CCE0C068148F5BFAE5AE4A75D42E7A |
4799BA0B9C733F645E014E2D7694C2415E5AC44BFF121B03E2EC873FFC213E14 |
8042F14F57524F96B67AA3D8BD0A7A64EFF3AFBC11F5903F89D7442F1E6DB7E3 |
219D63B9FBE4D7EB18C06401D2A10FB893B90329DFB8EE6E1B3EFE44C61CC532 |
4F1F43CD38E31803318D4C09D0F6158E888F6FD52DB72C9B945160B18B3ABFA1 |
0CAD1840BD143C8A6F320823338DEE125FAE3210810C5113B2F55C72574EA212 |
41AA339099CF54B0E88E4D1A376723F873CF3DF71BDFF88664283E84ECB8E492 |
4B2029D4D375EFBDF75EBD7A3503D62EF31FDB5A7142F32963B62D9B37C9CC19 |
69397BA30EDD309692154FA909A6F409704702A256AC58B172E54A9386111986 |
66D139A6028317589636A31C2F412C48F484DF4252933C441D894D5678412B1B |
97FDC4273E01F79053CA99E41BC607697C315231B914D3CB189F2EBFFC724846 |
C6EBF014981FE13184A7565E440E3E137DB808F61C5681010A3EC2D9679F0D55 |
A464E9785B98B4AE4A4F4AA01BF9A571656C00265474116DDC0E2489A0AB2643 |
DCD23D579B11059D696932104447D34FA9F7684C5D76D9650F3FFC30B6077FC2 |
8327D0B0C4AE1B77EEB0DA7868D5433B498B5A7071053F8B191D299BE8AAF211 |
834FE701E29B4492988DB9FBECB36CD9924573E7CD6847B56603471A56B78533 |
964B7D1D43A24DE3A57FA50EE027B4A3A3C458BC2B76BB1F7B963BB5EED99282 |
280C866CED71C183910A4D50C8D96C41607BD558D429DEE7021358F620CF4F9F |
188F034DD06C5AD2D67AD46A34039374C327983163492A3EF289078D5386D936 |
3058DFB17D78D57FBDBE7EDDA6E77EB7265730ADA62996DEB67B08C4803B2BDA |
A80EF1DDF17209A825F21866E10E2447052B9045F5681C3F60CA1CB57B78A5CE |
4D4627E356AB31E897F523E9C462F04366987184DD9A568E5C0E10FF4494EA74 |
0F9BCBA2D0AED9E1D62D7177117EA2F9612290EA87868B209D7C40E5E42067CE |
3FFFFCAF7CE52B6C208AEF74746EF7A8B5182D7DBBAD8AE741E5DE79E79DF82A |
9E070E35E16EC41BE1AEECEF4C6E165CC176A3ECEF57FC744A6D2C7892B04349 |
DA0582A829CE38B40B414E4986F9A5B472F115F06EAEBCF24A8E879B9E8EBCD8 |
29B039702F4A93279E78E2E8A38F3659181A72078B812970512E1446B61FA11F |
D01A6D341BBD3DB620DBEA06A7A4D04CAADB9A9C3166B504B99F88EA1521CFF1 |
C71FCFD0BCD02F6E96853340C5C0CFF9C9E2C58BF109971F37C2A6771B2F339A |
C74D43443673D114CD982291A7ABD887B28C941EF810DB027631661EBFC2025D |
73CD35FFF22FFF42C38DFE810BE816FACB251025D600DB807B63BCCF44A3B1FB |
EEBB33746326525C3092C30BE23FD5D98D7A51A5DACC2592F74DE5578CDEF859 |
AF57DE8E551A324A9458167B1D5161D4139FFEF4A7FFF55FFF95278DEE3F07D3 |
9376C413D6888FC6688FE2184AFAB9B2862F5ABB42857260B82375393E39E490 |
438E3AEA2818284412E3D7A55239BDBBED1A673CF822C5E5FBECB1E71E4B66CF |
EC2B95C34673348E1A70C9AC26A84318E53C879F4AD121BA5C047A08956B173D |
F143F2C7C027306D93347DD3F4FC38F0076DD4A8E0E573265788F2B9785C1398 |
113FC05F937C888390B06CCD4FFC7612B7E11344A1ED6F10B51B6DE88BEED0EF |
AD74CDB53BCACF355A493B0ABDA4DC6CFAF57A6BCDDACD6FBCBEFECDB736AD7B |
B31F9E818D02B5E27C719C5393E5DFFE24A62FD95226F309F04454037C2F5B98 |
8BE86715C2175D74D10F7EF08355AB5605D3B7F99BAC09A40326678C1387A642 |
B2456C0BC609E5F314D8565A59498D4818CDC4525E3728329D4FA0F223E58D45 |
DFC4DF7A4E21310F263E8148B9FFFEFB353CE6CC18DB540190F01DB80E1C624A |
54F9138C61D8ABC1968431881F4370B0468C8A1A4B4586779381D095C5E5013B |
EEB8E3A0DEF1B48C604C1944334ED386C0A1F064201B0F80B38185E47F4A5EF3 |
38495FC933A02D4FB227CA0B28120C0C4F4541A31ED662A6C3ADA1B119DAFAE0 |
073FF8E4934FF2F9BBD2172420750C7E3E7BA66D51642DD646BDABD2353A36BA |
78975404D76B1D8BE72A0393450CA409BC8C53C1CBA0840C7490CD09B790B090 |
706424548E02560BB34A248FC8FD4570CD0526624443724B3A653B7B59A3280E |
86AA570473E2AB805287E5EE160770BD3099188CDB8A6EB2E6E3BA30A0872FEC |
BBEFBE182D574D54FBAE1C574857102391029D74D249509334291428E31D3587 |
94C8B4AAF04D5CEAC8238F7CECB1C764CD09CEAB803E5D19BA025C3822774D46 |
FF42DB9C5A4725A06A4B226B3171D8313B4418DFC8C45162434A112F9680CA16 |
961C61161DF67DB1949B3B6FE6FEFBEFB370C19CEE4A0992BAD9AAC611D6C80F |
3D3B93F5665B9AA023FFC1C3AF5416CD23E3D9320808745BF59B408CD7A10C12 |
D3F2CD4810C203860288E0393055602342B95158FB7E00A721B14567295E894F |
07651A45398B228DA3B6AD58E8F1835E8B30CA17F11C58CC661B7B188E422589 |
73D57AF2E20BABFAB70DFFE10FAF56C7A2A111BB4B7759B4CBBA0DEB4D16E015 |
E68D5292764CE474CC96C540BF56A850FAF402B22B3E6126E2C5A75C2F574F48 |
E2771053F31604B0B830771E316E3FF7D4939F8E54A96278A4E3C2342FC4D1B2 |
65CB206768A2ED244FA06895428E8A9B896B87CC486CB4801DC59A4471BD7084 |
7A5EB5DA6518E094534E79E081074CE6D762D8D4076F6B20FAD7B807053ADEE0 |
535AA00C41305BCD07F0B3C64F8C49B17A4B68453D95626A9C32290FB1329107 |
E6C20B2FBCEAAAABB8EACCA7E13B0C23F0CC70AE3523C944983CBE4F918A1967 |
D242FD0978ECE528712789025AC11668383CC27801A131CB962E5BB3764DCEF6 |
7EB57BB41DB5E12544C9047FD338CC591D2ADD6454CFCCF1E22EB4FE68C27007 |
134227DF4BC48122EDD1537CEE739FFBC77FFCC724A365772933B3D63D2147C5 |
740B8983A0B921D6B939B8B754CD1F66DD49E50F09ACB566CD1A9E042E659255 |
87519E12A13C39632C9F80C3660181C9627DD824F0DEE08D62CB4AB2BB75D7DC |
B5149A6A5C25F80D03381D9150D904C641F8F176B802F6039419F316AA99A7B1 |
4C75AB22C40EC01B2FCBC128C2E04FEC43AB0DE04DEAD92014AF848597D10B32 |
40ACB4B932A54E903A073500C1DE37A37BDEFC19FBEFBFDFDC39B3BA6C4701BF |
DE18AE8D8D45712BB4E679E0873993C154A8094C06C667F8450A695C1525B990 |
92D122389B968B34CD1378F1A8B5FDC33817B68310E2C32A030CD60F86431B12 |
6AC121B09AC03396988E42D922470B8917B43D1C0AFCA52B08FB0A612197CBB7 |
A2A456C7875069B38AA5BEC0CFD7EAFEA68DDBFEF887575F7F7D53FFB6A1C1E1 |
DAF070DAC53EC57C8B4C9E11081E644614794684CEC03A7209185161B8C34BD1 |
CF6E1D3897CC0DFC9A8C6A77725E7A7280887B89DF275B09DE9C78E289FFF44F |
FF44D67D02D9D5B5909678C72679F8E187614ED127132104762CA3C494517EC6 |
963F5DAED173BAA7B16880720FCF452B102339F4D0437FFBDBDFD205A47C6625 |
6C47C5835229C467D309E0F7E92E30740C1FE0B2CB2E335958CCFBE637BF79DE |
79E7899C88A5F0ACCF628135CD16C585540DCBB32181484113676D6114A33719 |
CD05BD39A543891B51AC8A373AEBACB36EBBED369218538A29621B64F45ED22B |
04D830C6C22B98ACF4979A80CF9C381C9FF8EDE9A79FCEBC4247C9154CCB638E |
39464457141FDC5E9A4A89248966756F57298049C3D626ED7FBD6EDD3A57E8DC |
72CB2D575E79A597968C990C02EBA6165D8B9ECE29A3EA325868F9CAA8E9885A |
BA324B3E262E4572501619523E32033CE58E64B28E2BFB918F7CE4BBDFFDAE4C |
5DC1A244A9E40269544F47BF58311F417EB9857035B624E44CB280D3CB30D1F8 |
CEB9E79E8B0DAA78A06BE9B8DA88CAC36D6A4FCDC455BBFDF6DBA11445F9609C |
AE0F1DAF6422DCB0237549E7D8557BD3CD9B9FF1D8F819E17092559F4EB95ED6 |
50097D88E6384A6C866051DF7EFBEDBD6CB725DD29101012A05A1BC6CD213F8D |
0749540FFC71E6478A09AEAF6A35DC4CE6F84130700552BC535A7510B75B91E5 |
A66E87961DA8EAE7AA9EDFB074A379AC6914E620885BB6055BCEB7D821CFB255 |
FB9ECD217BB9208E82C460DB5492A06069F1F2B6FA3D979470D994B42E09FC52 |
2E3FA35C9C55C8F78CB48B033B465F7B75C373CFBFBCFA95353BB60FB6C645F1 |
B4E84981204C466E4F13CAED152C7AB42F7CE10B5FFBDAD79423954F202EFD8F |
7FFCE3BFFEF5AFB1D5D54057D34E56673311A9DCCE3A24AB290D5E38B3495603 |
CBE131BB193824C73CA4DCF68C60AF5CB9F2F2CB2F576E835E026B56689DA860 |
C5CBA88E896F94B58AE3B061C306D937941E1A2D3BA0D0E45AB26409740C1F99 |
980E93650EDC4E24D75E7BED15575CC14753570C0925D666F3147BAAD8C6BF1F |
FCE007FFF33FFF533904A820CCA9C9A243AC6C32599C4754FB82CA8AE3412CA1 |
5E4615C203CC10845A90CB991062578D855535E616942AA5ACC606D82BAC24E0 |
FA419490FB5EF3EB65141FB2D4583DABDA577751DD96670ACF69190E3AE8A03D |
F6D8E3F1C71F97349403EB2A0933B1161A172137B222A44404A93132A9F94D16 |
5894DCE40B530A0BE5BEFBEEC37BF625967BB4132093716C588E1387E79C73CE |
513C249CBE4B62E254CF3345E1C2EAB9AD197C8C332A15A561F1C925975C72E3 |
8D3762069860500E963FDF6BAFBD56AF5E6D0B1A53C8B3A82388DBE3ECC18CC2 |
0CF0B2DC27C6C17AEBD15CDCB78A4BB555B0435E7BED3585117622C177FE128C |
44A1E7E9327E495A0747BB8CBFC283C014A02D3279BD6084F930AFBD363441A9 |
0C7F74D15E7BEDB160E1BC8A65E5B333D9688E4113C0188026B0E22CF69503E0 |
02511374A42BA4785A260DB6B4BD71A869BB01A99D24512E6AFB6123C85543EB |
1978859CC9175B611E9E4784FFCC13456AFBB361D212DFB31DD1AC26F0F24150 |
317ED1588315FE00345E0957B38B82E7F04B855C6FA1004DD0D50A7A0707C65E |
5BBDE1B9DFBEFCFB3FBEB279132472DD6E1F6F679AC064DE8C9E8E92411EB6C9 |
9A469C74D249DFF9CE774C46FC2ED603A646C950B976ED5ACA5C1AEFB423F1C9 |
DE7BEFBD6AD52AF5B13159573B1D199A416C15E065AD31FD8CD4886A9E15033C |
EC38D4F4834D5655CAC00B2BA2E3B4712CC6CCF70A5549B899AC9E0EA71E6F24 |
FA30CE4F7EF29370A9E5079BCC03489CE6CF6A6B632676DA90FC611E91650DF8 |
02E43EE433550EB414034D14E376F2D9618780165AA9946EDCD67C60D1B4E2C9 |
A90CBC89D41934CCF15B97BA8F917DBA546E981BDFC105D97D8CAC5EF40A6956 |
E3CA5018D4C9E26F089C0E9F2A41224F11A31F34FF49B464B2A22DF79018A7C8 |
88A85386D8848AF1B236C8987178A058152E1805190D4F1AB038E1D89AACE965 |
F10B34041EA7ED3404961AB8F4D24BBFF295AF70BAD44D42B3C7FC30AB375848 |
413F83C360F5ACF2AE8460BAAD63A6B467277F88F7D0E2C49BB2189B9D37A63C |
99B4E555008C49BEFBEEBB19FD70432554DE22501268E7AAABAEBAFEFAEBB994 |
6CEB4ABD8B4923A93AFCEE534E39C5647414F8573C8E84D6607EF827B80E8490 |
FA19BD87EB200AA1D161F7295580317CE8431FFAC94F7EE2D2D54DA932356F2E |
9A3BC9D8B4986DA6149E4E0D70FCAA2DEFE84D642661CFD2CDE6590250AF0DDB |
7DD6ECD25E7BEEB674D92EBDBD3DC5D0C23FD3A860033A003A05823C8DFF8CA7 |
B249E0EA65A50C61D6764DB7A0DE6A1818A106CE40AB19474D9B454F4CCA0713 |
410D340BF9562E6FAB0D20078AC556908365431721800FE07B91895BC6B6B289 |
8D57B45DCEFC322C46A801780DA1C579157C2FE7B14B995D8DAE7CAEA790EB0B |
72152FD73B3ADC5AF3C6E6E79F5BFDC2F32FBFB1765DBAA68999DE97928E27F8 |
8D11517A00AE4BCD175B00992CA7E8D618F22CCBB4670C44071FDF241FB0F4BA |
7C5C93456F1866600296F128993834A8A3AC0B211956D4245158153566C07828 |
F42464446BE6D6277774D92229B299E4AC5026B353266ECD4112FCC614A3CC3E |
4611F09E5DCF4C66C78B24FCA1871E3AEAA8A3F821FE157F97FD3DAE4EFC09B3 |
B538FC37DC7003C7A7069678AA9B6FBEF9339FF98CEB296B2D094D21B293687A |
E1BD34CB6AE2284B8D66B244273EBCEDB6DBCE3EFB6C4566D40D58A5AADC1F24 |
9514D294D5E104AA8B44C88D06784E25213D06FDC98DB5E13BA4AC7075830ADF |
A866DC564414A9E229A4711A651D0E68EF5F70C105B091B9B1680BD36C84DA7F |
E59557F085BBEEBA6BC58A15AA7AE39CA88C9E3A1F8BC2E02071B41DD69FAB8F |
3B649CC9E2B00CBCBEFFFDEFFFD18F7EC491AB3CBDE395646D6055A940FF8936 |
DAA2458B307E6C0F2C93B49D1BE63259B54B38A9B52CE750E50E49C6B1AEF343 |
36826062C74DDAD712CD0A94D174D05ABB9906E250292E496ADD214D266B0217 |
4CA2D80B51DBD800A409F96FD902A81D4935C35ED9264BA84CD604F6396CEF31 |
0811B370D1CC7D96EFB970D15C18C4A55C9841835AD004C65AC78D34EC96D064 |
C633D238A51AD0FC98AC0D0B83B4AD600C9BB1D5F45A750BA7B2DBDB36248BC3 |
0467302A144DA1181673855C1EF3DC8426C88596772897F7E184F8B6434EDD40 |
032451BB15B4A10E4C3E088B90FE7013AC855408A11C6CBEC296AE1583B0920B |
BAFCB062435849A55E4B366F1CF9C31FDE7CFEF99757BFF6A60D1045EDFF9BF9 |
A7266085C4030F3CF0B9CF7D8E89567A355C1AC94D52E3F80ED3789235796DA7 |
4D80E9F4BB405555F999894D9C28AC4485C2800FE7569A009E3DDC591E795794 |
617BE0528A72C3C6C5596080E8DE7BEF85C084F0C543D118172AC9646D012975 |
E98BD00551A4B48383DA384117BC6E4F5FECDF4004B6CC32CC808A6F4CC61E4D |
18EBFFCFDA9740595695E7EE33DEB96ECDDDD573B72D2A82A228E6E5F98C2E43 |
125D0BD09088710271888022623B3109A8382193222046511CA288C664496284 |
0551630C41A501ED869EE7A1BAE65B773EE7BC6FEFEF9EBF77DD1AD0F7BCCBD5 |
1655F79E7BCEDEFFFEC7EFFF7E96B285E15FD9507839F3C26FC3CFDB433E1D8B |
2D4FA5745D829792855EBF7EFD29A79CC2CE40F61FC8F8173E21EBEC36A31EB7 |
997E3AB9FEF18D583BB88478337EC388C9269294228C98B5EBAEBBEEA28B2E12 |
A205A1588AAD7993F6C68BDC4822983FF02031D184FB14FF826DB42C4530FA21 |
9B2B13DC58C0CB2EBB0C1A5FAE6FCF53931CBA4C0EC2C6982983937227F8165C |
D3864B312726C55EB91463BA052D4157CDC04D199F984A66EB86C00996A81350 |
0A859B96E1A00C7CC6BF92C1B30719095A86F424975C72C9E73EF739C622F0C2 |
10B023F293F5B17B701CD3B603030311A716C033929C072690A37DE3B944B0B6 |
7B21E513C9AB26663E01ADDD073EF0812BAEB8224AE710FC419680B9573C0E49 |
AEE44C2E6109BA08610401B2B0E5861DD04918B8A56ACDDA91679DB06170A80F |
F792F525ADD1A6F1AB37AA32788BD0007696D0428B69B4D1445ABFB8156D09EA |
AA516F22AC75CC5C1AC74D0207B1B5D29640B3DD66C20C9479DD0BEA41D8083D |
D7701041EFB71013C491CE26359B71A2BB0BF030A1664AD2CF05FFDA4BFC38D0 |
1FCF8541C1F5739E5B705DF8A7B08290B7607232DAB6EDD8A3BFD9F6DB2D3B0F |
1F19334EE1A2751AB1F48ED597433F4C6A7EDC5FD2C6B0E268A7EC0597483DE6 |
1846193A8E8E356A58CA6F02FA10D205B68631F8938647C90EE13DD79897938E |
C02285145510CD0381AD3200808A940C199235E2F56D1499B8B962C9A8666D57 |
4C707D1B376E2492906A93D1B62488548A66E4D22134BFE9A69BC81C41C42631 |
96BC3EBD619C2F76427462027C2BC7BC30D096212DD4E6F841A644B1CF5B308B |
B46354B26CCE6682981CBF49CAC345148A100E4BA9840F7FF9E5977FE2139FE0 |
EA9F7CF2C94F3CF1846D75C83641200199859877834F0D7DC4690C76DD9C0916 |
5974C90B89D3C4F09311809376B17BE98809A24EB93ADC6C1B3AC9AE57F92E32 |
A112C3CE4845B02E225E446B5D70C1059FFDEC67555A46F6D369A0E4A2E94AD9 |
D3A43158C18DC1BE42995217B38D4B2D941DEA42B9882510BAC0134E38E12D6F |
790B34A394E8173B99B6C9E782308103858E0FB20B810E171D617698DB3D1FAC |
07D8306AFCF5E69B6FBEF0C20B996C11F414A2C08F7CE4232C1BC83DD8C8638A |
F57CC09293125ED2D590013BAE213027912FDD0E99C2B6842550F3B243FC5242 |
F77035FA8CF44C17BC8E9B8E586038CFA056EE767E4C602ABA89EBABBEDEFCEA |
D52BD6AC1E29F716F53862A7D3ECCAF3C9436BF497C7E62CB6EFD07DA6BB2309 |
340A365F4D5581326F36DBCD4614B38DCB6573B8E3074926EB65826C18E40C8A |
545B828CDFD0BDC7BE8783AEDB8BE3A693B4F5D4195DF0755CA703CB8993A666 |
B40E9CC46DFA6136972D6733253FC87BDA0CE07FDE6CCD6D4799EA6CB06FEFF4 |
E6CD7B7FBD79EBEE3D072B95AAAE612F6E090440280F82D3C1143C8F95948813 |
333E8F4743565584413C271B6F22F8348178099A4E59500291256EA22421A58C |
C189F01C10220C1052BC24AF0113DA7428F17B388837DC708314BDEC6AAD7854 |
78529C4AD28BE161F95762E5D9EAFB777FF777F7DF7FFFCE9D3BC5222AE31073 |
DC21C36B9BC75366953B293D5A3C6FCA8DB2468674903EFCAD38DD36BF8D5080 |
D9A576DA06BC478EBD3DF50CD7C569C7C3F381C5E2C90F5DEA1262FDCE77BE13 |
FEA3DC2207ADF199A174848AC749D99760C7F04E29ABD20C30834F20B0B258F8 |
E5E0B9D650D92EF799995CAE1DD6EBED6F7FFB1D77DC21385A5A3E29C7732E12 |
7D6136E23231C2A04FFAA1EC3A1835E38E1D3BB8CD5434D8B9ABAFBE9A9C2464 |
3AA42925E51C3C713C4E971B2B439D9EB6626C6B34F6A6C195A0669436C5252C |
81846BF83A7E96E38E11B5D00D17862229B7081938318E220C7803CEB3905E71 |
EA03110A6CFE90B60952F8B22A83B3813FBDE0052F78F8E187052B652740541A |
D54A0F8E321ED3F6EDDB6D2CC0EFD3D1B3D8CBF621E2B9A323167B3FA585070F |
1ED9EDB7DF8EA513F850377648998A6521583132B472E5F28181623E9FD31582 |
56D31CE90E2E8029C17A1D07B303EEA025A019E88A09647DB45B1D6B6866D4D4 |
212FFE433991A6207555A2A1474910FA591F5F970DE0DA671AB004D9B0AD9D7D |
DF659DC04CBE6C9BF41556D2F53AA3B6230409896AE10ACA6D04995C3E57CEE7 |
FAC3B0E8EB2A021C44B719C3E1CBD5EBD923879B9B1FDBFBCBFFF9DDD6AD3BC7 |
2626F53D2CB26EB6BD97076171919E2F9E972069D97DEA2F01A4F2C5543ED315 |
36C440728974496D6D283F130E23ADFE4C0A097E9AEFB42B0AF8F7F39FFF3C87 |
0952312E5BB68CB01FEA5CAA2099EB47E83CC55BDC057C35DC4D565E29FC3814 |
CCE9E35F0E18C79DB36C6667BCED09833460C2CBA40C5F9CA86E19AE40D165D8 |
CD476385594258C73E30923311466C01A5B2D84D4B2BF197904CB01EC2B2B34A |
1B2CC555C71A41BB7DF8C31F962B53EDCA3630141223449F4E52318497304091 |
F2001B11850D5B0A3264E313F3A8E6521EDAA68BD68B4A99593FE9ED92AC85A4 |
0B5AD6786B5B32249815BA53EE0731B82A2DC08AE36373E08837212E86B4B97A |
E98C30460CA270F99B642154A26B71648AC2EA82BB08229315F5054F26352FCF |
808CDC226689412B670608885BCA6E425B221E804CA0642C6C4F5EC51B200F08 |
9C996965655820C84C3421B2BEF2CA2BE3749E5A9276D54AAE4F10E5AC519D73 |
CE390F3DF450C5F4ECE2CD924514E6802534FE7C1429130E322FF369F1E05C0D |
65C564F443E39447BAFB83E60BCB7D85F5EB568DAC182C68DDEE8519BF55256F |
44279268343A310116C0B6043403522EB60BDD9D2FD23D0489196AA9DB84F17C |
810F15E0343DDDB50C9383731C3859C407610631412D1BE0913547A99E67A92D |
41CBB09FC62A86EFE2996414EC48DC6A636D5B2E6C49D0CA668AF9426FB13010 |
664A815F307D6C7E12F62651B6D92E8D1E693FF6C4815FFCF2F1C79F78F2E8E8 |
D8ECCCC2F2E658EC7ECA8A0221218C98559A8AA1222347290B5D8CC3B8147833 |
9595DD4D263062E24D6C1A3B994D4228E36B5EF39A6F7FFBDB36309452278108 |
6580B022461B3CCE8135EC56A5118674FC080D17BF9D5A9B0F0B1DADE7C318B7 |
1D76E8BDEF7DEFA73FFD696681A43D88CA96A12D1B9E2343A8CEAD275042D2FD |
7222E67789CA49918C37D7078BCCA3A4975D59BDF54C3ED272723F6C14844DC3 |
4D75469E132EA54A7C0D607625E6EA1CA1726F210CB2A3A3632618A9C0ED40B0 |
0A01807131D7E940E9376DBAF4D65B6F850F53EE19603543C021E2C64AF33455 |
B35869C26C212E38F978277E4F3E89389DAE257AC42E1F091F3A3D08BC07D747 |
4003F5A4D2EABF5AFC45B1A394D0E6D1DECE6F3B126787897E7C0462F7BDEF7D |
4F6AB6881810FA09F244B6838B2F94E28C587959BBA590612C1C877DFBF6490D |
462A51BC49D694782A9646558A64F041988510F7819655BAF0EDDA127E83D04D |
BAE1443A6DF963A95399C67719E4494B43C2740A7157B3E8121A5C8E3AF10567 |
9F7D3616967964D96E2C02876832BB4A40883D05133683251F5274D921119D06 |
3E32AB88D1E2C34FD442457B669FB9F5CC2677BC813CC74F262F38E579EBD6AF |
761248BBC94EB4EB6494A3D83041449785368FD180D48A0D67B52BBD66A25B79 |
0035E49F9E9093A40943B6883B86AC54699E09C73415E6DA5872CD4BEA353D07 |
6A2E72BD362EEAFA0D3DF046239AF4A803C76DBB0A6141D309542E9B2F95FA0A |
F9DE4C580A839C2E1D7B7ED32F8799BECA8C3731A61EFFEDFE5FFCD7E35BB7EE |
DEB37BFFC4C414FD2196039555C9641049FA13E68125E5C0137AE9A59732B9AA |
D4F161D1F820D306CA10EB4A92A0AB2423967EBE20516CB0E9D0331000B6A4D0 |
E5B50B4ECA9A5B275CD0CC0A10AF48A122D42736633565CA8D4A5D2BBE07EF7F |
FFFBDF8F78916E8A8CFC628599C64C467E89C3DE0548C3FBDFF6B6B77DE196CF |
D71BF54C9869B6CD4CB0A9C9AC71D05B8D2641502C2832E12F279783C884D0D3 |
76073BEE2DBD2D1600844C4650AB3CD5D2D806F3456EB5B925B20E3F8F1E8F6D |
8C3C65B750CC8C8F4D711772391DBE958ABAE2DA68D65263A53315279CB011DA |
1007812BCB80E86B5FFBDA45175D44148DD8F94F7DEA531FFBD8C748652C94A8 |
F60633A12F562A9DE5749C37DB160EDA09FA1478CFDAB56B77ECD8C1748DA0CA |
9638F3C2A4C6AC1F152841D0F83A6222550AFD96AD7DF6B39FFDD4534FD95E6D |
94B2AB4B1F13ED1CBE05760E2BC38895781851F1C490D15B4F0C0114EE9CF338 |
F15736DC917A334A07F6E297F85E865C4B58023900A2D6E99109A589938E0352 |
2647C4EDE6A251701D83CE260E84286C223A78E577BFFBDD5FF8C217549A36A4 |
86E551216D6792CEFC5A4CF38A93CE4723BC64C3860D308742EC2A9DC937DE78 |
E3A64D9B64309134FD6323109BC330FFF0873FA4B7C59846A671DC7DF7DDAF7B |
DDEBA4C12759888AB2CB0674D5692EB8E0829B6FBE993D25320EC1E0898F420B |
C31F822558BB6E15DCF0422187C76D35EB768F0E110DB6C9F7521E6C5E3FF08E |
5355DBDF1EE97A2F4992DBB40447A3F5580000B35E494441544E872D872060C7 |
F51459E435B7B493784E5D7BFA1E96BDEDBB91877F1185F84AF79DE92C5256BB |
E39EA6A3504ECB55ED201F6432F942BE94CF95C3A0684621684B1005E520ECAD |
CC385393EE962D87FEF3BF7EBB65CBAE9D3BF74C4F5519D0C7860D0DA24213EE |
A42D90CC6B8BFF07B9A5609366074BC709C64C16416C988A815A645ADB9E2D68 |
6F876453E58BC4174CD2BE7A3F1D354A1BACCCCCD40F7DE843322BCD766BC43B |
91B32FB968126A0922D6B60471CA4E61270348F78943C4AD813DA32F0FE9252C |
5BAAAD7CF0134F3CF1C9279FE46C98499C1A4F9F9A20A31505FE6D91415D1DCF |
EB8870DA757846BACCF3B31594553D47A59067F19D451931005156368D669376 |
4606FED137E42EDAF53101AEE88EF75811CC97CDE6EDC1584667555368303CFD |
A8EB1984DAACAB8C89B791FA952A98F9258805D68B0680918DE808C92C519972 |
5FE58224C476E7B2CA48B66A314D44DBC90B46E918ACF98A5552E776AAD14907 |
7093591AC2A44CEF98EDBC70B4D079E79DF7E52F7F599AE9643C0B29EA181ED9 |
200A68BD6BAEB9861992AEECA10D48785A0C8CB2189FD261EE1DD81C0414FF9E |
7CF2C9B8259C4FA153655CA24C74CC0880E68AED2D74695D43494B59E20C1F0A |
D575D75D77D55557F168498D7A09CC8FC47CACE949ECCF9734AF91608ACDD578 |
7CDC1EDE4CDE43019E33DC26684A3851E807409C885FFA7DEA040B5A02829B71 |
B5AE9E41BD9501CE7CF179273F67CDDA9550C1D92CFC30D56E3518104B1B1D35 |
979C2C3537F56706D37B52347652FA1DF3F1384DA19BCF2AE9CB637C90181BA0 |
1C87409A8A2E0FB8B1EFB57CAF1D0671A8694AB1929D4C6C3E8B58040E0D0C36 |
3E1865F319FDEB4C5147037ED673B37ADAA5172499DE30284D4F3B33156FFBF6 |
F1FFFEE56F1F7F62C753DB768D1E9D161486F8671463699113F61EBB9A2873A8 |
84E6805959F624310F6ECB4997EF6F4FDC93CE4A71C2E4AF76CE44A5306BB914 |
FE93B380A4818B66833564965729FCF6EC04C929D112501FD253E4C0481E045C |
9C89EEAE315CBC252E083D1BB82C0F3EF820A96703630612950C9B65E9E92DE3 |
064E3FFDF42FDD7E874AB1F592B296216572A69852233EE8CC33CFBCEFBEFB1C |
D1EFA20278B40417C873C2F60D6651789E6D4A6ED31694E597D901BD5DEBE716 |
8E8C68BCA076995BBA7453999D366B5A4F3339F05F1473FDB8388486F84E2765 |
0A23F72F9E995CF6541C1B376E7CE94B5FFAAD6F7D8B6D59CC24C295965643BB |
38A12C6A5F61A1606582CB27035E88F391E458D74B92FE5C34447C9FFFFCE7D9 |
E44C8A6067EE905295BAD804748AADB213D0223A2A9DEA871BC3C3123620A052 |
6E818CE14D7D3D6D99F0D4B87922671087DE7AEBAD1CF3C93A0AEF8A7EFA1215 |
5451AFF0BC7029CA3D6DBF8423F82BD707B7C75A3DD78AF00C09E1655C0F91B8 |
175F7CF12DB7DC2234FA1409F68E4A4D4830154B337625698F82F04E331262EB |
0D61C494100AE1A5975E7AC30D3790208C474ED65C1893187A12F5815FE2227C |
6A1E5DF6AC2D3169442D941D621D855A0F426B7153EB6FEF29179E75C286D5AB |
576643F8D366F79D58804392FD576929585E727D4F755C0DC144F0952822ACA4 |
A4D429413BC62D36D7341771E81DC3D4D4942E0F345DA7E5798D0C2C8106983A |
F9629CCB8638DD7904BA2116D9093449913220564D3DE43AA1A3E0DAFB9E1E59 |
E3BAB95ECF2BCE54925A35DCBD77FA7F1EDEBAF9B19D5BB66E73923C49CE99CB |
851BB175EB5662C7B16B575E7925DC17A9FAC027F8E4273FC94964F678734826 |
BD04724C51C15147CDF718BAF242AE353C55CD850BB2CB1717A42842814274B1 |
FB140C314BA24364083681F96F7DEB5BBFF18D6F08390A39DC24445396672C46 |
1A17B9F0C20BBFF4A52F099191328DABB8080B6C745F9C94A381977AEE739F8B |
98804D6DB006B9AC1E91F6E2979CF6AB5FFDEAE8A80E26D66FD8B06BC74E2F1D |
7B25F76977710B5F99D45C4F3BEDB4871F7ED8A15AE70D319C6791846FB2692F |
6DF67C65A1BB924E4F20A28F5887A1FAE1DDC4781B9DC44BBD636C8B85623B6A |
76581C3CC32DDA6C9850A0552CE6ED718C7CBF208E38550D36C02EFDE307686D |
7C56FC47D21E70595FF5AA57FDF297BFA48A1195EDA553A7EDF21A0325EA2FE6 |
E2591762E560B1A624276DEA6315A86B38220D92508389D36A6351680CF003E1 |
F62297BC19BE4DF04276A6AB8B45846A971D004215D74E87510B0E58A59959E1 |
6F584C97E124B886128AEB7CEAA9A7C26B60F9842B26983FDD5D9AE2DE84EF8F |
0C2DF307E9603139794619470F220EE3C113CE54809C3D5B0C968EC984204F99 |
24156EF8852F7CE1CF7FFEF32EB817C26A585365EA13FC93ED7041B91027EAA4 |
1C7C8217600E5712C44F0B409A6F0970BC219FF6BC2661B58203D4532EAE5DB3 |
72D5AAE5A5829EF288D3AA878C59C056D1EC940761A2969581E1A0B7EBCE7DC5 |
493BCD8748C93AB2D244B17C0591FE71A29B8A634D3251F71CC4AFED6C06ABE7 |
168A3A58299672AC6967435F87C19AA22834DFE3ABC48F237DE45D47578FBC6C |
8FEFE12CC78D56FEE081D9471ED9FED8E69DBFDDB23D8A8E13EBCBD05946D292 |
1D65AB849C23EC8B08A1B2EAC6E2A93CEF79CFDBBC79B3ED3FCD7F49564DCEBB |
A477842A8D3E87E0AD711B575F7DF5A64D9B4493524E24A9259CC114665A08B6 |
74910B594454A0BDB624BBE96061A62588C7112F2A4E59C8D83948D9A3833E07 |
45AD9D06EC729C219A26A76D8363AAF65248A70CCB638A4CD2A7977C5A873BD9 |
6EEFA68C0A0E84EF13C00F9D11192D49F5442757B899083DC63AC766773CC78B |
922835037A02E56C55A7DD9FFFBCE76F7ECC30E0170A95591880383D279D2F95 |
79BF90067C29ADA29B9268124181F71369830D60863A49B944F027381DBFFBDD |
EFA46B4C14873DE156596D4A2C110B5D225E9CF9BE589E5A62026EF6F9E79FFF |
831FFC80F4CB542BF69BA53EE9A6DC0C4C9E7018D349279DF4F8E38FF36CD8A5 |
21665D1800C101A7A7AC2CD6111A6C69B3949D9680D4EE91C1419A302F65018D |
167C2EE975641B2707E6D04E53B8B1F8648DA58346D03D7E60FC6ED3D2C91966 |
FE144FC756352F7DDD71C71DEF79CF7B684BB82CD0DAF00179DB74CF17BC4F5A |
7D95F21B46E97411CEC196C383EDC03D33DC46D08638497803791A71F38C6BE5 |
60734359FD639B31D94778CEFFD0EC90006A850A454C918EDF07CB23CB874646 |
86CAA562ADAEA352ED711BCD653B925E4A8E1DCF9DA2AACD43EBF8AC5D7EA954 |
8FCD7D2496CFA38D81E31EBFE1B92FF8714DCD579ACC7A2EBCA25626EB660227 |
9757B96C502886B97C9009E1B0FB3903CAF0828CBE7AEC688412CEBD191EA3EF |
23C8BB3EB606417CEED0E1DA6F7EB3EB89C7F7FE6EEBAEA929CD29808D800C7C |
F9CB5FBEECB2CB18D63344FED33FFDD35FFCE217A2E9D6AC5903C9E772D1425C |
71C515975F7EB954112081108F8B2EBA08B1386711DAD8745BED4AE7A3637188 |
DA6E964ADD052942B0D8C65E6E368E71EE109978E8195317B12F87B132841F6E |
3E4C084FAE10A54863BC08899D89622E88FE34CDC077BFFBDD73CE390717176A |
74D11E8C803B8046A733A32256A6221B98A21AE2956CA76D4BD2E9946421D3A4 |
02A1F623EA8748AAE34D7D2A05CC24E97C2BA19A8132C283895B4A211690C947 |
3FFAD14F7CE2131081B6CE76E8D9A75A3EF40711BA762A42CDA85E2E95A76626 |
870707F1A673CF3DF7861B3FA38C6F58999DD15CE84E9C7A408A97B5C370CEB4 |
227BAD9D438426C226D19767F842EB67B3C0D36DF4CC846465F1E64BFFA7B29A |
81B1DF64CB8042812D79F0C107BB467BCA8B09254A157C6D52FAE1365EF9CA57 |
22F885E2A059665E2B499B5F6877A9E024F0820CB17382DBC37282003D4576B9 |
ECB46ACF7FFEF31F7DF45156A5781106AAE49CB23164025E26EF05DE80DFC3EF |
5EA262AC16E25913574052AB76EAEFB6DB6EC34115662EBA05AC0CD9B84C566B |
E8202BE38C304DCC6A076D0F2B1C02BA5D2226502990890E8E38DD320B411A38 |
080AE2AD3230120788FA5DD81511E6BFE94D6F829EBAF9E69BB91A62024505FF |
4196808380CE3BEFBCBBEEBA8BADE6AA939684C8B557AE1C191CE8EDEB2F15F3 |
994A653A930D3CA7836A537307A6DBBDCACA468E261D9F572C41FA436A2D5C7E |
247509DDE33B9BC476A383AB8989E25AAC665DB79E0963C4047EA0B21988AB5F |
2804300C61E0906F391B64F5DF123C42A2E14EA6A8817366CAD9593FCC631FDA |
EDFCD1238DDF6CDEBBE577079EDCB227F1427A2174EDA98604ED2D50E0AE6A8A |
A8331951479491A40AC883C020D8464FC9156C7FDCCED5C8A9274801270E4AE9 |
DE7BEF650A0B911C84C446BA43B993F1857EBACC0C20393F897E39325DA56CC4 |
54B8D2F048F74898110498207745BC29D687C5369B4645CEA0C0D061B81B4D53 |
C46529346A43CDC19B3972E8B0C494D060703155EA2DD189171010816D1C55A9 |
0586494C2EB77C136152724EDEF18E773011C6E347148A4A9BD93AFD1A01E289 |
4E4CA02D96A1AD34EA43995BC91C9B38DA633000A36347FBCA7DD333BA628E07 |
C830E608DC148CD514A789D1092D108CEDB5D75E2B34794ECAF9DEB546724858 |
2E1667C1A69A12974ABA55290A42AC6F773938BF474FE9F1EE0C73F2A5B140C6 |
B4726FB81F52AB50694D9F193D193D48F1954E6038D1A4B4248E8D469EDCDACE |
DC49DF52B6116E223E17997BF12F7C96DB6FBF9D27CA0E23E66B34080D9D14DA |
519AD82EFAD5673EF3994CB990D2044E9C14A6BAB05278CF2DB7DCF2C10F7E50 |
66A00A3904735FF474F0713924B265CED375C089DC53D1F374D1A51226223E0E |
2EC8DEBA24E52C62715840C9B80D6AA2AE521B150D0305BBAEB8843DE81245BB |
B1282D156A65BD61C3BADE7211EE7636F4A6A7270BC51C343B71A2F2A5B625E8 |
360388F4DDE383CC2C33A03B063ABACF9139CCF11C4B90885A343FE0CC26ADC4 |
813855E186657476C80942D777A34CD6CBE5DD0CBCC64065025882820EA7F48C |
62276A6B4B00C985F3672293C0F3A19AF2355882585B82C71FDBBF65CBA1A79E |
DA3F31A38F216B4BDC0EE9F32295BF3068F2800B508DE6939C66CC0110EFCFF5 |
E99A91DE65099CB96C6002EE1002121B5F7FDD75D7C103900CAD6466F8036E86 |
3C42FC0D76D00ED3554A0A445F8748D9209D174B4BA0E651A30BA091274EF8E9 |
F0FB33CE38E39E7BEE11678B4A86812F19497B7B0C08B032E3998B144A5A63E3 |
79C220643B14DE7FFEF9E77FF5AB5FC5AAC2633E74E810018DB675E1B377540D |
EF49F06DCC48F0105E73CD35F0F785569E428CC763C10D0B77D75D5F8727C522 |
F5C478053E82966FFD80595F4FD4CEC22ACC56EAFD03E5B1F123F97C3636BD41 |
3A300FB38D66757878706C7CB4D96E14F2F0F7E1FFC2CEB54AA51CBEE5F0E1A3 |
6675F22C13C5915ABB4EB70B985D775970EE4C92899935634AD4B6F952B6A68E |
5E785AC5D3BE9C941185A51BEE87F4317AD6A0151955CF7D75CD180095D2342D |
882C52696C211E37ED1F1F4174AE6371922CD6E5C0988907093FBCFBDDEFBEE9 |
A69BE8D4B0930BF706F1FAA77FFA27AA636578847832550A53639595FCA33CA8 |
5449CAB8392C45BCFDED6F4700CBE145D2EA45BD4CCD15A563F3B820713A678D |
8F493B217E992404E496A8CAA90E106B420809F116F4A4CDD5E5CE655990A5E0 |
E197BE0A5A174693F2A4AC030B55A26D6BF1FE4B2FBD14C24F5B1EA7432F0413 |
625723ED0CACE473841519DFCE33254631C55F68D53030D8B76EEDAAFEFEDE48 |
034775763413CE51E8E2B3BBA9F4267359316C03301744A401A31D7EBA344744 |
4FABCB9674CC55E4BBBABBB8ADDC9AA3B3439AA52E08BD72D6B055C32404DABA |
98DC35ABDBBA449C444EBDDA68D5E163C51DCEA24CB9DD4A9A51586F044747EB |
5B9E3CF0C46F77ED3F70786AA23D32320219E0328AFEB5B576D77ADA591406C4 |
D2BED7A5F1C533A00FC70118769B5817DFB0B8DBBC139C539A67FA01927510C6 |
37519DB42BD29463F7D3481955A0E46C0491628F3C5A578E48E21EB200B1C158 |
2A1952E364E25A10A26F7CD35B7EFCE31F1F1B1DCD983AA5261431036B0F1F3E |
D0DBD7872F9A9E9A5A6E167CD63C0B5425EF4172DAF4515EF8C2176EDEBC599F |
6265F5B8D200B080297821B6B6325FC1A00C0B847B0DC32C3D68D25E7B6E36D1 |
DC150811359F49262CF99EC612C451902F64C6C78F96FBF2A63615CFCED6B432 |
CABA533353898A7A7B4AB5DA6CA355CB66E0A8362163C562A761249BC9F3D035 |
753254192E5C72C8A43656B7B0478EEA48BFF838661DD3FCFEFF9F25604919CF |
8E55660E074FCDFDC0975E70C105F7DD77DFD6AD5BC90DF7FAD7BFFEC1071F24 |
5184BE5B93C197A55FECFAD2049BA4A38538A943B836878787C965B8C475AEBC |
F2CA4F7FFAD392D063065F52F614A9E73CE7394F3EF924EF4D40B4AC5FB1AB85 |
B307F003769CD835C10B50ABD25790A2AE4A8146122CDBA31DF812788F045B76 |
A6C54B874CF1CD8CA8E274F6008FB132232711E74A1B39C3733537DE97562CF9 |
6AD6BD701D1249AA34472F2CA7D83522469274921FFB2D9822206A4559C805FC |
E6C081035DDF22C030820E98F8E682DBB90E1234B1FE615C5AF3BC03E5F5EB56 |
0F0EF6BB2AC69D4204F43C82B933783B121B0B247481C8C03609E9C7995632BF |
718591C2940AE67EA49377F632A68D39821970BD162C41984960098A414BD782 |
430707138626B5C77080E0F07A710B5169336AB5034FBF077F683B99662B6EB6 |
825A233876ACF1E4B6435BB7EE3E78786C72B22971F929A79CF2E8A38FF2C888 |
66174B208F4C175ECABC0CA9ED35E95A1079619D61EFE1388AA3433964A25C92 |
EFD2786C4FAAF9F8C73F7EC51557400CF07E1C3AFA558C4E24D3CB43CA16078A |
197E49CA68FCCB0886D00349008891233ECDB120857CB1BEC59FD7AC59F3CE77 |
BE13B7C18BE34E28451236696474A94CD073D46E3B06E6A77BD16BB5DEFEF2E4 |
C4440E8E0BC208D824984033A56A6CF4185596DC95201B29990EB787C953195D |
4BE702A1D0B7BFFD6DFC8CFB90CE69C61766355DB60D6742C389DA8A74433BB4 |
4A58CC667A340F498267869F1F22209DA98CF5F517A76726203CCA2494B23956 |
266B33D58981BEFE8989B14D1FB8F4FBDFFFDEF61DDB104FE0F9023F80AEC00F |
AED2AAF0F0D183B96C8E698D66838AC338594EDB3E005255FB235A02EE251BB5 |
EC205DC829A90DF106ACDE6B5EF39A471E7964D7AE5DCAF2E597C0C50B140722 |
423E3BFCF0D297BEF4473FFA91E0F159FFE128B7C52C016B5932DF03624D6257 |
BB515CDC226965A4CB8FEB0B65933296FEAD6F7D2BB69E5A0F6F664158596DEB |
947EB6E4484F032359CE0650A683815C6C04A40917AE6B4D8295321567D8119D |
CC53210D2E7827429C2F7EF18BD4B344B8B19C28BA40F62549B902C59DC4B93A |
EBACB3FEEDDFFE6DDBB66DB425CF7AD6B3B66FDF0ED3FE8637BC81AC612A6539 |
9684215B5E893A65228BF4B41225D882345FA8649C11CB892B56AC208BA44A47 |
52531FF5F5976009101C877A3A4DA4C9DDBC0E4DA6ADF1554A9A62EBBE2E83D1 |
F5B3E7A8B492CC21022AD5FB919801311E1466CF77433DDDBEEDFAADC04FC28C |
0E02727EC37C36C1C94DFB930353CD2B40A0DAADA8DDD417CC84705A7D981C04 |
B4B55AAB5673666BEED87873D7CED16DDBF71D3E32516D754867B1FEA79F7EFA |
030F3CC08C102B3A52F511ECAC50BC6CDCB8110A171A50BCE3052D013B48283F |
CA627921FA8B7B218011270505301A60142EFE2E5BD858C122D2FFB6DB6E83CF |
277BCA84FBC5175FFC95AF7C05F7230822F68E28430F878BC8E3085AAF4B6C98 |
06E4D9612A12774B3C854DF1A2E68EA9E147FA074C5B35A4DD94DFB47E6FB54A |
BAD747276CB2B91C278268BFEDD0A142B158ADCC0AA0D12E633035D7B1C47C6C |
295FE0C8BDFFFDEF97F930BC690E1097D0C1207606EAB56605EE8F0721C8D4EA |
0DCF093361219B29877E29897DCD8DDE44CC58822508424DC2BE77DF8E998A8E |
C7755D3EA30E1D3AD0532E85A17FE0F01E84A6307ED395C9DE72AF7EFE66647C |
6ADFB01BB513950C1A6E263C6E2E9BD795F45A338A75522C4E5A569620EAF038 |
EAE1C36914F9FF6709981610D60495F2F5934287C6805BCEB4202B84A232DAE9 |
30EE252C01B699A034C82E6CDE39E79CF38D6F7C838D63CC81AC5AB50A8A9877 |
BE34BE5EA5ACDDA44D6507A3CDFBCF9FC5C97ACB5BDE0269A6B2239A0D6F637B |
AD440CCA6A3827B296E22EDEDC35D75CF3D9CF7E96368CE86C5E5C52315DB72A |
07C34D478A33B7C6243EF3BF2AF59248D2C0D413EEFF431FFA10E493A50E490A |
759D2E5922A1FD59BB762D6CB36C1C5B25E052B10F08928FE725AD3C597DB002 |
5879E9E6A3FD8072C1B940EC351FCAC9C7910800FBC55975FFF55FFF25EC5BFC |
46FC89988BFDFBF7E2B3BD7D3D6BD7AC5CB66C281BEA661A980058021B2D2A3E |
BBA8123597365554A1AD16B58DD7EAD5215662AE31383EB5C9EE47F37C2C178B |
01317CB040FF4F3352E4BC96C67398A633C613048F7A4E99164B257A13335978 |
81FA80B45B6A6AAA323959AFD6BCE9A968DFFEF16DDBF61D3C34566977B2372C |
C610D7C0F97442DF6D57D19891C35ABDF9CD6FFE977FF917A233EDD6C86ECB67 |
B43CDBFB2103380277DF7D373E7BC20927406B75813B59489359F012C58A0F81 |
AB913142A255FC274134E21620E0D8BB772F69F2D80C8CAB216A849301C30F25 |
204EA4EDA412E9C42AAC247FA4A75D9C744A35DE431FDD2E8B4A6B2D635069AB |
82B8C261E2E0100ABC3261849332EA4BC3801DA9409EFFF11FFFF177BFFB9D23 |
27075F396B5E92F0921125D75D771D3E805D213A8AFC2DB95C015B1E069AC269 |
A6329BCB147593A19BF5BDBCE7E6559C8131C0E2077E318E5BC552F8EC13D7EF |
D9BB7DFFFEDDAC0D1E3D7600FABDB7DCA39CA85C2EEDDDB773DDBAB5DB776E0F |
0C8A0096BBD16A687A22DDC7A805A2AFBF8C1D456897D1A63767120E6C05EA04 |
6E1AD2A6352F629F66946832C53F8A25A04FC7540FB3CF8C2B2101D0CE8CD738 |
0E09126007014264681BD4F92FE16CA07DA5CF4BDB23137B2EB9E492DB6FBF5D |
E6532F781D9911CF6608112FEEA01C3666BAD9492B58029B6451644E7A20393E |
01C2D4D55BFF8C673C63F7EEDDD08F4276C82FC5373280B071994CC753DD2F68 |
09A274E4D3FAF5EB39CC80D15262689D18953A293B3CCB30D27C6BBBC9DC2637 |
ED40E6E9555686076A8821851C72E996E7321203463E54CAAA0CDE113A96F996 |
C04D792F9861E3AC3A76C9210441B00F2BC225E5505893BD71CABDA535AB578C |
8C2CCB65020E30F7DC9867B59D8E62EF60E19DE38EB09DD8491679F9CA495173 |
54F89D5664C79D131374FEA6B3BA58072F13BA70DA3C3F817F6F2C8197D3F922 |
486F5B23C313F9ACEFAA42C7AE782E2784E3BEB47BDB888F8D4F8F8FC10DF7AB |
35E7F0C129588203FB8F4EB53AD46C946D049D3FFCE10F5FFDEA57DF73CF3DF4 |
D6D9B5675B02FEFB177FF1173FFBD9CF88FDEB6A69B22D813DCC43F69DD3A248 |
E3C8D5A0A4C939955E62493CB2DE20CCF3B6C0F326ED51DB7CA76C93C4DF5FFA |
D297B0E32290768E6BFEC9C5055FFCE217C36920E39EB41174F934D406420D29 |
C9253A6775F3A2BAFFEA57BF8A6017DFCB48543032AED55F263503793A4750B4 |
CC4691218F69221C06386537DF7CF3FBDEF73EE19359BE7C98E5DC42BE3CAB77 |
C5CF657471BFA7D4E738814AE0D2E0DFC0F77286972A13477E657672B63AB976 |
DDC8F40C8CF3184B7989D2CE72B1943F7AF47033AE9DF49C139FD8F298BE896C |
303E39EE39BAA0A787FBB5DB555D4C767DC7E73984BA33E6B763DF7C4F4FD163 |
078D26538F9AAD56B31DB71D95FACE7F8CEC109318CCB2498587F3A049364250 |
0D8B93ACA672C2061D90A5313052A7C29A639D65102BBD06FC067ECDD6AD5B05 |
63BED87548CB2CCCAC443E283317B3AB8F41D29D321C941E1085091A1C7FE2D8 |
2FFA2F22E8526EC5CF679D75D6CF7FFE73BC4D06531317888B40B8F19E57BCE2 |
15DFFBDEF7E87FD9F44D0B6687D8AB8C379F77DE79DFFFFEF7890EE46C716570 |
4ADBB66D53C6E5BFEFBEFBFEFCCFFF9C87B60B62AF52E4E571F936FD92BC6D46 |
369235A2B72550575C90990126C4A0C7117F307E272D1D3E7BE18517DE74D34D |
4B6787B850F6200A359764DF56673DE5FCAA95CB57AC585ECC67F1347062E0C1 |
8825E0A1EDE4739339D1805D52560BCD3176DA9A5D2EED3873ECC8A0CB12F03F |
4D2EC8D79620703D33CDD8704BF8A1D73627A86D865F461D33E0BAA197519EE1 |
2F7295AF172913694BD09E9E6C4C4E56A626EAD0C3F59A73E4D0F4F6EDFB0F1D |
3C5A5309799B991C235980B266BDA9B9D921DE189D1546518981C92F961DB239 |
B258E995BE3031150C8BE3747894B4AA60471088FFE0073FB0296768D4C90125 |
CB4E5F1BBB498F907BC4B17DE4199B1FB5D8516362DA92210374E705EF0E7DFB |
DAD7BEF61BDFF806EE1CAE0364927106542EFE046D202008A1C03189788D8D9C |
98E0BC3F1F8B0FAFB9566B04BEE93F68D40BF902A91EB5B9728E0F6512D34B28 |
0721249A478C2B72D24927E14860AB20A65D212DBF9EAD16CD66DD18D8A05E6B |
E77245575789A0ADF0459950779FE754E2476D8D20CA668A70DE8DE26EED3DBC |
33A77B1FDA6126D080355D7B728E4D1D2BE74B85225CCEC2966DBF2B647378C3 |
A5EF7F0F5664CFBE3DD018B90C23A93A2156B96C81792E5CD39847BDF7819FA5 |
6FA47493335643AF723B6EFDB12C81C010A5178C0CB40C14A4D9BDE358A5C94D |
957278D0855C02172F7745EA121C0F3C29A9A6A42986BA521AE896B058B8C89B |
DEF426C8B4060F98B48CDDFC2153F7921482E9A6CDCFAF7FFDEBE19D112E4D9F |
9A23E7E8470B2893E002A93F6FD9B2C531D43A3C60F81482533844AC2449ED81 |
7A50F2E38B558C49988AC3004786B935F6FBE0FD36250B7BD36452BC8DC790A5 |
389EF448BBCAA55B5BA2759A67A9D8DB8BC95667926D488421F1DF82156329C2 |
0B60897FC551C22F196A33919892013435B14A3E58BE6C10DE556F4F5163E7A2 |
9658023BCBAC039D780EEF905D1BB35FC7A1386D1398061D6D2FDE7F8A23EAAE |
186B2A094F4F3636F560DDEA0CCDA9C142BA0E87C3A52D01692A5827C8F89EF2 |
133385B30DBBE17B59E57A515B4D4E366B55FC2F6AD4DD89C9E6BE3DA3BB771D |
3C363A5137B6D326C0A7A2A751B49F2549078AC1549F7CF2C9FFF11FFF41F160 |
F692867CC18A318BB48C80D99DA02CC0828D5813775BE607887B642772056083 |
3B61DE5FA5E4894ECA23429FC0460788F294428E7D939221E0E3BB8682947D06 |
89613FB5B94F704BB7DC72CBA5975E4ACA0052D37798349DC4A8C1CECE722571 |
E5FEBEC16363C7386CBA325B11746562D5E4F9110A9810FE3B42798A18961390 |
3962D72670762DF26B65547EA3D1D22357836CD4761AADE6739F7DF26FB73E55 |
CA957B7A7A3D37D36C449073CD68EB8787270EAF59B672F4D8A176D4A1323515 |
670DEA9A6D55727E065E3C0C5AB531B36AC50A0DC2CDB439276B627C6A667606 |
01072DE7C0C0208F6526D47E2E5431F3182A2178160F8AF3D3D426BC59FB235A |
025B87DA04D1E49E13A27319B3275373F97B660F65B4DEFC176D8C9446991D92 |
11609486EBAFBF1E2E2A645106C7CF7F51FA654885B07B2ED69C22AF2E380D4B |
67329715BFE7FC00C932A974BC8F747B4856574EB52085A46FBE2BEA97B32128 |
529B8F9A6FB639BA11287CF39BDF94EE42F6FDCB86DABEB08C0C72D3D66B463C |
3069422D875FFEE55FFEE58F7FFC637AEE02E9E120401C6958D33BEFBC93C315 |
C48B978C939D8CB2AD823CA670D633C8A36A9079D7E97D9A6D0ADC81FEF2B265 |
43B004D01BCC0E3131D865095A6AE1CE32D7E2B7B13DD04CE233E44ACB03E934 |
CDA4E9CC7BF17EB408E9C968FA34E99135B00401226E8232624364D409E334D3 |
9CD2DCA5DA88C7AD043107627444090A763784A26B359DD9D9F8F0C1A99D3B0E |
ECD9751851422BD12D32A79E7AEA534F3D450E70CF1A3A66DF3CD50E579B0473 |
584FF69A2C66F6549A1D626A851195C4EEB23BA2D06C0A1665315D0BEF058FAD |
4DEE6F0FA015BE2C52315E695E94BA249D802BD34DE6C7F136A281FD8F8C9859 |
6BE4C915C426EBC6381D5807FC529A7C1D030F1B1CD4FD6E95CA6CA9544C34FE |
6D165F0533D06A43019A56A4FDFBF2B97CB5564DE6B6288AE8F256996E791A9E |
7AA60264540B04B2DE68968AE546BDFD96379F7FCF3DDFCBE77A4647C736AC7F |
26BEEBC8E1314D4AE2F83395A90F7C60D3C73E7D4D4F98D72E869ED3AD0CD2C6 |
779D6CADDA28F514021F0BDA3C36335E0A0BCD56CD0FE0493512AFC94A9167C8 |
F66ACD1A4255BDCDAD4EA73E44C875824AAD9E718BE59E815A35D642EC434EEB |
AD76B58998A0558B0C850BC4DF409562DD6699682A248A829CC6B3CF3EFBDE7B |
EF256E8C71287E4F7E41BAE14B7760893965065CFC3E9B990E0BB861C30678C7 |
3FF9C94FE8830BC3B678C70B5E9F3E2FAE40703489C5E96B407494C9F960A70F |
1D3AC4FB24ED38E3475C1F9EF59BDFFCE69B6EBAC949BBCFEC393F6A4954AB94 |
D462337BEBEAABAF16C8E9FC972139EEF8472498D29CE9F0C28CE97504731545 |
19439B054F2297CB1AA843840051C7D75192CD659CC465D4257C41AC63BB7359 |
92ECF2A9B248B5A4682FE185984C6CD30D37DC70E1851732034694277EBEECB2 |
CB3EF2918FF09D32131CAB8DB0E6AAABAE9271254219648FD5BBF8E28B3FFDE9 |
4FBFEE75AF43F8C52E48EE35B78C01B832B14E6281C7A5D8C0EB382EEED32F15 |
0AE5DE52B958D00DC65A5B274907F9605AF6D3226D2B9983B84F16E92A909DF5 |
55A725CD0F3A0822A7C39415104B0ACD6E422AAD93F1BF8C7E1F14BA196FA98D |
873606F8177AA8D85B9CAA4E3BA103F73F9F0BABB3333DC57CCB699B5B8C12D8 |
9830C0E66672DA672FB447DA813F36331D35DDED8F6EDFB7E3C896A7F64C559B |
580E6828F880AB57AF81F585CB0A0F32D6C0F3E3BC6CE22C4BB24818CE99ABC1 |
0272827192D222D85D02AA438599A762B5A9986D383FBF8E2C58F0BE6520AE34 |
5ED10B116A7496943FF8C10FC21BE3B748EBBED00C937CCC264711B740B8F328 |
0FAED5854AC75C3C24280AA87B4A085D13DEFFA64D9B6EBDF556E192A31F263D |
95F67120BC423213E29CD10A4A1B0425B0AB73D3595A2338294F9E1837BF136E |
F89920BF62C5AA5D7BF6E2E79E7C8FA37CDC61BD86404C0F1DC377C0E55F35BC |
A25A999EAE4EF6F594210410CBDE72FFCC4C0D5164FF40F9E081C38383CB88D6 |
D22728C2B325ADA44E150953618043B4BDD3ADB8F17FFEF7FFFED97FFE6CF9F0 |
0A189256137E47DC5249291C0C35380AE16BA3CB12E8C64927D2FFBA665A6072 |
1C3AA613A0C67994AA0BFBF784435F7E5E22AB036D8B8DBFE8A28BA070D904CF |
0C207341E253F866DC31DD6AB1A9DC0C0ADC821787E4E1B2CA2431A4C3456C18 |
6C0042044298E14A4B214E9838550A226203B0981061885AECB984839642F3FC |
E73F7FF3E6CD9D61448B088AFD5F0648A6390787962FE3A355CDD980A6E03811 |
5DCF37218B79B4A69EA5654C177E0D7F87196196A0B19E44302FF8B5B1A1B9C7 |
329231540E95FD204C4693D902DF2ED0723AE9580DDC06F172493AAB952CD658 |
37BB00684FF14B4C2BC9FAF5EB1137E3E061D95FF9CA5722BC20BE500E0E3F2E |
74E80444897360D65F17693575652E572CE56109F205AD495DA713614466DE98 |
146963D79333DF55B276E64142B5764F3A9D65DA85F7A5300C690C1D0E23337E |
91E901728D31700CE39182F3E4E90F622BB5DB9E0954B5510FB3F055DD7C2E53 |
9D9E2984997C2EE7680BDE6188F13321B16A3A63EB9567A276AEB777DFDEC3BB |
B6EE7D6AEB9EC7B7EEAC2B3F69357B8AA599CA0CDEABB367ED8E6331DF1992D8 |
0EA703426E4FA26598C5AE3DA1F2951093119B665C30E457F427C81B68FBE6B6 |
0A168E6BBE817BC451DB360D0F44113F4B19992C0E0C228986A2A5A7DD92D8D1 |
49BBC4F9296925635CC5C88FFA8189D3356BD6ECD9B3C7A6E4C3152069DBB76F |
E715ECB03BB1E6719E74D2494F3CF1840D6E144B4075248DD3E2170A5AC91EB4 |
B7144FBDAC856022CB3DC5D94A2D8A937CB654AD3787FA97F7F50D9CFAC217FF |
CB3FDF97CDE671AE6B357D9847A7469FB17AFDA1C307960F2D1F1D3D62A8758E |
B55A517F3FF669D4F702C4357B8FEC1BE95F0959D4363370EBF52A1C8B8999A9 |
52B1305E399671BDA1E1FECAEC64AD560D42B6F2BA956A2597C9B59A0916B894 |
EDD7021F430A758A13960071432B4264504718474BA00C820896208995AD49ED |
D4306701B230C5F5C5C64071D325594C531393801FDEF296B77CF7BBDFC523C8 |
B844958E255056CFD4BBDFFD6EF88F070E1CA03AE09D2CD1670047E0FAEBAFE7 |
DD0A8D5A7F7F3FEE8D24D57013DEF7BEF7F124E04E985E148F830FC87FA58AC5 |
2CBFB4312F6609A810A5C68B9FFFE44FFEE481071E58F0FDF96C0EB1E78A9115 |
070F1DC421676E070E3F5CC5DEBEBEC98989B24994E3AE60323F77FDF54AB753 |
E982076282528F6E91C70FF9424E03BED28A9FD09ADA195B11CB8E476205FB5D |
67800D0782D27BD9CB5EF6D39FFE947FC55290559025626CCA8D37DEC8EC10A9 |
0C697824E74B13289DE4A25CE6AF984451714A7E492757601EFC810EAC799C44 |
A33C0337A707BE646109F47C927C467BF07E273D0D37C8BC596BDBC871256D4D |
D775416370BC4092743ACB0C17909B566563CD18AA93CBC72D01C4D051E9F826 |
58020DE548CC844BFDD96C6F307E6C62CDCA55A11B1CDCB5EF39EB37B6679B5F |
BEFD0765A7E303E82202FB9975455A556335BCAEEFCCD79F736CBA72E8E0B15F |
FDE6C9DF6CDF85A04F3553BAFC761B82313BA331C7E552CFB1F1311B06E3A43C |
715D88BBD34F3FFDBFFFFBBF2FB8E082CF7CE6332CF6D8231CF8A2CCE02040BA |
D8C98CA32D0CC76A6E9585EF7FC94B5E82CB4A7FBB7C9DD484F02D64C7E3F161 |
BB95327003048E081FE984919F8E0E9F14D5E4F808C133533D5DCCA0EC926153 |
177CA0246D30E21C2AE61BDEFFFEF7DF76DB6D7A0E414F0F7ECF9675AA20BCE7 |
CFFEECCF70877876A64C05462891AE63A8B738365C783645193EBD25901CAE93 |
8E7DC7457BCBA5A9A9999E52AF4A703C14C203CF0B07FA87F61EDC5FCC946A8D |
566FA91F1168B55A79FFA6F7DD7CF38D49EC9185BCAA5F7543454BB291ECD1A3 |
A3081120B46C7B8309C966C37CAE746C7C142AB45CCE5766C71D0F3F140F1F3D |
383C34FCF6B7BFFD1FFEE14EDCCF283C85627FA30EAF29CE67FA3319C49D2E6C |
40A359C5BFED486F83C9B746AA53EFA225700824C76E516F920C8BA35778DAE1 |
399E78E28930CEF7DF7F3FD43A1B3A165B1FC78C5CA60BB976ED5AFC8B4BB1E5 |
42EAB792F5930F0A2007C1E0F9E79F7FE595572E767DF6F1C9F8AA2ED2024295 |
24F3C352B0A45FED728290EEB2FE4F4766314B604781CC90B01A26B336E7DF27 |
560007F5E1871F26B39832D09D580F43D7A9E143070F668C57CE86098DDEA956 |
43D3E4A2C3055337ABE37499DB79F9CB5FFED0430F7188F1E5975FAE94F44375 |
A454B4BFD41EF1665E59605D32D00D8F497A57CD869222CA9976E3A3497FA93C |
0E44823729A320A88FA89B1C6BA81645083FE3234F3DF5149E948562D96BA955 |
3829EB94141EECB26426744BA5627F6F4FB95CD203617221512E71D2360E5DA7 |
2B3B72946D097864162C1BF087C0E9F0928A31E8608D62652C81A297ACFB0134 |
4015BF090D6D7594C05AA8B6A91EEB27A8FBF5E503C3F5A97A4185F7DDF3EF38 |
6CB3E38D82AB8AAEEF2469663032F1B7D9422FF40E372327ABA6EBAA50CE37BD |
EC81CAEC34FED66C78618893E09243B7D92CE60AC38383FB0F1F8A2D224895B6 |
4D382905A1D40C94F1CDD31442779796D44265D0D8F1D2A6F506F919428BEBC3 |
4B403C47854BD406E1F95D251FBC939CE774F95966808DC10965CF0145A28BB8 |
0C1FA18CD9E22A57A65215EF47A570265692E9C7105FC0EC25353B2B4FB60B02 |
89E27005BE99BE3F2F2BCD744C204B4319F58FE0AA8F8B905AE425D54E0A1F2B |
D4A562F6D0A1D130C0BD46BDE581A88DF5D5F5DBD5ABD662D7F61E3C30D03354 |
AB36E0C5E7F359C40181669EC899D207D98363130ACDCCD666579AA93590DE72 |
CF40A3D1822C8561360C4AF97C66DFFE5DADB8D2D75B9C993DD66C55580F99AA |
4CAC5DBD7AEFBEBDF95C51F30EB59342BE1CB7836C2E8497D0842568D49A6DC4 |
2B78F296EF25ED084BAC655AC38ADA4A3236DC306E098E31FC14B2F109447D85 |
A95D4B1D78C1C521BB3A93BFF8CFB7BDED6D77DC7107B750EAF2CA9A6E41C521 |
081361705A6CFDD9024602517C6AF5EAD53B76EC607959DAB5ECC886B53501C3 |
90F49F254A92D3D1E561126389EC904A87B8B1A5569926CFBFFAABBF4208B2E0 |
9B996727CA13DFC2429C8EB8C300EA4ABB8B093C4253E8E60FB5DA00076A1ADF |
50C3211A0DFCBEDD6C89078D47F8F0873FFCC94F7ED2B5E802BB2C012BE4A4E5 |
10BC93937650F349F9FBBBEEBAEBBCF3CE63C50B9FE5AD32358783CD7583FAC0 |
D5102E9C7DF6D93FFCE10F850A54F438EDAB4A099A08EB96E38DA3C8E5E509B4 |
F1639244E64764FE8190C8C295EEEBEB191EEC370C07615647051D56EA56BB21 |
092272AA4812436877BBF6514C42C60B9914A131E8C40B9E134706B5E9256209 |
E0D2692DECE5F49082189AB78D105AB71468EC90EF0471C60D7B83FC4871E8CE |
1BBF0A938EF7F5BAA5463CE3EB6A844E0A1B63A20CED975355492ECC8E36EB99 |
7C76AC5A47600501457419E60BD57A2DF1DC679FF89C2D4FFC161B8990A35C2A |
4D56665C8B8C214991EF321ACB31187919632ED3C2BB723E760D5FECF77C2090 |
4AC34AD69671AC76EFDE2D250ADF9A412F8D6CF0D5BEF8C52F926011B741400D |
B43CB6157FA5405289F33CCA2C71CA06058F1CFB921E6470D0D51BC45C0D034A |
F1D51C33E2023E963816B80D9E32AA7E9A0731847459DC940D9B7E0F6D00A494 |
23B5058DCAE8594CEFD35802BE9BD92B3CCFAB5F75FA238FFCFAE081C370161D |
E5978A7DB861E8717D141DBF1D25BE1B96CB7DF57AB5529B5EB17C244E746A72 |
FF81C365DD70A0B5525F5FF9E0E8C18C17BCF8C52FDEBC7933747A7FDF50B3A1 |
630BD70987FA578F8F1F85771F84D1D8C4C13869F40F200A99A8B767D6AD5973 |
E0C0BE16B4BCEB2F5B3672E0D061EC75211CC4F93196000E72A5D96EC4899EDD |
EA3A51AC4723684BE0B809D39278FE55AB56614B68C9110140DD20D4204B0F1B |
D609A2C5D230E9BFC4E270F5F959CE029584328FBA2DA3CAE2DBC19967067C09 |
2C10FD0808010C00259B09075CFC965B6E41584A11E4B7E3B9A03ABFF0852FB0 |
0866A7F5D4DC196D4E3A426FB1AC148E81C07238F7CD06442DB00EC6131C59B1 |
E250DA5F962136AE5ADDF08C67ECDCB1431FB020409845944EB3D1667B36A1FD |
4C64D7F46F3AFE115D33AA4BC99ECDCF0ED923A0C5BBB15BC91895D3F2CD2F77 |
13B4875861D7AE5D323FCE5E370183F274D94014221A782CF144975C7209A448 |
E015FCBDA45F597EE7F593747A949C6A7D651F716A79D9D0607F7F2FE4C17558 |
E1EC0CD98EE2CE07957F5C9149B7818896A072252C08DD20557F9D11F669B860 |
1A0B8E0F6E710C29A91E31630C6DA49296A693238A347097177B268F1EFBD583 |
BF989C4A46941ACA151BB5D9507352C3E5340F92186E8C2821D351808F16338F |
CD4C2D476411BB08D3AAD9F049C4DC3DFDE333539952E1B43FFD5F3FFFF9CF1B |
B55AE07838A38D24B2DB1EF9385E3A81CE3E0B4A2919BA27CA5DD4A54A395D64 |
B3EC8C909C02A9280803BF4AC7F77261ED62A134BE708226676C08FC5AEACF4E |
DAF7C03094C0E56BAFBD16CE1334AFD80665DC351C4FC9B588D6EE02C5DAB10E |
33018EE9CDB4C7357BE96459BA14780422DF64655C6BBC2E5B7C38F89D288C38 |
9D926DF3252F9A1D92E4A3C8998E92CA9AC1B1A96924F29EEB673205CF0D19B3 |
E472F839D36AEA0EA623E347D6AD5CB3FFC0BE7C310783315DA916733DA6F3A0 |
CD6EB2673D0BCED933B76EDD5AA9541158382ADB6C2471E49672C3996C786CEC |
A0725AB9BC3B531987B4C0B11E182AECDABBA3BFB717323D33338B8380A390F1 |
B3AE2AE4721AF8D0D05469555802D30C09E96E9AC1AD6D2C052C414BA7A1B573 |
C15A2BA911789C984F4C0C8754971FB1444C203965E175225451F6A90BAEA0A9 |
930E1F86022251499236762D767D9106B12E8259D6FAC2C8A88DF127C33EBE85 |
F326291CD878D88917BDE8458F3CF2885C990CD88BB53D27E9842695D6B8969E |
DA98CDA7A818B25318278559971B6FBCF19DEF78C73253079E9C98F04C7814B5 |
E2A2F1B9B0342593E06AE82A1102083D5215FE178E90B074B076B7E0F7B2B4C3 |
260C98E15FFFFAD75C7CA16992CA3C7EC009C45F49A8C77665A9A22B434CB47F |
FF7E9A55FC95C2401639C935D9C021A9DAB128F28C673C83D65A7AE5545ACF94 |
F7F35988FE4AE1B3018788F99E5328E48606FA878707F56C3E5F58258C76509D |
DE02580295664E2420E8F2883B7EBFC96279B19FE2A73BC680F021DCA0FE4F4F |
C696B98EA918C78E56B5AE3E3291AB230927637A0BFAA793FF7CF03FA27AB2AA |
90EBF58299E9E9023E11273D69BAA91D47FA59CDED6A7C60AC7AE14CD4663241 |
08576A5A5FCE1B8BA35D4E7636A9B794BB66E3861D7B7643E9FABAC817C50B81 |
EEF99F2CBC41851985D394CA9C9376DB51958B22E66763333B0C8E4B9CCED2B0 |
2D01DFC0232F34533CC27617886034042C2EA2E518CA4FFCB56BA0A14D02219A |
1AFFE24892119AD3BC6512B23241000B51625A6CDBC624211661E7CE9DD2FF48 |
554E73C84E524937D9B1889332ED3374C6579086880BC2711D8228395E3E594C |
232C583176B4E705EF52057E269F2B4DCDCC0EF40E55AB35F3DDD9C999CA70DF |
B2E9E98AEE4909F47CBE20A35BCFC2A0D0A84793954948B6A793F651E005E572 |
C940A39C463D5E3EBCB6DDD2FD29AD1A020B2C69AD500C95D3ACD5A711C9CE54 |
265A6AA25FB7DEB54E3EF9B9BFFAD5AF601D35E19D1F38DA3BCCEAEF6A37AAD5 |
4A2BA2018074B71813E000BA9E6AD435651EC34CD9663E1714D645175D240B0A |
3D489D22C8E2C5D6878B6E03FFE9484A8B8A087717A05EA67175419EED173F2E |
997DE958A6872BF32C71FF975F7E397C520E5722868C5BC688155778D7BBDE75 |
D34D371103F3B48318F1157FFDD77FFDE31FFF1882CEFA36793516951326F88D |
A6D356CDA4804852A80C13162215DC00CBEFD3383989CB94914A4B1A71674EAA |
4EE8DB597B49A9AB8550A4F419F97E7B2AA7AD7F95D543C45E4A665189EA2169 |
364E05CD1E3BC63FFEF18F633DB974CC26C166E0ECD1BCD9706C21D0A7D1654A |
41F84524E2E6C7F1061C3C881602C734A147908FF6C911480CF4F59A37F4F794 |
0A10F234B961724191F60423A7A3F7EDD4904A99E9241A10EEEEA4C9DD89C412 |
386CBB51A46689C51270EA64A472FA6DBA770CEFC0D95781E930D8F3C3FF745A |
ADBC728772D9C96AB51F6BAB61012A5F7334C7A90EBDE3962E14E02BF4573713 |
8DD9C8E4DC562D1E2E951AED68C6550766AB3BB3FDB371EB5873A60503053B04 |
E73A9385F3E6A615758966246015A7DE4D8715E2E4C2E9211BA33274D0D47D70 |
C284980BF7CC740A13EB32274A2C81E4E5D4DC5EF48E614B8173A46C52C6DFB2 |
6546262925294134C308822C5874A44F80F7E00E3FF4A10FE108509C10644300 |
D8A22B819D4CA1A087AE4CE8435712FF22FAFFDEF7BEB767CF1E5E13DA1F57E0 |
209D0B2EB800575EB76E9DF05DB275864A4020AD12FD7CE73BDF39FFFCF3C995 |
2D4D12CC47E934065784F6C149D9E8D4927873AE9AEF6B9BE328CD7A313D33ED |
A8CC60DF10BCFB899929180368E189C9B1C181C14AD5F8EFBAD558A789FC306B |
CE89E3BB71B3A19D9D0D1B36EED9BD1FFBD5D73BA889E782FE4CD63443B7A0BE |
F186D976722C4AA6A2B6AB939B6E2B8A89FE7666A6AB084120518343FD58C689 |
C963AD560362D68A5A1E7C9CA466108E081211CA3A23CB57EEDDDB2183C43362 |
116FB8E106394E42524F213BF3CC337FF2939F40B63EFAD18F42C9127B4B51A0 |
D2B117841C84940FDB0799BF6EB0E7575C7105DC5ECF0C32644293748C2AC5AB |
B0C873EEB9E77EF9CB5F5EEC3A6E3A0786396B19C3C29096EA895C3D4F3B5965 |
FE8B1ED619679CF1C0030F404AC8FA20418F8EF68E1C11D0AAE43DE980F0B3D4 |
BC500E922AD56A31D127BFDEA8E7D2163C1B8F4077CFCE62F16696C056911C89 |
17E175349B664A5F6337BBC94DDA3842A1F297493E72B0ED5911D215CC428B70 |
6EE323F82C753AFE8A6082FD3E023A92B05DAA32A2A718CD98D8ABFFD8B1F1FE |
011CDD693CC7C8C8B2B56BD70EF6F4403D418C67676788456AB6E02D452D03D9 |
8C53723AFA95E25E086A88E96FBD2C0D8915B8802916DC9D9350928F67836C2B |
74271002660B5EA359D2EAA351EC2B4D7EFF3F11E36434485C05B1D26D01AE06 |
9866B4A7E7458DA88E5BC3F32A4D5511252A9BC4D3AD063C82AC9F2D41AF45D1 |
4C43CFA7DD826DCD8607E3B8E67BF51ACC815AB17ECDC1BDBB4914494926CCD1 |
F6CD6DEBEEA44C8E527E77D2B92E9247C269C2F2BEF6B5AFBDFBEEBB8575D18E |
0644000414C0A891C787840BB83861360C3A6598A0AC9897BE78B7641F122206 |
1A0F961938EB850220353F6E9F943A94956AB67784422860078126C29C40F567 |
CD8B8182346CB2942B4871AE893DA7814BF7894F7C02EE0E8BA3F8209BF6F5AD |
AC5CB9F294534ED9BC79B300AE97C0CC30B230D59B592CF7DBCE7F47B3D55CB5 |
7255650A7219CDD61BAB47D64E4D4E4FD7A6FA7B7AABB54AA4BD2A6890C24C65 |
76BA329BCD9672597D86232C858AFB4A032F3AF5B403FB0F1F3E7CD43799CAE9 |
A94636A775AB8AFC484720CD28198FD484EE0B4B1AAED7AE37B05519DD90D486 |
3805F5C8EDC917474686B6ED78AAB75C1C9F3A96CBE46A8D6AE027AD364C2BF4 |
6FCFD8F8849302DFF9D83CB136FF3E91C8ECE71690A500F0A158B1A9704960E1 |
376DDA4431C245B07ADC2742C104C835FFE5A5738FB180F01AFEFEEFFFFE2B5F |
F90A7308D8632CA9F4B2B292B118D39C54AA29CDE79C730E5C06BB83DFB54635 |
3C2DCBC582F7A94C6044CA39E98C2542EEB39FFD2CB908C9DF29830AD8E129F3 |
7934FA766686BD8E72655A828C554953294D90E45E1909D9F9E2C52C012B0D5C |
0A3B5422F64E46B632404E526200665A6C6B2DC11C4769DA137554CA9D27C53D |
A232589DA6ED6161809BCECF12642203B964DC9BB29A480D34303735052777E8 |
C8D1513D07C6D7D6F4E4934FEEC966355567E0D66A70A1B4FB566F54F592389D |
4E021A039622C4644A5E483494D79658EA788FBDCE2AA46CED5D7A27683B3537 |
AE396A59FFB05F6D64AAB5437B77CF4CCF6EACE9E0C57335B504D6D1D3403C6D |
0F8C49803F17381A89AAE3BC968ADB51EC27C9ACD2ED3C81EB171D8DE06BA916 |
CEF16CB678A4551F0FC3DDB3D56C98ABC771A5DD28F4F756C627A5BF5DE44188 |
F8A5009E3E8B626A143FD36DE7BE509DB1C346A52C092A7587BB2E222FC21368 |
98BB40AB241A71D229025D1446B268C49249A30019C3247094A75056CE594896 |
9274A286B22212C927CB0D6B0289FE7E48266142325A80FF2963CE58B8E20D33 |
D9056522D364E161F0A82AE366F10E717BB485B8882E91F2CF2C3C6265D9A197 |
3CDDBC56F360FCD458B9A73C353D552E0CE9DEB046BBB7A79F45BCFDFBF7B655 |
13820F492995CAEDC88525C865CBBD656899CA8AA10DA640AF06FA870E1C3834 |
5BAFF6147A023F030F488FCB0E324E1CC49197C4385263ED78A2DE9881839F2F |
C25FD130F9E9A90ACE7BBDD15CBE6C9D192003EBEDE5F2E1F4F464A44B5EBA8C |
DD0BA335A503FF95AB961DD87F04C111F4A67801425E685B60FCE7FBDEF7BE6F |
7DEB5B448311B246BDDF952FB655898DEE5A22EB623728702625F79ECA88B442 |
D2B2B89825A08840DD60F5647A011604DF8E7B58B366CD79E79D77E38D376213 |
972E472FF6EAE27464F59BADB9F852C443279E78224C29590BF1386481E78308 |
77CA0A5340CE849946B3E1B91D25C8C00BCA419A06E4E4DB25E2646E0FED62D9 |
B95B6EB9E5BDEF7D2F1D7F6A7C52CDD8ADD4F813A375AC1595789C7297CA75D8 |
6388A5A3D5EF9A3C45D9E00D9F74D249679D7516DC3AD618F02FE2B6D7BFFEF5 |
541C7833FEFAF5AF7F1DEE82AE8BA4450801758825202E10BF81193874E848A9 |
54686BB0830E5E87870736AE5B8B2BC04E98A450ABA65FB37ACAB793D690D398 |
402C8138AA92D0D0DF1879A9C4742C01D7B31D47B64E1435946DA99AE724D9A0 |
9C2B4C6FDB5D9CAA3913152CE2723D645C370D682A31DDA3192BCB18E811F761 |
0897AC8A38A0DD6C99A9810DD3C5E3B94E2E569A8D122728174CCD369C3073CC |
75B6E2D995DB33B462E7D851AF5C607D4E66CC5191D15DE51D7AE9604ED93BE9 |
DA65244A63ACCC3C0C958E15E36A0B35489292EDA8B44EA0E631AFAC5EBDFAE0 |
C1831072FCFEB4D34EFBC94F7E92A41DE37606BFEB24E266B0FB070E1C80327D |
E31BDF48CA2F6824A6D3F1B6134E3861FBF6ED4C31DD77DF7DA79F7E3ABD01A9 |
F7382981EEFC93CE3B24A925AB7174F999C9E48C612603059ACC785DFAE6E8E5 |
08570A4D88E4C40863C529EE608D6DB4E9FCA972F32D014F4B6F6FBFBE0FCF8C |
8E6935E19E9BD4A7F7F76FBBE8A1871E7A72C7965C98A937EB1B376E786AFB36 |
6C504F61B0D574F3C5BE81FE917AAD393B8DA7CA7B2ECC72429E06DC8CEECBC8 |
2B4D5701318BC2388220C1FB9F68C5138983F0A29ECBFBCD56051A7F621CEE5B |
2F2C0A1C4A9C1CDC43A5325D6D56201408296AB58AE7278D663D089C7C3E3B35 |
3DA3AB5C71877E920B21D46CC254E398D9F49AFBDA0CDA3DF7DC73E1B6E3F750 |
6D36C5E0F2E5CBB11904DA73C588380A0C4246060FCD5F37D7F4B8338D68AB21 |
E6196C8CDAD27D0CD8E00B2EB8E0CE3BEF644A4AA59925916C861D6CABF94363 |
02658C16A7CBE2E2887884B591450B2CCBD7BEF635EA4D3725CF2078D986EE11 |
9ACD8555C613914665A9A2DB3FC7D64C8FDFC71270901C6EEC924B2E41A48277 |
420CE0F84841CB33939818604912D93EC36EDAB88FB01D4F8447130FCEF601E9 |
5E71BB79F221F6F7DC73CFDFFEEDDFAAB915450E5480E4DC7AEBAD6F7EF39BB9 |
024C85C9570BB1B04ADD2FB37DBD3395295C19ABDA5BCCC38EE2379ECEDC2666 |
8A7A0DC634B252437C49D95F5AB1A8133B5090B6348B51DDA7D6481D5F58DBFD |
CC39FEAC93C4193F6827877FB96575ACD67B419F1B4CB6AABC7BDFB8F9BE094D |
F0C962D6EC66A205009660BA596516B26D2C41CBD0D365E304561A7162369FF1 |
2AB5D2F0C06F8E8EAD3CE1590F3EF5A41714FFFECA8FBCF7AA2BD3E49512461D |
59A838652697A9A5D4CB5C6769F9E6FB79B2F02F84FFC89123EC4616BDCFF591 |
3A33359E1DB1E1295EF8C2174265B3BF9D53D5284BACF488BBA32C6F983EB8D0 |
BFC3497AECB1C7982556A6EC4C0BC1F1DAA27368B0696644FE6D4BE0A4341276 |
772A891BA49D4599F4805C4D2C01C7F35121D8092E88252E287C6238171CC881 |
EB700E8F4365443B2CD5CB25D805041A0157D87C0A01A546BC1E3D3CBE61FDC6 |
F1F1A9A9C99956120DF50D8C4E1CD9B87EC38B5FF2E2FF79F8D7539355F89495 |
E9C8F54AF95C7972B2E23B83857C096E259B0F8AC57C65766ADFE15D7D85B0D3 |
121C655C27E363C5DC9956044B30DD6CD5E2A41A2550DF71AD595B36B8029141 |
B5D5EEEF196CB70CA1901B359AD57C415B82466B16A1BB1F684FE1E39FB8FAC6 |
1B6E1E1B9B602398044A36CB4D924EF8E422D22AB0B04C33408C29F909440590 |
AF42BA607E1F0BCA2F8516A053CFC40BBB99B8EB52FD5FF03AB8554ED42315B6 |
4A710ECC5C5347D8D46FD1E2A31116BB4F322F3DFFF9CFC76148D2267E3E2CC1 |
F8525512101EE44128185FF08217FCE637BF91584A7007366EAFCB12D80A5A6E |
E369EF53B4B654EC85919BACBFF83D5B1A059DDD85EB5556A30D3E75D555575D |
71C51532FA433AF2445AB0C8F0FBEEBAEB2E9E6DCEF814041A35FB37BFF94DBC |
47A0E58283E2F792D41EB70A95F5EA57FF15A20AB637EA650C9D562B593D3200 |
9D084B902F64C33030BE7F0356A199E6B5A8F785AF54A525502E38D5815EE7B6 |
C88FC947BB9D28DFEED4B3F3E68E17CCC4CDC4750A913BB3F9A9F56D6F65EC04 |
493B4A07827BCAA1A531457E05DDAEB3E19172033F52CE8C99658C178250AC1D |
1CC3D05185D8C9AB24D48C435E7F14555C752C528794E686AC660BBB5BCDA9C0 |
1D2AF51013C144076E8928B8F996808F0C15F6EC673FFB89279E60CA8E497CFC |
70D14517DD7BEFBD70E36CE61FC15E0BAC4B2C816D9B29E4ECF8B16B4542952A |
F269C34024238765A1CB254E37E37BDA9B33CE38E391471EE1F83FFEB50B272A |
219D442AD290C44662EA1C395F2F7FF9CB7FFAD39FDA6530C90E2933360A2F27 |
9DE441E9A2EF4BCD86B791A79A12CEE0F2FAEBAF77EC232175F3A59B0C9441B9 |
BEE005A7DE7FFFFD4383CBB05EFBF6EF734C2E3156CEDA95CFA0FB0CFD3E3933 |
3E3CB46CB6D208BC1E04EB49541859B171B07FF5E4C44CA316562A55CF0DA7A6 |
6672B98CE7C7515C534E94CDE86E00BD5C6DC497595882484D34DBE3B5C6B80F |
EF33A9F5F517A7A6C7A09510948C8E8E150A7DAB56ADF9ED934F96B2A599FA54 |
291FCE5627F2F94CA53A89150A336E2613FCCDDFFEF59D5FFA2A753A9680BC02 |
767F1D13BECC6060B164D165596C3673D1D4B29D3CF058629CFFC578721C33F3 |
84B34FB9C8D217C6D38B7D62E31FBC12421416BC0EC949540A8FC1FB7163305A |
708D376DDA848BE09A6433457881772E96655AECC5FB240B0A64487AD0F02F61 |
7358ABF7BCE73D37DF7C3313E81278E21E58A37ED9CB5EF6B39FFD6C6A4667BA |
70767DD353DA6A36B346B1363B1A630E0180B22CE8EF690C10CB13FA29112E71 |
A2425FEAA46C4252569D7F4DBE411C029A2B098E252C90E41B3FC5C63DC1A1F2 |
ACE20DD808010B0A01AADC0C5F9CFD875B42388BEF5DB66C68D7AE5DB86DCDD3 |
60262986A10EE94AA502FED7532E99DC5403BE2C0B0F6209E495583444AE3514 |
A5CB1228A7539F740CA7B4BCEDB825F6DC38D4CD01C55A7BFAF1A7461AAA0F82 |
AD544FE0699239EE8B49F4699C10962569E971E24AE30295E3D5A3D66C5B0FA3 |
699B3E32C40781A38A896E4363AEE09983A5A3D333879B2ACC87E32DB5ADD59C |
CC668FC54DD58C65DAB0642DE83D48078660B2136B8C97480BDD561235F222CC |
C1629119B6CECF0EC5E96C48FA0D1C4220697DD181C44F737305D160C7526CEC |
62BA46E61A315217B8043D7779165ECD1609B93DA901C857E067C497EF7AD7BB |
E46AF822DCDBC73EF63104B24291CB22993C1D3D39C19773A144837DF0831FE4 |
C4567C9CA52C5CE40D6F788343C9E6ADCBC796E0E0A4E363EC9B86ABCF4CCF32 |
EF59CCF7C0375A31B27AEFDEFDED24EE2FF78E4F1D2B177BE05484410196009B |
D26E65FB7AD7950A439599E64CA5E6B99965CB5698327DD86CCD28B7DED353A8 |
5526D93AA362DF7542D76935DAA3B5C6685B557B8A85667B6AE333D7EEDDB7DD |
B492E68E1C1B5DB77AE38B5EF427FFF3F06FF61F380001CF6413C76BB6A35AB5 |
5611DE21E5A8676C583F3E3E49EDCF0DC3BA3007221D64FCD9E6EAA1A72992C7 |
6DB8FAEAAB3FF9C94FE252440DD123C00DC3897EF5AB5FFDA94F7D6A310B6A33 |
0E09973AF112745AB197975F7EF9E73FFF794AD582D721C881010A0D0905974D |
F6F6B86A6176FC832C818C5B90CE49A15D64C40A63C39C86CC0C71E70EF0618C |
E2FAFAF4C2DFC8A4F4299D6123D5A7C13239739BC89688B1C49CD3F18188E3D8 |
C46672884AE93A78A8EC148D54D4F9AF602D58A121690C03207AA3BC14FD44B6 |
2213E48E67E4EED31DC3CF2CF370F13B6CA396BBE0A6D4EE3436706799D1CE18 |
4256449808AF9546D184C62FF1A0D0962D1F364E465B8F0D4E4301497C53B9D8 |
29231B4EAAA23915635A02FDFF9A8BF43837A7EDE1EA34FD74353339DBDC7774 |
44A9126EA610649A262BE228D803CD5F6A285CF0FE76DCD2A392753940D3CF23 |
98A8B59AB5186F71A655326BFA140A89195EA879099D2CFEE2A96AA4A6CC5CD9 |
493FB343C547DC486990A74E787EFDEB5F67194FA5E94DDB4B70AD9794CDC57F |
57E9681059840573FA1DC39836FF77F55772BBE9D3604FED81330844E09F5148 |
C41EDB3524785D9087D80C0521E48CF19340486C1C5A970DE0ADDA7D0F6206E8 |
924A33818C414CAC6E247E8BB8EFAC9DC875F02FF409B40ABD16BC93392BB10D |
5414279F7CB223894B69C991AF5CE2049A5101A63A516DC4491C06E1A7AEFBCC |
15575C556B344BF972A3DECAE561A8E152C5B97C396ABB512B544939F0FAB3D9 |
E5D9B0CF73B3D57A6D7868F9AA95EB1F7FFCF17AA30A67DF0F5BA59E6C6562CA |
48ADF29C4037AF79AD7AF348B57158436B0AC1E8F4FE67AE5FB36DD7968C1F94 |
CB7D13E333575EF5D17FF887AF1D1B9DC4577FE5CB77BEEB82F30A257F6CFC30 |
5CAAE999A9BE3EED2A0E0DF78D1E9DA092C2B1A7D1B64777319FC0A2257501B9 |
92484F2DB932AEB2A48F9C94A247364F5891E7BF64D68DCD07CB2B485E48A5C3 |
B996B8CEB5D75E7BC30D37D00E3158866B4CBB25D1221BB296CE322DF6120A55 |
5E8D74862AC5ADF34B49EF2C855F493230B4A26BDC8A0C01272C848148232608 |
4CE37BD46A4B6A422DE2AADB25CDA52BF012F0C686E388788FD89ACE2620C2F9 |
D1801C42E2BE70DBF61C1E35372CA01913D79B4C2476C3118E2B510334F636C8 |
95490395C23698A0E8EF1B8EE2569AB79D4C478A66716ACC0AA8DEDEDCEA35AB |
8C318B386ECC2E77CBFDF337C249C71D34C75B422E165D44AB7AEEDCC9BABC60 |
267692663CB1EF405F3D19566A3D1CBB4625F1E3420B5BAC07DCB463D5C21DEB |
BCADAB89E1FDC4775C4D4B1D45263208DB715469C33CF8334E3CEB6A2F2C13A9 |
7C12E73D3F97F1B36DA8255DEDA836A3E9249EF073FB7D674FABDE88621A723A |
E9BC491BF326864A00B224FF611D8853C648F72F4136A1CCB4B8F2716515C945 |
D4B93592DB14CA362A07E68BB041175F7CF1673EF319E9859611980236914E31 |
C6FAF44524DB4CE40F511EC24FECCC652AE58BD461420E313232C2413AF8AC34 |
4F48B14D88D35927100BC19C123B1828724247DA756F76AAA3E3161195C552E1 |
59679D75FFFDF74BFB9C8DBB521D7E73FD0CD94CBEDEA8FB9E8F55711D776860 |
B05AAD1BFBE19A6100FA9DBAE4A222B8059ED31BFACBE276B1B777CDE444DD75 |
825CB6E7D8C4E8BA35ABEA8D9938A9D71BB388FCE2A4E5AAA209799C7C36ACCC |
4EE472AADC9BDF7D6047A90065D474DC5690C1A3C6AD76B35EAF720B5F72DACB |
1E7B74DBDEC38796F50ECDD6C67A7A9D434776260ECE6A58AF3573393AB645D8 |
A728D6445E886CF59025DF31B84397075B543967620883EBFF43C575C1176D0F |
AE063D7ED14517C92C3DC74C8B847013AB4EA00E3D083130E24A880FB2E0F555 |
9A1BA53667F406ED868BC35FFEF8C73F4EFAF2381DBF459F9A1FB165628947E0 |
B001CA16A585DA84A2A62C6086B4E0D2F38D53864E9CAE7DFBF6493F244F9118 |
2D21CF122EF5C5D65FD2B2D465D4E644D94B0311FD328623765F056BB9820D95 |
F608FE55DE2C07C94D292284F4893BF5AA57BDEA473FFA11911B0203C301867B |
48CD62B304CA17318F2114175DD0B5F4F1A056DC65CB0756AE5C5E2CE5A1F07D |
270B99E7C3E292E61B1303C7EAB0C7708E13630E1B62240E66A7E32C71EC556D |
A72F3F80D56CF4EF1C5D9DB8EDC029B5A2756E76C66FABC8F48B787056DC5AA3 |
558BB50A713D3F64E539D6FDC6BA510DC17BD4AEE9D491996843F89021292A2A |
27E76B9E233F09676103E21AC20308F14EE53DE11C1F6426590E0125F38C08C0 |
46A5B4981272B9161148575A5BA680503245BDF265A3938F574AF859C7639E76 |
B65209D211F09AE2EDC811C7DCA15CA4DD398931C598A55A7285DD7CF3CDB68F |
AF2CCCA8883AAD1A3DA73865D9E3314FD26E1BDA249E2F1A0FFAE80C2E697588 |
7AE713491BB65A28CB2AFC7DAC644015D0EFE7BD396A2EBF823215BF279E7842 |
344ED75124678359567764F9086CE6E0E010AEBB77F73EF3F01A4B00879EC649 |
7B3AF8659209DCFE6C6644453DBD7DAB8E1DC593BBE59EFEB1B163A59E9C1F24 |
B5FA54B184E337D38E1AE5D2725C5F9363A87698C1FEC14E34AAD599D8417C14 |
797E8C5F6A5FA45D9786FE4C581C9BAA8EF4AF191D3F9CCF61B52A95D9B1628F |
16975A55F4A6BB7C996ECC430403BB0575BFE903975E7DF5D5BDBD3D9C520B0D |
B57BF76E65EC22D5F182EEEAFFF38B591768017C1D0D18010950CAAC2FF13658 |
A214B818EF810D960B6E87BCD8124824928C5EA1302983AC6000844BB19241D5 |
0FCD8E0BCA504C7867F6787AFB452163C822852665A5A158E8930C98741810EA |
4A9405EF013783C7E72C2AFC95D685251CF2C791E617B7441F7F094BC09FED19 |
B6CEDCEE5FE98460369F1A4154B35408180DB0470C228D1B667B91B2DAC2DD94 |
D1880FC5A5C31DD2E470AE8E7D4DE13C60F186A3DF94B1D6C3C3C3B83805D82E |
DEDA690D3F503DE5DCB26543838303F942D6778CD14D341CA05AADD0F668E474 |
AE40CF8CC68C5A4F96DA46AC77FA0CBCC0768D25B904AF1F2A6560D7B12E4BA0 |
4DBE21F14D945B8FA25A121BA8A8E3AB444F8C527A705960BA8B71CE1116D4DB |
2DFD83693DF73470C8CBBB2A749D3AD49CCAD454321DD7633D13D9580215BBBE |
F62AA432473F973E843797D7DD5653783FB6ECCC33CFBCFDF6DBF17E44C6906A |
6E6B174482FD07F4721CD31D62BB0B5D66400B55E2B0E97DD9F2E54710104038 |
E1139B0F2616EB387DB2489BDED06637C1DBAEBCF2CACB2EBB4CA9EEFE1E8178 |
D16717C4879A8B7A903B5FBD7AF525975CF2E10F7F9848507209D37FC2BF6442 |
C577C1C9C352E0E30B561625A5A64C1580953C9E3E9546459D67B7331BBC0F42 |
18BB5077D6A53B63110B793D77427FD0D7030E27C7A7286781AF557592983E64 |
2FACD66B815FCC068361B0AC59CBF594574C4FB6C220DFDF3F303A7AB45A9BCE |
E6BC99D9B1356B56CECE4E359AD5E5CBD672A848DCAE0F0FE30C1F98983C5A2A |
E5C726F6C200F88113C01BD1C9860E6847CBD044D551E1C4ECF49AE52B27A70F |
F9617D7CF290998711EB068566DBB811C10B5FF0A2471F7D148770D7EE5D6615 |
D818D2B0BD0C4E01E32C2A480C37EC8F620924D1816DC377BDE215AF803B49AF |
9CC9168A8232B82C5BEFA894218B30E4C5787898C5A2938B1DC47EC3EC413B63 |
EF056B1F9B210184BEE0D1F0B0DBB76FC707D7AF5F0F252EF88DC5AE0F63F937 |
7FF337FFFCCFFF8C2BD3D86CDCB871CB962D1CD2FDD6B7BEF5B6DB6E7BDEF39E |
F7D8638F1D9F66616A80B673C7ABE13F6FBCF1C66BAEB986993A9E617606E037 |
36667789FB91348E20A17187781081CDB1FBFFE4934FC64D4A0D8CBA528684D8 |
791E2F9DCD49479297E5A538C080737B700249252468311E78687C4EBB651581 |
893B761B897B412D86B0FB3BDFF98E68FF381D5AC2F67BFC9739999AD6A5A79C |
5FB162F9D0D060E86733998078E5D96AC5E43D229512EDC9DA0A3C54329FF3F2 |
0F99C4A27496CA733BC2479A83BBC7D7A88E2558EB642A8126BE68C37B4A74DD |
B9A9926AA241A289EE2DD08DC759E5C108E3B67281AF497F636D0CDA5152370F |
06A5075D10A8084F855034546143D7939B0819E2D412C4EAF8EDD11E90174B88 |
5BC4E1103369F76CABD48A4B358BCD3D52B1978BDB65FFAE3AA863BD32D97C65 |
66E659CF7EF6936604375E7D8668960122FD71E6A9185306BE4B27809E904A2B |
A9AE45A3BB605586A139EE96A24ECF0C37C6111AB6232EA541B680B139866E04 |
9E1D0A8AA75E4E193F28C82B56B398E3E151651F1FBB656927E82439B61EA147 |
23E47C765E285D7A9787568F274BE20DEB379C73CEEB3FF5A94FE5B305FE89A9 |
215C1C5A584F9B9B9ACC657B73E132D7E9AB4CE1EBD7341B4E4F6900CB373939 |
D168CE42B323261818ECADD72BE313A37DBD83783C5D9F71D4D070DFD123FBA7 |
2AA37DE5DE7A7302860D0104EC415B6F410DEB6CD8592BC34323074647078A83 |
A7BCE0B99B1FFFE5B1C9DD9B36BDE7FACF7D26970B60AE8E1D1B37AB995BB572 |
CDF61D7AFA0F3C1A4D12529932EBA8FD389951ECA563459DB4C1EF8F951DC2BA |
532E85A9185B0E4DA1E65296532F48528F6247E21AF17917BC3E090FB0AAF814 |
D410B91BA96199EFE63123C2077BFFB6B7BDED4B5FFA1291032AF57397400F53 |
1C99D21595CD0346818116DEB163873401510AD9AB219E974AF3FBB03DB85B02 |
C0114DDF7AEBAD907E3234B06643C7963F2CB6A44C82B966E60479F7E82ED9E1 |
08FE4A680AC742C9AC66BBB759BA31A844A0C739074D29256001FC400A62465D |
2A35D8DC266C1097D7350C392C189C71C6190F3DF4105349AC4348160E4A8A5E |
AA10085BDD76F8CF162D816620F5710A7A714BC57CC1D056670DF9BECE274039 |
33D12CD40549DA09453D257EAE5D61769DE3D3836D346AA4F99FDAC37B27D72A |
AF1D3AC5661B9660368C5B89AAEB0163DAEC341D8D106D685239851020EB3979 |
E504510C51C3FF34C1987242DF6F44714DA78C35012AA201B7AD99328EC62AE3 |
7A6DC79D552DC7A8FF9DCAFFAD668B4F2854649AC3DDDE71C71DF02A7ACD8023 |
19F9226EB55444F186534E39052B2CDB240E846DDA79EEE8C8ABB9A865DB12D8 |
E05A88C1E73EF73988250466EDDAB5B8379D76CB153AF615973282CD30348E3A |
A1C0B5D75E0B358877B26F402802F9150207B29D3C38529004A1A2B27398D277 |
CD69C66CE1A48CC924321C79BC1F9FE502DAC393E50C324466F07DFEF9E7E3C8 |
CB100566532555D5617315678D922AE3DCEC572A589262734B661CDD673F73FD |
55575D854DD76F3066C00007D8C7E155AA33AE930BBD7EC40449BBA7BF7FDDCC |
74D3F7B24180B351C9EBEE0188470BD100CCE481B1BDC3E561B82D3AB39F0911 |
204F4D8E29A7E9EBC9AA0D3D17C98F1C37D61DF8461A7C5FE3F0B6EE7C2AEF95 |
7A7BCB07C7761773AE1F36F285607CE2B0CEDBFA994A853211786EC06DA8CC56 |
023FE8EDEB3118189D5CA32D4D52226F51CD4BB031FFA12F1E78FA2F7449CE3D |
F7DC7FFDD77F25A7340FA4EDE9C89875E60459E517B294F9AF24ED57900DEDA2 |
48925AA54AC9FD05844E9AE8A7ED28249904A58A4E0391F8EE3CB2208A13255B |
B2F04C4A12712B05737C8A07D81E326E33CA2D969D4B0CA734DE830DE29A9C7A |
EAA9679E79260EA44A9D18816FDB12EEA503D1E0AD3FF399CF7CE08107C87349 |
684717E7A89BF282F13D77DE79275BC6485DC7EE90C870B6DBF689AB8123C7E2 |
1049D3A0262EBBEC32411CF0CD5DB38C8C4AF26909B05DC68784B9D2EE6D7F5F |
19C64C5312A94E45017EBC619CE87C90AB2A4026C1A8881AE252C0C397F589D3 |
D13A7AEF34DB5DBC7CFF342D41A1D95E672C01CE5BB5AE5BC8C412D4342E5503 |
C673C61284119C7D5D0F08F5BC33077E292C810ED875CAC88525F0A236BEE970 |
8418C23596A0ED261D4BF03B150FAF188116E30A3BE940EC38A5B412B6515B12 |
046C4AEF4D9C0FCA9B54E92978F6306195D26AD90C8CCEDC971878FCE9DE7BEF |
3DFBECB39D4ED3E251D72CA91624663C984D493A03FE847496D1330B72B61B2D |
F004362A32CFC36CADD0F7520B31334C213438823C7437761F824480AC8C1444 |
60FDD18F7E946949891E6C6092D8390A2AD171506B3254EAB8399405B52D81DD |
4061EB32E67F3AA9E76299F00CD87E9D356EC4BEC7714B9A7C1426019E8AAE78 |
E49C7A1516A2D4D7B3AEA7B86A7878E3BE3D70066BFD7D4353539341E8B4233D |
CB7E7A6662646468720A515E96529BD76D1D9566A35228666AF50A96DDD1E355 |
13A5B547CBC88DD64A6F7CE31BEEBEFB1B26CE0A834CFCDBAD0FC71AD0DCC2A7 |
66671B9038C266EB755DD828E475777BB5465661F25E4D8A9B40B2C037BEF18D |
5FF8C217F04BC248FED0CEACC55EDC1EE2CD2937CC32D3E8AA942648DE4F3B0F |
6507F93EEDB4D3FEFDDFFF6F6BEF016E5959DDFFBF7B9F72CFEDF7CE0CD38161 |
1810B02120266804630A26121088A189A022A0A052A409D2BB5190AAA0A2A118 |
51C2DF8098444C548812414CF2A3481B8632334CBFF5F4B3FFDF777FEE5EF3CE |
B94586789E79E639F79C7DF67ECB7A575FDFF5AFD8B6D3716A9255B495FA0920 |
712262491A9414E0A95DD68295D372F3CD378B37E973740D1D3010D8A79B0247 |
08DF0852047F2E3F9775AC5B49877AFAE9A7A32097DF3CD76DE1EED06A0E6B64 |
34F18DE9CB4DD5E4D65EF8F42CEF1BE5312CD188D2020892CAA9E3338E89CC2B |
A5083F7A90FD09B358B870216801986230232290381CD0B3A832216B90F08676 |
53D2452BF0F8E38F3330EB63A32DA07A1CA18ECBC86581DC246BCC908E909638 |
A41BA5AABF8FD0BA81BEDEBE149C8EC6F79CF454A44D1494F9CEE1696A0AD21A |
B44E5E61F141BDDE0C0D0290297D515EC137FB5EB8727489CBD78BCE2481F7DD |
D5BCB4A9A741E0F1B476AC19B9824454CE95A25CB1D1EC70917404EF6D4D92AA |
749AD46EF04231979392558C5A9AD29A5AB3E8723AB4A351C34DD804B927A2A4 |
996C764D8BE1C2D4DA32618C0CD83E0AA370BE59571997593FA6C6A1FC9AA140 |
66AA79C22797344E9CD08EC288EFAC9947094BF986F724D71BBECD0604DF0A78 |
822F894DCF1DA9D2B063D42353A0DB724645036050DA4DF42C30445DD6FD8290 |
86E807DB02B66C8037147E69B9444596A4A06B2603DB596CC334455DF6F9CF7F |
FE820B2ED01BCB7A4A4824404545125A3BD6E92481140BD6516F64F989955C79 |
A5EF2C5AABA40939FE9F0F15A471CBDA7875BCAB2B5FADB8A8D5DB2F49D0BD78 |
9BB94B57BDBA697CAC3A38307F7878A8DE28F7F48AD10F8D97472409EA8DCAC8 |
A854666F024B7190EEDFA8576437C862E8EEEE9412E4D174BD2410ED4A32A755 |
ACF54A8AFC5E2875169E5DF1FFBA4BAEDE1CCE177CEA73A5E273DEF01868A63B |
2CD99108C19CD973D6AD5FE77BBAFA72BB1E00F526AB0F6F7EF39B0F3DF45074 |
CCFFFB2B0CEB9B77C502655150A54C1AC0C1071F2CCB5723110580800F3CC80C |
368A0182B27162372FBDF412E5F2D8B92B56AC60761C128F0EB46A152482678C |
EE3153DEDCD2960DD8C7B0EA0CE23B0AA07AF90985CA96CDC281C43DA2BB61B2 |
C0052053AD12908DBA409FAF5EBD7A8688B19BCAD8B73C71432368CB2E2771DE |
A5AE338BE069005A643D4E6F64583CF1C4134F3DF514C5C0A045514367094260 |
59536B6D29C8DCDF7EE58206D4AC8955FA6847ACFDA4653A6543B563DC0CD38A |
8A85286D7DE5DB1D7BE32C67954D3998BEEF0D9BEA83F0A0B0AFB2B92652E1B1 |
19BC28AC4570BE08D92D5A3DBE432009C63B64E3B7EAB566230D4A6853C7522E |
DF02812EF2A567051F3020B9C8CF623C2D4B46A30923C6A3B5463E2A965D3292 |
D429F3599E4A029F929A46E9C4D7A4873DFAE8A368C156BD8F8D857B87F26F31 |
3E9D1A7DB26CD9B2E5CB97EB73E9E0FA64BFFDF67BE8A18724AA65EABDF0C20B |
CDB409C1273EF1893BEEB883740078749857DA260C52E925865EEFEFEF4DBD70 |
5EA2C912DBB871C8C5F9CD4D11B4983077BFAA2D4E130A012F6254467571000A |
69493EAD0C00035FB46E2B5D4AC313B520B4A02892C10093C7D368082E7A9095 |
CA8686782B68FDE6B2F430D1AA7E2E3E404F4D112D0D70585E874D6014CC6F70 |
16B751922D961E910120FBC7A40EA251C980CE625F7ABD1F43B1A0D1FB9B8C95 |
C79B6E34769D8568B058989B34FA2409CA637A564FAD12FBC5891ABBEEB66CCD |
DA57640D485F913C88E27A9AF838562B57248A2509F205E7B3D462CDDCA7997A |
0357564ED56399A6C4E16DE772656CDDF0AAC1BED2D0B0CCD0114F693E0F2F27 |
228657F4F50D9C7DD61724097DA8CD791946476FEF714A5D4361B5377D41615B |
D3618BBE8117D60959373ACF24EDC0072DDFD16D991B674202FDD74DEFBDB1DA |
45A2D0160647AB354FCB873FFCE11FFFF8C7467C849EF074871C76F20B1AB062 |
2EBBEC3DEF79CF7FFDD77FE941B874920C3198F99E70C20937DC708369C7B07B |
EBBE69496CC830CAFDF4FFA73EF529D92BB42A9C396B9604683CAAA832CD0C08 |
DA9E025F30D08B66D66F0305939CF46DB7DD56DCE4BFFFFBBF758D8C1214F6B0 |
951520F83AA5F867758A30650C1ADAFC4B990D5A31539B45B3760BC71F7FFC4D |
37DD24D2D23561015A32012FBC4595696A51A54DC9D3598BA40707077C0FDE7C |
446023EDC0E1D35A8843E017B29473AB38B323ACE369E875A11C6DB4644C4493 |
25412972F5462A33A258FAD458D3E70EB5FCE97113DD2B7D15717E020FDC355B |
BE263969B47C4A78EC924E59ABB21872B11E56701D63496B936F66E32581B709 |
E2C420C14D790775D9123DE30C89DAA42C130CBD9D2CA0F5014E0220614B2433 |
CF6AD8DC78F22B17D304A99E659434E9A62149E089C110C3B2FEA6496B0297C1 |
F2B02DD9CC3283C384CED00FD6268ADAF4156BA565EECDD0C999A9E31319DB46 |
3F61D0D89091ECB66DADF7B6C0D20858FC6623003E823B1535D38A893EFDE993 |
6FBCF14631B462512BDB48F5F7A68C805623DFDDD9EBE35D8D147CC33B31ABD2 |
5C72D21C92DCA2854B5F7C71DD60DFB6954AA9BF7771D2CA17F2DD3A1E857CD1 |
173B54CBCD66355FF08D5B9B2D6D52ABD1AC1472328A1B1D45C9CC8D29965C8E |
0809A31FAD7827405F579FCF8F6C942BD591726553AD31D47263512CC6E7E369 |
CDC6C4E465A6B49ADAB654394AAA745224466F1463A09E5A208B0D6ACFCC8B1D |
9E6A17B4EE31CE1B7A3FA086B089B94621AA9209A2AF0E3AE8A0EF7DEF7B6870 |
B974C935B4B45833D2A12B163CCD49DE8E8F8D75F7F48CA5EE8E62667EA6AD60 |
7C0D4EBDD698357B70C3FA8DF9421A75ACB7380C40A010AA7559E69C357B425B |
7469C03397F93DA7CB136BE3BC5A9CCB2FBFFCD4534FC5E103DD8BA39D79E699 |
320D4521B036548AE9BC6AD64701F4A4934E3AE99A6BAEA1EC803C39DDE18003 |
0EB8F7DE7B61A62E8DE71B2001FC9D8280E38E3B4E0263A207643A249766CDE2 |
689632A845D66F61D09C5BE0E3D1A1AC88448FBEE28A2B6432EB0E071E78E00F |
7EF08370133FF0810F3CFCF0C37A288FB6DE4158D65DE90B160691201288F549 |
60F02BDD990C6ED69C9B93BC61189C5A07D9438CCA9CCE882BD3EF10787A10F8 |
452978B03FD2625B6926E8C4E6FA6E5C0D875FB86D7F119CE4C0587EA1775988 |
12C7C6BB47AB0B6BC93C17179D077DAFE4927CD2EA8A72DD51BE98C4627BA349 |
7D386A49CE970A12504929713D8562219797D9E0B148138F2DE1A187A27CC5DB |
EF49874B7A5C53FF2F6A0D568AAD8DC978A5598F73F98D8DE82597AC2F1556A5 |
23D18C340BCF10327BCB4DFF6271C25C47F2AD5B19EC8F0BA24190967593363D |
C0748238E843090F0CCB125FCFB968AB5699B913D4D6BE426CE0B0FC78CAF315 |
CFD8596BE60785E9A1B1B5EF8004091D1BAE19C3DA6597DD9E7DF6D94A85BC91 |
2E89ABB1B14A6F4F7FAB9ECFC505EF856C799FB574EEB1B11171F65C21A9D61B |
85A8279FEF9B3DB8A4D5EA6BD64BC57C6FA5DC4C53353CDFEF1FE8ADD5C7CAE5 |
91DEBEAE346A97AFD6CAE3A343DB6EBBE0FF3DFBDB9DB75FAA6B3EF6B18FE9B8 |
6E28AF5F30B8C0434F7BF5A740BB065D3C36BEA15A1F6EB6C69368DC45B21BBC |
4D907A2029B9F492A0E54B60A2CEAEBCCEF6DD77DF9D040DCA5981850B17BEF6 |
DA6B606DEEBDF7DEBFFCE52F5971519EAC04F27C5C867A1865FDE1426FCC8A15 |
2B5843B236F91FD6E095AA89565D13CEFAD4A6914A1559A8A052F5AA5F92EE4A |
C3A3BC781BD05A3281E1A3A5F088A7CF7B37170DCA3B4A9E6407FA3677EC0313 |
5197AD5CB99293C018E0FEC63A2D5F45FB85C89F218B14962461ACFBD0BEC6F4 |
6EEB01676EFA194ECE79E79D77E595575AF1272977A605737477DD75D7DFFDEE |
7730081236A04FAC7B3AB5690BF4060CB8B0CF043C9A78B2B54FB0931002D549 |
C653B8A0557AFBDBDF0EA859947619034184E81CE51D471E79E4430F3D245B01 |
67118FD39571DA9C406AAC9E85241373BFEDB6DB8E39E698934F3EF9F6DB6F17 |
7793ECBCF5D65B9143FA96708B1D3A383B09AFE4296A48B808C842694B1D8EB2 |
F62C8455E6CF1FE8EEEEC4F5AC83E31D5F519262C345E4DE58D32E5EB89E99A9 |
8162EA353C341ED52BC5F1CAE0586D6E2BE94B4DFEA66F41E3C144BBF24511AA |
7E556ED6A58CD4A3B4F55CD37B87BAF31E8AB1DAA8971BFACA5F5FF54EA49C77 |
094F48020F38B120DF5B2BB80D8DB16ABD25DA5E9B442FB86443A9305A99509E |
3492EDB7DF5ED61BBB632E0A978594D84482046F7EF39B9F78E289B02D8C569E |
C407B33E0DB3FD2FFEE22FB47778E1EDB6A6BA85BD68A0A865CB96FDFAD7BFE6 |
2B4CC6050B16186CE564E64B41AF19E5A6F5FF41244192E1D399FF0AA7A2E126 |
858EA019827C6E12FA2FEF0953FB0187E0AE5915E244418AA6445B1CB7855911 |
A7506B5D9981DF512C748E8D97F34EFAF98078AE74556F504B4795DDD0911F1A |
5BBFCDEC793DDD83EBD679C574DE363B27CDCE449662AB873A52916BB143BBD2 |
92351079A1E315DBD5AB57CE9F3B7BC59A17962DDC6160B0EFD1277C1BDEC30E |
3CEC77BF7BEAF1A71FED2BF688FABB7B7CBFBD9191B14A65AC5C196A24E262B5 |
382FDDB89A5623CB28706EC2BECE9924D0533863D2C8B40AF87939F628CE38BE |
51D3D0B235D30F7EF083F7DF7FBFFE04FA58D78006AAFDC095A4CB0E3DF4D007 |
1E7880BE42BCF07E44192E601A5C1A4F3FCF61754AE6B6D256E0626EB1EFF152 |
59B060DEAA557A7AB15CAB9B994935E37C91E3AA558B162F9424FBFEF7BF2FE2 |
C34D51ADD4BA7BBAC646B668D6687133833E8E32BC23EB236FC98B219799818C |
F6DA6BAF471E79C4A5EEEFB4BE69DC650A1A397F2074A22C4F8756A2935CCF5E |
5A349D22B1720EBF195E66D51293C08E818BEDB2CB2E4F6789DEDA8B638F3DF6 |
AEBBEE02E85117EB864CD6DCA9342506CDD150DD8978BB2DD1BEDA96C80C2946 |
45DF445CD8C454704D7CE10B5F209264831721A101E002D67B8C035B01DD5914 |
282A02DE1CC70E094596158373C03060DAE459F89A3777B0ABBBA451A589289D |
A9A7A899A6CF4ED8ACAD2D5FA26D632E76DE532F46C12781D6AAA5A1913995FA |
C228EA8B7C8C20F61D9463D6BF45869BF708C56369C71B29269DB9A2CBC5B209 |
C69A3EB09C8F5DB54560D96B352551488A6437AB5068E563C9D5F196371A64DF |
3DE7DC7097F8450CB7D514DEF39EF7FCE217BFC00642CD62497151C09790B5EF |
7BDFFBC4AC692EC4A650AE61586CE6E2D6DDA45848F14248204BE05D61CBEBB0 |
FB2C3B4BA716CC2FD25BA7A4675D402D274E02CCC13F60F6F9DCB973292261CC |
EC1A7E5D975AF65465F374DE4F777EA79404665B446DFE2C73139D75D659F7DC |
73CF33CF3CC3E9D50F00B2D86E3B1F8714FB2EA5AAA84CCC5247B794D9D875CD |
EA9F53F02D2DEBA9F3D4F362D167331ADB3434EC9149F37D7D3DF35A4977B35E |
1CE8DF26EF16AC5BBB41FB9ACB47AFAE7A699B39FD73E7CD7E71C573A94227B5 |
AB67B0BFF7A9679F78EB2EBBFDE6E9C7767FD3DBEAB5E613CB9F18E8E8E928E5 |
653D2C5ABCA05C1EDDB869BD3E6FB6648988BA2A1203515CF3058CD25AE2A4D9 |
48D216EB698EB60FF3783F9A248121F3A0DD13F72B05BDB442B311AE24F60104 |
8539EB43AB90BD31D51835C1DA8A4D64EFA5B6056A0B960476DF4E3BED244D93 |
72798D649F7DF6F9D9CF7E263691A479B85ACAAEEE6EADBF574944C469C52322 |
21ED029FE6328B7389672513B28748E0EEBBEF2EB3404F39E594536EB9E516CA |
BB7038D27DC108CB3C8946F4535292BEC27E7799454C89721A589B58048DFFE5 |
975F9E5927325EC6B2D3D45B3F913CC066C76FC37B98949E75F4D1477FF39BDF |
B4A019453400C598C5E05275C97A559255C26971A98CC45FA40F3560324F88D8 |
4B15D5FF5A22DD599F68A9316EAC3CD518344597A4A847198EA154484DC49AE1 |
982DAF2752D5499AB26E4831076306BBC20A47309270F8B0C8920DDAB8430E39 |
84198551C77025A542A4E9BCDEB09048C08A92C99E6276E54CEB679B886A84C9 |
8551568936B4A992EF2A267123373236AFEE964987486300DD2ED79452157B10 |
BA287185242A2691FE1F918868F95698FE0EBE6978B39AB4D256EE4E2750ECBE |
969AB64802190A1DB16F7B596F782131E4E217E3E8B9A8592915DC58DDB23FA9 |
9387178536413877CC5924A596945C5E7405A696648814F627E42D1B11B161A7 |
181AB3FB1BBE4B08FCA99FF8A84C4A6C53D2B379F3C342F7DCF4BDF6B6F615CA |
7E728E09F3805461C93FF6F4196CFA5CD01B2AB7659FA8141822BBCEDC97AC23 |
597D0011B3FA24BC6B8229471B4D57AA7F6CAC5AAB357371A1AB38CB27985665 |
8A46A9884ECA9571C98362A7AB546A0B162C5CBF7EB4A77B9B4D43D5AED2EC52 |
476F315AEAB1E1E6CCD35356AD7E79C1C2B9F3E7CF59F1D28BBE70AFE65396D7 |
0CBDB2EB925D56BEFAD2278FFFC4D5D75F3DAB73D6ECD9BE0F5A4FAFAC818EF5 |
EBD7943AA5798D8DD72A3997F8C288B8DA4ACAADA492B89AC7DB8A52D4C434DA |
8A24F09022627C71036009BD27C8899703055F14B970E1C2952B5786AA347680 |
3417D828D95DF825F45E6F24003054E189BA0FEAA7815787E11D0B30844D8138 |
C0DA542A15BDC08FA3AA140DA936D52A4C5FC75A2A994B19907E353E36366FFE |
7C4932DDC4C73C5E5B63740C30326AD169A79D36A524B0DC06CA0228984C66C4 |
FEBCFEFAEB3FF399CF1098D59F0CD5F89D9EAE67DD78E38D447DA7CB4142CD87 |
BFC3A9ADD107F46D506B19285B17D95F784E4C424719CA9B45EAD0B569BAE982 |
ACF31D77DC51DB4D5359DDFFA4934EBAEDB6DB3C9C491AA26F2BF16784DFFAD6 |
B774CF934F3E994E20C45A88F0B769E5E22FA79F7EFAB9E79EBB68D122564394 |
231BC5A08D2C1D80F65221768264219813868066EE35919C668153488F008723 |
3CA796A59ECB5260240AD39E193974C342A148EB0543DD21879D2A87B63410BD |
19DB30DACA175AC5285FAD2C68BA9DA3DC822429BA567747A7F4FD8A4CFCC815 |
73F9529C2F365D2C465FD8DC43ADE51DB14903C4A19CCE61AB9CF898701CA599 |
A6A9E4F08E088FA8EAD33936E68ACB5DB2C2D52B857C575CA42C03CD1A9C0FCD |
B7CDE99164B0D269A2A067E592910F3EF8A0340F2DF889279E78E5955746199E |
A3E195A2E61BB8827E28AAD091E7B84163A4D87354D189AD87A02E40619AB95F |
8B81CAB9ACAAE60F987DAED991A780A1837464A896C6ED0233FA0DD804131101 |
BBCE2E429590D2F4C20B2FC0C52CAD254583F1D75B6D571CE73D904F942BE567 |
75144B69AE6D92253CC8404CC6EB9BF6D87DCF3DDEB1D77DF7FFCBC60DA3CDA4 |
B8CDECC59B368D76C4DBF5F50DB49A11F0BC1D1D059FA81625DA27591BE3E5E1 |
39B3FA376E7AADBF4F96E3BAED976C373CECB536098338A7ADCA972B632FAD7E |
B1949AC0A2F95CBED94AAAB5FA58ADA183544FB3923C79E287D5307DAFD5D84B |
51C90918C792254B70085A4DA009D524EB28897DB0C30E3B8895840909C632DA |
D01DAC22919FA3264B614CF97EB7F17D3C0FD05F4F9AC06ACFB29A75994A281A |
95727987A54B97BFF042871862A5B2FDF64B57BCF8E2DC94538C02A79E7EAEDD |
83FEB082ADFFF50CDE21036E32DF20AEB0E924013C37845841E44816F22B7143 |
715BB8E7742741F7D1B23FF7DC73D655860C397D65713F0BD95996BD610990B9 |
C0B91573D757745DA5C6CD65269D0596F5FEC0030F7CE8A1877419B7357B08D0 |
59C6A955D2F651F563560EAFB6C1A08B7164CCC2B3A23F4BF3A0A4D9A56A178B |
CC8E707FADC0D34F3F2D99F4B5AF7D4DE3C177C49DE9ABCE27A03C199453DB32 |
4E70A2B890A6F34CBC3CE443FA65988F6F19B7C9E6CEE9136DBD4139F579F475 |
D72C76340ABE89E0FC56B2435C98EF5AC566AD2BA513CB6F2EC4FE0169DDD844 |
0157BD5147FBF5ECC9D75CE56A4953EA58C31BB54E9A57D16B654959B497D344 |
9C54EB35C5FC2BADFAFA465387B26FA09F083C34A3A384B906D11653205BE44D |
880AE3825A7DAB9F47C7E727F806A9F908A39E4B972E5DB16205C96044FB30D1 |
900AB8C43977FBEDB7DF4F7EF213767F8608B04133584EB0350AFE8348823FFF |
F33FD76191C00B3B9586FD4B5E4FBA870BFA27B74902EBEEB739143365703954 |
B838FF975E7A790A1723DBB923CDB7F51D2BBB7DEBB168B07756A12036E47DC4 |
8D662D17473DBDDD23639BD272A16D376E1A2E16F4A7348C9C8F9E265DB3676F |
53AFB5AA95A4A7A7977A1FFF94AAB676749BB9B3366E5859EA8CA5E2143BA2E5 |
AF3EBFE376DB25AEC9115DB37675DD55FB3BFB87CBC37D5DBD51DCF43CBC312E |
49D0F0790D133D095C629230967DA0D3EABD0A798F6B86C288528643C0CEBC95 |
59A1516AF0FBEEBBEF4F7FFA53738573A4B9C07419AC3397BA89894D0144835F |
3BCD1EC919BC0C31430A086BF51A2752474B3A4C247214D18B85D52A6060CD9E |
33E7539FFAD425975CA2EBA52ABEFCD2AB6CB95679A2F74BB5DA3F3090CF798D |
95FEDABAED29A79C82628BC23539626CAC075B04540649C79FFFFCE75352126A |
08393C329B34776BA14720043FBE19F5337B87F4DCA38E3A8AA6AF06E06E7A99 |
75DD4B02A04AB2A10E3BECB0BBEFBE9B28AE294ABA068F0ACCDD7A7458FCF9A9 |
A79E620A561E6C6848700D723AADB3B90683E1887987E1A8C5D794F11AB9A0FA |
49CC453B2E9AB9207DE94392DC4466E80D3074973668B4C0A31E24DA0073188A |
B27A66789305C09194C601CD1A98B88F47A603F0CD2B3FDE09908FB22C8F5678 |
A649A08741D9E64CE06FCAC072F9511F59D32173735C243130E8928EC82D8C5D |
218A4BCE37B149F3445BF5C835647F345D3E17CB50F019A31248D81652C9A362 |
2D69549CC74E4AF2A9406A26AEE5D6E75C47DC51AE37D7BAE6DA626EBD6BD66B |
4957941F4F1A74A37459EA8BD659EB8983D10A86CD26A01B0A88205085F93991 |
B2C80303543768072DB26C771186D61674237650E4F1E4934F9A2BB895F627D0 |
8E8749A8FAD5741DA850112CAAC4D1FE03DA04BE074C8A326BE8C518C4A2314D |
1C2209738AA69340D379873454CD4E94B91981CE72095C069766B84B1C5DF45F |
74DBEE6ECD7C4C74D6DDDD3B365689A37C311EE8EEEAD1EF6AB5467ACF86FE49 |
5B8FF3E4AD77FAA4E4A6D4F2AE91E16AE471229AFAB3BF6F4E67A9AF5A91242F |
C10BD6AE8C172E9ABF6AF54B73E7F48C95D7572BC3DD3DC5BEFEAEA1E135E6E8 |
B49646BE93B89701D57ABD2C31D06C79D7908B1A3EE339E7F00E510D97D6D045 |
2986F6661C7373D4480DC1A247FB08AB93F4AD3533A28A2FCC1D0E51A0C93785 |
3B64E56C895593FA0AE7B4FC3DCA108D2602121EFC3DD2DF310052DA5A6D41B3 |
59EA9C0827C8C81A9C25B9B8E1DAAF7E55FC5DA75EB261FDBA7585540DF18A4F |
868E8BB6CED88CE9CC9045EA322C7B64039D58A6A378147FAD183939B8C825EA |
F4A1619D9F73CE39575F7D358E97E94E024017F81E593AEC5373F173595BB771 |
97E98086C792A498A6D697559F03F669C69CB17E00098C9B603699DCC2D1C7FE |
6AFA5FFCE217AFB8E20AF0623506A05A74812E63C590520C2FC4AFE6DB507302 |
C6E3EFFFFEEF3FF7B9CFF1087E4558926F0D05FDAEBBEE3AF2C8232D66A36F45 |
DB0099B9ACAE6AB2AE9632DF5CE211E126747DFD6F4145AB0F0DF3D9B9D800DD |
D272217FFCE7CEE9DF50AED4AB320DE2DE241970CD3EF1B5BC5BD270BDB11B28 |
76E65BAE5CAB0CBB4494D4CCB942D3878BF3399F2114F9D6F662424E47BA2B2A |
55937AD979C48C56DE5B1E9A9036F2E59C2B4679D18A0CD5F51DA9A256770371 |
E76852BFFCF2CBAFBCF24A6DA2717F48A22D986F84D1E6CD43E5A23F87657F5A |
E40044077DDB4651E67BDC7FFFFD7FF8C31FD2F3CEF2F1C31DA724730675DBCC |
65978654018699AE0E666B5F6D2ABF79F376DE79E7952B578A722072B67B665B |
7C4A9B005AD5024661DA2CC5F72EABC30476C232D333C6C7C8B034FDD18EBC42 |
90932428163AF2F9928C458D2A499AB4D22E4A6D6D16F2717F2EEAF29FBBBA2C |
C54A75A4BBC7C76CFD81C915CBE38DCE8E595D9D83FBFCF1BEBF79EC899757BD |
FAE69DDFBA62C5F242476B7076C7CAD5CF365BE363D58D051F252AF8B276DF10 |
ABC325393F115F25264E3654AD6D12AD8AC22D6E6363C6A169FEE529173A445A |
E605DE4314749706CF40D4D6CCFAA342041EC1226B506CD46977CEB62F679179 |
E38929A0F1E64E2F6164AC23AD2FF0436A343B8A69E64CB5D659EA18AD54CD99 |
6E0CA295F54299FC9A4E47B07C3B1A1870085199354796822877D886D7CA91F0 |
8AE252430482B5A29FEB3090F5A1FBB8D4E703C22B963B286F2039EB5652EE3E |
F2918F5C73CD35567D6635CC6D2C604ACAB6FA47D94CD2C72DE5F4F5BF001095 |
86A551E1D3C78D009BA0460C46CF34C1FE94C038FBECB3C31EA86165102B79C8 |
2187DC77DF7D880AB3B9C3FF43DC7C919F16072BD3C2986C1FB46779B751862F |
6D7E274B3442DE600FA1D871FFB0312D7078704CEBAA48E21C8A912E86A92126 |
FF34CE75B59A03690B3397D6180FF9FF759E5B8DA6EB2FC68D5AAB90F726C968 |
C3CDEDEF9837D45989EBA3716DDCD52B13F1615776B9A4BFFF95A10D23698EA9 |
267CE2A73FF58D5BBE59AFD506670D5066C1D2852964686C6101541846B66462 |
73F7B5613B8788B6C60A3835286A53D283A10A1A86C4B1C71EFB96B7BCE5A493 |
4E223F8D94EEB62A8436661244555F6F27ABAD7DE1E90561DB380F386906D2E7 |
B2EC150C6553645D9635670D211C4154565FBF21AA661D53B9971519649D7AD8 |
B329244147B194CB75341B138088491A406ABA726769A0981F8C922E0F03978B |
EA8DB1F1F2D07065636FC997E9575BD5F7FEF17EBFFAE56335976CBBCD0EABD7 |
AE9D3B6BE1D0A69146AB3138D0BB6AD38B7DA58214F952673E4D396D4A72944A |
5DB9581AB1AF83F72EFE64BC52DB58AE6E485C0549A0F14BBF23B78C60519B93 |
310AD007AD22898324A640E4E0F0C30FBFF3CE3B7599819CD8E10CFBBAF02B0C |
1A9A0CB755EA65F541131B439B6CC3B7B06676763DAB5D8CA3F172A5BBCB67E8 |
160BF95A7D82809A59C3234B257699CE381DC54CF73975E7744D70A9C33D4CD5 |
A7FCFDA5975E0A55333403A42079DC7CCEC9115B97591D6A6D5A375194668AC5 |
6D6874FA53D7C046F18DE857D61998BBCD9C8D876036AE015EF40C91BDE95E18 |
DD9FFCE427AFBDF65ADEE36EFAD33FFD53E9E9F0506B506E95E13FF8C10F0E3D |
F4500B1D013E6A74C5D921E71D45C46D29032CC19F8DD3B9FBC0073EF0DDEF7E |
F7C20B2F3CFFFCF343900C6325CDA01769B8A7C6EF0CD618E406AA2309AA1B27 |
D28E9F7EFAE952C0A1584941E93A94F8251936B8CB2C456CA9B7E92845F19CD8 |
F53BDFBEB20CE084B4B15663FBAEBEA45EABD42B4517F576F6AC2C8F2CEEEDAB |
949BB5A85E7535EF13926A96B88D497E248E56B57CF3B37A211E6AD4AB4DB778 |
DB6D5F79E9D5B45479B38946CB0744725875612116F04858044417A695A6A037 |
10309516DA35309CE17DA62C5BA1D60C7E7F0E94A5125155804B59142B9170DD |
75D7511808558429F861E5F65675B7DDDA9781D348F0535EAE532C5E67D01761 |
48CCC60330A25DE0D2081C80779B6D2E105CC5040D878B468FE61D0294663A49 |
50887AC5A0F3B90EAD83C778481A38885A51ADBF6F6EEC7AEBD5BC4F192A7A10 |
A16AB5DCD1D9DAB8717D3519CFBBB8E16A83BD83CB76DCF9D1DF3EBA78FEE24D |
1B470606E68C0C8FA79E4E1F00A827E50573178C8D966BB546DE3BB73B7D65CB |
442E50AB5A1B1D2BAF69241E784EB4E1BC662185D1599AB02586869038480253 |
C3AD79AF2D1CDC5F6F76D96597175E78019C7A8207F81C7573EA2D2C55145668 |
9C3DB46DF153111244A7FBCE77BE73C4114710E945B3B014348F2AD5D7FBDA9A |
B50BE6CFC300943C906550ADD593AC7192C1345A19EA56519225DBDD72CB2D1F |
FDE8475D00438B3A4C36116C0ED874119005BDAD0D1991528C623CB3FA95A853 |
B444C6C10D37DC70CA29A7B0E0BA156E2B5B6A987ED83BDA6588F3E832D34932 |
F6D44019B9D51FFDD11F3DF8E0835B7BA84C0DC4DA336076BC6A9AA9B9DAACB6 |
40BB2F367AD555571D7FFCF1A66184AE4217000BDB8287CA23516E93A64C592B |
40031336B4CD886CCBF2725B16CA4172E2563041538D77DB6DB7279F7C926C5D |
D0B3F546548AE6A8B90071A30180DECC528057AC6B066AB55971343F9FEF4F92 |
42DD0399D63D2A75AEE462A9035DC58ED76AE3DBE73B652078CD2F8ACA1DB2FA |
1B7A9B823344E349E1B5C46D70CD55CEF7E01C6DF94832AF42BE23D7728B962C |
A65E2F34AAD28AA509ACEFA54B97EEB5D75E92CA560562C0CE2C9AED8EF5FBB5 |
9D32E79BD19B599C339C17931656EF12FE5C03239E4F9A49D8150E0D2904C0E0 |
86A42A31A9E9BCAF5BFBD2200F38E000ED2C3130B7655F19CA53183F69D3C603 |
0DC035C97A63F0F328B7651FDA3695CABC2266164C2B09E2EE524757215FF292 |
C0FB15EAFE5FAB592CC5A58EFE46ADA3D5E8E8EA1CD4F67BD74A3E1A1E79AD5A |
1BCBE55DB1233AF8900FDEF5DDEF946B6383FDFD62EBDB2EDEE1D557D6542B8D |
3DF6D85B7429762CC93A3A52F145B951219F93859810A5F181BEEAC6B1F2A691 |
D17592046250920428E062B69AFFB265CB805D835F840D84DB760BE477CE9E91 |
8BDE2C5AB4481C4D2ADB030F3CC05A9B82660AE93DF7DCF3B77FFBB7F8D3709B |
D83136B3C0BC31B459A75616B3374CEB7659222FDE7F7A6D16F23A83F55983DE |
7747A7F82443A26F9BC5E4D7CC35C336772DE6673EF3998B2FBE581FBEFBDDEF |
7EF8E18743C2D0C4016893DA15F2A610CFCE65C976F408B3C3137670B4F3095D |
857AA8CBC0B3A8D4259FC45C22338C9F7452DDC73707CEDC9BAFFF6560674802 |
52FEA1047C08CC4EC3C0AC11C99D7AEAA9D2DC119C612A301C04E30C2279D39B |
DE44450EAF36378251055CFB84134EB8F5D65B1127932501E61A72DAD012D17F |
F1E32124CE38E30C895EC06E2D330A996AC0E3D6E7043AB7684A92354D8CB216 |
BBBE45CFF070B70455CECDD27D9ABE32C0AB602ECEF717D60E55177517936A4D |
DB59A927833DA5A1D14A5741E680C7A8CBA7FF0DB9E825D77CCDB5EA395F7186 |
61DBD9DB551E199FD53F581ED54CBC29604624C11EA426D6B35138DBA1F32886 |
60A9711AB9F9C4449F70B09D76DAE9F9E79FE7266C01478C58543C7D0B58A361 |
13DBE4AA9106425D115D94257EACED57D85CC4CC7AA23586A3672AFC1FAAE22C |
2CB5D39FA44E697D706958811B179BF5CF8165CC18E83AD75A4FAFE287F1434B |
4AA58F8A141F2A9E107D6EC229C64CDA25413E1237E92E16BA5ACD449A7B2A06 |
3C332D945CAB998F5ADD9DA559A5A2ACBF421C79A3A9D11AABD7ABE5CA489CAB |
AF1B7E75DE9C818D9BD648CDC8E56B6363D5D9B3E6AEDF3012BB8EB7BFED1DCF |
FCEE590F9950E8893CEE53673ED7993AA044C705DFE2351A1B195D3F34BCA6DE |
1C4E1187E2B4EB930F54885CF6DE7BEF7FFBB77F03C225646D930F6794622B69 |
112DF00B8E26FC4EA4405A9B28407C017B53FF4BE1123B20EF1380493BBA4986 |
DF676C2BCC35E41A9285DBFC487CD56A36777FFBEEBFFD6F3F00E4414F77CFE8 |
D8682E3320FE2092208C64BA2D6B6E6D415C869A4B63EEB62C6678E8E73FFFF9 |
0B2FBC10BFBF560F441D931061EA2DE51A8C99FEDA5A70EC1EC0E910AE96C633 |
B3EE46DA2B142FA9BFFFFEFB8B0F6ED58932660AC09C2943C48DF0A15B62928C |
80B3CF3E9BB1019967796871D086D765A950EF7AD7BB1E79E4912977C772F66C |
B589A6584F059628CCF4C8051DD5DBC23F5653CDE14DD2B6E42E350874046EBB |
ED36E06C35AA1D76D8418A246571204F18B033AC419FB3591381F414D2A4CBB9 |
7EB1456D65EC8B0362DFB9AC352BE74A0537BBA7EFB575C39D69D3020DB3A319 |
49A45453D0949ACBAF73F10A575FEFE9D7A5C0D7CEA727353C6EB158482197EB |
19E8D7C9D2F034CEFBEEBB2FC4D5102D01938EE3C877A79A54A462AD93901997 |
5F7EB936C86531182DC81E7BECF19BDFFC064909980AC1AAE97AFF910A21CAA4 |
F6DBCE9711B3B90AD00CF02B581103044040C2A009A1EDB42C773BB2A4FE502F |
F35011BED223C8D780DB1010B2D387998B2E8BD72BECB01DB9CCC66432C491F4 |
BF0E955650869BB926D11D3C1CB47F4D96041DD22C5349E0730A53319036EC2E |
B4AAB5566771A0BB7356AB2931502AE47DDE95B6F695575F59B468FE9AB52B9B |
2D19E13A6CD5CE8E42AE507DEF9FECF7E0833F7549BEBBBB6FD3A6E139B3E70E |
0F8F7696FA9A8D2869160BF9AEA20F48E41ACD8A6449BE581B2F6F2A5737F920 |
411E2749EC92B856F74BAF6D5BBEDC43F4803D69819430426007320CAC85FC0B |
6544FAA66EA8BD17D7BBEEBAEB885C59E6D977BFFBDDC30F3FDC6500962E9004 |
E6CACF0EADE73569D1FCC674C937A37D584647CA80FADFF7BEF7E96CB03B26E4 |
014F7593BC43D3D1CA749CD43259AD4120048D6681E50B7C34A2C24247A65585 |
F131FAD403D1E1DC845FEEAB5FFDEAC9279FCC2250D6A00FCF3AEBACEBAFBF5E |
8B2C0DCE82F9C61CAD54D88ED37453B3220697A25752F0F1063A0B6997537493 |
D5F45720EE4A6529656BFBEEBBEF638F3DA6F5973C80E3500FA167196F42C980 |
1784D86740514DF95CCBE520DE4B31B3F5724802B46A784DA878BA20DE60C04D |
1C6CAB8BA4D52DABC787A62402CA4DA3660BEF6BD6C71D779C6486C4E15FFFF5 |
5F6BCA5A135F643B36DE6AD472E2DA1206B9B83797EF6825AED99A9D34E7964A |
A3958A18EA22E71B5B826E2CB361CC35475DB3E6E2AACB6B875647CD6ACEFFC4 |
A55CD827E7D57D3EDEE8C848C1F72074B03022D5946AEA3EE85BA40059770D4D |
81844E1297E1CE48623C456F79CB5BC46AB547B67D12159865862F446670880A |
33796BF0DD61B352696C029297085E77438D4B7100BBB008098385B943F48A08 |
23495B459FD3BD3032F0C7EAFE94B89F79E6995FFFFAD7391774DF93361FF688 |
B6E8A6F50EC1DCC9A57528136B44E60037D57B493CE05C2C0293A92A537B8790 |
049A75AB1967177B1C8828D7ACD4EABD5DB3A3A4345AAE6E33B060606070F5EA |
3549B3249D5DCF5DBB6E75AB559BBD4DCFF0C85A9908B5E6A6EEAEEED1F1D1CE |
8ECE72D5635F0FF4CAB4A9150B9D91D3CD0BAEA50775797E5A1F1F19198E0BE5 |
6A6D54B2245F68E6F2E4CCE56476F4F4960C371FEB38E4296184C038B5F97CB4 |
645A13FD9CEE2261192A258EE090803A60186164E6E243DC9CA2974902F1CFEC |
29226E7F6EAFBDF6DAE38F3F3E5BCF0912341125614AC0164D10F190F6551E9E |
3262FC06E204566526C641A70BA00E2EBBECB273CE39477F36B36E5CC4F45AD6 |
FD3C5B4333815D263899B8E130C3CEC21C7F2625EA2261092EC051DF6BAFBD1E |
7DF4511B21252C3364C5595C01170DB18DAD8D18C352C104742997B4266EBAA1 |
066CDDE70D1F14CB89D5B37475DBA33016156D89091CEE91D58BDA27D25AE8C7 |
D02609DC960828A1FA625B8F5963C57A96E26C8E72A21DD26390FD58F9B680B8 |
A4C45245D8A64B4E80A3E4F2F5B48AD8FBB27271A70C7AF18456B25D67CFF8D8 |
68DDD5170DCE1B1D1B19AE8D978AA572AD224565344AC6A2A42643B615355D54 |
16AF8F5A2E3B7C6953CE64A07F6078D41776895BD13FCBD402B3503500CD1748 |
7D922CB41D279E78E2CD37DFBCCF3EFB3CFCF0C3DCD0B0701078705EFCB4B0B5 |
10051A3DC6AAF926BF74013845669619F804F62E0D368E39E698AF7DED6B56EC |
4264D81A1DC3A67D6A6614117DD1B738F7FE5028F76C96CE14223FC5A3F5533B |
F2C823EFBCF34EAC5840C0E844A291A36069ADA8BA2733F00B5FF8C2EDB7DFFE |
D4534F4586A567184C56616FC0C516344EE91EDA6D9704B9285FEA90B6DED96A |
BAB42F920F1A7B2746325E6F24FD3DB3CAE38D5ACBEDBC64D7254B963EFFFCF2 |
7C346BCD9A75B09859B3FA9E79E17FB75D3CFFE5579647B9B2B7AB929A04C0D8 |
F8488A6FAA43D8531EAFF5F40CE4E3DE6AD957098821BBA851AE8CE68BD57AA3 |
D24ACA71AE9EB87AEA1B4D240964315862B28574984B1827B0956DA5B07C5A07 |
CB2E47E3E0E796B0D5F64334053B6F2EB3FADB22C6E9272E6DEFEC7089B854F3 |
D5566DD8B009B1147AAEA88B261B9AB1595BBB4A657CCA2CD2AD95045186CECF |
D687D00BFA102BC4657E523CD76DC8DBCC919158176FDC5FC69BCCCCD23110CD |
C978D72A11CE32EEC618243C4E38E1846BAEB9868A4DCAA966A8EDD4B30E3EF8 |
E07FF9977FD17E89955802FED6AE034F4FD28E8362C4E66091E5A7D1A276B1F5 |
FA8A0A2F5233A32D3B4E9BD2678C23EC52192E3B6FCCA14C362D7FA2A685DEA1 |
D001683A41283FAC5E8491187A3CD46B90FD5AD8CF7EF6B396DA6439F86E5274 |
D06C626CB282076D112BCF25291E413E896413F83A81FEBEE1A1A1DEEE9E6F7C |
E3960F1FF677A5DECECA78D975E4BBCB8DF138CDE710CF9719D0F43D75524E91 |
9E85A415BB388A93BAAF2DF29DD764578B783424AD153D7B41CF354C37ABDB00 |
EE45A362553105105729F681AF189534954EF3A52F7D49933589487A0CCD6D7E |
6F3F703DEB88238EB8F7DE7B6970C6B9B02050C888796288E069AF5077B4FED8 |
49D65F7AABE873BA17CE55B066ED8D0B5AB301342295EEBAEBAED39AB0CB80E6 |
CAF8BBE5965BE02AD661AD7D398CD361E0180E3BDFFA3054C56BFAC5622C2B80 |
A66092C191CB759706378D0C2D9CB7B8516FADD9B0BAA7B32B8A5B1E9E28CA61 |
DBFAF84FA55ACCF56CBB78C9EA55EB0AF16CD14A47B1A7AFD747F94A3E9D3ADE |
75B75D7EF9CB5F8AB7AC1B7D35F63DF2EA122B1D62F68DEA9CC159F95CE7F868 |
B2EB2E6F7BE4B78F75E58A3B2CDDEEA0833EF8D51BCF9F357B60D5AA57655F4A |
72E878767615ABD55AABE90F0F91250B4586FB84A14A58129E9504782C0858EA |
878D3B5855BAA17A455BF61AC30B49D9141F8A3D891C4F3DF554590056016FA8 |
CB903EC827D89556EB084B0DE11243003B2ABC7492F91C3C00CCC024EB041B16 |
FAB6D9432E533361E561026BB425C22D3A3BF7C47F8AE2EFB21669B4496965AF |
304326CC2C02398EFBC02809AEA6B270C30C3845D3BDA2B415E801071CF0E083 |
0F6AFA006523A8F4388D0A2B875585A9192A99A882A5B3DA5DCEA7B5B6875C69 |
ED8433DD0C0217C47BC3FA2CB4AD3016159671C2E5256C4839D3328AE6716761 |
B94FCEED236A42B09D0A76503450DB99E90CEBC652E3A683F2353BDDCDEC36A4 |
17DB61592121A9C4D383DDBB2D23F671D0A911DF9A059C58A209DC943462C978 |
664EE59CE1455EAC0BE0A7B0952DFBC0BA3F121F3EFCF0C3EFB9E71E5D2CFE48 |
967088ED3AE5BAE105E13210EE702BE97156824AD4C1051962040EA927479CBB |
AC358D198EADA0E50E8E2F3AA35831CDEB7F596641A88A8517A0D15AB08DC40A |
7D62021287873357F9E40DB6EF42E45E4487DF75DFC25AE415E50B929612ED5E |
12A45D8BE39D96EE3C3434B26EFDBADE9EDE4A65ACDA28177CE1A108C26F49A9 |
D4353252965ADC59E8ABD46B5DF9795ABDFEBE6DBABBFA366E1C4AE9A6B1C79E |
EF78E4918775E76287EF6F2CAD5F0FAF376A6958B26BC9F63BAD7871D59AD736 |
7677F57676C9DC8A97BFF2ACF87F8AC231AA1BD41BBEB24C3FAFD59A71949300 |
7CC73BDE418B2E5B3E92BD58F756D6DA224488C38EB35C3D4335B0450FD7CA6A |
5675CC442E56C9C236583AB358FFF3CF3FDF069942EABAE80CA663F816E4A1C3 |
1A40A9B41F220688597113ABD47759160D30AB764360998D5387839FB2828935 |
31445F7341B8344446679568A26F6287C518DACAE838901ECE3E0364FDBBBFFB |
BBEF7FFFFB760843EF1C4AEED632855CD63B13C83926AB9B2020AFBEFAEAF3CE |
3B4F6B45D2A4955BCB2E16AF7FD7BBDEF59FFFF99F1A39329BA56E136396E664 |
C5D8E64E41C2594830CEDA856BD3F5D00B2EB8C01087083BE3FDD74EFDEFFFFE |
2FAAD5873EF4A1471E7964C58A152CBE0875FBEDB77FE69967D6AC5943FA87D6 |
79D1A24534E7D143F513DD1332B0A6A43347D419B9A5545ACD9DB929AC3C1B72 |
A580C365186A21AB9DF2FE515036E532C7A615E8B2EF2C0BBDDAB15AA03A082F |
14AEAFFF658A1A8C9EB837C0AE3A837AA2F69A0711167EDBDBDEF63FFFF33FA1 |
926E891B53DE1F03ABAD6E834ED4DB6DB7DDFBDFFFFEBBEEBA0B8B997225B8AA |
4902432B71291E49887AE2B2F644803F1E78E081F7DD771FE53B6F00A728C9B0 |
D15CC6B40D10C8A5813A4AA3E112E42F98E6619E6D174407A795046649F1BFB9 |
DA25095A89883B2A147312EDCD86078E485AD165975C75F5557F3F3E5E2E164B |
23A343E2B8B5E6784F57D7A878B4F39EF162A1E4AD895AD24CE29ECEBEF172B2 |
DDA225AFBEBA66A06F7621AF81D650D02A9571B1F279F37418D6556B633DBD9D |
1B37ADD5CF67CFE99365393E5EEB2CF5AE58B9FC4B575C71FA599F5D387FEEAA |
D52FEAFE9DA552B9322631A02BBDF3B5A9716E16956DFD765CE68204585FAC21 |
6CDB0235B36A52E240C3076F07519F4AB592B51E0CBD4FE63C81CA710485B63C |
0131733A9922008215FEFA8F7DEC63DFFDEE77A5B74A78D8A99E376F1E190BA6 |
45927BA7A7DC7FFFFD071D7490DE876073E87A20F14E197735CFA965BFD949D6 |
8792A08F3FFE38DE4F0C0E8D7CEFBDF77EECB1C7ACF1611494B986B70D6FA8D1 |
EAA858FA9A1644D76BCC3A54C71C73CC57BEF2152BCADBAA63E0B6ECE5841217 |
A508F53E057E60402C75B7DD76D38A69A9B517D621009F27228DA818E16E2D3B |
DC16DEDDCA5A8E4033E63F313DCB0053ED2C85E520FC044D9940285B239E4E72 |
B739E82D2B01A68CF580FA0F27456DB4CE97C82A2B4E9E81832401BA00425717 |
8B8C759F952B57D27CE990430EB9E1861BC8918B325C1AF2DF5E4F9D8A85B518 |
150CC5A82E5C730B9FD0AD01171016F61BAB8389B6EC5B69B177F0578873D889 |
2318865D85EB69060984B5A46F0938EB7F825EEC38A94AF40532F729112FA2AF |
BA9EBAAB24002B2496A0976E88BE02B20B3D4E6696B833AC035484B0C1930679 |
6B7822EC77BEF39D4F3EF9A4E64BB127F808F8308F3CF2C83BEEB843176316FC |
1E9BA0954142B637A24AF289133774C50E2F572509B4C8B20CF271B1A7A76F6C |
54F49AABD62BBAA6B7BB73646CD845CD74513CF88F844447B16B6CB43A67CEDC |
35EB36F6750F0C8F8D75C4BDF3E72DD26D9BCD543375858E8ECEAE4EDF72A452 |
2D77754BD28EC7B9D6F0D82BBAFF86A10D85B83067CEACD7D6BC2AD9B071A357 |
D06AF55A7F7F6F8A2FAFE347A77217FA529096508941EBE80D986B0F3DF41016 |
B719B31C693108AD947437DD1049400814975F2EEB2C0A5B812CC28C5B97E511 |
592CA10D2ECA8EBD59FA544BEA889A0C301E6469EF6D9F138045B13DF3CC3341 |
5C30FF0F2498642F17E8ECE6DC844693AC09AA213FC35BD17CF93981A656065F |
6A2E9724788594AAD538F1C4136FB9E51656CC6DE97E71994F93F579038E0294 |
713C033AAB66F67274E93D67AD0D193066BE316ECE0F8013E6E4316DD73009E2 |
AC65104114FC452E9340047EF13C706A7822CC42D24E86022EFBB6C6F76C2BC0 |
4DC41BF55B0D5B5AA7FED41448FAD665CC6BF7DD7727AD39CA10B96766D32E13 |
4BE684E438E84F0A0009AE72BA411980575A3DF3EFE550A1F380424BFD848633 |
F068AC46EBBF76F1C5179F7BEEB92077F1DCADDD77F32E5AEED6C2850B2FBCF0 |
C2E38E3B8E35D7829F74D249F88848F3C57EC5E183277686DE7C040BADC4E7D0 |
430F952D6B6AF144AD4F1AFA32BF319A81791A5CD01DD3D40263D3BA9260062E |
2C34D419FA75CFB0BF3081364C0E0BBCC3B22C50872B1B7168D591E1264E2B09 |
2C9F2FC4FDF00E815A229B40C75F92C0AB0F4D9D9362B391F474F58C8E8FCF1A |
98333C34DA486A83FDFD1B87D6A548709E500A45AD82CF29EEEF1F1C1A1A957D |
A07FBABEC78398D6251E5ACD7CA559DF71DB9D46865A7DBD83E5B49CD0AB33B9 |
664F6F616C7CA3CBAFA5A6A6B3AB63EDFAD55D9DC5F1F288543A6F828C0CA129 |
A795E2AD6A750233B93B7D91C61766C1BB80B122EDACDEDD657932540CA0BF8B |
D7BFF7BDEFFDD5AF7E25E98A91AB55D66DC3DC535A7159E64033E8A86EF0B994 |
F60173AD9F13B0353FB5D561F12B33AECD3785BF1E17B61E217AD5C0C6D217BF |
62A76C8F3578129CA794042ECB50B43824AA8A16E1AD6F7DEBD1471F7DEAA9A7 |
1ACFC2EC0DD1B6ED3D1E4F5C2BA183458307C680A25997A65E686058639C13A3 |
E3371049238152EC1295D6F68229E0AE254A1405F516D0094926566C699690E9 |
8F56A865A2D7FAEB86765E2809AC509CDA7D332EC16A254C42C84D7700413334 |
16ADA049BBA6CB60FDA87BF8F7C8B3B2840ECE663C63DF5A7A0E1A396935FEEA |
AFFEEA9E7BEEE1D1181C5A90C30E3BECA69B6E32D0B7FFA32410E76579C3802D |
C637BE14764A3FA1DC693AFC9F19F6DD64AA9E489A007612D11797A9472E8BDE |
9305676DABF5619CB68B98F2FE26695C605BC759E70FD904D2D2AC0E5FF3322D |
012D4A84F7C20B2F109017B57FE8431FFAA77FFA276BF14D5504F737BB70E60A |
CAE95E0C0CD50A1FB2C5C3DA1C5FB011AEA7FA876C5D6681793453C43874A599 |
17CCE2049A7E2A091A690F8062DA07C6CDDB66DEA64DC3D57A5D7A7533A9C751 |
0AF9D06CA44C2D5FF5ED185D6F4F7FA5DCA8A6779E337BCEBAF5EBE8B1D172D1 |
D2EDDEB472E5EAA459EAEF9B3332D4E8EE9AE5DD7F95E1BE81DCA6A1B55161C3 |
C8D848970F3B8FCA309935BB7FFDFAB5713CC1D353787A9D6A1700AF6FF6E9C7 |
194283A57918C3B2362956D8096B336A0801060C83C105DDC138AE16D4856EAC |
D3BD6D068B2952A0DAE5B1C71EA38C9607C18330D6C09B25658D7D225101C44D |
5475941A4E3BCA08DE121EAAA3A84941166CFF0CDE21537FA20CE98C0B202F14 |
67124C25084579F409007A17743397412984D40C0493310222E7125D9FFBDCE7 |
4E3FFD74DD87589926A559EBCAADE508515A1BA59BE84132D8CDCF60414B0DFB |
E4934FBEF6DA6BA98D00C5364C27437B32005AF3257272906A614D83754343AB |
08CB2DAD7B8F2D2CE958707048E88C33CED06042703DB23C5DD039804C15988E |
E6256166D627F0449A17C7D052B3A693A006C9E9B2980D62CF9A628A6E49DF74 |
9979FA07F10E69AFA962231B5B9F5B7340607DF589762DF4646ED5BE5B7829F4 |
0E8510B0BAF32BAFBCA29173B4A971A1E08B4A02EB6534DD0BD31F9726BA8E15 |
A9988A0DFD6885A9C06560BAF9BEFBEEFB1FFFF11F781DC064C47D04B9F239DD |
056CE92CDD6EABD601F703C6849D598B075026C2F8B5E320E210E822B3488F93 |
7176C105175861CAB49280DDC5C4B0F3ECD722576A3435EE56A1187B6C518FEB |
E025C1C5175D74D18517D79BCDAE52D7B8EF77EF6BC04A9DF9A1E171DFC82817 |
953A8B95724DA7A6B7B77F7464BC56AF6DBBEDA2975FF62DE0F549E4F27FF581 |
83EEF9C1FF17C5AD38EA8C5ABDA5E2A0D7CDEBC34934DA4ACA1DA5B87FA0F785 |
E5CF69D8F3E66D634722CE79E5D41B161D05AC016660AE0094B8D0CFCB1C0D1B |
C042C1E48A99C3D7C04F5CE0EB64E14C5B1447DB73CF3D7562A50471E6930CB0 |
D332FFA2ACCDA11D5A32BBD11F69AA4E6B4C5415D3FBE0411CE9308CCCD87492 |
713DEB3E21108A41A66843BEF0852F589A699B3C98928368A8A266C81735D662 |
BC96D7E8B2A88625F9B94938771834A863B85C5D2653697819363F09B1D5B6EA |
2498B20623B06E360C555B03AF310D9A011868041EDBB00260321436FA9A190D |
E0DC5106654B0D7B2567E9BCF3CEBBF0C20B91D3A88D7887496F65FDE9BD8EA3 |
1F160FD958665A3806462B6129DE7AC925979C75D6593BEFBCF333CF3C63888A |
33F8BB2959B090064D345D8A0E1B7601A250CEE204FFC788B125B420A7CD4AFB |
C4273E71DB6DB79181469A0382706B43444900B884DD2FD5C79C212EE8CF9C4B |
3B869A90F0585EB36611F983754C797F2BAAC0CBF7E52F7FF9CC33CFC472A51B |
92C132BACC0FE9B244320D83A210BDD1361162C482970274D555570104FB9EF7 |
BC47D2423FD183305EDF9877C8740E9036CC2FD2A65499CC08731A0977E3EB66 |
13678A13E8EAFDF6DBEF81071E40EAE218495AB97AA3EAD1F08BA2F5B4883C95 |
0411485EFE31B1F798E6E34A7534F2B8E91D694FA5566F6FF7C848EAC61DD846 |
AC40AAD5F0C8A6C1C1DE4A755C7C5CBFEA2CF5942BF542B15CAFE53B8BDBB856 |
77CAE86BA395358383A556B370C8211FFAF6B76FF36D0D62525F52401EDF6F40 |
F678A5BFAF777878441B44D20BEE144B56831DA01A901E60E998A147CFCE80A5 |
C1415596CA69DFDACE71560D1197930057D2A2B532CC4E2B3D255F280A0A475D |
86510A500C014C97A5F1B17912E0975E7A29EF930C92C504C3443FCBD4560544 |
884E8D679F7DF665975DE6A6CA22B5BCF5380082B7C2C5D01FC872692577DB6D |
B7A79E7ACA56D20E809BCA26901CD229D23961CCE43B611173FF7CD64D1A79B3 |
B592C080DEB81BC5962E8B7F98CB8EE47A97F9B810BD5623C28253B6CADC116F |
28E996686B2898D2A1B411A10A1F6505775106286264C3CAD8B1846B9817880B |
4C17614F71FA9172861F89380A7FBAACD78D21C4CC6013C0822DCEECB246BE38 |
BEF0D493D400FE6ED80BC168F20D6491E22CB281F12DE190B06DB8CB9480ADDD |
7776306CBAE232931ABB938582A8AC4D88097B764167B62DE732E4B096FDEC02 |
AF9D0BB2A269883401E199F2166B344D169C05693465F23BAC8BB20B305DC2F6 |
186F6C1DA007291F1233871F7EF83FFCC33F18BD19A4A0CB7CE3D68924AC3D34 |
1614D959B29204AC665EBE41EEDAB596098390775BC61B8D7ACC520B436A9C2E |
2D9F4106327F6A3891A8265A3506DCCA2CBA3E174FD4B66101B82D7BB0598EA3 |
95F0585E8D3ED14DF42B1E6A13365F10BA8984DCFEFBEFCF42589101AE0F8393 |
0D750D721220BBBC4BE1A846475ADE4ECA77F7F69089689CD10589E72EA82442 |
D90F0B4F5813940ECB5C9E7CF0A200B502EA413787A44E3EF964207760E230C1 |
638F3DF6EB5FFF3A77E027D69C8B28023249CAA6AC07B355591C2B393CEDB4D3 |
BEF6B5AF1105B1F401CB0222F2195623BA19FBBE5A16A0C176C286689370C619 |
676830A23A6D682B8345823CF84958313FDD2B492139B51D96268FCE05E73543 |
07659CE311E28BB4559684D950E66CD1C43548AD701B80BE2569A0EF9B880506 |
A30D493B843339E8A083448DC71F7FFC35D75C8327D6BA0860E093B618660D18 |
F198B5D736CE9078EC3D4F27CAA245B673CAB78635695508B404B03401CB360E |
232B2E886FB102610B23CE0ECFB5C474CBD06BA3F038C08AC793667445DE874D |
B04DF9888292BD68522ABCE904960339832DE502DFA92504C2C4CCBEB45831B7 |
323C1FABD773997F55FA900C02C3200A0B0B004C4409C08565B464092C33F415 |
60B57570C42439230CD24C4C93D0A8B36DA1500B9C4CAC15294700AD58F2931E |
BCFDF6DBBFF8E28B5482E834C243916C0683154A02180755309671840188A20A |
7E2CDD628DC8708CEA59B2166FBDF5569990F02CA2704956858195876736242F |
8B71593191C18161195816ACC4891E94E61795AC5D252FC3C7C7BF6C1C902C43 |
1A6783D0A23D66F3FC5AD73D351C71C411F7FDE847AFAD792D9F3E854CF01924 |
01A66B280938215A191C448813DB0B37C9F1E23203565A008E0838A935470B73 |
D7647BEAB4B3F2D43459B882C815A5F3200D5038264204B7D2C2210B172EC41C |
06F18D7C644B54C7E1830E612279064900929D75FD846A5D5A68C6D6C320F420 |
73AA6A6020D7B3382EC51D030972F20B0B06A3BBADFB905606AF2E9DCDF5742B |
FD0FABC92098B62C5B634028D122A7A38E3A4A0F92164691368BA34FE86F2A8A |
D565E015EA435D4F3F4B97E51D9AE1C200503800D1E49CB7B989D0E98C718729 |
D1211F445F4196584C224C7BD557C830481D740DD6C1F891DE9F7FFEF9975F7E |
B9655599956CF81FE6F631F54B9BA2036264136549EBB4FF8CB242BCD696BD4F |
5C00C3D7F6B2BA7100F335664C7936A2B5259AA4BD6F93041442E14BB4E4FAC9 |
61557B997F386C4E875B18233E09403E780FCF318792CE23CE4FC43C2146838C |
CE656DAE2D88A8EB111E22FE2BAFBCF2D4534F35ED244CD068AB3D84C142B1F4 |
9541C8111B3017B1F9668DC8D100347E99F83AD786CD1CB9008DC8E4BC66FEC7 |
7FFCC73FFEF18FEDC3F7BEF7BDBFFDED6F3FFDE94F8B019994B6EA35B30DCD44 |
02EC141B9C788B157C5E7FFDF5679F7DB648FFC9279FB48999DF404F3CE9A493 |
2EBDF452288C25A3D01CC1D8DCB2858EED99CB3C9B6F79CB5B9E7EFA696A6EC1 |
2B37F840CBC15FB66C19B2E7631FFB1873FCEA57BF7AE699671ABC01075E8FD0 |
9BA38F3E5A638615324DAF604A37ECF466FB41071FFCE8A38F3EFBFC73D05958 |
B2DB46D69B0DB174A1808CE7A8BCFBDDEFFEE94F7F8A3A6025215352BC59E5A1 |
EB8355B29435729F427F5798900E9BC66C1295E80E7AFF99CF7CE6BAEBAEB32A |
18032E360421242E875F671E1F055E1DCB08449141DECCECBF36A5583B2E36B1 |
DD76DB893A4D11D64D4469B7DD761B490EDABEE79E7B4E3FDC61871D44BBA07F |
CF707FF1DF430F3DF4873FFCA1EE8CB0D1763FF1C4135AD87DF7DDF79FFFF99F |
398421266518C46BB3F1DB24014C9FDA08ACAB1017DE65262FF93376B24E39E5 |
941B6FBC916C6EDB8B36740ACB48210B45C3A36D16B9EA56D40A3F7559D981C9 |
09D3FE747F9C87080397155486F9CD2E30C451548DCCC867BDE9A69B2EBAE8A2 |
C30E3B4C5431A52470411E840E9A1690F8B3189F7E6E84644612F954930D62AB |
C5758113230A7A8B1A84325D2167C85A9E521258E41F268887038B6D4AFAC16A |
2703D55283D8325374E0189C11B194BDF6DAEB17BFF80501E1B00593E810896B |
8C5B6716F10CFD2F5DBA54E3A1A4C6B0CD93ACC8D93CDB53F61570414359B879 |
92D59AC19F0D228100320A9FD5C06B6DB19B37274A512765597DE652A75010ED |
9EEC668B20A1D059D08F61A13EB8AC0CEA7DEF7B9F581B8030BA0C6C58FD10EB |
0922B6647F24AD91A935F0D3FFBA5ED74004E1961B1D50AB4D391FFC88C3898B |
831478EBEB8BFA0F0523C9C3968438FAAD74D60C3D3297AD9260224DA8D851AD |
55172E58B86EC3864AB5D29D8968F6AF8D4C8D285D96FC40741AAFB4E4E239E7 |
9C831F80B34186C374146F5E8528054CD7CA9029A415606B93ACA9007531FA13 |
7B4E1B74EEB9E75E72C925E692B69A356B53634864A818187068D0C8065DFFE1 |
0F7F589C025BCD0412BA8F652E4EC7A9D18074730D4FD79B73C965990F6800F4 |
09D05A7DFCE31FFFFAD7BF4EBCCB05AEC5E9743AB43F032B7699BB0CD730DE4E |
2D05AD22496AD2E30CA21956D566D2859220C9C03C0C4200A5812DD39D350B92 |
A6A467D0F210D165B51A14A01A33324D5CBFC5DE820BA0CC5A2F1A710D517268 |
ACC0B2DBBC192E6868635C3BCA50F3D04989E502A181CFBD91F506B7323AFC72 |
F4B1B1D62EB8A1EC6E18AF885206F0CD6F7E53AA95CBF238CD21FCD6B7BE5592 |
D8866AE07A2161230388C6E32A60FA7BEEB9E7C1071F2CA2D57B04CC94E76206 |
EF90814C9873D8C0C3A7D424426C660B22A2882C5FBE9C59E3A5E0ACE9136ADD |
3141F4C6F775181F7FD39BDEA459839FAA3F9185704E312291F7F1C71F2F7507 |
838C479800B0383CF43CB9AF002A978582409270594CD40C2F6DB134E377BEF3 |
9D77DC71C77EFBEDF7E0830F1A048576EAED6F7FFB19679C614EBFCD692161DC |
328C0DC0E01009644C62BF4C96AB5608031158FB9710D24EABA0D15085087FD1 |
575A4ADD0D77709265CDC323B47FFA1550B471D0D4257472194D68D8DA06E88F |
A3222EA60329531735ED231FF9C8FDF7DFAF67BDFFFDEFBFF7DE7B5D1A79D3AF |
C4DA4E38E1040E037E402B17824FE98D317ABF61E5F240BFB758CBB56A2ECE35 |
5A4D50620C7DA1CD83C9688BE94BEFCDF9833587F9621A9C0483ACA2C9DE21B6 |
99EA4DF3985B6E125E6F2B3089B35E7AE862541851726CDBC1692145CAFAF050 |
7C672E4BF46582462018C3294E3FFDF46BAFBDD6A55D322CE0CCC123CB62BA93 |
163A43753D2177BB20AC20C5D76171239C03A63D4D777FBC8E68EE28D7A650BB |
CCFCC7214E2E078623E787450B61C5DA2401DE271718796DF04A2ECB43B7C40C |
CD823E0A4B962C11655A94C205E159EE6FB17473555903351D5A59B1B874C262 |
E6D0F7D816910AE910CA414F84C38AE48E3AEAA89B6FBE197037EB7CE9B24008 |
B6A9155DBB2DE304B6C5211281D9EE4C1C0FADCEBBC4D8C30F3F1C46985D16DE |
982E2A431E8E7414236F54A5D0E67E9D92202CD1704122DC74F4631B4AD60D0B |
AE9B68FB649B126CB0CCBA30834ED7CBF8FBF6B7BF8D2716572A7242DA4F5BC7 |
78046DDA86AB03629B5212209926F715B07E6A40214939FBD18F7EA4C5874260 |
352E45BC30FD49CA8AFEC460D51375E800799DD856689AB68B61BF1AD2EA397B |
30C728AB88838FB4E923F4BB609FCC11069B138BD1F8F489466FEAA74B7D35FB |
ECB3CF9FFCC99F88F1D9294539C2BCD0DD24879F7FFEF92F7EF18B5FFAD29710 |
7493B3E3A32CB51C23481CEA861B6E902AF1B39FFD8CD991BA60A2C2E27BCB96 |
2D9389100A76364CC2F3D1471FC5128CB3FE4436EC8928B4F369FE9B8636CD9B |
BFC0DB13D58A45CC424A0D092EC932ED5CE667842B51AE42DA3E2A1890E86EAA |
EC4CE6CE2C684CC8525B410301315C344853DC9D6C2EC71B6E4B4227A5401E1E |
7CED5ACBB5D0575EC6A5F000B051BD39E49043EEB9E71EBC2228B99081862D6E |
AE0FFFE66FFEE67BDFFB9E4577A73C69B892445444BAF4A76EFBC0030FE83E9A |
B221D10313CD5A895B8942F4393A1D690533E0B490564197F666D65A87A80F60 |
CBA18FD1CE092639FA4DC86EDA24013905864C950B3AAF81A9A9A7845DB7F4D5 |
11471C71F7DD775B88CB5A58877DCF2D038A0C3D03E0E404E131D7C2DA1393AC |
F5A00DCC6AC58DABDAC48DD84C2272C061131076D82C9E97E57AB67987C29537 |
E1A743A1AD31578334CDABAEBACA2E236CC30A873E7A44859B2A5460A3A27E4A |
DFEAFEE8DA53C6CFA6F30E35B3B6B52EB5C3C2C4E82989074916E62671283454 |
824C24768721040BE9932B68969C4BDD09E4DDE9DCC948B2F211931C9889166B |
99EC1D6A6DD935DDFC8D96C88E61277940620B01156E8B3A82FF96D458440877 |
63EF6C1D3C0FD52E4ADC3DF5D453CC9385D3EA8BDF599D3A8408878A32B80297 |
6970C69DDB909ED869B43917641A1050C2F380EB19EE6F88D056BCC371B28C28 |
6B9360D7186A20D7301E8B4692FFE332645A98BB9600E02743DF6DA64D7FC8FB |
248D0F130FEDC6B6D380097D35D34B2F75143D3B7B65950F5D26590A13076632 |
A58688602C4E57FAD29A6BD6FAAD183474201D4A52D9F4A6362B98A0B4196DFA |
4436E637BEF10D2B60094B07B88638BFB99571911D7DF4D1B7DF7E3B7BAD15B0 |
8C207B03CE2DCE1F6430D9F40CC362C550154FDC75D75D3DD0799A4A3103B668 |
E8D97401A41A4F4756857D3125A834605466582146F19437373FAFB520E55487 |
5834B05A3BF6BBECB2CBD34F3F6DE5931CB6E9E204D6C72D0CC3E88640DE4BA8 |
FFD99FFDD9F7BFFF7D5224EEBCF3CEE38E3B0E6763B265BA8EDDD6188A959284 |
04930B7A1487B46466CD94EA2D1CD0028116C3832FE8E794CDDF76DB6D21F622 |
93B2E89AA1A82659FD799216CA311273DC53A9608D2E346BED9776102FAB9E28 |
7A139342968415795180E36B2E533B3850B895C54A15B8EBAEBB4C3998AC694D |
270976DE7967D1A4A1B39952F87B2581A802DF4E5B8A79486950FE8E3BEEB87C |
F972CBCD25484BF4851C65ADC95FFEE55FFEEBBFFE6B92E5B382862B45FE1FFF |
F11F0D7E71CA88B145AD9A5BF61520CD44FCFDF0C30FBFF5D65B0DBC56B3C37B |
894263A25D5CE2BEFBEEC349852F57DB07596E8E18EBC1DA3CED163100CE4FD8 |
032F0C0587896BD0479421911198E200A3E09826AE496A5656B264FA0B0F323D |
14D3860958F1083A97994BB68BFCAFCF3FF9C94F7EEB5BDFA2AA08E33D09E0DD |
31110C77080322AC17334C50E2D58C415ACCFEFBEF7FE38D376A41885B1247D1 |
442EBAE8A2B3CF3E3B977815A395B4162C5CF4EACA57932C8560BA88B11DD15C |
D680D4D8229CD1D2D2F512419C77DE7916316EF35CBB2CC06ED978C6DDD80517 |
5460DA61836B5B16636ECB36E8D6F5C932E1A0049721B6221D4DD136BF996985 |
612AB0A90B935FE6C4B428B7419F1A30B286A44302882C54075BB1423F37A377 |
C86D59F2C3E7323D7FFDEB5F8BCD49A858F61E8A8E4EE9CF7FFE73EC0C53E4A7 |
9304499634850719C2B063A2DF6A90325FF6D8630F494DC3873031E3B6C4B470 |
81F26408B5A89956F5C287D01E20D56184C065DA58E8CE6A533BC2F1BB402133 |
C52B6C3667DB84872ACAB2395DE06B62F0A6FA308BB3CE3AEB8A2BAEE02CBB54 |
65C1BCB3160E86D2413E61086B1107C0B4EC82399DD0678D8DA0A94CB6954302 |
0825C1B9E79EABD344F759AB018CB356E4935FA6DD1F78E081F7DE7B2F0CC1FC |
AEE47184D11A97B94F5D60EFA2E8D80EB6B22E6696BC870F56C78D0825E771CA |
2C52C25193FB0AE87FE21637DD7493D891A1526AB466315876A5FE3740401758 |
481603DF2C0C4C93B2E5A0CC9AB8539C755FB2A0B1E91766E9A00F92BAA063FC |
ED6F7F1B1FBDC1CE40D304A8094D73961868188F9A7287C23A17B38E295A21EB |
C37E0EC00BAA07A7EB3BDFF98E44221E0397C61EC82B95EA2DB92AFE08767933 |
EB10124D95943D99E384046D53D0E7CB962DDB7DF7DD7FF8C31F5A5CDA650973 |
9C2B3E34BF21EA550A9AE44CF365D1E002D234A5358B539348673942E49813CD |
16499D76DA69A27B6E9ECFFA50B65E0756A50BC0F4BFF4A52F49D481A1661265 |
26CC4B97C4A9F15715BF4B5501EF82488FEBC0A0CF2E154D964A13690FDEE55A |
6B94BABB2B6956866779D5CDED01421916266E3300F2B2AC343F3CCC61401E7E |
71FDF5D77FF4A31FB5DA639CF89FFDEC673535A4BE79BD30CE344EC224A6CD84 |
3AAF9D1F58800136989F21348527AF731B4559AC4B1ACCCD37DF6CE5DC3CC8C4 |
A1019DB6FDD03EB78059087FE432C42DC97283BBC1F960092424D102516918AE |
2EC8DF430E61107367626CD2A82EBEF862837DB69476F35458E6C557BEF21591 |
22868E853A43991AD627DBA9674F2542C4856501A053E3D3237FC1CC41835520 |
4F019662AD112CCE84E7A4CD7408D5A33061814498E9504F184078D2A3ACAE82 |
93AB6FB1CB2DA9019AC7E5687E3C5D23A5E497BFFCA5A9C5E61A32F07033CD0D |
3AD36209966833B3266485AE98957CC59A7FE0031FF8D18F7EA4C98A06C2CE4E |
9105BEF89958183611933104349304F6488BFC98DE6A1510886E780D1E67C667 |
AA93732E995E6B9E6186AC7EF8AAA42FB3245C801CC9DAE1D1D2D8B4435658B8 |
78F1E277BFFBDD0F3DF410A96F22741D0CAB1D7D3D9200A5187B9948A395046B |
9A7A283A26EA33B536064FE432E96D6871BAD509279C20814FF194AEC15760D5 |
1F24C3B8ACBDA295CB5AFF3C3D82F418D3435DA0ADBC7E4960F91E06238CAB6D |
BA7D71715A612773A1AFCFFBB8D29A863E6F7F8C80EA1E7610F427A7D6E8ECE9 |
91402BA44A43AB311191E359ACA7CB605CCD2B6DAA89F9FAC9AD9A4C21162FC1 |
A205F482BB99FA12A73D114911D6055A34DAFB916CFEF9CF7F5EE6B618DF76DB |
6D474404394DB703B2AAD0B819F9CC35D2D34902DD5CB6C89D77DEA9F7867B11 |
1E8130F0DBC637DB2441DB7BAC4CAAD2CCBF6C6825F82E0E3DF4D09FFCE4277A |
EEB6DB6E2BBD72C99225BA52EB60C0FAFA5F3A81F83E49105A2B8A7EC4C5B432 |
CF3EFB2CB995B063CE026409799B41603D50A349999D2E000733C30293C20A42 |
51EC50080CC03997356DC620E39461DACA923EFDF4D34D677253C587210010E0 |
2D03C73CCF33788DCC82B1ADC44DC71ADA95585A6D9D2D3850F8F476D965172D |
A025D7A22293127AFEF9E75F7DF5D5F8792EBBECB2934E3AA9EDB9B656D36966 |
E4861E74D041FFFEEFFF7EC00107DC7EFBEDD2D19F7CF2499C1F483E4A5EF6DE |
7BEFC71F7F9CE882BFBFA9F9C8C9FDF7DF5F9632064B9BA7350CBE859681C903 |
DE9371C4218C82BA06975985FA5C17D0B2B58DE74E595E1BBE4C77081D8B50AA |
B5887341A20E0100B4722BCD40C124971C0C51ACF5B620E1CCC200876023EB5C |
1A05B02DB82664B27DF9CB5FD6D32500C23C2833757959E5A41810C810C479B4 |
5640194B5AE80E9AC21D77DC71D4514711B124F615F69C226B9613A8A7608A4D |
7EDC949220F4595174261ABAFBEEBB433A9E41128803EDF5CE778AB887366D9A |
3D67CEB1C71E7BCD35D768FDC84615057574F82E72DA312F9E9389DE49B95495 |
6E785CC2188E6F7E644816598EFB02B39A434B2E3F7CC138A0D988B8B3659649 |
E7B2FA41F38798670C7A461E4B824A0C58F5BF9DBDD0203010371E2DD679F0C1 |
07EBFD75D75D4782F574A4329D24D0DD76DA69A7E79E7B0EEF28E29F686A2815 |
A6930461DE811D1974A328CB033CE6986324D276DC71479D766B88C49586D669 |
2E29944D485A5C4993020391DD31E35E5F69D6C0459893CA160AD2856B5B0C1C |
B3156086D0C916EAE976071B24FC34CEF0B5B4831AF333CF3CC3D4306BD85F70 |
1BB9DE5896CB5245AC4B55123409D79FE295E283747932AE126DD977BA6D1F27 |
5FA3478878407805B443040F03D4E7AFBCF28AA189E0784715666510D8065B8B |
7DAF37565E10A790763AFB38E1B1F2C9D89E814F86364158C3648D57AD409A5A |
D4CD3681CB72F5B0C524AFB4DC966C60AE67D8442809428EECD222495B5612DB |
91E758BEDCDC5CCFA8CCA17FC95CE4D3CD30F420B94042A217E01E41B762C0A8 |
0C2C3DC93F2ECBE7C364B606069624176D9986E1A6816933498084B7C13342DC |
7F2E08EB9983488472C515577CFCE31FA784D820D25CE096653044C9F4A755AE |
87ED32E20C23D7B20C4965B3601A5E38D4E19939949D43FC3F21160241177CBB |
333493E9EEED19D5614BDB3497328C33AF48D66A7DA97AE2B2428189A86316A7 |
49703636A6586193041A1B455B61A14D92A672E27360D8A6A1DB657BEEB9E763 |
8F3D86AE475E998422A4680DCE5852CC32DDF0D39FFEB46C321C6B345ED6B760 |
FE80C681A981DD00403A1B1176F4DC2A49E0B2E44E3325CD533AD97FE2B6F4A5 |
98E40E9982F985C3FC3ADD590625FDD1E02C96B68B3BC8E2FC486E2C7B9C0100 |
ECA0BD61129116C5A9B183893D4AEA2455265A9370893889611981AD89CB127F |
0D08811500B8DB8A284506C71D77DCCD37DF6CF33DF7DC7365B5582C138D5B3B |
2845049002B386C3B0B965B820FEAD4785E508FC5E9F44B895BCC75E9F2CCC78 |
AF45D39A1BFBB6E41FF3E6137C25D8AEB9882D1027472921E72DEC7C80BBCFE0 |
5127BFD81D03F542EB3587B946ABC5B4B5DD4212184E4538BD5CD081CB60DAC2 |
B06DB8C449D047093A231601C76734C8220EAA2589C7197045DB3DA7DC09F399 |
429A2EF329B73288472B3CA1ECDB7A0FE0C2C30C3739A915D1F5D6F54267203C |
69C6C7A75B6E08C848D9C66F19811C06B012A13CFD2FE2336C06BB15B6308CE9 |
A28B2EFAE217BFA8F75A798B3E19FC8E464B1534E104C3A581C1A1E859FF0A5D |
637EB9192481CB74492BFE94427DCA29A78833BAA08E74DA7D7149B1A3E3D24B |
2FA50389EEBBCDDCB96B5346D393B57082174FC8308DBCBB7B3CB514BDD65F6F |
589BCC36491F0575186DC53EE889D61C8684167350B4D59C4BF7111F3498687D |
250E72FAE9A71B0B08F3A4C56E241B2EBEF86297A551324D7D280A09FB595A5A |
9DCB42085B2509809720C61812038A7928DE5C80EB6507818987DE8CB60DC279 |
7DE79D777EE8431F7219F0910B3AEBB6E1AE47299A77D851E3CD6F7EF3934F3E |
892B06DB5A275AEB6029CB1C25D48E0B2EB8E0C61B6F94BED586AAD6D6259133 |
65069C9D2033B9C25C1D7DC81CF52CD95EA79D761AA769E79D77D6AD34363B1D |
A273A494C10AB954FFB06413B342F0139AF267FA789C01B44D6BFB06C2C0E8D0 |
A2110C7EE1C2855A64F1D9C58B179F73CE39DFF9CE777EF5AB5F210F7478F544 |
094BD3F970FC5A313F1C4CCC417A3A6BAEF7D64C4616CCFDF7DF4FAE4A9B2E3F |
E520F10A80D5614718C16F3583869BC90FFF7F1A8323CA70A77C930000000049 |
454E44AE426082} |
Transparent = True |
end |
object v: TLabel |
Left = 16 |
Top = 8 |
Width = 236 |
Height = 48 |
Caption = 'SpaceMission' |
Font.Charset = ANSI_CHARSET |
Font.Color = clLime |
Font.Height = 48 |
Font.Name = 'Arial Unicode MS' |
Font.Style = [fsBold] |
ParentFont = False |
end |
object Label1: TLabel |
Left = 88 |
Top = 54 |
Width = 130 |
Height = 26 |
Caption = 'Level Editor' |
Font.Charset = ANSI_CHARSET |
Font.Color = clAqua |
Font.Height = -22 |
Font.Name = 'Arial Rounded MT Bold' |
Font.Style = [] |
ParentFont = False |
end |
end |
/ENU/LevSplash.dfn |
---|
0,0 → 1,256 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\LevSplash.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\LevSplash.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4428703704</prop> |
<prop prop-type="OrigDateTime">45408.4427083333</prop> |
<prop prop-type="XlatDateTime">45407.694375</prop> |
<prop prop-type="Translated">43</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:SplashForm.Left" resname="O:SplashForm.Left"> |
<source>241</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">0</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Top" resname="O:SplashForm.Top"> |
<source>158</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">1</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.BorderIcons" resname="O:SplashForm.BorderIcons"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.BorderStyle" resname="O:SplashForm.BorderStyle"> |
<source>bsNone</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">3</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Caption" resname="O:SplashForm.Caption"> |
<source>'Bitte warten...'</source> |
<target>'Please wait...'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">1</prop><prop prop-type="Order">4</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.ClientHeight" resname="O:SplashForm.ClientHeight"> |
<source>373</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>388</source> |
<target>388</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45408.3469783565</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:SplashForm.ClientWidth" resname="O:SplashForm.ClientWidth"> |
<source>515</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>533</source> |
<target>533</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45408.3469833102</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:SplashForm.Color" resname="O:SplashForm.Color"> |
<source>clBlack</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Charset" resname="O:SplashForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Color" resname="O:SplashForm.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Height" resname="O:SplashForm.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Name" resname="O:SplashForm.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Font.Style" resname="O:SplashForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.Position" resname="O:SplashForm.Position"> |
<source>poScreenCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.TextHeight" resname="O:SplashForm.TextHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TSplashForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Left" resname="O:SplashForm.O:SplashImage.Left"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>8</source> |
<target>8</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45408.3469833102</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Top" resname="O:SplashForm.O:SplashImage.Top"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>8</source> |
<target>8</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45408.3469833102</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Width" resname="O:SplashForm.O:SplashImage.Width"> |
<source>515</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Height" resname="O:SplashForm.O:SplashImage.Height"> |
<source>373</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.AutoSize" resname="O:SplashForm.O:SplashImage.AutoSize"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">1</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Picture.Data" resname="O:SplashForm.O:SplashImage.Picture.Data"> |
<source>0954506E67496D61676589504E470D0A1A0A0000000D4948445200000203000001750802000000FA2A7E410000000970485973000004BB000004BB016E1F0EAE0000000467414D410000B18E7CFB51930000FFFF4944415478DAACBD09BC1C6595367EAABAAAABF7BEB7EF9E3D842501059771FD3B8BCBA8333AA38E280E220282826C02814058022191254008B223A08220A39F333AE8B88C8EE8F86710710104C2928424775F7BEFAEEEAAFA9EBE0F7D2CEE4DEE2738FDD3D0B7FAAD7739EF79CF7ECE6B1886212FFF0441C02FA954AA542A45A351DFF7F170D5AA55CF3EFB6C5757D7CCCC4C7F7FFFF8F8B8EBBA78DD34CD60F6C3EFDAA165599148043DD8B6DDD3D333343474E8A1873EF5D453F829DC122FB27FB6AFD7EB788857D0A0D168A00D2650AD56F1B0B3B3339FCFA371269329140A68DF6C36D12C168BA1017AE8E8E8C0DCF024994C562A15CFF3B8043EE7CC39167A8BCD7EF064DBB66D175D741146C42BB55A0D0FD7AF5F7FC30D3760089DA12E902F62218F3DF618FAC758E8906BC1ACA6A7A7B93AB6C777AC08FFA2653A9D2E168B0A55B459B264C99E3D7BB00AFC8AE7E8842DF99DAFEB5EF0213E5832FB673FE81FF3C1CCBBBBBBB12380D5DFFFFDDFFFEC673FC3D6E009FA674B4C126DD0091ADC7EFBEDC71D775C369BC5EB37DE78E329A79C82E70411B6696A6A0A73C017F496CBE5F0A7CE0D9D004AF8170DE2F138608EA1B1473A3D4C8CBF2AACF831421FB4C79CB94CAC3D91489C77DE79975F7E39F69DDB8A7ED000CD3004FAC18E707A6880113101FCA4F099FFC1736CF4E4E4A42E8AAB466FE80A3D1355F01048522E97F545DD297D82B1D012000FFF0A24E42EE3C381FAFAFA46474715562B56ACD8B56B17BE1044C4528CF5C10F7EF0473FFA1156818DE043C771F0A74283F3997F1E755D9C0311587744CF1A61AB33C7776C315A02A461DCC3886CC6368B172F1E1C1CC4EBBA767EC7F4082534DBBA75EBF9E79F8F11B93B6800ECD21EF0040BC14CD033C80200423C01B40176B6E41A8190131313D87142000F095BFCA40F89DB3CD77A88B858FE0994FBC8473EF2C0030F601442ACB7B7975D0163D1833FFB41334E8020E2409C0F77EAB0C30E7BE6996788B1C43742896DF01DAFE3217673F7EEDD18176B242A7239A44E5826668EB7D0092189D7F1135A1E7FFCF1BFF8C52F9E7FFE790C8177D12709C5FEF0165DA10DFE45E71C88E0E5F2F12ECF3BBAC25E5C77DD75F8BECF7E88541C85070A2FA2434563CE017FE23BB789AB30E6631E07C629C20A89C4A4F8F8971B06D08F8D8D1164244FE13DD30EB10CB4C73C3EF4A10FDD79E79D3836EF7BDFFB7EF0831F809AA331E9859209D2381C1EFC4B62C1DD65CFC0216C1E511047115060E758037AC373B4212831731E338C8B6EB1046027DEC5AF8011CFEAC0C000DE226564637C416F981280B87CF9F2175F7C91209BC309385BFC4B228EF6A4E36122AE6D785C312EFEC44F071E78201EEED8B10343006940A18E39E6986F7FFBDBD8AA399C80679E678C98AA4C05BD01C50179C01F4F48AF89C1447D3C7CDDEB5E0714C77256AE5C09D4C492D11E10036CD1214E4E983110E1F0840C069351020738E05F34E3FC490230134C0CDB71D249278183BEF7BDEF7DF0C10795978749FF1CC182BB4CE285B961A7B01C7C476F6F7BDBDB1E7EF8612588982D1B808CE20BD685EF001A0F981E8FFD514CA2019016AFA3FFFBEFBF1F709E33BDA54B97822451BCE034D01BBE285A921E11FE9C15F18158AD670C5FD6AC59F3777FF777DFF9CE7740FD716400227085B56BD7DE76DB6DD814BC454A819F80754F3FFD3490101D02DA980370003F81306114B22E4C9ED8B84F4E8077092525D39C64987B6197714030DC73CF3D77EAA9A75E7FFDF56F7CE31B21B5E8C9D2A561624A4D3007E221E1C0556BB7A441847C98872D5BB60CD3566E0AAC00B7BBF7DE7BD192B0C58BC01F9E65EC9D028DF3241DC764889F60A8679E79E6C5175FCC51C28B0AE38F3EC7EBE8937B8781F01645133C21326392447215A17872219262742C1F6787B48E8B22E7461B1E28C010B322C52486A319491F7AC6CC791C301FCC1FE362692035687FCE39E75C7AE9A5389B6849CAA93C35CCADE7EFAF724A4C03E8F18E77BCE3273FF909C40E0CC16592ABF1BC2C203128CFD3A189C09824A64D91489FAB50BE0F4E103E3394CD29A743C40001C513808020C34F1852E97578C348CE48387898B10C504330498A5A64DD121218B961688FE7E896B848FC03E8F9133500005D052E0ECDC5903D60FB89A97C573758DAD23A9FA325C7529104F80424807C7AE2892762CB81E573B416ED81A7050BC78B040E1EEAD1DA2727E0886436A429D0B1705CD120AC07E8774A103CF9041499D9DFFCCDDF40E4E791A0CAC59F00310C0138EB7A417A868787A9AC60E3C8EDB04CA21A27CC9EC94238163486B3CF3E1BDDB2B112418A021212A5C95AB01C6E9F6A033A6DC58A39479A3A9C1E302E1CF34757243A6C09D2F0AE77BDEBBBDFFD2E87C35E8360E17491A02C701278CE495BF554E064023EF815A0C013C53A6CA24AD961F88767AE5B8F1749E61433F55CA8AEA08A88F236EE08F68EF8F6D6B7BEF557BFFA9512A039E2FC02EBA21080570028526DE564AA1CF0432114C0C45B541CC99038130010DF5531A284A478C8F928F5C17248C7EBB31F6211B666E7CE9D9FFBDCE7C0F0B81D175E7821F44BC001BFA2438002EFE23471379510530B64574AA055100EEB5BBA41DC1DB228BC8E66389B18480F386514920BB2072E84FBA2947DD1A245E001E807CF6939A03640798E1B817F2988E02DBE8B290138E8013FA125A04AB583B88D5F79D6C27C0ECB67631E4C9E0B15C0F7B7BF2A27B1074ABDCA7A95A6870D03FBC313EE9A3BFBC1178094E414107BC31BDEF09BDFFC0688411CD6E3B65F4EA08A921E6F60215AE2FD2D5BB69C7BEEB96CC99D53D084F198E492E84E0A422E4DA263B63FA405841A3640993C255C5A36283850542789E702C8068E3AEAA8FBEEBB8F622CDF225A508622EEAA984F4313CF03814B7A77DA69A7018FF93A9A4166874A88C69C3657C789C9AC7588E26A5850C2874A19413ADF3A04FC23D1C41061394EA1A7D0507E13D609F085E41EA3FFE55FFEE50F7FF84325D35826E643FA4B8188A225E826A921190F8FB7AA11980CF6859091B6DCA7F640341B191909D33B7ED4CEA07C42F9105935899D2E212C588419A40293980AE050A653C8108C981E280EFE3CE8A083204310A9A8A0EC4FCB264791B666837F713EB904B2049C5852521E27C596F0AE29330E7FC1EB7857ED1BF84E2306351BF257FCF99AD7BCE6D7BFFEB5B485564C18B21E6810608BBD035939F2C8231F7AE821A80E383EE801F0C41C680AC3C416D0098866619D403FA4929CC9FC7775D7544AA04E404B11D645EE15D67E14261B376EBCE0820B489ED03F760A10A0DC060403B6A0254833640E7EA1E513679656232A221489301CE91A3711CBE77004294546BC48DC50794BF91CD9301AE87288CC611B143EFCCE9345E11D0351E3E101A784C40E29AAAA4D090F69E409A32B96BC6EDDBA8B2EBA886C181F2295B415C4E4EC07320A968F3F81CFB46A704A1435303419C6FE28F8D1471FFDAD6F7D0B13C61E0137F890CC8CD0C04FA4C3181AFF12C9E77FC0F074FEF87EF8E187031B0125122E6C04E0433D8688246D81DEA0599020C3D66260D20B6046D84AC5CD232C28C7E93901A0B1311800239133D3B8B1BF35EFEFA3D450E54A9935F029E525E9A1F042018D74471185425F98EE68CF7A6054CF529B38570138F0750C47B98FAC8B3C13DB03D0D35A475EC2C65835DAA001A9BCD2B8F99C4027031512A4FCFBDFFF3E700ED48D5B129649C3566015045430C717EC14A081F3008CE131D013CEA1B18FD83E72566EB69ABC6FB9E596534E39051846E309CD6894D07954F02FDEBAECB2CB366CD8A02A140F30F101F30793A004445180679E82ED3E655B95EFB8A1E4F494B0A8117374AE022BA2C4407AA7EC1CF34433E027CFF3023211E6061029CC21B87CF39BDF042DC679BEE69A6B48AF4F3AE9249C90C71E7B4C95DAF0AE2915D01DC42BE816EB8588C06E7926F99C4A003F58055E5736A9544937827E1DE2F31C1B882CA813CC51F68957FA902F526200D03037F0A4279F7C52E51E502B1A9A89AB2452EADE503C24A6A9FC81E76803D2196651EC533D55EA0653919C4A094F10BD3B2A7D135155B22402A31976075C47DAA62A328CF99CE0F4D34F872282E79C36AD5ED44D95A92B0F80EE0222C8D7D5B90899EFFCF3CF0722A9F95E42FC5E669569AC051DF2F8AB5DE575AF7B1DC426BC42EE428240FABE75EBD6F5EBD753F3C3736C2E66459EC473CDB52C4015B13A9C4AB013C0109DEFDDBB57E9158F03B94298DAEC0F4F0025F02A2C01F3E469C5BBF88EDE4E38E184AF7FFDEB801259F521871CB27DFB76FA6C5A671263ABE30B7F8293ECD8B14366D573CC00C35364A078A89C196F6198175E78819BC78D516BF5025CEB95720269B35685C2EAD5AB9F79E619695B2AB012CC0AE72A6C109CCF0914E7E64C4CC9A83DFBA1E54465616A12442F40507D80BAEAB084CB79EED33A049287774932484039131A8E75EDCAA5D5424D3AA2BC010DB8BBD2B6FFA8B74DB5C8B02F94BFAAA5E2F6DB6F877443370325711E06FADF788C57AE5C09491C2F6281C4C8B0D0A474108DC94D756EAADCCC315EABF54F66C5283D5ABA3ABEAB9E5EB6848485C68A991FF8C0077EF4A31FF170F20CEF0F8BD039E56BAC880C1E10A071E0EAD90FE68CCE0143AA7D73AC43737CB3EC16BFD2E8846E290F624369C3C51098219D19F889DB8AC61C1A2F6274104ABCA23637FE24B3D23AFEE5131A64F6A7EB287556C2416CA1FE37C73AA4744D719B543B6C16E7F139EEB8E3FEE77FFEE7E9A79FA6B41B96C4C9096856C2A248A778881830C2F34824E1795163322806404109923D70686A092AB9530027BA52ADA4C2A726C7F9D6212C04A2034D58C41374A586787586D398C9C3CB3DD5F0133DFE615BB132544509BA48293071F26A96A422AB24857026559C6F46262F54A962CE4E85A9107D726C89B700581C310C44F8A8B18BD478613F9982426D954436EE3B250309D9F05F326630EA063F9330AD5AB5EAA9A79EE2C909C34BF939BE63721C80363534C04F7805F3A6556701FDFD957202DA882824860510F2037C07700129F5C5E936CFE104DC4E7509A0439E6D501915F9C30229361E4FA8872A6439347829DE020480CAB4A248DBF7A206DCF97E0269DB49814F071C7000E40B5052503A7D5DAD4312B2AEA84B879059B66CD9AE5DBBA8D0C9AC3C422B99B4637BE8BDA04446C90BF3C4A2F090E8ABCAB532332019A10ABE427E409B26DB2832A92514432F59B2E4E31FFFF895575E49A5552DA7CAC6E658395427E02E9080A213AC852109A4111C941A864E00ABD8B66D1B64465A1E6846D89F9C81AD446F73027E3873808E123DA566F48685031908F330BE110FC39E83F047C51D4539527FD5A4156294B6A8B9629934F133B04D0DB8A465739067FE673E5994767C81A882DF6E401D97C61FAC9D7A2D6D14F897C48B544CA74ACC991395C4810E3AE820B00A5D2F8DF5738297A8A9D39F47030EC90D26F0E637BFF957BFFA954A601A1B86A18F39E6989B6FBE995C16DD0220444EDA84F7893F1865CD9A3550A6C933D4A31B769E93D5D1B32AED701A0C87E553520E6332E40F5A63742DA06378F7BFFEEBBF783418938257F0E7F2E5CBD1C3A9A79EBA79F36634A34F586DADD8596ABA1AFD41273FB67B4E34DDFE283895187488D38AC34868A8C848F703158E053CCF24CBDC65CA0A34D1E35D9E7775DCAA4CD0022EE453323D200404250025ACAA1310CAFA68A9E431C0171E89152B566063C2B3A170F7BF651DA2564B54C3BFDCBFB56BD76ED8B041B1194BC0D6AA2CB04F4E10F60B291E93C252E8660C2B1E62459FFCE427F1F0AEBBEEDAB3670F40445F05F95FF80CA8F005D0D11827FB8922D55826251F1AF3A33A41D8E91A264F61AB85CA26EAD550F99A561A2E21ACEDAA3D545572D21D7A4D20DB628BD5928E7952BD63D0ADF6C33EE7780E48D4F85DBD1A0A99605E20AC848C783854EF7FFFFBEFBDF75EB4574D6B8E990B2BC5771E5AAE97409B1F5B12DE6BF2091A15F1E49E7BEEF9D4A73E4509400342A4CD11C3CE79E504EAA7E159A0C9853494FD84A3696901C727AC742A33A342C3B1D42683F95F73CD351B376E5457ADE2E102275C2DF8AA83CE4195397E26BA1F748DCAC0F8D16851EA7073BCD6BA6BFA9606F56A20294D1074BDA89B477559B4017A00B54E38E1846F7CE31B009A46FD61AA0008B08B7C080201B48A700481C61104F3A248C16EC1306834A618A45C5F51825874C515578044704768BBA615945E0DAE114BA09156A5076E2235091E10D595A9C16032D853F08070708784E424EEF81CDB8346972E6CD5D1F010B57F48C8B4A8BA7EF8DCCDF9F00C127A00B22AA9340FD2A687876192485B880151EBAAABAED28EB05B679F7D36381E04A8E79E7B8E411D8CC0C1D8CA120041AC4AF9366084B1B1431AB41E16CFFF4C4E402323F5FDB0D90133BFE38E3B3022F91BC837E6093D668EEF5A42B11F61C204960EDAAD4181C0516A0C18823294AA631ADD817FDFF296B73CFAE8A3D75F7FFDE9A79F4ECCD0E34DAB289A71866A97A4DAC42DC177004DC3B129A4A83D81984AFC53AA8D7ED03E6C28449F1ABD4393345D0214B5A46D7D92B63EC84E48161966CE758503BDC2279F448443681433E91A46E4CE129F002B0001CC326C22E32B4A88F99027814FAEBEFA6A3A21E948BFECB2CBCE3BEF3C028DE11F0C7555873C0499A38E3A0A3C03AF533298233086A986E237F608E2022740E2AB944E7D4E6132AAFED2818101DAC488F9848FBAD0341D045F48DC29A9B071D8A7C58C0D7A5FB8950A1C1D51631F54329076D43FD9834A3FD42A28EEF050A87D4CC3DBC902296A7CEC631FFBDEF7BE879680D5D2A54B3FFFF9CF6FDDBA95269DB0E2A5B1E74AF4C3B100611F2CD921BFAB4750E6C5BCEDCF12400AA5364C5267D213BC4219140FE9B6A1A1292CD390678028A119E9A3068C92E1A967957C050DCE3CF3CCDB6EBB0DCB01BB05FE53D8553197890500C81C031A35D470CA05CF11A57E0DBB22A81790F4B95E4CFBC8238FFCD77FFD57FC497FD8FEAC436A1442B774C5AB456B9FEDB98FB4AC42D0F9977FF9174AFDDC44E55E61F11708096DE6861B6E60581169949A075AC3D06BA76E00705D7A9FD5C6A7FC8D2D95D6A0EB9B6EBAE98C33CEA014A9E44F9D54FF2B9C8084490DE898037815944A68FAC40F2C1B8D39AE0656EECF634CE860B1AB57AF1E1919A1D84BF54D8D0678171A315AEEDCB913BF2A55C2AFB4D091AE910A2BE5C2BFC40F1A8548CDF5D4E115025DD33DE8FF94B6C9E8A31FFD28B693867BC8CB20AF5471D00310FAACB3CED2D41B66C1BCF6B5AFC5F9F9E0073F78E28927B25B9A65F116F608871FAB231E87D3EBE861631A9DA22CD90F26C9FC0CEEF5AA55ABE8049AA35EA876C89DC204FEF33FFF136CF899679E9993F477E8A1870280B41662816F7AD39B7EFBDBDFE257BA37D44A80E30DFEAD245E774163CFD046A3BF487198D1A6CA87BAD383D9A06C100260265EA462AABB8F49429423F9C3704466F5618445C270FE145569B461203639D9C5175FCCBC10CC0A8DE991A3D0A73482832A3551168E06B7DE7AEB71C71DC79F56AE5C094CA6394E234D756BD4898221D012741073662C23E9F29C6402601D70039BAB640E9491BB83434DDA8439D081216DD5767EE85158A465D4104F227AC304683FFCDFE204C0D5356BD660868003E7A3AADB9BDFFC663CA7AC4DCB06C6A58E4E158DA63FAC178D8148C05E50DE7FFBB77FC32B684FB30F71523D195FFBDAD78E3EFA6842AFBFBF1F9301366262A07B20A9D85C9E6ECE44D92D75682200DEA29509AF901ECEFF5026C05BA024DBB76F57B56C7F564DE2F99CA00045C27D524B0D8252B3A49AF82464CA030EA8F44917310E1A094B381AD5E0E92205C10600768C93C59F38360C10643E024D60127286A83519C887A56EDAB40992320F181057B348FE4C4E0092F7F8E38F63F618859E525A9F88AC7848675D1888B21F3F01A91E57A1525E3870281C5DC713CEF83335F22829246D626E1E45549D001E9221D1A0C4734BEA40E2AE065385AAFA4BE9B0A1124667B81ADF40F7711218BD4A34851E8AE951E3A3E989EB65749DD24DEC0810059054DF8F92F2F9F93B61BEABC405FF6274C69BFEEDDFFEED4F7FFA5369273450D79EE3ACA318A2B113A40224A9340BF060D0A38B5DC017B4E47A29BC90472A31A5D18F01F21476C2FC896786560E0656317C000DB0763606707854745673082E519A4700B409FFD213ABF17254AE2FBDF4D24B2EB944CF85B2254DD7A4827FC41147FCFEF7BFD78077EE26B7064FE8BCA5659979C5948B71E29873134E7824CFA6ED1818A2818944360608E9CE6AAE8CC6AEE0988063EDD8B183C6194D619550580B236D643FF1A614CF4952DFF9CE773EF5D4530BE4C1FC899C802A94F60CB0335789C79316766A21E1AC497E8006DC68B5E85236E7290EC70BA1A59A7AC823F58CD09C3B67B6A4A4A4D7D47101490A49A03CD83BBC4EFBD81C3FCDFC0FB7296CB223FE2F0C1FE003E374D575B43F1D02888D4DFFC31FFE40440A879F802332E4878E7DAA95EA56E149D1D4EB3F72024D3053D70149218DB614E8F49C2BF9E0D9537799AE90D487E8FBBFA5135C71C51510C10820CCE49E7BEEF9C4273E41E4507CA5BA1A8EB3DEA74E206D01597383C91B888E6A1D56C6A088CBF6C66C96166D358C9EC69418114156F49EF7BCE717BFF8C505175CB061C306325E0DD8A00187A80F717BD7AE5DE1BC415A90989273EFBDF71E73CC31F8F3E0830F7EF6D967C3145991189D28AD544192280B8E82D7C195E90E254C34B88B6B51873FA9677817D09E59A9FC53CDE2F3EDD74C4C63CC89CC4AD36472E1E042B0319054AAB1345FE095B02ECFEC714A5BEA60C7779086134E38E1C61B6FE441C29F20826A75D1D7C30749457B35A3E1E8423F50BCE749C6AF1415E9F4E2461BA15C62A237D158A33E5486C517BAD6D927890B78030B00507400E5D5701A526A99573C80441C9BF5D0430FA97801290F9BFEF0C30F333F566D65DC262A07CCCEC5582416AC7142295B662308D4814464E3FC3131DA09C3052A78DC780428C052365746ABBB4F1908DD82FA60ED6AD47E759C200C4F752CB18770DC47D83CCB66E0D0C016061A314286984C898A749CAFD368A1FA99DA51F11C2FBEF5AD6FFDD9CF7E46EB1C8F033754655C4D7757231836FA5DEF7AD7D34F3FCD8A3B980375B805647665A2CC96A034B3B03509D3C391A126BDB0F549AD7CCC53416365729C39261CAEB962CC26FA013915AA4AE85E9A4098E290DCA88A31870A845566CA2F5A2846CD02612B1B3192C841A344B8A007252C1D856D888EB4412B19529314D90FD64C659CCE2EA39D9B170EDE92B6B158753A8C8B4149B6346F995C94A9255AFC20EC7333F6551F89DBF099CF7CE6E69B6F56FFA71E6609A5F2127DD103C005CD1773608004FBA7399870C3BB201FC072124D8DF62324F113DEA2AEA01BC1883A2AD11C5A836B0F38E00008058027D90350043A2FA82ACB1085C97A9813686C06DE2281534C007020AB0E0E0EE2C9673FFBD9AF7FFDEB980FA5481C4E5A63C2F1451A8BC5851038383F982DCDA0546E98484894603417B9DD1CE71B2838FE5CB76EDDB66DDB8036147ED5972E2FF70349DBE2C165B22B86B2602D60D2102C1844A4E98D0C3754F5E8F0C30F870E2A21791CA0C671021212ED3110738BE85D0FC756A9BA76C30D377CF9CB5F663F9809964CAE4C3E47C6AF520216889FE84D25E70893300DBA07904920B85846AA7CEA539FFAF6B7BF8D33128EAB0E47045177E18632A42408E53F868B44A1CD61871D063153B579C56ACC4759BEB42D727F0E2750C76CD0CE75A7662F6D15904496CC98248FC49D6962AAE55370C476D08DFCDEF7BEF7C73FFE31FE5473B722A4CC464FCAAC364FA11BA80B15E781071E00E4D542AED2A45A2F31E7709935761EB4AB9C2D40D9C9068C7665B685AD431A17035E8B731A06DA3EDB9F74D2499018A09C91C6D2324C6D895E2B727D02211CF8A0A14DE154D6D658241FEA29251B2445A020CC180386900217D129B0DF68A7BD3148430BC230E58AC71B9C8767FEAEBBEE827CC75788D980267ED558913909FAB7DC72CB69A79D8699003AE4752043D0CE5481A542BD3F4EA095AD146B813D5AD74563F65595518AA0A13BD29631C37E48D25FDA82F127CFCC1C1B0B28173012844683A96EBFFD76904E8C0B8CC41CE84E00404E3DF554E6A9927668A6FB71C71D8757743EF44DA936007802BCCAFC9554A9A18C6B04CCD574A8D9FFE8FCFEFBEFFFE8473FAAA53834BB5BD18EBC8781CC2CDAA1353FE6CB3E4C9B640325FA5A990E5D61698CB20D677E526157FA8281343D82479D3883570E3DF4D0279E7882150B0007025C42D9FCEAF1D60DC29F37DD741300CEA375ECB1C70297D095D67BA0B4AE194012721D318E16FFFEC33FFCC3830F3E4834E629E261D62835F5BD4B5B27F8ABBFFAAB5FFEF2973C8DD4F1C947094CD5C61497C8A4310106136BD674309BD14A3B09115569B15A54284330A28F522D453CEA2B6A4BD180D170A4A026AF84B343B4F2230685520256C7BA787A4C9478612C2A9A0CBDFDF3394138965FAB8771DAFA9306EFE30988384E160520B5D5007F202E68581DA398C8FB49407860D18039C00C8FC416A01312130D9D521133BC5FD0E0DFF4A6377DE31BDFD0787AEA0484D8FE6278A41D184A66C6E92DA0433024474231054A82166EAFA8ABFE39AC1AF4136B042501CD61A22517A5A9A01AB3FE47EB90B4CDCA12CAE7562B18ED5C5473F0A1B010564595A131569A33D3105D1E5A0DB460F043B804A3F26AE6E9A83E1B96D1C2E0A0ED9E6C99E6E6F99C40428626EAC8CC55A136A05224D992AE224CF4C3E3CEE7041421292CD0AAA0413B120AF9A2A087451186543E34FA0DF88D7789E2000BABA24262DDB46913378229AC9ACCC2904A15D680FDE804AF9C75D6595FFAD297D424A2C539280CF2C013C53996F29E305419100C68609250932FBBECB28B2EBA88F9657A66884346BB842A8D03745A68314E009929876A13072DFEEA57BF8ACD2241A46380B51BD9217AC0138D32A07352CBAD48283496A056149D7F36A82769603EB7150BE7705A76866792D23D73AD955C12EB68E2A7F8ACF52464D698B37DFB76DAD90104BC1E2E81154EF60E8BD28C47D0F0210A6EDC2930AD4F7FFAD3E80ACF7162B5768BDA2DB9AE39A61240126B79E1851754F3A6558A61EF124AC6D443C428A630DCB473EAD94C5C97504E4C5871A4779A4A9E024AA3F85E1D2708D7B3E32E0037B4E81069162B6062B114E13128F442B076BAEE805D58324B526AFA15BBA5579CA7921636EC8846D3E1096928F500B24C5A20D5FDCB25935BE33BE65098FD68594C365B40C6D7CC0C2ABBEA1D5C208A9460E1A6F09505AC431AFB4ED954130548D0E8AAA438A279607842DD3D2C04FC91CC5222A3258BDE2DEA14322BF5A80D9ACF0174B4E4C6E8AE6BBF9C073D7BDC75DA2EB8DF803BD09DF4541938260722A2D95E684F873879BB395B6F8EDA035E819008A99076520A26FBB30E69E548A65931438FAC88966235B2AB5B264CF19531ECD33A64B6EB38324883915B3CF05A1F915E448C4E8A43CECA23A705F2785089C11A2CCF0E553CE74610D43C0C8CE6D2792AABD6480C094559F088028FB1C594B9C2F1308A526A2CA6F08E3F4937D580A3353259908BFBC258263F545A4ADA128D8A66EC478D452A37E0DF638E3906320B8F160D1D9A7FA7D84885403512D51D29DB4A3BB199DD924930FE5251FCBAEBAEFBC217BE40AE46BF3AF19901E67ADECC509910450F8D62E29CD7AE5DBB65CB16260C87C3C0A46D73E769D7BDD3FC1D4C0C4F88AEB455AA84443A2E21678F84C47055C7D5AA4945219C304C9833298F08C0D3C730303DA43C719AD640F1C80F7DF004DB4403AF320C129A7030BBDADFFF9C28D23027A040A6653054D8DABC7933A08DD9A267487EC03AB63CE5945320FA70149E6E3D509A1EAB761B8DD839F9E493EFBBEF3E865768A014319F06678D8C20DDE32455750B4B78B431508839E9A493AEBFFEFA7DAE57ADD35A8A8E14D958B09A08ADFF5A5E93C1C1FB8367D02EC0AC6673068B53475737BBD6EAD7F54A5BCA97700565991519687F544E1884CAB207A182911C4FDA128AC69E73F62C7DCCC07F4E519377488235F1841E794AC1575C7105DEC21AA097B0064078C16A4FD4A240E1749205FC04E10F74702D17A3529EC69E52A30F1B85D892A4619F7E021636D1AA871AD21731FD9813142A92F52529C650362285A6649C48BE9E96F88CF8B1DE5CAD346954DD982155F414B196D95273ED92E754C417A72E49533CDFF10CB7DE0C2C1393905822E28B5F2C5886340319B0CD21D397BA9DE8E936C6218107271EF3D1FFBCED2BBB4CB1572EF6770E66A35DC55857A3F86CC2EB89644A956235969232082988068EBF6B74381D664326FD49E829B144776D720214A689C9C7A5E94A0CF301EE79CEE141E6F1E4744F3D6A38F658B5B8C44F3A99EE1D85B1742A6A35CBE59A6B6662D55A33EDC4E9F809DBE5C88A5481500F10156462A41EC5F9F91F7FCA678EC6167E480B2F704CCB8E86836DC2BCDF08DDAE212F8F2C304297409060D1F64AD68E061FFCE0071F7EF861F40C14D26C89B0B7FC258E124B5BF562C72107379F1935AC7CB2297B8D9C199D0EEA01A62856B45928753976B10E9C485D70EB1DD79D748A1573CBB54AEB6862CB3CB182A82941241BABBAC5583599127B02A8644A3C906A546235A925B391723EEB2F2BBA533D2B4B43239964D5342215CBB3EAD2A8661A529554B4B354AE9839C3AFD6CC6AB62F97284C0DD7121D09AB56C6934632E23419E4AA7AD2DD77DF0DB26BD6BCA634DC25B6541BD624B88E31D3085276C62F152A209B5133DE104CB627021CAE57FA53D19152B7DD3DD998AE473D0924E2C53C3F9074F380626E5CF245C976487D265B5859B227BD642131D353E96CC652D3F5B2D80DC3722395BA8363215288193D8D8E697FBAD92552320E6CBE66B2F962C92E980DB3DEE7CB684F87E535BC99B2E948AC7ACFB93FF8CCA5EF77C04393F189C64CBA2B5D1CAE1956D4C4396CD63CE3E05861BB8343E4F478F57120A86BA4D3B144A90AC1B4191812B552D8F9BA0B98FBD9406A5913728B5173B2D22C61276D096A76421A95FEA4CC94A58EE9594B92A9F1D24C2521DD157322D12D6E336B940A4DD731CCA82F55C35F12C48625525B55965179F8A6FFF9EB933EE126765905A7E99B3D7DC9F1A9092306E049BD2091C0C67A419E5B701E681D796B14C290143C890631716B5DD2012A5312BF2AA6959546710600803C72FEF9E75F78E1858C395497EDFE387130AF5AB55A65A1D3B7CEAF1AD482D94B2D2862D0C2A0745CDA85187906DEF9CE77BEE10D6FB8F3CE3BC9B195C3D311077CFACE77BEF3810F7C80821B43A1C142316334C3D84C4D2465A72F345C1887AE5D0D0B638E9286F1A2313D13941FF7C909C2466D5A48C06CA05732928FD23A992D7969B86E9D92242534FBF313287094596A29E639744AE3A03010341EC6B0B3AA256D38321B40A991A061270F87A60849FD80E2A1722FBD9183FDD39A8CEF5FFEF2978F3BEE38B578A8CF1648C3902779B92F647F08F4BFFE51E22B6DC104DBCAD4CD573187F99C400BF86804E79CDCB1B0F9D59C571F4943E9E8C86550B584CCF4AC8B008C3DE288237EFDEB5FA3DBD7BEF6B5BFFBDDEFA42D1E6986209941335F8F476A13B629AE23DD557342227657AA3E399D92AC99F20B959AE537B0B10959564B77958DDF0AF8703D1DB702F1CBD5663A3B5BF7D868F6D66383D1D2A29EDED8B833E48EF5C456E76B6E4176A5C58C89ED431517AB0AB923263DF19815ED18AE8F6425579EF19BD25CDC6F0F96A6C5950137E57724471BA3DB3EBFE9DCBB6E92A961372DDD855CC96964B2715A54683C8420492776CE4C1B0765DC17A63A9B9D652B594B4CF565AD922FF1C1F48C8CE7CDA2D8012414C7332392A94A3938242ADBAB96644CCBF49A53D101A94E487F23392E55CFF0259D8B3467BC6E5F06A5C35F51B0268C66C98E592D21CA08247021EB0804A058225DF18A207D20BA8DCEA4044D99313BCD62C14E24FA2A95DD09AFBF628CE0D7080427916E3337B1B87CF9F11BEEBEE91B4393430D7722BEC4288D06AD71AD72A4D9E345C78DCEA5CDD1B8C45F306C2F519032DE0CFC5C671A1CCD6D0411CBC19E1B861BB8E98811D4B1232EFE5F15A72A752B660D1C21CB9F6CFEB69936EB8DF285EBCEBCE6B26D582FB852DAAF4E75744AB199F120ACE17C3A09B1AB781944C88FAFBF76F3B7AEBB737AF7CC9414834C21559082C4318A13F1C1209B3E78A5196D390FAA5D66A63C60FA7B0B3DD23329113F5E8A49B950F7E2E9A566AC562E8E432CB06A1231D275FC271D93A9E2A1871EFAECB3CFAA8EB8F04D47F2F232C0ACBF843FE9D03DEFBCF30C22AE56D025E924695EB366CD934F3EA9F6A270B16C5A09D858ABBFA9104DC788AA8134E0AA9F9366E5D5AB57EFDDBB976AC46DB7DD76ECB1C78627ADF6074825F8154B459FF8BE71E3469DB0BA7A649EC758EB88D11205360066C0480F4DE3D63810B526A9A0BA4F12A99C201C80A4713E3AE29CC00C99D518345F49756AEAB37872EEB9E76EDBB68D8C2DDC27C3E3A872517F57EB0DFD3A7ACD03357D4658D36EA6A000A305A8D1A716772303632897C68D98A14B725EA96CFE2A68B75696F6DB3731295EBDA27EE6B7A701416B14D3B814F60CEB562AAE86DD5146FB920C99556B40EB7FF9CB5F32905A0DA1CA5AC2BEDCF5EBD77FF18B5FE449C38B60B43820E8B9255A25ACA59DB1A1C14AA724269695641C804E67FC9A99B4F3F95A20F6DBFFBFB7FDF3D11F3EE7CC2F9CFCA97FFEEADDF707870D14B60F0F24FB1AC5BA6F59536E5E220D8949AFDB3F9619979219338C9AE54AD33C30F5E672ED05D0ED4672B2D6D2F8414263ABEAFD7B2BBBCAF8B34364C6E9902EB1EA33CDC90D175DB8E9B2CDE903EC99B1464F4A26861329C9C4FA4AD0456ACD203160559E7B4978A203F68FF185C988D4BD74538C885188055672D10176FCD9B117242D465CA283D00B3AAC81E1F2B4F4640ECB8FFD01AC45AA4EB29989A7CC097F7CEDA9673CF2FFFFD72F7EF37B5926B25BFAABBD19893CDB359598F43BE3CB461A2F78DDD8369149893725E544673CB761D9625846B5DA93EB2C4C61908EA2B9C78B37023CEECB65B64FE5B232EA9B95A60F91270166919449F48089E49DB4D7510F0A8DA46B3703CFF5932B22EE68F475FE5F3E557BA4D052B21CE99D909217AB98B55E1F627636966C949A600562465A1BDB841C2E3DAE4CA42389B2E7A6A4E148CF38F021339E9BC140D69EF8E2AEC376947E0D9D2C133DB0967FDE87A61E11A7691AE2D772401147EA8144DD485E924BB2F5BDE5A4341BDDE2A5C4DF25AFE9ECFB75AA24C3E5CE48D6ADD79A62D6B19149C30722CD9219C0399D4D0F8103556CA7D100DC7351ABB2A8093E2E4559E20D344BD022662A69DF28BDA4FE2E5DBA14F23743FFFDFD5730D4E724C8200820BF90DD2988934E1ABC1592F638D00B72053C7CC73BDEF1C31FFE50DAB5EB689632DB17D728D9D24AB0D2362C6A39521A64692B00ED03C93BEBACB334C5236CF5D6501635866A346EF8F61246B3A96F677FD6A13962B55A7EC3C6A57BEFBDF77BDFFB1E8E3AF51812719A118C500109735FB76CD2DC1CCEC0D2EA9574A53235064FC06CAFBDF65AC2443D0A5BB76E7DE491477EF4A31FEDD9B3472F075516A2DC9BB6667268D2263AF6B559981472448DC5661B2D0ACF15D18877E69967624A50DA1E7EF8619C793057B0494D23F2DBF743309E988672AA11ACB103FE440BB8D5BE428EBE38CDF020A15CB812AD8618D152CFB80E2DCBFE27720279B9358F30A4B604A8E20B83DF35754B297E980170DFF527ED13C06730AEB4EDF57CC8486DBC0E38E03BAB36319D0D2B0219FDF8C73F0E3C276EB474F68823F9F1C4AC2FA3719115ED8C9427CD81B43D6C14560CF74EDF3216B852582ABDA7BE7E2CF2B4D46BD99D3DF95F8ECBB392F093A64417AF5EB2FDB9274077E49296B1A863E680786474B8A39C76D2C77927DF7FFED609BB299B9C6439E7948B53B7966E3FEDC79FFDDA916B26DC7C23180241956A2C2325373EE0AE9A8A3E595F276F08DEB86BE363FED255F69E9171701867D2DEB428BA7DAAF72703640000886E28165888BB7D13D6E89252EE14A82CA9E7B60C4B2D65C74A8D462A766E29488A3162D8122FDEEE0D340E1BB67FF3BAF8B2DF15C631EE6BDEB0F4774F8E25DDBEB2B15B36486A775FE907A391A14C446AEE79E9682A706B15C9D40E9E7C63636F7DF0E73BBCC18ACD1D114B8C683951C995531989EFEA1DEFF878DFCCDDA38E97EAFA6434B624B7C31897CEDC929DE6DE3B5E10CF929A6D899993BAB964E5C4DEE79CB494EB0EC695D450F9E4A6D99DEDFFEFFEC9FFD9EE4C48212ECEF1E26533CD44A1FFA9E523FFF122C86BDCB3A3E964BE9C0702B5D4925B25BE1BBCAC658EB1D356A3B6B8EBBEC9C95D2589755AA74D277AC51FB43B533D7BBE54E9292C1B8F3E6EBB56031C2A11E4BB9BDE07B28D4E438C19C9CE5AB82662A95B539DD3B13D4BF75A1F88663B0F998C8E267735CA3F9B963DADFDB5CD78DECF4BB489A125692C6F74BD189D904FCBE24876F08E821453B144D137CCCE4F2C99EE9F854BBD5AB9633C3A9973ECA411CFE3ECE000FEF55FFFF5430F3D047E0062B2406C1209AC962BA61C130E313024E40C7969EF0B0588EDCC77E5F967D6DF2B951659F486EE97A09D77864308BAC38230CC2A7AF7BBDFFDC4134F300E8C33A3B986BE04AAA8E41C1A1BCE1C1999AD1DC4E872A80BB7DC728B84BC6DE4490C8F0B57C453283089038C91975DD04F452212CC56FCE05BFC69CED5A018EE9E7BEE21D0B5FA42F86A21752A86D37AF5215DA64A2BFDD03D0461CAAE8A91D6F835DBD7D1842559EA108CDFD592DA7A3F0617C54C6C7C487049B6A86DC8AC78CB7803BA0AC3691CE12AE5122A03CE00470D0CC3D0EC8181C8DC445D4E986AD3A7A2AE05CE96D178AF542750B22EA1C482700C06F39FFD79F5F8E839D054B2FD71027979A299067186432F7870A07B811FA8BCA22A608BA7C6D3B5F2CC5FBCE64D8F3CF9A85CDA1BAF46AA5F1E060112EF20A739BAB4BFF97CAC22EF8654D92FF70FF694D64C5FF7BCF38455F97ED5DE1BEDEAEC1F2D8FFB8D7AAE33979E2936FD5E5722E39DBB126BC52CF6946E1EEF5ADD3FF9DE99BE20327E7FD93F014B5ED47D51A19CC8576BE672BFCB3830D8353C6694CDD71EF8F6C707FF7BD1F12B677AF3956BA6E25E975B9DEC5E911CF5CB2B8E5AB12BB54BE23139AFA6575985D341B2F1AEE960BCFB8CFE89DA887C53A46558B63B631DC1E76AA5CEA2F525698C8977A5634C44E3DBFC4AA4BCA2D6BF2B3202E5A3B7B97C626F3D9F1C5AFEE955F9BE42FC8A48B338DA94C8B453974B6549A967EFB6F1545D4A19F407F5256E058E2FAEEF5662A08A004F7279B1FCA29716E72CA903A16E4A5AC391CCA5F5A972FD24EF1D777CEDBF3B8EEEEF49F73F77EDEF5EDF58F1DB8E89659389D1E4581D4C246FC6A5B7121FE93A7A917188E99D37BD78F91B9E1CFB458BD49D17B17391F8B9AED1B93C73B2B5E7AB2FC85E711A56B6B373AC308E06A948B2591F582CC61E998ABEBD226F4A960AA6FC684CCAB2EC0B8B775706E5869689A6B92962E693C6964A7C99592ABA52347B9A96274625B6D8A93929294F3AF9DAD9E5C54EEFE0D5439DAB96953F30DEA8F9C177FD96D7F04289FF215AFD46DD2ED98E952A7945315A1C2869A74BD6CC92F3564C44A66B37E60582AE9D88D4BCCC66A339E3176F74635559F6E1D80BCFD79C1D894AC38DF82F098BCC4322B908972A99CF09683555679EDE2A7FDF7DF79D78E2892F79CFC241F71AA1C11829A63C40200DC778FD291F2D4DA32608B35DAF9817390D0E0EB25A0EDD127C8BF457830EC3B7A4E22DCD2367E02305F333CE3803DC2531FBA1159E9788CACBD31495FB6955262AC214F4980148C224ED68F139CE64D5060E3FFCF0DFFFFEF76186C71803A35D2886FE648AE461731656E1CF56BAD6DA0C5EE896C770EC20ADCC582366B86EDDBA071F7C70FBF6ED3477CCE104B41A318180EE4A26876BBAC6EAD5ABB1EB5080D0FF91471E096588C9FD0032FAC1B6EA25B71ADCA238B072E54A401233BFFBEEBBBFF4A52FFDE637BF61215F66EA3326123B059184656D289B283D0DFB4BF827460C5F1A4515849FFD89330B73823959056A1BD48C3609E5F7D2FE49249CEF1F0A5B87007CAC912167E4D6733C37D859F048F4FCE28B2F6A215596DF8078C1EB565AD18AA6186939FDC8B3BEF5B5DB46CFE95AD5C8ECFCEA508FA487AABB5B068166CB3692EC4E342A95AC6315C69AF56B243D122F7EA51A9D8A0411CB8B067EB9999044C52CC9ACCDA7EF73D97AC2FDDBA17FFCC99D3F338EA94E2F2F74DE6AE5F7F419CB07E553D2E8EE34AF9E5E3ED4B113F435318EF6CED0619DB243B63546A4E99C290372D0EEEE3D816D3823D5DA06C9B9C6F468101C184D6E6AA1FDFCF4DDE566FFE8590DBB2752B9A6D431D1EBDBA389B4353405E1D81ACD8EC4F2B15AAC2C5BC5A9C4BC736A86A4FD78CE335E94A81C16FB5069E4A1174F9F91D788F33950732BD28C74F5AD1A8B3C2567D8FD93FD23370E1BB5E4AA2302BB9C1A7ABE98F702893620F78A2731683F8DC5236F1C8CFC83E9593ECE6E738344EA8EB7D19578562E9C31E3B61F6F648F4DE7C5956BEBFD1E38540FD69B3AACA7F1682FD65BDA5C2D61EDA78A1F9106F89CEF66EA7EE13C1C5719582FC331B137C483479AC95F471B7B5D0CE9614857527626D1E597871A75AB9E3B3E6176C746BE3E95D8ED245BBEFBEEF1C4708FD75FEC1AA99D299D999CB9AE962F984D33C08FDD117FC2A80AB85A79D62EF7291988C971071E7FE771DF0FA47F5C9ECFD8E5CE46AB973DD7CBB2F2A2DDDB8622E0A0408E886F476211D74C88E15FD831E38DCB756EB7BB32929C2A55F315BF2FB8705A3C43BE5C074805F37F4EE4EE6CBAD255941D1ABA46DAB270B537A5305A04FE7DEF7B1F94090619B682DAC3A17238A2575D7515F803B3FEB46CD3FFD317B1C0D8D216CFF5C4325B325C588607297CA9024F1DD81D7ED2D263E79C73CEB5D75E8BD96EDEBCF9FCF3CFF7DA775E92EE53A834DB975D906180BDA107B007DE35C898C870A2B6DE03AC9448B30418FA829E19F7C29C00DA6AC27E729D3663DD94E5AA9B5EAF11C693134E38E12B5FF90A3B619006B50D350DA91CAD99076057581AD3468C7649D4B0CD8A1F901E66C0133358C94E9DED0CA394D92A6C2323231AA9C6F43DE5F16C4F3287E5A0138C7BF1C5176FD9B285FD00DA0C4F24AD643566E6FEE05D167258B366CDD34F3F1D5E4BB8C20FBE339991AA0065F370DCE7ABF884F901FBA4B4A1F63D691BF7683133DAF7F486E7262FF718CF8FDEA3304106C35B7A68AC3BE8A08340FA3FF6B18F7DED6B5F937619225D4BC619281823CBFB578DEC7EBE7E798B12C9508B58F46F5F52FAC5D4E2D125D3C55A41BC9AE43B1335A3D29CBAC258337DC8D35B9F591CEF1F2C8E5C70D5FAFFF8E6F79E79F49954EA50B33E34161D4D6EE82B8F4DF45EEB34824AE54B522FCAF2F5998A0CD4E3DB9DF3653C2EC605B238911B4FD8F5C268DFA295ABE36F7DACF640E9F37E8BC25E62D580686E23C8CA9A697976D30AEF865DFDE71F3E31F5C499D5B3EFBAEB2E9C38C8891A6F8AE373E2D613B7ECBC510A55790033CF44A5D18A224AC49B56D52FC497C821439D3B329FF52183A04174A2C375AA7667BD3161F6C911A3B1DFCA8696DD21774566CA2E08C46EAF2BB02765BD58BE34FD962294F9B913D925138FD62362BB7127709AE2D6A4D6B2FB1FB261D9B37B4683AC23CD8271A338A5546D4B293D6A2CBB66912DB11DF242F292E8F0B2A89C5C3AA033B5A3D814BB267E3C5E5E74F15DFFBC7E7A93A4C43933D2B062D112B48D664EAAFEE5C93199597DF1C098744C5DF3F492B12553F78C4587A325A91CF817073FF3BB67224DDB8A79752FD3B2F09C9F312C3FD854926657261A91DC8C143AA5942CD8BBB267C54B8DB27797A40B7DD520EF899F887A65C0D790645DCAD06836A592CF3A95FF33138C452586936FF764A5385338E9D833BED47343F29944E57B15A768D78C06E87BC430ED9A5DCBD5E58C44C2082A5BAB66A92BDE04FA155A70DE508D4F4BF3CA162A055F840863F89717D30D6FBA6D50D5C2100B5F1369B46BB1A88715C7107BAD95230C25012CF61496AD98326ACCD6EB7815BEC4F94AB78E85D9B05E26044926C8D15C406396D1BE61584BAB6B72FF4B5EB8593264CED6C1669F9A378B55312896CE74D02CADE04F6F2A0D291499157C545F3432D56C57F73EE080032089ABA0142EBF31A7F83BE8359A311B9653D23B81A955AC5AB58A154BC036C2C9EB1AC518A6EFD24E3E60343D88CED0D0906A73FBF35E680125BA7334948896347A83FC97970BA5018A36258D3B26A0B466329F73E6AA21C5663F78B26DDBB68B2EBA88E61DA6B6AE5FBFFE861B6ED04BE7C37A215FC4421E7BEC3165D85C0BEBE7BC22EAAF16A17D52701594F4F210AD23A2161E33740590CC8B44623138722C1A4883D0159264BDE1EAEBD49B39105378D0B82B0826400BDCCCB26C62F7A79BF2CD89CC20C84526D836EC62331F14198BE4E28929A3983969596151A56BCC9ABC63A4A7D2E356EB65ABD4B467330CAA563DDDCC1525D22DE32740E830E21B6DB36C95AFA948C38A5E107332CDA253CB9ED0ED343A0BD7156AF1D15C556A9D0389E972C92ED4CECE4A229F9BB0A6BA16479BE3B91BEB238DCCCA7202F24BB563B0F6058934A5E7CBFD4C3AC1E48F3FFEF83BEFBCF32505717D6D69A1672C3D5E07F71ACB4C5C1B89FB76D11A332A0276629D9769BA85D53B7A9EFD7728EB6214EC4E6954B27D8B0AF66ED91BDDB4B4620C0F4C39C376FA903163FBBF0FCB5457266EA6FED919BA776F9F7FD074ADE4DE508C3F69B8DF2BC6064148AD9A04B6659B4DAFBCB9D13FD63172EB4CCF494BC70F1F93CF9B07340FDEB1E9F760A29DA72D9906733F7050FE3188C425737976DA8E2C97C28B4DBB3BB0BD4CA17CCE806B8E748D5B93995ECB2B366F2C4810499512CEB9D5C9DE66F72D203E65B95C168D2D1ABA66A8CBCD1683F251A71E7DFF3DDF9082D12DF5D1DC9268716FFDE29677267749CBDA1FAD9580550144FE2F389274FF62D78A5FDFB5533AA2D1092BEA5570BA7C4302D07437B33288ED34C6BCCB178B3F2E5F74FB5CA36248CAEB194E8C39E765EB12C955EDA9AF8C3AA34E4C9C46C2AD04B5D9E871ABBE39583A9D1B8A8F7B8B24F3AC55BA29E93423D5D8946CE81677C2D92889864C9F2BD1F822F7CA31B19A96FBD2790F676B2F108047C332D34D485568F4D6EA432F8951540BE80AA3C873FFFDF77FE4231F51AFEF0295B5173EAB733C7554CCF5DE8670197A09DD394E727FCB2DB7AC5BB78E055B284D736EB7DE7AEBC9279F4CD2C6EC4D0D0FC5FC81C777DF7D373B01153BFBECB381D6BC8A400D205A44C56CDF4E25ED240B9522F12F74028AD2242B8CE624D90D5F110712F0FAD7BFFE273FF989C6AA635C66485217A3C24146C2982535259B2FBF914339010B45003E1FFAD087307F106268733FF8C10FB0E4A05D2E4642360D5A2768F4A0BD88530DDA55DED4C1CBFA362ADD6B967FF81A230D6905D3A2FE88B5B36A021447BCA599EE5A321353026269F9E8F95A8B4A034C32503D200C7C7EB437BD458722AA96B9659A6858D5982376FC3F31533F4CC0868A79C1051768D5AC85B13D08959267F10C6336A7CC6C575D550DAF550C555A265F71AC56A60658328E7D4CEAAEF49C981EEF8FCAF593CBA6D2BB53450894514B8CB312F55465D970DFEE6DA39D7ECA4AC6C6DD0910C848D33133D9F8CC58E17A74974E6C2A42DE85105ADE64483A1E3DD3B7536E39EEDA9F482CCA1C38BA79149C00345E3A66205C476AE26D028E46129FEF88C9647963A61E29242ECC785288189611A4CA17CC38914E77F34B816A2A21BDE4D65A2BD22DB1ABA43E6D053738326127374262AFB5A230937E2BF8F53D03BB0F1C8E79C9DA4DE5F8945441AA979465A4E104523F4FA4479267774765627A8BF4967AC7AE194B976D484F12A977F8627AD23C5F6A899C7BC55477B56F2239DA6230B6C855D9D84CA1B63540773DE7CAB823727D579799324E7A71222BB90B964E4148CFEE8A9E2C89B4155DD73196B4B3123DF1F27F2EEC18F9DE03FF3E74F224548AC4055D71AC77AB447FDB57F8667E75AAEB99EAA05C6049A6B9F20F8B762E1B8A3D9BA87DD7CD4CA52B52F462CD0008D88883134C983DB27EB215C773B174BAFDD3B191642D598E5425DDD2AB0EFAF88AE70EDC2563225F91D8B4D4622D085BA96C502AF749624FAC209FCDC8D2829C9B71E2AE55AF457DC8FD8951BB228BC43CCEF1EDFA01F9C5BBAE1F3CFE5DC7DEF3C3FB9D45C9E2F88C0145EB7CC8624DB94C1241BA7279552AD9D4868A2FD54A141A464C8CDA4025331E98CDC28CDC29FDF925A3C6E02BA2C6EA31D6608D3915EE0CB590E81D43D20EF4A41D194FA808BF529D205CE1C8685F434A071DE3964013D59BCA0F1E02FF78891DFE541D85F5433055D61D94D9E01356A760AD957025063C616632893E391E4368345153939BB4C8A884FC8D9A01A70E525E39A9F3D4E47EAA05186EC58A15CF3DF7DC9C28AE70A895D693D1E46FE549732CE912BA5F349CAAAA226A10AA1BA3148D4C458B926ABD20268AF3276A005A20411D395A77259CB1A985A4B4EA51382E8B69C0F458688A3876EDF2CB2F3FF1C413B1B36117FDFC0C700A040C7D631B7A9B75B132EB863DF6D863D7AC59837FD133B6181AA4EAC2C1BEEE7CFE135134CC096496E932B791C14B1AD1B4CF77A942A90B446FD8A6B4C475BD2C10391258D144506F44BC46B46529B1800B715954DAFA87CAD46AB9F7A9FE1919290C64BC6AA7CC8C4A7F6DCB48CFF4A2F1DB869293A050B500A2A02703B1BEA9A6A4CB85FCA668D3F7822DA558D14A27A3E39755A42E875FB8745C3293C61FA2EBA4D4235D574A755CBA23DD7BFC890E33E27B9677B1550A5CD9B4D832C69A6B2B9294D8C6542D28618919A7ABBC69B2598E24AF8AB1501DB397B552BD75A1670511F3925A5CECC1F58D9677F7F288449D6E3737618C24BD442D510E3E17EB4AA4C7B78EB4A65ACF8E18F978202DB3C865CE4C2C62AFEB6ACAEEE0E2FACAA9153BBFB22BEEA593B5E64C22685A31A92565FDA093ECAA6F981CA8F48C75E5AD193F6E45F3474BA2BBE2A45649355FEF98283B929E5CB1D2CA3C298F676BF64157AE9C96C28C35D2384B66BAC4DE2CB122868B5B7DA637DD68B846724B6EA8342D97F59B32E29F956C85855E5B4C4FC6EBA96CAA54AC3AE5EA6592A9A70AFF5E92DF89D38CFB46BDE1F89DD92E77CA2F47DD68B96C5FE294FB0239D3ED6F264712E56825DE69F78EFA8358AFD1E5978EF196F70EBCB87947CBD353EB4907E3C52E7C919E725FC329A7CFEDDDD3BB237A7E8F5B9B14D36FE501F8768FB3C8AFBB3529E7B715123BB295DBF37DE6C0587922B05BDE83A867C53647FCBA17DDD8049C87AFC243C7DE647B11ABD998E9AFE646E25389B5BDD5E258F0EF22A346BA142D19AFC0A9266DD59919483C2C94628D70DDA170DA1185598691F080E9E17CA59CC098975DA5A9E4747943DA658130D61EC117AD8961B52FA9074D619541622726892F604B2CAC419B925AB7A9FEA8B6AE7783B0EE394DD29AEF1ACE320FBB37FDD0FD27D2CE7EA2D0ADE21EC941F8FE1969FB0934238F76210AEF5A7666CB962DE79E7B2EDB6B9D993945939413840B3918ED4C7469DBAF94D1AABF845E104E8F51F09A2448515DC558CD9B3DEAA8A3EEBBEF3E6EBD86D872CE1A85A5623E0D4D0AB1A05D47F6B4D34EBBF1C61B35E0153BBB7BF76E4610A98CACF8A3B77AA92EC87493F085742C60475BFCF0F0B05AE4A1EA6DD8B0014066718239F7EEFEE9283A4727E05A4E39E514808249610B7BDE18A6A555DBDEF6B6B7FDFCE73FA79A4BE6AD26AFD6DA938154A4DFE82D795E09D4029266BDE514954D628D8AF3F554FF78FF0E19918E202855241AC836DB7A32D5FCCAB45174A0FBF5ADE819DD399C10AB11CF346253725A2457E8CC3F58F5769617A593431798522ACAD562B98B83A5831DA7CB2464D5DBA5B7604F99B166A4685A66AC11AD9C51937E915B5B9188F153326EB590DC9A2B16A68256DAB921EB5BA2B773ADA3778169C8406B833634C4EC908DE54C2A5D583F6542ABB9482CA33FEED78AC919299B92F165B3610C1A892D7ECC1B285A15D7C863DC5490287CA6242B05D36B05FB9F29AB9FEB7BF6CBC5147430299563C5294FBA1B89892D9568B3C3DD38D35D8D4FC4AA462D99137BB26FA6E55D1DB740A73BCEE8ABDA56FDAAC1651DD9D2E7974C2577CB959E942BF125627D34598C78E92F07C9C9FA183414BBDC22BB5032D7FB6EAFC895B3A19C6767A55CEABFD38BBC98F30F5996DEBE774626C6B6752EF97D72EF77F7CA2464F05890F2EA4663CD8A43C7774C8FD5A7C0CD929F8E96F726E4DE72BAE9953312293931DF29A6668C7224487B729E7445BB8BE74DA465A01A8D79EECE3A04D766DCAAFACDFE7AD7897D93D3A3729B64024906BD537EB36E365B49219E9F753AF2374CD97F4837BE312523763411F322ADE490841B9D5E5F969E457269114B93CB3D4C4CAE1123E889C978B72CDD2323FD1774B95E636AEBB4D3E8A9778C1BF957968619A6C62AFD3386F0A5065A70E3924B2E8140C772CA5A5C45A3775E8575688EC54AE9977A8CFF886D6DEEC4104FB21F8CCB6BB334AC93A4137F628674D2B24C9516949659EDE1ECB3CFBEF2CA2B59F59A7634CAC57A1D2B17CF2FE18B0CB5128BB4EF6960869D86D8F26CD334AC8611ABFDD132035A0754DA11FA1A864876A2366B866CF13258ADE5C2CA59AFC22B63EEEB7687F07D8AD28E5632DA19B3BA5EADE7A178337F1F0967A39D7FCBD83509153A27CFE37D6D645D44388D4A649C222969305B044913FDC8C0D4BAA58926BA53BC18807924BC2522CC09BCD0EDBEAF8813508A8712FCC637BEF1C1071F945052C53EDFD5E44CDD564DA4E0437A14D403D1EDF7D9D29CB0C6EBDD123BB62FD1199BBAFD459990CECFE4A697F7CAE61D9949B770AE74340DF3FA600AA2E567ADEC4867FE7BE332DABA47EAD8933EFDECEF9FFCC3AF1E2F4A2D7681555BDC94756215BB9AD1C9AC2BF94CCABE14BACCE4E4D7EA7222766871C7A5052F532F35ECC02C8B159592DFEDF54CF40E77BF67B1759F53901DE92B168F6E1F34BF118356556FD42521F659A69D8955CEADE8753D3CA1ACE2693972F0314B9EFA3F7BA529E6F9B2DCED1ADC38E9D9DDDE25134EB32B7175A451CBD76EB49BCF970EFE41EFF8D3C9E9D44E89C66DCF595AECDBD1B77DF9070FCEDF518A25A647D6554D39D8BF6AF6BE8D7392E235ADABEBD96662F2BA7A6247AE72F3789F1F1D755CA9A7BAC49C8C14AC40E2FE8A627721F7D96ABE5AF5B74A879D9DFE5CCD1CF0FD2F36C05A62FFD491757253F7EFE89F48ED591297CAA45849BB1EE9CAA7477AF62CFAC0CAE0AB663E78A172BE64CB3DF9FF184F0E4A50CD55BACB7D27E646D345E3C66A30EE453D478CA66BB4A27816F70E4C0CCEA4C59EB8A4D419CBB997CD548268E054C04F21D8071BC5F1BA925B2CB73A53BAB22EE3D2779F531DEAAB4727EB41396AF7642AF1626277FD14492D5B92BEB65998B66AC5B2674FCB0AE93EB2539A8D89074AE0628D2B3ABCDFD5BD1F57ED32D43BB113969BAF38623A9D7EE63D99BD3F2A40EB8AAEB532A3A67F9B3955894AA42E9D75F9BC881B49DEE249BEAB9CB3ACA951EF555968F87DE9D2A5434343386894145F3A14E1747CB37D7385925D4DEFD23B5DF747F1C3F95F8C54E1BB7A45140D148CAFA790AE2116CA03CCF6A5CF3C6F6A6C0D5B2A80A3AF7FFDEB1F79E4115A093EF7B9CF4120255DE69C9900415EC268D4B0BF170C6FE3C68D6042BC0099927B38C936ECDB0817E8A76C4B13BCCC4640697E805ACF40AD34FA1EC4056B99C3F0B4942618557F7F3FAF87D4C2C51AEAB3408DC357CA09A47D7D92D25CBDC6406D5F9A25AEE5C6E67382F075EDE17195B3D2B3AA090DE1A84D1AA0796F947250AE7A0ED9D51445DAF140F1F51E128E82BDBBFDF6DBF7EEDD3B4727083B4E5E1127A06609EC55C7C3C2752FC8ED342E0BDB0DD51653D26CF3399CC0CFF932252BFC6C49CA13D9A6F377A960C0EB5B949D1E1D916D62363A0A4649524DE768BBFE9A20F9DB74AF11DBF9C3612809B958AA546BF851A359AB9962DA86DFB9B163B43413B95272C1B2725F3D353A9A97819A3D2C5B73D1413327FEC80D538BCBEF18CC3E32906F945AFA7E0A9D2703A7BCB86E7C36961DEA2F770C39CFC74BCFE5E5713B6B274B8DB299B112FF68473AACE99BA679651B03ED0A85024FD396AF5EBDFED1DB3C237A4067CF8EB127FD6F4E6527250F6AD5B01BE71A81E3661BD298C836EEF30EAC0E3C9D7A6E85D1552A0713C1542CB06A034DE78C8CF76434F7DAC898331EB9D4CFE513CD4CB66A0C0727A4EB472C5AFAABE29EF2983C62249E69003BA75B258792B14AD94898D5A89F99718AB17AB01EB865755DD2ECCF75FCE1423BFD8C5B3C3023B178FAD129F98F8962D1890629BF52CB885B17AB6C54B34632BFA82C273A99C1BE60D18C15294C5F214E75C5C1CB7A9E1879D4BC38ED438BBA0E32BA1DB39C46D3B51366B95E03B040EF4DDFCE49666CC354726F3271A7350ECE94AA44271DD7AC27FC78ED3CDF8FD63BC0118B7D53374F1E122CDF9E7AC176630DA96593CBCC69AF981A74D63BE517FDDC6DE9A9D854A266B53CF552A8AC10E31F23CEE28EDA78B56FD01E7D2C2F3B241E446AC0598C0A8CF502C948EF997F510530C7A66AE6847CBF901D02A7773A0BF6F4DA8AD9E7FBD788943BA275AFB3519CEA8835F3AF983E9040016F419F77EDDA45F2FE47E14FE33734C9369C3ACBE3BAF09D0C24F71A09CAFAA3AC32ADA676994D08E005AA5A2041DDB61AFF47698B4574D571C789856F8ED44BAB41DCDFFAD6B7FEF4A73FA56DC468DFB5A2644EDA5E4DC6C390B8E04F2688EA8DCD0C1F22C5A41C0D3A8E21F4A640320CADC74B1A34A71637892FF498A79E7A4A13CAD4B6AEEE018DD496F6556568C0B29D8018AD3AAFA2084FB0FF5BA05917576B109181911FE03BF339C2F9C9FBE40466E8122B7608028D3F19C746919F25F23916334534813C5CCDFF90430EC15B80006F2F083BEAB53E07F75D0B07913D907FAB7B768E75E8D57102BDB38851D5E0E80B97BE607A0DBFD302C66910A5E75B874C3BD511756AE5A972C4972E818C13EC0992D2514E8D8BD391CC5B5E30511B10A948764A7AEC439E8F6E97BAE46CB352F51B80443221A6E7076EC64D4C9A2D1F5E24103B22B54A2E2A536E4E7ACB4BC69A7B21480EBC79E931EF39E6CE4B6EE8E83276E44BF1A4D100D94D400CEEA848B5D6892F07B9B1E9526A424A92A8A422CD483DA8795011FB9AD29044F125AD51BD1DDCB5A5E2EC49D65BE61D30AC94041358756A7A71D9D86D80024BC98AFBB9AA39D69149554ABE9BAC0854914612E30E54FAEA963BD539658DF7E6061C6378A62CF18E567D8591F154D0324B5767AD374B445E484147708D6A039B6CD9526FC556AEAA75BD60031BF32D4B1A46AF9AC089664C7A6B1092BDBC29B101A98D48DA6B25A65506B2B162A93E1DF352F5CE52A6B5DE5435535D5990E1783C6DB9E3453F79F467CFFFD9DDD717228D166F9C2C46BDACED98F95A3ED399A6485AADB6EEADAA7BB6F4955A61437B336294224610B77B2AE698D1B0BC58532AADF5DA5DA5C2642595E828D93376B1DFF64620D543BC9772C558D4CA175EDAB16ACFCE19E801D998E41B2D31BF950D00C8D492665FD99D14A729512312441325B79AEA4C556BC545156B0F647F5FE25149C7E3E5DD55D38C15BB6A329E8AF63A6E69A655B1D200B3926CDCA81783FA2BD7097846C289F12FE30446FB9A08BD23E2EAABAFBEE28A2BDEFEF6B75359E6E90DEB11F3691093FBC3174EF120F1D8D0F7A07AB4D9BEA490A447FD8A0CBC0BE737D052A4F79C842FCB9576740DABDBB3AC3193B9C02778433AC90A441BB4049683EECBEC3D159C3628EFC73EF6B1BBEFBE9BE5E6799D24278F79FED33FFDD3030F3C406244A339AD196A16A0D19C323EEF9CE115EA7AEF02D51796C3D44C059ABFA59D1987EF7A4DB17EC219D17F3E27D0BB90E8402654D7AE5DBB61C3064E8CB7AF307744932AE673024DC7A3CF46DAB55A83769D74DACDF1102BFAE4273F898777DD75D79E3D7B78FF381927A354A51DC5AFFA282F95E5256E9A5FC65B9A09765E63A731428C9252758DB8F4A773D039D621C081F1BE7A3947F8C289F970D6146BEA944C25A37AB14F8FB1B4C4BEAC2D71DFAB45A56943FC12633A82E54847B3C3961E3732DC30ED5A23E1598371DB71ABF558C4A87B41C44ABA7E3310578C201BEFF24B154B56E4B34F0725491B871462DBA529E996613D3B231381C4EB46A1910E4C501E2756356B52CD49FF14D48BAE646CD2AA8194B7DCD5ADCEAC56DCA867B6A21F2D23681A81E1DBD64BC931D495B5B079C30824E1B7E8D6A4974876B88572441A951894918303191C97B867D52241299E90523193906A25ED4B3927E971D0F098405A96FE6CF71BDE7EE8CFBEFB54C5F1A4E28A6B77E6FA538D7AA53C38197141229DD28015A996933366CD497846D9AF0566A2C3B0668C427436BE088F3B339958A930117163D6D26A6DA7D4725E6406D34EA7E255B71AA9D8F568C3F0FB821585C8CE5A326216E25EC28856AAAE935EEA4CECF1A4A76FD5A13B773C94080083DCA27874AF572EBA4530A4A81D0BDCC0173F12355CCF954826E616C0829A99A454CAD1A6ED89E545AA7DDE81860C4F4AB21129DB66B9E949E0CFAED7B00EE9486E2F4E485F2A3AD8888959CDC83F1CF577DFBEEBDB11AF0501473A1CE99A964A4D0AF1E5B1EA8B934B077A4787C74CD38A4493E55AC5B0835685BD8E5CD0989646900621AD5991867FF8C1073FBAF72930800EEBA064C3AFC8B8B72651D833962EF945470CF795D1079AA6E75CFAA2D5E6FFC80948DAA42DE0686E54F87EBE85750269DF57C37B9AF0842495C581E912048DFBF0873F0C02C124292DF2A39C803778A8CC152EE1A085F829C7714A6A4E51D347F8CA6C264340D066E2EBA9A79EFAAD6F7D0B3C898E628C029A050620ED0AA674CF927A0E0C0CECD8B143AD25EAAB90B623DA9FBDBB8A0497448D26B5B3CF3E7BF3E6CDCB962D7BEEB9E7C82369D7C2015396003860DACA59211A3337824219F95FF8DAB53F8713D01017CC960A0FD7DB59B76EDD1D77DCC1634FF28D798283CE97ACC34F94CE828F32305742B7DFE8CD77F2F2EC6E75CCBEE52D6F79F4D147AFBFFEFAD34F3F1DAB864266844A3CB17396C5657499721DCAD704A35E3EA1D45FD765ECFFB6BFFD71025EEE489588B5D38D765EE1FEDE25D2AA9F89A9E3131313FB8C2235A266E0A3AB00FF491A52F7C44DB664E158C989808876943D48FE652B80FCE004860B9A9092565808FE1789DA49D7ADE3253B2A2FB147BF4F8CD15C43BCE4E179797C45B9EB456332C865E38DBC57C8A541F11B43E2E492453F223351E999488DC7A001482A9F7163A581B25F5CD19D9A9C982AC64BE04FAD429EAE24BD6457B26B77793750E59C73CEB9F2CA2B95D5B5B6C37503C925C4AA486DC669B43210EA2070A9914CA965F76A9577882DF14B531097535D5D9572CDAF759B2B5E7476A5AA565AB2C3F664BCB1B46771D7EEE1E7BA6235B7E9617F9C660C6CC283702F552B9094BF72C61892441D343605A1D7F1F2F5CE162FA939FD46D66C8C0D0197BDE599A0D88C4E79AE59EFF423D565E966A9DA9CB2BB064AE5E15CED1057B677CAB23DF1DDB156AA6FC7983593310E283466A06AF5E493E3112824D259710AD881BEA80CA79D781142472C15F32BA6CC06D3F72CE91A1CDB9D71538D6C67901F4E48730ABA88918B55AA4612475DB20DC9078EF876AF5BC2412DD9A95CB33195AB9FFCFE931EF8F60F8BB5B16450AB3A29D730BB5A44C999328A4157CBBE2F85744A92A63D5DF42BDDDDAB3EFC91BFFFDA57EF00072A16AAF158BC569BC1FEA65CA882E94E490651633098723A63C7BEEDDD3FFECECF77754F381312E42CB7DA4C572DDF8895639027FC46ED15DB0C28EA6921CE3937E7189A31AB219E5A8945235516BE774D2D063C454A2C9440600638FC20C494DC49AFA5EDE50B07D4EB8D4EB432A9F157423735EAE57C7A5709D90CAD9CA0A7175E78E1962D5B8E38E288471E79040D582B1BEDFBFBFB49F7C1A818B0C8840370148DB161BA108926E7A3890E5ABF89166A46E6CA6C793E5E104106AB1627757B2AD0F542665A60412B6FBAE9A633CE38834E02095D02BC40ECCA2BE5042AC3722B3107F0AA9B6FBE1930E1DAF59E06164BD09BF3E67002095DF48895AE5EBD7A646484323E130F5599C3BB071D74105AD257A42923F895F2041D42C66CC6228D780B689CF4181186BA0BD039BEF9CD6F4ADB12481CE34F32EB10D35BD57811C5ABC890FF333F3A9C1D4F64DDA0D028670F5B3EFAFC8BB159EB6ECD6991FA5E898D456A128F2D2A368B6216E31123DE199487C02732996C613C1F8F3A5ECDC70640864F493D58BE667C70346D15A486F67149C4A431DD1524F3CD7AB3159E6AB5444BC8342D838655703BC49CB1DC46CAE89E092A122D4843D0D837CBD37D8E8CD43B5B314DD2D1AA289AD91583A85E8D444D0F5C2B689DB572BE022D013A43D248E48382DD69BBD3F5B8677E71C3951BAFBF72BA3AD5E5CA940C003362D6305493A6996D3AF8ABD0AAE21C894B90B9E2F22F5E76D1A9B548CD8E8951C2727BD231B718292EF616156AE3C5FE4662C40730BC54445C2FE3DB915656AD808C962DBF55B91F6A8A1BF35DCF8B36A219DB9FB0E3925EBA68D9B3A3BB9A563E9B05BCDC62151A561C1AD08D1BAF387BED29AD1B362239C36D6662B592990793EB4958E385CE94532F59A5CE724753CAC564BD4F64B20C68D98D66C39FBD5B24C05E194D538206CE4BABB27442A219A94FA7833AB4E8295002AB335B9EAEC9F2BAD42C19ED48C84425292634B27A67C39AAEDB582FF648FCB1A6DD4CA4C49B1637BAC4F1A66AB15AAA9C8C48339FACB682825B72B3530777379D78220168572AF956286A4B54E888E58C5A61DA69CA8A0396BFFBA347DF7CDDF569D389D833335579E7FB3FF08B9F3DE4554B60CE3D9D3DE3D385BAD4B54C80161D7A15FE4556956E616C386844357728E6AC9EAF95D71638484A29D47C7FCD35D7AC5DBB560BBD312C955C4123882494C915B40B38F3150A7DE1E2F212E2043CD8E19874721769935ABD309DF229E9205FC74F14E4F19C0E74DE4A8A2F0C72A5F91B8489F662BE4BF2C7495201A232A1F5FC980301A08D8D8DA119968C66F8AEF7896BA6AB8462EA59884D66ED6F98EAA64D9B20296BF254387DE14FF9EC8F13BCF6B5AF7DFCF1C701348CC28B29687DD2AB8F7993B8F1F21B7EF6E927A0FCAED7A2B17E6D3870C89CBDCD0DBD71EFB88AF0ED48AA153132158D8DD9ACC005104C539A1928CC20312CEA89279E90B62E28B3EA20B320197440F514FFBE64E278E5B1587FE647874BFAD28A3D8900B76D29B7881D786610B10CA9663C6BB2155F28990A08437CBC518E35CD0C089B119F094AC96CC748FEFF12F726609295D5DDF8B9FBADBAB5F7DE3DD3D3330C302C2218779468CC17922F065CE22731B8B04410019961DF666084611F706411028A1F286A48946C6A12F9DC9098888A802CB34F774F2F555D7BDDBAFBFD9FB7CED4C9659841F1C9F34FC1334F77F55DDEFBDEF73DE777B6DFA90A5A86AC05BA6A96E3B79DF0961FFFFC27BEDD914D251584BE234B5070F5AA20B997152D0805918D047E2C5CEBA23E4B16BC466A88E252110EF50E98AEEE1828F447C6636BAFB103C660AC333857AEAF7B68C3E68F5EAD19C27AF35C5F3734CFF1A92031461498361CD7B5B229A7DE2DE4ACA566475813CB2DA8B6741F0A6A6131F040B651D34C8523BBC385B4950D3A1D13225CDCA2EF8C95D3027C7165342BDC14581D1C6FCA4E457A5795B3A3839D4A25EA38522417B362EDD6DB662C972055D1BB86E8E7A478D9AEE37BB8F874553BF684D7D7BEBFF4627707644464E5E843DFFEE2CEDDBEBBA0C7417E6050D58DEADC1CDE3752E456C1846E008E2299DD411DCA0A8CB4322D2FB44DE1CD0A202341D934CC9495F1DCA0DD69F718A08444B6E010D7DA1EB7616C7CC54C7737BEBC11F590BAB3D51D94208AA181A05DEBE07CAA0E2AB709BFB417AA38FD036626745A68D1D9A514D8BEE86DA07651A6E3F3E63A0A3E6FCBF44CC7700403B5D883B17837C4C582E052B80B47C2C139B982D6160A861041816EA95A27EE347D156ED874D3E6DB3EBFB454312DDD736C1FF53EC8BAAE52AA216D25CEA9E18EC2BFBDDCA07D2431DF4BB2108C135D9816F455A822C940E63EAEE42CA65C7B42CAF8EFE6CD9B118AE2CE5CBB762D9A9F494D20F7F9FD79C31F7FFCF14F3CF104241C0B90E806C749239CCC43329AE520D75541DF35CF6D5AB9431E8D8A612CC3762EC125F849B832A9938875F984134E78EAA9A750FAD393E2B9DCA58B4421590C14FEE5F006AB13D23AE40222638B4D222ED4FAEFB2096EB8E186ABAFBE1A8532A9F6871E7AE894534EE1C4470AED9081956CD07A409B00FA1962C95EBB4C7121F5FB85B162604F1D97EF51F627117413D3354FE0AB68025E061C1FC29B123B45921F94D896C8D0A10A70D23DE419FB9FD204B88C82810CCAFE521B6574B4287541D5F3B6D750828C0C6DCD106DC99CC05470D3496381F992872F2E3EFCD043B76D7D5E82D09424D3D0DA8EEDA48B63A350DF5593E3711782505EC453622FE5E85D945F464FE28B8F015D4D8DBCC042E13C28A3400A2A5E20C9760E2FAB671BA106C3D5EC9EE26125784AAA099FF982D016CD8CAA878855972F5B3E3D2308048BA582808AA86A4AE946B50BB1AAA8B16185B61BA3C4D7A5AC11B49AA626BACA74DD6288DF151D458EC32550AC58EDAC184A2DCE74D55CBAD19521D07388B4730E34DBE9C9F1FA9EBD86A636144FB4E4D141EAAAC2E2495B1D5B2417A44CABED74D00ECA9534BF1A99B2E966EC4ED71FCCE52BB546694DBAF36BDB2A95BC2E44DDB00B616CF820BB26FEAAE7BCA0B962D4E856DDB283E3B5CCEC8859B3EB309F161D13108A87BAAA3433BE2082CD8A50B422E3CA44A915F402815A2A850ACF8EBAB8CFF34AAEA6E8E0562606D3A92E6C0B1D4D89FC66DA0045828E538CD0D49B50F2D9C5F917F2A5F16A7DAF1E8B66830DD1162D8FCF3BA1E5E6DC9DD948727329B4CE5033A04A100E3E516E87F2080554EC385E6F6DE37E9151774B4EA865B35264B81D474F655AC11268BE81BA533674C40DBE877A3E30648882A18965DD6AC36E77A25E3B6194964F3EF9245559C16F5D5CC99FC9C949DC2FC29D43BF93C424A9478017E51139FDA53E99C1ABDC831CB50CDBC93C271F08EE4CDC96DCF396C2ADC9241F0E6A330933AA8A6BAFBD9662CB44BBFFCA6623D03320284C4D691B54574C1603425DFC950AD088D599FC18445641D2017A623D49E60709CBE3F0C30FDFBA752B299564F0908E640E356ADD8CF378F9E5976FD9B285AAD848A426498AA09F744F88980827B8E11C47AA99ED00FA4A91843B0548296F958AE9A85A82EF42C750C51C0557E1E5E4D2D0EF5D8E33895A01C7496A553A48EF4FD6BB3463D4482ED9A2875E0A75DF255D4B689DAB31E2837481869E3E3EE38C33EEBEFB6E861ACCD677404DB09FAA20E4C1BDF7E8934C34A094042A7063320CAEA0F9FF5913447AA4C96ACA8E7450C46B40B124ABA576B7AA83EEA108C8C76800A75C35E5DB4B2E1A10AED83ECB4E3FFDCCCF7DFEAEAEE776EC36983DB78F12A1E8B45C28C26415425B9D834C2435211D89C62E3EF8822B4181DE8E3240D224431A6D4508B866F5A0303CA0CF08AA9ECE70C66C6BA1B3B73A00033618FECABD9EF34ED5FA65B0CD01E1B20BA22093CEB4ED36CA34D590F594DE6DD972A8A5B46CDB6FC6726058A08596E2A51B9ABDBC3BAE433C3B38E3044EB63EA24254CB9415BCBED92B455625BD935D73E8B17B9E7B2A0B9D690D560D8EBFE58477FDF087DF9F5F2C47A15C34D3CA88AE569DC5162A281928E48638C98F4A29E1D9977D548520DC553E4CEA5375AFDA82666C09236AD42E4471B50CED60184F510ACD52CBAF8745FFA48FBDEFEF1FFC96DC4A47913EAC4B8A576B0CC8A96EAAED879EEF0C0E8D54CA750D22CFC005ACBB1D0F22B4A2509B498A26FAD4F841387A74AEFA4C33924782C8589D894EFECB3FBBEFB1BFB1172AA1919E749659A0CE8C4DB73AADB1D621134343BF8AFF3D2C6B216A179C5C17242F25C529135A79F0E744A22D0A78358A03B40014301408F0BEC43E8B58340AC496406BC0B25246CAACD84B606BA3D170045579309E571CD1DEAC9B534AA56E756E79318B67CE3B1DA350B4CB8BBA8CD8482197F8CA952B897AE037B2A41CF013F759F4A5240743B22D227B57504811D316B79AE2E27E4E84677143A543740F4EA181BE3780E988095AE275C8B34FBD71C85B42E3E1CD4F0325A1C6AC0F745FF272241137F450305909ECD3609B23D9C7F1957CC5E4382256353235509311C7354E13DE940B74998F4FEEF7F266D8CB0616FFCC4DC92995082F4BA6030B3892F86CDC9130A59672F4985FFCE2174F3FFD743A85E6131F1CFFCA14224C864A0F78CF3DF79C7BEEB944328AD7472DB57AF56A149AA4EAF0CAE4343F9826E04A3AD6F14C579EE478605386DD7D5C500D2FEF8BC9D749F6FE3CEAA8A39E7BEE393692F6939EFB89548AD6B08A4D72D642DFCEC341E278B80928B9BC92951CFF53364154908D6AA0823CB062D55CB5E2B7EB2275B204A9664E758C612839D05990AA816543A80F0CAE5C6ABD28E8F9ABC25D21C94AECC5FBDC084AB0C2186CD8953AE2D99134CC68D0755033981D4D158D631CD01019A52227CA436E402EBC94FA35B8793C4B1F76DE72CC9AC6AEC6F6ED3B3ABDB7311CEBE75CF8E96B6EBD5DA41299F0E94F9CF1E0ED0FAC3EEE98E79F7BC190CDC00BF086411CF891870718BE9A2EE66BADA5E2F0506DAEACC4A01BE9AEEBC180C83D15FF939B5B835C9C725A688574DCD16CD06AA9E140CAF15DB0BD54001300D3A3BA572C58FAA2FB1C22EB35D1B2A657F3A05E498BD335B4239BBDD48CBCE6B93E7E53B427F26AA91297DBCAD26071ACBB208C0B7FB093EE0C56A3BD222953105A0842D3C8D6C6F313E097F72A5D14AB301FAD294DCEB5661A6A4B389196062C75C2F1AAD6A4B46A62ACFAE46EDC9D36545A03865B7771E0B974CE757DD7EB8A68810C59055A19D0BA66DA571BD9767E6040DB56F387B38DA8091D9106261E56426D2BAD1E9A9ADEBA2443535E39DC5A5CC4D91E874C2558F0F2010C89E705372D6220A98A2CC35827130AA3A0B954D4FC966010917AF2097A817BD3326FDB70E739579C8E7A5EF05A3BE2E926971F56DD55E9A0DD97F2B594D768C462AA233597CBB49A75E9E5D53FEC5478AD9A803236C545709F103446894F397C0F3CF0C025975C42929D653D77B190A4FF2A46A3FC10CAA3205F1065E6724A8FD5FB901380B88C70F3A3604240CDD290082148DC535A37799928A3833CBFF40DA1F524370EA5378C8F8F132B353964D84912BFBC0F25F47B0990726255C72E6FFCF2CC33CFBCFFFEFBC9D1FFA637BDE9473FFA110E008FA10C7AF68424773BAB1CBA38C530A04F5341B292AAAE08AA53CC19FA0179E8E75C715D020A7A4A75253F1885FBA9DE9B1512E7AA422F644DD51B1CD7491A4FC90000F9EEF1FAF846C8487AA5268084A3898219449DC47001FA044D74777A8AA4D04FDEF7959A80E240644910A4E0B0FCC184359986DC3169BF843152486468E2BF1B366CB8E28A2BC88947DD359886F67F44130C98BAEDF87629FFA63FF8FD6D8FFF50AE2C55504C7C70322357DA3FB461BA97697E1AC8934AB43D046D78B49A95BBB0F73F774239525B6A1A95088429D06DC8E6A1DD5DDD5EFA5F42FEAA5F3686FCC18AE1FA1B2A22057DD1D3B541B31237FF6D4990A37970A80D0DC82ECA2D5806237F906B0D8DD9E9368C2CC27521548DD5CEE0B6C1FAC499132DF785E670A1F4E576757B804033ABE7DA8D4EDA4CB79DF68DB76C2A8D94AE3E7BC33CDA1FA370C8D16B661E9F4ED97A3DAEA164CFFF314883D9747ED8DF512DFF5B0D7680146AB1AC5B51C755CC426AACE840A0D4760ED6579C7AD4AC56D7AF9B0D15599F8ADA1F85B8D8EB78834F360987FCEC84EDFFFC63753A1AEAC9455CF7C13269D91FBE79E6F09F0AC342C45861B435367FC71CB455308355CEC48EE2AC768E35E8E4E6B6CC8DF98784602F4973660C9E9A8A02E3F5C5C99DB55FD57290FAE050BC227DDCDFCAD6C0E4BFFDF207E6A5AA930B0015C1B00E03DEB1FFF7F52F3DB7D5AED89AA44A91E4C7BEACA9E96C5AAE4A5D6828EB879C54377D797B756EC5D3DA6E84E7C3E74053D3ACC288558DF6FCDD5E7C713AA4BD301E31BD05475220B342CAD5E23DB541587EDA11D3F6EEF45DB688870F895E05B01A602708B59485A3FEEEC8E91D33CDF9A614A19960B8A1DB8B57C3AA6862C79A593849CFB752E72C3FEF3BB7FEBF6DD5E76CA99E95D3757CF92538E6DD4795FF63219A89EB763333945F2A57A89E9F5A0AE2BFE4747DAD88E7820B2E78FCF1C79F7EFA69896531E17416FDA818700792BAD82F5A489A80C13555FA40CFA3F2E28B2F92FE20BF33B1E443DF1F42A79C76DA69DFFCE637C9734DEE94642748AE24DA2F8D921D38D4218BC6CC055C491E3D1640FC03572D71B61FA913D26749473FDA2EA81528C5050F66D75B9CE8F7C63096B130894EA659667736394F985E02150CF5D2A1BA84B8DF1A971E901C4D943B4F3340357A3415381804E6244FC92D8E2F08DF083520A3DC2D3C9EAC2EFC13F3CD91F580A71C79E49108C351449258A4A2E2037A87384D9322ED38CFD4B085922C93BD25181624253ECFFC01BD4334F9447C4BDCD7D4D1F360A111AE4F4E0684A81D1BC5187048BC0C68916CD9B205A10CB710F89FB50910CB747B8B6C60D9D8D2EE5DB8A597FFC9A87FB8B578C39EA8A31623AD9B695A9F9CECF80DE7D10674ACE1C17871DA468340570C2F883283C5B65387C01B82B1B232A79EA46ACB53DD9FB6941F401EF2221F68635A5992DDC7165101189EA5074106F46C26FDD2C442F6C594AF83FBA942DA08A57B16DBA1687592F233DDEB532BADE53BCF7A2E35E8766F01F9A4C3F4353BD20FA7ABDB9B29D3ECD69D5276A0E3740C0BB14BCB884C77B5237F501E9146E7B6EC55ED7490B34B67E6AA434DB80994364467CB7A667CF8DE186ADE74A98C524B72D206981E549D12E81FD0572C3F76EBDDFFA135C0772D503BD685595C1AF2037EBB62A080D133E0E0B69625500CE1204243C4F325150AEEB21A94E13837FBE6BCD932CB8F2DE88811C1D77438E293C76EF5E7BB0FCDAFC9BE6EE9455C8B0B85155A63B1AD39793956E8BEA58F95B2D6E4EEFB7F291A47CB39909AC5CB073A9D2EDED7A9A3CD55FFA3534F7CE63F9F9EDB3ADFABD612589F24720E6D9E4D134BCD5A747F5D1046B5F50A78DAED935D6911D63B8A0DC65A2B548AC53B3DB32DEF2ACC1B2EC4DDD4B032520B77754A90FFCBFCD0C061DBEEFB4FBD86CF9103B5A97FDA54553DB8A7137407A4A82C8F6A7E45C44824914620A46A28C5A2B37D36CAFD69415E95AF7F6F069E90F330E043CBD63AF75CBFF153B7AED73F3E5C50F28B776ECDB6851DD7D26C43DEE7CC4876D0E340EF6FFFF9AFDC21BE0A093E62A527F24E025F4CF3C91E15829C247A28671F372462D20F7EF083DFFEF6B72905934689B7A1EE25885BE9789402681C301705A910DCC07805BC0BD5F792039A30385E9C3132B983D6AD5BB779F366AA42228F3995C893079C2848F939994883B0EDF2E5CB5157D180E901F15C72587116CDA9A79EFAFDEF7F1FE50B993B78223E0535D7247D401E12669EE0FC71FA2BFDCA340FF46E48EE939B1EFAB614DE9DBEA4E02D4D268537C930A29A3EB9D730807E20104D7D3D515D5D7EF9E537DC7003F168E2BB43759B749DF32B63777CB28D33C041BB40EFB75656AD5AB567CF1EFA997C4A149EA5DCD3FDDABAFD9757A4DF32FE9571021C00BD5F8EEA3327F6013501F111716107F709A07A695421EF7DEF7BFFE55FFE855215B81107D11C31F1D16BCDA9F8EFD204514A023B1E887509BCCA7024FF9F55F901AFF6E519049ABE6CA462B99BEDC20579CDE906F778C34D6D418D539952D070AF5F7FED8D9B36B5FDAAA44781700A807B7A0EC606E0BA5DCB978AD3521D8622BD0CE13550AA5AE5AF758C0518904B4B08C9D3685B888CFD947C482D6AA20611D183B20A56B4EA2F96CD8FD7ECDB5BB056E498C26D30D25CE92895C6F5F6313F3DEC573F791EAA50CA171B9596611A364A680D327AC13C5DAA1C56831AC066C88543C3EFCFEF38669B7ED1800C6E8C064CCA874657717B694BBA0A72A005C5C8F7CFBAEB630F54BFE46A01DCE21FB534F2225402A90866052EEEE5E9DC8AA8C7B01437D055B71BA912EE05B16D719B3A7E1BC5A4A1A6DDBC5DF88005CBA2FADF75E15768DB4CD4A2B9CE6D91BCDB8ABEE24CB6265ADE4C4D8B202F21881741F3B6B56C687C26DC9ABAD0725210DFD039AA3C3297F5AA2D6960D25F3AA5A5A421DC04929FB214D1D14C848E7D34A8742980208C230D0294C93787C5EDD9DA175B435E4E0B86F766B615CE1F6AC765E586129ADFAE1A4049A5E7350DB513451F3AEB233FFFF633BBB66F0F4B6DFD02D333F00ADEEB97269E85B9100AA055B50D8A0CB1BB31020FB19EE3A485DAD16405D0940D229144A4C9912CC537FAEAEE6CF0E576AE961D4AE97F75E3B9975D730D7434D3F3073E35397B6807E63D78A475DF599FBB68C3354DA395069D5C23A3A3A3BB77EFA62491DF8DAF0CA85517FDCE748F8CEB7147C9BDA62E88E5F17E547E493B90892550FA93DF9CF62A8AF8E9E96936DED97BCEF921F82F4AB164439264761053C511BF0D770A237119F79BBC737D2FF4FBC8CBFDAE2CFB89B324D11BC1F337BFF9CDCF3CF30CF79361B73EB7151391134922CD47D4F3F4E02494B91D04C7459336017DC9A5092CC7E9D1F016D450F3DDEF7EF71BDEF086071E7880EAAEA11FABA0BA071CD2638F3DF6A77FFAA754EB443D4F70C6500BE26128E8F1076A7E89B7989898A07A3476075168975F13954DD0EBC015830793FEE384A8576A02AE13847E15052A9B4B2FBD94FC75D404825F04A709ED2701D93574B038014F0E2B4B5AC7F83D294B2A73C50133F114CD0679A8186ABC52F2523C9C743F4EE3238F3CC2C1AA641F693CE6E28B2FBEEDB6DBE8ADA155F1894F7C62D3A64DD0AFF648C69F706DE3C1B7DC720B474AA869D295575E79DD75D7B18E61CE77760F8AC1588DD2DEC1C55CE5DA0B2FFEEC865B32170F699E52BE6BDE0CC01C9DA89717C1F2C73E7E1C04B5B97FDA75DCD1AFFBC58F9E1182DB0125560D59780F8C8C66E3F85390B9F8F76CB468EFDE3D150EFDEF8F7DF24BDFBEBFD55CD0AE30326DEBE4F69F4F0C0E5F7FDD755FFADC43A75DF331AB3EEC1A7AA0CC2CF7076AA9B0EDD6C05F690635E9D2F69811EDF8AC061B5D434EBB1BEC5290F1D581D66DBB07ABD9DAB55E414A2F656A690F4CB7E458BE2DB5603DA4168CAEE54206944B40970ADD8D7588D2F0909DDA96294AE9BDF945C493E9DA90067AA3B098A9ABED5CD768EB5EECE5AE9F6ACCB6E1DEBA159831E4EDD46C4E83E67A09A438D7CC36AB2D182BC0CDF5A263D51C05F2C1B027D220FCD280D36814D351CD8B6023488D427C573DEB2B057B62DA98D3AE344ACF0C2F3CB9039A60350B366871B652E84886595A502B6A132176285D36A00596BB79D60C51350DB68BD34A13C2DB0DF0DC7C3B27ABCD5A47817B43BD9AF28A4EAA964148EEE6DA4AD308332E5C66C1EED2D0439D72AA0A75A1D8D0903AC2519EFF7A98DD5B40A3663E53118EA1EA900E465D9F313D2D3C2A1B3D57CF15157FDD68B71A661EF6DD725B946A2C9BF3E720FCAC60CBC854AD4EB7230F0F8637560E785F631D14CC29E78A5D2D79BC187596CC2E84D982566C5F5E093C115B4AD70CFB6B2E5A7E3895A834DDE8652B9FFCE4B4BBB9D108AE40926C4991C86293626F04A63FF399CF48EC6BC6331F7EF8E1534E3985C8705EE957E53441DAE19CD2434603E12FC2B9F83D0A29DC6CE45C3AFEF8E3FFE88FFE68C3860D64C5A3D6215E9A9999191C2B85F556AC58313B3BCBDC3849A633CA4CE5C49BB1B13144E8246AF1F9F1D65BB66CB9E69A6B504A26F120F4F362E30481DAD4D4142A3C2A11E0C827DD8886C12E20726731390429129292C9C498FD22C6D4F59344F311471CF1ECB3CFB2BF883D6078305964246799FD8D4134E9421A1E553EE387893929DCB266CD1A9C3D3223EEBDF7DE8F7DEC63C937C559589FFAD4A7F0AFF86AF09AF8F3C68D1B934D950F163126D04D821EBF413580CA804B1369C1D1FC24BD498CFA93B199576A82640212B3B671A8990646DDD968BAA82D33FE9502DDAC74F7C33EFC2BE9127A6BFC4E29BACE3C5494C346FE4022B9A2AC569C64D2195CF988776793940AE6B940816F4D9179B60269C5E231A44E021F86B5232BE6737241F23F98863708F631554D65CB47D6BEFED47033B3E8B5A5EBB3B1D9826760C5C4A193CF0DFDC70FFE23EA40C91A6C541BC28F2C478A298FAD2DCEA4450316E13A6F67E12BEDB1DDDA9CEEA1A406134AF2607747A5FB0F90DBAD2983915CD554C319EFC28EA2DEAD7B22BB3D0BC199002B44EF4CFD3AC3FBBCA9EC6D869F17C467F9BD6A63035A1D90BD7F289CF36DABAE77D4945168E42B23A78F282D6DE9AE8E7B79006345E5FCA550ED8C5F39B6379E1BDB98A9826A9472E77EF2A377DE787D4E2DD564BF03ADBC57F0535D67584EBDD7ECACA9A1E42A99B96AD02C6D18A8E6AA6845AC3AEDE89DF73E1BC703F9B7FA8DDF6BAE0E5695FF66B6515521E51B5D6FB0589A6D36F3192B68A43BD9B9910B0A43BB079EFDFA761154D0D5D4F956D76A8849C0C5B21D86BF3A8032B761B8685E0CC5F9AED56A4377E28295B3F99D222CBF17770B942E19A8A6961413464E5E3DF7E56D785F282E0DAF1D58DA1E875FAD43188D4606AAA639C501532B9C39E68FEDE91441DE05F80AE06145AD86C19D0A94A3A96B4B1590FFEAE273BFB0E526CDB525D046561EF2D2EC0B45AF54876A9C07EBD462E7A89EE554051880D215E279D7AFBFE8919DFF52FECA8BF5BAA5BEAE1EFC7EA8B44A07BC6F3DB70786C5CBCD40BA7DB95D8AF2D5950DF3F7F1D7E1EA3F2C46970F0ED4C2EE67635BB50C98758311C3A853AE7C32F39BCA30596EE0623EF4D043B76EDDCAAC3C49227D92DB9C8CF3B2EDC4F4908443972F5F8EBF12AD02A52DD2FDB8228CCC023629701BE09D888487F32369B7C77DDA1976F7739510DE0BBF3CEEB8E37EF0831FB0EF82535C92092A9C2D839294327CF03AF7DD771FCA38561EEC60895FDE9B9E85233D2949DB65CB96A1487DE9A597D0BCA23A613C38D9F486FA6BD26CB0CEE0A809CB353253701210D4531E148EF01DEF78C777BFFB5DD2B2CCF221F71BD7B028A47749A2871E93E94889068A5E0ADEFD739FFBDCDAB56BF16A846D93D4CD54614B856F045AD9F99664EF20D38D9C697070EF1067A4D18BE6C040D2B984A0E19FFEE99F9E78E209B26398BE906474B287F07EDE21B60293A1A064E919139C104909190AF8D454BF8DCBEC80F507FC2B1794E0BC71688A0FE32437BA083E1AB14571A401F5011E8FAB6BDDBA75F7DC730F9306B2E8C71B31091DC21D5412FC144C97C27E4B9170FCBAE35E7866CF842A5503B7BBB104F26EEB2AE864F2D286463C0F837783D385F695C24D7BFFCA5B2E3EE3E2F3EFB8FAF69B6F6FCEB7A508F19B0C2291525410C379B94C6EC0F9ECCEBC0C4BEB7BD9A89B109416DCDBEA63AD6CE31AC944510AFEC0D8C8F23F9EFCF1433F334B4BDDA60C8A3E941DA9CD07C1CAD9E2C9A51A2C83AFFC4AB44CBE16D18A0F9BA2E5F5D462DED42FAAB5F00D5C0FF9CEB85CF0EDBAEBEACDA10B87CBB945B80786F640F966199CE8D0F5F2D66C24DF726461C70BF657F34EB986964D4E3396A428547C4586A166B6AA85684BD4F2A05CB63255DDD9FE3C9AC9329CA90D66BDCA3DB13C0BA695CAB423571B6BFA0BE3EBAC85C80EFEDA2EC6A5164A41DB960CDD0F83B194E5F98A7D8ED655CAF0200C35A011281EDEE0461F6CC85C3D2683D9BDAC66781DEFF3BEE16BAD91FCF5E75D7CEB5597E27D53EB0FEF6E7B51FB066E7C90CF4B0F584EF9DE28B5A0CA9A5E6AA93539DF892A78DFCE50A7BEC9053FA29232CA084A5FA974A530BE1E46DDD1C646B7BBA766DE0FF96B972D983370B3091D278B4739D0D465D023F060CCCBDDFAF05F9F77EA87ABAB0C38B5087BE787FE9F5C9E8F5297162DA55ED91C0F427EA9DE180A0D471D357251744A2D5C1E1EF0BE8AB2DCBDAAE96955695329D7C83B37EF1CBA429F19F4A7EE8EE79F07E766803A14AFC7A7D724C377AC51A5516639CC0A007F40D1BF6DDB36320E70319F74D2498F3EFA28398D930CFC64FBE2F2E610A3C4A219770EEE73EA4F403D4FD81992E4ABD9EF93CD679ACD36EEBF6C26EBE33BF4FC308AADB48592018D800B2FBAF0D0D5876EDDB675D9B2F199995E7B325970F5E13B354D49575143F4AAC36408244588B2482457E1A696D1021265F68A1BA0A0440DDA4301FBD0A5DADBF678A2F8531CEF8B75C852CF8D1E1F3860F2CACC16B9DF4A93C827F05F9411AF64FB6181C83285B2EC494C43A283234E3DD92808DBA9E70F5E90335E5EABFF8E3291288B9F53C4F0D608CF2FBAE822126A2831DFF39EF73CF3CC3314C62075C2C58084852936CB6DDD92D9532CFE5095A2D4838485442F9D72A5928C781C39C765840616DA25289A893D826C522668A2B3E84F5CA94E63C0DB3DF4D043347BC93924F58F17A17A14323B78F9BEEB5DEF3AFCF0C3D1C4A1459C4C244D6A02B6D828F4C2D50FF48E4821714643B2DE10DF17FE4CC90294AC45AF9E1996F007BC208E9F6AA7090651E22F17B193DA2055448B41641C8EA6AC3931E1AD1B04E3D0AA2BD42575B07865BCAB5D956FCF4A5E10DE674B0B8179B51265B292693B350F577BC6CC52002994FCAED7D53683370DD90733AD85106EEC16BC626A03CCC58DE2B9137A0A16EE9A160DEB25B3E40CF88737CB5B5B4AA48E0EAEAA55E66DDD1F8ABAEAC5D9A566CBFB1620485FE51FBBFB9C9D190B82FF1BD80B9E85CAE6AC381A97DD3BA24CABD80EEA469CF286DDE5A78FCCC973BE350E9D69DC6ECA4A283EFD86A53B5FC89E66378F80811B47CEFFD49937DD799BADC6D070870DA3E5BADD5E846EC233664B2E7CDA5423BF748BBAE445E11D3254DCF4758531C86D87194845A75F7CCA176FFD1ADC04BA37E87DBE72CFD9B79F73D9C5A5523A304DD7F38C4A1D415CE56EB10F505D59331D0BC65AAAE45FBB370897E5D63715DDAE5D164364C29D9D6C4B0D8DD245D7AFBD6FEDD5F3C500CE16A55AC3B79B653BF06FF6D00A495F5D1884D41E585046A2D016957CA289CD62EFDF48E423412F0936F06DF5CA20F4A6A23B768946099B24797130BAA3BCE2B2E26EBD06EBD5F1C1C25CB312EB90B572FE4253D6245B2476C553416697DE868BCDA17CC6BEA862154717D7CEE315EF931E5C7FD985762E7432752F0045851055FEDC81EF8BAA61786369D1A8021E138C58F72F743E902A1A0335DB80E1563A5B75DB41AEB3A2F637BB61374CC4B09848E9A6AEC3492F0EFB7588DD8B4413D12CA27442E08B6BF88D6F7CE3534F3DC5FB482211C3A49B37DD74D3FAF5EB117CE1265FB972258A18BAC1C14B40A53CC2B7DEE58403DA0F56AC58B17DC776B17414DC639A6D0B3035325A5858A81F7EF894AA23A894CD949ED235498E02DF0D433C20AA3685D33C0E7DE1D711725F9163DCD24AC7165011F50B8E2EE8D5CFEC13E9A83D22723EC8FDE1FD86A0F97EEE6CFA70E89BF63069416EDEC4228C6413B312B12EE1803027DD73B63B9D4EF8915CDEAF49137012147BA25875E1CB4235802F98989F292C416791FC253382753CA90D3C0B251AB784238F3FFE70FEF9E7A37649F73E543F816F9F421A491639E8773B6052D2D1D1515C1E548FCDD65BD20EDB2F98CCD6C031C71CF3F4D34F27151E657C5E70C10577DC71071D4957A00170108B9E8E8B510EA809924CB1F844E4674B727BC0CB990DF129289D8CE699064303C369C43DC38000FAB590641BE12DF018EAB2475029D90C030F43858DFBF0AACB2EEEC4C1C85829D8DD88CF0DABCB012E87655169E6C2AA7AE86474767318E4F90BAAAA0ECADD25370A206C16F38566AD895BA1878822DAA6139F81D922C016595A4AC5577452A111DD04715A4F9F9F0E65A7755F431CD814E4A675BD9EF29400965BF9C5BA04521D054DCA57BBC68275FB91EB6FFBCC5F97E3B9F6864EE441FEAB83EDDD6158A8A5AE33C69E1DDB71DFAE62B1546B56337EA6ADB4212FEEBCA27AC85261FBD8A985965A0FEEC03BACF2AE6B98C5A5ECA7333518014389C3970607D30B4B9A70E0280D51F0DC82359323BBFFAC5BCFB5E04669304E55AEEB4CC1AA5D572DC2581B2FA1A1A92390C9B2C6BA17FD50873BBAE9969A1F1B999B9F150D9F83E8B0546E7BA71EDDA54ABF1CD2EE6D49A94E2C8DBBF16CEA3CE89A8ABE318C0C08AE12120F36DB560DAD9BBC97AF0DB896E7B4E573B20D44E817574BB151BDC91FA81683FBD38D60B79C12F3A3DA391F52E675F56ECA854BB47428683F4C19ED6FB3063E5CD14937967977CF84085837802E8F7937CC59A7CA9D35F1E4DAC1BD90B34AB9387CA1DDEE4AC66018FB92D98855C328BB268AA173F3B54945BFC6BDE6E3EBAE38E4E6C2BC55BFD513CF1B0A7F9111E43D30E3CB1644A9C181EE0BE3B0FA82B13998EB5C86A26A15DCB00BDE31003F293F7CCEF5D73F714BFBF702BCCCDEAFB7D506AC39EC8DCF6E7FCED462825F5CC64FB288A009855A698FE397B4F20987F14A26761C2A9642F9B04F2092D785301DED6DA6FD82BE2FE520E255E91D20F6BFE7762501E809C0A2A15D989BAF4F4D0D0D0E0EFCEC672F1C7BDC145E677834AD2892AAA1548B82C041D18FFB5156A496DD0B9F86BD165AE43097441D1D043D5A21DFEFD84EA7ED365A4EC7F63C17BA54D2224B8ABC8F173E08038843095E0D7A277D6AF4610181F382E206712E8A6CF20E91578A4506D752E184E237242293A5AD636363A847CF3CF34C8A1610CF337B097EB7983EF4E139A7E570C7B7A4CE209F0FAB7702B32886F04FD478127FBDF0C20B6FBBED361CEDF5D75F7FD9659771CF4B92FB94C499CC85851EF4C62B50EB12BC05598ADCFD2DA941A53E9D355709E0BFCB962DC32B73E49FF3C19271721E3677D0A43211A20C827EA2115521109CA12BBC8A26208D8E53446E256216A1BFE23AC75BE02B469483AA9DB315E89AF4363FF1894FDC7DF7DD3403AB56ADA2AE3838BC5DBB76E123E3B3B0F3F08C33CE78F0C10709FE533E2BC5F9F160A230117EDCB6D6C69569B6724EB639521FFCF421959BF708B69F5BE6A00DFAB5908AC1BC6B34682BF6A5E51118D905D35C2E3E3939897342B9B68604C3B7FCEFE96B7FBCAAEB343FED55A600AE85527B79F59669C491EE2D20074A94023DC87A50B7BA9347178C9F065BF36DC89660E622D0A594F1B958AB65AB5016956B63A07F1846E756EFF9D6B6CCB9137E63D6BD1B46E591F9CE0218B0DC1C9FAEEE45BC3AE42F2BCB36E04997F510D77DA543F716B6FA3B44706250D33EE707BB413D2F0F7251BAA9BC0C8A3BAC199055E804A311B48E05FB0313F1ADB3CBBC62F96CCFCD44CBAFEB2EE0FEBC60CCCD4A831BF7A2765EB86428DF8E1BF7CE15A2523DAA4A3118999463BB855009AE5AD9565E1AB80F86E7D22F801D6BE3A02D89065E9F057DAD293C4557D9B203F266C8799986960BE5BD10CAA34134BF1A529F3CA47BF3F62CEAF7CB8A8D947FD4CDD15EA95DFFF8409C8EC6EFA805A1BAB8AE68959BD6A3434D7BC98F516AC90AA410A5775EB7041F56D3376A7657832B9A038A55BDB6A3AD84F07FE5C3231B02CB23D83B5D368A53EA0DD51218D3438B8262A8E51D1A67B78EB7E0D402DC53CF3665FB5C2D5C3538BC6E36CA43EBF431982C65D63E87EBAC79F5A4B567E120F74DA9574516B8AD4BB552FAADE186274FF9D447FFE14BDF9A59D584ED215C5FC027886F1170D710D904BD46103D4705FB9339D99AA91CC87B4C8973E418C0C58FD2637E7E1ECFC22D409DB270AF5D7EF9E512B3DCE036A0BC1772DF1F77DC71BFF8C52F180D1D2C4DD5D02DC71530BF98CF55962A564AED76512AA5342DACD5BCB7BDEDE8E38F7FDB133FF9F1D4D4248AD397B6BE90CBA7745DD57414FE28F53DD407A8157ABAA1B793A37DA6BD2AED0B30668C8CF0FB07421354EB9DC5C56665A9D56EB99586D004917022A1752A6280618C9A00CF3F289930BCBCC2803ED4DA0CFAA18EE1E16162ADE1B6E6C4D049EDD49321040E5D1048C4D9E3A02EC3614AB1E59AE4DF4D1370360EFD8AF7A2623D8A61502625515050B440EA7718A6E41CFC06051385F4F1601A3FAE06E2C1DEF712FBAD5A70CEF14F78351464781714A6F8203445548540E964D48B86F3F4098F70662AC97D1C158AD1175F7C9139A992F41B780A5E874788C09C22D8E449A38329C60589182F8FF695B824393F64C5AE5EBD9A1A3F7083E564D7FB3FFFF33F7FFCF1C751CE123920BE599C525A03DC3F952264ACB4103711A539F9CDA8AD0DFE40157F74775242A8025F78E105FADE84D2E64DF79E73DB87941A840580B3D49C64784ABC6CCF8A6DFFFABC3AAF0583019C9E012D8047BAB00B8A5609AFDFEA34938174BC662CD9CE87201E07B56004B50C3CB8B472A1B853AA99E70E38A5A591EC70796971C5D2E8F417E611CFAED197AF3CE5CDFFFC95BF15043BEB2661760F1C2EC1928E4F6F488EBE1172D23195C15F1BEF939B8779A3337AEBBEA26FD4AF3E6BFDD5B75C299B60DA9693EE4421AC768FDA653D97EA807B93A646E3E1E588ACAD6E760CBADB8CB34134EFD5B2B93D9DD4AFA2CEAEC1F6AC978770686C726779BB1AC46ECE4F7F46755A4129CA559637D112B282BC0ACB1ADA73D606CD431923C1723B33FD95B6B947F5211DA2A0EEB43C07A46C21132BB575AEE5FA999BE208BC86E0D31871A179284CCD5DFC7C50E891B9EE06EB6BE9B8ECD9662039D6B2D2483DA8E6A4D46C3CA79C8D5A4CB1BAE9A5E5AD4BEAE77EE3CEEFEC6D467A6987F3690870E18CC28A4A6EF7ADCD01B7B894AA094089FF6BCA447B745E9A0DAF5045AFE9BC88488F7E2DD79D8186D134645D5BEBB57388A5ADD1AAF4C9D7FFC5C633FE5A95860CAFE983AAA4A5C876F179AD0B34395486A4C11DC6CC079EF9E31F3EFA4B272A140FD9397D922BB46F0E56B60A3B6FAE1FF0BEA5F3B3E521D72C05515BF2AE0E47DC31A9A484CE4CB927FADD9B87F47279F416CDD6143B74EC92B52A3742BD1111AEE13EE5FCCC64592BA5AD936B94491620518A4CDB9992FB256E2C8390F6C4134FFCD297BE4431CF534F3DF5EFFFFEEF69CFBF4A9A2ADA04A6AEF5283B7C040D87AF59B67C6262EFDCCCF2896114551313638A1A9BA65EAB57B76E7DB1D56AE02DAD4CCAB2F02444009E84A6608CF64BA0C881040AE15E14659A12A36E400D81B2162494F2B1ED7AB586532E77CA15BBD50A5B3620D242596D7763C7055CB5147B39982648161EC3CBBD43D44A254914CA409BA4DEDAB56B376FDE4CC49994054B750FA48AD92C206F1D11F53CF2C823EF7FFFFB39EAFB3B5481EF57A39B0C6C301060C2674EC3C57BB1BABAE79E7B2EBDF452148B78CAE9A79F8EE895C6F6852F7CE1ECB3CFA60544CD99393D14C77FDA69A7E11AA08BA0B05BB76EDD030F3C408E720A1A51F881E57E9CE81FC9E3A43FA140DCB97327F43382983A90D2C0923C1F083BBEF7BDEF412FD515010BF39973A93007DB93096C07D404D4F01207B97EFDFA2D5BB6A051C2AF9E59B5A167D0101105095C767FE13C105F21E92D2EE620354901733A85224074596A9AC4DDBFD99D25ACB7B061B43391D11E11ACA187C4E676C3F1EA63C24FAD29E9942093E8365322C53E8BE210265BDA92EBBB56C60A22DF0B5CA1D11B22E95985028A12D9A98387FF9524D052508DD222053E90C3C1CEB29A5A09F3CE797FB5EEF37FBD39BD94B7D5C65870C89C685B53CE2AC5613B2C9BCDA60CFFE7FDA77DFF7B3F6E2CEE760DAFE84F4641E7F72F7DC73FDFF458A0895E63F941CB6976654F6F0D0857A7B2940A215D1A564B8BF2B432E70E01CC9754E8E620D34533030700BEAB1AB1E0DC0914148A206FBCF6EA4BAFBD7678F8F5B5F9795017FC0C22E1928A76BE5E8D707BBA962675BC224C5407674B955427D38DDB452F27E74797BC97F0D8A80BB6ACF5DCE85D6B2C033BC73AB91908BA251BAA45D06B439E561EF10F69C13CA43C1C088A0148D74D5BF8C6D4AC6AB78AE3C591AAFDAC83F7D2962BAD8E9CAEE2C636BDD2D0204C3BD595F5F19D85BD5ACBF455C77033AED54EF9A26F654781823B548716649CE1B6E541314CCDB8DD8CA79420B3C7681402DCE8D0D4406E892C2B1DBA2D43D00B9AB1ECB545678E43E2B6E3C9B3614E3C6F564A75B5D92086743CE8799560B93E346D96C79BCA9C1EEADE01EF3B02CEC2806E2CE5DD426475966C7C9E508EA1308C4643DADD1B54844D16E62C69D4F66A9AEA5D7CE9B90F3DF4D09E3D7B98D19DF3D793509252A22141D8C3E98EBC2370D10A772BF4CD0AC6AD94F841CC307451CEBB3F902A901459324C458A03CF8F4647D26F3FFE2D280A72E9146E832074C6C7C7AAB5C5A5A572AD2EE2B129CB2CE4B2F942064F51E4100FF09C4EB72BB8360433A0DC2BF78B3D49F61535C24DE7B71AB8CB43089D20EE74C2463B42E4DD75200E5146A05C531B8DB85AB51B2DC7EF0DF060DE212623DACF41449A80BAB652560977D1A12656384794C28F8A8D8C29CE6D4FA691E05904A2A19FE84961497673BF569B20490D4BD9389CA2436F14CD178AF7F287F9B1F15FE8F1E2D1F794E648B28F9286F15FCA71249F46D2D621F72215E8E10C90CB9E5B00516E127D3867793F7B8B2BE0B84F32B145F138C9BBC56601DE6E6A6A6AEBD6AD34EDA40CF66B9BCC3501EF7AD7BB9E7CF24992C5E4A027B7129AB777DC7147B2C901472628D98E729159C5D264128B09C11D7AB364E7D143B132E6683CB743805E9BD2E9E9E964EDC57E3FEFF30E05919549B73B6D59EF1128B9812E9AC90B2A7CD05570A3C181B1DAFC02DED8893D4829E0F4F2B506738D4A9356731C82A1998A6F058037E88A7663A6042E9AC3AA6458B1D39054887BCE529153A04ABEDFE3A2C1B951A408445605503B25DAC18AB880D1230B42450791A6C7888025A3982FD7AA387643B63A911D82ABA6A520F2B2CEB00BDD50F642C98594C820D23345AFEB83EBE2E2082237C29B88B941D594F1EBB6241DB8834A7232930B86B117A5FF725B40E8971CD27B67C24166B8E1C445A6B1E12466AA48253B92B28729179961132100B2773993F2D57BD51DEC4337E27A29FC97730720C192893F735F2C26FF673084C207BF7CDBDBDEF6E31FFF183729F72F6127304780C99B8AFFE2B0F10A08B666676789CC86163FD7D572DF24DA8907635B6152997D09ECD00FB511E7A59C686B0CFD9AAF035EA85428566B557CB363A35944FAC71FFFA65C2E2DC9B11A8B60C0C04069B1BC17C7B6B0B8B75C5EC0976E65F44231572CE6ACB4AEE9B81ADD6EB76D77DBB1DFDDD7B7200EA3B82B1483E2CB4AA0F9226F288C45B32707979F23B98111FAAA14671529138456BD0E73F3CDF9856AADD97011A245AF4D1390671C9FFD431FFA10353FE1928264AE2E4EE5B9E79E8B9601CE0321717E4F743CC923EAD3490C0D2483B8D0E3B56A82A44D40AF83797B700C131313279F7C32A27E7A65C46D47D14BDA4254A680DA822C187A4C1C24B1D7E208A9933B75B720EA7F928C9C3DC53424D4F58CE423BBB0C9F0E4A63A2C37D9EA4C5AA9245E79A3E21DF1AC646A33F4E30494E5C9093F244CF141706FE031D56A950E20B18E3F53649BF413A58DD206A02036AF7EFC13BD1ADC3FCC629D9C5B9A1FE6F3E250C42B35018A249C67D4EEC71E7B2CDA31D4E3418403DA6DBA0E7BA28E39E6985FFDEA5778222A5A6278A68F99323CC72FA86A1BF59065763A4ECE4CA1088CF195B9EED0E040B922EC89E191A1C585B295DE17F657445F77912E818A41F41A8BF62548446A6FE6C34451774FEE4BF1BE852DB0646F152BAA8C1A05016DE8DB61E4C99A1AAB3AEE2CF010588BAC8D5C3EDDACA3AC19A8D71ABA61786EB7777971BA65C9DD4E94B114B4451A1DE79AF5D75CB5F19A6236E7D85D3FF40786F145547434C834AD72905E7BFB698264C50951ED72FF3B5C9CF81EF91550EF71FC86DBACE294AE5CB912A103F452213EF2918F7CF5AB5FC597CB0B8CD600AD46CA42C64B7DF8C31F7EF8E187D97AE3362FB81A3FFAD18F7EFBDBDF46FBF577F0E2D275684993B94C1C651420C4A1FEE11FFEE13FFEE33FE20A44DC46B726F14D9A0C4F39F2C8237FF9CB5F42C29FC999FEB81FF12238030452D9E02699333939F99EF7BCE791471EA11071B2DBC761871DF6D24B2FB1A6B9EEBAEBAEBEFAEA836902128F12CB44027DF46E28BF90781D284504B418757F14A2EA2ED89DCEFBDFFFFE6FFEEDA3A9B411475DDCF2664A191B1D9A9A9A2CE6B33854C340D911F69C506233E3E0E6E7E770FF88E621393D9FB38AA56CCAC42977C2A00BB1831B537880047E09A4D88F2190440E75281290D0EC8C7B8D61D1F45010CA88D6467E10EBCA68E89B1058CDA6B777BEB2506D561B41A5D27103143A91485495445E130E58A6626359E2D82F431242F7C919E19F393794DB0C247D2F72BFBD7BDC6B468FC7AC5FBFFEB39FFD2CE5E0B29780B3777E67B658FE30E527478C93449BBCD3D8C78DF745D08A460CA77512D0C05F718414A4A526424C284D0A0F5FFA8D37DE48E52314BC25A14CAE30C6E6DCBB913394694ED888619CC5A11446284CA6047D3A742A8746D94A5B022F8E13889B1F61FE55575DC5F510F4C12BAF5AB5EAD9679FFDF297BFFCF18F7F9C8EC771E29CE0136DDAB4E9BBDFFDEEBFFEEBBF9239C28572F827BC232129F253E1D48D8D8DE1FEA701705A30A9165E2DFB69020E0EE17E46D545B3412280AC28228BC5AB9D78E2898F3DF698DDB50D5DDC0EA530D12B919C32C3206DA59A6E474EC99D4EA499BAEFC49A9E0E9CD6CB9601F49238422F36404E59E0C45127947B2EC900A2180573DCF57C2F86E8BFEA4845D3FB58D1A5C013A335F55ECB907E76750E522E442E88165D6A2FA71DAF1CA6454D9366288EDD2BB92FE53F75DAA7BEF5F56FEDD9B1BB5B0AC4812D0F0235972EBA6820FA8E81562654A08B12411ECC0FD41B35438E03B185C13F78D7CF036A025A2184D9C938A32C5E32CA9399630459D8D4C6C3504CA148A5065904F393D7A74D447627FECB448A906068878453854C90DFADD34B920481B6245DF6E8A38F9E9B9BA356BEE469A4F83F85974E38E104541238542204E59C34B2D4E9B288501F7DF4515CF3F825D572921F82B61B278932291CB57DA46E5778299C3A5C8DDDDEE7D5E58CC4A97E0CF70852F199FB12C34DC543581EEF6BB5B37C627C66760F0A7DB45A56AF9E5CB9623293B51488A358A8A6E1A10190FCDEDED8D7E5B85EAF5125A7ACF9E99499C9E2D3C6A2D944D88D4347788444832351392034414C9A005F6A1C38A807C40A9364D1E24152F42856C478A37CE419106511AA541AF566276CB5E3A5BA5B6F8A24F16EB7874C45D8408EFA8088240265A7E07A22466B16D0FB495EEED8434C79FC3D5B0C49BE3CE827FBD34264B1CBE55DAF6254D17D93F55F88779897892B186891918626904E6EFDA40E2040CA9526B41FD808A5F78B8F73DC71C7FDF4A73FA5A49AB3CE3AEBCE3BEFA4C7A13193FB9B7449322D92243B2ABC8D1B3772DF73AAAB90135D85935617F348F31A23031C7A1950CCFDC0DE331A2D9511D0CEBFECB2CBAEB9E61A12E8647D93BD4F99D1DC8388763B9747403F78E3F53E90E85094A4D4C6A778FDEB5F4F74B390005CA4CF0EE61D62EE45BA1141FE33CE38E3BEFBEEA3EEADB4157163AF59B3E6D7BFFEB5914111EFE38A96F7F5A8022B6521FAFBF9B3CFDEB6E5D68B2F5F2B4A8C7069A8067485AFE6A8C304E9088E106D505475337333821D5A34F2053D9655919487239143E129F2719F9872CA0D5D5AE162E67B03C77D18AA816861162B866AF8812FFA62F5DA0F18100429A14E65DFD33A8112425B814003C3D170C378AAA76754D1BCC5062592D392652B2D290043F4935406ACA1C5CE5C71A8E4C4CE125A0C2253CF4CEB19BB563533BAE3347A9D677EB32660CC1EF78946D89D4DB629A71210AF14AD1FAACCA7142F32EC280392562CEFA6FD94010545C968C38B536A001E73FBEDB7DF70C30D547BC88D6CC9B0784D9A8036295E99FD8A842F49BDA1F064B3958D1E32A6718590CB8B613EB1D313AAE08A5AD294719F346C6A6AEABDEF7DEF030F3C4056141FC089794C7E43CCF68875F01BAA37FA0DEF8503CA9CCF473B13C74A39E694478F400031A2C0178EE88E1747D4307674D5AA816513E3F87861E8A38D8ADB3397B5F09D497280AF1001043949BA5D9B72F32545241AE93AA8B2E88E1D05DD30125E7F34FBC4B044A119AE2F5153805B070D02C79605478E7836507531A18AACC5323EBC1679A61467A250B1DDC08F14C7336A8D70AEDC5D5AAA55CA555C1BBDD44B8504145E90FD397891F7BDEF7DB84B89221F5E6110903820DA4E3C6BD7AE5D88AF714EA8EE1A2784A037F42B9592CEB464E92C49529AD883BD095A499C094AFCA3C432CDAE76E859C1F8036507B33B9BBD19741D4A6B21FA046E5BC1149E2CBFB8C928BEDCB7BEF5AD8F3FFE3855514889F6417C5F1A186119B2D3F1570AC972C7661294B42229E83A323282B7A06F4874529361F61451CD79928B9B8A0068F9B2BB1FB1FF8E1D3B983F9C021E1475601D8C4322BF19EE705C786429734A2B4D2F6179DA4B2CCA71D828AC5F7CF1454E2248AAB48369027649E13C1372A2143D4A79A2D809299E7D6D30025126A64A9A28A15175DBB1BB819DCEA4E2CC60776151C717676A76E021A2D6636DD21AD966EF121E7F3CA3E74E0A21D41084793E6E077C3F6A0F57CA86BCD46908BFBF0A6A43C363C45F750883088D5F343E4CC5ACF955A91775947B88C8344C341F6CA713994473AF097B20F00D846FA6E929E94243192C968E7DCBEBBEFBA3EFB4ECB699D29CAEAF6BBAA4FAE974A6B6D42A16B3B5460B65FDFADB2ED978E9CDAFCFAD7E7E7637E8168E2DA39ADDA02D658C40F5A5C6AB61EAF8150CB5043A39FF823AB9E21A38E79C7350DE91C4648E13FC1751369A838485E99AA8CE9F7EFA6922DE49A684D05DC8DC44DBF1AB5FFD2AF42A5DC8FE230F27D187D076C685C45460BFFD879A20D146E3F4682EEFC7072171CF6D4870CD9F76DA690F3DF410CA74047C44CAC0C15B72879264A76D42710EDA86D4F28F8C7E0AB0E13CA0DD9F6CD04BCF4ECCF390488F0E0EE2B5E37C0A89D95D50C6EDDEBD9B70D9962D5BD6AD5B974C624323170D0232825018BB9E3B353972F8E1871EBE66943829EDB6E870303458324DA11E7543EE956875E9C15C779FDDA7EA084F82183C45C25F510774E308A59B0751A3F70E4361F24AA28DD0BEC0A3970E233F087B7C733A4206BD871A3490B4D0D754C8C9AA114452ACA4BD20DD6844D38BDEFCFCE2CCF4DE7ABDE5A3FD8C36462C89E4D2681FA311C938D276BC22933A803E24657089E08627E394B934E88064C7479238E45EB8F9E69B116BBCFDED6F47BB0FFAAC67AFD2B19D3603879538958BC4312E62822ACCCB4FB602E9576E24871721033359DF40EB9BCD4646255CFCC5999A78233C92562AEA0944D6846EA0E741C223F1A971C6F05762E0815E7D32DAAD5FFAD297F02C3C059525775EC3717EE0031FF8FAD7BFCEE58A3824FC9783815CF9453179A22721D6073A60BF8209E8DB5EF42FEA577C6A2A3E887BCC229C27C7213B8A3432FBF77E8A8703D1DC139BA403DB6D1C093FA04D002F2FA180BE87573483ED598438301C242206C1FA6757E550763B3E4976D3323A4E877CF7AF9F3AB2B57DBE15B7464627B7CE6F4FF518FBED61D35E721450DE75FCBBBFFFC3EF9B29B3E3B6F1543D1C15494308DF738850F466B30EF8BED256D46A6BA6EA83876AA0B770C5FF1923DB0E5A269A501EAA875095D510F56F2C5AD08006AA9335A35C2C7CBD2D198291D2F2D1D2D47F6E7FD25035D7B7538A91CEA65A5E4B4D29CD764B72074483C5B46A648DFAE2AC887207C1C8F884B97B870DB29D56D138FC9B2F7EF1CA7557CDD4CB2E68A1F46ABDE192659271BF6F20A56310113237EC230C417D4D7085D026C285BD76EDDABBEEBA8B0C5F520F941140AB3A598CC9611BE27664E541989D83C308F2A87E3089AB7EFB0F479BA8F27C3F867642FA1C1E20DB97D4CF79E79D77CF3DF7D089948E9C2CD6496E191CF9DCDC1CE76D272B87B8AF1741104AC9835ED781071F7C10EF42F60A5942BFE1BDE075296088AB99189B71D2497ED12D8F39E618C4CE6C9429928C40A154B08E3A7ACD6187AF42809849A529033D651A78A2D2637D30D2946CE793A5839A806C1649EA462218804F88CAC0157DF7C08B71154755E68D4038A4A8BDCA67843A9041011B43202BA1A1ABA994D14BDE37244DC74DA12959553145537025ED0656BD11ED5DF41716CABB77CDEE9D5FAA376CA71B8591E8F72DC5FB686DA47E3705E8F3CA1D5013B06786D8C47096715A6FBDF55694F2780A558D11D6267D4EEB92140387D99942E737DA04D0EF5783174721428E45A23CA3341B627D4053E68B5FFC22673771209A340191DEB097295949CB3D734854D190F66BF9C2FE13DA66540CC166D0A73FFDE9471F7D9412EAC93FC3B91014D6A385480604DAA488E5D9A5CEB10AE807A229559F3C45D06793C5515121DB15575C71E79D77D243E1EE25394E0FC20912C4560B0962383C1D573C1168B3C500FD98300B71E8974CC7FDCA414E35613C48DBF2809A40EA11085231361173B1D39638AF98368ACC2CC42128F4D386E53AAE8410DE52101F090EB51050FB2955D19DBC2647302888E4C406E86D580DA1783B50443FFB08942896A120675A61BB57E20C392303D5D88811E7A766602E9D353B08D464C80EA535C9A8CED6A4588EE5289D4E054E24DC4A96D6EEB651074825886B90EECA4528E07D174B155F1511827400B605CA80AE54157FD19F1A999C5E980E245FCE6819477315D70D42390D9227BDF3A8774C3F351D4058D7A61BB97DEDD4FEEA931FFAF2F57FA38A5458CB970EDA11888566D226A06CB137BFF9CD3FF9C94FB8A01DA70E150042E92BAFBCF2FAEBAFA7F9C4978208E33BDFF90E2E27B2FFF07834D17071222E618C92243F2718C44CC34440494B88FC51544F4A66E211471CF1C20B2F1CAC84F6551E8AF206F12970319070E0F80705C36948445F06FD84CEA48B82303BE5E931FEA62C068AFDE223E0F1F8A4B49289248DE00EE939CE19C5BB73B93B6D37141A08CB7EA38693383C70E8A187A226C01F2EBAE82204B6E40BC6C77BEB5BDFFA8D6F7C03ED6F4B58E56DC3903369FDB0C3574E4D8D4F4D2D5B5CD84D08CBED8A5887DE270D56B45E2210446435A388232D1DC7B68C3B43F214395464349C9D38F2A2D8479BA037ADA245B670856A083EC48B44A3571247C608C252A64635A2A666E01131BE3E358BF68187905F46319AAB37E3F29257ADD66767CB337B2B73F34B95A58ED313FB2274DCEF248CFFE21EC6D5C6ABE795DE2184C0B862989E09FAC96AEF7EF7BB9F79E61914A3C9DE29BCEC58E642BF9917C9885729D2E63E33E465E691704E3DBEEF3BEEB8030531217792D7D0C7A749BE55F250533099A2327C35B61C4942914143DB86D40C954AE14AC5BD77CB2DB7A0C5FDD39FFE147A0DAF719DE1F1B81248EE134D13BB56712A38E6C66C1C4C7ECB850EE41D927A9D21C889C424B8BCACA96481A0097E68AB90638A36098740180AD1FC53410065F1124D3A9BFFF4579E5836235824D105B9E286ED98837987E8D7640A20C126F238251F1C97108E07D17AECE1623650363B5157C0FE3CFCDE1F1C339F77661F7F0976819E4B794AB7F09163DBA9C520AEFEDEAEC39EFADEAFA009868AFAD37403D70B5C2DADFAE70482754EEF51D578B9E0A5D0FECF8EE8C0D505338B40D2C52BBFF3C4B717D3A59F3FF98B999DB3A2B58091E9B471BBC95A5A117D24B3F0963F7EC34BF985DA776645AFB411809352B006E476909E8FCD5C2EDA0BD57FAEAA5D7DD3DA1B6EB9E5B6B25D46AD635C1CB97E282AADD092F1E595F1AAED0F6D137CA82A0C9EF2BA8AD5C8A595D27CB4EB2BBB85C5125A92FF1A3401F41BBB921B90CBF8938B965775327783E69FA100055A59139016A72D499CF99436BDDF5EE07EB494FF46A0FB605E94830AD07E120A851E497CE3AD3FFCE10FA3FC652846AB822216279F7CF2D7BEF635AE95610B3559AAC9255CC949632A01AEAA2181465E537C4C4A79C76130B6233CC7A959071CFFBE1FE82E28E8C5560D7BA029066E388CC7A152DABE7D7B141281170C0DA4C7278656AF5E6665B4E1910109A19E17361B0D11543453BD89883559F121E86D7EAF9F9D0D84BC744D787E542592140F22378A3A61D0C503A5B8236A13A45895635403862E0B94A9E1320E550521A76C1A8A6E6829DD34345D55F458D1213674CDC20BBB4124A9D9281EE87475BBE3375BDD72A5B9B088FA60697AB6B25445D340686ECAEE602C09BD38ED7E69B6BC0A695112D00BFB1F9C65B4D42835906428F419DF2091268C3A83522199B6E8551432DF91DDF76879A03266A2374A4B25ADC0194490A8E4626D44A790519CECA3905CFDEC0FA1F581DF9376813E4F27A10976CD275D90D4EA19CFC5EF519552EC1AE7047F20070B31A6E1AC22CEA2841C7AFB5CCF42061019131C7BA71A0852B43C1E2639A75E4982B73E118621F84243256F03677D70AC0CFA6C51ECFFDC2FCB90C43A89956407E6D7240892EF912D7A9E5EA1D14516664A81E5B5EC4BD9AE66077E781D803D0A5F981FAF96F6228C2EA4337F59D3A6DCDA4D596838EA157AF0B90E08BC1415027062C81F7A5865EBB62988B6A78F06FB4518F5E172096D02F82CE4A2A1A656CEA58B61C3E95CDE850180EBA01067CD465ACE2E745A69DCCAE77FF1139BCFD8E0C691F679DDD95B2CDDE05633F5743B656B5DB8128AC160FDBA2E8A0D391D3BB62B81944BE79A76D34C996ED8C5B737A9E5F76836C47ECE81E6755968296FBF632A7C9BFFF3E3CABEB998DA04DD7815ACDF218D437C360A65D575424A7FC4894DA26F4236EF7CE73B7FF6B39F91CAA482419A7C169774304B3AE2854C66A691FDCDAC8EF43629579BDE02BB40B9CE9F16C37E3556072F958D19FCD1F2C38DF9918F7C04E1D1EFB630F6FB7065228D87C0070D9E47087D78419D0AE344832C0246AF92954E07B3C380500B550C90C1C14D0F4968701B6081D4A57DD49EFBB8AE860645F206E70BC23E8F338A451416D6D4E4C4D1AF3B6C70301384DD6CCE8C83489164427371D803C2A148AF6CBBC24B6BDBED7E48705FD2483665A27CD7D4589170581DCF6FF97E47940B0B9881978A6425D235D930F17D2B9A2A4BBAA38908B386BA01AD044DD1155953408E75530E0D4D4D4792ECF9A1ACE56575D475D0C056BBB65B6F762B351B35C1CE5D73D333E546ABDDEAEC139AF47699E586993EF793CB9C9D4DBD6B70F0E410A063A8E5B2DCEF4F002F2F04A349E74E61AFBEF2A8F8801637A5C9930D419E74023E9B376F5EB76E1D2E82B56BD7DE78E38D494D20F7F9FD79E11E7FFCF14F3CF104BCBC0B1049435284F4C89CCC13F75B4212FEA5E8021B3A9C9F03890C1C1A15C72418D4E052A66035A3366E8943334338E884134E78EAA9A770D173490EC9F43FF9933FF9D18F7EC417C477847B98DA039031814F77D55557DD70C30D888C88EFEFA4934EFADEF7BEC7AD0B489D400F7F1D75D45168E67EF39BDFA4BBD0BB8813954DD02FAB8913157CD2CB4BBB7FFB0FBF144E842770E7995E5ECF0615A96335C186A34E3BEAB9D73D071BA15803B738E174AA25AF2B5FA92DAABE7AADBC1CC6765E393B3E37B5F7A15DE958ED42A0060244C90329A719497E346274DD7333686134B62C398A0188F4E36188164B971CD598FAB5FA4CCABD777499B730B34A824A5B76A1E48D7497799D99DA1BCF79E3CF323F837B406B957CAB6AB68B8ED2800D91DE91E2BB25C58F1C1F6F2347418C78CCD045024FC7691706F3F57A67504E3B7E27FA84658F36E15E3097E4912396ED9EDB0B52305C9BD44199B966E758DD88BE30DC706AA5F11CBD2F5284ECA6A015C829F3D0D7D3BC6EB9388BDD29C976DCD0033178594227A46B49AA32073B39B469E370B3BFF3CF3F7FD3A64DC71E7BEC2F7EF10B0AE41069FC7E5CB64909C06E12CA4DC26F56AE5C4906F17FCB8753FB68992130A26C313623B86F15E5F1D31C2639E149431C6C1DD2162673E49501702EE8212E098ED8E3064BF9BEDB2F08E236C228987A354A8A1A84E268DF0B0C551A192DAC3972E5A1AB57940672289245665C1CF04662539DF63FDE861C2C048D05CF8465292A0A4A45D41BC8511CDA9ED770DD7A10BA71D0C1BB2B6AAC09D7508C681BF501EA0C15D1BF2A1BBAF85517192222315416659308330D49CE286A0AC44AD6E238AF4AC55A57350C136D9B7ACD9E5FA8CECCD676ED9A9F9F2F7BBE52AFB763900BF952BD818B209255548C2144FB22ABDC4091B63437C6213C7BEDB5D7A2004ABAB669B17225173922F0A909F0E2C3324B07D3D8BD8A10A12E3704DB69871040C095DD53A83673EFD01ED84F13108022CA1D5415385A8A2D277BFEECB7AF384C4D994854574C16036E00FC950AD0B8AC91C35F044F48AC53E530271AF1231C7EF8E15BB76EA589DDAFA98BA0EC5FB3E685175EC0FB52EB66DCB4975F7EF9962D5B887A88AC6C2EDECEF53E682D9D7DF6D95FF8C217A05F654A3087F63F259E128CE2FA3B3C00D11C35F64BBE0296F23493FBF5FAE0035EAB71C01CF19CFF4E5F7ABE95926B5A084D5930DEC0A93A8C797069EFCF215821747047DC84AF20485FA206BED9BAB935EA1F3D7FE3B3D916B40403849681A89E0A4183521374D0E6AFF615DC8B37A4DC516578BED936868C4DDDDA620D0F58E3BD7DE7CD4FAD3C696AFAC969BF5B82F60CCE2FDD573A6730D62AE9DBC06E8B165AE9A511C7B05337BA9D390F1EE8B593B44131E5B496B61BDD2814A49042DD5697D002CFBA7A550A60B33F06C38DB54B82E7274A6B5EECA5A321DB282F6BE2E314AA796743C319D06149EC1A7C590F3FFC30B3F5B1BD4B909670FD89279EF8F8E38F73650C2371CAC6211A349480636363F83D2D30DE9EC95C4FDA62543180173FF9E4931F7BEC31629BC7D329B738C9D4C69963AFF22AC94945EB933B30FE7768817D6920C469882A137FA5A6BF383C5CC338F87FFFF77F9F9D9DA50003C50E69004947F4AB2438F162C6C15307432E9FA6E2470AF2BDE10D6FF8F9CF7F4EC2E188238E78DFFBDE2731E10CCF69DF5853500DE8868AB85E30C429CAC850696AE5D8F2C99181014B446D85170264E965343E241C491988D841EF4305231484149473AA6AF4720EE3D0F1BCBAE70B0791223B8A2A692A3EA7A46BB1A6C7C23BA448316E0505BF8F453E9BD22B9F8CE8695102EA205992AC879212046A0C3905F29132202C8E4876DCB0DD0ECA157BF79E85D99985E9998AE7F97F71CA47BFFCD0C3027AA035107AA8374DC324794D9E07E8FB827991D182A04546E901F80D3970B85915F7876117047B57508AE12266A8C87E0948C0256E9F422E4BBA3517F4E2CF2B56AC4089C62E3BA66526CF3EE976728FB0033D093A987284F22FE9BE6415257B34422FE2CDC5D890A817E3F17363E4FDF291C8718413451D8428439CAC280256EC93653E3EF9151DDFD87147BB9DA8BCF1FB7BEFBDF7ACB3CEA26921A14F494A6C4D33071F6D5794C5DC7D2CA99FD858664DC05CBE49B695DFED43B61D4E08355C63A7C7F278785A5A48C9D04DC3C047565656EC29E8F9895F1EB97D45DBB9F3977A03BC153AFC590029091E0B0569FE15002F6AF00D7F282E96ED861A2926C4ED5270E6891F7AE0B16FC58A9FBB2ADBDCD182FB33604AE94E2B3A1FB4DCF2E8F3D39D9B852BFF8875EA79DFFAD2DA0F7F34E7E682A21F3B4E3D8C074F5B595939034DFFC8DDC7E73B73CFEEDA61FC3257474BFCDA0E8CA8B99F1D921B4E1DB777FC1FBEF6CF464A970209771B2D5DB1F85BADB23400AB6BF0B128BB5B931EC86A7977A9E91951685893AABAB7FA090F8A9073869BB72F8201E940B0DB52360EB9DD49B293E6A67548E6020923E8E303260AE496A8747A32CE4F4524D4B6889DEF5C4F8EEB875602410A027371BF4F2F15D5D3C6E41EDA07FC9031CD40908CFBD71A3F781549CD0B92F61417D0E006C79153AAC87E056E880E899596E4C9AB143DEC3769F4A19DC221749A3462ABA6D7811B5322E0964C7EEA7F0406C49917A9112862B3D6116B561E71E4EAD280254B017EA32B3DA8E5859C16C67B9B6C13BC2571FD533E1F85FB887954D754C1451A3A51886AA013C59EA1D9C26BA4E19F640D918F1EEBAA84BA4131225546E5816A40B42CE8E1819E1AC01B055A188942332F42298C9039A72879D518C5E1C49222C9065A871D3B9ADEB3B8677A7E37FEBB67E62F3FF2B13BEFBA177A95063184B97C96E8BDB8108CEB38784D50E3143CE099679E21D38126911607FE4AD0980A46F0311F78E0814B2EB984243BCB7A12F1241AD855C20C2A54224B1DD3385B947608D18E52EC81C855D0BE46402DF589B28910822411395EC9CB448C6F84A1E81B5A7CB40AD93908BD7C5062A5A6885C92AA6F3F6F49B2CB0DAB3A7C467C0ADA57679E79E6FDF7DF8F7385C378D39BDE44455B780CD5DF5375182FAFFD0262CC204DEA24ECB735251F118D8DAD10DA42A841F1FA34C3D4BE98ABFC78CB9195C065D8AFD404E48ED80F0C413FA7F0B7FF10DAC5C11F7DF4D1CF3FFF3C4D94DCABF10D7443AA37E234C07968D2467067EF84B5BA5A8E33FF38E0CCD84EB13974FE9B42352AED7C69DBEB5A47CD1CF1DCDDCF83AF1662FDA24B2F7FE0B14776BEF0EBA970C5AE5C05CEEF643590EE82F4E2E83CB4E09ACEE8F8F0FCF98B3979A579A9BDB8B4000F186FEC4E6D8FAADD5CD709C2926EBA66ADF3FFF1F626F09A55D59DE83AF3F4CD77AE5B23F31C7D4693483486BCA7A6CDAF8DB322DA82D20E08C1011111445110D0872809C6101134240E4934C4D6A76D6BDAB48808028550D4444D771EBEE97C671EDEDA67DD6FD5A94B552524E9FE7EFC8A7BCF3DDF3E7BEFB3D7BCD67FBDA70A1D141E45C0F9DA0A1C74E14BB6ADB6BCB71F3213086F0334393C139CA679FEEB2FF8D65F7FABBDB8E639C11797BBAE563DA3F7F6396BB23DF80CD8AEA5065A4FEF4D38D35A3B3AB479497F254C36B61CB865BF624FDD75C90D6FBDFE42181627318F8361091EBE2CD66FE825963162F19571C351427225AB0EBF825FA7EA5CD64228EB816816AF201BBDE8A28BD02066305A2AA939E18413D03C2D3B218F8F12CFCA1323379475A37FFF07C524C1A5E0DE2245B3D9C1A624A9955CEC89879F400128FD9450815FFDEA57A3C975ACF97396396957279F7CF2739FFBDC5FFEF2974F3DF5141E7EE198519437BFF9CD5FFEF29789CAA84FA524FC2DD21AEE74BE06E49915F3A0F8242469822F62F3A689B3CF3CED9453B7E96616851E72339DF4A95862490085264B4445294361F1C175B20AA9A0A62F2B421E884E34619EFB908539C49ADA5735C530145324886668161016A961657842C4AF0AF2EFC2FD9A89424A9C69142B718CC2400A93388865C86B8A54B72AD3A80D002A049A6DEAF53851E6E63BB333CBFBF72F3CF2C863610C9DB69B664365B9E278AE78D9549CC2BBB92E8A08858B9C8E0ED5BB13F7C1F7443A0EBE1ED2D3F94F78E87143C817290FBB5D72C130173795B35A4F3DF5547C55243F48945291140C1561FACA85175EF8F77FFFF754F94C4A68B913E4D0B9A7AE6364ECC0C179D2FDF82B17E5B261CEED71E019453AC479297C47E284586A99C6D076C1834BA7166FA693CD25D0141F2E4756CAAE2D92B2B4ED575F7D35927439A2C574427A1F1527D3BE31E6075939CC59884770FC705D32060CBD432C09CA59A7F08C9AF37FF143F206C79C9E9EC65D95B843A79A40509B04BF2BC7FEE71B10A5E6FBFB8101CE27958197563F266F85E9EDEA41D4A6A101E60510983A7C398259192CD376BDF1A9ADFB560ED5156DE04315FCF69D06EC91949B82711DE603A87F664367B65757DDEE491B61665620C4290EDCDA850EF297C05437367A0B79235EB8BE0EAB5DEB63C22E119D06BA00B742DD9EE85EBEA03B5674A30FB9A1A9A26B9421EBA11B99BA15A7D1E9A79FBE77DF1ECF8A2796F2E006ADDB49E1D6B812830C9B7AF6416A262CBFBDDADCA0AF7C7245F4EF759A63FDC8B5040A3AC13F5069056D4EB9771E717072EB13A809BF353AEAA40CE1CFC8B0EEBBEF3E3485E9F4E231C6B38A37E4C31EAB3074E6E0AFE40C219417AA8F61B141879011768F93D54DEF914D0AF88FF30B31A766872DAE854096366FDE8C6B24D2C08B37DE78E37BDFFB5EDA2EE23CD4FF0E371667FEBEF7BDEF9E7BEE610FE4BA0FA977749E39831CC99341302910422B65D42FD173A538FA421808941E410C680A10A923FB2E1C64326CDC387EFAE9DBB66D991E9F6826A91F85032422A56061B6D560AA6649403E5996017485A23A690E9A227659913309521902499414A4AAD215B5C786649A4212189A881628A2578DC8A2C09F350514811E24C9851229923462E4AD6A9266411A87910279156D8266734B81ABA7E7124A1C5BB404EA04AB2BBD5F3FB1E7D0C1B9877EF9B466401C8169393431F230A2A14A290DEC892B03E2F399A314054A11C1638A879BA361C4F8E845127827E7BD901ACB87920E3D315FCAF1C201D12221772105A219A110393E2A0E482D743FBE17340E188B82CBA370047C0AD5F752D88D7470AA36A4202A314A8A41957BED52974D6AEA4B10A47CAA58C5A65802DA4654714247199F85DF2587159E5A12FC175C70C14F7EF2133C6164EEE017711514422CA740E443E409CEE7610981A7162786E6C5ADB7DE8A73266305F799AA4F3FFEF18F7FF8C31FA603C67C9C1D41EC2F12CA6C9146220F7B671EAEA53C3262CCD2681D45FDDB2A8CE0C8320EFCB7A6CA469C1BB6BDEA49E1DB8364430C9F5150D5893EE89B4DD03E0835989A6FB963ABE9CA195E7C3E4CED9998BB776152DFB412AEC49907895C719ABED7BFE663975F77DBCD809C373DB97DCFC3C885ABABD057506018A2935F24D9578F04FD20BF0D6A9A338803435AFA8BEB3F7FD5A73F3AEFC6C6A57AEF84015C95A9A9965C1F3663A37D4DAC831D7DCC5590083F2D3A6A8559B75AADA0895CB1ABE4607CC39B5FF7A52FFD0554C6C059925E0D4DF5B4EC2B07836E94369A7967511985F0E2A206A26FC1E77D98AE588B512C4749C15B280B1E8EECD74D8793FC90E4A3E05416EE9B4D805794DA80DC9F22CCD42384B8DB39E79C83E79FDE38657F328829BD022A0BA0AC628A6FE1CFC86A29528DFA164A293C6314B778E687B39CE957C64779B618A5C7FA507103C72D8899C0B08D2B79B13EF6B18FDD75D75DB881E598139E6D9401D75E7B2DA7CC1DFF1C9200C01DA3D40CCE19A1681F0DC2994B821115879E4EBE52C00A2197540BBE8334288A1BEB75F3B4D34F3AF9A42DA3AD8665AB61E46669A8EBAA900401EA591AE98C0CBC43060195D8901B9DCBAF840F2B978B3422819222C085F248C6532C678ADC115E2343D235D08C54D7B23549007D59C1BFE6BA8A9220A7B2353997052C3BDA04A92AFA1BA4492800B5AAAA5C772AE342D196B530CE935495723B8A70C7E3A7F7CDEFDD7368FF81B983FB97D132105EA038D34D83FC21E488E74AA8323BE06C48283C06A432B054A70FBF30D6EB052440216350E0E3CD8419CB99E994178C6F88FCE694C2842CFEE0C183EC1A62EF7919F396BA23F073CBD9410C1547B28A3B8591A5990FE1B1B8BE17865E14BACE4105FE81BD58449678CF0B5EF082EDDBB7A340E2CA1DE2DD5CB943795624F97069A4A951089A20FECB7944EC286376CC6C144A5D1FB8C930816D30A235DE76C71D77BCFBDDEFE65C2612031C23214710FDC0CED3676691F28B66F7E65105C3BF461270863845AD891084A713627712A0732AE44F9DF11178E22679DA6BCEBFDF4B37FBF029D4D015334A41AE24EF71C05E4DEE884132EB3D3303B75F4FC095EAA9E957ED4A3F5EBDD155B38A724DAF626E5A09D25A36EBC2A4A1CFE3BBDC1469731F89131D2A9F025786F1B0D28568BC211D3443397C4EE63DB2ED7DF0F4E7E0B460EB8EEBF6B5D4D6E07AA499C8B8C9F7BAA2ADAE80C4D7A2244E1DC389C338812483CCAE9AB22667AB2DFFD603F559E533E7DEFAF6575D06F908345736F5500333963F65C5F9A07953D0EEDB28D4908B045A2F570DCA4B218C04DC10F23F94C524D994A79D76DAAE5DBBA84E0ACFCCBAE0131D09D2DF39C6861F3464A97890EFE73E4B44324C50D4199BE0E7E8C0139D5246C671382959994C867C5CFF43244199768899D0ACCA763CC7E4E85FDA4FF256E15E115F3DCEFC29F19D0D1A3229CAE03494D1CB78DD94962D5916BEB9B00809981BA7378B3E3852426E65D4EF4D4B1B9F689D75D6E91BA6C6AA8E859C3A8ABD2C45335F5625B198204A58129012CA213812D4445744EDA2125A12C21019BAA8FACD918D07280C728865D46F54D0551400295A0E142A101E21CD15024A41A32117456745BE12ED02B2E534D54416699626A262A1262B759161A48BAEA2BE9F4609CA1E34149C3CD3BC207FE457BF5E5EEA6DDFBECB1BA4DDBE78CD1BA7371E9C3904A5244B1866F2509319C6C12779408A36EDE6873EF421DCB29B6EBA090ADD04FFFAB5AF7DED8D6F7C232389AF7B439C224DBBC1B284C880D3E7A9EE697A7A1A5F123997CE3DF7DC97BEF4A5A826903307CF0D2190A052C3CE74946433333314EF2DE70B4191E143BC894EC6D4D4146AE879D1538C4CCECF7FFEF3D75D77DDFCFC3C516F5900B08388A88E4A3449B433941B3D88DDBBE402221B9F760C86B5DC14C36065F999116318A22711A7C025DF7DF7DD94BD47328F223A380736FFD1BEB9E69A6B489251E483042AAD7D5DEF0E7611501205F7AD2410112EE22FA37150A893EB18D8B2A10C08A2AE32561A912EC93F7A1775B01CCD598E3B91998005A7BCF58C056D71A0BB0D7F6AF98B4FBFA871F2C373BB06DBC0F84F279C94B4767CE997202B2C5F095E899E183AE1096FFACD85D5FEE0BF3D65C7907A481A6A8C2676A62566001538FB7567E3FDFBFFFB7E5805253646C1F6C0ABB7460EF567A10EDB5E7FF2A2BE1457222DAA0D3E3FBF39A877D5B072C9C67967F59499E9E8AB8B4FC31AF8CABA5AEB742C1D7FD9698A599DFBF683D222E839D8D5CAD5D77CECCAF615B2230914541DAA59B5B1DA7CCD6FBCEE73977FD6491CC21161E0C5E373D272861BC9807BEEB9E76D6F7B1B295214FB61A7E23A7649FA2CFB36E95552B4996884CABF495B221D82CD593A30AC7F1C4B03E02C922F7CE10B78D250D55857A4C9D52AC4B2293F951655F607100424DD8FD6FF4F7FFA53EA01CEA7F4589283A8034D61B4067815C7974C444DA4D7520E1205C0499D82A17DC3095D6B0F4285350CC9D14C1218A78E0BD3500C20636F34AB1393CDB3CE3A737C6CA4223A0AC841D8F30783348B55A19E2BB2AAC1D027CB098EA48B91FB851E43578A84214D255792C8E08C0416691127903257E8FE6AA6A989A22299096180E42F2B3D55B88462340884249004E8EEDA191599A3462E2989849200FF5251D486A1A202AE2385F881005CB1AC11D36A28B2EE07F2DCECD2E3DB77EDD933B7BCD4EDF4FC5EAFE8C15BD02DB178CE5820E645294FA411E38750E909F9726565851043CB2F800C2E0212219006FC956015C8E6A5F7C7F1316EB5414A01B3A432F035699704B7801360773F4583E964E0C5E73EF7B9FFF44FFFC4E712B912C5C418D1908F051F563AF45FFAD29750AD665224BC0472A7947BD3738A2AAD942C0F3C49A8D6A10D8BE614157FE1CDE5A637D45F9376836506474DE421881E51116E02EA7AB46A69D86B9E9A93706E156788F2F8B86F8CEBC208A9D4C7832C159664CC3EE845D04E52C769C6A3A6715845A510773E6C6BC36D1EB89307DD433E2E2ED0FBABBFFAAB37BFF9CD44B1429FA839116E489C8B544D1508F9074582340EF96E307DD4AEF49ED215681378164230A4C34E64CA10A325380D18E0FFB7349D1E5CFEAAFFF2F92FDC2139158119955B03A927C20C661110EE8941FEE4EDEFBFEDAFFF4CC09566B251B5C2415F3C7A0CA05FA490423D6C9B69BCA24C25690F5A53CDD55DB102BE54EA19C06EB44CCE44C19A29C34286124796542F87CD279E38BF67975ED573531EB81E3ED1CCB47346CE995B999F55E6511833163FA10AE201388E99C56A32A56010C20A2B31541D06435F10A7F3115971E637E9192430884733323CA5AB411184C093CFA5A024F5C96745F62B1EC2B9B9396EAD5156DDC86F43010FA4741C13C5D5F7BEF73D0A6833D835174690A820198053454A4175EDE73FFF399DF617BDE845DFFCE63719520C953CF2B21E6B7390D6E886B4E84F8E6475FC3807F122766B1309BCE52D6FF9EE77BF8BBC8B85BD5CEAFD2715D5C56BCC9A604470B9C89AB334171182E9C699679EBAED842DD5227C8FE2C1F37B59863480DA3DD24FA0C826D7B0912420C71C17F2B0B77D4D48009A02850D5E541D6468910A6CEA4415E8409EAC79921C0AB8511DB5E654D590F6624D2E0A0B945C80D641224B22862C694A962A399E50D9C91543C0E2E9C209A3E56819C505685DAEC896A6376D73C4D06BFDC46CAFBABB77CD3CF4F08E9D4F3DBDBAD289D752848E69643103856139060E4FFA3B656D52AE0B31DCF7BDEF7DB7DE7A2B776EA1283F9F6FFA17591BC51238CA7AD96597E1B748972456CB02609D7F9F380B71E772290337D7E542078EF7AE539DD88BBA67CF1EAE6263CB1D0F0A3E0829965472C665E302BAE39031999F65DF20512F29D4DC4C953BDBE0B7F834D369A1DE7050AAD326764CB030E4ECE2BDFDEDDFFEEDFBEFBF1F86F81F431493354BEB9DEF7C271A675EF1816190836C113AFDB49FF8201481F7DE7B2F2E19E910978CFA1105D289CB94B3AB294CC235C9381AF214A44CEE8946EF82B0D258BF5B931066D159660072AAD7352B89FDF1D191F9E5995C64F0CB2393A7DFFC89EB2EFDAFAFABDAEA4280A2C218A956A80487412C28C1A61A04838AE365A11E291A9AC09AE5E629CECCF051FC6B83C4B3EA8EDFEFCB9236511F5B5D5D411B42ADD7ECD474177AF8DC3C16FDCEA6C7275EF6A217DFFE777F0BA6F2F257BEEAFEBFF9860959475242431401E6431C2D0EA5E0CF53B93C2B896A063952AAA065BADE476B1E59765A436E91A23E96FAA06450007B69B693FB2E67B551F66099FC8F7A7E384FE1991E42C6AAA28A302895C5B01F158FF4934F3E490E40D233F0F0105221A1427DB2F850752763D551362A0CD32EA100BE3DF3CC33FFE11FFE815324CAF32CA72C53570F8669E164103235B8EB2DD102B391B2CF8AE04B29C44D2890C7DA1F94649B376F7EE289274892517AF4F1FB9D502A2D3EE8CE3BEF4472A039107F262A63EA63BD4D629F29978615B55BA23D0C4A02CB866D5BA74F39E5A4A90D138E78B582498511DA6B28BA5594044263CA648E01902545B4CD27A99C8B82FFA25D2B9E95486BA9A649885C1B4FA09626B21A2A9AA70ACB403234D0CD58D5D1F248F1579DB248259423286C7359121DD1842490502973403641AC14ED016448A8D58AD39CA139215B8656370C94049558A977DA83DD3B671E7A70C7638F3F353FB7E4A3D590AE05498E25096068CDF0EAA89A1A5F0FBE572AF3A32EA0286FBFFEF5AFC330A185BB6E91C793616699B3946D704A59FBE0073F8852819459D249C9C024FF38CE87CA0EB9AB17216EE2E3C805BFAED1423980C9E444EC8F3A37E17564B2381AFE4C2A18F52BA5D42096049C577A1C494039D75CAE4C1E7906C0A0EE698400C179A8149829D7FBC0D048A72F12BD51B2047990089A09EFF9C33FFCC31FFCE0071424C771F022AB3FF82F05C0E99531340D6F7519FD18F7938422D73FB33D44DB4E8C83D2586915640A2021BDE4252FF9E77FFE67D47CC93185D6090A121A87D172E8A1B621276186A6ACADD4BC34FEC4B5D75FF5898FE6906DD2A0A7DB1D3F5173B59E7B12041D90934ACD4A4342D7610C3BDAC6A9D0F41BD6427FD5483313D4D436DC60806A9589FA5192E98A99A4990A6A73B43EBF3C3B3931BEBC329F0A6846F15C90B41C1F007110FBA74C9CB87761E7ED7FFEB977BFF3BD1568EA92DECF3BAA8D2BCDF97CB2EF4EF447046759CA022971325435124FB40B76D228AE55C075BD2412F92676DDD46A4A7B69001590970497C03376C10517E02B4B0522BD4FA521C73A3F9CC84E6715F55F7C8324FF887596853DD123A12E5335190724983BD39D5CCAC32E23725D90EAC6C88F0C8A85DFA5C3C3A2AB0C529B1715EC78E44837A263801444EE29024247550FF9C03DF7DC838BC55FC974204B1D8A2823CF9C5026717A975C72C99FFFF99FAF6BEFBA6E7FC86258330D8B1CD0E3480E6E5740791994A44E0200451D121DCBAD32ECB1C47920504A3F224980876C64D43AE5E413B66EDB58AFD74C55A47F16F91821CA00DC4F24F9C2FFB366169116C0DB478B2FDB9BA4C9861020BDA0311047199E27A1834001EC9CA218880C3DD674516D80AA36EA648A8622974C04056D001975932C06D1CA06751053B448C273AE582806D06A504588D1409D48A22E65E2A55774AD66680D457324ADEEF6E2A7F7CE3FFCD0CE5F3DBC63EFBE83855D96C3B1DD9779093D82D134E9183D1336991A844129A78D933BCBC5BDF845FC97380B9E1B9C031E1A525EF04F975E7AE94D37DD445E4EAE9CC4B7883C8B90A299A1131F6454F432A4D73A49409E1CAECB27050A8E44EBC4A38CB7511B556A9BF7AC248134EC180C47F6AB61740AD2F109681EAF20A9FFC11FFC01EAF578BE298F8D76809541728CB0C2C23F90D70BB533D2F1F122A957E43262271B8AE437BDE94DB40A7238307A010CFD5DECEDA5C20892EEF44EB9A68F6245940540B9F09C3E4BBE41FA2E85226EB9E5961B6FBC91564184BD8668529CA6C9B1A9D9A5851832D5D2E33800152A923AF0931CB4BA5D1978ED71B4ED42BFEFFA90AFE9C56CAE118B5490DD8F8FB8BE2BF7FD9A61F6F31029BD62A80112BE27BA162BC2EB04959ADD71DB535B46DB4F234793EB95461BCF3D64B92AE1433FF0E10F7EF6BA3F9D18D1FB2BAB96ADF5F36A94CA10754CC0D10FA38CC8A5EE8F06C8A1A1421A2909D88ADACF12B4A2D10648713C1123D02A52D5CF43DC59170668B33BB668D9883B89E7B9DCF8E5F81157D227881D518E5CB99B050548391E43185CF4456A1384470BF92FE9A02447CBAF983B26952501CF871DDAFC2BD7AC917B87AA7CC92E24968A93C4D551A90423BEE1B19C9F9FA75F9190EFBBEFBE7DFBF6B17BA0EC27283304E4F278D2086AE9A83B832B7AFDEB5FFFA31FFD080727CF3E7B508F7A3F729557BCE215680D107A2B9926D2B0D319990B38559CE4F5D75F8FDC862510CEAF2272848A8FAE8B76459222E782C5C086E9D6E9A79DBC617A1C15624B5387E67F2CAA63044585C56372D2BFA83C8A5E060383B065C0A1D75841E24CE3488A454D6881A6291A92656A1EA2816A986098AAA9199A8E93413338D454813BA4E9321A21B2E89013004A803C4D62240D01DBAEA826727F341344A4CEC0C359442C44E99AA9A88EA65464D5112EACDC09FC7C7EB6BF7DFBFE871FDEB173F77EE1204A8F593D54AEA8224940E1F8AF7CE52B687091B382C13D58CCC2B0C28B3341F96071AA036D11D72B90F4A611F81E3AC465487D628E77DD75172AF5A4D552A90E8E836440DAF45125013B34F834A02E83F3C71FF060E177A9D887DA02533BA767EB1D2AD339FF4A64CC89B3E47261C9C4DE153602F8C3AE00BC8712DD883B739C03862617511D6D17D755E20F9FFAD4A7AEBEFA6A829DA109703F1C4673A4F4734E462C7B54B90716C90F4A88A4FD67B589B1EDC8ED8BD7CB8D418E281EF44301AB9567E419ADD70CB7179A260C5261209FBE79F3CEFD075245F8652DC7AAA4F2525F9404E2E3A8250ECE84BC0156BDDAEBAD82A94F571A6FBDE0CD37FEBFB73AB696F7624F05CD90622F6F35474572A19235C76AABCB3D71E22A4ED4EB6ED83435E8B67B5D6FD3746366A693E55AAE169D4AABC6A01D579C7A26055EE8A369B2AE7E6AED57D4ABEA0E049EE4E7554777F3084970DC5016A55432EDBC1FD5AC56BF375015BDDAAC777ADD2C6AD31B643F21C14F1DEB08D15FCB316AD47B3802C7110228E92E7C9291A3E139C1BF1222340793A9F925F538C3F755F60EB14240B1FDBC04968ED484FFE2B1E4D03169B7E5B616641FE017D182BFFDF6DB714C0A17B17788CE3C2EEAE52F7FF90F7FF8439C241E63A5E8314EB0BB94582F975A4372E1FDB1E88B312569FEA836A1883D56E5E3E5975F7EC71D777002210CC3752453C9C785BB47B13112126B1C0F2DFBC287A517B10E2D8C62A1260B0E059BB74C9D7ACA09A3634D9C80A9AE79A851B324EA0D428FAC575251713DB811E4F3A53239E9C8D6D2742C22D91592208030889078A5A22F8D24E79A842F06842410499702024BD702450B343DD415B9C02042BE8FCA4D9CA5C29B84367D2EAA0B709374D194499C2159D3945CC593875FB774CD91554B911D59365167F57D343CB54E27DDB56BF9915FEDFAF5937BE717568A785472AC17C0E129D27939D1853082081D93D4557262E0CF042E583ED68C9149A62579BA914150381D7FC03920DBA52665DC850E860900F888E73DEF79BFFAD5AF70EB28824A5FC7919109A24271F6D967E36B7EFCF1C78F1527A077512EB0620F3E110325C95064BB8CF4C9250BFF1A9B605DD1D65A76C0B05A9B7387C84EA2C9E44756ED91539E2B0C18758BF0EF700E78C0A89B39396AA054484159D2A44BD220948DCEE2991B7052CF32CA4FA72E40575D7515AAF3C8C7CB49BA94588C3A5D5E42A62C0FC5BF52109BC0B4C9BCA31417FCCA5AFA962A5BF586DF59C5538A6A0B2A40D313A3BD76A7074AB36AF5563A9AA546B22A585C10A0E63288D6EAE948712303B16082E04C8C0C563B754975233F55E1B433CE987DEC891E391B0195A3048A6D5724F9ED6FBFF08EBFF80BA7D91AF43A10A39E218B721BCB46969D4B60B75A3D549C7D6F6A7C74717E19B57B5471A36E4F2EB50D389C4823A1B121898E200321BC525D44BEA79DEA7CBFAF6BA80EAEF5E4343459D14C17D597A1B98C261ACE8562FE706C9B80539979575105FEC637BE210F7B13512A07A9E794C18C8446B909F81E5166704B6DCA534A879D54F83A912A3C23624C8C0B0A33B1CC58CB5973EB0E36A54EE038783668BBC8A9485A3F2529D081C1F38033219397C2E6A4B5B07F92BC26E4C0A4491E757FC89BC4889954814FB037C7A24782A5A19A21285542E034DEF5AE777DE94B5FC209708712DE7689A017C6C644BF4DDB411A2BF456159A0D7BD3A60D9B374DD51B15D18E589259C89360241798E82659383170A9E4B9A62C3A86506649B096A4012E3273B43CA230CDA88C4BA6064392AAE586A9189AA96B5691452A2481A186A2F65845FD3415E5C55924E589084E8980AF244B2A9DA42C8F04A2B526E572A4EAA665D64DA3AA6AB622C400FEA70C7C39490D6FA01D3CD07BF4D1030F3FBA63DFFE59D7F58A264FC76470CAB01F3A2F040F011D6E2E0D23E64EE93DA44A97B32FC8E14BFA3E6528B16CA099D3FDA45D52491A859B58A7268C2362A66548162E7623C7E8B12401C5BE18798A4E0972191CF61DEF78070CB3A4C8DF45DE79F650932FF55F6913484743F1A49340B6455975A22550751BB3544EC0C01BA8020E7FA5F27A02CFA04188DA89F352092B49114A19A26DE47204CEB68242C1246947E44792956E103596924459866491FCD11FFD1101A332C201497D46B0218D92F83ED901A42D96AD3AFCA1296B3E5AC2B2E265A9A41B1972CE04B44A4DEE7B464DEDB96D59552A6ADD1B0C2A8ED319ACF20B65B428DA90A81B44825C331BD458967C477DFD6B5EF39DAF7C15F7B8D51C996BCFD75AF51E8AB15C6E98753FF09A96D2F15DD1A712C50F8A114991CC4A1E446A25487B72531B35ABFA6C773F98A044AA195706D0E12AAAB2925E932BFD2C7434338B8B098CD4E34EC7107FACA0C298AA519CFB60009AE6E90017664170D8DD07253DFAF89550AC765056056E234965F27FD280E41BC4BF721A1B5A0F149EE10468B2B0E948509C80B8108E4CEA309D6DC64A816167116EAE476F96DE663AEC5AC1F9E594DAC021E5729D33B5A1E7B746670C353CFC3AB2D6129E5B4EABE3ACEBE37B7B3876CD78DDC8828ED397982C21C63EA103CFF8B8E47E603B8698CF5AA880AC334E211746449A588EB6616A6C7A7A7264A462DB968810C4515194BFE605C69D2D2401DA4112711992042406D6D90450D232D24C04B5D348F8ACF1179044A35545865C1058AEE9AAA9E2E34C0D557B23444960EA42A3110EA2224E5074BE4C50C1C9323C0AF210442C4523218718470039D40CCBB6EAB6D542F3581551045D12350728BA91C39A0BF3D1A38F1DF8F9834FECD8B177A5DDC9D3634A823256252F8480C5F15FF2A7A33C20C58D3690B050F860D187524839819D1458D2D3F15BE493610D421D766F87C2074A5E11CA69A18217669DEB387E39ED1A86862A295394824249EE6452B0B642CD9E18FE059783178981BEFAD5AFFEBBBFFB3B1C901AE9E0F89C744FE204BF42D6EEC5175FFC677FF667B40304A4415863B7DD76DB95575E490E771CFCD4534F25DB853DB36CEC3F131EE33FFCC31BC54A1941C531BD715B1B18BAB0D67D913F1424A02341F038B42D1FFFF8C76FBEF966DA31600C0F49D32D33F206AD5A75D0EBD60CDD0B2359349829B24A7503F929441E723B45B3E34493F3EE51AF6B723F064D606E895EAC31DA4A014A16BD91C5CB71AE82654314564C3918F89262DEF8E9DBAEFEF0BB73D58A62E19892211E6FB696DAAEAAD5F26425958D34CBD1E8CE02176923574CF15CE8298683F7D79A8DFECAC258A3B1DAF3934C53C115F3416B3D0A475B95CE4A1BC7CF7253CA3ACF6AFE6BD7355DBCFCC8D390059BD524D5A727AD83F32B89704E28A9DF57846AA6E50237A39716F78BB625B15F180E4692E9A6EA0589A4D5EA5914E6A12BE762FC3046A3C7CD1514B492AA6B388E81DC3F43FDBD15058BB42E94A2069EF128C9251D24DBD27D374891852073C107ABB9A418157C6EE8CD3FAB75E98A8BF3C1EB15C70E7ACB35CB69BB013D57D6ED58C8EED4D1F11B22330CCF8BA10E7CA460DD9025986C5516E716EC4AB3E7C6387FCDAA3626A7E60F1EB8EEEA2B3EFBE99BDD10254D3D4A573EF4918F7CE63337A3389204DA1A7CE883577EFAC61B32E998DE24A22FB9D4B483E413711E32FA49E13B02078CE369308C14C5495C6F3ADBB66E9CDA30EA08DEAEE8861A7B841BB1D6C61D9539B20990F996250189010E17F3E7B0B6286A08F2A2A9A52813C6396B2A0A03295244D5328A1C0D0D02C944FB4037D026F04D0D65B2C02815FD2C8524880BF4D30CB22EAAEC85EC453992C589874C524659A2C5A651B19D46C519D18DAAA63A451D9B9AEB8D3C35A3A4BAB4903CF6F8CCCF7EBE7DFBE34F2D2EAD0CFA476FB1544E9F801282318A01646D44EA9C8C451089C867294782F505D20BD8E10385E3984A04F12B9B366D421B13F57D64A39497463C14390BA150D05338CD060ACDA88C37520E069061C10D9B4859C65776D555577DF2939F3CFBECB3B76FDF8EEFE895AF7C25C1054BC32E8CA4298BB6A385379397FFFCE73FFF17BFF8055E4433FF79CF7BDE77BFFB5D566148CC505A08144DC691A5924AC5ADC7B83219177BE18517DE75D75D9C60BEAE33CC3A03FC7FD387840D474D60E8D3E7C412A5D4816E9DC2C53A8D54EA5D4C1F5A2F0969D4675142D0CE93152FDC50922E0E7B86EC5ACE920839833636120FDC5A12F70682010ACE0E9926019ED230556A4E7AD4EB0A8476B51A2479EC8BFC3A1019A4BA1F4B961EFA1198957AE47B48578E21F9613E3EB975717E9F60AE869D840112DDBB2FBEF0AB5FFB6677801C27540D2395D49A63775697905053D13DDC38EDE4891DBB0EE07371E955473DEFC52FFAE93F3F18C438E755DDAA777B039CCF79BFFFC2DD3B9E9C5FE844997AAC791EEBBAAE84C2EF258C7824C8089F1BC552023ACEA7D871556C701E23F1CB8ADDF392565DEAF423D1B7B318C7D290018BF53AA220DB08C284AEDB3A72066710E4A6EEE3BFFCDCB1A6E35446F61D5C6C35A4958E8FD72DCB0C3C17C799DAB0F5C0CCB28C9243D665DD4AA330890245A028897D78B6EB1A69C85665E4D0EC02727C94AD790CE313931FFDD80DEF7DCF45C8CB122882AE49A40870B3E7BCEAB56FFEF40D576692F9C53BEF7AE73BDE8EF339EDA4CD3B771F00D93650770A81C6DFBC697CEEE0BC6E987E2429B26845D9ED778290B07FE46AA5DE13502EC79404643D50F06FEBD6ADC8A32871038F3A5ABA5FFFFAD7D9022BF76893D887C30C05C536F2C0E73EE79CADDB36E1BB719C22B13A0908588668982C3E8A43120B232EC6B1E202B35A660590C92949A282110CDB754AF990C628B22F1560A5A01425A522E06E256834085C52255224B40F52594970507C0BA2E18DC86812AD0E24399101CD8248D2047257B5DA74EC86A15775CD12A163458DD4BA6E34DDBED25E81EDBF3EF4B3FBB7EFD8B16FFFBE43ED76371F369FA3A01FD7C7521497AC2DD4EF48C5E68825AEE2FDEF7F3F773262606AC65C84C255CA75F6E5E08132EC69950E5B1741E11024E732AA99E40CBDEEBAEB2EBDF452E4D1340815D61E4B57658B351FF65526E403CAA861C73DA57BA2343AFFFCF3BFFDED6F5378A05C6B86CFA534708EC7E2D2262626D00C27C02CFC133961CAC522F421E712E9C214B523BB07C7C7C9CFCECE723ADD3A10BAE358C7FF519FB24D4039DDB8ED3831AA2AE264ADB256540E7B309E0AA1C3528B4D5A5D3E44CBA0700BBBFE90F0D04AB8E28A2B84BB4FE8815AC31E71BDB008C2CA893A27789B69485216477146A783F6E068D7058B88C59F3453C9B3F4431FBAF4864F7D4133D4A9E9FA81BD2B78BD395A6FAF147D800D6106A44986967D9AC8911FE2D7C727ACC5455F2A52C4B3A8607BC5B0684BF8816081625292F801C78FC3B4D952DBAB22811014A8D56DDF4BE2201A9F74161706C79FE7F1AEE3DC840742B4B4121F196D2F3DCD2311D6336B8341CF1F0C55D4BC988FD0F7910C7139825FE5850688D747C71BCB4B5DC350433F3E7CBF56AC22035913BFAE3DB718C7B070C750D2889A8AC3392252F15F3126EE49B58A2CC58842C91BF8CF7A5D39D49B0DE488FDEE006D13BBA2BA682F15F3A77D6EB450378F035F4C46E09EF96BD7ED0A7803D8B0A9353BB38A57705DBDAE8FF34C93288ED6B6A8155B21C4C24DE258A992F7E2200D5C706CA97BF4B842597FE50FA75A509750246D3AA5654CD6353B82FD83C2BA3750E9D350126CD9BA11D570C7B19075C75140FA1D3B0128D597A33AE4A861D549530E4355C350F52B58554C9A17459E41625B86C28CA81100F9E504B6345AAE5220347D2517A88E72AAE0BF6885A0B56A08FFACA999421D57041C0548B10C89666B86613B76D5B6EABA56295A210849906A754D6FB87DA9DB919F7C72EE7FDDFFEB279F7C7AEFDEFDBDAE478C0917821B843C8EBCCC52099D98E299E48B1C1D1D25943D627648EDC82EC9838C8C00390B4A602894774A3166915B86085DD794068ADC2F0A3F506200316B7A3537DC70C3CD37DFFC4C34DD7592402E75F05883781A228D90F2CB0FE5A4CC72630318E2EB31880219169425C933BCF2CA2B6FBAE9264A70A68431BC0DA508E7E150D626810D10C24C5E0085B2BFBE8C82CE6877FF07240173794E20614750398F9EA7C1228A7FA54FD926E04812F94549A213422DDBDD53239BBABD552F19B426ADD5555F14C857501F06AB6FC8A9F0911430EB89E85D9F20473213C53BEAF548722B6A5D8A351F50350DB76C458372BF01151FBA3A588E541741613D59F5961B76B3EF05D59A11F462C14B41312BDAB2BBA8815EB34756BCB9AAD2683A63EEA0D74D5753884DD93A61CBA94F3CFDC8447543A7EF5A92D1CF3B6827D49D469EA85EDA41D35D1545C6386B3F8168AC3E8E0C2B538267357FBCAEA47A2ED62F74EA5C4B73116D3642E80B847B51248DDC35527559052D89A44C0D00553EC1E0F115A4928E363F720B3D557C23B763E126CB701F74434DC2D454AB7ED605D1CBA1A280E442F7E4534E7CE9792FFBD6D7BFB3DC9F1DAB4E2EB74573AA5AD5F11217C7A9DAAD85DE414BDC6CC480F605DA25C83D70AFEC67BB2EA326E999D5750712E4E79DF77BBB0FECDCBD7B8F25D70659BBA18FA491144180EB45898CA70FC7C7F53EE794E71DDA3B1F2761A284AA2DFB7DE1A54AC1C7F712096775A6C8E0670353B1E21482264A2A1D7AAE029A9E08479F8356661E748EDB69078FDFC9279FBC6BD7AE729F572EC547DE5506493C2C093824B256DFA1A184AC9C73F6E99BB74C230B364DE1DA4BE2B00CDE4BC5685C40548EB3D3BF45637A850D0E6988F0557C3D1BBAD08BEF02370E24FB202F640090F99365AE080FC899AAC4AA92A0FDA50B9852E46262C1C8AA6C136D1159152E26FC626ADA86B86C548435A09A8A6C8A6E978A961B0D5DABF67A52DF5576EF5E7DE0E7BFDEFEF89E9DBB9E5E5A1459F9E4E7E11C4146E5A41C67CEB02CA79170890755BA72EEFCC68D1BF7EDDB471841E552407A3D2C71E521EC2D8A1F8A29516A17BE362E5620EDF5F4D34FDFBE7DFBBFC8E9385D95D916D907DBB66DC399E4457F5D327D70707C10D90A343D7CC4EEDDBB39E0C9616D0AEDD21BA46801B7CC2ECBB3F211BCEBAEBBDEF39EF770B1054A085A2C7E11F59103070E70DBA9B22BA63CF9FF7D1F56F669D5A79D76DA534F3D558E00F10D2C568F2A09A8C2401EF6B66398300622A45004921CFED0763B390A9A2056413E6DFAA483334FE30F1618FBCD1EE0598EB404925C47A628724C45EF30C1FA8E7E5DCA0D2336C22CCCB5082A48515A45B1FBBD76C56EC5ED38CAA3179CF75B0FFCEC7F8AFB05CE3CF255D992AA9AA9F5C2E5E60913EDFD0B426BD60102D9C81DBC1F07C98D440402322858B43E628CF4BD7E240FA4A69E774359D5B334C27190C39A0ECEB89FA1426B28E0A6C799E771AEEB115E8AC543A594AEEB93158192ED8A094446240C96C24D03226BDCC4FBD7D6ABE4858A2D810DD0935AF6B8177A8116ACDD8FE3E3F550178E0381402625E140ADD9C98A27444CAC5999AD5B7A375A11F33155E827E0A04A8C625CCF90F3D6D5241BA0A0D30C2B8EFC67B7AE960E2B899219388E5C53D2C8C3F12DD9F2C1834E7EC4758089C9E985E519F0E4BA31D2F37B5A53375B46EFD0F257EEF9DA4597BD235B8AF07A2EE7F8BE70F98D0DE39DFD8BB84F78CE2CDDF6451749A9DA6AF4822E20AF1B1C3DAEC63957ACE8203953062D9534132DA33AC8A0906B0C84981D67F8145222AFD59D534F3961D3A66953477DBA200F29E3C421F6FEC33014CC9FC3BA1248642810A53121099F24AC717912066B693605E91563523B65AA79CE442DBB080F44B2142BA22A3E2B124C25BB9259A66EDBA6EDA0A842CE256902A4088A2456013D244B3A2A1492A42AA2658D2C5B0D45A9F4DDDCF7F47D077A0FFE62C7A38FED7D72C72E29B7C9314261C0B3CF3E7BC78E1D04DC81C47CCD35D7502748F2B75C7BEDB537DE7823152E52974A46A1222E80DF12295845476F0A0FAC2BFD852303A41C42A0502D79D8B97B01C918F248505A279962EB04C03A4E57BE5E666DFC4546D3FBF0873FFCB9CF7D6E6A6A8AD2B7B9271A958650874882C1A06C4EB67EF0065C2337032054BBF223D080C07D181F1FC77BC83B8FE2ED79CF7BDE430F3D449EA5756B397EF5FC7FA018A0B5E3B37045E79E7BEE830F3E48BD9C6008E9CEBB57164E65EF102E1CBFF8FDEF7F9F643F0799192495F696B0AA84EDA5C0A68D1B7C3FFECF7FFCDA2F7FE92BAA5D4FBC48B32B717AC0CC9B7224AA25F3AA122153F37C43B1C3C43DFAF5DC973CC3025302E4D37D682830F05047CE4D30025B89E58A59BDE8CAFF7AFB3D7FEACECC56ECA69B0E2A693DF750714E43C9873AEA99812A99A89C6AA133618C2F79CB890DA91EE2F8A3ADA9E5F61C3F3732B35CF1204E84A2DC30A7F4C9EE4207AF8BFBD38E7092A84E940E9EDDFCD5C40E1D0850FBCB422D064770D211B37EE26F9ED5DBB5B2B46BD1CF83D0461683AA7DCEE3AB9112A39D89CFC571E2A466D67BE900BA52131A1EF84AD3F09069A6999CEB9914CAA153879A0F41207930A29FB875DB9E871E0747A9E6CD749008BE5D8118E78F7A37AE4BCF707C2B32238807AA078A37BE75DB1FBCE0457FFD8D7B9EDDBA9478D2DC804CBF1D75C4BE194586572FC4F1F5B46E2526AED377E224698B760E60BCE065BFF7F3FB7E6A8365EBCE72B2045AD09CDED8DE3707351D3A28CE2CE4617DA90BF85E14154D839A93051ED896D917F9C5B25277529404C85EFDA3DB04D2B0853DC514C96BCDBA3FB31D28BCBE65E43B89D2BC8EA4C3AC56AF6CD93CBD71E364D5115D1EF18A683236A48D7C88C92397C00BCB31C08293AFA9BDF2919F2C4F868E97AC2C0C866EA28C1F4199FE220493A32D88AA7AA04891AE27A6816B909D8A30562A558B62DAA6AE0A37918028D28BE7A890AB592A7264654914072A664D556CD7CDC2D89E9D19FCF297BB1F7B74EFAF9FDC9DA6062BB65C764138975C2544A512DC7D09993ED23C7B09386ECC3D2ECE39E79C471F7D94B9F0DA9E96E02A491220EF78EB5BDFFAC52F7E91BCF030F4F15123DF321A1ACE046FE690C33A195066FAE5E03C3BFD7056C8AC0983010724B00A0A41538F1DBCCE0A42B91E823C2784D3C26871A42E9008E4BA740A9BE3CF77DE79E7DBDEF636AEAC26914666040A068AC4949308FE0F9802656E4E8FA35C2914575471C392203FB28DC1BAEF72C498EAC9E5129236891606AEC07D23518A5B3702A34BF1526A2630019BDFB0F5A03A9B8FA0960D63F968FFA995E067C5F25F04B5CDB5D0ED1B7E6E4C1FF37A6FC772F83F0484DCF41B37CCF467CF3EE3D4A71E780A46B59A6B2EFFA20F0B507D5525304343965AB2DD5692F069377A4028B3CE79F620F0369F32D93BB018D7CD7C26AC07F6DC42BFFE1B35A929F7563A1B2B8DC5CC6F78F6FCDFB5719E95173A03CDDBB261CA9F6B77D4B4DA37967FD817C816FF8FA18CA8B13718552B38CEB39ABF3456F376F7E25F0ADDDF78B1EE4C57DCF6AAEA82B36574E9E165F88550EAD5172BB5CDF5A0DF93BA8931DD1CEC6A87F7172EF573C1D98C1C1039AAD237A01554E6FFB62DD8EA2B74B9A558A8ECF52218ADE2FDFE7FCF701CFD3CCDDEE0B8EDCEB85EE9E9A8EBA98BFF288CD4C6ABEAEAA836E8B471FE61555F7D7C29F9B9309294DF958D0913C71F519C67BBAEA0A2694BF9E0A7098C41E5371D4FF7E534DB5C1B5DCA83E480E73F845207A47361FACC8DB86FE142179F5B1F58F3FFA30D3E4CBC6EBC9D771C5D4B5706781DDFE3D2B77BD004FBF7ACE6B6D6E2CCCC8862E7DD93F36EBAF8E06E58CA8C7E8696CFB8827676B0470A8E7ACEF3021503CFDEBBDEF5AE3BEEB803EDD7C71E7B8C744AEEA68554CFDD6D0FB3113CB50C32CC9C7D64B43E353936353556AF56FC40B8AD85C65D7016A61366342448F83A7DB238629B401EC24F1EC6B890F323B9412AC9875772E427CDF248E095E60305D5192D364CD9D0240BA5A7A93915DDB2354347855DB50AF25334438C9E091C15219B849D543444D06C59357D5F8A636B6EDEFFD5AF9E7E7CFB8127763CDDED865BB66C41268BAC10B9D8473EF211E4F8C42871BF5EF8C217FEEC673F6397CEE6CD9B91A391202509F1D18F7EF4EAABAFE62802F27AE40B975C72C9273FF949549C19580D8615496589CB0E22EA7CC99E65F65C735F3328B28070402E81293BE258003087E57E3B9CED53CE8FA462B12BAEB8E2B6DB6EA39807D77C91FD414612672231C616D93DA46550ED28BD5C4AF9E73A499C034A4702DD65571223C573BF0A8EC4A4FFEE1EC2FF9A0FC70688831355301A391D35CAA95897FFBE4E5695FD7BF42DAA69E2AE15DC528DB2923239D36C2B1EF8B665F86E282C7D158DA72C30A09AD7CC480A210F2C88A41E24E0A8DA208D8F75DD492BF5C4F420E9C000AAB1400095E440CE74DF6880858A490775E18A1033E2CB0E989E55118E15E8498132A9A72BAE9A42A282119AA754B6EC77E77C3347D68AAC6AB2D99AEFAC369596E5C92E44E2B9790F5535034752F24A52356309C711F71B0388337C4EFEECE7DF909B9A9FE1F5818EA2780029D40CB3170575A9610668B6A43D25021375FFE2B9528ED78D008403C89103A58BF644CBA9AC86EEBBDFF89E6F7DF9AF701C6DBCBAD29B1169A7C86F1518D14625572868383E8C48B85E71BFE7E27C0CB12BD09343A16BE7A0A510ABD0909AAA2FF4DCB8A2F838BE9FE93944F2B35ED786CA74B4D2CF405D955C68E610C6D200D056D302BD0E687380983FDA2299C0F48E50E70FB44D30BE02FDBE1AAB135ABCD4AB68BA9B4463C6B82A4C9EB88752C2440D18D4049246E1C2EF159EA81C4D19034C05421737E8A8E79CF451EAF749E79011EFA99082B4D58B2FBEF8EEBBEF2E974C8AA8E0CB5FFEF2EF7DEF7B4400E4F79C9E9E1A1D69345BD58A6DB86ECF303545022A9780611A0C49029601CC928679A3191BD46507116504913028BE31B4C7E5C32C32CFCAD075B20026CAFC0C06B21C1868D319224E601AA896AA8EA3A160D035A190E2E24DCD147FCB91D47391EE5498FB8A524802D554753B0884A9B9B810FEEAD1034F3E31F3D493FB73652DD047AA3D14BE118A88C0B05F36875C7886EC5F63C048CA32A2A1C851C00942CCB5B90406867D77A9E40A5F01FE4A1163C6827EB69C91ABF6C9F4FBD0873EF4D9CF7E561E36EFA6D8EFADB7DEFAC0030FFCE0073F3878F020251795E5370CAD3DAA42E0660C9CBACAB795E7464F6465622D5FA0C851631C2A6A41FC277FF22738A557BCE215F7DF7F3FCA894F7CE21337DE786319488062D484FD4075616446904CE59248129FBCDB3455EA1203436089637D1850884AE7A84E07779E98384583E81EF2C8B1D64F09C18C935CC6D3A7B7CF6392DC6D341A4875737373466EB7265BB39D83A8EB6D7CF519CBC66A60B860669078CDEE48FBBE954BAEBBF4DE07BE1A6F085C2F30352BB643E740ADF7B782718CBCBE956E8C3A28B1724D6E82B4430D7F28325B6A7F584DA643AF1F39D54A6078E6D3CEE07B82A18FBE66A4D76C231F8D7A3938B9B2574B7F1A431F1AAFA987939E1FC49AA2A795D8DA5719A08E1F80F387B6BC2DEF0F7CC7AC0C54D7DE5FF17EE8A2AEEDBCC4CE37275E1C69B91ECBD154303DF7373378FFE60B371D520E66293297EA40EDDBFBABE2B93E4C5D30D96F75DC7ED068347B52677C656AFEEE59D4FDC75E37EA8E74FD2846028DEDA8B530BAFAED651460A89B071383544DE3D51C46C1D86B8975C550798583F3E9753D012C6F46E3EDC9C5AF0AA2187FD3983FEEF6FBBE695841E46F92B61CBC733FCE73E35BA667B5195CAF9E59B8AEF471C87E2C621EC6FFADEB272B7D3C5AB104F55CDDA527FF5F849CB4FAC715ED2479B5D3D364311F6DB711FFAF10DAE0FC671BEF6FBB7D1D0CDA67FF3B0370C07A8989FBAF55B4C162288D00EE9BF78F627FEC975AC629AA1BBB99A7A495A4393FD2FEE60A98609F673967984BAB6D11F446EB62B6D9451B2B83B1D78F761BABB99EC7DD1C8FC1B1E6533D54EF7F17051EB45EDBCC36C59D8EABA97A53AAF576BAC1C3013C0D7A62C9281D14545E4229C9196497BDCD54B049491FA4F0C1301DE30D6F78C37DF7DD4794C202A05CDB2C48FA8C33CED8B973277E99B3534E38616BA35E4175DBD4955EAFE3542CE4EC94274ADC2D1FC23995DB3B940B0854F9B06BB5240644C5C01A2B91B22167C98E900439E7B3163F488A94C7B930853C544C0DE11D92345D56E5D43015CB960D5D42E66F68280904F640D1A3584A132109508146E3A0D0683545D50DC3F651126442126C7FECD0934FCEEDDC79A8DD179B42393C1420654F3D6E1997DDC2D077C45A368102119608C18F502A0EED0F972FADFB500881581EF54B211E7DFEF9E7134428377E598770F7AFD1795932415132463D8ACB177186655E59CE982C737679D88D80AA76393DAC8C9F4AE78FCACB29B9964E21A593B1AB84BA5A12D010727F3A79646D406127919E42D2911C62C48E71045C82E89B547CB80716B788910A74527C348D809BC9AE2A5E4EB96481B839A57E92E544051FF844B49DF10A4E8F441777A69387F8EACF8C6130B6200C01CE08751CC727890545CB6BE10F74C3348F7447336B6A6F50509D530448F144792D3BB5CFDA78E63F1DFA51A089D227A1B89A30214DAABE2A701A0D7F190A5D52D223396A2523D5A41A41E8C9BDBE33181D6DFECE392FFECE8FBE33956F9007483FA9DE92F70733C21D9148B9998F24A3566CA119106A835528B2C57467900E9AB1782EDE8FD7DB462F0F41CD45BFE546D4AC66D504E248F7DA46370B40F40F9C529483E6583E3600F78B5FBB7DB7BBF3E31FFF446FCE57C76132D854ED553BD096AAE96C207CA7A6822A7D309A8D199181E3FB4ABF8336860635B5D68B7BA66FBDF3F7DFF98D1F7FBD0B2B9EB055E0B7FEAFDF7A60FB031BE469DD455D3D48CC604969E326548C8A9BB83CCEDAFC91052B76607BFAB23502233964ABB078C2F3B73EF1C86E399533339BC8276DDF0EC0C7F9AF685D1C87D63B0E137A8066029265B0ACB671BD74FDCCB1B32EFFE3CBBF7AEF3DFBB2DD07DC59C582DC450B2BDBA86FBAE62DD7DCF8A737B846673913153662FF95A8E6D7AB502DCF474DC5BEE1F8E301EAF8CB2E74BC9A5FA0742BA9964E291B1A8306EE4F6A858B89D0232DD5F273FFA8F3F1CC81B122D685E35B63DAF9EF7FE3273F7173CB6AADD656C569E98114A9261A15528E0B14E1FD0408381D8F1F12D7810307CA90A5302C8182A1CF869B7CD0A7DC1B718DA2E9B81307246687043E32DADCBA6563ABD548056BC22F64867E0443679D5D1E925CD935C47E55BAFFC824229130BA864F37F411519DC13A59B2E6654A555954172720FB92F00E09943A4D57EA6681568D224113D2A508D451745B8488F354A06AC54158C4FB0BCC22A39EC47994EA41A82D2E054F3E35F3F8AF9F3E3433DF6D2753535384FACD209470A4E385C3E965BD927FA68871B9CDE9BA282EB1C5B55A8D52F5352B9530CCD1647CF37F834D40EC9542D0A492B36E4BC9AFF8575C2603103168280CBD822C09D040C1992067BCF2CA2BFFF11FFFF1A9A79E6200C8B22420AFD1D8D818F23E926AB41B8C5C74DA69A7A192F1DDEF7E17C77FED6B5F8BA28E241C81F350F10B2D561EB657E5C661DBB66D5B5C5CC499DF75D75D5FF8C2171E7EF861EAA080D609F979500CA09546E85A3831CEC73D6C940E5747BF52649B42E2640FF19D380D7A28D3121988E42CA222415CCEC68D1BF11D71B0442EF5B683A1FB8E0E06CE137F5D3316E368CBA68D6F79E3F99FB9F9E60AE8459679E280BDCF7421A83B5043B5A693CDA012095A1D7A0A98AB5A3EAE86DAC4F8E8BEFE4E518C1C6B72D2C8AA1DC9ABEAA9914294683D5063C8CC117BF34AB4474F47A54016D76DE4111EF8DAC6F1330EB51F83B051C9AA010C8C0975102CC14081A48AE32BE9682516D743A30B7288E3DBEAA4070721A86DAA6D9BEB1D4ACC0168C8D27588F1FE15BCFE377FFEAD0BDEF926711D75B258ABE81BDC6C3F5EAF412B95A281BA24E62339B267674D57F3AA72287003926618ABBE78AE67E073C71BA7F6E7DD46BD3AE7ED11F70FD7AB0A8E6F86E0ADAD2BD6689EB43F8A8A6C704EEC8F5C81810EA3112CCB63FA949FB8F958F29AFFF2EA7BBE70F788B971C5DF79781CB4BA8A7549493D37D10A6958B913A3A451BB621C1ADF6A835FAD42D30737AD46E6A8E11FECD6AD4DDD782F8EA345BA0499677568FFC5FDF50174CD2A344049E366100C9671FE724FCFCCA5E9B1B37EEF9C97FCCFFB7F7CC8DF4BF76F183D6DB6B31DC71953C757BCC5A8E243EAFE0BF331571BF6B670355ABBDE50A083F2A499E5FDA2D2232B4E4E96A02D208BD0B31096856A4F471DCF361E4EFC811A961083E5BC6D6AEAC9CD54A82538A5471ED6E3C99541EAD8B0072CB446EADBB66E1A1D6DC9F8EC04B9522EFA111CE91918D60C67254F0EC033B8398B84E1D7C9AD545C911991A208151CF915FA288A519431A7280664050560AA1B394A828A168B58B02E21F317558B6BD50C683869F86F164B4110A571A229E21EFC432219519CA19DEA87DAF272F8D4AEB91D3BF6CDCEAF743A11278F3EE739CF79E49147702B71430E275795D24838FF84190DC199ADABF63A6A2CF49956823404AA2D63E330DAC4B39504543806C3808434C4C3A22B175D74D157BEF21572F8E01B4786C530EEBCE7340E1B34289CF04810E89B5454544847C287D0870250B4345C08D51BF262B9B3DBD6AD5BF1A492714ADD0DF166C6ACA7FBE945201BC541F0B9D75C73CD2DB7DCC2E5F2788E693904DB476D76084906AFA0DC22C0EDF25ACAB940F8334AA61D3B76902940E10A8EDE2397C7295D72C9251FFDE84709AF94402E694BA912E7ECB3CF7EECB1C7284ECEB3257F51396FEAACB3CE42F9F7FDEF7F1F09F2AAABAEBAE9861BF07826198C8D4E2EADAC2AB2262B7A188560097FCED8687369A52DAC841C1A9613CDA74133C8FAC24E9E3E696C6666A96811039AA78516B2C8C27ED68B8C4F21B4A19E56BB465FC9510915CAACC88FC19733804DF5E983EE8C70C457ED5EE44191538A5AA41D9A9E11500596B85874725325A8C6F5B626FC12279EB065CFD3FBC57549E46D1A03713FF262D473CDA61CE06354A82496DA33A211CF5D88446D5671338E66CAC8BC94C02C682102C92E6AC154319FADADCDFB7A0784A79B9EEB806481D207D5D5A5C9D4EFA4C2185244301C0C3090D0BB7A3C1AC49DE27E4AE257D120D092D53C32129C0F127D18A778FFD489CDB9EDED717374515E1629FE1EAC556CC8C2F0AA268E5B1DE48362F9CA5A5B37B44674D78A46FC8A56692FB893DB5AF3F3AB500558864F7CF0BA6BFFF43A080BA73CED0F4EB58FFB53E9A174098FD8375D91509245F5043C186D3596573BE2BA2D7ACFE9892AAE0F4AF3D7C43E18B11635E2A3CE67600AFFD886A9F1D9D5C522A3174ED8BCE90F9EFBD2EFFCD5F753B4D224DF13F0B5E43E014D59435424164F0E09FC10AE303900A8851FC5F908D4801121CB9AEB619597E2091CF1938678C2A363F5A9A989F189515C6F1805521E17D05B4A9E1E05746C9DB6C81FF1AB52480228987E91CA834ABEA0557908172ED3681C3FC838A11B4A5E0894048A2CDADC23E58A5C523D35855F48F4DC162D95B5224F4941A1A7A4B9824F4B42B4AEA32C8D152957155DD674900466757FA044A1B4BCE2EFDEB3F8C413070F1C58EA0F62BC2EC96BBD3260584DC60D0B29344AB8E72472CA0DF0D67DF267F467A7651D35624CB0B7F8E64E3AE9A4DDBB7773DE0E41843E2B49C0F3A117CA6180134F3C71E7CE9D84964AF05E2427CA4932659B8044118E40CDFC666767199F473A1A9054192889368A538948414643932A18280F8A83B41412C011C80E20871BE556319A235EA799B3238BE1186FBBED36E4DAE4DEA1D2878F7CE4239FFFFCE7B9F906CB2AFA156FC0853CF4D0431C349687FDAD289582E2E184AA7BDE79E7FDE8473FA25E9878270575F0EB2809D87C59270968CED9B0E128412DE19B6DD64771DE9D3ECAB0DC1AA9FB9DB660B19037E24A9006966975823E5AD64A060287172C4917D639EA3FA79C73F22F1F79584D653B75645007A2F324A050C9F4D48F12BCBF0EB50AD49661314391271A7708688656A53A614DBEFC77FFD3F71FF86F870E1D0A21C4EBB596A3A68A1EE084E3548EC32C9490799B799C277A2E4213B849890809C3EFBCE8771E7EE2A176BF23BCF9720335DE2EB4EBD57ABBDF1EDD387270769E9E0B423C0542C241122B518424379CBF07EE5863ACE376709E83203A79CBD6D9A7E750A33647F4DFFFFDDFBFF75BF79E74C689BFDEB193EE6FC1681B5612C1772155933813FB6081A983E9151EB41CF20804FE909A829E1B3654223910B9F07EDF4DDC44344890ECCC71A0BA024B1A68B992875290881AEEC3F311A75AD49626B46F741DE78FCFC57D438308E789D747B51154355741B850B202FD08D7A58AB0B9B81F4D1B4BB3A22C522B4A079948060DA98EFBE68BA6A239DE6F568DBE8FD2C5C47D967205AF9BBAD98FFA1BB74DEF3D70504951A6D80D682DC2FC51E783F3747407EFA7E7D2F85A6EB4A12DF27735B109228D2A469B4414DF35279B6834533DECCACA0A1EFE1B6EB801C9E1B2CB2EFBC94F7E822A111117F99FA9135FB9E91B9E6102342D6391AED13FC7C488801B4D67CB962D9B364D1BBA8C9220C7372ED28744D23F93655918301C3FAC738F143FCA80B7A532717612000A398E2476139171206444C907250F1B1EC86A8437EB7872D554D7C4BFA28781402B49501729444551AF2015FA03EE6424E759224BA9AE162875929CA01D9BC4ED768E6B5F598DF6ED5BDEB173E6D0A1E5819F0A08235D62B458CAFAE03DE224F132F2E8F17576B9D4FD8EDCF49CD4CF3161060864E181CFA59DFC37E4D2D008D419957404E2F8A43B205323140D8E73C825E8DDB22420141DE46BAF7CE52BFFF22FFF12CFD9CB5EF632D470A927F03ABC20B9D4359B56C460D464A852E7160AF022A3A4C149BB279F2445BDB8009B535A09719E42C714AB47FB17BF4529BFE56A6D6A204CE84C1C9782232D33BA828AFFC18307CBE8A15078C3F0AFF8757C228A4CCAA625604162FAB42E7CEFB48130AC7E78A6778886958A762B4444C2E9B7B872FD0D37DEF4E94F554CA3BBB298C699634A499CABB5A99EDF4F45782C15683F99940BA8692D01D1090A8FF0D8968D4BFB0E1605B9A8B5CBD59AD3F38A0C9202C15600F8C4729616F5AE78BF2E83A901B252F19F54B56A6ED0CBA5D46CD582414F5C1C8EB376BF92AF190A43101DBA3E79E296F9D98310A57C1DA93E4943700C083DA73516FBD12DD7DF7CDB676FDB7B60976AE949EC83268B5651B99C79C9088A3D255D6D2FE1F846AB1EF63D0813C76ADCFEB9DB2FBCF8ADBA638A3869E45B8D117FA583F3196D8CAD7497C4A30D454CAD78AE0C468E0C06121C1FA790859E623A7226C5FDB066D7717CA751999F3B08B681F7D7EBADEE425B381A50FD43D2370A48A63029965C5A2FCE1F7FF4421ABFE0F4B1A42BB908AF4446AD1976FA13A3D38B0B8BBAA186B85E4DD21C13178BEBC27D4E62017C6956EDC0EF8BD1648DC6D78A725FA3624552DA1C6DAE1E9CC5F155D96A541ACB9D85B57DB674F00B9307B9D1B1E7A3EA7214FBE6483D70BBA022D3D5A25E20CE83D22B00A3D7E037E454910B8687329E5AC211020D65EB212572AB0C2AE6273AA554200A7FE2AF7838919A262626D044E6A8A1C44C84DCD9EC64A8D5EDCD9B37A124B04C3D4ED0A24C0AE53D139521C3B45176E34029DD85AFAC7196A4A8172B8A06A4C20554D80492AC2AC31042A16C2A30F423655CF3CC897D020A18F744011DDF9091696AAE6BA980A553D0B62DC0EE098F49C6B38B6AA92630781345340F5765532FE27E693EF0033F889697A334913B9D64DF81D5DDBB6766E6DB7E988B4C536DADB08B9C3604DD47EE7B4EE8A4E2D275A2EEA832A0DC8B75DBB66DBB76EDC2B59020618422F64A512B228EF1B284F8B7D904AC9B97EBA509128A1375D854CC9F01034789C2943E443C9AEC154E1EE5227316066407D039A3A3C9CD3BE94FA42353491A458C396B938E69D9395906975F3BA3C3002FDDC930F4F42DA40794B5D75F7FFD3BDEF10EAA655B67B5F0089CCD45DD84E81E8A36E39F088FAFBCA514D8E79424BDD4D5EB9911E3B59CD161B91C8147893696152B4FD22C8C500026518CCCCA41132A4D91D38AFC457212C86A92D2710127474ACFBC1819882CC5A253085A0911E448FA89405D100C4421C81CE4D30654407745184A5C773464CDB16C809FE61590BD24C39FD1386E3A95102D5A3545EBB782C24416CF4586896C4A9315D5C2D703592F73E33493490C890E50A0656E54D4C84AA03BB2EF6623D55AB7DF135D0A6418C19795C76E98A120C0A12C4D1FC4515E8832A4BF53CF3AF5B15F3D25FC34A6D50F7CD506C913EB6D8D5756165D5485465B23F3AB2B2393B6B7E8F9D9E175E932AABC29AEBB020ACE87AF9BAAE62568D000CE677AF3E4C1F979D44B8BB6A0A09B32CEB3A9693DB4784AE3E07A7D9C582A9C3A7C5D9390BF64A9808F9046A6C6661617F17A1613E4124C6D6E2C1DE8E0A0977DE03DB7DFF6673999E5B298B951F885C24C8CF39BE7FCC6AF1F7F3CC852D5C2791A5D3F4C86E3D33EE03C5BBADE0DA2337FE3E4C71FDD55354CDBB23A837698E3738F3E1F2504AB6AB4DD10AF8FD51BED6EA7DE74DA83013E1D8FB0E8759416D240D4CA0A549E722203B20ED451186B9A089C7AD1C010028B40AA49CBA42C6AE40C5408B576DA294A49B0C994364EA993B6A36FD830B561C3244A822C8FA50C3597B546358C25290DAB04A461BAE43AD79020A1623652213EA49C1A12AC498261C1C1614950B086B45CB840AB12AC4D4FA9D3BD8E46A0869ABE085DA0AD8C2A4B41EE057085A415DD2B4581310A0B4540D7895EC668510471D2EDB9AEE72D2FC728097ABDE4C0A1CEDEBD0BF30BDD30CA445764016AADB08B0CFF45FEF2C217BEF0C1071F24D87A5CE079E79D87961725AB1CABB3843CEC07C0FDD3CF3CF3CC871E7A08BF4508C67C2785078651FAB5AC987CD80FE7D9D6DCD284294AC92F885FEE2DB7DC72C51557D09DFCC432A3E44148E125459EFEC485D0870BC54BFE406EFF427C937C6878CEA8A723A9EAC4E239851FAFBFE10D6FB8F7DE7BB9FF0645DDB9891BB16956F3C9D15436C84806BCF7BDEFBDFDF6DB39E115D5A203070E5006116D603E6C7B0B8577885A8290E38BB4246E7B4BEF82B2BFE81E8A7EB3978F7026D6B2188E96450A431C2732146858214DC34033E454F455D27201AAA5E602F24D164E4C4B8B421F72CBD1AA5ED8CF55D4AF33C95751770E030F52C3D2AA413CC8E581F05024762CA5591AE3754371F025F8D92A68B914A8A8DB0A8CE24835643B4A7DC54E932C50425D181CBA0ABE74781C1DF07E1172140DE851F1B4912945201CDC6A64C8A61A6589067612086E2FCA8CB5BCAA343CFC3D892A95F14157A03157278C7677498C23B4635435A67AAB7D038DE6BCCDF379EBDB2FFCEBBBBF2945729878665DF6C3BE169B92A1E07A719CA01B0AE345191C9E3F3281024A26C9C24C7671BD768E7B32502B761EA27D9FDB863110EB4DADB4E2471E3E57D71B783FCEF31D97BDF5B63FFDAC169A7116E17A95DCC2FBC5FC713FD58CC7875813E3E7A1D80713259398BF6C9B0D7BB4BDD4714CD3C5F1E5C4CC1C94C4491C9A662B1E24384FA7A5B95E47120ABA6C561D29D62E3CFFA2BBEFFEB21B2D024A38578C33B56DCBDCDE79DC4F5D57C4F52A485DD5AA39D77CE2BAAB3E708D2959B80FF85C73CA0867D2A3CE676DFE261A1092ADD7AEBDF6EAAB3F75459A874680B7A258B633E1918B855C936391D49569E46545B2FAC0073E70EDB5D7524C8E1B6CD099277396A800F903B575229B95B5ED236C021886D7F0AC22E1A422655843D2DAB8698365A04D10E5494CCC3A0A448E4D92A524064091D798427E185FA8EC5066F5561AA6DF149C5F883545E534532A5A2E585296ACB9830A57144902154D02816E8A3429899EC6AA283356E502B74EF638B147969461EF4C0DEDA454A83E8537465191E256DB6EAF1B049E1AF849BF1F2F2CF5F6EE9D9D39B4889A8470A5F91EBBD2C84B430E62920DA45093E7BACC5F9EF9A128024399968333AC9893D9C18DC3CAE036CCC2A412DA4199EF94ED30EACC455042380EA5F17017846CD8E5982C00726870230A9407283628BA4BAA2E7550F837D822E5CA2C529329EC4C9C977BC9D249207F0BDB16F46B39DDE099560E0927DA198277E58A168ED9E0E3C8BD290D7BE14291D945E9FF482D244BE866C202214D7FDD7AF9D7AD5BB7EEDDBB974D131CE1E28B2F7EFEF39F7FFEF9E797019748CFE2D80694708DC87C31469DC15C478793427BB78D2AAD3BD9D7E61359AB8571CFC445E20FCD9EB3D81C98557D7C213A20D444E43ED5A61118ED784532632D00172AA925D7FDD06B86711B556ADD3606ADD09A43E969474DF7C434DB139B6A1E18813680F10DEA4CA89A0312904411784EB81309A91DDCDDE5CE3BEFBCE8A28B18775D1E62AAD3CDA300CB4D0B067E3386246F44B2192AF32331AC98764B20ACE6FD8A85DC693A465DAAB72C898AADF1B8B1A826955A74F9A5EFFACC2D7F51F564CFB29ABEBF5255FCA4278570823EB124D266F1A02E788606515CCFC793EAE22042D578ABA6CFC5C86151D1CEAD8DF973E6ACFBB39EDC80AC0313777DEEAA0F5E7EF9B2231C5BD501D4D4CDB3899B9BABCD4028DA4AA5D90F8389385AA8A4E03AA039102FC386AC39DBAA54D40E4A77883B6A1C8D010CC6EBBDD5D0301B69342F0BA8F089B0B9803FA8FE485D979746546530270D6AA8BB2759172A23B28B32A105DA0CC82DC0F1AB4ED84BAAA3D96A3F53D73A88D0EEF1BFC7A21764C7A8C1E021BCE79E7B50252F1B9A5CB40847F64D8361732752D38F95D9CC54C3F857C443A83B267B2CB9F0856C7D9E808898D1D9F5FD011E69AAF5C509D8B6323535B5617AD2B14CE112223857298BC3A02C0990FFAF51757E04E66839998F25012D4C9148541494AC1D4512306E73B123B08677AD8961510608E79C468204D042CCF33EEF82A81B1842A266A2A70D4E529C6954F9E3085C3719B8B12F22C659A7131C3CB4FAF4BE99B905642BB952D0066BA3AC9F52CFBCDFFDDDDF45EDF5C73FFE3161421C3F9C4BFCBAACD4E3CFA79C72CA9E3D7B38BD442E7593978F6C95C77117BE876645DC102513D58CE0AF48C9A850531D7939FB1EAFE09B46D9C00D7B496F259811FCD6E4E4244E064A8DA55804AE6B5EF1EF9104304C67629E4BA93B502A0EA03E946558A4674A02D2B8F9D5F0A7DCD39864405E6AE54696048970EAA3C0FE3A5AB57C8C46517CE5DC73CF7DF4D147C94C244E4A33A1AF233D53C80707A73F915F88702638E948BC3E05524593D3A9A876A0959941D7F647569D9566220F023582543DC739E13165A7D9465EE6D81BA5A867A90DD55FEC4222C1A801ED55C15CF5692B98552B71E682695713D5EAF6904185E0394DC9EAA59D742431572602A50366F41B8393779A3BD1F0C03532D63A0C5309B8B31ECE9CAA3DC85C930AA44572D651411F6912B1EA8084DC6F4611716625B1533420CCD5D30369AF9EA7A62AF5B258B18D3CCA8CAAEE7B22056E433E3A1B0F8F0E5EDB0000FFFF4944415420F75B0D73B59BD452A9D700E8A495D12D6E77055281C524BCDE3A38C8F4BC46BED18343B89855758B16EE6FA9FA2ACA0673AAE12B567AA80FA70DB4436359BE280D2692FA020435C8512E2C18B27037086F575DAB2F9FD9D51F074F02DB69F53BAB0A545323B68C5ADE5BD4A1DEABB8E0A58D0674CCE6697A7BD7BEBFBDE26B97DDFDE119FF505D57078BDA88322643776134541782A80227C10907DCBD912D8D8CD73A4BDD54D9ACF66613817C19422D87B8D158913B1B56ED593D92018D180ABD92514EFB4959D7C7A2176426946E47D5452448F067D4CCC826A6D34E07BEACA61FF5A0AEFB8C8E8EBEF8C52F7EE4914790C651249453E07058A41A5401D17460FC82C31163FC03D1214A029C9540422F52FEF1BFD1D1D6C4E458D511DD2B45C3884CE89512242409D6B898BC56BC20FA370CA778D40F172F115EF55A4302551EFA97D6DCB8521E73B818869D770A6D5AB49C41D1231ADA6845EF1A1216993BCC37FDFF597B0F38BBCEEA5E74ED72F6D9A7CF999933555D96BB31258043800B978417E2102081406E28C6180CD8B8C84D962DDB928BE426DC2BB621260408B9402EF5BD4730EFC20F880BCD5D92D56634FDF4BEDB5DDFFECF59DA1A95843CF6EF67F9CC39BB7CFBFBD6B7FAFA2F093CA8CBBB6E93E59612550AE23CC65CC2750C366C9A35B3DD71E7666B3B774DEEDE33552CD75C2F886AD0D46B3600CD08914F3E01D8A278161C05475B69C16980BACD84F2CE77BEF35BDFFA16761AAAB178D557AC58313B3B0BF94C87453883B0A70A85A1C8459E12D2C775D75D77C71D77207ECBBC1EF9A0FCD3DAB56B9F7FFE790936886F5DC203FC19481214AAAB7822FFC497944A257875F46336AAFCBD24019411941708DFE1B7863CE0CF3C3FE84929F5C94794047A0FFA1F2101C4EDF94FC4C7A0F2A377209EC59A0D2A27E8B052F0134E3881AFE219606317E19FC37794FCB966CD1AD698F0596A329AE121416FE1ADFCE868640B16180F69D9B265F3BB76551430E2801B5BB06A03B184D3C857571E18DC4B0D8AA9DCF351D2A7FA3A194DAF95D39935FDB5F93D6FACD02F4D1A4D8C06B5A9E902AD2AD37ED6C454EA48CCC858F1221384E72E272AFAA64D630BCBF6E517A8D9226F90AC20D3AC6CBA66FBE5F75CB02AAB1012B1D63C42588DD1B218780978BA784E50768470226A5F6403F27AAEF1866654068BB33CDEF762B24C191AD9A74FC7F98CB8DE6D9ACAEE26CF4F0DAD3AA9512A37323B73B3898AE38F0EE41766A6FD449A5A75EB2DFDCECF8AB158B6D97162C9AE954B341ACC523BA4B9E3CDBEC9B1B231651941A69B5C8805838E57CA75BD3A990532CACBDC87AFBDF723175C926B356A7AD2B79B699D86EB8373544925CC58CBDB37D0A51C8DBCA24FDBFEA035D6B2756B76421FCA35662BED74D8512074B22B3C695EC7C6B206B5C85A789D9FFDF38F5E75E3F736D15C37EB2DEB532958CF370B9499A3DAA8919D5D5535772BC8EAAA13C2ED0D5BDE4CDB4FB87CA351273355C81AD6646672A493EEB41C27ADB0D9790705917681B2A98FB85FE4339325851588BC16679D75D6534F3DF5ECB3CF46351E20484B5A39E25B48AC8882C72DB93F0B7294DD60EF60178086056C981FCD242195F98AB1A3C635849AE830A9684A073742B5B7CBCFEBEBCB6633A9783C66EA1AA0E2744DD98C2C0916C9455F7C61B46E58525540BD5237490BED458C17254198FA2981C73060A002638B6250B9AD553B1A7590E9ABDC25555BA099866A59CCFF8636444BEB553985AEADC5E77A7E534523AC30F32716378D84AE27352DD6AAC79B8DCEEE3DD3CF3DBF6BEF9EA9B073880ACB45A5EEA2B973100B6FF127D19D8F6116401240B7922FD1324CDCCDB0F55EFDEA57F3DA073D38BF68272FF1E58900D8BC79F3962D5B9832D80EE0458512CAA7315F43F92EB82D3465448945E04BEE133EE32D56AD5A259C0E07BCF67F28EF100F121E7908544CDAA5975E7AEDB5D76260FC2EFC0AE80CACF57A811D2E09A0CB4BEE29F5AAE731CF7822E401BFD1DFFFFDDFF3978F3EFAE8FEFDFB59C541AC02F2EF101768CFDEC29E39A2248836758271C3B30A071AC40CF3D0F7BFFFFDBFF8C52F90622B1D49A9278699BD9E7AEAA9CF3CF144D5B6533A35BAEEEAC4A9BB8D5FD3B994BA87628D1575DA670D649BAD2A5D48CB06D213FB1C2BE17733B472CF8ABD5FDBA502B55A70F259A7EF19986A8E16E952F7C4FA692F267E67B712ED319F3ED229BCB076EE75BBE8067E9FCC717E6327EB3DDD949E6C389B56F43B54BC661FB2E078B901FD443D030B4C01C60D9FB37CF9725612A5A865DBB66D1B366C40AE842227B7F5FA13CF78F2AF9FA5C17A625FAE1573692E47DF3C40A5583248B733A5559FC81FE82BB5EB94C8245B5AF3C4A74F7AF95F5FF0F598ED9BCC83DB6C47E49CB59F3DEDE5C1DFD13C65627DD9662CB1D7DAF92D55EE101B20778E826B2CBAB79B9C1F6D262B5AB3C996F8B0DF8E5919D3EB2BB5F6D729A5671AEB3E1B9FFA9A59DED30A627E86FA6A1BBA34D61A2BAD3C30B72F1B3BA9FAF073F90C0DED1BDD4DC538DB9F03E96EA37EDC55AF9D5F9828D7CCECF105AB569CFFC2FE5366623B02D3FBFCA8D7DC6F959DEEB896AD047E2953FF5F35DA479A9DC8D78CA25EDF78E9795F8C7F6521E68D55D315B7E18D0E57F497DFF0F8E8B3BF2DEAF18EDD39D5A567CB9BE2747B27E6E4D269FD8FFEE88F9E7CF249A6B1952B57F24E44B3A9A3716A0A9338809E226EE4E825A3A3A3CCA6CBE141A122C81B138560D823AF7BDDEBFEEAAFFE8A35C223DE5CDCD10297221502D087789BB0D46793974917A60C5308FF7410186E91D11B8ADF859A9A1B765EB65912B02C8A2B374EA8B2FBED107774D1CF8BE800A1BB6A2FB76449A2A148027C804DD053E17B31E75EF2A8A12D6A2EB03A94E43095CFC7A310C4D4F04D3D907E96EAFC40353553136AEABD2235259E5DEA30A35010D676CC8EA7E276366E654D23DEAC59A562ED85975EF9F56F9E679BA0D5F69049AB32B523C8191401C3E195E3C98D06938FC12EA535D8929A03F15708CA29B3095601240CBB44124011860B28EAE2871E8A8E317273E67AEBD7AFBFF1C61BD9CE409E1206C03B190D234143A890121A65D5986FCBEA0CBCDEF018FEBEFD848F2609D0F93D085B5E47736A79E40F3FFCB0A4EA335DF238D141E18892400C267CC9160CF36ED03AF362A4F0471B944B77876841DC1BDFF846DEAB6C4B7DEE739F13EC58ACD4D16C02C48DE15C92843A1C52CF2C72178DEF9738F4F85A5E8E99E9030D471B4E1033FC36F9C75D39F4FCD8FEC2F379E77EBF45954E2C6EE7FDEE79F9ECBC5BFE5A517537B6695D7670477981EAC1D8C6130FECDD9FF952A37E9939E00C68B7D7E7FA1B0AB8E6758323A7E9130FCFD227CCD17662EACE5ABC499D982ACB3AEEEA753B1B3B1438FB0D2A170EB3C1A609CFB060728018A22E4A50356ABF9169861956CA81BEF08E53FFE867FFD753DD3D947E8082E3A97E462638AD465F20FB256AEB34B469CD6CF3003DD61E988F954DC71B263A40FA70419FAD0E59F979A3D3354ADA47E285AC33FBA84F732A0367CDABD6EE7B66CA0A725D32C6D6FBFBC60F1C3F3D3A7F77B7DDAEDA89A068E78DCA9C9722AAA5683C5836694F5DD54F899D5E69EC9E919BCEBFE5AC6C8BAA9712EDA7B5FF92DCA53773FF63BC32324977D3D04C6A8E3A6F7CD389A7FFB7F73CF8E59BE87FC428A11D777D67673FF5FDEDB2C6E08473371B5266DF8D41ABE1D14DF1C0EEEB6A33F92BFB5AA56EFBCE26F9FD997E375159D348BCD2D850A57A9CEEEC582DBD1BF7AD0B285D4D680F060BE3EDE327D7BE7C67C7684E903FEE5D57D4DCB6A862147AF9513773341621604120126126F2A79434C9D208F64934B677342F2EDF418032B12FC0B8842FF19790319215CD527FEDDAB59A600741690F427B100E19E6AB7C592E9BCE645261064E9898EFB761132CE297E9BDE070B088382F1DA9849FF604C062741A36012441A8D62D4A081807265A45A95C55350FBA6AACCABF9A0E75350ABB98996C2493EA786C8690D3E11D161B1A1BE87C103E5A735544C18EB130B313193B9EB1622CF7E295A2373D3DFFFCF33B9F7BF6E5BDFBA79A2D179280DF236A16A00B157C2FD18C4614191DCE41964802904510F614E53F7977F1077860C0A6794501EB1F657651EF102846381ACC08FE57EA9F61D14B18A0502800418F1F0D9FA3F8D60572045943FC0AF7DE7BEF05175C20987AD2750011D73F8824004D0BC62D8F8165D57DF7DDB76FDF3E0430A4D58F6AF61BD6B2D1D123C648CCE5973DF1C4135957858E0F1217B83ABE76DDBA757C26DACD4364E2573E1FC16ABDD775072AD8E156F6C1A4BA30F42703402A1ECC6A8801097BA0A19058D9206CAC915A02D7213B93EA54326E723ADDA473880A29D21AD666E5EA74FDDCC0686EFAFDDE582379E0F1E995B59836D0DF58A83769BA71D3007517BEF8970F3EF3C38967EEFCCA4F6FDA95DB6156EE76E97C9B4C3D714BD3F1C9E5C93E9F06560DD62EEC763341F2535ABB594DACD3E3B37E719B723E3001BCE52D6FF9D18F7E043AE13DCF24270E4CA4F94AC35424B6C156D07A6880E374C2582EF3E496A7546F83F56D8B6DF65432736EDE6CBBF53B66BC38B9570D50AA41D7B5C76B54EEA34687F241A29431698E1979A2CDEA45B23270E9C842BC4877BBABF61DBF9FF67B2B1A54A25C4D75C62C6EAB52276EB53BDDBBE8F8EEC81E673A3634D65898CE0C69B54ED22EFA414A0BCE6F74530169697D53771D9DD6A2D97DB7EC8FA7529D4B9B5A3B30FAD3B18F25F441ABBDB1E8F5299008AD3B1238D3F65546470BB49B077D6B811C2F7121151AA7ECFB7A85CE9AB047CCF67A772477C25CFC25EFFC708DAFA164B0A699DD9DAD9A836BDD572E0CD88219F96A6EE6652348F9D9EB0DB7DD696EA9939FA06E8C6EAD66E7356672CDBBC96F2B47E29E3D7B783E51F202BCA9689660F4C0AC629302920BCC169133D8D0D24B15B6B2EC234900E17504111E713FCAF94BE43DFC01EF7AD7BB7EF8C31F62EF083E314B054D4E0DC3035AC8DDD14B5275914CA7538303F96C369DB4177B156BD4852458743B6A8BBDC9F8FF7807A45248028C580622097A36412C6213F4125299A7F724013AAB86EDEBD46787424546F3C3B6C62A6E8C6C229BD57E43F14D4BC9AA830D90156BD7152E453CC1A3B64D23E593E57BC6D46479EAC0ECCE5D7B77EF3D303B576EA075AAA99173B0A94B10B61106DB956A52A85422278E96450A0E2EB31A8D3D48560F7234F543119CE8B088316A5985830F0F0FB30C97F41BE8AA7C5B66ACD8DE7C1AFF1945D566262BAD8F25A75EDA55027EE4861B6E604D19D202B1AF3F8824003603B3187E0A6056E17D12E866C4D6B443BB951D314E00DAC05B48A2543471480F1BC8F0DDA03AE12D303F14AA69A2082333954FD67AA82C47B30990632308AF2215B66EDD7AE59557223D8305C935D75C73CF3DF7A045B3A04B512FBE1546D45CCD57900CF96EA2B4AEA57D3C1FDC5EA2F57C235209817ECCEF739487878F05EAAF50513F39FDD07E2BA8153F426F48F7FFFB2D45B247ED86D3BE627E2847FACD83F357145DC74F5E3BD2CC4C276A63F15BA6CACD207B5DA2DA678F9C5598FEC6CBD6E599FC2BB5F9BB15E141EF8B4A7A213FD16FC0FA912F47BDB8142F1C9FC02451D092ED2059BB663ED539A571734337F6581EB537929530BA37784923A97F32D54DFBDD7B1A239581399AF588B579BD917073A98C37DFAD93C972C23A3FA54F5ACE374BF946DFBCA65017546F4AE61985802E20DA4E746186BE59CBFF2A51325A9944B2E176136D636834E7B5F57DCD69BA918CEBC8BB52A3CF0785856433B01B571473E6E9951B2BA9F414D53BFE8DA956D0C8DF3AE86683DAC282D61C1DCECE972E703A1E595BB38598E13BDDB90D8D81D8D8CC8DA5911BADE681A6FE60BADE4DFAFA54EAFC5CCA4CBAF737CB2D7273A5FFFE86F7FFFBFFF38DFAB69436E9065FEAB01D67751343E7A6BBBADBFC4AAB5E31E3B97AE746B2CFA7E415547C90CCBA29D93EF2E118B985A82B4272E792485534DB42A8319A7BB2C40379C4FBAF5EBD1A396FBCAC088661C741F5416488FF647A806121D8390725013356E57D0E167BBAB2EDAEAB64E1F4F0D0605F5F36196796ABDC8EBEA7840924415823D06BD11E4A0214674963588A401418BDBA33D804CA36385412C02C8024087D4D4ABAA0BA2E50FD1E9CC5CEC67AA0C047D94009338892F1649885622A479075D0327055CC83794460C4F841A6EB2990896E27D8B3FB004B82FD13B3730BD54AB511B68453516CC3D7C5A3BD04E01BDC1C2E63307A7C3E864C86BCE5D9478487ED35D68511921157CCE146FA922C52EAE1CAF1ADD0600BA9F4808E92320EEA4118E15948848F26D2C87890580581CD4B09CE4587363AFE43D904CC31376DDAC44C1986CBE38F3FFEA10F7D4810A425A10D8339761629F57C62521B0CD9008B478BD4A2433008C88714FD32F5F3CB22D95F12637A285B479504328130D16097F07DE072C1E24AFA009E2E7B55246E2613F36A4E733065CF6BD6355695ACDC16C3BC6A8A8AC72F7CF5C5E14A21E1B7D2179DF0EC579ED69DC174C9AB7EBE44A5A4B5B5A95F6CB50752B12B4A29BB601A73B50D0399D2C0FC5D93C98BBA7EC669DFAC4AA15674E2FB367556EACB2736EFF70C1A08FA17E265BA9AC9A92F7143073B11C20FB3243D6CA91780417E2D8C48BC2FEB13FC5EA05225BC630B349D8ADFDA28EC1999787481924E6A811A5BB3B17AC3B9C3239772E753658CCC66D6AB9AC14871CDD675A5F98952AAC5F22FD98A35C84AAD6CFB1F4CB647B2C1CC24E5C9E898DEBDB47C76643233E15F442C07F56D2B8AD7B9B146C9B8D56827EAC916658673CD9942CDDE697729B7B17F66A83874C1E8EC0D5303A5FCC24325AAA5B2773592CF0D4E3F56D4F27E6A86EA9BD94E6A17AE527D3049E5BDAED0685F70BBCEFB5D7BD02A24127E393E7FD90CFF9CB953AF5DE4B39546BEEABD33D04AD60DEA7CA9993B60D41D2D63B8658306BB7AFDFAE10ECDDB35A73546A9994463458BAE23AA51AA99B02F59B5B0E205EDC2D3ECAD3B5B453F76870F62833908CDE3D8397842D86886818D297B19CAA89C0657B9786E04743ADA4FFB8837C78191C051810C25A87AD1A0E0A21A0AF98F2E5DFC33DAF0C201C23FE6F399B19191FE813EE6BCAA3764E8CD51AF4D4CEE1D1E8DE33BE02FD83CD09EA24DD0E4832A3D50D71AC82225CD5D0C0C18075D43E1E18585012C065858193EEAAC9508080D70CD57E81131439590A9A695B164DC0AD56733A1DC39CA53E47ABC01BAA85C539E62259602C763B2F03A6D6F6ABA343931B567F7E442A9EE74017DBDC84D60E6A3BC560F8186FC43DBD8CA7B45FD1EC2BBE9480AA6D6937F1B366CB8F9E69B01D60FA515E26489462CE7F316450E28ECF7CB2FBFFC81071E882AECC71F7FFCCB2FBF4C3D6FB5DC0D0CFD7013847A9E416888781D7C063405CE07B30673078C04C00B81E78C30943C25E8154EC31B83E145C1A5216650C0258E35A9355952032C132BF6103AAF02F359EA96912B25D136F4D590CAE7E05024A5205269CC577DE2139FB8EFBEFB248A23687D520F2845D17468FA83AC8EA4170B9E20DE5758BFCCFC625AB71637876DB7515B51B3E636B55B691ABC22E55E3FEAD6E29DDB9F1B207DDA64AA3655F5AA9658E1E727AE9E50F5B45BC6E86A961AA5F4D5541F232A927E7976A8BD6C7AFBDEF47AD72A68C5ABD5D3C73B66F106B3ABB7531BFB562C1BDA31F10A51B67347994A8171832E89EDC84D04ED19B98C530A9627FB5ACD7D9E4E5593F77E405E7390F4F95C92AA6D55BB9CB5A9D9ED73F5B2D952686EE514DDD0585B5CB9EB9EFD94F0D7C4E2AF5C64C6AB8DCE761AD2ADD94D26594D6B23F57BFDB574C3A544A751B603EADAE477328520369F2C0697F23459F479C39E1B88FB1315D589662841B3CDBBD2C9B9FEE4F50BF377B4B4497FEDADD99D892A3348AA1B0AD839D718AC9C347FD36ED2DB742DD17964F7A5DA3736FA3BA3C5ABA74C67CCDD7E603046CDA6D9BC2547AD85C2B54A12743364D59424E85CAF343CBA857541B2BB59E5FA77C9D842DEE544B93EDADC26DF3C2E3FBCF3BC5D14A3A1AB32B3FC73D0229B0A75AADE4AB1F9D1FACDF3038958BB95686F5B509D696E4A9D44C9176E99B3A747DAF74DD3161A5C48356F377CD63A59F9A18E672B6F8ADFA424A57DDB0558217CE6CC5AA1C081F0A2BA97E41A6199B055D1F61C5FF216433101B60C2C605CC277C316A65EA4817ACD2971BED030487DCD9A355353539FFCE4271F7AE821B9E7229147C7812C69388B1517D5D5861F1A1C1C1A1ECCA553CC79D54E40B23CB18E196ED15E374AA93B15614011B46AC58F7A1E7F1D8E79CD9594A1450DB78786892EC89A121846A07A7387918640DD9CFF0749C0E365B61FF62C56EC80ED15CB8A29F4694DF53E0E4D7B9574C4B7613ED0757D9601ADA6DB68B5272766A7A7E62727A6AB7547C5BB8D83189C9871E93BBF44448BAB4E2ACBC49514FD468CA1259C7D7474747272F2D5AF7E35CFF6CE9D3BB106E82B7DC4F3519C053E8E9546F11494B575EBD6BDF8E28B122945B017FA081461C866A49022E905CEDFA057C48B751768073053E496C15DF0E8A38F9E7DF6D9428B7C1F50B3804E0B8234C8FAFEFBEF3FFFFCF30132CAF707AC1EDBA770C2F09DD1FAE2689260495416F13124BD083E07A81CA6CC1123ED51F79ADC07294660DCA79C72CA73CF3D274652F47130022459483652F46E98525E359E1F24560085427C2F9076FCB2A55209B4B12A08F626C9EFA6736EA06DD6CB89E69F57DEF383F6FF540EC947022AEAB1CC68A2DB705B6555BFCB2CF2120AFA569A97EF75B7B2EE648F5FD26DF62586CBEB5EBCFEE9418D3AD7256A57B65449F0A67EB7501C6B9F72E0FCE72845C377AF9E99DD6D04CCC7ECF696762CD0DBD7FA522C161569C9545FBB51F2B2E1DFAD98D5355583E39C2A3AD6EAFA809FB0C83BA0BCEFD4AFDBBE9BF7FC99843E3E7BC5FE74706A7D5B83B4DDCCE5CD6DD9B643EEB66AAA418DCB75CAFAB16B49F7B29D7C834A7A2A13F76BF596DA43C9112F359D988B6DC966666B955B83040D0FAFF4761D98CF69E329636AEAD37EC046F8E344975AF67C10DF6A55E226F99557B9F664400B46DBF04CEF0A379E333A37782B3714F676E6866FA47A821AB751DFECABCBB7FD3AA922E889C9DB5BE419FAE5BA6F396492DE1C4B9B075878541DCDDA9261B196A278EB8686D1185AB8B9D67F2D39734EFE1E3F3970DC9FBEEEF58FBFED9F2BF56EF6A6B467E7C76C6B47C0A64387EE70A8364E9B27FB7CBDE9F775AF2952DAA29B595296E946D25FE9F7FFA1A86DD0128DA0B99D62A63D98E8AFD6CB0D95B9CE0B6B26F54CB55B02B9A25FEC12555D3CFE2057105BD497ABDA2F861E24F11960FB3375457B3AE921DEFBD7BFFE757000893D44571C3E1B2178FE77EDDAB5BB77EF068EB228349A34D892205B4FB752FCD430B56C3A3D363E32363CA492D03525E014E3EB9517B0241056883D190D1A4BA840316B03F13A0310417E003E8BDDDBCBC6E9C1534312F02E0E250185BE25F50826DB58CC3015BEA9CA208AAB0C9510A24E6191AA73146C4A78FBB89589C54D309176D76B36BAA572BD566BEEDB3B3137579C9FAB761C952FC4A60306CF9C1AE81CBC6C92002A0064516B0073AA47DAA11CD1B9713867A73078CB27338393EE31D14BA2E7837F81EF8BCECE57499D8854124AD59818A7587829C5802041BA0285F9CB781C9AED48311D337A44B001AD01BB840709900C297043AEAA6223AD16BF0EB33C245C8AA623EF1265C74C667C7F9E5B047B0F970414713441BF8631046B402C658825798B256C5A9E7BB824401A352C09F047FC49873AE8A2B2E188F7A79E658D97C554F39078FE016B8A1DCE3373E0C001556866266A6E39DEE94B0F77CC8FB666EAC6EAFE57ED4EBE9820BD754F6374EA842C0D4CD02E9766FA12D64CD7A72D2E3556C4EFDE677E901AC7AF886DDDE794C90A0ADD3BE70AF3C9B9CF37E91C5DCBA432B7353DF258031FBAF9B85265C2D9E25A19DE7581D7216313F1BFCCB0C4F98017E4518D8F8FEFDEBBDF4AB971D7D2BACBAB5E9B8C03961198DD54772870E79B0AFCB99FDC698A27A8D636ECC01CA0551AD527364F328F8BDD1EB7DC4ECB4AC63F9E327DBBF6E559BBDCF13666FCA4E35DDBA64E8AD28D2CE5B5B8D15C9877143A92997513D54C8D3EADA5BC60F4EBF93D131E7FC154E8B4137EA6459F207D34DBB76F501B76F4F2FEB93B28ED15EAC9390505D1EF8E6587E69C367DCC74465BDAF3819DCAB6065D6B43D2D283FA35930AD3F3DB797DAA6B525CDFC492BE99BEC7AE6B21485FB34FB7CA2C533D9F0A5F3E69AEF802D9B1BE0BB460F750E5FB3E6D98A38A93DB46159DF2A356E9535D65F7B0CDC16FDFA6651477C999D8EAC7DD42E7FAB964979A964EF76668BEA25D9908622D6B939D8E2F6FED9D769627DD4A9DBEDC50E8A56DDD24C353584EBEF264B84CCFCAF3F699CF7CE6DE7BEF4571226F015E08DEB3705722DF4C9A83495E22DA49C997518000C962D022982B279C70C2DEBD7BA1C24665C9E1EEDF25E8F7F0171DDCB0FC0056EE78D0FBF6ED8BDA11E1E654F7B162DAF0F0D0EA95AA5D81DA549AA2ADAEEBB04D004920EE20D84138A25065F00F88246021A018962F887587B4B10CF021B411D4C9101E07F1D1345BF55D60511016169866DC58042B5556C3629583622876228B0A6105F5D5F1CB95FAFC5CB954AAEEDFBFBF5454B9B97E9839CA3601C6BF6CD932C0B7F22617A349EA06846145ABDE0E57188FC1D931EF92D72F251E4BEA18A2E7DF78E38D9B376F964A10293BE45F590CB0BA2D1D7445A5A530C8216868F89E956B3E93B930C2D41870B44882425B9269006152B892412BCCD180CA09060A87128F070DC850EDC5E7A3090CFF247873B01EF892934F3E99D570A651E435A3A8F888DE21411E04481CAF056F1E8822FE57D243652196A4A8D1A136E812EF106C6A1EAAEA2316625F4BD8461614D178F46B5BD27A480E012A87570AC56E3CC3C0C0401ABEDE8374545697795CD2DFE95AF9C6C5311A98A5BB48B1307EDA06EAAF2D2B3E38A140EA3F1B42D5FF0369AFE8B15B92DDD94EE23E27538BCFDEA8998E6F7FBE5BBF8B56EE5AD3DC3233976ED0CA78EE0D235498ADFC438BCEB34E7A7EF48527F616A63334A0CFBB15A55F5D1E23C3A2AB1A128B42F91EBF38AFC533673EDD2DF9DEC3DDF1727A7EBCDEB988B49215DCDCB5BDE1F6C08C7676D2480FB837EFB79A85AE598DA53A8E4E469906EFB3E67FDB4DDD4FD534A53E3CDC583543B7109575D541F8928C8255BBB555888D5A863F37B7D0D5299734469617CEBEF8F2AB3F7D8563B5565F7BDCEE5889B62EE8D5ACAF55733E554CADEFDC53CB27EFA0F3DBCA47C0DC6F335175B576F5013600CADEB255D49CA3A27F2159B659B9CF4DD763AD9CE35DA31C65E6CD54B88D9A0D0A36A6ABF9BAF109D206C97D848676A48ABAF2D29011A7FE8EF9B9014AEA83EBE7A6C768E8836B66F55762DF23E70593D6BB0383E46C5C5B35F8D141EA72B351DC677F3FD72E5614F65E699845637763975C9BEE9BD6543441CF9D6399C9D50BFF738E3E3EAFD6EE6ECA5492B564932EA313F69DF0D2775E4AB433A96EB2EDB4EBAE022B35E30923F0D1AE83F72C5601CA1F227F02C0CEEA39A00198A2F804DE6BA266B1C2819CD12516B31463CA8E408C50808DF10D5F025D33DA890F5B00AE0B38600F26CBB11878EB5BDFCA7F3FF1C413303D10C743585969E814E47299552B98552ECB645286AE0262ED2EBF5E1BDE21A95D845F088EDD285E69541228A7BF1F1C0C8A6A08B2634BFBC27315CE62684B04C27C15B044C082286EB3AE6FAAA085AE85718BC5CAA9501D76E4CE763C1BB3E328D3ED74DD72A93135335F2C5667A70E341A61C9854209B78245B00C1FD6197FC08B53CF1D246E5F245748EF49796BE13E62221C8DB3A3CC07169824141D9E2A800F0F3DF4D0D9679FCD2780316DDBB6EDB2CB2E43FE9624CEF34262B4604CE242111716F83EDCF4D4CBB54742AAE06C036D0D3A05E2E102A30D162CCA08326B59A9BFF2CA2BB76EDDCA5731EB671D07AD80A3E2506AD90514081873D1E00A1D294E103DD6AC5923DA09F82FB610724FA39D5365DEA8577776C438012AAD1037A61E123B042D9615E4CAB304DF0E2E9715C1372221C43108550BEFB872E5CA0F7FF8C3DBB76F478A8152C1F4FE8174D173FACA9FB334ABBEF62EEBAD6FF9B39F7CF77FEF7A68BA6F221B6CA9AEA4E5BF2DEC1FF8DCF19D855D2DDE43A3D6F8C695B5FE1D55E61ECDACF5D9B693EFAADE26F7D21F75FEF8A9ECCFED6AA23DD0D2CFB3D6EC3E75E7EA67682B8DAEC9745FA20F9DF577F73EFE106568FC9CE34AED46FBBE19294E14C43D9ED2BD1FDDE35535F7D1CEF87C7A6EACDEBD80F45ADCBFCDB33B03DDB119EBEC7C3BB068FB8CD52A7463353BC393C59C3870AF31A9D0C84D176A5A3BDE186D7DE165AB46F174FFF8AA74FDCC44DB6B2E3CB8DF68C4937E27D062F6CAE5737B5E29E4ADB946574165C4DD551F5FB5475BA0AFD4CC5AC2355A395FAF187EE293A7B4D22FAED93658A622ABF9D317B95438217EE51ECDE8B483FE4C2C5FF377DB7758D6EEA133EBEFFED157BFBD502E791B1BC36661768B137CAE4C6F26FB67C7B9835DB7BB8F6E57CC63B493AAB22C0FEA258B99B766BE77C0301D2D36D4CCB839B755F9D2F4BA699A8B0D54B66502679ABA6DADDF369EB5285B757F48FDCF8D3B6E2B46D9627E8FCA53F910D10A32D836EA1F6E561D1A2BD27A2AF8B1DCE644B76A4F6E6FA68254D598316E4EAE7D7ED9CBDF7899DA66A26BDB09BB1534DB9D26297D57D1181CAD68700BB506A0BC2021FEFEB4D34E7BF6D967F91B3E13688C9FFAD4A7F827DEFE08DC3221C1078B28A6A05B623731F949332869BE0BE2974C6EC42A60460B18306A3F11F35B643E146646F31067676797D4CD86C244ED24CB3247860A2B562C63553461AB7174147ABF0A2176BDAE788744124443058B4102E5BF89859B4D0BBC431BA9F78441EFB13EBC4F8B0CA257AF109019C6D099C5ABCA8698D16B5A498BCD52428D95202DD5A3752B2C6EE20BF56ED72957DBB3330BC562B9522C75BBBE42CC53F690C211840D313838C44FE4254166BA4C74341F349AAB23DC768953E26836013076F03DAF3AFAAB1CDB8680FF075C15B811F08C5F7FFDF59B366D42674A490317F84FE1E3E0C84C6DA81F79FBDBDFFEDAD7BEF691471EE15FA389ADC86BE29B7FFBDBDF3EF3CC33A17100E3881922D3229FC68C1E1A0A38FBF8F838EAD144A421B48BD787552131555693F9644426401E479404523F41BDEE922C6CAEB8E20A385E00F48680DB119B05C9BC2D31D496C409647264F96088A0FC0D5204854210FC514182435559C6E380A70DD1BA5ACCFDB14CD8B1E2F743B67E4B6B518E7253F146B2434D66D403ADE30BED9D3B33BEDBB453463B96A04E4557814A669A89C4F2567D8282F8B2A03E4D036EDF829DA054ECB50BB3CFA8FD11C48895DDA65DF51BEE904F0D4AF751BD6890E3196E62209DAED64B0EB99EAD9A7F69654DCA4DA3B14485B798719341CA6F8D959D26E9937136213AA966A6A97AAED8E1FCF3D726B55DDDA698637496797D0D725C6AF05DA772BC6FE8C47AFF4B6E2D3029E93ACD94CA064955A99909C9B1DE64538E2A359BFC91D38EDBF3DCDE5C7FE28C0F9FF1C457FFEF8C9769CDB51A298588AA359C4E2E6C52366BD2E0E0AA85E484F78A6BD06A6B74776C4AB1258B72737D9578D9E8C48746935395D2699DD17D54744EEA18CF66339469B3C56098654BB57E1B75CDA9AC9B6EF7D7A9DBDF555392F4A8B5825882EA35C5933FBDE9A30FDCFA0F566338994E97BBBB5ED54DFCD66AC575B2DA094795F3F1D30A9ED56E0409CD0906C96FC52BAD981BAB93911A6836EACBA8B37F1D6576646ABAAB273CDFE9B242BBBC4D7E61743235C546DE506EB43833AFFADE245879F70357CF6413306A99BFF3BF9FFDEC676FBBED36701558EDD8D4480D87058FFD08080A49E5FAEBBFFEEB1FFFF8C72803E2ED2328875044A23E1FA90712030298EA824D2DD503516A3F84F940F76182466483CF08B7CD2214A86AC8C3F49D8A8F8F8FF2AE1EE8CF841A3AAB695D9104A13EEE1DD13B247CD3A04566BD4412847EA040840136B3AF4614024D1F2A09541FCD304EA0BAD6841163CB8C61B7C34BCE6208E69817A209A90454D5B84261CF2DCC978BA54AABD60EA535BF42C80BC80B4B91CD934F7A15BFCED4D414F826E201C2FA71F0E3A4817B548D3D2419EBE89C1D8B114D3B59825AB1E47C187DB02424DE8B2587FD08C41B542FF3E480359F74D249285D16DA92AC4A383170B2A0BF89120DEA144B08969604B40175C74AC3C4C404CC88071F7CF0A31FFD685475805F886FFB99CF7C867F65E1C4F7E4CF5BB66C8936553E5AC4186616183D7FC362808501FA150B8C1DD29FA2DE2461D6D170F1E192209A80B48851180157970C0DDE87AC64EDDDBB17A0B351B3EF70AB8507C32F2B85BB700D510818C00F8241F3C642E29745D6765A093DD9F4CC4C2E5B6B94B3E9FA2983AFFBF9DEA7694495110C05DAAC1BD07066A063C4E6DCE9612A2CD4CB41DE49375755DCE34F78EF8E3D2FD5B5C9DC384DED2A698655F7421A2BE8B4C0268CE1975BA4399AAFDB46CC521D6514804A27B228123054CEE5545FA759F6D2E16F1D153136B456AB5FF5DF654155A094498EB532B37772C176C9D647CB2987FC1C75260CBFA3366F56F5571B745EDF747634CDD6B8956877DBFDA97CB3D49ED42BE4F8CAF363C5A84B851895129ADB8C1712297EA7C116CD9BFAB06B25578FEE9ED83DAE6516B4A6DEF1DA266FFB34F92A8EB86224B773FF4E3212635EEB00654F3C75F58BCDDFD07ED3706C8DEA06C53BC9CE7F7BE75FFCE4D95FE49D8C5BDE5BF350459A27A746CA2F1667ED2EDF6D95629476AC76CC8C3BCDC680965B48754DB7C5824A1B6D349F2D0CE45293F624CDC4546E51CACE36DB4150ABB39475286B67679216C51AA4B5B485786076B43E4A35629D56CC31F3317FD2253313D8CCFE6A09DB6CCCDB0E7934DC3FF6E76F79E713FFDFBFED9BDD17A848A5B6BCB06ADFEC6EB6C0E0F9E9EBEB63D2950A2495F1183A3FA385C4D21851A80B7C9C25C18F7EF423563504AE2E6AA3C3B729ED46A225EE62DDC2BCE69180F8A3C525517EA5A121098FF58C33CEF8FEF7BF2FB63CEF20705E5D856A5531D7D050617474B830A840334C5E6CF2A39200DC5F22C6D186E98B416342CB012D0C45ABA6449AD6F3BCF75ADB532F7C1746A47D651F2C4A02D54D4E69F2E487B8437A585FA624412A915CB439147C8D32F37976C21A2387EFAECA23DC80C542ABE9144BF54AB9D6AEA1CC4AE5A77ABE1728694776C28A9909405A22F42A65A251D1CA93C89B9C27873779D4B92CA1DA2388D91E6787638E5708656202591AE52C4B2481487BAD970C8E50019E82AE907C5B04302115F8CB37BFF9CD3FFCE10F212AB41E0E9DDE6B5C23AC100B043F18540C8123C5CB4AC1D19D77DE79F1C517F3DDA0ED4A0D334512A225BD073E74E946201388E6C0C82B3D9A77086313E545DCA051E7D297BFFCE5EF7EF7BB3FFBD9CF60C780C781F6B40880C4E1DE21019F88566062E1C4D440701578D49899C36500F630426BEF7BDFFBF8E44B2EB944EAB00044810143E26EB97EEBC6EBFF2163FDAE5326276ED81DEFF4357FFC8BE99F53B3A0E9A5C0723364E6DAF6AC99ED1AB39BFEEA3D0FFCAF7F99B3C3B6C00B669B92F95475D590FDAB729B3AB981A6BB60372C2DEBB6824CBA96ABA70EC45CD3E95814BFF2E62B6EBAFE965AA3AD42BE66BEE93474DF158026EA614F2907603ED72DFAFDAAD3D882F23FC5D33C79E435975172221D50DB1F1E1C5AF38EB7FCFC5FBF97AAD51BA63BE8D2BC4DC99C65CEF0E9F92699A9E1B9D80C6BF3FDFBED723C96E834BB26A54DCF6D5BAD91C0683A9D6A5F96CAAD55697B4F9315F27486EC36955D4A04CBCCD169B7EAD61A69ABBFAE15797DEC34651672B37D1D2AF7AF5AF657FFFD8C07BEF40D7BE08FDBB34FF653AA491537468193C859A9AEBFD0E2658CE75FAFA79E6A94BD0413B35368B1DC2A4C697B528192085A32D770BA434E67D6F6A99D22968C5AF5DCBB2EFDD7F3BE5CA2A94C2AEF37CAB5B8D3B2F8B9CBAD525D8F55DBED416535301B88F5679C498FE26DABA3E2989A4986BBA2A5972851CB34D848EA7A693353775B2B29D8CFB2D0EE260C6A3512B9B4A775BB9DB5CB57BDBCFF85783FEF02AF55F2D9904B0D263EF6B18F7DFDEB5F4731301AE1310B061300CBE62D06EB59FC45E22E167B0EEC8222D0F44C69D20596FFE5A77CF18B5F849B17D9A580FCA23025843FB0D1FF918F7CE4C61B6F946A01EAC5D5A2B98E8B9C28E426253E5523A3DEA887DDEC1CF18C436BE6C7302B4CA6AD6C2ECDE3B378285EB7DB6E05E4090A9894DDCBFE719D83AE5BEAE11084AADC21A2428FC088069143766014CA1F27C35D6359763C1E434F06D5C12E1CB08A9F049EABEC03D60A583674DA2D16A78A2934EA9D688213456A02E848874C96F06E5403F82156FE073FF8C1871F7E18A2FB6B5FFB9AD427C31D8F8C78247B61BDC5C524778BC2E3403345A06549877AEAF51A13734F381A02E37C7356DB592480E1F27D42C3E8F7EE7D864C628C41120FF8D1AC9E5F7AE9A514A63FB18478C73BDEF1BBDFFD8EAD04BC02850E74E4334043416C96050674104950A6103B0880A96C2EDC7FFFFD14715FF44A4C0CB4B68F16BF601E98F098F9B25D02870C928260E2C0498AABF013329AA807A7C18F7BFCF1C7317BD13914945649FEA148AC05EB88F28868CE867E6843639C26095D48B1553FC55266BD38908DCFD43A5A4C37BABEAB8758D52D2D4D85364DC5FAA8558E27529A156F0745AAF21CA4B23E6B9D4E5BD7FCAC67F81E6F46BBA67AB3776AA97EF28A31957B339CA5996A5AE9F26343F1E27407DD9A023DF9C94F7EB2B430FFAFDFFA474757FE24D58CDE48078EBFE9868D57DF70753C8883F8A35D169849F1BFC23ED0BA1562DEF652F1845B6D355D668E85245528D5D18788E62857B7F7B3C2B62E3E385BAD555456AC7FF248EAB9D9F95436D9E0F909D51ADFF113F1648BD5EED0C12032520B41B061EF222A838DC0748B85E07986579DCF17AD42348F834D767BEA3654E66853528A246B4A873EFE15A9D247DB17927707E500B782B98C617FEA539FE22DCF1A21AB0BAA8229EC29CF54C723E491F078801B11D5EEA307DF1C2A0E583C9FCFAADBCF7FFE7394DF239F2DEA27B8EAAAAB986859EF1164147C80BEC513C55ADACD37DFCCF4C99B4226966FCE037EF7BBDFFDAD6F7D0B247AB44A3444171413E679E169E59131D30C2583B138627244A188C50CB07B1E8469A9D91F2CF427F9162A461B322983248BD4EFF58A5AD4912926DC3FEA4C3F5C12881E47472AEA8962DB454F0E733D2CB486C7F79EAFB898AE38A9DF6A75D80E28162BD54AB3DDEEB88EAF6203A1A57C7865EFD1568EDF1A4806D42B7685E1221C4D405DA6A7A7A3A95A0F3EF8E0F9E79F8FAA60D61CB76FDF7EEAA9A7BEFCF2CBB0DDA05C030E10942D2101B036FE063A26EB0EE8BA2E7325016149BA97EC7E5415421DE00BA150FCE70F692D2949381280E20133C14D4E4E02F91961095C05FE0B33223A037C3E5FC5CC517270E1F1E70F175C70014B97647880C9321B856B2E8A2247BDD0BD284100CF4141AFD6435196BC29EA75B611D21259FBAA57BDEA37BFF94D54E0214100E216A178ACACE08A63C062DC483A87886789A25F7FFDF537DC70038C2D6613BB77EF5EE45F5ABC3FAB552BED65C79DA0EACC83164F6BCBB14DBD1578594FAFC6B3D429F72957A555A1567AE578B334E9EBB14C590FC874124EA7E5D2F81B8E2FFF62678B066C6DAEA927F89D6CBFD64AF55150CEB5862B5E95AC8E4AE3B153546BF4F38EF6BCF97253755B0CC8B04C4B8BB75B9DD7BFE1B5FFFED4BF2BE33A74FDA1109D1546265ABC91640062539C7EFAE9BFFAD5AF28A3788161E5FACCA185D909323AC680E675BC810ABDE3036FFFFABFFE98E54FDC48A403B3AA353E78E5D9DFD8F6E5AEDB61633BD797E5A79416CA4CDB2A5E12822B00AD0FB532C22BF55E1F85F7BEF7BDCCB95098C2C3E02FF95F10306AA1A11E615DA004083B030FED6999076BA6B00A4C874CB41FFEF087B76CD94287BA700FA77FD01BAC70D460C2A90B956EF5EAD5BB76ED829040AEC1F8F8F85FFEE55FFEE33FFE235FCB940005E81892068E59A908938E31D1D78166C32381C8A1D038E04D21B5F110E4FCC4E38F3F1E68B81469CD84B738E9A4935E7AE9255C723449206C56E3D7E0197FF1C517E371655F187A6C314BC96B8BE1C003EBA8FDC61B466792CDE532BC6973D9740843A47C388BCEFD9EE335E89517841B52837B0BFE5FE1FE2A01F550E0CFA8457FB84DB084716BBDCA5E960489F088F58EC5458AA9A2AAE242797676616E76A15A6DA8F50D8E320B47CA5D114980A44C8C01DC9FFF656687A2412811D85AC8B9648EBF61C306291184F017B50B6F0AEB0F7E15147F826B838347B38C252F984987BF018B14D8350ABDD2AC149C73CE394C1C7E0FE75910C97F5F9B20EA61D723FDD1046561C99E1109443D158C298A7F42E349FE9345E0EDB7DFCEA365FB94A7457A5E82EFC3D189CD26C1799E31BE03B3067E657E048ABDA589665443D47A70D6D1A651CB962DE33B63DF620205FF957A625B860D1926941044AAA6E17D82EE2930AED8B13C064805967CBC703CFF175D7411D01F1115E70103E6818766DB6E9BC54D90CCE5F28DCAA44E7AC22878C64CDD8991E1D88978BB96562D8D13DDF48A93EB3B9FC9FBBA1BA84827E9BEE9939FD07C3DE8F7E24556AB8276C619EA92DB318AA9F4985B99EBF415A8D9E8EFEB6FCC1E88ABFEB84685A58245763D964AA48BAD9299B41CD5D18062BA459EAFC70D0142E02578DBDBDEF6E4934FEED9B3476276C84BE199FF8BBFF88B6F7FFBDB7ECDEDCB0CCCD7262C5242818FB26935BD011A997A6B7AD52B3B2627F8B6A3392ACDE6E2764ACF4E2D4CF7E5FADA2AAD4D2D564C29CD66B3D5E4AD373434F4AE77BDEBAB5FFDAAF812B530B39EC99EA78BE793570DD11AD4E10BB1494B258AA0FF6B11546069C82341A62826209826AF385452583C47DB1742004266C27325B51A67627F45AB2CC18590A27334FC2EB1F591170E6051D849A2F1043D70213960E30AB03CE85C500FC4BC330FEDB8251185FF9424402E20AF8161C045A5F79EAD47142EC30F2BD454FC58E3A989F1D40F0EE45924C4C38081C48AC1DDA8E7520875310F0A353C95E2D5E5FD1265C47AA4E7A5E8EC51E00A39010E169C03D38F9704C1C9D053145F24054F6913070E4CCF4CCF55ABAC86F8BA7223F33A75974C81C89A23CE91E4AD47EB8FB078200566C4E8F4C2A4CCF40A468378A672A62593D2361AFC0E2A037CF79B376FBEEDB6DB98887143B600000A8FA62B7C7FBE037470212C3068F10BF17DA255CA5087F90E5A88B8191C1340FBD89240AC3179651E0F5CE13C24BC08202860C488E704C939D8DB3C6C5E1A3E19E347718D9829E2FA44DD0DDF0D521089B628EF40E6B51EB6F7C1B4441D6B92382BD9143CAA356BD6B02A245C3B0ABFC197A04D1046C8E6058C2D545A40AF94BC61EC40E9754C618898B7BDF4A8A1D014E3F3512E84D239F82DB12378E1D25AEC639FFBE83D0F7CA153567DB85BCEDC603E5F2FF2966EB463CA7D637B5A9BB97DE0B07235FE2767FCFC89E74941A8EA05DD6DB6CAB1FEBED2BC9BA5FEA2B9CF5C47EE8B6405B14C225777FD8E561CED1E3F957839C3C68242214A1DC891D76D582D6B15C576502B6925F9C55C4D25BAE40672D5D9CA486E6CBE3917EDBDCC621B762D4015A39631C05659ABEAD757CDE96DADDF88D5BC6E779A52BA5D2DB45333566398A73EB12ADDD8339DA4462A99657EDB26753796768B7D96BC2E4B0AC332B2891CD3B68482E07E11671AAB563C9F4C244C06804EC1F2F1B47FE10B5FF8D8C73E864C0104C3825E3B20500594093F82B849872673078716D0F09245159A2507AC169E8DCF7EF6B30F3CF08074FDC316901A20B4848468C1E605FA0B94D1CF7CE633AC0E1E8DE762B380B450318A9A1E307AA90CE713E00882F523505AA267A3331A760ACC11AD578C866453987AD190EDE1874CD74134F66653C925CF0D3C1FAC3C80AD815988590AB68194D74C25CBA6D389E1C2E0F048A12F9B512D0542CF3B80AB4061404A828C42D50376084AE0906E4A915A2D513F253B4A5CF912F1839A860F6001522E914A65D4E38C1061224C0A2A576AACEB4D4FCF96CB151EB3A994052BE48FED288F8B78A88E3C53D2A55D9C866CCDB1ED0F3EC5C635D82258031404F49167E24693484C02335026653E0D1A28B6223276204159B8C2B46432C5B6BCF8E28B999E009CC9FF32038D9AD56216F0255227F24FFFF44FEF7BDFFB24EABBA472ED3F736887D6E8CAD200DC1C8A89003E8336F02E22AED8BABFE28A2BB04FCE3EFBEC2F7EF18B181BEFAB4F7FFAD330723145921ECAE3FFF8C73FFED8638FE126BC57D7AF5FFFC8238FA01501F247A13409DF073BA09E47580251FC2FDB04C8B016FC45C9AD86F30DC3E6097FCD6B5EF3A31FFD88576A6A6A0A7C1CEF026582427713BE91DC50EAA5EBF1C8996BA02A5BE0BE21E7D83404DE06CF7FC2A366D2F359E3F7FA13D954B1B39FD96426990C8ADD7ACAB0AB669C1A158BF23EF5BBD4B73AB16377AB3E9CF58B9D11CF2EFB9576960C9F8EABD36ED2BB397F6565E581F8946374294C15A596457E977518AD130F9C0E30BA121AEBE8C957BC265555DB74E62B9EDE4D0FA4EAB38D34A51B5A031C0DEE4711C9528F12CD3753F2D2F28F0BD64E7476B52D3A75ECE467E79EA7389945B263C383B1D57BDABF881B34EE105B3573069DD4FFC72FECFD398FC736129669B9BEDB725A9A1964FA32DD8603340EBEFF19679CF1DDEF7E1779C39270F5E10F7FF83BDFF90E6F01F1D4215D4D8F405A458B7BA2753F92E9071E1AA579AC3EE8E475AF7BDDD34F3F2DF473344DE8BCF3CEFBE637BF09C90409C4120B355F880108E00A9CECE0545AA44E78D5AA55A13978E4FD05868EF12324C6FFBEF39DEFDCB163071B67926488F3A3502BD8E950FFC578C26694BEE8708442D6429996D4C1238EE760DD8C40CA2C2C280F064B8256BB95B013AD760D93189AED64C67455CC1EA06D0099160DE4FB474787D9324824E261984F83F90C5B1E8001EA955C1FAC5F64DD6243F3C09379914316236A1044537420602463241477CAF661AEA8870845FC46AAAEAFED2C944A3C41B56A43016CF5403D559981662E59F860B176C13BE24C895A0D3F03AFFD9FFEE99FFEE0073F10BF81D6EB9F05C601010E29082340C043B0C09217CC775BB972251ACB80D108E7E2D7E413E07F60110289224DC6F989921EC04F81124DBD444FE9370285EBF7B509240821732E293AB091796F408B9483BF04D28EA442E37B0010014A0F99AFE8F3071926C164D9B128BB03D387F70CBB450027C4F12806324564B9D8C2D22759901771C0E12066013F8E772CCFBFA442898D225D9F10F0E0717EE0031F6005F9C9279F04F646341B18A749DF8F6821055FF5F8DD0F95336EB66FA0BBBFAE25F5567F7DDDFB4FD9F195E74666E3D36627EE273AD9165D3040CB72F4EB260DC4C99948254F69DCFFDBC129BD93D36B67AFA2E3780C75DAD83AB572D2B3B497B42AAD24FB03E9B5B3851DCB26CD1BBB1A9919A36FDE9B7797D1CA0FADDEEBCFD2503EF55CA9F1EF0DDA41292DDBA6866778E4502CB03CDD45C5197CEB62B1414652CFF7CD94C9D2945FA1DAAA356B0DFD0AC33FD9A3E75753373E1EAF4FDE3231EED2A491A40D295A3947D5B52A8FB3386B3E4A6E4DF9606DC376DAA1AF23667A9AA3C7F56ECD61FA446EAE8458246B19A63C103B102BC692F100F8335601E42D09C4D89858EE37BDE94D4F3CF104985A1462011A4CB473B5B8FE8E260940273C4E9E1960F844593C6E22EE170C03A20B8A1DD8F431361DCE475C977A513DBE90DF8E0709CA41640523841A4DBD9A24096BC16C824685D80046150D644AF4F1187DD70F66910A7E8E02FA0C2BBF286CDB42DAA2A32D95526D639BAD3A9BD146081581060609DBCAE53203FD7D219881CD2390D26AB14770201145120717D94DC41B239B39BADBA39220E8952C2D36490849B657C8D6092FD4BC109C4349B2966AE2DC6876231DB8A489F2A22438021D68C742998E56159C74D2492FBCF00245BC72606102F3CB1312ED23017E874602BC48901F50858040872594FE6270FCF169F0F59F7FFEF96C1900D8802F17FF29880F6E6EBE33DF07098ED81ED0FBFCA3E3A41F8332A2BC159200E28DC7303E3EFE9EF7BC87B5FE684347DE36121046348CD9222C18C842B4DF434E348222B08891D500D6132DA60753802601791FF5DD4BEF2051204474E93D586C0116852B12F483A01F9ACE0BAF814F2F08BBBF36C243DC77A0C025160F362AB25AF94BBE613403079B50EA15F859E9963DA5CF59F95CBEA8CFF8A565171D571A28FA33A5E0DE7CDB2A8E34AD92D6F5AE49A53C5B7B60416B51A093E1D0024FC62ACABD6D55BE10DFF3E5974E78AD7DE0B4D4B6E6B5E73DB691D2F513FE7E746F33D0BE36DDFAA84ED63AFACA4BE66ED28653F4AE11634C6F7F69C7C824953F1F4B3E9B2B7E793EDDC9B7A9EE9A0E196479F1AEDB01A341426154FD8427017E9B8380B53905075CB858AB3403E726DD1AB43B7FDF1C1A4EC6EF6C4EB2117231B915CA6FA7A64EB92D89D9796DF889C4CC8B0B2C75D28974CA4A571B559604279E72E2AE175F913C0210BFE446335540B71067112F014F269F2339637C1AAC4CB8BCA54A1C309FAC9C7DED6B5FC3B40B3239C248B029F933EF4A74F79562DD23D27FB4C211A6125FC853213C9A575C767494C3224688978AA6501FCE4FC45217ED1688BFC8ADA2D04D24660DA2B64B6004C1DC51FE097920452D204EF8A044B3090EC55B8C1E129D55FFF5C21D291464E18C6472B126767C7C94DF7C7AE640A9C4DB4373C2B83A42AFBCE9FA72A94261201F1ED15831C232A1E1A64B4AA2307435383A986C1A092F2F1E60E251D40AE91B059519AF1A527393C7DC554E2CDEB7AA9EB0D96C2917906EF524DC2108482A7B3ACAF8A8579B4A47169B52F124798A48AEC5F2401F9484FD2829A3EB3A345CBD87712D908102A48314608C10420E6E131093EC842894345F1284CDE879D5AFB9E69AEBAFBF1E6DD6F9DFA86D41BDB0C1EF250996C848BD7748C418D412C5EE17D7243C666BD7AE652346A60B9E9368DB3C34E11340690AD5EAF5EBD76FDBB60D15F000F8C4544777A07C901019C6165D62C18896508A904A34E267F60E9E6464225E7BEDB51B366C8886D9C150B085821EAE35D260E43E583EF89D9084CA4FFCF8C73FFEE0830F82E6F3942BC52B5A2A9929B6DD413FFEC9A1923D6B25A97B798292ADB106CDE8E46DB3A862D1B67A9F47656DD5DD977EEEA2DB2F31CECB7BCB62DE5DB3B9BA516F0D79B74FF5B5D67957EC696CF27CCDEFDF9C2826793A5AA98B2831D937FFD53235C8F295A2A6F90993465B37BCB28256ECBB699FDDCCFAD4D173CA65EF3782BEDCC1083FF5FC5A227D29D2FF16CBB4C23D6E371D08AEAA9A2B29F9A9788AB25327CEC5DF3E6425E3679DFE7777FFF61663743079497F8A16A6572DE4FEC7D8EA97F22F3CFD6267D653ADE329EEB1500E5C3B136FD73A327BD40BC342E3E159428E1C084CD237F410120D452DD085B1FA921B069ECE07D2C924972C9AB6CECB2700E9FC6AC8163B868604CA81A904135FB29524044DBD6C25EC7D7863A06740E1F80F333590ED060AC11DC043C460922C7909EFF7522543F89CF04B69F7248E77AD872F247A957C3EB677489D10CD5E8A9E2D799F92DF1D154A3D74071F9A112F613A150FC7A3A36BD822C8A8AE5A0DA04988C40F4076C2EE835E89326C313316D643863EA54EC7E9B5013215D6603A0D9B803F68BD0E218EA7C469A7ED28B9E3F03CBAFCA863F8C58248B1DBA1F54D3E18314602670E34506891920EAF85A09E121B179A93091C1D1D9D98989035964C27796BB17025808CCF20593E0D9DEBA34C59FCD7E228170C0C1010D41F6C6C29EF3A8661889B4795170098E05AA9608092858C2928E9D117870C809C13EB55DE5720AFE1207ECD6B5EF3CB5FFE12F1C073CF3DF79E7BEEC1EB60CC2880C02E82391F8DF7B2C0DBB2650B1443497994ADBE24D34CF698B00C6C150A5D07E2F117EF99D2DCD3699EF965CB96F1C2892B0FEF2B0E2290B1B42D425738BEDB1BDFF8C65FFDEA57C0A986EB96225D9429931AAF3566D894D4DEFCBBE19FD27929DADEA04F133D4AA9996C9CF462A64D9BDA343798CCE8CDC46C7AFF3AE7AEBA930FFCCF4D5BA94477738B55FA969FE89C6FF49F545FB8304D17376834D0AE1C185C5B9E7BDE223E815696EEDC3B584CA729B6472F59B94CB2E4D66E690DEF8D1D78C459935CFE4AB142B64FB6436E47AF274D5208FADD20D4037DF54BA74B419CCC8E02C3609554014BE4694E81AF65295D1D2AAF2ADD3AE1945CBA9362F194538CD1CD65F253E69585E0BAB98CE936AFEDC43432EDD595CFEDA6B4419BBD65DDD109AAC55275BD411D8D2EBE6CE3DDDB6FA1D0A7AFF56ADD05CC55FA6AC9DA89CE4BBD1A822519E4A8E6C1F2F11DCE3AEBAC471E7944D4DE83937FA49A7F7C03A72528EDD65B6FDDB87123F8FE31BC46BFD701972F921DF8CEA2A0401D94021474D516A68C2D03DA8E3299C30F6C37241D01BAEE701E1E3DE04F166E2F9586076F080D57E617E6210414DA8583DD441B94473D397836BFD5407F9F659961266C8C85016F52B4A001CB16A83C248A489998ACF141A8224D89819E41008D1E9183455703F43E8813C511286031C0FC850580D3651D93F9B87B8C8AAA25CE653A9845EA058765B5D2A11066F846E644DC0E5149C02C8F6994F9267A5048504E027460494889410C8AEFB366CD1A26082C8CB05DFE9EF56B26776694509AA40F41D0AB279090495411007D43793FDA3C80DD4B2628B2BC81321D0533E16FF883E0A2086C83CC24440E4ADBF92602E22D0807427CE0B314EA83679C71C6BFFDDBBF49C30DEA057EE5B9029285B41FA493229C281D9B615F4289432C7D7878981F2159E7D227443C4541081817C5E28696C3B75AB162C59BDFFCE69FFDEC67A8590B294AF174BE270B09090CC0E20158214C253E01CE0D714C512F9D51193DBA95EF508D5A6ECCA78D34185BA15F5DD66FF0A7A7BDC2FDFD15734A057CB7F6D9EBCB4C61B63958B96B3E55341AD778039B620BB6635E99CDDBC61CD5E98A1020E73ECA5F3A5CF267AC2D669A729E1934AEA8B8C620DD35932B53A5CFB692ED6E83D21766EAF1DA987EF281EDCFEB73D6803D506BCF27C8612B623296D59C669E8C3E2ACCD1424D6FA9728160A0DFF0E7BC924A148D595433C8351209D6DFAB5FFAC6839BFEE6CE7DD73E9FF253DAF698D6707C8A3536962945F6557A77BDAEE5C6BC5B4AE4F12594DD58AE2753FAD6C6AACEEA9DDD69D25B09970AAB56EEDBC3F3E3A0EA4AA07329029583205CD46933303000CF1B941580564919C4126246DB898373DED37E96F875A3FB9D42BD1E9C1A012D0CE9689CF7BF7048308F7A9A9C745B82D2038620496BD4D332C11E0FC7255B7204918E49C71D77DC39E79C73F3CD37470DBE2527B3C060CEB077EF5E7E04DF962F8CF647394460D261509A4CE53C2C26746185E26D5802C1964CC4795D3399946DC7C36E0166E8C531048948E40D9E22EDDD97C895C8F958305DDCFD60BBB02AE04551BA67289C9ACD76A7D375433502F2E368D37758CA90D6EB4FD28DC69AB018480A92DC00495516A8EAA89E220C1A95011222C673317592038A3D804EC24C2E679E79E68F7FFC635E159EF06AB50A251AF100F8C4C4191DEDF82828A43CF25B6EB965EBD6AD6F7AD39BBEF39DEF500F07EDF08EED51CA906E18D40B66607240C1883D0807847E802084985C415830096791D4374493D82892EF21C55F2C00D07E47CADFF92796134C66C20B586DE433F9AD99EFF39F48D1A1504C7EE0031F78ECB1C7F82AF4D7F37B9DD7789CA8F4962223299217351F2C1EC61FAA7B80AD84F994D236094A31697DEC631FFBDEF7BE0787095FF2EE77BFFB273FF909FF249E6ED8C7181E341BB95C499A785F77B66425FC62AC4E5BC89ACAF4DF5CAB6DB61A99AEB63E11182EA59C7E32DAD54473A8BE76A17FD73545CAE883EB7D7D33CDC692831B93F37DF3ACC42736EBF1E270F3D6A9D8C6814672E1F4BB964DCE69F3F6FE65D7A51726BBAD2F76C7AB83935418A44695F675AF5B7B7C519FFCE9DEB78DBDF547DFF9499B997D4261F9268C78C330A95B4976C9F38D802C3BE6B5131EEB4E5633EB51DD4FF8414C2737AD3099BB8D1C352A39A2BA4E77F9B487F27766B5AE53D45BD603347E80F66D27EF4AA206ADBC81F234FA6BA346DBEA5AC536EE6FDB0B296DBCAF5D9C0C98B8EC84EED2BDF7DFF52FFFF22F3FFDE94F796579EAE0F18FC202520F2C16B81DA0435E91919191DFFCE637D874E0EC2CB37939586033FBE30FAC16202A26E11969DCBDC4954F11B3208AD10675016AC71F4A0C043DBC00F0496C347E2E6F2B1E1E7264014620E811E2E414BEC173750CCECE176EDFBEFDA28B2E3A44B53F8AE48011C063E029BDE4924B366CD8007CAD830A318AF760F002E74B1A11F3A04F3DF5541EF1AF7FFD6BD6317B91C3450804E9918641FBAE8A01A6D28945FAB763A1AFDCF62388A4701A207E00E7B8F8A02003422ED3ED051434E4832A5BC15B1C15509A85ED2A66D16E853109C775C0D9A19EEB00B03BE20C4A98112B84E6538847611B6B91869492C00AD55B448564D0E3869219154D2D00EF8300909A58F909161885DE24303B987B6242C2EEE199BFEDB6DB98CBF31D10A70A7A6862606DD4C3F010740AA0B6FD676C02EAF5AB411A2B7F03968ABA68D88FAC9DBDF7BDEF7DF4D147A3353B514910CDAFA79E2216CDF1E855962CD673892223B87272090F1EC51062069D77DE79DFF8C63798532050CC4F59B56A150B00D9EAF0D16327A32053EA2DA21DC031997E881E0AE59D7A88437C21729982B01E82E9965F0A759BE83983D60E7847C119067608F44A8A80064B8EF262AB8362D94CFAAD267DF623E73E92FB567BB9EBDFBD4017C54F7BB9F3BB1FE8A97D23BCE112E4159331BF334359CA7FFCB4D2D8EF566E5E5B39BB5B3E71FFF885B9B9AEDBAF77A6AF70B343D9E062CDBBC96B76EBA3D70DD4F35EAD55A6CBA86F3A5EFEE70E5563AA57CA906FFD2D75D7115D4D5465153F9149655FFD27AFF9E1FFFE7FBDA64BBE4141C6A272173DCBEA0379DFB1CCF68CDDA5985E7032E9BA56A37289E8B6876EDBF8E94D093F7E5CDF492F7476D76E9856E6C2A594AE9A75CDCD9C67D512197A74413578E9927115253BE95AAC699FE3EBF10C7DBD16CC675A54B374EA4B65E79A5ED6D5EBFEA2051CF4E03AB408A2A298CEC829807B16DF4023812F8EA717332F590C922116EDC02A697BD18E524B2481A46020E10DA92EFF85B8DA310EE97F87DBE2FEB06CC055C40326E70B33912E2647F3EEC240870709F43F3434B4B0B070B4F10BF0300BCE0B2EB8E0DE7BEFE51903AEE5E2CC44C5E6C16F7B798A3C4D3C1AA9DF0B75BD98F8FA81CAB9B8ED99DF69BAEA64A3FAC8F38A2658A065B2A9507D8FC1D50E3E82D491681EAE645B4A6D459894197AABDC45BD9B0581246620CA04F651ABB796188BFF61AC867A863C381A6C0249FF124387B7316AEE60BE09E3964748C2A5D6C3DE11D3817A90FA12CFC0F7C27C014924025F2AC811A762E6CBB785EF0FC9736F7FFBDB7FF7BBDFF1F9D2274BD22744E9C0AB09C2D4B1ABCCA5CF0C2AE34535403725F882EEB8E30E66C4D0DC257D1BD24EEFA1F36332F93E0826A31393DC4D42BBE0FE306830F310337C2D5FC57CFFAAABAEBAF5D65B4F3FFDF45FFEF2977C02B0B2F97C5609C1F7A3705D902802C42D681CD8F6626B8B770846376C4D417245E60F2243407E851B5378132A3CD0A4017A6BD49B816072349D77892302B2BCD6688C27FDC98EAAD03DEDDCD35FF0A632BE51F25B3462D1F5B3995A2C4E7AD5EE0CB7ED8A7D6AB53D4F57EF51B502F7D3D0DFC6676D876EA754D76F53BF776F91F6123DA4A5CF4DB7066ADEE589E5FDF9FDC601E6F879ED55A52B7F9B6D24ABF966F62CD3CAB98D16B56EA395CB56B62B9D85F2BC9D31DB1E4F7EB65E6A1A4937D029A8997DC648C92B53A2CEC49DA95B15AB15A2B8919DA43E4B2BCE06C974A2E15AA36DBB9A0CCA1F9DED4F0CFB771B3C9BD5ECECD0952B835A61EEEEA7AC4FA4FB83427067C721AD78CA01EB03C1F2F9B5BB1EDA65C7FBDA9DF2783E3D39532723667B4E475B04BBBCF4D24B79A1110A963A5B487491074CFF3CC9122A135315AA34D6081422DB279A810667E092C282287FC00AC29CC597C8DB9101FCFF3FA25E7ED1F191D813F4F01079B428DF8382EFF5DA8D2D01C03FE2FDE1028D56C883928F16E7C0BC095B081601E5223DCB509F86BB80AD874E9E0CAB42AC91099B40396BC8237443379006A0D246BBBDD076988713A26001195555D8A6D3A9B86DF00D51030C3E224AA56407058B1E9E26B23242CEAC4E761D81B4536E223E81A9815F8969083A45A7E3C87B2FF16E1D4D1C0003955974C8C4A94707244576720758A63B77EE3CDC3BE41EDA10867A317DC48725584A117F9A64254679280400D41CD4BBF284BFFEF5AF7FEAA9A72421075998E3E3E3BFFDED6FA1D54611DF2812BD80475B7A49D27FE464C40771DFB3E5C1BB5480DE90960AA920194414A9E4126924FDD7F45E3BF8833EC39E24C036161287CCC39686D20D5D5B3A3383B1E272FE098A3C7FCF860282283C27FC014A03EAFB99C6E6E6E6600563C924440F0308C684C4DE510301414B3D990AAEC4AF8F2FB1D3F8A14801E06F56AE5CC9E344F3292902122B500E90B11A33750A757DAED04767D7A9D4A06F299C516A91F1398B82EEF01752072A0DBA6C356953E6F5EDBE34B53E439D117237D1EB97AD7AF293AD6429DB79748777B931FCD2F1ADAFEE56FD26FB28FBD70937659FB1FB847F5BF30B4A527E2395A8A08DF68D4DED702E1B9D5D3B94B8E837ED2405555E2DB32F93AB55175477039D743B6D9F57277F75F3EE89D77493BF4A5654A7B0DDF1E107D86E49EFCECFD04707FA9385E2DD2F2E0B964F34F6F3B3C855E0FD6BAE3B6E6E4FB1F64051F54CBE707CA6364977AA9F56DCB26AB2B6DFDBEAE936F97F47B49A5874D9CD78BB1990D14D745557C72095E86F34CB1480CE99362425543CA8121F6255E037BFF98D88559E79605249953802C56CFC9D79E699FFFCCFFF8CD22A7043F10E1D9E3913651190047003F042F3BE4352F87FADFEE668074411A811881AF014A1DB2086C184FDCE77BEF3073FF88154DD3319034D32CA728F787FA65E7808A0D442B3040F3FE2F95059500EC9F20F9507128D20891344A1BE3020AC8D0452A2448EFFB13C507C30EC5EA0A0A3490FBB1007618362851DCDD68032CFC90D6B8053903F602B5833F02FE4D2429EC365A7FA9B41AABB41980D8CEA3613D13995D23A3D8DE46E16BAB4D8E878B1F1D97F2809F87B9CB244760AD188E78767960925EA4A5B729891C6E8E2F991AC5E30233843056356AC5AB83E701A824848E343E210533FA2E23C18EC04F06E742C90326C3AB4100C5B453A85890D7EC4C1A3F840462BC529F0A403A07BFBF6EDEBD7AFE7B5BBF8E28BB76DDB169504925F403D7DFF4FFEE44F7EF6B39FD1A1991B52AA2A85BE92CC13F4DA4163D544EC51CFA729793B52508A51494C42F82F2F1382D530022074974426F9C35BDFFAD6A79F7E1A211C5C2B8036D11C4149796202608B306A0DC06F0B2B04A920E8B41CAD4C167A008F3BFFBA6BEFDF705D438F8FDE90335B8DFD371673BEC2186ADE1450333E7843AD46FE28D19EBB88A658BBA7646A55E2AA995DD40AD6E4B5574AFDEB8716C666699652B78C25C86952D3A0746DE50CFD0DADABAED877FC7C7C53D3ED50814626687AE4B2E533AB4AEE144B9FFE95DD3503D6C8330F7E875AF1D599FE5A71CA20DD61FBE35A37A12FAB7D7E62A84CB359323627BD058BEE2EE72B03A5DCC2E0679727ADFCBECFFFD6A8F61335FC81CEEAF6F257683F5D68D080D7D734CD8A6EB8E9992F36A8D261B955FE30D1F1441D23995ED39E2FF9B7CFB378B05A89D06BD359A627A71D6ABBCDD3060B2FCDCD41E16506C41308DA831B44504378BDFEECCFFEEC99679E618E8C0E5F506BB04D24590B0A2B5ADA89E22C196251492086F2E192807AD6ED473EF291AF7CE52BFC38A4AB1DA308EBF73A825E17491E3C53CBE4E46434082150C1002C40D49A498BB522E07FF00C88DFE218F7E717B9E4924B5887E369E1CF12EA3B12DF53EECA73CF3DF7F1C71F476B0451E9164F88D6CB09005E14E148EB35F0025F0B7CA3EB2C3A1CF4B0A3248A0B54BE28AC02C5913DFE326C3FA0129C6331856147615041B53AB04C546349E907021508B249A6A6A12B273B3F364C305F3461D20A61283D3DA384AA6984A2A5E7FA431D426FA58F9A0CC6D68034A10A139C8C5E94C297F2286164388E98452A14ECF53A0151E86D148C62D886D10476B82920E42EBFFCF2871E7A88B9BCD42E51CF8AE45F5971609D94FFDCBC79F3D6AD5BA3AE6DBF07F52A1C135C0F0A2F531E440B96EF18D9B4D4535B446D877012B05C747A9040964C545412200620FD3579B4882D47D5E468D85C582418BADEEB780CB583A999FF44011A20C3786FE83DF06710277611F4005124E5154E38E1841D3B7640A844571067C21247A889C25AE82BAFBCF2AEBBEE02B48B38D32017BD5EE307C13C001008B30C7ED6BBDEF5AEEF7FFFFB22EDA4B44760C2165177BADD01D2172C7FC81E9FED4E525C29CAA6D3EABA859439E7BBD4A4611A99B1A7D7B413AF906E51E3641AFCB5E5BD2655FA558C52B3892CE9532B1A997D9AA719CD608C96EDB37C5A71C0DE994E12EB8AB1629F93F6F375B34A1D2FDFA02E696DCAA663462556CC2BD0379639292DDF61BDD2D45CC3A5649CEA6D2319780D8A79234690262A25D34EB155253DA6C79CA04381415A82823AE5A9DFF4BA256265229B1F199B9D7925EB5B35BD1A142839936D6A7E7F902959B5205E3FA5662F507B3A4BD9EAA81B2B074EFC9607EFBDECD273E2B55685620327AD715E78A9DAF3E748D2B05075346D0C6127AC35B810C80C2E5C419F86F2843421E90FECF5FA0E2D01A15BC2106547C88222E4030BEF0F152790F2025DF5431C442682A459A38C94227D5BAFBAEAAAC71E7B8C6500BCA0482E5A124858F222A822460A06A25CC7C810A15078202F513CC3D063166FA8F7BA6F4B948687F2377FF3370F3FFC30222A4B52D471996455C3C32EC556180A96192BA71D84B68E499486FF5CB76E1D6F5AA041457BEEF0ACA1EFB9549DF0377C0E343E3C1A4555FF6121F5D1A603E569E026200B985AD1BE6E18AD8C8122B1264979122EC9C3F8C0073EF0E4934FBEFCF2CBD1EC5210BA981A60BBF08A88298A97F27BEDD1FF0F6BDF016E5755A6BD7639BDDC967B736F3A692410AA140584D15F0699E12723088A44414A88940086DE49883409485740616823CCC83FA28C604544541008A8A1842484F4DBEFE9E7ECF27FFBBC77BFAE9C5BC6CC781E8CE79EB3CFDE6BAFBDD657DFEFFDD03B130B852DD7B158E59C08E000F4460E06AE60F80188AE906A9FDA85E62A0D6156DC003580F9D1C9DFC1A6896EF52A2C3E00FE01B4A980FDB08D0C26904F9C248EC8E9E1BA10AF8C9ED11985F9D68019E7F8D918B9018F84C0914C144C753958962BBC28FD99822F8C905F4A19FAA93027D916C2AFD7BECA39B100A02144679C7BEEB96C2061689C1F54452CFAA33B0213018694281579E8F268109EC6A8701898D71AEE4E85982E766AE31AD697B42E4F55182D047209F450C8FF6391AC5CB9F2965B6E41EF04C8538C561CF872A52CD695E33A99742697AF83792C3B30F0EA2F2C3639183B972E9A1EDE09469288AAA21FF7E23555A9C64BAA4BA53E918A4D8F0CAA81784BAC6454BCAD2ADD946E1D68DBF8AF1FAA8A8AD562B49F0827C5D3418E0D33897A0E38BB148E04A14055D0C8A5E1C2BA45794F5A3059187230E8D3C5E5BDFDF6DB11548101013611152699E4898BC58687AB979DC39B619E0C4B94396A23ACF397635849809BFAD6B7BE75E9A597C2C7D563AAC6D8F54FDC714AC33D370424B198711EB4445621F4886053D2B83234ED877CA0C11928CEE408D6B5C224944B226BAF5BAC0DB05F999D934E3AE9D9679FC540E581EDBFFFFE7FF8C31F10ED8188D7A151322F627B02FC87A276440C914BD49F3D0676C10517DC73CF3D679E79A65C42A4123A30205D3E7EF463AC17AB4FE58D6C3FB91DD9637269403F756C65835C6BD004244144CE59F6AA88CB860A031D260B73409780469DBD52AE8E9B9501806D117707412CF7FBF6DB6FB3940993061D00D358261039B7871E7A48FC0C4876CA7A02C3E8E1A9907E07FA064E18DC179D4807B4A3C83D88452CC31337560C6AEE5596A4226085403CC02130D61004A3ED8387852985F213F304ACD448A3314CD400EE52612F01D6A642D5C93DA2659B7C78C619673CF8E0833257328C030F3CF0A5975E9201C83172FBC0628D84D951E520DA0013B2014B2EC6D0D9679F4D620CD040A199877C020E252A48F80ACC52020425979663B033111000FC494E2553812A04B194019FD58B1EB095E43DD22440EEE923F7B517EF8B385DF86AD8B9B366CD5ABC78F1C5175F8C4709C34E4E8E624F72CF89F34E235494412A19F0E06EDDB6D50F6157D0FAF2F3B973E7BEF1C61BD031D8ADF07DE11A7AA6279EB6E904E1E29A72FDA8A35A6545AAE49AA0F197B2D49CBD66BDBFFA83F668AB2AAB844A6E549BC8BB0E510B64271E1CA0BD3260021FF4345BC33AA170E4DDB19F04EC1E91FB37DC70834EE08C29924B602D8961BE62C50ACC1E7007FBEEBB2F36A0D8439FFAD4A77EF9CB5FCA36673D3F942841417A630C15468C919BA5670C3F1821711992BC418DC558724C5697AC19D929722F18A45E5E0A898A4028F0177E48CC85F1A3565C26D0D0CAEFF9D0915D184655D0EE503B973FF0CF06A2283A2CF8562E70DA69A78918A259F4C94F7E52B62289C3B0B20910924F0E39E490DFFDEE77320BA2AF0E3FFCF0E79F7F5E6E12592059A91022D0810014EA64B9F273D91872186BA0765513C06BD32BABA1128E3BEEB8279E7802063BC42E79CC47D50488B3E30CBA49082BC9D2BA2A32D7EA84AD895142CC3B62441BE16C76B8C484E306D1C000F25DBE85AD4D520A7E258F524E059313B60971FDB8048D6BE25977DF7DF777DF7D17FA03F97CAA2298A2F8C957BFFAD5679E7946264A34048BEC1B6A9E47E26718C0012D15C6CC0E3F7410F5C615FA3EC79A81EF22EF31CFB4B519E81795299B0490593918841F4658028D08BE9E59D1435B0DD21F5E1A14839C6ADBB66DB22CD1040D5548101F2AA4365221028DC5E44658960F64019C33A87C166D88712352099623C4840A5B96C2AB867DC79E27728370CB1A7480AE0CF4541F6E102E1DB24DB05AA898C9124667CEAD3920218EC7E2E21C44ECC870D54BA54CE3C90FA9B901A8D33581625940441E4DD42D7BCD89E621B123ED78C991B564B6354FDD31B023D39CC90DF528C3893767CB22735C4F7935026000AD66298FDEE7551EBD5C572C4873441713A511F8C04EB2B5767E346EB8CBB0FE11C703A73DAFA2079AE8D0EB192C9937391231123445C06010F8C20FA11411AEA1AB043A55FA9A62576DDEBC99BEE3F8DCA84A6364C26EA52781F3B3EC144CF8C0A3CBB74B962C11C90C390C0B0CD9889B6FBE59749E1C802639C32B1FB747F6693C51241FE0A661859109998741CAC35E80FD05C8871D766ED3DBF01A5A8F5934FDC149C26E1E4A5733B23290D6C3D9E4C9C17E9437575F7DB5DC062B4746AD211CFF853D46383F5C24885799049926F0EFCBB77ABB18355A74083C8274BE987534B4B662B47095D6B6176101B6A284EEE4AC2233A6A72B10BBC350653FC83C33CF09C187B81CF63606D3A0DD55E893913D1BD90E99E7E38F3FFEBFFEEBBF101663EB54F02DB35F87EC43B128C94501150218BE5C052E1D3C569872707774F88D08BE55AB5671A5C96F9118973FE1A3E8B86FBDB25D3E972722AB1F03C60DCA6F211949BDB268D1A25FFDEA57B2FDE0EE10FF437DE087E520CC2BFA5A2F7B926430D476D34D375D74D1450CE241DEE191017A0BA6103864D00D308A61EE60C1134B8674E897BFFCE5471E7984257B903B205051F52E46B810824E5E9D801E8A138D09291AF45C1157B519F6F0928725DA4BF60B584CE0F6A1890A5A9C02454E6C95AE291B9A8C2E5DBA546C6479A67A300015588471332CE385E49786A57C4F45A2A653F132665614A568877E73473A13AF55829A92DEA15EC7AD434F9A54AC37869BD26D50150279B17A91E0916D221624C22F0C1ED2B7237498C2048D30E58DEC05BD81848C5F8E073218B15FE869DA855806549C88828ADC9793C07D817205C7143252D004ACDD55A1EB3973E64C343883E1084B02060D4AE245FA310532AABCE20A4719DA75F5976E78C96A843DC40E57B40918A5471890110EB65290CFF7DC734F5106C1572C76807D8DB821A41534219E10CB3D08E4C02260DD1A6AF4654E658B62047A81156BED20D98DB0833994B33C15D9B7B05861BCA011B34C2ECF2CBF5AB972A5A832552FC592F3C3F2DD559F80B11A0C03134D6028E965F8B47444668326406C17863F5B02E8B5827A1C938B9B790815A2179406C484BB07A9EA87C5623073F838792F0D9602A4B3596FDF212B1B95D840DC536BC2D9822A82972ACB914DD8A95FF51239F917DD1174B9432D45AA38EC1052FEE259FB5A4BD806BE0D864739BDDCD59C3D1807071D749078E8885BAAB067131E16CAB069BB60DD62C5EAACA23A8E8881323F2419D69BA0118084F40602A488B162C0B2B7452322942A577742427F15B640F143BE232C09A82EB499459608DB9E8E0E84B21FD260C0AA45F25CECA43FFFF9CF7230DAA072F57ADE4E3039CC1556086C05C05E450163FD40D72E5CB8F0E5975F460F06CC8F0A5D2BE84E18F80C5FC857C82E40E1212C8E0223B0B7325408B349F663D0C9A7BB54F40BAEE9056059334859C78D98E1AA8A55C9C6D22BAFBCE1EA2BAFF1828FCBB174BCAF3014E424723958CA0DE45A2441C13D82528280E6064DE085AC7346D8E91626300A7AD91990E5324AAB48A00C046C5A77351031C318E8BB6085C8AC229E2CE2E888238E78E5955744F44136CA835BB76E9D5C6BC18205B274C9622B9FC8BF286E07F3920871F9641CF42A03A4D0EB90C3DCAD20FD95AB8B29E987EC7544D3827D9DEB1F7E09A617EC06ECD813F8C17A424369863C878E38323FD14D4BC2E181FF613A1408303A7A7A3735849245EE234B83C7A33735158DB77CF9F2BDF7DE7BCD9A35F22BBD430818076131192133DFF85DD9469D591DE341C58BC02E90F530A8C7F7099898D2A92094467F36521340F9CBD431E462860D5820586953E82077F8580C205C72C925F213718C54BD3C4ABE7DECB1C7BEF8C52FCAE4639135DCAF11F2AA63D87A2C150DC58032F6EB251D93274F965B868A3DF4D043FFF11FFFF1DA6BAF453047B40E621D3245A83F97C364C58BFF342AAC1E86368BE910FAA328914BDF79E79DF2ACD9F95957007A72057500B255C21274476911E1060982C005BD522812C8382364991F993196D9868741F4841912CD637E7EF0831F1C77DC71B82F36FE6572986254664FE42C82605C96640DA1DC9419209B02E27B9840EC3B5DAF90AE5985F5EA6A4474482785C57A03380AA5124830C820E55AD89E2C2BC56226F2ADEAD4FC3A317DC08956DF059F3FE184679F7D3662D9082E119BE06A8CD01C304DF8A497CC3B052B61556A653B6B3945591566AD0288AEB2636927573394ED2BC38E46ED68A456EA21808D082EC406F41213AF4EC14BDDA946448768BF631AAFB9E61A5187679E79266D173122BFF18D6F900C4E9EC257BFFAD5EF7FFFFB4842807E91061981C8787CB4634470C91BEC4DE84BB862E0D9D6AB64E03DCB8264CF6D3D4DA842165819F0C9279FFCF0C30F8F857C41B90FB53E1B0592B7A65EB615A403E56CA8D31475856AD0AF7DED6B6243204B4CA18DEB72F5C2EF0C3C213BECCF494B164DB2C46611CF058D23C092A6633375BF03D6CD70F7E39DABFC8DB02A8D85AFF09A51DC0F298FCD8CF701935D5B9B0C179B479602E8C5313CB22EE366C6EF1C3DD64B4F3191E58A71797972402EEAD5DEA36A827DF6D9E7CD37DFD4BD728A753D2EA442AF65AFBDF6423B75CE898C5FA6579C4759A0575C71051EB9EC5E996D98A832C93251321E91C24064C933C692D5EF888D3860A4C806903F41AB0086615C94C80AE210E0525099E9C4D724D880ADC70D46E89E5C4B3EDC6FBFFD5E7CF1456287B0AA8CB0E96903C912910C729EEF7CE73BB24CA93CD08009EE97DE9B9E1055DC293C0F99A879F3E6897B8BF5094B45EF1F80F81E66A3A1A72BB3B2106AE0B3132D250E321A012201836727C7E8D14B8428DDB0B939B429F00EF208649BA1468956987C227375C209273CFEF8E3A8828618C54C42C41C79E4916FBCF186A8DBF3CE3B0F5E20B058EECEFCFBF2DCE1F23728030A622E51155A912C18545A56402E819C1C641359A70286926C5067270BF763071C209672F78E1D071C78E0EBAFBF9E88C5A10690C186A403648B4DB2B0EB0F3CF0C0575F7DB57E41131D412CDBF455CD3045EFAAAEB6A66AA53438580DBE33544B73B6BB3F785E4EBDE1C73BEFBCC391433D23CD2E2B4AB6A47833AB56AD62B9C6581963FA76B232FD7A6325AC5B3488C7F280BB8675E587CD97704EEAEC61DAFC7A4295E10D55C78843E6C890E43C22FA4F39E594471E7984521187A9BA13AFA78EED7A3B29B91609B810CE829C11D52B6B6C2C3986B0A45C51CE8600805E748915C5561F64DF83DB87841F295E4E3DF554598A30AC451C89B322A75DBC78F18F7EF423116586528D7D90B1F26475DE71C71D981ADC21F649038B35741D53A6447C2ACDBD6880963361C81E2F7806645C805442CA450F72899494ADE8876D0BBDB077D52E6902FAB33CAD2CA0458B163DF5D45308BED31E1F1F3B74D6596789BE45C81841244C051E3086C714A58C538EBFEFBEFBE8C61A1ADE19469CDEC30BA515AA6EE3CBE310D3469C00B92834965C428497083B6A592803A43AB83E743A176249E5F8B973E78A2E9147B362C58ACB2FBF1C76B41C7CF5D557035941D30637020B1714BBF23988AB00EC83DF4D681A2423FC1B72C7637F12950FA790D38BC9612B12C4CDE018E9C607664637D9B0F431E140FE91FE9EABB1214A698448732E60CC1E1B2892291E8F8F9CA64A6B164813D8A817BEAAB0F796CCCCCC9933376CD80099025F5EAECB4E9648F6A8B075B01FF6B983B30F61C43A29BDF3EBB265CBEEBFFF7E6A74B5337C884A4E671F81D8822AA2954ABE261DD8CA569156C4C60C603306A160D9AA32D44D9B75578F738B7940FB074CB218DDD75F7FBD1B712D23E2965426DA52A9969356B4EC0E5981C44F2613F1FE52CFEDF7DE7AE1F91706B50EBE9D9DD059E8D92ACB5BB6128C7A1D11DB809B209A685414290B42196E0526827176B44D85CF07B34385D9EFE5CB9723F84EBE2C151AF5D8D75EC8684BB98727855024AC5E53238AC701803081044C85D14E33EC11C4A8C031C71CF3F2CB2FE39851E5158C3FB1176FBFFD76DC025ED83BB0AA75D812E78DF2446FC607E987A8264F85E91A4E9A21A649C171F1C517A3AC1473C73DA03BEF7C11CDAA347A3F63E7FA2CDC39D4039366B6D67C910B8E68076A29A868887EEC55276C1F6184EC6F720BF07C891EE1725161121237ABE3E86109227A0B2416451E6E0AF4380C5C288D129515C53803828050B93AFA05721F4E7A83F8232F901E7482294D162AFDB9A24440BE15252D020237880D19A9B7B6674E15F303F35F4F5953A521CC8DA6D890744C62A34900D48C39A2219FEEEB5000A930948901E8313D1A59242B84DB27C688685FA807B9288985C1F3C3943BC98E18DAA2BCC6EA62210288DAE10FE938576A4452F2B1A8751C4B022764032CE4BA1B0A627153E4F293338B258ED2717ACC7AECBBA19595CE57D13063E6CE4CC5486881D389620ED60CD40662C40DD00FD428E1276ED8154369291908743CC4E6D696DEEE1E64051070838809503795EAF9E79D77F79D7779F5EEAF55D7E9ECEADABA6D6B045814314DEA2E7B801728058D6F915110C5230A4F477FA25E92EE230026E813202B4D4C2559D5A84096BBB8F3E6C7965DFEB572B55FD4723CA0B95365BBFEAEA0521151D1BEE3F9CA8E541D2FA68C36235B6936FBFAFB22513B914AF50EF44592899AEF2AA72ABF84690B418C7808A65A36D4BFFCCBBFC82224BE0EE2054F8A2645432EBAE175E28927FEF4A73F9555A7734A52BE515A72CB8F65FBE3E74EBD0F20001414BC38805B1BC20A0A9E9179063FC9398A957FD55557898636C2DA171CC6421FE66044241A348E509EC3CA055846E066F1B51E7290DABA26D043F6B80D3F2CB8C0EEE5ECEB6DDFC54FB9E28A2BC4BA641E95FD8998FA00C61F420AE83A64E1611EE2B6115EC45E82850EA23A582BBE06E544D6A8527FC949F6DB6F3F7191C4DA525A0299803906BB98DEC4551AA04A50B094DADC5A8844D37831762E7A46E68740F5B1006488ADDF73CF3DE79C730E82E0E207E86D2E503404AF93296EC66A78E9918BCFD02A5FA8BCE5D9E91A547C76B9BA3C11314900FC1F5513407620933667CE1C315E706959796C5B4FD74407712F58B0E04F7FFA930AD1113A91A71FB6F1A1A2153F52242CF6159E239B08B21E95306A31BAD7AD5B879D00FB403E419602FA0FC012344733C6ADE881214F9A6B82885498CF00993683B02A0CE86349109B88A019ABFFB06869C0E2A6C435917B64EF2ACA6EEA2AB89E884D312CC082505AEB2A0C54C22301732A8DEB063797EDFF6A6E98802997A74D9FBE71C3873299224383C68D22DFA3B1A64CB6BBB75B86228EBCE3B94EAD3665EA5434650A826640AFCA6248A521AA66CD9A25730E1B16BC9318B31EB6D25F3A824E164FC24CF4E47A94ADEC9865BB11A3AC5CE577B44EE8F7870A03410F9D20239D8CCAD655554F95ABE2E3B47774746FDFC1923779225081B0C0E45EC4F810DB5F85207D59ED24FB827572C61967C87623421A930FC3D11897094E64971C090523EFE5DEFFF8C73FF20018130D1CAB0D2F5AD24494C924ECBEFBEEBFFFFDEFCDB069AB0ABD583DB822FB54563B6C23206E182B237C03AE7643291CE4E709279CF0E28B2F8A6031EEBEFB6E999D0B2EB840B40757338B5A5558896AEFDC056DA426B0C2C6B68CB521804EF14AA0CBF3CF3FBF70E142F605436D145D4E142DCBCF3FFEF18FCB443CF6D863AAEEEAD2B263A1044C36E09D4467C8F2BAE5965BAEBDF65A621F59F1CF4782370084A9907713163460C5985CF6A44471265405A0234458C9B432CC8517A00EB88A1FF6DED16709C0245A7378BABA9268C84813DC42D0025ABBC01DD1CBC7B0C3C11D0BE14E114301C4E8163E9F397326A0C47AD2DB0871D923316DE3FB042C5F045A4E8FDA5336C175F3C326D523410AE81600B31D8781A051DE7FE10B5F78FAE9A765CC6BD6ACE10F59798B34924E8321CB46EC0C2043D85E18021DE06B15AAE7716C349A239867311DDE78E30DF07920062807A061192AA1E0E14D9C38110D78E500D42260D93CFAE8A35FFEF2971B101946C85C2BA71551F8EAABAF8AF4A4A1A7429E57B9D3F7DF7F9F8B1F421FA4AAA89FBAF7DE7BB76EDD7ADE79E7C96F41D78AFDA527BA466E6133EC3911C0DE5C4724A823EBAAADADAFB73762FF95C34A0E9D38A1BDA7A7BBAB6BD2574E3DF5DB0F3DD0135A0CA9BA7D06804D20E9643DABE1F52C4256E60D8E2F11B7327271FE56AF5E4D07143B4B8F8D4C9F3EFD631FFBD8CF7FFACC60C16FEA6C1DDC31946C9AE0E72A76D5355465285951D1A42A155557FB5E9F392CD539A15CADB4B5B4FEEAAE87DDDE814853B6D637944E37950673E948A25C2D55D470FB0A993A3939BC6A481ED9B04B962CB9E9A69B101B0731BB8C04C13DCC1556A00A1357235FAC2B82DDADEA6860E463910987B3FE57A2B77149219990C0948A69850C0A57BB0AF331B0B490E644A90D1BD9CB0A975574F9E597DF7EFBEDA86D3442F6DC8605A07F6280631DE509B06E20FAE54FB9B08C89F529AED6A2A4412250F4E0E972E5D1E66221229C412C655DC0A1A11D6A4DA90021FD91EFC293606D14E3512C7CA31A23530D30D4F09759DBA5C2649D1EADC21D61C5E0A28C20E187944DB82F54E7FED33FFDD30F7EF003F2FC8872FECB5FFEC2506683A5DF20EECD90B25F850E0727135246AFC052A1D9CE02EC8660820ACDBD913B5F0F20B2C60DCBB42191235BF4BDF7DE03D85FCE03F62179461F7CF081BE7C1B34018A6621A42EBDF4D2E5CB97C35A477CC90FCB35B197F0F86002C383214150C362D5390C6478225245BCD2DD41051FEBA4989AC685108D45B39D6F7CE31BE2516149C84F90AE40621F6B637CF49E0C006073F6A48466E215E7CD9B27F3C37811560810E86083515A753D1E2B3C579E8A570414986104A595884340809912312E18FB726660E4116F210E183F87EA8210912BD235D71D2FB8208126AB96DB2776766FDB164F24AAE54AC4B2E5818A6AB9E6EAABDA27C8257A975D78E17DDFBE3F572CF986B262B6E10CBB14CC4B317380CC3F537D08A6333BADF76BC48BF90C848FD0843557ED37ABC6E7177EF987CFFD57BEDC7FEE154BFFF3D9FFF8E89D0FF75FF42F833D7D895832D6D632643B564BBAA92DE3D59CDDED66B75CDD63F6DCAB4F597CCD8D372FBFE0D21659840343B5D0EF5161FB5F465995D6234CBC0151D532A5A2C04E3BEDB43BEFBC53A674EEDCB96FBDF596D280CBA3BEE83B62E9CE9E3DFBB8E38E7BE0810774E0B5D290BE639D04F15818F2A024C1E6451E113589D037EC828E5404B0FB7223279E78E20B2FBC207308AA342C3FF42D80ED6586AD34D93B5DEE572E144830DDA9C48B4210D12E0C056B0BBE42C30D34DC06592F1AD63A36338E214F11B468C339D939C4083BD8302189CA6CC0849165C5A335EA7072F69C22EC0C1905E2791CAD5323350D14061687085F99474837F9B91C2CA745E8B0010C209F88E5421F5085B6A72E8B59C42467869E20FD062ECD1244F69F516171197D1179CC326FF042C8A022D6B1B884E0CB94334035227A48D93AB2029E1A48DEAF58B1E28E3BEE90478F821455B765742808240E1E9CAC69E69046F509D8915C66462F9F46F48CDC4DA84ED2C783FB92BB100101F38760369C1CF7C50A0F92A7A24E0A4B02974358569E02AAAC093005FA88C5F70830928463ACD09CEC10F99795BD871C72C8B1C71E7BCD35D710906A694D78BC90C714EF81E1031D855C0BDFB2A486250B542A0DE5D9BA4FA0EAFDA53FF7B9CF3DF4D04372BFB040010F65933823A49AD1DD2CA425F558AB5E513152139C73FED2DB6E095A0DDF74E34D975F76595B738B5B730A859CA50211912F06935CB7268CAAEFB7777594868A30B09811D14962C08682A6D3241A411D22884549CB886130A54F1DACE2B65D8E4C34DA86FCEE42A6E2C5D5EC45F387DC4AA9BF734A4BA73354154DD432A5B3E4560CD3DD73F7DD95E3656419579C8FEDB967617BEFEE9D53177EFC3386A5D276062806B9220033E83B02D5C87262520F7057E2A6E43D56DA58EB84F1E4A04F571DB980FE2262268A1A164F8E1DE709A71CF53C7AD00FB307BA56E600648BA13D09C4BDD888E2316CD8B081602178E4682028D30EBB56C48E582AE4EC82D8C1D6D0B36E8A1DEDC1FD828D0AE1BB60C102B110B18688171A35E28C174BBDB91C193180B745A50A57803507B0D7201464F4F215F6364B01551803A545831828902A8C6C3099819A389A7BFECED5982A841C307C063D0196189D504C27B9C37A65E8D0D788A05588D992C9959B02DA97280296C0201E876A0E164FB2F5152BEC5518AE110BE54B5FFA129009089BA0B30726845B1D77443F06F30399A847DE9596C4C6E554DD44D2BB4ECAFAC013C4FD32DA08FCEE7F9B319653C91AFDFEF7BF0FF00CD24BFAB40310C566553AA99C1C2FA2F6E5975F461601EDD26068A3F92D348AE82459D63A7A0D3681BEEA8CB0231091547ABDC2AC59B3648181255F8DDB13CA0F2B7A9033C7228122871CC71CC29250F5280DEC5FA05A6100A26A4F85D65510FEAEB766D46F01F10779C4F2B9CC838C9F6421E4AA43B1217C771883FA4DE97945F1E0456DDC77DF7D3009119E028642A7385423A24362E9D72A552308BF1B93DA276EEFDE662A639FF97BBDB5E62D91C99661CE9DB7FB1FDF7E3B99490EC96C7875D2E1F095490FBB23C38D0343C980A522F6196C529087EBC4153A2C07CF0210B2E0998AA0B73B26DAC9F5F9F72BB3D594CFB76DCAF7AAAED6A69E7D6B7DC5F6684B4B7A42C5F5A289E8A4CE095991C29DADC9643C998855C4DFAA56174C9D1177BC933EF3856875181C45680C941350EC881C3458A2071F7CF0EF7FFF7B8C9CA53F6349703C3E6844B90B928362C3D2DAC0542B2D583DAA26005305721B0C1540F29097C50C7B3000F7012E2CBBDE8415A762885E69B832AA3796A9924C085A2AB83DBD18987EEE92254BEEBDF75EC871A41AC85E32520D60887218EAC291BF4634831301510B6307924B54820C0EE61E5BDEEB4026DA533A4399F8BC6FBEF9265C100443C9962A4A72D3A64D085C223F83DD0B7FD9D5BA7DC9BF0814D02D80092696D7E2C58BDD3A6FF8DAB56BE1E63300CD6D8327874E117AA1ECC8B2174E9158F16220E8402620C018D66F90D418BCBCF9D6B7BE75EEB9E792FC84BE2D9D6EDC1188A947EDA6D050E006897CE699673EFEF8E3227DF4E22CE66945826CDCB8718F3DF69007FAFCF3CF330DA546CB18031B03FF0911D27DF6D947AC15392D5C5A266CF05BC853920831A4AE070D00A5D053A6D800A890405474DF7DF75DBD7A358C329C13FA0F7D96F4AA0B31F065247239F1FAAFBAEA2A792F2E886CF2F1392087C55CA87D1B52B2D860C43B0019A1073CD15C65D5AA55E79D779ED2E2BCA404D02BB354E80C51ACC360E71A8679C17019AAF6980DC283A3278A2833B60CC2320D41E1911963D1FF99644AFC00A756111D9089249D5AD50DE0FE7E6BA6A93737680667B60BAED3D1D5E199C6E6CDDB2376400206D3A758AAC376E309D3B6E0FD2056894A699189A21165F078DCD8B6D85C800E822B50C7B2A7DA33E5EEB2A75CBFD96B5E14CB4D16F9205A2A63EF98DF6265CC0195B0322DED136BBE17B18DD933A667121165F9ED9D6DB3E74CAF1587AABDBDED622514F24B3E7D218C489112C81BB1FE1632014D99B0CC50F202AF05F6317696AE6B475D27A407B6766E5D2E274416841F8EB5DEF014306340B5C0CFA63CE13A24038A6C99E38F3FFEBBDFFD2E860A9B1235F37044A01E105D572167FE94295340F643558D4BEFC440C7AC9ADE0B17E63CC9E91A7A00F105FCECF9E79F2F9B8D1E00A652270A87DC2164532F1D620F0A861A99C091E19164F8ACB3CEFACE77BE03650EE1A533C422310BA2447824F2278C7D02C5085F515AA33BF0AF894621DD3C769D3C4B394F43C71EBDD09A9A19E54EF0722CADDB25EC1D8E90B3CD1628845702F6800D2C7322F20BF94620A0A189B18E59FA0849249FECB6DB6E73E7CE7DEDB5D700A585D742980A064C0D04EB1272FCC8238F449F6A68DC86642F5A0C81CC67544D4069D8004A63EB4186D45508B586CDCEF9243933A492FE98287C457083EA5597BC4B972EBDF5D65BD9BD00EB53CE86920B684DD637209F244342AD29CAA4914C1B7567C29A8187C4820F62C0117591EB8AB284E983C3162E5CF8F4D34F237A8B9F433A002080C360F130AAC0A528A742F3649808E40164B33F482B784B2C2843D4588575300C01C96957AE5C79F1C517EBE4C3B6D6629A1A170F3166D94EB516312DB14AE266C4F79C54349988C692A9A0264B6EA7B9AD75476F4F3C93EACB0F553D956D6EE91F188E8337659BE0C73BAEE387A7A5B30515C8C43BF14B8868E148AC6718D4D07CE54A6099999DD18E6326F5EEDE531DCADB59D3D86858DEDE896A24EB37A713137C3B2A3AA7B5AD696A57E73C1943A56044FDF97BCD19ECDB9AB60DDBADA6A391451F3B07CB8F0C22846203AF8848389F2C28199096C360C6C70EC1DFD23BE042A6C10EA66FCD3ABE712C0FF6B69463C4AA3BF4D0439F7BEE394C1A6B68B03D613A43E84313D3E0265615B29AD539888389343BECB0C35E78E105147241F441BCFCB5C618EB121E1C48D054BDAE929D0D502687CDAC075E1A78D61A608B725AD474181AE995AB35FEE66411A2C74431C1D70DBE3F16191BDD292D020EF93B8C6EAE6B02D1816094C30166C8B3A6573991E05ACCB7279E78421E3C69184626FD75E31D7727024516C4A73FFDE91FFFF8C7084FB11787AA1BA4DBB66D93B50E294FAE2BBDEEC3A857C1E8B50E14106489C1606489006B481A2878A62AE4BD61A3151A11E40EC36C3351CCE484CEC8C6C2B791854B32D5687D073F80CE16860A2F0D6070AC69DCAF1E149691400371FD1861FD04412630291063D1CB4D1AEA1FF529E23E247C002486D7D65F5C3C7852A79F7EFA534F3D85522F8C1604D7ACC9C27EBEEEBAEBAEBFFE7ACC3331BB080AC99F5FFAD2971E7BEC3178F10D8C6C6AE7CA18BCD199DD54D8430DB246670C34B44A3A4699080152E3BE1A34B4D8F5C3DC3803FD46BD496DA95C0723856D0A83D6E38692FF7CB3DE78D65169CB4CBA7EC2F333E2134463A6E7969DDAB496F6F5FDDDCD32FDF1C4D9172CBDE2A695D17472A85C94E31329B5B5207BA73357758B7EBF327DB716F78CC2F0158C00E7697962A9076F443B45AD642416CF95FA12095BE6D8569661566A514BD55CD30DF8E8BC7AC9B18A458C58C4192A3A1D56E2E039C61CBF92DEECAA7A462490737624B74F53A57F8FD44983C6A6BE989D4D64FF61FEFC427FF7EE07ECDBDDFD6E6242A6251D8B140BD5217F523AFD4E77E29ACF7D5155BC44245A2A15324DE9DC505DAAF87F05537147E051364060A03BB14118A0A69D3A9664872843F41235F07BEFBDF76F7EF31BA519F57E9DFC0E099EB1D0A5CC24C1C647A404068AFA7BBC28CD0CB214E831196C2AEC0AB2740169C3241535012321FA05B82899A45ABC78F1B7BFFD6D16BBEA452EBAC481CFCB6022E5293139B47A1A8ACE1A84358A42450A8B0F25561B922D74C0E191405461E70342C0DCE629A79CF2F39FFF7CD3A64D3A3E4A7F21A5C9948BFC295A938456B829F80ABA26934F3006642C0F3AE8A03FFCE10FE4A830422E235970C82F31CC0DF356BE5DBE7CF9CD37DF8C1A2EF90A2643432317BCE4C6B15221C59025C3DC62416345EA959C08418CAA09E425478A7D27E794F100C88F08EC55575DF5FDEF7F5FEE1D31EB2F7CE10BCF3EFB2C7C02D826B87D56C9EA3B8DAB052A908A4AD6A4AA9B11348D8139619A8BE533B29780A0951BBCE8A28BAEB9E61A0A7D20CA49948B2785B4A1DA391BC491C875B10B98EA44A64EAF005721F30459CF6094C10386C14B9E286F67DE50D46FC3BD43E018912BE040B01499842081951A177D38AA2668696AEEED0BE25453264FD9B479135AD044239A46317C11D63E34812CD19A4ADB66C633929E9735EDE658DCB6C497AAA8AAD7D136C1F1BD8DBDDB6D2BDAE75665B2DA5B9BDF1B70AC4869DAA4AE6D1B7B4A6E59869B8AAB42599555CC1F5604813692CF23C11B65A5CAB982885FC3B2DD4013E444478803E1CAA34D58663A9E8845A262D1966AD57CB55CA856BAE6CCC8A753850EDBE9AA58ADDBCD54BF6BAA7A43F38911A36CAEFDC49E93EDA1DC4473722411AB1C32731FBB2DDBE6E4ADE4D4F9ADC9FEC1814D35B9CE8E8F1C6B9A691B43A5D9D9AE13FFCFF1E9543C3F546E6E6919E813DBE2AF048BB0932061E9A8E13D7533CB14882B45E1FD587D866919C85294F7A89EC362C023009E65C9922577DC714703E2BC41CE20C1030C243DAABF8B1AC00B3AE6AF8639252CE2EF1004C4B762220819A49868D0017C4FF101A74CCE205EC9CB2FBF4CE1D2A009860D99308CC05D3712DA848839FA8E02A4DC308FE4E142D0003D641A269AFB5FCF53C12025FB3CFC26621C1B6E50856C9A4A33BAA196108E80A92BE344E0184CB074DF60095E79E595B7DE7A2B520E2AB46DE1CBB3601B3912A64348D08438839EDA41A81A2A4AEE4244A71C29020B7305392897BBF7DE7BD7AF5F0FE1B86CD93294D2E0F6297446F509CC3A61323C5C0A14C6D0A04E90DA39F6D8637FF9CB5FCAF9F59A3215A64346D504B8960C550626125FE4FB21871C221A054B9F493092A840BD19616B238008E457F22D9690A8167860E49CA09E63321CEE2F5C0DF96AF6ECD97FFEF39FF120444DCAD359B9722580BC8C08011E8E9FD35A04F0110F1A8005DC38905D887FE2BAD0F1C8AC401F40311039AD63BD74C2AEB1B02B6369026F8464113510D8011E3FAF6F4073B8E3B7EDA826DB6EB1A26931FB7C33C8E9F9725F155B0511959E425F7B6B575F7EA86552D7DB1BD6DA86D99E8DF70C168FFAECC1BF7B6DDD87BDB901A35C4BA42BA578CCEBF1EBD6BDAA730FD53541F0AFE89B488007327DA358AE887F10185E35B728C3F1EB25C466FD5711C3AEF9AEA7FC39C71DDB53ADEDF08A4E7CC068EE8BB6F639C9821B5176BF994CFACDBD474D8915FDF2CC6AAA32A14DED3F756669822A5A533FDD95ED733A376ED96696B7F44CDA3D63F524F21BA3552BE3C4969D76B12756932B0FA53537241E4045EF97A9B4C035042E9078AB56ADBAF4D24B9148603B5550AD80E3612C096E6AAD2F18E5468F23EC685C68E9D2A5B201C9F936EA6365AB35D0EBA292F4EFA50C98B43710A7A650A388442B1C247F100DA061A546E3C5A521AC8B75FA3584638F4C3350BCE2785C11A454CCC0C0EBC77CE9E065A5B594D39F810AC9E27951C4CAE5BD987822917124108734F4483D0679C778D4481DA0EAAA82E962686C62818871E469C95247D1A9E3E57918DA9661A8C0565D7CF1C577DE79A76E8A4230E9F42F8CADEB04E35042A0D885738A3494DE600BF8D4534F3D559CD6B56BD7323D339626D01F1CDC29682384BF8C909253FE947FB16728F475D361D4E810CC0E3983EC1691AAA2A256AC5881EB82BE42F6214AACF5FA7B4224E90F417310B4CEBE6C50C07810880B4179CB27E249DC72CB2D6CB001B271DA1F206484B6031523226F78AFC2ECDA25975CF2D8638F81D807EEB5133641C3AAC0BF586334B9E45EC452915B468008315F6835A5B5FF344268EF38AF064D306756D00B45E6537CF1279E7822F0E4EA48D0202A14AE68F10A443F5B661032CA1876CCF3A39E93083A8CC5A676B44FEDEA9421BDF4D26F02F7C1329BDA260C16F3BDF95C2C99CC3465DFDEEA94D4B683E7EDF1E63B6B9CC0B5507ED42CB9A96A342F0FDB0BC6535FD5862800B3DE49D2F59CA8A8826CC62916ABCA0B10328E574B5B111941D57713E94CB95A139FA190CFCBCF63C71D5135ECB2EB3BAAA2AC0123D3EFB7E5DDACA352393594B6924EF6A323A64D6CEAC9D566CD98346F527A5EC7ECCE786553FBC73F7AEBB74DAD6D056BC2C4EDBF77529354B21033637EDED9F8E6BABB2F5FD594C8B8AE512856945F450099A4672A3479B12AF0EC98F9E78ED361AFE36868D8F2B2C141E5A9EABD0AD6AD5B47D30D9276E2C489E20ABB6377DCDA638F3D609D005571D45147FDFBBFFF3B19DAFF2E9A4085642406731A68EE1150CBD671A94A8B575E7DF5D5B233292E4746848C9DA1D986065D47FB273909706FC4A88C940846C89EBA60C102B97F62A1F4969994EC73E6CC79F7DD777516558A303E3098B1B8174861F070A107217489E8862F7DE94B3FFDE94F5F7FFD7564AD172E5CF8EB5FFF5A8C5C6450D4080A5CA5F5E560D9046B593118B637A24500B27B8812F2BA806B014543F2AB279F7CF2A4934EE234EA55DFF2438674788019F63C82B5ABB4B2F506B42530272044432A42D5D38CF25BA0E659E735AA265061EA12F601E43ED1E8885FC99F2C26A053A876465231FAD4A009E08411998E88A5D2E290A214BFF5AD6F91D1847C3E5815BE560FCF552A5FCD9A350B4809B286786117396C7B9C0DF90F125B819C00EDC599E794B942F44F699D216411423733D08CFA09B533240F0E3ED209B86B71CE4403C9F9E518F69EE3E644825AEFAFB7ABD121FA0441D16FDDFC4F2682C054C03E5DC70CCA0396951D0DFE332386E97B4EB3B2DA6329318EA28EEBD52A5515AC9E163B55704AB367CD7DED83772CC876DBCE39652365D73C4794B2EC8FE68EA6C1DAE0967E39918A17838B31866D863E4139DB1671E2AA56A8D506E4C3B41DB34CBB502D64820895E578BE689AFE5CAE2C8BDCA9886E2AFDDF794624661929C3B14CC7F162C55A7349652B1367AF1311A54AD5CE9E7D67344D147F7E52C7A43D66344D9BD13AD43A7F92DDFBE2867C675BF3E4FCDACDC5F8DEC9A1E73E34E29954D4B0DBCDF8B55F59A20A5E2C623BA672CBC3911FD813F0CB413730AA266888CBCBDE07F5F73819606CA8A38F3EFA873FFCA18E2221A1327A27B09BEC58E7C1E6C5BFE8E5A957F8FE2F5F7EBDBFC2DCB9738354920A7B9FCA401F7DF4D1254B96C825C5B2938BA19DA4B848B26AE983AB9DA34314FD4ACF3F842F484932EB928242B70D293BF02D508C726960A11ADC083C3939E690430E79F5D5574973C45335D4F7EAF84823E46436C256398CD9B15E01A8D9134F3CF117BFF885480182EB75122115968663842456439D04DC1A39C959679D75F7DD77EB1C647A4F37B5B3FA44C9B85F270D47212E297D9871E554345042AA30B249BF0A50514499004B87E54E9F4FBCAE356BD6B0D5351BF2A8B1A34358CA90957A3130FC124870409B49B8AF731A420A5363354487D0B203D4EA726BF3E6CD93E131D16A84E46ECC132086CE6BB1A077DAB469F2861CE3E263115064681CE9F8A1DE2F5E857D8A40C0C5BEE764045261D12F1C6A20DF3EF7B9CFFDEC673FC3AFD8615B85813E8474597E8C1013E25AB2A5C566C7CC634DEA1C993AF72A013FBBA409A64C9ABCF1A3406F1DF999236525070BD8F72C3374DC8D204710F38D84AC3ADF1265D0220E99EF455C2FEEA98465C513B6C8BA482CBA6D6B773495F8E2A2937FF4C20BEB3FDA986D6E59BF75536773DBD040EFDC29F3FFB0696BDBE4C30F3BF60BFF70DC5191D6E6A121D34A0E79CA777D00D4032D64D5D3D79DB1A1EFDDFFE8734FFD6BBEEFDDF9B3A6F46E19CA97F2B2A0B276C4AFBA35DFEB6A9FF461F7F63EE58A46CD76B5973F39A5EA394AEEDB49C4FC949CA512CDF9D182EAF8B39AA2D450E7ECD6B8B7767E36352595340FDA739FB60533A23B3EC84766A5FAD6D95EB5D74E76191F14B31DB9C29C753D5B07867A67A45AEE3DE31C713066CF9CB676C34651680DCCA3084D8F151D92F5205AFFEDB7DF46AD80AC52B1F481911BEB716093225DA73798C20AE73EC29BB1A243A8216755300066FF030EE6B15E8411FF7579D19C69287AA48B7AFEF9E78BFF0B9B4BB7F53CAD3F972E2BF12F2AEE6070E1927AADA3FE135A6A7AB69986AD5EE88F93C8FE14738C51293D15E9870D0B19E5478192AAE779484044BE1A44B7911EC78D4F9E3C190D2298911EA909F409254D31C48A2C91AF7DED6BE245C1EA94E522DFA24681016B6A7B4A673DB1494E7915A28F802FD67D02D26B8F8A77B6B5E6BD78E40807C9BF3209A09994ABC8D8803745C21C7A7AA426F0C36E59702701EAE5A51B06A0372E05C132EBE0C6CA1843ACA3A10A7C142C7A92D7C2B1434282429305F4380F2647CEB368D1A2471E7904BF65A4556FA7839BE2EA421049CC3771BDB92DE10321E52E579481A1F10B7999E4AB030E382024E51F7EC1B4C2CDA2C6C2AFF70B445339C0FE70069DF7102C2CF27EEFBDF75EBD7A35597239EDFF339F20168D55AAF5F2DDD0338828D343B1B06802C3CA2833AD6C79938D060B3D2EBA5C8C5715C46DCA6EB5E6569389A62DF981F6D6D6EDFDFD55DF6FCA366D191ACCCAA248A8DEAAE7659BEF7FF2679F3AEA6335E5160737753575D611430AA902AF1E35AA4393D4663792B1D4EF7FBEF6E48507560A0349654FEA98B879C7E6492DE9B86F67ADF85E7BEEFD978F3E7A77A8779D939FB460DE50675359E51CBFA4DC48C26BB654A462146AD64034E665E675ABCA14E3A3D53DBFB5D53627387BCCBCE199878DF4C4EA87AB0B6632DB944EDBA5B77A2AFD9BDF29E6B3D1894D03C57CAB633C7BF9373A33ED471C76E80F7FFEBC1B24685C4F23B2FEC4273EF1CA2BAF20B63C3263BC6CD932B1EA642FCBD2BAE79E7B906A1E9FADA4A11E9EA073F807F46ED57F57E188F380D50A12E9BF0D15FEED2F9C30105F0DE03CB8C328FAC041E45E268BBAEEDD1345AAEF6A7D76580EF3CD6F7E531C0BA5E12F47D504D84BACA2D4859A8E1D22CA1348E106EC90D2322D7A5E01215704D659F20A1E21E4EE264E9C08A98D181F68FFBCF0D5708380C0C382008C470F029A21A3243381175E78E16DB7DD86CF093D52210C89A5CE9011A8E7A013AA7322915849699D41553DD8C76EEC2C3502770502389C4C028D91FE0155A4D2480A47F5099052422A1ECB91405258BB28AED129921AEA18C6419182565685200D6C1E3A52729E9B6EBA69F9F2E532157A7448C76B3269CF625A1572104170336B85B9220B02D3272A340E90129401104A00AC043E24570AFB71022D0EAC3A6AF58D904F1F850B471E79E4B3CF3E4B963AFC8B5B907D71E5955722CC28A7BAE4924B6EBDF556E86CE2E5FE161BB04113588659736AA964D0C9BD5A13819E44F1574C99F51C6D9021888B0230ACB46F270CCBF4CAA2245266241D8FDB11253A20572B956B22EC55A6A9F9C3C18144C4760D355875263535073507B9A19CB2CBED7BFDD35937CF3FFCC8B629CAA95406760CA4D24D810E103D2312B69E8A909514FC6BD7CC92FFE6AF9FBB73E5D993B391BEEEDE9425F2A4D8D29234F29568CD5F306BCFD5EBD7BFE7E58B4973EAFFF9E48E52DC4BE6FD5449F9A65D8E1B41A3B3B21F29FBB56C25E6AAF6DFA96755C7642BB73DD9D63EB967C7FBE55CE4BABBBF31D092D998DF6AA592D552ACEFDD0D313F63C6B6975391CDBD3DBB253A26F5798FAEB833198B171CD15CAE2E49E4895C76D965E201B006BB0145AA4213136201BEDD381ADA080B2A172F5E2C9A833866E08800A83BE69863C4F218BFE31683223AAC40FD0D58B2BFF1C5C21403501C08239A75B276E592B23A656A2EBEF862985D400D4212B14B14636D723C3B7EE06C7ED87923A038AFFF1C1B8FD25985D62EDB54FDCF3ACF9861D33B4E934E114C2E1492DA13A30DE10B682CA23A689283DA2BB042B2CD1670FAECF3CCB00C7B1082260132DAA87701945BD3A5122C56BA1DC4B118218F0D22303366CC20A782F81622FBE473F131C981C3E2384A4FF2CA354478B85C80B682C98FF160FD89E2479F32114037DC7003E1138853136607613AAA868075C3FE42C84BEB4D87705FBBEFBEFBFEFBEFFFE4934F623C0D781E3B6C8CCCEA5924E5643CE08E66B89F75E96467535A8359267211B3927F45C85E71C5156443C375E9C1B03FC448494ABD28AF7BEFBDF7ECB3CFC6C61E07C74DEB92FE341D59A83742C2A8BF896CD67B91B35AD8087B6DE2A5DB349C289F0DF2AC40EFFAC8EDCB303C7F988A43B695659BF5B22F71114C71CEEAF55F533ABA4ABD7DF3274E36067356B198F74BA9482A21CEB1EFCA532B3B65F995DC726F292F33B5DFFC05AFAEF9D394A6F66A4DD49B59AD96DD8A1F6D8EAF1DC89F74DEB752938FE9EDCB98C57247CA1F8CD69BC6F8B2B3C40250E542251D4BCB32D9D2113772EB92836FFFE8A16BDD818DC9881AAA297100271A5E4B32591B2826FCE4A0E3BDA7060626ABCCFE9D6533512F45109D9A50665C1981020BDC1A27938E0EE6FFDFEBD3F6EC8C7EC6FFE8EDEEB6816C6FFBB6CAB656F5DAC0D29F3CD436B4FD65A3BBFFDD5AAB39757BADD21CAF5AC54A7FABD9ECF8FDA581B76E78D0965395AA89B061220AAC8CB0FBF1381296D481D87DAC8D059E87AC3E2AECB33BEA4960B22044AC63C3B072880C84F9AF7646D2CB45653DDF75D75D08CC508A8A7040DB5478AE72069DD551697573A376B6C1E23494D67A173B93F556723F889FC246139570EDB5D7EA4D91C05C06F30D581D4816987E689F023B11538CA018DA7B6ED8B041448FE861C02B8950DA555D6784B566C8D9C21A85CD4B909F0AAB5B21A6A166A90CF5A4909E1AA2B7848A274089410BA5335DA3720F816998C6F2E7962D5BE4E722C745B0E26103A704080A4A16014636C3D648884BB2FE193DD1CCB02326560F74AA7CF5E0830F222C2E42500E1095431E0B3D550399CB6ECC50DEEC884BEE11A5F56340CE1CF205ABB6A1D5418326408581B83B77DC7187DCA9DCB29C1FADE5F0D0C918AAB74340A41E159EEC3C81D9E61E90539D7AEAA96232C30940B30AD86218F6A44993C0A047B541CA3CF91CCB5D7E8B6D43023B8857BD287D544D408A0B39C9F4E9D3D7AF5FDF80251B6991186197247A3C5FFFFAD7BFF39DEFA0F4812566721EEA6F62E1105382FFD4804DA08EA7AD40E70F8A6A58FD9BC17D817D42FE8BDA61FF9C3A2F50213F4C4AD3924A17CA95F6891D5F3CFE847FBDFFDB53D24DB5FEDEB432A29198E3E3D2750345B9E26105FA241A29CBAE54664579692B118BCB692BE55AE5C87907AC5EFFD647CAED6B9BB9FF1796159B26275AA37DFDEB93B5298E57AB54CA56B41E7350A2AB0CD12C33AA8542CFFA5FFCC7FD1D914269B0777236512C89428A24DD4ADCF49B23A9C30F3EE2A72FFDB67F82BDBDAB929B145C3940367931DF8A99967832B66FD47B93B989D21F57B7364F9EB7604ACBBCECF7563C9651992987B5D96D76F10D79E8EE99DFB8ECA52D6FA7DCA45DF36AF1B253CBC66B7E77C6B407CB6D9D5DBFBBFC9EA0E4DFB3AE5C7EE58D37DE082E199D4E7C1CF90361429BAC81F449360236BEACE7C30F3FFCA9A79E1AEB3CBED6D017FB0E8F1E5DC1D9AC17362E491865251F7DF4D1725A9841101DB367CF964D71F0C107BFFCF2CBF243F970CA9429B2F209736AC82C5A23BA5DA2BF936C2E033D3F49778CDD887E4F84E2E12C0823C8B740C592F312C629C487DE32948A94B46E7249A84A2440D0EA12B136E64F76D527602DB18839628DA82D216749B74238E9484D408A28C8149916D9D294F80DD133B91636215913100E227C1E825E0413940494CA75D75D27E212447530CF79177453BCB0B19C11F662C3C4EADD7D6102CB5758BB2A04AA36E4339466A542D18283F39C73CEF9EE77BF2B0F054D9B2165640E91A5F7425E657970ECE20916C9B1A246F27EC9922562EFCBFCEBCD1AC12AC3A8944CDD19679CF1C4134F6CDAB4894690DA996FC7D01A8AC92C9D78E2890F3CF0007CA954FD85966430386402EFBCF3CEA54B97AAD0B904308C17856E90F3C016C1D3013CD7082B4EC6D204D8E4AACE318709FCE77FFEE7175E78414FFD8D2A2954D8EB9C6C1946487DCC7C7203CA0B2F649874CC95AED73106FD7896AA0E3F1743F99A15202E00C870E2D158BE906FC90E73231A41DF7A39C49CDA39A97BEBA60E33D16C5AADF158D50B1673D5A9065D25C5873087DBAF4612B1A66C4B5FDFE084B68E801337B0EECC4C36F50F877EEAC7FFEFDFDCAA5351463A36B35071F26AE36423B223C881977CD38F6752857269A014DC70269EB4267479B572F7F6CD9D99A893AFBABE9A6007F224617B96E81ED7C99AE9B219D99428E4E658FDEDB574609B2A392CA84E336DF17882E955AE953772AF95DBF7EEDAE7B0793FBEED87D16ABAEA55AC786CCAA78C9EED316B7366FE69C7960A7D9D139AF3B90FED785FC1EF9C986C7EAF564897E54A91DCD37FF8C4C70F7BF395D72A7E41D6A1DEDF14900DBD7B84FE3243627398EDF0DEF4325590CAC02ED96DB7DDE0C28EAA060E38E080D75E7B4D695037550788CBE72FBEF822009664E8A19B2B76F38A152BE442B24EC87E0199869836541A821690E786D6BDDC08ABB54476C19F26290B9AC418A0B030B4CE9C0895C0CDD70D3A021B20F82EB8E08255AB564D9B36EDFDF7DF47413262E2B24065FB815554D79CB27B65C4EBD6AD23C711B513A7F56FA9A01939B39056627F8992473705191E4A10C0CE41DA58DD1783D631EAD500C8D332CAC13180531E9A4CCEFC99CF7CE6A1871ED2C3503815C362BA80A3790BE5216A152252740302629014609220212833A2D43132C9575C7105288E09F005B61D2B4FBE625BE391691BA83A128FC84BECF7DB6FBF5DEDCC14CF761410317BECB1872CCD575E7905460A25DD484D4026741835C8E18320963E964864B91DBD619E19126DCE9A35EBB4D34EBBE5965BE47688B161AE1B382E2C2A5420CB8DCB22C6738487CE2A71380A34BAB133A1E42046411ACC380C3B918DA50920A9E1DAAAB02FE93836231B59EB650462A3C9462065A99EB1A02F8E9FB33F018C155F6B760487CFD2FA59CAB73C1E1683A77C5801C3EC61A532B256A9447228379488D67D3ED749066970B31E947326669A5BCC48B45AF3CA05CFA807A37C5100812B601A2A6205EEBBFC21BE41DE29C7555CBC8E784226B95C73AA1D9D9D95EE6D535B9BAA85DAD662BE33DB3130B4A339AED695552612ABBAD57ECF9727DD35B9BD3757D83E5444E1D8C489E95CBEECD65CA7EA3707B965372AEB2DDB1CF1D496FC40574BD7FB5E4F6D41725B532E5B0BC6217353D75BF55AE840D5A9DD5B3ADFF8F76D6A7EF4139F3BF8B757FD52E52CD5EE78057BE16587FDE8B71BA2AF9792A71F952DD513B946A935E36C2DE4BA92CD7FCA0FCC6D9E5CB3ADA573FEE1EB175FE495ABE2B810324752A07192B17ED8455C854585C84BF9758618790F7F94BB7E1CDF11D124EC5352EFC91866CE9C290F94EB81993CB1FC88A1471A03B62CB1E3F6CEDD58F510B1AF352983B521B770C41147BCF4D24BBE46573E5C638C200F94A1086B78D6146A9023D8FF0C19EBCB9A616E9911FC96C903EC28A467194900F5B1FC70DF7DF77DF3CD3755D8EE87B99A5D7AE9986B7C420C38A7030A86512F1D1C05CE29F9FCFAEBAFBFEAAAAB549D0E5E74099054E4E751757B1C8E21702608B340D6408DF3FC3A4DBC18CBB7DD769B5E5E08662744668068024C5806031D00BE7E1516C7A1A38BDC2398F8CC7A3F58747AC0D90E3DF450B9D07FFEE77F32B34D3095D292C048DD934A0F2407A8E4A25402A788DEEC1BF12E901A8EE513C0F416C1B778F162717A54D81148E78480A004F7B2AC1358F408EFB0DA4387D8EA99F04B2EB94474BC3C56087D64DA116167BE0AB3EDD799FB54E803C1E517CF065E149A72600FEB68D451350111B1584B72A48CE1A28B2E1A6B89C2B2C16C93B805914FA49DC01660ECDCFF12D121DCE682050B4410200F375213E855230035EDB9E79E6BD6AC210E6A5813F8BE593F612A1647719FF80481AA1E1A8C4583585F5B4B73776FAF6DDAFBEFB5CF9AB756B7C61276AD6ABA557718E763D4CB81956802DBB4EA1B471EB1B7FBDC3DFFF4EE5F9A92A2988B86E93A4E90A8F02BA5CE647AB0982F29DB899B76D21C182CCF77E3384F45793B5425164D6EAF1613917853536C53CF60C5527E345E28976774B6177ABBDDAACA04CD898D54349E8EA537E4BA7B6C65ED9F1CECA84502251DF8048148AFF32329C4BDB62BFF8396F20CF7A67F5DF9F53DCF8A38916A62C852D9854BFFF9C7BFF9E34D272DBD76CBB39D66D4AB66CBE5885FAA669B12FD1BB6362F985DD8B0DD8F9ADD8FFDA4ADB3B5777BCFEC59B3D1B30F203DC887F171FD483A8ABCFEE8A38F1AA2A6480521DE024134162A54D6FC51471DF5F4D34F1B759A67A093D5688431A04405009A3F47E0C808594C409E8A86A0042813D7D3300C3B6CA60D0909924D1ABEC35CA48CF38021560E92CD8379011501BA637FF39BDFBCECB2CB4013AF34C09CF8359FFCE4276169E232043B02233F6AB75E66C3A8FDC661621AEBA587771020863C5561974AA407600692044227DD832638FDF4D31F7CF041422D797E766282845ABE7C39986D0CAD14000A52E72B655703B1E8C559A16F216A06CB48D6D3860D1BE4F8BBEFBEFBA69B6E426757A41664FC3ABE58960E624122703130594024A626881E7D7A1B604E9C67481C00DA80443AE38C33646CBC84D8F2F8973964C06600AEE58A1F155D0AC751DE10264B51CB6240CC12CAE5316691CBF2091B591B1AF2987C3E702F64B4E8D583740EA216FFF66FFFF6C52F7E114C73C898C9E5E48EAEBBEE3A64833078A5396A447629ADD46EAC8C31F1A6322DF2E0E0228FE3B3C23087F642F0170F116B1B73D5401C465B448515A4E05B1D353AC48C028914E578795E7CD60136D4AF0B4ED4F65787D90112B1B8F80451CB46DCD9F0BD9A682CC3CAC4934EA918555E532C1E313C6C40C7F5A2864A0C930E89E9EF28C36A6D9DF04F471FF3DC733F91AB6F1DDCD696CCB6B4346D1FEC8D146BCAABED9999E614CB8E5B6E56B1B48AADCDF4E772055105D17464FB502DD2627DD0EF669A54AB3F61B054ECA9156DD91A6E4D647C2AAA8C9ADA63C2C4426E508CF4849598B8DBEC17D6AE1E9CA4E27BD8AA8EBC33EAEC45C11D2B518DF56E7D7EC7F697B625E676DEF5F86D6DF9D44173F64DB526AEFAE63503A581A77EF8A3EABA5CE7D7DBB7EDE8B6EDB6A837C5F762C9F284163FD613338DAD439D53276F7DF88703437D3255E2DF106602F93B3EA31C1C3E39E6CC33CF1431083BC30CDB462A0D12C9CD32EA79E08C32BE22EB107E21FA8EC1100761017D5C94D4A0950850D1A4F1D7534724725761A444AF8262E31DB4A71429044F08922AB051B84FF464023F945D2A83139945779E5DC2294345E81F7FFCF1F7DD77DF934F3EB968D122A847445A00B462D11384118245722A6CC219336680BC8CD6EB2E69023DBF477CAE0C69FFFDF79749FCCD6F7E83500C75006C2B9D491C91385427884895C1C87BF493E10CB217047EC5D25018A472EF175C7001A4869C448FE9AB30AC4F2317A63DE1225463A0B8C04A42E131A2F3BA2CA3BB83CA75511B32C30002410FF9A335CE6CE057C178105BC013A46447EEBA6186C7C70E6109C245057C080E25D6122B42405F289FA0C050460EAD26C7070095FAFCB0264B9F3DCC9B8E1905B00D3C0DA2FF60B8E05F991F44A5F06481F681DD240E289A83D3D305926D2C4DD0001B03E7287BFE8D7C6133A3332B541DB8724F39E514F1C4E561E1B1CAD818A244B4C7D899F58BF5316AE78CB10AF30A5CC34C230F3F716358ED8348289318A66535EB4DC744313AF59EF5F120F7D8924DA5D77FB86EBF797BEED8B4C9706B8552B139590F48BA9E6DA8782C16B54CCF09200415C7330D7BF2E4A91B376DB20DBBEA97EB419A20B2B3E7A41903DB7A93C9F8F67CF79454B35BA888ED9EB0BBA2513B5F14713B988AB57EF6F327BCF8C66BBFFBCB9B25550C6040D964BE5C10E19E8C25F243A588652E9838399D0CBAD2EFD8D473CA994B6E7DFCDBEF1943A9BD225E3CA84990B9B1029FC0F45CF14464B1A9EA966A536BF3E0EA813D0F9B77D95D57BDFEAB3F5B656330BBF53FBEFD93D2BA6DDE81C9D4AC42DF641531ADA4D73AE4D422DBBA66374D7F3F976FEAB75DC3EE7FFC571F3BF880356FBF2973230B432C455061633EC7C1E973139D78E2890F3FFCB0AA3BBE7A0B2F3C05C264C6A90F602523AD22432B70630C9090212684E82932BA2847E2DB919DC375F1A8428C25C0D3B85F4432FF6A6DC09B40FC413E1213F5FAEBAF975393E34C85E938F0FE533AB0C39719767E8047ACC36FA05774C7C708EB3CD977052CC766D86073642FF5FFF605B3541E920C12DDE6107080B854F5CC8C588EBA854524064160727579239EC15D77DD05852F1B1BC5537AF49F3A007F820F47142C818FD467A8BD82EC5EB162C5D5575F2D2B4FBE15EB95D607C643DA57B5738A1F6B14484A997014BECA3110E8801EB13C4D2FB9D0278715AA44AF4293C900383F725119E1B265CB8094051306C85874C530AA26603DA00A934CAC24D70BA1BD9DBBD843FB422553A819218527CD76AC4910D9E34F426F09A1912992ADB574E9D25B6EB945C68CDD0563878051199238738093CAC0B0267568D9484D70F2C9278B0B8F8728C7CB7E9337E354123156AB42DE21D691B007061967F1A71EA564B2CA0F3B29A9112852C20AD87F7BA7FE1F81F90CFB39B8A90BCE3DEF8E3BEE08347D3EBFFCFAE5CBAFBB0E656EB66988948A1A762695AE958A9E5B4D8BC7E63B1537609E88980AAE8568E34424706EFAF2C578343E582DB7C49A72955CDC8C797E559EF004D72F794E5225FB5571D6B4B6EECDBD1322769BD59C2FF5C858E23133928C6EEE2F374D6E7A7DF3603CA22AA98448F65241E4839289B9F8A20B6FBBF56E794A56AD30A373825F76B60D0C4C9F30E7D59EF7FBC581D8A7D989957CE59A2A582D9EEB8B1751AD28A7A6DAA64C2AF56D715E56664CA5174EE87EBDA733357F5B748DFA73AAAD181F3A76AA5579B37C74466DCA4532AA1651B1FE8E6C3931146B99546E3354B6E7911787867B7BD5E0C601A4078C3BD8D4C7123258CF2C97515A1C18D4F140228D9FEC440C8735E4CC5419F59E04EBD7AFD7E9E8E50D42AF0CB10033065380B855F822483960006A04DC80F410DCCB04E90C2F7E9D4E8F644CE8BAC79DDF0047D955493DEA8BE935A2B671576C62A36B39CA148833C64FB1C7987683C447F00416BA0805CC0ED9661CAD613A9F0D72E3DCB1CC64181AF39AA575E524F2523624F2F8441DB00A4FC750A1D10A742437FFE38F3FFE95AF7C05E20C7724CF52C4F1CA952B81DF2565A90ADB5F203C7243FD056B024216528FBC1A2A54CFA4C266551403718C7A613D21BC034D00B3E5D39FFEF44F7EF213B92911B2AB56AD429A818D5674DB04772DD38E6A8991557EFA4BAE7BE79D779E7BEEB9841A03D086FA03F9131D7AE54FD9A2DFFBDEF7F4E029560B8230BA4C9437F2DC59B622D38B2E6C88FC8ECFEBA26F755D13C849162E5CF8B39FFD4CDE8B1E42A01F0EB59C563E617508E303549CF215CA0C496BC1C5833246804FF4381EF23108CFCA02B8F2CA2B7136C04B20A1D89D0DE2033EDC58DD10793B78C3BED0A958B08A82C4B21510CFF9AE17374D99B28CA78A4E351E54A49979B776CED95F7BE8D1474496B435653FDCBC3D6629DF5311CBF01CBF2D9B1A1C2A4C0A982B545C5931359C6496E94E66D2FE8EDEB9BBCDF968FD07D12060E52A33DD1FB5D69607FC64BCE6B99144BC7728277BB56342C7E6ED3B5AE309B75CDA233DA15CA90CA4235B2B855CB122032DCAA8FFAF526595F4927EC92CE5CB86EDC59B632AE27AB5BF460EB16161910C54FA6AA5683AB1C08A257B8B7F51C9BEA6C9663C95E8E9F4931B8BB90E99888CBA3E97A9A672ED99D61DDBFA775D8E2197C9763AA8F332C226837E9DD180F87DFC89ED00694EBD3E6BD6ACB56BD7FA61B7039D346CE46BA7004E88651867316383631D92ADC40FB90674731CF63DC4852CEFE08CB2ED518C404F1F452BFAAA6AD030FFFB172BAA54E8074110207242C411B6BD1F36B7D16B4028EFE0E383BC85D301E239E23591F727D8D40C1BFBB187A20AF58A1F36785261A1202C35C470C02F0FE989E42A42EAB2F3757633762C01B59CCE6A8007097E4DB959F4449341227807E27B244E6923CB9132783005D1F920EC52D4F6673FFBD91FFCE00772E439E79C239620B4025046440003DFA6F76C414A5F6F1F068CBF1C230323FE0CEDFD2001E5577247F7DC738F886998EA22F56424487CC9CF11BC3676E62E6D78EEC8D3CA854E39E514192D16FAB469D340D9088F441E1CC1A6EC74462715B7C0E4D3D1471FFDCC33CF408DF15E505C0615FB3F606B5075F404D8E5E0429167822D4EE50019030B9EA12D60D91D73CC31CF3DF71C9D7D19001ABBC2B1D6E17DBC34717EECA04004361E01C3116C34364E3415AA82CE166BD6B2C9D4603E17B123D3674CFD70DD7ADFF3AD3A2184389BA948908896ABE47DB7ABA37D7B4FB7680CF9767247AB53AB0DF4E726B7359787F2F99A9312A15147F444827CAFAC51A3A644191846C44ED79C21E5CD4C3577A69BCBF97277A9B0CD777B4D77875B811F9D48C66AAE93AFB81FDF6FDF57DF7873A2526D2A263F1F88DBDD81A9EDC9602AA64AFF6332972B59BE1D8FCA462B5755351A37ECB8E18676AD9E580A1E77C4C9175424DA6227DA4B8EE9C5AA7E6CD0AFF6AAD9B14E5133D3537EB1A5B26253C24D953A32A92DDB8ABB28C7FC7A776EBF4E0B6684ECBF6AE7EE6C2866E42AD5917278B2865649CA0FF1669CFD8237A460D013C2631D0FC90944A2DEB2945A078638FEBCF5D65BC5F230782784030239ABE31175ACFADF4B13A8BA58C4CCE2FDB1C71EFBCA2BAF80EE51670BD059CC0CAD1FAFD2DA41C8FBDB6FBFFDF2CB2F6F6B6B033252368FDCC5F6EDDB75E38BBE05BD2D98F3B088A9DB79A7DCB194A16CDF06DD801A4536F011910186259DF60E9CD570DF647AC9D7E6878CE7728F22EB45B83CF9E493224410D786850EDD8C56D4B7DC72CBA5975E4A5B43EE4BEE426E50E7A783C182781742EA40BCA83A364CCE0C2E23643E90C0649361E211E5BDD8ECBFFDED6FDF7AEB2D12F032E3242FD1550D4443C87F3440B6467DE8506FF057381E066A808E456449D52366BA3B88A50CAB1F66B511764A60520A758B575C7185DC353B548FD35144DF420D19636E6FDC3BA297B012C4C943C71EF90A406ACC007BFE206B8255C79A12198C1C2C1A0E94B44ACBBAEBE1204A7C9623C027200786CEB634CE7EC43ED735819CB9ABBD63EB8EED996C76BFFDF6F9FDEF7E1711715E750C5F2565BD59817F2952408652766BD16422F84279C55C3108F8D4E1255D56744232E595ABED56C4AF39A6EB476CCBB0CC925BC93925591087CEDBBB54C8ED0838BB6ABBB54EDDDC3F5048443F28F6E66C2B95C9166A95814231DB948DC4631BB775A74CB333935283F9849DE88EFA038667384AE468C552A9F94D3BFA7B5542354FCA1831B7582BAA2017AE6C34D6D9890433F833A6A2855A55FECF8A347BC64C2B36A1620CB8850F62134D634B777946A4AB637EEF7D6F55FB6C953253E55A71D780297FE528A39C957585E6BE54E77CE127220DF02DF8EA11F0089A3DF4F4A0A52ED833C7B7B071126C4CA2A575485EC30BC109C64EAFB9E69A1B6EB841DFAA40F4899C947528AB11202231400DC452E4F7805A2372846A4C1A1D1807A39CBB3685636F3CA25F65A38A8C1349C7EE34D80628578683827A2B153672227B0CD1EB84A0408DC9578B162D12BB4CE61D617A845649072D73014C088D6B7A9ABA03045F1EA671A9FE92F388163DFBECB329C7E524C48612062ABF42CB65A85F6C78D6C1A2B803578140C7D6153313E7019727CE03E67A9A21009950592E5FBEFC81071E90C3E4CC2CAA028FA97CA2331F30FE2E3745F66606A979C0942953444D6266CE3CF3CCBBEEBA0B640F73E6CC11918733C802153F809D57751744BC4E5964E3B33290B4032F0670601CC824C80D225BC3C1EB1CAEAA9E6ABEECB2CBE4B1E236F1F8D09F190790F307DFFE2D0BB24113C86DCACF6566880026AA62C99225322D58784A4BE9EB952528D859B66C99A825F9E4FAEBAFBFF6DA6BD9E8AD211B0C56193C0204CA509D833435B62198B2A01274CCF85893CCD02E9DCBC02E49A6F285BC7C3D73E68C751FACB7EB0E415496B765BB4ECD366DD10483E5623A91EC291533F198A7DC7CD91135B0F76ED39DDE814CD58B949DB48A4CCE647D272080089ACF5866D1AB0D560BF96AF9A2F3CEBFE1CEDBBA62A9B411115FD730131BBD9C6327F2CD89CE495D1F6CDCD03B3854F383D6340F3FFCD0A2534F9F18B555D5E94AB7AE2F0F8A2688995171B4E511DAE95451FEBF49256746626D966757C5B1AA9454D2C6DD8DB8D982A1629E1351154FD5BCCE587C6A349E96B7C6A6B5F9F7B689DFD13677BAF7DBEEA1FEAA1B1187C1ABEEBA4F803924799C58035FF9CA57641142B6EAC0B091FC37A43060A41AB13E9C761C1F9A5626C21B882DEB159123C7C98C20EC5A76DF42651556050347B4A5864F47500A9938C5EEA35BCDB1FE1D7D02C84712A0CAD207E71A46894FBC906813110C72BA29CD4D31C25650489F92B70777840D86F3880015D582C8C93DF7DC73FAE9A7ABB080562EC1724DB57337023C45915008B293BD0057944DBE72E54A586AF215D88A60CAEDB3CF3E2237212900E4A77D8D07207A028BE3EEBBEFBEF0C20B45B2344017E41272985C856C362ACCA642C0C10E850328C75C577F0141CF06AA2A2C59C25396C388DF9793C854C88D33718D64B5AA2B2748343116E46C32E7401CA1F444261F590A40DC102ED3AB07C6410313F52C3F9427F5E1871F22FE23E609D2652A7450888E50616130CF2943454E1BFB0D412DF4B1812305870C69F6BFA509B01AA1093092FDF6DB4F7C23FA5B7277F2AC65124451E143A86A59BA282B5121DD371150A8BC01BC829441B847FDBAD8BD56BD8B998EB320951340844049C1AB23727CD4DB194B1398CA306DABE604136299867283E8505CAEEE7971658802901F0C544A71659694974CC45BB2992DDBBB0FDB67AF43F7D9EF773F7E3E5DACCDCCB4E576F42495612BB3CE7564B9B65FB554D1A8557CD773C4DCC9F6F776C70C71312C3399DE562DAD2BF789591B4BA486F239CF365BDADB7395D2F6BEC1582A66972BCDAE3DA56BF21B5B3F2CDA46DC1271EEE5DC6A4DC5AAAAE6473CD5A1EC4E95ED88AAA8234B2002B2EB11FFC65C6546125565E66B05C7AFB75DB6A6A7EC69DB7EF16BBB58716281D7101B549954366FB87EBEB0AB9A00F22A5E7F2191C92C178F81FB28AB825CE2D8B6700A19A5815F48A02609D046BDAE48865FFDEA57EFBCF30E0C47D4A68C537A358E26800027D4155CBF2AB42C0D2C6559AF681D0EB929BAEEE1871FA66BC964F4FF00E539CEC6E364C9BDC9649161CDAA370D07DC1BB38F641DE49D9E1937343A1DA08080AB114D76F2C927DF7BEFBDC02F2A2DBCC34CA9EC28967A3329A26B02FD120DDDD664EEE442B26921768DB06B02741B2D6E7A004AAB8065E996BC649048263FFAE8A3801B21E0206FC496147383CF899C80AC5087A3804C232254B8849C8100272439682633660524190B2CD96D0D350498312C5F54CF61C0E484A08BA6971FE3D600B3E1C48E7CC9A545A92006883B850982A70C0CDB6EBBED8628194BED748A2E14BBC82588136335AFCCD8B9E79E8B0D099BFA90430E1151FEB7D4AE376802D8FB840563E5D3C9906FC515138F042C81340EC42C58BA7429D9F130B7C80061FEE110D05A848DD5908783832F6F301BD01C18007B0842BE8FDFC570D4E890512F682A964B9572B9A5B9A95A2CD42A4E5C7490E33645634E4031A45A5B5A7BFBFBA64C9BB665DBD64AB53A736287932F8A8BDA69C5DB5C3FAECA73ADAE8A5B8D28CB364CC7F74464970DBF62CB1BAF39D3BCBA6FD3B468BAB3AD7DE3D68F3ADAA7BDD7B363C8F23F740A89486C409445D04152891D71E59597DE7CC76DF1AA3739926DCA645EDDFE512C9D5255CF36ACA2EFE46B66C5AF544553894ACDAAEC6E91447BA4E816F9181BDEC402F6D3A498109E9517E5EB57949F6B4E7AB377FC61755419AEF25CE55888B6DB11B94AC9D8356267C2C7D99000969FFC092025FC572364DE641819140062F1205A28EB4744F09FFEF427C460102E1EE73962A9ABB06B2FA4F138FC6CE3478780560720FBA8A38E7AF1C51751BD14944C2A8DDA82920B75B66A67DF533793FFF72F645F514381711F7AE8A1AFBEFA2AEC41F490429E5D4682080690EF7ABF46F20222D58CD9476D14823C1D1D1D279C70C2030F3C002D2237882A2D390F0416341FB6BAD2D250BEC6E1435F044948521D60426114B37C175A572650A618E05478737ABF04CAB5638F3D76F6ECD980D5DE78E38DD8AED8E17221B911513314B80CA6C1DA856642A05F569B4C172939C97BA3278A19BF420C10E5F5FC89119685C3DE91CFC55760B34CAC48B91DC43AE56099D2D34E3B0DAB0D21357803871F7EF841071D74FFFDF78FC5DFC260086241F0E4101D824895F3CBCFCF3FFF7C3D6085E1B1341F6C28A0AEA214463B11AC284C027B0EABBF01E9303263AC6786F4D611A80682FDCEBE750408912F0FF5953239F210019B86434935A02320B8B940EB825410E0553A39237A19EA68905DCD1807AB3D16AD890F17B5C58297556E780166B42B99549E9F2F97445C6663C942A59888277BCBC5C9916844FC6ACF9111CC8935CDB053135DC32E575D65C76425881A70AA6525FF7915E595552D93686E9BDCF197B56B8ACAC9AA44349529C4A36B7A370F283F194BCA0D6F2DE52D65B4CF98FAEE868D9909996A4F6E8A9D741DE743559D367DFAF60F65BDF9F2DB5242FEA7C4B8F78372E55A7C7224353DEAA5AA9EE5A99DBD76C8A4603F59A2EA5432AAD266A2B0B55CDC6664CD8E81EE41B7E64695198D596555AAD582FB6DCA740CE6BBD5AEBC680F8948912D43F0B43C1AD91A8821334FA6F38820DA012C32BE95450BFA2C069174D693519F2322DE147A0C4B8EB5BF46668C99A0460059DECF9B374F7C025863818ED1F124679D75D64D37DDA4573CD300E795FE8E3E01A718A210E130E460314132B0EBAEBB6ED5AA55207D431681E4EF2A6CC76C840DB3482A075023CA37C04484E943BC1EF10476AF26AC88B7AC9B697A852A9E2E00C590FE32240A23B1EE456E32FA01F1CDCA00B00890941B55C772B6030F3CF0139FF884FC50068C0091BC8171AD420D0FD103C708591C3AFBAA0E711159431221F698E4C8EFBEFBEE8B2FBE18A29934217206D1B2A79E7AEA15575CD1C0E9AFB46821F0AC9059720C8295003CE87D3C5498FF6763D87150A4F08D40E641201D66067F42AD22518415CCE581B17DFDEB5FBFEAAAABA8C6506D8F183D828A9819A65EF5718EB3201BF2046CA8A0B79ED641E56ED838131EB7FCBB78F1E2EF7DEF7BC89DC89BAF7EF5AB2A547B2A8CEC31F5AD34D0373C7AD28C53FAC355C208E5FDE9A79F2E4F53EF223556E6702C1469F01C5D473EED9CD2B56DD3D680AEDA554D8978AC124460B3A2252CBBAF5C98DC32E1A3FE9E5993A6440AC5FEC1BE8C1D4D3ACE24233EC177F68876A43D35E0546386658AB9ED072CD88E65140DA7ECD6648744E2B19AE9178A85782CB1BD9257A9E68F0A4345CBCFBBB5A41DF32DB3E03A05DF29197EDE519D11ABCB4A17CB79F17D3EF6C9C3DE7AEDCDD25021EF55B7C8392A414427AE322555A9A6CA9119410B4AC71E1DEF5FF3A211F12FFC204C640C36F7FF29A70A7EC2F044B39989A678D5A854F3AE8C3B60CAB6951137DCD12D95719607B6A118408F3CF2883C38D436CAEE40E93E4C101693B3FD8911D6E103BF803DA2F7F0D02103235F282080FB0EA43BDCCD71F6D7A8285215663868D3B00C68D829C19A83C94CF6082C7D0817D2DDA8B07C06EB155DD13926EC1C18C5CC5BC2C0019606A0259DC59B5DA48DF005C83CE0ED2C1162408D776BD4393098BA10E7EBE8A38F7EF0C10755DD65839B26F7C6CA29D688EA907F96FFD013A264811C6492504FD0215A22778A1EE5B4FE282620E960FD352439C1F28103A64D9BB675EB5619E4673FFB5931F4E070C8133AE288234E3EF964DC0516CDFCF9F3DF59B326B0D4529182B8F266A46E0519E9A66C7E7050F95E6B6B737F5F9F690799F0622127BB33158B544AB5AED6586F5F2567A96CC6CA0D88CC329B524DF9826853D73454D51FB34B25874A6B5DEDBA05406464C3F9B14FBEFBDDEFCA8E924F40E38CF23150443047AA777054A1A68158677A8DC28E7FFA61D92D4B78E45F48CC4B2EB964C58A15D8BD6C4F84843313CBA45C1CEB7E0166E5B4C05E73C3FECFDC72D0B8A00400792AFB21738FC8DDEDBBEFBE6BD6ACF1432EB0864C15AE48A410DA7002156684545D6207C80402BC88B99263C4A35AB972257D0E0E0C9E442C11177FCAB48C8869B955474C12D1549326B4071C50B92111012DE9745F3EDF99CE16F343562CD254516911A786DD15894D73AD94EB56828CAF97B0935634922BE6A256349D4896F305197A8FEA8FAA9418F5F1483A93697ABF6F9BD5DCF2C1C08E52C22A96CA93A29962B532A0DC7CC44FB4B66CD8DEDB2AEE483C552DCBC6340B86199FD8B1BD67B0E894AB56A0B1AACA97275D279C9035AB0CCF6F3E3453A8166D91BDE96859AC23A71C94D3192ADA636553CD6EC9DAB27687929359462A912C0C16B2A9E17A58AFDE980FC2779CE80A75300C4A884BF8A368BCC102405A27840822A607413A1667AD0899BDF6DAEBA5975E127F11B00879890978CE39E7E054A86D02F258E71CD46B0CC7D98C90CFA05363698E0AD198E2CA9F79E699DC533482D9C2CB207B1A335410C4E241BCF7DE7B48588B0989C423FC23C649B0D9642FD178947959B66C99D8F24C7C031523774EDFC40BBB47310AEF692D33F59008E4290D2B6C75DA3814B5EC10ADEAB102B984EC5599773906D5B940E3901AF3CAFA8B0813B93AE24BFBEDB7DFA73EF5A95B6FBD7564792DE79A928E1D6891EE8374103171C10517C85684CF88E22F4E970AA1B1D8CC721EB9DCD4A953C19F2A33FCCB5FFE52B48855E76E4C06D3553222D1C0F0AA2B63E5545ADB824D5B2E954429C5A2C38102DF0B2630914CD73DA761A49D3C0CDFB3E4A86A15017DAF1EA4F59A9BB3107CA36A02406CE52EE43D1EDF382B7B573501CC059937F6E034EA5D7D4456AE5FBF1EED7190E1077C5B3ED1B98275C3BC4113181AB91B5D01E803FC56BE45D44B960A0A2688310509C4700CBD5E3832D6FDCAB580A192652F87119D8561135FC792636E4511FAAB57AFF677EE87013A2F3D95C50D8FC52F330FC643B9907842A2C9F45C3AAE827A1A3205A8D00F664681A94BE4B1E3C984980E2DADCD03BD03314B59AE8A21FB1D89C52256369D712B4191446B5A64E8502C1E6DAE9A59DF4EC5A2A209A67A9648A9B25FF1445229D9B9918A53B18256F6A6A76A6DC9D6C1F260CDB2326D6D1BB66DF194D5AD8A2A92A9A5131B07B737D971AF5AAB2ACF6E6ADE5C18E877BC4C2A96AAAAB469D52A45B14CDC44CA4DA7BA07F2A55AA56C29C775AB41415BA009B0FD4C5FD55A83A989B7C49A2634F9965BF36A0185B6EFED7873C8B054407F2A73E918CA370D6865DB84D4D65B07ABD09F1EF5F9C20775C36E83301A103FD7FD661CC388B4F8E564411F9FC98E1200E93A4806D2EDE0302EE0860A447DB58F7A7E842EF48A4582DA91CB9437E243CBD5659037DE78A3086A71A603CA038C49EE448ED0294F95E65C4C9A34499C039869D01372CF720C1C67B058430802D68DA954750E55067F21D9C904CB0DAFD3DD40EECBE560CB93A0036B9DDBDE0C7B094079888E39F1C4136FBEF96615521440FFA360951E19A686491191777251B648541A0D085B6362A8BA1AE014B3AF248BD7D8EC457E2E239719837AC7E68487818A7F39C9A38F3EFAE52F7F194FEEF39FFFBCCC3F28CFE4B75BB66C79E6996754AD148B2776F40E24521911FB5F3BFFC29EFEA15CB1F89BE79E0E74831841D100AB932FD41B20679ACAB9C1608C96E978662491B2E3A9E2C090326D55CB9BB62F1E94673A01EA0F2BCD0836CC589A008B4146F5F0C30FCB138738FE7BF904F01D3181279D74923807A07F612986086B99313D0CCAF4804E9AAB6F063F64AA20B5145848E59CFF9FB5F700B7AC2CCF86DFD5F6DAF5F473A61798A117156C115B62342162012191A051312222D2150121A022022223204D0D56D448B000FA0958F83F63C1A0A8B40C300CD3CF9C7E765FF5BFDF759FF5F8CE993927F9AF3FFBE21AF6D97BEDB5DEF2BC4F7FEE071A37E81E3FA7D79EE1FDCB2EBB0CD442271E2E23FC1F941E6202731F17E214589033CF3CF3DBDFFE36912C994DC87ECB4CD612F54D19E5CAB8E6D9679FA5E7739E30309B0551EB1489228799BA210D0B5C4F08000A6C13FC80916A42BF50A934BD4F4EFE0207C7FA8E2C191EDB350685A3D7F7C14B47FAFAB7EFDC814BCB5910189F0FD77A2A95D2CE5DA3C3B846F935AFB8DC2FAD4EDD320E7E82D364B7C34EB150D46A596A851D0D3AB4FFF2359DB8FBD4E8F396EDCF26DDFE9E25AB0F3BE4FF3CF2AB5D4103D6EB013D0371B33D1DB7ED5265CA8A475B9D52C15A5EEC4B1A4D1D75568E3F3CBC3BE84E343ADD386A5B318611679A0BE14829096CAB1824810BE158F13B612BEE86D9154A85BA537386BBE4149C621807F8C5EA952B9FDDF60CC3A4F4EF490BDB8520862426CC501CE98AFB22D5F892304289ABF262ACE38E3BEE81071E602EC3427E7C4263D14541DF91C800763DA1C7E5820B2EB8F5D65BE9C19E478D565E9EB6CFFB9BCA101BC050F316980A71AD8BDD4FA66D890B8571572AE052E343BF10FE7CD7BBDE75D75D7791B69843C203392F64A772578C084F1C1B703D327D5030F823BDB7F41749333F7AD6D8974A62C882CE362FFD5CE5899871DE23570AF0B8C1C2BF88844AFC192E84898C44FA10AF11E6429C7DFA7CA941587BE26D48F9D50D37DC70FAE9A7439CE2E6586EDC73EDDAB5501545864BEEB060E08815C928059E2BBD6E5EF5AA57BDF295AFE464F1747025AC9E363826C7B180CC50BCF787F7EBC56FCF054B28875CBFE8F995F1A9E9C11E0D818051EDD8B12B6342AE6E54EE15AA49D8EA34E6407D2D8D3190F0082CEC1DA2BC6734D80422FDDF9204383FBB76ED62B48D317C592B7916A3E2490E974D058D16BAD90652E52A92703AAAF6E092D421C4AF487D8DD42E351F58DB4F7FFAD3AC8B56464DF8221D93C4E78B6B0836874F206C700A4C6839EA2BAC5CC1329E71C6191B366C80E4FBDEF7BEC72882641F0822A96334A2A1545386BBDF5C1F7A39F02B522CEE206D8504FA9B7E24C93FA60B8B7ECBE999E9B3CE3EFB6B5FFB0A6C82F56B576DDDBCB5E6FB65DB9D6E37FB7CBFBFB7AFDB6E160B7E0B5A46B753759DE1A4D063178AAE33E278AB63A71447CDA8957A7E10E91C591D4FB6ECA0D10AE3CE8ABEA5E3D39333AA13832E6B3DD3EDF68B5E75CC9D0FDC37AD424B5723AB25E57E70F9C9349C4A83B4E8CFD4DBABAABD6163B6AA3CDB85A859F2C4E8CEA96E1829ABA5421AB0444CB6326E0FF9544EFBBAD957B6E774C27646D4BA71B26FE9E4CE200E71BDE77890049552E5A57FF1D29FFF3F3F332BF5B8718BE4EAC09AFFF9CF7F4E78706EA2F84B08B5CB7C161C7962564A5F52D19EB9E60B491A726A28BBFFF00FFF70DB6DB7A579D132555B91E80426A00C90247EF31C2D828448B2C78B893F843F605E250F9AA958883CB0F860FC8D03490295081B8BB0B00A382A38BAC4D910247D21653C836780FA14B33F31D055AB5661A54C8400BC5EF7BAD73DF5D4539007F34C219AEA1015509D88BB72E49147FEF18F7F14362D8A3963EE5C38FC8A12487C4ADCB679D0A4B2076256E3E998149541EA6266772D81E8E1952209286F0450DE14FB389318097434DE847D85300C4A4A2E08BBF770E24CE091347C9005D393B168F8508BBD52DFED37DFB8E599277A8A6EB9B7DADCBDFBCE3BEF847A391D1606FA7BBF74DBCDAD6643F709F78B8E57C2BF519C547CEFE73F7DB0003A286065F411E946CAD666BBEDD99EB6E6955B2D0E743AFA20056AD7429C5A5A6CF3CC488BB4FF2D4920CA2FFE3DF7DC736179D00263D8893F17E03C276FCA41C78EDC7F9EB3CEDC175A72AC52B6F34672FC8A499F989D69AE9154A45BD1E27E5EAADBE002D0CA25C75FE506B4CA9D54D4002872B0EF38725C46217B2BEF2D4AF1AFF6CCCB10CD46FCC2F8D511471C8183CDBC09D0C96B5FFB5A28679C024F35437A926D223822745D5287BBEAAAAB2EB9F4637A0C693A3234D89C998E837804C6CAF474D9F18607FBB516D9ED0E56CA50B1A1F762D596699BA05054CE72B778B05FEDB3EC76DA9DC96C0EDBD5ECA2E4165C65D58399B22E02481DBFDCF19C461CED6A8F0F0EAD7C6A7C47CB5543D5DAD4F4F4AA721F94D286A79E9D9EAAF655204BEC465C54F188D76BFB5EDCDFF3FB6DCF4FA471AA9CAE8AA1BEA419A7CFFEA75804E7AB9EAEEADA9AA2ED6E982580145C2B493166CF75A224C461753CA8FC9A2A0E3AF4C0679FDA2419CF2C845C5C12882B924E6F2AE902332CE9FC2AD323E99D66CA86B4A7C59DCF3EFB6C817CDFFB5CB0BF211D35645CDC3E5144589328D839740F328B44D2FA1792041213C21BE1C0142D3422211EB66CD962661F8159E970AFB85C458F868273DE79E75D74D145983F519A551EA4A52312B766F98C32B2CEE548F025DD3EA5F520531B59CA44BAA497935BC2BDA1DB5DE0CC540E7C4DE216B6C2440B95D718639C1C8F1C334C010AE09BDFFC6658F1F8441A86B0064D72FC65D524D19EDC4152924C17334FA61C4E5E09B3802E14A260E27A33C8A98C8C31FE29D99392DD289B7DCC31C7604B58F2ADF3730ABD49D879D31B5E1B771ACB8607962E5FF1FB3FFCA9D5EE3C335A8F3ACDDB6EDA30D053C1902667EAAE066689B2EE20899786567666FCA255EF40AEABD8D3A7A8B7A73C35AE73B17DD70B2318C85A48EC9353A719BAF2C73FFE71D8A7623CCE03D6FFFF2309084AC19A32AEAA996425653BB28F4CC7C23292F1B1FE40B232CC67518F26BF631B4B5C7CD24927FDF8C73FC66A635F7062299E09FE432EFC8B5FFC0277C66F59D182FBD03FB04844D16C6E418EC02998FE59211B5605731DE841222296FC56BA4C2B034F65EF733E2FF4C7B83A551F9601D95973666540DB525DA529A0F2D26EADF34D4D6229DAED667DBADE53F6BBAD6ED9757BFDD26CB35EC8C47F5F4F6DF7C464D92F544AFEFA75FB0F876EA11976EAB33DAD6075689583B0913612B7822146493C9B34FADC9EC1FE8176BDA1D3526D6722C4B3ED2DC1C4506578B2554F7B4ACFCE4C0D5A6A4975A0E214B64DEF4AFCD26EA8F3C5420C15AB1D0D2B7F49AD2FB1AD19473D36393AA16303766025993F4877E081D20FAA765295B5D0290669ECF96EEAD841A73597434AFA8244483229EBCD79415DDF899A310372D22B7BF19A5EB651E23592F662672D9204D80AF4433BE0B8E38EFBC637BE41E808A27571D325EF60EF17B58D792C0264296AEBBA75EBC0B86EBCF1466679AACCDD42A78899A1B3D0CB3C71E298C1F431C88BB317398F34970587A41A3A07582AF54750767029DE5306523D04B37BDFFBDEC79635201430AC77BFFBDDD75D771D9E87BBDC7FFFFD781E212BD800192360C71B86015899292C92D469265DA85C21928C080A18F1AA4B10469CA72209F009BD757C84246F9988F6CA50D95416BEC7DDF85B928809D36F5A1292BA6A860AE4646222F856007C4C8962E5FD4599DFC92825B363CDFA43BA17711F70B737BEF18D947084B5996D75ED34E9B49BC71F7FFC969D636B0F79E103BFF86D64796E307BF8C107B42676149DB4E85ADD08D370EEFEFE0F8276CB75ACBEAA06890B53BB6B9742BBE89521DDB7779A2A6A7B5BFE6BB34A8352256AB7A65C5F45CD0551A605C907CB78F4D14783997EF4A31FFD5FB4097801FD1814FC5C4912A81891E0C8AF79CD6BBEFFFDEF538182B07FECB1C744B9937E796ACF88B144E6494BD84DB67F611C82D62D9D75A40D6927272511B41E16D2B9F02DE316A4403108045EDBCC6BA2614DC9C12A01163C338E2D991B669A90F9739ADDA4349090CC9DCB45F80A5CF9E10F7FF8F6DB6FC72CF015CBAAC57F45723225817EEEE0C0D4E4E4EA35AB766DDF9184F16AA884304FA7663B2AEEF1FD430F3DF4A8A35E78F7DD774F4FCD8499436699B2FB940B3B73852A1C69F50CD96E27ED362D1B722F5249236DF597072009340349929DB3D32D9538BDB56D33E3D54ACF687312DB3C1DB4A34E77FDD092BE4235B6D59FB63DD72D7BB34117EA08A4D67EB5E19AE5B5A3E0F9767DA78A46B184B8B94A2CC74AED8CEA34D4296D022B4A2D6DDB160A966BD16A2CD899F7DF2B631271D4216C8246DAD62E51FC283123C694048BECAFB917729009FF8505BFFEFAEB994CC1A441F6EB96FC519C771C643A1816920474C213F2994E481663E2B674E5D3823175509C44BA3DC594591C79D0CA91FF1925121737D57AE625823C44CBC731D49280B392F45233DF80BCC044D493E593D6862474492D17173CA8F3DA6BAF65B45A6556B9645BD2052F1133E1EC7447C8111567A8000A095BB18C4A194A4BA9DB16912678443CBA2CF292E45C3349891E58C90061DA3E9F45AE6DD6F493D750E0915D7EF0831FBCE5965BE8D6A7B812939CFDA3059B9A252424CA3DFAC6E521A0638F3D1692981D13C1E58B956A3788A6DBF1317FF3D6FFFBA7CDDB6613BBD23FD27CFAC883F66B8E6F7FE277BF59BD6CE8B1279FF28B65B07E2FD2CEA559E8656EC9EE199E08FD838E7ED57833EA6DAEB055A5C71F99199FE9EF8195B3F1BE1FDF9AB4B7E0082FC4A905678DD09B8BEB38FF5F258198C0B4E7187092827B3BEF01C9C36056115A3902040339C22ED59E59A434DDC06419BE12533ACD3150F12F74AE871F7E18C780C91BA43A025AC8762F52E963EE29B51948AC9FFEF4A726E424EB4E79CEA94EB17B9DCA33C455D63F0386ACDCCDC97BD4CCAB689107D1BD2B2D10B83552100A223CFFFCF3B14DACAB2056AEE027CAA1D60CA89021E9EB2636AA5C709D488B2F9D3CDAD3DF68CE42ED7CD1A107FFFE89A7467A6BB01BDA61B2D2F6FA13D74BA355CA3B4C5587B5EBA6DB566EA8749667470525AF5228FA53F549306CD7E99D4983C9A413D9D66CD2EC29F78DB5EB5E4FA5CF2F8EEFDE7DE8B235C79FF4F7377EFD5F9F9B9E9849544FC971DBF6414B57D8ED70B6DDDC184C371C6F67AC1B68C556A213479D39BF192480AB5343210B7CF07B6C6A9CE4ACC376520D8B5DB255E458CA7355100659AF330F868457B545C9A39E416EBB4896301B6D515B35718559414210727134C5791755AAB012975A3CA26B12B6A40949A625DD06FC507AB80A4482CA3D280B8D9FE3E448CC0C1D13EA26CD7B695035C1A4E6E2044CD3A434A37B917A1399B594CB4B492D6991EB25EAB604E258FB40C7024B30985E4D3A3EF5D453BFF6B5AF91275201E451112D9E968479DAB9D6C2384CC40516A9924770AAB806179C73CE39D75C730DC3861203E03299BA1BB99519AB4C73683C95E3E798E162F1DE62D1581BC57DA2A23707F49A2645B6BC48D3C1919189B1DDD5BE3EDF724E38E1842F7CE10B92ECF1E31FFF18CBCB434B89F59DEF7C87BBA225A5DB5B499A8E15FFE7D3BBFA0FFFCB7AE88CF8C1A7CF7F4FAF3D679F523781CD818742EE4A310B419219D5D715864B0E5D32F042152E1D1C5836353DAAD2829BAEF29D35DFFFB7C374FD66D255294E85AD12DB776B8E55ECA6DA43427F17B1A3E7D2EDEB730E0DC7D7874DE77FC35AF774FD44B735830F4199BA0579763C755C3A985B4C0A4801D4CDD8B476CABFFDED6F87E299579944BEEEAC1EE89E8269862A51AD31721BC450F7BC88E8437D7DB8E12C2C367D0C40DC73E9F35A5D0AA25A4FB53EDB2815E7CA4484BA044AC44CA4111142671103BFB2CB26BE56BA67C5D98855FCC475B79CF6910F26AAAEBD106D2C421163FEC4BF5C74DD75574F4F778A255DBD147494EBF8110EACC2D4342D6B5656A8A864D68AD36A6AC565ED2CE6C9975CB54590C52443547A70C2B485457EF3CD37136AC9CAEB89181558A86F41560B46887FDD01C6B3D592C1C1154B963DFFD493E5D4E9F78BF556BD88F318693133D3EC82FBE26855526B2475D6A8C2FE56697FA732E8149E0D2652179ABBAA075DC7AFCC765BBDD57EAD1BBBE1F3ADF19523AB76ECDEBEA6B24CB5A376D28E9433E1059167B7DCB4AE5179022FB27A55A1E6F94BFA964C479DED416347B73D1107ED34EB2C695927BFFB9D5FFEF2977546BF4E906BF8061693B8D4E6B63E3B3202D8C7AFA48F85A92B50222E8EE6EDE47DC1F8A7407D60D94F3FFDF40D1B36B00246E57EEFCB2FBFFC939FFC24358C3447225844D2C86068ED31AA6FF6D3DEE7C562384A48695E76A9A089087A18C31BD75D771D4C197C4234B9EDDBB753CCFCE55FFEE54F7EF21391403A2E6866C80AB60FF35BC4CFC3BC343C839DB62C03AD13237BE10B5FF8BBDFFD8EF4C70EE3CC5527ED9A0973BC7EDDBA7584B424E94BDB1DC9EF16D2A7438D920D74CF888DF03B4177C1827EE8431FFACC673E23CD69B9463CE4B0454E3BEDB48B2FBED844584B0D642EEE1FC16A2467863434AF138865BCA4E2833607FE6423CFD9E919E8477361004BBDE39DEFBCFFC10777EFDC09D68617A6C041C2A8BAE38E3BF068E2BBE10EBC0FB303F57EFBB5411FD4DD5A79E84B46D580552C0D7B712D1863A62F453D56861D02A6A6A6F0067B479C67C9C2C47DC6D2AD456F457DCA9B9A9EE81FD4F2727ADC7EF8979BFA8B6BC140BEF4956BD2689BB29BA58A0E328711D4349D147BF2C927834D1F79E491FFF11FFF314721B513CFB8E0DCD7BFE115F546338CBB434303382BB3339AC24696F4A8588D8D4DFA5EA9522E3D70FF2F6FBE6E83DFFD01F118A48A3857B709E093BEE845BAB9232859B3A444150B3E737F99B3418834CFF51CDFC364BC4281D5CE98B39351DADAB5AB376E7C5AB30D27333BB213E115DCB03B27BDD6AF5FCFFA156A0398459CBFE6950A722B412A84A29AD7A56E9E2488ED5895F63FE3A3371DF5B2578C0CF6E2B93BC676F6ADF0EC892150965F54D3D3F566B3BD62F948ABA91EFAF9235FBCF684A0B5C577A18E0C4ECE3495D5191CE8698C37BA3AE34509CA379F482FE5E2EC43EA6CF4CA67953DA6C38D65538B2045CE9304E02BBDE5E2606FFFF4CE9D3DCA1D2896EA9DBAE5179B614727E77475C74B68A155C86F65C12658A3CAABEDE28053DCAD1ADD286CA46D57152328EAE5D2646BA6A57078ADFDF63FF0A5AF7EF5430FFDDFB12D3B5B71BDA82AD5DEFED170AA9344ED386C653AA29F3A25C7837A5428F54E87ED5D417322891B76DA853590A8388D0F7FC10B1EFDC3A32000AC3E5404C7D0BEC18BB1BF74C7E11310181601E4C17824E9DFC95BFB8ABB424A344C9D60A17566DC454A31F862232CA659B38D0AEE8C0FD99095FE030C00ACE6AAABAE327355E6DD1F3FC71B41FC34BDA37BBF04509D288778CFE4258C84D3B78C16230261249E798C070FE2D2916B8976AE7273644E7C92E7B20989CAB14F257B896C11974A205B7822CD6D3CF28D6F7CE37DF7DDC7C6E2D80C8685A9A1D0C945F39F0E1FFC841AA2A00BE06E1FF9C84720B8F8437EA5B21E8D780FBBFB99679EA145A232AB9F92095FDD74D34D679C71C6DAB56B59AC4B99C131D32B4512916CF4BD5B7D928F8BF347CA89E93813A3615E4538D35488444D2B47BA6EA9CCAFAAB2144D2D57C2B9D090E3B9711889D3C3CEFB7DE2CFD7BFFEF5071D74109682309314ECBAB54E5F4F4975776FDBEC0FAC78E0918DCD4EF493BBBF164F3EEF0FAFC57D98ED8AE948380B7BB479F36656BBD060A2544ED4EC8E6D8D4A69288A5B41BCFB9BDFFAB26D553C7B70DBD4F3939313933B211EFAA676CFF6D696CED63B3DA5C156B4190390AC6AAE1E6E7BFF0F7F75F89187D67A3257AD02338AEBDD7AC5AF242AD1ED0EE3B4E094609AA789DBEDA8877FFDFBD7BCEE283B6F374455970A44B95C6CB5F027B42D9044A01B257A5A7DB355D6D125E3E82B96AF60BB1BFC697B732C8066C1D0F030ABCFDEF18E7FBCFDF6DB313CECC273CF61E2DAE9049BC02FFCB947B930472E91EC3BB5162B4780905270A9ED5AC42678C5EB5EFDD18FDD74CCAB0ED591F899B402698F77712BAD9583B055F032431E3A7B987A6E09B3F9E1AF77BDE5B5073871435B3156C1AB5A51378803776050279231B1826945922EB51007313B3C9BA96E56066FB965CB16DE61F1CA234BC75F997FA2D224C59F054B558B25A7DDEE758B038562A3D50C5DAB95049EE74601E6A13C6891A9EA55D6B0F2965985656EA9C7F1DB818E430C8F0C8E4F4ED45BB3AE57C06DFB0607C666A676B76707A07EEE1A1DEC19484076114C2315C41AD930628286E516BCA2E568D37C1C041A76A6D3B09EF5938C1C5881090C415A87057DDBCCDB93B18524EF09AAB2EC29EC143803F3DDB183D0CD3FF1894FB03A4A3002541EF8110C63138F611FEB633405E34A828DE011585E69A8C5E826135B98BC4BCC479515BB388BF663373D9966D9E342D7BFFBDDEF7EF8E1879F78E209BAFEE735D7A4EE6FFA69D8765E9C42F4498ACF93B1008E90182D9416DA26300F00260C8AA4EF051FC2F6FCB77FFB37723D3BEB68CF90AC14C2B07A859939FC93F57864E2581DC1A4A49A46A72A149937BDE94D5FFFFAD7D3BC4D0D2FC0FBBDB7479A75D0BF4C5D9B09EF14771254A0BE4F503396201166803F915C265941D3ECA2B39515C826E7A2E7CE317A99C9EAE3A1A79C72CA77BFFB5DF610B6F36E913D455DA6A15DB1DD8E9B793C5CC70DE3089F80979572A86D5C5AC97ACC4268FCF55FFF35F38E985B49E98DCB26773EBF76D5F256A85A6961F7D878296DF717E29D6D9D728A9DA2D38C2D16F05B50E4A38F3EAA327D075366ADAC46D4687961D72997FA9AADC95235FAC31FFFB3E095671ADDF290FBAE77BFF32B77DCE15ACECC4CDD4A0A8E5DD41140BB6EA65588C9F8C14F3EF8F297BFB46FB0363B3B6381E127984D50EDA969469942119EA9D57A93005A45A9E879F7DCF3C02D97BD81F92DA2853116CD345F7173D3C8C55358AC8BC507791C7DF4D1A07EE8165A725BCACD103E689E6A04CD011DF05CB77EFDB3596D9726C52C2D2D8E743A94EFFDB91BC4CB5FFEF25FFFFAD7B8E0D24B2FBDFAEAABE779DE45B4B3D25B507F5981BC50A7FB245E7BE9E5B71FF8F297DBBDA103D28BDC46D0290D152A333570BC249D4B0B0E833489AD42A174FF8FBEFFA5CF7DB81C6C77BA69236C278E3AFA652FDEF2ECC4E8E8732A4FBD1356B5481F5DF106883A423D0C07168BF3E217BFF891471E214682CA8B8616910419195B76E6D1D399668E5B4B55CD29D46C4DD85D2BE9DA59B573D697D2556929B12B1A12D4EEB7BC3ECFAF388537BEE495CF3FB769E5F2A53FFFCD4F068A7DD39D299DBBA692D2C8D28DBBB7459E5B0FA3A13ECD1FEBA10EA73A4197250565586E7E19E4D656294C844D9D7690C4186BE0D8D09522CBE9264980AD4C9372290387C882ED9D602E7048154A626CCAE8FC0EB2F9DDEF7E278C95B253FAB9923BB3AD589AC106EF737D7837935F83B72E5FBE9C19ED2033D6EEF1C0D24061FE3DB79278628BA0468B9B4174381C7908F2677262DEFBFA79396984B4A3F356C49B597D22D0938C1841CF60F68D48C77928C2E47296D47672096EB9E51628DAE47DB8E8739FFBDCB9E79E4B6F8CCA95E8BD6356F3FA47E2D9EC34C0C22EFC4B7A6576A6382EC8D3194C666A3FF1EE191FC664F0433038C9E827D3C7C67CE8431F82F017BA07EFC0B7EC0484334CC984615F7FFDF5471D7514DE0B3CC87EFBED8715A723484C3FEE199EC539BEE005DA6B616E83197023B3E06BFDFAF560BE12B4E08A6339FCACE846BBE9DBADA2AF9954A952C62718E796AC22514711DAEDF5071CF0FCF3CF875D0DC776CC31C730687FEFBDF7CE39792DEFB5AF7DF5433FFBC9E0D0D0B2556B87FAFBA6C7769C7DC66971A1C68C05ED31CFD2DD4082EF7DEF7B390C0999B26E301B6DA4693EC527856209065913EF33FA59D6DF57ED0433ADD6388E706FBF46A6989E9973F4AF58B1824D0EC4C87DD3593F01AF8FA344D985BEBEC1208CBBDD90FB95199BADA1C1FEC9C9B1B0DB5CBE62D9E38FFFE93FBE7E120D4D89C69B089AA2DD9818A29207496D650E00AED5F432F3B9050336CB50803028654C4119ED9DC9C1755F56CB667C8C59130CF19D7EFAE9B0201792042A331D3812C9F05BC826F897AFDFF8C4C692EDBEA439E3EFBF74FDAECDE3ABD70E3EBFEB51E5F9D55A250CBB4CCE2B148ACD46ABD309FA4BCFDC7EC5FB5C6BDC8953DBF1022B046F1DE85BD96C8E89F68A7F3154AA2CFFAD2E291A18DF33AF81454FA6EF7871EF507681EE4FE0A8D4CD3A0DF4A556C572FD587FD582A5E466715AFADCB03ECA2A29BBA4AC22FEB3B515774CDF7EA3633B0E59BBFE0F9B1F5EEB2FEF749B591267F44CD228D57A4AC3839B77EC6877BAD8ECC8B69B49D2A36580532D148B8552EA58F5389A0CDB8DA8BB5D170F684089D072B0A32DC852706D4B41EDAA556BF546DD76B4FFA4D96E09ABA1DA4AF0AEDDBB77330B8B704C02D128C54071DE769B9A13BDF9F38A9CE6495CE9E1C8B515EC746C2B38CF97BFFC65B6FF6581D8BBDEF52E7C42042162496137F1434914DEFBFEE285168CA345F68B412CEE290B1158CA2E7391DC486652305F918A35FE64A3111E378C9679D28C4C58590126FDD55A120879D146E66901C7C4EF99C643C9234A37BD6FDC0C7C051B0D8776EDDAB538F3EC9D42F7BD80DE611090D5994738E10E415DA5C79CE846B8153F67E19532BC342AC7689446C48216473307CC17D3602E145F9238C10A207AA8E9FEC2CDA14D7FFBDBDFE6229A28312A537E593778ECB1C7FEE8473FD276EBF838ED44F10E9912584AAEB8BBD46AB5C3C7B2C1BC7AFB74E3D942D1A70601C5B6502A05D05C2C6BBF75EB9E7BE69952B50A1AFAD297BE34D8DB4788706A2BECD7A855548DF1952C5DBD7ACDAA15055B9DF8B6E3699092CD61E46C9072F9E597937F49171476AF6466A4563A82D6EA35BDCD461B1A4CB3AE2B0CC0A460A6C7091407D5A82BCFB5962D5DB365CBA8C668B18A51BA476B012B6FA212BFE8EDAF3CE6352B96EFBF6B74AAD588FBFA87F0310BC221E1A228E8769A38CB4383B5B1F16D0F7DF98B6AF25794DC9814DDD9B96A632B230582FC574777E340541B5033F694FB227E1E0DD43E369675CF4D97AF58B163DBCE430F3BECB9E79E6BB75AD55AAD91B151186BB695D22D468840D2B0B4A990D328DE2182D74AC9A1345F5B4812E838811A78FB2537CC287BD774BDD4B77C26EAA495706D7744F7950B3B94E8DA90551AAFF89ECB4E53D68E5A3168B7C26ACFE04C67A2EC175BF5D871D30D1B369C79E699B8F30D37DC70D6596789F9BB4F8E601965952C5B63BC91879C674D7AE02C8246E0DA4E94CCB9437596A5956567A66A895BA828D789828253A8C7DDB4A0291C62C3819CB0EC92651753DBD5EC28EB0D655B6B62AFD72DAD5FBEA23D391DB7DB9EAB66BA501AD2319D569482D03B2AF5955E0A28FBAD30EC2FFA05D8C885220EF66CD89DE83627C3B0994104793A47C88913BB11452D0D6D6DC58E0599A16552BB0521A10DFDD61C589964FD1D72C821071C70C0FDF7DF8FE95375907A1113A2D85C407AE4E97D5D284E4046C9AC4895F915F839C983CDA8ADBC8784327214797EF993FF365CCC177DB92AB3E1168A2B702EBC397505B0BE75EBD6C1FAA15D48FE6CA668337AC1B03618269D0DF8E4B8E38EBBE79E7BF020CA48723C2CDD9C2420C7944C29A643F1917C3C2D326E80245F8B50A5BF92D289AE7F225508CE333EA7B4A03773EBD6ADFCA1A03FCAF648E5BDCA545A13F7952A0FBB806200F3CAD6787AE90B63AAAC1853A66A207B26EE17715E4BE1ABCAD1BBE4E7BCD53CBAE1A2B34E8A2E7B5021588FF6CD25C99AB56BFFE66FFE069A828685C37A66BE2CB29E8E110F3CE0E08331A9348C285138000966B89E7FF80B8F2A577BE2A0FD0F27BC09C2A054EBED264ED0AA3381EA939FFC245BFE620C64B2E245E57291946D1BC6414359114C8BA9C946AC95BE6468B8DFB5C3D1D1B175FBAF7B7EEB36C6915821099D8DA395C4212ED12B5F72C4134F3CD56842D85454EA687F97AB196FE657813AEFF85EA1D999B555E2D820717BAA35A7776046AC7A67E628084719B116CE5A5FE9A82037D86DD6FE44919D593CF4A1835DEA62B76673F59A35A0A234B148755A42479197D180DEFDD65C762C1E01C3F1C61B6FA4D663E52DE0E7458C459F2259EEBFFFFE20B9279F7C52424AF324C150B23E2DF6ED6E6F5FBEDA6B8C6D8BDA6ECD5E1AA4F174BA0DF61FE51683757A5C71A40ACBD27067A9A03A5DF05B4F6760266AEDD08ACD63DBF1201C1306395970EE2CDCEB4D62833266AC0C2D66522FE999D68C69FECF7B653E9C749F92A0D7F6DD40BBEFC6DAB356C1E986BA7858B305CBA9584E41D9569C841A152E89ACB496A4E5CC4A5851EC5FD2DBB762C992DDE363BB77EFF27B8BBBEA539341BBE8579CC4EE846D1CBB725F5FAA411093669A40704E479D7A9CB433DDBFE63878BA955A516C3555DC50294E4868A5652FC3258B42D8043A15258E489334E8A50C18DC802DF9785459BD4F87AD74941346C4409DCA82430BD90426E4A7CABD20D4FCE8F3100C4D42AB819FD0597DF1C5177FE31BDFD8B87123B81358D622F50A4CCB662E354672C4114740FBBCF6DA6B17971C3CA10C79EA1CB69111CCDD8C6F71DF194C66BA30B36C449762753DF3F259B3859FC0D6995341545EBE287167C6316EBBED369842242CB662E7809C3D7BBB2BA33397183BA6B388929C91E173CE3907E799698E8C5943C63EF2C823662761DE415AD0E030638D20EAC509235916F4F93032C14C7072433A46D8F78A524D1C26B41F05599EA28EC906F3F22EE805A2F19E18FDA4647B287868AEE2B724B8B9D4D25673190CB11D3BDCAC3566B33EEB168B51BBE3652E9DA8DBED1F1AD24CBCDD864C4F8210561B3340B062C4B23EEAA8A37C5B27DFBDF33DFFECA49115347AABA5A96618DB7ED1F73EF0810FB0938F32A2FDE234C02790433FFCE10F89EF8F33D537509A9E1987DDDC696BFA48A1358669D5EF6BB69B955225843A1F767A7AAA9D4E4BFB6793B99D355BC9EB74632BADD79B904FFAB68D19CB49FCA2EA30CA9368A4BB24C07A163502606BAE3BB4D4344185D9BC793389B55CAE0A8C28CFDBDC194E3568FE40D60FA7D36E6728AA49A95C86CA5FC8EC74BDDA71FC837BEE79F39BDE846F4786978EEEDAA5726F98B650751ABAEDD873397662474A7C6B9F59A4526AC02279361E21AAEE3E2581B60A8AAAD0B3A231B5DD8E941DAAFE5A79B2D92AF6D69A382389A2D592D5C7668039815B2D47B0067516A95BB20A41D549E27A1867874E7CDC6440F35AE3ED932308E54B561E2358D2C4429415B5C08D38136C1B56219304969DA8DE2419702B85485BFFBB5A933803B095AA5E010B54B4DDAAA59378B0B2DD386AEA14B3A40AC96BB9852072D2EECAE288EF6818E4DD13E36934EB94CA4DADA5BAC5D4A914CAB6EF35BA41ACE2E9B03DDA698E2B1D1C8E6CE5941CB7E0F775D334D412066BD9CD7A99CD5A4957C54E365DCFF574F81D62200BC5911D91F8697B812A4E3BED34B060ACC935D75C73E185179A15489209A2F288B1C0182F82356BB689355792B401E94B1E62C2568AD39FC8698B48E2391A3292D49904BFD0F5CC7CC11B7260B229F0B7934F3EF9E1871F7EF6D967E9E8679A8F447C4D5595F157B2CD7FFCC77FBCEBAEBBCCC638746A699BC05488AC3D51B005C75F10E578A8A459077375589E43CF068F0DB74ABA4E4A2E87D9B9899CDD8C60B06DBACA1579DA1FB7DC720B181FA99C45CE26CEA8321AB59B6E6813064E9618B21AA362BDB89DB7FAE4C6300F979EC74D9B3651A756466A79D62B4A37A7D5ED30C048B31C475FA33D6B9F065814481643D26ECD829584E1D09225F52CBC8905B5D2AC9CC4CAFC1B59A641316B95BE6BFBF6652B57469D2ECC1A89E0E3F3030F3C101379FBDBDF4E8C33AA211C2D41CC058D43C097B85F9CB593372F65F891FB2B9DD029B6E9DFE7C445CDE4D1A2E12CFC05FB4E734DCAC454AED19B68592AF7ABB2938664619ABFCA7FEB9AEA9280B555AB650E8CA9413CA81AF2B6D36D77DA585E2A285ACBCE5EB1D1DF42192D99EC1C915FDC29C9BEFABFCB1B5396AB3C7C453590BA08790A9106AC1CC3D2D9ABEBA4A91BB189057D4DA437EE1A993EE593AA7AAA1D62AC7694662243EDB766FF57BEE6D55FFDEA9DAEB263158DF40D6341742F5FCD10FD56148023970A7E27EEC645BB1B755437F66C8DC7C359F329CC14A0B3F1FCF3CF873E77C619675C75D555649A73B59F19F5BA9E5370A18874C1735DDB2984511F747F5DD49B3A7EB165C5139D766F018A3D147FA710A47E92B50F89E3C9A0D951B157761BADEE48B11474DA5517BF0E4AC572FF60DF92E2C0F6ED5B4B457BC592A1CDCF6E1AA8F53BA9B7737AE756E505563A9942B5CF16394C868A15D819975F70E1A5D75EDDF0DCB146F3E28F5D72F9959F887DB79D066977AE3B61070499614AECB336D8DC4711AB0249201C8CFCEAA28B2E6255364350AF7BDDEB1E7CF0416E1938386162551E4032F16CD4C228D6B454E81217173A332328A7A5FA55CE9495C3A74BD7EE452401AD3D518EF120BA3A85EF498B2A0AA18F7DEC635FFEF29761348B38143DDE6CC2CA3F5FFFFAD7FFEC673FC3659FF9CC672CA96C94F3C3C32399A02A0BC9424B850906CDCEF41B90A6416A37DF7C331DF4025B4D664A6604A6CF94470EFD924B2EF9F4A73FCDAC58628149DE8EB478141DED9BDFFC26A41FFD3F0CE0E06EDBB66DA3334A041ACB8669C42579E7031E72A940863CBCF3CE3B9904C6932C1E556AF7926F4A9F86F406C2230E3BECB0471EF9BD5604C239283A70FF817E5D6E8E73B5748906F89E2B8CD275F249B956EBE2E760C7C512232B507ABEF8C52FFED33BDF59ADD5984B0A6D376B0B1813240076256527235456067B823FEFBDF75EDC9C2820AC3BC7EBD24B2FC5F683083018EC0B7581E1E16150B37076EE111D68E2585346AE0519BA097229DF4AA2FA65975D063E42A81C88281000AD3DFC2959D5582BDC5C2CE23599F7C6CCC33363B3B0B6A964503533D2E7137174505D605544C52F76BA7F4EA781F4D5DC3FE85A7B964A4AC58DE8FB6273ECF9F4F992404EA9CACC6733C18C1A1FD7C7CAB0284836A6BA9DE48D27D31C1A8C5635368E4172C951C6F93CF7DC73F109A1A4C3EE5C025E94CCE102411AAC3FE08067766CD1A93D71A2D852C252BD4B97CCEC1EAD94FB8E7DDDEB7F74DF3D83C3C35BB6EBA4EAFEBEFEFAD454946F348184711640E7DFFAD6B7F05090074E8A09C30EDD0B9F8F2CD59E4C185E2A0BD682E1153D0D4775E8F2957E90EC18D77D0522C782C900330B6319B0BD3E18A3CAF11DB71D068D24049B1C8D1A4B7AFB76CC4CF766A83F054B1FE75DD3538376D1B3AD206AF76AB32EF51C7F26EEF8CADBA96B17BD46D0B13DA86C961B267D85521A84B56A6D57D0D91434BADAD55C6B773BAD288C2C8D3204834A2F3819719AC846EC531290E5D10349FB989C8DD182A1CC0A9776AD048A205CA6C0388B4E831F529735EBB616C1A6357B4508E8246BB3440D22650AD2B5C818B2BB45EECFAA2CC29131942B703814066C6446BE8D6BD83C43E5A08AA6DF9BEA027D532A4B789D534A947AE94B5F6AC96A52AB4AF3FEBD2682ABCAB12924DB9A163D4B6DC5A38AF7601C1FF9C847642D68CD71ADD93D0677A3678D48763AE13DF36E73E9C9139995A50CFF97E99EC22E9E7DF6D990EDC49000B9E387DC5191BA6906A306062A457799D6596525B3083C8A0D712B1333529AF75A79711C6E9BADEFB3995B094672F679A7ED3A2E55D4EC1C657A96E3A6AE3ED960B1B8149F13C3A358F0C1BC72DE91CE64CEF71ED8466363B81DD3619972801112BB5B4A4EBEF0852F6071D882ED37BFF90D77870616C606FE8B93FFDC73CFB1028522F3A4934E620A8100CF12559114409B8C9E44493950B9FE2EE1475EC96FF1A1A45451E4ABCCE7031B8E92C354AB0935384F654EFFDC4C71AE84858EB81FFDE847279E78626673A4ECE224A9D0A0226DC70421138835AA7BE68DF2B3C52CE425EE6276A47B76929083BACF0366EA925831989EEF7AD7BB5819C4846B2EAF207AD288C40859D344FE6E9A1D72A840452CE93CE8A083DEF39EF75C7EF9E5D28D44DA206B902EA50B740BE54AA353B7A14EFB85C6D46C5F4F6D7AB63ED0579B99AA57CB3A89A3E0FB279C74E25D77FFFBF8AE891B6FB8FEECB3CE05731A1E1A6E353BCD7673A06F686C7AB7883DCEE898638EF9E52F7F29270863C681E218F0EFE9A79F7EEB6DB7EA2D28F9B6B2960D0F8D6EDF01B375D0736B96E7B403CF767B960CFD69E7D66AC12B174BE582E784493ADBF2D2A4CFAB3A961D401BB2ADDD51735645AE65C330C193C0BDFDD41AE8EF57A9DD9A99EEB1DCBE923FD69C29E8307EA9099152CCBA8CB43BDAB281508955AF5B8CDBDD31158F3BE9B624687A59F0C9B2D3083A01D8DC9C06E0B859B4320A4D0CD7BDF7514CFCD86855249789E743E06468CD93D713AA40B213556EB799B01F8B44F2A9D14A46250720006BA62222F75F8420F796343494190E246834074C9DC9F483498B01362497A2744145A35F88DC9B66BDE429FC59A29ACE53BCA005FFE94F7FE2B76632167579B67CE21057AD5AC54C551C12B34A9B1C997E89238E380277E3D28389DF78E38D04D18DB3AE58663319CA491A07341768649D79E6991B366CE021945C31563E3379865355B9B7847BCCCA52E9392ED3E11C059146D69D903BBC9B094597F13B6D762471CED4ACB9743D694C48283ACB5199E91042532274873E057ED1CBD6900122C9ACC523FA8606C197F1E7BFFFFBBF633DF11574C665CB9631B712D63DC533AD1C2244615258402C0EA4202B2A98E546B389F5048F3DF698CAB5450C8CB5812C8310BA115802E11A4EDEC75465B900941F2AB740DFFFFEF7633C96019062BE606F412659399627A5B2243552CFB072546AEC080E1B1E87B99B05BD925D4A3163D1E78E9DF532CF6C2677FDAC1AD92F15A9EA9A99CD7B3BA316C9E2909346BEC0D375D659677DED6B5F63550D5360E53E5864903A842E03BCE6E34CAF6B6A74B3E00BBA05E64BAC3DEA80DAB6EBA8BE9181ADA33B54C15661F4E98F5FF19D3BBEBAF5D967D7557A669BB335AFDC0A5BA14EC07740E33BDAF582EF062A6D45B157AC4C4127C3F6957B9BDD261470DE905E0EEABC245D0C180470E8A187FEE4273F21F488D4396A375746A28E9A330B063DC70AE321CB7FD94B5EBADF61077FE5AE6F75A2102A6E2308870A8501AF5449ED72EAA820B2E2040ADBA493EE6ECC345434A952F0B6354B8777EE1AD388E8E5B2EA8447ACDD7FE5D0926D9B9FAB77DBCD24DC529FE975340C101666C4B2AB96075BB847156D9536970C3F3CFAFC6CB13099841A9A65FB68090A7214AD58B91AB4D16AB774A7FA2CDF699FBB694A0232779210FF24115A7903E7D5AB57838C7101F61AD6124F2E0F17FB64085B64D6BF84A0F6DE537941E53AF5D4536FB8E10650208CE63FFEF18F2296246ECAC8A5E0DC48F617EFC9012FA4B2305A09FA01CB2533E4BCC85DA92491F5812D1C7BECB15FF9CA57A870D32A12740D933D0A683F2B96A966595292202B4BA90002828D8F5152415646B23F2FC3497EDFFBDE07EECC6A5B2A44983363D6CF3CF3CC6016FDA359200E25137A5BD8347DF4D21DD33782695C0569EEC191E4F0357380D8920C2A2C9E82D4CE9A0B9E77DE79581D8E646464045AA778E528C029A541259AF2323A58BB762D0EFC3CDE0492D0161FAC8894AC4D490B0B56B4E171592554A2717282B93CAD6EBBC3C14C4D4E14334707989AE6CBD35395B2F6FE4FCECE61AC3EF1C413AC692290355D37100FF8EA820B2EE019262950E390D6407CB1A0096B45BD80AE3086B668D8514DE0DEDF7DF7DDC71F7F3CCD23490323B3660731EC1D4682AF60363EFAE8A394BB7434615474AA4A812156553BBBB23269B6AA67761323F364A6A26A48408F344A4B881A99C08D98AAD341071CF8FCF3CFC308B0ADB9C43E3DE024ABCBCBE1CA2909E6A54E9A92C05499E7BD4C3C1F0A54CB68414E97A3DC90AE5833E066B61690D4149A1418125689990BF22CC9CBB20AA534EAAA3429169C7ED72B073144C4C1BDC3CD99B161BF36D1AD8F146A9997BCEB651E2430CF4DCD99724F6DB2D5768B95896E67DC8E43B0F0E65C469FD9A74C1A34D959A768E26D1076FE539FFAD487CE3E2B3B2C1644EBFEAB75A71ACC6159B9089BA0D3ACDBFA2CECFFFB2D9BFA7B6BB3B3F573CF3DEBC93FFCE9D15FFE266EB7D6F78E2CABF675A667740B2BCB994DBBB34ADB1A76B9B46B667649AD1724B8796AA25628C641868FADAC7626C9FB07FAECE6B4D555B049D7F50CF63AFEECD4A4A7CF90FD846ACDDACE68C1AA4312B5BB8E65F98E0BA1BFFFFE0762D8382669E6230AE339BCC8791175D97126E993A550EB676107B51951D788807BC8218780AAD9269DC994924249910FE2375B558B6B649F9A84E44FD2E0237484440BE8DB21F828FDFB8CC649899960252D2409F8686A634C58E221321B2C923F402CD1A122AE14E1D8A26F092AA894EF5041B14C1C1ED16B70D1E1871F8EC54A73A0667A75549EB8294D83A1EF808132010E97B129B9CAC38F8C59B36E88321623C3D9D8BC793367888951C1C49F279E78E25D77DD4511CA800FAF91A9529F5279334B668592DCCD947F11068CB8E20DF93BABD22978481F127ED993E32B91460433C905B8CACE7C467FCA2AF8366B9BC155FFF66FFF967C4D43F56DDBAA9D4599EFCFB51DB0B05221C3AF6E367A6A3DB3F52C43D471E97AAA37A0EBCDF955BEFFFDEF536DC46831544EF98E3BEEC08AFDF4A73F15738D0427815F66E9B08BC54B5EF292DFFEF6B72435B072C83C56E7E14489B1FCA217BD08FBC52E2B34ADC882B97482BF64368D619A00F31370433C0E37840670E185170ABE2E37FA7BDFFBDE9BDFFC669543B4F3866623C6BD5F9EE730AF140C8B229F3283B995788301433F60A88381A2346F2941F385BB4F0E681EA7FFB644CBFC5332D33878E2FF10D051F28C05D05856461CAA5453D8078AEE78169A50C7AC662F7C2B90127A3BD2C4CFD2B9FC381D51EA8081A1F6E4789A95717996D55BABED9E9DC59FAB8787FF3836B65FB562379A81ED6C4EE2507358BBAE92AD4AD53DDDB5715EC611DD77F2A1F804C46DD5D3D7DBCD0AD3C52628D8969FA4872D59EE85C9F8E478A9BF6FEBF4784537BB9E05B7AE958AC5D42E4669AF722A61524954CD2F05BED7687722CF9E8DC299B01BBACE78D88EB32EC220FB62B144D7710B9A878A5CC7AAA549214C7B53F7A0A5AB2AB6373A3ADA0ABA41126D52EDB4521B8D43F0C87AA3D157AD75A3D02AD8A582660BFA48528148E2745F4512A6978F1B2730F226FB366B4E55667142C1A5A407F562C560804AD88C6C4A8003C8791721A797BDEC65BFF9CD6FACBC539EF4471320E7796D4AA5448E063A9E8ED558E88C502C41D9C26A4023BCE9A69B28D294815B4E8D99EC4B0AA4A5124B19F8A3E99E45C8229CC0BA2DCBA89C32D53731284CD816C29B48D34786C518834DF2A6C4900DE462581431672EBAE8223035BC977D12FF97CA9D186CACCC9234C96C39E59453A0DBF2CC633974364510DC72CB2D1FFAD087C421208A9B4C8162405C46AC6980A6FC777FF7773FFCE10FA5525C744F8AEE7BEEB9E7A4934EC257928F2FE57FD98BE9B3366C55BD62764C6EAB0C686BDBE81FED6551040DFC5B2AC3C8B5FD029565BC2632A6E36721BE508B482DD58E38E2884B2EB98454487E072DE0B4D34EC3CDF11432DC2BAFBC12D440B6429F3E970E5F610A7C2395AB2CA0C36574AF898754B2ADAD3C0593AF78CF7E612CE9A0CB1E2B4F3714AEC79661606076827C69E6AE606D25B1612EF573CF1C5CA8A2D8CC8C52A9C7C17822EDCD3D9ABFBAF1C61BCF3FFF7C81C732951A897E8B12A37213DEC497DDDB53344F12A4796F716676F35428C38896749479E529666E923900931D0BEA80E9FB12E94573B6A2D472BFE474DB07567B261AB32B0A5E1C859D440DF756A04F2559D7AD94D9A8B6550B52A7B7E7A999D99A6315622B52CE64D979AAD509B3430432605D0B551FDAD094A604E816C8FBC30E3BECF1271ECFC80F82C82B17BCE6CCACC67A8EE295E55A214A678206A631A97D3238983DA393B3158D27A58122FA21A252AB57B9037EB51D74972C59BA73D7A857286D0AC63EF7D95B3FFEB9CF6EDCBA39F49D5DED399190E8E264B5B40CE52618046D58854AAA96FA7D45D79BEEC0A08BC6938653284D45E134CC13E5F4F7F64FCFCECCA6A153F6227D8FEC4493D1ABF931FFBD2581CAC303EC53240908140F38776F7FFBDB7FFEF39F3FFDF4D3FC4AD2DF5FF18A57FCEA57BF4A33DC5C7EC21A0596A14816C942DA0CDDC24C522224119324A9F893F308D36346137323193AC268A1EC0B7F9FF7BAE28A2B3EFBD9CF625476DEEF1D463F243DD1C07842A5572BE959143BB90995457E452287A2FFD8638FD1C6A5053C873B24A0C192FC97EE8999278E486AE2D2554A1A1570F22677304305CC791758698111A5AACE30BDF879CC7C5E4A0B6C092E906456EAEF82C9271C4D0E3F0B4CE87A6288822BC2D1E257C4EA115E0FAB0AC378EAA9A73006E6C92C5BB68CE00D52BE0B11AB375265F985DA569DABC56339A2A8C6E4178C0DE8FC30D7657E7AEA67D202E2874950EDF6CA356BB63DFF3C289C0AE90B5FF8C28F7EF4A3E2EBC4C5E0FB58F63FFCE10FE2BE90380F816508D4A3D1833333968B23A94152E26BE54D50E99D60E45C2A7184C75979970C4620409DE79D771EC430E3C32AC7E1C0E38861A28CEC8579BD79D59E0E196E10150E58294CD703A1552A251869940410B41C00CD44A8CF843717AD4A421AA90100257E21D28CB8EF4D2416D38FBFB72420BBFCE0073F78DB6DB7D1BE8CB33E910C6B3151427A7D98A066F342E252C328DD89B9DA74D9310224BDC6B4BFC276F61B5A32BD7BC7D1BD4B3A33A3455B75A0A117D5D2C8E984712FB874B65CBBF1DB825B0F22DF76EB05D5503198F55052EC26DD1D2AC5C6FC313F9B3C232445A92D905D2031CC6522F664F096692A3681AE068893953DFD154B671F753CABE3AAF146ABE865253ED07ABA613155C39E3B903AB5D8AA396EB9580A1B9DBE5275BA5D770AD5B124184D3A9389B6E940F41371D84892652B97762726BC66D86FAB925518F02B4EABE36BF15048CB7E5072B7CF4CB4A36EADA77FE7ECB46B610D2CBB58D8DA9E76FBCA9DE9D65CC20571098D04F77D4A02BA6AB1F85028A1A47FF7BBDF15679DB41E03E5BFE73DEFB9F5D65BA9804A5D2A0102085BA2321708E8E1861B6E108701211F16D1D9C994697B096E1B85CDAB5EF5AA071E78800CD02C939698047D248B782F2511D9F49A9A3DEC4E3CF14468B11C21072CF12AF1CDA83CDC8B7F314222BF51079D3B3566470B93C425819AE9AE1C0A0B2BE600613286CEC8E1BCC4C1C400F4971A0739784CC630D53765A41B2E247B252A68967570C2181515378665E8C7A0B794C28904419F38383E4685AD8261C1F47C95D70C63D161B89C7CF2C9A2C7411E60BE26E2AB084EBE37CB7C54DED998FE773C88ECF2F5AF7F3D341189BECA26513BA0D22132E9AEBBEEE2B7F8EDDD77DF0D2EFCF8E38FD396A4778211027AE1A16EE0E9A03033DF696F96A78CE837018524CF817E55DC641E9C3DBD46748E49031FD1684C170D0B3ED9C98E631072174639CFFB4F6F092B7458564D158916213B32B2191CE53DDD6E18092E83CCC653244BD89CA3655426327A814708EA09FD99A2C1984B849F808021ADD9CA58DC59A64662FAA0A094610CD27543528C04898B0E226AE86EAD58DF3DE5A70EEE52ECED0B1CC872AB3D35F18A48F9E07BB6E3C52144166E54B59C8A8F1B45B16365B5B8DA74AA28ABD72DE2E76D2B69479D482515D72AB9C5304AC6A14AABE4198CBFDABBB131030D62DD81876E7AEA295F7777A8CC046DD69FC37A864AC1800AC5BC19DB703DE22BA44B633B4E93754B574E4F4D411F9C0CDBAEE736C26868D5F26D5B775C7EC945575F79D588E3C26C396868E58EF16D6B545FD9F3C19B1D3A125C68469017C1A46A45AEBB338ADA96B2CA5614A67694A584A66AE5506F6BBA51747CA8531694C272F96D27FDFDE76EFB6290442D1576951DBB76D7B61A3A7CA2A594A4DB936FCCAB9B93DEBFD4AC69EC62978F3DF6D8EF7CE73BCC6761112B49149B020B1B4BA172843E261F523192F43072734960A379214C9F2424559C144E0BF1AB798AB9CA429B74AA0B4891328A9618EA23131356CC534F77024FC7FBDFFF7EB0298A1F8C44324ACF3CF34C0839C17C140B95A4CBC5C47C851550F92355C0FEB67862CD0C3CB905411D56AF5E4DD8679CC617BDE845BFFCE52F390122C7419662298F3AEAA8DFFDEE771A77255769892520485ECC0E12E451A6E898C9E6223F16C9D61203903C9DD6C6BCD6E4CA805665522053AFC4DD6FE568246C3A4F7E47BF2AB79FEC065F11BC4919FA32EF60661F838B7DF18B5FFCFBBFFF7B2270903AA5FE882FE2669B59342A33BF043684F03BE29AFFC637BE816140C8C362A5735919A5DDD2C8410C3DB38C4BFE95B525B1324C444D44CA4CE679F0C54F22A8EE5275A1320F9ED00646256752E237EC5277E49147327D82D449AF05614FE8A3102500C715EB663A0921D1F1134A0833E141E243A24F584627B27992402C45F310D2BC30D1D9E851A41816B39D8B402D473214B8EFE235C614DEFBDEF7DE74D34DF40EABDCB5C88C7552B2A98279E5C2AD9FBBF9C3E77D582382694CA46ED9B3933079A5B2743D97AD7D8E6E9A40552959B60F561084CA7512CBEEC4E035CA73DC02F621B58254B513ED31A93856C9F192D89E8E8386360BAC46B1B011ECA3ECBFF8A5AF78F24F8F61AD66EBD3CB972DD7BDE99B4D661389DF43D66A4E0ABABA261A0F5AED1561764CB71A2565B554BA6C7864DBD8EE33CF3DEBAAEB6F58B664B83E3D8D61A49D4EAFEB75A3F0875FFDE6C51F38B7E87AD75F7DF519A7BFB76AF903FDBDDB26B7F47ABDCDA855ECEFE93AF678AB11D8A95D2AFDDD716FFCC1F7EF9D9D98C2F3D62C5BBA65E7AE91DEC146BB5D0F3A071E78F0EF366E746C37716DF03FC8800E3B10BB4E4F798E51520383C5FCE8A38F827A311DC1A82751F1D051C157B9DF83D61BF13C78A2091F8DCDD2750F39841C7F4B6D989625CE3515383B435326D09060D34A892FD69300FB8B4492F908F1C2CBC5E2E190B68CA4AEF7BDEF7DFFFAAFFF2A37A420A14EA68C923A1AACA283E28D6863FCAD7482E1D92101930908882934426833727C0E39E4104BA0B884298B0A4C712428928CFD527FE4F6C8684472EE338BCE2CF4852904E58B1D0BCC879A518A7DAEAC19BAA079253259D2B0AC1CB38C250BF4D2323CC295227F11B64B8E40E12CFE7DB1DFCDC69694D5CCED51B94B5DDCE50C9FC8E9622906253CEE49E81E91FCE25590900EED44366DC66E7DF6B39FC50510EFCF3CF38C242C127C54F45C0199C053703630069EF3BD6D020A4B95A7545F7AE9A53086F820DE5CF829DFD0E0E3F819121725C5F48D9046A9EF5378883FD4AC1B97B098249E72EFE87DC2BE60112ECD5E941034A83141DC8D8964C2C731123AEE247BCD94796602347F75FDF5D76FD8B0814C90C8A66A4F67919DBF30482E883425557938CE8C3D50846B8F6AF615010F24539BE955CAA8272071AE58B274E7E828D46DFCF0E6CF7EE69C0F7CF0D0C1BEFAC4F47A0802ED1183BE9CD849CC26BD6ED633C077ED822E55D7141D5B2AB09230F3DA76940E1D941DABAC1C954036A481638FC541B3E86C09E219470DAD5CFDDC961D7EADA2F1F8E2849A9CF87525866CAE9BD80407F68F4C8E8D1DB4DFFA99A9E91DD36396B29B0A46E78ADD63E3CD4EB75A29755ABA120D4B30DC536BB75A034EB1D96DC2105E5F1D71DAC175575E79D5159F48A2B05274661BF5A9549B046EB132D6691CFE92A31FFAED2307AFDFFFB96737CDA4EAC0652B1FDFB96D69DFE0AEE909CB761BD0AE4048B61524693B0AA20CE26E5EAE8E44BF30546C289147597E2F453FE6957CCFF8307689E5EC250000FFFF49444154E18A2BAEB8EAAAABF01369788E3DC5464BA5BD34C79DEB8491C778F19E6BC80E71D4C9F889D4242D124966B2D6BCDA75868EE9D510FC3406C32EBAE8A2CF7CE63352A4468552F806450B4D5E713D61B29C3B59313E9752F679AD0B2830984A2ED58EAC57A5566D516E982E63DE82E81190154F3EF9A469A691A420E5B02E66337795376B26B6A87812E8A561C7024CF8D5AF7EF5D34F3FFDECB3CFEE33C96F6F3FA0BC843878EA98CB215695C83D411DE0AF049B850E32DE8171125A85B2825C77821A0A3BE314A8D262FAF4F3B02D06AE39F4D0439F78E20995433BD10F4BC927880BA6277D1EC32273A14542683C53E7259D095A322E20B612C5153D362AC35A989732314F128869297D4DCDA6438CFA508F90E51589CBF26C1E15FC09298E8DA3D383B29C2441E6C8827E699F24BD2224A391A04C34AE5566A872F1A5E8814506323C7A8DA4BF317D3E6CDB39AFFB8D3280C39826C8B512B6CE2431B1C6CC762E928E25D03118305806E490148E89E420B1B1B24FEC1B91799292CB5340576430D568A9B86FC9E0CCC4582552EB5CAB274A97FA3099B37BEA163DA9F6C4E3AF34D6A8B58E2A5A76057497DA71AA9A69D448431C270CBD9BC5608BB6AAA47641A307D9184D3768B77C67DCB59E6B46D00574CF30B015951CB86215F820E996B441DC02A3A57B86D1E2D95CC325850A74FC89E9A9C172ADD1D2CDE9CBD5F244A355F1DC7618154B05AC026C1ADD81A3AF67627C661016646A799D6075FFA0DFECAAA0E3ABB4ACDCB5BD03DB67B6FFF50B5FF38217BCE0CEBBBFB3A9BE3BA99476B71A13A95AD5DB57EEE97D72EBF3955ACFCEFA6CB1E8CF76BA56991A4992E149D8CACED4B524EEC98ACCA5FECBB46904829BC85AA4405152258785F911D4974567259991E9E1CEA79E7AEA9D77DE49072996E5A0830EC289C642317829F622F3D6E8FF249DE071D0C916EF3167E5F065F44813304E42B07C22E19CA147620CFBEFBF3FEE29AD8CC9B5CC3C0E66B8C264219403295992FDB0D72CF3320B1E859F33EF0EFC0DF767DA2116FD924B2E81123607686FFA7365045470E6759464AD00E31E736D6EF226E3E4C8C28B05FAC6B4D0CDB4161192FF73492036814C4C2481098363BE046158CAACE959120DC236A05C793D5E8C48531D662F4C61F1471D7514EC32E6C2B34A8B8C92811681D061D8938C8FDBC6FCE27D962C72C360FCE2DC0A040A87C4B0B6B06C5A3394313C213CD204663095596504094C34568CF9F4D34F07E98328B1FD98297F254524E4A7D44AECBC7B1F5703F635F823A438C50323E45C49F6AAA3348591CE88519A37D13633B51855335B8331A949F08E703DEE8687626CA2DA706D993C86AF04B7759F924028EDCC33CFBCEFBEFB9E7BEE3909A2A83DB16BA410611E3E15D6FF98638EB9FFFEFBE7D124D747C00D7512CEE38FAB3C9C48DB941D5E4593D09ED2447531052754913AB2B7B6265256BD3E9075B54B991964D99E5E3A6A63495AB0FCC42AA52E2501C4C0B4D28D5CBC2C375F9725DBAA8A0B54EAE3ECFAEE40984CA978AA608F86F1746A8F820356AAA3ADA6AE54C83C96D75C730D73D258692F5EAF7992E0AA8BFFE5B2CB2FFFDBD7FCE5430FFDBC542ACFB49B56A9D08DA33484366377C324B35FEC6215B6DDECD235ABC7B6EE483A51D952B5D41E700A438552218A2B6EA1DFD27D8FD356A7E4149A71D7EAA93C3D3BDA3F32DC4E9D4D63BB34A444A93CDEC6F8B0CE7DBB26A7BD8AD627740646AA74DAB535270952C3C1C00D65BA07F708347FEDB5D79E76DA6938B0243CC96789F366EE175C70C1E73EF739C982A1424D26804DA7E262E7A0938CC3895F45407B44833EE79C733EFFF9CFE327A79C72CABDF7DE0BDB426215FBE4577CCABC3801484597164D4DE1E920CB638F3DF65BDFFA16CEE03BDEF18E1FFCE00766ED98E09A905748CB452638D02B40E6809113A44084A5D9C85A14149A352CFE95FA3B06B420FFB44B4378A24077C9B8712F811650B93FDA74CA8BBD6926E3CFABE2210FB532446F412195EA06F53FF60E99F7942662DC42FECB642F2AFE8CA560E1D2AC9A17B3C0D1C57BCC9C5D3D059F5218961090E903A15E6C760AE48BF797D45DF62AA04A824FC87A58912B7603A9CACA619D446ED36CC21DBEFAD5AFBEE73DEF317DDF5C25620DE1CE92BDC00003AB1056AF5E8D8DFCD5AF7E25AAC4BC153307BF76ED5A6C396E888B5FFBDAD76ECD5E4276A478AE065755573C64CA35975A92D548E55C73098C4B05BF044E71CD4B5FFAD2871F7E587A8EAA2CDE4093564AF94C5187B1C1903FFBECB3550E30276DCEA06362D7FEF33FFF530A32E7614CAABCF3387E22B05C98FECB5EF6B24D9B3649DC4FA8942FFA06193C14331C328FA11DA167F1E69136C8FDA5904265851A189B9D77CE11B1B7ACDCEF2DEDDBB2F379A79D1CEE15D68671AF8A0B19E45CF6DF9FB3AAE6E81F9C3E8ADDD876754B19ABA1C24656C46B65EEFBAE76A15BD55855555ACCAA3196ABC264D899B6AC595B359DC2B865EFB2AD6DEDF63FFDD33B1E7CF041EC97B80294119C547B7987064A95925F1C1F9FC0773558D251500FA272AD08E9D469613D97EDDCBED3765CBF526A3471FC753144B7DD29BA4E1AC5CB6B3DC5242DA6362479187746EC728FEBD73227ED78521F195C323633F54FA79F71CD4D1BEC5279A2D39A4D55A5A73C39DB2A574ACDA00D1903119046691464158E4A9F946A4F8D7445751E2401460C0A04E590DF094484E423504766BA173EC79164C51679BAF45737D585A38F3EFA91471EA182C502A379D59A698E5C2426382FA60B5A328FF7C9AF6870339305EFA147FED55FFDD5D5575F2D0C9326056D5F56A5718482734CDA60CC75EFCA5CBCA1485339C40B380F0EB848502AACF4007319397D582138983FFEF18FC934C8E4FF9C732D78AD64556C000961F595AF7C85D6346D61E2C5B3D40DFFD2C34E66413B8576193550F19388678651FB34C79350FFE388F13C5B41D204B94FE2A99897DECE79821DFFFEF7BFC7F2D1A1CF84192657C939113F204984EB2EF87F5C1C7A93B97C521E421070E165E4BCD05988966A465304E132FD3308CFDCCA83BCF038E8E9589CCB2EBB0CE4422425B3F1B4CA9385B9C8B4DBF0158CCAA79E7A4A2A03E6D9045478992797E695EE2C3DC327E211125B52E5490BDC566650D04CE48ACDF3358BE0A413765E5C01E2F0E69B6F16F72063B9E28711CF1EC52A4C57AC182D680A3F9219DE6335B0232C5291D68CD27F4AE5517D1A1C0CF9F2948ABB96A3322358F3288A0966B6016228A5D76216E01AE60BD26266348F56C5C73EF6B1EBAFBF9E75366440CC0F713AD164D8548E5ADD3B30343EBD5AA5BD1A9339EDD17EA11C527B0EC39A940D861882406CD7892DBB13859D547B4E62E5CCAAB8A9C763D552AB02951F1BE7A8C1B45C4F82868A669402831C576A9B520DBF1077031E6D8C017B2D6540F3D43589185B902E65DF4954ABA3FDEC7ED96FC5A1532C741ABA00ADE879769016DCCCAD1776D7AED97FF3F3CFC0046A761AB5DE5ABB51C7F88A96F22CB57C6018B7DC39BEBB0F9AC7C88A99898934D1FBBBBDD3BC7EC30DFF74CE592BD7AC7CE2F96D6EC9ED74234EDA722DCF713349A0FB1CDB5951719C2195C84136B56F1C13DD143363D9ACED17B214BF9C3282972AEF14468141264063978D5499A629CE1CDA0D64F7F857B22B19FF33938617E157B462C57D4D258915A3543AA979280311525CA3BA4075EB56A1400E4C4AD5A81891A3DA79A3785C005375FDFAF50F3DF410FDFEF2733C8BD0C56CE7C03A06EA58742551A5DB238B945A8F95433C62A0445FE10F88B36A16374BCC8D87567CC45C4D49BAA0334B0C257C28FD58FEE759A4F69E8DC3E4B70C6C0A321207C96D20CE9D58365028DEFAD6B7DE7DF7DDB8926A057828989724B9D2ABC80089E40E9AAA84F44C2641B0FC44E5A95064DC2411618882DD2DB9BD12EB56595E0AD3E7C5C117E7EDE198CB44F43791521C06B780A14EBAAA923D3138CDF5E44E51F2D1A7471471A9D6E6058CB349CDA0B00C4171E1411263D94CEFA17B8AF3E2DD447449F921A7607A3F99CE210C940F12C290343E395771DE1543653106668B27790B0426754803327A8A2529801E2D19B0A44A53345A19E6AE3C826E5399A9990421E5A366362AAD5E9A0B221779BCB57C0AC39E55CBC727775F76FA871EB8EEA6B5CA8955078AFF1295237D257343B1B35215F0B1200AD99139B534F25A104796D2CD1DA7128DEC8F1F55955549B424702D35E0D7EA51B791846D5BB52C7757923E1D471D4FF5963560D9BCDD14BF9CDA2B8BD4B5DD38887A8A252B558D6EDB2F97663B6DBFA7A2BB2DD5DBA542410736D2C4514ED1293562DDD8245129B6B319B621018A50151CBBDDEC622DD2440D56CAC33D3D3B77EE3A686878F7F8D852BFDAB0AD994EB3EDDA936104522B55714EDB10DAB695856D223D2FC803CC0F8230C9849F14C4902333D183AE126E9FB04E12032981F32275E1E0D31FC21C53E6345E78E185575E79A5E4777135A41FA489CDC04D14709434EF4A22DC729188B132D21DC5409C2786E5B432AB07548701E398C08AFDC52F7E314F7253B7A03A2E75E31C0F9DDE1FF8C0076EBFFD7666BB304A4709B16EDD3A5800DFFCE63779F4A4F022CD1119E64E0415796A4F9C214C8C134E3801AB7CD34D3761A1253D4BF891509244B479F04464496C532A3598C1CA33264EDE390016CBD2C0FDE3E392E9B54F09A18CE47DE159E29EA24227A61C452553B52485860113E8EF4C9B31755B6ACD26909C689A8BA0C51E7FFCF1902BE402ACF3A480614A005B89420179FAE9A71931A6A5262077A6BC945C058A07137969C58A15784F3811D3D6D9FBC51C38E27FE06E340238F1ABAEBAEAD65B6F85D81B1919C16E8268BEF39DEF10A3586C41E9D2B3902416EECF35613C033B2BE57E54DE8589EFB3B801363ECB38B8477606D644355F4A464CA0FFBCFF572AD4C25C11D0275686AE4BCA18CA51264751D4E126E79F7F3E8C5AB61B224F5159058038C1CCFC5409E353E13243DFF82133B8C518E7237814C961994945B98B37B0ED30186CEF8A552395ADBB5642E9EB2959B36DBC894AAEDF89F92CCBB175FB972809B28A623F55A58207BDB813E8441A5BD9896D7593B869A9D8D65682C62082C98E63A5EC1EC70DE2A056EA6BA6C9F6CE2CAEF73DF719DBFB7DD0D688ADDDAEB895654995BDEFFDAD785E076684BE83D7C19A38965BF2BBAD8E2AF92A8C5510AD1E5E3A3136FA994F5D7BEDD5578FCF8CBB85522368F995EAD17FF1B2877EF90BBD3BAD96572C25961DB73B2A8E7B4B25309BA0D359D63F38A3D1B3EDD8D66D2967C3404B0E9C8846AB50F2834EE828ABB752EDB4B40FA71376532D135CB16994E1598D33B87239A7F413F2EC53DE8B862BAD024C15D374804BE63E9628CD00690E38E080E38E3B6EC3860DFB5C1FD1CA4D507753EAD0CEE6D8246CCB236FD6C9A70BD71F304BD3CA0BB0E4260B9D477AB971FFBFF88BBFF8D9CF7E663668D9FBC50A3895638352B84A85AF9625922B2958FF742AF1880AE8B9CA1D2F8C91D29E9A57A74AB2A3764C0B1DCC824690D482E175EAA9A7DE71C71D18349B599A4B83A564F04DEDE535E24BBAF49141D0CEC224C1DD44AF274D98DE765C20A8322A77409338280231F7B7BCE52D8F3FFEF8A64D9BE6958F99780CE60BC3904423C15295465D66C72E321D6A8BF44BB2D726374632B5F0210749F074D6B5E2579FFAD4A7CE3DF75C69FCBB08715054D0716FE5ED58959189CC91902E4F3EF9E4471F7D74E3C68DB27DDC59137C69DECDE53DCE0C268E457EEF7BDFFBD5AF7E950BAE72D49079BAD2DE125D946E920AFD8DCA086ED3636E76AD91AA0853E3C67D087A4AF3942781F7610E09C1F84E3FFDF47BEEB987F5684284266AD8DE6792BE29301D6C0AF3FC4E3AE9A4FBEEBB8FCC948E53A6215201126EC5E3C091D35D562A55DA9DE66B6A03238DCE8EA475786FA567B61B541CAB35571A09D6DC8D936614763349E041126408FE31FB2F797E90C65D580659CBDFD05251A2AB826119F5284B4790FC42B715769415969D6ED41D0F92E794DA59AB36EB0D656455FE590F5D401238495A2E15D338C93AC364C50EC5027EF6A173CEBDF5F3373726A7A1A4AC1C5ED6ED74A6EA533DE59EE9D6ACE5B8856AB9D169A7518833D66D4009287DFCE39FFCC879E7C3B4AE42116C367BB0655D6D2874F5645DBF56A977DBB6E746B07DDADD6AB5A2B17A3B5D0D469D2625BFD4EAB653652556CA088AD86D5492A859B3E6435A6689DD09AE85B3B37DFB766E9FD4EB98203A5279CEDE96E47292116052C8DEF42F394B64D352E24EAEB86AD52AE87C5074AEBEFA6AE83A575C710559B98825F653312B9FE6DD9F18CFA47C9AE94C885AE87AE9CD8917B44F06C616F1AE1F7CF0C1FFF55FFF254E0551A3E70EAC79B5E0E4F14FC9FF33D9AB38E6C42AA14F40464C0F009450A863660621C41771294C2F8A200EE14F3017C987517B4592C51F459441A5E6036F497302959B14F488C9D24B0E3BCBC7D49EE55A1215A478E3824AEAE1DE2FAAF312DF274639B707DBC9347FC661E888A40087320E8D95BD19F01586349BBD546E7249832026C9B1580FB40593D6CA7B71EC733C621D9BC8EC7C0F8E49A9C6B02D338BF162F857CA004D23699F94C4059478C0273FF9C9F3CE3B4FE5A826AC97217C1E3BD898DE2AB98954CF3379899D375875417AC0AD98F84BE625C0FA324D113CA6F92C879CEE411227632AB83F6D4DD32D66EEFEBC170533B545E6DB5D79E595679D75162525874445521A0AF2567BD7D964DF168B6567ED74EB00E5C795246D06CBC1D15CE52A46239D1492208D5B3A1EA0911FDC58151CABA06C27D56565BEEB0571D40E3AB6C69AD3603E18B1675B454B9594E5A729CCC04E1D5F5B4D379EEC4224A8E1C38FDCEF4D7FF7CD6FDCB965CB160CE00D6F78C3830F3EA8728C3601F0D95B12B88E0D49A0D3A6C3204CD5E0D2A177BCF39DB7DE7A7B1C4605982350D253C821A893BA3F04863134323C3E3E86F5EAE9EF9B1D1B1F1A59323E3AEA174A3DD50A8C8062C12F7AEE4C7D76B0AF77767AC6AB55A7EB8D8CE366FF25500806FFFAAF5EF77F7EF8639D916C3B0CF66AC5D1B63ADDACD99F11AB97F67C071D741053B6C4713D07B56D38F15812C41C076688880FC4CEF1A9A4253DCF829517D52E14016636B919B09DAB1CCC7B6AA93D3B9A90CCA81C08CB5AE47C61CCAC1012BD5E52A517E23F2A0B1A7330F464301CB8CFEB1924C048988F0E2D96A8CC02E16331874F652633078ADF9009A679CF00963549C986F927A39DD81548CB1B6EB80107861C8D3D3D182A64C9AE64C55095A662859F930FBEF9CD6F86447DF2C92717CA2E55465D86609CD1994EFFB5D99747A2347C43E7959915C05C263BC35353B9A39F6E7D3C8B24C29B2F942F4C1F25934F7813699929E8F0EC3120FC4292A3E7D971E4B014B1E79C730EF88EA8A54C1F7ADBDBDE76EFBDF732177321CAA01D2AC103957BC399B526711413705BED8922B588E9CAF94A7E2443E5C4BC5346FB4C08861B6FBC91C31655749FE364E89B415DD3AC649D335D4C9C85A0B649E805CFE54F58844193CECA31E8050186A7C24C7513FF3E37458C12B567AA2825016D0E3A33257D401C92D0F8AEB9E61A46F579CE6D037C90273307D2889BADFA2B8AB555613A1E35D656FC65B1DB2EAAD9266BFA7437E12EB4A538D6180BD08470135BF9DA38B04AB6EB7B052B6B6A0633B69B262C2980C60D7DC14D63274A6732ECA0D82EC4252708BB1341B251A9CDC682CB21E2BA75C37D733A4802473F3CCE76A11824B15BF497AD58BE69E346B7E0479DEEB2254B75B8BE56D54A3C96D4736A7D7DF5F109AF540A5BED41D86763BA861C72B25AAE42A56F34B32C09DB2995FC46B3155B598823A34FE895B33333D0FA615C6E7EE6D93889FD821F0641C12B74C2392613EFE94F975E92F804FC84FE6ABABC79D9A1871E0AC2667E8A589926FDA85CD325F1BCE52D6FF9F5AF7F8DFB1085EC7FE2BD114400EAF892D52ADD7C6191E086140C14068C3B32886DE5E5A5FBBC3F68ECC52F7EF16F7FFB5B501A942DE82E62BEEFF37A6A3CD2EDD10C25EEF37ABAD12EB9E4929B6FBE99C39628CB5C0C8F4D5124B3425CD532681E2D3AAFF178B083BD0BCDB004BCBB60CFD16EA0EA77CA29A7B0C3099382A129732FE97AE34996A0E5429280BC40AA2519DB91703FE521BE220204519A659CB8F89FFFF99F31064A0556F66205A905AF5BB7EEA8A38EFAD9CF7E46E70C83A884CA587C65C53AE320A9E0E31333EC693A5BA4908A106C54C6613C417C8AB3424C543E9D2913871F7E38CCBA79DAF1BC9794C088C52A9C8EF60A43DF6407B45448A0426A023EBAD07C69BD12099505F73C87E2FA63087D6F5D7B5E62B164E24B353231F49940655609881F73F9F2E5201B961490D2C489A4F2745B7A3F05C409D3211E00941226DBC5797736DE4452FE6582E288A0D9CAEA1BBC612E87CAC18D313CB0B08D1B3712444B76440245565E259B9DB1A95A6F71CD4C6B59A6D40F2A7580EB4FA6DDC4C1EE2451922696EEE4DE4EE36E565E0BCD1662002A7F21D1409E3E840174750BEA7FAC333453CDAA750EB19D662C2D69E992340D52DDD0172BBF58DA64798FC601B809D40B5C79DA69A7DD79E79DA0A2B98D5E304EE06B4D5C6948A00832066B18472A4D56AE5E33363A0AB34063EB820F263AB6EBFABA9F597B6ABAD6D70F21816F6D656DD8B0E1E28B2FEE349A4114F4F6F65D7AE9A51FBEF042C77303DD4E225676D23F38D469B5DACDEC08C3C8C8A48E673B6126099868C0D67EF6C292008C0C8635298D5E911D3B76C88913FC2BAA44D2C79B6A106D02323AB6A691E9835A18555EC43B64EF89260D6DE0539FFA14390CEFCC6A18E8DA52C6AC8C2C235A360BD91C244B0800C98716625B683C78D6C9279FFCA52F7D09D7103413375FA8BE817E7E8E5CCE387574EABB9614C733D822DE6D6AB8B482E9120557C2652CDC973254395D98E421871C42CC199E9CF5EBD763ADE991E0AC24D31CEB8EC3BF79F366BCFFF4A73FFD918F7C44C2EB0BA15028A36BB980038B0CA76CC0383FFFF9CF4333C55429E8B0B81800670E1A3AE38C33F6C9A130BB134F3C113AC2534F3D95E6C5818BFB0D855BA90CB503C4870711439B2C46CC4FA68EF13E3211C91FC79AB0B505179CD5C2C4B7901E32C23417D11104039D442F1561E99E9D34D49E5E35A9B4121CE985284F20F04439C283B0C86037E4DDF411E173F2D979F791234D4D04F470C209277CFBDBDF9610B488731ADAAF78C52BF094B7BEF5AD2056CC02EC8CE84C8C1CD063406C41EA687C34662A761EBF62348F46832417C9520821992314080A2C1A6818DB819D5DBD7A354323E284146B8006659CE36F8B1542B3A050281EFFB6E39EFCC6BFAF51D692FD96EE7A6EDB51D5DEDD613D5216B6374C34CBEB5A9004DAF3136611E382960456014ABAEE59A68A9AB41D3B49BB59143BD5B8E896E782A3C7D8B9B14855949B16FDBAEA363B118863BB525BF744E2921DD4472CDE373D57BD72BBDBF66C0DBE325D9FC1A8AA7DBD85A23F39AA63F24B972C1D1BDD0DB1656B0C244D30B5FEBE0493EE061095BA04A1528BD3A4D96A0E0F0C4C4CE954059C8DDEFE81199D659E1635FC57E042E6C17C57F6E0C040033C37AB7D03F5355A4DDB7582CC3B045101A1D2EDECE11DA26455395832DD8F3C1A5218240088B4C8E906480D1815A920E17CE761760966E742F40FCA140D92078A5128017817BA223D482608CE08B45E33E37121CE8E1B8225E257E0E92C489630EF3EAF97B443135869116F92944C5946131B69986199AC41AAC0A46BB1E83B2C30A6DB5D72D1A86052EDE5A2B3C5185EF426F3B78CB408DB15B58E6E22322F7AACC868F6193116A7906C3985BCB8C6B0E8444B965A5C1E577EC8F389B5061BE276AA3D014425C1890AA660E72DF4628106F82066B165CB163CE8FAEBAF674994A4B8619F3041B3CA57089754951860B36CF1465EC3F271F6B5B732EC2A65C463F7391EDE90B792F649349B04C75F7C6B0221C51F52528A67669FF7673681F05069ED229A359E72E59557425122108588C9D47829C37D47D264D11947883B1F7DF4D1C44287B2831558BA74291EFAEE77BF5BE51959C267E7BA01E73143BA894452522CF1A1624A4AB203B75E0A6DCC4435F933CDD0EA89EC84E1510CF33E18F975D75D772114DE2CBE62961F0A108BCA534A2037E3247C89535C1685BB55BC9FA5D617AB3BDA8D520976701CC4DA50C07F4D8249E04CA51AB9535B031ABD39F574EC56F7170B536DA967A5B8CA5596EF38AE9D60D59AB61574759D8196229E1D27D6C6D87A5C25BDFD73C8E13C6562AC2FEC1DB20A6E019A6D27D0018BFEA1A156D06D35EA3D037DB353D32A4E067A7A69D18E4D4EE8EE1C3AC05B0CBB9D8AAB9B418E4EEEC67E97ABB576A7898370D6D9E772FF1DB71047F1D2152B46B76F01E1FA96FB92A35F8C25FA8F877F3D599FC1830A452FC08E64884B6028894637D22D4BF108531288A64CB2C161C1B2831EE61AC446D105175CF0852F7C01F6DFD34F3F4DD838959752FEBFBCBD07BC656579F6FDACDD4E9F395318CA5066E85545638D9F418D468C48101414E9BD0EBD0E88C288304A57C01701411051291A8905A32926B1BDB1105440CAD019A69FBECBFAAEB5FE675D3CB34F110CBE3BF9E19E7DF65EEB594FB9EB755F7712315A3B6FCC36C66C72C3E198C268E2797788952024DB8FF2294A9450032EC6649C92129A7FF802A6912A71FDCACB41A9C696A80FE334EC17725FB42E34D2A1C8C62D66A900CD6E63B7C0A121EF1BB074AE152845EDECE308004619342046B98428E78C1F00AE8BAA5153D0005B8A397EC36428526EAD853FE8A083AEBBEE3A342D83777B295DE4E69B6F3EFAE8A3514EDA701A1558728DCA7982B6B447927366348BA6542ED49E1EB2C9ECBB5C408327B8ECD23C5DF0D4534F958F92169DB6DAAADE10976832C7BB204FC5C68CE9AF25310F3FFCF06BAEB966AAE8903D3307911CAC4748995B29EEF11022C8A6D4E48E3BEEF89DEF7C672A4D431E828BB70A363D4E2999B4AC0D431EC6854FB44D13609AA1711DB8D36525556FBDF5565D81B6CC279F7C3277D1D50E3CF0C050E45142146DC34171B6D0EAC19BC1A680619471344906FE6B5EF39A5FFCE217CF3DF71CFE994156D658B8832E83E0A082E3D67828FC212E6C1243D2711C0156395FAC52574F65E1E0D88E49D77075A4732CDDA9BB6F7963A0AB5A1E196D8C36724D90042DC048485AE5A43BAD26CD4625B4BA43A9B39C01EC335A88B4352C4B3C0D1CB96ADEDFB8564D2AE5E4C9917A7F5269D6AAABEBC3DA56F2141E4DAABF69D54BF9F3A2CCE2ECD1D4D8A1A4B3D6399A779DAC94AB23CD7A48C2DC8D377AF1B9672AB58EDECEAED0680E0D48CAB4BABA7A864686F372DCB5737AFB0707D63642AB56EE9026196D36C61AA31A46BEF7EAD55AA7A6BE6FC6CC756BD7762461666FDFDA75ABCB21E9EEEC1D1819EA98D1DBDDDBF3CCF3CF68489D337A656466456E595D9BC6BE1E8A3444C87564FA25975C72C61967C4FCF3AE662531C64ED0D63AE9A493CC7FD32A3816011DC4453FC442A631FEF465193ABA295282CDD046AC809D470F3222CCDA099B6CB20936B1CD8EA9CE17BE05F230E45A0AB77E2A4D00E6C2355E61DAAEDDE415342A1DC0BDF7DE5B5AD3369C76E989279EF812DB04B295A345423506EC872832DB16A3005615E3FFE237A4D743818034749D130E33AA7B316A792EBEF8E22BAEB84227DF7731070895560680EB1C6ADEF1E9B802E16FCD0B49883DF6D8E3FEFBEF77952044690C431FC29663C4821E9F68B25551EC9086C873E23A845F085660699A16CAA1C0850B174AD6389F11C71362BC3C3E53280A2641DF92C562122CBBAD9831F0C1AD87A25C70AA1D066B95D4A77424121FD2D05040718CFDA5DADE4D7E4281C8CA82723202B3DD5F6935EB4933EDEB92A7DFD2E93CF3DCD33EB5E4B3ADAC2AB5B3ABBBD7F5225C9F7ACE5058F4DE9498E7B43FD3C9E17C7EFCE31FDF669B6D007AEBA90F38E08052D10015A3014CDEA49C9AA1A08DD237B58564B0F338A0E54C08E84D453937C009923D6CF8B8E79783996C005DF6ECB3CFE6B4EBBFA5BC4B76A920FDB75D266F588BAE4F30C637ED9B5B6A8E740E0D6C51ADCAB0DA4CD66FA5DCAC95AB8D6625C90042D9AE6BD535D763A5CC051869864A2B74B5B2B85035E39848EA210BA82769E6348C24D9D7F45EAEC3CC90746541A4D668B53490A4ADB18CA56E2874FC21347F1F1A871E7BEC97BFFC656A682971A0B60EB58708B8E5965B34E7A1307A3C39317B8F6D1433AE87692B405FAD973D33C48859B0D8D2925C575F7D35610D20DA98E4A6B171A873AA0CB0936A96E6280CDD4517BFF2CA2B51A240E63EF2918FFCC93A034688174BB692C00EDB52D7945188736F5801EC64DA36E0A1A7BA7E5CE51E3B37C64C039D6815CDBEA69A527089471E79A4D480CEA38480E926B30B865CDD690A741E00FCB8A8819875AB68B6E7EA62EFAA36F4A1210A3CA78B4271DF9CE60EB9B54E956C0CE9234C41E511F7724B96B8077AC873BC385CCCBEE36BDECA4418F4891EC71DDA9C5E674FEBCBBA0BF89F58F11AB2E60F7DD93694ADEB69499C4003A20BEAE9E0852772671A5B33339B2195D22494CA473FFAD1AF7EF5ABAEDE800DD1FB8CFF9A852AE478767D47AB363DFA939B6A26DFFDEE77FFF8C73FD635F52B8DD65D32CCE0C4836BA34882B06579104C95EE2EEDB691EAF8267E294275D6E2F33EB364C9ACB97357696E5BCD9D76DAE1C1FFF99F39FD7D9DBD33A5CE75E5DB6EBB6DFFFDF70F39444197D235A51BDEFCE637C319A993F3E10F7F580BA1ED8178D2D2C8ABF8D8C73E264BCA5258A7516B87D18793E790AEFD3664962E2B0BE0DBDFFEB6E6D63A8FC79468D63E317FCBB1C71E7BE79D77EAB2F665B5FFCD5517AF3B4AE5831FFCE01D77DC81AF4CE6906C364CB4FAFCF6DB6FDF77DF7DA9A964D2B25CFD0BAB6A49634E395958ADF50D8FCCCDC732165A52B01DE54A47DE086FB4511F4A9BA349689432E287CCE44F42972C7E3DBE1CCAB43996C3BDC7D23094B7362BA559EC6846D6DF26E99359D3591A08ADB1E16C1E0642E74349E391B4D19D17D87B12EC45E1D06B02172D5A24CB1A08169389D9E8397751914F28E6DD3486EAABF84A0AF235C7CA77DA6927ADEC65975DA6ED219FCC7443F0AF85F5F1D38E7B4C13F707A50202029423A760B3CD3673641B8EB674DA0E5AC4AC889663A219E66E2CA2F908DC2061DEBC796C69EA87A6C95487C8307505003F0C454F49761D19C749AF43E04B3F845118B7C371E3714DE0440786AA8DAF50084DFD09161D4DFA8CAC88FC59EF9E5074557445B19BE892DA653DDEF296B7FCD77FFD97E989B4BA44A98812E80B471D75D435D75C8367A7FF7EEA539F3AF9E493794273CF125870468848DC3BDFF94E89099AB7917B44498272D1A39E72CA299FF8C427883094F236CBD222FAFC2B5FF98A842FD3C47EC274C24F3428C5819A18A81AA22C6BA92034058D13975648ABC99DC4B4A7E0D9FAD20E1D8F633AA038DCEFEA6E2B03EEABA591007DDDEB5EA72DFBAD6F7D0BA2FC69D871895AE8BF9A732951ED0352AFB17D6187941388B2C1F5D63064D17CF2BCF332BC7BB53C564F935A6752ED6C8DD6939EBE747438EB3035369C235FD2D06ACCECED1A191E966DEB94750C797AD7BBDE4589C382050BF6DA6B2F8E8DFE099E4ADF94C662783CB5F4C79BDEF426B94D92DAD2AC3C08567C296A5E1D8A8A30206400AE1E78E001CA8E8C344B22020036898502C9646DC2E38F3FDEDB9BD9734778E89210376D7549BC8CCC7BC97109A572686DD855DDB0D9DAB89EF6A6ADDEA4349266EE941CC0AE6A2DEB0DD9CC6AC786D3563DA7A5D389EF2E956BE5CCECA8B79A23CDFA682B4DCAD9AF86D24C13247926B927CF25CCAD5646ABE5B5A97CB8463DA31EAAFEB19C3E29DD33336BE447618AF698C4194EBF14A1060CA44AFBC1513E8C6B9E17EB3BEEE38DE318B32FFCA57D02D452DB87718358449BEB58F5DEA93E2D2856C534011F564DB3617C791231CAC8E1B8E0820B343F4EFF4CE573336FD494E86AC41B394AC86E7B3371CF194DBE9E0E634E1B06029B49AFEFB4415C2F15C3F35C56ED7F4E7A1DD730B715573A8A3BCE7AA1DF9F7BEEB9175E7821263C417C7BF4669DD494EDB9E79E3FFAD18FF45E02C5F2CB756B212F40D59FBC5D9CC1C7762668EE6773C88837E602C49E728BF6F8910CE9B3928CE96AE92504AA17856FB94CFD08F9528A00D8EB71E022DE7332A62480BEFFFDEFBB39B3EB95E29C4ADB0FE1DBD0E75A6C02230EFEB05365D10CE62F66D5417C13077EE6339FD15A805E2750C38CA11862067F4724A6E144D4F7F5E0E067F43AE18413A49F6CB3F811FCDEECB32CAEC41FFE62330B8F26F9164F657BD75B19614E484A1DB54CB69E77EE999FFEF4A711AF2F2C5F81938E00E501E1927BC31BDE205524012DF359730E949B4E32D4EBFEFDDFFFBDBE46233CBAFEDAC923341147AE4C4565BBA954B4A6D0ED8E39E698CB2FBF3C6E38C1812410044A586FB458788A73F2D7430F3DE4849663293E75FAD3E2C58BCF39E71CF25E1A219C4B4825732C0216D42464DD717BFB8607D7CEE828F70C37B7D4FE0C61C3BCED5725E38F2B75963356E8D04A1BAD663D6BED9C26AD2CC85349F487B22638D304AD0C605AAA94A596875B2987A1232F33D621DEB85419AB260369181C6BE8E4AC08E5C792D6F2A4155A2F51B030271A8FB610B381AEB5BB1C0B17F6799C56455810093008ED2FAD0910CA98A41A1B84E4DAFF4E1A310C0E8564821E44CBA113A115FFC0073E70D1451719A137E9F5F5A71D77DC719F7DF691C49751A2732487E3DE7BEF25D2406F095C678EFC54D7E1CC62D46A7EDC61D084E73EF8E6AF35CE3B069B4D933F88EF9E149C190E4E98CF11723D44CDA4F349BA17DF0EF25D1BEB014D402E51FB9B16EA047368CC8D44466DF23C0862C71043516DEBF65BB2C5F03EF07DB4E774C0E4EC5F7AE9A5969BF03D00EDC730612A29E7D17F31FA500CBA02C5AB04CA7511FC29887DB4FC125EFAB2240BCD8CAC399C97D6E1D4C529B062996D5A869C67493F27B5C00140D018A7444C997C0B0CA00E5BA1055D33A2FF9E7EFAE97260F12A0C7763BA34604AF042E113E83AA4167423E876DDACD127938D08FC199DA701EB9B1A86948AFEA44D3C4D454C1CB22344A6274510C0DA86251813533B080EBDF6F8892A775464F08F8D5473E2B3ECAAA5ACCA493247926BAB051B3EFCF8F3AD1C063363EE466B56AE09ADE1AF7DED6BFBEEBB2FC3902BA0D9603B491BC150C4A6C42692A0D7B174D90A1E9EC15D5B6CB185F61EE5C761FDB88D4F485230BD90BA77FD3D8A8450618880005E4D12FE18F894A03BDF6B1B4AC3D6271A955650D7D172901141B5686F9F79E6994CA3B79F3E946B5BEBEE59B96A79296D656D6A429817C2A69D9D8D9191CE8E6A29EF51506ABDA4C6B247A88F5B4ECD9079EC9201A3795B028D7B44A7209FE18C1D48966029D15E99D72A354AC958291968861569EBF9109E0CAD1521B5D92123C0E5DC4E4B6AFC1A2AFD440102B48AC6DAAE1845915004AE4B61D2A217A70753BC5A9AA02D18EB178D4251C058A8D846E01539C2AECF4FA6656769C322F2C8FA95AEA937A421AFBFFEFA430F3D741ADF02618D40B7511BEB2142261846A1F06C5CE616F3DB4F7AFD72D4F9DCC436C442911E31CE651AAC118578EE9DC5041A2531AE091C2E0C05A645269EF6F14E3BED44B35654B13690E6E8B1C71E932A060142578010D5D0EA9B92566EE6E7273431BDBEA953AA355BB468D195575E89AAC48C8A398D2D2B8DF98911E23EA266EEB43F0B96033F3186DFF8F033EF2029F54FC9A078194CC9C7F54F3EF9E46BAFBDD68D6BDCCD262E6A0B11C8559BE68B5FFC22895CF40DF0124D0B1CB9DFFCE637F7DE7B6F9D2E8D8AD9C0F0892B06C820C99978F8E1872DF83890C6CF382545746EAA9309BB1F8B8B01ABB1B9A5355ADCC62FCB148320893F666C106BA41D9BE5B4D1DB59AA8FE4F54D1DE5E18C7420CC9BDBBFE2C5D55D321C2BB59BBE7247BDD4F9E37FFB8FFA9AE7EEB9E71EA6FAE31FFF388530071D741051290D00674563D327471C718456418A87E76556DD6126AE1BC20E70F98C2B10AD099074C4D9F42C7A04CF184F645B8F7FC22BAE37862D1894DC56B3ED2D846145C3745784C018C80E9769A2111654C0FD6B07564B787736C39695F2A6A1B49144EAC8703F87B0D1E410BA8F8A74C37885C5381975DACACF9064F068AE0928B9AA95926A465F9ACE6895B3AF25C9DA507A31A4CF84F4B9345D17D26A67B6D5A55C6FBEF9E6B81A16E56A5712BB2766B0218B00E31E93AFDD48DCDC5C7BD3F8A0AFD6CB4792C1E016738EB0A5F466BFFDF6FBDCE73EE7F86AA9A0F2C70B373DF8A4D777AD3BFB1F9241C769E36FD25F6C9A7EC571BBD6B8A6BD149544C4AEBCDE6B9C575D7595EC63CAD3A6A963488BA695E33D2627CB8193B5455070B4A7BA545C1C17A2AE5FD99509C4875C01CAB1226D42CC64D9B265E6F94339C7B6AACF212A2BF686E263435E5B57C32DE5C5ACC9BDD051D7D51CF0B9E4924BCE3AEBACB4207BE2E2B802F442D0486474DF74D34D9A56A433B10BB635D01AF64D4CF380216337D9A281E89E7E4548C4A9574424801C3BCBF020E2A3C8003CEFBCF38C620C91736D5632FF89000581783A4A872228A90FE156B474933C72195AC86D79DE687BA19BC1BF92CD73A70E9CCDA996BF2D90654E3787D743D4EFC5BDD8982266267B96BA8452B39A68481D6B874643A9ABD43FAFB57628943A425AAFCEE8F8E657BED451CA007077DD7D6F576F5FD21C23364DF84E8FB9E79E7BCA9880F644CFAB7900C4B5D75E7BE183EB01172F5EAC0F3FF1894F9C7FFEF9EED74A10CC15BCA6A009513ECD07C9E91C47A57447CFF938157B417FAB33A9017833E08DF135C3B19CA5E76A889B98B9C4871FEA0E5D44EEF5C5175FACCBEA310757AD1B6ED565F977D7AA7387EB5B55AB735ACD4AB3B541B9DA0AE381AD717D965F2D7B64B923ADA61FCD6F4633FF20D7041A43A24B8E935564C1A51034A01792E49924AC09C968A8648B52AD62F09A5E9E7EA26C006C3B6F06973A22FBF4F8B0D36097E89B8E98856959195EAD170E4A8CF62E155D803C3C4FBE3D5AE7991DF19F3E4F1026D051D04E527FD599C572B2089EEA3A3140D9578B23F2543569135261F0777FF7777297436E9AE8FAF44D41004E7AFD36C8A56EA115C159C70A4162ECB2CB2EBBEFBEFBD2A54BA7795EA68B2D1DF31F6777F1EA1271B3DF8DDAF7C9616689F263FB70FC3CFBA130C0D13931D597139E669125FA1437B374D328373533AD4D283C7A74A3C164380D9ACD77BDEB5DFFF22FFF02D96428029A9C4362616941F263C669235FFD5021EAFA165702A3C96200120CE06E7AC74E75B80C4572DA69A7496A6B32B1735175C692C20665942DA02643CA707211C1FCC958233F38C13AD9145FFDEA57354BE79E7B2E85EF135FF6F7431E0763036108188F1B171863E45E7AE9A5706080C2CCB460776D60302F40EB9D3138DC0A1B2C7CDBEE7BD72B3DF56A5FB531D45F1A3AE1807F280FAFBCF882739A8DB137BDE1F5AD52860BA0F24E0F25D78ADA0EC60312FCBBDFFDEEFFF93FFF473363291C1FCEB428FFD6DD3FF2918FDC75D75D9AB40BF25798E009C5A5611A3F59166F27FBD4B11FCD127FE10B5FD093E2E7C52B1ED64FFFEEBFFFFE1A00D2C795192E4C8D530B56DE7809ADC1D11199EE49A3B74B3338B44328CD0A19A7F4DC0C3C9FA4E58C8A27E4018446B3D1CC3B1B53A09B0F2FD770AD541FD52AE5D1666B34CD847E3ECE90458E425855CD02469A3819F0CF4919C868906E2857FB3A3B9C09F3F1E10D9840D77618F260763F97461E79E49132CE66162D856307FD2F9D2770793FE69A3B41621A320C1706C5354CA433B15CA7C9F422BE586BA08CB621FCD26565F069BF61374C7A1D6C444E505CCC6F0C3A42C96C9544D111087CD30ED934D70F51AB8F2DB7DC72D75D77BDFBEEBB93A2F3AE551131A8A9E6D3A1AA50F04E9AB5697C425E95956B539BAEE52368EB2A50F0242EB275223444A63ACE0EE75CCFA69590A9E88A36DBF5CC3E7E990547ECB2180D65ABCD391327F742C1924DC0274C40A9578A9EC9001208FDC73BC6F5B43601A87676383E14E5D0F2D3816F8782CC436FAEBEFAEAE38E3B4EB69B2EDBD6B578AAA9A6CB0213C8C5C95B007694F0D2D5A4188E38E208948D2C083DAF91768E084DBE8E49A556ADB44687FBBB3257EFF0238EF9ECD59FEF9B356F756DCB1DFEE63DB33659B86AB811AA5DAD467DDD9AD56963F4B9F2C2CD861EBCE98C0FCE4E561F7DE26969C79C9181C1399DA5D5F52C0AA959DD679F7D645EE9FDD1471F9D15C2944666D4667594D29D5FF7DA2CC3906E10BABBC2F053DDF5FE666565C65D5CED6A8E0C67504AA99B0DDFB0F6F965A3E5E5A111CAADD09976F5D6B67B7EEC8FA163AC2B07C5EB7925CA0F38E000060F218A43493424807309C590463CF5C6326807EAAF071E78E0ADB7DEAA9F6B71A5329F7DF6598284549049DD522D18934AB9085F6AFB85175E208C7EC821877CE94B5FB241D31AAB3742DAD3D73B5AAF3786476A212C9CB3C9AA15CFBF393467572BDD95B4A39C0C8C34563664EC979AB2E54B639D7931413937FF3545D58C74A854CBB87BC2583564EDC51A1969DD40288D84D26048F5FFC3DD3DCFD647BA37DCE0B9A79F9DD9DB3BBC6E6D5A042B6035E72C20555D1C608612CD809ED7D4236954E44FCC10BBCDBB7D1A74A6A97562D41FB743FA707DB7218A73F244B14CF7AFC372CB2DB710CB06EA6DF79AE4598C199DC627F663F27D3603EE2F89568E43E94F759E79452F2388E262CC72D14E9CD1DAECD61B0981DB6FBF9D93821C70BFC95774DFD8F20B2F83ECC820F2BFB82680AFD859D6187E108AD0ADE466C81123FA260B63E7459F03076C8B4AA16334A7C71F7FFC3DF7DCF3D0430F1144F277744D8A21CA454B740971143BE6B6C5B4D368F1E0FD062B8FF8A31D345D8A189A395DF93EDE521BA62DEEE4EEA0271C73FACE29A79C42AFCA100567A6D9D9EEF975E18517820222B9CA8D70A4AC023D062E6EF2B869F8947A67CD5DB76AC59C39521E4DE9A6B95BEDF0E2132FECF6B10397AD1EEBEE9F3BD848560F37AB5DBD9552688C0C5592D6BA7AE7AE73465EF8CF3B069E7B64F568E89CB55163DDC0EBB75F58EEEBD5CA120D9397A399BFEEBAEB3236C0D1726F35D9ED6D7FF5D9CB3F79F4C99FE8EC94406FCDE9098F6765511B66F4FCCD55956ABD3CB46912D6A6616DA316CE3AE67BDFBCEFE2C796FDB8395A0A1DADC6686FA80E74555E0AC8C64C7F846808E0189765A6D5985B22444158F33EC6AB29F9A8CFA9233386041C373DAB29156427D8CB647B60E5645584B58E4B962E3DE1A41335B20D66CD5EB57C7967487A4A9D3BB78667D52A61AC21D3B157DE818C95505E3B5A2FA5A36802CD470E180C1DA194914F944B8D52184BD27AB3551F93F40F5A575992CDB43C5C2ABD9836EB7DDD2BD7ADDB6CC182A71E7BBC9AF357B3218130C59B416FA495BFF9CD6F3EF2C82364CEF6DD775F3997B126488AC6857E2898159068D34BDEB89F5DC8AB7FFEFAAFFFFAEB5FFF7A8CC58AD9E3C9F0853C55CBA90475AD6994C563225898A01C7EC1BAE2E7E99FEA7FCEA1A3E05C0FD2D685D0CCD2D35766FD1922D1CF68E4BEFB505903C153347FFEFCC71E7B2CC9997E34032EA27AA5F2D9262C819952419E3FFDF72587FFE29A80D28110E5FD086FE990C80400BEC9335B34A30328D482ACC200D010F9E646F27171D97437DC7003A167AA6938FC7A4853F4513740FD3DF9098D0D5492834221CA40FA1898DE922DE8581B9D677AF29791AC2117223020C10472D145172D59B2846789F725A9FCB4E8FA400CD745CE93CE33B1B86DB7DD56CA8F4FCE3FFF7C5D1FAA51F7B8D0052923242B8810B4B120DBCAB89AF675CCFEAF14926AE8EC0B8D8EB71F78CC7079E673AB0666F675AF191C5937D248AA9DD55A67DA1A4B5AF55A29D9205D75D6617B1DBBEF7BFBFB3AE76DBEED4FFFE317B367F5A6832F8E24354D17DB8048A86EAAB17DEA9A5B3EF6E15D3699DDFB9B5FACECEA9D17BA5E1C5AD52835FA7AC2BAD124A49559F5645532D655A90D572AA5E166AB3FA9EA26AB24ED7A9EBAF233B71DBF68FFDEEE30341C162ED8CA3866C88B106A9A43702F3CEF8E3BEEF8E0830FC6B48E5E6536128E4B884A20C1B6861C36A3FFFED55FFD9596D8AE619C12B467AD49D6FACA73E527CEC1645D096B9DABD6ADDD74C1E6CBF2A4EB067337C8944152DD3CAD6FDADB3363AC2E83AD3B2423215D9E730A759782344157C1C719F2E6C0B590943B2BF5B4D568355B8D30D6CC5B1697C39A7268D493E134F46DB6E9EF9E7C5237EE9B396370D51AFD24CD433DDADBD446117677CAC4D9784C316C7647DBBDFDE2E09B43A6D30B97B4E882D78AFA35EA2E3A680841B29ACE37948B8E8CA1C0B7B8A39FA959A02E06FA6283AF2D9F377D66B854B0C13372433FA1090253FEEAD649606C19F613F7708C012021A2B00DB94DC3C663BDFE8CB43C17A7401A31A84FDC176BD271EA0BEF7AD7BBFE5FF8041A16214B30A024006DE3C7B5C7321B8F3DF65887D13D4D4095DCA939291A72E99A927DDACAFA449B9B76456C0E89608AB0DCBC4253AFDD6FFB310E7A3A56137BACC6ED422FAC2F0352D2F841DCC7782C7E053E2ACEADE94312E3B6356420C372C1624B0C193195AECFD136CD5487DC958666759B6DB679F8E1875D1B4996CF40054742A8A2401B4D0301ECA855E66DB8F1B265CF967A67BD71B7DD57D62B3337DE3AAD74EE34F4B3E1D17AB5B3ABB327ABC36A8E0ED54A69B5527EBEDE591A5DB3EEC5677A66CC7AF4D995DBEFB8D37BDFFE96EE30BC6A246569B49A7A73DE79E75D7FFDF5D9F38EFDE294432F5EF9F49864DF489851AE6E34D67C26949F9F550F2361EE48F262B5B479335D566ACD2975AE0EE559A5FA8AEE99E9DAE5B58C07276C10663CD535B07083BE99CBD6FC4A0AC04D8730149876A49BA337F102C500737B601C39798A5A381873F55BFAB6A2CE311539DB5C2D260CD0036A5689706A8F01C0052B95855CF28E026912369A3FFFB9E79F0BADB492946412F74A3E9692CDCAB5394DB908C99AC6B0166CCEACBED155EBBAC2B826C81F2C73933A727EBA0C6394357CCFDEAF4D4ACF55931535299B99AB0607578C8C567ABA2BB58EC1D5AB92BC6301BB2DA647764D865B7A784F225E63EC80831B845289406AFFB8F2E6E5E0DF6318E8D65B6F4D630CCE9D6148A1688C6AAF4E73482459479822388707806CB8309E1BB1ACD3A03059AC182F8BE5A7EBEFB3CF3EDFFBDEF7F4500C78A79D7692DDF0AAC843948D198D6034A04D0BC9573401787AFC9218B248E6ECCF70500C10D2AD4974E95ED363BDD29C06F52FAE09E80D70E595579ABD0E9A013C71327BACBACECFB5D75E7BCC31C720979DFDE319C0C0384F8039809B89C517EB0C002A71F90F1F0293004FA23902934B89B60B56C3FA9AC005207108023E58DD82C664404A5CE5CBED603591BC5EB66C19349F7A10FDF3A9A79E92EC5EB468D1F1C71F0F5511FB80DA9918F538E98B49D326C36EE52434A306A27133FA50B45D6BDB52D3D534A6E98CBEEE50AE7C68EF7D87461B63A132DA48FA67CD6D0C3CDB0A259660786430AB83EDA825A1554933CD97942B2BD68CE8CB19FDEA63BFDF7EE1A6AB07EBCCED49279DA4E1FDF77FFFF77859F8E8E3B75CF644A5F242EFF63F5A3DF6FA07FFF30B8343BB946B43CDCEB961DDF2AC3B6F3AD2159E1D091FAA868792D09CB1E99B973FF5C0A61BCE7A6EED93A1B57DA3FE58D21AED0A332A330280716B74B3CE21ACF1C6CA45F763C785DA3401A609BC20209A10FD9A6190BE80BBF861DC15CEDC762EDBD677886A02D6FCE4273F79DC71C7CDEA9BB16ACD9A9E997DAB57ADDA6ADB6DFF987B72E55AAD9CB63AC71A1B86A42FA4F342A5A3A3B66274A8B3AB9A8CD6BB0B9F20631E2D854A1A6A69A6155AB9D390649F5724EF9FAB242B92D68B633A53A50B2FBEF4B4D3CFE8CC347D536E8254D9CCFED9403FE7CF9FAF05A298864EAE18D1FAA7B900E4B151811F221419BB8B5FC57154433FA6DAA271B91FE84CFDEA6FFFF66FFFF33FFF537E33FE3D395E2D90BD13F20ABBEFBEFB77BEF31D683C9018245739BCF07AC6E84C1FD869E4929B4A119E25B9C81DF527C364A6479DFE7922D1C571DA63D07F029933000748249AC907D9AD95C32BCFCC9327D0826A71DFF18E77FCFBBFFF3BC6DF547941AA2CC713DAAFD6634FE5131C7DF4D15FFFFAD7350B1C5100F560F9F106C8EA60D611A82DE5FD55B0AF6DD3C508137F5F6B499C51D74728C4C07CCDFED2A54B8F3AEA285B01485E5D7F871D76904570E9A5978242F3DE0D13A24392D1546F6116692F7A4890EAC41C7C00F562F870C8CF157E68889C41BE63056957DA126DD27936A0DB2E2D76B10BB28C0F39F5D453172F5E1C0AB885FB54ECB2CB2EBBEDB6DB5468B3DECEEAD070D6D97C664FE7C0E0C8B1471E4A2AA2A3A70341D0189388CFA443AB99A7EB6B1DCB9E797EED6063C156DBBEF8E28A9191E12D36DFE4A9A79675768E17AB5F71C5159A583D3220A2879EFAC5F37F1CE9EC1C5D5B7A785579FEFDFF313BAD6DBBEC855F27B3FFEFD0EA376FBCC506032F0CCEEF9EF5AB5BDF189A5B271DA574E489306F41D7400843BB0E27CB4275A077C6685FABF4ECCA4CA083AD8A3B4FC0798716945970E491472E59B224669A6C8B0E3169EC1C204644FF5826EDAB4B2EB9E4E4934F36ED25C718650F4616E6060914631F62EAECA1C1C11298A29EEEE1A1A1193367AE5DB326C30D65E5C461A35A673A3622FF607E5FFF9A75ABA5DBE796136902A9E252481AA5ACEA583AA3D64A4A496D34698D24ADBAB4429AAC4BD3E74373559E434E5B19A545AD4A5BD0023A92BE14020A91076CF319EC06416A36869387617DDC0476435AB42F250B357D5C3E8E7284A209B07E4B169D8D61E04688DAB9384D2AC74EB20CD56B42F2F7BCE73DDFFDEE775DA285CFF127519E311F0CF11F349F1E9CE0A1F1A9D330C1FD7922D16E16843DC0BE6D9A8409D1B63628EA9F91B7708E4777A4D193D77D9AF50AFF0FB04316EE312D8F29F8F5271D27E97CBC07ED92D7BFFEF5B21F01B739AD64C6B178A7C6A6076CAB346D70EB09000332F408E6D85ED686B63FC8ABCD7B8A33C6981213C13688452491EBFD8CE7B1E77BE38D371E7AE8A18E59992C9EBC10EEADA58C154988AA67DB5EF8D16D894D04505C5E170A3A1DE7EEFC20615A9FA0BBAB03777278787483D9B356AE5CA57174D72AAB9B9DBA418000ABAF4FFF6D0D0E69D5BB4AEB86C7D25A476F68B464F0572BC990B675AD6BC905E75D7CF1C57A8ADB6FBF5D2209F34D9AEFB213CF5BF9E27FCDE90B1B6DF8E6E5CD8E77EEF7A63169C9DA9B9A61F55875DE8BC30B9F1F7CB652DBE0677FF8D663CB9FAECC19E95EB9D9F0B717AF1B4BFA3BC3586983758DE59271957A662F13EE2011423CC74F811C379B7A589FC431CE1887A2C08A5ECA21829C511828E9A0256B03E74132C3D29F7DF6D9341C051148DD1C05310C437B230B8EAF5EDDD79B37411BCD1A0074CFE81B92D552AB96EBAD72ABB969DFCC6478A85A2A971A235DAD524F8E316D6655DC59E55835A37CEA589B34D684AC5371BD15465BE5B5A1352497A2BFA7D94C870624A9935AB536D618EAEDEF1B19196A0C3775530D40228F2671FAA7BBB16A0636DA6823C235F00CBA7134C939FB04EEB7F5B6B7BD4DBEEC4D37DD142248E2C4571B5F902B8A9A456F5E87014281F9D121D26EA47041B682F96B755368DA0E3CF0C03BEEB843DB92D6750E0ABD9C8C715C35ADAFD14D64D75D77FDD5AF7EE57A607307FDC9AE242FFF954C417461EE0A7FE1AD6F7DABBC25537A58CE00B07CA5647F48062210F6759CA19CF4FB642BFFE29A00220A3D1EF24E537FD965979D7EFAE9FA4492E2FCF3CF8FE3B01ABD7945F00701967150CD9065CF40EF6559530A0BB420441889D80E62DE2194C6A271719DA77B5214E997BFFCE5C30F3F9C38B24EB5B623B4C3B66EE21AD4A4685DE44BD1051B296FF6A850C0CBE26A6A282D75419D96F3CE3B4F3333E93C1BB6AC67070561C915226D1767419C6433A46C9A9393C7DCB2BE5837DF7AFBC11F3F5053DCDBD53D2029561BEEE9AA69808D964E7B323C9AEA4DEF8CEE356B4766CC9AB7765596BCEC29A563AD46ABD23116CA192C265FFAEF7DEF7BAE5A3AE9A4933A9B8F35D70CF557C2AC991B3FBDB2F9D3C79FCD7BAF94C2A8E664C5F55FBB312D6F385C1F2A5566DEFEB57F1D1CDD72C582FEE537EFD7D337A3BC2EA4B519EBD2A172B53FD5DF6BABDB103BBCAC4D5D4FE728D0A42852BDB9FEFAEB8F39E618DAE6489D6841290F76DF12BB71E03D7C8C5D0862386912559E8F2F5367C7D8C868AD52EDC9F7DEDAB56B36D92423633FFDDCB3BF70DD756BD6AD9115D11C1AE9CF3ADA3437A874351BC3DD19A7907649D208CD56161FCA20B5C3A1B23A480D86A1244F1824A11EAA2DFD4F6B4C3E47D2CC93BDAD66476765646C441FD7CAE306816B1DF04ACF3DF75CE92DD7C1B8A79B85D744F9A59D298D0BE5B24177D30764CCA5188A601A6516849558B566D477DAF1710B77F3F3B8FF84F73676242D62B8E334387AE7097864B9C2123EB10B6E0C4F28921CAF963CB44CA06BB739B4EDB5831039EBACB3241239AD2ED983B67D1ADF6BFAFB120630A1CB9FC4566DB5D556E3013B9D04B9D8A63C455B4EFA4BAC5DE49D7166C83EEB5ED71BC729FB10D1C6BAB02D4E1CC1C34C60D1C97442B7E04334596D75C2AEB2E3FB311BD2341525F13AC5AF36EFB8337F51BF1737585FB870A1C404B16364877E85C6624ED079DE7CA624B24B08D4DD8068831DC97C90ED01F8A143A87B1911CCF1806C84CA0077108A03A6B1F11B1FEC97B3ABDCB03EE67F0D791C86BD4B1B2F97E3C5D549E8D471EEBFCEAE8191D1CEAEDEBBEEBD3BD4877AAB8D538F3DACD21C0EADE16D763B352DFD7CF9FDCF3C913CF2FF9DFDD0F09695A1C75FECEAD97AF5F0EFFBFA37942FD41C2CFDE09FAEE96E75F78419734637FFAF7BDEDFECF8FF42E957A5E1B995DA8BCDB19E5606A39F125BD57614BDB8714EDE0E25CD6343A444F54418A710DF6AD761EFBB125E3FD7B6049063C47D5B74D12E1D3EBE4F876194EE99A1979698E1614103F3C5C50430131FE638BA55CAB975097458F7BB2B0355F1382586484D2341B802C7E78D6F7CA32E4B439EB478F9E992A894D745B0A168E6E1445712714A23BB41B8D945B61163CBC900715A103B5F0D06046018D7411A58CD60728108D2178E3BEE38B911F8CA0B162C80E885D31A530091ECA1FB1019883645486D3662016E34A2EA98D2CC0389132C429456DCA6D0B3BAE5965B3EF4D043AF54B2CB28BCF9E69BE5C780B74C2272FB57F44AF33630EE5B1ED34E8C1763F33D9CD9E90B9A267DC5B6274BE82C6B88A2F9F104B9401CAB01AD4514DEFC716426390621D2D59477B9DD311055398FB7DC728B9EC71C93D34368A79AA964FDDE552EC1A7CBB16E21A9A16D014F211A8212D310DA1B9CA15FD99A46D4C59A802702CC40FA01AA3BFC7476B91EFFE8A38FBEFCF2CB6964666ABC5010B24A7F7FF18B5F8C7B1BB5098B693015D3CC03CB4494F9D8638F958920875DC6206147602728A152D406D60E16C73863C329559A21F9EE0FBE5F09CD5A523F64BFBD1AA343FD7D61CBB71D3663C69A994FCFFFC91FBF9EBEEEDA5F0FFC7CB3AE9ED0F1F4F0EA6D3BFB57D5474BB530E3D16F7E28A4F37358FC4898D37FE80187DD76E52F1AE9AF6774ECB07AF4771DDD6174F895ADEF549A80A0BF9EF780030E907380992F4B59EB0B5FACC39213AF89440B79756B69FD7622719E89E596ACF9E31FFF2871F0C4134F7046B8884CD42BAFBC123481D651C28B9F18DD60FEAE4935816CFC4B2FBD1498A00EC52EBBECF2DBDFFE964A08AA6758C7242A259D6ADD6D5D69A23418D93A787569F4726CCDF1E8364D40FACA8CE29A4C496DCDB0D42DA6031D25E3429F1095B3F9D526F2DCE936E42E1A886D861AF350B9EA5BE6DA638F3DA66F6A05DFF7BEF77DEB5BDFC282A10F0125A56465A1F5FFE8473FFAC31FFE50038307CC87DA2C843C8B790D4076D8E38FE1B671F8913A32BE6076DB57B46FB7D9661BF0E2E6A1712FE257741DB755D7CFB5251E7DF451891DC996A38E3A8A8E7B8943F6EEB0414E63AA38B5152F35DFC66960868C27150BDF221490647200C0EFDC772CF6D1BCAEFA82B68E36319079D4B89C179D1F079A1C2C2228847D6AA01896D4546AD327AACD788CCF70BC35E511D390DAE178BFF18BC7D750019310B5307C38DEDCA10041593DE09C029D8AABCF89EDD2094F737EE28927CA854403B15E8E41836F990A2FFC4A5FBA059012C3B7CC5F6666A7107117B3136C6BBCA4EDF4FDAEEEC1E1B1FBBEF7FDE191A1230EF9785F67256D0C9F73CC25FFF49B27FB367A60E6AA99DFF9E7EF3FBEFAF3A1F1D639E9666BD37A1A9E2A852DC6C26067A88D84F7D466FF7A6C706D18DBB16BDEE3C3CF6FDDDBF79BE1B150ABCF2DF7AE1A583B334956BD9CC7890F8C25757C5693885E82953580CFB28926DEDA871201E4E4718BE34AC6A9B067DAA548E7B8100151A2C585DF549F4BD01C74D0415A624CDA981AAB8D7ABE4D13E8875AFA18B8EC326083D989BE42E83D152C2D893863EC19C7CF159B177E33A94F001700C1DE382A6065690331CE37B43D176E935B55B719919A403D883EE771A820C1978A6D5910229A67A38FFC276C35A2F6FAA1FB97C4321D87C6641B2640244A118ABEBF08B18D37DE586B8A228C67155343EFF5AB3F2323ED54961E2D6E74F86744F559A9534E3945677CE9D2A56D4D64B3CBF9A8C7F801666AE2CBB23B9E3593D07184581854C2C4DA60D3A832D100AA0027783B7A24BE668CAD9CC810C94FB430D4D04E83C79F280B62147FDB764C8A72360DF5C8238FBCF6DA6B294FB78D1FD68F42F0092C25EED54318070912A2D21B9E8B1D1CF2569764F04211826BEB8AA76BF27D1CCFA4E0284728C776EB3411B089E779E21766E4EDAEE822A97F2E5AB4E8B6DB6E83C1D850719FEAB8FE05498A35373C3090E3E8CBB77DF5CE175E5CFEF4534FF67656D356A3525FF7BBE72AC3CD27BA06FA3AFB9FBFF1E6DF56E68E365F7831E96995C6B66A867ADA7AAAD6D71A5B3DA7AF6BDD68732CED098D553B84D2EF3479D56CAF6EB8EC9950EE78BE35F6B24EC29FD404EE4F27E1B2E79E7BDE73CF3D3A0B31FB6358BFAECA8CD6647490D471A6D1CE255B88E416AE9204930581AF6906887860041C48A171F1A97C02CE23FD67D8932C071D99F473B99577DC710729AE69D69DA3E7AE5378F0CEBD4DDC4E316423D604140F69245B6CB105FDD35D10F0BAD7BDEE57BFFA5588ECFDD853E155295EC42435C3F2A24E3EF9649D3ED2721C8A7815D8FF711D03B544BA9A070F5291D66088BB72D1A11383D23A8CAC0F1C366E46E21D1EB39423F1F506A882E3A8FC8AE78AE12D7114F7E5BF40A813C2625BC659E597FFC2B6234363240E763381962444BD0E607422063D55AE398DFA18E358699601E7009E2572DDC67FA9E594D0DF638F3DEEBBEF3E6D4AD82E61C2C228035FE5E49E215FB412B3FAD13F39218869C9AC254B961C7BECB1EEAF129720BE4C1931BD2640BBB09B91BCCE94C4A567F25AE47095F3B6ECAF7FFDEBFFF99FFF1911109B21B15BCDFC4012C991A00590DEC836B1DC7FED6B5FFBEB5FFFDAE62445CE9A81CD36DBEC98638EF9D4A73E45552D4C1E6DD189B4A01309936985692482D93260ECA1CA0FD59544743DBC08A9CBCA90FED351BFFFFEFBC9D994F30667B5AEEE030F3E3C6D654EEE33CF3EAD71F695BB5F1C6CFCF1999FCFE9EA5FB3EE8FDFFCC6FF3DF198C3BE7AED2DCF8D2C4FCA8DA60655EF96BF3736D2ECE808CDD1EE59B3179C72FA3E4B3EFBA9CED0FDE28ABE5618E89FD5B96A6045D2F8DF221D2C76F58CF41C85851FD304EF272DFA7AB6F226A95A627D4D0FFBDEF7BE573A830E1C219202B168338F059482FAD5BEFBEE7BF7DD776B8BEA9FDAFC5A4D5D41CEDF6F7EF39B90A36EBEFDED6FEBCA49DE4B07BE7734415C6CD8B6452181883DE018758DA36C885A9C656D7BD90C77DDDC44B6F336A367524DE044B10789835E5EBF3732C2A154B4F7887D0EFB049B6FBEF9E38F3F6E53929DA6A730EB1F8D220089C1EBEEB49C5690A3A1A7D0CED47BB89031406390180247E757E7CE25E25A1D2AF24CDA8890D405F5277D5F9AE96B5FFB1A1926D6F7F4D34FBFE28A2BDEF5AE777DEF7BDFC30E76537B84388FF34A77A94D464645AFF5F0F2727E6DEBBBF7DE7BFFF8C73F3615028F26E7E0A28B2ECAAA1C980E242C95B4346777CEB6ED650A33026A8058F046319100EC5BA6000C60795EF39AD7B0E9D1254EA8C6C862AB19779B627323DF59F2B4A8A3732713DD4BB2E6C0030F5CBC78F1F435BA713CB72DCB1A268B0E8110258F6FD8A28128A13001B4037EF6B39FE1ECDBF621B4473AAB0DCFEE24049B5EEFB7DB6EBBDFFFFEF74E426A2DB404EC2114B33D2A8251963E0B162C905638E79C7326C6C1DBCC9089EECBC417D121DC76CA7060ED264466D44D2874A7A41BED91F58C04F434DAACD87DE50B69121AF5D03F7BD6E1871D3967CE06799D7947A3B57ACDCAC1F99B2EF8C52F1F6A350667F7D6FEF9875F5FBE7CB051DF36A9BDD01CEBA9CE783A1D9D3F38F674ADB549A99C36926737EC7BC373AB1E0E61ED669BEE78C6B9071D7BE299A1DE9F2493F3B04FCC18B7A53A637DC94E76515828CC491F36AEC69E7CF7BBDFFDD39FFE94AF8143D7F683E1CE385D6F1E5FDF8D33436E99227AB027B431205AA7CB376D6611A3A4078D099E4613B8F8D68D1B097F9349D627BBEDB69B16E84FAEBBA310C4BECDB83E1150175BF1934687426E90D1CAD11A51E3A4472979173029A67F68530649C189CBD5F42C4F3EF9A49CB6FDF6DBEFB2CB2ED39FCE3CF3CC4B2EB904111CA2C0720CD3080584D418741415ED2838564EF5D9D87753745D47DB7EAFBDF6FAE637BFA9BB7FFEF39F3FEBACB3C8DE6FBFFDF6DAE77AA3332BE3C0F4797ADEB81C9D9160A5E958EDB2CB2E0F3CF0C09F57AFD006C7FAF3EA0C2C1624C73442D418223A13E65801C80B6354A657382C1895BD06C83BEFEF52CC508079D08AAC07D008537751114A6D0BE29EE48CAE7CD04107DD7AEBADD2D53A720E9339EB6298309E2677018D931434CB930EDE964E1BA866AA8CB129316860EBBEA3B83E46501858C2E4E254C68990B844DEFF4499E13D948AB6ABA65ED1F196F4F9C10F7E8025E2760B0E17B87522F8165BEB26E4B073E633EC37D34804581C1C94A48EDAA1DE367460CC9A12E359F59ABB41C6BD31B07658E6EFC7F73F50F3BDDD0EDBAF185AB5E9CC9E271E7961D6C632B1970DAF7E78AC3E70C77DDF4B1AA1D29AD9086B2AE9868DCAF36963E3903C1B9290B4BABABB1BA56A3AB866839EBEA175236B6AADDE9034EBCDC9E3DD71BC3E162E610A4D000D0E3122B42F3890B84903EB18F79920C9C61EF6B463D3B0C4DE4E6498A45C59562E486D0DF125D910328FDC1E032FDEC14F0785A78A0EA133CCBCADDF6EBDF5D692652C048F10372499BE733ABB0841C34F386EB17E8D53C71335C1C2850B39081FFDE847E5E3CA8AD74824047FF7BBDFC9F69430C55C68A3078FD156962431DFBBE3A5D8A91A9E6197A81997BFC56ACC5C0E21074AC22FBBF3CE3BCBE46AE5CDF2B81D150CC81F6C2F7EA89153401E8A789D5B12317843639CFD769C163B980724EE24F90B2FCE2B92E0EC3153338502D6380D0DC1A42FDDDD1DA8E080C2F838FEF8E351AE09FB12A9040A8AB6F2D3E81CF43C009E0B2FBCF0BAEBAE7BECB1C75CA91F0A242261561658328BC5731EC60FD3E6CC720875D234F5049D6356556D0252B20C185751F7F5F273C7693A5420A69BEB372645464F8A22D5549C74D249575F7DB5F1E6F65A78041779315418EE2020B288E7503115EC1E84350709C161E9E3F09ACD0AA305C890E367906070228B58E7444D405228D601B16537D5E23251871D76D80D37DCE07E15984E64C293A88F36B6155B420FAE9B66A66EAD9C6A8E9B69B5A4F1C8746D2D5E7C9E3CD366C78285B3864AE9D870AD353C98AC5BFEF8687DF6F3CDBEFB6E5BDAD1154687B392AA66DA15CAC3D5AA0ED2E8461BCE7DEEF917CBE9BC52E70B756DC97A7F6F773A3834286530E9F84DFAE857FC68F112A309F07EF4A477DE7927101497E6B2D024A5A8D18B91E03135055B0E81CB125B8012477688C3DEAD3D4E5786A7795D282045675F626362524D70CD35D71C7BECB1C40D70D0F5FE94534E59B26409C155500C31F9D2A4F3E6322B93DD8609CD41278288A6F209743BDD5A6A405B172C1CD7218AEB7602B6D8622FD64332E2DE8371E09A692132866876F81415689506D28F26B2603164D14B13840288D846711A4F888F7C6CFB7AB96537A04B9CD5E774F01E779C37C41518F69F61CB87224664ECF89F811D22A567226E60E27E96AC83AF5B16948BFE59218F7CC9FCB14569A88F835F61FDDEB0210A4A22A11076FCC9510B9F52667CC1820552922C615C340BE0D7E52720EA50D42007583C0018A79F7EFAE5975F2E3D2FD701A71BB8370EA0C3F136D35C9D28134FA613D619EC1F3D3D5D85A5AF59CB224292B4BA02C6A0CF27135A6AB446C7465B212757E9EE19181AECEAC91C8534AFDE7C468EB96EA4F56B34B6DE6EBB47FEF0876C026BE3A765BC19D348AEDED20085DCC61B6F9C09CAFCAF18AA3E6C5657F80D68759DFF2BAFBCF2ED6F7FFBBFFFFBBF1B3425F313A27CFDCA12CD303BA439664E529053526148E095240437628164468D336697B446DDEBD60D757549138C2122F216EC61CEDCB92B5E7CB19A83BEB41FE40D69E337EAF59D76DEF97F1E78A08213D66CF6F6F50DAC5B77C8C1874010AF61900FD720A98F931BCE69A4109D5C9656FCC8238F94BC7BEB5BDFFAB39FFD0C4F4BDFD1939219E23B3C5DDC8E4257D6AE90B94D51159FA01D99071F7BAD3E8919C2CA9AC90CB63B349299446B57B3BE8D56736474247B163D75BDBEF1A69B3E9B872E3B24BB8786E66FBEF9D3CB9695CA890B79AC72D25C61190946FA0764378EA375462CE8B1A5B007D1139C05833DAC0C90C2C81DD62E2D3AEB4ECCF186A2D300FB0A64DA79E79DF7E94F7FBA55B43161F698222A31B133600470A502C7D3DC098CC186201932CB2FEB33C06F8E10B485A4903FEE0F8ADD3D77EE5C0D438E8E569FAD08F9849B48F35FA6C2DA85B470ECCD5820FAA65209DA429A014C617BF91671DAA8E42F495138938428C0149E9808F4698D793BFC219AC075D49EAB508017683162A413A920C0E5A801BA6D638B68BAB457750BFD332EE3685324A130296C682605D7E94BB5F75E096B4227096D3AB5BD8975EF05175CF0D9CF7E960DCD623BDB161BDAE9FA4864002A7BECB1C757BEF2157DB2DD76DBFD219795D84414DD982357CF80A26257A19951C8F00198F8856655FAED073FF8C1BBEEBACBF50D3C0B83D73692F7AAA9FCF8C73F0E50C4111E26306B12D562D9E84F909A27CEA9F54C9736B25F6DB8F146CB9E7EAA5C2A4B52D07EB04473E0D1D18C7BF2E9A767CE9E7DF8E1877FF9CB5F5EBB7A25A665A60092902BAC2C44363C38627C144475D68813E1281C392C028ACEC2FADD7DF7DB6FBF6F7CE31B34367AF4D147A9E3270F44F7349D900F7DE8439A7637A00E459A9DA033E1291C6D0A1DD1BEADF1DE9C3D3927526BC30D37A03F73230D9267B57C21D288425C6274F7DD77BFFFFEFBA514E76FBAA9C6A671683D5A8DA696400B04F8952DAE07A739C9ADB7DE8A25EE4256B68A3E71968854F65E7BEDF52FFFF22F3A9FF432E43A945C4853B2810F3DF4D06F7DEB5BF0136022C4D850DD54571E7F8AA8D1205F9BD199516A8F35EA3367CD7AFE85E7F3D07898357BF6AA952BBBA47B0606FAE7CCD137572E5F3E63D62C69E5CB3FB7D4DDA9D869992C6E85EEAE9722661C01AAD25C81112263DF36531BE411BBD8C21A59AC097FED6B5FFBDFFFFDDFAE7C8C53A06D3AC0250E9A2B0D80E1915A78DBDBDEF61FFFF11FA1E88A85CFA7EF6FBBEDB6B29D4DE1890AA17815A730CE45992C81BBC39318CFAD7EEEBC08C340CE72609D5A43821BCD4837313DBE8EF3FBDEF73EA2B2FAB9B6B724C6FBDFFFFEFBEEBB2F268F21518C1B44DC1209609334B6FA8917E155406C6ED4BF83BDCED2D94B4B724E2463B1DA246F7CAFA9CC730D5ECFFBCB5FFE9224071E033A350E01A545658F0F2977E468F3CFB3CE3AEB339FF98CAEA021699F9722AEC989A91DA319517B5CDF60F1F1F260A8E475C0741BE9ABDFFEF6B7C09CAD000C8430A4578396EB20CD461DE39E7BEEA9B59195ED09F26DDAE2B3FC93E96609636C00263F064552F408B43FF89AD7BCC6690372772ED08DF14EB6826D6D59B17945B1C47187F323245345B64F1959E048C8C0C04BF15648B0658F6793D6CC909D6F7BFBDBB37CE9DA358417FB66CE2857AB2F3CFB6C4DCA6C7878F6061B10C75F95D7F874F764915C870E25266A1DD5B1916CA577DB6DB77FFDD77FD587B2CECE39E71C4CF2363B9181612F1349E0D887A25A1B4D63B081775EDC510B2BCF612BDC2CA7B9305463FFCCA5553BEDB0F3FF3CF83F9572A5D16C6CB5E5561AB00EE1B3CF3D9B26AD79397DBCE6B7A7B77750673B375E86060737DA78639D2E29805A9E95C21E191B190D11ABA584B57C02ED3ACDAAD6514FF48FFFF88F0802221B202CCDD841660534611BA881CC3C8034668FFA61F65528C2296EADCA843027681D10842C31FEECC69BCC7FCF7BDE73DF77FF49A3CDC2AC49902A06B2B99AD45FA9D49FB72D1A1A581B474B0865341B2D34816EFA8E77BCE3073FF881DEC8C5B9F9E69BDD413E0E8C50C668961E3D23AD8788C51913198AC88611DB7A4F6B2688E9DB3A11C59A009333EE90C112C79C893AD1FA82D674EFBDF796B5C4AED3CE5CB468D13EFBEC23DB5CA7BE14B53EE60B080A8DFC84134EB8F6DA6B2D253CFF46D19065693340412E4DE44D61A874F80009CA0F012EC25F1D8AC80C3FC78EC64972793FA2D647893D1F631FCCF3C3309C21D861871D7EF7BBDF7153493C8D6AD75D77FDB77FFB37A2A371AA63A2D06F53F6B6EA74246912C7548488A98C16725A746A98354E4979FABD1B3D05B7A6B6AB8E09816860DF8E7C84099E81E3CF719C302D60FA291DEDD934F6A9B3E046DE1C71A2656135C5DC619E3B64EF95634CF144BFE42CE7FBC67EBA3390268C738B63972B7B243A24C71F7FFC75D75DA73F6946FA721E34C814B3A0445E5B1F72AA5BAC92B8342114D15B3C3B3C182B0C5B040C236E87A90126055414E2DC7138D0F050B3D5DC222F6487C26C9CAA37099D5D5D235A983C4292AD711EDC9764ECC84D6C962AF3D10020CE98495105A180C30E3B4C7631227E529FC034ABF8C8943EB2B381AB4334462D8C46ABB9E28463223115D80EF8E3B4DFB2F2962E40E0BA9B47618D663FDC70DE869AF9ECC137DFE289654F7475760D8F8C87803512E2E61CA45A47D7D8E868297726880B650FDBDFDFD951957466D54CF1FF810F7C40BB5FE3D4271ACFF7BFFF7D363DF68B5647F68E13B6AEB48020485B45B341E2C4BDA6350FB1A0A18B00C64D9CD6CBFF586A7393714CE7CD9DF3DCF3CFA5456087E847A6841A753D57E639A6E9BC3C4CA72DD591AB90500442CD2622D334A4810C279E99FE7BEAA9A75E73CD35F6FD6DA9B4250F80A92405AF2466294E1B61135D961A5176BBE68DD434E54E6CE0890001E607B1A809D14FD8333022404AC189BBE5965B162F5E0C1E84CC01BA1907AB55F4F36873F789CD82DC3795106FD29C7C9E101CFE81BE2C83ECB1C71EE349F930148C35640DCD3CAF275DBA74A94E3D95D8EC014C34DE1318604B3B695C2A5EAD82D0DE9930261C1EFB56C18D8A5D4B7ED57941AC5BD31CF08971C36D42D26FACE0D388B080EBBB5408E917A71E35090B172E945481CF2644E5DFA65AA0B6EEE9A79FB6FE7658652AB5E4C214624D2441F199C617113BC8506283B1780C8B15B3E1A333F406BBD270782289783A5894D6786D993A0E00CF4C3A5B8343CEA2D908803824DAC6D86C088D0B7F628DAA379AC7471E792499822180B88A46A25BC3931C3B31C48ED61F6D29E605224F95C5D3478774FE3798331740822EA2CD9AE5C99BE394671A275D3957AD5C397FD34D316031528C9BCA7A8897324C141E1F1DC710F76D3E81ED47A4B3E90D4251B40C265ADB02DDE62E5D98BA2C8DF6779AF754D97AEBADE5997A56B510920EFA3C07777501C2239268BFB8B7670621236067DA823003F6F6751AD60D1A21E4688D6DB6DDFEE1871E9ABBC1061AEDB379BAA23FE7950AE9787C8F7A4B881249D9998589423CF2402122D2094585CA2EBBEC227FCE69BA647D123A20403A72644A352169D1409B1D4B0B5FC484245B28920D0E6E645AA43EA299951C47C319DF59EBECB05F257747EE8FECC4471E7E78669E2A8FE3FE8D1C815B4A4ACCADB696369BC6A9E7C2F76DCB69C7E52CB877A45B5947478DDC3FD26D64102BCC2A9845B70D9F6896A6055F7F88020EC43F61093520D5F38F660D79E5A02EEBFC6A8832BD56636EC8C56CB3994B05F521418C105166B2707101B6076FEC32A631C68189CB8CA7884FB7F3341A338F46CEDFEE4B58BF515A1C84E4FA7CA2F1B3C41ADED9679F0D9F075E6C4C791B7BCF13131231609D2DE1DA9436BC8CAEC323F3B5CD36DB4C529E7C95C6AF69D77B040877D47F75D6A4A43545FAB9213331F1866D778BDC58F270474FD7789E200E8121563872606FE15AA26E9058AD2EA1D9B9FDF6DBE10FD1970F38E00039F5CC1106720C90681B53EC5EE8D6F67921D406CC4E501ED1693B1DE3D485AC495EF6A52F6B9BEA986984343678E73BDFF9C31FFE502BDA061DC10B7197E0B4E889A6EBE423CF6C4F7982BFFDED6F91D75876434323B9E53BDCD39D91FF8C8E8D66FEFEF050474F6D546B993F3E11806C720732EEC9CF7DEE73279E78A2460B7D2919A18ECEAC4F8BCCC9240F476416F1B8699949A24FE62FF0FB2C410C0F887D02377D456CB9BB833E7FC73BDEF1A31FFD48C3D05F3515648C5D2BC4CE3671266E10D3A8F70B162C9069962123ABDD0383034948240567F4CD58BB4E9FE445B0A379C5BF642B8CD61A1252A0595FB0C582C79F785C932093EDB8E38FD3DDE5313CBEECE99979373A49C3FE1C962AB9A937B56A2215E22374EDB5D702D3A6638C06103781B186764C83E0D8DFFEEDDFDE7FFFFD780C36B8FC654011AE1A053EC05FE7CD9B2743415A04E72353931DBD2C2EEE826EBD7ACDEA6AA55A4F4765AAC82D1D1C18E8A8758C33ACD43AD6AC5B4BA84447A09A778824F65DAD758682553829E0D48D8C37AD1B91A7F5857917030B49D496D7B598E6430D55FB5326828B579913375286A910E2779287A8017080F171B3550123A99EF4B5AF7DAD4ECA0D37DC40D7DC187305B736CD50757D663E2D0880F1DEAC099CE50A05066FF3CD37D7C6439001858AB3050EBDB2C98904C264150AE683366E027D47CFAB23A6371A955302D8B6AE07A6A7ACBE70F1C5176B75502A982FB120E2657C011E4C4C4D8AF642CD10A831D12C9ACC91A836EED25819B455D71284777990C6A35B483EC88C78F0C107B1423C4E9F0E7CC17DF6D947024DEBEBF229BE307FFE7C4D1D851ABA3854956D819C787795D6273F0EEB03ED325B9ED02432252D00B9FC181C8B4613C3577D452D83064769F8873FFCE19FFFFCE70F3DF490C5565AD4B8C6CB1026E017750BD9E6DAEE92597BEEB9E79D77DE89A5630669C3390C678C7B1187A8041C83C834BC7122CE91225787CB82960B16050AB3C11013F4D8F22BE73F0C097650B3D524561E4A0D192A1DD59A1E4F322E6461A1D03FB37F646C94C8FBBDF7DEFBFEF7BF3FB2AD4A84144A7922244325E663EEEF1FEF3FEC9A007B8E936A021F95B8D112CF0EA096AAEF91FCC5FEA3FC9292CBA468F3C99549CEEBA6D204C45E1AF5807091269004E44DA60B47D77575770E0F8D7476758C0C8F66BCC7B5BCDD7477A62DA406F21E36999CFAFA9D5FFFE8473F2A537B46EEA74BE025B0DBCADDD1AE688D85C229D4E0B57DBDDF58598C1AF4BDE4208483660E671393D093D0D44FE867D2066728E71DEDB5AFC0E9D33F8E373A3FB88C84238606B3077C696F27A52C8193BD6B68BDAAD20152C91A76B3552D67D2AAA32BCB76701C6EBBEDB6830F3EB860EB7B2EB05E189E0590376D8D875E8957304888CFD896E9FA8502FCD325510E98A0F84178335738DF3C2CE92897319A7B7CA226B0210CA74828A225188C268F33F339D45818F86EB36AF07E88788A4A45134AAE8F89CDD56AB9E724051C8AF23AD21BBAC599679E79FDF5D76BB9E5A482D0D571D06F354E3D29142C0CE6E4934FBEF2CA2BC903B555AEA0236FBDF55699A4DED5244E0884BAF42F76F7F17E0E3CF0C06F7CE31B0CC04D78783436218937CA6635249D146DB90F7EF0835FFDEA57CDA01726F804067AB90502F631FA1B20462862B6CC98DD05B4821BDAE83B700471049893F1DD9BAFD469A79DA699D175D03D161AB1D3691DDC768826C91338DEE28C048C98F6E062AE3ACA32ED8968ACFA39E97EC78E4254499B4EC0B98788975F3B46DAFEE8A38F9632C7C443F497F2969031B93C2E703C18975F4A2EE8CBF616090E72BBB68CBCE192CC42186FB154721571FC083DDD7D834383E3D25F4F97FB073293D35A5A971559CDD47BAB5EDF74FEA64F3F350E22825EDB016BB648577756BF3E1AD783E4009BC181B540F7A8AA8B4BB7DA5EEC63C27C566C863037C7B13DE3D1339F40D36384C2CD8F6F614512F9959559FD39FEBA954BE75A87DCA0ECF15B23DD3D1D4383A3956AD2A8A75DDD3993E058ABBF6FE69AB56BFA7AFBD60DACEBEDC9D398F94425E50CC521BF6706EC78F8C8B9263095298621A7C2DBCCDC8D3E870E376B62B55562CC4228DAA0C3D46DB47E29223B434FB856CB3473C524573A3B3A338468394FB88554FE41169B2E6765604939CBF1C89D968B94C5F186874A851B8EE56E368552B9FA92751CD93A7D7D3D2833E36142D4196922A68EBD4DA434448584A482395FFC15C8905BF184A81D3706699B2CE085D0E75CB010C475632B849BDA22498B8A8156D12A15B5E11631C616229BBEF8C52F1E71C4110EC7B1C7162F5E7CD55557A1A19DD820A08A7D4A03033DD778FFE77259D2EDF8E38FDF79E79D1F78E001B601A594F8673092126A0384465493BDED8816FD9A986D6482FD3052896E8D600FC6C1F45064B963BA21FC33E33526050E8522AC6D4D40A484C368D9E89DF0BEF7BD4F3E2E19113345A3CBE31B79578422AC44B362199AADA27B04EA27D604484E07A088F66B036B6E2FBAE8A297600E06239BE52DE62728458CA4AC373BD28518B286B41E6DD0A5F83531586F04882300867BA24BAD2D8C74264D6FBB387E4E1244FA500F76F9E597B303A4B709B485A213850D0110602C06F113CE0C19AA385E69BBC33862D6D255052C337B9D3DE40EC671D8DAECB59EA572D118846DD1F65C4E31B5D989A1A0096360445135E0458B165D71C515182C388C567E311938FD9E9804E43E302D8C20BE5989FA52C471674EBE25755A10A1E452723CD6B472D5B85920E59185C85BCD18C29B4625DCD3BCDA82B94941E50654EC939FFCE425975C8216071005B880D16A18AC9D8C260CCC5060CFE34D1E9B93F8E9AC235AC4297DE3DF71885DC4D4D697D4E1D734A22F65C0AC82057D9BE13F69122B1499000021443BFD8C4024E0AE6084694EC9E083E32E3AC86B9C510FD841512AAB4D241CA2349B4FB1D74E3F39E69863AEBDF6DAB85E37E60E88ED09E0822ECB37576E65420798389A47E49A334EE9282E17462B179707AFF7B690401C2C59B2E4F4D34F77D701842FE252CFF8EE77BFFBEFFFFEEF4F3DF55492D8F4714C8B3A1BE3BB08B5E9BD2E45EF399B5969C10810A21E32F152A605ED8D06499794CB2EBBEC9C73CE891DB289AFF8E7048B482B86A283824F9F21B9EE636854CB19679CB174E95254AF31F4965D063E21EE40573309D44E7116B09380F38EEF51D7F11AB113472762B16E0A27D9381A3DCFAF89A0D81D3C93E5053A10591057BB58973A9D827988B8844C4D13A46B920C490B9AAA302149C5EC68DB690C92FEFA891E8CB8B03B54608EB9138E036DB823543081D54B8B4ED32E991947C2D46AF2610F39E410BE0387ADBFCF4F5854DD0813D542907FC6505FEFAA52413AD46618C6600FFFD54684A6DD9B23F634B7DF7EFB471E79C465356C8865CB96C1746DEE2330D70814FCFD1809E7E735CBA34CBCA38E3AAA1435C3713420F3CBCA15D2D7BCE4198C6BBB22F21BAF544C3035716B85084B132B45F7B6656CDAD01A36611F36378A0189DF2CDA28B91E98A315C7DF90D4168BA843CDE4E73FFFF9C30F3FDC09246F096B1AAC25D2D7566FE06E9DEE9A6629E3874D26031D7200350C4DB8CD4FDAD0D3293329A84675478A9208937A9E3D06A20A7A0489090D98183A211DA682EF1B69131F4F04822964744764AEB90330656475699BA18DC8458582883766EA4D22AA8C899AC0EE29A009EAA462FABF56C1FD17727FEEE0830F9604E4E46AD107F217C294C815F306C1A5F6BC159EAB73436EDB41DBA7FD43C6487FD55D7EFFFBDFC73EA8218EC9045A24EF589F147E05B5DAF4B5C449444E85D2D5CF4F39E5942F7CE10BA4859D9501C8605A8E52C44F73F2C927CBFE83AD47DF2164241187872A597FD34D371D76D861C8615D2AA63A0E45B137BC3E9A8DACED920B4A590013CCC5E7337E0047AF6C084CFAB2751017CBD935333CDC51B671B152AD822771BB2E2BDB58121904C66CBA61005DDDF585B7BCE52D3FFCE10F39F6E0976293E48E3BEED86FBFFD600906C109798B130FFC13290F43990640CD7AABE843690DE707B447157322926347235AF424059DD154E2A06DDFC49A004BD0A902E41A400B9D96BDF6DAEBEEBBEFD6D2EA43976B5A9CDD75D75D1FFEF087895A62597B0C31E48E63CC99D45DDC89A9B43EFDDCF8866E36B3F6B9F5B16AA54AF8785C7C34EADEF1AD88BD7C7A425DEF461F3C669845C7EF2163F99EF7BCE7A73FFD29B93E07D6CB053BFA97BEF4A5830E3A0895309EF6587FB1CC7D96165D28F0A5DC4C31761DDC03A32DF1EE6809C598DE996D154C13C5C7F44B4F865CCB77F6D9675F73CD359A52085ABCD6941D68436A48407126BE30A8B5D53FF6B18F61A8E901650E6B7A217674996B5B0831440E191B00F742871D15A883A99BDADD84FEC4609E1D77DC51E6972EA8EF13916057B44D881F1FBCAC5CB7B7BDED6DDFFDEE77755FCA7A1120E60DE576E830DDE5E69B6F3EE28823F485DD77DFFDE73FFFB91E04DDC019BCE8A28B162F5ECC83A0243403B20EA5622FBCF042668C0B3A5DCC0FC1C519B5614D10D62FD18A1F81600BD69ED3246F7CE31B7FF4A31F4D73A2DB9C42EF43F742604F1E7DF4D1F2831DC106986B7619278DF012CCC767EA1DCCFF10396D9A675DBFAD10671C57ED1D601B2444DD253D62CB23843831FA90BB69A170AE5D436020813B2EC5AD741D6A888FBDF71FD0111EE0CA2BAF3CEBACB33028DA08DC3D83CE256AF6B527306D205DE8CD5F66CCD6E79A085D0DB35D6B06864116B4BC45C77C1C2332E2CA520371D3A6028DD397494EB6D9D5F36951F08519D5883AB55A8E7091893B6C62163114D12156CAD69CB53D6B8F73AD75D146A1925EFFD484E89F74FB81419E8BF0442EADB4207044C2E932373D371F4E52109DEBF03FF0C003DE395867561553812BDA5E4C722C28B19550CF887240D30CD5EA5F1F82532030A80797C7F6F0C30FE32D69F2B53A0E033A046A9560896F881AEFF9103FB55C340931FAD6F95EBC1CB6C4C488FF9F5CD0892FFFD0540D2EA4025FCF604CEA3E5565937EFB8637BCE197BFFCE59E7BEE79EFBDF73AC11672F748D7A13C1B0563DFDA8FDC2A085A286ED0D7627E30542CA49EDCCBD25347CC4DE727729A4EDC09D89D1C9F071F7C10CDCD23CBEC95F9AFC7A4623C297A476BF9A4066411BB3444B3F1894F7C02C6502E2BD5E502BD361104AECC0B41EE8D0D568EBAF43021B8B07154D37E9EA370AE8522BBA0F7DA9C14D34DBABE939E7AE7143179B587352D7273F96BDCA9C674171AF379E79D27DD269B40B77EFAE9A7E324B9C538EFDD6F3114FD89172C58F0C8238F68A85A44DD2E715A159B97C87569FDF67EB126306AD598BFB0BEADE7B0BBAC926DB7DDF6273FF909AE3D6A40BB107D535ABFDB5F7C7E208AD18B7DE64DEC3DEA54953E01D81EF74B41C6C9E4D1C695B090F920D54AE4CABB199881C5819601D4B9DB21386B64A7D2E9656D3256884700BDAEFDBACB2EBBC8BB04CB456C946570C546ABA02D7416DDB6C0CBD704A5824899F0BDCD706C2BF894F4F81A924ED139E79C034ED71C76F7DC738F4483850BCDCEECC1F08CDC820008593502A9EE3F1122549C46224DF0EB5FFF9A1C662C52BD615CFA388D4FC0AFE20094AB671D3335D0904FB4F4501A5C7DF5D58B162D42258340D5AF6EBCF146C90B1B0AB4A824F0552EBA04DBAFC7D8345C9563E39026DA48DF916CD57E36F1AD0D110736DBC2CA7E9C57A409E2661BBAAC9E8BB027415E3060E5A265B9CF4E9B7C490BB2102046F20C64715348C138E3224A6A2D8DDCB7730C2AA93F7FC9D2279668D787DE4D2E4A076468AF313698CA516FB2364D106B4DF60CCE9FF6705BB98056D00DC29CEDD3B4481C697E8C3DA505AC1B095090A5DFD2945422C5A40BD661ACBEFFEA07744F3A33C22613B812084DC3A60CCE4A72EF831FFCE0E5975F3E8DA66FDB1269440F1772B6050DDBF51658CC3E5CD67FDABDB68D506058D877DF7DF73FFCC33FE0C8121AD2C21D77DC7137DC70837E8890B7EB6F9E9284888A39D65DE445E860A28462AEB553CF3DF75CD9EC1AAEBC122423E72A2E8B9754922D463532A149E4A30C072D5E5C6866E168CF2EE4A1435D194A45969919318912C74FE3D197A58477DD7557ED57A78F6C01918DA1A4882B487C132524A669796A43C608164B0A3DECA1871ECA352529324282DC8371DE4C8627F340DED59571CEA0B46DA0B07E1A6AAA575B7428AEACD116D4C835C364086CA4A779E5A45610E9BCCD36DBC892D50F499F26050D43887250B68243918E7368F2FAEBAFD7361A6F7117110C8C6FE224CB3FBFB87C79678EFDD02DAB79826770DD409CD161BD2C62267D4C075ED9E50E825160A5277AF4D14735C9DA5D18134C2C54E100459C70D31B5D445FD314E94F92AD74E50D79E82629EA66B823107BDD57F6C1BEFBEECB7808513A91532EDAC74BF138B58EAE226E46F4D65990F2FA3D20C3CB8E0EB1A5B540BA9AC60FE6F2D4534F95B62364CCAE8B0919E39CBCC58DBB68988C361449635D99FA9B33CE38E3820B2E2095355E211F99653406E7C81058437FD06027149979D31213BC728C51C70DC1CA5FDBF243B14F003384C6C3A85CDFA05503EEEC1A371421EB889B6E563556168B27564206C58108A0F2C0B00E4E04DF8C13B3A6BA69AECF815F8A3AF25A3FE15B0358D27DB15DE21E9613354188B80F90D7D89DDAAE1448850224C6A974ED3AFB8D2B98AF9B53C3F078705A41A445B9BB3E34F05A1FD20F391471F53DF6D8E3DBDFFE761222E65B6D740DC2BD1D26DDC13E03471D75D417BEF085B07E4B190AD6296C611C071F7CB08C11F4415BB7E8894693FE79CC31C7C89A33FE0CDE151223DEF1F18BA40A604AFBBF10B6E85962CE19824E95F53B0C3B77E4DC038A4ABFB5942788AC0B12A78E0FAD83E6488AB468DEC9EE47211BD7C5C9B4DA0B7F56C698424D7B4BE85748D9C030D8C03738386E17A1F38CB505E6DAE49D5415C4358AB48AD5D5F4DF1830D3B670E56AC5649099AD4DEE2107E0978B86EFF687A6890E794EC0A85813F8B4639A983AD7B85B7EEED010162E916B94504CE6EED3CE1C3A18A89F6B0F13E1D4F59D3432DEC60208B9E3E8991386EE7418234FC214E6FF343E018D28ECF3F1A11C5C092CD7372505B687BF9A443A599FE59F84304161891863726C602613BA48968BFE2D084DE2AB9220A416ADD1D3A2EA886CB68E986B865B1123695C843455742896AADCDD15003EF5BA8E49C91C6E0AEB6396AEB9E69A134F3C114F9729620030326912E283E06DD0860B60CFD8770F51AB12BB806DFB19CDDD56393C8D85E77D1E26707183856D144DC09024B6C0084282044582EB2910FD76E6F465178B407022917EDA69A7C96A97906C83BDA1C37491134E38E1B2CB2E1B17405A69F9F83BEDB4D33FFDD33FC9AC7687F4892852BC4E503D7AA36F6A8FEA5C115D89E92D5DCBAADB3BB314724B5F6EBB0667051B4F4DA96004F3B4828489A199E67589BBC1385181D79FE4456444F089A81A6B4C6C013BA82D7BA389938038FAE8A36FBBED361319528A45CD3015868CD9A428EE6CDC165D4112F198385BCDA2ADA635013EDA2B4291B28F991F3D05A1701F8C187FE6C01AB4F504073C8D86023B7BF6B18F7DEC2B5FF98A134A1240706F00DA6915147EA1704D3217BB94D4C7C6BAB547070793822D352BA50EE378B050B0825B084E7A421CC6F1AE480AB0907782F37B6C2AFEE97D6582332699DF1A5DEA0727F273D249275D71C515AE5DDF7AEBAD1F7AE8A150245AAD00C879B68A4E189CC338F36CA7CA278587F5FA8629A24353CD43BA7E7758AC4283119816EC7D6B26BF8FD1D80E7CE1AC58EEE04F68EAA0E8C19E35F709AC3EBA979114508122EE594D9C7ECD8C5C8ACF7EF6B32649E687082956C111AD897CFA6DD1210D921E679C29068FFDEB56485E1494EEA73EF529B9E9341075CE8C363821420420CA1094CCA13DC8581F1014417F9039435CD8A20A51FBC2B854CDE15FD65DBFA2CE792A4D5F8ABAE4C6E10157ED59AAB8E60BC560D8AEFE79C00107DC74D34D717D1C726C9C18A6782E0B3AFE84C5CCD3817E2485694AA2977C764C421286C488E25804B93567B7318ECE3AEB2CED065CC2498FBA8965B8A6CE216E0B32C8D91BC60025AABE4C8C486B06D91CB4E6B6B89B45BB38B092C0220914B8D8D82D8D4204D82A15CD5AE9531A93AF79B1A9D1D06E7695475A947D1A260C0F22556F249CBDC6362BD2025D67A9818585294AEB2558F0B424D61694DBA0B7C214F903B62CB52A9602AD8230CAA9BFB6A03CE243A3D5B0ED3CC59928FD5CCE10FE7E5CEA6CA18621EC9A1749CF471E79C40906B0982869026EC48E911A7A4C902A80E249BC4B22138827CCC2B3C4E9B8B42853079B180AC8470C3943BEDB5A34773C45D7B83846C2585B932CCD565FC3192E551AD58E50190D834925B41AA1BFBB6FA8BEAED63167CD5047283D33B327748E740E8F964B616C755F3D24D530DA2A77F6A64375DD7E5EF7CC81A1D563A1D1DBD3FFE2E0F0F6BBECF8FB877F13EA4DB9A5A5566560681D68664D820606A0CBD8D6892FF7FF0911119B03BBC8B5B4A02423E0C9EC51EC62DA18073430B4F19FFCCD381F4E749B9889793E6C2633E1FC37293AE549891E7AE8A14810EB2DCE23FE25F4994077F0AA652F2E5AB4E8F2CB2FD7BA7096193C4280559344D6E9D09725A9DDC0DDE968A390D9E7F8C1EC497EC2AE606E5B05FBD09E7BEE79E38D3786C299331EDF87C5E971C054AFD67E8651C69906C3A34D82522A58375C6B6641D15653094619773FC94B6869023A952581F4E3FC1E78E0815FFBDAD75C8F825474031F0D9835CD524A210FEF800B0659CF20489912A97425B4EF67C405BBDCC58D1335013003C2D0A83B6C8A52699C998BAFC598277D5943321EC6C2FA4B5FFA921C1972771CE3B803AD2EAB19D47BA8DFC0594F0CCE96D627A90F51E13E3BD2AE37F785458E25D1F479011CFC39FDF4D3972E5DEA16CD1C30AC0C7DD99C9AB68BBFFEF5AF7FE4231FF182B9600D167E0BC46432063D7F18EB6F2D990E1E85249A374D29E10B1209F89BCDA85B4888BC602772992BE7C65962EE852462B9811568A8FADADE7BEF7DD75D77C988FEC31FFEE0AA542CF4B8158915F677BEF39DBDF6DACB6DE9B055694EA25922BA15F3F0D86137E06776FE7AF4D147ED18B11094A71AF916972B1B298F46E1C15D0896A5E33A2BBDB5DEFAD058524942877E9C0CAD190AF57252A9A78DAE39B3375CBDF2F14B967CE2B4C59FDCF4753B3EF5C707DF76F07E9DD5CE952FAEDA7CC3CDBF75DD1743A319D2FC0CAFC903D3A9ACE6D6576EFFF289271EBF72C59AAE4E99414D87D74A052B78DC807EE20BCE3B769D010B9A6742AC4C2980E63DF6D8E3BEFBEE8B03C7683B8C18AC5A5220ECD536CA1653152545650CB4DE243CF06291C85A71C8AE817582E9D095AFBAEAAA534F3D1515651E345D7FFFFDF7BFF7DE7B43CE7FE560E676DB6DA743CDB162F3EBEE1FFAD08724AA0C167094C951D3982A06D5620FCFD5649CE8D87372B1A71C7A5D90100A789052C43FC17EE0A18E3CF2C85B6EB9658B2DB67855F633FCA613B36213318A805C31DEF5432998A4E8360CC6EF6FFEE66FEEBEFB6EEF7947B426DD3C84FB9CFFB0C58038D23E3CFFFCF3B564F64D4D4297848847C84C8771D6DEA87C82B3CEA61AD481C8F0F7DBE417A82F2873312B4855DB2C85C092E8B6399FBDD88E7F618AD26FDDE2CCB84C3DB09650B3F6FBDFFF1EEC071E653C18F355989E3E2D10EB684193F5B3AE386B218A783A996CC7595FD611A5EC252EBC34AD3F0BE3D1E29411E03B2F7F2126C8E95BE9BAD06F2A4C11100292313288162E5CF8E0830F6AF381290652652D8B0341FD08A6A57150060EB2F46DCCAF3153555C278C172CE547779110D5F4BBA74A8CCD0F514B482D8D8E9C7C5BFE9946C51C71FAC1EFE3E3ADD9D3F19034915A92CED35E8717C48215F63DC265715DB4CD14762C9B79DCF10DD53463016C04A9BF0E19FDAD9056435AEB6ACD1BEED2591AD145DFF8F6F70D97075795566CFE9A6D9E5F99052E767DEDEBFFE7D7BFD961C1C2BE5AADA75CBAFA9473F4C55277576B6864ABF99B3FFEC813A114D252F98AABAE3AEBB4D371736156D0C849694C8314201547C8D160364C4888989C32D1A54C0DE96C41889A6272534E9CFE0A8B975E406FD10A1C402C36C25F7641E2A5216082BDE2881CCD0D015C002A058B0167A7D15F2E5B6B0B5CD0FA8930B26C4A6D0C9D087B09B10EC03F6063300F1057E01C1841E0048FFB373021FAD321871C72DD75D7391443FC20A6348E8DB9FFFD7E46FBC6668D1FC708469F7436645A5049863C3C03D37E2818A741A96CB3CD36127106A74C7C115D94C57CE5955762621A2106F2183A2F5DDCB0DA7161C5A7FA879CA3871F7ED8602CBC3C4CC2246A5A8BAD814CE74333994CAA091C4EE1524EADB057ECC39A1E968524F4C676C4888B217A7A1EC8E8A94D6F16EDD2901A7A90BFFBBBBFBBEDB6DBE2702D217B5FA15C34AD462B30C266D12982E0264A4BFF949C95C54DC024E64F36475E4CFF62221A142494B3AD9CC5C86DB263DDAE2587613FE4694C3D1405A5B1DC8F67D2841034BD623753ED295D2B23F1FEFBEF7FF2C9278DF49786B03E609BF2D4A4B958BBD89F43F46091E9706A7F9B98DA478ECC157AD1413052B8FEA70B23F54F6D62E927FD0AB24273C248B2EB797529BDE120C53A8F179BB854F081832ED775E4577DFBDBDF2664A49994D5A34B71593BF8C6591AA6ED5A07836A92B15AA5ABB4C1E6B31E7FEC898C89AE2ED7A0D2D33BA339501BEE7F6ADB83E7AF2C6DB566E59CFE4A6B76756874F59ABE5D5EAFA9D648DEFE96372F7FFAE98DE6CC9C37A367664F7757BDB7ABD13866BF8F77D5437D9D9CA7D9CB57ADAC74D71A4363EEED1C26C42D27BE580B1D75EC27E670871D7638E8A0832EBEF8E2185BD9466A822747BD24B5236DAC443A2CE87277F2B1631AF270B396491240A3A5851C7E8CED2DEB24CD1B3D9C11675E4D930240194BE339EEB5E5965BCA00C23642078CE30B8A1EDDEEE086D149B0256BF05714BBC4EC1706AAF27292996505A7EE183A817E8EA137B6532C243038EC6EF7F6AAEC67933CC6A72FFE84DEB1081942F1DB6FBFFD11471C71C61967907424EE129BA4DEB713EB33E26D00C2C59E8714894C5570103EBC8047D94BE3998672D1ED4B8B21674772448338F1C413972C59C2E82558755DAEC2BE692BBF42737A534ED4043AA5679E79E6D9679F2D512555D6C66F054C82F4E6073EF081DB6FBF3D1491B298658CB41253E0C4200B83754C211BDB1AD329B6294291F197B4C55B0C45C6863435EEB30B0B51A19A267D1F1A45D40347913320178C41EA221AB0E46FEC6543086AE3CE63768E119D0AF827E4CC10547EC5D5AD6D98A21085CBE23A2FDBECEEF685BC33802FC99B26923A8B539D8EE41A430C0D1144A11452C173A0CF0DD7C1F3D017425E0949602A44580E50BF9CE1B88C2B29D8C871FE90D404799D156845D4434EBD8422476D0E099B02A61BF2619308B33D885963FCB85701BF36B330466AFD1BF5BCF6CDDBFFDB0F7F5419286FD4B7F133EB9E6BE877BDE1AF4E99FF8B81A74375A372E3CDB3462BA515CFBE66C136CB72F35CA2AD3E3ABCE376DBB446D6CD9BD537323C90B666BC66ABCDCA6B567DF8EDFB2563A19A74943ACA23F5A1BEEE7113877EBC44A2CBEBF7148B5F60E15C19448C38C644D82695190138845E6FA1C82119BA73F2C927DF70C30D9AF937BCE10DFACECF7EF6336E213975CC31C75C70C105761C11FA318F6428228106B3C554953EBF3292E41330ED30E4105932F810CBC3C34B8B0240B2D3F8F78E37D852C6D3D522EA87139D6354A0CC146D423AED70AC082559FD84C2A92543A689D209752A940A2AB23564BCF8A7197BFE97FB39AC0F94B0E0061B4612186B18772DE69B33FBBABB3AC26FAF5BBB5BC6547902C221A42109E492CE5CBA74A9565C4FA10F891DB5D524273CA7D9BA613036BF8AEB57BFFCE52F1F77DC716E4A83F8C66B7359F9549A20444D0B8E3DF6585D4A0FA3670671EC6C891E128AB4984A2944C1194B227385B6E1A2281A42ED372774F446C4ECB6DB6E4FE6AFB855B2C57747D16791083EB2898AE550806DF0841CA772EAC9940CFACE9BDEF4261D3CB742433941CA24CD2A4B3606EFE3255C76D9657233F513CDAD556F980CC56B6003CE10B78ECB9E4D1E675033AD1734DB3C780CA525D014F7CDF08DB440ECBF72C163CEA1323B1B11003237C82F3A07C47FE2E4EB01657A1019A3DEC7268F1EFCE8A38F36657FDC80C89AC06140347A396257D5F7DD1D97026C6D714DBB642E6A00BC84DD4D8EF74B4DA3C28CB164F5BC85735E7C6C456FB3B316AA2B9275C9C6A176C0FC66CFD395AED0D99839F2C74DFB93058DB1E6686B6893991BEA61B525240436DD64A3CE72DADB5959B860F36679E6DA157F9CDBD19CDFB5E147DE7BE8EA6734B7CD5A4733A45536B0A6FDF39FFFBCA433057D6D3663FCC2463366C68C8D669C75D2BEAD7ACB4C41800BAD1A6FBAE9A6430E39C4EBCB22721E6FBCF146AA64D0EB5CED273FF9C95FFFF55F87095CC2A1A0A9D7D4C50C2B8462E0F542D7724269DE109F5C8FC188C950E4D560990D39C59E1E96B0093E41DBFC7897C674F4487CA301DDB88D426BF34DF165BEE600144F170355FFF7FB1978BA49947D8499F934E27075B6DF594C3F5729EA304819D079E79D77FCF1C7C728FFB6976306E42ACCB18890210665C112978C24B6404F3FFDF43BEEB8439F9A08DA681F4D10941AC6CF3AD480369BC6274045DBD8844DC8A91E385B00B61311A28C8BB3CDC4190A0988D3D803EB6D37EF459CD96B6EABDDE0134A821D118A6323AEFE4576A4056B0D1AD810EC10F5930B79A81466F338AF40B1052977FD9CA60844459907821EB817DE769FF9CC67CE3AEB2C4FDDA47506FE532C2ED9E264380CA3326F705A90AD6B0733C298F1D16839E78A58D3182310D39371607474F521C1199428D37EDA69A75D7DF5D5906779DDDD899EE0926B3B30D0F47379C4975E7A69581F8219229B0B85E7C826378DCD8578B42EF0892D893819C6C38EEB92191BAC185A1E4AA123E9AA8E760D86E174FEF0BC0F6CB466FBD1D18757858D251D43EDC5FE1D37DEE3A9A7D66EB2D5ECCA5A1DEE74467FBFD6BDA35ADE68EEECB191B55B6EB1C5D870326B76A33EF4DCE88AD1E3DE7F729030A955870656360BE14E67E04F7EF2939214C0FE263DC984E98D396EB3FEDC1B8EA66C5C137463C8CD381B5E206AC8226056F321F6204DBC2DBC88B9EB22102899CC20D6C1EEFF1C2257953D66449FBC0D1AF032E7871D76D86DB7DDE6A004C370B716538B7FFAD39F968E9454750575DB9CC47512AC9A44F345175D24DB54D2495796B5EA9C84014E2E48D63C68B321E56C1E395784D9B769DE55501777CCE47FB99F21D89F14471327365CA6079F20AB468539351CBAF5CE3BEFFCD0430F317B86D44FE5535E72C925175E78214C1BC652936320B28A7967143E4BAC2F8C2FA7DE697F906939FCF0C3BFF8C52F8622A12111E62EA9DA76C67259CFEB9FB69AC3143E414C5EC6D2B2E7084D683AF44FD0EE718A92C788C5C192254BCE3DF75C5237C473DCE1D38C954E677903C579275355B3D7C79B10ACDFF5C5E2C3A0668B42D7E587822ECA959C0ECC8588EBDC7422A8BD66C115BC78F1E2CB2FBF9CBD188A20C611471C71EDB5D772665C94DB56671017BC90FD835CC1615CD731781A0D7B48737E4A7DC7F538E5A28B7D0C6D262C03BF550C81F511F55666846C26360FEBE58576192450137D59C71E6D47151891E5134F3CF1AAABAE72349F97FFC9F89382C4DB82CFC184F1CE3F450F169B0870178628B9152F13D72F37D399F3672E7F61555775667DA8D2E81A4BDEDB99BCA1515EB72AEDE96F74374273A0323ABBBC6CBBD9AD8DE7CD4E43D78C15ABD66CB3CD765B6DB3757D74644E7F6FB5926C326F83DA50524F9FE9E81CE82ECD58FD68F9843D8FBD60F1394B979C3BDC2A39FFA9611C7CF0C1D75D771DDA68D293CCC9922891CE08110D7D52506FE96A8B162DBAE5965B74E2B410781B6941CEE1089BBDFC50043742C1298D856B38D3FEFBEF7FEBADB76201B818CD3134369B8BD1E2120123D9B1DF3186CA11DDAC49DAF982990B62FC37B034FC0982D7935258C7C69C7B4E90C00BEBF7B26D3BC548092684302938281B9A36D45C31F7AAEC67E98FA4E05477CA9D909419A4CF3FFFFCA54B971248E0BC3B76A4319C70C2093A14309869E44812276FA6AAD5C72728150D394CB41CA2C032FA8CD219FD55DF97384A0C2303F3AB21D2E9D8956C2C273FE301E2E6823EBA53D9383ECFB8637A1EBD4773021F2E15AD8E8C599ECA56D2C2436EE54C0E46906164BAA6CC901B6EB881B026765F356F36B26EED9A4AB972E08107DEF38F599AD14B4EA83DCE78B7BD185E8CCD90E6D71BCAF3080E1222B3C09D98E6D54B568F4C1827A900C81BC3C048682110A7D14C7686DEE5B704A6622B586BF4A10F7DE8CE3BEF74659929CB3B2BD5B5EBD62E3A71D18D37DFBCE6FF67ED3DC02D2BCBB3E17795DD4F9BDE1866863A54412C28F99078998089D1A0A18894DF51902245AA74104601214A110820214014810405D1608C9718EBA73475F2C1506660FACC99397DF7B5D67FBFEB3EEBE63DFB9C33F9727D6EBDE6DAECB3F75AEF7ACB53EFE77E868702A7284F9B4378277DEE4DECEEE43B24EC4CD872B709F3A02795B5280D8423017FD6CB4887A83E85AF35A99D4B5A1B93852CD99E9E7CB9189E5B1786673FFAE8A31F78E0016E00CB593BD37A0070DCAAB56A2ECCAD38EDD4EF7DEF7B24EA61004484ECAEABA192E06E138CE4213EBAA281A17AC1371FD8DFCCEA9AD90C460EF9DFAD8186E931C54AA5DE9F98B170D7C2AE0BDA1FDCDA6786776CDF73D785EF3F68BF2D6B5E3960B75DE77597F326194A92C15AA1BF156C8F76F4F435E7B6CDEE23734E3DF2335E3E196DD5E17318CFF7DAF17BDFF9AEE77FFF52336A55CAB6CE86C29AF1168A33D53D51070B259264C41861DA6D581C189465740775D4093955B19E6484CB6429B9CCA960909A0453AACD4CB266BC932D3CAD084F813255EA63FC918F7CE4DBDFFE3609CEE45B18C7F3E6F84583AA8189A56A27928EC05612AD936F463CDB6E2C6BB220324ED9709CB657C144913149357A7F92FD0C6949978E915B1773411F82C12B7145504BD926806962DF659E77675BF1525C81F1062F23BF125E71CA79E3D37148A43156B0717C7E5863C5D439D90BA82D99CFF19CCA722EA1EA2088FFC16808AA715DF50E09CE243B179810346D50D21E40F1B033916A9B27BFA00608D66421357CC3F3CF3F9F51303E249D0C3C1E9C869B6FBE99C8687BD8520361468F6DADE519EF984F1EFFE28B2FC2DB72F5BC9735919F72FC7A0F9F7AFDFAF57852E81B18656A21243A5257A374D494EACC70B4B4C7E5C40897C5C00EB58BB87CC9404208C41D77DC018F154F07C30AB29EE929FC2754CB99679E09C79077E7CEB3157983437112978AA5D3CF3C13AEFAF0E80896005FC6A528867CA79F9771C22C7EF622C88159BEBFFBBBBF7BE28927A8ABF062F5B84E971BBFD2FAD2E8E3A24389E2BD82AA6ADD25778447856380ED8C23D74E9B10D0ABA5DD80AFDD72CB2D175D74118557ABD1C4FFBA4AE5715A9E42FE431FFAD05B6FBD4584ABC2683C33C247AADE076AB6EE9B7CB91C8F56BD85B3E2839746A52037D66EF58DCC58BEB656EFAAB707F2B34CD034B9B7FE7C71654E6EAC366FFE9CC48BF7DE6FF9E25D17EE18DC3677DE9C52A9F0D6D631BF15148382976B4766A83532140E272B2FBCCE5BDF34F9B0D855A98D8DB51BCD7C1036A3B61706713BEAA8D461BF7866E6F1A70B2EB8001E30F5AE4A85950DE679C60F21F4D7AC59C34EB6C41AB92C7824F872A9504C56EECE88073E87ED89F9240684502B698229E5293F175C47711E4D3565C57BDEF39EE79E7B4E8D97A9BDA45A1407977F26E8A7C9CA77A67CF94EC73D3ED7A5975EEAF6DEEA005E7B13D91D4C166825C006EAEAC9279F544A86F5377FC2FDCC6A3582B679CA0E38E0803FFCE10F7C6AAC1AFC094C3E3636A34F726844CDC013210D21E8973484F2F9CCF64DE76BBA4813165D426F2D59B28491A8F17A02555431EA2299F88E77BCE3A5975E32599B8E1B6FBC116E291503DD2E8A92830F3E1806293C9D294740E425678A7017D21E901B92B7C35FBFF4A52F417C63583BF109A8C70402234F3D932D26F35B71710C0F73A7647277A56B746CB410E65AEDD6AC99B34C18D033A5B4ED48004C795F62C2940FA0123259D522539DF470B1489C493309002A714FA828BD69764F75250277986AE52FB9E4921B6EB8015FA031CE2DA57A056932712EB17C1A1A42C732B00D382B63D5B1D9736C7577BDD910E84D9B49BC75FC4F9D587EC8680C6E81C190DC543B847CB4DC8B3A3CFC1319DBE3ACC31A46CE0824B71907C9803EE31E2C1457DD934943196E0526E14F1C3923218C296396E1EDC5519B8FE939BCED5421CA12EB79958AB030BE46139A202C16DAB5FAEC43F6A92E9D5935EDB0DA6A079562A55E58F852A350A99706F24977B955361BDFB5DFAEA506FC8C7269F9FE0774CF9AB1EBEECBEAED68F5ABAFCEAEEC1E0E6FEF6D8E553C6FA8564FBA8AC519F9FF7AF5A5073F75079B60D79A8DF156A029D484F952BC81FE86BF484F4E8102D67F3022CC4210173824C494F6C995575E8913C4683E1685F48ED869871F7EF84F7EF213952FB84C732E2F102D308E6A279A40E9689346B1045B50B501D135C4346BAA494DCFE0890C231DBA246BF1A4003D6F319D44F332E264FC040254187F166FBAE25B1ACB6577D079E40C30F6CBC14037D4D2D79F643F4BFE709E61B890DBA79D75C16CA42F05C488BC8AD2BE78AAF2F1B2DE7914114CA731D4490B58915EB7E674CA7983F8229B2CBD6D3D9738593DFA1D4CB0104F42A24AF2CAB9201339264A1E92494210B1E9564E0A9F816C6A72577C9B2C0FC99D3AE575AEBDF65ACC028997F1F37BEFBDF794534E61C2872C8018335346F2A498191F1C1828168ACDC6F865692FF1CCD0C8F2774A082A8C10F79C9C1893DA3EDC2B500CF019556D38E56C2459EB2B82A9794894B86E679DE45460C1E00683572E25C6B7BEF5AD934E3A49D56DAC5A52F188CA6AF02F0C1CDBC6CB7854C09044F00CAAF59A5B684A77D0FDB9AA22E8EF2BE62B9B942916525A42FD4300B90FE8399418126AC40E6230F48AD82FD064947CCAA970C7B300CAA4C5D8C71C730C660CD7217837CE9AF40A7362E773D0E2D02AA5D2D66D5BF3B9BC9732E2A926880E78EC341BE14BE45F453F8C02AFE52571D29CF781F78CF6E61B4914C6A66CE6EF187C2D3FBF5DD9FBE581EA32D3FD46C9AB245B172D195BBCFB92A5A1F1F7D973CF5DE72F2C1572D4CDAFC5854ADCDFE70D5782AE755B5B8D7CD760B4CD1487FEF9B86F045152AFDA092FF7F48ED6AB5E62DAAD569846CFB1462CA450A717B695A7B676C1FE44BB33482DBADFE5CB97BFFCF2CB6410C10BB6141C62653BF180BBEFBEFB6BAFBD261CB371D87BB8A5F11398A53C984ACB898866CAB3EC391DAB5C6A6B93B145E916847EE0899805757D024587A451DA59EB4DC57FA63C8F91D3AE47B5A8262B89571598EB0774E02CE423EA3BEAE887D9FBCA57BEF2A7DACFF83ED697725515B810778A23511AA8B522440D79B44C0AE20AB2F69104B9C21EC5AF9813F29C2E9326C3DCB38E55C9A18E1745376786F3A00E1FE393E3F641A4C52D1C924BB0C7080F9509930C2A6F217673272CAC8494DD77DF7D10611A37A92E4961846975ABCCA67CB97D8FF9244AB21F71C411BFF8C52F34664C19B4026699D33D6B866D50571D1BF53D0B3EC9974B14C13212D9E07E273C1EB498F8D4A436A4E69748723BA8749C1C57FAD031E4CE935013E48934AE0CB926595B445E9338332E0DBEC09D819F7CF8C31F7EE69967589D60528C390B8CDDD24AD38EC651A729843936097BF525594DA98B94704343843CBBAC292C0771AB9998D83053D542B36E8B6740AD75445E82CFB54032095D2654E64578473EE9AF7FFD6B1A5978407E3E9EB13466C1FC055B36DBAFCD9E357BCBF6FEC58B17E316D4D65EC630415D2B6B54FC1FF87929CC57FDD8CC2ECD78CF816326EDC08C096F15C2D2E0586393C91F9C3FF8D966B3686A03B37ACBF3AB27618E766CDD74C2311F9F35BBA75A1DE99DD9F5FADAD7E705B30B8591D81B6E9AF25A4C89D7B7EECDD5BDA5C6BF7EE1B64ABE12E1609B10173729255D18270A7F90DB8E96292787101A763BE12E65040FA3A52660781D1BF2831FFC20763EC308F4B0D9C60EFFAA42556BC14417A50F3E6101A3385C199562A2CED504DEA4161AFC5C81668A5A061219EE6789BEE849B86A2E71AFC95AC4B0B85D6C310C647780C83B5E8C72E0EE3004EFB9E71E6A26EE1641C25C5B5ED003A901A1BA59D749440CC51759F4FF24FB39CC5A1373C002404ABE437F7335393F6E42D864FDB7B9AC2B56AC8063076D217C916E87EFE387071D74D08F7FFC636DF829E78DCE077E8547C6A5F0ABE38E3BEEE1871FD62A8F3760E3C293794DE00A2D6787B326FFDA957DD38D80478ED0208C1B3B9B9B987829FC89C06A8AD79DDB02C6716F29A76840B1B48FC9998EBE2B769D8686ED2CF76FCB85A969DC1A8F309A4C4F8AF56CCAFB7283F2F8A9CB072EC83EC6F40D99B62222A2E33ADA525C634CE9F1C71FFFED6F7FBBA3C04FE28F9F53FAF3AF24A2F8C217BEA0DE17B48519EEC7C6553B0121FF884FC094626CDB366FEEEEEAB64D5A1AF5C00F20E678472D2E7D2C2EA83FB17D101F5094EE5466AB56AD72FD3055D57778D37AA9E81A1BFA91471EC1D3611E98A3A3027305071B3FA913BAC938CF2116F1BC04FF30884403054F5A1D1D6BB69AEFD8FF006CB00D1B37044E05B8498318ACF79115AC24C1B88CF34CB7971FCB1BFFE06585DD16B4ABF556A3698AB9B85DCD57AAADB16589BF098B975FF47CD808E2EA48FDDEBC81182FE74CB3F18D271F2ECCEE7A65F39BA3517D8FAEB9B56864CDD6B7B635DA03F55C5FF7C26447757EA178DFB5D799AD43855692F372A3A6852BE762AF1CF949D9CA14D843D833B49D4F3FFDF4BBEFBE5BB2C3ADC3320E57A5100A9887FDF6DBEFA5975E524DAC1A28F2F1D59D4DE4B2AE90750BF1581F204D2044409235539ABCAC54544956A5CC5FA9D451DCC89FFEF4A75F78E10568F124239253FE8CB81A2969A1B74D96419DF23CF2E4329642497AEDB5D7C2AD1173A79BE99529A334861E842126EA0FEE3DC6F4FF84FB99078D7DCEB1BED8C9309B3EF5A94F3DF1C413D40A3AB9C4E3184771D2CF203406F20D7BC0C57CE32790E33FFDE94F594446065652F809C339F9E5E2BE4C5AB8CE1E8BE3FB81A29056EDB1C71EFBE8A38F92AB44B41B8431715E048F314EB6C7257899FC5280929B153BE3CE3BEF64E899A60D5D01EE21EAF6E93401E3981A123F219E0C033BEBACB3E0D9317C4C54C09A356BF0F943FFF4E0B1C71D3B7BC64C5B5F3732DC9512D81A8706990C74D3F56426719004933C3BA1D43192952B57623B1221E02288DDAD3919E0412DE267CD25A4565DD23D33510D0BB5255A957DF7DDF7AFFFFAAFBFFAD5AF72DBB148909635C40AE60413572E95ABB5EA9CB9B615EDC8D8A89C44C6D6285F64DC09F2E84E02B9577965B75CE38E3BEE209BD5E493C3C24BF6B3350E2701EE423C89CE956BBABA0FCEAA3186CEA914CF3EFBECEBAFBF3ECC5EEC4B35363AFAD8A38F1D77EC3126CD8850D3B38EDF458E6357B341AEE790F7D96769B77AFDC25018F51DF59EE19EB0588BA21A8E72E8F983C9C0C272DF609CCCA88FEC28CE6C7415FE4FFFF3A5726292D883D9E9E70BF566F3BC1B56BEBE7573EF82F95D8DA859339B37F78F997ACD4F211CA37EA15E88B66FFCC53F3F911F6AC012AEE73DEB1334A24A62C69C9A4446D25987C8F7B45865B0334BA9D88B0B70A04F4F2B84F64A94354C75E9C7291319B2A039CF7010298B45B2E656E474444D3BB034425E421BFDF18F7F547337C22B556C2CC75D14E8D2042AFA3BF0C00321C8789A20F52013B973A63C8F0C2C4B86FA591BC40EFFDBD5047C2388A3882E1873A3F86264E9861B6EB8FCF2CBFF24FB995A41A0127F2243304F2B578DEE02058B404126D3A6500918B30B27A314C2E34BC177B0124C396F02CB2928C43BAA7B8AA7A831CC13DC58A619B12BBA8D0A68DD9A4FB9843BC9F0A8D9375D303F6D668411D05190C714653DF03883935F44CAB3E6851127FC561E25D3B6A2CFE54FC66D1C9C964A17A343D6F4F0C74F91A66FB7DD76833C7DFAE9A7A7BCAFEC2339E0DA64DC52780A32B9AAF9498726E09652148E36027E78D965975D74D145BA14815842ACBA411EE5DB1540A052D4DA2BA0E70AD37146A920E3E384F115B53D073E81A78613FABBDFFD8E3B4F65B772A85DBA8E242B85D731E0F3326CEACE18F7A2A26D0266F869A308FCF5BCF3CE83EE140BA100634986FDF5B2EE7882882459D70721C775E402CF8F93381F8478BA30085B49AC0EA9C2ADEFBEFBEE586518A7D4E2B2AFED249BB82F0A07FD66CFD17F369C54F351CE6FB41BDDF9A4D65B296F4BC6BA43AC58657470DBEBAD575BA616FFD9A717BFFA5FAFD6075A8576696847A331D8BCE7D1EFAE59B7F13771BF3F5C18DB8493D234DD3B46E2C1309811D5FB76CDFB8F5FF1E54213ABD04E7ACA51BDEA457E4F648653D1A4DE236A9F293666933934507E50B7949B6EB89FDC3EC6A996126882348E784658782FBFFCB25B04236CA897150F1F71C411BFFAD5AF845D9E4E13B8E2D5CBAA76A0BDF0F3679E79063F219BACDB2FC1ADC2491C7269AD2F594CC8E6CBF15F72C925B0E77682861439BC688EF8435E5CE2BB03B5E1CA749A35E487370E7B18BB71A828F7FF713F271950D52DF87733F6AEAEC2368006BAE69A6BD42DC0E5F231194482507B5D81CA95B916715BED447E12D242039AA17E575C786EE311F5C072954C471F1FE1D0194FD0C2BC1D6F9A98A06794864D0429B34E3DF5D46F7FFBDB83030310CD98829151BB89C3F424337CA1782E5D10118988D41B6A0DC6296109260BDEA9BD9110086E6A051721484E285A3E234B88992B53999514A15BD1A3D9608AF5C20BCF271880F3363808210E93BF554CF121B3665A92C866AB3977CEDCADDBB6CE9C3173FB80B5D3E1A9E06A548DB4AAE85A3151C13A78EE6937702FF4B7F60721804C730919E96E2F6D7DFCBB64C9124C17D5B0C9BA20703E19B5834C6793106E77A5B0A4E085F5C627679C71C6EDB7DF6E176E6444F685483E60D3AD5FBF9E4FC77E670C50AAC3A8C91245720A19DD167989C96A0029F544CCC944BD68DF5DF22B932542498449B795139B648545E4C42593819B18EB3233467B070AEF307EAF658EEB090B71908CB49B7EEEF07CC5AB265B93E6F06EEDF91B9F5DDDBB6BB2F7D1F317EC5870E33F3C33AF111DF1E707FEA667BD5917F76DEB7AF765678C353636EBED7AAD1DB5ECAD7381F14C2B4EA09C663D7FC303734ADD5BEB23C5382996BB06A39AD788CC54003385B0244CD5C2850BE19AA202DE507970A2DC9A09CC393301986D8598F139B6192BCC295FB8C35D222F063A602590829FC3E071D05950BB63D92B9209534A2279C61D2117B7DFA412DDB409D84E874E39943A6B1D18CC119247A4E5EAA4C213A14A059386135CAC1DEBAB795F3CD739E79C035780EA53901E991AA4DBC190945710691281464AF28B558CB62FAFE06564361D785657045310E9D00938A7ED21103F1D97F14B25F12CAC6F7F7F2ECD19D8B4104E284E41ABB5DFFEFBAF82979606DCE0EC7775778FC24BAB8CB362B0D3F21B6FBC01778D49110CC0D2FB738EF6D9679F2F7EF18BA79C720A0B2544DE4DFB4B7C06AA4272230C5ED623694A4D807F19FC828CC0BAF2645AD84430CE0A1941F4A7117C6BB4C4D1A2342E8CC1616AF6DF7FFFA79E7A8A52927B45BCD966A24FD4613270C7487B33B02E3676EE48710D528642C03DF2C823D4DB8A2A08D12F1B59F461975E6AF19DA90886C5EDA7A1F9EDC562BED568DBE2A01DDBEFFFE6FD30E50606074AC552AD5EDB67DF7D5F7FFD75C510D5CB421B45BC5D8C990A9BA10A3E824618B593FD8E675496D53561B40484C0AAB49876045D0A2ED097BEF425218085B76118CA4F99F1B9E29ABA2BAEB80256AA443F7117EC0C831FE23B0F3EF820361259B4882C20C79698BDA9E72874B8403C81CCA44D0E0FCA1F5552874BE0C2C0F186305FC908E58A05223CEDB4D3BEFBDDEFC212247129AB700BA6AB51189DFBC19E516F386A987C0C931D06A7A90D984A5F172CFFE6487D91B77CFBF3C35E6F7B9FA3F7F8ED8DCF6CCF75CD894C756CD5A2D3FE7CF80F23C97F45BB7DF63868EA3068E70BCD5C3E365EAE15959BED4A3B82BDB9FDE55B1FE9098BC351BD109B5CB134EAB5CB915F6B35BD491588F2C64C56556E3296A1238F3CF2A73FFD29E7B0836EAB63F59544650BCF8F7EF4A3BFFDED6F313F2E470B2787F3A9303DD34BC26163183093A984BC8CF6913A983FE79ACA2F9FBCFD3A3401AECC6809A3BB5C445C9CED166834E03B279E78224E22634AF4EAE44F73C06A961538CDA275AC5CD7470217C79F949FB82066F2FBDFFF3E3EBFEEBAEBCE3FFF7CEE67EE4C55AB314A83F7B82F06F3A94F7DCAA48138D5D8D2B1A02989CB8A079081567A00536A022F6B22CF6A384E3E4F1966F26FFEE66F60251B8753D2B541F165D203DBA736090E6A3ED54384245114E3D61FFEF0877FFCE31F6FDCB001B214C2A1064111D8FA155E47DC186EBF1A3B63AE82E28CE3513FFFF9CFC34DD3E4724CD4190A6B1A2728E606E93AB602D3002A2CA4E76E8DFAFEED506B9EF1129310679DCFE561447FF4631FFBE52F7F49861C78F4D05D2E56952F25840516A6D4661512DB4249E5321E85FDB4EFBEFBBEF2CA2B4CC672C10287769F3B952639450FE6081BE5CA2BAFA4899A64140EE6ED9E0D7032180484EB035BC39289CEEC9BB565EB967466EDA3F1A1EC4948E36F2C2CA439C62DE2428919FBD6E093ACB5ACB8252825D5902FCEDA494E1954159E9A8DC2E988A8391F7B1AD3A337595F5F3E2904EBA5E94B7C35D2BEE4B2679C9AA754EDDB5C27C6C5AA13C2CC1BD180C0BF4C0BF3AF34D93A2A0AD5F9920242D5B07A52156118A79539360CCE89CB9FA1D0B0B622F51C63323857E79F79C915B75D1C2FAC4140CF5B5082453F3C5A0F0A6646CEAEE9986F4686CD8C60F6C08B75936BFEAFB3FEE2675FFCFE4060666032F2EB3F70D171BFFFC1AA91971BBBFD7F9F186E0C15FCB8E0B7FDA4D18CA3A6976BE7CA7158EC29F9AFDFF15877BE3CE24715D8158157F3DA9524578BDE56782E3847B84C7A818953938809C7DE16139722EF248F634D59EC90EF3262899F28A08417AB820E3DF4509C3293315011BCA4DD887F7FF2939F1C7EF8E1325155094CC3DFCFE8E2DFFDEE7743CDD0AE22B078279A00C790E96B5A24D42B7229F0271E40425AC990E1675DF9C4214AAE0885B219DBE1F1649D265759659E82B7C8CC67670BFC8965F9DCFC449A48F50659F30F6D459727436DB5385DC2BCA9644F699BC99A60F26975EBFE781C38CF849F3292418541BD0E296FFD42CFCC9D37CFDAD6D80069B62C4C0386D5B1B1F90B1658CE70FC3CE3D3B4C663FDED0630B829AE0375883FC125BAE79E7B6C11B1D8B789B4C12C271907963895942E27CF09275A79122585CC449FC038C8198595D4980D3A2A31198B5C5A13542C585C87F13DCE3B5791B24C6D6C5945E992D0054EC75457277594530B71C1091553B9C9B21D181884889752C532C1882B5021B93A40728AB627C39AF839D69EAE8CDA0F305A259641423CF973F6ED8354B55655D3C650BA525CA94D82351A855458877E205E789E3179636257571492E5851DF14D49494D8E106C1CA708B32888B963D8A7090FEEA2B3680332304DBFE1DA6BAFBDFCF2CB2BE90B9B9E5B9FB87526FFDD3C878C7738286C2AC743454F02F346674B9BC735E455B749A784D139E5B469EB89A64D382817F42203D62D633669F2C0520234BD286CECF317BB6D6D6FDC3E5CEF9A018959181A6CCC2C87D5C176D0ED55FDA4A75D1EF87DB57741E5C607AFFDDC0117D40353689A28D7FF89CB4EFDD1233FAA6FACEE7EDA07B6E7927CAB94AB77F963611CB5DAB9E1A43C9C94AAA5F61E6FDDF3DD52506C1683EE9637D6A8B7BC76A1EDB58309DC885A3B5939F4A8281166CD9A75DE79E7C1289135A09E5F8CAA992C07CBA9E3CF313938A158D0952B5732062D4272D12450D7D2DAC05DB09F6120737E1854A46942A79C611C26DEB9FF6920264EA3AA9D68028C878FC3251335349D7E76D7B8FDF6DB4518C75D8A2F60B9D9BDCBA49DE994FCE7D6C5E2629C6CC5A1FA2785A1DCE24437B6C6BA7DA6E8F15CB07B70903106FC099326FFB223F5681C6E707C190383C024E888F34978249D839D44873412A24589FDC5E958B162058E95C95C67997A148678EAE5CB97BFFAEAAB445DEB522C9F64883B5F2841865827208B0BD93DDFD73734B8439010B7530B56FC1FFEE11F6C1334712A2559B106B590FBFCD454B404199114AC48B6AADC5233D1456058030FF9FAEBAF9F7DF6D977DF7D378D8EC0F3E107D070A62618379FB329730397AC8B93EDC0757599095CC89DCB844595460D7FFAE9A73FF8E083649715085A892C575BE098E12E0C6ABBCFA24D2031C7FDA7D437CFE77DF7DD87F9E54A2B0778F5D557DF72CB2DB8A3FCFAF17ED39532B437B4792BB3144AAC6FA8D5C582D7CEDA992A48AAEDA5789D5074AE4A66A2FE8C33CEB8F3CE3BD952839B46ABA62C9108339856A2D097F3C4CDC05DCBF7244C1790CC4B89BDA01E2EB8E002DAF8DCB898107C08D7EA80030E80D855B08E8314EEC08D6EBB7C47EE8B0BA12A7CAD9A1BD7FED8C73EF68D6F7C23C9E0ED221CE55E82322633078D231C3F9CF93933176C1BDA64CA668F0FCCDF54DF5C4F4C313405BF38D0ACE71BF9DE193D556F241E88ABAB5A0BE7CEB8E9DE2FF744B9F77FE01325D377F98D970F26F547EEBBBFEE0F76FD65F7681F9EA7AFDC9ADFD59A9B6B553C180FF1682BA9E7E3CAC6077E60EB38F25E975FACD6EB719814DB5E2BF03BD480043A5D162F23D9C69211128A0717DBB3F0029861124F9A2CAFE876FB62192DA5392F485B5E49662FA3B122472F7384E49D3CF9E4939F7CF249D63A312583DD48234C7DB5F09DDB6EBB4D3B0AA375CBD727BF846E12C5A94492A0102CA767C010B7A65ABAEBAEBBB0B5F0A45FFDEA5789198539A5F40984F221871C02EF84AE673BEB412B1B4E614F5C9CECF7BC69478B0217D787F75FFBDAD7B075F9D4EAB488537CC51557B0598DC9FC547A154CA5B84DAB266B02CA43C1C479EEA40F088F66C193DBB25BA11796CD2B34AA7F29AB71C13DF75AFEEAEAD5B3E7CCC1F537A56980BE94DD2F178E77EDC565B91918A6934E1A2F12C1CF202FE039C26D7CE18517785D9C1C8C1B261B0F156D7F2FA5C9A637401B900928EEDDC946815BE5B4FFFEFB3FF7DC73E3B875FCEBF99C6228003F4580047E10E6738A45B20253320BE381EE952B40952074142951376CD8C03A350E18862A5785839754D501A08B6DB2BA01CA56668128732910E91DF3D46524D8E3A1D80EE1552C17EAD4A069CACEB60FADD7172E5AB46DCB56EE3CAC0ACF15110BE90A98729A2BB6DA0B7F4AAB79E3A6C503B05DADBB95B9D5585EC0D039FB57F018BB72D3CB2A62185893A7427809E324F80EF4162C9120E3B5C691F8E31FFF6826B5D57EEAA9A760B241DCE3DF279E78422DD1651E32EA42F7C53DE42249E553B02286DC1BCC46F0E8BA91469E16C1636046601DF186CD1BB00730B18C8DD2033369BF5C5761F84EA77233A92086C55C3433878646FCD08BBD68E961F336265BF27D264C72F5ED2D7F9129548BCDAA198BEB5E2DC86FAA3436D40E7CFFC1977DED93FFF9F397FD70269EE7A1FBBF35F6C65B957796ABFB8C2573D30860648276A5D05818561707F5451E4E7AE18D6D8F3DDB1C1B6B844921B1A44349684A6DBFE11BD727700169B031D914841167BABFEE2370C26927AA053763B69C4966EC71C2598DE139EC610CCBA87F3D4439842C89D878E2082FC10F713B1637D1F2A35455F882679F52520CE73BF1091415A091CE0B2A0648CD2DE34394F8ACFF60045258172508F18657C67FEEB5D75E3096C5FECF9026074C7BC5B53612A7E0DF647E277D4756817126B1F1B049E42EB3B887A833623DC9F68C0FA951FEECCFFEECE73FFFB9719216534687449B4A6782C152F23275D4964B270992C3B20FBC819059BA64E9DA37D7964B6568C7B33E7F163E5CB2EB92B56F6DE865F7F2560B3AC0F644A956F1268E1A4216610064F7214A1B4F67C591B4A21A4F8B7812973BFEF8E31F79E4119312C0617762C7E0CBCC9813B00F097BE491473EF3CC3384EBB9CA40D34DCC86F6046FE4A7DE405F6FDABFA55EDB6DD96E6FAC79A35828D61A6F7741E06F19B35ABA74E9FBDEF7BEFFF88FFF801C21DD0DEB6319301172603C283691CA42FC886AFE876784C85BBD7A3535301D1DB69C24F50745277E0869C8A428218CDC8269D668837AB17290C4681B2F9E917607133B34E4F7BCF9F3B76CDA2C1B9FA9B9F18DE8997C4A1644679FC1CA06D4AAF1784D6E7D2F659550208E9D952864B9C324463BA273F813C5018F96EBEAB9EE94BBF9C86AC7F002C6094F0E3E3BD506030BF832CE0006E0725C8BB49CAC672C8BE5E38800190BF7DEF7BEF797BFFC252681E44B3CC9975D76199C45669E45FBAA8479877B4E9405BD10B6E7A6BAE26E5195A9EF109253D0B0845B59877123B4A7BB3E5A8B93F6AEEF9D539D353C1037A21133BBD4BDC38C94ABB9D1ED2D33C378257F4E7BE1D697B79A7A73E9FF5ABCF68D75068711AAE02D2BFA677D608FED73B7CE9C536DE5DACD82819F6BDA5E585B5C692E2947F35BABDF8C7FBA0A0A7EC46F15CCB826804F00DBA7C38713E51F0D26ED1619B6EE5360079E7AEAA92CA0A138935C939171D34D375D7CF1C544E2F11029A2AD1C8378D71992669E53FE168E0C3FF19D36096ED74CA1E05502FDDF6A02933985494657C77DC85526C0011B861B1B4FEA7246090E8B2D8AFBEA821D794A951F9A898DDE145652B852C80B52C0BA1D6139CFB474E9169F76DA695FFFFAD74D563B26E3039340FCC585175E78C71D7788AC7727D121F6AC3DE288235E7CF1452A1B4DA6CB43ECA6284CC6504945D2DBDD333C320C356043CA6926F2B1471FFBE4273FD98A4C4F5A328563E0A59622F61EDE78A6FD36D7560A02A6B3454D6F833A7E460A6D26167CF30C73193871DA01EC5D237C21FE930685990645EA4A4C3DE1E245BB40A199143F0A21F2977FF9974F3FFDB4C58626E33725068E479A447D2C7FE34D79CE955D11EDC901071C000945B397A24D5E27ABFEE83FE23FA1579E7DF6594254B911F944EC46CD6CAAA4A43A197015E18ABEF8E2EF89642506941BDA66D2A2B4D6B7D1806E810EE0BF8562D1C40921DB49CA368A9D0727F7EAABAF6E9B848462C303035E7A42C669C5A2987E1C9F8292EE9C73CE81C4C45A1041814B710FE9B44C4691426E1E78E081DFFBDEF764740BF725882A29B2F15C34DED5A85232889D2F19D613E98D7C35CA143A4C471D7514A498BCEFC95F231C45A1FF952B579E77DE79E4A492CD284097CAF10878E0C984DAB8F5D65B99F2650F5BCE8F7C3BDA9B1210AED32635A0D2719C220FB669605A30D40F307DCBC2EA8E76B1511ADCD69A5B58DC68D782A5AD1DCDED959609EAC6CB994AEE1D737AF26FD5FF4FAED208D6997263D9A672BEBEAB176EF9833FDB330B4AEDBEA41DD64D3309DAA69498D1072A958D76BAC67CD31516C79AF5A410941A49DD9B00A6941AC0E00F3EF860F8E56E672E1A2B2E5E5351C1B3CE3AEBF1C71F67218B402F38E4D75F7F3DE6560CF56A81A9C32B69287C042D368620580FCFD48238EEE585BB057124F157C9DE74285233910C8E6149E2834F38E184471F7D9448273C239CD433CE388352C2649062F17DBA012549798147BC8CE28D97923F4A7E17F620C197796AFCB437C38F7EF42372DCBA06BBCABC459DC4B484BAADF1E0605434B3B8AFA48C95EC99AC095C8C3B7E75E28927DE7FFFFD0C153064C46DC9266E6EC9B192D298041BC509C2A1E1A1EEAEEE91518B10B55097288D7604367102F9D3C3321D1E041B8369D22160D644F5BC1C1B6330E3F63B6C64C850E621E9B3332645A5413E51B79C9DF84546B8B4D8EA022A0804E433ECBC7476ECA8B064100890E4EDC48E8F38E538E3FEB6DB3D6AFB69640076B1FD0D341B14B50D2585BAB568FD6D4BC8B151A543B148CC6F734EE9698AD5874838ED279638D098C5D59889EAE880EAA5643B747768E412E6983EE69B5E2678A5F9D2C3DD5223246EA0F17A28BB5FD92563A85CC611AAF7F5F50C0E0EDFF7CD6F42BE33F4C1A3D86102CB5AE4BDA6ABBD147E992BEDD249D1DDF1B36641120126C3054980F2EC71EF2A40E9B21C1BA7ED8F7148A5DCBA24DE5A03204B1ADD358A0C9E135A7F82A84EC79C35DD4B66573CB1B72239BD891065CC9DF57ACA859889566D21DFD568563DABA093B9FBCF492AC94832561FAE752DF2DACDC44F4C2117FA3695D28E3D63A727CCC52DA8EF24F4FC2831CD284872F9B058AA877BE5FC56BCF5CDA83452784F5F35DA6442E3174C7C999D2BAAEA206B27E065F544F890054DAEF4997A7DAD0B6D82102ACD8BDBC98D37DE78F595D7D8486629EF62FC495F8C6D3C77F662CC7FB53EEA199C1D2F3049105A1F6BB8D6320956B00D6734F0EC3F499C2E7AD0C8001C9E497CE7CEA9F5907E8095F732E5154F9F1976FFD3CB387F44D902D9F7AD6F7D8B747BC24148D5294FD951C42AF0251611FF897574E9FB25C17952848B65629C6CCF64F46209B46A895C496DB29E3CB40BD98A871D67F1A7152B563CFCF0C36EF7376E7897BF44C41B53022985441212043F878CA561472F8107077781C1873B323FC46A6A59A20C9C26514C0CE88E811DD94EB6D2C9B26665D41A0246FABE6FA679B941334F3116F73C9BAC04439D28689D3182C183B470E142A853CC02AC752800F5C1C0375961E4B64351A677DC45E8AAD433590FBF941057E8771881B18DB1589166C367A3A3B0CF9BB5DABC85BBB057BB4D67B169223413AE90C45498BC2C341374298727CCB2C988BC310C7E998FC96A7BE1F1DDB8A190AF3451858056188AF69967DECE90130A552804E2E6A3A74916D938B24975CC1CD4401A8082359422051B2D5E90D515B43BDCEE74DEC4D7746C1CEEAEE57960D08C351FF815240E513AFC3E4E144D6CEE7E5AF47CAFF42335C184BDE2F418E15F695CB00F3B6FCD181437A2DBC78DB34A1B0ACB74F8E187FFEC673F8332568EEE7FA40954A9243C315D280CC9C5DAABD1AEEA924C9674C93C1E7839B946AB96EBF177D9639735AFBCB5E0DD0BEB71BD59DA61719E51DA63C64B85A067FCC0CAC5B86D5302794C806F29E5622F847A28CF7CC7D01B6F95F65B38D6FF66F7E868ABBB161DD857886BEDAF26020D13CB20514520B9164815FB533E6F772FDCE2513C76CA2215B59BAD28B6508B2048E0595E70E1057BEEB1E7ABAFBDBACB2E0BD7AFB7794243C3CBC70C7879AB3F52182506EC055642A632DD3E9125CFC03783461B1362F079A60F30B761BA28F8A1FD534AD1947EEEA59A2CD95905D9949A80D83FFCEB0676F412B08D50516E2709E50E349A5E6E8E97871D22028BCE923AE60B31BDD75C73CD97BFFC65527589D85C77548C54FAD8B5DC1592A525A14A859B6FBEF9A28B2E625ADB64B5602E1DC074F3134C6CF4E27A3990EC787C8E10E626D1AEDCA82E576B5ABA186ACFD8A4D7E8786837C8E225FC957266D3C98DB757CA64AD8D191551F300DCF8B0C30E83EB44DBCD389073E20492ACBF3915FB789D5B6A8C43AC30926319482A7D038303811FA81D0ABB77F60F6DC33AE78BC52639A720EE31F51874324ECC446EA90B2FBC304EDB71ACDBB459801F55B1E39A7367CE58BB76AD4A39EEB8E30EB8961D951D8C3833E670F6D967C3FD64001A8FC9351E4F5DA45B96A9303CF5C68D1B396085B95DD01424488726E08496CA39F2C630356F320563392F4B9801A8D2529AEDACF317498669637E4284ACAAF577C36E727EA73B810C3532648F7FF120ECF44D0DC7E6C3CC67303A4CC12D2E1A57F4BBCC74AE26102E9307F5CE3BEF3CEDB4D3786B46F314DA16E48C263F5D071D5DCEB98846A6E37D9AEEC5268B02D53CFAE8A3C71E7BACFEC4061594200C72721E30483CB574BF3DB1D6618D31775DBD4598D026ADD55F7AC8B2ADA535F64445310F298C623E3C04556CDD03CC8FFD3F16238A2154FDAEAD85FE77ED6106EA73FDD933DADE2B4FFFC2CC32E6D825E57BB731128D6130516FD2A8081512D6087A71D9B265988A9DB3BB63D6532CA0F5696C72ABD55EB264C9EB6FC0FF8622C4A5B0EBEC35E7CDEFDBB26570EFBD9786F93A6442B1942FE5731E86DC6A4456B3C53B8647ECD9895A7655ADDC0F7CB81B493056B54B0FFD02DBBADD329895F11D0DED113390E567C38BCD4E5F93910B5EC64BAFE2762A45F5BC6252D7E53BE00683A8254D349D3F6E48F56030A903CAADE5C2C9E410507970A711364AB1C0BDAA069671465ACE9F2B638A2DF4B9CF7DEE861B6E2025140511230414CD6A354C05E09243748083B5B28C418930152FD8D384E1D17D113DFB29A79C42209C8BAE36EA04DC6E136C990B738CAC8CC70CDA2DDD482777324D72C7A80CD926147374AB1EF863D10910602B9C861B50C303903C408407784F9245AB574D9E24DD8DE644DA67AF95CACD142713A5C5F7B81A76B417546BD562A158CF3A0AFCDB0FFFEDAFFEEAAFE08977A7397D4C4139AD2383CD99EA8F1A45ED38CD4ED6F68B8911F50050241103C3D74833C2764E78040682B024DC5E7A51E88BAF83EA84412A2ED084A94CDFDC7EFBADE79E7B6E6AFE373809FC49ABD9ECEB4D1DDBA141BC214E77786478564669C7DD49BB463BC96475A7EE4E9A7245E9F952DE61721E78E001E83C2581D9ED800D0674659C40365D223A45CC651D9A800310E1920C13A1E2B801B467E451D18592252E1205B7385CA1BC9DB4A99A4EDC68CBA903142670E5CA95975D76197BFBB8D5D72C1782CCC5EA6B95E91C847E00AB79AC5ACB17C35AAB5DEC2AD4AB8DDC3B4DB92B1716C25684498BED64182F6E475E984FAC6360E9AC93D457E07AF424E18E5CA56BF9BB77FCEF4DF99FBF31DF2FBE951B28BD7B51FB375B39272CC765AA8CFAD5CBCAA0E42EAB7862AAE70DD22F584D853DEFA507269D4033776EDFA6CD834B97CE993D7BD6EF7EF7F241072FB516D2FC320CA13007B111B7DBF5C4BAA4891F782355AB094C4AE36F18DBF7421B3D6AA75889566BAC5A1F1B6D0C8DD4C7AA4D1CD95A8BD68A17F8B971D475D43649E4196FE7ABD3A109E80051CE62B72C5DBA14FA5B7C537ED6018DC69680E9F020718298BC24B8830149189A7FFCE31F69BCEAFB14A06CEDF7FDEF7FFFA31FFD28D34B34E4C5CD45C36E3A9FC0255F22AD1059254C8A1381DA265A1D278BB4DE8C8E72842E2E6832AF4647AAC0A49619BECFFA59D1EBF211442E30199425836CDF7DF725CCCF38E56FA2757245FFFF8DC3ED29FF43431B2F0676DD2FB94FA8D3CEA25C1C36CDBE99487B9BBDECDE9D337BCEB6FE6DA5A2F5DF87868720E813BFD5C81E3248F3906C3359C917C9B3469E062C64FFF67EBC692638008D7C5A48C26F16E1365AC6ED2EC6FD698DE2734A19BA6C340D5C0644CECB9E7BEEB97AF5EAE38E3BEE3BDFF90EB1287C2EF5AC800ABCE28A2BE091F0DC12A926861FE2FD3AD6D81B2709F1D8C3402169C688BC2C90072B939059E803CB0119B585EC14F7116FEA1EAA8E3CFC4ECE1EE42C06496D8DDBE129EEBEFB6E1C2722A6E5C912683877EE5CEC69C5D3944C36595A9EFFE9659D3A4CA68A148BA4ED4F838847420119022AD44D819A80E846FC96D1AAFF96A560BA17938154F9D237414636EEF21B2E58B0802A967951FCCBC0A06A4A71E34AB154AFD7423F2C964B43A3238562BE3EBB599E1356FA8A118E64924AE718F6A35DDF346A1247B1B1068C4D7DD918673D32CD6DA65099DD78BD59D9EA154CB0C30C4277C0649B4E13507E313F6C1CA6F4299FB790AFC036B2BC26BD3D3811955258ABB5FBFA4AB8D8C040F37DEFDBFFB0C3DEF78B5FFE7CE9D25DB12CAB5F7DB9A717672DCCE521FC71AF26F401B442AA1BD2798E33DFCEF3B9D05D05DBEAB5D1B69A60C7E0D8D6ADC3FDDB4746471AFD435613C43688142626ED0D9EB42D1D6B326D672A33153A96DCE026C39861E3114EADB6282C8CA2B4214E9DB60BC3983220B8EB68989ACC1D67D94494F538123D092351B802E696211776C9553DA6F204EEDEA6F4602F9A24E36B611B19FC7BEBADB79E70C2092C87A6634DFE09258D19D69FCEB2F19C6EB53CF2F8B9AAD8F805E6EA31B08B2FBEF8C61B6F7431207C4F100D34C14B2FBDA49E6B4ACDCA099319B7139FE0ED81E9FC330D80473DF2C823FFFDDFFF9D9E148904E8D188288ABF2406D96484DD2CCE26C84744D8A94F90A3D3877D9C4B5B4866731DA81AC0641CD1F62798CDEE1E26A8B113A133F879B5DE304EF09AE8B7347FDB304E1E86F16E6D3BCA6EA90493253F3806ED27319FF03AD085F84FEC57F9494CE330EEA16E731D9A403722A3863C4A8A2A9C413BF2385AB674193328CC2B942B2593F12530C02D9CAB99CABB9C4E13309F26C756905997138657667B673E05A76B9C002A9DD5E93481B469872620190BF304D20A4419E05E3818871E7AE8AF7EF52B9E0D97FA58CC45E259FC1F6902FA04CC0CB33ED6EDCDA216781C391FD00587F049AD1029970AB97CD468D66A56887CE3F66F5C71D595FD033B92A2C9CDF6BBE614BDEEA45D6825569E268CA804396B9063FDF03EF461E9045EECE70B413D2E0CFCFBD0410B971D7CFC27FEF1EF6FDDABD8FBE6587F90E1143BA2433CF018D889279EF8E4934F92E6849F4FF3BC41319F83AAC509C2CED87BF92E8B172DDAB869FDE24573214A162D5A10841088F981C11DAFBEFACAC848DAC7AD0B86147E046DD5B420C204DE5E3BF0DB36559CDE060B980B12E806ABDEB09FA1DE9204CEFBC0507DDBB6B16DFDD5919168A46AE0034056576B098E601CA532C356844E3D4ED9C21D9A80A07BB627314E40954749149B423373815CC267F5A871F3C9CC9CB9E1D920EDADEB65CDFEEEBCF3CE33CF3CD364BC00575D75D545175DE41E5BE18C4DD673CD753789A4222DDD641658D127AB672DAFE6FEDCDDB17C23E3529DDDD4D386405E5C841B588D9D4DD6D5CA8803CD2456CF6DDB56CCCA0B72A4A61819153BA18CE09DE49F264487184097DEA0DA64EC98FA80D05A7ADC9C11A2BC19F955AC569B40065AE410EEB38C0247F7D1471FFDD8C73EC6DB77003459B14D241CC1E942B286619E25B2621BCD76DEDB381F2915B799B0DC25ADBD381B38E3F8179ECD2DB7DCF2E52F7F992C75C2243CF5D4537FFBB77FAB8B70C939004115DDBBB81253F59614CA33FB663115FC9EF7BC079A9C9499561374955C6A4CE324A6B481DC54C17436A3FEC4C921FD8302622C801409A8D24752693228A6CC137859B9964E38A928F1FEFEFBEF872C334E3D01694A15FC658AD8385A1C36042684E8647C81B8E6FFA94FD0C18B491D238A11FC7BC71D777CFEF39F7773C5745E5D923BFBF8B0ED53B4734FD98211760C0D7ABEE99B3963B4BFDA2EB4CDCCA8302FC8CFF29302D400CEADF19BB6377494E6633105A19F8F6B71B3D6CC75ED52FB8FF5F9A2196D9905E5199B5AA3FE8C72EFA6A15A56C3DF9131664D25DEECB7DF7EAB56ADD278A6B5DD122FF0BD4231F09276B315CF9F577EFF61EFC5E6EF29976C562FAA2F5CB860C7C0D6EDDBB70D0CDA7C6CA952ECEBE9EEEDEBC24F023FC2179AF5B15A0DF2AB6EF95CACE0C383373DBF158410A9716B64086B1099A8DE4EC6C6A2A1D118D2A956374984630E2B301C1A4A76ECA80E8DD45324A0992E3A144CEC18A37D4B4D807D887F190E1571080BC72852B125C83F2A51CB1DC8181A4BA0E92274E45D29C7983E95716D321655069D7071FC90A821FA918A7FBA3E01E51504C24D37DD243DC4BCF1B265CB60FE32338A1584B8A0D52BF630BCC1E19508E22D4CE6A74A36BA3E90F83054FAC7EA364E08DD776F52BFA0309F5329B5FD792A3A2C5A348A65FE76F050EDFCE5C92B51908763C571C592400E3EF6D8631DED594C8697FAE77FFE674881246514912BA0CE47C938791656AE9A66010C2C970D1B36A50F6F91A22E570935245D1BD15DA991596ACA8D431B93AC096AB65DDE0611BAA503784F8DA5B836AB04B078F4C719AC50DC5CD0DD5D3232547C812B8D4BB14D28CF3097D90DE57B0ED0F39E7BEE39F9E4939560103E271F169AAD66215F808C5EB7DEF627EAEDE91D1A1E82E7AD9E442CDF3393323C6EF4693A4D80C168BAF80991E39C5B8CEDCA2BAFBCFCF2CBE98449B273AE64554D4E4CB9184D690206B83903F48ED942DDD5D02603F61024C3F0111FAD830449D0D5FF912630593F038A12C61928E8D50D5B64E3BC91188798C11E7783CAE5A8D52EE4824615423B5F6B3469F376457D7533D6CEB5CC4253DAC5F85D1E35461EC21236763A25F95C908F0BA383D5E60E6336E64DAB596AFB79130C05ADA0528C86EB4BF7D963EDFF79CD9B0A454A37C877FA76999DF6EA9AD967F182589F05F3BB61E91F76D8BB7B7ACA9E9F84894D06CC9A3573EBB68D38FE5BB66EDCB66D0B16B3D295EF9BD13363464FA59CCFE5F1408D5A6DB45A1B4D5AE39C3F90F17152B38A2168F9011ED4E286F0688DC8D45BA651F71AED42D40ABDA43BF0BADA516570D06CDA3CBC79CB8E81E1A106ACA0F87FA60964551C73CC31102912B86E5F748A11D2E45D7DF5D5D84BDFFCE6374F3AE92459ABDCAE02FEC91470C1A6824EE038BB94917EC6DC2E6FDBC54C4BD47272A460DC3E5FCAA2F17642FAE1A0413E90B01AD6E4CA952BE5867668025659AA2FBA9E42C28417A428563851B225769AE7582E8666B38C9D3C36E665AD6D2DE8C678AADC5620C44C1F4B781B0F2275C7E2028C00C63BF51EC68AA9B7347569193A79A04C86EDC5D7DE78E30D4C0D04196902E9585061BA2D09DD82144A10BA7ECC9AD22B74C367BBEDB61BC6C3208397159AE2E20CE8B38050CC42CA72971D375C07CC4DBB7323BAD45D0A9AD36D97DEA696361932AC83BA40D10C4542B8C324C7192B647A568F4F3A7EAA71ED691A863A090233706D3A742A75958B6F9335C18063075CC185BD6A9608ABE00170637D7A2F7CB42BD671AE60E99C77DE795FFFFAD79979C31714675397154E919B10165C441CEBAE93CBA5E4D27029D5A28FBE202F486DA16263FC4B0241E3D0F46B434B4F63C752EE0BBACE7B2559FB0D1E6993611C4C9661126FB638E2052EB429C4036BF9A0E841E227A54D6BB7263BD233147B3913BAAEC615575C019B8064329C01E217CF38E38CBBEEBA4B84E70CB19E7FBEED758163682DD05C029D134798D53E1CF2A38F3EFA897F79BC54864B0279618AA560C1FC394B97EE3AA3B71B12A6000D164429F6ACC08ABFCD9B37119F5EE9C9F7F65466CCEC2E157100EA51BB66923A84898D0019DBB5C84B5A89697BB6B0C0A2A702E3B593B4BB245C8FA09098C02288DA493E981FB58AA65D191E6E6EDCDCBF65C7F08EA1767FFF58A36D0B832C50D51A79B8AA8516D985F33D6E72D7B0989CF7EAD0E5C669DDCAF09D97D5A9119F23FCF1F5D75F8FB9D5D622445B2A81B28551970E6D2489AC0F691904595F019631AAD58F7B2828AF346C3706407C8A2B5B495F860DA36A5C2FAD50A329C07D4E51E0F69390D9C452A4030F3CF0F7BFFFBD0E3B452EBD19B62C75B30226A3E9B46D0652952065430F8C3B135E3BDBC5B34D8D4B4369C44A4D28A11B5DD11185058D038FA9B9FBEEBBB18F99CC51D7A7EF7EF7BBF01BA41EDCA6A9EE4BD824F7466AA4C9F23446EDB1DEE41722ADABCC5559763225949C74214F22D6503185A24371C6EDCC9E30AC0191A53F79CC54ADBA94CBE84021FBE94F7FFAF1C71F6781381E1C730A4D404828D59B1BAED1F0A409DCA66354363222BCB4CE9EE78499586218848EE52A4693BAC549F399ACAA401D71E9D851F931329664F42C026C7859E51A91574440992C01F88E77BC035BB0634D5DD5629C7625240B529D170F2D053D3EE1D7B885D885065292ABB920E5D4C56964536808746C5FFC8BEFA88651DAD173AA667432690A481E918084FE812D1FCB1A9919A7916C876929B61F757712DB7932BFD9EAB73088197D3D1FF98B8FFECB234FD44631455E62C683C82C886589250B355863C867A7E89725D8412A69493E8A411366B9ADEDB2CFB578D1C2F51BDEC22396CB668F3D765DB664D7AEEE4A609238B11C2473E7CC325E2BB54F0D0DA6C1C1018CDC6E8C5CAB5C2A7675C30F86DB697B722651DD4684E2BA5D4F13594D90501340EC26ED3AF4009484F17C63F921E1ED2481DD23716FDC2C98B8BB3616F70F0D0E8F4523A3C9F6C1C6E0703BED2C9D06D96DDAC08F53011B84E3F1168607D5DA45BBB4C33855609D8D9B2497496288A973D16E3CE904BC89B0C04C6CDBA7459427E10A019D4A45E7DDFD60B25A4B9283D2CE6314C8F5CBDDF76401221F0CF90D791DB7ED076C26E8302C34841BBC6716C6BB093C5E870281DC88A79C72CA430F3D44C18D0525D325E3F61FFFF8C7FFEDDFFE0D6631C4328BB40953C4E99601272E235CF081071E58B16205FD72056F6903B16B0B35A2A70C09A51B9D35689275EBD6C9A5E2E46ACAB865F157B214E0DEB82B3FE1CEC627B83ABEEC8253F573F886279C7002D75B4D3BF5C245E84029D3C0E430FE842B431F427928A362B21E7238AB7A63264657DC689DF681A88A4CE6932AB826E9C97A7AE60312A760CF644179E86D4846E921C63D79116E083715AF9E441A55987500E7B4BB21027661539A911C738CF5D30FE06F190157B346E3D8C812943A81C2D2B855FBC44860B625A36991D10011E117638622F6509A8B2CE5AE32D6647EF6B39FBDFFFEFBA1DD091CE26E53490A6D029752ED5BDFFAD6F1C71F2F7E6CBA5C8C3E290DCE11D20A93C337D9F4E3CBF232A65E8BFC3F42B60F39E490175E782149893AA83354450FA3895CADDC7526F3CFF0FEF4D34F7FFAE9A7ADCFE741D8995D7759B676CD9B0BE62CD8BAAD7FD1EC459BFAB744C1B8EE9742E55A2828619CB2236635187564790D5E38713639D9AAD76A8D62BED4A8B7ACF16ECBD8CCE2C5F377DB6DD62E8B16627AE13E79091622ECE9AEE0A4787E3B8DEF35188BAFD5AA4CCF7881051AE5F326F471F75ADCAE45B18DFAC7B1DD039E2D348B3C8B808D21FAE110D4ABBE75CC6C78C484F954A5F9B9C452A3E7E266D14BBAE228A836DAAD38A8370B0343D1A66DB5EDDB07FAB7EDC0B2A7E67140883C2EA8281C2E023311226CD5AA552ED790AB12583B8635A2C430191E441C4A7846E84E980214FD984FED76011CD4C9CE38D5097EC6A3E3260B1387F0DC642C0E102624382249B5DBB79C3A9BCD1C6538BA41D48E681EC6892FE09AB495B1C4975C72C965975D86A7C395B98D95205118561A5134E31417CAC95139F1A0E138107242AB4EE4B20CAC31EC21E64A9714122A01DE27453F6942A86918AAF16466EA6831F5C1BA67C62EBC147108639F7979CA687C41E298F110F69D48B2F600C4FF10D1C8C886DA282AA2CD6393648DCC7880DD9638C49C747010CAD653B980E4A08B28703F97E5885F71CF91F94FE9294545E4A6D11B505C4801776E0221D9F91E5B8A2606252C5D1945B1F19F279F7CF233CF3CC35A279AC364B86375955BC3459A555804C71E7BAC6B33320ECE0108C84430BEDBBAB223B3246E03CBF5B478316419857539E5BEC65FDFF9CE77FEF6B7BFC560088E26E6C7259960C130BB35D0C9551A4A61131962541B7884DD76DB6DF5EAD54AE62B0048052045A52995EFF2F5AF7F1DF614F6096507C987F143DC1A9B4D3C01CA76B8D1308A5D3A979C7FC661DC4D8533F6C61B6FB8A15E0AEE76D623DA3DD8982BFC8BE9623E1C8ECEE8F6D1B1FA9867FC62DE6ECEC84479BFD88C2DCD906271E458559985443F550B639B1497B7DD761B0EA7CC5EFB74B52A1C022E2E8471A3D958BAEBBCBDF7DE73EFE5F34998531D1DC6A8E6CC9E095FCB0ABB829F9668D518466B34EA7486C27C2BC53735030FFF091D504B62CC7CD3C443E99445264E51A47EB6439AE5286EB5A334859387699C4F2B3072C6CB45AD5C687AFCB0D08EBD242837DBE5A1A178DDD6E6E6CD5BD7AFDB383838D26A9B183E46E25970693C4E2BCB63251CC194281AE32469052FE6CA62BAB05DB185F835C9135A456EFD0AF718179464B75871C52463A7F1B871BA8BFB59D31BF1F2264E2B1B12309BAC108C9BD3B5297529C62A98CD6652906176EE73371E406C2885679291E17B4EB93EC39E1277AC012257123BA650D6F3873C086EAC58412D655008D2610801FFC9BDAD9633B8A30AE5EC617463023AB149C6D7CFD6546427C639813270C9408C9343E64BE093F9F3E7E3316011C030243AD34BEB44E01C89F24196BB6255781836FDE114333A14670D46D8BB072719D6931AB0F1F0D30965EE9A902F6F22FB87F6C15E7BED05B5F49BDFFC06EF972F5FFECA2BAFB05912B14F5448EC12ACB60DAA3DE19092AC1908EF4BAF48C14A85A714CEE22E8178127AB5E3E51E12262108D9E2A441325E7EF9E5441371E175BA0496752FE22678E9840AD1AF0655AA8DC05FE178C264D3126805F9656A355DCA0D4609F422F8364F8E58A178C2A96FD85F487CAB628B9333C42FF000B07858E80322CA459ED131757C85D98BC63E1E079BED631FFBD875D75DA7D274DFE9F64CD5ABBC056E8159C5543CFBECB3ECD3C0732588E1DBE59AC65F306FC1862D9B1263A72857C86FDFDE9F8AB4B76B474CC6A347C382505D468D48ED47F5433C1E0D23DC142E26E653AA3DF0FC5CDE9BD957D96FFFE57BEDBD5BBB3DD855B272D0528B17AD5E0C52D6874239C5F847AD8C9DA69E8C778DB704AB5E82E5863268A4859CCD24C24EDE21DE8830F56FD20A2BAC5D17F44462DA7E1015F261A9544841FA052F97376D3808DD61506CE3E98372A35D191C8A376E6D6DD9B2EDCDB51B366EDE3E3854ADD76C81050C272F19E7205168D138F4569335814AA85C100EFF446549E6679C59F288DC77DF7D7037692D6156E5E9EAD8B28E9524EDC2F074E8214E11C749A03CBE79C20927FCF0873FC42D38007AA24A3B2997E0DA5B78C1C2FBFEF7BFEF6A265C106386A013553006B660C10212F350BE8BDB2DC87AA5A8A88BD2CFED2E25E7892A41FE37633398197C81470626D4CA952BF19E44D334F985D1703907D5AA8B61038BBBD546C77FF0B48B6E9E241E1D34006E633686B4C6D297BA71CA2D30292015BEA1480D4D86F65572D2A44574147938BDCC40B864642E384441587CD34BDBE6D04C209C8096BEE0225AAA0E73C0A4B15ACC20FE7DD7BBDEF5B39FFD4C91076258B933E80F7959BB2BF5545124DAE586E42EDC73CF3D61718B8A2770BA7E72E14DC6D14D058E0F498E163B44CA323AF8BCCC856024DC551434D80178CFE1A9E04B6171D9DACA7BE371F0B098A833CF3C1316A899D89052905F950473A2587426AEC728EBCECA44083E39ECB0C3E04C40112A14CECA32FA0DECCD80F7343AC447ABC69C1D211DA69AA94254288469845D0315A58080F6C064CD279F40D109AA7385FBF09F44C761FFF00DE363F2BA5422A32A2132EFB3B402C60D2C2C1B35093D58DE854A3E82646D585366F62EB377BC351ECFD441501285DA917B9E054ADC24E79E7BEE4D37DD44C9858B1F7AE8A18F3EFA286E55B11D5146615D7495F37BEDBD6CE9D2854B97EEB275CB9BB4031A351B22C8A75AC7FAAC396E98982BD54EC906D2FD5FF50D447E33F0A3C06F9AA49EC4CD3869C1274827CD56426077843993E73EF1F29EFD6602CBB054CC111A5ECC15F08D04666ED88D276BC2E4F72BED76CFE070B26D7B73C78EC10D1BB6ADDFD8BF69F3F6FEED6369C18FCD75FB59A930DD50CC868ED8E4E81014309B7CF1C4719F530A618341316B7528227072B12EA451E126A7AB27C797A686DB53ABC3D89299CB2B9F76DA694F3FFD34D69DECC5AC1FE64F089127FFE87824DD512A4946AACA3DC691ABBA3EC9BA2AA9A5AB80335ED632C838083DA6A68E3AEA2868A3242B7556EDBDFC15D7C0C577301594C6F8136C4DA81F86F1D9319ECE0D4F2BCB3CA5455803405264288F33CE38C353BC5883C327D8971896143265044BE98CD3878B53EFC628B80BE9C4B929752F6593C75D38351C10E717DA123202033DF5D453A1F0E18043B8F0B4C7196BB97200AEB6C4B139E59453049377D971DDC8B28BBF74235726F59ED809873C740AD2E16BB6D3B2433AED063478591E6FAA0DCC3E9EE2031FF8C0534F3D454014A536452D13C8CC3D924DBE83834185D0AE7054C60CFF62B5C487BAF7DE7B33CD3E25215747BA98D3E836409794A4014EC801B7859A7BF079D59F84CE07CF03E38FD48E4AFC081922702A3712CD6A467829BBE190C13B11F387484FB9E5D6AE5DCB489438E370911B6FBCF18B5FFC226E8D358503C7F1339467264241F4721104DA9FAC0D74BB5B5360F1B48B91C664303337F1C8591A87B1B59A7E004FBF343A9A4AA8D0F4CDE81BEC1F2CE5C7B72517D456C26778470D0C4780FEBE2AEC44E5CBC979FDF5D7E38827DFCC99555EB868CE1E7BEC52E9CACD9D37CB4B5AAD66343C3464C3A4C552AA3B939C1FB452DE79F803CC4062FD69A5E57336F21306B117344DDC88E3B1A85DC317BD64CCD6267849E827500385BC6F5DD09C6FFC280CF0807EB110E40BB952BE58C8E5C3209F0479DB683C57C1851BEDD80BBBE364D6582D5F1D6B0D8FD4B6F50F6FD90A7DB07DDD86FEED3BE01A5843DC4558F2C17936DD35D2AAB13447275D7B49303FCD21930184D6C85467B728B23A2BEC2E13673AE8A4714AF7930CE3CFFD8FEB63BF4138CAA1917DE04D85CA171A95BB0506102E822D7AD75D7741BC12A8432B4DF45FAE34D77F527E620FB0D6552CAD9C04FEEB72A09ACC8B62FB498C1F178732601F6F930155880BC5444189928B0CD3CBD6B93C95468472CACE49F2E212106A3FF8C10F4860093B48CC741C1CEF814BE3FB8C5AC815A077C33925271D03B5C6A9DF7303F1EE5C3049C2F168395DA744615C294372EB7FFEF39FBFF5D65B099EA339E976FC9195AD127F615D8443A7DDC7023FBE79E73BDF09758A6797B44D9C526FAA7146A84CD6DD53C059B785B2DC58A97411E4262973087C2677870944E4A5AD69449DC805C29B9B6FBEF98A2BAE206F1296960691C0D493F304AA2B56B95C072C9A690C17EA4EAB5F0DBB09B051C88E0C3049CACF2AFE77AD1A9109268326AB98803373CD35D75C7BEDB51A1EBD16AA4C65A768D3B19A040A8CF1315239E198E1915DEE1317CBC1A99358E172B7B32E89321ED9A148F82E8E841139F503104640D3485966E33CA3D65668B55BE17819D4F64CE70D6BD37A19C657C0988E25A06EA62A7571F129A40AE38740A92CDD75D1FE07EC357B76573BAA75F71493761C78FE78EC344AE968226B8B8C366A69C7C0D10CA410509F75978A90EFB930093C68F7B1666BA4D51AB3E5C2C622886C557410E7737EA118E4F3412EF4BD7C3D6733CC39E80648AF5C900FFC5C60FC245FF4A3422E2CC79EDF6C457EAED70FE737EAF0E6C35AB531385CEB1FA84213AC59BB69DDFA6D4323A323636FA7F118D3272ACC0D15B89A4045B00C3E0BC24BD2782E1FD43F9D60B7CCD8644929063318C65018D3DB6961ADC92239B31DD62F72C28B6C8DF906EE2297C8DD7D29D8103ADD92B9854861C94DA58DA1BC85C21562BC90E683347BF0C1076949CB5357D5857C6255A8506F31692AE386E28227453D38190156FF575E9009605C8D5439E321637620C01B4ED0EEBBEF0E6FE57BDFFB1E7E4F950E610D13464E131783E60F55B4EF348F3599EF43B989D7BBDEF5AEDFFDEE77C6A9B72683B1F2FEAE1A3459774CD576738B07691F024A049AE49C14B6D7E0FC12D4A4181CE55D9C3538E5FAA9531D2300F8886D1F023F305980A5D16C84A91BEEA271F8506E20853288760145AA0229B48CF07D587FA4AFE0CF69CB402C5E77DD759C1C21AF88B0A4C662DCDCA4B82969E58B2FBEF8CB5FFE32E3EFC6418B2A104FE9CCA09C1C35D1487006947683CE7BFEF9E73B8C38B71247BB50CF4BC16AB2AA1CFCEB267E265680BF1DFAD42CC95F36591C86F4007873D555576142883765F81E4FB462C58A7BEFBD977BC6CBD82998E4A741C0201E14E4D5575FADB54BB2363B5C6E1CB0279F7C1206170182EA5AC17A37EA1EE578A6131F9E0393EF90684455D0DF4AB22A21A50A784D32D88C8B15CF822F717F682E93F66B6A47E9D16DB60BA1376F7EDFF27D97EDB9C79299B37A20923D98EC29D83FCE5833A3EC852B334C6A491E53CC0C63B64188D314D87A033F4EA26AB339D4680CB6A346D21EC3AE09C224674343106106FA003A2384F51FFA85BCFDCF7C4A6CEC61C5120B0B4D9282E7770561C978412BC671E80DBD1903B5B0502846B1191CA86EDEB263FD8681B56BA1FAB7355BC1E0E06862FCBEDE998343909EB16D0E1A472636DAD8D4D6DCBD6EC341ED79D77757489618395A27DC6F227BD046E5BABB34701D186BBD7133C9EE01A70CE5F67623EC348C78C693ACC4951B8CC3108192E2C6F8D581071EF89BDFFCC6659FF6A6651399A29100138DB0F48F3FFEF85B6EB985CA4660071D67DA4CFA893045AAB921D3A27894158655C592FDA17C7C9710869763FB1492E788E993C958E255D9785A315C495E97175B302F2CE441071DF4F39FFF9C6678D645D6FE969C775C7832F3C91BA2F5CA414A332BBD49FDA63E4422B7EA782291D2A8B19F9B4831A9DB0E5FB83F4DFD912CCF6EC47265AC3A264DA079F733BE75DFA9B9551482F632EBE3E92DD19DE28DF057FC27CD1056BA26594F343E2961275A33E8F32F7CE10B26C3C651C39D7AEAA9ECF124D924D52B1F0253F4D9CF7E16D6B4369F02291CFF59679DC58621EA7DC836559C16359671437C533EAF1424ED38F690E039C7247383D265640A47C79BF8718CF0BCF3CE334E484761196920EA2A933A85E40754E73B560E332ECC38325D5B510D2BCB479DD121D3C51A824BD1F064388ED4F62EE25BD69F620EF211F9625112F7AD5A4212D1C05407BB2E4B6C4152C3404F8711400DE40B30A7462D435C10CC9B3373E9B2058B779D376B56C5BAB8290FAAEF4DA0F1E11EA332605F0A32EBD1E8B16949CFFA7C052B1BDB49040373B0D9B201A2C0AFDB963521A6D7CBE7925C3EB1EE50E025612B17E0737CE2D9720293B251A464D430C68C57F1FC7CE441C68589E9094C6F1CCCB21E47ECD71BD1E8687B5B7FF5CDB7B66C58BF65DDFA7EECE54F1E7FD23F3DF4B0856CC11B889A119CF5429146895B55EEEAD10E9D4A5C2FE535D70E56C297BEF4A5238E3802B295C84E2E34259532BA1DDB72B20EE09BC8699AEDE61115AEE086A455CEF060E0349777DFFB59030002826912912E82F6A2DAB89A69424C666261BF3B54F2DB43D0B11FB558EB455B89CB625F7DF5AB5FBDE8A28B18E72418810F82616072D4E0CBEDDBC8532F8AB371861CFC86103D2279B1A14D5A72A90480C0DDD245C71D77DC6BAFBDF6DC73CF19A7B0D39FD43CD60551414613534FE38B96B5728954A7D4AE0C87B18060D5AA55EEDD29417005382E70503A18CD3053B7DF7E3B26858521F815FB63503488D3E384134E78E8A1876840E1B25643B65A10FD36AA13479F59F199679F7DF6B5D75FC3278DD678C4BF23FF4C6137A56414741D9F430309EA336FDE3C0685252F701176FD950D0EE317829EF8651229B3ED86D230B8BE5C2B8274299EA8DB896A657DA3DAA2BA5E9AF61946C5C1C82E200C59425F907F7AD91DA127457558D6C86CC4E1871FFEC4134FB0DBF37857862C1AD601A723A9243BCBE35F4D0B193E18A627B2DB35B2C8DEC1F023771AAC6CC1A2F0A79B6EBAE99A6BAE119A39709A37F19AF83EDC02EE199A110434BB981F6550A875242F841470CD02BA479405D42254DB0A70533773186C024873A1D5AE47E371473F2D2049FBCA41C47657F659BE6C9F7DF79839ABE27B6D7C924F2B0EDBCDC873AA25E416103244AE7FEE646E03328FE673A1E5228DEA710435301627CD42AE6AA34639FCC9CFE50D34413EF4A01B82421CFA501E5003B665417A8C5335801BB573516C0BCD9A3166099BB6076E7958988FE1245EE0F9580BD84CF1BAB7B6BEB56EF39BF8F7ADF59F3AE1E43BBEF10F26AD34484CD4D3DB3D3234AA242AA7CB8D17A9328019239C149C8BA79F7E9AD51EDC60AE2C63F59C9B2DA055E75AF7DAF0AEF075F37CDAC96E3083562F6B1BB181F12FAB656551B93A46D84D658979050E0C9B0D560E09EF28DFE8F198695EDEC4173F24F7B5FB35DFA1FFA2714CE7982958DE9A9F7FE73BDF81943669EC8BE949BC81CF7DC61967C0CF807050E03D603F459D7FDDC9DDE8140A2C62E26F703FDC298D4E56B9A88C98EBC0B8811405E2757DB7AB839A7560BDC9244E3663C1992EBDF4D21B6EB841544D620EB07D2BD3AD4F11C930821A525E7CF1C5B7DD761B56052ED505175C40198AEDC22FF3F0F04F26238EC691EAEEEA66A206AEC0899F3AF185175E58F55FAB822C6ADCB1C33A5ED20469ED4FC498D549279D74F7DD77BB706093D129BBA5CB1D31318A605A46B4A95D80B622A1B8239B9D6A0C3866B48E152ABDE79E7BCE39E71C6A41FE50D96F227DF12F93ED84CA60F6C8F9A5781D535E14DC1DF14D656219823CF1C41331E7C20EE10B38CF8CD7D14EE72CA90DB27602A500F6284B11E9BA51DCE38507A4FA178DE5D2A54B3FFEF18FFFFDDFFFBD78BCD98E9CF3E3EA66CE834B666032E60C7C78FDF5D7DF71C71D6A4765D29E88C6A141E46F154670D5BF8EAE2AC34F3EF9E4C71F7F7C975D766119B69F5505329FC91344885D86644D013CF62E5C1AD3B6FCE4E1AE8BE71DB0DFF2BDF65E962FC6CD06CE579C4FB756DCF23A925E74FFE9F513392D98868D26E72CB997D507B6134D037694891BB6B56A3812E602D818450B108DE116908BB450C26326F63F03C8EF54F14313A4E4D3CD168E3C9481D768B7EA2DDF243D81D75BEA5AE4FBA1F1E1FE948BF9DE563BD8B47970E386FE37DFDCF2E28BBF6FB4CCE0C068148F5BFAE5AE4A75D42E7A4799BA0B9C733F645E014E2D7694C2415E5AC44BFF121B03E2EC873FFC213E148042F14F57524F96B67AA3D8BD0A7A64EFF3AFBC11F5903F89D7442F1E6DB7E3219D63B9FBE4D7EB18C06401D2A10FB893B90329DFB8EE6E1B3EFE44C61CC5324F1F43CD38E31803318D4C09D0F6158E888F6FD52DB72C9B945160B18B3ABFA10CAD1840BD143C8A6F320823338DEE125FAE3210810C5113B2F55C72574EA21241AA339099CF54B0E88E4D1A376723F873CF3DF71BDFF88664283E84ECB8E4924B2029D4D375EFBDF75EBD7A3503D62EF31FDB5A7142F32963B62D9B37C9CC1969397BA30EDD309692154FA909A6F409704702A256AC58B172E54A938611198666D139A6028317589636A31C2F412C48F484DF4252933C441D894D5678412B1B97FDC4273E01F79053CA99E41BC607697C315231B914D3CB189F2EBFFC724846C6EBF014981FE13184A7565E440E3E137DB808F61C5681010A3EC2D9679F0D55A464E9785B98B4AE4A4F4AA01BF9A571656C00265474116DDC0E2489A0AB2643DCD23D579B11059D696932104447D34FA9F7684C5D76D9650F3FFC30B6077FC28327D0B0C4AE1B77EEB0DA7868D5433B498B5A7071053F8B191D299BE8AAF211834FE701E29B4492988DB9FBECB36CD9924573E7CD6847B56603471A56B78533964B7D1D43A24DE3A57FA50EE027B4A3A3C458BC2B76BB1F7B963BB5EED99282280C866CED71C183910A4D50C8D96C41607BD558D429DEE7021358F620CF4F9F188F034DD06C5AD2D67AD46A34039374C327983163492A3EF289078D5386D9363058DFB17D78D57FBDBE7EDDA6E77EB7265730ADA62996DEB67B08C4803B2BDAA80EF1DDF17209A825F21866E10E2447052B9045F5681C3F60CA1CB57B78A5CE4D4627E356AB31E897F523E9C462F04366987184DD9A568E5C0E10FF4494EA740F9BCBA2D0AED9E1D62D7177117EA2F9612290EA87868B209D7C40E5E42067CE3FFFFCAF7CE52B6C208AEF74746EF7A8B5182D7DBBAD8AE741E5DE79E79DF82A9E070E35E16EC41BE1AEECEF4C6E165CC176A3ECEF57FC744A6D2C7892B04349DA0582A829CE38B40B414E4986F9A5B472F115F06EAEBCF24A8E879B9E8EBCD829B039702F4A93279E78E2E8A38F3659181A72078B812970512E1446B61FA11FD01A6D341BBD3DB620DBEA06A7A4D04CAADB9A9C3166B504B99F88EA1521CFF1C71FCFD0BCD02F6E96853340C5C0CFF9C9E2C58BF109971F37C2A6771B2F339AC74D43443673D114CD982291A7ABD887B28C941EF810DB027631661EBFC2025D73CD35FFF22FFF42C38DFE810BE816FACB251025D600DB807B63BCCF44A3B1FBEEBB33746326525C3092C30BE23FD5D98D7A51A5DACC2592F74DE5578CDEF859AF57DE8E551A324A9458167B1D5161D4139FFEF4A7FFF55FFF95278DEE3F07D39376C413D6888FC6688FE2184AFAB9B2862F5ABB42857260B82375393E39E490438E3AEA2818284412E3D7A55239BDBBED1A673CF822C5E5FBECB1E71E4B66CFEC2B95C34673348E1A70C9AC26A84318E53C879F4AD121BA5C047A08956B173DF143F2C7C027306D93347DD3F4FC38F0076DD4A8E0E573265788F2B9785C1398113FC05F937C888390B06CCD4FFC7612B7E11344A1ED6F10B51B6DE88BEED0EFAD74CDB53BCACF355A493B0ABDA4DC6CFAF57A6BCDDACD6FBCBEFECDB736AD7BB31F9E818D02B5E27C719C5393E5DFFE24A62FD95226F309F04454037C2F5B988BE86715C2175D74D10F7EF08355AB5605D3B7F99BAC09A40326678C1387A642B2456C0BC609E5F314D8565A59498D4818CDC4525E3728329D4FA0F223E58D45DFC4DF7A4E21310F263E8148B9FFFEFB353CE6CC18DB540190F01DB80E1C624A54F9138C61D8ABC1968431881F4370B0468C8A1A4B4586779381D095C5E5013BEEB8E3A0DEF1B48C604C1944334ED386C0A1F064201B0F80B38185E47F4A5EF338495FC933A02D4FB227CA0B28120C0C4F4541A31ED662A6C3ADA1B119DAFAE0073FF8E4934FF2F9BBD2172420750C7E3E7BA66D51642DD646BDABD2353A36BA78975404D76B1D8BE72A0393450CA409BC8C53C1CBA0840C7490CD09B790B090706424548E02560BB34A248FC8FD4570CD0526624443724B3A653B7B59A3280E86AA570473E2AB805287E5EE160770BD3099188CDB8A6EB2E6E3BA30A0872FECBBEFBE182D574D54FBAE1C574857102391029D74D249509334291428E31D358794C8B4AAF04D5CEAC8238F7CECB1C764CD09CEAB803E5D19BA025C3822774D46FF42DB9C5A4725A06A4B226B3171D8313B4418DFC8C45162434A112F9680CA16961C61161DF67DB1949B3B6FE6FEFBEFB370C19CEE4A0992BAD9AAC611D6C80F3D3B93F5665B9AA023FFC1C3AF5416CD23E3D9320808745BF59B408CD7A10C12D3F2CD4810C203860288E0393055602342B95158FB7E00A721B14567295E894F07651A45398B228DA3B6AD58E8F1835E8B30CA17F11C58CC661B7B188E42258973D57AF2E20BABFAB70DFFE10FAF56C7A2A111BB4B7759B4CBBA0DEB4D16E015E68D5292764CE474CC96C540BF56A850FAF402B22B3E6126E2C5A75C2F574F48E2771053F31604B0B830771E316E3FF7D4939F8E54A96278A4E3C2342FC4D1B265CB206768A2ED244FA06895428E8A9B896B87CC486CB4801DC59A4471BD70847A5EB5DA6518E094534E79E081074CE6D762D8D4076F6B20FAD7B807053ADEE0535AA00C41305BCD07F0B3C64F8C49B17A4B68453D95626A9C32290FB1329107E6C20B2FBCEAAAABB8EACCA7E13B0C23F0CC70AE3523C944983CBE4F918A1967D242FD0978ECE528712789025AC11668383CC27801A131CB962E5BB3764DCEF67EB57BB41DB5E12544C9047FD338CC591D2ADD6454CFCCF1E22EB4FE68C27007134227DF4BC48122EDD1537CEE739FFBC77FFCC724A365772933B3D63D2147C5740B8983A0B921D6B939B8B754CD1F66DD49E50F09ACB566CD1A9E042E65925587519E12A13C39632C9F80C3660181C9627DD824F0DEE08D62CB4AB2BB75D7DCB5149A6A5C25F80D03381D9150D904C641F8F176B802F6039419F316AA99A7B14C75AB22C40EC01B2FCBC128C2E04FEC43AB0DE04DEAD92014AF848597D10B3240ACB4B932A54E903A073500C1DE37A37BDEFC19FBEFBFDFDC39B3BA6C4701BFDE18AE8D8D45712BB4E679E0873993C154A8094C06C667F8450A695C1525B99092D122389B968B34CD1378F1A8B5FDC33817B68310E2C32A030CD60F86431B126AC121B09AC03396988E42D922470B8917B43D1C0AFCA52B08FB0A612197CBB7A2A456C7875069B38AA5BEC0CFD7EAFEA68DDBFEF887575F7F7D53FFB6A1C1E1DAF070DAC53EC57C8B4C9E11081E644614794684CEC03A7209185161B8C34BD1CF6E1D3897CC0DFC9A8C6A77725E7A7280887B89DF275B09DE9C78E289FFF44FFF44D67D02D9D5B5909678C72679F8E187614ED127132104762CA3C494517EC6963F5DAED173BAA7B16880720FCF452B102339F4D0437FFBDBDFD205A47C66256C47C5835229C467D309E0F7E92E30740C1FE0B2CB2E335958CCFBE637BF79DE79E7899C88A5F0ACCF628135CD16C585540DCBB32181484113676D6114A33719CD05BD39A543891B51AC8A373AEBACB36EBBED369218538A29621B64F45ED22B04D830C6C22B98ACF4979A80CF9C381C9FF8EDE9A79FCEBC4247C9154CCB638E39464457141FDC5E9A4A89248966756F57298049C3D626ED7FBD6EDD3A57E8DC72CB2D575E79A597968C990C02EBA6165D8B9ECE29A3EA325868F9CAA8E9885ABA324B3E262E4572501619523E32033CE58E64B28E2BFB918F7CE4BBDFFDAE4C5DC1A244A9E40269544F47BF58311F417EB9857035B624E44CB280D3CB30D1F8CEB9E79E8B0DAA78A06BE9B8DA88CAC36D6A4FCDC455BBFDF6DBA11445F9609CAE0F1DAF6422DCB0237549E7D8557BD3CD9B9FF1D8F819E17092559F4EB95ED650097D88E6384A6C866051DF7EFBEDBD6CB725DD29101012A05A1BC6CD213F8D0749540FFC71E6478A09AEAF6A35DC4CE6F84130700552BC535A7510B75B91E5A66E87961DA8EAE7AA9EDFB074A379AC6914E620885BB6055BCEB7D821CFB255FB9ECD217BB9208E82C460DB5492A06069F1F2B6FA3D979470D994B42E09FC522E3FA35C9C55C8F78CB48B033B465F7B75C373CFBFBCFA95353BB60FB6C645F1B4E84981204C466E4F13CAED152C7AB42F7CE10B5FFBDAD79423954F202EFD8F7FFCE3BFFEF5AFB1D5D54057D34E56673311A9DCCE3A24AB290D5E38B3495603CBE131BB193824C73CA4DCF68C60AF5CB9F2F2CB2F576E835E026B56689DA860C5CBA88E896F94B58AE3B061C306D937941E1A2D3BA0D0E45AB26409740C1F99980E93650EDC4E24D75E7BED15575CC14753570C0925D666F3147BAAD8C6BF1FFCE007FFF33FFF533904A820CCA9C9A243AC6C32599C4754FB82CA8AE3412CA15E4615C203CC10845A90CB991062578D855535E616942AA5ACC606D82BAC24E0FA419490FB5EF3EB65141FB2D4583DABDA577751DD96670ACF69190E3AE8A03DF6D8E3F1C71F97349403EB2A0933B1161A172137B222A44404A93132A9F94D165894DCE40B530A0BE5BEFBEEC37BF625967BB4132093716C588E1387E79C73CE513C249CBE4B62E254CF3345E1C2EAB9AD197C8C332A15A561F1C925975C72E38D3762069860500E963FDF6BAFBD56AF5E6D0B1A53C8B3A82388DBE3ECC18CC20CF0B2DC27C6C17AEBD15CDCB78A4BB555B0435E7BED3585117622C177FE128C44A1E7E9327E495A0747BB8CBFC283C014A02D3279BD6084F930AFBD363441A90C7F74D15E7BEDB160E1BC8A65E5B333D9688E4113C0188026B0E22CF69503E002511374A42BA4785A260DB6B4BD71A869BB01A99D24512E6AFB6123C85543EB1978859CC9175B611E9E4784FFCC13456AFBB361D212DFB31DD1AC26F0F24150317ED1588315FE00345E0957B38B82E7F04B855C6FA1004DD0D50A7A0707C65E5BBDE1B9DFBEFCFB3FBEB279132472DD6E1F6F679AC064DE8C9E8E92411EB6C99A469C74D249DFF9CE774C46FC2ED603A646C950B976ED5ACA5C1AEFB423F1C9DE7BEFBD6AD52AF5B13159573B1D199A416C15E065AD31FD8CD4886A9E15033CEC38D4F4834D5655CAC00B2BA2E3B4712CC6CCF70A5549B899AC9E0EA71E6F24FA30CE4F7EF29370A9E5079BCC03489CE6CF6A6B632676DA90FC611E91650DF802E43EE433550EB414034D14E376F2D9618780165AA9946EDCD67C60D1B4E2C9A90CBC89D41934CCF15B97BA8F917DBA546E981BDFC105D97D8CAC5EF40A6956E3CA5018D4C9E26F089C0E9F2A41224F11A31F34FF49B464B2A22DF79018A7C888A85386D8848AF1B236C8987178A058152E1805190D4F1AB038E1D89AACE965F10B34041EA7ED3404961AB8F4D24BBFF295AF70BAD44D42B3C7FC30AB375848413F83C360F5ACF2AE8460BAAD63A6B467277F88F7D0E2C49BB2189B9D37A63C99B4E555008C49BEFBEEBB19FD70432554DE22501268E7AAABAEBAFEFAEBB9946CEB4ABD8B4923A93AFCEE534E39C5647414F8573C8E84D6607EF827B80E8490FA19BD87EB200AA1D161F7295580317CE8431FFAC94F7EE2D2D54DA932356F2E9A3BC9D8B4986DA6149E4E0D70FCAA2DEFE84D642661CFD2CDE6590250AF0DDB7DD6ECD25E7BEEB674D92EBDBD3DC5D0C23FD3A860033A003A05823C8DFF8CA7B249E0EA65A50C61D6764DB7A0DE6A1818A106CE40AB19474D9B454F4CCA0713410D340BF9562E6FAB0D20078AC556908365431721800FE07B91895BC6B6B2898D57B45DCEFC322C46A801780DA1C579157C2FE7B14B995D8DAE7CAEA790EB0B72152FD73B3ADC5AF3C6E6E79F5BFDC2F32FBFB1765DBAA68999DE97928E27F88D11517A00AE4BCD175B00992CA7E8D618F22CCBB4670C44071FDF241FB0F4BA7C5C93456F1866600296F128993834A8A3AC0B211956D4245158153566C07828F42464446BE6D6277774D92229B299E4AC5026B353266ECD4112FCC614A3CC3E4611F09E5DCF4C66C78B24FCA1871E3AEAA8A3F821FE157F97FD3DAE4EFC09B3B538FC37DC7003C7A7069678AA9B6FBEF9339FF98CEB296B2D094D21B293687AE1BD34CB6AE2284B8D66B244273EBCEDB6DBCE3EFB6C4566D40D58A5AADC1F249514D294D5E104AA8B44C88D06784E25213D06FDC98DB5E13BA4AC7075830ADFA866DC564414A9E229A4711A651D0E68EF5F70C105B091B9B1680BD36C84DA7FE59557F085BBEEBA6BC58A15AA7AE39CA88C9E3A1F8BC2E02071B41DD69FAB8F3B649CC9E2B00CBCBEFFFDEFFFD18F7EC491AB3CBDE395646D6055A940FF8936DAA2458B307E6C0F2C93B49D1BE63259B54B38A9B52CE750E50E49C6B1AEF34336826062C74DDAD712CD0A94D174D05ABB9906E250292E496ADD214D266B02174CA2D80B51DBD800A409F96FD902A81D4935C35ED9264BA84CD604F6396CEF310811B370D1CC7D96EFB970D15C18C4A55C9841835AD004C65AC78D34EC96D064C633D238A51AD0FC98AC0D0B83B4AD600C9BB1D5F45A750BA7B2DBDB36248BC30467302A144DA1181673855C1EF3DC8426C88596772897F7E184F8B6434EDD40032451BB15B4A10E4C3E088B90FE7013AC855408A11C6CBEC296AE1583B0920BBAFCB062435849A55E4B366F1CF9C31FDE7CFEF99757BFF6A60D1045EDFF9BF9A7266085C4030F3CF0B9CF7D8E89567A355C1AC94D52E3F80ED3789235796DA74D80E9F4BB405555F999894D9C28AC4485C2800FE7569A009E3DDC591E795794617BE0528A72C3C6C5596080E8DE7BEF85C084F0C543D118172AC9646D012975E98BD00551A4B48383DA384117BC6E4F5FECDF4004B6CC32CC808A6F4CC61E4D18EBFFCFDA9740595695E7EE33DEB96ECDDDD573B72D2A82A228E6E5F98C2E43125D0BD09088710271888022623B3109A8382193222046511CA288C6644962840551630C41A501ED869EE7A1BAE65B773EE7BC6FEFEF9EBF77DD1AD0F7BCCBD51655F79E7BCEDEFFFEC7EFFF7E96B285E15FD9507839F3C26FC3CFDB433E1D8B2D4FA5745D829792855EBF7EFD29A79CC2CE40F61FC8F8173E21EBEC36A31EB7997E3AB9FEF18D583BB88478337EC388C9269294228C98B5EBAEBBEEA28B2E12A205A1588AAD7993F6C68BDC4822983FF02031D184FB14FF826DB42C4530FA219B2B13DC58C0CB2EBB0C1A5FAE6FCF53931CBA4C0EC2C6982983937227F8165CD3864B312726C55EB91463BA052D4157CDC04D199F984A66EB86C00996A813500A859B96E1A00C7CC6BF92C1B30719095A86F424975C72C9E73EF739C622F0C210B023F293F5B17B701CD3B603030311A716C033929C072690A37DE3B944B0B67B21E513C9AB26663E01ADDD073EF0812BAEB8224AE710FC419680B9573C0E49AEE44C2E6109BA08610401B2B0E5861DD04918B8A56ACDDA91679DB06170A80FF792F525ADD1A6F1AB37AA32788BD0007696D0428B69B4D1445ABFB8156D09EAAA516F22AC75CC5C1AC74D0207B1B5D29640B3DD66C20C9479DD0BEA41D8083DD7701041EFB71013C491CE26359B71A2BB0BF030A1664AD2CF05FFDA4BFC38D01FCF8541C1F5739E5B705DF8A7B08290B7607232DAB6EDD8A3BFD9F6DB2D3B0F1F19334EE1A2751AB1F48ED597433F4C6A7EDC5FD2C6B0E268A7EC0597483DE61846193A8E8E356A58CA6F02FA10D205B68631F8938647C90EE13DD79897938EC02285145510CD0381AD3200808A940C199235E2F56D1499B8B962C9A8666D574C707D1B376E2492906A93D1B62488548A66E4D22134BFE9A69BC81C41C4263196BC3EBD619C2F76427462027C2BC7BC30D096212DD4E6F841A644B1CF5B308BB46354B26CCE6682981CBF49CAC345148A100E4BA9840F7FF9E5977FE2139FE0EA9F7CF2C94F3CF1846D75C83641200199859877834F0D7DC4690C76DD9C09165974C90B89D3C4F09311809376B17BE98809A24EB93ADC6C1B3AC9AE57F92E32A112C3CE4845B02E225E446B5D70C1059FFDEC67555A46F6D369A0E4A2E94AD9D3A43158C18DC1BE42995217B38D4B2D941DEA42B9882510BAC0134E38E12D6F790B34A394E8173B99B6C9E782308103858E0FB20B810E171D617698DB3D1FAC07D8306AFCF5E69B6FBEF0C20B996C11F414A2C08F7CE4232C1BC83DD8C8638AF57CC09293125ED2D590013BAE213027912FDD0E99C2B6842550F3B243FC5242F77035FA8CF44C17BC8E9B8E586038CFA056EE767E4C602ABA89EBABBEDEFCEAD52BD6AC1E29F716F53862A7D3ECCAF3C9436BF497C7E62CB6EFD07DA6BB2309340A365F4D5581326F36DBCD4614B38DCB6573B8E3074926EB65826C18E40C8A545B828CDFD0BDC7BE8783AEDB8BE3A693B4F5D4195DF0755CA703CB8993A666B40E9CC46DFA6136972D6733253FC87BDA0CE07FDE6CCD6D4799EA6CB06FEFF4E6CD7B7FBD79EBEE3D072B95AAAE612F6E090440280F82D3C1143C8F95948813333E8F4743565584413C271B6F22F8348178099A4E59500291256EA22421A58CC189F01C10220C1052BC24AF0113DA7428F17B388837DC708314BDEC6AAD785478529C4AD28BE161F95762E5D9EAFB777FF777F7DF7FFFCE9D3BC5222AE31073DC21C36B9BC75366953B293D5A3C6FCA8DB2468674903EFCAD38DD36BF8D5080D9A576DA06BC478EBD3DF50CD7C569C7C3F381C5E2C90F5DEA1262FDCE77BE13FEA3DC2207ADF199A174848AC749D99760C7F04E29ABD20C30834F20B0B258F8E5E0B9D650D92EF799995CAE1DD6EBED6F7FFB1D77DC21385A5A3E29C7732E127D6136E23231C2A04FFAA1EC3A1835E38E1D3BB8CD5434D8B9ABAFBE9A9C24643AA42925E51C3C713C4E971B2B439D9EB6626C6B34F6A6C195A0669436C5252C81846BF83A7E96E38E11B5D00D17862229B7081938318E220C7803CEB3905E71EA03110A6CFE90B60952F8B22A83B3813FBDE0052F78F8E187052B652740541AD54A0F8E321ED3F6EDDB6D2CC0EFD3D1B3D8CBF621E2B9A323167B3FA585070F1ED9EDB7DF8EA513F850377648998A6521583132B472E5F28181623E9FD3158256D31CE90E2E8029C17A1D07B303EEA025A019E88A09647DB45B1D6B6866D4D4212FFE433991A6207555A2A1474910FA591F5F970DE0DA671AB004D9B0AD9D7DDF659DC04CBE6C9BF41556D2F53AA3B6230409896AE10ACA6D04995C3E57CEE7FAC3B0E8EB2A021C44B719C3E1CBD5EBD923879B9B1FDBFBCBFFF9DDD6AD3BC72626F53D2CB26EB6BD97076171919E2F9E972069D97DEA2F01A4F2C5543ED31536C440728974496D6D283F130E23ADFE4C0A097E9AEFB42B0AF8F7F39FFF3C870952312E5BB68CB01FEA5CAA2099EB47E83CC55BDC057C35DC4D565E29FC3814CCE9E35F0E18C79DB36C6667BCED09833460C2CBA40C5F9CA86E19AE40D165D8CD476385594258C73E30923311466C01A5B2D84D4B2BF197904CB01EC2B2B34A1B2CC555C71A41BB7DF8C31F962B53EDCA3630141223449F4E52318497304091F2001B11850D5B0A3264E313F3A8E6521EDAA68BD68B4A99593FE9ED92AC85A40B5AD6786B5B32249815BA53EE0731B82A2DC08AE36373E08837212E86B4B97AE98C30460CA270F99B642154A26B71648AC2EA82BB08229315F5054F26352FCF808CDC226689412B670608885BCA6E425B221E804CA0642C6C4F5EC51B200F089C996965655820C84C3421B2BEF2CA2BE3749E5A9276D54AAE4F10E5AC519D73CE390F3DF450C5F4ECE2CD924514E6802534FE7C1429130E322FF369F1E05C0D65C564F443E39447BAFB83E60BCB7D85F5EB568DAC182C68DDEE8519BF55256F44279268343A310116C0B6043403522EB60BDD9D2FD23D0489196AA9DB84F17C810F15E0343DDDB50C9383731C3859C407610631412D1BE0913547A99E67A92D41CBB09FC62A86EFE2996414EC48DC6A636D5B2E6C49D0CA668AF9426FB13010664A815F307D6C7E12F62651B6D92E8D1E693FF6C4815FFCF2F1C79F78F2E8E8D8ECCCC2F2E658EC7ECA8A0221218C98559A8AA1222347290B5D8CC3B81478339595DD4D263062E24D6C1A3B994D4228E36B5EF39A6F7FFBDB363094522781086580B022461B3CCE8135EC56A5118674FC080D17BF9D5A9B0F0B1DADE7C318B71D76E8BDEF7DEFA73FFD696681A43D88CA96A12D1B9E2343A8CEAD275042D2FD7222E67789CA49918C37D7078BCCA3A4975D59BDF54C3ED272723F6C14844DC34D75469E132EA54A7C0D607625E6EA1CA1726F210CB2A3A3632618A9C0ED40B00A01807131D7E940E9376DBAF4D65B6F850F53EE19603543C021E2C64AF33455B35869C26C212E38F978277E4F3E89389DAE257AC42E1F091F3A3D08BC07D7474003F5A4D2EABF5AFC45B1A394D0E6D1DECE6F3B126787897E7C0462F7BDEF7D4F6AB6881810FA09F244B6838B2F94E28C587959BBA590612C1C877DFBF6490D462A51BC49D694782A9646558A64F041988510F7819655BAF0EDDA127E83D04DBAE1443A6DF963A95399C67719E4494B43C2740A7157B3E8121A5C8E3AF105679F7D3616967964D96E2C02876832BB4A40883D05133683251F5274D921119D063E32AB88D1E2C34FD442457B669FB9F5CC2677BC813CC74F262F38E579EBD6AF761248BBC94EB4EB6494A3D83041449785368FD180D48A0D67B52BBD66A25B790035E49F9E9093A40943B6883B86AC54699E09C73415E6DA5872CD4BEA353D076A2E72BD362EEAFA0D3DF046239AF4A803C76DBB0A6141D309542E9B2F95FA0AF9DE4C580A839C2E1D7B7ED32F8799BECA8C3731A61EFFEDFE5FFCD7E35BB7EEDEB37BFFC4C414FD2196039555C9641049FA13E68125E5C0137AE9A59732B9AAD4F161D1F820D306CA10EB4A92A0AB2423967EBE20516CB0E9D0331000B6A4D0E5B50B4ECA9A5B275CD0CC0A10AF48A122D42736633565CA8D4A5D2BBE07EF7FFFFBDF8F78916E8A8CFC628599C64C467E89C3DE0548C3FBDFF6B6B77DE196CFD71BF54C9869B6CD4CB0A9C9AC71D05B8D2641502C2832E12F279783C884D0D376073BEE2DBD2D1600844C4650AB3CD5D2D806F3456EB5B925B20E3F8F1E8F6D8C3C65B750CC8C8F4D711772391DBE958ABAE2DA68D65263A53315279CB011DA1007812BCB80E86B5FFBDA45175D44148DD8F94F7DEA531FFBD8C748652C94A8F60633A12F562A9DE5749C37DB160EDA09FA1478CFDAB56B77ECD8C1748DA0CA9638F3C2A4C6AC1F152841D0F83A6222550AFD96AD7DF6B39FFDD4534FD95E6D94B2AB4B1F13ED1CBE05760E2BC38895781851F1C490D15B4F0C0114EE9CF338F15736DC917A334A07F6E297F85E865C4B58023900A2D6E99109A589938E03522647C4EDE6A251701D83CE260E84286C223A78E577BFFBDD5FF8C217549A36A486E551216D6792CEFC5A4CF38A93CE4723BC64C3860D308742EC2A9DC937DE78E3A64D9B64309134FD6323109BC330FFF0873FA4B7C59846A671DC7DF7DDAF7BDDEBA4C12759888AB2CB0674D5692EB8E0829B6FBE993D25320EC1E0898F420BC31F822558BB6E15DCF0422187C76D35EB768F0E110DB6C9F7521E6C5E3FF08E5355DBDF1EE97A2F4992DBB40447A3F5580000B35E494441544E872D872060C7F51459E435B7B493784E5D7BFA1E96BDEDBB91877F1185F84AF79DE92C5256BBE39EA6A3504ECB55ED201F6432F942BE94CF95C3A0684621684B1005E520ECADCC385393EE962D87FEF3BF7EBB65CBAE9D3BF74C4F5519D0C7860D0DA24213EEA42D90CC6B8BFF07B9A5609366074BC709C64C16416C988A815A645ADB9E2D686F876453E58BC4174CD2BE7A3F1D354A1BACCCCCD40F7DE843322BCD766BC43B91B32FB968126A0922D6B60471CA4E61270348F78943C4AD813DA32F0FE9252C5BAAAD7CF0134F3CF1C9279FE46C98499C1A4F9F9A20A31505FE6D91415D1DCFEB8870DA757846BACCF3B31594553D47A59067F19D451931005156368D6693764606FED137E42EDAF53101AEE88EF75811CC97CDE6EDC1584667555368303CFDA8EB1984DAACAB8C89B791FA952A98F9258805D68B0680918DE808C92C5199725FE58224C476E7B2CA48B66A314D44DBC90B46E918ACF98A5552E776AAD149077093591AC2A44CEF98EDBC70B4D079E79DF7E52F7F599AE9643C0B29EA181ED9200A68BD6BAEB9861992AEECA10D48785A0C8CB2189FD261EE1DD81C0414FF9E7CF2C9B8259C4FA153655CA24C74CC0880E68AED2D74695D43494B59E20C1F0AD575D75D77D55557F168498D7A09CC8FC47CACE949ECCF9734AF91608ACDD5787CDC1EDE4CDE43019E33DC26684A3851E807409C885FFA7DEA040B5A02829B71B5AE9E41BD9501CE7CF179273F67CDDA9550C1D92CFC30D56E3518104B1B1D35979C2C3537F56706D37B52347652FA1DF3F1384DA19BCF2AE9CB637C90181BA01C87409A8A2E0FB8B1EFB57CAF1D0671A8694AB1929D4C6C3E8B58040E0D0C363E1865F319FDEB4C5147037ED673B37ADAA5172499DE30284D4F3B33156FFBF6F1FFFEE56F1F7F62C753DB768D1E9D161486F8671463699113F61EBB9A2873A884E6805959F624310F6ECB4997EF6F4FDC93CE4A71C2E4AF76CE44A5306BB914FE93B380A4818B66833564965729FCF6EC04C929D112501FD253E4C0481E045C9C89EEAE315CBC252E083D1BB82C0F3EF820A96703630612950C9B65E9E92DE3064E3FFDF42FDD7E874AB1F592B296216572A69852233EE8CC33CFBCEFBEFB1CD1EFA20278B40417C873C2F60D6651789E6D4A6ED31694E597D901BD5DEBE7168E8C68BCA076995BBA7453999D366B5A4F3339F05F1473FDB8388486F84E27650A23F72F9E995CF6541C1B376E7CE94B5FFAAD6F7D8B6D59CC24C295965643BB38A12C6A5F61A1606582CB27035E88F391E458D74B92FE5C34447C9FFFFCE7D9E44C8A6067EE905295BAD804748AADB213D0223A2A9DEA871BC3C3123620A0526E818CE14D7D3D6D99F0D4B87922671087DE7AEBAD1CF3C93A0AEF8A7EFA12155451AFF0BC7029CA3D6DBF8423F82BD707B7C75A3DD78AF00C09E1655C0F91B8175F7CF12DB7DC2234FA1409F68E4A4D4830154B337625698F82F04E331262EB0D61C494100AE1A5975E7AC30D3790208C474ED65C1893187A12F5815FE2227C6A1E5DF6AC2D3169442D941D621D855A0F426B7153EB6FEF29179E75C286D5AB576643F8D366F79D58804392FD576929585E727D4F755C0DC144F0952822ACA4A4D429413BC62D36D7341771E81DC3D4D4942E0F345DA7E5798D0C2C8106983AF9629CCB8638DD7904BA2116D9093449913220564D3DE43AA1A3E0DAFB9E1E59E3BAB95ECF2BCE54925A35DCBD77FA7F1EDEBAF9B19D5BB66E73923C49CE99CB851BB175EB5662C7B16B575E7925DC17A9FAC027F8E4273FC94964F678734826BD04724C51C15147CDF718BAF242AE353C55CD850BB2CB1717A42842814274B1FB140C314BA24364083681F96F7DEB5BBFF18D6F08390A39DC24445396672C461A17B9F0C20BBFF4A52F099191328DABB8080B6C745F9C94A381977AEE739F8B98804D6DB006B9AC1E91F6E2979CF6AB5FFDEAE8A80E26D66FD8B06BC74E2F1D7B25F76977710B5F99D45C4F3BEDB4871F7ED8A15AE70D319C6791846FB2692F6DF67C65A1BB924E4F20A28F5887A1FAE1DDC4781B9DC44BBD636C8B85623B6A76581C3CC32DDA6C9850A0552CE6ED718C7CBF208E38550D36C02EFDE307686D7C56FC47D21E70595FF5AA57FDF297BFA48A1195EDA553A7EDF21A0325EA2FE6E2591762E560B1A624276DEA6315A86B38220D92508389D36A6351680CF003E1F62297BC19BE4DF04276A6AB8B45846A971D004215D74E87510B0E58A59959E16F584C97E124B886128AEB7CEAA9A7C26B60F9842B26983FDD5D9AE2DE84EF8F0C2DF307E9603139794619470F220EE3C113CE54809C3D5B0C968EC984204F9924156EF8852F7CE1CF7FFEF32EB817C26A585365EA13FC93ED7041B91027EAA41C7C8217600E5712C44F0B409A6F0970BC219FF6BC2661B58203D4532EAE5DB372D5AAE5A5829EF288D3AA878C59C056D1EC940761A2969581E1A0B7EBCE7DC5493BCD8748C93AB2D244B17C0591FE71A29B8A634D3251F71CC4AFED6C06ABE7168A3A58299672AC6967435F87C19AA22834DFE3ABC48F237DE45D47578FBC6C8FEFE12CC78D56FEE081D9471ED9FED8E69DBFDDB23D8A8E13EBCBD05946D2921D65AB849C23EC8B08A1B2EAC6E2A93CEF79CFDBBC79B3ED3FCD7F49564DCEBBA477842A8D3E87E0AD711B575F7DF5A64D9B4493524E24A9259CC114665A08B674910B594454A0BDB624BBE96061A62588C7112F2A4E59C8D83948D9A3833E0745AD9D06EC729C219A26A76D8363AAF65248A70CCB638A4CD2A7977C5A873BD96EEFA68C0A0E84EF13C00F9D11192D49F5442757B899083DC63AC766773CC78B922835037A02E56C55A7DD9FFFBCE76F7ECC30E0170A95591880383D279D2F9579BF90067C29ADA29B9268124181F71369830D60863A49B944F027381DBFFBDDEFA46B4C14873DE156596D4A2C110B5D225E9CF9BE589E5A62026EF6F9E79FFF831FFC80F4CB542BF69BA53EE9A6DC0C4C9E7018D349279DF4F8E38FF36CD8A521665D1800C101A7A7AC2CD6111A6C69B3949D9680D4EE91C1419A302F65018D167C2EE975641B2707E6D04E53B8B1F8648DA58346D03D7E60FC6ED3D2C91966FE144FC756352F7DDD71C71DEF79CF7B684BB82CD0DAF00179DB74CF17BC4F5A7D95F21B46E97411CEC196C383EDC03D33DC46D08638497803791A71F38C6BE560734359FD639B31D94778CEFFD0EC90006A850A454C918EDF07CB23CB87464686CAA562ADAEA352ED711BCD653B925E4A8E1DCF9DA2AACD43EBF8AC5D7EA9548FCD7D2496CFA38D81E31EBFE1B92FF8714DCD579ACC7A2EBCA25626EB6602279757B96C502886B97C9009E1B0FB3903CAF0828CBE7AEC688412CEBD191EA3EF23C8BB3EB606417CEED0E1DA6F7EB3EB89C7F7FE6EEBAEA929CD29808D800C7CF9CB5FBEECB2CB18D63344FED33FFDD35FFCE217A2E9D6AC5903C9E772D1425C71C515975F7EB954112081108F8B2EBA08B1386711DAD8745BED4AE7A3637188DA6E964ADD052942B0D8C65E6E368E71EE109978E8195317B12F87B132841F6E3E4C084FAE10A54863BC08899D89622E88FE34CDC077BFFBDD73CE390717176A74D11E8C803B8046A733A32256A6221B98A21AE2956CA76D4BD2E9946421D3A402A1F623EA8748AAE34D7D2A05CC24E97C2BA19A8132C283895B4A211690C9473FFAD14F7CE2131081B6CE76E8D9A75A3EF40711BA762A42CDA85E2E95A76626870707F1A673CF3DF7861B3FA38C6F58999DD15CE84E9C7A408A97B5C370CEB4227BAD9D438426C226D19767F842EB67B3C0D36DF4CC846465F1E64BFFA7B29A81B1DF64CB8042812D79F0C107BB467BCA8B09254A157C6D52FAE1365EF9CA5722F885E2A059665E2B499B5F6877A9E024F0820CB17382DBC37282003D4576B9ECB46ACF7FFEF31F7DF45156A5781106AAE49CB23164025E26EF05DE80DFC3EF5EA262AC16E25913574052AB76EAEFB6DB6EC34115662EBA05AC0CD9B84C566BE8202BE38C304DCC6A076D0F2B1C02BA5D2226502990890E8E38DD320B411A38080AE2AD3230120788FA5DD81511E6BFE94D6F829EBAF9E69BB91A62024505FF4196808380CE3BEFBCBBEEBA8BADE6AA939684C8B557AE1C191CE8EDEB2F15F3994A653A930D3CA7836A537307A6DBBDCACA468E261D9F572C41FA436A2D5C7E247509DDE33B9BC476A383AB8989E25AAC665DB79E0963C4047EA0B21988AB5F2804300C61E0906F391B64F5DF123C42A2E14EA6A8817366CAD9593FCC631FDAEDFCD1238DDF6CDEBBE577079EDCB227F1427A2174EDA98604ED2D50E0AE6A8AA8331951479491A40AC883C020D8464FC9156C7FDCCED5C8A9274801270E4AE9DE7BEF650A0B911C84C446BA43B993F1857EBACC0C20393F897E39325DA56CC454B8D2F048F74898110498207745BC29D687C5369B4645CEA0C0D061B81B4D53C46529346A43CDC19B3972E8B0C494D060703155EA2DD189171010816D1C55A90586494C2EB77C136152724EDEF18E773011C6E347148A4A9BD93AFD1A01E2894E4CA02D96A1AD34EA43995BC91C9B38DA633000A36347FBCA7DD333BA628E07C830E608DC148CD514A789D1092D108CEDB5D75E2B34794ECAF9DEB5467248582E1667C1A69A12974ABA55290A42AC6F773938BF474FE9F1EE0C73F2A5B140C6B4726FB81F52AB50694D9F193D193D48F1954E6038D1A4B4248E8D469EDCDACEDC49DF52B6116E223E17997BF12F7C96DB6FBF9D27CA0E23E66B34080D9D14DA519AD82EFAD5673EF3994CB990D2044E9C14A6BAB05278CF2DB7DCF2C10F7E5066A00A3904735FF474F0713924B265CED375C089DC53D1F374D1A51226223E0E2EC8DEBA24E52C62715840C9B80D6AA2AE521B150D0305BBAEB8843DE81245BBB1282D156A65BD61C3BADE7211EE7636F4A6A7270BC51C343B71A2F2A5B625E8360388F4DDE383CC2C33A03B063ABACF9139CCF11C4B90885A343FE0CC26ADC4813855E186657476C80942D777A34CD6CBE5DD0CBCC64065025882820EA7F48C62276A6B4B00C985F3672293C0F3A19AF2355882585B82C71FDBBF65CBA1A79EDA3F31A38F216B4BDC0EE9F32295BF3068F2800B508DE6939C66CC0110EFCFF5E99A91DE65099CB96C6002EE1002121B5F7FDD75D7C103900CAD6466F8036E863C42FC0D76D00ED3554A0A445F8748D9209D174B4BA0E651A30BA091274EF8E9F0FB33CE38E39E7BEE11678B4A86812F19497B7B0C08B032E3998B144A5A63E379C220643B14DE7FFEF9E77FF5AB5FC5AAC2633E74E810018DB675E1B377540DEF49F06DCC48F0105E73CD35F0F785569E428CC763C10D0B77D75D5F8727C522F5C478053E82966FFD80595F4FD4CEC22ACC56EAFD03E5B1F123F97C3636BD413A300FB38D66757878706C7CB4D96E14F2F0F7E1FFC2CEB54AA51CBEE5F0E1A36675F22C13C5915ABB4EB70B985D775970EE4C92899935634AD4B6F952B6A68E5E785AC5D3BE9C941185A51BEE87F4317AD6A0151955CF7D75CD180095D2342D882C52696C211E37ED1F1F4174AE6371922CD6E5C0988907093FBCFBDDEFBEE9A69BE8D4B0930BF706F1FAA77FFA27AA636578847832550A53639595FCA33CA85449CAB8392C45BCFDED6F4700CBE145D2EA45BD4CCD15A563F3B820713A678D8F493B217E992404E496A8CAA90E106B420809F116F4A4CDD5E5CE655990A5E0E197BE0A5A174693F2A4AC030B55A26D6BF1FE4B2FBD14C24F5B1EA7432F0413625723ED0CACE473841519DFCE33254631C55F68D53030D8B76EEDAAFEFEDE48034775763413CE51E8E2B3BBA9F4267359316C03301744A401A31D7EBA3447444FABCB9674CC55E4BBBABBB8ADDC9AA3B3439AA52E08BD72D6B055C32404DABA98DC35ABDBBA449C444EBDDA68D5E163C51DCEA24CB9DD4A9A51586F044747EB5B9E3CF0C46F77ED3F70786AA23D32320219E0328AFEB5B576D77ADA591406C4D2BED7A5F1C533A00FC70118769B5817DFB0B8DBBC139C539A67FA01927510C637519DB42BD29463F7D3481955A0E46C0491628F3C5A578E48E21EB200B1C1582A1952E364E25A10A26F7CD35B7EFCE31F1F1B1DCD983AA5261431036B0F1F3ED0DBD7872F9A9E9A5A6E167CD63C0B5425EF4172DAF4515EF8C2176EDEBC599F6265F5B8D200B080297821B6B6325FC1A00C0B847B0DC32C3D68D25E7B6E36D1DC150811359F49262CF99EC612C451902F64C6C78F96FBF2A63615CFCED6B432CABA533353898A7A7B4AB5DA6CA355CB66E0A8362163C562A761249BC9F3D035753254192E5C72C8A43656B7B0478EEA48BFF838661DD3FCFEFF9F25604919CF8E55660E074FCDFDC0975E70C105F7DD77DFD6AD5BC90DF7FAD7BFFEC1071F245184BE5B93C197A55FECFAD2049BA4A38538A943B836878787C965B8C475AEBCF2CA4F7FFAD392D063065F52F614A9E73CE7394F3EF924EF4D40B4AC5FB1AB85B307F003769CD835C10B50ABD25790A2AE4A8146122CDBA31DF812788F045B76A6C54B874CF1CD8CA8E274F6008FB132232711E74A1B39C3733537DE97562CF96AD6BD701D1249AA34472F2CA7D83522469274921FFB2D9822206A4559C805FCE6C081035DDF22C030820E98F8E682DBB90E1234B1FE615C5AF3BC03E5F5EB560F0EF6BB2AC69D4204F43C82B933783B121B0B247481C8C03609E9C7995632BF718591C2940AE67EA49377F632A68D39821970BD162C41984960098A414BD782430707138626B5C77080E0F07A710B5169336AB5034FBF077F683B99662B6EB6825A233876ACF1E4B6435BB7EE3E78786C72B22971F929A79CF2E8A38FF2C88866174B208F4C175ECABC0CA9ED35E95A1079619D61EFE1388AA3433964A25C92EFD2786C4FAAF9F8C73F7EC51557400CF07E1C3AFA558C4E24D3CB43CA16078A197E49CA68FCCB0886D00349008891233ECDB120857CB1BEC59FD7AC59F3CE77BE13B7C18BE34E28451236696474A94CD073D46E3B06E6A77BD16BB5DEFEF2E4C4440E8E0BC208D824984033A56A6CF4185596DC95201B29990EB787C953195D4BE702A1D0B7BFFD6DFC8CFB90CE69C61766355DB60D6742C389DA8A74433BB44A58CC667A340F498267869F1F22209DA98CF5F517A76726203CCA2494B23956266B33D58981BEFE8989B14D1FB8F4FBDFFFDEF61DDB104FE0F9023F80AEC00FAED2AAF0F0D183B96C8E698D66838AC338594EDB3E005255FB235A02EE251BB5EC205DC829A90DF106ACDE6B5EF39A471E7964D7AE5DCAF2E597C0C50B140722423E3BFCF0D297BEF4473FFA91E0F159FFE128B7C52C016B5932DF03624D6257BB515CDC226965A4CB8FEB0B65933296FEAD6F7D2BB69E5A0F6F664158596DEB947EB6E4484F032359CE0650A683815C6C04A40917AE6B4D8295321567D8119DCC53210D2E7827429C2F7EF18BD4B344B8B19C28BA40F62549B902C59DC4B93AEBACB3FEEDDFFE6DDBB66DB425CF7AD6B3B66FDF0ED3FE8637BC81AC612A65399684215B5E893A65228BF4B41225D882345FA8649C11CB892B56AC208BA44A4752531FF5F5976009101C877A3A4DA4C9DDBC0E4DA6ADF1554A9A62EBBE2E83D1F5B3E7A8B492CC21022AD5FB919801311E1466CF77433DDDBEEDFAADC04FC28C0E02727EC37C36C1C94DFB930353CD2B40A0DAADA8DDD417CC84705A7D981C04B4B55AAB5673666BEED87873D7CED16DDBF71D3E32516D754867B1FEA79F7EFA030F3CC08C102B3A52F511ECAC50BC6CDCB8110A171A50BCE3052D013B48283FCA627921FA8B7B218011270505301A60142EFE2E5BD858C122D2FFB6DB6E83CF277BCA84FBC5175FFC95AF7C05F7230822F68E28430F878BC8E3085AAF4B6C9806E4D9612A12774B3C854DF1A2E68EA9E147FA074C5B35A4DD94DFB47E6FB54ABAD747276CB2B91C278268BFEDD0A142B158ADCC0AA0D12E633035D7B1C47C6C295FE0C8BDFFFDEF97F930BC690E1097D0C1207606EAB56605EE8F0721C8D4EA0DCF093361219B29877E29897DCD8DDE44CC58822508424DC2BE77DF8E998A8EC7755D3EA30E1D3AD0532E85A17FE0F01E84A6307ED395C9DE72AF7EFE66647C6ADFB01BB513950C1A6E263C6E2E9BD795F45A338A75522C4E5A569620EAF038EAE1C36914F9FF6709981610D60495F2F5934287C6805BCEB4202B84A232DAE930EE252C01B699A034C82E6CDE39E79CF38D6F7C838D63CC81AC5AB50A8A9877BE34BE5EA5ACDDA44D6507A3CDFBCF9FC5C97ACB5BDE0269A6B2239A0D6F637BAD440CCA6A3827B296E22EDEDC35D75CF3D9CF7E96368CE86C5E5C52315DB72A07C34D478A33B7C6243EF3BF2AF59248D2C0D413EEFF431FFA10E493A50E490A759D2E5922A1FD59BB762D6CB36C1C5B25E052B10F08928FE725AD3C597DB0025879E9E6A3FD8072C1B940EC351FCAC9C7910800FBC55975FFF55FFF25EC5BFC46FC89988BFDFBF7E2B3BD7D3D6BD7AC5CB66C281BEA661A980058021B2D2A3EBBA8123597365554A1AD16B58DD7EAD5215662AE31383EB5C9EE47F37C2C178B01317CB040FF4F3352E4BC96C67398A633C613048F7A4E99164B257A1333597881FA80B45B6A6AAA323959AFD6BCE9A968DFFEF16DDBF61D3C34566977B2372CC610D7C0F97442DF6D57D19891C35ABDF9CD6FFE977FF917A233EDD6C86ECB67B43CDBFB2103380277DF7D373E7BC20927406B75813B59489359F012C58A0F81AB913142A255FC274134E21620E0D8BB772F69F2D80C8CAB216A849301C30F25204EA4EDA412E9C42AAC247FA4A75D9C744A35DE431FDD2E8B4A6B2D635069AB82B8C261E2E0100ABC3261849332EA4BC3801DA9409EFFF11FFFF177BFFB9D2327075F396B5E92F0921125D75D771D3E805D213A8AFC2DB95C015B1E069AC269A6329BCB147593A19BF5BDBCE7E6559C8131C0E2077E318E5BC552F8EC13D7EFD9BB7DFFFEDDAC0D1E3D7600FABDB7DCA39CA85C2EEDDDB773DDBAB5DB776E0F0C8A0096BBD16A687A22DDC7A805A2AFBF8C1D456897D1A63767120E6C05EA046E1AD2A6352F629F66946832C53F8A25A04FC7540FB3CF8C2B2101D0CE8CD7380E09126007014264681BD4F92FE16CA07DA5CF4BDB23137B2EB9E492DB6FBF5DE6532F781D9911CF6608112FEEA01C3666BAD9492B58029B6451644E7A20393E01C2D4D55BFF8C673C63F7EEDDD08F4276C82FC5373280B071994CC753DD2F6809A274E4D3FAF5EB39CC80D15262689D18953A293B3CCB30D27C6BBBC9DC2637ED40E6E9555686076A8821851C72E996E7321203463E54CAAA0CDE113A96F996C04D792F9861E3AC3A76C9210441B00F2BC225E5505893BD71CABDA535AB578C8C2CCB65020E30F7DC9867B59D8E62EF60E19DE38EB09DD8491679F9CA49517354F89D5664C79D131374FEA6B3BA58072F13BA70DA3C3F817F6F2C8197D3F922486F5B23C313F9ACEFAA42C7AE782E2784E3BEB47BDB888F8D4F8F8FC10DF7AB35E7F0C129588203FB8F4EB53AD46C946D049D3FFCE10F5FFDEA57DF73CF3DF4D6D9B5675B02FEFB177FF1173FFBD9CF88FDEB6A69B22D813DCC43F69DD3A248E3C8D5A0A4C939955E62493CB2DE20CCF3B6C0F326ED51DB7CA76C93C4DF5FFAD297B0E32290768E6BFEC9C5055FFCE217C36920E39EB41174F934D406420D29C9253A6775F3A2BAFFEA57BF8A6017DFCB48543032AED55F263503793A4750B4CC4691218F69221C06386537DF7CF3FBDEF73EE19359BE7C98E5DC42BE3CAB77C5CF657471BFA7D4E738814AE0D2E0DFC0F77286972A13477E657672B63AB976DDC8F40C8CF3184B7989D2CE72B1943F7AF47033AE9DF49C139FD8F298BE896C303E39EE39BAA0A787FBB5DB555D4C767DC7E73984BA33E6B763DF7C4F4FD163078D26538F9AAD56B31DB71D95FACE7F8CEC109318CCB2498587F3A0493642500D8B93ACA672C2061D90A5313052A7C29A639D65102BBD06FC067ECDD6AD5B0563BED87548CB2CCCAC443E283317B3AB8F41D29D321C941E1085091A1C7FE2D82FFA2F22E8526EC5CF679D75D6CF7FFE73BC4D06531317888B40B8F19E57BCE215DFFBDEF7E87FD9F44D0B6687D8AB8C379F77DE79DFFFFEF7890EE46C7165704ADBB66D53C6E5BFEFBEFBFEFCCFFF9C87B60B62AF52E4E571F936FD92BC6D46369235A2B72550575C90990126C4A0C7117F307E272D1D3E7BE18517DE74D34D4B6787B850F6200A359764DF56673DE5FCAA95CB57AC585ECC67F1347062E0C18825E0A1EDE4739339D1805D52560BCD3176DA9A5D2EED3873ECC8A0CB12F03F4D2EC8D79620703D33CDD8704BF8A1D73627A86D865F461D33E0BAA197519EE12F7295AF172913694BD09E9E6C4C4E56A626EAD0C3F59A73E4D0F4F6EDFB0F1D3C5A5309799B991C235980B266BDA9B9D921DE189D1546518981C92F961DB239B258E995BE3031150C8BE3747894B4AA60471088FFE0073FB0296768D4C90125CB4E5F1BBB498F907BC4B17DE4199B1FB5D8516362DA92210374E705EF0E7DFBDAD7BEF61BDFF806EE1CAE0364927106542EFE046D202008A1C03189788D8D9C98E0BC3F1F8B0FAFB9566B04BEE93F68D40BF902A91EB5B9728E0F6512D34B280721249A478C2B72D24927E14860AB20A65D212DBF9EAD16CD66DD18D8A05E6BE77245575789A0ADF0459950779FE754E2476D8D20CA668A70DE8DE26EED3DBC33A77B1FDA6126D080355D7B728E4D1D2BE74B85225CCEC2966DBF2B647378C3A5EF7F0F5664CFBE3DD018B90C23A93A2156B96C81792E5CD39847BDF7819FA56FA47493335643AF723B6EFDB12C81C010A5178C0CB40C14A4D9BDE358A5C94D957278D0855C02172F7745EA121C0F3C29A9A6A42986BA521AE896B058B8C89BDEF426C8B4060F98B48CDDFC2153F7921482E9A6CDCFAF7FFDEBE19D112E4D9F9A23E7E8470B2893E002A93F6FD9B2C531D43A3C60F81482533844AC2449ED817A50F2E38B558C49988AC3004786B935F6FBE0FD36250B7BD36452BC8DC790A5389EF448BBCAA55B5BA2759A67A9D8DB8BC95667926D488421F1DF82156329C20B60897FC551C22F196A33919892013435B14A3E58BE6C10DE556F4F5163E7A29658023BCBAC039D780EEF905D1BB35FC7A1386D1398061D6D2FDE7F8A23EAAE186B2A094F4F3636F560DDEA0CCDA9C142BA0E87C3A52D01692A5827C8F89EF2133385B30DBBE17B59E57A515B4D4E366B55FC2F6AD4DD89C9E6BE3DA3BB771D3C363A5137B6D326C0A7A2A751B49F2549078AC1549F7CF2C9FFF11FFF41F160F692867CC18A318BB48C80D99DA02CC0828D5813775BE607887B6427720560833B61DE5FA5E4894ECA23429FC0460788F294428E7D939221E0E3BB8682947D0689613FB5B94F704BB7DC72CBA5975E4ACA0052D37798349DC4A8C1CECE722571E5FEBEC16363C7386CBA325B11746562D5E4F9110A9810FE3B42798A189613903962D72670762DF26B65547EA3D1D22357836CD4761AADE6739F7DF26FB73E55CA957B7A7A3D37D36C449073CD68EB8787270EAF59B672F4D8A176D4A1323515670DEA9A6D55727E065E3C0C5AB531B36AC50A0DC2CDB439276B627C6A66760601072DE7C0C0208F6526D47E2E5431F3182A2178160F8AF3D3D426BC59FB235A025B87DA04D1E49E13A27319B3275373F97B660F65B4DEFC176D8C9446991D9211609486EBAFBF1E2E2A645106C7CF7F51FA654885B07B2ED69C22AF2E380D4B67329715BFE7FC00C932A974BC8F747B4856574EB52085A46FBE2BEA97B32128529B8F9A6FB639BA11287CF39BDF94EE42F6FDCB86DABEB08C0C72D3D66B463C3069422D875FFEE55FFEE58F7FFC637AEE02E9E120401C6958D33BEFBC93C315C48B978C939D8CB2AD823CA670D633C8A36A9079D7E97D9A6D0ADC81FEF2B26543B004D01BCC0E3131D865095A6AE1CE32D7E2B7B13DD04CE233E44ACB03E934CDA4E9CC7BF17EB408E9C968FA34E99135B00401226E8232624364D409E334D39CD2DCA5DA88C7AD043107627444090A763784A26B359DD9D9F8F0C1A99D3B0EECD9751851422BD12D32A79E7AEA534F3D450E70CF1A3A66DF3CD50E579B0473584FF69A2C66F6549A1D626A851195C4EEB23BA2D06C0A1665315D0BEF058FAD4DEE6F0FA015BE2C52315E695E94BA249D802BD34DE6C7F136A281FD8F8C98596BE4C915C426EBC6381D5807FC529A7C1D030F1B1CD4FD6E95CA6CA9544C34FE6D165F0533D06A43019A56A4FDFBF2B97CB5564DE6B6288AE8F256996E791A9E7AA60264540B04B2DE68968AE546BDFD96379F7FCF3DDFCBE77A4647C736AC7F26BEEBC8E1314D4AE2F83395A90F7C60D3C73E7D4D4F98D72E869ED3AD0CD2C6779D6CADDA28F514021F0BDA3C36335E0A0BCD56CD0FE0493512AFC94A9167C8F66ACD1A4255BDCDAD4EA73E44C875824AAD9E718BE59E815A35D642EC434EEBAD76B58998A0558B0C850BC4DF409562DD6699682A248A829CC6B3CF3EFBDE7BEF256E8C71287E4F7E41BAE14B7760893965065CFC3E9B990E0BB861C30678C73FF9C94FE8830BC3B678C70B5E9F3E2FAE40703489C5E96B407494C9F960A70F1D3AC4FB24ED38E3475C1F9EF59BDFFCE69B6EBAC949BBCFEC393F6A4954AB94D462337BEBEAABAF16C8E9FC972139EEF8472498D29CE9F0C28CE9750473154519439B054F2297CB1AA843840051C7D75192CD659CC465D4257C41AC63BB735992ECF2A9B248B5A4682FE185984C6CD30D37DC70E1851732034694277EBEECB2CB3EF2918FF09D32131CAB8DB0E6AAABAE9271254219648FD5BBF8E28B3FFDE94FBFEE75AF43F8C52E48EE35B78C01B832B14E6281C7A5D8C0EB382EEED32F150AE5DE52B958D00DC65A5B274907F9605AF6D3226D2B9983B84F16E92A909DF555A725CD0F3A0822A7C39415104B0ACD6E422AAD93F1BF8C7E1F14BA196FA98D873606F8177AA8D85B9CAA4E3BA103F73F9F0BABB3333DC57CCB699B5B8C12D89830C0E66672DA672FB447DA813F36331D35DDED8F6EDFB7E3C896A7F64C559B580E6828F880AB57AF81F585CB0A0F32D6C0F3E3BC6CE22C4BB24818CE99ABC10272827192D222D85D02AA438599A762B5A9986D383FBF8E2C58F0BE6520AE345ED10B116A7496943FF8C10FC21BE3B748EBBED00C937CCC264711B740B8F3280FAED5854AC75C3C24280AA87B4A085D13DEFFA64D9B6EBDF556E192A31F263D95F67120BC423213E29CD10A4A1B0425B0AB73D3595A2338294F9E1837BF136EF89920BF62C5AA5D7BF6E2E79E7C8FA37CDC61BD86404C0F1DC377C0E55F35BCA25A999EAE4EF6F594210410CBDE72FFCC4C0D5164FF40F9E081C38383CB88D6D22728C2B325ADA44E150953618043B4BDD3ADB8F17FFEF7FFFED97FFE6CF9F00A189256137E47DC5249291C0C35380AE16BA3CB12E8C64927D2FFBA665A60721C3AA613A0C67994AA0BFBF784435F7E5E22AB036D8B8DBFE8A28BA070D904CF0C207341E253F866DC31DD6AB1A9DC0C0ADC821787E4E1B2CA2431A4C3456C186C0042044298E14A4B214E9838550A226203B0981061885AECB984839642F3FCE73F7FF3E6CD9D61448B088AFD5F0648A6390787962FE3A355CDD980A6E038115DCF37218B79B4A69EA5654C177E0D7F87196196A0B19E44302FF8B5B1A1B9C7329231540E95FD204C4693D902DF2ED0723AE9580DDC06F172493AAB952CD65837BB00684FF14B4C2BC9FAF5EB1137E3E061D95FF9CA5722BC20BE500E0E3F2E74E80444897360D65F17693575652E572CE56109F205AD495DA713614466DE98146963D79333DF55B276E64142B5764F3A9D65DA85F7A5300C690C1D0E23337E91E901728D31700CE39182F3E4E90F622BB5DB9E0954B5510FB3F055DD7C2E539D9E2984997C2EE7680BDE6188F13321B16A3A63EB9567A276AEB777DFDEC3BBB6EE7D6AEB9EC7B7EEAC2B3F69357B8AA599CA0CDEABB367ED8E6331DF1992D80EA703426E4FA26598C5AE3DA1F2951093119B665C30E457F427C81B68FBE6B60A168E6BBE817BC451DB360D0F44113F4B19992C0E0C228986A2A5A7DD92D8D149BBC4F9296925635CC5C88FFA8189D3356BD6ECD9B3C7A6E4C3152069DBB76FE715ECB03BB1E6719E74D2494F3CF1840D6E144B4075248DD3E2170A5AC91EB4B7144FBDAC856022CB3DC5D94A2D8A937CB654AD3787FA97F7F50D9CFAC217FFCB3FDF97CDE671AE6B357D9847A7469FB17AFDA1C307960F2D1F1D3D62A8758EB55A517F3FF669D4F702C4357B8FEC1BE95F0959D4363370EBF52A1C8B8999A952B1305E399671BDA1E1FECAEC64AD560D42B6F2BA956A2597C9B59A0916B894EDD7021F430A758A13960071432B4264504718474BA00C820896208995AD49EDD4306701B230C5F5C5C64071D325594C531393801FDEF296B77CF7BBDFC523C8B844958E255056CFD4BBDFFD6EF88F070E1CA03AE09D2CD1670047E0FAEBAFE7DD0A8D5A7F7F3FEE8D24D57013DEF7BEF7F124E04E985E148F830FC87FA58AC52CBFB4312F6609A810A5C68B9FFFE44FFEE481071E58F0FDF96C0EB1E78A9115070F1DC421676E070E3F5CC5DEBEBEC98989B24994E3AE60323F77FDF54AB753E982076282528F6E91C70FF9424E03BED28A9FD09ADA195B11CB8E476205FB5D67800D0782D27BD9CB5EF6D39FFE947FC55290559025626CCA8D37DEC8EC10A90C697824E74B13289DE4A25CE6AF984451714A7E492757601EFC810EAC799C44A33C0337A707BE646109F47C927C467BF07E273D0D37C8BC596BDBC871256D4DD775416370BC4092743ACB0C17909B566563CD18AA93CBC72D01C4D051E9F82658020DE548CC844BFDD96C6F307E6C62CDCA55A11B1CDCB5EF39EB37B6679B5FBEFD0765A7E303E82202FB9975455A556335BCAEEFCCD79F736CBA72E8E0B15FFDE6C9DF6CDF85A04F3553BAFC761B82313BA331C7E552CFB1F1311B06E3A43C715D88BBD34F3FFDBFFFFBBF2FB8E082CF7CE6332CF6D8231CF8A2CCE02040BAD8C98CA32D0CC76A6E9585EF7FC94B5E82CB4A7FBB7C9DD484F02D64C7E3F161BB95327003048E081FE984919F8E0E9F14D5E4F808C133533D5DCCA0EC926153177CA0246D30E21C2AE61BDEFFFEF7DF76DB6D7A0E414F0F7ECF9675AA20BCE7CFFEECCF70877876A64C05462891AE63A8B738365C783645193EBD25901CAE938E7DC7457BCBA5A9A9999E52AF4A703C14C203CF0B07FA87F61EDC5FCC946A8D566FA91F1168B55A79FFA6F7DD7CF38D49EC9185BCAA5F7543454BB291ECD1A3A3081120B46C7B8309C966C37CAE746C7C142AB45CCE5766C71D0F3F140F1F3D383C34FCF6B7BFFD1FFEE14EDCCF283C85627FA30EAF29CE67FA3319C49D2E6C40A359C5BFED486F83C9B746AA53EFA225700824C76E516F920C8BA35778DAE1399E78E28930CEF7DF7F3FD43A1B3A165B1FC78C5CA60BB976ED5AFC8B4BB1E542EAB792F5930F0A2007C1E0F9E79F7FE595572E767DF6F1C9F8AA2ED202429524F3C352B0A45FED728290EEB2FE4F4766314B604781CC90B01A26B336E7DF27560007F5E1871F26B39832D09D580F43D7A9E143070F668C57CE86098DDEA95643D3E4A2C3055337ABE37499DB79F9CB5FFED0430F7188F1E5975FAE94F44375A454B4BFD41EF1665E59605D32D00D8F497A57CD869222CA9976E3A3497FA93C0E44823729A320A88FA89B1C6BA81645083FE3234F3DF5149E948562D96BA9553829EB94141EECB26426744BA5627F6F4FB95CD203617221512E71D2360E5DA72B3B72946D097864162C1BF087C0E9F0928A31E8608D62652C81A297ACFB01344015BF090D6D7594C05AA8B6A91EEB27A8FBF5E503C3F5A97A4185F7DDF3EF386CB3E38D82AB8AAEEF2469663032F1B7D9422FF40E372327ABA6EBAA50CE37BDEC81CAEC34FED66C78618893E09243B7D92CE60AC38383FB0F1F8A2D224895B64D382905A1D40C94F1CDD31442779796D44265D0D8F1D2A6F506F919428BEBC34B403C47854BD406E1F95D251FBC939CE774F95966808DC10965CF0145A28BB80C1FA18CD9E22A57A65215EF47A570265692E9C7105FC0EC25353B2B4FB60B0289E27005BE99BE3F2F2BCD744C204B4319F58FE0AA8F8B905AE425D54E0A1F2BD4A562F6D0A1D130C0BD46BDE581A88DF5D5F5DBD5ABD662D7F61E3C30D03354AB36E0C5E7F359C40181669EC899D207D98363130ACDCCD666579AA93590DE72CF40A3D1822C8561360C4AF97C66DFFE5DADB8D2D75B9C993DD66C55580F99AA4CAC5DBD7AEFBEBDF95C51F30EB59342BE1CB7836C2E8497D0842568D49A6DC42B78F296EF25ED084BAC655AC38ADA4A3236DC306E098E31FC14B2F109447D85A95D4B1D78C1C521BB3A93BFF8CFB7BDED6D77DC7107B750EAF2CA9A6E41C521081361705A6CFDD9024602517C6AF5EAD53B76EC607959DAB5ECC886B53501C390F49F254A92D3D1E561126389EC904A87B8B1A5569926CFBFFAABBF4208B2E09B996727CA13DFC2429C8EB8C300EA4ABB8B093C4253E8E60FB5DA00076A1ADF50C3211A0DFCBEDD6C89078D47F8F0873FFCC94F7ED2B5E802BB2C012BE4A4E510BC93937650F349F9FBBBEEBAEBBCF3CE63C50B9FE5AD32358783CD7583FAC0D5102E9C7DF6D93FFCE10F850A54F438EDAB4A099A08EB96E38DA3C8E5E509B4F1639244E64764FE8190C8C295EEEBEB191EEC370C07615647051D56EA56BB21092272AA4812436877BBF6514C42C60B9914A131E8C40B9E134706B5E9256209E0D2692DECE5F49082189AB78D105AB71468EC90EF0471C60D7B83FC4871E8CE1BBF0A938EF7F5BAA5463CE3EB6A844E0A1B63A20CED975355492ECC8E36EB997C76AC5A47600501457419E60BD57A2DF1DC679FF89C2D4FFC161B8990A35C2A4D56665C8B8C214991EF321ACB31187919632ED3C2BB723E760D5FECF77C20904AC34AD69671AC76EFDE2D250ADF9A412F8D6CF0D5BEF8C52F926011B741400DB43CB6157FA5405289F33CCA2C71CA06058F1CFB921E6470D0D51BC45C0D034AF1D51C33E2023E963816B80D9E32AA7E9A0731847459DC940D9B7E0F6D00A49423B5058DCAE8594CEFD35802BE9BD92B3CCFAB5F75FA238FFCFAE081C370161DE5978A7DB861E8717D141DBF1D25BE1B96CB7DF57AB5529B5EB17C244E746A72FF81C365DD70A0B5525F5FF9E0E8C18C17BCF8C52FDEBC7933747A7FDF50B3A1630BD70987FA578F8F1F85771F84D1D8C4C13869F40F200A99A8B767D6AD5973E0C0BE16B4BCEB2F5B3672E0D061EC75211CC4F93196000E72A5D96EC4899EDDEA3A51AC4723684BE0B809D39278FE55AB56614B68C9110140DD20D4204B0F1BD609A2C5D230E9BFC4E270F5F959CE029584328FBA2DA3CAE2DBC19967067C092C10FD0808010C00259B09075CFC965B6E41584A11E4B7E3B9A03ABFF0852FB00866A7F5D4DC196D4E3A426FB1AC148E81C07238F7CD06442DB00EC6131C59B1E250DA5F962136AE5ADDF08C67ECDCB1431FB020409845944EB3D1667B36A1FD4C64D7F46F3AFE115D33AA4BC99ECDCF0ED923A0C5BBB15BC91895D3F2CD2F7713B4875861D7AE5D323FCE5E370183F274D94014221A782CF144975C7209A448E015FCBDA45F597EE7F593747A949C6A7D651F716A79D9D0607F7F2FE4C17558E1EC0CD98EE2CE07957F5C9149B7818896A072252C08DD20557F9D11F669B8601A0B8E0F6E710C29A91E31630C6DA49296A693238A347097177B268F1EFBD583BF989C4A46941ACA151BB5D9507352C3E5340F92186E8C2821D351808F16338FCD4C2D476411BB08D3AAD9F049C4DC3DFDE333539952E1B43FFD5F3FFFF9CF1BB55AE07838A38D24B2DB1EF9385E3A81CE3E0B4A2919BA27CA5DD4A54A395D64B3EC8C909C02A9280803BF4AC7F77261ED62A134BE708226676C08FC5AEACF4EDAF7C03094C0E56BAFBD16CE1334AFD80665DC351C4FC9B588D6EE02C5DAB10E33018EE9CDB4C7357BE96459BA14780422DF64655C6BBC2E5B7C38F89D288C389D926DF3252F9A1D92E4A3C8998E92CA9AC1B1A96924F29EEB673205CF0D19B3E472F839D36AEA0EA623E347D6AD5CB3FFC0BE7C310783315DA916733DA6F3A0CD6EB2673D0BCED933B76EDD5AA9541158382ADB6C2471E49672C3996C786CECA0725AB9BC3B531987B4C0B11E182AECDABBA3BFB717323D33338B8380A390F1B3AE2AE4721AF8D0D05469555802D30C09E96E9AC1AD6D2C052C414BA7A1B573C15A2BA911789C984F4C0C8754971FB1444C203965E175225451F6A90BAEA0A9930E1F86022251499236762D767D9106B12E8259D6FAC2C8A88DF127C33EBE85F326291CD878D88917BDE8458F3CF2885C990CD88BB53D27E9842695D6B8969EDA98CDA7A818B25318278559971B6FBCF19DEF78C73253079E9C98F04C7814B5E2A2F1B9B0342593E06AE82A1102083D5215FE178E90B074B076B7E0F7B2B4C3260C98E15FFFFAD75C7CA16992CA3C7EC009C45F49A8C77665A9A22B434CB47FFF7E9A55FC95C2401639C935D9C021A9DAB128F28C673C83D65A7AE5545ACF94F7F35988FE4AE1B3018788F99E5328E48606FA878707F56C3E5F58258C76509DDE02580295664E2420E8F2883B7EBFC96279B19FE2A73BC680F021DCA0FE4F4FC696B98EA918C78E56B5AE3E3291AB230927637A0BFAA793FF7CF03FA27AB2AA90EBF58299E9E9023E11273D69BAA91D47FA59CDED6A7C60AC7AE14CD466324108576A5A5FCE1B8BA35D4E7636A9B794BB66E3861D7B7643E9FABAC817C50B81EEF99F2CBC41851985D394CA9C9376DB51958B22E66763333B0C8E4B9CCED2B02D01DFC0232F34533CC27617886034042C2EA2E518CA4FFCB56BA0A14D02219A1AFFE24892119AD3BC6512B23241000B51625A6CDBC624211661E7CE9DD2FF48554E73C84E524937D9B1889332ED3374C6579086880BC2711D8228395E3E594C232C583176B4E705EF52057E269F2B4DCDCC0EF40E55AB35F3DDD9C999CA70DFB2E9E98AEE4909F47CBE20A35BCFC2A0D0A84793954948B6A793F651E005E572C940A39C463D5E3EBCB6DDD2FD29AD1A020B2C69AD500C95D3ACD5A711C9CE54265A6AA25FB7DEB54E3EF9B9BFFAD5AF601D35E19D1F38DA3BCCEAEF6A37AAD54A2BA2018074B71813E000BA9E6AD435651EC34CD9663E1714D645175D240B0A3D489D22C8E2C5D6878B6E03FFE9484A8B8A087717A05EA67175419EED173F2E997DE958A6872BF32C71FF975F7E397C520E5722868C5BC688155778D7BBDE75D34D371103F3B48318F1157FFDD77FFDE31FFF1882CEFA36793516951326F88DA6D356CDA4804852A80C13162215DC00CBEFD3383989CB94914A4B1A71674EAA4EE8DB597B49A9AB8550A4F419F97E7B2AA7AD7F95D543C45E4A665189EA2169364E05CD1E3BC63FFEF18F633DB974CC26C166E0ECD1BCD9706C21D0A7D1654A41F84524E2E6C7F1061C3C881602C734A147908FF6C911480CF4F59A37F4F7940A10F234B961724191F60423A7A3F7EDD4904A99E9241A10EEEEA4C9DD89C412386CBB51A46689C51270EA64A472FA6DBA770CEFC0D95781E930D8F3C3FF745AADBC728772D9C96AB51F6BAB61012A5F7334C7A90EBDE3962E14E02BF45737138DD9C8E4DC562D1E2E951AED68C6550766AB3BB3FDB371EB5873A60503053B04E73A9385F3E6A615758966246015A7DE4D8715E2E4C2E9211BA33274D0D47D70C284980BF7CC740A13EB32274A2C81E4E5D4DC5EF48E614B8173A46C52C6DFB26546262925294134C308822C5874A44F80F7E00E3FF4A10FE108509C10644300D8A22B819D4CA1A087AE4CE8435712FF22FAFFDEF7BEB767CF1E5E13DA1F57E0209D0B2EB800575EB76E9DF05DB275864A4020AD12FD7CE73BDF39FFFCF3C9952D4D12CC47E934065784F6C149D9E8D4927873AE9AEF6B9BE328CD7A313D33EDA8CC60DF10BCFB899929180368E189C9B1C181C14AD5F8EFBAD558A789FC306BCE89E3BB71B3A19D9D0D1B36EED9BD1FFBD5D73BA889E782FE4CD63443B7A0BEF186D976722C4AA6A2B6AB939B6E2B8A89FE7666A6AB084120518343FD58C689C963AD560362D68A5A1E7C9CA466108E081211CA3A23CB57EEDDDB2183C43362116FB8E106394E42524F213BF3CC337FF2939F40B63EFAD18F42C9127B4B51A0D2B117841C84940FDB0799BF6EB0E7575C7105DC5ECF0C32644293748C2AC5ABB0C873EEB9E77EF9CB5F5EEC3A6E3A0786396B19C3C29096EA895C3D4F3B5965FE8B1ED619679CF1C0030F404AC8FA20418F8EF68E1C11D0AAE43DE980F0B3D4BC500E922AD56A31D127BFDEA8E7D2163C1B8F4077CFCE62F16696C056911C8917E175349B664A5F6337BBC94DDA3842A1F297493E72B0ED5911D215CC428B706EE323F82C753AFE8A6082FD3E023A92B05DAA32A2A718CD98D8ABFFD8B1F1FE011CDD693CC7C8C8B2B56BD70EF6F4403D418C67676788456AB6E02D452D03D98C53723AFA95E25E086A88E96FBD2C0D8915B8802916DC9D9350928F67836C2B74271002660B5EA359D2EAA351EC2B4D7EFF3F11E36434485C05B1D26D01AE069866B4A7E7458DA88E5BC3F32A4D5511252A9BC4D3AD063C82AC9F2D41AF45D14C43CFA7DD826DCD8607E3B8E67BF51ACC815AB17ECDC1BDBB4914494926CCD1F6CD6DEBEEA44C8E527E77D2B92E9247C269C2F2BEF6B5AFBDFBEEBB8575D18E0644000414C0A891C787840BB83861360C3A6598A0AC9897BE78B7641F1222061A0F961938EB850220353F6E9F943A94956AB67784422860078126C29C40F567CD8B8182346CB2942B4871AE893DA7814BF7894F7C02EE0E8BA3F8209BF6F5ADAC5CB9F294534ED9BC79B300AE97C0CC30B230D59B592CF7DBCE7F47B3D55CB57255650A7219CDD61BAB47D64E4D4E4FD7A6FA7B7AABB54AA4BD2A6890C24C6576BA329BCD9672597D86232C858AFB4A032F3AF5B403FB0F1F3E7CD43799CAE9A94636A775AB8AFC484720CD28198FD484EE0B4B1AAED7AE37B05519DD90D4863805F5C8EDC917474686B6ED78AAB75C1C9F3A96CBE46A8D6AE027AD364C2BF46FCFD8F8849302DFF9D83CB136FF3E91C8ECE71690A500F0A158B1A9704960E1376DDA4431C245B07ADC2742C104C835FFE5A5738FB180F01AFEFEEFFFFE2B5FF90A7308D8632CA9F4B2B292B118D39C54AA29CDE79C730E5C06BB83DFB546353C2DCBC582F7A94C6044CA39E98C2542EEB39FFD2CB908C9DF29830AD8E129F37934FA766686BD8E72655A828C554953294D90E45E1909D9F9E2C52C012B0D5C0A3B5422F64E46B632404E526200665A6C6B2DC11C4769DA137554CA9D27C53DA232589DA6ED6161809BCECF12642203B964DC9BB29A480D34303735052777E8C8D1513D07C6D7D6F4E4934FEEC966355567E0D66A70A1B4FB566F54F592389D4E021A039622C4644A5E483494D79658EA788FBDCE2AA46CED5D7A27683B3537AE396A59FFB05F6D64AAB5437B77CF4CCF6EACE9E0C57335B504D6D1D3403C6D0F8C49803F17381A89AAE3BC968ADB51EC27C9ACD2ED3C81EB171D8DE06BA916CEF16CB678A4551F0FC3DDB3D56C98ABC771A5DD28F4F756C627A5BF5DE44188F8A5009E3E8B626A143FD36DE7BE509DB1C346A52C092A7587BB2E222FC2136898BB40AB241A71D229025D1446B268C49249A30019C3247094A75056CE5948969274A286B22212C927CB0D6B0289FE7E48266142325A80FF2963CE58B8E20D33D9056522D364E161F0A82AE366F10E717BB485B8882E91F2CF2C3C6265D9A1973CDDBC56F360FCD458B9A73C353D552E0CE9DEB046BBB7A79F45BCFDFBF7B65513820F492995CAEDC88525C865CBBD656899CA8AA10DA640AF06FA870E1C38345BAFF6147A023F030F488FCB0E324E1CC49197C4385263ED78A2DE9881839F2FC25FD130F9E9A90ACE7BBDD15CBE6C9D192003EBEDE5F2E1F4F464A44B5EBA8CDD0BA335A503FF95AB961DD87F04C111F4A67801425E685B60FCE7FBDEF7BE6F7DEB5B448311B246BDDF952FB655898DEE5A22EB623728702625F79ECA88B442D2B2B89825A08840DD60F5647A011604DF8E7B58B366CD79E79D77E38D376213972E472FF6EAE27464F59BADB9F852C443279E78224C29590BF1386481E7830877CA0A5340CE849946B3E1B91D25C8C00BCA419A06E4E4DB25E2646E0FED62D9B95B6EB9E5BDEF7D2F1D7F6A7C52CDD8ADD4F813A375AC1595789C7297CA75D86388A5A3D5EF9A3C45D9E00D9F74D249679D7516DC3AD618F02FE2B6D7BFFEF5541C7833FEFAF5AF7F1DEE82AE8BA4450801758825202E10BF81193874E848A954686BB0830E5E87870736AE5B8B2BC04E98A450ABA65FB37ACAB793D690D398402C8138AA92D0D0DF1879A9C4742C01D7B31D47B64E1435946DA99AE724D9A09C2B4C6FDB5D9CAA3913152CE2723D645C370D682A31DDA3192BCB18E811F7610897AC8A38A0DD6C99A9810DD3C5E3B94E2E569A8D122728174CCD369C3073CC75B6E2D995DB33B462E7D851AF5C607D4E66CC5191D15DE51D7AE9604ED93BE9DA65244A63ACCC3C0C958E15E36A0B35489292EDA8B44EA0E631AFAC5EBDFAE0C1831072FCFEB4D34EFBC94F7E92A41DE37606BFEB24E266B0FB070E1C80327DE31BDF48CA2F6824A6D3F1B6134E3861FBF6ED4C31DD77DF7DA79F7E3ABD01A9F7382981EEFC93CE3B24A925AB7174F999C9E48C612603059ACC785DFAE6E8E508570A4D88E4C40863C529EE608D6DB4E9FCA972F32D014F4B6F6FBFBE0FCF8C8E6935E19E9BD4A7F7F76FBBE8A1871E7A72C7965C98A937EB1B376E786AFB366C504F61B0D574F3C5BE81FE917AAD393B8DA7CA7B2ECC72429E06DC8CEECBC82B4D5701318BC2388220C1FB9F68C5138983F0A29ECBFBCD56051A7F621CEE5B2F2C0A1C4A9C1CDC43A5325D6D56201408296AB58AE7278D663D089C7C3E3B353DA3AB5C71877E920B21D46CC254E398D9F49AFBDA0CDA3DF7DC73E1B6E3F7506D36C5E0F2E5CBB11904DA73C588380A0C4246060FCD5F37D7F4B8338D68AB21E6196C8CDAD27D0CD8E00B2EB8E0CE3BEF644A4AA59925916C861D6CABF9436302658C16A7CBE2E2887884B591450B2CCBD7BEF635EA4D3725CF2078D986EE119ACD8555C613914665A9A2DB3FC7D64C8FDFC71270901C6EEC924B2E41A48277420CE0F84841CB33939818604912D93EC36EDAB88FB01D4F8447130FCEF601E95E71BB79F221F6F7DC73CFDFFEEDDFAAB915450E5480E4DC7AEBAD6F7EF39BB9024C85C9570BB1B04ADD2FB37DBD3395295C19ABDA5BCCC38EE2379ECEDC26668A7A0DC634B252437C49D95F5AB1A8133B5090B6348B51DDA7D6481D5F58DBFDCC39FEAC93C4193F6827877FB96575ACD67B419F1B4CB6AABC7BDFB8F9BE094DF0C962D6EC66A205009660BA596516B26D2C41CBD0D365E304561A7162369FF12AB5D2F0C06F8E8EAD3CE1590F3EF5A41714FFFECA8FBCF7AA2BD3E49512461D59A838652697A9A5D4CB5C6769F9E6FB79B2F02F84FFC89123EC4616BDCFF5913A33359E1DB1E1295EF8C2174265B3BF9D53D5284BACF488BBA32C6F983EB8D0BFC3497AECB1C7982556A6EC4C0BC1F1DAA27368B0696644FE6D4BE0A4341276772A891BA49D4599F4805C4D2C01C7F35121D8092E88252E287C6238171CC881EB700E8F4365443B2CD5CB25D805041A0157D87C0A01A546BC1E3D3CBE61FDC6F1F1A9A9C99956120DF50D8C4E1CD9B87EC38B5FF2E2FF79F8D7539355F89495E9C8F54AF95C7972B2E23B83857C096E259B0F8AC57C65766ADFE15D7D85B0D3121C655C27E363C5DC9956044B30DD6CD5E2A41A2550DF71AD595B36B8029141B5D5EEEF196CB70CA1901B359AD57C415B82466B16A1BB1F684FE1E39FB8FAC61B6E1E1B9B602398044A36CB4D924EF8E422D22AB0B04C33408C29F909440590AF42BA607E1F0BCA2F8516A053CFC40BBB99B8EB52FD5FF03AB8554ED42315B64A710ECC5C5347D8D46FD1E2A31116BB4F322F3DFFF9CFC76148D2267E3E2CC1F8525512101EE44128185FF08217FCE637BF91584A7007366EAFCB12D80A5A6EE369EF53B4B654EC85919BACBFF83D5B1A059DDD85EB5556A30D3E75D555575D71C51532FA433AF2445AB0C8F0FBEEBAEB2E9E6DCEF814041A35FB37BFF94DBC47A0E58283E2F792D41EB70A95F5EA57FF15A20AB637EA650C9D562B593D32009D084B902F64C33030BE7F0356A199E6B5A8F785AF54A525502E38D5815EE7B6C88FC947BB9D28DFEED4B3F3E68E17CCC4CDC4750A913BB3F9A9F56D6F65EC04493B4A07827BCAA1A531457E05DDAEB3E19172033F52CE8C99658C178250AC1D1CC3D05185D8C9AB24D48C435E7F14555C752C528794E686AC660BBB5BCDA9C01D2AF51013C144076E8928B8F996808F0C15F6EC673FFB89279E60CA8E497CFC70D14517DD7BEFBD70E36CE61FC15E0BAC4B2C816D9B29E4ECF8B16B4542952AF269C34024238765A1CB254E37E37BDA9B33CE38E391471EE1F83FFEB50B272A219D442AD290C44662EA1C395F2F7FF9CB7FFAD39FDA6530C90E2933360A2F279DE441E9A2EF4BCD86B791A79A12CEE0F2FAEBAF77EC232175F3A59B0C9441B9BEE005A7DE7FFFFD4383CBB05EFBF6EF734C2E3156CEDA95CFA0FB0CFD3E39333E3CB46CB6D208BC1E04EB49541859B171B07FF5E4C44CA316562A55CF0DA7A66672B98CE7C7515C534E94CDE86E00BD5C6DC497595882484D34DBE3B5C6B80FEF33A9F5F517A7A6C7A09510948C8E8E150A7DAB56ADF9ED934F96B2A599FA54291FCE5627F2F94CA53A89150A336E2613FCCDDFFEF59D5FFA2A753A9680BC02767F1D13BECC6060B164D165596C3673D1D4B29D3CF058629CFFC578721C33F384B34FB9C8D217C6D38B7D62E31FBC12421416BC0EC949540A8FC1FB7163305A708D376DDA848BE09A6433457881772E96655AECC5FB240B0A64487AD0F02F617358ABF7BCE73D37DF7C3313E81278E21E58A37ED9CB5EF6B39FFD6C6A4667BA70767DD353DA6A36B346B1363B1A630E0180B22CE8EF690C10CB13FA29112E71A2425FEAA46C4252569D7F4DBE411C029A2B098E252C90E41B3FC5C63DC1A1F2ACE20DD808010B0A01AADC0C5F9CFD875B42388BEF5DB66C68D7AE5DB86DCDD360262986A10EE94AA502FED7532E99DC5403BE2C0B0F6209E495583444AE3514A5CB1228A7539F740CA7B4BCEDB825F6DC38D4CD01C55A7BFAF1A7461AAA0F82AD544FE0699239EE8B49F4699C10962569E971E24AE30295E3D5A3D66C5B0FA3699B3E32C40781A38A896E4363AEE09983A5A3D333879B2ACC87E32DB5ADD59CCC668FC54DD58C65DAB0642DE83D48078660B2136B8C97480BDD561235F222CCC1629119B6CECF0EC5E96C48FA0D1C4220697DD181C44F737305D160C7526CEC62BA46E61A315217B8043D7779165ECD1609B93DA901C857E067C497EF7AD7BBE46AF822DCDBC73EF63104B24291CB22993C1D3D39C19773A144837DF0831FE4C4567C9CA52C5CE40D6F788343C9E6ADCBC796E0E0A4E363EC9B86ABCF4CCF32EF59CCF7C0375A31B27AEFDEFDED24EE2FF78E4F1D2B177BE05484410196009BD26E65FB7AD7950A439599E64CA5E6B99965CB5698327DD86CCD28B7DED353A85526D93AA362DF7542D76935DAA3B5C6685B557B8A85667B6AE333D7EEDDB7DDB492E68E1C1B5DB77AE38B5EF427FFF3F06FF61F380001CF6413C76BB6A35AB55611DE21E5A8676C583F3E3E49EDCF0DC3BA3007221D64FCD9E6EAA1A72992C76DB8FAEAAB3FF9C94FE252440DD123C00DC3897EF5AB5FFDA94F7D6A310B6A330E09973AF112745AB197975F7EF9E73FFF794AD582D721C881010A0D0905974DF6F6B86A6176FC832C818C5B90CE49A15D64C40A63C39C86CC0C71E70EF0618CE2FAFAF4C2DFC8A4F4299D6123D5A7C13239739BC89688B1C49CD3F18188E3D8C46672884AE93A78A8EC148D54D4F9AF602D58A121690C03207AA3BC14FD44B62213E48E67E4EED31DC3CF2CF370F13B6CA396BBE0A6D4EE3436706799D1CE184256449808AF9546D184C62FF1A0D0962D1F364E465B8F0D4E4301497C53B9D829231B4EAAA23915635A02FDFF9A8BF43837A7EDE1EA34FD74353339DBDC777444A9126EA610649A262BE228D803CD5F6A285CF0FE76DCD2A392753940D3CF2398A8B59AB5186F71A655326BFA140A89195EA879099D2CFEE2A96AA4A6CC5CD9493FB343C547DC486990A74E787EFDEB5F67194FA5E94DDB4B70AD9794CDC57F57E9681059840573FA1DC39836FF77F55772BBE9D3604FED81330844E09F5148C41EDB3524785D9087D80C0521E48CF19340486C1C5A970DE0ADDA7D0F6206E8924A33818C414CAC6E247E8BB8EFAC9DC875F02FF409B40ABD16BC93392BB10D5414279F7CB223894B69C991AF5CE2049A5101A63A516DC4491C06E1A7AEFBCC15575C556B344BF972A3DECAE561A8E152C5B97C396ABB512B544939F0FAB3D9E5D9B0CF73B3D57A6D7868F9AA95EB1F7FFCF17AA30A67DF0F5BA59E6C6562CA48ADF29C4037AF79AD7AF348B57158436B0AC1E8F4FE67AE5FB36DD7968C1F94CB7D13E333575EF5D17FF887AF1D1B9DC4577FE5CB77BEEB82F30A257F6CFC305CAAE999A9BE3EED2A0E0DF78D1E9DA092C2B1A7D1B64777319FC0A2257501B992484F2DB932AEB2A48F9C94A247364F5891E7BF64D68DCD07CB2B485E48A5C3B996B8CEB5D75E7BC30D37D00E3158866B4CBB25D1221BB296CE322DF6120A555E8D74862AC5ADF34B49EF2C855F493230B4A26BDC8A0C01272C8481482326084CE37BD46A4B6A422DE2AADB25CDA52BF012F0C686E388788FD89ACE2620C2F9D1801C42E2BE70DBF61C1E35372CA01913D79B4C2476C3118E2B510334F636C895490395C23698A0E8EF1B8EE2569AB79D4C478A66716ACC0AA8DEDEDCEA35AB8C318B386ECC2E77CBFDF337C249C71D34C75B422E165D44AB7AEEDCC9BABC60267692663CB1EF405F3D19566A3D1CBB4625F1E3420B5BAC07DCB463D5C21DEBBCADAB89E1FDC4775C4D4B1D45263208DB715469C33CF8334E3CEB6A2F2C13A97C12E73D3F97F1B36DA8255DEDA836A3E9249EF073FB7D674FABDE88621A723AE9BC491BF326864A00B224FF611D8853C648F72F4136A1CCB4B8F2716515C945D4B93592DB14CA362A07E68BB041175F7CF1673EF319E9859611980236914E31C6FAF44524DB4CE40F511EC24FECCC652AE58BD461420E313232C2413AF8AC344F48B14D88D35927100BC19C123B1828724247DA756F76AAA3E3161195C552E159679D75FFFDF74BFB9C8DBB521D7E73FD0CD94CBEDEA8FB9E8F55711D776860B05AAD1BFBE19A6100FA9DBAE4A222B8059ED31BFACBE276B1B777CDE444DD75825CB6E7D8C4E8BA35ABEA8D9938A9D71BB388FCE2A4E5AAA209799C7C36ACCC4EE472AADC9BDF7D6047A90065D474DC5690C1A3C6AD76B35EAF720B5F72DACB1E7B74DBDEC38796F50ECDD6C67A7A9D434776260ECE6A58AF3573393AB645D8A728D6445E886CF59025DF31B84397075B543967620883EBFF43C575C1176D0FAE063D7ED14517C92C3DC74C8B847013AB4EA00E3D083130E24A880FB2E0F5559A1BA53667F406ED868BC35FFEF8C73F4EFAF2381DBF459F9A1FB165628947E0B001CA16A585DA84A2A62C6086B4E0D2F38D53864E9CAE7DFBF6493F244F91182D21CF122EF5C5D65FD2B2D465D4E644D94B0311FD328623765F056BB9820D95F608FE55DE2C07C94D292284F4893BF5AA57BDEA473FFA11911B0203C301867B48CD62B304CA17318F2114175DD0B5F4F1A056DC65CB0756AE5C5E2CE5A1F07D270B99E7C3E292E61B1303C7EAB0C7708E13630E1B62240E66A7E32C71EC556DA72F3F80D56CF4EF1C5D9DB8EDC029B5A2756E76C66FABC8F48B787056DC5AA3558BB50A713D3F64E539D6FDC6BA510DC17BD4AEE9D491996843F89021292A2A27E76B9E233F09676103E21AC20308F14EE53DE11C1F6426590E0125F38C08C046A5B4981272B9161148575A5BA680503245BDF265A3938F574AF859C7639E76B65209D211F09AE2EDC811C7DCA15CA4DD398931C598A55A7285DD7CF3CDB68FAF2CCCA8883AAD1A3DA73865D9E3314FD26E1BDA249E2F1A0FFAE80C2E6975887AE713491BB65A28CB2AFC7DAC644015D0EFE7BD396A2EBF823215BF279E7842344ED75124678359567764F9086CE6E0E010AEBB77F73EF3F01A4B00879EC6497B3AF8659209DCFE6C6644453DBD7DAB8E1DC593BBE59EFEB1B163A59E9C1F24B5FA54B184E337D38E1AE5D2725C5F9363A87698C1FEC14E34AAD599D8417C14797E8C5F6A5FA45D9786FE4C581C9BAA8EF4AF191D3F9CCF61B52A95D9B1628F16975A55F4A6BB7C996ECC430403BB0575BFE903975E7DF5D5BDBD3D9C520B0DB57BF76E65EC22D5F182EEEAFFF38B591768017C1D0D18010950CAAC2FF13658A214B818EF810D960B6E87BCD8124824928C5EA1302983AC6000844BB19241D50FCD8E0BCA504C7867F6787AFB452163C822852665A5A158E8930C98741810EA4A9405EF013783C7E72C2AFC95D685251CF2C791E617B7441F7F094BC09FED19B6CEDCEE5FE98460369F1A4154B35408180DB0470C228D1B667B91B2DAC2DD94D1880FC5A5C31DD2E470AE8E7D4DE13C60F186A3DF94B1D6C3C3C3B83805D82EDEDA690D3F503DE5DCB26543838303F942D6778CD14D341CA05AADD0F668E474AE40CF8CC68C5A4F96DA46AC77FA0CBCC0768D25B904AF1F2A6560D7B12E4BA04DBE21F14D945B8FA25A121BA8A8E3AB444F8C527A705960BA8B71CE1116D4DB2DFD83693DF73470C8CBBB2A749D3AD49CCAD454321DD7633D13D9580215BBBEF62AA432473F973E843797D7DD5653783FB6ECCC33CFBCFDF6DBF17E44C6906A6E6B174482FD07F4721CD31D62BB0B5D66400B55E2B0E97DD9F2E54710104038E1139B0F2616EB387DB2489BDED06637C1DBAEBCF2CACB2EBB4CA9EEFE1E8178D16717C4879A8B7A903B5FBD7AF525975CF2E10F7F9848507209D37FC2BF6442C577C1C9C352E0E30B561625A5A64C1580953C9E3E9546459D67B7331BBC0F4218BB5077D6A53B63110B793D77427FD0D7030E27C7A7286781AF557592983E642FACD66B815FCC068361B0AC59CBF594574C4FB6C220DFDF3F303A7AB45A9BCEE6BC99D9B1356B56CECE4E359AD5E5CBD672A848DCAE0F0FE30C1F98983C5A2AE5C726F6C200F88113C01BD1C9860E6847CBD044D551E1C4ECF49AE52B27A70FF9617D7CF290998711EB068566DBB811C10B5FF0A2471F7D148770D7EE5D6615D818D2B0BD0C4E01E32C2A480C37EC8F620924D1816DC377BDE215AF803B49AF9CC9168A8232B82C5BEFA894218B30E4C5787898C5A2938B1DC47EC3EC413B63EF056B1F9B210184BEE0D1F0B0DBB76FC707D7AF5F0F252EF88DC5AE0F63F9377FF337FFFCCFFF8C2BD3D86CDCB871CB962D1CD2FDD6B7BEF5B6DB6E7BDEF39EF7D8638F1D9F66616A80B673C7ABE13F6FBCF1C66BAEB986993A9E617606E03736667789FB91348E20A17187781081CDB1FBFFE4934FC64D4A0D8CBA528684D8791E2F9DCD49479297E5A538C080737B700249252468311E78687C4EBB651581893B761B897B412D86B0FB3BDFF98E68FF381D5AC2F67BFC9739999AD6A5A79C5FB162F9D0D060E86733998078E5D96AC5E43D229512EDC9DA0A3C54329FF3F20F99C4A27496CA733BC2479A83BBC7D7A88E2558EB642A8126BE68C37B4A74DDB9A9926AA241A289EE2DD08DC759E5C108E3B67281AF497F636D0CDA5152370F06A5075D10A8084F855034546143D7939B0819E2D412C4EAF8EDD11E90174B885BC4E1103369F76CABD48A4B358BCD3D52B1978BDB65FFAE3AA863BD32D97C6566E659CF7EF6936604375E7D8668960122FD71E6A9185306BE4B27809E904A2BA9AE45A3BB605586A139EE96A24ECF0C37C6111AB6232EA541B680B139866E049E1D0A8AA75E4E193F28C82B56B398E3E151651F1FBB656927E82439B61EA14723E47C765E285D7A9787568F274BE20DEB379C73CEEB3FF5A94FE5B305FE89A9215C1C5A584F9B9B9ACC657B73E132D7E9AB4CE1EBD7341B4E4F6900CB373939D168CE42B323261818ECADD72BE313A37DBD83783C5D9F71D4D070DFD123FBA72AA37DE5DE7A7302860D0104EC415B6F410DEB6CD8592BC34323074647078A83A7BCE0B99B1FFFE5B1C9DD9B36BDE7FACF7D26970B60AE8E1D1B37AB995BB572CDF61D7AFA0F3C1A4D12529932EBA8FD389951ECA563459DB4C1EF8F951DC2BA532E85A9185B0E4DA1E65296532F48528F6247E21AF17917BC3E090FB0AAF814D410B91BA96199EFE63123C2077BFFB6B7BDED4B5FFA1291032AF57397400F531C99D21595CD0346818116DEB163873401510AD9AB219E974AF3FBB03DB85B02C0114DDF7AEBAD907E3234B06643C7963F2CB6A44C82B966E60479F7E82ED9E108FE4A680AC742C9AC66BBB759BA31A844A0C739074D29256001FC400A62465D2A35D8DC266C1097D7350C392C189C71C6190F3DF4105349AC4348160E4A8A5EAA10085BDD76F8CF162D816620F5710A7A714BC57CC1D056670DF9BECE27403933D12CD40549DA09453D257EAE5D61769DE3D3836D346AA4F99FDAC37B27D72AAF1D3AC5661B9660368C5B89AAEB0163DAEC341D8D106D685239851020EB3979E504510C51C3FF34C1987242DF6F44714DA78C35012AA201B7AD99328EC62AE37A6DC79D552DC7A8FF9DCAFFAD668B4F2854649AC3DDDE71C71DF02A7ACD802319F9226EB55444F186534E39052B2CDB240E846DDA79EEE8C8ABB9A865DB12D8E05A88C1E73EF73988250466EDDAB5B8379D76CB153AF615973282CD30348E3AA1C0B5D75E0B358877B26F402802F9150207B29D3C38529004A1A2B27398D277CD69C66CE1A48CC924321C79BC1F9FE502DAC393E50C324466F07DFEF9E7E3C8CB100566532555D5617315678D922AE3DCEC572A589262734B661CDD673F73FD55575D854DD76F3066C00007D8C7E155AA33AE930BBD7EC40449BBA7BF7FDDCC74D3F7B24180B351C9EBEE0188470BD100CCE481B1BDC3E561B82D3AB39F0911204F4D8E29A7E9EBC9AA0D3D17C98F1C37D61DF8461A7C5FE3F0B6EE7C2AEF957A7BCB07C7761773AE1F36F285607CE2B0CEDBFA994A853211786EC06DA8CC56023FE8EDEB3118189D5CA32D4D52226F51CD4BB031FFA12F1E78FA2F7449CE3DF7DC7FFDD77F25A7340FA4EDE9C89875E60459E517B294F9AF24ED57900DEDA248925AA54AC9FD05844E9AE8A7ED28249904A58A4E0391F8EE3CB2208A13255BB2F04C4A12712B05737C8A07D81E326E33CA2D969D4B0CA734DE830DE29A9C7AEAA9679E79260EA44A9D18816FDB12EEA503D1E0AD3FF399CF7CE08107C87349684717E7A89BF282F13D77DE79275BC6485DC7EE90C870B6DBF689AB8123C7E21049D3A0262EBBEC32411CF0CD5DB38C8C4AF26909B05DC68784B9D2EE6D7F5F19C64C5312A94E45017EBC619CE87C90AB2A4026C1A8881AE252C0C397F589D3D13A7AEF34DB5DBC7CFF342D41A1D95E672C01CE5BB5AE5BC8C412D4342E5503C673C61284119C7D5D0F08F5BC33077E292C810ED875CAC88525F0A236BEE9708418C23596A0ED261D4BF03B150FAF188116E30A3BE940EC38A5B412B6515B12046C4AEF4D9C0FCA9B54E92978F6306195D26AD90C8CCEDC971878FCE9DE7BEF3DFBECB39D4ED3E251D72CA91624663C984D493A03FE847496D1330B72B61B2DF004362A32CFC36CADD0F7520B31334C213438823C7437761F824480AC8C144460FDD18F7E946949891E6C6092D8390A2AD171506B3254EAB8399405B52D81DD4061EB32E67F3AA9E76299F00CD87E9D356EC4BEC7714B9A7C1426019E8AAE78E49C7A1516A2D4D7B3AEA7B86A7878E3BE3D70066BFD7D4353539341E8B4233DCB7E7A6662646468720A515E96529BD76D1D9566A35228666AF50A96DDD1E35513A5B547CBC88DD64A6F7CE31BEEBEFB1B26CE0A834CFCDBAD0FC71AD0DCC2A766671B9038C266EB755DD828E475777BB5465661F25E4D8A9B40B2C037BEF18D5FF8C217F04BC248FED0CEACC55EDC1EE2CD2937CC32D3E8AA942648DE4F3B0F6507F93EEDB4D3FEFDDFFF6F6BEF016E5959DDFFBF7B9F72CFEDF7CE0CD381611810B02120266804630A26121088A189A022A0A052A409D2BB5190AAA0A2A11851C2DF8098444C548812414CF2A3481B8632334CBFF5F4B3FFDF777FEE5EF3CEB94586789E79E639F79C7DF67ECB7A575FDFF5AFD8B6D3716A9255B495FA0920712262491A9414E0A95DD68295D372F3CD378B37E973740D1D3010D8A79B024708DF0852047F2E3F9775AC5B49877AFAE9A7A32097DF3CD76DE1EED06A0E6B6434F18DE9CB4DD5E4D65EF8F42CEF1BE5312CD188D2020892CAA9E3338E89CC2BA5083F7A90FD09B358B870216801986230232290381CD0B3A832216B90F0867653D2452BF0F8E38F3330EB63A32DA07A1CA18ECBC86581DC246BCC908E909638A41BA5AABF8FD0BA81BEDEBE149C8EC6F79CF454A44D1494F9CEE1696A0AD21AB44E5E61F141BDDE0C0D0290297D515EC137FB5EB8727489CBD78BCE2481F7DDD5BCB4A9A741E0F1B476AC19B9824454CE95A25CB1D1EC70917404EF6D4D92AA749AD46EF04231979392558C5A9AD29A5AB3E8723AB4A351C34DD804B927A2A4996C764D8BE1C2D4DA32618C0CD83E0AA370BE59571997593FA6C6A1FC9AA14066AA79C22797344E9CD08EC288EFAC9947094BF986F724D71BBECD0604DF0A78822F894DCF1DA9D2B063D42353A0DB724645036050DA4DF42C30445DD6FD829086E807DB02B66C8037147E69B9444596A4A06B2603DB596CC334455DF6F9CF7FFE820B2ED01BCB7A4A4824404545125A3BD6E92481140BD6516F64F989955C79A5EF2C5AABA40939FE9F0F15A471CBDA7875BCAB2B5FADB8A8D5DB2F49D0BD789BB94B57BDBA697CAC3A38307F7878A8DE28F7F48AD10F8D97472409EA8DCAC8A854666F024B7190EEDFA8576437C862E8EEEE9412E4D174BD2410ED4A32A755ACF54A8AFC5E2875169E5DF1FFBA4BAEDE1CCE177CEA73A5E273DEF01868A63B2CD99108C19CD973D6AD5FE77BBAFA72BB1E00F526AB0F6F7EF39B0F3DF45074CCFFFB2B0CEB9B77C502655150A54C1AC0C1071F2CCB5723110580800F3CC80C368A0182B27162372FBDF412E5F2D8B92B56AC60761C128F0EB46A152482678CEE3153DEDCD2960DD8C7B0EA0CE23B0AA07AF90985CA96CDC281C43DA2BB61B2C0052053AD12908DBA409FAF5EBD7A8688B19BCAD8B73C71432368CB2E2771DEA5AE338BE069005A643D4E6F64583CF1C4134F3DF514C5C0A04551436709426059536B6D29C8DCDF7EE58206D4AC8955FA6847ACFDA4653A6543B563DC0CD38A8A85286D7DE5DB1D7BE32C67954D3998BEEF0D9BEA83F0A0B0AFB2B92652E1B119BC28AC4570BE08D92D5A3DBE432009C63B64E3B7EAB566230D4A6853C7522EDF02812EF2A567051F3020B9C8CF623C2D4B46A30923C6A3B5463E2A965D3292D429F3599E4A029F929A46E9C4D7A4873DFAE8A368C156BD8F8D857B87F26F313E9D1A7DB26CD9B2E5CB97EB73E9E0FA64BFFDF67BE8A18724AA65EABDF0C20BCDB409C1273EF1893BEEB883740078749857DA260C52E925865EEFEFEF4DBD705EA2C912DBB871C8C5F9CD4D11B4983077BFAA2D4E130A012F6254467571000A69493EAD0C00035FB46E2B5D4AC313B520B4A02892C10093C7D368082E7A9095CA8686782B68FDE6B2F430D1AA7E2E3E404F4D112D0D70585E874D6014CC6F7016B751922D961E910120FBC7A40EA251C980CE625F7ABD1F43B1A0D1FB9B8C95C79B6E34769D8568B058989B34FA2409CA637A564FAD12FBC5891ABBEEB66CCDDA57640D485F913C88E27A9AF838562B57248A2509F205E7B3D462CDDCA7997A0357564ED56399A6C4E16DE772656CDDF0AAC1BED2D0B0CCD0114F693E0F2F27228657F4F50D9C7DD61724097DA8CD791946476FEF714A5D4361B5377D41615BD3618BBE8117D60959373ACF24EDC0072DDFD16D991B674202FDD74DEFBDB1DA45A2D0160647AB354FCB873FFCE11FFFF8C7467C849EF074871C76F20B1AB0622EBBEC3DEF79CF7FFDD77FE941B874920C3198F99E70C20937DC708369C7B07BEBBE69496CC830CAFDF4FFA73EF529D92BB42A9C396B9604683CAAA832CD0C08DA9E025F30D08B66D66F0305939CF46DB7DD56DCE4BFFFFBBF758D8C1214F6B0951520F83AA5F867758A30650C1ADAFC4B990D5A31539B45B3760BC71F7FFC4D37DD24D2D23561015A32012FBC4595696A51A54DC9D3598BA40707077C0FDE7C446023EDC0E1D35A8843E017B29473AB38B323ACE369E875A11C6DB4644C449325412972F5462A33A258FAD458D3E70EB5FCE97113DD2B7D15717E020FDC355BBE263969B47C4A78EC924E59ABB21872B11E56701D63496B936F66E32581B709E2C420C14D790775D9123DE30C89DAA42C130CBD9D2CA0F5014E0220614B2433CF6AD8DC78F22B17D304A99E659434E9A62149E089C110C3B2FEA6496B0297C1F2B02DD9CC3283C384CED00FD6268ADAF4156BA565EECDD0C999A9E31319DB463F61D0D89091ECB66DADF7B6C0D20858FC6623003E823B1535D38A893EFDE9936FBCF14631B462512BDB48F5F7A68C805623DFDDD9EBE35D8D147CC33B31ABD25C72D21C92DCA2854B5F7C71DD60DFB6954AA9BF7771D2CA17F2DD3A1E857CD1173B54CBCD66355FF08D5B9B2D6D52ABD1AC1472328A1B1D45C9CC8D29965C8E0809A31FAD7827405F579FCF8F6C942BD591726553AD31D47263512CC6E7E369CDC6C4E465A6B49ADAB654394AAA745224466F1463A09E5A208B0D6ACFCC8B1D9E6A17B4EE31CE1B7A3FA086B089B94621AA9209A2AF0E3AE8A0EF7DEF7B6870B974C935B4B45833D2A12B163CCD49DE8E8F8D75F7F48CA5EE8E62667EA6AD607C0D4EBDD698357B70C3FA8DF9421A75ACB7380C40A010AA7559E69C357B425B7469C03397F93DA7CB136BE3BC5A9CCB2FBFFCD4534FC5E103DD8BA39D79E699320D4521B036548AE9BC6AD64701F4A4934E3AE99A6BAEA1EC803C39DDE180030EB8F7DE7B61A62E8DE71B2001FC9D8280E38E3B4E0263A207643A249766CDE2689632A845D66F61D09C5BE0E3D1A1AC88448FBEE28A2B6432EB0E071E78E00F7EF08370133FF0810F3CFCF0C37A288FB6DE4158D65DE90B160691201288F54960F02BDD990C6ED69C9B93BC61189C5A07D9438CCA9CCE882BD3EF10787A10F8452978B03FD2625B6926E8C4E6FA6E5C0D875FB86D7F119CE4C0587EA177598812C7C6BB47AB0B6BC93C17179D077DAFE4927CD2EA8A72DD51BE98C4627BA3497D386A49CE970A12504929713D8562219797D9E0B148138F2DE1A187A27CC5DBEF49874B7A5C53FF2F6A0D568AAD8DC978A5598F73F98D8DE82597AC2F1556A523D18C340BCF10327BCB4DFF6271C25C47F2AD5B19EC8F0BA24190967593363DC0748238E843090F0CCB125FCFB968AB5699B913D4D6BE426CE0B0FC78CAF315CFD8596BE60785E9A1B1B5EF8004091D1BAE19C3DA6597DD9E7DF6D94A85BC912E89ABB1B14A6F4F7FAB9ECFC505EF856C799FB574EEB1B11171F65C21A9D61B85A8279FEF9B3DB8A4D5EA6BD64BC57C6FA5DC4C53353CDFEF1FE8ADD5C7CAE591DEBEAE346A97AFD6CAE3A343DB6EBBE0FF3DFBDB9DB75FAA6B3EF6B18FE9B86E28AF5F30B8C0434F7BF5A740BB065D3C36BEA15A1F6EB6C69368DC45B21BBC4D907A2029B9F492A0E54B60A2CEAEBCCEF6DD77DF9D040DCA5981850B17BEF6DA6B606DEEBDF7DEBFFCE52F5971519EAC04F27C5C867A1865FDE1426FCC8A152B5843B236F91FD6E095AA89565D13CEFAD4A6914A1559A8A052F5AA5F92EE4AC3A3BC781BD05A3281E1A3A5F088A7CF7B37170DCA3B4A9E6407FA3677EC03135197AD5CB99293C018E0FEC63A2D5F45FB85C89F218B14962461ACFBD0BEC6F46EEB01676EFA194ECE79E79D77E595575AF1272977A605737477DD75D7DFFDEE7730081236A04FAC7B3AB5690BF4060CB8B0CF043C9A78B2B54FB0931002D549C653B8A0557AFBDBDF0EA859947619034184E81CE51D471E79E4430F3D245B0167118FD39571DA9C406AAC9E85241373BFEDB6DB8E39E698934F3EF9F6DB6F177793ECBCF5D65B9143FA96708B1D3A383B09AFE4296A48B808C842694B1D8EB2F62C8455E6CF1FE8EEEEC4F5AC83E31D5F519262C345E4DE58D32E5EB89E99A98162EA353C341ED52BC5F1CAE0586D6E2BE94B4DFEA66F41E3C144BBF24511AA7E556ED6A58CD4A3B4F55CD37B87BAF31E8AB1DAA8971BFACA5F5FF54EA49C77094F48020F38B120DF5B2BB80D8DB16ABD25DA5E9B442FB86443A9305A99509E3492EDB7DF5ED61BBB632E0A978594D84482046F7EF39B9F78E289B02D8C569EC407B33E0DB3FD2FFEE22FB47778E1EDB6A6BA85BD68A0A865CB96FDFAD7BFE62B4CC6050B16186CE564E64B41AF19E5A6F5FF41244192E1D399FF0AA7A2E126858EA019827C6E12FA2FEF0953FB0187E0AE5915E244418AA6445B1CB7855911A7506B5D9981DF512C748E8D97F34EFAF98078AE74556F504B4795DDD0911F1A5BBFCDEC793DDD83EBD679C574DE363B27CDCE449662AB873A52916BB143BBD292351079A1E315DBD5AB57CE9F3B7BC59A17962DDC6160B0EFD1277C1BDEC30E3CEC77BF7BEAF1A71FED2BF688FABB7B7CBFBD9191B14A65AC5C196A24E262B5382FDDB89A5623CB28706EC2BECE9924D0533863D2C8B40AF87939F628CE38BE51D3D0B235D30F7EF083F7DF7FBFFE04FA58D78006AAFDC095A4CB0E3DF4D0071E7880BE42BCF07E44192E601A5C1A4F3FCF61754AE6B6D256E0626EB1EFF15259B060DEAA557A7AB15CAB9B994935E37C91E3AA558B162F9424FBFEF7BF2FE2C34D51ADD4BA7BBAC646B668D6687133833E8E32BC23EB236FC98B219799818CF6DA6BAF471E79C4A5EEEFB4BE69DC650A1A397F2074A22C4F8756A2935CCF5E5A349D22B1720EBF195E66D51293C08E818BEDB2CB2E4F6789DEDA8B638F3DF6AEBBEE02E85117EB864CD6DCA9342506CDD150DD8978BB2DD1BEDA96C80C294645DF445CD8C454704D7CE10B5F209264831721A101E002D67B8C035B01DD5914282A02DE1CC70E094596158373C03060DAE459F89A3777B0ABBBA451A589289DA9A7A899A6CF4ED8ACAD2D5FA26D632E76DE532F46C12781D6AAA5A1913995FAC228EA8B7C8C20F61D9463D6BF45869BF708C56369C71B29269DB9A2CBC5B209C69A3EB09C8F5DB54560D96B352551488A6437AB5068E563C9D5F196371A64DF3DE7DC7097F8450CB7D514DEF39EF7FCE217BFC00642CD62497151C09790B5EF7BDFFBC4AC692EC4A650AE61586CE6E2D6DDA45848F14248204BE05D61CBEBB0FB2C3B4BA716CC2FD25BA7A4675D402D274E02CCC13F60F6F9DCB973292261CCEC1A7E5D975AF65465F374DE4F777EA79404665B446DFE2C73139D75D659F7DC73CF33CF3CC3E9D50F00B2D86E3B1F8714FB2EA5AAA84CCC5247B794D9D875CDEA9F53F02D2DEBA9F3D4F362D167331ADB3434EC9149F37D7D3DF35A4977B35E1CE8DF26EF16AC5BBB41FB9ACB47AFAE7A699B39FD73E7CD7E71C573A94227B5AB67B0BFF7A9679F78EB2EBBFDE6E9C7767FD3DBEAB5E613CB9F18E8E8E928E5653D2C5ABCA05C1EDDB869BD3E6FB6648988BA2A1203515CF3058CD25AE2A4D948D216EB698EB60FF3783F9A248121F3A0DD13F72B05BDB442B311AE24F601048539EB43AB90BD31D51835C1DA8A4D64EFA5B6056A0B960476DF4E3BED244D9372798D649F7DF6F9D9CF7E263691A479B85ACAAEEE6EADBF574944C469C5232221ED029FE6328B7389672513B28748E0EEBBEF2EB3404F39E594536EB9E516CABB7038D27DC108CB3C8946F4535292BEC27E7799454C89721A589B58048DFFE5975F9E5927325EC6B2D3D45B3F913CC066C76FC37B98949E75F4D1477FF39BDFB4A019453400C598C5E05275C97A559255C26971A98CC45FA40F3560324F88D84B15D5FF5A22DD599F68A9316EAC3CD518344597A4A847198EA154484DC49AE1982DAF2752D5499AB26E4831076306BBC20A47309270F8B0C8920DDAB8430E3984198551C77025A542A4E9BCDEB09048C08A92C99E6276E54CEB679B886A84C98551568936B4A992EF2A267123373236AFEE964987486300DD2ED79452157B10BA287185242A2691FE1F918868F95698FE0EBE6978B39AB4D256EE4E2750ECBE969AB64802190A1DB16F7B596F782131E4E217E3E8B9A8592915DC58DDB23FA99387178536413877CC5924A596945C5E7405A696648814F627E42D1B11B161A7181AB3FB1BBE4B08FCA99FF8A84C4A6C53D2B379F3C342F7DCF4BDF6B6F615CA7E728E09F3805461C93FF6F4196CFA5CD01B2AB7659FA8141822BBCEDC97AC23597D0011B3FA24BC6B8229471B4D57AA7F6CAC5AAB357371A1AB38CB279856658A46A9884ECA9571C98362A7AB546A0B162C5CBF7EB4A77B9B4D43D5AED2EC52476F315AEAB1E1E6CCD35356AD7E79C1C2B9F3E7CF59F1D28BBE70AFE65396D70CBDB2EB925D56BEFAD2278FFFC4D5D75F3DAB73D6ECD9BE0F5A4FAFAC818EF5EBD7943AA5798D8DD72A3997F8C288B8DA4ACAADA492B89AC7DB8A52D4C434DA8A24F09022627C71036009BD27C8899703055F14B970E1C2952B5786AA3476803417D828D95DF825F45E6F24003054E189BA0FEAA7815787E11D0B30844D8138C0DA542A15BDC08FA3AA140DA936D52A4C5FC75A2A994B19907E353E36366FFE7C4932DDC4C73C5E5B63740C30326AD169A79D36A524B0DC06CA0228984C66C4FEBCFEFAEB3FF399CF1098D59F0CD5F89D9EAE67DD78E38D447DA7CB4142CD87BFC3A9ADD107F46D506B19285B17D95F784E4C424719CA9B45EAD0B569BAE982ACF31D77DC51DB4D5359DDFFA4934EBAEDB6DB3C9C491AA26F2BF16784DFFAD6B774CF934F3E994E20C45A88F0B769E5E22FA79F7EFAB9E79EBB68D122564394231BC5A08D2C1D80F65221768264219813868066EE35919C668153488F0087233CA796A59ECB5260240AD39E193974C342A148EB0543DD21879D2A87B63410BD19DB30DACA175AC5285FAD2C68BA9DA3DC822429BA567747A7F4FD8A4CFCC81573F9529C2F365D2C465FD8DC43ADE51DB14903C4A19CCE61AB9CF898701CA599A6A9E4F08E088FA8EAD33936E68ACB5DB2C2D52B857C575CA42C03CD1A9C0FCDB7CDE99164B0D269A2A067E592910F3EF8A0340F2DF889279E78E5955746199EA3E195A2E61BB8827E28AAD091E7B84163A4D87354D189AD87A02E40619AB95F8B81CAB9ACAAE60F987DAED991A780A1837464A896C6ED0233FA0DD804131101BBCE2E429590D2F4C20B2FC0C52CAD254583F1D75B6D571CE73D904F942BE56775144B69AE6D92253CC8404CC6EB9BF6D87DCF3DDEB1D77DF7FFCBC60DA3CDA4B8CDECC59B368D76C4DBF5F50DB49A11F0BC1D1D059FA81625DA27591BE3E5E139B3FA376E7AADBF4F96E3BAED976C373CECB536098338A7ADCA972B632FAD7EB1949AC0A2F95CBED94AAAB5FA58ADA183544FB3923C79E287D5307DAFD5D84B51C90918C792254B70085A4DA009D524EB28897DB0C30E3B8895840909C632DAD01DAC22919FA3264B614CF97EB7F17D3C0FD05F4F9AC06ACFB29A75994A281A95727987A54B97BFF042871862A5B2FDF64B57BCF8E2DC94538C02A79E7EAEDD83FEB082ADFFF50CDE21036E32DF20AEB0E924013C37845841E44816F22B7143715BB8E7742741F7D1B23FF7DC73D655860C397D65713F0BD95996BD610990B9C0B91573D757745DA5C6CD65269D0596F5FEC0030F7CE8A1877419B7357B08D059C6A955D2F651F563560EAFB6C1A08B7164CCC2B3A23F4BF3A0A4D9A56A178BCC8E707FADC0D34F3F2D99F4B5AF7D4DE3C177C49DE9ABCE27A03C199453DB324E70A2B890A6F34CBC3CE443FA65988F6F19B7C9E6CEE9136DBD4139F579F475D72C76340ABE89E0FC56B2435C98EF5AC566AD2BA513CB6F2EC4FE0169DDD8440157BD5147FBF5ECC9D75CE56A4953EA58C31BB54E9A57D16B654959B497D3449C54EB35C5FC2BADFAFA465387B26FA09F083C34A3A384B906D11653205BE44D880AE3825A7DAB9F47C7E727F806A9F908A39E4B972E5DB16205C96044FB30D1900AB8C43977FBEDB7DF4F7EF213767F8608B04133584EB0350AFE8348823FFFF33FD76191C00B3B9586FD4B5E4FBA870BFA27B74902EBEEB739143365703954B838FF975E7A790A1723DBB923CDB7F51D2BBB7DEBB168B07756A12036E47DC48D662D17473DBDDD23639BD272A16D376E1A2E16F4A7348C9C8F9E265DB3676F53AFB5AA95A4A7A7977A1FFF94AAB676749BB9B3366E5859EA8CA5E2143BA2E5AF3EBFE376DB25AEC9115DB37675DD55FB3BFB87CBC37D5DBD51DCF43CBC312E49D0F0790D133D095C629230967DA0D3EABD0A798F6B86C288528643C0CEBC9559A1516AF0FBEEBBEF4F7FFA53738573A4B9C07419AC3397BA89894D0144835F3BCD1EC919BC0C31430A086BF51A2752474B3A4C247214D18B85D52A6060CD9E33E7539FFAD425975CA2EBA52ABEFCD2AB6CB95679A2F74BB5DA3F3090CF798D95FEDABAED29A79C82628BC23539626CAC075B04540649C79FFFFCE75352126A08393C329B34776BA14720043FBE19F5337B87F4DCA38E3A8AA6AF06E06E7A9975DD4B02A04AB2A10E3BECB0BBEFBE9B28AE294ABA068F0ACCDD7A7458FCF9A9A79E620A561E6C6848700D723AADB3B90683E1887987E1A8C5D794F11AB9A0FA49CC453B2E9AB9207DE94392DC4466E80D3074973668B4C0A31E24DA0073188AB27A66789305C09194C601CD1A98B88F47A603F0CD2B3FDE09908FB22C8F5678A649A08741D9E64CE06FCAC072F9511F59D32173735C243130E8928EC82D8C5D218A4BCE37B149F3445BF5C835647F345D3E17CB50F019A31248D81652C9A3622D69549CC74E4AF2A9406A26AEE5D6E75C47DC51AE37D7BAE6DA626EBD6BD66B4957941F4F1A74A37459EA8BD659EB8983D10A86CD26A01B0A88205085F93991B2C80303543768072DB26C771186D61674237650E4F1E4934F9A2BB895F627D08E8749A8FAD5741DA850112CAAC4D1FE03DA04BE074C8A326BE8C518C4A2314D1C2209738AA69340D379873454CD4E94B91981CE72095C069766B84B1C5DF45F74DBEE6ECD7C4C74D6DDDD3B365689A37C311EE8EEEAD1EF6AB5467ACF86FE495B8FF3E4AD77FAA4E4A6D4F2AE91E16AE471229AFAB3BF6F4E67A9AF5A91242FC10BD6AE8C172E9ABF6AF54B73E7F48C95D7572BC3DD3DC5BEFEAEA1E135E6E8B49646BE93B89701D57ABD2C31D06C79D7908B1A3EE339E7F00E510D97D6D0452986F6661C7373D4480DC1A247FB08AB93F4AD3533A28A2FCC1D0E51A0C937853B64E56C895593FA0AE7B4FC3DCA108D2602121EFC3DD2DF310052DA5A6D41B359EA9C0827C8C81A9C25B9B8E1DAAF7E55FC5DA75EB261FDBA7585540DF18A4F868E8BB6CED88CE9CC9045EA322C7B64039D58A6A378147FAD183939B8C825EAF4A1619D9F73CE39575F7D358E97E94E024017F81E593AEC5373F173595BB77197E98086C792A498A6D697559F03F669C69CB17E00098C9B603699DCC2D1C7FE6AFA5FFCE217AFB8E20AF0623506A05A74812E63C590520C2FC4AFE6DB507302C6E3EFFFFEEF3FF7B9CFF1087E4558926F0D05FDAEBBEE3AF2C8232D66A36F45DB0099B9ACAE6AB2AE9632DF5CE211E126747DFD6F4145AB0F0DF3D9B9D800DDD272217FFCE7CEE9DF50AED4AB320DE2DE241970CD3EF1B5BC5BD270BDB11B2876E65BAE5CAB0CBB4494D4CCB942D3878BF3399F2114F9D6F662424E47BA2B2A55937AD979C48C56DE5B1E9A9036F2E59C2B4679D18A0CD5F51DA9A256770371E76852BFFCF2CBAFBCF24A6DA2717F48A22D986F84D1E6CD43E5A23F87657F5AE40044077DDB4651E67BDC7FFFFD7FF8C31FD2F3CEF2F1C31DA724730675DBCC65978654018699AE0E666B5F6D2ABF79F376DE79E7952B578A722072B67B665B7C4A9B005AD5024661DA2CC5F72EABC30476C232D333C6C7C8B034FDD18EBC4290932428163AF2F9928C458D2A499AB4D22E4A6D6D16F2717F2EEAF29FBBBA2CC54A75A4BBC7C76CFD81C915CBE38DCE8E595D9D83FBFCF1BEBF79EC899757BDFAE69DDFBA62C5F242476B7076C7CAD5CF365BE363D58D051F252AF8B276DF10ABC325393F115F25264E3654AD6D12AD8AC22D6E6363C6A169FEE529173A445AE605DE4314749706CF40D4D6CCFAA342041EC1226B506CD46977CEB62F679179E38929A0F1E64E2F6164AC23AD2FF0436A343B8A69E64CB5D659EA18AD54CD996E0CA295F54299FC9A4E47B07C3B1A1870085199354796822877D886D7CA91F08AE252430482B5A29FEB3090F5A1FBB8D4E703C22B963B286F2039EB5652EE3EF2918F5C73CD35567D6635CC6D2C604ACAB6FA47D94CD2C72DE5F4F5BF00109586A551E1D3C78D009BA0460C46CF34C1FE94C038FBECB3C31EA86165102B79C82187DC77DF7D880AB3B9C3FF43DC7C919F16072BD3C2986C1FB46779B751862F6D7E274B3442DE600FA1D871FFB0312D7078704CEBAA48E21C8A912E86A92126FF34CE75B59A03690B3397D6180FF9FF759E5B8DA6EB2FC68D5AAB90F726C968C3CDEDEF9837D45989EBA3716DDCD52B13F1615776B9A4BFFF95A10D23698EA9267CE2A73FF58D5BBE59AFD506670D5066C1D2852964686C6101541846B6646273F7B5613B8788B6C60A3835286A53D283A10A1A86C4B1C71EFB96B7BCE5A4934E223F8D94EEB62A8436661244555F6F27ABAD7DE1E90561DB380F386906D2E7B2EC150C6553645D9635670D211C4154565FBF21AA661D53B9971519649D7AD8B329244147B194CB75341B138088491A406ABA726769A0981F8C922E0F03978BEA8DB1F1F2D07065636FC997E9575BD5F7FEF17EBFFAE56335976CBBCD0EABD7AE9D3B6BE1D0A69146AB3138D0BB6AD38B7DA58214F952673E4D396D4A72944A5DB9581AB1AF83F72EFE64BC52DB58AE6E485C0549A0F14BBF23B78C60519B93310AD007AD22898324A640E4E0F0C30FBFF3CE3B7599819CD8E10CFBBAF02B0C1A9A0CB755EA65F541131B439B6CC3B7B06676763DAB5D8CA3F172A5BBCB67E8160BF95A7D82809A59C3234B257699CE381DC54CF73975E7744D70A9C33D4CD5A7FCFDA5975E0A55333403A42079DC7CCEC9115B97591D6A6D5A375194668AC56D6874FA53D7C046F18DE857D61998BBCD9C8D876036AE015EF40C91BDE95E18DD9FFCE427AFBDF65ADEE36EFAD33FFD53E9E9F0506B506E95E13FF8C10F0E3DF4500B1D013E6A74C5D921E71D45C46D29032CC19F8DD3B9FBC0073EF0DDEF7EF7C20B2F3CFFFCF343900C6325CDA01769B8A7C6EF0CD618E406AA2309AA1B27D28E9F7EFAE952C0A1584941E93A94F8251936B8CB2C456CA9B7E92845F19CD8F53BDFBEB20CE084B4B15663FBAEBEA45EABD42B4517F576F6AC2C8F2CEEEDAB949BB5A85E7535EF13926A96B88D497E248E56B57CF3B37A211E6AD4AB4DB778DB6D5F79E9D5B45479B38946CB0744725875612116F04858044417A695A6A03710309516DA35309CE17DA62C5BA1D60C7E7F0E94A5125155804B59142B9170DD75D7511808558429F861E5F65675B7DDDA9781D348F0535EAE532C5E67D0176148CCC60330A25DE0D2081C80779B6D2E105CC5040D878B468FE61D0294663A4950887AC5A0F3B90EAD83C778481A38885A51ADBF6F6EEC7AEBD5BC4F192A7A10A16AB5DCD1D9DAB8717D3519CFBBB8E16A83BD83CB76DCF9D1DF3EBA78FEE24D1B470606E68C0C8FA79E4E1F00A827E50573178C8D966BB546DE3BB73B7D65CB442E50AB5A1B1D2BAF69241E784EB4E1BC662185D1599AB02586869038480253C3AD79AF2D1CDC5F6F76D96597175E78019C7A8207F81C7573EA2D2C551456689C3DB46DF153111244A7FBCE77BE73C4114710E945B3B014348F2AD5D7FBDA9AB50BE6CFC300943C906550ADD593AC7192C1345A19EA56519225DBDD72CB2D1FFDE8475D00438B3A4C36116C0ED874119005BDAD0D1991528C623CB3FA95A853B444C6C10D37DC70CA29A7B0E0BA156E2B5B6A987ED83BDA6588F3E832D34932F6D44019B9D51FFDD11F3DF8E0835B7BA84C0DC4DA336076BC6A9AA9B9DAACB640BB2F367AD555571D7FFCF1A66184AE4217000BDB8287CA23516E93A64C592B40031336B4CD886CCBF2725B16CA4172E2563041538D77DB6DB7279F7C926C5DD0B3F546548AE6A8B90071A30180DECC528057AC6B066AB55971343F9FEF4F9242DD0399D63D2A75AEE462A9035DC58ED76AE3DBE73B652078CD2F8ACA1DB2FA1B7A9B823344E349E1B5C46D70CD55CEF7E01C6DF94832AF42BE23D7728B962CA65E2F34AAD28AA509ACEFA54B97EEB5D75E92CA560562C0CE2C9AED8EF5FBB59D32E79BD19B599C339C17931656EF12FE5C03239E4F9A49D8150E0D2904C0E086A42A31A9E9BCAF5BFBD2200F38E000ED2C3130B7655F19CA53183F69D3C6030DC035C97A63F0F328B7651FDA3695CABC2266164C2B09E2EE524757215FF292C0FB15EAFE5FAB592CC5A58EFE46ADA3D5E8E8EA1CD4F67BD74A3E1A1E79AD5A1BCBE55DB1233AF8900FDEF5DDEF946B6383FDFD62EBDB2EDEE1D557D6542B8D3DF6D85B7429762CC93A3A52F145B951219F93859810A5F181BEEAC6B1F2A691D17592046250920428E062B69AFFB265CB805D835F840D84DB760BE477CE9E918BDE2C5AB4481C4D2ADB030F3CC05A9B82660AE93DF7DCF3B77FFBB7F8D3709BD83136B3C0BC31B459A75616B3374CEB7659222FDE7F7A6D16F23A83F55983DE7747A7F82443A26F9BC5E4D7CC35C336772DE6673EF3998B2FBE581FBEFBDDEF7EF8E18743C2D0C4016893DA15F2A610CFCE65C976F408B3C3137670B4F3095D857AA8CBC0B3A8D4259FC45C22338C9F7452DDC73707CEDC9BAFFF656067480252FEA1047C08CC4EC3C0AC11C99D7AEAA9D2DC119C612A301C04E30C2279D39BDE44450EAF36378251055CFB84134EB8F5D65B1127932501E61A72DAD012D17FF1E32124CE38E30C895EC06E2D330A996AC0E3D6E7043AB7684A92354D8CB216BBBE45CFF070B70455CECDD27D9ABE32C0AB602ECEF717D60E55177517936A4DDB59A927833DA5A1D14A5741E680C7A8CBA7FF0DB9E825D77CCDB5EA395F718661DBD9DB551E199FD53F581ED54CBC29604624C11EA426D6B35138DBA1F3288660A9711AB9F9C4449F70B09D76DAE9F9E79FE7266C01478C58543C7D0B58A36113DBE4AA9106425D115D94257EACED57D85CC4CC7AA23586A3672AFC1FAAE22C2CB5D39FA44E697D706958811B179BF5CF8165CC18E83AD75A4FAFE287F1434B4AA58F8A141F2A9E107D6EC229C64CDA25413E1237E92E16BA5ACD449A7B2A063C332D945CAB998F5ADD9DA559A5A2ACBF421C79A3A9D11AABD7ABE5CA489CABAF1B7E75DE9C818D9BD648CDC8E56B6363D5D9B3E6AEDF3012BB8EB7BFED1DCFFCEE590F9950E8893CEE53673ED7993AA044C705DFE2351A1B195D3F34BCA6DE1C4E1187E2B4EB930F54885CF6DE7BEF7FFBB77F03C225646D930F6794622B69112DF00B8E26FC4EA4405A9B28407C017B53FF4BE1123B20EF1380493BBA4986DF676C2BCC35E41A9285DBFC487CD56A36777FFBEEBFFD6F3F00E4414F77CFE8D8682E3320FE2092208C64BA2D6B6E6D415C869A4B63EEB62C6678E8E73FFFF90B2FBC10BFBF560F441D931061EA2DE51A8C99FEDA5A70EC1EC0E910AE96C633B3EE46DA2B142FA9BFFFFEFB8B0F6ED58932660AC09C2943C48DF0A15B62928C80B3CF3E9BB1019967796871D086D765A950EF7AD7BB1E79E4912977C772F66CB589A6584F059628CCF4C8051DD5DBC23F5653CDE14DD2B6E42E350874046EBBED36E06C35AA1D76D8418A246571204F18B033AC419FB3591381F414D2A4CBB97EB1456D65EC8B0362DFB9AC352BE74A0537BBA7EFB575C39D69D3020DB3A31949A45453D0949ACBAF73F10A575FEFE9D7A5C0D7CEA727353C6EB158482197EB19E8D7C9D2F034CEFBEEBB2FC4D5102D01938EE3C877A79A54A462AD939019975F7EB936C86531182DC81E7BECF19BDFFC064909980AC1AAE97AFF910A21CAA4F6DBCE9711B3B90AD00CF02B581103044040C2A009A1EDB42C773BB2A4FE502FF35011BED223C8D780DB1010B2D387998B2E8BD72BECB01DB9CCC66432C491F4BF0E955650869BB926D11D3C1CB47F4D96041DD22C5349E0730A53319036EC2EB4AAB5566771A0BB7356AB2931502AE47DDE95B6F695575F59B468FE9AB52B9B2D19E13A6CD5CE8E42AE507DEF9FECF7E0833F7549BEBBBB6FD3A6E139B3E70E0F8F7696FA9A8D2869160BF9AEA20F48E41ACD8A6449BE581B2F6F2A5737F920411E2749EC92B856F74BAF6D5BBEDC43F4803D69819430426007320CAC85FC0B6544FAA66EA8BD17D7BBEEBAEB885C59E6D977BFFBDDC30F3FDC6500962E9004E6CACF0EADE73569D1FCC674C937A37D584647CA80FADFF7BEF7E96CB03B26E4014F7593BC43D3D1CA749CD43259AD4120048D6681E50B7C34A2C24247A65585F131FAD403D1E1DC845FEEAB5FFDEAC9279FCC2250D6A00FCF3AEBACEBAFBF5E8B2C0DCE82F9C61CAD54D88ED37453B3220697A25752F0F1063A0B6997537493D5F45720EE4A6529656BFBEEBBEF638F3DA6F5973C80E3500FA167196F42C9801784D86740514DF95CCBE520DE4B31B3F5724802B46A784DA878BA20DE60C04D1C6CAB8BA4D52DABC787A62402CA4DA3660BEF6BD6C71D779C6486C4E15FFFF55F6BCA5A135F643B36DE6AD472E2DA1206B9B83797EF6825AED99A9D34E7964AA3958A18EA22E71B5B826E2CB361CC35475DB3E6E2AACB6B875647CD6ACEFFC4A55CD827E7D57D3EDEE8C848C1F72074B03022D5946AEA3EE85BA40059770D4D81844E1297E1CE48623C456F79CB5BC46AB547B67D12159865862F446670880A33796BF0DD61B352696C029297085E77438D4B7100BBB008098385B943F48A0823495B459FD3BD3032F0C7EAFE94B89F79E6995FFFFAD7391774DF93361FF688B6E8A6F50EC1DCC9A57528136B44E60037D57B493CE05C2C0293A92A537B8790049A75AB1967177B1C8828D7ACD4EABD5DB3A3A4345AAE6E33B060606070F5EA3549B3249D5DCF5DBB6E75AB559BBD4DCFF0C85A9908B5E6A6EEAEEED1F1D1CE8ECE72D5635F0FF4CAB4A9150B9D91D3CD0BAEA50775797E5A1F1F19198E0BE56A6D54B2245F68E6F2E4CCE56476F4F4960C371FEB38E4296184C038B5F97CB4645A13FD9CEE2261192A258EE090803A60186164E6E243DC9CA2974902F1CFEC29226E7F6EAFBDF6DAE38F3F3E5BCF0912341125614AC0164D10F190F6551E9E3262FC06E204566526C641A70BA00E2EBBECB273CE39477F36B36E5CC4F45AD6FD3C5B4333815D263899B8E130C3CEC21C7F2625EA2261092EC051DF6BAFBD1E7DF4511B21252C3364C5595C01170DB18DAD8D18C352C104742997B4266EBAA1066CDDE70D1F14CB89D5B37475DBA33016156D89091CEE91D58BDA27D25AE8C7D02609DC960828A1FA625B8F5963C57A96E26C8E72A21DD26390FD58F9B680B8A4C45245D8A64B4E80A3E4F2F5B48AD8FBB27271A70C7AF18456B25D67CFF8D868DDD5170DCE1B1D1B19AE8D978AA572AD224565344AC6A2A42643B615355D5416AF8F5A2E3B7C6953CE64A07F6078D41776895BD13FCBD402B3503500CD17487D922CB41D279E78E2CD37DFBCCF3EFB3CFCF0C3DCD0B0701078705EFCB4B0B510051A3DC6AAF926BF74013845669619F804F62E0D368E39E698AF7DED6B56EC4264D81A1DC3A67D6A6614117DD1B738F7FE5028F76C96CE14223FC5A3F5533BF2C823EFBCF34EAC5840C0E844A291A36069ADA8BA2733F00B5FF8C2EDB7DFFED4534F4586A567184C56616FC0C516344EE91EDA6D9704B9285FEA90B6DED96ABAB42F920F1A7B2746325E6F24FD3DB3CAE38D5ACBEDBC64D7254B963EFFFCF27C346BCD9A75B09859B3FA9E79E17FB75D3CFFE5579647B9B2B7AB929A04C0D8F8488A6FAA43D8531EAFF5F40CE4E3DE6AD957098821BBA851AE8CE68BD57AA3D24ACA71AE9EB87AEA1B4D240964315862B28574984B1827B0956DA5B07C5A07CB2E47E3E0E796B0D5F64334053B6F2EB3FADB22C6E9272E6DEFEC7089B854F3D5566DD8B009B1147AAEA88B261B9AB1595BBB4A657CCA2CD2AD95045186CECFD687D00BFA102BC4657E523CD76DC8DBCC919158176FDC5FC69BCCCCD23110CDC978D72A11CE32EEC618243C4E38E1846BAEB9868A4DCAA966A8EDD4B30E3EF8E07FF9977FD17E89955802FED6AE034F4FD28E8362C4E66091E5A7D1A276B1F5FA8A0A2F5233A32D3B4E9BD2678C23EC52192E3B6FCCA14C362D7FA2A685DEA1D001683A41283FAC5E8491187A3CD46B90FD5AD8CF7EF6B396DA6439F86E5274D06C626CB282076D112BCF25291E413E896413F83A81FEBEE1A1A1DEEE9E6F7CE3960F1FF677A5DECECA78D975E4BBCB8DF138CDE710CF9719D0F43D75524E919E85A415BB388A93BAAF2DF29DD764578B783424AD153D7B41CF354C37ABDB00EE45A362553105105729F681AF189534954EF3A52F7D49933589487A0CCD6D7E6F3F703DEB88238EB8F7DE7B6970C6B9B02050C888796288E069AF5077B4FED849D65F7AABE873BA17CE55B066ED8D0B5AB301342295EEBAEBAED39AB0CB80E6CAF8BBE5965BE02AD661AD7D398CD361E0180E3BDFFA3054C56BFAC5622C2B80A66092C191CB759706378D0C2D9CB7B8516FADD9B0BAA7B32B8A5B1E9E28CA61DBFAF84FA55ACCF56CBB78C9EA55EB0AF16CD14A47B1A7AFD747F94A3E9D3ADE75B75D7EF9CB5F8AB7AC1B7D35F63DF2EA122B1D62F68DEA9CC159F95CE7F868B2EB2E6F7BE4B78F75E58A3B2CDDEEA0833EF8D51BCF9F357B60D5AA57655F4A72E878767615ABD55AABE90F0F91250B4586FB84A14A58129E9504782C0858EA878D3B5855BAA17A455BF61AC30B49D9141F8A3D891C4F3DF554590056016FA8CB903EC827D89556EB084B0DE11243003B2ABC7492F91C3C00CCC024EB041B16FAB6D9432E533361E561026BB425C22D3A3BF7C47F8AE2EFB21669B4496965AF304326CC2C02398EFBC02809AEA6B270C30C3845D3BDA2B415E801071CF0E0830F6AFA006523A8F4388D0A2B875585A9192A99A882A5B3DA5DCEA7B5B6875C69ED8433DD0C0217C47BC3FA2CB4AD3016159671C2E5256C4839D3328AE6716761B94FCEED236A42B09D0A76503450DB99E90CEBC652E3A683F2353BDDCDEC36A417DB61592121A9C4D383DDBB2D23F671D0A911DF9A059C58A209DC943462C978664EE59CE1455EAC0BE0A7B0952DFBC0BA3F121F3EFCF0C3EFB9E71E5D2CFE48967088ED3AE5BAE105E13210EE702BE97156824AD4C1051962040EA927479CBBAC358D198EADA0E50E8E2F3AA35831CDEB7F596641A88A8517A0D15AB08DC40A7D62021287873357F9E40DB6EF42E45E4487DF75DFC25AE415E50B929612ED5E12A45D8BE39D96EE3C3434B26EFDBADE9EDE4A65ACDA28177CE1A108C26F49A9D4353252965ADC59E8ABD46B5DF9795ABDFEBE6DBABBFA366E1C4AE9A6B1C79EEF78E4918775E76287EF6F2CAD5F0FAF376A6958B26BC9F63BAD7871D59AD7367677F57676C9DC8A97BFF2ACF87F8AC231AA1BD41BBEB24C3FAFD59A719493007CC73BDE418B2E5B3E92BD58F756D6DA224488C38EB35C3D4335B0450FD7CA6A5675CC442E56C9C236583AB358FFF3CF3FDF069942EABAE80CA663F816E4A1C31A40A9B41F220688597113ABD47759160D30AB764360998D5387839FB282893531445F7341B8344446679568A26F6287C518DACAE838901ECE3E0364FDBBBFFBBBEF7FFFFB760843EF1C4AEED632855CD63B13C83926AB9B2020AFBEFAEAF3CE3B4F6B45D2A4955BCB2E16AF7FD7BBDEF59FFFF99F1A39329BA56E136396E664C5D8E64E41C2594830CEDA856BD3F5D00B2EB8C01087083BE3FDD74EFDEFFFFE2FAAD5873EF4A1471E7964C58A152CBE0875FBEDB77FE69967D6AC5943FA87D679D1A24534E7D143F513DD1332B0A6A43347D419B9A5545ACD9DB929AC3C1B72A580C365186A21AB9DF2FE515036E532C7A615E8B2EF2C0BBDDAB15AA03A082F14AEAFFF658A1A8C9EB837C0AE3A837AA2F69A0711167EDBDBDEF63FFFF33FA1926E891B53DE1F03ABAD6E834ED4DB6DB7DDFBDFFFFEBBEEBA0B8B997225B8AA4902432B71291E49887AE2B2F644803F1E78E081F7DD771FE53B6F00A728C9B0D15CC6B40D10C8A5813A4AA3E112E42F98E6619E6D174407A795046649F1BFB9DA25095A89883B2A147312EDCD86078E485AD165975C75F5557F3F3E5E2E164B23A343E2B8B5E6784F57D7A878B4F39EF162A1E4AD895AD24CE29ECEBEF172B2DDA225AFBEBA66A06F7621AF81D650D02A9571B1F279F37418D6556B633DBD9D1B37ADD5CF67CFE99365393E5EEB2CF5AE58B9FC4B575C71FA599F5D387FEEAAD52FEAFE9DA552B9322631A02BBDF3B5A9716E16956DFD765CE68204585FAC216CDB0235B36A52E240C3076F07519F4AB592B51E0CBD4FE63C81CA710485B63C0131733A9922008215FEFA8F7DEC63DFFDEE77A5B74A78D8A99E376F1E190BA645927BA7A7DC7FFFFD071D7490DE876073E87A20F14E197735CFA965BFD949D68792A08F3FFE38DE4F0C0E8D7CEFBDF77EECB1C7ACF1611494B986B70D6FA8D1EAA858FA9A1644D76BCC3A54C71C73CC57BEF2152BCADBAA63E0B6ECE5841217A508F53E057E60402C75B7DD76D38A69A9B517D621009F27228DA818E16E2D3BDC16DEDDCA5A8E4033E63F313DCB0053ED2C85E520FC044D9940285B239E4E72B739E82D2B01A68CF580FA0F27456DB4CE97C82A2B4E9E81832401BA004257178B8C759F952B57D27CE990430EB9E1861BC8918B325C1AF2DF5E4F9D8A85B518150CC5A82E5C730B9FD0AD01171016F61BAB8389B6EC5B69B177F0578873D8892318865D85EB69060984B5A46F0938EB7F825EEC38A94AF40532F729112FA2AFBA9EBAAB24002B2496A0976E88BE02B20B3D4E6696B833AC035484B0C19306796B7822EC77BEF39D4F3EF9A4E64BB127F808F8308F3CF2C83BEEB843176316FC1E9BA0954142B637A24AF289133774C50E2F572509B4C8B20CF271B1A7A76F6C54F49AABD62BBAA6B7BB73646CD845CD74513CF88F844447B16B6CB43A67CEDC35EB36F6750F0C8F8D75C4BDF3E72DD26D9BCD543375858E8ECEAE4EDF72A4522D77754BD28EC7B9D6F0D82BBAFF86A10D85B83067CEACD7D6BC2AD9B071A357D06AF55A7F7F6F8A2FAFE347A77217FA529096508941EBE80D986B0F3DF41016B719B31C693108AD947437DD1049400814975F2EEB2C0A5B812CC28C5B97E511592CA10D2ECA8EBD59FA544BEA889A0C301E6469EF6D9F138045B13DF3CC33415C30FF0F2498642F17E8ECE6DC844693AC09AA213FC35BD17CF93981A656065F6A2E9724788594AAD538F1C4136FB9E51656CC6DE97E71994F93F579038E0294713C033AAB66F67274E93D67AD0D193066BE316ECE0F8013E6E4316DD73009E2AC65104114FC452E9340047EF13C706A7822CC42D24E86022EFBB6C6F76C2BC04DC41BF55B0D5B5AA7FED41448FAD665CC6BF7DD7727AD39CA10B96766D32E134BE684E438E84F0A0009AE72BA411980575A3DF3EFE550A1F380424BFD848633F068AC46EBBF76F1C5179F7BEEB92077F1DCADDD77F32E5AEED6C2850B2FBCF0C2E38E3B8E35D7829F74D249F88848F3C57EC5E183277686DE7C040BADC4E7D0430F952D6B6AF144AD4F1AFA32BF319A81791A5CD01DD3D40263D3BA9260062E2C34D419FA75CFB0BF3081364C0E0BBCC3B22C50872B1B7168D591E1264E2B092C9F2FC4FDF00E815A229B40C75F92C0AB0F4D9D9362B391F474F58C8E8FCF1A98333C34DA486A83FDFD1B87D6A548709E500A45AD82CF29EEEF1F1C1A1A957DA07FBABEC78398D6251E5ACD7CA559DF71DB9D46865A7DBD83E5B49CD0AB33B9664F6F616C7CA3CBAFA5A6A6B3AB63EDFAD55D9DC5F1F288543A6F828C0CA129A795E2AD6A750233B93B7D91C61766C1BB80B122EDACDEDD657932540CA0BF8BD7BFF7BDEFFDD5AF7E25E98A91AB55D66DC3DC535A7159E64033E8A86EF0B994F60173AD9F13B0353FB5D561F12B33AECD3785BF1E17B61E217AD5C0C6D217BF62A76C8F3578129CA794042ECB50B43824AA8A16E1AD6F7DEBD1471F7DEAA9A71ACFC2EC0DD1B6ED3D1E4F5C2BA183458307C680A25997A65E686058639C13A3E3371049238152EC1295D6F68229E0AE254A1405F516D0094926566C699690E98F56A865A2D7FAEB86765E2809AC509CDA7D332EC16A254C42C84D770041333416ADA049BBA6CB60FDA87BF8F7C8B3B2840ECE663C63DF5A7A0E1A396935FEEAAFFEEA9E7BEEE1D1181C5A90C30E3BECA69B6E32D0B7FFA32410E76579C3802DC637BE14764A3FA1DC693AFC9F19F6DD64AA9E489A007612D11797A9472E8BDE9305676DABF5619CB68B98F2FE26695C605BC759E70FD904D2D2AC0E5FF3322D012D4A84F7C20B2F109017B57FE8431FFAA77FFA276BF14D5504F737BB70E60ACAE95E0C0CD50A1FB2C5C3DA1C5FB011AEA7FA876C5D6681793453C43874A59917CCE2049A7E2A091A690F8062DA07C6CDDB66DEA64DC3D57A5D7A7533A9C7510AF9D06CA44C2D5FF5ED185D6F4F7FA5DCA8A6779E337BCEBAF5EBE8B1D172D1D2EDDEB472E5EAA459EAEF9B3332D4E8EE9AE5DD7F95E1BE81DCA6A1B55161C3C8D848970F3B8FCA309935BB7FFDFAB5713CC1D353787A9D6A1700AF6FF6E9C7194283A57918C3B2362956D8096B336A0801060C83C105DDC138AE16D4856EACD3BD6D068B2952A0DAE5B1C71EA38C9607C18330D6C09B25658D7D225101C44D5475941A4E3BCA08DE121EAAA3A84941166CFF0CDE21537FA20CE98C0B202F1467124C25084579F409007A17743397412984D40C0493310222E7125D9FFBDCE74E3FFD74DD87589926A559EBCAADE508515A1BA59BE84132D8CDCF60414B0DFBE4934FBEF6DA6BA98D00C5364C27437B32005AF3257272906A614D83754343AB08CB2DAD7B8F2D2CE958707048E88C33CED06042703DB23C5DD039804C15988EE6256166D627F0449A17C7D052B3A693A006C9E9B2980D62CF9A628A6E49DF749979FA07F10E69AFA962231B5B9F5B7340607DF589762DF4646ED5BE5B7829F40E8510B0BAF32BAFBCA29173B4A971A1E08B4A02EB6534DD0BD31F9726BA8E15A9988A0DFD6885A9C06560BAF9BEFBEEFB1FFFF11F781DC064C47D04B9F239DD056CE92CDD6EABD601F703C6849D598B075026C2F8B5E320E210E822B3488F937176C105175861CAB49280DDC5C4B0F3ECD722576A3435EE56A1187B6C518FEBE025C1C5175D74D18517D79BCDAE52D7B8EF77EF6BC04A9DF9A1E171DFC82817953A8B95724DA7A6B7B77F7464BC56AF6DBBEDA2975FF62DE0F549E4F27FF58183EEF9C1FF17C5AD38EA8C5ABDA5E2A0D7CDEBC34934DA4ACA1DA5B87FA0F785E5CF69D8F3E66D634722CE79E5D41B161D05AC016660AE0094B8D0CFCB1C0D1BC042C1E48A99C3D7C04F5CE0EB64E14C5B1447DB73CF3D7562A50471E6930CB0D332FFA2ACCDA11D5A32BBD11F69AA4E6B4C5415D3FBE0411CE9308CCCD87492713DEB3E21108A41A66843BEF0852F589A699B3C98928368A8A266C81735D662BC96D7E8B2A88625F9B94938771834A863B85C5D2653697819363F09B1D5B6EA2498B20623B06E360C555B03AF310D9A011868041EDBB00260321436FA9A190DE0DC5106654B0D7B2567E9BCF3CEBBF0C20B91D3A88D7887496F65FDE9BD8EA31F160FD958665A3806462B6129DE7AC925979C75D6593BEFBCF333CF3C63888A33F8BB2959B090064D345D8A0E1B7601A250CEE204FFC788B125B420A7CD4AFBC4273E71DB6DB79181469A0382706B43444900B884DD2FD5C79C212EE8CF9C4B3B869A90F0585EB36611F983754C797F2BAAC0CBF7E52F7FF9CC33CFC472A51B92C132BACC0FE9B244320D83A210BDD1361162C482970274D555570104FB9EF7BC47D2423FD183305EDF9877C8740E9036CC2FD2A65499CC08731A0977E3EB6613678A13E8EAFDF6DBEF81071E40EAE218495AB97AA3EAD1F08BA2F5B4883C950411485EFE31B1F798E6E34A7534F2B8E91D694FA5566F6FF7C848EAC61DD846AC40AAD5F0C8A6C1C1DE4A755C7C5CBFEA2CF5942BF542B15CAFE53B8BDBB85677CAE86BA395358383A556B370C8211FFAF6B76FF36D0D62525F52401EDF6F40F678A5BFAF777878441B44D20BEE144B56831DA01A901E60E998A147CFCE80A5C1415596CA69DFDACE71560D1197930057D2A2B532CC4E2B3D255F280A0A475D86510A500C014C97A5F1B17912E0975E7A29EF930C92C504C3443FCBD4560544884E8D679F7DF665975DE6A6CA22B5BCF5380082B7C2C5D01FC872692577DB6DB7A79E7ACA56D20E809BCA26901CD229D23961CCE43B611173FF7CD64D1A79B3B592C080DEB81BC5962E8B7F98CB8EE47A97F9B810BD5623C28253B6CADC116F28E996686B2898D2A1B411A10A1F6505775106286264C3CAD8B1846B9817880B4C17614F71FA9172861F89380A7FBAACD78D21C4CC6013C0822DCEECB246BE38BEF0D493D400FE6ED80BC168F20D6491E22CB281F12DE190B06DB8CB9480ADDD7776306CBAE232931ABB938582A8AC4D88097B764167B62DE732E4B096FDEC02AF9D0BB2A269883401E199F2166B344D169C05693465F23BAC8BB20B305DC2F6186F6C1DA007291F1233871F7EF83FFCC33F18BD19A4A0CB7CE3D68924AC3D341614D959B29204AC665EBE41EEDAB596098390775BC61B8D7ACC520B436A9C2E2D9F4106327F6A3891A8265A3506DCCA2CBA3E174FD4B66101B82D7BB0598EA395F0585E8D3ED14DF42B1E6A13365F10BA8984DCFEFBEFCF42589101AE0F83930D750D721220BBBC4BE1A846475ADE4ECA77F7F69089689CD10589E72EA82442D90F0B4F5813940ECB5C9E7CF0A200B502EA413787A44E3EF964207760E230C1638F3DF6EB5FFF3A77E027D69C8B28023249CAA6AC07B355591C2B393CEDB4D3BEF6B5AF1105B1F401CB0222F2195623BA19FBBE5A16A0C176C286689370C619676830A23A6D682B8345823CF84958313FDD2B492139B51D96268FCE05E7354307659CE311E28BB4559684D950E66CD1C43548AD701B80BE2569A0EF9B880506A30D493B843339E8A083448DC71F7FFC35D75C8327D6BA0860E093B618660D18F198B5D736CE9078EC3D4F27CAA245B673CAB78635695508B404B03401CB360E232B2E886FB102610B23CE0ECFB5C474CBD06BA3F038C08AC793667445DE874DB04DF9888292BD68522ABCE904960339832DE502DFA92504C2C4CCBEB45831B7323C1FABD773997F55FA900C02C3200A0B0B004C4409C08565B464092C33F41560B57570C42439230CD24C4C93D0A8B36DA1500B9C4CAC15294700AD58F2931EBCFDF6DBBFF8E28B5482E834C243916C0683154A02180755309671840188A20A7E2CDD628DC8708CEA59B2166FBDF5569990F02CA2704956858195876736242F8B71593191C18161195816ACC4891E94E61795AC5D252FC3C7C7BF6C1C902C431A6783D0A23D66F3FC5AD73D351C71C411F7FDE847AFAD792D9F3E854CF0192401A66B280938215A191C448813DB0B37C9F1E23203565A008E0838A935470B73D7647BEAB4B3F2D43459B882C815A5F3200D5038264204B7D2C2210B172EC41C06F18D7C644B54C7E1830E612279064900929D75FD846A5D5A68C6D6C320F42073AA6A6020D7B3382EC51D030972F20B0B06A3BBADFB905606AF2E9DCDF5742BFD0FABC92098B62C5B634028D122A7A38E3A4A0F92164691368BA34FE86F2A8AD565E015EA435D4F3F4B97E51D9AE1C200503800D1E49CB7B989D0E98C718729D1211F445F4196584C224C7BD557C830481D740DD6C1F891DE9F7FFEF9975F7EB9655599956CF81FE6F631F54B9BA2036264136549EBB4FF8CB242BCD696BD4F5C00C3D7F6B2BA7100F335664C7936A2B5259AA4BD6F93041442E14BB4E4FAC961557B997F386C4E875B18233E09403E780FCF318792CE23CE4FC43C2146838CCE656DAE2D88A8EB111E22FE2BAFBCF2D4534F35ED244CD068AB3D84C142B1F49541C8111B3017B1F9668DC8D100347E99F83AD786CD1CB9008DC8E4BC66FEC77FFCC73FFEF18FEDC3F7BEF7BDBFFDED6F3FFDE94F8B019994B6EA35B30DCD4402EC141B9C788B157C5E7FFDF5679F7DB648FFC9279FB48999DF404F3CE9A4932EBDF452288C25A3D01CC1D8DCB2858EED99CB3C9B6F79CB5B9E7EFA696A6EC12B37F840CBC15FB66C19B2E7631FFB1873FCEA57BF7AE699671ABC01075E8FD09BA38F3E5A638615324DAF604A37ECF466FB41071FFCE8A38F3EFBFC73D05958B2DB46D69B0DB174A1808CE7A8BCFBDDEFFEE94F7F8A3A6025215352BC59E5A1EB8355B29435729F427F5798900E9BC66C1295E80E7AFF99CF7CE6BAEBAEB32A18032E360421242E875F671E1F055E1DCB08449141DECCECBF36A5583B2E36B1DD76DB893A4D11D64D4469B7DD761B490EDABEE79E7B4E3FDC61871D44BBA07FCF707FF1DF430F3DF4873FFCA1EE8CB0D1763FF1C4135AD87DF7DDF79FFFF99F398421266518C46BB3F1DB24014C9FDA08ACAB1017DE65262FF93376B24E39E5941B6FBC916C6EDB8B36740ACB48210B45C3A36D16B9EA56D40A3F7559D981C909D3FE747F9C87080397155486F9CD2E30C451548DCCC867BDE9A69B2EBAE8A2C30E3B4C5431A52470411E840E9A1690F8B3189F7E6E84644612F954930D62ABC5758113230A7A8B1A84325D2167C85A9E521258E41F268887038B6D4AFAC16A2703D55283D8325374E0189C11B194BDF6DAEB17BFF80501E1B00593E810896B8C5B6716F10CFD2F5DBA54E3A1A4C6B0CD93ACC8D93CDB53F61570414359B87992D59AC19F0D228100320A9FD5C06B6DB19B37274A512765597DE652A75010ED9EEC668B20A1D059D08F61A13EB8AC0CEA7DEF7B9F581B8030BA0C6C58FD10EB0922B6647F24AD91A935F0D3FFBA5ED74004E1961B1D50AB4D391FFC88C3898B831478EBEB8BFA0F0523C9C3968438FAAD74D60C3D3297AD9260224DA8D851AD55172E58B86EC3864AB5D29D8968F6AF8D4C8D285D96FC40741AAFB4E4E239E79C831F80B34186C374146F5E8528054CD7CA9029A415606B93ACA9007531FA137B4E1B74EEB9E75E72C925E692B69A356B53634864A818187068D0C8065DFFE10F7F589C025BCD0412BA8F652E4EC7A9D18074730D4FD79B73C965990F6800F409D05A7DFCE31FFFFAD7BF4EBCCB05AEC5E9743AB43F032B7699BB0CD730DE4E2D05AD22496AD2E30CA21956D566D2859220C9C03C0C4200A5812DD39D350B92A6A467D0F210D165B51A14A01A33324D5CBFC5DE820BA0CC5A2F1A710D517268ACC0B2DBBC192E6868635C3BCA50F3D04989E502A181CFBD91F506B7323AFC72F4B1B1D62EB8A1EC6E18AF885206F0CD6F7E53AA95CBF238CD21FCD6B7BE5592D8866AE07A2161230388C6E32A60FA7BEEB9E7C1071F2CA2D57B04CC94E76206EF90814C9873D8C0C3A7D424426C660B22A2882C5FBE9C59E3A5E0ACE9136ADD3141F4C6F775181F7FD39BDEA459839FAA3F9185704E312291F7F1C71F2F7507838C479800B0383CF43CB9AF002A978582409270594CD40C2F6DB134E377BEF39D77DC71C77EFBEDF7E0830F1A048576EAED6F7FFB19679C614EBFCD692161DC328C0DC0E01009644C62BF4C96AB5608031158FB9710D24EABA0D15085087FD1575A4ADD0D77709265CDC323B47FFA1550B471D0D4257472194D68D8DA06E88FA3222EA60329531735ED231FF9C8FDF7DFAF67BDFFFDEFBFF7DE7B5D1A79D3AFC4DA4E38E1040E037E402B17824FE98D317ABF61E5F240BFB758CBB56A2ECE355A4D50620C7DA1CD83C9688BE94BEFCDF9833587F9621A9C0483ACA2C9DE21B699EA4DF3985B6E125E6F2B3089B35E7AE862541851726CDBC1692145CAFAF0507C672E4BF46582462018C3294E3FFDF46BAFBDD6A55D322CE0CCC123CB62BA93163A43753D2177BB20AC20C5D76171239C03A63D4D777FBC8E68EE28D7A650BBCCFCC7214E2E078623E787450B61C5DA2401DE271718796DF04A2ECB43B7C40CCD823E0A4B962C11655A94C205E159EE6FB17473555903351D5A59B1B874C262E6D0F7D816910AE910CA414F84C38AE48E3AEAA89B6FBE197037EB7CE9B24008B6A9155DBB2DE304B6C5211281D9EE4C1C0FADCEBBC4D8C30F3F1C46985D16DE982E2A431E8E7414236F54A5D0E67E9D92202CD1704122DC74F4631B4AD60D0BAE9B68FB649B126CB0CCBA30834ED7CBF8FBF6B7BF8D2716572A7242DA4F5BC778046DDA86AB03629B5212209926F715B07E6A40214939FBD18F7EA4C5874260352E45BC30FD49CA8AFEC460D51375E800799DD856689AB68B61BF1AD2EA397B30C728AB88838FB4E923F4BB609FCC11069B138BD1F8F489466FEAA74B7D35FBECB3CF9FFCC99F88F1D9294539C2BCD0DD24879F7FFEF92F7EF18B5FFAD297107493B3E3A32CB51C23481CEA861B6E902AF1B39FFD8CD991BA60A2C2E27BCB962D9389100A76364CC2F3D1471FC5128CB3FE4436EC8928B4F369FE9B8636CD9BBFC0DB13D58A45CC424A0D092EC932ED5CE667842B51AE42DA3E2A1890E86EAAEC4CE6CE2C684CC8525B410301315C344853DC9D6C2EC71B6E4B4227A5401E1E7CED5ACBB5D0575EC6A5F000B051BD39E49043EEB9E71EBC2228B99081862D6EAE0FFFE66FFEE67BDFFB9E4577A73C69B892445444BAF4A76EFBC0030FE83E9AB221D10313CD5A895B8942F4393A1D690533E0B490564197F666D65A87A80F60CBA18FD1CE092639FA4DC86EDA24013905864C950B3AAF81A9A9A7845DB7F4D511471C71F7DD775B88CB5A58877DCF2D038A0C3D03E0E404E131D7C2DA1393ACF5A00DCC6AC58DABDAC48DD84C2272C061131076D82C9E97E57AB67987C29537E1A743A1AD31578334CDABAEBACA2E236CC30A873E7A44859B2A5460A3A27E4ADFEAFEE8DA53C6CFA6F30E35B3B6B52EB5C3C2C4E82989074916E62671283454824C24768721040BE9932B68969C4BDD09E4DDE9DCC948B2F211931C9889166B99EC1D6A6DD935DDFC8D96C88E61277940620B01156E8B3A82FF96D45844087763EF6C1D3C0FD52E4ADC3DF5D453CC9385D3EA8BDF599D3A8408878A32B802976970C69DDB909ED869B43917641A1050C2F380EB19EE6F88D056BCC371B28C286B9360D7186A20D7301E8B4692FFE332645A98BB9600E02743DF6DA64D7FC8FB248D0F130FEDC6B6D380097D35D34B2F75143D3B7B65950F5D26590A13076632A58688602C4E57FAD29A6BD6FAAD183474201D4A52D9F4A6362B98A0B4196DFA4436E637BEF10D2B60094B07B88638BFB99571911D7DF4D1B7DF7E3B7BAD15B08C207B03CE2DCE1F6430D9F40CC362C550154FDC75D75D3DD0799A4A3103B668E8D97401A41A4F4756857D3125A834605466582146F19437373FAFB520E554875834B05A3BF6BBECB2CBD34F3F6DE5931CB6E9E204D6C72D0CC3E88640DE4BA8FFD99FFDD9F7BFFF7D5224EEBCF3CEE38E3B0E6763B265BA8EDDD6188A95928404930B7A1487B46466CD94EA2D1CD0028116C3832FE8E794CDDF76DB6D21F62293B2E89AA1A82659FD799216CA311273DC53A9608D2E346BED9776102FAB9E287A139342968415795180E36B2E533B3850B895C54A15B8EBAEBB4C3998AC694D270976DE7967D1A4A1B39952F87B2581A802DF4E5B8A79486950FE8E3BEEB87CF972CBCD25484BF4851C65ADC95FFEE55FFEEBBFFE6B92E5B382862B45FE1FFFF11F0D7E71CA88B145AD9A5BF61520CD44FCFDF0C30FBFF5D65B0DBC56B3C37B894263A25D5CE2BEFBEEC349852F57DB07596E8E18EBC1DA3CED163100CE4FD8032F0C0587896BD0479421911198E200A3E09826AE496A5656B264FA0B0F323D14D3860958F1083A97994BB68BFCAFCF3FF9C94F7EEB5BDFA2AA08E33D09E0DD31110C77080322AC17334C50E2D58C415ACCFEFBEF7FE38D376A41885B1247D1442EBAE8A2B3CF3E3B977815A395B4162C5CF4EACA57932C8560BA88B11DD15CD680D4D8229CD1D2D2F512419C77DE7916316EF35CBB2CC06ED978C6DDD805175460DA61836B5B16636ECB36E8D6F5C932E1A0049721B6221D4DD136BF996985612AB0A90B935FE6C4B428B7419F1A30B286A44302882C54075BB1423F37A377C86D59F2C3E7323D7FFDEB5F8BCD49A858F61E8A8E4EE9CF7FFE73EC0C53E4A79304499634850719C2B063A2DF6A90325FF6D8630F494DC3873031E3B6C4B47081F26408B5A89956F5C287D01E20D56184C065DA58E8CE6A533BC2F1BB402133C52B6C3667DB84872ACAB2395DE06B62F0A6FA308BB3CE3AEB8A2BAEE02CBB5465C1BCB3160E86D2413E61086B1107C0B4EC82399DD0678D8DA0A94CB69543020825C1B9E79EABD344F759AB018CB356E4935FA6DD1F78E081F7DE7B2F0CC1FCAEE47184D11A97B94F5D60EFA2E8D80EB6B22E6696BC870F56C78D0825E771CA2C52C25193FB0AE87FE21637DD7493D891A1526AB466315876A5FE3740401758481603DF2C0C4C93B2E5A0CC9AB8539C755FB2A0B1E91766E9A00F92BAA063FCED6F7F1B1FBDC1CE40D304A8094D73961868188F9A7287C23A17B38E295A21EBC37E0EC00BAA07A7EB3BDFF98E44221E0397C61EC82B95EA2DB92AFE08767933EB10124D95943D99E384046D53D0E7CB962DDB7DF7DD7FF8C31F5A5CDA6509739C2B3E34BF21EA550A9AE44CF365D1E002D234A5358B539348673942E49813CD16499D76DA69A27B6E9ECFFA50B65E0756A50BC0F4BFF4A52F49D481A166126526CC4B97C4A9F15715BF4B5501EF82488FEBC0A0CF2E154D964A13690FDEE55A6B94BABB2B6956866779D5CDED01421916266E3300F2B2AC343F3CCC61401E7E71FDF5D77FF4A31FB5DA639CF89FFDEC673535A4BE79BD30CE344EC224A6CD843AAF9D1F58800136989F21348527AF731B4559AC4B1ACCCD37DF6CE5DC3CC8C4A1019DB6FDD03EB78059087FE432C42DC97283BBC1F960092424D102516918AE2EC8DF430E61107367626CD2A82EBEF862837DB69476F35458E6C557BEF2159122868E853A43991AD627DBA9674F2542C4856501A053E3D3237FC1CC418355204F019662AD112CCE84E7A4CD7408D5A33061814498E9504F184078D2A3ACAE8293AB6FB1CB2DA9019AC7E5687E3C5D23A5E497BFFCA5A9C5E61A32F07033CD0D3AD36209966833B3266485AE98957CC59A7FE0031FF8D18F7EA4C98A06C2CE4E9105BEF89958183611933104349304F6488BFC98DE6A1510886E780D1E67C667AA93732E995E6B9E6186AC7EF8AAA42FB3245C801CC9DAE1D1D2D8B4435658B878F1E277BFFBDD0F3DF410A96F22741D0CAB1D7D3D9200A5187B9948A395046B9A7A283A26EA33B536064FE432E96D6871BAD509279C20814FF194AEC15760D51F24C3B8ACBDA295CB5AFF3C3D82F418D3435DA0ADBC7E4960F91E06238CAB6DBA7D71715A612773A1AFCFFBB8D29A863E6F7F8C80EA1E7610F427A7D6E8ECE991402BA44A43AB311191E359ACA7CB605CCD2B6DAA89F9FAC9AD9A4C21162FC1A205F482BB99FA12A73D114911D6055A34DAFB916CFEF9CF7F5EE6B618DF76DB6D474404394DB703B2AAD0B819F9CC35D2D34902DD5CB6C89D77DEA9F7867B111E8130F0DBC637DB2441DB7BAC4CAAD2CCBF6C6825F82E0E3DF4D09FFCE4277AEEB6DB6E2BBD72C99225BA52EB60C0FAFA5F3A81F83E49105A2B8A7EC4C5B432CF3EFB2CB995B063CE026409799B41603D50A349999D2E000733C30293C20A4251EC50080CC03997356DC620E39461DACA923EFDF4D34D677253C587210010E02D03C73CCF33788DCC82B1ADC44DC71ADA95585A6D9D2D3850F8F476D965172DA025D7A22293127AFEF9E75F7DF5D5F8792EBBECB2934E3AA9EDB9B656D36966E4861E74D041FFFEEFFF7EC00107DC7EFBEDD2D19F7CF2499C1F483E4A5EF6DE7BEFC71F7F9CE882BFBFA9F9C8C9FDF7DF5F9632064B9BA7350CBE859681C903DE9371C4218C82BA06975985FA5C17D0B2B58DE74E595E1BBE4C77081D8B50AAB5887341A20E0100B4722BCD40C124971C0C51ACF5B620E1CCC200876023EB5C1A05B02DB82664B27DF9CB5FD6D32500C23C2833757959E5A41810C810C479B45640194B5AE80E9AC21D77DC71D4514711B124F615F69C226B9613A8A7608A4D7EDC949220F4595174261ABAFBEEBB433A9E41128803EDF5CE778AB887366D9A3D67CEB1C71E7BCD35D768FDC84615057574F82E72DA312F9E9389DE49B954956E785CC2188E6F7E644816598EFB02B39A434B2E3F7CC138A0D988B8B3659649E7B2FA41F38798670C7A461E4B824A0C58F5BF9DBDD0203010371E2DD679F0C107EBFD75D75D4782F574A4329D24D0DD76DA69A7E79E7B0EEF28E29F686A2815A6930461DE811D1974A328CB033CE6986324D276DC71479D766B88C49586D6692E29944D485A5C4993020391DD31E35E5F69D6C0459893CA160AD2856B5B0C1CB3156086D0C916EAE976071B24FC34CEF0B5B4831AF333CF3CC3D4306BD85F701BB9DE5896CB5245AC4B55123409D79FE295E283747932AE126DD977BA6D1F275FA3478878407805B443040F03D4E7AFBCF28AA189E0784715666510D8065B8B7DAF37565E10A790763AFB38E1B1F2C9D89E814F86364158C3648D57AD409A5AD4CD3681CB72F5B0C524AFB4DC966C60AE67D8442809428EECD222495B5612DB91E758BEDCDC5CCFA8CCA17FC95CE4D3CD30F420B94042A217E01E41B762C0A80C2C3DC93F2ECBE7C364B606069624176D9986E1A6816933498084B7C13342DC7F2E08EB9983488472C515577CFCE31FA784D820D25CE096653044C9F4A755AE87ED32E20C23D7B20C4965B3601A5E38D4E19939949D43FC3F21160241177CBB333493E9EEED19D5614BDB3497328C33AF48D66A7DA97AE2B2428189A86316A749703636A6586193041A1B455B61A14D92A672E27360D8A6A1DB657BEEB9E7638F3D86AE475E998422A4680DCE5852CC32DDF0D39FFEB46C321C6B345ED6B760FE80C681A981DD00403A1B1176F4DC2A49E0B2E44E3325CD533AD97FE2B6F4A598E40E9982F985C3FC3ADD590625FDD1E02C96B68B3BC8E2FC486E2C7B9C0100ECA0BD61129116C5A9B183893D4AEA2455265A9370893889611981AD89CB127F0D08811500B8DB8A284506C71D77DCCD37DF6CF33DF7DC7365B5582C138D5B3B2845049002B386C3B0B965B820FEAD4785E508FC5E9F44B895BCC75E9F2CCC78AF45D39A1BFBB6E41FF3E6137C25D8AEB9882D1027472921E72DEC7C80BBCFE05127BFD81D03F542EB3587B946ABC5B4B5DD4212184E4538BD5CD081CB60DAC2B06DB8C449D047093A231601C76734C8220EAA2589C7197045DB3DA7DC09F399429A2EF329B73288472B3CA1ECDB7A0FE0C2C30C3739A915D1F5D6F54267203C69C6C7A75B6E08C848D9C66F19811C06B012A13CFD2FE2336C06BB15B6308CE9A28B2EFAE217BFA8F75A798B3E19FC8E464B1534E104C3A581C1A1E859FF0A5D637EB9192481CB74492BFE94427DCA29A78833BAA08E74DA7D7149B1A3E3D24B2FA50389EEBBCDDCB96B5346D393B57082174FC8308DBCBB7B3CB514BDD65F6F589BCC36491F0575186DC53EE889D61C8684167350B4D59C4BF7111F3498687D250E72FAE9A71B0B08F3A4C56E241B2EBEF86297A551324D7D280A09FB595A5A9DCB42085B2509809720C61812038A7928DE5C80EB6507818987DE8CB60DC2797DE79D777EE8431F7219F0910B3AEBB6E1AE47299A77D851E3CD6F7EF3934F3E892B06DB5A275AEB6029CB1C25D48E0B2EB8E0C61B6F94BED586AAD6D625913365069C9D2033B9C25C1D7DC81CF52CD95EA79D761AA769E79D77D6AD34363B1DA273A494C10AB954FFB06413B342F0139AF267FA789C01B44D6BFB06C2C0E8D0A2110C7EE1C2855A64F1D9C58B179F73CE39DFF9CE777EF5AB5F210F7478F544094BD3F970FC5A313F1C4CCC417A3A6BAEF7D64C4616CCFDF7DF4FAE4A9B2E3FE520F10A80D5614718C16F3583869BC90FFF7F1A8323CA70A77C930000000049454E44AE426082</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">0</prop><prop prop-type="Order">20</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">0</prop><prop prop-type="Open">{</prop><prop prop-type="Close">}</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:SplashImage.Transparent" resname="O:SplashForm.O:SplashImage.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033497963</prop><prop prop-type="Status">6</prop><prop prop-type="Order">21</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Left" resname="O:SplashForm.O:v.Left"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167245</prop><prop prop-type="Status">6</prop><prop prop-type="Order">22</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Top" resname="O:SplashForm.O:v.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">23</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Width" resname="O:SplashForm.O:v.Width"> |
<source>236</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">24</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Height" resname="O:SplashForm.O:v.Height"> |
<source>48</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">25</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Caption" resname="O:SplashForm.O:v.Caption"> |
<source>'SpaceMission'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">1</prop><prop prop-type="Order">26</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Font.Charset" resname="O:SplashForm.O:v.Font.Charset"> |
<source>ANSI_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">27</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Font.Color" resname="O:SplashForm.O:v.Font.Color"> |
<source>clLime</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">28</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Font.Height" resname="O:SplashForm.O:v.Font.Height"> |
<source>48</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">29</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Font.Name" resname="O:SplashForm.O:v.Font.Name"> |
<source>'Arial Unicode MS'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">30</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.Font.Style" resname="O:SplashForm.O:v.Font.Style"> |
<source>[fsBold]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">31</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:v.ParentFont" resname="O:SplashForm.O:v.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">32</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Left" resname="O:SplashForm.O:Label1.Left"> |
<source>88</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">33</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Top" resname="O:SplashForm.O:Label1.Top"> |
<source>54</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">34</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Width" resname="O:SplashForm.O:Label1.Width"> |
<source>130</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">35</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Height" resname="O:SplashForm.O:Label1.Height"> |
<source>26</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167361</prop><prop prop-type="Status">6</prop><prop prop-type="Order">36</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Caption" resname="O:SplashForm.O:Label1.Caption"> |
<source>'Level-Editor'</source> |
<target>'Level Editor'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167477</prop><prop prop-type="Status">1</prop><prop prop-type="Order">37</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Charset" resname="O:SplashForm.O:Label1.Font.Charset"> |
<source>ANSI_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167477</prop><prop prop-type="Status">6</prop><prop prop-type="Order">38</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Color" resname="O:SplashForm.O:Label1.Font.Color"> |
<source>clAqua</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167477</prop><prop prop-type="Status">6</prop><prop prop-type="Order">39</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Height" resname="O:SplashForm.O:Label1.Font.Height"> |
<source>-22</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167477</prop><prop prop-type="Status">6</prop><prop prop-type="Order">40</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Name" resname="O:SplashForm.O:Label1.Font.Name"> |
<source>'Arial Rounded MT Bold'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167477</prop><prop prop-type="Status">6</prop><prop prop-type="Order">41</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.Font.Style" resname="O:SplashForm.O:Label1.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167477</prop><prop prop-type="Status">1</prop><prop prop-type="Order">42</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SplashForm.O:Label1.ParentFont" resname="O:SplashForm.O:Label1.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45408.4303167477</prop><prop prop-type="Status">6</prop><prop prop-type="Order">43</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/SpaceMission_DRC.rcn |
---|
0,0 → 1,4067 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="C:\SVN\SpaceMission\SpaceMission.drc" source-language="de-DE" target-language="en-US" datatype="cpp" tool="ETM v10.0" ts="C:\SVN\SpaceMission\SpaceMission.drc"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4429398148</prop> |
<prop prop-type="OrigDateTime">45408.4429398148</prop> |
<prop prop-type="XlatDateTime">45408.409537037</prop> |
<prop prop-type="Translated">515</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="GamMain_SLevelInvalid" resname="GamMain_SLevelInvalid"> |
<source>"Die Datei für Level %d ist ungültig. Level wird übersprungen!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The file for level %d is invalid. The level will be skipped!"</target> |
<alt-trans> |
<source>"Das Level Nr. %d ist ungültig!\r\nDas Programm wird beendet."</source> |
<target>"Level %d is invalid"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45406.8812909954</prop> |
</prop-group> |
</alt-trans> |
</trans-unit> |
<trans-unit id="GamMain_SMissionSuccessful" resname="GamMain_SMissionSuccessful"> |
<source>"Mission erfolgreich!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Mission complete!"</target> |
</trans-unit> |
<trans-unit id="GamMain_SMissionFailed" resname="GamMain_SMissionFailed"> |
<source>"Mission gescheitert!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Mission failed!"</target> |
</trans-unit> |
<trans-unit id="GamMain_SPunkte" resname="GamMain_SPunkte"> |
<source>"Punkte: %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Points: %s"</target> |
</trans-unit> |
<trans-unit id="GamMain_SLevel" resname="GamMain_SLevel"> |
<source>"Level: %d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.9821524421</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamMain_SLifes" resname="GamMain_SLifes"> |
<source>"Leben: %d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Lives: %d"</target> |
</trans-unit> |
<trans-unit id="GamMain_SInfLifes" resname="GamMain_SInfLifes"> |
<source>""</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamMain_SBossLifes" resname="GamMain_SBossLifes"> |
<source>"Boss: %d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamMain_SEinheiten" resname="GamMain_SEinheiten"> |
<source>"Einheiten: %d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Enemies: %d"</target> |
</trans-unit> |
<trans-unit id="GamMain_SGameOver" resname="GamMain_SGameOver"> |
<source>"Game Over!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamMain_SGewonnen" resname="GamMain_SGewonnen"> |
<source>"Gewonnen!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Complete!"</target> |
</trans-unit> |
<trans-unit id="GamMain_SFileError" resname="GamMain_SFileError"> |
<source>"Die Datei kann von SpaceMission nicht geöffnet werden!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The file cannot be opened by SpaceMission."</target> |
</trans-unit> |
<trans-unit id="SpaceMission_SAlreadyStarted" resname="SpaceMission_SAlreadyStarted"> |
<source>"Das Spiel wurde bereits gestartet."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Game is already started."</target> |
</trans-unit> |
<trans-unit id="SpaceMission_STitel" resname="SpaceMission_STitel"> |
<source>"SpaceMission"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="SpaceMission_SFileMissing" resname="SpaceMission_SFileMissing"> |
<source>"%s fehlt. Bitte installieren Sie SpaceMission erneut."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"%s is missing. Please reinstall SpaceMission."</target> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SNoWindowHandle" resname="Vcl_OleConst_SNoWindowHandle"> |
<source>"Das Fenster-Handle des OLE-Elements nicht verfügbar"</source> |
<target>"Could not obtain OLE control window handle"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SInvalidLicense" resname="Vcl_OleConst_SInvalidLicense"> |
<source>"Lizenz-Information für %s ist ungültig"</source> |
<target>"License information for %s is invalid"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SNotLicensed" resname="Vcl_OleConst_SNotLicensed"> |
<source>"Lizenz-Information für %s nicht gefunden. Sie können dieses Steuerelement im Entwurfsmodus nicht verwenden"</source> |
<target>"License information for %s not found. You cannot use this control in design mode"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_sNoRunningObject" resname="Vcl_OleConst_sNoRunningObject"> |
<source>"Es kann kein Zeiger auf ein ausgeführtes Objekt geholt werden, dass mit OLE für %s/%s registriert ist"</source> |
<target>"Unable to retrieve a pointer to a running object registered with OLE for %s/%s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_EdgeConst_SWebViewFailure" resname="Vcl_EdgeConst_SWebViewFailure"> |
<source>"Edge-Browser-Steuerelement konnte nicht erstellt werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Edge-Browser control cannot be created"</target> |
</trans-unit> |
<trans-unit id="Vcl_EdgeConst_SNoWebView" resname="Vcl_EdgeConst_SNoWebView"> |
<source>"Das zugrunde liegende WebView2-Steuerelement ist nicht initialisiert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"WebView2 control is not initialized"</target> |
</trans-unit> |
<trans-unit id="IEConst_sNotSupportedByEdge" resname="IEConst_sNotSupportedByEdge"> |
<source>"Vorgang wird vom Edge WebView2-Steuerelement nicht unterstützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Action not supported by Edge WebView2 control"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExMissingExpression" resname="System_RegularExpressionsConsts_SRegExMissingExpression"> |
<source>"Ein in RegEx angegebener regulärer Ausdruck ist erforderlich"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"A regular expression is required in RegEx"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExExpressionError" resname="System_RegularExpressionsConsts_SRegExExpressionError"> |
<source>"Fehler in regulärem Ausdruck bei Offset %d: %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Error with regular expression at offset %d: %s"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExStudyError" resname="System_RegularExpressionsConsts_SRegExStudyError"> |
<source>"Fehler beim Untersuchen von regex: %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Error while evaluating: %s"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExMatchRequired" resname="System_RegularExpressionsConsts_SRegExMatchRequired"> |
<source>"Übereinstimmung erforderlich"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Match required"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExStringsRequired" resname="System_RegularExpressionsConsts_SRegExStringsRequired"> |
<source>"Strings-Parameter darf nicht Nil sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376042</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Strings parameter must not be nil"</target> |
</trans-unit> |
<trans-unit id="System_RegularExpressionsConsts_SRegExIndexOutOfBounds" resname="System_RegularExpressionsConsts_SRegExIndexOutOfBounds"> |
<source>"Index überschreitet das Maximum (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Index exceeds maximum (%d)"</target> |
</trans-unit> |
<trans-unit id="GamMain_SWeiterMitLeertaste" resname="GamMain_SWeiterMitLeertaste"> |
<source>"Weiter mit Leertaste"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Continue with spacebar"</target> |
</trans-unit> |
<trans-unit id="GamMain_SAppTitle" resname="GamMain_SAppTitle"> |
<source>"SpaceMission %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamMain_SPauseTitle" resname="GamMain_SPauseTitle"> |
<source>"%s [Pause]"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SNoValidSaveGameName" resname="GamSpeicherung_SNoValidSaveGameName"> |
<source>"Dies ist kein gültiger Spielstandname!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This is not a valid savegame"</target> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SEmptySaveGameName" resname="GamSpeicherung_SEmptySaveGameName"> |
<source>"Bitte geben Sie einen Namen für den Spielstand ein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Please enter a name for the savegame"</target> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SReplaceSaveGame" resname="GamSpeicherung_SReplaceSaveGame"> |
<source>"Spielstand ist bereits vorhanden. Ersetzen?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Savegame already exists. Replace?"</target> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SNoNA" resname="GamSpeicherung_SNoNA"> |
<source>"n/a"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SIsNormalLevel" resname="GamSpeicherung_SIsNormalLevel"> |
<source>"Das Level ist ein norm. Level"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This is a normal level"</target> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SIsRandomLevel" resname="GamSpeicherung_SIsRandomLevel"> |
<source>"Das Level ist ein Zufallslevel"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This is a random level"</target> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SHasAttachedLevel" resname="GamSpeicherung_SHasAttachedLevel"> |
<source>"%s mit Karte"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"%s with level"</target> |
</trans-unit> |
<trans-unit id="ComInfo_SVersion" resname="ComInfo_SVersion"> |
<source>"Version %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamCheat_Cheat1Text" resname="GamCheat_Cheat1Text"> |
<source>"Unendlich Leben!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">3</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamCheat_SCheatUnlocked" resname="GamCheat_SCheatUnlocked"> |
<source>"Dieser Cheat wurde freigeschaltet!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Check was unlocked!"</target> |
</trans-unit> |
<trans-unit id="GamCheat_SCheckAlreadyUnlocked" resname="GamCheat_SCheckAlreadyUnlocked"> |
<source>"Dieser Cheat wurde bereits freigeschaltet!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This cheat is already unlocked!"</target> |
</trans-unit> |
<trans-unit id="GamCheat_SNoCheat" resname="GamCheat_SNoCheat"> |
<source>"Dies ist kein offizieller Cheat!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This is not a valid cheat code"</target> |
</trans-unit> |
<trans-unit id="GamCheat_SDisableCheat" resname="GamCheat_SDisableCheat"> |
<source>"Diesen Cheat wirklich deaktivieren?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Disable this cheat?"</target> |
</trans-unit> |
<trans-unit id="GamCheat_SCheatDisabled" resname="GamCheat_SCheatDisabled"> |
<source>"Dieser Cheat wurde deaktiviert!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Cheat was disabled!"</target> |
<alt-trans> |
<source>"Dieser Cheat wurde deakiviert!"</source> |
<target>"Cheat was disabled!"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45406.8812909954</prop> |
</prop-group> |
</alt-trans> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SBadPropValue" resname="Vcl_OleConst_SBadPropValue"> |
<source>"'%s' ist kein gültiger Wert für die Eigenschaft"</source> |
<target>"'%s' is not a valid property value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_OleConst_SCannotActivate" resname="Vcl_OleConst_SCannotActivate"> |
<source>"Aktivierung des OLE-Steuerelements misslungen"</source> |
<target>"OLE control activation failed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Global_SNewProgramVersionAvailable" resname="Global_SNewProgramVersionAvailable"> |
<source>"Eine neue Programmversion ist vorhanden. Möchten Sie diese jetzt herunterladen?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"A new program version is available! Download now?"</target> |
</trans-unit> |
<trans-unit id="Global_SNoUpdateAvailable" resname="Global_SNoUpdateAvailable"> |
<source>"Es ist keine neue Programmversion vorhanden."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"You are already using the latest version"</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SLevelFileFolder" resname="ComLevelReader_SLevelFileFolder"> |
<source>"Levels"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="ComLevelReader_SLevelFileSubFolder" resname="ComLevelReader_SLevelFileSubFolder"> |
<source>"SpaceMission"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="ComLevelReader_SExtraContentAfterLine" resname="ComLevelReader_SExtraContentAfterLine"> |
<source>"Zeile %d ist ungültig (Zusatzinfo am Ende)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Line %d is invalid (additional data at line end)"</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SInvalidXCoord" resname="ComLevelReader_SInvalidXCoord"> |
<source>"X-Koordinate muss ohne Rest durch %d teilbar sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"X-Coordinate must be a multiple of %d."</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SInvalidYCoord" resname="ComLevelReader_SInvalidYCoord"> |
<source>"Y-Koordinate muss ohne Rest durch %d teilbar sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Y-Coordinate must be a multiple of %d."</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SInvalidLevelFile" resname="ComLevelReader_SInvalidLevelFile"> |
<source>"Level-Format nicht unterstützt oder Datei ist beschädigt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Level format not supported or file corrupt."</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SEnemyTypeNotImplemented" resname="ComLevelReader_SEnemyTypeNotImplemented"> |
<source>"Gegner-Typ %d wird nicht unterstützt (Alte Spielversion?)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Enemy type %d not supported. (Old game version?)"</target> |
</trans-unit> |
<trans-unit id="ComLevelReader_SLevelEnemyLineComment" resname="ComLevelReader_SLevelEnemyLineComment"> |
<source>"; Type XCoord YCoord Lives"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="ComLevelReader_SInvalidFile" resname="ComLevelReader_SInvalidFile"> |
<source>"Spielstand-Format nicht unterstützt oder Datei beschädigt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Savegame format not supported or file corrupt."</target> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SSaveGameFileNotFound" resname="GamSpeicherung_SSaveGameFileNotFound"> |
<source>"Spielstandsdatei nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Savegame file not found"</target> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SNa" resname="GamSpeicherung_SNa"> |
<source>"n/a"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SSaveGameFolder" resname="GamSpeicherung_SSaveGameFolder"> |
<source>"Spielstände"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Save states"</target> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SSaveGameSubFolder" resname="GamSpeicherung_SSaveGameSubFolder"> |
<source>"SpaceMission"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="GamSpeicherung_SDeleteSaveGame" resname="GamSpeicherung_SDeleteSaveGame"> |
<source>"Diesen Spielstand wirklich löschen?"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Do you want to delete this savestate?"</target> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCannotAssignChunkText" resname="Vcl_Imaging_pnglang_EPNGCannotAssignChunkText"> |
<source>"Die Abschnitte müssen kompatibel sein, damit sie zugewiesen werden können."</source> |
<target>"The chunks must be compatible to be assigned."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnexpectedEndText" resname="Vcl_Imaging_pnglang_EPNGUnexpectedEndText"> |
<source>"Dieses \"Portable Network Graphics\" Bild ist ungültig: Der Dekoder ist unerwartete auf das Ende der Datei gestoßen."</source> |
<target>"This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGNoImageDataText" resname="Vcl_Imaging_pnglang_EPNGNoImageDataText"> |
<source>"Dieses \"Portable Network Graphics\" Bild enthält keine Daten."</source> |
<target>"This \"Portable Network Graphics\" image contains no data."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCannotAddChunkText" resname="Vcl_Imaging_pnglang_EPNGCannotAddChunkText"> |
<source>"Das Programm versucht einen existierenden und notwendigen Abschnitt zum aktuellen Bild hinzuzufügen. Dies ist nicht zulässig."</source> |
<target>"The program tried to add a existent critical chunk to the current image which is not allowed."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCannotAddInvalidImageText" resname="Vcl_Imaging_pnglang_EPNGCannotAddInvalidImageText"> |
<source>"Es ist nicht zulässig, einem ungültigen Bild einen neuen Abschnitt hinzuzufügen."</source> |
<target>"It's not allowed to add a new chunk because the current image is invalid."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCouldNotLoadResourceText" resname="Vcl_Imaging_pnglang_EPNGCouldNotLoadResourceText"> |
<source>"Das PNG Bild konnte nicht aus den Resourcendaten geladen werden."</source> |
<target>"The png image could not be loaded from the resource ID."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGOutMemoryText" resname="Vcl_Imaging_pnglang_EPNGOutMemoryText"> |
<source>"Es stehen nicht genügend Resourcen im System zur Verfügung, um die Operation auszuführen. Schließen Sie einige Fenster und versuchen Sie es erneut."</source> |
<target>"Some operation could not be performed because the system is out of resources. Close some windows and try again."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGCannotChangeTransparentText" resname="Vcl_Imaging_pnglang_EPNGCannotChangeTransparentText"> |
<source>"Das Setzen der Bit-Transparent-Farbe ist für PNG-Images die Alpha-Werte für jedes Pixel enthalten (COLOR_RGBALPHA und COLOR_GRAYSCALEALPHA) nicht zulässig"</source> |
<target>"Setting bit transparency color is not allowed for png images containing alpha value for each pixel (COLOR_RGBALPHA and COLOR_GRAYSCALEALPHA)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGHeaderNotPresentText" resname="Vcl_Imaging_pnglang_EPNGHeaderNotPresentText"> |
<source>"Die Datei, die gelesen wird, ist kein gültiges \"Portable Network Graphics\" Bild, da es keinen gültigen Header enthält."</source> |
<target>"This operation is not valid because the current image contains no valid header."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EInvalidNewSize" resname="Vcl_Imaging_pnglang_EInvalidNewSize"> |
<source>"Die neue Größe für die Größenanpassung des Bildes ist ungültig."</source> |
<target>"The new size provided for image resizing is invalid."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EInvalidSpec" resname="Vcl_Imaging_pnglang_EInvalidSpec"> |
<source>"\"Portable Network Graphics\" konnte nicht erstellt werden, weil ungültige Bildtypparameter angegeben wurden."</source> |
<target>"The \"Portable Network Graphics\" could not be created because invalid image type parameters have being provided."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGInvalidBitDepthText" resname="Vcl_Imaging_pnglang_EPNGInvalidBitDepthText"> |
<source>"Das PNG-Bild (Portable Network Graphics) konnte nicht geladen werden, weil das Bild eine ungültige Bit-Tiefe verwendet."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The PNG image (Portable Network Graphics) could not be loaded because the picture contains an invalid bit depth."</target> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_JConsts_sChangeJPGSize" resname="Vcl_Imaging_JConsts_sChangeJPGSize"> |
<source>"Die Größe einer JPEG-Grafik kann nicht verändert werden"</source> |
<target>"Cannot change the size of a JPEG image"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_JConsts_sJPEGError" resname="Vcl_Imaging_JConsts_sJPEGError"> |
<source>"JPEG-Fehler #%d"</source> |
<target>"JPEG error #%d"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_JConsts_sJPEGImageFile" resname="Vcl_Imaging_JConsts_sJPEGImageFile"> |
<source>"JPEG-Grafikdatei"</source> |
<target>"JPEG Image File"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Global_SDownloadError" resname="Global_SDownloadError"> |
<source>"Ein Fehler ist aufgetreten. Wahrscheinlich ist keine Internetverbindung aufgebaut, oder der der ViaThinkSoft-Server vorübergehend offline."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Could not download version information from the ViaThinkSoft server. Please try again later."</target> |
</trans-unit> |
<trans-unit id="DXConsts_SNotSupportGraphicFile" resname="DXConsts_SNotSupportGraphicFile"> |
<source>"Graphic format not suported"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDXTFile" resname="DXConsts_SInvalidDXTFile"> |
<source>"DXT file is invalid"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SCannotLoadGraphic" resname="DXConsts_SCannotLoadGraphic"> |
<source>"Can not load graphic"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPngInvalidCRCText" resname="Vcl_Imaging_pnglang_EPngInvalidCRCText"> |
<source>"Dieses \"Portable Network Graphics\" Bild ist ungültig, weil Teile der Daten fehlerhaft sind (CRC-Fehler)"</source> |
<target>"This \"Portable Network Graphics\" image is not valid because it contains invalid pieces of data (crc error)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGInvalidIHDRText" resname="Vcl_Imaging_pnglang_EPNGInvalidIHDRText"> |
<source>"Dieses \"Portable Network Graphics\" Bild konnte nicht geladen werden, weil wahrscheinlich einer der Hauptdatenbreiche (IHDR) beschädigt ist"</source> |
<target>"The \"Portable Network Graphics\" image could not be loaded because one of its main piece of data (ihdr) might be corrupted"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGMissingMultipleIDATText" resname="Vcl_Imaging_pnglang_EPNGMissingMultipleIDATText"> |
<source>"Dieses \"Portable Network Graphics\" Bild ist ungültig, weil Grafikdaten fehlen."</source> |
<target>"This \"Portable Network Graphics\" image is invalid because it has missing image parts."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGZLIBErrorText" resname="Vcl_Imaging_pnglang_EPNGZLIBErrorText"> |
<source>"Die Grafik konnte nicht entpackt werden, weil Teile der komprimierten Daten fehlerhaft sind. \r\nBeschreibung: "</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The graphic could not be decompressed because part of the compressed data is invalid. \r\nDescription: "</target> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGInvalidPaletteText" resname="Vcl_Imaging_pnglang_EPNGInvalidPaletteText"> |
<source>"Das \"Portable Network Graphics\" Bild enthält eine ungültige Palette."</source> |
<target>"The \"Portable Network Graphics\" image contains an invalid palette."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGInvalidFileHeaderText" resname="Vcl_Imaging_pnglang_EPNGInvalidFileHeaderText"> |
<source>"Die gerade gelesene Datei ist kein gültiges PNG-Bild (\"Portable Network Graphics\"), weil sie keinen gültigen Header enthält. Diese Datei ist möglicherweise beschädigt. Versuchen Sie, eine neue Version davon zu bekommen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The read file is not a valid PNG picture (\"Portable Network Graphics\"), because it does not contain a valid header. The file is probably corrupt. Please try to receive a newer version of the file."</target> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGIHDRNotFirstText" resname="Vcl_Imaging_pnglang_EPNGIHDRNotFirstText"> |
<source>"Dieses \"Portable Network Graphics\" Bild wird nicht unterstützt oder ist ungültig.\r\n(Der IHDR-Abschnitt ist nicht der erste Abschnitt in der Datei)."</source> |
<target>"This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGSizeExceedsText" resname="Vcl_Imaging_pnglang_EPNGSizeExceedsText"> |
<source>"Dieses PNG-Bild (Portable Network Graphics) wird nicht unterstützt, weil die Breite oder Höhe die maximale Größe von 65535 Pixel überschreitet."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This PNG image (Portable Network Graphics) is not supported because width or height exceeds 65535 pixels."</target> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownPalEntryText" resname="Vcl_Imaging_pnglang_EPNGUnknownPalEntryText"> |
<source>"Es gibt keinen solchen Palettenwert."</source> |
<target>"There is no such palette entry."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownCriticalChunkText" resname="Vcl_Imaging_pnglang_EPNGUnknownCriticalChunkText"> |
<source>"Dieses \"Portable Network Graphics\" Bild enhält einen unbekannten aber notwendigen Teil, welcher nicht entschlüsselt werden kann."</source> |
<target>"This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownCompressionText" resname="Vcl_Imaging_pnglang_EPNGUnknownCompressionText"> |
<source>"Dieses \"Portable Network Graphics\" Bild wurde mit einem unbekannten Komprimierungsalgorithmus kodiert, welcher nicht entschlüsselt werden kann."</source> |
<target>"This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownInterlaceText" resname="Vcl_Imaging_pnglang_EPNGUnknownInterlaceText"> |
<source>"Dieses \"Portable Network Graphics\" Bild benutzt ein unbekanntes Interlace-Schema, welches nicht entschlüsselt werden kann."</source> |
<target>"This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Imaging_pnglang_EPNGUnknownColorTypeText" resname="Vcl_Imaging_pnglang_EPNGUnknownColorTypeText"> |
<source>"Dieses PNG-Bild (Portable Network Graphics) verwendet einen unbekannten Farbtyp, der nicht decodiert werden konnte."</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"This PNG image (Portable Network Graphics) contains an unknown color type which cannot be decoded."</target> |
</trans-unit> |
<trans-unit id="DXConsts_SListIndexError" resname="DXConsts_SListIndexError"> |
<source>"Index of the list exceeds the range. (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SScanline" resname="DXConsts_SScanline"> |
<source>"Index of the scanning line exceeded the range. (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SNoForm" resname="DXConsts_SNoForm"> |
<source>"Form not found"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SSinceDirectX6" resname="DXConsts_SSinceDirectX6"> |
<source>"Requires DirectX 6.0 or later"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SSinceDirectX7" resname="DXConsts_SSinceDirectX7"> |
<source>"Requires DirectX 7.0 or later"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_S3DDeviceNotFound" resname="DXConsts_S3DDeviceNotFound"> |
<source>"3D device not found"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDisplayModeChange" resname="DXConsts_SDisplayModeChange"> |
<source>"Display mode cannot be changed (%dx%d %dbit)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDisplayModeCannotAcquired" resname="DXConsts_SDisplayModeCannotAcquired"> |
<source>"Display mode cannot be acquired"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDIB" resname="DXConsts_SInvalidDIB"> |
<source>"DIB is invalid"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDIBBitCount" resname="DXConsts_SInvalidDIBBitCount"> |
<source>"Bitcount in invalid (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDIBPixelFormat" resname="DXConsts_SInvalidDIBPixelFormat"> |
<source>"PixelFormat in invalid"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidWave" resname="DXConsts_SInvalidWave"> |
<source>"Wave is invalid"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidDisplayBitCount" resname="DXConsts_SInvalidDisplayBitCount"> |
<source>"Display requires 8, 16, 24 or 32 bits"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SInvalidWaveFormat" resname="DXConsts_SInvalidWaveFormat"> |
<source>"Format is invalid"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SStreamOpend" resname="DXConsts_SStreamOpend"> |
<source>"Stream is already open"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SNecessaryDirectInputUseMouse" resname="DXConsts_SNecessaryDirectInputUseMouse"> |
<source>"DirectInput is required for mouse support"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectDrawClipper" resname="DXConsts_SDirectDrawClipper"> |
<source>"Clipper"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectDrawSurface" resname="DXConsts_SDirectDrawSurface"> |
<source>"Surface"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectDrawPrimarySurface" resname="DXConsts_SDirectDrawPrimarySurface"> |
<source>"Primary Surface"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectSoundBuffer" resname="DXConsts_SDirectSoundBuffer"> |
<source>"Sound Buffer"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectSoundPrimaryBuffer" resname="DXConsts_SDirectSoundPrimaryBuffer"> |
<source>"Primary Buffer"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_STexture" resname="DXConsts_STexture"> |
<source>"Texture"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SNotMade" resname="DXConsts_SNotMade"> |
<source>"%s not made"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SStreamNotOpend" resname="DXConsts_SStreamNotOpend"> |
<source>"Stream not opened"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SCannotMade" resname="DXConsts_SCannotMade"> |
<source>"%s cannot be made"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SCannotInitialized" resname="DXConsts_SCannotInitialized"> |
<source>"%s cannot be initialized"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SCannotChanged" resname="DXConsts_SCannotChanged"> |
<source>"%s cannot be changed"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SCannotLock" resname="DXConsts_SCannotLock"> |
<source>"%s cannot be locked"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDLLNotLoaded" resname="DXConsts_SDLLNotLoaded"> |
<source>"%s is not loaded"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SImageNotFound" resname="DXConsts_SImageNotFound"> |
<source>"Image '%s' not found"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SWaveNotFound" resname="DXConsts_SWaveNotFound"> |
<source>"Wave '%s' not found"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SEffectNotFound" resname="DXConsts_SEffectNotFound"> |
<source>"Effect '%s' not found"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleFormatError" resname="Vcl_Consts_SStyleFormatError"> |
<source>"Ungültiges Stilformat"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid style format"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleHookClassRegistered" resname="Vcl_Consts_SStyleHookClassRegistered"> |
<source>"Klasse '%s' ist für '%s' bereits registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Class '%s' is already registered for '%s'"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleHookClassNotRegistered" resname="Vcl_Consts_SStyleHookClassNotRegistered"> |
<source>"Klasse '%s' ist für '%s' nicht registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Class '%s' is not registered for '%s'"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleInvalidParameter" resname="Vcl_Consts_SStyleInvalidParameter"> |
<source>"Parameter %s darf nicht nil sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Paramter %s must not be nil"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleFeatureNotSupported" resname="Vcl_Consts_SStyleFeatureNotSupported"> |
<source>"Funktion wird von diesem Stil nicht unterstützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Function is not supported by this style"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleNotRegistered" resname="Vcl_Consts_SStyleNotRegistered"> |
<source>"Der Stil '%s' ist nicht registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style '%s' is not registered"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleUnregisterError" resname="Vcl_Consts_SStyleUnregisterError"> |
<source>"Die Registrierung des Systemstils kann nicht aufgehoben werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The registry of the system style cannot be removed"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleNotRegisteredNoName" resname="Vcl_Consts_SStyleNotRegisteredNoName"> |
<source>"Stil nicht registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335376389</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style not registered"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_sBeginInvokeNoHandle" resname="Vcl_Consts_sBeginInvokeNoHandle"> |
<source>"BeginInvoke kann nicht ohne übergeordnetes Element oder Fenster-Handle aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"BeginInvoke cannot be called without superior window or window handle"</target> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_SOleError" resname="System_Win_ComConst_SOleError"> |
<source>"OLE-Fehler %.8x"</source> |
<target>"OLE error %.8x"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_SNoMethod" resname="System_Win_ComConst_SNoMethod"> |
<source>"Die Methode '%s' wird vom Automatisierungsobjekt nicht unterstützt"</source> |
<target>"Method '%s' not supported by automation object"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_SVarNotObject" resname="System_Win_ComConst_SVarNotObject"> |
<source>"Variante referenziert kein Automatisierungsobjekt"</source> |
<target>"Variant does not reference an automation object"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_STooManyParams" resname="System_Win_ComConst_STooManyParams"> |
<source>"Dispatch-Methoden unterstützen maximal 64 Parameter."</source> |
<target>"Dispatch methods do not support more than 64 parameters"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_Win_ComConst_SDCOMNotInstalled" resname="System_Win_ComConst_SDCOMNotInstalled"> |
<source>"DCOM ist nicht installiert"</source> |
<target>"DCOM not installed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectDraw" resname="DXConsts_SDirectDraw"> |
<source>"DirectDraw"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="DXConsts_SDirectSound" resname="DXConsts_SDirectSound"> |
<source>"DirectSound"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDomain" resname="Vcl_Consts_SDomain"> |
<source>"&Domäne"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"&Domain"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SLogin" resname="Vcl_Consts_SLogin"> |
<source>"Anmelden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Login"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SErrorSettingCount" resname="Vcl_Consts_SErrorSettingCount"> |
<source>"Fehler beim Setzen von %s.Count"</source> |
<target>"Error setting %s.Count"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SListBoxMustBeVirtual" resname="Vcl_Consts_SListBoxMustBeVirtual"> |
<source>"Stil des Listenfeldes (%s) muss virtuell sein, damit Count gesetzt werden kann"</source> |
<target>"Listbox (%s) style must be virtual in order to set Count"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_STrayIconRemoveError" resname="Vcl_Consts_STrayIconRemoveError"> |
<source>"Shell-Benachrichtigungssymbol kann nicht entfernt werden"</source> |
<target>"Cannot remove shell notification icon"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SWindowsVistaRequired" resname="Vcl_Consts_SWindowsVistaRequired"> |
<source>"Für %s ist Windows Vista oder höher erforderlich"</source> |
<target>"%s requires Windows Vista or later"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_STaskDlgButtonCaption" resname="Vcl_Consts_STaskDlgButtonCaption"> |
<source>"Button%d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_STaskDlgRadioButtonCaption" resname="Vcl_Consts_STaskDlgRadioButtonCaption"> |
<source>"RadioButton%d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidTaskDlgButtonCaption" resname="Vcl_Consts_SInvalidTaskDlgButtonCaption"> |
<source>"Caption darf nicht leer sein"</source> |
<target>"Caption cannot be empty"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleLoadError" resname="Vcl_Consts_SStyleLoadError"> |
<source>"Stil '%s' kann nicht geladen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style '%s' could not be loaded"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleLoadErrors" resname="Vcl_Consts_SStyleLoadErrors"> |
<source>"Stile %s können nicht geladen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Styles %s could not be loaded"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleRegisterError" resname="Vcl_Consts_SStyleRegisterError"> |
<source>"Stil '%s' bereits registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style '%s' already registered"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleClassRegisterError" resname="Vcl_Consts_SStyleClassRegisterError"> |
<source>"Stilklasse '%s' bereits registriert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style class '%s' already registered"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleNotFound" resname="Vcl_Consts_SStyleNotFound"> |
<source>"Stil '%s' nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style '%s' not found"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleClassNotFound" resname="Vcl_Consts_SStyleClassNotFound"> |
<source>"Stilklasse '%s' nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Style class '%s' not found"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SStyleInvalidHandle" resname="Vcl_Consts_SStyleInvalidHandle"> |
<source>"Ungültiges Stil-Handle"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid style handle"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInsertLineError" resname="Vcl_Consts_SInsertLineError"> |
<source>"Zeile kann nicht eingefügt werden"</source> |
<target>"Unable to insert a line"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SIconToClipboard" resname="Vcl_Consts_SIconToClipboard"> |
<source>"Zwischenablage unterstützt keine Symbole"</source> |
<target>"Clipboard does not support Icons"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCannotOpenClipboard" resname="Vcl_Consts_SCannotOpenClipboard"> |
<source>"Zwischenablage %s kann nicht geöffnet werden"</source> |
<target>"Cannot open clipboard: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidMemoSize" resname="Vcl_Consts_SInvalidMemoSize"> |
<source>"Text überschreitet Memo-Kapazität"</source> |
<target>"Text exceeds memo capacity"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidPrinterOp" resname="Vcl_Consts_SInvalidPrinterOp"> |
<source>"Operation auf ausgewähltem Drucker nicht verfügbar"</source> |
<target>"Operation not supported on selected printer"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoDefaultPrinter" resname="Vcl_Consts_SNoDefaultPrinter"> |
<source>"Aktuell ist kein Standarddrucker ausgewählt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No default printer selected"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDuplicateMenus" resname="Vcl_Consts_SDuplicateMenus"> |
<source>"Menü '%s' wird bereits von einem anderen Formular verwendet"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Menu '%s' is already used by another form"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockedCtlNeedsName" resname="Vcl_Consts_SDockedCtlNeedsName"> |
<source>"Angedocktes Steuerelement muss einen Namen haben."</source> |
<target>"Docked control must have a name"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockTreeRemoveError" resname="Vcl_Consts_SDockTreeRemoveError"> |
<source>"Fehler beim Entfernen des Steuerelements aus der Andock-Hierarchie"</source> |
<target>"Error removing control from dock tree"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockZoneNotFound" resname="Vcl_Consts_SDockZoneNotFound"> |
<source>" - Andockzone nicht gefunden"</source> |
<target>" - Dock zone not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockZoneHasNoCtl" resname="Vcl_Consts_SDockZoneHasNoCtl"> |
<source>" - Andockzone enthält kein Steuerelement"</source> |
<target>" - Dock zone has no control"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDockZoneVersionConflict" resname="Vcl_Consts_SDockZoneVersionConflict"> |
<source>"Fehler beim Laden der Andockzone aus dem Stream. Version %d erwartet, aber %d gefunden."</source> |
<target>"Error loading dock zone from the stream. Expecting version %d, but found %d."</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPromptArrayTooShort" resname="Vcl_Consts_SPromptArrayTooShort"> |
<source>"Länge des Werte-Arrays muss >= der Länge des Prompt-Arrays sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Length of the value array must >= length of prompt array"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPromptArrayEmpty" resname="Vcl_Consts_SPromptArrayEmpty"> |
<source>"Prompt-Array darf nicht leer sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Prompt array must not be empty"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SUsername" resname="Vcl_Consts_SUsername"> |
<source>"&Benutzername"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"&User name"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPassword" resname="Vcl_Consts_SPassword"> |
<source>"&Passwort"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"&Password"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcSpace" resname="Vcl_Consts_SmkcSpace"> |
<source>"Leer"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Empty"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcPgUp" resname="Vcl_Consts_SmkcPgUp"> |
<source>"BildAuf"</source> |
<target>"PgUp"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcPgDn" resname="Vcl_Consts_SmkcPgDn"> |
<source>"BildAb"</source> |
<target>"PgDn"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcEnd" resname="Vcl_Consts_SmkcEnd"> |
<source>"Ende"</source> |
<target>"End"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcHome" resname="Vcl_Consts_SmkcHome"> |
<source>"Pos1"</source> |
<target>"Home"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcLeft" resname="Vcl_Consts_SmkcLeft"> |
<source>"Links"</source> |
<target>"Left"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcUp" resname="Vcl_Consts_SmkcUp"> |
<source>"Auf"</source> |
<target>"Up"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcRight" resname="Vcl_Consts_SmkcRight"> |
<source>"Rechts"</source> |
<target>"Right"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcDown" resname="Vcl_Consts_SmkcDown"> |
<source>"Ab"</source> |
<target>"Down"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcIns" resname="Vcl_Consts_SmkcIns"> |
<source>"Einfg"</source> |
<target>"Ins"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcDel" resname="Vcl_Consts_SmkcDel"> |
<source>"Entf"</source> |
<target>"Del"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcShift" resname="Vcl_Consts_SmkcShift"> |
<source>"Umsch+"</source> |
<target>"Shift+"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcCtrl" resname="Vcl_Consts_SmkcCtrl"> |
<source>"Strg+"</source> |
<target>"Ctrl+"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcAlt" resname="Vcl_Consts_SmkcAlt"> |
<source>"Alt+"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SOutOfRange" resname="Vcl_Consts_SOutOfRange"> |
<source>"Wert muss zwischen %d und %d liegen"</source> |
<target>"Value must be between %d and %d"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_sAllFilter" resname="Vcl_Consts_sAllFilter"> |
<source>"Alle"</source> |
<target>"All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgYes" resname="Vcl_Consts_SMsgDlgYes"> |
<source>"&Ja"</source> |
<target>"&Yes"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgNo" resname="Vcl_Consts_SMsgDlgNo"> |
<source>"&Nein"</source> |
<target>"&No"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgOK" resname="Vcl_Consts_SMsgDlgOK"> |
<source>"OK"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgCancel" resname="Vcl_Consts_SMsgDlgCancel"> |
<source>"Abbrechen"</source> |
<target>"Cancel"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgHelp" resname="Vcl_Consts_SMsgDlgHelp"> |
<source>"&Hilfe"</source> |
<target>"&Help"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgAbort" resname="Vcl_Consts_SMsgDlgAbort"> |
<source>"&Abbrechen"</source> |
<target>"&Abort"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgRetry" resname="Vcl_Consts_SMsgDlgRetry"> |
<source>"&Wiederholen"</source> |
<target>"&Retry"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgIgnore" resname="Vcl_Consts_SMsgDlgIgnore"> |
<source>"&Ignorieren"</source> |
<target>"&Ignore"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgAll" resname="Vcl_Consts_SMsgDlgAll"> |
<source>"&Alle"</source> |
<target>"&All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgNoToAll" resname="Vcl_Consts_SMsgDlgNoToAll"> |
<source>"&Alle Nein"</source> |
<target>"N&o to All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgYesToAll" resname="Vcl_Consts_SMsgDlgYesToAll"> |
<source>"A&lle Ja"</source> |
<target>"Yes to &All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgClose" resname="Vcl_Consts_SMsgDlgClose"> |
<source>"S&chließen"</source> |
<target>"&Close"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcBkSp" resname="Vcl_Consts_SmkcBkSp"> |
<source>"Rück"</source> |
<target>"BkSp"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcTab" resname="Vcl_Consts_SmkcTab"> |
<source>"Tab"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcEsc" resname="Vcl_Consts_SmkcEsc"> |
<source>"Esc"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SmkcEnter" resname="Vcl_Consts_SmkcEnter"> |
<source>"Eingabe"</source> |
<target>"Enter"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SHelpButton" resname="Vcl_Consts_SHelpButton"> |
<source>"&Hilfe"</source> |
<target>"&Help"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCloseButton" resname="Vcl_Consts_SCloseButton"> |
<source>"&Schließen"</source> |
<target>"&Close"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SIgnoreButton" resname="Vcl_Consts_SIgnoreButton"> |
<source>"&Ignorieren"</source> |
<target>"&Ignore"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SRetryButton" resname="Vcl_Consts_SRetryButton"> |
<source>"&Wiederholen"</source> |
<target>"&Retry"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SAbortButton" resname="Vcl_Consts_SAbortButton"> |
<source>"Abbrechen"</source> |
<target>"Cancel"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SAllButton" resname="Vcl_Consts_SAllButton"> |
<source>"&Alle"</source> |
<target>"&All"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCannotDragForm" resname="Vcl_Consts_SCannotDragForm"> |
<source>"Formulare können nicht gezogen werden"</source> |
<target>"Cannot drag a form"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVMetafiles" resname="Vcl_Consts_SVMetafiles"> |
<source>"Metadateien"</source> |
<target>"Metafiles"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVEnhMetafiles" resname="Vcl_Consts_SVEnhMetafiles"> |
<source>"Erweiterte Metadateien"</source> |
<target>"Enhanced Metafiles"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVIcons" resname="Vcl_Consts_SVIcons"> |
<source>"Symbole"</source> |
<target>"Icons"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVBitmaps" resname="Vcl_Consts_SVBitmaps"> |
<source>"Bitmaps"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVTIFFImages" resname="Vcl_Consts_SVTIFFImages"> |
<source>"TIFF-Grafiken"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"TIFF graphics"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgWarning" resname="Vcl_Consts_SMsgDlgWarning"> |
<source>"Warnung"</source> |
<target>"Warning"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgError" resname="Vcl_Consts_SMsgDlgError"> |
<source>"Fehler"</source> |
<target>"Error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgInformation" resname="Vcl_Consts_SMsgDlgInformation"> |
<source>"Informationen"</source> |
<target>"Information"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMsgDlgConfirm" resname="Vcl_Consts_SMsgDlgConfirm"> |
<source>"Bestätigen"</source> |
<target>"Confirm"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMenuNotFound" resname="Vcl_Consts_SMenuNotFound"> |
<source>"Untermenü ist nicht im Menü"</source> |
<target>"Sub-menu is not in menu"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoTimers" resname="Vcl_Consts_SNoTimers"> |
<source>"Nicht genügend Timer verfügbar"</source> |
<target>"Not enough timers available"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNotPrinting" resname="Vcl_Consts_SNotPrinting"> |
<source>"Der Drucker druckt aktuell nicht"</source> |
<target>"Printer is not currently printing"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPrinting" resname="Vcl_Consts_SPrinting"> |
<source>"Druckvorgang läuft"</source> |
<target>"Printing in progress"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPrinterIndexError" resname="Vcl_Consts_SPrinterIndexError"> |
<source>"Druckerindex außerhalb des zulässigen Bereichs"</source> |
<target>"Printer index out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidPrinter" resname="Vcl_Consts_SInvalidPrinter"> |
<source>"Ausgewählter Drucker ist ungültig"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Selected printer is invalid"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SDeviceOnPort" resname="Vcl_Consts_SDeviceOnPort"> |
<source>"%s an %s"</source> |
<target>"%s on %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SGroupIndexTooLow" resname="Vcl_Consts_SGroupIndexTooLow"> |
<source>"GroupIndex darf nicht kleiner sein als der GroupIndex eines vorherigen Menüelements"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"GroupIndex must not be smaller than the GroupIndex of a previous menu item"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoMDIForm" resname="Vcl_Consts_SNoMDIForm"> |
<source>"Formular kann nicht erstellt werden. Aktuell sind keine MDI-Formulare aktiv"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Form cannot be created. Currently no MDI forms are active"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SImageCanvasNeedsBitmap" resname="Vcl_Consts_SImageCanvasNeedsBitmap"> |
<source>"Ein Bild kann nur geändert werden, wenn es ein Bitmap enthält"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"A picture can only be changed if it contains a bitmap"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SControlParentSetToSelf" resname="Vcl_Consts_SControlParentSetToSelf"> |
<source>"Steuerelement kann nicht sich selbst als Vorfahr haben"</source> |
<target>"A control cannot have itself as its parent"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SControlNonMainThreadUsage" resname="Vcl_Consts_SControlNonMainThreadUsage"> |
<source>"Steuerelement '%s' wird nicht für einen Haupt-Thread verwendet"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Control '%s' cannot be used for a main thread"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SOKButton" resname="Vcl_Consts_SOKButton"> |
<source>"OK"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCancelButton" resname="Vcl_Consts_SCancelButton"> |
<source>"Abbrechen"</source> |
<target>"Cancel"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335377431</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SYesButton" resname="Vcl_Consts_SYesButton"> |
<source>"&Ja"</source> |
<target>"&Yes"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoButton" resname="Vcl_Consts_SNoButton"> |
<source>"&Nein"</source> |
<target>"&No"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SImageIndexError" resname="Vcl_Consts_SImageIndexError"> |
<source>"Ungültiger ImageList-Index"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid ImageList-Index"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SImageReadFail" resname="Vcl_Consts_SImageReadFail"> |
<source>"ImageList-Daten konnten nicht aus dem Stream gelesen werden"</source> |
<target>"Failed to read ImageList data from stream"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SImageWriteFail" resname="Vcl_Consts_SImageWriteFail"> |
<source>"ImageList-Daten konnten nicht in den Stream geschrieben werden"</source> |
<target>"Failed to write ImageList data to stream"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SWindowDCError" resname="Vcl_Consts_SWindowDCError"> |
<source>"Fehler beim Erstellen des Fenster-Gerätekontexts"</source> |
<target>"Error creating window device context"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SWindowClass" resname="Vcl_Consts_SWindowClass"> |
<source>"Fehler beim Erzeugen einer Fensterklasse"</source> |
<target>"Error creating window class"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCannotFocus" resname="Vcl_Consts_SCannotFocus"> |
<source>"Deaktiviertes oder unsichtbares Fenster kann den Fokus nicht erhalten"</source> |
<target>"Cannot focus a disabled or invisible window"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SParentRequired" resname="Vcl_Consts_SParentRequired"> |
<source>"Element '%s' hat kein übergeordnetes Fenster"</source> |
<target>"Control '%s' has no parent window"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SControlPath" resname="Vcl_Consts_SControlPath"> |
<source>". Pfad:\r\n%s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>". Path:\r\n%s"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SParentGivenNotAParent" resname="Vcl_Consts_SParentGivenNotAParent"> |
<source>"Das angegebene übergeordnete Element ist kein übergeordnetes Element von '%s'"</source> |
<target>"Parent given is not a parent of '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMDIChildNotVisible" resname="Vcl_Consts_SMDIChildNotVisible"> |
<source>"Untergeordnetes MDI-Formular kann nicht verborgen werden"</source> |
<target>"Cannot hide an MDI Child Form"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SVisibleChanged" resname="Vcl_Consts_SVisibleChanged"> |
<source>"Eigenschaft Visible kann in OnShow oder OnHide nicht verändert werden"</source> |
<target>"Cannot change Visible in OnShow or OnHide"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SCannotShowModal" resname="Vcl_Consts_SCannotShowModal"> |
<source>"Sichtbares Fenster kann nicht in modales geändert werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Visible form cannot be changed to a modal form"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SScrollBarRange" resname="Vcl_Consts_SScrollBarRange"> |
<source>"Eigenschaft Scrollbar außerhalb des zulässigen Bereichs"</source> |
<target>"Scrollbar property out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SPropertyOutOfRange" resname="Vcl_Consts_SPropertyOutOfRange"> |
<source>"Eigenschaft %s außerhalb des zulässigen Bereichs"</source> |
<target>"%s property out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMenuIndexError" resname="Vcl_Consts_SMenuIndexError"> |
<source>"Menüindex außerhalb des zulässigen Bereichs"</source> |
<target>"Menu index out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SMenuReinserted" resname="Vcl_Consts_SMenuReinserted"> |
<source>"Menü zweimal eingefügt"</source> |
<target>"Menu inserted twice"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidImage" resname="Vcl_Consts_SInvalidImage"> |
<source>"Ungültiges Bild"</source> |
<target>"Invalid image"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SScanLine" resname="Vcl_Consts_SScanLine"> |
<source>"Bereichsüberschreitung bei Zeilenindex"</source> |
<target>"Scan line index out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SChangeIconSize" resname="Vcl_Consts_SChangeIconSize"> |
<source>"Die Größe eines Symbols kann nicht geändert werden"</source> |
<target>"Cannot change the size of an icon"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SChangeWicSize" resname="Vcl_Consts_SChangeWicSize"> |
<source>"Die Größe einer WIC-Grafik kann nicht verändert werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The size of a WIC graphic cannot be changed"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SOleGraphic" resname="Vcl_Consts_SOleGraphic"> |
<source>"Ungültige Operation für TOleGraphic"</source> |
<target>"Invalid operation on TOleGraphic"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SUnknownExtension" resname="Vcl_Consts_SUnknownExtension"> |
<source>"Unbekannte Bilddateierweiterung (.%s)"</source> |
<target>"Unknown picture file extension (.%s)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SUnknownClipboardFormat" resname="Vcl_Consts_SUnknownClipboardFormat"> |
<source>"Nicht unterstütztes Zwischenablagenformat"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Clipboard format not supported"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SUnknownStreamFormat" resname="Vcl_Consts_SUnknownStreamFormat"> |
<source>"Nicht unterstütztes Stream-Format"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Stream format not supported"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SOutOfResources" resname="Vcl_Consts_SOutOfResources"> |
<source>"Systemressourcen erschöpft"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"System resources exhausted"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SNoCanvasHandle" resname="Vcl_Consts_SNoCanvasHandle"> |
<source>"Canvas erlaubt kein Zeichnen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Canvas does not allow characters"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidTextFormatFlag" resname="Vcl_Consts_SInvalidTextFormatFlag"> |
<source>"Das Textformat-Flag '%s' wird nicht unterstützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The text format flag '%s' is not supported"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidFrameIndex" resname="Vcl_Consts_SInvalidFrameIndex"> |
<source>"Ungültiger Bild-Frame-Index %d: es sind %d Frames vorhanden (0-%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid picture frame index %d: there are %d frames available (0-%d)"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidImageSize" resname="Vcl_Consts_SInvalidImageSize"> |
<source>"Ungültige Bildgröße"</source> |
<target>"Invalid image size"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidImageList" resname="Vcl_Consts_SInvalidImageList"> |
<source>"Ungültige Bilderliste"</source> |
<target>"Invalid ImageList"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SReplaceImage" resname="Vcl_Consts_SReplaceImage"> |
<source>"Bild kann nicht ersetzt werden"</source> |
<target>"Unable to Replace Image"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInsertImage" resname="Vcl_Consts_SInsertImage"> |
<source>"Bild kann nicht eingefügt werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Image cannot be inserted"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWinRTInstanceError" resname="System_RTLConsts_SWinRTInstanceError"> |
<source>"Instanz der Klasse %s kann nicht erstellt werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Instance of class %s cannot be created"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverUnsupported" resname="System_RTLConsts_sObserverUnsupported"> |
<source>"Observer wird nicht unterstützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Observer is not supported"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverMultipleSingleCast" resname="System_RTLConsts_sObserverMultipleSingleCast"> |
<source>"Der Observer-Kollektion können nicht mehrere Einfach-Typumwandlungs-Observer hinzugefügt werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Multiple single cast observers cannot be added to observer collection"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverNoInterface" resname="System_RTLConsts_sObserverNoInterface"> |
<source>"Das Objekt implementiert das Observer-Interface nicht"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Object does not implement the Observer interface"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverNoSinglecastFound" resname="System_RTLConsts_sObserverNoSinglecastFound"> |
<source>"Der Observer-Kollektion wurde kein Einfach-Typumwandlungs-Observer mit der ID %d hinzugefügt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No single cast observer with ID %d found in Observer collection"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverNoMulticastFound" resname="System_RTLConsts_sObserverNoMulticastFound"> |
<source>"Der Observer-Kollektion wurde kein Mehrfach-Typumwandlungs-Observer mit der ID %d hinzugefügt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378472</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No multi cast observer with ID %d found in Observer collection"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sObserverNotAvailable" resname="System_RTLConsts_sObserverNotAvailable"> |
<source>"Observer ist nicht verfügbar"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Observer not available"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidDateString" resname="System_RTLConsts_SInvalidDateString"> |
<source>"Ungültiger Datums-String: %s"</source> |
<target>"Invalid date string: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidTimeString" resname="System_RTLConsts_SInvalidTimeString"> |
<source>"Ungültiger Zeit-String: %s"</source> |
<target>"Invalid time string: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidOffsetString" resname="System_RTLConsts_SInvalidOffsetString"> |
<source>"Ungültiger Zeit-Offset-String: %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid time offset string: %s"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sMustWaitOnOneEvent" resname="System_RTLConsts_sMustWaitOnOneEvent"> |
<source>"Es muss auf mindestens ein Ereignis gewartet werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Waiting for at least one event"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sBeginInvokeDestroying" resname="System_RTLConsts_sBeginInvokeDestroying"> |
<source>"BeginInvoke kann bei der Freigabe für TComponent nicht aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"BeginInvoke cannot be called for freeing TComponent"</target> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidBitmap" resname="Vcl_Consts_SInvalidBitmap"> |
<source>"Bitmap ist ungültig"</source> |
<target>"Bitmap image is not valid"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidIcon" resname="Vcl_Consts_SInvalidIcon"> |
<source>"Ungültiges Symbol"</source> |
<target>"Icon image is not valid"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidMetafile" resname="Vcl_Consts_SInvalidMetafile"> |
<source>"Metadatei ist ungültig"</source> |
<target>"Metafile is not valid"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Vcl_Consts_SInvalidPixelFormat" resname="Vcl_Consts_SInvalidPixelFormat"> |
<source>"Ungültiges Pixel-Format"</source> |
<target>"Invalid pixel format"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2008" resname="System_RTLConsts_SWindowsServer2008"> |
<source>"Windows Server 2008"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows7" resname="System_RTLConsts_SWindows7"> |
<source>"Windows 7"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2008R2" resname="System_RTLConsts_SWindowsServer2008R2"> |
<source>"Windows Server 2008 R2"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows2000" resname="System_RTLConsts_SWindows2000"> |
<source>"Windows 2000"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsXP" resname="System_RTLConsts_SWindowsXP"> |
<source>"Windows XP"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2003" resname="System_RTLConsts_SWindowsServer2003"> |
<source>"Windows Server 2003"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2003R2" resname="System_RTLConsts_SWindowsServer2003R2"> |
<source>"Windows Server 2003 R2"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2012" resname="System_RTLConsts_SWindowsServer2012"> |
<source>"Windows Server 2012"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2012R2" resname="System_RTLConsts_SWindowsServer2012R2"> |
<source>"Windows Server 2012 R2"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2016" resname="System_RTLConsts_SWindowsServer2016"> |
<source>"Windows Server 2016"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2019" resname="System_RTLConsts_SWindowsServer2019"> |
<source>"Windows Server 2019"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsServer2022" resname="System_RTLConsts_SWindowsServer2022"> |
<source>"Windows Server 2022"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows8" resname="System_RTLConsts_SWindows8"> |
<source>"Windows 8"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows8Point1" resname="System_RTLConsts_SWindows8Point1"> |
<source>"Windows 8.1"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows10" resname="System_RTLConsts_SWindows10"> |
<source>"Windows 10"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows11" resname="System_RTLConsts_SWindows11"> |
<source>"Windows 11"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SGenericItemNotFound" resname="System_RTLConsts_SGenericItemNotFound"> |
<source>"Eintrag nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Entry not found"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SGenericDuplicateItem" resname="System_RTLConsts_SGenericDuplicateItem"> |
<source>"Duplikate nicht zulässig"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Duplicates are not allowed"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInsufficientRtti" resname="System_RTLConsts_SInsufficientRtti"> |
<source>"Unzureichende RTTI zur Unterstützung dieser Operation verfügbar"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Not enough RTTI for this operation"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SParameterCountMismatch" resname="System_RTLConsts_SParameterCountMismatch"> |
<source>"Parameteranzahl stimmt nicht überein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Paramter count must match"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNonPublicType" resname="System_RTLConsts_SNonPublicType"> |
<source>"Typ '%s' ist im interface-Abschnitt einer Unit nicht deklariert"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Type '%s' is not delcared in the interface setion of a unit"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SByRefArgMismatch" resname="System_RTLConsts_SByRefArgMismatch"> |
<source>"VAR- und OUT-Argumente müssen exakt mit dem Parametertyp übereinstimmen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"VAR- und OUT- arguments must match the paramter type"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SPropIsReadOnly" resname="System_RTLConsts_SPropIsReadOnly"> |
<source>"Eigenschaft '%s' ist schreibgeschützt"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Property '%s' is write-proteted"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SPropIsWriteOnly" resname="System_RTLConsts_SPropIsWriteOnly"> |
<source>"Eigenschaft '%s' kann nur geschrieben werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Property '%s' can only be written"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidRttiDestroy" resname="System_RTLConsts_SInvalidRttiDestroy"> |
<source>"RTTI-Objekte können nicht manuell vom Anwendungscode freigegeben werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"RTTI objects cannot be manually freed using application code"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SServiceNotFound" resname="System_RTLConsts_SServiceNotFound"> |
<source>"Angegebener Dienst für die Anmeldeinformationen nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Service for login information not found"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SVersionStr" resname="System_RTLConsts_SVersionStr"> |
<source>"%s (Version %d.%d, Build %d, %5:s)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SSPVersionStr" resname="System_RTLConsts_SSPVersionStr"> |
<source>"%s Service Pack %4:d (Version %1:d.%2:d, Build %3:d, %5:s)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SVersion32" resname="System_RTLConsts_SVersion32"> |
<source>"32-Bit-Edition"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"32 bit edition"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SVersion64" resname="System_RTLConsts_SVersion64"> |
<source>"64-Bit-Edition"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"64 bit edition"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindows" resname="System_RTLConsts_SWindows"> |
<source>"Windows"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWindowsVista" resname="System_RTLConsts_SWindowsVista"> |
<source>"Windows Vista"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sSpinCountOutOfRange" resname="System_RTLConsts_sSpinCountOutOfRange"> |
<source>"SpinCount außerhalb des Bereichs. Muss zwischen 0 und %d liegen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"SpinCount outside range. It must be between 0 and %d"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sTimespanTooLong" resname="System_RTLConsts_sTimespanTooLong"> |
<source>"TimeSpan zu lang"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"TimeSpan too long"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sInvalidTimespanDuration" resname="System_RTLConsts_sInvalidTimespanDuration"> |
<source>"Die Dauer kann nicht zurückgegeben werden, weil der absolute Wert den Wert von TTimeSpan.MaxValue überschreitet"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The duration cannot be returned, because the absolute value is exceeding TTimeSpan.MaxValue"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sTimespanValueCannotBeNan" resname="System_RTLConsts_sTimespanValueCannotBeNan"> |
<source>"Wert darf nicht NaN"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Value must not be NaN"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sCannotNegateTimespan" resname="System_RTLConsts_sCannotNegateTimespan"> |
<source>"Negation des Minimalwertes einer Zeitspanne ist ungültig"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Negation of minimum value of a time range is invalid"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sInvalidTimespanFormat" resname="System_RTLConsts_sInvalidTimespanFormat"> |
<source>"Ungültiges TimeSpan-Format"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid TimeSpam format"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sTimespanElementTooLong" resname="System_RTLConsts_sTimespanElementTooLong"> |
<source>"TimeSpan-Element zu lang"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"TimeSpan element too long"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoContext" resname="System_RTLConsts_SNoContext"> |
<source>"Keine kontextsensitive Hilfe installiert"</source> |
<target>"No context-sensitive help installed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoContextFound" resname="System_RTLConsts_SNoContextFound"> |
<source>"Keine Hilfe für Kontext %d gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No help available for context %d"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoIndex" resname="System_RTLConsts_SNoIndex"> |
<source>"Index kann nicht geöffnet werden"</source> |
<target>"Unable to open Index"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoSearch" resname="System_RTLConsts_SNoSearch"> |
<source>"Suche kann nicht geöffnet werden"</source> |
<target>"Unable to open Search"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoTableOfContents" resname="System_RTLConsts_SNoTableOfContents"> |
<source>"Inhaltsverzeichnis nicht gefunden"</source> |
<target>"Unable to find a Table of Contents"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoTopics" resname="System_RTLConsts_SNoTopics"> |
<source>"Kein themenbezogenes Hilfesystem installiert"</source> |
<target>"No topic-based help system installed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNothingFound" resname="System_RTLConsts_SNothingFound"> |
<source>"Keine Hilfe für %s gefunden"</source> |
<target>"No help found for %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SArgumentOutOfRange" resname="System_RTLConsts_SArgumentOutOfRange"> |
<source>"Argument außerhalb des Bereichs"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Argument outside range"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SArgumentNil" resname="System_RTLConsts_SArgumentNil"> |
<source>"Argument darf nicht nil sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Argument may not be Nil"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadExternalCheckTerminated" resname="System_RTLConsts_SThreadExternalCheckTerminated"> |
<source>"CheckTerminated kann nicht für einen extern erstellten Thread aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"CheckTerminated cannot be called for an external created thread"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadExternalSetReturnValue" resname="System_RTLConsts_SThreadExternalSetReturnValue"> |
<source>"SetReturnValue kann nicht für einen extern erstellten Thread aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"SetReturnValue cannot be called for an external created thread"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SParamIsNil" resname="System_RTLConsts_SParamIsNil"> |
<source>"Parameter %s darf nicht Nil sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Parameter %s must not be Nil"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SParamIsNegative" resname="System_RTLConsts_SParamIsNegative"> |
<source>"Parameter %s darf kein negativer Wert sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Parameter %s must not be a negative value"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInputBufferExceed" resname="System_RTLConsts_SInputBufferExceed"> |
<source>"Eingabepuffer für %s = %d, %s = %d überschritten"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Input buffer for %s = %d, %s = %d exceeded"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidCharsInPath" resname="System_RTLConsts_SInvalidCharsInPath"> |
<source>"Ungültige Zeichen im Pfad"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid characters in the path name"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidCharsInFileName" resname="System_RTLConsts_SInvalidCharsInFileName"> |
<source>"Ungültige Zeichen im Dateinamen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid characters in the file name"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SEmptyFileName" resname="System_RTLConsts_SEmptyFileName"> |
<source>"Dateiname ist leer"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Filename is empty"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SPathTooLong" resname="System_RTLConsts_SPathTooLong"> |
<source>"Der angegebene Pfad ist zu lang"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Path is too long"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDriveNotFound" resname="System_RTLConsts_SDriveNotFound"> |
<source>"Das Laufwerk wurde nicht gefunden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The drive was not found"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_hNoFilterViewer" resname="System_RTLConsts_hNoFilterViewer"> |
<source>"Kein Hilfe-Viewer, der Filter unterstützt"</source> |
<target>"No help viewer that supports filters"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sArgumentInvalid" resname="System_RTLConsts_sArgumentInvalid"> |
<source>"Ungültiges Argument"</source> |
<target>"Invalid argument"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sInvalidStringAndObjectArrays" resname="System_RTLConsts_sInvalidStringAndObjectArrays"> |
<source>"Die Länge von String- und Objekt-Arrays muss gleich sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"The length of string and object arrays must be equal"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sSameArrays" resname="System_RTLConsts_sSameArrays"> |
<source>"Quell- und Ziel-Arrays dürfen nicht gleich sein"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Source and target arrays must not be equal"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sNoConstruct" resname="System_RTLConsts_sNoConstruct"> |
<source>"Klasse %s soll nicht erzeugt werden"</source> |
<target>"Class %s is not intended to be constructed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_sInvalidTimeoutValue" resname="System_RTLConsts_sInvalidTimeoutValue"> |
<source>"Ungültiger Wert für Zeitüberschreitung: %s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid value for timeout: %s"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SReadError" resname="System_RTLConsts_SReadError"> |
<source>"Stream-Lesefehler"</source> |
<target>"Stream read error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SReadOnlyProperty" resname="System_RTLConsts_SReadOnlyProperty"> |
<source>"Eigenschaft kann nur gelesen werden"</source> |
<target>"Property is read-only"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SRegCreateFailed" resname="System_RTLConsts_SRegCreateFailed"> |
<source>"Erzeugung von Schlüssel %s misslungen"</source> |
<target>"Failed to create key %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SRegGetDataFailed" resname="System_RTLConsts_SRegGetDataFailed"> |
<source>"Fehler beim Holen der Daten für '%s'"</source> |
<target>"Failed to get data for '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SRegSetDataFailed" resname="System_RTLConsts_SRegSetDataFailed"> |
<source>"Fehler beim Setzen der Daten für '%s'"</source> |
<target>"Failed to set data for '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SResNotFound" resname="System_RTLConsts_SResNotFound"> |
<source>"Ressource %s nicht gefunden"</source> |
<target>"Resource %s not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SSeekNotImplemented" resname="System_RTLConsts_SSeekNotImplemented"> |
<source>"%s.Seek nicht implementiert"</source> |
<target>"%s.Seek not implemented"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SSortedListError" resname="System_RTLConsts_SSortedListError"> |
<source>"Operation für sortierte Listen nicht zulässig"</source> |
<target>"Operation not allowed on sorted list"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SUnknownGroup" resname="System_RTLConsts_SUnknownGroup"> |
<source>"%s befindet sich nicht in einer Gruppe für Klassenregistrierungen"</source> |
<target>"%s not in a class registration group"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SUnknownProperty" resname="System_RTLConsts_SUnknownProperty"> |
<source>"Eigenschaft %s existiert nicht"</source> |
<target>"Property %s does not exist"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SWriteError" resname="System_RTLConsts_SWriteError"> |
<source>"Stream-Schreibfehler"</source> |
<target>"Stream write error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadCreateError" resname="System_RTLConsts_SThreadCreateError"> |
<source>"Fehler beim Erzeugen des Thread: %s"</source> |
<target>"Thread creation error: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadError" resname="System_RTLConsts_SThreadError"> |
<source>"Thread-Fehler: %s (%d)"</source> |
<target>"Thread Error: %s (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadExternalTerminate" resname="System_RTLConsts_SThreadExternalTerminate"> |
<source>"Ein extern erstellter Thread kann nicht beendet werden"</source> |
<target>"Cannot terminate an externally created thread"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadExternalWait" resname="System_RTLConsts_SThreadExternalWait"> |
<source>"Auf einen extern erstellten Thread kann nicht gewartet werden"</source> |
<target>"Cannot wait for an externally created thread"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SThreadStartError" resname="System_RTLConsts_SThreadStartError"> |
<source>"Start kann für einen laufenden oder unterbrochenen Thread nicht aufgerufen werden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Start cannot be called for a running or paused thread"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SFCreateErrorEx" resname="System_RTLConsts_SFCreateErrorEx"> |
<source>"Datei \"%s\" kann nicht erstellt werden. %s"</source> |
<target>"Cannot create file \"%s\". %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SFOpenErrorEx" resname="System_RTLConsts_SFOpenErrorEx"> |
<source>"Datei %s kann nicht geöffnet werden. %s"</source> |
<target>"Cannot open file \"%s\". %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidImage" resname="System_RTLConsts_SInvalidImage"> |
<source>"Ungültiges Stream-Format"</source> |
<target>"Invalid stream format"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidName" resname="System_RTLConsts_SInvalidName"> |
<source>"''%s'' ist kein gültiger Komponentenname"</source> |
<target>"''%s'' is not a valid component name"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335378935</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidProperty" resname="System_RTLConsts_SInvalidProperty"> |
<source>"Ungültiger Eigenschaftswert"</source> |
<target>"Invalid property value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidPropertyPath" resname="System_RTLConsts_SInvalidPropertyPath"> |
<source>"Ungültiger Pfad für Eigenschaft"</source> |
<target>"Invalid property path"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidPropertyValue" resname="System_RTLConsts_SInvalidPropertyValue"> |
<source>"Ungültiger Eigenschaftswert"</source> |
<target>"Invalid property value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SInvalidRegType" resname="System_RTLConsts_SInvalidRegType"> |
<source>"Ungültiger Datentyp für '%s'"</source> |
<target>"Invalid data type for '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListCapacityError" resname="System_RTLConsts_SListCapacityError"> |
<source>"Kapazität der Liste ist erschöpft (%d)"</source> |
<target>"List capacity out of bounds (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListCountError" resname="System_RTLConsts_SListCountError"> |
<source>"Zu viele Einträge in der Liste (%d)"</source> |
<target>"List count out of bounds (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListIndexError" resname="System_RTLConsts_SListIndexError"> |
<source>"Listenindex außerhalb des gültigen Bereichs (%d)"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"List index outside valid range (%d)"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListIndexErrorRangeReason" resname="System_RTLConsts_SListIndexErrorRangeReason"> |
<source>". %s-Bereich ist 0..%d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>". %s-Range is 0..%d"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SListIndexErrorEmptyReason" resname="System_RTLConsts_SListIndexErrorEmptyReason"> |
<source>". %s ist leer"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>". %s is empty"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SMemoryStreamError" resname="System_RTLConsts_SMemoryStreamError"> |
<source>"Expandieren des Speicher-Stream wegen Speichermangel nicht möglich"</source> |
<target>"Out of memory while expanding memory stream"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SNoComSupport" resname="System_RTLConsts_SNoComSupport"> |
<source>"%s wurde nicht als COM-Klasse registriert"</source> |
<target>"%s has not been registered as a COM class"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SPropertyException" resname="System_RTLConsts_SPropertyException"> |
<source>"Fehler beim Lesen von %s%s%s: %s"</source> |
<target>"Error reading %s%s%s: %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidCharCount" resname="System_SysConst_SInvalidCharCount"> |
<source>"Ungültige Anzahl (%d)"</source> |
<target>"Invalid count (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidDestinationIndex" resname="System_SysConst_SInvalidDestinationIndex"> |
<source>"Ungültiger Zielindex (%d)"</source> |
<target>"Invalid destination index (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidCodePage" resname="System_SysConst_SInvalidCodePage"> |
<source>"Ungültige Codeseite"</source> |
<target>"Invalid code page"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidEncodingName" resname="System_SysConst_SInvalidEncodingName"> |
<source>"Ungültiger Codierungsname"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid coding name"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SNoMappingForUnicodeCharacter" resname="System_SysConst_SNoMappingForUnicodeCharacter"> |
<source>"Keine Zuordnung für Unicode-Zeichen in der Multibyte-Zielcodeseite vorhanden"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"No mapping for Unicode character in the target Multibyte code page found"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidStringBaseIndex" resname="System_SysConst_SInvalidStringBaseIndex"> |
<source>"Ungültiger StringBaseIndex"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Invalid StringBaseIndex"</target> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SAncestorNotFound" resname="System_RTLConsts_SAncestorNotFound"> |
<source>"Vorfahr für '%s' nicht gefunden"</source> |
<target>"Ancestor for '%s' not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SAssignError" resname="System_RTLConsts_SAssignError"> |
<source>"%s kann nicht zu %s zugewiesen werden"</source> |
<target>"Cannot assign a %s to a %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SBitsIndexError" resname="System_RTLConsts_SBitsIndexError"> |
<source>"Bits-Index außerhalb des zulässigen Bereichs"</source> |
<target>"Bits index out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SCantWriteResourceStreamError" resname="System_RTLConsts_SCantWriteResourceStreamError"> |
<source>"In einen zum Lesen geöffneten Ressourcen-Stream kann nicht geschrieben werden"</source> |
<target>"Can't write to a read-only resource stream"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SCheckSynchronizeError" resname="System_RTLConsts_SCheckSynchronizeError"> |
<source>"CheckSynchronize wurde vom Thread $%x aufgerufen, der NICHT der Haupt-Thread ist."</source> |
<target>"CheckSynchronize called from thread $%x, which is NOT the main thread"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SClassNotFound" resname="System_RTLConsts_SClassNotFound"> |
<source>"Klasse %s nicht gefunden"</source> |
<target>"Class %s not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDuplicateClass" resname="System_RTLConsts_SDuplicateClass"> |
<source>"Klasse mit der Bezeichnung %s existiert bereits"</source> |
<target>"A class named %s already exists"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDuplicateItem" resname="System_RTLConsts_SDuplicateItem"> |
<source>"Liste gestattet keine doppelten Einträge ($0%x)"</source> |
<target>"List does not allow duplicates ($0%x)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDuplicateName" resname="System_RTLConsts_SDuplicateName"> |
<source>"Komponente mit der Bezeichnung %s existiert bereits"</source> |
<target>"A component named %s already exists"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_RTLConsts_SDuplicateString" resname="System_RTLConsts_SDuplicateString"> |
<source>"In der String-Liste sind Duplikate nicht zulässig"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Duplicates are not allowed in string list"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameWed" resname="System_SysConst_SShortDayNameWed"> |
<source>"Mi"</source> |
<target>"Wed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameThu" resname="System_SysConst_SShortDayNameThu"> |
<source>"Do"</source> |
<target>"Thu"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameFri" resname="System_SysConst_SShortDayNameFri"> |
<source>"Fr"</source> |
<target>"Fri"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameSat" resname="System_SysConst_SShortDayNameSat"> |
<source>"Sa"</source> |
<target>"Sat"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameSun" resname="System_SysConst_SLongDayNameSun"> |
<source>"Sonntag"</source> |
<target>"Sunday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameMon" resname="System_SysConst_SLongDayNameMon"> |
<source>"Montag"</source> |
<target>"Monday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameTue" resname="System_SysConst_SLongDayNameTue"> |
<source>"Dienstag"</source> |
<target>"Tuesday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameWed" resname="System_SysConst_SLongDayNameWed"> |
<source>"Mittwoch"</source> |
<target>"Wednesday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameThu" resname="System_SysConst_SLongDayNameThu"> |
<source>"Donnerstag"</source> |
<target>"Thursday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameFri" resname="System_SysConst_SLongDayNameFri"> |
<source>"Freitag"</source> |
<target>"Friday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongDayNameSat" resname="System_SysConst_SLongDayNameSat"> |
<source>"Samstag"</source> |
<target>"Saturday"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SCannotCreateDir" resname="System_SysConst_SCannotCreateDir"> |
<source>"Verzeichnis kann nicht erstellt werden"</source> |
<target>"Unable to create directory"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidSourceArray" resname="System_SysConst_SInvalidSourceArray"> |
<source>"Ungültiges Quell-Array"</source> |
<target>"Invalid source array"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidDestinationArray" resname="System_SysConst_SInvalidDestinationArray"> |
<source>"Ungültiges Ziel-Array"</source> |
<target>"Invalid destination array"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SCharIndexOutOfBounds" resname="System_SysConst_SCharIndexOutOfBounds"> |
<source>"Zeichenindex außerhalb des gültigen Bereichs (%d)"</source> |
<target>"Character index out of bounds (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SByteIndexOutOfBounds" resname="System_SysConst_SByteIndexOutOfBounds"> |
<source>"Startindex außerhalb des gültigen Bereichs (%d)"</source> |
<target>"Start index out of bounds (%d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameDec" resname="System_SysConst_SShortMonthNameDec"> |
<source>"Dez"</source> |
<target>"Dec"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameJan" resname="System_SysConst_SLongMonthNameJan"> |
<source>"Januar"</source> |
<target>"January"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameFeb" resname="System_SysConst_SLongMonthNameFeb"> |
<source>"Februar"</source> |
<target>"February"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameMar" resname="System_SysConst_SLongMonthNameMar"> |
<source>"März"</source> |
<target>"March"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameApr" resname="System_SysConst_SLongMonthNameApr"> |
<source>"April"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameMay" resname="System_SysConst_SLongMonthNameMay"> |
<source>"Mai"</source> |
<target>"May"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameJun" resname="System_SysConst_SLongMonthNameJun"> |
<source>"Juni"</source> |
<target>"June"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameJul" resname="System_SysConst_SLongMonthNameJul"> |
<source>"Juli"</source> |
<target>"July"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameAug" resname="System_SysConst_SLongMonthNameAug"> |
<source>"August"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameSep" resname="System_SysConst_SLongMonthNameSep"> |
<source>"September"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameOct" resname="System_SysConst_SLongMonthNameOct"> |
<source>"Oktober"</source> |
<target>"October"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameNov" resname="System_SysConst_SLongMonthNameNov"> |
<source>"November"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SLongMonthNameDec" resname="System_SysConst_SLongMonthNameDec"> |
<source>"Dezember"</source> |
<target>"December"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameSun" resname="System_SysConst_SShortDayNameSun"> |
<source>"So"</source> |
<target>"Sun"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameMon" resname="System_SysConst_SShortDayNameMon"> |
<source>"Mo"</source> |
<target>"Mon"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortDayNameTue" resname="System_SysConst_SShortDayNameTue"> |
<source>"Di"</source> |
<target>"Tue"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAssertError" resname="System_SysConst_SAssertError"> |
<source>"%s (%s, Zeile %d)"</source> |
<target>"%s (%s, line %d)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAbstractError" resname="System_SysConst_SAbstractError"> |
<source>"Abstrakter Fehler"</source> |
<target>"Abstract Error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SModuleAccessViolation" resname="System_SysConst_SModuleAccessViolation"> |
<source>"Zugriffsverletzung bei Adresse %p in Modul '%s'. %s von Adresse %p"</source> |
<target>"Access violation at address %p in module '%s'. %s of address %p"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SOSError" resname="System_SysConst_SOSError"> |
<source>"Systemfehler. Code: %d.\r\n%s%s"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"System error. Code: %d.\r\n%s%s"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SUnkOSError" resname="System_SysConst_SUnkOSError"> |
<source>"Ein Aufruf einer Betriebssystemfunktion ist fehlgeschlagen"</source> |
<target>"A call to an OS function failed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameJan" resname="System_SysConst_SShortMonthNameJan"> |
<source>"Jan"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameFeb" resname="System_SysConst_SShortMonthNameFeb"> |
<source>"Feb"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameMar" resname="System_SysConst_SShortMonthNameMar"> |
<source>"Mär"</source> |
<target>"Mar"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameApr" resname="System_SysConst_SShortMonthNameApr"> |
<source>"Apr"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameMay" resname="System_SysConst_SShortMonthNameMay"> |
<source>"Mai"</source> |
<target>"May"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameJun" resname="System_SysConst_SShortMonthNameJun"> |
<source>"Jun"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameJul" resname="System_SysConst_SShortMonthNameJul"> |
<source>"Jul"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameAug" resname="System_SysConst_SShortMonthNameAug"> |
<source>"Aug"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335379861</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameSep" resname="System_SysConst_SShortMonthNameSep"> |
<source>"Sep"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameOct" resname="System_SysConst_SShortMonthNameOct"> |
<source>"Okt"</source> |
<target>"Oct"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SShortMonthNameNov" resname="System_SysConst_SShortMonthNameNov"> |
<source>"Nov"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeTooManyCustom" resname="System_SysConst_SVarTypeTooManyCustom"> |
<source>"Es wurden zu viele benutzerdefinierte Variant-Typen registriert"</source> |
<target>"Too many custom variant types have been registered"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeCouldNotConvert" resname="System_SysConst_SVarTypeCouldNotConvert"> |
<source>"Variante des Typs (%s) konnte nicht in Typ (%s) konvertiert werden"</source> |
<target>"Could not convert variant of type (%s) into type (%s)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeConvertOverflow" resname="System_SysConst_SVarTypeConvertOverflow"> |
<source>"Überlauf bei der Konvertierung einer Variante vom Typ (%s) in Typ (%s)"</source> |
<target>"Overflow while converting variant of type (%s) into type (%s)"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarOverflow" resname="System_SysConst_SVarOverflow"> |
<source>"Variant-Überlauf"</source> |
<target>"Variant overflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarInvalid" resname="System_SysConst_SVarInvalid"> |
<source>"Ungültiges Argument"</source> |
<target>"Invalid argument"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarBadType" resname="System_SysConst_SVarBadType"> |
<source>"Ungültiger Variant-Typ"</source> |
<target>"Invalid variant type"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarNotImplemented" resname="System_SysConst_SVarNotImplemented"> |
<source>"Operation nicht unterstützt"</source> |
<target>"Operation not supported"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarUnexpected" resname="System_SysConst_SVarUnexpected"> |
<source>"Unerwarteter Variant-Fehler"</source> |
<target>"Unexpected variant error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SExternalException" resname="System_SysConst_SExternalException"> |
<source>"Externe Exception %x"</source> |
<target>"External exception %x"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAssertionFailed" resname="System_SysConst_SAssertionFailed"> |
<source>"Auswertung von assert fehlgeschlagen"</source> |
<target>"Assertion failed"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SIntfCastError" resname="System_SysConst_SIntfCastError"> |
<source>"Interface nicht unterstützt"</source> |
<target>"Interface not supported"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SSafecallException" resname="System_SysConst_SSafecallException"> |
<source>"Exception in safecall-Methode"</source> |
<target>"Exception in safecall method"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SMonitorLockException" resname="System_SysConst_SMonitorLockException"> |
<source>"Kein Eigentümer der Objektsperre"</source> |
<target>"Object lock not owned"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SNoMonitorSupportException" resname="System_SysConst_SNoMonitorSupportException"> |
<source>"Unterstützungsfunktion für Monitor nicht initialisiert"</source> |
<target>"Monitor support function not initialized"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SNotImplemented" resname="System_SysConst_SNotImplemented"> |
<source>"Feature nicht implementiert"</source> |
<target>"Feature not implemented"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SObjectDisposed" resname="System_SysConst_SObjectDisposed"> |
<source>"Methode für freigegebenes Objekt aufgerufen"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Method called at freed object"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SArgumentMissing" resname="System_SysConst_SArgumentMissing"> |
<source>"Kein Argument für Format '%s'"</source> |
<target>"No argument for format '%s'"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SDispatchError" resname="System_SysConst_SDispatchError"> |
<source>"Variant-Methodenaufruf nicht unterstützt"</source> |
<target>"Variant method calls not supported"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SReadAccess" resname="System_SysConst_SReadAccess"> |
<source>"Lesen"</source> |
<target>"Read"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SWriteAccess" resname="System_SysConst_SWriteAccess"> |
<source>"Schreiben"</source> |
<target>"Write"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SExecuteAccess" resname="System_SysConst_SExecuteAccess"> |
<source>"Ausführung"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Execution"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidAccess" resname="System_SysConst_SInvalidAccess"> |
<source>"Ungültiger Zugriff"</source> |
<target>"Invalid access"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarArrayCreate" resname="System_SysConst_SVarArrayCreate"> |
<source>"Fehler beim Erzeugen von Variante oder sicherem Array"</source> |
<target>"Error creating variant or safe array"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarArrayBounds" resname="System_SysConst_SVarArrayBounds"> |
<source>"Variante oder sicheres Array-Index außerhalb des gültigen Bereichs"</source> |
<target>"Variant or safe array index out of bounds"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarArrayLocked" resname="System_SysConst_SVarArrayLocked"> |
<source>"Variante oder sicheres Array ist gesperrt"</source> |
<target>"Variant or safe array is locked"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidVarCast" resname="System_SysConst_SInvalidVarCast"> |
<source>"Ungültige Varianten-Typumwandlung"</source> |
<target>"Invalid variant type conversion"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidVarOp" resname="System_SysConst_SInvalidVarOp"> |
<source>"Ungültige Variantenoperation"</source> |
<target>"Invalid variant operation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidVarNullOp" resname="System_SysConst_SInvalidVarNullOp"> |
<source>"Ungültige NULL-Variantenoperation"</source> |
<target>"Invalid NULL variant operation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidVarOpWithHResultWithPrefix" resname="System_SysConst_SInvalidVarOpWithHResultWithPrefix"> |
<source>"Ungültige Variantenoperation (%s%.8x)\n%s"</source> |
<target>"Invalid variant operation (%s%.8x)\r\n%s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeOutOfRangeWithPrefix" resname="System_SysConst_SVarTypeOutOfRangeWithPrefix"> |
<source>"Benutzerdefinierter Variant-Typ (%s%.4x) außerhalb des gültigen Bereichs"</source> |
<target>"Custom variant type (%s%.4x) is out of range"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeAlreadyUsedWithPrefix" resname="System_SysConst_SVarTypeAlreadyUsedWithPrefix"> |
<source>"Benutzerdefinierter Variant-Typ (%s%.4x) bereits benutzt von %s"</source> |
<target>"Custom variant type (%s%.4x) already used by %s"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SVarTypeNotUsableWithPrefix" resname="System_SysConst_SVarTypeNotUsableWithPrefix"> |
<source>"Benutzerdefinierter Variant-Typ (%s%.4x) nicht brauchbar"</source> |
<target>"Custom variant type (%s%.4x) is not usable"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SRangeError" resname="System_SysConst_SRangeError"> |
<source>"Fehler bei Bereichsprüfung"</source> |
<target>"Range check error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SIntOverflow" resname="System_SysConst_SIntOverflow"> |
<source>"Integerüberlauf"</source> |
<target>"Integer overflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidOp" resname="System_SysConst_SInvalidOp"> |
<source>"Ungültige Gleitkommaoperation"</source> |
<target>"Invalid floating point operation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SZeroDivide" resname="System_SysConst_SZeroDivide"> |
<source>"Gleitkommadivision durch Null"</source> |
<target>"Floating point division by zero"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SOverflow" resname="System_SysConst_SOverflow"> |
<source>"Gleitkommaüberlauf"</source> |
<target>"Floating point overflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SUnderflow" resname="System_SysConst_SUnderflow"> |
<source>"Gleitkommaunterlauf"</source> |
<target>"Floating point underflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidPointer" resname="System_SysConst_SInvalidPointer"> |
<source>"Ungültige Zeigeroperation"</source> |
<target>"Invalid pointer operation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidCast" resname="System_SysConst_SInvalidCast"> |
<source>"Ungültige Typumwandlung"</source> |
<target>"Invalid class typecast"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAccessViolationArg3" resname="System_SysConst_SAccessViolationArg3"> |
<source>"Zugriffsverletzung bei Adresse %p. %s von Adresse %p"</source> |
<target>"Access violation at address %p. %s of address %p"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAccessViolationNoArg" resname="System_SysConst_SAccessViolationNoArg"> |
<source>"Zugriffsverletzung"</source> |
<target>"Access violation"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SStackOverflow" resname="System_SysConst_SStackOverflow"> |
<source>"Stack-Überlauf"</source> |
<target>"Stack overflow"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335380671</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SControlC" resname="System_SysConst_SControlC"> |
<source>"Strg+C gedrückt"</source> |
<target>"Control-C hit"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SPrivilege" resname="System_SysConst_SPrivilege"> |
<source>"Privilegierte Anweisung"</source> |
<target>"Privileged instruction"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SException" resname="System_SysConst_SException"> |
<source>"Exception %s in Modul %s bei %p.\r\n%s%s\r\n"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Exception %s in module %s at %p.\r\n%s%s\r\n"</target> |
</trans-unit> |
<trans-unit id="System_SysConst_SExceptTitle" resname="System_SysConst_SExceptTitle"> |
<source>"Anwendungsfehler"</source> |
<target>"Application Error"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidFormat" resname="System_SysConst_SInvalidFormat"> |
<source>"Format '%s' ungültig oder nicht kompatibel mit Argument"</source> |
<target>"Format '%s' invalid or incompatible with argument"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SUnknown" resname="System_SysConst_SUnknown"> |
<source>"<unbekannt>"</source> |
<target>"<unknown>"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidInteger" resname="System_SysConst_SInvalidInteger"> |
<source>"'%s' ist kein gültiger Integerwert"</source> |
<target>"'%s' is not a valid integer value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidTimeStamp" resname="System_SysConst_SInvalidTimeStamp"> |
<source>"'%d.%d' ist kein gültiger Zeitstempel"</source> |
<target>"'%d.%d' is not a valid timestamp"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidGUID" resname="System_SysConst_SInvalidGUID"> |
<source>"'%s' kein gültiger Wert für GUID"</source> |
<target>"'%s' is not a valid GUID value"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_STimeEncodeError" resname="System_SysConst_STimeEncodeError"> |
<source>"Ungültiges Argument zum Codieren der Uhrzeit"</source> |
<target>"Invalid argument to time encode"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SDateEncodeError" resname="System_SysConst_SDateEncodeError"> |
<source>"Ungültiges Argument zum Codieren des Datums"</source> |
<target>"Invalid argument to date encode"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SOutOfMemory" resname="System_SysConst_SOutOfMemory"> |
<source>"Zu wenig Arbeitsspeicher"</source> |
<target>"Out of memory"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInOutError" resname="System_SysConst_SInOutError"> |
<source>"E/A-Fehler %d"</source> |
<target>"I/O error %d"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SFileNotFound" resname="System_SysConst_SFileNotFound"> |
<source>"Datei nicht gefunden"</source> |
<target>"File not found"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidUnknownFilename" resname="System_SysConst_SInvalidUnknownFilename"> |
<source>"Ungültiger Dateiname"</source> |
<target>"Invalid filename"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_STooManyOpenFiles" resname="System_SysConst_STooManyOpenFiles"> |
<source>"Zu viele geöffnete Dateien"</source> |
<target>"Too many open files"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SAccessDenied" resname="System_SysConst_SAccessDenied"> |
<source>"Dateizugriff verweigert"</source> |
<target>"File access denied"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SEndOfFile" resname="System_SysConst_SEndOfFile"> |
<source>"Versuch hinter dem Dateiende zu lesen"</source> |
<target>"Read beyond end of file"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SDiskFull" resname="System_SysConst_SDiskFull"> |
<source>"Zu wenig Speicherplatz"</source> |
<target>"Disk full"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SInvalidInput" resname="System_SysConst_SInvalidInput"> |
<source>"Ungültige numerische Eingabe"</source> |
<target>"Invalid numeric input"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="System_SysConst_SDivByZero" resname="System_SysConst_SDivByZero"> |
<source>"Division durch Null"</source> |
<target>"Division by zero"</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033538125</prop> |
<prop prop-type="Status">2</prop> |
</prop-group> |
</trans-unit> |
<trans-unit id="Global_Cheat1Text" resname="Global_Cheat1Text"> |
<source>"Unendlich Leben!"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.9646243287</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Infinite lives!"</target> |
</trans-unit> |
<trans-unit id="GamMain_SNormalGame" resname="GamMain_SNormalGame"> |
<source>"Normales Spiel"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.9787366551</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Normal game"</target> |
</trans-unit> |
<trans-unit id="GamMain_SRandomGame" resname="GamMain_SRandomGame"> |
<source>"Zufalls-Level"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.9787366551</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Random level"</target> |
</trans-unit> |
<trans-unit id="GamMain_SLevelEditor" resname="GamMain_SLevelEditor"> |
<source>"Level-Editor"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.9787366551</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
<target>"Level Editor"</target> |
</trans-unit> |
<trans-unit id="GamMain_SLevelScene" resname="GamMain_SLevelScene"> |
<source>"Level %d"</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.9869775231</prop> |
<prop prop-type="Status">1</prop> |
</prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/SpaceMission_ENU.bdsproj |
---|
0,0 → 1,42 |
<?xml version="1.0" encoding="utf-8"?> |
<BorlandProject> |
<PersonalityInfo> |
<Option> |
<Option Name="Personality">W32ResourceDLL.Personality</Option> |
<Option Name="ProjectType">ResourceDLL</Option> |
<Option Name="Version">1.0</Option> |
<Option Name="GUID">{84B84096-C0AD-4BBB-912F-1D679AFBF3A9}</Option> |
</Option> |
</PersonalityInfo> |
<W32ResourceDLL.Personality> |
<Source> |
<Source Name="MainSource">SpaceMission.dpr</Source> |
</Source> |
<Options> |
<Options Name="BaseLang">1031</Options> |
<Options Name="TargetName">..\SpaceMission.ENU</Options> |
<Options Name="BRCC_IncludePath"></Options> |
<Options Name="Company"></Options> |
<Options Name="Configuration"></Options> |
<Options Name="Copyright"></Options> |
<Options Name="Description"></Options> |
<Options Name="Trademark"></Options> |
<Options Name="Product"></Options> |
<Options Name="ProductVersion"></Options> |
<Options Name="Title"></Options> |
<Options Name="FileVersion"></Options> |
<Options Name="Evidence"></Options> |
<Options Name="KeyFile"></Options> |
<Options Name="KeyName"></Options> |
</Options> |
<FileList> |
<File FileName="ComHilfe.dfm" ContainerId="W32Form" ModuleName="ComHilfe.dfm"/> |
<File FileName="ComInfo.dfm" ContainerId="W32Form" ModuleName="ComInfo.dfm"/> |
<File FileName="GamCheat.dfm" ContainerId="W32Form" ModuleName="GamCheat.dfm"/> |
<File FileName="GamMain.dfm" ContainerId="W32Form" ModuleName="GamMain.dfm"/> |
<File FileName="GamSpeicherung.dfm" ContainerId="W32Form" ModuleName="GamSpeicherung.dfm"/> |
<File FileName="GamSplash.dfm" ContainerId="W32Form" ModuleName="GamSplash.dfm"/> |
<File FileName="SpaceMission_DRC.rc" ContainerId="W32RC" ModuleName="SpaceMission_DRC.rc"/> |
</FileList> |
</W32ResourceDLL.Personality> |
</BorlandProject> |
/ENU/ComHilfe.dfn |
---|
0,0 → 1,118 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\ComHilfe.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\ComHilfe.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4205555556</prop> |
<prop prop-type="OrigDateTime">45405.5832407407</prop> |
<prop prop-type="XlatDateTime">45407.6943518519</prop> |
<prop prop-type="Translated">20</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:HilfeForm.Left" resname="O:HilfeForm.Left"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">0</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.Top" resname="O:HilfeForm.Top"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">1</prop><prop prop-type="Order">1</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.ClientHeight" resname="O:HilfeForm.ClientHeight"> |
<source>484</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.ClientWidth" resname="O:HilfeForm.ClientWidth"> |
<source>730</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">3</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.Color" resname="O:HilfeForm.Color"> |
<source>clBtnFace</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">4</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.Font.Charset" resname="O:HilfeForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.Font.Color" resname="O:HilfeForm.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.Font.Height" resname="O:HilfeForm.Font.Height"> |
<source>-12</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.Font.Name" resname="O:HilfeForm.Font.Name"> |
<source>'Segoe UI'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.Font.Style" resname="O:HilfeForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.Position" resname="O:HilfeForm.Position"> |
<source>poMainFormCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.TextHeight" resname="O:HilfeForm.TextHeight"> |
<source>15</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">THilfeForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.O:WebBrowser1.Left" resname="O:HilfeForm.O:WebBrowser1.Left"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TWebBrowser</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.O:WebBrowser1.Top" resname="O:HilfeForm.O:WebBrowser1.Top"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TWebBrowser</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.O:WebBrowser1.Width" resname="O:HilfeForm.O:WebBrowser1.Width"> |
<source>730</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TWebBrowser</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.O:WebBrowser1.Height" resname="O:HilfeForm.O:WebBrowser1.Height"> |
<source>484</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TWebBrowser</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.O:WebBrowser1.Align" resname="O:HilfeForm.O:WebBrowser1.Align"> |
<source>alClient</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TWebBrowser</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.O:WebBrowser1.TabOrder" resname="O:HilfeForm.O:WebBrowser1.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TWebBrowser</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.O:WebBrowser1.OnBeforeNavigate2" resname="O:HilfeForm.O:WebBrowser1.OnBeforeNavigate2"> |
<source>WebBrowser1BeforeNavigate2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TWebBrowser</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:HilfeForm.O:WebBrowser1.ControlData" resname="O:HilfeForm.O:WebBrowser1.ControlData"> |
<source>4C000000734B0000063200000000000000000000000000000000000000000000000000004C000000000000000000000001000000E0D057007335CF11AE6908002B2E126208000000000000004C0000000114020000000000C000000000000046800000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334932176</prop><prop prop-type="Status">6</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TWebBrowser</prop><prop prop-type="Localize">1</prop><prop prop-type="Open">{</prop><prop prop-type="Close">}</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/ComInfo.dfn |
---|
0,0 → 1,737 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\ComInfo.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\ComInfo.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4205555556</prop> |
<prop prop-type="OrigDateTime">45407.694375</prop> |
<prop prop-type="XlatDateTime">45407.6943518519</prop> |
<prop prop-type="Translated">139</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:InfoForm.Left" resname="O:InfoForm.Left"> |
<source>289</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">0</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.Top" resname="O:InfoForm.Top"> |
<source>184</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">1</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.BorderStyle" resname="O:InfoForm.BorderStyle"> |
<source>bsDialog</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.Caption" resname="O:InfoForm.Caption"> |
<source>'Informationen'</source> |
<target>'About this game'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">1</prop><prop prop-type="Order">3</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.ClientHeight" resname="O:InfoForm.ClientHeight"> |
<source>343</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">4</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.ClientWidth" resname="O:InfoForm.ClientWidth"> |
<source>384</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.Color" resname="O:InfoForm.Color"> |
<source>clBtnFace</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.Font.Charset" resname="O:InfoForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.Font.Color" resname="O:InfoForm.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.Font.Height" resname="O:InfoForm.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.Font.Name" resname="O:InfoForm.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.Font.Style" resname="O:InfoForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.Position" resname="O:InfoForm.Position"> |
<source>poMainFormCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.OnCreate" resname="O:InfoForm.OnCreate"> |
<source>FormCreate</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.DesignSize[0]" resname="O:InfoForm.DesignSize[0]"> |
<source>384</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop><prop prop-type="Open">(</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.DesignSize[1]" resname="O:InfoForm.DesignSize[1]"> |
<source>343</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop><prop prop-type="Close">)</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.TextHeight" resname="O:InfoForm.TextHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934028</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TInfoForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:HomeLbl.Left" resname="O:InfoForm.O:HomeLbl.Left"> |
<source>32</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:HomeLbl.Top" resname="O:InfoForm.O:HomeLbl.Top"> |
<source>136</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:HomeLbl.Width" resname="O:InfoForm.O:HomeLbl.Width"> |
<source>48</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:HomeLbl.Height" resname="O:InfoForm.O:HomeLbl.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">20</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:HomeLbl.Caption" resname="O:InfoForm.O:HomeLbl.Caption"> |
<source>'Webseite:'</source> |
<target>'Website:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">21</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:HomeLbl.Transparent" resname="O:InfoForm.O:HomeLbl.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">22</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Image.Left" resname="O:InfoForm.O:Image.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">23</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Image.Top" resname="O:InfoForm.O:Image.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">24</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Image.Width" resname="O:InfoForm.O:Image.Width"> |
<source>65</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">25</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Image.Height" resname="O:InfoForm.O:Image.Height"> |
<source>57</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">26</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Image.Center" resname="O:InfoForm.O:Image.Center"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">27</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Image.Picture.Data" resname="O:InfoForm.O:Image.Picture.Data"> |
<source>07544269746D617076020000424D7602000000000000760000002800000020000000200000000100040000000000000200000000000000000000100000000000000000000000000080000080000000808000800000008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00000000000000000000000000000000000EE8787878EEEEEEE03F30878EEEEEE00EE8787878EEEEEEE03F30878EEEEEE00EE8787878EEEEEEE03F30878EEEEEE00EE8787878EEEEEEE03F30878EEEEEE00887787877788888803F3088787EEEE00788787878878887803F3088887EEEE00788887888878887803F3088887EEEE00877888887788888703F308887EEEEE008887777788888880378830888888EE007777777777777703787883087777EE00888888888888803787378830888888008888888888880378737878830888880077777777788037873737378830888E00888888888803787373737378830EEE00887777778800001111111111100EEE00888888888888899B999B99999EEEEE00888888888888899B9B99BB9B9EEEEE0088888888888899BB9BB99BB99EEEEE0078888888888899B999B999999EEEEE0087788888778899B9B9BB9BB99EEEEE00888778778888E9B9B9BB9999EEEEEE0088888788888EE9B99B9BB9BEEEEEEE00EE8888888EEEEE999B9999EEEEEEEE00EEEE888EEEEEEEE99BB999EEEEEEEE00EEEEE8EEEEEEEEEE999B9EEEEEEEEE00EEEEE8EEEEEEEEEEEE999EEEEEEEEE00EEEEE8EEEEEEEEEEEEE99EEEEEEEEE00EEEEE8EEEEEEEEEEEEE9EEEEEEEEEE00EEEEE8EEEEEEEEEEEEEEEEEEEEEEEE00EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE000000000000000000000000000000000</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">28</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop><prop prop-type="Open">{</prop><prop prop-type="Close">}</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Image.Stretch" resname="O:InfoForm.O:Image.Stretch"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">29</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Left" resname="O:InfoForm.O:FirmaLbl.Left"> |
<source>88</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">30</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Top" resname="O:InfoForm.O:FirmaLbl.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">31</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Width" resname="O:InfoForm.O:FirmaLbl.Width"> |
<source>74</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">32</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Height" resname="O:InfoForm.O:FirmaLbl.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">33</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Caption" resname="O:InfoForm.O:FirmaLbl.Caption"> |
<source>'ViaThinkSoft'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">34</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Font.Charset" resname="O:InfoForm.O:FirmaLbl.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">35</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Font.Color" resname="O:InfoForm.O:FirmaLbl.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">36</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Font.Height" resname="O:InfoForm.O:FirmaLbl.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">37</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Font.Name" resname="O:InfoForm.O:FirmaLbl.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">38</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Font.Style" resname="O:InfoForm.O:FirmaLbl.Font.Style"> |
<source>[fsBold]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">39</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.ParentFont" resname="O:InfoForm.O:FirmaLbl.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">40</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:FirmaLbl.Transparent" resname="O:InfoForm.O:FirmaLbl.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">41</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:NameLbl.Left" resname="O:InfoForm.O:NameLbl.Left"> |
<source>104</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">42</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:NameLbl.Top" resname="O:InfoForm.O:NameLbl.Top"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">43</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:NameLbl.Width" resname="O:InfoForm.O:NameLbl.Width"> |
<source>66</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">44</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:NameLbl.Height" resname="O:InfoForm.O:NameLbl.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">45</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:NameLbl.Caption" resname="O:InfoForm.O:NameLbl.Caption"> |
<source>'SpaceMission'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">46</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:NameLbl.Transparent" resname="O:InfoForm.O:NameLbl.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">47</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:VersionLbl.Left" resname="O:InfoForm.O:VersionLbl.Left"> |
<source>232</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">48</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:VersionLbl.Top" resname="O:InfoForm.O:VersionLbl.Top"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">49</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:VersionLbl.Width" resname="O:InfoForm.O:VersionLbl.Width"> |
<source>35</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">50</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:VersionLbl.Height" resname="O:InfoForm.O:VersionLbl.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">51</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:VersionLbl.Caption" resname="O:InfoForm.O:VersionLbl.Caption"> |
<source>'Version'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">52</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:VersionLbl.Transparent" resname="O:InfoForm.O:VersionLbl.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">53</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:EMailLbl.Left" resname="O:InfoForm.O:EMailLbl.Left"> |
<source>32</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">54</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:EMailLbl.Top" resname="O:InfoForm.O:EMailLbl.Top"> |
<source>120</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">55</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:EMailLbl.Width" resname="O:InfoForm.O:EMailLbl.Width"> |
<source>32</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">56</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:EMailLbl.Height" resname="O:InfoForm.O:EMailLbl.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">57</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:EMailLbl.Caption" resname="O:InfoForm.O:EMailLbl.Caption"> |
<source>'E-Mail:'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">58</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:EMailLbl.Transparent" resname="O:InfoForm.O:EMailLbl.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">59</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:CopyrightLbl.Left" resname="O:InfoForm.O:CopyrightLbl.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">60</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:CopyrightLbl.Top" resname="O:InfoForm.O:CopyrightLbl.Top"> |
<source>80</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">61</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:CopyrightLbl.Width" resname="O:InfoForm.O:CopyrightLbl.Width"> |
<source>264</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">62</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:CopyrightLbl.Height" resname="O:InfoForm.O:CopyrightLbl.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">63</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:CopyrightLbl.Caption" resname="O:InfoForm.O:CopyrightLbl.Caption"> |
<source>'© Copyright 2001 - 2024 Daniel Marschall, ViaThinkSoft'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">64</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:CopyrightLbl.Transparent" resname="O:InfoForm.O:CopyrightLbl.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">65</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Copyright2Lbl.Left" resname="O:InfoForm.O:Copyright2Lbl.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">66</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Copyright2Lbl.Top" resname="O:InfoForm.O:Copyright2Lbl.Top"> |
<source>96</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">67</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Copyright2Lbl.Width" resname="O:InfoForm.O:Copyright2Lbl.Width"> |
<source>117</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">68</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Copyright2Lbl.Height" resname="O:InfoForm.O:Copyright2Lbl.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">69</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Copyright2Lbl.Caption" resname="O:InfoForm.O:Copyright2Lbl.Caption"> |
<source>'Alle Rechte vorbehalten!'</source> |
<target>'All rights reserved'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">70</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:Copyright2Lbl.Transparent" resname="O:InfoForm.O:Copyright2Lbl.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">71</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Left" resname="O:InfoForm.O:URL2.Left"> |
<source>152</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">72</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Top" resname="O:InfoForm.O:URL2.Top"> |
<source>136</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">73</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Width" resname="O:InfoForm.O:URL2.Width"> |
<source>117</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">74</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Height" resname="O:InfoForm.O:URL2.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">75</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Cursor" resname="O:InfoForm.O:URL2.Cursor"> |
<source>crHandPoint</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">76</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Caption" resname="O:InfoForm.O:URL2.Caption"> |
<source>'www.daniel-marschall.de'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">77</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Font.Charset" resname="O:InfoForm.O:URL2.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">78</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Font.Color" resname="O:InfoForm.O:URL2.Font.Color"> |
<source>clBlue</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">79</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Font.Height" resname="O:InfoForm.O:URL2.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">80</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Font.Name" resname="O:InfoForm.O:URL2.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">81</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Font.Style" resname="O:InfoForm.O:URL2.Font.Style"> |
<source>[fsUnderline]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">82</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.ParentFont" resname="O:InfoForm.O:URL2.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">83</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.Transparent" resname="O:InfoForm.O:URL2.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">84</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL2.OnClick" resname="O:InfoForm.O:URL2.OnClick"> |
<source>WebsiteClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">85</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Left" resname="O:InfoForm.O:URL1.Left"> |
<source>152</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">86</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Top" resname="O:InfoForm.O:URL1.Top"> |
<source>120</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">87</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Width" resname="O:InfoForm.O:URL1.Width"> |
<source>118</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">88</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Height" resname="O:InfoForm.O:URL1.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">89</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Cursor" resname="O:InfoForm.O:URL1.Cursor"> |
<source>crHandPoint</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">90</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Caption" resname="O:InfoForm.O:URL1.Caption"> |
<source>'info@daniel-marschall.de'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">91</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Font.Charset" resname="O:InfoForm.O:URL1.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">92</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Font.Color" resname="O:InfoForm.O:URL1.Font.Color"> |
<source>clBlue</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">93</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Font.Height" resname="O:InfoForm.O:URL1.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">94</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Font.Name" resname="O:InfoForm.O:URL1.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">95</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Font.Style" resname="O:InfoForm.O:URL1.Font.Style"> |
<source>[fsUnderline]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">96</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.ParentFont" resname="O:InfoForm.O:URL1.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">97</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.Transparent" resname="O:InfoForm.O:URL1.Transparent"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">98</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:URL1.OnClick" resname="O:InfoForm.O:URL1.OnClick"> |
<source>EMailClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">99</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.Left" resname="O:InfoForm.O:OkBtn.Left"> |
<source>273</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">100</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.Top" resname="O:InfoForm.O:OkBtn.Top"> |
<source>310</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">101</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.Width" resname="O:InfoForm.O:OkBtn.Width"> |
<source>107</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">102</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.Height" resname="O:InfoForm.O:OkBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">103</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.Anchors" resname="O:InfoForm.O:OkBtn.Anchors"> |
<source>[akRight, akBottom]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">104</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.Cancel" resname="O:InfoForm.O:OkBtn.Cancel"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">105</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.Caption" resname="O:InfoForm.O:OkBtn.Caption"> |
<source>'OK'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">106</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.Default" resname="O:InfoForm.O:OkBtn.Default"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">107</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.TabOrder" resname="O:InfoForm.O:OkBtn.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">108</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:OkBtn.OnClick" resname="O:InfoForm.O:OkBtn.OnClick"> |
<source>OkBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">109</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Left" resname="O:InfoForm.O:MemoMitwirkende.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">110</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Top" resname="O:InfoForm.O:MemoMitwirkende.Top"> |
<source>168</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">111</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Width" resname="O:InfoForm.O:MemoMitwirkende.Width"> |
<source>372</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">112</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Height" resname="O:InfoForm.O:MemoMitwirkende.Height"> |
<source>128</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">113</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Anchors" resname="O:InfoForm.O:MemoMitwirkende.Anchors"> |
<source>[akLeft, akTop, akRight, akBottom]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">6</prop><prop prop-type="Order">114</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[0]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[0]"> |
<source>'SpaceMission wurde von Daniel Marschall auf Basis eines Codebeispiels '</source> |
<target>'SpaceMission was created by Daniel Marschall based on a code example '</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">115</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop><prop prop-type="Open">(</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[1]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[1]"> |
<source>'von Hiroyuki Hori für DelphiX 2000 entwickelt.'</source> |
<target>'by Hiroyuki Hori for DelphiX 2000.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">116</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[2]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[2]"> |
<source>''</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">117</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[3]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[3]"> |
<source>'Entwickelt mit Embarcadero Delphi.'</source> |
<target>'Developed with Embarcadero Delphi.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">118</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[4]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[4]"> |
<source>'Setup erstellt mit InnoSetup.'</source> |
<target>'Setup created with InnoSetup.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">119</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[5]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[5]"> |
<source>'Sicherheitszertifikat von HickelSOFT Huth GmbH.'</source> |
<target>'Security certificate by HickelSOFT Huth GmbH.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">120</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[6]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[6]"> |
<source>''</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">121</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[7]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[7]"> |
<source>'Verwendete Komponenten: (un)DelphiX'</source> |
<target>'Used components: (un)DelphiX'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">122</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[8]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[8]"> |
<source>'Quellcode: http://www.micrel.cz/Dx/'</source> |
<target>'Source code: http://www.micrel.cz/Dx/'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334934607</prop><prop prop-type="Status">1</prop><prop prop-type="Order">123</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>'Source: http://www.micrel.cz/Dx/'</source> |
<target>'Source: http://www.micrel.cz/Dx/'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45406.8382539815</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[9]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[9]"> |
<source>'(C) Copyright 1996-2000 by Hiroyuki Hori'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">124</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[10]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[10]"> |
<source>'(C) Copyright 2004-2023 by Jaro Benes.'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">125</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[11]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[11]"> |
<source>''</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">126</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[12]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[12]"> |
<source>'sowie Delphi MarkDown'</source> |
<target>'as well as Delphi MarkDown'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">127</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[13]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[13]"> |
<source>'Quellcode: https://github.com/grahamegrieve/delphi-markdown'</source> |
<target>'Source code: https://github.com/grahamegrieve/delphi-markdown'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">128</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>'Source: https://github.com/grahamegrieve/delphi-markdown'</source> |
<target>'Source: https://github.com/grahamegrieve/delphi-markdown'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45406.838259456</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[14]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[14]"> |
<source>'(c) 2011+, Health Intersections Pty Ltd'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">129</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[15]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[15]"> |
<source>'Apache 2.0 Lizenz'</source> |
<target>'Apache 2.0 License'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">130</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[16]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[16]"> |
<source>''</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">131</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[17]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[17]"> |
<source>'Musik von Savage Peachers Software.'</source> |
<target>'Music by Savage Peachers Software.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">132</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[18]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[18]"> |
<source>'Sound- und Grafikquellen unbekannt.'</source> |
<target>'Sources of sounds and graphics are unknown.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">133</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[19]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[19]"> |
<source>'Levels von Daniel Marschall, Patrick Büssecker und Andreas '</source> |
<target>'Levels by Daniel Marschall, Patrick Büssecker and Andreas '</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">134</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.Lines.Strings[20]" resname="O:InfoForm.O:MemoMitwirkende.Lines.Strings[20]"> |
<source>'Kübelsbeck.'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">135</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop><prop prop-type="Close">)</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.ReadOnly" resname="O:InfoForm.O:MemoMitwirkende.ReadOnly"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">6</prop><prop prop-type="Order">136</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.ScrollBars" resname="O:InfoForm.O:MemoMitwirkende.ScrollBars"> |
<source>ssVertical</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">6</prop><prop prop-type="Order">137</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:InfoForm.O:MemoMitwirkende.TabOrder" resname="O:InfoForm.O:MemoMitwirkende.TabOrder"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334935764</prop><prop prop-type="Status">6</prop><prop prop-type="Order">138</prop><prop prop-type="Type">TMemo</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/GamCheat.dfn |
---|
0,0 → 1,454 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\GamCheat.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\GamCheat.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4205555556</prop> |
<prop prop-type="OrigDateTime">45407.6943518519</prop> |
<prop prop-type="XlatDateTime">45407.6943518519</prop> |
<prop prop-type="Translated">86</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:CheatForm.Left" resname="O:CheatForm.Left"> |
<source>275</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">0</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.Top" resname="O:CheatForm.Top"> |
<source>165</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">1</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.BorderStyle" resname="O:CheatForm.BorderStyle"> |
<source>bsDialog</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.Caption" resname="O:CheatForm.Caption"> |
<source>'Cheatverwaltung'</source> |
<target>'Cheats'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">1</prop><prop prop-type="Order">3</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.ClientHeight" resname="O:CheatForm.ClientHeight"> |
<source>233</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">4</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.ClientWidth" resname="O:CheatForm.ClientWidth"> |
<source>313</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.Color" resname="O:CheatForm.Color"> |
<source>clBtnFace</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.Font.Charset" resname="O:CheatForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.Font.Color" resname="O:CheatForm.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.Font.Height" resname="O:CheatForm.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.Font.Name" resname="O:CheatForm.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.Font.Style" resname="O:CheatForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.Position" resname="O:CheatForm.Position"> |
<source>poMainFormCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.OnHide" resname="O:CheatForm.OnHide"> |
<source>FormHide</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.OnShow" resname="O:CheatForm.OnShow"> |
<source>FormShow</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.TextHeight" resname="O:CheatForm.TextHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TCheatForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label1.Left" resname="O:CheatForm.O:Label1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label1.Top" resname="O:CheatForm.O:Label1.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label1.Width" resname="O:CheatForm.O:Label1.Width"> |
<source>152</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label1.Height" resname="O:CheatForm.O:Label1.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label1.Caption" resname="O:CheatForm.O:Label1.Caption"> |
<source>'Bitte geben Sie einen Cheat ein!'</source> |
<target>'Please enter a cheat code'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">1</prop><prop prop-type="Order">20</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Left" resname="O:CheatForm.O:Label3.Left"> |
<source>200</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">21</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Top" resname="O:CheatForm.O:Label3.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">22</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Width" resname="O:CheatForm.O:Label3.Width"> |
<source>106</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">23</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Height" resname="O:CheatForm.O:Label3.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">24</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Cursor" resname="O:CheatForm.O:Label3.Cursor"> |
<source>crHandPoint</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">25</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Caption" resname="O:CheatForm.O:Label3.Caption"> |
<source>'Herausgeber anfragen'</source> |
<target>'Ask author'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">1</prop><prop prop-type="Order">26</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Font.Charset" resname="O:CheatForm.O:Label3.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">27</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Font.Color" resname="O:CheatForm.O:Label3.Font.Color"> |
<source>clBlue</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">28</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Font.Height" resname="O:CheatForm.O:Label3.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">29</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Font.Name" resname="O:CheatForm.O:Label3.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">30</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Font.Style" resname="O:CheatForm.O:Label3.Font.Style"> |
<source>[fsUnderline]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">31</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.ParentFont" resname="O:CheatForm.O:Label3.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">32</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.Visible" resname="O:CheatForm.O:Label3.Visible"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">33</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:Label3.OnClick" resname="O:CheatForm.O:Label3.OnClick"> |
<source>Label3Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">34</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.Left" resname="O:CheatForm.O:CheatEdit.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">35</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.Top" resname="O:CheatForm.O:CheatEdit.Top"> |
<source>32</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">36</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.Width" resname="O:CheatForm.O:CheatEdit.Width"> |
<source>297</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">37</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.Height" resname="O:CheatForm.O:CheatEdit.Height"> |
<source>21</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">38</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.Cursor" resname="O:CheatForm.O:CheatEdit.Cursor"> |
<source>crIBeam</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">39</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.Ctl3D" resname="O:CheatForm.O:CheatEdit.Ctl3D"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">40</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.ParentCtl3D" resname="O:CheatForm.O:CheatEdit.ParentCtl3D"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">41</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.PasswordChar" resname="O:CheatForm.O:CheatEdit.PasswordChar"> |
<source>'*'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">42</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.TabOrder" resname="O:CheatForm.O:CheatEdit.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">43</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:CheatEdit.OnKeyPress" resname="O:CheatForm.O:CheatEdit.OnKeyPress"> |
<source>CheatEditKeyPress</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">44</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:OKBtn.Left" resname="O:CheatForm.O:OKBtn.Left"> |
<source>192</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">45</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:OKBtn.Top" resname="O:CheatForm.O:OKBtn.Top"> |
<source>200</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">46</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:OKBtn.Width" resname="O:CheatForm.O:OKBtn.Width"> |
<source>115</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">1</prop><prop prop-type="Order">47</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:OKBtn.Height" resname="O:CheatForm.O:OKBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">48</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:OKBtn.Caption" resname="O:CheatForm.O:OKBtn.Caption"> |
<source>'OK'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">1</prop><prop prop-type="Order">49</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:OKBtn.Default" resname="O:CheatForm.O:OKBtn.Default"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">50</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:OKBtn.TabOrder" resname="O:CheatForm.O:OKBtn.TabOrder"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">51</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:OKBtn.OnClick" resname="O:CheatForm.O:OKBtn.OnClick"> |
<source>OKBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">52</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:AbbBtn.Left" resname="O:CheatForm.O:AbbBtn.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">53</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:AbbBtn.Top" resname="O:CheatForm.O:AbbBtn.Top"> |
<source>200</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">54</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:AbbBtn.Width" resname="O:CheatForm.O:AbbBtn.Width"> |
<source>113</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">55</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:AbbBtn.Height" resname="O:CheatForm.O:AbbBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">56</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:AbbBtn.Cancel" resname="O:CheatForm.O:AbbBtn.Cancel"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">57</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:AbbBtn.Caption" resname="O:CheatForm.O:AbbBtn.Caption"> |
<source>'Abbrechen'</source> |
<target>'Cancel'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">1</prop><prop prop-type="Order">58</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:AbbBtn.TabOrder" resname="O:CheatForm.O:AbbBtn.TabOrder"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">59</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:AbbBtn.OnClick" resname="O:CheatForm.O:AbbBtn.OnClick"> |
<source>AbbBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">60</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.Left" resname="O:CheatForm.O:GroupBox1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">61</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.Top" resname="O:CheatForm.O:GroupBox1.Top"> |
<source>64</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">62</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.Width" resname="O:CheatForm.O:GroupBox1.Width"> |
<source>297</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">63</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.Height" resname="O:CheatForm.O:GroupBox1.Height"> |
<source>129</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">64</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.Caption" resname="O:CheatForm.O:GroupBox1.Caption"> |
<source>'Aktivierte Cheats'</source> |
<target>'Activated cheats'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">1</prop><prop prop-type="Order">65</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.TabOrder" resname="O:CheatForm.O:GroupBox1.TabOrder"> |
<source>3</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">66</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Left" resname="O:CheatForm.O:GroupBox1.O:Label2.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">67</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Top" resname="O:CheatForm.O:GroupBox1.O:Label2.Top"> |
<source>104</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">68</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Width" resname="O:CheatForm.O:GroupBox1.O:Label2.Width"> |
<source>89</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">69</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Height" resname="O:CheatForm.O:GroupBox1.O:Label2.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">70</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Cursor" resname="O:CheatForm.O:GroupBox1.O:Label2.Cursor"> |
<source>crHandPoint</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">71</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Caption" resname="O:CheatForm.O:GroupBox1.O:Label2.Caption"> |
<source>'Cheat deaktivieren'</source> |
<target>'Disable cheat'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">1</prop><prop prop-type="Order">72</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Font.Charset" resname="O:CheatForm.O:GroupBox1.O:Label2.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">73</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Font.Color" resname="O:CheatForm.O:GroupBox1.O:Label2.Font.Color"> |
<source>clBlue</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">74</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Font.Height" resname="O:CheatForm.O:GroupBox1.O:Label2.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">75</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Font.Name" resname="O:CheatForm.O:GroupBox1.O:Label2.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">76</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.Font.Style" resname="O:CheatForm.O:GroupBox1.O:Label2.Font.Style"> |
<source>[fsUnderline]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">77</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.ParentFont" resname="O:CheatForm.O:GroupBox1.O:Label2.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">78</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:Label2.OnClick" resname="O:CheatForm.O:GroupBox1.O:Label2.OnClick"> |
<source>Label2Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">79</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:CheatBox.Left" resname="O:CheatForm.O:GroupBox1.O:CheatBox.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">80</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:CheatBox.Top" resname="O:CheatForm.O:GroupBox1.O:CheatBox.Top"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">81</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:CheatBox.Width" resname="O:CheatForm.O:GroupBox1.O:CheatBox.Width"> |
<source>281</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">82</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:CheatBox.Height" resname="O:CheatForm.O:GroupBox1.O:CheatBox.Height"> |
<source>73</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">83</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:CheatBox.ItemHeight" resname="O:CheatForm.O:GroupBox1.O:CheatBox.ItemHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">84</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:CheatForm.O:GroupBox1.O:CheatBox.TabOrder" resname="O:CheatForm.O:GroupBox1.O:CheatBox.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033535706</prop><prop prop-type="Status">6</prop><prop prop-type="Order">85</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/GamMain.dfn |
---|
0,0 → 1,547 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\GamMain.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\GamMain.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4205555556</prop> |
<prop prop-type="OrigDateTime">45407.6943518519</prop> |
<prop prop-type="XlatDateTime">45407.6943518519</prop> |
<prop prop-type="Translated">100</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:MainForm.Left" resname="O:MainForm.Left"> |
<source>320</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">0</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Top" resname="O:MainForm.Top"> |
<source>196</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">1</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.BorderIcons" resname="O:MainForm.BorderIcons"> |
<source>[biSystemMenu, biMinimize]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.BorderStyle" resname="O:MainForm.BorderStyle"> |
<source>bsSingle</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">3</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Caption" resname="O:MainForm.Caption"> |
<source>'SpaceMission'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">4</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.ClientHeight" resname="O:MainForm.ClientHeight"> |
<source>561</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.ClientWidth" resname="O:MainForm.ClientWidth"> |
<source>636</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Color" resname="O:MainForm.Color"> |
<source>clBlack</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Charset" resname="O:MainForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Color" resname="O:MainForm.Font.Color"> |
<source>clYellow</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Height" resname="O:MainForm.Font.Height"> |
<source>-12</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Name" resname="O:MainForm.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Style" resname="O:MainForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.KeyPreview" resname="O:MainForm.KeyPreview"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Menu" resname="O:MainForm.Menu"> |
<source>MainMenu</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Position" resname="O:MainForm.Position"> |
<source>poScreenCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Scaled" resname="O:MainForm.Scaled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnClose" resname="O:MainForm.OnClose"> |
<source>FormClose</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnCreate" resname="O:MainForm.OnCreate"> |
<source>FormCreate</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnDestroy" resname="O:MainForm.OnDestroy"> |
<source>FormDestroy</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnKeyDown" resname="O:MainForm.OnKeyDown"> |
<source>FormKeyDown</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">20</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnShow" resname="O:MainForm.OnShow"> |
<source>FormShow</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">21</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.TextHeight" resname="O:MainForm.TextHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">22</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.Left" resname="O:MainForm.O:MainMenu.Left"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">23</prop><prop prop-type="Type">TMainMenu</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.Top" resname="O:MainForm.O:MainMenu.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">24</prop><prop prop-type="Type">TMainMenu</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.Caption"> |
<source>'&Spiel'</source> |
<target>'&Game'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">25</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:GameStart.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:GameStart.Caption"> |
<source>'&Zurück zum Hauptmenü'</source> |
<target>'Back to &main menu'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">26</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:GameStart.Enabled" resname="O:MainForm.O:MainMenu.O:Spiel.O:GameStart.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">27</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:GameStart.ShortCut" resname="O:MainForm.O:MainMenu.O:Spiel.O:GameStart.ShortCut"> |
<source>112</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">28</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:GameStart.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:GameStart.OnClick"> |
<source>GameStartClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">29</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Neustart.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Neustart.Caption"> |
<source>'&Neustart'</source> |
<target>'&Restart'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">30</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Neustart.Enabled" resname="O:MainForm.O:MainMenu.O:Spiel.O:Neustart.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">31</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Neustart.ShortCut" resname="O:MainForm.O:MainMenu.O:Spiel.O:Neustart.ShortCut"> |
<source>113</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">32</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Neustart.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:Neustart.OnClick"> |
<source>NeustartClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">33</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:GamePause.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:GamePause.Caption"> |
<source>'&Pause'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">34</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:GamePause.Enabled" resname="O:MainForm.O:MainMenu.O:Spiel.O:GamePause.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">35</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:GamePause.ShortCut" resname="O:MainForm.O:MainMenu.O:Spiel.O:GamePause.ShortCut"> |
<source>114</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">36</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:GamePause.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:GamePause.OnClick"> |
<source>GamePauseClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">37</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Leer1.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Leer1.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">38</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Spielstand.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Spielstand.Caption"> |
<source>'&Spielstände...'</source> |
<target>'&Savegames...'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">39</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Spielstand.ShortCut" resname="O:MainForm.O:MainMenu.O:Spiel.O:Spielstand.ShortCut"> |
<source>115</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">40</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Spielstand.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:Spielstand.OnClick"> |
<source>SpielstandClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">41</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Cheat.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Cheat.Caption"> |
<source>'&Cheatverwaltung...'</source> |
<target>'&Cheats...'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">42</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Cheat.Enabled" resname="O:MainForm.O:MainMenu.O:Spiel.O:Cheat.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">43</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Cheat.ShortCut" resname="O:MainForm.O:MainMenu.O:Spiel.O:Cheat.ShortCut"> |
<source>116</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">44</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Cheat.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:Cheat.OnClick"> |
<source>CheatClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">45</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Leer3.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Leer3.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">46</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.Caption"> |
<source>'&Beenden'</source> |
<target>'&Exit'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">47</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.ShortCut" resname="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.ShortCut"> |
<source>32883</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">48</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.OnClick"> |
<source>BeendenClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">49</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.Caption" resname="O:MainForm.O:MainMenu.O:Einstellungen.Caption"> |
<source>'&Einstellungen'</source> |
<target>'&Settings'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">50</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionSound.Caption" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionSound.Caption"> |
<source>'&Soundeffekte'</source> |
<target>'&Sound effects'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">51</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionSound.Checked" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionSound.Checked"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">52</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionSound.GroupIndex" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionSound.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">53</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionSound.OnClick" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionSound.OnClick"> |
<source>OptionSoundClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">54</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionMusic.Caption" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionMusic.Caption"> |
<source>'&Hintergrundmusik'</source> |
<target>'&Music'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">1</prop><prop prop-type="Order">55</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionMusic.Checked" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionMusic.Checked"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360185</prop><prop prop-type="Status">6</prop><prop prop-type="Order">56</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionMusic.GroupIndex" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionMusic.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360764</prop><prop prop-type="Status">6</prop><prop prop-type="Order">57</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionMusic.OnClick" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:OptionMusic.OnClick"> |
<source>OptionMusicClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360764</prop><prop prop-type="Status">6</prop><prop prop-type="Order">58</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Leer5.Caption" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Leer5.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360764</prop><prop prop-type="Status">6</prop><prop prop-type="Order">59</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Leer5.GroupIndex" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Leer5.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360764</prop><prop prop-type="Status">6</prop><prop prop-type="Order">60</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.Caption" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.Caption"> |
<source>'&Spielgeschwindigkeit'</source> |
<target>'&Speed'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360764</prop><prop prop-type="Status">1</prop><prop prop-type="Order">61</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.Enabled" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">62</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.GroupIndex" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">63</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Leicht.Caption" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Leicht.Caption"> |
<source>'&Leicht'</source> |
<target>'&Easy'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">64</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Leicht.RadioItem" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Leicht.RadioItem"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">65</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Leicht.ShortCut" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Leicht.ShortCut"> |
<source>49</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">66</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Leicht.OnClick" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Leicht.OnClick"> |
<source>LeichtClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">67</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.Caption" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.Caption"> |
<source>'&Mittel'</source> |
<target>'&Medium'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">68</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.Checked" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.Checked"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">69</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.RadioItem" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.RadioItem"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">70</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.ShortCut" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.ShortCut"> |
<source>50</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">71</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.OnClick" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Mittel.OnClick"> |
<source>MittelClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">72</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Schwer.Caption" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Schwer.Caption"> |
<source>'&Schwer'</source> |
<target>'&Hard'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">73</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Schwer.RadioItem" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Schwer.RadioItem"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">74</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Schwer.ShortCut" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Schwer.ShortCut"> |
<source>51</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">75</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Schwer.OnClick" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Schwer.OnClick"> |
<source>SchwerClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">76</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Master.Caption" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Master.Caption"> |
<source>'Meist&er'</source> |
<target>'&Master'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">77</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Master.RadioItem" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Master.RadioItem"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">78</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Master.ShortCut" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Master.ShortCut"> |
<source>52</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">79</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Master.OnClick" resname="O:MainForm.O:MainMenu.O:Einstellungen.O:Spielgeschwindigkeit.O:Master.OnClick"> |
<source>MasterClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">80</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.Caption"> |
<source>'&Hilfe'</source> |
<target>'&Help'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">81</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.Caption"> |
<source>'Allgemeines'</source> |
<target>'General topics'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">82</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">83</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.Hint" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.Hint"> |
<source>'Help\DE_General.md'</source> |
<target>'Help\EN_General.md'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">84</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>'Help\Allgemeines.md'</source> |
<target>'Help\General.md'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45406.9284118056</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.OnClick" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.OnClick"> |
<source>HilfeTopicClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">85</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Wasgibtesneues1.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Wasgibtesneues1.Caption"> |
<source>'Was gibt es Neues?'</source> |
<target>'What'#39's new?'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">86</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Wasgibtesneues1.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Wasgibtesneues1.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">87</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Wasgibtesneues1.Hint" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Wasgibtesneues1.Hint"> |
<source>'Help\DE_Changelog.md'</source> |
<target>'Help\EN_Changelog.md'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">88</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>'Help\Neuerungen.md'</source> |
<target>'Help\Changelog.md'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45406.9284118056</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Wasgibtesneues1.OnClick" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Wasgibtesneues1.OnClick"> |
<source>HilfeTopicClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">89</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:N1.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:N1.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">90</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:N1.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:N1.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">91</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:CheckUpdates.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:CheckUpdates.Caption"> |
<source>'Auf Updates prüfen'</source> |
<target>'Check for updates'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">92</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:CheckUpdates.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:CheckUpdates.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">93</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:CheckUpdates.OnClick" resname="O:MainForm.O:MainMenu.O:Hilfe.O:CheckUpdates.OnClick"> |
<source>CheckUpdatesClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">94</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Leer6.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Leer6.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">95</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Leer6.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Leer6.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">96</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.Caption"> |
<source>'&Informationen...'</source> |
<target>'&About this game...'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">1</prop><prop prop-type="Order">97</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">98</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.OnClick" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.OnClick"> |
<source>InformationenClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335360995</prop><prop prop-type="Status">6</prop><prop prop-type="Order">99</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/GamSpeicherung.dfn |
---|
0,0 → 1,821 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\GamSpeicherung.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\GamSpeicherung.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4205555556</prop> |
<prop prop-type="OrigDateTime">45407.6943518519</prop> |
<prop prop-type="XlatDateTime">45407.6943518519</prop> |
<prop prop-type="Translated">158</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:SpeicherungForm.Left" resname="O:SpeicherungForm.Left"> |
<source>280</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">0</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Top" resname="O:SpeicherungForm.Top"> |
<source>152</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">1</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.BorderStyle" resname="O:SpeicherungForm.BorderStyle"> |
<source>bsDialog</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Caption" resname="O:SpeicherungForm.Caption"> |
<source>'Spielstände'</source> |
<target>'Savegames'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">1</prop><prop prop-type="Order">3</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.ClientHeight" resname="O:SpeicherungForm.ClientHeight"> |
<source>424</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">4</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.ClientWidth" resname="O:SpeicherungForm.ClientWidth"> |
<source>447</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Color" resname="O:SpeicherungForm.Color"> |
<source>clBtnFace</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Charset" resname="O:SpeicherungForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Color" resname="O:SpeicherungForm.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Height" resname="O:SpeicherungForm.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Name" resname="O:SpeicherungForm.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Style" resname="O:SpeicherungForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Position" resname="O:SpeicherungForm.Position"> |
<source>poMainFormCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.OnHide" resname="O:SpeicherungForm.OnHide"> |
<source>FormHide</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.OnShow" resname="O:SpeicherungForm.OnShow"> |
<source>FormShow</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.TextHeight" resname="O:SpeicherungForm.TextHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Left" resname="O:SpeicherungForm.O:Bevel1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Top" resname="O:SpeicherungForm.O:Bevel1.Top"> |
<source>56</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Width" resname="O:SpeicherungForm.O:Bevel1.Width"> |
<source>433</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Height" resname="O:SpeicherungForm.O:Bevel1.Height"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Shape" resname="O:SpeicherungForm.O:Bevel1.Shape"> |
<source>bsBottomLine</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">20</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Left" resname="O:SpeicherungForm.O:Label2.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">21</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Top" resname="O:SpeicherungForm.O:Label2.Top"> |
<source>72</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">22</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Width" resname="O:SpeicherungForm.O:Label2.Width"> |
<source>58</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">23</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Height" resname="O:SpeicherungForm.O:Label2.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">24</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Caption" resname="O:SpeicherungForm.O:Label2.Caption"> |
<source>'Spielstände:'</source> |
<target>'Savegames:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">1</prop><prop prop-type="Order">25</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Left" resname="O:SpeicherungForm.O:Label3.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">26</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Top" resname="O:SpeicherungForm.O:Label3.Top"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">27</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Width" resname="O:SpeicherungForm.O:Label3.Width"> |
<source>67</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">28</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Height" resname="O:SpeicherungForm.O:Label3.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">29</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Caption" resname="O:SpeicherungForm.O:Label3.Caption"> |
<source>'Informationen:'</source> |
<target>'Information:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">1</prop><prop prop-type="Order">30</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Left" resname="O:SpeicherungForm.O:Label1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">31</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Top" resname="O:SpeicherungForm.O:Label1.Top"> |
<source>20</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">32</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Width" resname="O:SpeicherungForm.O:Label1.Width"> |
<source>78</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">33</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Height" resname="O:SpeicherungForm.O:Label1.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">34</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Caption" resname="O:SpeicherungForm.O:Label1.Caption"> |
<source>'Spielstandname:'</source> |
<target>'Savegame name:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">1</prop><prop prop-type="Order">35</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Enabled" resname="O:SpeicherungForm.O:Label1.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">36</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Left" resname="O:SpeicherungForm.O:LadenBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">37</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Top" resname="O:SpeicherungForm.O:LadenBtn.Top"> |
<source>72</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335362847</prop><prop prop-type="Status">6</prop><prop prop-type="Order">38</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Width" resname="O:SpeicherungForm.O:LadenBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">39</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Height" resname="O:SpeicherungForm.O:LadenBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">40</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Caption" resname="O:SpeicherungForm.O:LadenBtn.Caption"> |
<source>'&Laden'</source> |
<target>'&Load'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">1</prop><prop prop-type="Order">41</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Enabled" resname="O:SpeicherungForm.O:LadenBtn.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">42</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.TabOrder" resname="O:SpeicherungForm.O:LadenBtn.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">43</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.OnClick" resname="O:SpeicherungForm.O:LadenBtn.OnClick"> |
<source>LadenBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">44</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Left" resname="O:SpeicherungForm.O:LoeschenBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">45</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Top" resname="O:SpeicherungForm.O:LoeschenBtn.Top"> |
<source>104</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">46</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Width" resname="O:SpeicherungForm.O:LoeschenBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">47</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Height" resname="O:SpeicherungForm.O:LoeschenBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">48</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Caption" resname="O:SpeicherungForm.O:LoeschenBtn.Caption"> |
<source>'Lö&schen'</source> |
<target>'&Delete'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">1</prop><prop prop-type="Order">49</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Enabled" resname="O:SpeicherungForm.O:LoeschenBtn.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">50</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.TabOrder" resname="O:SpeicherungForm.O:LoeschenBtn.TabOrder"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">51</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.OnClick" resname="O:SpeicherungForm.O:LoeschenBtn.OnClick"> |
<source>LoeschenBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">52</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Left" resname="O:SpeicherungForm.O:AktualisierenBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">53</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Top" resname="O:SpeicherungForm.O:AktualisierenBtn.Top"> |
<source>144</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">54</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Width" resname="O:SpeicherungForm.O:AktualisierenBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">55</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Height" resname="O:SpeicherungForm.O:AktualisierenBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">56</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Caption" resname="O:SpeicherungForm.O:AktualisierenBtn.Caption"> |
<source>'&Aktualisieren'</source> |
<target>'&Refresh'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">1</prop><prop prop-type="Order">57</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.TabOrder" resname="O:SpeicherungForm.O:AktualisierenBtn.TabOrder"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">58</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.OnClick" resname="O:SpeicherungForm.O:AktualisierenBtn.OnClick"> |
<source>DsFancyButton2Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">59</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Left" resname="O:SpeicherungForm.O:SpeichernBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">60</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Top" resname="O:SpeicherungForm.O:SpeichernBtn.Top"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">61</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Width" resname="O:SpeicherungForm.O:SpeichernBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">62</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Height" resname="O:SpeicherungForm.O:SpeichernBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">63</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Caption" resname="O:SpeicherungForm.O:SpeichernBtn.Caption"> |
<source>'&Speichern'</source> |
<target>'&Save'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">1</prop><prop prop-type="Order">64</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Enabled" resname="O:SpeicherungForm.O:SpeichernBtn.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">65</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.TabOrder" resname="O:SpeicherungForm.O:SpeichernBtn.TabOrder"> |
<source>3</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">66</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.OnClick" resname="O:SpeicherungForm.O:SpeichernBtn.OnClick"> |
<source>SpeichernBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.033536412</prop><prop prop-type="Status">6</prop><prop prop-type="Order">67</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Left" resname="O:SpeicherungForm.O:AbbrechenBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">68</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Top" resname="O:SpeicherungForm.O:AbbrechenBtn.Top"> |
<source>392</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">69</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Width" resname="O:SpeicherungForm.O:AbbrechenBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">70</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Height" resname="O:SpeicherungForm.O:AbbrechenBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">71</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Cancel" resname="O:SpeicherungForm.O:AbbrechenBtn.Cancel"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">72</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Caption" resname="O:SpeicherungForm.O:AbbrechenBtn.Caption"> |
<source>'Schli&eßen'</source> |
<target>'&Close'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">1</prop><prop prop-type="Order">73</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Default" resname="O:SpeicherungForm.O:AbbrechenBtn.Default"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">74</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.ModalResult" resname="O:SpeicherungForm.O:AbbrechenBtn.ModalResult"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">75</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.TabOrder" resname="O:SpeicherungForm.O:AbbrechenBtn.TabOrder"> |
<source>4</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">76</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.OnClick" resname="O:SpeicherungForm.O:AbbrechenBtn.OnClick"> |
<source>AbbrechenBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">77</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.Left" resname="O:SpeicherungForm.O:LevelListBox.Left"> |
<source>112</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">78</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.Top" resname="O:SpeicherungForm.O:LevelListBox.Top"> |
<source>72</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">79</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.Width" resname="O:SpeicherungForm.O:LevelListBox.Width"> |
<source>201</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">80</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.Height" resname="O:SpeicherungForm.O:LevelListBox.Height"> |
<source>249</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">81</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.ItemHeight" resname="O:SpeicherungForm.O:LevelListBox.ItemHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">82</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.TabOrder" resname="O:SpeicherungForm.O:LevelListBox.TabOrder"> |
<source>5</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">83</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.OnClick" resname="O:SpeicherungForm.O:LevelListBox.OnClick"> |
<source>LevelListBoxClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">84</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.OnDblClick" resname="O:SpeicherungForm.O:LevelListBox.OnDblClick"> |
<source>LevelListBoxDblClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">85</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelName.Left" resname="O:SpeicherungForm.O:LevelName.Left"> |
<source>112</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">86</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelName.Top" resname="O:SpeicherungForm.O:LevelName.Top"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">87</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelName.Width" resname="O:SpeicherungForm.O:LevelName.Width"> |
<source>201</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">88</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelName.Height" resname="O:SpeicherungForm.O:LevelName.Height"> |
<source>21</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">89</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelName.Enabled" resname="O:SpeicherungForm.O:LevelName.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">90</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelName.TabOrder" resname="O:SpeicherungForm.O:LevelName.TabOrder"> |
<source>6</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">91</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Left" resname="O:SpeicherungForm.O:ElPanel1.Left"> |
<source>112</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">92</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Top" resname="O:SpeicherungForm.O:ElPanel1.Top"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">93</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Width" resname="O:SpeicherungForm.O:ElPanel1.Width"> |
<source>201</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">94</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Height" resname="O:SpeicherungForm.O:ElPanel1.Height"> |
<source>81</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">95</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.BevelOuter" resname="O:SpeicherungForm.O:ElPanel1.BevelOuter"> |
<source>bvLowered</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">96</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Color" resname="O:SpeicherungForm.O:ElPanel1.Color"> |
<source>clWindow</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">97</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.TabOrder" resname="O:SpeicherungForm.O:ElPanel1.TabOrder"> |
<source>7</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">98</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4a.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li4a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">99</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4a.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li4a.Top"> |
<source>56</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">100</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4a.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li4a.Width"> |
<source>33</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">101</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4a.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li4a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">102</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4a.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li4a.Caption"> |
<source>'Leben:'</source> |
<target>'Lives:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">1</prop><prop prop-type="Order">103</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">104</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li1.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">105</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li1.Width"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">106</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li1.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">107</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li1.Caption"> |
<source>'n/a'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">1</prop><prop prop-type="Order">108</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Left"> |
<source>96</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">109</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Top"> |
<source>40</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">110</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Width"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">111</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">112</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Caption"> |
<source>'n/a'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">1</prop><prop prop-type="Order">113</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">114</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Top"> |
<source>40</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">115</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Width"> |
<source>29</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">116</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">117</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Caption"> |
<source>'Level:'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">1</prop><prop prop-type="Order">118</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4b.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li4b.Left"> |
<source>96</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">119</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4b.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li4b.Top"> |
<source>56</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">120</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4b.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li4b.Width"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">121</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4b.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li4b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">122</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4b.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li4b.Caption"> |
<source>'n/a'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">1</prop><prop prop-type="Order">123</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Left" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">124</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Top" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">125</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Width" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Width"> |
<source>156</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">126</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Height" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">127</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Caption"> |
<source>'Der Spielstand ist nicht einlesbar!'</source> |
<target>'Savegame file cannot be read!'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">1</prop><prop prop-type="Order">128</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Charset" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">129</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Color" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Color"> |
<source>clMaroon</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">130</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Height" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">131</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Name" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">132</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Style" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">133</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.ParentFont" resname="O:SpeicherungForm.O:ElPanel1.O:liu.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">134</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Visible" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Visible"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">135</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Left" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">136</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Top" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">137</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Width" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Width"> |
<source>160</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">138</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Height" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">139</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Caption"> |
<source>'Bitte wählen Sie einen Spielstand.'</source> |
<target>'Please select a savegame.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">1</prop><prop prop-type="Order">140</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Charset" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">141</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Color" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Color"> |
<source>clNavy</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">142</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Height" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">143</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Name" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">144</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Style" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">145</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.ParentFont" resname="O:SpeicherungForm.O:ElPanel1.O:liw.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">146</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Visible" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Visible"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">147</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">148</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Top"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">149</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Width"> |
<source>37</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">150</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">151</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Caption"> |
<source>'Punkte:'</source> |
<target>'Score:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">1</prop><prop prop-type="Order">152</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Left"> |
<source>96</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">153</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Top"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">154</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Width"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">155</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">6</prop><prop prop-type="Order">156</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Caption"> |
<source>'n/a'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0335364699</prop><prop prop-type="Status">1</prop><prop prop-type="Order">157</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/LevEdit_DRC.rc |
---|
0,0 → 1,997 |
/* VER360 |
Generiert vom Embarcadero Delphi Pascal Compiler, |
weil -GD oder --drc an den Compiler übergeben wurde. |
Diese Datei enthält vom Compiler erzeugte Ressourcen, die an die ausführbare Datei gebunden wurden. Wenn diese Datei leer ist, dann wurden keine vom Compiler generierten Ressourcen an die erzeugte ausführbare Datei gebunden. |
*/ |
#define LevMain_status_lives 65040 |
#define LevMain_status_nolives 65041 |
#define LevMain_SUnknownEnemyType 65042 |
#define LevMain_SExitWithoutSave 65043 |
#define LevEdit_SAlreadyStarted 65044 |
#define LevEdit_STitel 65045 |
#define LevEdit_SFileMissing 65046 |
#define Vcl_OleConst_sNoRunningObject 65056 |
#define Vcl_EdgeConst_SWebViewFailure 65057 |
#define Vcl_EdgeConst_SNoWebView 65058 |
#define IEConst_sNotSupportedByEdge 65059 |
#define System_RegularExpressionsConsts_SRegExMissingExpression 65060 |
#define System_RegularExpressionsConsts_SRegExExpressionError 65061 |
#define System_RegularExpressionsConsts_SRegExStudyError 65062 |
#define System_RegularExpressionsConsts_SRegExMatchRequired 65063 |
#define System_RegularExpressionsConsts_SRegExStringsRequired 65064 |
#define System_RegularExpressionsConsts_SRegExIndexOutOfBounds 65065 |
#define LevMain_status_info 65066 |
#define LevMain_SFileError 65067 |
#define LevMain_SCaption 65068 |
#define LevMain_SYes 65069 |
#define LevMain_SNo 65070 |
#define LevMain_SReallyDeleteLevel 65071 |
#define LevSpeicherung_SSelbsterstellt 65072 |
#define LevSpeicherung_SLevelFileNotFound 65073 |
#define LevSpeicherung_SReallyDeleteLevel 65074 |
#define LevSpeicherung_SLoadNewLevelAndDiscardChanges 65075 |
#define LevSpeicherung_SLevelIsEmpty 65076 |
#define LevSpeicherung_SLevelAlreadyExists 65077 |
#define LevSpeicherung_SYes 65078 |
#define LevSpeicherung_SNo 65079 |
#define LevSpeicherung_SFields 65080 |
#define LevSpeicherung_SXbyY 65081 |
#define ComInfo_SVersion 65082 |
#define Vcl_OleConst_SBadPropValue 65083 |
#define Vcl_OleConst_SCannotActivate 65084 |
#define Vcl_OleConst_SNoWindowHandle 65085 |
#define Vcl_OleConst_SInvalidLicense 65086 |
#define Vcl_OleConst_SNotLicensed 65087 |
#define Vcl_Imaging_JConsts_sChangeJPGSize 65088 |
#define Vcl_Imaging_JConsts_sJPEGError 65089 |
#define Vcl_Imaging_JConsts_sJPEGImageFile 65090 |
#define Global_SDownloadError 65091 |
#define Global_SNewProgramVersionAvailable 65092 |
#define Global_SNoUpdateAvailable 65093 |
#define ComLevelReader_SLevelFileFolder 65094 |
#define ComLevelReader_SLevelFileSubFolder 65095 |
#define ComLevelReader_SExtraContentAfterLine 65096 |
#define ComLevelReader_SInvalidXCoord 65097 |
#define ComLevelReader_SInvalidYCoord 65098 |
#define ComLevelReader_SInvalidLevelFile 65099 |
#define ComLevelReader_SEnemyTypeNotImplemented 65100 |
#define ComLevelReader_SLevelEnemyLineComment 65101 |
#define ComLevelReader_SInvalidFile 65102 |
#define LevSpeicherung_SLevelListBox 65103 |
#define Vcl_Imaging_pnglang_EPNGUnknownCriticalChunkText 65104 |
#define Vcl_Imaging_pnglang_EPNGUnknownCompressionText 65105 |
#define Vcl_Imaging_pnglang_EPNGUnknownInterlaceText 65106 |
#define Vcl_Imaging_pnglang_EPNGUnknownColorTypeText 65107 |
#define Vcl_Imaging_pnglang_EPNGCannotAssignChunkText 65108 |
#define Vcl_Imaging_pnglang_EPNGUnexpectedEndText 65109 |
#define Vcl_Imaging_pnglang_EPNGNoImageDataText 65110 |
#define Vcl_Imaging_pnglang_EPNGCannotAddChunkText 65111 |
#define Vcl_Imaging_pnglang_EPNGCannotAddInvalidImageText 65112 |
#define Vcl_Imaging_pnglang_EPNGCouldNotLoadResourceText 65113 |
#define Vcl_Imaging_pnglang_EPNGOutMemoryText 65114 |
#define Vcl_Imaging_pnglang_EPNGCannotChangeTransparentText 65115 |
#define Vcl_Imaging_pnglang_EPNGHeaderNotPresentText 65116 |
#define Vcl_Imaging_pnglang_EInvalidNewSize 65117 |
#define Vcl_Imaging_pnglang_EInvalidSpec 65118 |
#define Vcl_Imaging_pnglang_EPNGInvalidBitDepthText 65119 |
#define DXConsts_SInvalidDIB 65120 |
#define DXConsts_SInvalidDIBBitCount 65121 |
#define DXConsts_SInvalidDIBPixelFormat 65122 |
#define DXConsts_SInvalidDisplayBitCount 65123 |
#define DXConsts_SNotSupportGraphicFile 65124 |
#define DXConsts_SInvalidDXTFile 65125 |
#define DXConsts_SCannotLoadGraphic 65126 |
#define Vcl_Imaging_pnglang_EPngInvalidCRCText 65127 |
#define Vcl_Imaging_pnglang_EPNGInvalidIHDRText 65128 |
#define Vcl_Imaging_pnglang_EPNGMissingMultipleIDATText 65129 |
#define Vcl_Imaging_pnglang_EPNGZLIBErrorText 65130 |
#define Vcl_Imaging_pnglang_EPNGInvalidPaletteText 65131 |
#define Vcl_Imaging_pnglang_EPNGInvalidFileHeaderText 65132 |
#define Vcl_Imaging_pnglang_EPNGIHDRNotFirstText 65133 |
#define Vcl_Imaging_pnglang_EPNGSizeExceedsText 65134 |
#define Vcl_Imaging_pnglang_EPNGUnknownPalEntryText 65135 |
#define DXConsts_SDirectDrawSurface 65136 |
#define DXConsts_SDirectDrawPrimarySurface 65137 |
#define DXConsts_STexture 65138 |
#define DXConsts_SNotMade 65139 |
#define DXConsts_SCannotMade 65140 |
#define DXConsts_SCannotInitialized 65141 |
#define DXConsts_SDLLNotLoaded 65142 |
#define DXConsts_SImageNotFound 65143 |
#define DXConsts_SListIndexError 65144 |
#define DXConsts_SScanline 65145 |
#define DXConsts_SNoForm 65146 |
#define DXConsts_SSinceDirectX6 65147 |
#define DXConsts_SSinceDirectX7 65148 |
#define DXConsts_S3DDeviceNotFound 65149 |
#define DXConsts_SDisplayModeChange 65150 |
#define DXConsts_SDisplayModeCannotAcquired 65151 |
#define Vcl_Consts_SStyleFormatError 65152 |
#define Vcl_Consts_SStyleHookClassRegistered 65153 |
#define Vcl_Consts_SStyleHookClassNotRegistered 65154 |
#define Vcl_Consts_SStyleInvalidParameter 65155 |
#define Vcl_Consts_SStyleFeatureNotSupported 65156 |
#define Vcl_Consts_SStyleNotRegistered 65157 |
#define Vcl_Consts_SStyleUnregisterError 65158 |
#define Vcl_Consts_SStyleNotRegisteredNoName 65159 |
#define Vcl_Consts_sBeginInvokeNoHandle 65160 |
#define System_Win_ComConst_SOleError 65161 |
#define System_Win_ComConst_SNoMethod 65162 |
#define System_Win_ComConst_SVarNotObject 65163 |
#define System_Win_ComConst_STooManyParams 65164 |
#define System_Win_ComConst_SDCOMNotInstalled 65165 |
#define DXConsts_SDirectDraw 65166 |
#define DXConsts_SDirectDrawClipper 65167 |
#define Vcl_Consts_SDomain 65168 |
#define Vcl_Consts_SLogin 65169 |
#define Vcl_Consts_SErrorSettingCount 65170 |
#define Vcl_Consts_SListBoxMustBeVirtual 65171 |
#define Vcl_Consts_STrayIconRemoveError 65172 |
#define Vcl_Consts_SWindowsVistaRequired 65173 |
#define Vcl_Consts_STaskDlgButtonCaption 65174 |
#define Vcl_Consts_STaskDlgRadioButtonCaption 65175 |
#define Vcl_Consts_SInvalidTaskDlgButtonCaption 65176 |
#define Vcl_Consts_SStyleLoadError 65177 |
#define Vcl_Consts_SStyleLoadErrors 65178 |
#define Vcl_Consts_SStyleRegisterError 65179 |
#define Vcl_Consts_SStyleClassRegisterError 65180 |
#define Vcl_Consts_SStyleNotFound 65181 |
#define Vcl_Consts_SStyleClassNotFound 65182 |
#define Vcl_Consts_SStyleInvalidHandle 65183 |
#define Vcl_Consts_SInsertLineError 65184 |
#define Vcl_Consts_SIconToClipboard 65185 |
#define Vcl_Consts_SCannotOpenClipboard 65186 |
#define Vcl_Consts_SInvalidMemoSize 65187 |
#define Vcl_Consts_SInvalidPrinterOp 65188 |
#define Vcl_Consts_SNoDefaultPrinter 65189 |
#define Vcl_Consts_SDuplicateMenus 65190 |
#define Vcl_Consts_SDockedCtlNeedsName 65191 |
#define Vcl_Consts_SDockTreeRemoveError 65192 |
#define Vcl_Consts_SDockZoneNotFound 65193 |
#define Vcl_Consts_SDockZoneHasNoCtl 65194 |
#define Vcl_Consts_SDockZoneVersionConflict 65195 |
#define Vcl_Consts_SPromptArrayTooShort 65196 |
#define Vcl_Consts_SPromptArrayEmpty 65197 |
#define Vcl_Consts_SUsername 65198 |
#define Vcl_Consts_SPassword 65199 |
#define Vcl_Consts_SmkcSpace 65200 |
#define Vcl_Consts_SmkcPgUp 65201 |
#define Vcl_Consts_SmkcPgDn 65202 |
#define Vcl_Consts_SmkcEnd 65203 |
#define Vcl_Consts_SmkcHome 65204 |
#define Vcl_Consts_SmkcLeft 65205 |
#define Vcl_Consts_SmkcUp 65206 |
#define Vcl_Consts_SmkcRight 65207 |
#define Vcl_Consts_SmkcDown 65208 |
#define Vcl_Consts_SmkcIns 65209 |
#define Vcl_Consts_SmkcDel 65210 |
#define Vcl_Consts_SmkcShift 65211 |
#define Vcl_Consts_SmkcCtrl 65212 |
#define Vcl_Consts_SmkcAlt 65213 |
#define Vcl_Consts_SOutOfRange 65214 |
#define Vcl_Consts_sAllFilter 65215 |
#define Vcl_Consts_SMsgDlgYes 65216 |
#define Vcl_Consts_SMsgDlgNo 65217 |
#define Vcl_Consts_SMsgDlgOK 65218 |
#define Vcl_Consts_SMsgDlgCancel 65219 |
#define Vcl_Consts_SMsgDlgHelp 65220 |
#define Vcl_Consts_SMsgDlgAbort 65221 |
#define Vcl_Consts_SMsgDlgRetry 65222 |
#define Vcl_Consts_SMsgDlgIgnore 65223 |
#define Vcl_Consts_SMsgDlgAll 65224 |
#define Vcl_Consts_SMsgDlgNoToAll 65225 |
#define Vcl_Consts_SMsgDlgYesToAll 65226 |
#define Vcl_Consts_SMsgDlgClose 65227 |
#define Vcl_Consts_SmkcBkSp 65228 |
#define Vcl_Consts_SmkcTab 65229 |
#define Vcl_Consts_SmkcEsc 65230 |
#define Vcl_Consts_SmkcEnter 65231 |
#define Vcl_Consts_SHelpButton 65232 |
#define Vcl_Consts_SCloseButton 65233 |
#define Vcl_Consts_SIgnoreButton 65234 |
#define Vcl_Consts_SRetryButton 65235 |
#define Vcl_Consts_SAbortButton 65236 |
#define Vcl_Consts_SAllButton 65237 |
#define Vcl_Consts_SCannotDragForm 65238 |
#define Vcl_Consts_SVMetafiles 65239 |
#define Vcl_Consts_SVEnhMetafiles 65240 |
#define Vcl_Consts_SVIcons 65241 |
#define Vcl_Consts_SVBitmaps 65242 |
#define Vcl_Consts_SVTIFFImages 65243 |
#define Vcl_Consts_SMsgDlgWarning 65244 |
#define Vcl_Consts_SMsgDlgError 65245 |
#define Vcl_Consts_SMsgDlgInformation 65246 |
#define Vcl_Consts_SMsgDlgConfirm 65247 |
#define Vcl_Consts_SMenuNotFound 65248 |
#define Vcl_Consts_SNoTimers 65249 |
#define Vcl_Consts_SNotPrinting 65250 |
#define Vcl_Consts_SPrinting 65251 |
#define Vcl_Consts_SPrinterIndexError 65252 |
#define Vcl_Consts_SInvalidPrinter 65253 |
#define Vcl_Consts_SDeviceOnPort 65254 |
#define Vcl_Consts_SGroupIndexTooLow 65255 |
#define Vcl_Consts_SNoMDIForm 65256 |
#define Vcl_Consts_SImageCanvasNeedsBitmap 65257 |
#define Vcl_Consts_SControlParentSetToSelf 65258 |
#define Vcl_Consts_SControlNonMainThreadUsage 65259 |
#define Vcl_Consts_SOKButton 65260 |
#define Vcl_Consts_SCancelButton 65261 |
#define Vcl_Consts_SYesButton 65262 |
#define Vcl_Consts_SNoButton 65263 |
#define Vcl_Consts_SImageIndexError 65264 |
#define Vcl_Consts_SImageReadFail 65265 |
#define Vcl_Consts_SImageWriteFail 65266 |
#define Vcl_Consts_SWindowDCError 65267 |
#define Vcl_Consts_SWindowClass 65268 |
#define Vcl_Consts_SCannotFocus 65269 |
#define Vcl_Consts_SParentRequired 65270 |
#define Vcl_Consts_SControlPath 65271 |
#define Vcl_Consts_SParentGivenNotAParent 65272 |
#define Vcl_Consts_SMDIChildNotVisible 65273 |
#define Vcl_Consts_SVisibleChanged 65274 |
#define Vcl_Consts_SCannotShowModal 65275 |
#define Vcl_Consts_SScrollBarRange 65276 |
#define Vcl_Consts_SPropertyOutOfRange 65277 |
#define Vcl_Consts_SMenuIndexError 65278 |
#define Vcl_Consts_SMenuReinserted 65279 |
#define Vcl_Consts_SInvalidImage 65280 |
#define Vcl_Consts_SScanLine 65281 |
#define Vcl_Consts_SChangeIconSize 65282 |
#define Vcl_Consts_SChangeWicSize 65283 |
#define Vcl_Consts_SOleGraphic 65284 |
#define Vcl_Consts_SUnknownExtension 65285 |
#define Vcl_Consts_SUnknownClipboardFormat 65286 |
#define Vcl_Consts_SUnknownStreamFormat 65287 |
#define Vcl_Consts_SOutOfResources 65288 |
#define Vcl_Consts_SNoCanvasHandle 65289 |
#define Vcl_Consts_SInvalidTextFormatFlag 65290 |
#define Vcl_Consts_SInvalidFrameIndex 65291 |
#define Vcl_Consts_SInvalidImageSize 65292 |
#define Vcl_Consts_SInvalidImageList 65293 |
#define Vcl_Consts_SReplaceImage 65294 |
#define Vcl_Consts_SInsertImage 65295 |
#define System_RTLConsts_SWinRTInstanceError 65296 |
#define System_RTLConsts_sObserverUnsupported 65297 |
#define System_RTLConsts_sObserverMultipleSingleCast 65298 |
#define System_RTLConsts_sObserverNoInterface 65299 |
#define System_RTLConsts_sObserverNoSinglecastFound 65300 |
#define System_RTLConsts_sObserverNoMulticastFound 65301 |
#define System_RTLConsts_sObserverNotAvailable 65302 |
#define System_RTLConsts_SInvalidDateString 65303 |
#define System_RTLConsts_SInvalidTimeString 65304 |
#define System_RTLConsts_SInvalidOffsetString 65305 |
#define System_RTLConsts_sMustWaitOnOneEvent 65306 |
#define System_RTLConsts_sBeginInvokeDestroying 65307 |
#define Vcl_Consts_SInvalidBitmap 65308 |
#define Vcl_Consts_SInvalidIcon 65309 |
#define Vcl_Consts_SInvalidMetafile 65310 |
#define Vcl_Consts_SInvalidPixelFormat 65311 |
#define System_RTLConsts_SWindowsServer2008 65312 |
#define System_RTLConsts_SWindows7 65313 |
#define System_RTLConsts_SWindowsServer2008R2 65314 |
#define System_RTLConsts_SWindows2000 65315 |
#define System_RTLConsts_SWindowsXP 65316 |
#define System_RTLConsts_SWindowsServer2003 65317 |
#define System_RTLConsts_SWindowsServer2003R2 65318 |
#define System_RTLConsts_SWindowsServer2012 65319 |
#define System_RTLConsts_SWindowsServer2012R2 65320 |
#define System_RTLConsts_SWindowsServer2016 65321 |
#define System_RTLConsts_SWindowsServer2019 65322 |
#define System_RTLConsts_SWindowsServer2022 65323 |
#define System_RTLConsts_SWindows8 65324 |
#define System_RTLConsts_SWindows8Point1 65325 |
#define System_RTLConsts_SWindows10 65326 |
#define System_RTLConsts_SWindows11 65327 |
#define System_RTLConsts_SGenericItemNotFound 65328 |
#define System_RTLConsts_SGenericDuplicateItem 65329 |
#define System_RTLConsts_SInsufficientRtti 65330 |
#define System_RTLConsts_SParameterCountMismatch 65331 |
#define System_RTLConsts_SNonPublicType 65332 |
#define System_RTLConsts_SByRefArgMismatch 65333 |
#define System_RTLConsts_SPropIsReadOnly 65334 |
#define System_RTLConsts_SPropIsWriteOnly 65335 |
#define System_RTLConsts_SInvalidRttiDestroy 65336 |
#define System_RTLConsts_SServiceNotFound 65337 |
#define System_RTLConsts_SVersionStr 65338 |
#define System_RTLConsts_SSPVersionStr 65339 |
#define System_RTLConsts_SVersion32 65340 |
#define System_RTLConsts_SVersion64 65341 |
#define System_RTLConsts_SWindows 65342 |
#define System_RTLConsts_SWindowsVista 65343 |
#define System_RTLConsts_sSpinCountOutOfRange 65344 |
#define System_RTLConsts_sTimespanTooLong 65345 |
#define System_RTLConsts_sInvalidTimespanDuration 65346 |
#define System_RTLConsts_sTimespanValueCannotBeNan 65347 |
#define System_RTLConsts_sCannotNegateTimespan 65348 |
#define System_RTLConsts_sInvalidTimespanFormat 65349 |
#define System_RTLConsts_sTimespanElementTooLong 65350 |
#define System_RTLConsts_SNoContext 65351 |
#define System_RTLConsts_SNoContextFound 65352 |
#define System_RTLConsts_SNoIndex 65353 |
#define System_RTLConsts_SNoSearch 65354 |
#define System_RTLConsts_SNoTableOfContents 65355 |
#define System_RTLConsts_SNoTopics 65356 |
#define System_RTLConsts_SNothingFound 65357 |
#define System_RTLConsts_SArgumentOutOfRange 65358 |
#define System_RTLConsts_SArgumentNil 65359 |
#define System_RTLConsts_SThreadExternalCheckTerminated 65360 |
#define System_RTLConsts_SThreadExternalSetReturnValue 65361 |
#define System_RTLConsts_SParamIsNil 65362 |
#define System_RTLConsts_SParamIsNegative 65363 |
#define System_RTLConsts_SInputBufferExceed 65364 |
#define System_RTLConsts_SInvalidCharsInPath 65365 |
#define System_RTLConsts_SInvalidCharsInFileName 65366 |
#define System_RTLConsts_SEmptyFileName 65367 |
#define System_RTLConsts_SPathTooLong 65368 |
#define System_RTLConsts_SDriveNotFound 65369 |
#define System_RTLConsts_hNoFilterViewer 65370 |
#define System_RTLConsts_sArgumentInvalid 65371 |
#define System_RTLConsts_sInvalidStringAndObjectArrays 65372 |
#define System_RTLConsts_sSameArrays 65373 |
#define System_RTLConsts_sNoConstruct 65374 |
#define System_RTLConsts_sInvalidTimeoutValue 65375 |
#define System_RTLConsts_SReadError 65376 |
#define System_RTLConsts_SReadOnlyProperty 65377 |
#define System_RTLConsts_SRegCreateFailed 65378 |
#define System_RTLConsts_SRegGetDataFailed 65379 |
#define System_RTLConsts_SRegSetDataFailed 65380 |
#define System_RTLConsts_SResNotFound 65381 |
#define System_RTLConsts_SSeekNotImplemented 65382 |
#define System_RTLConsts_SSortedListError 65383 |
#define System_RTLConsts_SUnknownGroup 65384 |
#define System_RTLConsts_SUnknownProperty 65385 |
#define System_RTLConsts_SWriteError 65386 |
#define System_RTLConsts_SThreadCreateError 65387 |
#define System_RTLConsts_SThreadError 65388 |
#define System_RTLConsts_SThreadExternalTerminate 65389 |
#define System_RTLConsts_SThreadExternalWait 65390 |
#define System_RTLConsts_SThreadStartError 65391 |
#define System_RTLConsts_SFCreateErrorEx 65392 |
#define System_RTLConsts_SFOpenErrorEx 65393 |
#define System_RTLConsts_SInvalidImage 65394 |
#define System_RTLConsts_SInvalidName 65395 |
#define System_RTLConsts_SInvalidProperty 65396 |
#define System_RTLConsts_SInvalidPropertyPath 65397 |
#define System_RTLConsts_SInvalidPropertyValue 65398 |
#define System_RTLConsts_SInvalidRegType 65399 |
#define System_RTLConsts_SListCapacityError 65400 |
#define System_RTLConsts_SListCountError 65401 |
#define System_RTLConsts_SListIndexError 65402 |
#define System_RTLConsts_SListIndexErrorRangeReason 65403 |
#define System_RTLConsts_SListIndexErrorEmptyReason 65404 |
#define System_RTLConsts_SMemoryStreamError 65405 |
#define System_RTLConsts_SNoComSupport 65406 |
#define System_RTLConsts_SPropertyException 65407 |
#define System_SysConst_SInvalidCharCount 65408 |
#define System_SysConst_SInvalidDestinationIndex 65409 |
#define System_SysConst_SInvalidCodePage 65410 |
#define System_SysConst_SInvalidEncodingName 65411 |
#define System_SysConst_SNoMappingForUnicodeCharacter 65412 |
#define System_SysConst_SInvalidStringBaseIndex 65413 |
#define System_RTLConsts_SAncestorNotFound 65414 |
#define System_RTLConsts_SAssignError 65415 |
#define System_RTLConsts_SBitsIndexError 65416 |
#define System_RTLConsts_SCantWriteResourceStreamError 65417 |
#define System_RTLConsts_SCheckSynchronizeError 65418 |
#define System_RTLConsts_SClassNotFound 65419 |
#define System_RTLConsts_SDuplicateClass 65420 |
#define System_RTLConsts_SDuplicateItem 65421 |
#define System_RTLConsts_SDuplicateName 65422 |
#define System_RTLConsts_SDuplicateString 65423 |
#define System_SysConst_SShortDayNameWed 65424 |
#define System_SysConst_SShortDayNameThu 65425 |
#define System_SysConst_SShortDayNameFri 65426 |
#define System_SysConst_SShortDayNameSat 65427 |
#define System_SysConst_SLongDayNameSun 65428 |
#define System_SysConst_SLongDayNameMon 65429 |
#define System_SysConst_SLongDayNameTue 65430 |
#define System_SysConst_SLongDayNameWed 65431 |
#define System_SysConst_SLongDayNameThu 65432 |
#define System_SysConst_SLongDayNameFri 65433 |
#define System_SysConst_SLongDayNameSat 65434 |
#define System_SysConst_SCannotCreateDir 65435 |
#define System_SysConst_SInvalidSourceArray 65436 |
#define System_SysConst_SInvalidDestinationArray 65437 |
#define System_SysConst_SCharIndexOutOfBounds 65438 |
#define System_SysConst_SByteIndexOutOfBounds 65439 |
#define System_SysConst_SShortMonthNameDec 65440 |
#define System_SysConst_SLongMonthNameJan 65441 |
#define System_SysConst_SLongMonthNameFeb 65442 |
#define System_SysConst_SLongMonthNameMar 65443 |
#define System_SysConst_SLongMonthNameApr 65444 |
#define System_SysConst_SLongMonthNameMay 65445 |
#define System_SysConst_SLongMonthNameJun 65446 |
#define System_SysConst_SLongMonthNameJul 65447 |
#define System_SysConst_SLongMonthNameAug 65448 |
#define System_SysConst_SLongMonthNameSep 65449 |
#define System_SysConst_SLongMonthNameOct 65450 |
#define System_SysConst_SLongMonthNameNov 65451 |
#define System_SysConst_SLongMonthNameDec 65452 |
#define System_SysConst_SShortDayNameSun 65453 |
#define System_SysConst_SShortDayNameMon 65454 |
#define System_SysConst_SShortDayNameTue 65455 |
#define System_SysConst_SAssertError 65456 |
#define System_SysConst_SAbstractError 65457 |
#define System_SysConst_SModuleAccessViolation 65458 |
#define System_SysConst_SOSError 65459 |
#define System_SysConst_SUnkOSError 65460 |
#define System_SysConst_SShortMonthNameJan 65461 |
#define System_SysConst_SShortMonthNameFeb 65462 |
#define System_SysConst_SShortMonthNameMar 65463 |
#define System_SysConst_SShortMonthNameApr 65464 |
#define System_SysConst_SShortMonthNameMay 65465 |
#define System_SysConst_SShortMonthNameJun 65466 |
#define System_SysConst_SShortMonthNameJul 65467 |
#define System_SysConst_SShortMonthNameAug 65468 |
#define System_SysConst_SShortMonthNameSep 65469 |
#define System_SysConst_SShortMonthNameOct 65470 |
#define System_SysConst_SShortMonthNameNov 65471 |
#define System_SysConst_SVarTypeTooManyCustom 65472 |
#define System_SysConst_SVarTypeCouldNotConvert 65473 |
#define System_SysConst_SVarTypeConvertOverflow 65474 |
#define System_SysConst_SVarOverflow 65475 |
#define System_SysConst_SVarInvalid 65476 |
#define System_SysConst_SVarBadType 65477 |
#define System_SysConst_SVarNotImplemented 65478 |
#define System_SysConst_SVarUnexpected 65479 |
#define System_SysConst_SExternalException 65480 |
#define System_SysConst_SAssertionFailed 65481 |
#define System_SysConst_SIntfCastError 65482 |
#define System_SysConst_SSafecallException 65483 |
#define System_SysConst_SMonitorLockException 65484 |
#define System_SysConst_SNoMonitorSupportException 65485 |
#define System_SysConst_SNotImplemented 65486 |
#define System_SysConst_SObjectDisposed 65487 |
#define System_SysConst_SArgumentMissing 65488 |
#define System_SysConst_SDispatchError 65489 |
#define System_SysConst_SReadAccess 65490 |
#define System_SysConst_SWriteAccess 65491 |
#define System_SysConst_SExecuteAccess 65492 |
#define System_SysConst_SInvalidAccess 65493 |
#define System_SysConst_SVarArrayCreate 65494 |
#define System_SysConst_SVarArrayBounds 65495 |
#define System_SysConst_SVarArrayLocked 65496 |
#define System_SysConst_SInvalidVarCast 65497 |
#define System_SysConst_SInvalidVarOp 65498 |
#define System_SysConst_SInvalidVarNullOp 65499 |
#define System_SysConst_SInvalidVarOpWithHResultWithPrefix 65500 |
#define System_SysConst_SVarTypeOutOfRangeWithPrefix 65501 |
#define System_SysConst_SVarTypeAlreadyUsedWithPrefix 65502 |
#define System_SysConst_SVarTypeNotUsableWithPrefix 65503 |
#define System_SysConst_SRangeError 65504 |
#define System_SysConst_SIntOverflow 65505 |
#define System_SysConst_SInvalidOp 65506 |
#define System_SysConst_SZeroDivide 65507 |
#define System_SysConst_SOverflow 65508 |
#define System_SysConst_SUnderflow 65509 |
#define System_SysConst_SInvalidPointer 65510 |
#define System_SysConst_SInvalidCast 65511 |
#define System_SysConst_SAccessViolationArg3 65512 |
#define System_SysConst_SAccessViolationNoArg 65513 |
#define System_SysConst_SStackOverflow 65514 |
#define System_SysConst_SControlC 65515 |
#define System_SysConst_SPrivilege 65516 |
#define System_SysConst_SException 65517 |
#define System_SysConst_SExceptTitle 65518 |
#define System_SysConst_SInvalidFormat 65519 |
#define System_SysConst_SUnknown 65520 |
#define System_SysConst_SInvalidInteger 65521 |
#define System_SysConst_SInvalidTimeStamp 65522 |
#define System_SysConst_SInvalidGUID 65523 |
#define System_SysConst_STimeEncodeError 65524 |
#define System_SysConst_SDateEncodeError 65525 |
#define System_SysConst_SOutOfMemory 65526 |
#define System_SysConst_SInOutError 65527 |
#define System_SysConst_SFileNotFound 65528 |
#define System_SysConst_SInvalidUnknownFilename 65529 |
#define System_SysConst_STooManyOpenFiles 65530 |
#define System_SysConst_SAccessDenied 65531 |
#define System_SysConst_SEndOfFile 65532 |
#define System_SysConst_SDiskFull 65533 |
#define System_SysConst_SInvalidInput 65534 |
#define System_SysConst_SDivByZero 65535 |
STRINGTABLE |
BEGIN |
LevMain_status_lives, L"Lifes: " |
LevMain_status_nolives, L"Unit has no lives" |
LevMain_SUnknownEnemyType, L"???" |
LevMain_SExitWithoutSave, L"Close without saving?" |
LevEdit_SAlreadyStarted, L"The editor is already open" |
LevEdit_STitel, L"SpaceMission Level Editor" |
LevEdit_SFileMissing, L"%s is missing. Please reinstall SpaceMission." |
Vcl_OleConst_sNoRunningObject, L"Unable to retrieve a pointer to a running object registered with OLE for %s/%s" |
Vcl_EdgeConst_SWebViewFailure, L"Edge-Browser control could not be created" |
Vcl_EdgeConst_SNoWebView, L"WebView2 control was not initialized" |
IEConst_sNotSupportedByEdge, L"Action not supported by Edge WebView2 control" |
System_RegularExpressionsConsts_SRegExMissingExpression, L"A regular expression is required in RegEx" |
System_RegularExpressionsConsts_SRegExExpressionError, L"Error in regular expression at offset %d: %s" |
System_RegularExpressionsConsts_SRegExStudyError, L"Error while evaluating regex: %s" |
System_RegularExpressionsConsts_SRegExMatchRequired, L"Match required" |
System_RegularExpressionsConsts_SRegExStringsRequired, L"Strings parameter must not be nil" |
System_RegularExpressionsConsts_SRegExIndexOutOfBounds, L"Index is greater than maximum (%d)" |
LevMain_status_info, L"Hover your mouse cursor over an entity to show its properties" |
LevMain_SFileError, L"File cannot be opened by SpaceMission" |
LevMain_SCaption, L"SpaceMission %s - Level Editor" |
LevMain_SYes, L"Yes" |
LevMain_SNo, L"No" |
LevMain_SReallyDeleteLevel, L"Do you want to delete this level?" |
LevSpeicherung_SSelbsterstellt, L"Own creation" |
LevSpeicherung_SLevelFileNotFound, L"Level file not found" |
LevSpeicherung_SReallyDeleteLevel, L"Do you really want to delete this level?" |
LevSpeicherung_SLoadNewLevelAndDiscardChanges, L"Load new level and discard changes?" |
LevSpeicherung_SLevelIsEmpty, L"The level is empty!" |
LevSpeicherung_SLevelAlreadyExists, L"Level with the same number already exists. Replace?" |
LevSpeicherung_SYes, L"Yes" |
LevSpeicherung_SNo, L"No" |
LevSpeicherung_SFields, L"%d Fields" |
LevSpeicherung_SXbyY, L"%s by %s" |
ComInfo_SVersion, L"Version %s" |
Vcl_OleConst_SBadPropValue, L"'%s' is not a valid property value" |
Vcl_OleConst_SCannotActivate, L"OLE control activation failed" |
Vcl_OleConst_SNoWindowHandle, L"Could not obtain OLE control window handle" |
Vcl_OleConst_SInvalidLicense, L"License information for %s is invalid" |
Vcl_OleConst_SNotLicensed, L"License information for %s not found. You cannot use this control in design mode" |
Vcl_Imaging_JConsts_sChangeJPGSize, L"Cannot change the size of a JPEG image" |
Vcl_Imaging_JConsts_sJPEGError, L"JPEG error #%d" |
Vcl_Imaging_JConsts_sJPEGImageFile, L"JPEG Image File" |
Global_SDownloadError, L"Could not download version information from the ViaThinkSoft server. Please try again later." |
Global_SNewProgramVersionAvailable, L"A new program version is available! Download now?" |
Global_SNoUpdateAvailable, L"You are already using the latest version" |
ComLevelReader_SLevelFileFolder, L"Levels" |
ComLevelReader_SLevelFileSubFolder, L"SpaceMission" |
ComLevelReader_SExtraContentAfterLine, L"Line %d is invalid (additional information at line end)" |
ComLevelReader_SInvalidXCoord, L"X-Coordinate must be a multiple of %d." |
ComLevelReader_SInvalidYCoord, L"Y-Coordinate must be a multiple of %d." |
ComLevelReader_SInvalidLevelFile, L"Level file format is not supported or the file is corrupt." |
ComLevelReader_SEnemyTypeNotImplemented, L"Enemy type %d not supported (Old game version?)" |
ComLevelReader_SLevelEnemyLineComment, L"; Type XCoord YCoord Lives" |
ComLevelReader_SInvalidFile, L"Savegame format is not supported or the file is corrupt." |
LevSpeicherung_SLevelListBox, L"Level %d" |
Vcl_Imaging_pnglang_EPNGUnknownCriticalChunkText, L"This ""Portable Network Graphics"" image contains an unknown critical part which could not be decoded." |
Vcl_Imaging_pnglang_EPNGUnknownCompressionText, L"This ""Portable Network Graphics"" image is encoded with an unknown compression scheme which could not be decoded." |
Vcl_Imaging_pnglang_EPNGUnknownInterlaceText, L"This ""Portable Network Graphics"" image uses an unknown interlace scheme which could not be decoded." |
Vcl_Imaging_pnglang_EPNGUnknownColorTypeText, L"This PNG image (Portable Network Graphics) contains an unknown color type, which could not be decoded." |
Vcl_Imaging_pnglang_EPNGCannotAssignChunkText, L"The chunks must be compatible to be assigned." |
Vcl_Imaging_pnglang_EPNGUnexpectedEndText, L"This ""Portable Network Graphics"" image is invalid because the decoder found an unexpected end of the file." |
Vcl_Imaging_pnglang_EPNGNoImageDataText, L"This ""Portable Network Graphics"" image contains no data." |
Vcl_Imaging_pnglang_EPNGCannotAddChunkText, L"The program tried to add a existent critical chunk to the current image which is not allowed." |
Vcl_Imaging_pnglang_EPNGCannotAddInvalidImageText, L"It's not allowed to add a new chunk because the current image is invalid." |
Vcl_Imaging_pnglang_EPNGCouldNotLoadResourceText, L"The png image could not be loaded from the resource ID." |
Vcl_Imaging_pnglang_EPNGOutMemoryText, L"Some operation could not be performed because the system is out of resources. Close some windows and try again." |
Vcl_Imaging_pnglang_EPNGCannotChangeTransparentText, L"Setting bit transparency color is not allowed for png images containing alpha value for each pixel (COLOR_RGBALPHA and COLOR_GRAYSCALEALPHA)" |
Vcl_Imaging_pnglang_EPNGHeaderNotPresentText, L"This operation is not valid because the current image contains no valid header." |
Vcl_Imaging_pnglang_EInvalidNewSize, L"The new size provided for image resizing is invalid." |
Vcl_Imaging_pnglang_EInvalidSpec, L"The ""Portable Network Graphics"" could not be created because invalid image type parameters have being provided." |
Vcl_Imaging_pnglang_EPNGInvalidBitDepthText, L"The PNG image (Portable Network Graphics) could not be loaded, because the image contains an unsupported bit-depth." |
DXConsts_SInvalidDIB, L"DIB is invalid" |
DXConsts_SInvalidDIBBitCount, L"Bitcount in invalid (%d)" |
DXConsts_SInvalidDIBPixelFormat, L"PixelFormat in invalid" |
DXConsts_SInvalidDisplayBitCount, L"Display requires 8, 16, 24 or 32 bits" |
DXConsts_SNotSupportGraphicFile, L"Graphic format not suported" |
DXConsts_SInvalidDXTFile, L"DXT file is invalid" |
DXConsts_SCannotLoadGraphic, L"Can not load graphic" |
Vcl_Imaging_pnglang_EPngInvalidCRCText, L"This ""Portable Network Graphics"" image is not valid because it contains invalid pieces of data (crc error)" |
Vcl_Imaging_pnglang_EPNGInvalidIHDRText, L"The ""Portable Network Graphics"" image could not be loaded because one of its main piece of data (ihdr) might be corrupted" |
Vcl_Imaging_pnglang_EPNGMissingMultipleIDATText, L"This ""Portable Network Graphics"" image is invalid because it has missing image parts." |
Vcl_Imaging_pnglang_EPNGZLIBErrorText, L"This graphics could not be decompressed because parts of the compressed data is invalid. \r\nDescription: " |
Vcl_Imaging_pnglang_EPNGInvalidPaletteText, L"The ""Portable Network Graphics"" image contains an invalid palette." |
Vcl_Imaging_pnglang_EPNGInvalidFileHeaderText, L"The read file is not a valid PNG picture (""Portable Network Graphics""), because it does not contain a valid header. The file is probably corrupt. Please try to receive a newer version of the file." |
Vcl_Imaging_pnglang_EPNGIHDRNotFirstText, L"This ""Portable Network Graphics"" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)" |
Vcl_Imaging_pnglang_EPNGSizeExceedsText, L"This PNG image (Portable Network Graphics) cannot be loaded because width or height exceeds 65535 piels." |
Vcl_Imaging_pnglang_EPNGUnknownPalEntryText, L"There is no such palette entry." |
DXConsts_SDirectDrawSurface, L"Surface" |
DXConsts_SDirectDrawPrimarySurface, L"Primary Surface" |
DXConsts_STexture, L"Texture" |
DXConsts_SNotMade, L"%s not made" |
DXConsts_SCannotMade, L"%s cannot be made" |
DXConsts_SCannotInitialized, L"%s cannot be initialized" |
DXConsts_SDLLNotLoaded, L"%s is not loaded" |
DXConsts_SImageNotFound, L"Image '%s' not found" |
DXConsts_SListIndexError, L"Index of the list exceeds the range. (%d)" |
DXConsts_SScanline, L"Index of the scanning line exceeded the range. (%d)" |
DXConsts_SNoForm, L"Form not found" |
DXConsts_SSinceDirectX6, L"Requires DirectX 6.0 or later" |
DXConsts_SSinceDirectX7, L"Requires DirectX 7.0 or later" |
DXConsts_S3DDeviceNotFound, L"3D device not found" |
DXConsts_SDisplayModeChange, L"Display mode cannot be changed (%dx%d %dbit)" |
DXConsts_SDisplayModeCannotAcquired, L"Display mode cannot be acquired" |
Vcl_Consts_SStyleFormatError, L"Invalid style format" |
Vcl_Consts_SStyleHookClassRegistered, L"Class '%s' is already registered for '%s'" |
Vcl_Consts_SStyleHookClassNotRegistered, L"Class '%s' is not registered for '%s'" |
Vcl_Consts_SStyleInvalidParameter, L"Parameter %s must not me nil" |
Vcl_Consts_SStyleFeatureNotSupported, L"Function is not supported by this style" |
Vcl_Consts_SStyleNotRegistered, L"The style '%s' is not registered" |
Vcl_Consts_SStyleUnregisterError, L"The registry of the system style cannot be removed" |
Vcl_Consts_SStyleNotRegisteredNoName, L"Style not registered" |
Vcl_Consts_sBeginInvokeNoHandle, L"BeginInvoke cannot be called without superior window or window handle" |
System_Win_ComConst_SOleError, L"OLE error %.8x" |
System_Win_ComConst_SNoMethod, L"Method '%s' not supported by automation object" |
System_Win_ComConst_SVarNotObject, L"Variant does not reference an automation object" |
System_Win_ComConst_STooManyParams, L"Dispatch methods do not support more than 64 parameters" |
System_Win_ComConst_SDCOMNotInstalled, L"DCOM not installed" |
DXConsts_SDirectDraw, L"DirectDraw" |
DXConsts_SDirectDrawClipper, L"Clipper" |
Vcl_Consts_SDomain, L"&Domain" |
Vcl_Consts_SLogin, L"Login" |
Vcl_Consts_SErrorSettingCount, L"Error setting %s.Count" |
Vcl_Consts_SListBoxMustBeVirtual, L"Listbox (%s) style must be virtual in order to set Count" |
Vcl_Consts_STrayIconRemoveError, L"Cannot remove shell notification icon" |
Vcl_Consts_SWindowsVistaRequired, L"%s requires Windows Vista or later" |
Vcl_Consts_STaskDlgButtonCaption, L"Button%d" |
Vcl_Consts_STaskDlgRadioButtonCaption, L"RadioButton%d" |
Vcl_Consts_SInvalidTaskDlgButtonCaption, L"Caption cannot be empty" |
Vcl_Consts_SStyleLoadError, L"Style '%s' cannot be loaded" |
Vcl_Consts_SStyleLoadErrors, L"Styles %s cannot be loaded" |
Vcl_Consts_SStyleRegisterError, L"Style '%s' is already registered" |
Vcl_Consts_SStyleClassRegisterError, L"Style class '%s' is already registered" |
Vcl_Consts_SStyleNotFound, L"Style '%s' not found" |
Vcl_Consts_SStyleClassNotFound, L"Style class '%s' not found" |
Vcl_Consts_SStyleInvalidHandle, L"Invalid style handle" |
Vcl_Consts_SInsertLineError, L"Unable to insert a line" |
Vcl_Consts_SIconToClipboard, L"Clipboard does not support Icons" |
Vcl_Consts_SCannotOpenClipboard, L"Cannot open clipboard: %s" |
Vcl_Consts_SInvalidMemoSize, L"Text exceeds memo capacity" |
Vcl_Consts_SInvalidPrinterOp, L"Operation not supported on selected printer" |
Vcl_Consts_SNoDefaultPrinter, L"Currently no default printer is selected" |
Vcl_Consts_SDuplicateMenus, L"Men\x00FC '%s' is already used for a different form" |
Vcl_Consts_SDockedCtlNeedsName, L"Docked control must have a name" |
Vcl_Consts_SDockTreeRemoveError, L"Error removing control from dock tree" |
Vcl_Consts_SDockZoneNotFound, L" - Dock zone not found" |
Vcl_Consts_SDockZoneHasNoCtl, L" - Dock zone has no control" |
Vcl_Consts_SDockZoneVersionConflict, L"Error loading dock zone from the stream. Expecting version %d, but found %d." |
Vcl_Consts_SPromptArrayTooShort, L"Length of the value array must be >= length of the prompt array" |
Vcl_Consts_SPromptArrayEmpty, L"Prompt array must not be empty" |
Vcl_Consts_SUsername, L"&Username" |
Vcl_Consts_SPassword, L"&Password" |
Vcl_Consts_SmkcSpace, L"Space" |
Vcl_Consts_SmkcPgUp, L"PgUp" |
Vcl_Consts_SmkcPgDn, L"PgDn" |
Vcl_Consts_SmkcEnd, L"End" |
Vcl_Consts_SmkcHome, L"Home" |
Vcl_Consts_SmkcLeft, L"Left" |
Vcl_Consts_SmkcUp, L"Up" |
Vcl_Consts_SmkcRight, L"Right" |
Vcl_Consts_SmkcDown, L"Down" |
Vcl_Consts_SmkcIns, L"Ins" |
Vcl_Consts_SmkcDel, L"Del" |
Vcl_Consts_SmkcShift, L"Shift+" |
Vcl_Consts_SmkcCtrl, L"Ctrl+" |
Vcl_Consts_SmkcAlt, L"Alt+" |
Vcl_Consts_SOutOfRange, L"Value must be between %d and %d" |
Vcl_Consts_sAllFilter, L"All" |
Vcl_Consts_SMsgDlgYes, L"&Yes" |
Vcl_Consts_SMsgDlgNo, L"&No" |
Vcl_Consts_SMsgDlgOK, L"OK" |
Vcl_Consts_SMsgDlgCancel, L"Cancel" |
Vcl_Consts_SMsgDlgHelp, L"&Help" |
Vcl_Consts_SMsgDlgAbort, L"&Abort" |
Vcl_Consts_SMsgDlgRetry, L"&Retry" |
Vcl_Consts_SMsgDlgIgnore, L"&Ignore" |
Vcl_Consts_SMsgDlgAll, L"&All" |
Vcl_Consts_SMsgDlgNoToAll, L"N&o to All" |
Vcl_Consts_SMsgDlgYesToAll, L"Yes to &All" |
Vcl_Consts_SMsgDlgClose, L"&Close" |
Vcl_Consts_SmkcBkSp, L"BkSp" |
Vcl_Consts_SmkcTab, L"Tab" |
Vcl_Consts_SmkcEsc, L"Esc" |
Vcl_Consts_SmkcEnter, L"Enter" |
Vcl_Consts_SHelpButton, L"&Help" |
Vcl_Consts_SCloseButton, L"&Close" |
Vcl_Consts_SIgnoreButton, L"&Ignore" |
Vcl_Consts_SRetryButton, L"&Retry" |
Vcl_Consts_SAbortButton, L"Cancel" |
Vcl_Consts_SAllButton, L"&All" |
Vcl_Consts_SCannotDragForm, L"Cannot drag a form" |
Vcl_Consts_SVMetafiles, L"Metafiles" |
Vcl_Consts_SVEnhMetafiles, L"Enhanced Metafiles" |
Vcl_Consts_SVIcons, L"Icons" |
Vcl_Consts_SVBitmaps, L"Bitmaps" |
Vcl_Consts_SVTIFFImages, L"TIFF graphics" |
Vcl_Consts_SMsgDlgWarning, L"Warning" |
Vcl_Consts_SMsgDlgError, L"Error" |
Vcl_Consts_SMsgDlgInformation, L"Information" |
Vcl_Consts_SMsgDlgConfirm, L"Confirm" |
Vcl_Consts_SMenuNotFound, L"Sub-menu is not in menu" |
Vcl_Consts_SNoTimers, L"Not enough timers available" |
Vcl_Consts_SNotPrinting, L"Printer is not currently printing" |
Vcl_Consts_SPrinting, L"Printing in progress" |
Vcl_Consts_SPrinterIndexError, L"Printer index out of range" |
Vcl_Consts_SInvalidPrinter, L"Selected printer is invalid" |
Vcl_Consts_SDeviceOnPort, L"%s on %s" |
Vcl_Consts_SGroupIndexTooLow, L"GroupIndex must not be smaller than the GroupIndex of a previous menu item" |
Vcl_Consts_SNoMDIForm, L"Form cannot be created. Currently no MDI forms are active" |
Vcl_Consts_SImageCanvasNeedsBitmap, L"A picture can only be changed if it contains a bitmap" |
Vcl_Consts_SControlParentSetToSelf, L"A control cannot have itself as its parent" |
Vcl_Consts_SControlNonMainThreadUsage, L"Control '%s' is not used for a main thread" |
Vcl_Consts_SOKButton, L"OK" |
Vcl_Consts_SCancelButton, L"Cancel" |
Vcl_Consts_SYesButton, L"&Yes" |
Vcl_Consts_SNoButton, L"&No" |
Vcl_Consts_SImageIndexError, L"Invalid ImageList index" |
Vcl_Consts_SImageReadFail, L"Failed to read ImageList data from stream" |
Vcl_Consts_SImageWriteFail, L"Failed to write ImageList data to stream" |
Vcl_Consts_SWindowDCError, L"Error creating window device context" |
Vcl_Consts_SWindowClass, L"Error creating window class" |
Vcl_Consts_SCannotFocus, L"Cannot focus a disabled or invisible window" |
Vcl_Consts_SParentRequired, L"Control '%s' has no parent window" |
Vcl_Consts_SControlPath, L". Path:\r\n%s" |
Vcl_Consts_SParentGivenNotAParent, L"Parent given is not a parent of '%s'" |
Vcl_Consts_SMDIChildNotVisible, L"Cannot hide an MDI Child Form" |
Vcl_Consts_SVisibleChanged, L"Cannot change Visible in OnShow or OnHide" |
Vcl_Consts_SCannotShowModal, L"A visible window cannot be converted to a modal window." |
Vcl_Consts_SScrollBarRange, L"Scrollbar property out of range" |
Vcl_Consts_SPropertyOutOfRange, L"%s property out of range" |
Vcl_Consts_SMenuIndexError, L"Menu index out of range" |
Vcl_Consts_SMenuReinserted, L"Menu inserted twice" |
Vcl_Consts_SInvalidImage, L"Invalid image" |
Vcl_Consts_SScanLine, L"Scan line index out of range" |
Vcl_Consts_SChangeIconSize, L"Cannot change the size of an icon" |
Vcl_Consts_SChangeWicSize, L"The size of a WIC picture cannot be changed" |
Vcl_Consts_SOleGraphic, L"Invalid operation on TOleGraphic" |
Vcl_Consts_SUnknownExtension, L"Unknown picture file extension (.%s)" |
Vcl_Consts_SUnknownClipboardFormat, L"Clipboard format not supported" |
Vcl_Consts_SUnknownStreamFormat, L"Stream format not supported" |
Vcl_Consts_SOutOfResources, L"System resources are exhausted" |
Vcl_Consts_SNoCanvasHandle, L"Canvas does not allow characters" |
Vcl_Consts_SInvalidTextFormatFlag, L"Text format flag '%s' is not supported" |
Vcl_Consts_SInvalidFrameIndex, L"Invalid picture frame index %d: there are %d frames available (0-%d)" |
Vcl_Consts_SInvalidImageSize, L"Invalid image size" |
Vcl_Consts_SInvalidImageList, L"Invalid ImageList" |
Vcl_Consts_SReplaceImage, L"Unable to Replace Image" |
Vcl_Consts_SInsertImage, L"Picture cannot be inserted" |
System_RTLConsts_SWinRTInstanceError, L"Instance of class %s cannot be created" |
System_RTLConsts_sObserverUnsupported, L"Observer is not supported" |
System_RTLConsts_sObserverMultipleSingleCast, L"Multiple single cast observers cannot be added to observer collection" |
System_RTLConsts_sObserverNoInterface, L"The object does not implement the observer interface" |
System_RTLConsts_sObserverNoSinglecastFound, L"No single cast observer with ID %d found in collection" |
System_RTLConsts_sObserverNoMulticastFound, L"No multi cast observer with ID %d found in collection" |
System_RTLConsts_sObserverNotAvailable, L"Observer is not available" |
System_RTLConsts_SInvalidDateString, L"Invalid date string: %s" |
System_RTLConsts_SInvalidTimeString, L"Invalid time string: %s" |
System_RTLConsts_SInvalidOffsetString, L"Invalid time offset string: %s" |
System_RTLConsts_sMustWaitOnOneEvent, L"Waiting for at least one event" |
System_RTLConsts_sBeginInvokeDestroying, L"BeginInvoke cannot be called to free TComponent" |
Vcl_Consts_SInvalidBitmap, L"Bitmap image is not valid" |
Vcl_Consts_SInvalidIcon, L"Icon image is not valid" |
Vcl_Consts_SInvalidMetafile, L"Metafile is not valid" |
Vcl_Consts_SInvalidPixelFormat, L"Invalid pixel format" |
System_RTLConsts_SWindowsServer2008, L"Windows Server 2008" |
System_RTLConsts_SWindows7, L"Windows 7" |
System_RTLConsts_SWindowsServer2008R2, L"Windows Server 2008 R2" |
System_RTLConsts_SWindows2000, L"Windows 2000" |
System_RTLConsts_SWindowsXP, L"Windows XP" |
System_RTLConsts_SWindowsServer2003, L"Windows Server 2003" |
System_RTLConsts_SWindowsServer2003R2, L"Windows Server 2003 R2" |
System_RTLConsts_SWindowsServer2012, L"Windows Server 2012" |
System_RTLConsts_SWindowsServer2012R2, L"Windows Server 2012 R2" |
System_RTLConsts_SWindowsServer2016, L"Windows Server 2016" |
System_RTLConsts_SWindowsServer2019, L"Windows Server 2019" |
System_RTLConsts_SWindowsServer2022, L"Windows Server 2022" |
System_RTLConsts_SWindows8, L"Windows 8" |
System_RTLConsts_SWindows8Point1, L"Windows 8.1" |
System_RTLConsts_SWindows10, L"Windows 10" |
System_RTLConsts_SWindows11, L"Windows 11" |
System_RTLConsts_SGenericItemNotFound, L"Entry not found" |
System_RTLConsts_SGenericDuplicateItem, L"Duplicates are not allowed" |
System_RTLConsts_SInsufficientRtti, L"Not enough RTTI for this operation" |
System_RTLConsts_SParameterCountMismatch, L"Parameter count not matched" |
System_RTLConsts_SNonPublicType, L"Type '%s' is not declared in the interface-Abschnitt of a unit" |
System_RTLConsts_SByRefArgMismatch, L"VAR- and OUT-arguments must match the parameter type" |
System_RTLConsts_SPropIsReadOnly, L"Property '%s' is write-protected" |
System_RTLConsts_SPropIsWriteOnly, L"Property '%s' can only be written" |
System_RTLConsts_SInvalidRttiDestroy, L"RTTI objects cannot be freed through source code" |
System_RTLConsts_SServiceNotFound, L"Service for login information not found" |
System_RTLConsts_SVersionStr, L"%s (Version %d.%d, Build %d, %5:s)" |
System_RTLConsts_SSPVersionStr, L"%s Service Pack %4:d (Version %1:d.%2:d, Build %3:d, %5:s)" |
System_RTLConsts_SVersion32, L"32 bit edition" |
System_RTLConsts_SVersion64, L"64 bit edition" |
System_RTLConsts_SWindows, L"Windows" |
System_RTLConsts_SWindowsVista, L"Windows Vista" |
System_RTLConsts_sSpinCountOutOfRange, L"SpinCount outside range. It must be between 0 and %d" |
System_RTLConsts_sTimespanTooLong, L"TimeSpan too long" |
System_RTLConsts_sInvalidTimespanDuration, L"Duration cannot be returned because the absolute value exceeds TTimeSpan.MaxValue" |
System_RTLConsts_sTimespanValueCannotBeNan, L"Wert must not be NaN" |
System_RTLConsts_sCannotNegateTimespan, L"Negation of mimimum value of a time range is invalid" |
System_RTLConsts_sInvalidTimespanFormat, L"Invalid TimeSpan format" |
System_RTLConsts_sTimespanElementTooLong, L"TimeSpan element too long" |
System_RTLConsts_SNoContext, L"No context-sensitive help installed" |
System_RTLConsts_SNoContextFound, L"No help available for context %d" |
System_RTLConsts_SNoIndex, L"Unable to open Index" |
System_RTLConsts_SNoSearch, L"Unable to open Search" |
System_RTLConsts_SNoTableOfContents, L"Unable to find a Table of Contents" |
System_RTLConsts_SNoTopics, L"No topic-based help system installed" |
System_RTLConsts_SNothingFound, L"No help found for %s" |
System_RTLConsts_SArgumentOutOfRange, L"Argument outside of valid range" |
System_RTLConsts_SArgumentNil, L"Argument must not be Nil" |
System_RTLConsts_SThreadExternalCheckTerminated, L"CheckTerminated cannot be called for an external created thread" |
System_RTLConsts_SThreadExternalSetReturnValue, L"SetReturnValue cannot be called for an external created thread" |
System_RTLConsts_SParamIsNil, L"Parameter %s must not be Nil" |
System_RTLConsts_SParamIsNegative, L"Parameter %s must not be negative" |
System_RTLConsts_SInputBufferExceed, L"Input buffer of %s = %d, %s = %d exceeded" |
System_RTLConsts_SInvalidCharsInPath, L"Invalid character in file path" |
System_RTLConsts_SInvalidCharsInFileName, L"Invalid character in file name" |
System_RTLConsts_SEmptyFileName, L"Filename is empty" |
System_RTLConsts_SPathTooLong, L"The path is too long" |
System_RTLConsts_SDriveNotFound, L"Drive not found" |
System_RTLConsts_hNoFilterViewer, L"No help viewer that supports filters" |
System_RTLConsts_sArgumentInvalid, L"Invalid argument" |
System_RTLConsts_sInvalidStringAndObjectArrays, L"Length of string and object array must be equal" |
System_RTLConsts_sSameArrays, L"Source and target arrays must be different" |
System_RTLConsts_sNoConstruct, L"Class %s is not intended to be constructed" |
System_RTLConsts_sInvalidTimeoutValue, L"Invalid value for timeout: %s" |
System_RTLConsts_SReadError, L"Stream read error" |
System_RTLConsts_SReadOnlyProperty, L"Property is read-only" |
System_RTLConsts_SRegCreateFailed, L"Failed to create key %s" |
System_RTLConsts_SRegGetDataFailed, L"Failed to get data for '%s'" |
System_RTLConsts_SRegSetDataFailed, L"Failed to set data for '%s'" |
System_RTLConsts_SResNotFound, L"Resource %s not found" |
System_RTLConsts_SSeekNotImplemented, L"%s.Seek not implemented" |
System_RTLConsts_SSortedListError, L"Operation not allowed on sorted list" |
System_RTLConsts_SUnknownGroup, L"%s not in a class registration group" |
System_RTLConsts_SUnknownProperty, L"Property %s does not exist" |
System_RTLConsts_SWriteError, L"Stream write error" |
System_RTLConsts_SThreadCreateError, L"Thread creation error: %s" |
System_RTLConsts_SThreadError, L"Thread Error: %s (%d)" |
System_RTLConsts_SThreadExternalTerminate, L"Cannot terminate an externally created thread" |
System_RTLConsts_SThreadExternalWait, L"Cannot wait for an externally created thread" |
System_RTLConsts_SThreadStartError, L"Start cannot be called for a started or paused thread" |
System_RTLConsts_SFCreateErrorEx, L"Cannot create file ""%s"". %s" |
System_RTLConsts_SFOpenErrorEx, L"Cannot open file ""%s"". %s" |
System_RTLConsts_SInvalidImage, L"Invalid stream format" |
System_RTLConsts_SInvalidName, L"''%s'' is not a valid component name" |
System_RTLConsts_SInvalidProperty, L"Invalid property value" |
System_RTLConsts_SInvalidPropertyPath, L"Invalid property path" |
System_RTLConsts_SInvalidPropertyValue, L"Invalid property value" |
System_RTLConsts_SInvalidRegType, L"Invalid data type for '%s'" |
System_RTLConsts_SListCapacityError, L"List capacity out of bounds (%d)" |
System_RTLConsts_SListCountError, L"List count out of bounds (%d)" |
System_RTLConsts_SListIndexError, L"Index outside valid range (%d)" |
System_RTLConsts_SListIndexErrorRangeReason, L". %s range is 0..%d" |
System_RTLConsts_SListIndexErrorEmptyReason, L". %s is empty" |
System_RTLConsts_SMemoryStreamError, L"Out of memory while expanding memory stream" |
System_RTLConsts_SNoComSupport, L"%s has not been registered as a COM class" |
System_RTLConsts_SPropertyException, L"Error reading %s%s%s: %s" |
System_SysConst_SInvalidCharCount, L"Invalid count (%d)" |
System_SysConst_SInvalidDestinationIndex, L"Invalid destination index (%d)" |
System_SysConst_SInvalidCodePage, L"Invalid code page" |
System_SysConst_SInvalidEncodingName, L"Invalid coding name" |
System_SysConst_SNoMappingForUnicodeCharacter, L"No mapping for Unicode character in the target Multibyte code page found" |
System_SysConst_SInvalidStringBaseIndex, L"Invalid StringBaseIndex" |
System_RTLConsts_SAncestorNotFound, L"Ancestor for '%s' not found" |
System_RTLConsts_SAssignError, L"Cannot assign a %s to a %s" |
System_RTLConsts_SBitsIndexError, L"Bits index out of range" |
System_RTLConsts_SCantWriteResourceStreamError, L"Can't write to a read-only resource stream" |
System_RTLConsts_SCheckSynchronizeError, L"CheckSynchronize called from thread $%x, which is NOT the main thread" |
System_RTLConsts_SClassNotFound, L"Class %s not found" |
System_RTLConsts_SDuplicateClass, L"A class named %s already exists" |
System_RTLConsts_SDuplicateItem, L"List does not allow duplicates ($0%x)" |
System_RTLConsts_SDuplicateName, L"A component named %s already exists" |
System_RTLConsts_SDuplicateString, L"Duplicates are not allowed in a StringList" |
System_SysConst_SShortDayNameWed, L"Wed" |
System_SysConst_SShortDayNameThu, L"Thu" |
System_SysConst_SShortDayNameFri, L"Fri" |
System_SysConst_SShortDayNameSat, L"Sat" |
System_SysConst_SLongDayNameSun, L"Sunday" |
System_SysConst_SLongDayNameMon, L"Monday" |
System_SysConst_SLongDayNameTue, L"Tuesday" |
System_SysConst_SLongDayNameWed, L"Wednesday" |
System_SysConst_SLongDayNameThu, L"Thursday" |
System_SysConst_SLongDayNameFri, L"Friday" |
System_SysConst_SLongDayNameSat, L"Saturday" |
System_SysConst_SCannotCreateDir, L"Unable to create directory" |
System_SysConst_SInvalidSourceArray, L"Invalid source array" |
System_SysConst_SInvalidDestinationArray, L"Invalid destination array" |
System_SysConst_SCharIndexOutOfBounds, L"Character index out of bounds (%d)" |
System_SysConst_SByteIndexOutOfBounds, L"Start index out of bounds (%d)" |
System_SysConst_SShortMonthNameDec, L"Dec" |
System_SysConst_SLongMonthNameJan, L"January" |
System_SysConst_SLongMonthNameFeb, L"February" |
System_SysConst_SLongMonthNameMar, L"March" |
System_SysConst_SLongMonthNameApr, L"April" |
System_SysConst_SLongMonthNameMay, L"May" |
System_SysConst_SLongMonthNameJun, L"June" |
System_SysConst_SLongMonthNameJul, L"July" |
System_SysConst_SLongMonthNameAug, L"August" |
System_SysConst_SLongMonthNameSep, L"September" |
System_SysConst_SLongMonthNameOct, L"October" |
System_SysConst_SLongMonthNameNov, L"November" |
System_SysConst_SLongMonthNameDec, L"December" |
System_SysConst_SShortDayNameSun, L"Sun" |
System_SysConst_SShortDayNameMon, L"Mon" |
System_SysConst_SShortDayNameTue, L"Tue" |
System_SysConst_SAssertError, L"%s (%s, line %d)" |
System_SysConst_SAbstractError, L"Abstract Error" |
System_SysConst_SModuleAccessViolation, L"Access violation at address %p in module '%s'. %s of address %p" |
System_SysConst_SOSError, L"System error. Code: %d.\r\n%s%s" |
System_SysConst_SUnkOSError, L"A call to an OS function failed" |
System_SysConst_SShortMonthNameJan, L"Jan" |
System_SysConst_SShortMonthNameFeb, L"Feb" |
System_SysConst_SShortMonthNameMar, L"Mar" |
System_SysConst_SShortMonthNameApr, L"Apr" |
System_SysConst_SShortMonthNameMay, L"May" |
System_SysConst_SShortMonthNameJun, L"Jun" |
System_SysConst_SShortMonthNameJul, L"Jul" |
System_SysConst_SShortMonthNameAug, L"Aug" |
System_SysConst_SShortMonthNameSep, L"Sep" |
System_SysConst_SShortMonthNameOct, L"Oct" |
System_SysConst_SShortMonthNameNov, L"Nov" |
System_SysConst_SVarTypeTooManyCustom, L"Too many custom variant types have been registered" |
System_SysConst_SVarTypeCouldNotConvert, L"Could not convert variant of type (%s) into type (%s)" |
System_SysConst_SVarTypeConvertOverflow, L"Overflow while converting variant of type (%s) into type (%s)" |
System_SysConst_SVarOverflow, L"Variant overflow" |
System_SysConst_SVarInvalid, L"Invalid argument" |
System_SysConst_SVarBadType, L"Invalid variant type" |
System_SysConst_SVarNotImplemented, L"Operation not supported" |
System_SysConst_SVarUnexpected, L"Unexpected variant error" |
System_SysConst_SExternalException, L"External exception %x" |
System_SysConst_SAssertionFailed, L"Assertion failed" |
System_SysConst_SIntfCastError, L"Interface not supported" |
System_SysConst_SSafecallException, L"Exception in safecall method" |
System_SysConst_SMonitorLockException, L"Object lock not owned" |
System_SysConst_SNoMonitorSupportException, L"Monitor support function not initialized" |
System_SysConst_SNotImplemented, L"Feature not implemented" |
System_SysConst_SObjectDisposed, L"Method called for freed object" |
System_SysConst_SArgumentMissing, L"No argument for format '%s'" |
System_SysConst_SDispatchError, L"Variant method calls not supported" |
System_SysConst_SReadAccess, L"Read" |
System_SysConst_SWriteAccess, L"Write" |
System_SysConst_SExecuteAccess, L"Execute" |
System_SysConst_SInvalidAccess, L"Invalid access" |
System_SysConst_SVarArrayCreate, L"Error creating variant or safe array" |
System_SysConst_SVarArrayBounds, L"Variant or safe array index out of bounds" |
System_SysConst_SVarArrayLocked, L"Variant or safe array is locked" |
System_SysConst_SInvalidVarCast, L"Invalid variant type conversion" |
System_SysConst_SInvalidVarOp, L"Invalid variant operation" |
System_SysConst_SInvalidVarNullOp, L"Invalid NULL variant operation" |
System_SysConst_SInvalidVarOpWithHResultWithPrefix, L"Invalid variant operation (%s%.8x)\r\n%s" |
System_SysConst_SVarTypeOutOfRangeWithPrefix, L"Custom variant type (%s%.4x) is out of range" |
System_SysConst_SVarTypeAlreadyUsedWithPrefix, L"Custom variant type (%s%.4x) already used by %s" |
System_SysConst_SVarTypeNotUsableWithPrefix, L"Custom variant type (%s%.4x) is not usable" |
System_SysConst_SRangeError, L"Range check error" |
System_SysConst_SIntOverflow, L"Integer overflow" |
System_SysConst_SInvalidOp, L"Invalid floating point operation" |
System_SysConst_SZeroDivide, L"Floating point division by zero" |
System_SysConst_SOverflow, L"Floating point overflow" |
System_SysConst_SUnderflow, L"Floating point underflow" |
System_SysConst_SInvalidPointer, L"Invalid pointer operation" |
System_SysConst_SInvalidCast, L"Invalid class typecast" |
System_SysConst_SAccessViolationArg3, L"Access violation at address %p. %s of address %p" |
System_SysConst_SAccessViolationNoArg, L"Access violation" |
System_SysConst_SStackOverflow, L"Stack overflow" |
System_SysConst_SControlC, L"Control-C hit" |
System_SysConst_SPrivilege, L"Privileged instruction" |
System_SysConst_SException, L"Exception %s in module %s at %p.\r\n%s%s\r\n" |
System_SysConst_SExceptTitle, L"Application Error" |
System_SysConst_SInvalidFormat, L"Format '%s' invalid or incompatible with argument" |
System_SysConst_SUnknown, L"<unknown>" |
System_SysConst_SInvalidInteger, L"'%s' is not a valid integer value" |
System_SysConst_SInvalidTimeStamp, L"'%d.%d' is not a valid timestamp" |
System_SysConst_SInvalidGUID, L"'%s' is not a valid GUID value" |
System_SysConst_STimeEncodeError, L"Invalid argument to time encode" |
System_SysConst_SDateEncodeError, L"Invalid argument to date encode" |
System_SysConst_SOutOfMemory, L"Out of memory" |
System_SysConst_SInOutError, L"I/O error %d" |
System_SysConst_SFileNotFound, L"File not found" |
System_SysConst_SInvalidUnknownFilename, L"Invalid filename" |
System_SysConst_STooManyOpenFiles, L"Too many open files" |
System_SysConst_SAccessDenied, L"File access denied" |
System_SysConst_SEndOfFile, L"Read beyond end of file" |
System_SysConst_SDiskFull, L"Disk full" |
System_SysConst_SInvalidInput, L"Invalid numeric input" |
System_SysConst_SDivByZero, L"Division by zero" |
END |
/* c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release\Controls.res */ |
/* c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release\Dialogs.res */ |
/* c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release\Buttons.res */ |
/* c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release\SPIN.RES */ |
/* D:\SVN\SpaceMission\LevSplash.DFM */ |
/* D:\SVN\SpaceMission\LevSpeicherung.DFM */ |
/* D:\SVN\SpaceMission\ComInfo.DFM */ |
/* D:\SVN\SpaceMission\LevOptions.DFM */ |
/* D:\SVN\SpaceMission\ComHilfe.dfm */ |
/* D:\SVN\SpaceMission\LevMain.DFM */ |
/* D:\SVN\SpaceMission\LevEdit.RES */ |
/* D:\SVN\SpaceMission\LevEdit.drf */ |
/ENU/LevMain.dfn |
---|
0,0 → 1,1482 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\LevMain.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\LevMain.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4303009259</prop> |
<prop prop-type="OrigDateTime">45407.694375</prop> |
<prop prop-type="XlatDateTime">45407.6943518519</prop> |
<prop prop-type="Translated">285</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:MainForm.Left" resname="O:MainForm.Left"> |
<source>217</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">0</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Top" resname="O:MainForm.Top"> |
<source>117</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">1</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.BorderIcons" resname="O:MainForm.BorderIcons"> |
<source>[biSystemMenu, biMinimize]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.BorderStyle" resname="O:MainForm.BorderStyle"> |
<source>bsSingle</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">3</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Caption" resname="O:MainForm.Caption"> |
<source>'Leveleditor'</source> |
<target>'Level Editor'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">1</prop><prop prop-type="Order">4</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.ClientHeight" resname="O:MainForm.ClientHeight"> |
<source>517</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.ClientWidth" resname="O:MainForm.ClientWidth"> |
<source>741</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Color" resname="O:MainForm.Color"> |
<source>clBtnFace</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Charset" resname="O:MainForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Color" resname="O:MainForm.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Height" resname="O:MainForm.Font.Height"> |
<source>-12</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Name" resname="O:MainForm.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Font.Style" resname="O:MainForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.KeyPreview" resname="O:MainForm.KeyPreview"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Menu" resname="O:MainForm.Menu"> |
<source>MainMenu</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Position" resname="O:MainForm.Position"> |
<source>poScreenCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.Scaled" resname="O:MainForm.Scaled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnClose" resname="O:MainForm.OnClose"> |
<source>FormClose</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnCloseQuery" resname="O:MainForm.OnCloseQuery"> |
<source>FormCloseQuery</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnCreate" resname="O:MainForm.OnCreate"> |
<source>FormCreate</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnDestroy" resname="O:MainForm.OnDestroy"> |
<source>FormDestroy</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">20</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnMouseMove" resname="O:MainForm.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">21</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.OnShow" resname="O:MainForm.OnShow"> |
<source>FormShow</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">22</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.TextHeight" resname="O:MainForm.TextHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">23</prop><prop prop-type="Type">TMainForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:ScrollBar.Left" resname="O:MainForm.O:ScrollBar.Left"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">24</prop><prop prop-type="Type">TScrollBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:ScrollBar.Top" resname="O:MainForm.O:ScrollBar.Top"> |
<source>480</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">25</prop><prop prop-type="Type">TScrollBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:ScrollBar.Width" resname="O:MainForm.O:ScrollBar.Width"> |
<source>632</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">26</prop><prop prop-type="Type">TScrollBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:ScrollBar.Height" resname="O:MainForm.O:ScrollBar.Height"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">27</prop><prop prop-type="Type">TScrollBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:ScrollBar.Max" resname="O:MainForm.O:ScrollBar.Max"> |
<source>1200</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">28</prop><prop prop-type="Type">TScrollBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:ScrollBar.PageSize" resname="O:MainForm.O:ScrollBar.PageSize"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939352</prop><prop prop-type="Status">6</prop><prop prop-type="Order">29</prop><prop prop-type="Type">TScrollBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:ScrollBar.TabOrder" resname="O:MainForm.O:ScrollBar.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">30</prop><prop prop-type="Type">TScrollBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:ScrollBar.OnScroll" resname="O:MainForm.O:ScrollBar.OnScroll"> |
<source>ScrollBarScroll</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">31</prop><prop prop-type="Type">TScrollBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:StatusBar.Left" resname="O:MainForm.O:StatusBar.Left"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">32</prop><prop prop-type="Type">TStatusBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:StatusBar.Top" resname="O:MainForm.O:StatusBar.Top"> |
<source>498</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">33</prop><prop prop-type="Type">TStatusBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:StatusBar.Width" resname="O:MainForm.O:StatusBar.Width"> |
<source>741</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">34</prop><prop prop-type="Type">TStatusBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:StatusBar.Height" resname="O:MainForm.O:StatusBar.Height"> |
<source>19</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">35</prop><prop prop-type="Type">TStatusBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:StatusBar.Panels" resname="O:MainForm.O:StatusBar.Panels"> |
<source><></source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">36</prop><prop prop-type="Type">TStatusBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:StatusBar.SimplePanel" resname="O:MainForm.O:StatusBar.SimplePanel"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">37</prop><prop prop-type="Type">TStatusBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:StatusBar.OnMouseMove" resname="O:MainForm.O:StatusBar.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">38</prop><prop prop-type="Type">TStatusBar</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.Left" resname="O:MainForm.O:SidePanel.Left"> |
<source>632</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">39</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.Top" resname="O:MainForm.O:SidePanel.Top"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">40</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.Width" resname="O:MainForm.O:SidePanel.Width"> |
<source>109</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">41</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.Height" resname="O:MainForm.O:SidePanel.Height"> |
<source>498</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">42</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.Align" resname="O:MainForm.O:SidePanel.Align"> |
<source>alRight</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">43</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.BevelOuter" resname="O:MainForm.O:SidePanel.BevelOuter"> |
<source>bvNone</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">44</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.TabOrder" resname="O:MainForm.O:SidePanel.TabOrder"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">45</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel1.Left" resname="O:MainForm.O:SidePanel.O:Bevel1.Left"> |
<source>4</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">46</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel1.Top" resname="O:MainForm.O:SidePanel.O:Bevel1.Top"> |
<source>200</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">47</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel1.Width" resname="O:MainForm.O:SidePanel.O:Bevel1.Width"> |
<source>97</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">48</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel1.Height" resname="O:MainForm.O:SidePanel.O:Bevel1.Height"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">49</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel1.Shape" resname="O:MainForm.O:SidePanel.O:Bevel1.Shape"> |
<source>bsBottomLine</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">50</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel2.Left" resname="O:MainForm.O:SidePanel.O:Bevel2.Left"> |
<source>4</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">51</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel2.Top" resname="O:MainForm.O:SidePanel.O:Bevel2.Top"> |
<source>392</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">52</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel2.Width" resname="O:MainForm.O:SidePanel.O:Bevel2.Width"> |
<source>97</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">53</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel2.Height" resname="O:MainForm.O:SidePanel.O:Bevel2.Height"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">54</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel2.Shape" resname="O:MainForm.O:SidePanel.O:Bevel2.Shape"> |
<source>bsBottomLine</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">55</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel3.Left" resname="O:MainForm.O:SidePanel.O:Bevel3.Left"> |
<source>4</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">56</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel3.Top" resname="O:MainForm.O:SidePanel.O:Bevel3.Top"> |
<source>320</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">57</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel3.Width" resname="O:MainForm.O:SidePanel.O:Bevel3.Width"> |
<source>97</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">58</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel3.Height" resname="O:MainForm.O:SidePanel.O:Bevel3.Height"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">59</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Bevel3.Shape" resname="O:MainForm.O:SidePanel.O:Bevel3.Shape"> |
<source>bsBottomLine</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">60</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Left" resname="O:MainForm.O:SidePanel.O:LivesLabel.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">61</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Top" resname="O:MainForm.O:SidePanel.O:LivesLabel.Top"> |
<source>332</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">62</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Width" resname="O:MainForm.O:SidePanel.O:LivesLabel.Width"> |
<source>33</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">63</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Height" resname="O:MainForm.O:SidePanel.O:LivesLabel.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">64</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Caption" resname="O:MainForm.O:SidePanel.O:LivesLabel.Caption"> |
<source>'Leben:'</source> |
<target>'Lifes:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">65</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Font.Charset" resname="O:MainForm.O:SidePanel.O:LivesLabel.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">66</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Font.Color" resname="O:MainForm.O:SidePanel.O:LivesLabel.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">67</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Font.Height" resname="O:MainForm.O:SidePanel.O:LivesLabel.Font.Height"> |
<source>-12</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">68</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Font.Name" resname="O:MainForm.O:SidePanel.O:LivesLabel.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">69</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.Font.Style" resname="O:MainForm.O:SidePanel.O:LivesLabel.Font.Style"> |
<source>[fsUnderline]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">70</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.ParentFont" resname="O:MainForm.O:SidePanel.O:LivesLabel.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">71</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesLabel.OnMouseMove" resname="O:MainForm.O:SidePanel.O:LivesLabel.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">72</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Left" resname="O:MainForm.O:SidePanel.O:SelLabel.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">73</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Top" resname="O:MainForm.O:SidePanel.O:SelLabel.Top"> |
<source>4</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">74</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Width" resname="O:MainForm.O:SidePanel.O:SelLabel.Width"> |
<source>43</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">75</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Height" resname="O:MainForm.O:SidePanel.O:SelLabel.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">76</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Caption" resname="O:MainForm.O:SidePanel.O:SelLabel.Caption"> |
<source>'Auswahl:'</source> |
<target>'Selection:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">77</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Font.Charset" resname="O:MainForm.O:SidePanel.O:SelLabel.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">78</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Font.Color" resname="O:MainForm.O:SidePanel.O:SelLabel.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">79</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Font.Height" resname="O:MainForm.O:SidePanel.O:SelLabel.Font.Height"> |
<source>-12</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">80</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Font.Name" resname="O:MainForm.O:SidePanel.O:SelLabel.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">81</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.Font.Style" resname="O:MainForm.O:SidePanel.O:SelLabel.Font.Style"> |
<source>[fsUnderline]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">82</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.ParentFont" resname="O:MainForm.O:SidePanel.O:SelLabel.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">83</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelLabel.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SelLabel.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">84</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Left" resname="O:MainForm.O:SidePanel.O:SLabel0.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">85</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Top" resname="O:MainForm.O:SidePanel.O:SLabel0.Top"> |
<source>400</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">86</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Width" resname="O:MainForm.O:SidePanel.O:SLabel0.Width"> |
<source>84</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">87</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Height" resname="O:MainForm.O:SidePanel.O:SLabel0.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">88</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Caption" resname="O:MainForm.O:SidePanel.O:SLabel0.Caption"> |
<source>'Level-Information:'</source> |
<target>'Level information:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">89</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Font.Charset" resname="O:MainForm.O:SidePanel.O:SLabel0.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">90</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Font.Color" resname="O:MainForm.O:SidePanel.O:SLabel0.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">91</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Font.Height" resname="O:MainForm.O:SidePanel.O:SLabel0.Font.Height"> |
<source>-12</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">92</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Font.Name" resname="O:MainForm.O:SidePanel.O:SLabel0.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">93</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.Font.Style" resname="O:MainForm.O:SidePanel.O:SLabel0.Font.Style"> |
<source>[fsUnderline]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">94</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.ParentFont" resname="O:MainForm.O:SidePanel.O:SLabel0.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">95</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel0.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SLabel0.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">96</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1a.Left" resname="O:MainForm.O:SidePanel.O:SLabel1a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">97</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1a.Top" resname="O:MainForm.O:SidePanel.O:SLabel1a.Top"> |
<source>424</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">98</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1a.Width" resname="O:MainForm.O:SidePanel.O:SLabel1a.Width"> |
<source>47</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">99</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1a.Height" resname="O:MainForm.O:SidePanel.O:SLabel1a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">100</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1a.Caption" resname="O:MainForm.O:SidePanel.O:SLabel1a.Caption"> |
<source>'Einheiten:'</source> |
<target>'Units:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">101</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1a.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SLabel1a.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">102</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1b.Left" resname="O:MainForm.O:SidePanel.O:SLabel1b.Left"> |
<source>76</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">103</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1b.Top" resname="O:MainForm.O:SidePanel.O:SLabel1b.Top"> |
<source>424</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">104</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1b.Width" resname="O:MainForm.O:SidePanel.O:SLabel1b.Width"> |
<source>6</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">105</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1b.Height" resname="O:MainForm.O:SidePanel.O:SLabel1b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">106</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1b.Caption" resname="O:MainForm.O:SidePanel.O:SLabel1b.Caption"> |
<source>'0'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">107</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel1b.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SLabel1b.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">108</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2a.Left" resname="O:MainForm.O:SidePanel.O:SLabel2a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">109</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2a.Top" resname="O:MainForm.O:SidePanel.O:SLabel2a.Top"> |
<source>440</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">110</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2a.Width" resname="O:MainForm.O:SidePanel.O:SLabel2a.Width"> |
<source>26</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">111</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2a.Height" resname="O:MainForm.O:SidePanel.O:SLabel2a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">112</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2a.Caption" resname="O:MainForm.O:SidePanel.O:SLabel2a.Caption"> |
<source>'Boss:'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">113</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2a.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SLabel2a.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">114</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2b.Left" resname="O:MainForm.O:SidePanel.O:SLabel2b.Left"> |
<source>76</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">115</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2b.Top" resname="O:MainForm.O:SidePanel.O:SLabel2b.Top"> |
<source>440</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">116</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2b.Width" resname="O:MainForm.O:SidePanel.O:SLabel2b.Width"> |
<source>22</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">117</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2b.Height" resname="O:MainForm.O:SidePanel.O:SLabel2b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">118</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2b.Caption" resname="O:MainForm.O:SidePanel.O:SLabel2b.Caption"> |
<source>'Nein'</source> |
<target>'No'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">119</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel2b.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SLabel2b.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">120</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3a.Left" resname="O:MainForm.O:SidePanel.O:SLabel3a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">121</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3a.Top" resname="O:MainForm.O:SidePanel.O:SLabel3a.Top"> |
<source>456</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">122</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3a.Width" resname="O:MainForm.O:SidePanel.O:SLabel3a.Width"> |
<source>32</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">123</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3a.Height" resname="O:MainForm.O:SidePanel.O:SLabel3a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">124</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3a.Caption" resname="O:MainForm.O:SidePanel.O:SLabel3a.Caption"> |
<source>'Größe:'</source> |
<target>'Size:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">125</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3a.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SLabel3a.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">126</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3b.Left" resname="O:MainForm.O:SidePanel.O:SLabel3b.Left"> |
<source>76</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">127</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3b.Top" resname="O:MainForm.O:SidePanel.O:SLabel3b.Top"> |
<source>456</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">128</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3b.Width" resname="O:MainForm.O:SidePanel.O:SLabel3b.Width"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">129</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3b.Height" resname="O:MainForm.O:SidePanel.O:SLabel3b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">130</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3b.Caption" resname="O:MainForm.O:SidePanel.O:SLabel3b.Caption"> |
<source>'1200'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">131</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel3b.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SLabel3b.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">132</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Left" resname="O:MainForm.O:SidePanel.O:SLabel4a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">133</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Top" resname="O:MainForm.O:SidePanel.O:SLabel4a.Top"> |
<source>480</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">134</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Width" resname="O:MainForm.O:SidePanel.O:SLabel4a.Width"> |
<source>60</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">135</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Height" resname="O:MainForm.O:SidePanel.O:SLabel4a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">136</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Caption" resname="O:MainForm.O:SidePanel.O:SLabel4a.Caption"> |
<source>'Gespeichert:'</source> |
<target>'Saved:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">137</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Font.Charset" resname="O:MainForm.O:SidePanel.O:SLabel4a.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">138</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Font.Color" resname="O:MainForm.O:SidePanel.O:SLabel4a.Font.Color"> |
<source>150</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">139</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Font.Height" resname="O:MainForm.O:SidePanel.O:SLabel4a.Font.Height"> |
<source>-12</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">140</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Font.Name" resname="O:MainForm.O:SidePanel.O:SLabel4a.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">141</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.Font.Style" resname="O:MainForm.O:SidePanel.O:SLabel4a.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">142</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.ParentFont" resname="O:MainForm.O:SidePanel.O:SLabel4a.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">143</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4a.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SLabel4a.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">144</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Left" resname="O:MainForm.O:SidePanel.O:SLabel4b.Left"> |
<source>76</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">145</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Top" resname="O:MainForm.O:SidePanel.O:SLabel4b.Top"> |
<source>480</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">146</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Width" resname="O:MainForm.O:SidePanel.O:SLabel4b.Width"> |
<source>22</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">147</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Height" resname="O:MainForm.O:SidePanel.O:SLabel4b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">148</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Caption" resname="O:MainForm.O:SidePanel.O:SLabel4b.Caption"> |
<source>'Nein'</source> |
<target>'No'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">149</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Font.Charset" resname="O:MainForm.O:SidePanel.O:SLabel4b.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">150</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Font.Color" resname="O:MainForm.O:SidePanel.O:SLabel4b.Font.Color"> |
<source>150</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">151</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Font.Height" resname="O:MainForm.O:SidePanel.O:SLabel4b.Font.Height"> |
<source>-12</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">152</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Font.Name" resname="O:MainForm.O:SidePanel.O:SLabel4b.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">153</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.Font.Style" resname="O:MainForm.O:SidePanel.O:SLabel4b.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">154</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.ParentFont" resname="O:MainForm.O:SidePanel.O:SLabel4b.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">155</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SLabel4b.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SLabel4b.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">156</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.Left" resname="O:MainForm.O:SidePanel.O:Enemy1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">157</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.Top" resname="O:MainForm.O:SidePanel.O:Enemy1.Top"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">158</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.Width" resname="O:MainForm.O:SidePanel.O:Enemy1.Width"> |
<source>93</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">159</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.Height" resname="O:MainForm.O:SidePanel.O:Enemy1.Height"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">160</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.Caption" resname="O:MainForm.O:SidePanel.O:Enemy1.Caption"> |
<source>'Angreifer Typ 1'</source> |
<target>'Attacker type 1'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">161</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.Checked" resname="O:MainForm.O:SidePanel.O:Enemy1.Checked"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">162</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.TabOrder" resname="O:MainForm.O:SidePanel.O:Enemy1.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">163</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.TabStop" resname="O:MainForm.O:SidePanel.O:Enemy1.TabStop"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">164</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.OnClick" resname="O:MainForm.O:SidePanel.O:Enemy1.OnClick"> |
<source>EnemyClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">165</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy1.OnMouseMove" resname="O:MainForm.O:SidePanel.O:Enemy1.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">166</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy2.Left" resname="O:MainForm.O:SidePanel.O:Enemy2.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">167</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy2.Top" resname="O:MainForm.O:SidePanel.O:Enemy2.Top"> |
<source>44</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">168</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy2.Width" resname="O:MainForm.O:SidePanel.O:Enemy2.Width"> |
<source>93</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">169</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy2.Height" resname="O:MainForm.O:SidePanel.O:Enemy2.Height"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">170</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy2.Caption" resname="O:MainForm.O:SidePanel.O:Enemy2.Caption"> |
<source>'Angreifer Typ 2'</source> |
<target>'Attacker type 2'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">171</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy2.TabOrder" resname="O:MainForm.O:SidePanel.O:Enemy2.TabOrder"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">172</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy2.OnClick" resname="O:MainForm.O:SidePanel.O:Enemy2.OnClick"> |
<source>EnemyClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">173</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy2.OnMouseMove" resname="O:MainForm.O:SidePanel.O:Enemy2.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">174</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy3.Left" resname="O:MainForm.O:SidePanel.O:Enemy3.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">175</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy3.Top" resname="O:MainForm.O:SidePanel.O:Enemy3.Top"> |
<source>64</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">176</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy3.Width" resname="O:MainForm.O:SidePanel.O:Enemy3.Width"> |
<source>93</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">177</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy3.Height" resname="O:MainForm.O:SidePanel.O:Enemy3.Height"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">178</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy3.Caption" resname="O:MainForm.O:SidePanel.O:Enemy3.Caption"> |
<source>'Angreifer Typ 3'</source> |
<target>'Attacker type 3'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">179</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy3.TabOrder" resname="O:MainForm.O:SidePanel.O:Enemy3.TabOrder"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">180</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy3.OnClick" resname="O:MainForm.O:SidePanel.O:Enemy3.OnClick"> |
<source>EnemyClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">181</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy3.OnMouseMove" resname="O:MainForm.O:SidePanel.O:Enemy3.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">182</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy4.Left" resname="O:MainForm.O:SidePanel.O:Enemy4.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">183</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy4.Top" resname="O:MainForm.O:SidePanel.O:Enemy4.Top"> |
<source>84</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">184</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy4.Width" resname="O:MainForm.O:SidePanel.O:Enemy4.Width"> |
<source>55</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">185</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy4.Height" resname="O:MainForm.O:SidePanel.O:Enemy4.Height"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">186</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy4.Caption" resname="O:MainForm.O:SidePanel.O:Enemy4.Caption"> |
<source>'Meteor'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">187</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy4.TabOrder" resname="O:MainForm.O:SidePanel.O:Enemy4.TabOrder"> |
<source>3</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">188</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy4.OnClick" resname="O:MainForm.O:SidePanel.O:Enemy4.OnClick"> |
<source>EnemyClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">189</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy4.OnMouseMove" resname="O:MainForm.O:SidePanel.O:Enemy4.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">190</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy5.Left" resname="O:MainForm.O:SidePanel.O:Enemy5.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">191</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy5.Top" resname="O:MainForm.O:SidePanel.O:Enemy5.Top"> |
<source>104</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">192</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy5.Width" resname="O:MainForm.O:SidePanel.O:Enemy5.Width"> |
<source>44</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">193</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy5.Height" resname="O:MainForm.O:SidePanel.O:Enemy5.Height"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">194</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy5.Caption" resname="O:MainForm.O:SidePanel.O:Enemy5.Caption"> |
<source>'UFO'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">1</prop><prop prop-type="Order">195</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy5.TabOrder" resname="O:MainForm.O:SidePanel.O:Enemy5.TabOrder"> |
<source>4</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">196</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy5.OnClick" resname="O:MainForm.O:SidePanel.O:Enemy5.OnClick"> |
<source>EnemyClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">197</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy5.OnMouseMove" resname="O:MainForm.O:SidePanel.O:Enemy5.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">198</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy6.Left" resname="O:MainForm.O:SidePanel.O:Enemy6.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">199</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy6.Top" resname="O:MainForm.O:SidePanel.O:Enemy6.Top"> |
<source>124</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">200</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy6.Width" resname="O:MainForm.O:SidePanel.O:Enemy6.Width"> |
<source>53</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334939815</prop><prop prop-type="Status">6</prop><prop prop-type="Order">201</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy6.Height" resname="O:MainForm.O:SidePanel.O:Enemy6.Height"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">202</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy6.Caption" resname="O:MainForm.O:SidePanel.O:Enemy6.Caption"> |
<source>'UFO 2'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">1</prop><prop prop-type="Order">203</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy6.TabOrder" resname="O:MainForm.O:SidePanel.O:Enemy6.TabOrder"> |
<source>5</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">204</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy6.OnClick" resname="O:MainForm.O:SidePanel.O:Enemy6.OnClick"> |
<source>EnemyClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">205</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy6.OnMouseMove" resname="O:MainForm.O:SidePanel.O:Enemy6.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">206</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy7.Left" resname="O:MainForm.O:SidePanel.O:Enemy7.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">207</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy7.Top" resname="O:MainForm.O:SidePanel.O:Enemy7.Top"> |
<source>144</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">208</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy7.Width" resname="O:MainForm.O:SidePanel.O:Enemy7.Width"> |
<source>45</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">209</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy7.Height" resname="O:MainForm.O:SidePanel.O:Enemy7.Height"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">210</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy7.Caption" resname="O:MainForm.O:SidePanel.O:Enemy7.Caption"> |
<source>'Boss'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">1</prop><prop prop-type="Order">211</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy7.TabOrder" resname="O:MainForm.O:SidePanel.O:Enemy7.TabOrder"> |
<source>6</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">212</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy7.OnClick" resname="O:MainForm.O:SidePanel.O:Enemy7.OnClick"> |
<source>EnemyClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">213</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy7.OnMouseMove" resname="O:MainForm.O:SidePanel.O:Enemy7.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">214</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.Left" resname="O:MainForm.O:SidePanel.O:SelPanel.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">215</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.Top" resname="O:MainForm.O:SidePanel.O:SelPanel.Top"> |
<source>216</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">216</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.Width" resname="O:MainForm.O:SidePanel.O:SelPanel.Width"> |
<source>89</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">217</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.Height" resname="O:MainForm.O:SidePanel.O:SelPanel.Height"> |
<source>89</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">218</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.Color" resname="O:MainForm.O:SidePanel.O:SelPanel.Color"> |
<source>clWhite</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">219</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.TabOrder" resname="O:MainForm.O:SidePanel.O:SelPanel.TabOrder"> |
<source>7</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">220</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SelPanel.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">221</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Left" resname="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Left"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">222</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Top" resname="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Top"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">223</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Width" resname="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Width"> |
<source>697</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">224</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Height" resname="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Height"> |
<source>88</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">225</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.AutoSize" resname="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.AutoSize"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">226</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Picture.Data" resname="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.Picture.Data"> |
<source>07544269746D617056CF0200424D56CF0200000000003600000028000000B902000058000000010018000000000020CF0200120B0000120B00000000000000000000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFCFFD0D9FF93A9FF5B7AFF3258FF1844FF113DFF113EFF113EFF113EFF113EFF113EFF113DFF113DFF234CFF4266FF728CFFA9BAFFF3F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F7FFA2B5FF4D71FF0E3EFF0135FF0032FF0032FF0135FF0236FF0236FF0236FF0236FF0236FF0236FF0236FF0236FF0034FF0033FF002FFF0538FF2A56FF7491FFC5D2FFFCFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9495A50000330000330000330000330000330000330000330000330000330000330000330000330000330000339495A5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECF1FF8AA5FF3360FF0038FF0036FF003AFF013BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF013AFF0038FF0033FF0C42FF557BFFB8C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB58587A58587A58587A31315A00003300003300003300004800004800004800004800004800004800004800004800004800004800004831316358587A58587A58587A58587A757489FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6B98730042080042080042080042080042084A7B52FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE689AFF0052FA0052FA0052FA0052FA0052FA4384FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFC9D6FF557FFF013FFF003BFF0140FF0241FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0241FF0241FF003EFF003AFF0743FF88A5FFECF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE868996000033000033000033000033000033000033000048000048000048000048000048000048000048000048000048000048000048000048000048000033000033000033000033292952FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDA5B58CA5B58CA5B58CA5B58C4574460042080042080042080042080042082963318CAD948CAD948CAD948CAD94DADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFA8CB5FF8CB5FF8CB5FF8CB5FF3377FE0052FA0052FA0052FA0052FA0052FA266AFE8CB5FF8CB5FF8CB5FF8CB5FFD9E7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FBFF7EA2FF0D4EFF0043FF0146FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0045FF0041FF346AFFD7E2FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE868996000033000033000033000033000033000033000048000048000048000048000048000048000048000048000048000048000048000048000048000048000048000033000033292952FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECAD6C8315200315200315200315200174A00004208004208004208004208004208004208004208004208004208004208A5BAA7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAA5BDFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9F0FF6492FF0045FF004CFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF0048FF1056FFA0BDFFFCFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB000033000033000048000048000048000033000033000048000048000048000048000048000058000058000058000058000058000058000058000058000058000058000048000048000048000048000048000033DADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE526B22496310496310496310425A16315200315200315200315200174A00004208004208004208004208004208004208004208004208004208004208085218185321185321185321185321F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE266AFE1663FE1663FE1663FE1663FE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA105AFE1663FE1663FE1663FE1663FEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3EDFF2D72FF0050FF0254FF0255FF0255FF0255FF0255FF0255FF0255FF0255FF0255FF0254FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0053FF0255FF0255FF0255FF0255FF0255FF0255FF0255FF0255FF0255FF0051FF0152FF8FB5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB58587A00004800004800004800004800004800004800004800004800004800004800005800005800005800005800005800005800005800005800005800005800005800005800005800005800005800005800004800003358587AADADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBC6A6BBC6A6BBC6A6315200315200315200315200315200315200315200315200315200174A000042080042080042080042080042080042080042080042080042080042080042080042080042082963315A8463F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9C6FFA9C6FFA9C6FF105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFE538CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEF4FF4084FF0057FF005BFF015CFF015CFF015CFF015CFF015CFF015CFF015CFF015CFF015BFF025CFF1065FF1065FF1065FF1065FF1065FF1065FF1065FF1065FF1065FF1065FF1065FF0961FF015BFF015CFF015CFF015CFF015CFF015CFF015CFF015CFF015CFF015CFF0059FF065CFF95BBFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEC6C8D658587A00003300005800005800005800005800005800004800004800004800004800004800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00005800005800005800004800003300003358587ACACACACACACAEAEEFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EF315200315200315200315200315200315200315200315200315200315200315200315200174A000042080042080042080042080042080042080042080042080042080042080042080042080042087BA984FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FC0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA77A5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECF4FF5798FF005EFF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0060FF0F6CFFE2EDFFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FF78ADFF0059FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0061FF0260FFA5C8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE18184200004800004800005800005800005800005800005800004800004800004800004800005800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D000058000058000058000048000033000033000033000033000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9CA584547331315200315200315200315200315200315200315200315200315200315200315200315200174A000042080042080042080042080042080042080042080042080042080042080042080042080C2B05114816326639F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF3377FE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9125AED3377FEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFF72ADFF0063FF016AFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF0068FF1074FFF4F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82B6FF0060FF016BFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF0067FF056BFFE1EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE948C8C5A635A5A635A4E4E4E4E4E4E948C8CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE948C8C5A635A5A635A4E4E4E4E4E4E948C8CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE948C8C5A635A5A635A4E4E4E4E4E4E948C8CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE18184200004800004800005800005800005800005800005800004800004800004800004800005800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D000058000058000058000048000048000033000033000033000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB7DBB96B8B38255A00315200315200315200315200315200315200315200315200315200315200315200315200174A000042080042080042080042080042080042080042080042080042080042080042080042080C2B05004208004208B5C6B5D8EAD9FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE538CFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9004AE90052FAB5CEFFD9E7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5D7FF0573FF0072FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0071FF107CFFF0F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80B9FF0069FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF006EFF3D95FFF5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8686865A635A6E6E6E6E6E6E5A635A4E4E4E969696F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8686865A635A6E6E6E6E6E6E5A635A4E4E4E969696F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8686865A635A6E6E6E6E6E6E5A635A4E4E4E969696F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB73739473739400104A00004800005800006D00006D00006D00005800005800005800005800004800004800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00005800005800005800005800004800004800003300003300003358587AADADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECEDED6008400008400008400315200315200315200315200315200315200315200315200315200315200315200315200174A000042080042080042080042080042080042080042080042080042080042080042080042080C2B05004208004208004208638C65FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED9E7FE266AFE266AFE266AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9004AE90052FA0052FA689AFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBF5FF1C89FF0077FF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF0079FF1083FFF0F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80BDFF0072FF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF0076FF92C7FFFCFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E8686868686866E6E6E6E6E6E6E6E6E5A635A5A635AA8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E8686868686866E6E6E6E6E6E6E6E6E5A635A5A635AA8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E8686868686866E6E6E6E6E6E6E6E6E5A635A5A635AA8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB58587A00003300003300004800005800006D00006D00006D00006D00006D00005800005800005800004800004800005800005800006D00005800005800005800006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800004800004800004800003300003300003358587ADADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE75AF7442A542008400008400008400087401255A00315200315200315200315200315200315200315200315200315200315200244A00244A000042080042080042080042080042080042080042080042080042080042080C2B050042080042080042080042081853214A7B52D8EAD9FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8CB5FF5A94FF266AFE266AFE266AFE1663FE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AE9004AE9004AE9004AF70052FA0052FA1663FE4384FED9E7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83C2FF007BFF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0081FF108AFFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C1FF0079FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0081FF0483FFCEE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B948C8C6E6E6E7B847B7B847B7B847B5A635A5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B948C8C6E6E6E7B847B7B847B7B847B5A635A5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B948C8C6E6E6E7B847B7B847B7B847B5A635A5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00006D00005800005800005800005800005800005800006D00006D00005800005800006D00006D00005800006D00006D00006D000058000058000058000058000058000058000058000058000048000048000048000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED8EAD92E962E008400008400008400008400008400087401255A003152003152003152003152003152003152003152003152003152003152003152000042080042080042080042080042080042080042080042080042080C2B050C2B05004208004208004208004208004208004208ADC6B5EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FCD9E7FE538CFE266AFE266AFE266AFE266AFE266AFE1663FE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AE9004AE90052FA0052FA0052FA0052FA0052FA0052FAA9C6FFEAEEFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFCACACA7B847B7B847B0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E1018212118212118212118212118210E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E6E6E6EB5ADADFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4F2FF1D96FF0088FF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF0088FF1091FFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C5FF0082FF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF0085FF59B2FFFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED969696948C8C6E6E6E7B847B7B847B7B847B8686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED969696948C8C6E6E6E7B847B7B847B7B847B8686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED969696948C8C6E6E6E7B847B7B847B7B847B8686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD29295200004800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800006D00006D00005800005800006D00006D000058000058000048000048000048000058000058000058000058000058000058000058000058000058000048292952292952757489FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA7D6AA0084000084000084000084000084000084000084000084000084003152003152003152003152003152003152003152003152003152003152003152000042080042080042080042080042080042080042080042080042080C2B050C2B05004208004208004208004208004208004208004208397342FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBDD6FF266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AE9004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA3377FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDDADADB6E6E6E6E6E6E4E4E4E0E0F0E0E0F0E0E0F0E1018212118212118213030304239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302118212118212118212118212118212118210E0F0E303030B5ADADF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFEFF60BBFF008DFF0192FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF008FFF1098FFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C9FF008AFF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0090FF0792FFD4EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696966E6E6E7B847B7B847B8686868686868686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696966E6E6E7B847B7B847B8686868686868686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696966E6E6E7B847B7B847B8686868686868686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800006D00006D00006D00005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800006D00006D00005800005800005800005800005800005800004800004800004800005800005800005800005800005800005800005800005800005800004800003300003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE75AF7442A542008400008400008400008400008400008400008400008400008400087401255A003152003152003152003152003152003152003152003152003152000042080042080042080042080042080042080042080042080C2B05004208004208004208004208004208004208004208004208004208185321638C65CEDED6FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8CB5FF689AFF266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE1663FE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9004AE9004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA1663FE689AFFCADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFEDEDED9696966E6E6E5A635A0E0F0E0E0F0E1018212118213030303030304239424239424239424239424239424239424239424239424239424239424239423030304239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302118210E0F0E423942B5ADADFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1F3FF0599FF0097FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0096FF109EFFF0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80CCFF0091FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0093FF79C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B7B847B8686868686868686868686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B7B847B8686868686868686868686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B7B847B8686868686868686868686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800005800004800004800004800005800005800005800005800005800006D00006D00005800005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE2E962E0084000084000084000084000084000084000084000084000084000084000084000874013152003152003152003152003152003152003152003152003152000042080042080042080042080042080042080042080042080C2B05004208004208004208004208004208004208004208004208004208004208004208A5BAA7F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE427BFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE1663FE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAA9C6FFEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDDADADBA8A8A85A635A4239420E0F0E2118213030303030304239424E4E4E4239424239424239424E4E4E4239424239424239424239424239424239424239424239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030301018210E0F0E5A635AA8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5DDFF009DFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF009DFF10A5FFF0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80D0FF0098FF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF009DFF27ADFFF5FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B8686868686868686868686868686866E6E6E5A635A5A635AA8A8A8EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B8686868686868686868686868686866E6E6E5A635A5A635AA8A8A8EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B8686868686868686868686868686866E6E6E5A635A5A635AA8A8A8EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800005800006D00006D00006D00006D00006D00005800005800006D00006D00006D00006D00006D00006D00005800006D00006D00006D00005800005800005800005800005800005800005800004800004800004800004800004800005800005800006D00006D00006D00006D00005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE637A2D2D6B09008400008400008400008400008400008400008400008400008400008400008400008400255A003152003152003152003152003152003152003152000042080042080042080042080042080042080042080042080C2B050042080042080042080042080042080042080042080042080042080042080042080042082A542AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE266AFE105AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB4239422118213030304239424239424E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239424E4E4E4239424239424239424239424239424239424239424239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030301018210E0F0E4239426E6E6EDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FCFF3BBAFF00A3FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF00A3FF10ABFFF0FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80D3FF009FFF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF00A5FF04A5FFB2E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA868686868686868686868686868686857B7A6E6E6E5A635A5A635A5A635AEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA868686868686868686868686868686857B7A6E6E6E5A635A5A635A5A635AEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA868686868686868686868686868686857B7A6E6E6E5A635A5A635A5A635AEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800005800004800004800003300003300004800004800004800005800006D00006D00006D00006D00005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADECEA5AD84526B222D6B092D6B092D6B09087401008400008400008400008400008400008400008400008400008400087401255A00315200315200315200315200315200315200004208004208004208004208004208004208004208004208004208004208004208004208004208004208004208004208004208004208004208004208004208085218779C7BCAD6C8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE77A5FF105AFE105AFE1663FE1663FE1663FE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE1663FE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AE9004AE9004AE9004AF70052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA105AFE77A5FFCADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADB5B54E4E4E1018212118213030304239424239424E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239424239424239424239424239424239424239424239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302118210E0F0E0E0F0E1018216E6E6EDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBF3FF05ACFF00A9FF00AAFF00AAFF00AAFF00AAFF00AAFF00A7FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A3FF00AAFFEFFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77D2FF009EFF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A5FF00AAFF00AAFF00AAFF00AAFF00AAFF00AAFF00A7FF75D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBA8A8A88686864E4E4E4E4E4E5A635A857B7A5A635A5A635A5A635A33444ADE8484FF9494FF9494FF9494FF9494FF9494FF9494FF9494FFABABFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBA8A8A88686864E4E4E4E4E4E5A635A857B7A5A635A5A635A5A635A33444A8484B99292D19292D19292D19292D19292D19292D19292D1B3B3CDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBA8A8A88686864E4E4E4E4E4E5A635A857B7A5A635A5A635A5A635A33444A84DEDE94F6F994F6F994F6F994F6F994F6F994F6F994F6F9ABFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9495A59495A563638400003300005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800006D00006D00006D00006D00006D00006D00005800005800005800005800005800004800004800003300003300004800004800005800005800006D00006D00006D00006D0000580000580000480000483131639495A5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEAABD9C4963104963104963104963104963102D6B090084000084000084000084000084000084000084000084000084000084000874013152003152003152003152003152003152000042080042080042080042080042080042080C2B050C2B050042080042080042080042080042080042080042080042080042080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98B9FF0052FA0052FA0052FA0052FA0052FA105AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE1663FE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AE9004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA5A635A5A635A1018213030304239423030302118213030302118212118214239424239424239424239424239424239424239424239424239424239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302118210E0F0E0E0F0E1018215A635ADADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFEBFF00B0FF00AFFF00AFFF00AFFF00AFFF00AFFF00ADFF40C3FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D6FF87D9FFF8FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0EBFF80D4FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF78D4FF08B2FF00AFFF00AFFF00AFFF00AFFF00AFFF00AEFF47C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBB9696964239420E0F0E101821525A635A635A5A635A5A635A052136B51808D81605D81605D81605D81605D81605D81605D81605E74A39FFABABFFABABFFABABFFABABFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBB9696964239420E0F0E101821525A635A635A5A635A5A635A05213600006D21218421218421218421218421218421218421218455499994ADCE94ADCE94ADCEB3B3CDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBB9696964239420E0F0E101821525A635A635A5A635A5A635A05213600B1B100D8D800D8D800D8D800D8D800D8D800D8D800D8D831E7E7ABFFFFABFFFFABFFFFABFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300003300003300004800005800005800005800005800005800006D00006D00006D00006D00006D00006D00005800005800005800005800005800005800005800005800006D00006D00006D00006D00005800005800005800005800005800005800004800004800004800004800004800005800005800006D00006D00006D00006D00006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA5BAA72A542A425A16496310496310496310496310496310496310496310008400008400008400008400008400008400008400008400008400255A003152003152000C2B050E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0C2B050C2B050042080042080042080042080042080042080042080042080042080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA5BDFF266AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE105AFE0052FA0052FA05296F0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0035AF004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED9696964E4E4E4239425A635A5A635A4239424E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239423030302118212118211018211018213030303030303030304239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030301018210E0F0E0E0F0E1018215A635AF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DE2FF00B4FF00B4FF00B4FF00B4FF00B4FF00B4FF00AFFF89DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10B9FF00B3FF00B4FF00B4FF00B4FF00B4FF00B3FF1ABDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB8689960017330017330017335A635A5A635A4E4E4E0C2849895A26A56B29A56B29A56B29A56B29A56B29A56B29A56B29B55221D81605D81605D81605DE2110FFABABFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB8689960017330017330017335A635A5A635A4E4E4E0C28494A358C5549995549995549995549995549995549995549994A358C040485040485040485212184B3B3CDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB8689960017330017330017335A635A5A635A4E4E4E0C28490C737306878706878706878706878706878706878706878706878700D8D800D8D800D8D800D8D8ABFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800005800005800005800005800006D00006D00006D00006D00006D00006D00005800005800005800005800005800005800005800005800006D00006D00006D00006D00005800005800005800005800005800005800004800004800004800004800004800005800005800006D00006D00006D00006D00006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEAABD9C2A542A425A16496310496310496310496310496310496310496310087401087401087401008400008400008400008400008400008400087401255A002431090E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0C2B050042080042080042080042080042080042080042080042080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98B9FF1663FE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA1663FE1663FE1663FE266AFE266AFE266AFE266AFE266AFE266AFE1663FE105AFE002D9400185200173300173300173300173300173300173300173305296F002D94002D940243CC0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA5A635A4E4E4E4E4E4E5A635A6E6E6E6E6E6E5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239423030302118212118212118211018212118213030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030301018210E0F0E0E0F0E303030423942CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84DDFF00B4FF00B8FF00B8FF00B8FF00B8FF00B8FF00B3FF80DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FBCFF00B7FF00B8FF00B8FF00B8FF00B8FF00B8FF0FBCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB9495A52139520017330521364E4E4E4E4E4E0C2849001733B79670DAB587DAB587DAB587DAB587D6AD7BC69C6BC69C6BB18650895A267B52188B51128B5112FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB9495A52139520017330521364E4E4E4E4E4E0C28490017335256B56F68D76F68D76F68D76F68D7847BEF9292D19292D18484B952427B432A7A432A7A432A7A040485FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB9495A52139520017330521364E4E4E4E4E4E0C28490017334E8E8952A59C52A59C52A59C52A59C52A59C4E8E894E8E894E8E890687870C737306878706878702FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800005800005800005800006D00006D00006D00006D00005800005800005800005800005800005800004800004800004800005800005800005800006D00006D00006D00006D00006D00006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEAABD9C4963104963104963104963104963104963104963104963104963104963104963104963100084000084000084000084000084000084000084000874010E0F0E0E0F0E0C2B050C2B050C2B050C2B050C2B050C2B050C2B050E0F0E0E0F0E0E0F0E0C2B050042080042080042080042080042080042080042080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98B9FF0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFE266AFE266AFE266AFE266AFE266AFE266AFE2965D60E0F0E0521360D468D0D468D0D468D0D468D0D468D0D468D0D468D0013280E0F0E0E0F0E002D940052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA9696964239424239425A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424E4E4E4239424239424239424239423030303030303030301018212118211018210E0F0E1018212118213030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302118211018210E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E101821303030969696FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3ECCFF00B9FF00BBFF00BBFF00BBFF00BBFF00BBFF00B6FF80DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FBFFF00BAFF00BBFF00BBFF00BBFF00BBFF00BBFF0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDCACACACACACACACACA99A8AF2139520521360013280017330C28490C2849C6C8D6EDEDEDEDEDEDEDEDEDEDEDEDC6BDBD9C948C9C948C9C948C857B7A5242298B51128B5112FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDCACACACACACACACACA99A8AF2139520521360013280017330C28490C284905296F0404850404850404850404855549999495A59495A59495A575748939314A432A7A432A7A040485FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDCACACACACACACACACA99A8AF2139520521360013280017330C28490C28497BC6D694F6F994F6F994F6F994F6F994ADCE8494948494948494947B847B21395206878706878702FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800004800004800005800005800005800005800005800006D00006D00006D00006D00005800005800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBC6A65973284963104469253266394469254963105973285973285973285973284473363266394963104963104963100874010084000084000C2B050E0F0E0C2B052147183266393266393266393266397BA98486BC8A86BC8A2A542A0C2B050E0F0E0C2B050042080042080042080042080042080042080042080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98B9FF105AFE0052FA105AFE266AFE105AFE0052FA105AFE105AFE105AFE105AFE1663FE266AFE266AFE266AFE266AFE266AFE266AFE266AFE05296F00132805296F0035AF0243CC0243CC0243CC0243CC1863EF216BEF216BEF0243CC002D940E0F0E002D940052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696965A635A4239425A635A5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239424239424239424239424239424239424239424239424239423030303030302118212118212118211018210E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E1018212118212118212118212118212118212118212118212118212118212118212118212118212118212118211018210E0F0E0E0F0E0E0F0E211821FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23C6FF00BCFF00BDFF00BDFF00BDFF00BDFF00BDFF00B8FF80DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC1FF00BCFF00BDFF00BDFF00BDFF00BDFF00BDFF0FC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDADADBCACACACACACACACACACACACAADADBB2139520C28490C2849213952213952857B7A948C8C948C8C948C8C948C8CB79670CE9C5ACE9C5AB186508B51128B51128B51128B5112FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDADADBCACACACACACACACACACACACAADADBB2139520C28490C28492139522139527574898689968689968689968689968484B9847BEF847BEF6F68D7432A7A432A7A432A7A432A7A212184FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDADADBCACACACACACACACACACACACAADADBB2139520C28490C28492139522139527792858494948494948494948494944E8E89318C84318C84318C8406878706878706878706878702FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00006D00005800005800005800005800004800004800004800004800004800004800005800005800005800005800006D00006D00006D00006D00005800005800005800005800005800005800005800005800006D00006D00006D00006D000058000058000058000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B69CA584597328526B18446925447336446925526B18597328597328597328597328547331447336526B184469254469252D6B090874010058000C2B050E0F0E1148162A542A397342779C7B779C7B779C7BB7DBB9ADDEB59CCEA55487563266390E0F0E0C2B05044610004208004208004208004208004208004208004208004208004208004208004208004208638C65ADC6B5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB5CEFF689AFF105AFE105AFE105AFE1663FE105AFE105AFE105AFE105AFE105AFE105AFE1663FE1663FE1663FE266AFE266AFE266AFE1863EF0944B70018520017330D468D0944B70243CC5284E75284E75284E7689AFF538CFE266AFE125AED0243CC00104A0035AF004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA689AFFA9C6FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696963030304E4E4E5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239424239424239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030301018210E0F0E0E0F0EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14C4FF00BEFF00BEFF00BEFF00BEFF00BEFF00BEFF00B9FF80DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC2FF00BDFF00BEFF00BEFF00BEFF00BEFF00BEFF0FC2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACACACACACACACACACACACACACA969696969696969696969696969696895A268B51128B51128B51128B51128B51128B51128B5112B53910FF0202FF0202FF0202FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACACACACACACACACACACACACACA9696969696969696969696969696964A358C432A7A432A7A432A7A432A7A432A7A432A7A432A7A31217B040485040485040485040485FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACACACACACACACACACACACACACA96969696969696969696969696969606878706878706878706878706878706878706878706878700B1B102FFFF02FFFF02FFFF02FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00005800005800005800005800004800004800003300003300004800004800004800004800004800005800005800005800005800006D00006D00006D00006D00005800005800005800005800005800006D00006D00006D00006D00006D000058000058000058000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE597328597328597328597328597328597328597328597328597328597328597328597328597328597328597328547331397342597328425A160E0F0E0C2B05044610397342397342397342FEFEFEFEFEFEFEFEFEFEFEFEDEE9ED9CCEA59CCEA586BC8A114816114816114816004208004208004208004208004208004208004208004208004208004208004208004208004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE1663FE266AFE105AFE0944B70E0F0E0018520D468D0243CC0243CC0243CCFEFEFEFEFEFEFEFEFEFEFEFEBDD6FF266AFE266AFE266AFE004AE9004AE9004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E423942423942423942423942423942423942423942303030423942303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030101821FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11C3FF00BEFF00BEFF00BEFF00BEFF00BEFF00BEFF00B9FF80DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC2FF00BDFF00BEFF00BEFF00BEFF00BEFF00BEFF0FC2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACAADB5B5969696969696969696948C8C2118212118210C28490C2849D81605FF0202FF0202FF0202FF0202FF0202FF0202FF0202FF5252FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACAADB5B5969696969696969696948C8C2118212118210C28490C28490404850404850404850404850404850404850404850404855256B5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACAADB5B5969696969696969696948C8C2118212118210C28490C284900DEE702FFFF02FFFF02FFFF02FFFF02FFFF02FFFF02FFFF52FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00005800005800005800005800004800004800003300003300004800004800004800004800004800005800005800005800005800006D00006D00006D00006D00005800005800005800005800005800006D00006D00006D00006D00006D000058000058000058000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE597328597328597328597328597328597328597328597328597328597328597328597328597328597328597328597328597328597328425A160E0F0E0C2B050C2B05044610779C7BDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEECF7EC8CB5945487560C2B05114816114816004208004208004208004208004208004208004208004208004208004208004208004208004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE1663FE105AFE0944B70E0F0E05296F002D940243CC6B94E7CADBFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FCCADBFE689AFF3773EF0035AF0243CC004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE3030304239425A635A5A635A5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239423030304239423030304239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030305A635AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1CC4FF00BCFF00BDFF00BDFF00BDFF00BDFF00BDFF00B8FF80DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC1FF00BCFF00BDFF00BDFF00BDFF00BDFF00BDFF0FC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9663238B51128B5112655A565A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E8686869696969696969696969696969696969696966E6E6E4E4E4EBBBBBBBBBBBBB5ADAD0E0F0E0E0F0EEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE2556930D468D0D468D4A5A6B5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E8686869696969696969696969696969696969696966E6E6E4E4E4EBBBBBBBBBBBBB5ADAD0E0F0E0E0F0EEDEDEDFEFEFEEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0404850404850404854242635A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E8686869696969696969696969696969696969696966E6E6E4E4E4EBBBBBBBBBBBBB5ADAD0E0F0E0E0F0EEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00005800005800005800005800004800004800003300003300004800004800004800004800005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D000058000058000058000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE597328597328637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D597328425A160E0F0E0E0F0E0C2B050042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8CAD8C5487560C2B05114816114816004208004208004208004208004208004208004208004208004208004208004208004208004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE0944B70E0F0E05296F002D940243CC8CADE7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF3773EF002D940243CC004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE948C8C4E4E4E2118213030304239424E4E4E4E4E4E5A635A5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302118210E0F0E868686FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2FC7FF00B9FF00BBFF00BBFF00BBFF00BBFF00BBFF00B6FF80DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FBFFF00BAFF00BBFF00BBFF00BBFF00BBFF00BBFF0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7EFEDA57B42A56B29895A267B52187B52187B52187B52187B52187B52187B52187B52187B5218895A26B5ADAD0E0F0E0E0F0E2118211018211018211018211018211018211018211018211018212118213030304239424E4E4EADB5B5001328001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFA4A73AF2963A5255693255693255693255693255693255693255693255693255693255693255693B5ADAD0E0F0E0E0F0E2118211018211018211018211018211018211018211018211018212118213030304239424E4E4EADB5B5001328001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFA0303EC0303EC0000AD040485040485040485040485040485040485040485040485040485212184B5ADAD0E0F0E0E0F0E2118211018211018211018211018211018211018211018211018212118213030304239424E4E4EADB5B5001328001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00005800005800005800005800004800004800004800004800003300003300004800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D000058000058000058000058000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE597328637A2D6B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B38637A2D425A160E0F0E0E0F0E0C2B050042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8CAD8C5487560C2B05114816114816004208004208004208004208004208004208004208004208004208004208004208004208004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE105AFE1663FE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE105AFE0944B70E0F0E05296F002D940243CC8CADE7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF3773EF002D940243CC004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EF9696964E4E4E3030303030304239424E4E4E4E4E4E4E4E4E4E4E4E5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030301018214E4E4E969696FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61D3FF00B4FF00B7FF00B7FF00B7FF00B7FF00B7FF00B2FF80DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FBBFF00B6FF00B7FF00B7FF00B7FF00B7FF00B7FF0FBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7EFEDEDE9DEB186509663238B51128B51128B51128B51128B51128B51128B51128B51128B5112895A263030302118210E0F0E0E0F0E0E0F0E2118213030303030303030303030303030303030304E4E4EADB5B5ADB5B5CACACAA8A8A8001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFADEE9ED5A84B52556932556930D468D0D468D0D468D0D468D0D468D0D468D0D468D2556932556933030302118210E0F0E0E0F0E0E0F0E2118213030303030303030303030303030303030304E4E4EADB5B5ADB5B5CACACAA8A8A8001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED8D8FFD8D8FF3535EF0303EC0000AD0404850404850404850404850404850404850404850404852121843030302118210E0F0E0E0F0E0E0F0E2118213030303030303030303030303030303030304E4E4EADB5B5ADB5B5CACACAA8A8A8001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00006D00005800005800005800005800004800004800004800004800004800004800005800005800005800005800006D00006D00006D00006D00006D00006D00005800005800005800005800005800006D00006D00006D00006D00006D000058000058000058000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6B8B386B8B386B8B38769147769147769147769147769147769147849C4E8CAA578CAA5777A55A739C63739C63739C63739C63849C4E5A73420E0F0E0E0F0E0C2B05004208296331548756FEFEFEFEFEFEFEFEFEFEFEFED8EAD994B59C6B98735487560C2B05114816114816004208004208004208004208004208004208004208004208004208004208004208004208004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE1663FE1663FE266AFE2973FE2973FE2973FE2973FE2973FE2973FE3377FE3377FE3377FE3377FE2973FE2973FE2973FE2973FE266AFE295AB50E0F0E05296F002D940243CC2965D6527BDEFEFEFEFEFEFEFEFEFEFEFEFED9E7FE84ADFF538CFE3773EF002D940243CC004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED8686863030303030304239424239424E4E4E4E4E4E4E4E4E4E4E4E423942303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030423942423942423942423942423942423942423942423942423942423942423942423942423942423942303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030211821211821303030868686C6BDBDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9BE2FF00B1FF00B3FF00B3FF00B3FF00B3FF00B3FF00AEFF81DAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2FBFF0FB8FF00B2FF00B3FF00B3FF00B3FF00B3FF00B3FF14B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDE9DEE8D7C7B796709663239663239663239663239663238B51128B51128B51128B5112A8A8A89696963030303030303030303030303030303030303030304E4E4E5A635A5A635A7B847BCACACACACACACACACACACACA99A8AFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDEE9EDD6DEEF6B8CBD2556932556932556932556932556930D468D0D468D0D468D255693A8A8A89696963030303030303030303030303030303030303030304E4E4E5A635A5A635A7B847BCACACACACACACACACACACACA99A8AFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED8D8FFC6C6FF4A4AEF0303EC0303EC0303EC0303EC0000D9040485040485040485040485A8A8A89696963030303030303030303030303030303030303030304E4E4E5A635A5A635A7B847BCACACACACACACACACACACACA99A8AFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800004800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE849C4E7691476B8B38849C4E849C4E849C4E849C4E849C4E849C4E8CAA5792B26D92B26D92B26D75AF7475AF7475AF7475AF7492B26D7691470E0F0E0C2B050C2B05004208004208004208D8EAD9EDEDEDEDEDEDEDEDEDB7DBB963946B5487564574460C2B051148161148160042080042080042080042080042080042080042080042080042080042080042080042081052182A542AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE3377FE3377FE266AFE3377FE3377FE3377FE3377FE3377FE3377FE427BFE4384FE4384FE3377FE3377FE3377FE3377FE3377FE3377FE2965D600082505296F002D940944B70243CC0243CCD9E7FED9E7FED9E7FED9E7FEB5CEFF4384FE3377FE2965D6002D940035AF004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA105AFE266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB7B847B4239423030304239424239424E4E4E4239423030303030303030303030303030303030303030303030303030303030304239424239424239424239424239424239424239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030301018211018211018211018210E0F0E0E0F0E0E0F0E0E0F0E4E4E4EBBBBBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0E6FF00AEFF00AEFF00AEFF00AEFF00AEFF00AEFF00A8FF81D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FBFF0FB3FF00ADFF00AEFF00AEFF00AEFF00AEFF00ADFF31BEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDE9DEE8D7C7E8D7C7E8D7C7E8D7C7DAB587966323966323966323966323B18650BBBBBB9696964239423030304E4E4E5A635A5A635A5A635A5A635A6E6E6E948C8CCACACACACACACACACACACACACACACACACACADADADBB5ADADF7EFEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDEE9EDC6D6E7C6D6E7C6D6E7C6D6E794ADCE2556932556932556932556935A84B5BBBBBB9696964239423030304E4E4E5A635A5A635A5A635A5A635A6E6E6E948C8CCACACACACACACACACACACACACACACACACACADADADBB5ADADF7EFEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED8D8FFB5B5FFB5B5FFB5B5FFB5B5FF7B7BF70000D90000D90000D90000D93535EFBBBBBB9696964239423030304E4E4E5A635A5A635A5A635A5A635A6E6E6E948C8CCACACACACACACACACACACACACACACACACACADADADBB5ADADF7EFEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6849C4E849C4E849C4E92B26D92B26D8CAA5775AF7492B26D92B26D92B26D92B26D86BC8AA5C674ADD08C9CCEA5A5C674A5C6749CCEA53030300E0F0E0C2B0500420800420800420818532139734239734245744663946B2147180C2B050E0F0E0C2B050042080042080042080042080042080042080042080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9C6FF3377FE3377FE2973FE266AFE266AFE266AFE3377FE427BFE4384FE4384FE4384FE4384FE4384FE538CFE689AFF689AFF5A94FF2973FE0C28490E0F0E0D468D0035AF0243CC0243CC0243CC0243CC0243CC125AED4384FE0944B705296F0E0F0E002D940052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB7B847B4239423030303030303030303030304239424239424239424239424239424239424239424239424E4E4E4239424239424239424239424239424239424239424239424239424239424239423030304239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302118211018211018211018210E0F0E0E0F0E0E0F0E0E0F0E1018211018211018213030301018210E0F0E868686BBBBBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0EFFF02A9FF00A8FF00A9FF00A9FF00A9FF00A9FF00A7FF24B4FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48BFFF52C4FFF4FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4E0FF48BCFF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF43BFFF04AAFF00A8FF00A9FF00A9FF00A9FF00A9FF00A6FF63CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7EFEDD1D4B6D1D4B6D1D4B6D1D4B6D1D4B6BBBBBBBBBBBB9696965A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E948C8CBBBBBBDADADBCACACACACACACACACACACACACACACAADB5B5DADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFAB6C8DAB6C8DAB6C8DAB6C8DAB6C8DABBBBBBBBBBBB9696965A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E948C8CBBBBBBDADADBCACACACACACACACACACACACACACACAADB5B5DADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFAA5A5FFA5A5FFA5A5FFA5A5FFA5A5FFBBBBBBBBBBBB9696965A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E948C8CBBBBBBDADADBCACACACACACACACACACACACACACACAADB5B5DADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800006D00006D00006D00005800005800006D00006D00005800005800005800005800004800004800004800004800004800005800005800005800006D00006D00006D00006D00006D00006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6849C4E77A55A8CAA5792B26D92B26D92B26D92B26D92B26D95BD8492B26DA5BD77A5BD7798CA94ADD08CADD08CADD08C98CA94ADD08C739C635667350E0F0E0C2B050C2B050C2B050C2B052147182147182147182A542A0C2B050E0F0E0E0F0E0C2B050042080042080042080042080042080042080042080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9C6FF3377FE3377FE2973FE266AFE266AFE266AFE266AFE3377FE4384FE4384FE4384FE4384FE5A94FF538CFE4384FE689AFF689AFF538CFE4A73AF25569300173305296F0035AF0035AF0035AF0035AF0035AF0944B7295AB50018520017330E0F0E002D940052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB7B847B3030300E0F0E4239424239424239424239424239424239424239424239424239424239424239424239424239424239424239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030302118211018211018211018210E0F0E0E0F0E0E0F0E0E0F0E1018211018211018212118213030303030303030303030303030303030302118213030304E4E4ECACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEF9FF1AABFF00A0FF00A2FF00A2FF00A2FF00A2FF00A2FF00A0FF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009CFF04A4FFEFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7ACFFF0097FF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF00A1FF00A2FF00A2FF00A2FF00A2FF00A2FF02A0FF94D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDBBBBBBA8A8A87B847B6E6E6EA8A8A8CACACACACACA9696966E6E6E948C8CB5ADADCACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDBBBBBBA8A8A87B847B6E6E6EA8A8A8CACACACACACA9696966E6E6E948C8CB5ADADCACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDBBBBBBA8A8A87B847B6E6E6EA8A8A8CACACACACACA9696966E6E6E948C8CB5ADADCACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300003300003300004800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800006D00006D00006D00005800005800006D00006D00005800005800005800005800004800004800004800004800004800005800005800005800006D00006D00006D00006D00006D00006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6849C4E75AF7475AF7492B26D92B26D92B26D92B26D95BD8486BC8AA5C674A5C674A5C6749CCEA5ADD08CADD08C9CCEA598CA94A5C674A5C67492B26D0E0F0E0E0F0E0C2B050C2B050C2B050C2B050C2B050C2B050C2B050E0F0E0E0F0E0E0F0E0C2B050042080042080042080042080042080042080042080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9C6FF3377FE3377FE2973FE266AFE266AFE266AFE266AFE3377FE3377FE4384FE4384FE4384FE689AFF538CFE3377FE5A94FF689AFF689AFF689AFF5A84DE0E0F0E001852002D94002D94002D94002D94002D94002D94002D940008250E0F0E0E0F0E002D940052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB2118210E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E1018211018211018211018211018211018211018211018211018211018211018211018211018211018211018211018210E0F0E0E0F0E0E0F0E0E0F0E0E0F0E1018211018211018212118213030303030303030303030303030303030303030303030303030303030303030303030301018214E4E4E948C8CEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFEFF74C9FF0099FF009BFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009AFF0FA1FFF0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80CEFF0095FF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009BFF0FA1FFD8F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDDADADBCACACABBBBBBEDEDEDFEFEFEFEFEFEDADADB9696965A635A6E6E6E969696A8A8A8CACACACACACACACACACACACACACACACACACADADADBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDDADADBCACACABBBBBBEDEDEDFEFEFEFEFEFEDADADB9696965A635A6E6E6E969696A8A8A8CACACACACACACACACACACACACACACACACACADADADBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDDADADBCACACABBBBBBEDEDEDFEFEFEFEFEFEDADADB9696965A635A6E6E6E969696A8A8A8CACACACACACACACACACACACACACACACACACADADADBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9495A59495A563638400003300005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800004800004800004800004800004800005800005800005800006D00006D00006D00006D00006D0000580000580000480000483131639495A5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B692B26D92B26D92B26D86BC8AA5BD77A5C674A5C674A5C674A5C6749CCEA5ADD08CADD08CADD08CADD08C9CCEA5A5C674A5BD7786BC8A92B26D92B26D86BC8A3266390E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0C2B050042083152003152003152000042080042080042080042080042080042080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98B9FF266AFE266AFE266AFE427BFE3377FE2973FE2973FE2973FE2973FE2973FE2973FE2973FE2973FE4384FE689AFF4384FE4384FE4384FE4384FE4384FE427BFE21397B0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0035AF004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0E0F0E1018213030304239423030302118212118212118212118212118212118212118212118211018211018211018211018211018211018211018210E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E1018211018211018212118212118213030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302118210E0F0E4E4E4ECACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7E8FF0093FF0093FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0092FF0F9BFFF0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80CAFF008DFF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0090FF4AB3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696969696964E4E4E5A635A969696CACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696969696964E4E4E5A635A969696CACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696969696964E4E4E5A635A969696CACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800006D00006D00006D00006D00005800005800005800005800004800003300003300004800004800004800004800005800005800006D00006D00006D00006D00005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDE9DEBDD6A595BD8495BD8495BD8495BD84ADD08CADD08CADD08CA5C6749CCEA59CCEA5ADD08CADD08CADD08C98CA9495BD8495BD8495BD8492B26D92B26D95BD845A73423142182431092431092431092431090C2B05004208005800005800174A00244A00315200174A00004208004208004208004208004208004208004208004208004208085218779C7BCAD6C8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE8CB5FF3377FE2973FE427BFE3377FE2973FE2973FE3377FE4384FE2973FE2973FE2973FE4384FE538CFE689AFF4384FE4384FE4384FE4384FE4384FE4384FE295AB521397B21397B05296F05296F05296F05296F21397B2965D6125AED004AF70052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA105AFE77A5FFCADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBCAD6C85A635A5A635A1018213030304239424239424E4E4E4E4E4E4E4E4E423942423942423942423942423942423942423942423942423942303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030211821303030948C8CDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4FAFF2EA0FF0087FF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF0089FF0F92FFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C5FF0083FF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF0288FFB4DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B4E4E4E423942969696A8A8A8CACACACACACACACACACACACACACACABBBBBBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B4E4E4E423942969696A8A8A8CACACACACACACACACACACACACACACABBBBBBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B4E4E4E423942969696A8A8A8CACACACACACACACACACACACACACACABBBBBBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800006D00006D00006D00005800005800005800004800004800004800003300003300004800004800004800004800005800005800006D00006D00006D00006D00005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98CA9495BD84A5C67498CA949CCEA59CCEA5ADD08CADD08C9CCEA59CCEA59CCEA5A5C674A5C674A5C67486BC8A86BC8A92B26D92B26D92B26D92B26D849C4E6B8B38597328526B224963104963102D6B09008400008400087401004208244A00315200315200174A000042080042080042080042080042080042080042080042082A542AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE4384FE3377FE427BFE3377FE2973FE2973FE538CFE689AFF2973FE2973FE2973FE689AFF689AFF689AFF4384FE4384FE4384FE4384FE4384FE4384FE3377FE3377FE4384FE266AFE0052FA0052FA1663FE4384FE4384FE3377FE004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBCACACA5A635A3030302118213030304239424239424239424239424239424239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030300E0F0E4E4E4E948C8CEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0E0FF0383FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0081FF0F8BFFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C2FF007AFF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0084FF0080FF2998FFF9FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED8686866E6E6E4239424E4E4E969696969696B5ADADBBBBBBCACACABBBBBBBBBBBBCACACAEDEDEDEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED8686866E6E6E4239424E4E4E969696969696B5ADADBBBBBBCACACABBBBBBBBBBBBCACACAEDEDEDEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED8686866E6E6E4239424E4E4E969696969696B5ADADBBBBBBCACACABBBBBBBBBBBBCACACAEDEDEDEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800004800004800004800004800004800004800004800005800005800005800006D00006D00006D00006D00006D00005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADD08CA5C674A5C67498CA949CCEA5ADD08CADD08CADD08C9CCEA598CA94A5C674A5C674A5C674A5C674A5C674A5BD7786BC8A92B26D8CAA57849C4E7691476B8B384963104963104963104963102D6B090084000084000084000084000058000042083152003152003152000042080042080042080042080042080042080042082A542AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE538CFE3377FE427BFE3377FE3377FE689AFF689AFF689AFF2973FE4384FE689AFF689AFF689AFF689AFF689AFF538CFE2973FE3377FE4384FE3377FE3377FE3377FE105AFE0052FA0052FA0052FA1663FE4384FE4384FE3377FE3377FE125AED004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDED948C8C4E4E4E2118214239424239424239424239424239424239424239424239424239424239424239423030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030302118211018212118216E6E6ECACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFDFF4CA4FF0078FF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007BFF0F85FFF0F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80BEFF0073FF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007CFF0079FF9BCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E6E6E6E6E6E6E4E4E4E6E6E6E969696969696B5ADADBBBBBBBBBBBBBBBBBBCACACAF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E6E6E6E6E6E6E4E4E4E6E6E6E969696969696B5ADADBBBBBBBBBBBBBBBBBBCACACAF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E6E6E6E6E6E6E4E4E4E6E6E6E969696969696B5ADADBBBBBBBBBBBBBBBBBBCACACAF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800004800004800004800004800004800004800004800005800005800005800006D00006D00006D00006D00006D00005800004800003300003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADD08CADD08CA5C67498CA949CCEA5ADD08CADD08CADD08C98CA94ADD08CA5C674A5C674A5BD77A5BD77A5C674A5BD7786BC8A92B26D8CAA577691476B8B386B8B384469254469254963104963102D6B09008400008400008400008400005800004208315200315200315200174A00004208004208004208004208004208457446779C7BFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE538CFE4384FE538CFE3377FE3377FE538CFE538CFE538CFE4384FE538CFE689AFF689AFF689AFF5A94FF689AFF5A94FF2973FE3377FE4384FE3377FE2973FE266AFE105AFE105AFE0052FA0052FA1663FE4384FE4384FE4384FE4384FE125AED004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA427BFE77A5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA6E6E6E2118212118214239424239424239424239424239424239424239424239424239423030304239423030303030303030303030303030303030303030301018211018211018211018214239427B847B7B847B7B847B948C8CEDEDEDF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7E9FF0173FF0074FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0073FF0F7DFFF0F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80BAFF006BFF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0070FF5EA8FFF8FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A4239423030306E6E6E969696B5ADADADB5B5BBBBBBCACACAEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A4239423030306E6E6E969696B5ADADADB5B5BBBBBBCACACAEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A4239423030306E6E6E969696B5ADADADB5B5BBBBBBCACACAEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD29295200004800005800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800004800004800004800004800004800004800004800005800005800006D00006D00006D00006D00006D000058000058000048292952292952757489FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA7D6AA9CCEA5ADD08C9CCEA59CCEA59CCEA59CCEA59CCEA5A5C674A5C674A5C674A5C674A5BD7786BC8AA5BD77A5BD7786BC8A92B26D8CAA576B8B38637A2D5973283973424469254963104963102D6B09008400008400008400008400005800004208315200315200315200315200244A00004208004208004208004208ADC6B5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE538CFE4384FE689AFF3377FE2973FE2973FE2973FE3377FE689AFF689AFF689AFF689AFF5A94FF4384FE689AFF5A94FF2973FE3377FE4384FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA1663FE4384FE4384FE4384FE4384FE125AED004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAB5CEFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFCACACA4E4E4E1018211018211018211018211018211018211018211018211018211018211018211018210E0F0E5A635A7B847B7B847B7B847BEDEDEDF7F7EFF7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62A6FF0069FF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006BFF0F77FFF0F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80B7FF0064FF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006CFF0772FFD9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8686864E4E4E5A635A4E4E4E6E6E6EA8A8A8B5ADADB5ADADA8A8A8F7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8686864E4E4E5A635A4E4E4E6E6E6EA8A8A8B5ADADB5ADADA8A8A8F7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8686864E4E4E5A635A4E4E4E6E6E6EA8A8A8B5ADADB5ADADA8A8A8F7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800005800005800005800005800005800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00005800005800005800005800004800004800004800005800005800005800006D00006D00006D00006D000058000058000058000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFD8EAD99CCEA59CCEA59CCEA59CCEA59CCEA59CCEA5A5C674A5C674A5C67486BC8A86BC8A86BC8A86BC8A86BC8A92B26D849C4E7691476B8B38637A2D5973283973424469254963104963104963102D6B09087401008400008400008400087401004208244A00315200315200315200244A00004208326639D8EAD9F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFAA9C6FF3377FE3377FE2973FE2973FE2973FE3377FE689AFF689AFF689AFF538CFE4384FE4384FE4384FE4384FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA105AFE3377FE4384FE4384FE3377FE3377FE004AE90052FA0052FA0052FA0052FA0052FA0052FA3377FED9E7FEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBF3FF277EFF0060FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0064FF0F70FFF0F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80B3FF005CFF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0066FF005EFF9BC3FFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696964E4E4E4E4E4E655A56969696969696A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696964E4E4E4E4E4E655A56969696969696A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696964E4E4E4E4E4E655A56969696969696A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB58587A00003300003300004800005800005800005800005800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800005800005800005800005800006D00006D00006D00006D00005800004800004800003358587ADADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEECF7ECB7DBB9A7D6AA9CCEA59CCEA59CCEA59CCEA5A5C674A5C674A5C67486BC8A86BC8A86BC8A86BC8A86BC8A8CAA577691476B8B386B8B38637A2D597328397342446925496310496310496310496310087401008400008400008400008400004208174A00315200315200315200315200457446779C7BFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED9E7FE689AFF3377FE2973FE2973FE2973FE3377FE689AFF689AFF689AFF4384FE4384FE4384FE4384FE3377FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA0052FA3377FE4384FE4384FE4384FE3377FE004AE9004AF70052FA0052FA0052FA0052FA3377FE77A5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDE0FF1F71FF005CFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005CFF106AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89B5FF0053FF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF0059FF5F9BFFFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB3030304E4E4EA8A8A8A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB3030304E4E4EA8A8A8A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB3030304E4E4EA8A8A8A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB73739473739400104A00004800005800005800005800005800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800005800006D00006D00006D00006D00006D00005800004800004800004858587AADADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB7DBB99CCEA59CCEA59CCEA59CCEA5A5C674A5C674A5C67486BC8A86BC8A86BC8A86BC8A86BC8A849C4E7691476B8B386B8B38637A2D597328397342446925496310496310496310496310087401008400008400008400008400004208174A00315200315200315200315200DADECEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE689AFF2973FE2973FE2973FE3377FE689AFF689AFF689AFF4384FE4384FE4384FE4384FE3377FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA0052FA3377FE4384FE4384FE4384FE3377FE004AE9004AF70052FA0052FA0052FA0052FACADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBDEFF0358FF0055FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0056FF085DFF78A6FF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF4082FF0052FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0053FF2E75FFF0F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE18184200004800004800004800004800004800004800005800005800006D00006D00006D00006D00006D00006D00005800005800005800005800006D00006D00006D00006D00005800005800006D00006D00006D00006D00006D000058000048000048000033000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEECF7ECECF7ECECF7ECBDD6A5A5C674A5C674A5BD7786BC8A86BC8A86BC8A92B26D92B26D8CAA57849C4E7691476B8B386B8B38637A2D5973283973424469254963104963104963104963102D6B092D6B09008400008400008400087401005800044610315200769147D1D4B6F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED9E7FECADBFECADBFE84ADFF5A94FF689AFF5A94FF538CFE4384FE3377FE3377FE3377FE3377FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA0052FA105AFE1663FE4384FE4384FE3377FE2973FE105AFE004AE90052FA4384FEBDD6FFEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFA0BFFF0453FF004EFF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0051FF0047FF0046FF0046FF0046FF0046FF0046FF0046FF0046FF0046FF0046FF0046FF004CFF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0051FF004CFF407DFFE5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE18184200004800004800004800004800004800004800005800005800006D00006D00006D00006D00006D00006D00005800005800005800005800006D00006D00006D00006D00005800005800006D00006D00006D00006D00006D000058000048000048000033000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6ADD08CA5C67495BD8486BC8A86BC8A95BD8492B26D92B26D8CAA57849C4E7691476B8B386B8B38637A2D5973283973424469254963104963104963104963104963102D6B090084000084000084000084000058000042085667359CA584FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB5CEFF84ADFF689AFF538CFE4384FE4384FE3377FE2973FE2973FE2973FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA0052FA0052FA105AFE4384FE4384FE4384FE4384FE266AFE004AE93377FE84ADFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3D5FF1E5EFF0045FF004AFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF0049FF0046FF5284FFE8F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEC6C8D658587A00003300003300004800004800004800005800005800005800006D00006D00006D00006D00006D00006D00006D00006D00005800006D00006D00006D00006D00006D00006D00005800006D00006D00006D00005800005800003358587ACACACACACACAEAEEFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA5C67495BD8486BC8A86BC8A95BD8492B26D92B26D8CAA57849C4E7691476B8B386B8B38637A2D5973283973424469254963104963104963104963104963102D6B09008400008400008400008400005800004208EFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE689AFF538CFE4384FE4384FE3377FE2973FE2973FE2973FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA0052FA0052FA105AFE4384FE4384FE4384FE4384FE266AFE004AE9EFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3D4FF1C57FF0042FF0044FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0041FF0547FF6992FFE8EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB58587A00003300003300004800004800004800004800005800005800005800006D00006D00006D00006D00006D00006D00005800005800005800005800005800006D00005800004800005800005800005800005800004858587AADADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE95BD8486BC8A86BC8A86BC8A95BD8492B26D8CAA57849C4E7691476B8B386B8B386B8B38637A2D5973285473314469254963104963104963104963104963104963102D6B09087401008400008400087401087401ECF7ECFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FC538CFE4384FE4384FE4384FE3377FE2973FE2973FE2973FE3377FE3377FE3377FE3377FE266AFE105AFE1663FE105AFE0052FA0052FA0052FA0052FA0052FA105AFE1663FE3377FE4384FE4384FE3377FE266AFEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6E1FF6188FF0641FF003BFF003DFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003CFF0037FF1C51FFA7BDFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB000033000033000048000048000048000048000048000048000048000058000058000058000058000058000058000058000058000058000058000058000058000048000033000048000048000048000048000033DADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98CA9498CA9498CA9486BC8A95BD8492B26D849C4E7691476B8B386B8B386B8B386B8B38637A2D597328597328526B22496310496310496310496310496310496310496310087401008400008400008400008400D8EAD9ECF7ECFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE538CFE538CFE538CFE4384FE3377FE2973FE2973FE2973FE3377FE3377FE3377FE3377FE266AFE105AFE105AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA2973FE4384FE4384FE4384FE4384FEEAEEFAEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFBECDFF4771FF083EFF0034FF0039FF0039FF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF0039FF0037FF0035FF1347FF7291FFE1E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE868996000033000033000033000033000048000048000048000048000048000048000048000048000048000048000048000048000048000048000033000033000033000033000033292952FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE92B26D92B26D75AF74849C4E849C4E849C4E7691476B8B386B8B38637A2D597328597328526B2249631049631049631049631049631049631049631008740100840000840000840000840000840075AF74FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE3377FE3377FE427BFE2973FE2973FE2973FE3377FE3377FE3377FE266AFE105AFE105AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA2973FE4384FE4384FE4384FE4384FE4384FE8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F9FFB9C8FF2C57FF0334FF0031FF0032FF0034FF0034FF0035FF0035FF0035FF0035FF0035FF0035FF0035FF0035FF0035FF0034FF0034FF0034FF0030FF0033FF0738FF6382FFDCE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE868996000033000033000033000033000033000033000048000048000048000048000048000048000048000048000048000048000048000048000033000033000033000033000033292952FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6D1D4B6CAD6C8D1D4B6BDD6A5BDD6A58CAA576B8B386B8B38637A2D597328597328526B2249631049631049631049631049631049631049631077A55A86BC8A86BC8A86BC8A86BC8A86BC8AB7DBB9FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9C6FFA9C6FFA9C6FFA5BDFF98B9FF98B9FF538CFE3377FE3377FE266AFE105AFE105AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA689AFFA9C6FFA9C6FFA9C6FFA9C6FFA9C6FFCADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECF0FFBDCAFF6D89FF214BFF0332FF0031FF0030FF0028FF002DFF002FFF0031FF0030FF002EFF002AFF002CFF0132FF0031FF0735FF385DFFA3B4FFD9E1FFFAFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB58587A58587A58587A31315A00003300003300003300004800004800004800004800004800004800004800004800004800004800004831316358587A58587A58587A58587A757489FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9CA5846B8B386B8B38637A2D597328597328526B22496310496310496310496310496310496310496310BBC6A6FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF3377FE3377FE266AFE105AFE105AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FAA9C6FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBEEFFC6D1FFAFBDFF899FFF5B78FF375AFF254BFF113BFF1B44FF2A50FF4F6EFF6984FF99ABFFB7C4FFD5DDFFF4F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9495A50000330000330000330000330000330000330000330000330000330000330000330000330000330000339495A5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">0</prop><prop prop-type="Order">227</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">0</prop><prop prop-type="Open">{</prop><prop prop-type="Close">}</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.OnMouseMove" resname="O:MainForm.O:SidePanel.O:SelPanel.O:Image1.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">228</prop><prop prop-type="Type">TImage</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesEdit.Left" resname="O:MainForm.O:SidePanel.O:LivesEdit.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">229</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesEdit.Top" resname="O:MainForm.O:SidePanel.O:LivesEdit.Top"> |
<source>355</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">230</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesEdit.Width" resname="O:MainForm.O:SidePanel.O:LivesEdit.Width"> |
<source>81</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">231</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesEdit.Height" resname="O:MainForm.O:SidePanel.O:LivesEdit.Height"> |
<source>22</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">232</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesEdit.MaxValue" resname="O:MainForm.O:SidePanel.O:LivesEdit.MaxValue"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">233</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesEdit.MinValue" resname="O:MainForm.O:SidePanel.O:LivesEdit.MinValue"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">234</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesEdit.TabOrder" resname="O:MainForm.O:SidePanel.O:LivesEdit.TabOrder"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">235</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:LivesEdit.Value" resname="O:MainForm.O:SidePanel.O:LivesEdit.Value"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">236</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy8.Left" resname="O:MainForm.O:SidePanel.O:Enemy8.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">237</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy8.Top" resname="O:MainForm.O:SidePanel.O:Enemy8.Top"> |
<source>164</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">238</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy8.Width" resname="O:MainForm.O:SidePanel.O:Enemy8.Width"> |
<source>65</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">239</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy8.Height" resname="O:MainForm.O:SidePanel.O:Enemy8.Height"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">240</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy8.Caption" resname="O:MainForm.O:SidePanel.O:Enemy8.Caption"> |
<source>'Medikit'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">1</prop><prop prop-type="Order">241</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy8.TabOrder" resname="O:MainForm.O:SidePanel.O:Enemy8.TabOrder"> |
<source>9</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">242</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy8.OnClick" resname="O:MainForm.O:SidePanel.O:Enemy8.OnClick"> |
<source>EnemyClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">243</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:SidePanel.O:Enemy8.OnMouseMove" resname="O:MainForm.O:SidePanel.O:Enemy8.OnMouseMove"> |
<source>DXDrawMouseMove</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">244</prop><prop prop-type="Type">TRadioButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.Left" resname="O:MainForm.O:MainMenu.Left"> |
<source>32</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">245</prop><prop prop-type="Type">TMainMenu</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.Top" resname="O:MainForm.O:MainMenu.Top"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">246</prop><prop prop-type="Type">TMainMenu</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.Caption"> |
<source>'&Datei'</source> |
<target>'&File'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">1</prop><prop prop-type="Order">247</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Neu.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Neu.Caption"> |
<source>'&Neu'</source> |
<target>'&New'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">1</prop><prop prop-type="Order">248</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Neu.ShortCut" resname="O:MainForm.O:MainMenu.O:Spiel.O:Neu.ShortCut"> |
<source>16462</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">249</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Neu.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:Neu.OnClick"> |
<source>NeuClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">250</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:N2.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:N2.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">251</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Level.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Level.Caption"> |
<source>'&Laden/Speichern...'</source> |
<target>'&Load/Save...'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">1</prop><prop prop-type="Order">252</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Level.ShortCut" resname="O:MainForm.O:MainMenu.O:Spiel.O:Level.ShortCut"> |
<source>16463</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334941319</prop><prop prop-type="Status">6</prop><prop prop-type="Order">253</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Level.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:Level.OnClick"> |
<source>LevelClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">254</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:AlleLeveldateienaktualisieren1.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:AlleLeveldateienaktualisieren1.Caption"> |
<source>'Alle Leveldateien aktualisieren'</source> |
<target>'Rewrite all level files'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">255</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:AlleLeveldateienaktualisieren1.Visible" resname="O:MainForm.O:MainMenu.O:Spiel.O:AlleLeveldateienaktualisieren1.Visible"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">256</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:AlleLeveldateienaktualisieren1.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:AlleLeveldateienaktualisieren1.OnClick"> |
<source>AlleLeveldateienaktualisieren1Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">257</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Leveltesten1.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Leveltesten1.Caption"> |
<source>'Level testen'</source> |
<target>'Test level'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">258</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Leveltesten1.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:Leveltesten1.OnClick"> |
<source>Leveltesten1Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">259</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:N1.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:N1.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">260</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Spielfelderweitern1.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Spielfelderweitern1.Caption"> |
<source>'Leveleigenschaften...'</source> |
<target>'Level properties...'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">261</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Spielfelderweitern1.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:Spielfelderweitern1.OnClick"> |
<source>Spielfelderweitern1Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">262</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Leer1.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Leer1.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">263</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.Caption" resname="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.Caption"> |
<source>'&Beenden'</source> |
<target>'&Exit'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">264</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.ShortCut" resname="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.ShortCut"> |
<source>32883</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">265</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.OnClick" resname="O:MainForm.O:MainMenu.O:Spiel.O:Beenden.OnClick"> |
<source>BeendenClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">266</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.Caption"> |
<source>'&Hilfe'</source> |
<target>'&Help'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">267</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.Caption"> |
<source>'Allgemeines'</source> |
<target>'General topics'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">268</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">269</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.Hint" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.Hint"> |
<source>'Help\DE_General.md'</source> |
<target>'Help\EN_General.md'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">270</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>'Help\Allgemeines.md'</source> |
<target>'Help\General.md'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45406.9331481366</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.OnClick" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Hilfe1.OnClick"> |
<source>HilfeTopicClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">271</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:WasgibtesNeues1.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:WasgibtesNeues1.Caption"> |
<source>'Was gibt es Neues?'</source> |
<target>'What'#39's new?'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">272</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:WasgibtesNeues1.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:WasgibtesNeues1.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">273</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:WasgibtesNeues1.Hint" resname="O:MainForm.O:MainMenu.O:Hilfe.O:WasgibtesNeues1.Hint"> |
<source>'Help\DE_Changelog.md'</source> |
<target>'Help\EN_Changelog.md'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">274</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
<alt-trans> <source>'Help\Neuerungen.md'</source> |
<target>'Help\Changelog.md'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Modified">45406.9331481366</prop></prop-group> |
</alt-trans></trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:WasgibtesNeues1.OnClick" resname="O:MainForm.O:MainMenu.O:Hilfe.O:WasgibtesNeues1.OnClick"> |
<source>HilfeTopicClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">275</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:N4.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:N4.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">276</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:N4.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:N4.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">277</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:AufUpdatesprfen1.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:AufUpdatesprfen1.Caption"> |
<source>'Auf Updates prüfen'</source> |
<target>'Check for updates'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">278</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:AufUpdatesprfen1.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:AufUpdatesprfen1.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">279</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:AufUpdatesprfen1.OnClick" resname="O:MainForm.O:MainMenu.O:Hilfe.O:AufUpdatesprfen1.OnClick"> |
<source>AufUpdatesprfen1Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">280</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:N3.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:N3.Caption"> |
<source>'-'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">281</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:N3.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:N3.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">282</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.Caption" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.Caption"> |
<source>'&Informationen...'</source> |
<target>'&About...'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">1</prop><prop prop-type="Order">283</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.GroupIndex" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.GroupIndex"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">284</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.OnClick" resname="O:MainForm.O:MainMenu.O:Hilfe.O:Informationen.OnClick"> |
<source>InformationenClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334942014</prop><prop prop-type="Status">6</prop><prop prop-type="Order">285</prop><prop prop-type="Type">TMenuItem</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/LevOptions.dfn |
---|
0,0 → 1,535 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\LevOptions.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\LevOptions.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4303009259</prop> |
<prop prop-type="OrigDateTime">45405.5831712963</prop> |
<prop prop-type="XlatDateTime">45407.694375</prop> |
<prop prop-type="Translated">102</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:LevelForm.Left" resname="O:LevelForm.Left"> |
<source>195</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334970833</prop><prop prop-type="Status">6</prop><prop prop-type="Order">0</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.Top" resname="O:LevelForm.Top"> |
<source>103</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334970833</prop><prop prop-type="Status">6</prop><prop prop-type="Order">1</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.BorderStyle" resname="O:LevelForm.BorderStyle"> |
<source>bsDialog</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334970833</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.Caption" resname="O:LevelForm.Caption"> |
<source>'Leveleigenschaften'</source> |
<target>'Level properties'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334970833</prop><prop prop-type="Status">1</prop><prop prop-type="Order">3</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.ClientHeight" resname="O:LevelForm.ClientHeight"> |
<source>251</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334970833</prop><prop prop-type="Status">6</prop><prop prop-type="Order">4</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.ClientWidth" resname="O:LevelForm.ClientWidth"> |
<source>384</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.Color" resname="O:LevelForm.Color"> |
<source>clBtnFace</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.Font.Charset" resname="O:LevelForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.Font.Color" resname="O:LevelForm.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.Font.Height" resname="O:LevelForm.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.Font.Name" resname="O:LevelForm.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.Font.Style" resname="O:LevelForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.Position" resname="O:LevelForm.Position"> |
<source>poMainFormCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.OnHide" resname="O:LevelForm.OnHide"> |
<source>FormHide</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.OnShow" resname="O:LevelForm.OnShow"> |
<source>FormShow</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.TextHeight" resname="O:LevelForm.TextHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TLevelForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton1.Left" resname="O:LevelForm.O:ElPopupButton1.Left"> |
<source>280</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton1.Top" resname="O:LevelForm.O:ElPopupButton1.Top"> |
<source>216</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton1.Width" resname="O:LevelForm.O:ElPopupButton1.Width"> |
<source>99</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton1.Height" resname="O:LevelForm.O:ElPopupButton1.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton1.Caption" resname="O:LevelForm.O:ElPopupButton1.Caption"> |
<source>'OK'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">1</prop><prop prop-type="Order">20</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton1.Default" resname="O:LevelForm.O:ElPopupButton1.Default"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">21</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton1.TabOrder" resname="O:LevelForm.O:ElPopupButton1.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">22</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton1.OnClick" resname="O:LevelForm.O:ElPopupButton1.OnClick"> |
<source>ElPopupButton1Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">23</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton2.Left" resname="O:LevelForm.O:ElPopupButton2.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">24</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton2.Top" resname="O:LevelForm.O:ElPopupButton2.Top"> |
<source>216</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">25</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton2.Width" resname="O:LevelForm.O:ElPopupButton2.Width"> |
<source>99</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">26</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton2.Height" resname="O:LevelForm.O:ElPopupButton2.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">27</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton2.Cancel" resname="O:LevelForm.O:ElPopupButton2.Cancel"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972222</prop><prop prop-type="Status">6</prop><prop prop-type="Order">28</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton2.Caption" resname="O:LevelForm.O:ElPopupButton2.Caption"> |
<source>'Abbrechen'</source> |
<target>'Cancel'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">1</prop><prop prop-type="Order">29</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton2.TabOrder" resname="O:LevelForm.O:ElPopupButton2.TabOrder"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">30</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:ElPopupButton2.OnClick" resname="O:LevelForm.O:ElPopupButton2.OnClick"> |
<source>ElPopupButton2Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">31</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.Left" resname="O:LevelForm.O:GroupBox1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">32</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.Top" resname="O:LevelForm.O:GroupBox1.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">33</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.Width" resname="O:LevelForm.O:GroupBox1.Width"> |
<source>369</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">1</prop><prop prop-type="Order">34</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.Height" resname="O:LevelForm.O:GroupBox1.Height"> |
<source>193</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">35</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.Caption" resname="O:LevelForm.O:GroupBox1.Caption"> |
<source>'Editoreigenschaften'</source> |
<target>'Editor settings'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">1</prop><prop prop-type="Order">36</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.TabOrder" resname="O:LevelForm.O:GroupBox1.TabOrder"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">37</prop><prop prop-type="Type">TGroupBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label1.Left" resname="O:LevelForm.O:GroupBox1.O:Label1.Left"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">38</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label1.Top" resname="O:LevelForm.O:GroupBox1.O:Label1.Top"> |
<source>32</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">39</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label1.Width" resname="O:LevelForm.O:GroupBox1.O:Label1.Width"> |
<source>106</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">40</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label1.Height" resname="O:LevelForm.O:GroupBox1.O:Label1.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">41</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label1.Caption" resname="O:LevelForm.O:GroupBox1.O:Label1.Caption"> |
<source>'Größe des Spielfeldes:'</source> |
<target>'Size of the map:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">1</prop><prop prop-type="Order">42</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label2.Left" resname="O:LevelForm.O:GroupBox1.O:Label2.Left"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">43</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label2.Top" resname="O:LevelForm.O:GroupBox1.O:Label2.Top"> |
<source>136</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">44</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label2.Width" resname="O:LevelForm.O:GroupBox1.O:Label2.Width"> |
<source>124</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">45</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label2.Height" resname="O:LevelForm.O:GroupBox1.O:Label2.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">46</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label2.Caption" resname="O:LevelForm.O:GroupBox1.O:Label2.Caption"> |
<source>'Interner Name des Levels:'</source> |
<target>'Internal level name:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">1</prop><prop prop-type="Order">47</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label3.Left" resname="O:LevelForm.O:GroupBox1.O:Label3.Left"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">48</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label3.Top" resname="O:LevelForm.O:GroupBox1.O:Label3.Top"> |
<source>168</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">49</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label3.Width" resname="O:LevelForm.O:GroupBox1.O:Label3.Width"> |
<source>57</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">50</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label3.Height" resname="O:LevelForm.O:GroupBox1.O:Label3.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">51</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Label3.Caption" resname="O:LevelForm.O:GroupBox1.O:Label3.Caption"> |
<source>'Level-Autor:'</source> |
<target>'Level author:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">1</prop><prop prop-type="Order">52</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.Left" resname="O:LevelForm.O:GroupBox1.O:Panel1.Left"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">53</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.Top" resname="O:LevelForm.O:GroupBox1.O:Panel1.Top"> |
<source>56</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">54</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.Width" resname="O:LevelForm.O:GroupBox1.O:Panel1.Width"> |
<source>329</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">55</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.Height" resname="O:LevelForm.O:GroupBox1.O:Panel1.Height"> |
<source>57</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">56</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.Color" resname="O:LevelForm.O:GroupBox1.O:Panel1.Color"> |
<source>clInfoBk</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">57</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.ParentBackground" resname="O:LevelForm.O:GroupBox1.O:Panel1.ParentBackground"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">58</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.TabOrder" resname="O:LevelForm.O:GroupBox1.O:Panel1.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">59</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Left" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">60</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Top" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">61</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Width" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Width"> |
<source>55</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">62</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Height" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">63</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Caption" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Caption"> |
<source>'Information:'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">1</prop><prop prop-type="Order">64</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Charset" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">65</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Color" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">66</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Height" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">67</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Name" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">68</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Style" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.Font.Style"> |
<source>[fsUnderline]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">69</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.ParentFont" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel1.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">70</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Left" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Left"> |
<source>80</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">71</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Top" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Top"> |
<source>10</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">72</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Width" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Width"> |
<source>228</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">73</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Height" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Height"> |
<source>39</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">74</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Caption" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Caption"> |
<source>'Die Spielfeldgröße wird nur von dem Leveleditor '#13#10'benötigt. Das Ändern dieser Größe wirkt sich '#13#10'nicht auf die Größe der Levels aus.'</source> |
<target>'The size if only relevant for the editor, not the game.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">1</prop><prop prop-type="Order">75</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Color" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Color"> |
<source>clInfoBk</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">76</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Charset" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">77</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Color" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">78</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Height" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">79</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Name" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">80</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Style" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">81</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.ParentColor" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.ParentColor"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">82</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.ParentFont" resname="O:LevelForm.O:GroupBox1.O:Panel1.O:ElLabel2.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">83</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Groesse.Left" resname="O:LevelForm.O:GroupBox1.O:Groesse.Left"> |
<source>144</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">84</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Groesse.Top" resname="O:LevelForm.O:GroupBox1.O:Groesse.Top"> |
<source>28</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">85</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Groesse.Width" resname="O:LevelForm.O:GroupBox1.O:Groesse.Width"> |
<source>121</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">86</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Groesse.Height" resname="O:LevelForm.O:GroupBox1.O:Groesse.Height"> |
<source>22</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">87</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Groesse.MaxValue" resname="O:LevelForm.O:GroupBox1.O:Groesse.MaxValue"> |
<source>65000</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">88</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Groesse.MinValue" resname="O:LevelForm.O:GroupBox1.O:Groesse.MinValue"> |
<source>100</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">89</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Groesse.TabOrder" resname="O:LevelForm.O:GroupBox1.O:Groesse.TabOrder"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">90</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:Groesse.Value" resname="O:LevelForm.O:GroupBox1.O:Groesse.Value"> |
<source>1200</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">91</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevName.Left" resname="O:LevelForm.O:GroupBox1.O:LevName.Left"> |
<source>167</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">92</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevName.Top" resname="O:LevelForm.O:GroupBox1.O:LevName.Top"> |
<source>133</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">93</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevName.Width" resname="O:LevelForm.O:GroupBox1.O:LevName.Width"> |
<source>178</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">94</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevName.Height" resname="O:LevelForm.O:GroupBox1.O:LevName.Height"> |
<source>21</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">95</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevName.TabOrder" resname="O:LevelForm.O:GroupBox1.O:LevName.TabOrder"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">96</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevAuthor.Left" resname="O:LevelForm.O:GroupBox1.O:LevAuthor.Left"> |
<source>167</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">97</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevAuthor.Top" resname="O:LevelForm.O:GroupBox1.O:LevAuthor.Top"> |
<source>160</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">98</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevAuthor.Width" resname="O:LevelForm.O:GroupBox1.O:LevAuthor.Width"> |
<source>178</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">99</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevAuthor.Height" resname="O:LevelForm.O:GroupBox1.O:LevAuthor.Height"> |
<source>21</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">100</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:LevelForm.O:GroupBox1.O:LevAuthor.TabOrder" resname="O:LevelForm.O:GroupBox1.O:LevAuthor.TabOrder"> |
<source>3</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334972338</prop><prop prop-type="Status">6</prop><prop prop-type="Order">101</prop><prop prop-type="Type">TEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/LevSpeicherung.dfn |
---|
0,0 → 1,820 |
<?xml version="1.0" encoding="utf-8"?> |
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd"> |
<xliff version="1.0"> |
<file original="D:\SVN\SpaceMission\LevSpeicherung.dfm" source-language="de-DE" target-language="en-US" datatype="delphiform" tool="ETM v10.0" ts="D:\SVN\SpaceMission\LevSpeicherung.dfm"> |
<header> |
<prop-group name="ITEHeaderProp"> |
<prop prop-type="Version">9.0</prop> |
<prop prop-type="SelfDateTime">45408.4303009259</prop> |
<prop prop-type="OrigDateTime">45407.6943518519</prop> |
<prop prop-type="XlatDateTime">45407.6943518519</prop> |
<prop prop-type="Translated">158</prop> |
<prop prop-type="UnTranslated">0</prop> |
</prop-group> |
</header> |
<body> |
<trans-unit id="O:SpeicherungForm.Left" resname="O:SpeicherungForm.Left"> |
<source>281</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">0</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Top" resname="O:SpeicherungForm.Top"> |
<source>153</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">1</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.BorderStyle" resname="O:SpeicherungForm.BorderStyle"> |
<source>bsDialog</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">2</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Caption" resname="O:SpeicherungForm.Caption"> |
<source>'Levels'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">1</prop><prop prop-type="Order">3</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.ClientHeight" resname="O:SpeicherungForm.ClientHeight"> |
<source>424</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">4</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.ClientWidth" resname="O:SpeicherungForm.ClientWidth"> |
<source>447</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">5</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Color" resname="O:SpeicherungForm.Color"> |
<source>clBtnFace</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">6</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Charset" resname="O:SpeicherungForm.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">7</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Color" resname="O:SpeicherungForm.Font.Color"> |
<source>clWindowText</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">8</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Height" resname="O:SpeicherungForm.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">9</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Name" resname="O:SpeicherungForm.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">10</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Font.Style" resname="O:SpeicherungForm.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">11</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.Position" resname="O:SpeicherungForm.Position"> |
<source>poMainFormCenter</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">12</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.OnCreate" resname="O:SpeicherungForm.OnCreate"> |
<source>FormCreate</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">13</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.OnHide" resname="O:SpeicherungForm.OnHide"> |
<source>FormHide</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">14</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.OnShow" resname="O:SpeicherungForm.OnShow"> |
<source>FormShow</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">15</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.TextHeight" resname="O:SpeicherungForm.TextHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">16</prop><prop prop-type="Type">TSpeicherungForm</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Left" resname="O:SpeicherungForm.O:Bevel1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">17</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Top" resname="O:SpeicherungForm.O:Bevel1.Top"> |
<source>56</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">18</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Width" resname="O:SpeicherungForm.O:Bevel1.Width"> |
<source>433</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">19</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Height" resname="O:SpeicherungForm.O:Bevel1.Height"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">20</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Bevel1.Shape" resname="O:SpeicherungForm.O:Bevel1.Shape"> |
<source>bsBottomLine</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">21</prop><prop prop-type="Type">TBevel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Left" resname="O:SpeicherungForm.O:Label2.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">22</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Top" resname="O:SpeicherungForm.O:Label2.Top"> |
<source>72</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">23</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Width" resname="O:SpeicherungForm.O:Label2.Width"> |
<source>34</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">24</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Height" resname="O:SpeicherungForm.O:Label2.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">25</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label2.Caption" resname="O:SpeicherungForm.O:Label2.Caption"> |
<source>'Levels:'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">1</prop><prop prop-type="Order">26</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Left" resname="O:SpeicherungForm.O:Label3.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">27</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Top" resname="O:SpeicherungForm.O:Label3.Top"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">28</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Width" resname="O:SpeicherungForm.O:Label3.Width"> |
<source>67</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">29</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Height" resname="O:SpeicherungForm.O:Label3.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">30</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label3.Caption" resname="O:SpeicherungForm.O:Label3.Caption"> |
<source>'Informationen:'</source> |
<target>'Information:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">1</prop><prop prop-type="Order">31</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Left" resname="O:SpeicherungForm.O:Label1.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">32</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Top" resname="O:SpeicherungForm.O:Label1.Top"> |
<source>20</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">33</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Width" resname="O:SpeicherungForm.O:Label1.Width"> |
<source>55</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">34</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Height" resname="O:SpeicherungForm.O:Label1.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">35</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:Label1.Caption" resname="O:SpeicherungForm.O:Label1.Caption"> |
<source>'Levelname:'</source> |
<target>'Level name:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">1</prop><prop prop-type="Order">36</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Left" resname="O:SpeicherungForm.O:LadenBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">37</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Top" resname="O:SpeicherungForm.O:LadenBtn.Top"> |
<source>72</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">38</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Width" resname="O:SpeicherungForm.O:LadenBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">39</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Height" resname="O:SpeicherungForm.O:LadenBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">40</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Caption" resname="O:SpeicherungForm.O:LadenBtn.Caption"> |
<source>'&Laden'</source> |
<target>'&Load'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">1</prop><prop prop-type="Order">41</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.Enabled" resname="O:SpeicherungForm.O:LadenBtn.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">42</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.TabOrder" resname="O:SpeicherungForm.O:LadenBtn.TabOrder"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">43</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LadenBtn.OnClick" resname="O:SpeicherungForm.O:LadenBtn.OnClick"> |
<source>LadenBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">44</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Left" resname="O:SpeicherungForm.O:LoeschenBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">45</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Top" resname="O:SpeicherungForm.O:LoeschenBtn.Top"> |
<source>104</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">46</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Width" resname="O:SpeicherungForm.O:LoeschenBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">47</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Height" resname="O:SpeicherungForm.O:LoeschenBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">48</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Caption" resname="O:SpeicherungForm.O:LoeschenBtn.Caption"> |
<source>'Lö&schen'</source> |
<target>'&Delete'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">1</prop><prop prop-type="Order">49</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.Enabled" resname="O:SpeicherungForm.O:LoeschenBtn.Enabled"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">50</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.TabOrder" resname="O:SpeicherungForm.O:LoeschenBtn.TabOrder"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">51</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LoeschenBtn.OnClick" resname="O:SpeicherungForm.O:LoeschenBtn.OnClick"> |
<source>LoeschenBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">52</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Left" resname="O:SpeicherungForm.O:AktualisierenBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">53</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Top" resname="O:SpeicherungForm.O:AktualisierenBtn.Top"> |
<source>144</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">54</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Width" resname="O:SpeicherungForm.O:AktualisierenBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">55</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Height" resname="O:SpeicherungForm.O:AktualisierenBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">56</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.Caption" resname="O:SpeicherungForm.O:AktualisierenBtn.Caption"> |
<source>'&Aktualisieren'</source> |
<target>'&Refresh'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">1</prop><prop prop-type="Order">57</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.TabOrder" resname="O:SpeicherungForm.O:AktualisierenBtn.TabOrder"> |
<source>2</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">58</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AktualisierenBtn.OnClick" resname="O:SpeicherungForm.O:AktualisierenBtn.OnClick"> |
<source>DsFancyButton2Click</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">59</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Left" resname="O:SpeicherungForm.O:SpeichernBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">60</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Top" resname="O:SpeicherungForm.O:SpeichernBtn.Top"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">61</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Width" resname="O:SpeicherungForm.O:SpeichernBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">62</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Height" resname="O:SpeicherungForm.O:SpeichernBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">63</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.Caption" resname="O:SpeicherungForm.O:SpeichernBtn.Caption"> |
<source>'&Speichern'</source> |
<target>'&Save'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">1</prop><prop prop-type="Order">64</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.TabOrder" resname="O:SpeicherungForm.O:SpeichernBtn.TabOrder"> |
<source>3</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">65</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:SpeichernBtn.OnClick" resname="O:SpeicherungForm.O:SpeichernBtn.OnClick"> |
<source>SpeichernBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">66</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Left" resname="O:SpeicherungForm.O:AbbrechenBtn.Left"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">67</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Top" resname="O:SpeicherungForm.O:AbbrechenBtn.Top"> |
<source>391</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">68</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Width" resname="O:SpeicherungForm.O:AbbrechenBtn.Width"> |
<source>105</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">69</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Height" resname="O:SpeicherungForm.O:AbbrechenBtn.Height"> |
<source>25</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">70</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Cancel" resname="O:SpeicherungForm.O:AbbrechenBtn.Cancel"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">71</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Caption" resname="O:SpeicherungForm.O:AbbrechenBtn.Caption"> |
<source>'Schli&eßen'</source> |
<target>'&Close'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">1</prop><prop prop-type="Order">72</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.Default" resname="O:SpeicherungForm.O:AbbrechenBtn.Default"> |
<source>True</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">73</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.ModalResult" resname="O:SpeicherungForm.O:AbbrechenBtn.ModalResult"> |
<source>1</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">74</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.TabOrder" resname="O:SpeicherungForm.O:AbbrechenBtn.TabOrder"> |
<source>4</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">75</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:AbbrechenBtn.OnClick" resname="O:SpeicherungForm.O:AbbrechenBtn.OnClick"> |
<source>AbbrechenBtnClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">76</prop><prop prop-type="Type">TButton</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.Left" resname="O:SpeicherungForm.O:LevelListBox.Left"> |
<source>112</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">77</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.Top" resname="O:SpeicherungForm.O:LevelListBox.Top"> |
<source>72</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">78</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.Width" resname="O:SpeicherungForm.O:LevelListBox.Width"> |
<source>201</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">79</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.Height" resname="O:SpeicherungForm.O:LevelListBox.Height"> |
<source>249</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334974884</prop><prop prop-type="Status">6</prop><prop prop-type="Order">80</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.ItemHeight" resname="O:SpeicherungForm.O:LevelListBox.ItemHeight"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">81</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.TabOrder" resname="O:SpeicherungForm.O:LevelListBox.TabOrder"> |
<source>5</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">82</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelListBox.OnClick" resname="O:SpeicherungForm.O:LevelListBox.OnClick"> |
<source>LevelListBoxClick</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">83</prop><prop prop-type="Type">TListBox</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Left" resname="O:SpeicherungForm.O:ElPanel1.Left"> |
<source>112</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">84</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Top" resname="O:SpeicherungForm.O:ElPanel1.Top"> |
<source>336</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">85</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Width" resname="O:SpeicherungForm.O:ElPanel1.Width"> |
<source>201</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">86</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Height" resname="O:SpeicherungForm.O:ElPanel1.Height"> |
<source>80</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">87</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.BevelOuter" resname="O:SpeicherungForm.O:ElPanel1.BevelOuter"> |
<source>bvLowered</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">88</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.Color" resname="O:SpeicherungForm.O:ElPanel1.Color"> |
<source>clWindow</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">89</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.TabOrder" resname="O:SpeicherungForm.O:ElPanel1.TabOrder"> |
<source>6</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">90</prop><prop prop-type="Type">TPanel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">91</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Top"> |
<source>40</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">92</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Width"> |
<source>32</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">93</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">94</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3a.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li3a.Caption"> |
<source>'Größe:'</source> |
<target>'Size:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">1</prop><prop prop-type="Order">95</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1b.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li1b.Left"> |
<source>96</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">96</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1b.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li1b.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">97</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1b.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li1b.Width"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">98</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1b.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li1b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">99</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1b.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li1b.Caption"> |
<source>'n/a'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">1</prop><prop prop-type="Order">100</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1a.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li1a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">101</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1a.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li1a.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">102</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1a.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li1a.Width"> |
<source>47</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">103</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1a.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li1a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">104</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li1a.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li1a.Caption"> |
<source>'Einheiten:'</source> |
<target>'Enemies:'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">1</prop><prop prop-type="Order">105</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Left"> |
<source>96</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">106</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Top"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">107</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Width"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">108</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">109</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2b.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li2b.Caption"> |
<source>'n/a'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">1</prop><prop prop-type="Order">110</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">111</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Top"> |
<source>24</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">112</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Width"> |
<source>26</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">113</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">6</prop><prop prop-type="Order">114</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li2a.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li2a.Caption"> |
<source>'Boss:'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976042</prop><prop prop-type="Status">1</prop><prop prop-type="Order">115</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Left"> |
<source>96</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">116</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Top"> |
<source>40</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">117</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Width"> |
<source>17</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">118</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">119</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li3b.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li3b.Caption"> |
<source>'n/a'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">1</prop><prop prop-type="Order">120</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Left" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">121</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Top" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">122</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Width" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Width"> |
<source>135</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">123</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Height" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">124</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Caption"> |
<source>'Das Level ist nicht einlesbar!'</source> |
<target>'Level cannot be read!'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">1</prop><prop prop-type="Order">125</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Charset" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">126</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Color" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Color"> |
<source>clMaroon</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">127</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Height" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">128</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Name" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">129</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Style" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">130</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.ParentFont" resname="O:SpeicherungForm.O:ElPanel1.O:liu.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">131</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liu.Visible" resname="O:SpeicherungForm.O:ElPanel1.O:liu.Visible"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">132</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Left" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">133</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Top" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Top"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">134</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Width" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Width"> |
<source>125</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">135</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Height" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">136</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Caption"> |
<source>'Bitte wählen Sie ein Level.'</source> |
<target>'Please choose a level file.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">1</prop><prop prop-type="Order">137</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Charset" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Charset"> |
<source>DEFAULT_CHARSET</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">138</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Color" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Color"> |
<source>clNavy</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">139</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Height" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Height"> |
<source>-11</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">140</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Name" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Name"> |
<source>'MS Sans Serif'</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">141</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Style" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Font.Style"> |
<source>[]</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">142</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.ParentFont" resname="O:SpeicherungForm.O:ElPanel1.O:liw.ParentFont"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">143</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:liw.Visible" resname="O:SpeicherungForm.O:ElPanel1.O:liw.Visible"> |
<source>False</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">144</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4.Left" resname="O:SpeicherungForm.O:ElPanel1.O:li4.Left"> |
<source>8</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">145</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4.Top" resname="O:SpeicherungForm.O:ElPanel1.O:li4.Top"> |
<source>56</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">146</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4.Width" resname="O:SpeicherungForm.O:ElPanel1.O:li4.Width"> |
<source>118</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">147</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4.Height" resname="O:SpeicherungForm.O:ElPanel1.O:li4.Height"> |
<source>13</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">148</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:ElPanel1.O:li4.Caption" resname="O:SpeicherungForm.O:ElPanel1.O:li4.Caption"> |
<source>'Name / Autor unbekannt'</source> |
<target>'Name / Author unknown.'</target> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">1</prop><prop prop-type="Order">149</prop><prop prop-type="Type">TLabel</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelNumber.Left" resname="O:SpeicherungForm.O:LevelNumber.Left"> |
<source>112</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">150</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelNumber.Top" resname="O:SpeicherungForm.O:LevelNumber.Top"> |
<source>16</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">151</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelNumber.Width" resname="O:SpeicherungForm.O:LevelNumber.Width"> |
<source>201</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">152</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelNumber.Height" resname="O:SpeicherungForm.O:LevelNumber.Height"> |
<source>22</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">153</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelNumber.MaxValue" resname="O:SpeicherungForm.O:LevelNumber.MaxValue"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">154</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelNumber.MinValue" resname="O:SpeicherungForm.O:LevelNumber.MinValue"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">155</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelNumber.TabOrder" resname="O:SpeicherungForm.O:LevelNumber.TabOrder"> |
<source>7</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">156</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
<trans-unit id="O:SpeicherungForm.O:LevelNumber.Value" resname="O:SpeicherungForm.O:LevelNumber.Value"> |
<source>0</source> |
<prop-group name="ITEFieldProp"> |
<prop prop-type="Created">45406.0334976273</prop><prop prop-type="Status">6</prop><prop prop-type="Order">157</prop><prop prop-type="Type">TSpinEdit</prop><prop prop-type="Localize">1</prop></prop-group> |
</trans-unit> |
</body> |
</file> |
</xliff> |
/ENU/SpaceMission_DRC.RES |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/ENU/SpaceMission_DRC.rc |
---|
0,0 → 1,1053 |
/* VER360 |
Generiert vom Embarcadero Delphi Pascal Compiler, |
weil -GD oder --drc an den Compiler übergeben wurde. |
Diese Datei enthält vom Compiler erzeugte Ressourcen, die an die ausführbare Datei gebunden wurden. Wenn diese Datei leer ist, dann wurden keine vom Compiler generierten Ressourcen an die erzeugte ausführbare Datei gebunden. |
*/ |
#define SpaceMission_SAlreadyStarted 65008 |
#define SpaceMission_STitel 65009 |
#define SpaceMission_SFileMissing 65010 |
#define GamMain_SLevelInvalid 65024 |
#define GamMain_SNormalGame 65025 |
#define GamMain_SRandomGame 65026 |
#define GamMain_SLevelEditor 65027 |
#define GamMain_SMissionSuccessful 65028 |
#define GamMain_SMissionFailed 65029 |
#define GamMain_SPunkte 65030 |
#define GamMain_SLevel 65031 |
#define GamMain_SLifes 65032 |
#define GamMain_SInfLifes 65033 |
#define GamMain_SBossLifes 65034 |
#define GamMain_SEinheiten 65035 |
#define GamMain_SGameOver 65036 |
#define GamMain_SGewonnen 65037 |
#define GamMain_SLevelScene 65038 |
#define GamMain_SFileError 65039 |
#define Vcl_OleConst_SNoWindowHandle 65040 |
#define Vcl_OleConst_SInvalidLicense 65041 |
#define Vcl_OleConst_SNotLicensed 65042 |
#define Vcl_OleConst_sNoRunningObject 65043 |
#define Vcl_EdgeConst_SWebViewFailure 65044 |
#define Vcl_EdgeConst_SNoWebView 65045 |
#define IEConst_sNotSupportedByEdge 65046 |
#define System_RegularExpressionsConsts_SRegExMissingExpression 65047 |
#define System_RegularExpressionsConsts_SRegExExpressionError 65048 |
#define System_RegularExpressionsConsts_SRegExStudyError 65049 |
#define System_RegularExpressionsConsts_SRegExMatchRequired 65050 |
#define System_RegularExpressionsConsts_SRegExStringsRequired 65051 |
#define System_RegularExpressionsConsts_SRegExIndexOutOfBounds 65052 |
#define GamMain_SWeiterMitLeertaste 65053 |
#define GamMain_SAppTitle 65054 |
#define GamMain_SPauseTitle 65055 |
#define GamSpeicherung_SDeleteSaveGame 65056 |
#define GamSpeicherung_SNoValidSaveGameName 65057 |
#define GamSpeicherung_SEmptySaveGameName 65058 |
#define GamSpeicherung_SReplaceSaveGame 65059 |
#define GamSpeicherung_SNoNA 65060 |
#define GamSpeicherung_SIsNormalLevel 65061 |
#define GamSpeicherung_SIsRandomLevel 65062 |
#define GamSpeicherung_SHasAttachedLevel 65063 |
#define ComInfo_SVersion 65064 |
#define GamCheat_SCheatUnlocked 65065 |
#define GamCheat_SCheckAlreadyUnlocked 65066 |
#define GamCheat_SNoCheat 65067 |
#define GamCheat_SDisableCheat 65068 |
#define GamCheat_SCheatDisabled 65069 |
#define Vcl_OleConst_SBadPropValue 65070 |
#define Vcl_OleConst_SCannotActivate 65071 |
#define Global_SDownloadError 65072 |
#define Global_SNewProgramVersionAvailable 65073 |
#define Global_SNoUpdateAvailable 65074 |
#define ComLevelReader_SLevelFileFolder 65075 |
#define ComLevelReader_SLevelFileSubFolder 65076 |
#define ComLevelReader_SExtraContentAfterLine 65077 |
#define ComLevelReader_SInvalidXCoord 65078 |
#define ComLevelReader_SInvalidYCoord 65079 |
#define ComLevelReader_SInvalidLevelFile 65080 |
#define ComLevelReader_SEnemyTypeNotImplemented 65081 |
#define ComLevelReader_SLevelEnemyLineComment 65082 |
#define ComLevelReader_SInvalidFile 65083 |
#define GamSpeicherung_SSaveGameFileNotFound 65084 |
#define GamSpeicherung_SNa 65085 |
#define GamSpeicherung_SSaveGameFolder 65086 |
#define GamSpeicherung_SSaveGameSubFolder 65087 |
#define Vcl_Imaging_pnglang_EPNGCannotAssignChunkText 65088 |
#define Vcl_Imaging_pnglang_EPNGUnexpectedEndText 65089 |
#define Vcl_Imaging_pnglang_EPNGNoImageDataText 65090 |
#define Vcl_Imaging_pnglang_EPNGCannotAddChunkText 65091 |
#define Vcl_Imaging_pnglang_EPNGCannotAddInvalidImageText 65092 |
#define Vcl_Imaging_pnglang_EPNGCouldNotLoadResourceText 65093 |
#define Vcl_Imaging_pnglang_EPNGOutMemoryText 65094 |
#define Vcl_Imaging_pnglang_EPNGCannotChangeTransparentText 65095 |
#define Vcl_Imaging_pnglang_EPNGHeaderNotPresentText 65096 |
#define Vcl_Imaging_pnglang_EInvalidNewSize 65097 |
#define Vcl_Imaging_pnglang_EInvalidSpec 65098 |
#define Vcl_Imaging_pnglang_EPNGInvalidBitDepthText 65099 |
#define Vcl_Imaging_JConsts_sChangeJPGSize 65100 |
#define Vcl_Imaging_JConsts_sJPEGError 65101 |
#define Vcl_Imaging_JConsts_sJPEGImageFile 65102 |
#define Global_Cheat1Text 65103 |
#define DXConsts_SNotSupportGraphicFile 65104 |
#define DXConsts_SInvalidDXTFile 65105 |
#define DXConsts_SCannotLoadGraphic 65106 |
#define Vcl_Imaging_pnglang_EPngInvalidCRCText 65107 |
#define Vcl_Imaging_pnglang_EPNGInvalidIHDRText 65108 |
#define Vcl_Imaging_pnglang_EPNGMissingMultipleIDATText 65109 |
#define Vcl_Imaging_pnglang_EPNGZLIBErrorText 65110 |
#define Vcl_Imaging_pnglang_EPNGInvalidPaletteText 65111 |
#define Vcl_Imaging_pnglang_EPNGInvalidFileHeaderText 65112 |
#define Vcl_Imaging_pnglang_EPNGIHDRNotFirstText 65113 |
#define Vcl_Imaging_pnglang_EPNGSizeExceedsText 65114 |
#define Vcl_Imaging_pnglang_EPNGUnknownPalEntryText 65115 |
#define Vcl_Imaging_pnglang_EPNGUnknownCriticalChunkText 65116 |
#define Vcl_Imaging_pnglang_EPNGUnknownCompressionText 65117 |
#define Vcl_Imaging_pnglang_EPNGUnknownInterlaceText 65118 |
#define Vcl_Imaging_pnglang_EPNGUnknownColorTypeText 65119 |
#define DXConsts_SListIndexError 65120 |
#define DXConsts_SScanline 65121 |
#define DXConsts_SNoForm 65122 |
#define DXConsts_SSinceDirectX6 65123 |
#define DXConsts_SSinceDirectX7 65124 |
#define DXConsts_S3DDeviceNotFound 65125 |
#define DXConsts_SDisplayModeChange 65126 |
#define DXConsts_SDisplayModeCannotAcquired 65127 |
#define DXConsts_SInvalidDIB 65128 |
#define DXConsts_SInvalidDIBBitCount 65129 |
#define DXConsts_SInvalidDIBPixelFormat 65130 |
#define DXConsts_SInvalidWave 65131 |
#define DXConsts_SInvalidDisplayBitCount 65132 |
#define DXConsts_SInvalidWaveFormat 65133 |
#define DXConsts_SStreamOpend 65134 |
#define DXConsts_SNecessaryDirectInputUseMouse 65135 |
#define DXConsts_SDirectDrawClipper 65136 |
#define DXConsts_SDirectDrawSurface 65137 |
#define DXConsts_SDirectDrawPrimarySurface 65138 |
#define DXConsts_SDirectSoundBuffer 65139 |
#define DXConsts_SDirectSoundPrimaryBuffer 65140 |
#define DXConsts_STexture 65141 |
#define DXConsts_SNotMade 65142 |
#define DXConsts_SStreamNotOpend 65143 |
#define DXConsts_SCannotMade 65144 |
#define DXConsts_SCannotInitialized 65145 |
#define DXConsts_SCannotChanged 65146 |
#define DXConsts_SCannotLock 65147 |
#define DXConsts_SDLLNotLoaded 65148 |
#define DXConsts_SImageNotFound 65149 |
#define DXConsts_SWaveNotFound 65150 |
#define DXConsts_SEffectNotFound 65151 |
#define Vcl_Consts_SStyleFormatError 65152 |
#define Vcl_Consts_SStyleHookClassRegistered 65153 |
#define Vcl_Consts_SStyleHookClassNotRegistered 65154 |
#define Vcl_Consts_SStyleInvalidParameter 65155 |
#define Vcl_Consts_SStyleFeatureNotSupported 65156 |
#define Vcl_Consts_SStyleNotRegistered 65157 |
#define Vcl_Consts_SStyleUnregisterError 65158 |
#define Vcl_Consts_SStyleNotRegisteredNoName 65159 |
#define Vcl_Consts_sBeginInvokeNoHandle 65160 |
#define System_Win_ComConst_SOleError 65161 |
#define System_Win_ComConst_SNoMethod 65162 |
#define System_Win_ComConst_SVarNotObject 65163 |
#define System_Win_ComConst_STooManyParams 65164 |
#define System_Win_ComConst_SDCOMNotInstalled 65165 |
#define DXConsts_SDirectDraw 65166 |
#define DXConsts_SDirectSound 65167 |
#define Vcl_Consts_SDomain 65168 |
#define Vcl_Consts_SLogin 65169 |
#define Vcl_Consts_SErrorSettingCount 65170 |
#define Vcl_Consts_SListBoxMustBeVirtual 65171 |
#define Vcl_Consts_STrayIconRemoveError 65172 |
#define Vcl_Consts_SWindowsVistaRequired 65173 |
#define Vcl_Consts_STaskDlgButtonCaption 65174 |
#define Vcl_Consts_STaskDlgRadioButtonCaption 65175 |
#define Vcl_Consts_SInvalidTaskDlgButtonCaption 65176 |
#define Vcl_Consts_SStyleLoadError 65177 |
#define Vcl_Consts_SStyleLoadErrors 65178 |
#define Vcl_Consts_SStyleRegisterError 65179 |
#define Vcl_Consts_SStyleClassRegisterError 65180 |
#define Vcl_Consts_SStyleNotFound 65181 |
#define Vcl_Consts_SStyleClassNotFound 65182 |
#define Vcl_Consts_SStyleInvalidHandle 65183 |
#define Vcl_Consts_SInsertLineError 65184 |
#define Vcl_Consts_SIconToClipboard 65185 |
#define Vcl_Consts_SCannotOpenClipboard 65186 |
#define Vcl_Consts_SInvalidMemoSize 65187 |
#define Vcl_Consts_SInvalidPrinterOp 65188 |
#define Vcl_Consts_SNoDefaultPrinter 65189 |
#define Vcl_Consts_SDuplicateMenus 65190 |
#define Vcl_Consts_SDockedCtlNeedsName 65191 |
#define Vcl_Consts_SDockTreeRemoveError 65192 |
#define Vcl_Consts_SDockZoneNotFound 65193 |
#define Vcl_Consts_SDockZoneHasNoCtl 65194 |
#define Vcl_Consts_SDockZoneVersionConflict 65195 |
#define Vcl_Consts_SPromptArrayTooShort 65196 |
#define Vcl_Consts_SPromptArrayEmpty 65197 |
#define Vcl_Consts_SUsername 65198 |
#define Vcl_Consts_SPassword 65199 |
#define Vcl_Consts_SmkcSpace 65200 |
#define Vcl_Consts_SmkcPgUp 65201 |
#define Vcl_Consts_SmkcPgDn 65202 |
#define Vcl_Consts_SmkcEnd 65203 |
#define Vcl_Consts_SmkcHome 65204 |
#define Vcl_Consts_SmkcLeft 65205 |
#define Vcl_Consts_SmkcUp 65206 |
#define Vcl_Consts_SmkcRight 65207 |
#define Vcl_Consts_SmkcDown 65208 |
#define Vcl_Consts_SmkcIns 65209 |
#define Vcl_Consts_SmkcDel 65210 |
#define Vcl_Consts_SmkcShift 65211 |
#define Vcl_Consts_SmkcCtrl 65212 |
#define Vcl_Consts_SmkcAlt 65213 |
#define Vcl_Consts_SOutOfRange 65214 |
#define Vcl_Consts_sAllFilter 65215 |
#define Vcl_Consts_SMsgDlgYes 65216 |
#define Vcl_Consts_SMsgDlgNo 65217 |
#define Vcl_Consts_SMsgDlgOK 65218 |
#define Vcl_Consts_SMsgDlgCancel 65219 |
#define Vcl_Consts_SMsgDlgHelp 65220 |
#define Vcl_Consts_SMsgDlgAbort 65221 |
#define Vcl_Consts_SMsgDlgRetry 65222 |
#define Vcl_Consts_SMsgDlgIgnore 65223 |
#define Vcl_Consts_SMsgDlgAll 65224 |
#define Vcl_Consts_SMsgDlgNoToAll 65225 |
#define Vcl_Consts_SMsgDlgYesToAll 65226 |
#define Vcl_Consts_SMsgDlgClose 65227 |
#define Vcl_Consts_SmkcBkSp 65228 |
#define Vcl_Consts_SmkcTab 65229 |
#define Vcl_Consts_SmkcEsc 65230 |
#define Vcl_Consts_SmkcEnter 65231 |
#define Vcl_Consts_SHelpButton 65232 |
#define Vcl_Consts_SCloseButton 65233 |
#define Vcl_Consts_SIgnoreButton 65234 |
#define Vcl_Consts_SRetryButton 65235 |
#define Vcl_Consts_SAbortButton 65236 |
#define Vcl_Consts_SAllButton 65237 |
#define Vcl_Consts_SCannotDragForm 65238 |
#define Vcl_Consts_SVMetafiles 65239 |
#define Vcl_Consts_SVEnhMetafiles 65240 |
#define Vcl_Consts_SVIcons 65241 |
#define Vcl_Consts_SVBitmaps 65242 |
#define Vcl_Consts_SVTIFFImages 65243 |
#define Vcl_Consts_SMsgDlgWarning 65244 |
#define Vcl_Consts_SMsgDlgError 65245 |
#define Vcl_Consts_SMsgDlgInformation 65246 |
#define Vcl_Consts_SMsgDlgConfirm 65247 |
#define Vcl_Consts_SMenuNotFound 65248 |
#define Vcl_Consts_SNoTimers 65249 |
#define Vcl_Consts_SNotPrinting 65250 |
#define Vcl_Consts_SPrinting 65251 |
#define Vcl_Consts_SPrinterIndexError 65252 |
#define Vcl_Consts_SInvalidPrinter 65253 |
#define Vcl_Consts_SDeviceOnPort 65254 |
#define Vcl_Consts_SGroupIndexTooLow 65255 |
#define Vcl_Consts_SNoMDIForm 65256 |
#define Vcl_Consts_SImageCanvasNeedsBitmap 65257 |
#define Vcl_Consts_SControlParentSetToSelf 65258 |
#define Vcl_Consts_SControlNonMainThreadUsage 65259 |
#define Vcl_Consts_SOKButton 65260 |
#define Vcl_Consts_SCancelButton 65261 |
#define Vcl_Consts_SYesButton 65262 |
#define Vcl_Consts_SNoButton 65263 |
#define Vcl_Consts_SImageIndexError 65264 |
#define Vcl_Consts_SImageReadFail 65265 |
#define Vcl_Consts_SImageWriteFail 65266 |
#define Vcl_Consts_SWindowDCError 65267 |
#define Vcl_Consts_SWindowClass 65268 |
#define Vcl_Consts_SCannotFocus 65269 |
#define Vcl_Consts_SParentRequired 65270 |
#define Vcl_Consts_SControlPath 65271 |
#define Vcl_Consts_SParentGivenNotAParent 65272 |
#define Vcl_Consts_SMDIChildNotVisible 65273 |
#define Vcl_Consts_SVisibleChanged 65274 |
#define Vcl_Consts_SCannotShowModal 65275 |
#define Vcl_Consts_SScrollBarRange 65276 |
#define Vcl_Consts_SPropertyOutOfRange 65277 |
#define Vcl_Consts_SMenuIndexError 65278 |
#define Vcl_Consts_SMenuReinserted 65279 |
#define Vcl_Consts_SInvalidImage 65280 |
#define Vcl_Consts_SScanLine 65281 |
#define Vcl_Consts_SChangeIconSize 65282 |
#define Vcl_Consts_SChangeWicSize 65283 |
#define Vcl_Consts_SOleGraphic 65284 |
#define Vcl_Consts_SUnknownExtension 65285 |
#define Vcl_Consts_SUnknownClipboardFormat 65286 |
#define Vcl_Consts_SUnknownStreamFormat 65287 |
#define Vcl_Consts_SOutOfResources 65288 |
#define Vcl_Consts_SNoCanvasHandle 65289 |
#define Vcl_Consts_SInvalidTextFormatFlag 65290 |
#define Vcl_Consts_SInvalidFrameIndex 65291 |
#define Vcl_Consts_SInvalidImageSize 65292 |
#define Vcl_Consts_SInvalidImageList 65293 |
#define Vcl_Consts_SReplaceImage 65294 |
#define Vcl_Consts_SInsertImage 65295 |
#define System_RTLConsts_SWinRTInstanceError 65296 |
#define System_RTLConsts_sObserverUnsupported 65297 |
#define System_RTLConsts_sObserverMultipleSingleCast 65298 |
#define System_RTLConsts_sObserverNoInterface 65299 |
#define System_RTLConsts_sObserverNoSinglecastFound 65300 |
#define System_RTLConsts_sObserverNoMulticastFound 65301 |
#define System_RTLConsts_sObserverNotAvailable 65302 |
#define System_RTLConsts_SInvalidDateString 65303 |
#define System_RTLConsts_SInvalidTimeString 65304 |
#define System_RTLConsts_SInvalidOffsetString 65305 |
#define System_RTLConsts_sMustWaitOnOneEvent 65306 |
#define System_RTLConsts_sBeginInvokeDestroying 65307 |
#define Vcl_Consts_SInvalidBitmap 65308 |
#define Vcl_Consts_SInvalidIcon 65309 |
#define Vcl_Consts_SInvalidMetafile 65310 |
#define Vcl_Consts_SInvalidPixelFormat 65311 |
#define System_RTLConsts_SWindowsServer2008 65312 |
#define System_RTLConsts_SWindows7 65313 |
#define System_RTLConsts_SWindowsServer2008R2 65314 |
#define System_RTLConsts_SWindows2000 65315 |
#define System_RTLConsts_SWindowsXP 65316 |
#define System_RTLConsts_SWindowsServer2003 65317 |
#define System_RTLConsts_SWindowsServer2003R2 65318 |
#define System_RTLConsts_SWindowsServer2012 65319 |
#define System_RTLConsts_SWindowsServer2012R2 65320 |
#define System_RTLConsts_SWindowsServer2016 65321 |
#define System_RTLConsts_SWindowsServer2019 65322 |
#define System_RTLConsts_SWindowsServer2022 65323 |
#define System_RTLConsts_SWindows8 65324 |
#define System_RTLConsts_SWindows8Point1 65325 |
#define System_RTLConsts_SWindows10 65326 |
#define System_RTLConsts_SWindows11 65327 |
#define System_RTLConsts_SGenericItemNotFound 65328 |
#define System_RTLConsts_SGenericDuplicateItem 65329 |
#define System_RTLConsts_SInsufficientRtti 65330 |
#define System_RTLConsts_SParameterCountMismatch 65331 |
#define System_RTLConsts_SNonPublicType 65332 |
#define System_RTLConsts_SByRefArgMismatch 65333 |
#define System_RTLConsts_SPropIsReadOnly 65334 |
#define System_RTLConsts_SPropIsWriteOnly 65335 |
#define System_RTLConsts_SInvalidRttiDestroy 65336 |
#define System_RTLConsts_SServiceNotFound 65337 |
#define System_RTLConsts_SVersionStr 65338 |
#define System_RTLConsts_SSPVersionStr 65339 |
#define System_RTLConsts_SVersion32 65340 |
#define System_RTLConsts_SVersion64 65341 |
#define System_RTLConsts_SWindows 65342 |
#define System_RTLConsts_SWindowsVista 65343 |
#define System_RTLConsts_sSpinCountOutOfRange 65344 |
#define System_RTLConsts_sTimespanTooLong 65345 |
#define System_RTLConsts_sInvalidTimespanDuration 65346 |
#define System_RTLConsts_sTimespanValueCannotBeNan 65347 |
#define System_RTLConsts_sCannotNegateTimespan 65348 |
#define System_RTLConsts_sInvalidTimespanFormat 65349 |
#define System_RTLConsts_sTimespanElementTooLong 65350 |
#define System_RTLConsts_SNoContext 65351 |
#define System_RTLConsts_SNoContextFound 65352 |
#define System_RTLConsts_SNoIndex 65353 |
#define System_RTLConsts_SNoSearch 65354 |
#define System_RTLConsts_SNoTableOfContents 65355 |
#define System_RTLConsts_SNoTopics 65356 |
#define System_RTLConsts_SNothingFound 65357 |
#define System_RTLConsts_SArgumentOutOfRange 65358 |
#define System_RTLConsts_SArgumentNil 65359 |
#define System_RTLConsts_SThreadExternalCheckTerminated 65360 |
#define System_RTLConsts_SThreadExternalSetReturnValue 65361 |
#define System_RTLConsts_SParamIsNil 65362 |
#define System_RTLConsts_SParamIsNegative 65363 |
#define System_RTLConsts_SInputBufferExceed 65364 |
#define System_RTLConsts_SInvalidCharsInPath 65365 |
#define System_RTLConsts_SInvalidCharsInFileName 65366 |
#define System_RTLConsts_SEmptyFileName 65367 |
#define System_RTLConsts_SPathTooLong 65368 |
#define System_RTLConsts_SDriveNotFound 65369 |
#define System_RTLConsts_hNoFilterViewer 65370 |
#define System_RTLConsts_sArgumentInvalid 65371 |
#define System_RTLConsts_sInvalidStringAndObjectArrays 65372 |
#define System_RTLConsts_sSameArrays 65373 |
#define System_RTLConsts_sNoConstruct 65374 |
#define System_RTLConsts_sInvalidTimeoutValue 65375 |
#define System_RTLConsts_SReadError 65376 |
#define System_RTLConsts_SReadOnlyProperty 65377 |
#define System_RTLConsts_SRegCreateFailed 65378 |
#define System_RTLConsts_SRegGetDataFailed 65379 |
#define System_RTLConsts_SRegSetDataFailed 65380 |
#define System_RTLConsts_SResNotFound 65381 |
#define System_RTLConsts_SSeekNotImplemented 65382 |
#define System_RTLConsts_SSortedListError 65383 |
#define System_RTLConsts_SUnknownGroup 65384 |
#define System_RTLConsts_SUnknownProperty 65385 |
#define System_RTLConsts_SWriteError 65386 |
#define System_RTLConsts_SThreadCreateError 65387 |
#define System_RTLConsts_SThreadError 65388 |
#define System_RTLConsts_SThreadExternalTerminate 65389 |
#define System_RTLConsts_SThreadExternalWait 65390 |
#define System_RTLConsts_SThreadStartError 65391 |
#define System_RTLConsts_SFCreateErrorEx 65392 |
#define System_RTLConsts_SFOpenErrorEx 65393 |
#define System_RTLConsts_SInvalidImage 65394 |
#define System_RTLConsts_SInvalidName 65395 |
#define System_RTLConsts_SInvalidProperty 65396 |
#define System_RTLConsts_SInvalidPropertyPath 65397 |
#define System_RTLConsts_SInvalidPropertyValue 65398 |
#define System_RTLConsts_SInvalidRegType 65399 |
#define System_RTLConsts_SListCapacityError 65400 |
#define System_RTLConsts_SListCountError 65401 |
#define System_RTLConsts_SListIndexError 65402 |
#define System_RTLConsts_SListIndexErrorRangeReason 65403 |
#define System_RTLConsts_SListIndexErrorEmptyReason 65404 |
#define System_RTLConsts_SMemoryStreamError 65405 |
#define System_RTLConsts_SNoComSupport 65406 |
#define System_RTLConsts_SPropertyException 65407 |
#define System_SysConst_SInvalidCharCount 65408 |
#define System_SysConst_SInvalidDestinationIndex 65409 |
#define System_SysConst_SInvalidCodePage 65410 |
#define System_SysConst_SInvalidEncodingName 65411 |
#define System_SysConst_SNoMappingForUnicodeCharacter 65412 |
#define System_SysConst_SInvalidStringBaseIndex 65413 |
#define System_RTLConsts_SAncestorNotFound 65414 |
#define System_RTLConsts_SAssignError 65415 |
#define System_RTLConsts_SBitsIndexError 65416 |
#define System_RTLConsts_SCantWriteResourceStreamError 65417 |
#define System_RTLConsts_SCheckSynchronizeError 65418 |
#define System_RTLConsts_SClassNotFound 65419 |
#define System_RTLConsts_SDuplicateClass 65420 |
#define System_RTLConsts_SDuplicateItem 65421 |
#define System_RTLConsts_SDuplicateName 65422 |
#define System_RTLConsts_SDuplicateString 65423 |
#define System_SysConst_SShortDayNameWed 65424 |
#define System_SysConst_SShortDayNameThu 65425 |
#define System_SysConst_SShortDayNameFri 65426 |
#define System_SysConst_SShortDayNameSat 65427 |
#define System_SysConst_SLongDayNameSun 65428 |
#define System_SysConst_SLongDayNameMon 65429 |
#define System_SysConst_SLongDayNameTue 65430 |
#define System_SysConst_SLongDayNameWed 65431 |
#define System_SysConst_SLongDayNameThu 65432 |
#define System_SysConst_SLongDayNameFri 65433 |
#define System_SysConst_SLongDayNameSat 65434 |
#define System_SysConst_SCannotCreateDir 65435 |
#define System_SysConst_SInvalidSourceArray 65436 |
#define System_SysConst_SInvalidDestinationArray 65437 |
#define System_SysConst_SCharIndexOutOfBounds 65438 |
#define System_SysConst_SByteIndexOutOfBounds 65439 |
#define System_SysConst_SShortMonthNameDec 65440 |
#define System_SysConst_SLongMonthNameJan 65441 |
#define System_SysConst_SLongMonthNameFeb 65442 |
#define System_SysConst_SLongMonthNameMar 65443 |
#define System_SysConst_SLongMonthNameApr 65444 |
#define System_SysConst_SLongMonthNameMay 65445 |
#define System_SysConst_SLongMonthNameJun 65446 |
#define System_SysConst_SLongMonthNameJul 65447 |
#define System_SysConst_SLongMonthNameAug 65448 |
#define System_SysConst_SLongMonthNameSep 65449 |
#define System_SysConst_SLongMonthNameOct 65450 |
#define System_SysConst_SLongMonthNameNov 65451 |
#define System_SysConst_SLongMonthNameDec 65452 |
#define System_SysConst_SShortDayNameSun 65453 |
#define System_SysConst_SShortDayNameMon 65454 |
#define System_SysConst_SShortDayNameTue 65455 |
#define System_SysConst_SAssertError 65456 |
#define System_SysConst_SAbstractError 65457 |
#define System_SysConst_SModuleAccessViolation 65458 |
#define System_SysConst_SOSError 65459 |
#define System_SysConst_SUnkOSError 65460 |
#define System_SysConst_SShortMonthNameJan 65461 |
#define System_SysConst_SShortMonthNameFeb 65462 |
#define System_SysConst_SShortMonthNameMar 65463 |
#define System_SysConst_SShortMonthNameApr 65464 |
#define System_SysConst_SShortMonthNameMay 65465 |
#define System_SysConst_SShortMonthNameJun 65466 |
#define System_SysConst_SShortMonthNameJul 65467 |
#define System_SysConst_SShortMonthNameAug 65468 |
#define System_SysConst_SShortMonthNameSep 65469 |
#define System_SysConst_SShortMonthNameOct 65470 |
#define System_SysConst_SShortMonthNameNov 65471 |
#define System_SysConst_SVarTypeTooManyCustom 65472 |
#define System_SysConst_SVarTypeCouldNotConvert 65473 |
#define System_SysConst_SVarTypeConvertOverflow 65474 |
#define System_SysConst_SVarOverflow 65475 |
#define System_SysConst_SVarInvalid 65476 |
#define System_SysConst_SVarBadType 65477 |
#define System_SysConst_SVarNotImplemented 65478 |
#define System_SysConst_SVarUnexpected 65479 |
#define System_SysConst_SExternalException 65480 |
#define System_SysConst_SAssertionFailed 65481 |
#define System_SysConst_SIntfCastError 65482 |
#define System_SysConst_SSafecallException 65483 |
#define System_SysConst_SMonitorLockException 65484 |
#define System_SysConst_SNoMonitorSupportException 65485 |
#define System_SysConst_SNotImplemented 65486 |
#define System_SysConst_SObjectDisposed 65487 |
#define System_SysConst_SArgumentMissing 65488 |
#define System_SysConst_SDispatchError 65489 |
#define System_SysConst_SReadAccess 65490 |
#define System_SysConst_SWriteAccess 65491 |
#define System_SysConst_SExecuteAccess 65492 |
#define System_SysConst_SInvalidAccess 65493 |
#define System_SysConst_SVarArrayCreate 65494 |
#define System_SysConst_SVarArrayBounds 65495 |
#define System_SysConst_SVarArrayLocked 65496 |
#define System_SysConst_SInvalidVarCast 65497 |
#define System_SysConst_SInvalidVarOp 65498 |
#define System_SysConst_SInvalidVarNullOp 65499 |
#define System_SysConst_SInvalidVarOpWithHResultWithPrefix 65500 |
#define System_SysConst_SVarTypeOutOfRangeWithPrefix 65501 |
#define System_SysConst_SVarTypeAlreadyUsedWithPrefix 65502 |
#define System_SysConst_SVarTypeNotUsableWithPrefix 65503 |
#define System_SysConst_SRangeError 65504 |
#define System_SysConst_SIntOverflow 65505 |
#define System_SysConst_SInvalidOp 65506 |
#define System_SysConst_SZeroDivide 65507 |
#define System_SysConst_SOverflow 65508 |
#define System_SysConst_SUnderflow 65509 |
#define System_SysConst_SInvalidPointer 65510 |
#define System_SysConst_SInvalidCast 65511 |
#define System_SysConst_SAccessViolationArg3 65512 |
#define System_SysConst_SAccessViolationNoArg 65513 |
#define System_SysConst_SStackOverflow 65514 |
#define System_SysConst_SControlC 65515 |
#define System_SysConst_SPrivilege 65516 |
#define System_SysConst_SException 65517 |
#define System_SysConst_SExceptTitle 65518 |
#define System_SysConst_SInvalidFormat 65519 |
#define System_SysConst_SUnknown 65520 |
#define System_SysConst_SInvalidInteger 65521 |
#define System_SysConst_SInvalidTimeStamp 65522 |
#define System_SysConst_SInvalidGUID 65523 |
#define System_SysConst_STimeEncodeError 65524 |
#define System_SysConst_SDateEncodeError 65525 |
#define System_SysConst_SOutOfMemory 65526 |
#define System_SysConst_SInOutError 65527 |
#define System_SysConst_SFileNotFound 65528 |
#define System_SysConst_SInvalidUnknownFilename 65529 |
#define System_SysConst_STooManyOpenFiles 65530 |
#define System_SysConst_SAccessDenied 65531 |
#define System_SysConst_SEndOfFile 65532 |
#define System_SysConst_SDiskFull 65533 |
#define System_SysConst_SInvalidInput 65534 |
#define System_SysConst_SDivByZero 65535 |
STRINGTABLE |
BEGIN |
SpaceMission_SAlreadyStarted, L"Game is already started." |
SpaceMission_STitel, L"SpaceMission" |
SpaceMission_SFileMissing, L"%s is missing. Please reinstall SpaceMission." |
GamMain_SLevelInvalid, L"The file for level %d is invalid. The level will be skipped!" |
GamMain_SNormalGame, L"Normal game" |
GamMain_SRandomGame, L"Random level" |
GamMain_SLevelEditor, L"Level Editor" |
GamMain_SMissionSuccessful, L"Mission complete!" |
GamMain_SMissionFailed, L"Mission failed!" |
GamMain_SPunkte, L"Points: %s" |
GamMain_SLevel, L"Level: %d" |
GamMain_SLifes, L"Lives: %d" |
GamMain_SInfLifes, L"" |
GamMain_SBossLifes, L"Boss: %d" |
GamMain_SEinheiten, L"Enemies: %d" |
GamMain_SGameOver, L"Game Over!" |
GamMain_SGewonnen, L"Complete!" |
GamMain_SLevelScene, L"Level %d" |
GamMain_SFileError, L"The file cannot be opened by SpaceMission." |
Vcl_OleConst_SNoWindowHandle, L"Could not obtain OLE control window handle" |
Vcl_OleConst_SInvalidLicense, L"License information for %s is invalid" |
Vcl_OleConst_SNotLicensed, L"License information for %s not found. You cannot use this control in design mode" |
Vcl_OleConst_sNoRunningObject, L"Unable to retrieve a pointer to a running object registered with OLE for %s/%s" |
Vcl_EdgeConst_SWebViewFailure, L"Edge-Browser control cannot be created" |
Vcl_EdgeConst_SNoWebView, L"WebView2 control is not initialized" |
IEConst_sNotSupportedByEdge, L"Action not supported by Edge WebView2 control" |
System_RegularExpressionsConsts_SRegExMissingExpression, L"A regular expression is required in RegEx" |
System_RegularExpressionsConsts_SRegExExpressionError, L"Error with regular expression at offset %d: %s" |
System_RegularExpressionsConsts_SRegExStudyError, L"Error while evaluating: %s" |
System_RegularExpressionsConsts_SRegExMatchRequired, L"Match required" |
System_RegularExpressionsConsts_SRegExStringsRequired, L"Strings parameter must not be nil" |
System_RegularExpressionsConsts_SRegExIndexOutOfBounds, L"Index exceeds maximum (%d)" |
GamMain_SWeiterMitLeertaste, L"Continue with spacebar" |
GamMain_SAppTitle, L"SpaceMission %s" |
GamMain_SPauseTitle, L"%s [Pause]" |
GamSpeicherung_SDeleteSaveGame, L"Do you want to delete this savestate?" |
GamSpeicherung_SNoValidSaveGameName, L"This is not a valid savegame" |
GamSpeicherung_SEmptySaveGameName, L"Please enter a name for the savegame" |
GamSpeicherung_SReplaceSaveGame, L"Savegame already exists. Replace?" |
GamSpeicherung_SNoNA, L"n/a" |
GamSpeicherung_SIsNormalLevel, L"This is a normal level" |
GamSpeicherung_SIsRandomLevel, L"This is a random level" |
GamSpeicherung_SHasAttachedLevel, L"%s with level" |
ComInfo_SVersion, L"Version %s" |
GamCheat_SCheatUnlocked, L"Check was unlocked!" |
GamCheat_SCheckAlreadyUnlocked, L"This cheat is already unlocked!" |
GamCheat_SNoCheat, L"This is not a valid cheat code" |
GamCheat_SDisableCheat, L"Disable this cheat?" |
GamCheat_SCheatDisabled, L"Cheat was disabled!" |
Vcl_OleConst_SBadPropValue, L"'%s' is not a valid property value" |
Vcl_OleConst_SCannotActivate, L"OLE control activation failed" |
Global_SDownloadError, L"Could not download version information from the ViaThinkSoft server. Please try again later." |
Global_SNewProgramVersionAvailable, L"A new program version is available! Download now?" |
Global_SNoUpdateAvailable, L"You are already using the latest version" |
ComLevelReader_SLevelFileFolder, L"Levels" |
ComLevelReader_SLevelFileSubFolder, L"SpaceMission" |
ComLevelReader_SExtraContentAfterLine, L"Line %d is invalid (additional data at line end)" |
ComLevelReader_SInvalidXCoord, L"X-Coordinate must be a multiple of %d." |
ComLevelReader_SInvalidYCoord, L"Y-Coordinate must be a multiple of %d." |
ComLevelReader_SInvalidLevelFile, L"Level format not supported or file corrupt." |
ComLevelReader_SEnemyTypeNotImplemented, L"Enemy type %d not supported. (Old game version?)" |
ComLevelReader_SLevelEnemyLineComment, L"; Type XCoord YCoord Lives" |
ComLevelReader_SInvalidFile, L"Savegame format not supported or file corrupt." |
GamSpeicherung_SSaveGameFileNotFound, L"Savegame file not found" |
GamSpeicherung_SNa, L"n/a" |
GamSpeicherung_SSaveGameFolder, L"Save states" |
GamSpeicherung_SSaveGameSubFolder, L"SpaceMission" |
Vcl_Imaging_pnglang_EPNGCannotAssignChunkText, L"The chunks must be compatible to be assigned." |
Vcl_Imaging_pnglang_EPNGUnexpectedEndText, L"This ""Portable Network Graphics"" image is invalid because the decoder found an unexpected end of the file." |
Vcl_Imaging_pnglang_EPNGNoImageDataText, L"This ""Portable Network Graphics"" image contains no data." |
Vcl_Imaging_pnglang_EPNGCannotAddChunkText, L"The program tried to add a existent critical chunk to the current image which is not allowed." |
Vcl_Imaging_pnglang_EPNGCannotAddInvalidImageText, L"It's not allowed to add a new chunk because the current image is invalid." |
Vcl_Imaging_pnglang_EPNGCouldNotLoadResourceText, L"The png image could not be loaded from the resource ID." |
Vcl_Imaging_pnglang_EPNGOutMemoryText, L"Some operation could not be performed because the system is out of resources. Close some windows and try again." |
Vcl_Imaging_pnglang_EPNGCannotChangeTransparentText, L"Setting bit transparency color is not allowed for png images containing alpha value for each pixel (COLOR_RGBALPHA and COLOR_GRAYSCALEALPHA)" |
Vcl_Imaging_pnglang_EPNGHeaderNotPresentText, L"This operation is not valid because the current image contains no valid header." |
Vcl_Imaging_pnglang_EInvalidNewSize, L"The new size provided for image resizing is invalid." |
Vcl_Imaging_pnglang_EInvalidSpec, L"The ""Portable Network Graphics"" could not be created because invalid image type parameters have being provided." |
Vcl_Imaging_pnglang_EPNGInvalidBitDepthText, L"The PNG image (Portable Network Graphics) could not be loaded because the picture contains an invalid bit depth." |
Vcl_Imaging_JConsts_sChangeJPGSize, L"Cannot change the size of a JPEG image" |
Vcl_Imaging_JConsts_sJPEGError, L"JPEG error #%d" |
Vcl_Imaging_JConsts_sJPEGImageFile, L"JPEG Image File" |
Global_Cheat1Text, L"Infinite lives!" |
DXConsts_SNotSupportGraphicFile, L"Graphic format not suported" |
DXConsts_SInvalidDXTFile, L"DXT file is invalid" |
DXConsts_SCannotLoadGraphic, L"Can not load graphic" |
Vcl_Imaging_pnglang_EPngInvalidCRCText, L"This ""Portable Network Graphics"" image is not valid because it contains invalid pieces of data (crc error)" |
Vcl_Imaging_pnglang_EPNGInvalidIHDRText, L"The ""Portable Network Graphics"" image could not be loaded because one of its main piece of data (ihdr) might be corrupted" |
Vcl_Imaging_pnglang_EPNGMissingMultipleIDATText, L"This ""Portable Network Graphics"" image is invalid because it has missing image parts." |
Vcl_Imaging_pnglang_EPNGZLIBErrorText, L"The graphic could not be decompressed because part of the compressed data is invalid. \r\nDescription: " |
Vcl_Imaging_pnglang_EPNGInvalidPaletteText, L"The ""Portable Network Graphics"" image contains an invalid palette." |
Vcl_Imaging_pnglang_EPNGInvalidFileHeaderText, L"The read file is not a valid PNG picture (""Portable Network Graphics""), because it does not contain a valid header. The file is probably corrupt. Please try to receive a newer version of the file." |
Vcl_Imaging_pnglang_EPNGIHDRNotFirstText, L"This ""Portable Network Graphics"" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)" |
Vcl_Imaging_pnglang_EPNGSizeExceedsText, L"This PNG image (Portable Network Graphics) is not supported because width or height exceeds 65535 pixels." |
Vcl_Imaging_pnglang_EPNGUnknownPalEntryText, L"There is no such palette entry." |
Vcl_Imaging_pnglang_EPNGUnknownCriticalChunkText, L"This ""Portable Network Graphics"" image contains an unknown critical part which could not be decoded." |
Vcl_Imaging_pnglang_EPNGUnknownCompressionText, L"This ""Portable Network Graphics"" image is encoded with an unknown compression scheme which could not be decoded." |
Vcl_Imaging_pnglang_EPNGUnknownInterlaceText, L"This ""Portable Network Graphics"" image uses an unknown interlace scheme which could not be decoded." |
Vcl_Imaging_pnglang_EPNGUnknownColorTypeText, L"This PNG image (Portable Network Graphics) contains an unknown color type which cannot be decoded." |
DXConsts_SListIndexError, L"Index of the list exceeds the range. (%d)" |
DXConsts_SScanline, L"Index of the scanning line exceeded the range. (%d)" |
DXConsts_SNoForm, L"Form not found" |
DXConsts_SSinceDirectX6, L"Requires DirectX 6.0 or later" |
DXConsts_SSinceDirectX7, L"Requires DirectX 7.0 or later" |
DXConsts_S3DDeviceNotFound, L"3D device not found" |
DXConsts_SDisplayModeChange, L"Display mode cannot be changed (%dx%d %dbit)" |
DXConsts_SDisplayModeCannotAcquired, L"Display mode cannot be acquired" |
DXConsts_SInvalidDIB, L"DIB is invalid" |
DXConsts_SInvalidDIBBitCount, L"Bitcount in invalid (%d)" |
DXConsts_SInvalidDIBPixelFormat, L"PixelFormat in invalid" |
DXConsts_SInvalidWave, L"Wave is invalid" |
DXConsts_SInvalidDisplayBitCount, L"Display requires 8, 16, 24 or 32 bits" |
DXConsts_SInvalidWaveFormat, L"Format is invalid" |
DXConsts_SStreamOpend, L"Stream is already open" |
DXConsts_SNecessaryDirectInputUseMouse, L"DirectInput is required for mouse support" |
DXConsts_SDirectDrawClipper, L"Clipper" |
DXConsts_SDirectDrawSurface, L"Surface" |
DXConsts_SDirectDrawPrimarySurface, L"Primary Surface" |
DXConsts_SDirectSoundBuffer, L"Sound Buffer" |
DXConsts_SDirectSoundPrimaryBuffer, L"Primary Buffer" |
DXConsts_STexture, L"Texture" |
DXConsts_SNotMade, L"%s not made" |
DXConsts_SStreamNotOpend, L"Stream not opened" |
DXConsts_SCannotMade, L"%s cannot be made" |
DXConsts_SCannotInitialized, L"%s cannot be initialized" |
DXConsts_SCannotChanged, L"%s cannot be changed" |
DXConsts_SCannotLock, L"%s cannot be locked" |
DXConsts_SDLLNotLoaded, L"%s is not loaded" |
DXConsts_SImageNotFound, L"Image '%s' not found" |
DXConsts_SWaveNotFound, L"Wave '%s' not found" |
DXConsts_SEffectNotFound, L"Effect '%s' not found" |
Vcl_Consts_SStyleFormatError, L"Invalid style format" |
Vcl_Consts_SStyleHookClassRegistered, L"Class '%s' is already registered for '%s'" |
Vcl_Consts_SStyleHookClassNotRegistered, L"Class '%s' is not registered for '%s'" |
Vcl_Consts_SStyleInvalidParameter, L"Paramter %s must not be nil" |
Vcl_Consts_SStyleFeatureNotSupported, L"Function is not supported by this style" |
Vcl_Consts_SStyleNotRegistered, L"Style '%s' is not registered" |
Vcl_Consts_SStyleUnregisterError, L"The registry of the system style cannot be removed" |
Vcl_Consts_SStyleNotRegisteredNoName, L"Style not registered" |
Vcl_Consts_sBeginInvokeNoHandle, L"BeginInvoke cannot be called without superior window or window handle" |
System_Win_ComConst_SOleError, L"OLE error %.8x" |
System_Win_ComConst_SNoMethod, L"Method '%s' not supported by automation object" |
System_Win_ComConst_SVarNotObject, L"Variant does not reference an automation object" |
System_Win_ComConst_STooManyParams, L"Dispatch methods do not support more than 64 parameters" |
System_Win_ComConst_SDCOMNotInstalled, L"DCOM not installed" |
DXConsts_SDirectDraw, L"DirectDraw" |
DXConsts_SDirectSound, L"DirectSound" |
Vcl_Consts_SDomain, L"&Domain" |
Vcl_Consts_SLogin, L"Login" |
Vcl_Consts_SErrorSettingCount, L"Error setting %s.Count" |
Vcl_Consts_SListBoxMustBeVirtual, L"Listbox (%s) style must be virtual in order to set Count" |
Vcl_Consts_STrayIconRemoveError, L"Cannot remove shell notification icon" |
Vcl_Consts_SWindowsVistaRequired, L"%s requires Windows Vista or later" |
Vcl_Consts_STaskDlgButtonCaption, L"Button%d" |
Vcl_Consts_STaskDlgRadioButtonCaption, L"RadioButton%d" |
Vcl_Consts_SInvalidTaskDlgButtonCaption, L"Caption cannot be empty" |
Vcl_Consts_SStyleLoadError, L"Style '%s' could not be loaded" |
Vcl_Consts_SStyleLoadErrors, L"Styles %s could not be loaded" |
Vcl_Consts_SStyleRegisterError, L"Style '%s' already registered" |
Vcl_Consts_SStyleClassRegisterError, L"Style class '%s' already registered" |
Vcl_Consts_SStyleNotFound, L"Style '%s' not found" |
Vcl_Consts_SStyleClassNotFound, L"Style class '%s' not found" |
Vcl_Consts_SStyleInvalidHandle, L"Invalid style handle" |
Vcl_Consts_SInsertLineError, L"Unable to insert a line" |
Vcl_Consts_SIconToClipboard, L"Clipboard does not support Icons" |
Vcl_Consts_SCannotOpenClipboard, L"Cannot open clipboard: %s" |
Vcl_Consts_SInvalidMemoSize, L"Text exceeds memo capacity" |
Vcl_Consts_SInvalidPrinterOp, L"Operation not supported on selected printer" |
Vcl_Consts_SNoDefaultPrinter, L"No default printer selected" |
Vcl_Consts_SDuplicateMenus, L"Menu '%s' is already used by another form" |
Vcl_Consts_SDockedCtlNeedsName, L"Docked control must have a name" |
Vcl_Consts_SDockTreeRemoveError, L"Error removing control from dock tree" |
Vcl_Consts_SDockZoneNotFound, L" - Dock zone not found" |
Vcl_Consts_SDockZoneHasNoCtl, L" - Dock zone has no control" |
Vcl_Consts_SDockZoneVersionConflict, L"Error loading dock zone from the stream. Expecting version %d, but found %d." |
Vcl_Consts_SPromptArrayTooShort, L"Length of the value array must >= length of prompt array" |
Vcl_Consts_SPromptArrayEmpty, L"Prompt array must not be empty" |
Vcl_Consts_SUsername, L"&User name" |
Vcl_Consts_SPassword, L"&Password" |
Vcl_Consts_SmkcSpace, L"Empty" |
Vcl_Consts_SmkcPgUp, L"PgUp" |
Vcl_Consts_SmkcPgDn, L"PgDn" |
Vcl_Consts_SmkcEnd, L"End" |
Vcl_Consts_SmkcHome, L"Home" |
Vcl_Consts_SmkcLeft, L"Left" |
Vcl_Consts_SmkcUp, L"Up" |
Vcl_Consts_SmkcRight, L"Right" |
Vcl_Consts_SmkcDown, L"Down" |
Vcl_Consts_SmkcIns, L"Ins" |
Vcl_Consts_SmkcDel, L"Del" |
Vcl_Consts_SmkcShift, L"Shift+" |
Vcl_Consts_SmkcCtrl, L"Ctrl+" |
Vcl_Consts_SmkcAlt, L"Alt+" |
Vcl_Consts_SOutOfRange, L"Value must be between %d and %d" |
Vcl_Consts_sAllFilter, L"All" |
Vcl_Consts_SMsgDlgYes, L"&Yes" |
Vcl_Consts_SMsgDlgNo, L"&No" |
Vcl_Consts_SMsgDlgOK, L"OK" |
Vcl_Consts_SMsgDlgCancel, L"Cancel" |
Vcl_Consts_SMsgDlgHelp, L"&Help" |
Vcl_Consts_SMsgDlgAbort, L"&Abort" |
Vcl_Consts_SMsgDlgRetry, L"&Retry" |
Vcl_Consts_SMsgDlgIgnore, L"&Ignore" |
Vcl_Consts_SMsgDlgAll, L"&All" |
Vcl_Consts_SMsgDlgNoToAll, L"N&o to All" |
Vcl_Consts_SMsgDlgYesToAll, L"Yes to &All" |
Vcl_Consts_SMsgDlgClose, L"&Close" |
Vcl_Consts_SmkcBkSp, L"BkSp" |
Vcl_Consts_SmkcTab, L"Tab" |
Vcl_Consts_SmkcEsc, L"Esc" |
Vcl_Consts_SmkcEnter, L"Enter" |
Vcl_Consts_SHelpButton, L"&Help" |
Vcl_Consts_SCloseButton, L"&Close" |
Vcl_Consts_SIgnoreButton, L"&Ignore" |
Vcl_Consts_SRetryButton, L"&Retry" |
Vcl_Consts_SAbortButton, L"Cancel" |
Vcl_Consts_SAllButton, L"&All" |
Vcl_Consts_SCannotDragForm, L"Cannot drag a form" |
Vcl_Consts_SVMetafiles, L"Metafiles" |
Vcl_Consts_SVEnhMetafiles, L"Enhanced Metafiles" |
Vcl_Consts_SVIcons, L"Icons" |
Vcl_Consts_SVBitmaps, L"Bitmaps" |
Vcl_Consts_SVTIFFImages, L"TIFF graphics" |
Vcl_Consts_SMsgDlgWarning, L"Warning" |
Vcl_Consts_SMsgDlgError, L"Error" |
Vcl_Consts_SMsgDlgInformation, L"Information" |
Vcl_Consts_SMsgDlgConfirm, L"Confirm" |
Vcl_Consts_SMenuNotFound, L"Sub-menu is not in menu" |
Vcl_Consts_SNoTimers, L"Not enough timers available" |
Vcl_Consts_SNotPrinting, L"Printer is not currently printing" |
Vcl_Consts_SPrinting, L"Printing in progress" |
Vcl_Consts_SPrinterIndexError, L"Printer index out of range" |
Vcl_Consts_SInvalidPrinter, L"Selected printer is invalid" |
Vcl_Consts_SDeviceOnPort, L"%s on %s" |
Vcl_Consts_SGroupIndexTooLow, L"GroupIndex must not be smaller than the GroupIndex of a previous menu item" |
Vcl_Consts_SNoMDIForm, L"Form cannot be created. Currently no MDI forms are active" |
Vcl_Consts_SImageCanvasNeedsBitmap, L"A picture can only be changed if it contains a bitmap" |
Vcl_Consts_SControlParentSetToSelf, L"A control cannot have itself as its parent" |
Vcl_Consts_SControlNonMainThreadUsage, L"Control '%s' cannot be used for a main thread" |
Vcl_Consts_SOKButton, L"OK" |
Vcl_Consts_SCancelButton, L"Cancel" |
Vcl_Consts_SYesButton, L"&Yes" |
Vcl_Consts_SNoButton, L"&No" |
Vcl_Consts_SImageIndexError, L"Invalid ImageList-Index" |
Vcl_Consts_SImageReadFail, L"Failed to read ImageList data from stream" |
Vcl_Consts_SImageWriteFail, L"Failed to write ImageList data to stream" |
Vcl_Consts_SWindowDCError, L"Error creating window device context" |
Vcl_Consts_SWindowClass, L"Error creating window class" |
Vcl_Consts_SCannotFocus, L"Cannot focus a disabled or invisible window" |
Vcl_Consts_SParentRequired, L"Control '%s' has no parent window" |
Vcl_Consts_SControlPath, L". Path:\r\n%s" |
Vcl_Consts_SParentGivenNotAParent, L"Parent given is not a parent of '%s'" |
Vcl_Consts_SMDIChildNotVisible, L"Cannot hide an MDI Child Form" |
Vcl_Consts_SVisibleChanged, L"Cannot change Visible in OnShow or OnHide" |
Vcl_Consts_SCannotShowModal, L"Visible form cannot be changed to a modal form" |
Vcl_Consts_SScrollBarRange, L"Scrollbar property out of range" |
Vcl_Consts_SPropertyOutOfRange, L"%s property out of range" |
Vcl_Consts_SMenuIndexError, L"Menu index out of range" |
Vcl_Consts_SMenuReinserted, L"Menu inserted twice" |
Vcl_Consts_SInvalidImage, L"Invalid image" |
Vcl_Consts_SScanLine, L"Scan line index out of range" |
Vcl_Consts_SChangeIconSize, L"Cannot change the size of an icon" |
Vcl_Consts_SChangeWicSize, L"The size of a WIC graphic cannot be changed" |
Vcl_Consts_SOleGraphic, L"Invalid operation on TOleGraphic" |
Vcl_Consts_SUnknownExtension, L"Unknown picture file extension (.%s)" |
Vcl_Consts_SUnknownClipboardFormat, L"Clipboard format not supported" |
Vcl_Consts_SUnknownStreamFormat, L"Stream format not supported" |
Vcl_Consts_SOutOfResources, L"System resources exhausted" |
Vcl_Consts_SNoCanvasHandle, L"Canvas does not allow characters" |
Vcl_Consts_SInvalidTextFormatFlag, L"The text format flag '%s' is not supported" |
Vcl_Consts_SInvalidFrameIndex, L"Invalid picture frame index %d: there are %d frames available (0-%d)" |
Vcl_Consts_SInvalidImageSize, L"Invalid image size" |
Vcl_Consts_SInvalidImageList, L"Invalid ImageList" |
Vcl_Consts_SReplaceImage, L"Unable to Replace Image" |
Vcl_Consts_SInsertImage, L"Image cannot be inserted" |
System_RTLConsts_SWinRTInstanceError, L"Instance of class %s cannot be created" |
System_RTLConsts_sObserverUnsupported, L"Observer is not supported" |
System_RTLConsts_sObserverMultipleSingleCast, L"Multiple single cast observers cannot be added to observer collection" |
System_RTLConsts_sObserverNoInterface, L"Object does not implement the Observer interface" |
System_RTLConsts_sObserverNoSinglecastFound, L"No single cast observer with ID %d found in Observer collection" |
System_RTLConsts_sObserverNoMulticastFound, L"No multi cast observer with ID %d found in Observer collection" |
System_RTLConsts_sObserverNotAvailable, L"Observer not available" |
System_RTLConsts_SInvalidDateString, L"Invalid date string: %s" |
System_RTLConsts_SInvalidTimeString, L"Invalid time string: %s" |
System_RTLConsts_SInvalidOffsetString, L"Invalid time offset string: %s" |
System_RTLConsts_sMustWaitOnOneEvent, L"Waiting for at least one event" |
System_RTLConsts_sBeginInvokeDestroying, L"BeginInvoke cannot be called for freeing TComponent" |
Vcl_Consts_SInvalidBitmap, L"Bitmap image is not valid" |
Vcl_Consts_SInvalidIcon, L"Icon image is not valid" |
Vcl_Consts_SInvalidMetafile, L"Metafile is not valid" |
Vcl_Consts_SInvalidPixelFormat, L"Invalid pixel format" |
System_RTLConsts_SWindowsServer2008, L"Windows Server 2008" |
System_RTLConsts_SWindows7, L"Windows 7" |
System_RTLConsts_SWindowsServer2008R2, L"Windows Server 2008 R2" |
System_RTLConsts_SWindows2000, L"Windows 2000" |
System_RTLConsts_SWindowsXP, L"Windows XP" |
System_RTLConsts_SWindowsServer2003, L"Windows Server 2003" |
System_RTLConsts_SWindowsServer2003R2, L"Windows Server 2003 R2" |
System_RTLConsts_SWindowsServer2012, L"Windows Server 2012" |
System_RTLConsts_SWindowsServer2012R2, L"Windows Server 2012 R2" |
System_RTLConsts_SWindowsServer2016, L"Windows Server 2016" |
System_RTLConsts_SWindowsServer2019, L"Windows Server 2019" |
System_RTLConsts_SWindowsServer2022, L"Windows Server 2022" |
System_RTLConsts_SWindows8, L"Windows 8" |
System_RTLConsts_SWindows8Point1, L"Windows 8.1" |
System_RTLConsts_SWindows10, L"Windows 10" |
System_RTLConsts_SWindows11, L"Windows 11" |
System_RTLConsts_SGenericItemNotFound, L"Entry not found" |
System_RTLConsts_SGenericDuplicateItem, L"Duplicates are not allowed" |
System_RTLConsts_SInsufficientRtti, L"Not enough RTTI for this operation" |
System_RTLConsts_SParameterCountMismatch, L"Paramter count must match" |
System_RTLConsts_SNonPublicType, L"Type '%s' is not delcared in the interface setion of a unit" |
System_RTLConsts_SByRefArgMismatch, L"VAR- und OUT- arguments must match the paramter type" |
System_RTLConsts_SPropIsReadOnly, L"Property '%s' is write-proteted" |
System_RTLConsts_SPropIsWriteOnly, L"Property '%s' can only be written" |
System_RTLConsts_SInvalidRttiDestroy, L"RTTI objects cannot be manually freed using application code" |
System_RTLConsts_SServiceNotFound, L"Service for login information not found" |
System_RTLConsts_SVersionStr, L"%s (Version %d.%d, Build %d, %5:s)" |
System_RTLConsts_SSPVersionStr, L"%s Service Pack %4:d (Version %1:d.%2:d, Build %3:d, %5:s)" |
System_RTLConsts_SVersion32, L"32 bit edition" |
System_RTLConsts_SVersion64, L"64 bit edition" |
System_RTLConsts_SWindows, L"Windows" |
System_RTLConsts_SWindowsVista, L"Windows Vista" |
System_RTLConsts_sSpinCountOutOfRange, L"SpinCount outside range. It must be between 0 and %d" |
System_RTLConsts_sTimespanTooLong, L"TimeSpan too long" |
System_RTLConsts_sInvalidTimespanDuration, L"The duration cannot be returned, because the absolute value is exceeding TTimeSpan.MaxValue" |
System_RTLConsts_sTimespanValueCannotBeNan, L"Value must not be NaN" |
System_RTLConsts_sCannotNegateTimespan, L"Negation of minimum value of a time range is invalid" |
System_RTLConsts_sInvalidTimespanFormat, L"Invalid TimeSpam format" |
System_RTLConsts_sTimespanElementTooLong, L"TimeSpan element too long" |
System_RTLConsts_SNoContext, L"No context-sensitive help installed" |
System_RTLConsts_SNoContextFound, L"No help available for context %d" |
System_RTLConsts_SNoIndex, L"Unable to open Index" |
System_RTLConsts_SNoSearch, L"Unable to open Search" |
System_RTLConsts_SNoTableOfContents, L"Unable to find a Table of Contents" |
System_RTLConsts_SNoTopics, L"No topic-based help system installed" |
System_RTLConsts_SNothingFound, L"No help found for %s" |
System_RTLConsts_SArgumentOutOfRange, L"Argument outside range" |
System_RTLConsts_SArgumentNil, L"Argument may not be Nil" |
System_RTLConsts_SThreadExternalCheckTerminated, L"CheckTerminated cannot be called for an external created thread" |
System_RTLConsts_SThreadExternalSetReturnValue, L"SetReturnValue cannot be called for an external created thread" |
System_RTLConsts_SParamIsNil, L"Parameter %s must not be Nil" |
System_RTLConsts_SParamIsNegative, L"Parameter %s must not be a negative value" |
System_RTLConsts_SInputBufferExceed, L"Input buffer for %s = %d, %s = %d exceeded" |
System_RTLConsts_SInvalidCharsInPath, L"Invalid characters in the path name" |
System_RTLConsts_SInvalidCharsInFileName, L"Invalid characters in the file name" |
System_RTLConsts_SEmptyFileName, L"Filename is empty" |
System_RTLConsts_SPathTooLong, L"Path is too long" |
System_RTLConsts_SDriveNotFound, L"The drive was not found" |
System_RTLConsts_hNoFilterViewer, L"No help viewer that supports filters" |
System_RTLConsts_sArgumentInvalid, L"Invalid argument" |
System_RTLConsts_sInvalidStringAndObjectArrays, L"The length of string and object arrays must be equal" |
System_RTLConsts_sSameArrays, L"Source and target arrays must not be equal" |
System_RTLConsts_sNoConstruct, L"Class %s is not intended to be constructed" |
System_RTLConsts_sInvalidTimeoutValue, L"Invalid value for timeout: %s" |
System_RTLConsts_SReadError, L"Stream read error" |
System_RTLConsts_SReadOnlyProperty, L"Property is read-only" |
System_RTLConsts_SRegCreateFailed, L"Failed to create key %s" |
System_RTLConsts_SRegGetDataFailed, L"Failed to get data for '%s'" |
System_RTLConsts_SRegSetDataFailed, L"Failed to set data for '%s'" |
System_RTLConsts_SResNotFound, L"Resource %s not found" |
System_RTLConsts_SSeekNotImplemented, L"%s.Seek not implemented" |
System_RTLConsts_SSortedListError, L"Operation not allowed on sorted list" |
System_RTLConsts_SUnknownGroup, L"%s not in a class registration group" |
System_RTLConsts_SUnknownProperty, L"Property %s does not exist" |
System_RTLConsts_SWriteError, L"Stream write error" |
System_RTLConsts_SThreadCreateError, L"Thread creation error: %s" |
System_RTLConsts_SThreadError, L"Thread Error: %s (%d)" |
System_RTLConsts_SThreadExternalTerminate, L"Cannot terminate an externally created thread" |
System_RTLConsts_SThreadExternalWait, L"Cannot wait for an externally created thread" |
System_RTLConsts_SThreadStartError, L"Start cannot be called for a running or paused thread" |
System_RTLConsts_SFCreateErrorEx, L"Cannot create file ""%s"". %s" |
System_RTLConsts_SFOpenErrorEx, L"Cannot open file ""%s"". %s" |
System_RTLConsts_SInvalidImage, L"Invalid stream format" |
System_RTLConsts_SInvalidName, L"''%s'' is not a valid component name" |
System_RTLConsts_SInvalidProperty, L"Invalid property value" |
System_RTLConsts_SInvalidPropertyPath, L"Invalid property path" |
System_RTLConsts_SInvalidPropertyValue, L"Invalid property value" |
System_RTLConsts_SInvalidRegType, L"Invalid data type for '%s'" |
System_RTLConsts_SListCapacityError, L"List capacity out of bounds (%d)" |
System_RTLConsts_SListCountError, L"List count out of bounds (%d)" |
System_RTLConsts_SListIndexError, L"List index outside valid range (%d)" |
System_RTLConsts_SListIndexErrorRangeReason, L". %s-Range is 0..%d" |
System_RTLConsts_SListIndexErrorEmptyReason, L". %s is empty" |
System_RTLConsts_SMemoryStreamError, L"Out of memory while expanding memory stream" |
System_RTLConsts_SNoComSupport, L"%s has not been registered as a COM class" |
System_RTLConsts_SPropertyException, L"Error reading %s%s%s: %s" |
System_SysConst_SInvalidCharCount, L"Invalid count (%d)" |
System_SysConst_SInvalidDestinationIndex, L"Invalid destination index (%d)" |
System_SysConst_SInvalidCodePage, L"Invalid code page" |
System_SysConst_SInvalidEncodingName, L"Invalid coding name" |
System_SysConst_SNoMappingForUnicodeCharacter, L"No mapping for Unicode character in the target Multibyte code page found" |
System_SysConst_SInvalidStringBaseIndex, L"Invalid StringBaseIndex" |
System_RTLConsts_SAncestorNotFound, L"Ancestor for '%s' not found" |
System_RTLConsts_SAssignError, L"Cannot assign a %s to a %s" |
System_RTLConsts_SBitsIndexError, L"Bits index out of range" |
System_RTLConsts_SCantWriteResourceStreamError, L"Can't write to a read-only resource stream" |
System_RTLConsts_SCheckSynchronizeError, L"CheckSynchronize called from thread $%x, which is NOT the main thread" |
System_RTLConsts_SClassNotFound, L"Class %s not found" |
System_RTLConsts_SDuplicateClass, L"A class named %s already exists" |
System_RTLConsts_SDuplicateItem, L"List does not allow duplicates ($0%x)" |
System_RTLConsts_SDuplicateName, L"A component named %s already exists" |
System_RTLConsts_SDuplicateString, L"Duplicates are not allowed in string list" |
System_SysConst_SShortDayNameWed, L"Wed" |
System_SysConst_SShortDayNameThu, L"Thu" |
System_SysConst_SShortDayNameFri, L"Fri" |
System_SysConst_SShortDayNameSat, L"Sat" |
System_SysConst_SLongDayNameSun, L"Sunday" |
System_SysConst_SLongDayNameMon, L"Monday" |
System_SysConst_SLongDayNameTue, L"Tuesday" |
System_SysConst_SLongDayNameWed, L"Wednesday" |
System_SysConst_SLongDayNameThu, L"Thursday" |
System_SysConst_SLongDayNameFri, L"Friday" |
System_SysConst_SLongDayNameSat, L"Saturday" |
System_SysConst_SCannotCreateDir, L"Unable to create directory" |
System_SysConst_SInvalidSourceArray, L"Invalid source array" |
System_SysConst_SInvalidDestinationArray, L"Invalid destination array" |
System_SysConst_SCharIndexOutOfBounds, L"Character index out of bounds (%d)" |
System_SysConst_SByteIndexOutOfBounds, L"Start index out of bounds (%d)" |
System_SysConst_SShortMonthNameDec, L"Dec" |
System_SysConst_SLongMonthNameJan, L"January" |
System_SysConst_SLongMonthNameFeb, L"February" |
System_SysConst_SLongMonthNameMar, L"March" |
System_SysConst_SLongMonthNameApr, L"April" |
System_SysConst_SLongMonthNameMay, L"May" |
System_SysConst_SLongMonthNameJun, L"June" |
System_SysConst_SLongMonthNameJul, L"July" |
System_SysConst_SLongMonthNameAug, L"August" |
System_SysConst_SLongMonthNameSep, L"September" |
System_SysConst_SLongMonthNameOct, L"October" |
System_SysConst_SLongMonthNameNov, L"November" |
System_SysConst_SLongMonthNameDec, L"December" |
System_SysConst_SShortDayNameSun, L"Sun" |
System_SysConst_SShortDayNameMon, L"Mon" |
System_SysConst_SShortDayNameTue, L"Tue" |
System_SysConst_SAssertError, L"%s (%s, line %d)" |
System_SysConst_SAbstractError, L"Abstract Error" |
System_SysConst_SModuleAccessViolation, L"Access violation at address %p in module '%s'. %s of address %p" |
System_SysConst_SOSError, L"System error. Code: %d.\r\n%s%s" |
System_SysConst_SUnkOSError, L"A call to an OS function failed" |
System_SysConst_SShortMonthNameJan, L"Jan" |
System_SysConst_SShortMonthNameFeb, L"Feb" |
System_SysConst_SShortMonthNameMar, L"Mar" |
System_SysConst_SShortMonthNameApr, L"Apr" |
System_SysConst_SShortMonthNameMay, L"May" |
System_SysConst_SShortMonthNameJun, L"Jun" |
System_SysConst_SShortMonthNameJul, L"Jul" |
System_SysConst_SShortMonthNameAug, L"Aug" |
System_SysConst_SShortMonthNameSep, L"Sep" |
System_SysConst_SShortMonthNameOct, L"Oct" |
System_SysConst_SShortMonthNameNov, L"Nov" |
System_SysConst_SVarTypeTooManyCustom, L"Too many custom variant types have been registered" |
System_SysConst_SVarTypeCouldNotConvert, L"Could not convert variant of type (%s) into type (%s)" |
System_SysConst_SVarTypeConvertOverflow, L"Overflow while converting variant of type (%s) into type (%s)" |
System_SysConst_SVarOverflow, L"Variant overflow" |
System_SysConst_SVarInvalid, L"Invalid argument" |
System_SysConst_SVarBadType, L"Invalid variant type" |
System_SysConst_SVarNotImplemented, L"Operation not supported" |
System_SysConst_SVarUnexpected, L"Unexpected variant error" |
System_SysConst_SExternalException, L"External exception %x" |
System_SysConst_SAssertionFailed, L"Assertion failed" |
System_SysConst_SIntfCastError, L"Interface not supported" |
System_SysConst_SSafecallException, L"Exception in safecall method" |
System_SysConst_SMonitorLockException, L"Object lock not owned" |
System_SysConst_SNoMonitorSupportException, L"Monitor support function not initialized" |
System_SysConst_SNotImplemented, L"Feature not implemented" |
System_SysConst_SObjectDisposed, L"Method called at freed object" |
System_SysConst_SArgumentMissing, L"No argument for format '%s'" |
System_SysConst_SDispatchError, L"Variant method calls not supported" |
System_SysConst_SReadAccess, L"Read" |
System_SysConst_SWriteAccess, L"Write" |
System_SysConst_SExecuteAccess, L"Execution" |
System_SysConst_SInvalidAccess, L"Invalid access" |
System_SysConst_SVarArrayCreate, L"Error creating variant or safe array" |
System_SysConst_SVarArrayBounds, L"Variant or safe array index out of bounds" |
System_SysConst_SVarArrayLocked, L"Variant or safe array is locked" |
System_SysConst_SInvalidVarCast, L"Invalid variant type conversion" |
System_SysConst_SInvalidVarOp, L"Invalid variant operation" |
System_SysConst_SInvalidVarNullOp, L"Invalid NULL variant operation" |
System_SysConst_SInvalidVarOpWithHResultWithPrefix, L"Invalid variant operation (%s%.8x)\r\n%s" |
System_SysConst_SVarTypeOutOfRangeWithPrefix, L"Custom variant type (%s%.4x) is out of range" |
System_SysConst_SVarTypeAlreadyUsedWithPrefix, L"Custom variant type (%s%.4x) already used by %s" |
System_SysConst_SVarTypeNotUsableWithPrefix, L"Custom variant type (%s%.4x) is not usable" |
System_SysConst_SRangeError, L"Range check error" |
System_SysConst_SIntOverflow, L"Integer overflow" |
System_SysConst_SInvalidOp, L"Invalid floating point operation" |
System_SysConst_SZeroDivide, L"Floating point division by zero" |
System_SysConst_SOverflow, L"Floating point overflow" |
System_SysConst_SUnderflow, L"Floating point underflow" |
System_SysConst_SInvalidPointer, L"Invalid pointer operation" |
System_SysConst_SInvalidCast, L"Invalid class typecast" |
System_SysConst_SAccessViolationArg3, L"Access violation at address %p. %s of address %p" |
System_SysConst_SAccessViolationNoArg, L"Access violation" |
System_SysConst_SStackOverflow, L"Stack overflow" |
System_SysConst_SControlC, L"Control-C hit" |
System_SysConst_SPrivilege, L"Privileged instruction" |
System_SysConst_SException, L"Exception %s in module %s at %p.\r\n%s%s\r\n" |
System_SysConst_SExceptTitle, L"Application Error" |
System_SysConst_SInvalidFormat, L"Format '%s' invalid or incompatible with argument" |
System_SysConst_SUnknown, L"<unknown>" |
System_SysConst_SInvalidInteger, L"'%s' is not a valid integer value" |
System_SysConst_SInvalidTimeStamp, L"'%d.%d' is not a valid timestamp" |
System_SysConst_SInvalidGUID, L"'%s' is not a valid GUID value" |
System_SysConst_STimeEncodeError, L"Invalid argument to time encode" |
System_SysConst_SDateEncodeError, L"Invalid argument to date encode" |
System_SysConst_SOutOfMemory, L"Out of memory" |
System_SysConst_SInOutError, L"I/O error %d" |
System_SysConst_SFileNotFound, L"File not found" |
System_SysConst_SInvalidUnknownFilename, L"Invalid filename" |
System_SysConst_STooManyOpenFiles, L"Too many open files" |
System_SysConst_SAccessDenied, L"File access denied" |
System_SysConst_SEndOfFile, L"Read beyond end of file" |
System_SysConst_SDiskFull, L"Disk full" |
System_SysConst_SInvalidInput, L"Invalid numeric input" |
System_SysConst_SDivByZero, L"Division by zero" |
END |
/* c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release\Controls.res */ |
/* c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release\Dialogs.res */ |
/* D:\SVN\SpaceMission\GamSplash.DFM */ |
/* c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release\Buttons.res */ |
/* c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release\SPIN.RES */ |
/* D:\SVN\SpaceMission\GamSpeicherung.DFM */ |
/* D:\SVN\SpaceMission\ComInfo.DFM */ |
/* D:\SVN\SpaceMission\GamCheat.DFM */ |
/* D:\SVN\SpaceMission\ComHilfe.dfm */ |
/* D:\SVN\SpaceMission\GamMain.DFM */ |
/* D:\SVN\SpaceMission\SpaceMission.RES */ |
/* D:\SVN\SpaceMission\SpaceMission.drf */ |
/ENU/ComHilfe.dfm |
---|
0,0 → 1,29 |
object HilfeForm: THilfeForm |
Left = 0 |
Top = 0 |
ClientHeight = 484 |
ClientWidth = 730 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'Segoe UI' |
Font.Style = [] |
Position = poMainFormCenter |
TextHeight = 15 |
object WebBrowser1: TWebBrowser |
Left = 0 |
Top = 0 |
Width = 730 |
Height = 484 |
Align = alClient |
TabOrder = 0 |
OnBeforeNavigate2 = WebBrowser1BeforeNavigate2 |
ControlData = { |
4C000000734B0000063200000000000000000000000000000000000000000000 |
000000004C000000000000000000000001000000E0D057007335CF11AE690800 |
2B2E126208000000000000004C0000000114020000000000C000000000000046 |
8000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000100000000000000000000000000000000000000} |
end |
end |
/ENU/ComInfo.dfm |
---|
0,0 → 1,190 |
object InfoForm: TInfoForm |
Left = 289 |
Top = 184 |
BorderStyle = bsDialog |
Caption = 'About this game' |
ClientHeight = 343 |
ClientWidth = 384 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poMainFormCenter |
OnCreate = FormCreate |
DesignSize = ( |
384 |
343) |
TextHeight = 13 |
object HomeLbl: TLabel |
Left = 32 |
Top = 136 |
Width = 48 |
Height = 13 |
Caption = 'Website:' |
Transparent = True |
end |
object Image: TImage |
Left = 8 |
Top = 8 |
Width = 65 |
Height = 57 |
Center = True |
Picture.Data = { |
07544269746D617076020000424D760200000000000076000000280000002000 |
0000200000000100040000000000000200000000000000000000100000000000 |
000000000000000080000080000000808000800000008000800080800000C0C0 |
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF |
FF00000000000000000000000000000000000EE8787878EEEEEEE03F30878EEE |
EEE00EE8787878EEEEEEE03F30878EEEEEE00EE8787878EEEEEEE03F30878EEE |
EEE00EE8787878EEEEEEE03F30878EEEEEE00887787877788888803F3088787E |
EEE00788787878878887803F3088887EEEE00788887888878887803F3088887E |
EEE00877888887788888703F308887EEEEE00888777778888888037883088888 |
8EE007777777777777703787883087777EE00888888888888803787378830888 |
8880088888888888803787378788308888800777777777880378737373788308 |
88E00888888888803787373737378830EEE00887777778800001111111111100 |
EEE00888888888888899B999B99999EEEEE00888888888888899B9B99BB9B9EE |
EEE0088888888888899BB9BB99BB99EEEEE0078888888888899B999B999999EE |
EEE0087788888778899B9B9BB9BB99EEEEE00888778778888E9B9B9BB9999EEE |
EEE0088888788888EE9B99B9BB9BEEEEEEE00EE8888888EEEEE999B9999EEEEE |
EEE00EEEE888EEEEEEEE99BB999EEEEEEEE00EEEEE8EEEEEEEEEE999B9EEEEEE |
EEE00EEEEE8EEEEEEEEEEEE999EEEEEEEEE00EEEEE8EEEEEEEEEEEEE99EEEEEE |
EEE00EEEEE8EEEEEEEEEEEEE9EEEEEEEEEE00EEEEE8EEEEEEEEEEEEEEEEEEEEE |
EEE00EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000 |
0000} |
Stretch = True |
end |
object FirmaLbl: TLabel |
Left = 88 |
Top = 8 |
Width = 74 |
Height = 13 |
Caption = 'ViaThinkSoft' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsBold] |
ParentFont = False |
Transparent = True |
end |
object NameLbl: TLabel |
Left = 104 |
Top = 24 |
Width = 66 |
Height = 13 |
Caption = 'SpaceMission' |
Transparent = True |
end |
object VersionLbl: TLabel |
Left = 232 |
Top = 24 |
Width = 35 |
Height = 13 |
Caption = 'Version' |
Transparent = True |
end |
object EMailLbl: TLabel |
Left = 32 |
Top = 120 |
Width = 32 |
Height = 13 |
Caption = 'E-Mail:' |
Transparent = True |
end |
object CopyrightLbl: TLabel |
Left = 8 |
Top = 80 |
Width = 264 |
Height = 13 |
Caption = #169' Copyright 2001 - 2024 Daniel Marschall, ViaThinkSoft' |
Transparent = True |
end |
object Copyright2Lbl: TLabel |
Left = 8 |
Top = 96 |
Width = 117 |
Height = 13 |
Caption = 'All rights reserved' |
Transparent = True |
end |
object URL2: TLabel |
Left = 152 |
Top = 136 |
Width = 117 |
Height = 13 |
Cursor = crHandPoint |
Caption = 'www.daniel-marschall.de' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlue |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
Transparent = True |
OnClick = WebsiteClick |
end |
object URL1: TLabel |
Left = 152 |
Top = 120 |
Width = 118 |
Height = 13 |
Cursor = crHandPoint |
Caption = 'info@daniel-marschall.de' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlue |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
Transparent = True |
OnClick = EMailClick |
end |
object OkBtn: TButton |
Left = 273 |
Top = 310 |
Width = 107 |
Height = 25 |
Anchors = [akRight, akBottom] |
Cancel = True |
Caption = 'OK' |
Default = True |
TabOrder = 0 |
OnClick = OkBtnClick |
end |
object MemoMitwirkende: TMemo |
Left = 8 |
Top = 168 |
Width = 372 |
Height = 128 |
Anchors = [akLeft, akTop, akRight, akBottom] |
Lines.Strings = ( |
'SpaceMission was created by Daniel Marschall based on a code exa' + |
'mple ' |
'by Hiroyuki Hori for DelphiX 2000.' |
'' |
'Developed with Embarcadero Delphi.' |
'Setup created with InnoSetup.' |
'Security certificate by HickelSOFT Huth GmbH.' |
'' |
'Used components: (un)DelphiX' |
'Source code: http://www.micrel.cz/Dx/' |
'(C) Copyright 1996-2000 by Hiroyuki Hori' |
'(C) Copyright 2004-2023 by Jaro Benes.' |
'' |
'as well as Delphi MarkDown' |
'Source code: https://github.com/grahamegrieve/delphi-markdown' |
'(c) 2011+, Health Intersections Pty Ltd' |
'Apache 2.0 License' |
'' |
'Music by Savage Peachers Software.' |
'Sources of sounds and graphics are unknown.' |
'Levels by Daniel Marschall, Patrick B'#252'ssecker and Andreas ' |
'K'#252'belsbeck.') |
ReadOnly = True |
ScrollBars = ssVertical |
TabOrder = 1 |
end |
end |
/ENU/GamCheat.dfm |
---|
0,0 → 1,104 |
object CheatForm: TCheatForm |
Left = 275 |
Top = 165 |
BorderStyle = bsDialog |
Caption = 'Cheats' |
ClientHeight = 233 |
ClientWidth = 313 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poMainFormCenter |
OnHide = FormHide |
OnShow = FormShow |
TextHeight = 13 |
object Label1: TLabel |
Left = 8 |
Top = 8 |
Width = 152 |
Height = 13 |
Caption = 'Please enter a cheat code' |
end |
object Label3: TLabel |
Left = 200 |
Top = 8 |
Width = 106 |
Height = 13 |
Cursor = crHandPoint |
Caption = 'Ask author' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlue |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
Visible = False |
OnClick = Label3Click |
end |
object CheatEdit: TEdit |
Left = 8 |
Top = 32 |
Width = 297 |
Height = 21 |
Cursor = crIBeam |
Ctl3D = True |
ParentCtl3D = False |
PasswordChar = '*' |
TabOrder = 0 |
OnKeyPress = CheatEditKeyPress |
end |
object OKBtn: TButton |
Left = 192 |
Top = 200 |
Width = 115 |
Height = 25 |
Caption = 'OK' |
Default = True |
TabOrder = 1 |
OnClick = OKBtnClick |
end |
object AbbBtn: TButton |
Left = 8 |
Top = 200 |
Width = 113 |
Height = 25 |
Cancel = True |
Caption = 'Cancel' |
TabOrder = 2 |
OnClick = AbbBtnClick |
end |
object GroupBox1: TGroupBox |
Left = 8 |
Top = 64 |
Width = 297 |
Height = 129 |
Caption = 'Activated cheats' |
TabOrder = 3 |
object Label2: TLabel |
Left = 8 |
Top = 104 |
Width = 89 |
Height = 13 |
Cursor = crHandPoint |
Caption = 'Disable cheat' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlue |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnClick = Label2Click |
end |
object CheatBox: TListBox |
Left = 8 |
Top = 24 |
Width = 281 |
Height = 73 |
ItemHeight = 13 |
TabOrder = 0 |
end |
end |
end |
/ENU/GamMain.dfm |
---|
0,0 → 1,154 |
object MainForm: TMainForm |
Left = 320 |
Top = 196 |
BorderIcons = [biSystemMenu, biMinimize] |
BorderStyle = bsSingle |
Caption = 'SpaceMission' |
ClientHeight = 561 |
ClientWidth = 636 |
Color = clBlack |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clYellow |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
KeyPreview = True |
Menu = MainMenu |
Position = poScreenCenter |
Scaled = False |
OnClose = FormClose |
OnCreate = FormCreate |
OnDestroy = FormDestroy |
OnKeyDown = FormKeyDown |
OnShow = FormShow |
TextHeight = 13 |
object MainMenu: TMainMenu |
Left = 24 |
Top = 8 |
object Spiel: TMenuItem |
Caption = '&Game' |
object GameStart: TMenuItem |
Caption = 'Back to &main menu' |
Enabled = False |
ShortCut = 112 |
OnClick = GameStartClick |
end |
object Neustart: TMenuItem |
Caption = '&Restart' |
Enabled = False |
ShortCut = 113 |
OnClick = NeustartClick |
end |
object GamePause: TMenuItem |
Caption = '&Pause' |
Enabled = False |
ShortCut = 114 |
OnClick = GamePauseClick |
end |
object Leer1: TMenuItem |
Caption = '-' |
end |
object Spielstand: TMenuItem |
Caption = '&Savegames...' |
ShortCut = 115 |
OnClick = SpielstandClick |
end |
object Cheat: TMenuItem |
Caption = '&Cheats...' |
Enabled = False |
ShortCut = 116 |
OnClick = CheatClick |
end |
object Leer3: TMenuItem |
Caption = '-' |
end |
object Beenden: TMenuItem |
Caption = '&Exit' |
ShortCut = 32883 |
OnClick = BeendenClick |
end |
end |
object Einstellungen: TMenuItem |
Caption = '&Settings' |
object OptionSound: TMenuItem |
Caption = '&Sound effects' |
Checked = True |
GroupIndex = 1 |
OnClick = OptionSoundClick |
end |
object OptionMusic: TMenuItem |
Caption = '&Music' |
Checked = True |
GroupIndex = 1 |
OnClick = OptionMusicClick |
end |
object Leer5: TMenuItem |
Caption = '-' |
GroupIndex = 1 |
end |
object Spielgeschwindigkeit: TMenuItem |
Caption = '&Speed' |
Enabled = False |
GroupIndex = 1 |
object Leicht: TMenuItem |
Caption = '&Easy' |
RadioItem = True |
ShortCut = 49 |
OnClick = LeichtClick |
end |
object Mittel: TMenuItem |
Caption = '&Medium' |
Checked = True |
RadioItem = True |
ShortCut = 50 |
OnClick = MittelClick |
end |
object Schwer: TMenuItem |
Caption = '&Hard' |
RadioItem = True |
ShortCut = 51 |
OnClick = SchwerClick |
end |
object Master: TMenuItem |
Caption = '&Master' |
RadioItem = True |
ShortCut = 52 |
OnClick = MasterClick |
end |
end |
end |
object Hilfe: TMenuItem |
Caption = '&Help' |
object Hilfe1: TMenuItem |
Caption = 'General topics' |
GroupIndex = 1 |
Hint = 'Help\EN_General.md' |
OnClick = HilfeTopicClick |
end |
object Wasgibtesneues1: TMenuItem |
Caption = 'What'#39's new?' |
GroupIndex = 1 |
Hint = 'Help\EN_Changelog.md' |
OnClick = HilfeTopicClick |
end |
object N1: TMenuItem |
Caption = '-' |
GroupIndex = 1 |
end |
object CheckUpdates: TMenuItem |
Caption = 'Check for updates' |
GroupIndex = 1 |
OnClick = CheckUpdatesClick |
end |
object Leer6: TMenuItem |
Caption = '-' |
GroupIndex = 1 |
end |
object Informationen: TMenuItem |
Caption = '&About this game...' |
GroupIndex = 1 |
OnClick = InformationenClick |
end |
end |
end |
end |
/ENU/GamSpeicherung.dfm |
---|
0,0 → 1,202 |
object SpeicherungForm: TSpeicherungForm |
Left = 280 |
Top = 152 |
BorderStyle = bsDialog |
Caption = 'Savegames' |
ClientHeight = 424 |
ClientWidth = 447 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poMainFormCenter |
OnHide = FormHide |
OnShow = FormShow |
TextHeight = 13 |
object Bevel1: TBevel |
Left = 8 |
Top = 56 |
Width = 433 |
Height = 2 |
Shape = bsBottomLine |
end |
object Label2: TLabel |
Left = 8 |
Top = 72 |
Width = 58 |
Height = 13 |
Caption = 'Savegames:' |
end |
object Label3: TLabel |
Left = 8 |
Top = 336 |
Width = 67 |
Height = 13 |
Caption = 'Information:' |
end |
object Label1: TLabel |
Left = 8 |
Top = 20 |
Width = 78 |
Height = 13 |
Caption = 'Savegame name:' |
Enabled = False |
end |
object LadenBtn: TButton |
Left = 336 |
Top = 72 |
Width = 105 |
Height = 25 |
Caption = '&Load' |
Enabled = False |
TabOrder = 0 |
OnClick = LadenBtnClick |
end |
object LoeschenBtn: TButton |
Left = 336 |
Top = 104 |
Width = 105 |
Height = 25 |
Caption = '&Delete' |
Enabled = False |
TabOrder = 1 |
OnClick = LoeschenBtnClick |
end |
object AktualisierenBtn: TButton |
Left = 336 |
Top = 144 |
Width = 105 |
Height = 25 |
Caption = '&Refresh' |
TabOrder = 2 |
OnClick = DsFancyButton2Click |
end |
object SpeichernBtn: TButton |
Left = 336 |
Top = 16 |
Width = 105 |
Height = 25 |
Caption = '&Save' |
Enabled = False |
TabOrder = 3 |
OnClick = SpeichernBtnClick |
end |
object AbbrechenBtn: TButton |
Left = 336 |
Top = 392 |
Width = 105 |
Height = 25 |
Cancel = True |
Caption = '&Close' |
Default = True |
ModalResult = 1 |
TabOrder = 4 |
OnClick = AbbrechenBtnClick |
end |
object LevelListBox: TListBox |
Left = 112 |
Top = 72 |
Width = 201 |
Height = 249 |
ItemHeight = 13 |
TabOrder = 5 |
OnClick = LevelListBoxClick |
OnDblClick = LevelListBoxDblClick |
end |
object LevelName: TEdit |
Left = 112 |
Top = 16 |
Width = 201 |
Height = 21 |
Enabled = False |
TabOrder = 6 |
end |
object ElPanel1: TPanel |
Left = 112 |
Top = 336 |
Width = 201 |
Height = 81 |
BevelOuter = bvLowered |
Color = clWindow |
TabOrder = 7 |
object li4a: TLabel |
Left = 8 |
Top = 56 |
Width = 33 |
Height = 13 |
Caption = 'Lives:' |
end |
object li1: TLabel |
Left = 8 |
Top = 8 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
object li3b: TLabel |
Left = 96 |
Top = 40 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
object li3a: TLabel |
Left = 8 |
Top = 40 |
Width = 29 |
Height = 13 |
Caption = 'Level:' |
end |
object li4b: TLabel |
Left = 96 |
Top = 56 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
object liu: TLabel |
Left = 8 |
Top = 8 |
Width = 156 |
Height = 13 |
Caption = 'Savegame file cannot be read!' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clMaroon |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
Visible = False |
end |
object liw: TLabel |
Left = 8 |
Top = 8 |
Width = 160 |
Height = 13 |
Caption = 'Please select a savegame.' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clNavy |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
Visible = False |
end |
object li2a: TLabel |
Left = 8 |
Top = 24 |
Width = 37 |
Height = 13 |
Caption = 'Score:' |
end |
object li2b: TLabel |
Left = 96 |
Top = 24 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
end |
end |
/ENU/LevEdit.dof |
---|
0,0 → 1,2 |
[Directories] |
OutputDir=..\..\SpaceMission |
/ENU/LevEdit.dpr |
---|
0,0 → 1,24 |
// Do not edit. This file is machine generated by the Resource DLL Wizard. |
library LevEdit; |
{ITE} {DFMFileType} {ComHilfe.dfm} |
{ITE} {DFMFileType} {ComInfo.dfm} |
{ITE} {DFMFileType} {LevMain.dfm} |
{ITE} {DFMFileType} {LevOptions.dfm} |
{ITE} {DFMFileType} {LevSpeicherung.dfm} |
{ITE} {DFMFileType} {LevSplash.dfm} |
{ITE} {RCFileType} {LevEdit_DRC.rc} |
{$R 'ComHilfe.dfm' 'HilfeForm:TForm'} |
{$R 'ComInfo.dfm' 'InfoForm:TForm'} |
{$R 'LevMain.dfm' 'MainForm:TForm(DXForm)'} |
{$R 'LevOptions.dfm' 'LevelForm:TForm'} |
{$R 'LevSpeicherung.dfm' 'SpeicherungForm:TForm'} |
{$R 'LevSplash.dfm' 'SplashForm:TForm'} |
{$R 'LevEdit_DRC.res' 'LevEdit_DRC.rc'} |
{$E ENU} |
begin |
end. |
/ENU/LevMain.dfm |
---|
0,0 → 1,6136 |
object MainForm: TMainForm |
Left = 217 |
Top = 117 |
BorderIcons = [biSystemMenu, biMinimize] |
BorderStyle = bsSingle |
Caption = 'Level Editor' |
ClientHeight = 517 |
ClientWidth = 741 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
KeyPreview = True |
Menu = MainMenu |
Position = poScreenCenter |
Scaled = False |
OnClose = FormClose |
OnCloseQuery = FormCloseQuery |
OnCreate = FormCreate |
OnDestroy = FormDestroy |
OnMouseMove = DXDrawMouseMove |
OnShow = FormShow |
TextHeight = 13 |
object ScrollBar: TScrollBar |
Left = 0 |
Top = 480 |
Width = 632 |
Height = 17 |
Max = 1200 |
PageSize = 0 |
TabOrder = 0 |
OnScroll = ScrollBarScroll |
end |
object StatusBar: TStatusBar |
Left = 0 |
Top = 498 |
Width = 741 |
Height = 19 |
Panels = <> |
SimplePanel = True |
OnMouseMove = DXDrawMouseMove |
end |
object SidePanel: TPanel |
Left = 632 |
Top = 0 |
Width = 109 |
Height = 498 |
Align = alRight |
BevelOuter = bvNone |
TabOrder = 2 |
object Bevel1: TBevel |
Left = 4 |
Top = 200 |
Width = 97 |
Height = 2 |
Shape = bsBottomLine |
end |
object Bevel2: TBevel |
Left = 4 |
Top = 392 |
Width = 97 |
Height = 2 |
Shape = bsBottomLine |
end |
object Bevel3: TBevel |
Left = 4 |
Top = 320 |
Width = 97 |
Height = 2 |
Shape = bsBottomLine |
end |
object LivesLabel: TLabel |
Left = 8 |
Top = 332 |
Width = 33 |
Height = 13 |
Caption = 'Lifes:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object SelLabel: TLabel |
Left = 8 |
Top = 4 |
Width = 43 |
Height = 13 |
Caption = 'Selection:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel0: TLabel |
Left = 8 |
Top = 400 |
Width = 84 |
Height = 13 |
Caption = 'Level information:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel1a: TLabel |
Left = 8 |
Top = 424 |
Width = 47 |
Height = 13 |
Caption = 'Units:' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel1b: TLabel |
Left = 76 |
Top = 424 |
Width = 6 |
Height = 13 |
Caption = '0' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel2a: TLabel |
Left = 8 |
Top = 440 |
Width = 26 |
Height = 13 |
Caption = 'Boss:' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel2b: TLabel |
Left = 76 |
Top = 440 |
Width = 22 |
Height = 13 |
Caption = 'No' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel3a: TLabel |
Left = 8 |
Top = 456 |
Width = 32 |
Height = 13 |
Caption = 'Size:' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel3b: TLabel |
Left = 76 |
Top = 456 |
Width = 24 |
Height = 13 |
Caption = '1200' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel4a: TLabel |
Left = 8 |
Top = 480 |
Width = 60 |
Height = 13 |
Caption = 'Saved:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = 150 |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel4b: TLabel |
Left = 76 |
Top = 480 |
Width = 22 |
Height = 13 |
Caption = 'No' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = 150 |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy1: TRadioButton |
Left = 8 |
Top = 24 |
Width = 93 |
Height = 17 |
Caption = 'Attacker type 1' |
Checked = True |
TabOrder = 0 |
TabStop = True |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy2: TRadioButton |
Left = 8 |
Top = 44 |
Width = 93 |
Height = 17 |
Caption = 'Attacker type 2' |
TabOrder = 1 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy3: TRadioButton |
Left = 8 |
Top = 64 |
Width = 93 |
Height = 17 |
Caption = 'Attacker type 3' |
TabOrder = 2 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy4: TRadioButton |
Left = 8 |
Top = 84 |
Width = 55 |
Height = 17 |
Caption = 'Meteor' |
TabOrder = 3 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy5: TRadioButton |
Left = 8 |
Top = 104 |
Width = 44 |
Height = 17 |
Caption = 'UFO' |
TabOrder = 4 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy6: TRadioButton |
Left = 8 |
Top = 124 |
Width = 53 |
Height = 17 |
Caption = 'UFO 2' |
TabOrder = 5 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy7: TRadioButton |
Left = 8 |
Top = 144 |
Width = 45 |
Height = 17 |
Caption = 'Boss' |
TabOrder = 6 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object SelPanel: TPanel |
Left = 8 |
Top = 216 |
Width = 89 |
Height = 89 |
Color = clWhite |
TabOrder = 7 |
OnMouseMove = DXDrawMouseMove |
object Image1: TImage |
Left = 1 |
Top = 1 |
Width = 697 |
Height = 88 |
AutoSize = True |
Picture.Data = { |
07544269746D617056CF0200424D56CF0200000000003600000028000000B902 |
000058000000010018000000000020CF0200120B0000120B0000000000000000 |
0000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFCFFD0D9FF93A9FF5B7A |
FF3258FF1844FF113DFF113EFF113EFF113EFF113EFF113EFF113DFF113DFF23 |
4CFF4266FF728CFFA9BAFFF3F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F7FFA2B5 |
FF4D71FF0E3EFF0135FF0032FF0032FF0135FF0236FF0236FF0236FF0236FF02 |
36FF0236FF0236FF0236FF0034FF0033FF002FFF0538FF2A56FF7491FFC5D2FF |
FCFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFE9495A500003300003300003300003300003300003300 |
00330000330000330000330000330000330000330000339495A5FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFECF1FF8AA5FF3360FF0038FF0036FF003AFF013BFF023BFF023BFF023BFF02 |
3BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF |
013AFF0038FF0033FF0C42FF557BFFB8C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEADADBB58587A58587A58587A31315A00003300003300 |
0033000048000048000048000048000048000048000048000048000048000048 |
00004831316358587A58587A58587A58587A757489FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE6B98730042080042080042080042080042084A |
7B52FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE689AFF0052FA0052FA0052FA0052 |
FA0052FA4384FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFEFFFFC9D6FF557FFF013FFF003BFF0140FF0241FF0240FF02 |
40FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF |
0240FF0240FF0240FF0240FF0240FF0241FF0241FF003EFF003AFF0743FF88A5 |
FFECF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE86899600003300003300 |
0033000033000033000033000048000048000048000048000048000048000048 |
0000480000480000480000480000480000480000330000330000330000332929 |
52FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEEDEDEDA5B58CA5B58CA5B58CA5B58C45744600420800 |
42080042080042080042082963318CAD948CAD948CAD948CAD94DADADBFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFA8CB5FF8CB5FF8CB5FF8CB5FF3377 |
FE0052FA0052FA0052FA0052FA0052FA266AFE8CB5FF8CB5FF8CB5FF8CB5FFD9 |
E7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FBFF7EA2FF0D4EFF0043FF0146FF02 |
47FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF |
0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247 |
FF0247FF0247FF0045FF0041FF346AFFD7E2FFFEFEFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE868996000033000033000033000033000033000033000048000048000048 |
0000480000480000480000480000480000480000480000480000480000480000 |
48000048000033000033292952FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECAD6C831520031520031 |
5200315200174A00004208004208004208004208004208004208004208004208 |
004208004208A5BAA7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FAA5BDFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9F0FF6492FF00 |
45FF004CFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF |
024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024E |
FF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF0048FF1056FFA0 |
BDFFFCFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEDADADB000033000033000048000048000048000033000033000048 |
0000480000480000480000480000580000580000580000580000580000580000 |
58000058000058000058000048000048000048000048000048000033DADADBFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE526B2249631049631049 |
6310425A16315200315200315200315200174A00004208004208004208004208 |
0042080042080042080042080042080042080852181853211853211853211853 |
21F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE266AFE1663 |
FE1663FE1663FE1663FE0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA105AFE1663FE1663FE |
1663FE1663FEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFE3EDFF2D72FF0050FF0254FF0255FF0255FF0255FF0255FF0255FF0255FF |
0255FF0255FF0254FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052 |
FF0052FF0052FF0052FF0053FF0255FF0255FF0255FF0255FF0255FF0255FF02 |
55FF0255FF0255FF0051FF0152FF8FB5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB58587A000048000048000048000048 |
0000480000480000480000480000480000480000580000580000580000580000 |
5800005800005800005800005800005800005800005800005800005800005800 |
005800004800003358587AADADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBC6A6BBC6A6BB |
C6A6315200315200315200315200315200315200315200315200315200174A00 |
0042080042080042080042080042080042080042080042080042080042080042 |
080042080042082963315A8463F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9C6 |
FFA9C6FFA9C6FF105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA266AFE538CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFEEF4FF4084FF0057FF005BFF015CFF015CFF015CFF |
015CFF015CFF015CFF015CFF015CFF015BFF025CFF1065FF1065FF1065FF1065 |
FF1065FF1065FF1065FF1065FF1065FF1065FF1065FF0961FF015BFF015CFF01 |
5CFF015CFF015CFF015CFF015CFF015CFF015CFF015CFF0059FF065CFF95BBFF |
FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEC6C8D658587A000033 |
0000580000580000580000580000580000480000480000480000480000480000 |
5800005800005800005800005800005800005800006D00006D00006D00006D00 |
006D00006D00005800005800005800004800003300003358587ACACACACACACA |
EAEEFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEF7F7EF315200315200315200315200315200315200315200315200315200 |
315200315200315200174A000042080042080042080042080042080042080042 |
080042080042080042080042080042080042087BA984FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEEFF7FC0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA77A5FFFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECF4FF5798FF005EFF0163FF |
0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0060FF0F6C |
FFE2EDFFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0 |
F5FF78ADFF0059FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF |
0163FF0163FF0061FF0260FFA5C8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE1818420000480000480000580000580000580000580000580000480000 |
4800004800004800005800005800005800005800005800005800005800005800 |
006D00006D00006D00006D00006D00006D000058000058000058000048000033 |
000033000033000033000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE9CA584547331315200315200315200315200315200 |
315200315200315200315200315200315200315200174A000042080042080042 |
080042080042080042080042080042080042080042080042080042080C2B0511 |
4816326639F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF3377FE0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004A |
F7004AE9125AED3377FEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFF |
72ADFF0063FF016AFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF016B |
FF016BFF016BFF0068FF1074FFF4F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFF82B6FF0060FF016BFF016BFF016BFF016BFF |
016BFF016BFF016BFF016BFF016BFF016BFF016BFF0067FF056BFFE1EDFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE948C8C5A635A |
5A635A4E4E4E4E4E4E948C8CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE94 |
8C8C5A635A5A635A4E4E4E4E4E4E948C8CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFE948C8C5A635A5A635A4E4E4E4E4E4E948C8CFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE1818420000480000480000580000580000 |
5800005800005800004800004800004800004800005800005800005800005800 |
005800005800005800005800006D00006D00006D00006D00006D00006D000058 |
000058000058000048000048000033000033000033000033CACACAFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB7DBB96B8B38255A00315200 |
3152003152003152003152003152003152003152003152003152003152003152 |
00174A0000420800420800420800420800420800420800420800420800420800 |
42080042080042080C2B05004208004208B5C6B5D8EAD9FEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE538CFE10 |
5AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA004AF7004AE9004AE90052FAB5CEFFD9E7FEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFB5D7FF0573FF0072FF0173FF0173FF0173FF0173FF0173 |
FF0173FF0173FF0173FF0173FF0173FF0173FF0071FF107CFFF0F7FFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80B9FF0069FF |
0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173 |
FF0173FF006EFF3D95FFF5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
8686865A635A6E6E6E6E6E6E5A635A4E4E4E969696F7F7EFFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFE8686865A635A6E6E6E6E6E6E5A635A4E4E4E969696F7F7EFFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFE8686865A635A6E6E6E6E6E6E5A635A4E4E4E969696F7 |
F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB73739473739400104A0000 |
4800005800006D00006D00006D00005800005800005800005800004800004800 |
005800005800005800005800005800005800005800006D00006D00006D00006D |
00006D00006D00006D0000580000580000580000580000480000480000330000 |
3300003358587AADADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECEDED6 |
0084000084000084003152003152003152003152003152003152003152003152 |
00315200315200315200315200174A0000420800420800420800420800420800 |
42080042080042080042080042080042080042080C2B05004208004208004208 |
638C65FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFED9E7FE266AFE266AFE266AFE0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9004AE900 |
52FA0052FA689AFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBF5FF1C89FF0077FF017BFF017B |
FF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF00 |
79FF1083FFF0F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFF80BDFF0072FF017BFF017BFF017BFF017BFF017BFF017BFF017B |
FF017BFF017BFF017BFF017BFF017BFF017BFF0076FF92C7FFFCFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE6E6E6E8686868686866E6E6E6E6E6E6E6E6E5A635A5A635AA8A8A8F7F7 |
EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFE6E6E6E8686868686866E6E6E6E6E6E6E6E6E5A635A5A635A |
A8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E8686868686866E6E6E6E6E6E6E6E6E5A |
635A5A635AA8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB5858 |
7A00003300003300004800005800006D00006D00006D00006D00006D00005800 |
005800005800004800004800005800005800006D00005800005800005800006D |
00006D00006D00006D00006D00006D00006D0000580000580000580000580000 |
5800004800004800004800003300003300003358587ADADADBFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE75AF7442A542008400008400008400087401255A003152003152 |
00315200315200315200315200315200315200315200315200244A00244A0000 |
42080042080042080042080042080042080042080042080042080042080C2B05 |
0042080042080042080042081853214A7B52D8EAD9FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE8CB5FF5A94FF266AFE266AFE266AFE1663FE105AFE |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
4AE9004AE9004AE9004AF70052FA0052FA1663FE4384FED9E7FEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83C2 |
FF007BFF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF01 |
83FF0183FF0183FF0183FF0081FF108AFFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C1FF0079FF0183FF0183FF0183 |
FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF00 |
81FF0483FFCEE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEEDEDED7B847B948C8C6E6E6E7B847B7B847B7B847B5A635A5A63 |
5A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B948C8C6E6E6E7B847B7B847B7B847B |
5A635A5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B948C8C6E6E6E7B847B7B |
847B7B847B5A635A5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00 |
006D00006D00006D00005800005800005800005800005800005800006D00006D |
00005800005800006D00006D00005800006D00006D00006D0000580000580000 |
5800005800005800005800005800005800004800004800004800004800004800 |
0048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFED8EAD92E962E0084000084000084000084 |
00008400087401255A0031520031520031520031520031520031520031520031 |
5200315200315200315200004208004208004208004208004208004208004208 |
0042080042080C2B050C2B05004208004208004208004208004208004208ADC6 |
B5EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FCD9E7FE538CFE266AFE266AFE |
266AFE266AFE266AFE1663FE105AFE0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA004AE9004AE90052FA0052FA0052FA0052FA0052FA |
0052FAA9C6FFEAEEFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEF7F7EFCACACA7B847B7B847B0E0F0E0E0F0E0E0F0E |
0E0F0E0E0F0E1018212118212118212118212118210E0F0E0E0F0E0E0F0E0E0F |
0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E |
0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E6E6E6EB5ADADFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFE4F2FF1D96FF0088FF018AFF018AFF018AFF018AFF018AFF01 |
8AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF0088FF1091FFF0F8FF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C5 |
FF0082FF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF01 |
8AFF018AFF018AFF018AFF018AFF0085FF59B2FFFDFEFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEEDEDED969696948C8C6E6E6E7B847B7B847B7B84 |
7B8686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED969696948C8C6E6E6E7B847B |
7B847B7B847B8686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED969696948C8C6E |
6E6E7B847B7B847B7B847B8686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD29295200004800005800005800005800 |
006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D |
00006D00006D00006D00006D00005800005800006D00006D0000580000580000 |
6D00006D00005800005800004800004800004800005800005800005800005800 |
0058000058000058000058000058000048292952292952757489FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA7D6AA0084000084 |
0000840000840000840000840000840000840000840031520031520031520031 |
5200315200315200315200315200315200315200315200004208004208004208 |
0042080042080042080042080042080042080C2B050C2B050042080042080042 |
08004208004208004208004208397342FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBDD6FF |
266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AE9004AE90052FA |
0052FA0052FA0052FA0052FA0052FA0052FA3377FEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEEDEDEDDADADB6E6E6E6E6E6E4E4E4E0E0F0E0E0F0E0E0F0E |
1018212118212118213030304239424239424239424239424239424239423030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030211821211821211821211821211821 |
2118210E0F0E303030B5ADADF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFEFF60BBFF008DFF0192FF0191FF01 |
91FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF |
0191FF008FFF1098FFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFF80C9FF008AFF0191FF0191FF0191FF0191FF0191FF01 |
91FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0090FF0792FF |
D4EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696966E6E6E7B84 |
7B7B847B8686868686868686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB969696 |
6E6E6E7B847B7B847B8686868686868686866E6E6E5A635A5A635AB5ADADEDED |
EDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDA |
DADB9696966E6E6E7B847B7B847B8686868686868686866E6E6E5A635A5A635A |
B5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300 |
004800005800005800005800006D00006D00006D00005800005800006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D0000580000580000 |
6D00006D00005800005800005800005800005800005800004800004800004800 |
0058000058000058000058000058000058000058000058000058000048000033 |
00003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FE75AF7442A54200840000840000840000840000840000840000840000840000 |
8400087401255A00315200315200315200315200315200315200315200315200 |
3152000042080042080042080042080042080042080042080042080C2B050042 |
08004208004208004208004208004208004208004208004208185321638C65CE |
DED6FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE8CB5FF689AFF266AFE266AFE266AFE266AFE266AFE266AFE266A |
FE266AFE266AFE1663FE105AFE0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7 |
004AE9004AE9004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA1663 |
FE689AFFCADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEF7F7EFEDEDED9696966E6E6E5A635A0E0F0E0E0F0E101821211821 |
3030303030304239424239424239424239424239424239424239424239424239 |
4242394242394230303042394230303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030302118210E0F0E423942B5ADADFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1F3FF05 |
99FF0097FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF |
0198FF0198FF0198FF0198FF0198FF0096FF109EFFF0F9FFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80CCFF0091FF0198FF01 |
98FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF |
0198FF0198FF0198FF0093FF79C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADA |
DB9696967B847B7B847B8686868686868686868686866E6E6E5A635A5A635AB5 |
ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEDADADB9696967B847B7B847B8686868686868686868686866E6E6E5A63 |
5A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEDADADB9696967B847B7B847B868686868686868686868686 |
6E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEB3B3CD00003300004800005800005800005800006D00006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D0000 |
6D00006D00006D00006D00006D00006D00005800005800005800005800005800 |
005800004800004800004800005800005800005800005800005800006D00006D |
00005800005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE2E962E00840000840000840000840000840000 |
8400008400008400008400008400008400087401315200315200315200315200 |
3152003152003152003152003152000042080042080042080042080042080042 |
080042080042080C2B0500420800420800420800420800420800420800420800 |
4208004208004208004208A5BAA7F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE427BFE266AFE266AFE266AFE266A |
FE266AFE266AFE266AFE266AFE266AFE266AFE266AFE1663FE0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA004AF7004AE9004AE90052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FAA9C6FFEFF7FCFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEEDEDEDDADADBA8A8A85A635A4239420E0F0E211821303030303030 |
4239424E4E4E4239424239424239424E4E4E4239424239424239424239424239 |
4242394242394242394242394242394242394242394242394242394230303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
303030301018210E0F0E5A635AA8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFA5DDFF009DFF019FFF019FFF019FFF019FFF019FFF019FFF |
019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF009DFF10A5 |
FFF0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFF80D0FF0098FF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF |
019FFF019FFF019FFF019FFF019FFF019FFF019FFF009DFF27ADFFF5FBFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEDADADB9696967B847B8686868686868686868686868686866E |
6E6E5A635A5A635AA8A8A8EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B8686868686868686868686 |
868686866E6E6E5A635A5A635AA8A8A8EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B868686868686 |
8686868686868686866E6E6E5A635A5A635AA8A8A8EDEDEDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD000033000048000058000058 |
00005800005800006D00006D00006D00006D00006D00005800005800006D0000 |
6D00006D00006D00006D00006D00005800006D00006D00006D00005800005800 |
0058000058000058000058000058000048000048000048000048000048000058 |
00005800006D00006D00006D00006D00005800004800004800003358587AFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE637A2D2D6B0900 |
8400008400008400008400008400008400008400008400008400008400008400 |
008400255A003152003152003152003152003152003152003152000042080042 |
080042080042080042080042080042080042080C2B0500420800420800420800 |
42080042080042080042080042080042080042080042080042082A542AFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE266A |
FE105AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE26 |
6AFE266AFE266AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9004AE90052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA26 |
6AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB423942211821303030423942423942 |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239424E4E4E4239424239 |
4242394242394242394242394242394242394242394242394242394242394242 |
3942423942303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
303030303030303030303030303030303030303030301018210E0F0E4239426E |
6E6EDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FCFF3BBAFF00A3FF01A5FF01A5FF |
01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5 |
FF01A5FF01A5FF00A3FF10ABFFF0FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFF80D3FF009FFF01A5FF01A5FF01A5FF01A5FF |
01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5 |
FF00A5FF04A5FFB2E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA86868686868686868686 |
8686868686857B7A6E6E6E5A635A5A635A5A635AEDEDEDFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA8686868686 |
86868686868686868686857B7A6E6E6E5A635A5A635A5A635AEDEDEDFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA |
868686868686868686868686868686857B7A6E6E6E5A635A5A635A5A635AEDED |
EDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD |
00003300004800005800005800005800005800006D00006D00006D00006D0000 |
6D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00006D000058000058000058000058000058000058000048000048000033 |
00003300004800004800004800005800006D00006D00006D00006D0000580000 |
4800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDA |
DECEA5AD84526B222D6B092D6B092D6B09087401008400008400008400008400 |
008400008400008400008400008400087401255A003152003152003152003152 |
0031520031520000420800420800420800420800420800420800420800420800 |
4208004208004208004208004208004208004208004208004208004208004208 |
004208004208085218779C7BCAD6C8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFECADBFE77A5FF105AFE105AFE1663FE1663FE1663FE266AFE266AFE26 |
6AFE266AFE266AFE266AFE266AFE266AFE266AFE1663FE105AFE0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004A |
E9004AE9004AE9004AF70052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA105AFE77A5FFCADBFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADB5B54E4E4E |
1018212118213030304239424239424E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239 |
4242394242394242394242394242394242394242394242394242394242394242 |
3942423942423942423942423942303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30303030302118210E0F0E0E0F0E1018216E6E6EDADADBFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBF3FF |
05ACFF00A9FF00AAFF00AAFF00AAFF00AAFF00AAFF00A7FF00A4FF00A4FF00A4 |
FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A3FF00AAFFEFFAFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77D2FF009EFF |
00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A5FF00AA |
FF00AAFF00AAFF00AAFF00AAFF00AAFF00A7FF75D1FFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDA |
DADBA8A8A88686864E4E4E4E4E4E5A635A857B7A5A635A5A635A5A635A33444A |
DE8484FF9494FF9494FF9494FF9494FF9494FF9494FF9494FFABABFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEDADADBA8A8A88686864E4E4E4E4E4E5A635A857B7A5A635A5A635A5A |
635A33444A8484B99292D19292D19292D19292D19292D19292D19292D1B3B3CD |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEDADADBA8A8A88686864E4E4E4E4E4E5A635A857B7A5A63 |
5A5A635A5A635A33444A84DEDE94F6F994F6F994F6F994F6F994F6F994F6F994 |
F6F9ABFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE9495A59495A56363840000330000580000580000580000580000580000 |
6D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800 |
005800006D00006D00006D00006D00006D00006D000058000058000058000058 |
00005800004800004800003300003300004800004800005800005800006D0000 |
6D00006D00006D0000580000580000480000483131639495A5FEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEAABD9C4963104963104963104963104963102D6B09 |
0084000084000084000084000084000084000084000084000084000084000874 |
0131520031520031520031520031520031520000420800420800420800420800 |
42080042080C2B050C2B05004208004208004208004208004208004208004208 |
0042080042080042080042080042080042080042080042088CAD94FEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98B9FF0052FA0052FA0052FA0052FA00 |
52FA105AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE |
266AFE1663FE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA004AE9004AE90052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FF |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFECACACA5A635A5A635A1018213030304239423030302118213030302118 |
2121182142394242394242394242394242394242394242394242394242394242 |
3942423942423942423942423942423942423942303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30303030303030303030303030303030303030303030302118210E0F0E0E0F0E |
1018215A635ADADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFBFEBFF00B0FF00AFFF00AFFF00AFFF00AFFF00AFFF00AD |
FF40C3FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80 |
D6FF87D9FFF8FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFC0EBFF80D4FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7 |
FF80D7FF80D7FF78D4FF08B2FF00AFFF00AFFF00AFFF00AFFF00AFFF00AEFF47 |
C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBB9696964239420E0F0E101821525A63 |
5A635A5A635A5A635A052136B51808D81605D81605D81605D81605D81605D816 |
05D81605E74A39FFABABFFABABFFABABFFABABFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBB9696964239420E0F0E10 |
1821525A635A635A5A635A5A635A05213600006D212184212184212184212184 |
21218421218421218455499994ADCE94ADCE94ADCEB3B3CDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBB9696964239 |
420E0F0E101821525A635A635A5A635A5A635A05213600B1B100D8D800D8D800 |
D8D800D8D800D8D800D8D800D8D831E7E7ABFFFFABFFFFABFFFFABFFFFFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0000330000330000330000480000580000 |
5800005800005800005800006D00006D00006D00006D00006D00006D00005800 |
005800005800005800005800005800005800005800006D00006D00006D00006D |
0000580000580000580000580000580000580000480000480000480000480000 |
4800005800005800006D00006D00006D00006D00006D00005800004800004800 |
0048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA5BAA72A542A425A16 |
4963104963104963104963104963104963104963100084000084000084000084 |
00008400008400008400008400008400255A003152003152000C2B050E0F0E0E |
0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0C2B050C2B05004208004208004208 |
0042080042080042080042080042080042080042080042080042080042080042 |
080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA5BDFF26 |
6AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFE266AFE |
266AFE266AFE266AFE266AFE266AFE266AFE266AFE105AFE0052FA0052FA0529 |
6F0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0035AF004AE90052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEEDEDED9696964E4E4E4239425A635A5A635A4239424E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E42394242394242394230303021182121182110182110 |
1821303030303030303030423942423942423942423942423942423942423942 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030301018210E0F0E0E0F0E1018215A635AF7F7EFFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DE2FF00B4FF00B4FF00B4 |
FF00B4FF00B4FF00B4FF00AFFF89DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10B9FF00B3FF00B4FF00 |
B4FF00B4FF00B4FF00B3FF1ABDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB |
8689960017330017330017335A635A5A635A4E4E4E0C2849895A26A56B29A56B |
29A56B29A56B29A56B29A56B29A56B29B55221D81605D81605D81605DE2110FF |
ABABFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBB |
BBBBBBBBBB8689960017330017330017335A635A5A635A4E4E4E0C28494A358C |
5549995549995549995549995549995549995549994A358C0404850404850404 |
85212184B3B3CDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEDADADBBBBBBBBBBBBB8689960017330017330017335A635A5A635A4E4E4E0C |
28490C737306878706878706878706878706878706878706878706878700D8D8 |
00D8D800D8D800D8D8ABFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0000330000 |
4800004800004800005800005800005800005800005800006D00006D00006D00 |
006D00006D00006D000058000058000058000058000058000058000058000058 |
00006D00006D00006D00006D0000580000580000580000580000580000580000 |
4800004800004800004800004800005800005800006D00006D00006D00006D00 |
006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEAABD9C2A542A425A164963104963104963104963104963104963104963 |
1008740108740108740100840000840000840000840000840000840008740125 |
5A002431090E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E |
0E0F0E0C2B050042080042080042080042080042080042080042080042080042 |
080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFE98B9FF1663FE0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA1663FE1663FE1663FE266AFE266AFE266AFE266AFE266AFE266A |
FE1663FE105AFE002D9400185200173300173300173300173300173300173300 |
173305296F002D94002D940243CC0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFECACACA5A635A4E4E4E4E4E4E5A635A6E6E6E6E6E |
6E5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E423942423942423942303030211821211821211821101821211821 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030301018210E0F |
0E0E0F0E303030423942CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF84DDFF00B4FF00B8FF00B8FF00B8FF00B8FF00B8FF00B3FF80DBFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 |
FBFF0FBCFF00B7FF00B8FF00B8FF00B8FF00B8FF00B8FF0FBCFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEDADADBBBBBBBBBBBBB9495A52139520017330521364E4E4E4E4E4E0C28 |
49001733B79670DAB587DAB587DAB587DAB587D6AD7BC69C6BC69C6BB1865089 |
5A267B52188B51128B5112FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB9495A52139520017330521364E4E4E |
4E4E4E0C28490017335256B56F68D76F68D76F68D76F68D7847BEF9292D19292 |
D18484B952427B432A7A432A7A432A7A040485FEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB9495A521395200173305 |
21364E4E4E4E4E4E0C28490017334E8E8952A59C52A59C52A59C52A59C52A59C |
4E8E894E8E894E8E890687870C737306878706878702FFFFFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00 |
006D00006D00006D00006D00006D00006D00006D000058000058000058000058 |
00005800005800005800005800006D00006D00006D00006D0000580000580000 |
5800005800005800005800004800004800004800005800005800005800006D00 |
006D00006D00006D00006D00006D000058000048000048000048000033FEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEAABD9C4963104963104963104963104963 |
1049631049631049631049631049631049631049631000840000840000840000 |
84000084000084000084000874010E0F0E0E0F0E0C2B050C2B050C2B050C2B05 |
0C2B050C2B050C2B050E0F0E0E0F0E0E0F0E0C2B050042080042080042080042 |
080042080042080042080042080042080042080042080042080042088CAD94FE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98B9FF0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFE266A |
FE266AFE266AFE266AFE266AFE266AFE2965D60E0F0E0521360D468D0D468D0D |
468D0D468D0D468D0D468D0D468D0013280E0F0E0E0F0E002D940052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA9696964239424239425A635A6E6E |
6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424E4E4E423942423942 |
4239424239423030303030303030301018212118211018210E0F0E1018212118 |
2130303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030302118211018210E0F0E0E0F |
0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E101821303030969696FE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF3ECCFF00B9FF00BBFF00BBFF00BBFF00BBFF00 |
BBFF00B6FF80DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFF0FBFF0FBFFF00BAFF00BBFF00BBFF00BBFF00BBFF |
00BBFF0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDCACACACACACACACACA99A8AF2139 |
520521360013280017330C28490C2849C6C8D6EDEDEDEDEDEDEDEDEDEDEDEDC6 |
BDBD9C948C9C948C9C948C857B7A5242298B51128B5112FF0202FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDCACACACACACACACACA |
99A8AF2139520521360013280017330C28490C284905296F0404850404850404 |
850404855549999495A59495A59495A575748939314A432A7A432A7A040485FE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDCACACACA |
CACACACACA99A8AF2139520521360013280017330C28490C28497BC6D694F6F9 |
94F6F994F6F994F6F994ADCE8494948494948494947B847B2139520687870687 |
8702FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800 |
005800006D00006D00006D00006D00006D00006D00006D00006D00006D000058 |
0000580000580000580000480000480000580000580000580000580000580000 |
6D00006D00006D00006D00005800005800005800005800005800005800005800 |
005800005800006D00006D00006D00006D00006D00006D000058000058000048 |
000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBC6A65973 |
2849631044692532663944692549631059732859732859732859732844733632 |
66394963104963104963100874010084000084000C2B050E0F0E0C2B05214718 |
3266393266393266393266397BA98486BC8A86BC8A2A542A0C2B050E0F0E0C2B |
0500420800420800420800420800420800420800420800420800420800420800 |
42080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
98B9FF105AFE0052FA105AFE266AFE105AFE0052FA105AFE105AFE105AFE105A |
FE1663FE266AFE266AFE266AFE266AFE266AFE266AFE266AFE05296F00132805 |
296F0035AF0243CC0243CC0243CC0243CC1863EF216BEF216BEF0243CC002D94 |
0E0F0E002D940052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696965A635A4239425A63 |
5A5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4239424239424239424239424239424239424239424239424239424239 |
424239423030303030302118212118212118211018210E0F0E0E0F0E0E0F0E0E |
0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E |
0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E1018212118212118212118212118 |
2121182121182121182121182121182121182121182121182121182121182110 |
18210E0F0E0E0F0E0E0F0E211821FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23C6FF00BCFF00 |
BDFF00BDFF00BDFF00BDFF00BDFF00B8FF80DEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC1FF00BCFF |
00BDFF00BDFF00BDFF00BDFF00BDFF0FC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFEDEDEDEDEDEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDADADBCACA |
CACACACACACACACACACAADADBB2139520C28490C2849213952213952857B7A94 |
8C8C948C8C948C8C948C8CB79670CE9C5ACE9C5AB186508B51128B51128B5112 |
8B5112FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
DADADBCACACACACACACACACACACACAADADBB2139520C28490C28492139522139 |
527574898689968689968689968689968484B9847BEF847BEF6F68D7432A7A43 |
2A7A432A7A432A7A212184FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
F7F7EFEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
EDEDEDEDEDDADADBCACACACACACACACACACACACAADADBB2139520C28490C2849 |
2139522139527792858494948494948494948494944E8E89318C84318C84318C |
8406878706878706878706878702FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00 |
003300004800004800004800005800006D00006D00006D00006D00006D00006D |
0000580000580000580000580000480000480000480000480000480000480000 |
5800005800005800005800006D00006D00006D00006D00005800005800005800 |
005800005800005800005800005800006D00006D00006D00006D000058000058 |
000058000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFED1D4B69CA584597328526B18446925447336446925526B1859732859 |
7328597328597328547331447336526B184469254469252D6B09087401005800 |
0C2B050E0F0E1148162A542A397342779C7B779C7B779C7BB7DBB9ADDEB59CCE |
A55487563266390E0F0E0C2B0504461000420800420800420800420800420800 |
4208004208004208004208004208004208004208638C65ADC6B5FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEB5CEFF689AFF105AFE105AFE105AFE1663FE105AFE105A |
FE105AFE105AFE105AFE105AFE1663FE1663FE1663FE266AFE266AFE266AFE18 |
63EF0944B70018520017330D468D0944B70243CC5284E75284E75284E7689AFF |
538CFE266AFE125AED0243CC00104A0035AF004AE90052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA689AFFA9C6FFFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696963030 |
304E4E4E5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E |
6E6E6E6E6E6E6E6E5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239424239424239 |
4242394242394242394242394242394242394230303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30303030303030303030303030303030301018210E0F0E0E0F0EFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF14C4FF00BEFF00BEFF00BEFF00BEFF00BEFF00BEFF00B9FF80DFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFF0FBFF0FC2FF00BDFF00BEFF00BEFF00BEFF00BEFF00BEFF0FC2FFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE6E6E6E5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A |
5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E868686CACACACACACACACACACACACACACACA96969696969696 |
9696969696969696895A268B51128B51128B51128B51128B51128B51128B5112 |
B53910FF0202FF0202FF0202FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE6E6E6E5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A |
635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E868686CACACACACACACACACACACACACACACA9696 |
969696969696969696969696964A358C432A7A432A7A432A7A432A7A432A7A43 |
2A7A432A7A31217B040485040485040485040485FEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A5A635A5A635A5A635A5A635A5A63 |
5A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACACACACACACACACACACA |
CACACA9696969696969696969696969696960687870687870687870687870687 |
8706878706878706878700B1B102FFFF02FFFF02FFFF02FFFFFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D |
00006D00006D00006D0000580000580000580000580000480000480000330000 |
3300004800004800004800004800004800005800005800005800005800006D00 |
006D00006D00006D00005800005800005800005800005800006D00006D00006D |
00006D00006D0000580000580000580000580000580000480000480000480000 |
33FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE59732859732859732859732859732859 |
7328597328597328597328597328597328597328597328597328597328547331 |
397342597328425A160E0F0E0C2B05044610397342397342397342FEFEFEFEFE |
FEFEFEFEFEFEFEDEE9ED9CCEA59CCEA586BC8A11481611481611481600420800 |
4208004208004208004208004208004208004208004208004208004208004208 |
004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE105AFE105AFE105AFE105A |
FE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE10 |
5AFE1663FE266AFE105AFE0944B70E0F0E0018520D468D0243CC0243CC0243CC |
FEFEFEFEFEFEFEFEFEFEFEFEBDD6FF266AFE266AFE266AFE004AE9004AE9004A |
E90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E |
6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5A635A4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E42394242394242394242394242394242394242394230303042 |
3942303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
303030101821FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11C3FF00BEFF00BEFF00BEFF00BEFF |
00BEFF00BEFF00B9FF80DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC2FF00BDFF00BEFF00BEFF00BE |
FF00BEFF00BEFF0FC2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFE5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A |
5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACAADB5B596969696 |
9696969696948C8C2118212118210C28490C2849D81605FF0202FF0202FF0202 |
FF0202FF0202FF0202FF0202FF5252FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE5A635A5A635A5A635A5A635A5A635A5A635A5A |
635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACAADB5 |
B5969696969696969696948C8C2118212118210C28490C284904048504048504 |
04850404850404850404850404850404855256B5FEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE5A635A5A635A5A635A5A635A5A63 |
5A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686 |
CACACAADB5B5969696969696969696948C8C2118212118210C28490C284900DE |
E702FFFF02FFFF02FFFF02FFFF02FFFF02FFFF02FFFF52FFFFFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE000033000048000048 |
00004800005800006D00006D00006D00006D00006D0000580000580000580000 |
5800004800004800003300003300004800004800004800004800004800005800 |
005800005800005800006D00006D00006D00006D000058000058000058000058 |
00005800006D00006D00006D00006D00006D0000580000580000580000580000 |
58000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE59732859 |
7328597328597328597328597328597328597328597328597328597328597328 |
597328597328597328597328597328597328425A160E0F0E0C2B050C2B050446 |
10779C7BDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEECF7EC8CB5945487560C |
2B05114816114816004208004208004208004208004208004208004208004208 |
004208004208004208004208004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE10 |
5AFE105AFE105AFE105AFE105AFE105AFE1663FE105AFE0944B70E0F0E05296F |
002D940243CC6B94E7CADBFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FCCADBFE689A |
FF3773EF0035AF0243CC004AE90052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE3030304239425A635A5A635A5A |
635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E |
6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E42 |
3942423942303030423942303030423942303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030305A635AFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1CC4FF |
00BCFF00BDFF00BDFF00BDFF00BDFF00BDFF00B8FF80DEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC1 |
FF00BCFF00BDFF00BDFF00BDFF00BDFF00BDFF0FC1FFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9663238B51128B5112 |
655A565A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A63 |
5A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E86868696969696969696969696969696 |
96969696966E6E6E4E4E4EBBBBBBBBBBBBB5ADAD0E0F0E0E0F0EEDEDEDFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE2556930D |
468D0D468D4A5A6B5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A |
5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E8686869696969696969696 |
969696969696969696966E6E6E4E4E4EBBBBBBBBBBBBB5ADAD0E0F0E0E0F0EED |
EDEDFEFEFEEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FE0404850404850404854242635A635A5A635A5A635A5A635A5A635A5A635A5A |
635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686969696 |
9696969696969696969696969696966E6E6E4E4E4EBBBBBBBBBBBBB5ADAD0E0F |
0E0E0F0EEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE00003300004800004800004800005800006D00006D00006D00006D0000 |
6D00005800005800005800005800004800004800003300003300004800004800 |
004800004800005800005800005800005800005800006D00006D00006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D0000 |
58000058000058000058000058000048000048000048000033FEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFE597328597328637A2D637A2D637A2D637A2D637A2D637A2D |
637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D597328425A |
160E0F0E0E0F0E0C2B050042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFE8CAD8C5487560C2B05114816114816004208004208004208004208 |
004208004208004208004208004208004208004208004208004208004208FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE105AFE105AFE105AFE105AFE105AFE105AFE10 |
5AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE |
105AFE0944B70E0F0E05296F002D940243CC8CADE7FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFE77A5FF3773EF002D940243CC004AE90052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE948C8C4E4E4E2118213030304239424E4E4E4E4E4E5A635A5A635A6E6E6E |
6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E423942423942423942303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030302118210E0F0E868686FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF2FC7FF00B9FF00BBFF00BBFF00BBFF00BBFF00BBFF00B6 |
FF80DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFF0FBFF0FBFFF00BAFF00BBFF00BBFF00BBFF00BBFF00BBFF0F |
BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEF7EFEDA57B42A56B29895A267B52187B52187B52187B52187B52187B52 |
187B52187B52187B5218895A26B5ADAD0E0F0E0E0F0E21182110182110182110 |
18211018211018211018211018211018212118213030304239424E4E4EADB5B5 |
001328001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEEAEEFA4A73AF2963A5255693255693255693255693255693 |
255693255693255693255693255693255693B5ADAD0E0F0E0E0F0E2118211018 |
211018211018211018211018211018211018211018212118213030304239424E |
4E4EADB5B5001328001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFA0303EC0303EC0000AD04048504048504 |
0485040485040485040485040485040485040485212184B5ADAD0E0F0E0E0F0E |
2118211018211018211018211018211018211018211018211018212118213030 |
304239424E4E4EADB5B5001328001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0000330000480000480000480000580000 |
6D00006D00006D00006D00006D00005800005800005800005800004800004800 |
0048000048000033000033000048000058000058000058000058000058000058 |
00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D0000 |
6D00006D00006D00005800005800005800005800005800005800004800004800 |
0048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE597328637A2D6B8B386B8B38 |
6B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B |
386B8B386B8B38637A2D425A160E0F0E0E0F0E0C2B050042088CAD94FEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8CAD8C5487560C2B05114816114816 |
0042080042080042080042080042080042080042080042080042080042080042 |
08004208004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE105AFE1663FE26 |
6AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE |
266AFE266AFE266AFE266AFE105AFE0944B70E0F0E05296F002D940243CC8CAD |
E7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF3773EF002D9402 |
43CC004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EF9696964E4E4E303030 |
3030304239424E4E4E4E4E4E4E4E4E4E4E4E5A635A5A635A5A635A4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4239424239424239424239423030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030301018214E4E |
4E969696FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61D3FF00B4FF00B7FF00B7 |
FF00B7FF00B7FF00B7FF00B2FF80DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FBBFF00B6FF00B7FF00 |
B7FF00B7FF00B7FF00B7FF0FBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7EFEDEDE9DEB186509663238B51 |
128B51128B51128B51128B51128B51128B51128B51128B5112895A2630303021 |
18210E0F0E0E0F0E0E0F0E211821303030303030303030303030303030303030 |
4E4E4EADB5B5ADB5B5CACACAA8A8A8001328F7F7EFFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFADEE9ED5A84B5 |
2556932556930D468D0D468D0D468D0D468D0D468D0D468D0D468D2556932556 |
933030302118210E0F0E0E0F0E0E0F0E21182130303030303030303030303030 |
30303030304E4E4EADB5B5ADB5B5CACACAA8A8A8001328F7F7EFFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED8D8FFD8 |
D8FF3535EF0303EC0000AD040485040485040485040485040485040485040485 |
0404852121843030302118210E0F0E0E0F0E0E0F0E2118213030303030303030 |
303030303030303030304E4E4EADB5B5ADB5B5CACACAA8A8A8001328F7F7EFFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0000330000 |
4800004800004800005800006D00006D00006D00006D00006D00006D00005800 |
0058000058000058000048000048000048000048000048000048000058000058 |
00005800005800006D00006D00006D00006D00006D00006D0000580000580000 |
5800005800005800006D00006D00006D00006D00006D00005800005800005800 |
0058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
6B8B386B8B386B8B38769147769147769147769147769147769147849C4E8CAA |
578CAA5777A55A739C63739C63739C63739C63849C4E5A73420E0F0E0E0F0E0C |
2B05004208296331548756FEFEFEFEFEFEFEFEFEFEFEFED8EAD994B59C6B9873 |
5487560C2B051148161148160042080042080042080042080042080042080042 |
08004208004208004208004208004208004208004208FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFE1663FE1663FE266AFE2973FE2973FE2973FE2973FE2973FE2973FE |
3377FE3377FE3377FE3377FE2973FE2973FE2973FE2973FE266AFE295AB50E0F |
0E05296F002D940243CC2965D6527BDEFEFEFEFEFEFEFEFEFEFEFEFED9E7FE84 |
ADFF538CFE3773EF002D940243CC004AE90052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEEDEDED8686863030303030304239424239424E4E4E4E4E |
4E4E4E4E4E4E4E42394230303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030423942423942423942 |
4239424239424239424239424239424239424239424239424239424239424239 |
4230303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030302118212118 |
21303030868686C6BDBDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF9BE2FF00B1FF00B3FF00B3FF00B3FF00B3FF00B3FF00AEFF81DAFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 |
FBFF0FB8FF00B2FF00B3FF00B3FF00B3FF00B3FF00B3FF14B9FFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEEDE9DEE8D7C7B796709663239663239663239663239663238B51128B |
51128B51128B5112A8A8A8969696303030303030303030303030303030303030 |
3030304E4E4E5A635A5A635A7B847BCACACACACACACACACACACACA99A8AFFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEDEE9EDD6DEEF6B8CBD2556932556932556932556932556 |
930D468D0D468D0D468D255693A8A8A896969630303030303030303030303030 |
30303030303030304E4E4E5A635A5A635A7B847BCACACACACACACACACACACACA |
99A8AFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFED8D8FFC6C6FF4A4AEF0303EC0303EC0303EC |
0303EC0000D9040485040485040485040485A8A8A89696963030303030303030 |
303030303030303030303030304E4E4E5A635A5A635A7B847BCACACACACACACA |
CACACACACA99A8AFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00 |
006D00006D00006D00006D00006D00006D000058000058000048000058000058 |
00005800005800005800005800006D00006D00006D00006D00006D00006D0000 |
6D00006D00005800005800005800005800005800006D00006D00006D00006D00 |
006D00006D00006D00006D000058000058000048000048000048000033FEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFE849C4E7691476B8B38849C4E849C4E849C4E849C |
4E849C4E849C4E8CAA5792B26D92B26D92B26D75AF7475AF7475AF7475AF7492 |
B26D7691470E0F0E0C2B050C2B05004208004208004208D8EAD9EDEDEDEDEDED |
EDEDEDB7DBB963946B5487564574460C2B051148161148160042080042080042 |
080042080042080042080042080042080042080042080042080042081052182A |
542AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE3377FE3377FE266AFE3377FE3377FE |
3377FE3377FE3377FE3377FE427BFE4384FE4384FE3377FE3377FE3377FE3377 |
FE3377FE3377FE2965D600082505296F002D940944B70243CC0243CCD9E7FED9 |
E7FED9E7FED9E7FEB5CEFF4384FE3377FE2965D6002D940035AF004AE90052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA105AFE266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBB |
BB7B847B4239423030304239424239424E4E4E42394230303030303030303030 |
3030303030303030303030303030303030303030423942423942423942423942 |
4239424239424239424239424239424239424239424239424239423030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030301018211018211018211018210E0F0E0E0F |
0E0E0F0E0E0F0E4E4E4EBBBBBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFB0E6FF00AEFF00AEFF00AEFF00AEFF00AEFF00 |
AEFF00A8FF81D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFF1FBFF0FB3FF00ADFF00AEFF00AEFF00AEFF00AEFF |
00ADFF31BEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDE9DEE8D7C7E8D7C7E8 |
D7C7E8D7C7DAB587966323966323966323966323B18650BBBBBB969696423942 |
3030304E4E4E5A635A5A635A5A635A5A635A6E6E6E948C8CCACACACACACACACA |
CACACACACACACACACACADADADBB5ADADF7EFEDFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDEE9EDC6D6 |
E7C6D6E7C6D6E7C6D6E794ADCE2556932556932556932556935A84B5BBBBBB96 |
96964239423030304E4E4E5A635A5A635A5A635A5A635A6E6E6E948C8CCACACA |
CACACACACACACACACACACACACACACADADADBB5ADADF7EFEDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
D8D8FFB5B5FFB5B5FFB5B5FFB5B5FF7B7BF70000D90000D90000D90000D93535 |
EFBBBBBB9696964239423030304E4E4E5A635A5A635A5A635A5A635A6E6E6E94 |
8C8CCACACACACACACACACACACACACACACACACACADADADBB5ADADF7EFEDFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800 |
005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D |
00005800005800005800005800005800006D00006D00006D00006D00006D0000 |
6D00006D00006D00006D00005800005800005800005800005800005800005800 |
005800006D00006D00006D00006D00006D00006D00006D00006D000058000048 |
000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6849C |
4E849C4E849C4E92B26D92B26D8CAA5775AF7492B26D92B26D92B26D92B26D86 |
BC8AA5C674ADD08C9CCEA5A5C674A5C6749CCEA53030300E0F0E0C2B05004208 |
00420800420818532139734239734245744663946B2147180C2B050E0F0E0C2B |
0500420800420800420800420800420800420800420800420800420800420800 |
42080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
A9C6FF3377FE3377FE2973FE266AFE266AFE266AFE3377FE427BFE4384FE4384 |
FE4384FE4384FE4384FE538CFE689AFF689AFF5A94FF2973FE0C28490E0F0E0D |
468D0035AF0243CC0243CC0243CC0243CC0243CC125AED4384FE0944B705296F |
0E0F0E002D940052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB7B847B42394230303030 |
3030303030303030423942423942423942423942423942423942423942423942 |
4E4E4E4239424239424239424239424239424239424239424239424239424239 |
4242394230303042394230303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030302118211018211018211018210E0F0E0E0F0E0E0F0E0E0F0E1018211018 |
211018213030301018210E0F0E868686BBBBBBFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0EFFF02A9FF00 |
A8FF00A9FF00A9FF00A9FF00A9FF00A7FF24B4FF48C0FF48C0FF48C0FF48C0FF |
48C0FF48C0FF48C0FF48C0FF48C0FF48BFFF52C4FFF4FCFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4E0FF48BCFF48C0FF48 |
C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF43BFFF04AAFF00A8FF |
00A9FF00A9FF00A9FF00A9FF00A6FF63CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7EFEDD1D4B6D1D4B6D1D4B6D1D4B6 |
D1D4B6BBBBBBBBBBBB9696965A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E |
6E948C8CBBBBBBDADADBCACACACACACACACACACACACACACACAADB5B5DADADBF7 |
F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFAB6C8DAB6C8DAB6 |
C8DAB6C8DAB6C8DABBBBBBBBBBBB9696965A635A6E6E6E6E6E6E6E6E6E6E6E6E |
6E6E6E6E6E6E948C8CBBBBBBDADADBCACACACACACACACACACACACACACACAADB5 |
B5DADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFAA5A5 |
FFA5A5FFA5A5FFA5A5FFA5A5FFBBBBBBBBBBBB9696965A635A6E6E6E6E6E6E6E |
6E6E6E6E6E6E6E6E6E6E6E948C8CBBBBBBDADADBCACACACACACACACACACACACA |
CACACAADB5B5DADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00 |
003300004800004800004800005800006D00006D00006D00006D00006D00006D |
00006D00006D00006D00006D00005800005800005800005800005800006D0000 |
6D00006D00005800005800006D00006D00005800005800005800005800004800 |
004800004800004800004800005800005800005800006D00006D00006D00006D |
00006D00006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFED1D4B6849C4E77A55A8CAA5792B26D92B26D92B26D92B26D92 |
B26D95BD8492B26DA5BD77A5BD7798CA94ADD08CADD08CADD08C98CA94ADD08C |
739C635667350E0F0E0C2B050C2B050C2B050C2B052147182147182147182A54 |
2A0C2B050E0F0E0E0F0E0C2B0500420800420800420800420800420800420800 |
42080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEA9C6FF3377FE3377FE2973FE266AFE266AFE266A |
FE266AFE3377FE4384FE4384FE4384FE4384FE5A94FF538CFE4384FE689AFF68 |
9AFF538CFE4A73AF25569300173305296F0035AF0035AF0035AF0035AF0035AF |
0944B7295AB50018520017330E0F0E002D940052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEBBBBBB7B847B3030300E0F0E423942423942423942423942 |
4239424239424239424239424239424239424239424239424239424239424239 |
4242394242394242394242394242394242394230303030303030303030303030 |
3030303030303030303030303030303030303030303030211821101821101821 |
1018210E0F0E0E0F0E0E0F0E0E0F0E1018211018211018212118213030303030 |
303030303030303030303030302118213030304E4E4ECACACAFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFEEF9FF1AABFF00A0FF00A2FF00A2FF00A2FF00A2FF00A2FF00A0FF |
009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009CFF04A4 |
FFEFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFF7ACFFF0097FF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF |
009EFF009EFF00A1FF00A2FF00A2FF00A2FF00A2FF00A2FF02A0FF94D9FFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDBBBBBBA8A8A87B847B6E6E |
6EA8A8A8CACACACACACA9696966E6E6E948C8CB5ADADCACACACACACACACACACA |
CACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDBBBBBBA8A8A8 |
7B847B6E6E6EA8A8A8CACACACACACA9696966E6E6E948C8CB5ADADCACACACACA |
CACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDBB |
BBBBA8A8A87B847B6E6E6EA8A8A8CACACACACACA9696966E6E6E948C8CB5ADAD |
CACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE00003300003300003300004800005800006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D0000580000580000 |
5800005800005800006D00006D00006D00005800005800006D00006D00005800 |
0058000058000058000048000048000048000048000048000058000058000058 |
00006D00006D00006D00006D00006D00006D0000580000480000480000480000 |
33FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6849C4E75AF7475AF7492 |
B26D92B26D92B26D92B26D95BD8486BC8AA5C674A5C674A5C6749CCEA5ADD08C |
ADD08C9CCEA598CA94A5C674A5C67492B26D0E0F0E0E0F0E0C2B050C2B050C2B |
050C2B050C2B050C2B050C2B050E0F0E0E0F0E0E0F0E0C2B0500420800420800 |
4208004208004208004208004208004208004208004208004208004208004208 |
8CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9C6FF3377FE3377 |
FE2973FE266AFE266AFE266AFE266AFE3377FE3377FE4384FE4384FE4384FE68 |
9AFF538CFE3377FE5A94FF689AFF689AFF689AFF5A84DE0E0F0E001852002D94 |
002D94002D94002D94002D94002D94002D940008250E0F0E0E0F0E002D940052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB2118210E0F0E |
0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F |
0E0E0F0E10182110182110182110182110182110182110182110182110182110 |
18211018211018211018211018211018211018210E0F0E0E0F0E0E0F0E0E0F0E |
0E0F0E1018211018211018212118213030303030303030303030303030303030 |
303030303030303030303030303030303030301018214E4E4E948C8CEDEDEDFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFEFF74C9FF0099FF009BFF009CFF |
009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009C |
FF009CFF009CFF009AFF0FA1FFF0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFF80CEFF0095FF009CFF009CFF009CFF009CFF |
009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009C |
FF009BFF0FA1FFD8F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEEDEDEDDADADBCACACABBBBBBEDEDEDFEFEFEFEFEFEDADADB9696965A635A6E |
6E6E969696A8A8A8CACACACACACACACACACACACACACACACACACADADADBDADADB |
F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEEDEDEDDADADBCACACABBBBBBEDEDEDFEFEFEFEFEFEDADADB9696 |
965A635A6E6E6E969696A8A8A8CACACACACACACACACACACACACACACACACACADA |
DADBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEEDEDEDDADADBCACACABBBBBBEDEDEDFEFEFEFEFEFE |
DADADB9696965A635A6E6E6E969696A8A8A8CACACACACACACACACACACACACACA |
CACACACADADADBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9495A59495A5636384 |
00003300005800005800006D00006D00006D00006D00006D00006D00006D0000 |
6D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00006D00006D000058000058000058000058000048000048000048000048 |
00004800005800005800005800006D00006D00006D00006D00006D0000580000 |
580000480000483131639495A5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1 |
D4B692B26D92B26D92B26D86BC8AA5BD77A5C674A5C674A5C674A5C6749CCEA5 |
ADD08CADD08CADD08CADD08C9CCEA5A5C674A5BD7786BC8A92B26D92B26D86BC |
8A3266390E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0C2B0500420831 |
5200315200315200004208004208004208004208004208004208004208004208 |
0042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFE98B9FF266AFE266AFE266AFE427BFE3377FE2973FE2973FE2973FE29 |
73FE2973FE2973FE2973FE2973FE4384FE689AFF4384FE4384FE4384FE4384FE |
4384FE427BFE21397B0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0035 |
AF004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE0E0F0E1018213030304239423030302118212118212118212118212118 |
212118212118212118211018211018211018211018211018211018211018210E |
0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E101821101821101821211821211821 |
3030303030303030303030303030303030303030303030303030303030303030 |
303030303030303030303030303030303030303030302118210E0F0E4E4E4ECA |
CACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
C7E8FF0093FF0093FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094 |
FF0094FF0094FF0094FF0094FF0094FF0094FF0092FF0F9BFFF0F9FFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80CAFF008DFF |
0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094 |
FF0094FF0094FF0094FF0094FF0090FF4AB3FFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEDADADB9696969696964E4E4E5A635A969696CACACACACACACACACA |
CACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEDADADB9696969696964E4E4E5A635A969696CACACACA |
CACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696969696964E4E4E5A635A9696 |
96CACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800006D0000 |
6D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00006D00005800006D00006D00006D00006D000058000058000058000058 |
00004800003300003300004800004800004800004800005800005800006D0000 |
6D00006D00006D00005800004800004800003358587AFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEEDE9DEBDD6A595BD8495BD8495BD8495BD84ADD08C |
ADD08CADD08CA5C6749CCEA59CCEA5ADD08CADD08CADD08C98CA9495BD8495BD |
8495BD8492B26D92B26D95BD845A73423142182431092431092431092431090C |
2B05004208005800005800174A00244A00315200174A00004208004208004208 |
004208004208004208004208004208004208085218779C7BCAD6C8FEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE8CB5FF3377FE2973FE427BFE33 |
77FE2973FE2973FE3377FE4384FE2973FE2973FE2973FE4384FE538CFE689AFF |
4384FE4384FE4384FE4384FE4384FE4384FE295AB521397B21397B05296F0529 |
6F05296F05296F21397B2965D6125AED004AF70052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA105AFE77A5FFCADBFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBCAD6C85A635A5A635A1018213030 |
304239424239424E4E4E4E4E4E4E4E4E42394242394242394242394242394242 |
3942423942423942423942303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303021182130 |
3030948C8CDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFF4FAFF2EA0FF0087FF008BFF008BFF008BFF008B |
FF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF00 |
89FF0F92FFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFF80C5FF0083FF008BFF008BFF008BFF008BFF008BFF008BFF008B |
FF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF0288FFB4DDFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B4E4E4E |
423942969696A8A8A8CACACACACACACACACACACACACACACABBBBBBDADADBF7F7 |
EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B |
847B4E4E4E423942969696A8A8A8CACACACACACACACACACACACACACACABBBBBB |
DADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEEDEDED7B847B4E4E4E423942969696A8A8A8CACACACACACACACACACACACACA |
CACABBBBBBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD0000330000480000 |
5800005800005800006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00006D00006D00006D00006D00005800005800006D00006D00006D000058 |
0000580000580000480000480000480000330000330000480000480000480000 |
4800005800005800006D00006D00006D00006D00005800004800004800003358 |
587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98CA94 |
95BD84A5C67498CA949CCEA59CCEA5ADD08CADD08C9CCEA59CCEA59CCEA5A5C6 |
74A5C674A5C67486BC8A86BC8A92B26D92B26D92B26D92B26D849C4E6B8B3859 |
7328526B224963104963102D6B09008400008400087401004208244A00315200 |
315200174A000042080042080042080042080042080042080042080042082A54 |
2AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE4384FE3377FE427BFE3377FE2973FE2973FE538CFE689AFF2973FE2973FE |
2973FE689AFF689AFF689AFF4384FE4384FE4384FE4384FE4384FE4384FE3377 |
FE3377FE4384FE266AFE0052FA0052FA1663FE4384FE4384FE3377FE004AE900 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEDADADBCACACA5A635A30303021182130303042394242394242 |
3942423942423942423942423942423942423942423942423942423942303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30300E0F0E4E4E4E948C8CEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0E0FF0383 |
FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF00 |
83FF0083FF0083FF0083FF0081FF0F8BFFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C2FF007AFF0083FF0083FF0083 |
FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF00 |
84FF0080FF2998FFF9FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEEDEDED8686866E6E6E4239424E4E4E969696969696B5ADADBBBB |
BBCACACABBBBBBBBBBBBCACACAEDEDEDEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEEDEDED8686866E6E6E4239424E4E4E969696969696 |
B5ADADBBBBBBCACACABBBBBBBBBBBBCACACAEDEDEDEDEDEDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED8686866E6E6E4239424E4E4E96 |
9696969696B5ADADBBBBBBCACACABBBBBBBBBBBBCACACAEDEDEDEDEDEDFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEB3B3CD00003300004800005800005800005800006D00006D00006D00006D00 |
006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D |
00006D00006D00006D0000580000580000580000480000480000480000480000 |
4800004800004800005800005800005800006D00006D00006D00006D00006D00 |
005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEADD08CA5C674A5C67498CA949CCEA5ADD08CADD08CADD0 |
8C9CCEA598CA94A5C674A5C674A5C674A5C674A5C674A5BD7786BC8A92B26D8C |
AA57849C4E7691476B8B384963104963104963104963102D6B09008400008400 |
0084000084000058000042083152003152003152000042080042080042080042 |
080042080042080042082A542AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFE538CFE3377FE427BFE3377FE3377FE689AFF |
689AFF689AFF2973FE4384FE689AFF689AFF689AFF689AFF689AFF538CFE2973 |
FE3377FE4384FE3377FE3377FE3377FE105AFE0052FA0052FA0052FA1663FE43 |
84FE4384FE3377FE3377FE125AED004AE90052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDED |
EDED948C8C4E4E4E211821423942423942423942423942423942423942423942 |
4239424239424239424239423030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30302118211018212118216E6E6ECACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFBFDFF4CA4FF0078FF007DFF007DFF007DFF007DFF007DFF00 |
7DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007BFF0F85FFF0F7FF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80BE |
FF0073FF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF00 |
7DFF007DFF007DFF007DFF007CFF0079FF9BCCFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E6E6E |
6E6E6E6E4E4E4E6E6E6E969696969696B5ADADBBBBBBBBBBBBBBBBBBCACACAF7 |
F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
6E6E6E6E6E6E6E6E6E4E4E4E6E6E6E969696969696B5ADADBBBBBBBBBBBBBBBB |
BBCACACAF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFE6E6E6E6E6E6E6E6E6E4E4E4E6E6E6E969696969696B5ADADBBBBBB |
BBBBBBBBBBBBCACACAF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800 |
005800005800005800005800005800006D00006D00006D00006D00006D00006D |
00006D00006D00006D00006D00006D00006D00006D0000580000580000580000 |
4800004800004800004800004800004800004800005800005800005800006D00 |
006D00006D00006D00006D00005800004800003300003358587AFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADD08CADD08CA5C67498CA |
949CCEA5ADD08CADD08CADD08C98CA94ADD08CA5C674A5C674A5BD77A5BD77A5 |
C674A5BD7786BC8A92B26D8CAA577691476B8B386B8B38446925446925496310 |
4963102D6B090084000084000084000084000058000042083152003152003152 |
00174A00004208004208004208004208004208457446779C7BFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE538CFE4384FE |
538CFE3377FE3377FE538CFE538CFE538CFE4384FE538CFE689AFF689AFF689A |
FF5A94FF689AFF5A94FF2973FE3377FE4384FE3377FE2973FE266AFE105AFE10 |
5AFE0052FA0052FA1663FE4384FE4384FE4384FE4384FE125AED004AE90052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA427BFE77A5FFFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA6E6E6E211821211821 |
4239424239424239424239424239424239424239424239424239423030304239 |
4230303030303030303030303030303030303030303010182110182110182110 |
18214239427B847B7B847B7B847B948C8CEDEDEDF7F7EFFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7E9FF0173FF0074FF00 |
75FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF |
0075FF0073FF0F7DFFF0F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFF80BAFF006BFF0075FF0075FF0075FF0075FF0075FF00 |
75FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0070FF5EA8FFF8FBFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A4239423030306E6E6E96 |
9696B5ADADADB5B5BBBBBBCACACAEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A4239423030 |
306E6E6E969696B5ADADADB5B5BBBBBBCACACAEDEDEDFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A |
4239423030306E6E6E969696B5ADADADB5B5BBBBBBCACACAEDEDEDFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD29295200 |
004800005800005800005800005800005800005800005800005800006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D0000 |
6D00006D00005800005800004800004800004800004800004800004800004800 |
005800005800006D00006D00006D00006D00006D000058000058000048292952 |
292952757489FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEA7D6AA9CCEA5ADD08C9CCEA59CCEA59CCEA59CCEA59CCEA5A5C674A5C674A5 |
C674A5C674A5BD7786BC8AA5BD77A5BD7786BC8A92B26D8CAA576B8B38637A2D |
5973283973424469254963104963102D6B090084000084000084000084000058 |
00004208315200315200315200315200244A00004208004208004208004208AD |
C6B5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE538CFE4384FE689AFF3377FE2973FE2973FE2973FE3377FE689A |
FF689AFF689AFF689AFF5A94FF4384FE689AFF5A94FF2973FE3377FE4384FE33 |
77FE266AFE105AFE266AFE1663FE0052FA0052FA1663FE4384FE4384FE4384FE |
4384FE125AED004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FAB5CEFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEF7F7EFCACACA4E4E4E1018211018211018211018211018211018 |
211018211018211018211018211018211018210E0F0E5A635A7B847B7B847B7B |
847BEDEDEDF7F7EFF7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF62A6FF0069FF006EFF006EFF006EFF006EFF006EFF006EFF006EFF |
006EFF006EFF006EFF006EFF006EFF006BFF0F77FFF0F6FFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80B7FF0064FF006EFF00 |
6EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF |
006CFF0772FFD9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE8686864E4E4E5A635A4E4E4E6E6E6EA8A8A8B5ADADB5ADADA8A8A8F7F7EF |
F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE8686864E4E4E5A635A4E4E4E6E6E6EA8A8A8B5ADADB5ADADA8 |
A8A8F7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFE8686864E4E4E5A635A4E4E4E6E6E6EA8A8A8B5AD |
ADB5ADADA8A8A8F7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE000033000048000048000048000058000058000058 |
0000580000580000580000580000580000580000580000580000580000580000 |
6D00006D00006D00006D00006D00006D00005800005800005800005800004800 |
004800004800005800005800005800006D00006D00006D00006D000058000058 |
000058000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFD8EAD99CCEA59CCEA59CCEA59CCEA59C |
CEA59CCEA5A5C674A5C674A5C67486BC8A86BC8A86BC8A86BC8A86BC8A92B26D |
849C4E7691476B8B38637A2D5973283973424469254963104963104963102D6B |
09087401008400008400008400087401004208244A0031520031520031520024 |
4A00004208326639D8EAD9F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFAA9C6FF3377FE3377FE2973 |
FE2973FE2973FE3377FE689AFF689AFF689AFF538CFE4384FE4384FE4384FE43 |
84FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA |
0052FA105AFE3377FE4384FE4384FE3377FE3377FE004AE90052FA0052FA0052 |
FA0052FA0052FA0052FA3377FED9E7FEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBF3FF277EFF0060FF0067FF0067FF |
0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0064FF0F70 |
FFF0F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFF80B3FF005CFF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF |
0067FF0067FF0067FF0066FF005EFF9BC3FFFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696964E4E4E4E4E4E |
655A56969696969696A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696964E |
4E4E4E4E4E655A56969696969696A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FE9696964E4E4E4E4E4E655A56969696969696A8A8A8A8A8A8FEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB58587A000033 |
0000330000480000580000580000580000580000580000580000580000580000 |
5800005800005800006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00005800005800005800005800005800005800005800006D00006D00006D |
00006D00005800004800004800003358587ADADADBFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEECF7ECB7 |
DBB9A7D6AA9CCEA59CCEA59CCEA59CCEA5A5C674A5C674A5C67486BC8A86BC8A |
86BC8A86BC8A86BC8A8CAA577691476B8B386B8B38637A2D5973283973424469 |
2549631049631049631049631008740100840000840000840000840000420817 |
4A00315200315200315200315200457446779C7BFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FED9E7FE689AFF3377FE2973FE2973FE2973FE3377FE689AFF689AFF689AFF43 |
84FE4384FE4384FE4384FE3377FE2973FE3377FE3377FE3377FE266AFE105AFE |
266AFE1663FE0052FA0052FA0052FA0052FA3377FE4384FE4384FE4384FE3377 |
FE004AE9004AF70052FA0052FA0052FA0052FA3377FE77A5FFFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
CDE0FF1F71FF005CFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005F |
FF005FFF005FFF005CFF106AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFF89B5FF0053FF005FFF005FFF005FFF005FFF |
005FFF005FFF005FFF005FFF005FFF005FFF005FFF0059FF5F9BFFFDFEFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEBBBBBB3030304E4E4EA8A8A8A8A8A8A8A8A8FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB3030304E4E4EA8A8A8A8A8A8 |
A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB3030304E4E4EA8 |
A8A8A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEADADBB73739473739400104A0000480000580000580000580000 |
5800005800005800005800006D00006D00006D00006D00006D00006D00006D00 |
006D00006D00006D00006D00006D00006D00006D00005800005800005800006D |
00006D00006D00006D00006D00005800004800004800004858587AADADBBFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEB7DBB99CCEA59CCEA59CCEA59CCEA5A5C674 |
A5C674A5C67486BC8A86BC8A86BC8A86BC8A86BC8A849C4E7691476B8B386B8B |
38637A2D59732839734244692549631049631049631049631008740100840000 |
8400008400008400004208174A00315200315200315200315200DADECEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE689AFF2973FE2973FE2973FE33 |
77FE689AFF689AFF689AFF4384FE4384FE4384FE4384FE3377FE2973FE3377FE |
3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA0052FA3377 |
FE4384FE4384FE4384FE3377FE004AE9004AF70052FA0052FA0052FA0052FACA |
DBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBDEFF0358FF0055FF0058FF0058FF0058 |
FF0058FF0058FF0058FF0058FF0058FF0058FF0056FF085DFF78A6FF80ABFF80 |
ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF4082FF0052FF |
0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0053 |
FF2E75FFF0F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE1818420000 |
4800004800004800004800004800004800005800005800006D00006D00006D00 |
006D00006D00006D00005800005800005800005800006D00006D00006D00006D |
00005800005800006D00006D00006D00006D00006D0000580000480000480000 |
33000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEECF7ECECF7EC |
ECF7ECBDD6A5A5C674A5C674A5BD7786BC8A86BC8A86BC8A92B26D92B26D8CAA |
57849C4E7691476B8B386B8B38637A2D59732839734244692549631049631049 |
63104963102D6B092D6B09008400008400008400087401005800044610315200 |
769147D1D4B6F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED9 |
E7FECADBFECADBFE84ADFF5A94FF689AFF5A94FF538CFE4384FE3377FE3377FE |
3377FE3377FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052 |
FA0052FA0052FA0052FA105AFE1663FE4384FE4384FE3377FE2973FE105AFE00 |
4AE90052FA4384FEBDD6FFEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFA0BF |
FF0453FF004EFF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF00 |
52FF0051FF0047FF0046FF0046FF0046FF0046FF0046FF0046FF0046FF0046FF |
0046FF0046FF004CFF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052 |
FF0052FF0051FF004CFF407DFFE5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE18184200004800004800004800004800004800004800005800 |
005800006D00006D00006D00006D00006D00006D000058000058000058000058 |
00006D00006D00006D00006D00005800005800006D00006D00006D00006D0000 |
6D000058000048000048000033000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6ADD08CA5C67495BD8486BC8A86BC |
8A95BD8492B26D92B26D8CAA57849C4E7691476B8B386B8B38637A2D59732839 |
73424469254963104963104963104963104963102D6B09008400008400008400 |
0084000058000042085667359CA584FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB5CEFF84ADFF689AFF538CFE |
4384FE4384FE3377FE2973FE2973FE2973FE2973FE3377FE3377FE3377FE266A |
FE105AFE266AFE1663FE0052FA0052FA0052FA0052FA0052FA105AFE4384FE43 |
84FE4384FE4384FE266AFE004AE93377FE84ADFFFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFC3D5FF1E5EFF0045FF004AFF004BFF004BFF00 |
4BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF |
004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004B |
FF004BFF004BFF004BFF004BFF0049FF0046FF5284FFE8F0FFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEC6C8D658587A00003300003300 |
004800004800004800005800005800005800006D00006D00006D00006D00006D |
00006D00006D00006D00005800006D00006D00006D00006D00006D00006D0000 |
5800006D00006D00006D00005800005800003358587ACACACACACACAEAEEFAFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEA5C67495BD8486BC8A86BC8A95BD8492B26D92B26D8CAA57849C4E7691476B |
8B386B8B38637A2D597328397342446925496310496310496310496310496310 |
2D6B09008400008400008400008400005800004208EFF7FCFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE689AFF538CFE4384FE4384FE3377FE2973FE2973FE2973FE2973 |
FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA00 |
52FA0052FA105AFE4384FE4384FE4384FE4384FE266AFE004AE9EFF7FCFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3D4FF1C |
57FF0042FF0044FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF |
0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045 |
FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0041FF0547FF6992FFE8 |
EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEADADBB58587A000033000033000048000048000048000048000058000058 |
00005800006D00006D00006D00006D00006D00006D0000580000580000580000 |
5800005800006D00005800004800005800005800005800005800004858587AAD |
ADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE95BD8486BC8A86BC8A86BC8A95BD8492B26D8C |
AA57849C4E7691476B8B386B8B386B8B38637A2D597328547331446925496310 |
4963104963104963104963104963102D6B090874010084000084000874010874 |
01ECF7ECFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FC538CFE4384FE4384FE4384FE3377 |
FE2973FE2973FE2973FE3377FE3377FE3377FE3377FE266AFE105AFE1663FE10 |
5AFE0052FA0052FA0052FA0052FA0052FA105AFE1663FE3377FE4384FE4384FE |
3377FE266AFEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFD6E1FF6188FF0641FF003BFF003DFF003FFF003FFF |
003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003F |
FF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003CFF00 |
37FF1C51FFA7BDFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB000033000033000048000048 |
0000480000480000480000480000480000580000580000580000580000580000 |
5800005800005800005800005800005800005800004800003300004800004800 |
0048000048000033DADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98CA9498CA9498 |
CA9486BC8A95BD8492B26D849C4E7691476B8B386B8B386B8B386B8B38637A2D |
597328597328526B224963104963104963104963104963104963104963100874 |
01008400008400008400008400D8EAD9ECF7ECFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE538C |
FE538CFE538CFE4384FE3377FE2973FE2973FE2973FE3377FE3377FE3377FE33 |
77FE266AFE105AFE105AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA2973FE4384FE4384FE4384FE4384FEEAEEFAEFF7FCFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFBECDFF |
4771FF083EFF0034FF0039FF0039FF003AFF003AFF003AFF003AFF003AFF003A |
FF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF00 |
39FF0037FF0035FF1347FF7291FFE1E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE8689960000330000330000330000330000480000480000480000 |
4800004800004800004800004800004800004800004800004800004800004800 |
0033000033000033000033000033292952FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFE92B26D92B26D75AF74849C4E849C4E849C4E |
7691476B8B386B8B38637A2D597328597328526B224963104963104963104963 |
1049631049631049631008740100840000840000840000840000840075AF74FE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE3377FE3377FE427BFE2973FE29 |
73FE2973FE3377FE3377FE3377FE266AFE105AFE105AFE105AFE0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA2973FE4384FE4384FE4384FE4384FE4384 |
FE8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFF7F9FFB9C8FF2C57FF0334FF0031FF0032FF0034 |
FF0034FF0035FF0035FF0035FF0035FF0035FF0035FF0035FF0035FF0035FF00 |
34FF0034FF0034FF0030FF0033FF0738FF6382FFDCE3FFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8689960000330000330000330000 |
3300003300003300004800004800004800004800004800004800004800004800 |
0048000048000048000048000033000033000033000033000033292952FEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6D1D4B6 |
CAD6C8D1D4B6BDD6A5BDD6A58CAA576B8B386B8B38637A2D597328597328526B |
2249631049631049631049631049631049631049631077A55A86BC8A86BC8A86 |
BC8A86BC8A86BC8AB7DBB9FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9 |
C6FFA9C6FFA9C6FFA5BDFF98B9FF98B9FF538CFE3377FE3377FE266AFE105AFE |
105AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA689AFFA9C6 |
FFA9C6FFA9C6FFA9C6FFA9C6FFCADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECF0 |
FFBDCAFF6D89FF214BFF0332FF0031FF0030FF0028FF002DFF002FFF0031FF00 |
30FF002EFF002AFF002CFF0132FF0031FF0735FF385DFFA3B4FFD9E1FFFAFBFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADAD |
BB58587A58587A58587A31315A00003300003300003300004800004800004800 |
004800004800004800004800004800004800004800004831316358587A58587A |
58587A58587A757489FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9CA5846B8B386B8B |
38637A2D597328597328526B2249631049631049631049631049631049631049 |
6310BBC6A6FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF |
3377FE3377FE266AFE105AFE105AFE105AFE0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FAA9C6FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBEEFFC6D1FFAFBDFF899FFF5B |
78FF375AFF254BFF113BFF1B44FF2A50FF4F6EFF6984FF99ABFFB7C4FFD5DDFF |
F4F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9495A500003300003300 |
0033000033000033000033000033000033000033000033000033000033000033 |
0000339495A5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00} |
OnMouseMove = DXDrawMouseMove |
end |
end |
object LivesEdit: TSpinEdit |
Left = 8 |
Top = 355 |
Width = 81 |
Height = 22 |
MaxValue = 0 |
MinValue = 0 |
TabOrder = 8 |
Value = 1 |
end |
object Enemy8: TRadioButton |
Left = 8 |
Top = 164 |
Width = 65 |
Height = 17 |
Caption = 'Medikit' |
TabOrder = 9 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
end |
object MainMenu: TMainMenu |
Left = 32 |
Top = 16 |
object Spiel: TMenuItem |
Caption = '&File' |
object Neu: TMenuItem |
Caption = '&New' |
ShortCut = 16462 |
OnClick = NeuClick |
end |
object N2: TMenuItem |
Caption = '-' |
end |
object Level: TMenuItem |
Caption = '&Load/Save...' |
ShortCut = 16463 |
OnClick = LevelClick |
end |
object AlleLeveldateienaktualisieren1: TMenuItem |
Caption = 'Rewrite all level files' |
Visible = False |
OnClick = AlleLeveldateienaktualisieren1Click |
end |
object Leveltesten1: TMenuItem |
Caption = 'Test level' |
OnClick = Leveltesten1Click |
end |
object N1: TMenuItem |
Caption = '-' |
end |
object Spielfelderweitern1: TMenuItem |
Caption = 'Level properties...' |
OnClick = Spielfelderweitern1Click |
end |
object Leer1: TMenuItem |
Caption = '-' |
end |
object Beenden: TMenuItem |
Caption = '&Exit' |
ShortCut = 32883 |
OnClick = BeendenClick |
end |
end |
object Hilfe: TMenuItem |
Caption = '&Help' |
object Hilfe1: TMenuItem |
Caption = 'General topics' |
GroupIndex = 1 |
Hint = 'Help\EN_General.md' |
OnClick = HilfeTopicClick |
end |
object WasgibtesNeues1: TMenuItem |
Caption = 'What'#39's new?' |
GroupIndex = 1 |
Hint = 'Help\EN_Changelog.md' |
OnClick = HilfeTopicClick |
end |
object N4: TMenuItem |
Caption = '-' |
GroupIndex = 1 |
end |
object AufUpdatesprfen1: TMenuItem |
Caption = 'Check for updates' |
GroupIndex = 1 |
OnClick = AufUpdatesprfen1Click |
end |
object N3: TMenuItem |
Caption = '-' |
GroupIndex = 1 |
end |
object Informationen: TMenuItem |
Caption = '&About...' |
GroupIndex = 1 |
OnClick = InformationenClick |
end |
end |
end |
end |
/ENU/LevOptions.dfm |
---|
0,0 → 1,128 |
object LevelForm: TLevelForm |
Left = 195 |
Top = 103 |
BorderStyle = bsDialog |
Caption = 'Level properties' |
ClientHeight = 251 |
ClientWidth = 384 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poMainFormCenter |
OnHide = FormHide |
OnShow = FormShow |
TextHeight = 13 |
object ElPopupButton1: TButton |
Left = 280 |
Top = 216 |
Width = 99 |
Height = 25 |
Caption = 'OK' |
Default = True |
TabOrder = 0 |
OnClick = ElPopupButton1Click |
end |
object ElPopupButton2: TButton |
Left = 8 |
Top = 216 |
Width = 99 |
Height = 25 |
Cancel = True |
Caption = 'Cancel' |
TabOrder = 1 |
OnClick = ElPopupButton2Click |
end |
object GroupBox1: TGroupBox |
Left = 8 |
Top = 8 |
Width = 369 |
Height = 193 |
Caption = 'Editor settings' |
TabOrder = 2 |
object Label1: TLabel |
Left = 16 |
Top = 32 |
Width = 106 |
Height = 13 |
Caption = 'Size of the map:' |
end |
object Label2: TLabel |
Left = 16 |
Top = 136 |
Width = 124 |
Height = 13 |
Caption = 'Internal level name:' |
end |
object Label3: TLabel |
Left = 16 |
Top = 168 |
Width = 57 |
Height = 13 |
Caption = 'Level author:' |
end |
object Panel1: TPanel |
Left = 16 |
Top = 56 |
Width = 329 |
Height = 57 |
Color = clInfoBk |
ParentBackground = False |
TabOrder = 0 |
object ElLabel1: TLabel |
Left = 8 |
Top = 8 |
Width = 55 |
Height = 13 |
Caption = 'Information:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
end |
object ElLabel2: TLabel |
Left = 80 |
Top = 10 |
Width = 228 |
Height = 39 |
Caption = 'The size if only relevant for the editor, not the game.' |
Color = clInfoBk |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentColor = False |
ParentFont = False |
end |
end |
object Groesse: TSpinEdit |
Left = 144 |
Top = 28 |
Width = 121 |
Height = 22 |
MaxValue = 65000 |
MinValue = 100 |
TabOrder = 1 |
Value = 1200 |
end |
object LevName: TEdit |
Left = 167 |
Top = 133 |
Width = 178 |
Height = 21 |
TabOrder = 2 |
end |
object LevAuthor: TEdit |
Left = 167 |
Top = 160 |
Width = 178 |
Height = 21 |
TabOrder = 3 |
end |
end |
end |
/ENU/LevSpeicherung.dfm |
---|
0,0 → 1,202 |
object SpeicherungForm: TSpeicherungForm |
Left = 281 |
Top = 153 |
BorderStyle = bsDialog |
Caption = 'Levels' |
ClientHeight = 424 |
ClientWidth = 447 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poMainFormCenter |
OnCreate = FormCreate |
OnHide = FormHide |
OnShow = FormShow |
TextHeight = 13 |
object Bevel1: TBevel |
Left = 8 |
Top = 56 |
Width = 433 |
Height = 2 |
Shape = bsBottomLine |
end |
object Label2: TLabel |
Left = 8 |
Top = 72 |
Width = 34 |
Height = 13 |
Caption = 'Levels:' |
end |
object Label3: TLabel |
Left = 8 |
Top = 336 |
Width = 67 |
Height = 13 |
Caption = 'Information:' |
end |
object Label1: TLabel |
Left = 8 |
Top = 20 |
Width = 55 |
Height = 13 |
Caption = 'Level name:' |
end |
object LadenBtn: TButton |
Left = 336 |
Top = 72 |
Width = 105 |
Height = 25 |
Caption = '&Load' |
Enabled = False |
TabOrder = 0 |
OnClick = LadenBtnClick |
end |
object LoeschenBtn: TButton |
Left = 336 |
Top = 104 |
Width = 105 |
Height = 25 |
Caption = '&Delete' |
Enabled = False |
TabOrder = 1 |
OnClick = LoeschenBtnClick |
end |
object AktualisierenBtn: TButton |
Left = 336 |
Top = 144 |
Width = 105 |
Height = 25 |
Caption = '&Refresh' |
TabOrder = 2 |
OnClick = DsFancyButton2Click |
end |
object SpeichernBtn: TButton |
Left = 336 |
Top = 16 |
Width = 105 |
Height = 25 |
Caption = '&Save' |
TabOrder = 3 |
OnClick = SpeichernBtnClick |
end |
object AbbrechenBtn: TButton |
Left = 336 |
Top = 391 |
Width = 105 |
Height = 25 |
Cancel = True |
Caption = '&Close' |
Default = True |
ModalResult = 1 |
TabOrder = 4 |
OnClick = AbbrechenBtnClick |
end |
object LevelListBox: TListBox |
Left = 112 |
Top = 72 |
Width = 201 |
Height = 249 |
ItemHeight = 13 |
TabOrder = 5 |
OnClick = LevelListBoxClick |
end |
object ElPanel1: TPanel |
Left = 112 |
Top = 336 |
Width = 201 |
Height = 80 |
BevelOuter = bvLowered |
Color = clWindow |
TabOrder = 6 |
object li3a: TLabel |
Left = 8 |
Top = 40 |
Width = 32 |
Height = 13 |
Caption = 'Size:' |
end |
object li1b: TLabel |
Left = 96 |
Top = 8 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
object li1a: TLabel |
Left = 8 |
Top = 8 |
Width = 47 |
Height = 13 |
Caption = 'Enemies:' |
end |
object li2b: TLabel |
Left = 96 |
Top = 24 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
object li2a: TLabel |
Left = 8 |
Top = 24 |
Width = 26 |
Height = 13 |
Caption = 'Boss:' |
end |
object li3b: TLabel |
Left = 96 |
Top = 40 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
object liu: TLabel |
Left = 8 |
Top = 8 |
Width = 135 |
Height = 13 |
Caption = 'Level cannot be read!' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clMaroon |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
Visible = False |
end |
object liw: TLabel |
Left = 8 |
Top = 8 |
Width = 125 |
Height = 13 |
Caption = 'Please choose a level file.' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clNavy |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
Visible = False |
end |
object li4: TLabel |
Left = 8 |
Top = 56 |
Width = 118 |
Height = 13 |
Caption = 'Name / Author unknown.' |
end |
end |
object LevelNumber: TSpinEdit |
Left = 112 |
Top = 16 |
Width = 201 |
Height = 22 |
MaxValue = 0 |
MinValue = 0 |
TabOrder = 7 |
Value = 0 |
end |
end |
/ENU/SpaceMission.dof |
---|
0,0 → 1,2 |
[Directories] |
OutputDir=..\..\SpaceMission |
/ENU/SpaceMission.dpr |
---|
0,0 → 1,24 |
// Do not edit. This file is machine generated by the Resource DLL Wizard. |
library SpaceMission; |
{ITE} {DFMFileType} {ComHilfe.dfm} |
{ITE} {DFMFileType} {ComInfo.dfm} |
{ITE} {DFMFileType} {GamCheat.dfm} |
{ITE} {DFMFileType} {GamMain.dfm} |
{ITE} {DFMFileType} {GamSpeicherung.dfm} |
{ITE} {DFMFileType} {GamSplash.dfm} |
{ITE} {RCFileType} {SpaceMission_DRC.rc} |
{$R 'ComHilfe.dfm' 'HilfeForm:TForm'} |
{$R 'ComInfo.dfm' 'InfoForm:TForm'} |
{$R 'GamCheat.dfm' 'CheatForm:TForm'} |
{$R 'GamMain.dfm' 'MainForm:TForm(DXForm)'} |
{$R 'GamSpeicherung.dfm' 'SpeicherungForm:TForm'} |
{$R 'GamSplash.dfm' 'SplashForm:TForm'} |
{$R 'SpaceMission_DRC.res' 'SpaceMission_DRC.rc'} |
{$E ENU} |
begin |
end. |
/ENU |
---|
Property changes: |
Added: svn:global-ignores |
+*.local |
/GamSplash.dfm |
---|
0,0 → 1,10055 |
object SplashForm: TSplashForm |
Left = 241 |
Top = 158 |
BorderIcons = [] |
BorderStyle = bsNone |
Caption = 'Bitte warten...' |
ClientHeight = 480 |
ClientWidth = 640 |
Color = clBlack |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poScreenCenter |
TextHeight = 13 |
object SplashImage: TImage |
Left = 0 |
Top = 0 |
Width = 640 |
Height = 480 |
AutoSize = True |
Picture.Data = { |
0954506E67496D61676589504E470D0A1A0A0000000D49484452000002800000 |
01E00802000000BAB34BB30000000970485973000004BB000004BB016E1F0EAE |
0000000467414D410000B18E7CFB51930000FFFF4944415478DAD4BD79B86D55 |
75A73DF739A4AD4AA51ACB5E5AE945AEA022229644B14220420C8140E8A2A0F4 |
207D4FE8EEA51301810B4A495D90D8017628A2C1520491468242A174A2D15499 |
EA53E94BEEDDDF8FFD3ADF8CB3F6D927A1EAFBBE27B5FE38CF3E7BAF35D79C63 |
8E39FA66D45A9B9B9BFBC7FFF81F8FC7E3FFF5BFFED7DFFCCDDFFCECCFFEECEA |
D5ABE7E7E7F3EFCFFFFCCF3F33B9FEE93FFDA77FFAA77FBAD65A6BFDE4273FC9 |
4FDB6FBFFD5D77DD95EF73431EFFEBBFFEEB356BD6FCE22FFEE25FFEE55FE69E |
7CFF0BBFF00B7FF5577FF5333FF333F9DC665C7963DE95017FEEE77E2E23ACBF |
FEFADFFBDEF7F27D9EE2D78C9C5FF9F08217BCE0BFFDB7FFC6ACF83573FEF33F |
FFF34C35BFE6EDBC313F650299C9FFFC9FFF33C332990C92EF734FEE644A1967 |
341AE559BECF6DACE29FFC937FF2677FF6670CCEC27367FE7267AEFCCB07BEC9 |
6D7FF1177F91FBF399E5F36BBECF64F27D66952FF337AFCB9D0157DE956F32B7 |
803AAFCEF78B0287F7E6C17CF01540DBB7E4D78C9071D659679D3FFEE33F66B6 |
9958D698FBF36FC09BDB02B17C6037014856CA372F7CE10BFFCB7FF92FA79E7A |
EAFBDFFFFEFFFEDFFF7B06CF46FFD7FFFA5F33AB8C909BFFD13FFA47D9F70C9B |
7F01547ECABFC02A40661A9B6CB2C91FFEE11F6651CF7BDEF33213A69157E45D |
792AF301DAB9FED93FFB67997F5ECDF8B9F26B469B8527793023BCF6B5AFBDEF |
BEFB32FFDC1C6800B78CEF6C337260CE7CB20A379711801EA0CEE73CF53FFEC7 |
FF6021DE36B89EFFFCE7FFC99FFC493E5C71C515871F7E78DDDFCC21180522E5 |
A5997CFE7DC94B5E92856786F9F7577EE557EEBDF75E0E54BE0996FED22FFD12 |
D3E6D94035FFFEF22FFF72EEC9AFF91EBC0D00F37D66951BB2967C030A019F7C |
00679C646ECB2B382F995BDE921BF26FFEB2EA7CC34AF35456CD39CDF79943DE |
9EEFF32B90C9BBCE3BEFBC33CE3823CFE60616029204BB7EF0831F0420391AC1 |
6A0E5A769F85CF4D2EC09E99671A192D9F39B69088DC09F4F8FBB297BD2C6739 |
DF07E5DEF9CE77DE79E79D193FF764F9E0E47FFC8FFF915767A8DC96BF995576 |
2A930450B9195CCD6879C58B5FFCE23FFAA33F5A7BEDB5F377B3CD367BF4D147 |
395F7930D0C88483C3793063B2F680250F6640A80A8785755D7EF9E5C71D775C |
1EE4D433CEB265CB3266A09DA7A0002C93C9F06086058CC004F807DA792A7F73 |
C3BFF817FF22B89A9B734FFECD3D5960A09AC1BFF9CD6FE65DF932DF00463036 |
9FF376095ABEF9E7FFFC9F6762B92D10086432BDFC9B07F38AFC9BDB58512E88 |
9E47C05390BFCC9CBFA053DE18E0641CE8C3BFFC97FF327B0D26640E50A1BF99 |
5C994006CF232C8761734FF0014ACB91E75D2C81D30A8DE5ED192D5FFED66FFD |
D60D37DC208DCAE433C88F7FFCE3FC9B0FF93EA4298BCA66FDE7FFFC9FC1F680 |
9D1371E491475E70C1051913220353C80D2F7AD18BDEF086377CFCE31FCF5A5C |
B2EFF5B0E7CE830E3AE8031FF840C891F48ABD96B4C2BFF85E26521715F40B26 |
3FFDF4D339C2DC9FF94024615B5248E700A8D95F0035CA54B297CC8C79409E18 |
D133CF2BD99E4C8B33900F793CA70882E2A1CD3D99741E07D08B12383726F704 |
F4F9BCF9E69B6731FFE93FFD2788544683A166913FFCE10F7D2A5726C962984F |
80987F33E76C55C66139A12F59FCA1871EFAE10F7F38BFE63372462696EDCCDF |
BC9A25C09503C4CC242FCD42B2EA0C9EB7672D3066F6B2E2311FF89C7771C219 |
012C01E1C02D773D8357529B09E7BDB3A4930C9547004EE60F7264B43C9E2583 |
949946702EA81CC2C1538BF2B07C9F71329FBC31EB42C8801ED543557707AA0D |
C9431282E7E591002484233B05F5C96855326017200AF93253CD411D4C29CB07 |
E6B90154992588E47539EA3BECB0C31D77DC114C6339797B0E6776396FCF5FD0 |
1DB4E603878D09B0907CFFD297BE344F65F21924742AA3650E4A33D3EF0DB664 |
5D7984456599AB56AD7AD7BBDE059BC9B31916390319828307C2F3DE7C13F042 |
B28124E211EBCDE0F91736C34BF353FE150F416F4EA580CABF6151795DA08A10 |
00AAE4C140C3A79843BE418E042C9588705B26EF2439CB6166FFE13FFC87DC10 |
592A6BCF97871D76D835D75C130CCFCDD9CDC82521114148E0ECA140C002CF91 |
18722EF2C6C02AD3CB07609579E6FB6C3D141FE865DAD911241E61C52A7243C6 |
47628368B0D87C50C2434F8056725A3326948EF3C580E06AA697C920B8303247 |
2377667519077C067F32ABC099A3C7E4A5939C62A84DC6C9B09E650842E82FA7 |
2027F4473FFAD180F4412D33C8BAEBAEFBE4934F42F406C41A5AE74F7CE01403 |
7F6602A0C0B76C4DA601E51CBC51A65BCF5AA69A0D62811CEA4083CDF211C46E |
F617C80414D9B2DC9957231E05141C074990FC06F8700AFC12C10EB0E4599084 |
85C0ECDB448D01A45954EECF3D6C41E6C38B44F5480CA160994FF62ED08E0007 |
936226428343C7E943CEF39864F0D34F3FFDFCF3CFCFF8192DD4D5B74F5345D5 |
3F9455D01EE87116F27D5E04F71DC09C412005CF72C0AC16411B792DDF56CD26 |
73CD390CA2E46588DB6866B92049014DEEA9080AD7E1B44F33605101FAC5FE31 |
69B4C9FC4541CC676ECE7CF8373FB1C2681BD088CCBC1E24363B13CB4F9912DF |
C03C90625497595D6EB8ECB2CB4E3EF9E42C04A2C06D1CB31C8CEF7FFFFBADAB |
3E88E76DC68518A1BC93CFC8ECB3F8CADF79212EC01E10849906E065E1D963F4 |
6364266D0F596F3E87768480224FB0416C4AF611BA005A4038180A8E8594005A |
0711AB9A78CC31C784D3C34278295B894016FA2523CF97882FFBEEBBEF55575D |
F5F297BF3C54263084A6A094ECB8E38ED17E98DB2C4081F18808AC9D9943BF32 |
B7B0673433BE84974C33E00033B7B5222D6532E79C73CE89279EB8E87BE18581 |
3962281B91F11159D4A137DC70C3C71F7F1C1CC608D426EA9132566012AE96B7 |
9F7AEAA979F6ACB3CECAE3D21AFEE64EC828F225F26BFE06F3590EC8CC9DBE1D |
0A853C94C751C1B901F603A064F09C380E3B6265669B19AAD043E54133842D86 |
82DA7A707891BBC35F7ECD1579779F7DF6F175600EBC1C0CACEA1197B6AB8C1C |
9AC824198D4738C2DE8F4E0C0FE6BD0E08116C13158AC308A1D47A71E185179E |
70C209DCCC4222514513CABFD9A9EDB7DFFE339FF90CBBC946B42E37B335F91E |
B2060BC9CC813FF8997F43349E78E2893CE84CBC946C20771936E0CD9DD572C6 |
7AABEA86A89D9B77DA69A72F7DE94B594B1EC9EB82CC2CBC025319C5DDA9DA42 |
EBAAB0670D9A5FE9156290E687AA6648BD4515E5AAE933DB1632609EF5F0E633 |
148CDD6140D100806407B3EAE0430E78969C330B1671F0F30AA4109931DB8415 |
8461397A4C29BFE62D39354C83455566C48AB454714C32F2061B6C1024C1E2A2 |
0D55711075AB4D04FA9D77DE390A3D26B13C8E18075584F208F3FA61C4B2E1A3 |
1C57860E14B20D5921CB0B2DCE0DD842031A2C3FAC1939948304B9E7F0284329 |
D0D5ED44AA523647A2848ED73D830A00DF238F3CF2E28B2F8EDC1452CEE39CC3 |
56C4795007E15AB46310CFB3F7E72D6CB6C24E8E0D26A94079D75D77FDD4A73E |
9507232BFDF8C73F96302D4AAF513195D1D85105B4016A2ED88082AC4B70EB6C |
D036DB6C73FFFDF77368350FBA46588567066B2DBA429804F661443644486437 |
268910E701C853C8C5C19B8C16BC8FEEF8D0430FE5D8836DF2DA2BAEB8229339 |
EDB4D3809E0603CD4A7969F62B2CAA52010EB9FF8630AD58B1E280030E980558 |
3FB3E9F99069E3BCC81A333774146C983260D5020779C52B5E11187EEE739FCB |
6E069E59726EAE947DF05E44CC2A652B17A3DB05A3F6DE7BEFA8C5194A1EB3DE |
7AEB3DFDF4D3CAFBB94796CF1966F92AAF08E081157B8165120E1AD29319227E |
E55F9C1A5B6FBDF5830F3E08C5E7ECE4D0B14C841B6C986AE7198D8554410AD2 |
C099E580A350B689BAA00548E327A68E6C7AA85B4097D13281BCB7720EF4CEBC |
2E3B820A92B7E4CE8D37DEF8D1471FAD8754BC8532A0B4E1D7901A5626548D87 |
FC5B656E1D559961B0E8631FFB58E69C79E6455938665276FFE1871FCE36651A |
2040E60FD9C9E3F91762EDBE64B1B901212CFF627B40C2639B9086D9D0DD77DF |
FDBAEBAED302C42145778463712EB078617709AEB6899EC0AF18CC733F980373 |
CD37471D7554E483E00F071C83369670250F84039528A1E4BF758FD4C0B83FFA |
6204058E5280F38E77BC63E5CA95412DCF9A5214D303386D22C8663E58206611 |
3A69FB8001E7D73C1E760807D16305628087C8E59870323D10DE7B20562AC10A |
315000A85F702F9BFEC8238F0C3C71F8745A97E47850F346C8510E329A64F66B |
B3CD367BECB1C790C0248F921A9C74192133DC76DB6DEFB9E79E2A46E41E2500 |
6C87EEACF6D4D149279D74D14517E5B160464E4E5013092BABCDDF5FFDD55FFD |
FDDFFF7DC11A75E1924B2EC9F74108ECB78BDA3C5B77913EA70BDD1A8756B03F |
AFC80AB34FD056C85F161C0A88F8CFE681E2596A40909FF254A6A485193492C8 |
625DC962435340D0B090F0F57CC60CC23620AB86EFE68DB8C3F317982CC18099 |
39EF5281A81618442AA6AD234DA5B92DB4714156EAFCB186715B451AFDB58C2F |
AF424F6D5DB168DDFDC3F6A3A24129320EE6C7FABA90A4FCCA082E0D6EADAF0B |
B52F53E538E91503CBF32CFBE237483CDC094D076E4B00168CAFDE1027093509 |
97223840FF8D1AB0589EA72EBDF4D2638F3D16FE94A5A1A9B39C591B0AEE3179 |
F85FFE664559428E287C3447264882BB1714CD693AE59453C2E9EFBAEB2EC53B |
CF39D41CDBBB1B11F8E39DC59600E7630BB04670D698466655CD0C7819C167CC |
B9D833105BB92D6826B3C90891628F38E208F9933C2F73CB2BA0A41599C552B5 |
8DBC6BABADB6FAD18F7E94C721E8F00F8DCFD5A901F9030DB04561B104B60120 |
762629571876485EB59A563557826E780AAB66AAF0B95674EE3A936CC4DBDEF6 |
B610B4EC94765AC5A320529E459AC1F987A1181D979940A3F246F0010D35F8BC |
FEFAEB47F10550820B36D026A20C50CDBBB081E381D6AF87D4A5B157568AB693 |
2F03E7FCCDB4F7D8638F7FFB6FFF6D8662CE838B01C17F4D08831BE4CDAD0B88 |
E28932016E2FF5287EF528A96EF2BDD10FC8F1D5D6ED516AC57E2BA97758BD8D |
BEA275CF63C0BBD75E7B5D7FFDF579DD8D37DE1879B775A91152C9923109E058 |
45DC54C44467D5046868823664F52583900C20C8CD7A4654D2C040F170101AD2 |
BAF13204E790430EC9FCC352A346E7B000ED6A9F78F66FEE0E343363E078DE79 |
E78527855EE7CBD6ADE7AADB482BEC81AEA959F4AB3D970B3E0A91955F029D68 |
A501E57EFBED1749107711180C498A04970386D4836982F82975442D69B84F94 |
D79879F03BE727BC366220B40CC508CB7C066103E49A6CEAF4853708D30A811E |
22873B34B008E9F3AFD6AA6A41929DA09E1A089007817F0D0D1077F5F86A36C7 |
D8E5D9D03EC9C89AEE7D0423369E6C28113497C74331F1DC20AA2BDE4E1FBC7A |
B159EE35D265205F892902841A0FE49E91F520E899E6B3DE148DB7E87FD32668 |
A6171296F7E6988540FFE5E49A3561CCB36E1933441D3418C4A511D3149A1896 |
896440E0558E55E5376EBDF673C3AFD84775773922568D1A63880E843A95C9E4 |
4E6C1B1E19B00546187E73FBEDB79F70C209E79E7B2ED6F2564272D85F5E8452 |
45F084267A8F150E1A90844899D0C79C0B1405095C6ECEAB31B967F0003037E7 |
7061A54741E7F431ECC0A77BC61967448F24E0433AE32E037011A92A8E794BE6 |
ACCEED42086B5AB1624548471E0FA7E7BD8161FE8D2E71F0C10783F04490E08A |
82172A3029EC6651599AD10608977A3D31C9E85C6026803123471A70151228C8 |
05EABBBBDFBAA00CD2F20D2181B921043D43711CC46D999966D2568CBDFC6B58 |
C0C004AD9BAC8A475831F52EB76EC5AC1AED85175E78F5D5570756A106795679 |
A80ABEADEBD9AECEB81FA4762C616E2EF44AEF64EBB671C7514963AA04D3B141 |
C83D441A824E21DDC18A8C8FA8A4819673A4B68390042E656BF239A81EB6929B |
33A0B7F9415AA4DD1E991EF3307E68BEDC65975DEEBDF75EF8B7024A5B689F18 |
E999685D56C572C8B221676D22C0E643040DD4D0488B59064B5D947E3D57DF67 |
CEDE59679D252BC2061E51FD81071EF8CC673EC397C4DD3937C3379C3637645F |
F3A5875CA32B086DF0973E80FC25A80715A475EB476491B3CF3EFB577EE557EE |
BFFFFE9CCF430F3DF4F2CB2F5F625D986D0108B14E0426640E79D7DA6BAF1DF9 |
06D4D40F67805F2B1A803B04B6551F4CE09FD1AADD0F320469E366281D0E48DD |
BD355C859F3C906ADB21A93FF8C10F5A09AE36C61B7104A04520BDF5D65B032E |
CFA483545A308D0F99C33AEBACF3F4D34F23A8E611CC7D9A07F42741CBE4B58E |
59654F0901CC385325869F43CBFC091221EC1CB183A3888A03BD18D0772F3460 |
0411F08A77716C2285844F649E608E4663B7C6385B9CDFAD5B35D0FBB7DB6EBB |
CF7EF6B346705451A62203BB867E9C499E7EFAE9D75E7B2DF676C84D94A1830E |
3A28930C5DD68AAB5F4D914B7D054F13D611C4054C64357301F14ECF0EA605C4 |
5079F3ACF3CE5FC082111898C3DBEAA173FBD4CE33ED2C04EA9F2FB12B54CF25 |
4C05B4D13E09056410681F2AAF8A0BFE23219C47020DB0379B98494ABBF378D6 |
ABAE9FC9C30F32324C3A68F0D4534F81EDC01CFA8E2809AB76BBA1600846A79D |
76DA0D37DC90C3654823E41E175B5E010E4894C1937CC85BF068B4EEB8818E57 |
572E87CE830F4A8BCC6C811B3AA0CC487B8440238B6FB1C5160F3FFC70EB1AD1 |
A221B4B93F4BCEFD481804C9CB60A63D6B0306CCE788C2F9D76082561CC3E046 |
B60941B646D1C3E73076E65F1DD206402137C3DDF3D4C9279F1CCEA27A908D26 |
E9007C80EE0D522108756283FC573D87B30391C9D961282CAFAC0B0355BE21AC |
3DF713A28F56C3EE40B4A1D8238805A61BE917E2307BCF4E67944019D4C99C0E |
3CF0C0CB2EBB6C8914A3E7CA80736C588F0619564B1A0C2C1654D349C332905E |
2522A038465AF646F8826458812055FEE4980C027A698EE30A9EE50068E71C5C |
7976D9B2650F3DF4100948D00208964630E917D1010AD735F87CD4C3AD8D4AAB |
BC073D3B1819B212420CC7AA5E4CA513D892EA828922D5F2836914FBD8BAEBAE |
9BBD0E82E645CC2D6FC1E9A2D787BF3BEEB8E397BEF4255FC154F314E47B09D7 |
4396BFCD36DB4424444CC9DC80439DBF669C2A026AF862738DE6E5B842C2182A |
A0CEF79936A0FED0873E946379D2492745FAF9D3C9152DF089279EF02C49E6A4 |
1198733D54FBEFBFFFAA55AB08BA811A467BCEDC5062500AC5BDBC347FA1D7C4 |
526836AF263BB90E9A1FB659D60299C88A30D46BFC4086F371D24220DC647605 |
F2679E7966C8CDEB5FFFFAAF7FFDEBDA7E8873C1BF801720335CBE7CF929A79C |
020C390ED0EE7A58AAE7156E04AE42E9C8418244E6713C883A65E122A4486415 |
E27FE519153182F9F99B3BD935439A5B918AAA56479C0B123631718248F784FA |
4AEB11EC0488C0118DC421FC0DB714F06C5DEB424CD744919B23A14687161A51 |
92C2DA1116B92DF3DF76DB6DEFB8E30E169B0161ED279C7042F445A66128893A |
9FC65E5F078DD690C6C952863034B215FDB22AB548C6F006C31ECDDEACF41906 |
2C21628608709A36A7C520A2F14331C21188F81DF530F556E2BC7C7051133466 |
57A0079263EA374647A3B1E967FC84E7A24D747A633E383E39E67BEFBDF79557 |
5E99B798BAA91428BED5A837235B515E3DA4352ECC43A167530242881CD3A8CE |
0E18CA565B6D158E0091E4B0F339F7434F9EB5B510B48D94B1D1461B3DFEF8E3 |
7AB031B5B90D30B06C7FD00E7AF7BCE73D6F3AC3E47FEF22E685F0961C45D47C |
A80CF20B272A6FCC22F3AF4A499B68C6597C08EB7BDFFBDE0B2EB8200422B711 |
40A18165DCF370327E663EEA59B96033308D44FC8637BC21E727DF44DFBDE69A |
6B324E2683A8AB9762D1F9873DE3CAFAC0073E90F396A7342D6417C9580DBEE6 |
6FE6902598ADC87C704BB7857A30549B88034D94A838885706DC67F97923A64E |
3C341953615CFD839C480E36278477D5C4B38C10EEBEEBAEBB46D9E218C0A25C |
A9AE771411D921B466167CE0D69B6CB249561DB0B71EEE07D1CCFCF32CE60A30 |
A1A64571DEF47013701E5419F76480E973B5E805220955081330CFE4F5F4ECBE |
FBEED12C0393DC137EF6B9CF7D0EF8E0E04401427B764CC82814C11C2D636579 |
7B24F1ABAEBA2ABA17DC3AE811048683624C0E1AE72D358846BA4CEC02FC0372 |
808F533AFE9297BC84509A4C32E3A353564B60EB218D596CDE4BB85C860D9C4D |
D6AF3C5E522BB961A5AF7EF5ABDFFDEE771F79E491049607E0A0109680B666AC |
79CD48936759FBEA67D65F7FFD40180247D21A111EF93E584ACEA5DE6B537A98 |
A4DB0AE411BBC116ED13F9297320D681C9871CE7C441B5B3BF279E78E245175D |
44B27BEB016BA6A86ACB852B33BD7C9343142D8D352A2823A2D52053D5F76C2B |
7330AA116A9BD9BEEB5DEF8AE41A1D9A097B3C5B8989231981C80C6DD706AF61 |
C4424CC100AE28A3D963B095E833A001AF809022A8A996311A22570E69B80024 |
97D35DE3193165999929A3527CA97E5C554FED58A392CF2919CF80001F88710F |
DE9CFC8491A696795043837182158664EFB7DF7E1FFDE84711445851CDEF1A48 |
065570315E27C0846703612D82BAAB89ED6ADDD2C9CC518D90E6F5D2229D2800 |
791E177CD0CB0552AA7968B0658A3F33B9CCA6AFFAD9FFF9A5E980971E72C821 |
37DF7C7318218EE7B0C9202274CA47C2273255182D1E6B4A5E104B456008F238 |
68849190250020D52CE188E77F34C9340DBDF0F0075132C2120C663CC93039E7 |
9C730077EECF84431643E010E76B18172EAB9A81FD73930B73310181F910A6FE |
477FF4476021A2622D09B2F1C61B07D5F252CC77E8D626A8048611C6EFBEFBEE |
D64DF7AD04D1543A1BA96BEBADB7BEE5965BF2C861871D76F9E5970313C358C0 |
10021F480325C71A3D0F1A1DA862EB9B15548C8709266D2D028B4B200ED7F973 |
D568886A73C62292ADC1EA004D818B2F6A95A9FA90592558AA897EC23E4CB599 |
8C938543F208D7C2B2A2C30C81409148330082CE200F84445B24F42C79830D36 |
88A0A6C50F5DD63C99BA46CC150E85C302524ECD0DF225F2D3ADB7DEBACB2EBB |
002EB45880A08A3F30DB181C04CC75EAD70B3CE7C405209979361DB008465407 |
9C6124EFCDB505FE45875A3DFE5B9517C736CC7B348986C5F485410BE990584B |
0A0C903D02FDA91A95F4AB2AEE96A0D1029F71326C568AD7A075414D132B1E10 |
F8817938DE96F375E699671276CAB926F8FC861B6EF8DDDFFD5D041A3C7166E6 |
C0E7B8B3C2C17A06F829DFF8C6378619E71B1465F6A2BA7220DF6C9FBE24B097 |
703922125458A13C66C30F4CC178139472F6DC73CF681AEE3BAB965058860224 |
94B38E17A639A1BDD4F09A56981CCB0127B1811BD907FEE3CFAEC2071AB08671 |
B042B11BDFBC9162E3529841475806C7245EC3CDAA303A8B018F7A602943B55E |
890133B2D27F4E44EEDC69A79D6EBBED364A85882AE6828A4BA256A5BA95F53E |
FBD702259AF50CEBAF91EE801210074CA1234F3FFDF49AD9859C9EEB6564CAE6 |
9B6F1EB4809DB0DACA74A1C8B243B60D413EEBCF2079103DBE927EA30A07FE27 |
D520BD98DAF4C8EA23EEDF74BD5672BAA7091684BB6649B622B5E4185F7AE9A5 |
418E6F7FFBDBF083952B571E7BECB1F98947E407AD3B0536DC70C3EF7CE73B03 |
750D7B234E11A85EF662CB2DB78C66F9DDEF7E979D0A041E7BECB1886979170A |
B45958507C0092C79151387E06E000D2903F13BB15E7B9A1860E2246645FD65D |
77DD880BB36432D00ED9991DB1864074A057BEF295997016EBFCF96C7D1983E6 |
98C09A5E096B871D76B8F3CE3B21E588178B7AAD463D3B1EB106AAC72A327314 |
29E383F2EFBEFBEEFBE52F7F39C425D48A7355BD98D5C7A6155464C3106DC91E |
AC8ECB972F3FFAE8A34DD372211C5D8CAEE8CD0621434D38C619872478236C73 |
C33EFBEC73DD75D7F95EC98469C435742E2FCA1232026E782B455053A9AEA832 |
60BE343223D320EC3CEB854BE5279CB5D47AFB9BBFFAEB096D1B8F261BCE16E7 |
9F3CF5A217BD28FF86BE0720CB2757604B629B416A91F9088918583531004C27 |
10B71E438B7C039270A791169C7A03B333CF134E38E18A2BAE80EB3348CD0D6D |
13D9026EC7A66B5AE4DF36D1A7C9C3AC414F242961388447B2B3016F5E4AD92F |
28AD66124C20992A36B64A945C6C5528735BA0946157AC5871F2C927B72E72A9 |
16633CAFDC77CD8C3A481639F0039BC55E6BE59217D4676B98B19F473DECB115 |
6355BDF01C67B48C8CE98E19C22FCDDBC47156C32988C9D25A86918C1C2409E3 |
A8479E12135069CEC01B6DE44A9BD2806B903FD6B52815018EB93978486BC02F |
989FC960EFC488AB857C5C426EEBB11AFC1D8D7A5A9579D6040848D106A113EA |
130A2F8B92BCF65CAE8C19792AAC77D4936A72CE830ABC9A2599B80D7DC15D27 |
EA9C7EFAE9514083A311EEAEBDF65A9EB23426533560159911EF3D528C099A10 |
5CB55582712C65374BC343F3769F349322656763A8DBD7BA66698E292151D238 |
3DD9F91B1D3792C4B8D7393276208B8D381FFEFAB5AF7D0DF61CD0F138322953 |
AA9F1523EA9C0D556D9DD5A19784389E7FFEF986FB425F347E20A5D680498412 |
230616850FDB81FFA61A6FD93B45EF4AEB9575AADBACEE4846C04760B82C310E |
D36FE7006059DA64934DC2DDC19C9AC765358C0A2B8568E23CD1DAA16B9E05AC |
555697C4F96498186E1AFC0239A54F3CF1843183C1B490BF68F0A141D929A316 |
20AC5AFF781DEE834C3B83FCD9E4625342CB22F7A89951EB8DDA3835773680CD |
9D8F3CF248C65CB56AD5FEFBEFEFBBC8529B562E813C36C05A1D2992C455575D |
45708A5AFB7892381B913193F9F18F7F4C0911E512B7D5F81AB02E83FFDEEFFD |
DE29A79CA2A9890DBDF8E28BC3604871D60C3E1D2B37EAD9CF2095E1F18ADA37 |
DF7CF36FFEE66FB685C5433817D364B19A6D2DC924B9E33366C2E38F3F3E9A31 |
4555A5CB9642C32599B5B3EA9AD085122CD9443DB2325A75781BF7E036A99562 |
8B22455BEF619B24B0E65F537507DA9E62013645B626142F6424B22FAA304321 |
60C180A71909474F1051C62420458485011BEE9B47A21E64C9063AA06360D2CB |
A6E4BDD5ED3AEE3541833F04CA49675A778DB3C57E537DF09690534E1D95BC67 |
B054F5639A01F3597348568AD50497259CDB00402EA2BA2C56011B5697AB8921 |
D378FBD3CFAA8383CA5B35EABA0667053AF90686349D7FED65F88F874D3783C9 |
30121727471459BE219D579A0B531CF7DAD1CA3E06D91BC890B760CFE4049A90 |
3A2B5DAA72B55632E104880743F7738D2630DE413F652564E35E16D1CC044407 |
D2528F39E698FC5AEBF550DB761058CE01D683327021E8CDC55308060328035F |
B1E0B97D2C4107393B05576825069E40212083E58799CFF742A6A6722A314026 |
8C181A006A51F8533245E36D801C9AB544D131AC32083773BDE0700D8A5E9401 |
B3465062F3CD370F175483372DB8C6AF99EBC923BA00D94A6EA87155B58E2087 |
107311BB40650675DF8F7EF4A3BFFDDBBFCDBE844653EB06134BB56456AD8E82 |
D23509182D01B7139174D9AFDCC9C111563AA13378086BA8096810F932039A38 |
60F107E9AC34F7AD6F7DEBDD77DF6DB55BC93DC5F6281E10A69B5547788D1096 |
B563214758A990912C8A39F91C021D061060E691503ADD1F482D54B5CB5B105B |
17D580EB9752835AAD101997B767BDF00F935B2ACE70706ADA09BB89FCE15923 |
53390CF8D8638F3DF3CC3357F7029C9C9A6C10D558ABAAB7DD76DB3DF0C003EF |
79CF7B2EB8E002CE20AE53069CAE47EB9460EA9900260142BE2D7B670566008E |
0C6D65F5B9527F789A5073641047A89A9971DEF296B7DC71C71D1487E071CBC5 |
48DFF040E5913C4EBA9DC972322ACC8AD9FDDD76DBED8B5FFCA2F13A3C15C844 |
CAA7365CC08866059942A6C73A8D1BD11D91E657EF3B265F134DABB5AC9A9DDB |
DFC58065931C732803152E11024CCACA54A18D180B390E6F7EF39BBFFDED6F67 |
7F234D56D3FD400C9ADEE59F462BE40845ACBBFAEAAB5FFFFAD7DF7EFBED84D8 |
E086613D180F11CC71CBA9F82F4A28818B4467E084AF9E33EE979C714ECE3BEF |
BC6C8F5656EE31D2D5A0CA0103D66065CD746DA74B306045549609128C4ADA43 |
46D86BAFBD3EF8C10F4E57079572CDF7FAE9D30C3873D874D34DA3751D72C821 |
2B57AEE44E92D22CAB44C2A2F64C32AC30B310905211A55A3034E4560E84D220 |
E25ACCC408D58173A1E6F256A1CAE2F595C7D4F9FB0AB6469DDB14A39A47380B |
FE188E4059A6A44B6CFA8228E33B47A4531468C5235B917EBEF7CF98BE564F2A |
38BEFCE52F7FF8E187F11F53E6C97417B1CB8CCF1AAE92F55A0D0A0F4240FD9A |
D7BCE62B5FF90AF281A13A9816C84D02D31013C12E90CA439E61F365A8FC5D77 |
DD950749FC0392E1DC9FFEF4A75D660624493D3F65266F7FFBDB3FF7B9CF5D79 |
E595071E7820561305444510DE48341927BA758953AF3F6C63342982C6DBB3AE |
D050B891557AF6D8638F1C8AFCFAA637BD2944A3C2DFD7D52020E43FBC21621D |
38A3A9D6C22FE843D5A730888B6EC58837D080C7BDE23F2242ADE95DD5A95908 |
E634AC870F0181F311E0C90DBBEEBA6BB6836252D98B830F3EF8FCF3CF3FEAA8 |
A3DEFFFEF7E368274F69DCD32BA2716699B0BAAAEF5AAA0C09AFDA8D2B913464 |
2994E4A69B6ECA9DE4D1629ED961871D2259662659728DE3199C3E721131B35B |
514B2B0B679CBA167AA3A1633C4BFC8A249D7DCC21426072A72C0496C3853BC9 |
E45DA853D0E3E8A38F0E3DD4C925C051543886AD274439F8C0992AC9D24E6638 |
91A4B275D1610913B4A369ABAB448F807F425F85A429FE41302AA53019932A35 |
C8B7D9D768BADE2F9238B80B3BB41EAC7ECA5A1861161E3B45E3631542311B66 |
55997A70C8242D761DE70D7BE02021F1E80AB55E4F7D7B15FC6BD400EAD412F3 |
D4D232EAD1FF3A0809B2A8B94373BD5709E7BCE6A7D79DF673B5B699C80FDF8D |
F643B52FFEF5D843FA03644BE37A08A75D08E31E408729128995FB4F3BEDB465 |
CB961D70C001D077806FF914D9AD622648039C9940B59C0B55968F05B29A9431 |
AF611FD320C1E1B7D2CDA2F047FA26DE87641EC8D6A2F7E7B6D0B8C30E3B6C20 |
6448E6A6C9749BCDFEB12985E9C266EC53C4699C2B45FBB407C2B7287F911D0C |
26B3A7084F997F284ED423C420C4A94A8207755B6187D00B8C01AD9B43A21A12 |
8287F6837D9BEAB898BCD8D075D75DF7473FFA919A6E2DCDA8DEE61E011FEB7E |
507482842290A422214FD16F4A88850787FBE2108174BCF7BDEF8DAC6C1E3641 |
DD8446CE2DAC2AC3BF9663B4930FE36025CE047203E782ED3EFDF4D383C91699 |
5F8201B3B49AEE6F693F5C03369BD29038502146A50474EBD932A8F2EC3E9168 |
B987B4BDF1C2387CF2C7484EF3278A9E12EBB7BAB7D6316D8F9D026212A25A4C |
431D0B5F29FB422C55EB8931E848E19A592CBCD33A71836017A210A88B805D1D |
AA6BFC69E69F2FF34DED60D6A60A82B69E604D59989D76DAE90B5FF8825CCD84 |
7E89860D30783683E77591DB6EB8E1068CF644B0134D8DBE5E5F270FAE7E7189 |
6D4D93B19EB167A12DAC49522B2B8C178B826E3D370C742240C43433425210A6 |
DB248C51DF04E448C5AFD662AA2F1A32608F1CDE780B08A00BC205CDCD37B670 |
BEB4F35BF4323E7075EFEE906316F119293B8F6FBEF9E6D1D9611E60AA89B95A |
4D89C518F5420D38C94C915E7C3D3DF4C31DD24B3FEB11F5C26A3F6913D93CD3 |
D6E00994D52AAAC153138D7BE9070F9532BE1800C19DEB858420FD1610370018 |
DCAD4B9E163BA8591A4933FF22B55403E9A8545E25A8523182E9A16A7B364C80 |
AB0120D0B8512F61C14F64696FB4D146193CA277AD7ECEBAC6BDEBD62CE00FD4 |
6E640E18CCA2F75761DCEA54793CD36056445AA987E1865862F75DB85B03391B |
588D06E2369810B04353289A81BA60F48D9C80AC3008969E6F4A9F562295EBEA |
ABAF3EFEF8E339719212CEA01390678C7B4D7576A12D0C77AF660CACBB148E37 |
6FAA4D145FEB4528E0DAD9CC38642DB7F3BDDE671E3FF1C4132FBCF042346964 |
88BA9B9A7FA52484D50C8A1ED80702F99EB28E6830F90BDC702A05BB34A80E84 |
D19AAC61241A63C2A830D552AAB01682ADC4D75D1EF752396091EAAF5535F213 |
F0D462818500F9838000B96CEB0CC91ABA524ED80CE157BA302544350F986315 |
C5FA965B6E41C6A57A3FE24BEBB6812DB6D8E291471EA9195C56F2119F6BD781 |
5AAF517516DE03176CBD634FC5FF56AC08E09BE6EBD6BD1E603EC67FCC1E4C29 |
50A2AC66486BFE329AEE278258E5F4FABCE1D0E35E48B9955871365A41413430 |
7AB4FA56ACCE3B8B01D7F2EC3AB6AC38B6BAD70AAC62A59D6FC01C4EEB9ADE07 |
61D423012B031AE806330953D08581A872102C210FBD75097D601998A66BB921 |
72CDAFFDDAAF5D7BEDB5C0B1C62084013FFAE8A3440F8D7AE564D906E21E2668 |
58383A22C5C64C739C26916A78C268E950ED2A4CF159E915B647928615EC0651 |
BE730B0BAB2E0A8750DE8C19199FE22C56C0A1681F223FA1A44009B29EDB36DC |
70C3806BD1F73A797DED1432B5961B7A2D5A54A0A7126319C5F95E8DD2A43A0A |
1851AEABD6516A45781CF5FA5C039BB3AD6F30774BFD07594FD357261C8DF6B8 |
E38E8BFCF7D4534FF125B1B58BDE4F3F54E550BF77DF65849CFF7CB974723022 |
9D0544E1078ADB55E21E95340FBBA000D236E1C1DC503B038642054AC71E7BEC |
25975CF2FEF7BFFFD0430F7DCD6B5EF3C0030FC8865B31F7E5D52F7AD18B2846 |
A6D36789B83F643EC5B8ECF5134F3C813D1FD305819A41BF1C99C8BE943FA35E |
1BBA3E15752EBAE822E327F01A2848298EF3464E65C6CC410E5EE193C67B820A |
4E8EAC1666A5CF5A0CC7363B2861266F58BA9CFCD74CA056A759F494554729E8 |
2A1EF20D9DB22C6984D304EDB096CF1CE82B6B2DEC13230DD18348B470B8C5C9 |
279F7CE9A5979A4C08EE81F66452E0B040A797CE60A59478027CFCCAB5633172 |
D86892BF2BFFABFDEF5AE78573BD8694D0D02F33EAF1FFC8C1024126CA981699 |
9203E137C160C068386294AA5B29CA38DFABE513D33EEE318FF05D3C3539E667 |
9C710686E50CB2E79E7BDE74D34D4AF9CC3F380C11A8C5E78DBAA81D44287654 |
0BCFA178CCF5DEF070AEFCBBCF3EFBE4C4D10E04AD008B7175837266D5A7E74B |
316D8E618DE1CD38AF7DED6B33E640111FF56A364E8657687AE457D246D8FD67 |
830058EAF465E89DA951AF7AD5ABEEBFFFFEF1A43312E95F4B54C2FABDDFFBBD |
33CF3C3353E1F8055861B4ECB10E6AEB4B308E65C618A1665EE318A3272EC092 |
BD0D4EA35412E0CEF5F2B3B39475CD8C1E724E322F3DFBECB38334C822D46AE0 |
48ACEE3D682BF35E74FCD18CFA70ECC421871CF28217BC206FC9D2F0C48B5573 |
A5BAF2A231145C62B9965B1979ED98FD0B936BAFBDF65AB56A1561BA8E2FAC9E |
F7BCE74597FDD6B7BE8594079950B36945FC1498F44D222365907F55214C5CEE |
2CFE676C0BE273E0F0E4934F2EADB3D64A4FEF7BDFFB38D8AD07FA711ED6EA1D |
9F96B0977074B1EEACE9DD4C2B820D2E746E5230716821A40328EC9C442F8F7A |
59C1CC21B2111962ADC41FD530997129C166DE4B6DFFE2C91F846DB7AEB499D2 |
3A2AAD47C06D1322F58BD7AB4DB8C5565B6DF5E0830F4AC8607B541538F2C823 |
0361D192DE000461C0BA880523091B2A8CB4570B0369C46A0B2B602C0A640B11 |
6B3984782D8142B52D582B2ADA6FFEE66FDE7CF3CDC8F750586D249879E67AF3 |
CDEA891BD82DABA9CF000B4C14642B91B687E1176AABB9AB4D24337BFEA00BAA |
C009847C38E2882322A2D5FA42BAE4B5084230DD626D2AB5180E42A4814874E1 |
AC1E905A166A50BB86A0B07CA3B9DB4A61D3677FADD2B31905A90A016A11D41B |
31A26850EAEEC20B2FA44127B5E70E3BECB0E5CB97C3E3CDAF81B2D5683EF7C2 |
FAB21C8DB57A333D1D2EA605B7DEA6BA461E108A38EA1523B415CF955ACDA4B7 |
28D380336F7CE31B3FFDE94F5706DC3A07F15CCF95BEF56A3B3282BF0D8A5A22 |
3CB58645E04E0F289FE97D2494B0167DDC9D638F835E37DC7043D08893902FAF |
B9E69A7DF7DD17FD92DC03A68BE1DA44B4DC19E8531B1268523E66D67B0731B1 |
AC730959C1485A4376572FACA01B2137B29B9A22C50E518E4188F16291997E26 |
D49E32F1044672443164A12E5476C88477D96597CF7FFEF3E79C73CEE9A79FFE |
E217BF98ECAC59F36F258BBA953A7FC674D8E5039E84C2C46951A8878E44B379 |
FAE9A79FE93DE3B425563EC1BEDBC48635662139E711B956AC58A15316DBE3D2 |
26E88C69896FE4EB0C4E95BB45EF87A0908C8121A49E4CF3F3E0E5DAA6969880 |
C4BAE67AD59A3E6DAA1A9F56D6B95E57DC1045F4955AC12EDBBD6CD9B28835A3 |
4946BBB41294A38C3010C66E61331F227DC016888B4179B8336BB8594D1B1D84 |
F0D4AB95681415CABC2B47FB9BDFFC2695E650BC6A9A56087D66550BA48C26D5 |
82107A6CDB3757FACC1B0B034CB06A56DAB28423C9FCDDEABA93B4CDC222D24C |
336D9DB87904CCD78C09626BDAE5A2D87BD60251E606DE3EDF7BA507D4EBADB7 |
5E8E216787903ABB05C0F36893156245A1BAC0815651279E78E2C73EF6B14C43 |
7E3CBFB05B97344443974965EC7E95AD5B9774335AE867944842106AB1082433 |
FDC4AD87F5E00277E15614201627CC9E69E7E6A38E3A2A52973B9EF990516988 |
FEB8E7BEFBB9EAE8B51F2B1E90830F3EF8E28B2F86A4DB49105AC43199E6AF27 |
9C70C2CA952B8DE8C62A0900B1D6D49290B23A8412BE5713E5028C6A2CF89BC1 |
2B42C745B94AC3612883E9597A7A9A014B4B2126B03F03D0E04D685F3F6D183F |
0BA76B901B51911AAF5AB1A78F6607378559660B2DF9A47C8160023874B15455 |
72DAB24DE6861456CBE7B43754DDC879FEA4341B9FBEAAD7A7061D04E7A29E7E |
E4231F79EAA9A7C8BB6F3D9E7654CA9B55D7C860583EBCFEF5AFCFB9253C4A43 |
90624DD87968DF030F3C902F11786BCD2691C972306D8ADF8F4BA6530D7A8493 |
21D2B649D1282441B7951B065E10F1C638D881DF11BB654640B9C99C738C9F78 |
E289516F4577E38D37DE7DF7DDB7DF7EFB638F3DD6BAB766094374849B88384C |
06696CB7DD76FBD4A73E350BAFAC0A0EFACDF7EE2898C5708BA073B7898F1366 |
B9C4EEBBBA17BCE00514BDD2A3AFD4DF7A2ED6A283E4ED79367B47A11218704D |
27AB09D9ADB0FCD6959B51E9C8B6E1861B46060A050CF541DBAE282ADF628603 |
9EDABAC565519FC868B188452EDE6E7793D683B0F2AEC8CD21F4C4586131CE46 |
6739F844CD9765238018A546A18FD6FA681382D87AF9AD254CEBA3A9B48D6A82 |
9EBECC7C354C12DE8955DCC9A8C4C048B8D934273515E55143B839EC50614BC6 |
92748B90C153900E4E01D6A32BAEB8E21DEF78878AAC6B01A36A626175492212 |
656E1442D860830D36DF7CF3071F7C304C17B3B64B8E1E76E79D779A9026A180 |
40D5865AADD4A020645ACE54016B95476B190D2A3D2025A346A34D562B63EBF5 |
99718D2339A19502848AF91E042D70D41870B41046ECC6D6BD1757DDCD1AB194 |
A3075A66048D82E01EC262CDC421961BE301150E705E54D65399EB749BA6E97B |
E4C74A214C9E6A16BA1E5A4F3AF8E908B334E04B2FBD343288BAFC124131D55B |
5E438A903A3375CC59885A7AD14071CCE2E690B07EA42AEBE08804244D9E71C6 |
19CB972F27227CAE549669A52E0C72C7741FC01A5C636D749000B9D2DC65F35B |
8C5A42E55A42E0009F80037C020508BF887762909FE598340A467AD17A5A54A5 |
B0AD87E66295AAD9CC58662C5243D11CC49D00F0D0430F8DD4FCDDEF7E97C103 |
5BCC3BAB4B77BF2A09B6EED9E2CA7200485E17A9F6FAEBAFE724233B1BA13048 |
09B0A081F28D356BF019DBDE0A419ED4C67149CAAC092AB5BC22617AD8E5982D |
7895F1F5FEAEB5B02FC55AA59DF0ACAD1C9CABB6A497C1133BDDDDB9BAEB243A |
60E0EADE6E96CD457FB23F63A80F21D0D05CC84410239448D3F460D5528481D6 |
3E2016D317BCD330A58C9F6F8894CC1525F23BDFF90EB59CD0740F38E080ECFB |
9A5E9B095D9073CDF9B5DDDE6852E167871D76887A1D5152392912C9565B6DF5 |
C52F7EB1CDB8A6A7BA442401F62D280FA41984C44160472F17CBF79060532A08 |
92C271EEB046066434837EE1A07916CB8D0DECF2216CE6FBDFFF3E929C8C0A2D |
255FE67192DCE67A7F406D6F88D135A3AF75FB3067B3C666D72E7036D493F622 |
B1E92D86ABA14C3367DA9FBCF5AD6F0DFC23F2C21E5464ED6341F202C27A96B0 |
DE7AEB2191E7152039554241570E2C317AF3939E898140DE85A7D2D228188AA0 |
E441F581D3DA0D5573354381EF230B867CD9E4A6F6F1833C7200CF39E79CCB2E |
BB8C98533295352DD4E69B0A46D85C41CECA83B589EA4644B2074472968A9CEC |
2CC6C59A5907CDD74BCD45ECC84C064CF5000AA3E04A5CF43623DD252E982E5F |
F5AA57FDE11FFE21F2949A5CD577D7F42AAC6CCFA0F89C6700CF41AD8564551D |
6DB986BF66C2D57D0553A1CF125221BFE62F457CE62675F5D8E00B2FBC300287 |
CDC0CF3DF7DC2BAFBC322C99F42104CF25F2536D1A5FBD175E586EDB8495EA24 |
58741CE89AF9FB79756DE53B4D610761A56E0AB84ED873F035F0AFC69901DE57 |
7B267350A9D2A152B700DCC2BEA70BAAA69F0F3229D18F3588298151DD130B5E |
EBF150FCF44CE989ABB032D76BFEB5D28778DCB3FE67D16B880EF7C8D4E77B2F |
DEB6985161E0056C4B86F251369CA6435923E9DD28AF88CC3FE96D621964F5A4 |
7637F3E19E41682531A24609418FF047F8D241E08261204BDB6316FD32DA76A4 |
ED002458478BDFC19DDA4E5B2FE89173914986085A9463DC6BB3183BFA4C6F4D |
460E311F721BE49B620E6DC6252ABA234B30606D3388BF5015359E6A0314EDC1 |
190BBF8F7BFFEC3A01D8A71E506CE9D985E38F3F5EC4965992B84C8A26CD57D8 |
59FDC1AD5B3B54B2070C78756F8CBDE79E7BAE5AB58A6A5079302350AA828201 |
D820A9E9866E076C9138954A6115941C818CFCEB7FFDAFBFF0852F102D5F59D7 |
C04E9BF7666723FC59F632CF66C068DB77DF7D37A432D3C0D35FFD140C658146 |
DDE1CC2D9321A29E8076DE152933AAD41E7BECD1BAED81DC5782C55882C60343 |
9910045B57CC08287309D5DA94F964F996D4F574B0D7A1F65FFEF2979F7CF2C9 |
6C8AF1D2AD9494804F61B65CC25AD3A64CD0A3D26782DBF2C6B7BCE52D6188E1 |
236CB4215D4B158C5462DD74D34D8D2299BE873A26488558D8F3F93DEF794F4E |
359417D76F544C1A5BB685ED9D5B2779DA07905C087BC3C2E0F9E1030631D40B |
11281843421BB88E8541E6544B1B0E0E39FB8DCFA6754E83E90C4E50D33696B0 |
43C22DC6BDF5A6112EADDB845B09EB9F4550B4322139EEBDF7DE9FF8C42754A0 |
A7AD883212D7D27A00D720447954AA38E52D992DC522F43DD7F1E5C110D32053 |
FED2A8801C6E856E45A856BC77DA246A9E2EFCC9E2D8E4BD8C7AB4E134D92576 |
345C81107160680DD86AC76BB3D5BB0A6A3A451AB03AF0294E07F40D34E059E3 |
D7CC7DABA7D5808BB6307AA5F5689A41494E1438940370DB336C09747A6004BD |
090BA80CD8C90C04B281A76A1A568130A5C8E140614BF98B62446A295A148A97 |
B92B95EC6A6CC08681C80857C69C58BD9EF29B5971918B1A1B96B0401839B5BA |
F763B00C9CCD5CB55BEADCCDCDD75E7BEDBBDEF52ED3858DD66492A804B249AC |
7AA34987DA1D77DC31DC883A1BEBACB30E722D0870D34D37EDB5D75EA6595370 |
1BCE016446BD9987238F7A0462EB6DD7A980587D55AD842B62501D28CA8A1188 |
3E6B7A730BB2C8F24D143E24721A535E7CF1C5617E048E653E5170C96847E5C5 |
30096CF1D4A299E8514229CC5361CC79D71D77DCF1831FFC2083238BA3316709 |
4A63005C1C5B7BEDB573A815E950B2390E78B82C8005DD209D097BC668D201B3 |
1E280E5DF84B786AA4495BA96AE143785225C32725E3401546126A25E97F20CE |
82CFDA2AC653C53E2B43E15C30AB1CD53C9BC38B4ED5BAA6F153F7539B7DE5A6 |
5FFDD55FFDFEF7BFFFE8A38FCEC27EBC86DA4F548207C5DBF06AB0AF0A7D6AF7 |
6EEA33BDD718A9EBBC82D2CD925D444B54193B38666F3EF0810FE43881A0D93F |
820E089EB4DA0E678F8DFFCC673EF3B6B7BD0D251B59CFBAE4203727D9AAFAAD |
A79ACCA21AC6D0B71217A0DF57DA477EE7AC90CE1A0D9B6783F764F70ED28EBD |
DF1631557955CD82E1D9DD8FC685042DB72299926636A0CE0C15BC79C31BDE70 |
DB6DB7D5EE0B1C8CFCB5C6566DC8DA7AA7EBF1C2DE29E23A30575A6A33989CB9 |
07683636205BD34B998E7B3AC4DCC20644D3049ABE31AEFAA7E10FFFEFF51131 |
8A985AC150196738571A8B99DA5F2B1DEA7BE338406E2A690E3043B382334AF7 |
16B7A9E690814351802C2D43E081469792B6BEF6B5AFBDE79E7B5A316F9A03AA |
956BDC336E113DB1E54277C6BD0C85A53F086F6C3DAA796917C0AC79CE3A3260 |
23361E8415533691EC6B9D1C126C10C52C99E96806D6C92661C6B93823A3D20E |
AB361F83BC980458738760FF7AA3074158A3926A8FBB4771872836CCD72ACD9A |
00492944D8AD31E708E5D8E414EF6C98C6349C0981D9D6A91D4DA2A06D786AE5 |
324828B1DF2452E35B6C5D13AD0DBC733F0134440918F734289194EF33ED68DB |
ADC7046819E5BAEEBAEB0E3CF040400A8483F3E3529C5F014B7110991545882D |
58D38B078BABCC102BA32D7C5A370E0F421A8D20B10AF2A2419AF5DFD5BD7E78 |
FEEEB2CB2E914EA4AEC43386F4ADEE9D6F46D07A5B57AE29CD5F2D1B4BF9B459 |
A7C5CDCB872C1E3988AE73419DC0578A89643A9014DC18022238361648ABC9C1 |
5CF6A5113406F786BE67BF110C0732576DAE30288FEC62D93080BBF9E69BE71E |
8AFE8C7ADDCD1A7A377D618A6C5D116C45FD9D2B457C96489E1635418E41595A |
E36BD62CAC2E34F0F98D1726E1B5CEF6140536D96413EC19765E9B2FF551F531 |
4320705470C06A38BEC5A2D1DBF0B4311975E2AA8ECB634CC6F714B585694EAD |
D85769DDD34A78B39B5E0DD135726D51E5898D1EC4670E34E069EBC2B41EBCE8 |
1574DA669B6DEEBFFF7EFC0B6A87A312B9A623BC75634C8E62D6BBEDB6DBDE7E |
FBEDF0EC514FD924D81ED72F52A9295E41CB7C78E73BDFF9BEF7BDAF5A3E2A09 |
182D99983EFD7D755021100444518F8E3FFE782ADFE9C33304AC025C5F1A2887 |
9B063998926ACA49BA4B5B77DC2E7104FE3E5FBA9C40387FDFF296B74468C8CE |
D2A260DCABBAA26D0FA2E589FB7590DC96B547FEAEC6B6FC3DE8A0833EFCE10F |
67FBB223483FD09F9C9D2C64C58A15C71D771C4E65BA08403FC137BEB78DF433 |
A549A276912A379B644C91004813C1BA26D75ADAD31652267AC85A2AC1B4E90B |
45CD6CFB5D0B71547786C479547232DD8251A914A6546152161A171A141882A3 |
5AEAB46661352B11B8468FCEF502D4C2C767B1B35AA2D25C73204FF40C8A93F3 |
B7F6DC34A1680BED730ABE4A21834C907ABF0C8B9401664BD841CD12541637EB |
29871A88417B7F0A6B3652928D67CE9A82B6955814FB71B9839A175D74D169A7 |
9D563B37B4DE5F81F61AAD1B9F05BA7B30EEC51FC693C26C005A93695571402F |
FEC2A858926C75BE5F4699D71455840C0DE3A856BAFAF3EF4B5FFA52887E4809 |
E60ED59725A8302A1D5E10C6C47E6E5EBF8EBA2552625A8F6A817058D4DAEA80 |
02AD324BC5AEF1C2BCE42A7D2B13E041D968A38DA2ACE7116D416BF5A68D8A0B |
9552B023348922EDA17561132CD43500FBD115A4B11A76CBE3F40FC0358BC176 |
2043C068B353AF7BDDEBBEF295AFA807DBA7683CD5C87369065C3BD28C7AB880 |
E19712BE5A26693AA26A50EBD160AE361165B0151B9D5179704D11692583A0F5 |
CA5FAD44C08E4BAE17E403B2525F1774CDAFCAC455B0D01E3BEA09F11A8D6631 |
3CACDFD8B190F1ED2C220AE15FD4F28F45216F09BA6EB6D966D1CF88840FD0C2 |
B1AEB8E28AD1A43F042DCE4CD83044912451929D30505B600BDD1124ACF4C1E4 |
DD5674E8D64537B802A6B2D5BDF6E1AC384713A848286297B3E9CB962D43E987 |
E7B16BF6416AC53A5ABD9B689903733A06E736B14B8B395021DCE455FDD57AE1 |
3716C43564CF53AFC910564708CB5C2FD42500DBC47028AF52D8C550610F66A4 |
935958E14BA7C53B89582D11EF11B6F19115B594081DAD76CC6C5D92AE32EB78 |
D27350D357D5B02DFD3D70F140DBC7BDA512B48893DE7A80EA5CEF3F4B909DE0 |
AA1D655A8FC2B175348F0B13A1A4E1619A4F71E270CA987D5A2D6460DA08421F |
DA8A42A396262A98A4BCE83E01C1E0C17BDEF39E33CF3C1317779674DE79E75D |
70C105999CD5A489E037E0D67233D52ECFDBDDD49F9F5C54A79B46F49C6D1AA4 |
E8A0C5746C8F520C47F9F5777EE7773EF2918FE44BC08AA9190943FBB0357D40 |
5303715B69FFB9B4A371BA0F3192E9A86437B562E39A358EF80487335305D2AF |
25AA75D7320356D26955202AD91A18591D27E83A515FF6DC73CFEBAEBB0E87F7 |
B8347F5CDD7B3C1C71C411975E7A69EBBA8E3D0A1118C904D0F54B0416710070 |
1D8350C2A53219B030BF6EB7DD765FFBDAD7F869DAC38742B0F1C61B5BC24631 |
A84645CD95C66DB3B606BBC55C2977E580D371F24AAF9C76CD7D6DA1A15B22C5 |
7A0DD38062E2F752DF52181A95781F8465D301B51299B34F299F6AC8A10E4086 |
05E00AAC2A13E471B5A938B5AA2B4F5FD2B8B6B01D78BD415B3AACCE40598C93 |
74A460A38118E5FEA90F2A0320AEB3D6EE96317018E72675B6ABD7069C07E1CD |
F03124C2F9B46ECE992FCD2D66AD57BF953BF8CA57BE326866C416EB0A6DA56D |
1F49FC86F9E4E060E80EB5C17D6065D63553D52A5A8F0ECBC83BEEB8E3E73FFF |
79FDDF035C9A2B6514C70B3BA00C02B578450E23E6ABAAEF46FAB9F6DA6BC7A5 |
E464A8475E9D7922555823E1924B2E39E594538CFE6D0BB92323AC59AC1E1C1A |
85DFD8FD89E86E730EA71D1F8313EA2E0F6C1B41278CB47CCE5686686CB0C106 |
915DA0159501CFF5FEB9C60FA103D8D24DD31762A8825420B6CB2EBBFCBB7FF7 |
EFB6DF7EFB2F7CE10B73938C7CD362F165E880AF5B8303ABDA83B56F410357AC |
5871F5D55793F009286A55C18C70F0C1075F75D555EBACB34E54A06755114687 |
CA63526FDD1868382BFAC7A2D84CBC31E28361E88066F5A4196A2677DC71C785 |
C48734502E07600114CB7643B660572CEFB5AF7DEDCE3BEF1CA62E8699C30AAC |
AFBFFEFABDF7DEDB6C221CEF39FFC4D9939109178130CDF7C61DD94B4BB38225 |
A4F0B3220B72E9E094C12F51512BF3BFF1C61BC3E9E53773A578C5A844A0AC59 |
B23677EBF1E7C84D73A5D46565C0B21F2826C2667D177DAB34F7518D12710CEB |
1CF51F007815F3AB6C642807AF03AD758454935ACDB6C49E6942917ABC7EA9B5 |
7AB76302CE07362E0F7CEBBA1D635276634076E50D4B3B74091F3568486F0B7E |
EBB5D75E9B029CA35EBB9503A9C3B5C6C26866AF55DDDB4416CE6855EB02741C |
04857D04174C3894149012D104867280AD5480A2862B9549307262AF425C46D9 |
026E7BEDB5D7ADB7DE4A4489F60C0D274B987C3307ACFD0073BE37B3D23CE039 |
ADBEBAAA31803FF56FEB9110F669805A11DE416F761B9B0A617B5A38C2A8D4F6 |
1AF5207CA228707FB489881C05E0ECB3CF36EDCDD2CD8B1E55CA4D9C7BEEB927 |
9F7C32D56133C94C29D279D86A7E3AFCF0C3E9786FED7A832AEA4CE80284D080 |
F4600282A6087498ACF455AF7AD537BEF10DBB3C0DD4CAD60DD1957057C7792B |
26224F0DD51F596C804C1C3BEE5525066FCEAA8960875A2273D788D1CA6EAB46 |
3B5E582D0075A8CE0455A196F06C537EA569AC1B387A84552BB1149C7D7BB6E2 |
DCD41A6F757AD37E5096C6BD3BB8D62C2C5BA01C31715456DE70C30D9F7CF249 |
4F31DCC18E039816C84AD5C5DE2676CAFC94254BED0DE952A6C77D0E24B10E6A |
ED032661F3CFF6A5F661A227B8637569436D8055EB76003DCC08C584D8E150B1 |
11262109ABA7EAC9514B126CCE9232DDAC19FB557B2E1761F784FCF9A5A88613 |
3EA00F9433D588E479DD85175E9853AA1317150496F0CE77BEF3E69B6F260D2E |
07EF9C73CEA919E835A0BC95E0A0712F0793A1028D638F3DF6ACB3CE0AFF366F |
AA36C7AD3E7CCED820A1DB841FC20DDAC41D5EBD9EAD34E5D6CF14C13F38F4C8 |
238F50CBDE80615BF5B5EEDE369202616BAE573FCF2B726EFF7C72E59E10E29C |
61F3FAD93509040057C4DE74D34DA3F4E39E090AE56FE6B0DE7AEB3DF0C00324 |
5CA231DB103AE0B26C562B3196AD5779AC0256EB2130F8D22AEE514F87414693 |
4CB3E05285F680E02E5BB6ECA1871E22F406F9409338E74A550C234A75A0AC2E |
15893515C2FF2AEF41CFCE2AAC1B60B5967A76DA545E7235A28A0C447BE259A4 |
F14E88485EC4DC90353980D5DD1B1DEB4B5FFA92AF18F5182ED06696ECC8F2B7 |
D9669B7BEFBD17312573030E75FE8322826D61DF78AC265A86710AB0597611CD |
F79936A0FED0873E945379D2492745FAF9D3C915340E1DF08861C354179F9F34 |
268274124FB4FFFEFBAF5AB54A02B5F9E69BFFFB7FFFEF0319E24EC64BE66D5B |
FFD95C23E05F8F644E7D36945D1E4D129A031CEAC5668BA94A6BF05135A4DB61 |
0259A4F5D8E60AA86ADA158C83934E4FDCEA09AA279113072F7CDDEB5E77CF3D |
F7988129E1CA5923BA5BEFBB321306B059C9901556D3DF80578458E7A599EA76 |
DB6D177568AE374870AA15E516F50D99FF03A2663BE80B123C09218AD6C40870 |
A8AC22F7AB29CD9762CEDEC39758E98CD5CD45D1157604C7ADEDB04CF420D01A |
0736E1ABB987363610F0EC7B36289B628F42983D56DE37BDE94DDFFAD6B76890 |
9C1719E062DE07422DA483B8D767050878E745175D74EAA9A7524C24CF6CBDF5 |
D6C1661C5DE6E69AC5AB360D2924F4D196E373BDDECA786138195B62C41A2A5A |
C6DC7EFBEDEFBCF34EBBE8FC3D2FE317F449ACE90DE34E3BEDB4152B5660BB86 |
7C73B4608DA8ECF6A269A5A8A99D49AC1AAADD068A1640A313D70022F36B0D67 |
D7F397673FFEF18FE76C442F81B8E4414C8822A89E7C7C6C9C1F80A658833403 |
3162929C5EAC5BC1D4EF7DEF7BE35EA4508CCC53B84040B510B837BFF9CDEBAF |
BFFE09279C106AC85642C42DA49CF31C9A78E289271AD18D9CA123AACAC861DB |
5B6DB5D597BFFC65180F376063A0523F0A0AC004E032E34B2EB9E498638E0113 |
C8771C68E1198DD2A7621A1B8760AB8935C36EB6D96699ED273FF9C9D5338A7E |
073E04B77FE0031FC8DA8315E64172D88218D12FF33700C9C9CF808F3EFA6846 |
C65566F1A3AA070B6AEB999B9749F828CE0EC2CEF3467420F62863BA34230AF1 |
D1A06BB27CDE5503673242906DD75D77BDF6DA6BB1C4D6904967858F195B9425 |
8209995EF42801B44D36D924AB46F2B3307D7EC26A8592379EC4675455406FF1 |
EADE7E0E6D6CBCB04F9F024D96B37CF9F220582696313D71034729C833EE4D55 |
B1F41004CB1A2D82B1BAB768E51BEB1EB4D9BA178C937BDEFAD6B7DE76DB6D8C |
99E3966960C7C62B67D83FFE7873F0DEFEF6B7DF7FFFFD38E6E9D7A9BCD816BA |
2AD4A59442544CE5555E1AF631CE074B8396D0AE6AFBF1301A0685229BF9676B |
AAEF9C6C4398C4B8570A134F10262A77AC7F67410FB7F1C0DF19AAF2C31FFEB0 |
6AF6F3A5B3537D7C54922CEA8A06D682BC2580BAF4D24BA33211FD8A423C3000 |
B42217D6DEA908D673BD31C39A5E3B48EF75F697886026000A71EE6AD89A0ED3 |
EAE48A1AF3EA57BF3AE73734046F82796E03A5DF809EBA765FC134461E0F5434 |
6C29E4DB8C7B3CAD3C18B86B8D618528F8AB7B1952A406AAEAB4A9DE6198DAA9 |
82DD26B221F2CE73D58011C470A4B7DE7F319301C9028ED34F3FFDDC73CF359A |
26BCE78E3BEEA899A0EC1975F500B4C535C11B1876EB8D8672736485CF7FFEF3 |
6D61E02827198238E8C707E178FEF39F9FBD89BC4F1639AC5D539513AEDD36F2 |
EA7CD879E79DFFE00FFEA0D23B2E43C461E18684586F3DFB152C09B1D093C469 |
E72DD3352FAB268A4DDB2E9876F7ABB2B0AA5536DAD8727FC50D233D62044815 |
0B84ECAAF3BDE31DEFC84FB7DC728BDC1ACBCF6EBBEDF6B18F7DCCBA57EE1A58 |
44505875995B756F1A55CE3AEBAC73CE390770855267F921F4149EE40819244F |
C1A05AB79D16E2988BB10C6127A05215F235C60667B8F1C61BEFB7DF7E792927 |
0559ADA6AC6CBBEDB677DF7D775BD840701AC81B6DB45144E140268F1C76D861 |
975F7E398759C96CD43B6DAC9EB4DF09F3A0C005D61D384D608E8C38AB98008A |
175894A1B0EE62BE23F00D3C77FE5CB5D94EB53913F51AE4C1EA605037BEA751 |
2FBA691B8F4C9B240B05596DF2863868774146E4880508790A637EA61A80C051 |
8CCB9DD55183FDE208E7B61CFF28CDFBECB3CFC5175F9C2F71FD62FC1C970255 |
6C1CE98879B0BA2708EF7FA677B1D4855F7DFF06618C4BEEEF20A2C74EA0EC5A |
9683DFA1AACB15AB81F601071CF0D5AF7E35F2BD5A0DC4DCF241785B6A060A44 |
B8152BEE2C06391D9921C500BBA80F68E0B1C12E351A7416016FDD325A0DA591 |
4D23B91A93FFB297BD2C5811385884A47AA0B43F1B784BE89F4DDC65D59B6EBA |
6940A4664848208C8F4A03107F917CD5AA55471C71847D2C024C84038DE12656 |
B995E349B66DF03083043864D2B7853101D562DF26212623249A57BCE2150F3F |
FCB0DE8B2C60CB2DB7BCF7DE7B5FF7BAD7DD75D75D2E83869DE35E7ED2901382 |
2F30106143E0908CA6523BA41A762EABDCFAEF7FE906D0A463C58C6C12C220F1 |
CF04B385BEA08864B156A8605DB939E0908E1028885066CE686E3EF5D45357AE |
5C498935A27FF17C67F2EABEE81CF980F2C42B5EFAD297062666E21A198F7B0F |
32C783B6D2E3286EB7DD76F7DD771FFA3A04489D0C6DCF8A079676726BA41728 |
49DAD6C4B06BAEB9E6E8A38F46B3093B013BAB34A0E37C3AC4293B68C1104812 |
5992E8F7E4293D33691A38F05DB5928D66F7CDE8AF9912EA8BF686FCF4A637BD |
E92B5FF94A2B6622A26A2378B259C6646168CA16E7AC4E1F786CD430DDDAAF49 |
D3D099679E19593B40F8F6B7BF0D30B3D1C71E7B6C7EE211B27174F6E48D1B6E |
B8E177BEF31D289AB18156B727888FF66A3947D12CC9FBCA9CC3531F7BECB11C |
B7BC0B051A4516489A0F46B46DFE25B6C8AC419C9716F7E1D5EC3837D488686D |
0FEBAEBB6E38D3A21D2D5B774372F6E53A6839113D5FF9CA5766C259ACF3E733 |
2F35F8B37533FE9ADE9D62871D76B8F3CE3B75A34064293E15C21AF2940743FB |
B2EF3AF0DAC4E2829D4CF79E4EF4CD37DFFC91471EC9C8E14C9955345760A586 |
013510FEB3040E54105C3910310C5181AA9E758E492D568C24BDFBEEBB470C62 |
1CB428283EF58234F00E92DC585D359BE12EAD0642BE77A35B11B3E64BFB5BB7 |
0CE356ADAECCE135141C474634C83CFEDEF7BE37C4D6D417EC13C8B54B44D7FA |
AEFAE540DACE0EA2E41912659BB84110569B32682360596E0C3C39E8A083AEBC |
F24ACC5D082B1049762D7FA96AD716061ECFF762B77402C548666A4CDEB2C71E |
7B1001A701CC7C395B8BB24D1E7614897149280521DB44A6C9B3210E11B20F3C |
F040184A208F5FC008798735F0502D48FBF1DF86005478E126A9D5045B8FCE47 |
D6A67A03289BFD6606EC0D72681DB3427F3CA97A7FDE79E745A257B15E22B8E9 |
B95ED924D4F16C4C6662C79E56FCE4B55C1960CAD97EF2C92789C538E69863CE |
3EFBECCC9C8E8A48CAA349B7BEE8C1466F0190FCABC10D9D98FA73FA05F1791B |
2A923BD9F5B952C13C07DB8463E34A5A7172E0B2AA99E666BFA9F379E621BE61 |
39E4E1C19CF2544620A03770B8EEBAEB424A4C716104E357514D0875998E6411 |
4FF2A250764CEB9580825E1017C884711CC6A011885EB93B7046A4C0DB372804 |
0FD1C9418A5C88B8E04F946247639EAE158AF78E93C359C54C8AFE512D57903C |
6D5084441908BD56694D1A1DF7F1C71F1F97F6155AC523B884BF7EED6B5F833D |
938733C0BAFA590B679D73D02983C332D9653AF02C5FBEFCFCF3CFC7128B2383 |
1D271207E919898D561CA0C77AEBADF7F4D34FCFD245E67A25AFB54A9344895A |
95D65948C5BA5A86A9063667045A9C197288F70B438206EA8B2EBA28FC2C2C19 |
C66C715963097593A37FE4A90B2EB820AAC9806872129989F2EB12BA57E57FC6 |
7EC2B3897F26091B3282E10AAB00D62C7C8D167852735522E145065BA0B1E55F |
CC2AE38597E85D3FCFF5AEB484611B1C372E2940161AB2D90E5A5D4D1F523903 |
FF076F6CBDF222CC0FA655330EB85359B9D2995A53DDFC576D003EAB6DD6002B |
C3919C49F63D6312481F998F3E2E4C3B400BC21F7CF0C1358AB3A6081AC08CF4 |
1F9A1F6137C7E4B4D34E6347F097E7575A48B1CB7AEEE5F19AFA5A496455513E |
FDF4D38F3FFE78FB5ED4943F834C57F72AF71C4600321D45A1ABFEA4934E0A0D |
99C980C1808CA2733BD33DFCF0C33FFAD18F8676A06E463FFEC637BEC1E18149 |
90500B755874D8C0F7A9A79E02FAC69211FFF59C18EDDC54490A9158FD1B7D3D |
53C2A3CEAF354E15EB62B6078F20078FDE5B34E7C9E3365E6CA55D441E79E10B |
5F881BAF627F9B781CB3D378F5E9B28761645CCA4299A2476661A879E823B671 |
0095FD0BAEC0686B6C39D6120F982E070F790DE6C25EA71382B7E7D56DD29126 |
9FB31708280840047DE4A908A19FFCE427B38A1AD13D2AA9BABC3A808D92FA99 |
CF7C86AA67D8BE3866DC4C313F46303802DDB7E2255E588BB3F352F602226E78 |
4B2B1E77B2D56B1211BE5B53E6C410FD94D527322E5DA478295A7BEE8F361C21 |
8C784BE94566581B1C79A2DAC2B636F583DEDCD1A429C5B8E78F592871501006 |
7305F6CCD5BDA906A14CBCCEE40A9C3EADA7363AF3F95E64B896689062D62035 |
037FDAECB2E4A8776698642FC2809730ED0279849BB9DEE5B306458F7AA511A8 |
D8AC30111D871C874D36D9846879645369289CDE8EF4355167D4ABC158CEC202 |
5EADD49F19F59A56561A31D1133D1269BE16C371B1A8683853F278087494A1DA |
328422F61E2EF5994174712BEEB9FA0D4B18F5424EAA50ADF7C3AEA273609EB7 |
E07A68A59A713DB373A516903F993101235FABF4BDB780C67C6FB5D44AA4E480 |
012367B30BAD971B6BBDDA86FCD25C09768D332E35E014F8764DE8445C52F18A |
F3485228670A290DAF197E621A5511B587D5DA20CD087C6161BC9D5029F82BDC |
47818085788A5B89D5F09E818CFBE10F7FF880030E5026B3B50966AD01778BEA |
2C0F5DC07DB9780736C69ADB6EA727AB25EB6D4260CFDA22ADB4525E60FA5A33 |
A9BCFAA31FFD68A38D360A03BBECB2CB22CFB6C562E4FE9ED7B475743CA9D696 |
F5433E4881A899DA302A9977E61C89293707D6071E78E0B5D75E0BCD7DDFFBDE |
F79EF7BC275C2A8C50DB11E73060F9B55FFBB58F7CE4239CD82834B9F3C61B6F |
7CE49147B82D48136619B964AE14798151D5767250CCF0EC4800D8B2CC8094A3 |
DB5E29DF6CBBEDB65FFCE21769DA1AF28D850ACA3B703521CD211EC2DAF3F60C |
953D2548072A8635C62049B6DBAE32BCA2B296011B632B6B4000357150CEC093 |
D5BD0B4275166683287C58E3E7AD8EAB26C769647CABF68C7B22BF6DA0B4BDD7 |
28682371E67B2BF869069C096CBAE9A6DFF9CE770E39E490952B5772276E2D5E |
6A7678ADAC64496AAA5B8BBA035956436EE54078CEA4E6A6BAA9DC0CAC023597 |
B76A57D3D9A2A213F3F715C8A3EADCA61839D4DCECBE20D824CCC46D4BF623C1 |
48889267107E155E4D5064E6D67EA95C67B4B0EF6FD063C71D77FC833FF80326 |
6FC3313AEF521C7B3A53B68AA1CE795C8A1919AB2566AA7220472AC1A820C2F8 |
A11EF67A313192BECEE42FE8B4D243AFD2F6852F7C61E79D77AE785809575B98 |
68243A4D5762D2778B301191F1A8A38EE22CD7A00D471820FFE08D5B6CB1C5C3 |
0F3FCCB0E15511B334BA400D3889D8C3C449E55725C5B65052E7ED58F83938B5 |
DC539B38F5DEFBDEF712F91198139C01C51EF76844966C98DEF5D75FBFFFFEFB |
BB2FE35211881519B43C2AD99B3BECB0C3B7BEF5ADA050C4F71C0D2B3FB6CE59 |
075577AAE30C6F37FC8E5851ECE1FA7AF886B24EF91E1F592BBDD1309AE26F6D |
13352F4FEDBEFBEE575E79656E9EC98007D22B1849EE66EB45305031B55700BB |
28C4E1AC73BD29E900C9903A3993E89A0480C8E19E13DF5554D17A60CABF64C2 |
18B10149E25F7432FD2E810E45BBB807EADC7A6B04180C93AFC557A70D1AE299 |
512A52160331146CBD1900827F9543B7AE66916B31574A2BA8630D18F089279E |
78CB2DB77CF7BBDF1DF5861E2ACD84D5042C190114B1F2C06EBBED163102991D |
AF15605C9458D4D4754E5ADE1BD0292D02D5710FCFD65569811EF3E8479324E3 |
D6956674680B26006A103A9C1BF72AD6758BD392C412DC8BE4B7BA14FD1FF732 |
F76DA1FDCD59F152F4154DA3794B662EBDF0B81ADA8D8859CB084CC7918E7B2C |
7A443112636CCF70DA69A72D5BB62C2233FB6EBD7E8415D92DA090D7D2BEC25E |
935ACE2B4D645D089D326C6C54D6B6D34208C358A2CA6C2686144B08959DE117 |
BD3FB745963DECB0C30642C6A89403337C66DC2B2F4E33608AB549D6293F429D |
1F9524F8DFC04253152F33F1C8806F93DE3B98AC5A2F46A607142CAA3D0024CD |
9A97BD39542B37E4A7D0C0A81C36AE7756ADD415194D72C9824551333EF8C10F |
5208BD2D165735573AA556DEB9A65400A45910F44792152979CDA45E21CDA630 |
9F2830555FECF429E6C28A1E2064F030C5F3CE3B4F897CCB2DB70CEBC2C46256 |
D520D168D453251D70F06ACC30601A421814C6D254DAC36AC987F124A629E245 |
8E3FB1051E28345D2858561DDCA6D979EB328A0419A72CA65C2D2ED4D6B6218D |
A76F6093907A8C7BFF37BE4123CFA1CEBED7BE7C969CC23C130DED8FFFF88FEF |
BDF75EF39DAC3691CF1B6CB0419E7D36376151AAC12B656C12F7674A673AB381 |
8980CFF7A832D9BFECE2A07896FC92E99A55A998F05C3560255C93882A7F25B9 |
1E652587E4E28B2F1E58DECC569CE57BCE310B2A0463F221D41FA2066527482D |
D3263E9C8C8581515DC64C4620E86B5364A2939E29BDD2C6A5AF80A6A7811109 |
78E262670E88FC040E685AAF01D5382D6862639515232DE5FD049313FE0AB2AE |
BBEEBADFFBDEF796D897710FF9B31576EB99F2392D44C09E7CF2C9175C70017C |
DA8809E3D490F030046197960DB792DF32ADB6D66FAA25CD4E5C8338CCAAE155 |
062CE6E847B4B606D6D7B9D2DC5A99AC95006032F417B4D79E1264B3C0CD36DB |
8C8E1A4833B57491323B8D2351375923D3B3E2412B51B2483CA352C45F45C4AA |
4C14A2DA68A38D201383F87C516E560C4E9B52BB9139D06366A18456076C9598 |
467F9AEFD8CBCD56CDA6CDD0C91449C14CE436D369204435FE689A010B9C5098 |
DC496F9CF02A966008A4C8C6329FE90D7956976630F6060DC7A59DDC68128448 |
ED0B786DDE0273C51B2585A1B3A45E5292D63CCE836CE03625E9B622C1E71590 |
9D6A0BE58D3576C102096B962CF823770C7246FD0D55099ED8E897A42C6B65D7 |
521EE8A375B38CED90FB56068C5F3263861B0DF2A0CC0A01CDA8018C772F1F90 |
C37884A545C5CF2491BFCF3DF7DC48B14CCFF04363B0AB7D88E6B31C0DFD5F50 |
098B01805A3C3E901EC067BBE3CCF7564873933AA670190661B696D05242D22C |
B4A697DE3373ECD96AC7B308873E80AAECB785EA02AC22EA024A77B02DA3D754 |
D4D154DBB8402D1C7A5CB23C09EE78AE0C78AE74C592892A9C129461D3AE2A8C |
575BDFC019592FCB3E644556F8B3A86F00170C38F2C82381350568486F603284 |
61031FC494F95ED2B93A933434D5DCD6693C1E4F82110834C0AB9DBF2B57AE3C |
E490439C30D86CFC36C40ED9B3BA586A00BDB524F7DD77DF6BAEB9061FED78E2 |
26C7E21DBC99553E2987245409289D72CA29975F7E79DE0E3FC604DD26590499 |
27063D12F2486DD2B8A2FF15211AFE043E58EEEEEFC98075ADB9A173A588D834 |
5DE3CBAC2233218211A10D6752A64AB439F5B0E41C7A34A27047EE469C5A34BA |
B8DAE5486383042367648488C011A4D4CF5AC9EB9FEFD528B591644A010BE5BA |
6A65BB56EA8269771DD89C4D42C3DCED860EB29E163D02D1688F3BEEB84863B6 |
F9A2CEEBA2F7870611FA2E028899A8836609129F3F2B2A3BF76FBBEDB68F3DF6 |
18558EA96F6C4FDFFC74CF3DF7D8AFCC66C3557F68C50A3D9E3455C44278FCF1 |
C75F76D96566C6CFF5EAA4DC064140DECA19C9DA6FBAE9A62C1C06407A1EB9BF |
9E656C33D535A04986629CCCCD6CE05612EB070C789A00564E805008BB42B7C3 |
D60D6FA0E9D04E3BED74DB6DB7118425036E0B959F8A9F5C8874B43622199D70 |
04547CECEA845BE757BDFB03B169A0C269D2470C0A770F3DFCE637BF89DC9FB3 |
F3F8E38F6337AE8991ADCB1346CF803641390AFEEFBCF3CE1FFFF8C77D2F1C0E |
B9D962FE350378E063E68821111E75D4511FFCE0078D0F78F7BBDF0D011C1447 |
028B383E78730929ADE105CE4434708B71CEE60A41D3EE98D1882B22C6732603 |
76C32A1BC08B699579E502FA33AF2965500C0C69DD64D1260C2C8FE4598DB71A |
729F2B035603435160620404222D66CDF94BBEFFC0D4E339276961D6F83BECB0 |
C35D77DDC5F97CC73BDE71E38D37E275C7F723F471BAB05B3A0B0F3DF4D0F7BD |
EF7DE0811D1B89B221B883D869C1A28A2083199C167255294E2B3BB746A6A237 |
87A47529BE75D1C720CC0CB5CD36DB84F493D99C018D929077069F28888848B1 |
287C4653D984AD4748D5E8E59A2A204B60D85A2A28F039FAE8A33FFAD18FE6C0 |
635F15BC03BBF1B4A200E6309A731E2FEC4B316B09B2AE2A5F92C013E1E6052F |
78C1D9679F1DC86075D0CC505D00D5D738B89475B4DCCAC82131FA0873EDB5D7 |
5EAB56ADC2AEEEF886C107D5A3CB7EEB5BDFC2B90E0FB0BB49EB86CA9A716834 |
7BEBD52DA66738D7AB8C2D3A7FB555D03257E010A17989A3AA6F8CBF3902679C |
7186655EC63D45826D5AA2B1981D446CF402F0E1BB064B1BFE366B1C328548CE |
C91618C80DA2627735CB9C7F0355A37B6099428F3752890C9EB7A6B71EB2708D |
45635C9DC546483DE7408DCBD5A6EA320A4CB7C9FD1D97B8C26AF6237A83E0DB |
EA6568859E0F64562D2539984F3CF144C6BCEEBAEB228BFBD2DC4F26883EAC6A |
D7ACB2CE78B1BC2344435028472968801F2A82C2E73FFF79DBD5589375BBEDB6 |
BBFBEEBB7334B6DE7AEBAF7FFDEBE79C734E247B62AC0C645BDD7BBC12238988 |
70C411475C72C925D848AA6C0A7DC3DDC0C434DCBEEC652F2378052F0318B566 |
61699451A9688485AC9E14BDAEA0B769F451C6B01D92206EF1108F67E6892417 |
096FC58A153319F0E07B6C41993D0E8F20DCD34F3F8D210B428CB245446B14E2 |
9AC835EEC1110A23F06CC2596184B3422B675DB88D6B63732165DF093A8E2141 |
8397AA4A6692D9994EB395F7E494D2F63C6F79EB5BDFFAA94F7DCAB052F1006D |
C6FD460185DBC17888B2A30E730DA7042768D73CEAD1EAF6301F976CFDD603B8 |
88E8230890931F2671FDF5D76747881804927661628DB5F7351840524A9B6833 |
39B466B3A844C2EF75D5CC22B5FA47735B38046372D5F00DCB67A2F81AE33AEE |
B5972B9953A19C65379EC5804121264349D136C3A0E767804FA9FD3593FAA952 |
76BC357ACDABA577975D7609F9087538FDF4D3A3E2B37D8B82C8A94A8E250DC6 |
04A01CB7D25213FE0A22497033424846202CCD5DABB48ED7358541E2A52F7DA9 |
D97716FE0C19CD69D70E847D6B6913F478D20D1A5D04812983471BC6D9367D49 |
CED06E574F7500CC80A46FC15C17ADE03DEE81A3585F14293278E61C243F6F72 |
714306A711646506EE3B269CDA3C2D5F46EF39E8A0836AB7E06A70E2F4F15232 |
E5C897AD45618D925320969DB3D89A4C4FB7F9134F3C3182C8686169C6014E0E |
9650315F7F81D95986BB4309D13DE626CDA9A8D350317F9AB58FCA9567A35D7C |
E94B5FFAE10F7F9861833C9065D652D163BE37C6A8F6B9369540E507AB849A62 |
CEEB086469251FC9A202403E7388CA5B8369681148C41942B035A279C4DA76EC |
29E63D2CEAD3DDA830746910D6E034B04668C3AF3E11D018028E73842233402C |
83EFB7DF7E51D30973D14B2216B5125D9B39FF34C4B5CA2C425047DAA88774DA |
6F3280D8628B2DEEBBEF3EF21131709304E25655495C9A389AF44DCAECB31892 |
3D28F4313FBBDBD212D461804F6127B6E346C0C1D2450554AD22B6C4A994EE17 |
2717775A50D42A3CD8A63082E96630A9B74D586F9649FE157E2643DBC39942B2 |
6FBEF96612B703F14C2FF7D08CF32D6F794B501F597B6E529CD934F351C99A35 |
722A98CAD6B0E58A5D4450E3887AD7BBDE75FBEDB7071D236AE5DF5D77DD35E2 |
646688CA0B4A91E76AEF3C8E4AC4C9206818361D6133E6DBDEF6B6CF7EF6B38B |
C21FFF3A1E5FBF24AB0A87B70D7C38B1744D31B8A3D64E022943CB42F2680997 |
63B668105F3DED03715E6FA574B03A02A7E95DAED7BFFEF54112C2A394F19573 |
B3172F7FF9CB1F78E0014AB50C6A87990D054A4CE3645B98E95483E1E164D094 |
36C9A42284C4905A6E182FAC80AFFB0D97649517C7BD831BF0879665CEC116AA |
AC73486FBCF1C66818C10DE228A1A74B18A223A19F7CF2C94C062FCC6EBBED16 |
317496C0015327AA8E6002B643E6917785F8E6ED48BDD5555F0188E91EDE0F53 |
D15A40F51E646262D4C939D6373C60666C6BE85550BA16D8699364246A151972 |
C1066DB5D5560F3EF8206E112B900F6A5461280A540F38E080952B574225DCBE |
5A2E430CB4F91D9ADC5E7BED75F5D5571BD327D64D33E36A8FAC8282070473C8 |
B897EDAC8C6480421E52344ED39D432D73F0E77AA39720181A7F8D4D514C69DD |
1A21D611BCD6BA843A28CC87230C5BCBB8C7A8621144A31D4D32154793A04B92 |
1DC0F3D0731CDBA409307953C888D1C15A16AC88F4D03AAFF59C220351CD069A |
66F3D00C525D725FFCE2177FFDD77F9D9A0DC47059A07EAE770FC407C191515F |
D2146A423CC9ABA8DA6032931F9846D0D69E5D3E50AE268B019DAA0C987904C4 |
793E948BD960ACC7E985C417716FF9F2E5E1255ACCA4B6B59B66EBD6B9259A95 |
CEBA2846C81AB03D72C0609CBFF11BBFF1B18F7D8C5DA772FDA817101F4DC22C |
C36CD012FE9E59BCEACDD930CCDAECC77C6FA19A9FD8D768A5FFE6DFFC1B33BB |
F361934D36A110D25C6997CD41A502BE498A5A963C57D6E4239681A062512A93 |
C99799F0D65B6F1D56C153A1BCF20673E06A0A3FF48B6A2FE4BFCA44FFD5BFFA |
575FFDEA57DBC47E12E272DD75D72D1171C387F94941CA802B5C81D0A41ADA6D |
C80321158A8D35D93F5F62C931EF68F7DD778FC8B2C4EE4F6BC0175C704114A3 |
D6E3BA073757320A9FC0915F2BB5B65E0C64561F59F398A12CDAFFABFDB0E641 |
629EA9353A46BDD00AEB8D4A1A0EA775F4D0430FBDE9A69B822A0C1E5070340C |
0B683DC5B3F23CED8DB897C8B83BF8E083AFBFFE7AA44328BE5DF6A414360E22 |
4140C9D27228F88C810FB406720CC24BE66AF2AB75435B0F685FA22006525A9B |
882016F969BDC9AE0C15B390241E91AEA660B6A227545D42B9AA4D4455B26808 |
7A0864224C446188546AF91AA8D0DE7BEF7DDB6DB7D105A14D427872B3B1CDBC |
919AF0E492224D2AF955CDBED62A805C18A350DB5CDA48715128AD59581252CE |
2A039EEBFD0C6A2EF83403B61899A67BAD0210647D19D6399FEF1D45DBC29867 |
0DB3FA41B0BD993689ABC5BE00B52807C88376C8F151642161327333D88D138A |
A80479CF0D74D843E56034A57CABC229F7F0EF1E7BEC913DCD3E22BC0EF29EC1 |
3D98A5D542DA4235D2475A8FB6C96C21B355F032B0C67D1934F20A55441C916D |
8F6AB8D72C1A2771212AC43DB0C1671696D9547F188EC69A0D0C3BC4AF0E39B6 |
A7D834FBFF3BAF718F1423E2001C8A5019D283F17DCB2DB78C2E659E652B0EAA |
FFC32C5EC015BDF6D65B6FDD628B2DF2944AD26852F98842271C36981CC15984 |
C34144B070323E2C41640203B0A64295101B33A5305D0B27ADB7DE7A519B0C6C |
D11E4ECE0950E518B05F44F3075044C10CEC545E1413AE956B16BDEC4FB26856 |
286C0391566C3155C05040CD538CB6FEFAEB13674437928A7B4B2027BF9AB334 |
7D33F90F048D4FFB1DD90E688181E88B2E194C30269618C8EA73AA6C605C929E |
EB35D76B8013F61C68E7E0A84FD759594D65C080D5813C6EB51C15120C966D49 |
80B61C2954EBB409FD58682BA8C11A7F32B95A0F23E227994D1556AA1743923D |
EE45F61785A7715866E5AE2E85CDAB7F072F12568160FB7852230CD62E1799D6 |
1D71D1E15CA880C518531B205AC77BBCB0922B88219B37D17CD4F3B9DBC23AA9 |
AA5F68D5BA722A64C443CA2AE49B57BFFAD5F7DD77DF9A85BDE346A55097DCB4 |
AE4E6D78D40B9898A3B128033658152149F8D75CF3B690DF8B7295199BCA81C2 |
C0C962F2B5020C6EF2B6903F5180A2F54E74CFF466F0E3DE74005023E912F995 |
6FF6DB6FBF4F7DEA5384837DF8C31F8E8404929047646D7F5E5403660925C3D9 |
27BA565720ED3DD44A6BB2689ECD217AFCF1C7D586D5B5584B44E76BAFBD96FA |
8F08D68318AE4A636DDD8D17C3B4F567376E40C846A59CD880D8197E49E530DA |
0D056AAF7CE52BBFF18D6F2047230392FB186E410D1D50DC4C6DCDB33518F27F |
2308EB8A2BAE38FCF0C333994C4C6D15132889CFAA9EFF1F65F16A8850D17193 |
34696EB4D146D9C5B5D75E9B7E0CAD84F2834621BEE1DC0862941730940E06CC |
86B5AE3104EDC2A58C1BB4B915F17EE1CA791DEE2B108B4242B8CC5D08219422 |
134AD8061B6C9041C29EADD0B4846B0050D34D08057AD9B265391B279C708292 |
A93743BE77DD75D74F7EF293F9097E2390A99380AA31A8AF3940CEBAFB839F34 |
C74DF33CB9C5B8D7421A97FAAE881AAD97436A8B798EB9F454814E59EC273EF1 |
8941AB933A3DA127216BDD0A3208516653A020A62756DF731D5F1E3CDFDBA8E5 |
2F891024E5DBC57DBE94B9370952CE515303E0C116C726E1B81A6607623A611F |
D4651BF74EAEAAAD83C48759477B3C2903FED4534FAD559AFEBEFFFDEF8F342C |
5F69BDCC7BEBF5E32EBAE8A2DC89B5837C872A260E7C9F7A796BFB673EB3F6F9 |
491B92419C26CEDD4A4FC5494B40F01936A345041B26C484072B035ED3DB110E |
AC7D386E2523AD1361F90ADB5D4FE2C0BD52F9F1DF6982C6DEF64C6FAB034BB0 |
C01969662C73C0E0C73D79A4BA540873835C44550DF220910FDAA2A3BD6CBCF1 |
C64F3EF924D64AC891557A8880238D0A7F1CFA62460E057BE28927B0F9D55A2E |
6B7A575DFA1FE429950173A3E74B81D8BC11F332AA6AF51057BB05C42A27227C |
EDA1871ECA7CFEE44FFE845FB103419323363DF8E083AD873E487FF41C57FF4E |
3556E7EC53A982EE87C30CE069C2C795731EFE61D0578D7E023BB1D942CA812C |
4168B2DBF985ED1BAD2F6A44E8AC538AE42257600E48A355E55FABB4E4FCFF3F |
8B57B857973EA29F02A0B6B5E73FFFF9BC54011FB2A88C42B7A8EDB7DFFEEB5F |
FF3A965BE2B9EC20665552ADBB78ADC45D756BB41C5601AD1F8477692EE3ED47 |
1C71C4CA952B4D8321D5C1B8B636A92467DA9F871C4AD77AEC462B061C2BA649 |
47AA2C5F95FEB6B030B2546F41C6671B8D5BD7035AA73BEDD9E14C6E9E45E8F9 |
B7C6D0D52824A26C10EA1745C5B57AE74D22FF434DC8EE1DA41D7B3F88D1A662 |
3A4C59C6F62E53CFA6E3DF82AE65D5545CD74130E0C1C1ED37BCE10DB7DD765B |
EDBE80810A330FB61FF536B80282E3B804977121D251431149A8BE74401CAC59 |
88615FBCD5DF392E79ED4B1BB70C2DCE51C2F6B86661F38F51AFAAC1310FC10D |
40B09CA1CB4E870BF82FA2FFA0EE69669B0318FCA40F04920A4215472C1B113E |
61A4029963CA01D8422B13AD151CEDAD32EEE5716A8D14290320426921679479 |
9A1035D7BB0ACE95FE8303B23CED345C82017B2AABB951DC501AF6430DF5AFB1 |
41223CF413640307D03E75FD2A590AF6418351990831220160F03F1FF09BCA6B |
463D012750C2F8C44F6190DFFEF6B7DFFCE637DF7DF7DD16DBE774C8715EFCE2 |
179F7AEAA9071F7CB010A8957646BD6429AE7D80AFC112DD49DE3C5F4AFC6A8E |
1E24B262CDAED15B83ADB1D4FFA8B705FB5B13B4F20EB0ABBEF75CD16CAEB9E6 |
9A7C19626A7F72823B9E99F40CC7A51AADF4D8638FD5D14B6AA336AE9AA18CC1 |
61D48B99CD3A9FE39EB9D1BAE162DC43616BFCCBE0FA0795C54B5A9456627474 |
6088B9D87CAA9A4D98F90703E83A40566E6ED865975D427091F5CC7536500598 |
13A8428003B30A10DEFEF6B77FF5AB5F45D0A90C58C8D3A4A8E6B30F7A21D46A |
BAD54C5703439C79858CA685B65801A0D1247A2ECB37C3BDF5CA4D18C3C7A564 |
D5B362E39FFF45456B91644D1BD36C75D16082BC02DE667AB1EA6F0DAB5E33D5 |
F7699AC061821EC4B44FDB8D5A116E2A41AC34AE75B6A728A0CDC660934170A6 |
B610C0D27A655DDAE7A98751FD8DD38E8D84C9A81357751CF7243C3B9F15A35D |
452BD1B0DAC9D659671DE2DE2D116AC67935440F4A280F36250A74F6F49C73CE |
39E698639050338E1663646593D191D40F38E0805B6FBD35DFE4F8604A51ED68 |
25F25CFEC7A653250A8195A234BE450383DAAABD29AD692F9D111A1293D6654D |
BBF3CA80353829AD5ACEC2B023A7417EA3D558E71616C66A53266831BFE2675B |
ACA296331F974A64B842A85AD82682AFE98B9A240720857F60738688F9769478 |
743E037AF4CE9A05AEDD11ACA8A2CC2F4F2E7CE16829588972409E99342C377E |
08B3B3FA18155158A9E8076DB47BE6B3F52E46A3A034951C212FAD387A7465B6 |
DEF0787569510A57E6AC412AF189CC4D0A331B2BA0D5B0624BB54C303E473BF7 |
E7A73085BFCD0993FB82F416D0E26F4409266D78BDEE1F83B969076465CEC0EE |
A8A38E3AE38C33DC3FF30E2555BA126765E557064C3C170C9BCFFFD765F1222D |
E25E95FCE1CD023E7A2330A45B0F0808481907917E28EB765FC14E72D1451745 |
18F2110DADF5B83A5B832F82F7410B70259B4EADD06AA31BE462896AD54E45E1 |
FE3695C2D8168B2DE006A2DB486F07E04C75C58A15A79C724ACE0CAAFFFC686E |
20E230C85A3FFBB7A2E500FEA87438E011D5CDD4C2F8A900B1B4AE667BED005F |
9CD73FA4CA5299E5A8D4F2AD0603566DB6EBB847B504FE91BAA2ACE711F3C76A |
0CBF0CD817D91A9910FA71A98E5B8B29D25B0D73ABDB64D93C2CD824CF60EECA |
67FCF7031902461B7C7BDDEB5EF795AF7C453D58D34525FADCBC4486A1C83970 |
0087B366AA114D38A7DB6EBBEDAFFFFAAF070DBC9FB413236CABFDA9AE4E91CE |
F3921BE807C3718086288DE99EF7CB566AAA54B734378F27D16103060C9BE7A5 |
06FD4A66255C9A25AB21AD566262BB07B9CEF51079102AAF9DC58047BD48AD51 |
38F91C95F4D1471FE538032BA326CDBF50FE803560D7851DDA040F564A9C8AD1 |
0CF26C339A74900316A89C9493F203D4A8C15EB5E5965B4603C1716B04B26A40 |
C85DFE42F15CDAA69B6E4AEB8E8C5CCD69F2DAE863BFFBBBBFFBA10F7D88AEA6 |
4601D7DA88286348B15870C725A4C34D69250ACAF1179598357EA013AE5AB56A |
FFFDF76F93123DA3B9A98EADCA629552F36E2474F01E0116528BD21C886447EF |
BBEF3EA69BEDC966C015ACEEA6C1F6FAEBAF0F9F33916B9A6E6AFF91D18E7BAD |
3B05CF59B1D379EA252F79094A7920F80F338BF7E0830FBEE1861BC8239271EA |
F35FD3BB29F0D9361218AB89A234D38E2544D6B9EAAAAB54A643A46878803B20 |
2F0A61C54DD84AA007F2074E1AA29F80BC6165AC228BCD1BB17352EB67F554C1 |
F7B95E460A88B1709CD30AC595F5B69EACE9E399CCAB5FFDEA77BFFBDD471E79 |
E49A491F313C256DA2303DEBF65E339E5BA87683E53F59FD6C4EAD6982F5CA3D |
5893FC462BD9A8B41077024B7843444B389CA6A0F95ED65FB560AE37935FD33B |
A4D6C63BF9095F06DAB3E48317C15D02FF3DF7DCF3BAEBAED3A8058630084697 |
238E38E2D24B2F6D5D93B647A135CE4817017F8800627FC725A0A64DA4F24C06 |
C3497EDD6EBBEDBEF6B5AF79E8A61DF0B927CA04698735A05D741D95D646B38C |
0A06D150659A54341B474A64FF7A7269BE53CACC879A3C2ABF57128292E2D4E4 |
842E5BB6EC8D6F7C63DE72F3CD37A3AF703F2154A86BA8BC0B8C2BDD0EACB008 |
30253E9501570B10C03411A5751502E5CFB098C0C1EA81D599854FCD90DAB630 |
0DA915C77C9544AB6C3A8B016BF3885C1BB4D143A14EBF56694C591930621CE5 |
C103B1DD77DFFDA69B6E0ADA10C09C9FF6D9679FA83AF2DA6A86AD7ED68A12C6 |
A3F88D12E14E3BEDF4918F7C8482A6D92FE533BA47FCC66FFCC6673FFB59D229 |
717265F07DF7DD371330DFAC36A8E05D942B01F8957EEA75D6913CD7BBCB545D |
D4E81FCBB3B8E3EC6C35530DD8193BCB21A5D5CD4F63B8F4E2B452177EB07FD3 |
22527D8151F5A8ED1E6C834D90262CB36ECF0A246EC3D9C5155E4D88D6208BB7 |
4D1C8DF2E045CFF6EADE201DA19E0C849A6BF10F3F8B972285AF78C52B9E7CF2 |
496D53F686AB26414469362843457E8CE4C16271B4CC4FFA610DFA564A7A1C6A |
6ED23A09D732E49B3A59F9E9D65B6F0D1C5AF78BCF9742DC35F3A41E2AC82810 |
D60B50AF51EFE810200474F8268847E306D909C649CECC5C5B401C1D6AF57881 |
8D74C03072267FE7777E67101832EE7D619599D62C593EB7758117F9A3CA5895 |
01CB7E64061C1CDF45B4A0B60D369A4DC400432D058B630F188C564D193CB7B1 |
351ABB0C3CD47A46ED02AC794CB51622C023B556EF768C1AB168980FDF18BD82 |
1DB59AF44DEC19F7FE138B0213D92BA24CA6044FB2C79A818A6ED97AEBAD177A |
97D7FDF66FFF76D417300AAA322EF975302DB82F8380AE864C06D3727EBFF7BD |
EFA12B33134552B33C060E85D1C29267A31E053DB7B006351D415AF7D1045B76 |
DE79E74F7CE213A385219CE6170067BC4588B690410897C1F9F01B7FD50C3048 |
99D3C8AC605A5757A58A7A4C24A46B7A056F0C729C3B77994AD4D12F33139A85 |
5B4C9E841CD48F6A04528CE04BB88C9DCD50273226C8F9C217BE905C6DC829D8 |
482F1CEBBFA23269D5A86E752C94014BF0E4873FFCA1BE98DC6FF208D9CFB5E1 |
4D5B683068DDD638D7EB3CE72F51B1269E09ABDA4068D4735C45186DDA5ADD39 |
9E4083115078461664500DC70055F70938627926C9215CA1263C706EC58CEA0C |
5F679D757254E67B6BE175D75D97D657E810465155E4C809C904082FCA651ABE |
5A85E2E72CE19ACDA60C37015C681BC1ECBF9A5CFF1765F1020A6D5338B410D5 |
C793AC094207972F5F7EF4D147A3777236D80E737E305A444E923EB27CCC0F19 |
879AA58A99B921F26C3430400AAF0556E0B7F646E321B3BF1901EF206F37A4A2 |
CAC215B5F8B2367BCFFC831BC1759CA0185A58E9B3168BBF9AF424696322B046 |
73131DABF729CAFE52856DDC334733CFC0E4D8638F3DEBACB3C02B9BEF6A5737 |
6C1BDBDAEAA992B0125F6C776DE256AF5E4F696ECDCFC92E87223FF2C82384A9 |
1B306CAB3E8046317A4455D5BBEC3BE687908F3F9F5CB927800D4C7444C15774 |
2EEA96630E215E51FAB122E0E5C91C429E82691C3A3466683AD4CAB259AD8707 |
D7441D031D46BDC58D1E25432E3805E02477DA8A95652A6E42E6D0391043F360 |
2016C232A8AA6FF740399C5412AAAD1591D85AB6833243F2F58037F7835138BC |
38AD708BEA7AA81EE581F9BDF5CA1E468788D50804EF7CE73B7FFFF77F3F4B46 |
56184F8A8DA3270D82D17252328D37BDE94DD1F0502B45B93C92798E4B0FB11C |
C30F7EF0836C7AF642110A06896C074719046A4D5B37A779B0555FEA0C757E99 |
56C00D00BC4DF5AB08D5AA15B907C75CF171BE57FF8588E51199CE79E79D77F6 |
D9676371945E8D4BB806F447E9D3EF6BD388B630E6C08C41B92065433CE04638 |
016DFC35C01398581BBF2D0C05ADF19BB5FA349134DABD01636DCD37EA65BD49 |
FD78564468DD3840EE41D61FB488C653E7D74A45BD2A6FF2326606EDA84D575A |
E9CCA3F91EDB66762248869204C7AD40443DA7B8749BAA76AB915DDBEFF4A5E6 |
1D08E671FA87288E65B1E79F7FFE49279DF49AD7BCE6FEFBEF771747FF80B378 |
AD8AA0D46FCD3CB01F7409DD0985624A882091781E7AE8A1D0EE00A48A59E861 |
4621F23A7C3C19E4CF2617E7936E7AC493433121BBF63D658FC2297367F84DC6 |
C4C9E1BB68A433705FF1A0D57AB181B3CB871F7EF865975D665E4DF537D713BE |
682D49A22DA4654833ECAFFA0A5BF3F18F7FFC9E7BEE09AAA3B504C299003A37 |
548393A3282DFED763CFABD97D2296414E363A608F782A311D9522069C1DB025 |
7CE5CD6F7E7364D9134E38016300C67CC24FD8ACC027187BE28927EA21B3E6FB |
B8C496337E3662ABADB6FAF297BF0C0273038998B4D202B570762201CB8C2FB9 |
E492638E390642660FD4AA858F4B2715EBFBA036D568C40CBBD9669B65B69FFC |
E427ABD9B3150B271B542914E19CF066F2BEA44E84AD5AAC43B3D09A5E5D0440 |
FDD2E47AD5AB5E75CB2DB7383DE8A97D295AA98D3CD70B5968B566643DCA7C9F |
3151A6ABADCE6EB294D7B76521F2B7F82CF9AEC6EAD69510345D2C4F35382E38 |
969FF6DA6BAF8B2FBE581164D75D77FDF4A73F8DE2483C94F9B2226A35500FEC |
16D33C12A582851B9EA6AC6FFD4B8906C9EB10795C5799C36FFDD66F5D71C515 |
6D4ACFE6D5A142C1EA903B5C8AE31E21DFBA2D014C43F4648B15E302614819F1 |
EAAD383850ACADB837EAC9CAD0253116D021E2E33B9836D1F357357775E953DE |
7AC20E084C1E0A3A3A2768C71D777CECB1C7FE1FF6DE044CB2B23CFB7FCFA9AD |
BB676355715805C40CF0810A28EA77B99004138D06302A268AA8082220209BEC |
6E8323BBCAAA28E03F1143142410C5200105090A61191411148890A808220333 |
D3DD5575BEFB9C5F9F9BA7ABBA3B12FD9B7069053B3555A7CEF22ECF7A3FF723 |
19E21209068A000C529D2976BE7F9A8192EA1C861970B6DB6EBB9B6FBE794001 |
F3B41C89CE8F2002F804D0402CD3A2028EEB6EE4796864CF39E71C16AE3E9474 |
D684A1B09D961FC0BF1455A7420CE158EA90423A2426C3075E980BEC162686EE |
6C595DA4E894BEC3E9C40CFF9757F1226E486CB01974ABB4E0250CCEC6BEE8A2 |
8BDEFCE63733C25A79BACF4816C65EF21DE2CA901D010AE1C218848269F9741B |
3A121DC338C7248A4E2E8122EB8145462595390523364177BEEDB6DB4A8BC826 |
000C4F4182EDE5DF844BD260C0546728B06707FAF131DD1A1C66B65177466325 |
00C689A4BE362634AA7AF39AD7BCE6AAABAE7229B95FAC64EE3CA28A9065AC76 |
8C3C135C385EEAB630D18A8F9E282280781553DFAF5BAFC7C131A4C5184E7F8B |
B395EA380D67C029E101D173DE59EF78C73BF4953499B53579FDBFFCCBBFFCE2 |
17BFE8EC43C42B19141653E614E0917B2205E3E920C307E3075E11F30B705D5F |
39599E82419F6AEA5D521844D77445C3CB99597DE596DE0862144CF4F61861C7 |
D51C528ED22F85FA3ADB70DDE93D16F9D62128EB121C74B4237F0D534D43752C |
A42468F48461C70669561D058E3FFEF8638E3906D51B69255C3421B951CC54E9 |
9766F27DAD805D04CCCA61BD791FD95CB31CB06E739A63EBADB706103090A2E6 |
133915B208FFEDDFFE2D464DF8B9CBF0FC22CC895260A9CF08524B814B358A08 |
20AE45857877FF5DC4B8CF63C112CBDCDD1DC49E8664BBDE20C1EC40CBAE958F |
C13F9187FA2B11149B84B24F391B26265804D2A0F815AC90D26EC0E22B022A12 |
3341637ACB2DB778555125FDC217BE50BA5976FAC73FFE717761C442C942B129 |
781962B3208C8AE9B03D562D858F123A04F4E04CD7615B6DB5D5F2E5CB357CA0 |
D2ED0EA24D99D41D76D8E13BDFF9CE6CE92543A5F43702EBF35948791C84C45B |
75BFC648E3E2F3FC0F56F192A67DF18B5F7CFDF5D7C3D5E0C212F04AE06ED0FA |
0455C88E20980C1E910ED0875B6CB1C575D75DA71F4A11DA2991E696896D641C |
B3C0BCE83E77DD75D72BAEB8E28C33CE78D7BBDE852D92D78447561BE69B7437 |
12000B7C4B0F5D82D8FDBA032EC9FE39D04FBF3E9724CE0A16AB1EDFBE6FA326 |
33B7FDAEF7EBAFBFBE46C606073AB25B378B754DA7531226817AE94B5FAAE5C7 |
66C10FE3B486D9A396A27D594C675902541F5B89B89241D6EA81071E0850563E |
34A568D11A20E0E9D30E5827260CC14FA2BA0CFFDEB9039CEC343D3E49008D15 |
CB43C97FD52D495B982A9275F28A57BCE29A6BAE49D379A0B4A840961A139ED7 |
7C909A29EA85627170AB6E59ADBFD2E8FFF88FFFE85CE9739EF39CD7BEF6B517 |
5E78218C579A44DD004DD4C115A60A3866C248BF242B75663D9DEEF06B5FFBDA |
D2A54B8F3CF2483DB2EE6D00851081BE186AB184BD31BD650BB61A67E057D622 |
244D08B31144B4099B6A6CBF97AE0B935003C03EACD449B29032C3CC1DE63863 |
23301D98262869FDF3E52F7FB98433D98A58EC3BB03C06DE3B214DCB45AD31F7 |
3FD015CB3A991A2484BDC5F198F25476388BD10F645E598DE286DA05E169D71F |
CD1D8B410830B806047DE4D0B1D56ABFA6DC8A93C8AE87D13AAB898670855DCE |
E7AAD76C3AAF88EF16D43436071D7DDEFDEE779F7CF2C96C0A9C131DACAD271F |
838D1C738E56B12904F0754BA0C9E4FD1F74D0415FF8C2174C0DE9DCD39365A0 |
58A064EC748A9D77DEF91BDFF8069CCFA966EC63ACA5D535314C838372CE596A |
096AD1CBF1C5ADC1BE2622E798BEFBD6E9739DAA5FB7CE8652C472CAE93A2C3E |
E60CCCDB21871C72FAE9A7CF5186E45B725D0D05B27328EC08476AD4349E34F4 |
76C3F9C89005B722E1EEDF65152F8925A237ACB368959BFFD65473BCC1796260 |
79105AD292B3C400D202D08CB8EF3A87B1B2713B10255E76A4A8B3BAED36BD8A |
C9BB93CA65DC64AEC96833B4E7231FF98854B8CE496F699B9333B25AA6A7CE25 |
99EA1400F503BA04FB4A776ED4BD798B5CC20F28CFF0137697C42E567056D338 |
474D4F5C1AB05BAA238A269835A187D786F7888E27D0A711D0AF7406E22BDA6E |
9FFBDCE7DEF08637E873B606672080E60E83C615CE285EB16E37DE786342EB7E |
46DE60497069B664117AAAEB3D0198A8DD71863029745791BDCFD7D5D9DEF8C6 |
37DE78E38DACF9B8B374CF78CC3476D48338BAE0940D5D92982C5D4543E7CEC1 |
A83A074219792DB3DD77DFFDF39FFF3C0EA5CEAC25670317D4926E12107EC45B |
11EAC42C33B493035CDC85D19F6A7665A4FF4E3BED241F4EBF32394C5EB3E6C9 |
BE84CFCB33E240AB438EAEFDCD43FF72AF256E4FA7CAAACE04C4F3F557F30E4A |
9C5A0C1D492E899D62FC1AE26B9B6DB6B9EDB6DB2257579A093D970D61DAF989 |
BB89C3B9E491CFA7B3D246CAEB54D726593FC5826C1C41F2774EDB63C1389241 |
58056FA711F8EA7D15DD8C163CDE4511988E06C650C7BFF295AFFCF18F7F2C13 |
9088348E9FBE92A839E9A493880D68DE1D3CCF03BB08D2833E1CBE0D53E77224 |
5635FB9A9410A78266DC2617E69A3B8B9B3D826BE9063456AE0B2DFDAE54FBF2 |
8EF223D00D54F6704499124BAF588BE6524FB581E396C54C2AF8755208EF7FFF |
FB659C5AE701C48F524CBAEACA2BAFC47A4A432C5AEE30381B084BC793571E68 |
4590CD596112C90A9C5B72B5007C1A4462F52C203F5D3DC912B7136CB6A3F4FF |
43156F5EF7C060C5E3ECEA36306B3C35260F8A90F5B3CF3EFBD0430F85CBC9AE |
24A600B3666A5C27419920735C609E4739324C1E193317BA379074A9B6A84066 |
F5EBB6E1B1ABC18CB3F394B8247598C6810CE5AFD969232250E03BE4B6C103DF |
7BEFBDF0CD16752B18EAACCCBC86448097D132C8B2C6C0E06C3A990E43E1A252 |
F645AA70E37A2F1790223AF2DF1A7F424A7BEDB5D725975CA2A78888EE8815E2 |
D29A23B980975D76199975AA5910A31C8C44B0C3E100CF404494EEA25A9671B9 |
B2A7244AF4B9B9E752C8B8BBC542AA4D55B74A33034324A3272D02F2438FC9B7 |
F6991C190239A1E988C8525FDD5C407A435F905479C94C0A67A317A1665F2B01 |
1EC1BC7E393C468835AE28264EBA102204833171B5E1E5C7D0D498E455AB5742 |
26B1C420923B1274443AEB66C85BE53547A976FD11471C31503890D50C0D303F |
D87C2426CC318E1245FD345C3230A0830D5070002636CBB14DCF4E71C32BD789 |
D875190E2E6675FD2A9E25FD159C1965D7ECB2CB2E175F7CB1C57EAAF14D4EF6 |
BB3C240A99816254DE5075C90A27F8AC6B5162600BC07598455D5363B8BBBEA5 |
850903ABCB51CF69BF9F554AD7610CAF543576F32DA1439D9BC06DD0A6D009DF |
FCE6375F70C1053C38FBCB5B60AA16D3FC38C3FD3D22509BB9E17367A1091E6A |
A4B4DC65815E7AE9A53278F1F92878E2BE899660777B436EB5D556B440C011D4 |
577419A3217CAA8D6B549DEC323C6CB63D9A6036856A0C21469CB6258D57E778 |
459C73B45575123DB843197250CE3FFF7CA84C5EF292975C71C515AE7526B2DF |
A829A9532826FBED56F166758D1690756DDA534E39E5939FFCE4BEFBEEBBFDF6 |
DBDF74D34D455DA14B00DC56306FECBED0C7DBA625717B6484697A3480E79E7B |
EEBBDFFD6E1D033A9FB4535EF1B1110020686F620A89FED7BDEE75140EEA782D |
03CB473C1B22190672739539CCA35F9F4B52B7FD9B74DA48A1AF00410ED9D488 |
1E5FCB72DF21717DB2E38E3B7EFDEB5F970886D79AD0A24B0E9C76B2FD4E3601 |
D5AEABEB54008E08FFEAB464FABDCF9929BC70EB2A1B3AD9F4EACF54E372B102 |
BD08D9922E4CEFD54CBC45E019D0E264E119A940481F9945DEC4DBDF552511E8 |
8E41E987658A099521075848C41B18C9882CA3DA42924B1B96A1B6370C2C43CF |
A59B876EF62FFEE22F24C1914B2C369D64D75D77FDC637BE81C4742C0D9B80EC |
581ED82B23AAD419F448E8C162D302A603BA9347765A3C5096AAA8252B36FA29 |
D9CC92D48A049C9E022F27864597F8E0073FA8AD27A14AA0058CA44EAB0191AD |
43790C9B88C884163695900399D11955637CAF830F3BEC300DDA0F7FF8436A2C |
91605EEACE61A3CC986E4BCB819E5D455D4FEC959982196DCB4C370FF20BD807 |
42D29E9EFE42392EE176EAA9A76AFC253351D2B13A390B8D3178B15A9C9EB7AC |
D0C8EB0C7123BB501059ADCBB10DB10634ADBABA5C410D8B911C28FE8849E272 |
B108C2B6027B903B643CB91F23C8A63C60E78DBD158DFE75FAD0861523CE1EF3 |
0FD99F2E7BA263148105BC4696940317AC426E14D96DD1C03DE8D635047A365A |
9F5AF0D9EBC5399BDBA325F5E88AE91959FE7945D88B611A5A2BFD8AC0BD5F13 |
23A3F22911C130840DC0848BAC42172BA7E9BEFB6FB78A97B02A6BAB5F37618D |
AEA74D3354380208FB00950081D130AA330B0536CDBA513C9C70445D8CAC612F |
45CE36DBD1035C69EC586E7ECB2DB7D4310EED323E03BB68E0F594B8247F2B9D |
366253C554F3B4442654737BF15BDA8CE7814137ABCBD90714F0E1871FFEE52F |
7FF9073FF801B38F382842BD38557CECF9BCE6F093512B3302E3430385A79E66 |
62164B75B3040343F0F501EB31BF6CC0013BD5DE7F0A69DAACEE2F69C590050E |
45861AFDA739225C44741D7DAFF7D40E6DB0C1065A0F0850A7EE0648BF63DB73 |
1BF7DE41E0AAB0B9B96EA4FA8AB2CF5D25C86B127B937BA09323BBEC374BC268 |
C7E99E351D6CB739B25A067378A7F01583E97286D813498769A9534011F19EAE |
0AF1C2C8026F0F65F4C813DD309A40CAF8C8238F74C28BE78A080F472FA84D8A |
81E268107877C7E3535DC7A1B351E58199A59F50A4A0BF1A7F5984AC0A143CA3 |
3D801C8C0EB4C61C7BDD483D4C4C3D23336BDD91A6974DDA86E36C9190196F3B |
D611A51AC0E14BE07868D84109685D69C1BCFAD5AF96E364AC0F625C17D29106 |
B17B9D7BA717354509E60EE6ACA36E7A0A80B4CE06A690C3F6BC93062573EF63 |
50E453A5EBA611E8864E172940FE064412C30D9684256B5C9C065DDECFA73FFD |
69943C862A00106226146B3A61E3058127413D89771D2F221E8062CC4364F0DE |
F0EB139FF8C4FEFBEFEFC88936BFCE3FD0F16D406C5993C9E9917BE45D442129 |
EE8203326F7DEB5BAFBEFA6AED04DD152AC7A2AD984EC31D6B52D36FB58AD721 |
539D1C6998D77C3DB6B0FC68B60401A9124FE671E274B345F94B151DA230329D |
DA71476FD9BE493510433F07DFEE6A6C77FE915D058130F54288FB7C4EFEA9F4 |
14B924ED0CFD163B6D3898E1BA9422504BDA8562492313919E03A4AD11508D2F |
A5BFD47EB092DDF53D8586CA485B42A33ACCB19C39AC4FCB442D0FC317F473AD |
A86DB7DDF6D65B6FFDC0073EB06CD932F4B49781716AA8077D8B02886A38D57E |
C080C35D4C6F9CE7DBCB42F389E10E2EBC81FD86D6D4C4F7908694E0B33C588D |
BAF4F6DB6F7FC30D37F87162E226D284C5BC23D09648714CC0C30D0D753C630E |
F7CB1C0A9813127C223026C18A6EDB6BAFBD3EFBD9CF52C7E2044144BF0F30A8 |
DB81B3F031218C05B21EFCB4D34E7BCF7BDE93EAE6F0441DB4C22531CE3CF34C |
39588C959E51525E9B8B9333594ED5B13E6DED919ECCABAEB4367A4093314A3C |
29910FEE59527DF7DD77D7CD0CF039731E07FC4843985E2605A68BE160381595 |
98831C3CD09745E741B4BA194FAC2F822E03F42B56A6D73051A2484793025B1C |
99D081EE3E5806FD9A53081B081BCB028AA4AA6D2FA6CC311E9327C62A6A2255 |
4C3D883054BEE36D539BC492A55FD365392BC0D1D6C438C1B1CF2B0657AA1BEE |
EA16A5C39044845C98D44898C95361EF138863E8317324D3696BE524B6135D26 |
7F70D06C4631C4F18EA273FC1C0ABBA859F2754E6DFB3BEFBC3336ABF2CFD9DB |
916234969612F477596DA36E758E11C090321AC56FA38A97DBC3032036E54090 |
2BD6FD4FF707F4192039D1FC522232800DD16606A5E2042D06BE69314821EBDB |
BFFEEBBFFEC217BEA00F1191849ACD666A2BC19524A4D57D3FC4D0BAFF55438E |
5F9F4B5293F8BBECB481D30FCC180C9AFE9E75D659084D5E60DD4D8F8728C700 |
8A0921EF5BE7EFB53564EA9D73CE396CBAA2E20460D82375C3C04B4290AEE39A |
35F94C32467575F4B159D0B5D2749FB81AB83218342C03FBA658CC4004528D05 |
7310E2D754C0A6D5C38CE031355CFADC818A33CE38E3B0C30EC39F4855C8DD4D |
82518A2EAB8D319B48091063214EB512C96372317CD155B6C386E5C66CB0122C |
3FE7593514B63BEDF14870A151089803AE6CD65D0B9956E3CFE3A27558657860 |
F5B936A34E4B8D5C9454C309B82C54AB73DA46DD1A928C460AA0BC546382086D |
62DE7DE8431F3AF1C41363BF0A1D036E94F50300C2D068F39977EB5EBCBA377D |
059A5A6776C0390FACC8A96E1C3440244053F9254B962C5FBE3CAFA9F2B50B62 |
01A1CB0D623893556AB7981F22228C6907A9CE3296B404812879F5A217BDE8F2 |
CB2FD78398E7806D68320993FF732ABBC58C8F4923082993ED4EA1FDB94C968F |
7DEC63FBECB30FB9734746318CA62503FCEAD62DEECD6E3310F8E615B734A5C7 |
18D40E2AE2D712678E29747836624D18DAC8E86896C8C1071F4C5304EFB1D984 |
CEF08BD0B7CE89C770F6D967CBEA8F2421C3BB8B29DF72CB2DA505DDE22DAF59 |
676D9D4560023FF12364A1B16B941411DBF2DBAAE2E59CEF7FFFFB2FB8E002AD |
7BB2E38E3899E5CAC21175C5ADEEB0C30EAF79CD6B8E3BEE38DFA40BAE580917 |
5E78E15BDEF2166C3D5D97D5A99B0160A23D8038F0AE6BD40DB7E100A291A7C3 |
A10E49E9A10887B8599E157C73A656BEBC8AA7C22569E85FFA9D77DA800D0A75 |
EEE732108C4857AA5984521DBB069F4F885EB24096AB96AB7940BD0DD9688647 |
6052CC385C805090CE03941751F8C6F887650DA7C5926331687C0E3CF040AD49 |
8A1771473C2F31931A5588EF24D5904C33C445FD67A405013DB68FB7B94B3B6C |
EB6B3476DB6DB78B2FBE982564167A6BACAC26ECE5FC6C43F4AE05BA8163E8EC |
285BE6C669C6C890F6CEB265CB90F5DAD1A67EE360B886B83D4E2B0BE3BDEF7D |
AFBD5B929D7194A24937A0576C736352DB7503314E1B2BE863891122E80974A5 |
DA41D202F8C94F7EE29FB013590C317AC7752D16BC6080585B9A99FECFED198A |
0098A73CD5C03D53A6A4E9762DC7D0BBD79B853D8299AE93EB13F2EB3CB50676 |
E79D77D69DFCE8473FD22E83BBCD2158CEE3B079A49A48B579ED7EDB1E649247 |
BCD7752999931BB6D34E3B9D77DE79AECE7732882431F873F8D7088AE8A1604D |
318179AA2A91241E7976D80601A32190CB840E2B381614BAF8CC5A33A6646238 |
C51236ABE887308D750732664924EBE0D34F3F5D2B0FF64A3D1B626E009D48D1 |
855E445474972480757F5C4547CE5DF86BE81360139B026CB64F7FFAD3324022 |
2E20FA318D5908A59954CDF1669B6D268B0CF506A40207976446AA528F68BBA2 |
A622412E63BA1AF0493C60FBEDB7BFE69A6B7E2B55BCD75E7BAD5323443F58EE |
4CB3AEA89B973131877339E3CB3443D1DC71A41A3432817DAD0449195DEEE31F |
FFF841071D64E14EB081F5F3CE77BEF34B5FFA1284F8B2813EFCE10F47351049 |
095268AD5AFC77B9245D6393FD8F76DA90072C2346FB9FB98084CF917396A2FB |
1DA5DA0005E59B2A235D934ECEDE4BB4A8DB09F76B76B0D9548543BE909B724E |
5E8E6CC78CA9090DAC0CB2BAEE22D5580A0BE58877FD751430F8065DEB924B2E |
79F5AB5FCD09A9184E35BC9F2D63E329C23C354AD21C4C6E541BAC0DF21DD114 |
C8EA0A13AF5E575E35EB967670F70F945138F63EE3A872331CE082497FAB413E |
F9E493F7D8630FFB4F8E6A60D9DB3122D28B168C49A214A205C6F7EA257D7FDF |
7DF769CBEB0CF2A8A4EC630ED8F9118BEB46DD578AF82DB1137DAB1D74CE39E7 |
5025E1E1C2A9D03935DA3A2D7A859520114D2CD7D8787DAB6B0182E15988ED53 |
F16FE23CF76BC1C2369E2B8EB323F0261848759F3E9DE1539FFAD4DE7BEFCD18 |
EA00CAD0C94B6A3C35D4D2BE3647EC39E81EC8931262345C0E3C29661C87616B |
5ADA90D9D5233B2BAAF5A981EAD56D8FA98BB303069F3129F654D90DA9CE1802 |
8945CEE3BA98495B278C7C20DE1AD9808512EDA0E8D49B7B3ACA38C7EE8CDFA3 |
3ADB959D26DB332C2205A885338E8EE85E79E59532705C730C9B1581D65FA7F0 |
37BE1CA38016437FC901477B33AE89D94EABDB268B89296A2043162AC98A9A7D |
0659469E4F8F0065074DE2502A7A4CA9F3BBEEBA2BFB6D54F1C2EEE63BF11400 |
BAD10FFFEFFFFDBFDFFCE63767F3FB677BB930310BE5EA3CDDD1471F7DC20927 |
10BB2680C1EE423502DC73F953AAF385A6124439E13D476E0744063B367A12FF |
3D2EC9FFFD9D36683BF1FAD7BFFEDBDFFEB6EE109717B5473A8A548EA5B0E4AF |
54A004043DF874CED7BDEE75FFF88FFF38E3F4917D1F0851E20822B38C73E9D6 |
BDD0B5611DFB8D403F64B496DFC61B6FBCEDB6DB6AB42522678BD35A740C84A0 |
1D0F24FE2673FCB4D34E8B5076F7724F352CD1728D8C8696BA6690C23FDD9E04 |
F4BFFCCBBF7CFDEB5FD7D9069AB80CA84CA91657BA6FB4D14612F1D75D771DD2 |
DFB5AD8641A51ACB33E3A8FA18D86D9199F22B64DC64554117F4A260ACF49775 |
88983EF2C8236577E6A1172FEEA3336836E6F2D0040285119B03BA92DBC91D82 |
04C003B350A4804F6658288F060214D30A6D8A27FD8637BCE18B5FFCA22D0F6F |
3ABF343B80AEE5C9ECBFFFFEB40090F039F1C4132596413339D2604565DC6834 |
8FE2C332051855FAABB5E728A9CE06F894C563DC560A2024322628A681DA3958 |
9BE2B3986D5ECBA0A8CA40B4A21A3505298349413911206D679DC79560D626BA |
B1E38F3FFED0430F8DBA031C835312A9F62B22FB9E79AB9C9E670D64F97456B6 |
BCA68232B92B7B430B48A3AFD58C700725EFB0ADBD7BBD077E49365BE69B2E73 |
48F5E2318E3BEEB8238E3822051CE3134F3C3E3636B268D102A92A89A046DE5A |
F1B8F48D2C03ADE609F9B0E3135D69642DC8390A7FA9D682BD051B39866E28A0 |
76F01D1784340650EDB913909E0383BDF3E93D34E236B60F073D1EC38D1406EF |
6E5CD56F52C50BC494356A7947E0118323555E05A4484FD5032EEACED046B590 |
E13019D331C71CF3918F7C8492682DD99D76DAE91BDFF8065C33BE55DD8C9E4B |
ABDCAC370E66E82F0A3B559C47A81FD90AFFF44FFF94EA28D66FC225F934EAB4 |
118BD4535D5D06F61E509295E8CB5FFEF26BAFBD9675F8F6B7BFFD739FFBDC40 |
07AAE1150B21A5640175B1C6E64427D85C6CE62FCB437B41A0A49A0BFBA312D6 |
3259E65E3C7153E8EFB265CB3EFAD18FA69A224DC2FA4FFEE44FBEF6B5AF6148 |
C54A62061945EEC87F3CB9593CD92CE045ACB923CC871FC635A36FA1318A2744 |
0D14751BAB343BB40D79E28C8086855E021A4C32BE60A3526D7B692D49E87DF0 |
831F4CB51A60593AB6EF887716F85607C2D17CB5E5965B4AF092088023C5FA9E |
2B122C0423E2F80A5BD8D866B67051B36B39FCD09FCE660F77E6273FF949D949 |
1FFBD8C70E3BEC30605F6623C0DCE41212EF1A040744FFF66FFFF6AD6F7D6BC4 |
3751D21625A4C348DC067F2FBCF0C2B7BDED6DA9D2F43A1EDA25576003F2A093 |
92B14BE0ABB94A5E51DA018893C041CE171505E6AB5EF5AA4B2EB9C4B95442F4 |
90B1A4A056410A139370488633C343E911D013C99C3AF8E0839D4DD026354075 |
EBADB7BEEDB6DB8ABAE005358A4AA5C7866EDBB5F2940C3C592CE18274630DA2 |
F4B724627009A41475A78814CAC02D4D743198B78816225980FCAC5EAD7D9ECD |
9B37D6EB4E1C77DCE15FB9F473CF7CE6482A267FF6D04AC98A9FFEEC8935168D |
ACBD56EF99CF1899189FF8D563BD5F3C923FF4D0F8BCF953BED1B016C6859544 |
83078EA6EE7CA8E7A4C30158531430995A82BAB3E11E79617C115D0739E9B453 |
04E3F0627761ABFAB48459503F2E459FBB8AD76A9887C274A5A383C959C0980C |
F0111A1644BB082221B3592D73CB50C34A236306BC80545ED16281AC89960400 |
756713F39A501E88992B978C4532B9920E3EEAA8A3CE3AEB2C57E0FD265C923A |
F9D3AED386A698CE5188F201DBCE2F3DB8EE2D9FCE4C34FC62F3C7CEA603EB99 |
C18FB95503466C1D024F23E9ABF3C84E923181C31AF367C3EA6A5801BB66C903 |
C8F3C62278B9AAB4EBB0E2FFFBBFFFFB5D76D9C5245C925F8407B91FFDD5617B |
EFBDB7364EBC565460AC5EED05BD414FA4BA22CE9E651A0243CDB1293098BC86 |
5D07AC597607C95437E622852F790D59233B9D99CD43A7E43C749AB12471A294 |
B3BDF6B5AFBDE69A6BA048C40C8AB95E3691F36EA9EE5E65FC47AAF1442E1082 |
7F9B8E583A00E2304640E3294DEFDCBC81EBE87B1288A96E7F64646B51D317BA |
F765A4DEB4B41C8E3E028126A9876A30F1994E2523E0FCF3CFD785786ACC5F88 |
7D004CB9529480A2DB3AB13D53803EF46A4272FD7CE79D77FED6B7BE25ABDD81 |
3D6302F821C812BDB42C77DC71472D45F27A38184E4044CE3BCBE1489A9BEA0C |
0B092F99025AD2914BA384A933104C64115A8BB81506434CA1B78E946770D75D |
77E9F9A55F35401FFAD0875C43C9942343D948E47AE94F67527E2DB9850B3A9B |
6CFCACD1D16CFE68BEF8D90BD65A2B6FB424E2277B93AB1F7EF8B1C756649D91 |
89B51616CD562F659256D94F1EE8DEF7EFBD9FFE6CD56457F681CCD5AC5FDEAA |
364FC1D2659A35D0E48F991B982206CA4C237E8790D11CB28C0D8FE5E1927CC4 |
D38C07B3F42980617CC9B15185098286CDEFE8AEEE41D20D3F2C85BAD518ADF2 |
64237D1004FC6D86EE69FAAB0197B7A17971B4608E64E1537D810C42EB6CB8E1 |
86106B44A19F0274D0D25CF6FB3DF7DC033A5F96A3168C9EFDF8E38F3FEEB8E3 |
10AFFAA7F6334D2D416FA5DF804B123F237F1A76DAC86A1A5B7622774EE46AD3 |
4D37D5498C2B49752067C669C23BD73DC3029DAA46F46F79CB5BE4CD3859EE83 |
B12F5FFFFAD74B3AD8B37492085943587E805F33CAD0014535F095D7217175CB |
6E87E31C78C0178FC966DC4A8449ECDF80F553548401A493A30DCA4B1B444BD1 |
6560EE87A3E1D53D68FCF58CB168D5250F0E050F642E91D494E0D3346CAFBDF6 |
D276F3C14568C7BBF9E69BCBD8D255F6DC734F7A7A6A12698DE52228073F5AA1 |
77B22595373852141B0E68314A9153915FB4616A81C0823775620C0B13852EA6 |
7725B24BC7924605E0CC81C5618F0386F0CBA3AD4B683C1DD230EA902A7023E0 |
B8568C18E73517B7B35DF4DA0247C62ECB6A9A2099B01435BCE215AFB8EAAAAB |
B09EBD30403FF56B624B0C08A28F280806A41F38ABE35AE5D989150147B0F745 |
E5925D7068E0986B9E0526197E9855B4BE46A7423404E8E7B4D34E3BE08003BC |
D834B31939398408396A2036D877785A585B46F4192B613F8C091E205F343394 |
3CA8B5D75AD46E35D758347FF1E275DBADFE3A6BB51BAD6C6CA45189B2BEBCEE |
22AD2AFAABA4BC9A9ABE897E56E8A9C66508365A237ACCEE64F7F115E3793F7B |
6275B16255FEC8A3BADBFCF1277A3F7F68F2170FF7FABD4CCE314D190DABCEEA |
FA57C63452C1319D26809D9B35C66BD7D2B9115AB365A118344D0F449BF124AB |
5B6D509687011BE112928FB7DD769BBE72FD7BAAA3AC14F217752FE4ACA60F84 |
EA84580D9FE8182972164111CA5E81F53E25459B4FEF46EE055AD42D01526DF5 |
93B9E1C6623824D53D2AB424287E307A50C76B3CB53AF5F358FF6E13523FF94D |
B8248721754F974E1B59A0894FA1F4CE25F8FBEFBFFF59679D655A1876A53BD8 |
A7CAF38845D5C5F4FA9CD86C80056C38120BB83FD44567A02ED3580D6BE27840 |
9EB222D55A30D538C72A5C450CCCA1574058A9C6582010638DA26BF6DC791E03 |
881C93EB029AA11FF3C05AD5EB0D6F78C337BFF94DCA521943C0E414FBC50245 |
7CA322B0D00F9C8A61B1B5E7C3D65B6F3D2A67526086B12CCD43733D2F72D7D0 |
6B21119E352AC217C58AB59B6BE32CAF19CDF439EA501BF0D8638F952DABF7BA |
195918AC28F37FF1D4547F1555B7284B69645A1CC02CBCE80FAD6F75CE73CF3D |
576BCFB4DB31F8E75F010ACB2B161182282CC88F7DEC63E79C730E30C0184F45 |
CFC5CAB1BC66024E1502609F7DF639FBECB3BD062229AF1E41A3418CC1CBC696 |
9664237C17EC7AB069DE748D9AB3DAF2CDA29B243DA84F3AF39E74D249FBEEBB |
6F8ABD13AA9D05A2A5573705D1C11189164B4B6C6D10CD769D2ABC3765833EAC |
30DC02BD809B9B7F2405DA7D87FEF3C06C4720AB1AB85615AB9CC8ABCD9797E9 |
BD0DB7DDF6FFFCF09EDBD658B860FD0D166FB0C1E2B5D698BF72E58A871FFEA9 |
6C9146B3228249F271BB459ACCD378CA57EB7DBB5B86238ADE4A6DE8466B3435 |
F2D2CF4DDD2CE523EDAA5A346B35AA8D34D1ED3FBEA2BBAAD378EC810D2EBBE2 |
072B1E9FE23A2F2A2202DA23C6641BE05EAC0A5789308573547498A446034DE8 |
752070148B44673C09E424D0B85330800563373A7A8D03420D8F2722D265516A |
35BFEF7DEF932CA6A0D6D7ED57CD3A6476C9B793023BFDF4D3B56DD2EC69ADFF |
F2351091631CA4A2B41258702C74BBA404AB634E4BDB6FE9D2A58006DFF5AE77 |
7DE6339F61FF9F7AEAA9071D74902C06C920A739B10A35447FE0924CBFC75C92 |
119A84D0E4A9B93D27B007B289A92AF9D0AA30271DA2D076A1150F3563A0F47B |
75230DD21376336295BF234C915E037D133590739659DD423822FC350E24E375 |
2A77484CA10556AA7B11EA87B877E8331E507B6438AD6860113455460CA1775D |
5B6F68B771F8A9468647F80B9E288F9687AEA3787BAE1A62780714700A51F458 |
19EC854DA04BAFD82F0873A45F3341C6D031889614F8E0305988C3FB3171D325 |
5D5DFDA8137ACCCD69430B514DBACB70E3231435899E051D061F7BC7740ED974 |
32C754C5B7E58E7315670CE99443AD5AECE694EA96CFDE4A989E990791ED4DF8 |
149E17787076DB6DB74B2EB984B85631BDF9A5CDA55436677DD9DD77DFF5F02F |
7EDEE9B4FA5D89C2FE261B3F73BBED5ED01EE9569ED0D89A8BE67546DA8FFD4A |
02F797D50E29776FA3D4D6D2C1D222AB8A3491B289E6E44AA9DB5EBFAC0669B6 |
475379E4782ABA8D567B7424EFF7345BDA9FFDD1B1CEA2459DCEA8ACEEE2915F |
B67E70D75A0FFC6CE137AFBB413ABDE8A7E7FDD112CD1C7D57BCB84D6D8AFC72 |
F677A0CAD9664B367B45E00056227E38871A8BF1AE5413A90CC487ED8EE09713 |
906476E075E2F8CD36DB0C78672456CC42E908BE26B091D918B3E7D6BBC60418 |
D681C91649F8E0B2E9855E8491906FC08FD17284B48B632C86CC561373847FE0 |
92FCBDE59274AA08B39546A870B29A5CCCA79599F258F5D2A27AF39BDFFCF9CF |
7F9EB43D5C0D447AC970EBFC7A04D904BBEFBEBBCC3BDFAD47430F7BD861877D |
F2939F4401C7CC4E747F5D23808F6BFE5716896113585AE857DD9BDEBFFEF5AF |
BFE8A28B9C8E45DBE9BD8682502A27D109B7DB6EBB9B6EBAC94C96DE0E2654A7 |
360651863490CDFAA94F7D8A9A37ACC0ACEA6C08FCD08608702757990FF4DE40 |
FB12C2F17551391B6EB8A18614304A9AA9EA843A17EA1D4CEF432E9CC4DC40A6 |
CFE2A5173A1842F411378E868B494756B3EC8DB8B632A351D89FFDD99F6966F5 |
F9F39FFFFC5B6EB98565E9C839EE99157C0AAC20082E02C8601D528DBA456BDA |
3537DA9732571E5C5781238138BC7B201AAA4D05505153D479ED953151E35006 |
06349F4E48192DF42829AC83C7463B953F245F36ADB1666B8BCD37DFE4391B2D |
5AB4A0D19A6866B2ADB2563B9737BB62C5A34F3C51DE4A7FF2B1466973E58D66 |
D1C8268A6C75D15F55BAC2BDF17E3151A4FE48BBD568B6525FFF9CCC92767BB3 |
D11E9B1C9F90DDA67FEAA7F317CE5F7BED7CB4DD5D35DE5AB172D1A38F368AC6 |
E27BEEF9C55DF7FCFCE147269F5839B972E5D4863172CAA1A11876061F616722 |
F6701DD0A0FE67F480FD7E36050C8FB1461C0631E87E9074ADBAED366B949390 |
F0E77E3806A7C7F7A3450902D37514BE25F0507C627DFF543D600B568740A27E |
D57284714237B0DF7EFB9D74D24931646A86813972CFB83EB482D10E071C8737 |
43CAE40F5C92BFCF5C92767631941D6AD620A38748AE733C6A06781A318348AA |
E3594B553814C5AF7BD37E2463CA24F66BD6FA482FEFF1C15173F824A2FD3DF2 |
8EFAC4CA96489AA85993EEA446C8FB1DAA263DA334EEB7BEF52DD20A8E84132F |
058AA8E3DFF4A6375D70C1057A461DE0B26C4AB4ADAA53E5BD617650FFEA3EF0 |
2067C137E18A603D3466E92AED676761B8C4716ED85DAA5375ECC158C1818ED4 |
C19AF408D71D96AE5E5DB63C18E1254B96ECB2CB2E679C71065822224FA4D2D9 |
59B4DC80A9C6D96E4A0638B9FB34386EE4A51E6F437289B64091839A75D8AFC8 |
955FF18A575C7CF1C59606CF7EF6B3755AA055E8602D12E09CB112A755F7DB26 |
A03D0584F455710A7978ACD4B8163D31563CD6CA53CB4E4E6A33B5F23432DA7A |
D633D7DE70A3C5EBACB356A7D5A8C84CA44AA57D35D6BD5FFEF291152BCA905A |
2B4D349A996C6C29E03CEBF68A95FDDECA52F5F62652DE2DFA13CD72ED35F449 |
5674B33C35F36691B526BB93FC53AE73ABDD5CB87074ADB5CB7B6977C6524F36 |
CED8C478EB57E30BAEFA97FB6FBFE3978F3FA1C97872331BCD84CB65D3CF4F17 |
B796EB71675C67337AC0B3E933840BCAD24637331A0730AAAB28E98C88C6A626 |
4989EB8C02F3A58F3EFAE88F7EF4A3FA27288654034F9EAA02467C67D37B97EA |
5A5AE2B193717476535DB6C8A6E26E670BECB31C81E4B800D49143C9C13F7049 |
FEDE72493A594EAE1D9E0453584009801CEC865E3D118FAA1BD30810B7972FA2 |
E3015B41F83C9083D031279F7CF241071D847D80691BD121A9B6DB0C924A2144 |
E4CC7D1A32C7FD743A894EAE47C61A8E10334021EE648CA180010A662DE2D835 |
E3A6824797C808D3983B9F4AC0A05FF50040803B0445C07F55F5CAEB1EBD9633 |
038AD0F30E5E09EB846FE9713EA01A8A1A64E7242E13811DC60D90628FD85513 |
40455542188CCB99FEA5A8C812907EC81CC3CE9D4071A546E489D28849744054 |
879D44D0C80AD8577715A2AE8E891FA3323111839C79C94B5EF2DDEF7E973DAE |
AFE8E947BFF3AC66F6366AA45F719452408F69C2EA9A2AC477EB0C0F8DF38E73 |
48E781A5566EE99EB64A63D34D37DE6CD38D46C7DAAB56AF6864FDF9F3C75ACD |
D22E6EB7E406F7A435573CBEE2A1877ED12FD282917259779A65EE384B93BDFE |
CA6E7745AF5F2A60A9E46E5752A69F671AA65E9EF5A5893329F012F6DCCF0A2D |
FA42BE71BB998F8CB4D65DB7393A9AF7BA1AD666231FC99AF35AAD790F3DB2EA |
7B77AF79D1C5B748544A071B703180BDB2F203D6C8031AD9FFDF4E9D0EBC7415 |
5A3DA79A51DD743F455D55ECBA1783459942F2886E86C15A61E207125490A6EA |
13CB44DB8F4FF541EC81E19160661ACE2D59264100C980B9A8BC362C5863926C |
F8FCAF7CE52BAFBBEE3A1EFF1DEF78C7DFFEEDDF125002B1F2072EC9DF5B2E49 |
BB1A741FD120ECB9E79EE79D771E4C8A262AD0DF0D36D8E0FEFBEF7712443F7F |
F18B5F7CE38D373AF6E38A1D8A4F60867AE73BDF79E18517E2A66873E930EC24 |
BB1CCC7B5123727D6FB13C9447CBEB2604337AC0D8A03AB9A606F641E4AA9BAC |
605D7DF8C31F76920575E5C1673BA0504D00C7C8802770F99CAEBEF5D65BDF7C |
F3CDFC500FABFB746E9BABA74088EBC7E4B79ECAF88AA57792061A43E8808A1A |
F91C9790D78C8B0F09B4DADB668BC13A472D038B2D9B0E62E57D2C6D60EFC067 |
E2FE4E9C1070998ED7BCEFB8E38E9209E41A68E8E4CCBA6EE6A8A38EFAD0873E |
A431743FBA3CB4AB4158B1BB6321460469C619319306F017AA07353BFBECB3CF |
29A79CA227FAF297BF2C4F9DA7701525E95D473E38B9C6E4C95E4E4E38C16C12 |
633851D65B2244028192AC67EDF6A69B6EB2C97336181D69757BAB3BAD7CCD35 |
172C58386FA4BD669EC9F6197FE28915FDDEB85CD8471E7EF8F195AB168E8DCA |
2B6E95E2AE68E4E3DDFE13FDDEAA5EB1BAD998487288272764B032C9599EE930 |
4D50AB29059CAD5E55FAC4EDB63CE0C6D848E719CFCC25A527C6FB4599501E49 |
F9E848471F1777DFDFFFE17DCFF8F6B71FB8FFBE07F3BA1665187B55D4C8DEA7 |
69875AAFDDD85CCCB45FACADD98AA6667B91368E5E78AAA3AF166D5AA6E4E7B2 |
BADD4A3644A4379B87A75B954948364B8FF9A77FFAA7975E7AA9CBDE3C92D91F |
B8247FFFB8248D56B51DE62541EC87CF75AA430E3964D9B2655899DA3E5A8DB1 |
C59EE954F1BCB931ED74D0AD4E3CA7908DD38EFEFEF7BF1FA3918D9AB739B2D8 |
E681E7D296FD30080B436100CD804AC65E243BA05BD2831C7DF4D1D45C519046 |
D184DD039C42EACBE977C434F150310C906AE6322EA19F1C77DC713A3963A87F |
929E8C1643369DBFCC2F838F4C38432518BE598C24F18A2E23EBCD0E0F210D79 |
8DDAF26C49EEDCFC0A6EB1639CBCDE9C70C209F2EF2D8A63DB5D133DB9320570 |
6B0449456409ED9381C560AF1BDAC236615EA29F639C0102CD1246139AAA2C09 |
DC9CB220314A488B183292426566E49E649F72B629E4A3479C7EEF3A918CA91F |
FEF0870F3D84918B2EA9E7262BFF6B64534E74517D397F744CBF7AC10E8B37DF |
7C735DEC8107FE9DD64BF3E697BDF6367A761923268E0145F5F8F8C4F8EA89D2 |
A94DA5179B37A53B57E7D9AA225B55A2A07B2B2427FBDD55294F79B3AD5BD68F |
53A6916AB65B79B7973DFED82A0D7EA72519DD925DBBDEFA8D76A3DFEDB75291 |
F7FA8DF2B076A3D34E13939D9F3CFCCC5FFEC7FC4BBE7AFB83FFF14B5D7446EC |
1523F2F4ED50CB6423058812EBDBD34E3BEDE0830F9661282F738E82D1D95E03 |
2218F88C5630770EBD785E11B06133B203D94EDC8C75F08CE7E75BF36A81A58F |
90B43F7049FEDE7249D2A7520F0EEC5F57D1BCE8B7C71E7BAC9C188FCFEEBBEF |
FEC52F7EF1B9CF7DEEEDB7DF4E78495B58520BE031129C4E0CA9A61A865F1089 |
E9C63B9CD059734C40A9734DA204025617EB27929FF873FB82CEDA689911EED6 |
9860040FD489394D980211BA43E845C59228E1C9537852207DE34356324A91B0 |
3C3D97B405E4FF714BAE616391132B7ACD6B5EF3D5AF7ED5CB526BD2AC4C56E4 |
038558FA90AEBA1A6A1D2C5B61E9D2A5864DC4C0351E3F29803DF7DCF3339FF9 |
8C9E91074444B0CB6C9D209422559911B248E0F3CF3FFFED6F7FBB671C8D0570 |
0C3709D3843D4BEA2A527C9BE499F0AF3E2475859CD432B03D6AE5AAB5FAAA57 |
BD4AD765B8A817887431D4018345B007EF1C0AE69A16EA49279D74F8E1871F71 |
C4110ED86804A811B58E286A1AB8CCE8245BD680446693DAD3A47339EE69C3C5 |
8B37DA78C3ADB77956AD685757972C710165FDC3F80AAF6FAA562A21A22BCA28 |
C89BB9D64A2FCBB59457FED728E851A9CFF4CB876568ACEA8C68D5E66B2EEAAC |
B7B83DD2AAB0EC65803ACF1BA9D9D0136645365A641B67CD85377EF7579FFDDC |
8DE3E37AF2CC61E75463AF0C5E78FA76A87516C044F39C9060D71CF4B6B3BDE8 |
190C30AA171A311169DC75D75DF1E66968486FB2A2AE54B6204BB3E7C5DD2758 |
7FE9F449B34258CE11BBF91FB8247F2FB924ED4871CED89687CF29CE89EA3026 |
95317D1068FA09361C18728C54CDA9965C2C1C48B59154D44DE51C0889DD3F59 |
D5DCB6FDC208B3727619141E0B40F7B6DD76DB5D75D55530F435EA36EC68A69D |
76DA49069CAE4BB602C7AB57F741C96B660C32230E0879F62991889D86E9226A |
0F3585E82ECF4575ACA7C3B02CB686AB78FD73EE0A7884C554114AC66304857B |
436F019163F1E3EE33BC5A8DC4D58C30453F61C9B9B380BE3DE8A0834E3FFD74 |
6E006C9A6F9B58143D12ECF246885956D1DE41E0CFAE8175C72D1C9808F6AF03 |
E6D48001928A900E9625687C6E608F3DF6F8BBBFFBBB0113844103066B995654 |
8C983FF9C94FB40CB4CE11FE31B29879350F94E76784A90AF46CF58F22E7E1FB |
859EB068E45A70C5C2F9239B3F77D32DB678EEFACF1E7BF8915FE0C84B1B56C6 |
5459FAB6E2B147D9A5454DE53865943D4514B48E6D8F2EC89B638F3EBC52078F |
8D65F3E635D75CABB568612E375AF32F053CD92DB2BC284B858BD41A59A333BA |
5EAB33FACB47FA175DFAEF77DEFEB3477FA5C195FAEF0D089AA77B875A941F32 |
822D044694E0642C39FF355F45DD62086803EBE1DC73CF95FF4750544FA44798 |
1175126135B3E5389DB084D71EBB98581057FC0397E4EF3397A471B03A550473 |
0D206681BC6615A70166AE8E211B877CA76F0113170DD3E816C7FD9B6AFBCC16 |
8C632DD8B21A643991679E79263F89597C275C6C38FAB431651EB7B6F38203EC |
AD8E7FA2B7FC204C9C0F76EB59F6A921171EC638B9F8674F52A6E4B9A68305CF |
50D88CCBA63393B09CB804B51BA6FD1958E418B24E39A3BD88D235EBD6B9A972 |
7929C226A1C07E9F91FF0497310518840E5B7FFDF5418119BA64B56505CCDCF1 |
136E431795C97BD65967B9A8815CACC7C4F1F668E03A747CEAA9A71E78E0815A |
A83243497BD15601AD11D14251D2FAC6307C237AC3074CD5017B5F65A12DCFA0 |
022E1AA8E122E9A44596A46CD21A8B46D67BF63A1B6DB8F819CF58679D353AD4 |
66C903AEB64A6F2A67DC6ED92246FB325B73A0A0A58625330750D0C09EF3C6FC |
5513925FFDB5D76ECE9BDF18E9149D7621772969E9F672A9D754F4A47DA5D5C7 |
C6D66C9597D6FC759E9818FDDEF255D77FFBE1DB96FF62C5E3BABDA9E40AE21B |
9B485B9420F9D3AB436D5ED377A73A9D89C8203CC5BAFF6F80B0685F4A5333DA |
81317D5EA3588B047863A3684766F2D99B3783B3A0B015D120415092C2D44920 |
874CFEC025F9FBC625390057E18A447D30E922E91E1E8CA9C79A7577395D515F |
115E2AAA56B85A1EC71F7FBCECE06DB6D946561D266F44E2F84991E0E40E717A |
C8F001C8A078DDBC2266473086DF41CB4838C53987DD7AB397536FA6135291F5 |
A637BD897AD654339CE8CE8F3EFA68230C9CD2D2E869ADF2ECC54CEC75F185BE |
312824E6CB719CA43E6545A168490C6904C0CA45DC780AC8F988C6B2A69439AB |
3BD4ADBEFFFDEF97174B4F3C94BA331A59DD91D0812B362FDBDC50DFAC66CD64 |
2BBDE0052FB8FEFAEB6D49E075B0901CEA47F04A7F6BB73AC1C79419B2E73C20 |
E91B8B53F62C017F407FFA27F0E654C393A58C4F3BED340278C0899C53C74CF1 |
E5F2AA59936B2BD21070AA54DEA94E2F399B38B5327A934F2AE0A259FBC1FA6F |
B2FAB4BB707E6BB3CD37D86AABCDD67DC69A52AF238DBC4A98F72B007AE94F4F |
76CB0063B335423DA53E37FAA984ECCE8282EE8EAF2E523765AB1B65AA790A05 |
AD4907F62CC5DD6C75162C6CCE5FD868B67540D1960E2A73D225A5D62A79CBE5 |
70A476ABDD698D1669A5AED1199DBF70D1DAF317ACBDFC8E55679EB3FCEE7B1E |
5DB162A547138A168C6836E4D3AB432D1BD85C07C6C5F039CF3207948C3BF7FA |
C03BE1418055B3CFA5E4F6DC73CF134F3C51071F72C821B225718249FC205CD0 |
A69C76EEE6CD7E2893755867CF76FC1FB824D3EF0797A447D85456F8828497C0 |
22217653EDB0A61A2D45E682CE075AF6EF79CF7B34DA7E5293E0131C02C64C22 |
A398DE2021AB095830C1CDB0E15B1DEE601F755EA4F4D11D62CF99D18CB0846E |
86672438415DB86EF8E28B2F36FDD195575E49FF06EC489763B9303D9A53DE53 |
D1EA8DB1687601CCC970AD6048C9A4D07E6136F53AE79C73741B7BECB1C70517 |
5C802BBFCF3EFB5C73CD35247A08CE0F03057C03F9F486CA2E67A7E33BA01934 |
B4343D53600B1EA585C06CD6BDA7000438E90E278CF1A18DC00AECBD8024977C |
BEF0C20BA544B90A6B49CFAB47901DB3D34E3B9D7DF6D9261645E53B98AF9F48 |
D34B82B15AE89608264083BFC1061BC808B3F3E6A18E8B81F358AED21D87A4B5 |
A30853421B2B152F0A2F274D0194BA95D2AD3666197C9E7ADF6AEA4DB7D5ECAF |
B3EEC2ADB6DC6CC9969B2F5C343AB1FAF156DEAA0550511925530498AB4B37A3 |
ECD20A7F21A35652F1CD1F330A3ACFC6BBBD27BADD95DDDECAF1D512A3DD3C9B |
CC1BDD86146CBFFCBF5623017BEEB45B63F38AD1D1C6485B065DCA4B9F239505 |
488D4E2A1572A73CB859AE83662ED13129ADDC6C8E2E58B8EE1AEBAE377F74ED |
2F5E7CEF399FF9CE23BF5C89B53180BD3296AAF9F4E9506BA4AB8B2075AB1434 |
E390CD1D488F592E0C02360042DF0921AC04149B6E922098CD0E28A9496E41A3 |
FAEB346FE6D232BAF5149C3FD2840D2BEC88C977944F03AB3B375545C4B21195 |
752AC85B05954345238611944F1AF9AF7EF5ABFA2AD63AEB5A920BDAB76C6F6E |
92FC13DA4823B0EBAEBB5E7BEDB5183A51017BE41916C25618EC03F12827AAA3 |
54F5A9AC53234A854931942FD5709B01FF55E68856113E195F114527185ED444 |
5A2CCB958F3F11135A9EAC7E2A60014475E193B9FC345E91C503E18CB3031AD5 |
3FFBB33FF331C8594692DB704C880358483C14B4FE5945811EAD524C2EEA8B38 |
83D93411B53AF3830F3E1861ED06074CA5D86A832F668B5228E7EDD70D778BBA |
4A73E38D37A6F6DA8D958034BBBEBC3FBDA9F080364A55E825468CDCDF97F089 |
A61E74154004BD37CDBE4D310DBEA6AF5FB5CCA176C349A898D4180E417327DA |
0EB0393A0FE2A6EC681A4A9EB06030553198CCF89807F6E6343D7180C147FC9C |
909273F00816DA25B914CA984D96AEF4E27DF7DD1707CDC6B1E3796E6288B68A |
CF8BE8430113ADD16469FDC31F9C2AD2665B008620B0DD8AA1B654C448008E4D |
913607230C0FBE1F3A3F66815D202E300E70C98C3FF4D932BC2B97FA3D09B84F |
AD19A5619E261B795A7B9D459B6CB2DE861BADB7D6DAF3474B4E95347F6C518D |
70A9606CFD49E678D5CA7174066DB9BC981694543859A755C9B14CE27565A983 |
7BE3BDD52BF2464FFFB55B927165885C8F295DDA6EF547465B9DB17CDE68D669 |
E7CD466A643A4F31315E8402A4D1327E9C3D5124FDB09F32A9E346B79737DBF3 |
9FF1AC8D17ADB9DEA34F74962DFDB7EBBF7DC73AEBAC0BF463187B458CF1E9D2 |
A1D6045279DD88C2210EA71207D25D51115AA8816B60BFE1587B6D39064B6373 |
3600D23F762CCE029330F6DC6C202CCA51A41806404C7378EA56485CABA8DB76 |
0137E59C9A4A5A146BCC1101D8283C91351C1B60A071480A6CEF1E13A60F705C |
246CD2B7279E78A24CEC48101F45798CDCA61064B3B591AAA4295CA1B1967AA0 |
162B2EADAC662A906820DE9E87FE13C54C952456094450CD406EBFE184134E38 |
F2C823A59271FDA96EC8A673DE6555F981CD05DDB6268E1C9E59F7DC1DDC2017 |
46C6B4E1038C1938CD11A862C1671967FB0CE246D2C02E848B8F69CF1E9CB0C6 |
67BFFDF63BE698636CFE222E413E4752D5C6F476847EDE22948C13B8024EE186 |
E279DDFE280F0DEC08CF6435C78EF30830BE39ACC56CEA2BE48CCD0BAE0E7715 |
182E6B20DDA11406AD75B85BFA096A1CDEFBDEF79E71C6195EB15615712B5935 |
CAE8DC71C71DAFBEFAEA7BEEB927AB791FB5008E3DF65882A5E82AC49A96F7B9 |
E79E8BD073A98271E3C32807EE217EA85F69CCE55B6735B36F51D7D7B190341D |
8E1BE9E0ADB7DE1A6E5A0AE5BDBCA94462C0ED6F4499C0CD8099C0DF459D611E |
215A01B2811B2027A2E5A7E745663A061E59AC5308E498F21DDF29AF3B380D0C |
B2F7BBB71E4CDA2F7FF9CBFFF55FFF154B0257DB619E2C46CC1CC72F75646AFB |
E4D5C29CDA21ADAC377FC1D873B7D878DB6D96ACB5F68289D58F359AB26A17AD |
7CA2EAAF99152CBE76BBC963772726B927C42222A0124925D4B6045A3553D698 |
48FD55DDBE84E644DE7D226F948D08A580DB9DD42AF74E2A53B9F3E4AEE51ADE |
9156D62A9DE67E9EF5F262860224CDD4849669158B2E924C723D6763D11ACF5E |
7B9D678C8E2CFAC6F5FD8F7CE44BAB574B1ECD80BDB2E07B5A74A835529A20BF |
D9DD2EBCF0C27DF7DDD79DFB66536CFA96AA737605104A788BFAA1771897D3E2 |
C372D2B766814F751A46AA4E9FE82F17C5719F8D83BA98CE60ACE7323BE31CAF |
689144EB5227D1DC61DBEA41DEF086379C7FFEF9BABA8E79C94B5E72C51557A0 |
3BDD9B0BC918E1366E2341988EA71BA84090903AF3CC332127D191121F343C60 |
A6F4D454F1D97F724E084C0D36966B84BC00586C8B172FD615A970C011611D46 |
494AF4520F8B2827DF8F61348C398F51C7387ADB6DB7DDDE7BEF7DC0010718EB |
8BB78DA39CFA453EDDED669C277BDDE73CE7391A610392F14BB4ECF5B9A439FA |
09EB0DA7CA408448E4C9C8E3CDE0F9C1D004F994EE81F6E1DCFC861B6E78FFFD |
F723E634BF871F7EB88C1EB7D4D56FA5FBE50BFA914D6300B24F075075665840 |
9A6E5A1575BD1FC850AB5EDC53C79F6305609A1E28EAD5CDBFD99B361DBC3263 |
9CC3C9C5E8B7196D8B03275D0546890C8BF6A31E79CF3DF7F4CC5226C0B3E800 |
4995A38F3EBA51B7FF33D66900051D13C3EE153BB0547C18C388D5CEFA917D46 |
B76FE06091C7342E39743CCBCC8E75DCBCD8F1FC4473F7B297BDEC861B6ED023 |
7B52206337BD8C53E6260CA7002926DA106EBDE91D968C587652891C9617B6E6 |
4537C3624BC17FF0DC6910745136B8D78F91F0311065BFB91F788B59155928C4 |
276E11B9B152CC01A7E0073070E54165E429976E6C64E05AF590722BCB9CD092 |
E76DB4EDF3B75C7FC37547CA76C245E589665EC44E7D31A9D80E401800CD9330 |
EB947D06CB55DB9202CEFB795ADD2FC68BD46D16E359DE6B9665BEFD76A73FD2 |
295AEDB2D86974ACA5CFF3ACDB6AF41BB9FE2B8545A31273830548A92FB778B2 |
DBABF657A348AD5E91B79A23CD86CCC94E6AACFBF5AB7EF52FD7DEFB9F3F7D74 |
72B23B80BD222BA9333F2D3AD4C24909B2C02046D70C90B904EB349B568BD1E0 |
5477E021B08929804F43EC88EDA791F9F33FFFF3CB2EBB4C17D210D9D633F828 |
8524D91C17A55A9FBF697A426BE015A1E05E9FEEC5ED942A2A1F1A19F03B18B9 |
0ED53AF293EA7C6AF4DDCD921379546084C0CB21FA2AAF85102819239DC180C9 |
58808B9713C3E61477412B6F9E2C7D75F9E597BFF6B5AF4D751D5A23107103DE |
19C04B6B9C71B8F14E5C801B5F59DDD1013812B90986C5C3081302763D81843C |
3DA9EFA3073C55EF5FEB0C0434A210D31310405EB74765D7E873F34FA59AF72D |
0D15194720AB4BECCCA2A0F38093D763A26E89724B91E8937BEFBD175D857F83 |
FF404441CF4EBDA6BE35AA43C7D04010EB01C34B43E4208A4BC331F58AAA316B |
11589179520E73E688D5CB3EE5D26E7500F76F0AB10D3F9D63AABE44B424188D |
65CB9649CB7266C454AA128AC71F7FBC3CD48140450C9E4705365ABD74805BB9 |
C4C25F97EAA6BA96971A27B2578EBBC41D3110FC8B6ACC924452C202DF763688 |
54F68ECC0B08E1ADB17C157C0CD470AA4BFBB6D9669BBBEEBA0B0B380612525D |
A28638855B9B7BF3EEE6E97054F0B222440EF1625856AA7B69D8A1CF439B26FD |
50EFC907C78897B5BB19B319A814CCF119C73323528AE987CB322583F2AC54B8 |
E5FFAB146AB909BB595E6CB0E1B336DD6483CD9FBBF19A6B8D256DB7EEEAAC5F |
86829BCDB6654DCC13A071D924BC9F62D36D8E34AA0793722D2B9AB2C924055C |
4CB6B2D59507DC6FEBBF91A2DD293AADD468EA4D5692594A37EBBFA61CDEC465 |
8AA102247DDAEDC968AD982CCB3B97135D0D8166241F9DBF60ED5667EDEFDCBC |
EAC2FFEFA69FFFFC57BA9D01EC95C57DE37F7D875A680571D4F45E7EE4F2E5CB |
536DE7366A46E2D91421280C4825F573A9FC9D76DAE9C61B6F84A698F5AD6727 |
09E48DD4AC3AAACAB474D70A187C3444C83BC292E8E319AFFB894F7C62FFFDF7 |
7749864C6CDD0099F5195F594DAFAA51D280634B7ADBE048D9BDD03FDFFAD6B7 |
5E7DF5D50F3DF490F618EE6F44CDC4B465C4D6A5BA68442731219A7EA5FDBC74 |
E9D2030F3C10BF13216842419734E0379B8587E808FB5FE7D110C1DF49F85407 |
FCCDDFFC8D39E2D1B5980898D8E6066209E9424C901E5F5A87ABDB761C4603C5 |
18B8C31514F640344FC0405F699478D27281AD5A0DEA2AAB2543B955AB8D26BD |
D5A81ABD694096562F40C87A7CDC2F080B4D871973100400FA43B4FBDCA711E9 |
2C398E34F6D52525642BD073F82534E0E349B168490DB226F3BA19003362F785 |
EB129DC6C73500135F0AB7D8553D844C387F64BFB24E75B14A5155A3E913A05E |
2E19F06C5AEC3A2A6051435EC9E047A37EA23E66B3133E2171335C6168858176 |
7749349FD3C596DC4D242C33AE05B09BE3A0B1BAC6F1981929666D7FB808DE82 |
8EAEC6481820E5AE48F6224F35111B16A7210BFECA0F8296B5E4B1DB635896C5 |
26AB1D639D47E0A11804D3BCD8334E014895D58C6671DEAD711BF54B62506790 |
3832B3D330020E8D8EC530304D5336A83FB5C5AD91921376FB1DCB7B937D4A8F |
4A9871EA962E6633DF7E87FFB378BD673C7BF1BAA3635ADC2B4BC073554C3C51 |
5F3AAF7BCE18995997274DB80CA9BC5CD6E2319A152F98CE5FA4B200A993AF2E |
156DB354C0AD4EBFD396075C349AA9ECAA2447B951EAE0CA094E5306BB6454AF |
E102A46A80CA01EC97A1E9AC74AECBBF0DE97BD946CDD6E848675EAB337FBCDB |
3EFBDC5BBFF9AD1FCB4B713A5D8F4FCBBCA74B875A56157E0CE25B07EB5B8957 |
9CA454D9CBFC70F8E564956BE00CC8F4CE77B770B358B3D958A39E50B70727E0 |
015DED6CA0AABC26F38B4DD109EECD787C51D7F8EB8ACF7BDEF3EEBCF34ECE6C |
63939F73DD88F58D1039B65CB76E57ECA7C60870B2073E3997EABBE44607D0C8 |
1DF31C2211593CB7DE7AAB26548A876A1923DA181C5F4E5F41B2AF93ACA85ECC |
B5968D4C1937D5A0890AF502111C2465A323B5DE74CE0B2EB8608F3DF6F0B516 |
2F5E4C016E1A02A6925004A58F35A03B912571E69967D2BEC95E7B51D1C26CBE |
F9E6BA19C962E087B64BACC2074C439D5CAED891471E197BA14B6D9C74D2491F |
F8C00708BD380C3E9017F727885D368251C7ECA32F7DE94BBBEDB65BAA8325FC |
CA3BC54E8CF308D190C2DD89DD67DD430230B63B260D38DF3198E11D1A090E3F |
F5A94F1D70C00114E7E008C67EDECDAAD333615E129034A820D0CD6949D968A0 |
6486FEDDDFFD9D7ECB2AF5C00EE09C4136E942BAE8473FFAD1FDF6DB2F55B623 |
A71A004F30E084E2296274357984E622A2F1D1714F71969CF98E1E9BF311595D |
09C6C6D7C9D96B08015323D005C16B324EBA368BCCA65EDD95CEF07EE708B059 |
6D36F12DBBC92608712988BE39F2BCF3CE93456BA0A8B9D0ADF93C8931D26626 |
5736A93C07CD85E94162E04DA7A25E2E763772B239D2FB38121C9F3106C053A8 |
8F288F94CC954D0D74CD135F62141F5FD1EF5284D42852590BA4ED3C7FC1D88B |
5EBCEDBA6B2F5A7B9D35E4A44E4E48A2492F4A4337578DF79C34E2C2A9AEA340 |
01C7F63E180759654C9455BCA5AF3D59160117FD56AE3DD36B36BA8D66B7CC04 |
B7FBAD76CA1B1261A56296EA9591D0CC4B8074B53A2AAACAA2B16ABC54F56581 |
7251E9B9CAF14D79BBD968F7FAFABF6C6CDE5AEDCEC2D2D996575C46BFC7AEBF |
E1A7679D7BE38A1553B111D91C1A01E4E0D3A543ED5E7BEDA56D76EEB9E77ADF |
4A3AFFD55FFD150B71B8AFE2C00B5DD2ABFB1EBAF376248271EE70975D7639EA |
A8A38CA18551E4FEFBEFC756D02667F9620513999F03800DAC469726FB7BF6D9 |
674B640F04B5FC8A0DE63426D282DE24114C11613E68567E62AE662387A3A59C |
824F83ECD036233889F444CAD8F7BDE8A28BDEFCE63733C2D24CAEA8C1FDE23C |
035E1DE83668AD0C0E201C4D9A00EC581EBAA0A7DAD036E0564A5A23CFD4004F |
7570B551370048018FCAFB3FFDD33FBDFEFAEB4D67E1FC881E8DBB925891D245 |
626EB2C9267A7622E4182B7164ECBEC760DDA69B6E7AD75D77693041CF3205B6 |
5AE8A9AEAB90F39ED1038E1F46598959E016055C9D963ED17B4BA18F16F746BD |
1327811F543335A34991D7B5FB886CE2E79C967E62D16F86D730226BA811D0DF |
77BFFBDDFFF00FFF20BD62DA0AC4A005BDE3CF3AA106FCF9CF7FBE56914EA2E7 |
FACBBFFCCBCB2FBF9CE6014821DD3C1BC1F5E8C6FA211FCCCB1861B303E83963 |
2CE06E731B0376C421871C2277C26CDE03A68CB33C337AC0DC0F77480089A267 |
243C2D9BACA508E7D8B6D018BEE0052F904C0381EC7B76923E5AE40C17BA0384 |
291A247690649D906A31FDB85E040F8C0FC745219DE73E8C8CA41B23EABD26FD |
473FFA91ADC6180AD585649EDE77DF7D844C1CB3E4315D5268E22303AC9CBF88 |
A010EBC78407CC04D89F9822BEC92BFBB4549392D193FABBCEBA0B9EF5AC75B6 |
D976C99A8B162C5838D22FC6C757AF9C98589DB3839A1D2BE066DD9A2AD5696D |
C6CEDE61B5F42B56E9AC51D61EEA878514F0A4F651D67BAC647E4E937973B2D5 |
986CB67BCD120E9DB53BAB1A79D16A96CE7115884EF67753D6ECF55B7D29E3A2 |
FCB02C1E4E79AFD003744647174E4EAE2A74739D75B2D42A4A6A6B793F6D49C5 |
9F3C38F9B193FE65E5AA293423EB00D9F1B4E8504B5A916292811DA84B48464B |
A4EA71888F5169A037911C801E50DCA771A1BDBA1BA383DE36CF67CBD1623CCA |
5FBFE5965BA49211D06E8998EAE2C8A9DC7FA7A32BD2C516FCC8A73FFDE97DF6 |
D967C6844A9A9D501AD341BE912EB47CF9723D08B54C00DAC96659A0E3FFE128 |
B3C361ED01158886EB5794EEDB6FBFFD35D75C83E5C16818AF84018ED6A73E81 |
7961482DAC755A7DB8C5165B5C77DD75FA612C8292E6FECA57BEE2D4944E48B3 |
F454213F77DD75D72BAEB8E28C33CE78D7BBDEE5A6AACE3BF24FAE089A2C92C6 |
44794D916556178C998C09DB0253527FDFF8C6376AE4F5ED2B5EF18A2BAFBC32 |
859C992FE78D0CF88E70623F5030E2FCC5BE43A9EECDCE72B5F1C7F1C31E3061 |
BAE8011735B32E260249101ECDCF1B812666C358B264891E1050218A9F136A4E |
BFF39DEF68B79E70C209871E7AA88E74D7C8A883B39A2F4803F8C217BEF06B5F |
FB1AF1218CEC54C708C1EF10D220A6FA246EA69A29DC2C7AE741C200D503B10D |
C7F609CFD27231D5DE185F99F7862BA20C34087FF4477F247347E7D4998991CC |
A88063F9296FFEE99FFE69B7DD76E3EA5AEA3ABFC613AB4E27D70C025AA4AC31 |
D6B666439078B4830C719D61EFBDF73EEDB4D3DCF3D479375645F4209DEBE12B |
077807D643B36E796499E62CAFA130B4DF767609CB0C346B3FB4CDB03A0703EF |
3AF2684AFADE900F203C9CC92689C6A603F6AFC77437087015D06DC67582AC20 |
5DA5BB925946CC1F68823D604660CAA2D1BA3CF6D86331C983755A0E4069E7F6 |
C17F4B193CE3399B6EB4D1461B2C9C3F3636AFD3EBAF9A58BDBADB9BC8AA5845 |
37F006B06E383F4B9CADE8855E8632FADD32449CF2D4AB50643D0D8114B0B4F0 |
A329EBE76932CB65E04CB43AFD66AB68350A8D92FCE066A35F9627E5FD526F47 |
7F37B5B3BCD56087972A3DEB158DBC31D66EAF51F427522683A55D9E3E95AD0C |
3B236332B056AC4C575FBFF2AAAFFDEB132B57B1569E5E1D6A0932A3E38D7EA2 |
6281BE75FA1C804CAA19918CDEF4CEA4E25E076B0D1C74D041C4FA6234CF05A3 |
A9A6EB1B7EE5359B23B150B7321CCE51F965618D33E7F64DC381CA34BD7B4F7C |
616AE8595033A08841A20D83013918BD054E92E43AC05A175F499DD3D413CBDD |
A5AE76AC2D2EDD7306E16B265BCC596D66594EA0C731803492BA3DF8074C8EB8 |
F1C61B535E625B9BC104E343DCD232117562B4AD4E480ED8A8638F2A363B1649 |
6495910E264F6F2979F2C9271F75D4511897C8743044033DED53ED1EC1CBC600 |
82CEE33CAC1CE0A3745C4F558CE798638E39FAE8A31D099C4301F3687620F457 |
3B51AB8274067E89B91263DE844FFCEC364FD99545A8FAF375790A2B60E7A7AD |
8FF5389ABE2C54D6D121C3FC53D2F41E43ED38F40DB43CCCC8F1C71F2F65CF5D |
E900DD92A6DB5C13CE8CEAD1E8BFFEBEF7BD4FCA0C28197391EADC30A166EF4A |
9E7DB610B4794329B9C1561B605FD1E2FCF18F7F5CD4F423697A2D56B3EA0E44 |
1C7B38043D004D20C3A8D7B9E79E2B0949CF1203D0904B26D6B0F2039EE23C4B |
36BD126720BDADC1D400CA37255C5454FD2A682D85C2721E8D5DEC3ECAE61547 |
E43ACBF6DCE73E578FAF29237C95EAE8916140AE3771A7732F30DBA003B2C845 |
A1A4BA209CD185EEBDF75E6E0649926AFF0A1D5CAA0CFDEFC4134F3CF2C823B1 |
6151D46552EAD15F6AE42A9C75D6EBF7C646D3669B6FB2C5169BAEB1C65AF3C7 |
463A9D66BF98E84E968E3C141C8FAD5A61DD800246210DD74BF166A2585DFABD |
DDACB47DA58DBB13BDFEA4D65AD65F5595F04EE48DC976ABDB1E91C62D73CFA3 |
235A4992A1FD76B3A4A12E81D3C1DFEDA746AB312295A46356AE2E7B03371BA3 |
59BE502BA1D74823A9333EA1792A39A5DB23C5A245238DD6BC477FD1BCEF81F1 |
7FB874F9F7EFFC91B6FFD3AB43ADA3494C164463F870EF7FFFFB972E5DEAA88E |
C957BDC2CE3EFB6C799C94219AFAD13CFE29E44B526544932C9C9B98330578BD |
F779B36EDE996A7839506D9026319B028622D5C037FB61C479E608657BF48C1F |
713C6340D667A1AB0F73440A2055CDCE4C7C6D5C953501760C660DCF68745B0A |
D00CBD34B092B9DA6FD484E0BB109FF70D58D6D8A68186330DF5C6F17A23BA4B |
C0D3F9CE543B82607169B4E7042DFD22C12113B925BC61B17EF8E1877FFCE31F |
473A9BB234AF3B523BFC8B92E33123CC9B97051CB17A1C3E27B318371A0E3ADE |
9B8650D0FDD01BC7262FE704910BBB64F435534834384EA04796A69796FDE427 |
3F59D41C70BE4FA391234439BA045E308C333F74C49EF89386547F5DBB05E281 |
782C95E23AB3DE6CBEF9E6D216941D7FE0031F9024912E7704DBF1E4013F8CE6 |
C4468DC41226C647E77FDBDBDEF6A52F7D89840B4F3123088B93EB00C93199D7 |
F8151402E132422E4B2655EF3FFBD9CF1E7CF0C1FA0ABE086E6C2004ED7DC423 |
501490AA109D7EC89AE78665EBE82B1E8DA9895CBCFA56374660C328C5A2EE13 |
1A9F37D51E8B1E5CF6D01D77DCC1D4100C0029A9F7AF79CD6BBEF295AF78D658 |
12AE1465B7B292F17423E75DAABB3D62CA20948653391CC653702ABD0C60D469 |
A930F44A8693A0EC04B8D146B8D4A9AE0FCAEBB6A15E96599A5E406201DA94F6 |
A3ACAD6A41B87041FBB95B6CF2BC3FDA6C7464D168093149DDDEEAC989AA5A3C |
2F1D8BC7279F880A186F03316ACF2F0577A49B5616FD92C7AA37D12B27626252 |
CEB4646FABA2BA941BD068763BED6E6724B53B59AB994B664AEFB69A851CE266 |
DECDB3222FA6F9BB296B359A1DFD4FDA3BCBDB13237A8C11E95D190A3A49A3D9 |
EA755190AB16CCD7C16BAD1E5F4BF2F65F6FFDC5A7CFBE787CBCFBF4EA504B0B |
55560C19595003BA81254B967CFFFBDFD779B6DA6A2B6062EC3D7D65108A4D4B |
1C0B2D172D267D65B645EE903A7ABA5A49B4CDA680539DE4709EDB380854024A |
4E32912428B5E0287B8D1B7965C2FE286027CC7A75EFC8D95EAC2E0437FEA205 |
6B0C2AF072E16614B2BE3D0E4037A393E8972583E694534E91589799B5FDF6DB |
DF74D34DDE66A9F2E0295E2206404784BC661C8C7CFD032F1EDF1018C9BEBBEF |
BE9BBE059480E38248F16B7569166027D000B230E655AF77BDEB5DB29E11C4B8 |
A42652480137CB15A106D33961DE20270D15062E38EC548E30BB3F414C4C600F |
E1B6F2137AF4D28A2ED50DECA8C1352866C0ECB034E78DB15791D5527FCB562E |
2B5644FE64403A780F66897242DD5E0539AF54599F14EE4B17EAAEE466484933 |
E603109B1811952ED46D102A685444E56C1C365D0A2D8475F58F7CE423279C70 |
C240B38A2C101EBDFBDDEF3EE79C735215AED7451F7CF041DDB07696DEB0CDED |
A91B00E5EA4402A1D132B6626ED45D4FA26AB469A26FF7DB6FBFF3CE3BCFA5E7 |
36B50D4866D6480EB2F0185B620F34F4CD86CA6608E4BAA80C4BD1D0045C4CAD |
64424DEC446EC036E28089E9CA9FA2E6A6400465753B26864B238CF5A00B1D7B |
ECB15AF6687DD070A93685637D94878218000A5867E60E07F6A373E4BEA8A5B4 |
5B081B8897D72DAAF05B8ABA981301A8BDACA190ECA56ADF752206CC7A104A1A |
160AB6B833D4C9949D9E8AD1B1720574278B76272D7EF63A1B6D2C09F38C858B |
4AF535A550FBD5DC5463F7F8AAC78BBAFA985219E2E046823906C5584FF65655 |
A2B65F5E6182247125474A82C97E89BA6A6BB5A5D131F9BE79AB9535F3879A8D |
ACD5CE3BADA2553AC1DD546880FA2B5616E4928BB25F4327971A96CB98B71A9D |
7E2ADA52E8BDAE9EA5373A3A2E4B256F8CE5697C64745EABB968BC98A7B9BE63 |
F92FCF3FFFFAEF7DFF1EDDD4D3AB43AD660AB00C6681D7B4719E060BE0C1DB2F |
240EA9B3C5A698C64646AAA0341D9A9FCD4EE8C1CA7104D57B9ED019C92ADC32 |
E0391A31A010BDE9AD97F3D0D382F19FA36B107361100702140D3AE3C118CE24 |
F20173828104AF4B9CB351F7AD63A1EA1EB45DE1264B017FE414BEEF96E9D0AC |
39C94AA71AE3C5D2106CDBC36B7446165A48B9D2DFF66B31F46279D01037052C |
3A10219DEA80030E38F5D4530DAED4A4EB5689A39A5053230F830A71171CC788 |
3A248E65EB7038EC195F047E6CE65B02CC062030F1857589D5D86EBBEDA6AD94 |
552595AE4B7182466F3465EC50893C6C4D07DE2C67EC6319EF4DF412CD64BD1B |
F9AD52E8A6EE15DE9FDE788E203CCC3C3680CCB74C93533611021609A06FDD2F |
287AC079E08806B4C12642E813F624974C6A5CA3A15D2C738A3E13B1DCD1F616 |
75CCD86AFAB9C33C8CD281071E78C61967B836CFA60CCBEF2D6F79CB45175DC4 |
7906427464DC190152065E182CB9BCEA61E55B9A6D9D6066613778EFF015D3ED |
401AE68E33417C1ED76A4447B396FC20D1F7639A30A7F8D0E1E2588ACD859015 |
FC24E2C64934409D4D930603B2B8BA8B9DD85031B5CFF3C2490727A8DCF7A976 |
6396747A98329EAC95216D362207ABDBEFA5050B9B1BACBFDE061B3EF399CF5C |
6764B40DEAAABCD15E9500A8C09F13BDA92416F004421C8DBA5DCF2C0A385558 |
836EA5E6FBD546283ACDA26CBDD028F937A4803B2379A7D36837F34E7B4509C5 |
6A69708B56495129BD3A21CDBA6A5C039D9755CA79A38255B7F2EA4DDE99285D |
F15647CE73968FF6261FD1F2181D5DD06ECDCFB391A2DFE8771616FDE64F1EE8 |
9E7AF2D7977FEFFE55AB563F5D3AD46EB3CD36B7DF7E3B7136A25EA8B7ACA28D |
D4918EB118D700565927F7CDA49AD6C74923842CF5FBAEAC705B85811E15F1E5 |
449A0126B1C02926F6D0795EE5B625BD930DC0B1708C409EE19785B5611A8DC0 |
CF1E932E697A20DAC63E9B0A772AAB4801E39E9140DC76DB6D6FBBED363685CB |
0C58CFC8D9A2EE859CD59C82005CC136EB57D15276D421A6FF2DC5ECC75816C4 |
570A0C44762875ADCD36DBECE69B6F26F2865B10CBB424A37557EEE7CA69DDEB |
D0190A2750F0BC59158C89019F968FF974E6E1F872FD6E445CDA7B98F1C52207 |
51E884655635A4FBF18F7FECB6C7265721EAAB2762A6A2D3EFCB799460BA60FD |
3308C64C5963C51014C0280C5C820AA4E1FB816A3B1A46006B639131B74138C1 |
8101AC5E24B2F52E404830EAEE2191EAEE49595DC0E6C16740EC04BFF0852FD4 |
BCC78B3A1002BF0A387CD7313BAFE93310F4423E98815CABE86FFEE66F4E3BED |
B41915B03F61937A4CFCF89826B4EE880F3BF0CA028395A69E8831B158DF8CD1 |
246E9F1513C99A47C8E062E83832AFC51D14778D394AAD3BD9CB92B7515CFB24 |
86CD1ACBADAB4BCECB1F95E1AB3398F29A911F600173562B5569A322C0D47586 |
2C92AB7950CA47EA69561A7AEA54A4673C73C1861B3CFB59658FA945CD569E7A |
75EEA15F5A58E355D9A21430E21EF80FB4992681CA6AD62E8B1B692B56ADD477 |
75DF53818E4E855D2D7B1FB54AD5DB6937DB65C45BD6CAEA4A01E7ED568982CE |
D264EA4FF48BB27AD82679236FF92ACDD6CABC59D6E18D74E6B7DA63DD89271A |
CDEEFC798B3AED8559DE91EA6D8CCCCB9BA3FFF1607ECA2957DD7AFB7D3FFFF9 |
D3A9432D3786D396AA0C6B8CEAD887C645E62AD8ADF2CB698C4156CC8E4E39B5 |
8B16D1ECCCF6A3853E00AB34FB0B13DE491D1BA145A85E30228F906051B782E0 |
1EB002B1A09DE38CF08D19F7B0B3AAB25120BD2AA6F3AA47B0DB8C27D13DE8B7 |
9A4DF279286013EEA7D0BD985744A839C48A29AD4F36DF7C738DE1FBDEF7BEB3 |
CE3A0B6FDBB815F642AC0B1FD0A9718886055FBCFF81AFB83A4953DB52D0E07D |
FEF39F7FEB5BDF0AC68A88B116861E07B9EF4A391B7F9C2D55E01D249D0998A8 |
2942D6CC115A1F489EA500A69DF17873DFBA831B56145171DF8CF10408E8888E |
199894E18172C51AF613F920245EAA3447BF26E2E0C3386BE892484C31FC80B6 |
A42129634D1212D38063D0386D4CC47EA0100E2A50563B09266CE8134E38E1F8 |
E38F87E44477F5BAD7BDEEB2CB2EEB55ED9234087BEFBDB7BC583B85314136A0 |
36008850CA5F54F45E8CA17D470E460421649CA81A98B898A98DDC61200C4C1B |
39DBF2882F1380A43AE4107D03A0218C5B2CDEF55C3398EC59368E9E05405C9A |
DE9A37BEC8D391F6D23E3DFDF4D3D998EC8EA38E3AEAD0430F6582C852C37FA9 |
B3494CEDBBEFBE279D74926B469C2C67FD10FBC1D64420E3EF9A27BC08DDB281 |
8E96EEAE01B190FD1ABB3BD9D329F4B37EAB99D6DFE05952C06BAC3926B7B6D5 |
6EF4266AF6D4A2146DDAA0657EB10A72E2FEEAD641DC906688567C30E0A71470 |
AC50D2B49629DEAC6A3EDA6976AA7A8666A31CDCF6BC154D29D8765612639539 |
E0C9544C961C1C79B7281570AF52DBA5F32BB7BC0A4794466EB32D6B60C1E8C8 |
C2A25C31DDB1790B473A0B9BB9B46CAB68E8DEE67DFF07BDCF9CF7AD6BAEBD65 |
F5EA09CB2F3D02722AFB5FD9A1165D8543409CD9ABB351F5398007C0EE26376C |
7434F214725DDD9873C6B60F74FC1E7BEC71F9E5973FF0C003FA27C8C629BAE0 |
59646E446946FC48162AE1EC986EB9E5961A0A8D8F0F0356E6F2761ED0FC3208 |
08378DC86A6EF7196FA608D55C2928B96C4E5ECC34048A890908BFDCF80F9B0F |
831D316D66501D2697140834FCB78485E886E6D0747C8498631BF0DAE320CF78 |
FFE84EC394747E7D420724BDE433DD79E79D6032F174DFFEF6B75F78E18506E8 |
699031DB23EF1B1DD3B28AC3EB95AF7CA5DC2CAD1C0B7459242F78C10BBEFEF5 |
AFCF2658876F7536EDEBA94774986A98E56452E2888561B13998914FEF6834E3 |
8BA56B34104B28D5C699936E595DA909AC264611F2E904A5D9F4B2054765230F |
94EE5F52FEE0830F96D46679E84350693267DFF9CE772E5DBA548BE7924B2E79 |
D39BDE84D9A715E2C25F4A0F48DBFB41004EA6DA6A890ACCFBD7D364BA0C0742 |
B4428091EB5AF271CF3FFFFC81BEC57920B074E9C1F03A741C3BC25674AA1D77 |
DCF1C52F7EB16C0202C83AF38CC5DF7EB9533D7BEDC3D58B9DA5A1D05FEAA3E8 |
C5646BEC94534ED97FFFFDB5CEF5AD04A3CE404899C9457CD9F44F4301B068FA |
E824DA381A52D4968154C423B5FC1CCEA463EF165B6CB17CF972870C531DB934 |
DF994BE7699B980239092F902E44A149ED67A92664304D3996543FC91CD35817 |
F3E78D3E67D30DA58047C74A160BE9C58955AB497550C2DBABC02FBFAAA028BA |
BC3D60C68293474CDDD45E2ABB164EA2801DB02A8F21042DC7B1D9AA98A2A77C |
E8F6FC47A480B53DCBBE848D92143A2FDB0697DABA6A7D58B52C6C35F2923544 |
1265A2D1A243F8D8E8BC850BE6AF2933B16C8DD46E75DA6514BA91B735CEE313 |
F36EBEF5F1CBAEF8B75B6EBEF33F7FFA08CE2E82A05FB7E99871E9FC4F75A825 |
330ADA486F64BEBDF7BDEF85105F2B09D0B509318C5B01B0236DAAEB9285A527 |
287D12B567B4AAE46D132A71A6D9CDBA69C307F667B6BD64E2D32808B29AB88E |
354DF8851883E5949D9298598C9B162494A119C3EC22C3167A3EBDAF5CAAFB93 |
CC269D7FF6B39F61326AF4E02DC286C59B617E2DA67B1591ACD94B3090A38096 |
7ED2080F50C94BB21C73CC31518A0D8872870A862DF719EFDC1F52BEA201A13A |
6E38FF4D331997E8683C65D2E92665FC9994C322DBE90370702803E2A27AA3C3 |
504B73D09CA521B8C0B03131305FA9EE68C49AD10D00118AA5F35E7BC085EC22 |
6735F42F9FDE26CF77620D6D2F8A6D85742AEAC65FFE395177CDB8EE6180BF62 |
E0013D894E2DBB1D0266161BD03D7119370A96D004660B00F40429AC7B1EB37E |
9C1F344E8AC2B654D58E3BDF4FFED8B94CC7CF39DE5159EB6CDEE8AFE6D141B2 |
A2C681DB154933D5043AD9E49D4594588F4C1823223DE7068E009B02B3525408 |
F318DED07BE4950ED690EA60C275A895BC629AF4D3E1B0C2F24D5C3D1A552984 |
97D0A6A673E14EF4575B69D9B265C0D709E931261135ED8408FA1E655CD4A553 |
A96E54F5EA57BFFAD24B2FD54976D965177932C4272263C9938E44AA6D190241 |
AE9A2AD55555F6B9C6A2855B3C6FD38D375A7F64546BB4D7686693ABC789D115 |
BD3EEE80AEBD72F5143D21E91696635693613A19EEF968350AC01A9275A5E99D |
A6D6773F2FF23A0BD86E5499D78A73B23DFFD132B5DB4CADA69CF2B220B891C9 |
102E1A653552BF99CB33CE3B6DA9EBF2868A7EB7689409989179F317CC5F63DE |
FC35A577758EB2B97026A53EDA6C6811CF7FF4B1CEEDDF7BE49BDF5ABEFC8EBB |
FEE30199102B5C054FA1F7FFC20EB58C211369F64AD440BCA2DB7C9A97F1CA2B |
AFDC79E79D4D2D646A492B6C76020B48BB9A0D7CC41147C8548FAC4CC32FEC09 |
4C6F148F0D912CB0CA8177401940D668125DC75D6713D03C1AE00BC67F20A758 |
0CC16B073CE0D914808D8314E01EF66906DC775E269EB53CC2C7A593127E3020 |
5E549759EF6918AE7505187EC0974A3375908D3EF18C124D7AD778DA54B5FBD5 |
DF9FFFFCE778C31225900010A03614C8624EF681830DE4AA91F286E81BD6E45C |
695157A6CE365F337AC0730862F45FAFA68474C990DD0537028985378E181B37 |
976672D736D9649397BEF4A5575F7DB54649A62A65216053AC80FB81761140C0 |
409498C4F640B220ABA13DA9EE580AC642F32B5749C690AE65C8A4EBBCF9213E |
9004C25D77DD05BEDAA925AA8640F198038405067604A19FD55DB666DB952848 |
20B8F4D7CA6A881F46212CB3FD9A0AD771722FC5E19D95424C2B9AB636374DCA |
91A64BC5E117F66EB44BD82652811FF8C007C86002D8D40C921A43E81138E4FC |
44A4FA752BB37EDD880917C5698548F2E3C7A11F497C3A4055BA258968F37939 |
FBB6E5965BDE79E79DDA53F8DC038F83A603EA916A232F5525D72CB91817847A |
9DF8E554D884E7C11F9D122B453F6F94CD8FD65C63C1922D9FFB9C4D3694072C |
05AC0F7B13933870FD6E455B532DCA896E3F22688C7F8B21DCACA647282F9F43 |
FF241DDEADDE8043E9772B75DB280F2BCA88B27ED228699F1B6DADB9B20B61D5 |
8CA1277F57DB47DAB739B25A5E72474AB5D39407DC6E6679D59DA9D77C4CEEEE |
A85CF1D1851DFDD75ED86ACECBCBCE4EA9727FC75675E7FFEA57CDBBEEF9C5BF |
DEF8BDDB6EBFF3DE7B1E26530B8D8EE6788EC4A19760F6BBED50CB82C399D6CA |
D0FB43AA17937ADC71C7495FA6DA00679B61450255309501115D33CD0E4048CC |
20E3B2224C07A632BA6B04877B81BF37D5CCECF2CEB59168674DCD8647C69134 |
7765994D8858B4D912B21F90CD5E1CFC945E7A16A3886D94A49042738EA75F37 |
FAB69D0EB794078AE54D8970CC296A30B52135D4CE25BB65778C92C55C6954B7 |
73DB10B86B380A0C8B2EBDC30E3BDC70C30D29A43F2D678B1A0058D415B7B085 |
E078B9669DD568EA8F7ECD3164A9FA5F86F487EF73C6CF31D38991CA5C400A9B |
4C23AF7B2AF8E4B84A6862F6DD1CD6550ABD2FED53026562D6D2F41CB0D170CC |
AC157F749107AE682092C92C535DD2ADC1C42763BB39C7A1D32E5EBCD884F018 |
A908FA934F3E59DB198031E97684356BD2B84EEC129EC8E45951CD30E94E6F19 |
1B48FA83392D2A460BF7B74835D55736BD99F78C20AC683B6635261CF852AA8B |
EB18D5390CEB98E541C2681074CF10E2EA546F7CE31BE58140660E39AE4EC818 |
EAB635C83026C5F804F4BD9E9A886CE7454481C856AAE255FA049257EC7B7604 |
311E5D826C8E493F525D3E4470911977EBD5BC6EE951D4DC3EEE9098EA18731A |
48D231313A08E960A84556161BA57E4FC262F48F966CBED9A61B8FCDD3922DDD |
CDD4C373EDA280F36ACA578D4F4639E2C51A29B1F240C1D5CE39A662C84ABD4A |
01571D05CA29ACC2BF951E6D48E94ED13E8F979F17DD2CEF361BA5026E360AE9 |
E6D1854FB43B4DD94BF33AED4A01E7CDCA69EE8FAC86ECADD599D76A8E351AF3 |
DAAD79CDC6880ED178F68BF9AB27DA8F3E9EFFE8DE5FDC70C31DB7DCFABDBBBE |
FF338209C44835DF33F69989AF8873CE7E271D6A7D09B9ADD86570A76045B186 |
226CE1139FF8C401071C10179FDB90591C9036061B52D434373C35500592CD26 |
0B239C52D4358BE68561EF99D528124AA7CA3436CFF6EB5FFFFA4B2FBD543F44 |
E6BA9FCC6C1BD514BB2EE919683C926682DE0CFBC133BEF4EC2F7AD18BBEFBDD |
EF122AB077E8671C00469ADB484FBDE38E3B5E79E595AC16FB4FFA2D06900300 |
EE2520E9A037EF7CE73B4F3DF5D427732EE12667D4C1C30312FF898182B0466D |
6888962E5D7AE8A187E293D93C32042C96C0467881668A5C32211640BC965FE6 |
774C75E276C6DB9B71CBCCB18FD871FAFBC77FFCC7321A34B35AD8165E96D111 |
18E8BA612B66E36687E73A1A5878991193952A055CD42868FCB9CD36DB6CABAD |
B6D2124D958767944C9A2949EFA5A87B204CAA4B98F4DFD446596847CF5A7AD9 |
CB5E76CB2DB7E061F3F900EBB80D3B9613195004054D3B6865064ACE91E1A22E |
B8726721F098A8103F3B3E2B554F8E3F1775C92F56F58CEB2D7AC0466071368C |
EC54A7E48737E9C08B21320ED4528E2C9B7E8B1F098C26AB7A5F72A4A41F311E |
A295343EA26EE53DEF79CF673EF31932B8D813CE32A45037982A2D68783FEB59 |
EA5F434AE84B47FED55FFDD517BEF005DD83BC05173AC38252D4F55D6C0783F0 |
0917915274189CAD946AD61DB215D2B6D0C6951EF04B5FFA529DE2DA6BAFD5A7 |
0068CBDA8911F925E3A9903B356FD3CD36DA68C30DA4CB26BBE32323ADDC9660 |
15822E95B2044DD1B765DA9FDE7A2CBAC576851B50394F459EA78EAFA822BD7F |
A67CE27A1D54E52B65D32439C9E36573A4564F3A785EA73F3A3A327F417BDEFC |
76E904779AAD1201DA4E9D15ADE648BB3DD66C8C3653696636AB1B58DD2B1B22 |
E5CDF9DDC9CE638FE7F7DFF7E88DDFB9F3D65B7F70D70F7F5129DD292CB7B64C |
5D983F039AEE7FAA436D649D25744C7F3A93F2F35BA8EF74693ED7F2A2289935 |
447513794D0A130989BBF33157610303E5A090DC1932DC822C14AD120DA3EA80 |
9BA7694C560194065C46908A2E146659CFA180B11F2D7FD1FA7E5827934C40EF |
FA9FE1F972A572BC7F8DA43B51463E9DAC2E3D8C51AC483A4127A254FB04B638 |
0D3B27014F68D197D31AA02E33DE9B734B385B594D1B42E47F0E8587794E5E1C |
5C42B36E998E46A1DE174B1C95434421AFE859962C59221BE8EEBBEFD6B71AB4 |
BDF6DA4B134734D2B138B48EEB44A1A001DB6F42EF54873151062C511B192ED2 |
4BD32393B895F86A444A1867C283B3096EEB18EAFA5060FAD01E5854D879A0C0 |
8CA9777DFEA10F7DE8F8E38F4F359F2B5744AC1395B15D35909E1F8EC9175575 |
32358144115CDA8E0AD4DFD8A456B2FEED6F7FFBB265CB88276B21691662359A |
23C0DDBAD5A92D5AFC04072D186DFF3046E9A17F3FFAE8A38F38E288E73FFFF9 |
D2F7EC350858C0E561BD0D136F35A6F7BBF583C7ECB20339FE2AA66006E8E5B3 |
1A526E1887533F28B0F5D75F1F779312A654B98CC840D0DACCAC1E4AE721DF7C |
E081077EF0831F04A28511A391D457EE3BE238B321697E40BC0BCD5ABFEA09ED |
1400E10472BAAF7CE52B2FBFFCF25413A815358E8F55E11C1359E7E8B039066C |
8518AB3934E6BA1F5DAE0C6F6008907567C808A3AD9E182FFB0B6569AD35E76D |
BCC9861BACBFDED858698D96BD106CA75729607839F256B31F5E56C0B6BEA3F6 |
2DBDF246564FED933AB880D96A9A029E52D2BDEE78E97CF77B459AC8B3F1BCEC |
D3D06DB68AB196346A6BFE8291B179ADB19166BB845995A9ACC6BC89A6EEA931 |
9A67EDACAF059A55B1ED62B218EB8C8E65B914467BC5E3AD071F78FCA69B7F70 |
DB6D3FBCE7478F56CD4D276B999ED5EB6F066490DD9DFEEFB043AD696530BECC |
F26A14348B0CFDE473A247CD3D1B85BE768B4EF2B6B7BDEDDC73CF6501B05E11 |
E892115ACAFA956B438D8FB5376CA1EC08ADD964B439F598260AA03D1C8A1364 |
1685D4D69AC34D4679B169F34077E52DE4C4A71F360BAC0229F4D14BD3E35496 |
26BD407C9FEA082DA2C46365E1CBC963D89C147BE49663DF7266B72CF54F481E |
231170328AC0AC6B12F2C8A890875E58338E4FAC138D050FF100C7D2593011D9 |
EB8E14CC3223068ED2107DC402FE59ACFF718A84F827AE5B6CB2691222DC5CEC |
B608D6739894C5D008CD2DE636C874695D62871D76906B0BCF25852206E94417 |
B098FEF2A962668726F3DA4780893C746665F179861307066C923F461398D0DF |
015EE438C58AA94EC4DAB8249EE9B9B63D670B2C1AE80E7E0E8F8F7E08AED0F4 |
D7D6139C241AEB1AA277BCE31D975C7209E14F4A28FBA12FA48DB668FF51B48D |
B1DEA8599D31F5F05C49BD6150F2508DD0DE313E1DAF819EBE9A085927DA0E87 |
1F7E38403CA346226B90C79046A55A8AFE7CB8E8193903B591349FBFE266A059 |
E5066294682A585B8DB65FC80746C092900D15532703F5E8D8139EB8A54B977E |
FCE31F2FC1B92E71D3A8C915FED6B7BE553392E4A9E45E6EACB168FE7ACF5EF7 |
59CF5C6764A45D762BCAFBCDAC8E24735CE501B746A678C323A3420A1D1A4CCA |
C1E7EDA60DD22735EE93DBAC7AAFF3D5BBAE0C795767EDF67BE3291F6F352B0F |
B895465BE39D4E4BEEEFBC79AD9191E66885FF2AA11CF3FB8DBCA34D5174B312 |
AF4DBA3A2BB2E6BC567B34E5F2FFE499B5FEF3A7AB6EBDF5C7DFBBE3EEEFFFE0 |
E12A88E11E82596D2E3DB9F3A31448BFF30EB5598D574A73A28A065EC71E7BAC |
8C44AB2256C949279D74D34D375D76D9657CC89EB4DE7245A9E1F11CC0CDA0F2 |
AD860708F47D937CE20247040DE7FFE8473F2AE7E355AF7AD577BFFB5D2DC17D |
F7DDF7139FF8C41C5162F8170D1A6237126C282A8CE2830F3E58D4B5B65C5D87 |
39E11A8B089DB6EF4E2DA7A961045B11BD2EB0E8C4FCBB75E7706C532C15B25C |
D6371A13BE8A7DAE5087B2B529262153A041B01F8339C2A0EDBEFBEE32B76124 |
E0DE7C12F211330E0E0282404851F391E1313B3CE0AE212E7FEA07BA6F8BF5F8 |
37D50560EED3902A8FAA57F5E34291E879AD801961F7B4F019629824AB3986C0 |
AA38AF26C973D041076949E00E12541FC6B9785E9C387487F901645924791DC0 |
4F79C6797CCFBB4FC51A7BEF7BDFAB35A985A7E930BAC78F1053068ECF3BB6CC |
F96163CE425B524C31E2EA9C907C24618346A085CF0201A425864C25C7CFCD80 |
9DA6D3E00C14CD5B07834B020AB4F3CE3B7FF9CB5FD6277A76286091338470F9 |
A157758C30F195011C3E43AA2DBF2C1422BB6E1BDF144197EAF4A781230E2FC5 |
565A6C37648EBB27F56A82522C30C34E53C0CA0CF0FAE9F60E3EF8600940041A |
10B965CB969D78E28965D9CEAF7EE5041909786A3D1C2A738C015F8265407B78 |
876AD8F53A3978B114124903028D6C82AB8F607128D379B84D8CD792254BEEBE |
FB6EA2F91393BD56BB21A5BB70C1D85A6B2F5C63E182664B9A6C527F5B7983D0 |
534EF0A1BA686AE471953BDA63EC5554C059D50DB8729CB1289FD4C1BEEF627A |
747A0A6FD1EBF6CB64F0AA8A29BA2F777CAC3D51E680E73547461B7285351A63 |
9D91564B3A39CBB3562AA41EB26E6983F6B27EA5806529B4E5018F4C743BABC7 |
3B0FFD7CF5F2E5F7DEF1BD1FDD7EC7CFB432B44AEB35ED54C72000B5A84998F3 |
DF61875AAFCBEC29828F807DB1D60DAA720F0054ACEBAF8C84A7AE1C73D29CD8 |
A90ED2C67869AA4B66B59E28A5479A18D4CA394DD6886B18D5899487C4C46CCC |
4AFAEDB6DB6E7BEBADB7B28D8998B1E5ECF178071247B267DC08AD9F62B001FD |
17750F7EB6B6935C76ED25A45594657136635D720CA27A91E8FC4471F5A10496 |
54A3F6304148E09D60611899549B537FF2277FF2CFFFFCCFBE841D2F73EFCD36 |
C57A7C82B1880FDD1BE310EFDF2BCA0F1261474CAE23C3C4F4D0679C4A43ADCF |
895E6AA83FFBD9CFCA743BE28823E85FAB970B1F538DE521E6EC881C89AD46CD |
8B4B1B2EC7D8C1CE6864A433FEFDDFFFBD98B36E3B46057CFE3FFEE33FBEF2CA |
2B1D8B666D0C83802C97CC3D020662BFFDF6BBE8A28BDC066D75C56DA0F77253 |
8E3AEA28436AB380AAB581E5BA413DE33AEBACC3FD0FF42834B43BD50103EEC4 |
D1FB48229D6AC222BD39FDF4D3DFF7BEF7E1EA799D1B36613A2A43F189CCB9FF |
4ACCC5443E808151B5ED324C00EE890081882FF1F77FFFF75AD5F250F9EDA69B |
6E2A278447A3DE216655E8F9DD0F54D52980D8532849EA871E44B14039AB89F3 |
D835DE8988A3AC2E024E957DA0CF69846A6656B2095A1232FD0F3BEC303C4C86 |
8B8E81D88598837AC30FCDEF11B526B602851E8B172FD6200C87D6667BFD3FDA |
CE034E92B25AFB6F55774FDCDD6123CBC292D6250A8222C835DCEB45D48B4812 |
4510143120E02292040444C292BC822012445110F11301C58011451104D31511 |
490B927761E36C98D4DDF59DAA7FBFCF9EA99E19E50BFDD3A177A6BBEAAD379C |
F89CE7B0259063DC2837D182331CF4CAD3186BF12C3BA74CEE9D3A75CAA4DECE |
9064C3C3831D9DE97A055C60B888488F8CEEF7A9FD2A7FBC329A14BADA52BD39 |
C8998D3D3AD25B3C92CF1367B51CA595D34F0F26A9ED8FA15A47D3AC81DE8E21 |
53C0DD5D959CB4B2C31C941A2649DA51CD39A2B36A7D2433059C0BBB6023343D |
D45133059C748ED46DA53B5F5C3AFCE05F9FFCFB438BFEF6E8729B713B9271BD |
93B8F6997FA87474A79D528FA0C6FF9F0EB577DE79E77854BAFFF4452E596CF2 |
E46F907A3E500342D2FEE92927EDBDED5A13ACFFFDDFFF6D96A3C95C481689AA |
69BD2076862030295AEFD9DEC274654F6FB2C9266F78C31B7EF18B5FD86FCCDF |
BDFAEAAB69698EDB2172CA31C74F47117B73CD35D7D8E1B16F619170DA49AB9B |
7F693F6D0CF608F08AC0D24E9645B049CDA17073BE0B13C1C346D1701B8B98B6 |
CA76474C52A4AA5D53AD8E9547A0901F5F1361E1998F843637D9B7EFBEFB5E7B |
EDB544629516F5A322C74CACDE13EF25E3A3886DCCDB6CB38D3D35381D20ACA8 |
55489EF10ED9098AAF4ADA7A8D82EB9945B8101F9341638FB370E14213BBC451 |
E5354A6802379326209E49FAC0C6067DA0381735DB21C66044021AC66732CA22 |
4FB8CAD870D44CA39B5960CF0B0E512500CC617B0E9898390025D5C7ABD80F6C |
9A5272F65CE6EAB5E7B6096084D8F5CFF6FC0E3BECF0FBDFFFDE27B3392CB269 |
143AF61B52110BC949292441282AB1C3A9A7FD626E9BAE81188AC46E6183C1FD |
C5D3C2C266CBA935B8FD09BA0CF61BC432C807F951AA7D6059F1E0B15DC8C8DA |
EF65E0322AB63DC84DFBFC8E3BEEF8C73FFE5111416D272963AC25B1644BF7DB |
AE36ED68E3A4840F754E9C5FF7F2701CB3A2AEBBEE3ADB607642EDA100BAFABE |
2FB6AC7476B71B11805177138A9DE04B61785B6FBDF5A1871EFAD9CF7E56D92E |
C4B5C215F4743193D1360C881CCA9FBC552D8793DC8A78994C94996D376BD6AC |
161107E537A4F4A2C56492A0D2D3DB356DEAE49933A7F54DE931753838B8AE5A |
0B84A073155B049F51C0C3CE9C97EA0D0EF2E073C0F99EABF0BEA0C04CD599D2 |
3172E00D47C51C4CEFE7CD07EDAF7573E42AB5E19C93B21A26759A8199747699 |
5ECD4C1FE740E822071CD2CE82233A698CE429D5C648BD70A99BDDDDBDD54A67 |
33AB0E0EDB91E858BA74F8A1879E7EF891271E796245B1F946296086A1C5AEB8 |
06A221FA3DF257C2FF9F0EB5D88FFF67DA37C4FEA08A091F75D451B7DC720B4D |
D4EDF7B6E96DA742C3ABAF989EB0A940D1D22C8866EC0802024DAA5EC703E070 |
2A512D1941C4582D8F94A0D221B4A365579840C1D8D5EC0C9C73CE39084D0A03 |
805A10EAF4302ED35510BA42141322ED09E16222FCA4ED61AA42469079922165 |
07EFFDEF7FBFDD94002C3E874F2FEDBEFBEEBFFDED6FC3E806828DB6EEE25B6D |
B5D56B5EF39A5B6FBDD5BE4248933911F03889E4C3D011D8B450FC40E04ED5D5 |
B82CE3D553B2CD449F4274570CFE28183F7E5E2C50E240B321BA142C37510781 |
BAB1269348BA693F6DA836601B36AD30E557493A038EE58CE0EB43080516C926 |
C1BE45309FFEF082BCC2CB3D71796B89781940A9FD924A42E2137AA83113C0DE |
C2B0A7A02655A9227395CCF10DCEFA69CFFE86D19803C0343C85FC3F051EC41F |
A24C399A18D3C47351A93E0A4D0FB2E9E0830FFED297BEE4AB131144AA66F6DB |
43A87B98CEB2A2F04C430D85DBCD987D7311DF134FB00F64A907D01183556F1F |
F9CD679D75D6F9E79F8FB4C1DDFCD8C73E6676AAF9CA18AC8A366BE6A53B4990 |
9988B02D846DCA6197A9AD64BC6A3EC54D54899CED7653CEB550233BEFBCF37D |
F7DD474812962BBF6DC0128A0060975D76B9EBAEBBBCB5217275F0012A522573 |
BFCF3EFBFCF0873F443EF8C92FD54F4BAC2951623F6DBB528C9A8B53F18872B4 |
D693272479D2AED691CC98DEB7C9261BCF9A39D5945FF181AC1A15090E2A1E6C |
A3D896CDD194E5FA99B611717414D549C58E2C3CCB8AA0070D17452F367D819E |
CA15705AA8ED4A3DAD346C45AAB58629E09E9A39B595AECE50ADE57D82D3BC1D |
9279E7D546DA9DE47D95F204F0C8909DC6BC19B05D6152F7942CA90E0D878181 |
6CDD6065F98AC6A38F3EFBD863CF3CF6D4B2A2BA4EAA3489B3B91E55A818B284 |
35028B9855186DB6FFBFEA503B0102F65F7929BAB2FDF6DB9B39893A59DF7263 |
B444963AE4100248B1ED6B17B12F9668D524DA9AAE1166C335776AC4CE71696C |
C20535235B4EA971ACCEF15C7CBB14307289155ECA037DE6339FB9F4D24BEDEC |
3DF0C0031CE92BAFBCF284134EB03FF115A1D379701BCCFCF9F3FFFEF7BF978A |
C7C0E0D8C754CC3D6FDEBC57BDEA55E6594247670F6233F0C8238FBCF295AFB4 |
7B61D5AA0A0BE424134294AC5274D1A08D23328B291506845B331B7CC023A231 |
236C5DCC0233B1528A51953692E823A4506D0C5B6EB9A5391F3660C2838C5FA1 |
42EA34049A6300CDD89DE2CD6F7EF3AF7FFD6B5C4C4172B0A24C2C9AB854D986 |
27F707D5824193C456A40CC6B6DF830F3E6857361565A3BAE38E3B982B9F35E4 |
1C31FF13D0AE2591F400F30279DD748D4FF42C0A7266AEA75E69EAF063F0FFE0 |
A123844BDF59F51F0BCE9750205A01709971213A761E566D5FA1AFA8BE428678 |
CC721DC50851C0AAD3F554C1484E451792C8AB651F302D78EAA9A7DA9B0B2EB8 |
C06C3E9AB80038802BAD1949A1C154A3E7CCC497EA0D91095C216E245E1A890E |
CD2F344753BD4D7D84964750999032C159E43C082E1B5289ECA70AB0133960EA |
EC790F3CF040DB844F3DF514761E2211924EE994347295F801882396C9B1F726 |
43389558A5E0A8B5636DFC64127D241C958FCB81A98188E38C880FA45210BE92 |
7FF9A7E168CC444C58620F89D07A426AB4E0E3D5EE467D24A48DE95337D87C8B |
B973369A69AA7960709DB99B15C58A9BC5FE2B766633091ABD4741A76D2494FC |
A9560931349D78055C1C98669CDC42948397CEEB77EDAF453386AAA925D3BEF5 |
4AB5D95DB5594EF24E83D5666A6640D22A016A64BDB6392BA1D26C6445A3A566 |
EE6D5793CEA4BBDE4CD7AE1BB6B55E37545DB1A2BE68D1E227163DFBC4F32B8A |
DC648383C63416E6C8A89396B8FE658A96F8948C62417CF2FFA6436D88443325 |
CDFDB21430C524502F71244CCB723C38BDA1085AAAC529B24325C236C233CE38 |
C31C503B03071D74D0B5D75ECBB7E0D415204BD5EB76118E84B8A3A998B2932F |
6404DE6AE660B41390FBE37983E1E2001026659BD1F182EFE259AAD7299028A1 |
CF94C986D3D52C892CF62E5445A93DEC269B6C62FAF537BFF90DEA993A9C30BA |
25837FEF11767A2913295587FC5DB870A1894522B1A0259147881BCC79112C48 |
EE131C1B6FDDD3C8E4E59B24CA18928FAE79F0914FED5B65C7E55D912368C696 |
F5D49E12485080FAE28B2F36116F2A19C58CB328320792FDC1310CDBB72EBCF0 |
C2050B1668B7B37970DC1989D874C77B5E9D3B8AEB6C21D842CA0BF0010E9DAF |
0FF6C727194DF909B88CD1A29F92480BC506230EAC902C0B47809D47E0A6CC9E |
089CEDA1285FF1E91E684F084AB1FA78A2A5369452C0C20AA08C4B9D8C43E42F |
C358274B42BC4A8D297D1F8B107BA0A126CDE3B40D6F83B4E380A627825A19DD |
D9502751D84396C0DEDB5980B0C5FE4A7B531314A4D2ED317152ED9A488024D6 |
100AB929235E5C5A426CD8D68504B094214D5C7B4A459E58056A2E407831033C |
BB4FABB1BB1401D201F7F3A30639648ED0B53244A889B2EF7EF8C31FBEEAAAAB |
ECD1FEF33FFFF3F6DB6F57E706BF751515AE385A40B6DCC73EF6B19B6FBE39F1 |
597129F0DC630BF67EA428439ABCD966B902EEECB2DD3354C942DC1F75CCAE9C |
A02ADF3495D056ABA34164EB9B20B554514735877089358B40B44B1B0739C738 |
C1CD50B173DD69EABF1AAA95461E6DEE4CCD21B6AD9B7F3D6D24A673B346D192 |
308F8DD4C3142CC97C7459C15B56EB2CBCC97E737FD7F48FACE96F9A0C5CB5A2 |
FEC4932F3CF3F4F30FBFB0DCC797F0D8B2582E6222C67615B36FEB6A2B4D7E65 |
82571201933A5D25551AC6E950CB09A724BFDD9E12FC47FB52596415C30859ED |
83E7546E50CE2B99CB76CF62F7EF2C627D4B6638B9281C0E46E5117D633EBED7 |
6A0C3244C8896FF01922414FD3B1110587ED549ED267564A1B1A2C22914FF386 |
8F3FFE78FB2B3604F7F2F8463F93210633159BD11B6573B176F16B8570092EA8 |
8B1A03E18CA52C238CB41FB723AA0CFB015768C45EC84203659193590A55C753 |
940EC1E1A7820B79955EE81E9592DB249BA09938B44BAE0B132A8BDDD17D5483 |
C7AF445AF26C7423C5D4715984D8E66F9B6DB631173C8DBD1654F485AE52FB0D |
653D4374BC90A1E869EF4279762A13AC056EA3CE74793B8CD551E625897DDE04 |
59F266878A47351B0AF680810A0E4AE99772975D76F9CB5FFE825CE62CCB0622 |
F6AED280F9F3E7DB056D37DA4391001202DC1750705935C7558CC1F7050A8575 |
AE8E3D3078F079CCAC3436B4079A3058BC585FF6A43E4FE914ADC13D92DC87A3 |
6551A9EDA9BA4D10A755846FCC7D253F3875BDEE394AEA39A143649F34496B5E |
3B511331DACACD2D51EDFA794B0B2E0E95F3DA17E588B3CA34C3B6BF927153D9 |
BAEEAE11322DF8BE9FFCE4273FFFF9CF5337CFF1219345E2830251A8BC0199B2 |
9F357B9C05CC0E852210C51CCCC423CE7D446568B88E02DEA0AF77934DE69802 |
EEEAEECC03B90D1DB011AF80CD24F551562FD17C0E4627B6A0B8CA075052C008 |
56E43FFE712B5A9B98A56F4A34CD93D09566ADC30468A556358738E7CE4AF30E |
C1235968A06B0BC28DDC30B4FFE360D7D25A47D1DD61A8BE66605D63E58A8155 |
FD2343EBAAFDFDCD679F79E9B9675F7CE899257EB49EEDD616D5BCA2C71E7B0C |
AA3C5BAD37BDE94D66F28497F3C27EA44BB3C45312D19862A44B62B397F13634 |
8721757439255461E9EBDAA91C75925B9E323344F0B040C589EBDFECE3196C53 |
A9D57FAA8055E3C8864601CBBA07DF7BF0C1077FF9CB5FF60939E9037DACA47A |
83A362D876DB6DFFFEF7BF1F75D451575E79259FA4B52A175471856756824603 |
5F013BA07DC786E84895E0A09E4920B8027C8F445DBFC3E3175357242DEDA8BC |
9D8FC869FCBA054B239F5B254675D77A72BCF927EFA84A5CF680EF335F129478 |
7B60C291B6F206148A44D492BC1C33A8E38301A60BF7DC73CF9FFFFCE70C5E5D |
DF712984AC195301EB3A6AF41422DE5E916D512BF0A29D8E582D43D4D615D768 |
D517D5941A4D9AB6A35F90D4863850A9C567F7B25864C1F7DA6BAFAF7DED6B59 |
0466DBF070B630A91BB1B385FDF3F2CB2F3FEEB8E3245204B754BAC107BD43C4 |
60DAE0CF3AEBACABAFBEFA85175EA0BF1C9E9CEFAF20BC37D55C175C70411A9B |
9DC828513F4A42EE84FA891261A6109350FC430BAD347388603DB10E80C36509 |
2AAE394AE9451C989A78E4860E026FF0A1ED9A78C97BEFBDF79D77DE29E249FB |
8CB0F7E9E89A786D925294CB3E6C6F6CA292889D16EA4D69020D06730D9B5816 |
701639C659685B11FB18AE8B087F6CD83648A4960D1543D083C9ABB1B7A3171D |
21222D5409B2DE59AEB8CEA9B98159B05AD9234C99DC3367CE6C53C0BD93723F |
6064605D4C818C30FB2D055CEBF0FAD5E3ADBCDCD4894D9BD018A53CAA9CDD5A |
47259EE74C9E58AE8043352F8BEA303FD8645696FFEC4873D2AB5ADE8921ADE4 |
0C5959A39E87A00B71319485CE229D938305427EA46BC5ADD68D0CAD5D33B87C |
D9DA952B1B23C3D5B56B92E79F5BF6DCB38B1F7DE6C5E014B0B08EBC80475144 |
61877662A69EF1049CD78BAAD65704923323969909404992654288F0C60E3F61 |
431B9E5D9F7C8F44581AB92CECBBEA202D7C41C375F00EA303DDDE8DF6CE10F6 |
E004E3544903C6384E8C4AD7ED3CF8DA21C1494A044315C703AC9164B1CC03A1 |
6C0F0B728D59B5C5B22B6372D2ED5C755FF861305879A3D3ABDEC4A1F1EDF899 |
5CA6B044ED194E3FFDF49D76DAE9F0C30FE7F831F995486225754BF249BA9679 |
66003E72AE59E5F1C16DFA9032015EB05A0A4870C47C27CAF6F9870F017B1FC1 |
64D332DE7AD9C74C761F73CC31252343990B168521658E98A2A4805BC5153100 |
00FD882986CF7CE633EA4CAE9A544492B2AA4DD7B50623C01E0195A30833D34B |
A6537B00558A0457E58F00F028E0CCC1A63CC7131B8F07049A40945571751B36 |
EA5C156BCA5B83DEA24E941527875D120E0C8FF9413473E44F3BED34FB8D3D8B |
5D44E6AF7AF4FA26757A79E0BA0C08E6A1FDBEB05EF39832373D730BB7439A31 |
57E4CEC4F5C6FA7AF88E40C88A982A143CE6BE9202164B0C03509EC2DBA600D9 |
50D29A64A8DCD830CA46A945870DFE231FF9C855575DC5B0C9A31147643B6591 |
6794CBDAF3DA2980CA571C3560450567F3CE8F8231EA2786A7AE55106D278777 |
D34D377DEAA9A70013342237BBE078E8239EC2364F4E33A7DBD8F360D1B4225D |
FC2509937A3B67CD9AB1D1EC5953A6E4BC1343EB561368F20AB8F0614785A4A4 |
809351C5456E611AF598E417403A2491B7DAF4A8D7C1F6A619CC7731056C9E6C |
5AAD64795BA4C203B665CDAF908EE41C1D593DE48D81F395AE76AEE70303D855 |
29C0DB03F560C6CAAA15836BD63447866AABFAEB4F3FB5F899A7173FF7E27A8C |
A8876C80C4A35061C71D77342577CF3DF7D86F5E6E2E169B7D9B6DB679F4D147 |
495E52FF805A5265BAB7D6C77CA1BAF05410FD760E6D3C9872F6F5EDB7DFFE81 |
071E60E3A28194A352D414873B8955F66C883472058F7790E45E6B5B37266C8A |
E0C37DDEC5B101032924E0C9D112B780AF3ECC22F188D6456FAAAE0BBA629BAD |
EC46117D55EA512438E06F95FE819DC03F72BBD961CBB4DD76DB99936DFFC46A |
F119A9A4E0A7A5DA016A0599110C4FEDE142F47485794C5C5F55D928E209A24A |
7BABADB6B28BDB29D5E0434CA966B18DCF04FBCD8B366C0EDF35B2F492AD435E |
13709C7D1D3E2CEF4C280917C64A3965AE8489A60240CCC8A12AA35CAAA52929 |
604D0EBDC5A8AAB7DD6B8FC0FADA31B4F74C0506AB621E708DB12B5427D65E80 |
0040EFFAEBAFFFD4A73E857F69CB6A877D75F1E23469ADE7CD9BF7E4934FA200 |
C84784C25701286B9F2C55C69BD146CAC37EE3093A541C150ACD4A969494966A |
730592B745572C04A91D46FBBEFE8809C381B887EC70B7DD76FBDBDFFE665723 |
F4CAB2320FA6EF6DCC36B1845E595C8664EBC5189236C837DB5B9659296134C1 |
BE4251A9B7077CBD707A7022ECAF1C3492D9F6275B141C477C5F7BC066D16E55 |
1CCEF218DFFCE637DF75D75D5FF8C217162C58005D894E1C5AD376914D230D22 |
1BB1F79798F8AEB9E69AF7BDEF7D0ABE7ABA85D243216F7DD136A46C50856035 |
BEF18D6FFCFDEF7F8F28260482491A9CF2B66D00258059A5890E2A6BC6F6CDA7 |
B89045491A3A3B2A1B6C3065E68C6976A71C8736D24A32D7EBC331765D48C9B4 |
22DF31388B581E4C29C497D4F32847A59A440FB875482AA2A88C3AB835178939 |
B495CEA27B638EADAADAC357AA2DE5DD4C2BCD34349A5941625204503BBAB176 |
09A116CABEA3B07383F99AC9D0405837900CAC0B2FBDB4F6B147FFF1E413CFAC |
E81FF292D7C7D2B3D8EAC4F6258D757D80FA5F7C4151B9D75E7BFDFCE73F875E |
079603DB5E666B53EAAA1634CDD164DAA50D6D1F3027CF2E75EDB5D772F2B1D6 |
85767EE8A187C4E28BCC9528012142081A158E8F48D35F9099DED7D4C2C9C393 |
D06F8EDF64D72F77E65A27219D517B302F7AA2B892FE90D732E654D82F4D6CD9 |
356DF7DBCE8439815837287F4A53ECAFD21C2A3C983F7FBE4DD798F7D5E0E528 |
E046B05EF807760593C8E616CB3F0BAEBB5925B251AA48C38664EB055D972C2D |
3D266EA5E2AEA598336022003E1EED55AA7A1A73BF99477BE289279A2C5BB468 |
11BFB461F8A0AB7F011325B95812F15A77C52A88938F791DFBFCEEBBEFFEC823 |
8F402C4FA64DB156FBD3BDF7DEABA6086A365C927789632BA314DBE6F0A4934E |
3221AB46DA2A83B1CD6C5B57362856918DD9F3A827B12A52274B3ECDB1C71E7B |
EBADB7DA61915FC831246387E9100A7D59C24061C0D1E60805639BD9F4A8D2BA |
BE2DAE37A14221CAED2B9AC3B4E08CA3C3FC01071CF0F0C30FFFF297BF0CA36B |
BA2AAEB59FCE0EAA88C8BC047D88D69E6F284E0C4636A84A64FA3F0000FFFF49 |
444154FA1D99AD60632694A2DCF0FA76F131619439506DD3355FF12080F1E495 |
57C0C46929223FE49043BEF9CD6F626DF8B4B43F1D26E2CE38E30C3B3B242C78 |
103EA06844257208E2BCC20140C8012828A746454DB8D4BE36524D5493C8DEAC |
0717800B7CF825975C72D4514775172F3AE609851A0ABFDCE69C927191AA565C |
E36446AE62CE7CDE7CD85AADB9F3D457AD80415572C7B1ABAB63AA29E1299372 |
0F3AA947DB673D082BFF673A8A7355B38F2B90B84684BC6ACD08738F3A3849FC |
C73274703C96F6E9EE4A35EDA8A479D1706296458A07DC0CB6C07967A424CD09 |
27B966350F4ED7B3A4A57D1BC196BFDA91F3647556AB7DD54A57C83AD70D64FD |
2B479E7DE6A5071F7CFCF1C7FFB166A03E9EAC2FD5EA49468497F3E2CA945786 |
9890C0C3DB79E79DCD68CA0AB639DB3713D71D9D75D6596637016707126CB203 |
DD89282760C259E53AA289E70A123DCAC1D8CEA6905132A8DDB34922665B7115 |
91C38D394E9D5E963B8B08796E7AF6D9679F79E69958B5748E425293D8CB46F3 |
988E797DC650775D7B4344539B64B4436216AEDDC51E0D3124D7C10B659F6B2C |
BDE4C629722B45CE994C62152F99ECAF7FFDEB202CBC8462AE4CAA9A2FFB97BF |
FC056F83E419B2525A21B85874882946807EA5FA2B3FC344DBC61C7F89C7D85E |
360FB6D127D8B759ECE6C44F9335B646CA5664B133B964E878D7114ECA842CFA |
9EC94701082CDD9EEC28BDEC5B7623357857AA0F481D3008C5393C876B52B04C |
D0D60C5E91D2542711508656A09686F8103B8A83F0C94F7EF2AAABAE2238699F |
4425432DC7ACDAC5172E5C684792EAD8D7BCE6356679989437A3C7D60E960602 |
18849795EEE101ED14DB1818A1A781C4BDB38BD8A8EC6A3045E000D842C0DC44 |
81F8873FFC61DBE461346259469BDD0E88A58C429ECE5491ED287B5EFBB09944 |
66AFE354885D92FA3ABF345E07FB88F4BFA280B5A942A1A2A4FEED7170F6EC97 |
A41888FF131086674A7D21E9662D8B59712F5835506976359B1334AE875CD805 |
BFFAD5AFBEFBDDEFDE61871DEC61A9E5250267B7BEE9A69B0E3CF04071AA7844 |
148FA6400EAA1A3926035DBBBD527425D108859A545502CB849340BCC4162849 |
C782DAE6065747C68D433367849E3C69929D9C1C6E5A6D443E8A46840A17A89F |
4A5533AE4C954F21085BCB3F3BB20AFE2E3A38FE697D7517FC945968E5BDD24A |
6F0E8D2E169D8ADE5A47C5FCE166C819A1ABB5A492DAAC35AB8580ABE688B0DC |
BEC87570EEA0875A67B5BBB7CBBCD0AEEAF4CECE9E3431855A7F69C99A454F3E |
FFE05F1F59F4F8536B87C7703A4BA9235B30D20C617CA69EF15E9548678A58F4 |
5806369F308D8A918E791D08658832D9865BB060C10D37DC205A70FBE5D5575F |
7DD861876123534C82B7C48610DD124018B821ED6AE61993631BEFBE254C2CFB |
7B025B41485A8163E5F93186534F3DD55C34798A901DE21C7BF6A2D272E8BD9D |
4F7B40DC8E66C1F22AC94ED6B3197BA5F948EFDE7BEFFDA31FFDE89C73CE31B3 |
DACE36D559E38D3FB82A6ABFE20A5529C786F18AD340C64B595222BA666B9B34 |
114C43E5134A75AB87922D1CE1109ED11EC48485995CE79F7FBE427FC8B28943 |
D05964D325AC859632994E854CFB4B0C0378B70DD75028449267CAB7D4AFBE7D |
EAD866C0A43D7ECD2E4E0CF0BCE2A5EA141A417AC91E1CCA41DB5542EDCB5FFE |
F2C73EF6B15098A1B6828434EC65BA04DF8E0433AB63E6C2E1871F6E0A52C864 |
2D22E3378D8E0759226BB4A36157360D6A1F805B2629B05762096E38CE76AE4C |
9F12BE2510BB6D690F0EE2C02AF7646F70FED4BC92403A42D5DF2B44AB519BD9 |
36C90B2FBCC09EB18109E2E06144A1886613D1A467AD9858D8841876EA0F4113 |
BD37BCE10D77DE79273417AA0451B459A9DF301A9331C12B8B6520EC7991E128 |
D8130A4B8BA0345F51BB08AABF8815E31CCA362224498219D5C8A83023CC1822 |
436197B25FDA2AD82DEC76F6BCEC25332E4F38E1048E2A37458372AC7CA2CDE6 |
C77ECAFB2A998FB41784008BBD0723AFF09569AC83E7EB2039D8B1F6D7DC4DE7 |
0FE2AC592F5E9BF522CF5A353D58ADA6A680EDD279A7DBDE6A34169A52C0F958 |
2B559F65515D1ABA241DFDCA37415651B951B5A6DFB7CA4B8065E597CAEAADE4 |
687552E149E515BD216BE43AB556310B36A4F56A0E8DCE6AD5505C2DEDCCB1CF |
D5467DA4889C862C6DA4D5B4B3AB5628E05A573ABDA3B327099DFDAB869E7F7E |
F9138B9EFBEB838F3FF1C43FD68D94F75312294430FFBDAB3101EA6F828DC8D9 |
83E6B012BB92D97BD1A105D7ED6E028BD294A59D25513EE960A0DD4BD5F1DE95 |
6C8F6C7FEB5BDF7AEF7BDF1BA21DA7C8677B365466ACC6E9897EDA5F492CF310 |
DA82AD6547C2DC53B33A172D5A047F4D88511A79C0617486A97D51ECF56FFFF6 |
6FA63E8147295227E7DEA48999357FF8C31FEC9744267DF5A4526E13F43DCD5C |
A5932FCF4393D1263D14A45144F55532C107BCEF9EB98263565C4F270BAFB778 |
D91570956CCC262FE812C82ADF78E38DBFFDED6F7FF2939F988F152227CC0481 |
68336ECCC461305863FBEDB7DF77BFFBDDF1F69558C1D97E784B4A36233DB7DF |
7E7BBBBB84E998FB04CF00199A161D0F152D30A1036690E89C6774CA46F34C69 |
481493980F0442908FC1FA090C228B7DDD55E68480C30E20E5A650538891407C |
440D1BF8B129836DB6D9E6E1871F1635823D85896C8A5CC92F90D7B0CD2399B6 |
F3CE3BDF7FFFFDEC0D48EB70FDEDA9D97BD0F4A34510DF988C7C056B86ED2192 |
29C874A928C5DE6A149DC454DDAEFC2235FDEC3DCF791E46F37B2840AA39374D |
BFEFBEFB7EEF7BDF033FA8D4A1F9887FFBDBDF507E0C29C468531671FE8903B2 |
F9D8FE78F20A335D742EC4726D4F9AC56F33668B8B42A247A7EAF843A10B097B |
D87CD294501B4615A11C498E89FDD32CEC5D77DDF594534E092EE64C2216223F |
051B44DD9FB4E1B433D71F5AE113F6CCB9E79E6B261D8110E225328C34E11ECE |
9CB9820819DF26666D0BD99F6C121205E2244C5BE54A49DEC02FD7AD39016498 |
DA3769FA8CBE9E9EAEA99327E78CDB5D2D5A5113982D8D9BCA8B6DD5E003A96D |
C67684E968468ECE4A4768358D490AEBA355E1DECC5ABDB26567355A8DB15A22 |
CFC6945FD3CC8202D69C54D676546B1D9DB90B52ABE4C5465DB9DF5E74E7B095 |
CAEB839B795BA76AD125A9338FA6DBB6191E0A2F2DED7FFAA9258F3FFEEC534F |
3DB77CD9AA556BD77939ABB36A73642B4708B7E25AD394EA0B838BB58EB711B5 |
D11522F660BFF6CF0B9EE07B689379E284D80E500E559C1E9A70218C541B831F |
A3F48F7C3BDBE5760ECF3CF34CDB5B8D829E975D2EE8BCBA6962C5B7F7014C1D |
D5170743DC7B18DA3E6D060647A8255CAE090C0E95AF00236473A3BCFDEC1190 |
1F0F9DAEFA01F112845816E53126215A90AC918F1D21B805ED0188ABE8E8D147 |
1FFD9DEF7CC7C43717B7B9B5DF0B09A9789D9753B802BCEC719810BB9D3979D7 |
5F7F3DB15F813F53D78131294A932588D5B53E44CA43E58CD5DEAA1A3B93A38D |
648EF82E34800FF415DCBEF1D6054F31449A52513F82E2914245E4893D1F90BF |
A71909A3E102FC86ED84020E85DB61DF359D2D662EA4339103B6375171669B4A |
1B9A27FA1B994F6CD68F88936C05ED9F975E7AA98FD086C246B48B9801F7C73F |
FED1E4AC294E2EA2B9F527A274F6B5975054A83D26565C132AAB05BBC7F07C1B |
C7D0D6482AB822400269FAAB5C6A34B4F2E23609261F28FA22EE8DF5AC434D9D |
4FDEFA3DDEDAF41C5401728B6539E13D7B9BD26F8609F2089889F08BB17C0CA0 |
EA1A379999F2BEF7BDEFCA2BAFC4C1850805614B125D6932D5044BA756467791 |
8A78DE14E4A9EC8666A42F648A9A919612E59D8DE670F4D6B3578E7CB254826C |
671F97972007590F5FC4CF56492333A0AF6ECDC9F335538C8C73953759ECEB1A |
19B6A3520FCDDCD79C3675CAAC0D67F4F5F5F61415CAF963B782C3F5567BAC8E |
9A8F37E29547DDB93E67A007AB25D5C4716EB4F8B072ADD9D4F6F55363FAC22B |
E0A4E8289C8FB93254CDC159B9902988A0AB1DA667AB79BAB7111A59B0356E64 |
393D56CD1CEDFCA4353AEB23CDD56B87972C5EF1CCD32F3EFDF4E21797AC58BB |
7660DDF088CFDE29808971EAB94AC6846B867F9615C63300F827DE479C830936 |
2EEF0596B6E7A5B136C74C9E9CF7779BB1899838D5D8D6FECC90D052E320E659 |
39361F6649228C8B43A81A92A46088A4FB82F0D56A3C42F00767FAA28B2E3AF9 |
E493B7DE7A6B0819CC84BCE28A2B4C25533E84C337417D2AB17A393DA5BF22D3 |
51A53ED2D8FE62997040913EBE956F490D648E21B9B428087A44A729399BFFF6 |
F632B285C917941266BA3E9FF14B804944645BB81B1F9DF2840C8449282F91B0 |
6073A21A398321C6B7F893A489375698B4CAE83EC4D8BEE3CDA77058EAA02058 |
7E180D3321BB4F54C0844E56708421CE24CB92361016950224174A138B3F2742 |
3A1DDB12639DCC1D7B52E4BEDDCE4E1C4FCD5065DDDA529A0975DE79E70930C1 |
9FD4DA564D6C881233E73AC25E5805873340A812AC16C2C61B403CB892C47E9F |
73F4B00C98BDB4E825AAE5165E5A34CBBAB5EFBFC4A652BC172A0FBB0E23870F |
8B09B121615F9E75D659279C70825D1FA20931E5614984B6F8734988E99F492C |
C251F90D2788C7F1B6DA76DB6D679E37EA50D7E780D830B6D8620BFBAB00DB8A |
B5B076FEBE4A71966AC45908E9579FBAF6C653BB02666E4361F0C9226C463A4F |
FBABF217826B71B230BE85534962CF5948F1C46693737101E5B0175B131CE9AC |
8DA6AD5AD9BF6AD5EAFA7071547ABA66CE9A367DFAD4E97D53EC195BE7B60038 |
17AB36680A580F83B9D168A3A5F40F5CCD6A11E79C88F72AD71CD5F56D94FCA2 |
D6730AEA9CD32A6F6AD424B699D6F2F0B51DC2DC35E934D5DBC1CF6AB1FFAACD |
7C4F0E65393E2CA7B2CC3B0C3693A1C1E6D048D6DFBF76F10BCB9F7EFAC5179E |
5FBAB2DFCE5B23CD13CA150C79A97F95127A39C53AF9DCB9370C27F0E44261AE |
9E74D249A6841085DB6EBB2D3CC3ED2F14B67A4DABE1E8273FF949B3D9115EA4 |
7E412B688492EF2196F1C87AC051A674875A43853D7843C13E6B275C22F11FE1 |
B988024939790FA3A4C9A8482EB10770CE1545F09EE878F380B650EC288B4520 |
218686F8A744C398D7918CE3601C72C82137DF7CB31CE8F650AAB20C7A1649B7 |
124439713D25ED2E365AC8A42482FDF5A58351C07668ED27AD15A9E196589109 |
2529C074219DBD044707ABA61CA48FD7405A115E84F2CC160122CE1C4A145646 |
773B98603FCF9B376FD1A245DE1BBBFCF2CB6D7FFA4CA15C0D7263B462353D67 |
BFB17F02F629CDBCDECBA0F7ED9FF17AD35881EA054E68239B63F062C56A44AA |
5DE85330AF21CAB0CF2405FD243F7D636FFF5E7B924A6EC1FABCDAE03D068AAC |
1CD535D1794257D33AAA6D09BFE4D836636B13516DAB02076B0C57878D3167CE |
1C9303421A0BCDEEF34422A3B0636887FDA0830EBAE4924B04C5D7040AD429EA |
BA3DF6D8E3FEFBEF27F15CD255A57D52F2B55A089EB1C2D49EFF5CBF8179238B |
A5E78AE735231FB5864AE0C75FB3E4E34946895583CB8AC63244C23B21A8DB15 |
B06C716423240A765AED3D75D56A00A39A31B3696C29A92BA1011DD36886F511 |
471C619B1F190BCD5992C402C42C5676F20C5336C84F75CE6C117255D7D3DDB9 |
D19C5973E6CCEEAA121C8E51BB4A206F570FEBDD05B9FC3A18BE1800A3B5D2AC |
C669A34E3496BB54474DA55E28E0C2562962F4C5A8F258B379B649913AED303F |
B8DA5164800BFCB69DFCE146D6B03F575BC9F03034D230056CEAB67FD5BA1716 |
2F7BE6E9C58B97AC5CB366201F5D44F612DC20E9A2B8813F6052759EB8271B5D |
C0DAFEE250D9C29032DC6BAFBDCC157EE8A187C6FB3C9EB7AAEEE40483DC533C |
C40E3695219E5148A5B7692CD5259149864C7E24D4CD12BB94D92071887086A2 |
92F59A6BAEF9E8473F9A146D6E09EB89F80D55845C1026E5F6DB6FDF679F7D70 |
B2EDF32605D4C45BF527C4A308B373977F2AE8F9A7E04BA5905D12290EC64305 |
576343620A31CD23A7BAB75476ACCF33155E8E30512A39450A4BA913ABE4BB54 |
F4D99352665692505CCA54EF1BDEF0863BEEB8C3775F40D0930B4449084B89BC |
60A14BF69FE43B732E6B69CCE7D2544037E81B1B372395A99C8FF49F91CB7B78 |
11EDE4DA0D6E50142883D9B367D380D2EE62926BCC96BDFA27DAD18761851096 |
3CD5CB979B7BB89CAC4C0C14BBB5AD14D834256866CD9A656B71CB2DB7E88B26 |
1C412FB23ACAF0019C561F05E562138751D2C06079C449B56F4184D78C1C7038 |
B2C427C51DC1727866784D7225F6540EAE68478AD6BEF2BAD7BDEE9E7BEE41A9 |
788C18C15E1C7736B08C9E1D76D8E1AF7FFD2B4CAEB4156124DA3F34C222EE4A |
092C53540AD86AAD4B723B14CA9BCFB094D2A684F4F105013092B8B183F9F8E3 |
8FAB696612A12D9A0A6643B1995231A48694BA6E51C121163D9566284C7FEC30 |
9CF276058CF583E09226E6F873E818DB0D37DC70D86187292B0F45BC42329B6E |
BAE9E2C58B6D65297C62D55A623C38623C117CD8F95FBEA2350595C2CFADA466 |
F8CFD868CE8633A74E21C552B85285D194E6F7583BD46AFD81D2E58105C5E252 |
F8ECADB04CB3C6462DA6B955F25B7CA6BCA2BC1A9522C41D8A3685C50475542B |
2D9ED2C281EEC813C0E6C6A660AAEDE27673BB728E7FEEEE4EAB1D8DBAD9E9F5 |
D5FD038383C3CB96AF7AE1F9979E79EEC5E5CB560F8FD8EDD2A25570951A32F6 |
377D6CBC3FE7C58A428882C37887693C5DA2FC281DBB68E536DE8745324CBC88 |
D69BB467A16FB92426E1A6F6A1B263ECA6A1C8D5B11DD9B21E31CF4BAC05DAF1 |
02F7128C22845571FD2742C4709672453EBC09C43189C9F2EDB7DFDE3E635F41 |
D934221FF204652D74300C2E1C24F757318930BA52A2FDC5080941CBE8967353 |
12DCA1CDADD15D3C6BA6E05DEC76203C21D6F88718132EE5983996B4DC10D1BF |
67CC87188F7C33808CB455225F51542938AA8D3436898381CF979F963C0FC947 |
B302899AA8F19C16DD07A24BBCFFA54531DBCBF6CC39E79C73FCF1C7B32592A2 |
1BB4F61ED68312AB36B6C30F3FFC073FF881FDC6F600A17B5FF5EE234C89232A |
B12722300B6D453ABA69EE048B1E622483DCB38DD6C6A01DCBB9106F179C0F02 |
0A48E8FBAA590DD2D685F0A3C88A4561C8EC410B6C5FA430F4D39FFEB4B93E5C |
C48E09FCCC7605AC1049607FB87A8A976D30B69C52122274931AE60376233A70 |
63AE259116D4C7ABF8A70DA05EB46E0C6D310366AC28D75C1F5C1583778878AE |
7F5D01CB76292574BC018D63C03F217DE4EB6A8A90142546495B313719312F33 |
C3683789E48BC2D1BE0ABFEADA290262185301EBB2B65214E852B2419B38C41D |
CCE1B2C2BFFEF5AF9BC742DA8EFC45D3F5CCB6CD6C3FE9E79883B0FC79B37BD8 |
98B868B5A084B4B5367D37343490E4230E7D1B4CDA798757DAC77A7BF1A50670 |
C54C07AF195CCBD410C02453E811D849EC5F0D6E226DA0ECA3C84B549F5746D5 |
B6E460AD337AC005F9591E378B0AB8C04E174CD1452E396985F8F279AC2439F2 |
B9679229A966231D693457AEC82B3B16BFB0F4E9675F78E9A5156BD7350A17BF |
838037C712808F9D55ADAEDFA372349934F216F24BC6130728540C2E32883A00 |
E3090E95515E7CF1C5A79F7E3ADB51BAAD52F457A0716F88C1E724F2C3F97A47 |
B61DEA1F11A690A977717CC9078A0AE9AC7D56892F94967DDD97A8621D2B308E |
2D4F6B6466C9761B42DFA6D7BE4E295E1AD9EAC713A0B87444FCBC7FD08C748F |
DE079A4010D31B95825199DEAADFD0A4796599B8A60252C68A79AAFE4FB2C0E6 |
CD8EA239EBF615A421BC16CA594801EB46AC084DA2A82E0D5157215E951A801E |
52B81805AB51B77C1DF48A7DDDDE131F2BD910285A5B29F3967EF5AB5FC90F56 |
4F272F7A92880E1D6F4AA5E94B0960D3AC3654D31C6CD4DD77DFFD9DEF7CE769 |
A79DA6CF034F25F0E683C942D8AACEB214A715E2867D28FBBE64777A450EE70C |
E5B6C2ACF14FE91ED153C3E0E12BFE851FC6614291D8F877DB6D379BB15FFEF2 |
9778F3496450F26C4ABA08D35B8D4D4BA189B6DFC035C6A499F5469536003A02 |
45A85B5B5CD1A7D8C889828A4E4B9034D24399C3937B118A7366EA012DCE0E47 |
B39263D6F3A2EDC2E8F801533A73E64C40DDFF7A089AC2364143B054442A22FB |
4F8D37F4023FE139CF157C0E31F36256A0193725BDEB7F7ADB884E4DB6F19A8E |
0D030740FC9A6386A08909813F5700929A789521B19708DA4B1FE3D3D68BFE72 |
90F1919F1A458AE78FCD9BDEF4261BCACF7EF6B3DC7E8F28B0B4184AB592E5B9 |
D58E74AB2DB7B085B43D610AAFA01F1AE4F106EA2D0F9859C3626AC64ECE9AC1 |
96F66D79C0CC5A716C1219E9A3F2407ADFAC56A34C340F98EE4628E07CC757F3 |
34303C5949DE25B1D1CC9AD566C8AB957265D0D55DAD7434333BB1D9B2652B4C |
DE3DF7C24B4B162F5DD53F501FC98D0CFBEB487D404A8BD494A21C7E55F4425E |
2711E7293293F1882944A2145C35CB04E54CDCCEA61A1E5D903536E166475F78 |
E185667F094542A25A80DBAAEB0F2ACF468246FB1E90243888928D6CC7CCA467 |
E6DA771381C1E921B6862078DFFBDE77D34D37D92F51D8E296933D8B98A62302 |
A24740DC5068623B75635694FA7968EF430C122771D54D217A8413E7E02BAE49 |
9FCA36E44E496EA6B1993C1B581160D5E0C3188021D2748D90A55DCC903FE8A0 |
83AEBBEE3A12DE996BFED8883D1E162C5870E9A5970697204448E113C309ACD4 |
2F393FB4481669F111E8CA39C126FBFAD7BFFE37BFF90D7FCADA40092889ADB7 |
DEFAA1871E0AA30B4C7D4CAF5486D1FE429A10AEB425463C89AA97E596AB27A7 |
4DE9587B4398B1E208C695DCC58E679BA92E7CA79D76320175C515576832B53A |
15D70323B405DE995216CEA41CF5EE0850225E2FBEF8225BD7A766758818A166 |
9B63C8D8C8B5833243DCC91C07D2486D0CE927DA1CD93521D8225CC1686D036C |
B7DD767FF8C31F42E1915343BCDF7EFBCD9D3BF78C33CEE0A4D395124FDDB305 |
50F55E4A8864A35B83C8A1D75CD1892871EC3A82B20B69C82D944FF19BC47B99 |
A1CD8BF0CA98608098CF4B0EB70C7A1C621B27E9673915220FF1753E8838B34A |
6D116D1BFB4C44189DEB51CC2F14C6AECDEA534F3D958C7EF1E1F172C09ED2EE |
CB5FFEF2D1471F6D9FFCEC673F6B323914C48226F79003B80A3CA0727364913C |
8F34CA58DB637DC4C046690E8D3D1B458D210F2CA78D7ABE92B99A29D0DA369B |
5B6CBA911D78DBC73D3D5D2414F18347C2B01E1B21CBF6F5659DE8E0A8803BB3 |
4CAC87EB03D11E7AE5A7B51E01E65E01E752B2C2694C5BF02BBB700E93AEAF5B |
CBA9CED21A61EA8EAC691B282C59FC92EDBC1797DA8E5ABD6EA05168FFB4F85F |
9D58AE4D0A662949F5129ACE6F320401C251B565E3115364050B238123881269 |
CB3C5E1912D1153625266A25B6A369144D3C6C78279E78A289F8679F7D96548D |
B00918988D48118EF84B628BD35D77DDF51DEF78876D2085A09564E2B9AEBFFE |
FA430E3944D1721B891D6CDB31366C5C2EEA3DEC2B14987280F186ED52F69828 |
3636BD0259C2972AC129053F81E162E3BFF1C61B4DD37BEE7E76852A8C9513CD |
C607C13118EEA5A0AE3793B3C8AECC4695321064837BD1854D5CC7B05192D4A1 |
CA0BEE21265C78192918C43A925A16036975E912CC0B5F3489AB4D79820A8AE4 |
C7F331B5A813E07CBC2299107D4AAEA98CA6773294091E6F3EC91A9829634302 |
9A00C20E3B00B3434B66CA83BDF1DEF7BEF7AB5FFD2ADB86487BE66A0A5453D4 |
88F4E0AAFD438CB0CF9BB1113DABA30D2CD8A682D84951AF65CF82FEB00DFFB6 |
B7BDEDC73FFE31BF11F446991A09509D08956F72658198686E06E52F90089288 |
724CD5FD42DCA2F6D37E79EEB9E77EEE739FB34D22F438599EEDB7DF1E183083 |
6F38E6760EE6FEFBEF7FE79D77DA49B49901CEEDAB01E12467A8DA3C024C904B |
A2C5908D410C27427A7348F9BCEFC661573651BFFBEEBB9B57668F60AA614CA8 |
E3C406B40FB9639D60E072B23C8A5310EE12565CAD12650DB3DC267328A8F505 |
7EE9E8EA50F182D9D7C9415422376488C112D5708E1782C63E00BDA86B725FFB |
25991772078418D5E92B4498AAEF434CCD216D635A5C13DA7C76951D77DCF181 |
071EC8BBD9B70E0365739833D994DE8E4D3699634768D2A49E22DB6A139A0BD3 |
E146DD5B2208E822D2B2BE3C067143DC381B599F45907A4601670E26AED5CDAA |
EBA743267091FA6DB11F74A83EAA788D0CE61AA85E684FBB52D624B41596AE19 |
58B9A2DFFCE0356BD6D93F0BFFBED54A8CA8FDBC79F3EC2E8B162D02C0365E08 |
4E3113A0469E95C287B6B2080F5139938FA1E9E22C8CC82ED85EF65395062AC9 |
50C3106DA04AEC1F0C768CDA1EDB0AB63B6172082FE7457C8C18867E29690E1A |
D9F693D9E6365433E2EC76175D7491B9E94AE23269A8840F7DE843B7DC720BF3 |
73EAA9A79E73CE3912CAC101F779091C94C5CA5108B44F38E1043339613B525E |
5CCD71BD184582F891FB6C3D688B50A4C34BE00E7F48B8855999F3E7CF7FF0C1 |
07891D0930AC567DC131F860F0CABD333D01D275A38D365A53BCEC33662C2F59 |
B28467876928755CBB4C7816D92EB7DD765B9A766056DB4F1B83A931739290F8 |
BE55009B47B45921761445AEA94FAD0CAC50442CD3C864E9F71EA4135C24292A |
CD6C2F31DB4DD7101E198A4D0928C1BE683366CEA52F4AE69A92B0369FB62115 |
D234C9FEFCF3CFA3A514046639E6CC99630F28BD6ED36B9FF73800BBE6DBDFFE |
F69FFEF4A776404C2B784894E4B52F9065960061D97DCD1A48234F351B490693 |
3621DA3138306DE2CA407928CFBD901480D877BEF39D37DC700387D71EDF96CC |
8C21FB69EE7556546129C1E9B303590431507744E037C4769CE4AD8E3CF248B3 |
B649C448B233786609DD9F1625B012F4D482936EA728DFFC7EEC7E6C2FCD8FEC |
DAF65EC56C6FA5A21105B20FD4C7C94B3CC189EC2E471C71C497BEF4250A6F9A |
B16F849F044EAE10DDB62554A82675EB956B18DD2F4744954A8A4F6C10E8115E |
F9CA57DA010F31D18050F58524C42993B19A7950305692C38ADE87D1342049EC |
C5043E8EF3DED2B950A752D48F6D65DBE5EF7FFF7B7FBF825DA314706735CC9E |
BDE1461B6D3879726F778FC9C7DC16C893C4D544B123657F9BEEA5E01E0F3332 |
B0BE0CCECF9789A6305647846625F3093F450E3BD22005CC198BA9BB1113FB03 |
037966AB5964F1ECBF79C9C7DA3C04B46AD5EA75E6FFD6338FFF60DF28495E9F |
B0D1F4EB5FFF7A3BF9CF3CF30CFFA4AB0167800320D759C1228C061C44A1E183 |
ABE255724282401D9EA99AC81C3ABF94AD6469F1A5C0BFBCF18D6FFCF5AF7FED |
29E0FF95970804948DE35E36B1A79F7EFAF9E79F4FEC1AF985644735E2B20BEF |
1A62050EC539369F6488F19E15EF42652229EC4F1E40A4FA5AAC10F9AC4CDDB7 |
BFFDED7BEFBDF7073FF881C9F45004BA61DD93FDEBE52F069074B6CC1AAC19F4 |
3783647791B43395F9C4134F48E6CAAEB26F61AE21B94CAFECB1C71E5B6EB9E5 |
C9279F6CC288A5C48A1291B289A1534E39E5539FFA9410DDD819BC9AAE3E3814 |
10DC57BFFAD5E6EED880F918C70AE9A9702E93C9844B197FFEF39F3FFEF8E3D9 |
0936ABB42EA88CEE23A9D67EEABE2EFA46A91CBBEC76DB6D67A3BDEDB6DB5826 |
05E224105920493D7B11C865A352F7A5EA2C148FC83A900F59AC5A66CF40D068 |
AF9D77DEF9D65B6F2D3587C7EDD006E35EE2B4625A88EE6A0B09356D1739E9A4 |
93CE3AEB2C948ADD82D39AC40265EDD51033359AD23476B82A118F53CE80FA91 |
54B51933AB14778DAF6FBAE9A6A681162E5C087D3FB2BE24F7C861A9D45E06A8 |
AC43822E9E423289642C21B6FB3DEAA8A32EBFFC724E0728934A41399E451E2E |
4662932013503C3C1000F0C8FEE0D06FD166E3E69B6F7EF7BBDFCD39B5619C71 |
C619B6DB43C47F21737030A498054584018DEDEDF93815CD5646DF97448A7220 |
8C4EEA4BE871D265E1714D2595C7936FC4E4F041CD3DB8FAEAAB91D8C1557905 |
57C85E0A56EB9CA6E3D4C7370A0A6EA4AE4D2CA02D51737813BF156308D1604C |
634F6962A4B977D8CA09D5A5804D50D452137693A74DDBC014F094BE49058A24 |
0F103592A14CF4D02D8ACA4253868AF2C1D216F9861B182E59162DAFB1A3E277 |
E7FA49777D616574E47E4CDA0A5EA180D90A69411B5D54360FE44B989941DA5C |
B76EB048950D16145123C3C323E61FDB308BA1E6A9E5D455792B2C3FDE5A527C |
493769337676DA692773F56C2B9862FED39FFE8449C8CE264B448B1E8FA1E5D8 |
64B1CA9BD8B2373389D18979C77603C594DE3AD15C111E81D03514290D24E0CB |
F580316E5A34E0A15563D68C9D706CABD8D93BF7DC736D269165A67B7EF18B5F |
4053D0702CF3363F3496C09CA7D088F914732F8C13F661B3157EF4A31F85C866 |
25372E44B2B0523F3E4C199B5EDBB736C3485854BB32581AB0771AECD6F6E61D |
EF78C7CF7FFE7399EDDEF86846DE188F2A52098AAD97ADB8C917490AC54BED2E |
ED9C97DE1345871109F4BE4E2997863CCACB1022B65C7F2585213DC11580F6A8 |
DD0D55DA7CC0A4ADFDC93499B4755A3039ECB7DF7EFFEB7FFD2FF15E790F4FA0 |
B0CCA5CC010A24B1CB90CD8967F1554105AD8DD86F00D7ED4F4A964BCE785813 |
D2D0FE5A62DC6565ED4FDB6EBBAD3903211AA932E0DA4B5785D90158D474443A |
90BB49916B3E3592301A2EAE308FDE8418ED00830334FDD0430F25BA83B803CF |
1C1C98119B46310F82643ED5E285BBFDC9BCE73BEEB803EBC1F612615B2DF715 |
575CF1E94F7FBA517479B26D4C5C04B3866D76C209279C73CE394A0A08FE6357 |
B60D6F1A9479C67157C01C3C9A3DBEA9673368ECCAF65C575D751545C6D89D8A |
07900B5048438DC2E0B5368D6BE381D116E22A490312E104E7ECA7EDC06F7EF3 |
9B25CC816A567DD73FE5D715E49087806F60B297B6CD1EB3ADCFB7BFA8E682EF |
93C7B159C29414E614435CA6FC78118B3056972D8D815497FDDEB370239FB190 |
5A89B01093C3F05653FD86A08BB764042D07B4803BE540CA9EDE2E34714F6F0E |
13AF37D62AF8ECFDB3463D554853D22D5775F5310AE7C3E86CB11ECCC6611E36 |
8179F964AD4F666988054E14B411880E9D64629AA67D6D8B0E0C0C9A7458B9A2 |
7FC5329B0B53B4A170D2B322408DC01DF10752EF275060E45D749885F8C53436 |
214595910DE9B2CB2E3BF2C823CDB3B1FD77CC31C7D83F5FF7BAD7DD7DF7DDF2 |
7AD5B784CD4DD52F262A3C9198C0127CA5148517DFD89B4472A4AD5F96020EB1 |
DE2EC4E8289E87CD86C9057B04F0CF2FBCF082ED1CBA912386C450C173890857 |
721C8383F712FD2656AEBCF24ABBACD0BF64BED59655051869C158C40CD8FB4D |
36D9C4E644C01351D5484C9038F7611FE4A01949F7DF7F3F3A003F8CCB021F43 |
3C29F927248BE40EF0510C7605C774CCCCA63EEEB8E3F0816C2798838E3B286B |
4089F3768893ADA0274542CB82CE158567BD681AD88E8551359A5268E68DD990 |
6C4A7DBCC1FEF41FFFF11FBFFAD5AF828BCFDB17E92A9D396EA934F241DA1253 |
2FE48B83A551ECA7C9D3EF7FFFFB49AC7B31B9BCF7DE7B5F7FFDF504126D116D |
0076051892597413D6B6B22529691B800A511BE18F7FFC63F31A4F3BED347B64 |
1B9BCD989F2566B2BD7A0D410CB80F472244FCA3A49ED9CA071C70C099679EE9 |
BDDE303AC2CC6F94430563983A3650FBEB6B5FFBDADFFFFEF79EDF74EEDCB9FB |
EFBFFF97BFFC65EA06B93E4B89D694B8F0E21B396613A55669A96B3E08158FCE |
7E524044E18984530943C4A6024EABAC00E50AE649C0EC55AF7AD59FFFFC67A6 |
4B649632FE880760C4D8EF15F8B1AF730BD5253303A645C0039BF1FDDDEF7E17 |
0E1966C026D9E6EAFDEF7FBF7DF7D24B2F35A56E0FAE3E19985FB63AF61B5153 |
790C87C78D7296858AF00914FFE2D9172C58F0B9CF7D4EA6D804C43E59A45E67 |
27D88473AE11DAE03DC528E957AA5DDE86B142E279C96B9A125156B4C6961ECB |
49FBAA19BBA127AA4030414F635A10F0E623C67BF0DF98E24E8A946A4EC56C1A |
A877C60C9BFF69DD3D5D211905C2928E1C1A6C30D1501363B3E708942CF85C66 |
E28823145E807932E2B1734CB3DDBCD1D29CEB15701649FF6D8DC1ECE5D9FEAE |
4AD6647FDB56AE2F5BBAE2B9E75EC82B43D6C6CAA222375CC0AFEC0E9582B472 |
8C091D6F21D1BEB6C36CBA007F6254E2C272D8CE3AEBAC2F7CE10BEC3F7150D8 |
207DD3CD10ABD014BBE027D741A5B1B1C06DB607EDE510DB093CEFBCF34CC1CB |
B19E00DCF4725F764A71C7652CFB3FF14452C0215A75DB6FBFFDE38F3FCE493E |
FEF8E3CF3EFB6C1B391D1571769302020A853DC1F910ED478482FD129FD8A60E |
43A411FB80FA64957D52ADD7912FA170A454704CD896B15562A340DC23FC33D4 |
3F72C40343A478503690E010D9A333BC5D81089ECDC375D75D77E0810702E593 |
CB4E20441D0629A32F75B70C2EE46337DA7CF3CD09ADEB198543E16489CF2F73 |
B567F69EC0ACD7EECC332605740A3E0D1F22E5E17BDEF39EFBEEBB0F73417FB2 |
DFDB98F19869EC487C952DAAF4215D92582CDC4D750E26CD2CF40D336FA7E3E0 |
830FBEE1861B2064B52BDB5651F35AB143D8B06913A4DD8E97E911005227186D |
E60F816D96F21065269BD3831F2B8E7C3F38678032399B40206FC418D07C843A |
D9878A6D602233A58ADF725FDC65559EC8E0D3CC4BD69169F20B9A14C05A946E |
163B4495309BE8574C2E0F192154E03B04F3524181AC01E5CBD5B75116864FBE |
DA95ED03D2DFFC12698632A6DB1561E71271AC599C2046EDF304AE45DD9339E4 |
23BA435E8D6D21FBBCED37A60E9A5BF8DAF4EC04EAA4D8144701E33DA61C235A |
2611CD2FD972A10D9AE31DEB314F6BFBCB06A06F116FA39681E9B215B435F54D |
A31345E76C066DFA6836596CD091B8C5991ADBA631101DCD6E53F6D3674CDD70 |
C39939915B18D186A6ED792CA0AC01F88468142FA4406A8C08A895C52AC96249 |
1C202B649534A472FFABA150E48DA1415330EB9999F578705620BEBBBA7B8B8B |
A405EFD51A33604D012F5FDE6FD6706140648DBA14709A77224E47316928333C |
9E07D9FE7BEA4600D401D7B4C744736013007D14BF15671500C2C73FFEF16F7D |
EB5B2620D88EE61FFFEE77BF83360525817B4DA54A2944CF4F733B162D5AC459 |
B5BD6B23C79B6C17F413BFD2364A0AC926F9DFF8EB3624240B7FF5657CE4026C |
AB0143204F66A2D63E4F731EFBBA4A298223DFB6AFA850C4E30643115778EEB9 |
E7A06F84C988425E8FAAC0E927D90C1EF8C9279F24362EE1624B80A2F5D87278 |
19155C51F445A14E0FE622A7AB5610DC1DE80077B7B5C040C100B2E932B168DF |
FAC8473E72DB6DB7D9537844777B6EC926D65CC0DB6FBF9D8067A5E8EA233C48 |
88092AAE8040F4A056AD827D0C29E323C0AC057D2A7D01A832EE6AB1A075DF6E |
BBEDA85952CB4BFE8AFD04569902127B4C5F6B415D32AAC5A68E421A6176BC3A |
11579ABDB1A3CAEF4D1CB1285CCD3C4B9BC0E078B0B30894F5194D6D63958779 |
64195A592B1B1CAC4673DBEA945E482E7B04F3C2CF3FFF7C22C3EA0B821EB5AB |
D9956D905C0AC906BE173FE4139FF8C4C5175FEC938B5E70FBD8A6083B89D84B |
F1F308341846DFDBF1B13B0ACC0F1097F467335259B1B254481230F755EFF2CC |
A462D107045D406FD99CDB46B5EFAAA74B7054EAB6A58F3DF6D86F7EF39B9889 |
A65CCD0155B911F3633B814889D8BB84CC80798649F391D12C968AE0C4B34C9C |
774F0022E3D27E9A89BFEBAEBB7EFBDBDF0E45055788141FE3C96DAD2F163FA5 |
74DC88A9B3676FC4AEE4E3B57A0B0EB3565A4DFC5A41F9EC594C70D9E6D9638F |
3D4CA4D386D9FE4446DF76789238CA6FEDE022E1311C194352ED8FA25F6FB163 |
0A9A1AFBEF94BE2E3BBAD3A74FEDEAEC40A8519BC436A21481B92640810B5548 |
930121B63257625BAD76685B56121A00B71E0F1C5611FA6B983D5098C6EB1953 |
316D7815E5C19D454CACB966CDBAA52F2D37D1D0DFBFDA5CFDCEEE5AA17DF37B |
E6B1ED8C4318EC4A3EBEAFF18C57A74BCC870C963DAC9D0ABABEDB64FA40134D |
94C9531256223D060DA43029443C7C2D075862DB22361E53CF175C7041281AC4 |
7200DA5F364E629B66E49A0233CF7BC18205614240E0C4AFF6E86856346CB0F3 |
831F809925971489E367CCC6BC70E142B8603EFCE10F5F7BEDB57803975C72C9 |
273FF949D35276AE4A78199B96BDF6DAEBA69B6E422F9AD7629FBCF1C61B012B |
726C4C0A985D92BAD655282AA9C310191B6CEB9B0500705775C992FB6AAF64BF |
D97DF7DD81D4122AC48D5025A576828A64281C40B553E802E008D16397050309 |
0F1F2639C60AC518DC42C237713542FC64293D20001B8E9023FB8461F045F925 |
B64084793D7E5E44B30874102EC430EDFAC2ADC8CD521B28C5DEF138510F892B |
7964263DB28C44A9C904B283CADFF314B639EDB9487899B87CE73BDF79F3CD37 |
B3E1A926B08B1C70C001BFF8C52FD0EBCABF6213085491C50E8FA20AF1B064C1 |
9B797C362A8F961614AA3466F767470637A96EAA7DCE38E38CB3CF3E1B2FCD06 |
6C7BD516CE0620F7C5FBC1EA44E2FF0A1E1EA1DFEEBFFA176B617365EAC4E483 |
0D4F04D4BEE0DB3E435E962A8C8AEBE384A202BB247B42E101A4073A554574CA |
7F338DBE97868AF5D96C5E5ED9DEDE79E79D7FF8C31F86982FE776360F76F1AB |
AEBAEAB0C30EA3DC80FBDA81B5FB8AC68BCCB440E6A252514510032662E15D52 |
54956AF994E8C5ED9695A38A9EF1C41A9601D16FB07B1C649BC0CF7EF6B3266C |
43B46BBD03E63137A533EB15B0A49F2DD07BDEF39E9FFDEC673821ECCF6F7CE3 |
1B871E7A688831F0DC42AD14FD196C6FB1CC36B991D2368D11F95689240AD8EE |
98B34D55024646A56A677E839933A7CF9EB521D61FC80EFC831C80D351F56548 |
42639A3FCC03341DAB597148BA3557D59CD66A0C1C56336B16A640254D6C6D06 |
1B8DF5C90380D0B9D3B0D636506E9EAF58B16AD9D2156BD742789B7BBC76B166 |
83F9CADB05C77B8F88C526B80623E32DA4DDE588238EB0DD26878C8C0B014C90 |
470A03A8E64F85BC92987C91DACD1049307031C59080103187D834EB984E79B4 |
5D5ACD0DF135A9F093867B597A5791312D19E0520F7915464CB023442DFF6487 |
09926A9208D22E3E23708D6A16259E7C55836615FDA1805E7078252D194A9791 |
331E7D589DDBE5DD8A5389EF528529A52E7B5CC03129E04F7DEA53B7DE7AEBC3 |
0F3F8C38F0781F58176C5AEC0A0832E5CCF6DB6F3F33237088017B338DED564E |
88CD12E4E7E1EB0B9E8A860027E24B62E4FD0797A64D6203738FEA147A96A946 |
EC0AB149741D7D6FEFA91DB2BD07375C88E10AC50314AED76CAB45A61A26DA4D |
C1556933D87D3DD597E706525709FB005EA0FD52BAA79D1D53E10A1BC06B5FFB |
DA7BEFBD175249EAAFD80CF68CE2E64B2371BAE6DC6356B4229A55BB94A79F43 |
436491123589E5187947B83445D9A8B342A99255B68E6CAFE0821F4CA0A94925 |
E3D5D19DEE9649AC02506B3F6C3E7B4FA843AEB90E2CCA15A495D688585D1AFB |
FA218E783A0FC6F6EC8CC125986C36ECBD3DA6E20AF8548A48D9153802285D29 |
1B751C97BC4A62597C1A499BB1E36D058F39E618B389CDD4861F9458A96077D8 |
CD6203D5A3297A3A01AF80A790E397F42F11690949681F0C2B29DAF633AB0FE0 |
73B2D9D836C48138117859F0A0B592FAB2837C70DF73797B1BA408103D67B669 |
1101B63FA59A8B8D379E69BB7CEAD4BE028E38D2E2C0CC1A69522B309205FE30 |
C96251921D8CAA4F78ACDF884D3D6156C943C3EB5157692D6D1D12539B694E52 |
6D9BBFB87E43AD0FA5CE878603764071125AD5C0F9D7B3DAD80B1346FC5C9722 |
B1A5E01E6BEF43E8449289166AF77B85E4494842589FFF662FD65D673A5503DB |
4FF363ECF7B832E79D77DEA73FFDE9127996468B465447EEF5398697E9014BB0 |
0AA2E2F56BC17D3684A565A6E2E73EF739EF3AA8906082DC33AE8F2D8ABD3129 |
4C0702CD21AC5EE0C36D36F4380AAA6BFE15E9120819B39A588B3A8265AEAF40 |
651CD27CE6931C2463C0F6C2995368DD03AA1137541FF208A180ECE12C4A1C90 |
A3A2450487889EED61C21C92D0D4B68B10796A8A056CE4D4534FBDF0C20BD1D3 |
2225104E0D914DC48FB8B4D4B096B5E4706791BA35B4A1EB85CC170745180D5F |
30690B6B29814D650D60C6C614207469B74641EA7154392DD09FCE946F148859 |
2005994482555574806AB19FFBEFBFBF7966F5A2E5705670AF82FD963B185C8F |
3CFBA72A70148154685ADB2689556DBEBE2338DE120F2317D39F1A24A7A31B98 |
A69175CE5B7B3225D3D86C83DA56B4B8DFB73E6C1EA2C92BED28BCB16FB0A16C |
8B6FDBEC5947A4B6050C66545A4AAE40969D304C12A9A96040CB754757230C85 |
1E93F759B31A2AC3B5CA407338E99B942D4FFB66D6562D5F3663EAA4D34E3AF7 |
539F3ABDBBD36ED1FF9DAFDFF6EEC3DE631EDC7062DE50DEF3A7AB6FCA60FFCA |
6DE66DBBE8C927F2204D77EFE0F0406834AB1D791674686804BB4D2BAE6C2619 |
10494E848FE659263E07368B14C2020C1E7CF0C1175D7451E65E25CD2A6B490A |
AB14B262964AAD4291C010B00037E1F864115FDD22C6508905000185BF4384C2 |
722492A22ADFFCE3871F7EA8B0595AE02CDED8C766CC98628B6A523527E8C895 |
44CB33181EA61A38BF71A3C537D042D546E68D544F9E7F6E845CAC8D32A9A6EB |
E1E6C560D737F9893C0669AD6ABB275094C9C599EEC1A14069A93D4D5228F262 |
B2EC72632BE0245DDFB52938262015A50181D1D125BFE281AC3C0E1B82924476 |
B92AADE556EA08F9AF03D38710982367D281F085ADA26D2F5F8A9AB4B58D3BFD |
F4D3617B5795A7E2752F4B01A7B18152EAF8296D596D67D33F0ED483B72D349E |
2C12E095EC15FF12ED833D1181D6E0E20DB66BCF3DF7DC638F3D964D6C827BC9 |
92254C29830186CDFC60A6C852F4BE91C0A5BEB6B5747292081A07664C56DB7E |
5E79E595471D7594B748E40D207C1158E2F14022C8FF538ECD56FFB0C30EBBFA |
EAABC9D19226E7A0A94541FB6BF6ECD9A6AB98A5D34E3BEDB2CB2EB3BBA38FAB |
B1C19C1D431BA7BD27F24F34D20757B838A6B7502AEC07796FFFA202AEB83E6E |
C41889A8DBEF15A8B8E28A2B4E3EF964DB9F0AB92BE4036A01E340D95C4DAC37 |
C14759E14572179791C5B53BA2564BA0E510A379CC18918CE052DA89AB7594ED |
953ABEF4E07C7784A62F49C24B43D964AEC423712F5D2A718DCC4384777975EE |
77A97ABC6352436082A42D7DC533BEE94104E5B307B7614BFB1290DB70C30D6D |
ADC7CC837A081E05668C248B746FEAD0C79E978BAC58172073269C22EFBC7DF8 |
E4AEFACAB5265B67CCDEE8D9975E08B5EAB49E298379295D6856928146164C2D |
6F34B3B172D9EB8F38B4D15159D66C6C336B931F7CE9ABD9532F7666CD49DD3D |
CB06D685AE70DEE9679FF599B34D09B0C6B9095B4BF37C653DA38C028A31EC0C |
1D43827F9EBF2C8CEE9BA2ECB5EC1E0278A8120C6B1F8EF5389B64342CD7BF84 |
FE6BB8A66A20426C8AEC9C3EF5D453D274F5D8D042B5B8B94E538CC86B0206D1 |
700DAE15D32F7C59CECFFA6D9A2F582DAFCDB01B4F9ADC03272DACCE0AD19866 |
CF838023431C45AC6099BDBAD7F0D048B10B4367AD9AA449BDD16CC472C9E1E1 |
C1E22B26DFABDAFD69566D64AD4A27D0F9E4F04D09FAE3AAA29AAC59195BF154 |
9AD9E8466649ECE2D78CEC2D8A08D5638FE5F6E5F1D8109FB2F21FE6E5D50059 |
4C657D64C9D23A4D7160D15F346307723D1D8C6892890AE4BE5C052C0F8C1963 |
609C529B13DBB5E4C0986A7FC215D36359C7EB6E645F79F39BDF7CF7DD7763DF |
1C71C41137DE7823F623C13D799C401398670819EC2B471F7D341D4C914120DA |
280A22B62630A78E873C8C3143F77653CA2A300B50E7E2C81410CCDE7098E9A9 |
2CF908F30071C5DD76DBCD7C682A9B290144A04B7742F183BD3B9E8192C492EE |
D04679E145A7EFA5A1D8A08C3F05156D7E8E3BEEB86F7DEB5BA6B001BB6A7ABD |
B13F41A88DAB292842B1AF3EC07110B98418DC184CA9E781CDC6BBDEF5AE9B6F |
BE99002000570FA8E18EDA48240BD1BB72E644532C926D2F5B0F39E4906F7CE3 |
1B1852AC9442BEFE79B99A690E35000E4508E4C4134F34E36F4C05AC4196A608 |
F559CA5CF8B503012376B0AA6B35E6593FF9A72C271C213C7BC922A185E58293 |
BBC57C014A02B60E7032EBA256692236B1E7B529B29D80BF086AAC11FBAEAAE2 |
967A219B5EFB241B924270F0165A5F463EADBBA7122A238D64B53D6B73A86F93 |
D9FFBEF5768FDCF5BB473AFBCD337EC3BEEF1EEE489F5AF38FE9F3371AEE9CB2 |
626DBAF9B49E8EAE4E9B9BE9DD3D3BCDDDF2AC033E1806C2F4109667E641D69A |
F958AA23F566489A23F522719EB5CACF6CF03058C9754405AAADA7AFB092F12D |
66053B8FA2BA33E39E0201CF8ADA1C4DC298B67160F14FF238AA7760CEC173A9 |
320D6FCD5755F940484B012BAB47A84ADE262B27D156F2C44B098CA4480EDB1D |
BBBAF25633BDBDB90EAED65A840985FCAA14CB5620B30A0AE88E5AA7E876F16F |
6204C6FEDAACA62D4AAC46C1EC4C70D964BEC9F642FBBABE34F5B4D16C39C4F6 |
8436B3F63805D8643D03781A29B927C8E9DA89ABB4B522978EA48B803047A246 |
2ACD830496ED549B3DD364CF3DF71C89522FECBC5E244A29E8D6BC79F3A05C47 |
0D43C8C507ECCC98432C90453ABA2393A0ECA64EB0FD51841374B319F345DAD8 |
C71B43B49AC5F46BE608B05E542372C1F3F6C9096B7FD95037DE786320AF36AB |
6F7DEB5BBFFBDDEF7A4312F345009F1033B8286C30846941BD49B565A9B72042 |
C76E61BE75121BC56353CA23D1CA0AD04476193FD216D73CE0EBAFBFDE5604EA |
0066525D987846F53B0A317D03CA3714BEA61D19D26C9202596C27DC8C24BD63 |
CE8F7281041B6C0B714D5EBEA64519D33476C3F4C7538000A0379ED7C9DFEB9F |
2A60B690DDEBB6DB6E7BFBDBDFCE05495286D1E5F22267F541239AF161004106 |
EE294BE99D558AFBC95DE037AABCE289D42348181950BEE4BCB7DD76DB871E7A |
8819566CC61F523D970A6D094EA8EEB3E288C1834B30B71BD09A6A1F53F1DAB1 |
1929BA3C7B9D32D0D2C4D0E7A9005D5B3414C14C447968234AF431649FCE9C3B |
77EEC2850B0F3BECB0E02AEB3CDC9DB161646311A2809955AFAE7C1CCB16EBAA |
ABAEFAE0073FE8EB00E56BBEEE75AFFBEBEF7E3718D2465A0DB5CE69937A562C |
5BD231250C6561DA47A75586B7187A69C6D4297D49BAB4D659EFE99D1B1AB37B |
36CE66D8CAA5D52D66CD7EE68945DBEFB05D3D6B4C99D677ECCEEF0A45738024 |
87C7A69326F7AE59B7DA26AF6F72EB1989BD7134B0E150C37616480041C94201 |
3A781A24C6A9A79E7ACA29A768D39AE96F92870ED682919614B09F31BFB2EC4F |
2681CC97AC43DF2B2944D23D84B6871AAC3FAA36ACBBEEBAEBCF7FFEB30A1F05 |
82F04AC8D6D2A69B07CE46935FB74E0E034DD2AEEE3C943A6952AB1CA8D11C06 |
265AAF0F179AA3A502C5F38EE787A157086253A749E16E55BC4962FEADFDAB98 |
88AC2888229C9BD64742A3DE323CE12800FFD5D5350DDC4DEEF3A6AD244A81DE |
1AAFACA841DE05FBCE477A33C78D2ED21255799656CBFFD39791A56D6C6A5E10 |
B0E3CD28DB61871DEEBFFF7EFB96487F54041246E7E9894141B39C147D93E03C |
BBF4D24B8F3FFE78883E2AE3775B1AEF5512C144C24DA3B3DBEC789B62838902 |
E397274A63AB1FCF5933E6F5F9AB882908A379026115F58642F5DA67A8BF22D7 |
08CA9F9DBDF7DE7BDF72CB2DF6495309B6CBA1F2A61EE32D6F79CBCF7EF633C0 |
0E6941CE6CB7F329C01272CAC6C3D8582F556580A0A6ADFA473FFAD19FFCE427 |
D017DB3FF7DD77DF7BEEB9C74688CB8B2CA67294007B88F809102B7626E9C167 |
D7DC679F7DBEFFFDEF8F393FE4D74991EA973882A457D881044292827F1876A1 |
50C47EB543580E52749B6FBEF94E3BED74EFBDF79AC93F5E659D4E7A2904DD8C |
5D6888851C73CC31B6C1BCA964BB4EA904DCAC50040F422C2E329BD2561033D4 |
86F7C52F7EF197BFFCE54F7FFA53BB9AAF522DE9365B448A7A49F46EB6D96676 |
3AE0AEC1E7C3F2B035B2C7B719B6C32278A017D36316D485E8E07A72153B41F6 |
5E9C8032D74A31C9923AF7D7F7AEB337F27C5936DA8EEC9E0C47FB89FEE08DAE |
96C6E67DA51CB0DE3763C70B3B08B63F159CB00D6397B519983D7BB62D7A1671 |
A069410D864CB3893DE38C33CE3AEB2CA90DE526D9B740F6BA8BD715575CF1A3 |
1FFDC8AC52322CB6DF4C1768843970FDD6EFADAA64C9B469D94BABA685916A2D |
BCB87998FA5F5BAF98F94858B6D194F4B58D978666F6D67B6ACD55CB9AF3B778 |
5D6DFA70A837B6DBEA15AB57AD9CBBF9C6B59E8EA5FDCB67CD9DFDBA35BDFFF9 |
FABDCD699E3D6BCE92C5797ABEABD78637541F6E6883113EE14951B7C445BC02 |
B6C12B0A281B9D20813DBB6D3CE14081AF0B4234A6026E3F2CB65B80E608BEBE |
C71E7B7CE73BDFF1568BF02249EC505912FEF97B99C6648C88C9E0E5D05F2C14 |
F1CCD7BCE63536CADFFEF6B745F5D17A240BF2C23E33B86E289256A6E6F1DA5C |
7476D50AF7B73A69720FC016536485C39716FB6C089589F195451C53A14EB24A |
D5ECD04449971C5F3E3498A42DCF9D3D5DADD6466C55B2DAE0E030E020320470 |
7BD43ABA25D395AA29C63C51BF5ED03DA4E8F896180F4AFD5EC4645B9A53DFBC |
1A9213B2F4CC64BB87214BBC5A74E736516E42079F869D94148910FA6C9C79E6 |
9966DE42FD81CE93B42590227D2F8EFBF13CD1F15E9011B223893D927A21D268 |
278D1A21CABDA01E64457C7C3EB4D9257AA94F30351BF4ACB6F7C403A92411A4 |
880D40B0C8BCD2AF7CE52BA2B5B237C07C42F4363CEC76B7DD76BBEFBEFB2014 |
F33D53992B1C74254D453E67BFB77B513E64BF34AD69DB9E267158DC8416C4C8 |
8173ECB30F448C485E82C5E5A9FFFDDFFFDDCC5CB6C7E1871F7EDD75D78D5791 |
A2798390D2CE3975B102527927D8071BC9D1A6AEBD202DEA4C2DC91F3DF0C003 |
4D524FB0FAEDFBF3C20B2F3CEFBCF3420CD598D0D973CF3D7FFCE31FE3927AD7 |
8A4996299CB491DC89C59388BA7D80404568536C7CD1F38FDA5F4DCD433A8889 |
ACAEF5204BD128C4B4D91E0451C5EF1D5C8818D301792D495D89A4F9AA870931 |
15E583CCC129D7D28C79235B364A492B4BC389BAC713F0F98DEAB154DE64D478 |
70DA2809E3A42847E09BE9B68889924449348C637BF6934F3EF9820B2E50BB0E |
0D4F096F6F19DBFCDB2C017750AC48A8FEB4D95831B02E24956E930443EB4EFA |
EF636E5A7ED743230F876A7D5AD72603CF4E9F5E9B9B349A0383FDAF7CD52E4F |
3DBB748B9EDECDB79F5F9F540B1D61A319D366556AE9D2551B764D1A1A5EDD5B |
EB7BCF1E0787E1D0D3D5D7D3DDB57479DE1BB7566DF55D0DCEB1B1FD639AB811 |
3B384901DBB3C0E775F1C5179F70C20912DD343F55CFA210E3432233680F4157 |
5DD3F1C668E2585E37DF7CF341071DC4A133E961A7159F9B332BBEA0F51AB704 |
A2263A078196C4901406084FA0E4F62AEC8E54FB18EE0B2CB855CB5717DC56B0 |
74340A5D996F9D0DA6F6DAF24C9ED28B67607A19B354802F7C269D10138C2375 |
B3706D18A966A4385179F429E4DC96B6ABF21E83495A5DB674952D8D3DA4899E |
8266CB3FD9284375CC872F891E52803E21DD8C8DCFA8D4022BE1AB59DAD72373 |
BC1002E04D705F215094000EB1711EBC6EB431911E25D1E8AB81D3D81211F396 |
9815C1C9F640C53F7D65B1C5106BC45EBFE69A6BCCBE26A4615361EA50E52E12 |
2E58CD7217C6CB712A6169DBC9BE4E188D8DCE1D4D229C72CA29F0FC8518C3B1 |
0F20BEC904632409EE0FD8956487DAD5B1582176FA5499134FA1A497FDD526D9 |
94AE28E1B6D8620BDAAE0968C64182178559A5A297F532F16D7B8384597B79BE |
5EB0F3C422F871EB41519948D5F6BFB2A35A247671B7C0A217221C8CD4383E01 |
57DB72CB2D4DCAB0C3C723D81BEFB0A866C9D789D9F37AC22073556D436AE7DB |
20BFFDED6FEFBFFFFE22E1328D4B448EF1D0DAEBC8238FFCFCE73FEFEFE543B8 |
A8223383AA45DF5C7930BC11CB412882AEF444C13441BB0B80938EDF96515958 |
15CE016BF0C91DD5C68C67507A65ACF0BE42D3DC516E80B833C5B311224CDAAC |
49B15E53AE0D61538851710FC2C21F50FC001985B424344552D3B3BF955E083A |
CC74A59CB57B99347145D919B4AD8B3340E911B107404C2D43A127CDD636CC07 |
AE4DE91A48D6CD3E78B3C5B5A77AB7E94907D70DBC18FA1AF3B355B38656756E |
BAF996D529E1C515CF6FB0D1E65B6D323759D1BFC32673D391E18DE6CCECEAEB |
AE757765FD4BEB6BB223FEEB0369B33B5BDBB4A9EFEEAA0E0C0FD035DE1EF323 |
1FF9C895575EF98A57BCC2C6463B4885C4993AB2AD0236098EA7EC214AD19E17 |
59449F6696BE1D8445A22D8B0D51B4979A9177019966D3487E1D53E6A4934E32 |
DDAFE4BD6844FD0E6FED1FB54C61216D49C0F27098CD40B0ABDBE151266C6868 |
7DAA000791D51A1EAA2721F751A935321D9C141B3E24F569D3FA6C2DBBBA490F |
770BB7568FAFE6A817DDE26C8775DB50F940BE272A66062543C359A3DE2C9252 |
3DBD3D93162F5EB27CF90A7F3A24529AD9186D502756C0FE9F5E929A17327FFE |
FC3FFDE94F086215F9B51F695EBE1512ABEE3B15B6DF517ADAD602C942F671C7 |
1D77FCDDEF7E871DCA8CD99FD0169C01D65B6BA7F0AC8EC7C48F3CDE3C5C71C5 |
15C71C738C0DC6060693303EBD4C72C86288F3E0D17A018449319EE79D152516 |
14B612E1871B5D596415D2F8541F7B268B8D399B05A5C3A38F3EBAE9A69BD28F |
2114211C7219180D76F0EC7C52964DAB3B215C50C02A0645A5D921312D25FE0A |
22403033DB339A56B6DB115345F49BC47CE49147F0B174D2C4F8EF05DCBC79F3 |
EC2276027D87D7F10C238C2DEC5A1CE89D76DAE990430E3167C5D32368E7D823 |
ECBBEFBEB7DD769B3C4B8FE915717F895FD3EB8FF14E41491D125717BFB73683 |
020F187F3ED94CB342219ED4BF41856726C24827FB13CACBD4BC094795818167 |
54F9994DB21D0480081FF8C0074CDFDB8755C7816C8153C987A93CFA54E0530E |
940DCFCC083AF2CA89F70A6F3C835BE1E5ACAD4045674115FF6847619889B4A1 |
3BDFFFFEF7DF72CB2DB63D00CAA16231B37CBDAC5F14AC19F6987779ED50983D |
0478B0191B1ACA0605B346F8C1DEA0B39B058585C0E18A2D07574FCC0935E1B0 |
60C102DC68BB3B7D17729FA4239BDB3975A47FF5E25A3D7DEF2BB29DD36CE9A3 |
3D4958D71572FCF38AA91B365F952D9B3973DAC6C3D9928EDE351B5736DF7AA7 |
ED473AC2485A9F31B36FEECC19EB96BC64C6F2E4BE505FD9ACACAA1DB9CFE195 |
D06D267912EAB58E64A4DE527B8009F0F2E1982B79C088087C48854918AD2FC4 |
5227158C3C61114ACAC26B4D1FEF645955AC4FA0541DBA94B017DDA6BF943FFB |
491251CADA737C8D7D4C29AAFDE42015018AB10577ADDA393C526882A4C0E615 |
EF3B6A1D8D6C9DE96824941D4E130A787B401C29F6B7C306248F246E4747FE00 |
D54A6ADABAF07DEB45ABA26A7FFFC0AA556BE7CCC9F78D6DBE79F35EF1D0430F |
8DE928FC1FBC34EFA5394564B089853BE524F83CB1A2FC7483808F934F565C87 |
9F51F35EBC4CBB9B641114AEBDDA122405C7A0123B87C3BF2A03D9E3D855D5C7 |
17C753C00AAA4B2B30063631B06A3228769E3FF8C10F9A41671F3EF1C413CDFC |
C409268C86C78336E5B2BBEEBAEBFDF7DF3FDE7D059512598736F4789F17E88C |
502AC2C2971CE83A26A6291D16F3112753360ADD48DEF8C637DE73CF3DB808E0 |
B9049A10A9A1348AE753947300E883EC80246309DE95444C2F7737B16553C77E |
E0A6B215283150F6D163A9549FA38882B2BC624C436A344713DA78A73FC46C48 |
A98AD77F20379C43143D212A92A2704F3E59285C4F405821721A20C53C6F7089 |
83A5A77881ECB327C597F2755CA517E7E2C0030FFCF5AF7F6DF684886C052667 |
F3C8CEA0274FE958AD974B9118526BADDA56CC629926E6915F7DF5D50C5B255B |
253B52A1FEE88DAC8F6478562C668C5BAB29B25D19222DDA178AA0232BDA1E6C |
BDF5D6344B16978ED96D8F3FFE38996C09F110553E1B2F8D9D18EC5BA79F7EFA |
45175DA49647FEF3B9164FEB23C355DBD4492D87351CB7E08C85E79F1D92C1E0 |
B080FEC4D6C386695835654AEFAAFEA15E734C2BABD7AE1D9A317DF3A54BFF21 |
90B9197C30A0E5D6D5DAA1DE9175760827BDE5D56BFA7AABC9B28E8D9E5A3777 |
6DD7CA4D87EA4F4F9E1DFA5F0AE99A2D77AD7D28D4FF3ADC59CB7AA6FCFB6B77 |
EC6FACDB6C5A7767DA19A65437087D8B963CD7D1B1F90BD5955B0F0D0D86D5BD |
2B87CE3FE0C465496D5A63D2CA7495300AA97BD9E49C7FFEF9679F7DB65960D7 |
5D77DDD1471F2D2A72927A741FB229BAE4924BECAF1834EDFACED49CED6AFB3C |
0C16FF545F94D4B37F93B9977E3F1EE83291FE508C3B89B4B79241E44BEC3785 |
9C1D1B5C53B42C0A93274D5EBD2657241BF46DB072D5CA6AA55A6F0E02C731CD |
6D9A18563920B5403DA947426EB22F617B1F1919EEE9EE1A1ACE037D8D7AA3E8 |
E51CFAFB57637A40988E39F94F27EB5F7965059CD2AE46997916C1A8218680C8 |
9120717CB8268C469612FAE33D17A40DF59852C65EE6D9D8B1B78B9B60626763 |
A9601D8B23F78B5FFCE209279CA0442FE59550AB84D1AC3D7406C42098D8E397 |
5F4E51077E9BEC5F40BF5C4703B36D2A361C98EEE9DA86976FCF6E633325FD85 |
2F7C618232A410D3A854A973FDF148CFD9129AC0D4358AB1A9B0918BAAC23364 |
119525C4E4C528A2CABC67BA0E884F67EFBDF7BEE38E3BEC4FBED6D9EE45031F |
E69C4112AF431BD90C1C70C00177DD7517868E57C08943B9E3CB2A9D56EA85A0 |
4475188D09F2275923F7F5CD22080B31465AF25F4D8B10A353730EA2B504C333 |
D7F927F7BAD6AC6D0F14E57A3DE43176C06536365827D570C6DF91CDC39E5476 |
C066F5BFFEEBBFF419242333C93054691646E3BF48FAF0E098BF883066AFA4ED |
D8F0A14D0E86D8DB987E79219615A189436CB56BF7B27DD22858BBC90A370BFE |
321B00F12754A927EBF5156E25B6165513612A69C0606BA8DC053869F360CAB8 |
E4555F76D965679C7106AD2FC82C94123D214A7381E388454179ADEC8CFDC404 |
E7B2937B9235EBAA7923B8247FF0D9B3E62E59F242DF0661E59AF131228554DB |
A037D97FBF03AFBBFEE68E8E504B27177DD687A02539E8A083BEF39DEFD8FCE4 |
735BA9551B23595FD2B1FB2E03BD5392FABA8E0D960CCD5C12BAD656926A63B0 |
1ED2EADC74EF19E9E3C32BF6686CB4E495DD1B76CC9DF3DABEDAD2B46FFE567D |
9567BA1E6C2EDE38DB70D9DAC56B3A86BB4706935A36A7A3EFA83D3F62666165 |
A496A50D9FCB17A782DA5DDB22DAF3DA8CC12AA846C5583F440AD5DF2C1DDD88 |
C95EA69B6FBAE9265B0E3FB77C7D4C09E673BA3E81C2D74B6B3A510A32C4A09F |
D21E1273B61DF7DF7F7F530FD88366EFD8B61818183B7DD5DD95B7801E1C1AAC |
A4C5D9181C30ED9B4717FB97D9DE5394D88C0FE2CC66CE926C9D3367F6F3CF2F |
9E3CD9CEED5AF31E8949873CD5B4C18A15AB0ACAC9504CB81DC261748C48E183 |
030DFE5FBE32C7F106EAC7438E358F447508D784D17581ACAB398BF7DE7BAF99 |
AE726415476D5F3FFB493FCBE078747598792F075AC7C9B4E0273EF18933CF3C |
33440A8534F2F80810A45462A91D8A7F5E99E104B7919B1886CA5A29062BD621 |
2AB254B05BF2BF559B345ECE8C08929DD8128869024F3D4485C4BDB2D8C55DE1 |
77E036B0CFD81C02B805F9ACBEF7728245ED145CF996DCB5127720B2D21336D9 |
5F4176E82B80683C1D923F814287C9DA0845D214AE505F4B5DAAC5D249F48153 |
4A2FC2E82A177906A5BDCA07609CA74648D2CA7E6F7EC369A79D662A19D73F67 |
7D1D2B825AED589F47B461DBC251E06EE3E798508E8293C1CE9113096DB8FC6C |
B117915FC4D5D0BC95C69F4554261F109A41D0741E10554AEBC93056449D1C19 |
A664899955AD73EDFDC2850BAFB8E28AE79E7B4E9BC15339DA674E39E5143382 |
D93684FA6D83C13AC0C084480A11B88045A2FE4B0496381DF6F3DA6BAFFDD087 |
3E84CAA40F182903A5307DD042FB5FD9193F481E47667470E970332CC0730C0F |
0D4DEA996E327EDDD0CA4993AAABFBC3A4DE49AB0756D62A7D7EFEFDBECDC2DA |
5A47B53932A9911FCFB5D5B4526F7475760D6BD5881B4113DDD1D93B34D23F7D |
874DD76EBEE9BA7472B2B66146EC48F7CAF0AAC7A775F7AD5AB2A6A33AB577A4 |
A3F252DF06B366BD944C7AC586D3779A3965F20EAF9FD978361B9CB76AC6F29E |
7F6CF08FE6D25DBAD68E0C0EAF99DA1386C2F0EA91A15543177CE0E49EBE4983 |
CBD7B5C7F69358874D6C0C4B5DD54130C308B12867A63D142CF9C93FEDF3543A |
B4A3E87D84298CC62EB487978373B4C6F58043183B57CA7B65B035D0F1046B6F |
EFE43DF7DCD3BC01AA924D3EBEF6B5AFFDCD6F7EE3C3B66134C7B21D519B23F6 |
B45AE52862A3A3CBC17EDFFB0EFEDEF7BE77F0C107FFE8473FB2556760138CE7 |
E5BE688B66B7C6DEC7C72DA15D24EF044192640C110A41CD891791102B365D2D |
BF263944C10DA097B0924D8B1D1B55B921AD5EF18A57DC7FFFFD4825BB853D7B |
896D40E561D75F7FBD5973EADC379E62C3F027D94CDF43DB7038D6C020354254 |
2FA11111E2EBCCA3EAEC373480C25901573CE67DB3D10CC6364B62679CE0E571 |
CE3EAF661731B1057BB93DC881071EF8B5AF7D2DEFCD9524FFF66FFFF6C31FFE |
50B3448097D08E849AA0A458BB745F56E70C19BF66EB7CE94B5FE240DA274D0F |
D1F08074803DB56D1EB8BBB52B94A7A07A07F4132B2258193B01242738473232 |
0DD79E448F4F148ABA67762686513BE69C6FF95EB93CE92EBBEC72E491471E7B |
ECB1406761690D45DC3EF7609A59C9ED669E471AF52DB7DCD26658B512E83C93 |
50F67B333481FB61BD21F884F352BF2F554FB11C442678AF4A36BF43B2D8158A |
CA3ACD95E7360A0EA881EE19339F4D420EEB8710C2669B6DF6F18F7FFC339FF9 |
8C5D8AC3AE203F010F7B6FCB6D8748203EDB63E6FAFFE94F7FC299A63FA3924A |
BEF2441A3189D56E8AD80159E2F39EB016F06088CD7C42ECD62793318B9C12E4 |
47D487407846C98450E87E9BD512F156FE7364D814F0E0C09A46666B94DA66DC |
6CB3AD9E7AFA6FF42C66FA5B2987E24DA563CBC91B642B5F5C1CB2CEC9537B56 |
F73F6FBE77DA0C23F5F51D0C45049D27E91A9DAB929573FE73C7A5BD1DC3D9A4 |
746DD2D56C64617060F68ACAF4A7B3C9EB427747F385E159FDFBBE6AE7CAF32B |
BA5FD73D7DDA9CF9BB6C3B3954B75D3DF23FCB9E98BCA26BF1C67DF357AEF8DD |
D446F75F3A9AC32F0E6FD0B761A8755EB6CF473373C3C218DD87422436818D07 |
9797FC2BE585DA339C5CC9AE9295CC060378017F22BFB7B3C9ACB6DBB8ED2329 |
FD3371AFE05248A5D7A8EA727F51252788C8118419CF9D2A0E7CF75BDFFA5653 |
C0EC3FFBBA1DF8BBEFBEBBF4B45260362F6F7BDBDBBEFBDDEFCE9F3FDF74CFBB |
DEF52E7B0F94D43613C2056B1AC13763C6341581604552C8F5724146E3BD5800 |
7B73D861877DE52B5F21352B5AD1C4310368C194636FB651DCD1CCD20E33A857 |
C84BFD426AD8D8D70A0897DC6EED18FC45452F75F638D8640A9282A65F6D3E31 |
0F2758321F0D0EB1030F029110A2DABFCB7EB7E3BDD75E7BDD7EFBED7623D39A |
72B3043E0A8E6676829B82FEE76770A1D7F6972798440173E015DBC72D40E5D3 |
7C86C27CE27B0AD53662BB0E1D06EFBB33E6126296A4230B44F4D52C6825F889 |
5EAA87952FC02561E1ED6B8ABB6CC05054421C617FFAC10F7EB0F7DE7B8708DC |
F344DC58DF25BC34A5EAA1E87BA8252B1FE9D8D1C12C039B1072134C8BA69132 |
36F42281843424ED7220B7DCB3F5163DCC85248F1A458F3C5C0AD18BB252C496 |
B13B091A811222BC24AC1671E392451B5CCB394DA9B033D443D30E4BCC881323 |
1C836B70AB372CB4FE49C350EAD1F1D1C53291C4FEF0AAE9041B4161BA1D702A |
059A055B91443C069C782B8353CC6A1181C706D92AB36763C058E4CC8A844B2C |
78F2FB919F80DAE80ACAE2EEB8E38E0F3CF000A9227B3A22D8F6FED0430FBDF2 |
AACB8706AB49684C9D561DC8E772E6478E3A7EBFF7BC736565B6849257339357 |
376ADDF54AA5FAAB5FFCF1DC334E9CDC37B47AD5735D61D26078494F4195790B |
8B10260DF53527BF6587D561206F725BEFE80C6967BDB96CB816A63E1BE63D11 |
6687B072E38DD6AC9AB9F48066BA24E998BED39BE6CF9FF6EAE1C98FF574BD2A |
0B7F7F7255675F4FDD9CF4EA9291873BD2CEB5B5FED5836B06877EF0B1336B21 |
194A46C2582038BD146821526873655ECD638F3D4602C8E77D4AFBBC64B06291 |
9320305977C30D37840961F0A5A3A76B7AED5B521FA5AF8CA17D7550A9F5644F |
30D1E3E9BBAEAE6E3CA4E09C3F14582957A421D23A2DA7319B36CD7EA99A3F5F |
CF2A3F8903497557289C92B3CF3E3B4C185E7F592F481FCDB1B633402E933E30 |
C1D5E1494C9086F4E9736DDF520882BA1DF123B643EC004316FD1F077129D82B |
404B30DC747AE9B4C369B7A930E15B89AD854D1AD2539AFDA75AB2F1E607382B |
5595F675931A7BECB1C77DF7DD47EE191562230735A3984435F63C5736855C9D |
CD9B4925FB8D5A838D576973D965972D58B040A48F73E7CEB501F828CB987B9A |
309A3DB2495EE57224D30502B27F9AFD74E79D779A75A29EDB9E33C86F459998 |
5A290887C1A0526E61EBB270E1C2E38E3B0EBF9323EA3BE4208910BB6216647B |
A86C03D602ED6AFB8009C4EBAEBB4EF79589805013FE96BD64376281ECF19F7C |
F249EE6E57032D91B495DB7A7B57061C7586B637EC7909181068E1497394D9C0 |
20A8AB244A8F5C0B66CDEE8204E3E0830FBEFCF2CB45782945EBE3F61C76CA63 |
3C751AA34281B139F949D6C0575E2A7890B9068BD255681D12FC764C801D40F0 |
A970CB983A58ED0E09219025215F43208DCCB47D0CE2333028A4BD7DFB483B32 |
F608A4CF052CF03587E408D8FF685F347A28B2EF766A385338F13E620CB76288 |
B16BDF5A31753D1B44A9663F2FBEF8E2E38F3F5E9D09F00730A7C48CED8B9DCC |
D59A3563E3E5CB96D6B3A1491BCCB8FE5BBFF98FB76EB36638CCAD3057EB7FF2 |
A6BF636D164656379AB574DA437F796CCF5DB7CA217AF5E0ABED450D9D632342 |
EFE00EB36B3BCC19195C53CBEA59254D9A594FBD526DCE684C1A59D9F578D8F4 |
85C9D37A877ED73FFC0B7BF8ADC3DA47D2A1C9DF7AF0DB4FDEBDB863DA92FF59 |
D67CE5D46C78C38D1F5BB274E0D915C39D5D49B3FAE813FF78D556DBDFF8B153 |
270FA76BC29AF6950DB15C1E0A7D88E2498ACB6DF06B34417F74E12B7D3F6C13 |
AA2663B3D19CFF13BF04BD2CE101C7F580DBA3B85E42299F6F3B12176770706C |
4FC5BE84DBC181E7E417E318A57A9B2D926D93085DEBD6D9C53B06074D6ACFE4 |
60E075AD5EBD76A38D36C47C5EBA74F9D4A97D0504661AE93D9BC4534E39E5D3 |
9FFEB499FFF84FFF4F5EB8AA60D9E14AA5B658D39A8C2EF8F393562AC0F7FA58 |
16AB2F63F06B93C57E9F99E373F00D44D1229E9420B8CE3C2A1024B669DBD1CE |
3F4E5228AC63B027ED2FE1EC74903C9A9449101B1781475057AC8BE8F5437479 |
9931B4083ED078F38C3D28327A8510C7D957ADD8A3DD915A49B52C55E5B46A30 |
DAD366AC0834ADF5D8AE584F8D1120D42E7CB0A29E57C98D7DC0CC0EACE95010 |
2CDBC3DAE1FC9FFFF91F5306A69680E60AD1C6E4E87694CBDBB0ED22AB8B5728 |
E4B5793F2694E90A05E88F449400473C851D25FBA40968BBE6D7BFFEF50F7CE0 |
03BA179524DEB6D381A735B5ED1962E07CDEAC9F638F3DD69481691D82DEAC6F |
3EEC5A51DF55F8BBB56A8DAC55A3D9489C54B281BDFAD5AFA63EDB161D420C05 |
F6B92FCF0B622B449A27F8BF5A70DC087E5678D6870AA48009ED841863245960 |
57A3BB898FEB485597449E4EAECAD9439B138CD6A4662F8B15F00216F8F3AB3E |
0DCD826A5FF9D7993367DAF5399BA6CEF7DC73CFBBEFBEDBEC2441D2D8EAF3E6 |
CDB3C345DA5B757D66ADDA67306BECF4FDE31FFFC88AEE2064F19048180AC03F |
436C5FEF3D1C76ECA69B6E6AAA629F7DF6F9DEF7BEA72C0FC4B444F28647862B |
053F77A8D687D3BE634FBA7ABB5DDE316D4E7565583EA66A99DC9FD49381C993 |
A777A45D77DC7EC7173EF3A110565593CE7A6305FE3DA802163AA764A9665D6F |
D96D555F677560A4A73EFCBF597B0F384BCA326BFCADAA9B6F87E9E9C9892433 |
644110D0352CE8222614152448CE022A0C2279244806092AB02C208288E9D3DD |
357C2A98C18023202230E380334C9ECE7DF3AD5BF53F55A7EBF0F6EDB0F2FFF6 |
AECBAFA7BB6ED55B6F78E279CE53C906BEDF48059EDF48E7B2A91A36C31C2765 |
FE1C3CD75148974A9B169AC28029D4CCAAF0865FDD576BF46E5BF36777CFBD5E |
FDF3CAADFD7E219F73B70D6C0D2BBDDB2FAABDDA37DB297C6FC5ED78F5497D09 |
2769186A92943F568479841B6EB8016A42D1479BC1D7FEBA8E0FBBE64843AB5F |
7898F041D9DF9A4A8F70074A014B884DA980459E602CDB394CF84585CFC2E0B0 |
FFE29CD3E4374AA5C6843E371C1F6975CBE1382485C900C56A8A8E919152CC23 |
9D2B9518118A0EEAE5D167C53EFBBCF1E9A79F651F62599D4C0E712F4E95DC7E |
BD1FBE236516C1A24E5C23A4848A633168F3A08A23C61BDF6450D24478DD368F |
D096142A55623295250A843841586015202BA96318A224EA1262E8CA2BAFC4D8 |
EEB9E71E0A23FC12D2F988238EA0C296873A154A5C0CB4ACF150EAC8EEEDA3DC |
E1E1871F8EAD2C0C2DFB14AD5DBB9671330C06A2047284B20CAB1F474AA6DCA3 |
747D18C38454BAFBEEBB2FBEF862DBBCB03FCC7D7024BBEFBE3BB4A0A28E8C3C |
63C6DA603ED4ACFC8AB89A851CA69E9604B7137850901B376E640C8A14F66444 |
91EFFBE8A38F1E75D4519C61E84555D4B0B6556BCDA8B5228DCCFEB2CDBBB12A |
9DC43DC7DA3CD2E0702476121A37C73EC4CC73695849853F29D4D1961B4BCE63 |
A4B7F6DF7FFF238F3CF2820B2E2073354748C38B14195CFAC8EBCAC6B8E5202A |
DFA7BB1F2909BFE95AF945BC3296ECA5975EE22473C9948EE13666849963504F |
24564C1238C9F8B362124ADA1142A1A02B0F1DAEC4D7A93B6D8F50DA510693D0 |
D46D3AF8B4D34E3BE8A083702E18C2C5B443AC5C7DF5D54E425E8D47C0A0BFF1 |
C61B1982A6A2252CC0CE2213CBC6EDC4FA1613FB490C4270C6F057F2818BDA42 |
D8F59D77DE995EBB7891D4838842067FC2895EB1628549A01576C717E2439992 |
E09925F843804D2E28A504E30182EFE0F7E79E7BEEEDB7DF10F8D986DF328E6F |
DC591F3BFDD6DEED0E28B7829E72872D97F4B31FCC0C52A520EA635B19E87FFA |
07DF5B614AAB228A667F9C1F42432D923641A3FBC3070EB7C25433DF1D9AD142 |
D8089B4E900DDD7AC64F17C2663EE36EFAE15FD373863E76CC09DFFAE38373FD |
CE743DBD2D68545E285D71FF1DD0C61B5E7EA592CE54AA8D52505E5A6DF5CF31 |
03A946664BD9EBE87EE2AA7B4DA961639D24B469FC31DFC1405D1BB051758066 |
7CD4C18C8F45AB78D724D52B582966FD6C928A8916DEA4EEAB63D5554E8A917C |
6DCE25CB24A915F0510F764A1FFC7E9ADC9E6D5948B5D8C9CEB60FCF1EE68B41 |
426641C8E1C2BC1AFF442DCEA34888602B694F6DC643A2E451D17D5449252363 |
8A1E0716A1B91C1A93E4EA299570BDB62F8F90DDED80772357114682A3C5D8AF |
00936A32C187F2590A16EDB9E79E4F3FFDB4B42015D8BEFBEEBB72E5CA0B2FBC |
108240486F8ECDB18A4D899761E10AE7C776A9F9205C0C190D3F18829521688A |
3CDBB8C330301E16D590494E45C6C66ADE2E19C78CDDA4EB18C414D66F79CB5B |
F052ECBD852FAA2522EFA0F1E3AF5C3BB118DE7BEFBD679E79A60D21B6F18053 |
114A9BD87480FF870761F2D9949B8C1341C2F3279348546B2AFF2080454CABCC |
286312DEFCE637FFF297BFA4E5A11C1EF14AA447E049E15614EEC39698B82D7E |
B96CD932B8412C6E91D508CD0DEF449945DC106B845B99187DF3918F7CE4873F |
FCE197BFFCE5534F3D9507508509322FB439D5FF671AB01BDB1ADA36EB180708 |
563F9D218A228C9B9A443890A869DC1888C12E6FD532C964E1A3F5BE12C184E0 |
D1D72433227611DE91D938EA33326370A5646D381638D9C6F789EF90671FCFC5 |
8E624C55303A637930C60A890B6ECDADCB42703D0EE361899D3C0405787807DA |
617C2E5787A7BEED717C77F66C5EBE7CF92DB7DC62AC4614947BAC689274B569 |
95DAEE238A0C63D52F71F78649C102D376C4968749CB0D27E91586D714E088A2 |
8F181AA28A320E9E9EAAD4FC4CA1E3E44F7DF6CB5FF9DA47CFB930C8766DF50B |
4CD2AB94C090A8BF3E3AABBB581DD834AFC3FDFA0D5798B0DC996E356B7E2A09 |
A10B2DCB6C74E15F534DA786397203930AE0D81582C23C539C512E578B616E56 |
2DBFF6D7BFCFED9ADFEFD03DDD2DB95FDDF38B51C71CFCEE1D57D65E095B5DEE |
DFC2F79E77F2EA59E5F4C0B0576AA60A5DE9566664DB7061DECC4A3832376CFD |
F2F66F99CA586736DF6A3868C3D3F08EB07ED6AF5F2FBBC76E992346616962A6 |
F9A9C2B513D4FD8C47601A07464627FFCB28A022FF349EB6DB6E3B529D9046C9 |
241D1014F58C964F6A89475471730E05EF70DD75D77DEA539FE22952EDDD540A |
381CDF34699AF212CA65613768864B4CF004526AF3BF760997686FC533A2BA78 |
3B7EAB53C7EC08DF5F54299A5911A862337DE2139F804A20C409E79009215EC6 |
FC999D426009C1D1471FFDCD6F7E1373CD84B193147ADB7C1D82E7E02BEF79CF |
7B1E7FFC71723EF397C432506812ABC994B00D92A280BBE4924B6026F3B9CCEE |
886E9A3A497DEBD8242B483A5F522672E36A924F38E10438CDB8184B7CDE79E7 |
1112659333A860D424D48093AE3BD91C190B552B43D91F133F825CD19953FBA6 |
3668A2EE3FD501C0CCE05DA8E4B85775DEDC094DC4A89219B7C73B92B283A923 |
155F419DC3BD236E88E96105B1D5F8CC243D6AA880C5C6C737A204DC69A79DD4 |
458006106612C3C3147173F2329A29B63B8E9FD99B441EB04C013281C37B634C |
4C31DEA9CE17E7844D26682EE0B951D666FDFA4C3A26D36E45A7063A38E0E6F4 |
5254FC94AAD8CF709BCE3EFB6C6371A7A8268A860BF7334BE7C3A489B5A82482 |
A44F00B5B510D1A40B35E3A15B7619372D66458F76DC7147187624D3A65AA2EE |
6F0BDAD92FCE682DFD457A36663CCD326F8E0160EF51E7E1329C9DC30E3BECAB |
5FFDAACD22622C188A1D2094E274ADE6107618C658B1716C039AE694B9768ACA |
24462766608F3DF680FEC07828A619E8621532878437C20FF7DC730FF43DE650 |
F60A678C004CA687886090B68E30957E904EB91DB9F4E0D028C6DA4C158D9737 |
35DFF8FD99D82C88CC8558D675E1D4E3DD7B7636E592C9A74D69C860E61A6513 |
36BB3A8B23A3651A52D408128FB9779AC0336E542B6CB2A1D7F453A530DBC2BC |
F6B4DC8A3BBB366BFDEF5699F9DE01EF7FD30F6EFF697E4B77716EAD62D6CC39 |
64CFF21663D698779E7AF4B3A57FECD13DBB9A69FAC6C97AE9DA68C3ED983154 |
091604339FBCEB1BA639646F6F01D4099E5231B4498ADD95B3135A7B221F803C |
0DF94EBC9E1513A45025606252F983CD4341CA70911EA4138D953AE38C334C82 |
42506F6C0A93B1D830BF6627E4C8FF4C3C086E7DF2C927E346B4B3A621F79F08 |
009B3E714D4F02AF2AF93BB69031AA855BCAEE25A7E1F144F1BFF212088D566C |
87C1617AD8980B3BFECE59A0A100F18D59B673422AD6B471B9FC8A3817B1B4F4 |
E16878D2A1A1E3ABC1B8E3B95B6928F15C09A86C12E56A3F4B11368E9FC75B0E |
225F4D7DDF18BFC25B13CC823BE3645E7BEDB562AEC050F1FA1C36239677DF7D |
373C4EE25745FD288386436D0BF5D3716F4DDD3ECF583007BD8B2AD94DECC713 |
D0C76E74CA028AC155B0E4206919C9E4DCC4DA92898F3649030C2A51D79DA45C |
C1B1BAFA50CDB0C5A189EBC8E5A20957A5B43DED18D5BC7169C4946E43D631B1 |
9FFDEC677994086B2222891938AE23975B7293687FE5E0DBD0D4F6F83563F656 |
6158722A83983112E61A71E5DBDFFEF6175F7C11C2DD23515DD45B2C6E03E08E |
3560C7EF397B7859FA7F0CD24267AF5AB58A0DC6497FC18EAA2AC2E6D6523338 |
1E2E1BD29F4A9ADA7EFEF39FBFF4D24BF9155A812CF360E65B9A491D7FB95598 |
C5847303C38EE46536BA581FA2BE4502457E155A33DAE426C9A16AC76A4BE0B6 |
583B988FF83A9E423B122361330C5266DA269DBDAF48BEFF2FFFF22F2B57AEA4 |
39E8245C1F5C6BB1B2DBA8B489B2D1662A15CDA1D69A529BA7891624D58C8078 |
5C3E93B4A2B28BFD70C32BAFBFF5F24B3EE7366B50A97E13F69681BBBA70E1BC |
CD1B367714BC52A595F6A2345FA1901E2D35C3886D3F9AB152B5918E36A7EF65 |
73A974A68E1BE6527443695DBDF5AD6F7DF2C927A192D36FAD349CD037213CE0 |
E8CC876ECD31F0214C107AAE99D5ECECFF5BA5735ECF7EFFB6EF376EF9566F33 |
0AE0FBE9910F5E7CC2FFFDFA63666B66EFA30FDBDCDCBA38CC0F748C0C5607BB |
0A59B85675373B5475B77716FEF56B3F35C166CA7302ACDAEAACF0C305175CF0 |
ED6F7F5BD425122637DE782344226603DE05372AB7AE6C2CB1E091BD47079009 |
C1691C4839BE6AA7A1ADCE8CAD63D1809B18D2A5D6A2364ACBB1D107E451E2D7 |
C4FCC070106FF73FA28EEDDB4E9A9DD296A24C79F8E187E18AE1CE2C2B124A82 |
8E08379C02386A2E411FD1C6128709D90295B113F703100B2B190D69AF11DC0B |
8B9BFF3CF0C0030F39E4102C920D6B6C03223A63BD8A235145448F42DC8A4538 |
497DAA3759FB3093707D087F64AB0A9E4CBB91AAFC398C7CEEDCB9D822DFFFFE |
F73FFCE10F53B25029B21E9FC80EBA56EA5D285C25E99CE8BBDB763DEF8FBBE1 |
D1901A0C5571485C179C70089DCEF80333709A5C3BDF57B916DB0662108F849A |
4C82920E82D382A9A0B94A9B8F6786E617DD26A5B826FDD0D0E1D21367A406EF |
36AC811FAE0BFD5DDD56C3E305D4CD34DAD8711206CDADB7DE7AE79D777EF293 |
9F547F087E30423AB8D84EF82F190938061BBEA72A1106B119A7617447314393 |
808318A2C4CC4358D822585C3F2CB76515266B99A6398FB4B5F952CB962DC3E1 |
67B991971E8335A53231AE877AA81691ACE162280CFCF7BCF3CEBBEEBAEB18A2 |
508B30DE568229B448A0EC508149D2582C5B3209D10163FB6ED2239CC1157E51 |
74223A2C785932F45234610F135DC895D581D2EB73FF733C58B5DD77DF1D9E03 |
8316931A64F2B08D0511E03F31EDF8EE5D77DDC56BD45F5DC3B36BD574671A25 |
342664CCBDEB5DEF7AFCF1C76DA3AA2DA263270815D2A433CD8DCDF015EEF393 |
9FFC4412C6062E980455B060C1022C31BE22ADCF23C90C0B74AE5F2DCF99DDE3 |
5746E092C4AFE995AA2D3FD70309DB316BD63EFBECF39B9FFD2C9AF959B3A2D7 |
195D3B5235BD338B5B06CAA16B5A815B9C3113BFAF0CF7DBB597EA5D9D7D73D5 |
4F9BA667021F1E70A4E0E137E337D0F761CB3803F96D7FA8CED86ECEE76FBBFC |
C4F71D9FAB16FC3035ECF49FF9B973FEF8DB17B7BCF0F7ED3FFE8ED16239D50C |
F2E1BCBE91A1EEAE22BE371A547CAFB5244C3FF7C84F72C138FE388EC14D08AB |
2996638C708D7E0B4D4FD9B8663C6529D794F616BE45B39BC9384692B96FA749 |
F1286FC29B501951E9D8C078AE202409B4EFD2A54BFFF8C73FD297E3EC453136 |
13B3BD43F35D7DF5D5FFF11FFF71D8618741E2483EEABC99D89D223CC14CFBF9 |
2715307E0F8D72F4D14793CB10FFC40F343CD99058D0CDFDF7DFFFA0830EBAE1 |
861B086552CC81729366ACFD38DAE942C3DA895ECE884A2DD5625DD145F693E2 |
08A9AE6896B2EA838A999D030435E416E4658A163A56C746657D842AA7D72B32 |
265A6AD28854F32A27E580B90A981F8A5DA2FF3903CA3A68CC22DFE1E4B0E893 |
93C3B83ABE8B23AA50893D78339E4CC05663534979650168A368125A494745AA |
014C1441C5ECCA493BCFB15AC46890F4ED14539AEAC32EBC5C17C61B28F727BD |
588D2B9849E219A3E4A25F45D3952FD2468FA50F91381CBC33A1FE87462131C3 |
0CCBAB5E0BC70F3F53A4DE7FFFFD279E78A2493858C856662732DFF296B7FCF6 |
B7BF15D5949BB04FD35E816EB67BF84C8FB1608D99B604730A7C593F88FBAE47 |
39E0C8D38502C6B021239E7BEE394C3BF6091E44BB904B899F71011C568C8AEB |
286B06F7D977DF7D619D281B47E79BA1236A23BC0EDF5490692686C8278C5BE1 |
B6D893F8016E311B6E9AD8383EF4D043AFBCF24A82A26D76D536C44998D41411 |
070B9B92915BC5A5EC1DEB2444AD0A6B7187B3A0857B158248E605FEA9AD68D7 |
4D39096BAF7A783024C6FC17531EC40761FCB89280E736189174B0CC3293F4EC |
525A11CE09F60F4FABCAAF21159F78E209DC1C338625E60C131CC77B527F5C1F |
7F6AD572EC9044BF2F4264D59AB962576DB4E405634EF6BCB9B34885D4F443D7 |
319942114627F62A7D30CC2D9E82BD412383E1FDF3CF3F1FCA82FADE596A7233 |
9D544F2E0279E18C0451411B96B998CA6C1B6A14837C6DAD57CCE51FF9BF0F8E |
0EF57DF8C00FE1A9D7FCFBC5994AF5C12F3EB02930C50FE6BCA5B991A1A145C3 |
EF1CA9841DE90541C52DB79A85CEB067A4FFC56FFE62C1AC05782F4E665BAB6C |
D2CC11432A2F53E104A82D0C18DFA5D1891384EB8957E0DC9E74D2493FFAD18F |
680E2A4129337D9AF365926A141E2E9BB155BF577F2D62489F7FFE79D60A9998 |
8F39F2926D7219DA11E419D0EFE5A1139B308D4BFEBA42D061CC7E8041A83A90 |
C3E52F196611D8CA7E04C3A1A2C8A043C9A814F5AB49B27414A95284071C70C0 |
DBDEF6B6DB6EBB4D547F2AF0D741D2539442BEF9E69B3FFFF9CF53C5E24A1E09 |
6CCD3BEEB8830350204B45CF5ED258341CDFBFD3AED6D0BBC871E48453AABA71 |
3B231E45F5EE8084827974EFBDF7F26E983446D7B95D9C9836120BA4F552E892 |
502F2690A465F9826A6A463D4AD35B2C1F6AAB6093CAB67D840C7712AA48BBC0 |
49C9609BEC4DA90486E9788D00044C7F7202DBD0FF6D1FA5AB051B6CAB48B105 |
9CBC072526C57E45DBC8A645D48BD07AC5CE8722B433460494F11A6C0CF64D82 |
58C421649F79AACC30A1E7B4A1031A2DAD4C45B1647462DAA1CCC2B822C5368C |
547B464DCFFD390D28927130FE136B8A318C65073263A469B808A693F1DC4247 |
476528BA92205EAE0829BA68D407560778FB15C664F7BC791FFCE007BFF39DEF |
10444293DA0EA773C09887188E7B3BD79DBD924E39E594FFFEEFFF562E530744 |
C2C18EC48AF6D95E5CC762461384C52EA077C77374CB81E68740332265EC09C4 |
002EBDF4521C739C29166E4D54C0AA51A614E26FA4AAA19557AC5871DE79E74D |
4349DB26D0EDE5E361A48CE21CF244930684F56382B0B5913F7FEE739F7BF8E1 |
87E9077378A9C895EA0E5D6F5BDF9071B0E49D41ADE17676A787366044C56214 |
D3FEFB9A881377F6ACC8B21F0C3BCE3AEBACF973E75C7ED18591576B823DF7D8 |
EDC5175F0C4287DEC285175E08A7886388E67F76A530B7E8CE4A379DB25F6FA6 |
B0B93C2774DCD12DDEDC9D666F5AB3A1509959593FB0E33BB75B7EC1A736AFDE |
F4725F7F7151F1DECF7D29D56F726FCF36F70B6AA9A6D93E935B03893CA360B6 |
0F876604614F4FE78CECDA6D6B7FF0D8CC9E0EB27B52244AE46AC330768B69FC |
EE77BF7BF8E1871BCB7574120A6125209821C6A1602C934D4DB05B3E1B7F847F |
324941F0A4FA8B896746108F39E698471E798406EB75D75D77F1C5173B569529 |
16118FB33BEE285FE308BEC4E1DA296B0A38956DA8A9E13482F89F076149F4AB |
9C8E2D158DD5CE0FA3A48BC36DA44DCF2C91209AA2612276461637A71E0B6362 |
28A33237E273E648703782B02834791386CB14D6C0EE64369E69791B0042D9ED |
241D70A93FB84BA8786C1C16679282D5CEBB537993C6CF4E0AC83A26E3C476DB |
6D07E54A79C1BA55133BF7F646144C97F9302DA2133720C34D88EC60132A6E50 |
FC80BBD1726CE315C2A305CE9CEAC31511F584639558683338491117DBDA2B4D |
C831702BD3B964DE81F0D1A91AE618ABFE0FB762BFDBB6F60093C2734C5293AA |
4DC80326DD46B01B9FCEA913AB36CD2327A99391A3AC238365C5E328F1B903F9 |
A79D76DA09734BC5490A686649F8834D3D6DDB73F6F42A270257862A41839FEA |
7C911E99D81C227EC7865A1AC54A44F5F8B07522CB358E18170A7EA5A6720ECA |
04F290E0AF471E79247424253B06036F0C86BC8979B82013B9EE2235A325078D |
A56C1C4F01A9551526A1E6206A1D9741D5DD74D34D7834BDD8FBEEBBEFD4534F |
351694CC6ECCCC38B6B1482B79CCD9E6814BC06A6CC13B643AD8E509DA9CB22A |
180EA17C502C8715CF3AAAB6FEB6E3F08A2761E6F1FAAB56ADA2317DE69967AE |
5CB91216958EC9441016370FA52B5315D2D9ACA9237A9CB211375FBF7E3DAE84 |
ED026583B389FDCFE0B3B1D83A95ED8253B87AF5EA258B1746945B8DD8C77023 |
C6DCAD5BB6F44695EEC3D9CECE7ABC819D3878DB820181170CC7CE5D577777A3 |
5E55BA84DE0E5D3515914797CD29A6E667C2D9CDAA5BF29B266A42E816823057 |
EEAFB7B2E5DE855DB5B5B5D33E71FA6D377F69EE5E3DA5CD95A091F3E7179B4F |
6D346537F7C15DEBF3FA8A41B991CD35BAFB4CDA649DCE74B9C30BE7E55B7383 |
674AF5DFAD3FE39C2361E1F1989B8447886284101C6C27CC3CA53477A3F220B8 |
8CE93C56ED4B8F30DEC02D277813FD07BB51DB540A98FB0A17EB80D3602239AE |
4840F14F1C134C38D68E743D8A861A515132E8276788084CDAAD70BCA02D1473 |
73FE97CA90546F8E63CCB3AA743A243EDE84BA81017D6A5CE545C8BEC47A7F86 |
13C55E44CDCA2027CB1C4D624CD0AFE2E124DD3967508E2C03D7CAFB727215E8 |
13EC8BBE0BF5AB486EDBF026260EE04B03F1978EC509609307D92D756513A8DB |
815DBAA3982DFD5AC63AA44EBCA453A6ED6E7260424773D5612043DE6154CA19 |
6B0670FD09279CF0831FFC00875CBB678C2E780A456897CAB451BE85499D801C |
D3DD77DF1DAF8F8DA8CBB8F5553149652C8EC069407F84EEE389BBECB20B641C |
E33F76E9972D64892665D899C7956A893B8A6718B30459B666CD1A9C1F26D79D |
A41C8B0BC1C3135AEDDC19782011348D09E1F8B45518A2645081B41B141F2681 |
BC311FC1238DE340760EFC9E594F5972DC907489F8150AF4A9048470B35C8231 |
E0B4EBA81E3F9DCBF9410BB6612697833FC499518A94C7011F51C2A934888503 |
DC3CE294C6FC90490A6F871579EEB9E758CBAEBC1503B9F299881267A2819005 |
05035427CDB7E3C9D2C620C4A64D018BB8860F72E2A23B110587E3F9DB5B498F |
ED3061667012FCB60C507C6BEFBDF77EE69967986CA2656C2650DDD93613A954 |
B8B22A16C78BB0699BC82C83846BD34C8817DA05C4147A5C7D46A170066D1C80 |
B6049F4EDB9113AE3A1CC233A347FBD0A92184505767B15E1E6D35C354DCEEA8 |
E2F22861B74441F2FEFE41D836D8205DF87DCA148A510E1847B7A777F6C0C060 |
77EFACE1BECD8C9009F8F2C0030FC42995547AA19BD9DE093AEAD85E5ED3D42B |
39BFEC143B9C6076A5DA30B39B5E6BD42BCEE9AE412D9BEE9941DFDFB19E1BC2 |
B9F9EDD7CEAD1B7FCDE220DDB7A551FDD74E93C32EF55375E3364DA3AFC3FCBA |
EAAD728B5D11950DD98225F1340FF881447E102C0A3E336DA108A228B8DB242D |
0F3E04ACFA182AD0D2966BB73FDC5A826ED06C85E3FB852F7C81F5A2380834F5 |
D41F565F1484CDD854946D1FD6B9E2A6A79D76DADD77DFCD27D9247CC6620056 |
B12CED113C807244BE94ADE029A7047A74AC3E6EDC97DAE2F66E3313A8D81920 |
15C93B3B93E0F79017B00D2FB9E412EE8F36F5460C0853B9FC0DB629C64F7D2F |
AF5AE324C7024745C490B1BA70DB0B19249CFEEA26B4D75E7B4172612D6D2F4A |
302E6D20D1D688F1D149E87C693170AE6EBEF9E60B2FBC90B20917DF7EFBED67 |
9F7D36D92BC5462B420CDDB3187FA04D291F211DB0C9886DC6B70E3CF040084A |
78549C461A078225F330636EE5424DFA51E36463110C3909CBA64A4B29C87801 |
9373CC17522E33CE815F2E5FBEFC9A6BAE21CB31436A02199A2408494B4B1DE5 |
308D6A9B6A63796C2C8289E34E369F391EF1A10F7DE8DE7BEFF59386BEA2EFD0 |
26F4929EC7748068D6703599A0C5088F3FFE78AC05A530E68A65668C58928A88 |
405F9CCC0B2EB8803E258FAB264D7EA119EFB8DBF18396D503582EB26AF35417 |
A0823D99290206F21176C10C9683EB1ECD49C135351834DD2383C36E9870CE44 |
43090AF94CD4E63BE51D73EC713FFEF18FD7AE83B9EC15B3A6516FF961DCAC8C |
FEA51BCF5503BBDF9F3B67EEE6AD5BC6F01333BAB1465B376D9ED53BEB80030E |
F8D5AF7E15E5BCE3DEC39974C64DA59906121F2426F017BFF8C5F0F0A032F134 |
BEA977C929C683033BF2FEFBEFC78667212F2390CC3473073228625ECF871345 |
0F5B7C203447D4276DCC7C191F2BB2174E192E8652F027880E72B532B9C6F927 |
D081EB62330DD89E137EC3FE7AC62A88629E9243E214E1D46083E97DB9736C3E |
A620A18FE68AE34FFBEDB71FE4A7B18C660132243DB8576D4215892FFC97C464 |
9C1F3FF04DA7D9EDADDBAF1B5A571A094C8799D193AD458906981441A3860D89 |
3D1C7A69932BE6CBE5AAEFA57229E3B6FC0666C2CBA58A4BFCD4BC9A9F33F59F |
CEF153C3FBF6D4DD6D663B63460BCE172AF386E6F767227FF7B8E38EC38A6BAB |
2B3EEF4CF8A8199D5CE43BEFBCF3DC73CFE50187FB71D9659751F56EDAB44904 |
678AFE0A134A43961962097027A189956DC7AD4E370F0E319921A4B028C7689F |
91CF5192734A05CC3D04F181EFB495DE5334130EAE689BEC0E6EAFEBAFBFFEA2 |
8B2E52165A4529ADA417B7E23036C0274C287095BCA49B480F92DB94F48AF8EF |
C1071FFCD8638F1160C28D8E338CBDC50A6BCE9D6A0F6C5A54C57E172C5880D3 |
CB2554E293D34AAF5A644364AB5EBA74E9AA55AB68DAE85812CC2689C991D376 |
3EEBACB3EEBAEB2E4A163B8D2A01EA582C041AB328128D4587C6364DB412F015 |
BA2666BC65A7F5E6F9B179197FF2939F40AEA9E658CC0352D8ACAD62C1227712 |
BE8815BCF6DA6BDB5A03B57DB8A5987DA78BA92277F9195C53AD26D3DE84CED1 |
0715028ED686E069A79E7A2ACE9BDE94A61E4B6FF9B30D8C2410C6B5283F8DD5 |
1FDB2EF553B92DC3F876F4BE2D4768D73328AE40ACB2139358F132FAD361D2C4 |
82F5694CD48918597BC906C462005C08BE755BAB60BD02052891266C8F8889DA |
61871D5E7EF96511AED1ACE4D956C12E45BC8AA64C921822C8204898C222705F |
A3E24088D6708EC28C13B99B2BAEBA12167D77B1D0373870E2F1273CFAE8B75A |
26AC366A5E2ADBF49B1D1D71D221A0FF44C026EBF25BAAB74965D27E33E2D28A |
EC182F8AE808272572B18ECE48BFE2B20CDC086C9B540ADE4314124CB99FF8C4 |
27B0FA782FD89DBFFFFDEF7FFEF39FEB78720EDB5A95D03DA09CE57E9E1E253E |
8DDC4B253DDB156924B535CF1DC9CED4F6D84C8652E466D31130166B8400986D |
383E26CBEC3F61A72D59B2E44D6F7A13AC16B6D31007386967180B24B5087B6F |
28EB695B6F9481728B4970CB540213ED32AF9D1891C7B004734F544E7890DA8E |
31AFC10E25A4DF8AE051336794EA43DDF3D3C303CD3DDEB5EBDACDEBAA61B9B3 |
C71BEC6FA5B3261F2D388E4F2EEA7E376A66CD2B5446E17B4705C638AF4D936B |
3A9D7E66A69BE96CA407E697529B52434E6B6B763B536BB9E9EF07DEE6190D37 |
8AA310C9EC594D91EDD7B4DF9AEE10142DBCC7356BD6309A4B55D5D68D4D15EA |
26B6F29513A4152EE9C4B0B6F41DBF684394DA0A08191823D4490E866775637B |
CD429A74237294A256A78E610C8AE809EE7B92B1C959A411CAE327C654261D09 |
B0620C90A06D3B95A20D6ADBEF4CC752FA4F4CC008BA457A3C9A210C910966A5 |
E9133F2DE53E862A1EF95B6EB905EE326D1FEC398C9C695A92F5D8D32A23A38D |
CA43F254CE9C5088B8AD0A3D8D95306690004EDED5575F0D276CDDBA756A3C2E |
0606292DAC257EA6A941CF0FE3C4232E883F26368D57AC58017D2961C45D85AF |
332A28D5AB90801A3ECACCE7872ADF4687B13C6E7A43CD588CFCDCCA1824D512 |
437334D79C846B89D5562CE46FD349F8E5CE3BEF8C27F26E22C4A7F1470745BE |
23F7005E997DEBC4D8158E2F3B31E3D137B6C7D9766CEC64A18C2AFD86DE3007 |
202249BB628D89065A66625BD4CD6DFC97BA6C71243671BC9982B82E4CFAEAB0 |
199189AD460A1A3140851388E31901731298A19080D42224048563FAE057BF5A |
C8E6AEBCEC8A6BAFF942063BA4D92CD5CB69376D82E692F98BD66E5AEF39E97A |
D8849F9BCDE4D2B9ECD068C47210AD8783198B394D4D14E56EB4AAE91854C11E |
1E1464D1E973C7D0E602F933D0DAF4A3E39A85848119173B0450C3B86DD08AA8 |
92E9B109CECA3887CA11A90219A0E6BADBA59CD3CCE4F41F79C0F64C0656F724 |
63D562D96545F6B31473E68E2208DFC44603390E136AFD31E395679F8FD609E2 |
D1262AD65855E072BC6CE6A6368A6C7BF39BC494B4CD68611704E1D60F2689B5 |
D885CBC6F2E9F95C9509448FAE96BB7A3B470647A3AC66CA6CFFD61DFB5B1BDC |
CE7AA1009511F960A3C3AD7CDE7415E185C74E42DA6D3583B4EBA473B9462B18 |
AEB7C26CAED0D9359A7DC3DC0137E737D6FEFA4933D32C3A68E1869F6D080793 |
36F2F187363177B22D97DA64142144B46E459481912B16AB082B639C1FFEF087 |
9F7EFA6998747C475C0F03148EB2028A70A81E7EF861C289C461C00DA9161A26 |
7624F04FA20770673B3AA8689C36D8741EB05208EC45CAB9A630A50DCB3DA4FD |
A103CF30A9EDAA1BAB5A14EFF95FFFF55FD452531D0F3BF3CA6320E49B49F828 |
8284066C62D70B1135DB2507A22011A98D89D3096D8E232E839DB57AF56AA84F |
3C08675EB46736513B953191538CC908F1A12493B81758A5F7EAABAFDA246742 |
231368C61BB26B0DF70D47A8F0BEF4876AA51860A056A6F5C31DC0AD40E67D4D |
A9D215548D3C57F4F58904667E85F573F8199EC499679EC909275E66AA7DC2E4 |
13352505939C660C1BF3436E6A6E21829FEDE00417177348C663DD99EB428F81 |
0BC15834DF574133C2EE18C06823369707C36DA08C2F5F8A511C6E243B21A76F |
E905ED9A93D34F3FDDC4D8C8071F7C30B458EF199AC39F98E0C78C31198F81D1 |
A4D36A126028FDCD7DB2D34E3B9145CFB1D8E16DAC1F97497B95EFAB0D89DF13 |
CC892922E099C616431AF8D92EE8B269CC753673997CAD5A72C855895FA4DCD9 |
73E644288D6AB3669AB37BE7F40F0D76CD9AB571CBA6742E72268C139B32B0B7 |
9C149C5E58BC29279AE76A90A4D9E293DD3B2BDA0F610BE34F8B5B6674B44C76 |
F759B366F6F5471E5B212E588ADACA7ADEE8C84847672714B6F86AA0B4F05DCC |
27014A2A845529361E01070517D0CB21264307DFBC9E8F93341D6A2B2897DB44 |
501BB3ADC4B7CB3168936676B76646FBC97EAAC233EE460256962F5F7ED55557 |
293B6857305373B008058B8B9FC5D9C4ADA8C27D11794EFCB411D4B4D14D4820 |
8CF5168CA504AD5BAA138561F12DC5E105CB8D003DC38358F19E8E8E663DA8C3 |
6ACBD43A76CBA47AFDD14AD0AA9BAE599124EFDF06830C3A385B29D58B39D3F2 |
236E6927E5B5C2A0E60761DAA4F0CBC2C11DFFA80CFEE1F94C504D7785E5A065 |
304CF823A161EA44C57E7412A6C14098C4E495D781B7C06F0E3BECB0830F3EF8 |
9C73CEC106234D021D39FCC01600CA9AC136DDBC793345CDB265CB582F8769F7 |
E326ADFBECB3CF9FFEF427C609E6CD9B879B289EA7FA6327615E12F7BEDA0708 |
A43CF906A580200B2E85AF42A3246A664015BF21658134229799C56A5C48C13A |
3859EF7BDFFB7EF4A31FD969D436C02AFEC49A6339BEAE45B3AC3827452A760C |
11C50C10516F89C480E29BA9175B1591FCF2ECB3CF86E348CF864FE10CB24DDE |
7EFBEDF7BDEF7D8F83E77920C11B6FF2C10F7EF085175EB0198F35361E2A9E1F |
9B595474D0E29A204514B73EBC10F8F15836EC6F0C8CA7D13E2A3C0F3432183A |
667F3A3BB68961602BE02950754AA062EB6CD8B0016B44EE3462A4557B2D7392 |
2CDC64645CB56A9597F451E7769F066D2B5B017738F9E493EFBEFB6E25B9153D |
E6D263CE313039DC0C4B30524787FEDFFFFDDFF915FA887C059A268CF9B0DB9A |
5D24AD40F497BFFC65CC9B8C306D71E6CC48784B49CAB40837E4C47DA8036C43 |
138C95D83BE8A083F6DD775FCCE16DB7DDA6A88F3D27AC0493BD68BB11B69BC2 |
0B66C5BC0750C098735E36A902E69BB2E6C18614302D622C97857D8BC5C3E7C6 |
6D1E8C95E1A3E9430B9DF58E9152774C4FD78CD1E1A19E62C768B9544879997C |
6E68B43C3F57F4211F9BCD7210BD0C14B5974943BFA762A186AB20929B8D5694 |
028CF05DA6734E14F6A8976BB97CB6ABA3F30D3140544D23EA751C0788D16667 |
2736218C5DC76F854C883012C3E00117880A9B9B87F6BAA22C4C7FF28C8BB2C3 |
8E6C7309A6693F37D5470E4A90F487A0C5865D7DC5155750F1D899021AD036AE |
AAED5CA8C24D30113BE72A4B942D226C052C10AB88F99CA46FBCED36F0D8AA1C |
BFED9C8613AA9B84B554B5985C37E8128A0E885FDC76EDDAB5825C10FAC04A7A |
9E3E6A0736798C9277AE37A3A3A33232EA608F643B47BCD130D3ECDAD52BCE2C |
962AA3A39570E6FC48C60E6EF36774E3FB9928E5E1985660A28E3C9EC967634B |
BA69BAAA3BF6AD7C39EB171ACD56E88569CFC5DACF4D776F690E32076433030A |
7439F14D79CC3975A422E18910B5A7B1DC5019282C1962B84E2A434108B904C4 |
BA0AC707B98A079188ED339FF90CB60A2684554C74A64D1275E31A05096BD358 |
0676D28DA8509596470134DE17FF24D64B5B5C20492D18C404113DCC55A8F448 |
F2B14DC428E4CB6F61A660D8C22A113A7122A88AE171BB8A9717E87A1E006D4D |
52D6C9A09370742D5A79A6041833572B5F7B13D3E823A9135D3AE551949F104A |
D024A541F47884852176493039CE9BDC6811F2893AD85804DD8CDC72626913B0 |
8329B42FF156AAC1807CDF61871D9E7DF6591BFD212C8F9370E699C4D556B101 |
3CBC33CE388337C72AB0F4655281456F0C8FC67FF1E2679D75D63DF7DC13C4BD |
51211661E240B2BCE31DEF78ECB1C704A792E8A10860FA00EAF39A6BAEC1EFC5 |
A089F9C7353839C4A17CFAD39FBEFDF6DBA195991D6050847A0563FECA57BE82 |
DDAFD48014B017B7E8C195EA88CEC88D338149831F456E180F1452417AFA231F |
F908E43B6606BBE8D65B6FA5278DA1C2512071D8FBDFFFFE7BEFBD976948723B |
B02D1DAD0A1BE86792B09EA21A53054E9DA4EC8A057B0C71E30062305FFFFAD7 |
79D0684E61B1A07BDAFA571205ADB8771BC34914A8C8A61AF8653398D3511C2E |
958B11E1C3E27FFCE3D5DE5C715BAD0CCD86A51AA955B2DDDD5B0606BB7B3A2B |
83A363597C3FE2F49037ED27E2C4C30F81993F77D6C0B63E2C48E0E229A95ADD |
4F79C66F9919DDD8B7A5562C3C8B8531DE984A35524BB367F56EEBEB6F59FD7C |
A43668D18A6F52213ACC1EF63314E465975D26335A02E19F54BDDACFF611A688 |
97C9C875A40250172CDB51B65730483A06F2E2458B1611D64EA9C2BF2A19A7B3 |
C987D292702C9A1AF559C23FE11E1C75D451DFF8C637B067ECF48D8DDA9D28B5 |
B88D5BE31BB40B6935B1D69F3B0AB2228CCB32850AA2C76C628EF1D744BA939E |
D33BA3512967BD62DFE848A1ABE867ABD55AB57B6976DE9279EBFBD6969B66F6 |
421CBD666DB495CF7AF5B0E5A5BD267CE56698754D47BA681A4175A85A5E69D2 |
B31C674BD848B951634CDFEDE8EE4A0D0F0CB8AD20A17EB469BD276516B37FD0 |
C4D219C5CF381A9837AA09957A723938990C2CB3092FED5D76A2C4D10BE32237 |
DC44E17AC93D05B7148CD1EAE30E0CE071734A01BF96B29E74239AA4F909E79D |
B5169FFAD4A71E78E00119E02661E2151488B02013C746A4BC555249042C13C3 |
6D01719354374B494328EFBEFBEE7FFBDBDF284AC4CE48CF495DF3E008626CB4 |
4D44CFCD3B50E8F0B6B49A99FDC50E8646E12CE367DC5F4606F3AF6D124AF93F |
9E9689B531F480A9B64DD21E87482E7EE54B5FFAD239E79C23CD672CA231E689 |
8D55F18967D9ACB0729B589284EB715A04193349721A3767651BE79321650C80 |
F4499899050B16B09281B5FC4433D9FC21AAABE6E3D40A7A9AFA6F599A1CFF4F |
7FFAD377BFFBDD90835FF8C21728CBA8F074015D5E06CF499A4A60212E6095B3 |
A8600495E283983C8B6A1993E3C4ADC293A074946BB54A15FF095F56E4E161D2 |
E542EB65AFA34C3109624E0EAD5712A8C1033EF4D043D7AC59839B3CF2C823C2 |
62503CB1190363EFB009EEB8E30EDB37527F78BE9A2AE5981F991852E3CCDB71 |
4B7CE5E4934F7EF4D1471901C269C790C8E14C330BBFDF6FBFFD5E7EF9657217 |
88F3C4661A51A91BDF1493DE057FB615608296F4F442920ED46B7B2E59B266DD |
BAEDE72D59B379DD95575F73DEE5976170B9627EB05C75A3A97602E3D482C8F9 |
8DDA2939C687A28D61359D853CFCD97AAD998AB4B099D9D1D1572A157263A0DF |
6ABD997293F44160F2996CB551EFC84741A35AB3D155EC1829971AB1D8D26194 |
596F1F49B19B190B8D68CB9C89408DFFF1E35AE4A61220BA096F2EF7947E2D7F |
B0DD09A10E791F2F6E46B9F3CE3BFFF9CF7FB68D032653687F13E4C55A060D46 |
E5E9D84B24E0A3B015C891882AC7624074A6AD5B3589FF60120BD58929F44585 |
7BF8E187FFEE77BF3BFEF8E3AFBBEE3A420E790A70D6B08D4F3AE924BB731AB5 |
03BE1BB98C153F93751ACDDAF2E5E7DD74E39D0B172CD9B8711D8E75D069BC5E |
B3F33EDBF755360F566B850E77742088CAC44CDA7841E846F3966A386E25D31A |
30AD51E36EAE8FA64C67C3943A32A19F2AD4C28AE7CF31A941D7D7D4716255E7 |
39D5FBAA1D16CBCDDBF295C6EA4EC8BD84CDC3E6252C3A67773E93A48DB4BE36 |
0E4ECD187067D8DC3001219619C638FAE8A39F78E20946A7F8211E9B516865BB |
A654C037DD74D3E5975FCED2A8302E64C620EEBCF34E11BB088020CF404474C6 |
CAF0531571A71265D0A63C8C856493ABA153C446D636184AA63D370DE4CE0107 |
1CF0F8E38F63B24441A70A5D2C181D5CE81EAC044415A113346A28C469444B37 |
408612D38F91ABB16E6891D6525BE0B9CC04F0EB764C9F00139BF6993721B08B |
3C647885DB6EBB0D0FD28CD1C2B5FB595275898C82CE226F081FEBB7BFFDAD89 |
3193781706E1D5C2F6CA2BAF3CFFFCF34DE231F3CC086FC51FE0DD62D256AF5E |
ADE60752752CD7511E9AB6D754D97A0506DB18D3B83A586BDC9F65242C647493 |
EE5D840D0B522804AF4C4B253855D4C4F160A2307BCC97330EC6302073BD5C8E |
3605CC008C8DBDB2F3A06D404A3ABE9268AA23D4E131711A65C71D77A4838241 |
C2F9E6A11045B34865955357FF2EFED3C4F8036194E895CA8309A7284362B371 |
DED68C2FCDB235ABC8F044B363129E3BAA347E5118EFA81CDF847EA3D9699CD9 |
F9CE91EAC8CE33664127546AE5AE6C777146D7FAAD9BFBC246269569A5539BAA |
959E422E4867203BE18756EAB5060480E7C29B69F8269F4B576B4D27AE3185F6 |
CD7A5EA3D54A1B276607364D5830F14969E0C4C569627661624C153F44F22B0C |
D2AEB778D95232C33351223F46D5B482F5325AC6B00A54020D6B61F7A6E1309F |
6A3FCBF02242828083871E7AE8B8E38EE36CEFB1C71E4F3DF514A3682CB65678 |
A30D2864177013C12BC3D18C2F4392C014748BB1130D86004FDADFF82FAD6A66 |
BB8D450ED52657DB1492D845ECF345C142942F4D55F54FA38783ED8DE306AB9A |
6139D19BF362689DEBAFBF3EF4D35EA619A41ADD3D33B6AD1F72C2ECCC6C57B5 |
3EF2A56FDE71F22967CCDCAD5098975DBF7970EE7685A1814A2EED39D574D3D4 |
9CB4C9A48C3F6846D79970AB49B5526953A8E61B33ABB5D16CA6590FE1688F74 |
BBCE0814C76BB83395D54EF3CA61D2F2CF24A6B649388B84E909C677B0B6CF91 |
DAD5701B504A13364B82553593C67F6910A820905DCE689D480B485D6A938C09 |
1F790CCE64ACBCD273766DCC85175EF88D6F7C83D121ACA848705445AE10073B |
0790AB13476B975D7681D360AB0411FB29C92103CD195F573795256BE760EC40 |
102D50E97E22E2882FA0101455422A6EAFCDE4225D400EECD39FFEF47DF7DD37 |
1158A8E70A1483FFE28B320CED8514140B7B147A91EE2F1E073B80A869FC46E5 |
C59A0A0E5E714551F37033A9B704DD17A546BCA49901771525970DEAB1C7CFF3 |
4C974E0001D95232269407B5CB2D6CF8BAFA2E380907A71C023DCB2EE661B36B |
D2E3E1E4C341C4F1A67927971716007E60F708CE189792A625CD0E0D8C197ABC |
E999679E092949BDCE0931562645FBDC8C873AF31D99A7B021CA26C11BEBA00A |
E7CCD378F0C107E3A431D98F8BEFB8FDF67C3EDB552C0C0CC07C4E076EBA526D |
CC9CB77070D3DA4224A7AA0B162E1C181EA995C899D545C64ABB2A9FE7C83379 |
C74464BCCDD00F4D3C60FCC383B3D984420B636DD2D1DDD1ACF83D1DB3FAB6F5 |
2FDC6E0E4E1605B1CC440E9899AA8E42B15C29BBB1AA8BFEEA780DBF1E95E1C2 |
1CF14C50874A3529C79DE18705E3741BB7C7710BB1A5D2324E23805B9C1EAD96 |
3BBBBB07CAE54C3E370267D435CD56AB64C27F7DD7C1BF79F28951C8CA66AB19 |
EDA8DC50A9E6C79960D704A95801A72061A27F62A378F816FB40A4BD14364AB5 |
D1E84A654B99965F8988120BD97C5FBD8A352B668B477EE4A30F7FF751EE2BD2 |
29504B65E35225C7382C2376CC185E263AB6CD0691AE8C971A0B22F47A15B044 |
900D0EA0FF802D7AEEB9E7E22CC34CBCF8E28B455B684B275ECC5FDA484C8C93 |
3173262C48324A654CAD4F2825837C36CE96594F397F426011D32BA253BBA5A3 |
8DA7D159168841370C128651559953FB1E79E491F7DC730F03EC2CD5A397CCBA |
1866E838212CC561D1A98C24156B44F3601A6E0BFB2CDA794E36CCCC4817E6E6 |
F0DF2810D25F1BDD586E0C35DD16B689091D662A5CF933B62467B858FFB5DF4E |
49223B95A9F725F780B03B9496CC06CA6FE48712865E326CACE79E7B8E8900BA |
40CC7CE132B8A6587763759DC241C3C9A58E537C8B6B81438D3B10BB632C60C7 |
6BBB45E946C965B121F267DE91728A156C73E6CC21A197E2D2C6AA42617980B1 |
A03736E72DFE09AD76CA29A79884A08A5B81BB7062F95A1B2065E2C72E29B6AF |
91E3288F996F4A0FA04D28DBA5ABE28F253A6E9A10C744A4BEBC64EA3379FF82 |
3232D14293534917CA5FCCEAB1C71EFBF0C30F2B3CD09600268703DD1AE95AA9 |
4937691CAB0433F59C9D23B14BE5A426B989E50B52C3F1E6F21EA69162EE046E |
5BDEDF6E5CA3ECB8CD7245C4008944ECFDD356AE0DABE54B5FFA12031BB4DFE9 |
4953533A71893DBF2BBE0219349A468E8486B38DBCD029B5F98CEEBAEBAEB3CF |
3E9B9245200061DC289D71D9C73FFE712C1946850B208E478607BFF295BB6EB8 |
E1FACF5E78119F9BCBA6D9BD0AC37EFCE7BFDCB2655B3E5EC12A5CF6A8EAA642 |
E4205169DC4577DE79E7F2CF9E8B11456DDC62911E9A98B72A340E543A147B3E |
571E1D8982BC7E90CBA49B8D7AC6EAFFA897126AEFF2CB2FBFE4A28BA3E8482A |
353018E18D431A79C542B55C21E619FFCB416784E19C54B61884D9A0B178E69C |
254B9694AAB535FF782515AF60A1BB73B85CA9B69AF556D0D9D3DD373080CD0D |
5F67D5A6CD9DB96C2A9FADFBADBED172DA357527A644C680231D1C46CD979C58 |
017BAE1FBB2F0D3F52C06E10561BF5CE54B69131E9C0CCEE9CD93F3CDCC8A683 |
4CBABFBFAFE0E5475A51F69194D7C6F2EC5DF39A88B0B734143016EEACB3CEC2 |
B72837C9A5357D3F8F7F5E01EB08B303A0FAA189108D6E960D11E205943FD8F9 |
A79F7EFA6DB7DD66A79F24124F3AE9A4071E7840495C3BEC612B09064509ADB0 |
EB7AA560EC66DEF63EB735B1DE54E47D8CFCD9142E8C42E1CEACC3E169259495 |
202686C1ED1614FC937899C4F7E01B3FDA0361DA099C46588F779B891A166274 |
38E5D8B92D033718BF6F393059C2943B66E68613283F25D87181AC2B6732F6D9 |
30A136E33F15CDB2ADF089A919FCCC84B72A542597C4344EFF4A08472C0746C2 |
DA6B280EDC90491F02483106CE0F3D138DCDD6538EB11871F933F71669E81957 |
C483BFF8C52FC2F4534C55C458E43150076C6E4166C258B34C3B480D6BA93F44 |
28CA7DA3B00C3DFA4915F05407662A0FCF265DD20B3265A2036057647236ED50 |
83493AD24FFA5C6E5C4104B9E77866542767C39E75209934DD7EFBEDA124C8D8 |
407D836771421812C1A4B1029286A78D14B0959FC041046E28462AC865DB5CB5 |
8534ED6F8968C256D2F61755AE63135648FD2B5AABBC32EF29262993981A42D1 |
ABD19B7A3E1A4BD9F311C44198F1D0532502EC79E69F60721E73CC31B7DC720B |
362106803D4CA9A48CA00241B660155498179F71C6198F3CF208834B2AE8FAC0 |
073EF0831FFC80928839A1F7BEF7BDD82A0B162C58BB76ED760BE7A573F99E39 |
0B33D99C0983534F3C7664DBA6622EFDF5FFF3431DD7FE81A1A8743EEA5558EF |
9931D6900A7F828CA3570115F2C9B8CC696C7D234D9B8AD5B0136501CBA38149 |
173BBAB259AFBF7F533A13EEB5E72E2B57BE60128C02279C9179F6668F0B5A1D |
BFE5D34AEAECE81CA94411F262BE50AB560A5EAA804BFC00527156BED0AC46D8 |
AB05C5CE421CEDAF34A3B6B125BFB66C871DD7BEBA61D0AF2F9C3DEFE56D9B21 |
A167173BCBAD869B8ADA096F18199DD73BB36F78B0EC873D9DC5FE4A4C4A0309 |
1806582497FB215ADC48EEA4B23185137CF120AC556B5DD97CA55987DCDD7EC6 |
DC5787B678B98E6DB5C8D69CD9D9B3B53CCCAC046C08D2FB617E22AB28CEBAD1 |
F7E5A90F62C2AEDE5819DC78E38D175E78A17D48FF7F84A0A752C03A11B63C91 |
7416A686011BCCBF88A9695DD94DE3F122F82E29D218022107755B8D228F867D |
4C741060AB9D7FFEF9420CF0AFEC5BCCE34F8944875B85D10237A811A7225B61 |
DCFC03BFDFB2658BED6AEBF850432B784E94861D2054C45149C0E8B25603DB37 |
ED64DC101BCD6F193FD2C1DC8E41A47D5326ED3A6EE004BE6946EAA83576F629 |
97585A421387479E7345BCC83490EF3675B0CB2EBBE07A92FD31836B8B7162CB |
55F666E2524FF239D3C6224938742A6BC0EC5A7C63519599D86DD86DB7DD9E7D |
F6592761B2140ED74CAA8029DF19A1A5BB2D1BCA26C6E4AAD3CAFE7CFC61D251 |
154A5C0F26FC8488613F511A470AFCF2E6DC94EF78C73B7EFDEB5FAF58B10227 |
0717C391B7E5AF31FF731DFD544056FD9E5602DE029B9EF9212EAD931417A999 |
2E2E7EE31BDF0887ECA8A38EFAF6B7BF4DE4DB5403E04DC440E624DCFA2C39E0 |
BAF267FAA676BEC724D93B7E7DF6ECD9F827EFC3340FAD36319CF19C9BF19D58 |
A4876CBD280D4D9348D8EFA942085C1766B06C60B619DF55224CB8CCF42037A1 |
6C9453A82C00FF2AB39AF3EC24ED9939572CB460876031297283313E8F7F42B1 |
C10CD264B681426DB9230A21EE55BBB10713D27055E93404497B0C29603B00C0 |
FE3F0F3DF4D089279E78CA29A77CED6B5FE3F6B6BFC20F6E88C3FCBEF7BD0FF7 |
DC79E79DA3D358AF74F7CE19A936EFBAF3CB1BB76E36CDEAFC9E826954EE78F0 |
FF44A0B35C664677E735D75C3377DE0228E06CA168FC3A9F8EFB908E9B31B160 |
460ECB16C9A668E19CA879BA1FCBE258D266331D954633164A6EA53682BF67D3 |
590606249EB0CFF1674C1D660376F359679E994EA5B3E974A51AE98C80ADA81C |
E385A6D34D158CD7E9A63DE3B4FCDAAC6257A7E70595121E9A2DE4BD54A60E13 |
CE35471C71C4EFFFF0873FFDF52F8B162E2E576BA3A552AD519B3977EEEA2D9B |
97CCEACD158AFFD8F06A2B3050BC9994371CEF35D3A2DE329E33C69D628228FC |
E065D241D387079C76DC66B5D6D3D93D383A34BF63E6760B173DF9D25F22D9DC |
5128576AADA0598B85E0C9279F7CDD75D72977CE10B48915B0ACC968E325F4D6 |
5841A861FE5EFDC25FD7672A05CC7203D28D7157304D2803548949F885D88110 |
65B8123B04969C5832B84C8AF1E002FC869CD58A039B18E5C0D20F25B3580943 |
6580EFAAD0808D19D8D511A7E690430EF9DEF7BE471F94702D1271F3D4B81619 |
9C6B35B6A2ABCAA203929F10FA8B3B5C7DF5D5679F7D3659D85482451750AC5B |
3C6266BC7D6F12A3B052AB4001BBA1E746B9895816A5023715AF4BE0B82D2F68 |
45A5BE810942278062F68CD7663329F8D416E0945733A9889348CFC59FFDF7DF |
FFE9A79F666D859C783593E023F6D8638F55AB564128E1F59D0925128C7C5C7B |
EDB5B008190C604812221A33A3321F95C3A8360466D64452015B55398CA66240 |
9005902C0C58D3DD56DE9B4E18D1E7182E9593CA28E916E085D57AC5B1481695 |
AE6018106B8C9B93FB89325A349076DAA6CD039EE62C8D3328924DC01A593C08 |
9372EAA9A742C1DB8D9EA463B88AAC1122E289B061926690E06DAA87B201162D |
329B50891207D6280660E72D1499618371BC320F1E69ED5847248E085560D335 |
E77B71239AF158033399152232018582DB8C2F3521E0519429BD64C912AC1A71 |
837620A8ADE112E5456871B619CB33A6358D5F8A25809B95550D2CCE616F1013 |
7332435A857147581E724556F0EEB85E08038A548A42A155299A69DFB0705CDD |
5B79CC087AD261B3D3D86ED258908110B1B71386C675C135D84B8C93E3A5885A |
5023AFFDF6DB0F8384CCCDA59CE172CDA4B2956AEDED6F7F7B269DDA63979D4B |
43FDCFBCBCB577E68CBFBFF0DC50DF96FFB8F7DE62315F2AD767CF99E337EBD8 |
EAAA32202F5804C51C89C2CE104529C775424C78D535CD0CD4492E8631852656 |
A36E3106452F5AB2B06FEB3631A1126843E012036BD1B66CFA1071A9C8178D4E |
E2C0C870219FF5ABF5D9C50E1F7E9509E798426706C2BA51CC66B2F0979BF574 |
CACD43941853AE5406EA91E1BF796B849E2B053E660D7A7A6379A433B2AB72AD |
30D8DAA817A1BF4D982F760C954BAD4CECFD84C1D85EF3C6EC33CF84D41FF57A |
132E4FC6F1C2A63FAB6B86D70A3B33B9A56F58B67160E0E9B57FDFE6D7162F5A |
7CCA49A75E75CB0D6CFFC54E35D45251CCC37B2DD26ED789657263A95015764B |
70FFAF28E030E97AA46A63990526E919430703A3A5EF8EA7EFB4D34E0C7499A4 |
8E5FF149FCFC96B7BCE577BFFB9D0A14891BC507DAE2F7BFFFBD9A4930CF6292 |
BAF99B6FBE194AD1C400D5356BD6182BB024583B73C344891A0B6F2582580A13 |
D810904284592861477402E70163C36F704E55462FACA5490815DA3A77B9497B |
1B228F6AADAA03A3AFE599444445C6539CC5E77F99CE8FE0F35EE0A49CA03E76 |
1D73D518003BD1D1BE543B4E92FBB6E2FEB0767C2EB4FADF705DF0C1356F78C3 |
1B56AF5EAD523DC1A6E421E035D571528E10A1A90C0088C4972813BB5536D52D |
2E8621820BE04F5E7FFDF5AA8CA0189F32078CFF27C00FDF842DF3F2CB2FDB7F |
56AB268A30BB00979B12B370EEB9E7C2215665115F9E017112A9F0C5942B85B4 |
C2B95AB972A57C6B13FB6A620B7B5D0A78A2A9C205A05EFCEE77BFFBD18F7E94 |
F116AE1073BDCAFCD1F363C24F8809137BA8621199F4B95424380C175D7491C2 |
A4EC0F418F0DF6D433CF3C437B992A991550AC49DD7BEFBD9F7AEA2901BE7001 |
96E09BDFFC26B4113BCF30BF72D34D375D7AE9A534CAF0CB7DF7DD17F3E64EA0 |
2C36E3F108F63827D695CA3EB5493A75B7A54B97E2BCE1D1B698A3A091309276 |
6F0325DA9EB149E2DB2AB3711282307C859690B226AC4F637D9493147AB5F5DE |
20D8554D08A8741975A0BA65B4A08D5B805940A63626056129F5259625810A25 |
58ED523A93D8C2CC3B1C74D0418CA88F5972851CBCCDBEA1D1771DFA8157B70E |
1DF82F6FFFDE7FFFC8AF95BD4669FFBD770B9BB546BDEA7AE942B17370A0EFA7 |
3FFD29CBF9702B52E2E159733ABCBA1FE27FD57A0BB3D1BF7563AD5CC37497D3 |
71C82EC42352F013464BF5D9B3E61F75F427EEBAEB8B0AD0D1665294658CF5AC |
2336E012F907B1E7865114B0DB4B777B996C33EC70D26ED0E82A74D56B954226 |
D5DD99AFD7AB9B4606E1A375B8A9D1B085D585B931BF1035E8AD07CDAE7C44C0 |
D4571DDD75F192575E5D974A656A7EA315D56C4602B7EC448E5A3388EA8B5AC6 |
6883160B99563CBC5AB59E0A4DC6441B18BADCADD58BA93CDCA9B57D5BFBC266 |
39ED0C57A3F7AD5B36DF01071C00110C773332B39A3E63CED19E8F69A6B9E79B |
2D9FAD4253560B4BAEFBFF960296052FC25AFCC0B213EE495A81AC62E096E048 |
54D06C836624EB9440A56EC0D3F7DC734FB86BB62E6170911621EFA6F02FBBD5 |
5152A968CAFED9584689609EDCD8301F7FFEF39F5306721A79B4E92A70E72BF5 |
C390180F3B0D0572CFF1006AFB8949778CDEC0B49C300ECE87AEF205E335502C |
E71DE20DC34C2A2B5FC876256DC61B9BE39333E6244D42258814B252E28F617C |
1AD976A69CE21AFB045AECBAEBAEE39F18C4A5972FB2429338369000905A1C06 |
E60723C48A085CCC214180D39D1012DE4C9503B639CCA050B1B73074968D7322 |
880D96C341BF10FF9559243E6B7A0F641C542F552761B3A2D0C78EA169C6A61C |
181F143F79BC54C7E68C07D04F736026D5D3320208A70A1276787A93AA7CD509 |
27B4CF24A11E56DDD18C9D0684A5A240A672EDC650B8F3B265CB5E7CF14585F4 |
790169C9648BD0ACA1ADCA32651BFE268B9BCA469AA00DEF672BE0B65F3A5370 |
4DD81F6659A495D90189BE26CF2DCF9230EADC8226414ADB5BCA1E180D323A61 |
B6FEC667C71D77C446FFF8C73FCEA58105033B03CF85E68390F59376CE6250C1 |
31205A8D6EB444AA622AFCA710E96C092777968AD96666B03D601D4215CE0B09 |
6F927E3822DF171C5DC89A306ED171E081070E8C947B3AB2D5E1FE94EB98FC8C |
4DD5D4FE877CE4E77FFC6BA655C938AD547D68DF5D7728F56D7AE985E7B094EB |
376CC29EC14160E52EBC0AE21CA3616CF73EDFE4BCDCEC6C71AE6B3A9BE596F1 |
5BF0177FF3D55366CCEF1EDAFA9209625AABC87170E7CEDD6EDBB6B5F42C4DD2 |
74C4495A53F36036EB5192321D8BC5D8F08FCED9AE3BECB0FE955776E89DD715 |
A6FC9151B8162DD398DF31B790CF0C0DF7551A955426E3A532D546BDCF6FEEBD |
C7EE70D337F50FE48C3BA77736D762564FF7FAC17E2CF65D5FBCE3ACF33ED591 |
CE979AD542263FD28AD44F3334418CE18E3AB9C707C84B43EF9B2C0E4B0D0AD8 |
494739E2566FA1AB103ACD6A65CE9C05ABB6AE87CDB5A1325C0D4C57B1D072A2 |
AD08B9245C274F8D6B41A019D18DD44C18E4ACD20356D29387FC7FCB03568987 |
0AF6E880DA75833CA4F2C3B8972858943696078CBF1E7FFCF177DC71079B6861 |
3B6963DB405FFD938D2C2940548BC55A73FC0053008E29FC3C35069654E48657 |
A0C846A5EDB0C30E14F26AC82DD82CF51959D67958546D75CB2DB7C02B50F5B0 |
5248548A6A2544934282C8F1AC36B5AD585E39C16B02BCD50E70C19CE059786B |
72BDE15698226A102FEE38F4C20B2F18AB7B158727CC1AF96D083E67E2805602 |
5F815E2FE78472DB2E5DD975D75D71736953CCD285175E78FAE9A7E367D24F9A |
84948252E5B2CB2E83CB4B3B86E5490AEE3266C6B0D9E40A98628B3762296A1B |
0440AD0D45BA84EF7FE52B5FF9E4273FC982271B1F0FB70F5E20FC4EBB7D26BF |
CB8E492C38113E8DB3A9E02D77F3FF3B084BA82EDAA4F2F004F669258D75B91E |
02B0C88652E8782AAE519E43AC076C55CA65DC072F88D721F26D526A565B3FD9 |
586B7C6BB7DD767BEEB9E7D47C8D23271A9E3075EE2A06408C55871D8EE7A1D5 |
23DC8403994B2E65C9CB3CAB47EF4485CD090C2D4A6A292AB9BF7C0AAD5DDB23 |
E7693FE28823FEF8C73F3244260E7749314EAFAC22EC2B82E68898A3E36B8399 |
C56960127C190F5E2AEE1B8FDD25DA3976FB503E9E3721DC71521096768ED2C9 |
ECB3EB5B9D9B09C1A02287C7C010BD9B7C1E7BEC31E8D199F3B773EAC35E63B4 |
BB98DF3854FBFB687AF65E07BF32E477B586EFB9EDF270B4DCEDD6C3CA603A76 |
D8204A72F9224C90A80D51BC4B19348EAA3C5341332CA4F28BBB7B76CBE71687 |
F5A2D348A54D2A931BAD555FFDC9F7BF64C2F5B97CC38D0AA08394570CC2AAC2 |
AD5C7495608DE1D4BC94DFF2538ECB3856A93494CFE5CE3EF58C87EEFD8F19E9 |
BC53AE7A7E6346AAA3335F181CEDAF9A5A3A0A1B3B90647E54B9E48D84AD08FA |
65CC7673E6366A0DBF1E45E476DB65F7975E7C3603199B8F16D44B67B68D0C16 |
52B9B25F8B40CFD15EF170C002D7336EFC5F63FA4B25FCA5504807B0275C0F0A |
38A8357ABB66D44786B69BB568AFBDF6FEC6CF7FE0E78A5B1AE53097AE559AA1 |
7564E4264636597DAC285FB5005114B4E52F5EB2047E12565FAE216BB2FF4703 |
F49F54C09A64B564BDF6DA6B3FF399CF98A4CACE24C00E6315809804212C528B |
564C7BAE1E0C02129A241186BF422060635070730C92511405F27A1516B24FAE |
63F1A7DAA06B938421F3F107525D68539A9B7C0B921892124436B77C8CAF7FFD |
EBC71C730CE7966F17C6E58EA9F12D32190F8872734EAA1515D485868650F2DF |
543ADEB1AD31CE702782CA7BF092E1317B49E33B4E0BEBA729252840F0CBA38E |
3AEAD1471FB5AB1FDB1430C5BE9BB03F86315D8130AAF687B009CCE7B9E79E7B |
DF7DF731142A8E49F6D4B2E31F34BE9589602122B98D29F9A9F2A94DA8F57524 |
270941ABED818C23C62419ADB54B89A051882C0827FB047117E28F7DEC630F3E |
F8E055575DB57CF9720E681A0F12C28ED01BB5F8509F1C41C3C527A028BF3DE3 |
D3E478707F58850CA56EBFFDF6D00476AF0F928D7142F7DB6FBF430E3904669D |
189B69B7DAAD7927BDBFD89245FA3A0DEEC3CE71E22B6F7EF39B57AF5E0DC1ED |
8C2FBF365685CCEB3244A6FAD0B60D933A7171535010287D88CFBBDFFD6EE812 |
3E9705CA6269C0C030996BD7AEE54E80568365F0873FFC01AF43FB4CA872A593 |
99E552029B6A95FA9B6E250F399D7E45C0DADC77937020D3B8E6EF65B4A90284 |
7B9DEBC5F3206C059590285C3006ED67D5CB518FCA869007A3C3CC45A1F5F3B3 |
9FFD0C77C3C26142701CF01642BFE3D13423F059B06001B97369FCAA9C093761 |
793E2316B05FE1F7B324949936F106E31A5CC9A809F66D61E19E3FFBAF97DDFA |
FC6271F8EB8F9C6D52D58E9C5B2DF5B44CBF38ADECC2E5EEB9E69C4FDEF28515 |
0F5C78FDAD7BBC656933D34AE57AABD55C676B3882C3504C078E0ED41F7FF8B7 |
47EF7AEB9C413327B5B0DEB961CB607EA6970F5B038B76D9FBE9179FD97EFE92 |
2D7DDBF299EC687968D71D96BEEB9DFFFAC8830F653369F8B98D66CD3750F069 |
E386F5C0AF64C352CD74655C5818AF0E8F42EA64F3E926846BB9E97A4E23CA52 |
7BB834E5876ECBCF3B9956D8E84D43F1B8237ECB9D3B737D69A46F74A4B3A393 |
2278B8349A8BADB754261D75498AFA0D8F410AC4C82F3675860AA99608088878 |
08EA5E88035A4F9BE2ECD3CEFFC53EEF5CD433B3305CD9D8E5E4263D2FE986B3 |
F2972F5DBFE2DD4E58EEEE34A3556C95AE5A3062EA460CBB8C4EC1C484ACA3C8 |
1AF3CE935ECBB2536D6A8EB6A21A869DB85836F455291E1E5B1A67E4DF208297 |
6796A18E30C10FEA9F0CEFA940514283A758CD214C92A15060D25835A8D205B2 |
41A93F08D1A2794A01C2321E865E5476811F70FC71047040585363771F927093 |
C343BF4B4BC04037E750D556ACCA11631795114F715B09565BCF6C0A58452608 |
1C6641369D752A54E8089C323ACDC60A4238495F48F67054A8B29534E70DE3C6 |
074CDD422640E851CD9F74D249F09DE82EAB6F848C242D74F4D38F7FFCE3C30E |
3B0C7FA641C4B14221DD74D34D9B376FF6E2D608545D7435DAF40A7F50AC8F65 |
368C3F4C5306C065668E5062D4CE6B0A53DD4641D77693A9140FD17DB2434959 |
4E83D16E576E271554DF6C2CD2FC6914AACD146DEFAD49AF77ADBEAD26319665 |
DFD8E952528548F7FF3F2AE0C4EF29D9D508DC8894148422E39AE38F3F1E4625 |
6D089BCA9B93AF540AE354501BD82AB8C9BEFBEE8B4DC2405698343FA0B52EBB |
9B368A2C153675666718FB9766B294BF824BF6A233BD74C10517DC78E38D4494 |
E0E9175F7C3136AD94A80DCFA6F3CD1761A99F1A898B164E4F94DF0309421C29 |
1137DCFCCC16BFED6D6F5BBA74296603EE352F6385037D235C0C830F0A15EFF8 |
C31FFE10A3852AC5C524C0C29F54798FB566673AB2C5F2E09838CC4E3A784A13 |
18464FAD7A7E76E75E85D492A7FEF8989B5E67C24A04C9F27B5ACE6B2465F676 |
F2D35105E6E3BF5AFBD60316A59CB898A919F11C5463BDE324AE4898FCDC6FCC |
C65F998FFF6B7A76DADFDA3433F38B9D606B97E78FD472AD886CD2CFC78669B9 |
34D295C79B14CA8383D974C60B0D344260FCB4930EBCC8D5A89956AE981B29D7 |
30D78B162EEC2B8F6E1A1A49A5DD8CE341B615BA3BFA874AA9F8890B7245D70F |
6677759687465A81DFB360C9531B5F86B7DF8C42E87009A2F352F7A33EC15104 |
CB319891345C936A8DC2917D90F00A82403279AFFC0E0389E908251E38D919BF |
FBCDEA7DDFD49DF29AA6BACDA46637E2FD36F18379A8D7CC86E747DEB6DF769E |
89F845D2B97AAD39944D8DC977ED37B63E3449024E0A408ACD0E0BB9133A699A |
38484679ADC6F2C6F2A729C7250F5951A2F41F234F52C0F249646487E35BADEB |
3E32BB85DE10968AC54B047EB2ADAA508AB256196D964FE958BCE24ACAD21865 |
E37666F46856AA1BB75D73253A04F5F316B44D4F179F815D4C659759ABFB2A95 |
1CA3231226EA6AA34ECC74DC29A318D2200696E91BC76A2820378F6610050B5F |
5F5465A145806312D26956A22B26AF9E1C6D29B0D7B4851D09116474A79D76A2 |
5DC098893690AD1BF85F512ADA2AB08D23A64D2149D829DD2844B400FA52A57E |
D252507B8E4B359196590A124711321AEE38EE0909A8E2285BEFF2302BAB77FF |
FDF79F7EFAE9D285D8F436A37DDBFD4D9CA850FF25E6BFED62B289D7CB3A0B62 |
0679E82DAEA2ED075327BDDE5CF8541F6594B5A1599C3D5624100F9ED6E2EEBB |
EFFEFCF3CF5F74D145B7DF7E3B7515BE48E4A1EDBBF32B6AFA2622377DB47D65 |
8AE11AD62DE0DDAFB9E69A4B2EB9844768D9B265EBD6ADC3B368594F9C2E1E1E |
C5AB291A6C5CBA339E49A36D18F604AA00831F76B293433CD16C92D96B2C3490 |
7C4DFCFC9EF7BC077F65EF2991D23100804132F703F58CF7C2357859D8B89801 |
16C4639F60EA56AF5E8D998186662763CA32E68D703D5E934637E670E5CA95B3 |
16A5FBA018FD744416645A7CDD8C57305174B0C1334F824013077832AED34AEF |
70D2A76E7ACB7BDE5B4FF9A3950D737BBACB43954C9C59303157061D7F461D36 |
8C54467E35E7BE6B3A6698FAACC22E6B2A2FEE34AFA73C38DCAAA7765DB6DB1F |
5E7A6646A6586D543DE36433998146759E03CF369376DC20A2A60AE34A5FA7D9 |
822636F5B0D54C791BFD46219B1EAE3773855C6450FAADA12A8CE9C832EBE99E |
E1D49AE9D0E92F8D2CF672854C36688543ADD6BA56B9E1A6E62C5AB46EDD3F7C |
33E608E29ED12AC791CA42B158C8E515E8A3FFA4F60638EC77DE792736097B85 |
5119A4C2967167D7C3CA19E7FFF73B3EB463E8CEF18AC3E5C1DEAEECE40C7741 |
A6E85736BCF4C496AB577CC8A9435C2C0ECDEA7C7EB6EF0FC99A170930175DC1 |
30FE1E8A845DC838B12DAB37B91C12CA3D784EB018E8DED9544D76009C21714A |
090274746CDDF1CD7CCC78275B3F48F1E3EBD84BF22B145BB21B81E00E0F3CF0 |
00BCB7360E83B62A0F9B9FD5E6A56A5974EBD2F40ADEBA56BB58391BD411BBEC |
B2CB473EF211D8D37445080FA29450985D0DE0E959A97322EFD046B23191E740 |
BFB7535454900CAAF197A227A2F34D5D20EF45B3CAB4BDFD6A7421E8D5A87ADB |
2404FE6C1FA232C8D7C29C544BBC9A4D00398994B9B650B3131B1A87569A2F40 |
140FE12A1CCD34E8651B952AF4AC948480FE0409CBA73149249DDF9A2A474B77 |
848DEB598915C4FD7948A2E4C4A5A812CD8C9F13A9480B00BA0733006765AAF1 |
937556FF1469ED54D75322133AFB6FFFF66F7FF9CB5F683E73BFAA0A50AEF0FF |
96023649350E11CB9C643B6E66122394FA86E6F039E79C73DF7DF7919DD14E5C |
B909A10CC120F690B8E22491D62FD9AA92D87D7B48D4CDB8C9873FFCE19FFDEC |
67505434E1F5BEA155FEA43E4EA2DD603A4DCAC6C4892B63694A3B6CC0DB8ADE |
160B8D1FB0DBD55CCC58296D5DCF2E66049F6BA2D4100C1B09DEF677BEF31DDC |
01DBEC90430EB9F2CA2B596EF8E28B2FC2F7C572E3DD172F5E8CB93AF6D863E9 |
A541EEF0D0D2C05AB162054FAF9C001D5D4614699213CED6F41B701B71C6236F |
D44FE7325DB5C660C48FE58C51CC538CD23C8F0A48D2E9A14ACF899FBEAB91DB |
21DB31B388091C189DD5D1B3A91ABD8813BD691015E9461D15A0247C6F7E7AE8 |
B9FFFCED439F99592F2CE8ED6EE536BEB0A19531CE6E73B7DFFFC0037EFEEB5F |
D4033F1614F99EAEEE72A91496AA11E01B47D20FDCA0957671B348D934C33A5E |
A9ABA3737379D4ED28BE3A5AEE888C96545FA59676A35E49D8E69E1341B4B06C |
8B66CE4E8D94719F46D3CFCC9EB5A1565A3B3CB860E1E2F5EB5F35F9AC68AB29 |
9778EA19B9A1B38B39BFFBEEBB094826FD0813584C164600B4667374A8DA72EB |
1DF33A8F3FF65BB5E6826C7AAF7C4FA36FDB70AE589BF4B0542372E2B58DC135 |
5FBFFF988E0E53DAE66292536ED16FBD4617AC2C95E00B843590989DABA646E6 |
D2A6145FB6BCB21BF54C75BAA57E6CF12B463F33BE9B9E6EE25A5DBCC47525FD |
C12225DA8BD22BD8B1CB972FBFFCF2CBB1DFE81AB27E8F9A1B5B5A250FF28019 |
F3172099C7DCA6FB203AEC95575E31E3D94BE401E31A984D77DD75174188744C |
591CAFEC35352E868731C06487D9CA0268080D2A29DD8ACEC01E7BEC813348DC |
A8A62BB4BA6B689F98B858DCBE400A980299315AC256EC4A6E1C7F280BE1784C |
ECBE6378B7DE7AEBC5175F2CF4B19482B18C0F2FE94B68E401DBC1469A93ACB0 |
E6B6D861871D2086884C615461527D1026A4FCB67D61A68D1287E3093CF5C413 |
4E38E137BFF90D949FEAB1E858D8DBCBB19898A6B93F7F80A8A5BE696B02E159 |
BD60ED23A14D394D190353F40CDEE2FE6420A3F89BF47A95C7912895A911963F |
719753AB61230ACE3E6908FAF5A23AF90A8C22F0BD08911053153BACB1EB8678 |
A34C92318D7CA998D6472C3C340EA8FFDC84E84AC6BECDD4214C13BBBA2AACC2 |
9BF0372C1D51EB721B42C28FD4BF89ED39668CB8B568CCAA445255E96D3751CC |
87B76295302E26E4505CE2AA9EE20CE3F0BCF18D6FC4FAAE5AB58A268BD0C512 |
7F41D24759A4F93419DFF4A637915BF4D0430F65D13CCE271119F82E26FCC413 |
4FE4F663DD3CE304B886751D7C4DC521594477D717FFFDA4D38F8DD02B199376 |
6796AA8DB973F35BFAB7197F0CA38B616026152EEAC4D2CFEFDD5CED3AF8F44B |
82DEF91B47861A61B398CFCDAEE7A37D1AAD960F77369D72A302DDA63FA7DEF5 |
F0FDEF5D3052EC0EBCA2375285DF98EA4D43E80C6F78C30E3BAFDFB4BEBF5662 |
8B85AC8900AD9D8E9B755359C7CB60724227E524B53A5D1DA395F240A3829D77 |
E8473FF487E7FEF2D4B3CF556218573E9FAB06CD4ABDB5E76E4B57FD6D1536F4 |
AE0B17BF71C19297FFFEF7FEC1A1234E3BF5B6871E28BB4E3A972F0D0E87858C |
603E4B972EC52EC211B3831F7243F973A4E3E34E5F34AA14249B9B5EB8D97F35 |
84304FE78FB8E2C76B4A2FD7B299F48CB0674B61D2F33273B07B7EEFDC2F5F73 |
887123A7B0A3683266FEC0D02678E08CB8D2C4145A5E8295CD2428076C452B48 |
0D77B8D800B1F1386086BE14F46A935D61C237C05A17C81CDC4A34678E556C63 |
8740A5F54D02ECBFEAAAABE05F42AAE06E9C37A681705B3812D467767686F14B |
7A75071F7CF0534F3DC59EDCF4F0A8A5043EA5DEB2C165BC8CB5B3B2573CAB35 |
88ED5B1330CB383CEFC62A7C132B60426525FADA729AB6BBC9AAFA238F3CF23F |
FFF33F49D8A9E09C10243CCB61C25542B2E13041412B27451785D16F4A0FD199 |
E14A76FC643B5A6D457C05AB43E39B9D0E14D1248A7372054C5C1901239A7DD6 |
8171A99CF1346C1CBDB1005DD29D2C6861328C101E9B657AD28F931041A876ED |
8E3BEE38EBACB33000CC29C41F04342B94B8C6FF3C08CB8B7BE090678A7A97F1 |
04313D71B40A3890413315779FA59025BC76AA660CF8CA15575C71D34D373121 |
2FEE0E3BCED9A608E94192D504538491336588FBE06E77DE7927C9496C5A8C89 |
67F2F52A60297EE10065540A34681BE0DCCAE484C230E0A17EFFFBDF9756E6B1 |
E429B263326D4FA4C54DCC88321F6CC340CB9AA0505634924947D54DF6CBDA46 |
BD4ADD68E5C82EA17EB2FB4C4F14617C47685CCC30E776D1A2455093CF3CF30C |
94968DBDB2078035C50251E84BE0CA5BC50D317E1C7876CDE386C17BEDB5D75E |
B445CE39E71C76CBC12624612CBEF2B9CF7D0E03C09E640A9CA79774457C2ECB |
FF8985A10CE2212A7AF35A6EC538F572056678ECEDB52AE99C694628A134D757 |
CDD2F1F45DF6DAF1F9BFAC3641FAFA1BEEB8F4C2CF2DEA9A996996ABD56DEB0D |
F44F065AB7D5C4466D659D488AB78266902A1453E579DED294593552369D6641 |
901FDD541DED82228EFECF196ED4E7747635EBB510DE6A2ADDD16CA55C0F6651 |
1ADA778CF3D9857E2EFB15CFB8053898BE9FE9ED59B965235EB26746D16DB9A5 |
5A35CC78A572FD84138EFDD5CF1EDFB47133A4FBD2CE99CD7A6373A3F48665BB |
FFF2A5E7292CB0847E6A6C1D71DB486955AAD47CE96C94D1A087A046E8CCBBB3 |
088D6E288903A1E142374C174CA7BBFDC8F03F3266F68CDC36E808CF64B6B953 |
7044E77C535D929D3358DFEAF7CC983118A9DEF9F9CE4DF5F2984FA9D0227FC0 |
B360695D7FFDF5471C718449EA38B84B85F370C7778155FCD6068228F26CACC4 |
9C0C476E03FA5222F4505A344C18CE79D2B581C38469C74D98625D8BB294BB45 |
56B2EA7D29CAE8BDD16F7EF39BDF0C056CBF5D2B69A1463B9ECA86F005DAC7AC |
9FC49F6EB8E186152B56906698981E9398B03C385CD6B6760B14F8F44AA98055 |
7A84A384476303B03C49CD0F580781BFE254C6B9FFB42A1D74B4EDDE44B2A1E5 |
24C89C72129244E68C9563A56CC72FB104E40EE2B7202D8F3BEEB87BEEB98725 |
A6A294B0894A6C2ADC712168BB14849A9C9E10C7BA64C9123C49948D4C1FDA7A |
D796598AB013C3C65D355568C5491A8CDBB61BEFB0E79E7B3EF7DC735A27C68D |
B9BAB6446E03CDB67DA856B90C147911943486C806492F4F7DB78DD391961466 |
436C4D133F9C7ADAC2302D2FB9E41236479A4A61E34A313CF0BDB0512EBBECB2 |
F3CF3F1F2BCAE434DE14BF6762C3CEB5B72912F37A3E36FA9A475D89061D399C |
0D3AE51025F813FB3662C6F0570652789C680C32A9C31811D5B08D75B27316D4 |
1F263663D9478FC245B6243590DA2A4CBA9A0A5FF37AEA2746F9546C67924E1B |
3A42123D8A94D8C2C2367128DD2606188404E11991C1418A7FCE9B4D4F8DCF3E |
FBEC4350DBC73FFE711E691A67982EFC15AA973242DCB37C04B3C294B64CDFB4 |
110CF140E5F29DF51AB66EAB6766F7E0C0D68ECE5C69B4D6D90977AA629264B9 |
C200988A4B2FBAE9CAAB2EF35B65F85F4D3F4220074ED34B19BF6E72F96CDA75 |
62551AC55BA18D3185BDD19F7A46C2E1B409AEBAF4BC2FDEF2B54DB5FE030E3C |
E0A5954F979B0D27866BCD801C6834E00167BC5457AB15E5838DEB19B897914F |
8C8D603C77D91B767AF96F2FA5A33E485EC9401B671ABDC575C3037ECB04AED3 |
4A394395C6B21D97AC7B659D1B9A19B97CBA565D347B3E1EF1C250BF29E66322 |
722FAC374BCD5A269F87BDD66AC6DE4FEC7C777576418BB701186D48BC922CCC |
35F0F0BA7847AFA35E6FF6F6CCEE1F5A0F253EB373E940F9F949CF8B5B308EEF |
B4A27E5191D7EC999C97CE349C2D26B1AB1952A24146B8A2EC578A72FA52A48F |
A5C0A5E78045E1050CFF9088EA95575E512ACD86E74848CA915ABE7CF9934F3E |
F9D7BFFE95682365EBA480DB4058C6AA543449BF42F2023164C2583ADE058629 |
C41D732B447153D4B3478EE04E9C73956BBE46B5111708A853BB58C0D8EA9B4F |
9FD89D563C890AA4433CD210E741F6927E33E264B4C979D4CE9C7A514817BBD4 |
C52478141A4376829C6164D6C8F0FE9C49B9790C5AA809378F6A5BA6C04672E1 |
AD0F3DF450F82A44A77EE73BDFF9D8C73EA6F24BFAB7848EDBC189680B9D79E6 |
99F7DF7FBF491A834358635E687AE0F130EB1E78E001AA19767467BADE4C0841 |
2BAF6E170E4D5308EF597DE21C8B9B97E1089E2EBC00269A13AAB24B1B133B8D |
82BFF6DA6B2FBEF8621E4E6A205C7CFBEDB79F7BEEB9DA97DAF19C7A762DC4EB |
DF7AEBADB0DA48AB349542659A9098EAFF11324DFDC13D0AEB89B10B913F10B3 |
27A400AED1DEFD7F57C078DCDE7BEFFDC4134FF00E782243AF5C26EEA13677D6 |
6E69A54A414D7890F48E549F6A7B3348E7913C96720A7BFDFDEF7FFF430F3D24 |
F01773309C79EEE0894C5EF271F7DB6FBF3FFDE94FF7DD771F8C954F7FFAD357 |
5D7595CD7F69E79E151CD38BD842CA1604824DDA90786385EFE4C488694B4133 |
BC0E368932643CE4D0BE78C4F1C71F4F1E2E139B1DEC127FDA69A7C97CA1BC68 |
6BC58A3B93FFC4AE7930966F140DAC10B46A269DEA6E058D5CB6E9B9C16824BE |
BA3C6F54284D35FE8A4C93663DED9A7CC64041F7CEE9DCD85782AEEC5838B7BC |
764B3E97CDA5BC7AA5DC0A5A98BB8CE760967B23F6CBDE72BEBFD958385C1F58 |
BC5D75E366335A378B3BA232B6A0D52CE60B8D72B5E6B7663A50BA4E4FAC1433 |
06EE2F1CD648417B6E1460AC362A3B167B7BDD8253F547FDE646535D6DCA9488 |
9942BEBF529D33BB67EBB6C1C5F3E70C6DEB87E65E9C8FD8055AE9549FDFDC66 |
02AAFAAC9BAA077E54740429548C0227F0B9474786D3A9B46FC2B1363B569702 |
9314A7D1D81230275A88FA825AB0D6647DCF2F9A54D9AFF7E666F5D7464C66F2 |
40153E1DC694B2DE2227BFBE54336E6B5690ED0BEA70F27DBB1C4351473A2790 |
30AC5927D2D0C6274B2FE244C0E686D326FCC1E1871FFEA31FFD889DC2196BB4 |
DD3563C180B11F644633F345BD2261A850A22AC2253329EEAFBBEE3A988026E1 |
7852C3798CE4031FF8C0E38F3FCE30E179E79DF7D5AF7E951790F9875486D097 |
D8A244C9D8205646D11451A3FA541F718C93749BB65EB0A14CF82704F29D77DE |
49042BAE676052CDA68CD5D81B13C817A74F856388DDAE52603C9DB8748643F0 |
575CCCF0950DF25583F6F7BEF7BDB06648142A63CE26733649BF2301CAC444CB |
280BC306E262E2F5045BB949631BE519858276ADAE33919059BC783169B44C9C |
F6C3774471826171F6B99F6C68B8B1723036CF9993905E71465AE35B70F0F78C |
C46A6704E36984F1C3B265CBA021687110768F6761242FBDF412FE6AD3825376 |
6BBFAAA59D4816B5476DD21611A272D67818B4BF191755EBB1A950CD72F15542 |
8041B2B580B829DA40E78C98D1B9B1791E6CF638C7AA2877C7F700B0E142133F |
7620A10D6DA87A09C676F8BE61C24BC7AFE31ABC3E9686484B5C86D19E7EFAE9 |
37DD74138BD0C4E0833FA987B1CE861BB7CFC25CC929A4B452A723C2389945E3 |
A32FBDF4D22BAFBC92C7D5667C14A1152D003AAC0C19A904DE2E36A0F00D121A |
3C4E38C6C03824CF2D06C64996374F3033C98CB04F48786BC637E5DE79E79DB1 |
0FB997B858175D74D1CD37DF4C61C70ADD975F7E792C449C0062D903FB9E7BEE |
C15410CFC2B7C67D60D55161E3292FBEF8A2B8E444038EA7B09C97D1020E8627 |
45FC246D5579749769B95216885747875C68E1E8267137A4E38E3BEE6B5F7DB0 |
23978D1B58FA1DE96C572B6C042D78C4E942AE65A25E814E100506CB2325D802 |
BD1D79B7545BE41552AD3ABCDBEE7477BE39DA91E9AC36B0D8B051329566152E |
EE92454BFCBE7E3CB35C2DED306BBB8D7D5B61A63D5DEFAFE5331131D9F048BD |
D10C7369B790DDDC370ADD3F2F9D9BDD4A43BF0D9AE6DC9D767C116BE1A4DC5C |
6EB05A0A634D3C16D8A8D5A07A5B7E339BC936FCE8ADFC88C1213E1761904967 |
6005CB0CC74230EF3E668834A6D4B4D37CC2F1EDEB234C68B512F596883CA1A8 |
D1442A939E356FEEE60DEB8D978F061AF8C60DA8A54AD55A696008068909C234 |
FCF694D7747DE3846E26DD9D2B9686FBF17B2C4E3107332333522AE73ABB6BE5 |
8A13362852DA7A0AA9BA4460088284DB2237B61F62CB1CA65D79B8747068B888 |
C30B06FA33CF3C432C08A5CD92254BB0B19DA45EB98DE0825F877C80018173FA |
D8638F3DFFFCF37877EA45DBA2A5493431EF6B2C1A3B2A051C81534E39055602 |
D5A74948E8F8757EF18A2BAEC009E2B4E09F279D74125CC7DD77DFFD2F7FF98B |
195FB2CC6BCC148DE4692EC8BA250A9D8DA1D47308B77DF6D9674F3EF9E4471F |
7DB48DEFDA9E6121BDF15C4C080D14B233493FEEB8E38E34CE8456E3B6A497E5 |
705EF06595C06EBFFDF6471D75D4F5D75FAFE709644FD1A6A88BD0A14E523C6E |
0F94B3CF8804AB2914AFB37DF9B6A40525AF58D698A287785ABE7C391C7C322B |
F1976EDC428E1628C51F06A98CAFE815E5A5B17B89CE15076CF748B8E5965BF0 |
14936441B8CF9CA9EB80A9D2C8F0AC3486490A79C53C472003137B61D22C9380 |
3D556A4DCC6DDB3B381CDF1A73AAF1E8C0F018532D292928B2595A45541B6C7B |
8039C7217CF2C927696629CDC919A3A3DF6696C29D3DFBECB3D57ADA998CAD9E |
DB5A268510A49C19FC950158E96C6E591D78352A507A468246B88489A782A136 |
C57938FFA246C2D8F06AEC6534916F4B482B2EBDEC62BC23440CA412E927A1AA |
615FE34AECB4050B16C03A61191584082EDEB061035EE481071EC066C0CD7119 |
742D1E87AF3FF5D453307430AA75EBD67DE8431FC200585ACD6D7CD6596789B7 |
55BCD62C07B0C36E26A198C7BC61244296C1D558B972254C408658281728DD04 |
7D8FCCD9D1B84676B7DD5E78FE6F9908420D4561F28ED71191F4BA4DE8813088 |
8A833D68C2E880C0C2AAB68285BD33B2E5C68EB99ECE46E03583742E35DB8D14 |
03DCDEEE593386CBA567FBD72DC8751E73ECB1FFF5AD471BB5A6F9FF587B0F70 |
CBCAF26CF85D65F77DCA9C339D3230D2040CFEB6200A8928516330B1204AB160 |
45404054B022360615A4D81021894010F9E3C767024413490C2A1A839F28D261 |
1818A6CF9CBAEB6ADFFDAEFBACDBF7EC3367D45CDFBAE69AEB9C7DD65EE52D4F |
BD9FFB89B25A50E927E90E136D0ED2D64879DF7DF77BFC91472DE2CC377125F8 |
F2555FBDE07DE796FA69238A4757AEFE3F5B9E844D510B4AF84AD724E56ABD6F |
52B1D3049E6F0B02F33519A796D23283D76E13C5B114B029A20B2EDC34F91F35 |
631056882D7EE7BA850E0D4FCDD8F653ABF6DE1BC30E99F58ED3DEFEF5AF7DAD |
EE572CF96816E1AEA57250B2E5C2FD761CD981B763EBF54D366B9B6BE49E7D29 |
CCB75842918727C79B767B51CFEA0CC3F6A6928A949CC6092EBA815C9752C355 |
C06E70C814D8052FAF70E37A203E03AF86358345ABACB9EAA0B84F19C0A73825 |
171529E1D480D5E4C69F254B29BA0EB81B930B8FB00939F13CC7A5EE11AD3AAD |
643A5D74D514B872219F69C1EA2CFA2A194984AAA91CDC9FDFA75CCB40B02437 |
0147D3D92D32A4CA27924BEA96CF4CEE17C2ACE81653D14ACEE30AD0DFD8F5AC |
A1FAC0073EF0E94F7F5A6026426184FFF05C482789F229919914A4F025004F8F |
AE40B91BF222ECCD959203A9082A95673DEB59F7DF7F3F5789C02FAEC5C4C02C |
1E202B5AF291A3405C33E2C9E210D3D3E71570CE6B5FFBDADB6FBF5DBDE7B4FE |
F033AC8A7FFEE77FC6DCC36E8269A34E82D4BEAA4D72493E85CE5D78B09F3CBE |
FBD9CF7E16CE1C9B841033CC1589EF32F12C9350AC175A43AE4A932D22F4AFAB |
7755C8BF078B3E73086EF45EDC481C3D469F5C266A55AD89502D2D38B43D877E |
CFB5B79AF9816B4A40B8A00602AF30328C5D0B122F1093A0CB32B65803A0EA46 |
0E1443B27C179E067D8CA173E3D5AE6DEB2E3C1112B984B4DA96F8E4E4934FBE |
F6DA6B21D3F1D8471C7104CC7FD64A31BBCC8813818BA6B0AC8F3DF658D6E672 |
EE98E1C3837DF7BBDF65BF2646D49971BFECB2CB48C54E5B84AB1DB7F8C10F7E |
C00A51C6034C9E20307923454C13FECA7ED5F8962C1BBE1D197FC8ABC5C665EF |
78C73B2EBFFC72E5087132EEA20884CB71A6D8D29C204B73AABF7EBF5C0A4D9C |
C0CDADD87CAD37E68561AD028536DBEB28459DF4A356B7FBE7473EEFB9871CFA |
EB7FBB6B72E3FA7D4C75AFDA523B479D7868A439313BBD33996A56862A438D7E |
16619FEF9ADAD5ED77970E8F47B3D1F0F0E883939BA6CA95ADA63B323EB67DF3 |
B69EC92A4375AF51EB45FD5D3B67EA3080FC465C0D6702D3F56CEB86A89F64E5 |
60FBEC54AF90E6247F1E1B199D9CCA3B01FB15BC826D6D177A54C096CD3F7F55 |
D757231104A4D66229AAC50EE5265D8BC7625FDADDA52B566CDDBE159EAE094B |
E3F54632DD3671543359DD84555BCD15D998BC1F42CCF5D3C42F079E7595BDAE |
C926927826E71EA91A6FCA78CD469385E3AF7EF5AB6FFA871B43DFEE8D566457 |
E92DB7DC72C209276055101960F28831960A991C842E36BB43C32C54C02E132D |
ABD4F0578AD31B6FBC11BB403A8969115ADE2E47ECCB5EF6B2FFF5BFFE17B721 |
911F0CEC8BA990874800FDF93D7F2878797DF836575D7515AB89B4C1E98CE2FA |
EF7CE73BBFF4A52FA9917CE0B47BA1FE537F52CA1995EDBA72437A648000CACD |
2E317394E63C8F0C27A865AFAE4CEE39D6730BBD250A3FE3F08EC993E6107DF5 |
AB5F3DE79C73C839484F80CE2ECD38551BE12B78F7ABAFBEFADDEF7EB7E7C663 |
F140ACA8D198AAF889216F868E212C30850C76338EC10427EF472F84D10CBC27 |
C6FD8A2BAE20391CA7CD25A31858405C5B6E1ACF35ACDCD174516D302EF09C98 |
1BFA9D6E1B635338E2B81764E89D77DE49EA73BCA35B67C66970895A7E2F17B4 |
D6166E871FE876D35E6110292B1A6840C4435C9E75D659F8F994534EB9E1861B |
5C3A0BB5F818783529666525FD829475B7CF43231167C214D8B0610345394D30 |
DCEB231FF9C8E73EF739DA0D34458952D9B469930C404EB178E094B01C20B472 |
E348AAC155F5B64A9EB0A3BEF39DEF60AED7AF5F3F5041CE1166EC94A93219C8 |
2AACE42391B9825B459D2A4411BA7091F010DF8D080BB5F499B4C33958819C5F |
329C0F406094A9120F3E4302AE39C23F9148047B950A9B76D5ADB7DE8A3F4141 |
624DE2649187E03A7830165B73D3BAED9E38B00C9F240E4D37CE87B980BDAAAC |
2749A0B29CA99BEF88CF396EC71C73CC1D77DCB1706D98025BDB1C1EC2644D4F |
4D0D351BB16D6E1457213733681153F24378B456BD51E2C03D8EE2154B1AFD56 |
A79E999571704038BC14FAAEDFEB9856C3349AE5E1D84BDA713F2D7BF87F269A |
CD2CAE1A0E56343E32DE9BED8E8D2D7F78DBD3DBC3EC89B89D7B80B67B71CBC4 |
5BA3E4CACB2EF9E8FBCF5F39325AE9C4A5B1D187B76C84A21BADD4E10CCE1808 |
B5EA8E288FBBE6185E93B3D6ECDAB1B31FF76B8DD199D6AC6DCD084FD8AE43DB |
F6C1D6EA9A797953EC4A2C6FCCCE9EAB30161E0CE470D8B9561935094D189B74 |
C9EA1513DB36C371F5DBFDE526AC59DB25AE1BBF1178419206963D1BFE7000CD |
9BF8516875AEDFCECC2E13B76C80C18397FB7062D572B539D4CD55FBF2E5CB26 |
77EEA8944A7ED9FA4FD0FD5A6CDA140C3D92AE87DB59EE9D5980F6D720B846AA |
37BF9B35332FECFE0BA30DC290A02157D212E7453A49C6815D6A462A08065758 |
A6ACECCF805BC59E28B4FFF00C6BD6ACC15EA0F52966241C471F7DF45D77DD45 |
794B2D23D3817A1D4F7BFCF1C7E339050BA51C7033E27842B6BFA3FB3190DCE4 |
75F02DBC32BDF9D7BCE635FFF44FFFA40E572CA3672A5ACFA69E2EA6F0715D51 |
469416398FA9C299C32666199F63839343D42512B8F0C20B593E0341318737A1 |
67C641E11B320427D784D3C93427EF4D96280AF4A2D14AE6A28B0579A7EBA3A7 |
A76E9010971922D06996B37C510A602DAA392E3EE1603134441B9F607453444E |
3E991F449D31C32171E626CFC8F1A4EC3577A95A5DBAA9E23D80C8688551F6E1 |
F531CA9C06A955FAF1344DB85EC579229C8837BF0C7A602F713A69AFB94A7AE1 |
C118039E8175E82C16C4879C32FCCF96D10C8393A380349F14DFF8C1D66C14C5 |
CD540622DFF08B7E41320B8E3AEAA89FFEF4A7B475682AD2EC50F52AD9C7DCA8 |
388697FD91948C77ABAE7129FE89CA12E6028C062C036232F1277E5DF87CB380 |
FD47BE2623662499635A08377271D7F8E1B5AF7DED2F7FF9CB071E78209BDF40 |
D438C936E242D9CD90A1721A55FBECB30F7319B8F2F5D75FCF8D4A1781611518 |
C2B8C2CF7EF633D90ADC3E620DE33B1276C0724C326131C46D722A4ABCCB4927 |
9DF4AD6F7D4B4AC5CD9B487E2902A606E92CC0E344674E4F0E9AC5E5EA1CED7E |
D4EBFAB6097A56B6582ABF09E720B3BA815D054D929683B056AE64EDA9343378 |
A66706CDBD9360D4244D531EAA37A34E8AF3BD925FAA56A67AB35BFA3B7C13AE |
5AB67A3BD475AF6B1B1445A65CA94F9B6C53D6DBD89FA995AAB87D278BC366B3 |
13645D93B4A6BA4BFC60556508BF6E9C9D5ABD6AAF5D3B26FA513C6BFA7EB936 |
63D25E3F67760C4B78B5FDF65D83BD69DBD20D2F99989A0CAB9538E9639D85E5 |
52D2EB873E14A0EF5684AB28F37F1082E6A453118A1827809BDBA8B5DA336BD7 |
EEFBF4634F8E19F327ABF69ADEBC156E38E4572D4B4B990D337B790328DB9C31 |
FF87039205EBA36BEBA4FD20F51FAC85D3DD6E14949A4BC7DBF01A33DBD2D6FA |
CFB1DDF22CBE17DE021EFC95575E79F6D96753F6322E95168DBA17EA5DFDAA19 |
67C617EB012B4D512EE3C08B8CD3AF1DE32638982E2BC8A488EEB96554963320 |
8524A6A8F90439A4F3FD8637BCE1DBDFFE36638774EE21B2D4E8D66504931251 |
C1159E8D85F2AEA6304EB7471EDC41F25625914CE1E0D1EEC7BD18E5955783C7 |
C393E0E2871E7AE8FDF7DF7FD14517414DBA602E53F8BE7C2FEE383EC669A79D |
76DD75D7A9820B87C0D80CCE316C40794B267C4A603BA0071C7000A4366416B3 |
D9260FD313B885FF2126F094129AB8D30F7FF8432C4DFA16C46A335E2FFC9E9B |
D4A44F8CC93EF7DC73BFF18D6FB09003CFC759E7A4AA2489EE173B019802B38E |
4F582AAA09F60B166F9936981BD10A1A8775C5143536B81D7623633BA2201695 |
891BC371BD9C3D705913E88B0541D6305C47A5F4AA1C10572AAF26E83C71714C |
CE2F16E276DD2055FA63D10885BEF07CC643A0A8785941FE682AE905D9E2C32D |
46A49AA725EB3B2D72DDBD44E5C1102E96111521277A0000EFD64EB846AEBB93 |
B9676800B152D6388453A6E08BC6F072E8545DE0B29DB8B92253187CF8D30B5E |
F082871E7A087B43711DA9524E991BA1C5DD7105C63C9883E0EA12584C91768D |
8642FDB4E83FFDE94F3392C62A405CF9AAABAEC25FEFB9E71E2CB6E73FFFF9EC |
97255E2DE5DBA8745D2758997B06F0A9A1614713868A9114C30EB3CE42086AB5 |
D01897432F11F0BB005AFED9D8F8381CCA9267A036E071D74B956178F0ED3674 |
6AB954B6A8E624AD972BA343C3FD899D2BC6C6D25D536371B2CA9883AB2BCABE |
D9DADE32EA2F85CE6B47ED69331B9AF2E8C8582F8EB6B5B6F89566EA07B39D76 |
25A846704D479A8FB6763DDD6F57AD2AAD6C897BE530881BD51DD3AD5A6082D8 |
3CA3BE647D7BA25AA91EF3D297FEE4AE9FF6D3AC6DD2CDADE9AC54EE477D3F4F |
9456CB15965C77DBEDAC54ED45FDDA50B3D3B24B25288552C0EA824C09BBE7E6 |
287B3E709137BFF9CD9087B06569C8C2BA6BD66BFDE92988F0B5C3CD787AB669 |
AC5D1258F3C5B27AD5ACBF6E43E47D9345B0FB31B0B93EC63668E52AD9F64F34 |
D96F7CDBEA78470A2BC3AF2C59D26BCD5CF8C98F7F69DDBAE1E612951B30BDC5 |
9052965329291F21BAA4C5E48664A9F63BF60E59EE716081EDB7DF7EF058A880 |
59F04390A66C65AF6097649DAE4C7FD5CB0A64AA6DA89F07961CB120A6E82084 |
FFB18C712FD511F064BE9470B20338705E5F1BD9CC27BBC5436277509EE3FA37 |
DC70C3AB5EF52A533016F08D4CEEF8F15B64C8812E902324D25CB91C5C007848 |
765BA10320DF92D711B284D86CD620402DBEE73DEFF9DBBFFD5B16079F7EFAE9 |
F006714D5C0A263BDF08E7E382840D6155CFF5C495EC8374A6EAA26C65DD1807 |
82A145A5A999E3249938097B39F17C61852EF12D5C13EAD3CDF3634C0F3BEC30 |
081752B6EA43B57038E69863EEBCF34EB8EA9FFDEC67393A74C4DD9319EBE000 |
519E2A2AA2E6B549D1AD889A80E0856BAEB9066684DB6684D75433064642084A |
5C6C03437D624CE974A679EB2E46ABF015865C244C99BDC087A41AA7F6FDF8C7 |
3F0EC1AD8B0F04543D6F2E37EF26C8315BB80EFCB6DD3E8FB2ECEE8157F8C007 |
3EB06EDD3A3A85787D2C0BFCC0D123AB8E8C38FCCA56D51C19A5758DE36552EB |
D04B8092C04EE6E6D97FFFFDB1C8DEF8C6379E77DE798CAFD2FFC06E8735C0D5 |
89D717444E8D29F5E20A2B310CCBADCE44C611471C71EFBDF77EFDEB5FBFECB2 |
CB18ED906BEE3945754A41E1A6B8B5AA7A589BC8EEB0DAED748E8520130A9D29 |
22F20FB8F00AC5E759FF80EF721740D9E395C94240E18569C5C57FF4A31FF135 |
F14582BC7435D62A704C08B052ED0AEECB07738B91041363944C6005229F496F |
C91C957840D92DD4356D597C6CF76FB91447117CA2D6CC6C35B46AB9562A37CA |
55ACE0CC7665B5B8212FCF0A574D580E4B61DCA958CD12BDA0B97ABC9354928E |
AD3BC25F4C10C570E44AE54AA907311DDB478DD3A465A252B9D683051394EC88 |
371B8FB5279E8ABBA390C2F591C94E2BAA95B7F4DA49E0A5FD6CB4541A8BBCB0 |
D9787476626973A45CAE6E9B9ADA9E74CBF5DA647BAE23B597992889421FD65E |
0C153E1BC336F257AFD967EBF62D51A7E38741DA8F1882A6352681EB96C9FDE1 |
07EB732013E457CD6109CB7EDAEA8D7966EF4A2DEA76FE74EF7D9EDCF8D4B26A |
D8EEC6155BBA64A3D0560F990C4E4D025F374EAB78A234EB5BAE1483E72C6536 |
36FD5439DBD84FB75BADEC75C352E67B4116A791DDBAC46F13C44E343B45AE02 |
4BCC41B081C742B9A44CE7801CC022C7BE83B0D250B0D7023E67B7793511C241 |
2300B7639887E7B31864E148064587A5AC206E33F381C7DC80B8147CBC7FFFF7 |
7F979948AC0FC1CF10082CC42276840B551141D991984A7889F7DD779F2960CC |
4C16B046068FA7BEBA7C06C5CC4920415143E7818122BCEC05175C80DDCAB0A8 |
A03FB21B781115D4D0191BA85A14653421D04A8C9202CC14E12846AA0443C680 |
60CFCE159A7250B0B7F10EAC1F5717238CCE59679DF5F9CF7F9E74FC50A25CE2 |
3C59B537B896C84507EC3297BE4A9D8A094CC5D8B10F0C1D2642D88D037C200C |
8411C8C021D756F9AC8BED92E582A54691CAD4375706C1B74C55322DCAA02E3F |
24A014DF2586C5E404A182202D56F6C3E951D19B29AC3C771B7395244E5F2028 |
2D169BBB3D3716469E3DA7D2CE2F1A606064F0762C28DAEDF3900E972153DA7A |
18C94B2FBDF4E28B2F86F2536E090B82094B3C15B3417811CCAF48425491AC74 |
382D09176A81AB3DEF79CFFB977FF9177C2E51450388D97405ABB9A2984F7AE1 |
0B5F08779016006E01B54D675DFDE35CA9814F04B9FCD6B7BE058FC41489B181 |
B8BDEFF445760B0DB95171293CEAAF7EF52B6C0301EB8805A3E5CEA6BCC42864 |
4E6B6EF174AA73254609BFE26A3FFEF18F8578C77AFBEE77BF4B8B136762C031 |
6277DF7D372D2D2FA70063888F5639C6106610EE082BF37BDFFB9E1B3A66D8F9 |
E69B6FC6B7700203517C5416C463103014B045CE39E71C5555724CF016B838DD |
1A3E3F5F3071DAD5D91A92219B33EA6027964B5E92667152836D1D94FCA857AB |
59750EDFD7C6A5FDC040A9469D86C9563497859DEEB357EC559F9CA942C7FB59 |
3F894C92750C947150F12BB65B12E13F590CE59C95C34E924C745A1D93F4BCEA |
F672BA35EDD4A36CBCB164476BD21B1A9A30FDAD33DD914A58F7C2655DAFE3A5 |
3BB25EB55C6F3487B74C4D4E65FDA9342D57F22885C942ABB69266A54EC4E9CE |
D9767368E819871CB4E1A927B66DDA54AE56FAED4E2908A324AECDEFDC2556A3 |
3F4A01AB3C0F73040F81A1601B7D29994A6296A5E6D091B1646A177CDFD192D7 |
89B2A60931804D3F2C9B141649DB24ED3C0A1D546AD50C464A1AC1ECF132883C |
6CCE304AB79A682B866964EC81A9C909EB3087397A2BEBE5BD7A1885E29C62B1 |
BDF5AD6FFDCC673E030314BBC6E4B5820CDE2E54C09EC3A2658A748CEC0F8E0C |
269744981008F0CC145262460F8B0A6E097E86997BF6D9670FB42A125E929EA8 |
29786179D301C0CA40B502E93669100BE1A59A284A15A572C53AA9830E315FC7 |
CC8F6EF210710D9F96704BE14E54044845C3740F814D6494749B88F367D9CA54 |
D814957A5321CFB5EFF03FE5038617D751D1E68B5FFC62080ACA0D4232198A27 |
669BA8146FB1058A1161C527E3AB546F70AEE156D3F960000D8636CC6D9CF68A |
57BC62FDFAF57050F0641C083A281407D4B87461053CE340733A93A287E50025 |
A10E7E912549A608D6F1EB8CE305F90AA6DC812274B3111A325314A767452F07 |
051C08CDC7FF2ABE5403BBDD1E5C19DAF32A5CE12DB8E0B8B6A8F0948413270B |
979752D182F651F1739404B7A3227753B3D2317A0002978C130AE6AFEF7FFFFB |
B1A98C03EB38E594536EBCF146FC153BED965B6E814DE092E852078B828A6FEA |
B6DED48AC7E2C3B7941B6634C2E4160C16314BEB9483A127CA98BF1B3A1E2833 |
70298D8484A2534E624B6D788D83F62D5BB6B93010F1B72892264EB8852C2BAE |
C5CD2C118C2A9CACF407D7EDDAB56B69B5C858C139FFF88FFF8887F9D4A73E05 |
F3F6DFFEEDDFF045B6F29611C3D0911BD663BF3C1101B2BE93402D3E3C09CCC9 |
C52DAB42F5577C546A08D991CCBB5F75D555679E79A60BF1E33A61FB1D966A6C |
7AFA29B88D63F53AD4F08AF1A59B366DAC42C6A5493FCDB08BC66B43A5D4EBF6 |
66567AD52CF06B5EB63A2BEFE755970441D78B27B35E3931BDA8572D55866BCD |
89E91D23E5E1FDF7DE0FFBEE91D6B6A81F25265E39B64F36DCB8FB8907CCC8F0 |
86A99D4B8DED48581F1ADAD69EDE81F12F59777BACD698E9B7EB263051BCCFDE |
CF583FB1637D6BAA9F076CB5F182FC45FD6272FA491696CA5E18C03CB0E5B426 |
F5F2E46B5AAC224D2586F7FEFBEFFFA315702530FD38482D242D815982D14BD8 |
4E3E1ECBCCEACC5B05399BB36459C4998F9F6DABA69A0D04D8C5D0EAB6E33C2E |
5DAF84496AE9B3922C2732F46CA41AFF6F8D92E92CDDE9998992D9EEF9BB3052 |
36D65031DD099B07F2E0F1670916B06F22939A3431D1EFA60F4B05EB873D72C8 |
82C0054999EE15740B02D5AA8589BB9DA50F887054F53925153F3185F1CAEDE6 |
52BFC545A76152BC512078F35B7F7A05FF149FCAED21418C950293D2DC94C07C |
1196BC534AAB8C45958A8C35B2DF06AE40363197C15E0DE629A9DEF18E775C79 |
E5951CC00F7EF083B08F25737865EE2921763D87127140C64A40B92FA5B80B4D |
843DF40260B60E8F84EDCCA1833FB6A8027639CC3876E4C4E053AA2882B14D3F |
6FD84E174A076D8A534F3DF5AEBBEE6234831E123EA77DC1E496B68D8B2C5878 |
D09F3085832FD0B28AC3A8AE88C275096224B6CC828A759C497F5AE072759DE3 |
15F6E001FB4E1378F9F74256B3CC0E0FECAA1FCEABEBB7D124C499E444952EA1 |
0A570458D84256827160D3F9A48FAE93ADA6CE0CBC93FA4ABC685EDE6087F7C5 |
6AC66313C8F6F18F7F1CE6365F4497E5EB08DE4C25C1BF62FA5EF292977CFBDB |
DFA6B1E2E632156330F3A1DD6E0FF0CC69652A1C045E8D0D94588426B6135194 |
C88AA2294DDF5A58B9CC212DD721F4A3571007BA3D15DC15E22D20C362F84499 |
72AE1606B5DCE5075715A60C24DAADB7DEFAFDEF7F9F196B1AF58A96F3CA5FF9 |
CA57DEF39EF71027C201C1CB72CAD4E191C3A255A1F28FDD3E274F26A8822DAD |
58BCEE0E0293204F3DF5142FF2EE77BFFB861B6EE8F73A2BC7976DDFBA75DFE5 |
2BB66EDB1AE41A65BFBDF782FB3B3B31E5C7E9587378E7C4B6657845138ED5AA |
FB9787F6CF2AF57E34D19B99C83AB5D072A78C0E0D57FCD2AE1D3B5B597B456D |
59AB33BBD1CC2C1F5ADE8962A882E7FCF931FF70C7F736A6DD5AA53E6641C2DE |
E6B803DF7A479A04CD72DED7A1840D5049824ED25D36BA7253AFB53D8DFBBE81 |
3668158FEF73064D118A4CE16397FC52D887A9902BE0001A2EB3D06D39BE9CA9 |
830F3EF8A1871EDA830DBDDB230BAD3550CEEF6CE3E4B6D5845F35FE5E266D1A |
6F8981CB9BD60C6942706F534F4C1EB1B70A7B6E76724AB07ED485EAC43F6E4B |
A8A3B23D2D4BC3720B8E8D4961876E4FCDB62C9B819F1C5412AF63515A360D90 |
17DE047E8C8BA5F1487384C820975A475E8ABBF25DBF5F5AC10D1FAA5894BB55 |
0241EFAEA01D91C02E57B30A0A241918FC13A3962BD35C49ABEA5693DBE53405 |
7030B32E94A512CF824032B4CBC58C27C187DC1D8CD5C91F80AD79DE79E7519A |
B1FC928E0461281C0A61189552E4876EB11337B571DA8173FB53D39BDC1AE668 |
BBC93E9527294E2EFEDD81438871EA9D97BEF4A5F7DC730FD4DFA20A58834EB7 |
92BE822BDC5D55C4E116F7105353D4F3ECB443D837F1C69C3C0CD65FFDD55FDD |
7EFBED642726029636FB620ACFE43E3E2ECBCA6E4659C5F0C0F5648A526B97F1 |
CBCC8FEE425B6779DB09B7F649D5C6C42A331439D0A264E180F2455CD5828B93 |
448CD911D97A032A410774DE05175CC0CF99181601C84273848A568BC0A58C5E |
B97225843E17254BAD7011B7CE585029E5FBA99EDD2837AB78B94B55D8CEEC3B |
F4223E57798F3A8B9D7FFEF9EBD6ADC3AFE469E30650E725E36871E300DC5CE0 |
1B17BA205A0C68AB965A88471527689F28B9C28087B8DF5C334BDF723B74F1D0 |
9499F9505237AFCCD1633DB7A20B8C81A705BF20460386C8CD37DF7CC925979C |
71C619EA91A5F839C699E74331C35A35B90B42F403CB18146B21D49F752F038C |
578B190A0A380BEFC6783E33BEDC959C534C2EA966B8D12AE57066721A52A759 |
AE34ABB524EED1C5EFF5FAC3B5FA4CC7160E0D79A5FDFD4A3F892002D6969A07 |
98DA5092467ED2AD78BD08FA0F9E56258DE24AA9BAB5BB65993F0EE768264CB3 |
209C4E7A3BE3CED27DD73CB4F1C9569A34478693A989FDC656ED9C9A5AB276EF |
7B373E3169C5BAA9603326D95EB5B1D00BB3E1FA6FB76F793AB19E0E061A46A8 |
97CDBD2F75307EB5112328B8B064A09FB218969767523FB5DD15A1AEE408D2BF |
81B0DAB061C36206F4624790B1602ACD3C5C382B67D938EC0F533AC42481756D |
63DF6A5FAB803D7AE6293FCFD5B017E44EAC9FA4E974DF2A60EC372EB89299F3 |
80874B96D9AD9F669DCCECCCCC2693EE347EDB0F770691F5B3ADC39D2F3C1AEE |
69520AE716ADF013A6E885EC3A9DA6083B73DEE9D530E5C19F6172BDF39DEFC4 |
62A3CE23BE048BE7D8638FBDFFFEFB9F7CF24905A85D460EA6392863098C70A5 |
19A3F4A6D0DC8CDEB9DAC1C5C1098E40FF9802C72D51215C83D574ECA5815D40 |
0084902838E135AF79CD9D77DE29761A355BD44DB5CD251E193A655D8C1E46E5 |
4982569905A55C94E1A6283772215D9A0853F0C6ABE860B7EB2A2DC8B4F975C1 |
8A1755C0445D2ABE4188B6DB7ECB38559B8CBE623E203AEDF2CA1D0B45ED3519 |
7C4A2566082A7103477B38C43F4C179E23C5FA19C83B11F57DEC631F834A2332 |
CD155B3ADC20955770840A469B16ECA32C2F86A85ACC20088AF6737C29B1102B |
96AB5BBB9D2977FB5E4C31BA3539041BFB45C7123A3A6C9C878B53831E78E081 |
9842D82EE2BBC05BFFCDDFFCCD37BFF94D0E290410B6872AD69532142728A358 |
0C90B2560783C66D893FC151FBE217BF484A2077D7B1B4090FC60167BE44AC55 |
228210F3B8147056B4B976C3BCA6003A2A5F457C2FA1032CC2535C4BAEB3E0F7 |
03243EC1FC5648AEDAC6F5857EE2AF1CD5C51873082553428ECF4FB30C6F44CC |
94F6959C69BCB8501E7C3CE945ED7C5E47744B1C40CEA90B23B8E9A69B4E3AE9 |
24F6287451AF0B3D602C54CC8EBA364928935A849F63A7E081699CE17CCBE5E4 |
6561E6C5FDFE58BD31DB6E35AC291FCCF6FA4B4786833CAC0ACDFA8CB56B8F68 |
8EED9A9C4CA6269775B2D5ADB41A771393C5E5200AFD567B26B21EA93978EF83 |
9FDEB8B1D9B0D6DBF6A8159782C9B89F342B8FCCEC5ABD6CC5B61DDBBB59BA7F |
D0A884A5ADBDC9BEF1B799B4346CA541DC49F631DEBE4BF681A2DA1EF5EE9DDD |
8A678DE056D69AD3390AC6BE6CF63B1D9CBF7E804D9BF95E6212AC03388C5E9A |
EBCC22EBA9A9E490FEB121E83C0AE763E19A1043903612B3C694F70EEB6BE2A9 |
2467FD8873A71C7F2C9BA0641B4EF4E15B94AC269E9BD37E1CB5A27ECF967559 |
054C5C4329270E817A1CF5E10AFB1563DB28438A6D31E9D6C09F098347A36EDE |
CEC22451CC27F672C03ADE902FA2FEF3A24D35858E498BE6015484A6700FE40D |
9B3C656BE6B70382B8802B29435F5134D60B3181825F193F736BF3B89CF02BA4 |
CD6DB7DDA69C20736494F31417ACDC633491CB9265AEDABC94935CB41492106B |
8F3CF208DF6E808B868A466D7D49FBF3A1FC90327293743435D45ADB14BCB62E |
CA5AC6BAA8BB5C40098D6CB7FF8A3062AA86324E887EC035750FBDCB00E9D89E |
3C600A62E25328264441EE153C20BA250CFFD7BFFEF5B7DC720B240861A8C41E |
D349C7AF6AC54311A3ACBB8ACF2079CF3CF34C7881BB7D9E97BFFCE53FFFF9CF |
59A3A6A025B7DC273EF189CB2EBB0CB6D2030F3C600A466BB7A7BD2BEE21D148 |
F8677206222E56E20F4987C4FA7D4CED89279E78EBADB7BABD35DC83EB861911 |
6926FECC77644D1BCB275CF96B1644C24D6149E12B64936659B60B6D50352DE7 |
EFE0830F7EF4D14761BDFEC77FFC072B6E091561905F8E3B2D4DE62764FDA970 |
88D837BCFBBBDEF5AE2F7DE94BFC2B5E1FDB529509248CE415B8DBDD7C244E60 |
D30BCE26C33804E8BB0FEFEADA8583E08652A5CCDCA6DFA2A815B30F7FA5AFEC |
06C6077C5C5E590A5866AC5C2589A701C5669CCC0B0D3EB77DF79CA42E1231B4 |
939807A141C0A69634BA391A98508C246C798A332C424222655FF34C358A60AC |
4875046E39CD8002F69C16D4E4E7622B1B21FFB920494E891FF03F79CAA03261 |
AD1CBA76ED138F3F3E3E34323933550F8217BFF8C5471DF9C2CB2FBF7CBAD74D |
734DB37F9E911D36E62033F44CD3586253B769BFE4753C9B23C88B57CDE1871D |
FEE8E3EB3102ED5E7BD6F32AC3CD0D535BB35A757B6766D5AABDD66F7EBAE605 |
6B4697857EB06CD5AABBEFFB3F3B4C12D62B9D760F0F7048B8A4D91CDED59EDD |
94749F4A3AB3151801F90C96429316D08DFC07CE53E057A005F10F0AD85001E7 |
39E0A470A794A8536CE08F3DE0FB5ADCB74D2CC7B5C81C68FC35616D346ECDB5 |
64F24D989A6A66EA59A99285BB4A51096AD778509C14E2BDA8DF4AE2BEEF41E3 |
F5331F6A38B317CB2A5EEA7BA6969846609A5EC986FA53B3CD4BB785DE4CE0FF |
BA1B11284046042F57C05032E57A8DD4BC6F7BDBDBE0AA42065208A84E495D93 |
195CA4FBABD21D799C5FFBDAD7205DB9E9C4FF4A35C6458ECB5232D7F2834624 |
4E7BDEF39EF7F0C30F63211138ADDA1E46C5E91333AB18E4BDB12931F07517CA |
1A14CD6654F9C9A21D8178F8D6C27C915A00520E52880F29241404026414EB02 |
2869A1386891301EC941D0A5284F20DFCE3DF75CB88862D35B4C5372C4249D54 |
9A2CF8957C592199702F0ED71E889B9889D756E50CCEC1CD1653C00AA341B35E |
7FFDF5C659E2D2FF2E848CA0127DE8F2F2133B278629A56CFFF22FFFF2273FF9 |
09F4874B64B1DB434E1B5D22593A340E38ACA4BF27BE80C431D2BEEE7B51F8B2 |
27ABDB4DC5EDBB874F588EBDD8F830FAE74A641777670A6233BF68A820BF7F20 |
2DCDC9A0FA67EE990FC3822522E528FA5909A3BB93D89265CDA27D21AA99E790 |
C9598A5093A29839D3A8A45FA6FB4EABEB95AF7CE5FFFEDFFF5BA4666AFA9639 |
5D23315669CE688AF33192471D75D40F7EF0032A15265C99801908EDBA043766 |
7E5E40B84DFA8558D3981ACA089712561166F6FEC42B10D6C86CCDC2ECAF1680 |
97F7A162E057295EAF202B308E85C483C2858101ED408A3CDC14E3FCD0430F99 |
221A8F7370F14D9B36A9059E0A973114F82B06193FB0185D605733BF9D38BBBB |
88AC83E258CC097B0841631C706B2E577C0E517BFAE9A74B164B0FF12E948F76 |
DD6619545F8F567958DE7FAFD58F6D78020371F0BEFB3DF8E413FBAE5C05B778 |
627A7A4D602331A341F00CAF7E485A1B8BB35ED29B31BD96C94A61054E683F89 |
97AF58F5E4D6A742CFBA3B33D5605777A267E2D05422639FB5DAC869DB6767F6 |
5EB1EAE52F7FC5F7FEEDFB8F6DDD3C1DF5A03257941A2BEA4B8252B879766A53 |
BFFB74DA69875E2FCE461B43D3FD8E542FFDE0B94D175423CC0C3EF3AD6B0C1D |
39A08083A2296A5234CEFBE3B42F94A4CD38FB967212539398B5C6C04D1FF533 |
3FC8F3E19E2967A69AF8E52C2C9B70A26C5160264ED278CE4634BE078371324B |
E801F7AC176B9FD03AC1D87799698656014390CF2609341E243796D76F6C8387 |
0AF64094C46420F1F216CB2426330ED10A0FBEA66C2C3746C5382773B4F28C59 |
E1C26546C8959B64D11709AF1162115F24528746B00BF924B101A3E28A3C919D |
86F50B0325093C58BDE9C2579596C2328606F9C52F7E811F18D956B28C2E9F2A |
F509FFC4BD589527AA1C6E4FFC4FB14C1E24314F888487BD70DC5A292F0748BB |
C17C8530454B3C30C85E418787FFE1AEC0205898E4720F8E86FA5268E41755C0 |
5FFEF297CF3FFF7C42CEF010D75C73CDBBDFFD6EF53CD069CCFB7A05288EDA11 |
23A85222C265692C08A286B7A5A6749B3A991CF5EE2E32F7707BF8F07DE04C9C |
72CA29575C7105D5123E616F73DE545C0403AE275EEAF6DB6FFFD5AF7EC5CBE2 |
2BB82029EC797D2275BDA265E662E3E37253F0EE6EDA6F283F1890173E599772 |
7FA046917147C1C19A131177F0FA2AD0725932F4339F0737FAD0873E74DD75D7 |
E11970325606AEE37E8B7B8C53C0C21B3CF03EFBEC0323D7255AA26FE7153D77 |
613FE2B27C18BAA45A678A03D3F3A6D017F879C0CD950A59F8A116157D4DD8AA |
78363CBCBB5E79F0571634BBAFAFCDB370904D5EC20111867DC288AE9246EE69 |
EE411B9C0814F564C42261FAE3C8238FFCED6F7F8BF7858CA0A1ED8A48F599D0 |
1E810A670E8FBD9258F84816174E07458CAEC690BE48825C6CC4C210B4925518 |
3AF9E26C77434D2F924B7678A5EC181D199A9D9A19AD565FFED297FDD36DFF3C |
64CCEA652BA727ACAF3FD36E410F4DC6FDAACD40DA3AD711D873263CDC0C3DA3 |
32EC97FCE9B4B7AD3D5B2A575AFD7664D2D0ABCC66DD7AD080EED910CD362AB5 |
AA17948C0FDD3C154D8F8C2DDDBC6BDB6C182471B466C5DE0F6CDD88B91FAE36 |
E0C92E6B2EE9D7CAAD4EF7A9899D1BB3EE2EDB8EB732DA1C7DD5CBFEE26FBFF3 |
0FC6717F9900B67B24ACF5E2080A188F614F482228CA12965C96322AE6FAC1FE |
E2ED4A173D7CEB5F5B17383061D61F49CCBE980E4C3DDE08DEB79795E6B8A733 |
BAE5BDC087EAB59C62CC585BFFD90F4BA55DFD6E9C59160E2AE020076A05BEA9 |
A7A609FBB56C033C6D4BFB65F00F42FD97A694057EE4C3BE892DADA667A9B3B0 |
ED433F9053ABE266692F387F649BA76E50DC8B0C7DA2BAA3E867EC8738676242 |
D9F0662E109A1BB8B46219C11EC8219AF9505CE3848B59E44AC5E64A487620C6 |
8391A0975D3B7FFDEB5FAB461F5A40C11E8146B97A0F39E490E38E3BEEC61B6F |
64868BD44FA6D0CA32B63020F8842DFB583224D393DA0E363103A284A7D02219 |
300B162E12DF69254EA0B171D2A0124A04FC1E74D04118072260F4A781439037 |
1AD622D3DE93074C314721488C99B41A95BF29520B26376DF09410E5184197F7 |
92CF44E4DBE1871F7EEFBDF72A02CE0F494F28DCD61E149EA26D18533AAF428A |
6286F06E4C79623E94485BE8040B9CACB42861539E036F839CC5F3405863853D |
FAE8A3BB7D1E563D31EB60729F95FC355ED190E7831FFCE0C5175F8C65F4E083 |
0F1A07E33D30D92C0833B9C38AC7265B08561EAC0452B5E9FAEA8D485B019FAB |
6D1F879A9B908159BC0B2EE8AE1B33BF817C50F45993C1A87602DC75B83B3E81 |
92A097FCA637BDE9EEBBEF269A5D54E34C6FD3D2640AD9055EBAC167FDEC39E0 |
3257A1524030604E1E0F3C15C7D373D095FAFF7DEF7BDF17BEF00586316849D0 |
1A5DCCE349733E6138A0922F030FE3268CBDBC9CDAE4BA133FBFF5AD6FBDE186 |
1B5CD6025DCA14968D589AC5B3C62DC7EE9990506F7EF39B6FBAE926B211E178 |
C31BDE70CB2DB7D0600DF296C9380D03FEF9CF7F1EAF468E0272C10FD4B30E28 |
60EC05A86A059F4D119793D92E2758C9A7B9661B5066BE8F3D3C363CD29D6D95 |
E368A8DA80BCE9F53BE55235F2B24E12C5707393B4590E473C6FAF9E39D434D6 |
96A1A9D3EDFD999E1F942AE5594B8551F2C2204AB3384BA16E83E5ABDEF49AD7 |
DE75DB0F1EDDF8C08869408A4FC69DCAF010F46B7FB65DCAFCC83238FBE5A0D4 |
48FCA5B5910D417F72767687E9B77DAF550E5B70F8FAE9F30F3BE2BF1EBACFCB |
7EE7FEE64227A740B2A0B0D8128694F3745D1A430143A4B5FB3DA5A5C80BC492 |
C23F960B1A77096D9363EBDD56C378348D567BD972DF5B1A55CA26AB7A5EE8A7 |
91493A26E9C2C1F5E69A22563CBF52B2E1AB6E6C1B2396C3523B8DE001777327 |
38CED53A3437FE8746AF07956AA504D716CFDCCB4C2FF37A26BD3BA8F5B2A49D |
C2F9B5354F5ED9D2009B28B60DAB8A8C29A1914A02126886CD2E3789E63B573B |
73B1142F594EDBA7D8CCDBDFFEF66F7CE31B342529091947C55AC222C4725239 |
25235258BDEC1EA6A548B5870BB29084D00AA526B9955C335D81404549DD9224 |
5300BEF0DDD5AB579F74D2495FFFFAD7E956B91595783CF23E49F2883853D751 |
D3175921DA17C1FC76AE52646E51A832C1A6A88C85203AFAE8A37FFCE31FB387 |
8402A5FC99FF43C8C381A10FB6D87ACB1CDE46814FEDB0B8693933BF2F022E27 |
B82CAD06DC58FD6D940CA73D45AC8A60B70C9C6605CD320F06E8BC1CB2CB6A36 |
BC0C2B3D4CC12AC23757945BF1409363B021BFA8CED5158743CF51234C8E0110 |
55A652E83CF7B9CFBDE79E7B34F404DDD1C1554343853BE8FC89DC517D1C4DC1 |
EFCFD500F57CDF7DF761DD93CF85B2928310E4ED2BF0752E2355B55249F08272 |
5FA89B197626C6876FC795C74237DCEED8638FBDEBAEBB366DDAE4DA130B3D48 |
2912B7D079E141909DC05378862F7FF9CBA79F7EBA291C7146A2189961DA89A1 |
4BF537D44D655F2BB033B0D48C13C17681155CCAF2EC35F86E418EC01A597150 |
7FB0DC9E0EC17BDEF39EEBAFBF7EA09F9AF2318C64B8806A02A715E052BE598A |
79B7E567AE0DB1F07337FBC83B6A4D2A876D1C079D22D2E4C9053AC76E331F17 |
E1C5CC0B973AC40D612C1470F81F862FC641EDE1980EE7D272DB8AFC0E44D3EB |
FA9917E004ECAAC083E86D66C1501A8C04F818DA244BB234B6CC1A699E93B0F9 |
CB666696996085A9C21819CAFC15A5DAF2DA70BBDB494BDED6D66473A8D169CF |
4609345F69787CE4A9AD9B563DE319BF78ECB191FAF8780D36C4968A0922136D |
0BDB416C1DC1A6659E0E4DB992944ADB67263698D82B85A656DD3C3D53A9555A |
BD3E86208432EB474C827472C287A034B7C06803613BE075208E0F38E0007808 |
18968B2EBA68DDBA759C776E5BAEDE3FB61F30F67023312D3F81B27C5E521A87 |
B7EB47AB1333522D597CB2ED309867344D16C5692F8DD8E6C812878541C96387 |
441BA69EF07C8B56CBB2BE2A91F2695D01BFDCCE6529F1FC6E9AC0E0E8A431D6 |
E513613558BBFAB8135EF7A5755FF26084786958A904BD7E12787C6BD19C61E5 |
D31DA470937F660A5B909B82A160AE79C566B4C6580ACC70341706E52A4D7C45 |
5C841A3105BD81CA2E3EFCE10F5F72C925D411F8136EC19C8BE770DB3122C8CA |
3D01357811B6CA9628B8F2CA2BAFB8E20A52AC8BF040D5190C6D52200B7E4B05 |
C1B40ED436FB03C949658A9A5B00F2E1073FF8C1F1C71F8F5B0CE0345D3496DB |
4F96F7A5C681570937CCF5275DC1BB50D14A9431B7ADAC998294C681622D0A11 |
A498C320422E9F76DA69FC502E94D8915CB949CC2A550873F2D49D84288B2F09 |
3FE082975D7699CB268165F4E4934FD2A164D482A6961209B089308EF813A415 |
5B265080BAE803CEBDC648082F7C78CA29A77CF7BBDF254D01956E56343C71CB |
7FE9FAB0A286B07BDE5D884A393D78B0356BD660E96705C9B3B48E57703389C6 |
8CBE325906BDA25E5EC6975F50F59A02BEC89FD523D3146C888468ED5601BBC1 |
1F3794BA18C25C405CF583C2A4FCFDDFFF3DD3908C64AA3180968B1BFD3605B2 |
C0B519E5595221CD0159E7B78B66A29A8993D4E915CA61579007FF9B3CC442FD |
A464B03EA75DE8361B51636D4A1CB70E016792A683CF4F5BD03563CDFC26E18B |
852EBD05A4A16E105B9CAC1A76975ACF38E6115D76BFE8CFCA12F68155610AFE |
19956D78F3CB10F1822C91E256E234B90FA00C19B7BD7D0CCF3A7981F1523F83 |
02868AA3025E5ECB891DE0B5E4D0A6C8AA61DB52A11AFAF5D85B62C251BF54F3 |
CD78A9BA7678D97E4B963EBC75E38B9E75C44FFFF34EDF0433A6D71C1D8DA767 |
2BA979D04CC3A02BD74AE5A1915E2782AAE926D16477763C320DBF540E422F0B |
EDDAAA56F06FA235B3C54BB775DB514E4FBD756257B9DE6875DAFD240DBDB9E2 |
EF88F8067F4E1330E83550078F713BF4D04321BEA936240AF62028173B1653C0 |
C39530892D2EDA9EE48718A25E0257386D93341EB211D3041F37B53D914ABED7 |
4E4D3E8CA63F47046D8D0F18DDE3383F0FF726068E6FD649D3765ECEFC903110 |
6AF5154B26B64E54FC7237CB210299E5185329398D66D7A8C585FEFCCFFF1C72 |
151E18F5342D3F4A511682D271622D1CE184F8E195AF7CE5EDB7DF2E1A224942 |
8E983C579264B1B0C514A12F0A01165998BCA84654CF1083447E5186F3EB9218 |
69D19F9BB29D5B40AC8B780BB7F4CE2FA8DDDDDC330165A2F1A1B4B9F9E69B4F |
3CF144333FC22761A5DDAD86B603AB823FD39DE3B748080ABDFBF297BFFC9BDF |
FCE6C22BEF413E50F70BC2499125D62017F3C15CDEBC14A97BF03B9C54975C90 |
496CC5E830AF0CF19BDCCEC21BF26D290BC4DF2DE00F4503F53715122692814D |
B10F0AC0422786521E26D219679CC16723668F8537B80227523E19F72D5D04CF |
690942424A957379456DA822F26EE52B05B1EC0C0268D50084AADDC50828EA65 |
9CCA5789573EB6DBB5432952895AB78B14CD31D69BD2E31498D9B54CDD053428 |
479C3CEBEE054D5E212A229BACE02F9387AA1F82A2370B762F299DD91F8DDD2F |
14B3D54DA5745532242F9FDA1A23C3D811B420394DB1128872C412C269D8CC70 |
CDB1BDA9B9B11E5833C743517D4E8A4AB14D61292B5E82EBA8B93551272AC035 |
0ECDA75B8C48FE9085D97AD9CB0375C63274F409A1798C219326CCCCCF34D35E |
61C24C4B5D6100F9282210D06062F619245435A0BE25D9F7C217BEF0EEBBEF16 |
67881EEC7760C9C4C66CE501DB3AE05C012FF56DABE0284DF225E825BE89734C |
4AC5D876490DE3E7BD7DD2A6316B2BE3FB8F2ECF764C8EECB3FC374FDC7F507D |
55AB6D01D58DDACA473AF65DF63AF0198F6DDDF6C4F44E5B495CAD3DD4ED8C55 |
CC9A7EB593F54B5E6578E9D25EE0D9A46FAFD5CED149E56A6DA6DB9B34D06779 |
05AECD955A0D3707F8C8DF945824E6FCF8CAFBEDB71F860E23ACC20A0153BD02 |
DF9EFE0FA8281751C043156BA0A4B15D28B868DFC0B54DB1B161346569E267A6 |
EA5968B4855959A45858F1B324F36293F653ABB8ED46F672C8714EFC1027708E |
4DEC7B36499C25F0929F0C2A8F24BDAE6F4A5E5809CAB331B4733654AECCF4E6 |
82799036A40D2761FB1CE23A4F0E32874AE401951916C945175D74D555579116 |
91CEA2B00259DE5B89D95F52C09E7AEAA937DD7413D6CC473FFAD10B2FBC5055 |
9D94396290E0755CAE63F78088802EC032A3AC502A90B28EBA5345AA22C0A246 |
2792912CDCAC71A2C6A1DC763B3148389BA2FD2B0390046A54F283EA4D4DEF99 |
A6A4A9ADD498EBA598A24CD90DEBE287830E3A889031B244B829DE3D7BC00352 |
C2755C1595A43AF006A81F5D8F4AA02FEE5ECAA937BCE10D3FFAD18F68FB9029 |
572DD3CF3DF7DC2F7DE94B928FAC35862425520EDF854D41E7954B0A934D08D5 |
BEFBEE3B951FD4D00A35C8D0C053C1037EE73BDF0901845FF1DC905CF881ED0D |
6816D03CA47E22E3B4C2986E4F1E970B822971C6C009BF72B520214BCA897A39 |
F73D11D7BC8B827B949262C572F3FCC4E83316C4CF151E7799BF24C4256D89A1 |
C0E8AD5FBFDE14E69BCB78B5F0185084BF77A1885779002CCA620306FA703BBC |
2FD70ACC9D97BCE4253FF9C94F4479B6FFFEFB6342F5D80B732A26B7E43CA719 |
0083691FFEF0872FBBEC323181D33612C290DC8A6ED36FCA0BE6DD618731F6A5 |
C4B6E07259D18399A92F5D530E3ACEFCDCE73E878547E5E4024139BF4C4C0C94 |
2499F9F582BB55C0A68842D35BC5F4110FA122345D50FC091855A6544C6EC8E2 |
07D56A9BF9AC785E0EE1C64D31E0F7DF7F3F6513A13704CE305A8B6F5D70C105 |
18585AFA69D11587E330672F864138C75C61EB67830C0AD81BCA826579998F8D |
9AE6854699ADC6B149CB91C40BF39E80F0E07A18DB2C5E6AFCE57EB39BF60F6F |
AC58D9F3E034B7472BEBDBBB562E5FB17EE3833BBD7A6C43AF71C5787513EC34 |
9D678CAE988C5A958E4D9386CDC654DCDD3C3BBD39EA41088DAD5CD2D9321556 |
AB53DDCEF8DE7B3FBCF1298C10BEDEA836DA512F4E625B8AC360553447AC4F0B |
FEB0C30E5BBB76ED1D77DCC1C006C699D6BC58A2B8C717A270FFC70A78A46ADD |
03982F70BD23CF06963BB9C5301BF86992C2468102AEE42067BC38DCBAF13CA4 |
1F65967323C9727601BF94DB1376897663BBF262E345816F15706AD69B604B39 |
9BC8D2AA5789FB73B5C050C07D93D246146645080C82A464DF33EA43518CB966 |
F72D82F049D74F47C58D60D17DA2CBC1021E8862964E640561838430C10454CC |
F8228B7D2187D95ED76D1C2ED978E38D379E7CF2C9AC79912FA73C822B96710E |
6BF3702FE6AA5D59A796B5DCB0DA207847FC896941AA247DEB939FFC24EE0E49 |
E5B630A7AC1E50C0D2772EDD340644CFA636B50A4AED812151C29F5B8F563885 |
2DF1D87C18A2C10931196400E16351A8654EC35D33BF0791DBA90A6387AB0BFA |
84EF5E7CF1C5D0C7AA9C917E9246A4E0606F19F2F63154422028969197574FEF |
21B68CBB7CEA539FFAD0873E441F91DA9D75D3F4EE714DA6D6E82B93E44524E0 |
7C5459854233317493E52CE1947481D3CF98912ECD8D3BE5CA3212696C8A3A63 |
7EC2F2797A60748B5DE9403DE4E5A57B2E1E987E9232B56EBFCC01E5EA820BA4 |
33CCEFB3D438A1DA66B452310BC24AB8ED8FF039134E780C9C49CC3335AB990F |
6A10C0CF0D9771E7A85087E69AC9A3C158399FCA8F238F3CF2DFFFFDDF65F2D3 |
54C498B0AB12DFE5BDEF7DEFB5D75E4B5A3BB78321C32138E79C73CE59B76E1D |
45004B6C19CEE199ACD2A1F7EF153D07B92DD9B9723105ACE15D4C01CBD7E7B2 |
C1AC41206AB179F3ABB0F0F399679EF995AF7C05EBF691471E7113E1037BCD38 |
AD1404AC13CDAF0B79A3C226F08446214B3CD5E0395FF196E1C9B35AD6BA9F70 |
DD868C379C85ABC3B2ED2C84D18EA34EDC8F4D62F557295C129B20CD4A7EE855 |
4A3D13F5BB3DE8C36153DAD784E5A1D1C97EA79A7AAF7AF14BFEEBBE7B7FB4FD |
D115471DB1A19FBDEFBDEF1D4ABD3561E313EF7CEFAAC6E8E4F44465A861BDBB |
5AA5ED250FEFDA8E490DEAC18EB67D841163562D5BB161FBD6D95CF0CD74BAF9 |
C8FAB1972569B2500133A848E18B6543BE490D9AB2366ECFA83F50F5CE4DF462 |
0AB8D248A07A7305DC35D6F7ED5A63C54CE5A494B62361E055331F0642296F20 |
B1D467083A8D7232693BA19E5D1B6139A0024E727016DCD2BEF592CD13267CDC |
C451D54FBBA9AD64AA5523086B686E470FC162836CC4DBD132C69BF23521B244 |
9D464A70DAA3949672BF5CAA0A42284C61DA7239C9BE712349E2A620F489C69C |
361D6F2AD42A21C70C232909C273DC7206968972A750F0726BB0E50F45345E96 |
A04E6A0AD576CB2495C34A62197AE7B83223ED784138C4CC7051F8D0A07795AE |
998FA1210A957E173691BEC2B651DCB96E4BC4C5E4AA5F34266794D75516744A |
2994709DEBAEBB6E8EA8C82DD9E423928C1B27B13C911F12014F8B8CF15B6297 |
385578670C0425354FE086C1C42BF2003D247AA9CF7CE633975E7A29AE8651C3 |
603102CCAFBBFC883C28B8718BE38E3BEE7BDFFB1ED9AF48E74D0DCA137847FE |
AF9E019A784EADAB1EF03AB4FED8D702A6007B20FED99FFDD90F7FF8432942BE |
322E0571095F50B02CDD5DA02D49520C2C7EE61432E5AC642AE526AD048A0C97 |
4885CA98B40CB4EBD96596AB44E9998115F07B5DDE818391DB81A40B15D54517 |
5D74FEF9E71F75D4513FFDE94F09296201922051344845B5EA3928E5C4690BBD |
5B101647E6861B6E38F5D45331D41FFFF8C7B3A2693CE387C476322BC1B24292 |
358A049BF81197565AE62D65040799A07D09203AF12E044CE5611A7686A0DD0D |
E61A31D270667E48591B9827D0A1374EDC68E104C9DB56636058155FF8C217F4 |
788AD064F39B9FEB04AE70C23ABCBC75928CE685BA9C07096ABABDAE0A674D5E |
D53AEC85436930961339E1667D3864B684D55829522E0D2599D78B42DBA630EC |
FA592BED5994AFADD20956F8F5346A0D0D2F0B0FDCBBB7AC393135FD8E37BFB5 |
373E16F4BAE1CED96B3FF1996784CD65E546278AA7FB9D6DE5DE869D9B597233 |
D2AC9AC09F9C6A1FB0DFDE531B7734C74737EFD819956DA7FADE1CC9836D61B0 |
DB1034631B845BE238FEF8E37FF6B39F616661CC9D7DF6D91450DC2674FDFF68 |
2EE8451470332CD3728AD2AC6B12D617E199663DFBA05601E79072C85DC8D3B2 |
1F34BC9421684B079DCF7C982BE05A0EAA8A129BDC8507DC839ACCAC27BDAD31 |
F29BD694375CED4E77876B436D934001D783B01DF74D91A1B0ED633D0F2F8B99 |
C1AB41B2BBFE09A50DEDF5534E3905CB89A47232015D949F5754B2900C00BFE2 |
6A34675D9D214A3ED5E2BFE52D6FF9C637BE31961FAC1021B78CA40AD515B7F9 |
77BFFBDD57BFFAD55481A247E54663D89C094D3DA1E4F6EF02364E3344B7E7A6 |
80202E2898A58302E570E36B3BB8A5190BE524DF5106343FC41D49732487F00F |
046149A01D78E081E443656C1C238379F9E0073FA839F5C416E6CA4DAFE01BC2 |
55B0C46FBDF556B1000A2DACA6CAD049279F7CF265975DE6E5F8520C81741EFE |
0459A916431A17360B528B1B2FA7DBC6271CC1356BD650FE0ACEAAD6878415D0 |
A9370EE85CF25DD2CAC5F7E2672878410324E04C4166493702BE29839C4A828A |
8C50868FAA0CBD0220268253FE7AD24927DD73CF3DEC5BE9A290F0BF5832D4FA |
0ACF79C82187C02652F0802FC5A64F24B79223C82CF86221B58148861B8E5EEC |
FCD46982CB720276E962CB11F77DB5463923F2B6B5A6D5FC64000B660AD8B072 |
C00C180A24823725428DC0783C098BAF38D792056A858B1BB12D9AA261ECC74C |
D49ECBD4FAAC673DEBFEFBEFC71D2186C8D392E66CCC9C505A662EF0CD14114E |
651CDCA113AA5C594651D6F150D2911A91E68230011C28190AB432F152443070 |
04B49C1E33250000FFFF49444154DAE9B22B076C9C3603FCBA38E0340B41D1C4 |
549DD460447EEC631F8381FBFEF7BF1F5B061787796A1552D40F536B71C33983 |
02867530EC05F08097D8825B68B9D4A2788D97F9B61F00666EBC51AFB4E366EC |
95BD60D68B7726D86C26A8967B9D78E5410794960C8D8E2EE94ECFBEE1A49347 |
D6ECED8F0FC577FEFCAA2F7CE1992B56B71EDFB02CA86D696F8B4D7DB381E8AA |
6DEBB52B015CDB14BEA017A5FB2C5D7EFADBDF79CD2D37FFEAF147312E575C75 |
D53BCE3A0B8F1696C25E04DF370B833910969D08FF77705C53D4651065A24626 |
26F780B160E8C4780515D4FF13053C1CFA24E3C2DCE43A38637D51370853C8C9 |
3C535ECE915665CF9482DCABC93DE03C046D6B7A831C7EB7246F76843D01ADDC |
33F63ABD3C1AB1A154DB60BAED7218B7E2D0047D2F5F90794913DE42BC4EF48B |
58BD297384F61CFEC77222C59297E301951D57C28EEF485F8539573ABEF44189 |
D1651F58626518FAE6D544F347EBD638F4D4CCBC908B06FB114FC55A26CD0B59 |
51B9E352A7530E4D464A03E25E2969F14830D01F7EF8E19FFFFCE70C16AAA0C0 |
5DF3A62870A2A0A6E5CDBE9C3C93BE389F5C70A5852168AF207634791886AA9D |
DF5206C72B58BD041ADFEDFA51B9171E0C328D980C4158184124AFF39CBF2E06 |
1057B27B0555103E674ED72BC802B1C3C95391166D2E685F0CB4F4614F1B3E25 |
170D3D5A85824D1E5B27A318AD0FFA287838184D309D303172D849C6A656913C |
DF2D59E1D0F37F4AEDD7BFFEF5F7E787DBE85194E2528D0C1733939DE51DE868 |
8251490882ABA9C522A69BC5F33D87619C0A98ADB264AFF1C52994DFF8C63792 |
A899582A3E3F6C145C9F6B8EF59A1CE7AF7EF5AB50B7B461398C5C1903654503 |
F2656124633105ACC524820E0974EE4F3C36F72D7E769B154A25BB6FCD50D840 |
B3C53D80B0B4CDDC4D252B878DD2FC9C7F8E519677BDEB5D37DD74D3D34F3FCD |
D7A1B986CF3186EA6FC8C247BE1A560E6C38AC043CB6885479C25BDFFAD6EF7C |
E73B2ECC9EF1A2ACA0A85CC810641CAA58E6AD99A0558E362BCAE2895655E113 |
27DA763EC833DF146AA4C422FACCAD4CA0712D20370359A6E8D6620A78170D50 |
F9E282752868C4454E53585D6B58C76F6B051B753F864E487A7074733AA96666 |
FBC91FB26CA5256FE976AC8CCC1B0EF4621BF61D2A9925516985A9364A955993 |
6C4D3BED8AE737AAF5430EEAB53BC3C3A3AF7DD39B0E7AE6A1D634E94495D4BB |
E46FFE127B2948D21A26346799D8550B37C77118993276C7E8F08E9D1363F5DA |
92526D6A6AD701432B7F32B3656C6464DBCC7427CDEAA3C3DB27A7ABF56AABDD |
B59AAC94331FC1E381122C52182EB797D219B4CCD43B9C27780559ECFF13053C |
1A16336EAC4D6013B7B907DCF3CB58C19E6D8C64115861DEF8A80A6FBE1F5BE2 |
E80565482B53DB2E091785FBDB4D93B68D66DB50F6637EB9B37CF8B16D3B7C4B |
03E2E18A8DE1E1DED4A4576C4CB279D3E763E332C542A41D6946730B280A22E7 |
84F1007518739356A24262F30353E09BDCD4860B16C14DF13CF4742DAD69DE9E |
E8CC33CFBCEEBAEB5CC413CE67E1B2BB955C44924B9C121444B3B49CF424A470 |
F70AFE76D6DA51814929D232807066BCD6F574D9166900C6ACA09D30A4429991 |
3293AB883B14B6EC873EF421953619C764DFAD5CE57852F7ABE1BA294818791A |
25AA6DE90B4DC9DEA59450CCEC72F4B975D5884A66B8BAB311A0A422574E30C1 |
506219253D05EB85701A24E9CD37DF8C919233AA8A589C40D380BE821B2DC139 |
279C70C26DB7DDA6BA235A346AFEAAD26C1705C3808C97171DD16F5088584006 |
419D4D91C33385A1EDEE5E57CFFDDEDC2AD330342DC58FC8A24F051BD2F9348D |
031A8B33C4F809069345D534EB5C97D48DB4B86F649CFA6CDA19AA5257C09C7B |
292DDAB709AF4F53E3C20B2F84F3A4D27BA96798239835820C05BE53CD3B23D5 |
4A88CA4B13189EFEA5D0AAC629BFA38DAF22770E1157946CF001A4185BAAD19D |
BDFCF2CBB149D282F69DCA92EB8AAFC91A33AE5B6D7B45E015DA151DA92C4B53 |
70FB510629DF0FFF12A3449B4CC5E2C6019D71E8B88C35477C9273CE39E78B5F |
FCA20BDAA226E612E5173920BC8EFACCF08DF0DD8F7EF4A30CFC2C2A08FC1103 |
3D1078691279706D3BADD1A54B5FF5AA57DD72CBDF7B9D2848CDD048B35B09A6 |
27A796FB8D52B737E265DC26955AF5E99D3BEA8DDA54A7B374E5B2BD7625DBBA |
936163386E541BAB56F84B8692921FD6AB67FCF5A9CD6563A5A17AB95EEB765A |
B5C874B6EDB8F8639FDCBCE18186F19B893FE4DBD0DAAEAC93942B51C99FAD1B |
F8D9E589D6F2B41C623D9A282CD55B516F6BA5F694D7D91A261004D5D9141659 |
1FFEF750B33F33030F384EE246BDD16AB7021F3A3D814A6632D8382C2E5C2A9A |
41B5CEA599F247695F3B6EF592E926E3A65E49BA637012AA95D16E7BCCA4B339 |
45561E5E8625E17B9967916626DD8CC5607FCDBC34C32A6984D5B26F9DE5ADFD |
56099B2CF33B2699F1B29E673B46944DD84863088211BF540FCA90AA3BD3DECE |
2C6DFB665375E9AAB56B7EF3D8C33B3B33999F9B0EFD68B8DE986EB7B8FE2FBA |
E8A24F7FFAD34C37F01DFFE44FFEE4D7BFFEB5719AE210C1A0B0161358D4408A |
23BA0CAC41DE941E034591C8DDA19A72D1A072F5724132623A7098829A70FDFA |
F55E4EF3C07815775F56B4A839E8A083603031EEC534A5A490E7948D0927E136 |
02A78A51677BBE94D88855ED23BE393FA79B2617A16423970A237974BAA8E679 |
47D28AE1AFEBD6AD3BEFBCF37065764A96EFE1157C20F44FDC40A06C71815D24 |
84A9B9B3A28F8BBCF3B980BC9F3765640D833C12697B1550C2D8913F416D47FB |
48E01D6F3EAD2E87580171160EE18509E962631F1A6EA27190F79C152DA2A499 |
BC9CA58FB13515CF70158AFD8073C993697FC975F0E7378B76E93BA808A50E19 |
7E217683E865797B030A780FE84A2E0ECF21A310C9B3AA59F48371600E72BF8C |
83DDE7F3F38D04AC186871A8D5E03608D29A6605BDC9FDB3CCE9CB6B0AAE5001 |
C5A9B798B627DB83AB7DD5CC80B0463E0C11832C93374EE9339F875FE7E6773B |
842F54C0EE5BF00426ECBDF945D50B23C35C78036007D70E50B6821609DF112F |
826D76C10517609B116AEEDA31A4E724325FA0011D021F78454139C18D5EC120 |
6D0AD814432C1CF6673FFBD910977C4168D00F7CE003DCDEAC9AC016A3A3B0DF |
7EFB6DD8B00146F7473EF211B6C4E083D189E710C1CF8021CBD759CCC31B0AEC |
5B9F72CA89D7FEDDCD70CEEBCDE11DBBA61BF5CA743F855F365CADCE7467B3C0 |
D4ABE5A0D55F5B5FD26E4F2CA93620838E7DE94BBF7CDD357BAD5EFDD0A64DF5 |
929F44E9F225CBF63FF4E0A95E7764C5F2E1A56327BDF92DB65B4E6E6A4F4CEC |
9C9C98D86B6CFC952F79D9885FCED23E4CC567EEBBFF3ECB576D7E6AE3D35B37 |
25A1DFF6E02C42AA648DCC42AEF60D862C58A95AE907A693F47ED3E96C0EFA53 |
150B65F2DA16481C566BA5F125ADAD36B619C551B562C943A88C3DE3599A4667 |
8A5D1D600AF602357AC91667465B5401FB968EA469194A7A75635695822551B2 |
DC829C7DDBCCD786844DAD5CF20DACA2A417C59DC006C76D135FEBE37A8D5215 |
8F9546F12E2F2E659E6FC1D2D9B49776F3BCBBE51DAB954DA7DFF07C081A2860 |
5816D379F3A807D35AB5D9786A725B58AD5A1879AFB7F7AABD366F7A5A4F4FDD |
63E6771CA128E68EC6F238FFFCF32FBBEC328A0BAE7C394B2E7C417931ACF6B7 |
BDED6D575F7DB52B52D89490F281314886705EFEF2977FE73BDF91333720C4D2 |
82A78846A492C16A3F8C2B7CFEF39F3FFBECB3B5D35D53C0F57C5CC145492238 |
91C9C36378B6A38F3EFAAEBBEEA2C1A1FD481AC4934E3AE9AAABAE52F85DB297 |
0296928D36017EFDABBFFAAB1FFEF0870C2CE18B5FFBDAD7E8FEE1C50952738B |
A4597A20ADE4FA87A670AE38417C6CF9DC8CB1AB2313937D2CEC9EC38330B127 |
5FD614548B1838558C317C91161DDD292F6478D28487ED830913D85ADEEAC242 |
66AFE0BF16E605621D0FE0664375E86D695589374328658510B9E5E8E50CF894 |
9A78D1CAF84E9B49AE92012893CE59A880170BEDAAC077006B37C0AAEAFED5AD |
76DF6DAD8B0BB5A06F2D15C5B83D9D21668E65D3B9FD8CF522F8CA21871CF282 |
17BCE01FFFF11FD98D84498E57BCE215DFFFFEF7E9F311FE80E9C00FE42B16AE |
CD1504B4AF39EC9C112C7AFCE0E2B4A5D1B16DF0C05A826AC49B16AD99F0F361 |
871DF6E0830FCA1A53E595ABD83432AE0BAE2BB06AD01D3A77C9A9BAD1144965 |
B76B905F7468611114C398025C28CFEA92C1BAA689FA1B2A96252005EFC87BB1 |
60977E865848192B92FAC7E74CF2A9B50BAF00A180B9D6DB893766B7EB7008D6 |
55D5F878E47275DB44BB52AF8E2F5D7EDA69A77DF6F22F47AD4E3D0CE0B2D586 |
2AD1CC74D88E70F278A531D36B0D85D6F278F489F59D2C1A5FBAEC557F7D3C36 |
F3E34FAC6F8E8E4CB7DAEB2EB92484EB56AE4C4F4C6E4C67864AD5E1B0548EB2 |
E38E3966AFA52B2C342489FDC4EBDB0E7DD524B3C4578D211B812C85FE703F5D |
D518AAF5D265E58667FF963ED6DB39E4D71ECAE25DE574B262739E412BA9A441 |
75C9707DE9F8CE0D4FD920581297C2D25C89489CE71776B783B8C2B5328588DC |
43779AC58EB21F64A957A9D73ABDAE67FA2BABE1D27EBC2AF4463B50C08925DC |
28994ADEF4B70705DC8F1B7E4918B1921F94C3BCE6308966021F0AD88302CED2 |
699BE8B55C1CE53C460D1B65F550A31284DB26A776E5517AD81A4F551AD3BD56 |
0962B66B1DD0B1F1F1891D3B6D9BE15C9AABD997585CE8A87DF0831FD4521763 |
397430CC3BB9A42C6894C2A3A814A6471DECF1D8F086CF38E30C587EBCA05B16 |
9F158CE86ED9AABBCBB4B994AE36852746975D8067BC05692C653D9B229E2159 |
ED56A928BACEFC0E778AC0B60C474BCDFB0517E1273EF1896BAEB9863020E328 |
2059D8743C5C54260F89352538989F5660D98DAF780B4A4E5C5DE3E744754F3C |
F10473DB746E53877CC98E00D535F34374E7D5CD983E22113A22A16484E199CF |
7CE6A38F3EFAE4934FB254063307531D8FFEAC673DEB37BFF98D7C11958DF357 |
86A3C54DC10455963352A58B30FFE90D159477893DE9F27270B3A2D6CA55FC2E |
F856A3AF6C191B4A8B6F52DA8E4A85A6D36E01A566F11074B0A0BDB1BFBB2691 |
2E182F289AFCB8D3C313B8E81984E4B3B15321A71C3F1F7EF8E11870069A0850 |
E233D096A28F45AA64F7EEEC709215F5F8F8E439CF790EAE63F2403733496EE7 |
25EA7286773EF399CF5C78E1856E9A96A69C761D232D780061F78D533946C63B |
2A1B4E0D03067897238E38E2BFFEEBBFBCA2168BA878CDB5A049DEFC6AE3CC69 |
FE6A8A5A3D19491A67A53C5C2E0E751B84D6C1D35235D224D70FC60C22A21903 |
B8F4D24BDFF39EF71015CF54BA7160EA9C5355A9E28D44C3425B5666BBAC58AE |
643AC48C85609AC86CC085ADA27CD2EFB98D45171E8DD1A52D0C48E685CDA1B8 |
D5827596B466EBC3CDDED4CE91E1C6C4748B12AE94FF1BAB940FDC6BFF5D98C2 |
A99D25CFB6D76B47BDBE495E70E491D5D5ABB3C03FE09907BFF6F5AFF332BF64 |
FCD6D474D97259F64BFD24DE397DF209AFC37B97FDEAB6B40BE3BE545A32D19A |
6965DDD1A5A33166B9D7AD2766DFE52B9BB3EDD9D9E923563F63CDD2D53FFBF5 |
DD95A019974BBB3AB34F87D94C90CE947D4B171565D0DFA57AB5343434916FCC |
344B037F4EE273F659536B7687375477323798F1C746A1599BEFD7EA51844BA5 |
C39E59159935BEB7343573482BCFF644826913DB92656FA408AD99BC727A2EEB |
9165D3BEC915B0D735E94C0E99C697E0DF0F5947DA8C06B6D3D1449CC04BC0F4 |
6FEFB4EE8AD3E6D0D06CB713964B679FF5BE2F5E72C948737876663A712412A5 |
8408110F38E0000861628C199AC66AC42E20C52CD6B34B03679C4020838E5CAB |
A49FC35FE95F41EB10644E1B94F7A2DD698A166ABB1565DCC8F8E1A31FFDE867 |
3FFB59AA1C468FD8D35A9C33704FCF3AEB2C6F3E3B9EFC48E3B8924A3FF37345 |
E9589701DD46674F8CB66487C68BE3E7356BD6B03998D416F3D670F088F55147 |
07DD5DBF326A257D01C7E081071E50F657B1683D73EAB0E5D00BE2457097238F |
3CF217BFF8059B39E2578A68B9D4F65B9229342E0406D3A310C1C4ECA3FA5DA8 |
8C6CC0B2600B3C193E1C3837F0C85FE3BCDD3D868F7908B245520DCB21966C95 |
C9EF3B9DF598F9E3F55D9214BA4AA29870F7AAC0AB6420C2D79FFDEC67DF73CF |
3D5C5BBC329BB9AA19B559600798C57D5FFD95121617BFF7DE7BA14109255828 |
08F452EE5276A36AB8CE71C71DF7AFFFFAAF4AC6C8BAA42993E67498307D38F8 |
6490A17DF7BEF7BD0F9AF2A28B2E82B264D488998F2CAF86D2A257BB621EC28E |
B24B09D62811001C340DAFE73067C10CBFF8E28B49A282A7921A965254639F6B |
AFBDF684134ED07A9009A51A448C150C76D503703A70654608140A96E1CC48E3 |
6E5B4DB8C6A9C4B7162D76D46F7FFB5B38A3F819DAF7939FFC2446098B1077C1 |
ED581B462352D99001639FBA5031186667282C9483570ED8E4AEF9A9A79EFA2F |
FFF22F580C6EC5217164A4E07031686CAEAC1E0F38071FB2D8115F87E2C760EE |
D9B70B8796C6BD08E36B42DFC4BDA13A545C6F9F95E33B376DDED5B5FC882BF7 |
5AB9F9E96DF552254DA23BEEB8AD3335F5B39FFE14CF0CFFC9922E753BA7BCED |
2DE54A65D58A7D5FF7A6139FD8B4D1947350613F5A3E3AD69E9E197F62F3D9EF |
3ABD998526EAAFFBE2174E39EB9D1361B2ADDF9F866AAA943B51B739D2E84EB6 |
1A9647DAD4F37ADFBA298F551BC395E6F6A95DB1F177994E62820963CB6A7BA5 |
2009A05CBD34B230ECCCF33B163E6CB5EF5C8433D7BBBE6715B0BB4D8C53CACF |
05BC7AF56AB6B21E209DF8030F22AE2B8D66AFDB33497F9917AC865833D561B8 |
F5C6AB7AF06B6D2B88D406AB03AF542EC711BC61BB20F3A512DBE223BBFC2692 |
8CA068C85AC8C128EFC7804F56D41BB3B087AC320E3A266D05A51D491F3BF061 |
DB6CD8B7549741609BD7BEEF7DF09EEB956AAB37B7A45D7BCB0D173355246A2A |
D10161796739A99C9A40F3BBF464082754A2877126CFA1B2E1E87129CA3F1603 |
8FD95D04829E22FE3FF6D863EFBCF34E6C2216B3A83A888F872B0B244475E386 |
FD3CA750DEBD3EC1ADFAF58A2BAE38F7DC73E963A828596014A27F18AF65BE4C |
92C16D1A4B418787219122C50B5F19C28D042618BD17BDE845FFF11FFFC1F8A8 |
3A7C88CDC9CC57C0F2374C0EA53EF4D04319D563B08AA834DB082B9F0E1B8266 |
A653F688AC39E5AE29020409612C5B7E0046197A54A816E95A42B1DC368A02AA |
707C5FFFFAD7DF77DF7D8F3FFEB80823CDEE1A1A2FD4766E89B05BA16B1CEFC7 |
755F8CE3C108534EBD023F1E8298029DA8519ECF05CD915114D77583F6A08331 |
6134C1C483EFB613705F4A0960CD9F789ED382F0E54FFFF44F7FFEF39F33652E |
9C144D162C3B1613335049B648DA988476E3A66C184C88E3C0C0E20AEC43650A |
34A99B65C4158E39E618D86E5E5E20689CB40D631E04EB92738795CAE251C9F2 |
F256D70223F89E95703879B11C30339A6ED257600DA1133511822EBB31F68150 |
BF3B65BA2915BCC295A6689CCC9FF93A7249DD5018179E2A85B2A21B28AB38F4 |
D8DA4DAE05493F00B3E31515775AAE03B038ED02BC3BA973F4F062EE14D1DB1E |
BAAFE0C9FCD084A572A793479B8A22995658CB4B5C42DB372FACDE71EBFFDFA8 |
97B6ECD8F2D31FDB8C1A5C8F6AA9DC8BA3D1254BE0048F8D8FBFE5D527FDFAC1 |
FBC7572D0B1A556B4EB43A63F5C68E4D5B6E38F9CC1DDB36974DB67264F9E353 |
4FB58C3F5B32DBA376A75A4FC26CC76C67E9D26634333B1656CAADA86EBC4A60 |
86ABCD99D654C9044B869675B374364DB6B7A77A39F756EC0571E06365F793B4 |
973714EADB66BF59B954F4CC29DAE266F3E1575951444EC9082571F0C107DF76 |
DB6D72711603A92D7640C7065ED8A88FB4DA5D2F4A5604C1B25E7F7550ADC7B3 |
0D5BDDEBD9B05816A5964CBBE497C238EA79F90358811B5B23D1B79D7D4B33FD |
C8E6B38DDF8396C562B66548A69AB33B87C60619B2209C8CE32D69D43141756C |
ECEEC91DFBEFBF3F341C0B79776CB314699552D9B69C726A404CC1C643D35999 |
41B7CE8DC85B2D3F57FC9ADCFC656C8F5A8A6AF5EAABAF3EE38C330844C0F9A4 |
761880220ED08A79BBABA3350E7695158614AA8AE4713AB0E370534EA25B37E1 |
CA55D7FDD5AD599243579B8E32C1CF18136E22C6ED082BA6F96E0AEA6286A615 |
4533F3F9F38D83CAC69890FA8A8F44F1E5A2C15D8FCE15E93A81A182B4E851CB |
365692B74227CC2580556825AE10E5D82835DCDA32DE4FDD09F9AB6E234837A3 |
D97E413DAACB0EA087B820A45DDC4E82034A4E6CCF6E4859316759C1C4F4BADA |
77406572943D870289F371E28927C2617DF8E1875501B267F3790F2868A83DFC |
F08A57BC026620E692BD87DDD0E8C0C27567D12B0E3A4F52875C2E12FA0C92D0 |
25A515A99A22326B2A81610A738CA97153E0935DC14D73815E350B8AF0839A7D |
727EA19E896C54EB27E87B7CEB2D6F79CB2DB7DCC2EEC55CDF38191FDE70C30D |
A4AE8539824B91138E4FE572F6660E2326DF8B39023D9EA4AD717C9D0134BB2A |
4F04571E0099E3E24AB8D2E655D288AB85D57B447E52D37324DD408B961C318D |
0B17B3427C9A6E3D06BD5B970CCE4D4CC8B7A8E5870C3853A0EA5C9235052154 |
4FB2DB7558832AAD076F3AEDF42F5FFD775611D891B1B77BFE6BCEAE2F1F838E |
ECEFDCD69C9DBAF0BDA775DA9B2FBBEA92D66C7CF8A1870D372DC39D6D04D9ED |
ACDC7BAFD3CF78EFD6C7378E2E1BEFC6516B66CA747B2B1B4377DE7ADB37AFFC |
CA415D4B6359F1FCD964AA6C2A7EBD36157777F6274B43A313AD99B8E42781B7 |
B5DD5F3954DE39D31F0BCDFE2B563EFCF496D5E5EACA657B6DC1508F8DFDD92B |
5FF1B7FF707D27B5AC8B496A3A5ED6F2AD6B9E25791F032F8339502957D82C64 |
B6355B0AE7B2AD7C77379D497307A3814DF79BDFFC0653C934A11B06FB030F5B |
98959A46B5D9EAC0C4CF6A81D748A271E3EF6BD2BA67867D7FD80B4A9997E475 |
C05807B6419252AA091C78AB806137E0C772EA05C6B37CD1C6D62C95A0BC8D3F |
95DA97EAF4BBADDC3386BD3CBADF9AE71D7DCCB537DF9CC6C9A9A79EFA777FFF |
77764914095D37512A18018524D6060B55541592163DEBCC7CBD4BC011F374EC |
FECB9F557DC46B3EE739CF79E08107C4EA2A24260D7AF1342C3A7445DD30AC5B |
3C3C43719882BFFEEBBFBEF5D65BF157180DF890A5C3AA53606AC98586B9A141 |
2960D59EB9A51F544F448AF9059D0E4B699821F6169013F80E452BBB072968AC |
56EE2CCAE72D5C9E225E6D803C640084C5B4B49C58B54EA098520A5531B0DF65 |
225537CDF495CCA52CAF35E2ABD2361760DD14149A6EEB9501722553006D0423 |
A246D1FE518568BA3BE674CF299A768B820451163B1D950A6B52D5B180633160 |
05DBEAABFC0A5873AA898608C6DAD2331083866B72AD7B7F701912339AF83A89 |
304DD18262A167C643E81EA5E899A1615A14AA024A0B234FC5868D849FA55AB8 |
C724DC4F3BEDB46BAFBD160372C20927E0877DF6D907273372CB95CD0972A1D1 |
328F32A72C9846093D2D6E3C7E912E3235965A20509399A240994FAEE68F2EF1 |
A7D415CD43F9880C6368FBA9AD85BA5D51AC70668951E7BDC8D1EA7674C07051 |
D608EBAF6590E424F59C6BBE206F6472AA4BE3B8CB8A49B0558BD22EA6B05DB8 |
ECB951C5C8B35001BBDA97E6302B83B5CBF0031E1EEAF6FDEF7FFFA5975E8A27 |
64B85E30104A90A38E3A0A361C6501E7DA6DA4B898878721CB2A43266BBCF4B4 |
B37AA5D15DED280BECA6DB198D6E9DD81ED6B3D5E578DDDB4FDAC79FFAF0B9A7 |
B6BA3B82D2F27AB5363B353D940FE08B8F3E7AA6DD8227F7C6379F627B2378A6 |
3B3DBDDFE8F8CB8E78FE75975C7EF9A72FF6A3F6259FFEEC673E7E61889559A9 |
F693DEC6D6E69543ABBA516B7B77BA3632BA616AB236D63CE12DA7DCF09D6F3F |
B56572B967F6C2CB6EDFD58AE2E5C34B9F9EDE71D811CFFDEF7B7F1D552D5438 |
89B3A9246AB3671041EB99A5A284AEA297C37892C5F1B5663DA7258E4247DCF2 |
5021BFFCE52F4D9EACA1F2580CA4B60705ECA7A65969CE76FBA997D9946FBF3F |
149883631B481F3566ACE4374B76D25BBD7E0BC662E04739041A16810FB7384B |
AD071C84E53C071CA450D250B4311CFA20F32AC67F1A0ADB33138C7E2D19F9ED |
C414647F73F978679B057658A0561E7B9B9A9DC10FBD7ECF337388D7A0E874CE |
1826ED54426A58AE433007D7869C36C83A9764C33804B7260F8341E57FFDEB5F |
A78427EE8F85B6595E49EC366395D3E28A41572A4AF2F35BC403D17727F73095 |
F78D37DEF8F6B7BF9D713BCF294EA16A5092557AC138614271625077E2CA975F |
7EF939E79C43AE40B735855A7C9ADCC9663C898BC12D1571418E7C6CB12CB3F8 |
9314C26BD6AC218792EBF2EDB60CC90D650972A4E8054127ECF9C6F1B742E779 |
CF7BDE7FFFF77F730818D9C3BD311F90057C20FCE9F8E38FBFEDB6DB2C955D91 |
96A7C414FA948FA5D6541C1186EC64F80B17CA4FD8DF83EA99C13465FB5D8345 |
ED8076BB61188A61829D8C65A60866EE7E8315197817782512A2812CA95C64CA |
4DDF690CC743700F992CA6B0D1C8A0C650FC1EFA92327EAEBAAF030E38004A85 |
CC187EC13FCE65477D494B901901F1B8F234AA4995EBB9A5505CEB8A87BBB5F0 |
D2400B434C94EFBCA9CA5561586CD9B2E5F4D34FC7BEC575F0B28CAC4ACDB830 |
349CCF8EF45845388116890EA667B01BAFBEFA6AA603F4392E8239623DBAD0FF |
842D7CE31BDF78EF7BDF4B19A4C6852CB976B1D69C2C02CB859624AD18D16778 |
18F181B01B20B10EB8C241071D04139E806A15101367CE95A3D9E41069F607A0 |
EF66F16C45E6709B1B07DDADBC328D54760BC68672ED0937036A6C454F29EAB4 |
861A9599560FBF0D2D5BBD6BCB0ED35C7BF41BDE08A5FBD8D35B1A23CB3B89D7 |
E9277E589AACAEACA5B3A5D9A7C6D3ED23BDED3B1EFDF5E4C62796346BBB7AFE |
81071E9864798D409E1AB45AADDFFBDEB55FB9AF1585CD252B3BBBDEFA9263A6 |
66834953AE8FA6A3FDD1D9F6D3CF5F5A31D3C147CEB9E20B5FF8F892A18EDFA9 |
4E443BBD5ABAB3932E1F5DBD35DB545A75389CFB1595FEB6E97447BFB3EFF8B2 |
4D3BB70F8D8E6E9D9C4C030F62A9451BDDB34E709CA509659A370777567519B1 |
429C417C02E9C492480E3B56176BD3253DDC7E507F940256F13A5D8EDF25E066 |
760DA7DE8199B736811AB6ECCE98B9B864269210C60EC47C2D2C599EAFB86F9B |
38FAA69A9AA120AC87E534CEBA498C933B26EB98B86D82AE97CD04FE54904DC3 |
E94FB218836E730273ED63DDC02F6C688C9E949312856E71ADA41039C0294C4E |
3AE9A4EBAFBF9E182BB6ACA763C05F19975295C140B9A652B002A30C2CBCDD8E |
1BEF4EEC154E932BE982A295E452CE9E1397169D91160A798579DDD0311F8FE6 |
2C8D604A03375A207756941DD4B5CA5569CFBA1689B86F598FCAE1554855EA5C |
BE3BAE8F17578F3B7715995C79B31F8626D40DC7CEF996B8DF473EF29175EBD6 |
E14157AC58016D9F1574D2A2A5C6A81D7CF0C10F3FFC70563443660A41A284FE |
10453055A9182B55E321D5A5D211333FCF472DEB862044696D16F738A1097EF4 |
A31F5176D3D0236469E07CFDEAA2AB0E3DF4D0871E7A489D18984AC9E6379697 |
432C1E416522599AEC86075DD605167731C8B3877208E54A19873CEFBCF3E00C |
9982E1C82F9ADED0BE3345390D75834AB44D5157C36FD1EB15EF74565050B93B |
8ACC65DCCC2AEB625081F0457E9116B1FA4A697608FE320EA78C123FF895242F |
6AD5E20699DDF1E4E79805E2158D138C5DB81BB990F06C0C03E0936BAEB9E6CC |
33CFA4EF8B8950198682486E3F705C4D38640578F50985110504FE7FD18B5EF4 |
AFFFFAAFF4DDD558DB8D121122C080D26E45D2EF95FB62DD7279F84C0130A4C4 |
C4C569A7BABDA8CDFCE81C4EBB64DDE73E74DE79516A96ADDE67473B4D5BF1AB |
DEF1DE47828360F7B055146BC9A0512C5561BCBD3FB3FDD907EDFDEE93FFFA6F |
5EFCDC030E588B77DBBA7973BD39CC6B421D58D04ACED06EF1654BC71AA5FDBF |
79D547DE74C20BC221F3F066D39B364B6DAF78B3EFC8F2DEC4B6A60957D4C64C |
6F7B23ED2E2FADF4A2DACA6796FEBFE7FEE9B76FB867AA7CFFFA3E448C09FA66 |
C2983F39F899BF7AE801AB6B6AB5995E67060FBC74C9933B262C9BB26F53BE69 |
66FFE7A6E39A17DB91C068AB57AF86852A6F4CD13861D7B11820F1E906FC0FCA |
9038C8FC3AD3315427A61A36E3749FD4DB2F0896662648E304A3E5995E126626 |
B6E549F645BDFC25ACFD9006A66AFD60B86EA61F2550BAD8B17D936ECD0C2C5F |
588870575BF87A66288FB22254463B8FF6345EF6DE7BEFF51CD83F253B5F567B |
8D883385D920CFAFBCF24AD2D468FD981C8AF1177FF117B09BA5C9949372B9ED |
4C1107CA165014FFDE7163EF73BAE0F080EFBCF34ED6CB50465149AB4B2E668A |
693225CE5831B55B9C8D5B83601C6A5899C27EC110C59161809711633544E22A |
523B5E9C40C88E2908C5E46871B469AFD326A3DED568107A894572E28927FEE7 |
7FFE27F3F13828585CD94599A6F2D4016492C7582BBE46D3D2AD4482447BDDEB |
5E87BF7EEB5BDF62DA8F46A51C05E320939536A0FFAE80096F86CB2A89CB059D |
383DD7248BA57818F716E6991D5D16536024B996A054C8D7734A7DF403FC098A |
572E4A35215E88DBCA1CCE0A6E75EA579A05CCF02B13C997A50E1603A5BEB267 |
EA32690EFDC00A1C952C7B7921D0002C8845B7AC32A27272A32E14EE035C25AE |
63AAE7098B83BD375846CC2828953D351C465849043730659C7C86EFF4D066AE |
9A8BE4F9CF7FFE2F7EF10B5398A5C6A12BE24A50DC854D05A002319858B8C4C9 |
FB054B14334CB4DED8DD4802976B89A6212D71E160855C5385F1B7BFFDED37BE |
F18D0A8CB34A92490DEE907DF7DD97F4AD9247DC785941E8ED0EA09B6ED7F17B |
1530D7069C4E5C8DEF0E5F019EFD85175E68722B5BC5DFC2B56AF7CE13945936 |
B664A8D5EE6461AD1D6393D70E3EF655D5A125CDD6D32B968D675137EDB5968D |
364DD4DEB165D38A654BB724CD91E17A6B6A62666647A35A9B989AE974E3952B |
F77AC111876304B08466DB2D367C7D6AE3C6DB6FBFFDE24B3F5D4D9606DEA3C7 |
1DF7BA2438B8B6AABEE3E9FF63BCBD837863DD9865A5712FF6C787D2DE8EEE41 |
F57D47FC99787667AD71509A3D5DEAED28579EF558F248544F6726D64C79EBDB |
19FC3F6CF0D2AE7EB47CD5B227376FF77CD3F3ACBEF2F2459D25BF1B3DAD733C |
099E0A26974B6B70C71D771C77DC7126C7AC52C8C890A5A58861FCDCE73EE70A |
813FF0F0F34EA06F7FFBDBBFF295AF48B8DB29DE391124D128E4E9FFE5EC4CC0 |
E42AABF4FFDDAADE3B7B48C22661DF6415450671DC1D1C196610044431AC9100 |
41F65D2024806CB26FC230880828A088A08038A3A322ABC08008486411086BC8 |
DAE9ADAAFE6FD52FF7E5F4ADEE16FFF5E4C9D35D5D75EF77BFE5ACEF794FA93C |
453A5207AA81B71A2C97529D0BBA5EDDDBDEA835CA1AFF0FB4D61FA75C6D7000 |
D4956EAD374BD5529A9F5AFA6A95A5D5DAD2BC9D439611C01C8C36ABC5A689EE |
A3C08C39205C4CFC75896B2D59AD51AA14E963014BB363D9DB16B9187C858ABB |
940385D0CD71E38D346F0E413B6AA821E95C6881E87A57381AB59C3F0011E72A |
41E4462D9023F9FAF10AD115262C1C759EB50993A30F9F74D249F3E6CD4B3906 |
48E25A5F24680F0BBDE3DB6E1728D39C5FD1CAD59CB3367213996FD8E594DEBD |
A8065DF3939FFCE46F7FFB5B9E2E2AE0950F62B91CCD258F2F0B0D0CCCAFE428 |
8D892F5866C94DB80BC0E9B124ECE961AB69B5CBFFF33FFF33E52859D75093D5 |
487937A8D1259A949674C60B2FBC80EDA3E976DE31A297FD752EE8321BA62942 |
827D0E992CCFB56BB7CDE3013314DA22CEA9F7963DAD51362EEB17F9F334B6A3 |
8F3E5ADB25F68A77D3C6B3CF3EFBB0C30E339574CA41BCD2C7471C71C429A79C |
E2980F515FBAB379B1206E4D8DD8831E8446551837A6F2D0BDF6DA6BAF3BEEB8 |
43979563AD53C412537EE7661810C2617F50A4A45F09FFC6AA79FDBFC30E3BDC |
7FFFFDC0E323EFB12EA59FA1D4D753038C2CE5B45F6EE6E5780C27440FA80113 |
69C03223640D888C435580473971AB8FC1C3AC99D453D8DA356F0C2B851C89E1 |
BE98D3A5061AF61CF67934B09ACB33865D770BD042F9168682ABA531296C8F16 |
701F7A8DE9685DB6BCB74AC8366BFFFA2187B78D9DFCC49FFFB2FEB85A394B63 |
3ADB06562C5BBAF0CD555799581B90B2AB0EB68CEB1D90335679E16F2F4F99B6 |
C63B8B96748D9D3C5049E3CAF50AC0AC51883565DAD459B366690EFFE737BF1E |
DBBAB0ADEDD3EF56DFBAFA9AF34A6FBFBBF6F405AFF46CF5CA823B5A07577BF7 |
DDE5F2DFCA6D63ABED4FB72EDD785C7A636979F5CD3B524F6FDB6A9D6BAC5D9B |
347FF9A3935AA72C2FA56F1CBCC789175EB9BC56A7D2A8B49517F757F4437B77 |
4B6FDF601D9F5D3F330DED3B5823F25C4FA936CE1D69FE1933667CEF7BDF93E9 |
23D3D01695A317262481F19F988D96188FFF1FF58053A049A75FD6CAE857D692 |
6AD5B654D5969D9465E36AA531A9DA99CAEFB60F962AF5AE099D39CF46E38152 |
7B65E5D3B43402EC3DB506BEAC9C1E2BB5F5572BBDD5CA0A4071F2FDB30604A4 |
D267B1A30D0608401B83CAD7B80F0D5D24009B72BE2A82616C1BFE776A26E5C5 |
9F84C72431A472002DF2A4054F97604FF4806B4399859A5FD8FD044D89E25ADB |
A5DCB94759C413870CC117426B20A60AD16FCBD588B9B371800D4120935B63E5 |
3357DCE8E31FFFF8AF7FFDEBC83AAC8B40BCC35D7039489923F38DE2B61026CC |
800AD0277529FB60F16179B91066A38D367AF2C9275D05531008F53975C3617B |
81F15AA6C4423444923396994261AABB521E61367875EEDCB973E6CC411C93E7 |
D3ED20F923CAC49E30C319B534265624D0878F32ECC26B8AA554183FF146FB34 |
69A8EFCB0FFA8C565AFBF580030EB8E9A69B7034638D5DB30035790A81779E5A |
9BFEDC73CFFDEA57BF7AE9A5971E7AE8A129EFC6185BE099E6228DAC83AFBAEA |
AA9933679AFE0DCDE1A2755D07BDB8F1C61BEB52D3A74FBFF3CE3B3D5A3D88B6 |
0269069C248C0F7D40C3A3A1AFF531711EF90DF7DD771FD11E93B967792741C7 |
A2F5D75AA39A8872DB3A2C368F423BB41B39A118AA5E5A5632AC1C2A5405B56A |
38C7CED3F804FABEB1EFC5165B6C21694B1F4C2738B027DC9E8C872572A3F1C8 |
6439EAA8A3249775350083FA8C9646FEAEFB626DB6D9664F3CF1844F8BAD5452 |
ECA4936DF794021F99A1E9661431D503DE79F34EE3E7519A01D84C4EB94512AB |
35CC4AEDFCB7456144CE571ACD66CBA56A7B4BB9AFBF2E26AAF5BCCC3716F6B5 |
620D8F1D3FB1F1FF04244BEDDD57A74E5DE5DDC5F2427B071B6265D1A225E3C6 |
8C6F2FB700BA696B80C3E79D79066D57AAE5BF4C6EF9EC5DBFFED140AD6F9DDA |
D6D5B7EFEF9BD27EDE2D93178E934735AE6DB5A796A68E850B376B9BFC9B29E5 |
C92FDD38B77DD96B5DADABB70CF4ADBB5AC7EA4BB67AA3EFF17275ED15B517CF |
BAE6BFF6DE7FDFA9D3D77CFAA557064B69F2AA937BFA7A572C5E9E5AEB65B3A5 |
8602AE0D5609C89202364C06218010D47E26D3C93B2608C456F332B1971068FF |
1F0A98D823D7077EB864294DC0AA2D59EAAA56EA6A38B58C2FB7BD53E969CF52 |
67963A1A5D81DB72B6CC31593D515C656DB2D28A4AB5AF561BCC6A0F341E6D70 |
658EBB6145D559A2533DA8DF1086DA09D3A64D735D1C2A24E545103127CACFD8 |
A6905E4100C906367632923DE97DFAA6571B9DC1B0A46B81A0DE5BDD9B3F5A96 |
A3E4806B39E12BC06C833F62C315009B04A8C054B28EA4CF5CE8D8ACA8FCC829 |
4F4D3A2C6F6F272EB444841ECD4D2CA0C1816927E53112C9FF6BAEB9C66DD6BE |
FFFDEFEFBEFBEE1223975D76D9D5575FFD873FFCC1690E63D0DC83C70130B628 |
082F5B1229A4F30AA0EE6172C0466A49CE6ABEEC0641454D3B49C332D16D9602 |
38DD286352A772B71F7AE8A1E38E3BEE8C33CE807684A25544248CE1F68631D9 |
340EED09A2223A5DF296E40DCF9F3FBF50AD344AD98F341F9DCF292CF1562B6C |
0E5E38D9B159A1D606A7301B5A0CEDC3ECC215F656D43AFAAEFE645564CC4884 |
0D4770ECB0E347991D7BECB1575C710591347052D82591FCD96152D3B6B92964 |
CA1B44E295F2C8667D72F1F4B6DB6E0BDB94DCE5DFFFFEF78F3CF2882B1CF415 |
B4B8C1D20E231702F2592866E54D742AA372F95996B7CC8A9960FBB8AE07230D |
C329F2FF071E78E02DB7DC82A74B88897DC8033AEE82F1A7B9822E4026D19147 |
1E49DB700C1AC362ED30792A3845B109B92EA5E9723B8742C2A694374EB15521 |
13818B10411976BB8EE481D572261323F84C4812F3CA5C5FE61439A08259597F |
475E55B9D45E4E837D7DE3BA5A56F40C76B7A6DE81BA32686FAD239BC64E1AF3 |
EA5BCBCAADA5D6CEAE254B96B5754FED5BBE3495500183DAEFDD1D1DCB97F6B6 |
135E4BF5B3DCD3D7FFF39FDF59AFADD4665BB3D4FFABEECBCE3E60D96A8FBFB0 |
206DD49DB5B44EDB79BFABDAC7545F7FEBB9D6F1D5BE6CCDE5958F2C5ADAD296 |
551FFCEF3FBED136F5EDB65FADD9B1DE5FBFF7E5B5B2CF8C1BF3ECE281C51DFD |
D35FACBE34D088B8F69652E7C4EE154B7BA4A0C68CAF933DE9694A0D19552F40 |
4A25CF36DC0B8E393583311D83F14AB14388EBE84F9151E77DBE704089097130 |
C9074BEC57EB09EA527D7095C1F6549D90B2F12DED6D83BD9DA945FFDA53ADA5 |
F12FD5693A2AFDF5D0724902B8B7529588ACA4AC37D5FDFEE709B9670D47B6DA |
3856B55ABECE55A4E5061B6CF0FCF3CF536DAF3D86BE8934790C353E9ACD35A2 |
508536509A164E31B2574B7CE185174A02B8562705068814DCCDF70FC2420BC4 |
05B2968AE8CE42DC8E37258DA57AF4D4CF3EFBECB0E59A05F9E95E64A82404D1 |
D4A953B55292EAD007E9E92EB9E412CB28DF5D7B43AB89B8DB6DB7DD7EFAD39F |
6A6C85E6C118D93A9E68713B0C2860B696BEAE61CB77927B696735124723E2B4 |
85B409A5A15037C384A0D96492DD8458B578D63159A83876FF7613699A2630D6 |
A871DD484EA44782C1431739E490436468E857D73BEABE525146C4452986F4E7 |
C9E90F38ECC2A3176DDA3873167746B43B2084824102F7D7141C31B5500B0C0F |
B22EB5571C7376D7207C441ED6AD31A3898A1A4821DED8FC02E646FE18BC5B0A |
2821363134179C4F08E73475981A11D69872CF5BB3AA3BCAA6F1767798AE80A5 |
228A6BBA50D72DAC6CDE9E3B79575E79E561871D868903A6CC6D3D5826D495B9 |
AC63A494222536954B95525EF48C94C1DB00B817ABF13C4BFA8CBEE546DFFAD6 |
A9A79E2A75EB4A4794D93EFBEC73E38D371AB6E6D6CEBC8CF0D2A4E92BCC30FB |
96E5DB6FBFFDAEBBEEBAE9D3A7937B662381464629BA409905BAE1861B4E3CF1 |
44F9135815CD10E834AA024EA1AF03803E4DA34642EA87280528922DB6D8E2FE |
FBEF8FA7377A27689D7ABC54B2A394EA0ABD21E277DD6DF7FBEEBBEFB537DE6C |
3402A86727DBBBBAFAEB33D636902A13274F58F8E6EBA5D6ACDA5FE7C32BD752 |
B9E14EF5CAEC2B971E78F821DD5A52A336BEEBEA99FB947A5E7B74711A3F75CD |
1D3658EFC1A77EF3DB979F6A59B16947C760B57759A973EC05DFBD7E45A53B2B |
F74E9AB8E4B8EF5FDF31F50B8B1694BA7E755AA9B26AE7E0C6D5D26F5AAAAB97 |
27AE78E3DD77B331EDCB07FAA487B38EB65A4FFF84091397BF6B105656ADD9C7 |
7B8F22B896D76F6033C1AE0A6ADD936982FB949BF5B19F47FA475E3E1760F750 |
FF2B538C0DDC526A48FFD2607F4B56D5A19A5029B797DB3AA45007074AF51873 |
E3E8D7C937AA1D6DED323017F7D5778C0C3A3D59EFE0605FE3130D35FE1E2A47 |
764F7B6B1B95395AD3B5D65A0BE5446AC33BB0A080D9901CC6830F3EF8AAABAE |
82B854BBE599679E01901C396539473A14D2768623D926B61F1CC5A0832EE9EF |
C11A6AA12C9EB2B1C83305AA8E224680B79FFEF4A7EFBAEB2E1BE87A7F975D76 |
914B80148DF78DEB125F0C9B1261560AE12971BDF3CE3B5F74D14544F25110FA |
C1081B7F9D2CB5F9EAB1B4F4B386AD9981C1D0063A37420E584F43C6E0FD69A0 |
5CAC92209A3D12B82CF301768DBF33916EF9423495E21CBDAF71EB6764993E5C |
6DB443479A541B5C92D2107A30A21F48375D478739CBDB3732447E96E542F766 |
39CD279C700273917205ECF3338A07ECC6AB7E137DEFFD5D78728296EC5D9A52 |
B17ED5A1CD74539EE4DF6CB3CD9E7EFA69720CA43CBD351DEEF6568BC45EE433 |
52C3221989539A44A9F919341BDA2BD204D2790681174AD676DD75D7DB6EBB4D |
A74B13FBB5AF7DEDACB3CEB2DCD1B63BEEB8E34CC2C219A0541F880D1DB3750B |
798414B7E047D6F206C62B036E0D2A1C6B9A8B2FBEF8F0C30F67D56C9C11FE82 |
078A5DA4A770BC14CB89E53375409677352058ED131BB306963B98BD461E48DD |
1E7DF4D10622A2A75D4FC554CB8896E8F19FB057A8764BB9C7C0574C06628F47 |
DFD2E46B7E224B17C23DE5B0C68841939494B0C0439A3B77AEE6E7BD4315F6EA |
48216826C7D287B6A986B3B9373026FCA69B6E2A9728EEE15A5EBD3DAE3DEB1D |
A87717EAED1B9482ADF5D7490F75F534D03F658D35DE7AF56FD3565BF59DB75E |
AF0CF48D1FD3BD74D9F2310DEC4FDD1995DFD956D6814F55898952476A5DD1D7 |
D7A1ADA8BBB7B5FEE8B65B3956C7CE386C6AE7330B16A78FEF72D6C05BAF3CF3 |
EBCB964F99FC91E31E59346679FB60A97B70E28ADE4595F6775BBAA6F4F60EDC |
F3CBCBA7BDB255FF268FF62CDAE1951B3FDB92A6ADD29D7A96D795BF16A9B5A3 |
7569DF40E7E4712B962DD5EDD7FAC0F497FFFA4257439BE4654879AF852C7576 |
BC878AA01ACDD5DB168B18D36EDD23CBC9C6903EEFEE78E91F79B995596C8656 |
0F8C657532AEACD4DADADED5D25AAE47640665BE0FD62AA5526B5BB9561DECEB |
2FE72255FBAC5BB2B1AB6BB094BDB56C799D9CB2ABABA5AD75A06F20ADE8A9F7 |
7D8A122CFCECF496F6A1EBFE0B0AD891393B3F00E9A9E72900FB536EA3C77710 |
7706C99A13A3927763CBF212C498034EA3EA60D3C294F266ED2BF767C3BC3615 |
B1A587D421EC1998CEFA134820B73B8C69E9987689B96AC35D7DB471C139D480 |
BFAAA1C9105361E3DEA16F7D98A4153D6DEDB863F0456F3316F2E87FF0BFB550 |
3DA8EF9A988148BB49EC4754C011D3454205598FBFEB8027974B392D67A1CDA4 |
D549356FC964E82970003C77474735FA5AA3D6DBDCF41C2DD2F82D792773FDEC |
7B8D7460223F67CAFD6F8E9FC6E30C7184E36BA5F9FA77BEF39DD34F3F1D7D13 |
032CB18B031EB0A433E485A5406EEED5657F3012DD7DBBEDB67BECB1C766CE9C |
79F9E5974B2E703B23239C6BC4C888BCC1C46FB1ECAC600043A6DCDA289C04C6 |
5CA869D6F5B5BD6C47F32CA59C6DD5148631A7EBBE8460EE318FB2BCC09C0C82 |
46222547DB0663A34826C9EABCFBEEBB657BB924AC10FDEB6ABC403D7CF5AB5F |
FDC10F7EE0145D296F3EEF5C4E6C55C6D7B57C80DB3515D3A64D03DCC853A341 |
23C5742177CB86D450E504D32A0A8B5547119ED82CB097BB2E30CB6BEA8D3B73 |
8B536CB8941BFB6C75CE2191404D2388747BD2661D42CBE2C3D9B367A137D964 |
937DF7DDF7D8638FF579AE05BA224B1C4798F4F98D36DA486EEECAFC6E1E318A |
666B0CDF658101DFB6CB4AF32EAD8CBA0F34DAEEDE7DEF3D48A2E30EDE6B49FF |
925267FAFCC777EF5FB241CBE4D7EF7CF0DE35D738EAED71D992BE3726ACDAFD |
C682C109E32674B4BCD9B6E863CFDCF1B954CB3A52B9D4FACB9E8113DABA9FAA |
2CEF1A2371D1F78AB497FCEFBE9E9E8EEEEE5EB9B00DBA985B6FBDB56D456FA9 |
CEF451EF2F3490AA7D957A07A404323AF77DA9E1D67ED6D3C9B2B78395F27088 |
77B8CFB89E941E004384DD708CEE05A562FD8124F4ACF2BEB3AA4C8ED334DEF0 |
7CD2BD2F3989D4E3AEB7DE7ACF3DF79C3E49057381C31C6DAAB5A020CD1556A3 |
381E3ECEE670A57D38C50205062817525E71C515471E79A4E1CA3C0B848E1AF6 |
861B6E28670311E4E8AEF96E5D8AC9C1E71045CDEA7930AA9400981E99CDE636 |
3031E504CC883D499A52F7353312A2353A66CED120FC750A3466B3F4B8B1586D |
685307648253AE38A6D07AF02086CB60D0E88206E2B013C0E850021A359DC52F |
4BE9F87301E399F28A093716AA072323880B8FD35C5F9812318D6C76081F75EE |
94055A2BD33915C20880EC41D29A76038B062E7BD6D23EB7AF40E860948D6837 |
02CB8EBD72E28927DE7CF3CDEC78A6869C90C1697A47DB5D4794EF3A85C9921B |
FA6F70C151471D75F5D557EBBB11F8A38F45DF9491B86B34F954EA79E2325045 |
0A630B52DED953AB0D7E00F14B810D8D4E91FBCDA2849C28E1F433CF3C73DEBC |
794E25E0497B89110D9C076F236C43470562C5BAAD511C91AF7CE52B3FFCE10F |
65554054E998367869F71E30FCDB958B29A7DF9A33678E7C591357817807EDEC |
3353CA79955D5565C50C4681C974F5335549B6365201E9D0D0E56BAFBDB6CEEA |
830F3E089D10F841E690E83414B2D8E648735C07625C548AC72523984650848D |
2DFF03F606F062B16BA1F11A6EAD91426F474B5E0B0EE6900F4024C4C927BA6E |
3A78466B4A38CF8093D6B59C668E3B5A3720C8DE633819AC37FEABEFFCD6D665 |
CB97DD73EFBDBA91D6BAB658CAAFFBE8130F79F62FF767E5D7B3716FDE7E4779 |
E96B170D0E7EACA3BDDC238F767C6B7FCF40A53E937F4A533E937A577495D6E9 |
59F6B731137B972F4D2D95AE81C1CE3AB3F292DE7A7F7A3D57032504E78CDCFA |
CEC1AC560F41D7A14B8D2467BD17425D9E0C56A83FD47EB6CB0272C78C4E6C09 |
BD235D2BB1EE744F2DA7F88F28C8349C0317B3E92920895C60EA8260A7903486 |
8B2EBAE8D0430F050941EBAA94834E225088D498E941B4FD24C76A8197D75524 |
D043C6A03A6647418916E49EA504EAD608C172E8096F191B632AD40268BA0E3E |
F8E08B2FBE181F89ADBBD75E7BDD74D34D4C02A516FCD56923C4B24705E1924B |
9023EAC550099D29CE8EA9512C2B104D2824742143BDF0C20B67CD9A65EB902D |
8DD677DD8A260DFCD4ECD9B3E5475143CCE3BB66A159017B025DB66A0B03CA68 |
1F6ADFDD855598E08E2FF22D1BC7B138C8555ED8460810F6B0C3811ED87BDF64 |
E200DF97F2AECE60A4E350528EC9245F18259DE5A6CBA7B06EE01424B3654961 |
EC2E396D0DD7A8547D405AE4BCF3CED39E30A267D88D88F1B2F1C61B3FFBECB3 |
DA4FD291D676AE7861C750136553EED4534F3DE5945362C1FEB00A38364BE644 |
45925537AE6175C17339408A94E77F0A661C353AA3F122465A10070E9B177880 |
4D6E35AC02B6856BF70BD3981D89794178C7DDAB5829E2197EBAD818240B0D95 |
5935A41EBEBE0B065054EE225C7822D0D7664FA57093C0BBABC9A58FB5D69C1C |
1367A6D01184C3401E451BF2A5975E72F5B335960DB5E6AD52CB29F4409BA3C9 |
38428CD6640EB89B968C9A968F7EF4A3BFFBDDEFE2D54C90AE47C0642607A9EF |
F2EB0D37DCF0B5AF7D4DBFAEBEFAEAEEEF94023423068D0013447A325B606C5D |
FB558510BA5B4016E2A5C8CA8865E50AD6C1C62B4449940657B27F2C5BD13379 |
D2E48B2FBDE4FFFEEFFFEA5AA4B6A2D4AD25E97FF14F69C5DB5353E78BE569CB |
7FF0A33FA4DE57DADA53BF4E58A55D4AF3DAEF9D73EA49472F7A5D9258639870 |
C9B9577DF3F8AFA4D6D2B2DE7163A7742F59FAB7D52734EAD9AA15FAFB3AD85C |
6E8C360DE5788FEE26EF509E7EEDB5D7EEBFFFFEDA42A951BD566070D384E87F |
EC30192E10B44506B1B8880E0916B42F2F9C1E6DCB73CE3907BA508AB6F7DC73 |
4F1D5B0434FF47A08CAFA91F0082D1881E418472D23ED765A581B476BA854D04 |
FD40AC8B80A70FF54820B252E8FCC1A9F491B4F64D4323790CD5DBAFDE73E988 |
23F4742001795307444FCAA1003C1B93BBBA29559710BFFB2E5C5346F9165B6C |
F1873FFC0158A851AB8E00A3442211A191CFA67A36AD15CE181C521AC3698D17 |
F668A1F227B2D6FB748CA2804D228BD2C5BCC0C2367316513DE7AAB8381A3AE5 |
2C0BDCCB451951395A01A3596C824352AD3964E1EA043B2984A0535EB582A436 |
52D407955381FC25504050CE822C05A7CAF077AEEF1423E827A216E060B3BC0C |
06EB1E35F69FFFF99F3A6C3C0C95F8C36EC41861DB72CB2D639149CAC389EC03 |
7F858EEBE848C8CD011CC5CC5F2C71A6DDFACC99332FB9E4122AF34C9C843DC1 |
72CA283EFFFCF391146E12E03801D3A28F012907179042E957296FD18C243DF9 |
E493D1499A433D977C91B973E78E5455EC4C33C13AB62F019928A19A59A9BD4C |
F85286F5C6E9B502AB063ED8EA50D653D84C8D5C8D5A1C7F22E53DA8F5085B6D |
B5150D2ACC89A65B53086E051C475860FBE24D7ED69FC8703B8247C2B880A7B3 |
371F6B15DC82C2CACF941AAC38661F907ECC50AD1DDE27219C5A5E164C93D1AC |
4121A22FEA82DA09FA22E790398FA12AFF1C4B44341EFD4F7F654C6C561F260A |
F02311EA68EFD9146C44EA3C816CA758B0C1A3B1F1B4ED19EACA46670D52BCBE |
FE3EAD7D477BC701330FD44DEB519CDA92E5834B2AB59681A563AB4B6BD5F2AB |
CFBEF6F45DF73C3469C5A49E5A5A75CA84850B174F98307E69DF7C29E3556A1F |
AF4DF85DCFD271B5D4B574F02DCD757BE7B49EDE775BC6F7B42E6FEB1FE82F65 |
254C5E265C4EE15F5EFA2B31CD3A2E49276EA02E7C2943CAF2AE9708388E8F7E |
95B38B414C504D3386499105F2D414729F8523138F796A8A4513B8E2E0D07B27 |
E5857914C545218E11E9B3C075288867AB2382534EF9A7D95E6FBDF5B46A6C39 |
22701277FAA4BB0A462CCBE8096C441F86B5F798C39E3192646D8156803E5D33 |
C96922E2AA4F125DC395D4F8E7CD9B77D2492711B6D4F82582EEB8E30E083D30 |
7669EA0A5F1BB3C441269F65D25CC46CA9D189CF2CBF05329FF8ABBB1239A568 |
C888A422CD4F7D82ACDB34879A5BED0D074B4652C05CDF4811027EF178DAAD92 |
6F7DD96597A1A19DE00014421136B43C9041D9AF2D28E018D6D203CA28E72CAF |
240989D6047B17E311F27A22AE0EA7783939BD24E41CBF45C099AECF8D1521C7 |
001FFFD9CF7EF6BEFBEEB348D5826913A0D578F3C4134F94EFCB93E82EF25365 |
308EE201E37C801AD3451CD884C48305C09C417E696C16790E60326097BE6543 |
A9C039CCC43D7460F08911AC7C9183AAF775775D70DD75D7D577A5CC4C1740CD |
B4BE15034A3A065AB34278304221E80E66167552E3265B29685FE818192A4B6E |
14B1B7722C0C40DBB976AD5075DA2C028CFD436720DD4C64163525366C61EBB3 |
C108CCEAE7F5D75F5F0735BACE2D431BE8A65CFE6639AD8C0E0C54245FF8C217 |
EEBAEB2E8D811096D1064624149C60AFA96E044927A962BB26DE09C47E38F304 |
C458B528CA4BA12F217B5B42EA3BDFF90E9005AAA5F5C5030F3CF08A2BAEE029 |
7095F09B8D87E47965D49F70C209718D484BB3B58E3CF2C86BAEB906A3844037 |
5B9470742CC6709D652162590AECBE7E275A2126616D2B95A57DDB5ADBB4F557 |
F4AED864D34D3FF5A94FD5DB63D726B7748E2DB74D5CF2CE8BE3C7BDFAFC5F9E |
E8EEFEE8BB8B56FFF12D470FD6A4F5534BA96DB0DA3FA675AD6C704C5FF6F429 |
E77DF384E32E2AB5A4EAA01479EA5DDE56AA75C9BA2EA5A51D6D1D3A293AF20F |
3CF0C0DB0B57DAD383AD592A9575D3D654EF865B1DACE89FFCE3F6A0309C02F0 |
C1A19694FE5A3A929AC36F7FFBDB5B6FBDF5A38F3ECA7672FFAE61A1E969680D |
8FFF6A6BDEA6DE8F7EF4A3BDF6DA2BA6CC35639A43E73BA2F6C5ADE96EBCB4D6 |
CE98663977152B1BD9065DB808CD80ED635B66A3A4DEB2C0F41E49704DAFE1CD |
602F369229A6DC464115E13950F48FBC45B6BBBD8FBF2E03FA739FFBDCD5575F |
8DCAC1188D0CF04C82E13E51B960E392EBA14E04416D3C0D9B19E3128E1A421D |
F066D80DD3C0740B43AEB8F5EEBBEF7EF3CD37DBFA1F56015B1C6924FA2E2146 |
1C59C2005A59EECE9A12C725FB46529C263D48D7C289B3542496462186792135 |
78D481AE3F67CE9C830E3A28CB72BA3E5C5E965F42412A104F99F83E53639A2E |
7D5FD3B7F3CE3BDF72CB2D9B6DB6D9934F3EE99CAEE3D2BA202B8AF940852E9B |
C07B2BB68B421E1930261DF6FCF3CF3B926036AE613762CA1B40A2AB6C52902F |
D4836824B2539C18031FAB3DB7EBAEBBFEE217BF406D63813687A02927D7F47D |
FDEB5FBFF4D24B5975E8365DB4C34870926436CA4C4B21D6EF34120B0C75A22B |
04CAA11F3093E06E1BA03030A89961DCBB611530C125C6B0F7DE7BDF7AEBAD7A |
2EC223A82817B9C7DA5CBD36DF7CF3175E7841373DF8E083B5A06E8459986706 |
1693D936BC20AA8C0D0F5C7E174D0A361B712DE20D469C5E78E185C71F7F7C6A |
380AD6257CD1B07C8FC41805DD88D8606A843A1C1D1A2904CD7CA6DC17C701A5 |
0AD9F11B27C98C998C8A0AD179F6D9674B3542BF059ECE004000ABDA5A1B6EB8 |
A16695398F368DDD599398923CD699D2A5B07711CAB6E73CFFD59C9915F8B4B6 |
3A60344E3B079E6362D1DC9CFA8A421F71B092BEA6ADBDB7AFB7ABB3ABCEBF3C |
38901A36A89CF8D4DF521BB3A4A36BB59E85F54C554BADEDA9BF3EDA39EDA581 |
855BFCFC9E1B5BDAFA16BEDBD33D2EF52C4BF546C27D529FD3C74DED5EF2F65F |
4B5DA5D66CB06FD98A715DABAC585E696B5F410EA26E752DAECFEABAEBACAB29 |
5DB06C519D85A32E442BF552A47A3554DD34EC1F1C122A60E4B278F48CA79C72 |
CAB1C71E6BDF053983AAB6E2D4AF7295F449AF6C6157344F0B0297720FC221B0 |
20E89ABA8BD47C21746F1455161AB3F3BE16D71E790ACD4ED83388051F933543 |
E741593C941238793452081A71E1C22187B8B0574849B82CD0522246BC092F93 |
FA8D44F74689466609073E198F859B2701563BA2142EEBE763D652D2EE5FFDEA |
576FBFFD762A7C28F821A464089107002CC3E6142029E63F326BC61704F5E4BC |
78F66141586E5DCA0C6B59750A1CDB93317DF8E187EB4D4493BD531E01816C1F |
BA4EAE3E76ACFD8D084343F550E8A5BB48D7DC79E79D9E195F7365E2D681293D |
B06E2F11A3AB6BA960C2732346EE04FB81A39D05DE7C834DF072F43FF14650AC |
5C9C76F1CE014B8EE82BAE86E60AFA1F1C1A2AB3D02529DE0E2BC6BBCD1D6F9C |
12DF72CB2D351284B851A91877ECD75864620F38E5E485663E22E465DE700D58 |
8747EAD955DBAE00B351C6A18560E580030ED061D6AED2E4B0B438D6DE25A6EC |
A8E6F4E8DA5274D68C0D06A20EB6F665EFBA2D173A866575A1116616A11E8667 |
A27F66D869E618BF8D02DDAACEF8055EE40B7C200DDBCE867684B4F969D652C0 |
F006A0996D1BDBCB079E2BA3753803DA335FFCE217AFBAEA2AFC5A5D0DE3A310 |
608C1365E0BD4F9D66957A4430DEABAFBE3A2C6CF6C5E3D18844602E2976544A |
7FD5D83875B19516FB04AB99B5B6C095EC933770FAE9A75F7FFDF5460BC68272 |
5C6DB9CE14B64A62AEB7DE7A2FBEF862A435C01CD430A89527811D4B35BCA5D9 |
5D3CA9FE97A091C9C5D2D79D9B4617DBFE81FECEAE7AB0E1AD77DEE6BB33F7FD |
FA9A1B8F79FCA9BF7D6CDBED572C79BEB5B6466F7FE79F5FBDB3B3A5EB9D57A7 |
DCF1F31BBBC7A7FEC55306AA69C294B7162DAE337C541B5C13DD63C72E5FBCBC |
CE0B554D59ADB3A53C60783348345D5CB72BB7B532C27A41546DE57A119F40F6 |
1111D5234BA1122D2021455C8432424D9164BDBEF2D4534F4573CD4AB7D90F46 |
B7156A6CEC01BBCF81FD5DC82B4E3AE924DB64CE7738E06F53CFA51FFCE03D6C |
740F058DFC1A6968D350DA0A9FA3E6171A1197DA9CF3A490EDCC18ED550BEC22 |
F88EC6721A4EEC2D8AA033915F3567FB0152A4A7E63A24AD5D166F401F32846D |
ECE60A4E32725E242D1D78232D8A7DAFEF52858129A92F9A139069C1C07256BE |
94F7F83186D1CA68941074EC1A9742CB6DD60EF56CCC170A9B1571961D24B266 |
40EE16348886673A43471C9E07240C46D8461F93D7AA8DBA12B3625BA634B4AD |
82CD9CEF7EF7BB3367CEFCFCE73F7FEFBDF7E2EE10FD5B679D758822E2259B99 |
C83BC9B9F1885A32E312DB488E82448FB6F5F9E79F8F0F4DB484F836AA9132B5 |
51080D62FECF2CC42E5AD507E44F93CBB1C03222CC7693B50E16A573C0DE04BA |
9406864127A12937D7D5BD5A099FF98B2FBE586242239178759BE858D8CAD6A4 |
3B4504E2A6A1202C4D171D217505384B23774CB3078C51864FB3C9269B68E68D |
D77594180DE44237A2D0707FEA49B7DF7EFBFBEFBFDFFB350DF5128CA488CD91 |
C8EBEBC3F25F655791B3741F5FE2BD517F1B1EA94BC9893CEFBCF35C4AAF6B5A |
4E1172E41C6A6E310151CFD449A3985D6E4E7F4C62C550B615147096D3C8212C |
4A39DDB4361E99753C0FB8D8405D0210336735B958C48DB3986C753A371354AC |
35AAF55862AA419C409A3D7B36E400921D9C028EB72E42DC1E4668CF4F44693A |
897ED4514769836160693F3CFFFCF34E4662D47A32E33E41A5B158CCEA99679E |
79DA69A791A85B595EA8D52CD773818B9735A8831BA2BCBEB1176603A577BE36 |
E3E0B1E33ADA5B174C68DDBC32B8666DDCFC579E7EB5BD7B45CFC2F137FFF857 |
DD6DEF2CED7FBBBB6BE240256BED7B77ECB8AE854B077A6AE3EBB0E7F446A923 |
D506EAFF1C23B194AC67731A432D97CA752C74C061999D1BF915BB8A31458523 |
EFB021CFA82BEB0A1897C346A1CDA71673404465100B6635F077F16652E8069D |
421012D8A963CB9182B114DAF142AEC265F1326509CD9A35EBC4134F941DF6C2 |
0B2F7029932E8D14828ED96EBBC2E49BD3D0AA01CFAAABED8D24B005E307646C |
28A758AB934258DEE08FC83BED61139E8D7D50F05FD149B27165B9024D651B9B |
3A8A0000A82B60A1101351284559145C0B687A6B5012B1802281E3202E8655C0 |
DE7BB23E1F78E081FFFBBFFF233D6FB58DA235352CB29A1CB6FB0DBB72077F0C |
873BCBAB04CB7963F56810486850EC6A238C4DB27275D1589C52A4A475A4C559 |
015F37FACBFB2622E0298CC15642D702C0C69F8830E9534E39E5D4534FD5BD34 |
051276E69F3294C9F96D2B12478178452ACAC2C6051F61154B3617CB4E6FCA6E |
8045D987D93452C49C538E94615DB5A5A4BFF5EB873EF4A1471E79C4DD791DDB |
27664060C45E5D4BDEFA10F18709A967778D7204437112DCEA2BA25B3DDBB540 |
DD9542EC2EE2D1AA79CF2242D3C3CECF4821AF02CCCF2061C48DCFB9B763618D |
DC2DD8E85C1D802BAFBC92BF4AD06B5FCA5ED19F70647535B0C4167C84EE5D38 |
48021BA3D270247CCA684BF9F81951E92782C19525B0D5283978C9259720D631 |
38CCF6EC35359AD47E06C9E39867F5A4551B546BD688C6FF03F22225664186CF |
046885102BE2DEBD5948B51C7DF4D137DE7823D3154D1C0B472CF4886920C588 |
6C85F0CEA20151CEAA596E5AF7678D621BFA76CF98314313A579636B699CB871 |
B2D1A307E01C902B447D4D77A98A8C7D0589E1A9334144CA837BDEC3843DF0AE |
0A2DB65228AF4879DF657D580EF419679C418B434C67B7A08F0601B3842623FB |
43504123D191715F778BA3421C3B0A4042293102A46FC938931A6B6974F1DA6D |
B7DDAEBAEAAAD4C078534BE6C88A897D38B0DECC2D79137BD61DA31C2217FC51 |
8D596FEEBEFBEE975D7619679CC78FF5050613701DFB6DB5463B3B248CC6891B |
6A0FC1F5B858DE40D5B2D00911BFC51C7994997973E2F417206FCDFA221271D4 |
02151713AEF3C2E9D868A38DDC3E3CE5FEB1371E3F9842188C951FC483B40BE1 |
0D066D91B68A8E98934498655C79EBADB796A322C155C99BFA001A2F38DCA929 |
FA42A6091B88C0808579662165C995054A8A82021E69C38DA480F1F3227E474B |
2B55C703E027595FC6D89D69E44C7AE01EB4DE04B8B3163A56C0B5BCEC645805 |
038C0D2F843DC17D514B520CDABB34A9E5BCD9A44580325A26946B3AA9F6939F |
FC64975D76493930D5F06FEFCE9493AABB588D58A8CD4CF937C71D775C2D2F16 |
22B4A80F94F326390573BE80AFF1AF2DA16F2882CC890AF9C75B6CB1C52DB7DC |
3292A21D6941DD8A231A07EE6AC01C4671A6F9D464CACD25B415C3B39E7F320E |
06844B57117172D7305259E655773B4FAB767C115869A8268FC8A31889653EB9 |
1A8B4844979F0192400FE4058D6443AE0DD5C8B51565A5B1BE78062ECA2AC40F |
AAA17919C3305711895B5D9608331BC33BC1406B4DE3BFFEEBBFFEE217BF58D1 |
78A586EDAF4156F36ED0D1F02AE5844195D04C020FB29AF7F0B67629E79D70B8 |
2C4F0D0D93FEF4B39FFD6CA79D762292848963DE92BDF6DA8B3A280DE0E73FFF |
B9FEBFE79E7B082DE017924005708478621A2D223DC3D9507AE1B8BD1D378A58 |
106D15EA67A22D4ECF73A07C313962B83EBB91D8A9695528518DBBC833998512 |
5BAE76CC31C7FCD77FFD9737271CBF696490146A128D1515705406CE9B3A2845 |
0C166BD2D731C22BE5902E2C784DB28CFEDFFDEE776ED5EA59F52E2AECBD7841 |
9E9431802B8607431B4067F680030E200CE96144A336DA0491D0C3EA5C63FBCC |
673E73D34D37C580198611453811D511A7B19473415BDDF0838674F2C9276BEF |
5D74D145D28E1ADE0F7FF8433D784C1231BDFAF5F39FFFBC4431810186641451 |
1492848B887539D96AFF5EA70C7A4B1B76F8DCA438E527605E78AFA69C0ECC6A |
98C5728A0DF46E16CA76647865A5A67AB878C566D59B8D8A8C6F9E505429D124 |
90A584F2F0E7B4DEC077B39CDFBFD4A097232AA8411B54A58F7DF18B5FBCFDF6 |
DBAD624D2558883259E80C3B3047008841C5BC053FB8DF3B45353ADEE604AEE5 |
74C72E18A056C4F034D42406A0EFE876D329541F3AD2580B1D0FA9E902B08628 |
21EAC207D8B89C559F6D439C62C149CAA302B5BCEA3F560067D97BD0F7F7FFC2 |
08ADE46DCF6B39134BA4FB61B9012271B02585356C0B08E02136C5F41969E873 |
CF3D577B5A7F922F8888C73A895CD044EC093C98D44292C251475A23B8E2D992 |
D47B3D86CB7477E90CE06691F94B321AFA2A2AF6B4AC2472AA39ED286ACC7CDD |
F079610D14425EDE87A5BCAD21DA5D1FFED4A73EF5FBDFFF9E39D15FA5BFE9DB |
931AC619F5EBA506079ECBFC7174B82CB850ABB4725327C4080B30BECF6E0A5A |
1F99EBF3AEC7AC8526B21FFCE007255C747714BCD3D2EE67E5BA14FD558ECE93 |
4F3EA90D70E79D77EA2E50FEE290F91490B024C68E1E35E30128D6E6AC419448 |
60DF08EBC55E7B6C7E9C6C302B7E9072682147DC9B0B1A4B911A4D2753DE708C |
E3E081B1EE4E04EA7FF686C5744C2D8D72640AC1AA189CB41D694E34AA8AA55A |
7EF9CB5F82662085EC839C02DD07D283EC584BDE95162F303542740618C7A472 |
6968AB832C27BEB065669EFF6818C5106E96D3093BB1C524E026C5BA2C7F9DDE |
44A91135B1A41DC9032ECC6741B09B832C3E85A32F66E97199F2F5D75F7FE289 |
276EBBEDB63FFEF18F53F0F76CAD22D3625837E671539E309694C05533FDC01E |
7BECF1F0C30FCB92B67CF035E3C12F85AE39B2961E7AE821948B239DC380149A |
0F736AAA96FBBBAF68D1204D705374020D07882F12871C755280CCA05BE8E819 |
76D8610749AE98F224BA954600DD0C3B30BEA21B6DB7DD76FACC030F3CE026F6 |
EE821E7B6214CE703CBAA5C0FC99F27CB66F0410B1B0A5E201C872EA92B85458 |
8BB415E3C06B24723266CC98A15F09E3173C2DF4B1A96A228786A39136C0EDC6 |
FDDD856B96262DA15BA57D3B0428FE903BEC52E11353742920301DA5D705D75C |
734DA916BB380475BFFFFDEFEFBDF7DEEC0AF06EFAE215575C316BD62C295DDD |
11EA0066B8904477A639053679CFB94BF448E70358D591F0202FB9E492934E3A |
C97486B5BCD3976350DC1786D42CA7CBC8F26E0DD1F82B38DFDE30A07659596C |
6A9D086A46EDDAC6738187A7F974889807A12822D691DBA4F3066006B2A6B23A |
4BAE52830857A6AD2C09EB2D4907A84ED658630D9938061060FFC5D98EE8C858 |
1B9D1A502900BD08E8425F3CABEAD877B62004FD3F4F6DAF85C2845AA8C78D60 |
A26A5E11EBC8165FC70401B86EF16A1AFC2CEF166029E1A4A04BF953201828E5 |
34907F372258D80C4E06C79E4BB012B22536D964135260F61DB997A38329F76A |
0C96B6411C07EFFB1A8DE130A12BC549BB424207D0C4FC4D05D72B7A8DDCDD59 |
39D35EA2A59864A38591574C1446461AAE54212AE042F036E54C761620884762 |
3FC8225A12500284F0C902B92CCE40D620BE4821F6E3D88026507BFED9679F2D |
7483F55E25DD6EA00658AD880F20AA4A12DAD9C91442CB9AABCD37DF1C125F1D |
F38F7FFCE38F3EFA689D2BA6F9519B256FFAC75FBE8E6D25234239241E9629CA |
780624B8257BAC4F350EC892B470E60B0778D881394AA359D66748E31BECCE30 |
7064DD7F29925A9000E3A6003DD88566EBC60423CC481644278D9A45CF6794C8 |
6C56BBA4067C313334B3242F8E80E01445D56BADE37362739BE1C5FC04A7429F |
2F84809A17AEF08A8993C8F690F206537A5858C0806FE0B0C2C8CDC49A399634 |
672C8572FB645D16C777DAB469C4A98038512A0689A3EDA494670DB49BFFF77F |
FF3719D91FCA42620C164F37364D338103B8744DBEAC01FD15001DE07CF0833C |
7E2493B3D7A5F53DEAA8A34E3DF5D458619982F786D768E6DB827F800BAEBB5C |
7AE9A5C71C730CF10C824371FE0D47AAE54012E8739B45731A9A85AA36113218 |
DEE814F236DB6C237160B996423ED559610F09BA1BF7DF25B46BAA57607DF8F4 |
1A98AD527A75E8D6281822C058DBB5A164993EBFA6503506D3712607B491EF64 |
01B40365D940A8C741461023A65D265E4861F86A91B8DBFC770E1AEB312169E1 |
F86010D801687E453BAC703C4D470ABCD63DBB2C9A52A835A8E5D9599B5929CF |
A319F1EA75E4A10C7465D5087EBAF16535EF639F05AA735656FB7FCF3DF7BCE9 |
A69BD0C4293761A37964AB944364052C4773EEDCB929F728682E42F24BCF224B |
0EAB22E5F677413E171450B3F44623005AA40609081B206AEE3B7DFA74506C2C |
31294BC9765D9322556438C7D9191986F4E52F7FF9861B6E70FC35E59835E2B2 |
84C74C20432A9A68AEE6DF36A88933239331A283034B068D85E3A01583B7FE79 |
A41CEAFBD4C7D1A271690ACF40508510AE1E92127B030BD9DF9244679F7DB6DE |
0107AF8F515A078968ACAD6C5EB0D13DE0949BEA51B41153C2F574CA2AC67809 |
56000071143D855C8BA489D6094BD0354BC4F468618BE42D58CD6C5FF30C6330 |
9AEC14730FB303E9131183165B31D9E039AF068237ECB56A4E1BF23E17AEF9E5 |
7AFF18D44A79584C4B23A5B5B2A6250700A740166DCD11F181A67176E92D8138 |
77FE907A3BF6D8634F38E1042A3E659DB845ABBE8BFD7ED86187C96906AFE832 |
AA9800CE4267620766FD14C71F7FFCB7BFFD6D9EC5782E0BE868B702C3C1C825 |
2E8A9D64628118DB88C6908508961CFD839144F6E0294EB098E01691A68009E1 |
EC98A5C1C41A36B3B2BCA3733CB3C31E0ACF4C3CF54831139AA6C0888BC238F0 |
C0032FBFFC722DB71E99E40B6155B70BA4EB1CA2476FFEEC673FFB8FFFF80F1F |
2266150B75EDB5D7C6688BB18A91C64610BBD4206C9216D720C194E94F288CED |
B6DBEEC1071F7425BA4B30990ACF09A11A6EAA15993163C6430F3D2469F8CA2B |
AF909602700BC6D51D3E1C6E6512A21F3C929C8C695733BFEA0773A91A1D6D97 |
8353A64D08140BE778580F38DECB0D5AEC9FF8EEACDD461B6DE4F633519B7AF3 |
78A8605F5A4237B95843E8CF131444013B8A4B29A69F82C572B09319705D4021 |
1833ACD8895EB85790638B1183A0C0C1D534EEB1C71E0F3CF0C0FCF9F3C9E545 |
5B8DBA67774F6795233E4E96A2BE8810A68CD684A088F79D76DAE9AEBBEE82C8 |
D60C5C1E3C13AED9FBD39FFE64056C691985A17F5E29AC46CA01BFCF50F348AF |
68D1D472E0C9CC9933AFBBEEBA9443995268930E94DC5C80D43E450401273CC2 |
7062A4E5FDBF6A7999135A81AD8F1225590B63976599D98F7162304B51C00484 |
49AA11B2B0DFB0F1C61BEB087DEE739FFBE52F7F49E8C37890180C8CBE292841 |
E91B170030608E90D5702D102CA4E04FB38EDE556C3E820DC41252EE70E3408F |
545F38CABC455F81A31E63037E19ADA6BB473E7A9C7B2EF2F5AF7FFDFAEBAF77 |
C30F56C45D9F4DD64A7A8C0F648DCA69B23B0EE47247F471813CC89BD9049FC4 |
6048EA1B46A73FC9789F376F9E034D7866523F7C5D43D2A6FDC637BEC1F6D3DD |
F1595D7095723C4141E5F32BD11D725759600D2BF083DA53FFC4273E217D4051 |
63EC8994421F9828925CEE8950C369C3FF88C7306E8096BC77276294F84D2CCC |
E3C5D3190DC799C550A67685DEE698658586547E52A9732D13D98A8B2FBE5886 |
35B97FAD2FF3ECD4899F6B58EF876382BA8A547FEC16875BA8BE73DD6396E3AE |
CB8DF603911422E5D6333207EFD387D4A1F588FC8766D5253DE0A54749D94405 |
CC636AF9A45C3512F81A4D4041DB37D691883ABBC20674B3026690FC1C6BEEB9 |
4896179E62EA7DF2939FFC9FFFF99F587315239400977488CC8FE178759637F3 |
B0C7CC80091346051C0B2ED65C734DBDF9E28B2F72A9CF7CE6333BEEB8E3B7BE |
F52D04C54A0AC61142D023193408C668175A48AEBBEEBA7A5819AFE007534E57 |
A7AF407418C34EFED5787200348422984C5395455FC8958AE07EF4C233C68520 |
40BBE5965BFEE10F7F28A46B9D1C6156513DBAB23E0FF86988EFEFFF0B9C76FF |
A89E2B24D5799259B3665D7BEDB52C9B067DC51557ECB3CF3E7A80F5D75F5F66 |
17FB8633663A319D7C0D9A8E6F6674A2DC132B350E7BF4258C328B78606AC05E |
8848648D6E24918AC55429E01AD0CA2869A2A02EE6C3F647CD94432B126D0849 |
A5D8B411D412FA0995A64B69EBCBBC920F8722815D0FED45920F6C088D42252C |
22082BE526AD4B45390F56C02E8FB13CFAFF5B50D0223104CD7E22B887FC655D |
3033B5D6175E78A159DA356C4D0EC24E76E273CF3DD75CB562F1C77550F0B26A |
6FBFFD762DB41FD0C2977DEFEE6395D0FE25DA2540544E3BEDB4B973E75229CB |
4E8BE168E7C922834F04FB145A086311BAF69DF31C73F3598061479C4B0A4627 |
014CFC305F87746FE47C8ED9BE58F7852F8E435FCA5BE0B17B25A430640B5220 |
C2D76D8BF8B99047FA559AECE5975F76C1AEED0C7614359D8602301E52336E7F |
02E1B0FEA75B067120CE2F5D02792860748593CBA459FA93B0C7E2B19776D041 |
07CD9E3DDBB1D318FE89A3E22CC8B8DF7AEBAD81FD4792DA5268F9C7E970DED7 |
350E86893133C80D9FA3422C2DBE0A0A181B820A284291CE6AA36BAD1A0B5DAD |
526E5B174058D12066F56B392E3505B58A49BADA6AAB49D6BBF74941503B578A |
1502CD452DAFD4A8E5D5D2B5A1E0F08202D6FF5A0E9C07C69F35C85F21BA623F |
3B57DD4C305250C0CD29D1286DD2D04603A506C1B20E2C46A7992DDC62C795C1 |
293786701220782905067BFC691C9EE86B7992E155B4A58285E46991A0D3D12E |
606EACEF51A9110B5D97453136827E76CCF01F12D0B5A1C0631F7B0462CC48F3 |
839B15A746EE01C4291959103D60C65C8886C8C303E03AB1DE340597C24F6499 |
455818D03201F0E6BA616610F2108B3F1B4D54F47EED6B5FDB65975D64E3C861 |
F27DF18AF4C94D36D94456D8B0CE10679B360CD255B546F99375BCAE20352337 |
8B7DC0424013B1C61A6B1C71C4111AB6E4548C3B7DE4231F79F8E18723314D6A |
B82C6E8EA6D7565B6DF5D9CF7E962A2047633C4BA3AF6F3C0F3C88D688093709 |
33567944C9392651CB99777C66B246258023AE3CB821A0DCCB4CB62D792BB494 |
93917184B07F0F3FFCF0934F3E19FF0078B94D25D6945387A2A584461F8652CD |
366FCA3D06B478ADD16E057215F05906ED637A3BC86CA2BEC1BC79B399FA39D5 |
081D27F3FCB29D115B3E683229FD2476A2499E3163868CD4C8F36739187D5F2F |
4D96A352BDB21AAA9CCBF9F3E70F0BEFF4AF56AB4E3D72BEE4BE48C36977690C |
2E4C2078808B8C1D46A4DA58300F35CB8BA06A79ABDA98E2C5F8E0D670AAD88A |
753DA126D663733418C79DB437D698EB7674058D596F4AFE6AADCDF6A7E9B520 |
6687D8FA2C05D2A10855AD0E2576B6FE230FE5F8560AA5C60EF85773B2FE18BE |
72C2D88FE65570AEC1D286436D6033F5055C6765CFE69089473DDB6469F6A30A |
3F680C9A2502FED199CBF23688647F1C75F709359F46ECD69572109933659233 |
DFFEF6B7E940E59A521BB82D79CF2BBDE9AF007031181E1817093B3CC0022D3C |
F3A0D122DBC1664669CFBD88CF710547CE52E8F8A903A28BC4500D09EF02FAAC |
32943F9FC7D78468E74B2010876393F0954268A1F02AA474AD17567EDA359A66 |
C67F9F841B511CC40BA660C9163644CA1530FC851216071E78E099679E090414 |
45ABC7D359929CF2BC13C924F08B596D5735CB3B2A461FC51BD442C70B9F0D57 |
37EC1E88C71E7B2CC1B1D85A2706645C504BC4836094DEFFD297BE74CF3DF7C4 |
EA8E38DDCE5BD32C01830368282DBA10827407C373F5EEB12A42646B9BCA0EB8 |
EDB6DB52C32F775826623B21962A87E69D595E26CF8C554726DC88EBE5177AD1 |
243E31CC18A9DDB4B9F5264CA2CC9ECD20D42AB94344B9F79861C0B613759E4F |
39E59448E367802BB6B6B68A973B35E25AA858630E7C66B05863FD5FE1C55E5A |
7BEDB5F1C6C8F01186BAECB2CB66CE9C69FA2AC6A34D2259536E90FADA2FE749 |
231539E11CEA538D568D8D5451F02827A961ED252DA5E42FF9BF96D0131EF3A2 |
30786731EDEDB199498D6BF2A302B6414CF20C89EC89A248C1BB022E14AEC942 |
93B7B3FB42FCC0887A6D4B643A2135072162328C489266CC6CDB9A5B39B2DAAB |
1AD282050BE80E49FE980E667C3EEA2ABF7043497FF8F35863514D124AC1BB35 |
2F5B14E8D1166721A2D319B318EE9767AA999443826B0D142ED163EEEE52632F |
4A0A21285C343B3CEE6E223148A931D12F2A08304D28E0C1E783AF2A2623A202 |
F6CF05913BD8D457D84EA4710F29EF2BE3804A2D6FF11E67DECA095B41CFA50D |
A303824CC34087ABD8059F18B559603463A8D123F74EF609B279576EB046BB72 |
CFE83C0FCC9929801429579C12A73A59924BF556988D49D3531F7AE8A1BAE095 |
575EA9F7F5ABAEA65D873968A00C3B04EB1CCBC991093D35C8245BC046C5A691 |
89AA0ADEE97BAB63422F1E63C71D7794167168F7FDBFAC809B01A8A929BE9D72 |
03131C8AF7A2B3A10CC09918434935056E980899087677E4F1F1900846B1605A |
C86DB6D906B4451A2E645D80F2BB3D561A811C0A0A057B6FB1474A41E4F12B15 |
8A967A20CB220607FBC08781CA5D0EB9EE12890BA81940DF947256E73494E535 |
4A07DD5126059585B51C583E4AEE6A985DD2D0B5A5A1D5F7FC1C8923220F11C1 |
862CC77F926EA4BC1BC982851B192B6D21ADBBEEBA524238D6A96194E8076C1D |
AD8BF6866B12B419089795720274A440AD510CAAA7D69BDA2DB41521329FE598 |
35A7B111D311986D1007FC1EBA820B8440F9EA67288D1C08C181D86EBBED7EFB |
DBDF82CF241A118908B0234B3957700A74ADF6A86A796749AC8D6ADE1179A4F5 |
72C4AF3CB433552C1968DE8D295464A5BC2DB4768E1E0A5427DE8943B5B8FE6C |
605FD9DC849AB73973E69C70C2092606412411876026ED1FE82258AEFAD6B71A |
AF5855E2A52CE5343524FCC08E02572C907880B4D7AF12B5FA303060D41EA3CD |
F2AE1EC38A457BED862E3ADB8AE16BA60E77FAC352441C399E61578C4002900E |
8B8EA8B69DAA3453183115F6B68FA78D72B6E5DCB9732FBFFC729D1D53468FA4 |
809B85BED5093722064E08C7090EBD6F2C0BB6266B07E722EE38401CEB452E1E |
33AFC81CB62BFE5229341CACE69DADF10438177AA879F3E6E92CEBD1A4DB74D6 |
343C69746877CD40B7CF3EFBFCE637BFA1434FADD12A37E5FD2D08D2904D9049 |
77C30D371012275410390F6C077B846E73901A0914F24A59CE5C8B23C482BAF4 |
A365B89E63D6C1CD86CEB0BBEE3DD15ACE49FCA1C5FAF0873FFCF8E38F17CAF2 |
DECFCB35E9DECD2947D93507F4FD8AE8762C6B04288707439218A66D52F62B4A |
DAE8507236D3A74F87C5B09C3784F20E884D55477A49AB55735620A0B92E42C0 |
D6CE1A38CC5AA37D3A5FA19B070B89C47160CA22CFE7E4631FFB982C0076A1D9 |
371D16E65454F2169831FAA44B6DBEF9E6FABC36BAA910195B215A8E7AD37EC2 |
370226E0070480503069FFEE4649B9028EE9ED8240470C21B553CED8C09F5C3A |
9C1A411E13D0EBD9DD41D38A470F25B1AE65D2AFA858D3405E7FFDF55FFFFAD7 |
B91172798B2DB6A0693CF6A9BEF8D24B2FF9BC398C19494C475F7D429D881ECE |
5E29B4E6D50F1282679F7D3602176B8088197D6334F9DFFCE637F5015C87D430 |
CBECE65ABBF35CC8A04F7EF2937FFCE31F495069D87A04CD099A2F8A6C530D64 |
43D1DD29CFF6A55CC45BD545DF2B4A674495264792CEC48A964D9A6D4DA0FE64 |
25E7E89C09B723AB91C746662B8564732DB4F5D4074E3FFD74DA8C627970B4F7 |
DF7F7FF97C6C12CE351E98FE5A6E503F3280E38F3F5E0ADE82CF0EB1964C17FF |
977FF997279F7C524BEF56312ED34A39F19CE3C9715A78C5A23E47CED2D06C6B |
5CC108D727A8631A6A524851ECA06C62421A416772B7E6972D75C7C3D98A6E4E |
4C75CDFB51C051EA46B0052FB8B4B0846EBAE9A65D77DD95290535D25CAD9486 |
BA1997345E3A0B1CD2D8E9B5C0C3E5D88676DD4E3BED74EBADB746438489B21F |
88EDFBE52F7FF9EEBBEFB67C30D359944B0CACC07A16BDE7C2A98F0464B4B3D3 |
3B981A4EA2B92583D1DA7C6C30EF615C3025E32E1A1D7B54308CDE13ADFCAE95 |
886888D1195E867DD995B18C88D8FAD4A47DF16E5DB2E69972C2D541A70F7CE0 |
0332B4B1D635CEBFFDED6F5980F5733BC90B5D812C2C210BDD1AF1576BB05BD8 |
1169CEA5311770F7E8D6B2E2752F5D64FBEDB77FF0C1075370EE23B30F254395 |
46D7646D94534F3D55322292C51714B05EDB6EBBED238F3C12C3D7B8DDBE324F |
8D2C633C6602C1F68FF170E7BFD9B2B85C3EFC595E1A78F3CD377FE52B5FA1E2 |
1E37A5DC68153C7AAEA220E5B39CD836CBA91EBCCACE023891E38B987DC90242 |
EF5F75D555E79F7F3E4581C62747D2B894D36959A310BF4A015EE1F844A11CDE |
4089185E932271BD56D64416B6C71E7BDC75D75D34FEB2F4B4B2B4F47192120C |
20EA013D84D5680FC6A8E6949BC391921EF1ED7341B2A096635C79F9EE2086AA |
39296E6928D9590A91529F081F3D7EB0B0889ADB65813A4D32586531C805D1B3 |
DB1D679EB9A6C4BD1E2A0A070B32AE13E9708D9E8D29B43866E7117846BA86B0 |
99F5B0BA4E0436C251A54F927DD70646683078EB12FBA0C4665343C74720742D |
14C1B316AE0B28A8A8B80429F77D5D66C619D490584AD01B00796C54016BD017 |
7990C8E1036E4E2381090E5613EF0790E4101D7B53159C2D23D21171A32BE061 |
E52D4163DD481797B3A829BDE0820B7828C2BCE0E328522029ABC794B09A3F7F |
BED1C2327F6964CEF1A45B5754A2B12D37297C36338D403499C036813EA406AF |
91E32BA448565D7555FD5557D6CF30C08306C81A601A2243DE60845191C95443 |
40118F7C60F50B85BF29474A1BC743FEC851F172CE59C6FCDBA8259781DC2E14 |
CE0D3BED7E153EF95E0E982E0D3C0CA61C9BE91F0D419BF9CC3294A9190525E8 |
4AD02C2F6C8F792642949A880D37DC502E91048406A6132B27D2B5685C0AB354 |
DF95AA964071DACC322232D01297683E7E946063F570B474E4647A6B839AA78D |
782FCE25114E92F93626A2621B25E887336DBE34DB1C6C23273E6D64D8DBD049 |
D009B18315ED3B248E153005B22EAD46C9D99A6B8EA2C44116F616FB243ABEF1 |
D1F0687DF796469363329A2D795FBC48A480E142FC8753EAD8209245FA40DE92 |
AEE94E7F1A36CEAEE3F3869B110D234959E8CF8114D3600E3FFCF00B2FBC90C2 |
09C36DD86C1C33C733222625E5DD1ACC6E7DC00107C851480D9E3FDEE1A98937 |
38CEEC45893161C382F4A6D645F20599E5C612E82422A59B6EBAE90B2FBC00DC |
C9D5E7CD652129389A05C3C2E1B25A1337358F162BB9631771360CC7049A0B36 |
B92151D59CDADA9A038BD38EB57921BC10882D3A67BB1F86A72EE26F892590A0 |
915AD507F0C275D9CB2FBF9CCE1C8ED841A6016C05AADAD80D896C3A85E99E07 |
14306AA0B9CAC3410B4EA503AAC6312004AC177D88D06AEE3299F2A4B83447CC |
8895730E29EAD970824B39EFBDF5B44782214EEC1DBD45F8974203699A6115F0 |
482FCC295DCAE84884BF1BFFF9529C02CC74BEEB94019902C0A45008470270E3 |
EAD9C9D59C2F3335D47F6A1846667604C7C3309C3D4489204853A3338AC42FA9 |
AB428A9057A1090AB8013D239F6F8E3120046265A6811D40449B6B5B0CC6745C |
04CBA336B4C4DF47ECFD28E0A207EC17A722F26DBEFF9759732320BE90948D2F |
048A315305B9C051615B4840682B932F5C7FFDF5E53C71F2ED39359F25CB591B |
471859A3305150FE412284926DCDC34B2FBD44E806F161D19CF244B5399E9CDF |
F5D2163C48838189D5C0ED8C28D70730421D8ED606655B1895A0DBD90B89043A |
E6CEF446D4FB92EFEBAEBBEEEF7EF73B4E2C1BD788898146CBF798AE8EAF4290 |
C0F9BC02E3A325BB81C10E5AFEEC673FFBB77FFB375B0F4435A9D0A7B417A16C |
7C8D2D2D87DF5D8D879A8C713344369B07580A0B7146E3951AC152A27C38A3FA |
D58E5D3C2A4E5266792914E4567CDDA45DD5BCC55B349F1161B2F6BEF18D6F9C |
72CA29F6EDF40150BE5A62AAC98D128F07018F0D478A28370B84E5AE37B7DA6A |
AB279E7862658D60E365126626DC169835446A0A5AF8D8FB22B55010052BCE82 |
050B2C5B89ADB944AA604F1B4BE118ACF910BEF39DEF1C7AE8A13C69256F9152 |
C9BBC1138B022D21FB89C69738CD086E3769C67694B5245D9BF21C10DE126180 |
94E366F15D6C3639AA8C7D267D2CC1AD7531CD7B6D2827112C545913550BBFCA |
76D4E202AD770B29025DC04756B6716D682FADD1C5175FACC7677DD918975C72 |
C9ECD9B337DB6C3359514621914D406D6BE7689C4E70A4DC1B23291BC3BC0624 |
43BD62265AEB80F7AF80BD75254BBFF295AFFCF4A73FADE6CD1639B9D75E7BED |
D1471FCD333A80A4FDA039D7B33CF6D86332FD199E3E13EB71D11706A9A540B3 |
CF0932E1CC8F7EF4A3FDF7DFDFE15F7A3F6007EB1DE7FBFDF5A38E3AEAFCF3CF |
2FE492082480E2B6E876A7F042040B27D070B0582993050CA9850CE288B80B30 |
3AA241267C8DA55F317FDAEC6E8DFECAE20B8AF95ADE99A0145A88BCFF17898D |
94439F4C116C9BA530383BC7EE87EC066AC8EB34B45B192FE3B3A826E44DAD07 |
EA1F7D0600C70C975E5787AAD27020AC345C61406A8AF59B23C6CBC0EED11E95 |
65E0E5299C6DDED1983500A7823056CC30470C533FC33AC415E8F3CA3B043F29 |
1528343F662B185EAF9F3FF8C10FFEE94F7F72F7AB52833F28E56573A31098C4 |
8A972C104A8FC4E485A569FF897A6574180245E707DC2040E294578B726C1855 |
CC0021B8E3AE70E48D526CB03FBCC9C71C74D20F00494A392513C1036AAFAB39 |
DD744BDE838C2DEA99B19763AC9CAE76D249270114723CDCA185943749B58C48 |
79AAAF1618CB531E7AC5EFBFE8A28BF6DB6FBF942732DC19D0710E2C862CF401 |
24525DCE79D9CCE417F159B5A1E43E592842755AC171EC4A686697F2C8CA9C39 |
73A4BA48C7F0743444C91A507C63FA4A43BB1CA248340F581E845531C1AD8019 |
0335660E7B20EC982BF8E050F046329B333CE5958AEC1C2A8C0945A61C8656CE |
39A2A1CFD3FB32C82EBDF452DA3FC44C21837778A6395B04A6044C35007E9DBB |
238E38E2DC73CFD58D74D9534F3D152420CA18035D33462307220A5E4D6F691E |
50EF7CF18B5FBCEFBEFBE853A24FBABA3292E4C7680A52D46BCAD860C31D5D01 |
47C115750F65D968320D4FE70589C7FEA1239954AF46883071E4C91E1AC7CDC2 |
C4B9A1022493F123C66DDB99B3E5B0C30ED394FAFDD4209CD284B8334D2CCBA6 |
17A7FE8FFC7AB1BC3ECB499378B390D4F01130096BCCCD5703E7A8E39D9C5C13 |
A6A646A8D55032EF9FDA7010F4F7A97D131E309143D7F9A45C076319E1B1A546 |
42CBA02746E02CBD5EDFFCE637EFBDF7DEA79F7E9A55874DA2102975CF0387DD |
EC9F794219892E285354A28DF34FB4D639705FCD90229FD8387D0E70C1AF669E |
C291140F300AF8967529D98977DF7D3738CFE617EBA7AD49FD0FF3A3BD45798C |
57DAD8251C56126FAFBEFA2A87C14CD78452699181EB03B90F1BD104EE3ABA77 |
DC7147C41AF8A1502A2C9FF73459F0345CC87D24636DFAF4E912CABA2930317B |
6FA384563CF90E03E8E7DD76DBED9A6BAE01DC8FB365FE328CAAC821C0CE8EBA |
2DA2DC6D87B9679F3E13ABC8C0D9B21B4F38E1840B2EB8802C60AD012F808B1B |
930E4DAFAF938AB3ECF3CE89F0370D18CBDACD6831FF5DEA83D1E0CC05DB12D5 |
42DC9847F6695F6FBDF5B4BE384F7C970F18B60D1B36BAD66D2D2CC84A818AC4 |
DF2D18F529AFBF8C118BD2D086B22E4B2B44D24C16C1CE41C493B9F083F8449B |
9B37CAC188458F4562B5BC1D2C071C64A59BBD47D488EBCB6DC0914FC152A93B |
372DADA994F50FF4A7C6F3965ACA95DE3ECD6F2D0DFEC78CFDEEFFF54F079EEF |
1B9BBA5E6E7B33D53A53A9B194AB4ED87CA7CFB74DAE875BC70C0C3EF05F37A4 |
9E34AE521A18AC65A9AD925AAAA934900DA496BEC9D3577BE7F9D790B9B66E25 |
06A1C78189895888CD7AF78D2E18DC2395A3503D4188116B00A96BFB269ED372 |
CE9AC70C83A2B726CE72083733196BF6D250D33F5ACC36A9F92BCCC67A9659B3 |
665D7EF9E558B46C12D37D1B8F4D97307789D512531A004AD14C5BB5F0B2C5A3 |
2D0432D9D87212CFD5409FE9C1D3F20F17D9B15213E3A446A0CB62877DC25F5D |
AF9F02FE397601F1CF4EDB030EDF68A38D9E7AEAA9C2C6D6F36EB3CD367FFCE3 |
1FB14E0892C738A863E908492BB28802F6875DACEF74DECA15B23A8CE9ABE60C |
B35D37CF2C4A1AA82DD3010B41CC75632599F6C5FBA016DA747837F3D2636B9A |
E4073CFCF0C31895961A48F9580446EC9E2F9A13C0D17CAD8164EE0E3BECF093 |
9FFC440F354A79D569A79D76FAE9A79BCA8042BD3472837ADD4BEE82DC23AFA8 |
6BD1A2F39185FE272CF98C1933BEF7BDEF41491F755BA9C1E7229DE73B6A5A10 |
3A7E7C3B5E365C22D281DDA3DBC9FDD575008497863620FBBB0AF8ECB3CF96C3 |
A71F8E3EFA68DD454A549722DA36ECE79DF24FB99F8757943508ADBCAC482E16 |
C53A63ADB5D6925033337E243672758DBD43FA9060BF17CABDB250A80D2C48F7 |
DA77DF7DE56B624610A2E7B039B34553010784C91190D22EE554CF6C2D9A2162 |
4DEB93B7DC72CBCE3BEFCCD850905A383A55933BB0DFB0E79E7B6A0249CDC4BA |
1D36182A2AD629F9A1BCCF4B79C76BC4349566ACA9AE8007030708A1692B7BF0 |
3E05819882351C4B5D4B0DF67C8463AC572E94E1998017B30C09E58D91E5C455 |
3EEC9CC4238F3CF29C73CE49B92F08C2DC50559F978202DE6BAFBD7EFDEB5FCB |
BF34BA9813412BF1BAC478BBBEB55A6493497065A5D45DDE74F2062FBCB87845 |
F7AB55D9F92D1FD876C74D6BBD0B6BDDABF5B6A4711F587D517F7D176DB4C61A |
CB5F5DB0F6E429B5D6B68B4F392D2DEA2BB77557962C1FD3DA31D0DFDB9695D3 |
982EEF103C3F06A93B9A96C0250C18D9C3967B8D74BE9822CC9A18DE8BC64D4C |
0321754B3945923F4675107E9E4BEA238371B302763A2C22399C74A79A2BCBE9 |
AB885DA177890A989123856862E4ED1A1694949AB8BD6CAA124D344F649617A1 |
11E8065362C5C9FEB7FE2B0DADF8470DE946B367CF3EEFBCF30C4649B98ECC86 |
3647628951903C9484B9C40564B7E506CD24F75D7BEDB5F5A451804350C17759 |
CD68017829D10B8CC405020E5C95F2AE1899EB9A5DA362C48796815BD209555B |
DFA106174AF201448923156EE7542073362F4425F4D2719E63DEBC799A050E39 |
7D9BB972CA9D66A6CC9D3B4D92EE6002268F9FDCE9580E4CECB9DDFC42E21758 |
8AD2C8A8B672835D164BDF95793626A4F5F5455343A440F3641DC0A35542CB42 |
4D2F1C752CDB76DB6DF7E8A38F6AC24137682751248778658B386C45BB24CD5B |
B494B109FE21058C55C451B1953ABA07CCE1311F10EFEBC10F3DF4D09B6EBA09 |
C46696338A207F817818FB9D1A96B89129C059014158B4195FE3F9AF0DC503B3 |
AD299B4EA174874894FD5AC892F4453A0FBAD4C11DA81CE9212ECA3EB7404451 |
B926C79BC70D12A292033BE6B9328F4F846C0004D5FB1FFEF0871F79E41192AF |
6EBCE1CA45A6CE6E280051585FA4D7F5BEE699743B006637892B886317B76401 |
D5CF53736C7DC689F96B06B4992917B1FC35146B24FE6D03E8F05C8D97E4E0F3 |
75BEE5C45335E786C4B2B4F487138AB0613D8CB47CD9F87175913AA6AB7B79CF |
F231DD0D5CDB92C5B5CE495356641D69C2DFD69F3F7EAF693DCF6FB15A1A9C30 |
AEF6E6B272A9A36DECC449CB1B9C68AB4D9AD0DD529E30A6BB7395556ABD2BBA |
0607369E3A6DC6A7BF92FAD3B4B163572CEE6B99348682CC180875E68BEC9829 |
A5880E16D46D212CD97C5E526E62EA79097A45239B858E99FE483087D76BEC1E |
6C5F70FB6872D03484850AD1F5C200E279B797C62D4CAEE02084AEE685D66064 |
6E7EF4A31FBDF3CE3B4D06093F97AF1C3DECD408AA49243236936481156846F0 |
C497B9D09D34A1EC931DC21761D93471B786A79D233514735848665BBD298F47 |
3A1EC384475F4BD3B2E38E3BDE7EFBED29E7D44C0DD623F74A72D629C23BEC10 |
BBB2573FC3D990F218552D40C9EAEFC436679626ACBD29840C284DB9A5835D66 |
E22EDC6A14B00599D6494E582C548DDE127941568E5A1147A4EDFA5898C6583F |
548E969B294F12A0C5C9DB81EBA148401A91782C5260A4F23B6C193EE030C028 |
0408B5BCC30433A651E9D91D47F5C76807C6CF2E1C2A545216EAB55243FD6BFC |
F2921F7BECB1943B4C513F1D72C821175C70013167DD1128BBFED70523251659 |
B4F48F28E0E6F7311E63E025BE4AA1312AC25DC3D0FB5272583CFE2E0933BB7A |
3EF931EA9B42B2CA46B13101585D18162CD34805EB4EFD128F2576444CDB0E37 |
FF9F7FFEF973E6CCD1F5491FC4788C140F4DF4409E5BFEFA2EE6C3730229E5BD |
5A23EF2EEE2C9A8634B9C7C07E40F3FDEBBFFEAB7C3E09534D1D52863B3A8950 |
CB61BA64E06EBBEDB6DD77DF3DE534B94441903BF614E332319FC61C18FCE52C |
807ED86CB3CD6431E0FD6BAE00BB6EBAE9A67FFEF39FF55C1A09602B26D6A056 |
8C66D7267084BFF9CD6F5E75D555FA0AEB2E693063C68CB3CE3A4BB3AA370954 |
443E8DE6CD690C6A0AD88553E79E7EFA69A78DE9E8EA41132F695C21652DED63 |
06FA3A2A53DE5A65E6B8B73B7ACB7DD3D658FA89775F7B6AECAAD3C78F19DBD9 |
DE35D05B67D96CEF284F993AA99A55BB7A4BAB4D1DBFDAE4CEE50BDF98D2357E |
8F2F7E3D49A2B48D49794D0E07161968766B301C887EE70B0A1AB7507BDDBC33 |
DDFA459B419AEC81071EA035359112AF8B8319594EED675E88182EE275F2C927 |
CB81E15839146C911BCFF5B007DF8819EFE4AC014EE6D464399CD63B0AD11753 |
BCA5A646F4844F34661A952E58B02092C368F6D8BAC6FA6579AD23A72C924F0D |
2B73A83E30B78F149E363F9420084C0D927C1394995C33E52957B8022D85B8D7 |
3AEBACA3BDEA7261539BA5DC5F4A8DB89D76F2E9A79F7ECC31C7DC70C30DDA1E |
D8D0E4269813B42F17F7757C465224C028E53C1540EC98915A8EFEB2390CA847 |
E3C632E54291D9959F4D9B42397F0A5DEB4B396F14B80CF3D4E0D6E0DABA3735 |
063E4A519BDE04D9EC12C2D72EBA77330082428E1EB00F08E2636AD1946AD883 |
41850CD60D76136579239551B1BA6410B188535E93B3E5965B3EF7DC7374CD23 |
40570B9855DC74763615844C38EA4193E948972324BA0E2AC1F50F0E0A91DE4E |
79936ADAB6939271E948FA4714B07B45C032E384C2289100DBB011CC19B9E8BC |
8B389C12C17A2E66C6883F3C4B7D9D640C7565585130A2386E59E0138852869D |
CD6E89D92C6BEE94A7978C592D8428526EFD1053420246D64C6F0F86C15A6050 |
6B4D9DE341B1A5DC9CB57555CA995923350777977CC79EF39B345AC1B7B0931D |
212DD89A72E58F3EFA681BA0E8090E88A3821161E49C3183673C06BCE057E998 |
F0ECFAC0C61B6FFCFCF3CF97F3BE7EAD8D57A1AB7CF32E22E98B01819BE8A238 |
B2E304456A23B44AD4B9E08BC600AE147FEBAEB3E0D55707FBFAC776E9CACBF5 |
1DED8CAC5CAAF6F4F5AF5A6D3F34F569D79753A93365AF6D35BD65CB85CB5E99 |
3471627B6AADF657D6FEC05A2D9DE5D5A7AF3E581DD868EA5A9D9DB5658BFEB6 |
C15AAB5696F5D596B5EFF5D9AFA54A6B777B1BCBAA3BE251706C890790FE00A8 |
AC45D749BFEFBEFB52F06B0BF1DEE6572D47E731E7DAEDCF3EFB6C96F7ABE62C |
54F26EC74401198FDE04C3EC5A6A265FCBADC5A21C8B2BE07EC412F034B25960 |
EB395240CBAD84728B664A241A5C2DA9170548EC556D45B8190A9966E7C2A5B1 |
348D859E34D02ED5F29E7DFE19470E19E80C45CA2B8E10089A105BC9988F9230 |
2E12411FD9EE7752D6E9120F95B3A94BD12984722F49275D5057239EC4014408 |
E82BC71E7B2CF9145FDFC22DB65EE04D88BD520E1FD15D787C7D97D4523DB208 |
2C05CD9772523A47DB59750D4BB73FF3CC33BFF5AD6F6119315C079A5878986F |
6D97EDB1C71EF7DE7BEF71C71D77E79D77FEFEF7BF478868BBE807EC94F5D65B |
0F0EB96A206A07280B7C463F909940132050348FB50617953385FAE2E73EF7B9 |
871F7E585B9999DD7CF3CDFFF297BF44907D16B83B463A18D1322AA8AB613FCF |
299578FAC637BE71C41147301B9161C3E88998A7F12B92F2689090C345D43BBA |
30E2B9F0A5D8F718433A817629A2408FF8C9F48F28E02CD044477CF54839E05A |
20F2347353D491BE88CBD8536EEE18AD602A696DB6ADB7DEFAB7BFFDAD0BE789 |
42A3DA516C856729E52CE731D3C9CBB1107E8D7956E723500C106B00C2B41D56 |
00C0FB711C86D2EB820B2ED0D2A7862A02A259884EFBA04A96699549151B744A |
E21910162967C33730CBFCAB993BF57972C900F75069E41D8C969745A8A3540B |
441C9E9FA880BDC138831B6CB0C1ECD9B367CD9AE5E9E2BCC4689B25BBFEBAEE |
BAEB6AB73FF1C41318FB6865325EBE8B6783D41AA68F4B660DB6B06B6E4F281E |
13EBFEFA89AB5552B5B6DB2EBBFEE4C7B7954BE5B6AECE652B96A7AC966AADAB |
CE697D3DF5B44E686F7FBDAFDCD5B6F8A5FE555BF6ED5BF4C2D429533ACAEDE5 |
545E6DDAAAE3278E99386542A536D832B66DB34DD67FE7B5BFAE396162EBB281 |
F46EB6D7E7BED6923AAAB595B594DEAB76071174AC3E93AFFFC90234C7784791 |
1BA5D04CDA0800320259DEF24F3FE844481569A161A200810FD2CAB17D748F84 |
8064BD7406AE586528F767B302F6D870B26D1D1A6A67001A7F8D2A8D5A503A46 |
A378644300DA2F9007782A4C311BBD49A7266B3967B8C3D16BAFBD36F59FA5D0 |
62956A08C200FBEDB7DF77BEF39D993367DE7CF3CD386C5C4D23D1EE3DFCF0C3 |
390B30B7484F9F75D659175E78A1E64757B8FEFAEBF7DC734FCADB001845FBC3 |
A156B446A10C87708823374E30C5DA27337810634B016E66D8A949B6EB6668CA |
7B761E75D451175D74D1A73FFDE9BBEFBEBB3494C18B9373E595571E72C821CC |
324BA28F698BE8A8EB4EDFFDEE77E598A73C3FAFD5D2BC9B698C780BE44111A2 |
49A51D5686E118244A2957D5F455F3A602FAF0DCB9734F38E1047D66DEBC79A7 |
9C720A158DFA5F479A68B9F11A3EBD6C3EFC9E5150D02EBD48A1F51E20D8613F |
AFA7B3578759901A99BCEBAEBB6EEFBDF7A66E84DE32142A98BD81DA127C650D |
469B46EE05FB40128D8E28F3E7CF2FF09573544C034209A69302086292A9C400 |
1C1DAAE65D84A3D24AA386A0C92C98409F628C91E6CD292B534749157DE10B5F |
B8E1861B9C9E31513ECC3BC71F7F3CB9467A9EC7E888E9992256087A07FD2A29 |
4335360A292ADD984021FE66842DF3638208E7F3D8337A403CD473CF3DF79863 |
8EE17481D125456415EEBC692534DA224E1B6B15F0FC38CC59DED4451FD3B468 |
7DE5DCEBFA4641239BF4754D089B843C426AD003A51CBC46A62666C1E379C626 |
30750650BE022826C609AC410BA04B1E93CA37B3BC39D48FA38F2FCBD8F4A41A |
3936B45F3EDD2E9923A3CFB6749821FA3168BB025B191956DF8B3C48FD115ACA |
CB2419B372AD8A1D91A5722D7577ADF5F91D5E1E7B6FE766ABAE58FC7A5A2AC1 |
923ABA3BDE7D71930D5BD619337EDC807CDE81CA8471E337DA609D09E3C78C1F |
DBDD5B59B6DAAA535BCB69E19B6F4F681FBB4AC7A4F94FCCFFD69127762E1BC0 |
80D03E94F2833205317ACD35D71C70C00129AF3D437CB92EA3F6BE4B5022BA2A |
A6390DF5672A7458489F19529EF2CA31FF2AD1ADB5664BDB1436F8CEEA76D8C3 |
1ED5B033ACDA9C569328DA82CD4A940E7713DCC9965B6E29FFCAF56F31189072 |
7C9FCB4A9DCC8E7962076320ABD96CB3CD9E7EFA69E4A73D8A88C37717356E6A |
A7C5C4006C1E5C64975D11FE941693BFE4121E14101940F21D2E32263861A65B |
3C01F037FA353AD31698388A29EFE186E7200F4D8F83391B73AC9C91CC05B812 |
10E48A2DB5F527E95748FC658EFDF33FFFF38F7FFCE34215E6AEBBEEFAA31FFD |
08217BFEF9E79F71C619E4066CDA1BC1E11062249B8CB0BD0F7DE8438F3FFEB8 |
5C5EA91F9E6DDF7DF7FDDEF7BEB7D65A6B71C863F73D5785E207A3AAC16B602F |
5318EE70BCDBBDB9F344E1E52A4F72121625A358B2DAA0D29D7A109883AC1828 |
A4D317357B84A963E0310D8D8118D3CFE3507C5580036043915D8EEDACF58CCC |
3F6BCF7E2D20E0FFD110B443CAD14E6AEEDF19E7C1E91FE7A5B6DF7EFBFBEFBF |
3F85F80F3C098E9A1A7F9105A659537090F0F3E0DD8526AE4B6968BF9A2C74B8 |
42355229171B56A63C3CE5F03812C7C3762F01A8CDCA79CF06B6593449237AB9 |
9413D216F89023A89B5995F494CAF784F0A60D6A8E7A2C29D69F0055917661D2 |
888BEAE2FA24890FFB4F5C5666F491471E49409262D961FD78A63D4A6D1E0159 |
E92E8D0499E21C72CA4C769FF26AB76A687BECDC3665B8CC15F5CD5019EBD1CC |
41163DE0665DC560C834D52F9EA58D36DC68E79DFEED86EBAF5FF0F69B49626D |
C2D8D5D75FE7B535FABA5B3A6BE39FE899D691C6D5D2DBBD13BB3EF06E65C9B4 |
173E3C71CA2A72394BAD756DB1F5A61B972A0313C78EF9C8B4292FBFF146D72A |
935F5F52879F94DABBDADABBDE78E3ADEDDF6C9D3D7B368FE3C487575026948E |
2795AF1A980B93223799CFC5B0E7A594F7B48F3B271E3176175F8F8534D4FC7C |
F6B39FFDD5AF7E45EC14B8808B734CF563E8BBAD99E6331B7F8DBCFAA91189D4 |
06D3037EEA539FD2BD061BFD1FB3501DEEA760956940445671582074DC3C7E40 |
17E25773C66C3B1B9B6CB2C933CF3C13215D28C8982D95B49775A2C9A13E987A |
BCEDB6DB4E1A042A0262CB3A8FD4BC1986AD1B9D73CE3973E6CC814AAC34942A |
D5424FD7DC79E79D255A256F89D61835C6CB7D5F9A635DDE065CEDE0830FBEE2 |
8A2BE43D4BFA39C9951AB0D3BA00F4F25773C63B8B2A4DF755575D25A30F8C0F |
75323A3C98F67CDEED68F80AA947902CB4554979EC916D51CE9BB66256786134 |
807DF6D9E7EAABAF46A15E72C925071D7410457810AFB8788E15C5F0A404D352 |
C3DCDF9E144A4D288929E0B6CA4399EE5360A0D53581BA54F23EA6CD2FF23148 |
43AE4FA0BBD2E86177D4514771002819A4D0A53294CF3D8A4E447F4BE8028955 |
55CB7913E3B676D6C1986D503C3E42CDA896611567C4FDBA29CA48A0444B6A77 |
8030B3A31DC442E4100E4862097A2E335239A38FE48A1BD7C672D4DCB6A9B17C |
1DAD35117429E761774D30AAD77D998C1F2935D1299B5EC7F800D357998B8D11 |
2291530E614D39A308C05DC3E86CA4BB44A416DA12300C6E5ACD390809ADE316 |
3BF8C90C9C78E2899A4377F036F108F0130373B47F08F070C44E3AE9A479F3E6 |
A13B1DF384018AA7767F59C48AE71FF38EF749F5E9BE5A38691D422CB5D08826 |
6ACD52E0094FC1F888D40ACC9ED9FE1C871F562B308744DD8DC3D23E5FB0E00D |
E9E0B6CECE96157D59ADB23CD5D2B8D2F8CF6D2F67A667B0B7326671EB6AAF67 |
93DFAC0F51F7AC4CEE7E63F3ED279496F77EA0B76B70CCC4B4E9EA533FB6EE1A |
CFBEF581F23A95EE6CFCD23757544AD5BE6C494BB6EC039D1D7DAFBCB57CD22A |
A7FCC7AC8E45A92DB5D6EDA0AE968B2E3CEFA899870CE6AB46449A888EFDD794 |
87D9405047F4BE8F617C402C18BEC5EAB3D5DD8407F3B15E37D152B74A2BD54A |
5B6B5BFF40FFE4499365C1FCF1B13F6A9F9ABBD4EC63BACBA1871E7AEBADB7A2 |
337C9A223973CC527B9C4E37E03B71BE742372B736494B81B19FB36F0AE1C1D0 |
F354DF4546991B00890D836F6CCDE9BC2902392246E3FFA3CCA4E75C9792F3F6 |
DC73CFB97119E68BA58D3E2993E217BFF8456AB0C9460C2C9B5C5ADFE1077704 |
30601672374D29B84B467272E3556AB4A7A3479F6B7CC8A8EA331AD55FFFFA57 |
66B8F995C52265209A80F110F4E00EC06DFA50F93C43C944E2871A09562806C7 |
C956A6865F12A3138E9BB33684E96CFB333BA64875F1B55B796B6C9AEB682712 |
D6F79C9222DD69A79D64C510C8329A1C6091D1104433E2BABA8C2A8D0A3ED2CC |
B881E0B9E79E7BFAE9A7B347D97040B87910177D23CDA1DB25D489D2C56567B1 |
AB394570611732126D914F7FFAD3F22FE1CE3586D66ACC7BBA94F7F44823BC5C |
FAE903304AB9113173A7730A2F4406A7CE4219EB270A1D7C531356A49C56B3DA |
68882B6382D0086823D3C280ADAB345A1163026B56DD929206C37A167DDD9696 |
FED7674CA29235D142A580B2C6067736884D0B5A55BF460235E0BE5663B13E9B |
182079416D512CAA82E95DCBF9A152E8756A165CFE6A920DEEEE5254365BA431 |
8128FF90430EB9EEBAEB88B6692780CBDD6DB7DD7EF0831FB03D22931F9D59F5 |
26D08D638F3D76EEDCB94C85AEA6FF3575D6B2B2DC7FFEF39FBFF8E28B36F890 |
15ECB7986E8C1182B89198AE485BC16BDB6DB77DE8A1875240E9378B5A4D29C3 |
8ED673FD34F5AE68EB6A6D6F695DB1B84762A5B72D8DFDD00669AD5596F7F4D7 |
CAA55A7B35752E4913DE2E8D5D526DADA46A2A2D4AD5F6CF7CB0674AB9639571 |
93CA1FFBD0F4D7DBBB3F3A41575B7F79D6FADA3B8BCAD5C18969B0BA7C61B9AD |
B565EC9825955AEFD30B6E3CEDB2856FBE5BEA1EDBD3B7544AB2B59ABA1B7024 |
2774107486ADD8CCAAE585A1D192484D95C18ED6F84F6473F5D266730AA311CC |
1B7006943B6EB8E18652156FBCB100A79C3B6207633639F3E2E87DA1CA3C4A36 |
7B2FEC40622D29B8AD16FB6C542D252E56648204C3614AA296D010C5CA3B560A |
9832280D65A0CB8652DE16662CCB5FCC98E102848538EC4425D350B75BDE27A9 |
4C000A387E0858348B66ECFCF3CF97D7444E01998C2C2228A5B3EC8222C40E02 |
DC882D0FD2157A2984C4A267555C85D4A80FA1971CBB3CCB1B6671C0806C99AC |
B840C54E58BF9AB7C2D0AFB366CD92FF1A1555396F4956480FB8B3AF3388BC00 |
5EC1C5A36F69FAF6DD775F4D90F6A5C4B4A660C68C19DFFDEE77914D281E8482 |
D3CFD0AEA65098856FE74D437523C1BDD430A368FB6AA78A1EBAAFBDF6DA28A0 |
2D0D8CC679FC80C830E68BB89C938EBAB29C12893C6F0EC71EF980ABA8293E69 |
06FA6639CF91843B1DA1FD2C5A114DFB7FFFF77FD3B02CDAB62329547F86632C |
C379EBADB7DE7FFFFD47F1983DB14600E00B46AF88FD608A159C1847A7E1A988 |
784857CB1D70C001D75E7BAD8C6ECE0F93E30003CFE847D6EADC78E38D7BEEB9 |
277D009DCEC0D28A0DC65127D8E9050F2085C035252EF8E83161AF616CB3CD36 |
8F3DF698BE42BF6ECC1AF8DAC04FDA0B49A1FDD141071D74D75D77393F1A2B5C |
53EE3EA2A8B40F89A4A5A1D5E7F6BC53D0F47A1CD979DA453C32C59A08351BAF |
A5465BB0975E7A4997327511A5F0BE3E2D16F0393463FCD5629AC5F2578863C7 |
C6E12664B531810513D9FB628D0ADFD21510DCDA6C5A6B1D55CE60B3B44D792A |
8484D7BFFFFBBF3FFCF0C31A70DDF8CB52D798B65AA5DADB33D8D2960DB4D5D6 |
FC971D5EABF65607FBA47C4AB5D6FEC14AEAAAB54F5B5A9DF0E240CB8A49E326 |
4DBE678DC9DB6CBA384980766E3A71957DD6DDED4FABCC4F6F541664836FA7BE |
7195CA46ED5D834B963EF9D65B8BC68DEB6E2BAD59E93E6197992D83A5C1541A |
33695CEFB2C5A5FE4A7FEE151029D16809FEA5C0AA6B8D620C7C3346A1F918BA |
3C0C9615E00E43B184124A726334C3F5FD3F69D284850B17B9CF0FF628385923 |
AA7C009D0DCC86A326D56BC71D77D4F6361964CAEB29F4755005C41D3135A25C |
723E25D61372530293284587153FF1894FCC9F3F5F12954A2A700F8EBA5543B3 |
AF3839FE3956CFC709749530C6259C655AA0683D189FE8C0983E697CB29D317B |
179CD6D34E3B4D6E9523F059DE24D8B776C134BC0BB10095A3E41A012664F80D |
E0EC23A391E0B8F0C20B6DB6A00B3D4AACF852A327B9D6C395B248B7BDF7DEFB |
273FF909AE00A717CD6FCE04321F595E8C6C2C0367955E3192236641D203600C |
023FC3A0405C1207F0CC9A7680758DF1D298B1D39BE79C73CECD37DFFCC73FFE |
11294FE3307DFEB4C64B6F4A34ECB7DF7E71BF0E3B710496750BE90C92D61104 |
6EA7010DC4083578CD1B6D0938BDA45BD8408851D6B8507F6CEDCBE161721C15 |
E167232362436FDD7A24109955911BEE366FFA820276E7ED98A764ED76DA69A7 |
3BEFBCF3B8E38E3BFBECB3E11630E9A3DB92C7D8ACE5B2D983F5ADE79E7BCE56 |
333BCA007BAF855318E6D3D776954E22809F1A5EA076A6BEA85B3B30502071F3 |
21C1B7202B49140B89633CA43E2041A3C771B123F9170C91422D2633832E4409 |
E9146830D59C4239E5E16B328BBA82CCA62BAEB8C22B68767BA6971162B6BB90 |
51BF6ADBC8E08387CB9DEF902058091E4F24DAC5A6916ED63C3BFC70F1C5174B |
9DDB8831B5B5C6090D2D317C8853F450286303EE782EDA65B21B3D1857792197 |
6DDFBBE5940FAF375861BF61556B48DAD8BBEFBEFBEDB7DFDE98994503FD83A5 |
AC54CB52ADBBBD36AE63DC87375D92FA53A9ABB565A05C1DA8F4B5A752676972 |
6F9A32BFBFFBB5DA92B163D61CB7F65B5BF62D4F6DADB5CF7CEC9F6B93AAD3BB |
BFD0B2FC4F6FF5F7B48C97EA5D38B6AFAFB3ADFB2F4B7A17B58F5BFEEECB032F |
BC73E745D7AD3771CDF9CF3F5F3F0EB5CAF7AFF9EE81B3BFE9CD89B82FF03040 |
D1AC657518B3F9C4A51162AA05E03746D5CA79CE2413E4174AF6C25B52AB8FA8 |
965ACA2DA41BB45894EAC1A14B623805D56E7CB59305A5C00DBEF9E69BCBE4C5 |
1A4B8120D6DC581E242611A02A7DFECB5FFEF23DF7DC037110BB8B9E5AFAF9E0 |
830F968384AED211200791E5A56E007237DD74D3679F7D5622B494779D2A9087 |
14FE078217A344B66C50F9B18A87EC8C5B98C465A2B67BABADB67AF4D1479166 |
FA80769AF6ADE650528B0A2BFD8C1D4FE0211B4ACCE2983F7368CD4D836A1808 |
307A46A29D786FF5536E7703EBD02D8DE08AC933376E44F7486669FA1C9AC022 |
4640DB44B2BC2E18CB292FD6D409A76E182F39F60DE4BB7100E82A5D64ADB5D6 |
DA638F3D649BA0E3530E4A04F1A4C1BBC10B6B494098C883E9DCD84C116DE4CC |
041EBFA3FFA3A08553DE030A3717B0062298F5D0BAEA221A363573F855005623 |
190AF60AB57431CE9F8646AE5C4EC067DC8BD4CA9EA5D4C722D1DA280AB59C37 |
E491ACD4834BFAC7029BC28B4F3A71A231F0032A81ADE691B831594C0C534A9E |
02513B8F1323166C778C0C3FA649FB8025134DE103D8B3E6BEB78F42BD6C342C |
A2B043D7F2C2B5D50CACB9E69AF2B4E6CE9D5B287E4843A3058809DD42A74042 |
E437BFF90D828F4364E4B6EF5BCE5B6B3B0954CE1B04CD9933E7C8238F243C00 |
57173B598321DA69F7A2194AA3CFE84D6D786AEE110AF49921318C91E4E0D031 |
C71C73D1451791D021C8AFB9926EF6BCA13EED25700B139B13333CEBACB34E3E |
F9E44ADE9BDDAC76A59C4D8FA81DAD392365201BA6A5D102CBD97DD7958DA480 |
9D414C8D28A21EB631F8092B7A967794CA597B6B4F6960DC8736E919DF5AE96C |
2D0DAE52197CBD9C16B796DAB5A7065A2AB571EFB64D5C3CB0CADB1D0B06AB37 |
B7B6BC33A6B3AD65717AEBA207CE7F6BC9AA0B57BCBDF4ED451BAFB7DE40A5E7 |
A9179FEE4DE5C1EAD8526DFC3B4B5EDC60FCAA4FDFFDBB076FBF37ADA8945375 |
FA5AD35F7EF9A5C9D3A6FDD33FFDD35D77DDE5E82E47DE342F6C452D1CA7A000 |
122C88C1E653898DCE8970F5737DD75565AD96659337249554A934713D20B4A2 |
67C075ED8491310E0CAC89C7AAC0DB6F25570BAC4CD4C2A1516293BAE8F53AF4 |
85E67EF2C927E3076CB342B2A4593AFAE8A3C971B484CEA48064DD73D367A414 |
784FA31AB6DC8B58FDE6174E9A265FEB02E10F352CB1B70A8AD3E171D38F7085 |
0235907FB5956C456BFC8AF41768444E5679380A684D1A8524C32B606B5FA4F6 |
4F7FFA53892117075BA81969CDD2EA39757AB104713D1DBFFAD0873EA48501A7 |
6A0EB90869B3E3054B8891234C6EEC24C56248B36A4313C9A4C482310307271C |
A4F1ECBAEBAE3A1EBBECB2CBE5975F5E4855464C6CCABD101F7E7EA6BCDDA5E8 |
24F3F47F6C455E1010D228F478B0248AD14B7CA072E0E6766A5CC38637CE9411 |
1FFBD8C7FEF77FFFD7D831CD3F0CDBCDF1AB66A428A95C90D896FB9A01DDC5C1 |
80E617050C645BAD60881F0CFB79D93D5FFAD2972EBBEC327D65BDF5D67BFCF1 |
C753605961956D15C64D850FA419D0333EFCF0C3BABE09199837BC641D5A8245 |
245C4D25C39235C78D498E2062883D904AD738E5013816E4223A8BBC660F38E6 |
02287FC4BD368725880C2AB931E6B8824D4C36B3C68C0BC83997C9F8F2CB2FF3 |
4990C3D8EFD5BC4FEAD4A953E179C56D757F98D4C40E66723A8D449F646F4392 |
C03C4494839E0B1FA894B3B5BB51B41D7144526A98D41C768024D8589A46633E |
34728D93380DA8B1E38E3BEE924B2E21EBE912CC78C6F9A2164272505F913374 |
D04107D90A015619E5F5B01BBB9673D718B0B6F203E5715D5949C76979EAAB76 |
0C4EFFB74FBDDEBFA8DA526AAB4D5ED1F74E4A4BDA3BDA74C2FAFAF5A8D58ECE |
52EBE6CF2C99D793D6C8D29871F5CE0B0B97955E1C73ECAFCE68ED18FFEA9F5F |
9ED43D71B02B7BFCD5BFBCD5B3B463A0ABBDA7A3AFBD776CA5347E79F5A7E75E |
DA9EB56B4BE9AEAB3784BBAC643D17901FF49C5B29BB856DCAA191264269266B |
2BA840EF6DC47A1628421B2AB9FEDD818162222CA6751D70B6A26D09DD732342 |
CA3775F2C5C058B6871E0473505BE2ECB3CF96E279F1C517A92724D5E8E81432 |
5CFB4DD2E099679EA16709559778F06425280D8234C2DC9098EC080D07F0B3D0 |
77390DD5C1F104112034B017FB951364525BAB406D36A24D487B274F097479D3 |
BA6627D6FE69F05A4AA99E7DF7DDF7B6DB6E83883EE5503506691B08239E5651 |
1FFDE847DD0AB699FEA1A8806124E11CEAC614F8BBE45F17C5E4E1D04618242F |
4723F1FC78D4D470C653832F3E0D85C0385566808903CBE68C74340C0A40E605 |
2909AC94249C91CF8C96C2123D02FD8371ADA8E6344101E13B785CBD5A29F7CB |
D9A68698A690456F7E1994EFA022CC261B6EB8E1B3CF3E6BC0829CF51FFFF8C7 |
C0E1CCC14690136D0DD00C78B93EE04C1B436A56C0A0AF3DEDAE8E477340C11F |
C3CE2379C0B367CFBEF8E28B6951A289D565B564F3E7CF1FE9F358FA3EE1EE3A |
629E551D5124B52B586048AFE6C4A54633991EC4314C77E0817CC715DB9A4C38 |
984A3977B98D68ADA34483FB0839BB29A971FCF1C7EBD6DA5D5A08B60D122AE5 |
1D090B8F16094C2CB9CCF8C8FB482B726CBA2966AF817248043BF188B32CB494 |
E0BB294F65419E8A52E70CE3B503E68ACD4568A4CA086D28C8F2831B12280391 |
215C4FBEE81A5CC2BF484CC721CD34A4FDA90FC84A60FFC486EA9C1A96EC8003 |
0EB8F5D65BF526CBE761940249AF779A6BC96C87A5BC7380A988FCBEBB75352B |
608AAA4D30821DA06F2D59B6626C5BE740EF925EDD6D6A5AE59F365DFAFF487B |
0F38DBCAFADEFB596BB7A9A7D2BB940328A0A0128D9AAB9F9744CD4DA2D18005 |
2C8014B9A834514001E94D94A254351154A258A2895EA2AFCA255CCD35421451 |
10E500877E386DCED45DD67A7F6B7D67FD7866CFCCD1DC77878C73F6ECBDD6B3 |
9EF2AFBFFFEF1FA6DBBDF670ADD1E90DF492A15080193B49AF9B4C8564A6D1FB |
D1CFC23E7B1F7AC83E5FFDD93F0DAC0C83EBC2731BF75DF9EBDF1DF3F50B27F3 |
E6EF9FDBF4F4D8A6766FA29EE44B06978476AD379086C999A5D3D98B966E77E3 |
F9977727A7374D4D34978EB4378D7B15344531550B4154BA9C1997CE3C108B5E |
30BF139B2C31A4C8E217098EEA256EE70C54F9C52C9DD757A316B5E5F1B135E2 |
C91AD72537F88838827CCBE8D1FABC0630A13211B891E9F7F5D2C630E82906DC |
71F025ACF40B628D3E66264C8EF98663E3209EAEA462D48A9DC03037CEA4E922 |
12A62373C105177CF8C31F7EE52B5F293FD0395DC9372914CD03226EBE528C0D |
1A3D91FC69F0345A6E1E0A6C0A5C289E6DD8CADEFEF6B75F75D5556C7EDDD118 |
5E375B2358B2A05C9DAD832639A74BEFBDF7DEBFFDED6FF130E2741D50119F52 |
B2B0943F9B182FA9AA929D0261289E50F88F9288CD00DE00AD475A76E7A69815 |
1309DDE96C1C83D1739E7CF2C93C18C924A4D84D37DD248D624C7F985B301377 |
BD30318893A9C865A35A08DF935C8963C57D2F3DE9D1471F7DEBADB76A0CEF7C |
E73BE57C4B0E22B070EBF38A539EA43865D624C618D5CB5EF6B25FFCE217840A |
78D1F5D6F9BF10797E49C4A260BB955A67FFD3DA252ED35ACC80C0CAC390D7B4 |
2352B70016D095E5C2DE7DF7DD5483601B85B9A43649C5E66A4BD93119EC36D3 |
59DB6230710A5BC834874CD1B9E79EFB894F7CC2720AB03D51326AF635B76C48 |
483DE943F0E94F7FFA431FFA5052358DF631888F34B20C18141365FC7988D064 |
FACC9E7BEEA913C1CC7824988086383A76E7E942B5A050BD85B823647E1A9896 |
49E75C12219F5BBA03CCA71E355AB6DD63EDAE7774ECBFF9CD6F029606BDC991 |
7133223B46287B5D5FF373C20927D0F1DE25EF9A40D42D729F1C9BE366BA23ED |
EA5C64C5E4300686373F2A18B7CB24D743EEDCD466664DFF831E3060167D528E |
45515C5E0F238D7A36D54D47436B9F15EB4666D2E17AD6996E2533497DC776D8 |
3D4BEAA1313194CE249BBB33CF65DDDA9AB7FCC901039B77BFF6FAABEAADDE0B |
FF6C55AFB9E9A94DDB87DF3DF986938E5BBF629BC79F7C66EB902C957794664F |
CD4CD45A43F9F8F46EA3CB7F78D5F5613A34F2D0D4B3CC4C9C74E249B2A4E5DE |
D167DAD82243FCDEF8C637FEFBBFFF3BC103687D0D7CB13A89BDDE5813872A25 |
E400A649089A8D21126433ED8ACD342943B579BB56B56B337D6C7C4D54781675 |
80C690B57086EF08D2099F0BFC31A8BEF6DD77DF871F7E987C6A2C6AD28A7AC8 |
C4A2EC3AD7B318554A86D84D6E8818E9A4432EEB944DA8707C7E843E4BC5BA43 |
9F27F4C2E7AD23984FB4635C34AC73414237C69DF4F18D98A716DDC493021EEA |
559D72482B38A417DB31A12A82A8552F927A60C5BDAC8B82611DAD25FFE41001 |
6C127C48FAFFC0030FBCF7DE7B316D0016850A311422BF01D24B7DD172D9C86C |
8C17FC4EF21C58462F7DE94B7FF6B39FE1144AD8C9508A0B76A9BAD34F42BB44 |
BCE34E5EE00EDC030E9A564AD08827DBD9424B391B112B39BDF3EE77BF5BD250 |
123FA6B63EF4D043BFF6B5AFB950077D0F32089968C74E6BC03EC032C8A22697 |
16A0683B165E973AE594533EF9C94F862A166AE30E1907D006A79694A7C73FBF |
AA1D91A72BC4B624E2CFC98C580F615E304BFAE221871CF2DDEF7E577B282685 |
0855482044440DF35F6C5C4AB9307EE3EEB03615EDFF31211822B5B9DD6443E5 |
29324ED455280BD8D2B98CCD8809FD72F6D9679F7FFEF944B148CDEA841C75D4 |
5132C8587A2693FD43C48C6A25DDE5631FFBD839E79CE30977C88ED93BF1C413 |
BFFDED6F3FFAE8A31039395262CFCCB8B92DE02C1C2DB7723572125395A7482A |
B2FB2BAFBCF2CC33CF24051857B4F7B5BE2676D7ABBA821BE61AE7FFFA2AEB6C |
B8580D30BDB5AA212B7B5B53A4EF72F0B71C22864CD194877150CEB6A007C083 |
ECBAEBAEDAD2DCC80A3E36D7E28396450C6E9865EC9FE9CEF46836DACBB3C9E6 |
C4C86BC2781A960C85C673CD89A176BD27EB64281998199F991AAE85A513236B |
7E323EBAFFF0017BEDF3FFFEE34F5A5D9D94900D76F67AE58ECF6EDE38F37867 |
DFF7BCE9F1D0DD79A0BB7DE7D94456476DB73CDD636CE8C9CDBDB064A679CF4D |
DFDA66BA3ED99B1A4F66422DECB1CB1E3295742A5FFDEA573FF2C823FFF11FFF |
11A20274A64B5B1AFA24AFBE9F8519EEAB959FFB4A177C97680431B9B955FE5B |
0279A515C9549F5D686913AA5EDAF162CD8F8A870AB28062237D9B57555860A3 |
5C8265BD4E8F2673CD86D238C00BCC4BF4B8042CDE115776081A90A385983B8F |
5141A773FDA94F7D0ADEF550055F2D001DC5A1B81C210386D7FB107E46E93B3E |
E312646E6A8C673C93EE8766C3250EFC78D2426432860A19E3BCBB5166489E3C |
E24E4888D7C79099B7BCE52DDFF9CE77782A34795ED1FC1AF8E338AA642EC44C |
D07D797FC0CC82151C2FB3D71E116C27E6E31FFFB8A40F312E139C126D77F6A8 |
6F336104B1BAF66BF38A4EC5BE426D6EFB1D2BE02482E3F38EBD07A7BD49069B |
ABABEF159BF9EC21B3B7F795B72755239D98C73F54C1CF0515B0F48A9C3F2A61 |
B0900C6AAF45DD2CFAEC65541D3A0CE989C11E2A6722EE8B10AA8ABDBDF6DA6B |
F5EAD54EE43B974922071BDF12B6EF651DC952BA182056C0DE76BDA86FB92EAE |
5D44FD1B66B5D965D137C0BE98ABB4EA8B2EEFF6A4934E0A51DCB81EF571E3FA |
071D74102877AC225397D7AB36E37A138D057F058EAF4F17070C551D4BB77887 |
E85240E8A9F1A79C26EE7612C7D3B00FDCA3D48BCE91D118F42DFDC251C2B7C0 |
0DA5A69354715C37C920D1CDB21A8F3FFE781913DE2771FFB1582ECC97C5B12D |
AFFD76D55557D1942C464E3974D677048C43E98BD0E0A6F327D7C2F5F1635B20 |
C2BB6994599C028CC78F5986D4EB86EED26449AFD39B5E3A39FAB2C6D49276B3 |
136A1B9BDD25EDD0AEE5BD8130D099EAB447E4288F2F7DE2DF3785DDC351EF3B |
F2920F5EB855BEBD7CE3E9DAF8FFF3BEBFF8DFFFF1B3C15F8CBEF088D7FFAEB9 |
7E30C9967793B4918FD7A736F72697861D37E7BD6579EB77B77CBBD50EB5249D |
4CCACAECC1596CADBBCB1135D11A11B282F5EF15AF78C55D77DD65E29D0531CF |
FF770AD88D2C2BCE8D7E86008395C2DCF8F6965FB13CF417810E20991105F6D3 |
8C0A8C8944507571AADE95F1A16A90C501D427413EDB00E5D4387E96545D8A49 |
D9C63D5DE29221BB433C8513A66E14C4802D004DCBCCE761F45C600DAAE31F22 |
EE740497CF8E15703CED7E3911E0DC4ACCF9DF77128BA7F0322364E3D6EEDC83 |
8021D6B7A3FC6F78C31B6EB9E5963DF6D8436E225040D71A7EF18B5F94F7E0C2 |
061E29762F6C2BC5455A4626DB1F427221BC801DDAB843B9C64D3FE8BFE66CA2 |
1D0E2C06C25FF831B111CA6062509855A9A18C8EA533485D0A020D9C2A52B6FA |
9DE6489A74F79E637BD99F0B11F917DB5A0E813601722A89FA44F6B94D8E4638 |
5462FA65AB3DF6996DC93E41C9EEF9EA57BF7AD8618749815D7CF1C5A400CD32 |
EFAA6E72F3EC18DD5DDBF4D7BFFE355F5F4C013B24A529D217354E5B7F4954F6 |
E36DA7CBE2F66986FFECCFFEEC9BDFFC269BD58C36582AB15B6C7F8E5EF4FA49 |
F51A64EB186A6682F546621149A9A200425914412E87D4C065975D76EEB9E7A2 |
EDF2A8460EB1A26BEAF37282D9156C09D2ABB696F419C0D854121BE597563D6E |
391A71FB369F32F6E709279C70F9E597A3B488DF50528541ECAA120810246278 |
765D41638359CC39273B01A4966358A97F6760F1E6E703AB56AD9211E67C33C9 |
6357718485D07F717E24FEA7199A6C76FB9A4462D8215E5FB744EB45BD114364 |
BF8698C22CCD86F2E1D00BD34313E95E61E9EEF5F1B16E433EEA92901799DF7A |
6D20B443A79527CDB1656B7FBE211CB4D515E79D75FC21870F87B23C21AC3BEC |
C3477FFFEEFF48FEFDB9556F7FE3E323C379A7BDA437596B651AEED4647749B2 |
6232E96CD56C3DF8C5AF25D361C9E892B1F1CD4B0646364D6D0E91B517E602E5 |
EC1D529D184A731950BA13347F48152E6AE0A2C08C814A67C92C9F4F8DC549D3 |
F90A18616E92A9BEE8778CD6EE8B905B10B13965A6FFE637BF09118634447C17 |
C810C8612CAB638EA0F7BFFFFD37DE78239B1F8207BBDA0E4C7AFB8512CB46C0 |
15C317AA096386D830BBECB28BEE0E7126B92D34482843A1FA7ADCB28CF0158B |
C202E99A6078FBF268F1665ED0843212AD6F65F38A11CF1B9ECC7AAC74FA4A24 |
12909FE79C73CEADB7DEFAE0830FBA9A2DCC05A0BB90E6231FF9883E29452B51 |
7EF2C9275B01600CEA968E95239808BA122174349F13685AF939164115E6757F |
A810E5AB88B3617DF34E1AD12C9BF4835E5DB491EA3306D3881B3936DBD38A37 |
4A4FF4D18F7E542E4528294AF4D35CA09C3D09BE430F3DF4E69B6FD61D09F01E |
77DC71F21EF44548BAF1C5814152DD811061EB8054D29C1C75D451D75D775D1E |
1144C4107C42CA3EC01A9E7C1D70CB58E2046F89FDC6595203EB6B559B643759 |
A2C9A346E88C00F20E7199547D0BA80BD7FBBAA384B22641A2BFAFE0D52F18B2 |
74121E7BEC31CDC30D37DC80D9E45E43F95C2246F69B56E788238EB8FAEAAB8D |
82D60780BB03AACAAA064AA610B726E6ACEA5924E9302FD016DC174A4EBA4B71 |
926546BCE52D6FB9F2CA2BC9CBE2C4C85A627BC73EBAADBA58BC5253A1372FB8 |
E0826BAFBD169C20DD4CF109E819ECB60D7198D7D9A3502132BCD9786A7D5E3B |
EDC20B2FAC57BD17A9E8CF2AFE515D473B4D3E6E52559751666D426CCA94A110 |
718CC4E85C2BB018E3E35854529147DA557DC73BDEF195AF7C25DEED5BCED186 |
79D14E4E681C0C0855A522FC65D822175D74D179E79D67061E979C0197651109 |
3BDB436224BDB457EF34D290B69399B03C6CFBCAE10DE31303B5D0AB17F9DAAC |
97D607A58EDB793BAD8F8D8C3DB029ECB0F5376EBBA9DE6DBFEEA0BF908FFCC9 |
CF5EB26E62EA86EBBF1466C686DEB6727287B1FAE665236B0F6A8CEF32D2680F |
D69E583B319237F395B5DA83B77E23CC84E650AB3DD1599E0C6D4A263158D999 |
36FD79C56E435EE27229D3D2D3696F9807664181BEE517273144F9A03FE8DDCE |
D62F55F14F3007E8A73E304488C254F315B083B43ADD6BD6ACF9DBBFFDDB7FFE |
E77FDE77DF7DB5D34CC28A4947718A219971E304DFC575A74C88AD348261AE82 |
7152CF54719A491D90534E3905E901292C4D6B4E3DF5D44F7EF2937D8C7BCEA3 |
852A4CADCF9C7EFAE96F7EF39BBFFEF5AFB3B721B79A3F7516C58BADD48200B1 |
BE90B51E90F3183FA363AE7120AAD0776E114F0A5A8FC703700010D32499B05C |
30C925D1BEF18D6FE8F3DB6FBFFD934F3EA9C945F5C616B4412B40649D8E8E03 |
4D7D8DC9702F101C043A2835416ABBA5ABA78027F43A994618B9F3D297BEF4BE |
FBEE93E5F599CF7C069C11D8DD0537311E243D5BC839A525FF57A8309C80AB31 |
058C8605E60ABC851312B7EE3210C049BB1071AA491249D0F0271F369F045C7F |
806052847A288AE2F1B9B9BEE5AC3E2F7F5ABE910BC6B820F3ACAFE8221A67EC |
2AC5B28FE8165FE1C19D9BD4EBE0830FD65E5F2C77E565C54EC73632EA92278A |
31C04061797C8D0A5B984B7DE0031FA07EDFD1EC5EC588EBB02A1B06D8398931 |
A3E5B9885306C87487348C19096524CAB4E1FC9515674E9023449B4D81ABCB6A |
D8FAE799679E2903F4B7BFFD2D5F41105B57CD2A89882199689E94B79E8E29A2 |
F535F329C9256BAC17F50646F16BC9E0538B8114CE6F61F450C8245115972782 |
6C32B538E66CBE509BBF3892861F4F230AEC66A605660F2FF416C47DA810E624 |
F6DC483BAD58E9113224F00C90CC4B70A264B7DE07C2A3BF624E85A87FA59B76 |
1447A3163229572960A9C7A1B0D32BB71ACBD72783B5CE7467B0DEE8CC744323 |
99CAB3EE4C18EE8D4C3D3BB35D6F87B064EAE2EB2EBBFB9EFB8A58CEC4C6AFDE |
F8952561DB275FF858786133AC68873C8C6603D31B465BD3BB8DB6B79BCCA686 |
0706974C741EF8C6F7C3E65E3AD0CCA6BBCB426B6378BE6A252626C34A36D225 |
54862FF63180264723FF083F7881F3D5A7B99345E8A2626DE7CC0226350AD840 |
99B8AC60B11CB05166495923A34591F094A8774B445D817E94728B7155633260 |
9F381BA0C6BEF8E0CCCF5F20F021D9C588CFCB620ABDA383AFBB33C3A1046150 |
8C00D19B248644259A488742E60212002D0BECDF813122B50E79926CEA8BF0C5 |
3AB84FCBFA682FA880B39255F7252F79C977BFFBDDACEA33D10753ED5BBEE4E2 |
8B2FBEECB2CB28BA375C052A76D409234E2B82823EE0CC0B5EF00209116D3239 |
C7D75F7F3D7830906FD4DD4BD44A3710CA3683397B027D4C356AFCFC043D38C9 |
21F2804314524F4B4A6A834D9C4F2270A73F51A3D9F7F5302F62D61715EF956C |
BAAC346A439795E9F4D6B7BE95A305913725C8A172CB7828B4A39C12EDC877BF |
FBDD92D4071D74D09D77DEE9317374617A03E01D6317FBC41CD4224E2740C389 |
6A8CD53CDA9AEC887E01016151EBF6DD14AA4BDE615810F1F379EE2B2921C189 |
ECD6FAD2EF73410101853530317864283CB5FEEE53C0A1B4E52937D4B6F139D7 |
CF3DF6D883F8B067D539691334F6A27EDDA1B22D42855B06720976C3FCDB543E |
5005617A6442CA9E87A4E2CB253603A302EAF9C8238F94ADC9D18AED3C90AE46 |
4DBBA63C545576BCAF8B6800DAFFA630644E1C52E2496FB8E186E38E3B4E1612 |
E7D3DCCB7959E0EBAA0F7D18D6EB10E559083F605CF2A6E130286047564214A5 |
34AC096B430FB56AD52A6DF24B2FBDD4AE4C58DC03F651EAF380B522C810CA17 |
2D3408E6C318AC3D430D853E2927E6D39FFE34DA1A392371A15B83D10B95AFF9 |
FC21D5ADF274B03E90A779BB39BDCDDECBDBCBA7A69B53E9CCD060AD3E313ED6 |
498B2E0CA11B4687865ADDF4B9BBC6C392B0D32BB67F7C5399607AEAA9155963 |
FDEF3A3BFFE56B9F5A7A6F77E5A6301896AE0C9BDA5A8E5EE84D0F6D3C604563 |
79EFFE751BFFED77C964984A9334C9477B6163773A4EE6395F13AA16D171EF3C |
FBC198D1045A1C72584CD5FE41651C1FC19854C30B1447D1BC0381E32070624B |
11FDB7A0071C2A2323CE62C40151626FFE2766313B396E3EE8F20A7AE55D75D5 |
553EE0F84E1EB9014A1AA74E0A89182222F8C714B8727E930A6F683D859AEF6B |
2CC638990A1802A0990A55D98B99044304C8DDF212F4698D302F046D62251D49 |
ABFC1869182A0388D45EF165576E19D163102FA59CE07E51962E15FFDCE73EF7 |
BEF7BD8F8C1DB7276A8F9D4EEA1B23976427182EF35410A7652E70B28985FABC |
79A7EEBFFFFEBAD1873EF4214BB4BC220D370325712DDD54DF62BBF349883AB5 |
395812AF5F3297959009BAF0C20BCF3AEB2C6D26ADA223AE167304D8096C12EB |
365B376152ED3099206EDDDAD7A329540D8E48D1519A46A3C6050F8044D5D147 |
1F2DD9A4EF524EE3A06852816689B5C25078F9E597DF7EFBED3FF9C94FD87FFA |
8A7E215E6ABBC121CA1039E2DE22EC7EE0A94EC2E19C194FB7E08E34BA4D1B00 |
A3C789097BC00E4BC034ABABE92E2F7CE10BB5346E15608A25AB4F16D10C182E |
9ED6EFEF7AD7BBBEFCE52F03D98DE9C308D9119146446655A33D5DEAF5AF7FFD |
D7BEF635DBFE7A13503D2A872039869DF3581AE4AF7FFDEB103964EC55CC4740 |
22CE14B832C41127A03AEE518FE0C68575F029293B5742EB16AAD21D7D521BF2 |
B4D34EA352CBA492575E79E5873FFC615945B4C284FD34CE4D6AEA7400F1F209 |
21C6E86E260720455E757D26A5674A38E6105B365EE83ED51B670A2D46355A02 |
6638EB5E5696BE56B585D6988DF5D380F5C50F7EF083F204B4ED292AC5EBB5C2 |
8B1255257830D5B3D5B25A2F5BDE19DD77604363B239B962A8914F8D6FC81B21 |
6BD524AD465BF5C15ADE98DE6AB2B776DB1D7758F378E157AD585E1F5BBFA137 |
39D05ABECDB3599E8C347AE1E1D1DD66368D6A8B486DB7C2C6FA92999563DF7E |
ACB53A34C3E0E690A5C3493A31DDADA0643E2F7D6176D691F575610296257BA9 |
2FFCF8472A608827F965AE2B3C7B7ED3B9A4D3BD795D9810560E3EE7113A3D2C |
1282B64060FE319B641F4B8C1304E664813BD3017473027B2300603977846191 |
93AED6056315231550C0310E0679EB27C285706A4F2FDED1D9D11888AE6947E9 |
747CEA539FFAD33FFDD31FFDE84776E16C16E8E0C81094A378ECB1C742E70726 |
DF5AACCFEB5D2C1CBD600E38949BC43180B8D1915F20BD396B454820544173D4 |
2767CF0D380158E942871E7AE8F7BEF73D0899DD1D4CE32697A6CF43FC0B28D4 |
A81346B0FBEEBBAF5EBD3A8F3A20C134848110571BF719E9A4F4A96A0F1511A6 |
E7453F01CA4A659E74D249175C7001B40FB013C8E72040A78F49795F7DF5D5FA |
80F46B3EAF07248B4D84D93C187A7C69FD9B6FBE996386BFEE7A0F46A867D49B |
586AA16CA9411346BCD2EDB7DFDE494ABECB19A8CFED7EB8D801085534D56C91 |
BA11740DE87862B0F2B0E59E02040367A849F323A066E27634CCB683967DDC69 |
5C44F7D25D7025F50157CD2F28204CB84D74D1F8F63E2B27CE47B285AC51F0E6 |
35B0F3CF3F5F22D814DFA14A32E5558799ACEAA1CB4DD1CD2ECEB3C513A26A1F |
E43E9762FF703B0332C96E6011A34AD1491C5DE62DCE2A21CE7A556F4D6B8874 |
5E7FE22442A59A1DC9B07CF7FBCA2BDC3EEF6061B00F4D5C4ACD18FCE1B45576 |
9E8CC9278F20E1F2C0030F38A11BD7DC7B77F9AF310E80A98B63514955176485 |
B1A0029E1FBA0C73390D2CC4EDF1C7012700F0CEA0F3151D1C006B2132659E2F |
DE486A85AB9AA7B5504B43D269B657BE7A645D733C3CB57C7828E9B6D7B79634 |
D3E181F1998946E8B542D8988465A3B56C436FA457DCAB3B3CF5DC78686D3732 |
335E0F8D6D562E79C1C4E38F26C34F4F2DDD58DF3E196D0D6E5832BD64C3F2B1 |
1BD78D6E0CC361ABA7C3C4F07603936B37B41A038656B8C601D4671CAD89B7BD |
9ECE6536B1BDF25F52C0E5C45A0117BF7B1DE64376AD5CFBB6A297AF8FCB627E |
2C30D640B1B07224B9AF309D8FB17577DB6DB7534F3D55A29855B3C1EAEA0334 |
AEA6059A451BBE315DAB6940906304A575B57DF6D9E7BEFBEECBABA64FF6A60C |
B3F249B4F430A589BC11F8B920A7C3F775589834621C48B01A4AE65176F469A8 |
BE0844A838F3F52D4D17AE9A6B9C4285D2A2F25E832F40A38E8C5D72C925679E |
79A6AE2B7DF9D6B7BE553602F4EBE430E0272349CC33FB31DC8B86243FE9E4B4 |
EA8EA22BC7E4124804FB3144478D28E1A934D7128EB253F009DC8E29990B2ED5 |
7A6BA877DC7187AE231DFCFBDFFF5E37D2904C629545BC1C69F55AACB1BC6B28 |
6968C5905057ACA84BC448E0B36B65156A45FD08BE9ABFE2624DC77C20A0E179 |
718201ADF0502C39F542BA35545988244DDA5FFEE55FDE76DB6DD8B92CA11B5A |
C4A2C1791A8E871913A96FD14F94B1630921CCA163D5CF134E38E1339FF98CC6 |
73CC31C77CF6B39FC5C5374C298BAAFB597DF85B78AE430E39E45FFFF55FD38A |
7A8CA73617ABCF894BDA50D80E2CDB4DA7A62B2D29D280ADE90A3C4B52B5A8D3 |
67645D69DFC6347271D0D5F225EECC112AA2250C14BD73CD35D79C78E2897601 |
43847999270DFBE17BF116CAA25692AEC0317B3B41206361582F07EE382FC600 |
93B0773A5C173FF7DC73E510E765B933D175362D65815AA04F7CE213FA0C3B76 |
BEE9DD37607D17F6560D80F61531ECD145964989934F225A9550B519C5D87510 |
0F6C7F289107719694DE12FAE588238EF8C77FFC4774B0D68B2CB54EAEFC2A56 |
4D26BE0C7D5A59C46400B146191A189D9C9ACC43566F26DDBC275DBCFF4B5F78 |
DFBDBFDEEACFEADD5A77A6161AC3413BBAB739ECB47264E353E3B591C16E32D3 |
A967B43EAFE7A1D14DEB796BA03635D66B4DD5770FC32F9052CFA79FAE4F3F3C |
90AD1B3B386C9BAF7CE65FD68587C3B2EEF281FAC00EAB767872C3E3531BA709 |
32C7B58249C4B6DFEF8C26F9AC4A4D664B76D931B564A897F7D290356A12086D |
7DA8D54C071ACDF593D3E56E29B46CB757FC227F5B73DC6895F0E019C9C9D048 |
B56A698954D085D2244F7B1A4E29DECA1F45743EE459318A5C7252EABAB8B7FE |
A79E866EA61D580CB29B95AE705A06B4F5B7EEF330BA6C6ED7133F291630A6BC |
8EA7A487D7D7BDE5F3E8156BF73E83200EBCC5B807B758D05D64689E71C61927 |
9F7CB26B17AFBCF24AED7C9B1D2E6566B3398564E1192A9E2FA41648CFB464E0 |
22A09D57A4B0212A1088D97C5D4AE067B103E9F4AB4F07C73CAF78CBFD22C388 |
07152A0B5B23217A8A9D91B8B411D146145723BEF0C20B2FBAE822D9208EC887 |
C89E35FAE0F6DB6F7FCF7BDE639E291712782EB8BD0EB91E4FE73CAF08EA0C70 |
25A641B4C12546BD8AB71311839D9E5765C44E066B6C7A933688D258E815849D |
E357B19B9B44A563F305D3A5975E2A51EE6259EB608D4D0A49CE594C31CF02E3 |
89F2E09A40BAE1EA7D97FCDA72C4D48A33C10E7BA2CF80E67A3C706540A762D2 |
637B8DA61E4BE6960A3039DC82EDFBC217BEF0DE7BEF655919D591471EF9CFFF |
FCCFF4020B15DFA1930E087783E310E5B6F1993D074B7846BAA668CBD6CA9E39 |
1A121822943D919610956AC4CDBD69A044EA1D04598C2F5DB56A95F4BAAEAC6B |
9A27445FC76AE4B23241B439B9ACEB95FBF2616C062F28DB09F705B9B0EFBEFB |
CAEA32B14ED892A7B2A59789176C4713FCA7A5B156D3EDA1180CBC54BE69DCEB |
82AD45C61A9B5217D7836B5921CC71CB04A7156280DE62E32704ED1B1D7BECB1 |
37DE7823FE745C1A1EABFF5035EE45F669486C3FBBEFFE585C381E2A7C80B193 |
B256B54F8CE824998D154E48D31219F1B7F039CDD2E1A1616991E999C966ABD6 |
C97ACDC1FACC44370C855DFE649B4DDDF51379577A67C948A160870B486A5B3E |
73D24C022597B206DB45094F61650D8C4CD546DABD56BDB97459BD39FDE4D3E3 |
BF7B5CD739E80D2F1DDE387CDF1DBF9ADA38D1AC35B6DB7DFB87563F94F49E2F |
ECDE82D7686192D667BDBA7A5A2BF7620FC534D01AD1ED9B456FC102985CBCD3 |
285DDB96567F60C58A658383AD24CD4B8BAB3ED39E92930FAA716A7C42275B57 |
E35C4F4E4ADFD632D920ED6EBB97497D4D757AC5F5507F28BBA45E6860E9D8C2 |
04A89746409E487327794FB3346B16F47B7EFE6788B2C54644F3BEF624FACCA6 |
2DA3CAE6317FE50BE198D8E1FABAFB7721F64384BD45356847C117D477A24395 |
F2881B95FA2E9044BA2CDE5515187656C07E46449941A9FA4911B351B4046E63 |
C9E0CF1BA34E24C9DC23644243054F411B7A720C34493827E88C50B91DA14AB9 |
BBF699844DDC4188C119A519CB9DBE3D1A77568FDB4DB8E52A60FD1075F3B605 |
61A23BFBC77DA0FC73CE39E7BCF3CE7334FB631FFB98FC805ED50331CCF55192 |
C511FC3864A82E135C20FB7A11672954C366A472DD8EFB87F39251F20FFFF00F |
8E764AC0D11AD3FD79EC71DAE678D7BBDE25598CFFEDE80A467712911CA1FB89 |
F7EA91FB2ACAB9236B17D3892022B10680BA20B877DE79E7A38F3E5A6E131F23 |
CE41126BFFFDF7FFCD6F7E63AF5DEFE06D7B0EB59B4F3DF554A226D0CB91FED1 |
8A9C75D65971B91B8FD3870C67279C7DF6D9175C7001D87D0DB25E76B3D7ED74 |
2F59001A89A65193699B433F31B33CF31A217FA29384E37231381937B76F4B33 |
36A7813506F9EE3FFCE10FB7D0422ACC4D0B25D10B539DA501BDC9121F7FFCF1 |
5FF8C2178CB7D49C77AB3E867406244A19AA281FAE30D4F0D80A8CE7BDEF7DEF |
CD37DFEC83403E12AE370C418FD0AC2C0B8E3FAD18AD4305E9D20693A8628710 |
18A44DA174B3668CF4B07B9D6A92F5D7030E38E0C73FFE3184D858452CB12EF2 |
C94F7E525B42768021F77CC03E53CC1EAFAFBFE94D6FD2A5981F3A9C0392EF56 |
2DE76269AED7F0E092B171780427A43B864764DF4C27F550A89366D8E1C5DB8F |
251B075736D615A7A0EC9D9AC917D5E5D250E25D82846DBD782BCF9A53BDE96E |
3D0C0E0FB4F291DE33F58987A7B367BADBEFB9D5538F3E9174C2486338EBB6A7 |
F3E9AC96159E647776187D55FB2EEBEA1F6ADAEC75DB956C94FE250B10924AFC |
24C54A85AD570E49E31619999DB76B0D34A480878606F2D02D9C885A989999EA |
E6C56C64DD0219DA9E9A25186FD4EADDF650893EAF499376DADDF1E999E7366D |
D8B8696AA69B4C4FE533D3850EAED79BB5B444C9F4DAD2D6A1F088A1602D14B4 |
1473B14B9334560C7D9994746E872294310BEAAC565C6B1B27B9AD2617CC559F |
7EFAE992A58E9321D20DE5716375CF703CCFF108E3125E06CF2F98DAA649F1B1 |
B2AFECEA801095728408D54FC8CAE4B88EDEC700640E51A86200683A8B08D3AF |
D24902F168871819F53C67A1EEA73F5053E554685F3C3D940E87AB3EF898D171 |
0BDA86D63436079086DDB2B1BCDE9148C2EFD965975D74653747C2C43082260E |
FE301759455677C61967C83DE52E18562EE28E5F5BCEC17845D95871C8DE691E |
FDAE41D2FD974F82B020E646D29778A0440F010DFA995B77F6214A1C99D452ED |
BAEBAE12C716F1FEB0CF3C41059CA7830E3AE8E73FFFB94F8EEEC29FEC481925 |
81A0972A45F2C6FE25CE2EB17AF69013C97AE78D6F7CE3DD77DFAD357AF8E187 |
BDD6FBEDB7DFFDF7DF2F8B475A138B847022AB43C2FB4FFEE44F7EFAD39F86AA |
A5AB2EF8F18F7FFCC31FFEB063387D24270EA8C621AF503558050AC4E3B00A3E |
99E6BAB3BF45D225D68879547E87EF6583DD5964B634611B775CDFB202F65EF2 |
790675423984AE661AE71D76D8012880339D440560CC201ECBB9B5FF1783DBF1 |
E9096B13CB25900095A66CC1BCAA13053B0699C99673F6082C2D0D011BDEAF95 |
7D8AA8C3264DA515A7BB00B970702ECC18807C60FCB6C2E35E75212AF707CF95 |
54142B612E9E366E061A438BE72BB62AEB61033ADB71C7ED2FBBECB2C38F78D7 |
D0706B3059B66EFC99301AF67CD96E6B363DB2D50B963DB17E6363B8503B69A7 |
FCAF5736FB93CFDC08FA2F69078DBAD90C438D66FBB96CECA16E78AEBE24DDEA |
D57FFAAA1FFDDB0F3A613AAD877617399B96E1A56E1C4E0B115AB84FF1CCB211 |
847AA758CDF2BC27D27659AD78D87470586653B7D5D4FCAF78C1AE3BEFBAEB4E |
B57AA2C99C6A8FCB8F95D72BB75E3BB75EB8C5B9FC5E9D2D88C7F35ED6CBBABA |
1006E5606DB459AF4B7D1673D2CD364D4CAF5DB7FED9F5EB9FDB948E8F4F8F6D |
CCA6A60B1D5F4BA5036441E449361B119C4570D56B65A54F636A72D2E1DFE479 |
960F9D9AE7D9256342157C47AF32B804F7FC8897AC4F01F7656D5EFEF2973FF0 |
C003986ED0CBB8E9BBCB9C9093C603F69DBB3EA3C71039B690AB10DD64C2919B |
1829195F363611E00BD27E067EE45651A6A90F912B088C31ABBAE0501F85B626 |
946B8F2854482618EC0B94C63EFBECB37AF56A4C69E92D791BB7DE7AEB638F3D |
1697D55A8419A3E1BFC6C0E605C14D8C1B56332C775036E04DB40058CA6E95D3 |
C799E7098AA98CBDBA586404CF6D9119EA1CE60685FEA00286C7D50E531C5843 |
3A60C540F2002D0B1AC595D3400CF45756BA0F6FC58D08D5629739D8C246A15C |
12DCAC414331AB3652183C0ED901FD29C627BFE4252FF9CFFFFCCFFFF13FFEC7 |
673EF3192717DFF6B6B77DEE739F437003E8D7FCCBEB95FFAAAF100406766757 |
86DE566618EF6B6FA9116AFC1A9E7ECF2B92BC58AAC615A8F8F421EAED9344AC |
6714CF9C74D249F29CF4BEEC9B871E7A486EBD76A0F7807D262C4A0D460A805E |
D9BAAFF68FF4042CD0348D8E535921A282CA2A22214A9BB0B2F3B21F702863B9 |
B212E8776B54C81FAF806144D1E3E89ADA8724EF1DCB0166C9BE62CFC0A721AB |
EBD1471F35264E63DB76DB6D258C1C2BBAEAAAAB3EF4A10FB93128397BB49AB7 |
8AFB9CE3F45BAF2F38FEB4EAE4C85AD08A5CDF951835E33C9578EC22BE15B352 |
FB115CF9CDA1701C8BB633CEBC68D5D0E55A35DD8534181123D0E3DC37EEA22A |
69407813B3329E6D7935500E2C5D3A8A9DB4C376DB3FF5F4534361B01DDA432B |
06364D4CECF0B265BD91990DD954DE2CB4AC26A25584820BF12A2D3A53066807 |
F3303298D4DAC39B9E9C997ABC938C87C14E5ACB93953BEFF1C4338F8DAE1C5A |
BF61BDBCDEC1462B74EABD6EE82493F942B0A65AD43425AFF87C0AAEBAB440C3 |
76BA3345E4BBD07EA1D92A48DC0E3C70AFB1B18DCD5663971D77D865D71DE4F2 |
763BED75EBD63EFAF8C3535393DA4AC323ADC121F9490D8D465E7EA3D6E5B2CD |
9278B75CD41296584B6AA91E2A14CE7C081393BDE7366C5ABF71FCC975D9D464 |
6F7C7357A26B7A26F4BA69B717F22CC97BB3DEA1BCE0C2EA4A8A206D9160DABC |
89305BDE5F8B9819C308BA980DAC0D86C4D679817488396133CCEAF845C2CE21 |
8A6420181D70E565D10DA158EC84C41749E7315D032D666F3B9DE194565ED652 |
6ACC471C71C475D75DD7C7B0162B6020DF6EC54BE6850E25A47B7D41F7F06648 |
346227B316678209F561611B68ECCEA4859AE773925CF0CDFA90301D9C8AD8E3 |
2648853B455AAB6F66FB0C136C9997BDEC65D26D926E679E79666C40B95D12FC |
611CAD785262BE7B9B51F12D2C2F006FA32DD010F3556C5F9E237EB1B7D2B9A4 |
FF3CAC2D175C28EF12ED9E638E39E68A2BAE001C24B10BE48A3A489BFCF09038 |
0EEF68B67ECAE87BE491471C3786278B2C6F98D7B7D8EA1CA5A825877D5303A6 |
B0D5F7D56ED345108BFA493F1FBA8284CAE34476F3681A92AD1F8C803CA26763 |
2FC6ED71DC97D0EE14F626060133A9FBEAE9F44F8D049F0F9A0BD2339896DEBE |
E47A6311ACBF4AF79C70C20938F18EFF5C7DF5D5679C71062961AF9D876A2046 |
2C1CE3726737083243A72690C2275402058E71D5F8820A38CC0B4173532936AA |
86484F68C0B2EAA462591D935D50C8C45378F031D61A7146708238903E63BB04 |
6B15F001519FF9B43E5B30346D0E5240FCE77FFEE73FF8C10FD8EA7EEAFDF6DB |
EF57BFFA157472F64A43693E523240F987A5271B80DE6D3C8561CF21B29C7C53 |
8F4717C198C397CAA35EB316E873B90B52AFF8AB5EF9A7FFFB27FF5BFF5EB664 |
D9D8D88656B331D56E3747C3541AB67FD1F0C630B16CDBE6C44C57DE5F2FCA3B |
D58A38703A9C67336361EAB946777D33DB14B2F64C2374F5A7A98132DACCE465 |
6164606866BC9B84463B4C20F45838D6C53CB2A1F2A838416586AE3E35312905 |
5C68CD5CC23D2C5B5A182207BFE280767B7A747850AAB735504F348CF6D4F8F8 |
D8FAF5EBA66726A577B7DE66C5D265C343C30D4DC3E4E478E84E94ACFB531A5B |
112F9B0D616769D88C32CD7B9D5E9EB43BD9D84477F3F8F4FACD49D69592D021 |
6D4E4D249BC6BA9BC626A7263B25C6AB18465A4385246979127B9DCC5EE3EC83 |
901C0E5D7C219D0E8878890BE611341AC1A587E23032035944E2166BB83C0261 |
91770300CF61D7BD70D290F64EAFF2614ED37C278A70A079644D8E417E4ABB0E |
EE0E97B4C17BE3F05812A17A5DF5C495EB514FDEF8A9E5E1FCF297BFCC4AD658 |
C323902A78C988C498F22894B42106D084884DA870095CC5816484E8D86C967C |
216E374B7D67A81C0B333987455E2647351F16A68A0E9E748F7ED96BAFBDA49B |
B1B6A4CC4E3BED34B88E5D3E61B8BF25AC4F635E55703BB0CE8CC475AB71D277 |
0B0A98AD061428EE521947F3E07C9683A2B1E1BB5888C0299157F013F703B0AF |
90463487BCB4487283B49CDCC22CBEA403C0A9115F8D833F86EF87D269C365E9 |
B336624D16E6BA2F4C97D64217A19E8F9D44350E90195C28ED128036715F1D89 |
7EFD091605600EDEA338792ED992252719ED27753A90226317B0C6597FD055BA |
A9E188507C93F0A6E1016576D0E238A20EE5CB81071EF87FFECFFF71EE7FBE8D |
9CCF05F119EE8E0FD7376FFF5510562C5FE62A8C80198464215AC53A6AF6F450 |
7A041E16B79BAC84564113A8C388DB9194848214B35D73CD35471E7924B9FFD8 |
9966E7EB59A817586C9C1604D43861A56975F20A5CA3BD6468FDA73EF5A9534F |
3DD5149E3E147D9BAD567575E4178D472377691C377DD18B5E74FFFDF7EB1739 |
F49FFFFCE729B2B2568EEBE248FF6379E7735FE5C268136EBF71C3865EA7C861 |
4D8C6DCEBAB9FE6F78F9D0A60D63A303238D666DB237319D757778F18AC96CF3 |
403AD46974DBADE95EBD1426DD5A7366A0D1A9CB237CE6910D616318A80F17FD |
0BA7C6A4A7E505CC74C3C0606BB0D9DAB06EAC2A46A99591ADC1A4EA96C352C6 |
34B1F1A2B3A3A428A550B5F59A753D54181AACEFB8D3F63BEFBCE3F63BAC6815 |
859D43B2C1B25E3B49F3F6F4D4C64D1B9E7EEA996E4F2ED1E0D6DB2C1B191D18 |
182C92B3EDF6CC50A3A8059D962E4D42AD9E17C1EC1CCD31564B73190E8515D9 |
0B7AABDDA94DB7F3B65CEE7C2024A3211F9D690FC8997AFAE94DCFADDFB076FD |
6C3FC39A869625DD5E4927D26CF6DAF384E42C8EEBF9340DFD8BF4224F81B587 |
00FCF8C73F2EA17DF8E187DF72CB2DB1079CCF2D939DEF13B3551CA57BDDEB5E |
F7C31FFE90582054B59A55B7E3739CBFEF68E7731B7838776BB02732CD9DE643 |
54FE60E59247540144BF25AF68A78D8D0BF65B4FADEFBEE215AF9090B1948089 |
01CF078D3358BEFEE22FFEE2A73FFD29E81C77E48CFB0F85AAACB97892BE8633 |
B098526E0402B90FBBE436BDE81BC79FE3F47B5FA40E6C451FBFBCF4D6073EF0 |
011AB9208BF3AA73783E97AB369689F3130C243BC16687D200277490CF03616D |
41B0E206C5EACA3945E30E6C79B80C432615B931868DFBAB8F9D74D249175E78 |
A163A726A6703112D3AE9DC122C5C5D0611E4B465F4A8FF8B62B9D40F1306CB9 |
920F3DF4108D710027A366A4B17429AA4D8CA147D0833E8338C5731537CB7443 |
C3B422CA4FAADE35A424380396A1718AD77CE0F123C41B8689E52B0EB4E25B70 |
38F9B03EF0D18F7EF4BCF3CE8BB9825DBC4F34FBECB3CF9638706521466E2F6A |
B4E2034978EA6D6F7BDB8F7FFC63EAB6F5616B1D166BCB5881645E19521F6A21 |
ADFA2E609AE8E9682B891FAF9F37DF7CF399679EA907E1F3EC589FA0B89B087D |
EE42D50ED970B630B7DDBA0F3653BA85F1330FDC826F99FAC3D0481AA9C6282A |
82ABA0268922C08574DB6DB7BDFDED6F3FEAA8A3BEF9CD6F52F2CE78DC291653 |
C3D816F87BBB55AF6EB68D3B5A3A0C1897218528E8D568358BDC6A5ED4DCDC7C |
FD8DC71E7FFCE8E0C8F8D478B7D6DD65D7BD9E5DF34CB7E860DF4B86E45BE46D |
89E6C9505B1106764A9A2B8A8C5D7B7D77FAF1BC574C672B743B3ACCB572CAD3 |
7ADA4B1B5948867AB56EAF4B8D4B2DA94DE693794DC7206C37B21DE14D1C83B8 |
138C3798857271B892BC3C296178B03630D858B67474CF3D77D3611CDBB4B64C |
F7340AA4559A48D74E4D4E3CF6D8639BC7C67B5977C992A1152B9748FB365BC9 |
C060BDD0869D274B83BBDBA8273539CCDD4E896A9697BAB95E2BC0643D6E5B93 |
661EE8E5F5BC9366BD46C8476AE98A6E36BC7153EF8927D6AD5DBBE1990D9DB2 |
70409E6F018FEEF6666D85F6F4BC6603E5036579DB3E983B09CE2776E5033A9E |
EE7FDCA780F3454058BA2624187BECB107A81A0EF2C9279F2CB3CF3B9C5AF6BE |
DAD10543A173E8A5CA90AA6CBE638E39E6F8E38F0F6569ABDC3CD812B38A74DA |
AADD74CD34737BC31BDEF0BDEF7D4FDB529A1833EBCD6F7EB3F6B976BEFEBA76 |
ED5A9313E4652910CADB3154CD95D97B5C85EC91DF74D34D7A4019A37C2B217A |
E9CD141BAD0EAAB8F88FE0A471557EBF8F5E20E6D1E55B4C6E1EB523A4CDAA99 |
D6C195108808F3C8CDB760D1EB5BEE01EC3370EEB9E75E70C1057D7D4B9CD200 |
D8E280839B0EF5AA066A2E5A8D79F9CD65CA0C9C73CE3937DC7003DD115C3A89 |
E76AEC89938E313F2A0AC9A82EB20B164F71C0CD368DA12E7C4BDE0FCE370C59 |
0EEA86A8159DEB47633469BC5FB115B00789F9F4AA06C646C5539B4BF0DC1CCB |
E619A69B1E33E6AC64ADEAC2C66AB213F47523A8A9DFC51174723AABBAD76515 |
09A2792A5C9CC046E59073593D9AEB6762DE862D28CE18F2A38BBCF5AD6FBDFD |
F6DB5190AED8D68ED532E9B244E9593EABBAA4E23FD72F183ACE56F031C2D158 |
453142C71F03F342E00E0B2F54A8FE785BEAA04A7CC498E1AC6A03104A3AEB6C |
6E53F450259C1C8E73E2C6E13B1F6787E8D38A3498B8579C82C1E1265001BF15 |
D639C464A1E2FEE58E9850310E8ECBC65238FC575EF9DC86A1B67B3001635466 |
884274495488E2028A5099B071D6C302D16C2A284E57B2C54C9C59D9548393E2 |
4E53B39E53498D5904C60BCE4AF9A4BDA48418D7EB5AA96CE58AE69E7BBE60FB |
EDB61A1A2EA2AC59A7B7CD361256C573D51B3AD70D9D92A9E989CD9B37AD5DBB |
AE3C2F8DA1C186B46FBD216757DE58BB9E4FE867C867F26C3A290B8A9222FE9C |
248D769199EED43A3DFD4BD233A4CDACD84A49B3D7D50E6C767B3AFB031393E9 |
E64D9D89C9F686B1A98D1BB3B56B67C6278B69498A92688DB4D9C967A471537D |
3927F85C761A4E6605A9B6B3DCEBF26877AC7D39DAC71E7BEC1D77DC210108DC |
01FBC99236AE4AE5C09A10CDD5B160A731FB74A6D6AD5BA7AFC03564CF27548E |
693EB700CCFB219DD7DE801892916531F7806575FC0B6E640CF0843A900DCFF1 |
9CFFC26173EC5A3F0F3EF86039C79C47DED765254277DD755778A8E86887347B |
D5AB5E25AB8B78F82CF20D8786966A881EFDC2B942921A9C96540C0C48018EBD |
D381B16AC48F41A080E9707D21BA7C7E6E80F3E6EA66FE84E65BECA04209C253 |
68FDA4930C10302E9A9D611266E7DBCC5F9357C0F1B899BC9D72135040FDA8AF |
A051ACFC62E253595B0F3CF000C34337A090081B20E6080213F14EE611EA3A51 |
D7577315AA7429D2562E947CBE988295ED029F9F73300B2A606FD65856E2136B |
6C306E92E6D7C50126C02229EDDBC704EB52540C615D41AB9094DD7B0E3BECB0 |
2F7FF9CB18B9D4491340D6D56C8524554B00B3B392ECA06C805B9C78E289D75E |
7B6DA8DC6B5B4BB615F28AB669B1DCAD5D524400D279F7DD775FB3660D6808C8 |
9F111F32514F3BED348D84EABBAC6A5CA195D5B19139FC4FFFF44F640DD848B8 |
71BAEC2DB7DCA24776E10DC635755FA1A4C1D3EDC049E555D3272F7112159BC5 |
74220EE0C76A238FD0EF905AF0B1F3CF3FFF924B2E21BBAC8B00B6322B4B5635 |
0C88E3BA76E0F2AA9746AD6A68CAB6776C233611E29006A74056EF29A79C12E6 |
A249D3A827F47F55012FF62737998983D83182DAB3E4787E88FA72326FA65930 |
EE77CB0A18572CAE8AE4FDA2DEB79B9745B7A0B17A4582B6843D6FB7FDD2BDF6 |
D86D871DB71A1A2CF24783CD565968D71B19199678EF7467A6A62664FACAA3D5 |
75A483CB0853DAA84B37E7B5B49D8776A17ADB63592E4F5D2B3889022EF4BC54 |
6643EA2D91F53ED30905323CCDD3A6446E68A4F55E5ECB3319D6437936D4EE34 |
66DA49A79DB7B3D6C64DD9D3CFCC3CBB76D3C68DEBA7A77B494FC643AD885E17 |
46844C8752D314BA3D97026E1696643235D559323A3236361E7B44C6F1217628 |
D53598DF3E80A52B3F9967CADE5031AE6E304BB1D78E64705E023C43E5FBFD91 |
0AD825CB7D8C6FA855BA42E17818F4C3B9901CD35D5C9287B459AC20029B8CE6 |
130E1ABDE31DEFB8F5D65B43D478D818EF3017E421F172C5155714BD2E4C18E6 |
B8A2B7AC6E70F8E187CBF5D6F176C5083DD4E2E07B4C23A7FB513B6B42D45AD9 |
FD4D4AD1D81F7DC0D88DF9F0F4BC62EAF0F59D655CECA0F2C95AD4098B3FD9E0 |
D59F5EF18A57486FC5856B3C6028D155E62B616FD1621D50554C5784DB878FCB |
2D80C9607F60CA6969DFFFFEF77FF6B39F0D112510CB4CD6445ED7F7BEF73D30 |
A821CA8BF40555D0288E31840A71A0BBE315B19F0C0D4311020A835E0A601168 |
52CFD58201F9BC62FBC3C98313DBA5687153CF1035A1824315B2D23E98B473D2 |
A85E5B33A8190E6A4C0CCBCCF3206E5C6F4A3516CBEA9FC373D145179D7DF6D9 |
0CC900F82DA0975D716826E478CCE6FA18295FBA1AB123E9CBB46A241047E3F5 |
C8B8F28452D1703C3848EC18B584A5AF973600116F6C0897D4E7152524196E47 |
5928746603C466A215892FE290B509D4340CDDC5BA073E3FB7F8B52EB12B6CF6 |
4AAB22F2BE66EDD08E222D05FC9E3D4015A2EEA555A6E5094B66ED9B56A43A8B |
11E02CF6CAE7925C7A119D977101B7819CA1E23FC2AEF5A2136CC39072C3A87A |
D488DE7B062DBEA0020E7359043CB05AA3DEEB140CD5B594BD076EB1BE7CD9C0 |
0107ECB7DB0B766C35D35ED6999E18977A2D7A66D70AF52F4F77A63DB569D306 |
09F0620CA996A6A479977E4D937AAD1B9299ACF07ADB696F2A0FDDBC2773411E |
705B43D014940A585AB7D6EBA6ED995EBB5738E28D5668B6C2E8C088FE9E8781 |
24190CE990F64E129A21694C67A39BC792A79E997EF4B1A71F7FF2898D1B3675 |
A70B7476B74475E559AD20C7D2554A05AC0B643DED8D8278AB3D93C95C989E6E |
C331EE7E622ED3805302003061242B3C0C1753C0EA1D63E3F392AAD3B2DA7B1E |
47C509261D6DEDED77BEF39D175C70C1820A38D61DB12CB556761B18CE178A09 |
2166C33A2DE9F6C0D3E8AF882F10398B198278C09C7DA232AED3F12122A984D6 |
A76F10F601876B962999F101B8C5BD40A3201FFFFAAFFF5AC63E1CBFDEA06C59 |
EF7840403C958625FF861A414A12796C04A553D92649080BA5D3C83D53FE65CA |
F8C50EAA2378EE50042C4DBF4B8C723839937012D96772E00E7CAF0510B12C3F |
601A757FEA2B168AEBE71CE1D4E0A5056FBCF146781649DAD522CA656347699A |
C4EEECB3DC39F331F156AC5710F40C29468987AA73406C6AA5F3BAD92CB6A51C |
0B49CA72A0471E79445EBE14A446284FF1F1C71F67D548331378D03B5AEE7DF7 |
DDF79E7BEE8145415BCA61E4382282F886795FD7DC6FBFFD640F712A08AD1351 |
D4C875770AD5F4CB073FF8C1ABAFBE5ADF7244448F0C39575EF529331A0E1C40 |
1F1B5C2CD043C4A1E8DCB98E8106E05660469CC999BBF2CA2B6D258408CF693E |
32FC45F695151E7BC08CF3279C7082FC69BD49BCDACA83089055943352A13271 |
CC7E6547D3A11423AE35721907AB57AFD602C935770984FEA4FBFEFDDFFFBD36 |
BFF69BCE3521190D127E5D36582F6A9B88AE754E843821C721F6804394E6E0C5 |
A2709AC095F41DCF9889FABFF4EA53C04945B070CD35D77CEC631FD3D2B31026 |
9BD35F97942F7D0672B410959F91C7C1F240F4C738D83EBAEC304F012F98772C |
BE524BF3727D8A752999375A0DD9ACCBF67DD16EABF6DE63A0551B1FDF544B68 |
EC5D4049968E8ECC5EA420E5EA9536C47499539F2CBDE750972F5BEB25A9CECE |
B4245F2374E4014B01E7F98C3CE0827A232DB5644363AB152E6CAFD034B57ADE |
1A6A0E0E35960E0EA74933AD35D330189256485B696DA09636364C0E4F4C359E |
79B6FDD89AA7D73CF98424CFF8C6E999C95E47E3E88542BAC8832F42E839B5CB |
690D96853054043CA6E27D18C7A26984609569AB3DC6F0EA4D7D5EAA44BE1CAA |
FAE0830F064B8C22B72B6C3FDB3DC2912134245E50016F0193311F66C5EF0870 |
3BCA5E62BB7C063F6DA19E3E54D85B675D438976B6208AF3D6B18220DE06EB46 |
B103F9048AEADCF215AA108DFECC842631197AB900E8768D6F45F9D2772D5C6C |
90E6552D818672C411477CF7BBDFA59D006E449F6BDF3783269A26D26B5F70FE |
CBA745573EF0C003EFBEFB6EC7EE687C4119A2F4C725975C229FE9D4534FBDF8 |
E28B43C52C6126CE983F99161F587C8E5B1223052B4F78D6F9241A40E515541D |
C06788EA8888394B39518E06D84F5F411FC460311B712E79D29985C77FCF3DF7 |
947265F720F8F48265579F34E1B3E65FBFEB93481CEF8305F56E32B76C8C4385 |
E9C3B1410DA45577745F4D77D177F13B1D158FBB7FB085687181C985D6C1890F |
11DAC08C0D109878247473E31DCDB0B619BD50342ADD1DBA73EBC2F94771FE3E |
C11E320F946EA7C93FE8A083FEEDDFFECDF28251C98E01576C7E0C8E197B5BC6 |
3285464959C68DC6224853E07227269C1266545A41A01CC81A37CA75CEC51E6D |
52D5087A77C515E4C643F0A46EDE403495F7DD622876DD42E5E223D46242096F |
80383BEE45F1B4C0F241C694CA13E40357035609369E6265E79B6B55ABCA2D84 |
94177CCDFF7C5CA5EA280BD6009C71BDAAB7291D5C42C585A9A13A451D4AEFCD |
79F1B46A94D9474611E629600CFD24E2C08A765D313029C35ED6D3A7B7DD6E78 |
A79DB7DBFD053BECB8D3F6EDF6D4C6F5CFB6061A7996B465B50F0C8F8C0E31D4 |
F24CD508C09646615973517499486AF55E9A1421E83C746A597B560167336952 |
6479EBA9EE25B726B8264A836D34939182B5AC39586BD4D266AD3E90D4060A05 |
9C34F38290B2B6B9BD6C7AAAF1DCFADE53CF6E7AE6D9E774729F7AF2B975CF8E |
4D7502E8E8503C41ADAA41CA927476E78C94C6CAF0F0286ACC3886D889821A81 |
909549D9E663D310B3E8363698D691463E4C29FC10569C59D5999B74CF7F4901 |
DB69891322ACBBCEAFEE48AE8160188927095849182830E3FCD7622FD4B34410 |
B4B83285DD82D3FDB0AD5F1CAC9A053F57D8E1C4F6AC5C0182AB3A4E140E71FC |
62CE0D30D93102426F52C660C9E2436BB8698CD20A155424995731CC4BDA4BC6 |
115F975DFFEA57BF5A9A9B64F56207D542EAA52F7DA9BE8B38A336836303E49D |
70A88EA8CCE79B6EBA492A191386FA28B34EA6152DB383D29C40A3409D41B44B |
E46C5F6C76118D6184F8D031CC355416405F902D44D12D6D080D38AF3A186615 |
8974DC2F3244404137CFC1C6679217335CBC7193A8A8CEC7A94C4ACD76B3B73D |
A1BBD31BD880ACD835775E565A4AE298444B5EB5C5761E08CB8348A9461B130E |
FBA5AD4CD04563A066AE56BD6EB8E1860F7CE003586F6820294B39EB2E045FAC |
6D22E17ABE05E2CCADBAB44FE00E8B7B91EA93F2B464AE19E7CFBAEBD911FD4E |
CDB2939D8CD065B5B2B2FC10FAFAD67BDFFBDEEF7CE73BEE87A19F08A9F94E55 |
52756443F440D608C69B681E36190F4B459CE108EE2CE49D8F978F7160387D3E |
97E5C63930DE71F980219DEC79371BA64CD1ACB924CEDFF296B71027EBCBE4C5 |
72F0FF2E071C4B58CC975A49D64F9D925E5A5610E6D6A071A1415CA362EFFCAB |
5FFDEA61871DC694DAB274878CB088071C8BA9D85A92322DE9A80A8F569EEEB2 |
E503BBBF60C79D77D96168B8BECD365B27796FD3D8BA62757B993ED96C0C24E9 |
F3392617BC164B95165F2F0D02FDB317929990CDF432FD9C420187BC5D940237 |
82146CA18007D366BD564003EBB99CF0662B1D6C355B034D39C67AAB561F4A6B |
83696DA8E0E70CF55E9EF4C2F2F6CCE0C6F1DAFA8D331BC6363DBB76DDEA871F |
7FE2B167368CCDE85864BDE279E43ACB8608C526D41CCE6898AD566D665A6ED8 |
7239355452488ADE71C71D4C8EB32D8476D999E04CCDE6EB92048399311AAEB8 |
E20A79446E2443A931A194B855895B065841FC910A38569369C51085A1B9EBAE |
BB3EF1C41370ADB3E7E18EA5DACA1B2666599FFF420813927155A7FF4AF40B1F |
1ABBD646FCF5D75F7FF2C92703379E3DFF7298E44664556F13C7C14806F7F540 |
76B4CA2A9D6F992287E7C41AC5E3C12A476C39B2D7172AB4E7670B173207840B |
6D89173BA831A902A0301E4F2394B1C31A939A02DB02AA486F72CD989B5E934E |
2B53D28A56754E336BF11E7BEC313F780C91C77781C810D480B3E96C0B5DFCD2 |
4B2FFDD0873E84EF1B73A3CC7F289E45B7D0EA489AEFB2CB2EB2457EFAD39F6A |
A5D88EFA0C28655F1F7BC216D5628C488E40C632C51771A823E6F8D530DEF7BE |
F77DE31BDF70F953527178B95993C5740C2CE217103D2E2BD23B9A878F7CE423 |
DA030466B98B1B73F9E470B039CC1C1570D7EC40C640EC21A9D8B5B6E0012355 |
9D737524CDBD87C1751BDECC0492AA711D366AD56C12B7DE7AEB11471C71E699 |
675E75D5554C26C6848D338D10826B6FCB3E4736CCF54443D5BFD9D2D97DA2CC |
64C94F89426914C9087B7BFA3C52A32F6711AA5EB676CAFB96DEFBC1E2CF4071 |
ADCB9D77DEF9DFFEDB7FE3F3687D82070807D2F6B8D7943319051D2A056C17FF |
8F7FCD8F3F23CA39A798659224C0BE38D749C54A96571568216A76699560F23E |
A36493AA73CC1F54C061AE6B553C785E126C75DB79AF3DBAA4B5FBEE3BADDA7B |
D76DB75B29FF70747848F64FBB33DD9E9E29A272DDBC88F1A66D72CFD2C7DA0C |
C6370C3630986ACD460D0874B737297FA7D71DD3670B087468D7D34201177AB7 |
564F06B54F92562369D4F3E2CD46AADF0B244AAD5EF65D68D61ADA78A3493AD8 |
CBEA5996E4C9B02663AA3D3C3E1926DAD3EB376C7CF4E1A71E7BF4E9A79EDDBC |
69E3F8C4B806272D55EB65B3E70E41BE61C3E6654B976CDC38A67D45B6056FCF |
492EED4370F2E82DD75BC6D6BC839D46509A7E80E4A0F3FA64B5AC1A9861C420 |
3267B11CF0827AC1174107E755B76F086D407EE11FA268B4C9EFBEFB6E78E830 |
9149B96EF9FA680A94374910F7048A41F859D5A291370958EA5B898DC4CB2EBB |
ECF4D34F27EEEAEE780C1D47101FC2474B368B9E815242E48E55789CF28C9301 |
2C46ECF1F4D935A12213702B189D34CCFC2DCFB5EEA8F148FD1835EEF8B97EDF |
6BAFBDE4B785CA22A6403654D95F4DBDD6C3E568A06F8E3EFA68992A00C7355A |
67AF5FFFFAD7FFEBBFFEAB0BAB42E5F9E511838F6BAB38D8AC3DAC587818BA3E |
8A332640EE5B5A7D0B2098DFB7CBE5EC859FC89EA57307A6D7E8F3487CA33ED7 |
277E690E256701EE1ADF8B2DA5017FF6B39F3DE6986334C8BFFAABBFFAFEF7BF |
EF4E2371E52BE61A4E89E1F106AFEA33BA3EBCD9AE8A71791857BBFAEAABB51B |
CD3B66E648CAC3882282A6F1098F294817DC2431AF4DA80C141ED0591F23ADB0 |
EB01BBE5158F34790AD47FACF02873EF557DAB92AA96BDA8F32B35937B66B860 |
A66FFEE39233CCD9CF7DEE73EF7AD7BBCCC5C65172778D506208B8A64382E6C6 |
22191F7B037D48D138949A56A4BB71D20BBF90380A0479DA0F71198F318F54C4 |
02F5B0F1E1A74BFE7F9421F5ED5B143047062163A84B88DAC3B8AC31AF1A2DFB |
65A85A98EB1CF719250B2A6057152615EB1980F0C1D650C9C4372E05BCED76CB |
F7DF7FAFBDF7D96DC5CA25BD76A79769F34B65A6727F35A29025D353ED7A2B27 |
3E59A2D3DB941B48310FB58A70C5809CD8C146A329AD3ED3E94E767B3353935A |
C74EC867E401376AA1D194D22D7474DED26191DECD5BCDD06A268D66DAA8957D |
16927A2FCBB35E2349A5FE97C809EEF6B452A17099EB2BF3B06226ABCBB39E98 |
987A7CCD338F3FB6F69135EBD73DB77EC3FA894E5782BD4806D74A50950E2BE0 |
C1C9093912050537A93733DFE9050130362B0189B3CE3AEBB4D34EB3BE319C56 |
4BB6F3CE3B4BCCC240CEACF2BE6B6DE255307932712982947FA402EE0B7D8728 |
79C1B79CB772B5027BB52F9FE5E6758BED4F7D1142E26BAFBDF6C4134FE42ED7 |
5C738D6CF1071F7C30442D11B9204E20705DDADC155FC14799FF02D31BFF3394 |
CEA2410DEEC7C42C10D2C144656B922440FEE29223AC4D8C194A2729E6D637C9 |
83EF1B17692C384E9C157DCCB14147A4911A5C9004305D11A5D5481A81CA267C |
2F358F9840CD2425321C551AD75992A5E018E37EB9F81225411491B6F612CD9C |
7983A87541DD4B66013D09CE38E38CF3CF3FDF053031B57D32171DED5F1C5A88 |
0B039C338E016E49052C64A2E23A48EB2ABBDACEA5214CA5FFA4653DAB80778E |
3CF2C87FF8877F40B51069E08B449C386C260AFEFBBFFFFBF7BEF7BD7195B93C |
3942D364D3DD7CDE016D4E3832D4C5D971A83F44EC92463DA04139C3175E78E1 |
273EF10988695C11885EE179D388AE3C8EBBB2D036C0634BD19D71815699898C |
E3840FADCFCB153BE79C73987FA6054B085FD64AC8629D8310AFA33712FBD6B5 |
950E85F92C987CCA3CEF0649207A9C13E96BF96CA81713129F6E664372E4965B |
6ED1C73892641F30C4ED9A58AC848AF5C9991A669B27425F6207CB1A88695542 |
14DFA322912814F072C7FCBDE763216898181B86A498A5139112AED3E7768385 |
76D82954E6AF0BB8F93CF36932137B2D05896379104BDC8C7ED5892BA6314D1A |
9974447762F98AA155AB76DB69E7AD972D191A1E1918196E5455E9A53D925462 |
36C9084E92AA9F2A5F05DEAD88271709ECA181963CDA9074BA9D0929E0F6E458 |
1E3463D36922D3B35D107414FBA2D64BB50365F4248D5A56AFE5CDC2F5D5DA97 |
4C594941FE2C4D9A87669E0FE64933E48D6E7D246423596F494886EACD4696D7 |
366D985EBB6E7CCD9A671F7FFCA9C7D63C333121959FE3B3C98B6E35865CC913 |
238AF592AFB2DF7EFBC90F01FBA6617FFEF39FD761A71196055D1F58CF6A3576 |
CFBC55B8D181071E78DF7DF7911B36CED4106B963E8BBAB8CE87F8C5A1E9BEEC |
5E52D57C2FA6EF1032D9DC1620DE90AC9AFD01288CF48CDADBF6396DE1D956F0 |
AD4355CCA60F13D665AF2646C9F6BDF4215D0B89607F2EDEAF3E061C21C41378 |
138057085F44468CE347FE7265363A397C2C147C11466546D0BE4297F875D451 |
47FDF0873FC4A3451486920CCB143FFAA2DC68FDC49D757D946E016D6FEC1825 |
1525080F8BF4871B12EFADAFAF91EB35DD0F84BC85972ACE7FC7F539264FB67F |
E9C000FDAD6CFDC43A385435C1B6F20C96B12CA3D702B10ACA8AF84CDC362344 |
5111DFD7F1F0BC629D24F4AAF10082754D5156B14D61C48588ACDB17E403CEAB |
49E012A0E64F98B72E058E4FC5FC66EF712D694C5BC16529F86643E2B185120D |
AE936C3B1AD32444F9F5BCEA9514DF9AE2635D67AFBDF60256C6181CD72174A1 |
E9D5177910F2E59088D925352E57EF48955A16D83F4361203BB422F274FFE7FF |
FC9F6636D5E07FF39BDFE85B2EAF4A2202F77847D97689B538BFE8FCEAD6B621 |
208E4773B3DC9602049CB8358DB33C217139409F20C3A7A133310221A6A770F9 |
BB0537A139243884A38E39114FA688DCD1A37CA1CEBB49C52DCFC98D6369CE11 |
84CAC521E28255173394814D61F3C711113238A6EC20CA4534A2F870D64B92D9 |
46F77941BAA1EB2485564EEBDDF6746B20DD67DFDD0F3AF0852B568E66DDE9B4 |
960F0E50E6C4E9AD5550A082610A78A91530166A413459AFB79ACD965CE1824F |
A3DDED4DF5BAED3C9B4C422724D25233ADA68CB67CB0D990571D1A458D903675 |
2DE9160AB88C60EBEA3C574F37CA24B274C607BA592DCFEA93D940A3B6AC51DF |
2AA90DD51B2D4D831E7D6A227FF2D90D6B1E7BF2F7ABD73CB776D3D8660D4612 |
2014B645DA8A1BD079DDF3A81B92B65F5A520FC57166930730D549D9C3C01437 |
1861C618D2E08B9C8BE6FC90430EB9EDB6DBD2A8AB8D4519D1B23E3627EFCFF9 |
39E00515705A35E59BFFAA452D92E67FC6014EE7F5F80C3C8366988FEB95C35C |
6C07BE100D490F3FFCF0BBEEBAEBC9279F841165E1576C843AE0192A3BDA91CF |
B85A8690825C10797512553A9C56547C86D86FDCC1580BF0D18F7E5476936596 |
6BB771E9EC95F64593FCA21E8BBC85ABB64D95873B62CFAF2FD0E7B070CC01E4 |
4C922D68F607784554145736598439C91C8566DB992B005D6E9FC9E07004071A |
0E14180B162768FB7EC6341DB1D9EEB2164F94298279B9D56098CBECE1940CE6 |
02BC0DB6033C33B6346B55EBE5BEE65412E8925F869B01D27EC73BDE71DD75D7 |
21100DDB4632B25E5CDCDD30499452C7895916D70910C04177D215402F5D9027 |
ED554DA0F54979729FFDEC67F1D540D4E3B1397E557927B3E9760A7079965D76 |
D9E54D6F7A9334E2430F3DC479DB7BEFBD75CCF414EF7CE73BAFBEFA6A93CFB9 |
7B4152D26B4351422310500B71F884C1030BF0BC618799391C8DEBB3C045586E |
874656AD5AA5878D417F6945D21E2A1C2991A72499E5B9E3D9899F0330C4D787 |
3A0635C6314151B1875DADE7E98A259DE656B6EF35D75C4303AE5061E2624A13 |
67EB311ABEF5AD6FC94F72D829943920B8A5FCC8AEEEF59EB7ED65A5DE8D7AB2 |
EEBFFFFEB2B498376A5774A997BFFCE5FFEB7FFD2F82FF56FF04395DD9E217F8 |
708DF00D6F78C3CF7EF633CDAD0D74F044E03C661BFA9627A06C0891CD36ECCB |
BBCDBA36FFD62F7BF98BF7DB6F555A6B4F4D8C953D0F0A37B4B263EAE583107A |
996D5147931B4AEC0A9BA36C3358E8E0A2DBAF547C41BE5104B193E924EDD66A |
B203BACD5636D84A5BCD9A14706D206F35925A5DC398A9CB1B6E686FD12A292B |
A89E354B254D47BB5BEBB66BFA7DAAD31A1CDA667860DB7A6338917AAD954C1D |
BDE6B3EBC71E5FF3F443BF7D64F5234F3FF3CCBAF189226C5E68D6A459368198 |
F537ACC03C7B46867A13F6F1D422030D760915CD1FB82A87915C144010983A46 |
36061C004626396A15D786F56D4BBFAC98FB0CB8C5F49D75EA82DAD720150435 |
7E941F4DFB44B703A5E8C012A3F5AD5DBD122AC2223CD83F9098897D1A0BDF30 |
8F70C3E95BDDE3C8238FFCC217BE80803669A55D2B7B6C78F1565A06DA583331 |
E3CCF51642D07EC2984588334398CBCCB7A1449FE2B382E70C513D833DC23017 |
14A38B80376143682AF4261E83EB23DD709EF5C06976A9B15914DC45D2113048 |
8528E4201389B0CEE6323AC5CF6EAFCE2ACA9F81508DC5D2B05FF5AA57490CC9 |
EFD7C84987CBBF79E08107DC9635CC651EB5E70148812344D12D054526CD88F7 |
2B71334C87242AFB768C51A698665863433463A5B9E107CA1819ED786FDF12BB |
90C0452338F4D8CE4670A086C1609389D74D3FF2918F4813B3EEF9DC7669BC62 |
8C025B2E9444F3B214E3F82A1A021E344D859E51FFC442C77ED2E3D87D648DE4 |
519D7AEAA9A79F7E3A17C7B8B153257B452EAFCFB063C2209F69281257DA1814 |
FD96B7BCE5EB5FFFBA6C594C6FBC61900A21229FB176BFFEFAEB35065D6A7ED4 |
D720091C3EF8C0FB96389DDBA1DD2FAAFBF49850F7852A390279087ACE66B19E |
85DA0AAE79EDB5D75E7AE9A56BD6AC612431708C6D9C569DD52D139D03E64041 |
E6635441886A2E42E597906662F02EC7DF669B6DF0FBF956DC990D0FD8E10D04 |
25E9A482CB3A09CC41D96157FE65C90AA961867C971DB7DE6BD5EE7BECB9F3CA |
15A39DEE64AF33353C32D869F72A6142836A37F3C9D8F0D6BEB39D884293672C |
83C9BA4B56326175EB69A180EB6947724BFFC9D51E68A6C576196CD71BA19EEA |
29A66B49AFD928DDCD5C0E719E053D51E8F642BB13A667349F450EB8930F0D0F |
6E3D34B46DA33994A749D15638C8F2181E1B9F79E6E975BFFBFDE3BF7BE8D147 |
1E7D4A27B5D12CC97D93963162B1FCE1C41903111F70D2F0C84C19DC58A81CCF |
B422F66711D38A9DD7357E168F6080F44F6A4088E1718598A33054D9965848A6 |
73894B4314F10A73EB3C177BC5FB9C4F127FD5D8CCE14860950ED93C11F4C0DA |
3CB2FB65A087AAF225AB18D692A81A258E16F0E00B0FC85C0146F490D93529FF |
1E7BEC21318D6F41D830540573DCD88DD689BE62F1E9AFDAE2AEEB77AE45B783 |
4643EFA0D45DD4E42E7B0B8E139918076643D52F81F8920F731261ED9C7E0074 |
664C87CDEDBE2531DB8B69AD3000C96733CB5873268E2622AA278A1B09EB9F50 |
869AADDB8212556794C7820F8BF34DB4DFB691CC461AEEF691575377C19BFAFD |
89279E90ECFE977FF917DC716F5F074E5FF39AD7DC75D75D5E7DE7720C700B0B |
B54F479D6B185FF9CA57FEFAAFFF9AAF9B7C515F3CFCF0C3E527F5A55E5CAF12 |
A3F6E2C21E54025A764105DCAB3A644815D1A42FAFA843294B75229F15372C88 |
C8B34FA38BF1B3AA1391F9E5F1C9244DD8E40E1B801270369D134847267632DB |
DE75B47C46EF531F9F94E5C272B2BFFCE52FC7968DAB2F38264EBBD89B04D525 |
3D213BC34929E73B488F190A8747CB50695D75CA29A75C77DD75788AA43FB04B |
60893226DCAE0CB5D7A028C25C9E6D97531B9CC8A4B920C262B75635A722F683 |
F7437B092DB7760E37D58679F2C9276DDF23431654C046996AFC9AF3B7BEF5AD |
342DC689B74199545447B17D79C00107E8A6DAE47D05E876C5E047A425281C73 |
24D18B4D38AB80A5FC68A73323ED2B65D46CE52F3960FF7DF6DD73C992E152D4 |
B593BCD36CD5678A9E10B392274DCA5EBE019B3EC389C7FD60D5CA7DD820525D |
1416D5D3A2D351D2D687D37C4ADEB03645A3DED603351B050E4BDA361D9C6AD4 |
E5CA76F230932685175EAF950A433FF3340B891470A79BB63B69B75DEF664911 |
721A583A34B0B2D11A92B66F7743AF3B18F2813C6D8E6D9A7AE2F1E71E7AE8F1 |
877FFFC4DA751B93D028C457B7881FD8148B0FAF2BE5C2DC641C9613AE1E1630 |
3296CA4942923A56886BB744F3C299D386BBB8394A2C24C33C9F211E582DEACD |
BCA04FBC05053CDFC48C95B7AD436D786CD6589449FA211E258A91600EB38508 |
336B88891ECD10D464CB0322542BF10D11528C6F9497405D9DB51DEE0B7A1A11 |
6F562922633C03CC595A30DA745F71C51532D2DDB3DDAC8484918DF6DAF2389D |
928CAB63B1ADDC6680D72B5FF9CA9FFCE427DA07F0091C7FFCF1E79D77DE6C9A |
676E08823B7EF4A31F95C301AA0D494AB9A7734EAF7BDDEB7441DD4546FD6597 |
5D86BF8814839A202959786233C2C93F13E95D7EF9E5679D751600B1501634FF |
FCE73F0F8BBC6089D21DBFF4A52F490021BF686F6E251427956D82BDE4252FB9 |
FFFEFBD19DE833EEA87F1238C5699062F8BBBFFB3BE22431E7B3F147A84F8B5D |
B76720BAC09BE8E0983081C0A6E18E3C3EEA5F7FD5453493B7DF7E3B63735632 |
C4BCBB51085A7B9D669FEF7DEF7BBFF18D6F98421DEBD2B8770DE9BBDFFDEE21 |
871C8224B507EC23CA5AD82C251AC9B091CE7628498ABB568A7E413A8D3CCBC5 |
175F2C6F1B7B910E0DFAEE09279CA09545AFB01CCEC4435A8E8E74AC8F01A08D |
98678AAC628E1E2F476C2431697E34DD1DDACEBC22DB72AD9D993E43D52194F3 |
68E08C9BA9ECB0C30E3213EFBCF34E67647A519B0DBE2EB1B06AD52A792A7D10 |
87B8A1675C37EF50398F865C9649013738297CE7D2C24221E8AC6A3F8A0DE192 |
0DAF917ED7D568AF091692701F690B9C3357AC39A0CAE4B0B82F7AD18B34FFFA |
C5EC78858D98A4254945A1808B0D984929EA5BADD1252D29E0DDF7D8A5D9940B |
AED9CE3B3313EDCE74AD31381BB79F154EF5CA8EE9B199C94C3FEF39A40D083D |
EA451D6FC14A553050864E9215741C6922413ADDA8771BF5AC210F582A7D60A6 |
D1D461EFA541E65AA76C7A98EA4B85FE4DF48B7CDC5A3793486C74B346D64B3B |
DDBC5E1BD6BE6BB406421AA6DB79AF33208B6E607074A61D366E987A74F5B30F |
3CF8C89A479FDD3C3925152E051C978F7B73B2D94CE7C91CE280B9B803BA219C |
2856DF53ED923FD27646E438C1AF05C206256CA9A5A485917E4736C6FDDC8C43 |
0A51EA90331E97BCC719D92D78C0F93CE07DA85284925A8CFCCD6F7EF30F7EF0 |
03CA1FB4919009A14A1E99DC3E0E7D237EDD673D7ED8D9DFB7301A0926FDA233 |
2605492596AB0B7C09574C1B32C73850A2F87F480D92A3F0CAD299DCD9537D45 |
6AF8DDEF7E373425D8A4D9428C957D2F12B18E4EB8E8252F61DF263B3432C80E |
7DDC02CFB748E662B0FD8CFA98A682AA737BB440F031E54861C6756C3062226E |
D8B830281D7AE8A1724365044917C61869A68B3CF1969B4F38E24D4D0E85C2AE |
1B66B6F5136C4B5CB16D8916E7D4F7D9671F7D4C173CEEB8E3A4C9F4019C5792 |
AC14C2BADC3E8602DAF845D899B5DF17D7F3BAE5B0D614010D779D498B5EFBDA |
D7DE7DF7DDA44BDDC4C20B04AC7A3110169B4717D4F8EDEED0938A100BDB8C79 |
C060F2998C57D96122AE6F3413D39B567D329C2E99CF1C624E4478336C7402F1 |
23E410A791F896AFC37D9162320AF7DB6FBF7BEFBD97EA2677EAB567067609F6 |
3133A991BC70E17F1F47B489CA6920CDAED698B5B8869AE3086288F85CBBA973 |
DFA1E83BFB714DE78B5FFCE27BEEB9C76920C34F5C0F6DAC1F8014FDF3EAABAF |
96A5A2A142E90348A28FF9C8F77509781ED592F9312D7CC9BE633410BE0258B0 |
200687F9715199AC37C08666CE29EE9BA4BD2CC797ED95048EF2F3972C19DD69 |
E76D56EDB9C70E3B6ED368A48D7AE865333353DAF3EDFA40CB407B5D1EABA5A4 |
9AEA24159AD2BE414AD258FF9B97FC68658D58D983A15DE674DB59984893A952 |
D1E68D52D7D65B72D06B32606AE94C2DEDD41B1A59283AFDA26C0A222B99AA8D |
900F66C5CF46567471186C34878BC0552E8119B27CA4515B562F5A320DCFB4EB |
4FAC59F79BFB1F910E7EEAC9B5131353ED5EDA8DDAC27A133A4414E686FD7971 |
F6658C9E71C6196E6D6233D7EA73EFBDF776AEBD56B51ED267004FE8C04A3622 |
555CE1E9A01A41475FCA0157632C8872F1BEBF1E5B720BCAD5BE1CF07C54172F |
3A917BF36B0C1A27B9153A08D0F3AD2F71E3B8261598BAC2F375F98B99037117 |
81DD77DF9D864A44C690233AC9306C48EEE8AE4E1DC5713C377B7AE31BDFF8BD |
EF7DEFF39FFFFCD1471F0D5C054016A52CA627D432BCF39DEFBCEBAEBB740092 |
AA96D438CCC514928B103C8996B6315508F3A2BBC30ECD3B1264F26EE7D7E3C6 |
A965C4312D9A87CA57CC9848EA48573EF0C00363B795DD192A963B47D50835F7 |
AA2E0BEC12C9DCFBEEBB8F3818293D23F8FB7680FB16DB69D3AAEB17421C205A |
FB3AC3D0C640D70416AB87C545430BFA467171BD564A86828D4D6D3B081F92AA |
174AA8923164730D7DB4363208BC57B521F3910851EADDEDB648EF21CAE3BEC8 |
C6D63AD4C1D5E24684B1B241F8CA2DFED297BEC459ED96BDFFEC9CF952DE2ACC |
B90126C439E1577295F3EB5FFFFA3BEEB883A83EDE1BC45BBAA3A4F611471C71 |
D34D37B967A503397C17B80394A2BC49D8C3D4D6A1E2C6E2E5A4002F8CEB38DF |
498C979035EE20B17AF7000D15A795E6B35632E0C75104A495ECDD638E39464F |
A48D8DBB1F17011313A29E27EED950AB1A2D6715D99CFD5A1EEDE31FFFF86597 |
5D86E99C57CD2BDDB6C85E78288B851C8BBBA87C1947D6C71416E72FD0B24821 |
A6D17AD7C60DD553248942C43192579C740472C2DC7A3C67823466286C357B10 |
98177E7FDA28CF6F495C5C74B1CF244297AF58BAFFFEFBEEBAF34E5B6FBDB256 |
CF3BEDA9F1898D79AF8062142D124A96E6D26828147CA35EC85C696E47A466E1 |
57989565F2B6D4C1E516CD3ABA4BD10DA95B68E23C9F48C2649AB49B0D89BBA4 |
5150724CB59A69B391A5F599BA1473232D9DE65E3D2DC3B021CD937A51861486 |
CA660CCD5653DEA174ED909CEBE94E7BA6AD9DB06C6860EBB4313034B8340DC3 |
4F3DBDF9D7BF5AFDCBFB1E7CF8F76B366CD834399359CDE4734BC663E2813037 |
928FFF43EB4C4D66CCC881586303E8BCDC7CF3CDCEEE19F4C341DE65975D64AF |
BB7ADE3D58A1BE315ED26D516C75F529600CDF78232D8866F0F016FC2B8E07A4 |
EB126BE61BF99BBFF99B2F7FF9CB7D6491BE571A7547CDA386637C3E8E5D2DEA |
011B738811117BF7FE8C6B312D07DDBAD99131821506BBE2019BAEDA86000B80 |
290454C4E52808F12D3092B8842B54A656127162B039F2AA40C8E6522F6A3A1B |
73AFC455CEFA136164884BF4F3AFFEEAAF6EB9E5161E0131E439610740DA4282 |
FC924B2E39F5D4535D06133FAF0BDDC0AA58F43B79B6D846612DDEF18E7768F9 |
89F9104EEF552D9B42048B9095138BF2D8C2701D2AEA84B90A953B182AFE6740 |
10AE018BD580139CFCFCC217BEA051B170406F646C4991531A6E4A39898756B3 |
35D39E191E19DD3CBEB95EAB777AE5CA26A15516C9146E8A16BDCC62148BD5CB |
D8DF79551A8F4A80B01AA1891B04CA09451EEF01661E2BC1A6A19B8632CFCE9E |
E0055E7AE9A5C71F7F3C115A4EB26E21D572D6596785A8A29A828A0F7CE003D7 |
5E7BADF13EDE0F962FBDAACFB4557BDFC977FAC30CD28677F2B0AE9B0C55D14E |
9C24D62F279D74D215575C61E38CF385ED5B8B5AE1DA9B67CB9D73CE39B4CD9E |
6FB3A7D5CB3420360AC9441866E5E89743768845FF3566D8D7F02EBFFCF2D34F |
3F3DAF5A086B4274D9238F3C52160C27880DC68664990C66D668CF3CF34C9B35 |
1855B2AE08B69F76DA693A9B042AD9BD08166C350E6C9CA5EA1377C9DCC24DDC |
62D24CE5E216048FC56316A9DF5CEAB1D90A7BEEB5D3FEFBEDBD7CC9D2254B8B |
160B9D1929D44E591054EB961CCF2CBA29440AA992CD2AE0746E837AA9CB62DF |
74F3AC27358A7FACFFEF84A25F513709F22EA66AA926B6333850B8DAF57A22D5 |
DB6C4D173E71AD5936696897D9E2026E5DB629AE170D91928290324D9A997CE1 |
C12215D60B0509977441ABB964A0359AD6970D0C2EA9A74B376CE8FDFEA1277F |
7ECFFDF7DE73DFA38FAEE98506830FA50B115BA861214725AF18055CEC2B3D4A |
CD8B959F112AE4476A15DB33E29D3971236DBDF3FEF7BFFF5BDFFA16A56E8BC9 |
7F5B9C943C1C76D861DFFEF6B7A5BFB914023F8E34C43195D821EE434B255567 |
1A0774D9C00466CC17D9ABDAA27046D8A8A6E537ECB18FAB91FD807C5B5401C7 |
21F550B93BC45169D24E64DC42C40A18FE011498A506071207C2D613BE233539 |
5A36B30D78494CF11A0751FB5EB5B9FDCC5DEE196BD658B1F5454DEDF6412841 |
6ECFF5B89E77090E1D78576BE02E38EB1697183AF98AB48D3942190FE66152B6 |
CB350489D0313499A14ABD2FF8BC86B341E3C5802595CE3EFB6C8B3FE61FFFCC |
C4A27D3AD80CA54E0AFA824945E414E6DA613E69C6473072D0737A6A1B4FACE3 |
BEFBEEFBEB5FFF3A96FE85180AB3DD7FDBA5DE4D4BBBB870DF8706018516925D |
3F4B85AD7B4D4D4C02F6369C1EB1A88B4815693BEDBDF7DE0F3EF8203BCDB238 |
4647FBA0862A9DEC5E9021C2CFC7EDADA84A74EB341934E46B319E5045B4E60C |
25C93011CBBEE3C38B2CB2B6BA4645BA2854B436EC6A17BD70F839BDEEF8E49C |
19F99A98D72C4E0478454C146AC18114B8F0C20BB54338F6A41234D5EF79CF7B |
BEF8C52F9AE2C0CAC002A8EFD46821744DDDC84E2A273A2E7F4477E6552D835E |
9FFEF4A74F3EF964049C73C0C60D30E15413C5D290217140A04FEA554CF29A4F |
4921400F6C12A2EEA4D5C35C64BB97431FB361AA5F3826E486E7E32E59B8B97D |
1A8ADA9D822A39C8CF2BFCD2E52B9AABF6DEE305BBEDB874647464B4A8D993BE |
940A05F4DC0B1D9202B3DBBED4BE45E8A2963A9F1D2BE0AC5668DF424C974D92 |
3AED5E67A674E0922C95D39CC8E96CD78B52E07CA0A5C9A9359AA1DE986EB43A |
052C2BD5D8925A3213D2190DB0381D52C0792D49079274A856FC6C165F69D55B |
03DA7879A7F8B30CD325ADE668ADB9B4D51C09F9F0E64DE1E1D56B7FF9CBDFDE |
7BCF2F57AF7E74FDA66954057AD7BEEF620A384666DD70C30DC71D775C885023 |
218AF1A6F39A815A62C4925CDF9200A167DA169AF1C403D0F0F6DB6FBF5FFDEA |
570EF358F76711E5DC620AD858071CC850516730543639D252EFC37E63BFCE1D |
2338747CD86115D7D68232E38BCF9F9AC51ECC11A750B134EB25974E87163229 |
E0246862FBB86EF7861AC08BB29B627B1F92FA2F7DE94B7A9F5E0B316A31AE26 |
5C8CD3D8E3A466836221BF6F3C5EA888708951B34B1C58B389101F54BE8BACE7 |
883AC8801AB6780D113A94F526EE874386B0463F8579ECDECC2D4EB05585BEA5 |
6D77F0C107DF78E38D0B3EAFF7BA7724292E2A5588AB1B816230CB7C1D4C920C |
AD66AE09838131D91CE40C95852819A72BFFF7FFFEDF7FF4A31FB909AB54A07C |
324D8B94072D725D3360C242C090FAA59114C9F29D641D3FB27AB834D78AA5E9 |
761A65BA8146DC1AB626EAE28B2F968B36335534BD27149C57748956AE0421F1 |
B9016EC4681D36BDF6A73E60524FF42871450C41C73099843FFFF33FFFFEF7BF |
CF824AB1E98BCC83AE2347F3B2CB2E0B51838D98C42A9E5E2795E5377FE6339F |
81E28E3DA021E99A471C71C40F7EF003DEB76DC705ED50DAD5832FDE5D9F356C |
4CEC34E29F8A7346FA79DD75D749089AE48B3876ECA3E88B482B543BCF98CD23 |
F0638ADC00EA6FFEE66F3439B3818AAA2497F0B2F1D8F807842229F39561A43F |
E914E8D6BAA029EF938AA28FAF1891CEF462A01B19809F71EEB9E77EEA539FA2 |
C0DD7965F78A064E88E6662609549070B5C4D41830EE6113CB16624742E584E7 |
7B55A5B5B4D1CBB09632E9BFED77D86AAF557B6CBBCDF2E181C152B185AC5B28 |
CFA49C463C601E870385986AB49AB102B600E99585A38550EA163FBBEDAA8972 |
D11E49DBB857AB678D7A6F70200CB4A47DD38166566BC8036E4B01D7EBCD5AD0 |
399D09C98CBE4408A6E0760ECD5A3A9814ED089BB5A6F484BE584BEB45D30529 |
E66663B45E1BAC4907A783722B368FE54F3E35FEC0038FFDE7BDF7FFF6778F3C |
F5D486580187B9AC2C0BCA61DB4CEE04C3E18A63A8B1B98319A465C20D407158 |
025BDF6FC1FD0D1108376E241CF7100B91E36B70D67C051CE6823DED70BEE635 |
AFF9C52F7E81C18DC4B3611A47D4F88A3DCF50FA7826143AFFFCF33FF2918FC4 |
E49236F7B7A48093A841AC1FE0C52F7EB106C4F401018D23E09665065F305637 |
C1A508C1083714ED8E3BEE28D1F6E10F7F78F9F2E52C4936971A8913BEE0380D |
3EC25441EB80E9F5E009836415F1135A30A9F0D8183B0E0EC4103BBF895B8CE4 |
8A39997DD938CF8F24C295212EAA3F49709F72CA29946C33C8924276D29948CC |
05B6DA7C0EE7BE0D670E1ADA3BC6FC5C69D55C5ACB6F90DE822F4427211AB920 |
F7DF7FBFAB54F117E316310E2AEAA7EC837BEEB9C7FD0C928A8B7441AB96FD60 |
C8DBF4D4D4562BB77AFDEB5FFFA33B7F0C3196ACF1A5CB96613FCA1F4CCBB3C4 |
778BD8516736AC9254DD41108BA03F6806AC0F489F7DE52B5FA1E80BD54B4603 |
AC69A8A2404945A212B33118E489E0A06419256DD26F8C15735FD08822540161 |
70BC217268AC89E9ACACC727B368AB8E7E506CF5D8E974B04183E7D4E8C3871E |
7AE86DB7DD8667E9722328352CA1D8515851BA1459613379698AF445DC561F58 |
13537BEBC62377C527C15E3DA92CE68B2EBA88241CD207801E413927BA6CDAA7 |
5163A250A2253460C24EC4C908A7517F4C08D1090219FA175C7081CF1AA4FFB1 |
FD0AC40F2A53EC33EEEBDCBC3EF3894F7C42FE37910C8A831D15C00336DB6232 |
AFF2B04F7053CE5BCAA522BE3B3ADADC65D7ED77DD6DC7ADB75ADE2C82D3A57B |
5769D20200DC9946FEBAF24AB72E721665B16CAC8099F64ED629132EBD52FB76 |
668F5E372FB3CEF2BEE5EF1635480383B5A181BAF4A82C9C7A530E71A1801B35 |
29D4823E3A84E95E57A3E875678D06E9CF963C60D900A13E5506CF535900CDC6 |
60B335D2A88D14AA376D4A4FB73B8DC989FAFA8DBDD5ABD7DE73EF830FFCE6A1 |
279ED8E0867DF1617176ACCF7D0C55E021E65441385489F0596BC6BEA905085F |
89AB4343D4679A93B8989E62F36711FD6A12D1247B33C7699DC514B0DFF14ED6 |
3F6DFFC50D462DDC9208486FDF5AE6A61E0744373B969A6607779DD59ABDDD62 |
823EF6D66365C3ECC4052A140DF74166B035885292AD314617BD0BBE3C946107 |
780A99357374C8427FF0C1076912D7D73FD82F0938F7634707C7B68F9FD96939 |
27DB30400C8421229D478482AF7DED6BEFBCF34EC99D279E7802F10D3914671E |
88811140B69E6246EBB83097C79458B9E28A2B9C26BCFEFAEB4F38E104DB7AB4 |
2FC5698BDB30C4AFB8A6451305C4C62BCDA262784ACCC5256B7D0B1D5B6A1A9E |
6E97542D2AFB5265CECC994DC5EB89848F0000FFFF4944415487041F51F343EF |
5E7A42BB2134183AA28E542895443F058DF08E3B17D1E30292315C54CD4AB3D5 |
CA885FA15D483097EE4211F9C883FD54B70371A50A19443DC8E9A79F7EF5D557 |
BB76DCC7DE3BCAE61489865AD57E20CC2B28FCDCE73EA7457119CCBEFBEEBB7A |
F56A021BDA848443E172D11E9047F89DEF7C07372E8F0A816221DEE760E9A1F5 |
2C68883800E3B30D5619DDA6E93DFAE8A3A58AF8625EB22752F5EF8B842A9A8D |
8168143AE9155DC7ECE5E62707E986216873A44FFB5AF8BA1A1B91AA7900EBA4 |
CF9C7CF2C9DACF460698DDDADE86FE79E08107DE7BEFBD717FE83EAB911C04D2 |
96A34A44C752DBF97E0EACDE212C8FB1054A83EA09F764A37A8438C117BEF085 |
638F3D362D3BD5507605EF470C908951B2FE2544152CE58E628D7A491A566E35 |
BCEB6E3B6CBBEDD65BAD5C2697B2E86A5FF4B52F7836B2D2DB1E9F1AC7786524 |
7AE1FD03A0ABCDED915708875E8F8BA07D8B5E0E95E75D04E4EA4919764E0606 |
1B0312A2CD5AA33E536BC8B49A6E15E8EBB20638E92461BA142DDD2CAFD87FA5 |
9D8BA87733AF4B026B4592C6406B6870C9C0E092667D695200B5EA59AE496B4C |
779A93138D354F8CDD73CF43F7FFEAB70F3FFC2C4910832EDD35C0E22B9E3737 |
190B152E354459BCF82038E9A32DA155931C984FCCC7EF768BC3E25530D656A1 |
B2006208BD071CA26CDA820A3889EA82FAC2D47E52F62D3AAB0F14154F453C30 |
AA6DE9164AB885393149C69672C0B6C7ED44E6257BB3DE77C360971839E4EB50 |
BED90A21AD3EE38C33E402B2ED2CD36365293F586AC01EAA697A62376BFEEBC8 |
238F949A84549697A48C6E27BFC42334651AE5CBC625E9401E7EF8E15FFCE217 |
FD08CE5121BC982CB41D38784665827EECB82C6AC0871081805E1B11FE5B824B |
A6D963F65D40E9280D4E4CDC8C61C1AD26F9FBC637BEF1F6DB6FB7C962342964 |
BF44ECE7B795EEBB66565149EBF79B6EBA493ACC72D9E4357D9B1545AB8772E0 |
B1CF24345BB87D5FC7095974397DFF1F67EF01655955668F9F1B5EAAD4D589A6 |
9BD004414006C3B89419E35F19C338328A230C82840583E42059403292115092 |
C8888220BA049DE510465D66C79FC240C390A1BBE986066CECAEEE4A2FDDFBDF |
E7EC77777FF5AA5E09F356AF5E55AFDEBBF7DC13BEB8BFFDE5AA67F552C3131C |
60EB4009C003C2B413148D315C76D965A79E7A6ADECED4D79257D63977A62850 |
BC959613987DE325026423BB3000AA072854AC0569C55844C459A2BBA9D98B0D |
C1850B8E2FC603C52CEE7E4A2B370DB5EE020808B720FA918E970B645B105242 |
48081F2E60A3D84E702FEC58061828BC601F5C7FFDF5ECACC7A849629A6D2BCC |
C594819A31730333B8A718959A5649D3485489B188E16BCC1E762CD96334B6AD |
B6DAEAF9E79FA7794A6354C5277847B0648BEBC65E65FB704C0B6B9CA282DF40 |
42934163E674A3A23BA40BD6361E8788EBBC2808B436870B06E5673FFBD9DB6F |
BF5DDE98E644E60E81879A25B9B97981409C511EB63B94F8795A8A162F59B8CD |
B65B0C0C54E70ECFF1EA370B0E6B3BF334CC210EB1A1600762B89B48755A0656 |
013B9136B850C3E98DA13AB46FAB1DAA3F3C22DABBB1E1ECC4255F6A0C7FBA1C |
62DA2D1F822E7B3A0EEF82C72E8A5B91AB43F562FB7B4475141C03CFF69F462E |
69BBF55E01A71EEAD8DF3F54EB9B5F2E0D2671D947AAE34A3B2B375A7D8D66DF |
9A971B0FFDCFB38F3CF2D4938FAF52EB141AAC2CB624FDAA452A71EAC48A2FC5 |
638B48ADFFC6009BCE0BA5220B612C7B12535794CC76BDA6CBC3AEB0AB829776 |
780AE8F652C0F2ECF599B8286A256135A34A346419FEE9350F587D1C19E68989 |
299307A88A062662A8417A5A1622167185C217F94E5E3064E107D195D1AEB1BC |
74E24BE24574203DD55960F16563512A787ABD3CDE1FFAD087EEBBEFBEABAEBA |
EAE4934FA601DE6B909CA324D0E2B376DEC23E997A61A457454DCE943A308468 |
2FF8B6B7BD8D989A830E3AE89E7BEEC1D79F7EFA693E146E0193FF2B5FF90ACD |
73153B7213281C4120185BD9C818D46662C212231457A5C4BA30A5D3B1B27A29 |
DDCB698104C4F55500C0CC2E91E718959A90778912ED5D7C92B200B39115BCF9 |
D4347A3A15DD2A25ACDA68C20B77DB6DB765CB9689DC43C85B3533894391B4C2 |
213C1E38F8DE58094A0E1AB516CE210F3C1D623A67F5894935A2E7B9551886C7 |
5552553B10BB1C9752B8F23DEF79CF5E7BEDF5A52F7D292FDAC4DA0323EC02B1 |
BB7841CAC3EBBDFBEEBB6D55B72C56F97F7C934805C202669C675C41215FEC3A |
6A3B8966BC78351508B8C281C0B7F05D1ACBF816E32E14437FF3377FF3C4134F |
C8AE77455C447E3C8F1EE3F396658C0103296CEB7F5B2638E960053C68986278 |
4C5530814AA1A9224005902353D5433A6BFAC4071C70C077BFFB5DF53996E0B3 |
6969C60F692ED3C23BE9A493E06473F5594F812B63CE993E27F710C1A1587A0A |
8A1D76D801A60655859A4EB2B935B722119736F8EF7A77C8CE0B4C56C19F1557 |
AAE976DB6FB9ED765B97CB715FAD0A05DC6AFB6C029C572A608C672CB0E651EC |
548B977F8A690A98B7C8F01BD4AD179C4DB632843F4D03B813B04E830E0EAF10 |
2DC2144D24A5895292E3F7528C6BC2356F64793D8EF04396C6594212107F9BA4 |
99ADC3D5E2523008FAE7F4F7CDAB56E6C46935A899BE28AE35B2FE567BF09557 |
DB0F3EF8FCC30F3FF9F8632FC06F539D3ACD5FAE882DEF894DCB0D4939F5F553 |
E2C615405D5724D7F1311ECC134F3C91DFB5DD00199F13D546574EB74B016B32 |
2D8A65C6D5ECAA69ECF28073038496A120F4923445AA58DDD4FD63B7B4D41FCE |
1D01A48423B00411D78438BAF2CA2B3B70A25E0F6613154A4A47454F0CCBEDC0 |
7113A549F5A3500025D7D5575F7DE9A597E25470B26811904A82D160F523B34C |
C5B6275DAF71B2225913474E259E43C5BD55948C55141EC4157C49ACD5A1BEE1 |
C0E424A9E79A2C410C89993645C38436A2374CE798F28E2040D57E1D77DC7137 |
DD741303989017F83CAB235434C94D8311EEB2CB2EBFF9CD6F7AAD0BC600D3FE |
85175EA081CF740006C07C3655207EC03C74C5B1ED1C76111A40CCDD78E38D6A |
18D72E78A125D06545D1D797C487B6D87DF7DDEFBFFF7EAC1D1D419AA284E6B2 |
0F1D16911938095C170652AE5420B720DBF0E471D0BBFEFA41FE4AE936263B65 |
3074EE1574B5A15D4A25D5ECCAACE14EE06C58A799510A5724861917C2078857 |
CC035C16FA5B6109DA588AE860EDD88289A837EC1345B6BBC256CE10A7C827A0 |
7B07FF0F3E1F8D1561CA7476F83373311815B728658D5A3513BAA59BD24217DB |
8C4232471C71C477BEF31DE6C299E3202E89A5C93C08ACF9C94D8F0A49AEB8E8 |
E748839B24C69C4FECC373CE3907A2848E11574D454454ED4C1C7054AEA81224 |
3B15A3CAC4E038E3BBDBF6155D104586D069D0D442550D9B8971F2F919622F6C |
F093E757CD43590069C9FDA7BFE269ACC2954AA95E272628E91FA8BE79A76DB7 |
7FD3D6A1236F4A05EC796A030ADA050132112C579AE68CC311A7520E2774BA02 |
8ED8A4D9B57338BFCD7A1EE0D67E93E71D91DB016E79E55B0EF8EC56948C2729 |
147056F28E719CA42D1CFDDC4D625430868362F6574DA35008148F4531B4425A |
AE55FB6A831093B5EA7029AD796EEB725F9CF6B7F3C16636E7D53FE70F3EF8DC |
430F79058C17513ED4880C7A51564F57C00AFE8BD0948EA38D3CD356CB0AD658 |
AA58EE55463264D34B074BC6F692FF829ED801D86694F294E89FF40261D94CAB |
42EEE412C6518520853F76EFBDF7F2E0CB8254B658DB46B887F3CF3F1F12153A |
1BE7340FD47E5055382FA79C720AD331F2DA677E300294980363DC89428A7106 |
91C6F1C3424467450F60C91442695C119F3CF4D0436FBBED369E6A8A331E3365 |
191938627F3711ECD9A24357340090AC71A64B0FB3D19C119ABD78E08B2FBE98 |
E48EE4ACB071480C5BA553CAFA08C2CA5FE9C6E5A1AA52554C94447C7C3147B2 |
AF302EBBEFBEFBDE79E79D4CD06248B82F3C51C61FC89FF2F9CF7F1ECB6355A3 |
0D49B9229DACFC9CE0ACB3184C8C9AB210799B6DB68116FFDDEF7E8745948767 |
7324B6468B815F6EE53DF7DCF3B1C71E83E7A4ACB9B50DBBB02A5C1D883C7653 |
56C32595D0F10334C22C588FFD7F7035923DB9A2F992C23E5897786AAF2D76BD |
C64240E5431B25531B705A8A738A69CBD8ACFC3123A51C9838405CC11342154B |
9A4357D8ECB6F4222ADA02E6D3FA86BA2218631745CE9C64317F509999AA18E5 |
6BCE526EA7A2F32BAEB8E2CC33CF4C8AC68262AC94F81374455A8DF07555E83A |
C3DB6CED3067582453D35458D3481019ABC31558864D40B352D8081511E06344 |
02AA03043E73C619675C78E1853CA7AAF79030D159EE2A7DD1F02828E0169F7C |
F2C9F95FEB96D6EB9517043E2A6CFB2BA91F97B3DB101EA49D35FEF69D6FDD7A |
E962E83D887A3601F46A29A46F5DD818CDA2D9A5829F69A17AB9919465EF1CFC |
8E10E7A16B17B1884D004FA855FDEF1F39F5A1DA145F8D9B49DC86F64DCB6D28 |
5D0FB3F271E6D81347A7AE845FC37DA21256D995CA79B556F10AB836A7521A4E |
E25A5CEB4B925252AAE2A88D4F9647D6458F3FBEE6C1079F78E2F1E54F3DF9DC |
FA751BEBAD1001EDB06DC46452EFDA45849ACEA8D87ABDACE274453F531E7949 |
5789771E5295F8CBE462D18458E5E3A23FB73D35BC0285CF4E3BEDF4F4D34F77 |
251DA2A2265B45BDC2CCDB0A58B1DB3295C6DA1F8546E4F9C8E0E01491CBC5C6 |
78E82C29033B9B07CC4F9F7AEAA938F0A4BB724613B8A20C9436CB35D75C033D |
FDB39FFD8CA394EBCCEBCB816658CC19A78AE787E3566D32AE0C310A91AA96BA |
AAAFCA4D233F2EB9181F25E2216E48F98D6FC1006164C39A458A69C07EC74956 |
E8CC19C89CC422335B626184D0DF72CB2D1F7EF8615C8A8E1D9C0C324E88DF84 |
7C8132149C019B1C7BECB1975D7619F5041988BA6EAAAD4362C22EEEEF5EEBC5 |
C008BD46523BB1107E7A4D24D79E32AEAB1CD3064275C66CF3DA681A58940696 |
44BFB20CAAFDC514B1B72EE39604F51C70C00137DD741333E5F895AE8C7547A8 |
5939783A4C18C0D9679F7DEEB9E7B2D721A173160A679D1EC6DEA9B474D4B9C7 |
302DA4D4B18C168AAA75B5639266926D64AD78AB7D0503A16BC83682FC93FAC6 |
EB9AD2BB24DFA61B4DA3B8570E322E38D8D957839B3F2EEA92896FC24E639BAF |
AC20C27445DA09BF1E77DC71175C7081EC92AEAE9D6CBDC72593436C7BCF11A6 |
8EBFC2B4276F396E8415C45F89F9E4A6C53BF80C9BE1B8D0D69A2E02BD79DA82 |
38A7102674084581A70C972BEC5159DB9A7F1BE2867DF9D4534F29D3FC5725FE |
F4F99440B759B39E843F2E8F3A53D117C5D9DBDEBEEBD65B6F51AE40DBE57151 |
96D60AC829D7F653D1EA30B26CE24292093BA3028E9D363FBF52A0C7238180D4 |
772F346F70BE1B84F7925DDBB74B82022EB592D4F9BE4995B8564DFAFAD25A25 |
A956D24AEA0DA6BC04DD10A525EFCA57AB7D95D2509AF44301C31B88BD02EECB |
F3DA44BDB27143FAC4136BFEE77F9E7AF491E7A08047D68F36825D14777A0E3A |
3655B478F5E9442EAF47013B634BE501FB499D9A9946E00C910A01A0168791E9 |
7DC7571741108764E3409801EC1378B1575E79E58CB961D5AA5188E11D084686 |
F4D42282B12E0C832282F526A441647A98993B5E99F160D6B32867473C328D30 |
D9BE3D053A9F19DAE5BAEBAEC398C8484285442A5A4D04E16A32575924A346EB |
3CE19169F2D305F0B160041B6423A65794E5B4F42FBAE8A2D34F3F5DD4A0D329 |
17484AC089A018D2A8F0754A3A3E8832E4928C5D3FE0F5F77FFFF750B11061AA |
6C911B27CC27E78A15D63C7552F074B37841CA650C9866110377F65E56F1B3DB |
233EA0DC03A3DF9679D5BEF8BCAAE875460552EA3162494DC36797C148354C4F |
85683DAA015B45CD9FADCAE150590C83B98D42FB5581B30434B0E74D55B349D1 |
F4D7BAC57C64C651B1C437DE78236B7C19DC86B83FE18413AEBAEA2A4A497C18 |
EFF0A1B82EB8177EC5DDE118C141944FC9C7A4D58CFBEEB3CF3EBFFFFDEFE1BA |
110C4C8C1E9BC23208A638BC458ED83CFD8C60AB7C2AEC59B9288B43E10A72E9 |
5983C1988A9AF8C238989EB3E70B3A8F65396C2D60099F31D5B06B61F8520C31 |
A74307423DBBF0A4745889CEA371439882B53994F8A7C14E09A8201BA7E5B4D3 |
4EBBF8E28B252548E9EC02A93864023E79E9A59732CE869B424261902C88E2B9 |
23FB2963CBB4DE043890387605D6C119774775C69662FA231FF9C86F7EF31B15 |
9BBDFE97258EB0B6C82C840F012F880F972BD5D25B76DD71CB2D1757AA89CB1B |
7469BDD86D8522D72C68CAB443D42335CCEB649DDE47B1906E3CF569AC33A57A |
0D3392885F57196E16E5AD70B55694377DD8396DC21448D276C9D363C5FD7DA5 |
FEFED2405FDA57F3B9E7323473B9E919A403922BF595C155DF00D1553CAD659A |
96CA83B9C33CF7E1303DF3CC9F973DF2CC430F3EF7CCD3CB376E18B70AD84A1B |
817369EE3B13B17F3D0A189F5107F4CCB46C577F3C0825212805C4236685FCF9 |
8CDF709FAB23AA2B626984E9082144C48CA4B1CDFADB3032D40A3ED005F8C245 |
6056B2EEE0DA6BAF8542B4581099117230F42DBEC9334ECDCDCDAF06A3DCF63D |
15307116ACA975C1BFA4918E9FF7DA6BAFBBEFBE3B299A8A90B41D7284B12915 |
C061D6C84CE48A1E7354811CA8D5BBBA2F035CCCCCB1570CEE2E5E3A5C1CE215 |
1EA45C7B86BBA9F2093FDB7DF7DD7FF18B5FC006A7514FA8886D2343594F34CA |
D7BFFE750814F5FD982E58BB90F41C09713782A7297825B75E2D22D4270A9B86 |
CC4D144CE4CA50155357E20D2FF81970F88E3CF2C8AF7EF5AB7022B12DC8AF96 |
4F03D96AD88A9970A26415321F8335C215F03E330B5C3B28AA3BEEB8E3F9E79F |
E7386121DE79E79D828CD2466306349ED61756FBB8647A4DBB6027B1C912EB88 |
5C40FCC2E9CC4D87577B9219F6107B8E6DCFC7C864A9C80AB3992BD6547E36C3 |
A41A4C6ABA04D2D5B6D53E74FE64C05A46560B1EC6E05D30A7B815B9572DA6C3 |
CD648830C6887910848A794AE2380883C2786052E0FDAE8E2E2E5857B294677C |
61A5A0F6B85BA04A59428D9B5234E0FA37DF7CF3F1C71FCFAD85FF69B769F732 |
94424814B3DAC4FCD36A61B760F6B771C1F0C2721C7DF4D10A81587A1C39F45A |
05314CB98228062B45FBD815AC73626368873E921EA6140C5622DD1854B34B49 |
8CBA8D4F2A07CF420C5622911EC1F58E0CF57A7124B4D119399FB1F59E3D5F85 |
D68FE60C0F6EB7DDD2C54B16546BE5766B2C2DBC586AC9243C41522E09D42635 |
EC4CA3787AC09B147014AE1077146D71DB6C93508A78FA3AEA3976C134C4CCB5 |
27A2BC1E258DC4F74A8AD2CA68B51CF7F597A083FB6AA5FE5AB9160E72A9E2D2 |
524CE110B924CF4A79967A773609FAB7D2DF7635E88BC989CAF2E75F7BF4B1E7 |
1FFCD3F2E79E5D390E17A005EBA15B014BE3AAC46316828B5EF3C97D65D98893 |
691D06F7DE7B6F18582C2723C5B733208FAC607CE287C9A7A61D6BEBFD6C97EB |
AE531C15E4AC743378F1254B964073E1B95883E042C00C020A62993EE7273FF9 |
C97BEFBD97FA554025CA011E28712A2887A8CA468228A95E670B414B69C12525 |
DD3F6D46D26530892B4D664F0EA52A2D5C7ACC4A7173F47A720BA2E3AF975C72 |
C949279DE40AB78C40535E87271C1301478D9C8E0A0564861E96F5FE621493D5 |
EC8CB1C360028D6EFDC9CD5443A20A60B152501BB1A6908415A42DECA2D8E6DD |
F574743B3093048512E44C1A67ABD8A480C9F32C0C2D864144C02C1BDA8A758B |
99E2EAD86836FD542D04660CE3C160A0350F39E4903FFCE10FDC1FBA38659F9B |
49F168895DD1860C7BE65FFEE55FEEBAEB2E8836DA5B14FA4C4E73C559DA2B37 |
8B66ACE09110DFF82B51E2D4A3F492C588C2D205C180F175F557E61EBBE9A69B |
A08D0809A4B2A1138C17F70C968F8397EB8FFD864FAA208DF6229120B23BA717 |
F56A1E1855866EE01E608CB70BAFA16038C30C9C37DC8295A9987FF8B8471D75 |
54AF25162B055F4C6148B22B3C43C78209F256D17247CCA9B466E8FDB3C588E8 |
A67959EC93C58B173FF6D863E27577A6AA84470C573BE79C73CE3AEB2C1C4F7C |
1DDB86A7158F4F3E326E42C12DF3A24E9A616D7568E020F17925C22DC3AB3309 |
2F65F1D94CC585E22E6C27580930C75939EDDEC88BF3C0834C1F8310EB5E06AE |
F59936DB6C01B4EF8285C3D51AD458BD14274CECC53C1141956646AC76210666 |
0C41072A2B267BF943577C251429394E4B08C9B83498A7AD766B3CCBEB49EC15 |
7092E695EA78090AB81AC303AE5593FE5A0527CFA3B4FA535A9F30147DD38656 |
D46EF978B2AF4D2A95A180E1DBB7DBD5C97ADFAA17363CF9C4F23FFE69E5F3CF |
BD3039D16CB4B3762B8FD344989EAEA23551F4BC21052C9808251B6429118824 |
7DC3BEC2BAC06AA73A548286A7801907E209700552EB33B8F5C31FFE105B0B02 |
0DFFCBA456EBC32E372C2A42177C0A3A75707BB0A3F0311E673A5A5C2CDC9AED |
B1F915D8C12B57AEA4E025BC1937651586D0AF4A3D1059429AB0B7BFFDED8F3C |
F208A5714F054CAE1F86ADF6DD775FF84934783923906EF0CC6456BCF9CD6FC6 |
C85475AAA26176C8A151CC2998DE38C2194B0463BDE5965B0E3BEC30351256D3 |
1BE17148AA40DF88759F8C24F38EEDA227810041E24C60B68FA2840684AA1559 |
14A4D362E7A1AB305C4CD14AEE32399F16BDEBAD05C7F5E6FFF8E275D75D77CC |
31C7D07181C8C0FB7088B59CD61C8B8A56B55069584B71537771844D3DA2B94D |
8468245D74DCCE6802D662624D2D70117FA59A57F0B62B4DD02592F00ED301CC |
AD62CB9E76DA69A79F7EBA33754A90E96421E58D0480A40D284DCF318BB18833 |
4CFD4A8389FCDEB6E33DC3A12A54253B92748033016149070645D9E85031D5AF |
7DED6B9C64268FB5D5690188324270AAE9A299A82EFCF0894F7CE281071E80A5 |
B56CD932574079390FD8BAB43CB4D9E4794364E0465D8970FB6268EEC20B2F3C |
E38C33D8031C8FCC325F068AA5B12C0928BF4BDB8B55D1DC420CC9F000CA5EC4 |
35B91CCC258B539AE430B224E895E26A2FBFFCB2B5EAF068575C71050C08E1C6 |
F945380DD0D6942716FDC727B21805B151DA683FBD1C91C2524A60BA20160866 |
C903F3CCFFC103A6B8C00008B3A7A1F6D714B0FF6FCB2D97CC9D37343C175B14 |
276E0C0A98C19224246EA080FD87A24D5FEC3AE00A414B07D3F58D84B44A7447 |
BB1932FAC19D5F3CE5653B8714CCEA2E6FB8A89E96DB699C95AB93A534106675 |
FEC14BF7CDC84B55F251C3F24E5A4D8862AF56FDF5E2403D5BAEB55DB5D5ACC0 |
DC7DE9A5D1279F5CF1E043AB963FBF4A0A384AE230F918D51490113B5BDB2EF4 |
EE75E78055AEC333A54EDB165A9B17CCF33631DCE5E7484ABFED6D6F7BF8E187 |
9DA1FA5749AAFA31C850906AE4AF18C6CE3BEF8CAF2F5DBA941DA369F72B01CA |
17B18414CE8A21B9A98DBABB8A3F597AA0C724333C03C3F9EC4C587C543C3FB3 |
56B23109A412A6372DFA49D95DC5733EBD47A1966D3A5BBA5D421ADA510146EF |
AAF88C0DD7B6AA5489818244C0C1C6F0247D14706F170D319833A70BC2FE7D6E |
D6D013135D2C9CE08269BA313904E58A1B48EE32C3E39807E85A667345EEA19E |
073035BEF18D6F741D54DE9444489FFCE427EFBBEF3E7AE1EA5CD46B9CCE885D |
C566293A095E93CBA548299322F830D4DE934F3EC9081573A5CAFBA6D37A35DA |
9BDAE02DDD5C9677E3F1B935F120FBEDB71FCC353B6FD6A4650A87641DCE20CC |
D91C82BB85C632E793A6860BF103526E71CCAC55E55C6154D809045B91A19A86 |
2A5D436E9EEDB7DF9E4568CB972FC79F6053DE7EFBEDAB57AFD613D9A202456B |
34D5D62E71C11F251393727E0C4FF13A33F606507C5505C1B3882D4E3531562E |
448985448356860D1105EADD3C5449E16062C2F126BD467195E0BB6454E0396A |
9BB6924C48F35739A9A2E114A1988DDECB98D63167761F1F238136D533AB9F59 |
C59B17F4B40CBE61F21954944ECA8BF66B6E5AEB7567FACCE811384EA2EDFEAA |
C4EF9A4F5B21D3B59AD35FF45A6910BCE94DDBF4F55786E64001A71313EBCB64 |
714B532294635E70266E4B5704576650C02E2FDE0F9F89A5C32CFD72186DC816 |
E759EC5532DEF139E0461C3592520B0F54ABB5E0FE54AB71AD12552B69B552EA |
0BC41D5119735E4E13C881A8516F43AD84798E2A4916A5495AAA6579DA6855E1 |
22AD7969ECE9675E78F891D52B96AFEE28E0761E75687D9D1E85E7144B8FFD86 |
45A14C7B432168EE2E3653D12E2234819A825723AE05CB7DD555579D75D6598C |
F110E14F038E8B628BE079AC2064F0496287B9FF45FEDAB5E5B8EBDEF9CE77C2 |
31C590E0265D7BEDB5F8C0A9A79E7AEBADB7424E72A50811B02DB65C30E83124 |
5C967C93F875BBEDB6832C65E44C9604358E9503344FA3D9CFBC1A21E067F622 |
A68083E28192B755A771D167869285E609D3C672BC9857B68EEF74EF8A5B997A |
82D12706CA9CE92EEC0AD7810F403F9B3FE745E104F3D0620A7545384B2008D9 |
47B65ADC9E37FE40CB9D76136683D1665912B6156B6C9AC6D85831DD29BA14DC |
64F800BCE1030E3840C5B8BA9DF246AE2064E8EA69D5CB42E7DCDA3A3657A810 |
05E139B1125E342D717D167DB19F3C7933700571BEA8D1AFC2E3769CEC384980 |
BAE536890B82088C8A05C1A472B434295DB5984C2ED08967F08781474D26558B |
E47217E44DDA1D627A63784D5F0BA21E080B38E8A083EEBEFB6E0E492B4EDC04 |
B7596E180652D3ECBD2B17CE97C2CBBBEDB61B940A86AA060CDCAE74E8717D9C |
F34F7FFAD3175D7411F715A7222B7A45F7E29CC98BCE48127FB89A38B6989765 |
CB61D5DF738665EDE116C40190FF4FD34571661D5CEE1FABD284D8A45B10179C |
7162C7141652E61AEE75C411475C7CF1C5F81873CF32D7B88EF8FCE5975F7ECA |
29A7C40539972D82E046A5BDA58A8E8F7DEC633FFBD9CFF02B659F5C8D59C053 |
B30837C5B7C53234638AA178C52A56D965971D2BD57460B03A5D01FBCF854FB7 |
0B5564B34B6EAA073C15841559056C9C60271DCCB83415701C95FCFB1E81DD74 |
51530A78A01F2E515E2EB94A09BB3DAFB0FE384D5D292FA5F052CA591B8675B3 |
3ED96903552DE554C098867A0B1332F0F29AB1679F59F5D8132F4B0187D60E1C |
8FFFCF1544FA8C482D58B08065816F54015314FCEBBFFEEB3DF7DC63175A721E |
173FFDF4D3AFB9E61A02FB79966DE4CCDAF154E4D812F822C4A6B6B7F66A97D3 |
EC0A00AF12043A5F62A526591BEE0521491096ED0183CFB33A239F4AF1C13ED9 |
7A522A5A215EF1144CFFF1913B2D3C9965518E9377D20347450D00B1456E6AB4 |
212FEA5661F062405C155C1033B2CF3EFB5C70C10551C08EF3A96C644C9512CE |
B01AB1225B6E4D6ED8492C639F642B737E046D61008466D028EBB5F0100D984D |
85A621231832EDF579B159611878A2EF7DEF7BA4DB9EF1F34A5FB12302F6C1AE |
BBEE0A4F8B0B0655CA2715210023B77834E156D418D1996A2E09448909EA1226 |
567D6D62619A4988F078779D7FBDB86FF2A2657A570F796D1DCEADA4B3941FD3 |
FCCED479B3F73B9798C8582EBA620C64BA21628E78696604F302B346D57BF2C9 |
275F7DF5D552CC0C02F3A99537E245E87ED18987ACBFFEFAEB5DD1C7824FCD3B |
0A982D260182E9683B8A45CBCA4757F44055B48D63FB3F087AF5E8B53CA36E6A |
7736F1185806B1B4E8702EC7743A7E44275FD00A3CF2B1C71E7BC5155740D162 |
47B1904F804CBAAD279D74127B2A581B451D44883CC80A2AF9C83041E275DC71 |
C7C139D080BB6AB5E52BD3F7E596C0C571D03036F2FED8CE898C72CD72F4F843 |
5C10ADE3FFCF7DEE733FFEF18F31990C7B8AA445861A7B45D059176E0BD382F1 |
E067B54025A93583ED240311E8BDF7603A34BAF3E7CFD97AE9160B160E954AE9 |
C60DEB13E74DBA7225857EF4664ADEA616D502597C9945414745056A70AEBD7A |
A3B04E52464773E1FB3A6220CA8AC0A927E9F01A2BF69D91D2247351232DB7CB |
A5B8529AF0EE6EC5954BBE6F715A307E94CAD524AE440EFE62D26C649B302291 |
23B10774EDE868D66A545F7DB5BE62F99A65CFBCBA6AD58BF5C95651071C2B12 |
4BD9257218866118E3EDC215AB10C012945AD3DC1525A30CCB890E963752D374 |
45ECA8F94440243CBC332D7175585AA6A1ADA00CD3D1F23A50D22FB4FE996D54 |
31BAE88F98EBA51DAF725E254A683892A3829B3336E480AE08F871D3FAA8BE2D |
42E8A286E7F7651E5234F02A5DDA97E68C62D15DA12AFBB4C2B8D2677586D55A |
B5D84434582CAEBAB8F0696977335E21D56EF96E5CEF6812EF65590818849C25 |
047DD555579D70C2090C7FC545FB815EF59AF23694788641B472E54A1A1694AA |
4C04F2F3679E79E65D77DDC54A59E60BE3D081BCAB90DA46A7455EC14565CDB1 |
2B622F44BA4B0FE984776D38EE4E36FED3D664B9735634E4A2E67345335D4155 |
6D15A0E2AB027671E7E0EEEA8B72F3CD377FE94B5F621B6992B0532CAA4F1163 |
096ACECA3BA6A14BB1B5586343A0CF37051EE6C9E4F5B9FDA40370118EC4426A |
A58CB36994759A1F9BB6E84241BFFE17CF6432536373E18008AD77A16A5666A5 |
20DC78C67DF7DD1773D87577458C2453687A33A401ED6B5D703A9D94835D602E |
57A09F585971E8A187E25E54934B972E25EC9CFE84769AF53C343FB82F93EB5C |
7D5EC7B7800FF106575025A8475B3C6B979B5E2F225F74BEF85C18CF57BFFAD5 |
C30F3F9CBCB35C748AFE1D77DC113FBFEB5DEFFAE52F7F49B23366D0D43BEFCE |
3BEFDC6BAFBD701DCCC92CAE5BF853A7BBCCBC79435B6DBD64B345C3954AB93E |
391EE7815D01AA2C0B68C42C745434F487996998261474D7D14E1DB572D4A580 |
8DB6CE09D1EA58A28116040AB80CB716BF25CDB404C737AA9426D39283562EA7 |
799C7836CA8ECE8ECB81141A1E7054245502B628FC8F4B8D8ED5378EB4204D5F |
FBF3E4CA152F3FB972FD0B2FAC6ED4DB54C0BE2762C801076E6A7F2EB0C1283A |
18ADECAAB6B2F6A533B4F38A48A992C7226439BD5859B8C5B7DC728BD830C462 |
A6EEB47C47C1125754092BC124F7803151FA3969EFBEF27A71840A5B32978CC1 |
1C7CF0C1AED05FF85FB483D45C79C1574A65DFD5799684946A37C2E34F3A1A1F |
49D873CF3DA10318F0A11466774F81BCA959F9B476966D20EEB0C30E7BFCF1C7 |
1F7CF041E23FE9DCA8DF19D1BCA49F66758A84B808896CE0546245D58AB2DFE3 |
40222D24116D1C0BF061DDF42C07C915114561E867F16C684453E9C2573EEDB4 |
D3E2BFD617938FA627923942542A43760CCE3381413144602AAFACECDA74D013 |
93E2582352B1E0F350E1575E79A50B4EAD3078AAF7E0769FAE80D97E8A311935 |
ABC7BC4DC7964360EDB4D34EF7DF7FBF33840C506FF88160286D7A9B53604005 |
77C138E9D9E3C49234945E3B5BC211FFCCAD4C7704B760C1D557BEF21578C3DA |
D33CC9B6ACB6ABDC56965C1C989868715F70C105B80E9FC83663B04E9533E141 |
FD6FF783F53EFF0FA14ED6FF11CDA15A40CD338F344B9C992822BF0FDEE4F2E1 |
F4DA82C8AE9D8C77D497102F954AD390A29612199EE054AA9FE639E591A71081 |
1667B9B04C10D5DC7705AB290D54B06B7B789373868286561DFEC7421C79E491 |
2A0E993DA5A215D7A6B258B0C4F4D256C48ED0598643612E43E08A6143B32D29 |
CF8B0B62C24AC55E000B67147098F04128E0CD17CFABD5AA59BBC9C2DF38F1FD |
8003135698B768D317AD02B64A3733BDB352E68FA980039CABE32227AE08572B |
6D192CD110A42E27B18758A58E0AB802BD5B6AB27761923A284DCF4149DE577F |
B9146E5B9EE19C92992B342A4ED2760E15D25EBF6E74FD48A3D5A8AC5BD77C61 |
C52BCFAE1E59BDFAA5E90A58202C9B357306DCE48C2DEB0A8E399D1A719263A2 |
601B3DF9E493F42F99E0538499E04A760A507085DE33A5318328B45C052571A6 |
DD21298AE5987EFAD39FFEF18F7FCCA48F1DB6B61FBD9A34F456C7E684C483FD |
0A3B00462407C6CDEF0A6EC4B8A055E9C2B72BCF4269CF31F38B0412F1797966 |
B7DA6AABE80B5FF8C277BEF31D7A42CAB53075445F937A5B540676F4F6251312 |
1FE6C1E86205D319A02B49B983C16DBEF9E60C172B092FAE133A28DAB296921B |
8F41566B429A498D49C38711B35914A47C53F93AB3F4DF55F8D18534C3AA55AB |
3048F179CDF8EAB2E9647641B4C1D5E662E3D1A81A5534E28A06E364EC9B31D1 |
C869E19ED35F757DA6FD38690CACD9FE24D3C5F7A2458BB064D8E8D073AE30D3 |
84A852E515EE881D4F6E237C809183B868CDAB9892E2DEBC38CC821B6EB8814D |
E0A9B67990689361E7E1828C58E04D065AC42125F75DA52C0AD6294DC875617A |
9BF11255A5BB829893117EAC148D1B015F9D8992754DAF9D1F37D57EE7F5DF28 |
D847D4D9B47C4544C52B330E8FC727B38D02D114343C32BDFC6F1BC1C652627A |
B1AB950EE70EC49638FAE8A3616853172A4C6591893A89CE58182AD952BE6397 |
5D7679F8E18715D696C853DC8B5FBFFCF2CB4F3CF144D52010222B5C9B206F04 |
6ACD1E7F56D2417556D497383E2C67178E9A6604B4FB75D75DC7D69FBC9D25D1 |
744552869C421800BEC84800EB2066076386B3DCF1EAA080B7DC6AF1E225F307 |
06FADBAD866B07110CE1DF6C4901E7C99476BFCE647FF5BEA5CA8A3381B036E9 |
E04DD9E28E1A7605748BE95F28E0D48718E03127ED52190A3829973C5F55EAE3 |
CF9009ED282779ADF7C8B1F8504691633FC42834154EAB250FBEDB38567F6DED |
86919166DEAEAD1F69AE7EE1D5675F78EDC517D7B49A3915B067EA0A202C2A60 |
6BF8CADFB0EEAF3535185CC10184A86707306E0FE54AE971292205E97AD45147 |
9D77DE799484B679A544EBCE3BEF8C0DF9F39FFFDC3A18562ABA42679301E66D |
6F7B1BDBD8330C363D821B4F65D3E3438963D8F6FD7345ABE319314C9C198D93 |
347FF88052967C406262FC11E021A7A275C101E74745F3C4AC38F974A607D0F5 |
C0422AA6A6092E736F8C860BE3AA2E40D0C4580F320CECB1C71E3FF9C94F9C41 |
99AB78835B1632944D9B215221AAA0EF61D4FCC77FFC074BAF5C11647385A333 |
4B2EA72B30CE21CDA2B0B16FF0F8EC76E7A61626CDF89A9E28D5D487D33B17CF |
0BBB47B2184BC0849CB8A69D09B75A11104D25FE66092343853062945F544768 |
D5EFCE28BE999E3CFCF0C36FBCF1C6BCA826E25F29A933D3B81E4702861A1651 |
CCC3B81A1BAA5B05AC84C5F1C71F0F57CC15046CA4C526A4CB059A8BEF7EF7BB |
471C7104E90C610C2AD1CEE560CD95ED0AC51093EED295DA14ED174D4BE129B8 |
D33EFEF18FDF77DF7D3AA56E5A7FEBE9D256AC264C0B450520FF8D864C59F0E3 |
0C13AA90D5F134C67F490D9A89981C6A2CDBB3AB2B25C177CE3EFBEC73CE3947 |
7764FA53651B2E1003697D6DEBA13C1012B1B4970A95CC1E9423B46565D40BC4 |
4743473960AA467C80813EF523C1FBCCFAF31031246E0B115D6F85D74B01E3F3 |
3BECB0C3A38F3E4A4F222E88DEF0743802C42B70006AC7C43612B8BB6D4BA506 |
C90C3BB1C45966E2F45770F73B341A73E6F42F5EB21914F0D0D060AB59CF0301 |
56E6BB28F8AA6BE680F3644AB7416760B75D8FD979B53B7C9354B1495AB8BDA1 |
2543385639D1D1C24EBBA080CBE5D43784485AA5720C0F186BE819A17D44BB19 |
7928982F578A42FC1A87AF54AA24313E1C85A68A3E4F9D26B053DB1B4727D6BE |
BA71C3C6B6CB21A81B2FAE7EF5D9157F5EB3E615B8CB8D56E0C13621685798D1 |
360338FD0409EBAA9DA669DF75D75D1F7BEC315BBA23DC133E03ABC85673F00A |
12DA38DAB814D9B2F2A9D5445DD1290E4FAC769CE61915B0C402041A4628C4BE |
2B12DE344689CEA1436C83C15698584F9D87D7153CC4785876C4A2D140B917E9 |
C45E71C515E79F7F3EFE86A3C2CEEAE44397EB69E5D7F417B91168698A84D299 |
64C06EBBEDB662C50AB667F9DEF7BEB721BC9CC15229F4272E27677281CEF019 |
512B881D9B60C8B3CE3AEBB2CB2EFBC0073E70FFFDF7CF682B68A59548880A0E |
94BFDA6D491BA28BFD60C6974ABEACCC853CDA7FFFFD61A1D38B82A8C26CC4A1 |
F4169F51A742CC069E8E4DE6DD4C2168CA65DB88C9B688811A83D58699B9F3CE |
3B2146E9F94D8F3FEBF013CA887B6178C4A130B767BBAB52D2D9082A97789B6D |
B639E8A08320F7A7DB0A7CA94B317F654D7917F314D794694B5E9CD87DDB1B47 |
B895ACE8302A1AA32E8B3536BDED70CD2854E6581059978098653F8BC285F3CC |
9EEA3492DC1B79C120603648AD4A5CE1A0AB7102A149C4E2E15E38809837BECF |
78834566D8E5E35488E1929164E6C50922C5B2DAF012BFA8C82DB114B4ADB9E8 |
5C5C1283B8C28364EA1723A4CF4A8B449EB132C4AEC8F2D25E61A2049782850D |
FB80382F3286BEFFFDEFFFD5AF7EC51B59656C5FBD42D0242782394220184742 |
830C9FB9E4924BBEFEF5AFB3FC8C3E5932AD9D03468B2F327B2284A9C010BDE4 |
40B8575EF0CA55172C9CBB68F3B973E60CB9BC4D054C0F580AB859504BE65389 |
86A2A9AF4D1BB2E58ACF143898B45324A3F833D3C074883B54C171C93784C027 |
E10197E2728918AEBC94C043C6B96BBBBC93EF850F1CCCDF2A953AFC589F474E |
5C9E95E0E68E4F6623EBEAA3A3ED3CABAC7B6D62C5CAD52B57BFF6EAAB7FC1D7 |
DA79D2CEDA046179CF3B1C17AB802DC1809D315A090CC650E412CA8417A434EC |
6FCA496D2492B8E14DC85B2C31C497DC36EA086E33B1A5328E026DADECAFAD1E |
A6E2645894207CDC57911E372D04EDA6F6D2A60EB2A8493EB2EDDFD3051F9129 |
253E86EBAFBF1ECAEE4D6F7A13B62BBE2B8F5F254C185287C491B85C85B05CC1 |
28C407E0F9642CBA57D791C8703B330947839AD85AAA8DA8A0A1A7748B8BFE04 |
BCB52435C37D7222E9FB33E0CC51D182E05CD08EE0B055E222F4D0F417F1A20C |
72E27F3C3E216DBD9E4B2114ED00A6317A1D540A20016805BBC803CC5D9155AE |
3413B15941D52DFD171B4280E9202CB18FF1D9F108DC6AB2126C3B29DB35D22E |
162719D7C1873121F0839948E68BC2CB6643BB6005EAEAD8AB72836706BE3E0C |
2366EEC505414DA0AD2CFC362796B4D5D8A03BEDB4D3934F3E490A0E3EB85A26 |
6873AAB44099029E220B7784FE38E49043CE38E38C2E1341C7A6D77EA6E5AB59 |
22FBF42C646433BE58F6CD31B78A6E9E4A19D0D2E283CB4714C0986C6BD6E4EF |
DA0F79A8FAC5C452CDA8910B4CD2F3CE3BEFE0830F66AE97782ECE273749170B |
0A2750C8478A06659DE9F542B1611AD53D42A789C511F830F534FD336209E95C |
AA35E7741AF3371A4E7005C682B810EE31DA1344F6D9C83343621232E44CC01D |
6FBFFDF67DF6D9E7E4934FFEE637BF892D2D922F02117AC981803FCD695B6053 |
0CCF1D9CBF60101E30741EBB2F786AC856BB4B013BE3E3464529B9BC43AB8693 |
BCC48B50DDF2782649A781AEFF4CD46997C45FD38420ACD01ED8F744CA4AE51C |
AE301DDC246DA750C051CBF718E6AD53E7BB1E79999CF9A687790B4EB3078E45 |
7D918742432C47E3A379BD11AD7969ED334F3FB7EAA5756BD76EC4E532177AB7 |
94E2B0273B0A58D820B92EF6592CD25B95DCD47FDCA8546044CC59CA7A5E1007 |
618F3DF6B8EDB6DBAC24E1C7B09F4F3CF1C4ABAFBE9A679C8791661F854364D8 |
152516B887F9B159FA0A73C388449641665214C4A163BA33859D336E5D0A0D35 |
7F531DB00E0BBD2F88C1BDF6DAEB5BDFFA96BF8EDC4DAEAB5ADAA97495496C72 |
04769DA22E7B5CB592EA41E10AC51C056E45F62CA3FDCB6215EA09C12BC87FA4 |
3224DBB08C363BEF053F0F3F4346C3B8A057AD26AF1CC02CA1421A479C5CCC11 |
1D9459405B34B8E482280AD76B21295E2D894F01DCF0AC110AC228EE4DB09228 |
2CF0A70F7EF083FFF44FFF443E4E9B4AB1AA82A2931D66E86A908484C4A4ECE6 |
C1B9ED25F224B209DD52A32E25DDA763E2B81308A06746C042850582B0D29C7C |
81DC330A00E268EDBFFFFE32F508C7BFF4D24B4F3DF554C69C99B99991BCC219 |
ED2BDA13F97649C1BACE37B14F70441935911CD43670459CDFBEA317D7451E30 |
1F195BE58DE6802911B8BDB9D599947253C9AA483D4FD405ED12CED52DB7DC72 |
D45147B123829BC903D6FEA170A158A4FD4AFBCC368469176D9E6D1A456C56CC |
14F004510FF1B2EC9DC0C81B072F1F3A2F68FCF0C371C71D07DD061B42047044 |
63314A49126992B02ADC3D4B9F57BB225D883966E0B8819535CF8A5EDAB4E1E8 |
BB087627BB47B4742EE489557DC71DE57ADB04E19A9D20273CAEFE81EAF0DCBE |
C1C181FEBE6AA7FB429C0B84E56574B2491B490147A60CC9EA607FCDA812B60B |
03CE51814C349F893A3C9485A2CBF22C2A51384781D0AAE4CA50984925F13F47 |
D0AFB16B9392CB1FC94A1291A22B6B67394E561B1F48E1345786CBA5FE7279A8 |
DD2AE3188D8FB657AC58F5BF4F3CB36AD59FD7AD1BC7F5F22860F553B6BBC7A5 |
369506083120B9D1E586F1A51849176880F05B6D7528086C30AE29C17D02CF53 |
980824C4380A29876939713328BB24F8B0F2D354F61253D3179A790A6203D5A0 |
D3121548B6D87A426B0DF3F119C422AD0D03B1B0F360B9121A4C6374EFBDF7FE |
E10F7FD8A986C7176071AC5AB54A7EB16A9CF1855D77DDF589279EF8E217BF78 |
CD35D7702AE9DE696329FCC853D1259EF4B4339DAE48468A338DC6C8B8D6C561 |
4D81AE8248C91D5961B474B80C0AEE253E6FC1F2AF94DB1D22CE8E815CF9EC3E |
3B8B14B0C91B5B54D0EBF39A13A96105486502CBAA880A2E40522959A0990CCC |
C8944E2947CE68983490FD6257B74E57F069A8590783BD0C3F4ACE72027B755B |
62469F3829B6E976052FABCA002410C9AADA653DC8F0C790B0D9F003F622815D |
C440922B1B129C4748AD38DEFAD6B73EF6D863DC00F4CC242E679C7FC5156CD4 |
C882D2E99959CA527B6E69E1F2F8F1912D00F08D3A6D175E78E15D77DD45863C |
1F718A22D602A8EA574875C5D6C495C6396759812DF28E8A0ECD78E7A28B2E3A |
FBECB315FE617108F3263C92A2B592852AC5669370F80A9CE6638F3D560115FC |
95487B790F8C5AA9E842EA4459C95E56295F71519DC91832793048E345291C87 |
8A2C1E7FAE9125CE53AA687AEE80FB8A7B49EB2EACACD64EAD69B87521D6C820 |
C62F2AD866833A4C78FB7C07B9287217EA38D25A5F6568A87F60B00F3AAFE2A1 |
82217DEB43C4BE3F42A3516FC5A9336167C66F6CF5845C467EA0146DCA9B26C5 |
CBCFAD776F05DBCE986CF6AB9F633EA11F3B19CD2886248C93D485E683B98B3C |
3D565AF6F2A754A996D2725C294D6E18ED2F55FAD2D2E4D878544AFBE6F4670E |
9BBC3CAF7FCEC2E1CD5E7CF52F73976EFBE0FF3EFEECB32B9E79FCE9E79F79B5 |
59F7445B298690965B2E6F654D582078279ECAF61315C5CA9121B5D0D2601791 |
2E70D9B2659C5BFA7BE26ED25E6A17CD28E5A5D0FB64690691AADC6C1402D2E2 |
2C1D266A4465F41A00B61629A854A3C8949F58D5883EB1EDC3A382A84EB137A1 |
A995369213ACB8B782BB7C407814575C7105712DEA504EC59A844EDE9D102977 |
1B9F99BE332402F382DAC17806FCC9C240AC29E73A30D1B20499968726D18CA7 |
919614D7232F1A3684276F1F7EF8E137DC7003B5143E70C20927DC74D34D189E |
2C77AD139E19460467900288D1D7D0417694EA16BA1B9A9A379D3F1FFEEE7ACE |
11D1A7D22EB308741D122DC62C0A983E9362E0723169C7E91C3AD30C8BA74B76 |
A212635C51813C450CC49E5C6409C717AFBDF65A38495C5DAEB41685455F367E |
A214A95D263949B368176A6805A255E3EB0ABE0B7D8C810DCD989BAA80152467 |
612E1E048E2FCC3B5A03D44069D1D99E49CAD34F3F1D3A068F0FEDC2F4DEECE3 |
DC73CF3D7FF6B39FC119C28EC57574D2ACF7294F8837555256268BED82C78245 |
06C37BED935E2F0A234BC8D56510FCFBBFFFFBC9279F0C5B44A794C8200E8FBB |
94391DB589545920F35BF8966593E0BE12CE99A13F57109FE159F0A4C71F7FFC |
99679EA981C90BC1BA90259B50BBEDB7DF1E46B94AF6E96D70BAA8F2BB08BFA6 |
2F8D35C2948EB535A094B0182D5B45E545159F672F0E7E3347C80D633D2D37D5 |
38DE76DB6D9F7AEA29CD03EFCEBE4C786A5C24096DEC98C016E318694A5D7000 |
E8A330906E3BBD771E240EF8A39C01A1184A6DCE9C81C1A1FEFE5AD557D3572B |
5ED0E5DEBE6937431543A92C6128EDD2360D8F5DE123763CA7A256C82AE080BA |
DA847FA67BE9E50F5CDBB68B2388C7D4B72A842F0C259DFA4E4D589EF1FAC6BE |
81EA668BB09DD6CE1B9A1737F3725A9918A9FFE617BF5CBDA2319838AC65BDED |
CA1597D6A04BDC863F7B86E9E145E54FECBB5F6960F0F9E75E78E4C1871E7BF9 |
95FA64A3DD74695C6280A1D96E744152C45AD815B7579517C55D1C7A76A93F81 |
426502D9E50577822BBA76CE98DBE22E557B782E3DD5960B657B6E2A7A9F85AF |
8ADADAC38E5F8F3EFA684889E79F7F5E704E86825893296A58CA3DEE49FE2FD0 |
1247457A25352594718CC1DF7CF3CD871E7AA82B4C0AF27BE06394008CDA761A |
DA30096A29FD7880972E5D8A6780077DF9E5976B34D6EFD66CFA52726EFA001E |
F0E9B88C3A7866C030448ACC679E6D2960678C560EC652F6539309596359E385 |
3A8B3C675EA7B12B97936D06DEF296B7FCF297BFB6C3C0B3EFB8E38E78FF073F |
F8C12C62B45728B897C025FE858CB814734C603B1339E0BC31581106DCCFBA08 |
58E55FFFFAD7D50B880F2BC88910E9CC64B30106C413AEC92DB8D5565BBDF39D |
EFC4DEC21520D92FB9E4922814161345C5B556490C1D7A255067516C14E5D8B5 |
B0EC3054E583452BC8EDCBC73FF8E083A1572CDE410A98E3E7C2615AA023A16F |
98E9A09DC1CC2B5377B80B37802A5089A7887B530662DFE2713EF6B18FC1EF24 |
A9A48ACED5EF882871E121F1279E6D5697599407EBCBD3D058131F5028F80DBD |
3827A469C3241369A9B2754EBB1A8CE3490950200790F229DA7534C8C43AC417 |
BB30B1668C194DC5812CEBA7338EA35A2FB05720268796E2DE7BEFCDBA445C70 |
BBEDB68369CB4C900D2DAA108597C2523228AD1E9D36EB29538FEE3ECE05341C |
A61ADB8651414A34ECD56F7DEB5BEC3041E389010F354CD413CDA880CF38E38C |
ABAEBA8A59467C5EC40BFBEEBBEF8D37DE28EE527650E79E27BF200180B28673 |
D30C808A8730A2167451BE8909B95C89878731F0C1C181BEC17ECF479BA6898F |
41B79B59CB1FB476925AC39D274EBAAA2B13EC95BADBA492AD071CD052B17058 |
7482836283024E426B239F7CF6B9E1C42BE06AE2FA86FA5F79EDD5B9F3E6F4A5 |
E568BCF51FDFFDE570C5CDAB0C8CAE1F85A89DE3FD64AFCBDB7936EA75B91BF6 |
CE5F7963B3B53189D7D727DB2EEF77B567FBFDB9C04347F0B37DAB0888F32645 |
A1721FDC425844D115BB022BC79D464C868A4B79E2E82C8AC8C2EE64094F39AC |
F8244E3129F46992F2EBC40CB1E894EEA23D71820461FF7CF2939FFCC52F7E01 |
D164899B280D5884460D22B75B26B8EADAD5510617613B235A6F7CBA7DF6D9E7 |
DE7BEF553B4B17AC3A961433C34D55A50A40398AF8D987096571F0A06A97AB49 |
75607E99C748942D19B4759FE1E730B92E4A0C27B38FDB4433831A92A8A25DE8 |
4C0957A5DA11798C91AAFB02DCE2FFFEEFFF5EB66C99029E8AD0D283C7C0CE3B |
EFBCEBAFBF1EEE4E571422AC3A76461C947789313406D3A893E425CCA87ADD4C |
68E45E6A18CE1C0C1FD69C519433766AEB9162C301CB716275D91F03538D0FD3 |
1D514385B669236109E1AC138F172C8955AB561170C88EAD30FF71292C33E40E |
AE8FEBDC71C71DFBEFBFBFF8AD142A675C6146AA369D0D1E982DB7DC1266E331 |
C71C03B9C6F12F5AB40872534169BCC99B5A0F58539707262F11471C70C001DF |
FEF6B7A3A21B0F1F5CD4C19B764B2113A54E7A81ECF2A25318BB78CA73C2A980 |
4CC7E31F79E49174F2EC3076D861073CC27BDFFBDE9FFEF4A70200D27867B8FB |
FBDFFF3E44B93249AFFF85F130F173CA29A75C7BEDB57834BA8CDAA2B43F0E3A |
E8A06F7CE31B501B224A54375C6E51560C0B7B49E7831F609CD94D4D93670577 |
2E6F81A7C07DA1F6301BACF7A0B8F9F297BF0CBD254658C551B8096DAA98F722 |
D10DB1E574BE6D2CC442609CC97F333ACD8485ED318C7738187A1EF8197BE913 |
9FF8C46DB7DD46638252BB0B6A3B63089AE50314D942564313E368BFF8E28B58 |
7D8C4131BCC58B17B37C91540FC481320279E185177EF18B5FCC8BCAAB4DF7F5 |
ACCB2EB89BA1855F12CD9B3F67EEDC3950C003B5BE5A9FE7A38AA3D0AFB7EDC1 |
5893D994D49514B025DF70C6452E45B13379D34D0A38F22540851DB3A95B70AB |
990466ABA2B4DD278F33F83EF5B10D4BB6DC62BC31514ACA9B0FCDAD8C673FB9 |
F5FB4349796DBD31D745F3A381386F345D1D3AB8E4CA4D97A57ECF641B5C3371 |
25CC5A54F5698B3E57FA433A3ED9820BE543DD41E465F0EFD3F0E43C7A581DCC |
2D83F64C9D2A71C3EDC73A05CBB4C887E2CA2A28A8886664005C79C140CC1D48 |
2335321027172C480C80315A76C815DBA528485D11F8D11EA6C5E08AF6F64CFD |
72C3E8CAE2A4E4DD85D7813BFBC0030F9001023B0A2AE9DC73CF953EC60FA413 |
56084D3A48B8680CEFB39FFDEC8F7FFC638A477C25E23E7BCF7BDEF3DBDFFE96 |
405C418BE5DACB8552E04B33458FCABB51ED4E8B66A9D590AEC05EE9A180E3CA |
744DE60F553425E5A663A0003D8D2071E5F3EBEC3F457431C3DAB00A79A479B5 |
F1F1C981813EE8053B862EF8DC8CE3945053A6DDBE39C37315580FEAA128F032 |
326BAB53A71FF0D72DB6D80292F1C0030FBCE5965B3EFDE94FFFFCE73FB7041A |
727F3B89A29084B09626E6814DB8C40E78D65967DD74D34D0C445B3E10DB355D |
055D3CBD62B111ABD1F417CF8CB286B631005950E849505A694F772DB17E859C |
C575E4E593F40363830682F83BFEF8E3899B60524705ACAA1576BDA3D07968D8 |
4E4A1D177201625E14CA9155A1B024707DBCA3C8129165EA202984B612DBB3D4 |
8BF77A09052DD71F6E259C33C61EB834D46162D713F997CE1A8D45262995C755 |
4C48D96BC15B702F366D64208EB3C178208310EDA26717C3CBF813A61D3B9081 |
0D38A3B00688D016044F1256D5200ACA31BCA4F87C2F05AC6D40996833D0962B |
986DE9982F20904A211FD75B01E705FF1FED124264AD9B8E2B70DB33AA84FF49 |
D26E79D7398D3C56A259B53E56F038F390208CE062C2095EB8605ED50BA7D457 |
E8FA946DE4BC63D61A6F37A550395AC999BCE8F864D35B54C091E9D35038C7C5 |
9B1D8B5D75AB815A32EAF48F0AA02A5FD73B3CE09775E1FCCD563FB3FCD1DFFE |
BFB979A93AD91ECDDA3B0C2F98D8301265CD39515F3989C75BE32D9755CBB57A |
63A296423DE4F140FF331BD747A199C4C272EDFFB59A1BB3D69817DF314D5DE8 |
E0928B5BB193D5CE1A51B6FDD15A14E2B71358EE223B63DD2303AE5DDD279D49 |
6EEA48E24DBABF34D44E3FFDF40B2EB880679C871A46EDD9679FCD5019A359C4 |
1BCA5666F08C784CC2E099E6F8D0873EF4DC73CFE1F8B300921A571206EFBCE5 |
2D6F217443DA87A3E26955249C66315B21EDB7DF7EF086995BC1DD77DF7DF707 |
1F7C104F4A7C956AF670350C86A9B10E2BA1AEE84C4DB472BAD6EBE2397105DA |
48A94D1FBA08865E50BAD0AF1D4286BCB702966DE88C271D107A1DB14E1DC63F |
31EFCDA4117339FC98CC7C9251E051F190CA37842B13F1DBF668C1508DCEE517 |
A71D65D3ECF59DD33DE0D93F6C1B373177AB263391A919B72E0B6BB4D9BF4102 |
CEC2A928820394AC238F2CD902613BEA0F832F9E7AEAA9975F7EB95A86C16DE5 |
9595B2B51D7E5CC1FEDDAB2E5379595738435141E340DF9D7FDA65975D9E7DF6 |
59869866F48099F78588C7419218E5E191EEA7CAE4BE22AA50088BBFCAF54D1B |
82BCC40CE98B2C93972505AB78363AE992A9FEB46D2C4FD0046BF9454BFEFA5F |
7A7661B67171A89FB860CCA1818F1F8E3BEEB86F7FFBDB307CBB9CA4686A074C |
5718D78A6E31522D189422FF38D73C088CC4F04559496DCAC22A425A287D48D0 |
C3672464894F6DB3A18CA5735A20716EB8E106C50C4487343D048D4BC1F220CC |
F388238EB8F5D65B097EE41EC66BFBEDB7C7B4F03A77DD75D7BEFBEECB00234E |
8425B9743D42D0F2AE04AD676A86F963853AB40FF101086E6C06F6CEA2358919 |
8083F2B5AF7D4D12DC26BFC2390D4EA783CD1A0DCDF128E8ADB7DA2234DC0D61 |
5A58540CD6B69B13D994F23FCAF776D13947D85A8DBF14A5FA7C6400D2410117 |
349645143A7C0C7E082C9BA43077DA8141DAB340C74D974EB6572F7BFAC517FF |
3CDFB91DE6CE9FDC303AD1AEF78534617F94CC1D1A6C66EDF5631B1B99ABC511 |
656EB5BFF2EA78BD7F287563ADB8E556A7E50DADF65AD786FB35EEA200667550 |
C04DD7DD50481825C5EDA3A24BAC8099941E78936E80FC4B7ED222A8791EC516 |
E002549E3A88CE34AB7E25BDE980CAC58C0B12755B36A9B129AC4D2F8E1FB0B4 |
13AE68A9293148AB1D46212CD42F7FF9CBDC5AD8276AC8AB5BD09BA27FAC2A15 |
3AC7B82F36A1D89C48CB0A3703978D78B0CF3BEFBCF3CF3F9F66059EE11DEF78 |
C7B265CBD45F8851389164590F98F234289B0E6B07C3059B10A4D9CC82924746 |
C62071402196D2B4BD0AECAC9133992612EE4BE18537D5EA846E19DE3FE8A083 |
EEB8E37691034C4CD4B7DD76E9F2E52B535F4E9E4913B829B9E79E9CB4D365FD |
2C202CF87024A592EBC05003C949745FDB1983BFE203F818610558483C884D7E |
DB5E52949E4C8AE091990E11389E0DA599D1E7A6E7B4D0CC923BC89170F733AD |
58840A7AF61BE618B8ABD4F2DA150E0DEE32195E320BBA9C15AD9D38FD391836 |
AB6048137B1457C6C110705780FCD8F0DDC4BD1BA7CB037EF7BBDFFDA73FFD29 |
35CDAA33D3B3212A4ACB141EC083B31C40412A3602619C7FC672EAD7F3E256C1 |
3962699FFA660AB7C9983C1691191F3EB200C36E6ADC1ED3821F606EC3B2C62A |
3059639D0C61C7A8B4F008DB6EBBED134F3C816F7DE6339FF9FEF7BF8F27C2C4 |
2ABA8EB5236C421EAD0B8824A5C36505D2B3C405B7D9661B6C244C14EEFB777F |
F777BFFFFDEF49A12AB2E52E55A724A84E193BC7C996C205B128966C873069A5 |
FF5557360B084BA4D0023D598E4C9E0E85D6F0F8DC6024DF16C39D2BEA8C65E4 |
118E40C5EFEFE692CEDE8B5AD55A5AAB55B7DC62F1FCE1B9C3C3435E67346123 |
B6A2C07D319937AD2145F5C08CBE05722ADD9BBA64FABC111343A54B055CCC70 |
E6A2B24058506705082B6EE4CDC57D7397FDD76F4AEBEB8B926ADC9ECC42CBA3 |
52EE962E580831BD76C308BE53AB9661224CB6B3B969350F53DA2AB9D7C6EA43 |
03E9409EB4C6EAEB92D2DA76EB6597BF9CB8F5793C19F28D9E702BABEB206BA8 |
9C344B92C3BFAA1780548352ADB47D25FFA553B8816D7843C81E8856283CD623 |
91DF0DDB4685E9022D33B443660B22FB98C16170D4C25D459245C18B6160A7C1 |
26BBE9A69BA05C1F7FFC718E1F03804827829AC014DBF507A3122D0C85240991 |
70FDFDF7DFFF5BDFFA1647CBF40763C99FFAD4A7FEEBBFFE8B24719DD3A2448E |
2D8A90955154BF95241A66E4F0D324321AE658BC9BA5330A261AADAEE84E2305 |
9CBB8652F1AE284F522E6A7A619F64045E34DE69BF50D7E2F9607EE1881D74D0 |
01B7DD761BB96008A836F031370BC1888D3CF77AA7EBF3AC4B8B8A8E8A7A046A |
0EAE93F2D0C45ECA0A13CD322426710A0C399086495078597CAE3050A865092F |
E2D888F8EDA28BB3997EC96EC5A26761D924FA1A2A0A9EB40DC5C844604E9A44 |
6B168CEDA62626206D710551B289B5EA924B2EF9C217BEC02683342DA166E04C |
BB02C46F8F7DD2BB013BCB5198996630403C6E2CF4C20E87ED79D145175960B9 |
E44857102C2AE0516A31A418F8EB7C5130893A4A33C369EFEA47A2CA78678AD0 |
78003FF7B9CFDD73CF3DB429C9E4870F70F6D48842C5BE2234B0CC1E24E27085 |
DF80CF10BDA9FE510C94610BE19A2AB760EC9D1042CE39779A62DA0AF52BF0D8 |
6BFFB0870C0F88F60C2D60FC0FD71306934094AE080BD10D550CDC199FD2AA2B |
FA3494AA84F2EDB1C71E3FFDE94F1913528D293977F1573834DFFEF6B7C510C2 |
FF15E86685BDF47781E98D5C1EA49F0FF2795AA8722559306FFE565B2C86C55C |
AD961BF58946A31EFB3C6932D69A6C172FFABB34762D87306D74FA30491EBB99 |
B1268ACD8412A62204DDF6A680E776761D43A49D963CC37352290D35D33FFDE4 |
77BB560792496FD324916B446E6EE6E694FAB184D8E5A56A69647C749DF3DC1F |
0BCA037913CF128DB6EB1B5C36AF9C2E2CF7D74747D643BD3987F3B3063FC46E |
3C83F79D949252B3352EBA59656AEDBA2B9CCB2431F733D35B145334AC79B8A6 |
13266AE713B682853BF4D043991C11211D568D5720CC58613F825A58C54EFA7A |
EE3A58FC18068C7E31BEB910C8E1F8E590502928A74BDE246193758E92A2DF8F |
A8186DAD411C5868C4036301CE34FA698248027492342A4411D2813530B41CE9 |
7531A66A51DDFC3CEF34772EFCE311D8685B6E0937E2654F4F1AC36F0E9E9007 |
DD252E4F435FE7B08B63C70AB6460BE73CDB71871D9E7DEEE99060870022C7FA |
BA4AA554AF379D074F790855A55C1B1BC378FC353B7F0AD0AA4AA5DC15F52A56 |
B4549C9F8CC8D8109DAAF716103D99ADE2821F47795C8A39955548363171A5ED |
A8583DFFCA1328D8F03BDFF9CE3FFEF18F94F849D1B65387F090430EB9FBEEBB |
F149BAB0B8B5A2A9338E939A9BE59B8C4F52613387CAFEC7E4D184AA3BE9A493 |
F282E994217DFC8CF17CE4231FF9CA57BED24B803A4368CCDB512B8B3715973A |
F7DC736FB8E106FA91B269B46764A2890E302AAA30256D1917110B9B6DB7278B |
3536EC83AEE82D48F3653A963B2A5A6E70F68881ECB2E1A46654B374DD75D741 |
461F75D451575C710593D0564668A52CAF722F054C6B89CDBBFEE11FFEE117BF |
F8054FB83586D431B79A9624B046C7421EDD850297B8C3C31B87AD22AF77B0BF |
C31EC02663F6D6BCBE787998C0B6BE35068FF1FCE10F7F80A8E220610341D8C5 |
817C83E654A35E4FE250BE3539514A217F9BB5AAC785B6F276ADAF6F627C7CCE |
F0F0C8FAF5E510C8C187CBA532C58D2039B47E28496CA247F69FC86D18AE64FE |
4B78A5B8686B2D8679ED2569323C1D39D7C837EE8A0E2B679F7DF6C9279FCC35 |
B2A8852BAFBC128BABF6887951F4397B255E9776A41E5A38CF436FB6DA6A0B1C |
AE3871013DE7E325F5D60461BAC251D2160F1D0B5B59D1DE83D709659125A5E4 |
A4DBC2833767145951192E70A939D1AA0E0CBE34F2DAC09CA139E54A6B74D4FD |
F64908D63E4C38F46BE8DFC402E6268E48CB8BE05A9256E1CAE69D279ACCBD24 |
8583DB6665918BE1F778319764CDB61BCF1D44C3ABCEAD8EA235D88930151A4D |
4F489D67A13D728C81A6E552A3D9888B2E49828EC2AC8416C469F28CC7E1ECE0 |
D7CF7CE63338593CE95820AE238B62D511272A48E8D8362D2E3AF20A764A88BB |
CA35699F6DB9E596F813753356FCA31FFDE8030F3C80FDA0C49C802962AAB11E |
08578A395D22B3F6DC734FF8AF6A544FDD71EBADB71E78E0818A232A5D882BC0 |
685BB3668D3C63FA84BC2C6FA79887801D1D9C9D80E334D59D89D731374C5969 |
298E7133A6551819A3A01F1A1A683427B1E3CF3FFF2B5B2C81CC7A65EE30FC06 |
38D6B878EA41F351406CF942F24074323EFAB6DD767BF4B1478E3DF6E8AF7EF5 |
2ACFFC3EF217DCBC5AA9E2338D067449ADD9C2E975B059B98D588B8913484149 |
B3C04D83F97803AD4543950DD59322DCD17CA30AD802342C48D832AD88CE3E2B |
5A1C5A88A3B23EA490E49B58A777BDEB5DCB962DC39AD954992B2C09B691B123 |
D979E79DE1259C7FFEF9B38C13B7C0FF6C998019D6156243E060A38B9A34E9D7 |
5E1E30B71A632CDC06D61490A1C7E822B5AF0C527A66946E50F0575D75150C02 |
8D5094C56C96C28030FB32D15A24350403EC4A06BB10FA26A6D71556336990BB |
54AFE687B1191235C82951D11D6356C41C302FC0F4AA684FF2821987E2C30AF4 |
59E64D614FCB932A300E533CFBEDB7DFF7BFFFFD4EB902AE96862C57B3313830 |
C847C6A8EAB94F2D3A037BEC805C9A2DA59AF08320632A02D1346AC56D2132A5 |
926CFCBFFDDBBF7DE8A187B47BFD7297FD9F20C5A15969C460602ED8D13E9316 |
F2D01B466079FBD0CEA2458B5E5AFD22494ED449457E397E8617FEECB3CFE2F0 |
B2E32159ACB9B2964281DB95692692E0AA588B5A8D65A07C8ABC68DB408217A6 |
99F9033E03E10B614D91ED42848F3A9E98894D70D12C93A077BD5F56CEF0A6E5 |
C4FB6AB8CB669B2DA8F5B16CCC87B84727360867477F11C3F38FE91DB0A672F6 |
14BFDE09CE52ED528564C21234EDAD35805629732D17E7C9E09CB9CD766BA854 |
5EBF62D5F84BAF2E1AF77E6D258E2A599E78EBCDE77D93142EAC2F5381C35576 |
712949E1D4F821B55B0D28DACCD50354270A595EEF2A612F95A2B627CD8A37BA |
7CAD8B5F8CDC2B2E5A17C42436561A6C06BF93B34E104E9DEB14A4A422146D00 |
B628710624A7EBA2C1B254154C69E103D88D3FFDE94FB997F0C5AE5622B7DD76 |
DB01071CA0A42FD53F64086E848BE0F338590C0132C241DB9D4C8B71E857A856 |
E871D13110AF638F3DF6FAEBAF6F9B6E9E749918CAC2D6C53074A82D4D269F82 |
81134BE0A828DA74D5D309415327DB703C5EB81676B042D3EA5103D183215E73 |
CD35AE28F657E6D51F1E1CCB6A3A39D1AAD5FACBA5DAC8868D58AA3CC39A26EC |
C541D9D16A35E0CB6E1C1DC93C12AFB260C1BCB5AFBD3A591F87EAF5F661BB55 |
8394F775DF9DBAF5C54B168EACEF700833FA7FF0C107DF79E79D7878CA627B30 |
8A0855F8D589C2CDB19D8809E9BC2E054C9B4854B7222E605ED03A19EA0031DD |
4F92981632399ECAAE174FA3ADE0FEC67A1F76D861505ACCCFD98D325D34D826 |
ACAE70C729EE097CED14D417646156EF523A73BBCC787D6A507CF29BDFFCE6A1 |
871E8A0FE3A959EC44DE2BAA37852E39E0AEFE7D6C55D98563928D296036179D |
42939408A79E7AEA97BFFC65B97154907C047A96C25CCCE8FE6AAA79B61569B7 |
800E57848B6D6604973DEDB4D3CE3CF34CD6A462E45D517A0E691605CC2AA328 |
D46B29919F17CD8EF899F7BDEF7DBFFEF5AF93D034AC3931494D008FB3AFD637 |
3EE1F73C0E5133EA0478AC02F6FBB99DEDB8E38EFFFBBFFF2B1B88BA47B17D4C |
0BA9ED59538B71B2668307A70B15AFFE424C56F9FAC8FE012A48DCE5F1271EF7 |
8E4E9ECD9F377FEDBAD7FAE1B204E9B9CDB6DB52A162AE2EBFF4B2A8289AE076 |
A21DA3408B5E4A61B0AC53DB5B6870ABE7A8999473A1AB206FE3BDEF7DEF9FFE |
F427854C383F74C48F39E6989B6FBE19C7D312AD10DDC368B0C5875BA45BAF53 |
A67DD531AF3D38A8B664C9E68B172F9A333C1862305E868D4D6EB4991729609A |
7D364E43050C0FD4B2EC49747858B5B9BBD470336AF97873A596E55163627241 |
545AF7C853C32D3708151B4725EFC1FA58A3DFE4210D37DE68552010E2246A75 |
4C0D68DF8976733272ADDC4124B119441CE2D2A98B16C49EE7D22F5F1EAF6BB7 |
5ECEA186DD681CAD883DCA3BC586C7F456AB73063D06D3D34BC79BC45736B559 |
AA10677141124EA40B2D30D6BB538CF098085D2F1208F99182CE4030C2A98D42 |
4336611A544F2B14151D36DA820A3DE6A615CAE5975F7ECA29A7D0DA63648EA9 |
1937159B2C97F7820B2E8034B0CDBC597F1F05B261C1B06DC8D315A91CEB5F6D |
12506E2A779570F3F832A415EEAA8AC90B2FBCF08C33CEE0B00410977580C7F8 |
E10F7FB07CF9F289897A904A937DD539E393939552350A60A3D493947AB9E961 |
82BEDCA819CE249459DF5F46D6C2286BB6EB7DD53EA8E100641D0D6CA7AD6DB7 |
DD7664641D6604DF651C0C6EC1C6D18DEF7BEFFB7EFBDBDF4216847848D8946E |
2AD5BE53C364D2C8757600CE5A8FC3D5D303A627F7E10F7FF857BFFA155682B2 |
860A89A69FA89225E8BBF2C414B8C49AE207EE0C510849D6D8E551EB0C7C5E9D |
88A872661C2711AD0C29136823674B124D824C1884682ACDF52C393CA6246C87 |
5A5E96D40A78168A7BE6AD85D5B2A2362A3AFAF1A108A053EACE999824FD51C5 |
1E2931797AF12D061BE80CD11A63281B5F27B5C2A6153573C5F1D38A52F18094 |
28AE4FF8315C19682FA64559ADC4D2436683586C8A2FEEB0C30E4F3FFD34093E |
674765335C4C3D2DE52D8A5AEBF675B4380110A5D06F60627C9BA5DBAC58B962 |
687068E3C41835EE26B862904473E70C7FEC631FFBC94F7E8263883DB37AF56A |
9AE782717640B645FF0FB80838D49C679BF894FE13F92BBB17F0A6F8D6BBDFFD |
6E9C387CBED35DB152A6F8C37D1BF5FA702016F02D4E5FF10E286D4179C091A1 |
07C275FEF0873F60071E72C8217062E485B01F0E0BB82DDDAE2B7C146273A2A9 |
5CD65826FC401747EDAB7953826FA300FC161F0ECE080392A2A58C8B8E87DC60 |
B3339DD973DD112F7E1396E7CD9BBB70B3F9F3E60DF7F5559314176C857F9970 |
58B48C3915B61A588899BC950BD5616D8EB434A56783C680EBE7D091FDFDEB47 |
C75A13F5254975DDC3CFED54ED8F27C74A71024F378594756DEFD426317C1F88 |
E55AA9E21D5FE6D14B693BCFC69B8DB1A07A7126EBBEE4174E73540A69E3B979 |
E683D569021777A4D558EBF2F5CE4DC4EE8FB983C584757F69D52AFCB0D38E3B |
BEB872D5C8FA7571A9439825002677BE2B7C184C2C898358C72F743DF71BDE21 |
685F9C39F8136BC72D5D062F85FF197F2526F199679E91F1F49DEF7C076E318F |
12FE4A9432FEFAB5AF7DEDA8A38EC241BEEEBAEB0E3AE8203163E0EB8C417239 |
944CD48674A18FDFB265CB7876F008D83C947EE22A38E79C73E02371C3634372 |
A1E5D03AC3B71317CC5FF2B83A0AD8997EAEB2D0A9DB8F38E2885B6EB9855286 |
893A32E608EEC110993CFA0057D9807D05895A2B0FE04BA5B45A2EF7C5AE123A |
5A33E80D3B6C63E052E95B3FB2AE5E9F0869BF74DDC8BA8AE76DCE27EA101659 |
B994369AF5905DF671EC5AB54347CC2018542F15A1B672D05D051CB45C2BD0FE |
ADF0A64CD737A68055FFCAD34BC0943869B17BF0BC58C22E70D07458353D5A1B |
F8B5AC265D275C8E2936251BEE92B765961C30BF45C42089A824E8BB4A29A6F7 |
A5494C6FCB59C06554A58C161E7EF8E1575F7D35E106D897A3E1151942546738 |
BF1819A60D484361FAF5691A739CF83CAE80C3C3868604A051879D7EFAE9D75F |
7F3D2B195462AF98156E3D636B528E1F92F7431FFAD0EF7EF73B1C217A5AD0A3 |
8F3CF2081CC44F7CE21377DC71072D0641DE387B5CA69D77DEF989279ED00571 |
357C0BEFF388AAD877FA8BEBAE25A02DCB5FF133EEA5FEF61431DB068DCBEFC2 |
D6FCFCE73F7FEFBDF72E5FB1DC85C6383A9EE210AD4FF81A47223375478601C9 |
A84CE22DDE17337CFCF1C74358E4A6A7902B40C204982818C691935C9AA018CA |
C7CE898B5C1D531D8E007EA0370C01534E4B04FD896896113F32F0F1CA941EB0 |
E6CF3BEF3C350183A895E3AEA347BF84313D1A70F22D44CA8FAF5C7CF1C5F074 |
09BF504B44521AB86060115A4FAD8CB5FED18F7E245386179713F2FA51EE9DF0 |
21545D2986DE1D1A1A1C9E3B00B3ADAFBF12BCEAB64A8FB2A92F1501CB15F6B1 |
B13CB619C04D2A21D9C4CE61753084EF78A399D46A939157E18BE2D2F25F3DBA |
C4B92DB19A2E2EFB20731E6579DBE571EA8564B3DEAAA49EEFD2C33FF12758DB |
918313BC31CF5A9E2C2999F4AE89779A6158798035ACC6D80DC035CFF2B1660B |
F21767A31EB9DFE66ED1E69B2FDD7EBBC79F7C62E3BAF5BE77ED5A78C0D964CB |
C7D5A2A2CE8D9299134B5389F2939B932003B9A11FF8C0077EF9CB5F5E76D965 |
975E7A29F618C183B4B093A2B78DADEA113C1E7B8FA1C71B6FBC71BFFDF6C334 |
E24F14AA49686117855A23D2D889C99914AA2C9CA117A1BA47B1ED8A09007F3D |
F2C823A501F9B211235C9C37E575C896416081C5EA5B4DEC0C654D2704ED0C1E |
382A984B7142F060EC00837372F4D147C38EA09267CB1ACA4D6698F96B98E58D |
A1542EAD9606279BAD81EA20B46FA5348095F5454945FBEE466B3D8EFCC88691 |
6A151A6E62C992CDC7273CFD5EBDB571F3CD367FF5D557CE38E3F45BFEFD66B8 |
C81B366E983B3C3C39D10E5AD9BF966CBE046775C992254CF36CD2BEC6BB573C |
166E74240A37ECB0A8578E67E683C776491682CBA438912FB80B6C76767913D1 |
6897AD2A914D24AD0BDE2D74002C9BAF7EF5AB56015B9D2DFB91346410C4F7DD |
771F9F77C67132CA8111DAE48AFA191099450DC70791ADC7E5A050B0C8A6AE17 |
93AFFA80AD0DB37407DCD02A58A27E22A44285CBCCEDE1574A7CC68189EFC7A5 |
58B5A9F0B528F2A1097065FA91F81614C977BFFB5DA21F9DE9C13CA394D4DCB2 |
BEC586918996646A072A90306FD241580302DFC2DE666B6ACCEDB9E79E8BE3A0 |
BBCC82CA262DE2A38F3EAA6C8EEAC1584DC80BAA513CD91C312AAC9A820A5E76 |
34EA52C059D157D8EBC87A43B476B8207EC01E1375892641DBE984134EB8EAAA |
ABE8491089AA02E23C547533CCBEC962234771A897531D20A4432534283CF490 |
431212C9AD5BF737BBEDF6E8B26570D69987E6491734ECE31FFFF8FDF7DF4F48 |
3FB941BAE210AE48E4B38E4E36AE20145DBB910291511C62EBE89A5B0E1C26C5 |
B5E5683D0B67AA9E48B9E99BF2FA1570714ED3D03D302E5792FE81CAF0F0D0DC |
79438383FD596B53C9AF6098CEC7FC5B0A92B1776454F4069586EECA46C50599 |
496C1A24C7FEB0BBB452CE62DFF47A4E96AF7FFCC5CD23B76DEE93BE659CAA38 |
48759767F81704BDAF220E5230C370E25062ECB927EB7994D4E3A89E4575884A |
7CD745E534C64AC067EA875F9B3BD8CEEB031AAB0E0F18EABE529EBF78D16B23 |
EB376ED8E0D9B95AED6A529A687788626CB74ABD54328B853BF4D043AFB9E61A |
DA7F743421D6042D164CDD19702B360C7EC063E2EB2CE7DB71C71DD9BD8DF616 |
FE448A0F55F4AAE59D0A04C8CD40080B13BDF404A4D771C071175549E50531D1 |
17BFF8C5CB2FBF9CBA73FBEDB7C7E6E441204C87EB826BE233279D74120BDB04 |
CE557C858A831C2F2A26F2E697335CFCFC900B5612CD55AA1992217495A9BCE3 |
1DEF804F20D0075C84679F7D36E45D6A914B9B0DD852A5850B369F9C6CA54935 |
4D6A7996FA1AB9BC83F91A1ACE3DCD6C63120BB160E1BCD0DDC2572A0F0CFAEA |
94D0B1326B6730D6DA5B2CD962EDDA5793B8A85868B7FAFBFA47C747ABE56ABD |
51AF942BCE388EDABB34A09ACD4063EB9427CE5CD48B70A3A7E7C7E42E839398 |
16463FA863B0422CBE8E8AB639F9547ECDE294C64C1BD381A3534BED3223E883 |
3A125A017FC5C615FC8FAD26661C27B1C4181E3D0C3A40D273CA3E520733FC42 |
D160AB48675124DC8B0CF9F28460B7DD74D34D3EDD55049039ED44322BA14814 |
37DBD9D2F895CC553C80C6A047E105EB9563C0A1A5D32F435549A3C434F2231C |
4F3838199876325D11E621D4D6626DF4033D5D4E14D3A8D48B1DC29A4076A84A |
03C6A5F3823C6496DCF929A79C0271830B6293600B1D76D861679D7516E7198A |
196F726F601E68CA501058E04567F0F126B4BCD8FB4AC1411195982D99509730 |
ADBEDC6EB9E0CE14FBF1A188F6E430B8A53D745264701D60858F734C4E4C4007 |
C3F7653A302EA855A178EC16B212438D8D9DE9788309F9CFFFFCCF8F7EF4A384 |
A16187C3D6111D95B6A5A223386ED86F04DE0BCE6A69A2BB5C0D95A7F3529C52 |
583FB4F62804BB2A9A5CEF57973D173C9852E25DCC2877D8EDF9E0506DB3453E |
169D16CC55AE60E128707FCA85E5A40DA19250858598CEF4750B9D959BD17059 |
258B4AEDB89C472FAF5C3ED876F3EA6ECB5A6DB03E89A1A485CEF6DE2DD47CDB |
AF63BBD54E5D043FD8078A33E8DAA854AD8C4D4E36F199249E6CBB3A43D6216A |
DDDFCE6A49524BE09ABBF1566324CFB06C93B17B3CEADBD81EAF87BEC42E4DF0 |
3C91477B45D0E8968438330464DC90D8F6E79F7F3EAD220813929D1157C427A5 |
258A79C029C3D9C7B6E10EE1FED159D051E591270D1F1614DA44FD0AA9B0E04F |
C3506692250A5DC818FC93C14AEC0BE98F946366B11C81965C14726909CC68F7 |
03636FC28EB05C48CB2D0B92D298C96972DAAB34237205B111850815B0FA92C6 |
A69185DA99C1F23DE69863DA455707678C88607242290E8C8ED5ABA5219727FD |
7D73F07FE42A9DEC7EDE215D7ADF07FF06AEC633CF3C35340796CBD8C4E458BD |
5D5F347F61A339064D8C2787567E7EC5739B2D58B07EE42F0DAFCF7DC32ED6CC |
61784270E4536B03ECABD8F1B0395BA12F66F003B2F1D98F56D7CB260654F960 |
C5B176866A27E2A99DB96422B9A2B49F601086C5661C09B729AFCFFD44E5374B |
DF6281B620F1A11A051A74C127905126520535AFD61DB96F6699073ACA4A3653 |
23AA1EA95D747AE12DE86BC281C33B0CF0CA3855C053134501440D042DB562C5 |
0A3CECE1871FFECD6F7E93E8153C02C91AD9D68258E5071E78007E150B4E98BC |
ECA28AB43F8BAC477D4BF8EC843E915A84C4939C1C352639EFBCF34E3EF9649C |
349C02461471DA3FFFF9CFC38FD45DE2DECD21E853BAC21AB36ADE12ACDA3FE1 |
70E188D177E40C7BB86F29B50A185E860B7F82A0573F73677C05A566DCD4C88A |
95892AC7545B0E6B32528A95AB6157C3F80E810A2F4130605627B75A55F81961 |
FC6991C04E934D8A5F9B412D5D79713AE834F1E9045B3D6DF17436DE4E036EFF |
FDF7BFEFBEFB20F52C804EA460B699152D89AC600FC694E25CECB2CB2E0F3EF8 |
A09B4A2DA0079F850FA097028EA34A5884ACD19CC030AB35B768F3B90B16CC9B |
333864AB4B3A10687FBE3AA5472ED83D6CE12A2A3A57B0460B264DADA6F8B396 |
69BC1A27A3CDE42F639B570637BEF8D270EE16BBB4DFB5FA2AA9B793DA218E0D |
3BCF4593D82C9E6AD2353378B76EB052C5B8C74240A556AD4EC04382F08F92F1 |
3C6B0600420051BBB95902AD558D53A8F3F1AC3DE2BC029E88A2E7D2FE46E25E |
9B1C9DF4BC5F7E12AA956AD4CED26A457DA824816536C942A2002FA6A243D32B |
2E0B1CF9DB6EBB6D8F3DF6F8D18F7E2428BE20C44CF410E642F62BDE0E328185 |
0C7168822E9CAC68D154E2085D861FB0F7441DA880333528AB54549DA84649CA |
D2E238F32E96DED9156D758882943CEC32EC88F062DBEFD89059756C46181DE4 |
4124452ACF405C34EB880B6AB4D34E3BEDB2CB2E834C61B699C1589A00838373 |
EA93CDD1311CB374AB25DBC0017BE9A597E70E6C0D9F7864FD86A1A17971546E |
B7A0DD9B3002B67ED3DCC03C370937D777B24CBCB93D30D80F0F75CD2BAB976C |
BEE4A59757D5AAE54A1506D16B73E60C8F8DB4DAAE5D492A4C5FC1E41A9B189B |
3F77FEC8FAB100B528B262A50EBF47E2DB23D61BCDC966B3113CE016D3C0A4C6 |
8CA6D6742A40E7A6B21C33E74A7F4E53C6DD43CDAACA6E5B513EE3D1A5ABE1A6 |
42195D61DF59F3569FA7E45565AA943D858B1531449468A31097FFE637BFF9C0 |
030FFCD297BEA4BE1A5DE53494B0EAD2A5A6B37C47D615E7539DD8395A463EF8 |
26838D165E841FF6FED77DA020F1F3F8D8D8D26DB621858DFFEB64A7DF2DF31A |
96EF5EAC437C4CF148888F66F9F2E55D58569A1DB65174BB779306E13894CE11 |
BF922BAA9389BAD4E121C7533B3410D5B6A1F1470B83C313778FDD570AEC3B43 |
B22F191A17645ED375A4B8D248CDC1727E7CE5B8E38EBBE79E7B3060F621B7D5 |
4D6A0CD70E6D5BD876A9D73CE82B1C9ECC2F2D22A785C14006E2A827B8D968F5 |
CFB2CF25B634D58A2B0A42C5220B69FABCE06D15413F0315AEE85B47F81E3EF6 |
918F7CE4A1871E5ABB762DB71FEB956739774CE3B54DF33B9E6B5C8D71511B27 |
B4CDA1DDD408562F7062E448F3E911A3B0F6E3C4CD9D3B84A7DB728B85342B03 |
262B83538161F8D289A68FA8556B9510606870E7405C97CB7DB40B3BED878B87 |
A297DFE55C7AE33E6EC523F5F66075726C7CF39523C3F02FE2F61659DADF1796 |
B5458EB0B41D3BDCB2DE6A4D26B16F139C675EBFE25F12979318C27203DC13E7 |
53C5ADB6AFDA0C654B51E2E2E1B24769350240BA8E1FB2BC1102204FB978A5CB |
9A708DB312E46B3AE089A8CAADF644DBDBDCD0A06C73C9A2DEBC376320D515CD |
A6AECD2FDCB83D3E5C3236CE617C68C71D77FCD4A73E75E59557DA94B98E2115 |
AA52CE94D2B373FECFF8BE741FF33ECA08507CA949971ADBB86057D108880A2E |
F4AE8666CE809D37398B144FF834A901F524FA10BF89BB52FF4745279F229293 |
071EEF688BC54BC7C626DB2D4C41B6D9C245750F73ABBCFACA9F77D8E1CDD0BB |
D54ADF9A35AF7819DAD7DAB0717D9AD0AEF7171FAB8F95A21216769B6DB68667 |
BCF9E285AB5E5A7EF65967DEFCCD1B5E7CE9C5C1DA42EA399F2A188734CC0607 |
06474647FACA438557DA312DBD97802D946452C099473E771470146F6AA7984D |
A54814AB995D729972F65B94E66AAACCF082624A332E2423B46E9A02B636B5D5 |
E21C125514D5005B525BD14609D285B1223885E568D80779E0577345DD37FD2A |
D55932ECA17684F6FD2E9E04674C138C8A64F7A20D670C938FC048C0E09CA1F5 |
45931C48CA2659D530095907E0435CAB9B1A2DC4F5098860648978A87A484E30 |
3DFCBEF7BDEFE73FFFB9D0529141EFCF9EC3136A9DB60B66860A0067185A8D31 |
676A56E269C9640273F3E28B2F76C191255DA8568D9A8C0C38ECAC1217AD43F3 |
D02ED7CAEE19B750AF038F5BE3A9393CBE20DA186D535F175754FA33E3C0D9E3 |
44B95953095D804F359EB28D5F9C09D568F5F927C5BA66899470D3B2EA9DD3A8 |
8C1AB3B0D836909E789F05058A1BD94321E7C9CE0C8D7EA1B4A2025CCDC575BD |
5FBAAC947A5E74DF52B85BE03BF746147008EC7946A090356B4383F5F7FBE0D6 |
D2AD97D46ABE17AA8786E57EE78C8F8F7A83268BA915A298A1E9662110620BDA |
9210B09B272F6AB1FCFE89F378C3447BB06F726C74F10B1BA8809764C96025A1 |
E6F25A1D73986793D88D01E71C0542062AE05AE42A5E627A760628602C40333C |
6F1C7A2F4131575CD6CADAF5CC7FB719B900D4F270D697FA861E1BDF900F941B |
A38DE1FE39EBC637C2388A1BF5E1706CB121D52641D0DF59E4A1E4274D4CE1D2 |
5D61A76A1E2CEB915E74286DA457CB6437920D1EBCF11C7FAC2B4F01C1990ED9 |
EDA2EB22FFDAD557D085A00E71A35D7E5A0784658B225C114FE60DECC3F0C54B |
C8A4951B542EF5CF9FBF70DD5F4630F30BE66FBEFAC5358B162E86B7ED5A7D6C |
90B0F2E5954BE62F59F3DA9A3935AF151AF575EDBCDD57EDCBB3CEFC6E1C1FF5 |
DD0C63D7C826FBAB1598C2EDAC9E96A2B1F1918181FEB1F16862628CF35EADFA |
B2C27A23A06D735F5FD16EC12DAEA6D8362E8661879F5B6E030C4C7CC62B60BF |
739A54C0499A5B7349EBA40A1967E27822CF9B1EE8565E9D9C4D96D4A2D742BA |
A9EE0EFFA70FDD5502C8F140BF7EFCE31FBFE38E3B98C0207D04578A12D326C9 |
B82284A258C49365661192109F672F39FC4A20AE94BDCA4919B7A171675B5DC2 |
1DFFB77FFBB7BBEEBA8BC93C3C6D7F1F56670C16363B4057CA957AA38E9D1517 |
905A2F4CE1B0929CA1D9223336E5A9A771D8B0C1461DA6973BDB6A1FA630A923 |
B5A119D762EC6E16C58047BEFCF2CB8F39E6185E5C25BC30A2F1A62B08E05C00 |
E6E0FF4B2FBDF494534E2196925E940E1B6B5BF1DDFDF6DBEFE69B6FFEC77FFC |
C7BBEFBEDB15CD7AA9BF0595EA420674490ABBAFF857C539980CCE8AFA5717A2 |
6DF89948342E13FB0DE04F7BEFBDF70F7EF0039AD1D6989B3E0FDC75F4B7C42B |
49B14ECB1DFFE3E2785F46B925A3C51D493F3EE3F585341415B33ACCF0B9A8F8 |
71652C2514B042267A2237B530121B9843C575B6DF7EFB5FFFDAF7F3C6D1A0FD |
47BB84E1C45ECF4B674B55BF7C52F145C405FF86320256A05B293CB384CED300 |
EDF4FF3A89AA04DB209D3B3C3877EE1C883E4C260C456FD97BA6E876B3D1418A |
64B9A82A19704EDD54D8A62B2C0C2B19E4C9794ECCF5E3D99C5A7D7C62F10BEB |
E7B9248FDA5BE4D17039507A65AE09F5E9DCA4CB2723D7CCDD4860E4E8B8BFC5 |
3FFC3A542D07F7B7DDF0D02CDCC56B5F38DD31BEDE6C4E06C705FFDA514C05FC |
AC4B5F885A90D4E5B8D457AE8D34BD953CBFD6F7CABAD7708E4E3CF1C43C9008 |
D1CC657DE08CD32611CA3A1A6E03FA185D717E45286D68AAAB3B96264A1717A8 |
AD4B6ECFB24F667CDFC24D225347E40AC032AB95F8388459911B8BDE3693D392 |
0C76713BCBDAF530B285A72B0CBE706CF061717AD1A6C010E70C6DF6917FF8D8 |
CF7FFECBC8257F59B7E14DDBBD19175FF3D22B69D41746D338EC0B87DE78E38D |
F3E6CD5DB1FAF9BE725F3530EE552AB5C989063E59ABF537EA011DD36A8C4F8E |
86E69BCD286ED5B3F1729C0E0F0F4DB6DCBA0DEB3C482F2DC36D86ABD96C37FB |
AAD55A1526FCC66696D7D2814AA53F6B43019771B5A65BEBDDD1A080DBBEAFB4 |
A7DF0AC723B30691330AF5C0030FBCF5D65BD5FA4ACE84959836C7CC5F056679 |
FBDBDFFE8E77BCE3861B6EE8B5E1EC4CDA4065D7D6E10F140DBBEFBEFBEF7EF7 |
3BAE88DD0A3678AB26924B972E5DBD7AF509279C8093F0C10F7E109EA22045C4 |
D6F289449DAA0B8A3A982432B4ABC88F4848B3881138CEF7BFFFFD7FFCE31F19 |
528EDA1E4A363E315E2E95B9057D18A0516F476E60707074E3C65AC06D51C04D |
8C8FF7F5F743EFBEBC660DC13BFE9121DD20FA87BCE8677690ACC5AC58650715 |
4626287A441B42CDC4F8A41470AF83C40C3A691FF003750023603463312A961E |
12310E718F6F613054519681CB9954FA5BDFFAD6071F7C10530ADFF4E0830FFE |
C637BE1105BEEBE5CB978B39B62BD632A3F6B5E70B16060BB1D467F7BAEBAEC3 |
D8AEBFFE7A968653F78B669C31708C131A8E7C4F6E564390EA47FCB2DC6C5069 |
2FBFFCB2253190219F879AABE79E7B8E53C4B2E65E841579D1754A9E25DD5606 |
72E813731FDA923C6A4189577D975620671EEF10B22E6B4C5B77B6107188E2F2 |
1929AC740BC593784CA8C8ED83CC1EDCEE8C3C2AB7331A0D4E0704DE6D12C15A |
1ADC6CD1025824213DD9B92623AE747CDBA14561D8D50D1F122E5E5304748810 |
280B4E05EC5F799B0AB83951DF72CDE87C17070F389AEB059C8326ADE7ED0997 |
8F47793D72EDC4BDD674B014CA91ABE61DED5B76BE01D38272022F19C2B1E1E3 |
D6810C2B2860CF20DD685001FB5E4B2EAE471E13FB7C547A3E6FA6F30646FF32 |
3A6F70EE6BA3015257AE64694CDDC9B23189A959EAAA35BDCC2531231ECD5442 |
C2CB0AB322A94564FB8C061355606B6A17765975AFFF65E11DAACFCE8B026EAC |
2C2B9B391E322270870BCA804D8B09E9B82B064F37830256470BD7DB22C88BAA |
A6C4F45C0C6729D976E9F6CB57AE18A80DF7F7E1A04ED4AA83F57AB39C78F13D |
91E1B8E6D5249D6C8F2F98B3001728456C3B551E1B9D08594C389DFE3AEBD78D |
CC9B3FF7E5B52FCD1B1A5EBF61EDC2050BE001C3C12AF779B7A3DE9AD871FB1D |
9E7BFE9976DEFCFF3EF081DFFCE6378303F3A1805B795689BD02CE215B926A50 |
C0AFCEA880BD5E9F6661D9108728B661BA623C5D8DCCBACE2791C6128522C39A |
5110CC3EB13647981BDA17C2F078056A0E861CE08C6281A17431DAACE8F3E30C |
BE94D914F82B30C13EF7B9CF7DEF7BDFC305F97490F2F80A795EA09E21B5718B |
7DF6D9E79E7BEE21E06EC696882A92710639CFA782FAF46D412727162E58F8E7 |
B57FEEABF58D4D8E8B2E87995D4267375BB4E8539FFAD49D77DEB9616464EBA5 |
4B3D127E727278EEDCF57F59A7A9E0D1A2C65526982F457D2D32CEDA43B38422 |
DFF296B740AFD3EDC3B7180060B1D669A79D76C10517B070D6154486AEE8D744 |
CD21E148CB574DD07453757DA0D74559694DE6E921AC19BD615172528E30A0CD |
B5E0269106C2C0481F8F67513C9FA646AF6D468F995B8B73ABA8B2AD86C21662 |
4717FCFACFFFFCCFB7DF7E3B761ACC11CE361FB3D7F5713558242B57AE644B83 |
73CF3D1757BBE4924BD4788E162161A56CC8C12712D13757767A5A5D2F4A2A99 |
68B384165577949836795DAD57E92233AB42CF58CACFFDB5579290046D130D40 |
E780783FD897A50E0E0EE07F5FAE9972976605AAC67F1D3A98FB1CC289911ECB |
E4A5DD45CBD27AC0F5563B1A19CF866AED467DEB3F4F2C84C64FDB4B5AF16038 |
0D54C0E3B9479C36220F6EDEE0B9AA226CA6B29302F6439813F93AA5A6EF8153 |
B051C67E787D304D1A3E7818E03351C345132EC30E5B19147069FEE0C6D7360E |
5607E66FB564F9B3CF0E55AA1B26C7A54770BE28126D43AA5E52D4156A4909AF |
190F85B20CB6F055A7DE1983895B9426E6F4B0F32C865AAF114645CD6E6EBA6F |
D99C9DCEBEBA2832DCC216E3448AF025609D9345E84C0DA57C7C5DD73E615480 |
F488EA265D0E2D171F7698B368DD5F46E6CF5F1847A50F7FF8A3FF3F69EF0166 |
6B599E8DBE5F5B7DADE9BB6F606FAA084462073DFC62ACC9D16308A868C06305 |
454090A6C22FC5129A28CD02BF35B902C18209B12497F8A368148510942E65F7 |
993D75F5AF9FFBFDEEF91EDE5933B335E75F726D67D67CF52D4FBD9FFBF987DB |
6EDBB2F9C0E6427BB639B775D3D69999BD9A2733E8C176DFBB7752AF330B1B63 |
910608EF45295F2C94A1339DC546B0FA659ADD79276BD46579F084464BE5C213 |
4F3D8661D9BC71FDF69DCF960A9AE2A3D7F5A324F5ECB2E7962C05E7A080EB84 |
6A76C510F4F2FEC41C532292A8EDC8C03250493930CD62BF73CF7057EC63A9ED |
6382655E854B8B3E19A592492925461F45245B1F426E0AF68FF13A95E1D8CD13 |
A95106C0BAD42BA25FA19F7EFFFBDFF34FBCBE4472542E0D312CA4FE967C213B |
F3706D6DD9B2E515AF78C50F7EF003DCCB2D785CA0DC30AD66136691EE80343F |
FFBC238E78243B052F13F97EA95AED773AAEE34AFB263C3C2E059F12237CF6D9 |
6793F7945D4AB8F459599FE6843262900ADFD3F20F031B100D787EBAB3647E96 |
EC03B1E2342BC997042DC819A1AA602F7795BB8662F1109454CA3E9808FC8A7F |
B91EA4D66B79085A5A400EA4844D6895046FA5D602F32529068E3FB6D55FFCC5 |
5F7CE73BDF614095D301E3CCCC169B1FE92C24F90821F2254E905CA118E1E38F |
3FFEC73FFE31161BCC358C332CB31B6EB8E1231FF908FBAF0C10959BEB998BCD |
842648159995779A4AF2CE07F498C936CFA08E9DD3B55A06552A3116EC24287E |
8C487CDCD16C016E7EF027189AE4065119FDA45AA680550EB7540628FA4F54C0 |
6A69CB67994A27EB1D683BFA16D56A199395B5AF77F00D8141D9C111512361EE |
011372C5A914E0E4229F415E4FBC18B7568B216828E0FDA7BB6BE0CD3AD186C8 |
6A140BD9235951A2A3CA3DA5FFC534683F519708A78C42EB0685783A2B2DA650 |
CFA94EF1EAB60F9454BA57EC90A3FDE834D6CE74004F5AE15209C67A9BE56DB7 |
43A8F346A51E74FDD7BCF9AFB048468A255570199C301B7CED5BEE0D24DA39DD |
02C837BF4C97B55D126882BDACE59AD870035A7C1F6127F5A72960333CC3B54D |
5B9932840B69EBD6AD501C98D39B6FBEF98C33CE60C66A20DA6A1978BA45D3C3 |
A4705A6E4E9ABF72BB520D28A37DA16D150B05CD3A393C3C562AD6A62667F0E4 |
DDA0BFDFDAFDB74F6EAFB8958F7FE2A2CF7CE6333921940B1BABDBEBD0F6B432 |
38BB3645CBF80BFBE43461D746A1A6069C9D9D9BEBCCB9AA5329975ABDE611CF |
3BFC89271FA9372AA79EFAB7DFFAD6379ACD6EA26954313CF0ED35DDB4E7EA80 |
46A4DA2B82B0E00A0FA852910B4239F695AF7CE57DEF7B9F6E6F9237AB52CB62 |
C8E278717029B86944FF299B563E52DC25081189ACF2B27C4E618449F3D272B3 |
EC47E80E48AEC69238225759EA8EBF923F4470809C4122A8F1CC82D45746473F |
F2BC50ED89A5C518E973B13B3F935FCC6487E1A6FDF7DFF1ECB35EA984F505B1 |
51CF5DCC2E1F2FF3894B993A8129D71819A15CD65432D333A60893ACF0C5175F |
7CD555573129409B174F057528D5FA92EC315DC31537D28D37DE08FD21218A03 |
0F3C900509C447489C9F89407653217488916A2E75B30987C9B72CB97C12E0B1 |
34C26CF43D10E1302DFD014921BDF394017C1365CCE1227A88D7847097AC1031 |
5CFB285753794C85D38ACB526E92235A07AB723E19D8404F3DF5946058A89F36 |
6DDA74CA29A7C09DDD47D9151E9EE3C3725B3C1E0D410C354BC5F86AA405B5F3 |
6EAC248CE4DA66E592197D950FC71F4E39ECBC8F7EF4A39FFEF4A7D95C64B5F7 |
85916AB661A66BA28CA63D12DDC5AF7824F82B82BF356DA67D0C267F20AE30DB |
CB8B7FC8FE4F73E542AC55B34FA95450564C98241E27DBC2414E3853126BCC24 |
CF92364D1C8AE7A2296E319D6D4301477EF780BDFD0968083B5C1FA972D1D350 |
58DD704E236AE234E9C73A06D8D508D954B74ACC52BFAE4EE26ABDD20BE30432 |
D1D6F231CCDF066F3D9AA45A493B05AD8093A40D7F5A257D4B4D971B8F749BDD |
8286750D551A56555B3061AB69656920A14DC615B8B4F6AD80C5961225676AD9 |
81D8324B30C4A5361BAB2B235E22A0BC8124C29F9250586D7EC516140DCA82CC |
430F3DF4D1471FE54E37838562DAB2B12C04266940CC975AF4CE45EE881B91A6 |
4B1AD4AF6844B06928372DF69896DD1DDDD00D5306BB2D0A61D5AE2B781AA51D |
0531B1241025BAE9A9BDC8799DDAA566733E731F6D6D89A571BFAFD94C023FCD |
02E8E3AD66AF5E1B4E348F8B564BB633AD49FBA28E6ECF12741215D6AA30ABDB |
AE53CAF496065DE3EE054FDB01BA5632EDAF5886E4B8A94C9819DCA765008BE6 |
FCF3CF3FF7DC7359864B64935AA6AD65CB898C9039DEC782337F95C358AF2600 |
772BAFC7E5F1746844E34A923EC9BA77B1588D8D10840948E5194A096C905F97 |
ABC1E4A1148718B38919D9B66D1BF965ACBCA509F3AF3441E8B5F0439DA45843 |
557029F1B5CCED7627D6AFDF9B056F4B5EA1DFEB8D8C8ECECDCE8E64CCAE599C |
2D39E8D0439F7CEC31E8697C33C74E9CAEAE5CD444B4D92BB36B2FB51A03B9F4 |
C9F8B492A41C3081939CAA70B53A4E91ECDC1B5439DC36787D2C4E2803668531 |
9E6C1E4062933427585739970D3B1988034A4A07DCFACC33CF84AD80BBE082A4 |
1091A08818E66A5919925A8AB410D58557C67C41D55D70C105783CE29ED80043 |
10184C7F8AF74F31CD4CED6A0A122B9CD401B80B5EE184134EB8FDF6DB856480 |
4DB5A923A16BD9B8825B002F8507C0A6302B8C575BE75C36524187C7C635391A |
141D18E1D7BFFEF550A212A4319D03F166046B2AD737913878171667EFA31906 |
840F2B2F55AE2325642D03CE7585BFBEE10D6FF8CE77BE23B9C33F45012F4A15 |
D8FE8552260D168B5574977BC5D7C918068B2EDB7F5976C446F1C5A297ADC934 |
CF7FA7522E6C72BA89B7C4EF2904F4C8789574AE1DD50B50C0FB4FF6261C3BB1 |
8275914A169B1AA9A2ED96BC8CD421D222B9AFFB2CE0A2B19D5131788EE5660A |
78DA8F5262ACAC144227CA5F741406132EE2C20C72B0DC5B49D4B192C0524F25 |
D67CAD38D9ED8F0F8FCDCFCE459682191D355B817A2EA4B1221FCEF27522E24E |
19550C03872DF7924D1CBB5A29B547C3343108C8CC75F527CA67F94831885ADA |
B5C8CA3ADAC1DFA5CF4600016E271CFED75D771D762EE3C469DE60465EEAB9E7 |
5106690E8FA3AE5E4D901160E2E48D665FF18A57DC7DF7DDBA96B934D46CB7AB |
E57AA95809C3A4D969D7CB43AD5ECB56DEA6F59BA07A5BFDD6BAB175DCDEDA63 |
28D548A1899D3F353755B48BC71C73CCDD3FBF7B62689D7E429DADB01DBBDCA8 |
8F4001C30956B60E29C7495F5981E3E990491CFB7112F4FA81E77863636BF74C |
EDAD141AD0A449ACF992FA613708FA382555519206195022A6D53934545F5868 |
F1358B458D60CADCD60412E7ACB3CEBAF4D24B258526F140C91E99AC6103061A |
AB0B541EE662D88DE25EDC1DEA4E9ECECB4288AC5FBFFEBEFBEE236D9EF83D74 |
50B8924C394EBB72CD9A35D0527FFDD77FFDC31FFE50D03A8CA7894A603530BE |
3FF1C413FFE99FFE897E06BB6BE15C7A6FA2C8A5E0C4ECA5839F8F3AEAA8071E |
78404BC9D4CB83A584992CEE9F28C9B82DB9DF3C3BCD887E0A652FE88663E3C3 |
33D3F3D55AE5D39FBDF2AC33CEF02AE5356BD6ED7CFA59F8987194681E253F28 |
96CB4114BA6EA15176986E67360E6BF7E69B6F6609AC9377C015D129580C41F3 |
92DFF5652F7BD9F7BEF73D930E53E5F96C0E26C303F499844D93782E8C392E45 |
2544279865B8185BD1FD027C33A352524440DF97B72B65996FC265AC9C024CD4 |
00AB6005A06EC2EBA0BA30DA5295400F58189825F324E63F9341F82B16129B16 |
13212C716C955772F35199A9E27832A34184943066E0D9AC0C02CDB02D516959 |
9B5B5F72D2745857AC17A7E0C3335C74D145E79C738E746D910529D6245B5C08 |
505F4C43CEE96A829B7B41800E03DCD1E4E2E096B10D627D1399C11B89A761E5 |
BDE5F1BD964559A64624B5F8A022A657343E1885E2804BA729337728DA027A17 |
3B6E6474A8562BEB805F015350F00A8E1DB98234946224097D498F1DB1093C55 |
88FDC88E1D3C62D86939CDB97569B2B1E0C1742A2BABAEDC72AA3B48472A8CDC |
34F6ACD0B7D93A1027971CFDB4307971AF661C6A2BC072BA56DC828F9BAA82FE |
CF2A3B69D576AB96EDA556ACAC769ACEC7713B4D1E2F37A67BF38E5B6C45BEB2 |
2DAF5C0AFB7DDB7193209456831C13E9A12B194C13036582E03889A6AA53391F |
8B49763B90705DAE1DB9B4E8C01C7CF0C18F3DF698C9256719ACAB2AAF7C9124 |
B14878D3E932FBB9C98311E3CDBB30F069658430DCE9679C71C66DB7DD46BB93 |
A6304F842C85DCA6817BFAE9A77FFDEB5FC76ED57BCD74FCD5525F7B1FC68B98 |
B4CF752F09AC6C65FB63A36BDBED8EE71535205983E9DCD9D66CBD54D7FD8AA7 |
76179C02E551A22C7A6FF5BA8EA761F25EFAD2973EF2C8EF9F7D66D2730B199E |
1962DD2D97E020A653B3D323752BD634773D5D996685A9EA43AD2669383C34B2 |
676AAAE895FD302AD8956AB58E5374F4DB6FFA3EF4999F6A0C4194A581B12731 |
BEC54E67719FE3F19EFFFC23E1626653ABC16CD0C1183BE10294CEA9B274064C |
723354207A22C9A98F856FC5CA5B422AA3D645EAB83EF5A94F7DF2939F644893 |
0D61E08D5979C76FB30A456EC744353437069F05B21849562DF3EE69465DC9C3 |
245FC816374C154BF657B25F0C1E724B48B89524C95AE1A59EA42CA98065D56A |
551AF46C18194AFB2241CFB73D2BF15358FC1A8B575D6C54F0A5AFDC7ADA69A7 |
D9C96293F662A9E2F7FB4EA1184338E2FA892FF8263CB91892764E06641A22B2 |
2189742031A1CABC2BFC4C4B9C582467B153F5226B1DBE6150DD7C59527CB0EB |
30B5264E810570C30D37501FD330153E5B692E2B4547D848BDECC34585539889 |
900364EFE0002C7528CBFBEFBF5FD889E5BDA465162F421166B69894D7971005 |
D78CF02A9B224304D64060401C415A84CAE0E3A4E168656557A95110C1E7211D |
1BF58132A0E003F5E2E4D4A531074347E511B9814E8E03DD7F9935B47346CC7D |
8019712F312ECD6A4B3BA777B5F2E68F5C09A4EAE461495EE6CECC856491F8FC |
CCC29899201299C9402D57C0690EFCA102488D160BA22CCD986AAA017A857A03 |
6F50812C2A57F4962C958A2A5CC25829254A0CC0D089E763D040F4C33409E1CE |
7AD08249BFEB2DCCAF0DE37596AABA0EBE77B3960CA562C1762D3F09FA415CB0 |
32384286FA716C47FCC85692B80A0A587555DAB4520CBA97E05C55B655C9B6EA |
167672EAC75A376B2A4AA51E2A549B4127B1EC42A5DC0DB49117F9BE96D7E50A |
6526BEA1FFC045452C8BD48989C5AC72D01F0D2621C21306409A7D71DEA140D6 |
03B36366875D195B0136E282575D75D515575CC1800D6F447D2F2234353A9A8B |
7AC6913A4C6BE4F2B94A499F8995C0FA49AE22D94156CE434C80214C7C2F0FC8 |
9B8608BEC406875541C802AFB3881623C095B639AB4257DB00F2585C6702CEB4 |
5277E3864DF3F3CD56A7D3A80E373B9DB1A189998599CDEB0ED8B16747B558E5 |
BD717D064E774D4DEA66BD2AF15CAF1FF58A6E11B6BF6EB7E2D63192C542054E |
30847EB9D4C024B69A1D4C5C924201F7A3B813C5ED4469358CC13CF2C8E73FF0 |
C0838542090ABBE78745A7323434D2D33A20E9F53A7ED8D3F1154BD7C8A78B88 |
7AB5658B667BC731D9EE0DE804303428124A10348CEF9976898420CC30910C8E |
59B6247C2878DF534F3DF5D7BFFEF5A38F3ECA819544BB48525E416283AC9894 |
88872C1482C5F833F48D6E5F61187426E58AD9D0104B87746B04FA8A61416F46 |
BA6932ADA072FE2089D4E9D516F21D9923924851922A58C35EB49898490AF068 |
FB3DCBB51B5EA9DDC9DC3B572368165ADA0E8590EDB4741572CF0F38F8198561 |
A8295CD2404AE5A45253220D03112A919BB2434822C8D3C53DC22DA8111912E0 |
352568C1A4032F220D13190067C68E4068897F50045B79E119E1C712B4504BDB |
0030532B247103B1351A40C27DC17EA5B2E72961B17808FF86C27EE52B5F79C7 |
1D778821621AECA4E3A080635CF7CE3BEFE4680870544EA4D490F881E8690EC5 |
F28499C9404473417A10EDA35E5CFAA088FD273228DF6B4AD66A92B780E45C60 |
EEAC0C61AE56F950F2481D9A38EEFCABF455A4A32F53234A9752D8CCB2098C43 |
19AC29A295050F2F255BCB3DE08165A90CE48E99ED5386015D84130A3FA3E032 |
3D0C95DC6FF9F44C28BBE5A9D8928E800C8A17A23E3B01CCA0082E480A6B2A0A |
6A9DDE86486D84A7A5F93DF42E751DDD0658CF7556ED54750A79042B4DF2D670 |
D0BBAD58535FA54A136E34551ADA9907ACEC729A942DE8605CCEEAA631E6A3AD |
5B165ABF5069A1046F278CB236AFF078BAED8E6B3BF855B8BEC5D2BDECB2CBCE |
3AEB2C93C0400ACAF9009CA00F7CE003DFF8C637A433A6891E151A7CD1C132E3 |
120D1AC80F8A434CC222E2A5212AC9D610E50DBF251364E7ED77B985D38CE01D |
F34E3A209AE01298B4724A007E691A9466644E7852F12F7C713854424B22A790 |
BED032990E376EDC78C821873CF2C823FB489E9BED44240E86CFC8D0E8FC0246 |
CDAA551A69E274FADDB1E109BCCCEC427362449358CDB7E747EA238C97462A82 |
8A6558CFCE692069446CDE74F0CCF42C3657C12B63AE5DA7582AD6607FF7DA2D |
EDC8A67E10B6F05F9C7631E9AEAB3B90E891AA0C61F5B65A580AC5B1B1B55A0E |
F6E6B5028EB402B6B5C248323020B719552C0D6D3D495825975F7E29F5199785 |
5964C54992AD255A59A09226B8462C3B76A7A0FAC4A520E20780A9D40D6CEEA1 |
F28621D4FAECF038A07806265848F665FAE9D561E95050BEED6D6FBBFDF6DB31 |
C70C3B8BCD65BA230C0C62E9735D9254442D8548E4F8808C384DFF2F5954BD14 |
436E51A53176B056E18D6ABFDB0B026DC91633DB4E43973BEDBEEE66DF08FCA8 |
8F3F5989ED41A647A562096A586FB940EBB63409F8D66946FA4AE743A0AD03A9 |
382B6F172F5C60345D657FE280F5EBD793B59FD259DA4011CD64366FE0AEE344 |
D00AE63230E9DE042A2C2827899BD16EC01832B6CF835908C8C26295B722A728 |
9157108C121E92951B586F2C0DA224623530FDFB3407DF492A4BD6DBE1871FFE |
F0C30FB36FE075D75D47A0B26035F96A560E3F16A64311F10C2CCBF898C55DB2 |
F6B8D3F92B4D4086EF96D78B733BE3678C3054173980B805E4480A567A3F6C89 |
68625BCC615F51FE70ADDA461B318E6D9C138C4B208AAF0CB1B663C70EB31928 |
0D5919C0742910DDCA09B6326FB544F3880A78B9F63527C254C3664A7B29AC97 |
FF59C43C38BA5A49EFBB6EBBCFA7226A52681864C1988F97A9EA42A7DB6D6B4A |
675C396DC4EAC0D8D9A0DC71E56B9073D989B5EB9CE08F25CB2E7A2547B353EA |
D3630E54E60ADBAEDD8EB4076C6555461D8DC3D29CFB45ECEA3472B35A6158D0 |
BD345948D4824A7CDBFD65121202C235562EEAAA7A27F399485DC7E48B54C772 |
75D14913E8AE24F27130D63F5126C40DD0F4B7F3661252FA2F5E0AC9B6B07878 |
3B993E73FC65B848BF2CB12E953B3CE2587347C820D3653AF4D0431F7BEC314A |
F238E387C793937832C929E599B9130BDEB4B7049B828BE382471E79E47DF7DD |
878DF0F4D34F538B4B9465D14E676F452253366DDAB46DDBB67D70668AF128D9 |
506E4E3CCB6DFFF84F279FFC4E98551B36ECD76E61109D99F9B975E31BF088AC |
DF874C7C7AFBD3C3B561D8BC8F3EF17410F9AEA59B04C3CE7674FFAB686464EC |
CF8E7CC9E38F3F3E3B3B0FBD8B850DCBAF58A86A2FA1ABFDDDD4EA8751DB0F9A |
50C08E1B790567BE3539541F89A314431146292E582E57CBA56AC79FEBF7BB61 |
EC5B30E1EC9821682CD64AA5945731DA595C712DA5BC9D31C371D789D792E658 |
793194C4533137B0BDB4AD0A9B0DBCEE75AFFBE10F7FC89A3089C630BEC774BD |
985D4C49AA3C2F62D6802DF7B3053D2435A614D310FD7224C537F401FDE317BD |
E845BFFBDDEF887DA39FC70EB24CF291715ABC490910A9C176C2A4D2A4E3FE9C |
C4B11D2F893558BAE815366E5AFFE4638FEB0E54B12E6FB02DE56747619772A5 |
962B9566B7A37954A2B458F07A41A869B3C24C01A78B092171DA0664A232624D |
947A5FFBDAD7DEF5AE77E19B9B6FBE195A87D40D0C3CB0A121DE05DFE3AFCC59 |
0A0888A044AA224DCC5B2AC158F9D297BE2448633C89F41A634CCCCAB9B2B9AF |
2EB8E0824F7DEA53B457F03D2CFD8F7DEC63C2E874C20927DC76DB6DD246491E |
5B90F374D1240CC86D2FEA010AE394534EB9E5965B606150CA505D99DB50A223 |
24D0C0B978F8EDDBB7D3E849B2AE6AB43CB856998D369D5DE1C8E5225F913324 |
C909B1A5EC98F167F96679BDB8D0748BFC25CE806E9C988C5CA23865BFFDF683 |
7F008180172417BDA40357933F2A070A700789A9215848FA91FC06D377FCF1C7 |
DF75D75D149D029E9732303147E4FA828931A3EE52946FFA5BA2ADFF74054CE0 |
55765F0693F2097DEEF4E7563B4E823F2C0E80B9FE1B856AA7DF6B07FD58C5CA |
5123CADD9CB86B63774DDA2EDBD0822ECCE2B01F59DA9D758A56B16BF74552E9 |
0AA5481BD4B83814B0975A8E0635A76DA543D00E1C5F3CA695A449A6B23DB76F |
3BD3513C9B25FF1EB513ED625B163675A35617DC86E5E89D42554AA23A2A51D2 |
DA083381CABD5EA926C00E85D548D1E4E44D5920D37098205ACCB2311C70F4D1 |
473FF4D0436C88C45CC9C0BCD040A719CD76586CB480CD42720C1ECC81950095 |
C9128F07E323A92C1BCDD2797C033F8AB95BF2102779031B73193018CEA80FDE |
E2A0830E8227E6E4EDC2246BB3280D3816EC7C2E61679EBCDA0610F49A591B83 |
C5B2FF7EFB6FDBB623635371C647D74CCFCE0ED74718D1C1BBED9ADCE56AA7C8 |
C5286CDFB57D68783FBF0F1FAEEAB979A7C204CE4763746402DA888CFCF4E259 |
0518E9C28A24557E94B4836821497BB613382E0C3A3DAC7B76EFC5CB62EB15F4 |
D5F4864C6C8DC082DEB56C9C156AEA993C045DAF6B2AC45B6EF95FA79D761A06 |
1FAF93F92E7B85EE40CC25317BC5FB142884A9802DA3AE89213B3CF081071EC8 |
025913782C1FBE1457158F67BC02234FC6DD81BE5722206427D3F9938B33FE49 |
2E492987C71AE5F4BFE52D6FF9EE77BFCB8621C2E84B424A8D54CF0A8A52A341 |
AC098CCFFD7B799625D1D462C18D82A858D074DE9BD6AF7FF6D91D1A63E95956 |
565458AA78AD6E385CAFCCB5BA25CFED691309EB0D4F18158A6EDF8F60790571 |
466E9AAF7E6E36B3A47DF920705421A9CF3BEFBC3BEEB8037A8E2292B81E4692 |
210B285BC97CC9A411C7848A56F61B8E871A80F6BAE69A6BAEBCF24A8CA1D9F3 |
510AED78533B231D8372C5F5315C5093EF7DEF7BD9A551973B6745BAB0E577EF |
DE8DA1BBFDF6DBFFF66FFF76792D8DCA82DEEC89466DC14984F98B7B315F405F |
4130167C4E16440D8C06362F83587854F603E7AC510949851B1E8C202333D562 |
820C4CC4E94064EF2FFFF22F7FF0831F5C78E185181F8C1E6EC7C396D78B4B10 |
4519D0507AA86610D232E0B2D75F7F3DA940497465AD540969CA1FB141995FE7 |
AF5CB474E5252AAE32FBE6D8638FBDF7DE7B95E1D68BF832F33B7247F92B4D3A |
BA6BA6845DAE6E07F6A69577C01405BCDC6F564B9D5A93B065E03370302D8334 |
A38E847C8BED04FAB3945AC3915D53E9817077D3B0ACA2BA6355B0D352270ED2 |
50452D4BB765756C5580168C9320D29D07617DF7E2B094DA8E72A2141E70D2D7 |
A54A70829DC4B5D9402DB29DB6ADA6A2785E597063672DF83370A7A3AC7454C7 |
B275FA667E6E6478B1F05742AA42A12323C9871718942C72D8C424EEE0F7D8D1 |
279D745292F5EB843728800F19CC238E38E2E1871F66304F2078CB6D476A6BE9 |
3B6E4EB4097D302B30F1A7A38E3AEA8D6F7CE3D5575F8D2BC01426DA439AEE98 |
904349F0CB1DB96C881BE5F5A595AA32226A14DAB4862DA1EDA0ECE3A348C3C2 |
E51F0A320981525169D84EA3D66AB537ACDFB873D764BDDAC05B43FA958A950F |
7EF0C3B7DE7AEBECC22C0C3BD776A95AB48F02A74239D5CAF0F0D0DA24F2C2C0 |
2A15EB90099D7637087DDD2B5ADB608157801CD16ADEF24B7064538595D30AE3 |
66A23A590E18AE6FB35828CF35E787AA63FD1EDEB65129D7A025E75ABB333672 |
05051C27BA1E49C7A26DCD0F3737B750AB55FAFD20AB016DE77B35A1F720D296 |
533E0025954C8CB9EB4C3F7839B28653C2E8BF6871B91AB9B49823110C0B51A3 |
ABF97FD02258F458DF0F3EF8209193EC92CB1719CF59D15FF08217DC77DF7D74 |
C7A9122871483FC4076683614654B807F8CA92E110134D27961605D092605AC9 |
B15CCB0E82D8D66DC0B3761CA9AA963D4F2FADEAB63D738DB23DB176ED93CFEC |
3EF4E003A0F6DAA18E696B430103D5F5B156C32823553014304798CE872C4E19 |
0A9183D8B7B80E0EC33EC15667CD3BBEB9E9A69BCE3CF34C46776872329E4FE7 |
8F941AC439B325BB90D6D242C75CC0C1FDCC673E8341938E08A6ABC76FA0FBA1 |
7D19DDA2EDCF841307108741FB9E78E289B206C48FE182E1E6FFF33FFFF3279E |
78E23DEF790F9C0049FCD39F236719E7944D70B98424A0628E09CEFAE217BFF8 |
BEF7BD8F17617F37499472AEB1AEF046B8A6198533299165192BA3AAD2D4A902 |
9B12A4FDF27A71959766D2DBE0333091C1E7970EC45C8DC4E04899354DC37DF4 |
BD4E33AE6C46AD2973656AA449499AB7525FC4B92CE5D2123F9E650B74946569 |
C9C13C97ACA83250CB43D0E9328E08F35222A35753AB6C21A39676F192781B65 |
85998AE22AD571FBBEEE07E8690D986619C18C6952A98D5EA91C06E32A596BA9 |
F182E758B61F249D246C3BB8858E62553CDD6130862CC25EB3BDC88ACA709195 |
0D83B9ABE29E6E8CA40F9B87951C47816E41A86653856DE0DBAE536F745AB385 |
523909C24D1B363EBBED59AF50F0CAA54EBB093F9CCA5560DB981726F518DDE1 |
8E56B9774710005E04561734023B9A0C844944CFD1A566DCDB1C43B3ADEA0046 |
C44400D0BDE11E645A97B7E6CA97049698DAD263464C766584A3F1C0D8AD279F |
7CB2E4927309F91CF31DEFCB9E0252B42958512C6F1AA67AE5A89C094BC8C0EC |
7D308FE76A401A89C8A2B4B2800646094AB754ACCE379B1BD76F9E9B85E7BE08 |
269C5B98DBB87EE309279CF08D6F7C436FBCD27EB0CED3B858298F745A71E8BB |
13E39BC2401B63D56A19633533BBBBD99A29955DD85B73CD9975B5ADCA8AE1F8 |
C6693B4A5A71D2CE22229172DA610661D96FF3D6A7B63D6B296F7C684DAFE7F7 |
A3796A719C1E463D3FE84919D225977CE2AAABAE82DCC882B1DAE816BDC2789D |
ACFB24EFEDA372526841BE89916E2A60CEBA949C62A0F13344B3D9303C27FF5A |
2C73C405A5B11DA140A2FF06825DFC55EADCA5B2C5AC2213EC92D96A90420D53 |
46D209A816280F7A5DAC7CA5421A70FD071A79E2A118B1CB1F29FBCF565EA436 |
6D1CEFB4DA43D54A737E7EC3BAF553937BA092CB156FC7DEEEA15BD73EF3CCE4 |
E878ADDF0B665AC1BAF1DA820F93DA23AAA299C9CD6E0F7BC3F6E384AC2C1224 |
E4330CB862CAC0079572924B890289B32BE5311801CCF545175D2421DC3407C7 |
A99C5C93812C9264B11E89A0536E3076C83181182C1097D21DB2E170EE482B4F |
5780D791853420857105D8DABFFAD5AF0859C2AE86AD4DC5265868AA13B1A8B8 |
0225ED24321A0F004381BA8D8A50F2D6521C2C251618799A1D826FA0BEB79792 |
DF0992459C3F38BEA47691D1B056AA175746DD171715A7D5A42E5719B9187F65 |
46809696D9037B3510A8CA5B2C9BF6287E15F0202D152A695C070ED9934F3EB9 |
75EB563C1EBE918E581C1FAA6D662EF811B816ADA877BCE31D7FFFF77F6F62F7 |
D4520FD808112D49432E5FB1A25C8D8B2CCE205C915419C7642C5A499A072A1C |
979D3A4D305737E9E18C429468F96A6757B2B50C83441C556A8B6D6D52E970AA |
EC54535162093675C356AD59AB50DF291C97D0D69458F0891228E00A3C605D6B |
A47B1A279913BC2BCB07630EE0EE4D6A7C968A4AD5FADAB50BBBB661BE3DDBBD |
E0BCF3BE7BE79D4F6D7BA6D7EF2ACF2D248BADC018CB617F30ACE4534F3D1503 |
4819C87528B0792931A2A2D2BD1AF322580E148F3731FCF8123B65E7CE9D588D |
981D214B5F710AECBC6F20B90229578F3EFAE83FFCE10F2C3623713D751FC796 |
1BE4852F7CE16F7FFBDB3487E0C94A56B9E92920479597024A7D298D27263B4C |
64A82C69EE295D119EE1B92C3633A79820CB0143013CC1ACB3DC776DF59BFEEA |
CDDFFFE7EFAF9958373A32F6E8E38F978BD5C0CF7AD80D4DF4FA1DCD36EE306B |
05C15A8492EEF9A369E2AC5FBB65B8B151A5E585B96072CF7C46D301B5A46C37 |
84E9E6B889EB59E4C94AFA50186DAFA052AB37DFDC6539ED5225E9FBBA914EB3 |
B5C094E7AEC9DD439589FD366FF9FD638F14BDC40FBB9572A1D76F3A19BD6BA8 |
81BC56ADE1FECD09277DE31BFF8035B06662EDD4DE4988294C1F37A19833F2B2 |
2C0BC3AF975D76D925975CF2F297BFFC97BFFCA5D087F1B0238F3CF2A1871EA2 |
80C30733248873957332AF96D3DABC79337C9D5FFFFAD7CC474A85AE32E8D6CC |
558505FDC31FFE10129F29493357A1F21A27C9C941BA3DFBECB35C55E2F1D0A1 |
A12E7FEB5BDFFAE52F7FD9CEBA0F41AE410E4E4EEEA17E354CAEECCA76D1F6EC |
C8EF158A5EE087D8C96547950AAE6F29CD728BD1F4354EBA5C525E51AFCB7E2B |
2E95B4868BA27872B2FB9AD71CF3D39FFEC275556168786A6A7EFF2D9B1FFB83 |
6E085169949BCD1E4EE9FBA4517C5819A4C419467A71DC2A95ACE1571A9B5685 |
64DF059160E70D925967C5099572DE030E38003FBCE10D6F200504E191B8178D |
0F9A4D62600948D2AC35E43032888DC3603C3DF3CC33D41FDC1A1C6D5370701E |
05C6A5724C96983826E05C12B7E6A4ABCC65E4AF2609178997F94814168251E2 |
2B8B4EA279272E292FC55C1A1D476E73E2A7A47AC70CDC71254BD20BDB6DC57A |
71C9AA4A7244202DA47931E7D7CE5B2242834AF5D14D37DDA4CBD572E7551ABD |
51DEF17B92104010E3A55EFBDAD7DE73CF3D3429E86C6110DEFBDEF742EEB318 |
C684F098C89581DC213F7818F178F090FBEFBF3F8651588D643CF9545232BEBC |
1A4A2D0DE30FD837CB3FCBC3DA228B5466CC61A1E28E7865B1206D83BC569208 |
899354427548B15AF7BB1BEC42CD81A19FCC05DA97B5331C4721FBD7C90095A9 |
FED571955580A8D5ACD1319CE0B6154367B7E3CA64DC8570F1CBA5A7A6672636 |
AD9D9A9C3EEEB85761A869A648359A89A463512CA912F154842262DC288E0449 |
20010CB5945941B60C7F60824336A619AC3569E984792331CAB56D83BD79C081 |
21804BE5583CAE7CEC052C60953BE80CF45A793523E3344C03D356A04A66510F |
DB48A8A5E92AD1C4F4C7844CDE8C5DEB153E408568E734D37856E9E7C04D4B7B |
61C5704AF6D2D69A8935537BA7B35E205ACE8F8F69CA75DF8F182B4A1731F465 |
D729C1B6EB0713D06BE3239B2BE5B12870BB9D248ED4BAB59B34583CEC5A76E4 |
15D258BF69374EB454F5D27218FAA5B263397EAB33A9EC56B19CFA416B628DAE |
1BC12D7430B9581E1E1E7FF9CB5EF9B37B7EBE6B7A279C9120ECD4EA5EA5EAEE |
DABDB35CD65B2849A389F1B1E9E979589DE572A5D36D572A90808BEE91D9138D |
461C313256565EC25C291E468A68618E41109F72CA295FFBDAD7384AE79E7BEE |
6DB7DD068F96B1657ACCFB08E9E3AFD8E46C8CCA48B2590047D34C7ACCA93C29 |
A80CDF94CFC9B913DF5A0C70D9D8B24C1909A440A14CA4AB4435B0A28C106B7D |
6C627406FE77AA466B85D80F60B78F8D0D779B2D0FDF34EAD0BCDD1E8C2D6C3F |
77C3FAF5DBB76F6F36D5E84801B2E395AF3CEEDFFFFDDF61089787C7B6ED9AF9 |
F2976FF8F8C597F8511CC449B3D53AE9A4B7FDFD77EF3CECF0C3619CEA028691 |
E1858516CBE6131862DD6E054E6173C1815ECCDAC810404E5E43864FA5130BFD |
21FAA9429F49C4BFA08DE00F3DFDF4D35412694EFE971AADB64D2A22D3B8A67A |
63C4023A180B8F163DC3093987F9625F4BF1C66825F04B219DC089D85F583C52 |
5E8C5916ACC072054CC8719A37AE171DA6727E2EC6E82495F8A94F7DEA861B6E |
60645EF4A81468EDB7DF7EF8E1D5AF7EF58F7EF42381A799024E1965B5949EAC |
6B141764B57A71F12748C689E7840286158873B1CE31BF44774BB525DF9ABA8D |
6E34C58EC9F325CA4FDE977E3C874B308C1C1FD66B0A49169E9F7683D462328A |
E018CD30962B426E1CB16F60CDB05D121E5B948484B22594B50F2236D1A9ABC9 |
0173D2EDA50CE7F815EB99945E58302BDE48A2D6898ABD285D6B39C369BCD6F1 |
0A7158D1788CB46FEB7223BCBC975AAE16D13921A0D27D718A3A3BACA234F155 |
DCCF1A003F6379B06A77063DFC5A19AE4FCFEBBCE17063687A7686F69C408899 |
E6A0654FE5A4B2E802B532E10B666306E95BC0E52A8D81ADBC9052CACCD29CF8 |
D66CF387C3D89B8B02D64C46A83C4E2970DAE50A98D16C012ACBB9EF7AD7BBEE |
BAEB2EB2B8ABBC464860DB6A29B1124501F6172CC577BFFBDD3831D34183A904 |
73FF8A3CB70D1A2C468ED5E05799C8C0C638F6D863EFBEFB6ECC3A8B8B3928AB |
2DA04AA9DAED75D7AFDBE8F783D9F9F9EBAEFDC2D9E79C33D218996BCE95BC92 |
EDA830802070CBA5BAA5701DACA183317123431B3CB7E6F754123BF5FAD0C107 |
1FFA9FFFF99B76A75528C26BA946719FCCB4985C4717AFC5F080A3B833DFDCED |
87B396DD0F93EE61871DF8FB477F3F3A348C49DA35B9E70BD7DE78E5DF5DEBFB |
61BB19DE70E3B5679CF93E5BC7C5DB091CE05887F5533C889FD46A8D76BB5BD4 |
EC719A309D2C98345E582FCBE95706844A70B99271E4349C79E699D75E7BAD44 |
8FD967D7CAFB998BF9B20F056C624A053B2A768032A02E92D820165778E4694C |
898F45852AC92D8A51AE48E99C351014354C7877C5E78424C4458E3FFE7FFCE8 |
873FAC14ECF14623E876CA9EF7B727FCCD7DBFFCC5D38F3D592B798D4AB1DFD3 |
6DAF86471A41DFCF6A0F74739EC08F082AD65DAA6CB7D5E96E9BEB3CFFA0FD76 |
4DED2DD7EACFEE9AAA558B3B3BFEE8F8F8D4F474AA0159D576B7B318A0C3F440 |
35EA9CB25EC4EF7CC7DBFFE55FFE85D84B49CF889210F382AF6319458103F072 |
332E2474198C4A518830F623F97E293963BA4870F24C04C0A566F52D079CFFD2 |
3B1432350A203377C3199467607DAD6DB401353730F726AF430AB98F7FFCE35F |
F8C217B06889B3E3801C73CC31BFF9CD6F98BA86B038E18413E0EBB3AE495485 |
AC2B1CCFBC14CB7CCF38E38C7FFCC77F64C8E4FCF3CFBFF4D24B694172259B05 |
18A2FB97D78B13754273C4C434A81C7FBE8FE990426A5E4176905C849B912C40 |
049AF2EE22F5B853A874E9A74AB64F0A90947AAEDE412D4542A93CC7CC0A13C9 |
02103177FAE9A77FF5AB5F65E5182EBE79F3662274E405CDF6AC6A69FF25B9F5 |
6AD93DCB2830B38D06031CF672D6C8048F2486B8A96C28A6E8CCF5FAF0634328 |
BD21DB5E5328C0685A57AEC02D9DEC763C4BD7F8963227D8CAC3DFFDACEEC84D |
33AAE82CECACBBFF2AF5BB52B513F49B496C17BC524D1B4C97FECFCB3E73C567 |
FEE20DAF86A7281D7EAC9C2FC88C12B31796084FC11C71EDF1B195913D954A13 |
8613E87DD2AAB60D0E2CC9FBA8BC0538C9851283A26700D3B05C010FCC85D85B |
8C0F49ED9308104A5AAE6759FC381827620F8A7D40F34EF85ED44AB69DB9CCE4 |
984524FD40129BE621BC726C66D9390C10ADB6805C5B13F764DC0B56B55C8775 |
522E55774FED76B361D5D7CF38581C0B3ACFCB48B20EC67A68D4D7468113F8A9 |
6EA290B5A09F9B9FEA741730BCAE67753A2DC840C7CE6AF693BE265C2DEAA446 |
CF9F8D93B6E30519C0AAB366EDC4E4E4EE0C345BB52DE7A52F3DF6DFFFED2741 |
5A9A680C3B5E34B7B0C38F9AE3E3F5D9D92928065D9AD9872980C59ABA3AAF89 |
2B849913AC3346A41DE64C63343FFFF9CFC355C2B863E36164CF3AEBACEF7EF7 |
BBC4368BC68281FFD4534F115C3E40D5C49F07ECF7818F007F448372F548F093 |
56BCA4DCB81C29FD0776B844084DE098D911CC8C89A9BCA289D5B7C6A3AE1CE1 |
7075576F75CCCB5FF2ABFFF875A3E20E57CBFD66AB5A281E79D0965DDB9EEDCC |
F5466B6EBD5C8AFD5E92C6A552B1DBF6E1A6F22DE0E140EF7BAE46092C8471A9 |
52EE747BC36BD76CDB3915DACA0FD4F068652E726395CEC0F1D5CC2930C655B9 |
56AD946BD373F370D361665E74FE79FA8D6C45678BC3A2F21CBCE07EB91BB913 |
68ED327FC6FA2B7ACFC48008798DB09BD106E798437B45461FD634A781A49AA1 |
A460BC8466135D7029D116794109CEB20AFC2CE29BC6FE8B5FFCE2FBEEBB4F78 |
ACCCFD69261139B93C9117A7A36F65C5C4D0AF18222CD40B2FBCF0EAABAFA6F2 |
E063B0E101B730A3592A47F90A8F155F9CE320A15A0678F1573A948ED10512B7 |
A689A956AE174FCC78AC32E28A036028316D4D1256B321318605BFB219331D77 |
795A4E1C4795225B65187232CF3044611A0ACB55DD6A9251601CF4AEC4F5E7D5 |
0870950C1D51F7071F7CF0C30F3F2C17E115482EAD32625A79FDD56EFD4764B4 |
81E41275425B103FB0741E63482901E1D6ED77B4D51AC555CD87A5D664BAB648 |
82E8EC9BA2B2DD5C01074E46B59F684A9D4859BE867459B1B27FA97471C2D0E8 |
C8BC4E64D8C56269F386CDCF3CF5878DFB6F8433C6C21ED3AB23C51E660432FC |
F9CF7FFEBDF7DECBA2F6679E794626425C11E9152872493EB8322E75F9E5979F |
7BEEB9C4F1B1060F560E3949544EACB628979622F9FFA8072C7734D38222AE85 |
4346268256A0E875B37325B94BF7EEDD9B1AF4D7CB277160230F187C96B5BA67 |
26114B0A0B21345879D5A4D6FEFBEDFFECB6ED70295F71ECFFF5B37BEFAD5786 |
5ADD56AD5C0BC2BEA59C2CBB6E433EDB56A952A92B7590E7564B85E185392875 |
A75AA977BAAD30EA8D8EC10185EF5FC0CF5981F230FE343B3B57F4824CFD0441 |
D80B238DC3B2EC008E72B33DB36EDD9AD9D9E962A930393D39541D8527DD6A76 |
92B081BF2ABBAF5929C3D94E771EFAC00FB287CF9232FBEFB76572720A1387C7 |
8322BBE69A6BCE39E79C81221F13C72811E9030E38007F4AF2C69C2262A40F33 |
64BD9947544BC97E0715DB524A7DDA5F9202112E3A610551463EDF5E89C388F7 |
654619A6287C237C03A5056B5DCA51F00DA50975F3622FC84543C15BF1394B19 |
5AD9B355D15323B54AC5758356ABE83A33CD687D5DAD1F6E14146CA43EF6AFE3 |
66A425B12E12C8047A4C3104834CF754A8D626A716B61EB2E59E879EDE6F53BD |
50AD2D74BA937B17124B572505A92A948B3A6FA1D49FFDF90B8F7EC10B6FBDF5 |
7F3546469A5A7D6AAD502E159E78E20958A0785A080276081850AE226439EC82 |
1812176DF18D323D21DF987B52E269A698303110703A61E39B314931BFB2B477 |
44D5CB500A951957146E8AEF71161FF56FFEE66FE0D0AB0C94A48C10C8720F98 |
5286C96321F6137C161E00EB931802DCE2031FF8C057BEF215769580E4A28C50 |
46089A8B99341AA22FE9494BF9B8847679162E8527C7CF58485BB76E255B80B9 |
206524657D126F952E65A2975547108300DD996C5339CEC50CF0A6592D19AD16 |
D3DF55064C4C2D058E2923403280DD332396CB25A69DB3643337448DCE3DB265 |
0B24C62406C7CA69CE548680C368DC7FFFFD82D1E54A60753EA3296201FFD1F8 |
F3C001E25FD2F853B9E747DB112F889FC91C8EA1A63DDD6AF59CA2AB997122DF |
5656294A0F59BBA13B3D535591CEF52ABBA441CE96432108C7D7D1582F8C602F |
55DD24E9AA34B0756F86673D07A38FA34627D6CC4ECF28A8F372ADDFEBC62A32 |
25CF6261B1E103E04B2CF85DBB76C91A960881EC14DB686B2FA91F59E7DC95A6 |
AE91CD25F8184E2EE38E0CEF09D2909FD514F06A8A90F84D951B3AC213200B8F |
493A2C5A2650187FE6DB718A712401ADF20003CA740070B0F8BE038C4E82D8E4 |
1B56B4A475696BEF1B4430DC18C91272B8BAB57EDDC65D7BF68C8FACC96887EB |
7064B96471934E3BF0DCF2F0D0B8651D044DECDA8D76332D166A9A31A735B7B0 |
306739BA22A85EAF4101E385A142C6C7D7ECD93D552DEB6DD6EECCB75AF341D8 |
E9070B61D42A14E128EB2EA1B6A37B5742E2C3B59D999EEB04BDA1D27A658549 |
DA0BA23978C0A3A3553FD0DE2FD470E04328975EF98AE37EF293BBC984DE6A2D |
66CE49C728FE0106977ED5D4D414859D1484F178AC00E247F011D63ACA203B67 |
1556CBC878972B609123DC4584C261C45865A496E251455598400651F64C93E0 |
ACB56BD71E7EF8E177DF7DB7528B5E23F159244551465E4A2287BA72C3CA080A |
0C4C269BBAD43D5D70D96EFB876C5DDF999FB3FA3E5C95B1A1214883A14ACD0A |
C3EEEC8C15C68D7AB9E0664DDF624D3198F5D66D650C328BA89CC02A541AB5A9 |
D9D942A331DD6E3D31D95B33E1A58E5B2F8ECCCD2F74822071DC855EBF1BEBE8 |
CCD89A75381D82A05AAFF7DAADACE543028703DE1E0681429F996F9AD5925EE2 |
EE95B48D388E26B7BBD97957E5863C55355D67717CC577A1678C73B1D4A99604 |
C368E2C64DF426AE79C61967B0A5F140C5211E80502606DC84364FAD9203A666 |
827370E59557B229EFF6ED1AC8063D81C9A56746618723191F234D1857729AB7 |
7512275256204D7BBA922CD860769C0AC00C200B89A6446296D58B2FE1105DEE |
F0ADF8E50077BA0CB232EA4A0960C916615BB01AFC12B7C36A3FE9A493BEFAD5 |
AFE267229F9551C76FE6D74C81A8560A419BCDD5499EC368369F87B38079E70A |
CC2A29D632246319EC08842930B5618EC6BE4158A6AD209AC364AB15BCAECA69 |
9E843E3617024A373BD188E8B052AB571CE790CD074CEDDC6DB79ABA1F701C3B |
9A4132B6163778EA697F57FBBE5D2BEDA409846FA680959FDACAD50D94A07A6B |
F53AB6B35E45F5469C26144A625570B844DF086645DE94911BF14AB9410614B0 |
40B1AEBEFAEA0B2FBC50656963AC70AC07D629D04B619D1ED600FCE3AF7FFDEB |
BB77EF96343F0E300D1D33A46F2A60E1B01C38CC5C9F5235CA71A660C7A6BBF8 |
E28BDFF5AE777DE94B5FA2D06099B295734298EC55CBD5FC8ABF5A96D1AF63E0 |
416D833B57AADDD5EA390C9545B34786C73E7CC699975D71C5BA351BF64C4D95 |
BC92EB408B40412EB6FDD2E15FBB50ADD693E48028F08ADE581A57CAA5E1ACF4 |
A21527BE5750BD7EAB522906617766662FD41E64C7EEDD93D552EA7A7686EAEA |
164B769CF4A2A483C3C2085BC5EE76DBEDEE0274A9AEAB53B6CE3586F121876C |
7DF0A15F7BC5E8D477BDEDC69BAEC3338C8F8FC058692E7471D8E1CF3BE2F73A |
7084297183A09FF5CDAE12B9C3F5846DCC548795776065CB7AA20020FBA4D21C |
0F89618178621485DEAAA490499EB0DAC673F21657DC5734B5B8E1055DC996EF |
02E6E494735E046FC92538E06773E940111E77DC71BFFAD5AFF0CC4C3AE21B46 |
264D44A2C97468FA07D4F75E1CAF5F33DCEBB4D64F8C4DEE982AC1E42A394395 |
4AC149633F74C2B0645B233A13E5E83058AF9F71CDEB4ED4FD9E16FA8D8646BA |
2E2CF43E70D687BFF1AD6F3EB97B7EE3011347BFFCE5FFF5F8234FEFDA35BBD0 |
49421DF3EAA72A7654B13614286BBAD9C4738C4EAC9FCD304AE3E3631FFBD8C7 |
AEBAF2B3C2E849CF52E5C14C163398FD80397AACCC91A42F552FE151E6621654 |
8E6C0A110AA9D13C9C2E3536FFC9279FCC46BCB83EFE959EA0A2D518B365080B |
6B896A0C53F6E94F7FFAEFFEEEEFCC06F2825D37EBBF4D89CC78232D27BE14E5 |
084600EF2BF53F6C472324F59483B011A5052F3F54C9B4B0CD6E42B7DC72CB45 |
175D8427C7080B00B3987DCC560A5CF6D62AF5E2FC990E8468651A07E6EB48C8 |
876F8A87A4AD403F03F73AEBACB33EF7B9CF89A6C1434A387DE02331241A04D2 |
A99A1C87036997E5D3BD5C444A4092FA9E65E2CA2876E0C70C840E445C04E3A3 |
96064EF6AD80ED9CEF565C1D3BE76997B56A3EF040066A60D9AB3C14C1D04BBD |
58D41B2C4E2CAD7D17BB16AAECDF34D3C171564FBCD82F09E77A050E298D36C8 |
D8971DF3F29FFFEC5ED759529A6132A50B948F89039523FCA5BD15CD35060FD2 |
A525D7023034E355BC85B944250D4C62483B272EB473D24A738DADA8D796D3BD |
F17B42BAA4EB94DC8EF03D996EEE1A81679BB967C693CCFD6BDA76AB4DBDA556 |
094FA74B7BF890CF61F9643F371396965671925EFA3F2FBBF5D6AFEED8B1AB5C |
D268DEA2379275FC4D933463CE8C75C938766EA5FAFC6E3BA9963614DC51C7AE |
64A2B355AE7838727E7EBA562FC2A9DD3BBD07BB08026E6A726FADA20547ABD5 |
84B2C45F93B4EF076D1C9F69C7CAB61D4FD56BD5280E376ED8F4C81F1EB39433 |
D6180AC25EAB375D2ED9E58ADDEECC427FC303D69493B1AE7FAFD786A08CF1D2 |
41D82F978B94E010555BB66C2173EC5FFDD55FDD73CF3DB829EB3E31020CF731 |
DD2531678641B88C7805D9BDC2FFB26F6631330A2D6420BC38542FFEF4F297BF |
FCDFFEEDDFC8C124F13D331B646E72E9A2C33B52C552859B2EB5F867564E2CBA |
D85423B708F3D6DC8BDC78A5389D18AB763B9D6A117B25DEB27E83EAFB0B33D3 |
23C552E2878D4261AC5A5761BFB3B0502D15D7AD9DD8B16B27EB2C31DA7891F1 |
F109726F156A23BBF74E568687DB51E83BF6933BA7A07147D78CCEB7BBE3136B |
7B71FCC4333B5A89728BAE9F5AD813BD76DFA3C91C06A572D9B652AA34EC8737 |
BDE94DDFF9CE77705916D172C4A8CC187BA0D9C40932FBC88A84152F47F0D2E2 |
6DD0D0B68CBA64192802A127272785795138A5A52B19342EB3B38C583267C6C8 |
04E4F8134F3C814BE1CA871D76D8E38F3F6E565F7076560C41F3003A67787D2A |
48DEDAE4D4250F3359D24C3273113D8232357B65925B5BA486B8A47C7D9C4B45 |
8EBF7EF0831FFCE637BF49036279BD38038C643B11B949E72CCD29A84C5F99D4 |
6FCA804A304BC2C5094BF1BCF3CE3BFDF4D369F2724245F3116325FEF751471D |
F5BBDFFD0E6F87B3181BB09731F58B62131139A0833968DC35B0003EFAD18F32 |
9B6302E8ECBC971444137E1062F081EAC481D0F7400874F987D364FA85B6418F |
256F218067C93D3D0781CE3E2E7C9038AD60DB542B7BE767C7D6AD9DDE3BA9AB |
8D926C57B3BC184FE15A1A52E1DB9A7CD2CE60D1D8AB49AAD13A19262B59ECC4 |
6E25962A94601805C56A418516034E5457260F9444CBC59A1743843E2E93A95C |
BA62E6AABC9923F958E033ECDAB58BD92BCEB2EC5CD35BD87F7FDD5027C99B93 |
322A29EA56B47BFA2783B04C14946C64D9805C1542558B9580DD8D9FA58184B5 |
AC178E39AD66FC7879827FE50541B7CF0C3548225A8275CAC82A0DD5873520A2 |
EF8F0C8DCE6963DFF6EC62B61376E1181CD0EDF4F3E5E266DDE337EDBFE9905A |
7562666FB7DD0A2B651DD269B51792D4AFD7AB69D6ECA854F6B23490CE70C441 |
BBD7EB668D0543E8E66E0FA67DBDD787DB6113F798451A7BEF7FFFFB3F73ED67 |
FEFCF017355B33EDEECC426B8F1FCCDB6EC83AB128A2FC756D4B1B0541E8178B |
90683D4D69192DE67D857A973245B613239C54BD82AAA08A252DA29469C9A4CA |
2A9405611AD7045BD11EC4150E3EF860F67626728AF6A0D45952B69A10566941 |
43803EBF64104F588BC5AEB4F21A53562767FBD589E2A856ADB53A9A033C0803 |
DBB1748313DD984883E53CD70EE1DA5A104985340E474B3AB51B8741C5B527EA |
8DBAE3C236C6BB0D15E04AA4C54461037971E25AB1CB12F88C4C00FAD28653AB |
2B0E9D48B30DD8DBA766C7D68FC212DE3E3BDDB7ADC6C438FEBA7B72B21929EC |
423FD6B0CBD8F17A613CD3EEE04F766989E2547429D2B458289AD2D3CA3F541B |
4CE325199BDDA1871E7AEFBDF7323E217AD7AC3B22E851A8FCD9450A7BECED6F |
7F3B143CA36749DE1FCCEC2DAFF28A5E167F6305D2FC92123571D6891822D448 |
7495861CCECD917193E05ED205F0E1996A52B9D5CF0A4B2BC7634B418B10B0C8 |
477C7DCE3B4F119AADD52258CC2992AA22C9E8A56890D1BC5079A188D9F55619 |
590CCA5C6E07820CC4D4B3F2FA46FE49A88ECC0E1076DEE60B4742D742B1FDFE |
F7BF27FA5400FFB29BA492842333C03A27DCDAD4E27259E9F9B662545CE4AF28 |
33BA44D89BA44DC87BA76A7187CB6635EBBFE3E98242379F641F8A76B5F137ED |
0391D418B4638E39E617BFF8C5809EE6BA357DE534EF4E2D8A5908A4A83F18FB |
E5221940A548A1296B2CEDBCE39E989866D444192DC884BD47D86DD95C047F1A |
1B1BE3FA372B7FB0AE5EFDEA57FFEC673F636A83DB21C369F6D29C168D096012 |
A8897EA5D9CD19973032A7C3A4B7946540192ED4E24C0951148BCA14F7924547 |
B2A2A47D137701E35E428C014B94814F73A8ED9C0651F019CBD52D2DCEC5F25F |
832BED8F1486B3188EFEB568628EA64C9B7E8D54C395AFBFFEC60F7EE843A3C3 |
E3D0855188DB6059E82E3DB80B14B08E91AAD8D68D2A4B05EFCFD6AF3BA05C1C |
5D988BBA9DD073355E0383353A0EFF6F2608BB8EABFB1725C9620466B85E7C76 |
F733A3755C2AE9FBED7AA302831EE3D2E9B65841444538D4D0B12CCD23ED04BD |
7EB3DD9D245C4B135BEA714CB385D2CE3080161C343FE895CB1EEC06681D4EA7 |
20874DFA2A2E7AB1A4B882CDECACAC48496FA8A57978CE0D09AE850A9167D145 |
83997FF3CD37BFE0052FF8CFFFFC4F59FADC3052BFC14087CA303B827D37F1F1 |
03E937BE024BF8490029B679A9A00946600F57352B67BF522B371732F669DBCD |
546F80575D33363C33338F77A855BD35D562B7DD2ED86AA45E2F2451D2EED53D |
776268C4E9B53C6849CCA94A8A490AAB1A8A1A86B59B2960364A4A522BB69CD8 |
D2C50EFD24ED2511546F5470FA2A6D86413F7BE0050C9BE3B67A7E3F56FDD80A |
2DBB1FC55EA1D48CFD014B96E2DEB51DB592A748316DF62F93CA6949B753F5D2 |
58917A7F5A39F8190AFBC1071F240A494818D8C6915E20573E77A94477CDA626 |
040AD0DFE514489884220CBA192BF6E8A38F866540CA49116DE6871293AA4B9A |
21A606B7F0BEDD2929C7A295466CCB3E223104F8A89C2792DF0B6DAA30FE5846 |
DF11B552A8CDCEF90807549D0CA332F0A52653AE8817DAF7D2C695D9169A1AB4 |
4EE40104D7433F29CD4BBDC55B5A11FC48327D315C0656516AF4365619433514 |
89C0B3890E3BF5D453EFBAEB2E7C8F65B36EDDBA471E79848871EE538AE63F41 |
ED2E197F51C0A6B38E15F59297BCE43FFEE33F0855630023C989AC93A5DC4F2A |
8FA89108880876694D2D1C552AC34EABDC1265F04326828CE2347D04CC8FE5CD |
8090D9734C36148771C3860D700A0551214A8BFB8B4D11F02B8B94A4E8DCECA7 |
2B9C8C2AA7E630ABF0E9808A8BC92C89A0A5640989BF2115F65C48D2145C54BB |
E458696B26794B06FC55372C5F5ABD0253FE23D987A283D92EBA644C9A709F8A |
01972EA51917254238B3FCBBAA02C6750950A42620690306CEAC69618C11DF68 |
8D62EB8450DF0FCA45F8B26EA7E78F3446F570F889346311D3468F697AD0707D |
6DC6C2518802CFB117E9DA5FF492239F79E649E8CE62091E6A8F4D7270FDD9B9 |
1DEBC6D7EC9EDE393E3C92AAD02BD8BBA776564B3A468F81C64EE826DDF1DAF8 |
747B7ABF35FBE1F89E3F1BC659DB064DA616E6AA90A36C8F8D4E5C78E145975C |
72311470D6B06131872D3E16F35B42982291C934475A32D1CB8207BA05DCC992 |
29375335140A92B3E487E81289613265A8F24E2F429DCA064AE434E0B6A1ACA1 |
47AE71C54BC97B85F0687C7C1CD797C63EBCA9E44BE0EC562BD5F7BFFFFDD75E |
778D5E7C6902A3288BE468FFB25C2A56CA65BFD34EC26878A8562D57FEEFE38F |
7DF081FBA7F7ECA9178B35D7AE28CB8BD3B8DB9F287B85C4D2E50D49ECC10057 |
99F6B555C1769595587A48D238C54F2E74B06EBB522CEF5D98EBDA6961B8DEB3 |
D4EEB9D96E10962AE5DDBD7EB95AEBF861B136B473663E758B53BAE8C5694385 |
E76B5A191A378D072181E952621DB6E11429E0E65DE8A984ACAC8007FB53328B |
54818C3AE248D8E9F7DC730F0D174ABA37BFF9CD77DE79A799915279534EA6ED |
E978C901AC9165B69EA968E2F504148A99C283E1E02D5BB63CFDF4D3C4D4E05E |
9FFEF4A7AFB8E20A764D10933C6FE1A5D42ADCC26A5956421C4D8AEC7DD7A34B |
FAD6649E92C4845ACA0E4DC925C36E2AB064297D9868053CCC5BDFFAD63BEEB8 |
832433820C2786885B408C5A7ECCCA1395FBFA123FC7954935CCC61BF81E0613 |
163C8EE7AE7CFBDBDFFEFDEF7F9F7E1B0EE0389C7DF6D9D75E7BADA49FCDE7E7 |
63534CD1E9A16B6B0A62899D9884621C67A861DC17B61413816621D67F4B010F |
AC6A13DD29F106A9ACB59622BACDF8275351C2B2427A1FB2145C74D1455FFAD2 |
97C87682D7B9F8E28B2FBBEC327911A95FE7BA95E8BA949F5939F75C94374D67 |
94824EB630E0E2492EB9E4925B6FBDF5E4934FC698737207821FE67A96B73343 |
F762FC89D3CF53680A5B79B71EEA7BE109661C9B24869CCDE585701234E6F1C7 |
1D77DC6B5EF39AB3CE3A8B015D485DECDF0B2EB8E0F2CB2F8758E09E15D94251 |
BC75EB56AC317CF9F5AF7F1D26BE2444EC657DA0EDBC6D1D2FCE152529B3553D |
609A0C9FFCE427BFFCE52F63E831706C63275496F80652E99FFFF99FF528B876 |
16E0B50B6E5977D172CB3052ABD57ABF870DE3727432411FF1093A9D35A5E250 |
B938E6D9A396AAA489F695F553360AF3F3B37ED0763DCD4309E99DF5A50A36AC |
CD3A4FA9B0D369C789065E1D7CC8414F3FFD071DE6B4AC6657ABAEA1EAD0F070 |
832194A999A7324C4F3751902654B118743B0BAFD5E1A0D76B8D56BB89D9DFBC |
79FDCE5D3BE1BEB314878F2A168D2860B3DC9B03CA582566E8FAEBAFC70EC174 |
9E76DA69F8796063F0747CF39EF7BCE71FFEE11F309D1410101CC4AF4BA98C28 |
630A2CBC88C814CC05D9F5082F64B776CA0EE2BC92AC7707841A2514FD5DFCE9 |
94534EC1F4E1013077B82937B36660986F8E8F8D4FCF4C8F8C6A368672B594B5 |
23C9CAECA02AE617EC8CAFAEE4A89146E3E0430E0C6676CD4ECF3869E26296FB |
6AF34879DDF070777E7EADE76168E0FB9692B4A8AC8A63153CC773E04447996C |
CBBA372A1BDA37B25CECADAEB2FA49D249A38EAD7CC78213DC0BA3308EFAB56A |
B71FC48ED7EA079D386DF6F1280E747337E72B564B69B7C5D15F31C183F77DF1 |
8B5F0C6908D941892F240912F314FE748C2D0D523228618258548073F12B4C7E |
469829ADDEF18E77E0B28F3DF61893BB92E8A265CD083F814BB8F2D5575FFDA1 |
0F7DE8139FF804142A0E78F7BBDF7DFBEDB7C38A278E89810D338B2CD96B91EC |
19EEA14570BEF9A6A9D1377E35854A1BD18CF4AAD59D665AD2388BBC6C1C2B3A |
A903D68F39CE964175A28C26E76A299C4D98F584F5D3A440974D27AC0B58C9DB |
B76F678842F4A234B4E064F1CAD8084CCBA93C08C15185758BE371114A3D3A4F |
705BBFF7BDEF6154E59481E0330D0E0A74FC7BD45147FDE637BFE16220B0885A |
84749534AD24E2853FC1B723A5DD3EAA1EFE144D6CFE6A8E305BECA559C91665 |
F7F264B62453CC7307BA439A113521C5E3BF94F9182E1A8BD47C34FE2C03AA29 |
0818A2044C462A7AD29CA0AC084213C5E05F56751228233D0F78712934108169 |
2DC5AC5939BB0E771691861C1F01C9539CB270062AFFAAABAEC22E836376DE79 |
E7DD74D34D4C29AABCAF115F8D92939966582190E42A2F40B50D220776DA664A |
48C2A25C6C18288C21DD2A8C2A5685694CD806F50A6E44DA4189594A247CE50D |
09ED02CF80B6B9CA6BDBCDED4A85F4DAD7BEF6C73FFEB1CA3175CF3BECF98F3C |
FA58C1AD36EAF0275A9572ADD96D432F66FAA0D30BB3464E4A13C9F603E8DD52 |
C1192DB863565A0D032B8E123DE07654AB97FA7E2B0C7B43C3356CEA454BA7AF |
8760CFE4AECD9B362569F0B6B79D74C38DD7F3E1D9CB082382F7DDB479C3A38F |
3EAADDC7600F664D597E6A69B5AD07215BD8E3E318DF997A6DA8D56E4F8C8FF7 |
FA9DD7BFFE2FEEF8F6774AC5C5601DEB344C108129E5655710149066FC098C5A |
6832EAAC4D9B0978113144B642AC6FFC60C6A952831A82213E2E65E24DF0EFA5 |
975E0A092E5DA74C189E32F002B031CF39E71CF995F385DBE1187C0FA78A6D5C |
19AED18BAF58E9FBFD35136BA667F766A18B8CD5B25E85E459989BB72D552F17 |
6BC5928A42F8BF911F14FA2D0CE0DAB1EA48A96CF783F5438D896AAD3D3B5F58 |
68B9A956C01565D76C0BFE71BD5C2E16DCCEF48C06586A47557BC0D0A6D0C189 |
652FC4A92ABACD24DADBEFF66DCBAE94034C71B7D7AB963BBEDFF2C3726364D7 |
EC8253AD4D37DB6D3FEAE5A4EA94E302BB904D3BA096C4646691C040AE4BC2F5 |
3852E73B464799D2136925F89D818F502C31EA20123FCD5AA6E3A9B0E1B1D5E9 |
D4720A184F1354BCCABD10A1EDC587FC181924A225C0632B635AE629A420203A |
7A458FC1D48BA6ECA61C7CDDEB5EF7A31FFD48F0E1905692965EAEB059A605C3 |
E5C1071FC43A84D768E28906702B821292C0AF3C98008EC4CA611C828E382B29 |
21E320D720D118C9B4722A0F1C803184F079E8A1879CBC23160E60BB2AC292F1 |
6535FBC094649F44286CB613C6C571BABC2361EA2AF7E6715FFE89C39EE67556 |
E2A9884E627F495AE4D4FDF40565EA1984A43367E5F50803B8E8FF73EDABF260 |
2F79365887430743065998A4B8B525D2A3F22E3BE2AD4A593689DEB8A7685CAA |
CCA7C43293D4AFC8792C666904C41A717C4F481A330854C034953EFFF9CF9F7D |
F6D9C40332F5438A2E9C0521C6623C78749069F886DD51E9A3DB46153E63212A |
EFFD2A190DCC3234EB35D75C43863209F84B6A83F13F1C898BDF78E38D1FF9C8 |
47C82E47252D2EBB50A8F25C7224E09A9FFDEC675901C5665C69D6388E44D662 |
00B1BCC5A4A864A8808B7FA0E12693D35494B8E311471CF1C0030FE01BE2B725 |
ADB9AA074C1B47CCA571A8AB5ECF8CBF2923F1E064AD87424D97E47A4E258C93 |
35A31BB44F9CF9B57DBF07B3CCF5F0345196512F24F6B095965C7BB8E08CDBAA |
9E268524D64FD3EDB61B43B538E90761078B84D8E962A11CFA731A9C95EACDDC |
F7BBB39DE9934F78DB3DF7DCB3777A4F160977CB95A2D2C95188F17EABDF72ED |
4EC6E8D24BB51FAC15B06EA897EDB2A1212CB556A958260B87EBAA0D1BD74DEE |
99E182964A7F139C2C424A5C5B46EAA409CC00FEC22CE94973DE35D10D5C25D8 |
CC6CC3CCEB0B444B0E930C2EC69FE8682C3238D9DFFEF6B7310B2637108514D7 |
3455382372245260F0934816DE427B5A7E448FA4E7EB4C861FF8C32343F3737A |
5156CA3035BDCE5CEBF4F7FDBFDFB9FDB6F985EE960D13636EB8776ABE64AB75 |
43D58A4A2B892AA71636E5818D869D7565810D8209A8DA6EA5E0603E129D5126 |
B0328DB299F0531BC3EA17CB7D2B6D27E1421CB654D2B3750D626229BF5EDBB9 |
676F2F5298B09EA5AC52C52E1567E61666C34115BB18044BF71582962CA0B3B4 |
01ADA4C6E9254883642A3F6A5F8A1B6C3CAA67495B0A6E8EC92AB3F4501AFB30 |
CBC5B02763158C7FC21EC2C310A8C5F8AD647C697E617249AA40120361A520FC |
FECB5FFEF289279E285E88893B5BEE30899266A08CA683F840FB08415391D04E |
975E17723BC1B8AADC91E262E32BCB97A2AA939C5E5E4247184F8C065CFF73CF |
3D17F68AA0A625F068E73D7D7118F605438E4CB5703488AFE6F24E73B436BE61 |
2F4813FF22891BFCFCBCE73DEF91471E51B91535E0E250BECB9697E8B169BA49 |
1291AF2384FB129D66568806AE3858FF3F14F08A3A5819E159E9D5219978DA16 |
5CF3E652574A0DC82E7924167AF07472CEE0C30509AF114344E01223738C1B13 |
8BC4320A711BE4318422D78C870BF489BB46BC1A16D31325C7788670FF0940C9 |
EC4A209782BB8989BBE0820BBEFFFDEFC3CBA28424253BE12FF44A29B4E9DDD2 |
6CC253D1AB61D6499625C42F1639DE970D89B90285DF43195C2E621C8B8DC5C2 |
7AFE2C8D14B924041CC7E5C4B7C038C02279EAA9A7688E53C8D37A5B85586378 |
98C137E20C3FF4A10F7DEB5BDF22ED08B3688CD8D042D7ED2074C0D3ABD746A6 |
A7E75DA71C44F1706D1C7B737404B67CBBD569BA8E0DCD8ACDD8E968A4A855A8 |
B84E15DAD7B5465D7B043FDB165C40278ED2F98569F8BEF54669EFDEDDD0B56C |
40313A547874DBA3076D3870A1A9DBDAAC5BB7E6C9279F8C92C075740545B1E4 |
6172BBDDCEF4FC54BD023FA36BB9BD2485EAED6B7A352BCEFC27162061945D38 |
E87D1805FDAEE7398D46656676CEB117B3B0564EAD2E05E666964824A0540868 |
6FBEDFA7B4A5149031349D068CD581071EF8F4D34F4BB7794916F216B425A562 |
1297C597D4EE5810DCF64EDE108621200A23AA07CCCE3BDFF94EA1D4606047D2 |
390CE0B0828540472BA3A27BDE61CF7BF8510D37B51CE5F70378C00C44D74B05 |
BF171CBC79C3B6EDBBD60E55866A75BB35E95AAA562C542C5B75FA9EAFD6D60A |
EBC746EB6154482D0F4A3D0CA186BD2472313896D5A0A2D4EDAF7437343F517E |
62E187AE570861F63AE9828AE6A3A01D45A16E0C6D6FEBF60F7BDE61FFF5C413 |
E77DE292ABAEBFF175FFCF0937DD720B36FD4CB0B82D5385CB3E870E8DD315BA |
978B28A782140A78A9179436856A2989BFF8611C3D3AB5F8D317BFF8451C7CFE |
F9E74B88986B839B4A0224D896B8CBC73FFEF18B2FBE58C0CF02FE1274B45969 |
C360262F2B9D03E46118321598C90095D200E8C954ABF203DDB54B2EB9E4739F |
FB9CCED1649202DE2DC9655714F1E239A9DC2196849F5A0A8761AE9A6E19D692 |
B428E7B399F9022B67A237DD47B10CA862E9D299ECE5FC9805DCCA2879126397 |
1BEA6D6F7BDBBDF7DE8BA9C4405D71C515975F7E39A689E468ACEC4FF31E0CBA |
0D79E64B309829082FFE953F102949402F3B4A91085ADA75ABA5E4CFD2E9C19C |
917D941DFE773FDCCB69D61A8FEB4AE20AE9B2121A2A5406D213A3893D7D44AE |
0189F140C233F0C6EF45C7D0E25F5E554FB4844936679275338027992F3C362F |
C28010BB59E007F158E81DA639C3AB295D055EC7DDC175280D3C64851035695A |
18348028BA31B9B817BE240D9C986BD75E7BED79E79DC7F6A3A456A5FB2EAF49 |
958773F1FC69569EF7FAD7BFFE8E3BEEE072A53E66B2CF0C6132FB4BB35B19C9 |
32B57AB9F6735B6CC5894F0DDE3E9A1E0C854B69016F802FF986BA902C1B8A62 |
A11A06AA54ACA689D3A88F4CCFCE56CB550C66928661E4777A2D5B5923A3430B |
DD5EC1AB43FBAAB861A575E841D72DA589B571C301FFF5C8FD071EB0DF41076F |
F9AFFFBA7F7E6116B7C012E9B6A68686F4867FCB5FBFF90B377DA15228710314 |
4B2A4EA08D8A90873BA69E29DA5E3FE955BC8AB23B71E227690F0AD8CEDA16C7 |
711A47ECB9BB303C343AAFB7108485B566CD68ABBDD06EF505EC201CE25C6A03 |
A92F53885C7FFDF51FFEF0873101871F7EF8030F3CC075264B4AA24302B6246C |
4DD86BA97105E56FC2E52914485C65D6B062F3BFEE75AFFBE94F7F2AAC5B4CAB |
D0796236E24D6F7AD35D77DD05298073B128F18329C7A178B66DDB662B073BED |
ECB3CFFED8272ED249B8542B15CC20FDE08AE778296CEA78E36863ACD178FC99 |
1D5B2B6A78A85CB46C2F0EC74B9561C755ED6ED0EA6EAED78AB655551A9605BF |
12D2085BC452E990CAB4A56E7B6685A9F253AB877BA46A328A2BC30DBFE04EF5 |
DAB3A11F7A6E68A7DD7ED0F6BC8576BF13A9C69AE12776CED7C7EB4D3F9C6BF6 |
DB4E563C40E63CCB16DE92307E0E6D2EB24FD248E688A9DCFCA7F5CA78145EF9 |
2D6F79CB9D77DE49035C4C166112E5FCB2A72F15B9E4BD784D5AA25293C6EDC7 |
FD4970006519D53FBD4932CD3214411F0ECE196CF933CF3C139A5E6A66A4252D |
5F04070BB590190CB0F20A0D73CF9A4B94301C063F08B012D6C615F73B0EC313 |
42B5D021C09726DBC0003486917C221504B445D37039529A1F7C4FE638E67AD2 |
AC12DACA51C774FAE966A9CC808029032188256D560C0B5088FE8DE495393822 |
4C3917AC57219534DD1A4A6D3C2AE6081767D055E4A354313103CA318482FFE6 |
37BF8997653E9E3AC3EC7FCC0F69444DA6B3FF13BD2BA773AE71EB37BCE10D0F |
3FFC3076AE00686D83B84394716AB01E9A7A5A360501222A2B391194328EA11D |
CF9CA309BF97634E3AE9248C0383BA5C512C3FB196E1C6A5164008C5B85099AF |
648D38A3505C24B2540418C5A765CC9CA60F871DD60316D89E3D7B2457C8D522 |
380F0A5E29BB6243055E930637B71293414444B2BA015A0C9201736A8673181B |
C0EB40627045E15F3C8914B90DAC7093D7D68C0430DB8D31E122945E6D7A578A |
4D3190C59170071737A9E90413C1B1E6E5683A59196721EF68E1A64EB9546C14 |
BC32EC1E5C157A2E4E8276BF0935FD82171CF5B297BDE45BB7DF9E44F097CA2A |
A9D969C3B5873CB7E238C582E3763A1AB39EB9ADF19E49C84AAFD3EF8C34CA70 |
B37111585A85A2675B6CA9613B1EA627E8F5DB7005E33474B3808C8E3EF577BA |
1E663409A39E7E296B3107EC389ECA713ACC826095E075B66CC104EDFFDBDFFE |
96DE098698EB66C588900C97B5EC43E64E8CF8C1071F4CDE1C016111B6A68C92 |
95E38F3F1E3A60C5EB53E2637D24595B4D06E2586047765F0EBEF873BC359355 |
5400584F54D252DF06A981BF62C16925B47B57210B2231D4C16D16417A96BCA8 |
1F0E37EA69BFFFC5CF5F77C985E7CFCC775E74C4FE0BBB9EAD595EDC0CABAEDA |
B87EC8F603AFD9DB3C321ACECED54BC561AF887D003B109ABCE85A254C7F1C67 |
E5FCD0134E68295F27036C38BB0B61D4F1AC3995B6556217CB49B1B4B7DBD939 |
3F5F1CAD0451DC8DE36EAABAA9DD49550F06540C877A687A7EAE502A6E39F890 |
877EF710DC604C7041DB2801653D551163A1928F111C8A69564BDE4E19BC866C |
1DCF20980CBE09D7920492F4B9A2161148A7E940B355DFFBDEF73EC2E5303B5C |
5D829EE5CC8A2BC629B38CE222FA37A4FB6138844D2AD5B28A7E79CED5D62793 |
1D6C846C65FC245213C963045142F097CAF320A6B56EFDB132C50101C4D32952 |
8E3AEAA8279E78828DD997AB25FE8CFB325B8FB9C3FA24A726212A9492A676E7 |
F194FEB46328CD898EA6BE5199714C3C1D24F562942F83CBF2071EC6BEB0E4B8 |
660121362C79EED29C1C918A8A35AC9C653EAACA6D74C1638B03CDE1E5DA9092 |
A1812192F8B95962BB8FD4C08ADF4B958E543D88CF4D5A63866A08D69124B795 |
F35D3B79E30D09E9338EFAAA57BDEA273FF98928216A20B2B54C4C4C4C4E4EF2 |
4D1954E39AC1A5BEF6B5AF7DF0831FC460EA9685C3C318A234AF811C78772BE7 |
B5A6A7AE3227C4C410D04EA54C932BE021714768472B47E9337C2DD6B0D96145 |
B42F0EC6015806E79C73CEF9E79F6F16BC397947262E36865EE476B4AE707D98 |
6B2CF95539990CDB523154C07827179BC970A9F256953483A84754EEF2D20816 |
7DBA643F0C6C2AB3C9B95410F118280F4EDBADB7DE0A71A305C12A0AB8D70DA3 |
18C61AC6C883131C84DD72B9343CD2986DFA49ECC4919BE9E0A2EB54E13AEB78 |
C85C0B22AFD3D10228F023B241359B3072E79515D94E8CA1B36CCDFC4C53A0D5 |
99CEB0AC107381E3DA14017A209CF94E772149D95F2BEB3AAD98665892FB5139 |
7801B37FE8A1876EDFBE5DA213FB1640F22753FB72885878FEF6B7BFFDB6DB6E |
8352870CE2F19C24E1B35579B67F350137D0CE45AA564CC0C2006E16062C0105 |
071C7000FC60A21ED8E50D23C3C4069EEAAD6F7D6BA952EEF77AD55AADD36E7B |
2C5F863D383CEC477EBFDDC3EA5671325474BD34DEB47E7CD78EBDE5441DB679 |
78B4580CBA9DD8EF397E7CC4A675AF7DE92B1EF8DF3F850953F0A37212579214 |
2ABDEC5845CF1981A0B36CCD269B581090BD24EDA54E00BD9BAAA6AB5A8ED577 |
6DAD800BA5661ACF87FE54B7090F144BAA9B58DDD412053CD94D6B956A37F44F |
7CFBC9B7FDD3EDFBEFB7E5F1C71EB373C6AE81A8E9400E4CE5812C95D9C86296 |
52AC3059CBE96028891C64FCE6F2CB2FBFE28A2B703C0920B181AFBCF24AEC2B |
7179C90DC9EDB77CA638D44CB01149840B7EF2939F54995B29470A104332DC37 |
DE78E3E9A79F2E0F2FDD9CA4F992D9F76D3545C8EF25FBEBE4FD85F88124857C |
A1D742EB591222785A8A6F526C4A93A215AFAF9666B994D14E9BE5EC2C6DE768 |
C80619D856744F29D0AFBBEE3A8C33DD23332AC874A394FD38463743F1392882 |
F93A661742692366196C8E645CE180734E21D00E3AE82098AD38DD940FDC685C |
63ACD8965024A584998917541ABD978122E38199924542716AAE8AE54266F987 |
7166A80A36C7E5E9423B2A7B418A88245E22EE9644E9981CE16BC2C2800CB4F2 |
C66B8CFA30A42F424C82A00CB130528D7F313ECF3CF3CC05175C70EDB5D7B2E3 |
0863F8F22203181A6A59B3DE442E8ECBE2009C2BE4FC1C259C7EDA69A7C1BAC5 |
34E1A6986E42AE04264637972EB8640A18DA347BD870F6257A8FD714CA233A2D |
6296A5594F6261DEA0E9865FF12F8E27163D35DAC0082841A48DE03739A4E2DF |
A73945D273D9A3246F044163393538336DA39903051FF1DCB2315653C0810F1B |
A717A54141FB701E74A7EEC21EC785F25A2CC83872C2401354B16A0207548BA3 |
ED56B7D11871EC62E0A773B3AD7A7D388ED24A158FDE0BE3B6B27CAFA0E94B61 |
1CE3FDA162172372CAD6F41E929271663BBD56D6E7238610CE4C512E02CF2CCF |
32502D0985A9CA3B9CD3DAF853C014E626E1C660808576370501C368694E25A6 |
721B761F962FEBE8B1C18831917672F81EC2E2E1871F4E734A109A96241396BD |
2D20ED012145A9D7ED75CBB0E0BADD0D199FF0FCDCDCBAF5EBF7ECDE5DAD55BA |
ED6EC1B6610DF97D7FACEA4D8CD6DBCDF9B18233E416AC9EEFA9B85129B9815F |
8BD2FD87C74AED56DCF32193F61F1919AF54F07D12F8587A8D2829C01E72DC38 |
4D7A61D282E39BAA44B96DCF69AA78D68A7B3A310C5D9BF61CCB2FB833A17615 |
BBB156D55D657512AB17C750C00B49B1E3F7E10107496A39B6DF0B5C4CB11EDB |
548C56BC2F594D301A12AA65088EEB5E657E0CC79FE15F9108F23323014ED6D1 |
59CA09644EA3A5AD6DE96A63303FFBD9CF7EE2139F307393425CC58D8D7FCF38 |
E30CA85565F47E3685EF721C99E03B7030E60E77E4F1B27E78B0E910AFF881E5 |
2A21353E958833494CA89CDF40650173566D11D8C25C9A59986B7E4447DA5987 |
09957B8AD24A5D65716032499955B3036F0DCFE9AB5FFD2AC6841053B12C09FA |
8DF386D6B1D1E068205F232C9EAC691968052D3FF05D044EAF96A12C85564922 |
A203C10938521B376E3CF7DC73CD087062306B9A9E9C64C4CD99E563080A441A |
E9A8FF66A441E56C013C5777B26936A5A70B2D3695199DA9D1D05ADE85FA55E5 |
3CE7B23C84CB9A2FC5861F587898231852E2F02D52E965B6AF6482A59689AA57 |
2495E9049BBE0AD3B42A3752B93C88B63BF3CC33B1245446372445B72A2F1B91 |
8010BF17C351421102CCB6F2F6A0924919E0DF3501835479F8F98D6F7CE3BFFE |
EBBFE20718DC3007C57C64A401373DF1C413BFF9CD6F32272D9241D246B27AB9 |
FD6110C0A0A1BA158F9F01008EBF45B7CCACB06C641F28798A0F739F9B4B4D16 |
37C55C5F7BD32B85A07BBA00085E7E9C68368C52A9502A6BA6BA6EA7CAD383B0 |
EF0730A08242D12A14DD4E2BF1DCB26397CAA5C61B5F7FC2FFFEE92FB64F4EBE |
F088973CF6D803B57AD12B249DDEF442732A4A7BAE037F17DBC9B2350DB50D05 |
BC08C18F21CB7B41B207B783BECF9E977CFA7AAE83A06F9AA5E24608EE94F248 |
42FCFFDD5C8EB9D64D5C280596884BDC8E85A7AB09503EA1B85CD863975D76D9 |
473FFA511A8F52A198E4E4A504EE3293C718A6084AE6CC88BD12421CCCD578E6 |
09293D821A5CDA84A01F1D9D9B992D788E95A4B0D636AF5F3BBF77328DD4E68D |
43F1C242C3B5ABA95D2F7923F5AAEAF5ED857643397F7DEC4BA777EDEAED9DA9 |
61BF6121418686AA58509B3181050F1386476AF5836618F5131B2B60260E1754 |
DC293A21746AA4DA38A55C7247861EDDB3C74FA20E1570EA40314319F7A378AA |
974419BA20D2ADBBEC343787306FCC7C8B0E867F79D6596799797709CB130629 |
1364763BC1DE8076FCC0073E806360D562842FBCF04296E1D3C13DF6D8637FF4 |
A31FE116647F85D0C4F8D322C6A8DE70C30DEF79CF7B842200C348F65622F2B8 |
A2B66EDDBA63C70E21625C9E3E343F7020AEB9E69A8B2EBAE8965B6E21E84680 |
97A667CF0DBC0FEB90F2850046A9D4E466675EF9F39FFF3CEE8575B56BD72E52 |
5E306C2874D6C258B2E2F539ECA61FCC75CE5344E90E08A6E59B45DE88C7336F |
C261140F8932578AB9794D6E28696F251A1A7F124A32E84B084D2E78B13E45E3 |
CAB97C60A941102D25969C84A3B0CCB8D170220BFFACBC9FB49463495190B5B4 |
1254E50429C71D77DC6B5FFB5A2C57AE1911F1FB9003CB3F1C04717059D296F5 |
AAF165E191FC813037F35DACBC9B0B4317720B5E8D21105C0DD28923F6CA57BE |
F2E73FFFB9247A999A25FD2429B4241E6072434A6DB74C749AD77DD939C5A938 |
24981D9553B0890A9736AFD44AD80E921BC5BAC51EA4397BD86187BDF39DEF84 |
298CD7A7F72830756E492A38E9BC69FA9C9247E760D2EDC665E9FF70DF0DB07C |
BFE8452FBAFFFEFBB98404C829D525D4F78C19E3215FFDEA577FFBDBDFE60A94 |
0E3AA6F36D59CB22CFB8316BA579A818505C5E82D5E46623D453DB2630405652 |
C0ADA69FA5A0F5E086910F959951C5DA6130A1F7AD8389ECF7FC6610B632B454 |
62A9D29F1D75F46F7EF360AABCE1DADA85767FBFF55BB6EFDE5DB46CC785F7DC |
F193A66345A532BC81B8D7EF562BC3F095A17DD39477C7313E947A944EE12192 |
3482C6E5662B952A6962B5DA73E67E504B0B2831647835A9D397ACFE8AB263C5 |
1D92E6BD4B05C5C3FA7D729332C3C1F9A0AFBC8F1093A40A18ED17361622F2C5 |
6B61365156008BF0F0161239116382EB95E7AEDBA0FD5DE860BA14DC451A33DC |
EBE3816A70177CBFE6D9AE958C0E5542BF3B6CDB435EA16EBB25C72A3AAA9424 |
C3CA99289447C35E67AEE9066A5DC5192E78A524AE148BA38DBADA3B5B2E164A |
8562A2D2AE1FB530738985ED3813064D2BE9953D28E09E1F433A46C582373AFC |
87F9B900EA1B8615DE5787A02DBC333CE05DDDA85AAE2CC05FC77876309E63F3 |
8BAD2FB47C217D31812104CD5A06F983329059700789A091DA2106A289EBA130 |
1AF0D238A426B846606ED416B47B70EE17BEF085D34E3B4D0A2EC5434AB35A3E |
EA7EB35D01F3976A59F1AE9551AC602298C51728A69942A6F740D9644A93E50A |
52653E045D491CC96A1CC823FC4A3001AB7D18CD8280C3AAC06531500C42B290 |
63DF4D44A8D1C587E39AA7394BEFCAE8333DB8714C81C344A38C8695376FA61F |
4661F7C217BEF035AF790DE4ACB4BE60029E83404C1C5D25161A89D3CFB016ED |
1E73DBCA8C30004EDD203687191E3311ECE2AEE176AC0C943026AF6C32779A0A |
585420716164B72668834B57FD773EB26C70EEAB5EF5AAC71F7FFC61DDDB4DD1 |
84C28345D162FE8E5D58B81D842ECACCB972354A513B2D1B29B9564B21452AE7 |
E63CE8A083205ECC0A3D128711F94CCCA3E00FD452E4A02860EE97246FE420B4 |
F9BC08251E17006F413830DF911E2DCC17320B711948B605B7806EC292268895 |
F75D919E4C2CB081BEC5521F28F6DC00F7380E80EEC7B04B3CC6045B50EA6223 |
CB2899A49BB21E2C593492BD50FF1F6B6F02264959A5FB7F91597B7575374BD3 |
EC4B2320A22088023ACB1D44FFEAA0731144940157560165DF6407511490E541 |
0404C56D80514747BC5E65B83A5E441904940101071045767AABBD2A33E3BE11 |
BF8E774E452D3373FF371F1FCCCECA8CF8E25BCEFA9EF7CCCCFC47ECA5EBB4C0 |
DF4768FE7C21E8D6749974694D9666750E4EA1988E7CD3E27D7753EEE9E4D4F0 |
A47CA4B66CF0E9A98E7679B6C17A1B6DB6E9568F3CF2D8365BBFE2D1C71FDB7C |
F9560540B660811E9E9A1EED1F680E950533050AA97F436DA1AC606DD2146B08 |
1AD3E8C4C4C874A7386C9D7CAA5C511D9BDE762B6B15BB70DA1D7EAA6DB1AEF3 |
0F905767BF78F0F904504D8E4497DAD6B44BBF4DB8DA28794409EFCF278FBC22 |
144548E29C79E699D85F866BD668A2B3D0B43CCA7A200312E8911F671D68BE60 |
815E8428D97BEFBD7FF4A31F69757B8A9E65ADAE324FD025BFB3936FBCDE407F |
5F73726274F3C58BB3B10939AD52C0033DCD8166D7D054AB7B727A59A3D3DDC9 |
37E8ED5F560AECE991B5D954DEDB9D36D6B5BABB7A6928349D0FB7DBE379369D |
35D7B4DB6B537BB8A721D763F5E8C40BC313A359EA0C36A707FBE5EF8EB7724D |
CD586A8E750A0F78AAD55E359526B5879A0D29E3EEDE9EE9C9964E6DA760B1E9 |
75992F7C0B74B2CB663636B102B62BE6F6C0C0DC1C95D2BA501BB3D1461B3DFE |
F8E3F4A1824B96CC900F213464FAAF3CC833CE38C3219308B2039669636BA79D |
767AF2C927CDE69FE6C9E032D4934F3EF9B39FFDACC3D4B18F026A0F435B8FCC |
F3CEB97FCE3EFBECF3CE3B0FEBC121193F02E162EC098B57533FC6F6D20B1888 |
911DDA4084C81DE800524D82C76BEA730A63C0BC680048520C17EC18829F31F6 |
4E9533B15C67F7A9E642EEA36E21ECD375F446CE8AD4031A1D0D842A9D330435 |
3B374F2E50DF4753BA1529891E371B48331B1FD590AD685CE8DFB19B9B335B27 |
FDE75F8891183097F3A0C7A43C46E3A427B419CDCC7E6CCBC0462A8A874DCE80 |
0DADD04E73F05677E414D070DA354BDACFFA508F13AB927831BCD96233AB6ADE |
20D0C6474F815E4A17D787CEDDBAF31267DCA45D45FB9F32DDE3AC472A713090 |
D9EDB3CF3EFFFCCFFF3C1FC8C67A2DAB7AEAA4CABA0243C02383B127C9954ABF |
DF3CC1A87F379C704088E64EA02FB917B66C0A3AF4DF75B08F93B3EE11C09285 |
C2CA39CD614C92054058F0428C8D8FB59364BAD4F6BAB45C7B7AA3428B77F594 |
4163F9AC3A6CE3ADF6D478FB85D34E39FDEAABAF2AFBFBCA8B5F5A8CB2919E7D |
667CDBAD56ACBFC1E2175E78EEE9A7FF90A76CC9E2F5FAFB0627C79B25C34661 |
4C15DD091B5323632FAE59FB522BD7BCCBBED39C92FAEE481D0C0D2D5EB9EA79 |
1470391D335604892C35EC70EE02E8C4F95E7955FB083CCAA899C8E4EC942155 |
AA735E07740317440CE987B49903D4AE4D8046EF54DCB091BF9A280A4E9249E3 |
0842A2B9172D1E624FB7A6A7FBFA0B40967ED5DBD7D71A9FE82985C2404FB7F4 |
F0605FD7C8C8F4861B76F58CB6D6EBEDDE7870B0576B3735362097A2D9BB3835 |
3692426E4DF74CB6B4738BFF75F2A5837D8B0707B235C3DDCDAE9E223629F738 |
8DCABBED34744AD64C4CADED4AE3BDDD533D5D13ED7C78BA3DDA48ADDEEE975A |
53938507DC1A2D405BD96819829621BD521B2765B2E2A476A66543A5666B1D71 |
5521E3A4422407D9DC9205B2544E3CF1C428F55C937AFAE9A7FFE0073FB8FFFE |
FB995E1AAA9367A57645136507170B06291309E5AD502FBAE8A273CE39475218 |
30884B7E5395FE71DA126EB25D77DDF59E7BEEB109B500E8862434D299581FA7 |
D2B946E405827B81088AC6E08A64FD70BBEDB67BED6B5F7BDB6DB711B74F81C3 |
0F81423A8381E18553A1315F8A24F63A244848AE84A746E29BA170B62EF77B54 |
913B3F6A4AFFF22FFFF2FBDFFF3EDAC5ED6B38479E01E8997047B0BD1CEFE164 |
5D72C925279C7002959340CC76D86187071F7CD0781F2ECB08C976A36E4DBB18 |
5505AB8645459E528361D181FFE0F3793209FBD70A5B71F8F041B10F5C2B855E |
F9AFCA19B75F03314EE1062A0DA34463D3DC62754577BC11A8E5DA551F170FC6 |
C4E9044850CF24565D428916D1772EB8E002997AAED08329055A373DA0DB50DA |
1C6133101BC7D2C237005BAA0F4F3AE9A4B3CE3A8B3A7E169A8BA7AA3F52ECC5 |
4B3DB78627EB4A5B1D6FC4712C423E51358233B00F691B917146D6230C3B9F7A |
6E6D702E339F07D611D3DE69215C82A549DB7CF3CD1F7BEC3114A88DDA34B313 |
6216BD3787E981FBF3862095466018370104B6EFBAC0FA3C0AB8F4BBD625530B |
27AC3DDD48C5D5BA9B9B17FAA2AB87BAA0E969E9E002C9BC68BDE9679E7F4A3F |
D6D70706BBD70EBF5C80615B9DAE7CF9B265CBFAFA0B22C0C989A9DEB2CE786C |
747CBD259B4B8FE80B05C5DDE2BE46D7E4CBAB9E7E71D5D33DDDADA9E90949BC |
BEBE9ED15109CDC62BB6DD7E8F3DF6FCC637BF5C4D816541F13F66460B20C12A |
F18AE8716FF3390F40FC67346510BE9189898C5D1EDA55E681A872CEEB033B27 |
9B7BECB1C75E7FFDF5263137801EB9D0A8BAC7DB9F33E03E55A92FB7A6877CA0 |
EC16D538F8E083AFFDC217966DB4D18B25F06FF192256BD7ACE9A2584BABDC6C |
64EDCEE04073A0BFD9694F6DD4DDDFD36A2FEEEAEED57475A6869ACDF5B3EEDE |
C9E9A1AE5CD27730CF063AF9A2942FEEE9DB606860B0BF6FE5EF9F6A668DEEA2 |
D56897ECC0F18E7470D26CCA091E6EE6C35DCD027BD54963791AC93BE38D7C6D |
EA940AB85DE09FB3C6589B10B47CE2AEA952E5CA00992EC229EB44B02C394EDA |
965B6EF9F4D34F6B3277DE7967FA393AB611DFFF7BDFCC00A422AE6BAB453AC9 |
A48F70E2A4AAE85EB37DD04107DD7EFBEDFA5C329D1661E453A9B5B544B01310 |
DB3698D235C2AF6A3BC7BF82994BEBC8656787D317F879549050A4E555D92202 |
34818928B78D9B1E9A360B6FE3831FFCE017BFF8C55416947FEB5BDF9A6FFF23 |
01A8BAE1D1648E3FFAE8A36CC5087BA981B066E3CEA88FE77941997218F55FAD |
02FE34FA92F24DD780452CF42B5EF10A0A605069FA8E3BEB112DFCF5AF7FDDA8 |
88CCE8B6446FDA39C97352A57D8111A0ECA90CB453456A89196018B083E9BDA3 |
AF76776C1F733C630D5BFAAF83B062F3223253767075E50B2FBCF0DC73CF3546 |
49E6D7534F3D9555157A79C5609557257CCED31305A9D57063AB515040F52D77 |
BFF6DA6B8F3BEE383A8349DDB285AC50CC74112B621D830529E65A26A78D0943 |
128074512F0BA44374E8A1875E7CF1C5EC25B37C1082B287A3034B7A8E640AB2 |
372A3F0BD8ACAA8CC78CCB03C936C628045BC86A02CBD8C7DA3386B86AC01205 |
AE1A77EC9A6D831AF63E9C638F45B45ECC482132F8999EE4CFFEECCFEEBCF34E |
A29D731FF8DE81F189D1465121546CB6FE9E25D3539A82CDB01699F418C1EEE9 |
5AAEE95DB278D9E444AB4C514C7775672FBDF442B32B5B33BE72516FCFF0E40B |
8312FDF9F89FFDC5EEF7DEFBCB552B8B79EC2A7E2ACBA5A7BF6FB174EBD8D8D4 |
E0C0626D8091E1228731353DD23F28D7EB9991D1559D348C6DCEC166CD28C098 |
6FA383BBD19B3BEEB8639F7DF6490BC68538E18DD0A383199F0F357AC61967FC |
8FFFF13FEEBBEFBE5441AB48FF447C0A043A6C44BBAD38ACD4B06615BB9E6338 |
12526077F91AF6AF5BA0B82157540F15C54797BCBE8181FED1F1926DBF51ECB3 |
BCD5EAE96D4E4D4CF736536FF12CEDC1AEB464703075DA43ED49C9C881AEC6D2 |
BE9E7E19D163138D89A9CD37DAA8B966E5E2BE8125DDDDFD79A76B7AA2BBD36E |
CA5B6DA4FEA9C2266864BA6CA6A1686493A933DDEA8C647D53A93396151A7724 |
6F8F48B777DAB22986FB7BE48269DC239D6CAC938F68E15B854A1E9E4CDD5DDD |
93ADA99EDEBE89A9E2905040D5D55CC750289F89F244269048BB713AEDAACB2F |
F2919CA54B81B12075D2B0C1F521448C4042A405F120D1F1A4CA622F614B0DC3 |
180DE1B1DBE15442AD29A97D3E87709D5B0231D7283932110DCEE33AC04B0E08 |
6131E77EB3DCA9A916BC0A470EB4430A3AD20ACD44C75C9B260B83BCCCC10B14 |
45837CE73BDF89C28EFD5EA254B29A77B549AAE072AE5F88A1ECD92FC62C4124 |
ABF48A2BAE905CFADFFFFB7FA7AA391B4E15E59B9C05D01838FD9E6A087358AC |
88B57430897BBDF6B5AF95D36CB0BDFEC408CD622D9BE3031FF880F410F74558 |
937FC575A30934FCA3B49166CF385D6D14D57CA1DA051C80188AB794A73197A6 |
E298638EB9FAEAAB5309BBB59286049BA3A1DFCA3F7BE28927F8ED65975DF6F9 |
CF7F5E168C350A9FEB14E8B7D89A3604A122A164AB111A3C3018B7078E25CE5E |
74CDEAFDF7DF6F28BBAD1393D5FBF14D644D36DA31FC1462B9E851F66A4CC3E7 |
558DA2011991E2021988829465F6C8238FA0F264C3FDF8C73F86D88EB3C9050D |
75367FA72BF70CB7B47FCC41237CCDF33EF0C003A9027F44BF2ECBFEA3F82A09 |
33EA4A75C666D756C71D31D05F14B7F474F735B2EED67463F9F24DC746A7D8F1 |
A5D0694705DCDFB771BB5524678786D65BBB66987C70892F7D6670B07F626A4D |
5F7FF6E2EAA7B57F962E1958BDE6E5A1C1E59C99EEAEDE62EA1A7D52C065EFBC |
DE258BD79B98982AA0CE696ACDD873FD7D9DD189D5FDFD89B5C7D4D2339B6A60 |
CEE11B3AE8D0DC4E3BED4461FE7C072055241B2CCFC239B3ACA27245E8C7FECA |
3867266342FCC1FBE3B159F5461DE36DEA3D912A3F89F6477A967FFDD77FD50F |
673B5EBCFAFB7BC7272637DD6CB39756AE9E1A1F1FD472AF5D9DF2D4D795693A |
87FA7A1AA5425D6FE9D225EDC9028C2CBFA1BBA9F12D1B1CE8CF53B3D51E9C9A |
1CECEA5ADCD535D848FABC3B6F7715B190CED2AE9E76AB641F2B4FADF68196A7 |
95F2A99EA1E9948D65EDE1463E2ADF57DBB1E8D6D059D995E1018FE799B4CA58 |
A731DA9A9E9C6E4FE5BD13D3933DDD3D537ACCBCD327F93851CAC77C461D0240 |
2A8E74843BE655C3512C9E6C26E5054754F37FCA29A79C75D6595E7A0B441DAA |
D34F3FFDD4534F85FF447318492AA28B1379DBA3BB692EA154B9BF56A251C23A |
F8C45D6A3BD3F10C873DC804035D9E73BF3566F64E704CF5924B2E39E79C735C |
86CEBD08B6FB743B489016B44129CC007AA3F1DC76DB6DFBEDB79FF7A7E3644C |
08C05AC968CBA9582980E63034BD96339EB9630B9DAAFFEA3A4EBF5965DA9E80 |
37F1CA2BAFFCF8C73F8EB943AC38E2636B0B91059659C93D0DF288238EB8FDF6 |
DB694263C3CBA0741ED0F8006266B6EA52A86B72C7682B89198528552D499A05 |
CA5BE0D5A81AA71A189C571C58E0EDCD53C130AEBBEEBAE38F3F1E1962469A4F |
7EF2939FFBDCE7888DD98D364A08087D0C0FB857127D7949CFEBE2A00509DEC4 |
7D6502571F49CDC6473FFAD11B6FBC91EF702EA80024954B4AD819D3E8A367A1 |
2FBB4FB10DB5885AB0F71CC35D6681E54F3827FAC269A79D76EEB9E752BC6B37 |
9AC190B073B1A24D103074E4895389A0264C4D883E76F4C15D368CC35C1CC985 |
D173AA0A2B18773DB25B3DAF519CE752A1D3ADE92CE9A2F2057B170DAE373D95 |
77773799D03C590117B3363EDD3DD833B4786883DD76DDE3778F3D393DD5D1F3 |
4B10680EA5809FFED3931B6CB8F899E77EDF4E133D6553C266573E36516CEBEE |
060AB8A7A77B51A72D3DD1AF33507818DDE9A597FFB464BD9E763ED2EE4CF40F |
140E44E41F5858A000B220DEC5FEC6249FCDE1C98B4013CB09420AD1335F4E77 |
CF3DF7BCFBEEBB5308E093CF302BA131B78E5BDABD66CCBAE376DB6DF7F0C30F |
3BE61C01756EB3E58D48408C0EB5B6C7D907650EA6A0705BBB76A4403615C7A0 |
045FC83C4F9DC1FE81A2246968E08DAF7FC3BDBFB87B4A4E799E365BD4DD6EB5 |
B6DC74E3D5CF3DBB6C403E5AF6AE7DDEFCCF77DC29DBBE37CBFAF53FB944D2BE |
9D02BDD56CA4F57B0BB5D19A6A35BB7B9A52C659A3D355CCE9F3C353D3593EDE |
48A38D3496F209A9E422FC9FBDD06969228ADADFAC7BBAD11CEBA4910217D01A |
6BA58D976F7CD249279D70F249438B86D68E0C036E24B6A3C73173270EA554E9 |
57BFFA5500BDA6644A33C9E8A3E2246E4198C4A210B182E6B3668D2CB8F18CA4 |
5043EF2A14EC00A3DF5D4E8612A27D96BEC9F9A4D85177E4A82331D91B944BC2 |
BD8522E954CCC3FF99AEEF358875AAFC7EA0F50C83AA0F806C912D6B61831277 |
D38E17D059574920F74900CF3E41A84CB37E7A81A23932DFB923F21457137787 |
45A13538D021F0ED4CA926EA6FFEE66FBEF39DEF00F832F22E852041368B5251 |
8B456215E8286972E057AC91B784B5B20998640168244E5BA2C91C8E6606007B |
B2222E1CFA4FEA608FD3A203894472049703AD4C8219B143CA8080BF641D4A48 |
2EE0A38F3EEA508D1E61934D36D1339AEA4B8EB2FE290B55A69BEE22B5FD99CF |
7C06F493FEC9C83D154830772B7275867D5653AF58549211A78C8A3853AD9D62 |
7C53DB9059286E8E7F0503B1FBEEBBFFEC673F338302B82D1ECAF482FAC4208F |
54611AF408FAE48C33CE90FD6DDB8B5D9795D57D9A46AC5594AB435F9E0AA332 |
0F3BECB0EBAFBF3E1A0ACE88B3E7EBF9181F30433F9C885AA02E76BD254B57AF |
59C5057A7B06FB7A87A48BFBFBD675CFE8E485074C2FA3AC51FAFED35943CA34 |
EB79C58A9D9EFAFD33DD5D5212AD8D976F323A322D892D39BC64E9A24D365DF6 |
D043BFD1F78787D7B4D3AA5681C1C9713B87162DEDEF1BD24F365C6FC56F9F7C |
68C3A1F5A53B4E3CF998934EFFD89E6FD8E517F7FCAC6C019001B1A1A6D019AF |
05040ADBC57C2808F139BF6F8F19B331557401F3CD0F425F3B4072471E832588 |
437386219826148801B5C21AC98A152BFEFAAFFF5A46BD81D0A09064A13B5A58 |
F37B78D9B18BEDD24AC955B24FAC59AB71A7ACF9F56F7EF3E0830ED204172A67 |
7CACDD9A7ECD2BB77FEC91C7D65F3CD4D5D5E8195F2B3F7874CDAA6D36DBE4F9 |
DF3F7BE2911FFEF637BE363532B5F5FA4372F4FA34211A52BBD39375FA7A7B06 |
7A7B362B2354E323E38DACC8018F4E4DC8C16D76778DB40AF2E7F10C05DC91E6 |
97026EE7D9CB794BFE6EA980F585AEB14E3E3C393D3ED16A370BAB6EA0BFB4D9 |
2727B6D87C8B3F3EFDC73CC46648F8CDCEB6DA8B229E1C957154C059D5DC504F |
AD5590D074E3779F49034C3A55AB165BB2FE0487868C80E4DDADB7DE7AE08107 |
FAB72860EC215CC654226977DC71C7C71E7B0CE4172B45D931F2112616968F68 |
2DC306F39955640273EEB70584780494E197CC261123569F6606B1E30B45A8E7 |
2D1096A59344501D5D82DE8D545C9C14DC2C4D0531F0349354204AD505084638 |
1D1C1986E18251EA8E48C1C851D329062CA62F68AA7FF39BDF1850E302F1686A |
44051C593C53E56B42C728C97EF4D1475F7CF1C5C4AB703018862FC29CD0C8C1 |
195FCA8DB8268BABEFBCE73DEFF9D6B7BED598D9D937FD472F2F1391DBD8F82B |
EE7CD8C130741C2A2031071C04E4398E4A010D29DB1E6CBFFDF652C99ABD48A2 |
E2E66044508159115D774D5DBB6A6D9E2AB2745D1003142C3AE62391704E8D13 |
E1AE2E033F5C3BA4B33137DE3031B7DA08DD9DA9A9431A50AF18A1CED2FAFA1A |
811FDD5D26FE0D37DC00F8D1F29FA98BAC61F18D934A8C047FC0FA3BB2FDC8C3 |
BEE8A28B901876EBD76D7BC44D5EB5CC4B332B6A30AC905F0694CEB72324A64B |
30DEF0D0A2F58647C6B6DAFC15A32393139363E5166F95B0A722068307DC3FB0 |
787878B45DC2B625C0BBD3C0D2C5CBA4532727082C148FF4EAD7EC74F7DD7795 |
276DB8AB774C8A59BF2D3A1D35D2B20D37EAEF2F9B177564688FE669BA7FA0E7 |
8FCFFD6EF34D973DFDCCE34B96AC6B241CFD75D9A4BBECB28BACE03987CFE251 |
B661B684C6FC5CD05A30D9560F3CF08023C9C8E5F99C128CE8189B8ABD1F40BA |
127E246C1225058D20F5A1B691AE038F2066EC5BDEF216C96B7755F2EA20F5F0 |
E0818C72C67460B0C40707FB4BFC6727350A599035BBC7868707172F9E182DB2 |
E9EF39E0DD7FF7B5AF4E4E4E2C19EC1F191DDF6883F5BAC7D60CF4F52C1D5AB4 |
76E54B679F74E217AFB8A2A7D5DA62934DA756BEDC93A581AC31D868CA2290EB |
2185BD74E9E2CED4C49AD5AB27C78BA8499E1AA363F2F4DBA9BB39DDE82B1470 |
9E8F661DFD571EF074D1D7285BDD4C53A5029E4E5D13A931DEEE0C4FC8036E4B |
DCCAF31E1CA8D83457AFD2FB2263D49A469A107BC0CB61FE756C346F8404D17C |
31099466C61B3945DA1BB263A41A9F7AEA293A8BF9B045843312CD0A38569E44 |
3CA4669B727EA252117C8E24029FAC5B935DA65D8C4433CCF23626D884B0D2B3 |
736A06F19CFEA505F46CDDAC0F891FBA3DA24421BD5A2523FEF22FFFF2273FF9 |
492A73DE301EA7FF081C54C3633ACD8C6622DF492EDCE7C8CD98F557D8FCD3CC |
36760B243E53459D88DE750215578620015F7341B6418BEBB8EFABD00569F554 |
75F18B00375B60B2123478734D539C6DD02CB2D1500342502C137AD7D8171D5B |
33FEF380DAA27887FA9556444E794DF6FE6772C029F4EBB52D9242F121DEF0BE |
FBEEFBF39FFF5C43D59603E58ED3AC611F7CF0C172CE520918961568B0B47605 |
2549F800BA94062983C92D0849F01B42E597EEA861E8FB963936135D5043EF07 |
E23DC042A99795A6B41F9FAAC0463B749B3650C99363CFC781932C505638106D |
B967767D8486B17E5A0B021BC8DE58F8402209F547FD313879E2ED3CA3A97598 |
130799611AC64772843205AFBD7816E634E272E392A38108E3180F36E786D866 |
6B1DDAA774DF0D3658EFE597D75C73F5F5C71C73FC861B6CA467900AD0EF52D6 |
297AD8E48517ABF9ECEE19284DC2A523C3134B972C9F9E6A0CF62F7DE9A5D5CB |
976DA9679668D0CCEB01FEF4FCB31B6FB8714113B1E685C2D56CB447C756B73B |
9312F11A95266E787C7AC9C0D0C9A71CFFE9CF5CD4DB97E9AFB2387BFB64A68D |
337248C6B1103160E71CBFC18D3EBA9AE2134E38E1ECB3CF9EF3FBE6ADA47737 |
7279817202ADCD39E79C73D6596749EF6A3D76DB6DB7FBEEBB0F81AEF538F6D8 |
636FBBED369D4FE4E9EEBBEF7EEFBDF76A00B0B032E7F2EDFEEAAFFEEA6B5FFB |
1A75022008DEF8C637EA74A5A0C53B15DD3106938EFA7BDFFBDE6BAFBD563F91 |
2E01275C39FA1BBEF8E24B5AEC829372721A9EC281DEC191E1611DBB5C365347 |
5E636BC5365B3EF3C7A77B5A9D3D767BD5BDF73DBCFD16EBAF7A76E516CB162D |
EAEECAE4D569353B9DBEBCD19F35BAF38EB6C8E2C181A25DC40B7F989A683572 |
0D6CA0A7A74F5250BA3E6B36D64EC9EBED48EF8EE605146B326FB7DA05BD9596 |
67AADD9A2890D269A29D8D4E7746A75B53AD3C2B5BE848344C416394647B2D7B |
F1A517F32A1B8408C03CE73DDE069C3850FD11C988E1298B3973627060882CE5 |
55EFC29A4034599215701EB805CCAE87AD804AE0D06AB77CFAD39F3EF1C41369 |
84AE7D1BE114BA17CDE60CFB94D72B7578E38D37220528D3E761719EA01371FB |
81F95EB3E35B94AFC0D6E28251BA7AD0F2163925992249B4000E8BF029A1368D |
87B363A0EFAB5FFDEA471E7944BE9DEC5D7D53870EC1EA66415FF9CA57341B30 |
63C4BAED08B159E0B922DABF111A86CA95DC7FFFFDA15839FFFCF3757E5315F8 |
41194732CB1A8395C5622D038DC5F3DFFFFB7FD709356288ED814F693BC0F5D6 |
9E6DB35C596DE425E11AF25A66904481032DB3D76E01051CF906CC744802D8DA |
88A7A01AC7B80400E454EFA48AE0DADFC76AF4B16297929E908A9292C66602AB |
984AA4B19600B71EFA260DE3B2CB2E3BEEB8E388C6A3A46BA94C5B78A6C7FF8B |
BFF88B5FFCE217F8BE79208A7266A736B13503259A9B9D8AE60C3B982C0F7F72 |
DCDBA83AAD1DA94F7DD3ECAADA304583DD929C04030ECC0D91679BC2FA27A033 |
5CA3ABAEBAEA90430ED1EDB0FE5D2A9DAAF6181E6723104A66A491F3992F6F71 |
C776500C0BD5C51607BB4B6E4E315F59575FEFD092C5B22C8A62DC225297A61B |
45F8B8D5C90B48ACAED1D5DD3535D5921F363A3AD9D73BA86959B268A3D52323 |
CD34B07CC3E53ADA83038B25C4A49E172D2AA6A335D59C6E8D678D297947532D |
ED575D6A7A746274B06F5006DF4BAB5ED864F946139323AB56AFECE9818DB9C7 |
F0D4F944527C69DFC801928B7CF7DD776B73D00E9360DA9CDF277C0F53959307 |
3642E7FC3E048744830F3DF4D0BDF7DEFBC31FFE308400248FB1C538B4663765 |
DF344A22493F82F98DAD12A2A0E4AF464A83832070043D2F6BAF292ADE640D79 |
88BD038B26C7C6D65FB6ECD8A33E71C185E7ADB764E9CB2B5F6AA47CBB6DB7F9 |
B7C7FF6DFDF5969E79CC11675FF099159BACD7DFDD688D8E6CBAFED255CF3DBF |
E946CB7A3A536DB9B9ED34D8EC2AC4C074AB9915032ED2BE9D5C4BDDC8B3BC93 |
4D770A6267AD992CAFA92C4D669DB1948FE59DC9029B27059C0F17FF2D0A9326 |
5AF9682B9F98CE274A585D86D9D76A2FDB60433DC2E8C8F092C54BF4CFE1C975 |
F588D81CC67B9377D08E970E903BFBF8E38FA7D2C8F56198FD22FBA053A779E3 |
6B9E55E06FF8A6A4F11AD52B55B80F04A5858B21AFB87AB8BFA90AD09173256A |
A7CF4173A089B3B226D2BD77B08C8912BB5403F16A5AD3052234763BE2278E43 |
6AFBDD72CB2DD8191AAA3ED4B0A5BABEF8C52FEAFD165B6C4107FBB4A0075CDB |
75E6F730EC99C8041039D30553EB05DEB011FA504505DC5EB06DA25505694837 |
74C2AA709F985456A4E8B8E555119A5B35988A2E054A7607457816ED1969C79A |
0A741247B6ECEAF205A72C5D19F28ABD4B4F27C5F66FFFF66F7955AA2EFD2DE3 |
40EF756B8D41C750A3D5F5212C9481321B3497167CD54058EC167C56C83835CF |
F8AC46513178DBEE4C14F607D1386007FAB92C037D9318526CA57CF1C5175F74 |
D1453848A98AE4A50A274809168B224FE3D4534F4D5538D72CD31057C932FBE1 |
0F7F8865C92348A30345C660B5DE75C076BE09E9546D8FD3CCD41BC109DE532B |
68260DF292E0C22C696D529864D025D1A9C2CA991B0EBFCE24ED9E07D752EB13 |
4D97EEAB152FBCC4F249D32C5064666D9C66F186B39F8C8EB38B3CDF446CB1F9 |
C67FFCE3B3E5934BE8A745034B46C6A63658BAD1DAB5AB5B9DE93CB51BA990C7 |
795A37295D3D32B2747D09A0C9462673B233D0B7646242F3DEBDA85F66F8A474 |
F4B20D37999A6A6FB07E11FD587FC98AB5C32B9B5D53434B9A53AD3523A32B5B |
ED427A4BA98F8F8F36BBB2A969CD6F87E05E39EC55B1CF86668A6CCD7C8238C6 |
A952657F2C20B85D85C6FED029D27F23D75DED15C9EBC1586238732343E15951 |
D9C885CF570630DDF3B953F5EAD20E0041A0F5D61D5D3AE2820ADB1CECEF3FFF |
F33FFFD9CF7E463756A80DCB104AFFF0F0E881071EF09DEF7EAF5C8E4243CB56 |
EA6EF49756CB748FC4FDF4449624E9FA26C72696F5659B6EBCF18B2F3CD7D3C8 |
07BA9B69B4BDD5264B573DBF7AD30D06A7C6C69BEDCEFAB226BB7BF242024F35 |
A437FB5ADD4D7D37155A37CFE4FCCA039E6EEB6FCD76964B648E67693CE5D345 |
72A218D1CB053957A3A8186EE7A3539DB1E982FCB9931AEDD491206F4FB72450 |
56AF5C25BBB4ABD19C989AE854063E51201470EC4AC44E3010B1568717D34B84 |
EB415A01D281DDDEFE9F8DD9D80A26CDCAB31ADA83AB676EBC5895A1C53AE288 |
232EB9E412AF14DF21D780EC935C8ECC652E19028499552C51D8E0F3455C6AA0 |
159F7C6364CCAB60FA910895479B2E5056E7BBD454141977FD57CFBBEDB6DB3E |
F1C413B45FD4D7DC435317A76B6704003B7F69993BE71D99A55ACC3F969C1973 |
8B03C4236455B38D54B9E90415F3AA6146ED169856663241675B34C7642AFA46 |
179183A82F3B37B4EFBEFBFEE8473F2241EE322DE293FAA68E61EC73C5E06B2E |
D0C22F1B4064CDC83B1A524EA8CF34DAD88284829C8A82854623BCF2CA2BE5B0 |
1A306C19885EB1691B1DFDBC6A2BE26080DBB2B912A9C6C2168B7660CEF2D6CA |
AA96BD1C10C8A752C8E9CEB64B6ADEB0FB56595BC30C4360D9386A70B5DAF0BB |
EFBEFBB7BFFDED549101D8088B7120A85DC05E20E78D7B8D9883545105A4AA80 |
1065CCADC98FF065E4091E91A124F3BA77B66D6BD3172D8B547963C5279916AC |
7F627C4AFBB9A7BB4FFFB77CA34D9E7FE1C566569EAE7CBABFAFB75DC04730F6 |
8BC8A4D64FAB4ED8C155AA5D5D3DCD46CFE454BEC9465B8E0C4F4F4DE44B976C |
A46D3CD8F3CAD1D13583438DB189957D03EDA9D6AAE9D688946E3B5FCB997737 |
28DEC744425C2DCBDF766800890F1A231ED40E5A40D4D00D29446C583C6CA5F0 |
145D4636F239DEAD76B37E25C7F7FAEBAF8F1C6959451393CF6CD542A3728C6E |
5BDF46D999AA7481AE35B5D08D19F8EC4841EA84ED4C6F031443E48C2D985D9B |
594F4F97D4F6D2A1816C7A7264E5CAC16663EBCD37CB5F7A6E6A74BAAF993618 |
5AD49B6572510B0B6370607CCD70B3A7BB444EB51B5D59DFE0A25462025FD611 |
5DB278E5DA61ED623DE4AA91D1E189CEFA1B0CBD383A225F7CB29D8FB7F295E3 |
72D47AE5316B37E5253449A2533EC437BFF94D73DB02B265C0BACBE1871F2E97 |
0E7621F81439F95AC7547600B4AD0D05779A590E3F5BE42DECF9491643F4C369 |
744F08594EB015DE78E38D5A65F2466ECE4ABF36237490D4EDB28D5A5E714C42 |
87892302F501EA04B6E4D7BDEE75BFFAD5AFCE3BEF3C2D19127381714239E744 |
5A5EF5CE8283C27E8C35563EEBC5A5E0D56384A066169E1F6F5DF7E8753C56B7 |
7EEB5BDFFAE31FFF98B802CDEFE6BC0ECEB1CB3C7CE20C4C7198D42E20F13924 |
267904C70CD22C860D0DE3A73FFD69A7EAE7161D9DF8F278AEB9E69AA38E3A0A |
0B8F234F99227FB51CF7C0B45175C069C24D57035C493991679E79260AECCD6F |
7E7341015B66C4B5C9B51C8E139811222E4434FB6A3C274809A496F91481311B |
65163B366A2DB4793A65477A22A8D4FE9A01C695DCA96414D717F409D5475601 |
E054C0421375902A02430AFE0616AAAC2252045A65A00C2073A3996A3D286BC7 |
10A1E41A368C0373BE46BBC18F6C72923C7434E03B9A28DD4E97A2B78466039C |
23365C348CD8544E36A7C087836DA76F4AD7EAE79498823A0429A9D990BBEF5A |
357DAE2DF4C52F7ED154044580CD4A25C2103CDC4EE8B899AADA290C13CC7016 |
A330F9FB8BF87357B33130A04D3076D9A5979F70E249BD3DBD9353D38527A36B |
4ABF34F4FC3810DA0DEB5C047A58DA502A6041A9B16CC38DF7FEABFFEF3BDFBE |
7D4ACB93FA36DC60A389D13E29D3C9A9910D371AFAFD9F1ED964F9FA438B7B1E |
FBDDA3D2A42EB864F679AF15027F64EBC61C9E29F041C6954B55B51F08678C2F |
80FB5E5A6B2F17F22261ED3153B71041F91C4BEC3B226F263B053D912AC4A03B |
E56106EA2E3864BA88769E8C2CF434952D589A4804971ECEA730CCEED4A99A84 |
A3B96B444BA0066AB93104F7809E65516FDE6EA54E7BE960DF92FEDEAE56BBD1 |
690F35F366E1DEB66470F67535FB9AC5648E8FB5375C5AF2D51535BE991CE03C |
6B760A047B9A6A74CB02945E7A79CD9A91C9BCD9DB5C6FD9068F3FF942EF0683 |
ABD68C2E597FBD675F5CD56964EDAC393ED9EAD6FE999E628FB9778245006588 |
60A64CA0C139D7D6979E76BF3622C9B1260D4D4C4C18A16053C376F402F3F9F9 |
CF7F9ECE4B6E8244BA97BC1126512C50915C83DF2755B5893534755E110412F6 |
4855ABB8BCEAC3A33FC17247E443F7D545BC7FE61C670A0E652390EF6B72F45B |
8C065318D65251D134995D20B74005546C4E67FBD5BDDEC0F99B3F6476BFFAD9 |
8F60F96B06442F19C211E3C6E1074B006497738A6966358BF42210C8489092E6 |
8A1C30001CE8D86C0387890198F2890015FF756FCA14A20B26F4678AB0339C54 |
62FFA41288072623CD8A5B7A5DCC6EC89CEB8732A62FB8E082F7BCE73DB2EF4D |
E6A3BD071B52F49279A8D90DA79984E8806117F2435909184C2E3CCBABF6F0DA |
4EBBEEBAEB3BDEF18ECB2EBB8C47A6AC88F927A88041C6A9F4184CE792850662 |
69162A9E23CF71E0C83B95EE08B06D2F6F061E369FD926D2756536E008F698BC |
48AB09CB8ACE383DBC67BF6C0EEA31A51375C18F7CE423D75D775DAA88658E3F |
FE784D850EBB11D16926AA8E616756458D8A20B453D146A6AA288A308BBEF99A |
D7BCE6AEBBEE8AA6A817B2DD996E3628C893F86EF4F56A2AC73A79A7D9E82EBF |
A0156D15FD7F5BDAB85AE0868E9E77A7996560A8E1540E2D5A9C72F90A93AD4E |
BBA8506D143D940606FBA6A6C69B5DB96EF5C637BEE1273FBD73647822E672E2 |
FB54E565D9E568689766827727F6889F1479D49820C2926624AF51B71B014190 |
0DF21D7DED6FFEE66FBEF7BDEF45CA3A5EB10A882D8E8189B5EE7E1A5B6FBDF5 |
8E3BEEF8939FFCC4BA99D30E6E93B580CF5D9316690DE6DC2804DC905954BBFA |
5EFAAD6E71F4D147CB5D239645AC296E5C9B7E3D05D95957C1F9D94E4B17752D |
E9ED6E8D8D4F8FA5C543597796D65FB478FD458B5AA3A3AB57AD1E1AEADF7CF3 |
CD9F7FA68013E78DACABBB470A78AA5512B0F4144C59BF7B7ACD365BAE373C3E |
26AFAABB7F60CDE898B4ECAAE9EEB6D474A36B786CA2E8C1D429405B834383C3 |
23631FFDE847FFFEEFFF5E03E6984574438D19C661092A5039CFCE4DA6CAD0F1 |
2137638ED34856870B6885487DA799A4F634959A15FC05C340D11A4B89B2D11E |
C82B08A867D882559F1C71C411B291E5279D75D6595A20FD0AE19E57545F46FD |
2C0C8A8CA89FF8B93901C80E12AED4B67451662D15E53673A87F6CCDC81233FB |
BE3C324C498833C37FA216F732CD37D584EF7C78233605B5873C25E76A715473 |
9A6B8F5F83EAF06554608CF9C5C7895347E4DF42267626C64034101A905AE4F4 |
9774968C3665874FAEB7B4692BDA552BF114E2E129240E6BEBAE7BE9B2D24664 |
76755917A1BAAA273E057E88AFE01832710E5835F06BE9815153CC4654E9CD0E |
3BECF0F8E38FA3F3E22A58D6194EE1008CCF02E1717BE756C3B35781F58A077F |
ABADB63AE8A083BEFEF5AF533864EBC17117B05DF19479D1632215939D6813BC |
A42C3AAB832115337AF64BE38DCCA1C49177224C6F749CAFBAEA2A0083FAE791 |
471E099526D65B61A4DA48C427C8AA2691760862CD130140BE89EE7187358DAD |
74143BE53F8B29EEE9EE2BF74A9A9A9E2A888B52A7DCEE9D5864EDF68D7A78BD |
4701F0F0D5AA37A469CAF846D127FC99679EEBEBEB613A5872B9B88D992D4752 |
055143EC1AA4CA8BEDE8B23CDDDA4514F7DD77DF6EBBEDE6D405A65FAB7AA552 |
25B3D87959E5FDF4D34F4781429C0134C409279CF099CF7C469F48526BC34921 |
3DF9E4937803A6968DC95AC8C75945ADBACE00F35CF4501C18D0B600AD1AE98A |
6A5A673E41C695110A3630B7D9661BF9D3A6E764DACD39373BA15258D945FBBF |
A209E0D060B70EF7D4D8D4D2819E6DB7DAFA89DF3DB664D1903C8EB1B5938B7A |
D2261B2FD3659F7E6ECD661B36E80F29DF576F3A79D6C94AB3BD6FE8A597562E |
D960BD3F3DBF6ACB155B3CF1873FAE1A4BEB2FE97976BCC8A33FFBDCB37DBD7D |
1393138D2C75F51685CE7DFD831C033DBB5927B3D08DDC92913043AC3C495526 |
468B026A3DB2A1217CB38A41D74E8619B2E69C4FC2DAF0ADEB6A5B6EB9E55BDF |
FA566D06F9C4A4D068958135E38E349A64CE363E440C3CA49939697BCC4402BD |
409C172287045D16566048BA46D523C15E145E02DD4FF520DAB1B527AD5DF0D2 |
4B2FD5667EF5AB5FFDAFFFFAAF009E41472F1021D0B1D21B734E5169CADE860D |
D4FC500BD4D9D7E2C679D51E1B601A0AD8A1457BDB6916BF553EB388255E10B3 |
9BCC9AEB3BE7CB35424F68AA00104C55D06E1D9B15B940007450C45022C15444 |
922CD74469E7E8AFE456D179E8AD7FF8877F38F0C003ED2CCE56C078113192C7 |
15E0FEC4D6D127844C30136BD17E6BFDDD77DFFD9E7BEEC17D2BF0100000E1BD |
494441542E2771065D01D577DC4E7345372453A8220FF7DE7BEFBBEFBE1BB9A7 |
0FA9BD36AB0C48A53433BC1AA3E2ACA9F947E7EB9E942A3235679AF509D1C154 |
D51145866D8A9A2CC73A55BB435633E2FE624E2A4EA6C56C0CA2B87F83199052 |
552BAC7F9AA1451F7EFAD39FFED8C73E8606D142B8F4068D634467C645232B77 |
A36AA41C63FD9121DD23E68477AA76DF55B36B4D59A1B0C11DA0897529B854F4 |
570AE62842C746C30F6676A47A2597748B55ABD65C73CDD5279CF88972FA24AA |
B4BDB4DE65B7D112B6A22B4F4C90F59C5B010325B7C0ED842E8A5A276D470AE3 |
F41432E21E7EF8E138FB1A92A6D5F40898510639774AE23747BC359B3A2A7222 |
D1EE8818FD577ECC15575CA12DA2BBC01B600FDB8CB8CE55C4B2969A66C5C3D6 |
145D7EF9E5175C7081E6CD9C004EB72C2010B3AAB37AAADAE4E9BFAF7AD5ABEE |
BFFF7E93C44A2B68076BC75C7DF5D5AC57A447E09F8BFABAC727CAB64E033D5D |
52C61353DB6FBDF59BF6DAF3CEDB7F985AEDA1FEFE25FDFD5363A32B57BEA43D |
B77CE38D56BEF4C70234D8C9476544E725B8B135BD66B83DD6497BECB5EB1D77 |
DDBF7CC38176D678FEC591ADB7DD5C771F6994E0D5F65419145DD5DDD540CDB4 |
DA05FE80E242824EB55CB8178E64812607E60ACD8F3ED73789116176ECBCF3CE |
7AAE071E78E00F7FF803A83414A49F37550180F9CA6FF89A3BCE6241A351ACD8 |
CCD7ADE9D596A6BD2E9A4093FCD5AF7E1543673EC549340C09EBA0BA250276DE |
7F8892250080390231859732F6C1A59384E36F35A9A7D799679E79C30D37BCEB |
5DEFD2B06DC691339BF3BE189DA96AE745D620667910942E829FEF414C709102 |
7562A36A4DE8C03882D575DED9CC1A0F7F27556E6E4CAF98CBC57E1BD31513C0 |
8E225848D2E0DD0D5F3B552B40BDA7F88AC2D6C1F24535AD4433F04C6D575263 |
FA93375E2A03D4844950B7DAE7EC581440ED307A1332399A676DF8584D0E7004 |
AEC4148A6ADCF69801180882CDEDC236002B6F7FFBDB7FF4A31FA14D63B4C39B |
872BC8E6909E267209020E618E2F67608A39120CA979FDEB5F2FA9EB32933C94 |
1ECDA980795E0D86041F66A50B73B7DE7AEBD7BDEE75B7DF7EBBA3FA0EE3D5FC |
57FCFB48BD6E0E7FCC14CA3E990AAA9FE315B82633EF18B81D391D769B022C9C |
870DB6C3E4625949CAE402F47553E01BC48003720AB884DB23BFED6D6FBBF3CE |
3B8F3DF6586905FD095B490F58F5349C519CA0BB22B000F8107175C20C128057 |
BEF2950F3EF860750CBA4A18F7AAAC21EB66E961871D76F9E59715CDEA3A8503 |
F1ECB3CF1728CA66CFD0D0E2027698A6E2A6AC613E39B120001D31883DBAC9C3 |
6BC36990575E79A59E2856975BCEA6D2F165B5B4D27BEDB5D737BFF94D04CDB5 |
D75E7BCC31C77074ADA48973BAD12621BE7C66E586B36E8693705AB06F0892A7 |
D2429799ACAF69B1312C6A3D46D885F3454DC92CB8FB0DC1222D99361673627D |
06B4275655FAFC1766534F5769EC6BC7A4EE666AB6D2064B966CBDF9668F3FF4 |
485F4F5767AA95F2CEFA8383CB37DA70727AE2B9E79E5FD297160D0EB5533E32 |
36DAD5D3B778E992A9E9B62673A2BB6B64B8B5E9E6CB5A297BE6B917F4F093ED |
BCE0A25CB4448B42C5616F6F77C9722CF12DD3A120D678FFFBDF0FB37C2A0324 |
E496BCD19979866D0C0B08037C657D8DEE757CC26C9B5866CE10F4021E1E0ADE |
01318957AD08082CDD1A7DC651C766BDE9A69B3EF4A10F69D7716B1FC248DC93 |
074E2E933F532EC9ED5826AD35810AE3E7171827AE188513AED66857AD1B3506 |
6D602BADF960681007D20A97D92664B7C07DF55F69EB430E394463D662E911E0 |
7FD060F444147BD0FE7D010F9E79D65FA503B8DD9BDEF4A67DF7DDF7C20B2F74 |
04885D4DB8C2AE6D14E82C684C4B71E8B0749D02B33D5D03C4441C964F905EF2 |
2E28D3825EBF59360625D7837D0F3EC305AF1217F7DE7B2F6B6149C2860411F2 |
EE77BFFB0B5FF842B403F085DC8D270FA538C6D3696E5994A81A61BD666792A5 |
629F60766B0EAFBAEA2A4954492D3FF5C73FFE71B98C279C7002210A660C3963 |
166BB04E464ABBE09BE30666050382F8258371BC1DB704EFC5D1B5146A49BC8E |
F385A001C6E27EA4D05D06D99E02B44236C12EBBEC72C71D7770232723B0095E |
F18A57485B91D28E7907EC2479D5BFFCE52F63A839C2F2D18FEB3031155B6D56 |
B2F43BA2B3FDF6DB3FF4D04331FDE4102333833B2A65BA4E1347C59E2A6FCF09 |
336C165D5757C1E6A5F7A71B0360A54AD668BA3194B473E4B5CA5B5D3B3CB278 |
F1C0DA35635B6EB9F99FFDD99FFDE217F7682F923990C12275A25D22E544AB00 |
5970E6CBB5916BA2356214FCD34A9108B365474D0DBB65A3A962B57E50C1E9D6 |
C8380C13EF2A6F1A0C284367596F2814CCB623EFF6ECB3CF269EC06CB84A2185 |
86B2F83A5FFAD2973EF2918FB0038859C54E993EF0A804E37A20DF262AC50F19 |
B64E8B66F2F8E38FD718F6DE7BEF1FFEF0870B83629807C45024634B55188A29 |
7502C2AA5D93CCC62A5457D12DB8A7DCD0ED2EEDCF76D11750C35DBEC1FA5393 |
E3FDDD5D4B0616E9CDEA975737BA25DFD7EF0CAF6C16C2AE21F5DA3FB86868C9 |
E289228CBC7AFD4D36DB73CF3DAFBDF1EB977FF6E24F9E73EEA2A5EBBDF8C24B |
FACE58BBF38A6D573CFEFB270B620F29733A3C77754D4F163EB1F7B19BD035AA |
8EE27166524501A66535C3805B20B4AB8EADAC2FA854AE5603612D10D23756D3 |
69369F1ADB7C98C68E5E6277C26B86334752A32652EDA1F2A4368C8C7425E9B8 |
D34E3B11B0C1885C40813566316E223B6A8020C91DD9079FF9CC67E6BB0E4428 |
A67135C873BEEF23949D044D8199447ECF4F7EF2133618EC020B84A04D9741F1 |
3A621AC0BF315C298473B380198EFF8C5961205A9C08F68CA1DD11FF1155AF3F |
2157AAF7BBEDB69B9680343F07C7BD712C0DE49948A5E58176430FA2E3A6EFF3 |
08185B10C84867E8737335A7121762D59B87D29ABC625436864BB611EE3558DC |
A38F3EFA9A6BAED1871A06EDAD305FC063EB8E5A44495D4AB10980BB9CDA0E89 |
B73A6E430C20A70AFCEC6E25141D3402BF26E22592DEA38071DE382C72BA6473 |
B8D1C56C54410D84C51B762F617059B77442C42EA40ADCA15C2729AC05B8889E |
5D5F63B953204BE0BD54E39FFEF4279E94C09B513B359B0C9C39481AAD9DF692 |
161181A3D77EFBED27B1CC6EF10620DE76E8A1877EE52B5FD1CCCBEE39EDB4D3 |
D6B1FC334D5657B13D4016CA9022F38B0404163D84F580C22727C75BAD4E510A |
DC9681B668F5EA919E927063EBADE525FF017BA1746E74DF0E116C302C0082AA |
32BE29D40F8252123F4B599EA6D7456E7B1B9B6FBED9134FFC510273E9D2C155 |
2BC7E654C006EBB30F9862C4F7B9E58B82CB934E3AE9739FFB9CE6E8C0030FD4 |
C675AC80B6E460CA8D6220AA46188A3A5D22EDFAAFBEA30DC197654695E1F72E |
72AE86B65A6619BC8A14B061E8B899DBA81D7CF0C15FFBDAD7F2B252029E6102 |
59BA1AEDB25385DC4EF3BCCC548001D1A8E8F7B8916F9D952CBE663C465451AC |
A20FE1EE2896B5C035A7DE9EEE9E46B3276B2EEA1FF8D3EA17A5307B9B69B0B7 |
68FEDBEEB4B26671AFA1BC48F64FB5F26677A37F70A8D95D142AAC5E33DE9A92 |
97DFD7D5DDFBF2EA357DFD83A3E38569ADEB4C76A62EB9E492633F7EC2B2E5CB |
9E7BFE457D7FBD22B5B3AA591055E66E604279BBE11EA825C35210D9FA9AEE75 |
E491475E76D96558CDF03A91FEB0F9982A746504FDFAF3F9A694650297004400 |
7D0FA824521AC1F2E8F3A9EFD321AE965F4C33338E48736292AE5E23C9CD22CA |
2F7CFCF1C7237BF39CE3ACB512C1FC6A578D75F38AF2C9711D8BD79A2B6C6689 |
3CB450C4A39DF3BE902CFA9F923272B69C2900B3E3468A31EF335B01FBC80057 |
D108F5EC24ADD9C6766A3B81867DB634706BF7541156933376B08A13112721AE |
8853CB0C3B7A2366BF324697F41320125BF69A2E7D689E61FA356199B9BE8B4D |
6ECC546CF164ED9B55658A761FDDBA27C2DC52C5666AA6017C24DBAFA9CA6AA3 |
5D70D3DD409354A0BE0F63B94D0AFC60C6C3CCC741FA8553DBA978AF5C10886D |
813DC45D28E2689464A5FCB6D6373A2E84E1B41C0472CF3584B94C10DD8EBE4C |
F6716376C92FAC70F60C2D49F024EDEF36673588F4CB7022B47B0A1DEAB6DD76 |
5BB9D7C015991FF45D210F4B6A0E208A24D4C8356450C3B3845224BBEEBAAB1E |
0C4FCE530F2D1465BBB19F57EDE5AE3BC6BC39FAE13658EC781C59AD874C03F3 |
EBEAE2BBEFBEBB0670D5555721DD9CDA7174423B43FFFCC0073E70E38D37D205 |
3A55AE3DDA85BBBB3450F3223FF5939FFCE41E7BECF18B5FFC82ADECFEA0AC9C |
1B3D693AF4E0945739C682818C0675ECAB0670778CCB0E592CBD90C3BAD75E7B |
7DFDEB5F8FE64BAA42A0EC66CE30FB0F2BE4FCF3CF3FF5D4536FBDF5D6F7BCE7 |
3D146F68E68DBB89E42F0CC36081B86BED51D147CF414B864DF44CFF8589904C |
33EE85ED000656447E3A25D9597FD18B97FF76951E64D69ADA76C5564F3CF194 |
6EBCFD762BDEFFFEF76B0EF5B0CDC971E06CC313EDA543BD6B86270706BA245B |
FA4BA8F0EA35239C89458B07D6F193347B3990C8884F7DEA53A79F7E3A2922A7 |
039DC063F73BD9533B33FAE4CC33CF945D053692BEDC8EAFA4D0A40C2A5A176C |
A01E107F0888D84116F1C43767A7EAD3CC3A4B99776F7EF39BBFFBDDEF9293D3 |
E35C78E185A05ED1A94EF0A31B6296B459F51C8C8AA4394F7FDC9A93C48736AA |
AC517864F49691C37A2F97542AE17FFECFFFE9048D73A8F6BC1B552B62227EC4 |
815C2BE598ADE704A9AA89DD669B6D50B79A344E9C233DDC6B3EF737556031DB |
079E8DB3CE3A4BBB4B066E5E91213BB3607046166A0EDD1062BBEDB683871520 |
24C542A807835A5C2C10718E6E399C667AC69EF65499B97A5ED9F40EB4A05951 |
EDB8137AA8F7BEF7BD7280B41CB82E3A9B1ADEFEFBEFFF8D6F7C0375CECC5F77 |
DD75871F7EB8B933AD30781CA23BBDE54B13AB1DAED99654944F89D4226A98AA |
CC77744B8E3BEE380D00F62E5D9F64BCB1F15821EC7947951A815B26722312D1 |
A12888738AB3EB243D33198D21D7E6DA6C9AAD20C91F71BAF5279DCA279E78C2 |
7A84A7C07D02844109B231408628B3E7C146716C0989E7815C997DE523DCA8C8 |
CCE3B18A7D77F0B87C46D80F5E5F0DE6B0C30E2359E6426AE4AA6EE4A49584A4 |
961BD3276310B8C95989CAA3218C3B0760A699FA188371F68B55C1508D46A5C7 |
AADBE3B1996C2C82F8F9AFAEA01BC9522361C6A13534D107E335AF79CD830F3E |
085F0926A131B10E0C3A28AF65404F5B2BA36E63CF13C4AB0B039C99F0E16F04 |
BEB754C11F5CE28D70749D09A3C2E28BC5A07E5E365694B93557800BFA2CB110 |
46FDCDA980A35C70A8242F7B2C12B13FE4904374AA7565F985F24BF8EB45175D |
24BF13FE714E3862C8342E06BA0F0C16C417BA7A4F05E590F89426CE5AE353D3 |
9DA145FDC323E34B160FDABE5EAFB777F5C8787757319913539323637A70CD5B |
3AF3EC4F9E7BDE859B6CBCEC831FF9F0E5975F3E3A3EB5C51645EFB3E9A9BC26 |
C4A1F92567C1D85057555C649A2C0327D0F9609270322BE5A360C6B11599256D |
C282CFB2ACE181BBC0FA5B3BE14D6F7AD35D77DD656E391F781F486F8CAC62E4 |
B77DE6B49003A712C7326D77D965975FFFFAD7D086D47AC5D8D867B67D689D0B |
C802C5CF02E54635DFDDFF34B8CFD41FAE3E4AC17F22A2C8F77D7754AFF1E484 |
100D2EF32D50667113EA255343B623CFA233A569FCD39FFEC4D4C558B14109F3 |
3D57AAE8CC38A4AE87E6BCB325D22C0232184BACC5757D7E7ED45147493FD11D |
1D8613D28791FC0EDA139715111A954B20CD6D34AF45734C21A1CB29AA06FC4C |
D0283E5156E26E00B19341A0A4B5ABECE89795BD142521A39E0373E454ABBE09 |
37DF69A79D46771DAC647D28175616A73E34F5B4EB882C36CDB941ACD19C94A9 |
42C63130965592501A5DAADADC0F7955C4E1885AAD0C21D635717231FA238ADB |
780B4C93E8EF7AFE3DCF2C9C0CF18B2FBED8C2594F417EDD791FCD2A36A25E94 |
C85B5FEA9A72EA402FD11F85A403C1BFC62CF2E06C16FADDE7946372E9A5977E |
E2139F700B3B92F4CC808BCA4C8C15EBA6E244A13BD6B555E60F0E2644748FF6 |
9346BCDF7EFB49709B216F016A3AE3B909F4F1DEFCF2B814583714C6110E220E |
46D5500CD2BA042D55B126C74C9AA1CFB3EF8E6BAF073EFAE8A36FBAE9267C56 |
F06CF6FCF493238F3C52721F28A3C649460417D0FDAAB4F0A9A44F329B95EBAF |
B07A9CCF48A105ECECFA5168B94C63865CA3B808EE21F7E9D478489FE8A9A53C |
0E3CF040F94CAEA3779A765DED764845581CA42AD4E69C0743725706875ED937 |
2E5A77CB1D742D51F1B7BCE52D77DC718761DBE5CC8F34CBC6445D65444BE207 |
4D2C437F62A255D676D30417F85E81D2EA6E66D3ED62644B962C1A1B1F9F9C6A |
4B43AF1C1EDD68A3F5CB26B8C5140D2CEE1F1B2E365E56F605892462AEB837BC |
D9AEA1432C18A43E09ADAA055E349BD8997955B9C15641C4A062211222A0E430 |
8F33373EF9357602EB5D2FB74DA5684E11F5310CDEB2862FF08CEF7BDFFB6411 |
E755C7CF583663A4D87C20BBD88F21DA0ABC90053E5C363B9849D73ED6E2C05C |
9354A54E07C601F346E5928CB6CF7FFEF305A4AE129759E8880C6788264D5FFE |
E4273F29ADC00C585FA62A23BB4033095AE651524F0938CD5C39D17878B8BC1C |
70EC215482C68CD78890C1BBA5D167AAB2B9160B0E83A592416F361282FD60C7 |
23AF1AC7F9DC11BB32188ABD148F1B9E89CD0236A7CEB54ED92DB7DC22F59995 |
2CB629F0DFE1AEE056523049AA956A63F02BAC635ED5D7BA93A91B1D4651C961 |
27894618529AE9A1871ED2459C12AE2D81532AA6E4440AC1F296AA460E043E71 |
67D96F1151E4448999DBB978A3A2408EF8473D8BCC569D68CE78A36A70022709 |
0118E3E6CCEC51E38B6D547CBD08C31827778ABD86848DB8B068D1D6F0255108 |
6B4570764177DB84C5A6F160ACA40C35903CA1908FE04116ED5C9E0A41401736 |
7DA2FD015A327A6CB35F8ECA5A13B884E0E0830F960AD76FDD98364A2B375BC5 |
26025067B999551D601831C7A66682611C7059F64A0CF6027BA15C8711FEFDDF |
FFFD01071CE061103D40BB4BA06B2AD96D59281922501F417731B0E30D94AA70 |
3D290127535D72CEE0F18750C0663B8B4230869ADB55672B3B01358488770C15 |
A8BABE85F86C73C1BB90D81D868E26EAAAABAEFAD8C73E46DD8B1E900E2A06D6 |
EB229B6DBEE5D3A5FF3DB868D1E8C8C8B1C71D77D59557360A013ADDD32B2BB2 |
1C7C9EFA8A9850E19276751A9CC689E9726B56BE69D64CB90692A5ACABD1ABDD |
5978D5A97FD1E0F89A7F27C74855C932F5DC786644A51C17A200ECAFFFFAAFFF |
F11FFF51CBAD2593CAD4E31024C005A19D941E4A3FE7F048D6E88924358035E8 |
9A40949D2FD0B6D79891BF32BDBFFAD5AFD2A650D290996F575D9C91D744A880 |
EC794B38F5E57D088814BFCD76009C56FA9514F097BEF4253243264F9D4FE3D6 |
5EB351B25E771ECAAD203A555F7422631A838EF6CE3BEF4C43E2152B56E84F1A |
008688637DFAADF6863C5A8734B5379E7CF2C93FFFF33FD734120A06984906A4 |
55755D741C6836A82D9FD97C70BE4773A4314E782CDCF48601AF60E1A80FE585 |
4BF74B1AD0D4D6E174943163466E9201C55BC2494833D9F1E22B0BB549967B0E |
8F6B0EB5FD1CCDC6CA77E283952278C36F21164DA58EE7D17440708CCE3FFFFC |
B3CF3E9BFD73FDF5D74BD65B9ADBDC217A6C411A75465682F03521871F7EB8BC |
584960694D9D47C83A0C8FD7C5B5E1356CED81D1F2E56C0ECBCD009A55DF4090 |
47455162E99A4B918402D44259BEF6B5AFBDF7DE7BFD8035F6348216FA9AA459 |
5995BA0E558E55CD758E3AEAA8DB6EBB0D73045582CB4E958ABC4F5D210A7C9E |
57173FE490431E7EF861CD27F3DFA93A1BDA0240967AC0BA2C9EB4215A0E6CC4 |
C96C84A64C368FB04D0978E4155F8DFE445F13EA68C09D582FB0DFF465B97FC7 |
1C730C42E3CC33CF5C878236001DA7533796EDF9D39FFED4140DD21F04D017D0 |
C1F879AE29C4B4A9A92B6D1A0AD48C3EC0B567D6E2C563D40B9DE190AF8520BE |
A3C616B9F84D82EA4EDDA61177DD954E269004CC526DAF830E3AE8E69B6F3665 |
922654572692A0F5DE7BEFBDEFBAEB2E9D2EAC48997E0F3EF860ED58D622814E |
FFE8846B8BCBA1F48E8C638BDB48E3D717A4F00CAA44A0C0A2A25B93869C6FFE |
8928186A68EC9246ABFDAA39D1534B8BE365A6807877EDA6368DBE1081FE06F7 |
97B8B934B478F1F0DAB55DA5D95858E2A3A34B365CBC66E5EA6611AEEB9A1C9B |
78DD1B76FFD53DF7F6F4F70EF50CFDEDA187C8C0D749DB74B3CD4A04D66A3DC6 |
D8F8DA75D8FDB5231B2C2FE829F2B24B562A3AFFFE7BF30CA769A52448E681AA |
48556109615E1A1598F99679B0D4D083ECB3CF3EDAC635FA7E9E1DBD68622C18 |
82E8C40CD686358D7813B805F045B8CEF6DB6FBFC71E7B687D2531F30A00EC33 |
95CD240C89100A6872D933F0689AC8C5C1D52CC07AFFAB2FF801708CF6DB6F3F |
C95FFC952C3459D1BDB4E2DAE4B309C52C323CB7C4C9FDCD3901385C9CE00161 |
303D3EDD5C606DA48F88F7EAC2E1340709B015F42CF48CD327F08CE2E37A4858 |
C95A0B60AE9E46D78B732A4DA0C130DEFEF6B7CBD69425115D40804B6C48AA25 |
517256C07E43CB07FADEC8A3FDEE77BFAB45941D2FA54E78135183B34E3016DD |
0C753333EC40A8DB05A2D70D0EF0CE81DAB6A0AC299D04C40269D7B244F35960 |
3E18AF8E7F000A8B651A314424A793AEF5711D89C033814CAFCB69D81E36AD48 |
CCE1C67029D77A19E91673161AA744A2F4B4EBEFA3ED48DB256D214D827B35A2 |
08F119DC83D27701E5EABEDDEC4C7605BC87451FF1AA0F87B36C9A9CB2E96D1B |
19D8151A0EC57968549CE46C57FA8B801372797A24354B33190F53051264AA65 |
7990EA655AF4CF7528680F2BAFAA177475C274F85E2C9843D873BE580C1C6D36 |
1CD6B4248B269181E298237D38962686C5494D213DE6F9E2BD3F34D8CAE12007 |
5A3184755CF527DD8B002043A25A1C162AB632B30F9C9895F664D582726CE508 |
0699532CE276B80C1C27401F522A90CCFF5911E9A52A230E842AD61F93B138F0 |
C003FFE99FFE893DADBF6A7FBB397CED15CBB11AA1B9A9137B06FA73909C90E6 |
736D2C8D96F804FC4D5435A48A233A654D5A77713504496F810F18C3274EA530 |
1A191EDE70D9B2977450F3860B81BA0B177C4A7E4A5BC2A5BF7742EAADC40F17 |
F5704FFDBE777050EE6D4FB68E51C1C173AC040481D1613C97095578767D47C2 |
45C735AFA0FB56848CC1A94A3603AEA18D3916052DA84FE43C9D75D65984C163 |
EB40BD4E3EF9644AA5C128509508ECC00D456C5333F38CB0C6086896D3144A98 |
085BC5DC70AC6D9D2F545BDB8AB57F9A080CA347FFD52C19D3E7EF138B266A8A |
974FE49FD84CDCF3F04873880C594246D7CC3E3D4E59EFB0AE972A97B20D8D49 |
ED82A2D92F7F0DB8500A5EE991471E79EBADB7423FA42B1F7DF4D1DFF8C63770 |
7FD9E1FAFC9A6BAEF9D4A73E45E8AE53F5BA8FBC1C28574223660E211D6B13BF |
06B54B0B66DCF57AD5AB5E2527CC3A00CE07B3876AF24DAF91420E1EB62CCD95 |
BB914A7C139363BB3AF38D2E6712D0430E0EBB3CCF31488409C65084C712A0D2 |
7F213F300226853E5191BF229561455D5CDF4485E3DBD5B8F44DCA485ACDC879 |
CF9EA347BA9D9E917EC0A90A9D5A5EA50A589742F6074A19E43322C86E77A7A2 |
9EE529D8EA9844355E237F9FD531A480D0BDB5C9EC1034A60662C785CE140119 |
18AB2F5F7FFDF5BAE0E9A79F8EBD02CF9AEC096C20ED2B80753C1749AE82E1CE |
75A2EC78933DCD26AF8949FBD92F774F74B3523E811259BB1CF0BD1540C400DB |
B5670C18B6BE728CB1901461B4C8298E0D3DA4D846CEDE61C6C666095C44F6A9 |
26C56D31CCE866F045DCC7EE3BC62673D14BD4D031165D73B37C6EB1378978EB |
B75424635E35AB965EFA27C7CF4CE22C1591583AA5CFE96D7B9610491C06E4A3 |
AEF0918F7C842ACFDD77DF5D8627568286212976C001074430055209A7D028B6 |
CA0B6C64707A4C4F0F96816BA2C4AF79F5AB1E7FFC71BD417C5C72C92545719B |
E6A19DF7568DA1362825516A965DD2FEF474B1BBCA46494581AF4DC5EA811A25 |
8FA3D14C29D4A3D79E5DDF94689095401331767C2A39BD6329ADDD5019191AAA |
FBC576959DC34F3AE924BB4A668AD69F64FAECB5D75EC71E7B6CAAEA3438B72E |
1B8B217D8C2D7B454879CAA51C12B4EA8D75045A88682F1B6EE3078CF8D539CF |
5D33F4FBAAE58039CBA4C97DF8595F808A596871CA2C397C4A909690AC5BA552 |
544A1251FB4A8F1C87CA8448F369B3E9C8FB314DAE69A2538AC74C493BE773B9 |
7C8E2B60DFE8BE575D75D505175CA0ED04C1909EEEA1871EB25EC158D4E64101 |
D8CF73022B4A30F092AE8D71BC2DC6AB11BE88A939974017A4B288D0374457CE |
46CBDB3BECB0C3EEBAEB2E02609A043865B1E62342B31108F6355422BDC43034 |
FF6ECFFCA637BD49EFB52DCF3BEF3CD6C58E353F34D2CDA151DAD6CAB6B315A8 |
D3A10FB1FBB38A1C0D3198AAF47CAA80DCCCE4FBDEF7BE6F7EF39B59E8EA4803 |
25761A016AA6313242C75942BCD7DA6F44BA6FFEC421457069CC679E79E68D37 |
DE88919142A237BA856C7BCD3CD5C9EB20A2654D5756B264906F22D86069604C |
2B0455B5A23E2BE358EB8505932AB413C637C25C83B191A1B1E9BDB6A8CE82AC |
432433707756DF51C6826AC68220265609D099D11E0C82C37173BECC28C946B7 |
BD40A058FFD45181FEE38A2BAE38E288237C47C428C1DEB817ED25D480A35945 |
856A026E7E4599ECA5975E7AC619671C77DC7192028ECB6715E3A6A1D74C8A3C |
307C5F4D1692487FD2A43018DB5F665D3107503E8B98268584018796A1A215CC |
05E85D682B21B67D361060871D7678F4D147A92EC71566BDBD1B662B603D3E45 |
F47619F38A1782709613489C46FEC9346AFE757DAC7562EC664830C064C365CB |
5FA22D681937D3F44AD14E162B581C2742646EC5A84FB6DE72ABC79F787CF32D |
B6D0808B139B25305C599E160D2E1A1E2D33D9CDB2A7CDD4D4D0D2A5C3AB5637 |
ABDE99B6DEFC5FFC2AE213269E4C655230D62611CFC031D5A3D1701B762DE656 |
4F2A9BE3CA2BAFB4FDEB623389513C7E8AF11D4F46BC628012AE88AC499179D8 |
2D806253979A7DC34220DF678770FBCA179616D69B61590BD425D772C0D184B7 |
16E12298B6460CB09F6DF87AA8A6C6E5D13835EDD0B180988163517E524E1928 |
4B04B74FEE3BDEF18E071F7CF0F7BFFF3DE3E473D4C3020AD849440EA30B5462 |
5416CB2F55E623729C7A361DB198EEE90A8D8FACE02510B55538F2F818385BC6 |
A680B289646111CDEBC5DD7AEBAD65A581FFA26A8E59425568301AB0DCC74660 |
9A735A94B42206740410A432C44A4211E28154B19AA4AA052AA19AA8F3786423 |
F6ED95F2736388DC2B22561CF9FAA4E78CC2D173E9CB0EB412D7D5175C836B80 |
A46B9A63490FDB4FD734351B2B15DD182B30C7E15315FD668977DE79E7DFFCE6 |
370E8CE7156B450AF85F1F342E58CBF4796EF5A777BFFBDD0F3FFCF0238F3C12 |
0D82D965487CAEC7D44DA9943119307B83E533E596450A55CBA9EA936B8303B5 |
EDE442962DC8A413A379CE014424828798578DA24E3EF9E40B2FBC70D75D777D |
E08107B035289FC746335B29F21D92F70F7FF8C35FFFFAD789FFC4B5B4F28862 |
CE3C61CEB3423111ED146A2D5CDC26DDFFF4D34F9BA281330C0BEEA73EF5A973 |
CF3D97CC90A14F84F875323589316A549B9F7C26481D79EA7ACD984E801D4993 |
8040D16ED666BAFFFEFB7176513084F2F457DDF76D6F7B9BEC4D07F40C03B6D0 |
37C0CD90AB9D76DA499B090B1118645E56FAB305ED137B48D01A0C972FF6287E |
0698117C945475BCF0639AC2D7C68DD70843929881D7977EC96EB1C7302800D0 |
7B4C813CB425F03934E5A1D1A7B58C1142169E4E9333B8C6A606F949C145E384 |
B878064149FB17AA2A996D9330BB1C08E96C58135E20E694FB72A6D08FCB69E0 |
F9F60F4C2F8842B268BAF28E3BEE283B007E25977C58FE1292D5AF10A3AE35C4 |
F4893B901574F12E796BFD934D6E4F3455F5EBFA9A5C64DACB106E4901BC1AEB |
35AD414D85CD05FDECDB6CB3CDEF7EF73B7403C3405BCF390FB134CBCB14ABEC |
A0E4950F6497917400512853CA70FDD986E97C3EC3669B6D0690C73ADE95F1E8 |
DD76D58DD8B232F2194495E6920D375EE3CCA68A443AD6E158AE924631E8246A |
50B30DB2C3BBE6EAF6C6C4B6677670F2E37BA818FAA849FB7CCDAAB5E5965B6E |
89D16965E3FFDA8736EF84BFE60EE5116A47590EF5DF262189D039034263D404 |
DD86FDD428C92065A344A23A176D32ABE83FCC3E9B32CC09DBC6F5E5713F4455 |
1ACBD5223F31D2202EB10557F4DAED2F49781245074087CCC4F4B4176E45C61E |
009B4D3A406F28FA9A570163C523E2CD78CE8CD7BEC91590D436F4528585CE2B |
5EAD152B56C8CC649D0E3EF8602A85C0D992AF4D73213B1A818D8B479A5DEDC3 |
6924DF4EF00781E28AF54F7CE21337DF7CB3BE59F3FC8A1C78F95C8E789333BB |
F8E28B3FFDE94F635F1B2E5F7BD59CE9385ADE4728B8658169BBF1B3B9B899F0 |
08A5A63234A18341AAB559B5CCC32C98CD1CE48D28A17CE28927CA9E2055EF32 |
27AF42B4F53427D75D771D07C64C3D8E41590177559D8C5D4EAD43458751E35C |
BCA79D046230EE0DDE0E84AB44568099381E6B6E236EC711C50CAFB544F5ABC6 |
11CF7D4DB73BA702361C373A977CC2BAEB9BB1B2A206D66D54C43A91552D55E8 |
D65893EA833AE77989A3AA9D23A685094C55919205964332911841B7D0346241 |
02BD710C9C688D73B40B6C668E0FF50E98B324D5509CF6066A9E5FAD02DEDBDE |
11C54B2FBD541B12213B9FA76BAB28AFFA1876AAFE04D219C03FF7DF7FFF5B6E |
B9C5B5E9B18604598C3E8B2AC44EC27C91030DEC1FFEE11F207B4A65ECCDDD0B |
52A89F71002F557A8BF80407D959B6D7BDEE75F7DD779F6E4728D24D1DD2CC08 |
99A323358B13C3917209DA33F327B03235F723852675F9CC420C0784A1A02F8B |
FD5A2833D74150CDE5FAC6DABCCD56C05E749F23E2A8471F7DF4D5575F8DEE41 |
8299E11C1EE998C48CA715C4864C01B6B1DD24A29E6E2DE3E2490E29B39AAD23 |
52FCF7BC4C042AC710E37C065FAAC8496C313B85E4221DE3B9BCCDE2094522FD |
EDDFFEED9D77DEE90653B6996C31A45915564C88BD29186AE755C0471D75D417 |
BFF8458C0E6A9CB98D53EB7179E271CA2B12D714407D4E6E2128AD68F566DF7D |
F7FDEE77BFABCF1DDF70719B45462D270DA2415786F05A7F220C6238400D2F5D |
635D778E87841F0951C7A8531984D4F7A590AC87E67C715A4046A0235D89CB1A |
F8EC7924AE5837F8057FDDDD8A524523D7A89A28102BB30FCDAD114C74FBA2BA |
3F55B62A959D91E425CAA35A182DC66DF4D4F47B608ACC2AC59462CA59071C7A |
E8A1B269D83FB6BDB07C357EFDF398638ED1B21A97D8A83A191BFA4B106236A6 |
4F1FDA51762D41A7EA19E088565EF5FFA270B053D1A6CF2E147190CAEB9B85B2 |
31CDF95BDFFA560D157801C6812CB0E38F3F3E1EA19A290D64BA5D76FF65BFE1 |
CDF327A49223D2736E1EA7514830EB93534E39E5924B2E81374A7F75AC38DA9D |
5D65E769ED4CFDF7831FFCA04C280477A362158D52633AF4C48DFB10925B0EB5 |
259D9B5BD89F9BDDF8322AE01A7D81D10F9E2EA364D9B7F3CD83E5600A192876 |
94A93C10583EC2911EA451358FF1DEAE29E0F972E718BB0E18B2EBF4FDBDF7DE |
FB9E7BEE31C92B7E36D3BECF3EFBC80E70D0D52952E234A4D52DBBB3EAE5C9B7 |
1F697437E9C93457D593439D5106C6F7F1D1AC20A3C91811BF5C50F38981F5EF |
38CA2A879266DAB835051C1F04FD815EC7BEB174F54FC806E244B285CCCCCFF2 |
916741B64422A6D93BAD1118DA81794767D4866F7C6AC7476B6E7D9C16B6BD5B |
1E80754F333D406320D2CC7C934BF3492799F8A59646AC1D1C27171A15893DF3 |
932D7030B6DA6A2BD30981E377155D0CAEB212D12A24F8091FC2B1C71E7BEFBD |
F7FEEC673FE3FBC6739159D443BEF6B5AFBDFBEEBB9DFFF376F4F499E9D486B6 |
1618274CFBE9D65B6FFDD5AF7E75C30D37487940A1CC2D88B63958879D15AB80 |
DC7AC11C5511BFCE0238B23FA700754ACF9353FB8E97CD6434790532E76CE415 |
6127CFCB247823762AAAB3BC621867EBB8B88D1C12A21CA09901D52C8153B936 |
0ED8CAB694CF3AEBAC73CE39873818A5FDEE55E090A3B121EE7C422F36DD947E |
A2D8E9E800C8D9DD7A5D4B00BEA3D67193E7720DA5DE4861FFE217BFF8CD6F7E |
133A4CAF6BE2E43CA879ECD0165293C71D77DCE5975F5E64A327279D569FF315 |
83133544ABCB30F4B9FC06CAC06ABE45FC7E6C9FCE7B979F9AE8C0A1AAF93C30 |
0E24F16422755404D5BEE64C988B897D40A884461944F9E2A0518DCC32559CCF |
5AA3EEB2F939B9C346E0E1D3E35C70C105471C7104E39789832A8AD23962CDA2 |
1070A035F2A2A4592C6FB3E58CC3B6B5C407AC4F3535D3A9DA7762A2A5AAE48F |
1FCE0E41CFF7E2B0002B8B7606F08B34B3C10699170C3EA0945FF8C2170E39E4 |
1087ACED45617E3542639F88D7D327071C70C04F7EF213CA10407EE916E0A400 |
609B7D33AF603471056BA1666BC7289410291AA45BE311CCB073EC12383465DC |
937E13CFCB6CE0670A295B04A61E9C0C0E6BED5C95C529113E3D2F766A5671C9 |
756631E93AB68FC8420E2C5BB66CFBEDB7977C60BDC8A7B403736A9A4911684B |
BD06076B541CF2C8648718758B2DB6D8420284B5337CD2DE919738421F5CECD0 |
A848B51AB3380A3D304C52B7C6010FB8500E9837B2E99E7EFA697B3FB507B6A9 |
C211B2F2B365E40790FD52148396FE93769BC6614E09FB2288981A8D91BD2EA3 |
DB0905501F922A0DED2EC7EE879302A6AC96407548A4569AC911D2007447B926 |
54B6CC7786350CD928C86E439CFC7DCB620B1A6BD65A1DB02BB0A374B0FB02B8 |
312F2960CCA2F2FAD7BFFEBEFBEE937173D5555799E22755E552AE62740E2355 |
9E9023B4348ED6810134A7232A0FECECB3CF66452CCE3C630645C34FAB877DC7 |
3BDEF1831FFC00DD40980EAD608C12B81EE6593F69977D732D2F62D9370699B3 |
2FA9228F6C0726DB5411B3D891258643F8AE53B586F569AFEDE4F9641687446B |
AD492075A299E994CCE7B5B5F6F75DAF4C01522AD3841A3F1CFD1A9EDEC82638 |
F1C41337D96413D348D55E363735A5D834787B847FB1B2993A53F45D73CD3567 |
9C7186D69A32D3152B563CFEF8E3D8DD79D518CA1E43CCE145F1CD762264EDC8 |
3FD92F84B283DB5955F1559326BC22FA3A4E1163E0D15C87369B643FBE20ACC8 |
CBBA06B7AC8F991D6283EEBD862996CFAC44888F19C733DFF92518E35902439B |
57B51524B36CE26869D0BE3EB9E4E65299E04434EBBFAE996105E754C0BBECB2 |
CB830F3ED80E4D8839ADDD55D36E4CAE054CFF39B771CCFE620B52E42971612E |
C99B6FBEF9031FF88043EBA893C65C9D28D34C032BCE646326DB1279163419E3 |
21F70F5B3818523C047617D342672D921D40779DE54C15348F2F634C30E7AF7C |
E52B1F7EF8E1AC62ADB2A1996606621D94CE67D285DA99C197707B447632C0D5 |
98D9A1DAD8F340CB677C0F00BC5A6E4E28AB0F80C60A312EBD259E9F31761099 |
5B01EB7EC0D558247A3EA7501A918202B66B1503FA4E68936224B711E1FE587F |
983F64112C920853E0F822C50CD7B4E9C132C8D4D2BD707D8CDCE6F0588DB9C8 |
5D23C1C6C9AA960991A281C1DBCE78E31BDFF8F39FFF7CBE03CC3EDB73CF3D65 |
CFDA0FA6CB29EBDAA8B881E85C64DBCA8E2F8B0416200FE491162831D8C2F4B2 |
8F0D6490207EF6D967413C1A49EF46CB4C72EC1D96AA06C93A005047E9A6681D |
571F9A93D29BD5E94C302F8672B80691580A611C67BF8846582C124E6854ED77 |
6A0F683B17CBD435A67C18237856C0D1208DF1524BA55AE8B8B6CFBDACC09448 |
B59296D67FC9E4A5591077E7F2355D9A938873E16A086EE4325522F39D2F2604 |
0F3885CE9EB153244C3D8DAADFAD76AFD9D05208A62D6C23D632917E96089BB2 |
E5A43F2D5FBE5C43229B65AD30E7D4D97A8E4E6AAD93419AC54B30E75418101B |
D972885D9B8B067D1CD90DD101A6299D33043D5FFD345B825A5B582DF9DCC895 |
6801DB4CD7BA6BCBDD74D34D727F311FB7D9661B19431A00A8916F7DEB5B5A74 |
72FF7386A0B9ACAE43AA88B09CBEFFBEF7BDEFF6DB6F974515573326146B7E70 |
2D329C57E0440E0E25C81413432F6381CCBEE2E0B442FFDDD93B276E7EDFDAE0 |
44A7A58CAAC130228BFFA52F7DE9139FF804DE2A0892B1F2C5C5CDEE494AD5D8 |
60C623DD26C162416717AE9613897CE08623188A85508D93694731AF0A6ECD4F |
9C9598060DF8924B2E49A181290FE836531C0AF7E54C337955D34CE5E8694CC1 |
1D775A0AB1CC2D16F2807557FD461BC59EBB6BE7E32660104C0115AEB182D632 |
17624B5AA3C039E009B5D2251F833223BF05BE1F7455A7A2F58A681D9F49137B |
721A7D71590FE0113833CC82E5425611AE5294AD5BF0F99BDFFCE67FFAA77F5A |
607EF4FD1D76D881D27BA3371D56F5734951496949977BD5BDEF9D7E4B55F0B0 |
5971C43B13E609F451F7D7D0C78ED3D6241DB45676670D6AD002E910EA9A4610 |
9051FEE4273FF9D9CF7E966C2EE931360D03F0303083E4795F78E1853A277E28 |
275009BD9E7AEAA9DFF9CE771E7AE8A15441D3ED88B3763EB78428C05FF01DCC |
52971658F9652101CC8B0EA6180D64B65CFF537B45A442942CEF7DEF7BB5CAC4 |
DE914ACCC06CC5C392F127077BBC9738F0F6F3703BA8F95BE07C354A88FE934F |
3EA97938F7DC732FB8E082934F3EF97BDFFB1E0C85A9340A3980C6B8E916C469 |
30DBBDE2B60F18EA9C1C17B5DC5EF4D2A85F74C75F1628F66D4C33E30A9DC02E |
1955B21D4A1697E1CD399FBC387A4C235EA6E1AFDAF09AE1A79E7A8ADD0BE221 |
FAC1C40638D7D93C39E0F914B0018FA932A6E1C195DEC22643AFC313F7FEF7BF |
FF861B6E702F0A9E9DD0A0532A794501E60AB79AE9C30626366B4194AA321567 |
316253CB181BAB41B1627ECA097EBD286ED600D89F679E79A62C03E261EC6D17 |
29392557DBE171296B41142FB4EE426F4D9313786B41EAE29694A0E8B1D119BC |
853669321F224286BAD7B6DB6EAB45079D833A80C984A7E690BA603D0BF8DC54 |
05A8D02CF9CCF28A144C468CCB18E80695469740C4B8551833E6ECBE5D6460D2 |
51F853798C356F74A1B5246E8CBD32F0C8F32A60FD123E26FB6774938EA7BD16 |
03C9AAF23EC3D3ED836A648D922FD7CFD3A83AA3F11DFFD0EBE13A3C527431CA |
EF69C5083269570A85566C354390CC01228910EB6AFC26AB40C87A0379489A59 |
C439E7CBA93E831B31825C43C226D3A90368E309A95973B6219AA10111C7C3ED |
B4F6DF7FFF7FFCC77FA47ACF9C12F057BB21819BAFA1F01AA1F62696D8F280B8 |
9258A3917D9ADC790C4E724A3512C9178E31C29A5A6DE311DCC525A60F00FB34 |
2BF67F172945936BCE8925EE6AE162672B0F9D278C9E88E0D83457083A7E5E73 |
23CE3FFF7CC9A954F9B254CD4696D0288C78D18FEBCB5FFEF209279CA025B099 |
CCE31044A10C7FBEF3054A9CE0AA31F9708DB1A3881F7ACF58FD630C19F813BB |
C6A659C930DB2BFE6757D5B9B611C8891A556F44AAD1A82489C8D5D9F399CD44 |
C95A40B3E1BDA6A6325DE004A17A35877BEDB5D71D77DC919548573241707DAC |
6B045ECD0C23B740675FCD97039E2F3C80188990AE54D9ACAE77D2A8B446F4E7 |
C00B0736E5CA63C913C23C54DC624DA6D2A275BDFEEC3224367334C7358C2DB7 |
DCF2D1471F7528C8AE55940C292860C709BC0AC81CAC434628BB9FD8A195076F |
624AAE362DD1868B8E753C02EE8C67CE4BD0705887A09477D96517C8E47184FC |
144C38B14F4325D830EEAFB0FDF6DB4BE03BE16552C95AC55AED29BCDCBA8E81 |
9C44566A51040C022C3F173BDC72CB2D1FF8C00730E62CF1D8575CEAA0830E92 |
132531EEC4B0F5B44BD7748481E3687E6C67703A90542860B4B56E0D9DD6BC21 |
880F7FF8C3DFFFFEF7B5846443ED0123E5ED6F99527CB7DD76BBEFBEFB5285F5 |
C53F8370AB533153BA329295B0E472DA983530FCC7072C55959760BB783C83B9 |
B2AA5B03C4755E27B744D6FB9D77DE798F3DF6F8CA57BE42C0C135E6914ACD99 |
5A976C5B07FBF010B84E218D17139FF3CD67C487C74D6313C9510E3B94CC43A7 |
E20147EC32E048AF9A2A86587B6036A2A35AF23E6624F2CB3551DA37CB972F97 |
496E78912EAE73CBE1C1ACF10F09A065552DA30BF85EFFFAD7FFCBBFFC8BD988 |
882C31693EB451816181DA5C6B54FC707C270A2CAB1F7BFF7A23C79D35326800 |
29FFD18F7EF4073FF881F499E334E8EC85D1C85E5FEA987183102BA96200B0C5 |
A07B1D7EF8E1D75E7B6D0AD02D2359FCA48DF00207D00835CA9C6A9375187360 |
1A23BE9CAA660F98989A528246595502A42BC37E9CFE5FBC6038D2B35F71C515 |
3AF85E14F229367A108B6CB6A8B699F358DD80F1E455982D4053E5B439ED8A6D |
E7449AB3DAB3816C163EE489E276F27233C2F914B0C9786993ECFA90BC42A7F3 |
A156E7F8E38FBFF4D24B1D3FC3AC771C8B7DA243F4A10F7D48BEA6B5883E3CE9 |
A4933EF7B9CFA50AFB962A6C33ECF479599C9D66B658F001B110B6A71EF91DFD |
747EC3936207CBDC7FFBDBDF7EF3CD37C355F9FCF3CF231B61A34C95556429E1 |
A872ADF8900078CC563896E6BA1A4286849DBDB8B15B5F5CEB1851D36577D861 |
870F7EF083A79D761A3687F1B996783E53DCD1070A9D6A998CBD0B9280ECFB65 |
975D26CB380A9F9AA33827542A16769B1ED11FE2E7F02121C31AE0990BC21067 |
03D409F254E2FBF6DC73CFBFFBBBBFC303D4E125A53DB76092352A29AC335963 |
9C71C11315C7BA9FAE2B6F4023DB71C71D1F78E00136909BC39809BDAB6A4A6A |
EF90427E146AA72AF6B74D67782453D6AE98BE5370F9A1A50483A7ABE1A06BCB |
1E79E491D75F7F3D62D4647B29C4C3B30051C92BAE5D6D5CEA7062C289D9707A |
3BA6CAC0D7443310E53A9F8CCB2B3033601337445BB1620561468872A2596A72 |
1FB6235BC1069AE9D7231BB88F41C49721B811FA0EF37A4DA9C6A66B906E5450 |
34FFF18FAC1DADD0B4DB74A47FF6B39FC17D8317EBD9B8E4924BCE3DF7DC4659 |
529C2AD05C3C3FF124D86E75A12AC72F9643C449B3B983CCD5BD4E39E51420EE |
D8CE182BDAA8AEE7B1AB84505E5801FB8E86D9BB81C774E88FC9DD9D768214F7 |
C4134FBCFCF2CB892280328D4EA1CB75A2F6F5E637B7545671CE98ED2195AD30 |
B38AB3CC8583575F7DF531C71C93AA6A40B2EC0B3CD77FE995CF047C727DA766 |
B14E5AA1A978AAD0E0D109CB2BEABE9AE5C77B2F379155CC08A745897918AF60 |
2466CC44E0DF6082C83DD57997D772D34D372128AC21D8B1794940381F773DB1 |
0442CD04662C91912AD080D31FCCE086BCEA2BEAD2388D5923A19F920E0E8EE6 |
8D37DEF8B18F7DCC510D270E7529A9F32F7DE94B0E25D218CD0DB26647683A15 |
3DB2F39DD6978D4015CE7BAB4F04A669AE7127005850F19F66E6E6F57DADA6E3 |
C6696624DC4D1D28764833E1458EB1194D96978851568AEDED4A8A5441DCE3B1 |
B234A0B744F4F87D71A73CA2DAB352D7936A2B9E75D6599FFDEC67F5A11B35FE |
E715B0E1BAF6EEA21B63DEBA5A69FE9C782B6EEABEC529E4BCA195E48C1C76D8 |
61B7DE7AEBBC0A18575AA3D1B381B589D48C66054A41ABC5185A0A7D37AD004C |
B08092C36049C191F5C9499575EC07D3FE78E73BDF29F3215510415B82CE0FA5 |
D2CAF8DDEF7EA749910121E7C08D055368D6441E94AC30E19488C845A112A4CD |
ABCE771A792CBDD7758E3AEAA85B6EB945BEA38B9774293A5DCC27E06CFAB105 |
DDEF9DBDCB96D57728EDC59E65FBBAD9A4FEBBF7DE7BDF79E79D669E22F2A3A1 |
66259B040597C41B906B3120CFC9D44D91F27AA2FDF6DB4F9B40C3B63942492B |
CFCE4DC9D3C0779A2AF51609B7F11B102531A5E7731275AA03AA2C2ECB11E3FC |
31B561031FF1AD1DA8F72012F6D8638F471E790496257E684C1F7AD7053C4884 |
05CA819C13615D1CEB63C3036F9600C2048E1574404E22E1700DE89455A02D03 |
9A58AF66D9D8C79A809D03B96EC403A6D0DC5B372536EE18C902EEDDFFC58B73 |
842581778853080C18234FB73EF5D4536573E88DCC9DADB7DEFAD1471F85108D |
D835F201A96A73D9947B3103ED163DB160DDC656AA8C0016850D8652A9150818 |
E9A67FCA9A64FFDBA45B8089CC54948EDC78BF4523E3820B2E90584F554336D7 |
BD58FE460007D1299C601C0C4D1ACD30621896C7D7BD346F11C1578BF4F24F76 |
117C937C4E5F0D30BAF92CBE04E4AABE208BF93BDFF98E3BF7219C357B6F7BDB |
DBEEB9E71E1433320D5BF390430E91D3AC4D2EB109FD884F872EF2C4134F383F |
68565D43B591365D558FB254119CB503F55E56F135F11466EBE3B2261733E75A |
ADDC861FBA6C09CB8C7BD1E0153662EAA01CCC984F015BC2386F92E6B23B9DAD |
E36AEE62E0586054C02CAEBEFFAE77BD6BDF7DF77DEF7BDF9B4A0F4733A92795 |
E7A0B3832DAE277599D6BC0A184200B49A6E09191ED2DC01BA481CE197BBB951 |
590BA4C853E0E83FBE97C4E8AF7EF5AB73CB976EA1CDDA3557274EAEF696B7BC |
E5C73FFEB1B766AADC230D491B9D2D653399C020670C959FAA964A525472D669 |
83CAF5E54A820002C5E32C2C380BE2F5E6EBC096947C81AED988836833CE77E6 |
A391E572497615AC9CA9722C9C72485573727AE272BCF95524EE0132A36B4A5E |
9C71C6196C535C25FBD07945ED469458F3633E7783D87D0C4C059A55C063FC1B |
0D0FFF9827D2E73A9FCF3CF30C4F8449617375B686306738262A11F89A871A7F |
15A3949E3100EDAEF031F816DA452C6E2BE02CB0DECCA978DC6599C029A7FDA4 |
934EBAF4D24BEDB6625E00D2919092A3536377A929604B1CE3094091449F83F0 |
1DB77609386E8A7E02C85C8796461AFE957B0C479FE9FFFF4BF309AF88FCB38F |
7CE423B1F02195242DDA2D5A5C76A959B2CD0CE3ED7DDD75D7C9364DA508DE6E |
BBED64B290B4822D879D6C87B2A696626A0607200BE5EF310362BC987FF8F18F |
7F5C9681C6A0D38D9D74E595576AA37EFAD39F9EF379316763D9450AA1357635 |
75269A6ADD2E3656F25A64258E5A2F90628D8A04AA260D1C5AD8628B2D346311 |
3A0A9883D074CD27B302B63C04799002CF685EF1F34777993BD2739751DD74D3 |
4D471C7104FEAB5C1459AEEE7A6479EBA28654C5D856AC58410F12D210A67648 |
C15630A9051934B7FC8AE87A67D9889C39FE079B8D434736B96A26850F788480 |
38C5431729024518044E992DAC80A304C82B16362DDF2B5FF9CA5FFFFAD71A27 |
C9534750343FBBEDB6DB2F7FF94B1D61E627AFB86C536570DB532793A591D0F4 |
56EAE6FEFBEFC78638E59453BEFDED6F6B09F06DE655C00C5D3A5F3F938D1673 |
9CEDAA6730A78803A6B9069F0684C7017DACBF188F4A15311E5049C60AEF4F0C |
A566A1BEA246FA682D9BCA8A6F8B09BAF5012D33C299958BF2B7ABECD1AB5F91 |
06F784F2D7D34F3FFDE28B2FB63A7486987B69A5910271DE1D346BCCE4968A2F |
A4159A4FF3B3CF3EFBDC71C71D78DB795920CF83DB6CC440C94AD8A466094BC8 |
3396AA4814BB9F8D4B358E39C5C8D136AB466638EB9A674622034DD60C46953E |
D1F55914D711A1CCDC15008BDEF98C3493B08D4D8F39EF1E44B3B753AA8873F3 |
D01BCE71DA3433555C13973A185A91785373FD7455AD063D7E3E44C26270CCC7 |
68661B3C856E1F56D83BEDB4D3430F3D647646BEF38637BCE1B7BFFDADE656EE |
A964964B6FD35C0607BA84A01C9FB804C51938DDEEB39FFDAC548877298462B8 |
DAA9AA7E8173C7CE314AE8FF9502467C1382324F321D3EB2508C61318D0B92CA |
B4085B8523A9B1812A80A02DAB208D9FFBDCE73EFFF9CFFBA8A659544D696662 |
488BE222CB4EC5328803C0462569C2A14BA5CE38E79C73CE3BEF3C7A2A4B7968 |
8D1608416B4B90728A8518EDAA799A0591117935ACD9EC8D1D6597D367F072E8 |
9AFA931D6B7BFFD2F1EF79CF7B2407A456C9FAA7CA97722C074344075F13A533 |
2BA7561791914101023B3C2A954EC5B79F2AFF815D845474E58873D5E8D714E8 |
2D712AF413E97B9D384E2B969329AF6DFDC77C30DF21931597382E2EBB4826AC |
0C9A1A52CFB131EF019BF2B66E63BC1D7B886490FB14609A984074B6029EEF15 |
D7917687C63C11DFCE4BB600BD616E1D6F7348DCE155FC4F24734FD90F3B8504 |
B3A951B02FE755C09AFDDFFCE637FEA7F3FC2E00B01DB7CB2EBBFCB7FFF6DF74 |
BA4C8F401D2AFA3855E1883C34104C15B90F45605C9F289615A713C3FC15DE47 |
9A8D4023605BA9BF7CD184C0CE377833431C716B38635E784D8A2EA8AD8C49C1 |
4E05D9C821C42740461B9E873D2165A32BB8A351CFCC168AF3BD228A8D6DD755 |
355AA6B5B8A42A15BAEF7BDFFBFED7FFFA5F3A00483AF3FA9226D41B6D38ED33 |
39BB1AA7BC5E0D09EF53A33DFFFCF3E5BDB1A7EDFA232B9DCF9031AE2BD00888 |
3D84AD0AD88423E7965BEC66C98BB5E54B7FD238F7D8638FDB6FBF5D3F3FF3CC |
33AFB8E20AEA0E11430B94DF9049E27DECB7315B1FF860E058ECBAEBAE9A9038 |
935457DB20201FDCA85A3F995C0CEB64BE686DCC7DBAD68E78804DF2430F3DF4 |
CB5FFEB22C0099C03FF8C10F74E6B50D220D53CD37AA85DC5B55C33B0E852142 |
0490B0D9212E80A7D7F803883E881CA29B213F015FEDFDF91FEEBAFFCC8BF924 |
8CA4DD088920E59BB67D89874BFA930540F5C6B604A98A3F9315D245D89324AD |
C889EAA1F0CC5CC59B66192ED87FCC838FB9E719E8D9C5E5EBA0830E92CF5D2B |
1545D5219A1748B151EE820796829FCA61C44EA58BA266065B36A25252D5899C |
EE813AB688534CE74EC96C8C5FCB9CE45581562A73FCA067F54F1D43C78D1D65 |
B513EC7C9CBE403BA054A15CF182DC2FA451B56273D34C763236101636363476 |
7FBBEAD7841C66903623F44F7DAE1970C59DC5572C1330FD7E6C481CFB5B8082 |
CC2BCE4E6D217DED75AF7BDDBFFCCBBF689C54D6E232C63ADD3493549248A73F |
6727D85AE576D6C1B6ECFF4B0AD82E90E33AD867AF7AD5AB642EFCFCE73F47A0 |
11FF27C5E072501FFF4649AF4BBB1D4798A519258DFFF0873F4413CD009D853C |
602C779F104B31EC1D1ADA1BE6030299D3083CC7E11DB60269CE4EC524670A02 |
BD07F5C3AC41CC842312931CC8A0D8F6CE4944B608BA9C59D3D8A227ED936328 |
3CE0345337B8E08C94306A09B08C41E479D951F199679E31ED784FD539B8BB6C |
0EEF00EF9CF3F9FAD7BFFE57BFFA152A4A0F22012AA78733CFD6B9E8A28B2886 |
61F1BC89318D4D2199825D198D8054457725E39C198D655D1A9BFE44576627B4 |
52085E711AED7C58E8E3E759C1B005BDE3E576E841389FD8FBECFBF9EA2F2914 |
767234CD22C275F6D7A78BE08AFC4E882ADD67CD867044B0636A38426B472A9B |
1FED1F319F59D94192C7E14CD2B484B4CB873EF4A11B6EB8C187DC67DE69CE39 |
CF11E95BC46E2A4DDB430E39E4C20B2FC4D644DCC38028CBE9ECB3CF4E211EE8 |
8A17E4B837BF37F67CFBEDBFFAAA014139237A7C1C74DC713661CD47C1CF23F1 |
4F3C0C4E3AA822311623557BAA8A9B0DF9899EA5E7D0C4B74E4020EC6813ABB1 |
C1ED83178EBED70589E5F21363C4E67C5EFD70BBEDB67BECB1C70C82C5FA34B1 |
224700BB012C7124028A3914C75409183881C509D5A99470E3D9BFF5AD6FEDBF |
FFFEB14C0B62A276D53F2755954B761BCC301CEB025269B751FCE3835C4B8250 |
10ACAF49FA9F77DE79243B9C37F1214225233F1918ED7D6271A0FD2269A3871F |
7ED89A12AF06398CE1EE4A68D0C81165E9E36FC6EC48C26CF73156D0A600C2F2 |
7B24732A6B0470847447578EB081ED49CFA78067A78AF2503E67D826C71CBC2D |
BA898411691436675E751B7234D4D9076D307D1FCBCC1805D9F1709DE6158E7D |
A176848047D004DE9A0422ECDD4AACEB8DCE983D5AC3D890E62869280699356E |
411095DDE6D0ABCC5B1D24FB4F1E1ECB0CF2330A71CD0E8D83E0277AE73BDF79 |
CB2DB7D83B4F55FD0FF6545E35CDB06185E0766910DFD11C9D70C2091FFFF8C7 |
8D5375CC1C87D8DD3453959FB073BF40F79B886BF7E68BC15B5D5683D1E3FBFC |
63CFC6A8033A55BF02879C4A65C3866369880D401F6F74D58E3BEEF8DBDFFEF6 |
B4D34ED36964C231634D921E5BC16301B03ABAA6EC6EC9299D401ECDFD8E8C3E |
23B1FDFDEF7FFF6D6F7B5BD419B52D6EF16100A7897F3B33690EE37B428EEE88 |
ECBF466A4C9709E515C518A451C86B68EDE6DBE78DD0D48C690483E6D38EAB07 |
F185F61E44609A5B4D3BBD5322C175ED61F3AA6569BB6AC511FB3448AC6B81F4 |
4F9032A499F573608FC66411B9E14F6C3099449A61B64D6DAAFFAF5FB641390B |
FAEF6DB7DD76C00107A4403DCD1EC6E3C92B2661570DB087D97B975F7EF9F1C7 |
1F4FF8A11358C4393E94B6EB6BFA8EACB7D9E0A3BC42CB831C74CF4DC206B04C |
A08063AD0B47182DC80658B81B154B391B22808305357A0AA07A9632463EB28A |
59D0E6913739518D68461360A0A20C69A95F9177A4203586915340BAF04F783D |
B555345402152800FB15368C889371C4C04EEA0A871F7EF8CD37DFEC63CE64FE |
1FE6DE34D8AAF25CDB7DE75CEB9CAFEA7CA7EAFC49DC7B9BB8897D8B4654D4B2 |
4763AFB1DB6C63870D880D763422BD8020A2821D2AD8A0A2A8C12606C5BEA334 |
04151548EC6213F72EB755F975CE8FF3EB9335CFEDB878EF3C73CC39062EC3A9 |
EF1B3FA8C55A738EF18EB779DAFBB91F674F2241A12610D6420E1D8E130D7165 |
80DE7AEBAD76691CF6E008ECB0C30E7233B46D5C0C89D9CAB300C39331DC669B |
6D2826C448E2EB36832CB123C4AC2793E211AA64E6633BA30D811BDC5FEF9702 |
EECD0D22E9D5C876D50018A4A64593F9CD37DF60727969ACCEC0D2025AD4D4E9 |
07930CEA3748C5E8F9E0106F544256FEFC56371A3366CC73CF3D47CE5F5F6364 |
35E51CF88E087A8764F5E173CE39E7830F3E2072D2DBDED25C3F13E774D53325 |
567A2BB2479E7D9711130D33B0A827F3173A8C697412498E466E501541B9C605 |
F46536699D0162F7724DA4BFB15F5C3D62904E23332CA676AE5A2F80FDADAE07 |
DEC7DB0805F3516033F275CCE4AA79A6F485B4AEBE02B53AB0260313524E9018 |
31E8DFA7EC6A10588E74136E4BE262BB141ACEB8850B85197845680E627D6C35 |
4961E87F3B9BBCF2943973E62C5DBA74EDDAB529D7607807F78656DE4E2E0038 |
7288CC613D2EE7A76DAEE20CFDFAD7BF96208028CA304E9E12C36E0EA9010981 |
F05CD241E6B9942B9060F640AC2EB5A5122932AA2E7263A9707F5B19549F321E |
1031E7CC3A63B3353662C4889B6EBA49E6E0279F7C1233A69CD658971943A396 |
3B3132DCC8746F7CC0E7BDD44C13999E321408E9692E1D6C5FCE97E5A3AB6252 |
01C2A056927002E01D84BB6D5CC74B5D2F9BDAAD1656F6924B2E59B56AD57BEF |
BDC7AE23BA66B7CC2567BA0FD03F531CA0231B9975A42A426073CD247A10BF34 |
33FBBAB6D0A38F3EEAAC9659E7AC98BD3FE5330C1A34E8B7BFFDADFE8B1A3699 |
306B0DCC5013386FDEBC2BAFBCF27F2B5AD973074223F6010C2174F0AFB7A3AD |
590CC046EE7D4B157651C446B0A350E10681C6C893B70159063B51981D3022E8 |
C5A545B4BED0EF18B6894D698320AA25BB3AD192B0B48C4B130974F997701DB5 |
0F0864F6BFE641469BA611440EBAD69E742317AD344239AB2D60D31C452EA0FF |
3D77BC8E0674D4DC884A62CB6E36A3BF723063DED333490D1293EFF881B6F49D |
77DE092E8A55FB3EECE129A0BF907D474C27CEAA0B9F7B6BBBBBE849C71C73CC |
3BEFBC23F985AD2A83E8C30F3F34C0D86BE9F7348209EB7E43EED6EE9DE75686 |
F078210E4A6D0F5C2C6B051CB76C2B13957907A38F530E6AB1FC7818DA61A425 |
B4E47604F9B001FD710F21E6341E6032AE26ACD1C1C607610AD946468D6990E4 |
FC6B4043A9BD7105C7A915DAB5A6D0BEDEB2D5C7C0F143361F433241554F6EA7 |
13C318F8CA1A2754C90E84EA24CC9E3D1B74EB94295366CE9C49FE899AE0D29C |
C7309AC9FF5286B29B61D5CE6E2374B8A3CC205282F0016BEB66E82DCA62C98E |
244E4E32C611B9D27C1A07071305C25DDA17C35FDFD29C686F2C5AB4483E04AA |
142C1BEA0A91DDAA2E739274963B0B5C88541FCB1DCB946DBF97DA53E229A650 |
95E496098815A45889DAC21D79A9A9309B476CFE11CBA3BD497C4C1A81428BD0 |
94CE05237169162289321B7D8B40D4C5175F7CF7DD77DB868B3DBEAC147D0A1C |
AE88E85FBF08921D8BCA279AE7D20C8DCC8B26D32654CA88365DD130AD394729 |
F4372C555732F9047840424D9D3AF5E69B6FA64651F78F154406584D9F3E7DDA |
B469C4E4B1AE74730907C9130DC6993F5C1A7006EEF1DC6C6F97E24172585281 |
9B8924801695F6D12D30BD8E204ED8A57A117B9C687A8D87FD0327815EF3B4D3 |
4E7BF6D96789006DC87D73D1B566674330BAB3AA2BE64B49435F9D0A989DA0A7 |
93AC8CDC0C7E170993193366109FE7B801CB8F3C89FA98564413AE016B576892 |
3D27550AB8549EEE289A075952C025CA52105E4032C91311D28B5CF75E6508B9 |
B4619C2B741722F67F83F9C58A640339541B3D6B5BC13560168D4627D0845628 |
DAB812A5469E11B9C7B1B4D6D4B72822241888E54E4C554FD1EF4DB36517D9B0 |
E4AAC08587D10CEDA923BBDB7F2B2E4979FD0B19325CF0948549100F1E3C98B6 |
895023C1736B4063CAB57D555CC45ED44666BFB292638BF4E58E7B1C862A056C |
9345AAE5A0830E7AEAA9A7BCF35247FCB3F45DFFB591CB1BBC7B8CE9B025EED1 |
4645C809D1070E3CF0C0575E79C5772332E9E2CB8DD1957621C254639EB77233 |
478FEDAAABAE7AFCF1C725F21C45C0F205971483ED1895313A446A0A2CAEFE8D |
2C3F042DD04688574C34FED5E7478E1CF9BBDFFD4E9BCA015EBCAB499326C987 |
FEECB3CF52764C5D451615700C21745D2FBA5C6080A2877C286C8F474A770669 |
33D1AA2EE5DA01F68016DD640EBC2346AAB75F33D05439868C8C202BA4FD03CC |
9E13F1774C66BBA126036BFCF8F19C5F67A3504E7C524792723EFD12B8BEA7A2 |
743CBDAF1C9722C8EC0F77D23BC48945458159437B19FF8510EBC9BDFC52117A |
D5B025C4BB129DA69C63262687B2742C3AAAF35464CD5C5F8409C5BA30BDD4E2 |
23F18902EAB937DD7493A617FC9AC3275E05C6890A0111620516A58427C13557 |
487CBDDAB5D75E3B71E2449B560E3098222605A7364637DD6358D7B871E36440 |
B32D0959E36ED289C4FC2751FEA76CBDC5A89B7E49B15C34A45A8104AD33C560 |
B7D2D6865E4A8FA6C081E40BEC406C726C1DBE45E911121828AB016E2997CBE3 |
94DBD48B5B9138F3ADB7DE7AC1051738F4D5CC34C99DF213EDC35BE3F2120397 |
4C803DB4A7E875E147901C193B76ACD688D36DEBB944034584F5FBE71176B011 |
4794090416BEB33BFDD5081A0941A92BF0C36E44C891C381F6F2C4A48B8D0ED6 |
0919A1C71D77DC71CB972FA78EEABF171725F6F22788704696E6AE0A83638F3E |
76AA40ABA5FBB8FD85DF85A4C286C015CE15F9AA62E921360EEEF2D5575F4D9C |
F0FDF7DF27E3982AAEE86A44CB43B3A1453283A6775BD79B10DC70C910FD9D4A |
AC6FF5574CAB370A14A5891DCC02D379A1DE1CAA35E37184233DF6D8631A8C36 |
9FFE2A714C531DDF01E4DDD9679F2D3B0618428C7FD0FA42679213950A9F1505 |
ACA7ECB1C71E5F7CF18544C6AC59B3C86EF05C9D01891B1922AFBDF69A4586AC |
370D66F8F0E177DE79E75E7BEDA5C72167F52D79C6FA00910C19F2FA9877946E |
882E31D601B9AC55D65B1B16DBC89521A84F046BCAF9ECAE8BDE0C4C5829076C |
224491A5D448F48E9E7F1B28948A22471007CEBFA41C3FF0D6D2F9DFADB81E79 |
E411AA89CC17D6CAEDBF8C5B74F0B9D3E0F3C16C14042FA0DFB7DA6A2B6D6FDD |
D021567FDE7197D2618C37B47BD4C8D4F9D82551615B70939C723B74341F42BF |
95F92828E7D07FCDBB07380356FD2876BAAE8B8322DA45279D74927E96390B02 |
837C3FC1ED92211BF925CC9E0D431C995DEDA2525323DC099768A64216936BA4 |
13303A2F7AC0B6D1250DD887A6F3F38473A0A8F560E60D1D6772742AE9921E17 |
1A0B524FDC7BEFBDD7AF5F1FEFE9184974638C9571E48C673919E720652B1065 |
A46C7861D9941430075FD32E3342161ED90436BCF488862DF940C4C5C48B8E06 |
45C885E397F8B2A5704E1C86C52F5205334887DA68C7AE008E14228E7AC49E7B |
EEB966CD1A071B4CE385BAE435CDAD644E69903D0E5892F8B7C4DED89DC3CAB9 |
2774F831399FEDBE1ACF4CB3A64DEFE42E3E2BAE86C14AB6F4099B70F314CA1E |
B8950623D9A1E976734087C18D6C24D0DFCC449225058C2714A977531196DC7E |
FBED25A963501D848B5E503B72432631D724908747EB60C810DE6199352ABD14 |
4D9F88432627D53715828E022E65EBA12FF7A14C9BE2AF8FE93D937379DF971E |
E15D18F765CA168F7BA092D78C2ABC6422F04B1C419A10FBD44940E88B981D98 |
0E4C9A7480A4BF26930380B9A359D5E2221CFDFA367DB8308F6C1DE321B1859C |
4D81FA83ADA51B12A0462B404B9942B5A5A355A034A74D9BA65790B6D3B04DE5 |
A10FEBB93AFC6BD7AE056246AA9579D06F62FF41076FED7EA55A05EC885F0A9C |
82445653066CEB59471D75D4CA952BF1EAC85203989069F2D65B6F51BF84A742 |
6C4643D2875D7E63501EF257BF193264C88A152B7816F9E6146C47340DA6AD51 |
2A9DFB24157A51AFACC9C71D9128A4470B42939C28553D44A74A22D85EAF23DB |
2918CD3DED5D837C8AFBDA09C3AD1298402C45FB61A6C73177102A5C3F5481B0 |
9CFF738537B96A3C07A2535E531E04C025EE730EAC7F00A78288431D6ADAB7DC |
72CBFDF6DBEF85175ED01D68DD4D8C07F5C9621154B3026E85E6A43652317180 |
77E9AF1283044BF0A7B1F370C19D762134058470C18205E79E7BAEF76A4426A3 |
02382072A0815B4665E62D810C771130DD7A88CA46D049E95B5687ADC02E0253 |
A69E3B72E4C8175F7C115034792EDE17B75063D3EA7863EB151E78E001D0CE04 |
A55C4D43E97CABE0D501D49642FED17B0F1B9467617E11F2B4C82D85A00D9DA1 |
6E5BE6BE9B49987E31067AC9A069C368A2806ED1F626EE79B4FE46A63638D051 |
CB6EA0EDCA68BED0CCAD6D6B14702353CD610B00E20506D9A9810CEF86989443 |
3278F060D9A1928F31A7650B8521B971158108E7113B759BBD049C0604B16610 |
7A3C4B431B01749577229DCDCDD262EC50408CE10CF7373B00110C900AAC56AA |
BEBA8ED3A51DBDB96558CD4DF0DB783B8D64CA9429F2BF491EA70A745FD7FFB6 |
0AF21750A98E3859CC3542B53B1F90D895CEB373206BA35194A87237681A3D8D |
9A58994A1A1579CDDED018CA32CB986D1F3CB24A91C9841172B4883DE285A35C |
ADB96D51D15D84901435ACC86E1E6A78B64C6FC8BCE49A4804600B73C0F4DF12 |
213B7683DED4EA3FF6DEE88C94962EE790F0981D82B684ED6C6A12CF087EB9C4 |
7D6FE8B41813B1EEC06328625FEEB572E081074A73FB592927FEA5B9A5EC5F7F |
FD7537E1F8C52F7EC1F275EE1FD43C80C158E1E645C472F5B74A39206FB6526E |
2BDA9D96CEF62C5959278FAD959DF6D6ACCE9D3BF7D24B2F95B7A0A5C415862A |
5CFFCE9933A719D8EBBAAE0B05AC36C409F8C55A007B1168417473E4D9355ACD |
500C3731736A89A5DF669B6DC000DA6CB513C2DD162E5C78C925974405ECD317 |
7BA9999C67EAD4A9B366CD72390366198A10EF961829FE800E02DBDE410BBB5B |
460C31CED23AF28375AA1D3B07DB7DA0E840D017FAE8947691B781712AD477D1 |
9482C24E664F630396A8DDEEFBFF1FC5A59B137233DD98D7C82DBD3B1F6DB9EA |
E1C50C0E742E5DC18036224D7A614BDAD49BBC1133CFF2799340C6A02F12D567 |
21F42C4340D8301B091D35F5B7DE7AEBD8B163CD7C44EECACC067634AB048D19 |
6A527B9F4B4777E34BC6CA9FDED0E2D85135897BF94F988AF01598E4AC649AC5 |
BC6649C1706CF86E674214AC0ADA0EE43D407CBC2B7B4EB6767D56F1C22D7CA1 |
DF6A6502EEFADEE3D1258D032E35BAA851C0781504C71C37D674B9B96FE96AB5 |
53AFD9C9E0DCE21B91F524C5E2D7ECE9687F9642953AEF0223CF01071CF0F6DB |
6FA7405CDC6C6F29118D037254AD82DB04CB3D05FA5237CB24646A854D988EE6 |
7D3DA10F286610017037614486F252C8651C38E811EC834652278869EC9BBA39 |
71AC9B04FEDD2AEAAF6842876A8F2AA7EBFC7BBF59C1F0EEF114A4A071AD968C |
AEF49FE8A6AE911822E4F5F2C94210188DE29110C722010C9EC54D9652B50161 |
994BCCC9AEB6AB12A4BCB5A0FAD3B871E31E7FFC71FAB5C5BD973ADA23A6ACA7 |
99E1945DDE28EB317DF80C5605DB7843E85B6C01AD330B496FE48BA8670A737F |
759434962239DD9EDC1010E49AFBB8B07962B35E9706E07BC5565D0EF899D1DD |
91D22882F4DF254B968C1831C2F1BC9838EF0B7DA80C74C75327A4892D821272 |
37AA56A6B3BEFAEAAB6FBFFD763C6F8AE96DC236338984D9D67C36536EDEE0F8 |
470C2E22702CEA2510E4C2D2F4C91AAE337896DA11302E61D2C9C53BD2170158 |
D81E320B105288F0D5983163264C98009E913C311B9E435A6A19122B0CEDB85B |
AAE8331A8CF60F45DE111A5C3AB9F6467C161A99402602592CDB4DC919D3707A |
DCE5975F7EEDB5D71AFDB0518EE159925ED6E79E7AEAA9B3CE3ACB0DFE62DEA2 |
D3C78A973BABC762AC481AE0438818EA097D276C9A51C680CAB70D58CAFA200A |
9BB9EDAE6DAE663B79377BCBF84999211C4BAC42EF2DFDBBC30E3BC8F97EF8E1 |
87759EB584871E7A2838408A528CE87144DD1B25C2CADC9FB94677C6E77A9B3A |
ABE758BD31595D6FE28462AB40E8497398C1B56A03A5F660A0B1097A05492EDD |
EAB0C30E7BEEB9E7FE47EE731E435E1697C86E9E2BB7E38B2FBE6062BD76ACCB |
8D37DE78CD35D77080F51BFD1EB6CB184E8CB844BD029855E42066139A98C1A0 |
F33433D2EE1819FAE49E7BEEB96AD5AA14AC282F3A5BC261676416FBD0FABB91 |
FBF6686CD48DB8D636C6727D2B922FC60C5B2B978E5FD7F5C24749D91E750238 |
9E0E6D301D4369C4EDB7DF5EAE92152AED6989554A5411BCD1CFFAFD05175C70 |
F7DD779B7ECF2418DE36648EB7DB6E3B7D46AFC37675DF4F878E1CBC2D81F862 |
086EABADB6D2A924C714C110D08DD9E2F97B5AAB8306BC640AA40EDC46942D8D |
4CFBFC7F1617481427C8FA8A6621180D5A3BB4889B66EA5F791E5224C3860D73 |
BD47D77571535B36982361B847F4B4F7B063A9553333D570A608DE184F876233 |
441F922CA2FDFA19325A9C271CD32843E289EBCD3D9788A01836C8E9B01F4622 |
494BCCCED4C8A574E7CF9F2FE34C4BAF5533D9A49783DC0A8C024EE2624A1A2A |
DF6940DB386885C641145BC33C6ABBB6E45A742680099BEB0EA5C204A28C041A |
71104D54C0E3E2468DA70F470BE9110542A702C61F25FE6FA1D1E886F84BEDC9 |
3E9738728E7A32833D016753C1F7B5B798F3A1F37C9A88D03B6A23D34AE7A5DF |
CBB6452BA76CAC61EBA5FE5C580D11A3618694AACF5B5BA7ACABD870BC18916D |
FC037341C0B2E67C4F4F7B73DF4680A463685BDC93A7A18D064B22E906519C13 |
0FE4ED5B99029E407D4CECC1C0AC9782492A56EFA55A9AA4941BB3A7CC4711F3 |
DCD1EC28410F80C53A575A931AF04EEA5A85C24CEABDCCA959C565DDCA4CDD26 |
5423D7428416E7C3EC30B13EBD7455CD839D5A7BDE31D4E1D246840EFE0AAF4F |
3E1E90A049061A19E60D0E457F85686CF6ECD9B7DC728B7EE3EA5EBB4D8DC0F2 |
CF89E58444FCA4ED4B769776823C7E08FCAAC077A49AD89CD1224C81B03E85AA |
A458DDBB21F76D8CDD8408E9F3617B57D142D2FEA143510A7AD433E99DCF9EC1 |
FE306F5DD775974575CF3DF710A13153690A641429A8DB9A1415E7CEF68DC6AC |
A1CAA7D1FDE9003168D0A08F3FFE98894A4131C78C6CCCEC3AB44B700FD71040 |
168CBECE7C775E36340D4C61661A01F39F421CD25503E827ED791E542ABC899E |
862B476C5BA7F6DE76A6BFC00BF22621B4806B7BD96597C9325BB162455F669B |
EA2DFA0450FDE547C35A4AA719900D40140902A1C23B6780A097F6BF11B8ECFF |
08712D1D5BDBB8A846B2783A657EA85F13D1ED324BBDA3FEF56BF2FAE09C752B |
4960E8F67443323E9687119AAAB7D3BF714D1D368BE374900F1D0980892857AC |
674B45DEF39D77DE49ED453A2E74F4EBB88CD3F3C002993E8C9FADF29D5772B6 |
88547D64BDDE78EA5D0650BA343E39FBB7DE7AABB96A09F4D5E738BB1EE0285F |
D2A61452235CA91D9A013C1BE3053B8E785194F576C822E18B561705C364997E |
819B104F43CC8D1E3DFA861B6E40DCE3D4BA63319FDC628B2DA047407BB572F9 |
1030043BC76685B4795E958B724E9E51D98D707EDA481FDE9D21A55C94A27D09 |
5556D5FD63593A7E0F0690314A6850A33DABD6858DBE64C99233CF3CD3A11E5E |
93C83916B43D807E6D128EAEB56C0A054BBC78D4BB5155447A55F6A79B8DC3C2 |
C37CEA6340C75D9E14E9BA9C13E2D82091D97531FE6654672AAA7BE54C9F72CA |
29CB962D2302560F9AB3ED689945110B87A291EB2B480D3A60401487881F4E4C |
23F74D6224881E2681C13B3E54C29244058CBDE2A9E8DA3CC3970646B744ED7C |
E8BEEDEDA51051F4C9ADDA87E0E390F2D8D0FACDDE7BEFFDD24B2FD1150ADAFA |
BED061D057692138D1975C72C9CC9933491EB13A20D2AD8AEA73C0CC1B653958 |
CF669AEC6B6F87E7DC273AC001805253C8E8F035325B21878E13C7D451F2EE76 |
350E04F66462DDE82A30243D88958A1C96969636AFF10762280E1F3756BF343A |
F0AAD631B17F6D4901C7BDC157CC1885D6C19C351F43C98289569771A360B3FF |
4768F59D3245926E157161985972EB6FBCF146B8E7FC314F57699337DA592125 |
AEE7CC99A301E805F5ACD8EFEEBAEBAED39F0CF9EC34534A411A4F056A888932 |
32891483AC99B163C76A736A7EB4E1D942FC55FFC61CE5F7E7B459DD405EEBA7 |
B38769E3AE4155219DAACB703BAC48F6598D07DCAAE8D768522440AA0841D977 |
A8525AD3BBBB991D7C9D19BDB35CF9B56BD7521C066735247FEE9B143BCCD00A |
D7FB3815981D393AE0D9F41B498DF7DF7F9FD3D209ABE1BBF69E29B66BD63603 |
D876DB6D65E4223ED819EEA39CB2696683DDBF24AE106963BBDEDF548E71E1F4 |
146DE851A346C11B356DDAB4C993271365AD11582459314422058FCB99527BD1 |
67D57DBAFEDE44C7CE3A434BABF3C38127584A0DAE9689F827A4D9908871AE40 |
FFBBC0408EAF8E1F1293C3EFC2410074E6DF801DD7A8A8C88710476E8709C1DA |
5790A9D5789090AC9D71C61930AC115A27181E438E40254CAC8FFFCD89457835 |
039B18138E858E3EF8D9CF7E76E8A1873EF2C8237A0BCA75AA6493D9631CD4E5 |
F755290F072AADA7BD3939D1A98343A37EDDEDB2104D0515EFB02DABDCA9697C |
99AF4DFFD29521859413FD225361F10061A93A17588DEC2514BFEF1F31105687 |
8CB337B74EA114B526E5E402B3A896BCE2FAAB9C7E99FB3806A65FF68BA3DB5C |
40CC53CCF58BCC61FE1D567490209E4D471CA34DC665052C6D072482D6148DDC |
3DA26A1DD9F918FDFA79FBEDB71F3468D0430F3D44A538A9106F547BAB46CFB9 |
A13554BB7A3B4D2CECD024A189A211C6D07F2FBBECB2C58B1743039932CC1888 |
99E58F21059101022EDE14688B4C3E8A5D4B45AF74644F6E208D442D052F53C8 |
1EFA72A52BADE50DE682B50D43537BE697BFFCA5862D3D156D1AAD32BDDBBF4F |
F5561D98D871DD38D2FA5067D7EBE73FFF39DC6C76F00198541DB0689DA576D0 |
900B0FF0E476DD75D7AFBEFA4AAF4DAB9C75EBD61994ABE3A77703C3C2DE825F |
CDB120D4926999F9167F0273EB7937532B5943A41B8DCF4A1BCEB126CC376D14 |
626EC01FAA249449303664566AE269CDCC4BE7EDCE968DB171B725D10BBAA2A6 |
7435735B34C898F449B6A09EAB5FD236CE558C354C6784FEDC1D4F1F8E641751 |
54A50C3CA959DFCECBAE5B4424910204A0E14FC6D0B434D991471EF9F4D34FC3 |
A16D9982D54C2307A4274276C08001FA3D7B892CA96EA24322978B574335C6BA |
EA5288D52D0B0D4B34A747D7F7429B52C3C3731D946B74547A7859090C626319 |
A05E82C344B54A45B8D6914FCA06B77F1FD5707C8A441E352443870E7DFDF5D7 |
4141771D7FCA94C2CDD02530069F6D05A66A43B027B3C6C2F98378D53DDD289E |
7A5C6DC8529360DFB3915B80CBDAF8BF8B0B3B7B8F3DF6907D230BD2C8DEBE4C |
315B6318E15C3A818D1037B8297574E3D16724707EF5AB5FFDF6B7BFB51F66FE |
E4CEDCB917B7E468A68075E232B4854C53F4417B738B02B8F91C53E5243A4C82 |
2636C2ABC4546A4FBDD18EC4646084EB24A5B561B42E3A0B1F7EF861AAE65CC2 |
49708B178E83433B483027CB1C342A9584513A68BE3F6DDDF1E3C7CB13D53B22 |
E1A1DF21BAB6E38E3B6A48B14DC84F7FFA53A9FC4F3EF98454A08F4344D1533B |
D7973BE544342535A5546D1D77DC712B56ACC0ECB002F69E890AB824C1DCE7C6 |
1030F72E32C5981EA489855D24024BB5E71150DFF769A8F1547C8C914AF5D46E |
5597D52795A67D995CBEAA3EAF74EA4A383A569D438B89C039D1FB68319AB91B |
54AAE8CE6B33C46A3565758258C4106B842EBF5CFABC564B93A079D7F223AD70 |
CB28844FED66977430D680A3EE558ACD46A2998970825DAB9042FAD6BDFC5AB9 |
26121C443DE100C74063D08725ADDE7EFBED529D5F6C2651E501334EE78A6260 |
3C05EC5B245BA8D90F5D2F3838FD5F3D0B90114977C4969EC818C85F92E4E390 |
A30BB19F484E47C1E75A73968C083CF2CE1634F2B4A4504B0106E6217621ADEF |
BAE379230043FCC0F524AD40779072B98EDE0B961F22F0E0547B32B97CABBD12 |
01754BAD244F7127B8AE13CEA635F83965087ACD7A19BFEDE8ABCF91655FEAA6 |
694ACFD5D2941AC699D30D0406D302952970BF38F846004E92ED26B5E4014009 |
071A8860634D3D3DE638D1DD134E3861F9F2E56C39F7E1B0078C68A600577F3D |
F6D863253A3FFAE823364CC921F19823EEA611F0CCCDD03D7AE79D77FEF4D34F |
51158C07F4492AE48639598D2931B4D08E84F7434FEEF9E1D429D024B338A50E |
378ED34A9B57FAA3EB0565CAC8C27070B8B485A29945EE0C4CABE9513989A53D |
609B75BBEDB63BE594536EB8E1066F09DAD6F18389BDC03CA2CC6CAD322D7829 |
443DF9D73E6B3C17ADA23EC2B00C73CEDBD84220EB5BC816A25F2950A0FB354B |
E8E898CA41980C1F3E9C226F0904ED408D53BE101A33E572237725EFCD7D9CE4 |
01EB2C6CA4C0AC3A7829E7D5528002F5D70336B3318E2F50821A8551F5FB66EE |
9F63EDD813E8E9199E29A5F80ADC9029870BB0DC013D120C21CC624F2E5E8038 |
407811F069E4EAB738A4463BB498C7E1D492D8D3CD35695A8C9AF775BB50171D |
A600666916ECD0124C46E260BBC5A0420D08081C04717B7D1DB78F86161A1B11 |
78F65C23334B542D652B5761E2204211C59D3BD56A7F15B0CB6F62085ABFD409 |
9190E240EADFA953A74E983081D2611366C1474366881A65A82D7865BD2C7B98 |
47DB8600AE625A7FB6103AC0D451A584995D22CB44733257795AB7DF7EBBC6AF |
7F6D4DC756A0A93DE7628F047C033487917326B50B417E60487A2F82AEA9A807 |
E3FC576D39028F5494C999F8E0830F52F5E5196024A06AA38D652155E5D3A7F6 |
6E600011A4CE5997D83208B1C8A14B1DA52C5C469622F1A9CE82147AC488110B |
162CD04D2EBAE8A2FBEEBBCFADD83A2F760B9A03BF045EEB1883F1BBC7502A67 |
8D2AF6A8593B57273AEEF12DD83CF8463C85E526756210161CCE50DEEA5F5E16 |
33CE92C745C3460961531AB05642C9441DDCC868F3382DBBEDB69B3C4BF3AC95 |
96208630A30705476CF4411DB061B74748F0A851A31E7DF4517A3495FA9A44A0 |
3ED5804698D3022065CC762A68C089E4459FDBB81C07E4409BD3C25CFB0D371D |
2C981691B8140799A44F0AA664E7598BA91C3E1CD124906AB046C64CC4B4694F |
E872B1D1B7AE3A759442C293C926FE21BD5F3A2F1D89356BD6AC5FBFDECCA23D |
A19D53E7D5F50CB3B1D0DC863E1AC26A20B74BA4BDCF9844939DB296CE864211 |
E73C0A446ED486BBB43F866E88669F7FFEF93ADB0EF9761E304D9D1E645C4C4F |
41551F8B854A17DA05A727DE07A882FEDD6AABADA4244C97436CCA969A76C041 |
071DF4CC33CF74BD39121CC4AC33C13E15F6C09843A7723B2F7A36EB8BBA09B8 |
E2924FDFA8A8CFFE8117072362EC0920BB5F324625DDE071BE69DB872D8959A0 |
A579E4914760C636E4185259305032F01F7CF041DA2D5C71C515F3E7CFD76780 |
E042194DEB18BBA79DFBD0D36576EB92F55DBACCC866E30CCBBDB39A207A90F1 |
E93EB49D1A8ECF3B8403B9819E78F1C517CF9D3BB7F3FE292B4B7B45C68F5445 |
3E30765D6492B2C1EAF867F4186AD61D3FC0C0579DA37DF6D967DDBA753A205A |
D03DF6D863EDDAB520D5DD3095ABB40AAEDF6D854A364F26912DBC0DC3C4BA8E |
A7950BF7B56D2EBFFCF2C9932793D592FA2995E121D691E38E90F9EBA0174B59 |
F01815288D9FC8562BD7C4E3A3530B8BEA6DE5DA0A22A27A23FA1F370A76A368 |
AC78E6A302C62EA153727457E2EAD8176FE42E1D48096879522E30EB342C6236 |
903E25DA7BA466B1771DB42BB108787E38C5242070F7D105FBEDB7DF5B6FBD05 |
29A1E939DD8F9999717D91893580CE4512402F37CDBC63E479FFFDF77FF9E597 |
537BAD0730029309966CAF78CF38755E7D9C52583F01799D75D6594B972EA576 |
D752BA91F96B4DED8E07FFFD025585A0FB0A1A52D2C020C7227FDE0FBF0CD9C0 |
B9F92EF49DAEF9565751AE5F6A4843860C79EAA9A75CD7657C32DAC5C9B99EDC |
5EDB9C0CC667119ED25FC78C1973F3CD37E31CDBF2658EB89B7E397AF4E8458B |
16A18961602925A862452349327969D3A64D2334EDF6F5F520292D8F74C05D77 |
DD65586F7C040A03F3227230D15305ABB9CA0333418AF4B476F9EAD5AB09599B |
FA27B59BB455E39440977CD4D8F4AF660613C4B9D2C81B50025F94AE9A79183B |
76ECF5D75F6FEE4979BA37DD7493D98075730A2ADC7815EE270DDB4935BC5B80 |
BBB42AD37CC258628715E5C74C5AC7DB12E70EB12EB6844588A2DF78A29AC810 |
82839D138BD36217E478D4CDDCCBA37B4313F8D4618937425B785364BBAB58D5 |
B4F765FE57E204781E55988C7818DDCDB4B3053282BEC47C57BA897620B1076E |
E88219E61CCF467726B91B43DCF13E3680A0CA019CC17E7688CE03A680B06A1F |
9ACD389AB3CE16C5640A3A8CB7D68ED2382510D00D6E6BD8A98063AA3E0A3D76 |
9723318859B6220841C78D63D7C8DEA2B7A6EC609DDFE87C47EDCB2565205B19 |
0966FC510A065C94AECC18DBACD9DE2F32EECC526E9B4F4A4DBA33AC312BCEC7 |
D9B14171600AEB33B2921F7AE8214E9FD3254E49985DD2BC3AAE023551A0C3B1 |
8DDC8F39EA7BCFBFCF32351AE848A781DC5CC4E34CEDFA3546BC4A27881970A9 |
A4E48F6C4A760EF0460E17E3343D510A7C3E3E2675216828C180989BAB883C99 |
EB4FF0E2B56F34116ECFAEEFE2A73602378237376FC561E33C0301B508881A4E |
7F923E0344EEDE6A5ED7C8CA4BF4A399FB127ADE2D2C8CC14E85158F9EB3DFD3 |
5F8FADEAB2BD89FB1BADAD58A91C294AAAEED3CA24A0F81C7C5D524CA69CAC45 |
8D1F3BD1214DBD9D0BF25C5183A00163D9C8CDC5EAAD9FFF29174290001A1A45 |
DA57D60F3B8A55D38942677862F579923DF8EE006BC91211086139CC2400A697 |
0D536F70B83E1BAC8D9CA4050B16B886CFD22122992549E5C9BDF7DE7BF63F62 |
F29EC0209C44C8293EE30EC72513BE744587D81A54C7FB9A6BAE59B26489EC4B |
D7E8F383F37F48BDABAEBAEA8E3BEE881DA04B979388F197744F933F7DCB2DB7 |
60CE5A14F4E6D66C884BB2A70EC59B47C23619C610F90EB740C63C326D45CAFD |
0423B289358DDD8BA357473A46BFDF7DF7DDE5DF90706916CD6D58A31AEC8591 |
2824D1F50874A1CF2C123C7A511A1EF146C7E45051FE8A13B7CEF54648545C65 |
F0F9FA62EC38C96D510CCEB8EFBDF7DEF445BEF7DE7BB58E7A352CCE2DB6D802 |
6D2D990077234CCEBFFAD5AF9E7DF6590666CD14315996C6CD4C05D8991BC6D8 |
8AD85BE3BA1D4873FA0602DA934F3E59E374E36D1AD6791E48DB1358D67B91E3 |
E318C2C8612B9096A63888CC9EF3E23DB9D91AEDBCC8A140C0E91635F2D05E7B |
ED353EE9F422D3CBD9B1A5E2938509058932F2A72FF7C18CDD90520869980836 |
E227C8145080CE1C8243326F41CA7C612983762B15308F2F1598734E5C7748D5 |
4AA44D29E976D6CCA8E088A1ED7CA2D321101251854291ABC5A8D3B70E3A1921 |
6282E89ED03FAB91EB1398352B6903655D7DDB5F8291AA4B4F84B3A92734E673 |
AF43CC02AC3F6A5EAB220A31DAE315E1155C7D8196F56695BC38FAE8A39F7CF2 |
49DE1D8224F6812613299F72767973191C9BEB0215E5BA7EF06E66C947719658 |
DFB6DE7A6B6ACF98077954905CF2155BC76C2D8332348D3BEFBCF39FFEF42738 |
476B729604575A05F7F58E3BEEE8B8A8C49CE432A9B894633C6C518C21D35DF5 |
1454E4AEBB60E74F9A3469FEFCF9383416E284D96B72F984D4B0746D9148F2EA |
37883C97D3940A1E40751ADD5AA3E04D5FA37BEA63BA1B1B69D0A041EFBFFFBE |
3F69239B78AC83D8BC2F4A2BD2E13979ECC62A58BDFAA23B2A1AFB8A67C94233 |
5D988F7A96DC08B7F1B6764F99CEE2FEFBEF3FF3CC33F190F42F19B8C30F3FFC |
85175EE8FABE403420F0F2D9DF90DB4BF35FA012280F83481AB93B35E6AC535A |
2528493374A52D81EA1BB928FFEAABAF9E316386C4C5F8F1E365E12D5AB4E8D2 |
4B2FC562D05C1179D6CDEFBEFBEE51A346FDFEF7BF3FF6D8637D5808FE918C37 |
9997E6E1A28B2E92B5C47218E64290D975C6A5288533CA29D035E3B01AACE44F |
BA941958936C88B163C7A65CA985DD83114C2CCA8830DB1F77DD7597CC885641 |
6F47628279E675501950BE981D052146EE869C233B13D224074B402FEEB3CF3E |
5A74E05D58DE0C8C43643118777E0ADCA829C4667C94D038461A3532A785E601 |
41610FC7AE604C83F6E5D6B7A5E76E0C9374DDA07E49A832511829501F704E76 |
DA69A7AFBEFA0A64B2AB27A1D063F963790945087A1313D7992E8E1D892D8C48 |
C24C66557A73AF78986035A1129DB4D62148EE438B29D4CA78694C4593A1F8B4 |
EB9E1249EBD7AF4F45B4D3C1B17FFCD21359BC66EE200D3A867C095314DDE2AA |
F90766054E449F21CAB121F71EA0860A92901462686693367A8E5E1FEC0F13FA |
A4FFF514300AC08026BD0876B13B967038E1BD239BE8AEF500DAB14264956BFE |
0DE548ED84919EF9AE0506A5F190E56DE6DEF24CB25673B7DD76D3CE6187C7E2 |
108448A4B4E5B20B054683FA723B8B1C285CF91A34752B143FE8875D77DDF5CF |
7FFEB3FFEA784FCA71A618306F0506E61A83CFADFD52B6864B2F122BC4A8AD1A |
3870E01B6FBC0131CB942953A44E0E3EF8601904E4F908D23A004BEE40F71C3D |
7A34C5F14C1D1F88A68311C8A5D172BAADC3E25FAFB9E61AE960377633E971CD |
7C22550DD4009B22198DAE2D51A698F6D9AAB4330AC24DA64D9BA6A9704B06B3 |
E7A6C260D212CB389050C2D88A76B6539B4E769AEC938405A292013B84E67A5F |
4E8413B4A85E572A32E6584D4EE233E2613BD1BF29B77892BB2267D7FCBB7AC4 |
F9E79FFFCA2BAFE001632A99AA562F72E289276A6358A8A2D2F431FD6CA48B43 |
B84C6FA42F341CAF9453F025D1AAAF0C1B366CC1820578D2C8370DDB08E41871 |
C40487A9307503F73945ADC33872E4C8C58B17EBFE285DDB5EDC13C618F85E62 |
E246BFD18789035968A47642B7945150A970849881EE1BD404058E70A2DB992F |
D04FA81659409A052C0BB685A3C43C184E6083938F3CF2C837DF7C73E2C489B2 |
E968FFA23BEB29FA0AE11DD35E12A907B5C1C69235C0E482E635E69E63C34BE2 |
82A482285CE2E08F7FFC2325CFFAF0565B6D25E9C027410178E1379742322C59 |
4B357CF87059A39046E12EF06AB07CD830ACBA4FA3A8F2266A8725E19A6CAC7E |
4479ABBDE32C1E061CAD9AF3923EF009EF6F2EFFFFEF8B400505BBC62EDE79E7 |
9D12ACE60440E2CB7905340E864E675BAECFCD37DF4C168D53012703484BCEB0 |
453C334FE178CDFCF32D668923E084A296126164524F5641CB8AD06F65127510 |
3AC48DB41B2172B1B7A1016B93836FD75B80BEAEE9EBAC3B902CD4429F76DA69 |
1270700B1353F92EB794370AD42206B58DDF594339E984910425D04B738781C8 |
4D4518D059C09933672E5CB890BE52925C1ABFDE9DBE082E66450C2183704428 |
E4D5B728226AE6CEB22638848F02A9AA7F291441983A6FCA1513AB7AEE09279C |
20EF2A15BDB924256296BAEBFBDAF7050F41D3025B54A93D95C8B734C8DFFCE6 |
372B56ACD0B089581885C7A18B1D17F49AFA22A7D25AC1DE556A6F275CD29466 |
648C3452361FED201A6F61462D5936F3E6CDFBF6DB6FADF5FD52C631914A40DF |
47504E2C3437018B3EA691ECB7DF7EEFBEFB2E02331560692DB781A5AE1AB227 |
A0F32503D12D53BD09ED89192FDDCA95F41C13633522C0FBBBDC6EA82FF7C340 |
A611D701518FEEE06EA48DF474EA1A9003DE905D4173D103768C16A810BAE381 |
071E909C7114C7F493F15CA7EC48F4E4E64BDE36B10ECD88998D8E72D506A5C7 |
DCB871E3A445860C19F2E28B2FC68ECDAEE19B3C79B2A42461318CA094D9A3FA |
0A0E5E1D54B435795C8D9EA2FEAE8292A113E471B1BC47A5A9E11C4224C4AB6A |
2432BDC13D4D9D3A553FB3DB747FA84FF00BF1B34B74DE9C9C4DB611FCE15724 |
B1622139603A18E3C78FA799A043D335DD93646168F289736A21060D1AB47AF5 |
6AF9D325AA2F340AFB29E6CF0804B93EC74C78ADDA22DDFF89970629198A5195 |
323394F33140F9F50A9A1622AEADCCDBAC8F4923EA93FCAC49AE32ECB83C4BF5 |
A87E1F92545875AEA337642322EF52E6F8753033A2FD7FF2939F38D6DA2C6884 |
C9CEFCFAD7BF7EFCF1C7F55E18BBF514AD8E64326CE2E70E1E7246746A3445A6 |
6225118571E90ABAAAFB63CF9532A6D81CF86150C4C056C60982DFA6119A9B19 |
D6C4C56BA6C2D8274944741110099E44CADD249958CC0BCC62433D52287968B6 |
B7808C10390E7BF4362C8E3A2FE65CD3621241FC66F7D5415C10F300234652CC |
3902746AF4BCFB32DDBF8EB65EA4AFE027D72C69F561E5BBECB2CB24A6500F24 |
D7A0D7FD2E7446076688DC2727CD8AD3BD9BEA419612F7A32F13B532C3BAB4DB |
77DC7147592D11F11E39C62585D09DBDB9A15EEA50C08D5C6BC7F2D1AD8730AF |
67C086720A58F4286063EAC7668D3368F1B255EA208D7349C4DB238907314E9B |
9B6653D1B3A85632132DABA66D400D3A2E75C942F5EB33720913ED2222AFA469 |
CD7D0465A98D24306810DAE8325CB42AA2D06C6F8F8DFEAA0B416FC81DE864B2 |
593B227AE0ACC1341E3A74E87DF7DD07B796D128FBEEBBAF1486768F2405C579 |
B006B229F52D8DBE2A5468A82A3FEFB3CF3EAB56AD024B86CF7DF2C927CB0895 |
EEA790AEAFE8E40A97371160DF8A33499E98945E2AFAF33433C73D25D8A01EFA |
A12EAA2F4071BA1B2C77C4B270CE3478F6BDCEA48EB4ADECAAFBA440A2E6DA18 |
7B72ACB79B052132B063B493E4FABFF4D24B5803CC063310DB95FC2F75F1BE9A |
191D575488931D1C7B5AFA70CEF51BE27890891263183E7CF8BDF7DE5B95DAB0 |
59CDD4B91761CDFC3743073D1BC5C84433CB5B70508A0A75808D2A6D3F1D7BA3 |
D0FB329F3EC00D9422F128FD558B08EF66D7F150FA0C43426C0A198B946CFCD9 |
5C88FB87A6C255A0242C775C04721FB2F96476DF70C30DAE743451062927B23F |
4EACF05DD43089734B0C6C44EEAF77D7599629990A058FBA8D6902330C13D485 |
8F25F6268F2CF9114A638CA7DB70716ABABE2F45B71484C04E0C8CDC78027DB1 |
950B6D23F49D9204B3A3901B721F71F9C71286B8AD7CA5A4B6274C9870FBEDB7 |
1B6F55625533379FF4F44D37DDC4F6D06CEFBEFBEE52A8F6D1ED0B12FFC342F2 |
E9B01964DFDDCA5B7FD260A8AD4751495A7655C04EDE7367771120054E93F966 |
E8959B32BB270040B69C09BF305674134D94AB409BA16F4D4FE831EAA07A2BF3 |
46917945969AFBC14D480DBD761343EE2FC571FCF1C7CF9E3D9B11BAF632750B |
419B66DF2143A72F61BC828BD476B9CEC277456F6C52A56674778D5969735A01 |
C71AE58D345E350231925D303B9C64BDD5C48913D9AC3A4EBA29E2CC34A49A1D |
BD2DD3A1054B8539A0B5D187F57B4A955337B08C332E36DC860D1BB678F1625C |
076D5F999C3A605A180D03DC5A5F669E4B8542C256E06A861EABF1EDA835B443 |
F323CAABAAAEE8CDA422E20403B0063C6AD4A8BBEFBE5B071B69AE4FEAA15565 |
126C14809A71FCE67B739E2FD6F931FF5A23FD468F28355672806833BEEFE6BA |
7A435F3C98EAB4D073E6CC41D3B8909F774148999A0EFB8339EF9C4F5C2237BC |
C218BAEAAAABB4A9FEDFE2AA9AFF883D2163E7BA4623AB4D59C0B922950BEC4E |
E3D96BAFBDDE78E30DB20FFA3DE5B93AD8580698D5AE52709D5ED7F1B4722B24 |
77EC6814FD98B5BE54E8C6636F4D1C6B39E073A82A3732E8D24F69164DC1F52E |
7A1CFAC315C0BCB5F715B361984869F20D3F71320F9F0662044B0CCDD2175F7C |
419006FF8332D98B2EBAE8AEBBEE924BB76EDD3AB45DEA10A00646A5E04BB966 |
B76A3EF1EACC4E6C4E2559F3D80729BB8FBC781456CDD0D54DA3A5233D8B427D |
4B4C25D0B08BB30C920896E31428573506C23C7DA14F063FC4463D067592F570 |
18195D48E400A54E602FE5389C756A2A7C50A9732F50CCA9B70247B4730DA457 |
90D8D165726C20A6366CCA9871253254A78C90C720765B3633EBB976800DA99F |
F5146D033C60EE49A4C7907EF46EDCB734FF4E39E0CF386DBBA76EC41A869EE1 |
34737E29F03582183241DD4AEBA5E1912CC38688989EAE5BAEB3C6E1EF75635D |
37682337F460CAFC335E26F00142795E0F748369421D168009599725113989AE |
E52298F9084DC8407A73DBE09EDC9C98A9744E9A7A067A45D09A3EC213DCB4DC |
6564FAF019679C215DE862D04E68DC8FBE5AB91715800B09FAA54B97D23B0C64 |
2C1693A5554D48D055EDBCAFFB7E3B76CA0EE60E7ACD638E39E6C5175F343775 |
A9FAAB95CB557DA836CBFB6EAE8BC3D3939B43C8BC63D5A251CC3130CEC02138 |
A31B36E45E3D5DCBDB98106EE2D2E19A2A8054A81623262C9876D861872FBFFC |
D21544B1E0C13446388B70436242F168728D36B471202422755B09D6E9D3A75F |
7BEDB55DC7437414D627C292FA8DEC514D141FE045A8A276ADA4E736D2E4562D |
8143EE311F69B04F29499902872542965DEA2E5BE0155C0864B88D4628AF5AC6 |
A8016228BF112346DC73CF3D3ABF5F7DF595A791BA8E58491247EB3DCC7E366F |
83394D2D3A3A2FFD69EAD4A953A64C41753169FAA274D575D75DA7DFF705CA33 |
1B3D3DB98BB68432A977BE6E827A57B32006D9B470ADEB33CEA99BCCAB93438D |
3F6DBBEDB61A89DE822081A9D91C3623476BEE3F5869894968EF5D7AE9A5325E |
79051786B9CC4F72F8EBAFBF8614052E4F1E5D0A994662BE880FE72070ABE8E1 |
C42CBE1D7A6E6E1AFF147A1FF1F9A87A4D6FE0B85D0A5477680720BDE8234241 |
C6F9DA204632980A82EC550A7172EBBE56BEE25677D30B8D61C890216FBEF926 |
25B89EE179F3E6690F13814332138473596C3334A9E4BF31076CD9B2891CF0C6 |
2AA5C2E8B3AC71F537195F1AD1B8F946CAE2DE1D007931FD7BD45147BDF0C20B |
9ED9CE51A61CF7236D204113415271FA584B1D8373CF3D17AE061A189C7FFEF9 |
F7DF7F3F063B2327E4E5C2891AE963D4773370D1812EC141711CA91E32DD2A68 |
481119440B0CB374791956AA95CAB871E366CD9A65DDE02E754495396071D377 |
15B855AF76C92597AC58B14242CD02AB1427295DB6229904F91FBBECB28B9CD1 |
AA5C1A715442C4ECBFE8AC732BCD0364C56C71A6452F3B66CC98993367920867 |
78CC806371C86882C9B1956494C53EA82E12AD79AFB8570DDAF48EE23735AD78 |
6A2E371B7027380663041662571B78E4C8914B962CA98A7CF4F7B241E6BC9789 |
A6BB7E3EFAC7846163C13A9D0CB0EA4A9C39CD406E6CB00C2570A79E7AEAF3CF |
3F0FC77D5F6E01D9087C2C1087B9DB8FD71AEFBCE6EDEC06F84C514982DE825F |
1AEA7534A2B68A14B96C6B8AC539C2A6A941B8DF7EFBEDD24FBC9415867E298D |
A593EE3C5F8C6D5AB0E23610C0831E8B0207EA2C74CF050B168C1F3F9EF63808 |
6597446B18FA18BDEB39FE2E4637DC3A054F111BAB0A9467799532EE526F813D |
544A8DA79C8C67D19DD9B13875ADAD2BEBA2FB6BA0A271BFF8639E9CDEDC273B |
86B23D4E0C08948DABE17DC44A043EAE4A22CBEBB77314D067D66E373FC4AC44 |
0A245FDE3650ADB1758D64F2544456869273BCE79E7BBA060F3C9A4B7B060C18 |
207FD2E456B653B136F4E8529E281EC9E879773FA8449F6CDD8C1E3D5A6ADF85 |
1936FAA27AD35349D844A8A7F6E8B1C71E2B230290646C475502671B18A6D703 |
E9CEEF29F0A5C20CACB96362D4F25A43831A4BB973B0959CC64933C11A012D1D |
2345A545C2A86400DA2B975D769994BA6E75F5D557CF9F3F9FB351E3419AD94A |
0B40AF08DDCD75CF8D76226B475C818CE92B1471975AA469BA587222365D438E |
551CCE44381B9962C912AD067CD40A75E888899A794B05108FAD661BC50760FF |
FDF77FE79D77860D1BF6E0830FCAE9FCAFFFFA2F363DF49058D08DA2E4D47773 |
DCC20D6DA00D02B3E6FE396EA06B498406AA09E1627968B4148170F64A759F0E |
15F63722128DE812934C4FD1BB547A77D1A24548B11F71FFAA0B303F569A5D81 |
9AF0462B345720E3AEB925E2DA93DB4A3A830EAB3647D582D8678A38AA24AC3E |
2F53F8965B6E292101816D33C97C57F383ADB6C973E43A5ABEAB316B27EB74FB |
F3A41535BD529CF265E5D5FDE94F7FE28B383DD41AB84A02EA02EA8E388F646A |
8909A15F7115105F98532933273857C5EC1974065A05998B26B6A442E6423347 |
C1AE7911284F48A1D75C6C746DD6FEFA26192E3349A1963712F146056C6FCFF8 |
C16857C5AA45829778F3EE25C0875991AAA60B29C4576C076078A58E92B66660 |
60ECF414FD6113757972DC8F072FCBA99312AA99923F8E86F61B9148BDA38BA1 |
1BB9B996C195A95B6E985B11FEC15A72BD9F11FBA62B21000330458FD601D13E |
ACAA38FDFBD2542DB0639EDAEB707A9520BB202352E676D0C6DA6AABAD48EFD3 |
BB036B5A6AF28B2FBE30AA0D83345A4C299842CEE5A44220B20B591207940CAB |
4945941F5CB1B4EFE1871FBE78F162588B538E5D786FD930EFFABE80B463115E |
6A6F6969861D123035028E6D87BBE31C3E8A990809E5AA94D0B14D6DE545BE4F |
DD04A811C10D6C4F83413A413755E349816CD2CC9D35EBEEA2024D9D06A3D9EB |
DC97BE88161A730F2D3BDA97D9D3B0A57A11C4D8B692FBBC7B49CBBAFC8CF88F |
3D307D4BFFD598CF38E38CD75F7F5DF644E472411CE8563487A86ACBC8198E88 |
0FE254B84D4417F1E62969F8110AD238203C4B5EC7F5637A6BE9B9E820F6F7FE |
35EB9B0A852491A4A9937BA7535015B1A090AF99D93165558F1D3B5692221585 |
827A778D9F9026D23C2A42934F3933D228088AC98DE907F7FA74C8D1D5EADC41 |
4B294DF9EDB7DFEA4F9C8EAA715A2C103BD5B30E39E490F7DE7B4F1B892202A3 |
AB4C0EAF3DA0B30FC2D63484FAFA8D37DEA839D1085381CCF22348EDBB75AB49 |
BE3454D8D74BFB2752341B56865C226B8669EB042D5F44A9E3A294660F13DFB9 |
4902B61B42574127A1AAE6A72777864685580EC4D3DACA0C1B462D1178B8F7DE |
7BAFB8E20AB0321C61A20B64C79C888DF4859C9A94C3A7A99D8897AB11AE9451 |
2CEE9E022D01782EB466098AECCD8318418A42FA868ED4F080E2E3E730D57E47 |
DF0A01E2AA21061F49461DFE01706E226EA39453E6C6E7C00E1932E40F7FF883 |
19D9604ED54421D0B41B31D78C8435059EB3FB5DD7B15201C7B204FD3C7BF6EC |
993367368AE6395161F024A632820BAC2AEC6AE89C482FE282A011A3024E21A9 |
03911077888DF34A663800600E30879010017059FC729DC3E38F3F5EFEF71147 |
1C21A9147B5475DDD0B1FE0C6C213BA011E0E3D29D9A04973577DE274636287F |
8ABFC1DC4601BBA444A2999349B126F3A9D1C2F9100B6131473ACB4EAAD691B7 |
20A6CDFE062152F5F91D76D84126148C89CCAD3EEFC6359D97FC12D93DCB962D |
23A514DBCA968296296B5CC35C7FF2939FC875368F29297F37C1E4F8C1209672 |
CD831BFEB84EC9E11D78D3AA6C2324085801EA501D57D4B4ECB8E38EDA3F84BF |
C8103B7CF4032F6C8856EE8B0752C37166C7CCFF7B71E9E69B51017B2AB83FC8 |
DB1A030B548B3EB6CB2EBB681E060F1EBC72E54AEBDA940BF7356003C4224A03 |
A7018DEBC82A62CE7E1EF1616D6CCC477B4B1419D38738D5F617C70A8C24D8AC |
11DAAE51B0F9E39DDB7137C3A56C119DF7871E7A883ED991C426153066F410AA |
5733A657D090282AD55BE8D103070E94B26FE4EA11346B6CB9135DAE18C93345 |
94F77C29CE17E3A2DB6DB79DDEC80EA8C63F71E24479F38E42D5D4EBDB31603C |
B16AB6A4455A99C28543A7CDA96701C74939801C33E50ECE79F2B12CF17F9090 |
C60AB0D6B15B576AEF1AC20E89002BB8C36CE5F395E85AA476C2108FDF808356 |
26DF8E832C858EA3CA68E6BEB4AEA0F3A8806496B22DEC762EB2BF4696408482 |
794DDBC4850B179E7FFEF953A64C917E6400FBEFBFFFAA55AB6223C5AEE58ED6 |
F1DD0FAAB371104EE95EEE6C45EB2E90694EBFA7C071D8CA2C3320ADAD35894D |
B94D4D7C67832A5D32E1A98FFD9EB03B62C75FFD5506357B3A164AF2AF648D66 |
99EC2391C02A4F0EAA1744B0F57AAC8E90E0D086C3C1AA29E74839B5E62239C6 |
465D2FBEACE482164966C1F70D9933E0101FD7E5EA8C93E081591DB0B8AB8817 |
BA0EC68E4B6FEEA0DED74E7F53BA2EBCF0C2254B9620C87097C1FB6D3252C283 |
3011FA72AFA4D8C8084E41EFFE54C4FA623990398CF0D4FB32B377A3C0B8EA2B |
648E35BD129D6C1897BAA64DF5B56DE6DEE088124E1DDE89812AA4CA7041FA0B |
5273DD2AB11FCC73F61B0019FD408317CEED77FD6CEB597581BAB74242740214 |
AF5A2FE3A49AB9C585F6E7F0E1C39F7FFE79B83C7D5A4DB2EF824BE26C4435E8 |
C6C15601D7032117DE9E46326AD4A8458B1691B327FC130F94F3C15DC7C932D9 |
3F767D0E2B6E91A23BEBE90874935AE88B26711C3972A44ED689279EB87CF972 |
7842503CBAA4EAE6CE9D4BCA80DC9E8FA1E3161BDAFBEBA5F6A6524E5B7A8458 |
75C481626212ED684078FC13D6395202BB1C8B0AC76693204DD33EA08323C745 |
0C44F786EE995B6CB10565909037E162729A2EBDF4D2FBEEBB4F7776FF031C47 |
BBD7D6EE2407D9CFA88618D66E0458357BC3001466C95979C3FBD96054D0D8DC |
B7E34E4EA4995984E1562AC5D8FD15EF73B72D90F4D673C90B98119A12ED98C1 |
8DE2C211FE18D721ABC2CFF7DC738F76385B145673A2084608354269591C5E8C |
10D485A0630F321391C7B26EBD091825D2E3AE45D356663F95D8CC1D9CB10DD8 |
087CEBB6DDA8CCD351D12BD961C508E0846068FB0DF5E8B163C7DE78E38DD6FA |
EE4A218BF2FAEBAFD7B104FBD095D52C2E1B51325749F1E24E4873C93EA064B3 |
EA3EC71D77DC5B6FBDA5910F1D3AF4EDB7DFD6FC38E06C3E01F0F1E6BBB11CD1 |
670E38E0007DCB4F27AB873BE5C177520F5609686FD092E95A25A08DB8D6E36C |
FAD43F62AFBDF692BBA0F15032CE2F23DEA19111B08DC0F3CE6AEA117A966462 |
8444A69CD0A5C29B0C25CD9509653742E9245212EC1E8D8F6A041667DEACD1A8 |
220D001492830435A0B69A798EA538B6FAD9EA6E2A473E025BB05FF7AFBA509F |
0EA5EA925FFBD1471FD5A45AE8138555A731432B9632EAC7FD85B6DA6AAB934E |
3AE9B6DB6E734E2E6682987CEAECBD102C0D2FAECF134D41EBB0E5800463226C |
927AD34A173DA12533A9452A42EE3A385AB2CB2FBF5C8A9678604C346A0C9326 |
4D9A3E7D3ACB41B071FCF8F19F7DF6D9B265CB48BB02B1DE7AEBADA521B431E4 |
F16B78FA0D68067A0CB83026E2465B994B21756BBA17B575D4825684BA212006 |
6A8E756A3ABB923B275AB3DF785FEBE956A87A4FEDA95F42860E84122CD43B5E |
77DD7593274F6654BBEFBEFBBA75EB52F6BEB0BFA12871E4C3B95BB426388C18 |
3EC149F544E9A103070EFCF0C30F1943A3C08723580C0626D645C04333AF4D45 |
9514E3DF71C71DB5C7B45574B7EDB7DF5EE274E79D775EBB762D5AA3A6B20861 |
6ECC798CA43212DDEDF3CF3FC710715F8DE8C7A7DC94857A7A0D9BD8156C24D8 |
88B8E6066FC2CE41FD6D2B93E720674AE602EB5BA980B1AC6390992D62A1DC28 |
7A806B2E3EFEF863EAB253202F751CC3704417DD1B62C720B0C47167414EE967 |
2939292DCD8E7E09CA91978CEC9AFC0B8889DD8F5DEF57D0CED66FA04136A567 |
D5FB723E298BA2025237D4AA0F1B364C4F9776C76A236A7AFAE9A73FFEF8E35D |
EFE386C4BA21C5EF085F24179F893966A01CAE70D0BFE79D77DEC30F3F0CE297 |
936C79A77F252CBA92EFD758CA787E11B755D37CC2EDF0E8D8FACA2BAF1075A9 |
A9578EF87B8CB694C32108326C7CEC301F54A33D2FB9E412D9927C1E919D0244 |
73F4E8D10B172EA4AE86109039FA5D0762E2DCFAD06B2A6A43F522FBEEBBEF1B |
6FBCC1729F71C6198F3DF6180A4CAA4BC6D39D77DEC99F527FAE56AE7065D892 |
1A12F429343900C7410FD17A50DB8F782E991169113DE5E69B6F1E376E5C1590 |
DBA916A492FD485D184F0639F76516B0144282680EE008902F4A087036A377CB |
FD29D077D9490A7DDAD3A6FA8B03EA7412C4B6A3BB569811D01FB339EE481281 |
073DDDC4BAE693379AAF6452F0F40889F27F234EC7423F26FC4053EABF3E2C11 |
6A64F9ABE7622B1C79E491B2D43506EC186D1EEDBD112346B0B14B21D6CEF989 |
79012060B07A21815347014CCA6E1C265ACA25C2B02A49B0D3012515BDEE5326 |
774326633D136A8ED52B113615C1CC0E6752B6A7B31081A22EF7407F1B774242 |
213278A422C92515003A045E528926A4444DF3125369D2B00B160AF70075C214 |
BE552C86B846F10720EEE4C2A45308FD6A909A64B7D4E37D75BA7588EEBAEBAE |
2BAFBCD222CB85E32505CC4CD679C02E3C47AC1C7DF4D12B57AE749728B6087C |
BCFE162B0AE4A795DBCD72B1006CBE0DED1D37F94023370971C240337EE18517 |
4A3E928872ECDA20DB94BD67443049440EA78D4DAA05EC8857BDAF513F78C031 |
4268E3D420F81AF46623D44FA70C04D36A31A40863D9488392B377AE8173157F |
CC983672396C55FBB91ACF3E16EA3472F7EF5471E19A603AE0B8D7746B4FB963 |
0C69A4280ACD0FE0E23C1317E028BB2208C005FD398E38E288175E78C1BCEA64 |
68908FC0550C2E4D39BA6EDD00C6B5EAD58C774D856D41DC1B1E34D28A6681AF |
6728AB9907F33769C6745864BB9010490585B286A7A77076C82DF5EBFE5517C6 |
B8BBE099B6BA8AE2943D5C2A156B6416688D2DD69AFBC8380442C319883F5B99 |
0DD4C10F57EAF3F51B6EB861CE9C3974AD60D71921D1CC5C4E350AA6C4B52251 |
F3D7BFFED5FBDCDDCAF120ED8523E6A88474C4CE0373353387FA9FFEE99F3430 |
98B0F481534E39E5C9279F44677BDB388318AF98D94D81E2C6253D4C5794B9CD |
4C598A5B8F7CD383D88D006B3028CDAB5563A8E1C3F1492D3A459B7013B9B82B |
2A601FB72DB7DC92A085259EB360B8A1A4186CF13BBF03179515B025248EAC83 |
D5F68E6C33B1401107431A915010FBB62774C3C41F75FD3D75D8407A017001EA |
8C6662A7F4B3FE027F60D82678284B45F0594E39D9AE6A050C1DA41F6E1B1A21 |
D9C4939CCAF16AA6F6B275577E46EF7C230F65CD02F3FE46333A714BF081301A |
0214FDA4773BF5D453972E5D6A0A536C3164849CC86BAFBD16441294601140D1 |
DC142315885F9F49E6C5E9CC9E8AE68926CC8B97F7165B109955938B32BE2315 |
36574C48EBF784D1C8FB7A96800B113535E2CCF40BFCEC4A0CFFCC4D08BAD67B |
72C0025D69CE268E768F375C15E1092058BDCEAC59B3E465CE9E3D7BEEDCB932 |
3C6B9E4B034A7D60F7DD777FEFBDF7FA6A39A51B99D501B63F76085FD1D8860C |
19B27CF9726265EC45F9C1F7DE7B2F796E9BC0359E3AAE0CA1722870F53A35A8 |
DA1F7131D53675395A1137471CCFFC91AE76B5AC214FA657D07E7089943940F4 |
57B9FEE3C78FD70E31477FCDFC479E3C83AD5220A831D9322AD6F90E770CD487 |
F90A75F3C83BF6BF05371683B3F8291BA01640CC79CD38F5A0F9F3E75F7CF1C5 |
AE08E2D8824DC35221676692042957CD899CBF850B17E272B14529A037451AF1 |
3D8AC2A9FF71A0252668E226D4E3501B78BA93264DBAF9E69BB186811DF4167D |
215328A24343986829A29C3CED36CA1DDE885D4F62F2CEA90DBBD116539AC956 |
C1D9E949B6B96010965996B0833164E3B3F05391A2AECAC32F8A10F456A0EA44 |
08C08765E08506306FDEBCB3CF3EDB2018FC1992FD314BAA8922859402EF951D |
5FB308185715BB126DB3CD3612C8C71F7FFCD34F3F8DA88CC0AB1A79528F068F |
0D6A634905D50706B4BBE093FF8244F32EB5DEF50FB12D105F79E8A187CE39E7 |
1C7632456536E99AB9DF7C23F4CA8C8EAF3B43A722F0DECA64B7751EF0F4E9D3 |
AFBFFE7A2AA9A920E25EF6C9BC8766CE9C29D75BCAE9DAE24AEDEC2764FBF403 |
A5B1E85AA3F9533B16BA66A2010B60927CD7DE0EBDA768F58C04C48A77BAC589 |
4F3604E72152DBD42C7C2B70935E71C515922C9A476D41FDFE6F7FFB5B2C5A95 |
50D6C67AE4914790207ACAA5975EBA60C1023A354148C943F937EE69E7807513 |
02A4555C1F44B64D79AA3B4B765310E9BA676B027FAB93F233E29B2480A032A8 |
99876620BC445B50F75205AF4724FDF4A73FD59BCA2C93D7EE84B79EE2523149 |
019D01A8EAA3A964906DD590607A019D78E699673EF0C00384AFFB0B9EAABA34 |
813A9F7A4DD90ACF3CF38C8BA3FA0A26B83DF6D863FDFAF504667A8AF63E9418 |
19319B724883FC3D3490B6F14B7D6C089042015183E236D31C47EFA69B6E9A3A |
752ABAB695B971FC617040C056C96598DD5073AB91031A9709AF7744D53532F7 |
02F5FDB8AD29B7736747F504EAE9AEE304C44E89ADDE45239413CCFB229A314F |
8F3CF2C8175F7C11C094AB5C8C0A76B180467BECB1C782B18F891B23CC35C894 |
2B15BB8E67C28409B272308239899AEA01030668B7BB076DCA529B208A21A556 |
57299732B74233F694ED60A2592CAB8F1B05786626C75070561B1719B41AE702 |
1A8D942DFE58631A5736722D59C4C701A742AFECBFFFFECF3DF75CACE734B0D4 |
731B6387262490C8D2BEF230F40159459A7F685CA5CC64BB983CC414FA8EB453 |
68400AC009FE585063442AE725DA79CDD096B8F3AAFABD5D2F1C1BCB3DCFF929 |
A79CF2DA6BAFE94FA41B40A1437074D249273DF6D863541563D811A622B4101B |
E9A600DF416D9B00C44102F208AC854F7A4FE87FA31F22A0D89BB9EE2069AC7A |
B0249D9947E2E70D85775FB6C18307BFF5D65BADA25B834C5A0EB316C37CE586 |
A1A7D0F589AF6F1224159147D8839A2F629231C1C9E5DE76E42FE35F41398D1C |
39522E17E1CD9A3A2D1B8070279105D7EB80FAE1F58969F88D6CEF13C8750731 |
B89638A8A6D4E80B54A2EC634973795A1BAA49F37D2CB5E4FAAFEC3BC810B4E3 |
0DF931959A145BD7A617C41BB163F012528EE1573D17CE07A02B7AAF830F3EF8 |
D5575FAD3798522122351ECD18DB1A5880BEFBFCF3CF93FC4678C9035EBC78B1 |
FE0ABBACE68AA466BDA7853700FA89BDB47973AB18B02010CF38E30C6D861933 |
66602E687BC7AE21B6FAF561C40DA460EE6FE300B513879A76BA46EA56B8A7BA |
B91CE2AEE3896876244E33D308EB7190C1816F72B3ED94A1EFC6977AC2890C39 |
4401F81F7B9480D65E7BEDB566CD1AB7FAE0A176E66214AE748121700CC0B89E |
943B8B130033DD9B09E0F88C3727A203CF9B7324A90DF31D65A006BFA4C06E58 |
023DA5422CCADA407DBA6DAD5190080A1EA1DFCB6B97CBD16C270E8CE0DE54B0 |
1DE8BFC430CC9CC3B993490A5237D6163BA7A6FFC65CB866C0861A8B4B489F80 |
8A398EC8F4E9A1840AECE64690572B5CDC3FC6201D278B9CAC1873FBECB3CFCA |
952B1998E6509F3FE28823E49BCA159E3871A226846A14E328BDCA440BA865F0 |
96C0A0C76399346992568AD0A92397467239171BBDAF1F7772ED1D39FFE29947 |
DB2127298F74AF179004D40EE01A3169445CF0FE09927354255E5871FB397D99 |
FB9D50B19E22EFEBD9679F35D2D30A3815262CC75C43D200F4B86DB6D9867C4A |
A502D6825D75D555F4CD26C642121BD6025C7E747ECAD959D4BE83336410F575 |
F9EC7250284570658EBE0E9EC87871278AAAE69A6533019E29E659D7566E5D62 |
E4179BCCD124E435FDAA52A6F0361B5C8DA0B70830C0C106E3E4C993B5D56C9D |
6872522686B490A26ACBF588175E78A16663EFBDF796A552C2A913ABF781EC3A |
1EBDBB3EE658A8839C1C8098304E2128DAD9F6D1CFD5A6C4C0AAE7A6067AE33E |
3C92147A742492ED1C27C01CDB8912796447F45C2A714DA7DC088D579129301E |
D774B3217913ED7722635586547FAF88C761BA2C6D53361989FDE20391B8321B |
095AD98D78B564575E79A5DC41841D625DEA76E6CC99D75F7FFDFCF9F3B53DA0 |
67E140757D5F039DD8871C7B9B5651C26A30142368CEE56A48DC5098401F27AA |
AEC905E867360C1B03D30A3FBE2FF738E110E986DAC614AF6F92A189025C5379 |
EBBBFA17E5C4DEC6BE779A16CBC0896143AB9867F38BA1901C91F6431DC76A84 |
E6E75121A58CF1B64A0022AA01482C5AE6B822BF8497B1B6D38B4845AD58B1A2 |
2FF32A1B9D8AE727D773FDFAF5CCB3D608D66B8FD68128A2DFD8DF0C5E2F3570 |
E0405900B244B9A13DAA071F7CF0CC33CFF4CA62CEA6ACB95B1D5D8CFCCA9176 |
90B783381393D75801F3541395C4A5462043FF84F2D0A331EC76DC71C77DF7DD |
F7C9279F7494CEF103DD0D2D3868D0A00F3EF800AF915C03A971276B4A94BAA9 |
DAC72D7DAC73BF7128C8A138AA64C25A2C2DB72FD30FFAA47E8371E9423BB029 |
F46CD644711E77D861076D78B354DABAFD2E5FEE2FAE276A4EFEF0873FC40C0E |
51AE9403CEB2CFB4BE73E6CC4138D01BAA2E04AD2DA54FE8D3D80B31A340B6D2 |
FAC6FCE3FAEF6DB7DD262B12B9C9DEDA6EBBEDBEFAEA2B9C06FD0630B7568BFE |
276832ADDC0F41B17A31F4DF5D76D9E5BCF3CE93C7607C263E74C4345181AAD1 |
42A544B9145B1F5B521FAECF01EB9EC3860D5BB4681187D380F294B9C7102BE6 |
73C7B6A5922A156AFEA28B2EBAE38E3BF4457C029B6925025840DA9A167D0094 |
44D7F1E893175C70C17DF7DDE7FA199BFF4EA8A7C27187EE4E6BD1B53FAE6DD2 |
68F1D4E4E0E93A87F1C136C0FAAB21BB87C344FF12E74CED5C95881E4CF59828 |
622ADCCABEEA406240500567126FCBCA7FFCD2C074376D5446689F1200045EA3 |
2BE31DCCE0652598621C8CE3B370E14259B49C919EDC4F4D0B01341AD150B30F |
6B1430093CAC2BC6C0BE92163CE080035E7EF96572A586CDB35D35008DE7AEBB |
EED27B9D7CF2C99F161769750D4FEEFEFDF7DF8F643736AD0482AB5A17E249B8 |
C27403236FAA71EAE6241A7091E109700987F3FAE4BC9CA9415922B61CC4D32B |
133680D623D675A4D05C8FC68204276CA0B84F1FB6053975FD0C039AC13B1B72 |
CFAB94BB11E88692B3AB56AD72C919C6A2C6A9E5D36E41D639CF3A77EEDC3163 |
C638F8648AC76668C340AD9AA967B1F338328CD30142427A7115621D941FAA3B |
00FA654E407B4820ECBEFBEEEFBEFB6E8941281A07FAA43E4F66A799DB3ED2D9 |
BDE40FB00AE04B4882B0332D8B8C1B8029C8ED0D584A27C8D33FAC800D6A0190 |
01BC00278175717F201D37F8D72828A272C71D63B5972888C0093CFBECB39F7A |
EAA954643780D0A6CC518A89696898D3DB8E8135326B5823F334103DE58BC084 |
F5AF79C237A1F0883BE100C5C6821AB1DEF090430E912727CDE42C941BAA8395 |
70EF17AF312BD72A3A1B6AA65812D8096ACA121C5BC7CFD35ABAA0B0140D73C1 |
A84CC8534F3DF5E9A79FD656C6AE97CA97CF8DA4D30D478C18F1E8A38FCAE494 |
A35F458CD0C8E56E9EE8E1C3872F5EBC18230B418C0FDA93FB1DB9B08FDF6B4E |
88036307D14F148999729910397C962465FBBD46C0B1E73005F415B88DF80DB1 |
658AE7DC2AA4B75B7F5C824E74784531D4A352B1F1C96C1199AC2F236986DE26 |
2EE4277AA6A5919C2293875D0C521D9B66E2C4890B162C20305B554E03407ACA |
942993264DC2380013B1B972C0C61C68F6D0A0F4F532BCD3C1D2485B21313778 |
F0E0E5CB975B0B46D8A05E7FD75D77FDFAEBAFB142C85FEA8B4855B28655F35F |
1582A6644E17AE9B61F3C4BAB5E1B507F45F0AF90872E05A6148B137A427A48C |
CDA540BA9A1A5979E79A6164A8C4961C02ED963BEFBC53B66FD5BC39CD14D399 |
9A49DD56D3E8E8ABB61F0E5664498B2409A4D8E38AEBF793274F5EBA7429616D |
2B361003A95B089A1F1C7234585DC710468EC852900A1BDA5CC72527D8AE24D1 |
17D617133FD21E943A4FB8BC9004965F87283AFC9DAEC9D6235CE98E92667846 |
57718E5A99BCBA5411647E122E0497A9B9E102229F228DE26A0BB78EF56CD04E |
CA9DADF549C9138DF0B3CF3E837683605E2985ECD8A704A0DE62C08001F2AF9A |
B9890253618AA42860E389ABBAAAE48CAD10A75DB54B350C895CAD0BA62AE134 |
4E2E551BFAAB5E90591D3A74A876940F7BE95D745D79E595B7DC728BB55B4C25 |
905F70E20630602353B534326F97EB72999C73CF3D572E19199F4A054CD448D7 |
84091324E6F424B980D267B7DF7E3B6EB806A455C4148A859EEC423FCF4E0F09 |
18F3B33B2F9DB2475BEFC1E803DB6CB38D16FE2F7FF90B77E8C9ED441A994885 |
1084167EEBADB77EF5D557D973DA04645E893B11BEE684B015DC2FB3EAB92C8C |
DE54CF72F72772788692EA8684FB9853CD95963F72ACC42A498B54A3E3289005 |
66AC9FA9B8E83A1E8DD6940E7AA26E2BD57EFAE9A73FFCF0C39E494D0B47A82B |
24B8191A9E58DE41A65D937345C9C948D483B4197EF39BDFC84382D1A26AFFE8 |
D86BC9A468D985FBECB38F5C07CB4D3E6099855D657099237BF5217110069A8A |
D8652B6D8E0B298CAF5F4A9FA35C4D6B0A26A851B0B4EA932C3D2371634476A0 |
062C3D77EBADB71AB280D1D61758766B0CC1AE202CED409D3B90A8B1C88D0490 |
B51DE45CE43880E1B4025B16D85AC6CC998AA7D866AEB3C8355881946D057617 |
4163BB0EDAD83A6BF813BAEDBFFDDBBF3DF2C823CC2AB961976F72E12D8D1E3D |
5AC779EDDAB51B724B4AEF3119131A898C8C2AC385F3821472C11E8E1A963A1C |
7FD81C764F5BED2D7D4A97264793C9309C94614FB261A831D5C144F1F7B63706 |
65EB6A485A23CD06707AA2B2DE1500DFF817BD8BACD76FA40B3FFDF4D3E8EB73 |
61281078200867E20440F8A5DD852AF29B6A4E08EA38B1E8BE1A2E882AE5FE5D |
B9640A30A2629424A4509ADF939BFB6ED2D1EAEF459043534DB930AE0514AA76 |
FC08B440C372DD75D74992132EE28BA478E938A7AF68C37CFBEDB7BDF972E379 |
3689462E934B738203EDE0444C88D820C024E2743B11998AF00F79A88D919B9A |
038F58349988E671F6ECD973E6CCE1F1A02A4C454940D2345DD2DC684A7B9CF0 |
E030179C345C61D6A3BEACC5C420AEDC42349815DDE57AC04A8926B9D6DE3B0F |
B16E5820A6438DE7A7EFCA219B316386DB23A6C24E24DAAC77D48420DDB0FA6D |
503BC6CB23982553936304A4DC71D6AC2EC4DF6A0E3F1D1AF0A7B10CF45F2881 |
5211388562C68CD929673137B4F7C7A53F57C489C8D1915D565FD8EEC3C916AF |
0959B732DF19261A2961D7B631E1B108B595BB15994CCAD0DCAEF7C76A31A795 |
41F59BE554A7C0A08BF34721324714943BF28B98879D5136E499679EF9C61B6F |
80FB30E5ECA1871EBA72E54AB0EE3A11C4124C9DC8B46829AB38B76BCA9062CD |
2EE044D72F60AABB043966CB0C9FB4B2C4A5035DA87D857DA97FA9698667DBA8 |
FBFA28344B697421A02A07AB3C5D865B936FC6EDE64F8485620ED8D88E940BB8 |
BD796AD0B391FD317534E1313799E684765244173C1568414F6F6FEE65D21B5A |
C7EB63F4E942ED91D8327948A4E940831A22604DE0242B9619FD9ACCC8FBDA6B |
AF1D76D861165CB2E1647B71643AA14C5CF1A14C2319372A1798376C05ACB148 |
B50458C7213A2A9A6221752A9C99984173450C66594FD1D7044046A4148D8B15 |
A92BFFF1A3CAEA48144BBF6A605A4A496C99A7CE976162821439F8E083972F5F |
6ED25FF6B99700BE52B28D00179816DBF764211B99D7D681F74851D5C8F5C48E |
E41B0E82D42244FABDE2F37D2D1C537B329F234177C2CD35652950AABA95A6F9 |
376C772314D8E2FD7D2E614C1B62B27D6EBCF1C6CDC84064C628C25F575F7DF5 |
2DB7DC12C1235806E6DDE5D5860E1DFAE4934FBAD6DE5D96FD9BB87E5D1B9557 |
190AEE52C2BF9C5E872B2D686C21A5D062DDB1172A40687579D14517C9BC3025 |
A44F57646FC622E637247DC1F74F2C2EC374810B5C73CD35F3E6CD839DD54831 |
1D129D192C18F22588EC885FA83A755857A07FAD9F526ED4111527B7C27B4BD9 |
3BD7319343FF97BFFCE5C30F3FD4DC7AFC2947961C7BB47B9142E48089A2BB8B |
54D433CF3C630EE194CB456A283CF14DB5B8DA3F9A01E619158E0783ABC45E22 |
8A8525E77AAD98EAEB74DAB4E1E55C4A8E984CC3F5BB26796EE4A6BF35E97652 |
45B6A45D7A5B7F8E08447304AC0C2CF2285639E288235E7EF965EA824A33D3C8 |
DD005BA1F7577DF953D5A5B99565998A40ABDEC276A1A31A7661EDC3B532CB84 |
491BFC5CF3D9D96AD1DC1285A6F2CA090BA7AED05296AE244A528E08BA751D92 |
1DE810B918A346222FBA96E0F2CB2F9702B6056F46681F161F04AE527F7BCD86 |
3686036C311CE5D699E8121B0AEC551C380A17C1C0B28B30B322139653C8F570 |
819ACD9302F99A47DE0C14D329735960E290E340B600C2870391F5A27C884A04 |
820AD4916BB1586B387FF4579422D61E7618445A3449339587F92F6D76B85972 |
3353EDFAC54D25A95F52989A72800D66A4BF3364A676E63904592ACA6CB6DB6E |
3B8821379702767B5AA34BF4F2DA7084715A05190D7130023EFD2558D0B93AF9 |
E493EFBDF75E16CF8CE735A1B3FEEE9246E821BFF7DE7BBFF7DE7BFC49DB1764 |
2CF32E6751E7934FDA4701560A25906F18A1CBCDA28D923E06540D83B1A6FC03 |
0D3470E0C075EBD6390EC63D717A743702C218BF1AC9AEBBEEFAF1C71F7BF3F1 |
08EF01D46A8CAE10029527B77AF56ACD2467988995672C592F850DF93EB51366 |
A9E58634094939024398F4FF29AE142899C84C13184CD50257624ECFB5B6A6CB |
5E0ABE913F69FBC61E243B2D15B400FA8DE4B2310A464F94F67923301999691C |
C98B7C6CE506677C57ABACFFD6B435D4EF355DF7DD771FF0783252C046AC1459 |
8B187EA4B908A9D312F03526C3FA8AEE082C900D9498506F647209009F9D557C |
BEB458325324B2B54CAD4CC1AFABAA4EBD955909FD1413F220A92D5877DB6D37 |
3AF8EA0314D653A1D113BAF1C4129AFA107DCD8501D1CA4C14ADD070535275DC |
B8713367CEF4D8B05009E639E3EB7973D1ADED30CDB3EEFFD1471F69C7024170 |
90BCB7BD454D89942A85F4B32446AB20BE45F3198EA747833EE3261C49E32BE3 |
EAC75C4634B0BCEEFA13328A4C133B8A3A226E5E32E04C628C2581EE29B5C9E1 |
7210252AE00844EAD76239141A131906D9A5F696BDDE4B9164C6C15A62A5A4B4 |
E97FA59FE557DC7DF7DD6C803BEEB8E3B2CB2E239978DE79E7CD9F3F9FD41245 |
CC5A7D2D07EDD76EBDF5D63163C6B86AC3A87B3BDF31C318FFEA35A22EDF7010 |
84C3F721C958D09D42970F08CA31C3B5F0526672DD005BF5F70074BDBC63346E |
09326D2C6F4D3C7AC7EEB0C2FABB90BA1B5B2D5AB8117DF70F5E2EE341A15A1F |
B3D8980E863B19FF092DAA7D0277A730EDAACF556FE85FCB13A3E5D5791115E7 |
E8126F81AE84BF42D93D7CF8F0071E78001F4B2EF5C1071F0CEFA38D417D72CE |
9C39D75E7BADBE2817560E2BA17E82E73C9DC268760BE63C43D500F427ED10CC |
465E3C9A7798F02C072D2EA481E06C9114D3CCFCF9CF7FFEE69B6F0CF727B257 |
D3F6D10D7D8D2625BBC612CBEE41B5505BE9B837964A27054F09E2843BEE67C5 |
63AF3B9F70C209CB962DD3DD8C5231F520F1370DBB7EBDF0AE6CFDA4C0ADC8DD |
E213A9427EECB1C774677697BE4B9CD00BE733B52174DA71C0D09B8D0ED3BCB5 |
66E690430E81F5A5669C940E237D0052D4E4DA5BEDED11391DF6B653E87FC75E |
F5D419034C36DD8EBB651CABD65F943BE540005E346F9A3D077E6354900FB339 |
1D38F1C62871ACA6EC6B3A7B1D9D78B3C1E3AED8718F2146161D2389614486CE |
1270C4EC2E31F8E19E69E654F21CC65A6AB374E90EC71C73CC902143468D1A15 |
DD6B6B383768E180332AC3C5D969B0A822EBDCF3CA87C8A9E87F5C013743EF87 |
AEA5C3CE5BA560C74867E1EA807EE5E930F65806A6C01F49D00B97CC3C0D9034 |
44CE090ED186DCE2C298A11875B7E08D0644CA705A4499964F5F3CE79C7364F5 |
8E1E3D9AB445C32F96DA8D0BCE33A926BDCC26737EFDBD78D081071EF8C1071F |
8C1F3F5E82383EDD50A95626C4E9AFE78A2C76E11DB356036EEAEFE5ACB34397 |
C451A9F792BD22A7810EE72E3028ED33BCD278C6482ED2B985DA5CE7170965D7 |
A3C4D1439CE446A6C66533F145397C3A5A449BF51BED4838D90DFAF006E2BDB0 |
2B233135DEB91D1A4E604C1C30986829E38893BDE38DF4B1A54B975E70C10550 |
F2EA719A22C422AC52C06565216EB21289B012086D027744F928A8252874C411 |
47BCF2CA2B29672211E28401D85D507872869D4BB6B7E4C8330FB53434228926 |
F6807A305362FAA6CAE0BBE5965BAEBCF24A0C1102686EBAE57C951BDC7298B7 |
DD76DB534F3D95C072AB5BDDA75D8494898A8C54279C8B04C1BC400B6EBFFDF6 |
5F7EF9654DFA7CF6ECD9D3A74FA70524A4690041AB9A73E0A9F4E6DEB1E64DB4 |
24C2B123B1CAC7A096D3075C50D4CAF4738DC032FBE34076CC86CC625930F278 |
F0743D69A66AA711B5C43774FF2974B72444E7F810E7B1AFA34705AFE362A792 |
C7D6C817C6A5591BE937CA66307B06AA6BE0C081EBD7AF671EAC0841CE13236D |
E56E07517A971E41E0C77B20C6115D7E6D6C542B949C59929428EABCB1CD1F9C |
DA4D46176ED503D9AA2E8C068E4054C0769F1AB9D88CFBB3850C80C09D60FC40 |
1F989398B0074C80FD81191AD985BD7C1C1FBAF2FCF297BF5CBD7A358E0AF68A |
6E22EFF9B6DB6E830311F8ED86DC079AD0022BCE878D1CD4A1D63D41F8CB0BFA |
7BD8CA9B9277D3E84179B8BE16729FCD9543753D00BD8CF024F43336FEFF555C |
D43C0083D2D5DF85242B80648933BB59C61F4D30FC57D2D524D8791CC7862437 |
7E8074DEA79F7ECA99410B72BCE3E4EB0E5AD1356BD6902B2D51D3D5F44568E5 |
0A2572514649C424905B1261DA470F9B0C90142189438A10623357EE03B510C5 |
85F66BB133F4BE92A186071BEDA9FF46578C4646D4C6D086C5A4F929A7762C4A |
AA88353845607A29A870569E6BF2E4C90F3EF8A03E60DC1F76009393023CA724 |
297A3B5A9437027938E01447110969F0318C3C388F582C7CDC9AC5C2D322949D |
0A3B5A5F31E4C75307B11A6DC15C5091727A0F694530C9038E4E67E41C4ED9C8 |
A0EAC9935995DAD09AEA26144AD1B8BEFEF38DC0EC6F1272A75D9AB981154910 |
F374C63B90B783CE17C3CED56B3F22FCE636DB78309898B178C69FA4040E394E |
A3275BC9297B78D1AFC5CE602661FA8CC11B87124BE979A8C12211AF9D7E760E |
E946FDF7B4D34E5BB66C997C0669E89453E31804FA4CA9821F31DEC89CCFC460 |
53E1B739DE83B0A5EC2D856E01ACA65E9FDF98C2429FBCF1C61BAFBAEA2AAC7F |
705898AAD4DAC68C98E56AD758F10FBF50C09C41F425212E87A63CEDCCEA9429 |
53A64E9D4A6C66E6CC993366CCD02FB569414123198CCCD0F8255A39B0082B27 |
C8EC29D94CC7C1C076813726B537A7775698B7062161EC9B4185E87E3D5AF797 |
6C97B7C994C2A754D6464C9F8D292C1A0E09E4B15507EF475CADA235B416D2DD |
C1C079C97D193A74E8BC79F368E7649FACBF37B7CA71172DCD6355D9CC8F187C |
0AFD914C1C0AA68E1891513F5E2DAA5010CD2903B81C4172E196C6490B6BDE3D |
C28BAA04BA239F29BB7A1634BA060C18208F10F8347B08AB4DA25F2602EE886F |
15D9CC3512F8379C49B5BBCCC68A915B8C620E3C7866FA1070E031A8FD2E91B6 |
D3A0B3462640881BB266FE23DE84A891ABF2298D4DB9CC91029E1432110E1218 |
3CEF683648607461B3BDF5965E53CB9A8A0A7D9E0BD5833EA91764BDF4C53973 |
E68C1B37AE06D86FC992B21F861A762B56DBEC253DC1055D06C5DF680E730BA7 |
8E9A37DB1FFA3DA58AAC2F81A5DED0F7BEEB3C13978BB4B735EB6204BE89C36C |
FBD2328F5736EC60ECD8B1AFBDF6DAFBEFBF4FA90659589E85EE4C2147D05BDB |
97BAEBA5D581B31D63D4806AB6AB7E2F0DF7F9E79F0352D368E5F14F9830018E |
052771E2364311E2A39B0C39E6627180D8D5F8C429F335A28F097BDAAE8D6176 |
5687F0F82F7EF18B8F3EFAC8E81E1CA1D871CB6DD10DCD71FCB62F732363BBB7 |
72113F07A12F379A34A96DCADD732132D2DA3533A1660ABC2571569D87620796 |
FC7E9FD0FEEA605E0105CCE460B495B00EAEC222E4C072B0644067526E3C8564 |
8600CE3C86A6FA32CACCD5288DDC4AC1104873B9A422F680DDCC08F122343946 |
44B3E8840D8C3BE1DC914ED62035CFBAE146160E63C92C621801E45666953244 |
79737990B880BCB6E58B1EAA177606C8514D92C4FDBDBF268EBE69A6B4BDE69A |
6B6EB8E186CD32FE947BAD10E5300D8A3CF5FBEFBF5FB34FB911A8C26DB6D9E6 |
CB2FBFA4D6DE6CAE34984CB9E20B115362C3661E5CAC529F7BA3BA5C1F23829D |
729798E8647366B01B9C1F4AA13284A208FD46968A9C5D6D143C151602251ACB |
F0636D8CFE8A0EE6BD0CBA762DAC619344721046DAC40E59DBE643A9E8BF35A9 |
07DD5036EF238F3CB266CD1A591560D1F59B943590391A9DAA8F9C418E958195 |
2BD12FFCEC673FD3D4A1991CBCD507E4135C7FFDF558C13A7BFA01125A9D73C2 |
4ADAAB175C70C1FCF9F3F5527FFDEB5F6B1430F969030C010A1075D0EB6BF269 |
FCDC083C9DA9B0C1F545C20FEE17C4117657357EE310254FECC98D6FE3CF4C11 |
067BD77102CF86C60E986E23934B77FD3CD120233952D16F431A2EE528949BF8 |
3230BD32195967E8599798DDD86DB7DD3EF9E413E705FA7548CF3DF7DCC58B17 |
A7C00D6738B4A734321345CC660AC08B08FC890A18BA2117437A09F09FF80CD3 |
850124774D0A1EEBD3CD1377DD7557E9DA18AB8B1D789C89C0DE6586D179365E |
4B362BC11E34B70119FAE5B469D3A64F9F6EEB8DB3194BE952EEB8CCEEA27ACD |
3EA27EA9D5D443753A56AD5A054F62B4C97C84FD9B1F118566A27A72F752DBA9 |
D1B78E6A586B8A44E25983070F7EE79D77F46A7BEEB9E71FFFF847570A415C61 |
0517F1F98DA260156A71271D9C1D4FB9D5A9DE54C75F863565FDD495C0E88E2D |
8BE2D7CFFFF22FFF220F4A5FA113017111F93C72D0CF3FFF7C9C6F7660C3FD85 |
62B6A9139605B1C3E64A00A7DCEC41A33FEDB4D31E7EF861577FA60C8530A136 |
067B7F153FE673A360F88C14F09BCB838FB12673E621D1E0CD36EC8D731E5569 |
CC72F586EE5458FD36C1A2CFE1A2F8AA7980699928D6C5175FBC68D122383D52 |
26EED148C02AB73211012E97C35616A90C9586714C17406EC2710C1BCBC33034 |
A48345955362256E64FD3066CC98DB6EBB0D8A5A3761345B6CE77BD5181CB61E |
802622583996047CE8150F612FF300B0A2BECC9AE530F5660AFE8D3BC0B8290D |
7139F7B3C36976BFB69A8845A459C0CBD4DD4CD7A7C93FE8A0835E7EF96562A1 |
4E3CBBAE9DD7EC6C5D5C72389CB9441C536A427C12054CCA1317B96A9E4F38E1 |
84E5CB97A7505D5AA3085B455B724D3E43D58B1C78E08112D6104F1A7B95DAFB |
1C50B1635B10EB5CFFC5A43BF9E4937FF7BBDF21C8FA7B7ED9B4DA093A14B28A |
BCFADE3C6EC70B966ADF7DF75DBD7A752430313820D6BC725A9910706A294480 |
7DA253C0423BAD48080A3D17474265393584A050E194F8EAABAF78B406039662 |
437B8F3FCF6464F090504A0580833DE65CB2F680AB781D6BFD2EB7239388A055 |
A837BFC159716BEDB4D34E3289FCF4A82CE3277F8402B605C9B09D46B5BA6DE5 |
EA67434D899333819A61ED2E6417FE8F2B74A538F5496F78CB9F520B87941D62 |
B822B407E0BB75D4C4F5E8BBECB20B181AE7FE51071247FFFAAFFFFAD9679FB9 |
C29319464C114836BEB85163A1C7DEDA29DB74C8A651A346E96562D8C113EDD4 |
23384F1B5624B19A99D02BF6F8C482D0B36ABA12B1AB22E4C18C1C550BC980BD |
5A3E21AE4291D2D24CAD5BB7CEA97BC76430086288A6D3104193119607A4562F |
20E49CC9FE8D2165969CAD7FEAA9A7AE58B18214784DB9975303DC84C4032220 |
C23D52C0EE6AE6CF3AEBAC3BEEB883B5A3C2A1BF07435371F9E597EB2664F57A |
732320E729C171686E6150EA2BB888496D32E0881E4CEDB0494C4E7317C43F21 |
8BFD5F78E062ECC83CA02CB48F9329F2317B7F443AAA4640A42C37C1137198DD |
6F91035CB242229DD68F80E2477215A33C62683A22B0B8DC83DD345B6C4E8F04 |
1DE0BC7264548D7169930FA71C9C678663F00D894F80D4E3ECEDC6B9DF399F91 |
50B627B76FB3A1E0F06604B92052AD1489EF59383472EB43EC57D3BDA5E21413 |
9BAD5A8212B623D277F07B1F5ECAEA4A38385715DACD4A01029D728B6B5E563F |
938D325B729C5E175F71A652E187EDB3CF3E6BD7AED57AB1011852C461B9B022 |
15E22515FDF8DE78E30DB87AAC892356CB2B08C8CE218A584681CF075F8A67C0 |
8E04F3C92BEBB66C0C6203FAAFEF99DAB9E4BACA2BAB1B398B4B972E95C30043 |
BE4602F291B0815BD8B542CF0272BD84C781B25280873FA38F4199D7898F4B59 |
8B951064E416CF39E79C254B96A0C8C1C67234F49A575C71C5A4499348F9B151 |
BD61B83963604FE2ACA3C8CDE7D368D4E6D8982FBD127451DC4BD789279EF8E4 |
934FC60017467A4C4BC07B8722D464B9D891E680443F6086A23D38E4098DEABA |
492BD1524AA0EBE7A387AA47EBB82217ACF3F4446798203D2125638B01F9856B |
D2198A8F2088DEDC73A906B5ABE78E1831E2BEFBEE031282DA267865E405297D |
ADABFE5B1512C48070E6D85B3F0A8E4E601DC61A6CC63F8448A14A50CA5EF9FC |
F3CFADE4DCD3AD591024514B968A089E36EE6EBBEDF6C1071F68CB6AFEFFF6B7 |
BF31690658F56496548B422CD694950DF3895048013203BB4D2AAC7B5C0A77D3 |
6A15CC359A497D7DCE9C39B28BB1D228CFEDD7FBD65CE82797D998EF17238C14 |
1171118832785F5BF4FEA15F0F2D95803393B1C6D432C5E598C41E5145087A54 |
A9264D9E1034ECFA8D7CBEF5EBD76B8AB07D238A1E9A717D121DC95B635BC30B |
ADBDAA5169DFEA63FA939BB4C34DC80AD6B8D72933F6A5AC3C38114C9AC30CC6 |
7FB1BBB425468E1C295BD0E101AB5EDB0D508593CE24158D85D1CA1DC16BE41E |
D2139D8449ED4815A15D84C0A04183DE7FFFFDBE70A58E9E31BE67CA208312E0 |
231AF7682FAC3A3D94B07FCA4956F48D5E87EC4F0A49569F74FE75F09F738A81 |
C5236270311551659253E833433E093C50076CE49DED30E61977903C94F7DB77 |
45CB739AEED1F50E4147C29BFD063231DAC425D0160BEAF2D1587A1BCBB42257 |
0699A6934E3AE989279EB0E434E0D4F10383243AAD558BD3283C394D76F799F6 |
94E90B81C8D0969183863FA0FFEA97C6BB917F6402B13C2CED79629D0293E8D4 |
E2913A45EE10C3A1822D4E0AC2E8BBDCC55A6BA00DA4C7E303395FE55966D047 |
1F7DF4ABAFBE4A6E3C15E120047AD7839142576433875581B3B05380589343B2 |
E1A97DA9114ACA60138D1E3DFAF6DB6F1F3A74E8B265CBD08E44444DF5D7158C |
666194324DA6FE0AA8B56AFC7BEEB9A714520A96B5E59DD912D86D3539397287 |
E604D730B6DB6EBBCF3EFB2CAADBB8BDD0D64831684E916BFD2534B040C49A61 |
3F697DC911E2BC32451076EA1DE560E90839E0118B29B96C3B9BACAAE49738B6 |
B3E5965BD209BC555082C7E4A8D60BFE4EA7307A72AF2108891CCFE8D7FBD6CC |
033F5840C82979F7DD7739059C0B98D223B8D708AF466018F811CFC59476AED1 |
429CFBA7DC072D5A90320B201BB1C76026D4BEDC8B9A5D078BF5F4E9D367CD9A |
75D861873DFFFCF31C522246BCA04E318AEDAEBBEE1A33668CA3442CB1DB873B |
6D89E5571FB2F6C6D6BC118625CA8ADD16A5E4D65B6FADBD576AEF1D11129C77 |
3692BB19A6400A88DC8F07B06A4896F2ADD0EE25B22618BBDE0A554629D84031 |
999D42C52D0ACC6CA02E2580F6C115BAFA301081088368E68E8DF1FC7A367CE4 |
23F922E7483727BCE1BE5B0E232D5FBE5C0E15312A8A59CDD3A7A75855D3BB5A |
77EE2C9E26106239A92F6AD86ED4DD79F4A88CEA1C7F0AB5EC86493A56CF808D |
7BB515E2A9C00236D6AF14FBC1758E91BF92024EED69EC18D54FD91735D8D616 |
4F2C58F7DD1CF732E215308D5FFFB4D34E7BEEB9E790CC9BA82B6DE48A496A01 |
E3567022044395836D738F65260763804F6A4FA411BB83EA925357351E9DBDFF |
FCCFFFA473B8967CBFFDF65BB97225567CD7CF130FE134C2008594970FA79F53 |
AE55D56FB6DD765B2930E9FE534F3DF5D9679F9500E548538B4C01436739164F |
E1843BD8587FAABD75307CEC45B9D1186ACC6DCEAA6E4518DC7541064D786FC5 |
3DE4920FB78C4438F637244BB2930DA76907760F7DAEB61198EAD44E6AE12F6E |
686FCB11372B1AC5E78D3A1F53C4C5479F75D659340BD3BB68B134037A77ADA6 |
7E38F8E083DF7AEBAD5641EECD8AB3DF5C56216F584664BFDEB7E6A21D21B97C |
2C1B448C66E6924B2E79F8E1875DA1611562486A4C98F5EBA156C04064D92106 |
C7953CE01498875371E0D9B748284B7CD00903060C183162C4DCB97351632EFD |
72F76B2F819E7EF1C517DF7BEFBDF415D531041A09989F6D96B2A0E45F6D4E57 |
F7767DAF66687DAD4720431800D15A59A8980BFA4166C1030F3CF0CFFFFCCF1A |
EA85175EF8E8A38F6A24BA33A61EC0754F8849EC31565802C2723572A691CBA8 |
B4B5BEFEFA6B8EBC3FEC525A3019DFE5E6A72903DF527B10A2E4DBF9605A4373 |
3A22F986AEBDF6DA6BCD9A3511ED2C65AF698C6D2A3A87ED118244718D2F9699 |
434DB82EB8B3E0B958BB66D14B8D874A361218E79E4B962C39FBECB3213077D4 |
DA915EAD1A21134030A58ABE562ED9A29609BFA82FD37DA7F6405D0A5DD4B49A |
FAD9C68711D77AB48EBF6E3279F2E4B163C73672A998FB17310CA72C2133C01A |
7039400C3EC7E081C3D1FE253284603E9052EB5176A65105B1B5B9E7D9713BA3 |
1DF9FA01071CF0F6DB6F6FDC1255079E129414E8DFD88E0E676152959270C6C7 |
B34EE66169660E046EA2F161ADA01B8E3DF6D8679E79A6542A5E1A0FA863D8C5 |
E80A505317CB79F82E774B66F37991B4A1A5B4908364EC0113699311498BA416 |
5D0949B8A1CD1F493169A01A058C094966C53975D6460F1D356AD4ECD9B38DE6 |
489B2AF3D07D1037FACA21871CA2E32ABBA1F39C3B6BD5CA94A7DECDFD55C08D |
D096DCC14FDDF9DFFFFDDF5F7EF9650962EB6003384165E33601A734B548CAF9 |
48BF298223053DEDFD468B153258BAB95E19C4A32514734B768A35251FC30FE0 |
DA36A307CCDC6A07D29264E8D0A12FBDF412BC98443E2195D5F02813C21044EC |
C2B4AA4FD6D47377BD62083A82DA6A84F2A44993162F5E2C2F4D9B56B341DCC2 |
F85E9629B660235C8F564805C8137B8B901A02179D8D7094DBF4EAABAF4ACAB0 |
64F83D309AB1C724288F3AEAA8279E7822D27575BE975D76AC529C78073C63FB |
237BD82983A7FC576D36F8CEBCED356CCA55491CA6A286C49FAF57C07AD0C081 |
03F5229A96E8495B9EC2874C496E0A9E93CB49DC229A976AE4FA3A8C6C3B55A6 |
B56121E0223EFEF8E3E55DE833EEDB5DC24896F45C3C4729AB0D22E73C4E77C0 |
A960F549299AE6890A60B4692B34CCA0B291BC69CA6832C080D8CDC4C38948E1 |
9F986DD1212E5C266B298844D0179EB168AFF405DAF938E1CD4C214E5F043800 |
08CD82E7D5B790A8A0319A99C72A86D6489C7B8D3ACDA3CE8D61F039A7D85F74 |
22A915D8C5B1F338E0049668306AE417A41F25C87A25051D6CA863C68CB9F9E6 |
9BCD29E1F8832B85A87C4DD988D0332885A4EC040111F9C423E582211B5438D4 |
7806BC8C0BF3DD96A73E878D7D802C4EC161C544D04694E076DE9AA022B63358 |
5609176DAFAE949C6E754CC9E0A04183D6AD5BA779A8023791CB2C159BFAC33C |
1AA389085555081AC4BCD6C2E111122DD1AC8B1B0B191D3BC6C3B8D65F6EED56 |
01E6D29DE137C612C4ECE5AC4E983061C68C19FAD811471C218564087723D30E |
1B611113D59E014BC688CD76BB08D3FAB8BE08961282FF88007AAAD35115EA09 |
B6532754F81FB9C8F79BCD03FC85493034BD90E9E36CF5163DDE53C6162119F1 |
4DABBA4ED52F01EB88738678B5FC8A3B044006157D9C14E3755D64ECFA314B13 |
EC3F6EEBF2E8D34F3FFDF7BFFFBD7E202604E304451DFA166820C8BD4BB93772 |
132EA7AEF1804B81C1184471077BFDA0A9C37975308030234A8513CA8B13B262 |
C3A4D0C991765E1CDEAAF3C58BEBB6DA54FFF11FFF1133FDF163A5EC9BF13BAD |
CC0DE99653385E3DB9AF0CD9655EB0157AB0F615AD85C910197D8D81FBE69B6F |
D2D13C6AB2D215B5AF858C63C88CD6B0C1F9F3E75F7CF1C58D5C696DB7A49171 |
DA11A0CE2677233B7AEB12BDD3CC378B26EBB2FE098E9622B129A71A49289883 |
C19DC46CB2C4EC6F648563AE5897123ED779658E64649561924DD16C9FC1164F |
9C7CB65F33B4C98A530A7015820A63729BB95B97E7A7991966BC3A522EB24E22 |
55A7FF8A31A4DBD6A1A05B19E2AB7F91B931776B90A7230F4ECB9B1BB927F7D9 |
A05E0ABB0934363B0C80003A0FAFBA464AC65C91BD9F9AA82F8CA629543858F1 |
1397E78DA64F9F7EDB6DB76954126AEBD7AFD7B734121AC96984DA613A123D15 |
4D295A01A64BBDBF357DE7E5F83CB4064C572353AA92A421ABAD01C8E899366D |
5AD7FBD813758937118846A88E88A7D102C570D056A0CBFFE11796D665975D36 |
6BD62CAF172263D8B0610F3CF08049F288B4687B498FD2FD1B25844C71C62865 |
EFA715A08FF26376DF7D77598B7A3532ACD8DA7A0494C5BA9531265CC8E8666E |
AEA9BB413A0F08420396B869169D2DFAF5BEF597CDDE94B1C48D4085E38610CD |
D0D18537D51C7216AA1440FDFE27BB2C2FF3E38F3FC6B42D01EEBCFA5A8EE1C3 |
87DF7FFFFD5A3857C1599F69B3E903871F7EF892254B881638F4E793F55DE857 |
880AD4CCEB4D638F20401BD879FC92A5040F6122827AEBA7D58EA68C959A0032 |
70899CF2970E9012753E92D21AB25A3A35D75F7FBD067CF5D557CF9E3D1B42BD |
6FBEF9863DA9DDB5E79E7BAE5EBDBAE485C4CB9186284C639F4163CB4B760F21 |
B7780C1D734243B8B6D0B298D966057FFEF39FEB119200B088837403C41A0390 |
584535D5222907934818F5E57667BA894CE43973E6B8E48F59B5788C6E151A05 |
5F05463C0D7BC182059A5EC004BA090DA775CF3BEFBC138B070D675ACA46EEB5 |
858E3CEAA8A364087EFAE9A78CCDE448680DFB4B8C996DEC182117C396BEA72F |
3B86057A5ABFD4D4E15460C1B3F18CC3C24B3465214F2C29E01286867F9B057D |
18A1665EDC85DD6E951109152C16B8F4D6EFBCF3CE55575D3575EA54EC272FBD |
D95A2A2DD346A6B2E3A38423F4AA928C94BD3A45943ABC7272C0B0BA6C0884E0 |
6455CDEE9642A331CC93AAD01C8A1FEF0791613C7DD7CFCBC47BE2892700DFF3 |
447AE51A869772479DE88E37721752204EA593D917DA32328320B719CF267922 |
233AD4A92F576B90AB009B5EC37DDDCA1C966C7437E98C0CB725F8A55E591F36 |
8E86D45AEAE7C573192D30B156811B4F855620BB1CBD9614BC5B6F59BD97B4A3 |
2C1882D51676268DD37DB6DF7EFBCF3EFBCC5EDAF4E2C25CC39EEBCB54D571B6 |
F1339804098579F3E6F15733D96E2E0FD8928245375C40FF95B297D03756DFE0 |
58E77DE372F7773CA86D5670A79D76D21C9AA0B4F476D66724837410162E5C68 |
7DA3AF83221C356AD4830F3E88EF185B48D1C284D3CDF8790AB6327B58EBA817 |
213BC3D81A459131C7DC5177DE9448584D799EBD1F7BC3AD769AFB030F3C70CD |
9A350487622F3F936FDB2A251B1D2BFDB84C414A77DB9A72C1566E554B0C2315 |
607B0A1608EA323044B93107A9BD591E2A243A918EB846A61D76113929CA66C8 |
D4387C9A7269006164C007C8F766E8A216C7EFE672FBEEBB2FCDC750632E148C |
AD21B186D197AE8372821668313A4F2ACDB06777204D05A5B98E1B4D9D1DEC34 |
B8CC511FCD98639629B094B07051013B266A33C2A686ADD8C30E3B6CE5CA95AC |
29F6251F70D4C1B162BEEEDC3FBFE13346C979BD3C9F56C0040990F0B19D5AC9 |
7A8B5DABFDDFD8FE08A27BA2F78D4C7C0644A3D15F4160C5CCBB794523CD4DA3 |
BD011306C8C489132549A17F72C939E7199BC54625FDB167CC9871E59557D2CA |
E6FF6BEDDC42AD2ADF35FE8DE9BADEB7FF4032D3CC12D3A2881204A573D909CA |
2EA428CBECE0A9D42CB5B3655A794ACB434907324AA3A40483AC4CA2ACE8402A |
694A7482A88B7DB1F7CD66B7D6DC0FE3F7FF1EDE35E61CA3BDCC7121CBB5C61C |
F31BDFE13D3EEFF3DA1E8C502F0265030DA5D65D45E8F6EA6280A8D53AE78140 |
287842DED4CD009CBB020AC186B3F870BB18769B830A0E953015583CE08AFB72 |
7BF0E6BA67D68548D75FB9F53A7B28E5CE36246B0D59342F66AB3FBB6CA5CE95 |
BA20D2E114F634C7B15D2D677A0A130FB183515DAD925B47325137540A858F82 |
FEAC797D8DCB43B5B3D9ECE7C59EF6BDB9F349E78599685FE16F39C66D034507 |
319E589EE35A67C706ECD03B265FF7FC1830F4CFCB972FD789EBCB6C532EE532 |
7C4CDB4002B1B3EB4B8575E1D81A2E5DAF98C9D6A69A3265CAABAFBEEAA2BE98 |
58F590082973163008A2FD87F7D6CEACC875E3A974AE74E2A652B49AFA039853 |
095F88F89D54EE76325928787E392834A792BF280382F083FB9A788F71BEB819 |
69C054A06B4D89E3D9B00233D3A79F166B6FF4047D565E87350DFC0D44B39C4C |
65B7C74C7C91292DEDA0DB9A44F546F898E991F1709C9F8AEBD5CED4EE38A08C |
B0151A0EC6EE70B14019AF9101204050C3E015B0B1643202270273A727C03ECB |
E41C77DC71F2D479B57FFDEB5FE3C78FDFBB772FA6400C6358AD7AD5989CC8E6 |
E6E6EE84BBB46A7FFEF9A7BDF6D4BFF958EAEF0D1B32E59DCC220E58013BEECA |
14B403469F8D88116AA483CB66E48CBFFBEEBBC65978F798E58A70931658B359 |
41EAC771BBD1446F635BB4815E684790CF362F52A360D550B500EE70E07A3BE3 |
AB8BD08583BD357CF870B917CC9816D58D6822C9003B8C79338B16F2A841016B |
CF69E12B942EDE01D4A4EA8D2476651A7FF4D147847180CF50E816E1825DEB5C |
A99502FCAC6DAD0F9206AE9B1F066FBA440B29B64D4F6837D40E5C9E3097112D |
DCB76F1FFC8EFFFCC274A0F5505F6E45C79F2015E168F9FE66858AAD1039CEEA |
EED7EBC319CB5BB3F38999EB4B251FE3164AFD332C29B45BA84B19D8DFED09DD |
67918FB0DCD05972D1A245A0A8B0EA52683C4ACD9BE3077EFD58C7F2CFAF0605 |
6C5F5973A59981483526CF8AD06B56FF1D3C78B044AA0CF4A54B97222210FAF8 |
527D81AFAA791D2924259415E5989D69FC51660C850DA6069D8476370C9854F4 |
ECD9B3B76EDD4AB29348F8EAD5ABF5100D75C18205765750E704BAB0B0539672 |
E657276A4AF50791B9C813EEADEB1577E2806EF3104291B8758A90B773E923D1 |
0223C830DD6231454501734EB108E5FBEA65E1A6A054442F822626E2455A34AE |
A06900DC9528F246547678857F3B825E1DD68A65CAB86A1A83EE3CFDF4D3F7EC |
D9E3FA257D4A4FA364C3BD288C87E5AD3D9346CC7953E9EBA64E9DBA64C91283 |
0FFEA3BCB4162860B008166B6C39643E5A9613E75010EEB8BDF30113023862E0 |
8A11642B8615F10A491C52BF24215A654344662AB273B93119216B3C24831450 |
42DA2EA4703057DD610A43E9185AE8281B304DCC6F434E77506E156E91EAC3CC |
5F91A77A17A86D883FF059A7CF89D622E6468E1C79F0E0415797A65C875794ED |
4738210D21F798C3A38DB6664C82006DEA9390CA6A39D9B0EC369D25AD14B029 |
22F316949D75AE76A43053084B3484CAC149AE58B1E2965B6EE178C75E22D40B |
EA8DF4044E14A7CB5DC33400F3BBFEF36BEDDAB5B366CD22F8433492C080E15D |
C46CF136F011BB3EC7A160BDBB7CB5EDDBB76B32617CAD9B87482142428E9B35 |
1B101F32277AA64486812A2077E89127B3A9CE10712EC371FE9413F6688B1490 |
CF7115402D1C7FFCF1201E3CC898CE380AAC40DD5571A93BA13AB1EF166366FC |
DC69B52A29317FFEFC279E78429B47338363E1F621CC00B05E824C75B9D2566E |
7B87C90BAD1B68233487C37B8E9D428A6086EAF82F536AFA65C3656CBEF48416 |
5BA81613EFF484A68D8E36A54CA2994245D9E4C9933FF8E0038D818A20E09FB0 |
0D027903026636D3566EA860A253DBD31596C3CE32B6D4BFB342CA38830A9228 |
959A8F2431B7990F270577DC915E3FCDA525187F3DB971964B364CB38FB9FC57 |
D9728DD3A1D9BEE4924B5E7BED35FE2AAF86865176B5B1960C8687454A4F063F |
C8A290504819DD9DB2F11A0D59433E0100A68CEA258845EE03CBD55C5D95B58E |
EF6EE96726937FD3720DE82059011765ED8DCE404CEB0293035A9C42E8C6F104 |
D72FB1BAA80A1B71EC211C8BA79E7A4AC78C35704023BE5B730E78A0D7A851A3 |
5C3E21B574F1C517CB926D4035CF983163DBB66DB043D8BC284289CE983163C8 |
654AEE6FDEBC197F11117CCE39E77CF6D96704DB89C94316E62E7EE63E95E5B5 |
65CB16B4949E2C254D4FE9CE0B9C082132D9DAF20FDCEFCFD97E2C2F077F1CB4 |
944AD66D2E9EEB5AE7AADB56AE5C298B9E09E71D1B22108C07A206149E356B0A |
995486610FDBBBBC3730BC1F93F565185ACDDB6FBFFDE9A79F7668D790511225 |
F49FC070EE7AC52ECE7E7283A156E45EBC29777DE0F704483406397345595FC7 |
A1C0248D82DB2989AECF8F653CA93F2B562A252FDC0E787248FCBEB2D58A31A2 |
D1D530CE390557E098CC7FA73F1AD37E76EF52AE2F92E7A761D09AC2AF362877 |
C841D79A5707121BC79C7C7FBB9E998E44385BB49D696B25D0E07849814B2B65 |
316AC2A34E6302FC878D21777F49D9B773E60F1F48F7CB8CF8E8A38FBEFEFA6B |
1D0D68CC1DE5B6B717213F1AA16E73520610066E4F6C99A51DF55FE5C51BB532 |
2F7A2A3D1FA38B1D6667BF756EA1BE1A62AF56E87DA429D290E8B02E51036788 |
53DD2988E84EAC3B17D2C0D1EC14325671C57D3F3C309ABAE5CB9783F6D06B2E |
5AB448BA0DBBE7C1071FD4FE99366D9A5BDD500E0008A6F3ECB854D5AF1CCB96 |
D8693D65233519ACFF5D5EB27588792030792F67DC5C9840FAAF9D3941B5B5F6 |
EDDB377BF6ECD5AB576BB494B7D13FED6842D038F57AA8661F2C06E388DD0E62 |
1B5AD756BB152B0B49EE87A23A988DA9F576145713B170E1C255AB56492BFFFE |
FBEF644C5DF57114F5AC0DEF65A6154D3769F3BEFA767238FDBD81DF9C4414E8 |
71B8499D8D37C79B01EB29F448800068E2C4897BF6ECD10C7CFFFDF7EDCCC5C3 |
CD804A38BACDA151DBE3B2608C034FA560D5A36055D557C8A2778DBCA1613CDC |
0434953A57DDF0E38F3F6A73EB66A9285AA390F26998D2143AD873B4103118EF |
60585C27432A0B9DD12A7B47C2517CACD6971F62D63366CDC182EABD4C18DBF5 |
3916401C4EA2020DF5EB0409AC5D680A426CD0F04B0E307878F7AEB11522D3B0 |
CEEA4A0134C45E35384E274866048CFC88DD9933676ED8B021954953FD5E0245 |
CAC6D0048310DDB7878336D07AE5E6F9B753E5A4B5B5A65157E4FE5908078D8A |
DCB70DD7CD6CC6E8BCE9D3A7AF5FBFBEC2740D8F669D2D65B34F2702BC058745 |
F3FFCE3BEF5C78E1852954A83333380FB87726AA34813CE24EB34A743486F7AC |
7D31C1115F16083A17A46907E54EEF0837E78029E0C13CE5A5E88E470D9E81E8 |
4465264C98B073E74EA7787DD0C09D6002C634478302EE14AD0EEC239F2BF539 |
0E7DC753167301D1F8F6D7B9DF622AB53832C7E958D6C8141626974E9907576F |
AAD774640EB0ADC626B7E7E5975FE67D51759A10CDD5B871E3E468496D99B739 |
BABCA9A33C922BB6FE4DD9C04AB9CBA4FB75CA1C91A88F6DACB8C7670AD801F8 |
2763FB8F46C0217D7076919BEC1E30EBA8162924BA1E464A23D6D5D9ECF3CF3F |
7FD7AE5D72D7EEBFFF7E42F68608612D6AB84CA8D4C0175F7C6180437CE03111 |
1024333C3002C2ADC6A608EE45954AEBD2E06A541A1154DDE6FE2AF6D7D93AED |
DC754BEB41798911ED5839FA3D9C3844C5BD665DC74371173170647D4F6EFECA |
C16BE5CE272967748A928484D814E71F3FB56B9D2B0B27097EEBADB77ACB5255 |
59373FB11F30F59A8EC050668D393966CC9803070ED02CB30845C311DDF0CF2F |
79F9E6EA428E6B5484D15C24DD17DAACD69D8B254B96AC5CB9525B45DB559FD5 |
1AB9AAAD6E1EC0F11E3A74E8871F7ED0EAE883575C71C573CF3D479A43671B25 |
11A7A828DBD322DC2FBEF8E28F3FFEB8AE8F753BB78571C759EF584863107050 |
F9B057C920DC78E38DCF3FFFFCA9A79E8A768FDE864DC374AC41589DA1CE22B7 |
CF72655705F6D1EAE8974A0C1F0B929BB50F69009A3246A45D76E79430F9F2CB |
2FBB8E8762FA1D3B765C7EF9E5D89DFAF6A54B97CE9831836DCF59C348354B41 |
C5B575332B031D1CB9890C275E145767A5C05743CCDFF38F9F4D5044CFD4A8B4 |
793EFFFC73DD49F80AEBD0694B8A458BDC76E2E4934F96A7E5C21BCEA0F507DC |
C5ADDCD63AF24C75AE4BEAE6019B9BDD81134933EC033C31B32CA4EC0EC6754C |
D9858338851D5E945D4735D4134F3CF1BBEFBE03DC4AAD26E91E52FBEE20CE9F |
1CC5A14C142E0EDE88D264FD498EB2E6E1DE7BEFB5FBEB748C212F955393FAC7 |
4EDAB9BD15C2133A7157005A8A32306C0EFA8A6287A56C165011F7F3CF3F1B72 |
3876ECD86FBFFD76C00A3832B9C4F3637627C7FA639F0DF31C0DCA9D9ED86418 |
0E36E210D69C4610CE367CB46040E18D723CBAA6020D02C27C40768FBA9A81F1 |
00E3D50D1B364C8764DBB66D506F92D5200D0C5C931F3403A3478F96145EBC78 |
F1B265CB347EBEC8A51D94F710D32E72771A13DF3487D470052EBBEC329929FA |
EF1F7FFC8105903220B955D271D3A3501B1D64602B1001C632B076479D6B2AE3 |
3F44EDF4271D39475D1AC6A355D319983A75AACF3CFCBACE7815256DB80E8F5D |
84541A43BA4167E91802A191C89C0AE072F3E7CF7FE699674C8F90729C001AE1 |
BA79A6888BF0A08F169E7DC33EB104E41DA1D27430B3E8D67CDE6521D291B2D9 |
1B147C91B9969C69864A5082A6C2CB4F3C0DA1A33D408F6AA498AB2C225C030E |
D76335FF29C7725336015316201C01A8F7503C985F11B6E33532A41F000EBF81 |
0FBCC281EA17A91B0F6E19C45E8ED31A94E0B81D562C707D0727624BB794137B |
44C52C0F8D77313027E5E8B78E95CC2343BD52968D988328600EA0FB23B18B0C |
F14DA11B4AD4FDBA8DD229DD29D3E4C89123A4C9FBCA5E46B86BBAA4AA651416 |
E18A20ACE6485BCA217A8BF1E9D3A76FDDBA959433BA0DF7B7C8D49E0EED1243 |
2208442CC12970BD8E9EE91614069DE0EFA51CBCB111E31D8BCEE6E46A4A51B1 |
6621654E00219BD0A3C84C1AF8182C41AC1CB30266DA2B4E30AF699B4CDF4BFD |
5E2AAD1C597EB26B91FC9666AB56AD9A33674E0A75A15AA0A30941637BF29E46 |
0AD8D8A97453E9CBED0A9814E0A6AEB288B42F76CE7C96D8D09178C1CD1898DF |
9ED034ED1F5E11A7D7CAAD4953A3828F98E448ECE7F6F214B9BB5AD41693D1EA |
D8BC1649600DA27D332893EC63F439FBD2755DFCBD318F2E351303FECCAD590E |
A06D33939197A9B3CE5577F25793D4639636CC0F9170C3C263C775DED7670F60 |
146E4D1128668E6D8A410FD7EBB8148A680DDE953B70987FBFB9814F4FEEAA66 |
9AC06681E5673A53907208E1975F7E31B1178788BC438527A1D9F04A99BA4ECF |
94D63CE38C33DE7CF34D942B85A47047803B436CF12F2BCB8A1852C70F43860C |
B9FEFAEB1F7FFCF16335FFA99B027641AD9370D75D77DDEBAFBFEE6899BD13F6 |
302387F908938E34B69D397332BBB4AFEB78384DE82436339A4FDFA2EDFAEBAF |
BFDA4074BDD635D75CF3F6DB6F43FD615AC094F1D2AC9A4B0A2379962B85FCED |
8E344088812D6E67866305F682D22628AF25BE653212B3010279D34D376DDEBC |
593BC79100E9667222FAAF1CFAFBEEBB8F04D3EAD5ABE7CD9B077F4314B97565 |
487539FB54DA402E1980C77ECB962D93264DD20D326D35000A8E6358DBCC1ECE |
60021264DDD102786BE79D77DEA79F7E0A00C5AD9AD9AB5E6E3D07918504763D |
2A78585880B48238E5469678BDF09E913348605C26F64C0CC5A75C8E8C18D45C |
51D19082C503684EAEC255575DB57DFB767D979B1D01C161F0B8196EE021B1FC |
F2CB2FB3AC030661F5766B147FFFFDF7BFF8E28BDAA9AECA30DA3385780BB621 |
73C1288DCD614B69856EB8E186F5EBD7337AF8D94D22815B40B6D5A9B8BA030F |
71746C269AFABBEC8683794B19F280B289DBC8790E360A9B98CD1DEBA1915FBD |
B993522B7388BB64194F94FEE44EF9207F5380E347E82CB33D62C488F1E3C76F |
DAB4A96E69909B0E71B432F9B88B6E53690936E73879888194000899049FC008 |
E36A65F6763D907660B6136562CBC7FA2B77A2F612D429005745A3DA31866414 |
6B53B92899D0A8714F989F1CC266CAC9221701F3226EAD41FA93B3576105F267 |
39E1BD65138EE69C37A6D5DCB97357AE5C09A2BB4E912F5EBCB8EB79B9F3CE3B |
376EDCC83070CEF44B3D50B6D4D0A1432191F0C6D00F7071531FD9CA6D64343F |
FA6A4E9FA11880ED712839C2B6209B895FA2C1C4368EAD8E117045C9A0028209 |
1F117BAB194196B2071F697F5AB97D083754FA8B23106978673805906917E2F7 |
E65E580DA5EADEBA0C95D9A068C7C180D8B61DCA71E2313EE01EAA6B0D8CA8E8 |
0B6DA95A815CB395D9874C3CC2DBE90401A38D76AD13D511508D1037BB9633DF |
294387EC0B01ED24644A1A95F7D51B11FF4C038F20DA24B292D6099D3061C295 |
575EA9AD6B4E0CF7C1ADC0562AF674844131726D27A864F5FBB3CE3AEBC08103 |
349A23205164AA13D60B57102306EA4DBDA98D398FC1DD4BF54CE69916E6DA24 |
FAAC9E0C6A1A46A318A9AD981171BA383B46EFA3C2C81B0ECA8D5691C0A9749F |
F82B2979FD69DAB46932EC162E5C78341E70CA91B4D8080CBEE954065860948D |
202C43B1DCC8413FEB85E14BC34E4776C8BAC46C21D872EBADB7CA06A76F65E5 |
2CFD2DC34E0A3C946C65CC2EC341539927D3629026816B894395CA108A130086 |
5E47A6116F416623F6CBA4D84B93134539CA0648854B9E64963EF4D043B473E1 |
6C238990BF29E7B9914D24DD1BD62565154E122565A0B28F8A06A051FD6DDB47 |
6B7108E718837E89FD010A26E5349839174F39E59443870E996AC07CB9AE754E |
D9A2EC0C81B23B6DE520B03099354B92B0123A985CA05E7590CC004C4B697D6F |
4317A9229325A5EC8F46A26073931112A726CAA38AB4440D4428FCA0D7D4F46A |
8925282FBDF45299925DEF3FE9A493EACE8B5E9650391B2696F3B702A956EC83 |
E6D44F94D4564B941EE999880307ABB5A088E3E67A7A37FDC442D526A41B12A2 |
B0B39E5B86029A581F94943972E44803652CC5F4C8323C2117C6D4F51767CFE8 |
370F3CF0C00B2FBCA08D217367E6CC997EA646488D4D03BBADE3DE31FFE76D8F |
FEB6DB104B86B439ED4B10D2700D127BBE0EBE44C4CE7D148C47ABD4E7A4FEA4 |
5A5E027E636F0CA046CA7021EB7216DD122FE5DE035A086D0046A87B64CA7FF2 |
C92750A8A6815C8E54936533FFE2FF9497EDC8D8C0C071DD0AFE2E85C4301BC9 |
01515023D44043A118C1ED1E33C3D0CC13B733CB552A2D00EC42C768BDD01C16 |
3D13930E8392D9731829F2ADA6C093D8CE5CDF31066601C20169057278DBBBFA |
F9DC73CFFDEAABAFE0D0D62F5D6672340B8038ABD80B29D3D018908D1E428C22 |
5E5DE4106B618D9D33B8CE6D29A500A0724DA1C24C0BF3D34F3F8103AC23B51F |
366C18C56194665B0B56F2ED5CB1081273CC39330B5C6710A11A26CFEFC4AD74 |
1BDE8903C89196CFC1766B474E081B486B79F3CD374B9478F7AC59B3E6EEBBEF |
76BACED16CF81A1BD605393B28B7A84A39138FD98525D4DC0BCF9591AEC6EE8A |
832D02518313FCB6F4AD45348DA9048FC469EF0A028AEE94DB1FC550BC84ECC3 |
0F3FCCA94023023234EED103EBFA5EED506B6FAF02961C6F54CA044F3BED340D |
C9F5CA9051BB2EB04E014F9F3EFDFDF7DF3F7CF830FF8D8091BAF1743D2F29D0 |
D75057C67AE17EC97A2380E1639FB283EE167E681DD210CE79CBBC03A04B4082 |
8D1449361AE68D9D8C7BA161687EF6EDDB6782CFA2ACF6A6ED8A1682EC63CC83 |
A6ACABBA3EFFF2CB2FDFBF7F3F0ADBD36BE4C75F1DFDC56985994ACBD2A5A2FA |
AB7EA65A9730899663DDBA7511E2D0B981C976A183F5D537DD74D3B3CF3E4B4C |
15702F0CA3C822E2E42851A6DAD28FD966EBEA2374EB228963598C33AA4B8B18 |
F3DF9E76ABED8AF67540D841026B0B27568D5B76ACAB2FF3585588D528767084 |
E028523CB1E72C0E15CC45A9342591574C4B8C9FD95EB7CDD10A7D2CFC0392C4 |
0C049E6157FBA4A0B309152C5FBEFC9E7BEE615DC84A385386E6FB2B774E4C21 |
109B424623E506A39DA5FC9CDF2294F6B533556A3B947A9BD3C289062F712BB0 |
D499BFD326B516EB681430F1D2F8AD64DD89F21358377C3C7ED645383DB9B9B1 |
7E29DDB376ED5AD762022A93F8B35267D61C2EA6400258816DF9CE6BCA9429BB |
77EF8644A69DBB1DE8F9F0A8E997C3870FD75F91E67AB85E8A2E1F28C5ABAFBE |
7AFBF6EDCE1960F6B21206472064595D5BC1A9749D639D25C86A0E0337B300B1 |
9E8ADDA61592612141A3FBC9FFB1CFF0D89A51A9BA01962B19595827FAF80927 |
9C2005431E5D371072A0ECA14E31B40249B57E78F4D147B53A7A4D16DA704D14 |
ADA3E5F813B001574A1DBCFF5A813FA8B30C26E574A0790C8A5C77A82F92C9A5 |
D5D1F8357573E7CE956C95F8E06C8350653C6655EB7A21DFF5404873B0088934 |
DAF9D65FC9CB82648931DB945B8D767D3809276D037D8596CF189C3ADA6D6309 |
2BE705A64FE87E34C8BBEEBAEBC9279F7410323AB818558EA8F3AF0BE12485A5 |
ADA9C877C23BE5FA51D780920234B0B34EE69A467850D9515BA6675C59C3A7CD |
69A57FCF3CF3CCBD7BF79AB0B64E016BC6346F950A3D045FD7FEE2AE4F25114B |
4F56324D041B8934920B6C00C7E9C5B59710F486C9F0A779F3E63DF5D453AC88 |
843B485A3DCAECF7CEA6E3EF02FF7121626FEE4063748F370FD8FB8A4758E4E6 |
19C4F3225974917B82E15CBAB14A0CD75B8BF358C7BAE36DB18B435CE8A350C0 |
91C02495AACBB4F9D69778A2EE5DEF197025525F68ED97FAC7A511B6C810F61B |
2F68DE02AB43E40F2C1C4CD43BEFBC237B8E8A640D29462688B96A3CDA36FAB7 |
E237A6006966ED4098B67343B64A3EDBAEBF2D6C1FBA8A83E7CA2B9F11AF85EF |
1F7008DA5D5D094B226E7A42EF656005AE0AE0006382F192BC1E0A86D7731315 |
6A16B1864843EABF0E4C4D9C38F1C30F3F7CE081071E79E411279FBA8ED38409 |
7AA68145BD99A239327F9AE5840D4A3218485B5C21000E7AC76BAFBDF6BDF7DE |
D393C1BC013A9F3C79F2962D5BF459CC0B6A005A99DCD5314C3F10330D139253 |
0DE48FB8BA3D1BD70BB94ABDD222226EDCFF2D3BC0C37EE5789D8B117B42AF75 |
0AFFEBD6977122DFF51C3373A59CF2A72423851ADF56E00B4407EB87A143874A |
FD7B715D6E514704E1487ECCC77300FE4D19530A14FCDD08C7734FADD491648A |
EF85056604A934C415575CA18D64E1552106894BA6A1EA75468C18B173E7CEBA |
E7FBEC55F84FBADE1F73B1F1BCA49CF5B4BDE24E00C3860D3B78F0A05F10D7BC |
1588FB53695C8F1C39F2D24B2F95DA90F27EFAE9A75D74EE860A29E3AE416F80 |
3F6F687F99021195B18A985CB1E18C0165986229E3A1FED670E487CAF2B914B5 |
D25F3CA69FC9867288A0D430391D5FDA10FA765D90714973E6CC59B56A9531FF |
0693524F4F80C47E4F2A11B991D0D42DC6BDBED61C9E3D138944ADE9F3DB972F |
CF00DA0BB38FF54299619D58E37AFBE19038391AA11B2C16B3CAF8490F0D9468 |
C54F7324A0955930EDB83B4B924237ADB89DE221B51648591ACBAEA2A0167488 |
89FC2254DB11B8DE40DB4E1931360AD6AD8E3C9CBBBA7FF1E2C572278C21EFAC |
F725B5E11C1CD156E6B92FB091636522E250C03C048BB01538355BA1C521707A |
37022F42EFA20183B07C00F88D7D533B3A9E324B58235C6C7F5198B860C182CD |
9B37736E0D538ABDA353CE84F17A1CBF58B153377EA37B580948AA3518AAFB51 |
30E848265162DD35D4A8314711992C464E32C667C0063B5138147934339D02E7 |
ECC9C7A51D299969C2F8B366CD7AE18517887952064D12D41169164C5B473A80 |
2AA3AE07435F0197A1F52E821B05EF448566523FD45127C688909E3375EAD4B7 |
DE7A4B3753C95EF1FF8815C7D03A613A7D9DBE65F4E8D1DF7DF79DE6103CA715 |
6D572A44CF157A05E910DDF422F0E9981457DF3E78F0E0FF2CAFD468D1735C51 |
E4F40289E40F18102C22CC44AC20B3C1B6D464EAA5EACAA262999383516E8351 |
F791CEF3A209F9F1C71F35546DBFCB2EBBECA5975E62E74BBE9F75D659BB77EF |
A636C9A4C729937A72B65D74A0DD2EEB870D801E623038CAA98CACF0F339E79C |
73FEF9E73FF4D0430D83749435950905C3DAF5A5D49A3B74AF85405439C8D95C |
D6A2E5D3B0A9A84ED9AA88A9D9AEFDC5CD97E93C025F019A5DEF4BFC00B9D4F5 |
7B630E1E3B5EDB524B0FF29F6F31DD87C676F7DD776FD8B0810A34A7DE8BCC2E |
E778FBA4499376EDDAF5D8638FDD77DF7D710EBD2D23F563F4747B735B8222F4 |
A88FE7C2997817769A91308622F01A1DC7AA44B32391706A4C0DD45DF6E4CC18 |
13FF6A918838D5BFBFFDF65B7C7DBFAFF795535D18762EBE003896FA934247F5 |
66482041A3549A44FA08140E3A35D3A64D7BF2C927392CDA8D38BECE919153B0 |
2E378031F62D365990316E46E617B9E99F85957CF1C3870F33C37D99613B22F9 |
236CC256EC8015309EA59E256520DF9F87F68416D3D1E444915061E263E34C0F |
659700FFE456EED8B1835D65460BCEA7CCCF9EDC30DCACE558D6DE949D97B720 |
A02AF499FB01EB4B6FBEF9E6575E7965C89021DF7EFB2DB9641BDD48286A9CBC |
571CB8C78D20D9A60FD27DDD9E8A6D25FDAB2591304533699CBAF9820B2E90F7 |
AC07D2F553C2451B943A076053F2A4DF7FFF7DBB2929473C9CF5AC43751ACACB |
7F2BEDD8345ABD9484A33CFB534E39E5CB2FBF345EB172B916455F8A4559941C |
40E79D779EDEC57DE099CF76E8888CD647E4310C6D657D8BE92711646E656AA1 |
80FBC58E1C3B76EC37DF7C136BCD69B24B737B770836905E9F9D3B77EEB265CB |
74837EAFADD200C24A1D043729781E1530519C5867161ACAAE68348405662DD2 |
000026C0D3795E18897D0BCD210E996EA3EB8B9B49B7731F24A2057D99065C9F |
B5C780773B7FFEFC75EBD6C9E83124D01E30C1864A8BE5AEFBCA13656C9D29B4 |
22782D65E4E3C2850B1F7FFC71E9B9FDFBF73778D851CD70EE30239CA0A9F417 |
D7A3F427C8D5794DB742D1F620F3A7FB9F78E289071F7CD065A09D970C1D9D68 |
D867490C7164C0AC603FE1CAB3D3162D5AB466CD1ADB9131178019E74463E7E9 |
EB3AAB516B1AA568411F33533C4A52827E4A1C19944DEA0FF3D173C08757BA20 |
1059D50FD4C2A6ACAADBF5BC0275173ADB4C0FBC0502966A6CA4478C0D18EF1D |
9D48EB8B4E4F74D4A851870E1D8A54AF6C80D4DF8CE3ED20F1B6631D41AF44A7 |
EDF4EB82019E488091F67E0B8EDE45175D247B4E2ADC2462C0745269B3C648B8 |
278165A25E9FC839C724054A4B0CB5C80BE9CCC28073C01C30D9179B366D32F8 |
C8693C4B049CBCA54B97EA7DA475607EB036C2E535D144443CE241F2F2F6EB99 |
2323AAD8850D45C0315CE6890063AC6570E7C894634D8E343241B7DC72CB1B6F |
BC61FE9422906E531066F2397BEA92953A24F2F974DBB061C3E42A698A366EDC |
48FA96650354AC4799A0D5C5FEB7DF7EFB8A152B6232BF08A5E22953B13484D4 |
98100C05C4A5B5A3F19929672B8B46B4B05B4FDB072557C7B7231C7B3369250B |
EAA494F7340DFE98671F33673E3ADBE1694E6EBBED36A98A2253D3718CAD1E08 |
4A3BF889BBA37FEFB8E38EF5EBD793566F063D21A0D97ED84C4E68F95B28A771 |
10CFAF5CE4DEA55D9F8F67008369CA4ECFDF86403BCF4B0A69113205CE91A76C |
05C64699804EA9307193732EE296368088D9F4E54664A8345BE875E7C89ACFFB |
4A7B5BF23185D217A76F23F9A2A37345E016EEBC6282D38A87DC794FB7FEE258 |
36907CB143243177EEDC19E9E22168D35A3418645075A60CAEC47B060862382B |
E56DB292A5DA2BE540CE2C125460727427B5AD9A2299AADEF3910ACAFB275A1E |
0088527F8868911BC7B139C78D1B77B8BCE20124809732CDB8FE7BF6D9674BEB |
5060CADCB673C195035404186271D4FFFF42DDA28A6CB3FA4D234A5F53A7B995 |
18E4ACB962CAF2A1C290D5CACC6292BD205207E5BE6186FDA61CC967E3B53399 |
81F17A29070B757C2878A1A25D52970C3D7BC3B5218E70A4AC778841FA50631E |
15B9F95E3B13CFA5AC8FB9B39509737A427F2A8FD9EB1E13A0BCEFFF015AB03D |
44233550ED0000000049454E44AE426082} |
Transparent = True |
end |
object Label1: TLabel |
Left = 104 |
Top = 83 |
Width = 195 |
Height = 18 |
Caption = 'Das Spiel wird geladen...' |
Font.Charset = ANSI_CHARSET |
Font.Color = clAqua |
Font.Height = -16 |
Font.Name = 'Arial Rounded MT Bold' |
Font.Style = [] |
ParentFont = False |
end |
object Label2: TLabel |
Left = 56 |
Top = 21 |
Width = 313 |
Height = 64 |
Caption = 'SpaceMission' |
Font.Charset = ANSI_CHARSET |
Font.Color = clLime |
Font.Height = -48 |
Font.Name = 'Arial Unicode MS' |
Font.Style = [fsBold] |
ParentFont = False |
end |
end |
/GamSplash.pas |
---|
0,0 → 1,24 |
unit GamSplash; |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
jpeg, ExtCtrls, StdCtrls, Vcl.Imaging.pngimage; |
type |
TSplashForm = class(TForm) |
SplashImage: TImage; |
Label1: TLabel; |
Label2: TLabel; |
end; |
var |
SplashForm: TSplashForm; |
implementation |
{$R *.DFM} |
end. |
/LevEdit.dproj |
---|
0,0 → 1,1104 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{c3719792-d463-4c67-a238-ac2b31b77218}</ProjectGuid> |
<MainSource>LevEdit.dpr</MainSource> |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
<DCC_DependencyCheckOutputName>LevEdit.exe</DCC_DependencyCheckOutputName> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>20.1</ProjectVersion> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Release</Config> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Application</AppType> |
<ProjectName Condition="'$(ProjectName)'==''">LevEdit</ProjectName> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''"> |
<Cfg_1_Win32>true</Cfg_1_Win32> |
<CfgParent>Cfg_1</CfgParent> |
<Cfg_1>true</Cfg_1> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''"> |
<Cfg_1_Win64>true</Cfg_1_Win64> |
<CfgParent>Cfg_1</CfgParent> |
<Cfg_1>true</Cfg_1> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''"> |
<Cfg_2_Win64>true</Cfg_2_Win64> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<SanitizedProjectName>LevEdit</SanitizedProjectName> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1031</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0</VerInfo_Keys> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<DCC_OutputDRCFile>true</DCC_OutputDRCFile> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> |
<Icon_MainIcon>LevEdit_Icon.ico</Icon_MainIcon> |
<UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44> |
<UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150> |
<AppDPIAwarenessMode>none</AppDPIAwarenessMode> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> |
<Icon_MainIcon>LevEdit_Icon.ico</Icon_MainIcon> |
<UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44> |
<UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150> |
<DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<Version>7.0</Version> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_WriteableConstants>True</DCC_WriteableConstants> |
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_UnitSearchPath>VCL_DELPHIX_D6;VCL_MARKDOWN;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> |
<DCC_ResourcePath>VCL_DELPHIX_D6;$(DCC_ResourcePath)</DCC_ResourcePath> |
<DCC_ObjPath>VCL_DELPHIX_D6;$(DCC_ObjPath)</DCC_ObjPath> |
<DCC_IncludePath>VCL_DELPHIX_D6;$(DCC_IncludePath)</DCC_IncludePath> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''"> |
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> |
<VerInfo_MinorVer>2</VerInfo_MinorVer> |
<VerInfo_Keys>CompanyName=ViaThinkSoft;FileDescription=SpaceMission LevelEditor;FileVersion=1.2.2.0;InternalName=SpaceMission LevEdit;LegalCopyright=(C) 2001-2024 Daniel Marschall, ViaThinkSoft;LegalTrademarks=;OriginalFilename=LevEdit.exe;ProductName=SpaceMission;ProductVersion=1.2.2;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Release>2</VerInfo_Release> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1_Win64)'!=''"> |
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<Version>7.0</Version> |
<DCC_WriteableConstants>True</DCC_WriteableConstants> |
<DCC_UnitSearchPath>VCL_DELPHIX_D6;VCL_MARKDOWN;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> |
<DCC_ResourcePath>VCL_DELPHIX_D6;$(DCC_ResourcePath)</DCC_ResourcePath> |
<DCC_ObjPath>VCL_DELPHIX_D6;$(DCC_ObjPath)</DCC_ObjPath> |
<DCC_IncludePath>VCL_DELPHIX_D6;$(DCC_IncludePath)</DCC_IncludePath> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''"> |
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> |
</PropertyGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>VCLApplication</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Parameters> |
<Parameters Name="UseLauncher">False</Parameters> |
<Parameters Name="LoadAllSymbols">True</Parameters> |
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
</Parameters> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">1</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1031</VersionInfo> |
<VersionInfo Name="CodePage">1252</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName">ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="FileDescription">Der Leveleditor zu SpaceMission...</VersionInfoKeys> |
<VersionInfoKeys Name="FileVersion">1.1.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName">SpaceMisson 1.1 - Leveleditor</VersionInfoKeys> |
<VersionInfoKeys Name="LegalCopyright">© Copyright 2001 - 2006 ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="LegalTrademarks">Keine</VersionInfoKeys> |
<VersionInfoKeys Name="OriginalFilename">LevEdit.exe</VersionInfoKeys> |
<VersionInfoKeys Name="ProductName">SpaceMission 1.1</VersionInfoKeys> |
<VersionInfoKeys Name="ProductVersion">1.1.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Webseite">www.viathinksoft.de</VersionInfoKeys> |
<VersionInfoKeys Name="Projektleiter">Daniel Marschall - www.daniel-marschall.de</VersionInfoKeys> |
</VersionInfoKeys> |
<Source> |
<Source Name="MainSource">LevEdit.dpr</Source> |
</Source> |
<Excluded_Packages> |
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Beispiele für gekapselte Komponenten für Automatisierungsserver</Excluded_Packages> |
<Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server</Excluded_Packages> |
</Excluded_Packages> |
<Language> |
<Language Name="ProjectLang">$00000407</Language> |
<Language Name="ActiveLang">ENU</Language> |
</Language> |
<Resource_DLL_Projects> |
<Resource_DLL_Projects Name="Item0">Englisch (Vereinigte Staaten)*$00000409*ENU*ENU</Resource_DLL_Projects> |
</Resource_DLL_Projects> |
<RDP_Source_Files> |
<RDP_Source_Files Name="Item0">LevMain.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item1">LevSplash.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item2">LevSpeicherung.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item3">ComInfo.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item4">LevOptions.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item5">ComHilfe.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item6">LevEdit.drc</RDP_Source_Files> |
</RDP_Source_Files> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
<Deployment Version="4"> |
<DeployFile LocalName="LevEdit.exe" Configuration="Debug" Class="ProjectOutput"> |
<Platform Name="Win32"> |
<RemoteName>LevEdit.exe</RemoteName> |
<Overwrite>true</Overwrite> |
</Platform> |
</DeployFile> |
<DeployClass Name="AdditionalDebugSymbols"> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidClasses"> |
<Platform Name="Android"> |
<RemoteDir>classes</RemoteDir> |
<Operation>64</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>classes</RemoteDir> |
<Operation>64</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidFileProvider"> |
<Platform Name="Android"> |
<RemoteDir>res\xml</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\xml</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidGDBServer"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeArmeabiFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\armeabi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeArmeabiv7aFile"> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeMipsFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\mips</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\mips</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidServiceOutput"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\arm64-v8a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidServiceOutput_Android32"> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashImageDef"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashImageDefV21"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStyles"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStylesV21"> |
<Platform Name="Android"> |
<RemoteDir>res\values-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStylesV31"> |
<Platform Name="Android"> |
<RemoteDir>res\values-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v26</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v26</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIconBackground"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIconForeground"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIconMonochrome"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIconV33"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v33</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v33</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_Colors"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_ColorsDark"> |
<Platform Name="Android"> |
<RemoteDir>res\values-night-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values-night-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_DefaultAppIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon144"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon192"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xxxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon36"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-ldpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-ldpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon48"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon72"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon96"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon24"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon36"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon48"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon72"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon96"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xxxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage426"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-small</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-small</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage470"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-normal</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-normal</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage640"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-large</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-large</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage960"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xlarge</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xlarge</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_Strings"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedNotificationIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v24</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v24</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedSplash"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedSplashDark"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedSplashV31"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedSplashV31Dark"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DebugSymbols"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DependencyFramework"> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DependencyModule"> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.dll;.bpl</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="DependencyPackage"> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.bpl</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="File"> |
<Platform Name="Android"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Android64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectAndroidManifest"> |
<Platform Name="Android"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXDebug"/> |
<DeployClass Name="ProjectOSXEntitlements"/> |
<DeployClass Name="ProjectOSXInfoPList"/> |
<DeployClass Name="ProjectOSXResource"> |
<Platform Name="OSX32"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX64"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSXARM64"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="ProjectOutput"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\arm64-v8a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Linux64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOutput_Android32"> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectUWPManifest"> |
<Platform Name="Win32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win64x"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceDebug"> |
<Platform Name="iOSDevice32"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSEntitlements"/> |
<DeployClass Name="ProjectiOSInfoPList"/> |
<DeployClass Name="ProjectiOSLaunchScreen"/> |
<DeployClass Name="ProjectiOSResource"> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="UWP_DelphiLogo150"> |
<Platform Name="Win32"> |
<RemoteDir>Assets</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win64"> |
<RemoteDir>Assets</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="UWP_DelphiLogo44"> |
<Platform Name="Win32"> |
<RemoteDir>Assets</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win64"> |
<RemoteDir>Assets</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iOS_AppStore1024"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_AppIcon152"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_AppIcon167"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch2x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_LaunchDark2x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Notification40"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Setting58"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_SpotLight80"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_AppIcon120"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_AppIcon180"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch2x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch3x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_LaunchDark2x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_LaunchDark3x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Notification40"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Notification60"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Setting58"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Setting87"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Spotlight120"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Spotlight80"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="iOSSimARM64" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win64x" Name="$(PROJECTNAME)"/> |
</Deployment> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="LevMain.pas"> |
<Form>MainForm</Form> |
</DCCReference> |
<DCCReference Include="LevSplash.pas"> |
<Form>SplashForm</Form> |
</DCCReference> |
<DCCReference Include="LevSpeicherung.pas"> |
<Form>SpeicherungForm</Form> |
</DCCReference> |
<DCCReference Include="ComInfo.pas"> |
<Form>InfoForm</Form> |
</DCCReference> |
<DCCReference Include="LevOptions.pas"> |
<Form>LevelForm</Form> |
</DCCReference> |
<DCCReference Include="ComLevelReader.pas"/> |
<DCCReference Include="Global.pas"/> |
<DCCReference Include="ComHilfe.pas"> |
<Form>HilfeForm</Form> |
<FormType>dfm</FormType> |
</DCCReference> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/> |
</Project> |
/LevEdit.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/LevSplash.dfm |
---|
4,8 → 4,8 |
BorderIcons = [] |
BorderStyle = bsNone |
Caption = 'Bitte warten...' |
ClientHeight = 388 |
ClientWidth = 533 |
ClientHeight = 373 |
ClientWidth = 515 |
Color = clBlack |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
12,17 → 12,7625 |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
OldCreateOrder = False |
Position = poDesktopCenter |
OnCreate = FormCreate |
PixelsPerInch = 96 |
Position = poScreenCenter |
TextHeight = 13 |
object SplashImage: TImage |
Left = 8 |
Top = 8 |
Left = 0 |
Top = 0 |
Width = 515 |
Height = 373 |
AutoSize = True |
Picture.Data = { |
0954506E67496D61676589504E470D0A1A0A0000000D49484452000002030000 |
01750802000000FA2A7E410000000970485973000004BB000004BB016E1F0EAE |
0000000467414D410000B18E7CFB51930000FFFF4944415478DAACBD09BC1C65 |
95367EAABAAAABF7BEB7EF9E3D842501059771FD3B8BCBA8333AA38E280E2202 |
82826C02814058022191254008B223A08220A39F333AE8B88C8EE8F867107101 |
04C2928424775F7BEFAEEEAAFA9EBE0F7D2CEE4DEE2738FDD3D0B7FAAD7739EF |
79CF7ECE6B1886212FFF0441C02FA954AA542A45A351DFF7F170D5AA55CF3EFB |
6C5757D7CCCC4C7F7FFFF8F8B8EBBA78DD34CD60F6C3EFDAA165599148043DD8 |
B6DDD3D333343474E8A1873EF5D453F829DC122FB27FB6AFD7EB788857D0A0D1 |
68A00D2650AD56F1B0B3B3339FCFA371269329140A68DF6C36D12C168BA1017A |
E8E8E8C0DCF024994C562A15CFF3B8043EE7CC39167A8BCD7EF064DBB66D175D |
741146C42BB55A0D0FD7AF5F7FC30D3760089DA12E902F62218F3DF618FAC758 |
E8906BC1ACA6A7A7B93AB6C777AC08FFA2653A9D2E168B0A55B459B264C99E3D |
7BB00AFC8AE7E8842DF99DAFEB5EF0213E5832FB673FE81FF3C1CCBBBBBBB123 |
80D5DFFFFDDFFFEC673FC3D6E009FA674B4C126DD0091ADC7EFBEDC71D775C36 |
9BC5EB37DE78E329A79C82E70411B6696A6A0A73C017F496CBE5F0A7CE0D9D00 |
4AF8170DE2F138608EA1B1473A3D4C8CBF2AACF831421FB4C79CB94CAC3D9148 |
9C77DE79975F7E39F69DDB8A7ED000CD3004FAC18E707A6880113101FCA4F099 |
FFC1736CF4E4E4A42E8AAB466FE80A3D1355F01048522E97F545DD297D82B1D0 |
12000FFF0A24E42EE3C381FAFAFA46474715562B56ACD8B56B17BE1044C4528C |
F5C10F7EF0473FFA1156818DE043C771F0A74283F3997F1E755D9C0311587744 |
CF1A61AB33C7776C315A02A461DCC3886CC6368B172F1E1C1CC4EBBA767EC7F4 |
082534DBBA75EBF9E79F8F11B93B6800ECD21EF0040BC14CD033C80200423C01 |
B40176B6E41A8190131313D87142000F095BFCA40F89DB3CD77A88B858FE0994 |
FBC8473EF2C0030F601442ACB7B7975D0163D1833FFB41334E8020E2409C0F77 |
EAB0C30E7BE6996788B1C43742896DF01DAFE3217673F7EEDD18176B242A7239 |
A44E5826668EB7D0092189D7F1135A1E7FFCF1BFF8C52F9E7FFE790C8177D127 |
09C5FEF0165DA10DFE45E71C88E0E5F2F12ECF3BBAC25E5C77DD75F8BECF7E88 |
541C85070A2FA2434563CE017FE23BB789AB30E6631E07C629C20A89C4A4F8F8 |
971B06D08F8D8D1164244FE13DD30EB10CB4C73C3EF4A10FDD79E79D3836EF7B |
DFFB7EF0831F809AA331E9859209D2381C1EFC4B62C1DD65CFC0216C1E511047 |
115060E758037AC373B4212831731E338C8B6EB1046027DEC5AF8011CFEAC0C0 |
00DE226564637C416F981280B87CF9F2175F7C91209BC309385BFC4B228EF6A4 |
E36122AE6D785C312EFEC44F071E78201EEED8B10343006940A18E39E6986F7F |
FBDBD8AA399C80679E678C98AA4C05BD01C50179C01F4F48AF89C1447D3C7CDD |
EB5E0714C77256AE5C09D4C492D11E10036CD1214E4E983110E1F0840C069351 |
020738E05F34E3FC490230134C0CDB71D249278183BEF7BDEF7DF0C107959787 |
49FF1CC182BB4CE285B961A7B01C7C476F6F7BDBDB1E7EF8612588982D1B808C |
E20BD685EF001A0F981E8FFD514CA2019016AFA3FFFBEFBF1F709E33BDA54B97 |
822451BCE034D01BBE285A921E11FE9C15F18158AD670C5FD6AC59F3777FF777 |
DFF9CE7740FD716400227085B56BD7DE76DB6DD814BC454A819F80754F3FFD34 |
90101D02DA980370003F81306114B22E4C9ED8B84F4E8077092525D39C64987B |
6197714030DC73CF3D77EAA9A75E7FFDF56F7CE31B21B5E8C9D2A561624A4D30 |
07E221E1C0556BB7A441847C98872D5BB60CD3566E0AAC00B7BBF7DE7BD192B0 |
C58BC01F9E65EC9D028DF3241DC764889F60A8679E79E6C5175FCC51C28B0AE3 |
8F3EC7EBE8937B8781F01645133C21326392447215A17872219262742C1F6787 |
B48E8B22E7461B1E28C010B322C52486A319491F7AC6CC791C301FCC1FE36269 |
2035687FCE39E75C7AE9A5389B6849CAA93C35CCADE7EFAF724A4C03E8F18E77 |
BCE3273FF909C40E0CC16592ABF1BC2C203128CFD3A189C09824A64D91489FAB |
50BE0F4E103E3394CD29A743C40001C513808020C34F1852E97578C348CE4838 |
7898B10C504330498A5A64DD121218B961688FE7E896B848FC03E8F913350000 |
5D052E0ECDC5903D60FB89A97C573758DAD23A9FA325C7529104F80424807C7A |
E2892762CB81E573B416ED81A7050BC78B040E1EEAD1DA2727E0886436A429D0 |
B1705CD120AC07E8774A103CF9041499D9DFFCCDDF40E4E791A0CAC59F00310C |
0138EB7A417A868787A9AC60E3C8EDB04CA21A27CC9EC94238163486B3CF3E1B |
DDB2B112418A021212A5C95AB01C6E9F6A033A6DC58A39479A3A9C1E302E1CF3 |
4757243A6C09D2F0AE77BDEBBBDFFD2E87C35E8360E17491A02C701278CE495B |
F554E064023EF815A0C013C53A6CA24AD961F88767AE5B8F1749E61433F55CA8 |
AEA08A88F236EE08F68EF8F6D6B7BEF557BFFA9512A039E2FC02EBA210805700 |
28526DE564AA1CF0432114C0C45B541CC99038130010DF5531A284A478C8F928 |
F5C17248C7EBB31F6211B666E7CE9D9FFBDCE7C0F0B81D175E7821F44BC001BF |
A2438002EFE23471379510530B64574AA055100EEB5BBA41DC1DB228BC8E6638 |
9B18480F386514920BB2072E84FBA2947DD1A245E001E807CF6939A03640798E |
1B817F2988E02DBE8B290138E8013FA125A04AB583B88D5F79D6C27C0ECB6763 |
1E4C9E0B15C0F7B7BF2A27B1074ABDCA7A95A6870D03FBC313EE9A3BFBC11780 |
94E414107BC31BDEF09BDFFC0688411CD6E3B65F4EA08A921E6F60215AE2FD2D |
5BB69C7BEEB96CC99D53D084F198E492E84E0A422E4DA263B63FA405841A3640 |
993C255C5A36283850542789E702C8068E3AEAA8FBEEBB8F622CDF225A508622 |
EEAA984F4313CF03814B7A77DA69A7018FF93A9A4166874A88C69C3657C789C9 |
AC7588E26A5850C2874A19413ADF3A04FC23D1C41061394EA1A7D0507E13D609 |
F085E41EA3FFE55FFEE50F7FF84325D35826E643FA4B8188A225E826A921190F |
8FB7AA11980CF6859091B6DCA7F640341B191909D33B7ED4CEA07C42F9105935 |
899D2E212C588419A40293980AE050A653C8108C981E280EFE3CE8A083204310 |
A9A8A0EC4FCB264791B666837F713EB904B2049C5852521E27C596F0AE29330E |
7FC1EB7857ED1BF84E2306351BF257FCF99AD7BCE6D7BFFEB5B485564C18B21E |
6810608BBD035939F2C8231F7AE821A80E383EE801F0C41C680AC3C416D00988 |
66619D403FA4929CC9FC7775D7544AA04E404B11D645EE15D67E14261B376EBC |
E0820B489ED03F760A10A0DC060403B6A0254833640E7EA1E513679656232A22 |
1489301CE91A3711CBE77004294546BC48DC50794BF91CD9301AE87288CC611B |
143EFCCE9345E11D0351E3E101A784C40E29AAAA4D090F69E409A32B96BC6EDD |
BA8B2EBA886C181F2295B415C4E4EC07320A968F3F81CFB46A704A1435303419 |
C6FE28F8D1471FFDAD6F7D0B13C61E0137F890CC8CD0C04FA4C3181AFF12C9E7 |
7FC0F074FEF87EF8E187031B0125122E6C04E0433D8688246D81DEA0599020C3 |
D66260D20B6046D84AC5CD232C28C7E93901A0B1311800239133D3B8B1BF35EF |
EFA3D450E54A9935F029E525E9A1F042018D74471185425F98EE68CF7A6054CF |
529B38570138F0750C47B98FAC8B3C13DB03D0D35A475EC2C65835DAA001A9BC |
D2B8F99C4027031512A4FCFBDFFF3E700ED48D5B129649C3566015045430C717 |
EC14A081F3008CE131D013CEA1B18FD83E72566EB69ABC6FB9E596534E390518 |
46E309CD6894D07954F02FDEBAECB2CB366CD8A02A140F30F101F30793A00444 |
5180679E82ED3E655B95EFB8A1E4F494B0A8117374AE022BA2C4407AA7EC1CF3 |
4433E027CFF3023211E6061029CC21B87CF39BDF042DC679BEE69A6B48AF4F3A |
E9249C90C71E7B4C95DAF0AE2915D01DC42BE816EB8588C06E7926F99C4A003F |
58055E5736A9544937827E1DE2F31C1B882CA813CC51F68957FA902F526200D0 |
3037F0A4279F7C52E51E502B1A9A89AB2452EADE503C24A6A9FC81E76803D219 |
6651EC533D55EA0653919C4A094F10BD3B2A7D135155B22402A31976075C47DA |
A62A328CF99CE0F4D34F872282E79C36AD5ED44D95A92B0F80EE0222C8D7D5B9 |
0899EFFCF3CF0722A9F95E42FC5E669569AC051DF2F8AB5DE575AF7B1DC426BC |
42EE428240FABE75EBD6F5EBD753F3C3736C2E66459EC473CDB52C4015B13A9C |
4AB013C0109DEFDDBB57E9158F03B94298DAEC0F4F0025F02A2C01F3E469C5BB |
F88EDE4E38E184AF7FFDEB801259F521871CB27DFB76FA6C5A671263ABE30B7F |
8293ECD8B14366D573CC00C35364A078A89C196F6198175E78819BC78D516BF5 |
025CEB95720269B35685C2EAD5AB9F79E619695B2AB012CC0AE72A6C109CCF09 |
14E7E64C4CC9A83DFBA1E54465616A12442F40507D80BAEAB084CB79EED33A04 |
9287774932484039131A8E75EDCAA5D5424D3AA2BC010DB8BBD2B6FFA8B74DB5 |
C8B02F94BFAAA5E2F6DB6F877443370325711E06FADF788C57AE5C09491C2F62 |
81C4C8B0D0A474108DC94D756EAADCCC315EABF54F66C5283D5ABA3ABEAB9E5E |
B6848485C68A991FF8C0077EF4A31FF170F20CEF0F8BD039E56BAC880C1E10A0 |
71E0EAD90FE68CCE0143AA7D73AC43737CB3EC16BFD2E8846E290F624369C3C5 |
1098219D19F889DB8AC61C1A2F6274104ABCA23637FE24B3D23AFEE5131A64F6 |
A7EB287556C2416CA1FE37C73AA4744D719B543B6C16E7F139EEB8E3FEE77FFE |
E7E9A79FA6B41B96C4C9096856C2A248A778881830C2F34824E1795163322806 |
404109923D70686A092AB9530027BA52ADA4C2A726C7F9D6212C04A2034D58C4 |
1374A586787586D398C9C3CB3DD5F0133DFE615BB132544509BA48293071F26A |
96A422AB24857026559C6F46262F54A962CE4E85A9107D726C89B700581C310C |
44F8A8B18BD478613F9982426D954436EE3B250309D9F05F326630EA063F9330 |
AD5AB5EAA9A79EE2C909C34BF939BE63721C80363534C04F7805F3A6556701FD |
FD957202DA882824860510F2037C07700129F5C5E936CFE104DC4E7509A0439E |
6D501915F9C30229361E4FA8872A6439347829DE020480CAB4A248DBF7A206DC |
F97E0269DB49814F071C7000E40B5052503A7D5DAD4312B2AEA84B879059B66C |
D9AE5DBBA8D0C9AC3C422B99B4637BE8BDA04446C90BF3C4A2F090E8ABCAB532 |
332019A10ABE427E409B26DB2832A92514432F59B2E4E31FFFF895575E49A555 |
2DA7CAC6E658395427E02E9080A213AC852109A4111C941A864E00ABD8B66D1B |
64465A1E6846D89F9C81AD446F73027E3873808E123DA566F48685031908F330 |
BE110FC39E83F047C51D4539527FD5A4156294B6A8B9629934F133B04D0DB8A4 |
65739067FE673E5994767C81A882DF6E401D97C61FAC9D7A2D6D14F897C48B54 |
4CA74ACC991395C4810E3AE820B00A5D2F8DF5738297A8A9D39F47030EC90D26 |
F0E637BFF957BFFA954A601A1B86A18F39E6989B6FBE995C16DD0220444EDA84 |
F7893F1865CD9A3550A6C933D4A31B769E93D5D1B32AED701A0C87E553520E63 |
32E40F5A63742DA06378F7BFFEEBBF783418938257F0E7F2E5CBD1C3A9A79EBA |
79F36634A34F586DADD8596ABA1AFD41273FB67B4E34DDFE283895187488D38A |
C34868A8C848F703158E053CCF24CBDC65CA0A34D1E35D9E7775DCAA4CD0022E |
E453323D200404250025ACAA1310CAFA68A9E431C0171E89152B566063C2B3A1 |
70F7BF651DA2564B54C3BFDCBFB56BD76ED8B041B1194BC0D6AA2CB04F4E10F6 |
0B291E93C252E8660C2B1E62459FFCE427F1F0AEBBEEDAB3670F40445F05F95F |
F80CA8F005D0D11827FB8922D55826251F1AF3A33A41D8E91A264F61AB85CA26 |
EAD550F99A561A2E21ACEDAA3D545572D21D7A4D20DB628BD5928E7952BD63D0 |
ADF6C33EE7780E48D4F85DBD1A0A99605E20AC848C783854EF7FFFFBEFBDF75E |
B4574D6B8E990B2BC5771E5AAE97409B1F5B12DE6BF2091A15F1E49E7BEEF9D4 |
A73E4509400342A4CD11C3CE79E504EAA7E159A0C9853494FD84A3696901C727 |
AC742A33A342C3B1D42683F95F73CD351B376E5457ADE2E102275C2DF8AA83CE |
4195397E26BA1F748DCAC0F8D16851EA7073BCD6BA6BFA9606F56A20294D1074 |
BDA89B477559B4017A00B54E38E1846F7CE31B009A46FD61AA0008B08B7C0802 |
01B48A700481C61104F3A248C16EC1306834A618A45C5F51825874C515578044 |
704768BBA615945E0DAE114BA09156A5076E2235091E10D595A9C16032D853F0 |
8070708784E424EEF81CDB8346972E6CD5D1F010B57F48C8B4A8BA7EF8DCCDF9 |
F00C127A00B22AA9340FD2A687876192485B880151EBAAABAED28EB05B679F7D |
36381E04A8E79E7B8E411D8CC0C1D8CA120041AC4AF9366084B1B1431AB41E16 |
CFFF4C4E402323F5FDB0D90133BFE38E3B3022F91BC837E6093D668EEF5A42B1 |
1F61C204960EDAAD4181C0516A0C18823294AA631ADD817FDFF296B73CFAE8A3 |
D75F7FFDE9A79F4ECCD0E34DAB289A71866A97A4DAC42DC177004DC3B129A4A8 |
3D81984AFC53AA8D7ED03E6C28449F1ABD4393345D0214B5A46D7D92B63EC84E |
48161966CE758503BDC2279F448443681433E91A46E4CE129F002B0001CC326C |
22E32B4A88F99027814FAEBEFA6A3A21E948BFECB2CBCE3BEF3C028DE11F0C75 |
55873C0499A38E3A0A3C03AF533298233086A986E237F608E2022740E2AB944E |
7D4E6132AAFED2818101DAC488F9848FBAD0341D045F48DC29A9B071D8A7C58C |
0D7A5FB8950A1C1D51631F54329076D43FD9834A3FD42A28EEF050A87D4CC3DB |
C902296A7CEC631FFBDEF7BE879680D5D2A54B3FFFF9CF6FDDBA95269DB0E2A5 |
B1E74AF4C3B100611F2CD921BFAB4750E6C5BCEDCF12400AA5364C5267D213BC |
4219140FE9B6A1A1292CD390678028A119E9A3068C92E1A967957C050DCE3CF3 |
CCDB6EBB0DCB01BB05FE53D8553197890500C81C031A35D470CA05CF11A57E0D |
BB22A81790F4B95E4CFBC8238FFCD77FFD57FC497FD8FEAC436A1442B774C5AB |
456B9FEDB98FB4AC42D0F9977FF9174AFDDC44E55E61F11708096DE6861B6E60 |
581169949A075AC3D06BA76E00705D7A9FD5C6A7FC8D2D95D6A0EB9B6EBAE98C |
33CEA014A9E44F9D54FF2B9C8084490DE898037815944A68FAC40F2C1B8D39AE |
0656EECF634CE860B1AB57AF1E1919A1D84BF54D8D0678171A315AEEDCB913BF |
2A55C2AFB4D091AE910A2BE5C2BFC40F1A8548CDF5D4E115025DD33DE8FF94B6 |
C9E8A31FFD28B693867BC8CB20AF5471D00310FAACB3CED2D41B66C1BCF6B5AF |
C5F9F9E0073F78E28927B25B9A65F116F608871FAB231E87D3EBE861631A9DA2 |
2CD90F26C9FC0CEEF5AA55ABE8049AA35EA876C89DC204FEF33FFF136CF89967 |
9E9993F477E8A1870280B41662816F7AD39B7EFBDBDFE257BA37D44A80E30DFE |
AD245E774163CFD046A3BF487198D1A6CA87BAD383D9A06C100260265EA462AA |
BB8F49429423F9C3704466F5618445C270FE145569B461203639D9C5175FCCBC |
10CC0A8DE991A3D0A73482832A3551168E06B7DE7AEB71C71DC79F56AE5C094C |
A6394E234D756BD4898221D012741073662C23E9F29C6402601D70039BAB640E |
9491BB83434DDA8439D081216DD5767EE85158A465D4104F227AC304683FFCDF |
E204C0D5356BD660868003E7A3AADB9BDFFC663CA7AC4DCB06C6A58E4E158DA6 |
3FAC178D8148C05E50DE7FFBB77FC32B684FB30F71523D195FFBDAD78E3EFA68 |
42AFBFBF1F9301366262A07B20A9D85C9E6ECE44D92D75682200DEA29509AF90 |
1ECEFF5026C05BA024DBB76F57B56C7F564DE2F99CA00045C27D524B0D8252B3 |
A49AF82464CA030EA8F44917310E1A094B381AD5E0E92205C10600768C93C59F |
38360C10643E024D60127286A83519C887A56EDAB40992320F181057B348FE4C |
4E0092F7F8E38F63F618859E525A9F88AC7848675D1888B21F3F01A91E57A152 |
5E3870281C5DC713CEF83335F22829246D626E1E45549D001E9221D1A0C4734B |
EA40E2AE065385AAFA4BE9B0A1124667B81ADF40F7711218BD4A34851E8AE951 |
E3A3E989EB65749DD24DEC0810059054DF8F92F2F9F93B61BEABC405FF6274C6 |
9BFEEDDFFEED4F7FFA5369273450D79EE3ACA318A2B113A40224A9340BF060D0 |
A38B5DC017B4E47A29BC90472A31A5D18F01F21476C2FC896786560E0656317C |
000DB0763606707854745673082E519A4700B409FFD213ABF17254AE2FBDF4D2 |
4B2EB944CF85B2254DD7A4827FC41147FCFEF7BFD78077EE26B7064FE8BCA565 |
9979C5948B71E29873134E7824CFA6ED1818A2818944360608E9CE6AAE8CC6AE |
E0988063EDD8B183C6194D619550580B236D643FF1A614CF4952DFF9CE773EF5 |
D4530BE4C1FC899C802A94F60CB0335789C79316766A21E1AC497E8006DC68B5 |
E85236E7290EC70BA1A59A7AC823F58CD09C3B67B6A4A4A4D7D47101490A49A0 |
3CD83BBC4EFBD81C3FCDFC0FB7296CB223FE2F0C1FE003E374D575B43F1D0288 |
8D4DFFC31FFE40440A879F802332E4878E7DAA95EA56E149D1D4EB3F72024D30 |
53D70149218DB614E8F49C2BF9E0D9537799AE90D487E8FBBFA5135C71C51510 |
C10820CCE49E7BEEF9C4273E41E4507CA5BA1A8EB3DEA74E206D01597383C91B |
888E6A1D56C6A088CBF6C66C96166D358C9EC69418114156F49EF7BCE717BFF8 |
C505175CB061C306325E0DD8A00187A80F717BD7AE5DE1BC415A90989273EFBD |
F71E73CC31F8F3E0830F7EF6D967C3145991189D28AD544192280B8E82D7C195 |
E90E254C34B88B6B51873FA9677817D09E59A9FC53CDE2F3EDD74C4C63CC89CC |
4AD36472E1E042B0319054AAB1345FE095B02ECFEC714A5BEA60C7779086134E |
38E1C61B6FE441C29F20826A75D1D7C30749457B35A3E1E8423F50BCE749C6AF |
1415E9F4E2461BA15C62A237D158A33E5486C517BAD6D927890B78030B005074 |
00E5D5701A526A99573C80441C9BF5D0430FA97801290F9BFEF0C30F333F566D |
65DC262A07CCCEC5582416AC7142295B662308D4814464E3FC3131DA09C3052A |
78DC780428C052365746ABBB4F1908DD82FA60ED6AD47E759C200C4F752CB187 |
70DC47D83CCB66E0D0C016061A314286984C898A749CAFD368A1FA99DA51F11C |
2FBEF5AD6FFDD9CF7E46EB1C8F033754655C4D7757231836FA5DEF7AD7D34F3F |
CD8A3B980375B805647665A2CC96A034B3B03509D3C391A126BDB0F549AD7CCC |
53416365729C39261CAEB962CC26FA013915AA4AE85E9A4098E290DCA88A3187 |
0A845566CA2F5A2846CD02612B1B3192C841A344B8A007252C1D856D888EB441 |
2B19529314D90FD64C659CCE2EA39D9B170EDE92B6B158753A8C8B4149B6346F |
995C94A9255AFC20EC7333F6551F89DBF099CF7CE6E69B6F56FFA71E6609A5F2 |
127DD103C005CD1773608004FBA7399870C3BB201FC072124D8DF62324F113DE |
A2AEA01BC1883A2AD11C5A836B0F38E00008058027D90350043A2FA82ACB1085 |
C97A9813686C06DE2281534C007020AB0E0E0EE2C9673FFBD9AF7FFDEB980FA5 |
481C4E5A63C2F1451A8BC5851038383F982DCDA0546E98484894603417B9DD1C |
E71B2838FE5CB76EDDB66DDB8036147ED5972E2FF70349DBE2C165B22B86B260 |
2D60D2102C1844A4E98D0C3754F5E8F0C30F870E2A21791CA0C671021212ED31 |
10738BE85D0FC756A9BA76C30D377CF9CB5F663F9809964CAE4C3E47C6AF5202 |
16889FE84D25E70893300DBA07904920B85846AA7CEA539FFAF6B7BF8D33128E |
AB0E47045177E18632A42408E53F868B44A1CD61871D063153B579C56ACC4759 |
BEB42D727F0E2750C76CD0CE75A7662F6D15904496CC98248FC49D6962AAE553 |
70C476D08DFCDEF7BEF7C73FFE31FE5473B722A4CC464FCAAC364FA11BA80B15 |
E781071E00E4D542AED2A45A2F31E7709935761EB4AB9C2D40D9C9068C7665B6 |
85AD431A17035E8B731A06DA3EDB9F74D2499018A09C91C6D2324C6D895E2B72 |
7D02211CF8A0A14DE154D6D658241FEA29251B2445A020CC180386900217D129 |
B0DF68A7BD3148430BC230E58AC71B9C8767FEAEBBEE827CC75788D980267ED5 |
58913909FAB7DC72CB69A79D8699003AE4752043D0CE5481A542BD3F4EA095AD |
146B813D5AD74563F65595518AA0A13BD29631C37E48D25FDA82F127CFCC1C1B |
0B28173012844683A96EBFFD76904E8C0B8CC41CE84E00404E3DF554E6A99276 |
68A6FB71C71D8757743EF44DA936007802BCCAFC9554A9A18C6B04CCD574A8D9 |
FFE8FCFEFBEFFFE8473FAAA53834BB5BD18EBC8781CC2CDAA1353FE6CB3E4C9B |
640325FA5A990E5D61698CB20D677E526157FA8281343D82479D3883570E3DF4 |
D0279E7882150B0007025C42D9FCEAF1D60DC29F37DD741300CEA375ECB1C702 |
97D095D67BA0B4AE194012721D318E16FFFEC33FFCC3830F3E4834E629E261D6 |
2835F5BD4B5B27F8ABBFFAAB5FFEF2973C8DD4F1C947094CD5C61497C8A43101 |
06136BD674309BD14A3B09115569B15A54284330A28F522D453CEA2B6A4BD180 |
D170A4A026AF84B343B4F2230685520256C7BA787A4C9478612C2A9A0CBDFDF3 |
394138965FAB8771DAFA9306EFE30988384E160520B5D5007F202E68581DA398 |
C8FB49407860D18039C00C8FC416A01312130D9D521133BC5FD0E0DFF4A6377D |
E31BDFD0787AEA0484D8FE6278A41D184A66C6E92DA0433024474231054A8216 |
6EAFA8ABFE39AC1AF4136B042501CD61A22517A5A9A01AB3FE47EB90B4CDCA12 |
CAE7562B18ED5C5473F0A1B010564595A131569A33D3105D1E5A0DB460F043B8 |
04A3F26AE6E9A83E1B96D1C2E0A0ED9E6C99E6E6F99C40428626EAC8CC55A136 |
A05224D992AE224CF4C3E3CEE7041421292CD0AAA0413B120AF9A2A087451186 |
543E34FA0DF88D7789E2000BABA24262DDB46913378229AC9ACCC2904A15D680 |
FDE804AF9C75D6595FFAD297D424A2C539280CF2C013C53996F29E305419100C |
68609250932FBBECB28B2EBA88F9657A66884346BB842A8D03745A68314E0099 |
29876A13072DFEEA57BF8ACD2241A46380B51BD9217AC0138D32A07352CBAD48 |
283496A056149D7F36A82769603EB7150BE7705A76866792D23D73AD955C12EB |
68E2A7F8ACF52464D698B37DFB76DAD90104BC1E2E81154EF60E8BD28C47D0F0 |
210A6EDC2930AD4F7FFAD3E80ACF7162B5768BDA2DB9AE39A61240126B79E185 |
1754F3A6558A61EF124AC6D443C428A630DCB473EAD94C5C97504E4C5871A477 |
9A4A9E024AA3F85E1D2708D7B3E32E0037B4E81069162B6062B114E13128F442 |
B076BAEE805D58324B526AFA15BBA5579CA7921636EC8846D3E1096928F500B2 |
4C5A20D5FDCB25935BE33BE65098FD68594C365B40C6D7CC0C2ABBEA1D5C208A |
9460E1A6F09505AC431AFB4ED954130548D0E8AAA438A279607842DD3D2C04FC |
91CC5222A3258BDE2DEA14322BF5A80D9ACF0174B4E4C6E8AE6BBF9C073D7BDC |
75DA2EB8DF803BD09DF4541938260722A2D95E684F873879BB395B6F8EDA035E |
819008A99076520A26FBB30E69E548A65931438FAC88966235B2AB5B264CF195 |
31ECD33A64B6EB38324883915B3CF05A1F915E448C4E8A43CECA23A705F27850 |
89C11A2CCF0E553CE74610D43C0C8CE6D2792AABD6480C094559F088028FB1C5 |
94B9C2F1308A526A2CA6F08E3F4937D580A3353259908BFBC258263F545A4ADA |
128D8A66EC478D452A37E0DF638E3906320B8F160D1D9A7FA7D84885403512D5 |
1D29DB4A3BB199DD924930FE5251FCBAEBAEFBC217BE40AE46BF3AF19901E67A |
DECC509910450F8D62E29CD7AE5DBB65CB16260C87C3C0A46D73E769D7BDD3FC |
1D4C0C4F88AEB455AA84443A2E21678F84C47055C7D5AA4945219C304C983329 |
8F08C0D3C730303DA43C719AD640F1C80F7DF004DB4403AF320C129A7030BBDA |
DFFF9C28D23027A040A6653054D8DABC7933A08DD9A267487EC03AB63CE59453 |
20FA70149E6E3D509A1EAB761B8DD839F9E493EFBBEF3E865768A014319F0667 |
8D8C20DDE32455750B4B78B431508839E9A493AEBFFEFA7DAE57ADD35A8A8E14 |
D958B09A08ADFF5A5E93C1C1FB8367D02EC0AC6673068B53475737BBD6EAD7F5 |
4A5BCA97700565991519687F544E1884CAB207A182911C4FDA128AC69E73F62C |
7DCCC07F4E519377488235F1841E794AC1575C7105DEC21AA097B0064078C16A |
4FD4A240E1749205FC04E10F74702D17A3529EC69E52A30F1B85D892A4619F7E |
021636D1AA871AD21731FD9813142A92F52529C650362285A6649C48BE9E96F8 |
8CF8B1DE5CAD346954DD982155F414B196D95273ED92E754C417A72E49533CDF |
F10CB7DE0C2C1393905822E28B5F2C5886340319B0CD21D397BA9DE8E936C621 |
8107271EF3D1FFBCED2BBB4CB1572EF6770E66A35DC55857A3F86CC2EB89644A |
956235969232082988068EBF6B74381D664326FD49E829B144776D720214A689 |
C9C7A5E94A0CF301EE79CEE141E6F1E4744F3D6A38F658B5B8C44F3A99EE1D85 |
B1742A6A35CBE59A6B6662D55A33EDC4E9F809DBE5C88A5481500F10156462A4 |
1EC5F9F91F7FCA678EC6167E480B2F704CCB8E86836DC2BCDF08DDAE212F8F2C |
304297409060D1F64AD68E061FFCE0071F7EF861F40C14D26C89B0B7FC258E12 |
4B5BF562C72107379F1935AC7CB2297B8D9C199D0EEA01A62856B45928753976 |
B10E9C485D70EB1DD79D748A1573CBB54AEB6862CB3CB182A82941241BABBAC5 |
583599127B02A8644A3C906A546235A925B391723EEB2F2BBA533D2B4B432399 |
64D5342215CBB3EAD2A8661A529554B4B354AE9839C3AFD6CC6AB62F97284C0D |
D7121D09AB56C6934632E23419E4AA7AD2DD77DF0DB26BD6BCA634DC25B6541B |
D624B88E31D3085276C62F152A209B5133DE104CB627021CAE57FA53D19152B7 |
DD3DD998AE473D0924E2C53C3F9074F380626E5CF245C976487D265B5859B227 |
BD642131D353E96CC652D3F5B2D80DC3722395BA8363215288193D8D8E697FBA |
D92552320E6CBE66B2F962C92E980DB3DEE7CB684F87E535BC99B2E948AC7ACF |
B93FF8CCA5EF77C04393F189C64CBA2B5D1CAE1956D4C4396CD63CE3E05861BB |
8343E4F478F57120A86BA4D3B144A90AC1B4191812B552D8F9BA0B98FBD9406A |
5913728B5173B2D22C61276D096A76421A95FEA4CC94A58EE9594B92A9F1D24C |
2521DD157322D12D6E336B940A4DD731CCA82F55C35F12C48625525B55965179 |
F8A6FFF9EB933EE126765905A7E99B3D7DC9F1A9092306E049BD2091C0C67A41 |
9E5B701E681D796B14C290143C890631716B5DD2012A5312BF2AA69595467106 |
00803C72FEF9E75F78E1858C395497EDFE387130AF5AB55A65A1D3B7CEAF1AD4 |
82D94B2D2862D0C2A0745CDA85187906DEF9CE77BEE10D6FB8F3CE3BC9B195C3 |
D311077CFACE77BEF3810F7C80821B43A1C142316334C3D84C4D2465A72F345C |
1887AE5D0D0B638E9286F1A2313D13941FF7C909C2466D5A48C06CA05732928F |
D23A992D7969B86E9D92242534FBF313287094596A29E639744AE3A03010341E |
C6B0B3AA256D38321B40A991A061270F87A60849FD80E2A1722FBD9183FDD39A |
8CEF5FFEF2978F3BEE38B578A8CF1648C3902779B92F647F08F4BFFE51E22B6D |
C104DBCAD4CD573187F99C400BF86804E79CDCB1B0F9D59C571F4943E9E8C865 |
50B584CCF4AC8B008C3DE288237EFDEB5FA3DBD7BEF6B5BFFBDDEFA42D1E6986 |
209941335F8F476A13B629AE23DD557342227657AA3E399D92AC99F20B959AE5 |
37B0B10959564B77958DDF0AF8703D1DB702F1CBD5663A3B5BF7D868F6D66383 |
D1D2A29EDED8B833E48EF5C456E76B6E4176A5C58C89ED431517AB0AB923263D |
F19815ED18AE8F6425579EF19BD25CDC6F0F96A6C5950137E57724471BA3DB3E |
BFE9DCBB6E92A961372DDD855CC96964B2715A54683C8420492776CE4C1B0765 |
DC17A63A9B9D652B594B4CF565AD922FF1C1F48C8CE7CDA2D8012414C7332392 |
A94A3938242ADBAB96644CCBF49A53D101A94E487F23392E55CFF0259D8B3467 |
BC6E5F06A5C35F51B0268C66C98E592D21CA08247021EB0804A058225DF18A20 |
7D20BA8DCEA4044D99313BCD62C14E24FA2A95DD09AFBF628CE0D7080427916E |
3337B1B87CF9F11BEEBEE91B4393430D7722BEC4288D06AD71AD72A4D9E345C7 |
8DCEA5CDD1B8C45F306C2F519032DE0CFC5C671A1CCD6D0411CBC19E1B861BB8 |
E98811D4B1232EFE5F15A72A752B660D1C21CB9F6CFEB69936EB8DF285EBCEBC |
E6B26D582FB852DAAF4E75744AB199F120ACE17C3A09B1AB781944C88FAFBF76 |
F3B7AEBB737AF7CC9414834C21559082C4318A13F1C1209B3E78A5196D390FAA |
5D66A63C60FA7B0B3DD23329113F5E8A49B950F7E2E9A566AC562E8E432CB06A |
1231D275FC271D93A9E2A1871EFAECB3CFAA8EB8F04D47F2F232C0ACBF843FE9 |
D03DEFBCF30C22AE56D025E924695EB366CD934F3EA9F6A270B16C5A09D858AB |
BFA9104DC788AA8134E0AA9F9366E5D5AB57EFDDBB976AC46DB7DD76ECB1C786 |
27ADF6074825F8154B459FF8BE71E3469DB0BA7A649EC758EB88D11205360066 |
C0480F4DE3D63810B526A9A0BA4F12A99C201C80A4713E3AE29CC00C99D51834 |
5F49756AEAB37872EEB9E76EDBB68D8C2DDC27C3E3A872517F57EB0DFD3A7ACD |
03357D4658D36EA6A000A305A8D1A716772303632897C68D98A14B725EA96CFE |
2A68B75696F6DB3731295EBDA27EE6B7A701416B14D3B814F60CEB562AAE86DD |
5146FB920C99556B40EB7FF9CB5F32905A0DA1CA5AC2BEDCF5EBD77FF18B5FE4 |
49C38B60B43820E8B9255A25ACA59DB1A1C14AA724269695641C804E67FC9A99 |
B4F3F95A20F6DBFFBFB7FDF3D11F3EE7CC2F9CFCA97FFEEADDF707870D14B60F |
0F24FB1AC5BA6F59536E5E220D8949AFDB3F9619979219338C9AE54AD33C30F5 |
E672ED05D0ED4672B2D6D2F8414263ABEAFD7B2BBBCAF8B34364C6E9902EB1EA |
33CDC90D175DB8E9B2CDE903EC99B1464F4A26861329C9C4FA4AD0456ACD2031 |
60559E7B4978A203F68FF185C988D4BD74538C885188055672D10176FCD9B117 |
242D465CA283D00B3AAC81E1F2B4F4640ECB8FFD01AC45AA4EB29989A7CC097F |
7CEDA9673CF2FFFFD72F7EF37B5926B25BFAABBD19893CDB359598F43BE3CB46 |
1A2F78DDD8369149893725E544673CB761D9625846B5DA93EB2C4C61908EA2B9 |
C78B37023CEECB65B64FE5B232EA9B95A60F91270166919449F48089E49DB4D7 |
510F0A8DA46B3703CFF5932B22EE68F475FE5F3E557BA4D052B21CE99D909217 |
AB98B55E1F627636966C949A600562465A1BDB841C2E3DAE4CA42389B2E7A6A4 |
E148CF38F021339E9BC140D69EF8E2AEC376947E0D9D2C133DB0967FDE87A61E |
11A7691AE2D772401147EA8144DD485E924BB2F5BDE5A4341BDDE2A5C4DF25AF |
E9ECFB75AA24C3E5CE48D6ADD79A62D6B19149C30722CD9219C0399D4D0F8103 |
556CA7D100DC7351ABB2A8093E2E4559E20D344BD022662A69DF28BDA4FE2E5D |
BA14F23743FFFDFD5730D4E724C8200820BF90DD2988934E1ABC1592F638D00B |
72053C7CC73BDEF1C31FFE50DAB5EB689632DB17D728D9D24AB0D2362C6A3952 |
1A64692B00ED03C93BEBACB334C5236CF5D6501635866A346EF8F61246B3A96F |
677FD6A13962B55A7EC3C6A57BEFBDF77BDFFB1E8E3AF51812719A118C500109 |
735FB76CD2DC1CCEC0D2EA9574A53235064FC06CAFBDF65AC2443D0A5BB76E7D |
E491477EF4A31FEDD9B3472F075516A2DC9BB6667268D2263AF6B55998147244 |
8DC5661B2D0ACF15D18877E69967624A50DA1E7EF8619C793057B0494D23F2DB |
F743309E988672AA11ACB103FE440BB8D5BE428EBE38CDF020A15CB812AD8618 |
D152CFB80E2DCBFE27720279B9358F30A4B604A8E20B83DF35754B297E980170 |
DFF527ED13C06730AEB4EDF57CC8486DBC0E38E03BAB36319D0D2B0219FDF8C7 |
3F0E3C276EB474F68823F9F1C4AC2FA3719115ED8C9427CD81B43D6C14560CF7 |
4EDF3216B852582ABDA7BE7E2CF2B4D46BD99D3DF95F8ECBB392F093A64417AF |
5EB2FDB9274077E49296B1A863E680786474B8A39C76D2C77927DF7FFED609BB |
299B9C6439E7948B53B7966E3FEDC79FFDDA916B26DC7C23180241956A2C2325 |
373EE0AE9A8A3E595F276F08DEB86BE363FED255F69E9171701867D2DEB428BA |
7DAAF72703640000886E28165888BB7D13D6E89252EE14A82CA9E7B60C4B2D65 |
C74A8D462A766E29488A3162D8122FDEEE0D340E1BB67FF3BAF8B2DF15C631EE |
6BDEB0F4774F8E25DDBEB2B15B36486A775FE907A391A14C446AEE79E9682A70 |
6B15C9D40E9E7C63636F7DF0E73BBCC18ACD1D114B8C683951C995531989EFEA |
1DEFF878DFCCDDA38E97EAFA6434B624B7C31897CEDC929DE6DE3B5E10CF929A |
6D899993BAB964E5C4DEE79CB494EB0EC695D450F9E4A6D99DEDFFEFFEC9FFD9 |
EE4C48212ECEF1E26533CD44A1FFA9E523FFF122C86BDCB3A3E964BE9C0702B5 |
D4925B25BE1BBCAC658EB1D356A3B6B8EBBEC9C95D2589755AA74D277AC51FB4 |
3B533D7BBE54E9292C1B8F3E6EBB56031C2A11E4BB9BDE07B28D4E438C19C9CE |
5AB82662A95B539DD3B13D4BF75A1F88663B0F998C8E267735CA3F9B963DADFD |
B5CD78DECF4BB489A125692C6F74BD189D904FCBE24876F08E821453B144D137 |
CCCE4F2C99EE9F854BBD5AB9633C3A9973ECA411CFE3ECE000FEF55FFFF5430F |
3D047E0062B2406C1209AC962BA61C130E313024E40C7969EF0B0588EDCC77E5 |
F967D6DF2B951659F486EE97A09D77864308BAC38230CC2A7AF7BBDFFDC4134F |
300E8C33A3B986BE04AAA8E41C1A1BCE1C1999AD1DC4E872A80BB7DC728B84BC |
6DE4490C8F0B57C453283089038C91975DD04F452212CC56FCE05BFC69CED5A0 |
18EE9E7BEE21D0B5FA42F86A21752A86D37AF5215DA64A2BFDD03D0461CAAE8A |
91D6F835DBD7D1842559EA108CDFD592DA7A3F0617C54C6C7C487049B6A86DC8 |
AC78CB7803BA0AC3691CE12AE5122A03CE00470D0CC3D0EC8181C8DC445D4E98 |
6AD3A7A2AE05CE96D178AF542750B22EA1C482700C06F39FFD79F5F8E839D054 |
B2FD71027979A299067186432F7870A07B811FA8BCA22A608BA7C6D3B5F2CC5F |
BCE64D8F3CF9A85CDA1BAF46AA5F1E060112EF20A739BAB4BFF97CAC22EF8654 |
D92FF70FF694D64C5FF7BCF38455F97ED5DE1BEDEAEC1F2D8FFB8D7AAE33979E |
2936FD5E5722E39DBB126BC52CF6946E1EEF5ADD3FF9DE99BE20327E7FD93F01 |
4B5ED47D51A19CC8576BE672BFCB3830D8353C6694CDD71EF8F6C707FF7BD1F1 |
2B677AF3956BA6E25E975B9DEC5E911CF5CB2B8E5AB12BB54BE23139AFA65759 |
85D341B2F1AEE960BCFB8CFE89DA887C53A46558B63B631DC1E76AA5CEA2F525 |
698C8977A5634C44E3DBFC4AA4BCA2D6BF2B3202E5A3B7B97C626F3D9F1C5AFE |
E955F9BE42FC8A48B338DA94C8B453974B6549A967EFB6F1545D4A19F407F525 |
6E058E2FAEEF5662A08A004F7279B1FCA29716E72CA903A16E4A5AC391CCA5F5 |
A972FD24EF1D777CEDBF3B8EEEEF49F73F77EDEF5EDF58F1DB8E89659389D1E4 |
581D4C246FC6A5B7121FE93A7A917188E99D37BD78F91B9E1CFB458BD49D17B1 |
7391F8B9AED1B93C73B2B5E7AB2FC85E711A56B6B373AC308E06A948B2591F58 |
2CC61E998ABEBD226F4A960AA6FC684CCAB2EC0B8B775706E5869689A6B92962 |
E693C6964A7C99592ABA52347B9A96274625B6D8A93929294F3AF9DAD9E5C54E |
EFE0D5439DAB96953F30DEA8F9C177FD96D7F04289FF215AFD46DD2ED98E952A |
7945315A1C2869A74BD6CC92F3564C44A66B37E60582AE9D88D4BCCC66A339E3 |
176F74635559F6E1D80BCFD79C1D894AC38DF82F098BCC4322B908972A99CF09 |
683555679EDE2A7FDF7DF79D78E2892F79CFC241F71AA1C11829A63C40200DC7 |
78FD291F2D4DA32608B35DAF9817390D0E0EB25A0EDD127C8BF457830EC3B7A4 |
E22DCD2367E02305F333CE3803DC2531FBA1159E9788CACBD31495FB6955262A |
C214F4980148C224ED68F139CE64D5060E3FFCF0DFFFFEF76186C71803A35D28 |
86FE648AE461731656E1CF56BAD6DA0C5EE896C770EC20ADCC582366B86EDDBA |
071F7C70FBF6ED3477CCE104B41A318180EE4A26876BBAC6EAD5ABB1EB5080D0 |
FF91471E096588C9FD0032FAC1B6EA25B71ADCA238B072E54A401233BFFBEEBB |
BFF4A52FFDE637BF61215F66EA3326123B059184656D289B283D0DFB4BF82746 |
0C5F1A4515849FFD89330B73823959056A1BD48C3609E5F7D2FE49249CEF1F0A |
5B87007CAC912167E4D6733C37D859F048F4FCE28B2F6A215596DF8078C1EB56 |
5AD18AA6186939FDC8B3BEF5B5DB46CFE95AD5C8ECFCEA508FA487AABB5B0681 |
66CB3692EC4E342A95AC6315C69AF56B243D122F7EA51A9D8A0411CB8B067EB9 |
999044C52CC9ACCDA7EF73D97AC2FDDBA17FFCC99D3F338EA94E2F2F74DE6AE5 |
F7F419CB07E553D2E8EE34AF9E5E3ED4B113F435318EF6CED0619DB243B63546 |
A4E99C290372D0EEEE3D816D3823D5DA06C9B9C6F468101C184D6E6AA1FDFCF4 |
DDE566FFE8590DBB2752B9A6D431D1EBDBA389B4353405E1D81ACD8EC4F2B15A |
AC2C5BC5A9C4BC736A86A4FD78CE335E94A81C16FB5069E4A1174F9F91D788F3 |
3950732BD28C74F5AD1A8B3C2567D8FD93FD23370E1BB5E4AA2302BB9C1A7ABE |
98F702893620F78A2731683F8DC5236F1C8CFC83E9593ECE6E738344EA8EB7D1 |
9578562E9C31E3B61F6F648F4DE7C5956BEBFD1E38540FD69B3AACA7F1682FD6 |
5BDA5C2D61EDA78A1F9106F89CEF66EA7EE13C1C5719582FC331B137C483479A |
C95F471B7B5D0CE9614857527626D1E597871A75AB9E3B3E6176C746BE3E95D8 |
ED245BBEFBEEF1C4708FD75FEC1AA99D299D999CB9AE962F984D33C08FDD117F |
C2A80AB85A79D62EF7291988C971071E7FE771DF0FA47F5C9ECFD8E5CE46AB97 |
3DD7CBB2F2A2DDDB8622E0A0408E886F476211D74C88E15FD831E38DCB756EB7 |
BB32929C2A55F315BF2FB8705A3C43BE5C074805F37F4EE4EE6CBAD255941D1A |
BA46DAB270B537A5305A04FE7DEF7B1F94090619B682DAC3A17238A2575D7515 |
F803B3FEB46CD3FFD317B1C0D8D216CFF5C4325B325C588607297CA9024F1DD8 |
1D7ED2D263E79C73CEB5D75E8BD96EDEBCF9FCF3CFF7DA775E92EE53A834DB97 |
5D906180BDA107B007DE35C898C870A2B6DE03AC9448B30418FA829E19F7C29C |
00DA6AC27E729D3663DD94E5AA9B5EAF11C693134E38E12B5FF90A3B619006B5 |
0D350DA91CAD99076057581AD3468C7649D4B0CD8A1F901E66C0133358C94E9D |
ED0CA394D92A6C2323231AA9C6F43DE5F16C4F3287E5A0138C7BF1C5176FD9B2 |
85FD00DA0C4F24AD643566E6FEE05D167258B366CDD34F3F1D5E4BB8C20FBE33 |
9991AA0065F370DCE7ABF884F901FBA4B4A1F63D691BF7683133DAF7F486E726 |
2FF718CF8FDEA3304106C35B7A68AC3BE8A08340FA3FF6B18F7DED6B5F937619 |
225D4BC619281823CBFB578DEC7EBE7E798B12C9508B58F46F5F52FAC5D4E2D1 |
25D3C55A41BC9AE43B1335A3D29CBAC258337DC8D35B9F591CEF1F2C8E5C70D5 |
FAFFF8E6F79E79F49954EA50B33E34161D4D6EE82B8F4DF45EEB34824AE54B52 |
2FCAF2F5998A0CD4E3DB9DF3653C2EC605B238911B4FD8F5C268DFA295ABE36F |
7DACF640E9F37E8BC25E62D580686E23C8CA9A697976D30AEF865DFDE71F3E31 |
F5C499D5B3EFBAEB2E9C38C8891A6F8AE373E2D613B7ECBC510A55790033CF44 |
A5D18A224AC49B56D52FC497C821439D3B329FF52183A04174A2C375AA7667BD |
3161F6C911A3B1DFCA8696DD21774566CA2E08C46EAF2BB02765BD58BE34FD96 |
2294F9B913D925138FD62362BB7127709AE2D6A4D6B2FB1FB261D9B37B4683AC |
23CD8271A338A5546D4B293D6A2CBB66912DB11DF242F292E8F0B2A89C5C3AA0 |
33B5A3D814BB267E3C5E5E74F15DFFBC7E7A93A4C43933D2B062D112B48D664E |
AAFEE5C93199597DF1C098744C5DF3F492B12553F78C4587A325A91CF817073F |
F3BB67224DDB8A79752FD3B2F09C9F312C3FD854926657261A91DC8C143AA594 |
2CD8BBB267C54B8DB27797A40B7DD520EF899F887A65C0D790645DCAD06836A5 |
92CF3A95FF33138C452586936FF764A5385338E9D833BED47343F29944E57B15 |
A768D78C06E87BC430ED9A5DCBD5E58C44C2082A5BAB66A92BDE04FA155A70DE |
508D4F4BF3CA162A055F840863F89717D30D6FBA6D50D5C2100B5F1369B46BB1 |
A88715C7107BAD95230C25012CF61496AD98326ACCD6EB7815BEC4F94AB78E85 |
D9B05E26044926C8D15C406396D1BE61584BAB6B72FF4B5EB8593264CED6C166 |
9F9A378B55312896CE74D02CADE04F6F2A0D291499157C545F3432D56C57F73E |
E080032089ABA0142EBF31A7F83BE8359A311B9653D23B81A955AC5AB58A154B |
C036C2C9EB1AC518A6EFD24E3E60343D88CED0D0906A73FBF35E680125BA7334 |
948896347A83FC97970BA5018A36258D3B26A0B466329F73E6AA21C5663F78B2 |
6DDBB68B2EBA88E61DA6B6AE5FBFFE861B6ED04BE7C37A215FC4421E7BEC3165 |
D85C0BEBE7BC22EAAF16A17D52701594F4F210AD23A2161E33740590CC8B4462 |
3138722C1A4883D0159264BDE1EAEBD49B39105378D0B82B0826400BDCCCB26C |
62F7A79BF2CD89CC20C84526D836EC62331F14198BE4E28929A3983969596151 |
A56BCC9ABC63A4A7D2E356EB65ABD4B467330CAA563DDDCC1525D22DE32740E8 |
30E21B6DB36C95AFA948C38A5E107332CDA253CB9ED0ED343A0BD7156AF1D15C |
556A9D0389E972C92ED4CECE4A229F9BB0A6BA16479BE3B91BEB238DCCCA7202 |
F24BB563B0F6058934A5E7CBFD4C3AC1E48F3FFEF83BEFBCF32505717D6D69A1 |
672C3D5E07F71ACB4C5C1B89FB76D11A332A0276629D9769BA85D53B7A9EFD77 |
28EB6214EC4E6954B27D8B0AF66ED91BDDB4B4620C0F4C39C376FA903163FBBF |
0FCB5457266EA6FED919BA776F9F7FD074ADE4DE508C3F69B8DF2BC6064148AD |
9A04B6659B4DAFBCB9D13FD63172EB4CCF494BC70F1F93CF9B07340FDEB1E9F7 |
60A29DA72D9906733F7050FE3188C425737976DA8E2C97C28B4DBB3BB0BD4CA1 |
7CCE806B8E748D5B93995ECB2B366F2C4810499512CEB9D5C9DE66F72D203E65 |
B95C168D2D1ABA66A8CBCD1683F251A71E7DFF3DDF9082D12DF5D1DC9268716F |
FDE29677267749CBDA1FAD9580550144FE2F389274FF62D78A5FDFB5533AA2D1 |
092BEA5570BA7C4302D07437B33288ED34C6BCCB178B3F2E5F74FB5CA36248CA |
EB194E8C39E765EB12C955EDA9AF8C3AA34E4C9C46C2AD04B5D9E871ABBE3958 |
3A9D1B8A8F7B8B24F3AC55BA29E93423D5D8946CE81677C2D92889864C9F2BD1 |
F822F7CA31B19A96FBD2790F676B2F108047C332D34D485568F4D6EA432F8951 |
540BE80AA3C873FFFDF77FE4231F51AFEF0295B5173EAB733C7554CCF5DE8670 |
197A09DD394E727FCB2DB7AC5BB78E055B284D736EB7DE7AEBC9279F4CD2C6EC |
4D0D0FC5FC81C777DF7D373B01153BFBECB381D6BC8A400D205A44C56CDF4E25 |
ED240B9522F12F74028AD2242B8CE624D90D5F110712F0FAD7BFFE273FF989C6 |
AA635C66485217A3C24146C2982535259B2FBF914339010B45003E1FFAD08730 |
7F106268733FF8C10FB0E4A05D2E4642360D5A2768F4A0BD88530DDA55DED4C1 |
CBFA362ADD6B967FF81A230D6905D3A2FE88B5B36A021447BCA599EE5A321353 |
026269F9E8F95A8B4A034C32503D200C7C7EB437BD458722AA96B9659A6858D5 |
982376FC3F31533F4CC0868A79C1051768D5AC85B13D08959267F10C6336A7CC |
6C575D550DAF550C555A265F71AC56A60658328E7D4CEAAEF49C981EEF8FCAF5 |
93CBA6D2BB53450894514B8CB312F55465D970DFEE6DA39D7ECA4AC6C6DD0910 |
C848D33133D9F8CC58E17A74974E6C2A42DE85105ADE64483A1E3DD3B7536E39 |
EEDA9F482CCA1C38BA79149C00345E3A66205C476AE26D028E46129FEF88C964 |
7963A61E29242ECC785288189611A4CA17CC38914E77F34B816A2A21BDE4D65A |
2BD22DB1ABA43E6D053738326127374262AFB5A230937E2BF8F53D03BB0F1C8E |
79C9DA4DE5F8945441AA979465A4E104523F4FA4479267774765627A8BF4967A |
C7AE194B976D484F12A977F8627AD23C5F6A899C7BC55477B56F2239DA6230B6 |
C855D9D84CA1B63540773DE7CAB823727D579799324E7A71222BB90B964E4148 |
CFEE8A9E2C89B4155DD73196B4B3123DF1F27F2EEC18F9DE03FF3E74F224548A |
C4055D71AC77AB447FDB57F8667E75AAEB99EAA05C6049A6B9F20F8B762E1B8A |
3D9BA87DD7CD4CA52B52F462CD0008D88883134C983DB27EB215C773B174BAFD |
D3B191642D598E5425DDD2AB0EFAF88AE70EDC2563225F91D8B4D4622D085BA9 |
6C502AF749624FAC209FCDC8D2829C9B71E2AE55AF457DC8FD8951BB228BC43C |
CEF1EDFA01F9C5BBAE1F3CFE5DC7DEF3C3FB9D45C9E2F88C0145EB7CC8624DB9 |
4C1241BA7279552AD9D4868A2FD54A141A464C8CDA4025331E98CDC28CDC29FD |
F925A3C6E02BA2C6EA31D6608D3915EE0CB590E81D43D20EF4A41D194FA808BF |
529D205CE1C8685F434A071DE3964013D59BCA0F1E02FF78891DFE541D85F543 |
3055D61D94D9E01356A760AD957025063C616632893E391E4368345153939BB4 |
C8A884FC8D9A01A70E525E39A9F3D4E47EAA05186EC58A15CF3DF7DC9C28AE70 |
A895D693D1E46FE549732CE912BA5F349CAAAA226A10AA1BA3148D4C458B926A |
BD20268AF3276A005A20411D395A77259CB1A985A4B4EA51382E8B69C0F45868 |
8A3876EDF2CB2F3FF1C413B1B36117FDFC0C700A040C7D631B7A9B75B132EB86 |
3DF6D863D7AC59837FD133B6181AA4EAC2C1BEEE7CFE135134CC096496E932B7 |
91C14B1AD1B4CF77A942A90B446FD8A6B4C475BD2C10391258D144506F44BC46 |
B46529B1800B715954DAFA87CAD46AB9F7A9FE1919290C64BC6AA7CC8C4A7F6D |
CB48CFF4A2F1DB869293A050B500A2A02703B1BEA9A6A4CB85FCA668D3F7822D |
A558D14A27A3E39755A42E875FB8745C3293C61FA2EBA4D4235D574A755CBA23 |
DD7BFC890E33E27B9677B1550A5CD9B4D832C69A6B2B9294D8C6542D28618919 |
A7ABBC69B2598E24AF8AB1501DB397B552BD75A1670511F3925A5CECC1F58D96 |
77F7F288449D6E3737618C24BD442D510E3E17EB4AA4C7B78EB4A65ACF8E18F9 |
78202DB3C865CE4C2C62AFEB6ACAEEE0E2FACAA9153BBFB22BEEA593B5E64C22 |
685A31A92565FDA093ECAA6F981CA8F48C75E5AD193F6E45F3474BA2BBE2A456 |
49355FEF98283B929E5CB1D2CA3C298F676BF64157AE9C96C28C35D2384B66BA |
C4DE2CB122868B5B7DA637DD68B846724B6EA8342D97F59B32E29F956C85855E |
5B4C4FC6EBA96CAA54AC3AE5EA6592A9A70AFF5E92DF89D38CFB46BDE1F89DD9 |
2E77CA2F47DD68B96C5FE294FB0239D3ED6F264712E56825DE69F78EFA8358AF |
D1E5978EF196F70EBCB87947CBD353EB4907E3C52E7C919E725FC329A7CFEDDD |
D3BB237A7E8F5B9B14D36FE501F8768FB3C8AFBB3529E7B715123BB295DBF37D |
E6C0587922B05BDE83A867C53647FCBA17DDD8049C87AFC243C7DE647B11ABD9 |
98E9AFE646E25389B5BDD5E258F0EF22A346BA142D19AFC0A9266DD59919483C |
2C94628D70DDA170DA1185598691F080E9E17CA59CC098975DA5A9E4747943DA |
658130D61EC117AD8961B52FA9074D619541622726892F604B2CAC419B925AB7 |
A9FEA8B6AE7783B0EE394DD29AEF1ACE320FBB37FDD0FD27D2CE7EA2D0ADE21E |
C941F8FE1969FB0934238F76210AEF5A7666CB962DE79E7B2EDB6B9D99394593 |
9413840B3918ED4C7469DBAF94D1AABF845E104E8F51F09A2448515DC558CD9B |
3DEAA8A3EEBBEF3E6EBD86D872CE1A85A5623E0D4D0AB1A05D47F6B4D34EBBF1 |
C61B35E0153BBB7BF76E4610A98CACF8A3B77AA92EC87493F085742C60475BFC |
F0F0B05AE4A1EA6DD8B0014066718239F7EEFEE9283A4727E05A4E39E5148082 |
49610B7BDE18A6A555DBDEF6B6B7FDFCE73FA79A4BE6AD26AFD6DA938154A4DF |
E82D795E09D4029266BDE514954D628D8AF3F554FF78FF0E19918E202855241A |
C836DB7A32D5FCCAB45174A0FBF5ADE819DD399C10AB11CF346253725A2457E8 |
CC3F58F5769617A593431798522ACAD562B98B83A5831DA7CB2464D5DBA5B760 |
4F99B166A4685A66AC11AD9C51937E915B5B9188F153326EB590DC9A2B16A682 |
56DAB921EB5BA2B773ADA3778169C8406B833634C4EC908DE54C2A5D583F6542 |
ABB9482CA33FEED78AC919299B92F165B3610C1A892D7ECC1B285A15D7C863DC |
5490287CA6242B05D36B05FB9F29AB9FEB7BF6CBC5147430299563C5294FBA1B |
89892D9568B3C3DD38D35D8D4FC4AA462D99137BB26FA6E55D1DB740A73BCEE8 |
ABDA56FDAAC1651DD9D2E7974C2577CB959E942BF125627D34598C78E92F07C9 |
C9FA183414BBDC22BB5032D7FB6EAFC895B3A19C6767A55CEABFD38BBC98F30F |
5996DEBE774626C6B6752EF97D72EF77F7CA2464F05890F2EA4663CD8A43C777 |
4C8FD5A7C0CD929F8E96F726E4DE72BAE9953312293931DF29A6668C7224487B |
729E7445BB8BE74DA465A01A8D79EECE3A04D766DCAAFACDFE7AD7897D93D3A3 |
729B64024906BD537EB36E365B49219E9F753AF2374CD97F4837BE3125237634 |
11F322ADE490841B9D5E5F969E457269114B93CB3D4C4CAE1123E889C978B72C |
DD2323FD1774B95E636AEBB4D3E8A9778C1BF957968619A6C62AFD3386F0A506 |
5A70E3924B2E8140C772CA5A5C45A3775E8575688EC54AE9977A8CFF886D6DEE |
C4104FB21F8CCB6BB334AC93A4137F628674D2B24C9516949659EDE1ECB3CFBE |
F2CA2B59F59A7634CAC57A1D2B17CF2FE18B0CB5128BB4EF6960869D86D8F26C |
D334AC8611ABFDD132035A0754DA11FA1A864876A2366B866CF13258ADE5C2CA |
59AFC22B63EEEB7687F07D8AD28E5632DA19B3BA5EADE7A178337F1F0967A39D |
7FCBD83509153A27CFE37D6D645D44388D4A649C222969305B044913FDC8C0D4 |
BAA58926BA53BC18807924BC2522CC09BCD0EDBEAF8813508A8712FCC637BEF1 |
C1071F945052C53EDFD5E44CDD564DA4E0437A14D403D1EDF7D9D29CB0C6EBDD |
123BB62FD1199BBAFD459990CECFE4A697F7CAE61D9949B770AE74340DF3FA60 |
0AA2E567ADEC4867FE7BE332DABA47EAD8933EFDECEF9FFCC3AF1E2F4A2D7681 |
555BDC94756215BB9AD1C9AC2BF94CCABE14BACCE4E4D7EA7222766871C7A505 |
2F532F35ECC02C8B159592DFEDF54CF40E77BF67B1759F53901DE92B168F6E1F |
34BF118356556FD42521F659A69D8955CEADE8753D3CA1ACE2693972F0314B9E |
FA3F7BA529E6F9B2DCED1ADC38E9D9DDDE25134EB32B7175A451CBD76EB49BCF |
970EFE41EFF8D3C9E9D44E89C66DCF595AECDBD1B77DF9070FCEDF518A25A647 |
D6554D39D8BF6AF6BE8D7392E235ADABEBD96662F2BA7A6247AE72F3789F1F1D |
755CA9A7BAC49C8C14AC40E2FE8A627721F7D96ABE5AF5B74A879D9DFE5CCD1C |
F0FD2F36C05A62FFD491757253F7EFE89F48ED591297CAA45849BB1EE9CAA747 |
7AF62CFAC0CAE0AB663E78A172BE64CB3DF9FF184F0E4A50CD55BACB7D27E646 |
D345E3C66A30EE453D478CA66BB4A27816F70E4C0CCEA4C59EB8A4D419CBB997 |
CD548268E054C04F21D8071BC5F1BA925B2CB73A53BAB22EE3D2779F531DEAAB |
4727EB41396AF7642AF1626277FD14492D5B92BEB65998B66AC5B2674FCB0AE9 |
3EB2539A8D89074AE0628D2B3ABCDFD5BD1F57ED32D43BB113969BAF38623A9D |
7EE63D99BD3F2A40EB8AAEB532A3A67F9B3955894AA42E9D75F9BC881B49DEE2 |
49BEAB9CB3ACA951EF555968F87DE9D2A5434343386894145F3A14E1747CB37D |
7385925D4DEFD23B5DF747F1C3F95F8C54E1BB7A45140D148CAFA790AE2116CA |
03CCF6A5CF3C6F6A6C0D5B2A80A3AF7FFDEB1F79E4115A093EF7B9CF4120255D |
E69C9900415EC268D4B0BF170C6FE3C68D6042BC0099927B38C936ECDB0817E8 |
A76C4B13BCCC4640697E805ACF40AD34FA1EC4056B99C3F0B4942618557F7F3F |
AF87D4C2C51AEAB3408DC357CA09A47D7D92D25CBDC6406D5F9A25AEE5C6E673 |
82F075EDE17195B3D2B3AA090DE1A84D1AA0796F947250AE7A0ED9D51445DAF1 |
40F1F51E128E82BDBBFDF6DBF7EEDD3B4727083B4E5E1127A06609EC55C7C3C2 |
752FC8ED342E0BDB0DD51653D26CF3399CC0CFF932252BFC6C49CA13D9A6F377 |
A960C0EB5B949D1E1D916D62363A0A4649524DE768BBFE9A20F9DB74AF11DBF9 |
C3612809B958AA546BF851A359AB9962DA86DFB9B163B43413B95272C1B2725F |
3D353A9A97819A3D2C5B73D1413327FEC80D538BCBEF18CC3E32906F945AFA7E |
0A9D2703A7BCB86E7C36961DEA2F770C39CFC74BCFE5E5713B6B274B8DB299B1 |
12FF68473AACE99BA679651B03ED0A85024FD396AF5EBDFED1DB3C237A4067CF |
8EB127FD6F4E6527250F6AD5B01BE71A81E3661BD298C836EEF30EAC0E3C9D7A |
6E85D1552A0713C1542CB06A034DE78C8CF76434F7DAC898331EB9D4CFE513CD |
4CB66A0C0727A4EB472C5AFAABE29EF2983C62249E69003BA75B258792B14AD9 |
4898D5A89F99718AB17AB01EB865755DD2ECCF75FCE1423BFD8C5B3C3023B178 |
FAD129F98F8962D1890629BF52CB885B17AB6C54B34632BFA82C273A99C1BE60 |
D18C15294C5F214E75C5C1CB7A9E1879D4BC38ED438BBA0E32BA1DB39C46D3B5 |
1366B95E03B040EF4DDFCE49666CC354726F3271A7350ECE94AA44271DD7AC27 |
FC78ED3CDF8FD63BC0118B7D53374F1E122CDF9E7AC176630DA96593CBCC69AF |
981A74D63BE517FDDC6DE9A9D854A266B53CF552A8AC10E31F23CEE28EDA78B5 |
6FD01E7D2C2F3B241E446AC0598C0A8CF502C948EF997F510530C7A66AE6847C |
BF901D02A7773A0BF6F4DA8AD9E7FBD788943BA275AFB3519CEA8835F3AF983E |
9040016F419F77EDDA45F2FE47E14FE33734C9369C3ACBE3BAF09D0C24F71A09 |
CAFAA3AC32ADA676994D08E005AA5A2041DDB61AFF47698B4574D571C789856F |
8ED44BAB41DCDFFAD6B7FEF4A73FA56DC468DFB5A2644EDA5E4DC6C390B8E04F |
2688EA8DCD0C1F22C5A41C0D3A8E21F4A640320CADC74B1A34A71637892FF498 |
A79E7A4A13CAD4B6AEEE018DD496F6556568C0B29D8018AD3AAFA2084FB0FF5B |
A05917576B109181911FE03BF339C2F9C9FBE40466E8122B7608028D3F19C746 |
919F25F23916334534813C5CCDFF90430EC15B80006F2F083BEAB53E07F75D0B |
07913D907FAB7B768E75E8D57102BDB38851D5E0E80B97BE607A0DBFD302C669 |
10A5E75B874C3BD511756AE5A972C4972E818C13EC0992D2514E8D8BD391CC5B |
5E30511B10A948764A7AEC439E8F6E97BAE46CB352F51B80443221A6E7076EC6 |
4D4C9A2D1F5E24103B22B54A2E2A536E4E7ACB4BC69A7B21480EBC79E931EF39 |
E6CE4B6EE8E83276E44BF1A4D100D94D400CEEA848B5D6892F07B9B1E9526A42 |
4A92A8A422CD483DA8795011FB9AD29044F125AD51BD1DDCB5A5E2EC49D65BE6 |
1D30AC94041358756A7A71D9D86D80024BC98AFBB9AA39D69149554ABE9BAC08 |
54914612E30E54FAEA963BD539658DF7E6061C6378A62CF18E567D8591F154D0 |
324B5767AD374B445E484147708D6A039B6CD9526FC556AEAA75BD60031BF32D |
4B1A46AF9AC089664C7A6B1092BDBC29B101A98D48DA6B25A65506B2B162A93E |
1DF352F5CE52A6B5DE5435535D5990E1783C6DB9E3453F79F467CFFFD9DDD717 |
228D166F9C2C46BDACED98F95A3ED399A6485AADB6EEADAA7BB6F4955A61437B |
336294224610B77B2AE698D1B0BC58532AADF5DA5DA5C2642595E828D93376B1 |
DFF64620D543BC9772C558D4CA175EDAB16ACFCE19E801D998E41B2D31BF950D |
00C8D492665FD99D14A729512312441325B79AEA4C556BC545156B0F647F5FE2 |
5149C7E3E5DD55D38C15BB6A329E8AF63A6E69A655B1D200B3926CDCA81783FA |
2BD7097846C289F12FE30446FB9A08BD23E2EAABAFBEE28A2BDEFEF6B75359E6 |
E90DEB11F3691093FBC3174EF120F1D8D0F7A07AB4D9BEA490A447FD8A0CBC0B |
E737D052A4F79C842FCB9576740DABDBB3AC3193B9C02778433AC90A441BB404 |
9683EECBEC3D159C3628EFC73EF6B1BBEFBE9BE5E6799D24278F79FED33FFDD3 |
030F3C406244A339AD196A16A0D19C323EEF9CE115EA7AEF02D51796C3D44C05 |
9ABFA59D1987EF7A4DB17EC219D17F3E27D0BB90E8402654D7AE5DBB61C3064E |
8CB7AF307744932AE673024DC7A3CF46DAB55A83769D74DACDF1102BFAE4273F |
898777DD75D79E3D7B78FF381927A354A51DC5AFFA282F95E5256E9A5FC65B9A |
09765E63A731428C9252758DB8F4A773D039D621C081F1BE7A3947F8C289F970 |
D6146BEA944C25A37AB14F8FB1B4C4BEAC2D71DFAB45A56943FC12633A82E548 |
47B3C3961E3732DC30ED5A23E1598371DB71ABF558C4A87B41C44ABA7E331057 |
8C201BEFF24B154B56E4B34F0725491B871462DBA529E996613D3B231381C4EB |
46A1910E4C501E2756356B52CD49FF14D48BAE646CD2AA8194B7DCD5ADCEAC56 |
DCA867B6A21F2D23681A81E1DBD64BC931D495B5B079C30824E1B7E8D6A49748 |
76B88572441A951894918303191C97B867D52241299E90523193906A25ED4B39 |
27E971D0F098405A96FE6CF71BDE7EE8CFBEFB54C5F1A4E28A6B77E6FA538D7A |
A53C38197141229DD28015A996933366CD497846D9AF0566A2C3B0668C427436 |
BE088F3B339958A930117163D6D26A6DA7D4725E6406D34EA7E255B71AA9D8F5 |
68C3F0FB821585C8CE5A326216E25EC28856AAAE935EEA4CECF1A4A76FD5A13B |
773C94080083DCA27874AF572EBA4530A4A81D0BDCC0173F12355CCF954826E6 |
16C0829A99A454CAD1A6ED89E545AA7DDE81860C4F4AB21129DB66B9E949E0CF |
AED7B00EE9486E2F4E485F2A3AD8888959CDC83F1CF577DFBEEBDB11AF050147 |
3A1CE99A964A4D0AF1E5B1EA8B934B077A4787C74CD38A4493E55AC5B0835685 |
BD8E5CD0989646900621AD5991867FF8C1073FBAF72930800EEBA064C3AFC8B8 |
B72651D833962EF945470CF795D1079AA6E75CFAA2D5E6FFC80948DAA42DE068 |
6E54F87EBE85750269DF57C37B9AF0842495C581E912048DFBF0873F0C02C124 |
292DF2A39C803778A8CC152EE1A085F829C7714A6A4E51D347F8CA6C264340D0 |
66E2EBA9A79EFAAD6F7D0B3C898E628C029A050620ED0AA674CF927A0E0C0CEC |
D8B143AD25EAAB90B623DA9FBDBB8A0497448D26B5B3CF3E7BF3E6CDCB962D7B |
EEB9E7C82369D7C2015396003860DACA59211A3337824219F95FF8DAB53F8713 |
D01017CC960A0FD7DB59B76EDD1D77DCC1634FF28D798283CE97ACC34F94CE82 |
8F32305742B7DFE8CD77F2F2EC6E75CCBEE52D6F79F4D147AFBFFEFAD34F3F1D |
AB864266844A3CB17396C5657499721DCAD704A35E3EA1D45FD765ECFFB6BFFD |
71025EEE489588B5D38D765EE1FEDE25D2AA9F89A9E3131313FB8C2235A266E0 |
A3AB00FF491A52F7C44DB664E158C989808876943D48FE652B80FCE004860B9A |
9092565808FE1789DA49D7ADE3253B2A2FB147BF4F8CD15C43BCE4E179797C45 |
B9EB456332C865E38DBC57C8A541F11B43E2E492453F223351E999488DC7A001 |
482A9F7163A581B25F5CD19D9A9C982AC64BE04FAD429EAE24BD6457B26B7779 |
3750E59C73CEB9F2CA2B95D5B5B6C37503C925C4AA486DC669B43210EA2070A9 |
914CA965F76A9577882DF14B531097535D5D9572CDAF759B2B5E7476A5AA565A |
B2C3F664BCB1B46771D7EEE1E7BA6235B7E9617F9C660C6CC283702F552B9094 |
BF72C61892441D343605A1D7F1F2F5CE162FA939FD46D66C8C0D0197BDE599A0 |
D88C4E79AE59EFF423D565E966A9DA9CB2BB064AE5E15CED1057B677CAB23DF1 |
DDB156AA6FC7983593310E283466A06AF5E493E3112824D259710AD881BEA80C |
A79D781142472C15F32BA6CC06D3F72CE91A1CDB9D71538D6C67901F4E48730A |
BA88918B55AA4612475DB20DC9078EF876AF5BC2412DD9A95CB33195AB9FFCFE |
931EF8F60F8BB5B16450AB3A29D730BB5A44C999328A4157CBBE2F85744A92A6 |
3D5DF42BDDDDAB3EFC91BFFFDA57EF00072A16AAF158BC569BC1FEA65CA882E9 |
4E490651633098723A63C7BEEDDD3FFECECF77754F381312E42CB7DA4C572DDF |
8895639027FC46ED15DB0C28EA6921CE3937E7189A31AB219E5A8945235516BE |
774D2D063C454A2C9440600638FC20C494DC49AFA5EDE50B07D4EB8D4EB432A9 |
F157423735EAE57C7A5709D90CAD9CA0A7175E78E1962D5B8E38E288471E7904 |
0D582B1BEDFBFBFB49F7C1A818B0C8840370148DB161BA108926E7A3890E5ABF |
89166A46E6CA6C793E5E104106AB1627757B2AD0F542665A60412B6FBAE9A633 |
CE38834E02095D02BC40ECCA2BE5042AC3722B3107F0AA9B6FBE1930E1DAF59E |
06164BD09BF3E67002095DF48895AE5EBD7A646484323E130F5599C3BB071D74 |
105AD257A42923F895F2041D42C66CC6228D780B689CF4181186BA0BD039BEF9 |
CD6F4ADB12481CE34F32EB10D35BD57811C5ABC890FF333F3A9C1D4F64DDA0D0 |
28670F5B3EFAFC8BB159EB6ECD6991FA5E898D456A128F2D2A368B6216E31123 |
DE199487C02732996C613C1F8F3A5ECDC70640864F493D58BE667C70346D15A4 |
86F67149C4A431DD1524F3CD7AB3159E6AB5444BC8342D838655703BC49CB1DC |
46CAE89E092A122D4843D0D837CBD37D8E8CD43B5B314DD2D1AA289AD91583A8 |
5E8D444D0F5C2B689DB572BE022D013A43D248E48382DD69BBD3F5B8677E71C3 |
951BAFBF72BA3AD5E5CA940C003362D6305493A6996D3AF8ABD0AAE21C894B90 |
B9E2F22F5E76D1A9B548CD8E8951C2727BD231B718292EF616156AE3C5FE4662 |
C40730BC54445C2FE3DB915656AD808C962DBF55B91F6A8A1BF35DCF8B36A219 |
DB9FB0E3925EBA68D9B3A3BB9A563E9B05BCDC62151A561C1AD08D1BAF387BED |
29AD1B362239C36D6662B592990793EB4958E385CE94532F59A5CE724753CAC5 |
64BD4F64B20C68D98D66C39FBD5B24C05E194D538206CE4BABB27442A219A94F |
A7833AB4E8295002AB335B9EAEC9F2BAD42C19ED48C84425292634B27A67C39A |
AEDB582FF648FCB1A6DD4CA4C49B1637BAC4F1A66AB15AAA9C8C48339FACB682 |
825B72B3530777379D78220168572AF956286A4B54E888E58C5A61DA69CA8A03 |
96BFFBA347DF7CDDF569D389D833335579E7FB3FF08B9F3DE4554B60CE3D9D3D |
E3D385BAD4B54C80161D7A15FE4556956E616C386844357728E6AC9EAF95D716 |
38484A29D47C7FCD35D7AC5DBB560BBD312C955C4123882494C915B40B38F315 |
0A7DE1E2F212E2043CD8E19874721769935ABD309DF229E9205FC74F14E4F19C |
0E74DE4A8A2F0C72A5F91B8489F662BE4BF2C7495201A232A1F5FC980301A08D |
8D8DA119968C66F8AEF7896BA6AB8462EA59884D66ED6F98EAA64D9B20296BF2 |
54387DE14FF9EC8F13BCF6B5AF7DFCF1C701348CC28B29687DD2AB8F7993B8F1 |
F21B7EF6E927A0FCAED7A2B17E6D3870C89CBDCD0DBD71EFB88AF0ED48AA1531 |
32158D8DD9ACC005104C539A1928CC20312CEA89279E90B62E28B3EA20B32019 |
7440F514FFBE64E278E5B1587FE647874BFAD28A3D8900B76D29B7881D786610 |
B10CA9663C6BB2155F28990A08437CBC518E35CD0C089B119F094AC96CC748FE |
FF12F726609295D5DDF8B9FBADBAB5F7DE3DD3D3330C302C2218779468CC1792 |
2F065CE22731B8B04410019961DF666084611F706411028A1F286A48946C6A12 |
F9DC9098888A802CB34F774F2F555D7BDDBAFBFD9FB7CED4C9659841F1C9F34F |
C1334F77F55DDEFBDEF73DE777B6DFA90A5A86AC05BA6A96E3B79DF0961FFFFC |
27BEDD914D251584BE234B5070F5AA20B997152D0805918D047E2C5CEBA23E4B |
16BC466A88E252110EF50E98AEEE1828F447C6636BAFB103C660AC333857AEAF |
7B68C3E68F5EAD19C27AF35C5F3734CFF1A92031461498361CD7B5B229A7DE2D |
E4ACA566475813CB2DA8B6741F0A6A6131F040B651D34C8523BBC385B4950D3A |
1D13225CDCA2EF8C95D3027C7165342BDC14581D1C6FCA4E457A5795B3A3839D |
4A25EA38522417B362EDD6DB662C972055D1BB86E8E7A478D9AEE37BB8F87455 |
3BF684D7D7BEBFF4627707644464E5E843DFFEE2CEDDBEBBA0C7417E6050D58D |
EADC1CDE3752E456C1846E008E2299DD411DCA0A8CB4322D2FB44DE1CD0A2023 |
41D934CC9495F1DCA0DD69F718A08444B6E010D7DA1EB7616C7CC54C7737BEBC |
11F590BAB3D51D94208AA181A05DEBE07CAA0E2AB709BFB417AA38FD03662674 |
5A68D1D9A514D8BEE86DA07651A6E3F3E63A0A3E6FCBF44CC7700403B5D883B1 |
7837C4C582E052B80B47C2C139B982D6160A861041816EA95A27EE347D156ED8 |
74D3E6DB3EBFB454312DDD736C1FF53EC8BAAE52AA216D25CEA9E18EC2BFBDDC |
A07D2431DF4BB2108C135D9816F455A822C940E63EAEE42CA65C7B42CAF8EFE6 |
CD9B118AE2CE5CBB762D9A9F494D20F7F9FD79C31F7FFCF14F3CF104241C0B90 |
E806C749239CCC43329AE520D75541DF35CF6D5AB9431E8D8A612CC3762EC125 |
F849B832A9938875F984134E78EAA9A750FAD393E2B9DCA58B4421590C14FEE5 |
F006AB13D23AE40222638B4D222ED4FAEFB2096EB8E186ABAFBE1A8532A9F687 |
1E7AE894534EE1C4470AED9081956CD07A409B00FA1962C95EBB4C7121F5FB85 |
B162604F1D97EF51F627117413D3354FE0AB68025E061C1FC29B123B45921F94 |
D896C8D0A10A70D23DE419FB9FD204B88C82810CCAFE521B6574B4287541D5F3 |
B6D750828C0C6DCD106DC99CC05470D3496381F992872F2E3EFCD043B76D7D5E |
82D09424D3D0DA8EEDA48B63A350DF5593E3711782505EC453622FE5E85D945F |
464FE28B8F015D4D8DBCC042E13C28A3400A2A5E20C9760E2FAB671BA106C3D5 |
EC9EE26125784AAA099FF982D016CD8CAA878855972F5B3E3D2308048BA58280 |
8AA86A4AE946B50BB1AAA8B16185B61BA3C4D7A5AC11B49AA626BACA74DD6288 |
DF151D458EC32550AC58EDAC184A2DCE74D55CBAD19521D07388B4730E34DBE9 |
C9F1FA9EBD86A636144FB4E4D141EAAAC2E2495B1D5B2417A44CABED74D00ECA |
9534BF1A99B2E966EC4ED71FCCE52BB546694DBAF36BDB2A95BC2E44DDB00B61 |
6CF820BB26FEAAE7BCA0B962D4E856DDB283E3B5CCEC8859B3EB309F161D1310 |
8A87BAAA3433BE2082CD8A50B422E3CA44A915F402815A2A850ACF8EBAB8CFF3 |
4AAEA6E8E0562606D3A92E6C0B1D4D89FC66DA0045828E538CD0D49B50F2D9C5 |
F917F2A5F16A7DAF1E8B66830DD1162D8FCF3BA1E5E6DC9DD948727329B4CE50 |
33A04A100E3E516E87F2080554EC385E6F6DE37E9151774B4EA865B35264B81D |
474F655AC11268BE81BA533674C40DBE877A3E30648882A18965DD6AC36E77A2 |
5E3B6194964F3EF9245559C16F5D5CC99FC9C949DC2FC29D43BF93C424A94780 |
17E51139FDA53E99C1ABDC831CB50CDBC93C271F08EE4CDC96DCF396C2ADC924 |
1F0E6A330933AA8A6BAFBD9662CB44BBFFCA6623D03320284C4D691B54574C16 |
03425DFC950AD088D599FC18445641D2017A623D49E60709CBE3F0C30FDFBA75 |
2B299564F0908E640E356ADD8CF378F9E5976FD9B285AAD848A426498AA09F74 |
4F88980827B8E11C47AA99ED00FA4A91843B0548296F958AE9A85A82EF42C750 |
C51C0557E1E5E4D2D0EF5D8E33895A01C7496A553A48EF4FD6BB3463D4482ED9 |
A2875E0A75DF255D4B689DAB31E2837481869E3E3EE38C33EEBEFB6E861ACCD6 |
77404DB09FAA20E4C1BDF7E8934C34A094042A7063320CAEA0F9FF5913447AA4 |
C96ACA8E7450C46B40B124ABA576B7AA83EEA108C8C76800A75C35E5DB4B2E1A |
10AED83ECB4E3FFDCCCF7DFEAEAEE776EC36983DB78F12A1E8B45C28C2641542 |
5B9D834C2435211D89C62E3EF8822B4181DE8E3240D224431A6D4508B866F5A0 |
303CA0CF08AA9ECE70C66C6BA1B3B73A00033618FECABD9EF34ED5FA65B0CD01 |
E1B20BA22093CEB4ED36CA34D590F594DE6DD972A8A5B46CDB6FC6726058A085 |
96E2A51B9ABDBC3BAE433C3B38E3044EB63EA24254CB9415BCBED92B455625BD |
935D73E8B17B9E7B2A0B9D690D560D8EBFE58477FDF087DF9F5F2C47A15C34D3 |
CA88AE569DC5162A281928E48638C98F4A29E1D9977D548520DC553E4CEA5375 |
AFDA82666C09236AD42E4471B50CED60184F510ACD52CBAF8745FFA48FBDEFEF |
1FFC96DC4A47913EAC4B8A576B0CC8A96EAAED879EEF0C0E8D54CA750D22CFC0 |
05ACBB1D0F22B4A2509B498A26FAD4F841387A74AEFA4C33924782C8589D894E |
FECB3FBBEFB1BFB1172AA1919E749659A0CE8C4DB73AADB1D621134343BF8AFF |
3D2C6B216A179C5C17242F25C529135A79F0E744A22D0A78358A03B400143014 |
08F0BEC43E8B58340AC496406BC0B25246CAACD84B606BA3D170045579309E57 |
1CD1DEAC9B534AA56E756E79318B67CE3B1DA350B4CB8BBA8CD8482197F8CA95 |
2B897AE037B2A41CF013F759F4A5240743B22D227B57504811D316B79AE2E27E |
4E84677143A543740F4EA181BE3780E988095AE275C8B34FBD71C85B42E3E1CD |
4F0325A1C6AC0F745FF272241137F450305909ECD3609B23D9C7F1957CC5E438 |
2256353235509311C7354E13DE940B74998F4FEEF7F266D8CB0616FFCC4DC929 |
95082F4BA6030B3892F86CDC9130A59672F4985FFCE2174F3FFD743A85E6131F |
1CFFCA14224C864A0F78CF3DF79C7BEEB944328AD7472DB57AF56A149AA4EAF0 |
CAE4343F9826E04A3AD6F14C579EE478605386DD7D5C500D2FEF8BC9D749F6FE |
3CEAA8A39E7BEE393692F6939EFB89548AD6B08A4D72D642DFCEC341E278B809 |
28B9BC92951CFF53364154908D6AA0823CB062D55CB5E2B7EB2275B204A9664E |
758C612839D05990AA816543A80F0CAE5C6ABD28E8F9ABC25D21C94AECC5FBDC |
084AB0C2186CD8953AE2D99134CC68D0755033981D4D158D631CD01019A52227 |
CA436E402EBC94FA35B8793C4B1F76DE72CC9AC6AEC6F6ED3B3ABDB7311CEBE7 |
5CF8E96B6EBD5DA41299F0E94F9CF1E0ED0FAC3EEE98E79F7BC190CDC00BF086 |
411CF891870718BE9A2EE66BADA5E2F0506DAEACC4A01BE9AEEBC180C83D15FF |
939B5B835C9C725A688574DCD16CD06AA9E140CAF15DB0BD54001300D3A3BA57 |
2C58FAA2FB1C22EB35D1B2A657F3A05E498BD335B4239BBDD48CBCE6B93E7E53 |
B427F26AA91297DBCAD26071ACBB208C0B7FB093EE0C56A3BD222953105A0842 |
D3C8D6C6F313E097F72A5D14AB301FAD294DCEB5661A6A4B389196062C75C2F1 |
AAD6A4B46A62ACFAE46EDC9D36545A03865B7771E0B974CE757DD7EB8A68810C |
59055A19D0BA66DA571BD9767E6040DB56F387B38DA8091D9106261E56426D2B |
AD1E9A9ADEBA2443535E39DC5A5CC4D91E874C2558F0F2010C89E705372D6220 |
A98A2CC35827130AA3A0B954D4FC966010917AF2097A817BD3326FDB70E73957 |
9C8E7A5EF05A3BE2E926971F56DD55E9A0DD97F2B594D768C462AA233597CBB4 |
9A75E9E5D53FEC5478AD9A803236C545709F103446894F397C0F3CF0C025975C |
42929D653D77B190A4FF2A46A3FC10CAA3205F1065E6724A8FD5FB901380B88C |
70F3A3604240CDD290082148DC535A37799928A3833CBFF40DA1F524370EA537 |
8C8F8F132B353964D84912BFBC0F25F47B0990726255C72E6FFCF2CC33CFBCFF |
FEFBC9D1FFA637BDE9473FFA110E008FA10C7AF68424773BAB1CBA38C530A04F |
5341B292AAAE08AA53CC19FA0179E8E75C715D020A7A4A75253F1885FBA9DE9B |
1512E7AA422F644DD51B1CD7491A4FC90000F9EEF1FAF846C8487AA5268084A3 |
898219449DC47001FA044D74777A8AA4D04FDEF7959A80E240644910A4E0B0FC |
C184359986DC3169BF843152486468E2BF1B366CB8E28A2BC88947DD359886F6 |
7F44130C98BAEDF87629FFA63FF8FD6D8FFF50AE2C55504C7C70322357DA3FB4 |
61BA97697E1AC8934AB43D046D78B49A95BBB0F73F774239525B6A1A95088429 |
D06DC8E6A1DD5DDD5EFA5F42FEAA5F3686FCC18AE1FA1B2A22057DD1D3B541B3 |
1237FF6D4990A37970A80D0DC82ECA2D5806237F906B0D8DD9E9368C2CC27521 |
548DD5CEE0B6C1FAC499132DF785E670A1F4E576757B804033ABE7DA8D4EDA4C |
B79DF68DB76C2A8D94AE3E7BC33CDA1FA370C8D16B661E9F4ED97A3DAEA164CF |
FF314883D9747ED8DF512DFF5B0D7680146AB1AC5B51C755CC426AACE840A0D4 |
760ED6579C7AD4AC56D7AF9B0D15599F8ADA1F85B8D8EB78834F360987FCEC84 |
EDFFFC63753A1AEAC9455CF7C13269D91FBE79E6F09F0AC342C45861B435367F |
C71CB455308355CEC48EE2AC768E35E8E4E6B6CC8DF98784602F4973660C9E9A |
8A02E3F5C5C99DB55FD57290FAE050BC227DDCDFCAD6C0E4BFFDF207E6A5AA93 |
0B0015C1B00E03DEB1FFF7F52F3DB7D5AED89AA44A91E4C7BEACA9E96C5AAE4A |
5D6828EB879C54377D797B756EC5D3DA6E84E7C3E74053D3ACC288558DF6FCDD |
5E7C713AA4BD301E31BD05475220B342CAD5E23DB541587EDA11D3F6EEF45DB6 |
88870F895E05B01A602708B59485A3FEEEC8E91D33CDF9A614A19960B8A1DB8B |
57C3AA6862C79A593849CFB752E72C3FEF3BB7FEBF6DD5E76CA99E95D3757CF9 |
2538E6DD4795FF63219A89EB763333945F2A57A89E9F5A0AE2BFE4747DAD88E7 |
820B2E78FCF1C79F7EFA69896531E17416FDA818700792BAD82F5A489A80C135 |
55FA40CFA3F2E28B2F92FE20BF33B1E443DF1F42A79C76DA69DFFCE637C9734D |
EE94642748AE24DA2F8D921D38D4218BC6CC055C491E3D1640FC03572D71B61F |
A913D26749473FDA2EA81528C5050F66D75B9CE8F7C63096B130894EA6596677 |
36394F985E02150CF5D2A1BA84B8DF1A971E901C4D943B4F3340357A34153818 |
04E6244FC92D8E2F08DF083520A3DC2D3C9EAC2EFC13F3CD91F580A71C79E491 |
08C351449258A4A2E2037A87384D9322ED38CFD4B085922C93BD25181624253E |
CFFC01BD4334F9447C4BDCD7D4D1F360A111AE4F4E0684A81D1BC5187048BC0C |
68916CD9B205A10CB710F89FB50910CB747B8B6C60D9D8D2EE5DB8A597FFC9A8 |
7FB8B578C39EA8A31623AD9B695A9F9CECF80DE7D10674ACE1C17871DA468340 |
570C2F883283C5B65387C01B82B1B232A79EA46ACB53DD9FB6941F401EF2221F |
68635A5992DDC7165101189EA5074106F46C26FDD2C442F6C594AF83FBA942DA |
08A57B16DBA1687592F233DDEB532BADE53BCF7A2E35E8766F01F9A4C3F4353B |
D20FA7ABDB9B29D3ECD69D5276A0E3740C0BB14BCB884C77B5237F501E9146E7 |
B6EC55ED7490B34B67E6AA434DB80994364467CB7A667CF8DE186ADE74A98C52 |
4B72D206981E549D12E81FD0572C3F76EBDDFFA135C0772D503BD685595C1AF2 |
037EBB62A080D133E0E0B69625500CE1204243C4F325150AEEB21A94E13837FB |
E6BCD932CB8F2DE88811C1D77438E293C76EF5E7BB0FCDAFC9BE6EE9455C8B0B |
85155A63B1AD39793956E8BEA58F95B2D6E4EEFB7F291A47CB39909AC5CB073A |
9D2EDED7A9A3CD55FFA3534F7CE63F9F9EDB3ADFABD612589F24720E6D9E4D13 |
4BCD5A747F5D1046B5F50A78DAED935D6911D63B8A0DC65A2B548AC53B3DB32D |
EF2ACC1B2EC4DDD4B032520B77754A90FFCBFCD0C061DBEEFB4FBD86CF9103B5 |
A97FDA54553DB8A7137407A4A82C8F6A7E45C44824914620A46A28C5A2B37D36 |
CAFD69415E95AF7F6F069E90F330E043CBD63AF75CBFF153B7AED73F3E5C50F2 |
8B776ECDB6851DD7D26C43DEE7CC4876D0E340EF6FFFF9AFDC21BE0A093E62A5 |
27F24E025F4CF3C91E15829C247A28671F372462D20F7EF083DFFEF6B7290593 |
4689B7A1EE25885BE9789402681C301705A910DCC07805BC0BD5F792039A3038 |
5E9C3132B983D6AD5BB779F366AA42228F3995C893079C2848F939994883B0ED |
F2E5CB5157D180E901F15C72587116CDA9A79EFAFDEF7F1FE50B993B78223E05 |
35D7247D401E12669EE0FC71FA2BFDCA340FF46E48EE939B1EFAB614DE9DBEA4 |
E02D4D268537C930A29A3EB9D730807E20104D7D3D515D5D7EF9E537DC7003F1 |
68E2BB43759B749DF32B63777CB28D33C041BB40EFB75656AD5AB567CF1EFA99 |
7C4A149EA5DCD3FDDABAFD9757A4DF32FE9571021C00BD5F8EEA3327F6013501 |
F111716107F709A07A695421EF7DEF7BFFE55FFE855215B81107D11C31F1D16B |
CDA9F8EFD204514A023B1E887509BCCA7024FF9F55F901AFF6E519049ABE6CA4 |
62B99BEDC20579CDE906F778C34D6D418D539952D070AF5F7FED8D9B36B5FDAA |
A44781700A807B7A0EC606E0BA5DCB978AD3521D8622BD0CE13550AA5AE5AF75 |
8C0518904B4B08C9D3685B888CFD947C482D6AA20611D183B20A56B4EA2F96CD |
8FD7ECDB5BB056E498C26D30D25CE92895C6F5F6313F3DEC573F791EAA50CA17 |
1B9596611A364A680D327AC13C5DAA1C56831AC066C88543C3EFCFEF38669B7E |
D1800C6E8C064CCA874657717B694BBA0A72A005C5C8F7CFBAEB630F54BFE46A |
01DCE21FB534F2225402A90866052EEEE5E9DC8AA8C7B01437D055B71BA912EE |
05B16D719B3A7E1BC5A4A1A6DDBC5DF88005CBA2FADF75E15768DB4CD4A2B9CE |
6D91BCDB8ABEE24CB6265ADE4C4D8B202F21881741F3B6B56C687C26DC9ABAD0 |
725210DFD039AA3C3297F5AA2D6960D25F3AA5A5A421DC04929FB214D1D14C84 |
8E7D34A8742980208C230D0294C93787C5EDD9DA175B435E4E0B86F766B615CE |
1F6AC765E586129ADFAE1A4049A5E7350DB513451F3AEB233FFFF633BBB66F0F |
4B6DFD02D333F00ADEEB97269E85B9100AA055B50D8A0CB1BB31020FB19EE3A4 |
85DAD16405D0940D229144A4C9912CC537FAEAEE6CF0E576AE961D4AE97F75E3 |
B9975D730D7434D3F3073E35397B6807E63D78A475DF599FBB68C3354DA39506 |
9D5C23A3A3A3BB77EFA62491DF8DAF0CA85517FDCE748F8CEB7147C9BDA62E88 |
E5F17E547E493B90892550FA93DF9CF62A8AF8E9E96936DED97BCEF921F82F4A |
B164439264761053C511BF0D770A237119F79BBC737D2FF4FBC8CBFDAE2CFB89 |
B324D11BC1F337BFF9CDCF3CF30CF79361B73EB7151391134922CD47D4F3F4E0 |
2494B91D04C7459336017DC9A5092CC7E9D1F016D450F3DDEF7EF71BDEF08607 |
1E7880EAAEA11FABA0BA071CD2638F3DF6A77FFAA754EB443D4F70C6500BE261 |
28E8F1076A7E89B7989898A07A3476075168975F13954DD0EBC015830793FEE3 |
84A8576A02AE13847E15052A9B4B2FBD94FC75D404825F04A709ED2701D93574 |
B038014F0E2B4B5AC7F83D294B2A73C50133F114CD0679A8186ABC52F2523C9C |
743F4EE3238F3CC2C1AA641F693CE6E28B2FBEEDB6DBE8ADA155F1894F7C62D3 |
A64DD0AFF648C69F706DE3C1B7DC720B474AA869D295575E79DD75D7B18E61CE |
77760F8AC1588DD2DEC1C55CE5DA0B2FFEEC865B32170F699E52BE6BDE0CC01C |
9DA89717C1F2C73E7E1C04B5B97FDA75DCD1AFFBC58F9E1182DB0125560D5978 |
0F8C8C66E3F85390B9F8F76CB468EFDE3D150EFDEF8F7DF24BDFBEBFD55CD0AE |
30326DEBE4F69F4F0C0E5F7FDD755FFADC43A75DF331AB3EEC1A7AA0CC2CF707 |
6AA9B0EDD6C05F690635E9D2F69811EDF8AC061B5D434EBB1BEC5290F1D581D6 |
6DBB07ABD9DAB55E414A2F656A690F4CB7E458BE2DB5603DA4168CAEE5420694 |
4B40970ADD8D7588D2F0909DDA96294AE9BDF945C493E9DA90067AA3B098A9AB |
ED5CD768EB5EECE5AE9F6ACCB6E1DEBA159831E4EDD46C4E83E67A09A438D7CC |
36AB2D182BC0CDF5A263D51C05F2C1B027D220FCD280D36814D351CD8B602348 |
8D427C573DEB2B057B62DA98D3AE344ACF0C2F3CB9039A60350B366871B652E8 |
4886595A502B6A132176285D36A00596BB79D60C51350DB68BD34A13C2DB0DF0 |
DC7C3B27ABCD5A47817B43BD9AF28A4EAA964148EEE6DA4AD308332E5C66C1EE |
D2D0439D72AA0A75A1D8D0903AC2519EFF7A98DD5B40A3663E53118EA1EA900E |
465D9F313D2D3C2A1B3D57CF15157FDD68B71A661EF6DD725B946A2C9BF3E720 |
FCAC60CBC854AD4EB7230F0F8637560E785F631D14CC29E78A5D2D79BC187596 |
CC2E84D982566C5F5E093C115B4AD70CFB6B2E5A7E3895A834DDE8652B9FFCE4 |
B4BBB9D108AE40926C4991C86293626F04A63FF399CF48EC6BC6331F7EF8E153 |
4E3985C8705EE957E53441DAE19CD2434603E12FC2B9F83D0A29DC6CE45C3AFE |
F8E3FFE88FFE68C3860D64C5A3D6215E9A9999191C2B85F556AC58313B3BCBDC |
3849A633CA4CE5C49BB1B13144E8246AF1F9F1D65BB66CB9E69A6B504A26F120 |
F4F362E30481DAD4D4142A3C2A11E0C827DD8886C12E20726731390429129292 |
C9C498FD22C6D4F59344F311471CF1ECB3CFB2BF883D6078305964246799FD8D |
4134E9421A1E553EE387893929DCB266CD1A9C3D3223EEBDF7DE8F7DEC63C937 |
C559589FFAD4A7F0AFF86AF09AF8F3C68D1B934D950F163126D04D821EBF4135 |
80CA804B1369C1D1FC24BD498CFA93B199576A82640212B3B671A8990646DDD9 |
68BAA82D33FE9502DDAC74F7C33EFC2BE9127A6BFC4E29BACE3C5494C346FE40 |
22B9A2AC569C64D2195CF988776793940AE6B940816F4D9179B60269C5E231A4 |
4E021F86B5232BE6737241F23F98863708F631554D65CB47D6BEFED47033B3E8 |
B5A5EBB3B1D9826760C5C4A193CF0DFDC70FFE23EA40C91A6C541BC28F2C478A |
298FAD2DCEA4450316E13A6F67E12BEDB1DDDA9CEEA1A406134AF2607747A5FB |
0F90DBAD2983915CD554C319EFC28EA2DEAD7B22BB3D0BC199002B44EF4CFD3A |
C3FBBCA9EC6D869F17C467F9BD6A63035A1D90BD7F289CF36DABAE77D4945168 |
E42B23A78F282D6DE9AE8E7B79006345E5FCA550ED8C5F39B6379E1BDB98A982 |
6A9472E77EF2A377DE787D4E2DD564BF03ADBC57F0535D67584EBDD7ECACA9A1 |
E42A99B96AD02C6D18A8E6AA6845AC3AEDE89DF73E1BC703F9B7FA8DDF6BAE0E |
5695FF66B6515521E51B5D6FB0589A6D36F3192B68A43BD9B9910B0A43BB079E |
FDFA761154D0D5D4F956D76A8849C0C5B21D86BF3A8032B761B8685E0CC5F9AE |
D56A4377E28295B3F99D222CBF17770B942E19A8A6961413464E5E3DF7E56D78 |
5F282E0DAF1D58DA1E875FAD43188D4606AAA639C501532B9C39E68FEDE91441 |
DE05F80AE06145AD86C19D0A94A3A96B4B1590FFEAE273BFB0E526CDB525D046 |
561EF2D2EC0B45AF54876A9C07EBD462E7A89EE554051880D215E279D7AFBFE8 |
919DFF52FECA8BF5BAA5BEAE1EFC7EA8B44A07BC6F3DB70786C5CBCD40BA7DB9 |
5D8AF2D5950DF3F7F1D7E1EA3F2C46970F0ED4C2EE67635BB50C98758311C3A8 |
53AE7C32F39BCA30596EE0623EF4D043B76EDDCAAC3C49227D92DB9C8CF3B2ED |
C4F4908443972F5F8EBF12AD02A52DD2FDB8228CCC023629701BE09D888487F3 |
2369B7C77DDA1976F7739510DE0BBF3CEEB8E37EF0831FB0EF82535C92092A9C |
2D839294327CF03AF7DD771FCA38561EEC60895FDE9B9E85233D2949DB65CB96 |
A1487DE9A597D0BCA23A613C38D9F486FA6BD26CB0CEE0A809CB353253701210 |
D4531E148EF01DEF78C777BFFB5DD2B2CCF221F71BD7B028A47749A2871E93E9 |
4889068A5E0ADEFD739FFBDCDAB56BF16A846D93D4CD54614B856F045AD9F996 |
64EF20D38D9C697070EF1067A4D18BE6C040D2B984A0E19FFEE99F9E78E209B2 |
6398BE906474B287F07EDE21B60293A1A064E919139C104909190AF8D454BF8D |
CBEC80F507FC2B1794E0BC71688A0FE32437BA083E1AB14571A401F5011E8FAB |
6BDDBA75F7DC730F9306B2E8C71B31091DC21D5412FC144C97C27E4B9170FCBA |
E35E7866CF842A5503B7BBB104F26EEB2AE864F2D286463C0F837783D385F695 |
C24D7BFFCA5B2E3EE3E2F3EFB8FAF69B6F6FCEB7A508F19B0C2291525410C379 |
B94C6EC0F9ECCEBC0C4BEB7BD9A89B109416DCDBEA63AD6CE31AC944510AFEC0 |
D8C8F23F9EFCF1433F334B4BDDA60C8A3E941DA9CD07C1CAD9E2C9A51A2C83AF |
FC4AB44CBE16D18A0F9BA2E5F5D462DED42FAAB5F00D5C0FF9CEB85CF0EDBAEB |
EACDA10B87CBB945B80786F640F966199CE8D0F5F2D66C24DF726461C70BF657 |
F34EB986964D4E3396A428547C4586A166B6AA85684BD4F2A05CB63255DDD9FE |
3C9AC9329CA90D66BDCA3DB13C0BA695CAB423571B6BFA0BE3EBAC85C80EFEDA |
2EC6A5164A41DB960CDD0F83B194E5F98A7D8ED655CAF0200C35A011281EDEE0 |
461F6CC85C3D2683D9BDAC66781DEFF3BEE16BAD91FCF5E75D7CEB5597E27D53 |
EB0FEF6E7B51FB066E7C90CF4B0F584EF9DE28B5A0CA9A5E6AA93539DF892A78 |
DFCE50A7BEC9053FA29232CA084A5FA974A530BE1E46DDD1C646B7BBA766DE0F |
F96B972D983370B3091D278B4739D0D465D023F060CCCBDDFAF05F9F77EA87AB |
AB0C38B5087BE787FE9F5C9E8F5297162DA55ED91C0F427EA9DE180A0D471D35 |
7251744A2D5C1E1EF0BE8AB2DCBDAAE96955695329D7C83B37EF1CBA429F19F4 |
A7EE8EE79F07E766803A14AFC7A7D724C377AC51A5516639CC0A007F40D1BF6D |
DB36320E70319F74D2498F3EFA28398D930CFC64FBE2F2E610A3C4A219770EEE |
73EA4F403D4FD81992E4ABD9EF93CD679ACD36EEBF6C26EBE33BF4FC308AADB4 |
8592018D800B2FBAF0D0D5876EDDB675D9B2F199995E7B325970F5E13B354D49 |
575143F4AAC36408244588B2482457E1A696D1021265F68A1BA0A0440DDA4301 |
FBD0A5DADBF678A2F8531CEF8B75C852CF8D1E1F3860F2CACC16B9DF4A93C827 |
F05F9411AF64FB6181C83285B2EC494C43A283234E3DD92808DBA9E70F5E9033 |
5E5EABFF8E3291288B9F53C4F0D608CF2FBAE822126A2831DFF39EF73CF3CC33 |
14C62075C2C58084852936CB6DDD92D9532CFE5095A2D4838485442F9D72A592 |
8C781C39C765840616DA25289A893D826C522668A2B3E84F5CA94E63C0DB3DF4 |
D043347BC93924F58F17A17A14323B78F9BEEB5DEF3AFCF0C3D1C4A1459C4C24 |
4D6A02B6D828F4C2D50FF48E4821714643B2DE10DF17FE4CC90294AC45AF9E19 |
96F007BC208E9F6AA7090651E22F17B193DA2055448B41641C8EA6AC3931E1AD |
1B04E3D0AA2BD42575B07865BCAB5D956FCF4A5E10DE674B0B8179B51265B292 |
693B350F577BC6CC52002994FCAED7D53683370DD90733AD85106EEC16BC626A |
03CCC58DE2B9137A0A16EE9A160DEB25B3E40CF88737CB5B5B4AA48E0EAEAA55 |
E66DDD1F8ABAEAC5D9A566CBFB1620485FE51FBBFB9C9D190B82FF1BD80B9E85 |
CAE6AC381A97DD3BA24CABD80EEA469CF286DDE5A78FCCC973BE350E9D69DC6E |
CA4A283EFD86A53B5FC89E66378F80811B47CEFFD49937DD799BADC6D070870D |
A3E5BADD5E846EC233664B2E7CDA5423BF748BBAE445E11D3254DCF4758531C8 |
6D87194845A75F7CCA176FFD1ADC04BA37E87DBE72CFD9B79F73D9C5A5523A30 |
4DD7F38C4A1D415CE56EB10F505D59331D0BC65AAAE45FBB370897E5D63715DD |
AE5D164364C29D9D6C4B0D8DD245D7AFBD6FEDD5F3C500CE16A55AC3B79B653B |
F06FF6D00A495F5D1884D41E585046A2D016957CA289CD62EFDF48E423412F09 |
36F06DF5CA20F4A6A23B768946099B24797130BAA3BCE2B2E26EBD06EBD5F1C1 |
C25CB312EB90B572FE4253D6245B2476C553416697DE868BCDA17CC6BEA86215 |
4717D7CEE315EF931E5C7FD985762E7432752F0045851055FEDC81EF8BAA6178 |
6369D1A8021E138C58F72F743E902A1A0335DB80E1563A5B75DB41AEB3A2F637 |
BB61374CC4B09848E9A6AEC3492F0EFB7588DD8B4413D12CA27442E08B6BF88D |
6F7CE3534F3DC5FB482211C3A49B37DD74D3FAF5EB117CE1265FB972258A18BA |
C1C14B40A53CC2B7DEE58403DA0F56AC58B17DC776B17414DC639A6D0B303532 |
5A5858A81F7EF894AA23A894CD949ED235498E02DF0D433C20AA3685D33C0E7D |
E1D711725F9163DCD24AC7165011F50B8E2EE8D5CFEC13E9A83D22723EC8FDE1 |
FD86A0F97EEE6CFA70E89BF63069416EDEC4228C6413B312B12EE1803027DD73 |
B63B9D4EF8915CDEAF49137012147BA25875E1CB4235802F98989F292C416791 |
FC253382753CA90D3C0B251AB784238F3FFE70FEF9E7A37649F73E543F816F9F |
421A491639E8773B6052D2D1D1515C1E548FCDD65BD20EDB2F98CCD6C031C71C |
F3F4D34F27151E657C5E70C10577DC71071D4957A00170108B9E8E8B510EA809 |
924CB1F844E4674B727BC0CB990DF129289D8CE699064303C369C43DC38000FA |
B590641BE12DF018EAB2475029D90C030F43858DFBF0AACB2EEEC4C1C85829D8 |
DD88CF0DABCB012E87655169E6C2AA7AE86474767318E4F90BAAAA0ECADD2537 |
0A206C16F38566AD895BA1878822DAA6139F81D922C016595A4AC5577452A111 |
DD04715A4F9F9F0E65A7755F431CD814E4A675BD9EF29400965BF9C5BA04521D |
054DCA57BBC68275FB91EB6FFBCC5F97E3B9F6864EE441FEAB83EDDD6158A8A5 |
AE33C69E1DDB71DFAE62B1546B56337EA6ADB4212FEEBCA27AC85261FBD8A985 |
965A0FEEC03BACF2AE6B98C5A5ECA7333518014389C3970607D30B4B9A70E028 |
0D51F0DC82359323BBFFAC5BCFB5E04669304E55AEEB4CC1AA5D572DC2581B2F |
A1A1A92390C9B2C6BA17FD50873BBAE9969A1F1B999B9F150D9F83E8B0546E7B |
A71EDDA54ABF1CD2EE6D49A94E2C8DBBF16CEA3CE89A8ABE318C0C08AE12120F |
36DB560DAD9BBC97AF0DB896E7B4E573B20D44E817574BB151BDC91FA81683FB |
D38D60B79C12F3A3DA391F52E675F56ECA854BB47428683F4C19ED6FB3063E5C |
D14937967977CF84085837802E8F7937CC59A7CA9D35F1E4DAC1BD90B34AB938 |
7CA1DDEE4AC66018FB92D98855C328BB268AA173F3B54945BFC6BDE6E3EBAE38 |
E4E6C2BC55BFD513CF1B0A7F9111E43D30E3CB1644A9C181EE0BE3B0FA82B139 |
98EB5C86A26A15DCB00BDE31003F293F7CCEF5D73F714BFBF702BCCCDEAFB7D5 |
06AC39EC8DCF6E7FCED462825F5CC64FB288A009855A698FE397B4F20987F14A |
26761C2A9642F9B04F2092D785301DED6DA6FD82BE2FE520E255E91D20F6BFE7 |
762501E809C0A2A15D989BAF4F4D0D0D0E0EFCEC672F1C7BDC145E677834AD28 |
92AAA1548B82C041D18FFB5156A496DD0B9F86BD165AE43097441D1D043D5A21 |
DFEFD84EA7ED365A4EC7F63C17BA54D2224B8ABC8F173E08038843095E0D7A27 |
7D6AF4610181F382E206712E8A6CF20E91578A4506D752E184E237242293A5AD |
636363A847CF3CF34C8A1610CF337B097EB7983EF4E139A7E570C7B7A4CE209F |
0FAB7702B32886F04FD478127FBDF0C20B6FBBED361CEDF5D75F7FD9659771CF |
4B92FB94C499CC85851EF4C62B50EB12BC05598ADCFD2DA941A53E9D355709E0 |
BFCB962DC32B73E49FF3C19271721E3677D0A43211A20C827EA2115521109CA1 |
2BBC8A26208D8E53446E256216A1BFE23AC75BE02B469483AA9DB315E89AF436 |
3FF1894FDC7DF7DD3403AB56ADA2AE3838BC5DBB76E123E3B3B0F3F08C33CE78 |
F0C10709FE533E2BC5F9F160A230117EDCB6D6C69569B6724EB639521FFCF421 |
959BF708B69F5BE6A00DFAB5908AC1BC6B34682BF6A5E51118D905D35C2E3E39 |
39897342B9B68604C3B7FCEFE96B7FBCAAEB343FED55A600AE85527B79F59669 |
C491EE2D20074A94023DC87A50B7BA9347178C9F065BF36DC89660E622D0A594 |
F1B958AB65AB5016956B63A07F1846E756EFF9D6B6CCB9137E63D6BD1B46E591 |
F9CE0218B0DC1C9FAEEE45BC3AE42F2BCB36E04997F510D77DA543F716B6FA3B |
44706250D33EE707BB413D2F0F7251BAA9BC0C8A3BAC199055E804A311B48E05 |
FB0313F1ADB3CBBC62F96CCFCD44CBAFEB2EE0FEBC60CCCD4A831BF7A2765EB8 |
6428DF8E1BF7CE15A2523DAA4A3118999463BB855009AE5AD9565E1AB80F86E7 |
D22F801D6BE3A02D89065E9F057DAD293C4557D9B203F266C8799986960BE5BD |
10CAA34134BF1A529F3CA47BF3F62CEAF7CB8A8D947FD4CDD15EA95DFFF8409C |
8EC6EFA805A1BAB8AE68959BD6A3434D7BC98F516AC90AA410A5775EB7041F56 |
D3376A7657832B9A038A55BDB6A3AD84F07FE5C3231B02CB23D83B5D368A53EA |
0DD51218D3438B8262A8E51D1A67B78EB7E0D402DC53CF3665FB5C2D5C3538BC |
6E36CA43EBF431982C65D63E87EBAC79F5A4B567E120F74DA9574516B8AD4BB5 |
52FAADE186274FF9D447FFE14BDF9A59D584ED215C5FC027886F1170D710D904 |
BD46103D4705FB9339D99AA91CC87B4C8973E418C0C58FD2637E7E1ECFC22D40 |
9DB270AF5D7EF9E512B3DCE036A0BC1772DF1F77DC71BFF8C52F180D1D2C4DD5 |
D02DC71530BF98CF55962A564AED76512AA5342DACD5BCB7BDEDE8E38F7FDB13 |
3FF9F1D4D4248AD397B6BE90CBA7745DD57414FE28F53DD407A8157ABAA1B793 |
A37DA6BD2AED0B30668C8CF0FB07421354EB9DC5C56665A9D56EB99586D00491 |
7022A1752A6280618C9A00CF3F289930BCBCC2803ED4DA0CFAA18EE1E16162AD |
E1B6E6C4D049EDD49321040E5D1048C4D9E3A02EC3614AB1E59AE4DF4D137036 |
0EFD8AF7A2623D8A61502625515050B440EA7718A6E41CFC06051385F4F1601A |
3FAE06E2C1DEF712FBAD5A70CEF14F78351464781714A6F8203445548540E964 |
D48B86F3F4098F70662AC97D1C158AD1175F7C9139A992F41B780A5E874788C0 |
9C22D8E449A38329C60589182F8FF695B824393F64C5AE5EBD9A1A3F7083E564 |
D7FB3FFFF33F7FFCF1C751CE123920BE599C525A03DC3F952264ACB4103711A5 |
39F9CDA8AD0DFE40157F74775242A8025F78E105FADE84D2E64DF79E73DB8794 |
1A840580B3D49C64784ABC6CCF8A6DFFFABC3AAF0583019C9E012D8047BAB00B |
8A5609AFDFEA34938174BC662CD9CE87201E07B56004B50C3CB8B472A1B853AA |
99E70E38A5A591EC70796971C5D2E8F417E611CFAED197AF3CE5CDFFFC95BF15 |
043BEB2661760F1C2EC1928E4F6F488EBE1172D23195C15F1BEF939B8779A333 |
7AEBBEA26FD4AF3E6BFDD5B75C299B60DA9693EE4421AC768FDA653D97EA807B |
93A646E3E1E588ACAD6E760CBADB8CB34134EFD5B2B93D9DD4AFA2CEAEC1F6AC |
978770686C726779BB1AC46ECE4F7F46755A4129CA559637D112B282BC0ACB1A |
DA73D606CD431923C1723B33FD95B6B947F5211DA2A0EEB43C07A46C21132BB5 |
75AEE5FA999BE208BC86E0D31871A179284CCD5DFC7C50E891B9EE06EB6BE9B8 |
ECD9662039D6B2D2483DA8E6A4D46C3CA79C8D5A4CB1BAE9A5E5AD4BEAE77EE3 |
CEEFEC6D467A6987F3690870E18CC28A4A6EF7ADCD01B7B894AA094089FF6BCA |
447B745E9A0DAF5045AFE9BC88488F7E2DD79D8186D134645D5BEBB57388A5AD |
D1AAF4C9D7FFC5C633FE5A95860CAFE983AAA4A5C876F179AD0B34395486A4C1 |
1DC6CC079EF9E31F3EFA4B272A140FD9397D922BB46F0E56B60A3B6FAE1FF0BE |
A5F3B3E521D72C05515BF2AE0E47DC31A9A484CE4CB927FADD9B87F47279F416 |
CDD6143B74EC92B52A3742BD1111AEE13EE5FCCC64592BA5AD936B9449162051 |
8A4CDB9992FB256E2C8390F6C4134FFCD297BE4431CF534F3DF5EFFFFEEF69CF |
BF4A9A2ADA04A6AEF5283B7C040D87AF59B67C6262EFDCCCF289611455131363 |
8A1A9BA65EAB57B76E7DB1D56AE02DAD4CCAB2F02444009E84A6608CF64BA0C8 |
81040AE15E14659A12A36E400D81B2162494F2B1ED7AB586532E77CA15BBD50A |
5B3620D242596D7763C7055CB5147B39982648161EC3CBBD43D44A254914CA40 |
9BA4DEDAB56B376FDE4CC49994054B750FA48AD92C206F1D11F53CF2C823EF7F |
FFFB39EAFB3B5481EF57A39B0C6C301060C2674EC3C57BB1BABAE79E7B2EBDF4 |
52148B78CAE9A79F8EE895C6F6852F7CE1ECB3CFA60544CD99393D14C77FDA69 |
A7E11AA08BA0B05BB76EDD030F3C408E720A1A51F881E57E9CE81FC9E3A43FA1 |
40DCB97327F43382983A90D2C0923C1F083BBEF7BDEF412FD515010BF39973A9 |
3007DB93096C07D404D4F01207B97EFDFA2D5BB6A051C2AF9E59B5A167D01011 |
05095C767FE13C105F21E92D2EE620354901733A85224074596A9AC4DDBFD99D |
25ACB7B061B43391D11E11ACA187C4E676C3F1EA63C24FAD29E9942093E83653 |
22C53E8BE210265BDA92EBBB56C60A22DF0B5CA1D11B22E95985028A12D9A983 |
87FF9524D052508DD222053E90C3C1CEB29A5A09F3CE797FB5EEF37FBD39BD94 |
B7D5C65870C89C685B53CE2AC5613B2C9BCDA60CFFE7FDA77DFF7B3F6E2CEE76 |
0DAFE84F4641E7F72F7DC73FDFF458A0895E63F941CB6976654F6F0D0857A7B2 |
940A215D1A564B8BF2B432E70E01CC9754E8E620D34533030700BEAB1AB1E0DC |
0914148A206FBCF6EA4BAFBD7678F8F5B5F9795017FC0C22E1928A76BE5E8D70 |
7BBA962675BC224C5407674B955427D38DDB452F27E74797BC97F0D8A80BB6AC |
F5DCE85D6B2C033BC73AB91908BA251BAA45D06B439E561EF10F69C13CA43C1C |
088A0148D74D5BF8C6D4AC6AB78AE3C591AAFDAC83F7D2962BAD8E9CAEE2C636 |
BDD2D0204C3BD595F5F19D85BD5ACBF455C77033AED54EF9A26F654781823B54 |
8716649CE1B6E541314CCDB8DD8CA79420B3C7681402DCE8D0D4406E892C2B1D |
BA2D43D00B9AB1ECB545678E43E2B6E3C9B3614E3C6F564A75B5D92086743CE8 |
799560B93E346D96C79BCA9C1EEADE01EF3B02CEC2806E2CE5DD426475966C7C |
9E508EA1308C4643DADD1B54844D16E62C69D4F66A9AEA5D7CE9B90F3DF4D09E |
3D7B98D19DF3D793509252A22141D8C3E98EBC2370D10A772BF4CD0AC6AD94F8 |
41CC307451CEBB3F902A901459324C458A03CF8F4647D26F3FFE2D280A72E914 |
6E832074C6C7C7AAB5C5A5A572AD2EE2B129CB2CE4B2F942064F51E4100FF09C |
4EB72BB8360433A0DC2BF78B3D49F61535C24DE7B71AB8CB43089D20EE74C246 |
3B42E4DD75200E5146A05C531B8DB85AB51B2DC7EF0DF060DE212623DACF4144 |
9A80BAB652560977D1A12656384794C28F8A8D8C29CE6D4FA691E05904A2A19F |
E84961497673BF569B20490D4BD9389CA2436F14CD178AF7F287F9B1F15FE8F1 |
E2D1F794E648B28F9286F15FCA71249F46D2D621F72215E8E10C90CB9E5B0051 |
6E127D3867793F7B8B2BE0B84F32B145F138C9BBC56601DE6E6A6A6AEBD6AD34 |
EDA40CF66B9BCC3501EF7AD7BB9E7CF24992C5E4A027B7129AB777DC7147B2C9 |
01472628D98E729159C5D264128B09C11D7AB364E7D143B132E6683CB743805E |
9BD2E9E9E964EDC57E3FEFF30E05919549B73B6D59EF1128B9812E9AC90B2A7C |
D05570A3C181B1DAFC02DED8893D4829E0F4F2B506738D4A9356731C82A1998A |
6F058037E88A7663A6042E9AC3AA6458B1D39054887BCE529153A04ABEDFE3A2 |
C1B951A408445605503B25DAC18AB880D1230B42450791A6C7888025A3982FD7 |
AA387643B63A911D82ABA6A520F2B2CEB00BDD50F642C98594C820D23345AFEB |
83EBE2E2082237C29B88B941D594F1EBB6241DB8834A7232930B86B117A5FF72 |
5B40E8971CD27B67C24166B8E1C445A6B1E12466AA48253B92B2872917996113 |
2100B2773993F2D57BD51DEC4337E27A29FC97730720C192893F735F2C26FF67 |
3084C207BF7CDBDBDEF6E31FFF183729F72F6127304780C99B8AFFE2B0F10A08 |
B666676789CC86163FD7D572DF24DA8907635B6152997D09ECD00FB511E7A59C |
686B0CFD9AAF035EA85428566B557CB363A35944FAC71FFFA65C2E2DC9B11A8B |
60C0C04069B1BC17C7B6B0B8B75C5EC0976E65F44231572CE6ACB4AEE9B81ADD |
6EB76D77DBB1DFDDD7B7200EA3B82B1483E2CB4AA0F9226F288C45B32707979F |
23B98111FAAA14671529138456BD0E73F3CDF9856AADD97011A245AF4D139067 |
1C9FFD431FFA10353FE1928264AE2E4EE5B9E79E8B9601CE0321717E4F743CC9 |
23EAD3490C0D2483B8D0E3B56A82A44D40AF83797B700C131313279F7C32A27E |
7A65C46D47D14BDA4254A680DA822C187A4C1C24B1D7E208A9933B75B720EA7F |
928C9C3DC53424D4F58CE423BBB0C9F0E4A63A2C37D9EA4C5AA9245E79A3E21D |
F1AC646A33F4E30494E5C9093F244CF141706FE031D56A950E20B18E3F53649B |
F413A58DD206A02036AF7EFC13BD1ADC3FCC629D9C5B9A1FE6F3E250C42B3501 |
8A249C67D4EEC71E7B2CDA31D4E3418403DA6DBA0E7BA28E39E6985FFDEA5778 |
222A5A6278A68F99323CC72FA86A1BF59065763A4ECE4CA1088CF195B9EED0E0 |
40B922EC89E191A1C585B295DE17F657445F77912E818A41F41A8BF62548446A |
6FE6C34451774FEE4BF1BE852DB0646F152BAA8C1A05016DE8DB61E4C99A1AAB |
3AEE2CF010588BAC8D5C3EDDACA3AC19A8D71ABA61786EB7777971BA65C9DD4E |
94B114B4451A1DE79AF5D75CB5F19A6236E7D85D3FF40786F145547434C834AD |
72905E7BFB698264C50951ED72FF3B5C9CF81EF91550EF71FC86DBACE294AE5C |
B912A103F452213EF2918F7CF5AB5FC597CB0B8CD600AD46CA42C64B7DF8C31F |
7EF8E187D97AE3362FB81A3FFAD18F7EFBDBDF46FBF577F0E2D275684993B94C |
1C651420C4A1FEE11FFEE13FFEE33FE20A44DC46B726F14D9A0C4F39F2C8237F |
F9CB5F42C29FC999FEB81FF12238030452D9E02699333939F99EF7BCE791471E |
A11071B2DBC761871DF6D24B2FB1A6B9EEBAEBAEBEFAEA836902128F12CB4402 |
7DF46E28BF90781D284504B418757F14A2EA2ED89DCEFBDFFFFE6FFEEDA3A9B4 |
11475DDCF2664A191B1D9A9A9A2CE6B33854C340D911F69C506233E3E0E6E7E7 |
70FF88E621393D9FB38AA56CCAC42977C2A00BB1831B537880047E09A4D88F21 |
90440E75281290D0EC8C7B8D61D1F45010CA88D6467E10EBCA68E89B1058CDA6 |
B777BEB2506D561B41A5D27103143A91485495445E130E58A6626359E2D82F43 |
1242F7C919E19F393794DB0C247D2F72BFBD7BDC6B468FC7AC5FBFFEB39FFD2C |
E5E0B29780B3777E67B658FE30E527478C93449BBCD3D8C78DF745D08A460CA7 |
7512D0C05F718414A4A526424C284D0A0F5FFA8D37DE48E52314BC25A14CAE30 |
C6E6DCBB913394694ED888619CC5A11446284CA6047D3A742A8746D94A5B022F |
8E13889B1F61FE55575DC5F510F4C12BAF5AB5EAD9679FFDF297BFFCF18F7F9C |
8EC771E29CE0136DDAB4E9BBDFFDEEBFFEEBBF9239C28572F827BC232129F253 |
E1D48D8D8DE1FEA701705A30A9165E2DFB69020E0EE17E46D545B3412280AC28 |
228BC5AB9D78E2898F3DF698DDB50D5DDC0EA530D12B919C32C3206DA59A6E47 |
4EC99D4EA499BAEFC49A9E0E9CD6CB9601F49238422F36404E59E0C45127947B |
2EC900A2180573DCF57C2F86E8BFEA4845D3FB58D1A5C013A335F55ECB907E76 |
750E522E442E88165D6A2FA71DAF1CA6454D9366288EDD2BB92FE53F75DAA7BE |
F5F56FEDD9B1BB5B0AC4812D0F0235972EBA6820FA8E81562654A08B12411ECC |
0FD41B35438E03B185C13F78D7CF036A025A2184D9C938A32C5E32CA93996304 |
59D8D4C6C3504CA148A5065904F393D7A74D447627FECB448A90606887845385 |
4C90DFADD34B920481B6245DF6E8A38F9E9B9BA356BEE469A4F83F85974E38E1 |
04541238542204E59C34B2D4E9B288501F7DF4515CF3F825D572921F82B61B27 |
8932291CB57DA46E5778299C3A5C8DDDDEE7D5E58CC4A97E0CF70852F199FB12 |
C34DC543581EEF6BB5B37C627C66760F0A7DB45A56AF9E5CB9623293B51488A3 |
58A8A6E1A10190FCDEDED8D7E5B85EAF5125A7ACF9E99499C9E2D3C6A2D944D8 |
8D4347788444832351392034414C9A005F6A1C38A807C40A9364D1E24152F428 |
56C478A37CE419106511AA541AF566276CB5E3A5BA5B6F8A24F16EB7874C45D8 |
408EFA8088240265A7E07A22466B16D0FB495EEED8434C79FC3D5B0C49BE3CE8 |
27FBD34264B1CBE55DAF6254D17D93F55F88779897892B186891918626904E6E |
FDA40E2040CA9526B41FD808A5F78B8F73DC71C7FDF4A73FA5A49AB3CE3AEBCE |
3BEFA4C7A13193FB9B7449322D92243B2ABC8D1B3772DF73AAAB90135D859356 |
17F348F31A23031C7A1950CCFDC0DE331A2D9511D0CEBFECB2CBAEB9E61A12E8 |
647D93BD4F99D1DC8388763B9747403F78E3F53E90E85094A4D4C6A778FDEB5F |
4F74B390005CA4CF0EE61D62EE45BA1141FE33CE38E3BEFBEEA3EEADB4157163 |
AF59B3E6D7BFFEB5914111EFE38A96F7F5A8022B6521FAFBF9B3CFDEB6E5D68B |
2F5F2B4A8C7069A8067485AFE6A8C304E9088E106D505475337333821D5A34F2 |
053D9655919487239143E129F2719F9872CA0D5D5AE162E67B03C77D18AA8168 |
61162B866AF8812FFA62F5DA0F18100429A14E65DFD33A8112425B814003C3D1 |
70C378AAA76754D1BCC5062592D392652B2D290043F4935406ACA1C5CE5C71A8 |
E4C4CE125A0C2253CF4CEB19BB563533BAE3347A9D677EB32660CC1EF78946D8 |
9D4DB629A71210AF14AD1FAACCA7142F32EC280392562CEFA6FD94010545C968 |
C38B536A001E73FBEDB7DF70C30D547BC88D6CC9B0784D9A8036295E99FD8A84 |
2F49BDA1F064B3958D1E32A6718590CB8B613EB1D313AAE08A5AD294719F346C |
6A6AEABDEF7DEF030F3C4056141FC089794C7E43CCF68875F01BAA37FA0DEF85 |
03CA9CCF473B13C74A39E694478F400031A2C0178EE88E1747D4307674D5AA81 |
6513E3F87861E8A38D8ADB3397B5F09D497280AF1001043949BA5D9B72F32545 |
241AE93AA8B2E88E1D05DD30125E7F34FBC4B044A119AE2F5153805B070D02C7 |
9605478E7836507531A18AACC5323EBC1679A61467A250B1DDC08F14C7336A8D |
70AEDC5D5AAA55CA555C1BBDD44B8504145E90FD397891F7BDEF7DB84B89221F |
5E6110903820DA4E3C6BD7AE5D88AF714EA8EE1A2784A037F42B9592CEB464E9 |
2C49529AD883BD095A499C094AFCA3C432CDAE76E859C1F8036507B33B9BBD19 |
741D4A6B21FA046E5BC1149E2CBFB8C928BEDCB7BEF5AD8F3FFE3855514889F6 |
417C5F1A186119B2D3F1570AC972C7661294B42229E83A323282B7A06F487452 |
9361F61451CD79928B9B8A0068F9B2BB1FB1FF8E1D3B983F9C021E1475601D8C |
4322BF19EE705C786429734A2B4D2F6179DA4B2CCA71D828AC5F7CF1454E2248 |
AAB48369027649E13C1372A2143D4A79A2D809299E7D6D30025126A64A9A28A1 |
5175DBB1BB819DCEA4E2CC60776151C717676A76E021A2D6636DD21AD966EF12 |
1E7F3CA3E74E0A21D41084793E6E077C3F6A0F57CA86BCD46908BFBF0A6A43C3 |
63C45F750883088D5F343E4CC5ACF955A91775947B88C8344C341F6CA7139944 |
73AF097B20F00D846FA6E929E94243192C968E7DCBEBBEFBA3EFB4ECB699D29C |
AEAF6BBAA4FAE974A6B6D42A16B3B5460B65FDFADB2ED978E9CDAFCFAD7E7E76 |
37E8168E2DA39ADDA02D658C40F5A5C6AB61EAF8150CB5043A39FF823AB9E21A |
38E79C7350DE91C4648E13FC1751369A838485E99AA8CE9F7EFA6922DE49A684 |
D05DC8DC44DBF1AB5FFD2AF42A5DC8FE230F27D187D076C685C45460BFFD879A |
20D146E3F4682EEFC7072171CF6D4870CD9F76DA690F3DF410CA74047C44CAC0 |
C15B72879264A76D42710EDA86D4F28F8C7E0AB0E13CA0DD9F6CD04BCF4ECCF3 |
90488F0E0EE2B5E37C0A89D95D50C6EDDEBD9B70D9962D5BD6AD5B974C624323 |
170D0232825018BB9E3B353972F8E1871EBE66943829EDB6E870303458324DA1 |
1E7543EE956875E9C15C779FDDA7EA084F82183C45C25F510774E308A59B0751 |
A3F70E4361F24AA28DD0BEC0A3970E233F087B7C733A4206BD871A3490B4D0D7 |
54C8C9AA114452ACA4BD20DD6844D38BDEFCFCE2CCF4DE7ABDE5A3FD8C36462C |
89E4D2681FA311C938D276BC22933A803E24657089E08627E394B934E88064C7 |
479238E45EB8F9E69B116BBCFDED6F47BB0FFAAC67AFD2B19D3603879538958B |
C4312E62822ACCCB4FB602E9576E24871721033359DF40EB9BCD4646255CFCC5 |
999A78233C92562AEA0944D6846EA0E741C223F1A971C6F05762E0815E7D32DA |
AD5FFAD297F02C3C059525775EC3717EE0031FF8FAD7BFCEE58A3824FC978381 |
5CF9453179A22721D6073A60BF8209E8DB5EF42FEA577C6A2A3E887BCC229C27 |
C7213B8A3432FBF77E8A8703D1DC139BA403DB6D1C093FA04D002F2FA180BE87 |
573483ED598438301C242206C1FA6757E550763B3E4976D3323A4E877CF7AF9F |
3AB2B57DBE15B7464627B7CE6F4FF518FBED61D35E721450DE75FCBBBFFFC3EF |
9B29B3E3B6F1543D1C15494308DF738850F466B30EF8BED256D46A6BA6EA8387 |
6AA0B770C5FF1923DB0E5A269A501EAA875095D510F56F2C5AD08006AA9335A3 |
5C2C7CBD2D198291D2F2D1D2D47F6E7FD25035D7B7538A91CEA65A5E4B4D29CD |
764B72074483C5B46A648DFAE2AC887207C1C8F884B97B870DB29D56D138FC9B |
2F7EF1CA7557CDD4CB2E68A1F46ABDE192659271BF6F20A56310113237EC230C |
417D4D7085D026C285BD76EDDABBEEBA8B0C5F520F941140AB3A598CC9611BE2 |
7664E541989D83C308F2A87E3089AB7EFB0F479BA8F27C3F867642FA1C1E20DB |
97D4CF79E79D77CF3DF7D089948E9C2CD6496E191CF9DCDC1CE76D272B87B8AF |
1741104AC9835ED781071F7C10EF42F60A5942BFE1BDE075296088AB99189B71 |
D2497ED12D8F39E618C4CE6C9429928C40A154B08E3A7ACD6187AF42809849A5 |
29033D651A78A2D2637D30D2946CE793A5839A806C1649EA462218804F88CAC0 |
157DF7C08B71154755E68D4038A4A8BDCA67843A9041011B43202BA1A1ABA994 |
D14BDE37244DC74DA12959553145537025ED0656BD11ED5DF41716CABB77CDEE |
9D5FAA376CA71B8591E8F72DC5FB686DA47E3705E8F3CA1D5013B06786D8C470 |
96715A6FBDF55694F2780A558D11D6267D4EEB92140387D99942E737DA04D0EF |
5783174721428E45A23CA3341B627D4053E68B5FFC22673771209A340191DEB0 |
97295949CB3D734854D190F66BF9C2FE13DA66540CC166D0A73FFDE9471F7D94 |
12EAC93FC3B91014D6A385480604DAA488E5D9A5CEB10AE807A229559F3C45D0 |
6793C5515121DB15575C71E79D77D243E1EE25394E0FC20912C4560B0962383C |
1D573C1168B3C500FD98300B71E8974CC7FDCA414E35613C48DBF2809A40EA11 |
085231361173B1D39638AF98368ACC2CC42128F4D386E53AAE8410DE52101F09 |
0EB51050FB2955D19DBC2647302888E4C406E86D580DA1783B50443FFB089428 |
96A120675A61BB57E20C392303D5D88811E7A766602E9D353B08D464C80EA535 |
C9A8CED6A4588EE5289D4E054E24DC4A96D6EEB651074825886B90EECA4528E0 |
7D174B155F1511827400B605CA80AE54157FD19F1A999C5E980E245FCE681947 |
7315D70D42390D9227BDF3A8774C3F351D4058D7A61BB97DEDD4FEEA931FFAF2 |
F57FA38A5458CB970EDA11888566D226A06CB137BFF9CD3FF9C94FB8A01DA70E |
150042E92BAFBCF2FAEBAFA7F9C4978208E33BDFF90E2E27B2FFF07834D17071 |
222E618C92243F2718C44CC34440494B88FC51544F4A66E211471CF1C20B2F1C |
AC84F6551E8AF206F12970319070E0F80705C36948445F06FD84CEA48B82303B |
E5E931FEA62C068AFDE223E0F1F8A4B49289248DE00EE939CE19C5BB73B93B6D |
37141A08CB7EA38693383C70E8A187A226C01F2EBAE82204B6E40BC6C77BEB5B |
DFFA8D6F7C03ED6F4B58E56DC3903369FDB0C3574E4D8D4F4D2D5B5CD84D08CB |
ED8A5887DE270D56B45E2210446435A388232D1DC7B68C3B43F214395464349C |
9D38F2A2D8479BA037ADA245B670856A083EC48B44A3571247C608C252A64635 |
A2A666E01131BE3E358BF68187905F46319AAB37E3F29257ADD66767CB337B2B |
73F34B95A58ED313FB2274DCEF248CFFE21EC6D5C6ABE795DE2184C0B862989E |
09FAC96AEF7EF7BB9F79E61914A3C9DE29BCEC58E642BF9917C9885729D2E63E |
33E465E691704E3DBEEF3BEEB8030531217792D7D0C7A749BE55F250533099A2 |
327C35B61C4942914143DB86D40C954AE14AC5BD77CB2DB7A0C5FDD39FFE147A |
0DAF719DE1F1B81248EE134D13BB56712A38E6C66C1C4C7ECB850EE41D927A9D |
21C889C424B8BCACA96481A0097E68AB90638A36098740180AD1FC53410065F1 |
124D3A9BFFF4579E5836235824D105B9E286ED98837987E8D7640A20C126F238 |
251F1C97108E07D17AECE1623650363B5157C0FE3CFCDE1F1C339F77661F7F09 |
76819E4B794AB7F09163DBA9C520AEFEDEAEC39EFADEAFA009868AFAD37403D7 |
0B5C2DADFAE70482754EEF51D578B9E0A5D0FECF8EE8C0D505338B40D2C52BBF |
F3C4B717D3A59F3FF98B999DB3A2B58091E9B471BBC95A5A117D24B3F0963F7E |
C34BF985DA776645AFB411809352B006E476909E8FCD5C2EDA0BD57FAEAA5D7D |
D3DA1B6EB9E5B6B25D46AD635C1CB97E282AADD092F1E595F1AAED0F6D137CA8 |
2A0C9EF2BA8AD5C8A595D27CB4EB2BBB85C5125A92FF1A3401F41BBB921B90CB |
F8938B965775327783E69FA100055A59139016A72D499CF99436BDDF5EE07EB4 |
94FF46A0FB605E94830AD07E120A851E497CE3AD3FFCE10FA3FC652846AB8222 |
16279F7CF2D7BEF635AE95610B3559AAC9255CC949632A01AEAA2181465E537C |
4C4A79C76130B6233CC7A959071CFFBE1FE82E28E8C5560D7BA029066E388CC7 |
A152DABE7D7B141281170C0DA4C7278656AF5E6665B4E1910109A19E17361B0D |
11543453BD89883559F121E86D7EAF9F9D0D84BC744D787E542592140F22378A |
3A61D0C503A5B8236A13A45895635403862E0B94A9E1320E550521A76C1A8A6E |
6829DD34345D55F458D1213674CDC20BBB4124A9D9281EE87475BBE3375BDD72 |
A5B9B088FA60697AB6B25445D340686ECAEE602C09BD38ED7E69B6BC0A695112 |
D00BFB1F9C65B4D42835906428F419DF2091268C3A83522199B6E8551432DF91 |
DDF76879A03266A2374A4B25ADC0194490A8E4626D44A790519CECA3905CFDEC |
0FA1F581DF9376813E4F27A10976CD275D90D4EA19CFC5EF519552EC1AE7047F |
20070B31A6E1AC22CEA2841C7AFB5CCF42061019131C7BA71A0852B43C1E2639 |
A75E4982B73E118621F84243256F03677D70AC0CFA6C51ECFFDC2FCB90C43A89 |
956407E6D7240892EF912D7A9E5EA1D14516664A81E5B5EC4BD9AE66077E781D |
803D0A5F981FAF96F6228C2EA4337F59D3A6DCDA4D596838EA157AF0B90E08BC |
1415027062C81F7A5865EBB62988B6A78F06FB4518F5E172096D02F82CE4A2A1 |
A656CEA58B61C3E95CDE850180EBA01067CD465ACE2E745A69DCCAE77FF1139B |
CFD8E0C691F679DDD95B2CDDE05633F5743B656B5DB8128AC160FDBA2E8A0D39 |
1D3BB62B81944BE79A76D34C996ED8C5B737A9E5F76836C47ECE81E675596829 |
6FBF632A7C9BFFF3E3CABEB998DA04DD7815ACDF218D437C360A65D575424A7F |
C4894DA26F4236EF7CE73B7FF6B39F91CAA482419A7C169774304B3AE2854C66 |
A691FDCDAC8EF43629579BDE02BB40B9CE9F16C37E3556072F958D19FCD1F2C3 |
8DF9918F7C04E1D1EFB630F6FB7065228D87C0070D9E47087D78419D0AE34483 |
2C0246AF92954E07B3C380500B550C90C1C14D0F4968701B6081D4A57DD49EFB |
B8AE860645F206E70BC23E8F338A451416D6D4E4C4D1AF3B6C70301384DD6CCE |
8C83489164427371D803C2A148AF6CBBC24B6BDBED7E48705FD2483665A27CD7 |
D4589170581DCF6FF97E47940B0B9881978A6425D235D930F17D2B9A2A4BBAA3 |
8908B386BA01AD044DD1155953408E75530E0D4D4D4792ECF9A1ACE56575D475 |
D0C056BBB65B6F762B351B35C1CE5D73D333E546ABDDEAEC139AF47699E58699 |
3EF793CB9C9D4DBD6B70F0E410A063A8E5B2DCEF4F002F2F04A349E74E61AFBE |
F2A8F8801637A5C9930D419E74023E9B376F5EB76E1D2E82B56BD7DE78E38D49 |
4D20F7F9FD79E11E7FFCF14F3CF104BCBC0B1049435284F4C89CCC13F75B4212 |
FEA5E8021B3A9C9F03890C1C1A15C72418D4E052A66035A3366E8943334338E8 |
84134E78EAA9A770D173490EC9F43FF9933FF9D18F7EC417C477847B98DA0390 |
31814F77D55557DD70C30D888C88EFEFA4934EFADEF7BEC7AD0B489D400F7F1D |
75D45168E67EF39BDFA4BBD0BB8813954DD02FAB8913157CD2CB4BBB7FFB0FBF |
144E842770E7995E5ECF0615A96335C186A34E3BEAB9D73D071BA15803B738E1 |
74AA25AF2B5FA92DAABE7AADBC1CC6765E393B3E37B5F7A15DE958ED42A00602 |
44C90329A719497E346274DD7333686134B62C398A0188F4E36188164B971CD5 |
98FAB5FA4CCABD777499B730B34A824A5B76A1E48D7497799D99DA1BCF79E3CF |
323F837B406B957CAB6AB68B8ED2800D91DE91E2BB25C58F1C1F6F2347418C78 |
CCD045024FC7691706F3F57A67504E3B7E27FA84658F36E15E3097E4912396ED |
9EDB0B52305C9BD44199B966E758DD88BE30DC706AA5F11CBD2F5284ECA6A015 |
C829F3D0D7D3BC6EB9388BDD29C976DCD0033178594227A46B49AA32073B39B4 |
69E370B3BFF3CF3F7FD3A64DC71E7BEC2F7EF10B0AE41069FC7E5CB64909C06E |
12CA4DC26F56AE5C4906F17FCB8753FB68992130A26C313623B86F15E5F1D31C |
2639E149431C6C1DD2162673E49501702EE8212E098ED8E3064BF9BEDB2F08E2 |
36C228987A354A8A1A84E268DF0B0C551A192DAC3972E5A1AB57940672289245 |
665C1CF04662539DF63FDE861C2C048D05CF8465292A0A4A45D41BC8511CDA9E |
D770DD7A10BA71D0C1BB2B6AAC09D7508C681BF501EA0C15D1BF2A1BBAF85517 |
192222315416659308330D49CE286A0AC44AD6E238AF4AC55A57350C136D9B7A |
CD9E5FA8CECCD676ED9A9F9F2F7BBE52AFB763900BF952BD818B209255548C21 |
44FB22ABDC4091B63437C6213C7BEDB5D7A2004ABAB669B17225173922F0A909 |
F0E2C3324B07D3D8BD8A10A12E3704DB69871040C095DD53A83673EFD01ED84F |
13108022CA1D5415385A8A2D277BFEECB7AF384C4D994854574C16036E00FC95 |
0AD0B8AC91C35F044F48AC53E530271AF1231C7EF8E15BB76EA589DDAFA98BA0 |
EC5FB3E685175EC0FB52EB66DCB4975F7EF9962D5B887A88AC6C2EDECEF53E68 |
2D9D7DF6D95FF8C217A05F654A3087F63F259E128CE2FA3B3C00D11C35F64BBE |
0296F23493FBF5FAE0035EAB71C01CF19CFF4E5F7ABE95926B5A084D5930DEC0 |
A93A8C797069EFCF215821747047DC84AF20485FA206BED9BAB935EA1F3D7FE3 |
B3D916B40403849681A89E0A4183521374D0E6AFF615DC8B37A4DC516578BED9 |
36868C4DDDDA620D0F58E3BD7DE7CD4FAD3C696AFAC969BF5B82F60CCE2FDD57 |
3A6730D62AE9DBC06E8B165AE9A511C7B05337BA9D390F1EE8B593B44131E5B4 |
96B61BDD2814A49042DD5697D002CFBA7A550A60B33F06C38DB54B82E7274A6B |
5EECA5A321DB282F6BE2E314AA796743C319D06149EC1A7C590F3FFC30B3F5B1 |
BD4B909670FD89279EF8F8E38F73650C2371CAC6211A349480636363F83D2D30 |
DE9EC95C4FDA62543180173FF9E4931F7BEC31629BC7D329B738C9D4C69963AF |
F22AC94945EB933B30FE7768817D6920C469882A137FA5A6BF383C5CC338F87F |
FFF77F9F9D9DA50003C50E69004947F4AB2438F162C6C15307432E9FA6E2470A |
F2BDE10D6FF8F9CF7F4EC2E188238E78DFFBDE2731E10CCF69DF5853500DE886 |
8AB85E30C429CAC850696AE5D8F2C99181014B446D85170264E965343E241C49 |
1988D841EF4305231484149473AA6AF4720EE3D0F1BCBAE70B0791223B8A2A69 |
2A3EA7A46BB1A6C7C23BA448316E0505BF8F453E9BD22B9F8CE8695102EA2059 |
92AC879212046A0C3905F29132202C8E4876DCB0DD0ECA157BF79E85D99985E9 |
998AE7F97F71CA47BFFCD0C3027AA035107AA8374DC324794D9E07E8FB827991 |
D182A04546E901F80D3970B85915F7876117047B57508AE12266A8C87E0948C0 |
256E9F422E4BBA3517F4E2CF2B56AC4089C62E3BA66526CF3EE976728FB0033D |
093A987284F22FE9BE6415257B34422FE2CDC5D890A817E3F17363E4FDF291C8 |
718413451D8428439CAC280256EC93653E3EF9151DDFD87147BB9DA8BCF1FB7B |
EFBDF7ACB3CEA26921A14F494A6C4D33071F6D5794C5DC7D2CA99FD858664DC0 |
5CBE49B695DFED43B61D4E08355C63A7C7F278785A5A48C9D04DC3C047565656 |
EC29E8F9895F1EB97D45DBB9F3977A03BC153AFC590029091E0B0569FE15002F |
6AF00D7F282E96ED861A2926C4ED5270E6891F7AE0B16FC58A9FBB2ADBDCD182 |
FB33604AE94E2B3A1FB4DCF2E8F3D39D9B852BFF8875EA79DFFAD2DA0F7F34E7 |
E682A21F3B4E3D8C074F5B595939034DFFC8DDC7E73B73CFEEDA61FC3257474B |
FCDA0E8CA8B99F1D921B4E1DB777FC1FBEF6CF464A970209771B2D5DB1F85BAD |
B23400AB6BF0B128BB5B931EC86A7977A9E91951685893AABAB7FA090F8A9073 |
869BB72F8201E940B0DB52360EB9DD49B293E6A67548E6020923E8E303260AE4 |
96A8747A32CE4F4524D4B6889DEF5C4F8EEB875602410A027371BF4F2F15D5D3 |
C6E41EDA07FC9031CD40908CFBD71A3F781549CD0B92F61417D0E006C79153AA |
C87E056E880E899596E4C9AB143DEC3769F4A19DC221749A3462ABA6D7811B53 |
22E0964C7EEA7F0406C49917A9112862B3D6116B561E71E4EAD280254B017EA3 |
2B3DA8E5859C16C67B9B6C13BC2571FD533E1F85FB887954D754C1451A3A5188 |
6AA013C59EA1D9C26BA4E19F640D918F1EEBAA84BA4131225546E5816A40B42C |
E8E1819E1AC01B055A188942332F42298C9039A72879D518C5E1C49222C9065A |
871D3B9ADEB3B8677A7E37FEBB67E62F3FF2B13BEFBA177A95063184B97C96E8 |
BDB8108CEB38784D50E3143CE099679E21D38126911607FE4AD0980A46F0311F |
78E0814B2EB984243BCB7A12F1241AD855C20C2A54224B1DD3385B947608D18E |
52EC81C855D0BE46402DF589B28910822411395EC9CB448C6F84A1E81B5A7CB4 |
0AD93908BD7C5062A5A6885C92AA6F3F6F49B2CB0DAB3A7C467C0ADA57679E79 |
E6FDF7DF8F7385C378D39BDE44455B780CD5DF5375182FAFFD0262CC204DEA24 |
ECB735251F118D8DAD10DA42A841F1FA34C3D4BE98ABFC78CB9195C065D8AFD4 |
04E48ED80F0C413FA7F0B7FF10DAC5C11F7DF4D1CF3FFF3C4D94DCABF10D7443 |
AA37E234C07968D2467067EF84B5BA5A8E33FF38E0CCD84EB13974FE9B42352A |
ED7C69DBEB5A47CD1CF1DCDDCF83AF1662FDA24B2F7FE0B14776BEF0EBA970C5 |
AE5C05CEEF643590EE82F4E2E83CB4E09ACEE8F8F0FCF98B3979A579A9BDB8B4 |
000F186FEC4E6D8FAADD5CD709C2926EBA66ADF3FFF1F626F09A55D59DE83AF3 |
F4CD77AE5B23F31C7D4693483486BCA7A6CDAF8DB322DA82D20E08C101111144 |
5110D0872809C6101134240E4934C4D6A76D6BDAB48808028550D4444D771EBE |
E97C671EDEDA67DD6FD5A94B552524E9FE7EFC8A7BCF3DDF3E7BEFB3D7BCD67F |
BDA70A1D141E45C0F9DA0A1C74E14BB6ADB6BCB71F3213086F0334393C139CA6 |
79FEEB2FF8D65F7FABBDB8E639C11797BBAE563DA3F7F6396BB23DF80CD8AEA5 |
065A4FEF4D38D35A3B3AB479497F254C36B61CB865BF624FDD75C90D6FBDFE42 |
181627318F8361091EBE2CD66FE825963162F19571C351427225AB0EBF825FA7 |
EA5CD64228EB816816AF201BBDE8A28BD02066305A2AA939E18413D03C2D3B21 |
8F8F12CFCA1323379475A37FFF07C524C1A5E0DE2245B3D9C1A624A9955CEC89 |
879F400128FD9450815FFDEA57A3C975ACF97396396957279F7CF2739FFBDC5F |
FEF2974F3DF5141E7EE198519437BFF9CD5FFEF29789CAA84FA524FC2DD21AEE |
74BE06E49915F3A0F8242469822F62F3A689B3CF3CED9453B7E96616851E7233 |
9DF4A95862490085264B4445294361F1C175B20AA9A0A62F2B421E884E34619E |
FB908539C49ADA5735C530145324886668161016A961657842C4AF0AF2EFC2FD |
9A89424A9C69142B718CC2400A93388865C86B8A54B72AD3A80D002A049A6DEA |
F53851E6E63BB333CBFBF72F3CF2C863610C9DB69B664365B9E278AE78D9549C |
C2BBB92E8A08858B9C8E0ED5BB13F7C1F7443A0EBE1ED2D3F94F78E87143C817 |
290FBB5D72C130173795B35A4F3DF5547C55243F48945291140C1561FACA8517 |
5EF8F77FFFF754F94C4A68B913E4D0B9A7AE6364ECC0C179D2FDF82B17E5B261 |
CEED71E019453AC479297C47E284586A99C6D076C1834BA7166FA693CD25D014 |
1F2E4756CAAE2D92B2B4ED575F7D35927439A2C574427A1F1527D3BE31E60759 |
39CC59884770FC705D32060CBD432C09CA59A7F08C9AF37FF143F206C79C9E9E |
C65D95B843A79A40509B04BF2BC7FEE71B10A5E6FBFB8101CE27958197563F26 |
6F85E9EDEA41D4A6A101E60510983A7C398259192CD376BDF1A9ADFB560ED515 |
6DE04315FCF69D06EC91949B82711DE603A87F664367B65757DDEE491B616656 |
20C4290EDCDA850EF297C05437367A0B79235EB8BE0EAB5DEB63C22E119D06BA |
00B742DD9EE85EBEA03B5674A30FB9A1A9A26B9421EBA11B99BA15A7D1E9A79F |
BE77DF1ECF8A2796F2E006ADDB49E1D6B812830C9B7AF6416A262CBFBDDADCA0 |
AF7C7245F4EF759A63FDC8B5040A3AC13F5069056D4EB9771E717072EB13A809 |
BF353AEAA40CE1CFC8B0EEBBEF3E3485E9F4E231C6B38A37E4C31EAB3074E6E0 |
AFE40C219417AA8F61B141879011768F93D54DEF914D0AF88FF30B31A766872D |
AE854096366FDE8C6B24D2C08B37DE78E37BDFFB5EDA2EE23CD4FF0E371667FE |
BEF7BDEF9E7BEE610FE4BA0FA977749E39831CC99341302910422B65D42FD173 |
A538FA421808941E410C680A10A923FB2E1C64326CDC387EFAE9DBB66D991E9F |
6826A91F85032422A56061B6D560AA6649403E5996017485A23A690E9A227659 |
913309521902499414A4AAD215B5C786649A4212189A881628A2578DC8A2C09F |
350514811E24C9851229923462E4AD6A9266411A87910279156D8266734B81AB |
A7E7124A1C5BB404EA04AB2BBD5F3FB1E7D0C1B9877EF9B466401C8169393431 |
F230A2A14A290DEC892B03E2F399A314054A11C1638A879BA361C4F8E8451278 |
27E7BD901ACB87920E3D315FCAF1C201D12221772105A219A110393E2A0E482D |
743FBE17340E188B82CBA370047C0AD5F752D88D7470AA36A4202A314A8A4195 |
7BED52974D6AEA4B10A47CAA58C5A65802DA4654714247199F85DF2587159E5A |
12FC175C70C14F7EF2133C6164EEE017711514422CA740E443E409CEE7610981 |
A7162786E6C5ADB7DE8A73266305F799AA4F3FFEF18F7FF8C31FA603C67C9C1D |
41EC2F12CA6C9146220F7B671EAEA53C3262CCD2681D45FDDB2A8CE0C8320EFC |
B7A6CA469C1BB6BDEA49E1DB8364430C9F5150D5893EE89B4DD03E0835989A6F |
B963ABE9CA195E7C3E4CED9998BB776152DFB412AEC49907895C719ABED7BFE6 |
63975F77DBCD809C373DB97DCFC3C885ABABD057506018A2935F24D9578F04FD |
20BF0D6A9A338803435AFA8BEB3F7FD5A73F3AEFC6C6A57AEF84015C95A9A996 |
5C1F3663A37D4DAC831D7DCC5590083F2D3A6A8559B75AADA0895CB1ABE4607C |
C39B5FF7A52FFD0554C6C059925E0D4DF5B4EC2B07836E94369A7967511985F0 |
E2A206A26FC1E77D98AE588B512C4749C15B280B1E8EECD74D8793FC90E4A3E0 |
5416EE9B4D805794DA80DC9F22CCD42384B8DB39E79C83E79FDE38657F328829 |
BD022A0BA0AC628A6FE1CFC86A29528DFA164A293C6314B778E687B39CE957C6 |
4779B618A5C7FA507103C72D8899C0B08D2B79B13EF6B18FDD75D75DB881E598 |
139E6D9401D75E7B2DA7CC1DFF1C9200C01DA3D40CCE19A1681F0DC2994B8211 |
15879E4EBE52C00A2197540BBE8334288A1BEB75F3B4D34F3AF9A42DA3AD8665 |
AB61E46669A8EBAA900401EA591AE98C0CBC43060195D8901B9DCBAF840F2B97 |
8B3422819222C085F248C6532C678ADC115E2343D235D08C54D7B23549007D59 |
C1BFE6BA8A9220A7B2353997052C3BDA04A92AFA1BA4492800B5AAAA5C772AE3 |
42D196B530CE935495723B8A70C7E3A7F7CDEFDD7368FF81B983FB97D132105E |
A038D34D83FC21E488E74AA8323BE06C48283C06A432B054A70FBF30D6EB0524 |
40216350E0E3CD8419CB99E994178C6F88FCE694C2842CFEE0C183EC1A62EF79 |
19F396BA23F073CBD9410C1547B28A3B8591A5990FE1B1B8BE17865E14BACE41 |
05FE81BD58449678CF0B5EF082EDDBB7A340E2CA1DE2DD5CB943795624F97069 |
A4A951089A20FECB7944EC286376CC6C144A5D1FB8C930816D30A235DE76C71D |
77BCFBDDEFE65C2612031C23214710FDC0CED3676691F28B66F7E65105C3BF46 |
1270863845AD891084A713627712A0732AE44F9DF11178E22679DA6BCEBFDF4B |
37FBF029D4D015334A41AE24EF71C05E4DEE884132EB3D3303B75F4FC095EAA9 |
E957ED4A3F5EBDD155B38A724DAF626E5A09D25A36EBC2A4A1CFE3BBDC146973 |
1F89131D2A9F025786F1B0D28568BC211D3443397C4EE63DB2ED7DF0F4E7E0B4 |
60EB8EEBF6B5D4D6E07AA499C8B8C9F7BAA2ADAE80C4D7A2244E1DC389C33881 |
2483CCAE9AB22667AB2DFFD603F559E533E7DEFAF6575D06F908345736F55003 |
33963F65C5F9A07953D0EEDB28D4908B045A2F570DCA4B218C04DC10F23F94C5 |
24D994A79D76DAAE5DBBA84E0ACFCCBAE0131D09D2DF39C6861F3464A97890EF |
E73E4B44324C50D4199BE0E7E8C0139D5246C671382959994C867C5CFF432441 |
99768899D0ACCA763CC7E4E85FDA4FF256E15E115F3DCEFC29F19D0D1A3229CA |
E03494D1CB78DD94962D5916BEB9B00809981BA7378B3E3852426E65D4EF4D4B |
1B9F689D75D6E91BA6C6AA8E859C3A8ABD2C45335F5625B198204A58129012CA |
213812D4445744EDA2125A12C21019BAA8FACD918D07280C728865D46F54D055 |
1400295A0E142A101E21CD15024A41A32117456745BE12ED02B2E534D5441669 |
9626A262A1262B759161A48BAEA2BE9F4609CA1E34149C3CD3BC207FE457BF5E |
5EEA6DDFBECB1BA4DDBE78CD1BA7371E9C3904A5244B1866F2509319C6C12779 |
408A36EDE6873EF421DCB29B6EBA090ADD04FFFAB5AF7DED8D6F7C232389AF7B |
439C224DBBC1B284C880D3E7A9EE697A7A1A5F123997CE3DF7DC97BEF4A5A826 |
903307CF0D2190A052C3CE74946433333314EF2DE70B4191E143BC894EC6D4D4 |
146AE879D1538C4CCECF7FFEF3D75D77DDFCFC3C516F5900B08388A88E4A3449 |
B433941B3D88DDBBE402221B9F760C86B5DC14C36065F999116318A22711A7C0 |
25DF7DF7DD94BD47328F223A380736FFD1BEB9E69A6B489251E483042AAD7D5D |
EF0E7611501205F7AD2410112EE22FA37150A893EB18D8B2A10C08A2AE32561A |
912EC93F7A1775B01CCD598E3B91998005A7BCF58C056D71A0BB0D7F6AF98B4F |
BFA871F2C373BB06DBC0F84F279C94B4767CE997202B2C5F095E899E183AE109 |
6FFACD85D5FEE0BF3D65C7907A481A6A8C2676A62566001538FB7567E3FDFBFF |
FB7E5805253646C1F6C0ABB7460EF567A10EDB5E7FF2A2BE1457222DAA0D3E3F |
BF39A877D5B072C9C67967F59499E9E8AB8B4FC31AF8CABA5AEB742C1D7FD969 |
8A599DFBF683D222E839D8D5CAD5D77CECCAF615B2230914541DAA59B5B1DA7C |
CD6FBCEE73977FD6491CC21161E0C5E373D272861BC9807BEEB9E76D6F7B1B29 |
5214FB61A7E23A7649FA2CFB36E95552B4996884CABF495B221D82CD593A30AC |
7F1C4B03E02C922F7CE10B78D250D55857A4C9D52AC4B2293F951655F6071004 |
24DD8FD6FF4F7FFA53EA01CEA7F4589283A8034D61B4067815C7974C444DA4D7 |
520E1205C0499D82A17DC3095D6B0F4285350CC9D14C1218A78E0BD3500C2063 |
6F34AB1393CDB3CE3A737C6CA4223A0AC841D8F30783348B55A19E2BB2AAC1D0 |
27CB098EA48B91FB851E43578A84214D255792C8E08C0416691127903257E8FE |
6AA6A989A22299096180E42F2B3D55B88462340884249004E8EEDA191599A346 |
2E2989849200FF5251D486A1A202AE2385F881005CB1AC11D36A28B2EE07F2DC |
ECD2E3DB77EDD933B7BCD4EDF4FC5EAFE8C15BD02DB178CE5820E645294FA411 |
E38750E909F9726565851043CB2F800C2E0212219006FC956015C8E6A5F7C7F1 |
316EB5414A01B3A432F035699704B7801360773F4583E964E0C5E73EF7B9FFF4 |
4FFFC4E712B912C5C418D1908F051F563AF45FFAD29750AD665224BC0472A794 |
7BD3738A2AAD942C0F3C49A8D6A10D8BE614157FE1CDE5A637D45F9376836506 |
474DE421881E51116E02EA7AB46A69D86B9E9A93706E156788F2F8B86F8CEBC2 |
08A9D4C7832C159664CC3EE845D04E52C769C6A3A6715845A510773E6C6BC36D |
1EB89307DD433E2E2ED0FBABBFFAAB37BFF9CD44B1429FA839116E489C8B544D |
1508F9074582340EF96E307DD4AEF49ED215681378164230A4C34E64CA10A325 |
380D18E0FFB7349D1E5CFEAAFFF2F92FDC2139158119955B03A927C20C661110 |
EE8941FEE4EDEFBFEDAFFF4CC09566B251B5C2415F3C7A0CA05FA490423D6C9B |
69BCA24C25690F5A53CDD55DB102BE54EA19C06EB44CCE44C19A29C342861247 |
96542F87CD279E38BF67975ED573531EB81E3ED1CCB47346CE995B999F55E651 |
1833163FA10AE201388E99C56A32A56010C20A2B31541D06435F10A7F3115971 |
E637E9192430884733323CA5AB411184C093CFA5A024F5C96745F62B1EC2B9B9 |
396EAD5156DDC86F43010FA4741C13C5D5F7BEF73D0A6833D835174690A82019 |
8053454A4175EDE73FFF399DF617BDE845DFFCE63719520C953CF2B21E6B7390 |
D6E886B4E84F8E6475FC3807F122766B1309BCE52D6FF9EE77BF8BBC8B85BD5C |
EAFD2715D5C56BCC9A604470B9C89AB334171182E9C699679EBAED842DD5227C |
8FE2C1F37B59863480DA3DD24FA0C826D7B0912420C71C17F2B0B77D4D48009A |
02850D5E541D6468910A6CEA4415E8409EAC79921C0AB8511DB5E654D590F662 |
4D2E0A0B945C80D641224B22862C694A962A399E50D9C91543C0E2E9C209A3E5 |
6819C505685DAEC896A6376D73C4D06BFDC46CAFBABB77CD3CF4F08E9D4F3DBD |
BAD289D752848E69643103856139060E4FFA3B656D52AE0B31DCF7BDEF7DB7DE |
7A2B776EA1283F9F6FFA17591BC51238CA7AD96597E1B748972456CB02609D7F |
9F380B71E772290337D7E542078EF7AE539DD88BBA67CF1EAE6263CB1D0F0A3E |
0829965472C665E302BAE39031999F65DF20512F29D4DC4C953BDBE0B7F834D3 |
69A1DE7050AAD326764CB030E4ECE2BDFDEDDFFEEDFBEFBF1F86F81F43149335 |
4BEB9DEF7C271A675EF1816190836C113AFDB49FF8201481F7DE7B2F2E19E910 |
978CFA1105D289CB94B3AB294CC235C9381AF214A44CEE8946EF82B0D258BF5B |
931066D159660072AAD7352B89FDF1D191F9E5995C64F0CB2393A7DFFC89EB2E |
FDAFAFABDAEA4280A2C218A956A80487412C28C1A61A04838AE365A11E291A9A |
C09AE5E629CECCF051FC6B83C4B3EA8EDFEFCB9236511F5B5D5D411B42ADD7EC |
D474177AF8DC3C16FDCEA6C7275EF6A217DFFE777F0BA6F2F257BEEAFEBFF986 |
0959475242431401E6431C2D0EA5E0CF53B93C2B896A063952AAA065BADE476B |
1E59765A436E91A23E96FAA06450007B69B693FB2E67B551F66099FC8F7A7E38 |
4FE1991E42C6AAA28A302895C5B01F158FF4934F3E490E40D233F0F0105221A1 |
427DB2F850752763D551362A0CD32EA100BE3DF3CC33FFE11FFE815324CAF32C |
A72C53570F8669E164103235B8EB2DD102B391B2CF8AE04B29C44D2890C7DA1F |
94649B376F7EE289274892517AF4F1FB9D502A2D3EE8CE3BEF4472A039107F26 |
2A63EA63BD4D629F29978615B55BA23D0C4A02CB866D5BA74F39E5A4A90D138E |
78B582498511DA6B28BA5594044263CA648E01902545B4CD27A99C8B82FFA25D |
2B9E95486BA9A649885C1B4FA09626B21A2A9AA70ACB403234D0CD58D5D1F248 |
F1579DB248259423286C7359121DD1842490502973403641AC14ED016448A8D5 |
8AD39CA139215B8656370C94049558A977DA83DD3B671E7A70C7638F3F353FB7 |
E4A3D590AE05498E25096068CDF0EAA89A1A5F0FBE572AF3A32EA0286FBFFEF5 |
AFC330A185BB6E91C793616699B3946D704A59FBE0073F8852819459D249C9C0 |
24FF38CE87CA0EB9AB17216EE2E3C805BFAED1423980C9E444EC8F3A37E17564 |
B2381AFE4C2A18F52BA5D42096049C577A1C494039D75CAE4C1E7906C0A0EE69 |
8400C179A8149829D7FBC0D048A72F12BD51B2047990089A09EFF9C33FFCC31F |
FCE0071424C771F022AB3FF82F05C0E99531340D6F7519FD18F7938422D73FB3 |
3D44DB4E8C83D2586915640A2021BDE4252FF9E77FFE67D47CC93185D6090A12 |
1A87D172E8A1B621276186A6ACADD4BC34FEC4B5D75FF5898FE6906DD2A0A7DB |
1D3F5173B59E7B12041D90934ACD4A4342D7610C3BDAC6A9D0F41BD6427FD548 |
3313D4D436DC60806A9589FA5192E98A99A4990A6A73B43EBF3C3B3931BEBC32 |
9F0A6846F15C90B41C1F007110FBA74C9CB87761E7ED7FFEB977BFF3BD1568EA |
92DECF3BAA8D2BCDF97CB2EF4EF447046759CA022971325435124FB40B76D228 |
AE55C075BD2412F92676DDD46A4A7B69001590970497C03376C10517E02B4B05 |
22BD4FA521C73A3F9CC84E6715F55F7C8324FF887596853DD123A12E53351907 |
24983BD39D5CCAC32E23725D90EAC6C88F0C8A85DFA5C3C3A2AB0C529B1715EC |
78E44837A263801444EE29024247550FF9C03DF7DC838BC55FC974204B1D8A28 |
23CF9C5026717A975C72C99FFFF99FAF6BEFBA6E7FC86258330D8B1CD0E3480E |
6E5740791994A44E0200451D121DCBAD32ECB1C47920504A3F224980876C64D4 |
3AE5E413B66EDB58AFD74C55A47F16F91821CA00DC4F24F9C2FFB366169116C0 |
DB478B2FDB9BA4C9861020BDA0311047199E27A1834001EC9CA218880C3DD674 |
516D80AA36EA648A8622974C04056D001975932C06D1CA06751053B448C273AE |
582806D06A504588D1409D48A22E65E2A55774AD66680D457324ADEEF6E2A7F7 |
CE3FFCD0CE5F3DBC63EFBE83855D96C3B1DD9779093D82D134E9183D1336991A |
844129A78D933BCBC5BDF845FC97380B9E1B9C031E1A525EF04F975E7AE94D37 |
DD445E4EAE9CC4B7883C8B90A299A1131F6454F432A4D73A49409E1CAECB2705 |
0A8E44EBC4A38CB7511B556A9BF7AC248134EC180C47F6AB61740AD2F109681E |
AF20A9FFC11FFC01EAF578BE298F8D76809541728CB0C2C23F90D70BB533D2F1 |
F122A957E43262271B8AE437BDE94DB40A7238307A010CFD5DECEDA5C20892EE |
F44EB9A68F6245940540B9F09C3E4BBE41FA2E85226EB9E5961B6FBC91564184 |
BD8668529CA6C9B1A9D9A5851832D5D2E33800152A923AF0931CB4BA5D1978ED |
71B4ED42BFEFFA90AFE9C56CAE118B5490DD8F8FB8BE2BF7FD9A61F6F31029BD |
62A80112BE27BA162BC2EB04959ADD71DB535B46DB4F234793EB95461BCF3D64 |
B92AE1433FF0E10F7EF6BA3F9D18D1FB2BAB96ADF5F36A94CA10754CC0D10FA3 |
8CC8A5EE8F06C8A1A1421A2909D88ADACF12B4A2D10648713C1123D02A52D5CF |
43DC59170668B33BB668D9883B89E7B9DCF8E5F81157D227881D518E5CB99B05 |
0548391E43185CF4456A1384470BF92FE9A02447CBAF983B26952501CF871DDA |
FC2BD7AC917B87AA7CC92E24968A93C4D551A90423BEE1B19C9F9FA75F9190EF |
BBEFBE7DFBF6B17BA0EC27283304E4F278D2086AE9A83B832B7AFDEB5FFFA31F |
FD080727CF3E7B508F7A3F729557BCE215680D107A2B9926D2B0D319990B3855 |
9CE4F5D75F8FDC862510CEAF2272848A8FAE8B76459222E782C5C086E9D6E9A7 |
9DBC617A1C15624B5387E67F2CAA63044585C56372D2BFA83C8A5E060383B065 |
C0A1D75841E24CE3488A454D6881A6291A92656A1EA2816A986098AAA9199A8E |
93413338D454813BA4E9321A21B2E89013004A803C4D62240D01DBAEA826727F |
341344A4CEC0C359442C44E99AA9A88EA65464D5112EACDC09FC7C7EB6BF7DFB |
FE871FDEB173F77EE1204A8F593D54AEA8224940E1F8AF7CE52B687091B382C1 |
3D58CCC2B0C28B3341F96071AA036D11D72B90F4A611F81E3AC465487D628E77 |
DD75172AF5A4D552A90E8E836440DAF45125013B34F834A02E83F3C71FF060E1 |
77A9D887DA02533BA767EB1D2AD339FF4A64CC89B3E47261C9C4DE153602F8C3 |
AE00BC8712DD883B739C03862617511D6D17D755E20F9FFAD4A7AEBEFA6A829D |
A109703F1C4673A4F4734E462C7B54B90716C90F4A88A4FD67B589B1EDC8ED8B |
D7CB8D418E281EF44301AB9567E419ADD70CB7179A260C5261209FBE79F3CEFD |
075245F8652DC7AAA4F2525F9404E2E3A8250ECE84BC0156BDDAEBAD82A94F57 |
1A6FBDE0CD37FEBFB73AB696F7624F05CD90622F6F35474572A19235C76AABCB |
3D71E22A4ED4EB6ED83435E8B67B5D6FD3746366A693E55AAE169D4AABC6A01D |
579C7A26055EE8A369B2AE7E6AED57D4ABEA0E049EE4E7554777F3084970DC50 |
16A55432EDBC1FD5AC56BF375015BDDAAC777ADD2C6AD31B643F21C14F1DEB08 |
D15FCB316AD47B3802C7110228E92E7C9291A3E139C1BF1222340793A9F925F5 |
38C3F755F60EB14240B1FDBC04968ED484FFE2B1E4D03169B7E5B616641FE017 |
D182BFFDF6DB714C0A17B17788CE3C2EEAE52F7FF90F7FF8439C241E63A5E831 |
4EB0BB94582F975A4372E1FDB1E88B312569FEA836A1883D56E5E3E5975F7EC7 |
1D777002210CC3752453C9C785BB47B13112126B1C0F2DFBC287A517B10E2D8C |
62A1260B0E059BB74C9D7ACA09A3634D9C80A9AE79A851B324EA0D428FAC5752 |
51713DB811E4F3A53239E9C8D6D2742C22D91592208030889078A5A22F8D24E7 |
9A842F06842410499702024BD702450B343DD415B9C02042BE8FCA4D9CA5C29B |
84367D2EAA0B709374D194499C2159D3945CC593875FB774CD91554B911D5936 |
5167F57D343CB54E27DDB56BF9915FEDFAF5937BE717568A785472AC17C0E129 |
D27939D1853082081D93D4557262E0CF042E583ED68C9149A62579BA91415038 |
1D7FC03920DBA52665DC850E860900F888E73DEF79BFFAD5AF70EB28824A5FC7 |
919109A24271F6D967E36B7EFCF1C78F1527A077512EB0620F3E110325C95064 |
BB8CF4C9250BFF1A9B605DD1D65A76C0B05A9B7387C84EA2C9E44756ED91539E |
2B0C18758BF0EF700E78C0A89B39396AA054484159D2A44BD220948DCEE2991B |
7052CF32CA4FA72E40575D7515AAF3C8C7CB49BA94588C3A5D5E42A62C0FC5BF |
52109BC0B4C9BCA31417FCCA5AFA962A5BF586DF59C5538A6A0B2A40D313A3BD |
76A7074AB36AF5563A9AA546B22A585C10A0E63288D6EAE948712303B16082E0 |
4C8C0C563B754975233F55E1B433CE987DEC891E391B0195A3048A6D5724F9ED |
6FBFF08EBFF80BA7D91AF43A10A39E218B721BCB46969D4B60B75A3D549C7D6F |
6A7C74717E19B57B5471A36E4F2EB50D389C4823A1B121898E200321BC525D44 |
BEA79DEA7CBFAF6BA80EAEF5E4343459D14C17D597A1B98C261ACE8562FE706C |
9B80539979575105FEC637BE210F7B13512A07A9E794C18C8446B909F81E5166 |
704B6DCA534A879D54F83A912A3C23624C8C0B0A33B1CC58CB5973EB0E36A54E |
E038783668BBC8A9485A3F2529D081C1F38033219397C2E6A4B5B07F92BC26E4 |
C0A4491E757FC89BC4889954814FB037C7A24782A5A19A21285542E034DEF5AE |
777DE94B5FC209708712DE7689A017C6C644BF4DDB411A2BF456159A0D7BD3A6 |
0D9B374DD51B15D18E589259C89360241798E82659383170A9E4B9A62C3A8650 |
6649B096A4012E3273B43CA230CDA88C4BA6064392AAE586A9189AA96B569145 |
2A2481A186A2F65845FD3415E5C55924E589084E8980AF244B2A9DA42C8F04A2 |
B526E572A4EAA665D64DA3AA6AB622C400FEA70C7C39490D6FA01D3CD07BF4D1 |
030F3FBA63DFFE59D7F58A264FC76470CAB01F3A2F040F011D6E2E0D23E64EE9 |
3DA44A97B32FC8E14BFA3E6528B16CA099D3FDA45D52491A859B58A7268C2362 |
A66548162E7623C7E8B12401C5BE18798A4E0972191CF61DEF78070CB3A4C8DF |
45DE79F650932FF55F6913484743F1A49340B6455975A22550751BB3544EC0C0 |
1BA8020E7FA5F27A02CFA04188DA89F352092B49114A19A26DE47204CEB68242 |
C1246947E44792956E103596924459866491FCD11FFD1101A332C201497D46B0 |
218D92F83ED901A42D96AD3AFCA1296B3E5AC2B2E265A9A41B1972CE04B44A4D |
EE7B464DEDB96D59552A6ADD1B0C2A8ED319ACF20B65B428DA90A81B44825C33 |
1BD458967C477DFD6B5EF39DAF7C15F7B8D51C996BCFD75AF51E8AB15C6E9875 |
3FF09A96D2F15DD1A712C50F8A114991CC4A1E446A25487B72531B35ABFA6C77 |
3F98A044AA195706D0E12AAAB2925E932BFD2C7434338B8B098CD4E34EC7107F |
ACA0C298AA519CFB60009AE6E90017664170D8DD07253DFAF89550AC76505605 |
6E234965F27FD280E41BC4BF721A1B5A0F149EE10468B2B0E948509C80B8108E |
4CEA309D6DC64A816167116EAE476F96DE663AEC5AC1F9E594DAC021E5729D33 |
B5A1E7B746670C353CFC3AB2D6129E5B4EABE3ACEBE37B7B3876CD78DDC8828E |
D397982C21C63EA103CFF8B8E47E603B8698CF5AA880AC334E211746449A588E |
B6616A6C7A7A7264A462DB968810C4515194BFE605C69D2D2401DA4112711992 |
042406D6D90450D232D24C04B5D348F8ACF1179044A35545865C1058AEE9AAA9 |
E2E34C0D557B23444960EA42A3110EA2224E5074BE4C50C1C9323C0AF210442C |
4523218718470039D40CCBB6EAB6D542F3581551045D12350728BA91C39A0BF3 |
D1A38F1DF8F9834FECD8B177A5DDC9D3634A823256252F8480C5F15FF2A7A33C |
20C58D3690B050F860D187524839819D1458D2D3F15BE493610D421D766F87C2 |
074A5E11CA69A18217669DEB387E39ED1A86862A295394824249EE6452B0B642 |
CD9E18FE059783178981BEFAD5AFFEBBBFFB3B1C901AE9E0F89C744FE204BF42 |
D6EEC5175FFC677FF667B40304A4415863B7DD76DB95575E490E771CFCD4534F |
25DB853DB36CEC3F131EE33FFCC31BC54A1941C531BD715B1B18BAB0D67D913F |
1424A02341F038B42D1FFFF8C76FBEF966DA31600C0F49D32D33F206AD5A75D0 |
EBD60CDD0B2359349829B24A7503F929441E723B45B3E34493F3EE51AF6B723F |
064D606E895EAC31DA4A014A16BD91C5CB71AE82654314564C3918F89262DEF8 |
E9DBAEFEF0BB73D58A62E19892211E6FB696DAAEAAD5F26425958D34CBD1E8CE |
02176923574CF15CE8298683F7D79A8DFECAC258A3B1DAF3934C53C115F3416B |
3D0A475B95CE4A1BC7CF7253CA3ACF6AFE6BD7355DBCFCC8D390059BD524D5A7 |
27AD83F32B89704E28A9DF57846AA6E50237A39716F78BB625B15F180E4692E9 |
A6EA0589A4D5EA5914E6A12BE762FC3046A3C7CD1514B492AA6B388E81DC3F43 |
FDBD15058BB42E94A2069EF128C9251D24DBD27D374891852073C107ABB9A418 |
157C6EE8CD3FAB75E98A8BF3C1EB15C70E7ACB35CB69BB013D57D6ED58C8EED4 |
D1F11B22330CCF8BA10E7CA460DD9025986C5516E716EC4AB3E7C6387FCDAA36 |
26A7E60F1EB8EEEA2B3EFBE99BDD10254D3D4A573EF4918F7CE63337A3389204 |
DA1A7CE883577EFAC61B32E998DE24A22FB9D4B483E413711E32FA49E13B0207 |
8CE369308C14C5495C6F3ADBB66E9CDA30EA08DEAEE8861A7B841BB1D6C61D95 |
39B20990F996250189010E17F3E7B0B6286A08F2A2A9A52813C6396B2A0A0329 |
5244D5328A1C0D0D02C944FB4037D026F04D0D65B2C02815FD2C8524880BF4D3 |
0CB22EAAEC85EC453992C589874C524659A2C5A651B19D46C519D18DAAA63A45 |
1D9B9AEB8D3C35A3A4BAB4903CF6F8CCCF7EBE7DFBE34F2D2EAD0CFA476FB154 |
4E9F801282318A01646D44EA9C8C451089C867294782F505D20BD8E10385E398 |
4A04F12B9B366D421B13F57D64A39497463C14390BA150D05338CD060ACDA88C |
37520E069061C10D9B4859C65776D555577DF2939F3CFBECB3B76FDF8EEFE895 |
AF7C25C1054BC32E8CA4298BB6A385379397FFFCE73FFF17BFF8055E4433FF79 |
CF7BDE77BFFB5D566148CC505A08144DC691A5924AC5ADC7B83219177BE18517 |
DE75D75D9C60BEAE33CC3A03FC7FD387840D474D60E8D3E7C412A5D4816E9DC2 |
C53A8D54EA5D4C1F5A2F0969D4675142D0CE93152FDC50922E0E7B86EC5ACE92 |
0839833636120FDC5A12F70682010ACE0E9926019ED230556A4E7AD4EB0A8476 |
B51A2479EC8BFC3A1019A4BA1F4B961EFA1198957AE47B48578E21F9613E3EB9 |
75717E9F60AE869D840112DDBB2FBEF0AB5FFB6677801C27540D2395D49A6377 |
5697905053D13DDC38EDE4891DBB0EE07371E955473DEFC52FFAE93F3F18C438 |
E755DDAA777B039CCF79BFFFC2DD3B9E9C5FE844997AAC791EEBBAAE84C2EF25 |
8C7824C8089F1BC552023ACEA7D871556C701E23F1CB8ADDF392565DEAF423D1 |
B7B318C7D290018BF53AA220DB08C284AEDB3A72066710E4A6EEE3BFFCDCB1A6 |
E35446F61D5C6C35A4958E8FD72DCB0C3C17C799DAB0F5C0CCB28C9243D665DD |
4AA330890245A028897D78B6EB1A69C85665E4D0EC02727C94AD790CE313931F |
FDD80DEF7DCF45C8CB122882AE49A40870B3E7BCEAB56FFEF40D576692F9C53B |
EF7AE73BDE8EF339EDA4CD3B771F00D93650770A81C6DFBC697CEEE0BC6E987E |
2429B26845D9ED778290B07FE46AA5DE13502EC79404643D50F06FEBD6ADC8A3 |
2871038F3A5ABA5FFFFAD7D9022BF76893D887C30C05C536F2C0E73EE79CADDB |
36E1BB719C22B13A0908588668982C3E8A43120B232EC6B1E202B35A660590C9 |
2949A282110CDB754AF990C628B22F1560A5A01425A522E06E256834085C5225 |
5224B40F52594970507C0BA2E18DC86812AD0E24399101CD8248D2047257B5DA |
74EC86A15775CD12A163458DD4BA6E34DDBED25E81EDBF3EF4B3FBB7EFD8B16F |
FFBE43ED76371F369FA3A01FD7C7521497AC2DD4EF48C5E68825AEE2FDEF7F3F |
773262606AC65C84C255CA75F6E5E08132EC69950E5B1741E11024E732AA99E4 |
0CBDEEBAEB2EBDF452E4D1340815D61E4B57658B351FF65526E403CAA861C73D |
A57BA2343AFFFCF3BFFDED6F5378A05C6B86CFA534708EC7E2D2262626D00C27 |
C02CFC133961CAC522F421E712E9C214B523BB07C7C7C9CFCECE723ADD3A10BA |
E358C7FF519FB24D4039DDB8ED3831AA2AE264ADB256540E7B309E0AA1C3528B |
4D5A5D3E44CBA0700BBBFE90F0D04AB8E28A2B84BB4FE8815AC31E71BDB008C2 |
CA893A27789B69485216477146A783F6E068D7058B88C59F3453C9B3F4431FBA |
F4864F7D4133D4A9E9FA81BD2B78BD395A6FAF147D800D6106A44986967D9AC8 |
911FE2D7C727ACC5455F2A52C4B3A8607BC5B0684BF8816081625292F801C78F |
C3B4D952DBAB22811014A8D56DDF4BE2201A9F74161706C79FE7F1AEE3DC8407 |
42B4B4121F196D2F3DCD2311D6336B8341CF1F0C55D4BC988FD0F7910C713982 |
5FE5850688D747C71BCB4B5DC350433F3E7CBF56AC22035913BFAE3DB718C7B0 |
70C750D2889A8AC3392252F15F3126EE49B58A2CC58842C91BF8CF7A5D39D49B |
0DE488FDEE006D13BBA2BA682F15F3A77D6EB450378F035F4C46E09EF96BD7ED |
0A7803D8B0A9353BB38A57705DBDAE8FF34C93288ED6B6A8155B21C4C24DE258 |
A992F7E2200D5C706CA97BF4B842597FE50FA75A509750246D3AA5654CD6353B |
82FD83C2BA3750E9D350126CD9BA11D570C7B19075C75140FA1D3B0128D597A3 |
3AE4A861D549530E4355C350F52B58554C9A17459E41625B86C28CA81100F9E5 |
04B6345AAE5220347D2517A88E72AAE0BF6885A0B56A08FFACA999421D57041C |
0548B10C89666B86613B76D5B6EABA56295A210849906A754D6FB87DA9DB919F |
7C72EE7FDDFFEB279F7C7AEFDEFDBDAE478C0917821B843C8EBCCC52099D98E2 |
99E48B1C1D1D25943D627648EDC82EC9838C8C00390B4A602894774A3166915B |
86085DD794068ADC2F0A3F506200316B7A3537DC70C3CD37DFFC4C34DD759240 |
2E75F05883781A228D90F2CB0FE5A4CC72630318E2EB31880219169425C933BC |
F2CA2B6FBAE9264A70A68431BC0DA508E7E150D626810D10C24C5E0085B2BFBE |
8C82CE6877FF07240173794E20614750398F9EA7C1228A7FA54FD926E04812F9 |
4549A213422DDBDD53239BBABD552F19B426ADD5555F14C857501F06AB6FC8A9 |
F0911430EB89E85D9F20473213C53BEAF548722B6A5D8A351F50350DB76C4583 |
72BF01151FBA3A588E541741613D59F5961B76B3EF05D59A11F462C14B41312B |
DAB2BBA8815EB34756BCB9AAD2683A63EEA0D74D5753884DD93A61CBA94F3CFD |
C8447543A7EF5A92D1CF3B6827D49D469EA85EDA41D35D1545C6386B3F8168AC |
3E8E0C2B538267357FBCAEA47A2ED62F74EA5C4B73116D3642E80B847B51248D |
DC35527559052D89A44C0D00553EC1E0F115A4928E363F720B3D557C23B763E1 |
26CB701F74434DC2D454AB7ED605D1CBA1A280E442F7E4534E7CE9792FFBD6D7 |
BFB3DC9F1DAB4E2EB74573AA5AD5F11217C7A9DAAD85DE414BDC6CC480F605DA |
25C83D70AFEC67BB2EA326E999D5750712E4E79DF77BBB0FECDCBD7B8F25D706 |
59BBA18FA491144180EB45898CA70FC7C7F53EE794E71DDA3B1F2761A284AA2D |
FB7DE1A54AC1C7F712096775A6C8E0670353B1E21482264A2A1D7AAE029A9E08 |
479F8356661E748EDB69078FDFC9279FBC6BD7AE729F572EC547DE5506493C2C |
093824B256DFA1A184AC9C73F6E99BB74C230B364DE1DA4BE2B00CDE4BC5685C |
40548EB3D3BF45637A850D0E6988F0557C3D1BBAD08BEF02370E24FB202F6400 |
90F99365AE080FC899AAC4AA92A0FDA50B9852E46262C1C8AA6C136D1159152E |
26FC626ADA86B86C548435A09A8A6C8A6E978A961B0D5DABF67A52DF5576EF5E |
7DE0E7BFDEFEF89E9DBB9E5E5A1459F9E4E7E11C4146E5A41C67CEB02CA79170 |
890755BA72EEFCC68D1BF7EDDB471841E552407A3D2C71E521EC2D8A1F8A2951 |
6A17BE362E5620EDF5F4D34FDFBE7DFBBFC8E9385D95D916D907DBB66DC399E4 |
457F5D327D70707C10D90A343D7CC4EEDDBB39E0C9616D0AEDD21BA46801B7CC |
2ECBB3F211BCEBAEBBDEF39EF770B1054A085A2C7E11F59103070E70DBA9B22B |
A63CF9FF7D1F56F669D5A79D76DA534F3D558E00F10D2C568F2A09A8C2401EF6 |
B66398300622A45004921CFED0763B390A9A2056413E6DFAA483334FE30F1618 |
FBCD1EE0598EB404925C47A628724C45EF30C1FA8E7E5DCA0D2336C22CCCB508 |
2A48515A45B1FBBD76C56EC5ED38CAA3179CF75B0FFCEC7F8AFB05CE3CF255D9 |
92AA9AA9F5C2E5E60913EDFD0B426BD60102D9C81DBC1F07C98D440402322858 |
B43E628CF4BD7E240FA4A69E774359D5B334C27190C39A0ECEB89FA1426B28E0 |
A6C799E771AEEB115E8AC543A594AEEB93158192ED8A094446240C96C24D0322 |
6BDCC4FBD7D6ABE4858A2D810DD0935AF6B8177A8116ACDD8FE3E3F550178E03 |
81402625E140ADD9C98A27444CAC5999AD5B7A375A11F33155E827E0A04A8C62 |
5CCF90F3D6D5241BA0A0D30C2B8EFC67B7AE960E2B899219388E5C53D2C8C3F1 |
2DD9F2C1834E7EC4758089C9E985E519F0E4BA31D2F37B5A53375B46EFD0F257 |
EEF9DA4597BD235B8AF07A2EE7F8BE70F98D0DE39DFD8BB84F78CE2CDDF64517 |
49A9DA6AF4822E20AF1B1C3DAEC63957ACE8203953062D9534132DA33AC8A090 |
6B0C84981D67F8145222AFD59D534F3961D3A66953477DBA200F29E3C421F6FE |
C33014CC9FC3BA1248642810A53121099F24AC717912066B693605E91563523B |
65AA79CE442DBB080F44B2142BA22A3E2B124C25BB9259A66EDBA6EDA0A842CE |
256902A4088A2456013D244B3A2A1492A42AA2658D2C5B0D45A9F4DDDCF7F47D |
077A0FFE62C7A38FED7D72C72E29B7C9314261C0B3CF3E7BC78E1D04DC81C47C |
CD35D7502748F2B75C7BEDB537DE7823152E52974A46A1222E80DF1229584547 |
6F0A0FAC2BFD852303A41C42A0502D79D8B97B01C918F248505A279962EB04C0 |
3A4E57BE5E666DFC4546D3FBF0873FFCB9CF7D6E6A6A8AD2B7B9271A95865087 |
4882C1A06C4EB67EF0065C2337032054BBF223D080C07D181F1FC77BC83B8FE2 |
ED79CF7BDE430F3D449EA5756B397EF5FC7FA018A0B5E3B37045E79E7BEE830F |
3E48BD9C6008E9CEBB57164E65EF102E1CBFF8FDEF7F9F643F0799192495F696 |
B0AA84EDA5C0A68D1B7C3FFECF7FFCDA2F7FE92BAA5D4FBC48B32B717AC0CC9B |
7224AA25F3AA122153F37C43B1C3C43DFAF5DC973CC3025302E4D37D682830F0 |
5047CE4D30025B89E58A59BDE8CAFF7AFB3D7FEACECC56ECA69B0E2A693DF750 |
714E43C9873AEA99812A99A89C6AA133618C2F79CB890DA91EE2F8A3ADA9E5F6 |
1C3F3732B35CF1204E84A2DC30A7F4C9EE4207AF8BFBD38E7092A84E940E9EDD |
FCD5C40E1D0850FBCB422D064770D211B37EE26F9ED5DBB5B2B46BD1CF83D046 |
1683AA7DCEE3AB9112A39D89CFC571E2A466D67BE900BA52131A1EF84AD3F090 |
69A6999CEB9914CAA153879A0F41207930A29FB875DB9E871E0747A9E6CD7490 |
08BE5D8118E78F7A37AE4BCF707C2B32238807AA078A37BE75DB1FBCE0457FFD |
8D7B9EDDBA9478D2DC804CBF1D75C4BE194586572FC4F1F5B46E2526AED377E2 |
24698B760E60BCE065BFF7F3FB7E6A8365EBCE72B2045AD09CDED8DE3707351D |
3A28CE2CE4617DA90BF85E14154D839A93051ED896D917F9C5B25277529404C8 |
5EFDA3DB04D2B0853DC514C96BCDBA3FB31D28BCBE65E43B89D2BC8EA4C3AC56 |
AF6CD93CBD71E364D5115D1EF18A683236A48D7C88C92397C00BCB31C08293AF |
A9BDF2919F2C4F868E97AC2C0C866EA28C1F4199FE220493A32D88AA7AA04891 |
AE27A6816B909D8A30562A558B62DAA6AE0A37918028D28BE7A890AB592A7264 |
654914072A664D556CD7CDC2D89E9D19FCF297BB1F7B74EFAF9FDC9DA6062BB6 |
5C764138975C2544A512DC7D09993ED23C7B09386ECC3D2ECE39E79C471F7D94 |
B9F0DA9E96E02A491220EF78EB5BDFFAC52F7E91BCF030F4F15123DF321A1ACE |
046FE690C33A195066FAE5E03C3BFD7056C8AC0983010724B00A0A41538F1DBC |
CE0A42B91E823C2784D3C26871A42E9008E4BA740A9BE3CF77DE79E7DBDEF636 |
AEAC26914666040A068AC4949308FE0F9802656E4E8FA35C2914575471C39220 |
3FB28DC1BAEF72C498EAC9E5129236891606AEC07D23518A5B3702A34BF1526A |
2630019BDFB0F5A03A9B8FA0960D63F968FFA995E067C5F25F04B5CDB5D0ED1B |
7E6E4C1FF37A6FC772F83F0484DCF41B37CCF467CF3EE3D4A71E780A46B59A6B |
2EFFA20F0B507D5525304343965AB2DD5692F069377A4028B3CE79F620F0369F |
32D93BB018D7CD7C26AC07F6DC42BFFE1B35A929F7563A1B2B8DC5CC6F78F6FC |
DFB5719E95173A03CDDBB261CA9F6B77D4B4DA37967FD817C816FF8FA18CA8B1 |
3718552B38CEB39ABF3456F376F7E25F0ADDDF78B1EE4C57DCF6AAEA82B36574 |
E9E165F88550EAD5172BB5CDF5A0DF93BA8931DD1CEC6A87F7172EF573C1D98C |
1C1039AAD237A01554E6FFB62DD8EA2B74B9A558A8ECF52218ADE2FDFE7FCF70 |
1CFD3CCDDEE0B8EDCEB85EE9E9A8EBA98BFF288CD4C6ABEAEAA836E8B471FE61 |
555F7D7C29F9B9309294DF958D0913C71F519C67BBAEA0A2694BF9E0A7098C41 |
E5371D4FF7E534DB5C1B5DCA83E480E73F845207A47361FACC8DB86FE142179F |
5B1F58F3FFA30D3E4CBC6EBC9D771C5D4B5706781DDFE3D2B77BD004FBF7ACE6 |
B6D6E2CCCC8862E7DD93F36EBAF8E06E58CA8C7E8696CFB8827676B0470A8E7A |
CEF3021503CFDEBBDEF5AE3BEEB803EDD7C71E7B8C744AEEA68554CFDD6D0FB3 |
113CB50C32CC9C7D64B43E353936353556AF56FC40B8AD85C65D7016A6136634 |
2448F83A7DB238629B401EC24F1EC6B890F323B9412AC9875772E427CDF248E0 |
95E60305D5192D364CD9D0240BA5A7A93915DDB2354347855DB50AF25334438C |
9E091C15219B849D543444D06C59357D5F8A636B6EDEFFD5AF9E7E7CFB812776 |
3CDDED865BB66C41268BAC10B9D8473EF211E4F8C42871BF5EF8C217FEEC673F |
6397CEE6CD9B91A391202509F1D18F7EF4EAABAFE62802F27AE40B975C72C927 |
3FF949549C19580D8615496589CB0E22EA7CC99E65F65C735F3328B28070402E |
81293BE258003087E57E3B9CED53CE8FA462B12BAEB8E2B6DB6EA39807D77C91 |
FD414612672231C616D93DA46550ED28BD5C4AF9E73A499C034A4702DD655712 |
23C573BF0A8EC4A4FFEE1EC2FF9A0FC70688831355301A391D35CAA95897FFBE |
4E5695FD7BF42DAA69E2AE15DC528DB2923239D36C2B1EF8B665F86E282C7D15 |
8DA72C30A09AD7CC480A210F2C88A41E24E0A8DA208D8F75DD492BF5C4F420E9 |
C000AAB1400095E440CE74DF6880858A490775E18A1033E2CB0E989E55118E15 |
E8498132A9A72BAE9A42A282119AA754B6EC77E77C3347D68AAC6AB2D99AEFAC |
369596E5C92E44E2B9790F5535034752F24A52356309C711F71B0388337C4EFE |
ECE7DF909B9A9FE1F5818EA2780029D40CB3170575A9610668B6A43D25021375 |
FFE2B9528ED78D008403C89103A58BF644CBA9AC86EEBBDFF89E6F7DF9AF701C |
6DBCBAD29B1169A7C86F1518D14625572868383E8C48B85E71BFE7E27C0CB12B |
D09343A16BE7A0A510ABD0909AAA2FF4DCB8A2F838BE9FE93944F2B35ED786CA |
74B4D2CF405D955C68E610C6D200D056D302BD0E687380983FDA2299C0F48E50 |
E70FB44D30BE02FDBE1AAB135ABCD4AB68BA9B4463C6B82A4C9EB88752C2440D |
18D4049246E1C2EF159EA81C4D19034C05421737E8A8E79CF451EAF749E79011 |
EFA99082B4D58B2FBEF8EEBBEF2E974C8AA8E0CB5FFEF2EF7DEF7B4400E4F79C |
9E9E1A1D69345BD58A6DB86ECF303545022A9780611A0C49029601CC928679A3 |
191BD46507116504913028BE31B4C7E5C32C32CFCAD075B20026CAFC0C06B21C |
1868D319224E601AA896AA8EA3A160D035A190E2E24DCD147FCB91D47391EE54 |
98FB8A524802D554753B0884A9B9B810FEEAD1034F3E31F3D493FB73652DD047 |
AA3D14BE118A88C0B05F36875C7886EC5F63C048CA32A2A1C851C00942CCB5B9 |
0406867D77A9E40A5F01FE4A1163C6827EB69C91ABF6C9F4FBD0873EF4D9CF7E |
561E36EFA6D8EFADB7DEFAC0030FFCE0073F3878F020251795E5370CAD3DAA42 |
E0660C9CBACAB795E7464F6465622D5FA0C851631C2A6A41FC277FF22738A557 |
BCE215F7DF7F3FCA894F7CE21337DE786319488062D484FD4075616446904CE5 |
9248129FBCDB3455EA1203436089637D1850884AE7A84E07779E98384583E81E |
F2C8B1D64F09C18C935CC6D3A7B7CF6392DC6D341A4875737373466EB7265BB3 |
9D83A8EB6D7CF519CBC66A60B860669078CDEE48FBBE954BAEBBF4DE07BE1A6F |
085C2F30352BB643E740ADF7B782718CBCBE956E8C3A28B1724D6E82B4430D7F |
28325B6A7F584DA643AF1F39D54A6078E6D3CEE07B82A18FBE66A4D76C231F8D |
7A3938B9B2574B7F1A431F1AAFA987939E1FC49AA2A795D8DA5719A08E1F80F3 |
87B6BC2DEF0F7CC7AC0C54D7DE5FF17EE8A2AEEDBCC4CE37275E1C69B91ECBD1 |
54303DF7373378FFE60B371D520E66293297EA40EDDBFBABE2B93E4C5D30D96F |
75DC7ED068347B52677C656AFEEE59D4FDC75E37EA8E74FD2846028DEDA8B530 |
BAFAED651460A89B071383544DE3D51C46C1D86B8975C550798583F3E9753D01 |
2C6F46E3EDC9C5AF0AA2187FD3983FEEF6FBBE695841E46F92B61CBC733FCE73 |
E35BA667B5195CAF9E59B8AEF471C87E2C621EC6FFADEB272B7D3C5AB104F55C |
DDA527FF5F849CB4FAC715ED2479B5D3D364311F6DB711FFAF10DAE0FC671BEF |
6FBB7D1D0CDA67FF3B0370C07A8989FBAF55B4C162288D00EE9BF78F627FEC97 |
5AC629AA1BBB99A7A495A4393FD2FEE60A98609F673967984BAB6D11F446EB62 |
B6D9451B2B83B1D78F761BABB99EC7DD1C8FC1B1E6533D54EF7F17051EB45EDB |
CC36C59D8EABA97A53AAF576BAC1C3013C0D7A62C9281D14545E4229C9196497 |
BDCD54B049491FA4F0C1301DE30D6F78C37DF7DD4794C202A05CDB2C48FA8C33 |
CED8B973277E99B3534E38616BA35E4175DBD4955EAFE3542CE4EC94274ADC2D |
1FC23995DB3B940B0854F9B06BB5240644C5C01A2B91B22167C98E900439E7B3 |
163F488A94C7B930853C544C0DE11D92345D56E5D43015CB960D5D42E66F6828 |
0904F640D1A3584A132109508146E3A0D0683545D50DC3F651126442126C7FEC |
D0934FCEEDDC79A8DD179B42393C1420654F3D6E1997DDC2D077C45A36810211 |
9608C18F502A0EED0F972FADFB500881581EF54B211E7DFEF9E7134428377E59 |
8770F7AFD1795932415132463D8ACB177186655E59CE982C737679D88D80AA76 |
393DAC8C9F4AE78FCACB29B9964E21A593B1AB84BA5A12D010727F3A79646D40 |
6127919E42D2911C62C48E71045C82E89B547CB80716B788910A74527C348D80 |
9BC9AE2A5E4EB96481B839A57E92E544051FF844B49DF10A4E8F441777A69387 |
F8EACF8C6130B6200C01CE08751CC727890545CB6BE10F74C3348F7447336B6A |
6F50509D530448F144792D3BB5CFDA78E63F1DFA51A089D227A1B89A30214DAA |
BE2A701A0D7F190A5D52D223396A2523D5A41A41E8C9BDBE33181D6DFECE392F |
FECE8FBE33956F9007483FA9DE92F70733C21D9148B9998F24A3566CA119106A |
835528B2C57467900E9AB1782EDE8FD7DB462F0F41CD45BFE546D4AC66D504E2 |
48F7DA46370B40F40F9C529483E6583E3600F78B5FBB7DB7BBF3E31FFF446FCE |
57C76132D854ED553BD096AAE96C207CA7A6822A7D309A8D199181E3FB4ABF83 |
36860635B5D68B7BA66FBDF3F7DFF98D1F7FBD0B2B9EB055E0B7FEAFDF7A60FB |
031BE469DD455D3D48CC604969E326548C8A9BB83CCEDAFC91052B76607BFAB2 |
3502233964ABB078C2F3B73EF1C86E399533339BC8276DDF0EC0C7F9AF685D1C |
87D63B0E137A8066029265B0ACB671BD74FDCCB1B32EFFE3CBBF7AEF3DFBB2DD |
07DC59C582DC450B2BDBA86FBAE62DD7DCF8A737B846673913153662FF95A8E6 |
D7AB502DCF474DC5BEE1F8E301EAF8CB2E74BC9A5FA0742BA9964E291B1A8306 |
EE4F6A858B89D0232DD5F273FFA8F3F1CC81B122D685E35B63DAF9EF7FE3273F |
7173CB6AADD656C569E98114A9261A15528E0B14E1FD0408381D8F1F12D78103 |
07CA90A5302C8182A1CF869B7CD0A7DC1B718DA2E9B81307246687043E32DADC |
BA6563ABD548056BC22F64867E0443679D5D1E925CD935C47E55BAFFC8242291 |
30BA864F37F411519DC13A59B2E6654A555954172720FB92F00E09943A4D57EA |
6681568D224113D2A508D451745B8488F354A06AC54158C4FB0BCC22A39EC479 |
94EA41A82D2E054F3E35F3F8AF9F3E3433DF6D2753535384FACD209470A4E385 |
C3E965BD927FA68871B9CDE9BA282EB1C5B55A8D52F5352B9530CCD1647CF37F |
834D40EC9542D0A492B36E4BC9AFF8575C2603103168280CBD822C09D040C199 |
2067BCF2CA2BFFF11FFFF1A9A79E6200C8B22420AFD1D8D818F23E926AB41B8C |
5C74DA69A7A192F1DDEF7E17C77FED6B5F8BA28E241C81F350F10B2D561EB657 |
E5C661DBB66D5B5C5CC499DF75D75D5FF8C2171E7EF861EAA080D609F979500C |
A09546E85A3831CEC73D6C940E5747BF52649B42E2640FF19D380D7A28D31219 |
88E42CA222415CCEC68D1BF11D71B0442EF5B683A1FB8E0E06CE137F5D3316E3 |
68CBA68D6F79E3F99FB9F9E60AE8459679E280BDCF7421A83B5043B5A693CDA0 |
12095A1D7A0A98AB5A3EAE86DAC4F8E8BEFE4E518C1C6B72D2C8AA1DC9ABEAA9 |
914294683D5063C8CC117BF34AB4474F47A54016D76DE4111EF8DAC6F1330EB5 |
1F83B051C9AA010C8C0975102CC14081A48AE32BE9682516D743A30B7288E3DB |
EAA4070721A86DAA6D9BEB1D4ACC0168C8D27588F1FE15BCFE377FFEAD0BDEF9 |
26711D75B258ABE81BDC6C3F5EAF412B95A281BA24E62339B267674D57F3AA72 |
287003926618ABBE78AE67E073C71BA7F6E7DD46BD3AE7ED11F70FD7AB0A8E6F |
86E0ADAD2BD6689EB43F8A8A6C704EEC8F5C81810EA3112CCB63FA949FB8F958 |
F29AFFF2EA7BBE70F788B971C5DF79781CB4BA8A7549493D37D10A6958B913A3 |
A451BB621C1ADF6A835FAD42D30737AD46E6A8E11FECD6AD4DDD782F8EA345BA |
0499677568FFC5FDF50174CD2A344049E366100C9671FE724FCFCCA5E9B1B37E |
EF9C97FCCFFB7F7CC8DF4BF76F183D6DB6B31DC71953C757BCC5A8E243EAFE0B |
F331571BF6B670355ABBDE50A083F2A499E5FDA2D2232B4E4E96A02D208BD0B3 |
1096856A4F471DCF361E4EFC811A961083E5BC6D6AEAC9CD54A82538A5471ED6 |
E3C99541EAD8B0072CB446EADBB66E1A1D6DC9F8EC04B9522EFA111CE91918D6 |
0C67254F0EC033B8398B84E1D7C9AD545C911991A208151CF915FA288A519431 |
A7280664050560AA1B394A828A168B58B02E21F317558B6BD50C683869F86F16 |
4B4110A571A229E21EFC432219519CA19DEA87DAF272F8D4AEB91D3BF6CDCEAF |
743A11278F3EE739CF79E49147702B71430E275795D24838FF84190DC199ADAB |
F63A6A2CF49956823404AA2D63E330DAC4B39504543806C3808434C4C3A22B17 |
5D74D157BEF21572F8E01B4786C530EEBCE7340E1B34289CF04810E89B545454 |
4847C287D0870250B4345C08D51BF262B9B3DBD6AD5BF1A492714ADD0DF166C6 |
ACA7FBE945201BC541F0B9D75C73CD2DB7DCC2E5F2788E693904DB476D760849 |
06AFA0DC22C0EDF25ACAB940F8334AA61D3B76902940E10A8EDE2397C7295D72 |
C9251FFDE84709AF94402E694BA912E7ECB3CF7EECB1C7284ECEB3257F51396F |
EAACB3CE42F9F7FDEF7F1F09F2AAABAEBAE9861BF07826198C8D4E2EADAC2AB2 |
262B7A188560097FCED8687369A52DAC841C1A9613CDA74133C8FAC24E9E3E69 |
6C6666A96811039AA78516B2C8C27ED68B8C4F21B4A19E56BB465FC9510915CA |
ACC88FC19733804DF5E983EE8C70C457ED5EE44191538A5AA41D9A9E11500596 |
B85874725325A8C6F5B626FC12279EB065CFD3FBC57549E46D1A03713FF262D4 |
73CDA61CE06354A82496DA33A211CF5D88446D5671338E66CAC8BC94C02C6821 |
02C92E6AC154319FADADCDFB7A0784A79B9EEB806481D207D5D5A5C9D4EFA4C2 |
185244301C0C3090D0BB7A3C1AC49DE27E4AE257D120D092D53C32129C0F127D |
18A778FFD489CDB9EDED717374515E1629FE1EAC556CC8C2F0AA268E5B1DE483 |
62F9CA5A5B37B44674D78A46FC8A56692FB893DB5AF3F3AB500558864F7CF0BA |
6BFFF43A080BA73CED0F4EB58FFB53E9A174098FD8375D91509245F5043C186D |
3596573BE2BA2D7ACFE9892AAE0F4AF3D7C43E18B11635E2A3CE67600AFFD886 |
A9F1D9D5C522A3174ED8BCE90F9EFBD2EFFCD5F753B4D224DF13F0B5E43E014D |
59435424164F0E09FC10AE303900A8851FC5F908D4801121CB9AEB619597E209 |
1CF1938678C2A363F5A9A989F189515C6F1805521E17D05B4A9E1E05746C9DB6 |
C81FF1AB52480228987E91CA834ABEA0557908172ED3681C3FC838A11B4A5E08 |
94048A2CDADC23E58A5C523D35855F48F4DC162D95B5224F4941A1A7A4B9824F |
4B42B4AEA32C8D152957155DD674900466757FA044A1B4BCE2EFDEB3F8C41307 |
0F1C58EA0F62BC2EC96BBD3260584DC60D0B29344AB8E72472CA0DF0D67DF267 |
F467A7651D35624CB0B7F8E64E3AE9A4DDBB7773DE0E41843E2B49C0F3A117CA |
6180134F3C71E7CE9D84964AF05E2427CA4932659B8044118E40CDFC66676719 |
9F473A1A9054192889368A538948414643932A18280F8A83B41412C011C80E20 |
871BE556319A235EA799B3238BE1186FBBED36E4DAE4DEA1D2878F7CE4239FFF |
FCE7B9F906CB2AFA156FC0853CF4D0431C349687FDAD289582E2E184AA7BDE79 |
E7FDE8473FA25E9878270575F0EB2809D87C59270968CED9B0E128412DE19B6D |
D64771DE9D3ECAB0DC1AA9FB9DB660B19037E24A9006966975823E5AD64A0602 |
87172C4917D639EA3FA79C73F22F1F79584D653B75645007A2F324A050C9F4D4 |
8F12BCBF0EB50AD49661314391271A7708688656A53A614DBEFC77FFD3F71FF8 |
6F870E1D0A21C4EBB596A3A68A1EE084E3548EC32C9490799B799C277A2E4213 |
B849890809C3EFBCE8771E7EE2A176BF23BCF9720335DE2EB4EBD57ABBDF1EDD |
387270769E9E0B423C0542C241122B518424379CBF07EE5863ACE376709E8320 |
3A79CBD6D9A7E750A33647F4DFFFFDDFBFF75BF79E74C689BFDEB193EE6FC168 |
1B5612C1772155933813FB6081A983E9151EB41CF20804FE909A829E1B365422 |
3910B9F07EDF4DDC44344890ECCC71A0BA024B1A68B992875290881AEEC3F311 |
A75AD49626B46F741DE78FCFC57D438308E789D747B51154355741B850B202FD |
08D7A58AB0B9B81F4D1B4BB3A22C522B4A079948060DA98EFBE68BA6A239DE6F |
568DBE8FD2C5C47D967205AF9BBAD98FFA1BB74DEF3D70504951A6D80D682DC2 |
FC51E783F3747407EFA7E7D2F85A6EB4A12DF27735B109228D2A469B4414DF35 |
279B6834533DECCACA0A1EFE1B6EB801C9E1B2CB2EFBC94F7E822A111117F99F |
A9135FB9E91B9E6102342D6391AED13FC7C488801B4D67CB962D9B364D1BBA8C |
9220C7372ED28744D23F93655918301C3FAC738F143FCA80B7A532717612000A |
398E2476139171206444C907250F1B1EC86A8437EB7872D554D7C4BFA2878140 |
2B49501729444551AF2015FA03EE6424E759224BA9AE162875929CA01D9BC4ED |
768E6B5F598DF6ED5BDEB173E6D0A1E5819F0A08235D62B458CAFAE03DE224F1 |
32F2E8F17576B9D4FD8EDCF49CD4CF3161060864E181CFA59DFC37E4D2D008D4 |
19957404E2F8A43B205323140D8E73C825E8DDB22420141DE46BAF7CE52BFFF2 |
2FFF12CFD9CB5EF632D470A927F03ABC20B9D4359B56C460D464A852E7160AF0 |
22A3A4C149BB279F2445BDB8009B535A09719E42C714AB47FB17BF4529BFE56A |
6D6A204CE84C1C9782232D33BA828AFFC18307CBE8A15078C3F0AFF8757C228A |
4CCAA625604162FAB42E7CEFB48130AC7E78A6778886958A762B4444C2E9B7B8 |
72FD0D37DEF4E94F554CA3BBB298C699634A499CABB5A99EDF4F45782C15683F |
99940BA8692D01D1090A8FF0D8968D4BFB0E1605B9A8B5CBD59AD3F38A0C9202 |
C15600F8C4729616F5AE78BF2E83A901B252F19F54B56A6ED0CBA5D46CD58241 |
4F5C1C8EB376BF92AF190A43101DBA3E79E296F9D98310A57C1DA93E4943700C |
083DA73516FBD12DD7DF7CDB676FDB7B60976AE949EC83268B5651B99C79C908 |
8A3D255D6D2FE1F846AB1EF63D0813C76ADCFEB9DB2FBCF8ADBA638A3869E45B |
8D117FA583F3196D8CAD7497C4A30D454CAD78AE0C468E0C06121C1FA790859E |
623A7226C5FDB066D7717CA751999F3B08B681F7D7EBADEE425B381A50FD43D2 |
370A48A63029965C5A2FCE1F7FF4421ABFE0F4B1A42BB908AF4446AD1976FA13 |
A3D38B0B8BBAA186B85E4DD21C13178BEBC27D4E62017C6956EDC0EF8BD1648D |
C6D78A725FA3624552DA1C6DAE1E9CC5F155D96A541ACB9D85B57DB674F00B93 |
07B9D1B1E7A3EA7214FBE6483D70BBA022D3D5A25E20CE83D22B00A3D7E037E4 |
54910B8687329E5AC211020D65EB212572AB0C2AE6273AA554200A7FE2AF7838 |
919A262626D044E6A8A1C44C84DCD9EC64A8D5EDCD9B37A124B04C3D4ED0A24C |
0AE53D139521C3B45176E34029DD85AFAC7196A4A8172B8A06A4C20554D80492 |
AC2AC31042A16C2A30F423655CF3CC897D020A18F744011DDF9091696AAE6BA9 |
80A553D0B62DC0EE098F49C6B38B6AA92630781345340F5765532FE27E693EF0 |
033F889697A334913B9D64DF81D5DDBB6766E6DB7E988B4C536DADB08B9C3604 |
DD47EE7B4EE8A4E2D275A2EEA832A0DC8B75DBB66DBB76EDC2B59020618422F6 |
4A512B228EF1B284F8B7D904AC9B97EBA509128A1375D854CC9F01034789C294 |
3E443C9AEC154E1EE5227316066407D039A3A3C9CD3BE94FA42353491A458C39 |
6B938E69D9395906975F3BA3C3002FDDC930F4F42DA40794B5D75F7FFD3BDEF1 |
0EAA655B67B5F0089CCD45DD84E81E8A36E39F088FAFBCA514D8E79424BDD4D5 |
EB9911E3B59CD161B91C8147893696152B4FD22C8C500026518CCCCA41132A4D |
91D38AFC457212C86A92D2710127474ACFBC1819882CC5A253085A0911E448FA |
89405D100C4421C81CE4D30654407745184A5C773464CDB16C809FE61590BD24 |
C39FD1386E3A95102D5A3545EBB782C24416CF4586896C4A9315D5C2D703592F |
73E33493490C890E50A0656E54D4C84AA03BB2EF6623D55AB7DF135D0A6418C1 |
9795C76E98A120C0A12C4D1FC4515E8832A4BF53CF3AF5B15F3D25FC34A6D50F |
7CD506C913EB6D8D5756165D5485465B23F3AB2B2393B6B7E8F9D9E175E932AA |
BC29AEBB020ACE87AF9BAAE62568D000CE677AF3E4C1F979D44B8BB6A0A09B32 |
CEB3A9693DB4784AE3E07A7D9C582A9C3A7C5D9390BF64A9808F9046A6C66616 |
17F17A1613E4124C6D6E2C1DE8E0A0977DE03DB7DFF6673999E5B298B951F885 |
C24C8CF39BE7FCC6AF1F7F3CC852D5C2791A5D3F4C86E3D33EE03C5BBADE0DA2 |
337FE3E4C71FDD55354CDBB23A837698E3738F3E1F2504AB6AB4DD10AF8FD51B |
ED6EA7DE74DA83013E1D8FB0E8759416D240D4CA0A549E722203B20ED451186B |
9A089C7AD1C010028B40AA49CBA42C6AE40C5408B576DA294A49B0C994364EA9 |
93B6A36FD830B561C3244A822C8FA50C3597B546358C25290DAB04A461BAE43A |
D79020A1623652213EA49C1A12AC498261C1C1614950B086B45CB840AB12AC4D |
4FA9D3BD8E46A0869ABE085DA0AD8C2A4B41EE057085A415DD2B4581310A0B45 |
40D7895EC668510471D2EDB9AEE72D2FC728097ABDE4C0A1CEDEBD0BF30BDD30 |
CA445764016AADB08B0CFF45FEF2C217BEF0C1071F24D87A5CE079E79D879617 |
25AB1CABB3843CEC07C0FDD3CF3CF3CC871E7A08BF4508C67C2785078651FAB5 |
AC987CD80FE7D9D6DCD284294AC92F885FEE2DB7DC72C51557D09DFCC432A3E4 |
4148E125459EFEC485D0870BC54BFE406EFF427C937C6878CEA8A723A9EAC4E2 |
39851FAFBFE10D6FB8F7DE7BB9FF0645DDB9891BB16956F3C9D15436C84806BC |
F7BDEFBDFDF6DB39E115D5A203070E5006116D603E6C7B0B8577885A8290E38B |
B4246E7B4BEF82B2BFE81E8A7EB3978F7026D6B2188E96450A431C2732146858 |
214DC34033E454F455D27201AAA5E602F24D164E4C4B8B421F72CBD1AA5ED8CF |
55D4AF33C95751770E030F52C3D2AA413CC8E581F05024762CA5591AE3754371 |
F025F8D92A68B914A8A8DB0A8CE24835643B4A7DC54E932C50425D181CBA0ABE |
74781C1DF07E1172140DE851F1B4912945201CDC6A64C8A61A6589067612086E |
2FCA8CB5BCAA343CFC3D892A95F14157A03157278C7677498C23B4635435A67A |
AB7D038DE6BCCDF379EBDB2FFCEBBBBF2945729878665DF6C3BE169B92A1E07A |
719CA01B0AE345191C9E3F3281024A26C9C24C7671BD768E7B32502B761EA27D |
9FDB863110EB4DADB4E2471E3E57D71B783FCEF31D97BDF5B63FFDAC169A7116 |
E17A95DCC2FBC5FC713FD58CC7875813E3E7A1D80713259398BF6C9B0D7BB4BD |
D4714CD3C5F1E5C4CC1C94C4491C9A662B1E24384FA7A5B95E47120ABA6C561D |
29D62E3CFFA2BBEFFEB21B2D024A38578C33B56DCBDCDE79DC4F5D57C4F52A48 |
5DD5AA39D77CE2BAAB3E708D2959B80FF85C73CA0867D2A3CE676DFE261A1092 |
ADD7AEBDF6EAAB3F75459A874680B7A258B633E1918B855C936391D49569E465 |
45B2FAC0073E70EDB5D7524C8E1B6CD099277396A800F903B575229B95B5ED23 |
6C021886D7F0AC22E1A422655843D2DAB8698365A04D10E5494CCC3A0A448E4D |
92A524064091D798427E185FA8EC5066F5561AA6DF149C5F883545E534532A5A |
2E585296ACB9830A57144902154D02816E8A3429899EC6AA283356E502B74EF6 |
38B147969461EF4C0DEDA454A83E8537465191E256DB6EAF1B049E1AF849BF1F |
2F2CF5F6EE9D9D39B4889A8470A5F91EBBD2C84B430E62920DA45093E7BACC5F |
9EF9A128024399968333AC9893D9C18DC3CAE036CCC2A412DA4199EF94ED30EA |
CC455042380EA5F17017846CD8E5982C00726870230A9407283628BA4BAA2E75 |
50F837D822E5CA2C529329EC4C9C977BC9D249207F0BDB16F46B39DDE099560E |
0927DA198277E58A168ED9E0E3C8BD290D7BE14291D945E9FF482D244BE866C2 |
02214D7FDD7AF9D7AD5BB7EEDDBB974D131CE1E28B2F7EFEF39F7FFEF9E79701 |
9748CFE2D80694708DC87C31469DC15C478793427BB78D2AAD3BD9D7E61359AB |
8571CFC445E20FCD9EB3D81C98557D7C213A20D444E43ED5A61118ED78453263 |
2D00172AA925D7FDD06B86711B556ADD3606ADD09A43E969474DF7C434DB139B |
6A1E18813680F10DEA4CA89A0312904411784EB81309A91DDCDDE5CE3BEFBCE8 |
A28B18775D1E62AAD3CDA300CB4D0B067E3386246F44B2192AF32331AC98764B |
20ACE6FD8A85DC693A465DAAB72C898AADF1B8B1A826955A74F9A5EFFACC2D7F |
51F564CFB29ABEBF5255FCA4278570823EB124D266F1A02E788606515CCFC793 |
EAE22042D578ABA6CFC5C86151D1CEAD8DF973E6ACFBB39EDC80AC0313777DEE |
AA0F5E7EF9B2231C5BD501D4D4CDB3899B9BABCD4028DA4AA5D90F8389385AA8 |
A4E03AA039102FC386AC39DBAA54D40E4A77883B6A1C8D010CC6EBBDD5D0301B |
69342F0BA8F089B0B9803FA8FE485D979746546530270D6AA8BB2759172A23B2 |
8B32A105DA0CC82DC0F1AB4ED84BAAA3D96A3F53D73A88D0EEF1BFC7A21764C7 |
A8C1E021BCE79E7B50252F1B9A5CB40847F64D8361732752D38F95D9CC54C3F8 |
57C443A83B267B2CB9F0856C7D9E808898D1D9F5FD011E69AAF5C509D8B63235 |
35B5617AD2B14CE112223857298BC3A02C0990FFAF51757E04E66839998F2501 |
2D4C9148541494AC1D4512306E73B123B08677AD8961510608E79C468204D042 |
CCF33EEF82A81B1842A266A2A70D4E529C6954F9E3085C3719B8B12F22C659A7 |
131C3CB4FAF4BE99B905642BB952D0066BA3AC9F52CFBCDFFDDDDF45EDF5C73F |
FE3161421C3F9C4BFCBAACD4E3CFA79C72CA9E3D7B38BD442E7593978F6C95C7 |
7117BE876645DC102513D58CE0AF48C9A850531D7939FB1EAFE09B46D9C00D7B |
496F259811FCD6E4E4244E064A8DA55804AE6B5EF1EF9104304C67629E4BA93B |
502A0EA03E946558A4674A02D2B8F9D5F0A7DCD39864405E6AE54696048970EA |
A3C0FE3A5AB57C8C46517CE5DC73CF7DF4D147C94C244E4A33A1AF233D53C807 |
07A73F915F88702638E948BC3E05524593D3A9A876A0959941D7F647569D9566 |
220F023582543DC739E13165A7D9465EE6D81BA5A867A90DD55FEC4222C1A801 |
ED55C15CF5692B98552B71E682695713D5EAF6904185E0394DC9EAA59D742431 |
572602A50366F41B8393779A3BD1F0C03532D63A0C5309B8B31ECE9CAA3DC85C |
930AA44572D651411F6912B1EA8084DC6F4611716625B1533420CCD5D30369AF |
9EA7A62AF5B258B18D3CCA8CAAEE7B22056E433E3A1B0F8F0E5EDB0000FFFF49 |
44415420F75B0D73B59BD452A9D700E8A495D12D6E77055281C524BCDE3A38C8 |
F4BC46BED18343B89855758B16EE6FA9FA2ACA0673AAE12B567AA80FA70DB443 |
6359BE280D2692FA020435C8512E2C18B27037086F575DAB2F9FD9D51F074F02 |
DB69F53BAB0A545323B68C5ADE5BD4A1DEABB8E0A58D0674CCE6697A7BD7BEBF |
BDE26B97DDFDE119FF505D57078BDA88322643776134541782A80227C10907DC |
BD912D8D8CD73A4BDD54D9ACF66613817C19422D87B8D158913B1B56ED593D92 |
018D180ABD92514EFB4959D7C7A2176426946E47D5452448F067D4CCC826A6D3 |
4E07BEACA61FF5A0AEFB8C8E8EBEF8C52F7EE4914790C651249453E07058A41A |
5401D17460FC82C31163FC03D1214A029C9540422F52FEF1BFD1D1D6C4E458D5 |
11DD2B45C3884CE89512242409D6B898BC56BC20FA370CA778D40F172F115EF5 |
5A4302551EFA97D6DCB8521E73B818869D770A6D5AB49C41D1231ADA6845EF1A |
1216993BCC37FDFF597B0F38BBCEEA5E74ED72F6D9A7CF999933555D96BB3125 |
8043800B978417E2102081406E28C6180CD8B8C84D962DDB928BE426DC2BB621 |
260408B9402EF5BD4730EFC20F880BCD5D92D56634FDF4BEDB5DDFFECF59DA1A |
95843CF6EF67F9CC39BB7CFBFBD6B7FAFA2F093CA8CBBB6E93E59612550AE23C |
C65CC2750C366C9A35B3DD71E7666B3B774DEEDE33552CD75C2F886AD0D46B36 |
00CD08914F3E01D8A278161C05475B69C16980BACD84F2CE77BEF35BDFFA1676 |
1AAAB178D557AC58313B3B0BF94C87453883B0A70A85A1C8459E12D2C775D75D |
77C71D77207ECBBC1EF9A0FCD3DAB56B9F7FFE790936886F5DC203FC19481214 |
AAAB7822FFC497944A257875F46336AAFCBD24019411941708DFE1B7863CE0CF |
3C3FE84929F5C94794047A0FFA1F2101C4EDF94FC4C7A0F2A377209EC59A0D2A |
27E8B052F0134E3881AFE219606317E19FC37794FCB966CD1AD698F0596A329A |
E121416FE1ADFCE868640B16180F69D9B265F3BB76551430E2801B5BB06A03B1 |
84D3C857571E18DC4B0D8AA9DCF351D2A7FA3A194DAF95D39935FDB5F93D6FAC |
D02F4D1A4D8C06B5A9E902AD2AD37ED6C454EA48CCC858F1221384E72E272AFA |
A64D630BCBF6E517A8D9226F90AC20D3AC6CBA66FBE5F75CB02AAB1012B1D63C |
42588DD1B218780978BA784E50768470226A5F6403F27AAEF1866654068BB33C |
DEF762B24C191AD9A74FC7F98CB8DE6D9ACAEE26CF4F0DAD3AA9512A37323B73 |
B3898AE38F0EE41766A6FD449A5A75EB2DFDCECF8AB158B6D97162C9AE954B34 |
1ACC523BA4B9E3CDBEC9B1B231651941A69B5C8805838E57CA75BD3A990532CA |
CBDC87AFBDF723175C926B356A7AD2B79B699D86EB8373544925CC58CBDB37D0 |
A51C8DBCA24FDBFEA035D6B2756B76421FCA35662BED74D8512074B22B3C695E |
C7C6B206B5C85A789D9FFDF38F5E75E3F736D15C37EB2DEB532958CF370B9499 |
A3DAA8919D5D5535772BC8EAAA13C2ED0D5BDE4CDB4FB87CA351273355C81AD6 |
646672A493EEB41C27ADB0D9790705917681B2A98FB85FE4339325851588BC16 |
679D75D6534F3DF5ECB3CF46351E20484B5A39E25B48AC8882C72DB93F0B7294 |
DD60EF60178086056C981FCD242195F98AB1A3C635849AE830A9684A073742B5 |
B7CBCFEBEBCB6633A9783C66EA1AA0E2744DD98C2C0916C9455F7C61B46E5852 |
5540BD5237490BED458C17254198FA2981C73060A002638B6250B9AD553B1A75 |
90E9ABDC25555BA099866A59CCFF8636444BEB553985AEADC5E77A7E534523AC |
30F32716378D84AE27352DD6AAC79B8DCEEE3DD3CF3DBF6BEF9EA9B073880ACB |
45A5EEA2B973100B6FF127D19D8F6116401240B7922FD1324CDCCDB0F55EFDEA |
57F3DA073D38BF68272FF1E58900D8BC79F3962D5B9832D80EE0458512CAA731 |
5F43F92EB82D3465448945E04BEE133EE32D56AD5A259C0E07BCF67F28EF100F |
121E7908544CDAA5975E7AEDB5D76260FC2EFC0AE80CACF57A811D2E09A0CB4B |
EE29F5AAE731CF7822E401BFD1DFFFFDDFF3978F3EFAE8FEFDFB59C541AC02F2 |
EF101768CFDEC29E39A2248836758271C3B30A071AC40CF3D0F7BFFFFDBFF8C5 |
2F90622B1D49A9278699BD9E7AEAA9CF3CF144D5B6533A35BAEEEAC4A9BB8D5F |
D3B994BA87628D1575DA670D649BAD2A5D48CB06D213FB1C2BE17733B472CF8A |
BD5FDBA502B55A70F259A7EF19986A8E16E952F7C4FA692F267E67B712ED319F |
3ED229BCB076EE75BBE8067E9FCC717E6327EB3DDD949E6C389B56F43B54BC66 |
1FB2E078B901FD443D030B4C01C60D9FB37CF9725612A5A865DBB66D1B366C40 |
AE842227B7F5FA13CF78F2AF9FA5C17A625FAE1573692E47DF3C40A5583248B7 |
33A5559FC81FE82BB5EB94C8245B5AF3C4A74F7AF95F5FF0F598ED9BCC83DB6C |
47E49CB59F3DEDE5C1DFD13C65627DD9662CB1D7DAF92D55EE101B20778E826B |
2CBAB79B9C1F6D262B5AB3C996F8B0DF8E5919D3EB2BB5F6D729A5671AEB3E1B |
9FFA9A59DED30A627E86FA6A1BBA34D61A2BAD3C30B72F1B3BA9FAF073F90C0D |
ED1BDD4DC538DB9F03E96EA37EDC55AF9D5F9828D7CCECF105AB569CFFC2FE53 |
66623B02D3FBFCA8D7DC6F959DEEB896AD047E2953FF5F35DA479A9DC8D78CA2 |
5EDF78E9795F8C7F6521E68D55D315B7E18D0E57F497DFF0F8E8B3BF2DEAF18E |
DD39D5A567CB9BE2747B27E6E4D269FD8FFEE88F9E7CF249A6B1952B57F24E44 |
B3A9A3716A0A9338809E226EE4E825A3A3A3CCA6CBE141A122C81B138560D823 |
AF7BDDEBFEEAAFFE8A35C223DE5CDCD10297221502D087789BB0D46793974917 |
A60C5308FF7410186E91D11B8ADF859A9A1B765EB65912B02C8A2B374EA8B2FB |
ED107774D1CF8BE800A1BB6A2FB76449A2A148027C804DD053E17B31E75EF2A8 |
A12D6A2EB03A94E43095CFC7A310C4D4F04D3D907E96EAFC40353553136AEABD |
2235259E5DEA30A35010D676CC8EA7E276366E654D23DEAC59A562ED85975EF9 |
F56F9E679BA0D5F69049AB32B523C8191401C3E195E3C98D06938FC12EA535D8 |
929A03F15708CA29B3095601240CBB44124011860B28EAE2871E8A8E317273E6 |
7AEBD7AFBFF1C61BD9CE409E1206C03B190D234143A890121A65D5986FCBEA0C |
BCDEF018FEBEFD848F2609D0F93D085B5E47736A79E40F3FFCB0A4EA335DF238 |
D141E18892400C267CC9160CF36ED03AF362A4F0471B944B77876841DC1BDFF8 |
46DEAB6C4B7DEE739F13EC58ACD4D16C02C48DE15C92843A1C52CF2C72178DEF |
9738F4F85A5E8E99E9030D471B4E1033FC36F9C75D39F4FCD8FEC2F379E77EBF |
45954E2C6EE7FDEE79F9ECBC5BFE5A517537B6695D7670477981EAC1D8C6130F |
ECDD9FF952A37E9939E00C68B7D7E7FA1B0AB8E6758323A7E9130FCFD227CCD1 |
7662EACE5ABC499D982ACB3AEEEA753B1B3B1438FB0D2A170EB3C1A609CFB060 |
728018A22E4A50356ABF9169861956CA81BEF08E53FFE867FFD753DD3D947E80 |
82E3A97E462638AD465F20FB256AEB34B469CD6CF3003DD61E988F954DC71B26 |
3A40FA70419FAD0E59F979A3D3354ADA47E285AC33FBA84F732A0367CDABD6EE |
7B66CA0A725D32C6D6FBFBC60F1C3F3D3A7F77B7DDAEDA89A068E78DCA9C9722 |
AAA5683C5836694F5DD54F899D5E69EC9E919BCEBFE5AC6C8BAA9712EDA7B5FF |
92DCA53773FF63BC32324977D3D04C6A8E3A6F7CD389A7FFB7F73CF8E59BE87F |
C428A11D777D67673FF5FDEDB2C6E08473371B5266DF8D41ABE1D14DF1C0EEEB |
6A33F92BFB5AA56EFBCE26F9FD997E375159D348BCD2D850A57A9CEEEC582DBD |
1BF7AD0B285D4D680F060BE3EDE327D7BE7C67C7684E903FEE5D57D4DCB6A862 |
147AF9513773341621604120126126F2A79434C9D208F64934B677342F2EDF41 |
8032B12FC0B8842FF19790319215CD527FEDDAB59A600741690F427B100E19E6 |
AB7C592E9BCE645261064E9898EFB761132CE297E9BDE070B088382F1DA9849F |
F604C062741A36012441A8D62D4A081807265A45A95C55350FBA6AACCABF9A0E |
75350ABB98996C2493EA786C8690D3E11D161B1A1BE87C103E5A735544C18EB1 |
30B313193B9EB1622CF7E295A2373D3DFFFCF33B9F7BF6E5BDFBA79A2D179280 |
DF236A16A00B157C2FD18C4614191DCE41964802904510F614E53F7977F10778 |
60C0A6794501EB1F657651EF102846381ACC08FE57EA9F61D14B18A050280041 |
8F1F0D9FA3F8D60572045943FC0AF7DE7BEF05175C20987AD2750011D73F8824 |
004D0BC62D8F8165D57DF7DDB76FDF3E0430A4D58F6AF61BD6B2D1D123C648CC |
E5973DF1C4135957858E0F1217B83ABE76DDBA757C26DACD4364E2573E1FC16A |
BDD775072AD8E156F6C1A4BA30F42703402A1ECC6A8801097BA0A19058D9206C |
AC915A02D7213B93EA54326E723ADDA473880A29D21AD666E5EA74FDDCC0686E |
FAFDDE582379E0F1E995B59836D0DF58A83769BA71D3007517BEF8970F3EF3C3 |
8967EEFCCA4F6FDA95DB6156EE76E97C9B4C3D714BD3F1C9E5C93E9F06560DD6 |
2EEC763341F2535ABB594DACD3E3B37E719B723E3001BCE52D6FF9D18F7E043A |
E13DCF24270E4CA4F94AC35424B6C156D07A6880E374C2582EF3E496A7546F83 |
F56D8B6DF65432736EDE6CBBF53B66BC38B9570D50AA41D7B5C76B54EEA34687 |
F241A29431698E1979A2CDEA45B23270E9C842BC4877BBABF61DBF9FF67B2B1A |
54A25C4D75C62C6EAB52276EB53BDDBBE8F8EEC81E673A3634D65898CE0C69B5 |
4ED22EFA414A0BCE6F74530169697D53771D9DD6A2D97DB7EC8FA7529D4B9B5A |
3B30FAD3B18F25F441ABBDB1E8F5299008AD3B1238D3F65546470BB49B077D6B |
811C2F7121151AA7ECFB7A85CE9AB047CCF67A772477C25CFC25EFFC708DAFA1 |
64B0A699DD9DAD9A836BDD572E0CD88219F96A6EE6652348F9D9EB0DB7DD696E |
A9939FA06E8C6EAD66E7356672CDBBC96F2B47E29E3D7B783E51F202BCA96896 |
60F4C0AC629302920BCC169133D8D0D24B15B6B2EC234900E17504111E713FCA |
F94BE43DFC01EF7AD7BB7EF8C31F62EF083E314B054D4E0DC3035AC8DDD14B52 |
75914CA7538303F96C369DB4177B156BD4852458743B6A8BBDC9F8FF7807A452 |
48028C580622097A36412C6213F4125299A7F724013AAB86EDEBD46787424546 |
F3C3B6C62A6E8C6C229BD57E43F14D4BC9AA830D90156BD7152E453CC1A3B64D |
23E593E57BC6D46479EAC0ECCE5D7B77EF3D303B576EA075AAA99173B0A94B10 |
B61106DB956A52A85422278E96450A0E2EB31A8D3D48560F7234F543119CE8B0 |
88316A5985830F0F0FB30C97F41BE8AA7C5B66ACD8DE7C1AFF1945D566262BAD |
8F25A75EDA55027EE4861B6E604D19D202B1AF3F8824003603B3187E0A6056E1 |
7D12E866C4D6B443BB951D314E00DAC05B48A2543471480F1BC8F0DDA03AE12D |
303F14AA69A2082333954FD67AA82C47B30990632308AF2215B66EDD7AE59557 |
223D8305C935D75C73CF3DF7A045B3A04B512FBE1546D45CCD57900CF96EA2B4 |
AEA57D3C1FDC5EA2F57C235209817ECCEF739487878F05EAAF50513F39FDD07E |
2BA8153F426F48F7FFFB2D45B247ED86D3BE627E2847FACD83F357145DC74F5E |
3BD2CC4C276A63F15BA6CACD207B5DA2DA678F9C5598FEC6CBD6E599FC2BB5F9 |
BB15E141EF8B4A7A213FD16FC0FA912F47BDB8142F1C9FC02451D092ED2059BB |
663ED539A571734337F6581EB537929530BA37784923A97F32D54DFBDD7B1A23 |
9581399AF588B579BD917073A98C37DFAD93C972C23A3FA54F5ACE374BF946DF |
BCA65017546F4AE61985802E20DA4E746186BE59CBFF2A51325A9944B2E17613 |
6D636834E7B5F57DCD69BA918CEBC8BB52A3CF0785856433B01B571473E6E995 |
1B2BA9F414D53BFE8DA956D0C8DF3AE86683DAC282D61C1DCECE972E703A1E59 |
5BB38598E13BDDB90D8D81D8D8CC8DA5911BADE681A6FE60BADE4DFAFA54EAFC |
5CCA4CBAF737CB2D7273A5FFFE86F7FFFBFFF38DFAB69436E9065FEAB01D6775 |
1343E7A6BBBADBFC4AAB5E31E3B97AE746B2CFA7E415547C90CCBA29D93EF2E1 |
18B985A82B4272E792485534DB42A8319A7BB2C40379C4FBAF5EBD1A396FBCAC |
088661C741F5416488FF647A806121D8390725013356E57D0E167BBAB2EDAEAB |
64E1F4F0D0605F5F36196796ABDC8EBEA7840924415823D06BD11E4A02146749 |
63588A401418BDBA33D804CA36385412C02C8024087D4D4ABAA0BA2E50FD1E9C |
C5CEC67AA0C047D94009338892F1649885622A479075D0327055CC83794460C4 |
F841A6EB2990896E27D8B3FB004B82FD13B3730BD54AB511B68453516CC3D7C5 |
A3BD04E01BDC1C2E63307A7C3E864C86BCE5D9478487ED35D68511921157CCE1 |
46FA922C52EAE1CAF1ADD0600BA9F4808E92320EEA4118E15948848F26D2C878 |
90580581CD4B09CE4587363AFE43D904CC31376DDAC44C1986CBE38F3FFEA10F |
7D4810A425A10D8339761629F57C62521B0CD9008B478BD4A2433008C88714FD |
32F5F3CB22D95F12637A285B479504328130D16097F07DE072C1E24AFA009E2E |
7B55246E2613F36A4E733065CF6BD6355695ACDC16C3BC6A8A8AC72F7CF5C5E1 |
4A21E1B7D2179DF0EC579ED69DC174C9AB7EBE44A5A4B5B5A95F6CB50752B12B |
4A29BB601A73B50D0399D2C0FC5D93C98BBA7EC669DFAC4AA15674E2FB367556 |
EACB2736EFF70C1A08FA17E265BA9AC9A92F7143073B11C20FB3243D6CA91780 |
417E2D8C48BC2FEB13FC5EA05225BC630B349D8ADFDA28EC1999787481924E6A |
811A5BB3B17AC3B9C3239772E753658CCC66D6AB9AC14871CDD675A5F98952AA |
C5F22FD98A35C84AAD6CFB1F4CB647B2C1CC24E5C9E898DEBDB47C76643233E1 |
5F442C07F56D2B8AD7B9B146C9B8D56827EAC916658673CD9942CDDE697729B7 |
B17F66A83874C1E8EC0D5303A5FCC24325AAA5B2773592CF0D4E3F56D4F27E6A |
86EA9BD94E6A17AE527D3049E5BDAED0685F70BBCEFB5D7BD02A24127E393E7F |
D90CFF9CB953AF5DE4B39546BEEABD33D04AD60DEA7CA9993B60D41D2D63B865 |
8306BB7AFDFAE10ECDDB35A73546A9994463458BAE23AA51AA99B02F59B5B0E2 |
05EDC2D3ECAD3B5B453F76870F62833908CDE3D8397842D86886818D297B19CA |
A89C0657B9786E04743ADA4FFB8837C78191C051810C25A87AD1A0E0A21A0AF9 |
8F2E5DFC33DAF0C201C23FE6F399B19191FE813EE6BCAA3764E8CD51AF4D4CEE |
1D1E8DE33BE02FD83CD09EA24DD0E4832A3D50D71AC82225CD5D0C0C18075D43 |
E1E18585012C065858193EEAAC9508080D70CD57E81131439590A9A695B164DC |
0AD56733A1DC39CA53E47ABC01BAA85C539E62259602C763B2F03A6D6F6ABA34 |
3931B567F7E442A9EE74017DBDC84D60E6A3BC560F8186FC43DBD8CA7B45FD1E |
C2BBE9480AA6D6937F1B366CB8F9E69B01D60FA515E26489462CE7F316450E28 |
ECF7CB2FBFFC81071E882AECC71F7FFCCB2FBF4C3D6FB5DC0D0CFD7013847A9E |
416888781D7C063405CE07B30673078C04C00B81E78C30943C25E8154EC31B83 |
E145C1A5216650C0258E35A9355952032C132BF6103AAF02F359EA96912B25D1 |
36F4D590CAE7E05024A5205269CC577DE2139FB8EFBEFB248A23687D520F2845 |
D17468FA83AC8EA4170B9E20DE5758BFCCFC625AB71637876DB7515B51B3E636 |
B55B691ABC22E55E3FEAD6E29DDB9F1B207DDA64AA3655F5AA9658E1E727AE9E |
50F5B45BC6E86A961AA5F4D5541F232A927E7976A8BD6C7AFBDEF47AD72A68C5 |
ABD5D3C73B66F106B3ABB7531BFB562C1BDA31F10A51B67347994A8171832E89 |
EDC84D04ED19B98C530A9627FB5ACD7D9E4E5593F77E405E7390F4F95C92AA6D |
55BB9CB5A9D9ED73F5B2D952686EE514DDD0585B5CB9EB9EFD94F0D7C4E2AF5C |
64C6AB8DCE761AD2ADD94D26594D6B23F57BFDB574C3A544A751B603EADAE477 |
328520369F2C0697F23459F479C39E1B88FB1315D589662841B3CDBBD2C9B9FE |
E4F50BF377B4B4497FEDADD99D892A3348AA1B0AD839D718AC9C347FD36ED2DB |
742DD17964F7A5DA3736FA3BA3C5ABA74C67CCDD7E603046CDA6D9BC2547AD85 |
C2B54A12743364D59424E85CAF343CBA857541B2BB59E5FA77C9D842DEE544B9 |
3EDADC26DF3C2E3FBCF3BC5D14A3A1AB32B3FC73D0229B0A75AADE4AB1F9D1FA |
CDF3038958BB95686F5B509D696E4A9D44C9176E99B3A747DAF74DD3161A5C48 |
356F377CD63A59F9A18E672B6F8ADFA424A57DDB0558217CE6CC5AA1C081F0A2 |
BA97E41A6199B055D1F61C5FF216433101B60C2C605CC277C316A65EA4817ACD |
2971BED030487DCD9A355353539FFCE4271F7AE821B9E7229147C7812C69388B |
1517D5D5861F1A1C1C1A1ECCA553CC79D54E40B23CB18E196ED15E374AA93B15 |
614011B46AC58F7A1E7F1D8E79CD9594A1450DB78786892EC89A121846A07A73 |
87918640DD9CFF0749C0E365B61FF62C56EC80ED15CB8A29F4694DF53E0E4D7B |
9574C4B7613ED0757D9601ADA6DB68B5272766A7A7E62727A6AB7547C5BB8D83 |
189C9871E93BBF44448BAB4E2ACBC49514FD468CA1259C7D7474747272F2D5AF |
7E35CFF6CE9D3BB106E82B7DC4F3519C053E8E9546F11494B575EBD6BDF8E28B |
122945B017FA081461C866A49022E905CEDFA057C48B751768073053E496C15D |
F0E8A38F9E7DF6D9428B7C1F50B3804E0B8234C8FAFEFBEF3FFFFCF30132CAF7 |
07AC1EDBA770C2F09DD1FAE2689260495416F13124BD083E07A81CA6CC1123ED |
51F79ADC07294660DCA79C72CA73CF3D274652F47130022459483652F46E9852 |
5E359E1F24560085427C2F9076FCB2A55209B4B12A08F626C9EFA6736EA06DD6 |
CB89E69F57DEF383F6FF540EC947022AEAB1CC68A2DB705B6555BFCB2CF2120A |
FA569A97EF75B7B2EE648F5FD26DF62586CBEB5EBCFEE9418D3AD7256A57B654 |
49F0A67EB7501C6B9F72E0FCE72845C377AF9E99DD6D04CCC7ECF696762CD0DB |
D7FA522C161569C9545FBB51F2B2E1DFAD98D5355583E39C2A3AD6EAFA809FB0 |
C83BA0BCEFD4AFDBBE9BF7FC99843E3E7BC5FE74706A7D5B83B4DDCCE5CD6DD9 |
B643EEB66AAA418DCB75CAFAB16B49F7B29D7C834A7A2A13F76BF596DA43C911 |
2F359D988B6DC966666B955B83040D0FAFF4761D98CF69E329636AEAD37EC046 |
F8E344975AF67C10DF6A55E226F99557B9F664400B46DBF04CEF0A379E333A37 |
782B3714F676E6866FA47A821AB751DFECABCBB7FD3AA922E889C9DB5BE419FA |
E5BA6F396492DE1C4B9B075878541DCDDA9261B196A278EB8686D1185AB8B9D6 |
7F2D39734EFE1E3F3970DC9FBEEEF58FBFED9F2BF56EF6A6B467E7C76C6B47C0 |
A64387EE70A8364E9B27FB7CBDE9F775AF2952DAA29B595296E946D25FE9F7FF |
A1A86DD0128DA0B99D62A63D98E8AFD6CB0D95B9CE0B6B26F54CB55B02B9A25F |
EC12555D3CFE2057105BD497ABDA2F861E24F11960FB3375457B3AE921DEFBD7 |
BFFE757000893D44571C3E1B2178FE77EDDAB5BB77EF068EB228349A34D89220 |
5B4FB752FCD430B56C3A3D363E32363CA492D03525E014E3EB9517B024105688 |
3D190D1A4BA840316B03F13A0310417E003E8BDDDBCBC6E9C1534312F02E0E25 |
0185BE25F50826DB58CC3015BEA9CA208AAB0C9510A24E6191AA73146C4A78FB |
B89589C54D309176D76B36BAA572BD566BEEDB3B3137579C9FAB761C952FC4A6 |
0306CF9C1AE81CBC6C92002A0064516B0073AA47DAA11CD1B9713867A73078CB |
27338393EE31D14BA2E7837F81EF8BCECE57499D8854124AD59818A7587829C5 |
802041BA0285F9CB781C9AED48311D337A44B001AD01BB840709900C297043AE |
AA6223AD16BF0EB33C245C8AA623EF1265C74C667C7F9E5B047B0F9704147134 |
41BF8631046B402C658825798B256C5A9E7BB824401A352C09F047FC49873AE8 |
A2B2E188F7A79E658D97C554F39078FE016B8A1DCE3373E0C001556866266A6E |
39DEE94B0F77CC8FB666EAC6EAFE57ED4EBE9820BD754F6374EA842C0D4CD02E |
9766FA12D64CD7A72D2E3556C4EFDE677E901AC7AF886DDDE794C90A0ADD3BE7 |
0AF3C9B9CF37E91C5DCBA432B7353DF258031FBAF9B85265C2D9E25A19DE7581 |
D7216313F1BFCCB0C4F98017E4518D8F8FEFDEBBDF4AB971D7D2BACBAB5E9B8C |
03961198DD54772870E79B0AFCB99FDC698A27A8D636ECC01CA0551AD527364F |
328F8BDD1EB7DC4ECB4AC63F9E327DBBF6E559BBDCF13666FCA4E35DDBA64E8A |
D28D2CE5B5B8D15C9877143A92997513D54C8D3EADA5BC60F4EBF93D131E7FC1 |
54E8B4137EA6459F207D34DBB76F501B76F4F2FEB93B28ED15EAC9390505D1EF |
8E6587E69C367DCC74465BDAF3819DCAB6065D6B43D2D283FA35930AD3F3DB79 |
7DAA6B525CDFC492BE99BEC7AE6B21485FB34FB7CA2C533D9F0A5F3E69AEF802 |
D9B1BE0BB460F750E5FB3E6D98A38A93DB46159DF2A356E9535D65F7B0CDC16F |
DFA6651477C999D8EAC7DD42E7FAB964979A964EF76668BEA25D9908622D6B93 |
9D8E2F6FED9D769627DD4A9DBEDC50E8A56DDD24C353584EBEF264B84CCFCAF3 |
F699CF7CE6DE7BEF4571226F015E08DEB3705722DF4C9A83495E22DA49C99751 |
8000C962D022982B279C70C2DEBD7BA1C24665C9E1EEDF25E8F7F0171DDCB0FC |
0056EE78D0FBF6ED8BDA11E1E654F7B162DAF0F0D0EA95AA5D81DA549AA2ADAE |
EBB04D004920EE20D84138A25065F00F88246021A018962F887587B4B10CF021 |
B411D4C9101E07F1D1345BF55D60511016169866DC58042B5556C36295836228 |
76228B0A6105F5D5F1CB95FAFC5CB954AAEEDFBFBF5454B9B97E9839CA3601C6 |
BF6CD932C0B7F22617A349EA06846145ABDE0E57188FC1D931EF92D72F251E4B |
EA18A2E7DF78E38D9B376F964A10293BE45F590CB0BA2D1D7445A5A530C82168 |
68F89E956B3E93B930C2D41870B44882425B9269006152B892412BCCD180CA09 |
060A87128F070DC850EDC5E7A3090CFF247873B01EF892934F3E99D570A651E4 |
35A3A8F888DE21411E04481CAF056F1E8822FE57D243652196A4A8D1A136E812 |
EF106C6A1EAAEA2316625F4BD8461614D178F46B5BD27A480E012A87570AC56E |
3CC3C0C0401ABEDE8374545697795CD2DFE95AF9C6C5311A98A5BB48B1307EDA |
06EAAF2D2B3E38A140EA3F1B42D5FF0369AFE8B15B92DDD94EE23E27538BCFDE |
A8998E6F7FBE5BBF8B56EE5AD3DC3233976ED0CA78EE0D235498ADFC438BCEB3 |
4E7A7EF48527F616A63334A0CFBB15A55F5D1E23C3A2AB1A128B42F91EBF38AF |
C533673EDD2DF9DEC3DDF1727A7EBCDEB988B49215DCDCB5BDE1F6C08C7676D2 |
480FB837EFB79A85AE598DA53A8E4E469906EFB3E67FDB4DDD4FD534A53E3CDC |
583543B7109575D541F8928C8255BBB555888D5A863F37B7D0D5299734469617 |
CEBEF8F2AB3F7D8563B5565F7BDCEE5889B62EE8D5ACAF55733E554CADEFDC53 |
CB27EFA0F3DBCA47C0DC6F335175B576F5013600CADEB255D49CA3A27F2159B6 |
59B9CF4DD763AD9CE35DA31C65E6CD54B88D9A0D0A36A6ABF9BAF109D206C97D |
848676A48ABAF2D29011A7FE8EF9B9014AEA83EBE7A6C768E8836B66F55762DF |
23E70593D6BB0383E46C5C5B35F8D141EA72B351DC677F3FD72E5614F65E6998 |
45637763975C9BEE9BD6543441CF9D6399C9D50BFF738E3E3EAFD6EE6ECA5492 |
B564932EA313F69DF0D2775E4AB433A96EB2EDB4EBAE022B35E30923F0D1AE83 |
F72C5601CA1F227F02C0CEEA39A00198A2F804DE6BA266B1C2819CD12516B314 |
63CA8E408C50808DF10D5F025D33DA890F5B00AE0B38600F26CBB11878EB5BDF |
CA7F3FF1C413303D10C743585969E814E47299552B98552ECB645286AE0262ED |
2EBF5E1BDE21A95D845F088EDD285E69541228A7BF1F1C0C8A6A08B2634BFBC2 |
7315CE62684B04C27C15B044C082286EB3AE6FAAA085AE85718BC5CAA9501D76 |
E4CE763C1BB3E328D3ED74DD72A93135335F2C5667A70E341A61C9854209B782 |
45B00C1FD6197FC08B53CF1D246E5F245748EF49796BE13E62221C8DB3A3CC07 |
169824141D9E2A800F0F3DF4D0D9679FCD2780316DDBB6EDB2CB2E43FE9624CE |
F34262B4604CE242111716F83EDCF4D4CBB54742AAE06C036D0D3A05E2E102A3 |
0D162CCA08326B59A9BFF2CA2BB76EDDCA5731EB671D07AD80A3E2506AD90514 |
081873D1E00A1D294E103DD6AC5923DA09F82FB610724FA39D5365DEA8577776 |
C438012AAD1037A61E123B042D9615E4CAB304DF0E2E9715C1372221C4310855 |
0BEFB872E5CA0F7FF8C3DBB76F478A8152C1F4FE8174D173FACA9FB334ABBEF6 |
2EEBAD6FF9B39F7CF77FEF7A68BA6F221B6CA9AEA4E5BF2DEC1FF8DCF19D855D |
2DDE43A3D6F8C695B5FE1D55E61ECDACF5D9B693EFAADE26F7D21F75FEF8A9EC |
CFED6AA23DD0D2CFB3D6EC3E75E7EA67682B8DAEC9745FA20F9DF577F73EFE10 |
6568FC9CE34AED46FBBE19294E14C43D9ED2BD1FDDE35535F7D1CEF87C7A6EAC |
DEBD80F45ADCBFCDB33B03DDB119EBEC7C3BB068FB8CD52A7463353BC393C59C |
3870AF31A9D0C84D176A5A3BDE186D7DE165AB46F174FFF8AA74FDCC44DB6B2E |
3CB8DF68C4937E27D062F6CAE5737B5E29E4ADB946574165C4DD551F5FB5475B |
A0AFD4CC5AC2355A395FAF187EE293A7B4D22FAED93658A622ABF9D317B95438 |
217EE51ECDE8B483FE4C2C5FF377DB7758D6EEA133EBEFFED157BFBD502E791B |
1BC36661768B137CAE4C6F26FB67C7B9835DB7BB8F6E57CC63B493AAB22C0FEA |
258B99B766BE77C0301D2D36D4CCB839B755F9D2F4BA699A8B0D54B66502679A |
BA6DADDF369EB5285B757F48FDCF8D3B6E2B46D9627E8FCA53F910D10A32D836 |
EA1F6E561D1A2BD27A2AF8B1DCE644B76A4F6E6FA68254D598316E4EAE7D7ED9 |
CBDF7899DA66A26BDB09BB1534DB9D26297D57D1181CAD68700BB506A0BC2021 |
FEFEB4D34E7BF6D967F91B3E13688C9FFAD4A7F827DEFE08DC3221C1078B28A6 |
A05B623731F949332869BE0BE2974C6EC42A60460B18306A3F11F35B643E1466 |
46F31067676797D4CD86C244ED24CB3247860A2B562C63553461AB7174147ABF |
0A2176BDAE788744124443058B4102E5BF89859B4D0BBC431BA9F78441EFB13E |
BC4F8B0CA257AF109019C6D099C5ABCA8698D16B5A498BCD52428D95202DD5A3 |
752B2C6EE20BF56ED72957DBB3330BC562B9522C75BBBE42CC53F690C211840D |
313838C44FE4254166BA4C74341F349AAB23DC768953E26836013076F03DAF3A |
FAAB1CDB8680FF075C15B811F08C5F7FFDF59B366D42674A490317F84FE1E3E0 |
C84C6DA81F79FBDBDFFEDAD7BEF691471EE15FA389ADC86BE29B7FFBDBDF3EF3 |
CC33A17100E3881922D3229FC68C1E1A0A38FBF8F838EAD144A421B48BD78755 |
2131555693F9644426401E479404523F41BDEE922C6CAEB8E20A385E00F48680 |
DB119B05C9BC2D31D496C409647264F96088A0FC0D5204854210FC5141824355 |
59C6E380A70DD1BA5ACCFDB14CD8B1E2F743B67E4B6B518E7253F146B2434D66 |
D403ADE30BED9D3B33BEDBB453463B96A04E4557814A669A89C4F2567D8282F8 |
B2A03E4D036EDF829DA054ECB50BB3CFA8FD11C48895DDA65DF51BEE904F0D4A |
F751BD6890E3196E62209DAED64B0EB99EAD9A7F69654DCA4DA3B14485B79871 |
9341CA6F8D959D26E9937136213AA966A6A97AAED8E1FCF3D726B55DDDA69863 |
7496797D0D725C6AF05DA772BC6FE8C47AFF4B6E2D3029E93ACD94CA064955A9 |
9909C9B1DE64538E2A359BFC91D38EDBF3DCDE5C7FE28C0F9FF1C457FFEF8C97 |
69CDB51A298588AA359C4E2E6C52366BD2E0E0AA85E484F78A6BD06A6B74776C |
4AB1258B72737D9578D9E8C48746935395D2699DD17D54744EEA18CF66339469 |
B3C56098654BB57E1B75CDA9AC9B6EF7D7A9DBDF555392F4A8B5825882EA35C5 |
933FBDE9A30FDCFA0F566338994E97BBBB5ED54DFCD66AC575B2DA094795F3F1 |
D30A9ED56E0409CD0906C96FC52BAD981BAB93911A6836EACBA8B37F1D657664 |
6ABAAB273CDFE9B242BBBC4D7E61743235C546DE506EB43833AFFADE245879F7 |
0357CF6413306A99BFF3BF9FFDEC676FBBED36701558EDD8D4480D87058FFD08 |
080A49E5FAEBBFFEEB1FFFF8C72803E2ED2328875044A23E1FA90712030298EA |
824D2DD503516A3F84F940F76182466483CF08B7CD2214A86AC8C3F49D8A8F8F |
8FF2AE1EE8CF841A3AAB695D9104A13EEE1DD13B247CD3A04566BD4412847EA0 |
40840136B3AF4614024D1F2A09541FCD304EA0BAD6841163CB8C61B7C34BCE62 |
08E69817A209A90454D5B84261CF2DCC978BA54AABD60EA535BF42C80BC80B4B |
91CD934F7A15BFCED4D414F826E201C2FA71F0E3A4817B548D3D2419EBE89C1D |
8B114D3B59825AB1E47C187DB02424DE8B2587FD08C41B542FF3E480359F74D2 |
49285D16DA92AC4A383170B2A0BF89120DEA144B08969604B40175C74AC3C4C4 |
04CC88071F7CF0A31FFD685475805F886FFB99CF7C867F65E1C4F7E4CF5BB66C |
8936553E5AC4186616183D7FC362808501FA150B8C1DD29FA2DE2461D6D170F1 |
E192209A80B48851180157970C0DDE87AC64EDDDBB17A0B351B3EF70AB8507C3 |
2F2B85BB700D510818C00F8241F3C642E29745D6765A093DD9F4CC4C2E5B6B94 |
B3E9FA2983AFFBF9DEA7694495110C05DAAC1BD07066A063C4E6DCE9612A2CD4 |
CB41DE49375755DCE34F78EF8E3D2FD5B5C9DC384DED2A698655F7421A2BE8B4 |
C0268CE1975BA4399AAFDB46CC521D6514804A27B228123054CEE5545FA759F6 |
D2E16F1D153136B456AB5FF5DF654155A094498EB532B37772C176C9D647CB29 |
87FC1C75260CBFA3366F56F5571B745EDF747634CDD6B8956877DBFDA97CB3D4 |
9ED42BE4F8CAF363C5A84B851895129ADB8C1712297EA7C116CD9BFAB06B2557 |
8FEE9ED83DAE6516B4A6DEF1DA266FFB34F92A8EB86224B773FF4E3212635EEB |
00654F3C75F58BCDDFD07ED3706C8DEA06C53BC9CE7F7BE75FFCE4D95FE49D8C |
5BDE5BF350459A27A746CA2F1667ED2EDF6D95629476AC76CC8C3BCDC680965B |
48754DB7C5824A1B6D349F2D0CE45293F624CDC4546E51CACE36DB4150ABB394 |
75286B67679216C51AA4B5B485786076B43E4A35629D56CC31F3317FD2253313 |
D8CCFE6A09DB6CCCDB0E7934DC3FF6E76F79E713FFDFBFED9BDD17A848A5B6BC |
B06ADFEC6EB6C0E0F9E9EBEB63D2950A2495F1183A3FA385C4D21851A80B7C9C |
25C18F7EF423563504AE2E6AA3C3B729ED46A225EE62DDC2BCE69180F8A3C525 |
517EA5A121098FF58C33CEF8FEF7BF2FB63CEF20705E5D856A5531D7D0506174 |
74B830A840334C5E6CF2A39200DC5F22C6D186E98B416342CB012D0C45ABA644 |
9AD6F3BCF75ADB532F7C1746A47D651F2C4A02D54D4E69F2E487B8437A585FA6 |
24412A915CB439147C8D32F37976C21A2387EFAECA23DC80C542ABE9144BF54A |
B9D6AEA1CC4AE5A77ABE1728694776C28A9909405A22F42A65A251D1CA93C89B |
9C27873779D4B92CA1DA2388D91E6787638E5708656202591AE52C4B2481487B |
AD970C8E50019E82AE907C5B04302115F8CB37BFF9CD3FFCE10F212AB41E0E9D |
DE6B5C23AC100B043F18540C8123C5CB4AC1D19D77DE79F1C517F3DDA0ED4A0D |
334512A225BD073E74E946201388E6C0C82B3D9A77086313E545DCA051E7D297 |
BFFCE5EF7EF7BB3FFBD9CF60C780C781F6B40880C4E1DE21019F88566062E1C4 |
D440701578D49899C36500F630426BEF7BDFFBF8E44B2EB944EAB00044810143 |
E26EB97EEBC6EBFF2163FDAE5326276ED81DEFF4357FFC8BE99F53B3A0E9A5C0 |
723364E6DAF6AC99ED1AB39BFEEA3D0FFCAF7F99B3C3B6C00B669B92F95475D5 |
90FDAB729B3AB981A6BB60372C2DEBB6824CBA96ABA70EC45CD3E95814BFF2E6 |
2B6EBAFE965AA3AD42BE66BEE93474DF158026EA614F2907603ED72DFAFDAAD3 |
D882F23FC5D33C79E435975172221D50DB1F1E1C5AF38EB7FCFC5FBF97AAD51B |
A63BE8D2BC4DC99C65CEF0E9F92699A9E1B9D80C6BF3FDFBED723C96E834BB26 |
A54DCF6D5BAD91C0683A9D6A5F96CAAD55697B4F9315F27486EC36955D4A04CB |
CCD169B7EAD61A69ABBFAE15797DEC34651672B37D1D2AF7AF5AF657FFFD8C07 |
BEF40D7BE08FDBB34FF653AA491537468193C859A9AEBFD0E2658CE75FAFA79E |
6A94BD0413B35368B1DC2A4C697B528192085A32D770BA434E67D6F6A99D2296 |
8C5AF5DCBB2EFDD7F3BE5CA2A94C2AEF37CAB5B8D3B2F8B9CBAD525D8F55DBED |
416535301B88F5679C498FE26DABA3E2989A4986BBA2A5972851CB34D848EA7A |
693353775B2B29D8CFB2D0EE260C6A3512B9B4A775BB9DB5CB57BDBCFF85783F |
EF02AF55F2D9904B0D263EF6B18F7DFDEB5F4731301AE1310B061300CBE62D06 |
EB59FC45E22E167B0EEC8222D0F44C69D20596FFE5A77CF18B5F849B17D9A580 |
FCA23025843FB0D1FF918F7CE4C61B6F946A01EAC5D5A2B98E8B9C28E426253E |
5523A3DEA887DDEC1CF18C436BE6C7302B4CA6AD6C2ECDE3B378285EB7DB6E05 |
E4090A9894DDCBFE719D83AE5BEAE11084AADC21A2428FC088069143766014CA |
1F27C35D6359763C1E434F06D5C12E1CB08A9F049EABEC03D60A583674DA2D16 |
A78A2934EA9D688213456A02E848874C96F06E5403F82156FE073FF8C1871F7E |
18A2FB6B5FFB9AD427C31D8F8C78247B61BDC5C524778BC2E3403345A0654987 |
7AEAF51A13734F381A02E37C7356DB592480E1F27D42C3E8F7EE7D864C628C41 |
120FF8D1AC9E5F7AE9A514A63FB18478C73BDEF1BBDFFD8EAD04BC02850E74E4 |
334043416C96050674104950A6103B0880A96C2EDC7FFFFD14715FF44A4C0CB4 |
B68F16BF601E98F098F9B25D02870C928260E2C0498AABF013329AA807A7C18F |
7BFCF1C7317BD13914945649FEA148AC05EB88F28868CE867E6843639C26095D |
48B1553FC55266BD38908DCFD43A5A4C37BABEAB8758D52D2D4D85364DC5FAA8 |
558E27529A156F0745AAF21CA4B23E6B9D4E5BD7FCAC67F81E6F46BBA67AB377 |
6AA97EF28A31957B339CA5996A5AE9F26343F1E27407DD9A023DF9C94F7EB2B4 |
30FFAFDFFA474757FE24D58CDE48078EBFE9868D57DF70753C8883F8A35D1698 |
49F1BFC23ED0BA1562DEF652F1845B6D355D668E85245528D5D18788E62857B7 |
F7B3C2B62E3E385BAD555456AC7FF248EAB9D9F95436D9E0F909D51ADFF113F1 |
648BD5EED0C12032520B41B061EF222A838DC0748B85E07986579DCF17AD4234 |
8F834D767BEA3654E66853528A246B4A873EFE15A9D247DB17927707E500B782 |
B98C617FEA539FE22DCF1A21AB0BAA8229EC29CF54C723E491F078801B11D5EE |
A307DF1C2A0E583C9FCFAADBCF7FFE7394DF239F2DEA27B8EAAAAB986859EF11 |
64147C80BEC513C55ADACD37DFCCF4C99B4226966FCE037EF7BBDFFDAD6F7D0B |
247AB44A3444171413E679E169E59131D30C2583B138627244A188C50CB07B1E |
8469A9D91F2CF427F9162A461B322983248BD4EFF58A5AD4912926DC3FEA4C3F |
5C12881E47472AEA8962DB454F0E733D2CB486C7F79EAFB898AE38A9DF6A75D8 |
0E28162BD54AB3DDEEB88EAF6203A1A57C7865EFD1568EDF1A4806D42B7685E1 |
221C4D405DA6A7A7A3A95A0F3EF8E0F9E79F8FAA60D61CB76FDF7EEAA9A7BEFC |
F2CBB0DDA05C030E10942D2101B036FE063A26EB0EE8BA2E7325016149BA97EC |
7E5415421DE00BA150FCE70F692D2949381280E20133C14D4E4E02F91961095C |
05FE0B33223A037C3E5FC5CC517270E1F1E70F175C70014B97647880C9321B85 |
6B2E8A2247BDD0BD284100CF4141AFD6435196BC29EA75B611D21259FBAA57BD |
EA37BFF94D54E0214100E216A178ACACE08A63C062DC483A87886789A25F7FFD |
F537DC70038C2D6613BB77EF5EE45F5ABC3FAB552BED65C79DA0EACC83164F6B |
CBB14DBD1578594FAFC6B3D429F72957A555A1567AE578B334E9EBB14C590FC8 |
74124EA7E5D2F81B8E2FFF62678B066C6DAEA927F89D6CBFD64AF55150CEB586 |
2B5E95AC8E4AE3B153546BF4F38EF6BCF97253755B0CC8B04C4B8BB75B9DD7BF |
E1B5FFFED4BF2BE33A74FDA1109D1546265ABC91640062539C7EFAE9BFFAD5AF |
28A3788161E5FACCA185D909323AC680E675BC810ABDE3036FFFFABFFE98E54F |
DC48A403B3AA353E78E5D9DFD8F6E5AEDB61633BD797E5A79416CA4CDB2A5E12 |
822B00AD0FB532C22BF55E1F85F7BEF7BDCCB95098C2C3E02FF95F10306AA1A1 |
1E615DA004083B030FED6999076BA6B00A4C874CB41FFEF087B76CD94287BA70 |
0FA77FD01BAC70D460C2A90B956EF5EAD5BB76ED829040AEC1F8F8F85FFEE55F |
FEE33FFE235FCB940005E81892068E59A908938E31D1D78166C32381C8A1D038 |
E04D21B5F110E4FCC4E38F3F1E68B81469CD84B738E9A4935E7AE9255C723449 |
206C56E3D7E0197FF1C517E371655F187A6C314BC96B8BE1C003EBA8FDC61B46 |
6792CDE532BC6973D9740843A47C388BCEFD9EE335E89517841B52837B0BFE5F |
E1FE2A01F550E0CFA8457FB84DB084716BBDCA5E960489F088F58EC5458AA9A2 |
AAE242797676616E76A15A6DA8F50D8E320B47CA5D114980A44C8C01DC9FFF65 |
6687A2412811D85AC8B9648EBF61C306291184F017B50B6F0AEB0F7E15147F82 |
6B838347B38C252F984987BF018B14D8350ABDD2AC149C73CE394C1C7E0FE759 |
10C97F5F9B20EA61D723FDD1046561C99E1109443D158C298A7F42E349FE9345 |
E0EDB7DFCEA365FB94A7457A5E82EFC3D189CD26C1799E31BE03B3067E657E04 |
8ABDA589665443D47A70D6D1A651CB962DE33B63DF620205FF957A625B860D19 |
26941044AAA6E17D82EE2930AED8B13C064805967CBC703CFF175D7411D01F11 |
15E70103E6818766DB6E9BC54D90CCE5F28DCAA44E7AC22878C64CDD8991E1D8 |
8978BB96562D8D13DDF48A93EB3B9FC9FBBA1BA84827E9BEE9939FD07C3DE8F7 |
E24556AB8276C619EA92DB318AA9F4985B99EBF415A8D9E8EFEB6FCC1E88ABFE |
B84685A58245763D964AA48BAD9299B41CD5D18062BA459EAFC70D0142E02578 |
DBDBDEF6E4934FEED9B3476276C84BE199FF8BBFF88B6F7FFBDB7ECDEDCB0CCC |
D7262C5242818FB26935BD011A997A6B7AD52B3B2627F8B6A3392ACDE6E2764A |
CF4E2D4CF7E5FADA2AAD4D2D564C29CD66B3D5E4AD373434F4AE77BDEBAB5FFD |
AAF812B530B39EC99EA78BE793570DD11AD4E10BB1494B258AA0FF6B11546069 |
C82341A62826209826AF385452583C47DB1742004266C27325B51A67627F45AB |
2CC18590A27334FC2EB1F591170E6051D849A2F1043D70213960E30AB03CE85C |
500FC4BC330FEDB8251185FF9424402E20AF8161C045A5F79EAD47142EC30F2B |
D454FC58E3A989F1D40F0EE45924C4C38081C48AC1DDA8E7520875310F0A353C |
95E2D5E5FD1265C47AA4E7A5E8EC51E00A39010E169C03D38F9704C1C9D05314 |
5F24054F6913070E4CCF4CCF55ABAC86F8BA7223F33A75974C81C89A23CE91E4 |
AD47EB8FB078200566C4E8F4C2A4CCF40A468378A672A62593D2361AFC0E2A03 |
7CF79B376FBEEDB6DB98887143B600000A8FA62B7C7FBE037470212C3068F10B |
F17DA255CA5087F90E5A88B8191C1340FBD89240AC3179651E0F5CE13C24BC08 |
202860C488E704C939D8DB3C6C5E1A3E19E347718D9829E2FA44DD0DDF0D5210 |
89B628EF40E6B51EB6F7C1B4441D6B92382BD9143CAA356BD6B02A245C3B0ABF |
C197A04D1046C8E6058C2D545A40AF94BC61EC40E9754C618898B7BDF4A8A1D0 |
14E3F3512E84D239F82DB12378E1D25AEC639FFBE83D0F7CA153567DB85BCEDC |
603E5F2FF2966EB463CA7D637B5A9BB97DE0B07235FE2767FCFC89E74941A8EA |
05DD6DB6CAB1FEBED2BC9BA5FEA2B9CF5C47EE8B6405B14C225777FD8E561CED |
1E3F957839C3C68242214A1DC891D76D582D6B15C576502B6925F9C55C4D25BA |
E40672D5D9CA486E6CBE3917EDBDCC621B762D4015A39631C05659ABEAD757CD |
E96DADDF88D5BC6E779A52BA5D2DB45333566398A73EB12ADDD8339DA4462A99 |
657EDB26753796768B7D96BC2E4B0AC332B2891CD3B68482E07E11671AAB563C |
9F4C244C06804EC1F2F1B47FE10B5FF8D8C73E864C0104C3825E3B2050059409 |
3F82B849872673078716D0F09245159A2507AC169E8DCF7EF6B30F3CF08074FD |
C316901A20B4848468C1E605FA0B94D1CF7CE633AC0E1E8DE762B380B450318A |
9A1E307AA90CE713E00882F523505AA267A3331A760ACC11AD578C866453987A |
D190EDE1874CD74134F66653C925CF0D3C1FAC3C80AD815988590AB68194D74C |
25CBA6D389E1C2E0F048A12F9B512D0542CF3B80AB4061404A828C42D5037608 |
4AE0906E4A915A2D513F253B4A5CF912F1839A860F6001522E914A65D4E38C10 |
61224C0A2A576AACEB4D4FCF96CB151EB3A994052BE48FED288F8B78A88E3C53 |
D2A55D9C866CCDB1ED0F3EC5C635D82258031404F49167E24693484C02335026 |
653E0D1A28B6223276204159B8C2B46432C5B6BCF8E28B999E009CC9FF32038D |
9AD56216F0255227F24FFFF44FEF7BDFFB24EABBA472ED3F736887D6E8CAD200 |
DC1C8A89003E8336F02E22AED8BABFE28A2BB04FCE3EFBEC2F7EF18B181BEFAB |
4F7FFAD330723145921ECAE3FFF8C73FFED8638FE126BC57D7AF5FFFC8238FA0 |
1501F247A13409DF073BA09E47580251FC2FDB04C8B016FC45C9AD86F30DC3E6 |
097FCD6B5EF3A31FFD88576A6A6A0A7C1CEF026582427713BE91DC50EAA5EBF1 |
C8996BA02A5BE0BE21E7D83404DE06CF7FC2A366D2F359E3F7FA13D954B1B39F |
D96426990C8ADD7ACAB0AB669C1A158BF23EF5BBD4B73AB16377AB3E9CF58B9D |
11CF2EFB9576960C9F8EABD36ED2BB397F6565E581F8946374294C15A596457E |
977518AD130F9C0E30BA121AEBE8C957BC265555DB74E62B9EDE4D0FA4EAB38D |
34A51B5A031C0DEE4711C9528F12CD3753F2D2F28F0BD64E7476B52D3A75ECE4 |
67E79EA7389945B263C383B1D57BDABF881B34EE105B3573069DD4FFC72FECFD |
398FC736129669B9BEDB725A9A1964FA32DD8603340EBEFF19679CF1DDEF7E17 |
79C39270F5E10F7FF83BDFF90E6F01F1D4215D4D8F405A458B7BA2753F92E907 |
1E1AA579AC3EE8E475AF7BDDD34F3F2DF473344DE8BCF3CEFBE637BF09C90409 |
C4120B355F880108E00A9CECE0545AA44E78D5AA55A13978E4FD05868EF12324 |
C6FFBEF39DEFDCB163071B67926488F3A3502BD8E950FFC578C26694BEE87084 |
42D6429996D4C1238EE760DD8C40CA2C2C280F064B8256BB95B013AD760D9318 |
9AED64C67455CC1EA06D0099160DE4FB474787D9324824E261984F83F90C5B1E |
8001EA955C1FAC5F64DD6243F3C09379914316236A1044537420602463241477 |
CAF661AEA8870845FC46AAAEAFED2C944A3C41B56A43016CF5403D559981662E |
59F860B176C13BE24C895A0D3F03AFFD9FFEE99FFEE0073F10BF81D6EB9F05C6 |
01010E29082340C043B0C09217CC775BB972251ACB80D108E7E2D7E413E07F60 |
110289224DC6F989921EC04F81124DBD444FE9370285EBF7B509240821732E29 |
3AB091796F408B9483BF04D28EA442E37B0010014A0F99AFE8F3071926C164D9 |
B128BB03D387F70CBB450027C4F12806324564B9D8C2D22759901771C0E12066 |
013F8E772CCFBFA442898D225D9F10F0E0717EE0031F6005F9C9279F04F64634 |
1B18A749DF8F6821055FF5F8DD0F95336EB66FA0BBBFAE25F5567F7DDDFB4FD9 |
F195E74666E3D36627EE273AD9165D3040CB72F4EB260DC4C99948254F69DCFF |
DBC129BD93D36B67AFA2E3780C75DAD83AB572D2B3B497B42AAD24FB03E9B5B3 |
851DCB26CD1BBB1A9919A36FDE9B7797D1CA0FADDEEBCFD2503EF55CA9F1EF0D |
DA41292DDBA6866778E4502CB03CDD45C5197CEB62B1414652CFF7CD94C9D294 |
5FA1DAAA356B0DFD0AC33FD9A3E75753373E1EAF4FDE3231EED2A491A40D295A |
3947D5B52A8FB3386B3E4A6E4DF9606DC376DAA1AF23667A9AA3C7F56ECD61FA |
446EAE8458246B19A63C103B102BC692F100F8335601E42D09C4D89858EE37BD |
E94D4F3CF104985A1462011A4CB473B5B8FE8E260940273C4E9E1960F844593C |
6E22EE170C03A20B8A1DD8F431361DCE475C977A513DBE90DF8E0709CA416405 |
23841A4DBD9A24096BC16C824685D80046150D644AF4F1187DD70F66910A7E8E |
02FA0C2BBF286CDB42DAA2A32D95526D639BAD3A9BD146081581060609DBCAE5 |
3203FD7D219881CD2390D26AB14770201145120717D94DC41B239B39BADBA392 |
20E8952C2D36490849B657C8D6092FD4BC109C4349B2966AE2DC6876231DB8A4 |
89F2A22438021D68C742998E56159C74D2492FBCF00245BC72606102F3CB1312 |
ED23017E874602BC48901F50858040872594FE6270FCF169F0F59F7FFEF96C19 |
00D8802F17FF29880F6E6EBE33DF07098ED81ED0FBFCA3E3A41F8332A2BC1592 |
00E28DC7303E3EFE9EF7BC87B5FE684347DE36121046348CD9222C18C842B4DF |
434E348222B08891D500D6132DA60753802601791FF5DD4BEF2051204474E93D |
586C0116852B12F483A01F9ACE0BAF814F2F08BBBF36C243DC77A0C025160F36 |
2AB25AF94BBE613403079B50EA15F859E9963DA5CF59F95CBEA8CFF8A565171D |
571A28FA33A5E0DE7CDB2A8E34AD92D6F5AE49A53C5B7B60416B51A093E1D002 |
4FC62ACABD6D55BE10DFF3E5974E78AD7DE0B4D4B6E6B5E73DB691D2F513FE7E |
746F33D0BE36DDFAA84ED63AFACA4BE66ED28653F4AE11634C6F7F69C7C82495 |
3F1F4B3E9B2B7E793EDDC9B7A9EE9A0E196479F1AEDB01A341426154FD842701 |
7E9B8380B53905075CB858AB3403E726DD1AB43B7FDF1C1A4EC6EF6C4EB21172 |
31B915CA6FA7A64EB92D89D9796DF889C4CC8B0B2C75D28974CA4A571B559604 |
279E72E2AE175F913C0210BFE446335540B71067112F014F269F2339637C1AAC |
4CB8BCA54A1C309FAC9C7DED6B5FC3B40B3239C248B029F933EF4A74F79562DD |
23D27FB4C211A6125FC853213C9A575C767494C3224688978AA6501FCE4FC452 |
17ED1688BFC8ADA2D04D24660DA2B64B6004C1DC51FE097920452D204EF8A044 |
B3090EC55B8C1E129D55FFF5C21D291464E18C6472B126767C7C94DF7C7AE640 |
A9C4DB4373C2B83A42AFBCE9FA72A94261201F1ED15831C232A1E1A64B4AA230 |
7435383A986C1A092F2F1E60E251D40AE91B059519AF1A527393C7DC554E2CDE |
B7AA9EB0D96C2917906EF524DC2108482A7B3ACAF8A8579B4A47169B52F12479 |
8A48AEC5F2401F9484FD2829A3EB3A345CBD87712D908102A48314608C10420E |
6E131093EC842894345F1284CDE879D5AFB9E69AEBAFBF1E6DD6F9DFA86D41BD |
B0C1EF250996C848BD7748C418D412C5EE17D7243C666BD7AE652346A60B9E93 |
68DB3C34E11340690AD5EAF5EBD76FDBB60D15F000F8C4544777A07C901019C6 |
165D62C18896508A904A34E267F60E9E6464225E7BEDB51B366C8886D9C150B0 |
85821EAE35D260E43E583EF89D9084CA4FFCF8C73FFEE0830F82E6F3942BC52B |
5A2A9929B6DD413FFEC9A1923D6B25A97B798292ADB106CDE8E46DB3A862D1B6 |
7A9F47656DD5DD977EEEA2DB2F31CECB7BCB62DE5DB3B9BA516F0D79B74FF5B5 |
D67957EC696CF27CCDEFDF9C2826793A5AA98B2831D937FFD53235C8F295A2A6 |
F90993465B37BCB28256ECBB699FDDCCFAD4D173CA65EF3782BEDCC1083FF5FC |
5A227D29D2FF16CBB4C23D6E371D08AEAA9A2B29F9A9788AB25327CEC5DF3E64 |
25E3679DFE7777FFF61663743079497F8A16A6572DE4FEC7D8EA97F22F3CFD62 |
67D653ADE329EEB1500E5C3B136FD73A327BD40BC342E3E159428E1C084CD237 |
F410120D452DD085B1FA921B069ECE07D2C924972C9AB6CECB2700E9FC6AC816 |
3B868604CA81A904135FB29524044DBD6C25EC7D7863A06740E1F80F333590ED |
060AC11DC043C460922C7909EFF7522543F89CF04B69F7248E77AD872F247A95 |
7C3EB677489D10CD5E8A9E2D799F92DF1D154A3D74071F9A112F613A150FC7A3 |
A36BD822C8A8AE5A0DA04988C40F4076C2EE835E89326C313316D643863EA54E |
C7E9B5013215D6603A0D9B803F68BD0E218EA7C469A7ED28B9E3F03CBAFCA863 |
F8C58248B1DBA1F54D3E18314602670E34506891920EAF85A09E121B179A9309 |
1C1D1D9D98989035964C27796BB17025808CCF20593E0D9DEBA34C59FCD7E228 |
170C0C1010D41F6C6C29EF3A8661889B4795170098E05AA9608092858C2928E9 |
D117870C809C13EB55DE5720AFE1207ECD6B5EF3CB5FFE12F1C073CF3DF79E7B |
EEC1EB60CC2880C02E82391F8DF7B2C0DBB2650B1443497994ADBE24D34CF698 |
B00C6C150A5D07E2F117EF99D2DCD3699EF965CB96F1C2892B0FEF2B0E2290B1 |
B42D425738BEDB1BDFF8C65FFDEA57C0A986EB96225D9429931AAF3566D894D4 |
DEFCBBE19FD27929DADEA04F133D4AA9996C9CF462A64D9BDA343798CCE8CDC4 |
6C7AFF3AE7AEBA930FFCCF4D5BA94477738B55FA969FE89C6FF49F545FB8304D |
17376834D0AE1C185C5B9E7BDE223E815696EEDC3B584CA729B6472F59B94CB2 |
E4D66E690DEF8D1D78C459935CFE4AB142B64FB6436E47AF274D5208FADD20D4 |
037DF54BA74B419CCC8E02C3609554014BE4694E81AF65295D1D2AAF2ADD3AE1 |
945CBA9362F194538CD1CD65F253E69585E0BAB98CE936AFEDC43432EDD595CF |
EDA6B4419BBD65DDD109AAC55275BD411D8D2EBE6CE3DDDB6FA1D0A7AFF56ADD |
05CC55FA6AC9DA89CE4BBD1A822519E4A8E6C1F2F11DCE3AEBAC471E7944D4DE |
83937FA49A7F7C03A72528EDD65B6FDDB87123F8FE31BC46BFD701972F921DF8 |
CEA2A0401D94021474D516A68C2D03DA8E3299C30F6C37241D01BAEE701E1E3D |
E04F166E2F9586076F080D57E617E6210414DA8583DD441B94473D397836BFD5 |
407F9F659961266C8C85016F52B4A001CB16A83C248A489998ACF141A8224D89 |
819E41008D1E9183455703F43E8813C511286031C0FC850580D3651D93F9B87B |
8C8AAA25CE653A9845EA058765B5D2A11066F846E644DC0E5149C02C8F6994F9 |
267A5048504E027460494889410C8AEFB366CD1A26082C8CB05DFE9EF56B2677 |
6694509AA40F41D0AB279090495411007D43793FDA3C80DD4B2628B2BC81321D |
0533E16FF883E0A2086C83CC24440E4ADBF92602E22D0807427CE0B314EA8367 |
9C71C6BFFDDBBF49C30DEA057EE5B9029285B41FA493229C281D9B615F428943 |
2C7D7878981F2159E7D227443C4541081817C5E28696C3B75AB162C59BDFFCE6 |
9FFDEC67A8590B294AF174BE270B09090CC0E20158214C253E01CE0D714C512F |
9D51193DBA95EF508D5A6ECCA78D34185BA15F5DD66FF0A7A7BDC2FDFD15734A |
057CB7F6D9EBCB4C61B63958B96B3E55341AD778039B620BB6635E99CDDBC61C |
D5E98A1020E73ECA5F3A5CF267AC2D669A729E1934AEA8B8C620DD35932B53A5 |
CFB692ED6E83D21766EAF1DA987EF281EDCFEB73D6803D506BCF27C8612B6232 |
96D59C669E8C3E2ACCD1424D6FA9728160A0DFF0E7BC924A148D595433C83512 |
09D6DFAB5FFAC6839BFEE6CE7DD73E9FF253DAF698D6707C8A3536962945F655 |
7A77BDAEE5C6BC5B4AE4F12594DD58AE2753FAD6C6AACEEA9DDD69D25B09970A |
AB56EEDBC3F3E3A0EA4AA07329029583205CD46933303000CF1B941580564919 |
C4126246DB898373DED37E96F875A3FB9D42BD1E9C1A012D0CE9689CF7BF7048 |
308F7A9A9C745B82D2038620496BD4D332C11E0FC7255B7204918E49C71D77DC |
39E79C73F3CD37470DBE2527B3C060CEB077EF5E7E04DF962F8CF647394460D2 |
61509A4CE53C2C26746185E26D5802C1964CC4795D3399946DC7C36E0166E8C5 |
31048948E40D9E22EDDD97C895C8F958305DDCFD60BBB02AE04551BA67289C9A |
CD76A7D375433502F2E368D37758CA90D6EB4FD28DC69AB018480A92DC004955 |
16A8EAA89E220C1A95011222C673317592038A3D804EC24C2E679E79E68F7FFC |
635E159EF06AB50A251AF100F8C4C4191DEDF82828A43CF25B6EB965EBD6AD6F |
7AD39BBEF39DEF500F07EDF08EED51CA906E18D40B66607240C1883D0807847E |
802084985C415830096791D4374493D82892EF21C55F2C00D07E47CADFF92796 |
134C66C20B586DE433F9AD99EFF39F48D1A1504C7EE0031F78ECB1C7F82AF4D7 |
F37B9DD7789CA8F4962223299217351F2C1EC61FAA7B80AD84F994D236094A31 |
697DEC631FFBDEF7BE0787095FF2EE77BFFB273FF909FF249E6ED8C7181E341B |
B95C499A785F77B66425FC62AC4E5BC89ACAF4DF5CAB6DB61A99AEB63E11182E |
A59C7E32DAD54473A8BE76A17FD73545CAE883EB7D7D33CDC692831B93F37DF3 |
ACC42736EBF1E270F3D6A9D8C6814672E1F4BB964DCE69F3F6FE65D7A51726BB |
AD2F76C7AB83935418A44695F675AF5B7B7C519FFCE9DEB78DBDF547DFF9499B |
997D4261F9268C78C330A95B4976C9F38D802C3BE6B5131EEB4E5633EB51DD4F |
F8414C2737AD3099BB8D1C352A39A2BA4E77F9B487F27766B5AE53D45BD60334 |
7E80F66D27EF4AA206ADBC81F234FA6BA346DBEA5AC536EE6FDB0B296DBCAF5D |
9C0C98B8EC84EED2BDF7DFF52FFFF22F3FFDE94F796579EAE0F18FC202520F2C |
16B81DA0435E91919191DFFCE637D874E0EC2CB37939586033FBE30FAC16202A |
26E11969DCBDC4954F11B3208AD10675016AC71F4A0C043DBC00F0496C347E2E |
6F2B1E1E7264014620E811E2E414BEC173750CCECE176EDFBEFDA28B2E3A44B5 |
3F8AE48011C063E029BDE4924B366CD8007CAD830A318AF760F002E74B1A11F3 |
A04F3DF5541EF1AF7FFD6BD6317B91C3450804E9918641FBAE8A01A6D28945FA |
B763A1AFDCF62388A4701A207E00E7B8F8A02003422ED3ED051434E4832A5BC1 |
5B1C15509A85ED2A66D16E853109C775C0D9A19EEB00B03BE20C4A98112B84E6 |
538847611B6B91869492C00AD55B448564D0E3869219154D2D00EF8300909A58 |
F909161885DE24303B987B6242C2EEE199BFEDB6DB98CBF31D10A70A7A686260 |
6DD4C3F010740AA0B6FD676C02EAF5AB411A2B7F03968ABA68D88FAC9DBDF7BD |
EF7DF4D147A3353B514910CDAFA79E2216CDF1E855962CD673892223B8727209 |
0F1EC51062069D77DE79DFF8C63798532050CC4F59B56A150B00D9EAF0D16327 |
A32053EA2DA21DC031997E881E0AE59D7A88437C21729982B01E82E9965F0A75 |
9BE83983D60E7847C119067608F44A8A80064B8EF262AB8362D94CFAAD267DF6 |
23E73E92FB567BB9EBDFBD4017C54F7BB9F3BB1FE8A97D23BCE112E4159331BF |
334359CA7FFCB4D2D8EF566E5E5B39BB5B3E71FFF885B9B9AEDBAF77A6AF70B3 |
43D9E062CDBBC96B76EBA3D70DD4F35EAD55A6CBA86F3A5EFEE70E5563AA57CA |
906FFD2D75D7115D4D5465153F9149655FFD27AFF9E1FFFE7FBDA64BBE4141C6 |
A272173DCBEA0379DFB1CCF68CDDA5985E7032E9BA56A37289E8B6876EDBF8E9 |
4D093F7E5CDF492F7476D76E9856E6C2A594AE9A75CDCD9C67D512197A744135 |
78E9927115253BE95AAC699FE3EBF10C7DBD16CC675A54B374EA4B65E79A5ED6 |
D5EBFEA2051CF4E03AB408A2A298CEC829807B16DF4023812F8EA717332F590C |
922116EDC02A697BD18E524B2481A46020E10DA92EFF85B8DA310EE97F87DBE2 |
FEB06CC055C40326E70B33912E2647F3EEC240870709F43F3434B4B0B070B4F1 |
0BF0300BCE0B2EB8E0DE7BEFE51903AEE5E2CC44C5E6C16F7B798A3C4D3C1AA9 |
DF0B75BD98F8FA81CAB9B8ED99DF69BAEA64A3FAC8F38A2658A065B2A9507D8F |
C1D50E3E82D491681EAE645B4A6D459894197AABDC45BD9B0581246620CA04F6 |
51ABB796188BFF61AC867A863C381A6C0249FF124387B7316AEE60BE09E39647 |
48C2A5D6C3DE11D3817A90FA12CFC0F7C27C014924025F2AC811A762E6CBB785 |
EF0FC9736F7FFBDB7FF7BBDFF1F9D2274BD22744E9C0AB09C2D4B1ABCCA5CF0C |
2AE34535403725F882EEB8E30E66C4D0DC257D1BD24EEFA1F36332F93E0826A3 |
1393DC4D42BBE0FE306830F310337C2D5FC57CFFAAABAEBAF5D65B4F3FFDF45F |
FEF2977C02B0B2F97C5609C1F7A3705D902802C42D681CD8F6626B8B77084637 |
6C4D417245E60F2243407E851B5378132A3CD0A4017A6BD49B816072349D7789 |
2302B2BCD6688C27FDC98EAAD03DEDDCD35FF0A632BE51F25B3462D1F5B3995A |
2C4E7AD5EE0CB7ED8A7D6AB53D4F57EF51B502F7D3D0DFC6676D876EA754D76F |
53BF776F91F6123DA4A5CF4DB7066ADEE589E5FDF9FDC601E6F879ED55A52B7F |
9B6D24ABF966F62CD3CAB98D16B56EA395CB56B62B9D85F2BC9D31DB1E4F7EB6 |
5E6A1A4937D029A8997DC648C92B53A2CEC49DA95B15AB15A2B8919DA43E4B2B |
CE06C974A2E15AA36DBB9A0CCA1F9DED4F0CFB771B3C9BD5ECECD0952B835A61 |
EEEEA7AC4FA4FB83427067C721AD78CA01EB03C1F2F9B5BB1EDA65C7FBDA9DF2 |
783E3D39532723667B4E475B04BBBCF4D24B79A1110A963A5B487491074CFF3C |
C9122A135315AA34D6081422DB279A810667E092C282287FC00AC29CC597C8DB |
9101FCFF3FA25E7ED1F191D813F4F01079B428DF8382EFF5DA8D2D01C03FE2FD |
E1028D56C883928F16E7C0BC095B081601E5223DCB509F86BB80AD874E9E0CAB |
42AC91099B40396BC8237443379006A0D246BBBDD076988713A26001195555D8 |
A6D3A9B86DF00D51030C3E224AA56407058B1E9E26B23242CEAC4E761D81B453 |
6E223E81A9815F8969083A45A7E3C87B2FF16E1D4D1C0003955974C8C4A94707 |
244576720758A63B77EE3CDC3BE41EDA10867A317DC48725584A117F9A642546 |
79280400D41CD4BBF284BFFEF5AF7FEAA9A72421075998E3E3E3BFFDED6FA1D5 |
4611DF2812BD80475B7A49D27FE464C40771DFB3E5C1BB5480DE90960AA92019 |
4414A9E4126924FDD7F45E3BF8833EC39E24C036161287CCC39686D20D5D5B3A |
3383B1E272FE098A3C7FCF860282283C27FC014A03EAFB99C6E6E6E6600563C9 |
24440F0308C684C4DE510301414B3D990AAEC4AF8F2FB1D3F8A14801E06F56AE |
5CC9E344F3292902122B500E90B11A33750A757DAED04767D7A9D4A06F299C51 |
6A91F1398B82EEF01752072A0DBA6C356953E6F5EDBE34B53E439D117237D1EB |
97AD7AF293AD6429DB79748777B931FCD2F1ADAFEE56FD26FB28FBD70937659F |
B1FB847F5BF30B4A527E2395A8A08DF68D4DED702E1B9D5D3B94B8E837ED2405 |
555E2DB32F93AB55175477039D743B6D9F57277F75F3EE89D77493BF4A5654A7 |
B0DDF1E107D86E49EFCECFD04707FA9385E2DD2F2E0B964F34F6F3B3C855E0FD |
6BAE3B6E6E4FB1F64051F54CBE707CA6364977AA9F56DCB26AB2B6DFDBEAE936 |
F97F47B49A5874D9CD78BB1990D14D745557C72095E86F34CB1480CE99362425 |
543CA8121F6255E037BFF98D88559E79605249953802C56CFC9D79E699FFFCCF |
FF8CD22A7043F10E1D9E3913651190047003F042F3BE4352F87FADFEE6680744 |
11A811881AF014A1DB2086C184FDCE77BEF3073FF88154DD3319034D32CA728F |
787FA65E7808A0D442B3040F3FE2F95059500EC9F20F9507128D20891344A1BE |
3020AC8D0452A2448EFFB13C507C30EC5EA0A0A3490FBB1007618362851DCDD6 |
8032CFC90D6B8053903F602B5833F02FE4D2429EC365A7FA9B41AABB41980D8C |
EA3613D13995D23A3D8DE46E16BAB4D8E878B1F1D97F2809F87B9CB244760AD1 |
88E78767960925EA4A5B729891C6E8E2F991AC5E30233843056356AC5AB83E70 |
1A824848E343E210533FA2E23C18EC04F06E742C90326C3AB4100C5B453A8589 |
0D7EC4C1A3F840462BC529F0A403A07BFBF6EDEBD7AFE7B5BBF8E28BB76DDB16 |
9504925F403D7DFF4FFEE44F7EF6B39FD1A1991B52AA2A85BE92CC13F4DA4163 |
D544EC51CFA729793B52508A51494C42F82F2F1382D530022074974426F9C35B |
DFFAD6A79F7E1A211C5C2B8036D11C4149796202608B306A0DC06F0B2B04A920 |
E8B41CAD4C167A008F3BFFBA6BEFDF705D438F8FDE90335B8DFD371673BEC218 |
6ADE1450333E7843AD46FE28D19EBB88A658BBA7646A55E2AA995DD40AD6E4B5 |
574AFDEB8716C666699652B78C25C86952D3A0746DE50CFD0DADABAED877FC7C |
7C53D3ED50814626687AE4B2E533AB4AEE144B9FFE95DD3503D6C8330F7E875A |
F1D599FE5A71CA20DD61FBE35A37A12FAB7D7E62A84CB359323627BD058BEE2E |
E72B03A5DCC2E0679727ADFCBECFFFD6A8F61335FC81CEEAF6F257683F5D68D0 |
80D7D734CD8A6EB8E9992F36A8D261B955FE30D1F1441D23995ED39E2FF9B7CF |
B378B05A89D06BD359A627A71D6ABBCDD3060B2FCDCD41E16506C41308DA831B |
44504378BDFEECCFFEEC99679E618E8C0E5F506BB04D24590B0A2B5ADA89E22C |
196251492086F2E192807AD6ED473EF291AF7CE52BFC38A4AB1DA308EBF73A82 |
5E17491E3C53CBE4E46434082150C1002C40D49A498BB522E07FF00C88DFE218 |
F7E717B9E4924B5887E369E1CF12EA3B12DF53EECA73CF3DF7F1C71F476B0451 |
E9164F88D6CB09005E14E148EB35F0025F0B7CA3EB2C3A1CF4B0A3248A0B54BE |
28AC02C5913DFE326C3FA0129C6331856147615041B53AB04C546349E9070215 |
08B249A6A6A12B273B3F364C305F3461D20A61283D3DA384AA6984A2A5E7FA43 |
1D426FA58F9A0CC6D68034A10A139C8C5E94C297F2286164388E98452A14ECF5 |
3A0151E86D148C62D886D10476B82920E42EBFFCF2871E7A88B9BCD42E51CF8A |
E45F5971609D94FFDCBC79F3D6AD5BA3AE6DBF07F52A1C135C0F0A2F531E440B |
96EF18D9B4D4535B446D877012B05C747A9040964C545412200620FD3579B488 |
2D47D5E468D85C582418BADEEB780CB583A999FF44011A20C3786FE83DF06710 |
277611F4005124E5154E38E1841D3B7640A844571067C21247A889C25AE82BAF |
BCF2AEBBEE02B48B38D32017BD5EE307C13C001008B30C7ED6BBDEF5AEEF7FFF |
FB22EDA4B44760C2165177BADD01D2172C7FC81E9FED4E525C29CAA6D3EABA85 |
9439E7BBD4A4611A99B1A7D7B413AF906E51E3641AFCB5E5BD2655FA558C52B3 |
892CE9532B1A997D9AA719CD608C96EDB37C5A71C0DE994E12EB8AB1629F93F6 |
F375B34A1D2FDFA02E696DCAA663462556CC2BD0379639292DDF61BDD2D45CC3 |
A5649CEA6D2319780D8A79234690262A25D34EB155253DA6C79CA04381415A82 |
823AE5A9DFF4BA256265229B1F199B9D7925EB5B35BD1A142839936D6A7E7F90 |
2959B5205E3FA5662F507B3A4BD9EAA81B2B074EFC9607EFBDECD273E2B55685 |
620327AD715E78A9DAF3E748D2B05075346D0C6127AC35B810C80C2E5C419F86 |
F2843421E90FECF5FA0E2D01A15BC2106547C88222E4030BEF0F152790F2025D |
F5431C442682A459A38C94227D5BAFBAEAAAC71E7B8C6500BCA0482E5A124858 |
F222A822460A06A25CC7C810A15078202F513CC3D063166FA8F7BA6F4B948687 |
F2377FF3370F3FFC30222A4B52D471996455C3C32EC556180A96192BA71D84B6 |
8E499486FF5CB76E1D6F5AA041457BEEF0ACA1EFB9549DF0377C0E343E3C1A45 |
55FF6121F5D1A603E569E026200B985AD1BE6E18AD8C8122B1264979122EC9C3 |
F8C0073EF0E4934FBEFCF2CBD1EC5210BA981A60BBF08A88298A97F27BEDD1FF |
0F6BDF016E5755A6BD7639BDDC967B736F3A692410AA140584D15F0699E12723 |
088A44414A88940086DE49883409485740616823CCC83FA28C604544541008A8 |
A1842484F4DBEFE9E7ECF27FFBBC77BFAE9C5BC6CC781E8CE79EB3CFDE6BAFBD |
D657DFEFFDD03B130B852DD7B158E59C08E000F4460E06AE60F80188AE906A9F |
DA85E62A0D6156DC003580F9D1C9DFC1A6896EF52A2C3E00FE01B4A980FDB08D |
0C26904F9C248EC8E9E1BA10AF8C9ED11985F9D68019E7F8D918B9018F84C091 |
4C144C753958962BBC28FD99822F8C905F4A19FAA93027D916C2AFD7BECA39B1 |
00A02144679C7BEEB96C2061689C1F54452CFAA33B0213018694281579E8F268 |
109EC6A8701898D71AEE4E85982E766AE31AD697B42E4F55182D047209F450C8 |
FF6391AC5CB9F2965B6E41EF04C8538C561CF872A52CD695E33A99742697AF83 |
792C3B30F0EA2F2C3639183B972E9A1EDE09469288AAA21FF7E23555A9C64BAA |
4BA53E918A4D8F0CAA81784BAC6454BCAD2ADD946E1D68DBF8AF1FAA8A8AD562 |
B49F0827C5D3418E0D33897A0E38BB148E04A14055D0C8A5E1C2BA45794F5A30 |
59187230E8D3C5E5BDFDF6DB11548101013611152699E4898BC58687AB979DC3 |
9B619E0C4B94396A23ACF397635849809BFAD6B7BE75E9A597C2C7D563AAC6D8 |
F54FDC714AC33D370424B198711EB4445621F4886053D2B83234ED877CA0C119 |
28CEE408D6B5C224944B226BAF5BAC0DB05F999D934E3AE9D9679FC540E581ED |
BFFFFE7FF8C31F10ED8188D7A151322F627B02FC87A276440C914BD49F3D0676 |
C10517DC73CF3D679E79A65C42A4123A30205D3E7EF463AC17AB4FE58D6C3FB9 |
1DD9637269403F756C65835C6BD004244144CE59F6AA88CB860A031D260B7340 |
9780469DBD52AE8E9B9501806D117707412CF7FBF6DB6FB3940993061D00D358 |
261039B7871E7A48FC0C4876CA7A02C3E8E1A9907E07FA064E18DC179D4807B4 |
A3C83D88452CC31337560C6AEE5596A4226085403CC02130D61004A3ED838785 |
2985F213F304ACD448A3314CD400EE52612F01D6A642D5C93DA2659B7C78C619 |
673CF8E0833257328C030F3CF0A5975E9201C83172FBC0628D84D951E520DA00 |
13B2014B2EC6D0D9679F4D620CD040A199877C020E252A48F80ACC5202042597 |
9663B033111000FC494E2553812A04B194019FD58B1EB095E43DD22440EEE923 |
F7B517EF8B385DF86AD8B9B366CD5ABC78F1C5175F8C4709C34E4E8E624F72CF |
89F34E235494412A19F0E06EDDB6D50F6157D0FAF2F3B973E7BEF1C61BD031D8 |
ADF07DE11A7AA6279EB6E904E1E29A72FDA8A35A6545AAE49AA0F197B2D49CBD |
66BDBFFA83F668AB2AAB844A6E549BC8BB0E510B64271E1CA0BD3260021FF434 |
5BC33AA170E4DDB19F04EC1E91FB37DC70834EE08C29924B602D8961BE62C50A |
CC1E7007FBEEBB2F36A0D8439FFAD4A77EF9CB5FCA36673D3F942841417A630C |
15468C919BA5670C3F1821711992BC418DC558724C5697AC19D929722F18A45E |
5E0A898A4028F0177E48CC85F1A3565C26D0D0CAEFF9D0915D184655D0EE503B |
973FF0CF06A2283A2CF8562E70DA69A78918A259F4C94F7E52B62289C3B0B209 |
10924F0E39E490DFFDEE77320BA2AF0E3FFCF0E79F7F5E6E12592059A91022D0 |
810014EA64B9F273D91872186BA0765513C06BD32BABA1128E3BEEB8279E7802 |
063BC42E79CC47D50488B3E30CBA49082BC9D2BA2A32D7EA84AD895142CC3B62 |
441BE16C76B8C484E306D1C000F25DBE85AD4D520A7E258F524E059313B60971 |
FDB8048D6BE25977DF7DF777DF7D17FA03F97CAA2298A2F8C957BFFAD5679E79 |
46264A34048BEC1B6A9E47E26718C0012D15C6CC0E3F7410F5C615FA3EC79A81 |
EF22EF31CFB4B519E81795299B0490593918841F4658028D08BE9E59D1435B0D |
D21F5E1A14839C6ADBB66DB22CD1040D5548101F2AA4365221028DC5E4465896 |
0F64019C33A87C166D88712352099623C4840A5B96C2AB867DC79E27728370CB |
1A7480AE0CF4541F6E102E1DB24DB05AA898C9124667CEAD3920218EC7E2E21C |
44ECC870D54BA54CE3C90FA9B901A8D33581625940441E4DD42D7BCD89E621B1 |
23ED78C991B564B6354FDD31B023D39CC90DF528C3893767CB22735C4F793502 |
6000AD66298FDEE7551EBD5C572C4873441713A511F8C04EB2B5767E346EB8CB |
B0FE11C703A73DAFA2079AE8D0EB192C9937391231123445C06010F8C20FA114 |
11AEA1AB043A55FA9A62576DDEBC99BEE3F8DCA84A6364C26EA52781F3B3EC14 |
4CF8C0A3CBB74B962C11C90C390C0B0CD9889B6FBE59749E1C802639C32B1FB7 |
47F6693C51241FE0A661859109998741CAC35E80FD05C8871D766ED3DBF01A5A |
8F5934FDC149C26E1E4A5733B23290D6C3D9E4C9C17E9437575F7DB5DC062B47 |
46AD211CFF853D46383F5C24885799049926F0EFCBB77ABB18355A74083C8274 |
BE987534B4B662B47095D6B6176101B6A284EEE4AC2233A6A72B10BBC350653F |
C83C33CF09C187B81CF63606D3A0DD55E893913D1BD90E99E7E38F3FFEBFFEEB |
BF101663EB54F02DB35F87EC43B128C94501150218BE5C052E1D3C5698727077 |
74F88D08BE55AB5671A5C96F9118973FE1A3E8B86FBDB25D3E972722AB1F03C6 |
0DCA6F211949BDB268D1A25FFDEA57B2FDE0EE10FF437DE087E520CC2BFA5A2F |
7B926430D476D34D375D74D1450CE241DEE191017A0BA6103864D00D308A61EE |
60C1134B8674E897BFFCE5471E7984257B903B205051F52E46B810824E5E9D80 |
1E8A138D09291AF45C1157B519F6F0928725DA4BF60B584CE0F6A1890A5A9C02 |
454E6C95AE291B9A8C2E5DBA546C6479A67A300015588471332CE385E49786A5 |
7C4F45A2A653F132665614A568877E73473A13AF55829A92DEA15EC7AD434F9A |
54AC37869BD26D50150279B17A91E0916D221624C22F0C1ED2B7237498C2048D |
30E58DEC05BD81848C5F8E073218B15FE869DA855806549C88828ADC9793C07D |
817205C7143252D004ACDD55A1EB3973E64C343883E1084B02060D4AE245FA31 |
0532AABCE20A4719DA75F5976E78C96A843DC40E57B40918A5471890110EB652 |
90CFF7DC734F5106C1572C76807D8DB821A41534219E10CB3D08E4C02260DD1A |
6AF4654E658B62047A81156BED20D98DB0833994B33C15D9B7B05861BCA011B3 |
4C2ECF2CBF5AB972A5A832552FC592F3C3F2DD559F80B11A0C03134D6028E965 |
F8B47444668326406C17863F5B02E8B5827A1C938B9B790815A2179406C484BB |
07A9EA87C5623073F838792F0D9602A4B3596FDF212B1B95D840DC536BC2D982 |
2A82972ACB914DD8A95FF51239F917DD1174B9432D45AA38EC1052FEE259FB5A |
4BD806BE0D864739BDDCD59C3D1807071D749078E8885BAAB067131E16CAB069 |
BB60DD62C5EAACA23A8E8881323F2419D69BA0118084F40602A488B162C0B2B7 |
452322942A577742427F15B640F143BE232C09A82EB499459608DB9E8E0E84B2 |
1FD260C0AA45F25CECA43FFFF9CF7230DAA072F57ADE4E3039CC1556086C05C0 |
5E450163FD40D72E5CB8F0E5975F460F06CC8F0A5D2BE84E18F80C5FC857C82E |
40E1212C8E0223B0B7325408B349F663D0C9A7BB54F40BAEE9056059334859C7 |
8D98E1AA8A55C9C6D22BAFBCE1EA2BAFF1828FCBB174BCAF3014E424723958CA |
0DE45A2441C13D82528280E6064DE085AC7346D8E91626300A7AD91990E5324A |
AB48A00C046C5A77351031C318E8BB6085C8AC229E2CE2E888238E78E5955744 |
F44136CA835BB76E9D5C6BC18205B274C9622B9FC8BF286E07F3920871F9641C |
F42A03A4D0EB90C3DCAD20FD95AB8B29E987EC7544D3827D9DEB1F7E09A617EC |
06ECD813F8C17A424369863C878E38323FD14D4BC2E181FF613A1408303A7A7A |
3735849245EE234B83C7A33735158DB77CF9F2BDF7DE7BCD9A35F22BBD430818 |
076131192133DFF85DD9469D591DE341C58BC02E90F530A8C7F7099898D2A920 |
94467F36521340F9CBD431E462860D5820586953E82077F8580C205C72C925F2 |
13718C54BD3C4ABE7DECB1C7BEF8C52FCAE4639135DCAF11F2AA63D87A2C150D |
C58032F6EB251D93274F965B868A3DF4D043FFF11FFFF1DA6BAF453047B40E62 |
1D3245A83F97C364C58BFF342AAC1E86368BE910FAA328914BDF79E79DF2ACD9 |
F95957007A72057500B255C21274476911E1060982C005BD522812C838236499 |
1F993196D9868741F4841912CD637E7EF0831F1C77DC71B82F36FE6572986254 |
664FE42C82605C96640DA1DC9419209B02E27B9840EC3B5DAF90AE5985F5EA6A |
4474482785C57A03380AA5124830C820E55AD89E2C2BC56226F2ADEAD4FC3A31 |
7DC08956DF059F3FE184679F7D3662D9082E119BE06A8CD01C304DF8A497CC3B |
052B61556A653B6B3945591566AD0288AEB2636927573394ED2BC38E46ED68A4 |
56EA21808D082EC406F41213AF4EC14BDDA946448768BF631AAFB9E61A518767 |
9E79266D173122BFF18D6F900C4E9EC257BFFAD5EF7FFFFB4842807E91061981 |
C8787CB4634470C91BEC4DE84BB862E0D9D6AB64E03DCB8264CF6D3D4DA84216 |
5819F0C9279FFCF0C30F8F857C41B90FB53E1B0592B7A65EB615A403E56CA8D3 |
1475856AD0AF7DED6B6243204B4CA18DEB72F5C2EF0C3C213BECCF494B164DB2 |
C46611CF058D23C092A6633375BF03D6CD70F7E39DABFC8DB02A8D85AFF09A51 |
DC0F298FCD8CF701935D5B9B0C179B479602E8C5313CB22EE366C6EF1C3DD64B |
4F3191E58A71797972402EEAD5DEA36A827DF6D9E7CD37DFD4BD728A753D2EA4 |
42AF65AFBDF6423B75CE898C5FA6579C4759A0575C71051EB9EC5E996D98A832 |
C93251321E91C24064C933C692D5EF888D3860A4C806903F41AB0086615C94C8 |
0AE210E0525099E9C4D724D880ADC70D46E89E5C4B3EDC6FBFFD5E7CF1456287 |
B0AA8CB0E96903C912910C729EEF7CE73BB24CA93CD08009EE97DE9B9E1055DC |
293C0F99A879F3E6897B8BF5094B45EF1F80F81E66A3A1A72BB3B2106AE0B313 |
2D250E321A012201836727C7E8D14B8428DDB0B939B429F00EF208649BA14689 |
56987C227375C209273CFEF8E3A8828618C54C42C41C79E4916FBCF186A8DBF3 |
CE3B0F5E20B058EECEFCFBF2DCE1F23728030A622E51155A912C18545A56402E |
819C1C641359A70286926C5067270BF763071C209672F78E1D071C78E0EBAFBF |
9E88C5A10690C186A403648B4DB2B0EB0F3CF0C0575F7DB57E41131D412CDBF4 |
55CD3045EFAAAEB6A66AA53438580DBE33544B73B6BB3F785E4EBDE1C73BEFBC |
C391433D23CD2E2B4AB6A47833AB56AD62B9C6581963FA76B232FD7A6325AC5B |
3488C7F280BB8675E587CD97704EEAEC61DAFC7A4295E10D55C78843E6C890E4 |
3C22FA4F39E594471E7984521187A9BA13AFA78EED7A3B29B91609B810CE829C |
11D52B6B6C2C3986B0A45C51CE8600805E748915C5561F64DF83DB87841F295E |
4E3DF554598A30AC451C89B322A75DBC78F18F7EF423116586528D7D90B1F264 |
75DE71C71D981ADC21F649038B35741D53A6447C2ACDBD6880963361C81E2F78 |
06645C805442CA450F72899494ADE8876D0BBDB077D52E6902FAB33CAD2CA045 |
8B163DF5D45308BED31E1F1F3B74D6596789BE45C81841244C051E3086C714A5 |
8C538EBFEFBEFBE8C61A1ADE19469CDEC30BA515AA6EE3CBE310D3469C00B928 |
34965C428497083B6A592803A43AB83E743A176249E5F8B973E78A2E9147B362 |
C58ACB2FBF1C76B41C7CF5D557035941D30637020B1714BBF23988AB00EC83DF |
4D681A2423FC1B72C7637F12950FA790D38BC9612B12C4CDE018E9C607664637 |
D9B0F431E140FE91FE9EABB1214A698448732E60CC1E1B2892291E8F8F9CA64A |
6B164813D8A817BEAAB0F796CCCCCC9933376CD80099025F5EAECB4E9648F6A8 |
B075B01FF6B983B30F61C43A29BDF3EBB265CBEEBFFF7E6A74B5337C884A4E67 |
1F81D8822AA2954ABE261DD8CA569156C4C60C603306A160D9AA32D44D9B7557 |
8F738B7940FB074CB218DDD75F7FBD1B712D23E2965426DA52A9969356B4EC0E |
5981C44F2613F1FE52CFEDF7DE7AE1F91706B50EBE9D9DD059E8D92ACB5BB612 |
8C7A1D11DB809B209A685414290B42196E0526827176B44D85CF07B34385D9EF |
E5CB9723F84EBE2C151AF5D8D75EC8684BB98727855024AC5E53238AC7018030 |
81044C85D14E33EC11C4A8C031C71CF3F2CB2FE39851E5158C3FB1176FBFFD76 |
DC025ED83BB0AA75D812E78DF2446FC607E987A8264F85E91A4E9A21A649C171 |
F1C517A3AC1473C73DA03BEF7C11CDAA347A3F63E7FA2CDC39D4039366B6D67C |
910B8E68076A29A868887EEC55276C1F6184EC6F720BF07C891EE17251611212 |
37ABE3E86109227A0B2416451E6E0AF4380C5C288D129515C53803828050B93A |
FA05721F4E7A83F8232F901E7482294D162AFDB9A24440BE15252D020237880D |
19A9B7B6674E15F303F35F4F5953A521CC8DA6D890744C62A34900D48C39A221 |
9FEEEB5000A930948901E8313D1A59242B84DB27C688685FA807B9288985C1F3 |
C3943BC98E18DAA2BCC6EA62210288DAE10FE938576A4452F2B1A8751C4B0227 |
64032CE4BA1B0A627153E4F293338B258ED2717ACC7AECBBA19595CE57D13063 |
E6CE4CC5486881D389620ED60CD40662C40DD00FD428E1276ED8154369291908 |
743CC4E6D696DEEE1E64051070838809503795EAF9E79D77F79D7779F5EEAF55 |
D7E9ECEADABA6D6B045814314DEA2E7B801728058D6F915110C5230A4F477FA2 |
5E92EE230026E813202B4D4C2559D5A84096BBB8F3E6C7965DFEB572B55FD472 |
3CA0B95365BBFEAEA0521151D1BEE3F9CA8E541D2FA68C36235B6936FBFAFB22 |
513B914AF50EF44592899AEF2AA72ABF84690B418C7808A65A36D4BFFCCBBFC8 |
2224BE0EE2054F8A2645432EBAE175E28927FEF4A73F9555A7734A52BE515A72 |
CB8F65FBE3E74EBD0F20001414BC38805B1BC20A0A9E9179063FC9398A957FD5 |
5557898636C2DA171CC6421FE66044241A348E509EC3CA055846E066F1B51E72 |
90DABA26D043F6B80D3F2CB8C0EEE5ECEB6DDFC54FB9E28A2BC4BA641E95FD89 |
98FA00C61F420AE83A64E1611EE2B6115EC45E82850EA23A582BBE06E544D6A8 |
527FC949F6DB6F3F7191C4DA525A0299803906BB98DEC4551AA04A50B094DADC |
5A8844D37831762E7A46E68740F5B1006488ADDF73CF3DE79C730E82E0E207E8 |
6D2E503404AF93296EC66A78E9918BCFD02A5FA8BCE5D9E91A547C76B9BA3C11 |
314900FC1F5513407620933667CE1C315E706959796C5B4FD74407712F58B0E0 |
4F7FFA930AD1113A91A71FB6F1A1A2153F52242CF6159E239B08B21E95306A31 |
BAD7AD5B879D00FB403E419602FA0FC012344733C6ADE881214F9A6B82885498 |
CF00993683B02A0CE86349109B88A019ABFFB06869C0E2A6C435917B64EF2ACA |
6EEA2AB89E884D312CC082505AEB2A0C54C22301732A8DEB063797EDFF6A6E98 |
802997A74D9FBE71C3873299224383C68D22DFA3B1A64CB6BBB75B86228EBCE3 |
B94EAD3665EA5434650A826640AFCA6248A521AA66CD9A25730E1B16BC9318B3 |
1EB6D25F3A824E164FC24CF4E47A94ADEC9865BB11A3AC5CE577B44EE8F7870A |
03410F9D20239D8CCAD655554F95ABE2E3B47774746FDFC1923779225081B0C0 |
E45EC4F810DB5F85207D59ED24FB827572C61967C87623421A930FC3D1189709 |
4E64971C090523EFE5DEFFF8C73FF20018130D1CAB0D2F5AD24494C924ECBEFB |
EEBFFFFDEFCDB069AB0ABD583DB822FB54563B6C23206E182B237C03AE764329 |
1CE4E709279CF0E28B2F8A6031EEBEFB6E999D0B2EB840B40757338B5A555889 |
6AEFDC056DA426B0C2C6B68CB521804EF14AA0CBF3CF3FBF70E142F605436D14 |
5D4E142DCBCF3FFEF18FCB443CF6D863AAEEEAD2B263A1044C36E09D4467C8F2 |
BAE5965BAEBDF65A621F59F1CF4782370084A9907713163460C5985CF6A44471 |
265405A0234458C9B432CC8517A00EB88A1FF6DED16709C0245A7378BABA9268 |
C84813DC42D0025ABBC01DD1CBC7B0C3C11D0BE14E114301C4E8163E9F397326 |
A0C47AD2DB0871D923316DE3FB042C5F045A4E8FDA5336C175F3C326D523410A |
E81600B31D8781A051DE7FE10B5F78FAE9A765CC6BD6ACE10F59798B34924E83 |
21CB46EC0C2043D85E18021DE06B15AAE7716C349A239867311DDE78E30DF079 |
20062807A061192AA1E0E14D9C38110D78E500D42260D93CFAE8A35FFEF2971B |
101946C85C2BA71551F8EAABAF8AF4A4A1A7429E57B9D3F7DF7F9F8B1F421FA4 |
AAA89FBAF7DE7BB76EDD7ADE79E7C96F41D78AFDA527BA466E6133EC3911C0DE |
5C4724A823EBAAADADAFB73762FF95C34A0E9D38A1BDA7A7BBAB6BD2574E3DF5 |
DB0F3DD0135A0CA9BA7D06804D20E9643DABE1F52C4256E60D8E2F11B7327271 |
FE56AF5E4D07143B4B8F8D4C9F3EFD631FFBD8CF7FFACC60C16FEA6C1DDC3194 |
6C9AE0E72A76D5355465285951D1A42A155557FB5E9F392CD539A15CADB4B5B4 |
FEEAAE87DDDE814853B6D637944E37950673E948A25C2D55D470FB0A993A3939 |
BC6A481ED9B04B962CB9E9A69B101B0731BB8C04C13DCC1556A00A1357235FAC |
2B82DDADEA6860E463910987B3FE57A2B77149219990C0948A69850C0A57BB0A |
F331B0B490E644A90D1BD9CB0A975574F9E597DF7EFBEDA86D3442F6DC8605A0 |
7F6280631DE509B06E20FAE54FB9B08C89F529AED6A2A4412250F4E0E972E5D1 |
E66221229C412C655DC0A1A11D6A4DA90021FD91EFC293606D14E3512C7CA31A |
23530D30D4F09759DBA5C2649D1EADC21D61C5E0A28C20E187944DB82F54E7FE |
D33FFDD30F7EF003F2FC8872FECB5FFEC2506683A5DF20EECD90B25F850E0727 |
135246AFC052A1D9CE02EC8660820ACDBD913B5F0F20B2C60DCBB42191235BF4 |
BDF7DE03D85FCE03F62179461F7CF081BE7C1B34018A6621A42EBDF4D2E5CB97 |
C35A477CC90FCB35B197F0F86002C383214150C362D5390C6478225245BCD2DD |
41051FEBA4989AC685108D45B39D6F7CE31BE2516149C84F90AE40621F6B637C |
F49E0C006073F6A48466E215E7CD9B27F3C37811560810E86083515A753D1E2B |
3C579E8A570414986104A595884340809912312E18FB726660E4116F210E183F |
87EA8210912BD235D71D2FB8208126AB96DB2776766FDB164F24AAE54AC4B2E5 |
818A6AB9E6EAABDA27C8257A975D78E17DDFBE3F572CF986B262B6E10CBB14CC |
4B317380CC3F537D08A6333BADF76BC48BF90C848FD0843557ED37ABC6E7177E |
F987CFFD57BEDC7FEE154BFFF3D9FFF8E89D0FF75FF42F833D7D895832D6D632 |
643B564BBAA92DE3D59CDDED66B75CDD63F6DCAB4F597CCD8D372FBFE0D21659 |
840343B5D0EF5161FB5F465995D6234CBC0151D532A5A2C04E3BEDB43BEFBC53 |
A674EEDCB96FBDF596D280CBA3BEE83B62E9CE9E3DFBB8E38E7BE0810774E0B5 |
D290BE639D04F15818F2A024C1E6451E113589D037EC828E5404B0FB7223279E |
78E20B2FBC207308AA342C3FF42D80ED6586AD34D93B5DEE572E144830DDA9C4 |
8B4210D12E0C056B0BBE42C30D34DC06592F1AD63A36338E214F11B468C339D9 |
39C4083BD8302189CA6CC0849165C5A335EA7072F69C22EC0C1905E2791CAD53 |
23350D14061687085F99474837F9B91C2CA745E8B0010C209F88E5421F5085B6 |
A72E8B59C42467869E20FD062ECD1244F69F516171197D1179CC326FF042C8A0 |
22D6B1B884E0CB94334035227A48D93AB2029E1A48DEAF58B1E28E3BEE90478F |
821455B765742808240E1E9CAC69E69046F509D8915C66462F9F46F48CDC4DA8 |
4ED2C783FB92BB100101F38760369C1CF7C50A0F92A7A24E0A4B02974358569E |
02AAAC093005FA88C5F70830928463ACD09CEC10F99795BD871C72C8B1C71E7B |
CD35D710906A694D78BC90C714EF81E1031D855C0BDFB2A486250B542A0DE5D9 |
BA4FA0EAFDA53FF7B9CF3DF4D04372BFB040010F65933823A49AD1DD2CA425F5 |
58AB5E513152139C73FED2DB6E095A0DDF74E34D975F76595B738B5B730A859C |
A50211912F06935CB7268CAAEFB7777594868A30B09811D14962C08682A6D324 |
1A411D22884549CB886130A54F1DACE2B65D8E4C34DA86FCEE42A6E2C5D5EC45 |
F387DC4AA9BF734A4BA73354154DD432A5B3E4560CD3DD73F7DD95E365641957 |
9C8FEDB967617BEFEE9D53177EFC3386A5D276062806B9220033E83B02D5C872 |
62520F7057E2A6E43D56DA58EB84F1E4A04F571DB980FE2262268A1A164F8E1D |
E709A71CF53C7AD00FB307BA56E600648BA13D09C4BDD888E2316CD8B0816021 |
78E4682028D30EBB56C48E582AE4EC82D8C1D6D0B36E8A1DEDC1FD828D0AE1BB |
60C102B110B18688171A35E28C174BBDB91C193180B745A50A57803507B0D720 |
1464F4F215F6364B01551803A545831828902A8C6C3099819A389A7BFECED598 |
2A841C307C063D0196189D504C27B9C37A65E8D0D788A05588D992C9959B02DA |
97280296C0201E876A0E164FB2F5152BEC5518AE110BE54B5FFA129009089BA0 |
B30726845B1D77443F06F30399A847DE9596C4C6E554DD44D2BB4ECAFAC013C4 |
FD32DA08FCEE7F9B319653C91AFDFEF7BF0FF00CD24BFAB40310C566553AA99C |
1C2FA2F6E5975F461601EDD26068A3F92D348AE82459D63A7A0D3681BEEA8CB0 |
231091547ABDC2AC59B3648181255F8DDB13CA0F2B7A9033C7228122871CC71C |
C29250F5280DEC5FA05A6100A26A4F85D65510FEAEB766D46F01F10779C4F2B9 |
CC838C9F6421E4AA43B1217C771883FA4DE97945F1E0456DDC77DF7D3009119E |
028642A7385423A24362E9D72A552308BF1B93DA276EEFDE662A639FF97BBDB5 |
E62D91C99661CE9DB7FB1FDF7E3B99490EC96C7875D2E1F095490FBB23C38D03 |
43C980A522F6196C529087EBC4153A2C07CF0210B2E0998AA0B73B26DAC9F5F9 |
F72BB3D594CFB76DCAF7AAAED6A69E7D6B7DC5F6684B4B7A42C5F5A289E8A4CE |
095991C29DADC9643C998855C4DFAA56174C9D1177BC933EF3856875181C4568 |
0C941350EC881C3458A2071F7CF0EF7FFF7B8C9CA53F6349703C3E6844B90B92 |
8362C3D2DAC0542B2D583DAA26005305721B0C1540F29097C50C7B3000F7012E |
2CBBDE8415A762885E69B832AA3796A9924C085A2AB83DBD18987EEE92254BEE |
BDF75EC871A41AC85E32520D60887218EAC291BF4634831301510B6307924B54 |
820C0EE61E5BDEEB4026DA533A4399F8BC6FBEF9265C100443C9962A4A72D3A6 |
4D085C223F83DD0B7FD9D5BA7DC9BF0814D02D80092696D7E2C58BDD3A6FF8DA |
B56BE1E63300CD6D8327874E117AA1ECC8B2174E9158F16220E8402620C018D6 |
6F90D418BCBCF9D6B7BE75EEB9E792FC84BE2D9D6EDC1188A947EDA6D050E006 |
897CE699673EFEF8E3227DF4E22CE66945826CDCB8718F3DF69007FAFCF3CF33 |
0DA546CB18031B03FF0911D27DF6D947AC15392D5C5A266CF05BC853920831A4 |
AE070D00A5D053A6D800A890405474DF7DF75DBD7A358C329C13FA0F7D96F4AA |
0B31F065247239F1FAAFBAEA2A792F2E886CF2F1392087C55CA87D1B52B2D860 |
C43B0019A1073CD15C65D5AA55E79D779ED2E2BCA404D02BB354E80C51ACC360 |
E71A8679C17019AAF6980DC283A3278A2833B60CC2320D41E1911963D1FF9964 |
4AFC00A756111D9089249D5AD50DE0FE7E6BA6A93737680667B60BAED3D1D5E1 |
99C6E6CDDB2376400206D3A758AAC376E309D3B6E0FD2056894A699189A21165 |
F078DCD8B6D85C800E822B50C7B2A7DA33E5EEB2A75CBFD96B5E14CB4D16F920 |
5A2A63EF98DF6265CC0195B0322DED136BBE17B18DD933A667121165F9ED9D6D |
B3E74CAF1587AABDBDED622514F24B3E7D218C489112C81BB1FE1632014D99B0 |
CC50F202AF05F6317696AE6B475D27A407B6766E5D2E274416841F8EB5DEF014 |
306340B5C0CFA63CE13A24038A6C99E38F3FFEBBDFFD2E860A9B1235F37044A0 |
1E105D572167FE94295340F643558D4BEFC440C7AC9ADE0B17E63CC9E91A7A00 |
F105FCECF9E79F2F9B8D1E00A652270A87DC2164532F1D620F0A861A99C091E1 |
9164F8ACB3CEFACE77BE03650EE1A533C422310BA2447824F2278C7D02C5085F |
515AA33BF0AF894621DD3C769D3C4B394F43C71EBDD09A9A19E54EF0722CADDB |
25EC1D8E90B3CD1628845702F6800D2C7322F20BF94620A0A189B18E59FA0849 |
249FECB6DB6E73E7CE7DEDB5D700A585D742980A064C0D04EB1272FCC8238F44 |
9F6A68DC86642F5A0C81CC67544D4069D8004A63EB4186D45508B586CDCEF924 |
3933A492FE98287C457083EA5597BC4B972EBDF5D65BD9BD00EB53CE86920B68 |
4DD637209F244342AD29CAA4914C1B7567C29A8187C4820F62C0117591EB8AB2 |
84E983C3162E5CF8F4D34F237A8B9F433A002080C360F130AAC0A528A742F364 |
9808E40164B33F482B784B2C2843D4588575300C01C96957AE5C79F1C517EBE4 |
C3B6D6629A1A170F3166D94EB516312DB14AE266C4F79C54349988C692A9A026 |
4B6EA7B9AD75476F4F3C93EACB0F553D956D6EE91F188E8337659BE0C73BAEE3 |
87A7A5B30515C8C43BF14B8868E148AC6718D4D07CE54A6099999DD18E6326F5 |
EEDE531DCADB59D3D86858DEDE896A24EB37A713137C3B2A3AA7B5AD696A57E7 |
3C1943A56044FDF97BCD19ECDB9AB60DDBADA6A391451F3B07CB8F0C22846203 |
AF8848389F2C28199096C360C6C70EC1DFD23BE042A6C10EA66FCD3ABE712C0F |
F6B69463C4AA3BF4D0439F7BEE394C1A6B68B03D613A43E84313D3E0265615B2 |
9AD539888389343BECB0C35E78E105147241F441BCFCB5C618EB121E1C48D054 |
BDAE929D0D502687CDAC075E1A78D61A608B725AD474181AE995AB35FEE66411 |
A2C74431C1D70DBE3F16191BDD292D020EF93B8C6EAE6B02D1816094C30166C8 |
B3A6573991E05ACCB7279E78421E3C69184626FD75E31D7727024516C4A73FFD |
E91FFFF8C7084FB11787AA1BA4DBB66D93B50E294FAE2BBDEEC3A857C1E8B50E |
14106489C1606489006B481A2878A62AE4BD61A3151A11E40EC36C3351CCE484 |
CEC8C6C2B791854B32D5687D073F80CE16860A2F0D6070AC69DCAF1E14969140 |
0371FD1861FD04412630291063D1CB4D1AEA1FF529E23E247C002486D7D65F5C |
3C7852A79F7EFA534F3D85522F8C1604D7ACC9C27EBEEEBAEBAEBFFE7ACC3331 |
BB080AC99F5FFAD2971E7BEC3178F10D8C6C6AE7CA18BCD199DD54D8430DB246 |
670C34B44A3A4699080152E3BE1A34B4D8F5C3DC3803FD46BD496DA95C072385 |
6D0A83D6E38692FF7CB3DE78D65169CB4CBA7EC2F333E2134463A6E7969DDAB4 |
96F6F5FDDDCD32FDF1C4D9172CBDE2A695D17472A85C94E31329B5B5207BA733 |
57758B7EBF327DB716F78CC2F0158C00E7697962A9076F443B45AD642416CF95 |
FA12095BE6D8569661566A514BD55CD30DF8E8BC7AC9B18A458C58C4192A3A1D |
56E2E039C61CBF92DEECAA7A462490737624B74F53A57F8FD44983C6A6BE989D |
4D64FF61FEFC427FF7EE07ECDBDDFD6E6242A6251D8B140BD5217F523AFD4E77 |
E29ACF7D5155BC44245A2A15324DE9DC505DAAF87F05537147E051364060A03B |
B14118A0A69D3A9664872843F41235F07BEFBDF76F7EF31BA519F57E9DFC0E09 |
9EB1D0A5CC24C1C647A404068AFA7BBC28CD0CB214E831196C2AEC0AB2740169 |
C3241535012321FA05B82899A45ABC78F1B7BFFD6D16BBEA452EBAC481CFCB60 |
22E5293139B47A1A8ACE1A84358A42450A8B0F25561B922D74C0E191405461E7 |
0342C0DCE629A79CF2F39FFF7CD3A64D3A3E4A7F21A5C9948BFC295A938456B8 |
29F80ABA26934F3006642C0F3AE8A03FFCE10FE4A830422E235970C82F31CC0D |
F356BE5DBE7CF9CD37DF8C1A2EF90A2643432317BCE4C6B15221C59025C3DC62 |
416345EA959C08418CAA09E425478A7D27E794F100C88F08EC55575DF5FDEF7F |
5FEE1D31EB2F7CE10BCF3EFB2C7C02D826B87D56C9EA3B8DAB052A908A4AD6A4 |
AA9B11348D8139619A8BE533B29780A0951BBCE8A28BAEB9E61A0A7D20CA4994 |
8B2785B4A1DA391BC491C875B10B98EA44A64EAF005721F30459CF6094C10386 |
C14B9E286F67DE50D46FC3BD43E018912BE040B01499842081951A177D38AA26 |
68696AEEED0BE25453264FD9B479135AD044239A46317C11D63E34812CD19A4A |
DB66C633929E9735EDE658DCB6C497AAA8AAD7D136C1F1BD8DBDDB6D2BDAE756 |
65B2DA5B9BDF1B70AC4869DAA4AE6D1B7B4A6E59869B8AAB42599555CC1F5604 |
813692CF23C11B65A5CAB982885FC3B2DD4013E444478803E1CAA34D58663A9E |
8845A262D1966AD57CB55CA856BAE6CCC8A753850EDBE9AA58ADDBCD54BF6BAA |
7A43F38911A36CAEFDC49E93EDA1DC4473722411AB1C32731FBB2DDBE6E4ADE4 |
D4F9ADC9FEC1814D35B9CE8E8F1C6B9A691B43A5D9D9AE13FFCFF1E9543C3F54 |
6E6E6919E813DBE2AF048BB0932061E9A8E13D7533CB14882B45E1FD587D8669 |
19C85294F7A89EC362C023009E65C9922577DC714703E2BC41CE20C1030C243D |
AABF8B1AC00B3AE6AF8639252CE2EF1004C4B762220819A49868D0017C4FF101 |
A74CCE205EC9CB2FBF4CE1D2A009860D99308CC05D3712DA848839FA8E02A4DC |
308FE4E142D0003D641A269AFB5FCF53C12025FB3CFC26621C1B6E50856C9A4A |
33BAA196108E80A92BE344E0184CB074DF60095E79E595B7DE7A2B520E2AB46D |
E1CBB3601B3912A64348D08438839EDA41A81A2A4AEE4244A71C29020B730539 |
2897BBF7DE7BD7AF5F0FE1B86CD93294D2E0F6297446F509CC3A61323C5C0A14 |
C6D0A04E90DA39F6D8637FF9CB5FCAF9F59A3215A64346D504B8960C55062612 |
5FE4FB21871C221A054B9F493092A840BD19616B238008E457F22D9690A81678 |
60E49CA09E63321CEE2F5C0DF96AF6ECD97FFEF39FF120444DCAD359B9722580 |
BC8C08011E8E9FD35A04F0110F1A8005DC38905D887FE2BAD0F1C8AC401F4031 |
1039AD63BD74C2AEB1B02B6369026F8464113510D8011E3FAF6F4073B8E3B7ED |
A826DB6EB1A26931FB7C33C8E9F9725F155B0511959E425F7B6B575F7EA86552 |
D7DB1BD6DA86D99E8DF70C168FFAECC1BF7B6DDD87BDB901A35C4BA42BA578CC |
EBF1EBD6BDAA730FD53541F0AFE89B488007327DA358AE887F10185E35B728C3 |
F1EB25C466FD5711C3AEF9AEA7FC39C71DDB53ADEDF08A4E7CC068EE8BB6F639 |
C9821B5176BF994CFACDBD474D8915FDF2CC6AAA32A14DED3F756669822A5A53 |
3FDD95ED733A376ED96696B7F44CDA3D63F524F21BA3552BE3C4969D76B12756 |
932B0FA53537241E4045EF97A9B4C035042E9078AB56ADBAF4D24B9148603B55 |
50AD80E3612C096E6AAD2F18E5468F23EC685C68E9D2A5B201C9F936EA6365AB |
35D0EBA292F4EFA50C98B43710A7A650A388442B1C247F100DA061A546E3C5A5 |
21AC8B75FA3584638F4C3350BCE2785C11A454CCC0C0EBC77CE9E065A5B594D3 |
9F810AC9E27951C4CAE5BD987822917124108734F4483D0679C778D4481DA0EA |
AA82E962686C62818871E469C95247D1A9E3E57918DA9661A8C0565D7CF1C577 |
DE79A76E8A4230E9F42F8CADEB04E35042A0D885738A3494DE600BF8D4534F3D |
559CD6B56BD7323D339626D01F1CDC29682384BF8C909253FE947FB16728F475 |
D361D4E810CC0E3983EC1691AAA2A256AC5881EB82BE42F6214AACF5FA7B4224 |
E90F417310B4CEBE6C50C07810880B4179CB27E249DC72CB2D6CB001B271DA1F |
206484B6031523226F78AFC2ECDA25975CF2D8638F81D807EEB5133641C3AAC0 |
BF586334B9E45EC452915B468008315F6835A5B5FF344268EF38AF064D306756 |
D00B45E6537CF1279E7822F0E4EA48D0202A14AE68F10A443F5B661032CA1876 |
CCF3A39E93083A8CC5A676B44FEDEA9421BDF4D26F02F7C1329BDA260C16F3BD |
F95C2C99CC3465DFDEEA94D4B683E7EDF1E63B6B9CC0B5507ED42CB9A96A342F |
0FDB0BC6535FD5862800B3DE49D2F59CA8A8826CC62916ABCA0B10328E574B5B |
111941D57713E94CB95A139FA190CFCBCF63C71D5135ECB2EB3BAAA2AC0123D3 |
EFB7E5DDACA352393594B6924EF6A323A64D6CEAC9D566CD98346F527A5EC7EC |
CE786553FBC73F7AEBB74DAD6D056BC2C4EDBF77529354B21033637EDED9F8E6 |
BABB2F5FD594C8B8AE512856945F450099A4672A3479B12AF0EC98F9E78ED361 |
AFE36868D8F2B2C141E5A9EABD0AD6AD5B47D30D9276E2C489E20ABB6377DCDA |
638F3D609D005571D45147FDFBBFFF3B19DAFF2E9A4085642406731A68EE1150 |
CBD671A94A8B575E7DF5D5B233292E4746848C9DA1D986065D47FB273909706F |
C4A88C940846C89EBA60C102B97F62A1F4969994EC73E6CC79F7DD777516558A |
303E3098B1B8174861F070A107217489E8862F7DE94B3FFDE94F5F7FFD7564AD |
172E5CF8EB5FFF5A8C5C6450D4080A5CA5F5E560D9046B593118B637A24500B2 |
7B8812F2BA806B014543F2AB279F7CF2A4934EE234EA55DFF2438674788019F6 |
3C82B5ABB4B2F506B42530272044432A42D5D38CF25BA0E659E735AA265061EA |
12F601E43ED1E8885FC99F2C26A053A876465231FAD4A009E08411998E88A5D2 |
E290A214BFF5AD6F91D1847C3E5815BE560FCF552A5FCD9A350B4809B2867861 |
17396C7B9C0DF90F125B819C00EDC599E794B942F44F699D216411423733D08C |
FA09B533240F0E3ED209B86B71CE4403C9F9E518F69EE3E644825AEFAFB7ABD1 |
21FA0441D16FDDFC4F2682C054C03E5DC70CCA0396951D0DFE332386E97B4EB3 |
B2DA6329318EA28EEBD52A5515AC9E163B55704AB367CD7DED83772CC876DBCE |
39652365D73C4794B2EC8FE68EA6C1DAE0967E39918A17838B31866D863E4139 |
DB1671E2AA56A8D506E4C3B41DB34CBB502D64820895E578BE689AFE5CAE2C8B |
DCA9886E2AFDDF794624661929C3B14CC7F162C55A7349652B1367AF1311A54A |
D5CE9E7D67344D147F7E52C7A43D66344D9BD13AD43A7F92DDFBE2867C675BF3 |
E4FCDACDC5F8DEC9A1E73E34E29954D4B0DBCDF8B55F59A20A5E2C623BA672CB |
C3911FD813F0CB413730AA266888CBCBDE07F5F73819606CA8A38F3EFA873FFC |
A18E2221A1327A27B09BEC58E7C1E6C5BFE8E5A957F8FE2F5F7EBDBFC2DCB973 |
8354920A7B9FCA401F7DF4D1254B96C825C5B2938BA19DA4B848B26AE983AB9D |
A34314FD4ACF3F842F484932EB928242B70D293BF02D508C726960A11ADC083C |
3939E690430E79F5D5574973C45335D4F7EAF84823E46436C256398CD9B15E01 |
A8D9134F3CF117BFF885480182EB75122115968663842456439D04DC1A39C959 |
679D75F7DD77EB1C647A4F37B5B3FA44C9B85F270D47212E297D9871E5543450 |
42AA30B249BF0A50514499004B87E54E9F4FBCAE356BD6B0D5351BF2A8B1A343 |
58CA90957A3130FC124870409B49B8AF731A420A5363354487D0B203D4EA726B |
F3E6CD93E131D16A84E46ECC132086CE6BB1A077DAB469F2861CE3E263115064 |
681CE9F8A1DE2F5E857D8A40C0C5BEE764045261D12F1C6A20DF3EF7B9CFFDEC |
673FC3AFD8615B85813E8474597E8C1013E25AB2A5C566C7CC634DEA1C993AF7 |
2A013FBBA409A64C9ABCF1A3406F1DF999236525070BD8F72C3374DC8D204710 |
F38D84AC3ADF1265D0220E99EF455C2FEEA98465C513B6C8BA482CBA6D6B7734 |
95F8E2A2937FF4C20BEB3FDA986D6E59BF75536773DBD040EFDC29F3FFB0696B |
DBE4C30F3BF60BFF70DC5191D6E6A121D34A0E79CA777D00D4032D64D5D3D79D |
B1A1EFDDFFE8734FFD6BBEEFDDF9B3A6F46E19CA97F2B2A0B276C4AFBA35DFEB |
6A9FF461F7F63EE58A46CD76B5973F39A5EA394AEEDB49C4FC949CA512CDF9D1 |
82EAF8B39AA2D450E7ECD6B8B7767E36352595340FDA739FB60533A23B3EC847 |
66A5FAD6D95EB5D74E76191F14B31DB9C29C753D5B07867A67A45AEE3DE31C71 |
3066CF9CB676C34651680DCCA3084D8F151D92F5205AFFEDB7DF46AD80AC52B1 |
F481911BEB716093225DA73798C20AE73EC29BB1A243A8216755300066FF030E |
E6B15E8411FF7579D19C69287AA48B7AFEF9E78BFF0B9B4BB7F53CAD3F972E2B |
F12F2AEE6070E1927AADA3FE135A6A7AB69986AD5EE88F93C8FE14738C51293D |
15E9870D0B19E5478192AAE779484044BE1A44B7911EC78D4F9E3C190D229891 |
1EA909F409254D31C48A2C91AF7DED6BE245C1EA94E522DFA24681016B6A7B4A |
673DB1494E7915A28F802FD67D02D26B8F8A77B6B5E6BD78E40807C9BF3209A0 |
9994ABC8D8803745C21C7A7AA426F0C36E59702701EAE5A51B06A0372E05C132 |
EBE0C6CA1843ACA3A10A7C142C7A92D7C2B1434282429305F4380F2647CEB368 |
D1A2471E7904BF65A4556FA7839BE2EA421049CC3771BDB92DE10321E52E5794 |
81A1F10B7999E4AB030E382024E51F7EC1B4C2CDA2C6C2AFF70B445339C0FE70 |
069DF7102C2CF27EEFBDF75EBD7A35597239EDFF339F20168D55AAF5F2DDD033 |
8828D343B1B06802C3CA2833AD6C79938D060B3D2EBA5C8C5715C46DCA6EB5E6 |
569389A62DF981F6D6D6EDFDFD55DF6FCA366D191ACCCAA248A8DEAAE7659BEF |
7FF2679F3AEA6335E5160737753575D611430AA902AF1E35AA4393D4663792B1 |
D4EF7FBEF6E48507560A0349654FEA98B879C7E6492DE9B86F67ADF85E7BEEFD |
978F3E7A77A8779D939FB460DE50675359E51CBFA4DC48C26BB654A462146AD6 |
4034E665E675ABCA14E3A3D53DBFB5D53627387BCCBCE199878DF4C4EA87AB0B |
6632DB944EDBA5B77A2AFD9BDF29E6B3D1894D03C57CAB633C7BF9373A33ED47 |
1C76E80F7FFEBC1B24685C4F23B2FEC4273EF1CA2BAF20B63C3263BC6CD932B1 |
EA642FCBD2BAE79E7B906A1E9FADA4A11E9EA073F807F46ED57F57E188F380D5 |
0A12E9BF0D15FEED2F9C30105F0DE03CB8C328FAC041E45E268BBAEEDD1345AA |
EF6A7D76580EF3CD6F7E531C0BA5E12F47D504D84BACA2D4859A8E1D22CA1348 |
E106EC90D2322D7A5E01215704D659F20A1E21E4EE264E9C08A98D181F68FFBC |
F0D5708380C0C382008C470F029A21A3243381175E78E16DB7DD86CF093D5221 |
0C89A5CE9011A8E7A013AA7322915849699D41553DD8C76EEC2C350277050238 |
9C4C028D91FE0155A4D2480A47F5099052422A1ECB91405258BB28AED129921A |
EA18C6419182565685200D6C1E3A52729E9B6EBA69F9F2E532157A7448C76B32 |
69CF625A1572104170336B85B9220B02D3272A340E90129401104A00AC043E24 |
570AFB71022D0EAC3A6AF58D904F1F850B471E79E4B3CF3E4B963AFC8B5B907D |
71E5955722CC28A7BAE4924B6EBDF556E86CE2E5FE161BB04113588659736AA9 |
64D0C9BD5A13819E44F1574C99F51C6D9021888B0230ACB46F270CCBF4CAA224 |
5266241D8FDB11253A20572B956B22EC55A6A9F9C3C18144C4760D3558752635 |
35073507B9A19CB2CBED7BFDD35937CF3FFCC8B629CAA95406760CA4D24D810E |
103D2312B69E8A909514FC6BD7CC92FFE6AF9FBB73E5D993B391BEEEDE9425F2 |
A4D8D29234F29568CD5F306BCFD5EBD7BFE7E58B4973EAFFF9E48E52DC4BE6FD |
5449F9A65D8E1B41A3B3B21F29FBB56C25E6AAF6DFA96755C7642BB73DD9D63E |
B967C7FBE55CE4BABBBF31D092D998DF6AA592D552ACEFDD0D313F63C6B69753 |
91CDBD3DBB253A26F5798FAEB833198B171CD15CAE2E49E4895C76D965E201B0 |
06BB0145AA4213136201BEDD381ADA080B2A172F5E2C9A833866E08800A83BE6 |
9863C4F218BFE31683223AAC40FD0D58B2BFF1C5C21403501C08239A75B276E5 |
92B23A656A2EBEF862985D400D4212B14B14636D723C3B7EE06C7ED87923A038 |
AFFF1C1B8FD25985D62EDB54FDCF3ACF9861D33B4E934E114C2E1492DA13A30D |
E10B682CA23A689283DA2BB042B2CD1670FAECF3CCB00C7B1082260132DAA877 |
01945BD3A5122C56BA1DC4B118218F0D22303366CC20A782F81622FBE473F131 |
C981C3E2384A4FF2CA354478B85C80B682C98FF160FD89E2479F32114037DC70 |
03E1138853136607613AAA868075C3FE42C84BEB4D87705FBBEFBEFBFEFBEFFF |
E4934F623C0D781E3B6C8CCCEA5924E5643CE08E66B89F75E96467535A835926 |
7211B3927F45C85E71C5156443C375E9C1B03FC448494ABD28AF7BEFBDF7ECB3 |
CFC6C61E07C74DEB92FE341D59A83742C2A8BF896CD67B91B35AD8087B6DE2A5 |
DB349C289F0DF2AC40EFFAC8EDCB303C7F988A43B695659BF5B22F71114C71CE |
EAF55F533ABA4ABD7DF3274E36067356B198F74BA9482A21CEB1EFCA532B3B65 |
F995DC726F292F33B5DFFC05AFAEF9D394A6F66A4DD49B59AD96DD8A1F6D8EAF |
1DC89F74DEB752938FE9EDCB98C57247CA1F8CD69BC6F8B2B3C40250E542251D |
4BCB32D9D2113772EB92836FFFE8A16BDD818DC9881AAA297100271A5E4B3259 |
1B2826FCE4A0E3BDA7060626ABCCFE9D6533512F45109D9A50665C1981020BDC |
1A27938E0EE6FFDFEBD3F6EC8C7EC6FFE8EDEEB6816C6FFBB6CAB656F5DAC0D2 |
9F3CD436B4FD65A3BBFFDD5AAB39757BADD21CAF5AC54A7FABD9ECF8FDA581B7 |
6E78D0965395AA89B061220AAC8CB0FBF1381296D481D87DAC8D059E87AC3E2A |
ECB33BEA4960B22044AC63C3B072880C84F9AF7646D2CB45653DDF75D75D08CC |
508A8A7040DB5478AE72069DD551697573A376B6C1E23494D67A173B93F55672 |
3F889FC246139570EDB5D7EA4D91C05C06F30D581D4816987E689F023B11538C |
A018DA7B6ED8B041448FE861C02B8950DA555D6784B566C8D9C21A85CD4B909F |
0AAB5B21A6A166A90CF5A4909E1AA2B7848A274089410BA5335DA3720F816998 |
C6F2E7962D5BE4E722C745B0E26103A704080A4A16014636C3D648884BB2FE19 |
3DD1CCB02326560F74AA7CF5E0830F222C2E42500E1095431E0B3D550399CB6E |
CC50DEEC884BEE11A5F56340CE1CF205ABB6A1D5418326408581B83B77DC7187 |
DCA9DCB29C1FADE5F0D0C918AAB74340A41E159EEC3C81D9E61E90539D7AEAA9 |
6232C30940B30AD86218F6A44993C0A047B541CA3CF91CCB5D7E8B6D43023B88 |
57BD287D544D408A0B39C9F4E9D3D7AF5FDF80251B6991186197247A3C5FFFFA |
D7BFF39DEFA0F4812566721EEA6F62E1105382FFD4804DA08EA7AD40E70F8A6A |
58FD9BC17D817D42FE8BDA61FF9C3A2F50213F4C4AD3924A17CA95F6891D5F3C |
FE847FBDFFDB53D24DB5FEDEB432A29198E3E3D2750345B9E26105FA241A29CB |
AE54664579692B118BCB692BE55AE5C87907AC5EFFD647CAED6B9BB9FF179615 |
9B26275AA37DFDEB93B5298E57AB54CA56B41E7350A2AB0CD12C33AA8542CFFA |
5FFCC7FD1D914269B0777236512C89428A24DD4ADCF49B23A9C30F3EE2A72FFD |
B67F82BDBDAB929B145C3940367931DF8A99967832B66FD47B93B989D21F57B7 |
364F9EB7604ACBBCECF7563C9651992987B5D96D76F10D79E8EE99DFB8ECA52D |
6FA7DCA45DF36AF1B253CBC66B7E77C6B407CB6D9D5DBFBBFC9EA0E4DFB3AE5C |
7EE58D37DE082E199D4E7C1CF90361429BAC81F449360236BEACE7C30F3FFCA9 |
A79E1AEB3CBED6D017FB0E8F1E5DC1D9AC17362E491865251F7DF4D1725A9841 |
101DB367CF964D71F0C107BFFCF2CBF243F970CA9429B2F209736AC82C5A23BA |
5DA2BF936C2E033D3F49778CDD887E4F84E2E12C0823C8B740C592F312C629C4 |
87DE32948A94B46E7249A84A2440D0EA12B136E64F76D527602DB18839628DA8 |
2D216749B74238E9484D408A28C8149916D9D294F80DD133B91636215913100E |
227C1E825E0413940494CA75D75D27E212447530CF79177453BCB0B19C11F662 |
C3C4EADD7D6102CB5758BB2A04AA36E4339466A542D18283F39C73CEF9EE77BF |
2B0F054D9B2165640E91A5F7425E657970ECE20916C9B1A246F27EC9922562EF |
CBFCEBCD1AC12AC3A8944CDD19679CF1C4134F6CDAB4894690DA996FC7D01A8A |
C92C9D78E2890F3CF0007CA954FD85966430386402EFBCF3CEA54B97AAD0B904 |
308C17856E90F3C016C1D3013CD7082B4EC6D204D8E4AACE318709FCE77FFEE7 |
175E78414FFD8D2A2954D8EB9C6C1946487DCC7C7203CA0B2F649874CC95AED7 |
3106FD7896AA0E3F1743F99A15202E00C870E2D158BE906FC90E73231A41DF7A |
39C49CDA39A97BEBA60E33D16C5AADF158D50B1673D5A9065D25C5873087DBAF |
4612B1A66C4B5FDFE084B68E801337B0EECC4C36F50F877EEAC7FFEFDFDCAA53 |
51463A36B35071F26AE36423B223C881977CD38F6752857269A014DC70269EB4 |
267479B572F7F6CD9D99A893AFBABE9A6007F224617B96E81ED7C99AE9B219D9 |
9428E4E658FDEDB574609B2A392CA84E336DF17882E955AE953772AF95DBF7EE |
DAE7B0793FBEED87D16ABAEA55AC786CCAA78C9EED316B7366FE69C7960A7D9D |
139AF3B90FED785FC1EF9C986C7EAF564897E54A91DCD37FF8C4C70F7BF395D7 |
2A7E41D6A1DEDF14900DBD7B84FE3243627398EDF0DEF4325590CAC02ED96DB7 |
DDE0C28EAA060E38E080D75E7B4D695037550788CBE72FBEF822009664E8A19B |
2B76F38A152BE442B24EC87E0199869836541A821690E786D6BDDC08ABB54476 |
C19F26290B9AC418A0B030B4CE9C0895C0CDD70D3A021B20F82EB8E08255AB56 |
4D9B36EDFDF7DF47413262E2B24065FB815554D79CB27B65C4EBD6AD23C711B5 |
13A7F56FA9A01939B39056627F8992473705191E4A10C0CE41DA58DD1783D631 |
EAD500C8D332CAC13180531E9A4CCEFC99CF7CE6A1871ED2C3503815C362BA80 |
A3790BE5216A152252740302629014609220212833A2D43132C9575C7105288E |
09F005B61D2B4FBE625BE391691BA83A128FC84BECF7DB6FBF5DEDCC14CF7614 |
10317BECB1872CCD575E7905460A25DD484D4026741835C8E18320963E964864 |
B91DBD619E19126DCE9A35EBB4D34EBBE5965BE47688B161AE1B382E2C2A5420 |
CB8DCB22C6738487CE2A71380A34BAB133A1E42046411ACC380C3B918DA50920 |
A9E1DAAAB02FE93836231B59EB650462A3C9462065A99EB1A02F8E9FB33F018C |
155F6B760487CFD2FA59CAB73C1E1683A77C5801C3EC61A532B256A944722837 |
9488D67D3ED749066970B31E947326669A5BCC48B45AF3CA05CFA807A37C5100 |
812B601A2A6205EEBBFC21BE41DE29C7555CBC8E784226B95C73AA1D9D9D95EE |
6D535B9BAA85DAD662BE33DB3130B4A339AED695552612ABBAD57ECF9727DD35 |
B9BD3757D83E5444E1D8C489E95CBEECD65CA7EA3707B965372AEB2DDB1CF1D4 |
96FC40574BD7FB5E4F6D41725B532E5B0BC6217353D75BF55AE840D5A9DD5B3A |
DFF8F76D6A7EF4139F3BF8B757FD52E52CD5EE78057BE16587FDE8B71BA2AF97 |
92A71F952DD513B946A935E36C2DE4BA92CD7FCA0FCC6D9E5CB3ADA573FEE1EB |
175FE495ABE2B810324752A07192B17ED8455C854585C84BF9758618790F7F94 |
BB7E1CDF11D124EC5352EFC91866CE9C290F94EB81993CB1FC88A1471A03B62C |
B1E3F6CEDD58F510B1AF352983B521B770C41147BCF4D24BBE46573E5C638C20 |
0F94A1086B78D6146A9023D8FF0C19EBCB9A616E9911FC96C903EC28A4671949 |
00F5B1FC70DF7DF77DF3CD3755D8EE87B99A5D7AE9986B7C420C38A7030A8651 |
2F1D1C05CE29F9FCFAEBAFBFEAAAAB549D0E5E74099054E4E751757B1C8E2170 |
2608B340D6408DF3FC3A4DBC18CBB7DD769B5E5E08662744668068024C580603 |
1D00BE7E1516C7A1A38BDC2398F8CC7A3F58747AC0D90E3DF450B9D07FFEE77F |
32B34D3095D292C048DD934A0F2407A8E4A25402A788DEEC1BF12E901A8EE513 |
C0F416C1B778F162717A54D81148E78480A004F7B2AC1358F408EFB0DA4387D8 |
EA99F04B2EB94474BC3C56087D64DA116167BE0AB3EDD799FB54E803C1E517CF |
065E149A72600FEB68D451350111B1584B72A48CE1A28B2E1A6B89C2B2C16C93 |
B805914FA49DC01660ECDCFF12D121DCE682050B4410200F375213E855230035 |
EDB9E79E6BD6AC210E6A5813F8BE593F612A1647719FF80481AA1E1A8C458358 |
5F5B4B73776FAF6DDAFBEFB5CF9AB756B7C61276AD6ABA557718E763D4CB8195 |
6802DBB4EA1B471EB1B7FBDC3DFFF4EE5F9A92A2988B86E93A4E90A8F02BA5CE |
647AB0982F29DB899B76D21C182CCF77E3384F45793B5425164D6EAF16139178 |
53536C53CF60C5527E345E28976774B6177ABBDDAACA04CD898D54349E8EA537 |
E4BA7B6C65ED9F1CECA84502251DF8048148AFF32329C4BDB62BFF8396F20CF7 |
A67F5DF9F53DCF8A38916A62C852D9854BFFF9C7BFF9E34D272DBD76CBB39D66 |
D4AB66CBE5885FAA669B12FD1BB6362F985DD8B0DD8F9ADD8FFDA4ADB3B5777B |
CFEC59B3D1B30F203DC887F171FD483A8ABCFEE8A38F1AA2A6480521DE024134 |
162A54D6FC51471DF5F4D34F1B759A67A093D5688431A04405009A3F47E0C808 |
594C409E8A86A0042813D7D3300C3B6CA60D0909924D1ABEC35CA48CF3802156 |
0E92CD8379011501BA637FF39BDFBCECB2CB4013AF34C09CF8359FFCE4276169 |
E232043B02233F6AB75E66C3A8FDC661621AEBA587771020863C5561974AA407 |
600692044227DD832638FDF4D31F7CF041422D797E766282845ABE7C39986D0C |
AD14000A52E72B655703B1E8C559A16F216A06CB48D6D3860D1BE4F8BBEFBEFB |
A69B6E426757A41664FC3ABE58960E624122703130594024A626881E7D7A1B60 |
4E9C67481C00DA80443AE38C33646CBC84D8F2F8973964C06600AEE58A1F155D |
0AC751DE10264B51CB6240CC12CAE5316691CBF2091B591B1AF2987C3E702F64 |
B4E8D583740EA216FFF66FFFF6C52F7E114C73C898C9E5E48EAEBBEE3A648330 |
78A5396A447629ADD46EAC8C31F1A6322DF2E0E0228FE3B3C23087F642F0170F |
116B1B73D5401C465B448515A4E05B1D353AC48C028914E578795E7CD60136D4 |
AF0B4ED4F65787D90112B1B8F80451CB46DCD9F0BD9A682CC3CAC4934EA91855 |
5E532C1E313C6C40C7F5A2864A0C930E89E9EF28C36A6D9DF04F471FF3DC733F |
91AB6F1DDCD696CCB6B4346D1FEC8D146BCAABED9999E614CB8E5B6E56B1B48A |
ADCDF4E772055105D17464FB502DD2627DD0EF669A54AB3F61B054ECA9156DD9 |
1A6E4D647C2AAA8C9ADA63C2C4426E508CF4849598B8DBEC17D6AE1E9CA4E27B |
D8AA8EBC33EAEC45C11D2B518DF56E7D7EC7F697B625E676DEF5F86D6DF9D441 |
73F64DB526AEFAE63503A581A77EF8A3EABA5CE7D7DBB7EDE8B6EDB6A837C5F7 |
62C9F284163FD613338DAD439D53276F7DF88703437D3255E2DF106602F93B3E |
A31C1C3E39E6CC33CF1431083BC30CDB462A0D12C9CD32EA79E08C32BE22EB10 |
7E21FA8EC1100761017D5C94D4A0950850D1A4F1D7534724725761A444AF8262 |
E31DB4A71429044F08922AB051B84FF464023F945D2A83139945779E5DC22943 |
45E81F7FFCF1F7DD77DF934F3EB968D122A847445A00B462D11384118245722A |
6CC219336680BC8CD6EB2E69023DBF477CAE0C69FFFDF79749FCCD6F7E83500C |
75006C2B9D491C91385427884895C1C87BF493E10CB217047EC5D25018A472EF |
175C7001A4869C448FE9AB30AC4F2317A63DE1225463A0B8C04A42E131A2F3BA |
2CA3BB83CA75511B32C30002410FF9A335CE6CE057C178105BC013A46447EEBA |
6186C7C70E6109C245057C080E25D6122B42405F289FA0C050460EAD26C70700 |
95FAFCB0264B9F3DCC9B8E1905B00D3C0DA2FF60B8E05F991F44A5F06481F681 |
DD240E289A83D3D305926D2C4DD0001B03E7287BFE8D7C6133A3332B541DB872 |
4F39E514F1C4E561E1B1CAD818A244B4C7D899F58BF5316AE78CB10AF30A5CC3 |
4C230F3F716358ED8348289318A66535EB4DC744313AF59EF5F120F7D8924DA5 |
D77FB86EBF797BEED8B4C9706B8552B139590F48BA9E6DA8782C16B54CCF0920 |
0415C7330D7BF2E4A91B376DB20DBBEA97EB419A20B2B3E7A41903DB7A93C9F8 |
F67CF79454B35BA888ED9EB0BBA2513B5F14713B988AB57EF6F327BCF8C66BBF |
FBCB9B25550C6040D964BE5C10E19E8C25F243A588652E9838399D0CBAD2EFD8 |
D473CA994B6E7DFCDBEF1943A9BD225E3CA84990B9B1029FC0F45CF14464B1A9 |
EA966A536BF3E0EA813D0F9B77D95D57BDFEAB3F5B656330BBF53FBEFD93D2BA |
6DDE81C9D4AC42DF641531ADA4D73AE4D422DBBA66374D7F3F976FEAB75DC3EE |
7FFC571F3BF880356FBF2973230B432C455061633EC7C1E973139D78E2890F3F |
FCB0AA3BBE7A0B2F3C05C264C6A90F602523AD22432B70630C9090212684E829 |
32BA2847E2DB919DC375F1A8428C25C0D3B85F4432FF6A6DC09B40FC413E1213 |
F5FAEBAF975393E34C85E938F0FE533AB0C39719767E8047ACC36FA05774C7C7 |
08EB3CD977052CC766D86073642FF5FFF605B3541E920C12DDE6107080B854F5 |
CC8C588EBA854524064160727579239EC15D77DD05852F1B1BC5537AF49F3A00 |
7F820F47142C818FD467A8BD82EC5EB162C5D5575F2D2B4FBE15EB95D607C643 |
DA57B5738A1F6B14484A997014BECA3110E8801EB13C4D2FB9D0278715AA44AF |
4293C900383F725119E1B265CB8094051306C85874C530AA26603DA00A934CAC |
24D70BA1BD9DBBD843FB422553A819218527CD76AC4910D9E34F426F09A19129 |
92ADB574E9D25B6EB945C68CDD0563878051199238738093CAC0B0267568D948 |
4D70F2C9278B0B8F8728C7CB7E9337E354123156AB42DE21D691B007061967F1 |
A71EA564B2CA0F3B29A9112852C20AD87F7BA7FE1F81F90CFB39B8A90BCE3DEF |
8E3BEE08347D3EBFFCFAE5CBAFBB0E656EB66988948A1A762695AE958A9E5B4D |
8BC7E63B1537609E88980AAE8568E34424706EFAF2C578343E582DB7C49A7295 |
5CDC8C797E559EF004D72F794E5225FB5571D6B4B6EECDBD1322769BD59C2FF5 |
C858E23133928C6EEE2F374D6E7A7DF3603CA22AA98448F65241E4839289B9F8 |
A20B6FBBF56E794A56AD30A373825F76B60D0C4C9F30E7D59EF7FBC581D8A7D9 |
89957CE59A2A582D9EEB8B1751AD28A7A6DAA64C2AF56D715E56664CA5174EE8 |
7EBDA733357F5B748DFA73AAAD181F3A76AA5579B37C74466DCA4532AA1651B1 |
FE8E6C3931146B99546E3354B6E7911787867B7BD5E0C601A4078C3BD8D4C712 |
3258CF2C97515A1C18D4F140228D9FEC440C8735E4CC5419F59E04EBD7AFD7E9 |
E8E50D42AF0CB10033065380B855F822483960006A04DC80F410DCCB04E90C2F |
7E9D4E8F644CE8BAC79DDF0047D955493DEA8BE935A2B671576C62A36B39CA14 |
8833C64FB1C7987683C447F00416BA0805CC0ED9661CAD613A9F0D72E3DCB1CC |
64181AF39AA575E524F2523624F2F8441DB00A4FC750A1D10A742437FFE38F3F |
FE95AF7C05E20C7724CF52C4F1CA952B81DF2565A90ADB5F203C7243FD056B02 |
4216528FBC1A2A54CFA4C266551403718C7A613D21BC034D00B3E5D39FFEF44F |
7EF213B92911B2AB56AD429A818D5674DB04772DD38E6A8991557EFA4BAE7BE7 |
9D779E7BEEB9841A03D086FA03F9131D7AE54FD9A2DFFBDEF7F4E029560B8230 |
BA4C9437F2DC59B622D38B2E6C88FC8ECFEBA26F755D13C849162E5CF8B39FFD |
4CDE8B1E42A01F0EB59C563E617508E303549CF215CA0C496BC1C5833246804F |
F4381EF23108CFCA02B8F2CA2B7136C04B20A1D89D0DE2033EDC58DD10793B78 |
C3BED0A958B08A82C4B21510CFF9AE17374D99B28CA78A4E351E54A49979B776 |
CED95F7BE8D1474496B435653FDCBC3D6629DF5311CBF01CBF2D9B1A1C2A4C0A |
982B545C5931359C6496E94E66D2FE8EDEB9BBCDF968FD07D12060E52A33DD1F |
B5D69607FC64BCE6B99144BC7728277BB56342C7E6ED3B5AE309B75CDA233DA1 |
5CA90CA4235B2B855CB122032DCAA8FFAF526595F4927EC92CE5CB86EDC59B63 |
2AE27AB5BF460EB16161910C54FA6AA5683AB1C08A257B8B7F51C9BEA6C9663C |
95E8E9F4931B8BB90E99888CBA3E97A9A672ED99D61DDBFA775D8E2197C9763A |
A8F332C226837E9DD180F87DFC89ED00694EBD3E6BD6ACB56BD7FA61B7039D34 |
6CE46BA7004E88651867316383631D92ADC40FB90674731CF63DC4852CEFE08C |
B2ED518C404F1F452BFAAA6AD030FFFB172BAA54E8074110207242C411B6BD1F |
36B7D16B4028EFE0E383BC85D301E239E23591F727D8D40C1BFBB187A20AF58A |
1F36785261A1202C35C470C02F0FE989E42A42EAB2F3757633762C01B59CCE6A |
8007097E4DB959F4449341227807E27B244E6923CB9132783005D1F920EC52D4 |
F6673FFBD91FFCE00772E439E79C239620B4025046440003DFA6F76C414A5F6F |
1F068CBF1C230323FE0CEDFD2001E5577247F7DC738F886998EA22F56424487C |
C9CF11BC3676E62E6D78EEC8D3CA854E39E514192D16FAB469D340D9088F441E |
1CC1A6EC74462715B7C0E4D3D1471FFDCC33CF408DF15E505C0615FB3F606B50 |
75F404D8E5E0429167822D4EE50019030B9EA12D60D91D73CC31CF3DF71C9D7D |
19001ABBC2B1D6E17DBC34717EECA04004361E01C3116C34364E3415AA82CE16 |
6BD6B2C9D4603E17B123D3674CFD70DD7ADFF3AD3A2184389BA948908896ABE4 |
7DB7ABA37D7B4FB7680CF9767247AB53AB0DF4E726B7359787F2F99A9312A151 |
47F444827CAFAC51A3A644191846C44ED79C21E5CD4C3577A69BCBF97277A9B0 |
CD777B4D77875B811F9D48C66AAE93AFB81FDF6FDF57DF7873A2526D2A263F1F |
88DBDD81A9EDC9602AA64AFF6332972B59BE1D8FCA462B5755351A37ECB8E186 |
76AD9E580A1E77C4C9175424DA6227DA4B8EE9C5AA7E6CD0AFF6AAD9B14E5133 |
D3537EB1A5B26253C24D953A32A92DDB8ABB28C7FC7A776EBF4E0B6684ECBF6A |
E7EE6C2866E42AD5917278B2865649CA0FF1669CFD8237A460D013C2631D0FC9 |
0944A2DEB2945A078638FEBCF5D65BC5F230782784030239ABE31175ACFADF4B |
13A8BA58C4CCE2FDB1C71EFBCA2BAF80EE51670BD059CC0CAD1FAFD2DA41C8FB |
DB6FBFFDF2CB2F6F6B6B033252368FDCC5F6EDDB75E38BBE05BD2D98F3B088A9 |
DB79A7DCB194A16CDF06DD801A4536F011910186259DF60E9CD570DF647AC9D7 |
E6878CE7728F22EB45B83CF9E493224410D786850EDD8C56D4B7DC72CBA5975E |
4A5B43EE4BEE426E50E7A783C182781742EA40BCA83A364CCE0C2E23643E90C0 |
649361E211E5BDD8ECBFFDED6FDF7AEB2D12F032E3242FD1550D4443C87F3440 |
B6467DE8506FF057381E066A808E456449D52366BA3B88A50CAB1F66B511764A |
60520A758B575C7185DC353B548FD35144DF420D19636E6FDC3BA297B012C4C9 |
43C71EF90A406ACC007BFE206B8255C79A12198C1C2C1A0E94B44ACBBAEBE120 |
4A7C9623C027200786CEB634CE7EC43ED735819CB9ABBD63EB8EED996C76BFFD |
F6F9FDEF7E1711715E750C5F2565BD59817F2952408652766BD16422F84279C5 |
5C3108F8D4E1255D56744232E595ABED56C4AF39A6EB476CCBB0CC925BC93925 |
591087CEDBBB54C8ED0838BB6ABBB54EDDDC3F5048443F28F6E66C2B95C9166A |
95814231DB948DC4631BB775A74CB333935283F9849DE88EFA038667384AE468 |
C552A9F94D3BFA7B5542354FCA1831B7582BAA2017AE6C34D6D9890433F833A6 |
A2855A55FECF8A347BC64C2B36A1620CB8850F62134D634B777946A4AB637EEF |
7D6F55FB6C953253E55A71D780297FE528A39C957585E6BE54E77CE127220DF0 |
2DF8EA11F0089A3DF4F4A0A52ED833C7B7B071126C4CA2A575485EC30BC109C6 |
4EAFB9E69A1B6EB841DFAA40F4899C947528AB11202231400DC452E4F7805A23 |
72846A4C1A1D1807A39CBB3685636F3CA25F65A38A8C1349C7EE34D806285786 |
83827A2B153672227B0CD1EB84A0408DC9578B162D12BB4CE61D617A84564907 |
2D73014C088D6B7A9ABA03045F1EA671A9FE92F388163DFBECB329C7E524C486 |
12062ABF42CB65A85F6C78D6C1A2B803578140C7D6153313E7019727CE03E67A |
9A21009950592E5FBEFC81071E90C3E4CC2CAA028FA97CA2331F30FE2E3745F6 |
6606A979C0942953444D6266CE3CF3CCBBEEBA0B640F73E6CC11918733C80215 |
3F809D57751744BC4E5964E3B33290B4032F0670601CC824C80D225BC3C1EB1C |
AEAA9E6ABEECB2CBE4B1E236F1F8D09F190790F307DFFE2D0BB24113C86DCACF |
6566880026AA62C99225322D58784A4BE9EB952528D859B66C99A825F9E4FAEB |
AFBFF6DA6BD9E8AD211B0C56193C0204CA509D833435B62198B2A01274CCF858 |
93CCD02E9DCBC02E49A6F285BC7C3D73E68C751FACB7EB0E415496B765BB4ECD |
366DD10483E5623A91EC291533F198A7DC7CD91135B0F76ED39DDE814CD58B94 |
9DB48A4CCE647D272080089ACF5866D1AB0D560BF96AF9A2F3CEBFE1CEDBBA62 |
A9B411115FD730131BBD9C6327F2CD89CE495D1F6CDCD03B3854F383D6340F3F |
FCD0A2534F9F18B555D5E94AB7AE2F0F8A2688995171B4E511DAE95451FEBF49 |
256746626D966757C5B1AA9454D2C6DD8DB8D982A1629E1351154FD5BCCE587C |
6A349E96B7C6A6B5F9F7B689DFD13677BAF7DBEEA1FEAA1B1187C1ABEEBA4F80 |
3924799C58035FF9CA57641142B6EAC0B091FC37A43060A41AB13E9C761C1F9A |
5626C21B882DEB159123C7C98C20EC5A76DF42651556050347B4A5864F47500A |
9938C5EEA35BCDB1FE1D7D02C84712A0CAD207E71A46894FBC906813110C72BA |
29CD4D31C25650489F92B70777840D86F3880015D582C8C93DF7DC73FAE9A7AB |
B080562EC1724DB57337023C45915008B293BD0057944DBE72E54A586AF215D8 |
8A60CAEDB3CF3E2237212900E4A77D8D07207A028BE3EEBBEFBEF0C20B45B234 |
4017E41272985C856C362ACCA642C0C10E850328C75C577F0141CF06AA2A2C59 |
C25396C388DF9793C854C88D33718D64B5AA2B2748343116E46C32E7401CA1F4 |
44261F590A40DC102ED3AB07C6410313F52C3F9427F5E1871F22FE23E609D265 |
2A7450888E50616130CF2943454E1BFB0D412DF4B1812305870C69F6BFA509B0 |
1AA1093092FDF6DB4F7C23FA5B7277F2AC65124451E143A86A59BA282B5121DD |
371150A8BC01BC829441B847FDBAD8BD56BD8B998EB320951340844049C1AB23 |
727CD4DB194B1398CA306DABE604136299867283E8505CAEEE7971658802901F |
0C544A71659694974CC45BB2992DDBBB0FDB67AF43F7D9EF773F7E3E5DACCDCC |
B4E576F42495612BB3CE7564B9B65FB554D1A8557CD773C4DCC9F6F776C70C71 |
312C3399DE562DAD2BF789591B4BA486F239CF365BDADB7395D2F6BEC1582A66 |
972BCDAE3DA56BF21B5B3F2CDA46DC1271EEE5DC6A4DC5AAAAE6473CD5A1EC4E |
95ED88AAA8234B2002B2EB11FFC65C6546125565E66B05C7AFB75DB6A6A7EC69 |
DB7EF16BBB58716281D7101B549954366FB87EBEB0AB9A00F22A5E7F2191C92C |
178F81FB28AB825CE2D8B6700A19A5815F48A02609D046BDAE48865FFDEA57EF |
BCF30E0C47D4A68C537A358E26800027D4155CBF2AB42C0D2C6559AF681D0EB9 |
29BAEEE1871FA66BC964F4FF00E539CEC6E364C9BDC9649161CDAA370D07DC1B |
B38F641DE49D9E1937343A1DA08080AB114D76F2C927DF7BEFBDC02F2A2DBCC3 |
4CA9EC28967A3329A26B02FD120DDDD664EEE442B26921768DB06B02741B2D6E |
7A004AAB8065E996BC649048263FFAE8A3801B21E0206FC496147383CF899C80 |
AC5087A3804C232254B8849C8100272439682633660524190B2CD96D0D350498 |
312C5F54CF61C0E484A08BA6971FE3D600B3E1C48E7CC9A545A92006883B8509 |
82A70C0CDB6EBBED8628194BED748A2E14BBC82588136335AFCCD8B9E79E8B0D |
099BFA90430E1151FEB7D4AE376802D8FB840563E5D3C9906FC515138F042C81 |
340EC42C58BA7429D9F130B7C80061FEE110D05A848DD5908783832F6F301BD0 |
1C18007B0842BE8FDFC570D4E890512F682A964B9572B9A5B9A95A2CD42A4E5C |
7490E33645634E4031A45A5B5A7BFBFBA64C9BB665DBD64AB53A736287932F8A |
8BDA69C5DB5C3FAECA73ADAE8A5B8D28CB364CC7F74464970DBF62CB1BAF39D3 |
BCBA6FD3B468BAB3AD7DE3D68F3ADAA7BDD7B363C8F23F740A89486C409445D0 |
4152891D71E59597DE7CC76DF1AA3739926DCA645EDDFE512C9D5255CF36ACA2 |
EFE46B66C5AF544553894ACDAAEC6E91447BA4E816F9181BDEC402F6D3A49810 |
9E9517E5EB57949F6B4E7AB377FC61755419AEF25CE55888B6DB11B94AC9D835 |
6267C2C7D99000969FFC092025FC572364DE641819140062F1205A28EB4744F0 |
9FFEF427C460102E1EE73962A9ABB06B2FA4F138FC6CE3478780560720FBA8A3 |
8E7AF1C51751BD14944C2A8DDA82920B75B66A67DF533793FFF72F645F514381 |
711F7AE8A1AFBEFA2AEC41F490429E5D4682080690EF7ABF46F20222D58CD947 |
6D14823C1D1D1D279C70C2030F3C002D2237882A2D390F0416341FB6BAD2D250 |
BEC6E1435F044948521D60426114B37C175A572650A618E05478737ABF04CAB5 |
638F3D76F6ECD980D5DE78E38DD8AED8E17221B911513314B80CA6C1DA856642 |
A05F569B4C172939C97BA3278A19BF420C10E5F5FC89119685C3DE91CFC55760 |
B34CAC48B91DC43AE56099D2D34E3B0DAB0D21357803871F7EF841071D74FFFD |
F78FC5DFC260086241F0E4101D824895F3CBCFCF3FFF7C3D6085E1B1341F6C28 |
A0AEA214463B11AC284C027B0EABBF01E9303263AC6786F4D611A80682FDCEBE |
750408912F0FF5953239F210019B86434935A02320B8B940EB825410E0553A39 |
237A19EA68905DCD1807AB3D16AD890F17B5C58297556E780166B42B99549E9F |
2F97445C6663C942A59888277BCBC5C9916844FC6ACF9111CC8935CDB053135D |
C32E575D65C76425881A70AA6525FF7915E595552D93686E9BDCF197B56B8ACA |
C9AA44349529C4A36B7A370F283F194BCA0D6F2DE52D65B4CF98FAEE868D9909 |
996A4F6E8A9D741DE743559D367DFAF60F65BDF9F2DB5242FEA7C4B8F78372E5 |
5A7C7224353DEAA5AA9EE5A99DBD76C8A4603F59A2EA5432AAD266A2B0B55CDC |
6664CD8E81EE41B7E64695198D596555AAD582FB6DCA740CE6BBD5AEBC680F89 |
48912D43F0B43C1AD91A8821334FA6F38820DA012C32BE95450BFA2C069174D6 |
93519F2322DE147A0C4B8EB5BF46668C99A0460059DECF9B374F7C025863818E |
D1F124679D75D64D37DDA4573CD300E795FE8E3E01A718A210E130E460314132 |
B0EBAEBB6ED5AA55207D431681E4EF2A6CC76C840DB3482A075023CA37C04484 |
E943BC1EF10476AF26AC88B7AC9B697A852A9E2E00C590FE32240A23B1EE456E |
32FA01F1CDCA00B00890941B55C772B6030F3CF0139FF884FC50068C0091BC81 |
71AD420D0FD103C708591C3AFBAA0E711159431221F698E4C8EFBEFBEE8B2FBE |
18A29934217206D1B2A79E7AEA15575CD1C0E9AFB46821F0AC9059720C829500 |
3CE87D3C5498FF6763D87150A4F08D40E641201D66067F42AD22518415CCE581 |
B17DFDEB5FBFEAAAABA8C6506D8F183D828A9819A65EF5718EB3201BF2046CA8 |
A0B79ED641E56ED838131EB7FCBB78F1E2EF7DEF7BC89DC89BAF7EF5AB2A547B |
2A8CEC31F5AD34D0373C7AD28C53FAC355C208E5FDE9A79F2E4F53EF223556E6 |
702C1469F01C5D473EED9CD2B56DD3D680AEDA554D8978AC124460B3A2252CBB |
AF5C98DC32E1A3FE9E5993A6440AC5FEC1BE8C1D4D3ACE24233EC177F68876A4 |
3D35E0546386658AB9ED072CD88E65140DA7ECD6648744E2B19AE9178A85782C |
B1BD9257A9E68F0A4345CBCFBBB5A41DF32DB3E03A05DF29197EDE519D11ABCB |
4A17CB79F17D3EF6C9C3DE7AEDCDD25021EF55B7C8392A414427AE322555A9A6 |
CA9119410B4AC71E1DEF5FF3A211F12FFC204C640C36F7FF29A70A7EC2F044B3 |
9989A678D5A854F3AE8C3B60CAB6951137DCD12D95719607B6A118408F3CF288 |
3C38D436CAEE40E93E4C101693B3FD8911D6E103BF803DA2F7F0D02103235F28 |
2080FB0EA43BDCCD71F6D7A8285215663868D3B00C68D829C19A83C94CF6082C |
7D0817D2DDA8B07C06EB155DD13926EC1C18C5CC5BC2C0019606A0259DC59B5D |
A48DF005C83CE0ED2C1162408D776BD4393098BA10E7EBE8A38F7EF0C10755DD |
65839B26F7C6CA29D688EA907F96FFD013A264811C6492504FD0215A22778A1E |
E5B4FE282620E960FD352439C1F28103A64D9BB675EB5619E4673FFB5931F4E0 |
70C8133AE288234E3EF964DC0516CDFCF9F3DF59B326B0D4529182B8F266A46E |
0519E9A66C7E7050F95E6B6B737F5F9F690799F0622127BB33158B544AB5AED6 |
586F5F2567A96CC6CA0D88CC329B524DF9826853D73454D51FB34B25874A6B5D |
EDBA05406464C3F9B14FBEFBDDEFCA8E924F40E38CF23150443047AA777054A1 |
A68158677A8DC28E7FFA61D92D4B78E45F48CC4B2EB964C58A15D8BD6C4F8484 |
3313CBA45C1CEB7E0166E5B4C05E73C3FECFDC72D0B8A00400792AFB21738FC8 |
DDEDBBEFBE6BD6ACF1432EB0864C15AE48A410DA7002156684545D6207C80402 |
BC88B99263C4A35AB972257D0E0E0C9E442C11177FCAB48C8869B955474C12D1 |
549326B4071C50B92111012DE9745F3EDF99CE16F343562CD254516911A786DD |
15894D73AD94EB56828CAF97B0935634922BE6A256349D4896F305197A8FEA8F |
AA9418F5F1483A93697ABF6F9BD5DCF2C1C08E52C22A96CA93A29962B532A0DC |
7CC44FB4B66CD8DEDB2AEE483C552DCBC6340B86199FD8B1BD67B0E894AB56A0 |
B1AACA97275D279C9035AB0CCF6F3E3453A8166D91BDE96859AC23A71C94D319 |
2ADA636553CD6EC9DAB27687929359462A912C0C16B2A9E17A58AFDE980FC277 |
9CE80A75300C4A884BF8A368BCC102405A27840822A607413A1667AD0899BDF6 |
DAEBA5975E127F11B00879890978CE39E7E054A86D02F258E71CD46B0CC7D98C |
90CFA05363698E0AD198E2CA9F79E699DC533482D9C2CB207B1A335410C4E241 |
BCF7DE7B48588B0989C423FC23C649B0D9642FD178947959B66C99D8F24C7C03 |
1523774EDFC40BBB47310AEF692D33F59008E4290D2B6C75DA3814B5EC10ADEA |
B102B984EC5599773906D5B940E3901AF3CAFA8B0813B93AE24BFBEDB7DFA73E |
F5A95B6FBD7564792DE79A928E1D6891EE8374103171C10517C85684CF88E22F |
4E970AA1B1D8CC721EB9DCD4A953C19F2A33FCCB5FFE52B48855E76E4C06D355 |
3222D1C0F0AA2B63E5545ADB824D5B2E954429C5A2C38102DF0B2630914CD73D |
A761A49D3C0CDFB3E4A86A15017DAF1EA4F59A9BB3107CA36A02406CE52EE43D |
1EDF382B7B573501CC059937F6E034EA5D7D4456AE5FBF1EED7190E1077C5B3E |
D1B98275C3BC4113181AB91B5D01E803FC56BE45D44B960A0A2688310509C470 |
0CBD5E3832D6FDCAB580A192652F87119D8561135FC792636E4511FAAB57AFF6 |
77EE87013A2F3D95C50D8FC52F330FC643B9907842A2C9F45C3AAE827A1A3205 |
A8D00F664681A94BE4B1E3C984980E2DADCD03BD03314B59AE8A21FB1D89C522 |
56369D712B4191446B5A64E8502C1E6DAE9A59DF4EC5A2A209A67A9648A9B25F |
F1445229D9B9918A53B18256F6A6A76A6DC9D6C1F260CDB2326D6D1BB66DF194 |
D5AD8A2A92A9A5131B07B737D971AF5AAB2ACF6E6ADE5C18E877BC4C2A96AAAA |
B469D52A45B14CDC44CA4DA7BA07F2A55AA56C29C775AB41415BA009B0FD4C5F |
D55A83A989B7C49A2634F9965BF36A0185B6EFED7873C8B054407F2A73E918CA |
370D6865DB84D4D65B07ABD09F1EF5F9C20775C36E83301A103FD7FD661CC388 |
B4F8E564411F9FC98E1200E93A4806D2EDE0302EE0860A447DB58F7A7E842EF4 |
8A4582DA91CB9437E243CBD5659037DE78A3086A71A603CA038C49EE448ED029 |
4F95E65C4C9A34499C039869D01372CF720C1C67B058430802D68DA954750E55 |
067F21D9C904CB0DAFD3DD40EECBE560CB93A0036B9DDBDE0C7B094079888E39 |
F1C4136FBEF96615521440FFA360951E19A686491191777251B648541A0D085B |
6362A8BA1AE014B3AF248BD7D8EC457E2E239719837AC7E68487818A7F39C9A3 |
8F3EFAE52F7F194FEEF39FFFBCCC3F28CFE4B75BB66C79E6996754AD148B2776 |
F40E24521911FB5F3BFFC29EFEA15CB1F89BE79E0E74831841D100AB932FD41B |
20679ACAB9C1608C96E978662491B2E3A9E2C090326D55CB9BB62F1E94673A01 |
EA0F2BCD0836CC589A008B4146F5F0C30FCB138738FE7BF904F01D3181279D74 |
923807A07F612986086B99313D0CCAF4804E9AAB6F063F64AA20B5145848E59C |
FF9FB5F700B7AC2CCF86DFD5F6DAF5F473A61798A117156C115B623421620121 |
91A051312222D2150121A022022223204D0D56D448B000FA0958F83F63C1A0A8 |
B40C300CD3CF9C7E765FF5BFDF759FF5F8CE993927F9AF3FFBE21AF6D97BEDB5 |
DEF2BC4F7FEE071A37E81E3FA7D79EE1FDCB2EBB0CD442271E2E23FC1F941E62 |
02731F17E214589033CF3CF3DBDFFE36912C994DC87ECB4CD612F54D19E5CAB8 |
E6D9679FA5E7739E30309B0551EB1489228799BA210D0B5C4F08000A6C13FC80 |
916A42BF50A934BD4F4EFE0207C7FA8E2C191EDB350685A3D7F7C14B47FAFAB7 |
EFDC814BCB5910189F0FD77A2A95D2CE5DA3C3B846F935AFB8DC2FAD4EDD320E |
7E82D364B7C34EB150D46A596A851D0D3AB4FFF2359DB8FBD4E8F396EDCF26DD |
FE9E25AB0F3BE4FF3CF2AB5D4103D6EB013D0371B33D1DB7ED5265CA8A475B9D |
52C15A5EEC4B1A4D1D75568E3F3CBC3BE84E343ADD386A5B318611679A0BE148 |
29096CAB1824810BE158F13B612BEE86D9154A85BA537386BBE4149C621807F8 |
C5EA952B9FDDF60CC3A4F4EF490BDB8520862426CC501CE98AFB22D5F8923042 |
89ABF262ACE38E3BEE81071E602EC3427E7C4263D14541DF91C800763DA1C7E5 |
820B2EB8F5D65BE9C19E478D565E9EB6CFFB9BCA101BC050F316980A71AD8BDD |
4FA66D890B8571572AE052E343BF10FE7CD7BBDE75D75D7791B69843C203392F |
64A772578C084F1C1B703D327D5030F823BDB7F41749333F7AD6D8974A62C882 |
CE362FFD5CE5899871DE23570AF0B8C1C2BF88844AFC192E84898C44FA10AF11 |
E6429C7DFA7CA941587BE26D48F9D50D37DC70FAE9A7439CE2E6586EDC73EDDA |
B5501545864BEEB060E08815C928059E2BBD6E5EF5AA57BDF295AFE464F17470 |
25AC9E363826C7B180CC50BCF787F7EBC56FCF054B28875CBFE8F995F1A9E9C1 |
1E0D818051EDD8B12B6342AE6E54EE15AA49D8EA34E6407D2D8D3190F0082CEC |
1DA2BC6734D80422FDDF9204383FBB76ED62B48D317C592B7916A3E2490E974D |
058D16BAD90652E52A92703AAAF6E092D421C4AF487D8DD42E351F58DB4F7FFA |
D3AC8B56464DF8221D93C4E78B6B0836874F206C700A4C6839EA2BAC5CC1329E |
71C6191B366C80E4FBDEF7BEC72882641F0822A96334A2A1545386BBDF5C1F7A |
39F02B522CEE206D8504FA9B7E24C93FA60B8B7ECBE999E9B3CE3EFB6B5FFB0A |
6C82F56B576DDDBCB5E6FB65DB9D6E37FB7CBFBFB7AFDB6E160B7E0B5A46B753 |
759DE1A4D063178AAE33E278AB63A71447CDA8957A7E10E91C591D4FB6ECA0D1 |
0AE3CE8ABEA5E3D39333AA13832E6B3DD3EDF68B5E75CC9D0FDC37AD424B5723 |
AB25E57E70F9C9349C4A83B4E8CFD4DBABAABD6163B6AA3CDB85A859F2C4E8CE |
A96E1829ABA5421AB0444CB6326E0FF9544EFBBAD957B6E774C27646D4BA71B2 |
6FE9E4CE200E71BDE77890049552E5A57FF1D29FFF3F3F332BF5B8718BE4EAC0 |
9AFFF9CF7F4E78706EA2F84B08B5CB7C161C7962564A5F52D19EB9E60B491A72 |
6A28BBFFF00FFF70DB6DB7A579D132555B91E80426A00C90247EF31C2D828448 |
B2C78B893F843F605E250F9AA958883CB0F860FC8D03490295081B8BB0B00A38 |
2A38BAC4D910247D21653C836780FA14B33F31D055AB5661A54C8400BC5EF7BA |
D73DF5D4539007F34C219AEA1015509D88BB72E49147FEF18F7F14362D8A3963 |
EE5C38FC8A12487C4ADCB679D0A4B2076256E3E998149541EA6266772D81E8E1 |
952209286F0450DE14FB389318097434DE847D85300C4A4A2E08BBF770E24CE0 |
91347C9005D393B168F8508BBD52DFED37DFB8E599277A8A6EB9B7DADCBDFBCE |
3BEF847A391D1606FA7BBF74DBCDAD6643F709F78B8E57C2BF519C547CEFE73F |
7DB0003A286065F411E946CAD666BBEDD99EB6E6955B2D0E743AFA20056AD742 |
9C5A5A6CF3CC488BB4FF2D4920CA2FFE3DF7DC736179D00263D8893F17E03C27 |
6FCA41C78EDC7F9EB3CEDC175A72AC52B6F34672FC8A499F989D69AE9154A45B |
D1E27E5EAADBE002D0CA25C75FE506B4CA9D54D4002872B0EF38725C46217B2B |
EF2D4AF1AFF6CCCB10CD46FCC2F8D511471C8183CDBC09D0C96B5FFB5A28679C |
024F35437A926D223822745D5287BBEAAAAB2EB9F4637A0C693A3234D89C998E |
837804C6CAF474D9F18607FBB516D9ED0E56CA50B1A1F762D596699BA05054CE |
72B778B05FEDB3EC76DA9DC96C0EDBD5ECA2E4165C65D58399B22E02481DBFDC |
F19C461CED6A8F0F0EAD7C6A7C47CB5543D5DAD4F4F4AA721F94D286A79E9D9E |
AAF655204BEC465C54F188D76BFB5EDCDFF3FB6DCF4FA471AA9CAE8AA1BEA419 |
A7CFFEA75804E7AB9EAEEADA9AA2ED6E982580145C2B493166CF75A224C46175 |
3CA8FC9A2A0E3AF4C0679FDA2419CF2C845C5C12882B924E6F2AE902332CE9FC |
2AD323E99D66CA86B4A7C59DCF3EFB6C817CDFFB5CB0BF211D35645CDC3E5144 |
589328D839740F328B44D2FA1792041213C21BE1C0142D3422211EB66CD96266 |
1F8159E970AFB85C458F868273DE79E75D74D145983F519A551EA4A52312B766 |
F98C32B2CEE548F025DD3EA5F520531B59CA44BAA497935BC2BDA1DB5DE0CC54 |
0E7C4DE216B6C2440B95D718639C1C8F1C334C010AE09BDFFC6658F1F8441A86 |
B0064D72FC65D524D19EDC4152924C17334FA61C4E5E09B3802E14A260E27A33 |
C8A98C8C31FE29D99392DD289B7DCC31C7604B58F2ADF3730ABD49D879D31B5E |
1B771ACB8607962E5FF1FB3FFCA9D5EE3C335A8F3ACDDB6EDA30D053C1902667 |
EAAE066689B2EE20899786567666FCA255EF40AEABD8D3A7A8B7A73C35AE73B1 |
7DD70B2318C85A48EC9353A719BAF2C73FFE71D8A7623CCE03D6FFFF2309084A |
C19A32AEAA996425653BB28F4CC7C23292F1B1FE40B232CC67518F26BF631B4B |
5C7CD24927FDF8C73FC66A635F7062299E09FE432EFC8B5FFC0277C66F59D182 |
FBD03FB04844D16C6E418EC02998FE59211B5605731DE841222296FC56BA4C2B |
034F65EF733E2FF4C7B83A551F9601D95973666540DB525DA529A0F2D26EADF3 |
4D4D6229DAED667DBADE53F6BBAD6ED9757BFDD26CB35EC8C47F5F4F6DF7C464 |
D92F544AFEFA75FB0F876EA11976EAB33DAD6075689583B0913612B782214649 |
3C9B34FADC9EC1FE8176BDA1D3526D6722C4B3ED2DC1C4506578B2554F7B4ACF |
CE4C0D5A6A4975A0E214B64DEF4AFCD26EA8F3C5420C15AB1D0D2B7F49AD2FB1 |
AD19473D36393AA16303766025993F4877E081D20FAA765295B5D0290669ECF9 |
6EEAD841A73597434AFA8244483229EBCD79415DDF899A310372D22B7BF19A5E |
B651E23592F662672D9204D80AF4433BE0B8E38EFBC637BE41E808A27571D325 |
EF60EF17B58D792C0264296AEBBA75EBC0B86EBCF1466679AACCDD42A78899A1 |
B3D0CB3C71E298C1F431C88BB317398F34970587A41A3A07582AF54750767029 |
DE5306523D04B37BDFFBDEC79635201430AC77BFFBDDD75D771D9E87BBDC7FFF |
FD781E212BD800192360C71B86015899292C92D469265DA85C21928C080A18F1 |
AA4B10469CA72209F009BD757C84246F9988F6CA50D95416BEC7DDF85B928809 |
D36F5A1292BA6A860AE4646222F856007C4C8962E5FD4599DFC92825B363CDFA |
43BA17711F70B737BEF18D947084B5996D75ED34E9B49BC71F7FFC969D636B0F |
79E103BFF86D64796E307BF8C107B42676149DB4E85ADD08D370EEFEFE0F8276 |
CB75ACBEAA06890B53BB6B9742BBE89521DDB7779A2A6A7B5BFE6BB34A835225 |
6AB7A65C5F45CD0551A605C907CB78F4D14783997EF4A31FFD5FB4097801FD18 |
14FC5C4912A81891E0C8AF79CD6BBEFFFDEF538182B07FECB1C744B9937E796A |
CF88B144E6494BD84DB67F611C82D62D9D75A40D6927272511B41E16D2B9F02D |
E316A4403108045EDBCC6BA2614DC9C12A01163C338E2D991B669A90F9739ADD |
A4349090CC9DCB45F80A5CF9E10F7FF8F6DB6FC72CF015CBAAC57F4572322581 |
7EEEE0C0D4E4E4EA35AB766DDF9184F16AA884304FA7663B2AEEF1FD430F3DF4 |
A8A35E78F7DD774F4FCD8499436699B2FB940B3B73852A1C69F50CD96E27ED36 |
2D1B722F5249236DF597072009340349929DB3D32D9538BDB56D33E3D54ACF68 |
7312DB3C1DB4A34E77FDD092BE4235B6D59FB63DD72D7BB34117EA08A4D67EB5 |
E19AE5B5A3E0F9767DA78A46B184B8B94A2CC74AED8CEA34D4296D022B4A2D6D |
DB160A966BD16A2CD899F7DF2B631271D4216C8246DAD62E51FC283123C69404 |
8BECAFB917729009FF8505BFFEFAEB994CC1A441F6EB96FC519C771C643A1816 |
920474C213F2994E481663E2B674E5D3823175509C44BA3DC594591C79D0CA91 |
FF1925121737D57AE625823C44CBC731D49280B392F45233DF80BCC044D493E5 |
93D6862474492D17173CA8F3DA6BAF65B45A6556B9645BD2052F1133E1EC7447 |
C8111567A8000A095BB18C4A194A4BA9DB16912678443CBA2CF292E45C334989 |
1E58C90061DA3E9F45AE6DD6F493D750E0915D7EF0831FBCE5965BE8D6A7B812 |
939CFDA3059B9A252424CA3DFAC6E521A0638F3D1692981D13C1E58B956A3788 |
A6DBF1317FF3D6FFFBA7CDDB6613BBD23FD27CFAC883F66B8E6F7FE277BF59BD |
6CE8B1279FF28B65B07E2FD2CEA559E8656EC9EE199E08FD838E7ED57833EA6D |
AEB055A5C71F99199FE9EF8195B3F1BE1FDF9AB4B7E0082FC4A905678DD09B8B |
EB38FF5F258198C0B4E7187092827B3BEF01C9C36056115A3902040339C22ED5 |
9E59A434DDC06419BE12533ACD3150F12F74AE871F7E18C780C91BA43A025AC8 |
762F52E963EE29B51948AC9FFEF4A726E424EB4E79CEA94EB17B9DCA33C455D6 |
3F0386ACDCCDC97BD4CCAB689107D1BD2B2D10B83552100A223CFFFCF3B14DAC |
AB2056AEE027CAA1D60CA89021E9EB2636AA5C709D488B2F9D3CDAD3DF68CE42 |
ED7CD1A107FFFE89A7467A6BB01BDA61B2D2F6FA13D74BA355CA3B4C5587B5EB |
A6DB566EA8749667470525AF5228FA53F549306CD7E99D4983C9A413D9D66CD2 |
EC29F78DB5EB5E4FA5CF2F8EEFDE7DE8B235C79FF4F7377EFD5F9F9B9E984954 |
4FC971DBF6414B57D8ED70B6DDDC184C371C6F67AC1B68C556A213479D39BF19 |
2480AB5343210B7CF07B6C6A9CE4ACC376520D8B5DB255E458CA7355100659AF |
330F868457B545C9A39E416EBB4896301B6D515B35718559414210727134C579 |
1755AAB012975A3CA26B12B6A40949A625DD06FC507AB80A4482CA3D280B8D9F |
E3E448CC0C1D13EA26CD7B695035C1A4E6E2044CD3A434A37B917A1399B594CB |
4B492D6991EB25EAB604E258FB40C7024B30985E4D3A3EF5D453BFF6B5AF9127 |
5201E451112D9E968479DAB9D6C2384CC40516A9924770AAB806179C73CE39D7 |
5C730DC3861203E03299BA1BB99519AB4C73683C95E3E798E162F1DE62D1581B |
C57DA2A23707F49A2645B6BC48D3C1919189B1DDD5BE3EDF724E38E1842F7CE1 |
0B92ECF1E31FFF18CBCB434B89F59DEF7C87BBA225A5DB5B499A8E15FFE7D3BB |
FA0FFFCB7AE88CF8C1A7CF7F4FAF3D679F523781CD818742EE4A310B419219D5 |
D715864B0E5D32F042152E1D1C5836353DAAD2829BAEF29D35DFFFB7C374FD66 |
D255294E85AD12DB776B8E55ECA6DA43427F17B1A3E7D2EDEB730E0DC7D7874D |
E77FC35AF774FD44B735830F4199BA0579763C755C3A985B4C0A4801D4CDD8B4 |
76CABFFDED6F87E299579944BEEEAC1EE89E8269862A51AD31721BC450F7BC88 |
E8437D7DB8E12C2C367D0C40DC73E9F35A5D0AA25A4FB53EDB2815E7CA4484BA |
044AC44CA4111142671103BFB2CB26BE56BA67C5D98855FCC475B79CF6910F26 |
AAAEBD106D2C421163FEC4BF5C74DD75574F4F778A255DBD147494EBF8110EAC |
C2D4342D6B5656A8A864D68AD36A6AC565ED2CE6C9975CB54590C52443547A70 |
C2B485457EF3CD37136AC9CAEB89181558A86F41560B46887FDD01C6B3D592C1 |
C1154B963DFFD493E5D4E9F78BF556BD88F318693133D3EC82FBE26855526B24 |
75D6A8C2FE56697FA732E8149E0D2652179ABBAA075DC7AFCC765BBDD57EAD1B |
BBE1F3ADF19523AB76ECDEBEA6B24CB5A376D28E9433E1059167B7DCB4AE5179 |
022FB27A55A1E6F94BFA964C479DED416347B73D1107ED34EB2C695927BFFB9D |
5FFEF2977546BF4E906BF8061693B8D4E6B63E3B3202D8C7AFA48F85A92B5022 |
2E8EE6EDE47DC1F8A7407D60D94F3FFDF40D1B36B00246E57EEFCB2FBFFC939F |
FC24358C3447225844D2C86068ED31AA6FF6D3DEE7C562384A48695E76A9A089 |
087A18C31BD75D771D4C197C4234B9EDDBB753CCFCE55FFEE54F7EF21391403A |
2E6866C80AB60FF35BC4CFC3BC343C839DB62C03AD13237BE10B5FF8BBDFFD8E |
F4C70EE3CC5527ED9A0973BC7EDDBA7584B424E94BDB1DC9EF16D2A7438D920D |
74CF888DF03B4177C1827EE8431FFACC673E23CD69B9463CE4B0454E3BEDB48B |
2FBED844584B0D642EEE1FC16A2467863434AF138865BCA4E2833607FE6423CF |
D9E919E8477361004BBDE39DEFBCFFC10777EFDC09D68617A6C041C2A8BAE38E |
3BF068E2BBE10EBC0FB303F57EFBB5411FD4DD5A79E84B46D580552C0D7B712D |
1863A62F453D56861D02A6A6A6F0067B479C67C9C2C47DC6D2AD456F457DCA9B |
9A9EE81FD4F2727ADC7EF8979BFA8B6BC140BEF4956BD2689BB29BA58A0E3287 |
11D4349D147BF2C927834D1F79E491FFF11FFF314721B513CFB8E0DCD7BFE115 |
F546338CBB434303382BB3339AC24696F4A8588D8D4DFA5EA9522E3D70FF2F6F |
BE6E83DFFD01F118A48A3857B709E093BEE845BAB9232859B3A444150B3E737F |
99B3418834CFF51CDFC364BC4281D5CE98B39351DADAB5AB376E7C5AB30D2733 |
3BB213E115DCB03B27BDD6AF5FCFFA156A0398459CBFE6950A722B412A84A29A |
D7A56E9E2488ED5895F63FE3A3371DF5B2578C0CF6E2B93BC676F6ADF0EC8921 |
50965F54D3D3F566B3BD62F948ABA91EFAF9235FBCF684A0B5C577A18E0C4ECE |
3495D5191CE8698C37BA3AE34509CA379F482FE5E2EC43EA6CF4CA67953DA6C3 |
8D65538B2045CE9304E02BBDE5E2606FFFF4CE9D3DCA1D2896EA9DBAE5179B61 |
4727E77475C74B68A155C86F65C12658A3CAABEDE28053DCAD1ADD286CA46D57 |
152328EAE5D2646BA6A57078ADFDF63FF0A5AF7EF5430FFDDFB12D3B5B71BDA8 |
2AD5DEFED170AA9344ED386C653AA29F3A25C7837A5428F54E87ED5D41732289 |
1B76DA853590A8388D0F7FC10B1EFDC3A32000AC3E5404C7D0BEC18BB1BF74C7 |
E11310181601E4C17824E9DFC95BFB8ABB424A344C9D60A17566DC454A31F862 |
232CA659B38D0AEE8C0FD99095FE030C00ACE6AAABAE327355E6DD1F3FC71B41 |
FC34BDA37BBF04509D288778CFE4258C84D3B78C16230261249E798C070FE2D2 |
916B8976AE7273644E7C92E7B20989CAB14F257B896C11974A205B7822CD6D3C |
F28D6F7CE37DF7DDC7C6E2D80C8685A9A1D0C945F39F0E1FFC841AA2A00BE06E |
1FF9C84720B8F8437EA5B21E8D780FBBFB99679EA145A232AB9F92095FDD74D3 |
4D679C71C6DAB56B59AC4B99C131D32B4512916CF4BD5B7D928F8BF347CA89E9 |
3813A3615E4538D35488444D2B47BA6EA9CCAFAAB2144D2D57C2B9D090E3B971 |
1889D3C3CEFB7DE2CFD7BFFEF5071D74109682309314ECBAB54E5F4F4975776F |
DBEC0FAC78E0918DCD4EF493BBBF164F3EEF0FAFC57D98ED8AE948380B7BB479 |
F36656BBD060A2544ED4EC8E6D8D4A69288A5B41BCFB9BDFFAB26D553C7B70DB |
D4F3939313933B211EFAA676CFF6D696CED63B3DA5C156B4190390AC6AAE1E6E |
7BFF0F7F75F89187D67A3257AD02338AEBDD7AC5AF242AD1ED0EE3B4E094609A |
A789DBEDA8877FFDFBD7BCEE283B6F374455970A44B95C6CB5F027B42D9044A0 |
1B257A5A7DB355D6D125E3E82B96AF60BB1BFC697B732C8066C1D0F030ABCFDE |
F18E7FBCFDF6DB313CECC273CF61E2DAE9049BC02FFCB947B930472E91EC3BB5 |
162B4780905270A9ED5AC42678C5EB5EFDD18FDD74CCAB0ED591F899B402698F |
77712BAD9583B055F032431E3A7B987A6E09B3F9E1AF77BDE5B5073871435B31 |
56C1AB5A51378803776050279231B1826945922EB51007313B3C9BA96E56066F |
B965CB16DE61F1CA234BC75F997FA2D224C59F054B558B25A7DDEE758B038562 |
A3D50C5DAB95049EE74601E6A13C6891A9EA55D6B0F2965985656EA9C7F1DB81 |
8E430C8F0C8E4F4ED45BB3AE57C06DFB0607C666A676B76707A07EEE1A1DEC19 |
484076114C2315C41AD930628286E516BCA2E568D37C1C041A76A6D3B09EF593 |
8C1C5881090C415A87057DDBCCDB93B18524EF09AAB2EC29EC143803F3DDB183 |
D0CD3FF1894FB03A4A3002541EF8110C63138F611FEB633405E34A828DE01158 |
5E69A8C5E826135B98BC4BCC479515BB388BF663373D9966D9E342D7BFFBDDEF |
7EF8E1879F78E209BAFEE735D7A4EE6FFA69D8765E9C42F4498ACF93B1008E90 |
182D9416DA26300F00260C8AA4EF051FC2F6FCB77FFB37723D3BEB68CF90AC14 |
C2B07A859939FC93F57864E2581DC1A4A49A46A72A149937BDE94D5FFFFAD7D3 |
BC4D0D2FC0FBBDB7479A75D0BF4C5D9B09EF14771254A0BE4F50339620116680 |
3F915C265941D3ECA2B39515C826E7A2E7CE317A99C9EAE3A1A79C72CA77BFFB |
5DF610B6F36E913D455DA6A15DB1DD8E9B793C5CC70DE3089F80979572A86D5C |
5AC97ACC4268FCF55FFF35F38E985B49E98DCB26773EBF76D5F256A85A6961F7 |
D878296DF717E29D6D9D728A9DA2D38C2D16F05B50E4A38F3EAA327D075366AD |
AC46D4687961D72997FA9AADC95235FAC31FFFB3E095671ADDF290FBAE77BFF3 |
2B77DCE15ACECC4CDD4A0A8E5DD41140BB6EA65588C9F8C14F3EF8F297BFB46F |
B0363B3B6381E127984D50EDA969469942119EA9D57A93005A45A9E879F7DCF3 |
C02D97BD81F92DA2853116CD345F7173D3C8C55358AC8BC507791C7DF4D1A07E |
E8165A725BCACD103E689E6A04CD011DF05CB77EFDB3596D9726C52C2D2D8E74 |
3A94EFFDB91BC4CB5FFEF25FFFFAD7B8E0D24B2FBDFAEAABE779DE45B4B3D25B |
507F5981BC50A7FB245E7BE9E5B71FF8F297DBBDA103D28BDC46D0290D152A33 |
3570BC249D4B0B0E833489AD42A174FF8FBEFFA5CF7DB81C6C77BA69236C278E |
3AFA652FDEF2ECC4E8E8732A4FBD1356B5481F5DF106883A423D0C07168BF3E2 |
17BFF891471E214682CA8B8616910419195B76E6D1D399668E5B4B55CD29D46C |
4DD85D2BE9DA59B573D697D2556929B12B1A12D4EEB7BC3ECFAF388537BEE495 |
CF3FB769E5F2A53FFFCD4F068A7DD39D299DBBA692D2C8D28DBBB7459E5B0FA3 |
A13ECD1FEBA10EA73A4197250565586E7E19E4D656294C844D9D7690C4186BE0 |
D8D09522CBE9264980AD4C9372290387C882ED9D602E7048154A626CCAE8FC0E |
B2F9DDEF7E278C95B253FAB9923BB3AD589AC106EF737D7837935F83B72E5FBE |
9C19ED2033D6EEF1C0D24061FE3DB79278628BA0468B9B4174381C7908F26772 |
62DEFBFA79396984B4A3F356C49B597D22D0938C1841CF60F68D48C77928C2E4 |
7296D47672096EB9E51628DAE47DB8E8739FFBDCB9E79E4B6F8CCA95E8BD6356 |
F3FA47E2D9EC34C0C22EFC4B7A6576A6382EC8D3194C666A3FF1EE191FC664F0 |
433038C9E827D3C7C67CE8431F82F017BA07EFC0B7EC0484334CC984615F7FFD |
F5471D7514DE0B3CC87EFBED8715A723484C3FEE199EC539BEE005DA6B616E83 |
197023B3E06BFDFAF560BE12B4E08A6339FCACE846BBE9DBADA2AF9954A952C6 |
2718E796AC22514711DAEDF5071CF0FCF3CF875D0DC776CC31C730687FEFBDF7 |
CE39792DEFB5AF7DF5433FFBC9E0D0D0B2556B87FAFBA6C7769C7DC66971A1C6 |
8C05ED31CFD2DD4082EF7DEF7B390C0999B26E301B6DA4693EC5278562090659 |
13EF33FA59D6DF57ED0433ADD6388E706FBF46A6989E9973F4AF58B1824D0EC4 |
C87DD3593F01AF8FA344D985BEBEC1208CBBDD90FB95199BADA1C1FEC9C9B1B0 |
DB5CBE62D9E38FFFE93FBE7E120D4D89C69B089AA2DD9818A29207496D650E00 |
AED5F432F3B9050336CB50803028654C4119ED9DC9C1755F56CB667C8C59130C |
F19D7EFAE9B0201792042A331D3812C9F05BC826F897AFDFF8C4C692EDBEA439 |
E3EFBF74FDAECDE3ABD70E3EBFEB51E5F9D55A250CBB4CCE2B148ACD46ABD309 |
FA4BCFDC7EC5FB5C6BDC8953DBF1022B046F1DE85BD96C8E89F68A7F3154AA2C |
FFAD2E291A18DF33AF81454FA6EF7871EF507681EE4FE0A8D4CD3A0DF4A556C5 |
72FD587FD582A5E466715AFADCB03ECA2A29BBA4AC22FEB3B515774CDF7EA363 |
3B0E59BBFE0F9B1F5EEB2FEF749B591267F44CD228D57A4AC3839B77EC6877BA |
D8ECC8B69B49D2A36580532D148B8552EA58F5389A0CDB8DA8BB5D170F684089 |
D072B0A32DC852706D4B41EDAA556BF546DD76B4FFA4D96E09ABA1DA4AF0AEDD |
BB77330B8B704C02D128C54071DE769B9A13BDF9F38A9CE6495CE9E1C8B515EC |
746C2B38CF97BFFC65B6FF6581D8BBDEF52E7C42042162496137F1434914DEFB |
FEE285168CA345F68B412CEE290B1158CA2E7391DC486652305F918A35FE64A3 |
111E378C9679D28C4C58590126FDD55A120879D146E66901C7C4EF99C643C923 |
4A37BD6FDC0C7C051B0D8776EDDAB538F3EC9D42F7BD80DE611090D5994738E1 |
0E415DA5C79CE846B8153F67E19532BC342AC7689446C48216473307CC17D360 |
2E145F9238C10A207AA8E9FEC2CDA14D7FFBDBDFE6229A28312A537E593778EC |
B1C7FEE8473FD276EBF838ED44F10E9912584AAEB8BBD46AB5C3C7B2C1BC7AFB |
74E3D942D1A70601C5B6502A05D05C2C6BBF75EB9E7BE69952B50A1AFAD297BE |
34D8DB4788706A2BECD7A855548DF1952C5DBD7ACDAA15055B9DF8B6E3699092 |
CD61E46C9072F9E597937F49171476AF6466A4563A82D6EA35BDCD461B1A4CB3 |
AE2B0CC0A460A6C7091407D5A82BCFB5962D5DB365CBA8C668B18A51BA476B01 |
2B6FA212BFE8EDAF3CE6352B96EFBF6B74AAD588FBFA87F0310BC221E1A228E8 |
769A38CB4383B5B1F16D0F7DF98B6AF25794DC9814DDD9B96A632B230582FC57 |
4777E340541B5033F694FB227E1E0DD43E369675CF4D97AF58B163DBCE430F3B |
ECB9E79E6BB75AD55AAD91B151186BB695D22D468840D2B0B4A990D328DE2182 |
D74AC9A1345F5B4812E838811A78FB2537CC287BD774BDD4B77C26EAA495706D |
7744F7950B3B94E8DA90551AAFF89ECB4E53D68E5A3168B7C26ACFE04C67A2EC |
175BF5D871D30D1B369C79E699B8F30D37DC70D6596789F9BB4F8E601965952C |
5B63BC91879C674D7AE02C8246E0DA4E94CCB9437596A5956567A66A895BA828 |
D789828253A8C7DDB4A0291C62C3819CB0EC92651753DBD5EC28EB0D655B6B62 |
AFD72DAD5FBEA23D391DB7DB9EAB66BA501AD2319D569482D03B2AF5955E0A28 |
FBAD30EC2FFA05D8C885220EF66CD89DE83627C3B0994104793A47C88913BB11 |
452D0D6D6DC58E0599A16552BB0521A10DFDD61C589964FD1D72C821071C70C0 |
FDF7DF8FE95375907A1113A2D85C407AE4E97D5D284E4046C9AC4895F915F839 |
C983CDA8ADBC8784327214797EF993FF365CCC177DB92AB3E1168A2B702EBC39 |
7505B0BE75EBD6C1FAA15D48FE6CA668337AC1B03618269D0DF8E4B8E38EBBE7 |
9E7BF020CA48723C2CDD9C2420C7944C29A643F1917C3C2D326E80245F8B50A5 |
BF92D289AE7F225508CE333EA7B4A03773EBD6ADFCA1A03FCAF648E5BDCA545A |
13F7952A0FBB806200F3CAD6787AE90B63AAAC1853A66A207B26EE17715E4BE1 |
ABCAD1BBE4E7BCD53CBAE1A2B34E8A2E7B5021588FF6CD25C99AB56BFFE66FFE |
069A828685C37A66BE2CB29E8E110F3CE0E08331A9348C285138000966B89E7F |
F80B8F2A577BE2A0FD0F27BC09C2A054EBED264ED0AA3381EA939FFC245BFE62 |
0C64B2E245E57291946D1BC6414359114C8BA9C946AC95BE6468B8DFB5C3D1D1 |
B175FBAF7B7EEB36C6915821099D8DA395C4212ED12B5F72C4134F3CD56842D8 |
5454EA687F97AB196FE657813AEFF85EA1D999B555E2D820717BAA35A7776046 |
AC7A67E628084719B116CE5A5FE9A82037D86DD6FE44919D593CF4A1835DEA62 |
B76673F59A35A0A234B148755A42479197D180DEFDD65C762C1E01C3F1C61B6F |
A4D663E52DE0E7458C459F2259EEBFFFFE20B9279F7C52424AF324C150B23E2D |
F6ED6E6F5FBEDA6B8C6D8BDA6ECD5E1AA4F174BA0DF61FE51683757A5C71A40A |
CBD27067A9A03A5DF05B4F6760266AEDD08ACD63DBF1201C1306395970EE2CDC |
EB4D62833266AC0C2D66522FE999D68C69FECF7B653E9C749F92A0D7F6DD40BB |
EFC6DAB356C1E986BA7858B305CBA9584E41D9569C841A152E89ACB496A4E5CC |
4A5851EC5FD2DBB762C992DDE363BB77EFF27B8BBBEA539341BBE8579CC4EE84 |
6D1CBB725F5FAA411093669A40704E479D7A9CB433DDBFE63878BA955A516C35 |
55DC50294E4868A5652FC3258B42D8043A15258E489334E8A50C18DC802DF978 |
5459BD4F87AD74941346C4409DCA82430BD90426E4A7CABD20D4FCE8F3100C4D |
42AB819FD0597DF1C5177FE31BDFD8B87123B81358D622F50A4CCB662E354672 |
C4114740FBBCF6DA6B17971C3CA10C79EA1CB69111CCDD8C6F71DF194C66BA30 |
B36C449762753DF3F259B3859FC0D6995341545EBE287167C6316EBBED369842 |
242CB662E7809C3D7BBB2BA33397183BA6B388929C91E173CE3907E799698E8C |
5943C63EF2C823662761DE415AD0E030638D20EAC509235916F4F93032C14C70 |
72433A46D8F78A524D1C26B41F05599EA28EC906F3F22EE805A2F19E18FDA464 |
7B287868AEE2B724B8B9D4D25673190CB11D3BDCAC3566B33EEB168B51BBE365 |
2E9DA8DBED1F1AD24CBCDD864C4F8210561B3340B062C4B23EEAA8A37C5B27DF |
BDF33DFFECA49115347AABA5A96618DB7ED1F73EF0810FB0938F32A2FDE234C0 |
2790433FFCE10F89EF8F33D537509A9E1987DDDC696BFA48A1358669D5EF6BB6 |
9B955225843A1F767A7AAA9D4E4BFB6793B99D355BC9EB74632BADD79B904FFA |
B68D19CB49FCA2EA30CA9368A4BB24C07A163502606BAE3BB4D4344185D9BC79 |
3389B55CAE0A8C28CFDBDC194E3568FE40D60FA7D36E6728AA49A95C86CA5FC8 |
EC74BDDA71FC837BEE79F39BDE846F4786978EEEDAA5726F98B650751ABAEDD8 |
73397662474A7C6B9F59A4526AC02279361E21AAEE3E2581B60A8AAAD0B3A231 |
B5DD8E941DAAFE5A79B2D92AF6D69A382389A2D592D5C7668039815B2D47B006 |
7516A95BB20A41D549E27A1867874E7CDC6440F35AE3ED932308E54B561E2358 |
D2C4429415B5C08D38136C1B56219304969DA8DE2419702B85485BFFBB5A9338 |
03B095AA5E010B54B4DDAAA59378B0B2DD386AEA14B3A40AC96BB9852072D2EE |
CAE288EF6818E4DD13E36934EB94CA4DADA5BAC5D4A914CAB6EF35BA41ACE2E9 |
B03DDA698E2B1D1C8E6CE5941CB7E0F775D334D412066BD9CD7A99CD5A4957C5 |
4E365DCFF574F81D62200BC5911D91F8697B812A4E3BED34B060ACC935D75C73 |
E185179A15489209A2F288B1C0182F82356BB689355792B401E94B1E62C2568A |
D39FC8698B48E2391A3292D49904BFD0F5CC7CC11B7260B229F0B7934F3EF9E1 |
871F7EF6D967E9E8679A8F447C4D5595F157B2CD7FFCC77FBCEBAEBBCCC63874 |
6A699BC05488AC3D51B005C75F10E578A8A459077375589E43CF068F0DB74ABA |
4E4A2E87D9B9899CDD8C60B06DBACA1579DA1FB7DC720B181FA99C45CE26CEA8 |
321AB59B6E6813064E9618B21AA362BDB89DB7FAE4C6300F979EC74D9B3651A7 |
56466A79D62B4A37A7D5ED30C048B31C475FA33D6B9F065814481643D26ECD82 |
9584E1D09225F52CBC8905B5D2AC9CC4CAFC1B59A641316B95BE6BFBF6652B57 |
469D2ECC1A89E0E3F3030F3C101379FBDBDF4E8C33AA211C2D41CC058D43C097 |
B85F9CB593372F65F891FB2B9DD029B6E9DFE7C445CDE4D1A2E12CFC05FB4E73 |
4DCAC454AED19B68592AF7ABB2938664619ABFCA7FEB9AEA9280B555AB650E8C |
A9413CA81AF2B6D36D77DA585E2A285ACBCE5EB1D1DF42192D99EC1C915FDC29 |
C9BEFABFCB1B5396AB3C7C453590BA08790A9106AC1CC3D2D9ABEBA4A91BB189 |
057D4DA437EE1A993EE593AA7AAA1D62AC7694662243EDB766FF57BEE6D55FFD |
EA9DAEB263158DF40D6341742F5FCD10FD56148023970A7E27EEC645BB1B7554 |
37F66C8DC7C359F329CC14A0B3F1FCF3CF873E77C619675C75D555649A73B59F |
19F5BA9E5370A18874C1735DDB2984511F747F5DD49B3A7EB165C5139D766F01 |
8A3D147FA710A47E92B50F89E3C9A0D951B157761BADEE48B11474DA5517BF0E |
4AC572FF60DF92E2C0F6ED5B4B457BC592A1CDCF6E1AA8F53BA9B7737AE756E5 |
05563A9942B5CF16394C868A15D819975F70E1A5D75EDDF0DCB146F3E28F5D72 |
F9959F887DB79D066977AE3B61070499614AECB336D8DC4711AB0249201C8CFC |
EAA28B2E6255364350AF7BDDEB1E7CF0416E1938386162551E4032F16CD4C228 |
D6B454E81217173A332328A7A5FA55CE9495C3A74BD7EE452401AD3D518EF120 |
BA3A85EF498B2A0AA18F7DEC635FFEF29761348B38143DDE6CC2CA3F5FFFFAD7 |
FFEC673FC3659FF9CC672CA96C94F3C3C32399A02A0BC9424B850906CDCEF41B |
90A6416A37DF7C331DF4025B4D664A6604A6CF94470EFD924B2EF9F4A73FCDAC |
58628149DE8EB478141DED9BDFFC26A41FFD3F0CE0E06EDBB66DA3334A041ACB |
8669C42579E7031E72A940863CBCF3CE3B9904C6932C1E556AF7926F4A9F86F4 |
06C2230E3BECB0471EF9BD5604C239283A70FF817E5D6E8E73B5748906F89E2B |
8CD275F249B956EBE2E760C7C512232B507ABEF8C52FFED33BDF59ADD5984B0A |
6D376B0B1813240076256527235456067B823FEFBDF75EDC9C2820AC3BC7EBD2 |
4B2FC5F683083018EC0B7581E1E16150B37076EE111D68E2585346AE0519BA09 |
7229DF4AA2FA65975D063E42A81C88281000AD3DFC2959D5582BDC5C2CE23599 |
F7C6CCC33363B3B0B6A964503533D2E7137174505D605544C52F76BA7F4EA781 |
F4D5DC3FE85A7B964A4AC58DE8FB6273ECF9F4F992404EA9CACC6733C18C1A1F |
D7C7CAB0284836A6BA9DE48D27D31C1A8C5635368E4172C951C6F93CF7DC73F1 |
09A1A4C3EE5C025E94CCE102411AAC3FE08067766CD1A93D71A2D852C252BD4B |
97CCEC1EAD94FB8E7DDDEB7F74DF3D83C3C35BB6EBA4EAFEBEFEFAD454946F34 |
8184711640E7DFFAD6B7F05090074E8A09C30EDD0B9F8F2CD59E4C185E2A0BD6 |
82E1153D0D4775E8F2957E90EC18D77D0522C782C900330B6319B0BD3E18A3CA |
F11DB71D068D24049B1C8D1A4B7AFB76CC4CF766A83F054B1FE75DD3538376D1 |
B3AD206AF76AB32EF51C7F26EEF8CADBA96B17BD46D0B13DA86C961B267D8552 |
1A84B56A6D57D0D91434BADAD55C6B773BAD288C2C8D3204834A2F3819719AC8 |
46EC531290E5D10349FB989C8DD182A1CC0A9776AD048A205CA6C0388B4E831F |
529735EBB616C1A6357B4508E8246BB3440D22650AD2B5C818B2BB45EECFAA2C |
C29131942B703814066C6446BE8D6BD83C43E5A08AA6DF9BEA027D532A4B789D |
534A947AE94B5F6AC96A52AB4AF3FEBD2682ABCAB12924DB9A163D4B6DC5A38A |
F7601C1FF9C847642D68CD71ADD93D0677A3678D48763AE13DF36E73E9C91399 |
95A50CFF97E99EC22E9E7DF6D990EDC49000B9E387DC5191BA6906A306062A45 |
7799D6596525B3083C8A0D712B1333529AF75A79711C6E9BADEFB3995B094672 |
F679A7ED3A2E55D4EC1C657A96E3A6AE3ED960B1B8149F13C3A358F0C1BC72DE |
91CE64CEF71ED8466363B81DD3619972801112BB5B4A4EBEF0852F6071D882ED |
37BFF90D77870616C606FE8B93FFDC73CFB1028522F3A4934E620A8100CF1255 |
9114409B8C9E44493950B9FE2EE1475EC96FF1A1A45451E4ABCCE7031B8E92C3 |
54AB0935384F654EFFDC4C71AE84858EB81FFDE847279E78626673A4ECE224A9 |
D0A0226DC70421138835AA7BE68DF2B3C52CE425EE6276A47B76929083BACF03 |
66EA925831989EEF7AD7BB5819C4846B2EAF207AD288C40859D344FE6E9A1D72 |
A840452CE93CE8A083DEF39EF75C7EF9E5D28D44DA206B902EA50B740BE54AA3 |
53B7A14EFB85C6D46C5F4F6D7AB63ED0579B99AA57CB3A89A3E0FB279C74E25D |
77FFFBF8AE891B6FB8FEECB3CE05731A1E1A6E353BCD7673A06F686C7AB7883D |
CEE898638EF9E52F7F29270863C681E218F0EFE9A79F7EEB6DB7EA2D28F9B6B2 |
960D0F8D6EDF01B375D0736B96E7B403CF767B960CFD69E7D66AC12B174BE582 |
E784493ADBF2D2A4CFAB3A961D401BB2ADDD51735645AE65C330C193C0BDFDD4 |
1AE8EF57A9DD9A99EEB1DCBE923FD69C29E8307EA9099152CCBA8CB43BDAB281 |
508955AF5B8CDBDD31158F3BE9B624687A59F0C9B2D3083A01D8DC9C06E0B859 |
B4320A4D0CD7BDF7514CFCD86855249789E743E06468CD93D713AA40B213556E |
B799B01F8B44F2A9D14A46250720006BA62222F75F8420F796343494190E2468 |
34074C9DC9F483498B01362497A2744145A35F88DC9B66BDE429FC59A29ACE53 |
BCA005FFE94F7FE2B76632167579B67CE21057AD5AC54C551C12B34A9B1C997E |
89238E380277E3D28389DF78E38D04D18DB3AE58663319CA491A07341768649D |
79E6991B366CE021945C31563E3379865355B9B7847BCCCA52E9392ED3E11C05 |
9146D69D903BBC9B094597F13B6D762471CED4ACB9743D694C48283ACB5199E9 |
1042532274873E057ED1CBD6900122C9ACC523FA8606C197F1E7BFFFFBBF633D |
F11574C665CB9631B712D63DC533AD1C2244615258402C0EA4202B2A98E546B3 |
89F5048F3DF698CAB5450C8CB5812C8310BA115802E11A4EDEC75465B900941F |
2AB740DFFFFEF7633C96019062BE606F412659399627A5B2243552CFB072546A |
EC080E1B1E87B99B05BD925D4A3163D1E78E9DF532CF6C2677FDAC1AD92F15A9 |
EA9A99CD7B3BA316C9E2909346BEC0D375D659677DED6B5F63550D5360E53E58 |
64903A842E03BCE6E34CAF6B6A74B3E00BBA05E64BAC3DEA80DAB6EBA8BE9181 |
ADA33B54C15661F4E98F5FF19D3BBEBAF5D967D7557A669BB335AFDC0A5BA14E |
C07740E33BDAF582EF062A6D45B157AC4C4127C3F6957B9BDD261470DE905E0E |
EABC245D0C180470E8A187FEE4273F21F488D4396A375746A28E9A330B063DC7 |
0AE321CB7FD94B5EBADF61077FE5AE6F75A2102A6E2308870A8501AF5449ED72 |
EAA820B2E2040ADBA493EE6ECC345434A952F0B6354B8777EE1AD388E8E5B2EA |
8447ACDD7FE5D0926D9B9FAB77DBCD24DC529FE975340C101666C4B2AB96075B |
B847156D9536970C3F3CFAFC6CB13099841A9A65FB68090A7214AD58B91AB4D1 |
6AB774A7FA2CDF699FBB694A0232779210FF24115A7903E7D5AB57838C7101F6 |
1AD6124F2E0F17FB64085B64D6BF84A0F6DE537941E53AF5D4536FB8E1065020 |
8CE63FFEF18F2296246ECAC8A5E0DC48F617EFC9012FA4B2305A09FA01CB2533 |
E4BCC85DA92491F5812D1C7BECB15FF9CA57A870D32A12740D933D0A683F2B96 |
A966595292202B4BA90002828D8F5152415646B23F2FC3497EDFFBDE07EECC6A |
5B2A44983363D6CF3CF3CC6016FDA359200E25137A5BD8347DF4D21DD3378269 |
5C0569EEC191E4F0357380D8920C2A2C9E82D4CE9A0B9E77DE79581D8E646464 |
045AA778E528C029A541259AF2323A58BB762D0EFC3CDE0492D0161FAC8894AC |
4D490B0B56B4E171592554A2717282B93CAD6EBBC3C14C4D4E14334707989AE6 |
CBD35395B2F6FE4FCECE61AC3EF1C413AC692290355D37100FF8EA820B2EE019 |
262950E390D6407CB1A0096B45BD80AE3086B668D8514DE0DEDF7DF7DDC71F7F |
3CCD23490323B3660731EC1D4682AF60363EFAE8A394BB7434615474AA4A8121 |
56553BBBB23269B6AA67761323F364A6A26A48408F344A4B881A99C08D98AAD3 |
41071CF8FCF3CFC308B0ADB9C43E3DE024ABCBCBE1CA2909E6A54E9A92C05499 |
E7BD4C3C1F0A54CB68414E97A3DC90AE5833E066B61690D4149A141812568999 |
0BF22CC9CBB20AA534EAAA3429169C7ED72B073144C4C1BDC3CD99B161BF36D1 |
AD8F146A9997BCEB651E2430CF4DCD99724F6DB2D5768B95896E67DC8E43B0F0 |
E65C469FD9A74C1A34D959A768E26D1076FE539FFAD487CE3E2B3B2C1644EBFE |
AB75A71ACC6159B9089BA0D3ACDBFA2CECFFFB2D9BFA7B6BB3B3F573CF3DEBC9 |
3FFCE9D15FFE266EB7D6F78E2CABF675A667740B2BCB994DBBB34ADB1A76B9B4 |
6B667649AD1724B8796AA25628C641868FADAC7626C9FB07FAECE6B4D555B049 |
D7F50CF63AFEECD4A4A7CF90FD846ACDDACE68C1AA4312B5BB8E65F98E0BA1BF |
FFFE0762D8382669E6230AE339BCC8791175D97126E993A550EB676107B51951 |
D788807BC8218780AAD9269DC994924249910FE2375B558B6B649F9A84E44FD2 |
E0237484440BE8DB21F828FDFB8CC649899960252D2409F8686A634C58E22132 |
1B2C923F402CD1A122AE14E1D8A26F092AA894EF5041B14C1C1ED16B70D1E187 |
1F8EC54A73A0667A75549EB8294D83A1EF808132010E97B129B9CAC38F8C59B3 |
6E88321623C3D9D8BC793367888951C1C49F279E78E25D77DD4511CA800FAF91 |
A9529F5279334B668592DCCD947F11068CB8E20DF93BABD22978481F127ED993 |
E32B91460433C905B8CACE7C467FCA2AF8366B9BC155FFF66FFF967C4D43F56D |
DBAA9D4599EFCFB51DB0B05221C3AF6E367A6A3DB3F52C43D471E97AAA37A0EB |
CDF955BEFFFDEF536DC46831544EF98E3BEEC08AFDF4A73F15738D0427815F66 |
E9B08BC54B5EF292DFFEF6B72435B072C83C56E7E14489B1FCA217BD08FBC52E |
2B34ADC882B97482BF64368D619A00F31370433C0E37840670E185170ABE2E37 |
FA7BDFFBDE9BDFFC669543B4F3866623C6BD5F9EE730AF140C8B229F3283B995 |
788301433F60A88381A2346F2941F385BB4F0E681EA7FFB644CBFC5332D33878 |
E2FF10D051F28C05D05856461CAA5453D8078AEE78169A50C7AC662F7C2B9012 |
7A3BD2C4CFD2B9FC381D51EA8081A1F6E4789A95717996D55BABED9E9DC59FAB |
8787FF3836B65FB562379A81ED6C4EE2507358BBAE92AD4AD53DDDB5715EC611 |
DD77F2A1F804C46DD5D3D7DBCD0AD3C52628D8969FA4872D59EE85C9F8E478A9 |
BF6FEBF4784537BB9E05B7AE958AC5D42E4669AF722A61524954CD2F05BED768 |
7722CF9E8DC299B01BBACE78D88EB32EC220FB62B144D7710B9A878A5CC7AAA5 |
49214C7B53F7A0A5AB2AB6373A3ADA0ABA41126D52EDB4521B8D43F0C87AA3D1 |
57AD75A3D02AD8A582660BFA48528148E2745F4512A6978F1B2730F226FB366B |
4E55667142C1A5A407F562C560804AD88C6C4A8003C8791721A797BDEC65BFF9 |
CD6FACBC539EF4471320E7796D4AA5448E063A9E8ED558E88C502C41D9C26A40 |
23BCE9A69B28D294815B4E8D99EC4B0AA4A5124B19F8A3E99E45C8229CC0BA2D |
CBA89C32D53731284CD816C29B48D34786C518834DF2A6C4900DE46258143167 |
2EBAE8223035BC977D12FF97CA9D186CACCC9234C96C39E59453A0DBF2CC6339 |
74364510DC72CB2D1FFAD087C421208A9B4C8162405C46AC6980A6FC777FF777 |
3FFCE10FA5525C744F8AEE7BEEB9E7A4934EC257928F2FE57FD98BE9B3366C55 |
BD62764C6EAB0C686BDBE81FED6551040DFC5B2AC3C8B5FD029565BC2632A6E3 |
6721BE508B482DD58E38E2884B2EB98454487E072DE0B4D34EC3CDF11432DC2B |
AFBC12D440B6429F3E970E5F610A7C2395AB2CA0C36574AF898754B2ADAD3C05 |
93AF78CF7E612CE9A0CB1E2B4F3714AEC79661606076827C69E6AE606D25B161 |
2EF573CF1C5CA8A2D8CC8C52A9C7C17822EDCD3D9ABFBAF1C61BCF3FFF7C81C7 |
32951A897E8B12A37213DEC497DDDB53344F12A4796F716676F35428C3889674 |
9479E529666E923900931D0BEA80E9FB12E94573B6A2D472BFE474DB07567B26 |
1AB32B0A5E1C859D440DF756A04F2559D7AD94D9A8B6550B52A7B7E7A999D99A |
6315622B52CE64D979AAD509B3430432605D0B551FDAD094A604E816C8FBC30E |
3BECF1271ECFC80F82C82B17BCE6CCACC67A8EE295E55A214A678206A631A97D |
3238983DA393B3158D27A58122FA21A252AB57B9037EB51D74972C59BA73D7A8 |
57286D0AC63EF7D95B3FFEB9CF6EDCBA39F49D5DED399190E8E264B5B40CE526 |
18046D58854AAA96FA7D45D79BEEC0A08BC6938653284D45E134CC13E5F4F7F6 |
4FCFCECCA6A153F6227D8FEC4493D1ABF931FFBD2581CAC303EC53240908140F |
38776F7FFBDB7FFEF39F3FFDF4D3FC4AD2DF5FF18A57FCEA57BF4A33DC5C7EC2 |
1A0596A14816C942DA0CDDC24C522224119324A9F893F308D36346137323193A |
C268A1EC0B7F9FF7BAE28A2B3EFBD9CF625476DEEF1D463F243DD1C07842A557 |
2BE959143BB90995457E452287A2FFD8638FD1C6A5053C873B24A0C192FC97EE |
8999278E486AE2D2554A1A1570F22677304305CC791758698111A5AACE30BDF8 |
79CC7C5E4A0B6C092E906456EAEF82C9271C4D0E3F0B4CE87A6288822BC2D1E2 |
57C4EA115E0FAB0AC378EAA9A73006E6C92C5BB68CE00D52BE0B11AB375265F9 |
85DA569DABC56339A2A8C6E4178C0DE8FC30D7657E7AEA67D202E2874950EDF6 |
CA356BB63DFF3C289C0AE90B5FF8C28F7EF4A3E2EBC4C5E0FB58F63FFCE10FE2 |
BE90380F816508D4A3D1833333968B23A94152E26BE54D50E99D60E45C2A7184 |
C75979970C4620409DE79D771EC430E3C32AC7E1C0E38861A28CEC8579BD79D5 |
9E0E196E10150E58294CD703A1552A251869940410B41C00CD44A8CF843717AD |
4A421AA90100257E21D28CB8EF4D2416D38FBFB72420BBFCE0073F78DB6DB7D1 |
BE8CB33E910C6B3151427A7D98A066F342E252C328DD89B9DA74D9310224BDC6 |
B4BFC276F61B5A32BD7BC7D1BD4B3A33A3455B75A0A117D5D2C8E984712FB874 |
B65CBBF1DB825B0F22DF76EB05D5503198F55052EC26DD1D2AC5C6FC313F9B3C |
232445A92D905D2031CC6522F664F096692A3681AE068893953DFD154B671F75 |
3CABE3AAF146ABE865253ED07ABA613155C39E3B903AB5D8AA396EB9580A1B9D |
BE5275BA5D770AD5B124184D3A9389B6E940F41371D84892652B97762726BC66 |
D86FAB925518F02B4EABE36BF15048CB7E5072B7CF4CB4A36EADA77FE7ECB46B |
610D2CBB58D8DA9E76FBCA9DE9D65CC20571098D04F77D4A02BA6AB1F85028A1 |
A47FF7BBDF15679DB41E03E5BFE73DEFB9F5D65BA9804A5D2A0102085BA23217 |
08E8E1861B6E108701211F16D1D9C994697B096E1B85CDAB5EF5AA071E78800C |
D02C939698047D248B782F2511D9F49A9A3DEC4E3CF14468B11C21072CF12AF1 |
CDA83CDC8B7F314222BF51079D3B3566470B93C425819AE9AE1C0A0B2BE60061 |
3286CEC8E1BCC4C1C400F4971A0739784CC630D53765A41B2E247B252A689675 |
70C2181515378665E8C7A0B794C28904419F38383E4685AD8261C1F47C95D70C |
63D161B89C7CF2C9A2C7411E60BE26E2AB084EBE37CB7C54DED998FE773C88EC |
F2F5AF7F3D341189BECA26513BA0D22132E9AEBBEEE2B7F8EDDD77DF0D2EFCF8 |
E38FD396A4778211027AE1A16EE0E9A03033DF696F96A78CE837018524CF817E |
55DC641E9C3DBD46748E49031FD1684C170D0B3ED9C98E631072174639CFFB4F |
6F092B7458564D158916213B32B2191CE53DDD6E18092E83CCC653244BD89CA3 |
655426327A814708EA09FD99A2C1984B849F808021ADD9CA58DC59A64662FAA0 |
A094610CD27543528C04898B0E226AE86EAD58DF3DE5A70EEE52ECED0B1CC872 |
AB3D35F18A48F9E07BB6E3C52144166E54B59C8A8F1B45B16365B5B8DA74AA28 |
ABD72DE2E76D2B69479D482515D72AB9C5304AC6A14AABE4198CBFDABBB13103 |
0D62DD81876E7AEA295F7777A8CC046DD69FC37A864AC1800AC5BC19DB703DE2 |
2BA44B633B4E93754B574E4F4D411F9C0CDBAEE736C26868D5F26D5B775C7EC9 |
45575F79D588E3C26C396868E58EF16D6B545FD9F3C19B1D3A125C68469017C1 |
A46A45AEBB338ADA96B2CA5614A67694A584A66AE5506F6BBA51747CA8531694 |
C272F96D27FDFDE76EFB6290442D1576951DBB76D7B61A3A7CA2A594A4DB936F |
CCAB9B93DEBFD4AC69EC62978F3DF6D8EF7CE73BCC6761112B49149B020B1B4B |
A172843E261F523192F43072734960A379214C9F2424559C144E0BF1AB798AB9 |
CA429B74AA0B4891328A9618EA23131356CC534F77024FC7FBDFFF7EB0298A1F |
8C44324ACF3CF34C0839C17C140B95A4CBC5C47C851550F92355C0FEB67862CD |
0C3CB905411D56AF5E4DD8679CC617BDE845BFFCE52F390122C7419662298F3A |
EAA8DFFDEE771A77255769892520485ECC0E12E451A6E898C9E6223F16C9D612 |
03903C9DD6C6BCD6E4CA805665522053AFC4DD6FE568246C3A4F7E47BF2AB79F |
EC065F11BC4919FA32EF60661F838B7DF18B5FFCFBBFFF7B2270903AA5FE882F |
E2669B59342A33BF043684F03BE29AFFC637BE816140C8C362A5735919A5DDD2 |
C8410C3DB38C4BFE95B525B1324C444D44CA4CE679F0C54F22A8EE5275A1320F |
9ED00646256752E237EC5277E49147327D82D449AF05614FE8A3102500C715EB |
663A0921D1F1134A0833E141E243A24F584627B27992402C45F310D2BC30D1D9 |
E851A41816B39D8B402D473214B8EFE235C614DEFBDEF7DE74D34DF40EABDCB5 |
C88C7552B2A98279E5C2AD9FBBF9C3E77D582382694CA46ED9B3933079A5B274 |
3D97AD7D8E6E9A40552959B60F561084CA7512CBEEC4E035CA73DC02F621B582 |
54B513ED31A93856C9F192D89E8E8386360BAC46B1B011ECA3ECBFF8A5AF78F2 |
4F8F61AD66EBD3CB972DD7BDE99B4D661389DF43D66A4E0ABABA261A0F5AED15 |
61764CB71A2565B554BA6C7864DBD8EE33CF3DEBAAEB6F58B664B83E3D8D61A4 |
9D4EAFEB75A3F0875FFDE6C51F38B7E87AD75F7DF519A7BFB76AF903FDBDDB26 |
B7F47ABDCDA855ECEFE93AF678AB11D8A95D2AFDDD716FFCC1F7EF9D9D98C2F3 |
D62C5BBA65E7AE91DEC146BB5D0F3A071E78F0EF366E746C37716DF03FC8800E |
3B10BB4E4F798E51520383C5FCE8A38F827A311DC1A82751F1D051C157B9DF83 |
D61BF13C78A2091F8DCDD2750F39841C7F4B6D989625CE3515383B435326D090 |
60D34A892FD69300FB8B4492F908F1C2CBC5E2E190B68CA4AEF7BDEF7DFFFAAF |
FF2A37A420A14EA68C923A1AACA283E28D6863FCAD7482E1D921019309088829 |
34426833727C0E39E4104BA0B884298B0A4C712428928CFD527FE4F6C8684472 |
EE338BCE2CF4852904E58B1D0BCC879A518A7DAEAC19BAA079253259D2B0AC1C |
B38C250BF4D2323CC295227F11B64B8E40E12CFE7DB1DFCDC69694D5CCED51B9 |
4B5DDCE50C9FC8E9622906253CEE49E81E91FCE25590900EED44366DC66E7DF6 |
B39FC50510EFCF3CF38C242C127C54F45C0199C053703630069EF3BD6D020A4B |
95A7545F7AE9A53086F820DE5CF829DFD0E0E3F819121725C5F48D9046A9EF53 |
78883FD4AC1B97B098249E72EFE87DC2BE60112ECD5E941034A83141DC8D8964 |
C2C731123AEE247BCD94796602347F75FDF5D76FD8B0814C90C8A66A4F67919D |
BF30482E883425557938CE8C3D50846B8F6AF615010F24539BE955CAA8272071 |
AE58B274E7E828D46DFCF0E6CF7EE69C0F7CF0D0C1BEFAC4F47A0802ED1183BE |
9CD849CC26BD6ED633C077ED822E55D7141D5B2AB09230F3DA76940E1D941DAB |
AC1C954036A481638FC541B3E86C09E219470DAD5CFDDC961D7EADA2F1F8E284 |
9A9CF87525866CAE9BD80407F68F4C8E8D1DB4DFFA99A9E91DD36396B29B0A46 |
E78ADD63E3CD4EB75A29755ABA120D4B30DC536BB75A034EB1D96DC2105E5F1D |
71DAC175575E79D5159F48A2B05274661BF5A9549B046EB132D6691CFE92A31F |
FAED2307AFDFFFB96737CDA4EAC0652B1FDFB96D69DFE0AEE909CB761BD0AE40 |
48B61524693B0AA20CE26E5EAE8E44BF30546C289147597E2F453FE6957CCFF8 |
307689E5EC250000FFFF49444154E18A2BAEB8EAAAABF01369788E3DC5464BA5 |
BD34C79DEB8491C778F19E6BC80E71D4C9F889D4242D124966B2D6BCDA75868E |
E9D510FC3406C32EBAE8A2CF7CE63352A4468552F806450B4D5E713D61B29C3B |
59313E9752F679AD0B2830984A2ED58EAC57A5566D516E982E63DE82E8119015 |
4F3EF9A469A691A420E5B02E66337795376B26B6A87812E8A561C7024CF8D5AF |
7EF5D34F3FFDECB3CFEE33C96F6F3FA0BC843878EA98CB215695C83D411DE0AF |
049B850E32DE8171125A85B2825C77821A0A3BE314A8D262FAF4F3B02D06AE39 |
F4D0439F78E20995433BD10F4BC927880BA6277D1EC32273A14542683C53E725 |
9D095A322E20B612C5153D362AC35A989732314F128869297D4DCDA6438CFA50 |
8F90E51589CBF26C1E15FC09298E8DA3D383B29C2441E6C8827E699F24BD2224 |
A391A04C34AE5566A872F1A5E8814506323C7A8DA4BF317D3E6CDB39AFFB8D32 |
80C39826C8B512B6CE2431B1C6CC762E928E25D03118305806E490148E89E420 |
B1B1B24FEC1B91799292CB5340576430D568A9B86FC9E0CCC4582552EB5CAB27 |
4A97FA3099B37BEA163DA9F6C4E3AF34D6A8B58E2A5A76057497DA71AA9A69D4 |
48431C270CBD9BC5608BB6AAA47641A307D9184D3768B77C67DCB59E6B46D005 |
74CF30B015951CB86215F820E996B441DC02A3A57B86D1E2D95CC325850A74FC |
89E9A9C172ADD1D2CDE9CBD5F244A355F1DC7618154B05AC026C1ADD81A3AF67 |
627C661016646A799D6075FFA0DFECAAA0E3ABB4ACDCB5BD03DB67B6FFF50B5F |
F38217BCE0CEBBBFB3A9BE3BA99476B71A13A95AD5DB57EEE97D72EBF3955ACF |
CEFA6CB1E8CF76BA56991A4992E149D8CACED4B524EEC98ACCA5FECBB4690482 |
9BC85AA4405152258785F911D4974567259991E9E1CEA79E7AEA9D77DE490729 |
96E5A0830EC289C642317829F622F3D6E8FF249DE071D0C916EF3167E5F065F4 |
4813304E42B07C22E19CA147620CFBEFBF3FEE29AD8CC9B5CC3C0E66B8C26421 |
9403295992FDB0D72CF3320B1E859F33EF0EFC0DF767DA2116FD924B2E811236 |
07686FFA7365045470E6759464AD00E31E736D6EF226E3E4C8C28B05FAC6B4D0 |
CDB4161192FF73492036814C4C2481098363BE046158CAACE959120DC236A05C |
793D5E8C48531D662F4C61F1471D7514EC32E6C2B34A8B8C92811681D061D893 |
8C8FDBC6FCE27D962C72C360FCE2DC0A040A87C4B0B6B06C5A3394313C213CD2 |
04663095596504094C34568CF9F4D34F07E98328B1FD98297F254524E4A7D44A |
ECBC7B1F5703F635F823A438C50323E45C49F6AAA3348591CE88519A37D13633 |
B51855335B8331A949F08E703DEE8687626CA2DA706D993C86AF04B7759F9240 |
28EDCC33CFBCEFBEFB9E7BEE3909A2A83DB16BA410611E3E15D6FF98638EB9FF |
FEFBE7D124D747C00D7512CEE38FAB3C9C48DB941D5E4593D09ED24475310527 |
54913AB2B7B6265256BD3E9075B54B991964D99E5E3A6A63495AB0FCC42AA52E |
2501C4C0B4D28D5CBC2C375F9725DBAA8A0B54EAE3ECFAEE40984CA978AA608F |
86F1746A8F820356AAA3ADA6AE54C83C96D75C730D73D258692F5EAF7992E0AA |
8BFFE5B2CB2FFFDBD7FCE5430FFDBC542ACFB49B56A9D08DA33484366377C324 |
B35FEC6215B6DDECD235ABC7B6EE483A51D952B5D41E700A438552218A2B6EA1 |
DFD27D8FD356A7E4149A71D7EAA93C3D3BDA3F32DC4E9D4D63BB34A444A93CDE |
C6F8B0CE7DBB26A7BD8AD627740646AA74DAB535270952C3C1C00D65BA07F708 |
347FEDB5D79E76DA6938B0243CC96789F366EE175C70C1E73EF739C982A1424D |
26804DA7E262E7A0938CC3895F45407B44833EE79C733EFFF9CFE327A79C72CA |
BDF7DE0BDB426215FBE4577CCABC3801484597164D4DE1E920CB638F3DF65BDF |
FA16CEE03BDEF18E1FFCE00766ED98E09A905748CB452638D02B40E6809113A4 |
4084A5D9C85A14149A352CFE95FA3B06B420FFB44B4378A24077C9B8712F8116 |
50B93FDA74CA8BBD6926E3CFABE2210FB532446F412195EA06F53FF60E99F794 |
2662DC42FECB642F2AFE8CA560E1D2AC9A17B3C0D1C57BCC9C5D3D059F521896 |
1090E903A15E6C760AE48BF797D45DF62AA04A824FC87A58912B7603A9CACA61 |
9D446ED36CC21DBEFAD5AFBEE73DEF317DDF5C25620DE1CE92BDC00003AB1056 |
AF5E8D8DFCD5AF7E25AAC4BC153307BF76ED5A6C396E888B5FFBDAD76ECD5E42 |
76A478AE065755573C64CA35975A92D548E55C73098C4B05BF044E71CD4B5FFA |
D2871F7E587A8EAA2CDE4093564AF94C5187B1C1903FFBECB3550E30276DCEA0 |
6362D7FEF33FFF530A32E7614CAABCF3387E22B05C98FECB5EF6B24D9B3649DC |
4FA8942FFA06193C14331C328FA11DA167F1E69136C8FDA5904265851A189B9D |
77CE11B1B7ACDCEF2DEDDBB2F379A79D1CEE15D68671AF8A0B19E45CF6DF9FB3 |
AAE6E81F9C3E8ADDD876754B19ABA1C24656C46B65EEFBAE76A15BD55855555A |
CCAA3196ABC264D899B6AC595B359DC2B865EFB2AD6DEDF63FFDD33B1E7CF041 |
EC97B80294119C547B7987064A95925F1C1F9FC0773558D251500FA272AD08E9 |
D469613D97EDDCBED3765CBF526A3471FC753144B7DD29BA4E1AC5CB6B3DC524 |
2DA6362479187746EC728FEBD73227ED78521F195C323633F54FA79F71CD4D1B |
EC5279A2D39A4D55A5A73C39DB2A574ACDA00D1903119046691464158E4A9F94 |
6A4F8D7445751E2401460C0A04E590DF094484E423504766BA173EC79164C516 |
79BAF45737D585A38F3EFA91471EA182C502A379D59A698E5C2426382FA60B5A |
328FF7C9AF6870339305EFA147FED55FFDD5D5575F2D0C9326056D5F56A57184 |
82734CDA60CC75EFCA5CBCA1485339C40B380F0EB848502AACF4007319397D58 |
2138983FFEF18FC934C8E4FF9C732D78AD64556C000961F595AF7C85D6346D61 |
E2C5B3D40DFFD2C34E66413B8576193550F19388678651FB34C79350FFE388F1 |
3C5B41D204B94FE2A99897DECE79821DFFFEF7BFC7F2D1A1CF84192657C93911 |
3F204984EB2EF87F5C1C7A93B97C521E421070E165E4BCD05988966A465304E1 |
32FD3308CFDCCA83BCF038E8E9589CCB2EBB0CE4422425B3F1B4CA9385B9C8B4 |
DBF0158CCAA79E7A4A2A03E6D9045478992797E695EE2C3DC327E211125B52E5 |
490BDC566650D04CE48ACDF3358BE0A413765E5C01E2F0E69B6F16F72063B9E2 |
8711CF1EC52A4C57AC182D680A3F9219DE6335B0232C5291D68CD27F4AE5517D |
1A1C0CF9F2948ABB96A3322358F3288A0966B6016228A5D76216E01AE60BD262 |
66348F56C5C73EF6B1EBAFBF9E75366440CC0F713AD164D8548E5ADD3B30343E |
BD5AA5BD1A9339EDD17EA11C527B0EC39A940D861882406CD7892DBB13859D54 |
7B4E62E5CCAAB8A9C763D552AB02951F1BE7A8C1B45C4F82868A669402831C57 |
6A9B520DBF1077031E6D8C017B2D6540F3D43589185B902E65DF4954ABA3FDEC |
7ED96FC5A1532C741ABA00ADE879769016DCCCAD1776D7AED97FF3F3CFC0046A |
761AB5DE5ABB51C7F88A96F22CB57C6018B7DC39BEBB0F9AC7C88A99898934D1 |
FBBBBDD3BC7EC30DFF74CE592BD7AC7CE2F96D6EC9ED74234EDA722DCF713349 |
A0FB1CDB5951719C2195C84136B56F1C13DD143363D9ACED17B214BF9C328297 |
2AEF14468141264063978D5499A629CE1CDA0D64F7F857B22B19FF33938617E1 |
57B462C57D4D258915A3543AA979280311525CA3BA4075EB56A1400E4C4AD5A8 |
1891A3DA79A3785C005375FDFAF50F3DF410FDFEF2733C8BD0C56CE7C03A06EA |
58742551A5DB238B945A8F95433C62A0445FE10F88B36A16374BCC8D87567CC4 |
5C4D49BAA0334B0C257C28FD58FEE759A4F69E8DC3E4B70C6C0A321207C96D20 |
CE9D58365028DEFAD6B7DE7DF7DDB8926A057828989724B9D2ABC80089E40E9A |
AA84F44C2641B0FC44E5A95064DC2411618882DD2DB9BD12EB56595E0AD3E7C5 |
C117E7EDE198CB44F43791521C06B780A14EBAAA923D3138CDF5E44E51F2D1A7 |
471471A9D6E6058CB349CDA0B00C4171E1411263D94CEFA17B8AF3E2DD447449 |
F921A7607A3F99CE210C940F12C290343E395771DE1543653106668B27790B04 |
26754803327A8A2529801E2D19B0A44A53345A19E6AE3C826E5399A9990421E5 |
A366362AAD5E9A0B221779BCB57C0AC39E55CBC727775F76FA871EB8EEA6B5CA |
8955078AFF1295237D257343B1B35215F0B1200AD99139B534F25A104796D2CD |
1DA7128DEC8F1F55955549B424702D35E0D7EA51B791846D5BB52C7757923E1D |
471D4FF5963560D9BCDD14BF9CDA2B8BD4B5DD38887A8A252B558D6EDB2F9766 |
3B6DBFA7A2BB2DD5DBA542410736D2C4514ED1293562DDD8245129B6B319B621 |
018A50151CBBDDEC622DD2440D56CAC33D3D3B77EE3A686878F7F8D852BFDAB0 |
AD994EB3EDDA936104522B55714EDB10DAB695856D223D2FC803CC0F8230C984 |
9F14C4902333D183AE126E9FB04E12032981F32275E1E0D31FC21C53E6345E78 |
E185575E79A5E4777135A41FA489CDC04D14709434EF4A22DC729188B132D21D |
C5409C2786E5B432AB07548701E398C08AFDC52F7E314F7253B7A03A2E75E31C |
0F9DDE1FF8C0076EBFFD7666BB304A4709B16EDD3A5800DFFCE63779F4A4F022 |
CD1119E64E0415796A4F9C214C8C134E3801AB7CD34D3761A1253D4BF8915092 |
44B479F04464496C532A3598C1CA33264EDE390016CBD2C0FDE3E392E9B54F09 |
A18CE47DE159E29EA24227A61C452553B52485860113E8EF4C9B31755B6ACD26 |
909C689A8BA0C51E7FFCF1902BE402ACF3A480614A005B89420179FAE9A71931 |
A6A5262077A6BC945C058A07137969C58A15784F3811D3D6D9FBC51C38E27FE0 |
6E340238F1ABAEBAEAD65B6F85D81B1919C16E8268BEF39DEF10A3586C41E9D2 |
B3902416EECF35613C033B2BE57E54DE8589EFB3B801363ECB38B8477606D644 |
355F4A464CA0FFBCFF572AD4C25C11D0275686AE4BCA18CA51264751D4E126E7 |
9F7F3E8C5AB61B224F5159058038C1CCFC5409E353E13243DFF82133B8C518E7 |
237814C961994945B98B37B0ED30186CEF8A552395ADBB5642E9EB2959B36DBC |
894AAEDF89F92CCBB175FB972809B28A623F55A58207BDB813E8441A5BD9896D |
7593B869A9D8D65682C62082C98E63A5EC1EC70DE2A056EA6BA6C9F6CE2CAEF7 |
3DF719DBFB7DD0D688ADDDAEB895654995BDEFFDAD785E076684BE83D7C19A38 |
965BF2BBAD8E2AF92A8C5510AD1E5E3A3136FA994F5D7BEDD5578FCF8CBB8552 |
2368F995EAD17FF1B2877EF90BBD3BAD96572C25961DB73B2A8E7B4B25309BA0 |
D359D63F38A3D1B3EDD8D66D2967C3404B0E9C8846AB50F2834EE828ABB752ED |
B4B40FA71376532D135CB16994E1598D33B87239A7F413F2EC53DE8B862BAD02 |
4C15D374804BE63E9628CD00690E38E080E38E3B6EC3860DFB5C1FD1CA4D5077 |
53EAD0CEE6D8246CCB236FD6C9A70BD71F304BD3CA0BB0E4260B9D477AB971FF |
BFF88BBFF8D9CF7E663668D9FBC50A3895638352B84A85AF9625922B2958FF74 |
2AF1880AE8B9CA1D2F8C91D29E9A57A74AB2A3764C0B1DCC824690D482E175EA |
A9A7DE71C71D18349B599A4B83A564F04DEDE535E24BBAF49141D0CEC224C1DD |
44AF274D98DE765C20A8322A77409338280231F7B7BCE52D8F3FFEF8A64D9BE6 |
958F99780CE60BC3904423C15295465D66C72E321D6A8BF44BB2D726374632B5 |
F0210749F074D6B5E2579FFAD4A7CE3DF75C69FCBB08715054D0716FE5ED5895 |
9189CC91902E4F3EF9E4471F7D74E3C68DB27DDC59137C69DECDE53DCE0C268E |
457EEF7BDFFBD5AF7E950BAE72D49079BAD2DE125D946E920AFD8DCA086ED363 |
6E76AD91AA0853E3C67D087A4AF3942781F7610E09C1F84E3FFDF47BEEB987F5 |
684284266AD8DE6792BE29301D6C0AF3FC4E3AE9A4FBEEBB8FCC948E53A62152 |
01126EC5E3C091D35D562A55DA9DE66B6A03238DCE8EA475786FA567B61B541C |
AB35571A09D6DC8D936614763349E041126408FE31FB2F797E90C65D580659CB |
DFD05251A2AB826119F5284B4790FC42B715769415969D6ED41D0F92E794DA59 |
AB36EB0D656455FE590F5D401238495A2E15D338C93AC364C50EC5027EF6A173 |
CEBDF5F3373726A7A1A4AC1C5ED6ED74A6EA533DE59EE9D6ACE5B8856AB9D169 |
A7518833D66D4009287DFCE39FFCC879E7C3B4AE42116C367BB0655D6D2874F5 |
645DBF56A977DBB6E746B07DDADD6AB5A2B17A3B5D0D469D2625BFD4EAB65365 |
2556CA088AD86D5492A859B3E6435A6689DD09AE85B3B37DFB766E9FD4EB9820 |
3A5279CEDE96E47292116052C8DEF42F394B64D352E24EAEB86AD52AE87C5074 |
AEBEFA6AE83A575C710559B98825F653312B9FE6DD9F18CFA47C9AE94C885AE8 |
7AE9CD8917B44F06C616F1AE1F7CF0C1FFF55FFF254E0551A3E70EAC79B5E0E4 |
F14FC9FF33D9AB38E6C42AA14F40464C0F009450A863660621C41771294C2F8A |
200EE14F3017C987517B4592C51F459441A5E6036F497302959B14F488C9D24B |
0E3BCBC7D49EE55A1215A478E3824AEAE1DE2FAAF312DF274639B707DBC9347F |
C661E888A40087320E8D95BD19F01586349BBD546E7249832026C9B1580FB405 |
93D6CA7B71EC733C621D9BC8EC7C0F8E49A9C6B02D338BF162F857CA004D2369 |
9F94C4059478C0273FF9C9F3CE3B4FE5A826AC97217C1E3BD898DE2AB98954CF |
3379899D375875417AC0AD98F84BE625C0FA324D113CA6F92C879CEE41122763 |
2AB83F6D4DD32D66EEFEBC170533B545E6DB5D79E595679D7516252587444552 |
1A0AF2567BD7D964DF168B6567ED74EB00E5C795246D06CBC1D15CE52A46239D |
1492208D5B3A1EA0911FDC58151CABA06C27D56565BEEB0571D40E3AB6C69AD3 |
603E18B1675B454B9594E5A729CCC04E1D5F5B4D379EEC4224A8E1C38FDCEF4D |
7FF7CD6FDCB965CB160CE00D6F78C3830F3EA8728C3601F0D95B12B88E0D49A0 |
D3A6C3204CD5E0D2A177BCF39DB7DE7A7B1C4605982350D253C821A893BA3F04 |
863134323C3E3E86F5EAE9EF9B1D1B1F1A59323E3AEA174A3DD50A8C8062C12F |
7AEE4C7D76B0AF77767AC6AB55A7EB8D8CE366FF25500806FFFAAF5EF77F7EF8 |
639D916C3B0CF66AC5D1B63ADDACD99F11AB97F67C071D741053B6C4713D07B5 |
6D38F15812C41C076688880FC4CEF1A9A4253DCF829517D52E14016636B919B0 |
9DAB1CCC7B6AA93D3B9A90CCA81C08CB5AE47C61CCAC1012BD5E52A517E23F2A |
0B1A7330F464301CB8CFEB1924C048988F0E2D96A8CC02E16331874F65263307 |
8ADF9009A679CF00963549C986F927A39DD81548CB1B6EB80107861C8D3D3D18 |
2A64C9AE64C55095A662859F930FBEF9CD6F86447DF2C92717CA2E55465D8660 |
9CD1994EFFB5D99747A2347C43E7959915C05C263BC35353B9A39F6E7D3C8B24 |
C29B2F942F4C1F25934F7813699929E8F0EC3120FC4292A3E7D971E4B014B1E7 |
9C730EF88EA8A54C1F7ADBDBDE76EFBDF732177321CAA01D2AC103957BC399B5 |
26711413705BED8922B588E9CAF94A7E2443E5C4BC5346FB4C08861B6FBC91C3 |
1655749FE364E89B415DD3AC649D335D4C9C85A0B649E805CFE54F58844193CE |
CA31E8050186A7C24C7513FF3E37458C12B567AA2825016D0E3A33257D401C92 |
D0F8AEB9E61A46F579CE6D037C90273307D2889BADFA2B8AB555613A1E35D656 |
FC65B1DB2EAAD9266BFA7437E12EB4A538D6180BD08470135BF9DA38B04AB6EB |
7B052B6B6A0633B69B262C2980C60D7DC14D63274A6732ECA0D82EC4252708BB |
1341B251A9CDC682CB21E2BA75C37D733A4802473F3CCE76A11824B15BF497AD |
58BE69E346B7E0479DEEB2254B75B8BE56D54A3C96D4736A7D7DF5F109AF540A |
5BED41D86763BA861C72B25AAE42A56F34B32C09DB2995FC46B3155B598823A3 |
4FE895B33333D0FA615C6E7EE6D93889FD821F0641C12B74C2392613EFE94F97 |
5E92F804FC84FE6ABABC79D9A1871E0AC2667E8A589926FDA85CD325F1BCE52D |
6FF9F5AF7F8DFB1085EC7FE2BD114400EAF892D52ADD7C6191E086140C14068C |
3B32886DE5E5A5FBBC3F68ECC52F7EF16F7FFB5B501A942DE82E62BEEFF37A6A |
3CD2EDD10C25EEF37ABAD12EB9E4929B6FBE99C39628CB5C0C8F4D5124B3425C |
D532681E2D3AAFF178B083BD0BCDB004BCBB60CFD16EA0EA77CA29A7B0C30993 |
82A129732FE97AE34996A0E5429280BC40AA2519DB91703FE521BE220204519A |
659CB8F89FFFF99F31064A0556F66205A905AF5BB7EEA8A38EFAD9CF7E46E70C |
83A884CA587C65C53AE320A9E0E31333EC693A5BA4908A106C54C6613C417C8A |
B3424C543E9D2913871F7E38CCBA79DAF1BC9794C088C52A9C8EF60A43DF6407 |
B45448A0426A023EBAD07C69BD12099505F73C87E2FA63087D6F5D7B5E62B164 |
E24B353231F49940655609881F73F9F2E5201B961490D2C489A4F2745B7A3F05 |
C409D3211E00941226DBC5797736DE4452FE6582E288A0D9CAEA1BBC612E87CA |
C18D313CB0B08D1B3712444B76440245565E259B9DB1A95A6F71CD4C6B59A6D4 |
0F2A7580EB4FA6DDC4C1EE2451922696EEE4DE4EE36E565E0BCD1662002A7F21 |
D1409E3E840174750BEA7FAC333453CDAA750EB19D662C2D69E992340D52DDD0 |
172BBF58DA64798FC601B809D40B5C79DA69A7DD79E79DA0A2B98D5E304EE06B |
4D5C6948A00832066B18472A4D56AE5E33363A0AB34063EB820F263AB6EBFABA |
9F597B6ABAD6D70F21816F6D656DD8B0E1E28B2FEE349A4114F4F6F65D7AE9A5 |
1FBEF042C77303DD4E225676D23F38D469B5DACDEC08C3C8C8A48E673B612609 |
9868C0D67EF6C292008C0C8635298D5E911D3B76C88913FC2BAA44D2C79B6A10 |
6D02323AB6A691E9835A18555EC43B64EF89260D6DE0539FFA14390CEFCC6A18 |
E8DA52C6AC8C2C235A360BD91C244B0800C98716625B683C78D6C9279FFCA52F |
7D09D7103413375FA8BE817E7E8E5CCE387574EABB9614C733D822DE6D6AB8B4 |
82E9120557C2652CDC973254395D98E421871C42CC199E9CF5EBD763ADE991E0 |
AC24D31CEB8EC3BF79F366BCFFF4A73FFD918F7C44C2EB0BA15028A36BB98003 |
8B0CA76CC0383FFFF9CF4333C55429E8B0B81800670E1A3AE38C33F6C9A130BB |
134F3C113AC2534F3D95E6C5818BFB0D855BA90CB503C4870711439B2C46CC4F |
A68EF13E3211C91FC79AB0B505179CD5C2C4B7901E32C23417D11104039D442F |
1561E99E9D34D49E5E35A9B4121CE985284F20F04439C283B0C86037E4DDF411 |
E173F2D979F791234D4D04F470C209277CFBDBDF9610B488731ADAAF78C52BF0 |
94B7BEF5AD2056CC02EC8CE84C8C1CD063406C41EA687C34662A761EBF62348F |
46832417C9520821992314080A2C1A6818DB819D5DBD7A354323E284146B8006 |
659CE36F8B1542B3A050281EFFB6E39EFCC6BFAF51D692FD96EE7A6EDB51D5DE |
DD613D5216B6374C34CBEB5A9004DAF3136611E382960456014ABAEE59A68A9A |
B41D3B49BB59143BD5B8E896E782A3C7D8B9B14855949B16FDBAEA363B118863 |
BB525BF744E2921DD4472CDE373D57BD72BBDBF66C0DBE325D9FC1A8AA7DBD85 |
A23F39AA63F24B972C1D1BDD0DB1656B0C244D30B5FEBE0493EE061095BA04A1 |
528BD3A4D96A0E0F0C4C4CE954059C8DDEFE81199D659E1635FC57E042E6C17C |
57F6E0C040033C37AB7D03F5355A4DDB7582CC3B045101A1D2EDECE11DA26455 |
395832DD8F3C1A5218240088B4C8E906480D1815A920E17CE761760966E742F4 |
0FCA140D92078A5128017817BA223D482608CE08B45E33E37121CE8E1B8225E2 |
57E0E92C489630EF3EAF97B443135869116F92944C5946131B69986199AC41AA |
C0A46BB1E83B2C30A6DB5D72D1A86052EDE5A2B3C5185EF426F3B78CB408DB15 |
B58E6E22322F7AACC868F6193116A7906C3985BCB8C6B0E8444B965A5C1E577E |
C8F389B5061BE276AA3D014425C1890AA660E72DF4628106F82066B165CB163C |
E8FAEBAF674994A4B8619F3041B3CA57089754951860B36CF1465EC3F271F6B5 |
B732EC2A65C463F7391EDE90B792F649349B04C75F7C6B0221C51F52528A6766 |
9FF7673681F05069ED229A359E72E59557425122108588C9D47829C37D47D264 |
D11947883B1F7DF4D1C44287B2831558BA74291EFAEE77BF5BE51959C267E7BA |
01E73143BA894452522CF1A1624A4AB203B75E0A6DCC4435F933CDD0EA89EC84 |
E1510CF33E18F975D75D772114DE2CBE62961F0A108BCA534A2037E3247C8953 |
5C1685BB55BC9FA5D617AB3BDA8D520976701CC4DA50C07F4D8249E04CA51AB9 |
535B031ABD39F574EC56F7170B536DA967A5B8CA5596EF38AE9D60D59AB61574 |
759D8196229E1D27D6C6D87A5C25BDFD73C8E13C6562AC2FEC1DB20A6E019A6D |
27D0018BFEA1A156D06D35EA3D037DB353D32A4E067A7A69D18E4D4EE8EE1C3A |
C05B0CBB9D8AAB9B418E4EEEC67E97ABB576A7898370D6D9E772FF1DB71047F1 |
D2152B46B76F01E1FA96FB92A35F8C25FA8F877F3D599FC1830A452FC08E6488 |
4B6028894637D22D4BF108531288A64CB2C161C1B2831EE61AC446D105175CF0 |
852F7C01F6DFD34F3F4DD838959752FEBFBCBD07BC656579F6FDACDD4E9F3953 |
18CA5066E85545638D9F418D468C48101414E9BD0EBD0E88C288304A57C01701 |
411051291A8905A32926B1BDB1105440CAD019A69FBECBFAAEB5FE675D3CB34F |
110CBE3BF9E19E7DF65EEB594FB9EB755F7712315A3B6FCC36C66C72C3E198C2 |
68E2797788952024DB8FF2294A9450032EC6649C92129A7FF802A6912A71FDCA |
CB41A9C696A80FE334EC17725FB42E34D2A1C8C62D66A900CD6E63B7C0A121EF |
1BB074AE152845EDECE308004619342046B98428E78C1F00AE8BAA5153D0005B |
8A397EC36428526EAD853FE8A083AEBBEE3A342D83777B295DE4E69B6F3EFAE8 |
A3514EDA701A1558728DCA7982B6B447927366348BA6542ED49E1EB2C9ECBB5C |
408327B8ECD23C5DF0D4534F958F92169DB6DAAADE10976832C7BB204FC5C68C |
E9AF25310F3FFCF06BAEB966AAE8903D3307911CAC4748995B29EEF11022C8A6 |
D4E48E3BEEF89DEF7C672A4D431E828BB70A363D4E2999B4AC0D431EC6854FB4 |
4D13609AA1711DB8D36525556FBDF5565D81B6CC279F7C3277D1D50E3CF0C050 |
E45142146DC34171B6D0EAC19BC1A680619471344906FE6B5EF39A5FFCE217CF |
3DF71CFE994156D658B8832E83E0A082E3D67828FC212E6C1243D2711C015639 |
5FAC52574F65E1E0D88E49D77075A4732CDDA9BB6F7963A0AB5A1E196D8C3672 |
4D90042DC048485AE5A43BAD26CD4625B4BA43A9B39C01EC335A88B4352C4B3C |
0D1CB96ADEDFB8564D2AE5E4C9917A7F5269D6AAABEBC3DA56F2141E4DAABF69 |
D54BF9F3A2CCE2ECD1D4D8A1A4B3D6399A779DAC94AB23CD7A48C2DC8D377AF1 |
B9672AB58EDECEAED0680E0D48CAB4BABA7A864686F372DCB5737AFB0707D636 |
42AB56EE9026196D36C61AA31A46BEF7EAD55AA7A6BE6FC6CC756BD776246166 |
6FDFDA75ABCB21E9EEEC1D1819EA98D1DBDDDBF3CCF3CF68489D337A65646645 |
6E595D9BC6BE1E8A3444C87564FA25975C72C61967C4FCF3AE662531C64ED0D6 |
3AE9A493CC7FD32A3816011DC4453FC442A631FEF465193ABA295282CDD046AC |
809D470F3222CCDA099B6CB20936B1CD8EA9CE17BE05F230E45A0AB77E2A4D00 |
E6C2355E61DAAEDDE415342A1DC0BDF7DE5B5AD3369C76E989279EF812DB04B2 |
95A345423506EC872832DB16A3005615E3FFE237A4D743818034749D130E33AA |
7B316A792EBEF8E22BAEB84227DF7731070895560680EB1C6ADEF1E9B802E16F |
CD0B49883DF6D8E3FEFBEF77952044690C431FC29663C4821E9F68B25551EC90 |
86C873E23A845F085660699A16CAA1C0850B174AD6389F11C71362BC3C3E5328 |
0A2641DF92C562122CBBAD9831F0C1AD87A25C70AA1D066B95D4A77424121FD2 |
D05040718CFDA5DADE4D7E4281C8CA82723202B3DD5F6935EB4933EDEB92A7DF |
D2E93CF3DCD33EB5E4B3ADAC2AB5B3ABBBD7F5225C9F7ACE5058F4DE9498E7B4 |
3FD3C9E17C7EFCE31FDF669B6D007AEBA90F38E08052D10015A3014CDEA49C9A |
A1A08DD237B58564B0F338A0E54C08E84D453937C009923D6CF8B8E79783996C |
005DF6ECB3CFE6B4EBBFA5BC4B76A920FDB75D266F588BAE4F30C637ED9B5B6A |
8E740E0D6C51ADCAB0DA4CD66FA5DCAC95AB8D6625C90042D9AE6BD535D763A5 |
CC051869864A2B74B5B2B85035E39848EA210BA82769E6348C24D9D7F45EAEC3 |
CC90746541A4D668B53490A4ADB18CA56E2874FC21347F1F1A871E7BEC97BFFC |
656A682971A0B60EB58708B8E5965B34E7A1307A3C39317B8F6D1433AE87692B |
405FAD973D33C48859B0D8D2925C575F7D35610D20DA98E4A6B171A873AA0CB0 |
936A96E6280CDD4517BFF2CA2B51A240E63EF2918FFCC93A034688174BB692C0 |
0EDB52D7945188736F5801EC64DA36E0A1A7BA7E5CE51E3B37C64C039D6815CD |
BEA69A527089471E79A4D480CEA38480E926B30B865CDD690A741E00FCB8A881 |
9875AB68B6E7EA62EFAA36F4A1210A3CA78B4271DF9CE60EB9B54E956C0CE923 |
4C41E511F7724B96B8077AC873BC385CCCBEE36BDECA4418F4891EC71DDA9C5E |
674FEBCBBA0BF89F58F11AB2E60F7DD93694ADEB69499C4003A20BEAE9E08527 |
72671A5B33339B2195D22494CA473FFAD1AF7EF5ABAEDE800DD1FB8CFF9A852A |
E478767D47AB363DFA939B6A26DFFDEE77FFF8C73FD635F52B8DD65D32CCE0C4 |
836BA34882B06579104C95EE2EEDB691EAF8267E294275D6E2F33EB364C9ACB9 |
7357696E5BCD9D76DAE1C1FFF99F39FD7D9DBD33A5CE75E5DB6EBB6DFFFDF70F |
39444197D235A51BDEFCE637C319A993F3E10F7F580BA1ED8178D2D2C8ABF8D8 |
C73E264BCA5258A7516B87D18793E790AEFD3664962E2B0BE0DBDFFEB6E6D63A |
8FC79468D63E317FCBB1C71E7BE79D77EAB2F665B5FFCD5517AF3B4AE5831FFC |
E01D77DC81AF4CE6906C364CB4FAFCF6DB6FDF77DF7DA9A964D2B25CFD0BAB6A |
49634E395958ADF50D8FCCCDC732165A52B01DE54A47DE086FB4511F4A9BA349 |
689432E287CCE44F42972C7E3DBE1CCAB43996C3BDC7D23094B7362BA559EC68 |
46D6DF26E99359D3591A08ADB1E16C1E0642E74349E391B4D19D17D87B12EC45 |
E1D06B02172D5A24CB1A08169389D9E8397751914F28E6DD3486EAABF84A0AF2 |
35C7CA77DA6927ADEC65975DA6ED219FCC7443F0AF85F5F1D38E7B4C13F707A5 |
0202029423A760B3CD3673641B8EB674DA0E5AC4AC889663A219E66E2CA2F908 |
DC2061DEBC796C69EA87A6C95487C8307505003F0C454F49761D19C749AF43E0 |
4B3F845118B7C371E3714DE0440786AA8DAF50084DFD09161D4DFA8CAC88FC59 |
EF9E5074557445B19BE892DA653DDEF296B7FCD77FFD97E989B4BA44A98812E8 |
0B471D75D435D75C8367A7FF7EEA539F3AF9E493794273CF125870468848DC3B |
DFF94E89099AB7917B44498272D1A39E72CA299FF8C427883094F236CBD222FA |
FC2B5FF98A842FD3C47EC274C24F3428C5819A18A81AA22C6BA92034058D1397 |
5648ABC99DC4B4A7E0D9FAD20E1D8F633AA038DCEFEA6E2B03EEABA591007DDD |
EB5EA72DFBAD6F7D0BA2FC69D871895AE8BF9A732951ED0352AFB17D61879413 |
88B2C1F5D63064D17CF2BCF332BC7BB53C564F935A6752ED6C8DD6939EBE7474 |
38EB3035369C235FD2D06ACCECED1A191E966DEB94750C797AD7BBDE4589C382 |
050BF6DA6B2F8E8DFE099E4ADF94C662783CB5F4C79BDEF426B94D92DAD2AC3C |
08567C296A5E1D8A8A30206400AE1E78E001CA8E8C344B22020036898502C964 |
6DC2E38F3FDEDB9BD9734778E89210376D7549BC8CCC7BC97109A572686DD855 |
DDB0D9DAB89EF6A6ADDEA4349266EE941CC0AE6A2DEB0DD9CC6AC786D3563DA7 |
A5D389EF2E956BE5CCECA8B79A23CDFA682B4DCAD9AF86D24C13247926B927CF |
25CCAD5646ABE5B5A97CB8463DA31EAAFEB19C3E29DD33336BE447618AF698C4 |
194EBF14A1060CA44AFBC1513E8C6B9E17EB3BEEE38DE318B32FFCA57D02D452 |
DB87718358449BEB58F5DEA93E2D2856C534011F564DB3617C791231CAC8E1B8 |
E0820B343F4EFF4CE573336FD494E86AC41B394AC86E7B3371CF194DBE9E0E63 |
4E1B06029B49AFEFB4415C2F15C3F35C56ED7F4E7A1DD730B715573A8A3BCE7A |
A1DF9F7BEEB9175E7821263C417C7BF4669DD494EDB9E79E3FFAD18FF45E02C5 |
F2CB756B212F40D59FBC5D9CC1C7762668EE6773C88837E602C49E728BF6F891 |
0CE9B3928CE96AE92504AA17856FB94CFD08F9528A00D8EB71E022DE7332A624 |
80BEFFFDEFBB39B3EB95E29C4ADB0FE1DBD0E75A6C02230EFEB05365D10CE62F |
66D5417C13077EE6339FD15A805E2750C38CA11862067F4724A6E144D4F7F5E0 |
E067F43AE18413A49F6CB3F811FCDEECB32CAEC41FFE62330B8F26F9164F657B |
D75B19614E484A1DB54CB69E77EE999FFEF4A711AF2F2C5F81938E00E501E192 |
7BC31BDE205524012DF359730E949B4E32D4EBFEFDDFFFBDBE46233CBAFEDAC9 |
23341147AE4C4565BBA954B4A6D0ED8E39E698CB2FBF3C6E38C1812410044A58 |
6FB458788A73F2D7430F3DE4849663293E75FAD3E2C58BCF39E71CF25E1A219C |
4B4825732C0216D42464DD717BFB8607D7CEE828F70C37B7D4FE0C61C3BCED57 |
25E38F2B75963356E8D04A1BAD663D6BED9C26AD2CC85349F487B22638D304AD |
0C605AAA94A596875B2987A1232F33D621DEB85419AB260369181C6BE8E4AC08 |
E5C792D6F2A4155A2F51B030271A8FB610B381AEB5BB1C0B17F6799C56455810 |
093008ED2FAD0910CA98A41A1B84E4DAFF4E1A310C0E8564821E44CBA113A115 |
FFC0073E70D1451719A137E9F5F5A71D77DC719F7DF691C49751A2732487E3DE |
7BEF25D2406F095C678EFC54D7E1CC62D46A7EDC61D084E73EF8E6AF35CE3B06 |
9B4D933F88EF9E149C190E4E98CF11723D44CDA4F349BA17DF0EF25D1BEB014D |
402E51FB9B16EA047368CC8D44466DF23C0862C71043516DEBF65BB2C5F03EF0 |
7DB4E774C0E4EC5F7AE9A5969BF03D00EDC730612A29E7D17F31FA500CBA02C5 |
AB04CA7511FC29887DB4FC125EFAB2240BCD8CAC399C97D6E1D4C529B062996D |
5A869C67493F27B5C00140D018A7444C997C0B0CA00E5BA1055D33A2FF9E7EFA |
E97260F12A0C7763BA34604AF042E113E83AA4167423E876DDACD127938D08FC |
199DA701EB9B1A86948AFEA44D3C4D454C1CB22344A6274510C0DA8625181353 |
3B080EBDF6F8892A775464F08F8D5473E2B3ECAAA5ACCA493247926BAB051B3E |
FCF8F3AD1C063363EE466B56AE09ADE1AF7DED6BFBEEBB2FC3902BA0D9603B49 |
1BC150C4A6C42692A0D7B174D90A1E9EC15D5B6CB185F61EE5C761FDB88D4F48 |
5230BD90BA77FD3D8A8450618880005E4D12FE18F894A03BDF6B1B4AC3D6271A |
955650D7D172901141B5686F9F79E6994CA3B79F3E946B5BEBEE59B96A79296D |
656D6A429817C2A69D9D8D9191CE8E6A29EF51506ABDA4C6B247A88F5B4ECD90 |
79EC9201A3795B028D7B44A7209FE18C1D48966029D15E99D72A354AC9582919 |
68861569EBF9109E0CAD1521B5D92123C0E5DC4E4B6AFC1A2AFD440102B48AC6 |
DAAE1845915004AE4B61D2A217A70753BC5A9AA02D18EB178D4251C058A8D846 |
E01539C2AECF4FA6656769C322F2C8FA95AEA937A421AFBFFEFA430F3D741ADF |
02618D40B7511BEB2142261846A1F06C5CE616F3DB4F7AFD72D4F9DCC436C442 |
911E31CE651AAC118578EE9DC5041A2531AE091C2E0C05A645269EF6F14E3BED |
44B35654B13690E6E8B1C71E932A060142578010D5D0EA9B92566EE6E7273431 |
BDBEA953AA355BB468D195575E89AAC48C8A398D2D2B8DF98911E23EA266EEB4 |
3F0B96033F3186DFF8F033EF2029F54FC9A078194CC9C7F54F3EF9E46BAFBDD6 |
8D6BDCCD262E6A0B11C8559BE68B5FFC22895CF40DF0124D0B1CB9DFFCE637F7 |
DE7B6F9D2E8D8AD9C0F0892B06C820C99978F8E1872DF83890C6CF382545746E |
AA9309BB1F8B8B01ABB1B9A5355ADCC62FCB148320893F666C106BA41D9BE5B4 |
D1DB59AA8FE4F54D1DE5E18C7420CC9BDBBFE2C5D55D321C2BB59BBE7247BDD4 |
F9E37FFB8FFA9AE7EEB9E71EA6FAE31FFF388530071D741051290D00674563D3 |
27471C718456418A87E76556DD6126AE1BC20E70F98C2B10AD099074C4D9F42C |
7A04CF184F645B8F7FC22BAE37862D1894DC56B3ED2D846145C3745784C018C8 |
0E9769A2111654C0FD6B07564B787736C39695F2A6A1B49144EAC8703F87B0D1 |
E410BA8F8A74C37885C5381975DACACF9064F068AE0928B9AA95926A465F9ACE |
6895B3AF25C9DA507A31A4CF84F4B9345D17D26A67B6D5A55C6FBEF9E6B81A16 |
E56A5712BB2766B0218B00E31E93AFDD48DCDC5C7BD3F8A0AFD6CB4792C1E016 |
738EB0A5F466BFFDF6FBDCE73EE7F86AA9A0F2C70B373DF8A4D777AD3BFB1F92 |
41C769E36FD25F6C9A7EC571BBD6B8A6BD149544C4AEBCDE6B9C575D7595EC63 |
CAD3A6A963488BA695E33D2627CB8193B5455070B4A7BA545C1C17A2AE5FD995 |
09C4875C01CAB1226D42CC64D9B265E6F94339C7B6AACF212A2BF686E263435E |
5B57C32DE5C5ACC9BDD051D7D51CF0B9E4924BCE3AEBACB4207BE2E2B802F442 |
D0486474DF74D34D9A56A433B10BB635D01AF64D4CF380216337D9A281E89E7E |
4548C4A9574424801C3BCBF020E2A3C8003CEFBCF38C620C91736D5632FF8900 |
0581783A4A872228A90FE156B474933C72195AC86D79DE687BA19BC1BF92CD73 |
A70E9CCDA996BF2D90654E3787D743D4EFC5BDD8982266267B96BA8452B39A68 |
481D6B874643A9ABD43FAFB57628943A425AAFCEE8F8E657BED451CA007077DD |
7D6F576F5FD21C23364DF84E8FB9E79E7BCA9880F644CFAB7900C4B5D75E7BE1 |
83EB01172F5EAC0F3FF1894F9C7FFEF9EED74A10CC15BCA6A009513ECD07C9E9 |
1C47A57447CFF938157B417FAB33A9017833E08DF135C3B19CA5E76A889B98B9 |
C4871FEA0E5D44EEF5C5175FACCBEA310757AD1B6ED565F977D7AA7387EB5B55 |
AB735ACD4AB3B541B9DA0AE381AD717D965F2D7B64B923ADA61FCD6F4633FF20 |
D7041A43A24B8E935564C1A51034A01792E49924AC09C968A8648B52AD62F09A |
5E9E7EA26C006C3B6F06973A22FBF4F8B0D36097E89B8E98856959195EAD170E |
4A8CF62E155D803C3C4FBE3D5AE7991DF19F3E4F1026D051D04E527FD599C572 |
B2089EEA3A3140D9578B23F2543569135261F0777FF7777297436E9AE8FAF44D |
41004E7AFD36C8A56EA115C159C70A4162ECB2CB2EBBEFBEFBD2A54BA7795EA6 |
8B2D1DF31F6777F1EA1271B3DF8DDAF7C9616689F263FB70FC3CFBA130C0D139 |
31D597139E669125FA1437B374D328373533AD4D283C7A74A3C164380D9ACD77 |
BDEB5DFFF22FFF02D96428029A9C4362616941F263C669235FFD5021EAFA1657 |
02A3C96200120CE06E7AC74E75B80C4572DA69A7496A6B32B1735175C692C206 |
65942DA02643CA707211C1FCC958233F38C13AD9145FFDEA57354BE79E7B2E85 |
EF135FF6F7431E0763036108188F1B171863E45E7AE9A5706080C2CCB460776D |
60302F40EB9D3138DC0A1B2C7CDBEE7BD72B3DF56A5FB531D45F1A3AE1807F28 |
0FAFBCF882739A8DB137BDE1F5AD52860BA0F24E0F25D78ADA0EC60312FCBBDF |
FDEEFFF93FFF473363291C1FCEB428FFD6DD3FF2918FDC75D75D9AB40BF25798 |
E009C5A5611A3F59166F27FBD4B11FCD127FE10B5FD093E2E7C52B1ED64FFFEE |
BFFFFE1A00D2C795192E4C8D530B56DE7809ADC1D11199EE49A3B74B3338B443 |
28CD0A19A7F4DC0C3C9FA4E58C8A27E4018446B3D1CC3B1B53A09B0F2FD770AD |
541FD52AE5D1666B34CD847E3ECE90458E425855CD02469A3819F0CF4919C868 |
906E2857FB3A3B9C09F3F1E10D9840D77618F260763F97461E79E49132CE6616 |
2D856307FD2F9D2770793FE69A3B41621A320C1706C5354CA433B15CA7C9F422 |
BE586BA08CB621FCD26565F069BF61374C7A1D6C444E505CCC6F0C3A42C96C95 |
44D111087CD30ED934D70F51AB8F2DB7DC72D75D77BDFBEEBB93A2F3AE551131 |
A8A9E6D3A1AA50F04E9AB5697C425E95956B539BAEE52368EB2A50F0242EB275 |
223444A63ACE0EE75CCFA69590A9E88A36DBF5CC3E7E990547ECB2180D65ABCD |
391327F742C1924DC0274C40A9578A9EC9001208FDC73BC6F5B43601A8767638 |
3E14E5D0F2D3816F8782CC436FAEBEFAEAE38E3B4EB69B2EDBD6B578AAA9A6CB |
0213C8C5C95B007694F0D2D5A4188E38E208948D2C083DAF91768E084DBE8E49 |
A556ADB44687FBBB3257EFF0238EF9ECD59FEF9B356F756DCB1DFEE63DB33659 |
B86AB811AA5DAD467DDD9AD56963F4B9F2C2CD861EBCE98C0FCE4E561F7DE269 |
69C79C9181C1399DA5D5F52C0AA959DD679F7D645EE9FDD1471F9D15C2944666 |
D4667594D29D5FF7DA2CC3906E10BABBC2F053DDF5FE666565C65D5CED6A8E0C |
67504AA99B0DDFB0F6F965A3E5E5A111CAADD09976F5D6B67B7EEC8FA163AC2B |
07C5EB7925CA0F38E000060F218A43493424807309C590463CF5C6326807EAAF |
071E78E0ADB7DEAA9F6B71A5329F7DF6598284549049DD522D18934AB9085F6A |
FB85175E208C7EC821877CE94B5FB241D31AAB3742DAD3D73B5AAF3786476A21 |
2C9CB3C9AA15CFBF393467572BDD95B4A39C0C8C34563664EC979AB2E54B639D |
7931413937FF3545D58C74A854CBB87BC2583564EDC51A1969DD40288D84D260 |
48F5FFC3DD3DCFD647BA37DCE0B9A79F9DD9DB3BBC6E6D5A042B6035E72C2055 |
5D1C608612CD809ED7D4236954E44FCC10BBCDBB7D1A74A6A97562D41FB743FA |
707DB7218A73F244B14CF7AFC372CB2DB710CB06EA6DF79AE4598C199DC627F6 |
63F27D3603EE2F89568E43E94F759E79452F2388E262CC72D14E9CD1DAECD61B |
0981DB6FBF9D93821C70BFC95774DFD8F20B2F83ECC820F2BFB82680AFD859D6 |
187E108AD0ADE466C81123FA260B63E7459F03076C8B4AA16334A7C71F7FFC3D |
F7DCF3D0430F1144F277744D8A21CA454B740971143BE6B6C5B4D368F1E0FD06 |
2B8FF8A31D345D8A189A395DF93EDE521BA62DEEE4EEA0271C73FACE29A79C42 |
AFCA100567A6D9D9EEF975E18517820222B9CA8D70A4AC023D062E6EF2B869F8 |
947A67CD5DB76AC59C39521E4DE9A6B95BEDF0E2132FECF6B10397AD1EEBEE9F |
3BD848560F37AB5DBD9552688C0C5592D6BA7AE7AE73465EF8CF3B069E7B64F5 |
68E89CB55163DDC0EBB75F58EEEBD5CA120D9397A399BFEEBAEB3236C0D1726F |
35D9ED6D7FF5D9CB3F79F4C99FE8EC94406FCDE9098F6765511B66F4FCCD5595 |
6ABD3CB46912D6A6616DA316CE3AE67BDFBCEFE2C796FDB8395A0A1DADC6686F |
A80E74555E0AC8C64C7F846808E0189765A6D5985B22444158F33EC6AB29F9A8 |
CFA9233386041C373DAB29156427D8CB647B60E5645584B58E4B962E3DE1A413 |
35B20D66CD5EB57C7967487A4A9D3BB78667D52A61AC21D3B157DE818C95505E |
3B5A2FA5A36802CD470E180C1DA194914F944B8D52184BD27AB3551F93F40F5A |
575992CDB43C5C2ABD9836EB7DDD2BD7ADDB6CC182A71E7BBC9AF357B3218130 |
C59B416FA495BFF9CD6F3EF2C82364CEF6DD775F3997B126488AC6857E289815 |
9068D34BDEB89F5DC8AB7FFEFAAFFFFAEB5FFF7A8CC58AD9E3C9F0853C55CBA9 |
0475AD6994C563225898A01C7EC1BAE2E7E99FEA7FCEA1A3E05C0FD2D685D0CC |
D2D35766FD1922D1CF68E4BEFB505903C153347FFEFCC71E7B2CC9997E34032E |
A27AA5F2D9262C819952419E3FFDF72587FFE29A80D28110E5FD086FE990C804 |
00BEC9335B34A30328D482ACC200D010F9E646F27171D97437DC7003A167AA69 |
38FC7A4853F4513740FD3DF9098D0D5492834221CA40FA1898DE922DE8581B9D |
677AF29791AC2117223020C10472D145172D59B2846789F725A9FCB4E8FA400C |
D745CE93CE33B1B86DB7DD56CA8F4FCE3FFF7C5D1FAA51F7B8D0052923242B88 |
10B4B120DBCAB89AF675CCFEAF14926AE8EC0B8D8EB71F78CC7079E673AB0666 |
F675AF191C5937D248AA9DD55A67DA1A4B5AF55A29D9205D75D6617B1DBBEF7B |
FBFB3AE76DBEED4FFFE317B367F5A6832F8E24354D17DB8048A86EAAB17DEA9A |
5B3EF6E15D3699DDFB9B5FACECEA9D17BA5E1C5AD52835FA7AC2BAD124A49559 |
F5645532D655A90D572AA5E166AB3FA9EA26AB24ED7A9EBAF233B71DBF68FFDE |
EE30341C162ED8CA3866C88B106A9A43702F3CEF8E3BEEF8E0830FC6B48E5E65 |
36128E4B884A20C1B6861C36A3FFFED55FFD9596D8AE619C12B467AD49D6FACA |
73E527CEC1645D096B9DABD6ADDD74C1E6CBF2A4EB067337C8944152DD3CAD6F |
DADB3363AC2E83AD3B2423215D9E730A759782344157C1C719F2E6C0B590943B |
2BF5B4D568355B8D30D6CC5B1697C39A7268D493E134F46DB6E9EF9E7C5237EE |
9B396370D51AFD24CD433DDADBD446117677CAC4D9784C316C7647DBBDFDE2E0 |
9B43A6D30B97B4E882D78AFA35EA2E3A680841B29ACE37948B8E8CA1C0B7B8A3 |
9FA959A02E06FA6283AF2D9F377D66B854B0C13372433FA1090253FEEAD64960 |
6C19F613F7708C012021A2B00DB94DC3C663BDFE8CB43C17A7401A31A84FDC17 |
6BD271EA0BEF7AD7BBFE5FF8041A16214B30A024006DE3C7B5C7321B8F3DF658 |
87D13D4D4095DCA939291A72E99A927DDACAFA449B9B76456C0E89608AB0DCBC |
4253AFDD6FFB310E7A3A56137BACC6ED422FAC2F0352D2F841DCC7782C7E053E |
2ACEADE94312E3B6356420C372C1624B0C193195AECFD136CD5487DC95866675 |
9B6DB679F8E1875D1B4996CF40054742A8A2401B4D0301ECA855E66DB8F1B265 |
CF967A67BD71B7DD57D62B3337DE3AAD74EE34F4B3E1D17AB5B3ABB327ABC36A |
8E0ED54A69B5527EBEDE591A5DB3EEC5677A66CC7AF4D995DBEFB8D37BDFFE96 |
EE30BC6A246569B49A7A73DE79E75D7FFDF5D9F38EFDE294432F5EF9F49864DF |
489851AE6E34D67C26949F9F550F2361EE48F262B5B479335D566ACD2975AE0E |
E559A5FA8AEE99E9DAE5B58C07276C10663CD535B07083BE99CBD6FC4A0AC04D |
8730149876A49BA337F102C500737B601C39798A5A381873F55BFAB6A2CE3115 |
39DB5C2D260CD0036A5689706A8F01C0052B95855CF28E026912369A3FFFB9E7 |
9F0BADB492946412F74A3E9692CDCAB5394DB908C99AC6B0166CCEACBED155EB |
BAC2B826C81F2C73933A727EBA0C6394357CCFDEAF4D4ACF55931535299B99AB |
0607578C8C567ABA2BB58EC1D5AB92BC6301BB2DA647764D865B7A784F225E63 |
EC80831B845289406AFFB8F2E6E5E0DF6318E8D65B6F4D630CCE9D6148A1688C |
6AAF4E73482459479822388707806CB8309E1BB1ACD3A03059AC182F8BE5A7EB |
EFB3CF3EDFFBDEF7F4500C78A79D7692DDF0AAC843948D198D6034A04D0BC957 |
3401787AFC9218B248E6ECCF70500C10D2AD4974E95ED363BDD29C06F52FAE09 |
E80D70E595579ABD0E9A013C71327BACBACECFB5D75E7BCC31C720979DFDE319 |
C0C0384F8039809B89C517EB0C002A71F90F1F0293004FA23902934B89B60B56 |
C3FA9AC005207108023E58DD82C664404A5CE5CBED603591BC5EB66C19349F7A |
10FDF3A9A79E92EC5EB468D1F1C71F0F5511FB80DA9918F538E98B49D326C36E |
E52434A306A27133FA50B45D6BDB52D3D534A6E98CBEEE50AE7C68EF7D87461B |
63A132DA48FA67CD6D0C3CDB0A259660786430AB83EDA825A1554933CD97942B |
2BD68CE8CB19FDEA63BFDF7EE1A6AB07EBCCED49279DA4E1FDF77FFFF77859F8 |
E8E3B75CF644A5F242EFF63F5A3DF6FA07FFF30B8343BB946B43CDCEB961DDF2 |
AC3B6F3AD2159E1D091FAA868792D09CB1E99B973FF5C0A61BCE7A6EED93A1B5 |
7DA3FE58D21AED0A332A330280716B74B3CE21ACF1C6CA45F763C785DA3401A6 |
09BC20209A10FD9A6190BE80BBF861DC15CEDC762EDBD677886A02D6FCE4273F |
79DC71C7CDEA9BB16ACD9A9E997DAB57ADDA6ADB6DFF987B72E55AAD9CB63AC7 |
1A1B86A42FA4F342A5A3A3B66274A8B3AB9A8CD6BB0B9F20631E2D854A1A6A69 |
A6155AB9D390649F5724EF9FAB242B92D68B633A53A50B2FBEF4B4D3CFE8CC34 |
7D536E8254D9CCFED9403FE7CF9FAF05A298864EAE18D1FAA7B900E4B151811F |
221419BB8B5FC57154433FA6DAA271B91FE84CFDEA6FFFF66FFFF33FFF537E33 |
FE3D395E2D90BD13F20ABBEFBEFB77BEF31D683C9018245739BCF07AC6E84C1F |
D869E4929B4A119E25B9C81DF527C364A6479DFE7922D1C571DA63D07F029933 |
000748249AC907D9AD95C32BCFCC9327D0826A71DFF18E77FCFBBFFF3BC6DF54 |
7941AA2CC713DAAFD6634FE5131C7DF4D15FFFFAD7350B1C5100F560F9F106C8 |
EA60D611A82DE5FD55B0AF6DD3C508137F5F6B499C51D74728C4C07CCDFED2A5 |
4B8F3AEA285B01485E5D7F871D76904570E9A5978242F3DE0D13A24392D1546F |
6116692F7A4890EAC41C7C00F562F870C8CF157E68889C41BE63056957DA126D |
D27936A0DB2E2D76B10BB28C0F39F5D453172F5E1C0AB885FB54ECB2CB2EBBED |
B6DB5468B3DECEEAD070D6D97C664FE7C0E0C8B1471E4A2AA2A3A70341D01893 |
88CFA443AB99A7EB6B1DCB9E797EED6063C156DBBEF8E28A9191E12D36DFE4A9 |
A79675768E17AB5F71C5159A583D3220A2879EFAC5F37F1CE9EC1C5D5B7A7855 |
79FEFDFF313BAD6DBBEC855F27B3FFEFD0EA376FBCC506032F0CCEEF9EF5AB5B |
DF189A5B271DA574E489306F41D7400843BB0E27CB4275A077C6685FABF4ECCA |
4CA083AD8A3B4FC0798716945970E491472E59B224669A6C8B0E3169EC1C2046 |
44FF5826EDAB4B2EB9E4E4934F36ED25C718650F4616E6060914631F62EAECA1 |
C1C11298A29EEEE1A1A1193367AE5DB326C30D65E5C461A35A673A3622FF607E |
5FFF9A75ABA5DBE796136902A9E252481AA5ACEA583AA3D64A4A496D34698D24 |
ADBAB4429AAC4BD3E74373559E434E5B19A545AD4A5BD0023A92BE14020A9107 |
6CF319EC06416A36869387617DDC0476435AB42F250B357D5C3E8E7284A209B0 |
7E4B169D8D61E04688DAB9384D2AC74EB20CD56B42F2F7BCE73DDFFDEE775DA2 |
85CFF127519E311F0CF11F349F1E9CE0A1F1A9D330C1FD7922D16E16843DC0BE |
6D9A8409D1B63628EA9F91B7708E4777A4D193D77D9AF50AFF0FB04316EE312D |
8F29F8F5271D27E97CBC07ED92D7BFFEF5B21F01B739AD64C6B178A7C6A6076C |
AB346D70EB09000332F408E6D85ED686B63FC8ABCD7B8A33C6981213C1368845 |
2491EBFD8CE7B1E77BE38D371E7AE8A18E59992C9EBC10EEADA58C154988AA67 |
DB5EF8D16D894D04505C5E170A3A1DE7EEFC20615A9FA0BBAB03777278787483 |
D9B356AE5CA57174D72AAB9B9DBA418000ABAF4FFF6D0D0E69D5BB4AEB86C7D2 |
5A476F68B464F0572BC990B675AD6BC905E75D7CF1C57A8ADB6FBF5D2209F34D |
9AEFB213CF5BF9E27FCDE90B1B6DF8E6E5CD8E77EEF7A63169C9DA9B9A61F558 |
75DE8BC30B9F1F7CB652DBE0677FF8D663CB9FAECC19E95EB9D9F0B717AF1B4B |
FA3BC3586983758DE59271957A662F13EE2011423CC74F811C379B7A589FC431 |
CE1887A2C08A5ECA21829C511828E9A0256B03E74132C3D29F7DF6D9341C0511 |
48DD1C05310C437B230B8EAF5EDDD79B37411BCD1A0074CFE81B92D552AB96EB |
AD72ABB969DFCC6478A85A2A971A235DAD524F8E316D6655DC59E55835A37CEA |
589B34D684AC5371BD15465BE5B5A1352497A2BFA7D94C870624A9935AB536D6 |
18EAEDEF1B19196A0C3775530D40228F2671FAA7BBB16A0636DA6823C235F00C |
BA7134C939FB04EEB7F5B6B7BD4DBEEC4D37DD142248E2C4571B5F902B8A9A45 |
6F5E87014281F9D121D26EA47041B682F96B755368DA0E3CF0C03BEEB843DB92 |
D6750E0ABD9C8C715C35ADAFD14D64D75D77FDD5AF7EE57A607307FDC9AE242F |
FF954C417461EE0A7FE1AD6F7DABBC25537A58CE00B07CA5647F48062210F675 |
9CA19CF4FB642BFFE29A00220A3D1EF24E537FD965979D7EFAE9FA4492E2FCF3 |
CF8FE3B01ABD7945F00701967150CD9065CF40EF6559530A0BB420441889D80E |
62DE2194C6A271719DA77B5214E997BFFCE5C30F3F9C38B24EB5B623B4C3B66E |
E21AD4A4685DE44BD1051B296FF6A850C0CBE26A6A282D75419D96F3CE3B4F33 |
33E93C1BB6AC67070561C915226D1767419C6433A46C9A9393C7DCB2BE5837DF |
7AFBC11F3F5053DCDBD53D2029561BEEE9AA69808D964E7B323C9AEA4DEF8CEE |
356B4766CC9AB7765596BCEC29A563AD46ABD23116CA192C265FFAEF7DEF7BAE |
5A3AE9A4933A9B8F35D70CF557C2AC991B3FBDB2F9D3C79FCD7BAF94C2A8E664 |
C5F55FBB312D6F385C1F2A5566DEFEB57F1D1CDD72C582FEE537EFD7D337A3BC |
2EA4B519EBD2A172B53FD5DF6BABDB103BBCAC4D5D4FE728D0A42852BDB9FEFA |
EB8F39E618DAE6489D6841290F76DF12BB71E03D7C8C5D0862386912559E8F2F |
5367C7D8C868AD52EDC9F7DEDAB56B36D92423633FFDDCB3BF70DD756BD6AD91 |
15D11C1AE9CF3ADA3437A874351BC3DD19A7907649D208CD56161FCA20B5C3A1 |
B23A480D86A1244F1824A11EAA2DFD4F6B4C3E47D2CC93BDAD66476765646C44 |
1FD7CAE306816B1DF04ACF3DF75CE92DD7C1B8A79B85D744F9A59D298D0BE5B2 |
4177D30764CCA5188A601A6516849558B566D477DAF1710B77F3F3B8FF84F736 |
76242D62B8E334387AE7097864B9C2123EB10B6E0C4F28921CAF963CB44CA06B |
B739B4EDB5831039EBACB3241239AD2ED983B67D1ADF6BFAFB120630A1CB9FC4 |
566DB5D556E3013B9D04B9D8A63C455B4EFA4BAC5DE49D7166C83EEB5ED71BC7 |
29FB10D1C6BAB02D4E1CC1C34C60D1C97442B7E04334596D75C2AEB2E3FB311B |
D2341525F13AC5AF36EFB8337F51BF1737585FB870A1C404B16364877E85C662 |
4ED079DE7CA624B24B08D4DD8068831DC97C90ED01F8A143A87B1911CCF1806C |
84CA0077108A03A6B1F11B1FEC97B3ABDCB03EE67F0D791C86BD4B1B2F97E3C5 |
D549E8D471EEBFCEAE8191D1CEAEDEBBEEBD3BD4877AAB8D538F3DACD21C0EAD |
E16D763B352DFD7CF9FDCF3C913CF2FF9DFDD0F09695A1C75FECEAD97AF5F0EF |
FBFA37942FD41C2CFDE09FAEE96E75F78419734637FFAF7BDEDFECF8FF42E957 |
A5E1B995DA8BCDB19E5606A39F125BD57614BDB8714EDE0E25CD6343A444F544 |
18A710DF6AD761EFBB125E3FD7B6049063C47D5B74D12E1D3EBE4F876194EE99 |
A1979698E1614103F3C5C50430131FE638BA55CAB975097458F7BB2B0355F138 |
2586484D2341B802C7E78D6F7CA32E4B439EB478F9E992A894D745B0A168E6E1 |
445712714A23BB41B8D945B61163CBC900715A103B5F0D06046018D7411A58CD |
60728108D2178E3BEE38B911F8CA0B162C80E885D31A530091ECA1FB10198836 |
45486D3662016E34A2EA98D2CC0389132C429456DCA6D0B3BAE5965B3EF4D043 |
AF54B2CB28BCF9E69BE5C780B74C2272FB57F44AF33630EE5B1ED34E8C1763F3 |
3D9CD9E90B9A267DC5B6274BE82C6B88A2F9F104B9401CAB01AD4514DEFC7164 |
26390621D2D59477B9DD311055398FB7DC728B9EC71C93D34368A79AA964FDDE |
552EC1A7CBB16E21A9A16D014F211A8212D310DA1B9CA15FD99A46D4C59A8027 |
02CC40FA01AA3BFC7476B91EFFE8A38FBEFCF2CB6964666ABC5010B24A7F7FF1 |
8B5F8C7B1BB5098B693015D3CC03CB4494F9D8638F958920875DC62061476027 |
28A152D406D60E16C73863C329559A21F9EE0FBE5F09CD5A523F64BFBD1AA343 |
FD7D61CBB71D3663C69A994FCFFFC91FBF9EBEEEDA5F0FFC7CB3AE9ED0F1F4F0 |
EA6D3BFB57D5474BB530E3D16F7E28A4F37358FC4898D37FE80187DD76E52F1A |
E9AF6774ECB07AF4771DDD6174F895ADEF549A80A0BF9EF780030E907380992F |
4B59EB0B5FACC39213AF89440B79756B69FD7622719E89E596ACF9E31FFF2871 |
F0C4134F7046B8884CD42BAFBC123481D651C28B9F18DD60FEAE4935816CFC4B |
2FBD1498A00EC52EBBECF2DBDFFE964A08AA6758C7242A259D6ADD6D5D69A234 |
18D93A787569F4726CCDF1E8364D40FACA8CE29A4C496DCDB0D42DA6031D25E3 |
429F1095B3F9D526F2DCE936E42E1A886D861AF350B9EA5BE6DA638F3DA66F6A |
05DFF7BEF77DEB5BDFC282A10F0125A56465A1F5FFE8473FFAC31FFE50038307 |
CC87DA2C843C8B790D4076D8E38FE1B671F8913A32BE6076DB57B46FB7D9661B |
F0E2E6A1712FE257741DB755D7CFB5251E7DF451891DC996A38E3A8A8E7B8943 |
F6EEB0414E63AA38B5152F35DFC66960868C27150BDF221490647200C0EFDC77 |
2CF6D1BCAEFA82B68E36319079D4B89C179D1F079A1C2C2228847D6AA01896D4 |
546AD327AACD788CCF70BC35E511D390DAE178BFF18BC7D750019310B5307C38 |
DEDCA10041593DE09C029D8AABCF89EDD2094F737EE28927CA854403B15E8E41 |
836F990A2FFC4A5FBA059012C3B7CC5F6666A7107117B3136C6BBCA4EDF4FDAE |
EEC1E1B1FBBEF7FDE191A1230EF9785F67256D0C9F73CC25FFF49B27FB367A60 |
E6AA99DFF9E7EF3FBEFAF3A1F1D639E9666BD37A1A9E2A852DC6C26067A88D84 |
F7D466FF7A6C706D18DBB16BDEE3C3CF6FDDDBF79BE1B150ABCF2DF7AE1A583B |
334956BD9CC7890F8C25757C5693885E82953580CFB28926DEDA871201E4E471 |
8BE34AC6A9B067DAA548E7B8100151A2C585DF549F4BD01C74D0415A624CDA98 |
1AAB8D7ABE4D13E8875AFA18B8EC326083D989BE42E83D152C2D893863EC19C7 |
CF159B177E33A94F001700C1DE382A6065690331CE37B43D176E935B55B71991 |
9A403D883EE771A820C1978A6D5910229A67A38FFC276C35A2F6FAA1FB97C432 |
1D87C6641B2640244A118ABEBF08B18D37DE586B8A228C67155343EFF5AB3F23 |
23ED54961E2D6E74F86744F559A9534E3945677CE9D2A56D4D64B3CBF9A8C7F8 |
01666AE2CBB23B9E3593D07184581854C2C4DA60D3A832D100AA0027783B7A24 |
BE668CAD9CC810C94FB430D4D04E83C79F280B62147FDB764C8A72360DF5C823 |
8FBCF6DA6B294FB78D1FD68F42F0092C25EED54318070912A2D21B9E8B1D1CF2 |
569764F04211826BEB8AA76BF27D1CCFA4E0284728C776EB3411B089E779E217 |
66E4EDAEE822A97F2E5AB4E8B6DB6E83C1D850719FEAB8FE05498A35373C3090 |
E3E8CBB77DF5CE175E5CFEF4534FF67656D356A3525FF7BBE72AC3CD27BA06FA |
3AFB9FBFF1E6DF56E68E365F7831E96995C6B66A867ADA7AAAD6D71A5B3DA7AF |
6BDD68732CED098D553B84D2EF3479D56CAF6EB8EC9950EE78BE35F6B24EC29F |
D404EE4F27E1B2E79E7BDE73CF3D3A0B31FB6358BFAECA8CD6647490D471A6D1 |
CE255B88E416AE9204930581AF6906887860041C48A171F1A97C02CE23FD67D8 |
932C071D99F473B99577DC710729AE69D69DA3E7AE5378F0CEBD4DDC4E316423 |
D604140F69245B6CB105FDD35D10F0BAD7BDEE57BFFA5588ECFDD853E155295E |
C42435C3F2A24E3EF9649D3ED2721C8A7815D8FF711D03B544BA9A070F5291D6 |
6088BB72D1A11383D23A8CAC0F1C366E46E21D1EB39423F1F506A882E3A8FC8A |
E78AE12D7114F7E5BF40A813C2625BC659E597FFC2B6234363240E7633819624 |
44BD0E607422063D55AE398DFA18E358699601E7009E2572DDC67FA9E594D0DF |
638F3DEEBBEF3E6D4AD82E61C2C228035FE5E49E215FB412B3FAD13F39218869 |
C9AC254B961C7BECB1EEAF129720BE4C1931BD2640BBB09B91BCCE94C4A567F2 |
5AE47095F3B6ECAF7FFDEBFFF99FFF1911109B21B15BCDFC4012C991A00590DE |
C836B1DC7FED6B5FFBEB5FFFDAE62445CE9A81CD36DBEC98638EF9D4A73E4555 |
2D4C1E6DD189B4A01309936985692482D93260ECA1CA0FD59544743DBC08A9CB |
CA90FED351BFFFFEFBC9D994F30667B5AEEE030F3E3C6D654EEE33CF3EAD71F6 |
95BB5F1C6CFCF1999FCFE9EA5FB3EE8FDFFCC6FF3DF198C3BE7AED2DCF8D2C4F |
CA8DA60655EF96BF3736D2ECE808CDD1EE59B3179C72FA3E4B3EFBA9CED0FDE2 |
8ABE5618E89FD5B96A6045D2F8DF221D2C76F58CF41C85851FD304EF272DFA7A |
B6F226A95A627D4D0FFBDEF7BE573A830E1C219202B168338F059482FAD5BEFB |
EE7BF7DD776B8BEA9FDAFC5A4D5D41CEDF6F7EF39B90A36EBEFDED6FEBCA49DE |
4B07BE7734415C6CD8B6452181883DE018758DA36C885A9C656D7BD90C77DDDC |
44B6F336A367524DE044B10789835E5EBF3732C2A154B4F7887D0EFB049B6FBE |
F9E38F3F6E53929DA6A730EB1F8D220089C1EBEEB49C5690A3A1A7D0CED47BB8 |
9031406390180247E757E7CE25E25A1D2AF24CDA8890D405F5277D5F9AE96B5F |
FB1A1926D6F7F4D34FBFE28A2BDEF5AE777DEF7BDFC30E76537B84388FF34A77 |
A94D464645AFF5F0F2727E6DEBBBF7DE7BFFF8C73F3615028F26E7E0A28B2ECA |
AA1C980E242C95B4346777CEB6ED650A33026A8058F046319100EC5BA6000C60 |
795EF39AD7B0E9D1254EA8C6C862AB19779B627323DF59F2B4A8A3732713DD4B |
B2E6C0030F5CBC78F1F435BA713CB72DCB1A268B0E8110258F6FD8A28128A130 |
01B4037EF6B39FE1ECDBF621B4473AAB0DCFEE24049B5EEFB7DB6EBBDFFFFEF7 |
4E426A2DB404EC2114B33D2A8251963E0B162C905638E79C7326C6C1DBCC9089 |
EECBC417D121DC76CA7060ED264466D44D2874A7A41BED91F58C04F434DAACD8 |
7DE50B69121AF5D03F7BD6E1871D3967CE06799D7947A3B57ACDCAC1F99B2EF8 |
C52F1F6A350667F7D6FEF9875F5FBE7CB051DF36A9BDD01CEBA9CE783A1D9D3F |
38F674ADB549A99C36926737EC7BC373AB1E0E61ED669BEE78C6B9071D7BE299 |
A1DE9F2493F3B04FCC18B7A53A637DC94E76515828CC491F36AEC69E7CF7BBDF |
FDD39FFE94AF8143D7F683E1CE385D6F1E5FDF8D33436E99227AB027B431205A |
A7CB376D6611A3A4078D099E4613B8F8D68D1B097F9349D627BBEDB69B16E84F |
AEBBA310C4BECDB83E1150175BF1934687426E90D1CAD11A51E3A44729791730 |
29A67F68530649C189CBD5F42C4F3EF9A49CB6FDF6DBEFB2CB2ED39FCE3CF3CC |
4B2EB904111CA2C0720CD3080584D418741415ED2838564EF5D9D87753745D47 |
DB7EAFBDF6FAE637BFA9BB7FFEF39F3FEBACB3C8DE6FBFFDF6DAE77AA3332BE3 |
C0F4797ADEB81C9D9160A5E958EDB2CB2E0F3CF0C09F57AFD006C7FAF3EA0C2C |
1624C73442D418223A13E65801C80B6354A657382C1895BD06C83BEFEF52CC50 |
8079D08AAC07D008537751114A6D0BE29EE48CAE7CD04107DD7AEBADD2D53A72 |
0E9339EB6298309E2677018D931434CB930EDE964E1BA866AA8CB129316860EB |
BEA3B83E46501858C2E4E254C68990B844DEFF4499E13D948AB6ABA65ED1F196 |
F4F9C10F7E8025E2760B0E17B87522F8165BEB26E4B073E633EC37D34804581C |
1C94A48EDAA1DE367460CC9A12E359F59ABB41C6BD31B07658E6EFC7F73F50F3 |
BDDD0EDBAF185AB5E9CC9E271E7961D6C632B1970DAF7E78AC3E70C77DDF4B1A |
A1D29AD9086B2AE9868DCAF36963E3903C1B9290B4BABABB1BA56A3AB866839E |
BEA175236B6AADDE9034EBCDC9E3DD71BC3E162E610A4D000D0E3122B42F3890 |
B84903EB18F79920C9C61EF6B463D3B0C4DE4E6498A45C59562E486D0DF125D9 |
10328FDC1E032FDEC14F0785A78A0EA133CCBCADDF6EBDF5D692652C048F1037 |
2499BE733ABB0841C34F386EB17E8D53C71335C1C2850B39081FFDE847E5E3CA |
8AD74824047FF7BBDFC9F69430C55C68A3078FD156962431DFBBE3A5D8A91A9E |
6197A81997BFC56ACC5C0E21074AC22FBBF3CE3BCBE46AE5CDF2B81D150CC81F |
6C2F7EA89153401E8A789D5B12317843639CFD769C163B980724EE24F90B2FCE |
2B92E0EC3153338502D6380D0DC1A42FDDDD1DA8E080C2F838FEF8E351AE09FB |
12A9040A8AB6F2D3E81CF43C009E0B2FBCF0BAEBAE7BECB1C75CA91F0A242261 |
561658328BC5731EC60FD3E6CC720875D234F5049D6356556D0252B20C185751 |
F7F5F273C7693A5420A69BEB372645464F8A22D5549C74D249575F7DB5F1E6F6 |
5A78041779315418EE2020B288E7503115EC1E84350709C161E9E3F09ACD0AA3 |
05C890E367906070228B58E7444D405228D601B16537D5E23251871D76D80D37 |
DCE07E15984E64C293A88F36B6155B420FAE9B66A66EAD9C6A8E9B69B5A4F1C8 |
746D2D5E7C9E3CD366C78285B3864AE9D870AD353C98AC5BFEF8687DF6F3CDBE |
FB6E5BDAD1154687B392AA66DA15CAC3D5AA0ED2E8461BCE7DEEF917CBE9BC52 |
E70B756DC97A7F6F773A3834286530E9F84DFAE857FC68F112A309F07EF4A477 |
DE7927101497E6B2D024A5A8D18B91E03135055B0E81CB125B8012477688C3DE |
AD3D4E5786A7795D282045675F626362524D70CD35D71C7BECB1C40D70D0F5FE |
94534E59B26409C155500C31F9D2A4F3E6322B93DD8609CD41278288A6F20974 |
3BDD5A6A405B172C1CD7218AEB7602B6D8622FD64332E2DE8371E09A69213286 |
6876F81415689506D28F26B2603164D14B13840288D846711A4F888F7C6CFB7A |
B96537A04B9CD5E774F01E779C37C41518F69F61CB87224664ECF89F811D22A5 |
67226E60E27E96AC83AF5B16948BFE59218F7CC9FCB14569A88F835F61FDDEB0 |
210A4A22A11076FCC9510B9F52667CC1820552922C615C340BE0D7E52720EA50 |
D42007583C0018A79F7EFAE5975F2E3D2FD701A71BB8370EA0C3F136D35C9D28 |
134FA613D619EC1F3D3D5D85A5AF59CB224292B4BA02C6A0CF27135A6AB446C7 |
465B212757E9EE19181AECEAC91C8534AFDE7C468EB96EA4F56B34B6DE6EBB47 |
FEF0876C026BE3A765BC19D348AEDED20085DCC61B6F9C09CAFCAF18AA3E6C56 |
57F80D68759DFF2BAFBCF2ED6F7FFBBFFFFBBF1B3425F313A27CFDCA12CD303B |
A439664E529053526148E095240437628164468D336697B446DDEBD60D757549 |
138C2122F216EC61CEDCB92B5E7CB19A83BEB41FE40D69E337EAF59D76DEF97F |
1E78A08213D66CF6F6F50DAC5B77C8C1874010AF61900FD720A98F931BCE69A4 |
109D5C9656FCC8238F94BC7BEB5BDFFAB39FFD0C4F4BDFD1939219E23B3C5DDC |
8E4257D6AE90B94D51159FA01D99071F7BAD3E8919C2CA9AC90CB63B34929944 |
6B57B3BE8D56736474247B163D75BDBEF1A69B3E9B872E3B24BB8786E66FBEF9 |
D3CB9695CA890B79AC72D25C61190946FA0764378EA375462CE8B1A5B007D113 |
9C05833DAC0C90C2C81DD62E2D3AEB4ECCF186A2D300FB0A64DA79E79DF7E94F |
7FBA55B43161F698222A31B133600470A502C7D3DC098CC186201932CB2FEB33 |
C06F8E10B485A4903FEE0F8ADD3D77EE5C0D438E8E569FAD08F9849B48F35FA6 |
C2DA85B470ECCD5820FAA65209DA429A014C617BF91671DAA8E42F4951389384 |
28C0149E9808F4698D793BFC219AC075D49EAB508017683162A413A920C0E5A8 |
01BA6D638B68BAB457750BFD332EE3685324A130296C682605D7E94BB5F75E09 |
6B4227096D3AB5BD8975EF05175CF0D9CF7E960DCD623BDB161BDAE9FA486400 |
2A7BECB1C757BEF2157DB2DD76DBFD219795D84414DD982357CF80A26257A199 |
51C8F00198F8856655FAED073FF8C1BBEEBACBF50D3C0B83D73692F7AAA9FCF8 |
C73F0E50C4111E26306B12D562D9E84F909A27CEA9F54C9736B25F6DB8F146CB |
9E7EAA5C2A4B52D07EB04473E0D1D18C7BF2E9A767CE9E7DF8E1877FF9CB5F5E |
BB7A25A665A60092902BAC2C44363C38627C144475D68813E1281C392C028ACE |
C2FADD7DF7DB6FBF6F7CE31B34367AF4D147A9E3270F44F7349D900F7DE8439A |
7637A00E459A9DA033E1291C6D0A1DD1BEADF1DE9C3D3927526BC30D37A03F73 |
230D9267B57C21D288425C6274F7DD77BFFFFEFBA514E76FBAA9C6A671683D5A |
8DA696400B04F8952DAE07A739C9ADB7DE8A25EE4256B68A3E71968854F65E7B |
EDF52FFFF22F3A9FF432E43A945C4853B2810F3DF4D06F7DEB5BF0136022C4D8 |
50DD54571E7F8AA8D1205F9BD199516A8F35EA3367CD7AFE85E7F3D07898357B |
F6AA952BBBA47B0606FAE7CCD137572E5F3E63D62C69E5CB3FB7D4DDA9D86999 |
2C6E85EEAE9722661C01AAD25C81112263DF36531BE411BBD8C21A59AC097FED |
6B5FFBDFFFFDDFAE7C8C53A06D3AC0250E9A2B0D80E1915A78DBDBDEF61FFFF1 |
1FA1E88A85CFA7EF6FBBEDB6B29D4DE1890AA17815A730CE45992C81BBC39318 |
CFAD7EEEBC08C340CE72609D5A43821BCD4837313DBE8EF3FBDEF73EA2B2FAB9 |
B6B724C6FBDFFFFEFBEEBB2F268F21518C1B44DC1209609334B6FA8917E15540 |
6C6ED4BF83BDCED2D94B4B724E2463B1DA246F7CAFA9CC730D5ECFFBCB5FFE92 |
24071E033A350E01A545658F0F2977E468F3CFB3CE3AEB339FF98CAEA021699F |
9722AEC989A91DA319517B5CDF60F1F1F260A8E475C0741BE9ABDFFEF6B7C09C |
AD000C8430A4578396EB20CD461DE39E7BEEA9B59195ED09F26DDAE2B3FC93E9 |
6609636C00263F064552F408B43FF89AD7BCC6690372772ED08DF14EB6826D6D |
59B17945B1C47187F323245345B64F1959E048C8C0C04BF15648B0658F6793D6 |
CC909D6F7BFBDBB37CE9DA358417FB66CE2857AB2F3CFB6C4DCA6C7878F6061B |
10C75F95D7F874F764915C870E25266A1DD5B1916CA577DB6DB77FFDD77FD587 |
B2CECE39E71C4CF2363B9181612F1349E0D887A25A1B4D63B081775EDC510B2B |
CF612BDC2CA7B9305463FFCCA5553BEDB0F3FF3CF83F9572A5D16C6CB5E5561A |
B00EE1B3CF3D9B26AD79397DBCE6B7A7B77750673B375E86060737DA78639D2E |
29805A9E95C21E191B190D11ABA584B57C02ED3ACDAAD6514FF48FFFF88F0802 |
221B202CCDD841660534611BA881CC3C8034668FFA61F65528C2296EADCA8430 |
27681D10842C31FEECC69BCC7FCF7BDE73DF77FF49A3CDC2AC49902A06B2B99A |
D45FA9D49FB72D1A1A581B474B0865341B2D34816EFA8E77BCE3073FF881DEC8 |
C5B9F9E69BDD413E0E8C50C668961E3D23AD8788C51913198AC88611DB7A4F6B |
2688E9DB3A11C59A009333EE90C112C79C893AD1FA82D674EFBDF796B5C4AED3 |
CE5CB468D13EFBEC23DB5CA7BE14B53EE60B080A8DFC84134EB8F6DA6B2D253C |
FF46D19065693340412E4DE44D61A874F80009CA0F012EC25F1D8AC80C3FC78E |
C64972793FA2D647893D1F631FCCF3C3309C21D861871D7EF7BBDF7153493C8D |
6AD75D77FDB77FFB37A2A371AA63A2D06F53F6B6EA74246912C7548488A98C16 |
725A746A98354E4979FABD1B3D05B7A6B6AB8E09816860DF8E7C84099E81E3CF |
719C302D60FA291DEDD934F6A9B3E046DE1C71A2656135C5DC619E3B64EF9563 |
4CF144BFE42CE7FBC67EBA3390268C738B63972B7B243A24C71F7FFC75D75DA7 |
3F6946FA721E34C814B3A0445E5B1F72AA5BAC92B8342114D15B3C3B3C182B0C |
5B040C236E87A90126055414E2DC7138D0F050B3D5DC222F6487C26C9CAA3709 |
9D5D5D235A983C4292AD711EDC9764ECC84D6C962AF3D10020CE98495105A180 |
C30E3B4C7631227E529FC034ABF8C8943EB2B381AB4334462D8C46ABB9E28463 |
223115D80EF8E3B4DFB2F2962E40E0BA9B47618D663FDC70DE869AF9ECC137DF |
E289654F7475760D8F8C87803512E2E61CA45A47D7D8E868297726880B650FDB |
DFDFD951957466D54CF1FF810F7C40BB5FE3D4271ACFF7BFFF7D363DF68B5647 |
F68E13B6AEB48020485B45B341E2C4BDA6350FB1A0A18B00C64D9CD6CBFF586A |
7393714CE7CD9DF3DCF3CFA5456087E847A6841A753D57E639A6E9BC3C4CA72D |
D591AB90500442CD2622D334A4810C279E99FE7BEAA9A75E73CD35F6FD6DA9B4 |
250F80A92405AF2466294E1B61135D961A5176BBE68DD434E54E6CE0890001E6 |
07B1A809D14FD8333022404AC189BBE5965B162F5E0C1E84CC01BA1907AB55F4 |
F36873F789CD82DC3795106FD29C7C9E101CFE81BE2C83ECB1C71EE349F93014 |
8C35640DCD3CAF275DBA74A94E3D95D8EC014C34DE1318604B3B695C2A5EAD82 |
D0DE9930261C1EFB56C18D8A5D4B7ED57941AC5BD31CF08971C36D42D26FACE0 |
D388B080EBBB5408E917A71E35090B172E945481CF2644E5DFA65AA0B6EEE9A7 |
9FB6FE7658652AB5E4C214624D2441F199C617113BC8506283B1780C8B15B3E1 |
A333F406BBD270782289783A5894D6786D993A0E00CF4C3A5B8343CEA2D90880 |
3824DAC6D86C088D0B7F628DAA379AC7471E792499822180B88A46A25BC3931C |
3B31C48ED61F6D29E605224F95C5D3478774FE3798331740822EA2CD9AE5C99B |
E394671A275D3957AD5C397FD34D316031528C9BCA7A8897324C141E1F1DC710 |
F76D3E81ED47A4B3E90D4251B40C265ADB02DDE62E5D98BA2C8DF6779AF754D9 |
7AEBADE5997A56B510920EFA3C07777501C2239268BFB8B7670621236067DA82 |
3003F6F6751AD60D1A21E4688D6DB6DDFEE1871E9ABBC1061AEDB379BAA23FE7 |
950AE9787C8F7A4B881249D9998589423CF2402122D2094585CA2EBBEC227FCE |
69BA647D123A20403A72644A352169D1409B1D4B0B5FC484245B28920D0E6E64 |
5AA43EA299951C47C319DF59EBECB05F257747EE8FECC4471E7E78669E2A8FE3 |
FE8D1C815B4A4ACCADB696369BC6A9E7C2F76DCB69C7E52CB877A45B5947478D |
DC3FD26D64102BCC2A9845B70D9F6896A6055F7F88020EC43F61093520D5F38F |
660D79E5A02EEBFC6A8832BD56636EC8C56CB3994B05F521418C105166B27071 |
01B6076FEC32A631C68189CB8CA7884FB7F3341A338F46CEDFEE4B58BF515A1C |
84E4FA7CA2F1B3C41ADED9679F0D9F075E6C4C791B7BCF13131231609D2DE1DA |
9436BC8CAEC323F3B5CD36DB4C529E7C95C6AF69D77B040877D47F75D6A4A435 |
45FAB9213331F1866D778BDC58F270474FD7789E200E8121563872606FE15AA2 |
6E9058AD2EA1D9B9FDF6DBE10FD1970F38E00039F5CC1106720C90681B53EC5E |
E8D6F67921D406CC4E501ED1693B1DE3D485AC495EF6A52F6B9BEA9869843436 |
78E73BDFF9C31FFE502BDA061DC10B7197E0B4E889A6EBE423CF6C4F7982BFFD |
ED6F91D75876434323B9E53BDCD39D91FF8C8E8D66FEFEF050474F6D546B993F |
3E11806C720732EEC9CF7DEE73279E78A2460B7D2919A18ECEAC4F8BCCC9240F |
476416F1B8699949A24FE62FF0FB2C410C0F887D02377D456CB9BB833E7FC73B |
DEF1A31FFD48C3D05F3515648C5D2BC4CE3671266E10D3A8F70B162C90699621 |
23ABDD0383034948240567F4CD58BB4E9FE445B0A379C5BF642B8CD61A1252A0 |
595FB0C582C79F785C932093EDB8E38FD3DDE5313CBEECE99979373A49C3FE1C |
962AB9A937B56A2215E22374EDB5D702D3A6638C06103781B186764C83E0D8DF |
FEEDDFDE7FFFFD780C36B8FC654011AE1A053EC05FE7CD9B2743415A04E72353 |
931DBD2C2EEE826EBD7ACDEA6AA55A4F4765AAC82D1D1C18E8A8758C33ACD43A |
D6AC5B4BA84447A09A778824F65DAD758682553829E0D48D8C37AD1B91A7F585 |
7917030B49D496D7B598E6430D55FB5326828B579913375286A910E2779287A8 |
017080F171B3550123A99EF4B5AF7DAD4ECA0D37DC40D7DC187305B736CD5075 |
7D663E2D0880F1DEAC099CE50A05066FF3CD37D7C6439001858AB3050EBDB2C9 |
8904C264150AE683366E027D47CFAB23A6371A955302D8B6AE07A6A7ACBE70F1 |
C5176B75502A982FB120E2657C011E4C4C4D8AF642CD10A831D12C9ACC91A836 |
EED25819B455D71284777990C6A35B483EC88C78F0C107B1423C4E9F0E7CC17D |
F6D947024DEBEBF229BE307FFE7C4D1D851ABA3854956D819C787795D6273F0E |
EB03ED325B9ED02432252D00B9FC181C8B4613C3577D452D83064769F8873FFC |
E19FFFFCE70F3DF490C5565AD4B8C6CB1026E017750BD9E6DAEE92597BEEB9E7 |
9D77DE89A5630669C3390C678C7B1187A8041C83C834BC7122CE91225787CB82 |
960B16050AB3C11013F4D8F22BE73F0C097650B3D524561E4A0D192A1DD59A1E |
4F322E6461A1D03FB37F646C94C8FBBDF7DEFBFEF7BF3FB2AD4A84144A792224 |
4325E663EEEF1FEF3FEC9A007B8E936A021F95B8D112CF0EA096AAEF91FCC5FE |
A3FC9292CBA468F3C99549CEEBA6D204C45E1AF5807091269004E44DA60B47D7 |
7575770E0F8D7476758C0C8F66BCC7B5BCDD7477A62DA406F21E36999CFAFA9D |
5FFFE8473F2A537B46EEA74BE025B0DBCADDD1AE688D85C229D4E0B57DBDDF58 |
598C1AF4BDE4208483660E671393D093D0D44FE867D2066728E71DEDB5AFC0E9 |
D33F8E373A3FB88C84238606B3077C696F27A52C8193BD6B68BDAAD20152C91A |
76B3552D67D2AAA32BCB76701C6EBBEDB6830F3EB860EB7B2EB05E189E059037 |
6D8D875E8957304888CFD896E9FA8502FCD325510E98A0F84178335738DF3C2C |
E92897319A7B7CA226B0210CA74828A225188C268F33F339D45818F86EB36AF0 |
7E88788A4A45134AAE8F89CDD56AB9E724051C8AF23AD21BBAC599679E79FDF5 |
D76BB9E5A482D0D571D06F354E3D29142C0CE6E4934FBEF2CA2BC903B555AEA0 |
236FBDF55699A4DED5244E0884BAF42F76F7F17E0E3CF0C06F7CE31B0CC04D78 |
783436218937CA6635249D146DB90F7EF0835FFDEA57CDA01726F804067AB905 |
02F631FA1B20462862B6CC98DD05B4821BDAE83B700471049893F1DD9BAFD469 |
A79DA699D175D03D161AB1D3691DDC768826C91338DEE28C048C98F6E062AE3A |
CA32ED8968ACFA39E97EC78E4254499B4EC0B98788975F3B46DAFEE8A38F9632 |
C7C443F497F2969031B93C2E703C18975F4A2EE8CBF616090E72BBB68CBCE192 |
CC42186FB154721571FC083DDD7D834383E3D25F4F97FB073293D35A5A971559 |
CDD47BAB5EDF74FEA64F3F350E22825EDB016BB648577756BF3E1AD783E4009B |
C181B540F7A8AA8B4BB7DA5EEC63C27C566C863037C7B13DE3D1339F40D36384 |
C2CD8F6F614512F9959559FD39FEBA954BE75A87DCA0ECF15B23DD3D1D4383A3 |
956AD2A8A75DDD3993E058ABBF6FE69AB56BFA7AFBD60DACEBEDC9D398F94425 |
E50CC521BF6706EC78F8C8B9263095298621A7C2DBCCDC8D3E870E376B62B555 |
62CC4228DAA0C3D46DB47E29223B434FB856CB3473C524573A3B3A338468394F |
B88554FE41169B2E6765604939CBF1C89D968B94C5F186874A851B8EE56E3685 |
52B9FA92751CD93A7D7D3D2833E36142D4196922A68EBD4DA434448584A48239 |
5FFC15C8905BF184A81D3706699B2CE085D0E75CB010C475632B849BDA22498B |
8A8156D12A15B5E11631C616229BBEF8C52F1E71C4110EC7B1C7162F5E7CD555 |
57A1A19DD820A08A7D4A03033DD778FFE77259D2EDF8E38FDF79E79D1F78E001 |
B601A594F8673092126A0384465493BDED8816FD9A986D6482FD3052896E8D60 |
0FC6C1F45064B963BA21FC33E33526050E8522AC6D4D40A484C368D9E89DF0BE |
F7BD4F3E2E19113345A3CBE31B79578422AC44B362199AADA27B04EA27D60448 |
4E07A088F66B036B6E2FBAE8A297600E06239BE52DE62728458CA4AC373BD285 |
18B286B41E6DD0A5F83531586F04882300867BA24BAD2D8C74264D6FBB387E4E |
1244FA500F76F9E597B303A4B709B485A213850D0110602C06F113CE0C19AA38 |
5E69BBC33862D6D255052C337B9D3DE40EC671D8DAECB59EA572D118846DD1F6 |
5C4E31B5D989A1A0096360445135E0458B165D71C515182C388C567E311938FD |
9E9804E43E302D8C20BE5989FA52C471674EBE25755A10A1E452723CD6B472D5 |
B85920E59185C85BCD18C29B4625DCD3BCDA82B94941E50654EC939FFCE42597 |
5C8216071005B880D16A18AC9D8C260CCC5060CFE34D1E9B93F8E9AC235AC429 |
7DE3DF71885DC4D4D697D4E1D734A22F65C0AC82057D9BE13F69122B14990000 |
21443BFD8C4024E0AE6084694EC9E083E32E3AC86B9C510FD841512AAB4D241C |
A2349B4FB1D74E3F39E69863AEBDF6DAB85E37E60E88ED09E0822ECB37576E65 |
420798389A47E49A334EE9282E17462B179707AFF7B690401C2C59B2E4F4D34F |
77D701842FE252CFF8EE77BFFBEFFFFEEF4F3DF55492D8F4714C8B3A1BE3BB08 |
B5E9BD2E45EF399B5969C10810A21E32F152A605ED8D06499794CB2EBBEC9C73 |
CE891DB289AFF8E7048B482B86A283824F9F21B9EE636854CB19679CB174E952 |
54AF31F4965D063E21EE40573309D44E7116B09380F38EEF51D7F11AB1134727 |
62B16E0A27D9381A3DCFAF89A0D81D3C93E5053A10591057BB58973A9D827988 |
B8844C4D13A46B920C490B9AAA302149C5EC68DB690C92FEFA891E8CB8B03B54 |
608EB9138E036DB823543081D54B8B4ED32E991947C2D46AF2610F39E410BE03 |
87ADBFCF4F5854DD0813D542907FC6505FEFAA52413AD46618C6600FFFD54684 |
A6DD9B23F634B7DF7EFB471E79C465356C8865CB96C1746DEE2330D70814FCFD |
1809E7E735CBA34CBCA38E3AAA1435C3713420F3CBCA15D2D7BCE4198C6BBB22 |
F21BAF544C3035716B85084B132B45F7B6656CDAD01A36611F36378A0189DF2C |
DA28B91E98A315C7DF90D4168BA843CDE4E73FFFF9C30F3FDC09246F096B1AAC |
25D2D7566FE06E9DEE9A6629E3874D26031D7200350C4DB8CD4FDAD0D3293329 |
A84675478A9208937A9E3D06A20A7A0489090D98183A211DA682EF1B69131F4F |
04822964744764AEB90330656475699BA18DC8458582883766EA4D22AA8C899A |
C0EE29A009EAA462FABF56C1FD17727FEEE0830F9604E4E46AD107F217C294C8 |
15F306C1A5F6BC159EAB73436EDB41DBA7FD43C6487FD55D7EFFFBDFC73EA821 |
8EC9045A24EF589F147E05B5DAF4B5C449444E85D2D5CF4F39E5942F7CE10BA4 |
859D9501C8605A8E52C44F73F2C927CBFE83AD47DF2164241187872A597FD34D |
371D76D861C8615D2AA63A0E45B137BC3E9A8DACED920B4A590013CCC5E7337E |
0047AF6C084CFAB2751017CBD935333CDC51B671B152AD822771BB2E2BDB5812 |
1904C66CBA61005DDDF585B7BCE52D3FFCE10F39F6E0976293E48E3BEED86FBF |
FD600906C109798B130FFC13290F43990640CD7AABE843690DE707B447157322 |
926347235AF424059DD154E2A06DDFC49A004BD0A902E41A400B9D96BDF6DAEB |
EEBBEFD6D2EA43976B5A9CDD75D75D1FFEF087895A62597B0C31E48E63CC99D4 |
5DDC89A9B43EFDDCF8866E36B3F6B9F5B16AA54AF8785C7C34EADEF1AD88BD7C |
7A425DEF461F3C669845C7EF2163F99EF7BCE7A73FFD29B93E07D6CB053BFA97 |
BEF4A5830E3A0895309EF6587FB1CC7D96165D28F0A5DC4C31761DDC03A32DF1 |
EE6809C598DE996D154C13C5C7F44B4F865CCB77F6D9675F73CD359A52085ABC |
D6941D68436A48407126BE30A8B5D53FF6B18F61A8E901650E6B7A217674996B |
5B0831440E191B00F742871D15A883A99BDADD84FEC4609E1D77DC51E6972EA8 |
EF13916057B44D881F1FBCAC5CB7B7BDED6DDFFDEE77755FCA7A1120E60DE576 |
E830DDE5E69B6F3EE28823F485DD77DFFDE73FFFB91E04DDC019BCE8A28B162F |
5ECC83A0243403B20EA5622FBCF042668C0B3A5DCC0FC1C519B5614D10D62FD1 |
8A1F81600BD69ED3246F7CE31B7FF4A31F4D73A2DB9C42EF43F742604F1E7DF4 |
D1F2831DC106986B7619278DF012CCC767EA1DCCFF10396D9A675DBFAD10671C |
57ED1D601B2444DD253D62CB23843831FA90BB69A170AE5D436020813B2EC5AD |
741D6A888FBDF71FD0111EE0CA2BAF3CEBACB33028DA08DC3D83CE256AF6B527 |
306D205DE8CD5F66CCD6E79A085D0DB35D6B06864116B4BC45C77C1C2332E2CA |
520371D3A6028DD397494EB6D9D5F36951F08519D5883AB55A8E7091893B6C62 |
163114D12156CAD69CB53D6B8F73AD75D146A1925EFFD484E89F74FB81419E8B |
F0442EADB4207044C2E932373D371F4E52109DEBF03FF0C003DE395867561553 |
812BDA5E4C722C28B19550CF887240D30CD5EA5F1F82532030A80797C7F6F0C3 |
0FE32D69F2B53A0E033A046A9560896F881AEFF9103FB55C340931FAD6F95EBC |
1CB6C4C488FF9F5CD0892FFFD0540D2EA4025FCF604CEA3E5565937EFB8637BC |
E197BFFCE59E7BEE79EFBDF73AC11672F748D7A13C1B0563DFDA8FDC2A085A28 |
6ED0D7627E30542CA49EDCCBD25347CC4DE727729A4EDC09D89D1C9F071F7C10 |
CDCD23CBEC95F9AFC7A4623C297A476BF9A4066411BB3444B3F1894F7C02C650 |
2E2BD5E502BD361104AECC0B41EE8D0D568EBAF43021B8B07154D37E9EA370AE |
8522BBA0F7DA9C14D34DBABE939E7AE7143179B587352D7273F96BDCA9C67417 |
1AF379E79D27DD269B40B77EFAE9A7E324B9C538EFDD6F3114FD89172C58F0C8 |
238F68A85A44DD2E715A159B97C87569FDF67EB126306AD598BFB0BEADE7B0BB |
AC926DB7DDF6273FF909AE3D6A40BB107D535ABFDB5F7C7E208AD18B7DE64DEC |
3DEA54953E01D81EF74B41C6C9E4D1C695B090F920D54AE4CABB199881C58196 |
01D4B9DB21386B64A7D2E9656D3256884700BDAEFDBACB2EBBC8BB04CB456C94 |
6570C546ABA02D7416DDB6C0CBD704A5824899F0BDCD706C2BF894F4F81A924E |
D139E79C034ED71C76F7DC738F4483850BCDCEECC1F08CDC820008593502A9EE |
3F1122549C46224DF0EB5FFF9A1C662C52BD615CFA388D4FC0AFE20094AB671D |
3335D0904FB4F4501A5C7DF5D58B162D42258340D5AF6EBCF146C90B1B0AB4A8 |
24F0552EBA04DBAFC7D8345C9563E39026DA48DF916CD57E36F1AD0D110736DB |
C2CA7E9C57A409E2661BBAAC9E8BB027415E3060E5A265B9CF4E9B7C490BB210 |
2046F20C64715348C138E3224A6A2D8DDCB7730C2AA93F7FC9D2279668D787DE |
4D2E4A076468AF313698CA516FB2364D106B4DF60CCE9FF6705BB98056D00DC2 |
9CEDD3B4481C697E8C3DA505AC1B095090A5DFD2945422C5A40BD661ACBEFFEA |
07744F3A33C22613B812084DC3A60CCE4A72EF831FFCE0E5975F3E8DA66FDB12 |
69440F1772B6050DDBF51658CC3E5CD67FDABDB68D506058D877DF7DF73FFCC3 |
3FE0C8121AD2C21D77DC7137DC70837E8890B7EB6F9E9284888A39D65DE445E8 |
60A28462AEB553CF3DF75CD9EC1AAEBC122423E72A2E8B9754922D463532A149 |
E4A30C072D5E5C6866E168CF2EE4A1435D194A45969919318912C74FE3D197A5 |
8477DD7557ED57A78F6C01918DA1A4882B487C132524A669796A43C608164B0A |
3DECA1871ECA352529324282DC8371DE4C8627F340DED59571CEA0B46DA0B07E |
1A6AAA575B7428AEACD116D4C835C364086CA4A779E5A45610E9BCCD36DBC892 |
D50F499F26050D43887250B68243918E7368F2FAEBAFD7361A6F7117110C8C6F |
E224CB3FBFB87C79678EFDD02DAB79826770DD409CD161BD2C62267D4C075ED9 |
E50E825160A5277AF4D14735C9DA5D18134C2C54E100459C70D31B5D445FD314 |
E94F92AD74E50D79E82629EA66B823107BDD57F6C1BEFBEECB7808513A91532E |
DAC74BF138B58EAE226E46F4D65990F2FA3D20C3CB8E0EB1A5B540BA9AC60FE6 |
F2D4534F95B62364CCAE8B0919E39CBCC58DBB68988C361449635D99FA9B33CE |
38E3820B2E2095355E211F99653406E7C81058437FD06027149979D31213BC72 |
8C51C70DC1CA5FDBF243B14F003384C6C3A85CDFA05503EEEC1A371421EB889B |
6E563556168B27564206C58108A0F2C0B00E4E04DF8C13B3A6BA69AECF815F8A |
3AF25A3FE15B0358D27DB15DE21E9613354188B80F90D7D89DDAAE1448850224 |
C6A974ED3AFB8D2B98AF9B53C3F078705A41A445B9BB3E34F05A1FD20F391471 |
F53DF6D8E3DBDFFE761222E65B6D740DC2BD1D26DDC13E03471D75D417BEF085 |
B07E4B190AD6296C611C071F7CB08C11F4415BB7E8894693FE79CC31C7C89A33 |
FE0CDE151223DEF1F18BA40A604AFBBF10B6E85962CE19824E95F53B0C3B77E4 |
DC038A4ABFB5942788AC0B12A78E0FAD83E6488AB468DEC9EE47211BD7C5C9B4 |
DA0B7F56C698424D7B4BE85748D9C030D8C03738386E17A1F38CB505E6DAE49D |
5415C4358AB48AD5D5F4DF1830D3B670E56AC5649099AD4DEE2107E0978B86EF |
F687A6890E794EC0A85813F8B4639A983AD7B85B7EEED010162E916B94504CE6 |
EED3CE1C3A18A89F6B0F13E1D4F59D3432DEC60208B9E3E8991386EE7418234F |
C214E6FF343E018D28ECF3F1A11C5C092CD7372505B687BF9A443A599FE59F84 |
304161891863726C602613BA48968BFE2D084DE2AB9220A416ADD1D3A2EA886C |
B68E986B865B1123695C843455742896AADCDD15003EF5BA8E49C91C6E0AEB63 |
96AEB9E69A134F3C114F9729620030326912E283E06DD0860B60CFD8770F51AB |
12BB806DFB19CDDD56393C8D85E77D1E26707183856D144DC09024B6C0084282 |
044582EB2910FD76E6F465178B407022917EDA69A7C96A97906C83BDA1C37491 |
134E38E1B2CB2E1B17405A69F9F83BEDB4D33FFDD33FC9AC7687F4892852BC4E |
503D7AA36F6A8FEA5C115D89E92D5DCBAADB3BB314724B5F6EBB0667051B4F4D |
A96004F3B4828489A199E67589BBC1385181D79FE4456444F089A81A6B4C6C01 |
3BA82D7BA389938038FAE8A36FBBED361319528A45CD3015868CD9A428EE6CDC |
165D4112F198385BCDA2ADA635013EDA2B4291B28F991F3D05A1701F8C187FE6 |
C01AB4F504073C8D86023B7BF6B18F7DEC2B5FF98A134A1240706F00DA691514 |
7EA1704D3217BB94D4C7C6BAB547070793822D352BA50EE378B050B0825B084E |
7A421CC6F1AE480AB0907782F37B6C2AFEE97D6582332699DF1A5DEA0727F273 |
D249275D71C515AE5DDF7AEBAD1F7AE8A150245AAD00C879B68A4E189CC338F3 |
6CA7CA278587F5FA8629A24353CD43BA7E7758AC4283119816EC7D6B26BF8FD1 |
D80E7CE1AC58EEE04F68EAA0E8C19E35F709AC3EBA979114508122EE594D9C7E |
CD8C5C8ACF7EF6B32649E687082956C111AD897CFA6DD1210D921E679C29068F |
FDEB56485E1494EEA73EF529B9E9341075CE8C363821420420CA1094CCA13DC8 |
581F1014417F9039435CD8A20A51FBC2B854CDE15FD65DBFA2CE792A4D5F8ABA |
E4C6E10157ED59AAB8E60BC560D8AEFE79C00107DC74D34D717D1C726C9C18A6 |
782E0B3AFE84C5CCD3817E2485694AA2977C764C421286C488E25804B93567B7 |
318ECE3AEB2CED065CC2498FBA8965B8A6CE216E0B32C8D91BC60025AABE4C8C |
486B06D91CB4E6B6B89B45BB38B092C0220914B8D8D82D8D4204D82A15CD5AE9 |
531A93AF79B1A9D1D06E7695475A947D1A260C0F22556F249CBDC6362BD2025D |
67A9818585294AEB2558F0B424D61694DBA0B7C214F903B62CB52A9602AD8230 |
CAA9BFB6A03CE243A3D5B0ED3CC59928FD5CCE10FE7E5CEA6CA18621EC9A1749 |
CF471E79C40906B0982869026EC48E911A7A4C902A80E249BC4B22138827CCC2 |
B3C4E9B8B42853079B180AC8470C3943BEDB5A34773C45D7B83846C2585B932C |
CD565FC3192E551AD58E50190D834925B41AA1BFBB6FA8BEAED63167CD504728 |
3D33B327748E740E8F964B616C755F3D24D530DA2A77F6A64375DD7E5EF7CC81 |
A1D563A1D1DBD3FFE2E0F0F6BBECF8FB877F13EA4DB9A5A5566560681D68664D |
820606A0CBD8D6892FF7FF0911119B03BBC8B5B4A02423E0C9EC51EC62DA1807 |
3430B4F19FFCCD381F4E749B9889793E6C2633E1FC37293AE549891E7AE8A148 |
10EB2DCE23FE25F4994077F0AA652F2E5AB4E8F2CB2FD7BA7096193C42805593 |
44D6E9D09725A9DDC0DDE968A390D9E7F8C1EC497EC2AE606E5B05FBD09E7BEE |
79E38D3786C299331EDF87C5E971C054AFD67E8651C69906C3A34D82522A5837 |
5C6B6641D15653094619773FC94B6869023A952581F4E3FC1E78E0815FFBDAD7 |
5C8F825474031F0D9835CD524A210FEF800B0659CF20489912A97425B4EF67C4 |
05BBDCC58D1335013003C2D0A83B6C8A52699C998BAFC598277D5943321EC6C2 |
FA4B5FFA921C1972771CE3B803AD2EAB19D47BA8DFC0594F0CCE96D627A90F51 |
E13E3BD2AE37F785458E25D1F479011CFC39FDF4D3972E5DEA16CD1C30AC0C7D |
D99C9AB68BBFFEF5AF7FE4231FF182B9600D167E0BC46432063D7F18EB6F2D99 |
0E1E85249A374D29E10B1209F89BCDA85B4888BC602772992BE7C65962EE8524 |
62B9811568A8FADADE7BEF7DD75D77C988FEC31FFEE0AA542CF4B8158915F677 |
BEF39DBDF6DACB6DE9B055694EA25922BA15F3F0D86137E06776FE7AF4D147ED |
18B11094A71AF916972B1B298F46E1C15D0896A5E33A2BBDB5DEFAD058524942 |
877E9C0CAD190AF57252A9A78DAE39B3375CBDF2F14B967CE2B4C59FDCF4753B |
3EF5C707DF76F07E9DD5CE952FAEDA7CC3CDBF75DD1743A319D2FC0CAFC903D3 |
A9ACE6D6576EFFF289271EBF72C59AAE4E99414D87D74A052B78DC807EE20BCE |
3B769D010B9A6742AC4C2980E63DF6D8E3BEFBEE8B03C7683B8C18AC5A5220EC |
D536CA1653152545650CB4DE243CF06291C85A71C8AE817582E9D095AFBAEAAA |
534F3D1515651E345D7FFFFDF7BFF7DE7B43CE7FE560E676DB6DA743CDB162F3 |
EBEE1FFAD08724AA0C167094C951D3982A06D5620FCFD5649CE8D87372B1A71C |
7A5D90100A789052C43FC17EE0A18E3CF2C85B6EB9658B2DB67855F633FCA613 |
B36213318A805C31DEF5432998A4E8360CC6EF6FFEE66FEEBEFB6EEF7947B426 |
DD3C84FB9CFFB0C58038D23E3CFFFCF3B564F64D4D4297848847C84C8771D6DE |
A87C82B3CEA61AD481C8F0F7DBE417A82F2873312B4855DB2C85C092E8B6399F |
BDD88E7F618AD26FDDE2CCB84C3DB09650B3F6FBDFFF1EEC071E653C18F35598 |
9E3E2D10EB684193F5B3AE386B218A783A996CC7595FD611A5EC252EBC34AD3F |
0BE3D1E29411E03B2F7F2126C8E95BE9BAD06F2A4C11100292313288162E5CF8 |
E0830F6AF381290652652D8B0341FD08A6A57150060EB2F46DCCAF3153555C27 |
8C172CE547779110D5F4BBA74A8CCD0F514B482D8D8E9C7C5BFE9946C51C71FA |
C1EFE3E3ADD9D3F19034915A92CED35E8717C48215F63DC265715DB4CD14762C |
9B79DCF10DD53463016C04A9BF0E19FDAD9056435AEB6ACD1BEED2591AD145DF |
F8F6F70D97075795566CFE9A6D9E5F99052E767DEDEBFFE7D7BFD961C1C2BE5A |
ADA75CBAFA9473F4C55277576B6864ABF99B3FFEC813A114D252F98AABAE3AEB |
B4D371736156D0C849694C8314201547C8D160364C4888989C32D1A54C0DE96C |
41889A6272534E9CFE0A8B975E406FD10A1C402C36C25F7641E2A5216082BDE2 |
881CCD0D015C002A058B0167A7D15F2E5B6B0B5CD0FA8930B26C4A6D0C9D087B |
09B10EC03F6063300F1057E01C1841E0048FFB373021FAD321871C72DD75D739 |
1443FC20A6348E8DB9FFFD7E46FBC6668D1FC708469F7436645A5049863C3C03 |
D37E2818A741A96CB3CD36127106A74C7C115D94C57CE5955762621A2106F218 |
3A2F5DDCB0DA7161C5A7FA879CA3871F7ED8602CBC3C4CC2246A5A8BAD814CE7 |
4333994CAA091C4EE1524EADB057ECC39A1E968524F4C676C4888B217A7A1EC8 |
E8A94D6F16EDD2901A7A90BFFBBBBFBBEDB6DBE2702D217B5FA15C34AD462B30 |
C266D12982E0264A4BFF949C95C54DC024E64F36475E4CFF62221A142494B3AD |
9CC5C86DB263DDAE2587613FE4694C3D1405A5B1DC8F67D2841034BD623753ED |
295D2B23F1FEFBEF7FF2C9278DF49786B03E609BF2D4A4B958BBD89F43F46091 |
E9706A7F9B98DA478ECC157AD1413052B8FEA70B23F54F6D62E927FD0AB24273 |
C248B2EB797529BDE120C53A8F179BB854F081832ED775E4577DFBDBDF2664A4 |
9994D5A34B71593BF8C6591AA6ED5A07836A92B15AA5ABB4C1E6B31E7FEC898C |
89AE2ED7A0D2D33BA339501BEE7F6ADB83E7AF2C6DB566E59CFE4A6B76756874 |
F59ABE5D5EAFA9D648DEFE96372F7FFAE98DE6CC9C37A367664F7757BDB7ABD1 |
3866BF8F77D5437D9D9CA7D9CB57ADAC74D71A4363EEED1C26C42D27BE580B1D |
75EC27E670871D7638E8A0832EBEF8E2185BD9466A822747BD24B5236DAC443A |
2CE87277F2B1631AF270B396491240A3A5851C7E8CED2DEB24CD1B3D9C11675E |
4D930240194BE339EEB5E5965BCA00C23642078CE30B8A1EDDEEE086D149B025 |
6BF05714BBC4EC1706AAF27292996505A7EE183A817E8EA137B6532C243038EC |
6EF7F6AAEC67933CC6A72FFE84DEB1081942F1DB6FBFFD11471C71C619679074 |
24EE129BA4DEB713EB33E26D00C2C59E8714894C5570103EBC8047D94BE39986 |
72D1ED4B8B21674772448338F1C413972C59C2E82558755DAEC2BE692BBF4273 |
7A534ED4043AA5679E79E6D9679F2D512555D6C66F054C82F4E6073EF081DB6F |
BF3D1491B298658CB41253E0C4200B83754C211BDB1AD329B6294291F197B4C5 |
5B0C45C6863435EEB30B0B51A19A267D1F1A45D40347913320178C41EA221AB0 |
E46FEC6543086AE3CE63768E119D0AF827E4CC10547EC5D5AD6D98A21085CBE2 |
3A2FDBECEEF685BC33802FC99B26923A8B539D8EE41A430C0D1144A11452C173 |
A0CF0DD7C1F3D017425E0949602A44580E50BF9CE1B88C2B29D8C871FE90D404 |
799D156845D4434EBD8422476D0E099B02A61BF2619308B33D885963FCB85701 |
BF36B330466AFD1BF5BCF6CDDBFFDB0F7F5419286FD4B7F133EB9E6BE877BDE1 |
AF4E99FF8B81A74375A372E3CDB3462BA515CFBE66C136CB72F35CA2AD3E3ABC |
E376DBB446D6CD9BD537323C90B666BC66ABCDCA6B567DF8EDFB2563A19A7494 |
3ACA23F5A1BEEE7113877EBC44A2CBEBF7148B5F60E15C19448C38C644D82695 |
190138845E6FA1C82119BA73F2C927DF70C30D9AF937BCE10DFACECF7EF6336E |
213975CC31C75C70C105761C11FA318F6428228106B3C554953EBF3292E41330 |
ED30E4105932F810CBC3C34B8B0240B2D3F8F78E37D852C6D3D522EA87139D63 |
54A0CC146D423AED70AC082559FD84C2A92543A689D209752A940A2AB23564BC |
F8A7197BFE97FB39AC0F94B0E0061B4612186B18772DE69B33FBBABB3AC26FAF |
5BBB5BC6547902C221A42109E492CE5CBA74A9565C4FA10F891DB5D524273CA7 |
D9BA613036BF8AEB57BFFCE52F1F77DC716E4A83F8C66B7359F9549A20444D0B |
8E3DF6585D4A0FA3670671EC6C891E128AB4984A2944C1194B227385B6E1A228 |
1A42ED372774F446C4ECB6DB6E4FE6AFB855B2C57747D16791083EB2898AE550 |
806DF0841CA772EAC9940CFACE9BDEF4261D3CB742433941CA24CD2A4B3606EF |
E3255C76D9657233F513CDAD556F980CC56B6003CE10B78ECB9E4D1E675033AD |
1734DB3C780CA525D014F7CDF08DB440ECBF72C163CEA1323B1B11003237C82F |
3A07C47FE2E4EB01657A1019A3DEC7268F1EFCE8A38F36657FDC80C89AC06140 |
347A396257D5F7DD1D97026C6D714DBB642E6A00BC84DD4D8EF74B4DA3C28CB1 |
64F5BC85735E7C6C456FB3B316AA2B9275C9C6A176C0FC66CFD395AED0D99839 |
F2C74DFB93058DB1E6686B6893991BEA61B525240436DD64A3CE72DADB5959B8 |
60F36679E6DA157F9CDBD19CDFB5E147DE7BE8EA6734B7CD5A4733A45536B0A6 |
FDF39FFFBCA433057D6D3663FCC2463366C68C8D669C75D2BEAD7ACB4C41800B |
AD1A6FBAE9A6430E39C4EBCB22721E6FBCF146AA64D0EB5CED273FF9C95FFFF5 |
5F87095CC2A1A0A9D7D4C50C2B8462E0F542D7724269DE109F5C8FC188C950E4 |
D560990D39C59E1E96B0093E41DBFC7897C674F4487CA301DDB88D426BF34DF1 |
65BEE600144F170355FFF7FB1978BA49947D8499F934E27075B6DF594C3F5729 |
EA304819D079E79D77FCF1C7C728FFB6976306E42ACCB18890210665C112978C |
24B6404F3FFDF43BEEB8439F9A08DA681F4D10941AC6CF3AD480369BC6274045 |
DBD8844DC8A91E385B00B61311A28C8BB3CDC4190A0988D3D803EB6D37EF459C |
D96B6EABDDE0134A821D118A6323AEFE4576A4056B0D1AD810EC10F5930B79A8 |
1466F338AF40B1052977FD9CA60844459907821EB817DE769FF9CC67CE3AEB2C |
4FDDA47506FE532C2ED9E264380CA3326F705A90AD6B0733C298F1D16839E78A |
58D3182310D39371607474F521C1199428D37EDA69A75D7DF5D5906779DDDD89 |
9EE0926B3B30D0F47379C4975E7A69581F8219229B0B85E7C826378DCD8578B4 |
2EF0892D893819C6C38EEB92191BAC185A1E4AA123E9AA8E760D86E174FEF0BC |
0F6CB466FBD1D18757858D251D43EDC5FE1D37DEE3A9A7D66EB2D5ECCA5A1DEE |
74467FBFD6BDA35ADE68EEECB191B55B6EB1C5D870326B76A33EF4DCE88AD1E3 |
DE7F729030A955870656360BE14E67E04F7EF2939214C0FE263DC984E98D396E |
B3FEDC1B8EA66C5C137463C8CD381B5E206AC8226056F321F6204DBC2DBC88B9 |
EB22102899CC20D6C1EEFF1C2257953D66449FBC0D1AF032E7871D76D86DB7DD |
E6A004C370B716538B7FFAD39F968E9454750575DB9CC47512AC9A44F345175D |
24DB54D2495796B5EA9C84014E2E48D63C68B321E56C1E395784D9B769DE5550 |
1777CCE47FB99F21D89F14471327365CA6079F20AB468539351CBAF5CE3BEFFC |
D0430F317B86D44FE5535E72C925175E78214C1BC652936320B28A7967143E4B |
AC2F8C2FA7DE697F906939FCF0C3BFF8C52F8622A12111E62EA9DA76C67259CF |
EB9FB69AC3143E414C5EC6D2B2E7084D683AF44FD0EE718A92C788C5C192254B |
CE3DF75C5237C473DCE1D38C954E677903C579275355B3D7C79B10ACDFF5C5E2 |
C3A0668B42D7E587822ECA959C0ECC8588EBDC7422A8BD66C115BC78F1E2CB2F |
BF9CBD188A20C611471C71EDB5D772665C94DB56671017BC90FD835CC1615CD7 |
31781A0D7B48737E4A7DC7F538E5A28B7D0C6D262C03BF550C81F511F5566684 |
6C26360FEBE58576192450137D59C71E6D47151891E5134F3CF1AAABAE72349F |
97FFC9F89382C4DB82CFC184F1CE3F450F169B0870178628B9152F13D72F37D3 |
99F3672E7F61555775667DA8D2E81A4BDEDB99BCA1515EB72AEDE96F74374273 |
A0323ABBBC6CBBD9AD8DE7CD4E43D78C15ABD66CB3CD765B6DB3757D74644E7F |
6FB5926C326F83DA50524F9FE9E81CE82ECD58FD68F9843D8FBD60F1394B979C |
3BDC2A39FFA9611C7CF0C1D75D771DDA68D293CCC9922891CE08110D7D52506F |
E96A8B162DBAE5965B74E2B410781B6941CEE1089BBDFC50043742C1298D856B |
38D3FEFBEF7FEBADB76201B818CD3134369B8BD1E2120123D9B1DF3186CA11DD |
AC49DAF982990B62FC37B034FC0982D7935258C7C69C7B4E90C00BEBF7B26D3B |
C548092684302938281B9A36D45C31F7AAEC67E98FA4E05477CA9D909419A4CF |
3FFFFCA54B971248E0BC3B76A4319C70C2093A14309869E44812276FA6AAD5C7 |
2728150D394CB41CA2C032FA8CD219FD55DF97384A0C2303F3AB21D2E9D8956C |
2C273FE301E2E6823EBA53D9383ECFB8637A1EBD4773021F2E15AD8E8C599ECA |
56D2C2436EE54C0E46906164BAA6CC901B6EB881B026765F356F36B26EED9A4A |
B972E08107DEF38F599AD14B4EA83DCE78B7BD185E8CCD90E6D71BCAF3080E12 |
22B3C09D98E6D54B568F4C1827A900C81BC3C048682110A7D14C7686DEE5B704 |
A6622B586BF4A10F7DE8CE3BEF74659929CB3B2BD5B5EBD62E3A71D18D37DFBC |
E6FF67ED3DC02D2BCBB3E17795DD4F9BDE1866863A54412C28F99078998089D1 |
A0A18894DF51902245AA74104601214A110820214014810405D1608C9718EBA7 |
3475F2C1506660FACC99397DF7B5D67FBFEB3EEBE63DFB9C33F9727D6EBDE6DA |
ECB3F75AEF7ACB53EFE77E868702A7284F9B4378277DEE4DECEEE43B24EC4CD8 |
72B709F3A02795B5280D8423017FD6CB4887A83E85AF35A99D4B5A1B93852CD9 |
9E9E7CB9189E5B1786673FFAE8A31F78E0016E00CB593BD37A0070DCAAB56A2E |
CCAD38EDD4EF7DEF7B24EA61004484ECAEABA192E06E138CE4213EBAA281A17A |
C1371FD8DFCCEA9AD90C460EF9DFAD8186E931C54AA5DE9F98B170D7C2AE0BDA |
1FDCDA6786776CDF73D785EF3F68BF2D6B5E3960B75DE77597F326194A92C15A |
A1BF156C8F76F4F435E7B6CDEE23734E3DF2335E3E196DD5E17318CFF7DAF17B |
DFF9AEE77FFF52336A55CAB6CE86C29AF1168A33D53D51070B259264C41861DA |
6D581C189465740775D4093955B19E6484CB6429B9CCA960909A0453AACD4CB2 |
66BC932D3CAD084F813255EA63FC918F7CE4DBDFFE3609CEE45B18C7F3E6F845 |
83AA8189A56A27928EC05612AD936F463CDB6E2C6BB220324ED9709CB657C144 |
913149357A7F92FD0C6949978E915B1773411F82C12B7145504BD926806962DF |
659E77675BF1525C81F1062F23BF125E71CA79E3D37148A43156B0717C7E5863 |
C5D439D90BA82D99CFF19CCA722EA1EA2088FFC16808AA715DF50E09CE243B17 |
9810346D50D21E40F1B033916A9B27BFA00608D66421357CC3F3CF3F9F51303E |
249D0C3C1E9C869B6FBE99C8687BD8520361468F6DADE519EF984F1EFFE28B2F |
C2DB72F5BC9735919F72FC7A0F9F7AFDFAF57852E81B18656A21243A5257A374 |
D494EACC70B4B4C7E5C40897C5C00EB58BB87CC9404208C41D77DC018F154F07 |
C30AB29EE929FC2754CB99679E09C79077E7CEB3157983437112978AA5D3CF3C |
13AEFAF0E80896005FC6A528867CA79F9771C22C7EF622C88159BEBFFBBBBF7B |
E28927A8ABF062F5B84E971BBFD2FAD2E8E3A24389E2BD82AA6ADD2577844785 |
6380ED8C23D74E9B10D0ABA5DD80AFDD72CB2D175D74118557ABD1C4FFBA4AE5 |
715A9E42FE431FFAD05B6FBD4584ABC2683C33C247AADE076AB6EE9B7CB91C8F |
56BD85B3E2839746A52037D66EF58DCC58BEB656EFAAB707F2B34CD034B9B7FE |
7C71654E6EAC366FFE9CC48BF7DE6FF9E25D17EE18DC3677DE9C52A9F0D6D631 |
BF15148382976B4766A83532140E272B2FBCCE5BDF34F9B0D855A98D8DB51BCD |
7C1036A3B61706713BEAA8D461BF7866E6F1A70B2EB8001E30F5AE4A85950DE6 |
79C60F21F4D7AC59C34EB6C41AB92C7824F872A9504C56EECE88073E87ED89F9 |
240684502B698229E5293F175C47711E4D3565C57BDEF39EE79E7B4E8D97A9BD |
A45A1407977F26E8A7C9CA77A67CF94EC73D3ED7A5975EEAF6DEEA005E7B13D9 |
1D4C166825C006EAEAC9279F544A86F5377FC2FDCC6A3582B679CA0E38E0803F |
FCE10F7C6AAC1AFC094C3E3636A34F726844CDC013210D21E8973484F2F9CCF6 |
4DE76BBA4813165D426F2D59B28491A8F17A02555431EA2299F88E77BCE3A597 |
5E32599B8E1B6FBC116E291503DD2E8A92830F3E1806293C9D294740E425678A |
7017D21E901B92B7C35FBFF4A52F417C63583BF109A8C70402234F3D932D26F3 |
5B71710C0F73A7647277A56B746CB410E65AEDD6AC99B34C18D033A5B4ED4800 |
4C795F62C2940FA0123259D522539DF470B1489C493309002A714FA828BD6976 |
4F75250277986AE52FB9E4921B6EB8015FA031CE2DA57A056932712EB17C1A1A |
42C732B00D382B63D5B1D9736C7577BDD910E84D9B49BC75FC4F9D587EC8680C |
6E81C190DC543B847CB4DC8B3A3CFC1319DBE3ACC31A46CE0824B71907C9803E |
E31E2C1457DD934943196E0526E14F1C3923218C296396E1EDC5519B8FE939BC |
ED5421CA12EB79958AB030BE46139A202C16DAB5FAEC43F6A92E9D5935EDB0DA |
6A079562A55E58F852A350A99706F24977B955361BDFB5DFAEA506FC8C7269F9 |
FE0774CF9AB1EBEECBEAED68F5ABAFCEAEEC1E0E6FEF6D8E553C6FA8564FBA8A |
C519F9FF7AF5A5073F75079B60D79A8DF156A029D484F952BC81FE86BF484F4E |
8102D67F3022CC4210173824C494F6C995575E8913C4683E1685F48ED869871F |
7EF84F7EF213952FB84C732E2F102D308E6A279A40E9689346B1045B50B501D1 |
35C4346BAA494DCFE0890C231DBA246BF1A4003D6F319D44F332E264FC040254 |
187F166FBAE25B1ACB6577D079E40C30F6CBC14037D4D2D79F643F4BFE709E61 |
B890DBA79D75C16CA42F05C488BC8AD2BE78AAF2F1B2DE7914114CA731D4490B |
58915EB7E674CA7983F8229B2CBD6D3D9738593DFA1D4CB0104F42A24AF2CAB9 |
201339264A1E92494210B1E9564E0A9F816C6A72577C9B2C0FC99D3AE575AEBD |
F65ACC028997F1F37BEFBDF794534E61C2872C8018335346F2A498191F1C1828 |
168ACDC6F865692FF1CCD0C8F2774A082A8C10F79C9C1893DA3EDC2B500CF019 |
556D38E56C2459EB2B82A9794894B86E679DE45460C1E00683572E25C6B7BEF5 |
AD934E3A49D56DAC5A52F188CA6AF02F0C1CDBC6CB7854C09044F00CAAF59A5B |
684A77D0FDB9AA22E8EF2BE62B9B942916525A42FD4300B90FE8399418126AC4 |
0E6230F48AD82FD064947CCAA970C7B300CAA4C5D8C71C730C660CD7217837CE |
9AF40A7362E773D0E2D02AA5D2D66D5BF3B9BC9732E2A926880E78EC341BE14B |
E45F453F8C02AFE52571D29CF781F78CF6E61B4914C6A66CE6EF187C2D3FBF5D |
D9FBE581EA32D3FD46C9AB245B172D195BBCFB92A5A1F1F7D973CF5DE72F2C15 |
72D4CDAFC5854ADCDFE70D5782AE755B5B8D7CD760B4CD1487FEF9B86F045152 |
AFDA092FF7F48ED6AB5E62DAAD569846CFB1462CA450A717B695A7B676C1FE44 |
BB33482DBADFE5CB97BFFCF2CB6410C10BB6141C62653BF180BBEFBEFB6BAFBD |
261CB371D87BB8A5F11398A53C984ACB898866CAB3EC391DAB5C6A6B93B145E9 |
16847EE0899805757D024587A451DA59EB4DC57FA63C8F91D3AE47B5A8262B89 |
571598EB0774E02CE423EA3BEAE887D9FBCA57BEF2A7DACFF83ED697725515B8 |
10778A23511AA8B522440D79B44C0AE20AB2F69104B9C21EC5AF9813F29C2E93 |
26C3DCB38E55C9A18E1745376786F3A00E1FE393E3F641A4C52D1C924BB0C708 |
0F9509930C2A6F217673272CAC8494DD77DF7D10611A37A92E4961846975ABCC |
A67CB97D8FF9244AB21F71C411BFF8C52F34664C19B4026699D33D6B866D5057 |
1D1BF53D0B3EC9974B14C13212D9E07E273C1EB498F8D4A436A4E69748723BA8 |
749C1C57FAD031E4CE935013E48934AE0CB926595B445E9338332E0DBEC09D81 |
9F7CF8C31F7EE69967589D60528C390B8CDDD24AD38EC651A729843936097BF5 |
25594DA98B94704343843CBBAC292C0771AB9998D83053D542B36E8B6740AD75 |
445E82CFB54032095D2654E64578473EE9AF7FFD6B1A5978407E3E9EB13466C1 |
FC055B36DBAFCD9E357BCBF6FEC58B17E316D4D65EC630415D2B6B54FC1FF879 |
29CC57FDD8CC2ECD78CF816326EDC08C096F15C2D2E0586393C91F9C3FF8D966 |
B3686A03B37ACBF3AB27618E766CDD74C2311F9F35BBA75A1DE99DD9F5FADAD7 |
E705B30B8591D81B6E9AF25A4C89D7B7EECDD5BDA5C6BF7EE1B64ABE12E1609B |
10173729255D18270A7F90DB8E96292787101A763BE12E65040FA3A52660781D |
1BF2831FFC20763EC308F4B0D9C60EFFAA42556BC14417A50F3E6101A3385C19 |
9562A2CED504DEA4161AFC5C81668A5A061219EE6789BEE849B86A2E71AFC95A |
C4B0B85D6C310C647780C83B5E8C72E0EE3004EFB9E71E6A26EE1641C25C5B5E |
D003A901A1BA59D749440CC51759F4FF24FB39CC5A1373C002404ABE437F7335 |
393F6E42D864FDB7B9AC2B56AC8063076D217C916E87EFE387071D74D08F7FFC |
636DF829E78DCE077E8547C6A5F0ABE38E3BEEE1871FD62A8F3760E3C293794D |
E00A2D6787B326FFDA957DD38D80478ED0208C1B3B9B9B987829FC89C06A8AD7 |
9DDB02C6716F29A76840B1B48FC9998EBE2B769D8686ED2CF76FCB85A969DC1A |
8F309A4C4F8AF56CCAFB7283F2F8A9CB072EC83EC6F40D99B62222A2E33ADA52 |
5C634CE9F1C71FFFED6F7FBBA3C04FE28F9F53FAF3AF24A2F8C217BEA0DE17B4 |
8519EEC7C6553B0121FF884FC094626CDB366FEEEEEAB64D5A1AF5C00F20E678 |
472D2E7D2C2EA83FB17D101F5094EE5466AB56AD72FD3055D57778D37AA9E81A |
1BFA91471EC1D3611E98A3A3027305071B3FA913BAC938CF2116F1BC04FF3088 |
4403054F5A1D1D6BB69AEFD8FF006CB00D1B37044E05B8498318ACF79115AC24 |
C1B88CF34CB7971FCB1BFFE06585DD16B4ABF556A3698AB9B85DCD57AAADB165 |
89BF098B975FF47CD808E2EA48FDDEBC81182FE74CB3F18D271F2ECCEE7A65F3 |
9BA3517D8FAEB9B56864CDD6B7B635DA03F55C5FF7C26447757EA178DFB5D799 |
AD43855692F372A3A6852BE762AF1CF949D9CA14D843D833B49D4F3FFDF4BBEF |
BE5BB2C3ADC3320E57A5100A9887FDF6DBEFA5975E524DAC1A28F2F1D59D4DE4 |
B2AE90750BF1581F204D2044409235539ABCAC54544956A5CC5FA9D451DCC89F |
FEF4A75F78E10568F124239253FE8CB81A2969A1B74D96419DF23CF2E4329642 |
497AEDB5D7C2AD1173A79BE99529A334861E842126EA0FEE3DC6F4FF84FB9907 |
8D7DCEB1BED8C9309B3EF5A94F3DF1C413D40A3AB9C4E3184771D2CF203406F2 |
0D7BC0C57CE32790E33FFDE94F594446065652F809C339F9E5E2BE4C5AB8CE1E |
8BE3FB81A29056EDB1C71EFBE8A38F92AB44B41B8431715E048F314EB6C72578 |
99FC5280929B153BE3CE3BEF64E899A60D5D01EE21EAF6E93401E3981A123F21 |
9E0C033BEBACB3E0D9317C4C54C09A356BF0F943FFF4E0B1C71D3B7BC64C5B5F |
3732DC9512D81A8706990C74D3F56426719004933C3BA1D43192952B57623B12 |
21E02288DDAD3919E0412DE267CD25A4565DD23D33510D0BB5255A957DF7DDF7 |
AFFFFAAFBFFAD5AF72DBB148909635C40AE60413572E95ABB5EA9CB9B615EDC8 |
D8A89C44C6D6285F64DC09F2E84E02B9577965B75CE38E3BEE209BD5E493C3C2 |
4BF6B3350E2701EE423C89CE956BBABA0FCEAA3186CEA914CF3EFBECEBAFBF3E |
CC5EEC4B35363AFAD8A38F1D77EC3126CD8850D3B38EDF458E6357B341AEE790 |
F7D96769B77AFDC25018F51DF59EE19EB0588BA21A8E72E8F983C9C0C272DF60 |
9CCCA88FEC28CE6C7415FE4FFFF3A5726292D883D9E9E70BF566F3BC1B56BEBE |
7573EF82F95D8DA859339B37F78F997ACD4F211CA37EA15E88B66FFCC53F3F91 |
1F6AC012AEE73DEB1334A24A62C69C9A4446D25987C8F7B45865B0334BA9D88B |
0B70A04F4F2B84F64A94354C75E9C7291319B2A039CF7010298B45B2E656E474 |
444D3BB034425E421BFDF18F7F547337C22B556C2CC75D14E8D2042AFA3BF0C0 |
0321C8789A20F52013B973A63C8F0C2C4B86FA591BC40EFFDBD5047C2388A388 |
2E1873A3F86264E9861B6EB8FCF2CBFF24FB995A41A0127F2243304F2B578DEE |
02058B404126D3A6500918B30B27A314C2E34BC177B0124C396F02CB2928C43B |
AA7B8AA7A831CC13DC58A619B12BBA8D0A68DD9A4FB9843BC9F0A8D9375D303F |
6D668411D05190C714653DF03883935F44CAB3E6851127FC561E25D3B6A2CFE5 |
4FC66D1C9C964A17A343D6F4F0C74F91A66FB7DD76833C7DFAE9A7A7BCAFEC23 |
39E0DA64DC52780A32B9AAF9498726E09652148E36027E78D965975D74D145BA |
14815842ACBA411EE5DB1540A052D4DA2BA0E70AD37146A920E3E384F115B53D |
073E81A78613FABBDFFD8E3B4F65B772A85DBA8E242B85D731E0F3326CEACE18 |
F7A2A26D0266F869A308FCF5BCF3CE83EE140BA100634986FDF5B2EE78828824 |
59D70721C775E402CF8F93381F8478BA30085B49AC0EA9C2ADEFBEFBEE586518 |
A7D4E2B2AFED249BB82F0A07FD66CFD17F369C54F351CE6FB41BDDF9A4D65B29 |
6F4BC6BA43AC58657470DBEBAD575BA616FFD9A717BFFA5FAFD6075A85766968 |
47A331D8BCE7D1EFAE59B7F13771BF3F5C18DB8493D234DD3B46E2C1309811D5 |
FB76CDFB8F5FF1E54213ABD04E7ACA51BDEA457E4F648653D1A4DE236A9F2936 |
66933934507E50B7949B6EB89FDC3EC6A996126882348E784658782FBFFCB25B |
04236CA897150F1F71C411BFFAD5AF845D9E4E13B8E2D5CBAA76A0BDF0F3679E |
79063F219BACDB2FC1ADC2491C7269AD2F594CC8E6CBF15F72C925B0E7768286 |
1439BC688EF8435E5CE2BB03B5E1CA749A35E487370E7B18BB71A828F7FF713F |
271950D52DF87733F6AEAEC2368006BAE69A6BD42DC0E5F231194482507B5D81 |
CA95B916715BED447E12D242039AA17E575C786EE311F5C072954C471F1FE1D0 |
194FD0C2BC1D6F9A98A06794864D0429B34E3DF5D46F7FFBDB83030310CD9882 |
9151BB89C3F424337CA1782E5D10118988D41B6A0DC6296109260BDEA9BD9110 |
086E6A051721484E285A3E234B88992B53999514A15BD1A3D9608AF5C20BCF27 |
1880F3363808210E93BF554CF121B3665A92C866AB3977CEDCADDBB6CE9C3173 |
FB80B5D3E1A9E06A548DB4AAE85A3151C13A78EE6937702FF4B7F60721804C73 |
0919E96E2F6D7DFCBB64C9124C17D5B0C9BA20703E19B5834C6793106E77A5B0 |
A4E085F5C627679C71C6EDB7DF6E176E6444F685483E60D3AD5FBF9E4FC77E67 |
0C50AAC3A8C91245720A19DD167989C96A0029F544CCC944BD68DF5DF22B9325 |
42498449B795139B648545E4C42593819B18EB3233467B070AEF307EAF658EEB |
090B71908CB49B7EEEF07CC5AB265B93E6F06EEDF91B9F5DDDBB6BB2F7D1F317 |
EC5870E33F3C33AF111DF1E707FEA667BD5917F76DEB7AF765678C353636EBED |
7AAD1DB5ECAD7381F14C2B4EA09C663D7FC303734ADD5BEB23C5382996BB06A3 |
9AD788CC54003385B0244CD5C2850BE19AA202DE507970A2DC9A09CC39330198 |
6D8598F139B6192BCC295FB8C35D222F063A602590829FC3E071D05950BB63D9 |
2B9209534A2279C61D2117B7DFA412DDB409D84E874E39943A6B1D18CC119247 |
A4E5EAA4C213A14A059386135CAC1DEBAB795F3CD739E79C035780EA53901E99 |
1AA4DBC190945710691281464AF28B558CB62FAFE06564361D785657045310E9 |
D00938A7ED21103F1D97F14B25F12CAC6F7F7F2ECD19D8B4104E284E41ABB5DF |
FEFBAF82979606DCE0EC7775778FC24BAB8CB362B0D3F21B6FBC01778D49110C |
C0D2FB738EF6D9679F2F7EF18BA79C720A0B2544DE4DFB4B7C06AA4272230C5E |
D623694A4D807F19FC828CC0BAF2645AD84430CE0A1941F4A7117C6BB4C4D1A2 |
342E8CC1616AF6DF7FFFA79E7A8A52927B45BCD966A24FD4613270C7487B33B0 |
2E3676EE48710D528642C03DF2C823D4DB8A2A08D12F1B59F461975E6AF19DA9 |
0886C5EDA7A1F9EDC562BED568DBE2A01DDBEFFFE6FD30E50606074AC552AD5E |
DB67DF7D5F7FFD75C510D5CB421B45BC5D8C990A9BA10A3E824618B593FD8E67 |
5496D53561B40484C0AAB49876045D0A2ED097BEF425218085B76118CA4F99F1 |
B9E29ABA2BAEB80256AA443F7117EC0C831FE23B0F3EF820361259B4882C20C7 |
9698BDA9E72874B8403C81CCA44D0E0FCA1F5552874BE0C2C0F186305FC908E5 |
8A05223CEDB4D3BEFBDDEFC212247129AB700BA6AB51189DFBC19E516F386A98 |
7C0C931D06A7A90D984A5F172CFFE6487D91B77CFBF3C35E6F7B9FA3F7F8ED8D |
CF6CCF75CD894C756CD5A2D3FE7CF80F23C97F45BB7DF63868EA3068E70BCD5C |
3E365EAE15959BED4A3B82BDB9FDE55B1FE9098BC351BD109B5CB134EAB5CB91 |
5F6B35BD491588F2C64C56556E3296A1238F3CF2A73FFD29E7B0836EAB63F595 |
44650BCF8F7EF4A3BFFDED6F313F2E470B2787F3A9303DD34BC26163183093A9 |
84BC8CF6913A983FE79ACA2F9FBCFD3A3401AECC6809A3BB5C445C9CED166834 |
E03B279E78224E22634AF4EAE44F73C06A961538CDA275AC5CD7470217C79F94 |
9FB82066F2FBDFFF3E3EBFEEBAEBCE3FFF7CEE67EE4C55AB314A83F7B82F06F3 |
A94F7DCAA48138D5D8D2B1A02989CB8A079081567A00536A022F6B22CF6A384E |
3E4F1966F26FFEE66F60251B8753D2B541F165D203DBA736090E6A3ED5438424 |
5114E3D61FFEF0877FFCE31F6FDCB001B214C2A1064111D8FA155E47DC186EBF |
1A3B63AE82E28CE3513FFFF9CFC34DD3E4724CD4190A6B1A2728E606E93AB602 |
D3002A2CA4E76E8DFAFEED506B9EF1129310679DCFE561447FF4631FFBE52F7F |
49861C78F4D05D2E56952F25840516A6D4661512DB4249E5321E85FDB4EFBEFB |
BEF2CA2B4CC672C10287769F3B952639450FE6081BE5CA2BAFA4899A64140EE6 |
ED9E0D7032180484EB035BC39289CEEC9BB565EB967466EDA3F1A1EC4948E36F |
2C2CA439C62DE2428919FBD6E093ACB5ACB8252825D5902FCEDA494E1954159E |
9A8DC2E988A8391F7B1AD3A337595F5F3E2904EBA5E94B7C35D2BEE4B2679C9A |
A754EDDB5C27C6C5AA13C2CC1BD180C0BF4C0BF3AF34D93A2A0AD5F9920242D5 |
B07A52156118A79539360CCE89CB9FA1D0B0B622F51C63323857E79F79C915B7 |
5D1C2FAC4140CF5B5082453F3C5A0F0A6646CEAEE9986F4686CD8C60F6C08B75 |
936BFEAFB3FEE2675FFCFE4060666032F2EB3F70D171BFFFC1AA91971BBBFD7F |
9F186E0C15FCB8E0B7FDA4D18CA3A6976BE7CA7158EC29F9AFDFF15877BE3CE2 |
4715D8158157F3DA9524578BDE56782E3847B84C7A818953938809C7DE161397 |
22EF248F634D59EC90EF3262899F28A08417AB820E3DF4509C3293315011BCA4 |
DD887F7FF2939F1C7EF8E1325155094CC3DFCFE8E2DFFDEE7743CDD0AE22B078 |
279A00C790E96B5A24D42B7229F0271E40425AC990E1675DF9C4214AAE0885B2 |
19DBE1F1649D265759659E82B7C8CC67670BFC8965F9DCFC449A48F50659F30F |
6D459727436DB5385DC2BCA9644F699BC99A60F26975EBFE781C38CF849F3292 |
418541BD0E296FFD42CFCC9D37CFDAD6D80069B62C4C0386D5B1B1F90B1658CE |
70FC3CE3D3B4C663FDED0630B829AE0375883FC125BAE79E7B6C11B1D8B789B4 |
C12C271907963895942E27CF09275A79122585CC449FC038C8198595D4980D3A |
2A31198B5C5A13542C585C87F13DCE3B5791B24C6D6C5945E992D0054EC75457 |
277594530B71C1091553B9C9B21D181884889752C532C1882B5021B93A40728A |
B627C39AF839D69EAE8CDA0F305A259641423CF973F6ED8354B55655D3C650BA |
525CA94D82351A855458877E205E789E3179636257571492E5851DF14D49494D |
8E106C1CA708B32888B963D8A7090FEEA2B3680332304DBFE1DA6BAFBDFCF2CB |
2BE90B9B9E5B9FB87526FFDD3C878C7738286C2AC743454F02F346674B9BC735 |
E455B749A784D139E5B469EB89A64D382817F42203D62D633669F2C0520234BD |
286CECF317BB6D6D6FDC3E5CEF9A018959181A6CCC2C87D5C176D0ED55FDA4A7 |
5D1EF87DB57741E5C607AFFDDC0117D40353689A28D7FF89CB4EFDD1233FAA6F |
ACEE7EDA07B6E7927CAB94AB77F963611CB5DAB9E1A43C9C94AAA5F61E6FDDF3 |
DD52506C1683EE9637D6A8B7BC76A1EDB58309DC885A3B5939F4A8281166CD9A |
75DE79E7C1289135A09E5F8CAA992C07CBA9E3CF313938A158D0952B5732062D |
4272D12450D7D2DAC05DB09F6120737E1854A46942A79C611C26DEB9FF692026 |
4EA3AA9D68028C878FC3251335349D7E76D7B8FDF6DB4518C75D8A2F60B9D9BD |
CBA49DE994FCE7D6C5E2629C6CC5A1FA2785A1DCE24437B6C6BA7DA6E8F15CB0 |
7B70903106FC099326FFB223F5681C6E707C190383C024E888F34978249D839D |
44873412A24589FDC5E958B162058E95C95C67997A148678EAE5CB97BFFAEAAB |
445DEB522C9F64883B5F2841865827208B0BD93DDFD73734B8439010B7530B56 |
FC1FFEE11F6C1334712A2559B106B590FBFCD454B404199114AC48B6AADC5233 |
D1456058030FF9FAEBAF9F7DF6D977DF7D378D8EC0F3E107D070A62618379FB3 |
29730397AC8B93EDC0757599095CC89DCB844595460D7FFAE9A73FF8E0836497 |
15085A892C575BE098E12E0C6ABBCFA24D2031C7FDA7D437CFE77DF7DD87F9E5 |
4A2B0778F5D557DF72CB2DB8A3FCFAF17ED39532B437B4792BB3144AAC6FA8D5 |
C582D7CEDA992A48AAEDA5789D5074AE4A66A2FE8C33CEB8F3CE3BD952839B46 |
ABA62C9108339856A2D097F3C4CDC05DCBF7244C1790CC4B89BDA01E2EB8E002 |
DAF8DCB898107C08D7EA80030E80D855B08E8314EEC08D6EBB7C47EE8B0BA12A |
7CAD9A1BD7FED8C73EF68D6F7C23C9E0ED221CE55E82322633078D231C3F9CF9 |
3933176C1BDA64CA668F0FCCDF54DF5C4F4C313405BF38D0ACE71BF9DE193D55 |
6F241E88ABAB5A0BE7CEB8E9DE2FF744B9F77FE01325D377F98D970F26F547EE |
BBBFEE0F76FD65F7681F9EA7AFDC9ADFD59A9B6B553C180FF1682BA9E7E3CAC6 |
077E60EB38F25E975FACD6EB719814DB5E2BF03BD480043A5D162F23D9C69211 |
128A0717DBB3F0029861124F9A2CAFE876FB62192DA5392F485B5E49662FA3B1 |
22472F7384E49D3CF9E4939F7CF249D63A312583DD48234C7DB5F09DDB6EBB4D |
3B0AA375CBD727BF846E12C5A94492A0102CA767C010B7A65ABAEBAEBBB0B5F0 |
A45FFDEA5789198539A5F40984F221871C02EF84AE673BEB412B1B4E614F5C9C |
ECF7BC69478B0217D787F75FFBDAD7B075F9D4EAB488537CC51557B0598DC9FC |
547A154CA5B84DAB266B02CA43C1C479EEA40F088F66C193DBB25BA11796CD2B |
34AA7F29AB71C13DF75AFEEAEAD5B3E7CCC1F537A56980BE94DD2F178E77EDC5 |
65B91918A6934E1A2F12C1CF202FE039C26D7CE18517785D9C1C8C1B261B0F15 |
6D7F2FA5C9A637401B900928EEDDC946815BE5B4FFFEFB3FF7DC73E3B875FCEB |
F99C6228003F4580047E10E6738A45B20253320BE381EE952B40952074142951 |
376CD8C03A350E18862A5785839754D501A08B6DB2BA01CA56668128732910E9 |
1DF3D46524D8E3A1D80EE1552C17EAD4A069CACEB60FADD7172E5AB46DCB56EE |
3CAC0ACF15110BE90A98729A2BB6DA0B7F4AAB79E3A6C503B05DADBB95B9D558 |
5EC0D039FB57F018BB72D3CB2A62185893A7427809E324F80EF4162C9120E3B5 |
C691F8E31FFF6826B5D57EEAA9A760B241DCE3DF279E78422DD1651E32EA42F7 |
C53DE42249E553B02286DC1BCC46F0E8BA91469E16C1636046601DF186CD1BB0 |
0730B18C8DD2033369BF5C5761F84EA77233A92086C55C3433878646FCD08BBD |
68E961F336265BF27D264C72F5ED2D7F9129548BCDAA198BEB5E2DC86FAA3436 |
D40E7CFFC1977DED93FFF9F397FD70269EE7A1FBBF35F6C65B957796ABFB8C25 |
73D30860648276A5D05818561707F5451E4E7AE18D6D8F3DDB1C1B6B844921B1 |
A44349684A6DBFE11BD727700169B031D914841167BABFEE2370C26927AA0537 |
63B69C4966EC71C2598DE139EC610CCBA87F3D4439842C89D878E2082FC10F71 |
3B1637D1F2A35455F882679F52520CE73BF1091415A091CE0B2A0648CD2DE343 |
94F8ACFF60045258172508F18657C67FEEB5D75E3096C5FECF9026074C7BC5B5 |
3612A7E0DF647E277D4756817126B1F1B049E42EB3B887A833623DC9F68C0FA9 |
51FEECCFFEECE73FFFB9719216534687449B4A6782C152F23275D4964B270992 |
C3B20FBC819059BA64E9DA37D7964B6568C7B33E7F163E5CB2EB92B56F6DE865 |
F7F2560B3AC0F644A956F1268E1A4216610064F7214A1B4F67C591B4A21A4F8B |
7812973BFEF8E31F79E4119312C0617762C7E0CBCC9813B00F097BE491473EF3 |
CC3384EBB9CA40D34DCC86F6046FE4A7DE405F6FDABFA55EDB6DD96E6FAC79A3 |
5828D61A6F7741E06F19B35ABA74E9FBDEF7BEFFF88FFF801C21DD0DEB631930 |
1172603C283691CA42FC886AFE876784C85BBD7A3535301D1DB69C24F5074527 |
7E0869C8A428218CDC8269D668837AB17290C4681B2F9E917607133B34E4F7BC |
F9F3B76CDA2C1B9FA9B9F18DE8997C4A1644679FC1CA06D4AAF1784D6E7D2F65 |
9550208E9D952864B9C324463BA273F813C5018F96EBEAB9EE94BBF9C86AC7F0 |
02C6094F0E3E3BD506030BF832CE0006E0725C8BB49CAC672C8BE5E38800190B |
F7DEF7BEF797BFFC252681E44B3CC9975D76199C45669E45FBAA8479877B4E94 |
05BD10B6E7A6BAE26E5195A9EF109253D0B0845B59877123B4A7BB3E5A8B93F6 |
AEEF9D539D353C1037A21133BBD4BDC38C94ABB9D1ED2D33C378257F4E7BE1D6 |
97B79A7A73E9FF5ABCF68D75068711AAE02D2BFA677D608FED73B7CE9C536DE5 |
DACD82819F6BDA5E585B5C692E2947F35BABDF8C7FBA0A0A7EC46F15CCB82680 |
4F00DBA7C38713E51F0D26ED1619B6EE5360079E7AEAA92CA0A138935C939171 |
D34D375D7CF1C544E2F11029A2AD1C8378D71992669E53FE168E0C3FF19D3609 |
6ED74CA1E05502FDDF6A02933985494657C77DC85526C0011B861B1B4FEA7246 |
090E8B2D8AFBEA821D794A951F9A898DDE145652B852C80B52C0BA1D6139CFB4 |
74E9169F76DA695FFFFAD74D563B26E3039340FCC585175E78C71D7788AC7727 |
D121F6AC3DE288235E7CF1452A1B4DA6CB43ECA6284CC6504945D2DBDD333C32 |
0C356043CA6926F2B1471FFBE4273FD98A4C4F5A328563E0A59622F61EDE78A6 |
FD36D7560A02A6B3454D6F833A7E460A6D26167CF30C73193871DA01EC5D237C |
21FE930685990645EA4A4C3DE1E245BB40A199143F0A21F2977FF9974F3FFDB4 |
C58626E33725068E479A447D2C7FE34D79CE955D11EDC901071C000945B397A2 |
4D5E27ABFEE83FE23FA1579E7DF6594254B911F944EC46CD6CAAA4A43A197015 |
E18ABEF8E2EF89642506941BDA66D2A2B4D6B7D1806E810EE0BF8562D1C40921 |
DB49CA368A9D0727F7EAABAF6E9B848462C303035E7A42C669C5A2987E1C9F82 |
92EE9C73CE81C4C45A1041814B710FE9B44C4691426E1E78E081DFFBDEF76474 |
0BF725882A29B2F15C34DED5A85232889D2F19D613E98D7C35CA143A4C471D75 |
14A498BCEFC95F231C45A1FF952B579E77DE79E4A492CD284097CAF10878E0C9 |
84DAB8F5D65B99F2650F5BCE8F7C3BDA9B1210AED32635A0D2719C220FB66960 |
5A30D40F307DCBC2EA8E76B1511ADCD69A5B58DC68D782A5AD1DCDED959609EA |
C6CB994AEE1D737AF26FD5FF4FAED208D6997263D9A672BEBEAB176EF9833FDB |
330B4AEDBEA41DD64D3309DAA69498D1072A958D76BAC67CD31516C79AF5A410 |
941A49DD9B00A6941AC0E00F3EF860F8E56E672E1A2B2E5E5351C1B3CE3AEBF1 |
C71F67218B402F38E4D75F7F3DE6560CF56A81A9C32B69287C042D368620580F |
CFD48238EEE585BB057124F157C9DE74285233910C8E6149E2834F38E184471F |
7D9448273C239CD433CE388352C2649062F17DBA012549798147BC8CE28D9792 |
3F4A7E17F620C197796AFCB437C38F7EF42372DCBA06BBCABC459DC4B484BAAD |
F1E0605434B3B8AFA48C95EC99AC095C8C3B7E75E28927DE7FFFFD0C153064C4 |
6DC9266E6EC9B192D298041BC509C2A1E1A1EEAEEE91518B10B55097288D7604 |
367102F9D3C3321D1E041B8369D22160D644F5BC1C1B6330E3F63B6C64C850E6 |
21E9B3332645A5413E51B79C9DF84546B8B4D8EA022A0804E433ECBC7476ECA8 |
B064100890E4EDC48E8F38E538E3FEB6DB3D6AFB69640076B1FD0D341B14B50D |
2585BAB568FD6D4BC8B151A543B148CC6F734EE9698AD5874838ED279638D098 |
C5D59889EAE880EAA5643B747768E412E6983EE69B5E2678A5F9D2C3DD522324 |
6EA0F17A28BB5FD92563A85CC611AAF7F5F50C0E0EDFF7CD6F42BE33F4C1A3D8 |
6102CB5AE4BDA6ABBD147E992BEDD249D1DDF1B36641120126C3054980F2EC71 |
EF2A40E9B21C1BA7ED8F7148A5DCBA24DE5A03204B1ADD358A0C9E135A7F82A8 |
4EC79C35DD4B66573CB1B72239BD891065CC9DF57ACA859889566D21DFD56856 |
3DABA093B9FBCF492AC94832561FAE752DF2DACDC44F4C2117FA3695D28E3D63 |
A727CCC52DA8EF24F4FC2831CD284872F9B058AA877BE5FC56BCF5CDA8345278 |
4F5F35DA6442E3174C7C999D2BAAEA206B27E065F544F890054DAEF4997A7DAD |
0B6D82102ACD8BDBC98D37DE78F595D7D8486629EF62FC495F8C6D3C77F662CC |
7FB53EEA199C1D2F3049105A1F6BB8D6320956B00D6734F0EC3F499C2E7AD0C8 |
001C9E497CE7CEA9F5907E8095F732E5154F9F1976FFD3CB387F44D902D9F7AD |
6F7D8B747BC24148D5294FD951C42AF0251611FF897574E9FB25C17952848B65 |
629C6CCF64F46209B46A895C496DB29E3CB40BD98A871D67F1A7152B563CFCF0 |
C36EF7376E7897BF44C41B53022985441212043F878CA561472F8107077781C1 |
873B323FC46A6A59A20C9C26514C0CE88E811DD94EB6D2C9B26665D41A0246FA |
BE6FA679B941334F3116F73C9BAC04439D28689D3182C183B470E142A853CC02 |
AC752800F5C1C0375961E4B64351A677DC45E8AAD433590FBF941057E8771881 |
B18DB1589166C367A3A3B0CF9BB5DABC85BBB057BB4D67B169223413AE90C454 |
98BC2C341374298727CCB2C988BC310C7E998FC96A7BE1F1DDB8A190AF345185 |
8056188AF69967DECE90130A552804E2E6A3A74916D938B24975CC1CD4401A80 |
82359422051B2D5E90D515B43BDCEE74DEC4D7746C1CEEAEE57960D08C351FF8 |
15240E513AFC3E4E144D6CEE7E5AF47CAFF42335C184BDE2F418E15F695CB00F |
3B6FCD181437A2DBC78DB34A1B0ACB74F8E187FFEC673F8332568EEE7FA40954 |
A9243C315D280CC9C5DAABD1AEEA924C9674C93C1E7839B946AB96EBF177D963 |
9735AFBCB5E0DD0BEB71BD59DA61719E51DA63C64B85A067FCC0CAC5B86D5302 |
794C806F29E5622F847A28CF7CC7D01B6F95F65B38D6FF66F7E868ABBB161DD8 |
57886BEDAF26020D13CB20514520B9164815FB533E6F772FDCE2513C76CA2215 |
B59BAD28B6508B2048E0595E70E1057BEEB1E7ABAFBDBACB2E0BD7AFB7794243 |
C3CBC70C7879AB3F52182506EC055642A632DD3E9125CFC03783461B1362F079 |
A60F30B761BA28F8A1FD534AD1947EEEA59A2CD95905D9949A80D83FFCEB0676 |
F412B08D50516E2709E50E349A5E6E8E97871D22028BCE923AE60B31BDD75C73 |
CD97BFFC65527589D85C77548C54FAD8B5DC1592A525A14A859B6FBEF9A28B2E |
625ADB64B5602E1DC074F3134C6CF4E27A3990EC787C8E10E626D1AEDCA82E57 |
6B5ABA186ACFD8A4D7E8786837C8E225FC957266D3C98DB757CA64AD8D191551 |
F300DCF8B0C30E83EB44DBCD389073E20492ACBF3915FB789D5B6A8C43AC3092 |
6319482A7D038303811FA81D0ABB77F60F6DC33AE78BC52639A720EE31F51874 |
324ECC446EA90B2FBC304EDB71ACDBB459801F55B1E39A7367CE58BB76AD4A39 |
EEB8E30EB8961D951D8C3833E670F6D967C3FD64001A8FC9351E4F5DA45B96A9 |
303CF5C68D1B396085B95DD01424488726E08496CA39F2C630356F320563392F |
4B9801A8D2529AEDACF317498669637E4284ACAAF577C36E727EA73B810C3532 |
648F7FF120ECF44D0DC7E6C3CC67303A4CC12D2E1A57F4BBCC74AE26102E9307 |
F5CE3BEF3CEDB4D3786B46F314DA16E48C263F5D071D5DCEB98846A6E37D9AEE |
C5268B02D53CFAE8A3C71E7BACFEC4061594200C72721E30483CB574BF3DB1D6 |
618D31775DBD4598D026ADD55F7AC8B2ADA535F64445310F298C623E3C04556C |
DD03CC8FFD3F16238A2154FDAEAD85FE77ED6106EA73FDD933DADE2B4FFFC2CC |
32E6D825E57BB731128D6130516FD2A8081512D6087A71D9B265988A9DB3BB63 |
D6532CA0F5696C72ABD55EB264C9EB6FC0FF8622C4A5B0EBEC35E7CDEFDBB265 |
70EFBD9786F93A6442B1942FE5731E86DC6A4456B3C53B8647ECD9895A7655AD |
DC0F7CB81B493056B54B0FFD02DBBADD329895F11D0DED113390E567C38BCD4E |
5F93910B5EC64BAFE2762A45F5BC6252D7E53BE00683A8254D349D3F6E48F560 |
30A903CAADE5C2C9E410507970A711364AB1C0BDAA069671465ACE9F2B638A2D |
F4B9CF7DEE861B6E2025140511230414CD6A354C05E09243748083B5B28C4189 |
30152FD8D384E1D17D113DFB29A79C42209C8BAE36EA04DC6E136C990B738CAC |
8CC70CDA2DDD482777324D72C7A80CD926147374AB1EF863D10910602B9C861B |
50C303903C408407784F9245AB574D9E24DD8DE644DA67AF95CACD142713A5C5 |
F7B81A76B417546BD562A158CF3A0AFCDB0FFFEDAFFEEAAFE08977A7397D4C41 |
39AD2383CD99EA8F1A45ED38CD4ED6F68B8911F50050241103C3D74833C2764E |
78040682B024DC5E7A51E88BAF83EA84412A2ED084A94CDFDC7EFBADE79E7B6E |
6AFE373809FC49ABD9ECEB4D1DDBA141BC214E77786478564669C7DD49BB463B |
C96475A7EE4E9A7245E9F952DE61721E78E001E83C2581D9ED800D0674659C40 |
365D223A45CC651D9A800310E1920C13A1E2B801B467E451D18592252E1205B7 |
385CA1BC9DB4A99A4EDC68CBA903142670E5CA95975D76197BFBB8D5D72C1782 |
CCC5EA6B95E91C847E00AB79AC5ACB17C35AAB5DEC2AD4AB8DDC3B4DB92B1716 |
C25684498BED64182F6E475E984FAC6360E9AC93D457E07AF424E18E5CA56BF9 |
BB77FCEF4DF99FBF31DF2FBE951B28BD7B51FB375B39272CC765AA8CFAD5CBCA |
A0E42EAB7862AAE70DD22F584D853DEFA507269D4033776EDFA6CD834B97CE99 |
3D7BD6EF7EF7F241072FB516D2FC320CA13007B111B7DBF5C4BAA4891F782355 |
AB094C4AE36F18DBF7421B3D6AA75889566BAC5A1F1B6D0C8DD4C7AA4D1CD95A |
8BD68A17F8B971D475D43649E4196FE7ABD3A109E80051CE62B72C5DBA14FA5B |
7C537ED6018DC69680E9F020718298BC24B8830149189A7FFCE31F69BCEAFB14 |
A06CEDF7FDEF7FFFA31FFD28D34B34E4C5CD45C36E3A9FC0255F22AD1059254C |
8A1381DA265A1D278BB4DE8C8E72842E2E6832AF4647AAC0A49619BECFFA59D1 |
EBF211442E30199425836CDF7DF725CCCF38E56FA2757245FFFF8DC3ED29FF43 |
431B2F0676DD2FB94FA8D3CEA25C1C36CDBE99487B9BBDECDE9D337BCEB6FE6D |
A5A2F5DF87868720E813BFD5C81E3248F3906C3359C917C9B3469E062C64FFF6 |
7EBC692638008D7C5A48C26F16E1365AC6ED2EC6FD698DE2734A19BA6C340D5C |
0644CECB9E7BEEB97AF5EAE38E3BEE3BDFF90EB1287C2EF5AC800ABCE28A2BE0 |
91F0DC12A926861FE2FD3AD6D81B2709F1D8C3402169C688BC2C90072B939059 |
E803CB0119B585EC14F7116FEA1EAA8E3CFC4ECE1EE42C06496D8DDBE129EEBE |
FB6E1C2722A6E5C912683877EE5CEC69C5D3944C36595A9EFFE9659D3A4CA68A |
148BA4ED4F838847420119022AD44D819A80E846FC96D1AAFF96A560BA179381 |
54F9D237414636EEF21B2E58B0802A967951FCCBC0A06A4A71E34AB154AFD742 |
3F2C964B43A3238562BE3EBB599E1356FA8A118E64924AE718F6A35DDF346A12 |
47B1B1068C4D7DD918673D32CD6DA65099DD78BD59D9EA154CB0C30C4277C064 |
9B4E13507E313F6C1CA6F4299FB790AFC036B2BC26BD3D3811955258ABB5FBFA |
4AB8D8C040F37DEFDBFFB0C3DEF78B5FFE7CE9D25DB12CAB5F7DB9A717672DCC |
E521FC71AF26F401B442AA1BD2798E33DFCEF3B9D05D05DBEAB5D1B69A60C7E0 |
D8D6ADC3FDDB4746471AFD435613C43688142626ED0D9EB42D1D6B326D672A33 |
153A96DCE026C39861E3114EADB6282C8CA2B4214E9DB60BC3983220B8EB6898 |
9ACC1D67D94494F538123D092351B802E696211776C9553DA6F204EEDEA6F460 |
2F9A24E36B611B19FC7BEBADB79E70C2092C87A6634DFE09258D19D69FCEB2F1 |
9C6EB53CF2F8B9AAD8F805E6EA31B08B2FBEF8C61B6F7431207C4F100D34C14B |
2FBDA49E6B4ACDCA099319B7139FE0ED81E9FC330D80473DF2C823FFFDDFFF9D |
9E148904E8D188288ABF2406D96484DD2CCE26C84744D8A94F90A3D3877D9C4B |
5B4866731DA81AC0641CD1F62798CDEE1E26A8B113A133F879B5DE304EF09AE8 |
B7347FDB304E1E86F16E6D3BCA6EA90493253F3806ED27319FF03AD085F84FEC |
57F9494CE330EEA16E731D9A403722A3863C4A8A2A9C413BF2385AB674193328 |
CC2B942B2593F12530C02D9CAB99CABB9C4E13309F26C756905997138657667B |
673E05A76B9C002A9DD5E93481B469872620190BF304D20A4419E05E3818871E |
7AE8AF7EF52B9E0D97FA58CC45E259FC1F6902FA04CC0CB33ED6EDCDA216781C |
391FD00587F049AD1029970AB97CD468D66A56887CE3F66F5C71D595FD033B92 |
A2C9CDF6BBE614BDEEA45D6825569E268CA804396B9063FDF03EF461E9045EEC |
E70B413D2E0CFCFBD0410B971D7CFC27FEF1EF6FDDABD8FBE6587F90E1143BA2 |
433CF018D889279EF8E4934F92E6849F4FF3BC41319F83AAC509C2CED87BF92E |
8B172DDAB869FDE24573214A162D5A10841088F981C11DAFBEFACAC848DAC7AD |
0B86147E046DD5B420C204DE5E3BF0DB36559CDE060B980B12E806ABDEB09FA1 |
DE9204CEFBC0507DDBB6B16DFDD5919168A46AE0034056576B098E601CA532C3 |
56844E3D4ED9C21D9A80A07BB627314E40954749149B423373815CC267F5A871 |
F3C9CC9CB9E1D920EDADEB65CDFEEEBCF3CE33CF3CD364BC00575D75D545175D |
E41E5BE18C4DD673CD753789A4222DDD641658D127AB672DAFE6FEDCDDB17C23 |
E3529DDDD4D386405E5C841B588D9D4DD6D5CA8803CD2456CF6DDB56CCCA0B72 |
A4A61819153BA18CE09DE49F264487184097DEA0DA64EC98FA80D05A7ADC9C11 |
A2BC19F955AC569B40065AE410EEB38C0247F7D1471FFDD8C73EC6DB77003459 |
B14D241CC1E942B286619E25B2621BCD76DEDB381F2915B799B0DC25ADBD381B |
38E3F8179ECD2DB7DCF2E52F7F992C75C2243CF5D4537FFBB77FAB8B70C93900 |
4115DDBBB81253F59614CA33FB663115FC9EF7BC079A9C9499561374955C6A4C |
E324A6B481DC54C17436A3FEC4C921FD8302622C801409A8D24752693228A6CC |
137859B9964E38A928F1FEFEFBEF872C334E3D01694A15FC658AD8385A1C3604 |
2684E8647C81B8E6FFA94FD0C18B491D238A11FC7BC71D777CFEF39F7773C574 |
5E5D923BFBF8B0ED53B4734FD98211760C0D7ABEE99B3963B4BFDA2EB4CDCCA8 |
302FC8CFF29302D400CEADF19BB6377494E6633105A19F8F6B71B3D6CC75ED52 |
FB8FF5F9A2196D9905E5199B5AA3FE8C72EFA6A15A56C3DF9131664D25DEECB7 |
DF7EAB56ADD278A6B5DD122FF0BD4231F09276B315CF9F577EFF61EFC5E6EF29 |
976C562FAA2F5CB860C7C0D6EDDBB70D0CDA7C6CA952ECEBE9EEEDEBC24F023F |
C2179AF5B15A0DF2AB6EF95CACE0C383373DBF158410A9716B64086B1099A8DE |
4EC6C6A2A1D118D2A956374984630E2B301C1A4A76ECA80E8DD45324A0992E3A |
144CEC18A37D4B4D807D887F190E1571080BC72852B125C83F2A51CB1DC8181A |
4BA0E92274E45D29C7983E95716D321655069D7071FC90A821FA918A7FBA3E01 |
E51504C24D37DD243DC4BCF1B265CB60FE32338A1584B8A0D52BF630BCC1E195 |
08E22D4CE6A74A36BA3E90F83054FAC7EA364E08DD776F52BFA0309F5329B5FD |
792A3A2C5A348A65FE76F050EDFCE5C92B51908763C571C592400E3EF6D8631D |
ED594C8697FAE77FFE674881246514912BA0CE47C938791656AE9A66010C2C97 |
0D1B36A50F6F91A22E570935245D1BD15DA991596ACA8D431B93AC096AB65DDE |
0611BAA503784F8DA5B836AB04B078F4C719AC50DC5CD0DD5D3232547C812B8D |
4BB14D28CF3097D90DE57B0ED0F39E7BEE39F9E4939560103E271F169AAD6621 |
5F808C5EB7DEF627EAEDE91D1A1E82E7AD9E442CDF3393323C6EF4693A4D80C1 |
68BAF80991E39C5B8CEDCA2BAFBCFCF2CBE98449B273AE64554D4E4CB9184D69 |
0206B83903F48ED942DDD5D02603F61024C3F0111FAD830449D0D5FF91263059 |
3F038A12C61928E8D50D5B64E3BC91188798C11E7783CAE5A8D52EE482461542 |
3B5F6B3469F376457D7533D6CEB5CC4253DAC5F85D1E35461EC21236763A25F9 |
5C908F0BA383D5E60E6336E64DAB596AFB79130C05ADA0528C86EB4BF7D963ED |
FF79CD9B0A454A37C877FA76999DF6EA9AD967F182589F05F3BB61E91F76D8BB |
7B7ACA9E9F84894D06CC9A3573EBB68D38FE5BB66EDCB66D0B16B3D295EF9BD1 |
3363464FA59CCFE5F1408D5A6DB45A1B4D5AE39C3F90F17152B38A2168F9011E |
D4E286F0688DC8D45BA651F71AED42D40ABDA43BF0BADA516570D06CDA3CBC79 |
CB8E81E1A106ACA0F87FA60964551C73CC31102912B86E5F748A11D2E45D7DF5 |
D5D84BDFFCE6374F3AE92459ABDCAE02FEC91470C1A6824EE038BB94917EC6DC |
2E6FDBC54C4BD47272A460DC3E5FCAA2F17642FAE1A0413E90B01AD6E4CA952B |
E5867668025659AA2FBA9E42C28417A428563851B225769AE7582E8666B38C9D |
3C36E665AD6D2DE8C678AADC5620C44C1F4B781B0F2275C7E2028C00C63BF51E |
C68AA9B7347569193A79A04C86EDC5D7DE78E30D4C0D04196902E9585061BA2D |
09DD82144A10BA7ECC9AD22B74C367BBEDB61BC6C3208397159AE2E20CE8B380 |
50CC42CA72971D375C07CC4DBB7323BAD45D0A9AD36D97DEA696361932AC83BA |
40D10C4542B8C324C7192B647A568F4F3A7EAA71ED691A863A090233706D3A74 |
2A75958B6F9335C18063075CC185BD6A9608ABE00170637D7A2F7CB42BD671AE |
60E99C77DE795FFFFAD79979C31714675397154E919B10165C441CEBAE93CBA5 |
E4D27029D5A28FBE202F486DA16263FC4B0241E3D0F46B434B4F63C752EE0BBA |
CE7B2559FB0D1E6993611C4C9661126FB638E2052EB429C4036BF9A0E841E227 |
A54D6BB7263BD233147B3913BAAEC615575C019B8064329C01E217CF38E38CBB |
EEBA4B84E70CB19E7FBEED758163682DD05C029D134798D53E1CF2A38F3EFA89 |
7F79BC54864B0279618AA560C1FC394B97EE3AA3B71B12A6000D164429F6ACC0 |
8ABFCD9B37119F5EE9C9F7F65466CCEC2E157100EA51BB66923A84898D0019DB |
B5C84B5A89697BB6B0C0A2A702E3B593B4BB245C8FA09098C02288DA493E981F |
B58AA65D191E6E6EDCDCBF65C7F08EA1767FFF58A36D0B832C50D51A79B8AA85 |
16D985F33D6E72D7B0989CF7EAD0E5C669DDCAF09D97D5A9119F23FCF1F5D75F |
8FB9D5D622445B2A81B28551970E6D2489AC0F691904595F019631AAD58F7B28 |
28AF346C3706407C8A2B5B495F860DA36A5C2FAD50A329C07D4E51E0F69390D9 |
C452A4030F3CF0F7BFFFBD0E3B452EBD19B62C75B30226A3E9B46D0652952065 |
430F8C3B135E3BDBC5B34D8D4B4369C44A4D28A11B5DD11185058D038FA9B9FB |
EEBBB18F99CC51D7A7EF7EF7BBF01BA41EDCA6A9EE4BD824F7466AA4C9F23446 |
EDB1DEE41722ADABCC5559763225949C74214F22D6503185A24371C6EDCC9E30 |
AC0191A53F79CC54ADBA94CBE84021FBE94F7FFAF1C71F6781381E1C730A4D40 |
4828D59B1BAED1F0A409DCA66354363222BCB4CE9EE78499586218848EE52A46 |
93BAC549F399ACAA401D71E9D851F931329664F42C026C7859E51A9157444099 |
2C01F88E77BC035BB0634D5DD5629C7625240B529D170F2D053D3EE1D7B885D8 |
85065292ABB920E5D4C56964536808746C5FFC8BEFA88651DAD173AA66743269 |
0A481E918084FE812D1FCB1A9919A7916C876929B61F757712DB7932BFD9EAB7 |
3088197D3D1FF98B8FFECB234FD44631455E62C683C82C886589250B355863C8 |
67A7E89725D8412A69493E8A411366B9ADEDB2CFB578D1C2F51BDEC22396CB66 |
8F3D765DB664D7AEEE4A609238B11C2473E7CC325E2BB54F0D0DA6C1C1018CDC |
6E8C5CAB5C2A7675C30F86DB697B722651DD4684E2BA5D4F13594D90501340EC |
26ED3AF4009484F17C63F921E1ED2481DD23716FDC2C98B8BB3616F70F0D0E8F |
4523A3C9F6C1C6E0703BED2C9D06D96DDAC08F53011B84E3F1168607D5DA45BB |
B4C33855609D8D9B2497496288A973D16E3CE904BC89B0C04C6CDBA7459427E1 |
0A019D4A45E7DDFD60B25A4B9283D2CE6314C8F5CBDDF76401221F0CF90D791D |
B7ED076C26E8302C34841BBC6716C6BB093C5E870281DC88A79C72CA430F3D44 |
C18D0525D325E3F61FFFF8C7FFEDDFFE0D6631C4328BB40953C4E99601272E23 |
5CF081071E58B16205FD72056F6903B16B0B35A2A70C09A51B9D35689275EBD6 |
C9A5E2E46ACAB865F157B214E0DEB82B3FE1CEC627B83ABEEC8253F573F88627 |
9C7002D75B4D3BF5C245E84029D3C0E430FE842B431F427928A362B21E7238AB |
7A63264657DC689DF681A88A4CE6932AB826E9C97A7AE60312A760CF644179E8 |
6D4846E921C63D79116E083715AF9E441A55987500E7B4BB21027661539A911C |
738CF5D30FE06F190157B346E3D8C812943A81C2D2B855FBC44860B625A36991 |
D10011E117638622F6509A8B2CE5AE32D6647EF6B39FBDFFFEFBA1DD091CE26E |
53490A6D029752ED5BDFFAD6F1C71F2F7E6CBA5C8C3E290DCE11D20A93C337D9 |
F4E3CBF232A65E8BFC3F42B60F39E490175E782149893AA83354450FA3895CAD |
DC7526F3CFF0FEF4D34F7FFAE9A7ADCFE741D8995D7759B676CD9B0BE62CD8BA |
AD7FD1EC459BFAB744C1B8EE9742E55A2828619CB2236635187564790D5E3871 |
3639D9AAD76A8D62BED4A8B7ACF16ECBD8CCE2C5F377DB6DD62E8B16627AE13E |
79091622ECE9AEE0A4787E3B8DEF35188BAFD5AA4CCF7881051AE5F326F471F7 |
5ADCAE45B18DFAC7B1DD039E2D348B3C8B808D21FAE110D4ABBE75CC6C78C484 |
F954A5F9B9C452A3E7E266D14BBAE228A836DAAD38A8370B0343D1A66DB5EDDB |
07FAB7EDC0B2A7E67140883C2EA8281C2E023311226CD5AA552ED790AB12583B |
8635A2C430191E441C4A7846E84E980214FD984FED76011CD4C9CE38D5097EC6 |
A3E3260B1387F0DC642C0E102624382249B5DBB79C3A9BCD1C6538BA41D48E68 |
1EC6892FE09AB495B1C4975C72C965975D86A7C395B98D95205118561A5134E3 |
1417CAC95139F1A0E138107242AB4EE4B20CAC31EC21E64A9714122A01DE2745 |
3F6942A86918AAF16466EA6831F5C1BA67C62EBC147108639F7979CA687C41E2 |
98F110F69D48B2F600C4FF10D1C8C886DA282AA2CD6393648DCC7880DD9638C4 |
9C747010CAD653B980E4A08B28703F97E5885F71CF91F94FE9294545E4A6D11B |
505C4801776E0221D9F91E5B8A2606252C5D1945B1F19F279F7CF233CF3CC35A |
279AC364B86375955BC3459A555804C71E7BAC6B33320ECE0108C84430BEDBBA |
B223B3246E03CBF5B478316419857539E5BEC65FDFF9CE77FEF6B7BFC560088E |
26E6C7259960C130BB35D0C9551A4A61131962541B7884DD76DB6DF5EAD54AE6 |
2B0048052045A52995EFF2F5AF7F1DF614F6096507C987F143DC1A9B4D3C01CA |
76B8D1308A5D3A979C7FC661DC4D8533F6C61B6FB8A15E0AEE76D623DA3DD898 |
2BFC8BE9623E1C8ECEE8F6D1B1FA9867FC62DE6ECEC84479BFD88C2DCD906271 |
E458559985443F550B639B1497B7DD761B0EA7CC5EFB74B52A1C022E2E8471A3 |
D958BAEBBCBDF7DE73EFE5F34998531D1DC6A8E6CC9E095FCB0ABB829F9668D5 |
18466B34EA7486C27C2BC53735030FFF091D504B62CC7CD3C443E99445264E51 |
A47EB6439AE5286EB5A334859387699C4F2B3072C6CB45AD5C687AFCB0D08EBD |
242837DBE5A1A178DDD6E6E6CD5BD7AFDB383838D26A9B183E46E25970693C4E |
2BCB63251CC194281AE32469052FE6CA62BAB05DB185F835C9135A456EFD0AF7 |
18179464B75871C52463A7F1B871BA8BFB59D31BF1F2264E2B1B12309BAC108C |
9BD3B5297529C62A98CD6652906176EE73371E406C2885679291E17B4EB93EC3 |
9E1277AC012257123BA650D6F3873C086EAC58412D655008D2610801FFC9BDAD |
9633B8A30AE5EC617463023AB149C6D7CFD6546427C639813270C9408C9343E6 |
4BE093F9F3E7E3316011C030243AD34BEB44E01C89F24196BB6255781836FDE1 |
14333A14670D46D8BB072719D6931AB0F1F0D30965EE9A902F6F22FB87F6C15E |
7BED05B5F49BDFFC06EF972F5FFECA2BAFB05912B14F5448EC12ACB60DAA3DE1 |
9092AC1908EF4BAF48C14A85A714CEE22E8178127AB5E3E51E12262108D9E2A4 |
41325E7EF9E5441371E175BA0496752FE22678E9840AD1AF0655AA8DC05FE178 |
C264D3126805F9656A355DCA0D4609F422F8364F8E58A178C2A96FD85F487CAB |
628B9333C42FF000B07858E80322CA459ED131757C85D98BC63E1E079BED631F |
FBD875D75DA7D274DFE9F64CD5ABBC056E8159C5543CFBECB3ECD3C0732588E1 |
DBE59AC65F306FC1862D9B1263A72857C86FDFDE9F8AB4B76B474CC6A347C382 |
505D468D48ED47F5433C1E0D23DC142E26E653AA3DF0FC5CDE9BD957D96FFFE5 |
7BEDBD5BBB3DD855B272D0528B17AD5E0C52D6874239C5F847AD8C9DA69E8C77 |
8DB704AB5E82E5863268A4859CCD24C24EDE21DE8830F56FD20A2BAC5D17F444 |
62DA7E1015F261A9544841FA052F97376D3808DD61506CE3E98372A35D191C8A |
376E6D6DD9B2EDCDB51B366EDE3E3854ADD76C81050C272F19E7205168D138F4 |
569335814AA85C100EFF446549E6679C59F288DC77DF7D7037692D6156E5E9EA |
D8B28E9524EDC2F074E8214E11C749A03CBE79C20927FCF0873FC42D38007AA2 |
4A3B2997E0DA5B78C1C2FBFEF7BFEF6A265C106386A013553006B660C10212F3 |
50BE8BDB2DC87AA5A8A88BD2CFED2E25E7892A41FE37633398197C81470626D4 |
CA952BF19E44D334F985D1703907D5AA8B61038BBBD546C77FF0B48B6E9E241E |
1D34006E633686B4C6D297BA71CA2D30292015BEA1480D4D86F65572D2A44574 |
147938BDCC40B864642E384441587CD34BDBE6D04C209C8096BEE0225AAA0E73 |
C0A4B15ACC20FE7DD7BBDEF5B39FFD4C91076258B933E80F7959BB2BF5545124 |
DAE586E42EDC73CF3D61718B8A2770BA7E72E14DC6D14D058E0F498E163B44CA |
323AF8BCCC856024DC551434D80178CFE1A9E04B6171D9DACA7BE371F0B098A8 |
33CF3C1316A899D89052905F950473A2587426AEC728EBCECA44083E39ECB0C3 |
E04C40112A14CECA32FA0DECCD80F7343AC447ABC69C1D211DA69AA942542884 |
69845D0315A58080F6C064CD279F40D109AA7385FBF09F44C761FFF00DE363F2 |
BA5422A32A2132EFB3B402C60D2C2C1B35093D58DE854A3E82646D585366F62E |
B377BC351ECFD441501285DA917B9E054ADC24E79E7BEE4D37DD44C9858B1F7A |
E8A18F3EFA286E55B11D5146615D7495F37BEDBD6CE9D2854B97EEB275CB9BB4 |
031A351B22C8A75AC7FAAC396E98982BD54EC906D2FD5FF50D447E33F0A3C06F |
9AA49EC4CD3869C1274827CD56426077843993E73EF1F29EFD6602CBB054CC11 |
1A5ECC15F08D04666ED88D276BC2E4F72BED76CFE070B26D7B73C78EC10D1BB6 |
ADDFD8BF69F3F6FEED6369C18FCD75FB59A930DD50CC868ED8E4E81014309B7C |
F1C4719F530A618341316B7528227072B12EA451E126A7AB27C797A686DB53AB |
C3D89299CB2B9F76DA694F3FFD34D69DECC5AC1FE64F089127FFE87824DD512A |
4946AACA3DC691ABBA3EC9BA2AA9A5AB80335ED632C838083DA6A68E3AEA2868 |
A3242B7556EDBDFC15D7C0C577301594C6F8136C4DA81F86F1D9319ECE0D4F2B |
CB3CA5455803405264288F33CE38C353BC5883C327D8971896143265044BE98C |
D3878B53EFC628B80BE9C4B929752F6593C75D38351C10E717DA123202033DF5 |
D453A1F0E18043B8F0B4C7196BB97200AEB6C4B139E59453049377D971DDC8B2 |
8BBF74235726F59ED809873C740AD2E16BB6D3B2433AED063478591E6FAA0DCC |
3E9EE2031FF8C0534F3D454014A536452D13C8CC3D924DBE83834185D0AE7054 |
C60CFF62B5C487BAF7DE7B33CD3E25215747BA98D3E836409794A4014EC801B7 |
859A7BF079D59F84CE07CF03E38FD48E4AFC081922702A3712CD6A467829BBE1 |
90C13B11F387484FB9E5D6AE5DCB489438E370911B6FBCF18B5FFC226E8D3585 |
03C7F1339467264241F4721104DA9FAC0D74BB5B5360F1B48B91C664303337F1 |
C8591A87B1B59A7E004FBF343A9A4AA8D0F4CDE81BEC1F2CE5C7B72517D456C2 |
6778470D0C4780FEBE2AEC44E5CBC979FDF5D7E38827DFCC99555EB868CE1E7B |
EC52E9CACD9D37CB4B5AAD66343C3464C3A4C552AA3B939C1FB452DE79F803CC |
4062FD69A5E57336F21306B117344DDC88E3B1A85DC317BD64CCD6267849E827 |
500385BC6F5DD09C6FFC280CF0807EB110E40BB952BE58C8E5C3209F0479DB68 |
3C57C1851BEDD80BBBE364D6582D5F1D6B0D8FD4B6F50F6FD90A7DB07DDD86FE |
ED3BE01A5843DC4558F2C17936DD35D2AAB13447275D7B49303FCD21930184D6 |
C85467B728B23A2BEC2E13673AE8A4714AF7930CE3CFFD8FEB63BF4138CAA191 |
7DE04D85CA171A95BB0506102E822D7AD75D7741BC12A8432B4DF45FAE34D77F |
527E620FB0D6552CAD9C04FEEB72A09ACC8B62FB498C1F178732601F6F930155 |
880BC5444189928B0CD3CBD6B93C95468472CACE49F2E212106A3FF8C10F4860 |
093B48CC741C1CEF814BE3FB8C5AC815A077C33925271D03B5C6A9DF7303F1EE |
5C3049C2F168395DA744615C294372EB7FFEF39FBFF5D65B099EA339E976FC91 |
95AD127F615D8443A7DDC7023FBE79E73BDF09758A6797B44D9C526FAA7146A8 |
4CD6DD53C059B785B2DC58A97411E4262973087C2677870944E4A5AD69449DC8 |
05C29B9B6FBEF98A2BAE206F1296960691C0D493F304AA2B56B95C072C9A690C |
17EA4EAB5F0DBB09B051C88E0C3049CACF2AFE77AD1A9109268326AB98803373 |
CD35D75C7BEDB51A1EBD16AA4C65A768D3B19A040A8CF1315239E198E1915DEE |
1317CBC1A99358E172B7B32E89321ED9A148F82E8E841139F503104640D34859 |
66E33CA3D65668B55BE17819D4F64CE70D6BD37A19C657C0988E25A06EA62A75 |
71F129A40AE38740A92CDD75D1FE07EC357B76573BAA75F71493761C78FE78EC |
344AE968226B8B8C366A69C7C0D10CA410509F75978A90EFB930093C68F7B166 |
6BA4D51AB3E5C2C622886C557410E7737EA118E4F3412EF4BD7C3D6733CC39E8 |
0648AF5C900FFC5C60FC245FF4A3422E2CC79EDF6C457EAED70FE737EAF0E6C3 |
5AB531385CEB1FA84213AC59BB69DDFA6D4323A323636FA7F118D3272ACC0D15 |
B89A4045B00C3E0BC24BD2782E1FD43F9D60B7CCD8644929063318C65018D3DB |
6961ADC92239B31DD62F72C28B6C8DF906EE2297C8DD7D29D8103ADD92B98548 |
61C94DA58DA1BC85C21562BC90E683347BF0C1076949CB5357D5857C6255A850 |
6F31692AE386E28227453D38190156FF575E9009605C8D5439E321637620C01B |
4ED0EEBBEF0E6FE57BDFFB1E7E4F950E610D13464E131783E60F55B4EF348F35 |
99EF43B989D7BBDEF5AEDFFDEE77C6A9B72683B1F2FEAE1A3459774CD576738B |
07691F024A049AE49C14B6D7E0FC12D4A4181CE55D9C3538E5FAA9531D2300F8 |
886D1F023F305980A5D16C84A91BEEA271F8506E20853288760145AA0229B48C |
F07D587FA4AFE0CF69CB402C5E77DD759C1C21AF88B0A4C662DCDCA4B82969E5 |
8B2FBEF8CB5FFE32E3EFC6418B2A104FE9CCA09C1C35D1487006947683CE7BFE |
F9E73B8C38B71247BB50CF4BC16AB2AA1CFCEB267E265680BF1DFAD42CC95F36 |
591C86F4007873D555576142883765F81E4FB462C58A7BEFBD977BC6CBD82998 |
E4A741C0201E14E4D5575FADB54BB2363B5C6E1CB0279F7C1206170182EA5AC1 |
7A37EA1EE578A6131F9E0393EF90684455D0DF4AB22A21A50A784D32D88C8B15 |
CF822F717F682E93F66B6A47E9D16DB60BA1376F7EDFF27D97EDB9C79299B37A |
20923D98EC29D83FCE5833A3EC852B334C6A491E53CC0C63B64188D314D87A03 |
3F4EA26AB339D4680CB6A346D21EC3AE09C224674343106106FA003A2384F51F |
FA85BCFDCF7C4A6CEC61C5120B0B4D9282E7770561C978412BC671E80DBD1903 |
B5B0502846B1191CA86EDEB263FD8681B56BA1FAB7355BC1E0E06862FCBEDE99 |
8343909EB16D0E1A472636DAD8D4D6DCBD6EC341ED79D77757489618395A27DC |
6F227BD046E5BABB34701D186BBD7133C9EE01A70CE5F67623EC348C78C693AC |
C4951B8CC3108192E2C6F8D581071EF89BDFFCC6659FF6A6651399A29100138D |
B0F48F3FFEF85B6EB985CA4660071D67DA4CFA893045AAB921D3A27894158655 |
C592FDA17C7C9710869763FB1492E788E993C958E255D9785A315C495E97175B |
302F2CE441071DF4F39FFF9C6678D645D6FE969C775C7832F3C91BA2F5CA414A |
332BBD49FDA63E4422B7EA782291D2A8B19F9B4831A9DB0E5FB83F4DFD912CCF |
6EC47265AC3A264DA079F733BE75DFA9B9551482F632EBE3E92DD19DE28DF057 |
FC27CD1056BA26594F343E2961275A33E8F32F7CE10B26C3C651C39D7AEAA9EC |
F124D924D52B1F0253F4D9CF7E16D6B4369F02291CFF59679DC58621EA7DC836 |
559C16359671437C533EAF1424ED38F690E039C7247383D265640A47C79BF871 |
8CF0BCF3CE334E484761196920EA2A933A85E40754E73B560E332ECC38325D5B |
510D2BCB479DD121D3C51A824BD1F064388ED4F62EE25BD69F620EF211F96251 |
12F7AD5A4212D1C05407BB2E4B6C4152C3404F8711400DE40B30A7462D435C10 |
CC9B3373E9B2058B779D376B56C5BAB8290FAAEF4DA0F1E11EA332605F0A32EB |
D1E8B16949CFFA7C052B1BDB49040373B0D9B201A2C0AFDB963521A6D7CBE792 |
5C3EB1EE50E025612B17E0737CE2D9720293B251A464D430C68C57F1FC7CE441 |
C68589E9094C6F1CCCB21E47ECD71BD1E8687B5B7FF5CDB7B66C58BF65DDFA7E |
ECE54F1E7FD23F3DF4B0856CC11B889A119CF5429146895B55EEEAD10E9D4A5C |
2FE535D70E56C297BEF4A5238E3802B295C84E2E34259532BA1DDB72B20EE09B |
C8699AEDE61115AEE086A455CEF060E0349777DFFB59030002826912912E82F6 |
A2DAB89A69424C666261BF3B54F2DB43D0B11FB558EB455B89CB625F7DF5AB5F |
BDE8A28B18E72418810F82616072D4E0CBEDDBC8532F8AB371861CFC86103D22 |
79B1A14D5A72A90480C0DDD245C71D77DC6BAFBDF6DC73CF19A7B0D39FD43CD6 |
0551414613534FE38B96B5728954A7D4AE0C87B18060D5AA55EEDD2941700538 |
2E70503A18CD3053B7DF7E3B26858521F815FB63503488D3E384134E78E8A187 |
6840E1B25643B65A10FD36AA13479F59F199679F7DF6B5D75FC3278DD678C4BF |
23FF4C6137A56414741D9F430309EA336FDE3C0685252F701176FD950D0EE317 |
829EF8651229B3ED86D230B8BE5C2B8274299EA8DB896A657DA3DAA2BA5E9AF6 |
1946C5C1C82E200C59425F907F7AD91DA127457558D6C86CC4E1871FFEC4134F |
B0DBF37857862C1AD601A723A9243BCBE35F4D0B193E18A627B2DB35B2C8DEC1 |
F023771AAC6CC1A2F0A79B6EBAE99A6BAE119A39709A37F19AF83EDC02EE199A |
110434BB981F6550A875242F841470CD02BA479405D42254DB0A70533773186C |
024873A1D5AE47E371473F2D2049FBCA41C47657F659BE6C9F7DF79839ABE27B |
6D7C924F2B0EDBCDC873AA25E416103244AE7FEE646E03328FE673A1E5228DEA |
710435301627CD42AE6AA34639FCC9CFE50D34413EF4A01B82421CFA501E5003 |
B665417A8C5335801BB573516C0BCD9A3166099BB6076E7958988FE1245EE0F9 |
580BD84CF1BAB7B6BEB56EF39BF8F7ADF59F3AE1E43BBEF10F26AD34484CD4D3 |
DB3D3234AA242AA7CB8D17A9328019239C149C8BA79F7E9AD51EDC60AE2C63F5 |
9C9B2DA055E75AF7DAF0AEF075F37CDAC96E3083562F6B1BB181F12FAB656551 |
B93A46D84D658979050E0C9B0D560E09EF28DFE8F198695EDEC4173F24F7B5FB |
35DFA1FFA2714CE7982958DE9A9F7FE73BDF81943669EC8BE949BC81CF7DC619 |
67C0CF807050E03D603F459D7FDDC9DDE8140A2C62E26F703FDC298D4E56B9A8 |
8C98EBC0B8811405E2757DB7AB839A7560BDC9244E3663C1992EBDF4D21B6EB8 |
41544D620EB07D2BD3AD4F11C930821A525E7CF1C5B7DD761B56052ED505175C |
40198AEDC22FF3F0F04F26238EC691EAEEEA66A206AEC0899F3AF185175E58F5 |
5FAB822C6ADCB1C33A5ED20469ED4FC498D549279D74F7DD77BB706093D129BB |
A5CB1D31318A605A46B4A95D80B622A1B8239B9D6A0C3866B48E152ABDE79E7B |
CE39E71C6A41FE50D96F227DF12F93ED84CA60F6C8F9A5781D535E14DC1DF14D |
656219823CF1C41331E7C20EE10B38CF8CD7D14EE72CA90DB27602A500F6284B |
11E9BA51DCE38507A4FA178DE5D2A54B3FFEF18FFFFDDFFFBD78BCD98E9CF3E3 |
EA66CE834B666032E60C7C78FDF5D7DF71C71D6A4765D29E88C6A141E46F1546 |
70D5BF8EAE2AC34F3EF9E4C71F7F7C975D766119B69F5505329FC91344885D86 |
644D013CF62E5C1AD3B6FCE4E1AE8BE71DB0DFF2BDF65E962FC6CD06CE579C4F |
B756DCF23A925E74FFE9F513392D98868D26E72CB997D507B6134D037694891B |
B6B56A3812E602D818450B108DE116908BB450C26326F63F03C8EF54F14313A4 |
E4D3CD168E3C9481D768B7EA2DDF243D81D75BEA5AE4FBA1F1E1FE948BF9DE56 |
3BD8B47970E386FE37DFDCF2E28BBF6FB4CCE0C068148F5BFAE5AE4A75D42E7A |
4799BA0B9C733F645E014E2D7694C2415E5AC44BFF121B03E2EC873FFC213E14 |
8042F14F57524F96B67AA3D8BD0A7A64EFF3AFBC11F5903F89D7442F1E6DB7E3 |
219D63B9FBE4D7EB18C06401D2A10FB893B90329DFB8EE6E1B3EFE44C61CC532 |
4F1F43CD38E31803318D4C09D0F6158E888F6FD52DB72C9B945160B18B3ABFA1 |
0CAD1840BD143C8A6F320823338DEE125FAE3210810C5113B2F55C72574EA212 |
41AA339099CF54B0E88E4D1A376723F873CF3DF71BDFF88664283E84ECB8E492 |
4B2029D4D375EFBDF75EBD7A3503D62EF31FDB5A7142F32963B62D9B37C9CC19 |
69397BA30EDD309692154FA909A6F409704702A256AC58B172E54A9386111986 |
66D139A6028317589636A31C2F412C48F484DF4252933C441D894D5678412B1B |
97FDC4273E01F79053CA99E41BC607697C315231B914D3CB189F2EBFFC724846 |
C6EBF014981FE13184A7565E440E3E137DB808F61C5681010A3EC2D9679F0D55 |
A464E9785B98B4AE4A4F4AA01BF9A571656C00265474116DDC0E2489A0AB2643 |
DCD23D579B11059D696932104447D34FA9F7684C5D76D9650F3FFC30B6077FC2 |
8327D0B0C4AE1B77EEB0DA7868D5433B498B5A7071053F8B191D299BE8AAF211 |
834FE701E29B4492988DB9FBECB36CD9924573E7CD6847B56603471A56B78533 |
964B7D1D43A24DE3A57FA50EE027B4A3A3C458BC2B76BB1F7B963BB5EED99282 |
280C866CED71C183910A4D50C8D96C41607BD558D429DEE7021358F620CF4F9F |
188F034DD06C5AD2D67AD46A34039374C327983163492A3EF289078D5386D936 |
3058DFB17D78D57FBDBE7EDDA6E77EB7265730ADA62996DEB67B08C4803B2BDA |
A80EF1DDF17209A825F21866E10E2447052B9045F5681C3F60CA1CB57B78A5CE |
4D4627E356AB31E897F523E9C462F04366987184DD9A568E5C0E10FF4494EA74 |
0F9BCBA2D0AED9E1D62D7177117EA2F9612290EA87868B209D7C40E5E42067CE |
3FFFFCAF7CE52B6C208AEF74746EF7A8B5182D7DBBAD8AE741E5DE79E79DF82A |
9E070E35E16EC41BE1AEECEF4C6E165CC176A3ECEF57FC744A6D2C7892B04349 |
DA0582A829CE38B40B414E4986F9A5B472F115F06EAEBCF24A8E879B9E8EBCD8 |
29B039702F4A93279E78E2E8A38F3659181A72078B812970512E1446B61FA11F |
D01A6D341BBD3DB620DBEA06A7A4D04CAADB9A9C3166B504B99F88EA1521CFF1 |
C71FCFD0BCD02F6E96853340C5C0CFF9C9E2C58BF109971F37C2A6771B2F339A |
C74D43443673D114CD982291A7ABD887B28C941EF810DB027631661EBFC2025D |
73CD35FFF22FFF42C38DFE810BE816FACB251025D600DB807B63BCCF44A3B1FB |
EEBB33746326525C3092C30BE23FD5D98D7A51A5DACC2592F74DE5578CDEF859 |
AF57DE8E551A324A9458167B1D5161D4139FFEF4A7FFF55FFF95278DEE3F07D3 |
9376C413D6888FC6688FE2184AFAB9B2862F5ABB42857260B82375393E39E490 |
438E3AEA2818284412E3D7A55239BDBBED1A673CF822C5E5FBECB1E71E4B66CF |
EC2B95C34673348E1A70C9AC26A84318E53C879F4AD121BA5C047A08956B173D |
F143F2C7C027306D93347DD3F4FC38F0076DD4A8E0E573265788F2B9785C1398 |
113FC05F937C888390B06CCD4FFC7612B7E11344A1ED6F10B51B6DE88BEED0EF |
AD74CDB53BCACF355A493B0ABDA4DC6CFAF57A6BCDDACD6FBCBEFECDB736AD7B |
B31F9E818D02B5E27C719C5393E5DFFE24A62FD95226F309F04454037C2F5B98 |
8BE86715C2175D74D10F7EF08355AB5605D3B7F99BAC09A40326678C1387A642 |
B2456C0BC609E5F314D8565A59498D4818CDC4525E3728329D4FA0F223E58D45 |
DFC4DF7A4E21310F263E8148B9FFFEFB353CE6CC18DB540190F01DB80E1C624A |
54F9138C61D8ABC1968431881F4370B0468C8A1A4B4586779381D095C5E5013B |
EEB8E3A0DEF1B48C604C1944334ED386C0A1F064201B0F80B38185E47F4A5EF3 |
38495FC933A02D4FB227CA0B28120C0C4F4541A31ED662A6C3ADA1B119DAFAE0 |
073FF8E4934FF2F9BBD2172420750C7E3E7BA66D51642DD646BDABD2353A36BA |
78975404D76B1D8BE72A0393450CA409BC8C53C1CBA0840C7490CD09B790B090 |
706424548E02560BB34A248FC8FD4570CD0526624443724B3A653B7B59A3280E |
86AA570473E2AB805287E5EE160770BD3099188CDB8A6EB2E6E3BA30A0872FEC |
BBEFBE182D574D54FBAE1C574857102391029D74D249509334291428E31D3587 |
94C8B4AAF04D5CEAC8238F7CECB1C764CD09CEAB803E5D19BA025C3822774D46 |
FF42DB9C5A4725A06A4B226B3171D8313B4418DFC8C45162434A112F9680CA16 |
961C61161DF67DB1949B3B6FE6FEFBEFB370C19CEE4A0992BAD9AAC611D6C80F |
3D3B93F5665B9AA023FFC1C3AF5416CD23E3D9320808745BF59B408CD7A10C12 |
D3F2CD4810C203860288E0393055602342B95158FB7E00A721B14567295E894F |
07651A45398B228DA3B6AD58E8F1835E8B30CA17F11C58CC661B7B188E422589 |
73D57AF2E20BABFAB70DFFE10FAF56C7A2A111BB4B7759B4CBBA0DEB4D16E015 |
E68D5292764CE474CC96C540BF56A850FAF402B22B3E6126E2C5A75C2F574F48 |
E2771053F31604B0B830771E316E3FF7D4939F8E54A96278A4E3C2342FC4D1B2 |
65CB206768A2ED244FA06895428E8A9B896B87CC486CB4801DC59A4471BD7084 |
7A5EB5DA6518E094534E79E081074CE6D762D8D4076F6B20FAD7B807053ADEE0 |
535AA00C41305BCD07F0B3C64F8C49B17A4B68453D95626A9C32290FB1329107 |
E6C20B2FBCEAAAABB8EACCA7E13B0C23F0CC70AE3523C944983CBE4F918A1967 |
D242FD0978ECE528712789025AC11668383CC27801A131CB962E5BB3764DCEF6 |
7EB57BB41DB5E12544C9047FD338CC591D2ADD6454CFCCF1E22EB4FE68C27007 |
134227DF4BC48122EDD1537CEE739FFBC77FFCC724A365772933B3D63D2147C5 |
740B8983A0B921D6B939B8B754CD1F66DD49E50F09ACB566CD1A9E042E659255 |
87519E12A13C39632C9F80C3660181C9627DD824F0DEE08D62CB4AB2BB75D7DC |
B5149A6A5C25F80D03381D9150D904C641F8F176B802F6039419F316AA99A7B1 |
4C75AB22C40EC01B2FCBC128C2E04FEC43AB0DE04DEAD92014AF848597D10B32 |
40ACB4B932A54E903A073500C1DE37A37BDEFC19FBEFBFDFDC39B3BA6C4701BF |
DE18AE8D8D45712BB4E679E0873993C154A8094C06C667F8450A695C1525B990 |
92D122389B968B34CD1378F1A8B5FDC33817B68310E2C32A030CD60F86431B12 |
6AC121B09AC03396988E42D922470B8917B43D1C0AFCA52B08FB0A612197CBB7 |
A2A456C7875069B38AA5BEC0CFD7EAFEA68DDBFEF887575F7F7D53FFB6A1C1E1 |
DAF070DAC53EC57C8B4C9E11081E644614794684CEC03A7209185161B8C34BD1 |
CF6E1D3897CC0DFC9A8C6A77725E7A7280887B89DF275B09DE9C78E289FFF44F |
FF44D67D02D9D5B5909678C72679F8E187614ED127132104762CA3C494517EC6 |
963F5DAED173BAA7B16880720FCF452B102339F4D0437FFBDBDFD205A47C6625 |
6C47C5835229C467D309E0F7E92E30740C1FE0B2CB2E335958CCFBE637BF79DE |
79E7899C88A5F0ACCF628135CD16C585540DCBB32181484113676D6114A33719 |
CD05BD39A543891B51AC8A373AEBACB36EBBED369218538A29621B64F45ED22B |
04D830C6C22B98ACF4979A80CF9C381C9FF8EDE9A79FCEBC4247C9154CCB638E |
39464457141FDC5E9A4A89248966756F57298049C3D626ED7FBD6EDD3A57E8DC |
72CB2D575E79A597968C990C02EBA6165D8B9ECE29A3EA325868F9CAA8E9885A |
BA324B3E262E4572501619523E32033CE58E64B28E2BFB918F7CE4BBDFFDAE4C |
5DC1A244A9E40269544F47BF58311F417EB9857035B624E44CB280D3CB30D1F8 |
CEB9E79E8B0DAA78A06BE9B8DA88CAC36D6A4FCDC455BBFDF6DBA11445F9609C |
AE0F1DAF6422DCB0237549E7D8557BD3CD9B9FF1D8F819E17092559F4EB95ED6 |
50097D88E6384A6C866051DF7EFBEDBD6CB725DD29101012A05A1BC6CD213F8D |
0749540FFC71E6478A09AEAF6A35DC4CE6F84130700552BC535A7510B75B91E5 |
A66E87961DA8EAE7AA9EDFB074A379AC6914E620885BB6055BCEB7D821CFB255 |
FB9ECD217BB9208E82C460DB5492A06069F1F2B6FA3D979470D994B42E09FC52 |
2E3FA35C9C55C8F78CB48B033B465F7B75C373CFBFBCFA95353BB60FB6C645F1 |
B4E84981204C466E4F13CAED152C7AB42F7CE10B5FFBDAD79423954F202EFD8F |
7FFCE3BFFEF5AFB1D5D54057D34E56673311A9DCCE3A24AB290D5E38B3495603 |
CBE131BB193824C73CA4DCF68C60AF5CB9F2F2CB2F576E835E026B56689DA860 |
C5CBA88E896F94B58AE3B061C306D937941E1A2D3BA0D0E45AB26409740C1F99 |
980E93650EDC4E24D75E7BED15575CC14753570C0925D666F3147BAAD8C6BF1F |
FCE007FFF33FFF533904A820CCA9C9A243AC6C32599C4754FB82CA8AE3412CA1 |
5E4615C203CC10845A90CB991062578D855535E616942AA5ACC606D82BAC24E0 |
FA419490FB5EF3EB65141FB2D4583DABDA577751DD96670ACF69190E3AE8A03D |
F6D8E3F1C71F97349403EB2A0933B1161A172137B222A44404A93132A9F94D16 |
5894DCE40B530A0BE5BEFBEEC37BF625967BB4132093716C588E1387E79C73CE |
513C249CBE4B62E254CF3345E1C2EAB9AD197C8C332A15A561F1C925975C72E3 |
8D3762069860500E963FDF6BAFBD56AF5E6D0B1A53C8B3A82388DBE3ECC18CC2 |
0CF0B2DC27C6C17AEBD15CDCB78A4BB555B0435E7BED3585117622C177FE128C |
44A1E7E9327E495A0747BB8CBFC283C014A02D3279BD6084F930AFBD363441A9 |
0C7F74D15E7BEDB160E1BC8A65E5B333D9688E4113C0188026B0E22CF69503E0 |
02511374A42BA4785A260DB6B4BD71A869BB01A99D24512E6AFB6123C85543EB |
1978859CC9175B611E9E4784FFCC13456AFBB361D212DFB31DD1AC26F0F24150 |
317ED1588315FE00345E0957B38B82E7F04B855C6FA1004DD0D50A7A0707C65E |
5BBDE1B9DFBEFCFB3FBEB279132472DD6E1F6F679AC064DE8C9E8E92411EB6C9 |
9A469C74D249DFF9CE774C46FC2ED603A646C950B976ED5ACA5C1AEFB423F1C9 |
DE7BEFBD6AD52AF5B13159573B1D199A416C15E065AD31FD8CD4886A9E15033C |
EC38D4F4834D5655CAC00B2BA2E3B4712CC6CCF70A5549B899AC9E0EA71E6F24 |
FA30CE4F7EF29370A9E5079BCC03489CE6CF6A6B632676DA90FC611E91650DF8 |
02E43EE433550EB414034D14E376F2D9618780165AA9946EDCD67C60D1B4E2C9 |
A90CBC89D41934CCF15B97BA8F917DBA546E981BDFC105D97D8CAC5EF40A6956 |
E3CA5018D4C9E26F089C0E9F2A41224F11A31F34FF49B464B2A22DF79018A7C8 |
88A85386D8848AF1B236C8987178A058152E1805190D4F1AB038E1D89AACE965 |
F10B34041EA7ED3404961AB8F4D24BBFF295AF70BAD44D42B3C7FC30AB375848 |
413F83C360F5ACF2AE8460BAAD63A6B467277F88F7D0E2C49BB2189B9D37A63C |
99B4E555008C49BEFBEEBB19FD70432554DE22501268E7AAABAEBAFEFAEBB994 |
6CEB4ABD8B4923A93AFCEE534E39C5647414F8573C8E84D6607EF827B80E8490 |
FA19BD87EB200AA1D161F7295580317CE8431FFAC94F7EE2D2D54DA932356F2E |
9A3BC9D8B4986DA6149E4E0D70FCAA2DEFE84D642661CFD2CDE6590250AF0DDB |
7DD6ECD25E7BEEB674D92EBDBD3DC5D0C23FD3A860033A003A05823C8DFF8CA7 |
B249E0EA65A50C61D6764DB7A0DE6A1818A106CE40AB19474D9B454F4CCA0713 |
410D340BF9562E6FAB0D20078AC556908365431721800FE07B91895BC6B6B289 |
8D57B45DCEFC322C46A801780DA1C579157C2FE7B14B995D8DAE7CAEA790EB0B |
72152FD73B3ADC5AF3C6E6E79F5BFDC2F32FBFB1765DBAA68999DE97928E27F8 |
8D11517A00AE4BCD175B00992CA7E8D618F22CCBB4670C44071FDF241FB0F4BA |
7C5C93456F1866600296F128993834A8A3AC0B211956D4245158153566C07828 |
F42464446BE6D6277774D92229B299E4AC5026B353266ECD4112FCC614A3CC3E |
4611F09E5DCF4C66C78B24FCA1871E3AEAA8A3F821FE157F97FD3DAE4EFC09B3 |
B538FC37DC7003C7A7069678AA9B6FBEF9339FF98CEB296B2D094D21B293687A |
E1BD34CB6AE2284B8D66B244273EBCEDB6DBCE3EFB6C4566D40D58A5AADC1F24 |
9514D294D5E104AA8B44C88D06784E25213D06FDC98DB5E13BA4AC7075830ADF |
A866DC564414A9E229A4711A651D0E68EF5F70C105B091B9B1680BD36C84DA7F |
E59557F085BBEEBA6BC58A15AA7AE39CA88C9E3A1F8BC2E02071B41DD69FAB8F |
3B649CC9E2B00CBCBEFFFDEFFFD18F7EC491AB3CBDE395646D6055A940FF8936 |
DAA2458B307E6C0F2C93B49D1BE63259B54B38A9B52CE750E50E49C6B1AEF343 |
36826062C74DDAD712CD0A94D174D05ABB9906E250292E496ADD214D266B0217 |
4CA2D80B51DBD800A409F96FD902A81D4935C35ED9264BA84CD604F6396CEF31 |
0811B370D1CC7D96EFB970D15C18C4A55C9841835AD004C65AC78D34EC96D064 |
C633D238A51AD0FC98AC0D0B83B4AD600C9BB1D5F45A750BA7B2DBDB36248BC3 |
0467302A144DA1181673855C1EF3DC8426C88596772897F7E184F8B6434EDD40 |
032451BB15B4A10E4C3E088B90FE7013AC855408A11C6CBEC296AE1583B0920B |
BAFCB062435849A55E4B366F1CF9C31FDE7CFEF99757BFF6A60D1045EDFF9BF9 |
A7266085C4030F3CF0B9CF7D8E89567A355C1AC94D52E3F80ED3789235796DA7 |
4D80E9F4BB405555F999894D9C28AC4485C2800FE7569A009E3DDC591E795794 |
617BE0528A72C3C6C5596080E8DE7BEF85C084F0C543D118172AC9646D012975 |
E98BD00551A4B48383DA384117BC6E4F5FECDF4004B6CC32CC808A6F4CC61E4D |
18EBFFCFDA9740595695E7EE33DEB96ECDDDD573B72D2A82A228E6E5F98C2E43 |
125D0BD09088710271888022623B3109A8382193222046511CA288C664496284 |
0551630C41A501ED869EE7A1BAE65B773EE7BC6FEFEF9EBF77DD1AD0F7BCCBD5 |
1655F79E7BCEDEFFFEC7EFFF7E96B285E15FD9507839F3C26FC3CFDB433E1D8B |
2D4FA5745D829792855EBF7EFD29A79CC2CE40F61FC8F8173E21EBEC36A31EB7 |
997E3AB9FEF18D583BB88478337EC388C9269294228C98B5EBAEBBEEA28B2E12 |
A205A1588AAD7993F6C68BDC4822983FF02031D184FB14FF826DB42C4530FA21 |
9B2B13DC58C0CB2EBB0C1A5FAE6FCF53931CBA4C0EC2C6982983937227F8165C |
D3864B312726C55EB91463BA052D4157CDC04D199F984A66EB86C00996A81350 |
0A859B96E1A00C7CC6BF92C1B30719095A86F424975C72C9E73EF739C622F0C2 |
10B023F293F5B17B701CD3B603030311A716C033929C072690A37DE3B944B0B6 |
7B21E513C9AB26663E01ADDD073EF0812BAEB8224AE710FC419680B9573C0E49 |
AEE44C2E6109BA08610401B2B0E5861DD04918B8A56ACDDA91679DB06170A80F |
F792F525ADD1A6F1AB37AA32788BD0007696D0428B69B4D1445ABFB8156D09EA |
AA516F22AC75CC5C1AC74D0207B1B5D29640B3DD66C20C9479DD0BEA41D8083D |
D7701041EFB71013C491CE26359B71A2BB0BF030A1664AD2CF05FFDA4BFC38D0 |
1FCF8541C1F5739E5B705DF8A7B08290B7607232DAB6EDD8A3BFD9F6DB2D3B0F |
1F19334EE1A2751AB1F48ED597433F4C6A7EDC5FD2C6B0E268A7EC0597483DE6 |
1846193A8E8E356A58CA6F02FA10D205B68631F8938647C90EE13DD79897938E |
C02285145510CD0381AD3200808A940C199235E2F56D1499B8B962C9A8666D57 |
4C707D1B376E2492906A93D1B62488548A66E4D22134BFE9A69BC81C41C42631 |
96BC3EBD619C2F76427462027C2BC7BC30D096212DD4E6F841A644B1CF5B308B |
B46354B26CCE6682981CBF49CAC345148A100E4BA9840F7FF9E5977FE2139FE0 |
EA9F7CF2C94F3CF1846D75C83641200199859877834F0D7DC4690C76DD9C0916 |
5974C90B89D3C4F09311809376B17BE98809A24EB93ADC6C1B3AC9AE57F92E32 |
A112C3CE4845B02E225E446B5D70C1059FFDEC67555A46F6D369A0E4A2E94AD9 |
D3A43158C18DC1BE42995217B38D4B2D941DEA42B9882510BAC0134E38E12D6F |
790B34A394E8173B99B6C9E782308103858E0FB20B810E171D617698DB3D1FAC |
07D8306AFCF5E69B6FBEF0C20B996C11F414A2C08F7CE4232C1BC83DD8C8638A |
F57CC09293125ED2D590013BAE213027912FDD0E99C2B6842550F3B243FC5242 |
F77035FA8CF44C17BC8E9B8E586038CFA056EE767E4C602ABA89EBABBEDEFCEA |
D52BD6AC1E29F716F53862A7D3ECCAF3C9436BF497C7E62CB6EFD07DA6BB2309 |
340A365F4D5581326F36DBCD4614B38DCB6573B8E3074926EB65826C18E40C8A |
545B828CDFD0BDC7BE8783AEDB8BE3A693B4F5D4195DF0755CA703CB8993A666 |
B40E9CC46DFA6136972D6733253FC87BDA0CE07FDE6CCD6D4799EA6CB06FEFF4 |
E6CD7B7FBD79EBEE3D072B95AAAE612F6E090440280F82D3C1143C8F95948813 |
333E8F4743565584413C271B6F22F8348178099A4E59500291256EA22421A58C |
C189F01C10220C1052BC24AF0113DA7428F17B388837DC708314BDEC6AAD7854 |
78529C4AD28BE161F95762E5D9EAFB777FF777F7DF7FFFCE9D3BC5222AE31073 |
DC21C36B9BC75366953B293D5A3C6FCA8DB2468674903EFCAD38DD36BF8D5080 |
D9A576DA06BC478EBD3DF50CD7C569C7C3F381C5E2C90F5DEA1262FDCE77BE13 |
FEA3DC2207ADF199A174848AC749D99760C7F04E29ABD20C30834F20B0B258F8 |
E5E0B9D650D92EF799995CAE1DD6EBED6F7FFB1D77DC21385A5A3E29C7732E12 |
7D6136E23231C2A04FFAA1EC3A1835E38E1D3BB8CD5434D8B9ABAFBE9A9C2464 |
3AA42925E51C3C713C4E971B2B439D9EB6626C6B34F6A6C195A0669436C5252C |
81846BF83A7E96E38E11B5D00D17862229B7081938318E220C7803CEB3905E71 |
EA03110A6CFE90B60952F8B22A83B3813FBDE0052F78F8E187052B652740541A |
D54A0F8E321ED3F6EDDB6D2CC0EFD3D1B3D8CBF621E2B9A323167B3FA585070F |
1ED9EDB7DF8EA513F850377648998A6521583132B472E5F28181623E9FD31582 |
56D31CE90E2E8029C17A1D07B303EEA025A019E88A09647DB45B1D6B6866D4D4 |
212FFE433991A6207555A2A1474910FA591F5F970DE0DA671AB004D9B0AD9D7D |
DF659DC04CBE6C9BF41556D2F53AA3B6230409896AE10ACA6D04995C3E57CEE7 |
FAC3B0E8EB2A021C44B719C3E1CBD5EBD923879B9B1FDBFBCBFFF9DDD6AD3BC7 |
2626F53D2CB26EB6BD97076171919E2F9E972069D97DEA2F01A4F2C5543ED315 |
36C440728974496D6D283F130E23ADFE4C0A097E9AEFB42B0AF8F7F39FFF3C87 |
0952312E5BB68CB01FEA5CAA2099EB47E83CC55BDC057C35DC4D565E29FC3814 |
CCE9E35F0E18C79DB36C6667BCED09833460C2CBA40C5F9CA86E19AE40D165D8 |
CD476385594258C73E30923311466C01A5B2D84D4B2BF197904CB01EC2B2B34A |
1B2CC555C71A41BB7DF8C31F962B53EDCA3630141223449F4E52318497304091 |
F2001B11850D5B0A3264E313F3A8E6521EDAA68BD68B4A99593FE9ED92AC85A4 |
0B5AD6786B5B32249815BA53EE0731B82A2DC08AE36373E08837212E86B4B97A |
E98C30460CA270F99B642154A26B71648AC2EA82BB08229315F5054F26352FCF |
808CDC226689412B670608885BCA6E425B221E804CA0642C6C4F5EC51B200F08 |
9C996965655820C84C3421B2BEF2CA2BE3749E5A9276D54AAE4F10E5AC519D73 |
CE390F3DF450C5F4ECE2CD924514E6802534FE7C1429130E322FF369F1E05C0D |
65C564F443E39447BAFB83E60BCB7D85F5EB568DAC182C68DDEE8519BF55256F |
44279268343A310116C0B6043403522EB60BDD9D2FD23D0489196AA9DB84F17C |
810F15E0343DDDB50C9383731C3859C407610631412D1BE0913547A99E67A92D |
41CBB09FC62A86EFE2996414EC48DC6A636D5B2E6C49D0CA668AF9426FB13010 |
664A815F307D6C7E12F62651B6D92E8D1E693FF6C4815FFCF2F1C79F78F2E8E8 |
D8ECCCC2F2E658EC7ECA8A0221218C98559A8AA1222347290B5D8CC3B8147833 |
9595DD4D263062E24D6C1A3B994D4228E36B5EF39A6F7FFBDB36309452278108 |
6580B022461B3CCE8135EC56A5118674FC080D17BF9D5A9B0F0B1DADE7C318B7 |
1D76E8BDEF7DEFA73FFD696681A43D88CA96A12D1B9E2343A8CEAD275042D2FD |
7222E67789CA49918C37D7078BCCA3A4975D59BDF54C3ED272723F6C14844DC3 |
4D75469E132EA54A7C0D607625E6EA1CA1726F210CB2A3A3632618A9C0ED40B0 |
0A01807131D7E940E9376DBAF4D65B6F850F53EE19603543C021E2C64AF33455 |
B35869C26C212E38F978277E4F3E89389DAE257AC42E1F091F3A3D08BC07D747 |
4003F5A4D2EABF5AFC45B1A394D0E6D1DECE6F3B126787897E7C0462F7BDEF7D |
4F6AB6881810FA09F244B6838B2F94E28C587959BBA590612C1C877DFBF6490D |
462A51BC49D694782A9646558A64F041988510F7819655BAF0EDDA127E83D04D |
BAE1443A6DF963A95399C67719E4494B43C2740A7157B3E8121A5C8E3AF10567 |
9F7D3616967964D96E2C02876832BB4A40883D05133683251F5274D921119D06 |
3E32AB88D1E2C34FD442457B669FB9F5CC2677BC813CC74F262F38E579EBD6AF |
761248BBC94EB4EB6494A3D83041449785368FD180D48A0D67B52BBD66A25B79 |
0035E49F9E9093A40943B6883B86AC54699E09C73415E6DA5872CD4BEA353D07 |
6A2E72BD362EEAFA0D3DF046239AF4A803C76DBB0A6141D309542E9B2F95FA0A |
F9DE4C580A839C2E1D7B7ED32F8799BECA8C3731A61EFFEDFE5FFCD7E35BB7EE |
DEB37BFFC4C414FD2196039555C9641049FA13E68125E5C0137AE9A59732B9AA |
D4F161D1F820D306CA10EB4A92A0AB2423967EBE20516CB0E9D0331000B6A4D0 |
E5B50B4ECA9A5B275CD0CC0A10AF48A122D42736633565CA8D4A5D2BBE07EF7F |
FFFBDF8F78916E8A8CFC628599C64C467E89C3DE0548C3FBDFF6B6B77DE196CF |
D71BF54C9869B6CD4CB0A9C9AC71D05B8D2641502C2832E12F279783C884D0D3 |
76073BEE2DBD2D1600844C4650AB3CD5D2D806F3456EB5B925B20E3F8F1E8F6D |
8C3C65B750CC8C8F4D711772391DBE958ABAE2DA68D65263A53315279CB011DA |
1007812BCB80E86B5FFBDA45175D44148DD8F94F7DEA531FFBD8C748652C94A8 |
F60633A12F562A9DE5749C37DB160EDA09FA1478CFDAB56B77ECD8C1748DA0CA |
9638F3C2A4C6AC1F152841D0F83A6222550AFD96AD7DF6B39FFDD4534FD95E6D |
94B2AB4B1F13ED1CBE05760E2BC38895781851F1C490D15B4F0C0114EE9CF338 |
F15736DC917A334A07F6E297F85E865C4B58023900A2D6E99109A589938E0352 |
2647C4EDE6A251701D83CE260E84286C223A78E577BFFBDD5FF8C217549A36A4 |
86E551216D6792CEFC5A4CF38A93CE4723BC64C3860D308742EC2A9DC937DE78 |
E3A64D9B64309134FD6323109BC330FFF0873FA4B7C59846A671DC7DF7DDAF7B |
DDEBA4C12759888AB2CB0674D5692EB8E0829B6FBE993D25320EC1E0898F420B |
C31F822558BB6E15DCF0422187C76D35EB768F0E110DB6C9F7521E6C5E3FF08E |
5355DBDF1EE97A2F4992DBB40447A3F5580000B35E494441544E872D872060C7 |
F51459E435B7B493784E5D7BFA1E96BDEDBB91877F1185F84AF79DE92C5256BB |
E39EA6A3504ECB55ED201F6432F942BE94CF95C3A0684621684B1005E520ECAD |
CC385393EE962D87FEF3BF7EBB65CBAE9D3BF74C4F5519D0C7860D0DA24213EE |
A42D90CC6B8BFF07B9A5609366074BC709C64C16416C988A815A645ADB9E2D68 |
6F876453E58BC4174CD2BE7A3F1D354A1BACCCCCD40F7DE843322BCD766BC43B |
91B32FB968126A0922D6B60471CA4E61270348F78943C4AD813DA32F0FE9252C |
5BAAAD7CF0134F3CF1C9279FE46C98499C1A4F9F9A20A31505FE6D91415D1DCF |
EB8870DA757846BACCF3B31594553D47A59067F19D451931005156368D669376 |
4606FED137E42EDAF53101AEE88EF75811CC97CDE6EDC1584667555368303CFD |
A8EB1984DAACAB8C89B791FA952A98F9258805D68B0680918DE808C92C519972 |
5FE58224C476E7B2CA48B66A314D44DBC90B46E918ACF98A5552E776AAD14907 |
7093591AC2A44CEF98EDBC70B4D079E79DF7E52F7F599AE9643C0B29EA181ED9 |
200A68BD6BAEB9861992AEECA10D48785A0C8CB2189FD261EE1DD81C0414FF9E |
7CF2C9B8259C4FA153655CA24C74CC0880E68AED2D74695D43494B59E20C1F0A |
D575D75D77D55557F168498D7A09CC8FC47CACE949ECCF9734AF91608ACDD578 |
7CDC1EDE4CDE43019E33DC26684A3851E807409C885FFA7DEA040B5A02829B71 |
B5AE9E41BD9501CE7CF179273F67CDDA9550C1D92CFC30D56E3518104B1B1D35 |
979C2C3537F56706D37B52347652FA1DF3F1384DA19BCF2AE9CB637C90181BA0 |
1C87409A8A2E0FB8B1EFB57CAF1D0671A8694AB1929D4C6C3E8B58040E0D0C36 |
3E1865F319FDEB4C5147037ED673B37ADAA5172499DE30284D4F3B33156FFBF6 |
F1FFFEE56F1F7F62C753DB768D1E9D161486F8671463699113F61EBB9A2873A8 |
84E6805959F624310F6ECB4997EF6F4FDC93CE4A71C2E4AF76CE44A5306BB914 |
FE93B380A4818B66833564965729FCF6EC04C929D112501FD253E4C0481E045C |
9C89EEAE315CBC252E083D1BB82C0F3EF820A96703630612950C9B65E9E92DE3 |
064E3FFDF42FDD7E874AB1F592B296216572A69852233EE8CC33CFBCEFBEFB1C |
D1EFA20278B40417C873C2F60D6651789E6D4A6ED31694E597D901BD5DEBE716 |
8E8C68BCA076995BBA7453999D366B5A4F3339F05F1473FDB8388486F84E2765 |
0A23F72F9E995CF6541C1B376E7CE94B5FFAAD6F7D8B6D59CC24C295965643BB |
38A12C6A5F61A1606582CB27035E88F391E458D74B92FE5C34447C9FFFFCE7D9 |
E44C8A6067EE905295BAD804748AADB213D0223A2A9DEA871BC3C3123620A052 |
6E818CE14D7D3D6D99F0D4B87922671087DE7AEBAD1CF3C93A0AEF8A7EFA1215 |
5451AFF0BC7029CA3D6DBF8423F82BD707B7C75A3DD78AF00C09E1655C0F91B8 |
175F7CF12DB7DC2234FA1409F68E4A4D4830154B337625698F82F04E331262EB |
0D61C494100AE1A5975E7AC30D3790208C474ED65C1893187A12F5815FE2227C |
6A1E5DF6AC2D3169442D941D621D855A0F426B7153EB6FEF29179E75C286D5AB |
576643F8D366F79D58804392FD576929585E727D4F755C0DC144F0952822ACA4 |
A4D429413BC62D36D7341771E81DC3D4D4942E0F345DA7E5798D0C2C8106983A |
F9629CCB8638DD7904BA2116D9093449913220564D3DE43AA1A3E0DAFB9E1E59 |
E3BAB95ECF2BCE54925A35DCBD77FA7F1EDEBAF9B19D5BB66E73923C49CE99CB |
851BB175EB5662C7B16B575E7925DC17A9FAC027F8E4273FC94964F678734826 |
BD04724C51C15147CDF718BAF242AE353C55CD850BB2CB1717A42842814274B1 |
FB140C314BA24364083681F96F7DEB5BBFF18D6F08390A39DC24445396672C46 |
1A17B9F0C20BBFF4A52F099191328DABB8080B6C745F9C94A381977AEE739F8B |
98804D6DB006B9AC1E91F6E2979CF6AB5FFDEAE8A80E26D66FD8B06BC74E2F1D |
7B25F76977710B5F99D45C4F3BEDB4871F7ED8A15AE70D319C6791846FB2692F |
6DF67C65A1BB924E4F20A28F5887A1FAE1DDC4781B9DC44BBD636C8B85623B6A |
76581C3CC32DDA6C9850A0552CE6ED718C7CBF208E38550D36C02EFDE307686D |
7C56FC47D21E70595FF5AA57FDF297BFA48A1195EDA553A7EDF21A0325EA2FE6 |
E2591762E560B1A624276DEA6315A86B38220D92508389D36A6351680CF003E1 |
F62297BC19BE4DF04276A6AB8B45846A971D004215D74E87510B0E58A59959E1 |
6F584C97E124B886128AEB7CEAA9A7C26B60F9842B26983FDD5D9AE2DE84EF8F |
0C2DF307E9603139794619470F220EE3C113CE54809C3D5B0C968EC984204F99 |
24156EF8852F7CE1CF7FFEF32EB817C26A585365EA13FC93ED7041B91027EAA4 |
1C7C8217600E5712C44F0B409A6F0970BC219FF6BC2661B58203D4532EAE5DB3 |
72D5AAE5A5829EF288D3AA878C59C056D1EC940761A2969581E1A0B7EBCE7DC5 |
493BCD8748C93AB2D244B17C0591FE71A29B8A634D3251F71CC4AFED6C06ABE7 |
168A3A58299672AC6967435F87C19AA22834DFE3ABC48F237DE45D47578FBC6C |
8FEFE12CC78D56FEE081D9471ED9FED8E69DBFDDB23D8A8E13EBCBD05946D292 |
1D65AB849C23EC8B08A1B2EAC6E2A93CEF79CFDBBC79B3ED3FCD7F49564DCEBB |
A477842A8D3E87E0AD711B575F7DF5A64D9B4493524E24A9259CC114665A08B6 |
74910B594454A0BDB624BBE96061A62588C7112F2A4E59C8D83948D9A3833E07 |
45AD9D06EC729C219A26A76D8363AAF65248A70CCB638A4CD2A7977C5A873BD9 |
6EEFA68C0A0E84EF13C00F9D11192D49F5442757B899083DC63AC766773CC78B |
922835037A02E56C55A7DD9FFFBCE76F7ECC30E0170A95591880383D279D2F95 |
79BF90067C29ADA29B9268124181F71369830D60863A49B944F027381DBFFBDD |
EFA46B4C14873DE156596D4A2C110B5D225E9CF9BE589E5A62026EF6F9E79FFF |
831FFC80F4CB542BF69BA53EE9A6DC0C4C9E7018D349279DF4F8E38FF36CD8A5 |
21665D1800C101A7A7AC2CD6111A6C69B3949D9680D4EE91C1419A302F65018D |
167C2EE975641B2707E6D04E53B8B1F8648DA58346D03D7E60FC6ED3D2C91966 |
FE144FC756352F7DDD71C71DEF79CF7B684BB82CD0DAF00179DB74CF17BC4F5A |
7D95F21B46E97411CEC196C383EDC03D33DC46D08638497803791A71F38C6BE5 |
60734359FD639B31D94778CEFFD0EC90006A850A454C918EDF07CB23CB874646 |
86CAA562ADAEA352ED711BCD653B925E4A8E1DCF9DA2AACD43EBF8AC5D7EA954 |
8FCD7D2496CFA38D81E31EBFE1B92FF8714DCD579ACC7A2EBCA25626EB660227 |
9757B96C502886B97C9009E1B0FB3903CAF0828CBE7AEC688412CEBD191EA3EF |
23C8BB3EB606417CEED0E1DA6F7EB3EB89C7F7FE6EEBAEA929CD29808D800C7C |
F9CB5FBEECB2CB18D63344FED33FFDD35FFCE217A2E9D6AC5903C9E772D1425C |
71C515975F7EB954112081108F8B2EBA08B1386711DAD8745BED4AE7A3637188 |
DA6E964ADD052942B0D8C65E6E368E71EE109978E8195317B12F87B132841F6E |
3E4C084FAE10A54863BC08899D89622E88FE34CDC077BFFBDD73CE390717176A |
74D11E8C803B8046A733A32256A6221B98A21AE2956CA76D4BD2E9946421D3A4 |
02A1F623EA8748AAE34D7D2A05CC24E97C2BA19A8132C283895B4A211690C947 |
3FFAD14F7CE2131081B6CE76E8D9A75A3EF40711BA762A42CDA85E2E95A76626 |
870707F1A673CF3DF7861B3FA38C6F58999DD15CE84E9C7A408A97B5C370CEB4 |
227BAD9D438426C226D19767F842EB67B3C0D36DF4CC846465F1E64BFFA7B29A |
81B1DF64CB8042812D79F0C107BB467BCA8B09254A157C6D52FAE1365EF9CA57 |
22F885E2A059665E2B499B5F6877A9E024F0820CB17382DBC37282003D4576B9 |
ECB46ACF7FFEF31F7DF45156A5781106AAE49CB23164025E26EF05DE80DFC3EF |
5EA262AC16E25913574052AB76EAEFB6DB6EC34115662EBA05AC0CD9B84C566B |
E8202BE38C304DCC6A076D0F2B1C02BA5D2226502990890E8E38DD320B411A38 |
080AE2AD3230120788FA5DD81511E6BFE94D6F829EBAF9E69BB91A62024505FF |
4196808380CE3BEFBCBBEEBA8BADE6AA939684C8B557AE1C191CE8EDEB2F15F3 |
994A653A930D3CA7836A537307A6DBBDCACA468E261D9F572C41FA436A2D5C7E |
247509DDE33B9BC476A383AB8989E25AAC665DB79E0963C4047EA0B21988AB5F |
2804300C61E0906F391B64F5DF123C42A2E14EA6A8817366CAD9593FCC631FDA |
EDFCD1238DDF6CDEBBE577079EDCB227F1427A2174EDA98604ED2D50E0AE6A8A |
A8331951479491A40AC883C020D8464FC9156C7FDCCED5C8A9274801270E4AE9 |
DE7BEF650A0B911C84C446BA43B993F1857EBACC0C20393F897E39325DA56CC4 |
54B8D2F048F74898110498207745BC29D687C5369B4645CEA0C0D061B81B4D53 |
C46529346A43CDC19B3972E8B0C494D060703155EA2DD189171010816D1C55A9 |
0586494C2EB77C136152724EDEF18E773011C6E347148A4A9BD93AFD1A01E289 |
4E4CA02D96A1AD34EA43995BC91C9B38DA633000A36347FBCA7DD333BA628E07 |
C830E608DC148CD514A789D1092D108CEDB5D75E2B34794ECAF9DEB546724858 |
2E1667C1A69A12974ABA55290A42AC6F773938BF474FE9F1EE0C73F2A5B140C6 |
B4726FB81F52AB50694D9F193D193D48F1954E6038D1A4B4248E8D469EDCDACE |
DC49DF52B6116E223E17997BF12F7C96DB6FBF9D27CA0E23E66B34080D9D14DA |
519AD82EFAD5673EF3994CB990D2044E9C14A6BAB05278CF2DB7DCF2C10F7E50 |
66A00A3904735FF474F0713924B265CED375C089DC53D1F374D1A51226223E0E |
2EC8DEBA24E52C62715840C9B80D6AA2AE521B150D0305BBAEB8843DE81245BB |
B1282D156A65BD61C3BADE7211EE7636F4A6A7270BC51C343B71A2F2A5B625E8 |
360388F4DDE383CC2C33A03B063ABACF9139CCF11C4B90885A343FE0CC26ADC4 |
813855E186657476C80942D777A34CD6CBE5DD0CBCC64065025882820EA7F48C |
62276A6B4B00C985F3672293C0F3A19AF2355882585B82C71FDBBF65CBA1A79E |
DA3F31A38F216B4BDC0EE9F32295BF3068F2800B508DE6939C66CC0110EFCFF5 |
E99A91DE65099CB96C6002EE1002121B5F7FDD75D7C103900CAD6466F8036E86 |
3C42FC0D76D00ED3554A0A445F8748D9209D174B4BA0E651A30BA091274EF8E9 |
F0FB33CE38E39E7BEE11678B4A86812F19497B7B0C08B032E3998B144A5A63E3 |
79C220643B14DE7FFEF9E77FF5AB5FC5AAC2633E74E810018DB675E1B377540D |
EF49F06DCC48F0105E73CD35F0F785569E428CC763C10D0B77D75D5F8727C522 |
F5C478053E82966FFD80595F4FD4CEC22ACC56EAFD03E5B1F123F97C3636BD41 |
3A300FB38D66757878706C7CB4D96E14F2F0F7E1FFC2CEB54AA51CBEE5F0E1A3 |
6675F22C13C5915ABB4EB70B985D775970EE4C92899935634AD4B6F952B6A68E |
5E785AC5D3BE9C941185A51BEE87F4317AD6A0151955CF7D75CD180095D2342D |
882C52696C211E37ED1F1F4174AE6371922CD6E5C0988907093FBCFBDDEFBEE9 |
A69BE8D4B0930BF706F1FAA77FFA27AA636578847832550A53639595FCA33CA8 |
5449CAB8392C45BCFDED6F4700CBE145D2EA45BD4CCD15A563F3B820713A678D |
8F493B217E992404E496A8CAA90E106B420809F116F4A4CDD5E5CE655990A5E0 |
E197BE0A5A174693F2A4AC030B55A26D6BF1FE4B2FBD14C24F5B1EA7432F0413 |
625723ED0CACE473841519DFCE33254631C55F68D53030D8B76EEDAAFEFEDE48 |
034775763413CE51E8E2B3BBA9F4267359316C03301744A401A31D7EBA344744 |
4FABCB9674CC55E4BBBABBB8ADDC9AA3B3439AA52E08BD72D6B055C32404DABA |
98DC35ABDBBA449C444EBDDA68D5E163C51DCEA24CB9DD4A9A51586F044747EB |
5B9E3CF0C46F77ED3F70786AA23D32320219E0328AFEB5B576D77ADA591406C4 |
D2BED7A5F1C533A00FC70118769B5817DFB0B8DBBC139C539A67FA01927510C6 |
37519DB42BD29463F7D3481955A0E46C0491628F3C5A578E48E21EB200B1C158 |
2A1952E364E25A10A26F7CD35B7EFCE31F1F1B1DCD983AA5261431036B0F1F3E |
D0DBD7872F9A9E9A5A6E167CD63C0B5425EF4172DAF4515EF8C2176EDEBC599F |
6265F5B8D200B080297821B6B6325FC1A00C0B847B0DC32C3D68D25E7B6E36D1 |
DC150811359F49262CF99EC612C451902F64C6C78F96FBF2A63615CFCED6B432 |
CABA533353898A7A7B4AB5DA6CA355CB66E0A8362163C562A761249BC9F3D035 |
753254192E5C72C8A43656B7B0478EEA48BFF838661DD3FCFEFF9F25604919CF |
8E55660E074FCDFDC0975E70C105F7DD77DFD6AD5BC90DF7FAD7BFFEC1071F24 |
5184BE5B93C197A55FECFAD2049BA4A38538A943B836878787C965B8C475AEBC |
F2CA4F7FFAD392D063065F52F614A9E73CE7394F3EF924EF4D40B4AC5FB1AB85 |
B307F003769CD835C10B50ABD25790A2AE4A8146122CDBA31DF812788F045B76 |
A6C54B874CF1CD8CA8E274F6008FB132232711E74A1B39C3733537DE97562CF9 |
6AD6BD701D1249AA34472F2CA7D83522469274921FFB2D9822206A4559C805FC |
E6C081035DDF22C030820E98F8E682DBB90E1234B1FE615C5AF3BC03E5F5EB56 |
0F0EF6BB2AC69D4204F43C82B933783B121B0B247481C8C03609E9C7995632BF |
718591C2940AE67EA49377F632A68D39821970BD162C41984960098A414BD782 |
430707138626B5C77080E0F07A710B5169336AB5034FBF077F683B99662B6EB6 |
825A233876ACF1E4B6435BB7EE3E78786C72B22971F929A79CF2E8A38FF2C888 |
66174B208F4C175ECABC0CA9ED35E95A1079619D61EFE1388AA3433964A25C92 |
EFD2786C4FAAF9F8C73F7EC51557400CF07E1C3AFA558C4E24D3CB43CA16078A |
197E49CA68FCCB0886D00349008891233ECDB120857CB1BEC59FD7AC59F3CE77 |
BE13B7C18BE34E28451236696474A94CD073D46E3B06E6A77BD16BB5DEFEF2E4 |
C4440E8E0BC208D824984033A56A6CF4185596DC95201B29990EB787C953195D |
4BE702A1D0B7BFFD6DFC8CFB90CE69C61766355DB60D6742C389DA8A74433BB4 |
4A58CC667A340F498267869F1F22209DA98CF5F517A76726203CCA2494B23956 |
266B33D58981BEFE8989B14D1FB8F4FBDFFFDEF61DDB104FE0F9023F80AEC00F |
AED2AAF0F0D183B96C8E698D66838AC338594EDB3E005255FB235A02EE251BB5 |
EC205DC829A90DF106ACDE6B5EF39A471E7964D7AE5DCAF2E597C0C50B140722 |
423E3BFCF0D297BEF4473FFA91E0F159FFE128B7C52C016B5932DF03624D6257 |
BB515CDC226965A4CB8FEB0B65933296FEAD6F7D2BB69E5A0F6F664158596DEB |
947EB6E4484F032359CE0650A683815C6C04A40917AE6B4D8295321567D8119D |
CC53210D2E7827429C2F7EF18BD4B344B8B19C28BA40F62549B902C59DC4B93A |
EBACB3FEEDDFFE6DDBB66DB425CF7AD6B3B66FDF0ED3FE8637BC81AC612A6539 |
9684215B5E893A65228BF4B41225D882345FA8649C11CB892B56AC208BA44A47 |
52531FF5F5976009101C877A3A4DA4C9DDBC0E4DA6ADF1554A9A62EBBE2E83D1 |
F5B3E7A8B492CC21022AD5FB919801311E1466CF77433DDDBEEDFAADC04FC28C |
0E02727EC37C36C1C94DFB930353CD2B40A0DAADA8DDD417CC84705A7D981C04 |
B4B55AAB5673666BEED87873D7CED16DDBF71D3E32516D754867B1FEA79F7EFA |
030F3CC08C102B3A52F511ECAC50BC6CDCB8110A171A50BCE3052D013B48283F |
CA627921FA8B7B218011270505301A60142EFE2E5BD858C122D2FFB6DB6E83CF |
277BCA84FBC5175FFC95AF7C05F7230822F68E28430F878BC8E3085AAF4B6C98 |
06E4D9612A12774B3C854DF1A2E68EA9E147FA074C5B35A4DD94DFB47E6FB54A |
BAD747276CB2B91C278268BFEDD0A142B158ADCC0AA0D12E633035D7B1C47C6C |
295FE0C8BDFFFDEF97F930BC690E1097D0C1207606EAB56605EE8F0721C8D4EA |
0DCF093361219B29877E29897DCD8DDE44CC58822508424DC2BE77DF8E998A8E |
C7755D3EA30E1D3AD0532E85A17FE0F01E84A6307ED395C9DE72AF7EFE66647C |
6ADFB01BB513950C1A6E263C6E2E9BD795F45A338A75522C4E5A569620EAF038 |
EAE1C36914F9FF6709981610D60495F2F5934287C6805BCEB4202B84A232DAE9 |
30EE252C01B699A034C82E6CDE39E79CF38D6F7C838D63CC81AC5AB50A8A9877 |
BE34BE5EA5ACDDA44D6507A3CDFBCF9FC5C97ACB5BDE0269A6B2239A0D6F637B |
AD440CCA6A3827B296E22EDEDC35D75CF3D9CF7E96368CE86C5E5C52315DB72A |
07C34D478A33B7C6243EF3BF2AF59248D2C0D413EEFF431FFA10E493A50E490A |
759D2E5922A1FD59BB762D6CB36C1C5B25E052B10F08928FE725AD3C597DB002 |
5879E9E6A3FD8072C1B940EC351FCAC9C7910800FBC55975FFF55FFF25EC5BFC |
46FC89988BFDFBF7E2B3BD7D3D6BD7AC5CB66C281BEA661A980058021B2D2A3E |
BBA8123597365554A1AD16B58DD7EAD5215662AE31383EB5C9EE47F37C2C178B |
01317CB040FF4F3352E4BC96C67398A633C613048F7A4E99164B257A13335978 |
81FA80B45B6A6AAA323959AFD6BCE9A968DFFEF16DDBF61D3C34566977B2372C |
C610D7C0F97442DF6D57D19891C35ABDF9CD6FFE977FF917A233EDD6C86ECB67 |
B43CDBFB2103380277DF7D373E7BC20927406B75813B59489359F012C58A0F81 |
AB913142A255FC274134E21620E0D8BB772F69F2D80C8CAB216A849301C30F25 |
204EA4EDA412E9C42AAC247FA4A75D9C744A35DE431FDD2E8B4A6B2D635069AB |
82B8C261E2E0100ABC3261849332EA4BC3801DA9409EFFF11FFFF177BFFB9D23 |
27075F396B5E92F0921125D75D771D3E805D213A8AFC2DB95C015B1E069AC269 |
A6329BCB147593A19BF5BDBCE7E6559C8131C0E2077E318E5BC552F8EC13D7EF |
D9BB7DFFFEDDAC0D1E3D7600FABDB7DCA39CA85C2EEDDDB773DDBAB5DB776E0F |
0C8A0096BBD16A687A22DDC7A805A2AFBF8C1D456897D1A63767120E6C05EA04 |
6E1AD2A6352F629F66946832C53F8A25A04FC7540FB3CF8C2B2101D0CE8CD738 |
0E09126007014264681BD4F92FE16CA07DA5CF4BDB23137B2EB9E492DB6FBF5D |
E6532F781D9911CF6608112FEEA01C3666BAD9492B58029B6451644E7A20393E |
01C2D4D55BFF8C673C63F7EEDDD08F4276C82FC5373280B071994CC753DD2F68 |
09A274E4D3FAF5EB39CC80D15262689D18953A293B3CCB30D27C6BBBC9DC2637 |
ED40E6E9555686076A8821851C72E996E7321203463E54CAAA0CDE113A96F996 |
C04D792F9861E3AC3A76C9210441B00F2BC225E5505893BD71CABDA535AB578C |
8C2CCB65020E30F7DC9867B59D8E62EF60E19DE38EB09DD8491679F9CA495173 |
54F89D5664C79D131374FEA6B3BA58072F13BA70DA3C3F817F6F2C8197D3F922 |
486F5B23C313F9ACEFAA42C7AE782E2784E3BEB47BDB888F8D4F8F8FC10DF7AB |
35E7F0C129588203FB8F4EB53AD46C946D049D3FFCE10F5FFDEA57DF73CF3DF4 |
D6D9B5675B02FEFB177FF1173FFBD9CF88FDEB6A69B22D813DCC43F69DD3A248 |
E3C8D5A0A4C939955E62493CB2DE20CCF3B6C0F326ED51DB7CA76C93C4DF5FFA |
D297B0E32290768E6BFEC9C5055FFCE217C36920E39EB41174F934D406420D29 |
C9253A6775F3A2BAFFEA57BF8A6017DFCB48543032AED55F263503793A4750B4 |
CC4691218F69221C06386537DF7CF3FBDEF73EE19359BE7C98E5DC42BE3CAB77 |
C5CF657471BFA7D4E738814AE0D2E0DFC0F77286972A13477E657672B63AB976 |
DDC8F40C8CF3184B7989D2CE72B1943F7AF47033AE9DF49C139FD8F298BE896C |
303E39EE39BAA0A787FBB5DB555D4C767DC7E73984BA33E6B763DF7C4F4FD163 |
078D26538F9AAD56B31DB71D95FACE7F8CEC109318CCB2498587F3A049364250 |
0D8B93ACA672C2061D90A5313052A7C29A639D65102BBD06FC067ECDD6AD5B05 |
63BED87548CB2CCCAC443E283317B3AB8F41D29D321C941E1085091A1C7FE2D8 |
2FFA2F22E8526EC5CF679D75D6CF7FFE73BC4D06531317888B40B8F19E57BCE2 |
15DFFBDEF7E87FD9F44D0B6687D8AB8C379F77DE79DFFFFEF7890EE46C716570 |
4ADBB66D53C6E5BFEFBEFBFEFCCFFF9C87B60B62AF52E4E571F936FD92BC6D46 |
369235A2B72550575C90990126C4A0C7117F307E272D1D3E7BE18517DE74D34D |
4B6787B850F6200A359764DF56673DE5FCAA95CB57AC585ECC67F1347062E0C1 |
8825E0A1EDE4739339D1805D52560BCD3176DA9A5D2EED3873ECC8A0CB12F03F |
4D2EC8D79620703D33CDD8704BF8A1D73627A86D865F461D33E0BAA197519EE1 |
2F7295AF172913694BD09E9E6C4C4E56A626EAD0C3F59A73E4D0F4F6EDFB0F1D |
3C5A5309799B991C235980B266BDA9B9D921DE189D1546518981C92F961DB239 |
B258E995BE3031150C8BE3747894B4AA60471088FFE0073FB0296768D4C90125 |
CB4E5F1BBB498F907BC4B17DE4199B1FB5D8516362DA92210374E705EF0E7DFB |
DAD7BEF61BDFF806EE1CAE0364927106542EFE046D202008A1C03189788D8D9C |
98E0BC3F1F8B0FAFB9566B04BEE93F68D40BF902A91EB5B9728E0F6512D34B28 |
0721249A478C2B72D24927E14860AB20A65D212DBF9EAD16CD66DD18D8A05E6B |
E77245575789A0ADF0459950779FE754E2476D8D20CA668A70DE8DE26EED3DBC |
33A77B1FDA6126D080355D7B728E4D1D2BE74B85225CCEC2966DBF2B647378C3 |
A5EF7F0F5664CFBE3DD018B90C23A93A2156B96C81792E5CD39847BDF7819FA5 |
6FA47493335643AF723B6EFDB12C81C010A5178C0CB40C14A4D9BDE358A5C94D |
957278D0855C02172F7745EA121C0F3C29A9A6A42986BA521AE896B058B8C89B |
DEF426C8B4060F98B48CDDFC2153F7921482E9A6CDCFAF7FFDEBE19D112E4D9F |
9A23E7E8470B2893E002A93F6FD9B2C531D43A3C60F81482533844AC2449ED81 |
7A50F2E38B558C49988AC3004786B935F6FBE0FD36250B7BD36452BC8DC790A5 |
389EF448BBCAA55B5BA2759A67A9D8DB8BC95667926D488421F1DF82156329C2 |
0B60897FC551C22F196A33919892013435B14A3E58BE6C10DE556F4F5163E7A2 |
9658023BCBAC039D780EEF905D1BB35FC7A1386D1398061D6D2FDE7F8A23EAAE |
186B2A094F4F3636F560DDEA0CCDA9C142BA0E87C3A52D01692A5827C8F89EF2 |
133385B30DBBE17B59E57A515B4D4E366B55FC2F6AD4DD89C9E6BE3DA3BB771D |
3C363A5137B6D326C0A7A2A751B49F2549078AC1549F7CF2C9FFF11FFF41F160 |
F692867CC18A318BB48C80D99DA02CC0828D5813775BE607887B642772056083 |
3B61DE5FA5E4894ECA23429FC0460788F294428E7D939221E0E3BB8682947D06 |
89613FB5B94F704BB7DC72CBA5975E4ACA0052D37798349DC4A8C1CECE722571 |
E5FEBEC16363C7386CBA325B11746562D5E4F9110A9810FE3B42798A18961390 |
3962D72670762DF26B65547EA3D1D22357836CD4761AADE6739F7DF26FB73E55 |
CA957B7A7A3D37D36C449073CD68EB8787270EAF59B672F4D8A176D4A1323515 |
670DEA9A6D55727E065E3C0C5AB531B36AC50A0DC2CDB439276B627C6A667606 |
01072DE7C0C0208F6526D47E2E5431F3182A2178160F8AF3D3D426BC59FB235A |
025B87DA04D1E49E13A27319B3275373F97B660F65B4DEFC176D8C9446991D92 |
11609486EBAFBF1E2E2A645106C7CF7F51FA654885B07B2ED69C22AF2E380D4B |
67329715BFE7FC00C932A974BC8F747B4856574EB52085A46FBE2BEA97B32128 |
529B8F9A6FB639BA11287CF39BDF94EE42F6FDCB86DABEB08C0C72D3D66B463C |
3069422D875FFEE55FFEE58F7FFC637AEE02E9E120401C6958D33BEFBC93C315 |
C48B978C939D8CB2AD823CA670D633C8A36A9079D7E97D9A6D0ADC81FEF2B265 |
43B004D01BCC0E3131D865095A6AE1CE32D7E2B7B13DD04CE233E44ACB03E934 |
CDA4E9CC7BF17EB408E9C968FA34E99135B00401226E8232624364D409E334D3 |
9CD2DCA5DA88C7AD043107627444090A763784A26B359DD9D9F8F0C1A99D3B0E |
ECD9751851422BD12D32A79E7AEA534F3D450E70CF1A3A66DF3CD50E579B0473 |
584FF69A2C66F6549A1D626A851195C4EEB23BA2D06C0A1665315D0BEF058FAD |
4DEE6F0FA015BE2C52315E695E94BA249D802BD34DE6C7F136A281FD8F8C9859 |
6BE4C915C426EBC6381D5807FC529A7C1D030F1B1CD4FD6E95CA6CA9544C34FE |
6D165F0533D06A43019A56A4FDFBF2B97CB5564DE6B6288AE8F256996E791A9E |
7AA60264540B04B2DE68968AE546BDFD96379F7FCF3DDFCBE77A4647C736AC7F |
26BEEBC8E1314D4AE2F83395A90F7C60D3C73E7D4D4F98D72E869ED3AD0CD2C6 |
779D6CADDA28F514021F0BDA3C36335E0A0BCD56CD0FE0493512AFC94A9167C8 |
F66ACD1A4255BDCDAD4EA73E44C875824AAD9E718BE59E815A35D642EC434EEB |
AD76B58998A0558B0C850BC4DF409562DD6699682A248A829CC6B3CF3EFBDE7B |
EF256E8C71287E4F7E41BAE14B7760893965065CFC3E9B990E0BB861C30678C7 |
3FF9C94FE8830BC3B678C70B5E9F3E2FAE40703489C5E96B407494C9F960A70F |
1D3AC4FB24ED38E3475C1F9EF59BDFFCE69B6EBAC949BBCFEC393F6A4954AB94 |
D462337BEBEAABAF16C8E9FC972139EEF8472498D29CE9F0C28CE97504731545 |
19439B054F2297CB1AA843840051C7D75192CD659CC465D4257C41AC63BB7359 |
92ECF2A9B248B5A4682FE185984C6CD30D37DC70E1851732034694277EBEECB2 |
CB3EF2918FF09D32131CAB8DB0E6AAABAE9271254219648FD5BBF8E28B3FFDE9 |
4FBFEE75AF43F8C52E48EE35B78C01B832B14E6281C7A5D8C0EB382EEED32F15 |
0AE5DE52B958D00DC65A5B274907F9605AF6D3226D2B9983B84F16E92A909DF5 |
55A725CD0F3A0822A7C39415104B0ACD6E422AAD93F1BF8C7E1F14BA196FA98D |
873606F8177AA8D85B9CAA4E3BA103F73F9F0BABB3333DC57CCB699B5B8C12D8 |
9830C0E66672DA672FB447DA813F36331D35DDED8F6EDFB7E3C896A7F64C559B |
580E6828F880AB57AF81F585CB0A0F32D6C0F3E3BC6CE22C4BB24818CE99ABC1 |
0272827192D222D85D02AA438599A762B5A9986D383FBF8E2C58F0BE6520AE34 |
5ED10B116A7496943FF8C10FC21BE3B748EBBED00C937CCC264711B740B8F328 |
0FAED5854AC75C3C24280AA87B4A085D13DEFFA64D9B6EBDF556E192A31F263D |
95F67120BC423213E29CD10A4A1B0425B0AB73D3595A2338294F9E1837BF136E |
F89920BF62C5AA5D7BF6E2E79E7C8FA37CDC61BD86404C0F1DC377C0E55F35BC |
A25A999EAE4EF6F594210410CBDE72FFCC4C0D5164FF40F9E081C38383CB88D6 |
D22728C2B325ADA44E150953618043B4BDD3ADB8F17FFEF7FFFED97FFE6CF9F0 |
0A189256137E47DC5249291C0C35380AE16BA3CB12E8C64927D2FFBA665A6072 |
1C3AA613A0C67994AA0BFBF784435F7E5E22AB036D8B8DBFE8A28BA070D904CF |
0C207341E253F866DC31DD6AB1A9DC0C0ADC821787E4E1B2CA2431A4C3456C18 |
6C0042044298E14A4B214E9838550A226203B0981061885AECB984839642F3FC |
E73F7FF3E6CD9D61448B088AFD5F0648A6390787962FE3A355CDD980A6E03811 |
5DCF37218B79B4A69EA5654C177E0D7F87196196A0B19E44302FF8B5B1A1B9C7 |
329231540E95FD204C4693D902DF2ED0723AE9580DDC06F172493AAB952CD658 |
37BB00684FF14B4C2BC9FAF5EB1137E3E061D95FF9CA5722BC20BE500E0E3F2E |
74E80444897360D65F17693575652E572CE56109F205AD495DA713614466DE98 |
146963D79333DF55B276E64142B5764F3A9D65DA85F7A5300C690C1D0E23337E |
91E901728D31700CE39182F3E4E90F622BB5DB9E0954B5510FB3F055DD7C2E53 |
9D9E2984997C2EE7680BDE6188F13321B16A3A63EB9567A276AEB777DFDEC3BB |
B6EE7D6AEB9EC7B7EEAC2B3F69357B8AA599CA0CDEABB367ED8E6331DF1992D8 |
0EA703426E4FA26598C5AE3DA1F2951093119B665C30E457F427C81B68FBE6B6 |
0A168E6BBE817BC451DB360D0F44113F4B19992C0E0C228986A2A5A7DD92D8D1 |
49BBC4F9296925635CC5C88FFA8189D3356BD6ECD9B3C7A6E4C3152069DBB76F |
E715ECB03BB1E6719E74D2494F3CF1840D6E144B4075248DD3E2170A5AC91EB4 |
B7144FBDAC856022CB3DC5D94A2D8A937CB654AD3787FA97F7F50D9CFAC217FF |
CB3FDF97CDE671AE6B357D9847A7469FB17AFDA1C307960F2D1F1D3D62A8758E |
B55A517F3FF669D4F702C4357B8FEC1BE95F0959D4363370EBF52A1C8B8999A9 |
52B1305E399671BDA1E1FECAEC64AD560D42B6F2BA956A2597C9B59A0916B894 |
EDD7021F430A758A13960071432B4264504718474BA00C820896208995AD49ED |
D4306701B230C5F5C5C64071D325594C531393801FDEF296B77CF7BBDFC523C8 |
B844958E255056CFD4BBDFFD6EF88F070E1CA03AE09D2CD1670047E0FAEBAFE7 |
DD0A8D5A7F7F3FEE8D24D57013DEF7BEF7F124E04E985E148F830FC87FA58AC5 |
2CBFB4312F6609A810A5C68B9FFFE44FFEE481071E58F0FDF96C0EB1E78A9115 |
070F1DC421676E070E3F5CC5DEBEBEC98989B24994E3AE60323F77FDF54AB753 |
E982076282528F6E91C70FF9424E03BED28A9FD09ADA195B11CB8E476205FB5D |
67800D0782D27BD9CB5EF6D39FFE947FC55290559025626CCA8D37DEC8EC10A9 |
0C697824E74B13289DE4A25CE6AF984451714A7E492757601EFC810EAC799C44 |
A33C0337A707BE646109F47C927C467BF07E273D0D37C8BC596BDBC871256D4D |
D775416370BC4092743ACB0C17909B566563CD18AA93CBC72D01C4D051E9F826 |
58020DE548CC844BFDD96C6F307E6C62CDCA55A11B1CDCB5EF39EB37B6679B5F |
BEFD0765A7E303E82202FB9975455A556335BCAEEFCCD79F736CBA72E8E0B15F |
FDE6C9DF6CDF85A04F3553BAFC761B82313BA331C7E552CFB1F1311B06E3A43C |
715D88BBD34F3FFDBFFFFBBF2FB8E082CF7CE6332CF6D8231CF8A2CCE02040BA |
D8C98CA32D0CC76A6E9585EF7FC94B5E82CB4A7FBB7C9DD484F02D64C7E3F161 |
BB95327003048E081FE984919F8E0E9F14D5E4F808C133533D5DCCA0EC926153 |
177CA0246D30E21C2AE61BDEFFFEF7DF76DB6D7A0E414F0F7ECF9675AA20BCE7 |
CFFEECCF70877876A64C05462891AE63A8B738365C783645193EBD25901CAE93 |
8E7DC7457BCBA5A9A9999E52AF4A703C14C203CF0B07FA87F61EDC5FCC946A8D |
566FA91F1168B55A79FFA6F7DD7CF38D49EC9185BCAA5F7543454BB291ECD1A3 |
A3081120B46C7B8309C966C37CAE746C7C142AB45CCE5766C71D0F3F140F1F3D |
383C34FCF6B7BFFD1FFEE14EDCCF283C85627FA30EAF29CE67FA3319C49D2E6C |
40A359C5BFED486F83C9B746AA53EFA225700824C76E516F920C8BA35778DAE1 |
399E78E28930CEF7DF7F3FD43A1B3A165B1FC78C5CA60BB976ED5AFC8B4BB1E5 |
42EAB792F5930F0A2007C1E0F9E79F7FE595572E767DF6F1C9F8AA2ED2024295 |
24F3C352B0A45FED728290EEB2FE4F4766314B604781CC90B01A26B336E7DF27 |
560007F5E1871F26B39832D09D580F43D7A9E143070F668C57CE86098DDEA956 |
43D3E4A2C3055337ABE37499DB79F9CB5FFED0430F7188F1E5975FAE94F44375 |
A454B4BFD41EF1665E59605D32D00D8F497A57CD869222CA9976E3A3497FA93C |
0E44823729A320A88FA89B1C6BA81645083FE3234F3DF5149E948562D96BA955 |
3829EB94141EECB26426744BA5627F6F4FB95CD203617221512E71D2360E5DA7 |
2B3B72946D097864162C1BF087C0E9F0928A31E8608D62652C81A297ACFB0134 |
4015BF090D6D7594C05AA8B6A91EEB27A8FBF5E503C3F5A97A4185F7DDF3EF38 |
6CB3E38D82AB8AAEEF2469663032F1B7D9422FF40E372327ABA6EBAA50CE37BD |
EC81CAEC34FED66C78618893E09243B7D92CE60AC38383FB0F1F8A2D224895B6 |
4D382905A1D40C94F1CDD31442779796D44265D0D8F1D2A6F506F919428BEBC3 |
4B403C47854BD406E1F95D251FBC939CE774F95966808DC10965CF0145A28BB8 |
0C1FA18CD9E22A57A65215EF47A570265692E9C7105FC0EC25353B2B4FB60B02 |
89E27005BE99BE3F2F2BCD744C204B4319F58FE0AA8F8B905AE425D54E0A1F2B |
D4A562F6D0A1D130C0BD46BDE581A88DF5D5F5DBD5ABD662D7F61E3C30D03354 |
AB36E0C5E7F359C40181669EC899D207D98363130ACDCCD666579AA93590DE72 |
CF40A3D1822C8561360C4AF97C66DFFE5DADB8D2D75B9C993DD66C55580F99AA |
4CAC5DBD7AEFBEBDF95C51F30EB59342BE1CB7836C2E8497D0842568D49A6DC4 |
2B78F296EF25ED084BAC655AC38ADA4A3236DC306E098E31FC14B2F109447D85 |
A95D4B1D78C1C521BB3A93BFF8CFB7BDED6D77DC7107B750EAF2CA9A6E41C521 |
081361705A6CFDD9024602517C6AF5EAD53B76EC607959DAB5ECC886B53501C3 |
90F49F254A92D3D1E561126389EC904A87B8B1A5569926CFBFFAABBF4208B2E0 |
9B996727CA13DFC2429C8EB8C300EA4ABB8B093C4253E8E60FB5DA00076A1ADF |
50C3211A0DFCBEDD6C89078D47F8F0873FFCC94F7ED2B5E802BB2C012BE4A4E5 |
10BC93937650F349F9FBBBEEBAEBBCF3CE63C50B9FE5AD32358783CD7583FAC0 |
D5102E9C7DF6D93FFCE10F850A54F438EDAB4A099A08EB96E38DA3C8E5E509B4 |
F1639244E64764FE8190C8C295EEEBEB191EEC370C07615647051D56EA56BB21 |
092272AA4812436877BBF6514C42C60B9914A131E8C40B9E134706B5E9256209 |
E0D2692DECE5F49082189AB78D105AB71468EC90EF0471C60D7B83FC4871E8CE |
1BBF0A938EF7F5BAA5463CE3EB6A844E0A1B63A20CED975355492ECC8E36EB99 |
7C76AC5A47600501457419E60BD57A2DF1DC679FF89C2D4FFC161B8990A35C2A |
4D56665C8B8C214991EF321ACB31187919632ED3C2BB723E760D5FECF77C2090 |
4AC34AD69671AC76EFDE2D250ADF9A412F8D6CF0D5BEF8C52F926011B741400D |
B43CB6157FA5405289F33CCA2C71CA06058F1CFB921E6470D0D51BC45C0D034A |
F1D51C33E2023E963816B80D9E32AA7E9A0731847459DC940D9B7E0F6D00A494 |
23B5058DCAE8594CEFD35802BE9BD92B3CCFAB5F75FA238FFCFAE081C370161D |
E5978A7DB861E8717D141DBF1D25BE1B96CB7DF57AB5529B5EB17C244E746A72 |
FF81C365DD70A0B5525F5FF9E0E8C18C17BCF8C52FDEBC7933747A7FDF50B3A1 |
630BD70987FA578F8F1F85771F84D1D8C4C13869F40F200A99A8B767D6AD5973 |
E0C0BE16B4BCEB2F5B3672E0D061EC75211CC4F93196000E72A5D96EC4899EDD |
EA3A51AC4723684BE0B809D39278FE55AB56614B68C9110140DD20D4204B0F1B |
D609A2C5D230E9BFC4E270F5F959CE029584328FBA2DA3CAE2DBC19967067C09 |
2C10FD0808010C00259B09075CFC965B6E41584A11E4B7E3B9A03ABFF0852FB0 |
0866A7F5D4DC196D4E3A426FB1AC148E81C07238F7CD06442DB00EC6131C59B1 |
E250DA5F962136AE5ADDF08C67ECDCB1431FB020409845944EB3D1667B36A1FD |
4C64D7F46F3AFE115D33AA4BC99ECDCF0ED923A0C5BBB15BC91895D3F2CD2F77 |
13B4875861D7AE5D323FCE5E370183F274D94014221A782CF144975C7209A448 |
E015FCBDA45F597EE7F593747A949C6A7D651F716A79D9D0607F7F2FE4C17558 |
E1EC0CD98EE2CE07957F5C9149B7818896A072252C08DD20557F9D11F669B860 |
1A0B8E0F6E710C29A91E31630C6DA49296A693238A347097177B268F1EFBD583 |
BF989C4A46941ACA151BB5D9507352C3E5340F92186E8C2821D351808F16338F |
CD4C2D476411BB08D3AAD9F049C4DC3DFDE333539952E1B43FFD5F3FFFF9CF1B |
B55AE07838A38D24B2DB1EF9385E3A81CE3E0B4A2919BA27CA5DD4A54A395D64 |
B3EC8C909C02A9280803BF4AC7F77261ED62A134BE708226676C08FC5AEACF4E |
DAF7C03094C0E56BAFBD16CE1334AFD80665DC351C4FC9B588D6EE02C5DAB10E |
33018EE9CDB4C7357BE96459BA14780422DF64655C6BBC2E5B7C38F89D288C38 |
9D926DF3252F9A1D92E4A3C8998E92CA9AC1B1A96924F29EEB673205CF0D19B3 |
E472F839D36AEA0EA623E347D6AD5CB3FFC0BE7C310783315DA916733DA6F3A0 |
CD6EB2673D0BCED933B76EDD5AA9541158382ADB6C2471E49672C3996C786CEC |
A0725AB9BC3B531987B4C0B11E182AECDABBA3BFB717323D33338B8380A390F1 |
B3AE2AE4721AF8D0D05469555802D30C09E96E9AC1AD6D2C052C414BA7A1B573 |
C15A2BA911789C984F4C0C8754971FB1444C203965E175225451F6A90BAEA0A9 |
930E1F86022251499236762D767D9106B12E8259D6FAC2C8A88DF127C33EBE85 |
F326291CD878D88917BDE8458F3CF2885C990CD88BB53D27E9842695D6B8969E |
DA98CDA7A818B25318278559971B6FBCF19DEF78C73253079E9C98F04C7814B5 |
E2A2F1B9B0342593E06AE82A1102083D5215FE178E90B074B076B7E0F7B2B4C3 |
260C98E15FFFFAD75C7CA16992CA3C7EC009C45F49A8C77665A9A22B434CB47F |
FF7E9A55FC95C2401639C935D9C021A9DAB128F28C673C83D65A7AE5545ACF94 |
F7F35988FE4AE1B3018788F99E5328E48606FA878707F56C3E5F58258C76509D |
DE02580295664E2420E8F2883B7EBFC96279B19FE2A73BC680F021DCA0FE4F4F |
C696B98EA918C78E56B5AE3E3291AB230927637A0BFAA793FF7CF03FA27AB2AA |
90EBF58299E9E9023E11273D69BAA91D47FA59CDED6A7C60AC7AE14CD4663241 |
08576A5A5FCE1B8BA35D4E7636A9B794BB66E3861D7B7643E9FABAC817C50B81 |
EEF99F2CBC41851985D394CA9C9376DB51958B22E66763333B0C8E4B9CCED2B0 |
2D01DFC0232F34533CC27617886034042C2EA2E518CA4FFCB56BA0A14D02219A |
1AFFE24892119AD3BC6512B23241000B51625A6CDBC624211661E7CE9DD2FF48 |
554E73C84E524937D9B1889332ED3374C6579086880BC2711D8228395E3E594C |
232C583176B4E705EF52057E269F2B4DCDCC0EF40E55AB35F3DDD9C999CA70DF |
B2E9E98AEE4909F47CBE20A35BCFC2A0D0A84793954948B6A793F651E005E572 |
C940A39C463D5E3EBCB6DDD2FD29AD1A020B2C69AD500C95D3ACD5A711C9CE54 |
265A6AA25FB7DEB54E3EF9B9BFFAD5AF601D35E19D1F38DA3BCCEAEF6A37AAD5 |
4A2BA2018074B71813E000BA9E6AD435651EC34CD9663E1714D645175D240B0A |
3D489D22C8E2C5D6878B6E03FFE9484A8B8A087717A05EA67175419EED173F2E |
997DE958A6872BF32C71FF975F7E397C520E5722868C5BC688155778D7BBDE75 |
D34D371103F3B48318F1157FFDD77FFDE31FFF1882CEFA36793516951326F88D |
A6D356CDA4804852A80C13162215DC00CBEFD3383989CB94914A4B1A71674EAA |
4EE8DB597B49A9AB8550A4F419F97E7B2AA7AD7F95D543C45E4A665189EA2169 |
364E05CD1E3BC63FFEF18F633DB974CC26C166E0ECD1BCD9706C21D0A7D1654A |
41F84524E2E6C7F1061C3C881602C734A147908FF6C911480CF4F59A37F4F794 |
0A10F234B961724191F60423A7A3F7EDD4904A99E9241A10EEEEA4C9DD89C412 |
386CBB51A46689C51270EA64A472FA6DBA770CEFC0D95781E930D8F3C3FF745A |
ADBC728772D9C96AB51F6BAB61012A5F7334C7A90EBDE3962E14E02BF4573713 |
8DD9C8E4DC562D1E2E951AED68C6550766AB3BB3FDB371EB5873A60503053B04 |
E73A9385F3E6A615758966246015A7DE4D8715E2E4C2E9211BA33274D0D47D70 |
C284980BF7CC740A13EB32274A2C81E4E5D4DC5EF48E614B8173A46C52C6DFB2 |
6546262925294134C308822C5874A44F80F7E00E3FF4A10FE108509C10644300 |
D8A22B819D4CA1A087AE4CE8435712FF22FAFFDEF7BEB767CF1E5E13DA1F57E0 |
209D0B2EB800575EB76E9DF05DB275864A4020AD12FD7CE73BDF39FFFCF3C995 |
2D4D12CC47E934065784F6C149D9E8D4927873AE9AEF6B9BE328CD7A313D33ED |
A8CC60DF10BCFB899929180368E189C9B1C181C14AD5F8EFBAD558A789FC306B |
CE89E3BB71B3A19D9D0D1B36EED9BD1FFBD5D73BA889E782FE4CD63443B7A0BE |
F186D976722C4AA6A2B6AB939B6E2B8A89FE7666A6AB084120518343FD58C689 |
C963AD560362D68A5A1E7C9CA466108E081211CA3A23CB57EEDDDB2183C43362 |
116FB8E106394E42524F213BF3CC337FF2939F40B63EFAD18F42C9127B4B51A0 |
D2B117841C84940FDB0799BF6EB0E7575C7105DC5ECF0C32644293748C2AC5AB |
B0C873EEB9E77EF9CB5F5EEC3A6E3A0786396B19C3C29096EA895C3D4F3B5965 |
FE8B1ED619679CF1C0030F404AC8FA20418F8EF68E1C11D0AAE43DE980F0B3D4 |
BC500E922AD56A31D127BFDEA8E7D2163C1B8F4077CFCE62F16696C056911C89 |
17E175349B664A5F6337BBC94DDA3842A1F297493E72B0ED5911D215CC428B70 |
6EE323F82C753AFE8A6082FD3E023A92B05DAA32A2A718CD98D8ABFFD8B1F1FE |
011CDD693CC7C8C8B2B56BD70EF6F4403D418C67676788456AB6E02D452D03D9 |
8C53723AFA95E25E086A88E96FBD2C0D8915B8802916DC9D9350928F67836C2B |
74271002660B5EA359D2EAA351EC2B4D7EFF3F11E36434485C05B1D26D01AE06 |
9866B4A7E7458DA88E5BC3F32A4D5511252A9BC4D3AD063C82AC9F2D41AF45D1 |
4C43CFA7DD826DCD8607E3B8E67BF51ACC815AB17ECDC1BDBB4914494926CCD1 |
F6CD6DEBEEA44C8E527E77D2B92E9247C269C2F2BEF6B5AFBDFBEEBB8575D18E |
0644000414C0A891C787840BB83861360C3A6598A0AC9897BE78B7641F122206 |
1A0F961938EB850220353F6E9F943A94956AB67784422860078126C29C40F567 |
CD8B8182346CB2942B4871AE893DA7814BF7894F7C02EE0E8BA3F8209BF6F5AD |
AC5CB9F294534ED9BC79B300AE97C0CC30B230D59B592CF7DBCE7F47B3D55CB5 |
7255650A7219CDD61BAB47D64E4D4E4FD7A6FA7B7AABB54AA4BD2A6890C24C65 |
76BA329BCD9672597D86232C858AFB4A032F3AF5B403FB0F1F3E7CD43799CAE9 |
A94636A775AB8AFC484720CD28198FD484EE0B4B1AAED7AE37B05519DD90D486 |
3805F5C8EDC917474686B6ED78AAB75C1C9F3A96CBE46A8D6AE027AD364C2BF4 |
6FCFD8F8849302DFF9D83CB136FF3E91C8ECE71690A500F0A158B1A9704960E1 |
376DDA4431C245B07ADC2742C104C835FFE5A5738FB180F01AFEFEEFFFFE2B5F |
F90A7308D8632CA9F4B2B292B118D39C54AA29CDE79C730E5C06BB83DFB54635 |
3C2DCBC582F7A94C6044CA39E98C2542EEB39FFD2CB908C9DF29830AD8E129F3 |
7934FA766686BD8E72655A828C554953294D90E45E1909D9F9E2C52C012B0D5C |
0A3B5422F64E46B632404E526200665A6C6B2DC11C4769DA137554CA9D27C53D |
A232589DA6ED6161809BCECF12642203B964DC9BB29A480D34303735052777E8 |
C8D1513D07C6D7D6F4E4934FEEC966355567E0D66A70A1B4FB566F54F592389D |
4E021A039622C4644A5E483494D79658EA788FBDCE2AA46CED5D7A27683B3537 |
AE396A59FFB05F6D64AAB5437B77CF4CCF6EACE9E0C57335B504D6D1D3403C6D |
0F8C49803F17381A89AAE3BC968ADB51EC27C9ACD2ED3C81EB171D8DE06BA916 |
CEF16CB678A4551F0FC3DDB3D56C98ABC771A5DD28F4F756C627A5BF5DE44188 |
F8A5009E3E8B626A143FD36DE7BE509DB1C346A52C092A7587BB2E222FC21368 |
98BB40AB241A71D229025D1446B268C49249A30019C3247094A75056CE594896 |
9274A286B22212C927CB0D6B0289FE7E48266142325A80FF2963CE58B8E20D33 |
D9056522D364E161F0A82AE366F10E717BB485B8882E91F2CF2C3C6265D9A197 |
3CDDBC56F360FCD458B9A73C353D552E0CE9DEB046BBB7A79F45BCFDFBF7B655 |
13820F492995CAEDC88525C865CBBD656899CA8AA10DA640AF06FA870E1C3834 |
5BAFF6147A023F030F488FCB0E324E1CC49197C4385263ED78A2DE9881839F2F |
C25FD130F9E9A90ACE7BBDD15CBE6C9D192003EBEDE5F2E1F4F464A44B5EBA8C |
DD0BA335A503FF95AB961DD87F04C111F4A67801425E685B60FCE7FBDEF7BE6F |
7DEB5B448311B246BDDF952FB655898DEE5A22EB623728702625F79ECA88B442 |
D2B2B89825A08840DD60F5647A011604DF8E7B58B366CD79E79D77E38D376213 |
972E472FF6EAE27464F59BADB9F852C443279E78224C29590BF1386481E78308 |
77CA0A5340CE849946B3E1B91D25C8C00BCA419A06E4E4DB25E2646E0FED62D9 |
B95B6EB9E5BDEF7D2F1D7F6A7C52CDD8ADD4F813A375AC1595789C7297CA75D8 |
6388A5A3D5EF9A3C45D9E00D9F74D249679D7516DC3AD618F02FE2B6D7BFFEF5 |
541C7833FEFAF5AF7F1DEE82AE8BA4450801758825202E10BF81193874E848A9 |
54686BB0830E5E87870736AE5B8B2BC04E98A450ABA65FB37ACAB793D690D398 |
402C8138AA92D0D0DF1879A9C4742C01D7B31D47B64E1435946DA99AE724D9A0 |
9C2B4C6FDB5D9CAA3913152CE2723D645C370D682A31DDA3192BCB18E811F761 |
0897AC8A38A0DD6C99A9810DD3C5E3B94E2E569A8D122728174CCD369C3073CC |
75B6E2D995DB33B462E7D851AF5C607D4E66CC5191D15DE51D7AE9604ED93BE9 |
DA65244A63ACCC3C0C958E15E36A0B35489292EDA8B44EA0E631AFAC5EBDFAE0 |
C1831072FCFEB4D34EFBC94F7E92A41DE37606BFEB24E266B0FB070E1C80327D |
E31BDF48CA2F6824A6D3F1B6134E3861FBF6ED4C31DD77DF7DA79F7E3ABD01A9 |
F7382981EEFC93CE3B24A925AB7174F999C9E48C612603059ACC785DFAE6E8E5 |
08570A4D88E4C40863C529EE608D6DB4E9FCA972F32D014F4B6F6FBFBE0FCF8C |
8E6935E19E9BD4A7F7F76FBBE8A1871E7A72C7965C98A937EB1B376E786AFB36 |
6C504F61B0D574F3C5BE81FE917AAD393B8DA7CA7B2ECC72429E06DC8CEECBC8 |
2B4D5701318BC2388220C1FB9F68C5138983F0A29ECBFBCD56051A7F621CEE5B |
2F2C0A1C4A9C1CDC43A5325D6D56201408296AB58AE7278D663D089C7C3E3B35 |
3DA3AB5C71877E920B21D46CC254E398D9F49AFBDA0CDA3DF7DC73E1B6E3F750 |
6D36C5E0F2E5CBB11904DA73C588380A0C4246060FCD5F37D7F4B8338D68AB21 |
E6196C8CDAD27D0CD8E00B2EB8E0CE3BEF644A4AA59925916C861D6CABF94363 |
02658C16A7CBE2E2887884B591450B2CCBD7BEF635EA4D3725CF2078D986EE11 |
9ACD8555C613914665A9A2DB3FC7D64C8FDFC71270901C6EEC924B2E41A48277 |
420CE0F84841CB33939818604912D93EC36EDAB88FB01D4F8447130FCEF601E9 |
5E71BB79F221F6F7DC73CFDFFEEDDFAAB915450E5480E4DC7AEBAD6F7EF39BB9 |
024C85C9570BB1B04ADD2FB37DBD3395295C19ABDA5BCCC38EE2379ECEDC2666 |
8A7A0DC634B252437C49D95F5AB1A8133B5090B6348B51DDA7D6481D5F58DBFD |
CC39FEAC93C4193F6827877FB96575ACD67B419F1B4CB6AABC7BDFB8F9BE094D |
F0C962D6EC66A205009660BA596516B26D2C41CBD0D365E304561A7162369FF1 |
2AB5D2F0C06F8E8EAD3CE1590F3EF5A41714FFFECA8FBCF7AA2BD3E49512461D |
59A838652697A9A5D4CB5C6769F9E6FB79B2F02F84FFC89123EC4616BDCFF591 |
3A33359E1DB1E1295EF8C2174265B3BF9D53D5284BACF488BBA32C6F983EB8D0 |
BFC3497AECB1C7982556A6EC4C0BC1F1DAA27368B0696644FE6D4BE0A4341276 |
772A891BA49D4599F4805C4D2C01C7F35121D8092E88252E287C6238171CC881 |
EB700E8F4365443B2CD5CB25D805041A0157D87C0A01A546BC1E3D3CBE61FDC6 |
F1F1A9A9C99956120DF50D8C4E1CD9B87EC38B5FF2E2FF79F8D7539355F89495 |
E9C8F54AF95C7972B2E23B83857C096E259B0F8AC57C65766ADFE15D7D85B0D3 |
121C655C27E363C5DC9956044B30DD6CD5E2A41A2550DF71AD595B36B8029141 |
B5D5EEEF196CB70CA1901B359AD57C415B82466B16A1BB1F684FE1E39FB8FAC6 |
1B6E1E1B9B602398044A36CB4D924EF8E422D22AB0B04C33408C29F909440590 |
AF42BA607E1F0BCA2F8516A053CFC40BBB99B8EB52FD5FF03AB8554ED42315B6 |
4A710ECC5C5347D8D46FD1E2A31116BB4F322F3DFFF9CFC76148D2267E3E2CC1 |
F8525512101EE44128185FF08217FCE637BF91584A7007366EAFCB12D80A5A6E |
E369EF53B4B654EC85919BACBFF83D5B1A059DDD85EB5556A30D3E75D555575D |
71C51532FA433AF2445AB0C8F0FBEEBAEB2E9E6DCEF814041A35FB37BFF94DBC |
47A0E58283E2F792D41EB70A95F5EA57FF15A20AB637EA650C9D562B593D3200 |
9D084B902F64C33030BE7F0356A199E6B5A8F785AF54A525502E38D5815EE7B6 |
C88FC947BB9D28DFEED4B3F3E68E17CCC4CDC4750A913BB3F9A9F56D6F65EC04 |
493B4A07827BCAA1A531457E05DDAEB3E19172033F52CE8C99658C178250AC1D |
1CC3D05185D8C9AB24D48C435E7F14555C752C528794E686AC660BBB5BCDA9C0 |
1D2AF51013C144076E8928B8F996808F0C15F6EC673FFB89279E60CA8E497CFC |
70D14517DD7BEFBD70E36CE61FC15E0BAC4B2C816D9B29E4ECF8B16B4542952A |
F269C34024238765A1CB254E37E37BDA9B33CE38E391471EE1F83FFEB50B272A |
219D442AD290C44662EA1C395F2F7FF9CB7FFAD39FDA6530C90E2933360A2F27 |
9DE441E9A2EF4BCD86B791A79A12CEE0F2FAEBAF77EC232175F3A59B0C9441B9 |
BEE005A7DE7FFFFD4383CBB05EFBF6EF734C2E3156CEDA95CFA0FB0CFD3E3933 |
3E3CB46CB6D208BC1E04EB49541859B171B07FF5E4C44CA316562A55CF0DA7A6 |
6672B98CE7C7515C534E94CDE86E00BD5C6DC497595882484D34DBE3B5C6B80F |
EF33A9F5F517A7A6C7A09510948C8E8E150A7DAB56ADF9ED934F96B2A599FA54 |
291FCE5627F2F94CA53A89150A336E2613FCCDDFFEF59D5FFA2A753A9680BC02 |
767F1D13BECC6060B164D165596C3673D1D4B29D3CF058629CFFC578721C33F3 |
84B34FB9C8D217C6D38B7D62E31FBC12421416BC0EC949540A8FC1FB7163305A |
708D376DDA848BE09A6433457881772E96655AECC5FB240B0A64487AD0F02F61 |
7358ABF7BCE73D37DF7C3313E81278E21E58A37ED9CB5EF6B39FFD6C6A4667BA |
70767DD353DA6A36B346B1363B1A630E0180B22CE8EF690C10CB13FA29112E71 |
A2425FEAA46C4252569D7F4DBE411C029A2B098E252C90E41B3FC5C63DC1A1F2 |
ACE20DD808010B0A01AADC0C5F9CFD875B42388BEF5DB66C68D7AE5DB86DCDD3 |
60262986A10EE94AA502FED7532E99DC5403BE2C0B0F6209E495583444AE3514 |
A5CB1228A7539F740CA7B4BCEDB825F6DC38D4CD01C55A7BFAF1A7461AAA0F82 |
AD544FE0699239EE8B49F4699C10962569E971E24AE30295E3D5A3D66C5B0FA3 |
699B3E32C40781A38A896E4363AEE09983A5A3D333879B2ACC87E32DB5ADD59C |
CC668FC54DD58C65DAB0642DE83D48078660B2136B8C97480BDD561235F222CC |
C1629119B6CECF0EC5E96C48FA0D1C4220697DD181C44F737305D160C7526CEC |
62BA46E61A315217B8043D7779165ECD1609B93DA901C857E067C497EF7AD7BB |
E46AF822DCDBC73EF63104B24291CB22993C1D3D39C19773A144837DF0831FE4 |
C4567C9CA52C5CE40D6F788343C9E6ADCBC796E0E0A4E363EC9B86ABCF4CCF32 |
EF59CCF7C0375A31B27AEFDEFDED24EE2FF78E4F1D2B177BE05484410196009B |
D26E65FB7AD7950A439599E64CA5E6B99965CB5698327DD86CCD28B7DED353A8 |
5526D93AA362DF7542D76935DAA3B5C6685B557B8A85667B6AE333D7EEDDB7DD |
B492E68E1C1B5DB77AE38B5EF427FFF3F06FF61F380001CF6413C76BB6A35AB5 |
5611DE21E5A8676C583F3E3E49EDCF0DC3BA3007221D64FCD9E6EAA1A72992C7 |
6DB8FAEAAB3FF9C94FE252440DD123C00DC3897EF5AB5FFDA94F7D6A310B6A33 |
0E09973AF112745AB197975F7EF9E73FFF794AD582D721C881010A0D0905974D |
F6F6B86A6176FC832C818C5B90CE49A15D64C40A63C39C86CC0C71E70EF0618C |
E2FAFAF4C2DFC8A4F4299D6123D5A7C13239739BC89688B1C49CD3F18188E3D8 |
C46672884AE93A78A8EC148D54D4F9AF602D58A121690C03207AA3BC14FD44B6 |
2213E48E67E4EED31DC3CF2CF370F13B6CA396BBE0A6D4EE3436706799D1CE18 |
4256449808AF9546D184C62FF1A0D0962D1F364E465B8F0D4E4301497C53B9D8 |
29231B4EAAA23915635A02FDFF9A8BF43837A7EDE1EA34FD74353339DBDC7774 |
44A9126EA610649A262BE228D803CD5F6A285CF0FE76DCD2A392753940D3CF23 |
98A8B59AB5186F71A655326BFA140A89195EA879099D2CFEE2A96AA4A6CC5CD9 |
493FB343C547DC486990A74E787EFDEB5F67194FA5E94DDB4B70AD9794CDC57F |
57E9681059840573FA1DC39836FF77F55772BBE9D3604FED81330844E09F5148 |
C41EDB3524785D9087D80C0521E48CF19340486C1C5A970DE0ADDA7D0F6206E8 |
924A33818C414CAC6E247E8BB8EFAC9DC875F02FF409B40ABD16BC93392BB10D |
5414279F7CB223894B69C991AF5CE2049A5101A63A516DC4491C06E1A7AEFBCC |
15575C556B344BF972A3DECAE561A8E152C5B97C396ABB512B544939F0FAB3D9 |
E5D9B0CF73B3D57A6D7868F9AA95EB1F7FFCF17AA30A67DF0F5BA59E6C6562CA |
48ADF29C4037AF79AD7AF348B57158436B0AC1E8F4FE67AE5FB36DD7968C1F94 |
CB7D13E333575EF5D17FF887AF1D1B9DC4577FE5CB77BEEB82F30A257F6CFC30 |
5CAAE999A9BE3EED2A0E0DF78D1E9DA092C2B1A7D1B64777319FC0A2257501B9 |
92484F2DB932AEB2A48F9C94A247364F5891E7BF64D68DCD07CB2B485E48A5C3 |
B996B8CEB5D75E7BC30D37D00E3158866B4CBB25D1221BB296CE322DF6120A55 |
5E8D74862AC5ADF34B49EF2C855F493230B4A26BDC8A0C01272C848148232608 |
4CE37BD46A4B6A422DE2AADB25CDA52BF012F0C686E388788FD89ACE2620C2F9 |
D1801C42E2BE70DBF61C1E35372CA01913D79B4C2476C3118E2B510334F636C8 |
95490395C23698A0E8EF1B8EE2569AB79D4C478A66716ACC0AA8DEDEDCEA35AB |
8C318B386ECC2E77CBFDF337C249C71D34C75B422E165D44AB7AEEDCC9BABC60 |
267692663CB1EF405F3D19566A3D1CBB4625F1E3420B5BAC07DCB463D5C21DEB |
BCADAB89E1FDC4775C4D4B1D45263208DB715469C33CF8334E3CEB6A2F2C13A9 |
7C12E73D3F97F1B36DA8255DEDA836A3E9249EF073FB7D674FABDE88621A723A |
E9BC491BF326864A00B224FF611D8853C648F72F4136A1CCB4B8F2716515C945 |
D4B93592DB14CA362A07E68BB041175F7CF1673EF319E9859611980236914E31 |
C6FAF44524DB4CE40F511EC24FECCC652AE58BD461420E313232C2413AF8AC34 |
4F48B14D88D35927100BC19C123B1828724247DA756F76AAA3E3161195C552E1 |
59679D75FFFDF74BFB9C8DBB521D7E73FD0CD94CBEDEA8FB9E8F55711D776860 |
B05AAD1BFBE19A6100FA9DBAE4A222B8059ED31BFACBE276B1B777CDE444DD75 |
825CB6E7D8C4E8BA35ABEA8D9938A9D71BB388FCE2A4E5AAA209799C7C36ACCC |
4EE472AADC9BDF7D6047A90065D474DC5690C1A3C6AD76B35EAF720B5F72DACB |
1E7B74DBDEC38796F50ECDD6C67A7A9D434776260ECE6A58AF3573393AB645D8 |
A728D6445E886CF59025DF31B84397075B543967620883EBFF43C575C1176D0F |
AE063D7ED14517C92C3DC74C8B847013AB4EA00E3D083130E24A880FB2E0F555 |
9A1BA53667F406ED868BC35FFEF8C73F4EFAF2381DBF459F9A1FB165628947E0 |
B001CA16A585DA84A2A62C6086B4E0D2F38D53864E9CAE7DFBF6493F244F9118 |
2D21CF122EF5C5D65FD2B2D465D4E644D94B0311FD328623765F056BB9820D95 |
F608FE55DE2C07C94D292284F4893BF5AA57BDEA473FFA11911B0203C301867B |
48CD62B304CA17318F2114175DD0B5F4F1A056DC65CB0756AE5C5E2CE5A1F07D |
270B99E7C3E292E61B1303C7EAB0C7708E13630E1B62240E66A7E32C71EC556D |
A72F3F80D56CF4EF1C5D9DB8EDC029B5A2756E76C66FABC8F48B787056DC5AA3 |
558BB50A713D3F64E539D6FDC6BA510DC17BD4AEE9D491996843F89021292A2A |
27E76B9E233F09676103E21AC20308F14EE53DE11C1F6426590E0125F38C08C0 |
46A5B4981272B9161148575A5BA680503245BDF265A3938F574AF859C7639E76 |
B65209D211F09AE2EDC811C7DCA15CA4DD398931C598A55A7285DD7CF3CDB68F |
AF2CCCA8883AAD1A3DA73865D9E3314FD26E1BDA249E2F1A0FFAE80C2E697588 |
7AE713491BB65A28CB2AFC7DAC644015D0EFE7BD396A2EBF823215BF279E7842 |
344ED75124678359567764F9086CE6E0E010AEBB77F73EF3F01A4B00879EC649 |
7B3AF8659209DCFE6C6644453DBD7DAB8E1DC593BBE59EFEB1B163A59E9C1F24 |
B5FA54B184E337D38E1AE5D2725C5F9363A87698C1FEC14E34AAD599D8417C14 |
797E8C5F6A5FA45D9786FE4C581C9BAA8EF4AF191D3F9CCF61B52A95D9B1628F |
16975A55F4A6BB7C996ECC430403BB0575BFE903975E7DF5D5BDBD3D9C520B0D |
B57BF76E65EC22D5F182EEEAFFF38B591768017C1D0D18010950CAAC2FF13658 |
A214B818EF810D960B6E87BCD8124824928C5EA1302983AC6000844BB19241D5 |
0FCD8E0BCA504C7867F6787AFB452163C822852665A5A158E8930C98741810EA |
4A9405EF013783C7E72C2AFC95D685251CF2C791E617B7441F7F094BC09FED19 |
B6CEDCEE5FE98460369F1A4154B35408180DB0470C228D1B667B91B2DAC2DD94 |
D1880FC5A5C31DD2E470AE8E7D4DE13C60F186A3DF94B1D6C3C3C3B83805D82E |
DEDA690D3F503DE5DCB26543838303F942D6778CD14D341CA05AADD0F668E474 |
AE40CF8CC68C5A4F96DA46AC77FA0CBCC0768D25B904AF1F2A6560D7B12E4BA0 |
4DBE21F14D945B8FA25A121BA8A8E3AB444F8C527A705960BA8B71CE1116D4DB |
2DFD83693DF73470C8CBBB2A749D3AD49CCAD454321DD7633D13D9580215BBBE |
F62AA432473F973E843797D7DD5653783FB6ECCC33CFBCFDF6DBF17E44C6906A |
6E6B174482FD07F4721CD31D62BB0B5D66400B55E2B0E97DD9F2E54710104038 |
E1139B0F2616EB387DB2489BDED06637C1DBAEBCF2CACB2EBB4CA9EEFE1E8178 |
D16717C4879A8B7A903B5FBD7AF525975CF2E10F7F9848507209D37FC2BF6442 |
C577C1C9C352E0E30B561625A5A64C1580953C9E3E9546459D67B7331BBC0F42 |
18BB5077D6A53B63110B793D77427FD0D7030E27C7A7286781AF557592983E64 |
2FACD66B815FCC068361B0AC59CBF594574C4FB6C220DFDF3F303A7AB45A9BCE |
E6BC99D9B1356B56CECE4E359AD5E5CBD672A848DCAE0F0FE30C1F98983C5A2A |
E5C726F6C200F88113C01BD1C9860E6847CBD044D551E1C4ECF49AE52B27A70F |
F9617D7CF290998711EB068566DBB811C10B5FF0A2471F7D148770D7EE5D6615 |
D818D2B0BD0C4E01E32C2A480C37EC8F620924D1816DC377BDE215AF803B49AF |
9CC9168A8232B82C5BEFA894218B30E4C5787898C5A2938B1DC47EC3EC413B63 |
EF056B1F9B210184BEE0D1F0B0DBB76FC707D7AF5F0F252EF88DC5AE0F63F937 |
7FF337FFFCCFFF8C2BD3D86CDCB871CB962D1CD2FDD6B7BEF5B6DB6E7BDEF39E |
F7D8638F1D9F66616A80B673C7ABE13F6FBCF1C66BAEB986993A9E617606E037 |
36667789FB91348E20A17187781081CDB1FBFFE4934FC64D4A0D8CBA528684D8 |
791E2F9DCD49479297E5A538C080737B700249252468311E78687C4EBB651581 |
893B761B897B412D86B0FB3BDFF98E68FF381D5AC2F67BFC9739999AD6A5A79C |
5FB162F9D0D060E86733998078E5D96AC5E43D229512EDC9DA0A3C54329FF3F2 |
0F99C4A27496CA733BC2479A83BBC7D7A88E2558EB642A8126BE68C37B4A74DD |
B9A9926AA241A289EE2DD08DC759E5C108E3B67281AF497F636D0CDA5152370F |
06A5075D10A8084F855034546143D7939B0819E2D412C4EAF8EDD11E90174B88 |
5BC4E1103369F76CABD48A4B358BCD3D52B1978BDB65FFAE3AA863BD32D97C65 |
66E659CF7EF6936604375E7D8668960122FD71E6A9185306BE4B27809E904A2B |
A9AE45A3BB605586A139EE96A24ECF0C37C6111AB6232EA541B680B139866E04 |
9E1D0A8AA75E4E193F28C82B56B398E3E151651F1FBB656927E82439B61EA147 |
23E47C765E285D7A9787568F274BE20DEB379C73CEEB3FF5A94FE5B305FE89A9 |
215C1C5A584F9B9B9ACC657B73E132D7E9AB4CE1EBD7341B4E4F6900CB373939 |
D168CE42B323261818ECADD72BE313A37DBD83783C5D9F71D4D070DFD123FBA7 |
2AA37DE5DE7A7302860D0104EC415B6F410DEB6CD8592BC34323074647078A83 |
A7BCE0B99B1FFFE5B1C9DD9B36BDE7FACF7D26970B60AE8E1D1B37AB995BB572 |
CDF61D7AFA0F3C1A4D12529932EBA8FD389951ECA563459DB4C1EF8F951DC2BA |
532E85A9185B0E4DA1E65296532F48528F6247E21AF17917BC3E090FB0AAF814 |
D410B91BA96199EFE63123C2077BFFB6B7BDED4B5FFA1291032AF57397400F53 |
1C99D21595CD0346818116DEB163873401510AD9AB219E974AF3FBB03DB85B02 |
C0114DDF7AEBAD907E3234B06643C7963F2CB6A44C82B966E60479F7E82ED9E1 |
08FE4A680AC742C9AC66BBB759BA31A844A0C739074D29256001FC400A62465D |
2A35D8DC266C1097D7350C392C189C71C6190F3DF4105349AC4348160E4A8A5E |
AA10085BDD76F8CF162D816620F5710A7A714BC57CC1D056670DF9BECE274039 |
33D12CD40549DA09453D257EAE5D61769DE3D3836D346AA4F99FDAC37B27D72A |
AF1D3AC5661B9660368C5B89AAEB0163DAEC341D8D106D685239851020EB3979 |
E504510C51C3FF34C1987242DF6F44714DA78C35012AA201B7AD99328EC62AE3 |
7A6DC79D552DC7A8FF9DCAFFAD668B4F2854649AC3DDDE71C71DF02A7ACD8023 |
19F9226EB55444F186534E39052B2CDB240E846DDA79EEE8C8ABB9A865DB12D8 |
E05A88C1E73EF73988250466EDDAB5B8379D76CB153AF615973282CD30348E3A |
A1C0B5D75E0B358877B26F402802F9150207B29D3C38529004A1A2B27398D277 |
CD69C66CE1A48CC924321C79BC1F9FE502DAC393E50C324466F07DFEF9E7E3C8 |
CB100566532555D5617315678D922AE3DCEC572A589262734B661CDD673F73FD |
55575D854DD76F3066C00007D8C7E155AA33AE930BBD7EC40449BBA7BF7FDDCC |
74D3F7B24180B351C9EBEE0188470BD100CCE481B1BDC3E561B82D3AB39F0911 |
204F4D8E29A7E9EBC9AA0D3D17C98F1C37D61DF8461A7C5FE3F0B6EE7C2AEF95 |
7A7BCB07C7761773AE1F36F285607CE2B0CEDBFA994A853211786EC06DA8CC56 |
023FE8EDEB3118189D5CA32D4D52226F51CD4BB031FFA12F1E78FA2F7449CE3D |
F7DC7FFDD77F25A7340FA4EDE9C89875E60459E517B294F9AF24ED57900DEDA2 |
48925AA54AC9FD05844E9AE8A7ED28249904A58A4E0391F8EE3CB2208A13255B |
B2F04C4A12712B05737C8A07D81E326E33CA2D969D4B0CA734DE830DE29A9C7A |
EAA9679E79260EA44A9D18816FDB12EEA503D1E0AD3FF399CF7CE08107C87349 |
684717E7A89BF282F13D77DE79275BC6485DC7EE90C870B6DBF689AB8123C7E2 |
1049D3A0262EBBEC32411CF0CD5DB38C8C4AF26909B05DC68784B9D2EE6D7F5F |
19C64C5312A94E45017EBC619CE87C90AB2A4026C1A8881AE252C0C397F589D3 |
D13A7AEF34DB5DBC7CFF342D41A1D95E672C01CE5BB5AE5BC8C412D4342E5503 |
C673C61284119C7D5D0F08F5BC33077E292C810ED875CAC88525F0A236BEE970 |
8418C23596A0ED261D4BF03B150FAF188116E30A3BE940EC38A5B412B6515B12 |
046C4AEF4D9C0FCA9B54E92978F6306195D26AD90C8CCEDC971878FCE9DE7BEF |
3DFBECB39D4ED3E251D72CA91624663C984D493A03FE847496D1330B72B61B2D |
F004362A32CFC36CADD0F7520B31334C213438823C7437761F824480AC8C1444 |
60FDD18F7E946949891E6C6092D8390A2AD171506B3254EAB8399405B52D81DD |
4061EB32E67F3AA9E76299F00CD87E9D356EC4BEC7714B9A7C1426019E8AAE78 |
E49C7A1516A2D4D7B3AEA7B86A7878E3BE3D70066BFD7D4353539341E8B4233D |
CB7E7A6662646468720A515E96529BD76D1D9566A35228666AF50A96DDD1E355 |
13A5B547CBC88DD64A6F7CE31BEEBEFB1B26CE0A834CFCDBAD0FC71AD0DCC2A7 |
66671B9038C266EB755DD828E475777BB5465661F25E4D8A9B40B2C037BEF18D |
5FF8C217F04BC248FED0CEACC55EDC1EE2CD2937CC32D3E8AA942648DE4F3B0F |
6507F93EEDB4D3FEFDDFFF6F6BEF016E5959DDFFBF7B9F72CFEDF7CE0CD38161 |
1810B02120266804630A26121088A189A022A0A052A409D2BB5190AAA0A2A118 |
51C2DF8098444C548812414CF2A3481B8632334CBFF5F4B3FFDF777FEE5EF3CE |
B94586789E79E639F79C7DF67ECB7A575FDFF5AFD8B6D3716A9255B495FA0920 |
712262491A9414E0A95DD68295D372F3CD378B37E973740D1D3010D8A79B0247 |
08DF0852047F2E3F9775AC5B49877AFAE9A7A32097DF3CD76DE1EED06A0E6B64 |
34F18DE9CB4DD5E4D65EF8F42CEF1BE5312CD188D2020892CAA9E3338E89CC2B |
A5083F7A90FD09B358B870216801986230232290381CD0B3A832216B90F08676 |
53D2452BF0F8E38F3330EB63A32DA07A1CA18ECBC86581DC246BCC908E909638 |
A41BA5AABF8FD0BA81BEDEBE149C8EC6F79CF454A44D1494F9CEE1696A0AD21A |
B44E5E61F141BDDE0C0D0290297D515EC137FB5EB8727489CBD78BCE2481F7DD |
D5BCB4A9A741E0F1B476AC19B9824454CE95A25CB1D1EC70917404EF6D4D92AA |
749AD46EF04231979392558C5A9AD29A5AB3E8723AB4A351C34DD804B927A2A4 |
996C764D8BE1C2D4DA32618C0CD83E0AA370BE59571997593FA6C6A1FC9AA140 |
66AA79C22797344E9CD08EC288EFAC9947094BF986F724D71BBECD0604DF0A78 |
822F894DCF1DA9D2B063D42353A0DB724645036050DA4DF42C30445DD6FD8290 |
86E807DB02B66C8037147E69B9444596A4A06B2603DB596CC334455DF6F9CF7F |
FE820B2ED01BCB7A4A4824404545125A3BD6E92481140BD6516F64F989955C79 |
A5EF2C5AABA40939FE9F0F15A471CBDA7875BCAB2B5FADB8A8D5DB2F49D0BD78 |
9BB94B57BDBA697CAC3A38307F7878A8DE28F7F48AD10F8D97472409EA8DCAC8 |
A854666F024B7190EEDFA8576437C862E8EEEE9412E4D174BD2410ED4A32A755 |
ACF54A8AFC5E2875169E5DF1FFBA4BAEDE1CCE177CEA73A5E273DEF01868A63B |
2CD99108C19CD973D6AD5FE77BBAFA72BB1E00F526AB0F6F7EF39B0F3DF45074 |
CCFFFB2B0CEB9B77C502655150A54C1AC0C1071F2CCB5723110580800F3CC80C |
368A0182B27162372FBDF412E5F2D8B92B56AC60761C128F0EB46A152482678C |
EE3153DEDCD2960DD8C7B0EA0CE23B0AA07AF90985CA96CDC281C43DA2BB61B2 |
C0052053AD12908DBA409FAF5EBD7A8688B19BCAD8B73C71432368CB2E2771DE |
A5AE338BE069005A643D4E6F64583CF1C4134F3DF514C5C0A045514367094260 |
59536B6D29C8DCDF7EE58206D4AC8955FA6847ACFDA4653A6543B563DC0CD38A |
8A85286D7DE5DB1D7BE32C67954D3998BEEF0D9BEA83F0A0B0AFB2B92652E1B1 |
19BC28AC4570BE08D92D5A3DBE432009C63B64E3B7EAB566230D4A6853C7522E |
DF02812EF2A567051F3020B9C8CF623C2D4B46A30923C6A3B5463E2A965D3292 |
D429F3599E4A029F929A46E9C4D7A4873DFAE8A368C156BD8F8D857B87F26F31 |
3E9D1A7DB26CD9B2E5CB97EB73E9E0FA64BFFDF67BE8A18724AA65EABDF0C20B |
CDB409C1273EF1893BEEB883740078749857DA260C52E925865EEFEFEF4DBD70 |
5EA2C912DBB871C8C5F9CD4D11B4983077BFAA2D4E130A012F6254467571000A |
69493EAD0C00035FB46E2B5D4AC313B520B4A02892C10093C7D368082E7A9095 |
CA8686782B68FDE6B2F430D1AA7E2E3E404F4D112D0D70585E874D6014CC6F70 |
16B751922D961E910120FBC7A40EA251C980CE625F7ABD1F43B1A0D1FB9B8C95 |
C79B6E34769D8568B058989B34FA2409CA637A564FAD12FBC5891ABBEEB66CCD |
DA57640D485F913C88E27A9AF838562B57248A2509F205E7B3D462CDDCA7997A |
0357564ED56399A6C4E16DE772656CDDF0AAC1BED2D0B0CCD0114F693E0F2F27 |
228657F4F50D9C7DD61724097DA8CD791946476FEF714A5D4361B5377D41615B |
D3618BBE8117D60959373ACF24EDC0072DDFD16D991B674202FDD74DEFBDB1DA |
45A2D0160647AB354FCB873FFCE11FFFF8C7467C849EF074871C76F20B1AB062 |
2EBBEC3DEF79CF7FFDD77FE941B874920C3198F99E70C20937DC708369C7B07B |
EBBE69496CC830CAFDF4FFA73EF529D92BB42A9C396B9604683CAAA832CD0C08 |
DA9E025F30D08B66D66F0305939CF46DB7DD56DCE4BFFFFBBF758D8C1214F6B0 |
951520F83AA5F867758A30650C1ADAFC4B990D5A31539B45B3760BC71F7FFC4D |
37DD24D2D23561015A32012FBC4595696A51A54DC9D3598BA40707077C0FDE7C |
446023EDC0E1D35A8843E017B29473AB38B323ACE369E875A11C6DB4644C4493 |
25412972F5462A33A258FAD458D3E70EB5FCE97113DD2B7D15717E020FDC355B |
BE263969B47C4A78EC924E59ABB21872B11E56701D63496B936F66E32581B709 |
E2C420C14D790775D9123DE30C89DAA42C130CBD9D2CA0F5014E0220614B2433 |
CF6AD8DC78F22B17D304A99E659434E9A62149E089C110C3B2FEA6496B0297C1 |
F2B02DD9CC3283C384CED00FD6268ADAF4156BA565EECDD0C999A9E31319DB46 |
3F61D0D89091ECB66DADF7B6C0D20858FC6623003E823B1535D38A893EFDE993 |
6FBCF14631B462512BDB48F5F7A68C805623DFDDD9EBE35D8D147CC33B31ABD2 |
5C72D21C92DCA2854B5F7C71DD60DFB6954AA9BF7771D2CA17F2DD3A1E857CD1 |
173B54CBCD66355FF08D5B9B2D6D52ABD1AC1472328A1B1D45C9CC8D29965C8E |
0809A31FAD7827405F579FCF8F6C942BD591726553AD31D47263512CC6E7E369 |
CDC6C4E465A6B49ADAB654394AAA745224466F1463A09E5A208B0D6ACFCC8B1D |
9E6A17B4EE31CE1B7A3FA086B089B94621AA9209A2AF0E3AE8A0EF7DEF7B6870 |
B974C935B4B45833D2A12B163CCD49DE8E8F8D75F7F48CA5EE8E62667EA6AD60 |
7C0D4EBDD698357B70C3FA8DF9421A75ACB7380C40A010AA7559E69C357B425B |
7469C03397F93DA7CB136BE3BC5A9CCB2FBFFCD4534FC5E103DD8BA39D79E699 |
320D4521B036548AE9BC6AD64701F4A4934E3AE99A6BAEA1EC803C39DDE18003 |
0EB8F7DE7B61A62E8DE71B2001FC9D8280E38E3B4E0263A207643A249766CDE2 |
689632A845D66F61D09C5BE0E3D1A1AC88448FBEE28A2B6432EB0E071E78E00F |
7EF08370133FF0810F3CFCF0C37A288FB6DE4158D65DE90B160691201288F549 |
60F02BDD990C6ED69C9B93BC61189C5A07D9438CCA9CCE882BD3EF10787A10F8 |
452978B03FD2625B6926E8C4E6FA6E5C0D875FB86D7F119CE4C0587EA1775988 |
12C7C6BB47AB0B6BC93C17179D077DAFE4927CD2EA8A72DD51BE98C4627BA349 |
7D386A49CE970A12504929713D8562219797D9E0B148138F2DE1A187A27CC5DB |
EF49874B7A5C53FF2F6A0D568AAD8DC978A5598F73F98D8DE82597AC2F1556A5 |
23D18C340BCF10327BCB4DFF6271C25C47F2AD5B19EC8F0BA24190967593363D |
C0748238E843090F0CCB125FCFB968AB5699B913D4D6BE426CE0B0FC78CAF315 |
CFD8596BE60785E9A1B1B5EF8004091D1BAE19C3DA6597DD9E7DF6D94A85BC91 |
2E89ABB1B14A6F4F7FAB9ECFC505EF856C799FB574EEB1B11171F65C21A9D61B |
85A8279FEF9B3DB8A4D5EA6BD64BC57C6FA5DC4C53353CDFEF1FE8ADD5C7CAE5 |
91DEBEAE346A97AFD6CAE3A343DB6EBBE0FF3DFBDB9DB75FAA6B3EF6B18FE9B8 |
6E28AF5F30B8C0434F7BF5A740BB065D3C36BEA15A1F6EB6C69368DC45B21BBC |
4D907A2029B9F492A0E54B60A2CEAEBCCEF6DD77DF9D040DCA5981850B17BEF6 |
DA6B606DEEBDF7DEBFFCE52F5971519EAC04F27C5C867A1865FDE1426FCC8A15 |
2B5843B236F91FD6E095AA89565D13CEFAD4A6914A1559A8A052F5AA5F92EE4A |
C3A3BC781BD05A3281E1A3A5F088A7CF7B37170DCA3B4A9E6407FA3677EC0313 |
5197AD5CB99293C018E0FEC63A2D5F45FB85C89F218B14962461ACFBD0BEC6F4 |
6EEB01676EFA194ECE79E79D77E595575AF1272977A605737477DD75D7DFFDEE |
7730081236A04FAC7B3AB5690BF4060CB8B0CF043C9A78B2B54FB0931002D549 |
C653B8A0557AFBDBDF0EA859947619034184E81CE51D471E79E4430F3D245B01 |
67118FD39571DA9C406AAC9E85241373BFEDB6DB8E39E698934F3EF9F6DB6F17 |
7793ECBCF5D65B9143FA96708B1D3A383B09AFE4296A48B808C842694B1D8EB2 |
F62C8455E6CF1FE8EEEEC4F5AC83E31D5F519262C345E4DE58D32E5EB89E99A9 |
8162EA353C341ED52BC5F1CAE0586D6E2BE94B4DFEA66F41E3C144BBF24511AA |
7E556ED6A58CD4A3B4F55CD37B87BAF31E8AB1DAA8971BFACA5F5FF54EA49C77 |
094F48020F38B120DF5B2BB80D8DB16ABD25DA5E9B442FB86443A9305A99509E |
3492EDB7DF5ED61BBB632E0A978594D84482046F7EF39B9F78E289B02D8C569E |
C407B33E0DB3FD2FFEE22FB47778E1EDB6A6BA85BD68A0A865CB96FDFAD7BFE6 |
2B4CC6050B16186CE564E64B41AF19E5A6F5FF41244192E1D399FF0AA7A2E126 |
858EA019827C6E12FA2FEF0953FB0187E0AE5915E244418AA6445B1CB7855911 |
A7506B5D9981DF512C748E8D97F34EFAF98078AE74556F504B4795DDD0911F1A |
5BBFCDEC793DDD83EBD679C574DE363B27CDCE449662AB873A52916BB143BBD2 |
92351079A1E315DBD5AB57CE9F3B7BC59A17962DDC6160B0EFD1277C1BDEC30E |
3CEC77BF7BEAF1A71FED2BF688FABB7B7CBFBD9191B14A65AC5C196A24E262B5 |
382FDDB89A5623CB28706EC2BECE9924D0533863D2C8B40AF87939F628CE38BE |
51D3D0B235D30F7EF083F7DF7FBFFE04FA58D78006AAFDC095A4CB0E3DF4D007 |
1E7880BE42BCF07E44192E601A5C1A4F3FCF61754AE6B6D256E0626EB1EFF152 |
59B060DEAA557A7AB15CAB9B994935E37C91E3AA558B162F9424FBFEF7BF2FE2 |
C34D51ADD4BA7BBAC646B668D6687133833E8E32BC23EB236FC98B219799818C |
F6DA6BAF471E79C4A5EEEFB4BE69DC650A1A397F2074A22C4F8756A2935CCF5E |
5A349D22B1720EBF195E66D51293C08E818BEDB2CB2E4F6789DEDA8B638F3DF6 |
AEBBEE02E85117EB864CD6DCA9342506CDD150DD8978BB2DD1BEDA96C80C2946 |
45DF445CD8C454704D7CE10B5F209264831721A101E002D67B8C035B01DD5914 |
282A02DE1CC70E094596158373C03060DAE459F89A3777B0ABBBA451A589289D |
A9A7A899A6CF4ED8ACAD2D5FA26D632E76DE532F46C12781D6AAA5A1913995FA |
C228EA8B7C8C20F61D9463D6BF45869BF708C56369C71B29269DB9A2CBC5B209 |
C69A3EB09C8F5DB54560D96B352551488A6437AB5068E563C9D5F196371A64DF |
3DE7DC7097F8450CB7D514DEF39EF7FCE217BFC00642CD62497151C09790B5EF |
7BDFFBC4AC692EC4A650AE61586CE6E2D6DDA45848F14248204BE05D61CBEBB0 |
FB2C3B4BA716CC2FD25BA7A4675D402D274E02CCC13F60F6F9DCB973292261CC |
EC1A7E5D975AF65465F374DE4F777EA79404665B446DFE2C73139D75D659F7DC |
73CF33CF3CC3E9D50F00B2D86E3B1F8714FB2EA5AAA84CCC5247B794D9D875CD |
EA9F53F02D2DEBA9F3D4F362D167331ADB3434EC9149F37D7D3DF35A4977B35E |
1CE8DF26EF16AC5BBB41FB9ACB47AFAE7A699B39FD73E7CD7E71C573A94227B5 |
AB67B0BFF7A9679F78EB2EBBFDE6E9C7767FD3DBEAB5E613CB9F18E8E8E928E5 |
653D2C5ABCA05C1EDDB869BD3E6FB6648988BA2A1203515CF3058CD25AE2A4D9 |
48D216EB698EB60FF3783F9A248121F3A0DD13F72B05BDB442B311AE24F60104 |
8539EB43AB90BD31D51835C1DA8A4D64EFA5B6056A0B960476DF4E3BED244D93 |
72798D649F7DF6F9D9CF7E263691A479B85ACAAEEE6EADBF574944C469C52322 |
21ED029FE6328B7389672513B28748E0EEBBEF2EB3404F39E594536EB9E516CA |
BB7038D27DC108CB3C8946F4535292BEC27E7799454C89721A589B58048DFFE5 |
975F9E5927325EC6B2D3D45B3F913CC066C76FC37B98949E75F4D1477FF39BDF |
B4A019453400C598C5E05275C97A559255C26971A98CC45FA40F3560324F88D8 |
4B15D5FF5A22DD599F68A9316EAC3CD518344597A4A847198EA154484DC49AE1 |
982DAF2752D5499AB26E4831076306BBC20A47309270F8B0C8920DDAB8430E39 |
84198551C77025A542A4E9BCDEB09048C08A92C99E6276E54CEB679B886A84C9 |
8551568936B4A992EF2A267123373236AFEE964987486300DD2ED79452157B10 |
BA287185242A2691FE1F918868F95698FE0EBE6978B39AB4D256EE4E2750ECBE |
969AB64802190A1DB16F7B596F782131E4E217E3E8B9A8592915DC58DDB23FA9 |
9387178536413877CC5924A596945C5E7405A696648814F627E42D1B11B161A7 |
181AB3FB1BBE4B08FCA99FF8A84C4A6C53D2B379F3C342F7DCF4BDF6B6F615CA |
7E728E09F3805461C93FF6F4196CFA5CD01B2AB7659FA8141822BBCEDC97AC23 |
597D0011B3FA24BC6B8229471B4D57AA7F6CAC5AAB357371A1AB38CB27985665 |
8A46A9884ECA9571C98362A7AB546A0B162C5CBF7EB4A77B9B4D43D5AED2EC52 |
476F315AEAB1E1E6CCD35356AD7E79C1C2B9F3E7CF59F1D28BBE70AFE65396D7 |
0CBDB2EB925D56BEFAD2278FFFC4D5D75F3DAB73D6ECD9BE0F5A4FAFAC818EF5 |
EBD7943AA5798D8DD72A3997F8C288B8DA4ACAADA492B89AC7DB8A52D4C434DA |
8A24F09022627C71036009BD27C8899703055F14B970E1C2952B5786AA347680 |
3417D828D95DF825F45E6F24003054E189BA0FEAA7815787E11D0B30844D8138 |
C0DA542A15BDC08FA3AA140DA936D52A4C5FC75A2A994B19907E353E36366FFE |
7C4932DDC4C73C5E5B63740C30326AD169A79D36A524B0DC06CA0228984C66C4 |
FEBCFEFAEB3FF399CF1098D59F0CD5F89D9EAE67DD78E38D447DA7CB4142CD87 |
BFC3A9ADD107F46D506B19285B17D95F784E4C424719CA9B45EAD0B569BAE982 |
ACF31D77DC51DB4D5359DDFFA4934EBAEDB6DB3C9C491AA26F2BF16784DFFAD6 |
B774CF934F3E994E20C45A88F0B769E5E22FA79F7EFAB9E79EBB68D122564394 |
231BC5A08D2C1D80F65221768264219813868066EE35919C668153488F008723 |
3CA796A59ECB5260240AD39E193974C342A148EB0543DD21879D2A87B63410BD |
19DB30DACA175AC5285FAD2C68BA9DA3DC822429BA567747A7F4FD8A4CFCC815 |
73F9529C2F365D2C465FD8DC43ADE51DB14903C4A19CCE61AB9CF898701CA599 |
A6A9E4F08E088FA8EAD33936E68ACB5DB2C2D52B857C575CA42C03CD1A9C0FCD |
B7CDE99164B0D269A2A067E592910F3EF8A0340F2DF889279E78E5955746199E |
A3E195A2E61BB8827E28AAD091E7B84163A4D87354D189AD87A02E40619AB95F |
8B81CAB9ACAAE60F987DAED991A780A1837464A896C6ED0233FA0DD804131101 |
BBCE2E429590D2F4C20B2FC0C52CAD254583F1D75B6D571CE73D904F942BE567 |
75144B69AE6D92253CC8404CC6EB9BF6D87DCF3DDEB1D77DF7FFCBC60DA3CDA4 |
B8CDECC59B368D76C4DBF5F50DB49A11F0BC1D1D059FA81625DA27591BE3E5E1 |
39B3FA376E7AADBF4F96E3BAED976C373CECB536098338A7ADCA972B632FAD7E |
B1949AC0A2F95CBED94AAAB5FA58ADA183544FB3923C79E287D5307DAFD5D84B |
51C90918C792254B70085A4DA009D524EB28897DB0C30E3B8895840909C632DA |
D01DAC22919FA3264B614CF97EB7F17D3C0FD05F4F9AC06ACFB29A75994A281A |
95727987A54B97BFF042871862A5B2FDF64B57BCF8E2DC94538C02A79E7EAEDD |
83FEB082ADFFF50CDE21036E32DF20AEB0E924013C37845841E44816F22B7143 |
715BB8E7742741F7D1B23FF7DC73D655860C397D65713F0BD95996BD610990B9 |
C0B91573D757745DA5C6CD65269D0596F5FEC0030F7CE8A1877419B7357B08D0 |
59C6A955D2F651F563560EAFB6C1A08B7164CCC2B3A23F4BF3A0A4D9A56A178B |
CC8E707FADC0D34F3F2D99F4B5AF7D4DE3C177C49DE9ABCE27A03C199453DB32 |
4E70A2B890A6F34CBC3CE443FA65988F6F19B7C9E6CEE9136DBD4139F579F475 |
D72C76340ABE89E0FC56B2435C98EF5AC566AD2BA513CB6F2EC4FE0169DDD844 |
0157BD5147FBF5ECC9D75CE56A4953EA58C31BB54E9A57D16B654959B497D344 |
9C54EB35C5FC2BADFAFA465387B26FA09F083C34A3A384B906D11653205BE44D |
880AE3825A7DAB9F47C7E727F806A9F908A39E4B972E5DB16205C96044FB30D1 |
900AB8C43977FBEDB7DF4F7EF213767F8608B04133584EB0350AFE8348823FFF |
F33FD76191C00B3B9586FD4B5E4FBA870BFA27B74902EBEEB739143365703954 |
B838FF975E7A790A1723DBB923CDB7F51D2BBB7DEBB168B07756A12036E47DC4 |
8D662D17473DBDDD23639BD272A16D376E1A2E16F4A7348C9C8F9E265DB3676F |
53AFB5AA95A4A7A7977A1FFF94AAB676749BB9B3366E5859EA8CA5E2143BA2E5 |
AF3EBFE376DB25AEC9115DB37675DD55FB3BFB87CBC37D5DBD51DCF43CBC312E |
49D0F0790D133D095C629230967DA0D3EABD0A798F6B86C288528643C0CEBC95 |
59A1516AF0FBEEBBEF4F7FFA53738573A4B9C07419AC3397BA89894D0144835F |
3BCD1EC919BC0C31430A086BF51A2752474B3A4C247214D18B85D52A6060CD9E |
33E7539FFAD425975CA2EBA52ABEFCD2AB6CB95679A2F74BB5DA3F3090CF798D |
95FEDABAED29A79C82628BC23539626CAC075B04540649C79FFFFCE75352126A |
08393C329B34776BA14720043FBE19F5337B87F4DCA38E3A8AA6AF06E06E7A99 |
75DD4B02A04AB2A10E3BECB0BBEFBE9B28AE294ABA068F0ACCDD7A7458FCF9A9 |
A79E620A561E6C6848700D723AADB3B90683E1887987E1A8C5D794F11AB9A0FA |
49CC453B2E9AB9207DE94392DC4466E80D3074973668B4C0A31E24DA0073188A |
B27A66789305C09194C601CD1A98B88F47A603F0CD2B3FDE09908FB22C8F5678 |
A649A08741D9E64CE06FCAC072F9511F59D32173735C243130E8928EC82D8C5D |
218A4BCE37B149F3445BF5C835647F345D3E17CB50F019A31248D81652C9A362 |
2D69549CC74E4AF2A9406A26AEE5D6E75C47DC51AE37D7BAE6DA626EBD6BD66B |
4957941F4F1A74A37459EA8BD659EB8983D10A86CD26A01B0A88205085F93991 |
B2C80303543768072DB26C771186D61674237650E4F1E4934F9A2BB895F627D0 |
8E8749A8FAD5741DA850112CAAC4D1FE03DA04BE074C8A326BE8C518C4A2314D |
1C2209738AA69340D379873454CD4E94B91981CE72095C069766B84B1C5DF45F |
74DBEE6ECD7C4C74D6DDDD3B365689A37C311EE8EEEAD1EF6AB5467ACF86FE49 |
5B8FF3E4AD77FAA4E4A6D4F2AE91E16AE471229AFAB3BF6F4E67A9AF5A91242F |
C10BD6AE8C172E9ABF6AF54B73E7F48C95D7572BC3DD3DC5BEFEAEA1E135E6E8 |
B49646BE93B89701D57ABD2C31D06C79D7908B1A3EE339E7F00E510D97D6D045 |
2986F6661C7373D4480DC1A247FB08AB93F4AD3533A28A2FCC1D0E51A0C93785 |
3B64E56C895593FA0AE7B4FC3DCA108D2602121EFC3DD2DF310052DA5A6D41B3 |
59EA9C0827C8C81A9C25B9B8E1DAAF7E55FC5DA75EB261FDBA7585540DF18A4F |
868E8BB6CED88CE9CC9045EA322C7B64039D58A6A378147FAD183939B8C825EA |
F4A1619D9F73CE39575F7D358E97E94E024017F81E593AEC5373F173595BB771 |
97E98086C792A498A6D697559F03F669C69CB17E00098C9B603699DCC2D1C7FE |
6AFA5FFCE217AFB8E20AF0623506A05A74812E63C590520C2FC4AFE6DB507302 |
C6E3EFFFFEEF3FF7B9CFF1087E4558926F0D05FDAEBBEE3AF2C8232D66A36F45 |
DB0099B9ACAE6AB2AE9632DF5CE211E126747DFD6F4145AB0F0DF3D9B9D800DD |
D272217FFCE7CEE9DF50AED4AB320DE2DE241970CD3EF1B5BC5BD270BDB11B28 |
76E65BAE5CAB0CBB4494D4CCB942D3878BF3399F2114F9D6F662424E47BA2B2A |
55937AD979C48C56DE5B1E9A9036F2E59C2B4679D18A0CD5F51DA9A256770371 |
E76852BFFCF2CBAFBCF24A6DA2717F48A22D986F84D1E6CD43E5A23F87657F5A |
E40044077DDB4651E67BDC7FFFFD7FF8C31FD2F3CEF2F1C31DA724730675DBCC |
65978654018699AE0E666B5F6D2ABF79F376DE79E7952B578A722072B67B665B |
7C4A9B005AD5024661DA2CC5F72EABC30476C232D333C6C7C8B034FDD18EBC42 |
90932428163AF2F9928C458D2A499AB4D22E4A6D6D16F2717F2EEAF29FBBBA2C |
C54A75A4BBC7C76CFD81C915CBE38DCE8E595D9D83FBFCF1BEBF79EC899757BD |
FAE69DDFBA62C5F242476B7076C7CAD5CF365BE363D58D051F252AF8B276DF10 |
ABC325393F115F25264E3654AD6D12AD8AC22D6E6363C6A169FEE529173A445A |
E605DE4314749706CF40D4D6CCFAA342041EC1226B506CD46977CEB62F679179 |
E38929A0F1E64E2F6164AC23AD2FF0436A343B8A69E64CB5D659EA18AD54CD99 |
6E0CA295F54299FC9A4E47B07C3B1A1870085199354796822877D886D7CA91F0 |
8AE252430482B5A29FEB3090F5A1FBB8D4E703C22B963B286F2039EB5652EE3E |
F2918F5C73CD35567D6635CC6D2C604ACAB6FA47D94CD2C72DE5F4F5BF001095 |
86A551E1D3C78D009BA0460C46CF34C1FE94C038FBECB3C31EA86165102B79C8 |
2187DC77DF7D880AB3B9C3FF43DC7C919F16072BD3C2986C1FB46779B751862F |
6D7E274B3442DE600FA1D871FFB0312D7078704CEBAA48E21C8A912E86A92126 |
FF34CE75B59A03690B3397D6180FF9FF759E5B8DA6EB2FC68D5AAB90F726C968 |
C3CDEDEF9837D45989EBA3716DDCD52B13F1615776B9A4BFFF95A10D23698EA9 |
267CE2A73FF58D5BBE59AFD506670D5066C1D2852964686C6101541846B66462 |
73F7B5613B8788B6C60A3835286A53D283A10A1A86C4B1C71EFB96B7BCE5A493 |
4E223F8D94EEB62A8436661244555F6F27ABAD7DE1E90561DB380F386906D2E7 |
B2EC150C6553645D9635670D211C4154565FBF21AA661D53B9971519649D7AD8 |
B329244147B194CB75341B138088491A406ABA726769A0981F8C922E0F03978B |
EA8DB1F1F2D07065636FC997E9575BD5F7FEF17EBFFAE56335976CBBCD0EABD7 |
AE9D3B6BE1D0A69146AB3138D0BB6AD38B7DA58214F952673E4D396D4A72944A |
5DB9581AB1AF83F72EFE64BC52DB58AE6E485C0549A0F14BBF23B78C60519B93 |
310AD007AD22898324A640E4E0F0C30FBFF3CE3B7599819CD8E10CFBBAF02B0C |
1A9A0CB755EA65F541131B439B6CC3B7B06676763DAB5D8CA3F172A5BBCB67E8 |
160BF95A7D82809A59C3234B257699CE381DC54CF73975E7744D70A9C33D4CD5 |
A7FCFDA5975E0A55333403A42079DC7CCEC9115B97591D6A6D5A375194668AC5 |
6D6874FA53D7C046F18DE857D61998BBCD9C8D876036AE015EF40C91BDE95E18 |
DD9FFCE427AFBDF65ADEE36EFAD33FFD53E9E9F0506B506E95E13FF8C10F0E3D |
F4500B1D013E6A74C5D921E71D45C46D29032CC19F8DD3B9FBC0073EF0DDEF7E |
F7C20B2F3CFFFCF343900C6325CDA01769B8A7C6EF0CD618E406AA2309AA1B27 |
D28E9F7EFAE952C0A1584941E93A94F8251936B8CB2C456CA9B7E92845F19CD8 |
F53BDFBEB20CE084B4B15663FBAEBEA45EABD42B4517F576F6AC2C8F2CEEEDAB |
949BB5A85E7535EF13926A96B88D497E248E56B57CF3B37A211E6AD4AB4DB778 |
DB6D5F79E9D5B45479B38946CB0744725875612116F04858044417A695A6A037 |
10309516DA35309CE17DA62C5BA1D60C7E7F0E94A5125155804B59142B9170DD |
75D7511808558429F861E5F65675B7DDDA9781D348F0535EAE532C5E67D01761 |
48CCC60330A25DE0D2081C80779B6D2E105CC5040D878B468FE61D0294663A49 |
50887AC5A0F3B90EAD83C778481A38885A51ADBF6F6EEC7AEBD5BC4F192A7A10 |
A16AB5DCD1D9DAB8717D3519CFBBB8E16A83BD83CB76DCF9D1DF3EBA78FEE24D |
1B470606E68C0C8FA79E4E1F00A827E50573178C8D966BB546DE3BB73B7D65CB |
442E50AB5A1B1D2BAF69241E784EB4E1BC662185D1599AB02586869038480253 |
C3AD79AF2D1CDC5F6F76D96597175E78019C7A8207F81C7573EA2D2C55145668 |
9C3DB46DF153111244A7FBCE77BE73C4114710E945B3B014348F2AD5D7FBDA9A |
B50BE6CFC300943C906550ADD593AC7192C1345A19EA56519225DBDD72CB2D1F |
FDE8475D00438B3A4C36116C0ED874119005BDAD0D1991528C623CB3FA95A853 |
B444C6C10D37DC70CA29A7B0E0BA156E2B5B6A987ED83BDA6588F3E832D34932 |
F6D44019B9D51FFDD11F3DF8E0835B7BA84C0DC4DA336076BC6A9AA9B9DAACB6 |
40BB2F367AD555571D7FFCF1A66184AE4217000BDB8287CA23516E93A64C592B |
40031336B4CD886CCBF2725B16CA4172E2563041538D77DB6DB7279F7C926C5D |
D0B3F546548AE6A8B90071A30180DECC528057AC6B066AB55971343F9FEF4F92 |
42DD0399D63D2A75AEE462A9035DC58ED76AE3DBE73B652078CD2F8ACA1DB2FA |
1B7A9B823344E349E1B5C46D70CD55CEF7E01C6DF94832AF42BE23D7728B962C |
A65E2F34AAD28AA509ACEFA54B97EEB5D75E92CA560562C0CE2C9AED8EF5FBB5 |
9D32E79BD19B599C339C17931656EF12FE5C03239E4F9A49D8150E0D2904C0E0 |
86A42A31A9E9BCAF5BFBD2200F38E000ED2C3130B7655F19CA53183F69D3C603 |
0DC035C97A63F0F328B7651FDA3695CABC2266164C2B09E2EE524757215FF292 |
C0FB15EAFE5FAB592CC5A58EFE46ADA3D5E8E8EA1CD4F67BD74A3E1A1E79AD5A |
1BCBE55DB1233AF8900FDEF5DDEF946B6383FDFD62EBDB2EDEE1D557D6542B8D |
3DF6D85B7429762CC93A3A52F145B951219F93859810A5F181BEEAC6B1F2A691 |
D17592046250920428E062B69AFFB265CB805D835F840D84DB760BE477CE9E91 |
8BDE2C5AB4481C4D2ADB030F3CC05A9B82660AE93DF7DCF3B77FFBB7F8D3709B |
D83136B3C0BC31B459A75616B3374CEB7659222FDE7F7A6D16F23A83F55983DE |
7747A7F82443A26F9BC5E4D7CC35C336772DE6673EF3998B2FBE581FBEFBDDEF |
7EF8E18743C2D0C4016893DA15F2A610CFCE65C976F408B3C3137670B4F3095D |
857AA8CBC0B3A8D4259FC45C22338C9F7452DDC73707CEDC9BAFFF6560674802 |
52FEA1047C08CC4EC3C0AC11C99D7AEAA9D2DC119C612A301C04E30C2279D39B |
DE44450EAF36378251055CFB84134EB8F5D65B1127932501E61A72DAD012D17F |
F1E32124CE38E30C895EC06E2D330A996AC0E3D6E7043AB7684A92354D8CB216 |
BBBE45CFF070B70455CECDD27D9ABE32C0AB602ECEF717D60E55177517936A4D |
DB59A927833DA5A1D14A5741E680C7A8CBA7FF0DB9E825D77CCDB5EA395F7186 |
61DBD9DB551E199FD53F581ED54CBC29604624C11EA426D6B35138DBA1F32886 |
60A9711AB9F9C4449F70B09D76DAE9F9E79FE7266C01478C58543C7D0B58A361 |
13DBE4AA9106425D115D94257EACED57D85CC4CC7AA23586A3672AFC1FAAE22C |
2CB5D39FA44E697D706958811B179BF5CF8165CC18E83AD75A4FAFE287F1434B |
4AA58F8A141F2A9E107D6EC229C64CDA25413E1237E92E16BA5ACD449A7B2A06 |
3C332D945CAB998F5ADD9DA559A5A2ACBF421C79A3A9D11AABD7ABE5CA489CAB |
AF1B7E75DE9C818D9BD648CDC8E56B6363D5D9B3E6AEDF3012BB8EB7BFED1DCF |
FCEE590F9950E8893CEE53673ED7993AA044C705DFE2351A1B195D3F34BCA6DE |
1C4E1187E2B4EB930F54885CF6DE7BEF7FFBB77F03C225646D930F6794622B69 |
112DF00B8E26FC4EA4405A9B28407C017B53FF4BE1123B20EF1380493BBA4986 |
DF676C2BCC35E41A9285DBFC487CD56A36777FFBEEBFFD6F3F00E4414F77CFE8 |
D8682E3320FE2092208C64BA2D6B6E6D415C869A4B63EEB62C6678E8E73FFFF9 |
0B2FBC10BFBF560F441D931061EA2DE51A8C99FEDA5A70EC1EC0E910AE96C633 |
B3EE46DA2B142FA9BFFFFEFB8B0F6ED58932660AC09C2943C48DF0A15B62928C |
80B3CF3E9BB1019967796871D086D765A950EF7AD7BB1E79E4912977C772F66C |
B589A6584F059628CCF4C8051DD5DBC23F5653CDE14DD2B6E42E350874046EBB |
ED36E06C35AA1D76D8418A246571204F18B033AC419FB3591381F414D2A4CBB9 |
7EB1456D65EC8B0362DFB9AC352BE74A0537BBA7EFB575C39D69D3020DB3A319 |
49A45453D0949ACBAF73F10A575FEFE9D7A5C0D7CEA727353C6EB158482197EB |
19E8D7C9D2F034CEFBEEBB2FC4D5102D01938EE3C877A79A54A462AD93901997 |
5F7EB936C86531182DC81E7BECF19BDFFC064909980AC1AAE97AFF910A21CAA4 |
F6DBCE9711B3B90AD00CF02B581103044040C2A009A1EDB42C773BB2A4FE502F |
F35011BED223C8D780DB1010B2D387998B2E8BD72BECB01DB9CCC66432C491F4 |
BF0E955650869BB926D11D3C1CB47F4D96041DD22C5349E0730A53319036EC2E |
B4AAB5566771A0BB7356AB2931502AE47DDE95B6F695575F59B468FE9AB52B9B |
2D19E13A6CD5CE8E42AE507DEF9FECF7E0833F7549BEBBBB6FD3A6E139B3E70E |
0F8F7696FA9A8D2869160BF9AEA20F48E41ACD8A6449BE581B2F6F2A5737F920 |
411E2749EC92B856F74BAF6D5BBEDC43F4803D69819430426007320CAC85FC0B |
6544FAA66EA8BD17D7BBEEBAEB885C59E6D977BFFBDDC30F3FDC6500962E9004 |
E6CACF0EADE73569D1FCC674C937A37D584647CA80FADFF7BEF7E96CB03B26E4 |
014F7593BC43D3D1CA749CD43259AD4120048D6681E50B7C34A2C24247A65585 |
F131FAD403D1E1DC845FEEAB5FFDEAC9279FCC2250D6A00FCF3AEBACEBAFBF5E |
8B2C0DCE82F9C61CAD54D88ED37453B3220697A25752F0F1063A0B6997537493 |
D5F45720EE4A6529656BFBEEBBEF638F3DA6F5973C80E3500FA167196F42C980 |
1784D86740514DF95CCBE520DE4B31B3F5724802B46A784DA878BA20DE60C04D |
1C6CAB8BA4D52DABC787A62402CA4DA3660BEF6BD6C71D779C6486C4E15FFFF5 |
5F6BCA5A135F643B36DE6AD472E2DA1206B9B83797EF6825AED99A9D34E7964A |
A3958A18EA22E71B5B826E2CB361CC35475DB3E6E2AACB6B875647CD6ACEFFC4 |
A55CD827E7D57D3EDEE8C848C1F72074B03022D5946AEA3EE85BA40059770D4D |
81844E1297E1CE48623C456F79CB5BC46AB547B67D12159865862F446670880A |
33796BF0DD61B352696C029297085E77438D4B7100BBB008098385B943F48A08 |
23495B459FD3BD3032F0C7EAFE94B89F79E6995FFFFAD7391774DF93361FF688 |
B6E8A6F50EC1DCC9A57528136B44E60037D57B493CE05C2C0293A92A537B8790 |
049A75AB1967177B1C8828D7ACD4EABD5DB3A3A4345AAE6E33B060606070F5EA |
3549B3249D5DCF5DBB6E75AB559BBD4DCFF0C85A9908B5E6A6EEAEEED1F1D1CE |
8ECE72D5635F0FF4CAB4A9150B9D91D3CD0BAEA50775797E5A1F1F19198E0BE5 |
6A6D54B2245F68E6F2E4CCE56476F4F4960C371FEB38E4296184C038B5F97CB4 |
645A13FD9CEE2261192A258EE090803A60186164E6E243DC9CA2974902F1CFEC |
29226E7F6EAFBDF6DAE38F3F3E5BCF0912341125614AC0164D10F190F6551E9E |
3262FC06E204566526C641A70BA00E2EBBECB273CE39477F36B36E5CC4F45AD6 |
FD3C5B4333815D263899B8E130C3CEC21C7F2625EA2261092EC051DF6BAFBD1E |
7DF4511B21252C3364C5595C01170DB18DAD8D18C352C104742997B4266EBAA1 |
066CDDE70D1F14CB89D5B37475DBA33016156D89091CEE91D58BDA27D25AE8C7 |
D02609DC960828A1FA625B8F5963C57A96E26C8E72A21DD26390FD58F9B680B8 |
A4C45245D8A64B4E80A3E4F2F5B48AD8FBB27271A70C7AF18456B25D67CFF8D8 |
68DDD5170DCE1B1D1B19AE8D978AA572AD224565344AC6A2A42643B615355D54 |
16AF8F5A2E3B7C6953CE64A07F6078D41776895BD13FCBD402B3503500CD1748 |
7D922CB41D279E78E2CD37DFBCCF3EFB3CFCF0C3DCD0B0701078705EFCB4B0B5 |
10051A3DC6AAF926BF74013845669619F804F62E0D368E39E698AF7DED6B56EC |
4264D81A1DC3A67D6A6614117DD1B738F7FE5028F76C96CE14223FC5A3F5533B |
F2C823EFBCF34EAC5840C0E844A291A36069ADA8BA2733F00B5FF8C2EDB7DFFE |
D4534F4586A567184C56616FC0C516344EE91EDA6D9704B9285FEA90B6DED96A |
BAB42F920F1A7B2746325E6F24FD3DB3CAE38D5ACBEDBC64D7254B963EFFFCF2 |
7C346BCD9A75B09859B3FA9E79E17FB75D3CFFE5579647B9B2B7AB929A04C0D8 |
F8488A6FAA43D8531EAFF5F40CE4E3DE6AD957098821BBA851AE8CE68BD57AA3 |
D24ACA71AE9EB87AEA1B4D240964315862B28574984B1827B0956DA5B07C5A07 |
CB2E47E3E0E796B0D5F64334053B6F2EB3FADB22C6E9272E6DEFEC7089B854F3 |
D5566DD8B009B1147AAEA88B261B9AB1595BBB4A657CCA2CD2AD95045186CECF |
D687D00BFA102BC4657E523CD76DC8DBCC919158176FDC5FC69BCCCCD23110CD |
C978D72A11CE32EEC618243C4E38E1846BAEB9868A4DCAA966A8EDD4B30E3EF8 |
E07FF9977FD17E89955802FED6AE034F4FD28E8362C4E66091E5A7D1A276B1F5 |
FA8A0A2F5233A32D3B4E9BD2678C23EC52192E3B6FCCA14C362D7FA2A685DEA1 |
D001683A41283FAC5E8491187A3CD46B90FD5AD8CF7EF6B396DA6439F86E5274 |
D06C626CB282076D112BCF25291E413E896413F83A81FEBEE1A1A1DEEE9E6F7C |
E3960F1FF677A5DECECA78D975E4BBCB8DF138CDE710CF9719D0F43D75524E91 |
9E85A415BB388A93BAAF2DF29DD764578B783424AD153D7B41CF354C37ABDB00 |
EE45A362553105105729F681AF189534954EF3A52F7D49933589487A0CCD6D7E |
6F3F703DEB88238EB8F7DE7B6970C6B9B02050C888796288E069AF5077B4FED8 |
49D65F7AABE873BA17CE55B066ED8D0B5AB301342295EEBAEBAED39AB0CB80E6 |
CAF8BBE5965BE02AD661AD7D398CD361E0180E3BDFFA3054C56BFAC5622C2B80 |
A66092C191CB759706378D0C2D9CB7B8516FADD9B0BAA7B32B8A5B1E9E28CA61 |
DBFAF84FA55ACCF56CBB78C9EA55EB0AF16CD14A47B1A7AFD747F94A3E9D3ADE |
75B75D7EF9CB5F8AB7AC1B7D35F63DF2EA122B1D62F68DEA9CC159F95CE7F868 |
B2EB2E6F7BE4B78F75E58A3B2CDDEEA0833EF8D51BCF9F357B60D5AA57655F4A |
72E878767615ABD55AABE90F0F91250B4586FB84A14A58129E9504782C0858EA |
878D3B5855BAA17A455BF61AC30B49D9141F8A3D891C4F3DF554590056016FA8 |
CB903EC827D89556EB084B0DE11243003B2ABC7492F91C3C00CCC024EB041B16 |
FAB6D9432E533361E561026BB425C22D3A3BF7C47F8AE2EFB21669B4496965AF |
304326CC2C02398EFBC02809AEA6B270C30C3845D3BDA2B415E801071CF0E083 |
0F6AFA006523A8F4388D0A2B875585A9192A99A882A5B3DA5DCEA7B5B6875C69 |
ED8433DD0C0217C47BC3FA2CB4AD3016159671C2E5256C4839D3328AE6716761 |
B94FCEED236A42B09D0A76503450DB99E90CEBC652E3A683F2353BDDCDEC36A4 |
17DB61592121A9C4D383DDBB2D23F671D0A911DF9A059C58A209DC943462C978 |
664EE59CE1455EAC0BE0A7B0952DFBC0BA3F121F3EFCF0C3EFB9E71E5D2CFE48 |
967088ED3AE5BAE105E13210EE702BE97156824AD4C1051962040EA927479CBB |
AC358D198EADA0E50E8E2F3AA35831CDEB7F596641A88A8517A0D15AB08DC40A |
7D62021287873357F9E40DB6EF42E45E4487DF75DFC25AE415E50B929612ED5E |
12A45D8BE39D96EE3C3434B26EFDBADE9EDE4A65ACDA28177CE1A108C26F49A9 |
D4353252965ADC59E8ABD46B5DF9795ABDFEBE6DBABBFA366E1C4AE9A6B1C79E |
EF78E4918775E76287EF6F2CAD5F0FAF376A6958B26BC9F63BAD7871D59AD736 |
7677F57676C9DC8A97BFF2ACF87F8AC231AA1BD41BBEB24C3FAFD59A71949300 |
7CC73BDE418B2E5B3E92BD58F756D6DA224488C38EB35C3D4335B0450FD7CA6A |
5675CC442E56C9C236583AB358FFF3CF3FDF069942EABAE80CA663F816E4A1C3 |
1A40A9B41F220688597113ABD47759160D30AB764360998D5387839FB2828935 |
31445F7341B8344446679568A26F6287C518DACAE838901ECE3E0364FDBBBFFB |
BBEF7FFFFB760843EF1C4AEED632855CD63B13C83926AB9B2020AFBEFAEAF3CE |
3B4F6B45D2A4955BCB2E16AF7FD7BBDEF59FFFF99F1A39329BA56E136396E664 |
C5D8E64E41C2594830CEDA856BD3F5D00B2EB8C01087083BE3FDD74EFDEFFFFE |
2FAAD5873EF4A1471E7964C58A152CBE0875FBEDB77FE69967D6AC5943FA87D6 |
79D1A24534E7D143F513DD1332B0A6A43347D419B9A5545ACD9DB929AC3C1B72 |
A580C365186A21AB9DF2FE515036E532C7A615E8B2EF2C0BBDDAB15AA03A082F |
14AEAFFF658A1A8C9EB837C0AE3A837AA2F69A0711167EDBDBDEF63FFFF33FA1 |
926E891B53DE1F03ABAD6E834ED4DB6DB7DDFBDFFFFEBBEEBA0B8B997225B8AA |
4902432B71291E49887AE2B2F644803F1E78E081F7DD771FE53B6F00A728C9B0 |
D15CC6B40D10C8A5813A4AA3E112E42F98E6619E6D174407A795046649F1BFB9 |
DA25095A89883B2A147312EDCD86078E485AD165975C75F5557F3F3E5E2E164B |
23A343E2B8B5E6784F57D7A878B4F39EF162A1E4AD895AD24CE29ECEBEF172B2 |
DDA225AFBEBA66A06F7621AF81D650D02A9571B1F279F37418D6556B633DBD9D |
1B37ADD5CF67CFE99365393E5EEB2CF5AE58B9FC4B575C71FA599F5D387FEEAA |
D52FEAFE9DA552B9322631A02BBDF3B5A9716E16956DFD765CE68204585FAC21 |
6CDB0235B36A52E240C3076F07519F4AB592B51E0CBD4FE63C81CA710485B63C |
0131733A9922008215FEFA8F7DEC63DFFDEE77A5B74A78D8A99E376F1E190BA6 |
45927BA7A7DC7FFFFD071D7490DE876073E87A20F14E197735CFA965BFD949D6 |
8792A08F3FFE38DE4F0C0E8D7CEFBDF77EECB1C7ACF1611494B986B70D6FA8D1 |
EAA858FA9A1644D76BCC3A54C71C73CC57BEF2152BCADBAA63E0B6ECE5841217 |
A508F53E057E60402C75B7DD76D38A69A9B517D621009F27228DA818E16E2D3B |
DC16DEDDCA5A8E4033E63F313DCB0053ED2C85E520FC044D9940285B239E4E72 |
B739E82D2B01A68CF580FA0F27456DB4CE97C82A2B4E9E81832401BA00425717 |
8B8C759F952B57D27CE990430EB9E1861BC8918B325C1AF2DF5E4F9D8A85B518 |
150CC5A82E5C730B9FD0AD01171016F61BAB8389B6EC5B69B177F0578873D889 |
2318865D85EB69060984B5A46F0938EB7F825EEC38A94AF40532F729112FA2AF |
BA9EBAAB24002B2496A0976E88BE02B20B3D4E6696B833AC035484B0C1930679 |
6B7822EC77BEF39D4F3EF9A4E64BB127F808F8308F3CF2C83BEEB843176316FC |
1E9BA0954142B637A24AF289133774C50E2F572509B4C8B20CF271B1A7A76F6C |
54F49AABD62BBAA6B7BB73646CD845CD74513CF88F844447B16B6CB43A67CEDC |
35EB36F6750F0C8F8D75C4BDF3E72DD26D9BCD543375858E8ECEAE4EDF72A452 |
2D77754BD28EC7B9D6F0D82BBAFF86A10D85B83067CEACD7D6BC2AD9B071A357 |
D06AF55A7F7F6F8A2FAFE347A77217FA529096508941EBE80D986B0F3DF41016 |
B719B31C693108AD947437DD1049400814975F2EEB2C0A5B812CC28C5B97E511 |
592CA10D2ECA8EBD59FA544BEA889A0C301E6469EF6D9F138045B13DF3CC3341 |
5C30FF0F2498642F17E8ECE6DC844693AC09AA213FC35BD17CF93981A656065F |
6A2E9724788594AAD538F1C4136FB9E51656CC6DE97E71994F93F579038E0294 |
713C033AAB66F67274E93D67AD0D193066BE316ECE0F8013E6E4316DD73009E2 |
AC65104114FC452E9340047EF13C706A7822CC42D24E86022EFBB6C6F76C2BC0 |
4DC41BF55B0D5B5AA7FED41448FAD665CC6BF7DD7727AD39CA10B96766D32E13 |
4BE684E438E84F0A0009AE72BA411980575A3DF3EFE550A1F380424BFD848633 |
F068AC46EBBF76F1C5179F7BEEB92077F1DCADDD77F32E5AEED6C2850B2FBCF0 |
C2E38E3B8E35D7829F74D249F88848F3C57EC5E183277686DE7C040BADC4E7D0 |
430F952D6B6AF144AD4F1AFA32BF319A81791A5CD01DD3D40263D3BA9260062E |
2C34D419FA75CFB0BF3081364C0E0BBCC3B22C50872B1B7168D591E1264E2B09 |
2C9F2FC4FDF00E815A229B40C75F92C0AB0F4D9D9362B391F474F58C8E8FCF1A |
98333C34DA486A83FDFD1B87D6A548709E500A45AD82CF29EEEF1F1C1A1A957D |
A07FBABEC78398D6251E5ACD7CA559DF71DB9D46865A7DBD83E5B49CD0AB33B9 |
664F6F616C7CA3CBAFA5A6A6B3AB63EDFAD55D9DC5F1F288543A6F828C0CA129 |
A795E2AD6A750233B93B7D91C61766C1BB80B122EDACDEDD657932540CA0BF8B |
D7BFF7BDEFFDD5AF7E25E98A91AB55D66DC3DC535A7159E64033E8A86EF0B994 |
F60173AD9F13B0353FB5D561F12B33AECD3785BF1E17B61E217AD5C0C6D217BF |
62A76C8F3578129CA794042ECB50B43824AA8A16E1AD6F7DEBD1471F7DEAA9A7 |
1ACFC2EC0DD1B6ED3D1E4F5C2BA183458307C680A25997A65E686058639C13A3 |
E3371049238152EC1295D6F68229E0AE254A1405F516D0094926566C699690E9 |
8F56A865A2D7FAEB86765E2809AC509CDA7D332EC16A254C42C84D7700413334 |
16ADA049BBA6CB60FDA87BF8F7C8B3B2840ECE663C63DF5A7A0E1A396935FEEA |
AFFEEA9E7BEEE1D1181C5A90C30E3BECA69B6E32D0B7FFA32410E76579C3802D |
C637BE14764A3FA1DC693AFC9F19F6DD64AA9E489A007612D11797A9472E8BDE |
9305676DABF5619CB68B98F2FE26695C605BC759E70FD904D2D2AC0E5FF3322D |
012D4A84F7C20B2F109017B57FE8431FFAA77FFA276BF14D5504F737BB70E60A |
CAE95E0C0CD50A1FB2C5C3DA1C5FB011AEA7FA876C5D6681793453C43874A599 |
17CCE2049A7E2A091A690F8062DA07C6CDDB66DEA64DC3D57A5D7A7533A9C751 |
0AF9D06CA44C2D5FF5ED185D6F4F7FA5DCA8A6779E337BCEBAF5EBE8B1D172D1 |
D2EDDEB472E5EAA459EAEF9B3332D4E8EE9AE5DD7F95E1BE81DCA6A1B55161C3 |
C8D848970F3B8FCA309935BB7FFDFAB5713CC1D353787A9D6A1700AF6FF6E9C7 |
194283A57918C3B2362956D8096B336A0801060C83C105DDC138AE16D4856EAC |
D3BD6D068B2952A0DAE5B1C71EA38C9607C18330D6C09B25658D7D225101C44D |
5475941A4E3BCA08DE121EAAA3A84941166CFF0CDE21537FA20CE98C0B202F14 |
67124C25084579F409007A17743397412984D40C0493310222E7125D9FFBDCE7 |
4E3FFD74DD87589926A559EBCAADE508515A1BA59BE84132D8CDCF60414B0DFB |
E4934FBEF6DA6BA98D00C5364C27437B32005AF3257272906A614D83754343AB |
08CB2DAD7B8F2D2CE958707048E88C33CED06042703DB23C5DD039804C15988E |
E6256166D627F0449A17C7D052B3A693A006C9E9B2980D62CF9A628A6E49DF74 |
9979FA07F10E69AFA962231B5B9F5B7340607DF589762DF4646ED5BE5B7829F4 |
0E8510B0BAF32BAFBCA29173B4A971A1E08B4A02EB6534DD0BD31F9726BA8E15 |
A9988A0DFD6885A9C06560BAF9BEFBEEFB1FFFF11F781DC064C47D04B9F239DD |
056CE92CDD6EABD601F703C6849D598B075026C2F8B5E320E210E822B3488F93 |
7176C105175861CAB49280DDC5C4B0F3ECD722576A3435EE56A1187B6C518FEB |
E025C1C5175D74D18517D79BCDAE52D7B8EF77EF6BC04A9DF9A1E171DFC82817 |
953A8B95724DA7A6B7B77F7464BC56AF6DBBEDA2975FF62DE0F549E4F27FF581 |
83EEF9C1FF17C5AD38EA8C5ABDA5E2A0D7CDEBC34934DA4ACA1DA5B87FA0F785 |
E5CF69D8F3E66D634722CE79E5D41B161D05AC016660AE0094B8D0CFCB1C0D1B |
C042C1E48A99C3D7C04F5CE0EB64E14C5B1447DB73CF3D7562A50471E6930CB0 |
D332FFA2ACCDA11D5A32BBD11F69AA4E6B4C5415D3FBE0411CE9308CCCD87492 |
713DEB3E21108A41A66843BEF0852F589A699B3C98928368A8A266C81735D662 |
BC96D7E8B2A88625F9B94938771834A863B85C5D2653697819363F09B1D5B6EA |
2498B20623B06E360C555B03AF310D9A011868041EDBB00260321436FA9A190D |
E0DC5106654B0D7B2567E9BCF3CEBBF0C20B91D3A88D7887496F65FDE9BD8EA3 |
1F160FD958665A3806462B6129DE7AC925979C75D6593BEFBCF333CF3C63888A |
33F8BB2959B090064D345D8A0E1B7601A250CEE204FFC788B125B420A7CD4AFB |
C4273E71DB6DB79181469A0382706B43444900B884DD2FD5C79C212EE8CF9C4B |
3B869A90F0585EB36611F983754C797F2BAAC0CBF7E52F7FF9CC33CFC472A51B |
92C132BACC0FE9B244320D83A210BDD1361162C482970274D555570104FB9EF7 |
BC47D2423FD183305EDF9877C8740E9036CC2FD2A65499CC08731A0977E3EB66 |
13678A13E8EAFDF6DBEF81071E40EAE218495AB97AA3EAD1F08BA2F5B4883C95 |
0411485EFE31B1F798E6E34A7534F2B8E91D694FA5566F6FF7C848EAC61DD846 |
AC40AAD5F0C8A6C1C1DE4A755C7C5CBFEA2CF5942BF542B15CAFE53B8BDBB856 |
77CAE86BA395358383A556B370C8211FFAF6B76FF36D0D62525F52401EDF6F40 |
F678A5BFAF777878441B44D20BEE144B56831DA01A901E60E998A147CFCE80A5 |
C1415596CA69DFDACE71560D1197930057D2A2B532CC4E2B3D255F280A0A475D |
86510A500C014C97A5F1B17912E0975E7A29EF930C92C504C3443FCBD4560544 |
884E8D679F7DF665975DE6A6CA22B5BCF5380082B7C2C5D01FC872692577DB6D |
B7A79E7ACA56D20E809BCA26901CD229D23961CCE43B611173FF7CD64D1A79B3 |
B592C080DEB81BC5962E8B7F98CB8EE47A97F9B810BD5623C28253B6CADC116F |
28E996686B2898D2A1B411A10A1F6505775106286264C3CAD8B1846B9817880B |
4C17614F71FA9172861F89380A7FBAACD78D21C4CC6013C0822DCEECB246BE38 |
BEF0D493D400FE6ED80BC168F20D6491E22CB281F12DE190B06DB8CB9480ADDD |
7776306CBAE232931ABB938582A8AC4D88097B764167B62DE732E4B096FDEC02 |
AF9D0BB2A269883401E199F2166B344D169C05693465F23BAC8BB20B305DC2F6 |
186F6C1DA007291F1233871F7EF83FFCC33F18BD19A4A0CB7CE3D68924AC3D34 |
1614D959B29204AC665EBE41EEDAB596098390775BC61B8D7ACC520B436A9C2E |
2D9F4106327F6A3891A8265A3506DCCA2CBA3E174FD4B66101B82D7BB0598EA3 |
95F0585E8D3ED14DF42B1E6A13365F10BA8984DCFEFBEFCF42589101AE0F8393 |
0D750D721220BBBC4BE1A846475ADE4ECA77F7F69089689CD10589E72EA82442 |
D90F0B4F5813940ECB5C9E7CF0A200B502EA413787A44E3EF964207760E230C1 |
638F3DF6EB5FFF3A77E027D69C8B28023249CAA6AC07B355591C2B393CEDB4D3 |
BEF6B5AF1105B1F401CB0222F2195623BA19FBBE5A16A0C176C286689370C619 |
676830A23A6D682B8345823CF84958313FDD2B492139B51D96268FCE05E73543 |
07659CE311E28BB4559684D950E66CD1C43548AD701B80BE2569A0EF9B880506 |
A30D493B843339E8A083448DC71F7FFC35D75C8327D6BA0860E093B618660D18 |
F198B5D736CE9078EC3D4F27CAA245B673CAB78635695508B404B03401CB360E |
232B2E886FB102610B23CE0ECFB5C474CBD06BA3F038C08AC793667445DE874D |
B04DF9888292BD68522ABCE904960339832DE502DFA92504C2C4CCBEB45831B7 |
323C1FABD773997F55FA900C02C3200A0B0B004C4409C08565B464092C33F415 |
60B57570C42439230CD24C4C93D0A8B36DA1500B9C4CAC15294700AD58F2931E |
BCFDF6DBBFF8E28B5482E834C243916C0683154A02180755309671840188A20A |
7E2CDD628DC8708CEA59B2166FBDF5569990F02CA2704956858195876736242F |
8B71593191C18161195816ACC4891E94E61795AC5D252FC3C7C7BF6C1C902C43 |
1A6783D0A23D66F3FC5AD73D351C71C411F7FDE847AFAD792D9F3E854CF01924 |
01A66B280938215A191C448813DB0B37C9F1E23203565A008E0838A935470B73 |
D7647BEAB4B3F2D43459B882C815A5F3200D5038264204B7D2C2210B172EC41C |
06F18D7C644B54C7E1830E612279064900929D75FD846A5D5A68C6D6C320F420 |
73AA6A6020D7B3382EC51D030972F20B0B06A3BBADFB905606AF2E9DCDF5742B |
FD0FABC92098B62C5B634028D122A7A38E3A4A0F92164691368BA34FE86F2A8A |
D565E015EA435D4F3F4B97E51D9AE1C200503800D1E49CB7B989D0E98C718729 |
D1211F445F4196584C224C7BD557C830481D740DD6C1F891DE9F7FFEF9975F7E |
B9655599956CF81FE6F631F54B9BA2036264136549EBB4FF8CB242BCD696BD4F |
5C00C3D7F6B2BA7100F335664C7936A2B5259AA4BD6F93041442E14BB4E4FAC9 |
61557B997F386C4E875B18233E09403E780FCF318792CE23CE4FC43C2146838C |
CE656DAE2D88A8EB111E22FE2BAFBCF2D4534F35ED244CD068AB3D84C142B1F4 |
9541C8111B3017B1F9668DC8D100347E99F83AD786CD1CB9008DC8E4BC66FEC7 |
7FFCC73FFEF18FEDC3F7BEF7BDBFFDED6F3FFDE94F8B019994B6EA35B30DCD44 |
02EC141B9C788B157C5E7FFDF5679F7DB648FFC9279FB48999DF404F3CE9A493 |
2EBDF452288C25A3D01CC1D8DCB2858EED99CB3C9B6F79CB5B9E7EFA696A6EC1 |
2B37F840CBC15FB66C19B2E7631FFB1873FCEA57BF7AE699671ABC01075E8FD0 |
9BA38F3E5A638615324DAF604A37ECF466FB41071FFCE8A38F3EFBFC73D05958 |
B2DB46D69B0DB174A1808CE7A8BCFBDDEFFEE94F7F8A3A6025215352BC59E5A1 |
EB8355B29435729F427F5798900E9BC66C1295E80E7AFF99CF7CE6BAEBAEB32A |
18032E360421242E875F671E1F055E1DCB08449141DECCECBF36A5583B2E36B1 |
DD76DB893A4D11D64D4469B7DD761B490EDABEE79E7B4E3FDC61871D44BBA07F |
CF707FF1DF430F3DF4873FFCA1EE8CB0D1763FF1C4135AD87DF7DDF79FFFF99F |
398421266518C46BB3F1DB24014C9FDA08ACAB1017DE65262FF93376B24E39E5 |
941B6FBC916C6EDB8B36740ACB48210B45C3A36D16B9EA56D40A3F7559D981C9 |
09D3FE747F9C87080397155486F9CD2E30C451548DCCC867BDE9A69B2EBAE8A2 |
C30E3B4C5431A52470411E840E9A1690F8B3189F7E6E84644612F954930D62AB |
C5758113230A7A8B1A84325D2167C85A9E521258E41F268887038B6D4AFAC16A |
2703D55283D8325374E0189C11B194BDF6DAEB17BFF80501E1B00593E810896B |
8C5B6716F10CFD2F5DBA54E3A1A4C6B0CD93ACC8D93CDB53F61570414359B879 |
92D59AC19F0D228100320A9FD5C06B6DB19B37274A512765597DE652A75010ED |
9EEC668B20A1D059D08F61A13EB8AC0CEA7DEF7B9F581B8030BA0C6C58FD10EB |
0922B6647F24AD91A935F0D3FFBA5ED74004E1961B1D50AB4D391FFC88C3898B |
831478EBEB8BFA0F0523C9C3968438FAAD74D60C3D3297AD9260224DA8D851AD |
55172E58B86EC3864AB5D29D8968F6AF8D4C8D285D96FC40741AAFB4E4E239E7 |
9C831F80B34186C374146F5E8528054CD7CA9029A415606B93ACA9007531FA13 |
7B4E1B74EEB9E75E72C925E692B69A356B53634864A818187068D0C8065DFFE1 |
0F7F589C025BCD0412BA8F652E4EC7A9D18074730D4FD79B73C965990F6800F4 |
09D05A7DFCE31FFFFAD7BF4EBCCB05AEC5E9743AB43F032B7699BB0CD730DE4E |
2D05AD22496AD2E30CA21956D566D2859220C9C03C0C4200A5812DD39D350B92 |
A6A467D0F210D165B51A14A01A33324D5CBFC5DE820BA0CC5A2F1A710D517268 |
ACC0B2DBBC192E6868635C3BCA50F3D04989E502A181CFBD91F506B7323AFC72 |
F4B1B1D62EB8A1EC6E18AF885206F0CD6F7E53AA95CBF238CD21FCD6B7BE5592 |
D8866AE07A2161230388C6E32A60FA7BEEB9E7C1071F2CA2D57B04CC94E76206 |
EF90814C9873D8C0C3A7D424426C660B22A2882C5FBE9C59E3A5E0ACE9136ADD |
3141F4C6F775181F7FD39BDEA459839FAA3F9185704E312291F7F1C71F2F7507 |
838C479800B0383CF43CB9AF002A978582409270594CD40C2F6DB134E377BEF3 |
9D77DC71C77EFBEDF7E0830F1A048576EAED6F7FFB19679C614EBFCD692161DC |
328C0DC0E01009644C62BF4C96AB5608031158FB9710D24EABA0D15085087FD1 |
575A4ADD0D77709265CDC323B47FFA1550B471D0D4257472194D68D8DA06E88F |
A3222EA60329531735ED231FF9C8FDF7DFAF67BDFFFDEFBFF7DE7B5D1A79D3AF |
C4DA4E38E1040E037E402B17824FE98D317ABF61E5F240BFB758CBB56A2ECE35 |
5A4D50620C7DA1CD83C9688BE94BEFCDF9833587F9621A9C0483ACA2C9DE21B6 |
99EA4DF3985B6E125E6F2B3089B35E7AE862541851726CDBC1692145CAFAF050 |
7C672E4BF46582462018C3294E3FFDF46BAFBDD6A55D322CE0CCC123CB62BA93 |
163A43753D2177BB20AC20C5D76171239C03A63D4D777FBC8E68EE28D7A650BB |
CCFCC7214E2E078623E787450B61C5DA2401DE271718796DF04A2ECB43B7C40C |
CD823E0A4B962C11655A94C205E159EE6FB17473555903351D5A59B1B874C262 |
E6D0F7D816910AE910CA414F84C38AE48E3AEAA89B6FBE197037EB7CE9B24008 |
B6A9155DBB2DE304B6C5211281D9EE4C1C0FADCEBBC4D8C30F3F1C46985D16DE |
982E2A431E8E7414236F54A5D0E67E9D92202CD1704122DC74F4631B4AD60D0B |
AE9B68FB649B126CB0CCBA30834ED7CBF8FBF6B7BF8D2716572A7242DA4F5BC7 |
78046DDA86AB03629B5212209926F715B07E6A40214939FBD18F7EA4C5874260 |
352E45BC30FD49CA8AFEC460D51375E800799DD856689AB68B61BF1AD2EA397B |
30C728AB88838FB4E923F4BB609FCC11069B138BD1F8F489466FEAA74B7D35FB |
ECB3CF9FFCC99F88F1D9294539C2BCD0DD24879F7FFEF92F7EF18B5FFAD29710 |
7493B3E3A32CB51C23481CEA861B6E902AF1B39FFD8CD991BA60A2C2E27BCB96 |
2D9389100A76364CC2F3D1471FC5128CB3FE4436EC8928B4F369FE9B8636CD9B |
BFC0DB13D58A45CC424A0D092EC932ED5CE667842B51AE42DA3E2A1890E86EAA |
EC4CE6CE2C684CC8525B410301315C344853DC9D6C2EC71B6E4B4227A5401E1E |
7CED5ACBB5D0575EC6A5F000B051BD39E49043EEB9E71EBC2228B99081862D6E |
AE0FFFE66FFEE67BDFFB9E4577A73C69B892445444BAF4A76EFBC0030FE83E9A |
B221D10313CD5A895B8942F4393A1D690533E0B490564197F666D65A87A80F60 |
CBA18FD1CE092639FA4DC86EDA24013905864C950B3AAF81A9A9A7845DB7F4D5 |
11471C71F7DD775B88CB5A58877DCF2D038A0C3D03E0E404E131D7C2DA1393AC |
F5A00DCC6AC58DABDAC48DD84C2272C061131076D82C9E97E57AB67987C29537 |
E1A743A1AD31578334CDABAEBACA2E236CC30A873E7A44859B2A5460A3A27E4A |
DFEAFEE8DA53C6CFA6F30E35B3B6B52EB5C3C2C4E82989074916E62671283454 |
824C24768721040BE9932B68969C4BDD09E4DDE9DCC948B2F211931C9889166B |
99EC1D6A6DD935DDFC8D96C88E61277940620B01156E8B3A82FF96D458440877 |
63EF6C1D3C0FD52E4ADC3DF5D453CC9385D3EA8BDF599D3A8408878A32B80297 |
6970C69DDB909ED869B43917641A1050C2F380EB19EE6F88D056BCC371B28C28 |
6B9360D7186A20D7301E8B4692FFE332645A98BB9600E02743DF6DA64D7FC8FB |
248D0F130FEDC6B6D380097D35D34B2F75143D3B7B65950F5D26590A13076632 |
A58688602C4E57FAD29A6BD6FAAD183474201D4A52D9F4A6362B98A0B4196DFA |
4436E637BEF10D2B60094B07B88638BFB99571911D7DF4D1B7DF7E3B7BAD15B0 |
8C207B03CE2DCE1F6430D9F40CC362C550154FDC75D75D3DD0799A4A3103B668 |
E8D97401A41A4F4756857D3125A834605466582146F19437373FAFB520E55487 |
5834B05A3BF6BBECB2CBD34F3F6DE5931CB6E9E204D6C72D0CC3E88640DE4BA8 |
FFD99FFDD9F7BFFF7D5224EEBCF3CEE38E3B0E6763B265BA8EDDD6188A959284 |
04930B7A1487B46466CD94EA2D1CD0028116C3832FE8E794CDDF76DB6D21F622 |
93B2E89AA1A82659FD799216CA311273DC53A9608D2E346BED9776102FAB9E28 |
7A139342968415795180E36B2E533B3850B895C54A15B8EBAEBB4C3998AC694D |
270976DE7967D1A4A1B39952F87B2581A802DF4E5B8A79486950FE8E3BEEB87C |
F972CBCD25484BF4851C65ADC95FFEE55FFEEBBFFE6B92E5B382862B45FE1FFF |
F11F0D7E71CA88B145AD9A5BF61520CD44FCFDF0C30FBFF5D65B0DBC56B3C37B |
894263A25D5CE2BEFBEEC349852F57DB07596E8E18EBC1DA3CED163100CE4FD8 |
032F0C0587896BD0479421911198E200A3E09826AE496A5656B264FA0B0F323D |
14D3860958F1083A97994BB68BFCAFCF3FF9C94F7EEB5BDFA2AA08E33D09E0DD |
31110C77080322AC17334C50E2D58C415ACCFEFBEF7FE38D376A41885B1247D1 |
442EBAE8A2B3CF3E3B977815A395B4162C5CF4EACA57932C8560BA88B11DD15C |
D680D4D8229CD1D2D2F512419C77DE7916316EF35CBB2CC06ED978C6DDD80517 |
5460DA61836B5B16636ECB36E8D6F5C932E1A0049721B6221D4DD136BF996985 |
612AB0A90B935FE6C4B428B7419F1A30B286A44302882C54075BB1423F37A377 |
C86D59F2C3E7323D7FFDEB5F8BCD49A858F61E8A8E4EE9CF7FFE73EC0C53E4A7 |
9304499634850719C2B063A2DF6A90325FF6D8630F494DC3873031E3B6C4B470 |
81F26408B5A89956F5C287D01E20D56184C065DA58E8CE6A533BC2F1BB402133 |
C52B6C3667DB84872ACAB2395DE06B62F0A6FA308BB3CE3AEB8A2BAEE02CBB54 |
65C1BCB3160E86D2413E61086B1107C0B4EC82399DD0678D8DA0A94CB6954302 |
0825C1B9E79EABD344F759AB018CB356E4935FA6DD1F78E081F7DE7B2F0CC1FC |
AEE47184D11A97B94F5D60EFA2E8D80EB6B22E6696BC870F56C78D0825E771CA |
2C52C25193FB0AE87FE21637DD7493D891A1526AB466315876A5FE3740401758 |
481603DF2C0C4C93B2E5A0CC9AB8539C755FB2A0B1E91766E9A00F92BAA063FC |
ED6F7F1B1FBDC1CE40D304A8094D73961868188F9A7287C23A17B38E295A21EB |
C37E0EC00BAA07A7EB3BDFF98E44221E0397C61EC82B95EA2DB92AFE08767933 |
EB10124D95943D99E384046D53D0E7CB962DDB7DF7DD7FF8C31F5A5CDA650973 |
9C2B3E34BF21EA550A9AE44CF365D1E002D234A5358B539348673942E49813CD |
16499D76DA69A27B6E9ECFFA50B65E0756A50BC0F4BFF4A52F49D481A1661265 |
26CC4B97C4A9F15715BF4B5501EF82488FEBC0A0CF2E154D964A13690FDEE55A |
6B94BABB2B6956866779D5CDED01421916266E3300F2B2AC343F3CCC61401E7E |
71FDF5D77FF4A31FB5DA639CF89FFDEC673535A4BE79BD30CE344EC224A6CD84 |
3AAF9D1F58800136989F21348527AF731B4559AC4B1ACCCD37DF6CE5DC3CC8C4 |
A1019DB6FDD03EB78059087FE432C42DC97283BBC1F960092424D102516918AE |
2EC8DF430E61107367626CD2A82EBEF862837DB69476F35458E6C557BEF21591 |
22868E853A43991AD627DBA9674F2542C4856501A053E3D3237FC1CC41835520 |
4F019662AD112CCE84E7A4CD7408D5A33061814498E9504F184078D2A3ACAE82 |
93AB6FB1CB2DA9019AC7E5687E3C5D23A5E497BFFCA5A9C5E61A32F07033CD0D |
3AD36209966833B3266485AE98957CC59A7FE0031FF8D18F7EA4C98A06C2CE4E |
9105BEF89958183611933104349304F6488BFC98DE6A1510886E780D1E67C667 |
AA93732E995E6B9E6186AC7EF8AAA42FB3245C801CC9DAE1D1D2D8B4435658B8 |
78F1E277BFFBDD0F3DF410A96F22741D0CAB1D7D3D9200A5187B9948A395046B |
9A7A283A26EA33B536064FE432E96D6871BAD509279C20814FF194AEC15760D5 |
1F24C3B8ACBDA295CB5AFF3C3D82F418D3435DA0ADBC7E4960F91E06238CAB6D |
BA7D71715A612773A1AFCFFBB8D29A863E6F7F8C80EA1E7610F427A7D6E8ECE9 |
91402BA44A43AB311191E359ACA7CB605CCD2B6DAA89F9FAC9AD9A4C21162FC1 |
A205F482BB99FA12A73D114911D6055A34DAFB916CFEF9CF7F5EE6B618DF76DB |
6D474404394DB703B2AAD0B819F9CC35D2D34902DD5CB6C89D77DEA9F7867B11 |
1E8130F0DBC637DB2441DB7BAC4CAAD2CCBF6C6825F82E0E3DF4D09FFCE4277A |
EEB6DB6E2BBD72C99225BA52EB60C0FAFA5F3A81F83E49105A2B8A7EC4C5B432 |
CF3EFB2CB995B063CE026409799B41603D50A349999D2E000733C30293C20A42 |
51EC50080CC03997356DC620E39461DACA923EFDF4D34D677253C587210010E0 |
2D03C73CCF33788DCC82B1ADC44DC71ADA95585A6D9D2D3850F8F476D965172D |
A025D7A22293127AFEF9E75F7DF5D5F8792EBBECB2934E3AA9EDB9B656D36966 |
E4861E74D041FFFEEFFF7EC00107DC7EFBEDD2D19F7CF2499C1F483E4A5EF6DE |
7BEFC71F7F9CE882BFBFA9F9C8C9FDF7DF5F9632064B9BA7350CBE859681C903 |
DE9371C4218C82BA06975985FA5C17D0B2B58DE74E595E1BBE4C77081D8B50AA |
B5887341A20E0100B4722BCD40C124971C0C51ACF5B620E1CCC200876023EB5C |
1A05B02DB82664B27DF9CB5FD6D32500C23C2833757959E5A41810C810C479B4 |
5640194B5AE80E9AC21D77DC71D4514711B124F615F69C226B9613A8A7608A4D |
7EDC949220F4595174261ABAFBEEBB433A9E41128803EDF5CE778AB887366D9A |
3D67CEB1C71E7BCD35D768FDC84615057574F82E72DA312F9E9389DE49B95495 |
6E785CC2188E6F7E644816598EFB02B39A434B2E3F7CC138A0D988B8B3659649 |
E7B2FA41F38798670C7A461E4B824A0C58F5BF9DBDD0203010371E2DD679F0C1 |
07EBFD75D75D4782F574A4329D24D0DD76DA69A7E79E7B0EEF28E29F686A2815 |
A6930461DE811D1974A328CB033CE6986324D276DC71479D766B88C49586D669 |
2E29944D485A5C4993020391DD31E35E5F69D6C0459893CA160AD2856B5B0C1C |
B3156086D0C916EAE976071B24FC34CEF0B5B4831AF333CF3CC3D4306BD85F70 |
1BB9DE5896CB5245AC4B55123409D79FE295E283747932AE126DD977BA6D1F27 |
5FA3478878407805B443040F03D4E7AFBCF28AA189E0784715666510D8065B8B |
7DAF37565E10A790763AFB38E1B1F2C9D89E814F86364158C3648D57AD409A5A |
D4CD3681CB72F5B0C524AFB4DC966C60AE67D8442809428EECD222495B5612DB |
91E758BEDCDC5CCFA8CCA17FC95CE4D3CD30F420B94042A217E01E41B762C0A8 |
0C2C3DC93F2ECBE7C364B606069624176D9986E1A6816933498084B7C13342DC |
7F2E08EB9983488472C515577CFCE31FA784D820D25CE096653044C9F4A755AE |
87ED32E20C23D7B20C4965B3601A5E38D4E19939949D43FC3F21160241177CBB |
333493E9EEED19D5614BDB3497328C33AF48D66A7DA97AE2B2428189A86316A7 |
49703636A6586193041A1B455B61A14D92A672E27360D8A6A1DB657BEEB9E763 |
8F3D86AE475E998422A4680DCE5852CC32DDF0D39FFEB46C321C6B345ED6B760 |
FE80C681A981DD00403A1B1176F4DC2A49E0B2E44E3325CD533AD97FE2B6F4A5 |
98E40E9982F985C3FC3ADD590625FDD1E02C96B68B3BC8E2FC486E2C7B9C0100 |
ECA0BD61129116C5A9B183893D4AEA2455265A9370893889611981AD89CB127F |
0D08811500B8DB8A284506C71D77DCCD37DF6CF33DF7DC7365B5582C138D5B3B |
2845049002B386C3B0B965B820FEAD4785E508FC5E9F44B895BCC75E9F2CCC78 |
AF45D39A1BFBB6E41FF3E6137C25D8AEB9882D1027472921E72DEC7C80BBCFE0 |
5127BFD81D03F542EB3587B946ABC5B4B5DD4212184E4538BD5CD081CB60DAC2 |
B06DB8C449D047093A231601C76734C8220EAA2589C7197045DB3DA7DC09F399 |
429A2EF329B73288472B3CA1ECDB7A0FE0C2C30C3739A915D1F5D6F54267203C |
69C6C7A75B6E08C848D9C66F19811C06B012A13CFD2FE2336C06BB15B6308CE9 |
A28B2EFAE217BFA8F75A798B3E19FC8E464B1534E104C3A581C1A1E859FF0A5D |
637EB9192481CB74492BFE94427DCA29A78833BAA08E74DA7D7149B1A3E3D24B |
2FA50389EEBBCDDCB96B5346D393B57082174FC8308DBCBB7B3CB514BDD65F6F |
589BCC36491F0575186DC53EE889D61C8684167350B4D59C4BF7111F3498687D |
250E72FAE9A71B0B08F3A4C56E241B2EBEF86297A551324D7D280A09FB595A5A |
9DCB42085B2509809720C61812038A7928DE5C80EB6507818987DE8CB60DC279 |
7DE79D777EE8431F7219F0910B3AEBB6E1AE47299A77D851E3CD6F7EF3934F3E |
892B06DB5A275AEB6029CB1C25D48E0B2EB8E0C61B6F94BED586AAD6D6259133 |
65069C9D2033B9C25C1D7DC81CF52CD95EA79D761AA769E79D77D6AD34363B1D |
A273A494C10AB954FFB06413B342F0139AF267FA789C01B44D6BFB06C2C0E8D0 |
A2110C7EE1C2855A64F1D9C58B179F73CE39DFF9CE777EF5AB5F210F7478F544 |
094BD3F970FC5A313F1C4CCC417A3A6BAEF7D64C4616CCFDF7DF4FAE4A9B2E3F |
E520F10A80D5614718C16F3583869BC90FFF7F1A8323CA70A77C930000000049 |
454E44AE426082} |
Transparent = True |
end |
object v: TLabel |
Left = 16 |
Top = 8 |
Width = 236 |
Height = 48 |
Caption = 'SpaceMission' |
Font.Charset = ANSI_CHARSET |
Font.Color = clLime |
Font.Height = 48 |
Font.Name = 'Arial Unicode MS' |
Font.Style = [fsBold] |
ParentFont = False |
end |
object Label1: TLabel |
Left = 88 |
Top = 54 |
Width = 130 |
Height = 26 |
Caption = 'Level-Editor' |
Font.Charset = ANSI_CHARSET |
Font.Color = clAqua |
Font.Height = -22 |
Font.Name = 'Arial Rounded MT Bold' |
Font.Style = [] |
ParentFont = False |
end |
end |
/LevSplash.pas |
---|
4,12 → 4,13 |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
jpeg, ExtCtrls, StdCtrls; |
jpeg, ExtCtrls, StdCtrls, Vcl.Imaging.pngimage; |
type |
TSplashForm = class(TForm) |
SplashImage: TImage; |
procedure FormCreate(Sender: TObject); |
v: TLabel; |
Label1: TLabel; |
end; |
var |
22,14 → 23,5 |
{$R *.DFM} |
procedure TSplashForm.FormCreate(Sender: TObject); |
var |
FDirectory: string; |
begin |
if copy(extractfiledir(application.ExeName), length(extractfiledir(application.ExeName))-1, 2) = ':\' then FDirectory := '' |
else FDirectory := extractfiledir(application.ExeName)+'\'; |
SplashImage.Picture.loadfromfile(FDirectory+'Bilder\LevSplash.jpg'); |
end; |
end. |
/SpaceMission.dproj |
---|
0,0 → 1,1088 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{32c160e6-f499-4896-b557-825a5c8617f1}</ProjectGuid> |
<MainSource>SpaceMission.dpr</MainSource> |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
<DCC_DependencyCheckOutputName>SpaceMission.exe</DCC_DependencyCheckOutputName> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>20.1</ProjectVersion> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Release</Config> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Application</AppType> |
<ProjectName Condition="'$(ProjectName)'==''">SpaceMission</ProjectName> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''"> |
<Cfg_1_Win32>true</Cfg_1_Win32> |
<CfgParent>Cfg_1</CfgParent> |
<Cfg_1>true</Cfg_1> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<SanitizedProjectName>SpaceMission</SanitizedProjectName> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1031</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0</VerInfo_Keys> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<DCC_OutputDRCFile>true</DCC_OutputDRCFile> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> |
<Icon_MainIcon>SpaceMission_Icon.ico</Icon_MainIcon> |
<UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44> |
<VerInfo_MinorVer>0</VerInfo_MinorVer> |
<UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150> |
<AppDPIAwarenessMode>none</AppDPIAwarenessMode> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> |
<Icon_MainIcon>SpaceMission_Icon.ico</Icon_MainIcon> |
<UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44> |
<UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<Version>7.0</Version> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_WriteableConstants>True</DCC_WriteableConstants> |
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_UnitSearchPath>VCL_DELPHIX_D6;VCL_MARKDOWN;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> |
<DCC_ResourcePath>VCL_DELPHIX_D6;VCL_PJVERSIONINFO;$(DCC_ResourcePath)</DCC_ResourcePath> |
<DCC_ObjPath>VCL_DELPHIX_D6;VCL_PJVERSIONINFO;$(DCC_ObjPath)</DCC_ObjPath> |
<DCC_IncludePath>VCL_DELPHIX_D6;VCL_PJVERSIONINFO;$(DCC_IncludePath)</DCC_IncludePath> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''"> |
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> |
<VerInfo_MinorVer>2</VerInfo_MinorVer> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=ViaThinkSoft;FileDescription=SpaceMission;FileVersion=1.2.2.0;InternalName=SpaceMission;LegalCopyright=(C) 2001-2024 Daniel Marschall, ViaThinkSoft;LegalTrademarks=;OriginalFilename=SpaceMission.exe;ProductName=SpaceMission;ProductVersion=1.2.2;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Release>2</VerInfo_Release> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<Version>7.0</Version> |
<DCC_WriteableConstants>True</DCC_WriteableConstants> |
<DCC_UnitSearchPath>VCL_DELPHIX_D6;VCL_MARKDOWN;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> |
<DCC_ResourcePath>VCL_DELPHIX_D6;VCL_PJVERSIONINFO;$(DCC_ResourcePath)</DCC_ResourcePath> |
<DCC_ObjPath>VCL_DELPHIX_D6;VCL_PJVERSIONINFO;$(DCC_ObjPath)</DCC_ObjPath> |
<DCC_IncludePath>VCL_DELPHIX_D6;VCL_PJVERSIONINFO;$(DCC_IncludePath)</DCC_IncludePath> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> |
<Debugger_RunParams>"C:\Users\dmarschall\AppData\Local\Temp\SpaceMissionTest.sav"</Debugger_RunParams> |
<VerInfo_MinorVer>0</VerInfo_MinorVer> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
</PropertyGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>VCLApplication</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Parameters> |
<Parameters Name="UseLauncher">False</Parameters> |
<Parameters Name="LoadAllSymbols">True</Parameters> |
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
</Parameters> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">1</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1031</VersionInfo> |
<VersionInfo Name="CodePage">1252</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName">ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="FileDescription">Ein spannendes Weltraumspiel...</VersionInfoKeys> |
<VersionInfoKeys Name="FileVersion">1.1.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName">SpaceMission 1.1</VersionInfoKeys> |
<VersionInfoKeys Name="LegalCopyright">© Copyright 2001 - 2006 ViaThinkSoft</VersionInfoKeys> |
<VersionInfoKeys Name="LegalTrademarks">Keine</VersionInfoKeys> |
<VersionInfoKeys Name="OriginalFilename">SpaceMission.exe</VersionInfoKeys> |
<VersionInfoKeys Name="ProductName">SpaceMission 1.1</VersionInfoKeys> |
<VersionInfoKeys Name="ProductVersion">1.1.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Homepage">www.viathinksoft.de</VersionInfoKeys> |
<VersionInfoKeys Name="Projektleiter">Daniel Marschall - www.daniel-marschall.de</VersionInfoKeys> |
</VersionInfoKeys> |
<Source> |
<Source Name="MainSource">SpaceMission.dpr</Source> |
</Source> |
<Excluded_Packages> |
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Beispiele für gekapselte Komponenten für Automatisierungsserver</Excluded_Packages> |
<Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server</Excluded_Packages> |
</Excluded_Packages> |
<Language> |
<Language Name="ProjectLang">$00000407</Language> |
<Language Name="ActiveLang">ENU</Language> |
</Language> |
<Resource_DLL_Projects> |
<Resource_DLL_Projects Name="Item0">Englisch (Vereinigte Staaten)*$00000409*ENU*ENU</Resource_DLL_Projects> |
</Resource_DLL_Projects> |
<RDP_Source_Files> |
<RDP_Source_Files Name="Item0">GamMain.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item1">GamSplash.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item2">GamSpeicherung.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item3">ComInfo.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item4">GamCheat.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item5">ComHilfe.dfm</RDP_Source_Files> |
<RDP_Source_Files Name="Item6">SpaceMission.drc</RDP_Source_Files> |
</RDP_Source_Files> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
<Deployment Version="4"> |
<DeployFile LocalName="SpaceMission.exe" Configuration="Debug" Class="ProjectOutput"> |
<Platform Name="Win32"> |
<RemoteName>SpaceMission.exe</RemoteName> |
<Overwrite>true</Overwrite> |
</Platform> |
</DeployFile> |
<DeployClass Name="AdditionalDebugSymbols"> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidClasses"> |
<Platform Name="Android"> |
<RemoteDir>classes</RemoteDir> |
<Operation>64</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>classes</RemoteDir> |
<Operation>64</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidFileProvider"> |
<Platform Name="Android"> |
<RemoteDir>res\xml</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\xml</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidGDBServer"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeArmeabiFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\armeabi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeArmeabiv7aFile"> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeMipsFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\mips</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\mips</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidServiceOutput"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\arm64-v8a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidServiceOutput_Android32"> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashImageDef"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashImageDefV21"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStyles"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStylesV21"> |
<Platform Name="Android"> |
<RemoteDir>res\values-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStylesV31"> |
<Platform Name="Android"> |
<RemoteDir>res\values-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v26</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v26</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIconBackground"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIconForeground"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIconMonochrome"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_AdaptiveIconV33"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v33</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v33</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_Colors"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_ColorsDark"> |
<Platform Name="Android"> |
<RemoteDir>res\values-night-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values-night-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_DefaultAppIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon144"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon192"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xxxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon36"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-ldpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-ldpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon48"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon72"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon96"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon24"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon36"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon48"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon72"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_NotificationIcon96"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xxxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage426"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-small</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-small</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage470"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-normal</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-normal</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage640"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-large</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-large</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage960"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xlarge</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-xlarge</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_Strings"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedNotificationIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v24</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v24</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedSplash"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedSplashDark"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-night-anydpi-v21</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedSplashV31"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-anydpi-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-anydpi-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_VectorizedSplashV31Dark"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>res\drawable-night-anydpi-v31</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DebugSymbols"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DependencyFramework"> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DependencyModule"> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.dll;.bpl</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="DependencyPackage"> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.bpl</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="File"> |
<Platform Name="Android"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Android64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectAndroidManifest"> |
<Platform Name="Android"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXDebug"/> |
<DeployClass Name="ProjectOSXEntitlements"/> |
<DeployClass Name="ProjectOSXInfoPList"/> |
<DeployClass Name="ProjectOSXResource"> |
<Platform Name="OSX32"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX64"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSXARM64"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="ProjectOutput"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\arm64-v8a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Linux64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSXARM64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOutput_Android32"> |
<Platform Name="Android64"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectUWPManifest"> |
<Platform Name="Win32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win64x"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceDebug"> |
<Platform Name="iOSDevice32"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSEntitlements"/> |
<DeployClass Name="ProjectiOSInfoPList"/> |
<DeployClass Name="ProjectiOSLaunchScreen"/> |
<DeployClass Name="ProjectiOSResource"> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="UWP_DelphiLogo150"> |
<Platform Name="Win32"> |
<RemoteDir>Assets</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win64"> |
<RemoteDir>Assets</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="UWP_DelphiLogo44"> |
<Platform Name="Win32"> |
<RemoteDir>Assets</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win64"> |
<RemoteDir>Assets</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iOS_AppStore1024"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_AppIcon152"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_AppIcon167"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch2x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_LaunchDark2x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Notification40"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Setting58"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_SpotLight80"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_AppIcon120"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_AppIcon180"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch2x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch3x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_LaunchDark2x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_LaunchDark3x"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Notification40"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Notification60"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Setting58"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Setting87"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Spotlight120"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Spotlight80"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimARM64"> |
<RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="iOSSimARM64" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSX64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win64x" Name="$(PROJECTNAME)"/> |
</Deployment> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="GamMain.pas"> |
<Form>MainForm</Form> |
</DCCReference> |
<DCCReference Include="GamSplash.pas"> |
<Form>SplashForm</Form> |
</DCCReference> |
<DCCReference Include="GamSpeicherung.pas"> |
<Form>SpeicherungForm</Form> |
</DCCReference> |
<DCCReference Include="ComInfo.pas"> |
<Form>InfoForm</Form> |
</DCCReference> |
<DCCReference Include="GamCheat.pas"> |
<Form>CheatForm</Form> |
</DCCReference> |
<DCCReference Include="ComLevelReader.pas"/> |
<DCCReference Include="Global.pas"/> |
<DCCReference Include="ComHilfe.pas"> |
<Form>HilfeForm</Form> |
<FormType>dfm</FormType> |
</DCCReference> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/> |
</Project> |
/_InnoSetup/SpaceMission.iss |
---|
1,114 → 1,63 |
; SpaceMission Setup Script for InnoSetup 5.1.12 |
; SpaceMission Setup Script for InnoSetup |
; by Daniel Marschall |
; http://www.daniel-marschall.de/ |
; Shut-Down Game?! |
[Setup] |
AppName=SpaceMission |
AppVerName=SpaceMission 1.1 |
AppVersion=1.1 |
AppCopyright=© Copyright 2001 - 2007 ViaThinkSoft. |
AppVerName=SpaceMission 1.2.2 |
AppVersion=1.2.2 |
AppCopyright=© Copyright 2001 - 2024 ViaThinkSoft |
AppPublisher=ViaThinkSoft |
AppPublisherURL=http://www.viathinksoft.de/ |
AppSupportURL=http://www.daniel-marschall.de/ |
AppUpdatesURL=http://www.viathinksoft.de/ |
DefaultDirName={pf}\SpaceMission |
AppPublisherURL=https://www.viathinksoft.de/ |
AppSupportURL=https://www.daniel-marschall.de/ |
AppUpdatesURL=https://www.viathinksoft.de/ |
DefaultDirName={autopf}\SpaceMission |
DefaultGroupName=SpaceMission |
VersionInfoCompany=ViaThinkSoft |
VersionInfoCopyright=© Copyright 2001 - 2007 ViaThinkSoft. |
VersionInfoCopyright=© Copyright 2001 - 2024 ViaThinkSoft |
VersionInfoDescription=SpraceMission Setup |
VersionInfoTextVersion=1.0.0.0 |
VersionInfoVersion=1.1 |
Compression=zip/9 |
VersionInfoVersion=1.2.2 |
PrivilegesRequiredOverridesAllowed=dialog |
UsePreviousPrivileges=no |
ShowLanguageDialog=no |
OutputBaseFilename=SpaceMission_Setup |
OutputDir=. |
; Configure Sign Tool in InnoSetup at "Tools => Configure Sign Tools" (adjust the path to your SVN repository location) |
; Name = sign_single |
; Command = "C:\SVN\...\sign_single.bat" $f |
SignTool=sign_single |
SignedUninstaller=yes |
[Languages] |
Name: en; MessagesFile: "compiler:Default.isl" |
Name: de; MessagesFile: "compiler:Languages\German.isl" |
[LangOptions] |
LanguageName=Deutsch |
LanguageID=$0407 |
[Tasks] |
Name: "desktopicon"; Description: "Erstelle eine Verknüpfung auf dem &Desktop"; GroupDescription: "Programmverknüpfungen:"; MinVersion: 4,4 |
Name: "levedit"; Description: "Installiere den &Leveleditor"; GroupDescription: "Zusatzprogramme:"; MinVersion: 4,4 |
Name: "compiler"; Description: "Installiere den Level&compiler"; GroupDescription: "Zusatzprogramme:"; MinVersion: 4,4 |
[Files] |
Source: "..\SpaceMission.exe"; DestDir: "{app}"; Flags: ignoreversion |
Source: "..\LevEdit.exe"; DestDir: "{app}"; Flags: ignoreversion; Tasks: levedit |
Source: "..\Compiler.exe"; DestDir: "{app}"; Flags: ignoreversion; Tasks: compiler |
Source: "..\Dokumentation.pdf"; DestDir: "{app}"; Flags: ignoreversion |
Source: "..\Bilder\Auswahl.bmp"; DestDir: "{app}\Bilder"; Flags: ignoreversion; Tasks: levedit |
Source: "..\Bilder\Delphi.bmp"; DestDir: "{app}\Bilder"; Flags: ignoreversion |
Source: "..\Bilder\LevSplash.jpg"; DestDir: "{app}\Bilder"; Flags: ignoreversion; Tasks: levedit |
Source: "..\Bilder\SplSplash.jpg"; DestDir: "{app}\Bilder"; Flags: ignoreversion |
Source: "..\SpaceMission.exe"; DestDir: "{app}"; Flags: ignoreversion signonce |
Source: "..\LevEdit.exe"; DestDir: "{app}"; Flags: ignoreversion signonce |
Source: "..\SpaceMission.enu"; DestDir: "{app}"; Flags: ignoreversion signonce |
Source: "..\LevEdit.enu"; DestDir: "{app}"; Flags: ignoreversion signonce |
Source: "..\Help\*.md"; DestDir: "{app}\Help"; Flags: ignoreversion |
Source: "..\Help\*.css"; DestDir: "{app}\Help"; Flags: ignoreversion |
Source: "..\DirectX\Graphics.dxg"; DestDir: "{app}\DirectX"; Flags: ignoreversion |
Source: "..\DirectX\Music.dxm"; DestDir: "{app}\DirectX"; Flags: ignoreversion |
Source: "..\DirectX\Sound.dxw"; DestDir: "{app}\DirectX"; Flags: ignoreversion |
Source: "..\DirectX\Graphic.dxg"; DestDir: "{app}\DirectX"; Flags: ignoreversion |
Source: "..\Einstellungen\SpaceMission.ini"; DestDir: "{app}\Einstellungen"; Flags: ignoreversion |
Source: "..\Levels\Level 1.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 2.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 3.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 4.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 5.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 6.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 7.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 8.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 9.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 10.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 11.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 12.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 13.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 14.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 15.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 16.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 17.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 18.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 19.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 20.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 21.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 22.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 23.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 24.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 25.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 26.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 27.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 28.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 29.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 30.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Levels\Level 31.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
Source: "..\Musik\Boss.mid"; DestDir: "{app}\Musik"; Flags: ignoreversion |
Source: "..\Musik\Game.mid"; DestDir: "{app}\Musik"; Flags: ignoreversion |
Source: "..\Musik\Scene.mid"; DestDir: "{app}\Musik"; Flags: ignoreversion |
Source: "..\Musik\Title.mid"; DestDir: "{app}\Musik"; Flags: ignoreversion |
Source: "..\Texte\Mitwirkende.txt"; DestDir: "{app}\Texte"; Flags: ignoreversion |
Source: "..\Levels\*.lev"; DestDir: "{app}\Levels"; Flags: ignoreversion |
[Dirs] |
Name: "{app}\Spielstände" |
Name: "{app}\Levels" |
Name: "{app}\Eingabe"; Tasks: compiler |
Name: "{app}\Ausgabe"; Tasks: compiler |
Name: "{app}\Temp"; Tasks: compiler |
Name: "{app}\Temp\1"; Tasks: compiler |
Name: "{app}\Temp\2"; Tasks: compiler |
Name: "{group}\Webseiten" |
Name: "{group}\Ordner" |
;[Dirs] |
;Name: "{group}\Webseiten" |
[Icons] |
Name: "{group}\Webseiten\Daniel Marschalls Webportal"; Filename: "http://www.daniel-marschall.de/" |
Name: "{group}\Webseiten\ViaThinkSoft"; Filename: "http://www.viathinksoft.de/" |
Name: "{group}\Webseiten\Projektseite auf ViaThinkSoft"; Filename: "http://www.viathinksoft.de/index.php?page=projektanzeige&seite=projekt-19" |
;Name: "{group}\Webseiten\Daniel Marschall"; Filename: "https://www.daniel-marschall.de/" |
;Name: "{group}\Webseiten\ViaThinkSoft"; Filename: "https://www.viathinksoft.de/" |
;Name: "{group}\Webseiten\Projektseite auf ViaThinkSoft"; Filename: "https://www.viathinksoft.de/index.php?page=projektanzeige&seite=projekt-19" |
Name: "{group}\SpaceMission"; Filename: "{app}\SpaceMission.exe" |
Name: "{group}\Dokumentation"; Filename: "{app}\Dokumentation.pdf" |
Name: "{group}\Leveleditor"; Filename: "{app}\LevEdit.exe"; Tasks: levedit |
Name: "{group}\Levelcompiler"; Filename: "{app}\Compiler.exe"; Tasks: compiler |
Name: "{group}\Ordner\Levelordner"; Filename: "{app}\Levels\" |
Name: "{group}\Ordner\Spielstände"; Filename: "{app}\Spielstände\" |
Name: "{group}\Ordner\Compiler Eingabeordner"; Filename: "{app}\Eingabe\"; Tasks: compiler |
Name: "{group}\Ordner\Compiler Ausgabeordner"; Filename: "{app}\Ausgabe\"; Tasks: compiler |
Name: "{userdesktop}\SpaceMission"; Filename: "{app}\SpaceMission.exe"; MinVersion: 4,4; Tasks: desktopicon |
Name: "{group}\SpaceMission deinstallieren"; Filename: "{uninstallexe}" |
Name: "{group}\SpaceMission Level Editor"; Filename: "{app}\LevEdit.exe" |
Name: "{autodesktop}\SpaceMission"; Filename: "{app}\SpaceMission.exe"; MinVersion: 4,4; Tasks: desktopicon |
Name: "{autodesktop}\SpaceMission Level Editor"; Filename: "{app}\LevEdit.exe"; MinVersion: 4,4; Tasks: desktopicon |
[Run] |
Filename: "{app}\SpaceMission.exe"; Description: "SpaceMission starten"; Flags: nowait postinstall skipifsilent |
/_InnoSetup |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/GamMain.pas |
---|
0,0 → 1,2673 |
unit GamMain; |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, DXInput, DXSounds, |
ShellAPI, DirectX{$IF CompilerVersion >= 23.0}, |
System.UITypes{$IFEND}, ComLevelReader, DirectMusic, Global; |
type |
TGameScene = ( |
gsNone, |
gsTitle, |
gsMain, |
gsGameOver, |
gsNewLevel, |
gsWin |
); |
TGameInterval = ( |
giLeicht, |
giMittel, |
giSchwer, |
giMaster |
); |
TBackground = class(TBackgroundSprite) |
strict private |
FSpeed: Double; |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
public |
property Speed: Double read FSpeed write FSpeed; |
end; |
TBackgroundSpecial = class(TBackgroundSprite) |
strict private |
FSpeed: Double; |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
public |
property Speed: Double read FSpeed write FSpeed; |
end; |
TExplosion = class(TImageSprite) |
strict private |
FCounter: Integer; |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
public |
constructor Create(AParent: TSprite); override; |
end; |
TPlayerOrEnemyOrItemState = ( |
pesUnknown, |
pesNormal, |
pesExploding, // only boss, as preparation of pesDead |
pesDead, |
pesDeadVanished, |
pesFlyaway, // only player at mission end |
pesEntering, |
pesHovering // only some kind of enemies |
); |
TPlayerOrEnemyOrItem = class abstract (TImageSprite) |
strict protected |
FState: TPlayerOrEnemyOrItemState; |
public |
property State: TPlayerOrEnemyOrItemState read FState; |
end; |
TPlayerSprite = class(TPlayerOrEnemyOrItem) |
private |
FTamaCount: Integer; // accessed by TPlayerTamaSprite.Destroy |
strict private |
FCounter: Integer; |
FOldTamaTime: Integer; |
strict protected |
procedure DoCollision(Sprite: TSprite; var Done: Boolean); override; |
procedure DoMove(MoveCount: Integer); override; |
public |
constructor Create(AParent: TSprite); override; |
procedure FlyAway; |
end; |
TPlayerTamaSprite = class(TImageSprite) |
strict private |
FPlayerSprite: TPlayerSprite; |
strict protected |
property PlayerSprite: TPlayerSprite read FPlayerSprite write FPlayerSprite; |
procedure DoCollision(Sprite: TSprite; var Done: Boolean); override; |
procedure DoMove(MoveCount: Integer); override; |
public |
constructor Create(AParent: TSprite; APlayerSprite: TPlayerSprite); reintroduce; |
destructor Destroy; override; |
end; |
TEnemyClass = class of TEnemy; |
TEnemy = class abstract (TPlayerOrEnemyOrItem) |
strict protected |
FCounter: Integer; |
FLife: integer; |
procedure HitEnemy(ADead: Boolean); virtual; |
public |
property Life: integer read FLife; |
procedure Hit(AHitStrength: integer = 1); |
constructor Create(AParent: TSprite; ALifes: integer); reintroduce; virtual; |
destructor Destroy; override; |
end; |
TEnemyTama = class(TImageSprite) |
strict private |
FEnemySprite: TSprite; |
strict protected |
property EnemySprite: TSprite read FEnemySprite write FEnemySprite; |
procedure DoMove(MoveCount: Integer); override; |
public |
constructor Create(AParent: TSprite; AEnemySprite: TSprite); reintroduce; |
end; |
TEnemyMeteor = class(TEnemy) |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
procedure HitEnemy(ADead: Boolean); override; |
public |
constructor Create(AParent: TSprite; ALifes: integer); override; |
end; |
TEnemyUFO = class(TEnemy) |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
procedure HitEnemy(ADead: Boolean); override; |
public |
constructor Create(AParent: TSprite; ALifes: integer); override; |
end; |
TEnemyUFO2 = class(TEnemy) |
strict private |
FCounter: Integer; |
FTamaCount: Integer; |
FOldTamaTime: Integer; |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
procedure HitEnemy(ADead: Boolean); override; |
public |
constructor Create(AParent: TSprite; ALifes: integer); override; |
end; |
TEnemyAttacker = class(TEnemy) |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
procedure HitEnemy(ADead: Boolean); override; |
public |
constructor Create(AParent: TSprite; ALifes: integer); override; |
end; |
TEnemyAttacker2 = class(TEnemy) |
strict private |
FCounter: Integer; |
FTamaF: Integer; |
FTamaT: Integer; |
FPutTama: Boolean; |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
procedure HitEnemy(ADead: Boolean); override; |
public |
constructor Create(AParent: TSprite; ALifes: integer); override; |
end; |
TEnemyAttacker3 = class(TEnemy) |
strict private |
FCounter: Integer; |
FTamaCount: Integer; |
FOldTamaTime: Integer; |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
procedure HitEnemy(ADead: Boolean); override; |
public |
constructor Create(AParent: TSprite; ALifes: integer); override; |
end; |
TEnemyBoss = class(TEnemy) |
strict private |
FCounter: Integer; |
FTamaF: Integer; |
FTamaT: Integer; |
FPutTama: Boolean; |
waiter1, waiter2: integer; |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
procedure HitEnemy(ADead: Boolean); override; |
public |
constructor Create(AParent: TSprite; ALifes: integer); override; |
destructor Destroy; override; |
end; |
TItemClass = class of TItem; |
TItem = class abstract (TPlayerOrEnemyOrItem) |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
public |
procedure Collected; virtual; |
end; |
TItemMedikit = class(TItem) |
public |
procedure Collected; override; |
constructor Create(AParent: TSprite); override; |
end; |
TMainForm = class(TDXForm) |
MainMenu: TMainMenu; |
Spiel: TMenuItem; |
GameStart: TMenuItem; |
GamePause: TMenuItem; |
Beenden: TMenuItem; |
Einstellungen: TMenuItem; |
OptionMusic: TMenuItem; |
Hilfe: TMenuItem; |
OptionSound: TMenuItem; |
Leer3: TMenuItem; |
Spielstand: TMenuItem; |
Leer5: TMenuItem; |
Neustart: TMenuItem; |
Spielgeschwindigkeit: TMenuItem; |
Leicht: TMenuItem; |
Mittel: TMenuItem; |
Schwer: TMenuItem; |
Informationen: TMenuItem; |
Leer6: TMenuItem; |
Leer1: TMenuItem; |
Cheat: TMenuItem; |
CheckUpdates: TMenuItem; |
Master: TMenuItem; |
Hilfe1: TMenuItem; |
N1: TMenuItem; |
Wasgibtesneues1: TMenuItem; |
procedure DXDrawFinalize(Sender: TObject); |
procedure DXDrawInitialize(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
procedure DXTimerTimer(Sender: TObject; LagCount: Integer); |
procedure DXTimerActivate(Sender: TObject); |
procedure DXTimerDeactivate(Sender: TObject); |
procedure DXDrawInitializing(Sender: TObject); |
procedure GameStartClick(Sender: TObject); |
procedure GamePauseClick(Sender: TObject); |
procedure BeendenClick(Sender: TObject); |
procedure OptionSoundClick(Sender: TObject); |
procedure OptionMusicClick(Sender: TObject); |
procedure SpielstandClick(Sender: TObject); |
procedure NeustartClick(Sender: TObject); |
procedure LeichtClick(Sender: TObject); |
procedure MittelClick(Sender: TObject); |
procedure SchwerClick(Sender: TObject); |
procedure MasterClick(Sender: TObject); |
procedure FormShow(Sender: TObject); |
procedure InformationenClick(Sender: TObject); |
procedure CheatClick(Sender: TObject); |
procedure FormClose(Sender: TObject; var Action: TCloseAction); |
procedure FormDestroy(Sender: TObject); |
procedure CheckUpdatesClick(Sender: TObject); |
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); |
procedure HilfeTopicClick(Sender: TObject); |
private |
ProgrammGestartet: boolean; |
FSpeed: integer; |
FScene: TGameScene; |
FMusic: TSpaceMissionMusicTrack; |
FBlink: DWORD; |
FBlinkTime: DWORD; |
FFrame, FAngle, FCounter, FEnemyAdventPos: Integer; |
PlayerSprite: TPlayerSprite; |
TimerCS: TRTLCriticalSection; |
procedure StartScene(Scene: TGameScene); |
procedure EndScene; |
procedure BlinkStart; |
procedure BlinkUpdate; |
procedure StartSceneTitle; |
procedure SceneTitle; |
procedure EndSceneTitle; |
procedure StartSceneMain; |
procedure SceneMain; |
procedure EndSceneMain; |
procedure StartSceneGameOver; |
procedure SceneGameOver; |
procedure EndSceneGameOver; |
procedure StartSceneWin; |
procedure SceneWin; |
procedure EndSceneWin; |
procedure StartSceneNewLevel; |
procedure SceneNewLevel; |
procedure EndSceneNewLevel; |
procedure LevelNeuStarten; |
private |
{ Diverse temporäre Variablen } |
Crash2: integer; |
EnemyCounter: integer; |
Crash: boolean; |
crashsound: boolean; |
public |
FNextScene: TGameScene; |
FScore: Integer; |
FBoss: TEnemyBoss; |
FNotSave: boolean; |
FLife: integer; |
FLevel: integer; |
FGameMode: TGameMode; |
FLifeAtLevelStart: integer; |
FScoreAtLevelStart: integer; |
FLevelDataAlreadyLoaded: boolean; |
FRestEnemies: integer; |
FCheats: TCheatSet; |
{ VCL-Ersatz } |
dxdraw: TDxDraw; |
imagelist: TDxImageList; |
spriteengine: tdxspriteengine; |
dxsound: tdxsound; |
dxmusic: tdxmusic; |
wavelist: tdxwavelist; |
dxinput: tdxinput; |
dxtimer: tdxtimer; |
{ Level-Routinen } |
LevelData: TLevelData; |
procedure NewLevel(lev: integer); |
procedure ResetLevelData; |
{ Musik-Routinen } |
procedure MusicSwitchTrack(Name: TSpaceMissionMusicTrack); |
procedure PlayMusic(Name: TSpaceMissionMusicTrack); |
procedure StopMusic(Name: TSpaceMissionMusicTrack); |
procedure ResumeMusic(Name: TSpaceMissionMusicTrack); |
procedure PauseMusic(Name: TSpaceMissionMusicTrack); |
{ Sound-Routinen } |
procedure PlaySound(Sound: TSpaceMissionSound; Wait: Boolean); |
{ Grafik-Routinen } |
function GetSpriteGraphic(Sprite: TSpaceMissionGraphicSprite): TPictureCollectionItem; |
{ Initialisiations-Routinen } |
procedure DXInit; |
procedure SoundInit; |
procedure MusicInit; |
{ Einstellungs-Routinen } |
procedure LoadOptions; |
procedure WriteOptions; |
{ Farb-Routinen } |
function ComposeColor(Dest, Src: TRGBQuad; Percent: Integer): TRGBQuad; |
procedure PalleteAnim(Col: TRGBQuad; Time: Integer); |
end; |
var |
MainForm: TMainForm; |
implementation |
uses |
GamSplash, GamSpeicherung, ComInfo, GamCheat, MMSystem, Registry, |
ComHilfe; |
{$R *.DFM} |
const |
DXInputButton = [isButton1, isButton2, isButton3, |
isButton4, isButton5, isButton6, isButton7, isButton8, isButton9, isButton10, isButton11, |
isButton12, isButton13, isButton14, isButton15, isButton16, isButton17, isButton18, |
isButton19, isButton20, isButton21, isButton22, isButton23, isButton24, isButton25, |
isButton26, isButton27, isButton28, isButton29, isButton30, isButton31, isButton32]; |
resourcestring |
SWeiterMitLeertaste = 'Weiter mit Leertaste'; |
{ TBackground } |
procedure TBackground.DoMove(MoveCount: Integer); |
var |
ran: integer; |
bgs: TBackgroundSpecial; |
begin |
inherited DoMove(MoveCount); |
X := X - MoveCount*(60/1000)*FSpeed; |
ran := Random(1500); |
if ran = 150 then |
begin |
bgs := TBackgroundSpecial.Create(mainform.SpriteEngine.Engine); |
bgs.SetMapSize(1, 1); |
bgs.Image := MainForm.GetSpriteGraphic(smgBackgroundPlanet1); |
bgs.Width := Image.Width; |
bgs.Height := Image.Height; |
bgs.Y := random(mainform.dxdraw.height); |
bgs.X := mainform.dxdraw.width; |
ran := Random(2); |
if ran = 0 then |
begin |
bgs.Z := -20; |
bgs.Speed := 1.8; |
end |
else if ran = 1 then |
begin |
bgs.Z := -40; |
bgs.Speed := 0.8; |
end |
else if ran = 2 then |
begin |
bgs.Z := -60; |
bgs.Speed := 0.3; |
end; |
end |
else if ran = 500 then |
begin |
bgs := TBackgroundSpecial.Create(mainform.SpriteEngine.Engine); |
bgs.SetMapSize(1, 1); |
ran := Random(4); |
if ran = 0 then |
bgs.Image := MainForm.GetSpriteGraphic(smgBackgroundRed) |
else if ran = 1 then |
bgs.Image := MainForm.GetSpriteGraphic(smgBackgroundBlue) |
else if ran = 2 then |
bgs.Image := MainForm.GetSpriteGraphic(smgBackgroundYellow) |
else if ran = 3 then |
bgs.Image := MainForm.GetSpriteGraphic(smgHintergrundRot); |
bgs.Width := Image.Width; |
bgs.Height := Image.Height; |
bgs.Y := random(mainform.dxdraw.height); |
bgs.X := mainform.dxdraw.width; |
{ ran := Random(2); |
if ran = 0 then |
begin |
bgs.Z := -20; |
bgs.Speed := 1.8; |
end |
else if ran = 1 then |
begin |
bgs.Z := -40; |
bgs.Speed := 0.8; |
end |
else if ran = 2 then |
begin } |
bgs.Z := -60; |
bgs.Speed := 0.3; |
{ end; } |
end; |
end; |
{ TBackgroundSpecial } |
procedure TBackgroundSpecial.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
X := X - MoveCount*(60/1000)*FSpeed; |
if X < -Width then Dead; |
end; |
{ TExplosion } |
constructor TExplosion.Create(AParent: TSprite); |
begin |
inherited Create(AParent); |
mainform.PlaySound(smsExplosion, false); |
Image := MainForm.GetSpriteGraphic(smgExplosion); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimPos := Random(AnimCount); |
end; |
procedure TExplosion.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
inc(FCounter, MoveCount); |
if FCounter > 2999 then dead; |
end; |
{ TPlayerSprite } |
constructor TPlayerSprite.Create(AParent: TSprite); |
begin |
inherited Create(AParent); |
FState := pesEntering; |
Image := MainForm.GetSpriteGraphic(smgMachine); |
Width := Image.Width; |
Height := Image.Height; |
X := -70{20}; |
Y := mainform.dxdraw.surfaceHeight / 2 - (height / 2); |
Z := 2; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
end; |
procedure TPlayerSprite.DoCollision(Sprite: TSprite; var Done: Boolean); |
begin |
if (Sprite is TItem) then |
begin |
TItem(Sprite).Collected; |
end |
else if ((Sprite is TEnemy) or (Sprite is TEnemyTama)) and not (ctInfiniteLives in mainform.FCheats) then |
begin |
if not mainform.crash then |
begin |
dec(MainForm.FLife); |
mainform.Crash := true; |
if MainForm.Flife=0 then |
begin |
MainForm.PlaySound(smsExplosion, false); |
Collisioned := false; |
FCounter := 0; |
FState := pesDead; |
Done := false; |
Image := MainForm.GetSpriteGraphic(smgExplosion); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimPos := 0; |
end; |
end |
else |
begin |
if not mainform.crashsound then |
begin |
MainForm.PlaySound(smsHit, False); |
mainform.crashsound := true; |
end; |
end; |
end; |
end; |
procedure TPlayerSprite.DoMove(MoveCount: Integer); |
const |
WegduesKonstante = 1.75; |
begin |
inherited DoMove(MoveCount); |
if State = pesNormal then |
begin |
if isUp in MainForm.DXInput.States then Y := Y - (250/1000)*MoveCount; |
if isDown in MainForm.DXInput.States then Y := Y + (250/1000)*MoveCount; |
if isLeft in MainForm.DXInput.States then X := X - (250/1000)*MoveCount; |
if isRight in MainForm.DXInput.States then X := X + (250/1000)*MoveCount; |
if X<0 then X := 0; |
if X>mainform.dxdraw.surfacewidth-Width then X := mainform.dxdraw.surfacewidth-Width; |
if Y<0 then Y := 0; |
if Y>mainform.dxdraw.surfaceheight-Height then Y := mainform.dxdraw.surfaceheight-Height; |
if isButton1 in MainForm.DXInput.States then |
begin |
if (FTamaCount<8) and (FCounter-FOldTamaTime>=100) then |
begin |
Inc(FTamaCount); |
with TPlayerTamaSprite.Create(Engine, Self) do |
begin |
X := Self.X+Self.Width; |
Y := Self.Y+Self.Height div 2-Height div 2; |
Z := 10; |
end; |
FOldTamaTime := FCounter; |
end; |
end; |
Collision; |
end |
else if State = pesDead then |
begin |
if FCounter>200 then |
begin |
FCounter := 0; |
FState := pesDeadVanished; |
Visible := false; // Cannot use "Dead;" because we need to still be able to handle pesDeadVanished |
end; |
end |
else if State = pesDeadVanished then |
begin |
if FCounter>2000 then |
begin |
MainForm.LevelNeuStarten; |
(* |
MainForm.FNextScene := gsGameOver; |
MainForm.PlaySound(smsSceneMov, false); |
MainForm.PalleteAnim(RGBQuad(0, 0, 0), 300); |
Sleep(200); |
*) |
end; |
end |
else if State = pesFlyaway then |
begin |
X := X + MoveCount*(300/1000) * (X/MainForm.DXDraw.Width + WegduesKonstante); |
if X > MainForm.DXDraw.Width+Width then |
begin |
Dead; |
inc(mainform.FLevel); |
MainForm.FLevelDataAlreadyLoaded := false; // allow NewLevel() to work again |
MainForm.FNextScene := gsNewLevel; |
MainForm.PlaySound(smsSceneMov, false); |
MainForm.PalleteAnim(RGBQuad(0, 0, 0), 300); |
end; |
end |
else if State = pesEntering then |
begin |
X := X + MoveCount*(300/1000); |
if X > 19 then FState := pesNormal; |
end; |
inc(FCounter, MoveCount); |
end; |
procedure TPlayerSprite.FlyAway; |
begin |
FState := pesFlyaway; |
end; |
{ TPlayerTamaSprite } |
constructor TPlayerTamaSprite.Create(AParent: TSprite; APlayerSprite: TPlayerSprite); |
begin |
inherited Create(AParent); |
FPlayerSprite := APlayerSprite; |
Image := MainForm.GetSpriteGraphic(smgBounce); |
Z := 2; |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
MainForm.PlaySound(smsShoot, False); |
end; |
destructor TPlayerTamaSprite.Destroy; |
begin |
inherited Destroy; |
Dec(FPlayerSprite.FTamaCount); |
end; |
procedure TPlayerTamaSprite.DoCollision(Sprite: TSprite; var Done: Boolean); |
begin |
if (Sprite is TEnemy) and not (Sprite is TEnemyTama) then |
begin |
TEnemy(Sprite).Hit; |
Dead; |
end; |
Done := False; |
end; |
procedure TPlayerTamaSprite.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
X := X+(800/1000)*MoveCount; |
if X>=mainform.dxdraw.surfacewidth then Dead; |
Collision; |
end; |
{ TEnemy } |
constructor TEnemy.Create(AParent: TSprite; ALifes: integer); |
begin |
inherited Create(AParent); |
FLife := ALifes; |
inc(mainform.EnemyCounter); |
end; |
destructor TEnemy.Destroy; |
begin |
inherited Destroy; |
dec(mainform.EnemyCounter); |
end; |
procedure TEnemy.Hit(AHitStrength: integer = 1); |
begin |
Dec(FLife, AHitStrength); |
if FLife<=0 then |
begin |
Collisioned := False; |
HitEnemy(True); |
end |
else |
HitEnemy(False); |
end; |
procedure TEnemy.HitEnemy(ADead: Boolean); |
begin |
if ADead then |
MainForm.PlaySound(smsExplosion, False) |
else |
MainForm.PlaySound(smsHit, False); |
end; |
{ TEnemyTama } |
constructor TEnemyTama.Create(AParent: TSprite; AEnemySprite: TSprite); |
begin |
inherited Create(AParent); |
FEnemySprite := AEnemySprite; |
Image := MainForm.GetSpriteGraphic(smgBounce2); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
MainForm.PlaySound(smsShoot, False); |
end; |
procedure TEnemyTama.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
X := X - MoveCount*(600/1000); |
if X < -Width then Dead; |
end; |
{ TEnemyMeteor } |
constructor TEnemyMeteor.Create(AParent: TSprite; ALifes: integer); |
begin |
inherited Create(AParent, ALifes); |
FState := pesNormal; |
Image := MainForm.GetSpriteGraphic(smgEnemyMeteor); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
PixelCheck := True; |
end; |
procedure TEnemyMeteor.HitEnemy(ADead: Boolean); |
begin |
inherited HitEnemy(False); |
if ADead then Collisioned := True; |
end; |
procedure TEnemyMeteor.DoMove(MoveCount: Integer); |
begin |
X := X - MoveCount*(250/1000); |
if X < -Width then Dead; |
end; |
{ TEnemyUFO } |
constructor TEnemyUFO.Create(AParent: TSprite; ALifes: integer); |
begin |
inherited Create(AParent, ALifes); |
FState := pesNormal; |
Image := MainForm.GetSpriteGraphic(smgEnemyDisk); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
end; |
procedure TEnemyUFO.HitEnemy(ADead: Boolean); |
begin |
inherited HitEnemy(ADead); |
if ADead then |
begin |
FState := pesDead; |
FCounter := 0; |
Inc(MainForm.FScore, 1000); |
Image := MainForm.GetSpriteGraphic(smgExplosion); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimPos := 0; |
end |
else |
begin |
Inc(MainForm.FScore, 100); |
end; |
end; |
procedure TEnemyUFO.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
if State = pesNormal then |
begin |
X := X - MoveCount*(300/1000); |
Y := Y + Cos256(FCounter div 15)*2; |
if X < -Width then Dead; |
end |
else if State = pesDead then |
begin |
X := X - MoveCount*(300/1000); |
if FCounter>200 then |
begin |
FState := pesDeadVanished; |
Dead; |
end; |
end; |
inc(FCounter, MoveCount); |
end; |
{ TEnemyUFO2 } |
constructor TEnemyUFO2.Create(AParent: TSprite; ALifes: integer); |
begin |
inherited Create(AParent, ALifes); |
FState := pesNormal; |
Image := MainForm.GetSpriteGraphic(smgEnemyDisk2); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
end; |
procedure TEnemyUFO2.HitEnemy(ADead: Boolean); |
begin |
inherited HitEnemy(ADead); |
if ADead then |
begin |
FState := pesDead; |
FCounter := 0; |
Inc(MainForm.FScore, 1000); |
Image := MainForm.GetSpriteGraphic(smgExplosion); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimPos := 0; |
end |
else |
begin |
Inc(MainForm.FScore, 100); |
end; |
end; |
procedure TEnemyUFO2.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
if State = pesNormal then |
begin |
X := X - MoveCount*(300/1000); |
Y := Y + Cos256(FCounter div 15)*2; |
if X < -Width then Dead; |
if FCounter-FOldTamaTime>=100 then |
begin |
Inc(FTamaCount); |
with TEnemyTama.Create(Engine, Self) do |
begin |
X := Self.X; |
Y := Self.Y+Self.Height div 2-Height div 2; |
Z := 10; |
end; |
FOldTamaTime := FCounter; |
end; |
end |
else if State = pesDead then |
begin |
X := X - MoveCount*(300/1000); |
if FCounter>200 then |
begin |
FState := pesDeadVanished; |
Dead; |
end; |
end; |
inc(FCounter, MoveCount); |
end; |
{ TEnemyAttacker } |
constructor TEnemyAttacker.Create(AParent: TSprite; ALifes: integer); |
begin |
inherited Create(AParent, ALifes); |
FState := pesNormal; |
Image := MainForm.GetSpriteGraphic(smgEnemyAttacker); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
PixelCheck := True; |
end; |
procedure TEnemyAttacker.HitEnemy(ADead: Boolean); |
begin |
inherited HitEnemy(ADead); |
if ADead then |
begin |
FState := pesDead; |
FCounter := 0; |
Inc(MainForm.FScore, 1000); |
Image := MainForm.GetSpriteGraphic(smgExplosion); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimPos := 0; |
end |
else |
begin |
Inc(MainForm.FScore, 100); |
end; |
end; |
procedure TEnemyAttacker.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
if State = pesNormal then |
begin |
X := X - MoveCount*(300/1000)-FCounter div 128; |
if X < -Width then Dead; |
end |
else if State = pesDead then |
begin |
X := X - MoveCount*(300/1000); |
if FCounter>200 then |
begin |
FState := pesDeadVanished; |
Dead; |
end; |
end; |
inc(FCounter, MoveCount); |
end; |
{ TEnemyAttacker2 } |
constructor TEnemyAttacker2.Create(AParent: TSprite; ALifes: integer); |
begin |
inherited Create(AParent, ALifes); |
FState := pesEntering; |
Image := MainForm.GetSpriteGraphic(smgEnemyAttacker2); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
PixelCheck := True; |
end; |
procedure TEnemyAttacker2.HitEnemy(ADead: Boolean); |
begin |
inherited HitEnemy(ADead); |
if ADead then |
begin |
FState := pesDead; |
FCounter := 0; |
Inc(MainForm.FScore, 5000); |
Image := MainForm.GetSpriteGraphic(smgExplosion); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimPos := 0; |
end |
else |
begin |
Inc(MainForm.FScore, 100); |
end; |
end; |
procedure TEnemyAttacker2.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
if State = pesEntering then |
begin |
if X>((mainform.dxdraw.width/4) + (mainform.dxdraw.width/2) - (width/2)){450} then |
X := X - MoveCount*(300/1000) |
else |
begin |
Collisioned := True; |
FState := pesHovering; |
FPutTama := True; |
end; |
Y := Y + Cos256(FCounter div 15)*5; |
end |
else if State = pesHovering then |
begin |
Y := Y + Cos256(FCounter div 15)*5; |
if FPutTama then |
begin |
if FTamaT>100 then |
begin |
with TEnemyTama.Create(Engine, Self) do |
begin |
Z := 1; |
X := Self.X-Width; |
Y := Self.Y+Self.Height div 2-Height div 2; |
end; |
Inc(FTamaF); |
if FTamaF>Random(30) then FPutTama := False; |
FTamaT := 0; |
end; |
FTamaT := FTamaT + MoveCount; |
end |
else |
begin |
FTamaT := FTamaT + MoveCount; |
if FTamaT>2000+Random(500) then |
begin |
FPutTama := True; |
FTamaF := 0; |
FTamaT := 0; |
end; |
end; |
end |
else if State = pesDead then |
begin |
if FCounter>200 then |
begin |
FState := pesDeadVanished; |
Dead; |
end; |
end; |
inc(FCounter, MoveCount); |
end; |
{ TEnemyAttacker3 } |
constructor TEnemyAttacker3.Create(AParent: TSprite; ALifes: integer); |
begin |
inherited Create(AParent, ALifes); |
FState := pesNormal; |
Image := MainForm.GetSpriteGraphic(smgEnemyAttacker3); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
PixelCheck := True; |
end; |
procedure TEnemyAttacker3.HitEnemy(ADead: Boolean); |
begin |
inherited HitEnemy(ADead); |
if ADead then |
begin |
FState := pesDead; |
FCounter := 0; |
Inc(MainForm.FScore, 5000); |
Image := MainForm.GetSpriteGraphic(smgExplosion); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := False; |
AnimSpeed := DEFAULT_ANIMSPEED; |
AnimPos := 0; |
end |
else |
begin |
Inc(MainForm.FScore, 100); |
end; |
end; |
procedure TEnemyAttacker3.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
if State = pesNormal then |
begin |
X := X - (250/1000)*MoveCount; |
if X < -Width then Dead; |
if FCounter-FOldTamaTime>=100 then |
begin |
Inc(FTamaCount); |
with TEnemyTama.Create(Engine, Self) do |
begin |
X := Self.X; |
Y := Self.Y+Self.Height div 2-Height div 2; |
Z := 10; |
end; |
FOldTamaTime := FCounter; |
end; |
end |
else if State = pesDead then |
begin |
if FCounter>200 then |
begin |
FState := pesDeadVanished; |
Dead; |
end; |
end; |
inc(FCounter, MoveCount); |
end; |
{ TEnemyBoss } |
constructor TEnemyBoss.Create(AParent: TSprite; ALifes: integer); |
begin |
inherited Create(AParent, ALifes); |
FState := pesEntering; |
Image := MainForm.GetSpriteGraphic(smgEnemyBoss); |
Width := Image.Width; |
Height := Image.Height; |
MainForm.MusicSwitchTrack(smmBoss); |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
PixelCheck := True; |
Collisioned := False; |
MainForm.FBoss := Self; |
waiter1 := 0; |
waiter2 := 0; |
end; |
procedure TEnemyBoss.HitEnemy(ADead: Boolean); |
begin |
inherited HitEnemy(ADead); |
if ADead then |
begin |
FState := pesExploding; // not pesDead for the boss! |
FCounter := 0; |
Inc(MainForm.FScore, 100000); |
end |
else |
begin |
Inc(MainForm.FScore, 100); |
end; |
end; |
destructor TEnemyBoss.Destroy; |
begin |
MainForm.FBoss := nil; |
inherited; |
end; |
procedure TEnemyBoss.DoMove(MoveCount: Integer); |
begin |
inherited DoMove(MoveCount); |
if State = pesEntering then |
begin |
if X>((mainform.dxdraw.width/4) + (mainform.dxdraw.width/2) - (width/4)){450} then |
X := X - MoveCount*(300/1000) |
else |
begin |
Collisioned := True; |
FState := pesHovering; |
FPutTama := True; |
end; |
Y := Y + Cos256(FCounter div 15)*5; |
end |
else if State = pesHovering then |
begin |
Y := Y + Cos256(FCounter div 15)*5; |
if FPutTama then |
begin |
if FTamaT>100 then |
begin |
with TEnemyTama.Create(Engine, Self) do |
begin |
Z := 1; |
X := Self.X-Width; |
Y := Self.Y+Self.Height div 2-Height div 2; |
end; |
Inc(FTamaF); |
if FTamaF>Random(30) then FPutTama := False; |
FTamaT := 0; |
end; |
FTamaT := FTamaT + MoveCount; |
end |
else |
begin |
FTamaT := FTamaT + MoveCount; |
if FTamaT>2000+Random(500) then |
begin |
FPutTama := True; |
FTamaF := 0; |
FTamaT := 0; |
end; |
end; |
end |
else if State = pesExploding then |
begin |
inc(waiter1); |
if waiter1 = 3 then |
begin |
waiter1 := 0; |
inc(waiter2); |
if waiter2 <= 20 then |
begin |
with TExplosion.Create(Engine) do |
begin |
Z := 10; |
X := Self.X+Random(Self.Width)-16; |
Y := Self.Y+Random(Self.Height)-16; |
end; |
end |
else |
begin |
Inc(MainForm.FScore, 10000); |
FState := pesDead; |
end; |
end; |
end |
else if State = pesDead then |
begin |
if FCounter>4000 then |
begin |
FState := pesDeadVanished; |
Dead; |
end; |
end; |
inc(FCounter, MoveCount); |
end; |
{ TItem } |
procedure TItem.Collected; |
begin |
MainForm.PlaySound(smsItemCollected, false); |
Dead; |
end; |
procedure TItem.DoMove(MoveCount: Integer); |
begin |
X := X - MoveCount*(250/1000); |
if X < -Width then Dead; |
end; |
{ TItemMedikit } |
procedure TItemMedikit.Collected; |
begin |
Inc(MainForm.FLife); |
inherited; |
end; |
constructor TItemMedikit.Create(AParent: TSprite); |
begin |
inherited Create(AParent); |
FState := pesNormal; |
Image := MainForm.GetSpriteGraphic(smgItemMedikit); |
Width := Image.Width; |
Height := Image.Height; |
AnimCount := Image.PatternCount; |
AnimLooped := True; |
AnimSpeed := DEFAULT_ANIMSPEED; |
PixelCheck := True; |
end; |
{ TMainForm } |
procedure TMainForm.FormCreate(Sender: TObject); |
resourcestring |
SAppTitle = 'SpaceMission %s'; |
begin |
Randomize; |
LevelData := TLevelData.Create; |
{ Beginne VCL-Ersatz } |
dxtimer := tdxtimer.Create(self); |
dxtimer.Interval := 33; |
dxtimer.OnActivate := DXTimerActivate; |
dxtimer.OnDeactivate := DXTimerDeactivate; |
dxtimer.OnTimer := DXTimerTimer; |
dxtimer.ActiveOnly := false; |
dxtimer.Enabled := false; |
dxdraw := tdxdraw.Create(self); |
dxdraw.Parent := self; |
dxdraw.Align := alClient; |
dxdraw.Left := 0; |
dxdraw.Top := 0; |
dxdraw.Width := ClientWidth; |
dxdraw.Height := ClientHeight; |
dxdraw.AutoInitialize := False; |
dxdraw.AutoSize := False; |
dxdraw.Color := clBlack; |
(* |
dxdraw.Display.BitCount := 24; |
dxdraw.Display.FixedBitCount := False; |
dxdraw.Display.FixedRatio := False; |
dxdraw.Display.FixedSize := False; |
dxdraw.Display.Height := 600; |
dxdraw.Display.Width := 800; |
*) |
dxdraw.Options := [doAllowReboot, doWaitVBlank, doAllowPalette256, doCenter, {doRetainedMode,} doHardware, doSelectDriver]; |
dxdraw.TabOrder := 0; |
dxdraw.Visible := true; |
dxdraw.OnFinalize := DXDrawFinalize; |
dxdraw.OnInitialize := DXDrawInitialize; |
dxdraw.OnInitializing := DXDrawInitializing; |
dxsound := tdxsound.Create(self); |
dxsound.AutoInitialize := false; |
dxmusic := TDXMusic.Create(self); |
dxmusic.DXSound := dxsound; |
dxinput := tdxinput.Create(self); |
dxinput.Joystick.ForceFeedback := true; |
dxinput.Keyboard.ForceFeedback := true; |
wavelist := tdxwavelist.Create(self); |
wavelist.DXSound := dxsound; |
imagelist := tdximagelist.create(self); |
imagelist.DXDraw := dxdraw; |
spriteengine := tdxspriteengine.create(self); |
spriteengine.DXDraw := dxdraw; |
InitializeCriticalSection(TimerCS); |
{ Ende VCL-Ersatz } |
Application.Title := Format(SAppTitle, [ProgramVersion]); |
LoadOptions; |
DXInit; |
SoundInit; |
MusicInit; |
GameStartClick(GameStart); |
end; |
procedure TMainForm.GameStartClick(Sender: TObject); |
begin |
StartScene(gsTitle); |
end; |
function TMainForm.GetSpriteGraphic( |
Sprite: TSpaceMissionGraphicSprite): TPictureCollectionItem; |
begin |
if (Sprite<>smgNone) and (imagelist.Items.Count >= Ord(Sprite)) then |
result := imagelist.Items.Items[Ord(Sprite)-1] |
else |
result := nil; |
end; |
procedure TMainForm.HilfeTopicClick(Sender: TObject); |
// Please keep this code in-sync with LevMain.pas |
var |
bakTimerEnabled: boolean; |
begin |
bakTimerEnabled := dxtimer.Enabled; |
try |
dxtimer.Enabled := false; |
HilfeForm.Caption := TMenuItem(Sender).Caption; |
HilfeForm.Caption := StringReplace(HilfeForm.Caption, '&&', #1, [rfReplaceAll]); |
HilfeForm.Caption := StringReplace(HilfeForm.Caption, '&', '', [rfReplaceAll]); |
HilfeForm.Caption := StringReplace(HilfeForm.Caption, #1, '&', [rfReplaceAll]); |
HilfeForm.ShowMarkDownHelp(OwnDirectory+TMenuItem(Sender).Hint); |
HilfeForm.ShowModal; |
finally |
dxtimer.Enabled := bakTimerEnabled; |
end; |
end; |
procedure TMainForm.GamePauseClick(Sender: TObject); |
begin |
GamePause.Checked := not GamePause.Checked; |
DXTimer.Enabled := not GamePause.Checked; |
if GamePause.Checked then |
begin |
if Assigned(DXTimer.OnDeactivate) then |
DXTimer.OnDeactivate(DXTimer); |
end |
else |
begin |
if Assigned(DXTimer.OnActivate) then |
DXTimer.OnActivate(DXTimer); |
end; |
end; |
procedure TMainForm.DXInit; |
begin |
try |
Imagelist.Items.LoadFromFile(OwnDirectory+DxgFile); |
ImageList.Items.MakeColorTable; |
DXDraw.ColorTable := ImageList.Items.ColorTable; |
DXDraw.DefColorTable := ImageList.Items.ColorTable; |
DXDraw.UpdatePalette; |
DXDraw.Finalize; |
DXDraw.Options := DXDraw.Options - [doFullScreen]; |
DXDraw.autosize := true; |
DXDraw.Initialize; |
except |
//Imagelist.Items.clear; |
//application.terminate; |
end; |
end; |
procedure TMainForm.CheckUpdatesClick(Sender: TObject); |
begin |
CheckForUpdates('spacemission', ProgramVersion); // do not localize |
end; |
procedure TMainForm.BeendenClick(Sender: TObject); |
begin |
close; |
end; |
procedure TMainForm.OptionSoundClick(Sender: TObject); |
begin |
OptionSound.Checked := not OptionSound.Checked; |
SoundInit; |
WriteOptions; |
end; |
procedure TMainForm.SoundInit; |
begin |
if (WaveOutGetNumDevs < 1) or not FileExists(OwnDirectory+DxwFile) then |
begin |
OptionSound.Checked := false; |
OptionSound.Enabled := False; |
exit; |
end; |
if OptionSound.Checked then |
begin |
if not DXSound.Initialized then |
begin |
try |
DXSound.Initialize; |
WaveList.Items.LoadFromFile(OwnDirectory+DxwFile); |
except |
OptionSound.enabled := False; |
WaveList.items.clear; |
end; |
end; |
end |
else DXSound.Finalize; |
end; |
procedure TMainForm.MusicInit; |
var |
i: integer; |
begin |
if (WaveOutGetNumDevs < 1) or not FileExists(OwnDirectory+DxmFile) then |
begin |
optionmusic.Checked := false; |
optionmusic.Enabled := False; |
exit; |
end; |
try |
dxmusic.Midis.LoadFromFile(OwnDirectory+DxmFile); |
for i := 0 to dxmusic.Midis.Count-1 do |
begin |
if not dxmusic.Midis.Items[i].IsInitialized then |
begin |
dxmusic.Midis.Items[i].Init; // TODO: for some reason, AddPort is very slow! |
dxmusic.Midis.Items[i].Load; |
end; |
end; |
except |
optionmusic.enabled := false; |
end; |
end; |
procedure TMainForm.DXDrawInitializing(Sender: TObject); |
begin |
if doFullScreen in DXDraw.Options then |
begin |
BorderStyle := bsNone; |
DXDraw.Cursor := crNone; |
end |
else |
begin |
BorderStyle := bsSingle; |
DXDraw.Cursor := crDefault; |
end; |
end; |
procedure TMainForm.DXDrawInitialize(Sender: TObject); |
begin |
if Assigned(DXTimer) then DXTimer.Enabled := True; |
end; |
procedure TMainForm.DXDrawFinalize(Sender: TObject); |
begin |
if Assigned(DXTimer) then DXTimer.Enabled := False; |
end; |
procedure TMainForm.DXTimerActivate(Sender: TObject); |
begin |
if TDxTimer(Sender).Tag > 0 then |
TDxTimer(Sender).Tag := TDxTimer(Sender).Tag - 1; // es können mehrere activate/deactivate vorkommen, wegen dem Pause-Button |
if TDxTimer(Sender).Tag > 0 then |
exit; |
Caption := Application.Title; |
if not ProgrammGestartet then |
begin |
Programmgestartet := true; |
exit; |
end; |
ResumeMusic(FMusic); |
end; |
procedure TMainForm.DXTimerDeactivate(Sender: TObject); |
resourcestring |
SPauseTitle = '%s [Pause]'; |
begin |
TDxTimer(Sender).Tag := TDxTimer(Sender).Tag + 1; |
Caption := Format(SPauseTitle, [Application.Title]); |
PauseMusic(FMusic); |
end; |
procedure TMainForm.DXTimerTimer(Sender: TObject; LagCount: Integer); |
begin |
EnterCriticalSection(TimerCS); |
try |
if crash then |
begin |
inc(Crash2); |
if crash2 = 30 then |
begin |
Crash2 := 0; |
crash := false; |
crashsound := false; |
end; |
end; |
if not DXDraw.CanDraw then exit; |
DXInput.Update; |
case FScene of |
gsTitle : SceneTitle; |
gsMain : SceneMain; |
gsGameOver: SceneGameOver; |
gsWin : SceneWin; |
gsNewLevel: SceneNewLevel; |
end; |
if FNextScene<>gsNone then |
begin |
StartScene(FNextScene); |
FNextScene := gsNone; |
end; |
DXDraw.Flip; |
finally |
LeaveCriticalSection(TimerCS); |
end; |
end; |
procedure TMainForm.BlinkStart; |
begin |
FBlink := 0; |
FBlinkTime := GetTickCount; |
end; |
procedure TMainForm.WriteOptions; |
var |
Reg: TRegistry; |
begin |
Reg := TRegistry.Create; |
try |
Reg.RootKey := HKEY_CURRENT_USER; |
if Reg.OpenKey(RegistrySettingsKey, true) then |
begin |
Reg.WriteBool(MusicSettingKey, OptionMusic.checked); |
Reg.WriteBool(SoundSettingKey, OptionSound.checked); |
Reg.WriteInteger(SpeedSettingKey, Ord(FSpeed)); |
Reg.DeleteValue('Speed'); // deprecated. Replaced by GameSpeed |
Reg.CloseKey; |
end; |
finally |
FreeAndNil(Reg); |
end; |
end; |
procedure TMainForm.LoadOptions; |
var |
Reg: TRegistry; |
begin |
Reg := TRegistry.Create; |
try |
Reg.RootKey := HKEY_CURRENT_USER; |
if Reg.OpenKey(RegistrySettingsKey, true) then |
begin |
if Reg.ValueExists(MusicSettingKey) then |
optionmusic.checked := Reg.ReadBool(MusicSettingKey) |
else |
optionmusic.checked := true; // default |
if Reg.ValueExists(SoundSettingKey) then |
optionsound.checked := Reg.ReadBool(SoundSettingKey) |
else |
optionsound.checked := true; // default |
if Reg.ValueExists(SpeedSettingKey) then |
FSpeed := Reg.ReadInteger(SpeedSettingKey) |
else |
FSpeed := SpeedMedium; // default |
Leicht.Checked := FSpeed = SpeedEasy; |
Mittel.Checked := FSpeed = SpeedMedium; |
Schwer.Checked := FSpeed = SpeedHard; |
Master.Checked := FSpeed = SpeedMaster; |
Reg.CloseKey; |
end; |
finally |
FreeAndNil(Reg); |
end; |
WriteOptions; |
end; |
procedure TMainForm.BlinkUpdate; |
begin |
if GetTickCount<>FBlinkTime then |
begin |
FBlink := FBlink + (GetTickCount-FBlinkTime); |
FBlinkTime := GetTickCount; |
end; |
end; |
procedure TMainForm.PlaySound(Sound: TSpaceMissionSound; Wait: Boolean); |
begin |
if (Sound<>smsNone) and (OptionSound.Checked) and (OptionSound.Enabled) and (WaveList.Items.Count >= Ord(Sound)) then |
WaveList.Items.Items[Ord(Sound)-1].Play(Wait); |
end; |
procedure TMainForm.MusicSwitchTrack(Name: TSpaceMissionMusicTrack); |
begin |
if (not mainform.active) and (mainform.visible) then //1st Programmstart |
exit; |
if (OptionMusic.checked) and (OptionMusic.enabled) then |
begin |
StopMusic(FMusic); |
PlayMusic(Name); |
end; |
FMusic := Name; |
end; |
function TMainForm.ComposeColor(Dest, Src: TRGBQuad; Percent: Integer): TRGBQuad; |
begin |
with Result do |
begin |
rgbRed := Src.rgbRed+((Dest.rgbRed-Src.rgbRed)*Percent div 256); |
rgbGreen := Src.rgbGreen+((Dest.rgbGreen-Src.rgbGreen)*Percent div 256); |
rgbBlue := Src.rgbBlue+((Dest.rgbBlue-Src.rgbBlue)*Percent div 256); |
rgbReserved := 0; |
end; |
end; |
procedure TMainForm.PalleteAnim(Col: TRGBQuad; Time: Integer); |
var |
i: Integer; |
t, t2: DWORD; |
ChangePalette: Boolean; |
c: Integer; |
begin |
if DXDraw.Initialized then |
begin |
c := DXDraw.Surface.ColorMatch(RGB(Col.rgbRed, Col.rgbGreen, Col.rgbBlue)); |
ChangePalette := False; |
if DXDraw.CanPaletteAnimation then |
begin |
t := GetTickCount; |
while Abs(GetTickCount-t)<Time do |
begin |
t2 := Trunc(Abs(GetTickCount-t)/Time*255); |
for i := 0 to 255 do |
DXDraw.ColorTable[i] := ComposeColor(Col, DXDraw.DefColorTable[i], t2); |
DXDraw.UpdatePalette; |
ChangePalette := True; |
end; |
end |
else |
begin |
Sleep(Time); |
end; |
for i := 0 to 4 do |
begin |
DXDraw.Surface.Fill(c); |
DXDraw.Flip; |
end; |
if ChangePalette then |
begin |
DXDraw.ColorTable := DXDraw.DefColorTable; |
DXDraw.UpdatePalette; |
end; |
DXDraw.Surface.Fill(c); |
DXDraw.Flip; |
end; |
end; |
procedure TMainForm.StartScene(Scene: TGameScene); |
begin |
EndScene; |
DXInput.States := DXInput.States - DXInputButton; |
FScene := Scene; |
BlinkStart; |
case FScene of |
gsTitle : StartSceneTitle; |
gsMain : StartSceneMain; |
gsGameOver: StartSceneGameOver; |
gsWin : StartSceneWin; |
gsNewLevel: StartSceneNewLevel; |
end; |
end; |
procedure TMainForm.StartSceneTitle; |
begin |
sleep(500); |
FCheats := []; |
FLife := StartLives; |
FLevel := 0; |
FScore := 0; |
FLevelDataAlreadyLoaded := false; // do allow NewLevel() to work again |
FNotSave := true; |
Cheat.enabled := false; |
Neustart.enabled := false; |
GamePause.enabled := false; |
GameStart.enabled := false; |
Spielgeschwindigkeit.enabled := false; |
mainform.Visible := true; |
MusicSwitchTrack(smmTitle); |
end; |
procedure TMainForm.StartSceneMain; |
{var |
i, j: Integer;} |
begin |
sleep(500); |
FCounter := 0; |
if not FLevelDataAlreadyLoaded then NewLevel(FLevel); |
FRestEnemies := Length(LevelData.EnemyAdventTable); |
FLifeAtLevelStart := FLife; // Das ist wichtig, wenn man neu starten möchte |
FScoreAtLevelStart := FScore; // |
MusicSwitchTrack(smmGame); |
FEnemyAdventPos := 0; |
FFrame := -4; |
PlayerSprite := TPlayerSprite.Create(SpriteEngine.Engine); |
with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(1, 1); |
Image := MainForm.GetSpriteGraphic(smgStar3); |
Z := -13; |
Y := 40; |
Speed := 1 / 2; |
Tile := True; |
end; |
with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(1, 1); |
Image := MainForm.GetSpriteGraphic(smgStar2); |
Z := -12; |
Y := 30; |
Speed := 1; |
Tile := True; |
end; |
with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(1, 1); |
Image := MainForm.GetSpriteGraphic(smgStar1); |
Z := -11; |
Y := 10; |
Speed := 2; |
Tile := True; |
end; |
{with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(200, 10); |
Y := 10; |
Z := -13; |
Speed := 1 / 2; |
Tile := True; |
for i := 0 to MapHeight-1 do |
begin |
for j := 0 to MapWidth-1 do |
begin |
Chips[j, i] := Image.PatternCount-Random(Image.PatternCount div 8); |
if Random(100)<95 then Chips[j, i] := -1; |
end; |
end; |
end; |
with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(200, 10); |
Y := 30; |
Z := -12; |
Speed := 1; |
Tile := True; |
for i := 0 to MapHeight-1 do |
begin |
for j := 0 to MapWidth-1 do |
begin |
Chips[j, i] := Image.PatternCount-Random(Image.PatternCount div 4); |
if Random(100)<95 then Chips[j, i] := -1; |
end; |
end; |
end; |
with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(200, 10); |
Y := 40; |
Z := -11; |
Speed := 2; |
Tile := True; |
for i := 0 to MapHeight-1 do |
begin |
for j := 0 to MapWidth-1 do |
begin |
Chips[j, i] := Image.PatternCount-Random(Image.PatternCount div 2); |
if Random(100)<95 then Chips[j, i] := -1; |
end; |
end; |
end;} |
FNotSave := false; |
Cheat.enabled := true; |
Neustart.enabled := true; |
GamePause.enabled := true; |
GameStart.enabled := true; |
Spielgeschwindigkeit.enabled := true; |
end; |
procedure TMainForm.StartSceneGameOver; |
begin |
sleep(500); |
FNotSave := true; // Wenn man speichert, würde man LevelAdventTable vom vorherigen Level machen, das wär müll! |
Cheat.enabled := false; |
Spielgeschwindigkeit.enabled := false; |
Neustart.enabled := false; |
GamePause.enabled := false; |
MusicSwitchTrack(smmScene); |
end; |
procedure TMainForm.StartSceneWin; |
begin |
sleep(500); |
FNotSave := true; // Wenn man speichert, würde man LevelAdventTable vom vorherigen Level machen, das wär müll! |
Cheat.enabled := false; |
Spielgeschwindigkeit.enabled := false; |
Neustart.enabled := false; |
GamePause.enabled := false; |
MusicSwitchTrack(smmScene); |
end; |
procedure TMainForm.EndScene; |
begin |
case FScene of |
gsTitle : EndSceneTitle; |
gsMain : EndSceneMain; |
gsGameOver: EndSceneGameOver; |
gsWin : EndSceneWin; |
gsNewLevel: EndSceneNewLevel; |
end; |
end; |
procedure TMainForm.EndSceneTitle; |
begin |
{ Ende Title } |
end; |
procedure TMainForm.EndSceneMain; |
begin |
SpriteEngine.Engine.Clear; |
end; |
procedure TMainForm.EndSceneGameOver; |
begin |
{ Ende GameOver } |
end; |
procedure TMainForm.EndSceneWin; |
begin |
{ Ende Win } |
end; |
procedure TMainForm.ResetLevelData; |
begin |
LevelData.Clear; |
FRestEnemies := 0; |
end; |
procedure TMainForm.NewLevel(lev: integer); |
resourcestring |
SLevelInvalid = 'Die Datei für Level %d ist ungültig. Level wird übersprungen!'; |
var |
act: integer; |
Enemies: array[1..32] of TEnemyType; |
numEnemies: integer; |
e: TEnemyAdvent; |
bossPosition: integer; |
levFile: TLevelFile; |
begin |
ResetLevelData; |
if FGameMode = gmRandom then |
begin |
{$REGION 'Random game'} |
Enemies[1] := etEnemyAttacker; // ab Lev 1 |
Enemies[2] := etEnemyMeteor; // ab Lev 1 |
Enemies[3] := etEnemyUFO; // ab Lev 1 |
Enemies[4] := etEnemyAttacker; // ab Lev 2 |
Enemies[5] := etEnemyMeteor; // ab Lev 3 |
Enemies[6] := etEnemyUFO; // ab Lev 4 |
Enemies[7] := etEnemyAttacker; // ab Lev 5 |
Enemies[8] := etEnemyMeteor; // ab Lev 6 |
Enemies[9] := etEnemyUFO; // ab Lev 7 |
Enemies[10] := etEnemyAttacker; // ab Lev 8 |
Enemies[11] := etEnemyMeteor; // ab Lev 9 |
Enemies[12] := etEnemyUFO; // ab Lev 10 |
Enemies[13] := etEnemyAttacker; // ab Lev 11 |
Enemies[14] := etEnemyMeteor; // ab Lev 12 |
Enemies[15] := etEnemyUFO; // ab Lev 13 |
Enemies[16] := etEnemyAttacker3; // ab Lev 14 |
Enemies[17] := etEnemyAttacker; // ab Lev 15 |
Enemies[18] := etEnemyMeteor; // ab Lev 16 |
Enemies[19] := etEnemyUFO; // ab Lev 17 |
Enemies[20] := etEnemyUFO2; // ab Lev 18 |
Enemies[21] := etEnemyAttacker; // ab Lev 19 |
Enemies[22] := etEnemyMeteor; // ab Lev 20 |
Enemies[23] := etEnemyUFO; // ab Lev 21 |
Enemies[24] := etEnemyAttacker2; // ab Lev 22 |
Enemies[25] := etEnemyMeteor; // ab Lev 23 |
Enemies[26] := etEnemyUFO; // ab Lev 24 |
Enemies[27] := etEnemyAttacker; // ab Lev 25 |
Enemies[28] := etEnemyAttacker; // ab Lev 26 |
Enemies[29] := etEnemyAttacker2; // ab Lev 27 |
Enemies[30] := etEnemyAttacker3; // ab Lev 28 |
Enemies[31] := etEnemyUFO; // ab Lev 29 |
Enemies[32] := etEnemyUFO2; // ab Lev 30 |
numEnemies := lev*RandomLevelAdditionalEnemiesPerLevel; |
SetLength(LevelData.EnemyAdventTable, numEnemies); |
for act := 0 to numEnemies-1 do |
begin |
e.enemyType := Enemies[min(random(lev+2)+1, High(Enemies))]; |
if e.enemyType = etEnemyAttacker2 then |
begin |
//e.enemyType := Enemies[min(random(lev+2)+1, High(Enemies))]; |
if Random(2) = 0 then e.enemyType := etEnemyAttacker3; |
end; |
e.x := 85-(lev+(random(lev))*2){O_o}; |
if e.x < 1 then e.x := 1; // passiert bei großen Levels |
e.x := act*30 + random(e.x); |
e.y := random((LevEditRows-1)*LevEditRasterH); |
if e.enemyType = etEnemyAttacker2 then |
begin |
e.lifes := random(6)+1{O_o}; |
end |
else |
begin |
if lev > RandomLevelMaxEnemyLives then |
begin |
e.lifes := random(RandomLevelMaxEnemyLives)+1; |
end |
else |
begin |
e.lifes := random(lev)+1; |
end; |
end; |
if (act-1) mod RandomLevelMedikitEveryX = 0 then |
begin |
e.enemyType := etItemMedikit; |
e.lifes := 0; |
end; |
LevelData.EnemyAdventTable[act] := e; |
end; |
if lev < 5 then |
begin |
// Level 1-4: No boss |
bossPosition := -1; |
end |
else if lev < 10 then |
begin |
// Level 5-9: Boss is at the end of the level |
bossPosition := numEnemies-1; |
end |
else |
begin |
// Starting with Level 10: Boss at 75% of the level |
bossPosition := round(0.75 * numEnemies); |
end; |
if LevelData.EnemyAdventTable[bossPosition].enemyType = etItemMedikit then |
Inc(bossPosition); |
if bossPosition >= 0 then |
begin |
e.enemyType := etEnemyBoss; |
//e.x := lev*75*30{O_o} div lev; |
e.x := LevelData.EnemyAdventTable[bossPosition-1].x; |
e.y := (dxdraw.surfaceheight div 2) - (MainForm.GetSpriteGraphic(smgEnemyBoss).height div 2); |
e.lifes := lev*5; |
LevelData.EnemyAdventTable[bossPosition] := e; |
end; |
{$ENDREGION} |
end |
else |
begin |
{$REGION 'Normal game'} |
levFile := GetLevelFileName(lev,false); |
if levFile.found then |
begin |
try |
LevelData.RasterErzwingen := false; |
LevelData.LoadFromFile(levFile.fileLocation); |
except |
showmessage(Format(SLevelInvalid, [lev])); |
ResetLevelData; // empty level = the player will continue with the next level |
end; |
end; |
{$ENDREGION} |
end; |
FLevelDataAlreadyLoaded := true; // nicht nochmal NewLevel() aufrufen. Erst wieder wenn man gewonnen hat. |
end; |
var |
TitleWasPressed: TDxInputState = isButton32; |
procedure TMainForm.SceneTitle; |
resourcestring |
SNormalGame = 'Normales Spiel'; |
SRandomGame = 'Zufalls-Level'; |
SLevelEditor = 'Level-Editor'; |
var |
Logo: TPictureCollectionItem; |
colo1, colo2: TColor; |
begin |
DXDraw.Surface.Fill(0); |
Logo := GetSpriteGraphic(smgLogo); |
{Logo.DrawWaveX(DXDraw.Surface, (dxdraw.surfaceWidth div 2) - 181, 65, Logo.Width, Logo.Height, 0, |
Trunc(16 - Cos256(FBlink div 60) * 16), 32, -FBlink div 5);} |
Logo.DrawWaveX(DXDraw.Surface, trunc((dxdraw.surfaceWidth / 2) - (Logo.Width / 2)), 65, Logo.Width, Logo.Height, 0, |
2, 80, Fangle * 4); |
inc(Fangle); |
if FGameMode = gmUnknown then FGameMode := gmLevels; |
if (isUp in MainForm.DXInput.States) then TitleWasPressed := isUp; |
if (TitleWasPressed=isUp) and not (isUp in MainForm.DXInput.States) then |
begin |
TitleWasPressed := isButton32; |
if (Ord(FGameMode) <> 1) then |
FGameMode := TGameMode(Ord(FGameMode)-1); |
end; |
if (isDown in MainForm.DXInput.States) then TitleWasPressed := isDown; |
if (TitleWasPressed=isDown) and not (isDown in MainForm.DXInput.States) then |
begin |
TitleWasPressed := isButton32; |
if (FGameMode <> High(TGameMode)) then |
FGameMode := TGameMode(Ord(FGameMode)+1); |
end; |
DXDraw.Surface.Canvas.Brush.Style := bsClear; |
DXDraw.Surface.Canvas.Font.Size := 30; |
{$REGION 'Menu point: Normal Level'} |
if FGameMode = gmLevels then |
begin |
colo1 := clMaroon; |
colo2 := clRed; |
end |
else |
begin |
colo1 := clOlive; |
colo2 := clYellow; |
end; |
DXDraw.Surface.Canvas.Font.Color := colo1; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-152, (dxdraw.surfaceheight div 2)-52, SNormalGame); |
if FGameMode = gmLevels then |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2)-52, '>'); |
DXDraw.Surface.Canvas.Font.Color := colo2; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-150, (dxdraw.surfaceheight div 2)-50, SNormalGame); |
if FGameMode = gmLevels then |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2)-50, '>'); |
{$ENDREGION} |
{$REGION 'Menu point: Random Level'} |
if FGameMode = gmRandom then |
begin |
colo1 := clMaroon; |
colo2 := clRed; |
end |
else |
begin |
colo1 := clOlive; |
colo2 := clYellow; |
end; |
DXDraw.Surface.Canvas.Font.Color := colo1; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-152, (dxdraw.surfaceheight div 2)-2, SRandomGame); |
if FGameMode = gmRandom then |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-187, (dxdraw.surfaceheight div 2)-2, '>'); |
DXDraw.Surface.Canvas.Font.Color := colo2; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-150, (dxdraw.surfaceheight div 2), SRandomGame); |
if FGameMode = gmRandom then |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2), '>'); |
{$ENDREGION} |
{$REGION 'Menu point: Level Editor'} |
if FGameMode = gmEditor then |
begin |
colo1 := clMaroon; |
colo2 := clRed; |
end |
else |
begin |
colo1 := clOlive; |
colo2 := clYellow; |
end; |
DXDraw.Surface.Canvas.Font.Color := colo1; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-152, (dxdraw.surfaceheight div 2)+48, SLevelEditor); |
if FGameMode = gmEditor then |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2)+48, '>'); |
DXDraw.Surface.Canvas.Font.Color := colo2; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-150, (dxdraw.surfaceheight div 2)+50, SLevelEditor); |
if FGameMode = gmEditor then |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, (dxdraw.surfaceheight div 2)+50, '>'); |
{$ENDREGION} |
{ if (FBlink div 300) mod 2=0 then |
begin |
DXDraw.Surface.Canvas.Font.Color := clGreen; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-187, dxdraw.surfaceheight-117, SWeiterMitLeertaste); |
DXDraw.Surface.Canvas.Font.Color := clLime; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, dxdraw.surfaceheight-115, SWeiterMitLeertaste); |
end; } |
BlinkUpdate; |
DXDraw.Surface.Canvas.Release; |
// Weiter mit Leertaste oder Enter |
if (isButton1 in DXInput.States) or (isButton2 in DXInput.States) then |
begin |
FLevel := 1; |
if FGameMode = gmEditor then |
begin |
ShellExecute(0, 'open', PChar(OwnDirectory+LevEditExe), '', PChar(OwnDirectory), SW_NORMAL); // do not localize |
Close; |
exit; |
end; |
if ((FGameMode=gmLevels) and not GetLevelFileName(FLevel,false).found) or |
((FGameMode=gmRandom) and (FLevel > MaxPossibleLevels)) then |
begin |
//PlaySound('Frage', False); |
exit; |
end; |
PlaySound(smsSceneMov, False); |
PalleteAnim(RGBQuad(0, 0, 0), 300); |
Sleep(200); |
StartScene(gsMain); |
end; |
end; |
procedure TMainForm.SceneMain; |
resourcestring |
SMissionSuccessful = 'Mission erfolgreich!'; |
SMissionFailed = 'Mission gescheitert!'; |
SPunkte = 'Punkte: %s'; |
SLevel = 'Level: %d'; |
SLifes = 'Leben: %d'; |
SInfLifes = ''; |
SBossLifes = 'Boss: %d'; |
SEinheiten = 'Einheiten: %d'; |
var |
Enemy: TSprite; |
spriteClass: TClass; |
tmpEnemyAnzeige: integer; |
begin |
SpriteEngine.Move(FSpeed); |
SpriteEngine.Dead; |
while (FEnemyAdventPos >= Low(LevelData.EnemyAdventTable)) and |
(FEnemyAdventPos <= High(LevelData.EnemyAdventTable)) and |
((LevelData.EnemyAdventTable[FEnemyAdventPos].x / 4) <= FFrame) and |
(FRestEnemies > 0) do |
begin |
Dec(FRestEnemies); |
with LevelData.EnemyAdventTable[FEnemyAdventPos] do |
begin |
spriteClass := nil; |
case enemyType of |
//etUnknown: ; |
etEnemyAttacker: spriteClass := TEnemyAttacker; |
etEnemyAttacker2: spriteClass := TEnemyAttacker2; |
etEnemyAttacker3: spriteClass := TEnemyAttacker3; |
etEnemyMeteor: spriteClass := TEnemyMeteor; |
etEnemyUFO: spriteClass := TEnemyUFO; |
etEnemyUFO2: spriteClass := TEnemyUFO2; |
etEnemyBoss: spriteClass := TEnemyBoss; |
etItemMedikit: spriteClass := TItemMedikit; |
end; |
if spriteClass <> nil then |
begin |
Enemy := nil; |
if spriteClass.InheritsFrom(TEnemy) then |
Enemy := TEnemyClass(spriteClass).Create(SpriteEngine.Engine, lifes) |
else if spriteClass.InheritsFrom(TItem) then |
Enemy := TItemClass(spriteClass).Create(SpriteEngine.Engine) |
else |
Assert(False); |
Enemy.x := dxdraw.surfacewidth; |
//Enemy.y := y; |
if y <> 0 then |
Enemy.y := dxdraw.surfaceheight / ((LevEditRows*LevEditRasterH) / y) |
else |
Enemy.y := 0; |
end; |
end; |
Inc(FEnemyAdventPos); |
end; |
Inc(FFrame); |
DXDraw.Surface.Fill(0); |
if FNextScene=gsNone then |
begin |
SpriteEngine.Draw; |
DXDraw.Surface.Canvas.Brush.Style := bsClear; |
DXDraw.Surface.Canvas.Font.Size := 20; |
if flife > 0 then |
begin |
{$REGION 'Anzeige Punkte'} |
DXDraw.Surface.Canvas.Font.Color := clOlive; |
DXDraw.Surface.Canvas.Textout(9, 9, Format(SPunkte, [FloatToStrF(FScore,ffNumber,14,0)])); |
DXDraw.Surface.Canvas.Font.Color := clYellow; |
DXDraw.Surface.Canvas.Textout(10, 10, Format(SPunkte, [FloatToStrF(FScore,ffNumber,14,0)])); |
{$ENDREGION} |
{$REGION 'Anzeige Level'} |
DXDraw.Surface.Canvas.Font.Color := clMaroon; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-141, 9, Format(SLevel, [flevel])); |
DXDraw.Surface.Canvas.Font.Color := clRed; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-140, 10, Format(SLevel, [flevel])); |
{$ENDREGION} |
{$REGION 'Lebensanzeige'} |
if FLife<0 then FLife := 0; |
if ctInfiniteLives in FCheats then |
begin |
DXDraw.Surface.Canvas.Font.Color := clPurple; |
DXDraw.Surface.Canvas.Textout(9, dxdraw.surfaceheight-41, SInfLifes); |
DXDraw.Surface.Canvas.Font.Color := clFuchsia; |
DXDraw.Surface.Canvas.Textout(10, dxdraw.surfaceheight-40, SInfLifes); |
end |
else |
begin |
if ((Flife = 1) and ((FBlink div 300) mod 2=0)) or (Flife <> 1) then |
begin |
DXDraw.Surface.Canvas.Font.Color := clPurple; |
DXDraw.Surface.Canvas.Textout(9, dxdraw.surfaceheight-41, Format(SLifes, [flife])); |
DXDraw.Surface.Canvas.Font.Color := clFuchsia; |
DXDraw.Surface.Canvas.Textout(10, dxdraw.surfaceheight-40, Format(SLifes, [flife])); |
end; |
if Flife = 1 then BlinkUpdate; |
end; |
{$ENDREGION} |
{$REGION 'Anzeige Einheiten und Boss Leben'} |
tmpEnemyAnzeige := EnemyCounter{Auf Bildschirm} + FRestEnemies{In der Warteschlange}; |
if Assigned(FBoss) and (FBoss.State<>pesDeadVanished) then Dec(tmpEnemyAnzeige); |
if Assigned(FBoss) and (FBoss.Life>0) then |
begin |
if (tmpEnemyAnzeige>0) then |
begin |
DXDraw.Surface.Canvas.Font.Color := clGreen; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-191, dxdraw.surfaceheight-81, Format(SBossLifes, [FBoss.Life])); |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-191, dxdraw.surfaceheight-41, Format(SEinheiten, [tmpEnemyAnzeige])); |
DXDraw.Surface.Canvas.Font.Color := clLime; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-190, dxdraw.surfaceheight-80, Format(SBossLifes, [FBoss.Life])); |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-190, dxdraw.surfaceheight-40, Format(SEinheiten, [tmpEnemyAnzeige])); |
end |
else |
begin |
DXDraw.Surface.Canvas.Font.Color := clGreen; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-191, dxdraw.surfaceheight-41, Format(SBossLifes, [FBoss.Life])); |
DXDraw.Surface.Canvas.Font.Color := clLime; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-190, dxdraw.surfaceheight-40, Format(SBossLifes, [FBoss.Life])); |
end; |
end |
else if tmpEnemyAnzeige>0 then |
begin |
DXDraw.Surface.Canvas.Font.Color := clGreen; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-191, dxdraw.surfaceheight-41, Format(SEinheiten, [tmpEnemyAnzeige])); |
DXDraw.Surface.Canvas.Font.Color := clLime; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-190, dxdraw.surfaceheight-40, Format(SEinheiten, [tmpEnemyAnzeige])); |
end; |
{$ENDREGION} |
{$REGION 'Anzeige Mission erfolgreich/gescheitert'} |
if (EnemyCounter=0) and (FRestEnemies=0) then |
begin |
DXDraw.Surface.Canvas.Font.Color := clGreen; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-251, dxdraw.surfaceheight-41, SMissionSuccessful); |
DXDraw.Surface.Canvas.Font.Color := clLime; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-250, dxdraw.surfaceheight-40, SMissionSuccessful); |
DXDraw.Surface.Canvas.Release; |
Sleep(1); |
inc(FCounter); |
if FCounter>150{200} then PlayerSprite.FlyAway; |
end; |
{$ENDREGION} |
end |
else |
begin |
DXDraw.Surface.Canvas.Font.Color := clMaroon; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-251, dxdraw.surfaceheight-41, SMissionFailed); |
DXDraw.Surface.Canvas.Font.Color := clRed; |
DXDraw.Surface.Canvas.Textout(dxdraw.surfacewidth-250, dxdraw.surfaceheight-40, SMissionFailed); |
end; |
DXDraw.Surface.Canvas.Release; |
end; |
end; |
procedure TMainForm.SceneGameOver; |
resourcestring |
SGameOver = 'Game Over!'; |
begin |
DXDraw.Surface.Fill(0); |
FNotSave := true; |
Cheat.enabled := false; |
GamePause.enabled := false; |
Neustart.enabled := false; |
Brush.Style := bsClear; |
DXDraw.Surface.Canvas.Font.Size := 35; |
DXDraw.Surface.Canvas.Font.Color := clMaroon; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfacewidth div 2)-127, 98, SGameOver); |
DXDraw.Surface.Canvas.Font.Color := clRed; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfacewidth div 2)-125, 100, SGameOver); |
if (FBlink div 300) mod 2=0 then |
begin |
DXDraw.Surface.Canvas.Font.Size := 30; |
DXDraw.Surface.Canvas.Font.Color := clOlive; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-187, dxdraw.surfaceheight-117, SWeiterMitLeertaste); |
DXDraw.Surface.Canvas.Font.Color := clYellow; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, dxdraw.surfaceheight-115, SWeiterMitLeertaste); |
end; |
BlinkUpdate; |
DXDraw.Surface.Canvas.Release; |
// Weiter mit Leertaste oder Enter |
if (isButton1 in DXInput.States) or (isButton2 in DXInput.States) then |
begin |
PlaySound(smsSceneMov, False); |
PalleteAnim(RGBQuad(0, 0, 0), 300); |
Sleep(200); |
StartScene(gsTitle); |
end; |
end; |
procedure TMainForm.SceneWin; |
resourcestring |
SGewonnen = 'Gewonnen!'; |
begin |
DXDraw.Surface.Fill(0); |
FNotSave := true; |
Cheat.enabled := false; |
GamePause.enabled := false; |
Neustart.enabled := false; |
DXDraw.Surface.Canvas.Brush.Style := bsClear; |
DXDraw.Surface.Canvas.Font.Size := 35; |
DXDraw.Surface.Canvas.Font.Color := clMaroon; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-127, 98, SGewonnen); |
DXDraw.Surface.Canvas.Font.Color := clRed; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-125, 100, SGewonnen); |
if (FBlink div 300) mod 2=0 then |
begin |
DXDraw.Surface.Canvas.Font.Size := 30; |
DXDraw.Surface.Canvas.Font.Color := clOlive; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-187, dxdraw.surfaceheight-117, SWeiterMitLeertaste); |
DXDraw.Surface.Canvas.Font.Color := clYellow; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, dxdraw.surfaceheight-115, SWeiterMitLeertaste); |
end; |
BlinkUpdate; |
DXDraw.Surface.Canvas.Release; |
// Weiter mit Leertaste oder Enter |
if (isButton1 in DXInput.States) or (isButton2 in DXInput.States) then |
begin |
PlaySound(smsSceneMov, False); |
PalleteAnim(RGBQuad(0, 0, 0), 300); |
Sleep(200); |
StartScene(gsTitle); |
end; |
end; |
procedure TMainForm.StartSceneNewLevel; |
begin |
sleep(500); |
FNotSave := true; // Wenn man speichert, würde man LevelAdventTable vom vorherigen Level machen, das wär müll! |
Cheat.enabled := false; |
Neustart.enabled := false; |
GamePause.enabled := false; |
GameStart.enabled := true; |
Spielgeschwindigkeit.enabled := false; |
Spielgeschwindigkeit.enabled := false; |
if ((FGameMode=gmLevels) and not GetLevelFileName(FLevel,false).found) |
// or ((FGameMode=gmRandom) and (FLevel > 25)) |
or (FLevel > MaxPossibleLevels) then |
begin |
//PlaySound('SceneMov', False); |
PalleteAnim(RGBQuad(0, 0, 0), 300); |
Sleep(200); |
StartScene(gsWin); |
exit; |
end; |
MusicSwitchTrack(smmScene); |
end; |
procedure TMainForm.EndSceneNewLevel; |
begin |
{ Ende NewLevel } |
end; |
procedure TMainForm.SceneNewLevel; |
resourcestring |
SLevelScene = 'Level %d'; |
begin |
DXDraw.Surface.Fill(0); |
DXDraw.Surface.Canvas.Brush.Style := bsClear; |
DXDraw.Surface.Canvas.Font.Size := 40; |
DXDraw.Surface.Canvas.Font.Color := clMaroon; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-(83+(length(inttostr(flevel))*22)), 98, Format(SLevelScene, [flevel])); |
DXDraw.Surface.Canvas.Font.Color := clRed; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-(81+(length(inttostr(flevel))*22)), 100, Format(SLevelScene, [flevel])); |
if (FBlink div 300) mod 2=0 then |
begin |
DXDraw.Surface.Canvas.Font.Size := 30; |
DXDraw.Surface.Canvas.Font.Color := clOlive; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-187, dxdraw.surfaceheight-117, SWeiterMitLeertaste); |
DXDraw.Surface.Canvas.Font.Color := clYellow; |
DXDraw.Surface.Canvas.Textout((dxdraw.surfaceWidth div 2)-185, dxdraw.surfaceheight-115, SWeiterMitLeertaste); |
end; |
BlinkUpdate; |
DXDraw.Surface.Canvas.Release; |
// Weiter mit Leertaste oder Enter |
if (isButton1 in DXInput.States) or (isButton2 in DXInput.States) then |
begin |
PlaySound(smsSceneMov, False); |
PalleteAnim(RGBQuad(0, 0, 0), 300); |
Sleep(200); |
StartScene(gsMain); |
end; |
end; |
procedure TMainForm.OptionMusicClick(Sender: TObject); |
begin |
OptionMusic.Checked := not OptionMusic.Checked; |
if OptionMusic.Checked then |
begin |
MusicSwitchTrack(FMusic) |
end |
else |
begin |
StopMusic(FMusic); |
end; |
WriteOptions; |
end; |
procedure TMainForm.PlayMusic(Name: TSpaceMissionMusicTrack); |
begin |
if not OptionMusic.checked then exit; |
if Ord(Name) > dxmusic.Midis.Count then exit; |
dxmusic.Midis.Items[Ord(Name)-1].Play; |
end; |
procedure TMainForm.StopMusic(Name: TSpaceMissionMusicTrack); |
begin |
if Name = smmNone then exit; |
if Ord(Name) > dxmusic.Midis.Count then exit; |
dxmusic.Midis.Items[Ord(Name)-1].Stop; |
end; |
procedure TMainForm.ResumeMusic(Name: TSpaceMissionMusicTrack); |
begin |
if not OptionMusic.checked then exit; |
if Ord(Name) > dxmusic.Midis.Count then exit; |
dxmusic.Midis.Items[Ord(Name)-1].Play; // TODO: how to pause/resume instead play/stop |
end; |
procedure TMainForm.PauseMusic(Name: TSpaceMissionMusicTrack); |
begin |
if Name = smmNone then exit; |
if Ord(Name) > dxmusic.Midis.Count then exit; |
dxmusic.Midis.Items[Ord(Name)-1].Stop; // TODO: how to pause/resume instead play/stop |
end; |
procedure TMainForm.SpielstandClick(Sender: TObject); |
begin |
speicherungform.showmodal; |
end; |
procedure TMainForm.LevelNeuStarten; |
begin |
FNextScene := gsNewLevel; |
FLife := FLifeAtLevelStart; |
FScore := FScoreAtLevelStart; |
end; |
procedure TMainForm.NeustartClick(Sender: TObject); |
begin |
LevelNeuStarten; |
end; |
procedure TMainForm.LeichtClick(Sender: TObject); |
begin |
leicht.checked := true; |
FSpeed := SpeedEasy; |
writeoptions; |
end; |
procedure TMainForm.MittelClick(Sender: TObject); |
begin |
mittel.checked := true; |
FSpeed := SpeedMedium; |
writeoptions; |
end; |
procedure TMainForm.SchwerClick(Sender: TObject); |
begin |
schwer.checked := true; |
FSpeed := SpeedHard; |
writeoptions; |
end; |
procedure TMainForm.MasterClick(Sender: TObject); |
begin |
master.checked := true; |
FSpeed := SpeedMaster; |
writeoptions; |
end; |
procedure TMainForm.FormShow(Sender: TObject); |
resourcestring |
SFileError = 'Die Datei kann von SpaceMission nicht geöffnet werden!'; |
var |
SavGame: TSaveData; |
begin |
if Assigned(SplashForm) then |
begin |
SplashForm.Hide; |
FreeAndNil(SplashForm); |
end; |
dxtimer.Enabled := true; |
dxtimer.ActiveOnly := true; |
ResetLevelData; |
if (paramcount > 0) and (fileexists(paramstr(1))) and (ExtractFileExt(paramstr(1)).ToLower = '.sav') then |
begin |
SavGame := TSaveData.Create; |
try |
try |
SavGame.LoadFromFile(paramstr(1)); |
FScore := SavGame.Score; |
FLife := SavGame.Life; |
FLevel := SavGame.Level; |
FGameMode := SavGame.GameMode; |
FLevelDataAlreadyLoaded := true; // do not call NewLevel() in StartSceneMain |
if Assigned(SavGame.LevelData) then |
begin |
LevelData.Assign(SavGame.LevelData); |
end; |
except |
on E: Exception do |
begin |
showmessage(SFileError + ' ' +E.Message); |
GameStartClick(GameStart); |
exit; |
end; |
end; |
finally |
FreeAndNil(SavGame); |
end; |
//FNextScene := gsNewLevel; |
StartScene(gsNewLevel); |
exit; |
end; |
end; |
procedure TMainForm.InformationenClick(Sender: TObject); |
begin |
dxtimer.enabled := false; |
InfoForm.showmodal; |
if not mainform.gamepause.checked then mainform.dxtimer.enabled := true; |
end; |
procedure TMainForm.CheatClick(Sender: TObject); |
begin |
CheatForm.showmodal; |
end; |
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); |
begin |
if optionMusic.checked then StopMusic(FMusic); |
SpriteEngine.Engine.Clear; |
dxsound.Finalize; |
dxinput.Destroy; |
DXTimer.Enabled := False; |
end; |
procedure TMainForm.FormDestroy(Sender: TObject); |
begin |
FreeAndNil(imagelist); |
FreeAndNil(spriteengine); |
FreeAndNil(dxdraw); |
FreeAndNil(wavelist); |
FreeAndNil(dxmusic); |
FreeAndNil(dxsound); |
//FreeAndNil(dxinput); |
FreeAndNil(dxtimer); |
DeleteCriticalSection(TimerCS); |
FreeAndNil(LevelData); |
end; |
procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean); |
{************************************************************ |
* Procedure PostKeyEx32 |
* |
* Parameters: |
* key : virtual keycode of the key to send. For printable |
* keys this is simply the ANSI code (Ord(character)). |
* shift : state of the modifier keys. This is a set, so you |
* can set several of these keys (shift, control, alt, |
* mouse buttons) in tandem. The TShiftState type is |
* declared in the Classes Unit. |
* specialkey: normally this should be False. Set it to True to |
* specify a key on the numeric keypad, for example. |
* Description: |
* Uses keybd_event to manufacture a series of key events matching |
* the passed parameters. The events go to the control with focus. |
* Note that for characters key is always the upper-case version of |
* the character. Sending without any modifier keys will result in |
* a lower-case character, sending it with [ssShift] will result |
* in an upper-case character! |
// Code by P. Below |
************************************************************} |
type |
TShiftKeyInfo = record |
shift: Byte; |
vkey: Byte; |
end; |
byteset = set of 0..7; |
const |
shiftkeys: array [1..3] of TShiftKeyInfo = |
((shift: Ord(ssCtrl); vkey: VK_CONTROL), |
(shift: Ord(ssShift); vkey: VK_SHIFT), |
(shift: Ord(ssAlt); vkey: VK_MENU)); |
var |
flag: DWORD; |
bShift: ByteSet absolute shift; |
i: Integer; |
begin |
for i := 1 to 3 do |
begin |
if shiftkeys[i].shift in bShift then |
keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0); |
end; { For } |
if specialkey then |
flag := KEYEVENTF_EXTENDEDKEY |
else |
flag := 0; |
keybd_event(key, MapvirtualKey(key, 0), flag, 0); |
flag := flag or KEYEVENTF_KEYUP; |
keybd_event(key, MapvirtualKey(key, 0), flag, 0); |
for i := 3 downto 1 do |
begin |
if shiftkeys[i].shift in bShift then |
keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), |
KEYEVENTF_KEYUP, 0); |
end; { For } |
end; { PostKeyEx32 } |
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word; |
Shift: TShiftState); |
begin |
if Key = VK_ESCAPE then |
begin |
// TODO: Unfortunately, you cannot see if it is already popup. It would be great if ESC closes the main menu... |
Key := 0; |
PostKeyEx32(Ord('S'), [ssAlt], False); |
end; |
end; |
end. |
/TODO.md |
---|
0,0 → 1,62 |
# SpaceMission TODO |
## Kleinigkeiten |
- Es wäre schön, wenn die größe der Spezialhintergründe (Planeten) abhängig von wäre, wie weit entfernt sie ist (Layer 1,2,3) |
- wenn man getroffen ist, sollte man blinken, sodass man sieht, ab wann man wieder verwundbar ist |
- Improve Sound effects |
- Hintergrund besser und Abwechslungsreicher |
- Levels besser |
- Schrift rechts (Boss: X) soll rechtsbündig sein |
- Punkte: Integer-Höchstwert erkennen und dann nicht mehr weiterzählen! |
- lev: anzeige - welche datei offen ist! |
- punktegebung optimieren |
- Bei Pause => Entweder alles grau werden lassen, oder vielleicht ganz groß Pause in die Bildschirmmitte schreiben |
## Ideen |
- Neue Einheit: Ufo, das im Kreis fliegt und nicht weggeht |
- Neues Item: 10 Sekunden unverwundbarkeit item |
- Neues Item: Geld Geschenk item |
- Boss schwieriger machen: Er soll auch nach links und rechts gehen? |
- Spiellogik: Wenn man gegen einen gegner fliegt, soll er schaden haben! |
- Cooldown für Laser? Limitierung der Schüsse (Kanone wird heiß). |
- Highscore Liste |
- "Throwback" nach einem hit. Nach Treffer, zurückgeschleudert werden |
- Anderer Soundeffekt, wenn man selbst getroffen ist |
- Leveleditor: "unsaubere" levels akzeptieren! komet mit 1+ leben, einheiten, die nicht auf der linie sind. |
- Netzwerkspiel? |
- Leveleditor: Ober - / Unterfelder? (was meinte ich damit?) |
- Leveleditor: Höchstens 9999 enemies? |
- Leveleditor "rückgängig" funktion |
- Cheat for next Level ect. (Johnny Crash?) |
- Verschiedene Dinge bei schnelligkeit anders?! z.B. Boss-Explore, Schießende Einheiten (Tamas) |
- Tama 1 must damage PL. Sprite! |
- Tama 2 must damage EN. Sprite! |
- Tama 1 und Tama 2 könnten sich gegenseitig kaputt machen? |
- Speicherung: Umbenennen - Button? |
- Multiplayer (2 Spieler fliegen durch eine Map) |
## Repro, Unklar, Fragen |
- Que: Gibt es eine neuere Version des Shoot-Samples (nicht mehr vorhanden in aktueller DelphiX) |
- Leveleditor performance oder deadlock probleme? bei vielen einheiten wird das sehr langsam? algo verbessern? |
- Leveleditor Probleme mit Schiebebildchen... (was meinte ich damit?) |
- Leveleditor Wenn Level gelöscht, dass gerade geladen ist, dann LevChanged = true! |
- Leveleditor Boss überschneidet Einheiten ? |
- Bei Musik am Anfang bei nicht Focus Anfangsquäker? |
- Zeitverschiebung: Texpl dauert länger als Tboss.kill; |
- Cheat1 (unverwundbarkeit) mit Kollisionsgeräusch? |
- Wenn 0 Levels => Procedur in MainMenu verbessern! |
- Wenn Kollision von PlayerSprite vorrüber ist, muss der KollisionsTimer sofort wieder auf Null gehen! |
- Wenn keine Soundkarte dann auch kein Sound! |
- Spielgeschw. & BGSpeed vereinen |
- Dec(live) bei attacker1 manchmal kein Ton? |
- Sequences (was meinte ich damit?) |
- Rnd: Soll Boss-Live auch RND? |
- leicht, mittel, schwer: falsche fps bei langsameren grafikkarten? |
- lev: überall ok = focus! |
- systemmodus auswählen (move rechnungen ausführen?) oder ein rechenlabel mit dem status anzeigen |
- SM: Soll bei Verwaltung lieber statt dem ersten satz bei status was anderes hin? Levelart: Normales Level. |
Wenn es bleiben soll, dann den satz verbessern. Das Level ist ein Zufallslevel |
/_Private/ToDo.txt |
---|
File deleted |
/_Private/Dokumentation.doc |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/_Private/Schnecke.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/_Private/Totenkopf.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/_Private/Font.txt |
---|
File deleted |
/_Private/Schnecke.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/_Private/Thumbs.db |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/_Private/Versions.txt |
---|
File deleted |
/_Private/Totenkopf.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/_Private/ToDo.doc |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/_Private/medikit.bmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/_Private/medikit.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/_Private/medikit.psd |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/_Private/VCL.txt |
---|
0,0 → 1,16 |
VCL_DELPHIX_D6 |
(un)DelphiX 1.0.22.0 |
Name: delphix_all_in_one_22 |
Version: 19 November 2023 |
Compatible with Delphi 6, Turbo Delphi (2006), Delphi XE4, Delphi 12 Athens |
Source: http://www.micrel.cz/Dx/ |
(C) Copyright 1996-2000 by Hiroyuki Hori |
(C) Copyright 2004-2023 by Jaro Benes. |
The rules governing the use of (un)DelphiX or other tools source code are based on the general Open Source Definition, available at http://www.opensource.org and with consideration shared rights. |
This software is provided "as is" and is without warranty of any kind. The author(s) of this software does not warrant, guarantee or make any representations regarding the use or results of use of this software in terms of reliability, accuracy or fitness for purpose. You assume the entire risk of direct or indirect, consequential or inconsequential results from the correct or incorrect usage of this software even if the author has been informed of the possibilities of such damage. Neither the author nor anybody connected to this software in any way can assume any responsibility. |
VCL_MARKDOWN |
Source: https://github.com/grahamegrieve/delphi-markdown |
(c) 2011+, Health Intersections Pty Ltd |
Apache 2.0 License |
/_Private/DevTools/DXGDumper.exe |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/_Private/DevTools/dxgEdit.exe |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/_Private/DevTools/dxmEdit.exe |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/_Private/DevTools/dxwEdit.exe |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/_Private/Shoot (DelphiX 2000.07.17).zip |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/_Private |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/Global.pas |
---|
0,0 → 1,319 |
unit Global; |
interface |
const |
ProgramVersion = '1.2.2'; |
LevEditRasterW = 48; |
LevEditRasterH = 32; |
LevEditRows = 15; // Attention: if you change this, you also need to change the LevEditor GUI! |
LevEditCols = 13; // Attention: if you change this, you also need to change the LevEditor GUI! |
MaxPossibleEnemyLives = 999; |
MaxPossibleLevels = 999; |
RegistrySettingsKey = 'SOFTWARE\ViaThinkSoft\SpaceMission\Settings'; // do not localize |
MusicSettingKey = 'Music'; // do not localize |
SoundSettingKey = 'Sound'; // do not localize |
SpeedSettingKey = 'GameSpeed'; // do not localize |
DefaultLevelLength = 1200; |
StartLives = 6; |
SpeedEasy = 650 div 60; // 10 |
SpeedMedium = 1000 div 60; // 16 |
SpeedHard = 1350 div 60; // 22 |
SpeedMaster = 2000 div 60; // 33 |
DEFAULT_ANIMSPEED = 15/1000; |
BossWidth = 4; |
BossHeight = 2; |
SpaceMissionExe = 'SpaceMission.exe'; // do not localize |
LevEditExe = 'LevEdit.exe'; // do not localize |
DxgFile = 'DirectX\Graphics.dxg'; // do not localize |
DxwFile = 'DirectX\Sound.dxw'; // do not localize |
DxmFile = 'DirectX\Music.dxm'; // do not localize |
RandomLevelMaxEnemyLives = 10; |
RandomLevelMedikitEveryX = 250; |
RandomLevelAdditionalEnemiesPerLevel = 75; // Zufalls-Level |
const |
// Cheat1 = 'Kmkjk'+#39+'Khyc'; |
Cheat1 = #75+#109+#107+#106+#107+#127+#39+#75+#104+#121+#99; {Johnny Cash} |
resourcestring |
Cheat1Text = 'Unendlich Leben!'; |
type |
TCheat = (ctUnknown, ctInfiniteLives); |
TCheatSet = set of TCheat; |
// DirectX\Music.dxm |
TSpaceMissionMusicTrack = ( |
smmNone, |
smmBoss, // dxmusic.Midis[0] |
smmGame, // dxmusic.Midis[1] |
smmScene, // dxmusic.Midis[2] |
smmTitle // dxmusic.Midis[3] |
); |
// DirectX\Graphics.dxg |
TSpaceMissionGraphicSprite = ( |
smgNone, |
smgEnemyDisk, // ImageList.Items.Item[0] |
smgEnemyAttacker, // ImageList.Items.Item[1] |
smgEnemyBoss, // ImageList.Items.Item[2] |
smgBounce, // ImageList.Items.Item[3] |
smgMachine, // ImageList.Items.Item[4] |
smgEnemyAttacker2, // ImageList.Items.Item[5] |
smgEnemyAttacker3, // ImageList.Items.Item[6] |
smgEnemyMeteor, // ImageList.Items.Item[7] |
smgBounce2, // ImageList.Items.Item[8] |
smgEnemyDisk2, // ImageList.Items.Item[9] |
smgLogo, // ImageList.Items.Item[10] |
smgExplosion, // ImageList.Items.Item[11] |
smgBackgroundPlanet1, // ImageList.Items.Item[12] |
smgMatrix, // ImageList.Items.Item[13] |
smgStar1, // ImageList.Items.Item[14] |
smgStar2, // ImageList.Items.Item[15] |
smgStar3, // ImageList.Items.Item[16] |
smgBackgroundBlue, // ImageList.Items.Item[17] |
smgBackgroundRed, // ImageList.Items.Item[18] |
smgBackgroundYellow, // ImageList.Items.Item[19] |
smgHintergrundRot, // ImageList.Items.Item[20] |
smgItemMedikit // ImageList.Items.Item[21] |
); |
// DirectX\Sound.dxw |
TSpaceMissionSound = ( |
smsNone, |
smsSceneMov, // WaveList.Items.Item[0] |
smsExplosion, // WaveList.Items.Item[1] |
smsHit, // WaveList.Items.Item[2] |
smsShoot, // WaveList.Items.Item[3] |
smsItemCollected // WaveList.Items.Item[4] |
); |
function OwnDirectory: string; |
const |
FOLDERID_SavedGames: TGuid = '{4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}'; // do not localize |
// Useful functions |
procedure SpaceMission_SwitchLanguage; |
function GetKnownFolderPath(const rfid: TGUID): string; |
function KillTask(ExeFileName: string): Integer; |
procedure CheckForUpdates(ViaThinkSoftProjectName: string; AVersion: string); |
implementation |
uses |
Windows, SysUtils, Dialogs, ActiveX, ShlObj, TlHelp32, wininet, Forms, ShellAPI, |
System.UITypes; |
procedure SwitchLanguage(newLang: string); |
var |
oldHInst: hInst; |
newHInst: hInst; |
bakOverride: string; |
FileName: array [0..MAX_PATH] of Char; |
Module: PLibModule; |
begin |
Module := LibModuleList; |
GetModuleFileName(Module.Instance, FileName, Length(FileName)); |
bakOverride := GetLocaleOverride(''); |
try |
SetLocaleOverride(newLang); |
// Note: SetLocaleOverride() alone does not work, because LibModuleList.ResInstance |
// is already set and won't be re-set by the FindResourceHInstance()! |
newHInst := LoadResourceModule(FileName); |
if newHInst = 0 then newHInst := Module.Instance; |
oldHInst := Module.ResInstance; |
Module.ResInstance := newHInst; |
FreeLibrary(oldHInst); |
except |
SetLocaleOverride(bakOverride); |
end; |
end; |
function GetUserDefaultUILanguage: LANGID; stdcall; external 'kernel32'; |
procedure SpaceMission_SwitchLanguage; |
const |
BaseLanguage = LANG_GERMAN; |
DesiredFallbackLanguage = 'ENU'; // English USA |
begin |
// We need this because of a tricky problem... |
// Our base language is German (DE), and we have a translation for English USA (ENU) |
// If the system locale is not exactly ENU (even ENG is not accepted), then the base language (German) will be used. |
// But much more people are speaking English than German. So we need to force the system to use ENU instead of DE. |
// This decision if we choose DE or ENU is done by the language selected during setup. |
if (GetLocaleOverride('') = '') and |
((GetUserDefaultUILanguage and $FF) <> BaseLanguage) then |
begin |
SwitchLanguage(DesiredFallbackLanguage); |
end; |
end; |
function GetKnownFolderPath(const rfid: TGUID): string; |
var |
OutPath: PWideChar; |
begin |
// https://www.delphipraxis.net/135471-unit-zur-verwendung-von-shgetknownfolderpath.html |
if ShGetKnownFolderPath(rfid, 0, 0, OutPath) {>= 0} = S_OK then |
begin |
Result := OutPath; |
// From MSDN |
// ppszPath [out] |
// Type: PWSTR* |
// When this method returns, contains the address of a pointer to a null-terminated Unicode string that specifies the path of the known folder |
// The calling process is responsible for freeing this resource once it is no longer needed by calling CoTaskMemFree. |
// The returned path does not include a trailing backslash. For example, "C:\Users" is returned rather than "C:\Users\". |
CoTaskMemFree(OutPath); |
end |
else |
begin |
Result := ''; |
end; |
end; |
// https://stackoverflow.com/questions/43774320/how-to-kill-a-process-by-name |
function KillTask(ExeFileName: string): Integer; |
const |
PROCESS_TERMINATE = $0001; |
var |
ContinueLoop: BOOL; |
FSnapshotHandle: THandle; |
FProcessEntry32: TProcessEntry32; |
begin |
Result := 0; |
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); |
FProcessEntry32.dwSize := SizeOf(FProcessEntry32); |
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); |
while Integer(ContinueLoop) <> 0 do |
begin |
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = |
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = |
UpperCase(ExeFileName))) then |
Result := Integer(TerminateProcess( |
OpenProcess(PROCESS_TERMINATE, |
BOOL(0), |
FProcessEntry32.th32ProcessID), |
0)); |
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); |
end; |
CloseHandle(FSnapshotHandle); |
end; |
function OwnDirectory: string; |
begin |
result := extractfilepath(paramstr(0)); |
end; |
// https://www.delphipraxis.net/post43515.html , fixed , works for Delphi 12 Athens |
function GetHTML(AUrl: string): RawByteString; |
var |
databuffer : array[0..4095] of ansichar; // SIC! ansichar! |
ResStr : ansistring; // SIC! ansistring |
hSession, hfile: hInternet; |
dwindex,dwcodelen,dwread,dwNumber: cardinal; |
dwcode : array[1..20] of char; |
res : pchar; |
Str : pansichar; // SIC! pansichar |
begin |
ResStr:=''; |
if (system.pos('http://',lowercase(AUrl))=0) and // do not localize |
(system.pos('https://',lowercase(AUrl))=0) then // do not localize |
AUrl:='http://'+AUrl; // do not localize |
// Hinzugefügt |
if Assigned(Application) then Application.ProcessMessages; |
hSession:=InternetOpen('InetURL:/1.0', // do not localize |
INTERNET_OPEN_TYPE_PRECONFIG, |
nil, |
nil, |
0); |
if assigned(hsession) then |
begin |
// Hinzugefügt |
if Assigned(Application) then application.ProcessMessages; |
hfile:=InternetOpenUrl( |
hsession, |
pchar(AUrl), |
nil, |
0, |
INTERNET_FLAG_RELOAD, |
0); |
dwIndex := 0; |
dwCodeLen := 10; |
// Hinzugefügt |
if Assigned(Application) then application.ProcessMessages; |
HttpQueryInfo(hfile, |
HTTP_QUERY_STATUS_CODE, |
@dwcode, |
dwcodeLen, |
dwIndex); |
res := pchar(@dwcode); |
dwNumber := sizeof(databuffer)-1; |
if (res ='200') or (res = '302') then // do not localize |
begin |
while (InternetReadfile(hfile, |
@databuffer, |
dwNumber, |
DwRead)) do |
begin |
// Hinzugefügt |
if Assigned(Application) then application.ProcessMessages; |
if dwRead =0 then |
break; |
databuffer[dwread]:=#0; |
Str := pansichar(@databuffer); |
resStr := resStr + Str; |
end; |
end |
else |
ResStr := 'Status:'+AnsiString(res); // do not localize |
if assigned(hfile) then |
InternetCloseHandle(hfile); |
end; |
// Hinzugefügt |
if Assigned(Application) then application.ProcessMessages; |
InternetCloseHandle(hsession); |
Result := resStr; |
end; |
procedure CheckForUpdates(ViaThinkSoftProjectName: string; AVersion: string); |
resourcestring |
SDownloadError = 'Ein Fehler ist aufgetreten. Wahrscheinlich ist keine Internetverbindung aufgebaut, oder der der ViaThinkSoft-Server vorübergehend offline.'; |
SNewProgramVersionAvailable = 'Eine neue Programmversion ist vorhanden. Möchten Sie diese jetzt herunterladen?'; |
SNoUpdateAvailable = 'Es ist keine neue Programmversion vorhanden.'; |
var |
cont: RawByteString; |
begin |
cont := GetHTML('https://www.viathinksoft.de/update/?id='+ViaThinkSoftProjectName); // do not localize |
if copy(cont, 0, 7) = 'Status:' then |
begin |
MessageDlg(SDownloadError, mtError, [mbOk], 0); |
end |
else |
begin |
if string(cont) <> AVersion then |
begin |
if MessageDlg(SNewProgramVersionAvailable, mtConfirmation, mbYesNoCancel, 0) = mrYes then |
shellexecute(application.handle, 'open', pchar('https://www.viathinksoft.de/update/?id=@'+ViaThinkSoftProjectName), '', '', sw_normal); // do not localize |
end |
else |
begin |
MessageDlg(SNoUpdateAvailable, mtInformation, [mbOk], 0); |
end; |
end; |
end; |
end. |
/LevEdit.dpr |
---|
1,37 → 1,43 |
program LevEdit; |
{$Description 'SpaceMission Leveleditor 1.1'} |
{%ToDo 'LevEdit.todo'} |
uses |
Windows, |
{$IF CompilerVersion >= 23.0} |
System.UITypes, |
{$IFEND } |
Forms, |
Dialogs, |
SysUtils, |
MMSystem, |
LevMain in 'LevMain.pas' {MainForm}, |
LevText in 'LevText.pas' {TextForm}, |
LevSplash in 'LevSplash.pas' {SplashForm}, |
LevSpeicherung in 'LevSpeicherung.pas' {SpeicherungForm}, |
LevInfo in 'LevInfo.pas' {InfoForm}, |
LevSource in 'LevSource.pas' {SourceForm}, |
LevOptions in 'LevOptions.pas' {LevelForm}; |
ComInfo in 'ComInfo.pas' {InfoForm}, |
LevOptions in 'LevOptions.pas' {LevelForm}, |
ComLevelReader in 'ComLevelReader.pas', |
Global in 'Global.pas', |
ComHilfe in 'ComHilfe.pas' {HilfeForm}; |
{$R *.RES} |
var |
Fehler: boolean; |
Sem: THandle; |
directory: string; |
resourcestring |
SAlreadyStarted = 'Der Editor wurde bereits gestartet.'; |
STitel = 'SpaceMission Level-Editor'; |
SFileMissing = '%s fehlt. Bitte installieren Sie SpaceMission erneut.'; |
const |
SemaphoreName = 'SpaceMission Level Editor'; |
begin |
SpaceMission_SwitchLanguage; |
{ Programm schon gestartet? } |
Sem := CreateSemaphore(nil, 0, 1, 'SpaceMission Leveleditor'); |
Sem := CreateSemaphore(nil, 0, 1, SemaphoreName); |
if (Sem <> 0) and (GetLastError = ERROR_ALREADY_EXISTS) then |
begin |
CloseHandle(Sem); |
MessageDlg('Der Editor wurde bereits gestartet.', mtInformation, [mbOK], 0); |
MessageDlg(SAlreadyStarted, mtInformation, [mbOK], 0); |
exit; |
end; |
SplashForm := TSplashForm.Create(Application); |
38,27 → 44,19 |
SplashForm.Show; |
SplashForm.Update; |
Application.Initialize; |
Application.showmainform := False; |
Application.Title := 'SpaceMission 1.1 - Leveleditor'; |
Fehler := false; |
directory := extractfilepath(paramstr(0)); |
// if not fileexists(directory+'Bilder\Auswahl.bmp') then Fehler := true; |
if not fileexists(directory+'DirectX\Graphic.dxg') then Fehler := true; |
// if not fileexists(directory+'Texte\Mitwirkende.txt') then Fehler := true; |
// if not fileexists(directory+'Dateien.doc') then Fehler := true; |
if Fehler then |
Application.ShowMainform := False; |
Application.MainFormOnTaskBar := true; |
Application.Title := STitel; |
if not fileexists(OwnDirectory+DxgFile) then |
begin |
MessageDLG('Dateien, die die Programmstabilität gewährleisten, sind ' + |
'nicht mehr vorhanden!'+#13#10+'Bitte installieren Sie SpaceMission erneut...', |
mtWarning, [mbOK], 0); |
MessageDLG(Format(SFilemissing, [DxgFile]), mtError, [mbOK], 0); |
exit; |
end; |
Application.CreateForm(TMainForm, MainForm); |
Application.CreateForm(TTextForm, TextForm); |
Application.CreateForm(TSpeicherungForm, SpeicherungForm); |
Application.CreateForm(TInfoForm, InfoForm); |
Application.CreateForm(TSourceForm, SourceForm); |
Application.CreateForm(TLevelForm, LevelForm); |
Application.CreateForm(THilfeForm, HilfeForm); |
Application.Run; |
end. |
/LevMain.pas |
---|
5,7 → 5,8 |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, MMSystem, |
Dialogs, StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, |
DXSounds, Spin, ComCtrls, PjVersionInfo; |
DXSounds, Spin, ComCtrls{$IF CompilerVersion >= 23.0}, System.UITypes, |
WinAPI.DirectDraw{$ENDIF}, DirectX, ComLevelReader, Global, IOUtils; |
type |
TMainForm = class(TDXForm) |
13,11 → 14,9 |
Spiel: TMenuItem; |
Beenden: TMenuItem; |
Hilfe: TMenuItem; |
Mitarbeiter: TMenuItem; |
Leer1: TMenuItem; |
Level: TMenuItem; |
Informationen: TMenuItem; |
Leer2: TMenuItem; |
Enemy1: TRadioButton; |
Enemy2: TRadioButton; |
Enemy3: TRadioButton; |
43,12 → 42,20 |
SLabel4a: TLabel; |
SLabel4b: TLabel; |
LivesLabel: TLabel; |
Quelltext1: TMenuItem; |
StatusBar: TStatusBar; |
N1: TMenuItem; |
Spielfelderweitern1: TMenuItem; |
LivesEdt: TEdit; |
Lives: TUpDown; |
SidePanel: TPanel; |
LivesEdit: TSpinEdit; |
AlleLeveldateienaktualisieren1: TMenuItem; |
N2: TMenuItem; |
Leveltesten1: TMenuItem; |
Hilfe1: TMenuItem; |
N3: TMenuItem; |
AufUpdatesprfen1: TMenuItem; |
N4: TMenuItem; |
WasgibtesNeues1: TMenuItem; |
Enemy8: TRadioButton; |
procedure DXDrawFinalize(Sender: TObject); |
procedure DXDrawInitialize(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
55,7 → 62,6 |
procedure DXTimerTimer(Sender: TObject; LagCount: Integer); |
procedure BeendenClick(Sender: TObject); |
procedure FormDestroy(Sender: TObject); |
procedure MitarbeiterClick(Sender: TObject); |
procedure LevelClick(Sender: TObject); |
procedure FormShow(Sender: TObject); |
procedure InformationenClick(Sender: TObject); |
63,40 → 69,40 |
procedure DXDrawMouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure EnemyClick(Sender: TObject); |
procedure EnemyAdd(x, y, art, lives: integer); |
procedure NeuClick(Sender: TObject); |
procedure DXDrawMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
procedure Quelltext1Click(Sender: TObject); |
procedure Spielfelderweitern1Click(Sender: TObject); |
procedure ScrollBarScroll(Sender: TObject; ScrollCode: TScrollCode; |
var ScrollPos: Integer); |
procedure LivesClick(Sender: TObject; Button: TUDBtnType); |
procedure LivesEdtKeyPress(Sender: TObject; var Key: Char); |
procedure LivesEdtChange(Sender: TObject); |
procedure AlleLeveldateienaktualisieren1Click(Sender: TObject); |
procedure Leveltesten1Click(Sender: TObject); |
procedure HilfeTopicClick(Sender: TObject); |
procedure AufUpdatesprfen1Click(Sender: TObject); |
private |
function GetTestlevelFilename: string; |
public |
{ VCL-Ersatz } |
spriteengine: tdxspriteengine; |
versioninfo: tpjversioninfo; |
dxtimer: tdxtimer; |
imagelist: tdximagelist; |
dxdraw: tdxdraw; |
{ Variablen } |
FDirectory: string; |
FEngineVersion: string; |
FMenuItem: integer; |
Enemys: TStrings; |
ArtChecked: integer; |
LiveEdit: integer; |
LevData: TLevelData; |
ScrollP: integer; |
AltScrollPos: integer; |
Boss: boolean; |
LevChanged: boolean; |
NumEnemys: integer; |
function SelectedEnemyType: TEnemyType; |
{ Grafik-Routinen } |
function GetSpriteGraphic(Sprite: TSpaceMissionGraphicSprite): TPictureCollectionItem; |
{ Level-Routinen } |
procedure EnemyCreate(x, y: integer); |
procedure EnemyCreateSprite(x, y: integer; AEnemyType: TEnemyType; ALives: integer); |
procedure DestroyLevel; |
procedure RefreshFromLevData; |
procedure AnzeigeAct; |
{ Initialisiations-Routinen } |
procedure DXInit; |
104,107 → 110,99 |
{ Farb-Routinen } |
function ComposeColor(Dest, Src: TRGBQuad; Percent: Integer): TRGBQuad; |
procedure PalleteAnim(Col: TRGBQuad; Time: Integer); |
{ Sonstiges } |
procedure LivesChange(newval: integer); |
end; |
var |
MainForm: TMainForm; |
const |
FCompVersion = '1.0'; |
implementation |
uses |
LevSplash, LevSpeicherung, LevText, LevInfo, LevSource, LevOptions; |
LevSplash, LevSpeicherung, ComInfo, LevOptions, ShellAPI, ComHilfe; |
const |
FileError = 'Die Datei kann von SpaceMission nicht geöffnet werden!'; |
status_info = ' Zeigen Sie mit dem Mauszeiger auf eine Einheit, um deren Eigenschaften anzuzeigen...'; |
status_lives = ' Leben: '; |
status_nolives = ' Einheit hat keine Lebensangabe'; |
RasterW = 48; |
RasterH = 32; |
{$R *.DFM} |
{$R WindowsXP.res} |
resourcestring |
status_info = 'Zeigen Sie mit dem Mauszeiger auf eine Einheit, um deren Eigenschaften anzuzeigen...'; |
type |
TBackground = class(TBackgroundSprite) |
protected |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
end; |
TEnemy = class(TImageSprite) |
private |
Lives: integer; |
Art: integer; |
XCor: integer; |
CorInit: boolean; |
protected |
TEnemyOrItem = class(TImageSprite) |
strict private |
FLives: integer; |
FEnemyType: TEnemyType; |
FXCor: integer; |
FCorInit: boolean; |
strict protected |
procedure DoMove(MoveCount: Integer); override; |
public |
constructor Create(AParent: TSprite); override; |
constructor Create(AParent: TSprite; AEnemyType: TEnemyType; ALives: Integer); reintroduce; |
end; |
procedure TMainForm.DXInit; |
{ TBackground } |
procedure TBackground.DoMove(MoveCount: Integer); |
begin |
Imagelist.Items.LoadFromFile(FDirectory+'DirectX\Graphic.dxg'); |
ImageList.Items.MakeColorTable; |
DXDraw.ColorTable := ImageList.Items.ColorTable; |
DXDraw.DefColorTable := ImageList.Items.ColorTable; |
DXDraw.UpdatePalette; |
DXDraw.Initialize; |
X := -(MainForm.ScrollP * LevEditRasterW); |
end; |
procedure TEnemy.DoMove(MoveCount: Integer); |
{ TEnemy } |
procedure TEnemyOrItem.DoMove(MoveCount: Integer); |
begin |
if not CorInit then |
if not FCorInit then |
begin |
XCor := trunc(x) + (MainForm.ScrollP * RasterW); |
CorInit := true; |
FXCor := trunc(x) + (MainForm.ScrollP * LevEditRasterW); |
FCorInit := true; |
end; |
if MainForm.Enemys.IndexOf(floattostr(XCor)+'-'+floattostr(y)+':'+ |
inttostr(Art)+'('+inttostr(Lives)+')') = -1 then dead; |
X := XCor - (MainForm.ScrollP * RasterW); |
if MainForm.LevData.IndexOfEnemy(FXCor, integer(round(Y)), FEnemyType, FLives) = -1 then dead; |
X := FXCor - (MainForm.ScrollP * LevEditRasterW); |
end; |
procedure TBackground.DoMove(MoveCount: Integer); |
constructor TEnemyOrItem.Create(AParent: TSprite; AEnemyType: TEnemyType; ALives: Integer); |
begin |
X := -(MainForm.ScrollP * RasterW); |
end; |
inherited Create(AParent); |
if AEnemyType = etEnemyAttacker then Image := MainForm.GetSpriteGraphic(smgEnemyAttacker); |
if AEnemyType = etEnemyAttacker2 then Image := MainForm.GetSpriteGraphic(smgEnemyAttacker2); |
if AEnemyType = etEnemyAttacker3 then Image := MainForm.GetSpriteGraphic(smgEnemyAttacker3); |
if AEnemyType = etEnemyMeteor then Image := MainForm.GetSpriteGraphic(smgEnemyMeteor); |
if AEnemyType = etEnemyUFO then Image := MainForm.GetSpriteGraphic(smgEnemyDisk); |
if AEnemyType = etEnemyUFO2 then Image := MainForm.GetSpriteGraphic(smgEnemyDisk2); |
if AEnemyType = etEnemyBoss then Image := MainForm.GetSpriteGraphic(smgEnemyBoss); |
if AEnemyType = etItemMedikit then Image := MainForm.GetSpriteGraphic(smgItemMedikit); |
constructor TEnemy.Create(AParent: TSprite); |
begin |
inherited Create(AParent); |
if MainForm.ArtChecked = 1 then Image := MainForm.ImageList.Items.Find('Enemy-Attacker'); |
if MainForm.ArtChecked = 2 then Image := MainForm.ImageList.Items.Find('Enemy-Attacker2'); |
if MainForm.ArtChecked = 3 then Image := MainForm.ImageList.Items.Find('Enemy-Attacker3'); |
if MainForm.ArtChecked = 4 then Image := MainForm.ImageList.Items.Find('Enemy-Meteor'); |
if MainForm.ArtChecked = 5 then Image := MainForm.ImageList.Items.Find('Enemy-Disk'); |
if MainForm.ArtChecked = 6 then Image := MainForm.ImageList.Items.Find('Enemy-Disk2'); |
if MainForm.ArtChecked = 7 then Image := MainForm.ImageList.Items.Find('Enemy-Boss'); |
if MainForm.ArtChecked = 4 then Lives := 0 else Lives := MainForm.LiveEdit; |
Art := MainForm.ArtChecked; |
if not EnemyTypeHasLives(AEnemyType) then |
FLives := 0 |
else |
FLives := ALives; |
FEnemyType := AEnemyType; |
Width := Image.Width; |
Height := Image.Height; |
PixelCheck := True; |
end; |
{ TMainForm } |
procedure TMainForm.DXInit; |
begin |
Imagelist.Items.LoadFromFile(OwnDirectory+DxgFile); |
ImageList.Items.MakeColorTable; |
DXDraw.ColorTable := ImageList.Items.ColorTable; |
DXDraw.DefColorTable := ImageList.Items.ColorTable; |
DXDraw.UpdatePalette; |
DXDraw.Initialize; |
end; |
procedure TMainForm.FormCreate(Sender: TObject); |
var |
Ergebnis: string; |
daten: textfile; |
i: integer; |
punkt: integer; |
ok: boolean; |
resourcestring |
SFileError = 'Die Datei kann von SpaceMission nicht geöffnet werden!'; |
SCaption = 'SpaceMission %s - Level-Editor'; |
begin |
{ VCL-Ersatz start } |
versioninfo := tpjversioninfo.create(self); |
dxtimer := tdxtimer.create(self); |
dxtimer.Interval := 100; |
dxtimer.ActiveOnly := false; |
215,11 → 213,12 |
dxdraw.Parent := self; |
dxdraw.Left := 0; |
dxdraw.Top := 0; |
dxdraw.Width := 640; |
dxdraw.Height := 480; |
dxdraw.Width := SidePanel.Left; |
dxdraw.Height := ScrollBar.Top; |
dxdraw.AutoInitialize := False; |
dxdraw.AutoSize := False; |
dxdraw.Color := clBlack; |
(* |
dxdraw.Display.BitCount := 24; |
dxdraw.Display.FixedBitCount := False; |
dxdraw.Display.FixedRatio := False; |
226,7 → 225,8 |
dxdraw.Display.FixedSize := False; |
dxdraw.Display.Height := 600; |
dxdraw.Display.Width := 800; |
dxdraw.Options := [doAllowReboot, doWaitVBlank, doAllowPalette256, doCenter, doRetainedMode, doHardware, doSelectDriver]; |
*) |
dxdraw.Options := [doAllowReboot, doWaitVBlank, doAllowPalette256, doCenter, {doRetainedMode,} doHardware, doSelectDriver]; |
dxdraw.OnFinalize := DXDrawFinalize; |
dxdraw.OnInitialize := DXDrawInitialize; |
dxdraw.ParentShowHint := False; |
243,57 → 243,54 |
{ VCL-Ersatz ende } |
ArtChecked := 1; |
LiveEdit := 1; |
StatusBar.SimpleText := ' ' + status_info; |
LivesEdit.MinValue := 1; |
LivesEdit.MaxValue := MaxPossibleEnemyLives; |
LivesEdit.Value := 1; |
Enemy1.Checked := true; |
EnemyClick(Enemy1); |
// Leeres Level am Anfang braucht keine Beenden-Bestätigung. |
// LevChanged := true; |
punkt := 0; |
FDirectory := extractfilepath(paramstr(0)); |
versioninfo.filename := paramstr(0); |
for i := 1 to length(versioninfo.ProductVersion) do |
begin |
if copy(versioninfo.ProductVersion, i, 1) = '.' then inc(punkt); |
if punkt < 2 then fengineversion := |
fengineversion+copy(versioninfo.ProductVersion, i, 1); |
end; |
//Application.Title := 'SpaceMission '+FEngineVersion+' - Leveleditor'; |
Caption := 'SpaceMission '+FEngineVersion+' - Leveleditor'; |
//Application.Title := Format(SCaption, [ProgramVersion]); |
Caption := Format(SCaption, [ProgramVersion]); |
DXInit; |
if (paramcount > 0) and (fileexists(paramstr(1))) then |
LevData := TLevelData.create; |
ProgramInit; |
DestroyLevel; |
if (paramcount > 0) and (fileexists(paramstr(1))) and (ExtractFileExt(paramstr(1)).ToLower = '.lev') then |
begin |
AssignFile(daten, paramstr(1)); |
Reset(daten); |
ok := true; |
ReadLN(daten, Ergebnis); |
if Ergebnis <> '; SpaceMission '+FCompVersion then ok := false; |
ReadLN(daten, Ergebnis); |
if ergebnis <> '; LEV-File' then ok := false; |
if not ok then |
try |
LevData.RasterErzwingen := true; |
LevData.LoadFromFile(paramstr(1)); |
except |
on E: Exception do |
begin |
showmessage(FileError); |
CloseFile(daten); |
ProgramInit; |
exit; |
showmessage(SFileError + ' ' +E.Message); |
DestroyLevel; |
end; |
{ Laden } |
CloseFile(daten); |
exit; |
end; |
if fileexists(fdirectory+'Bilder\Auswahl.bmp') then |
Image1.Picture.LoadFromFile(fdirectory+'Bilder\Auswahl.bmp'); |
{else |
SelPanel.visible := false;} |
ProgramInit; |
RefreshFromLevData; |
LevChanged := false; |
AnzeigeAct; |
end; |
end; |
procedure TMainForm.FormDestroy(Sender: TObject); |
var |
tmp: string; |
begin |
Enemys.Free; |
//spriteengine.Free; |
versioninfo.free; |
dxtimer.Free; |
imagelist.Free; |
dxdraw.free; |
FreeAndNil(dxdraw); |
FreeAndNil(LevData); |
//FreeAndNil(spriteengine); |
FreeAndNil(dxtimer); |
FreeAndNil(imagelist); |
tmp := GetTestlevelFilename; |
// SpaceMission.exe only loads a file once, so we can delete any test level |
if FileExists(tmp) then DeleteFile(GetTestlevelFilename); |
end; |
procedure TMainForm.BeendenClick(Sender: TObject); |
303,12 → 300,12 |
procedure TMainForm.DXDrawInitialize(Sender: TObject); |
begin |
DXTimer.Enabled := True; |
if Assigned(DXTimer) then DXTimer.Enabled := True; |
end; |
procedure TMainForm.DXDrawFinalize(Sender: TObject); |
begin |
DXTimer.Enabled := False; |
if Assigned(DXTimer) then DXTimer.Enabled := False; |
end; |
procedure TMainForm.DXTimerTimer(Sender: TObject; LagCount: Integer); |
376,13 → 373,12 |
{var |
i, j: Integer;} |
begin |
Enemys := TStringList.create; |
sleep(500); |
//PlayerSprite |
with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(1, 1); |
Image := mainform.ImageList.Items.Find('Star3'); |
Image := MainForm.GetSpriteGraphic(smgStar3); |
Z := -13; |
Y := 40; |
Tile := True; |
390,7 → 386,7 |
with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(1, 1); |
Image := mainform.ImageList.Items.Find('Star2'); |
Image := MainForm.GetSpriteGraphic(smgStar2); |
Z := -12; |
Y := 30; |
Tile := True; |
398,7 → 394,7 |
with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(1, 1); |
Image := mainform.ImageList.Items.Find('Star1'); |
Image := MainForm.GetSpriteGraphic(smgStar1); |
Z := -11; |
Y := 10; |
Tile := True; |
406,7 → 402,7 |
with TBackground.Create(SpriteEngine.Engine) do |
begin |
SetMapSize(1, 1); |
Image := mainform.ImageList.Items.Find('Matrix'); |
Image := MainForm.GetSpriteGraphic(smgMatrix); |
Z := -10; |
Tile := True; |
end; |
462,18 → 458,23 |
mainform.Visible := true; |
end; |
procedure TMainForm.MitarbeiterClick(Sender: TObject); |
procedure TMainForm.RefreshFromLevData; |
var |
i: integer; |
begin |
if not fileexists(mainform.fdirectory+'Texte\Mitwirkende.txt') then |
MainForm.ScrollBar.Max := MainForm.LevData.LevelEditorLength; |
for i := 0 to MainForm.LevData.CountEnemies - 1 do |
begin |
MessageDLG('Die Datei "Texte\Mitwirkende.txt" ist nicht mehr vorhanden. Die Aktion wird abgebrochen!', |
mtWarning, [mbOK], 0); |
end |
else |
begin |
TextForm.memo1.lines.loadfromfile(mainform.FDirectory+'Texte\Mitwirkende.txt'); |
TextForm.showmodal; |
MainForm.EnemyCreateSprite( |
MainForm.LevData.EnemyAdventTable[i].x, |
MainForm.LevData.EnemyAdventTable[i].y, |
MainForm.LevData.EnemyAdventTable[i].enemyType, |
MainForm.LevData.EnemyAdventTable[i].lifes |
); |
end; |
MainForm.NumEnemys := MainForm.LevData.CountEnemies; |
MainForm.Boss := MainForm.LevData.HasBoss; |
AnzeigeAct; |
end; |
procedure TMainForm.LevelClick(Sender: TObject); |
481,18 → 482,82 |
speicherungform.showmodal; |
end; |
procedure TMainForm.Leveltesten1Click(Sender: TObject); |
var |
sav: TSaveData; |
tmp: string; |
begin |
KillTask(SpaceMissionExe); |
sav := TSaveData.Create; |
try |
sav.Score := 0; |
sav.Life := 6; |
if Assigned(SpeicherungForm) then |
sav.Level := SpeicherungForm.LevelNumber.Value |
else |
sav.Level := 1; |
sav.GameMode := gmLevels; |
sav.LevelData := TlevelData.Create; |
sav.LevelData.Assign(LevData); |
tmp := GetTestlevelFilename; |
sav.SaveToFile(tmp); |
ShellExecute(Handle, 'open', PChar(OwnDirectory+SpaceMissionExe), PChar('"'+tmp+'"'), PChar(OwnDirectory), SW_NORMAL); // do not localize |
finally |
FreeAndNil(sav); |
end; |
end; |
procedure TMainForm.FormShow(Sender: TObject); |
begin |
if Assigned(SplashForm) then |
begin |
SplashForm.Hide; |
SplashForm.Free; |
FreeAndNil(SplashForm); |
end; |
dxtimer.Enabled := true; |
dxtimer.ActiveOnly := true; |
end; |
function TMainForm.GetSpriteGraphic( |
Sprite: TSpaceMissionGraphicSprite): TPictureCollectionItem; |
begin |
if (Sprite<>smgNone) and (imagelist.Items.Count >= Ord(Sprite)) then |
result := imagelist.Items.Items[Ord(Sprite)-1] |
else |
result := nil; |
end; |
function TMainForm.GetTestlevelFilename: string; |
begin |
result := IncludeTrailingPathDelimiter(TPath.GetTempPath) + 'SpaceMissionTest.sav'; // do not localize |
end; |
procedure TMainForm.HilfeTopicClick(Sender: TObject); |
// Please keep this code in-sync with GamMain.pas |
var |
bakTimerEnabled: boolean; |
begin |
bakTimerEnabled := dxtimer.Enabled; |
try |
dxtimer.Enabled := false; |
HilfeForm.Caption := TMenuItem(Sender).Caption; |
HilfeForm.Caption := StringReplace(HilfeForm.Caption, '&&', #1, [rfReplaceAll]); |
HilfeForm.Caption := StringReplace(HilfeForm.Caption, '&', '', [rfReplaceAll]); |
HilfeForm.Caption := StringReplace(HilfeForm.Caption, #1, '&', [rfReplaceAll]); |
HilfeForm.ShowMarkDownHelp(OwnDirectory+TMenuItem(Sender).Hint); |
HilfeForm.ShowModal; |
finally |
dxtimer.Enabled := bakTimerEnabled; |
end; |
end; |
procedure TMainForm.InformationenClick(Sender: TObject); |
begin |
mainform.dxtimer.enabled := false; |
InfoForm.showmodal; |
mainform.dxtimer.enabled := true; |
end; |
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); |
504,31 → 569,33 |
procedure TMainForm.DXDrawMouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
var |
i, j, k, l, ex, ey: integer; |
i: TEnemyType; |
j, k, l, ex, ey: integer; |
ok, breaked: boolean; |
begin |
ex := trunc(x/RasterW) * RasterW; |
ey := trunc(y/RasterH) * RasterH; |
EnemyCreate(ex, ey); |
ex := trunc(x/LevEditRasterW) * LevEditRasterW; |
ey := trunc(y/LevEditRasterH) * LevEditRasterH; |
EnemyCreateSprite(ex, ey, SelectedEnemyType, LivesEdit.Value); |
breaked := false; |
{ Setzen } |
if Button = mbLeft then |
begin |
ok := true; |
if (ArtChecked = 7) and boss then ok := false |
if (SelectedEnemyType = etEnemyBoss) and boss then |
ok := false // boss already exists |
else |
begin |
for i := 1 to 7 do |
for i := Low(TEnemyType) to High(TEnemyType) do |
begin |
for j := 0 to 999 do |
for j := 0 to MaxPossibleEnemyLives do |
begin |
if boss then |
begin |
for k := 0 to 3 do |
for k := 0 to BossWidth-1 do |
begin |
for l := 0 to 1 do |
for l := 0 to BossHeight-2 do |
begin |
if Enemys.IndexOf(floattostr(ex + ((ScrollP - k) * RasterW))+'-'+floattostr(ey - (RasterH * l))+':7('+inttostr(j)+')') <> -1 then |
if LevData.IndexOfEnemy(ex + ((ScrollP - k) * LevEditRasterW), ey - (LevEditRasterH * l), etEnemyBoss, j) <> -1 then |
begin |
ok := false; |
break; |
538,8 → 605,7 |
end; |
if not ok then break; |
end; |
if Enemys.IndexOf(floattostr(ex + (ScrollP * RasterW))+'-'+floattostr(ey)+':'+ |
inttostr(i)+'('+inttostr(j)+')') <> -1 then |
if LevData.IndexOfEnemy(ex + (ScrollP * LevEditRasterW), ey, i, j) <> -1 then |
begin |
ok := false; |
break; |
550,14 → 616,12 |
end; |
if ok then |
begin |
if ArtChecked <> 4 then |
Enemys.Add(floattostr(ex + (ScrollP * RasterW))+'-'+floattostr(ey)+':'+ |
inttostr(ArtChecked)+'('+inttostr(LiveEdit)+')') |
if EnemyTypeHasLives(SelectedEnemyType) then |
LevData.AddEnemy(ex + (ScrollP * LevEditRasterW), ey, SelectedEnemyType, LivesEdit.Value) |
else |
Enemys.Add(floattostr(ex + (ScrollP * RasterW))+'-'+floattostr(ey)+':'+ |
inttostr(ArtChecked)+'(0)'); |
LevData.AddEnemy(ex + (ScrollP * LevEditRasterW), ey, SelectedEnemyType, 0); |
inc(NumEnemys); |
if ArtChecked = 7 then boss := true; |
if SelectedEnemyType = etEnemyBoss then boss := true; |
end |
else beep; |
end |
564,19 → 628,19 |
{ Löschen } |
else if Button = mbRight then |
begin |
for i := 1 to 7 do |
for i := Low(TEnemyType) to High(TEnemyType) do |
begin |
for j := 0 to 999 do |
for j := 0 to MaxPossibleEnemyLives do |
begin |
if boss and (i = 7) then |
if boss and (i = etEnemyBoss) then |
begin |
for k := 0 to 3 do |
for k := 0 to BossWidth - 1 do |
begin |
for l := 0 to 1 do |
for l := 0 to BossHeight - 1 do |
begin |
if Enemys.IndexOf(floattostr(ex + ((ScrollP - k) * RasterW))+'-'+floattostr(ey - (RasterH * l))+':'+inttostr(i)+'('+inttostr(j)+')') <> -1 then |
if LevData.IndexOfEnemy(ex + ((ScrollP - k) * LevEditRasterW), ey - (LevEditRasterH * l), i, j) <> -1 then |
begin |
Enemys.Delete(Enemys.IndexOf(floattostr(ex + ((ScrollP - k) * RasterW))+'-'+floattostr(ey - (RasterH * l))+':'+inttostr(i)+'('+inttostr(j)+')')); |
LevData.DeleteEnemy(ex + ((ScrollP - k) * LevEditRasterW), ey - (LevEditRasterH * l), i, j); |
Boss := false; |
dec(NumEnemys); |
breaked := true; |
586,12 → 650,10 |
if breaked then break; |
end; |
end; |
if Enemys.IndexOf(floattostr(ex + (ScrollP * RasterW))+'-'+floattostr(ey)+':'+ |
inttostr(i)+'('+inttostr(j)+')') <> -1 then |
if LevData.IndexOfEnemy(ex + (ScrollP * LevEditRasterW), ey, i, j) <> -1 then |
begin |
Enemys.Delete(Enemys.IndexOf(floattostr(ex + (ScrollP * RasterW))+'-'+floattostr(ey)+ |
':'+inttostr(i)+'('+inttostr(j)+')')); |
if i = 7 then Boss := false; |
LevData.DeleteEnemy(ex + (ScrollP * LevEditRasterW), ey, i, j); |
if i = etEnemyBoss then Boss := false; |
dec(NumEnemys); |
breaked := true; |
break; |
605,26 → 667,20 |
end; |
procedure TMainForm.EnemyClick(Sender: TObject); |
var |
et: TEnemyType; |
begin |
if sender = Enemy1 then ArtChecked := 1; |
if sender = Enemy2 then ArtChecked := 2; |
if sender = Enemy3 then ArtChecked := 3; |
if sender = Enemy4 then ArtChecked := 4; |
if sender = Enemy5 then ArtChecked := 5; |
if sender = Enemy6 then ArtChecked := 6; |
if sender = Enemy7 then ArtChecked := 7; |
Image1.Left := -(87 * (ArtChecked - 1)) + 1; |
Lives.Enabled := sender <> Enemy4; |
LivesLabel.Enabled := sender <> Enemy4; |
if sender = Enemy4 then LivesEdt.Font.Color := clBtnShadow // andere farbe? |
else LivesEdt.Font.Color := clWindowText; |
et := SelectedEnemyType; |
Image1.Left := -(87 * (Ord(et) - 1)) + 1; |
LivesEdit.Enabled := EnemyTypeHasLives(et); |
LivesLabel.Enabled := EnemyTypeHasLives(et); |
end; |
procedure TMainForm.EnemyCreate(x, y: integer); |
procedure TMainForm.EnemyCreateSprite(x, y: integer; AEnemyType: TEnemyType; ALives: integer); |
var |
Enemy: TSprite; |
begin |
Enemy := TEnemy.Create(SpriteEngine.Engine); |
Enemy := TEnemyOrItem.Create(SpriteEngine.Engine, AEnemyType, ALives); |
Enemy.x := x; |
Enemy.y := y; |
end; |
631,76 → 687,107 |
procedure TMainForm.DestroyLevel; |
begin |
ScrollBar.Position := 0; |
Enemys.Clear; |
ScrollBar.Position := 0; // this doesn't call ScrollBarScroll() |
ScrollP := 0; |
LevData.Clear; |
ScrollBar.Max := LevData.LevelEditorLength; |
NumEnemys := 0; |
Boss := false; |
LevChanged := true; |
Lives.Position := 1; |
LivesChange(Lives.Position); |
LivesEdit.Value := 1; |
Enemy1.Checked := true; |
EnemyClick(Enemy1); |
AnzeigeAct; |
end; |
procedure TMainForm.AlleLeveldateienaktualisieren1Click(Sender: TObject); |
var |
i: integer; |
begin |
// Just for internal/development purposes |
for i := 1 to MaxPossibleLevels do |
begin |
if FileExists('Levels\Level '+IntToStr(i)+'.lev') then |
begin |
LevData.RasterErzwingen := true; |
LevData.LoadFromFile('Levels\Level '+IntToStr(i)+'.lev'); |
LevData.SaveToFile('Levels\Level '+IntToStr(i)+'.lev'); |
end; |
end; |
end; |
procedure TMainForm.AnzeigeAct; |
resourcestring |
SYes = 'Ja'; |
SNo = 'Nein'; |
begin |
SLabel1b.Caption := inttostr(NumEnemys); |
if Boss then SLabel2b.Caption := 'Ja' else SLabel2b.Caption := 'Nein'; |
if Boss then SLabel2b.Caption := SYes else SLabel2b.Caption := SNo; |
SLabel3b.Caption := inttostr(ScrollBar.Max); |
if LevChanged then |
begin |
SLabel4a.Font.Color := $00000096; |
SLabel4b.Font.Color := $00000096; |
SLabel4b.Caption := 'Nein'; |
SLabel4b.Caption := SNo; |
end |
else |
begin |
SLabel4a.Font.Color := $00009600; |
SLabel4b.Font.Color := $00009600; |
SLabel4b.Caption := 'Ja'; |
SLabel4b.Caption := SYes; |
end; |
end; |
procedure TMainForm.EnemyAdd(x, y, art, lives: integer); |
procedure TMainForm.AufUpdatesprfen1Click(Sender: TObject); |
begin |
Enemys.Add(inttostr(x)+'-'+inttostr(y)+':'+inttostr(art)+'('+inttostr(lives)+')'); |
CheckForUpdates('spacemission', ProgramVersion); // do not localize |
end; |
procedure TMainForm.NeuClick(Sender: TObject); |
resourcestring |
SReallyDeleteLevel = 'Level wirklich löschen?'; |
begin |
if MessageDlg('Level wirklich löschen?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then |
if MessageDlg(SReallyDeleteLevel, mtConfirmation, mbYesNoCancel, 0) = mrYes then |
DestroyLevel; |
end; |
procedure TMainForm.DXDrawMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
resourcestring |
status_lives = 'Leben: '; |
status_nolives = 'Einheit hat keine Lebensangabe'; |
SUnknownEnemyType = '???'; |
var |
ex, ey, i, j, k, l, wert: integer; |
i: TEnemyType; |
ex, ey, j, k, l: integer; |
lifes: integer; |
enemyType: TEnemyType; |
enemyName: string; |
breaked: boolean; |
begin |
if sender <> DxDraw then |
begin |
StatusBar.SimpleText := status_info; |
StatusBar.SimpleText := ' ' + status_info; |
exit; |
end; |
ex := trunc(x/RasterW) * RasterW; |
ey := trunc(y/RasterH) * RasterH; |
wert := -1; |
ex := trunc(x/LevEditRasterW) * LevEditRasterW; |
ey := trunc(y/LevEditRasterH) * LevEditRasterH; |
lifes := -1; |
enemyType := etUnknown; |
breaked := false; |
for i := 1 to 7 do |
for i := Low(TEnemyType) to High(TEnemyType) do |
begin |
for j := 0 to 999 do |
for j := 0 to MaxPossibleEnemyLives do |
begin |
if boss and (i = 7) then |
if boss and (i = etEnemyBoss) then |
begin |
for k := 0 to 3 do |
for k := 0 to BossWidth - 1 do |
begin |
for l := 0 to 1 do |
for l := 0 to BossHeight - 1 do |
begin |
if Enemys.IndexOf(floattostr(ex + ((ScrollP - k) * RasterW))+'-'+floattostr(ey - (RasterH * l))+':'+inttostr(i)+'('+inttostr(j)+')') <> -1 then |
if LevData.IndexOfEnemy(ex + ((ScrollP - k) * LevEditRasterW), ey - (LevEditRasterH * l), i, j) <> -1 then |
begin |
wert := j; |
lifes := j; |
breaked := true; |
break; |
end; |
708,10 → 795,10 |
if breaked then break; |
end; |
end; |
if (breaked = false) and (Enemys.IndexOf(floattostr(ex + (ScrollP * RasterW))+'-'+floattostr(ey)+':'+ |
inttostr(i)+'('+inttostr(j)+')') <> -1) then |
if (breaked = false) and (LevData.IndexOfEnemy(ex + (ScrollP * LevEditRasterW), ey, i, j) <> -1) then |
begin |
wert := j; |
lifes := j; |
enemyType := i; |
breaked := true; |
break; |
end; |
718,29 → 805,34 |
end; |
if breaked then break; |
end; |
if wert <> -1 then |
if lifes <> -1 then |
begin |
if wert > 0 then |
StatusBar.SimpleText := status_lives + inttostr(wert) |
if Ord(enemyType) = 1 then enemyName := Enemy1.Caption |
else if Ord(enemyType) = 2 then enemyName := Enemy2.Caption |
else if Ord(enemyType) = 3 then enemyName := Enemy3.Caption |
else if Ord(enemyType) = 4 then enemyName := Enemy4.Caption |
else if Ord(enemyType) = 5 then enemyName := Enemy5.Caption |
else if Ord(enemyType) = 6 then enemyName := Enemy6.Caption |
else if Ord(enemyType) = 7 then enemyName := Enemy7.Caption |
else if Ord(enemyType) = 8 then enemyName := Enemy8.Caption |
else enemyName := SUnknownEnemyType; |
if lifes > 0 then |
StatusBar.SimpleText := ' ' + enemyName + ' - ' + status_lives + inttostr(lifes) |
else |
StatusBar.SimpleText := status_nolives; |
StatusBar.SimpleText := ' ' + enemyName + ' - ' + status_nolives; |
end |
else |
StatusBar.SimpleText := status_info; |
StatusBar.SimpleText := ' ' + status_info; |
end; |
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
resourcestring |
SExitWithoutSave = 'Beenden ohne abspeichern?'; |
begin |
if LevChanged then |
CanClose := MessageDlg('Beenden ohne abspeichern?', mtConfirmation, [mbYes, mbNo], 0) = mrYes; |
if Assigned(LevData) and LevChanged and (LevData.CountEnemies>0) then |
CanClose := MessageDlg(SExitWithoutSave, mtConfirmation, mbYesNoCancel, 0) = mrYes; |
end; |
procedure TMainForm.Quelltext1Click(Sender: TObject); |
begin |
SourceForm.Aktualisieren; |
SourceForm.showmodal; |
end; |
procedure TMainForm.Spielfelderweitern1Click(Sender: TObject); |
begin |
LevelForm.Aktualisieren; |
753,28 → 845,18 |
ScrollP := ScrollPos; |
end; |
procedure TMainForm.LivesChange(newval: integer); |
function TMainForm.SelectedEnemyType: TEnemyType; |
begin |
LiveEdit := newval; |
livesedt.Text := inttostr(LiveEdit); |
lives.Position := newval; |
if Enemy1.Checked then result := etEnemyAttacker |
else if Enemy2.Checked then result := etEnemyAttacker2 |
else if Enemy3.Checked then result := etEnemyAttacker3 |
else if Enemy4.Checked then result := etEnemyMeteor |
else if Enemy5.Checked then result := etEnemyUFO |
else if Enemy6.Checked then result := etEnemyUFO2 |
else if Enemy7.Checked then result := etEnemyBoss |
else if Enemy8.Checked then result := etItemMedikit |
else result := etUnknown; |
end; |
procedure TMainForm.LivesClick(Sender: TObject; Button: TUDBtnType); |
begin |
LivesChange(lives.Position); |
end; |
procedure TMainForm.LivesEdtKeyPress(Sender: TObject; var Key: Char); |
begin |
if not (Key in [#13, #08, '0'..'9']) then |
Key := #0; |
end; |
procedure TMainForm.LivesEdtChange(Sender: TObject); |
begin |
LivesChange(strtoint(livesedt.text)); |
end; |
end. |
/SpaceMission.dpr |
---|
1,34 → 1,43 |
program SpaceMission; |
{$Description 'SpaceMission 1.1'} |
uses |
Windows, |
{$IF CompilerVersion >= 23.0} |
System.UITypes, |
{$IFEND } |
Forms, |
Dialogs, |
SysUtils, |
MMSystem, |
SplMain in 'SplMain.pas' {MainForm}, |
SplText in 'SplText.pas' {TextForm}, |
SplSplash in 'SplSplash.pas' {SplashForm}, |
SplSpeicherung in 'SplSpeicherung.pas' {SpeicherungForm}, |
SplInfo in 'SplInfo.pas' {InfoForm}, |
SplCheat in 'SplCheat.pas' {CheatForm}; |
GamMain in 'GamMain.pas' {MainForm}, |
GamSplash in 'GamSplash.pas' {SplashForm}, |
GamSpeicherung in 'GamSpeicherung.pas' {SpeicherungForm}, |
ComInfo in 'ComInfo.pas' {InfoForm}, |
GamCheat in 'GamCheat.pas' {CheatForm}, |
ComLevelReader in 'ComLevelReader.pas', |
Global in 'Global.pas', |
ComHilfe in 'ComHilfe.pas' {HilfeForm}; |
{$R *.RES} |
var |
Fehler: boolean; |
Sem: THandle; |
directory: string; |
resourcestring |
SAlreadyStarted = 'Das Spiel wurde bereits gestartet.'; |
STitel = 'SpaceMission'; |
SFileMissing = '%s fehlt. Bitte installieren Sie SpaceMission erneut.'; |
const |
SemaphoreName = 'SpaceMission'; |
begin |
SpaceMission_SwitchLanguage; |
{ Programm schon gestartet? } |
Sem := CreateSemaphore(nil, 0, 1, 'SpaceMission'); |
Sem := CreateSemaphore(nil, 0, 1, SemaphoreName); |
if (Sem <> 0) and (GetLastError = ERROR_ALREADY_EXISTS) then |
begin |
CloseHandle(Sem); |
MessageDlg('Das Spiel wurde bereits gestartet.', mtInformation, [mbOK], 0); |
MessageDlg(SAlreadyStarted, mtInformation, [mbOK], 0); |
exit; |
end; |
SplashForm := TSplashForm.Create(Application); |
35,38 → 44,19 |
SplashForm.Show; |
SplashForm.Update; |
Application.Initialize; |
Application.showmainform := False; |
Application.Title := 'SpaceMission'; |
{ Dateien vorhanden? } |
Fehler := false; |
directory := extractfilepath(paramstr(0)); |
if not fileexists(directory+'Bilder\Delphi.bmp') then Fehler := true; |
if not fileexists(directory+'Bilder\SplSplash.jpg') then Fehler := true; |
if not fileexists(directory+'DirectX\Graphic.dxg') then Fehler := true; |
if not fileexists(directory+'DirectX\Sound.dxw') then Fehler := true; |
if not fileexists(directory+'Musik\Boss.mid') then Fehler := true; |
if not fileexists(directory+'Musik\Game.mid') then Fehler := true; |
if not fileexists(directory+'Musik\Scene.mid') then Fehler := true; |
if not fileexists(directory+'Musik\Title.mid') then Fehler := true; |
//if not fileexists(directory+'Texte\Mitwirkende.txt') then Fehler := true; |
if Fehler then |
Application.ShowMainform := False; |
Application.MainFormOnTaskBar := true; |
Application.Title := STitel; |
if not fileexists(OwnDirectory+DxgFile) then |
begin |
MessageDLG('Dateien, die die Programmstabilität gewährleisten, sind ' + |
'nicht mehr vorhanden!'+#13#10+'Bitte installieren Sie SpaceMission erneut...', |
mtWarning, [mbOK], 0); |
MessageDLG(Format(SFileMissing, [DxgFile]), mtError, [mbOK], 0); |
exit; |
end; |
{ Keine Soundkarte?! } |
if WaveOutGetNumDevs < 1 then |
MessageDlg('Es wurde keine Soundkarte gefunden!' + #13#10 + |
'Entweder ist keine Soundkarte angeschlossen oder sie ist nicht ' + |
'ordnungsgemäß installiert.' + #13#10 + 'Es können daher keine Musik und ' + |
'keine Geräusche abgespielt werden.', mtError, [mbOK], 0); |
Application.CreateForm(TMainForm, MainForm); |
Application.CreateForm(TTextForm, TextForm); |
Application.CreateForm(TSpeicherungForm, SpeicherungForm); |
Application.CreateForm(TInfoForm, InfoForm); |
Application.CreateForm(TCheatForm, CheatForm); |
Application.CreateForm(THilfeForm, HilfeForm); |
Application.Run; |
end. |
/SpaceMission.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/.gitignore |
---|
0,0 → 1,36 |
# https://github.com/github/gitignore/blob/main/Delphi.gitignore |
# Delphi compiler-generated binaries (safe to delete) |
*.bpl |
*.bpi |
*.dcp |
*.drc |
*.map |
*.dres |
*.rsm |
*.tds |
*.dcu |
*.lib |
# Delphi autogenerated files (duplicated info) |
*.cfg |
*.hpp |
*Resource.rc |
# Delphi local files (user-specific info) |
*.local |
*.identcache |
*.projdata |
*.tvsconfig |
*.dsk |
# Delphi history and backups |
__history/ |
__recovery/ |
*.~* |
# Castalia statistics file (since XE7 Castalia is distributed with Delphi) |
*.stat |
# English binary |
.ENU |
/ComInfo.dfm |
---|
0,0 → 1,190 |
object InfoForm: TInfoForm |
Left = 289 |
Top = 184 |
BorderStyle = bsDialog |
Caption = 'Informationen' |
ClientHeight = 343 |
ClientWidth = 384 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poMainFormCenter |
OnCreate = FormCreate |
DesignSize = ( |
384 |
343) |
TextHeight = 13 |
object HomeLbl: TLabel |
Left = 32 |
Top = 136 |
Width = 48 |
Height = 13 |
Caption = 'Webseite:' |
Transparent = True |
end |
object Image: TImage |
Left = 8 |
Top = 8 |
Width = 65 |
Height = 57 |
Center = True |
Picture.Data = { |
07544269746D617076020000424D760200000000000076000000280000002000 |
0000200000000100040000000000000200000000000000000000100000000000 |
000000000000000080000080000000808000800000008000800080800000C0C0 |
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF |
FF00000000000000000000000000000000000EE8787878EEEEEEE03F30878EEE |
EEE00EE8787878EEEEEEE03F30878EEEEEE00EE8787878EEEEEEE03F30878EEE |
EEE00EE8787878EEEEEEE03F30878EEEEEE00887787877788888803F3088787E |
EEE00788787878878887803F3088887EEEE00788887888878887803F3088887E |
EEE00877888887788888703F308887EEEEE00888777778888888037883088888 |
8EE007777777777777703787883087777EE00888888888888803787378830888 |
8880088888888888803787378788308888800777777777880378737373788308 |
88E00888888888803787373737378830EEE00887777778800001111111111100 |
EEE00888888888888899B999B99999EEEEE00888888888888899B9B99BB9B9EE |
EEE0088888888888899BB9BB99BB99EEEEE0078888888888899B999B999999EE |
EEE0087788888778899B9B9BB9BB99EEEEE00888778778888E9B9B9BB9999EEE |
EEE0088888788888EE9B99B9BB9BEEEEEEE00EE8888888EEEEE999B9999EEEEE |
EEE00EEEE888EEEEEEEE99BB999EEEEEEEE00EEEEE8EEEEEEEEEE999B9EEEEEE |
EEE00EEEEE8EEEEEEEEEEEE999EEEEEEEEE00EEEEE8EEEEEEEEEEEEE99EEEEEE |
EEE00EEEEE8EEEEEEEEEEEEE9EEEEEEEEEE00EEEEE8EEEEEEEEEEEEEEEEEEEEE |
EEE00EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000 |
0000} |
Stretch = True |
end |
object FirmaLbl: TLabel |
Left = 88 |
Top = 8 |
Width = 74 |
Height = 13 |
Caption = 'ViaThinkSoft' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsBold] |
ParentFont = False |
Transparent = True |
end |
object NameLbl: TLabel |
Left = 104 |
Top = 24 |
Width = 66 |
Height = 13 |
Caption = 'SpaceMission' |
Transparent = True |
end |
object VersionLbl: TLabel |
Left = 232 |
Top = 24 |
Width = 35 |
Height = 13 |
Caption = 'Version' |
Transparent = True |
end |
object EMailLbl: TLabel |
Left = 32 |
Top = 120 |
Width = 32 |
Height = 13 |
Caption = 'E-Mail:' |
Transparent = True |
end |
object CopyrightLbl: TLabel |
Left = 8 |
Top = 80 |
Width = 264 |
Height = 13 |
Caption = #169' Copyright 2001 - 2024 Daniel Marschall, ViaThinkSoft' |
Transparent = True |
end |
object Copyright2Lbl: TLabel |
Left = 8 |
Top = 96 |
Width = 117 |
Height = 13 |
Caption = 'Alle Rechte vorbehalten!' |
Transparent = True |
end |
object URL2: TLabel |
Left = 152 |
Top = 136 |
Width = 117 |
Height = 13 |
Cursor = crHandPoint |
Caption = 'www.daniel-marschall.de' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlue |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
Transparent = True |
OnClick = WebsiteClick |
end |
object URL1: TLabel |
Left = 152 |
Top = 120 |
Width = 118 |
Height = 13 |
Cursor = crHandPoint |
Caption = 'info@daniel-marschall.de' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlue |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
Transparent = True |
OnClick = EMailClick |
end |
object OkBtn: TButton |
Left = 273 |
Top = 310 |
Width = 107 |
Height = 25 |
Anchors = [akRight, akBottom] |
Cancel = True |
Caption = 'OK' |
Default = True |
TabOrder = 0 |
OnClick = OkBtnClick |
end |
object MemoMitwirkende: TMemo |
Left = 8 |
Top = 168 |
Width = 372 |
Height = 128 |
Anchors = [akLeft, akTop, akRight, akBottom] |
Lines.Strings = ( |
'SpaceMission wurde von Daniel Marschall auf Basis eines Codebeis' + |
'piels ' |
'von Hiroyuki Hori f'#252'r DelphiX 2000 entwickelt.' |
'' |
'Entwickelt mit Embarcadero Delphi.' |
'Setup erstellt mit InnoSetup.' |
'Sicherheitszertifikat von HickelSOFT Huth GmbH.' |
'' |
'Verwendete Komponenten: (un)DelphiX' |
'Quellcode: http://www.micrel.cz/Dx/' |
'(C) Copyright 1996-2000 by Hiroyuki Hori' |
'(C) Copyright 2004-2023 by Jaro Benes.' |
'' |
'sowie Delphi MarkDown' |
'Quellcode: https://github.com/grahamegrieve/delphi-markdown' |
'(c) 2011+, Health Intersections Pty Ltd' |
'Apache 2.0 Lizenz' |
'' |
'Musik von Savage Peachers Software.' |
'Sound- und Grafikquellen unbekannt.' |
'Levels von Daniel Marschall, Patrick B'#252'ssecker und Andreas ' |
'K'#252'belsbeck.') |
ReadOnly = True |
ScrollBars = ssVertical |
TabOrder = 1 |
end |
end |
/GamMain.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/Help/DE_Changelog.md |
---|
0,0 → 1,74 |
# Changelog |
SpaceMission 1.2.2: |
- BUGFIX: Items können nun auch eingesammelt werden, wenn man einen infinite lives Cheat aktiviert hat |
- BUGFIX: Fehlerkorrektur bei der Anzeige der restlichen Einheiten bei Missionsende |
- Übersetzung des Spiels von Deutsch nach Englisch. |
SpaceMission 1.2.1: |
- Neue Einheit: Medikit Item |
- Zufallslevel: |
- Alle 250 Einheiten erhält man ein Medikit |
- Ab Level 25 steigt die Anzahl an auftretenden stärkeren Gegnertypen |
- BUGFIX: Nach dem der Boss besiegt wurde, war die angezeigte Gegner-Anzeige eins zu wenig oder ist verschwunden |
- BUGFIX: Leveleditor Speicherndialog Frage "Level ersetzen?" Abfrage kommt nun wieder, wenn man ein Selbsterstelltes Level überschreiben möchte |
- BUGFIX: Die Geschwindigkeitseinstellung im Menü wurde falsch angezeigt, wenn das Spiel gestartet wurde |
- BUGFIX: Zufallslevel: Manche Einheiten sind nicht aufgetaucht, da sie zu weit unten generiert wurden. Korrigiert. |
- Mit einer Registry-Änderung kann die Geschwindigkeit nun beliebig eingestellt werden. Registry Schlüssel "Computer\HKEY_CURRENT_USER\Software\ViaThinkSoft\SpaceMission\Settings", Schalter "GameSpeed". Standardwerte: Leicht 10, Mittel 16, Schwer 22, Meister 33. |
SpaceMission 1.2: |
- Inhaltliche Änderungen am Spiel: |
- Boss besiegen gibt nun 10.000 Punkte anstelle 1.000 |
- "Neu starten" Menüpunkt startet nun das Level neu mit den bei Levelstart vorhandenen Punkten und Leben, anstelle von ganz vorne neu zu beginnen |
- Anzeige Restliche Einheiten ist nun Einzeige Einheiten gesamt, d.h. auch die, die auf dem Bildschirm sind (außer Boss) |
- Man kann nun nicht mehr "Game over" gehen. Das Level startet neu, wenn man gestorben ist. |
- Aus technischen Gründen ist es nicht mehr möglich zu speichern, wenn die Anzeige "Level ..., Weiter mit Leertaste" kommt. Man kann jedoch das Level starten und sofort dann mit F4 speichern. |
- Zufallslevel: |
- Ab sofort 1 Einheit weniger pro Level |
- Ab sofort Level 1-4 ohne Boss, Level 5-9 mit Boss am Ende, und ab Level 10 Boss in der Mitte vom Level |
- Bei höheren Levels ist die Lebensenergie von Gegnern nun auf 10 gedeckelt |
- Attackierer 2 kommt nun häufiger vor |
- Zufallslevel größer als Level 25 ist nun möglich. |
- Änderungen am Level Editor: |
- "Quelltext" Fenster entfernt |
- Gegner-Typ-Name steht nun in der Statusleiste unten |
- Der Leveleditor hat nun eine "Level testen" Funktion |
- Technische Änderungen: |
- Es wird nun DirectMusic anstelle MCI zum Abspielen von Musik verwendet. Der Klang ist besser und es gibt weniger Lags. |
- Fenster sind nun in Bildschirm-Mitte und nicht mehr Desktop-Mitte (das macht einen Unterschied bei Multi-Monitor-Systemen). |
- DPlayX.dll wird nicht länger geladen, sodass Windows 11 keine Warnung zeigt, dass DirectPlay nicht installiert ist |
- Spielstände und eigene Levels werden in den Ordner "Gespeicherte Spiele" gesichert (anstelle in den mittlerweile geschützten Programmdateien-Ordner) |
- Einstellungen werden in die Windows Registry gesichert anstelle in eine INI-Datei |
- Quellcode stark verbessert und "redactored" |
- Neue LEV und SAV Dateiformate. |
- LEV und SAV Dateien teilen sich das gleiche Format. |
- Es gibt keinen Zwang mehr, die Gegner nach X-Koordinaten zu sortieren. |
- Jeder Gegner wird in einer einzelnen Zeile dargestellt; das Format ist daher sehr übersichtlich |
- Spielstände beinhalten nun die Original-Leveldateien, sodass das wiederherzustellende Spiel exakt gleich aussieht |
- Eigenschaften "Level-Name" und "Level Autor" hinzugefügt. |
- "ESC" Taste pausiert das Spiel und öffnet das Menü |
- "Level-Konverter" entfernt. Anstelle lesen das Level-Editor und das Spiel nun alle Formate seit SpaceMission 0.2 ein. |
- Bugfix: Pause wurde nicht in Titelzeile geschrieben, wenn das Spiel pausiert wurde |
- Bugfix: Wenn man pause gemacht hat und fenster wechselt und wieder zurückwechselt, wurde Pause aufgehoben. |
- Bugfix: Zwei Fenster wurden in der Taskleiste angezeigt |
- "Vollbild" und "Breitbild" Feature entfernt, da es nie richtig funktioniert hat |
- Level Editor kann nun über das Hauptmenü aufgerufen werden |
Version 1.1: |
- Bugfixes |
- Veröffentlichung als OpenSource |
Version 1.0: |
- Bugfixes |
- Die erste vollständige Version von SpaceMission. |
- Ein neuer Leveleditor wurde programmiert. |
Version 0.4: |
- Bugfixes |
- Nun auch mit einem Leveleditor. |
Version 0.3: |
- Bugfixes |
Version 0.2: |
- Die erste Beta-Version von SpaceMission. |
/Help/DE_General.md |
---|
0,0 → 1,98 |
# SpaceMission 1.2.1 Dokumentation |
Bitte auch lesen: [Was ist neu in Version 1.2.2?](DE_Changelog.md) |
## Beschreibung |
SpaceMission ist ein klassisches Weltraumspiel, beidem Sie durch einen Kometenhagel fliegen, |
UFOs und andere Raumschiffe abschießen müssen. Es gibt 31 Levels sowie |
Zufallslevels, d.h. Levels die vom Computer durch Zufall erstellt werden. |
Mit dem eingebauten Leveleditor können Sie auch Ihre eigenen Levels |
erstellen. Viel Spaß mit SpaceMission. |
### Gute Levels gesucht: |
Wenn Sie gute Levels erstellt haben und diese in der nächsten Version veröffentlichen möchten, |
senden Sie sie bitte per E-Mail an info@daniel-marschall.de |
## Bedienung/Steuerung |
### SpaceMission |
Im Menü wählen Sie den Menüpunkt mit den Pfeiltasten aus. Drücken Sie die Leertaste, |
um fortzufahren. Im Spiel steuern Sie das Raumschiff mit den Pfeiltasten. Mit der |
Leertaste schießen Sie. |
### Leveleditor |
Wählen Sie rechts einen Einheitentyp aus, unten können Sie die Leben einstellen. |
Kometen sind unzerstörbar und haben somit keine Leben. Anschließend setzen Sie mit |
der Linken Maustaste eine Einheit auf das Spielfeld. Klicken Sie mit der rechten |
Maustaste auf eine Einheit, um sie zu löschen. Wenn Sie die Leben einer Einheit löschen |
möchten, müssen Sie sie löschen und wieder neu setzen. |
## Spielstände |
Vergessen Sie nicht, Ihren Spielstand zu sichern. |
Sie können das Spiel sichern, sobald ein Level gestartet hat. |
Im Spielstand sind Punktestand und Leben sowie eine Kopie des Levels gespeichert. |
Punktestand und Leben beziehen sich auf den **Anfang** des Levels. Sie können |
nicht in der Mitte eines Levels sichern. |
## Quelltext |
Der Quelltext des Spiels ist öffentlich. SpaceMission kann von jedem verändert |
oder weiterentwickelt werden. Voraussetzung ist die Programmier-Umgebung Embarcadero Delphi. |
Quelltext unter www.github.com/danielmarschall/spacemission |
## Aufbau von Spielstand- und Leveldateien |
Savegame- und Level-Dateien teilen das gleiche Format; eine Savedatei ist eine erweiterte Leveldatei. |
[Beschreibung der OID auf OIDplus](https://hosted.oidplus.com/viathinksoft/?goto=oid%3A1.3.6.1.4.1.37476.2.8.1.1) |
[1.3.6.1.4.1.37476.2.8.1.1] |
Score ... (nur vorhanden wenn Datei ein Spielstand ist) |
Lives ... (nur vorhanden wenn Datei ein Spielstand ist) |
Level ... (nur vorhanden wenn Datei ein Spielstand ist) |
Mode ... (nur vorhanden wenn Datei ein Spielstand ist; 1=Normal, 2=Zufall) |
Name ... |
Author ... |
Width ... (Standard 1200; nur für Leveleditor relevant) |
Enemy <Typ> <XCoord> <YCoord> <Leben> |
Enemy <Typ> <XCoord> <YCoord> <Leben>; Kommentarzeile am Ende einer Gegner-Zeile |
Enemy <Typ> <XCoord> <YCoord> <Leben> |
Enemy ... |
; Kommentar-Zeile |
Anmerkungen: |
- Alle Level-Dateien müssen den Namen "Level [Level-Nr].lev" haben, bzw. alle Spielstanddateien müssen "[Name].sav" lauten. |
- Die Reihenfolge der Zeilen ist beliebig. Die erste Zeile muss jedoch exakt stimmen. |
- Leere Zeilen sind erlaubt |
- Das Schlüsselwort `Enemy` gilt sowohl für Gegner als auch für Items. |
- `<Typ>` = Gegner Typ |
* 1=Attackierer typ 1 (blau) |
* 2=Attackierer typ 2 (braun) |
* 3=Attackierer typ 3 (rot) |
* 4=Meteor |
* 5=UFO typ 1 (grün) |
* 6=UFO typ 2 (orange) |
* 7=Boss |
* 8=Medikit |
- `<XCoord>` = Gegner X-Koordinate (muss durch 48 teilbar sein, wenn Level mit Leveleditor bearbeitet werden soll) |
- `<YCoord>` = Gegner Y-Koordinate (muss durch 32 teilbar sein, wenn Level mit Leveleditor bearbeitet werden soll) |
- `<Leben>` = Gegner Leben (keine relevanz für Kometen und Items) |
## Cheat |
Bitte beachten Sie, dass die Verwendung von Cheats Ihnen den Spielspaß verderben kann! |
Wenn Sie dennoch Cheats anwenden möchten: |
- Cheat für unendliche Leben: Countrysänger der "Man in Black" in 1971 veröffentlicht hat. |
## Lizenzbedingungen |
Lizenziert unter den Bedingungen der Apache 2.0 Lizenz, |
d.h. die Weitergabe ist ausdrücklich erwünscht! |
## Autor |
Homepage: www.daniel-marschall.de |
E-Mail: info@daniel-marschall.de |
/Help/EN_Changelog.md |
---|
0,0 → 1,74 |
# Changelog |
SpaceMission 1.2.2: |
- BUGFIX: Items can now also be collected if you have activated an infinite lives cheat |
- BUGFIX: Bug fix when displaying remaining units at mission end |
- Translation of the game from German to English. |
SpaceMission 1.2.1: |
- New unit: Medikit Item |
- Random level: |
- You get a Medikit every 250 units |
- From level 25 onwards, the number of stronger enemy types that appear increases |
- BUGFIX: After the boss was defeated, the displayed enemy display was one too few or disappeared |
- BUGFIX: Level editor save dialog question "Replace level?" The query now appears again if you want to overwrite a self-created level |
- BUGFIX: The speed setting in the menu was displayed incorrectly when starting the game |
- BUGFIX: Random level: Some units didn't appear because they were generated too far down. Corrected. |
- With a registry change, the speed can now be set as desired. Registry key "Computer\HKEY_CURRENT_USER\Software\ViaThinkSoft\SpaceMission\Settings", switch "GameSpeed". Default stats: Easy 10, Medium 16, Hard 22, Master 33. |
Space Mission 1.2: |
- Content changes to the game: |
- Defeating a boss now gives 10,000 points instead of 1,000 |
- "Restart" menu item now restarts the level with the points and lives present at the start of the level, instead of starting over from the beginning |
- Remaining units display is now showing total units, i.e. including those that are on the screen (except boss) |
- You can no longer go “Game Over”. The level restarts when you die. |
- For technical reasons it is no longer possible to save when the message "Level ..., continue with spacebar" appears. However, you can start the level and then immediately save it with F4. |
- Random level: |
- From now on 1 unit less per level |
- From now on levels 1-4 without a boss, levels 5-9 with a boss at the end, and from level 10 a boss in the middle of the level |
- At higher levels, the health of enemies is now capped at 10 |
- Attacker 2 now appears more frequently |
- Random level greater than level 25 is now possible. |
- Changes to the level editor: |
- "Source code" window removed |
- Enemy type name is now in the status bar at the bottom |
- The level editor now has a "test level" function |
- Technical changes: |
- DirectMusic is now used instead of MCI to play music. The sound is better and there is less lag. |
- Windows are now in the middle of the screen and no longer in the middle of the desktop (this makes a difference in multi-monitor systems). |
- DPlayX.dll no longer loads, so Windows 11 does not show a warning that DirectPlay is not installed |
- Saved games and custom levels are saved to the "Saved Games" folder (instead of the now protected Program Files folder) |
- Settings are saved to the Windows registry instead of an INI file |
- Source code greatly improved and redacted |
- New LEV and SAV file formats. |
- LEV and SAV files share the same format. |
- There is no longer any need to sort enemies by X coordinates. |
- Each enemy is displayed on a single line; The format is therefore very clear |
- Savegames now include the original level files, so the game being restored looks exactly the same |
- Added "Level Name" and "Level Author" properties. |
- "ESC" key pauses the game and opens the menu |
- "Level converter" removed. Instead, the level editor and the game now read all formats since SpaceMission 0.2. |
- Bugfix: Pause was not written in the title bar when the game was paused |
- Bug fix: If you took a break and changed windows and then changed back again, the break was canceled. |
- Bugfix: Two windows were displayed in the taskbar |
- Removed "Fullscreen" and "Widescreen" features as they never worked properly |
- Level Editor can now be accessed from the main menu |
Version 1.1: |
- Bug fixes |
- Publication as OpenSource |
Version 1.0: |
- Bug fixes |
- The first full version of SpaceMission. |
- A new level editor has been programmed. |
Version 0.4: |
- Bug fixes |
- Now also with a level editor. |
Version 0.3: |
- Bug fixes |
Version 0.2: |
- The first beta version of SpaceMission. |
/Help/EN_General.md |
---|
0,0 → 1,98 |
# SpaceMission 1.2.1 documentation |
Please also read: [What's new in version 1.2.2?](EN_Changelog.md) |
## Description |
SpaceMission is a classic space game where you fly through a hail of comets, |
Having to shoot down UFOs and other spaceships. There are 31 levels as well |
Random levels, i.e. levels that are created by the computer by chance. |
With the built-in level editor you can also create your own levels |
create. Have fun with SpaceMission. |
### Looking for good levels: |
If you have created good levels and want to release them in the next version, |
please send them by email to info@daniel-marschall.de |
## Operation/control |
### Space Mission |
In the menu, select the menu item using the arrow keys. Press the space bar, |
to continue. In the game you control the spaceship using the arrow keys. With the |
Space bar shoot. |
### Level editor |
Select a unit type on the right, you can set the lives below. |
Comets are indestructible and therefore have no life. Then you place your bet |
Place a unit on the field using the left mouse button. Right click |
Click on a unit to delete it. When you delete a unit's lives |
you have to delete them and reset them again. |
## Scores |
Don't forget to save your save. |
You can save the game once a level has started. |
The game saves your score and lives as well as a copy of the level. |
Scores and lives refer to the **beginning** of the level. You can |
do not save in the middle of a level. |
## Source code |
The game's source code is public. SpaceMission can be modified by anyone |
or be further developed. The prerequisite is the Embarcadero Delphi programming environment. |
Source code at www.github.com/danielmarschall/spacemission |
## Creation of savegame and level files |
Savegame and level files share the same format; a save file is an extended level file. |
[Description of the OID on OIDplus](https://hosted.oidplus.com/viathinksoft/?goto=oid%3A1.3.6.1.4.1.37476.2.8.1.1) |
[1.3.6.1.4.1.37476.2.8.1.1] |
Score ... (only available if file is a score) |
Lives ... (only available if file is a saved game) |
Level ... (only available if file is a saved game) |
Mode ... (only available if file is a saved game; 1=Normal, 2=Random) |
Name ... |
Author ... |
Width ... (default 1200; only relevant for level editor) |
Enemy <Type> <XCoord> <YCoord> <Life> |
Enemy <Type> <XCoord> <YCoord> <Life>; Comment line at the end of an opponent line |
Enemy <Type> <XCoord> <YCoord> <Life> |
Enemy ... |
; Comment line |
Remarks: |
- All level files must have the name "Level [Level-Nr].lev" or all save files must be named "[Name].sav". |
- The order of the lines is arbitrary. However, the first line must be exactly correct. |
- Empty lines are allowed |
- The keyword 'Enemy' applies to both enemies and items. |
- `<Type>` = enemy type |
* 1=Attacker type 1 (blau) |
* 2=Attacker type 2 (braun) |
* 3=Attacker type 3 (rot) |
* 4=Meteor |
* 5=UFO type 1 (green) |
* 6=UFO type 2 (orange) |
* 7=Boss |
* 8=Medikit |
- `<XCoord>` = Enemy X coordinate (must be divisible by 48 if level is to be edited with level editor) |
- `<YCoord>` = Enemy Y coordinate (must be divisible by 32 if level is to be edited with level editor) |
- `<Life>` = enemy life (no relevance for comets and items) |
##Cheat |
Please note that using cheats can spoil your fun! |
If you still want to use cheats: |
- Cheat for Infinite Lives: Country singer who released "Man in Black" in 1971. |
## License Terms |
Licensed under the terms of the Apache 2.0 License, |
i.e. sharing is expressly desired! |
## Author |
Homepage: www.daniel-marschall.de |
Email: info@daniel-marschall.de |
/Help/Style.css |
---|
0,0 → 1,9 |
body { |
color:#EEE; |
background-color:#222; |
font-family: Arial, Helvetica, sans-serif; |
} |
a:link, a:hover, a:active, a:visited { |
color:yellow; |
} |
/LevMain.dfm |
---|
4,8 → 4,8 |
BorderIcons = [biSystemMenu, biMinimize] |
BorderStyle = bsSingle |
Caption = 'Leveleditor' |
ClientHeight = 536 |
ClientWidth = 753 |
ClientHeight = 517 |
ClientWidth = 741 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
14,8 → 14,7 |
Font.Style = [] |
KeyPreview = True |
Menu = MainMenu |
OldCreateOrder = True |
Position = poDesktopCenter |
Position = poScreenCenter |
Scaled = False |
OnClose = FormClose |
OnCloseQuery = FormCloseQuery |
23,10 → 22,36 |
OnDestroy = FormDestroy |
OnMouseMove = DXDrawMouseMove |
OnShow = FormShow |
PixelsPerInch = 96 |
TextHeight = 13 |
object ScrollBar: TScrollBar |
Left = 0 |
Top = 480 |
Width = 632 |
Height = 17 |
Max = 1200 |
PageSize = 0 |
TabOrder = 0 |
OnScroll = ScrollBarScroll |
end |
object StatusBar: TStatusBar |
Left = 0 |
Top = 498 |
Width = 741 |
Height = 19 |
Panels = <> |
SimplePanel = True |
OnMouseMove = DXDrawMouseMove |
end |
object SidePanel: TPanel |
Left = 632 |
Top = 0 |
Width = 109 |
Height = 498 |
Align = alRight |
BevelOuter = bvNone |
TabOrder = 2 |
object Bevel1: TBevel |
Left = 648 |
Left = 4 |
Top = 200 |
Width = 97 |
Height = 2 |
33,15 → 58,36 |
Shape = bsBottomLine |
end |
object Bevel2: TBevel |
Left = 648 |
Left = 4 |
Top = 392 |
Width = 97 |
Height = 2 |
Shape = bsBottomLine |
end |
object Bevel3: TBevel |
Left = 4 |
Top = 320 |
Width = 97 |
Height = 2 |
Shape = bsBottomLine |
end |
object LivesLabel: TLabel |
Left = 8 |
Top = 332 |
Width = 33 |
Height = 13 |
Caption = 'Leben:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object SelLabel: TLabel |
Left = 648 |
Top = 0 |
Left = 8 |
Top = 4 |
Width = 43 |
Height = 13 |
Caption = 'Auswahl:' |
53,15 → 99,22 |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object Bevel3: TBevel |
Left = 648 |
Top = 320 |
Width = 97 |
Height = 2 |
Shape = bsBottomLine |
object SLabel0: TLabel |
Left = 8 |
Top = 400 |
Width = 84 |
Height = 13 |
Caption = 'Level-Information:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel1a: TLabel |
Left = 652 |
Left = 8 |
Top = 424 |
Width = 47 |
Height = 13 |
68,8 → 121,16 |
Caption = 'Einheiten:' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel1b: TLabel |
Left = 76 |
Top = 424 |
Width = 6 |
Height = 13 |
Caption = '0' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel2a: TLabel |
Left = 652 |
Left = 8 |
Top = 440 |
Width = 26 |
Height = 13 |
76,16 → 137,8 |
Caption = 'Boss:' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel1b: TLabel |
Left = 720 |
Top = 424 |
Width = 6 |
Height = 13 |
Caption = '0' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel2b: TLabel |
Left = 720 |
Left = 76 |
Top = 440 |
Width = 22 |
Height = 13 |
92,22 → 145,8 |
Caption = 'Nein' |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel0: TLabel |
Left = 648 |
Top = 400 |
Width = 84 |
Height = 13 |
Caption = 'Level-Information:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel3a: TLabel |
Left = 652 |
Left = 8 |
Top = 456 |
Width = 32 |
Height = 13 |
115,7 → 154,7 |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel3b: TLabel |
Left = 720 |
Left = 76 |
Top = 456 |
Width = 24 |
Height = 13 |
123,7 → 162,7 |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel4a: TLabel |
Left = 652 |
Left = 8 |
Top = 480 |
Width = 60 |
Height = 13 |
137,7 → 176,7 |
OnMouseMove = DXDrawMouseMove |
end |
object SLabel4b: TLabel |
Left = 720 |
Left = 76 |
Top = 480 |
Width = 22 |
Height = 13 |
150,26 → 189,12 |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object LivesLabel: TLabel |
Left = 648 |
Top = 332 |
Width = 33 |
Height = 13 |
Caption = 'Leben:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy1: TRadioButton |
Left = 652 |
Left = 8 |
Top = 24 |
Width = 73 |
Width = 93 |
Height = 17 |
Caption = 'Attackierer' |
Caption = 'Angreifer Typ 1' |
Checked = True |
TabOrder = 0 |
TabStop = True |
177,28 → 202,28 |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy2: TRadioButton |
Left = 652 |
Top = 48 |
Width = 82 |
Left = 8 |
Top = 44 |
Width = 93 |
Height = 17 |
Caption = 'Attackierer 2' |
Caption = 'Angreifer Typ 2' |
TabOrder = 1 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy3: TRadioButton |
Left = 652 |
Top = 72 |
Width = 82 |
Left = 8 |
Top = 64 |
Width = 93 |
Height = 17 |
Caption = 'Attackierer 3' |
Caption = 'Angreifer Typ 3' |
TabOrder = 2 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy4: TRadioButton |
Left = 652 |
Top = 96 |
Left = 8 |
Top = 84 |
Width = 55 |
Height = 17 |
Caption = 'Meteor' |
207,8 → 232,8 |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy5: TRadioButton |
Left = 652 |
Top = 120 |
Left = 8 |
Top = 104 |
Width = 44 |
Height = 17 |
Caption = 'UFO' |
217,8 → 242,8 |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy6: TRadioButton |
Left = 652 |
Top = 144 |
Left = 8 |
Top = 124 |
Width = 53 |
Height = 17 |
Caption = 'UFO 2' |
227,8 → 252,8 |
OnMouseMove = DXDrawMouseMove |
end |
object Enemy7: TRadioButton |
Left = 652 |
Top = 168 |
Left = 8 |
Top = 144 |
Width = 45 |
Height = 17 |
Caption = 'Boss' |
236,93 → 261,5833 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object ScrollBar: TScrollBar |
Left = 0 |
Top = 480 |
Width = 640 |
Height = 17 |
Max = 1200 |
PageSize = 0 |
TabOrder = 7 |
OnScroll = ScrollBarScroll |
end |
object SelPanel: TPanel |
Left = 652 |
Left = 8 |
Top = 216 |
Width = 89 |
Height = 89 |
Color = clWhite |
TabOrder = 8 |
TabOrder = 7 |
OnMouseMove = DXDrawMouseMove |
object Image1: TImage |
Left = 1 |
Top = 1 |
Width = 610 |
Width = 697 |
Height = 88 |
AutoSize = True |
Picture.Data = { |
07544269746D617056CF0200424D56CF0200000000003600000028000000B902 |
000058000000010018000000000020CF0200120B0000120B0000000000000000 |
0000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFCFFD0D9FF93A9FF5B7A |
FF3258FF1844FF113DFF113EFF113EFF113EFF113EFF113EFF113DFF113DFF23 |
4CFF4266FF728CFFA9BAFFF3F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F7FFA2B5 |
FF4D71FF0E3EFF0135FF0032FF0032FF0135FF0236FF0236FF0236FF0236FF02 |
36FF0236FF0236FF0236FF0034FF0033FF002FFF0538FF2A56FF7491FFC5D2FF |
FCFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFE9495A500003300003300003300003300003300003300 |
00330000330000330000330000330000330000330000339495A5FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFECF1FF8AA5FF3360FF0038FF0036FF003AFF013BFF023BFF023BFF023BFF02 |
3BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF023BFF |
013AFF0038FF0033FF0C42FF557BFFB8C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEADADBB58587A58587A58587A31315A00003300003300 |
0033000048000048000048000048000048000048000048000048000048000048 |
00004831316358587A58587A58587A58587A757489FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE6B98730042080042080042080042080042084A |
7B52FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE689AFF0052FA0052FA0052FA0052 |
FA0052FA4384FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFEFFFFC9D6FF557FFF013FFF003BFF0140FF0241FF0240FF02 |
40FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF0240FF |
0240FF0240FF0240FF0240FF0240FF0241FF0241FF003EFF003AFF0743FF88A5 |
FFECF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE86899600003300003300 |
0033000033000033000033000048000048000048000048000048000048000048 |
0000480000480000480000480000480000480000330000330000330000332929 |
52FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEEDEDEDA5B58CA5B58CA5B58CA5B58C45744600420800 |
42080042080042080042082963318CAD948CAD948CAD948CAD94DADADBFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFA8CB5FF8CB5FF8CB5FF8CB5FF3377 |
FE0052FA0052FA0052FA0052FA0052FA266AFE8CB5FF8CB5FF8CB5FF8CB5FFD9 |
E7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FBFF7EA2FF0D4EFF0043FF0146FF02 |
47FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF |
0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247FF0247 |
FF0247FF0247FF0045FF0041FF346AFFD7E2FFFEFEFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE868996000033000033000033000033000033000033000048000048000048 |
0000480000480000480000480000480000480000480000480000480000480000 |
48000048000033000033292952FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECAD6C831520031520031 |
5200315200174A00004208004208004208004208004208004208004208004208 |
004208004208A5BAA7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FAA5BDFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9F0FF6492FF00 |
45FF004CFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF |
024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024E |
FF024EFF024EFF024EFF024EFF024EFF024EFF024EFF024EFF0048FF1056FFA0 |
BDFFFCFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEDADADB000033000033000048000048000048000033000033000048 |
0000480000480000480000480000580000580000580000580000580000580000 |
58000058000058000058000048000048000048000048000048000033DADADBFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE526B2249631049631049 |
6310425A16315200315200315200315200174A00004208004208004208004208 |
0042080042080042080042080042080042080852181853211853211853211853 |
21F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE266AFE1663 |
FE1663FE1663FE1663FE0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA105AFE1663FE1663FE |
1663FE1663FEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFE3EDFF2D72FF0050FF0254FF0255FF0255FF0255FF0255FF0255FF0255FF |
0255FF0255FF0254FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052 |
FF0052FF0052FF0052FF0053FF0255FF0255FF0255FF0255FF0255FF0255FF02 |
55FF0255FF0255FF0051FF0152FF8FB5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB58587A000048000048000048000048 |
0000480000480000480000480000480000480000580000580000580000580000 |
5800005800005800005800005800005800005800005800005800005800005800 |
005800004800003358587AADADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBC6A6BBC6A6BB |
C6A6315200315200315200315200315200315200315200315200315200174A00 |
0042080042080042080042080042080042080042080042080042080042080042 |
080042080042082963315A8463F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9C6 |
FFA9C6FFA9C6FF105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA266AFE538CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFEEF4FF4084FF0057FF005BFF015CFF015CFF015CFF |
015CFF015CFF015CFF015CFF015CFF015BFF025CFF1065FF1065FF1065FF1065 |
FF1065FF1065FF1065FF1065FF1065FF1065FF1065FF0961FF015BFF015CFF01 |
5CFF015CFF015CFF015CFF015CFF015CFF015CFF015CFF0059FF065CFF95BBFF |
FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEC6C8D658587A000033 |
0000580000580000580000580000580000480000480000480000480000480000 |
5800005800005800005800005800005800005800006D00006D00006D00006D00 |
006D00006D00005800005800005800004800003300003358587ACACACACACACA |
EAEEFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEF7F7EF315200315200315200315200315200315200315200315200315200 |
315200315200315200174A000042080042080042080042080042080042080042 |
080042080042080042080042080042080042087BA984FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEEFF7FC0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA77A5FFFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECF4FF5798FF005EFF0163FF |
0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0060FF0F6C |
FFE2EDFFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0F5FFF0 |
F5FF78ADFF0059FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF0163FF |
0163FF0163FF0061FF0260FFA5C8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE1818420000480000480000580000580000580000580000580000480000 |
4800004800004800005800005800005800005800005800005800005800005800 |
006D00006D00006D00006D00006D00006D000058000058000058000048000033 |
000033000033000033000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE9CA584547331315200315200315200315200315200 |
315200315200315200315200315200315200315200174A000042080042080042 |
080042080042080042080042080042080042080042080042080042080C2B0511 |
4816326639F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF3377FE0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004A |
F7004AE9125AED3377FEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFF |
72ADFF0063FF016AFF016BFF016BFF016BFF016BFF016BFF016BFF016BFF016B |
FF016BFF016BFF0068FF1074FFF4F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFF82B6FF0060FF016BFF016BFF016BFF016BFF |
016BFF016BFF016BFF016BFF016BFF016BFF016BFF0067FF056BFFE1EDFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE948C8C5A635A |
5A635A4E4E4E4E4E4E948C8CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE94 |
8C8C5A635A5A635A4E4E4E4E4E4E948C8CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFE948C8C5A635A5A635A4E4E4E4E4E4E948C8CFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE1818420000480000480000580000580000 |
5800005800005800004800004800004800004800005800005800005800005800 |
005800005800005800005800006D00006D00006D00006D00006D00006D000058 |
000058000058000048000048000033000033000033000033CACACAFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB7DBB96B8B38255A00315200 |
3152003152003152003152003152003152003152003152003152003152003152 |
00174A0000420800420800420800420800420800420800420800420800420800 |
42080042080042080C2B05004208004208B5C6B5D8EAD9FEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE538CFE10 |
5AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA004AF7004AE9004AE90052FAB5CEFFD9E7FEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFB5D7FF0573FF0072FF0173FF0173FF0173FF0173FF0173 |
FF0173FF0173FF0173FF0173FF0173FF0173FF0071FF107CFFF0F7FFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80B9FF0069FF |
0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173FF0173 |
FF0173FF006EFF3D95FFF5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
8686865A635A6E6E6E6E6E6E5A635A4E4E4E969696F7F7EFFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFE8686865A635A6E6E6E6E6E6E5A635A4E4E4E969696F7F7EFFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFE8686865A635A6E6E6E6E6E6E5A635A4E4E4E969696F7 |
F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADADBB73739473739400104A0000 |
4800005800006D00006D00006D00005800005800005800005800004800004800 |
005800005800005800005800005800005800005800006D00006D00006D00006D |
00006D00006D00006D0000580000580000580000580000480000480000330000 |
3300003358587AADADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECEDED6 |
0084000084000084003152003152003152003152003152003152003152003152 |
00315200315200315200315200174A0000420800420800420800420800420800 |
42080042080042080042080042080042080042080C2B05004208004208004208 |
638C65FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFED9E7FE266AFE266AFE266AFE0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9004AE900 |
52FA0052FA689AFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBF5FF1C89FF0077FF017BFF017B |
FF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF017BFF00 |
79FF1083FFF0F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFF80BDFF0072FF017BFF017BFF017BFF017BFF017BFF017BFF017B |
FF017BFF017BFF017BFF017BFF017BFF017BFF0076FF92C7FFFCFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE6E6E6E8686868686866E6E6E6E6E6E6E6E6E5A635A5A635AA8A8A8F7F7 |
EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFE6E6E6E8686868686866E6E6E6E6E6E6E6E6E5A635A5A635A |
A8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E8686868686866E6E6E6E6E6E6E6E6E5A |
635A5A635AA8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB5858 |
7A00003300003300004800005800006D00006D00006D00006D00006D00005800 |
005800005800004800004800005800005800006D00005800005800005800006D |
00006D00006D00006D00006D00006D00006D0000580000580000580000580000 |
5800004800004800004800003300003300003358587ADADADBFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE75AF7442A542008400008400008400087401255A003152003152 |
00315200315200315200315200315200315200315200315200244A00244A0000 |
42080042080042080042080042080042080042080042080042080042080C2B05 |
0042080042080042080042081853214A7B52D8EAD9FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE8CB5FF5A94FF266AFE266AFE266AFE1663FE105AFE |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
4AE9004AE9004AE9004AF70052FA0052FA1663FE4384FED9E7FEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83C2 |
FF007BFF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF01 |
83FF0183FF0183FF0183FF0081FF108AFFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C1FF0079FF0183FF0183FF0183 |
FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF0183FF00 |
81FF0483FFCEE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEEDEDED7B847B948C8C6E6E6E7B847B7B847B7B847B5A635A5A63 |
5A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B948C8C6E6E6E7B847B7B847B7B847B |
5A635A5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B948C8C6E6E6E7B847B7B |
847B7B847B5A635A5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00 |
006D00006D00006D00005800005800005800005800005800005800006D00006D |
00005800005800006D00006D00005800006D00006D00006D0000580000580000 |
5800005800005800005800005800005800004800004800004800004800004800 |
0048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFED8EAD92E962E0084000084000084000084 |
00008400087401255A0031520031520031520031520031520031520031520031 |
5200315200315200315200004208004208004208004208004208004208004208 |
0042080042080C2B050C2B05004208004208004208004208004208004208ADC6 |
B5EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FCD9E7FE538CFE266AFE266AFE |
266AFE266AFE266AFE1663FE105AFE0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA004AE9004AE90052FA0052FA0052FA0052FA0052FA |
0052FAA9C6FFEAEEFAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEF7F7EFCACACA7B847B7B847B0E0F0E0E0F0E0E0F0E |
0E0F0E0E0F0E1018212118212118212118212118210E0F0E0E0F0E0E0F0E0E0F |
0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E |
0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E6E6E6EB5ADADFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFE4F2FF1D96FF0088FF018AFF018AFF018AFF018AFF018AFF01 |
8AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF0088FF1091FFF0F8FF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C5 |
FF0082FF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF018AFF01 |
8AFF018AFF018AFF018AFF018AFF0085FF59B2FFFDFEFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEEDEDED969696948C8C6E6E6E7B847B7B847B7B84 |
7B8686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED969696948C8C6E6E6E7B847B |
7B847B7B847B8686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED969696948C8C6E |
6E6E7B847B7B847B7B847B8686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD29295200004800005800005800005800 |
006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D |
00006D00006D00006D00006D00005800005800006D00006D0000580000580000 |
6D00006D00005800005800004800004800004800005800005800005800005800 |
0058000058000058000058000058000048292952292952757489FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA7D6AA0084000084 |
0000840000840000840000840000840000840000840031520031520031520031 |
5200315200315200315200315200315200315200315200004208004208004208 |
0042080042080042080042080042080042080C2B050C2B050042080042080042 |
08004208004208004208004208397342FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBDD6FF |
266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AE9004AE90052FA |
0052FA0052FA0052FA0052FA0052FA0052FA3377FEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEEDEDEDDADADB6E6E6E6E6E6E4E4E4E0E0F0E0E0F0E0E0F0E |
1018212118212118213030304239424239424239424239424239424239423030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030211821211821211821211821211821 |
2118210E0F0E303030B5ADADF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFEFF60BBFF008DFF0192FF0191FF01 |
91FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF |
0191FF008FFF1098FFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFF80C9FF008AFF0191FF0191FF0191FF0191FF0191FF01 |
91FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0191FF0090FF0792FF |
D4EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696966E6E6E7B84 |
7B7B847B8686868686868686866E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB969696 |
6E6E6E7B847B7B847B8686868686868686866E6E6E5A635A5A635AB5ADADEDED |
EDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDA |
DADB9696966E6E6E7B847B7B847B8686868686868686866E6E6E5A635A5A635A |
B5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300 |
004800005800005800005800006D00006D00006D00005800005800006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D0000580000580000 |
6D00006D00005800005800005800005800005800005800004800004800004800 |
0058000058000058000058000058000058000058000058000058000048000033 |
00003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FE75AF7442A54200840000840000840000840000840000840000840000840000 |
8400087401255A00315200315200315200315200315200315200315200315200 |
3152000042080042080042080042080042080042080042080042080C2B050042 |
08004208004208004208004208004208004208004208004208185321638C65CE |
DED6FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE8CB5FF689AFF266AFE266AFE266AFE266AFE266AFE266AFE266A |
FE266AFE266AFE1663FE105AFE0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7 |
004AE9004AE9004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA1663 |
FE689AFFCADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEF7F7EFEDEDED9696966E6E6E5A635A0E0F0E0E0F0E101821211821 |
3030303030304239424239424239424239424239424239424239424239424239 |
4242394242394230303042394230303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030302118210E0F0E423942B5ADADFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1F3FF05 |
99FF0097FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF |
0198FF0198FF0198FF0198FF0198FF0096FF109EFFF0F9FFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80CCFF0091FF0198FF01 |
98FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF0198FF |
0198FF0198FF0198FF0093FF79C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADA |
DB9696967B847B7B847B8686868686868686868686866E6E6E5A635A5A635AB5 |
ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEDADADB9696967B847B7B847B8686868686868686868686866E6E6E5A63 |
5A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEDADADB9696967B847B7B847B868686868686868686868686 |
6E6E6E5A635A5A635AB5ADADEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEB3B3CD00003300004800005800005800005800006D00006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D0000 |
6D00006D00006D00006D00006D00006D00005800005800005800005800005800 |
005800004800004800004800005800005800005800005800005800006D00006D |
00005800005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE2E962E00840000840000840000840000840000 |
8400008400008400008400008400008400087401315200315200315200315200 |
3152003152003152003152003152000042080042080042080042080042080042 |
080042080042080C2B0500420800420800420800420800420800420800420800 |
4208004208004208004208A5BAA7F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE427BFE266AFE266AFE266AFE266A |
FE266AFE266AFE266AFE266AFE266AFE266AFE266AFE1663FE0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA004AF7004AE9004AE90052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FAA9C6FFEFF7FCFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEEDEDEDDADADBA8A8A85A635A4239420E0F0E211821303030303030 |
4239424E4E4E4239424239424239424E4E4E4239424239424239424239424239 |
4242394242394242394242394242394242394242394242394242394230303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
303030301018210E0F0E5A635AA8A8A8F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFA5DDFF009DFF019FFF019FFF019FFF019FFF019FFF019FFF |
019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF009DFF10A5 |
FFF0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFF80D0FF0098FF019FFF019FFF019FFF019FFF019FFF019FFF019FFF019FFF |
019FFF019FFF019FFF019FFF019FFF019FFF019FFF009DFF27ADFFF5FBFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEDADADB9696967B847B8686868686868686868686868686866E |
6E6E5A635A5A635AA8A8A8EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B8686868686868686868686 |
868686866E6E6E5A635A5A635AA8A8A8EDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696967B847B868686868686 |
8686868686868686866E6E6E5A635A5A635AA8A8A8EDEDEDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD000033000048000058000058 |
00005800005800006D00006D00006D00006D00006D00005800005800006D0000 |
6D00006D00006D00006D00006D00005800006D00006D00006D00005800005800 |
0058000058000058000058000058000048000048000048000048000048000058 |
00005800006D00006D00006D00006D00005800004800004800003358587AFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE637A2D2D6B0900 |
8400008400008400008400008400008400008400008400008400008400008400 |
008400255A003152003152003152003152003152003152003152000042080042 |
080042080042080042080042080042080042080C2B0500420800420800420800 |
42080042080042080042080042080042080042080042080042082A542AFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE266A |
FE105AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE26 |
6AFE266AFE266AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA004AF7004AE9004AE90052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA26 |
6AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB423942211821303030423942423942 |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239424E4E4E4239424239 |
4242394242394242394242394242394242394242394242394242394242394242 |
3942423942303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
303030303030303030303030303030303030303030301018210E0F0E4239426E |
6E6EDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FCFF3BBAFF00A3FF01A5FF01A5FF |
01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5 |
FF01A5FF01A5FF00A3FF10ABFFF0FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFF80D3FF009FFF01A5FF01A5FF01A5FF01A5FF |
01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5FF01A5 |
FF00A5FF04A5FFB2E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA86868686868686868686 |
8686868686857B7A6E6E6E5A635A5A635A5A635AEDEDEDFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA8686868686 |
86868686868686868686857B7A6E6E6E5A635A5A635A5A635AEDEDEDFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA |
868686868686868686868686868686857B7A6E6E6E5A635A5A635A5A635AEDED |
EDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD |
00003300004800005800005800005800005800006D00006D00006D00006D0000 |
6D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00006D000058000058000058000058000058000058000048000048000033 |
00003300004800004800004800005800006D00006D00006D00006D0000580000 |
4800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDA |
DECEA5AD84526B222D6B092D6B092D6B09087401008400008400008400008400 |
008400008400008400008400008400087401255A003152003152003152003152 |
0031520031520000420800420800420800420800420800420800420800420800 |
4208004208004208004208004208004208004208004208004208004208004208 |
004208004208085218779C7BCAD6C8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFECADBFE77A5FF105AFE105AFE1663FE1663FE1663FE266AFE266AFE26 |
6AFE266AFE266AFE266AFE266AFE266AFE266AFE1663FE105AFE0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA004A |
E9004AE9004AE9004AF70052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA105AFE77A5FFCADBFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADB5B54E4E4E |
1018212118213030304239424239424E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239 |
4242394242394242394242394242394242394242394242394242394242394242 |
3942423942423942423942423942303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30303030302118210E0F0E0E0F0E1018216E6E6EDADADBFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBF3FF |
05ACFF00A9FF00AAFF00AAFF00AAFF00AAFF00AAFF00A7FF00A4FF00A4FF00A4 |
FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A3FF00AAFFEFFAFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77D2FF009EFF |
00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A4FF00A5FF00AA |
FF00AAFF00AAFF00AAFF00AAFF00AAFF00A7FF75D1FFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDA |
DADBA8A8A88686864E4E4E4E4E4E5A635A857B7A5A635A5A635A5A635A33444A |
DE8484FF9494FF9494FF9494FF9494FF9494FF9494FF9494FFABABFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEDADADBA8A8A88686864E4E4E4E4E4E5A635A857B7A5A635A5A635A5A |
635A33444A8484B99292D19292D19292D19292D19292D19292D19292D1B3B3CD |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEDADADBA8A8A88686864E4E4E4E4E4E5A635A857B7A5A63 |
5A5A635A5A635A33444A84DEDE94F6F994F6F994F6F994F6F994F6F994F6F994 |
F6F9ABFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE9495A59495A56363840000330000580000580000580000580000580000 |
6D00006D00006D00006D00006D00006D00006D00006D00006D00005800005800 |
005800006D00006D00006D00006D00006D00006D000058000058000058000058 |
00005800004800004800003300003300004800004800005800005800006D0000 |
6D00006D00006D0000580000580000480000483131639495A5FEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEAABD9C4963104963104963104963104963102D6B09 |
0084000084000084000084000084000084000084000084000084000084000874 |
0131520031520031520031520031520031520000420800420800420800420800 |
42080042080C2B050C2B05004208004208004208004208004208004208004208 |
0042080042080042080042080042080042080042080042088CAD94FEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98B9FF0052FA0052FA0052FA0052FA00 |
52FA105AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE |
266AFE1663FE0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA004AE9004AE90052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FF |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFECACACA5A635A5A635A1018213030304239423030302118213030302118 |
2121182142394242394242394242394242394242394242394242394242394242 |
3942423942423942423942423942423942423942303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30303030303030303030303030303030303030303030302118210E0F0E0E0F0E |
1018215A635ADADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFBFEBFF00B0FF00AFFF00AFFF00AFFF00AFFF00AFFF00AD |
FF40C3FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80 |
D6FF87D9FFF8FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFC0EBFF80D4FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7FF80D7 |
FF80D7FF80D7FF78D4FF08B2FF00AFFF00AFFF00AFFF00AFFF00AFFF00AEFF47 |
C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBB9696964239420E0F0E101821525A63 |
5A635A5A635A5A635A052136B51808D81605D81605D81605D81605D81605D816 |
05D81605E74A39FFABABFFABABFFABABFFABABFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBB9696964239420E0F0E10 |
1821525A635A635A5A635A5A635A05213600006D212184212184212184212184 |
21218421218421218455499994ADCE94ADCE94ADCEB3B3CDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBB9696964239 |
420E0F0E101821525A635A635A5A635A5A635A05213600B1B100D8D800D8D800 |
D8D800D8D800D8D800D8D800D8D831E7E7ABFFFFABFFFFABFFFFABFFFFFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0000330000330000330000480000580000 |
5800005800005800005800006D00006D00006D00006D00006D00006D00005800 |
005800005800005800005800005800005800005800006D00006D00006D00006D |
0000580000580000580000580000580000580000480000480000480000480000 |
4800005800005800006D00006D00006D00006D00006D00005800004800004800 |
0048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA5BAA72A542A425A16 |
4963104963104963104963104963104963104963100084000084000084000084 |
00008400008400008400008400008400255A003152003152000C2B050E0F0E0E |
0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0C2B050C2B05004208004208004208 |
0042080042080042080042080042080042080042080042080042080042080042 |
080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA5BDFF26 |
6AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFE266AFE |
266AFE266AFE266AFE266AFE266AFE266AFE266AFE105AFE0052FA0052FA0529 |
6F0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0035AF004AE90052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEEDEDED9696964E4E4E4239425A635A5A635A4239424E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E42394242394242394230303021182121182110182110 |
1821303030303030303030423942423942423942423942423942423942423942 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030301018210E0F0E0E0F0E1018215A635AF7F7EFFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9DE2FF00B4FF00B4FF00B4 |
FF00B4FF00B4FF00B4FF00AFFF89DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10B9FF00B3FF00B4FF00 |
B4FF00B4FF00B4FF00B3FF1ABDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB |
8689960017330017330017335A635A5A635A4E4E4E0C2849895A26A56B29A56B |
29A56B29A56B29A56B29A56B29A56B29B55221D81605D81605D81605DE2110FF |
ABABFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBB |
BBBBBBBBBB8689960017330017330017335A635A5A635A4E4E4E0C28494A358C |
5549995549995549995549995549995549995549994A358C0404850404850404 |
85212184B3B3CDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEDADADBBBBBBBBBBBBB8689960017330017330017335A635A5A635A4E4E4E0C |
28490C737306878706878706878706878706878706878706878706878700D8D8 |
00D8D800D8D800D8D8ABFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0000330000 |
4800004800004800005800005800005800005800005800006D00006D00006D00 |
006D00006D00006D000058000058000058000058000058000058000058000058 |
00006D00006D00006D00006D0000580000580000580000580000580000580000 |
4800004800004800004800004800005800005800006D00006D00006D00006D00 |
006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEAABD9C2A542A425A164963104963104963104963104963104963104963 |
1008740108740108740100840000840000840000840000840000840008740125 |
5A002431090E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E |
0E0F0E0C2B050042080042080042080042080042080042080042080042080042 |
080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFE98B9FF1663FE0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA1663FE1663FE1663FE266AFE266AFE266AFE266AFE266AFE266A |
FE1663FE105AFE002D9400185200173300173300173300173300173300173300 |
173305296F002D94002D940243CC0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFECACACA5A635A4E4E4E4E4E4E5A635A6E6E6E6E6E |
6E5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E423942423942423942303030211821211821211821101821211821 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030301018210E0F |
0E0E0F0E303030423942CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF84DDFF00B4FF00B8FF00B8FF00B8FF00B8FF00B8FF00B3FF80DBFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 |
FBFF0FBCFF00B7FF00B8FF00B8FF00B8FF00B8FF00B8FF0FBCFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEDADADBBBBBBBBBBBBB9495A52139520017330521364E4E4E4E4E4E0C28 |
49001733B79670DAB587DAB587DAB587DAB587D6AD7BC69C6BC69C6BB1865089 |
5A267B52188B51128B5112FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB9495A52139520017330521364E4E4E |
4E4E4E0C28490017335256B56F68D76F68D76F68D76F68D7847BEF9292D19292 |
D18484B952427B432A7A432A7A432A7A040485FEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEDADADBBBBBBBBBBBBB9495A521395200173305 |
21364E4E4E4E4E4E0C28490017334E8E8952A59C52A59C52A59C52A59C52A59C |
4E8E894E8E894E8E890687870C737306878706878702FFFFFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00 |
006D00006D00006D00006D00006D00006D00006D000058000058000058000058 |
00005800005800005800005800006D00006D00006D00006D0000580000580000 |
5800005800005800005800004800004800004800005800005800005800006D00 |
006D00006D00006D00006D00006D000058000048000048000048000033FEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEAABD9C4963104963104963104963104963 |
1049631049631049631049631049631049631049631000840000840000840000 |
84000084000084000084000874010E0F0E0E0F0E0C2B050C2B050C2B050C2B05 |
0C2B050C2B050C2B050E0F0E0E0F0E0E0F0E0C2B050042080042080042080042 |
080042080042080042080042080042080042080042080042080042088CAD94FE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98B9FF0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA266AFE266A |
FE266AFE266AFE266AFE266AFE266AFE2965D60E0F0E0521360D468D0D468D0D |
468D0D468D0D468D0D468D0D468D0013280E0F0E0E0F0E002D940052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA9696964239424239425A635A6E6E |
6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424E4E4E423942423942 |
4239424239423030303030303030301018212118211018210E0F0E1018212118 |
2130303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030302118211018210E0F0E0E0F |
0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E101821303030969696FE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF3ECCFF00B9FF00BBFF00BBFF00BBFF00BBFF00 |
BBFF00B6FF80DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFF0FBFF0FBFFF00BAFF00BBFF00BBFF00BBFF00BBFF |
00BBFF0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDCACACACACACACACACA99A8AF2139 |
520521360013280017330C28490C2849C6C8D6EDEDEDEDEDEDEDEDEDEDEDEDC6 |
BDBD9C948C9C948C9C948C857B7A5242298B51128B5112FF0202FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDCACACACACACACACACA |
99A8AF2139520521360013280017330C28490C284905296F0404850404850404 |
850404855549999495A59495A59495A575748939314A432A7A432A7A040485FE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDCACACACA |
CACACACACA99A8AF2139520521360013280017330C28490C28497BC6D694F6F9 |
94F6F994F6F994F6F994ADCE8494948494948494947B847B2139520687870687 |
8702FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800 |
005800006D00006D00006D00006D00006D00006D00006D00006D00006D000058 |
0000580000580000580000480000480000580000580000580000580000580000 |
6D00006D00006D00006D00005800005800005800005800005800005800005800 |
005800005800006D00006D00006D00006D00006D00006D000058000058000048 |
000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBC6A65973 |
2849631044692532663944692549631059732859732859732859732844733632 |
66394963104963104963100874010084000084000C2B050E0F0E0C2B05214718 |
3266393266393266393266397BA98486BC8A86BC8A2A542A0C2B050E0F0E0C2B |
0500420800420800420800420800420800420800420800420800420800420800 |
42080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
98B9FF105AFE0052FA105AFE266AFE105AFE0052FA105AFE105AFE105AFE105A |
FE1663FE266AFE266AFE266AFE266AFE266AFE266AFE266AFE05296F00132805 |
296F0035AF0243CC0243CC0243CC0243CC1863EF216BEF216BEF0243CC002D94 |
0E0F0E002D940052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696965A635A4239425A63 |
5A5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4239424239424239424239424239424239424239424239424239424239 |
424239423030303030302118212118212118211018210E0F0E0E0F0E0E0F0E0E |
0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E |
0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E1018212118212118212118212118 |
2121182121182121182121182121182121182121182121182121182121182110 |
18210E0F0E0E0F0E0E0F0E211821FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23C6FF00BCFF00 |
BDFF00BDFF00BDFF00BDFF00BDFF00B8FF80DEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC1FF00BCFF |
00BDFF00BDFF00BDFF00BDFF00BDFF0FC1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFEDEDEDEDEDEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDDADADBCACA |
CACACACACACACACACACAADADBB2139520C28490C2849213952213952857B7A94 |
8C8C948C8C948C8C948C8CB79670CE9C5ACE9C5AB186508B51128B51128B5112 |
8B5112FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
DADADBCACACACACACACACACACACACAADADBB2139520C28490C28492139522139 |
527574898689968689968689968689968484B9847BEF847BEF6F68D7432A7A43 |
2A7A432A7A432A7A212184FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
F7F7EFEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED |
EDEDEDEDEDDADADBCACACACACACACACACACACACAADADBB2139520C28490C2849 |
2139522139527792858494948494948494948494944E8E89318C84318C84318C |
8406878706878706878706878702FFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00 |
003300004800004800004800005800006D00006D00006D00006D00006D00006D |
0000580000580000580000580000480000480000480000480000480000480000 |
5800005800005800005800006D00006D00006D00006D00005800005800005800 |
005800005800005800005800005800006D00006D00006D00006D000058000058 |
000058000058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFED1D4B69CA584597328526B18446925447336446925526B1859732859 |
7328597328597328547331447336526B184469254469252D6B09087401005800 |
0C2B050E0F0E1148162A542A397342779C7B779C7B779C7BB7DBB9ADDEB59CCE |
A55487563266390E0F0E0C2B0504461000420800420800420800420800420800 |
4208004208004208004208004208004208004208638C65ADC6B5FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEB5CEFF689AFF105AFE105AFE105AFE1663FE105AFE105A |
FE105AFE105AFE105AFE105AFE1663FE1663FE1663FE266AFE266AFE266AFE18 |
63EF0944B70018520017330D468D0944B70243CC5284E75284E75284E7689AFF |
538CFE266AFE125AED0243CC00104A0035AF004AE90052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA689AFFA9C6FFFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696963030 |
304E4E4E5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E |
6E6E6E6E6E6E6E6E5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4239424239424239424239424239 |
4242394242394242394242394242394242394230303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30303030303030303030303030303030301018210E0F0E0E0F0EFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF14C4FF00BEFF00BEFF00BEFF00BEFF00BEFF00BEFF00B9FF80DFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFF0FBFF0FC2FF00BDFF00BEFF00BEFF00BEFF00BEFF00BEFF0FC2FFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE6E6E6E5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A |
5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E868686CACACACACACACACACACACACACACACA96969696969696 |
9696969696969696895A268B51128B51128B51128B51128B51128B51128B5112 |
B53910FF0202FF0202FF0202FF0202FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE6E6E6E5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A |
635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E868686CACACACACACACACACACACACACACACA9696 |
969696969696969696969696964A358C432A7A432A7A432A7A432A7A432A7A43 |
2A7A432A7A31217B040485040485040485040485FEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A5A635A5A635A5A635A5A635A5A63 |
5A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACACACACACACACACACACA |
CACACA9696969696969696969696969696960687870687870687870687870687 |
8706878706878706878700B1B102FFFF02FFFF02FFFF02FFFFFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800005800006D00006D |
00006D00006D00006D0000580000580000580000580000480000480000330000 |
3300004800004800004800004800004800005800005800005800005800006D00 |
006D00006D00006D00005800005800005800005800005800006D00006D00006D |
00006D00006D0000580000580000580000580000580000480000480000480000 |
33FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE59732859732859732859732859732859 |
7328597328597328597328597328597328597328597328597328597328547331 |
397342597328425A160E0F0E0C2B05044610397342397342397342FEFEFEFEFE |
FEFEFEFEFEFEFEDEE9ED9CCEA59CCEA586BC8A11481611481611481600420800 |
4208004208004208004208004208004208004208004208004208004208004208 |
004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE105AFE105AFE105AFE105A |
FE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE10 |
5AFE1663FE266AFE105AFE0944B70E0F0E0018520D468D0243CC0243CC0243CC |
FEFEFEFEFEFEFEFEFEFEFEFEBDD6FF266AFE266AFE266AFE004AE9004AE9004A |
E90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE5A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E |
6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E5A635A4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E42394242394242394242394242394242394242394230303042 |
3942303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
303030101821FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11C3FF00BEFF00BEFF00BEFF00BEFF |
00BEFF00BEFF00B9FF80DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC2FF00BDFF00BEFF00BEFF00BE |
FF00BEFF00BEFF0FC2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFE5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A |
5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACAADB5B596969696 |
9696969696948C8C2118212118210C28490C2849D81605FF0202FF0202FF0202 |
FF0202FF0202FF0202FF0202FF5252FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE5A635A5A635A5A635A5A635A5A635A5A635A5A |
635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686CACACAADB5 |
B5969696969696969696948C8C2118212118210C28490C284904048504048504 |
04850404850404850404850404850404855256B5FEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE5A635A5A635A5A635A5A635A5A63 |
5A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686 |
CACACAADB5B5969696969696969696948C8C2118212118210C28490C284900DE |
E702FFFF02FFFF02FFFF02FFFF02FFFF02FFFF02FFFF52FFFFFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE000033000048000048 |
00004800005800006D00006D00006D00006D00006D0000580000580000580000 |
5800004800004800003300003300004800004800004800004800004800005800 |
005800005800005800006D00006D00006D00006D000058000058000058000058 |
00005800006D00006D00006D00006D00006D0000580000580000580000580000 |
58000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE59732859 |
7328597328597328597328597328597328597328597328597328597328597328 |
597328597328597328597328597328597328425A160E0F0E0C2B050C2B050446 |
10779C7BDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEECF7EC8CB5945487560C |
2B05114816114816004208004208004208004208004208004208004208004208 |
004208004208004208004208004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE10 |
5AFE105AFE105AFE105AFE105AFE105AFE1663FE105AFE0944B70E0F0E05296F |
002D940243CC6B94E7CADBFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FCCADBFE689A |
FF3773EF0035AF0243CC004AE90052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE3030304239425A635A5A635A5A |
635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E |
6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E42 |
3942423942303030423942303030423942303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030305A635AFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1CC4FF |
00BCFF00BDFF00BDFF00BDFF00BDFF00BDFF00B8FF80DEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FC1 |
FF00BCFF00BDFF00BDFF00BDFF00BDFF00BDFF0FC1FFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9663238B51128B5112 |
655A565A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A63 |
5A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E86868696969696969696969696969696 |
96969696966E6E6E4E4E4EBBBBBBBBBBBBB5ADAD0E0F0E0E0F0EEDEDEDFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE2556930D |
468D0D468D4A5A6B5A635A5A635A5A635A5A635A5A635A5A635A5A635A5A635A |
5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E8686869696969696969696 |
969696969696969696966E6E6E4E4E4EBBBBBBBBBBBBB5ADAD0E0F0E0E0F0EED |
EDEDFEFEFEEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCEFF7FCFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FE0404850404850404854242635A635A5A635A5A635A5A635A5A635A5A635A5A |
635A5A635A5A635A5A635A4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E868686969696 |
9696969696969696969696969696966E6E6E4E4E4EBBBBBBBBBBBBB5ADAD0E0F |
0E0E0F0EEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE00003300004800004800004800005800006D00006D00006D00006D0000 |
6D00005800005800005800005800004800004800003300003300004800004800 |
004800004800005800005800005800005800005800006D00006D00006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D0000 |
58000058000058000058000058000048000048000048000033FEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFE597328597328637A2D637A2D637A2D637A2D637A2D637A2D |
637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D637A2D597328425A |
160E0F0E0E0F0E0C2B050042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFE8CAD8C5487560C2B05114816114816004208004208004208004208 |
004208004208004208004208004208004208004208004208004208004208FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE105AFE105AFE105AFE105AFE105AFE105AFE10 |
5AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE105AFE |
105AFE0944B70E0F0E05296F002D940243CC8CADE7FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFE77A5FF3773EF002D940243CC004AE90052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE948C8C4E4E4E2118213030304239424E4E4E4E4E4E5A635A5A635A6E6E6E |
6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E423942423942423942303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030302118210E0F0E868686FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF2FC7FF00B9FF00BBFF00BBFF00BBFF00BBFF00BBFF00B6 |
FF80DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFF0FBFF0FBFFF00BAFF00BBFF00BBFF00BBFF00BBFF00BBFF0F |
BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEF7EFEDA57B42A56B29895A267B52187B52187B52187B52187B52187B52 |
187B52187B52187B5218895A26B5ADAD0E0F0E0E0F0E21182110182110182110 |
18211018211018211018211018211018212118213030304239424E4E4EADB5B5 |
001328001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEEAEEFA4A73AF2963A5255693255693255693255693255693 |
255693255693255693255693255693255693B5ADAD0E0F0E0E0F0E2118211018 |
211018211018211018211018211018211018211018212118213030304239424E |
4E4EADB5B5001328001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFA0303EC0303EC0000AD04048504048504 |
0485040485040485040485040485040485040485212184B5ADAD0E0F0E0E0F0E |
2118211018211018211018211018211018211018211018211018212118213030 |
304239424E4E4EADB5B5001328001328F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0000330000480000480000480000580000 |
6D00006D00006D00006D00006D00005800005800005800005800004800004800 |
0048000048000033000033000048000058000058000058000058000058000058 |
00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D0000 |
6D00006D00006D00005800005800005800005800005800005800004800004800 |
0048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE597328637A2D6B8B386B8B38 |
6B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B386B8B |
386B8B386B8B38637A2D425A160E0F0E0E0F0E0C2B050042088CAD94FEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8CAD8C5487560C2B05114816114816 |
0042080042080042080042080042080042080042080042080042080042080042 |
08004208004208004208FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE105AFE1663FE26 |
6AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE266AFE |
266AFE266AFE266AFE266AFE105AFE0944B70E0F0E05296F002D940243CC8CAD |
E7FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF3773EF002D9402 |
43CC004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EF9696964E4E4E303030 |
3030304239424E4E4E4E4E4E4E4E4E4E4E4E5A635A5A635A5A635A4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E |
4E4E4E4E4E4E4E4E4E4239424239424239424239423030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030301018214E4E |
4E969696FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61D3FF00B4FF00B7FF00B7 |
FF00B7FF00B7FF00B7FF00B2FF80DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FBFF0FBBFF00B6FF00B7FF00 |
B7FF00B7FF00B7FF00B7FF0FBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7EFEDEDE9DEB186509663238B51 |
128B51128B51128B51128B51128B51128B51128B51128B5112895A2630303021 |
18210E0F0E0E0F0E0E0F0E211821303030303030303030303030303030303030 |
4E4E4EADB5B5ADB5B5CACACAA8A8A8001328F7F7EFFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFADEE9ED5A84B5 |
2556932556930D468D0D468D0D468D0D468D0D468D0D468D0D468D2556932556 |
933030302118210E0F0E0E0F0E0E0F0E21182130303030303030303030303030 |
30303030304E4E4EADB5B5ADB5B5CACACAA8A8A8001328F7F7EFFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED8D8FFD8 |
D8FF3535EF0303EC0000AD040485040485040485040485040485040485040485 |
0404852121843030302118210E0F0E0E0F0E0E0F0E2118213030303030303030 |
303030303030303030304E4E4EADB5B5ADB5B5CACACAA8A8A8001328F7F7EFFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0000330000 |
4800004800004800005800006D00006D00006D00006D00006D00006D00005800 |
0058000058000058000048000048000048000048000048000048000058000058 |
00005800005800006D00006D00006D00006D00006D00006D0000580000580000 |
5800005800005800006D00006D00006D00006D00006D00005800005800005800 |
0058000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
6B8B386B8B386B8B38769147769147769147769147769147769147849C4E8CAA |
578CAA5777A55A739C63739C63739C63739C63849C4E5A73420E0F0E0E0F0E0C |
2B05004208296331548756FEFEFEFEFEFEFEFEFEFEFEFED8EAD994B59C6B9873 |
5487560C2B051148161148160042080042080042080042080042080042080042 |
08004208004208004208004208004208004208004208FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFE1663FE1663FE266AFE2973FE2973FE2973FE2973FE2973FE2973FE |
3377FE3377FE3377FE3377FE2973FE2973FE2973FE2973FE266AFE295AB50E0F |
0E05296F002D940243CC2965D6527BDEFEFEFEFEFEFEFEFEFEFEFEFED9E7FE84 |
ADFF538CFE3773EF002D940243CC004AE90052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FAFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEEDEDED8686863030303030304239424239424E4E4E4E4E |
4E4E4E4E4E4E4E42394230303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030423942423942423942 |
4239424239424239424239424239424239424239424239424239424239424239 |
4230303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030302118212118 |
21303030868686C6BDBDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF9BE2FF00B1FF00B3FF00B3FF00B3FF00B3FF00B3FF00AEFF81DAFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 |
FBFF0FB8FF00B2FF00B3FF00B3FF00B3FF00B3FF00B3FF14B9FFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEEDE9DEE8D7C7B796709663239663239663239663239663238B51128B |
51128B51128B5112A8A8A8969696303030303030303030303030303030303030 |
3030304E4E4E5A635A5A635A7B847BCACACACACACACACACACACACA99A8AFFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEDEE9EDD6DEEF6B8CBD2556932556932556932556932556 |
930D468D0D468D0D468D255693A8A8A896969630303030303030303030303030 |
30303030303030304E4E4E5A635A5A635A7B847BCACACACACACACACACACACACA |
99A8AFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFED8D8FFC6C6FF4A4AEF0303EC0303EC0303EC |
0303EC0000D9040485040485040485040485A8A8A89696963030303030303030 |
303030303030303030303030304E4E4E5A635A5A635A7B847BCACACACACACACA |
CACACACACA99A8AFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE00003300004800004800004800005800006D00006D00006D00 |
006D00006D00006D00006D00006D00006D000058000058000048000058000058 |
00005800005800005800005800006D00006D00006D00006D00006D00006D0000 |
6D00006D00005800005800005800005800005800006D00006D00006D00006D00 |
006D00006D00006D00006D000058000058000048000048000048000033FEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFE849C4E7691476B8B38849C4E849C4E849C4E849C |
4E849C4E849C4E8CAA5792B26D92B26D92B26D75AF7475AF7475AF7475AF7492 |
B26D7691470E0F0E0C2B050C2B05004208004208004208D8EAD9EDEDEDEDEDED |
EDEDEDB7DBB963946B5487564574460C2B051148161148160042080042080042 |
080042080042080042080042080042080042080042080042080042081052182A |
542AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE3377FE3377FE266AFE3377FE3377FE |
3377FE3377FE3377FE3377FE427BFE4384FE4384FE3377FE3377FE3377FE3377 |
FE3377FE3377FE2965D600082505296F002D940944B70243CC0243CCD9E7FED9 |
E7FED9E7FED9E7FEB5CEFF4384FE3377FE2965D6002D940035AF004AE90052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA105AFE266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBB |
BB7B847B4239423030304239424239424E4E4E42394230303030303030303030 |
3030303030303030303030303030303030303030423942423942423942423942 |
4239424239424239424239424239424239424239424239424239423030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030301018211018211018211018210E0F0E0E0F |
0E0E0F0E0E0F0E4E4E4EBBBBBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFB0E6FF00AEFF00AEFF00AEFF00AEFF00AEFF00 |
AEFF00A8FF81D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFF1FBFF0FB3FF00ADFF00AEFF00AEFF00AEFF00AEFF |
00ADFF31BEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDE9DEE8D7C7E8D7C7E8 |
D7C7E8D7C7DAB587966323966323966323966323B18650BBBBBB969696423942 |
3030304E4E4E5A635A5A635A5A635A5A635A6E6E6E948C8CCACACACACACACACA |
CACACACACACACACACACADADADBB5ADADF7EFEDFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDEE9EDC6D6 |
E7C6D6E7C6D6E7C6D6E794ADCE2556932556932556932556935A84B5BBBBBB96 |
96964239423030304E4E4E5A635A5A635A5A635A5A635A6E6E6E948C8CCACACA |
CACACACACACACACACACACACACACACADADADBB5ADADF7EFEDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
D8D8FFB5B5FFB5B5FFB5B5FFB5B5FF7B7BF70000D90000D90000D90000D93535 |
EFBBBBBB9696964239423030304E4E4E5A635A5A635A5A635A5A635A6E6E6E94 |
8C8CCACACACACACACACACACACACACACACACACACADADADBB5ADADF7EFEDFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00003300004800004800004800 |
005800006D00006D00006D00006D00006D00006D00006D00006D00006D00006D |
00005800005800005800005800005800006D00006D00006D00006D00006D0000 |
6D00006D00006D00006D00005800005800005800005800005800005800005800 |
005800006D00006D00006D00006D00006D00006D00006D00006D000058000048 |
000048000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6849C |
4E849C4E849C4E92B26D92B26D8CAA5775AF7492B26D92B26D92B26D92B26D86 |
BC8AA5C674ADD08C9CCEA5A5C674A5C6749CCEA53030300E0F0E0C2B05004208 |
00420800420818532139734239734245744663946B2147180C2B050E0F0E0C2B |
0500420800420800420800420800420800420800420800420800420800420800 |
42080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
A9C6FF3377FE3377FE2973FE266AFE266AFE266AFE3377FE427BFE4384FE4384 |
FE4384FE4384FE4384FE538CFE689AFF689AFF5A94FF2973FE0C28490E0F0E0D |
468D0035AF0243CC0243CC0243CC0243CC0243CC125AED4384FE0944B705296F |
0E0F0E002D940052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB7B847B42394230303030 |
3030303030303030423942423942423942423942423942423942423942423942 |
4E4E4E4239424239424239424239424239424239424239424239424239424239 |
4242394230303042394230303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030302118211018211018211018210E0F0E0E0F0E0E0F0E0E0F0E1018211018 |
211018213030301018210E0F0E868686BBBBBBFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0EFFF02A9FF00 |
A8FF00A9FF00A9FF00A9FF00A9FF00A7FF24B4FF48C0FF48C0FF48C0FF48C0FF |
48C0FF48C0FF48C0FF48C0FF48C0FF48BFFF52C4FFF4FCFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4E0FF48BCFF48C0FF48 |
C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF48C0FF43BFFF04AAFF00A8FF |
00A9FF00A9FF00A9FF00A9FF00A6FF63CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF7EFEDD1D4B6D1D4B6D1D4B6D1D4B6 |
D1D4B6BBBBBBBBBBBB9696965A635A6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E |
6E948C8CBBBBBBDADADBCACACACACACACACACACACACACACACAADB5B5DADADBF7 |
F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFAB6C8DAB6C8DAB6 |
C8DAB6C8DAB6C8DABBBBBBBBBBBB9696965A635A6E6E6E6E6E6E6E6E6E6E6E6E |
6E6E6E6E6E6E948C8CBBBBBBDADADBCACACACACACACACACACACACACACACAADB5 |
B5DADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFAA5A5 |
FFA5A5FFA5A5FFA5A5FFA5A5FFBBBBBBBBBBBB9696965A635A6E6E6E6E6E6E6E |
6E6E6E6E6E6E6E6E6E6E6E948C8CBBBBBBDADADBCACACACACACACACACACACACA |
CACACAADB5B5DADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE00 |
003300004800004800004800005800006D00006D00006D00006D00006D00006D |
00006D00006D00006D00006D00005800005800005800005800005800006D0000 |
6D00006D00005800005800006D00006D00005800005800005800005800004800 |
004800004800004800004800005800005800005800006D00006D00006D00006D |
00006D00006D000058000048000048000048000033FEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFED1D4B6849C4E77A55A8CAA5792B26D92B26D92B26D92B26D92 |
B26D95BD8492B26DA5BD77A5BD7798CA94ADD08CADD08CADD08C98CA94ADD08C |
739C635667350E0F0E0C2B050C2B050C2B050C2B052147182147182147182A54 |
2A0C2B050E0F0E0E0F0E0C2B0500420800420800420800420800420800420800 |
42080042080042080042080042080042080042088CAD94FEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEA9C6FF3377FE3377FE2973FE266AFE266AFE266A |
FE266AFE3377FE4384FE4384FE4384FE4384FE5A94FF538CFE4384FE689AFF68 |
9AFF538CFE4A73AF25569300173305296F0035AF0035AF0035AF0035AF0035AF |
0944B7295AB50018520017330E0F0E002D940052FA0052FA0052FA0052FA0052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEBBBBBB7B847B3030300E0F0E423942423942423942423942 |
4239424239424239424239424239424239424239424239424239424239424239 |
4242394242394242394242394242394242394230303030303030303030303030 |
3030303030303030303030303030303030303030303030211821101821101821 |
1018210E0F0E0E0F0E0E0F0E0E0F0E1018211018211018212118213030303030 |
303030303030303030303030302118213030304E4E4ECACACAFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFEEF9FF1AABFF00A0FF00A2FF00A2FF00A2FF00A2FF00A2FF00A0FF |
009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009CFF04A4 |
FFEFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFF7ACFFF0097FF009EFF009EFF009EFF009EFF009EFF009EFF009EFF009EFF |
009EFF009EFF00A1FF00A2FF00A2FF00A2FF00A2FF00A2FF02A0FF94D9FFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDBBBBBBA8A8A87B847B6E6E |
6EA8A8A8CACACACACACA9696966E6E6E948C8CB5ADADCACACACACACACACACACA |
CACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDBBBBBBA8A8A8 |
7B847B6E6E6EA8A8A8CACACACACACA9696966E6E6E948C8CB5ADADCACACACACA |
CACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDEDEDEDBB |
BBBBA8A8A87B847B6E6E6EA8A8A8CACACACACACA9696966E6E6E948C8CB5ADAD |
CACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE00003300003300003300004800005800006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D0000580000580000 |
5800005800005800006D00006D00006D00005800005800006D00006D00005800 |
0058000058000058000048000048000048000048000048000058000058000058 |
00006D00006D00006D00006D00006D00006D0000580000480000480000480000 |
33FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6849C4E75AF7475AF7492 |
B26D92B26D92B26D92B26D95BD8486BC8AA5C674A5C674A5C6749CCEA5ADD08C |
ADD08C9CCEA598CA94A5C674A5C67492B26D0E0F0E0E0F0E0C2B050C2B050C2B |
050C2B050C2B050C2B050C2B050E0F0E0E0F0E0E0F0E0C2B0500420800420800 |
4208004208004208004208004208004208004208004208004208004208004208 |
8CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9C6FF3377FE3377 |
FE2973FE266AFE266AFE266AFE266AFE3377FE3377FE4384FE4384FE4384FE68 |
9AFF538CFE3377FE5A94FF689AFF689AFF689AFF5A84DE0E0F0E001852002D94 |
002D94002D94002D94002D94002D94002D940008250E0F0E0E0F0E002D940052 |
FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB2118210E0F0E |
0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F |
0E0E0F0E10182110182110182110182110182110182110182110182110182110 |
18211018211018211018211018211018211018210E0F0E0E0F0E0E0F0E0E0F0E |
0E0F0E1018211018211018212118213030303030303030303030303030303030 |
303030303030303030303030303030303030301018214E4E4E948C8CEDEDEDFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFEFF74C9FF0099FF009BFF009CFF |
009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009C |
FF009CFF009CFF009AFF0FA1FFF0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFF80CEFF0095FF009CFF009CFF009CFF009CFF |
009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009CFF009C |
FF009BFF0FA1FFD8F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEEDEDEDDADADBCACACABBBBBBEDEDEDFEFEFEFEFEFEDADADB9696965A635A6E |
6E6E969696A8A8A8CACACACACACACACACACACACACACACACACACADADADBDADADB |
F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEEDEDEDDADADBCACACABBBBBBEDEDEDFEFEFEFEFEFEDADADB9696 |
965A635A6E6E6E969696A8A8A8CACACACACACACACACACACACACACACACACACADA |
DADBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEEDEDEDDADADBCACACABBBBBBEDEDEDFEFEFEFEFEFE |
DADADB9696965A635A6E6E6E969696A8A8A8CACACACACACACACACACACACACACA |
CACACACADADADBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9495A59495A5636384 |
00003300005800005800006D00006D00006D00006D00006D00006D00006D0000 |
6D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00006D00006D000058000058000058000058000048000048000048000048 |
00004800005800005800005800006D00006D00006D00006D00006D0000580000 |
580000480000483131639495A5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1 |
D4B692B26D92B26D92B26D86BC8AA5BD77A5C674A5C674A5C674A5C6749CCEA5 |
ADD08CADD08CADD08CADD08C9CCEA5A5C674A5BD7786BC8A92B26D92B26D86BC |
8A3266390E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0C2B0500420831 |
5200315200315200004208004208004208004208004208004208004208004208 |
0042080042080042080042088CAD94FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFE98B9FF266AFE266AFE266AFE427BFE3377FE2973FE2973FE2973FE29 |
73FE2973FE2973FE2973FE2973FE4384FE689AFF4384FE4384FE4384FE4384FE |
4384FE427BFE21397B0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E0035 |
AF004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA8CB5FFFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFE0E0F0E1018213030304239423030302118212118212118212118212118 |
212118212118212118211018211018211018211018211018211018211018210E |
0F0E0E0F0E0E0F0E0E0F0E0E0F0E0E0F0E101821101821101821211821211821 |
3030303030303030303030303030303030303030303030303030303030303030 |
303030303030303030303030303030303030303030302118210E0F0E4E4E4ECA |
CACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
C7E8FF0093FF0093FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094 |
FF0094FF0094FF0094FF0094FF0094FF0094FF0092FF0F9BFFF0F9FFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80CAFF008DFF |
0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094FF0094 |
FF0094FF0094FF0094FF0094FF0090FF4AB3FFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEDADADB9696969696964E4E4E5A635A969696CACACACACACACACACA |
CACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEDADADB9696969696964E4E4E5A635A969696CACACACA |
CACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB9696969696964E4E4E5A635A9696 |
96CACACACACACACACACACACACACACACACACACACACACADADADBF7F7EFFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800006D0000 |
6D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00006D00005800006D00006D00006D00006D000058000058000058000058 |
00004800003300003300004800004800004800004800005800005800006D0000 |
6D00006D00006D00005800004800004800003358587AFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEEDE9DEBDD6A595BD8495BD8495BD8495BD84ADD08C |
ADD08CADD08CA5C6749CCEA59CCEA5ADD08CADD08CADD08C98CA9495BD8495BD |
8495BD8492B26D92B26D95BD845A73423142182431092431092431092431090C |
2B05004208005800005800174A00244A00315200174A00004208004208004208 |
004208004208004208004208004208004208085218779C7BCAD6C8FEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECADBFE8CB5FF3377FE2973FE427BFE33 |
77FE2973FE2973FE3377FE4384FE2973FE2973FE2973FE4384FE538CFE689AFF |
4384FE4384FE4384FE4384FE4384FE4384FE295AB521397B21397B05296F0529 |
6F05296F05296F21397B2965D6125AED004AF70052FA0052FA0052FA0052FA00 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA105AFE77A5FFCADBFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADBCAD6C85A635A5A635A1018213030 |
304239424239424E4E4E4E4E4E4E4E4E42394242394242394242394242394242 |
3942423942423942423942303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303021182130 |
3030948C8CDADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFF4FAFF2EA0FF0087FF008BFF008BFF008BFF008B |
FF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF00 |
89FF0F92FFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFF80C5FF0083FF008BFF008BFF008BFF008BFF008BFF008BFF008B |
FF008BFF008BFF008BFF008BFF008BFF008BFF008BFF008BFF0288FFB4DDFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B847B4E4E4E |
423942969696A8A8A8CACACACACACACACACACACACACACACABBBBBBDADADBF7F7 |
EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED7B |
847B4E4E4E423942969696A8A8A8CACACACACACACACACACACACACACACABBBBBB |
DADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEEDEDED7B847B4E4E4E423942969696A8A8A8CACACACACACACACACACACACACA |
CACABBBBBBDADADBF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD0000330000480000 |
5800005800005800006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00006D00006D00006D00006D00005800005800006D00006D00006D000058 |
0000580000580000480000480000480000330000330000480000480000480000 |
4800005800005800006D00006D00006D00006D00005800004800004800003358 |
587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98CA94 |
95BD84A5C67498CA949CCEA59CCEA5ADD08CADD08C9CCEA59CCEA59CCEA5A5C6 |
74A5C674A5C67486BC8A86BC8A92B26D92B26D92B26D92B26D849C4E6B8B3859 |
7328526B224963104963102D6B09008400008400087401004208244A00315200 |
315200174A000042080042080042080042080042080042080042080042082A54 |
2AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE4384FE3377FE427BFE3377FE2973FE2973FE538CFE689AFF2973FE2973FE |
2973FE689AFF689AFF689AFF4384FE4384FE4384FE4384FE4384FE4384FE3377 |
FE3377FE4384FE266AFE0052FA0052FA1663FE4384FE4384FE3377FE004AE900 |
52FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEDADADBCACACA5A635A30303021182130303042394242394242 |
3942423942423942423942423942423942423942423942423942423942303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30300E0F0E4E4E4E948C8CEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0E0FF0383 |
FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF00 |
83FF0083FF0083FF0083FF0081FF0F8BFFF0F8FFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80C2FF007AFF0083FF0083FF0083 |
FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF0083FF00 |
84FF0080FF2998FFF9FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEEDEDED8686866E6E6E4239424E4E4E969696969696B5ADADBBBB |
BBCACACABBBBBBBBBBBBCACACAEDEDEDEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEEDEDED8686866E6E6E4239424E4E4E969696969696 |
B5ADADBBBBBBCACACABBBBBBBBBBBBCACACAEDEDEDEDEDEDFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDED8686866E6E6E4239424E4E4E96 |
9696969696B5ADADBBBBBBCACACABBBBBBBBBBBBCACACAEDEDEDEDEDEDFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEB3B3CD00003300004800005800005800005800006D00006D00006D00006D00 |
006D00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D |
00006D00006D00006D0000580000580000580000480000480000480000480000 |
4800004800004800005800005800005800006D00006D00006D00006D00006D00 |
005800004800004800003358587AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEADD08CA5C674A5C67498CA949CCEA5ADD08CADD08CADD0 |
8C9CCEA598CA94A5C674A5C674A5C674A5C674A5C674A5BD7786BC8A92B26D8C |
AA57849C4E7691476B8B384963104963104963104963102D6B09008400008400 |
0084000084000058000042083152003152003152000042080042080042080042 |
080042080042080042082A542AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFE538CFE3377FE427BFE3377FE3377FE689AFF |
689AFF689AFF2973FE4384FE689AFF689AFF689AFF689AFF689AFF538CFE2973 |
FE3377FE4384FE3377FE3377FE3377FE105AFE0052FA0052FA0052FA1663FE43 |
84FE4384FE3377FE3377FE125AED004AE90052FA0052FA0052FA0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA266AFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEDEDEDED |
EDED948C8C4E4E4E211821423942423942423942423942423942423942423942 |
4239424239424239424239423030303030303030303030303030303030303030 |
3030303030303030303030303030303030303030303030303030303030303030 |
30302118211018212118216E6E6ECACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFBFDFF4CA4FF0078FF007DFF007DFF007DFF007DFF007DFF00 |
7DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007BFF0F85FFF0F7FF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80BE |
FF0073FF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF007DFF00 |
7DFF007DFF007DFF007DFF007CFF0079FF9BCCFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E6E6E |
6E6E6E6E4E4E4E6E6E6E969696969696B5ADADBBBBBBBBBBBBBBBBBBCACACAF7 |
F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
6E6E6E6E6E6E6E6E6E4E4E4E6E6E6E969696969696B5ADADBBBBBBBBBBBBBBBB |
BBCACACAF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFE6E6E6E6E6E6E6E6E6E4E4E4E6E6E6E969696969696B5ADADBBBBBB |
BBBBBBBBBBBBCACACAF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD00003300004800005800005800005800 |
005800005800005800005800005800006D00006D00006D00006D00006D00006D |
00006D00006D00006D00006D00006D00006D00006D0000580000580000580000 |
4800004800004800004800004800004800004800005800005800005800006D00 |
006D00006D00006D00006D00005800004800003300003358587AFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADD08CADD08CA5C67498CA |
949CCEA5ADD08CADD08CADD08C98CA94ADD08CA5C674A5C674A5BD77A5BD77A5 |
C674A5BD7786BC8A92B26D8CAA577691476B8B386B8B38446925446925496310 |
4963102D6B090084000084000084000084000058000042083152003152003152 |
00174A00004208004208004208004208004208457446779C7BFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE538CFE4384FE |
538CFE3377FE3377FE538CFE538CFE538CFE4384FE538CFE689AFF689AFF689A |
FF5A94FF689AFF5A94FF2973FE3377FE4384FE3377FE2973FE266AFE105AFE10 |
5AFE0052FA0052FA1663FE4384FE4384FE4384FE4384FE125AED004AE90052FA |
0052FA0052FA0052FA0052FA0052FA0052FA0052FA0052FA427BFE77A5FFFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFECACACA6E6E6E211821211821 |
4239424239424239424239424239424239424239424239424239423030304239 |
4230303030303030303030303030303030303030303010182110182110182110 |
18214239427B847B7B847B7B847B948C8CEDEDEDF7F7EFFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7E9FF0173FF0074FF00 |
75FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF |
0075FF0073FF0F7DFFF0F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFF80BAFF006BFF0075FF0075FF0075FF0075FF0075FF00 |
75FF0075FF0075FF0075FF0075FF0075FF0075FF0075FF0070FF5EA8FFF8FBFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A4239423030306E6E6E96 |
9696B5ADADADB5B5BBBBBBCACACAEDEDEDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A4239423030 |
306E6E6E969696B5ADADADB5B5BBBBBBCACACAEDEDEDFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE6E6E6E5A635A |
4239423030306E6E6E969696B5ADADADB5B5BBBBBBCACACAEDEDEDFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB3B3CD29295200 |
004800005800005800005800005800005800005800005800005800006D00006D |
00006D00006D00006D00006D00006D00006D00006D00006D00006D00006D0000 |
6D00006D00005800005800004800004800004800004800004800004800004800 |
005800005800006D00006D00006D00006D00006D000058000058000048292952 |
292952757489FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEA7D6AA9CCEA5ADD08C9CCEA59CCEA59CCEA59CCEA59CCEA5A5C674A5C674A5 |
C674A5C674A5BD7786BC8AA5BD77A5BD7786BC8A92B26D8CAA576B8B38637A2D |
5973283973424469254963104963102D6B090084000084000084000084000058 |
00004208315200315200315200315200244A00004208004208004208004208AD |
C6B5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE538CFE4384FE689AFF3377FE2973FE2973FE2973FE3377FE689A |
FF689AFF689AFF689AFF5A94FF4384FE689AFF5A94FF2973FE3377FE4384FE33 |
77FE266AFE105AFE266AFE1663FE0052FA0052FA1663FE4384FE4384FE4384FE |
4384FE125AED004AE90052FA0052FA0052FA0052FA0052FA0052FA0052FA0052 |
FA0052FAB5CEFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEF7F7EFCACACA4E4E4E1018211018211018211018211018211018 |
211018211018211018211018211018211018210E0F0E5A635A7B847B7B847B7B |
847BEDEDEDF7F7EFF7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF62A6FF0069FF006EFF006EFF006EFF006EFF006EFF006EFF006EFF |
006EFF006EFF006EFF006EFF006EFF006BFF0F77FFF0F6FFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80B7FF0064FF006EFF00 |
6EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF006EFF |
006CFF0772FFD9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFE8686864E4E4E5A635A4E4E4E6E6E6EA8A8A8B5ADADB5ADADA8A8A8F7F7EF |
F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE8686864E4E4E5A635A4E4E4E6E6E6EA8A8A8B5ADADB5ADADA8 |
A8A8F7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFE8686864E4E4E5A635A4E4E4E6E6E6EA8A8A8B5AD |
ADB5ADADA8A8A8F7F7EFF7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFE000033000048000048000048000058000058000058 |
0000580000580000580000580000580000580000580000580000580000580000 |
6D00006D00006D00006D00006D00006D00005800005800005800005800004800 |
004800004800005800005800005800006D00006D00006D00006D000058000058 |
000058000048000033FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEF7F7EFD8EAD99CCEA59CCEA59CCEA59CCEA59C |
CEA59CCEA5A5C674A5C674A5C67486BC8A86BC8A86BC8A86BC8A86BC8A92B26D |
849C4E7691476B8B38637A2D5973283973424469254963104963104963102D6B |
09087401008400008400008400087401004208244A0031520031520031520024 |
4A00004208326639D8EAD9F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEAEEFAA9C6FF3377FE3377FE2973 |
FE2973FE2973FE3377FE689AFF689AFF689AFF538CFE4384FE4384FE4384FE43 |
84FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA |
0052FA105AFE3377FE4384FE4384FE3377FE3377FE004AE90052FA0052FA0052 |
FA0052FA0052FA0052FA3377FED9E7FEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBF3FF277EFF0060FF0067FF0067FF |
0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0064FF0F70 |
FFF0F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFF80B3FF005CFF0067FF0067FF0067FF0067FF0067FF0067FF0067FF0067FF |
0067FF0067FF0067FF0066FF005EFF9BC3FFFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696964E4E4E4E4E4E |
655A56969696969696A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9696964E |
4E4E4E4E4E655A56969696969696A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FE9696964E4E4E4E4E4E655A56969696969696A8A8A8A8A8A8FEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB58587A000033 |
0000330000480000580000580000580000580000580000580000580000580000 |
5800005800005800006D00006D00006D00006D00006D00006D00006D00006D00 |
006D00005800005800005800005800005800005800005800006D00006D00006D |
00006D00005800004800004800003358587ADADADBFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEECF7ECB7 |
DBB9A7D6AA9CCEA59CCEA59CCEA59CCEA5A5C674A5C674A5C67486BC8A86BC8A |
86BC8A86BC8A86BC8A8CAA577691476B8B386B8B38637A2D5973283973424469 |
2549631049631049631049631008740100840000840000840000840000420817 |
4A00315200315200315200315200457446779C7BFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FED9E7FE689AFF3377FE2973FE2973FE2973FE3377FE689AFF689AFF689AFF43 |
84FE4384FE4384FE4384FE3377FE2973FE3377FE3377FE3377FE266AFE105AFE |
266AFE1663FE0052FA0052FA0052FA0052FA3377FE4384FE4384FE4384FE3377 |
FE004AE9004AF70052FA0052FA0052FA0052FA3377FE77A5FFFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
CDE0FF1F71FF005CFF005FFF005FFF005FFF005FFF005FFF005FFF005FFF005F |
FF005FFF005FFF005CFF106AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFF89B5FF0053FF005FFF005FFF005FFF005FFF |
005FFF005FFF005FFF005FFF005FFF005FFF005FFF0059FF5F9BFFFDFEFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEBBBBBB3030304E4E4EA8A8A8A8A8A8A8A8A8FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB3030304E4E4EA8A8A8A8A8A8 |
A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBBBBBB3030304E4E4EA8 |
A8A8A8A8A8A8A8A8FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEADADBB73739473739400104A0000480000580000580000580000 |
5800005800005800005800006D00006D00006D00006D00006D00006D00006D00 |
006D00006D00006D00006D00006D00006D00006D00005800005800005800006D |
00006D00006D00006D00006D00005800004800004800004858587AADADBBFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEB7DBB99CCEA59CCEA59CCEA59CCEA5A5C674 |
A5C674A5C67486BC8A86BC8A86BC8A86BC8A86BC8A849C4E7691476B8B386B8B |
38637A2D59732839734244692549631049631049631049631008740100840000 |
8400008400008400004208174A00315200315200315200315200DADECEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE689AFF2973FE2973FE2973FE33 |
77FE689AFF689AFF689AFF4384FE4384FE4384FE4384FE3377FE2973FE3377FE |
3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA0052FA3377 |
FE4384FE4384FE4384FE3377FE004AE9004AF70052FA0052FA0052FA0052FACA |
DBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBDEFF0358FF0055FF0058FF0058FF0058 |
FF0058FF0058FF0058FF0058FF0058FF0058FF0056FF085DFF78A6FF80ABFF80 |
ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF80ABFF4082FF0052FF |
0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0058FF0053 |
FF2E75FFF0F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE1818420000 |
4800004800004800004800004800004800005800005800006D00006D00006D00 |
006D00006D00006D00005800005800005800005800006D00006D00006D00006D |
00005800005800006D00006D00006D00006D00006D0000580000480000480000 |
33000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEECF7ECECF7EC |
ECF7ECBDD6A5A5C674A5C674A5BD7786BC8A86BC8A86BC8A92B26D92B26D8CAA |
57849C4E7691476B8B386B8B38637A2D59732839734244692549631049631049 |
63104963102D6B092D6B09008400008400008400087401005800044610315200 |
769147D1D4B6F7F7EFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED9 |
E7FECADBFECADBFE84ADFF5A94FF689AFF5A94FF538CFE4384FE3377FE3377FE |
3377FE3377FE2973FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052 |
FA0052FA0052FA0052FA105AFE1663FE4384FE4384FE3377FE2973FE105AFE00 |
4AE90052FA4384FEBDD6FFEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFA0BF |
FF0453FF004EFF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052FF00 |
52FF0051FF0047FF0046FF0046FF0046FF0046FF0046FF0046FF0046FF0046FF |
0046FF0046FF004CFF0052FF0052FF0052FF0052FF0052FF0052FF0052FF0052 |
FF0052FF0051FF004CFF407DFFE5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFE18184200004800004800004800004800004800004800005800 |
005800006D00006D00006D00006D00006D00006D000058000058000058000058 |
00006D00006D00006D00006D00005800005800006D00006D00006D00006D0000 |
6D000058000048000048000033000033CACACAFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6ADD08CA5C67495BD8486BC8A86BC |
8A95BD8492B26D92B26D8CAA57849C4E7691476B8B386B8B38637A2D59732839 |
73424469254963104963104963104963104963102D6B09008400008400008400 |
0084000058000042085667359CA584FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEB5CEFF84ADFF689AFF538CFE |
4384FE4384FE3377FE2973FE2973FE2973FE2973FE3377FE3377FE3377FE266A |
FE105AFE266AFE1663FE0052FA0052FA0052FA0052FA0052FA105AFE4384FE43 |
84FE4384FE4384FE266AFE004AE93377FE84ADFFFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFC3D5FF1E5EFF0045FF004AFF004BFF004BFF00 |
4BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF |
004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004BFF004B |
FF004BFF004BFF004BFF004BFF0049FF0046FF5284FFE8F0FFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEC6C8D658587A00003300003300 |
004800004800004800005800005800005800006D00006D00006D00006D00006D |
00006D00006D00006D00005800006D00006D00006D00006D00006D00006D0000 |
5800006D00006D00006D00005800005800003358587ACACACACACACAEAEEFAFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEA5C67495BD8486BC8A86BC8A95BD8492B26D92B26D8CAA57849C4E7691476B |
8B386B8B38637A2D597328397342446925496310496310496310496310496310 |
2D6B09008400008400008400008400005800004208EFF7FCFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE689AFF538CFE4384FE4384FE3377FE2973FE2973FE2973FE2973 |
FE3377FE3377FE3377FE266AFE105AFE266AFE1663FE0052FA0052FA0052FA00 |
52FA0052FA105AFE4384FE4384FE4384FE4384FE266AFE004AE9EFF7FCFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3D4FF1C |
57FF0042FF0044FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF |
0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0045 |
FF0045FF0045FF0045FF0045FF0045FF0045FF0045FF0041FF0547FF6992FFE8 |
EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEADADBB58587A000033000033000048000048000048000048000058000058 |
00005800006D00006D00006D00006D00006D00006D0000580000580000580000 |
5800005800006D00005800004800005800005800005800005800004858587AAD |
ADBBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFE95BD8486BC8A86BC8A86BC8A95BD8492B26D8C |
AA57849C4E7691476B8B386B8B386B8B38637A2D597328547331446925496310 |
4963104963104963104963104963102D6B090874010084000084000874010874 |
01ECF7ECFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEFF7FC538CFE4384FE4384FE4384FE3377 |
FE2973FE2973FE2973FE3377FE3377FE3377FE3377FE266AFE105AFE1663FE10 |
5AFE0052FA0052FA0052FA0052FA0052FA105AFE1663FE3377FE4384FE4384FE |
3377FE266AFEEFF7FCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFD6E1FF6188FF0641FF003BFF003DFF003FFF003FFF |
003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003F |
FF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003FFF003CFF00 |
37FF1C51FFA7BDFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEDADADB000033000033000048000048 |
0000480000480000480000480000480000580000580000580000580000580000 |
5800005800005800005800005800005800005800004800003300004800004800 |
0048000048000033DADADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE98CA9498CA9498 |
CA9486BC8A95BD8492B26D849C4E7691476B8B386B8B386B8B386B8B38637A2D |
597328597328526B224963104963104963104963104963104963104963100874 |
01008400008400008400008400D8EAD9ECF7ECFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE538C |
FE538CFE538CFE4384FE3377FE2973FE2973FE2973FE3377FE3377FE3377FE33 |
77FE266AFE105AFE105AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA |
0052FA2973FE4384FE4384FE4384FE4384FEEAEEFAEFF7FCFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFBECDFF |
4771FF083EFF0034FF0039FF0039FF003AFF003AFF003AFF003AFF003AFF003A |
FF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF003AFF00 |
39FF0037FF0035FF1347FF7291FFE1E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFE8689960000330000330000330000330000480000480000480000 |
4800004800004800004800004800004800004800004800004800004800004800 |
0033000033000033000033000033292952FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFE92B26D92B26D75AF74849C4E849C4E849C4E |
7691476B8B386B8B38637A2D597328597328526B224963104963104963104963 |
1049631049631049631008740100840000840000840000840000840075AF74FE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE3377FE3377FE427BFE2973FE29 |
73FE2973FE3377FE3377FE3377FE266AFE105AFE105AFE105AFE0052FA0052FA |
0052FA0052FA0052FA0052FA0052FA2973FE4384FE4384FE4384FE4384FE4384 |
FE8CB5FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFF7F9FFB9C8FF2C57FF0334FF0031FF0032FF0034 |
FF0034FF0035FF0035FF0035FF0035FF0035FF0035FF0035FF0035FF0035FF00 |
34FF0034FF0034FF0030FF0033FF0738FF6382FFDCE3FFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE8689960000330000330000330000 |
3300003300003300004800004800004800004800004800004800004800004800 |
0048000048000048000048000033000033000033000033000033292952FEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFED1D4B6D1D4B6 |
CAD6C8D1D4B6BDD6A5BDD6A58CAA576B8B386B8B38637A2D597328597328526B |
2249631049631049631049631049631049631049631077A55A86BC8A86BC8A86 |
BC8A86BC8A86BC8AB7DBB9FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEA9 |
C6FFA9C6FFA9C6FFA5BDFF98B9FF98B9FF538CFE3377FE3377FE266AFE105AFE |
105AFE105AFE0052FA0052FA0052FA0052FA0052FA0052FA0052FA689AFFA9C6 |
FFA9C6FFA9C6FFA9C6FFA9C6FFCADBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECF0 |
FFBDCAFF6D89FF214BFF0332FF0031FF0030FF0028FF002DFF002FFF0031FF00 |
30FF002EFF002AFF002CFF0132FF0031FF0735FF385DFFA3B4FFD9E1FFFAFBFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEADAD |
BB58587A58587A58587A31315A00003300003300003300004800004800004800 |
004800004800004800004800004800004800004800004831316358587A58587A |
58587A58587A757489FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9CA5846B8B386B8B |
38637A2D597328597328526B2249631049631049631049631049631049631049 |
6310BBC6A6FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE77A5FF |
3377FE3377FE266AFE105AFE105AFE105AFE0052FA0052FA0052FA0052FA0052 |
FA0052FA0052FAA9C6FFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBEEFFC6D1FFAFBDFF899FFF5B |
78FF375AFF254BFF113BFF1B44FF2A50FF4F6EFF6984FF99ABFFB7C4FFD5DDFF |
F4F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE9495A500003300003300 |
0033000033000033000033000033000033000033000033000033000033000033 |
0000339495A5FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE |
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
FF00} |
OnMouseMove = DXDrawMouseMove |
end |
end |
object StatusBar: TStatusBar |
Left = 0 |
Top = 517 |
Width = 753 |
Height = 19 |
Panels = <> |
SimpleText = |
' Zeigen Sie mit dem Mauszeiger auf eine Einheit, um deren Eigens' + |
'chaften anzuzeigen...' |
OnMouseMove = DXDrawMouseMove |
object LivesEdit: TSpinEdit |
Left = 8 |
Top = 355 |
Width = 81 |
Height = 22 |
MaxValue = 0 |
MinValue = 0 |
TabOrder = 8 |
Value = 1 |
end |
object LivesEdt: TEdit |
Left = 648 |
Top = 360 |
Width = 73 |
Height = 21 |
TabOrder = 10 |
Text = '1' |
OnChange = LivesEdtChange |
OnKeyPress = LivesEdtKeyPress |
object Enemy8: TRadioButton |
Left = 8 |
Top = 164 |
Width = 65 |
Height = 17 |
Caption = 'Medikit' |
TabOrder = 9 |
OnClick = EnemyClick |
OnMouseMove = DXDrawMouseMove |
end |
object Lives: TUpDown |
Left = 720 |
Top = 360 |
Width = 17 |
Height = 19 |
Min = 1 |
Max = 999 |
Position = 1 |
TabOrder = 11 |
OnClick = LivesClick |
OnMouseMove = DXDrawMouseMove |
end |
object MainMenu: TMainMenu |
Left = 8 |
Top = 8 |
Left = 32 |
Top = 16 |
object Spiel: TMenuItem |
Caption = '&Datei' |
object Neu: TMenuItem |
Caption = '&Neu' |
ShortCut = 16462 |
OnClick = NeuClick |
end |
object N2: TMenuItem |
Caption = '-' |
end |
object Level: TMenuItem |
Caption = '&Verwaltung...' |
ShortCut = 115 |
Caption = '&Laden/Speichern...' |
ShortCut = 16463 |
OnClick = LevelClick |
end |
object Quelltext1: TMenuItem |
Caption = '&Quelltext...' |
ShortCut = 116 |
OnClick = Quelltext1Click |
object AlleLeveldateienaktualisieren1: TMenuItem |
Caption = 'Alle Leveldateien aktualisieren' |
Visible = False |
OnClick = AlleLeveldateienaktualisieren1Click |
end |
object Leveltesten1: TMenuItem |
Caption = 'Level testen' |
OnClick = Leveltesten1Click |
end |
object N1: TMenuItem |
Caption = '-' |
end |
object Neu: TMenuItem |
Caption = '&Neu' |
ShortCut = 117 |
OnClick = NeuClick |
end |
object Spielfelderweitern1: TMenuItem |
Caption = 'Leveleigenschaften...' |
ShortCut = 118 |
OnClick = Spielfelderweitern1Click |
end |
object Leer1: TMenuItem |
336,19 → 6101,34 |
end |
object Hilfe: TMenuItem |
Caption = '&Hilfe' |
object Mitarbeiter: TMenuItem |
Caption = '&Mitwirkende...' |
ShortCut = 120 |
OnClick = MitarbeiterClick |
object Hilfe1: TMenuItem |
Caption = 'Allgemeines' |
GroupIndex = 1 |
Hint = 'Help\DE_General.md' |
OnClick = HilfeTopicClick |
end |
object Leer2: TMenuItem |
object WasgibtesNeues1: TMenuItem |
Caption = 'Was gibt es Neues?' |
GroupIndex = 1 |
Hint = 'Help\DE_Changelog.md' |
OnClick = HilfeTopicClick |
end |
object N4: TMenuItem |
Caption = '-' |
GroupIndex = 1 |
end |
object AufUpdatesprfen1: TMenuItem |
Caption = 'Auf Updates pr'#252'fen' |
GroupIndex = 1 |
OnClick = AufUpdatesprfen1Click |
end |
object N3: TMenuItem |
Caption = '-' |
GroupIndex = 1 |
end |
object Informationen: TMenuItem |
Caption = '&Informationen...' |
GroupIndex = 1 |
ShortCut = 121 |
OnClick = InformationenClick |
end |
end |
/_SpacemissionGroup.groupproj |
---|
0,0 → 1,72 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{43F4FBBE-B306-42B6-A01A-6B1898E07D6A}</ProjectGuid> |
</PropertyGroup> |
<ItemGroup> |
<Projects Include="LevEdit.dproj"> |
<Dependencies/> |
</Projects> |
<Projects Include="SpaceMission.dproj"> |
<Dependencies/> |
</Projects> |
<Projects Include="ENU\LevEdit_ENU.bdsproj"> |
<Dependencies/> |
</Projects> |
<Projects Include="ENU\SpaceMission_ENU.bdsproj"> |
<Dependencies/> |
</Projects> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Default.Personality.12</Borland.Personality> |
<Borland.ProjectType/> |
<BorlandProject> |
<Default.Personality/> |
</BorlandProject> |
</ProjectExtensions> |
<Target Name="LevEdit"> |
<MSBuild Projects="LevEdit.dproj"/> |
</Target> |
<Target Name="LevEdit:Clean"> |
<MSBuild Projects="LevEdit.dproj" Targets="Clean"/> |
</Target> |
<Target Name="LevEdit:Make"> |
<MSBuild Projects="LevEdit.dproj" Targets="Make"/> |
</Target> |
<Target Name="SpaceMission"> |
<MSBuild Projects="SpaceMission.dproj"/> |
</Target> |
<Target Name="SpaceMission:Clean"> |
<MSBuild Projects="SpaceMission.dproj" Targets="Clean"/> |
</Target> |
<Target Name="SpaceMission:Make"> |
<MSBuild Projects="SpaceMission.dproj" Targets="Make"/> |
</Target> |
<Target Name="LevEdit_ENU"> |
<MSBuild Projects="ENU\LevEdit_ENU.bdsproj"/> |
</Target> |
<Target Name="LevEdit_ENU:Clean"> |
<MSBuild Projects="ENU\LevEdit_ENU.bdsproj" Targets="Clean"/> |
</Target> |
<Target Name="LevEdit_ENU:Make"> |
<MSBuild Projects="ENU\LevEdit_ENU.bdsproj" Targets="Make"/> |
</Target> |
<Target Name="SpaceMission_ENU"> |
<MSBuild Projects="ENU\SpaceMission_ENU.bdsproj"/> |
</Target> |
<Target Name="SpaceMission_ENU:Clean"> |
<MSBuild Projects="ENU\SpaceMission_ENU.bdsproj" Targets="Clean"/> |
</Target> |
<Target Name="SpaceMission_ENU:Make"> |
<MSBuild Projects="ENU\SpaceMission_ENU.bdsproj" Targets="Make"/> |
</Target> |
<Target Name="Build"> |
<CallTarget Targets="LevEdit;SpaceMission;LevEdit_ENU;SpaceMission_ENU"/> |
</Target> |
<Target Name="Clean"> |
<CallTarget Targets="LevEdit:Clean;SpaceMission:Clean;LevEdit_ENU:Clean;SpaceMission_ENU:Clean"/> |
</Target> |
<Target Name="Make"> |
<CallTarget Targets="LevEdit:Make;SpaceMission:Make;LevEdit_ENU:Make;SpaceMission_ENU:Make"/> |
</Target> |
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> |
</Project> |
/GamCheat.dfm |
---|
0,0 → 1,104 |
object CheatForm: TCheatForm |
Left = 275 |
Top = 165 |
BorderStyle = bsDialog |
Caption = 'Cheatverwaltung' |
ClientHeight = 233 |
ClientWidth = 313 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poMainFormCenter |
OnHide = FormHide |
OnShow = FormShow |
TextHeight = 13 |
object Label1: TLabel |
Left = 8 |
Top = 8 |
Width = 152 |
Height = 13 |
Caption = 'Bitte geben Sie einen Cheat ein!' |
end |
object Label3: TLabel |
Left = 200 |
Top = 8 |
Width = 106 |
Height = 13 |
Cursor = crHandPoint |
Caption = 'Herausgeber anfragen' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlue |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
Visible = False |
OnClick = Label3Click |
end |
object CheatEdit: TEdit |
Left = 8 |
Top = 32 |
Width = 297 |
Height = 21 |
Cursor = crIBeam |
Ctl3D = True |
ParentCtl3D = False |
PasswordChar = '*' |
TabOrder = 0 |
OnKeyPress = CheatEditKeyPress |
end |
object OKBtn: TButton |
Left = 192 |
Top = 200 |
Width = 115 |
Height = 25 |
Caption = 'OK' |
Default = True |
TabOrder = 1 |
OnClick = OKBtnClick |
end |
object AbbBtn: TButton |
Left = 8 |
Top = 200 |
Width = 113 |
Height = 25 |
Cancel = True |
Caption = 'Abbrechen' |
TabOrder = 2 |
OnClick = AbbBtnClick |
end |
object GroupBox1: TGroupBox |
Left = 8 |
Top = 64 |
Width = 297 |
Height = 129 |
Caption = 'Aktivierte Cheats' |
TabOrder = 3 |
object Label2: TLabel |
Left = 8 |
Top = 104 |
Width = 89 |
Height = 13 |
Cursor = crHandPoint |
Caption = 'Cheat deaktivieren' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlue |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
OnClick = Label2Click |
end |
object CheatBox: TListBox |
Left = 8 |
Top = 24 |
Width = 281 |
Height = 73 |
ItemHeight = 13 |
TabOrder = 0 |
end |
end |
end |
/GamCheat.pas |
---|
0,0 → 1,145 |
unit GamCheat; |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
StdCtrls, ExtCtrls, ShellAPI{$IF CompilerVersion >= 23.0}, System.UITypes{$IFEND}; |
type |
TCheatForm = class(TForm) |
Label1: TLabel; |
CheatEdit: TEdit; |
OKBtn: TButton; |
AbbBtn: TButton; |
GroupBox1: TGroupBox; |
CheatBox: TListBox; |
Label2: TLabel; |
Label3: TLabel; |
procedure AbbBtnClick(Sender: TObject); |
procedure OKBtnClick(Sender: TObject); |
procedure FormShow(Sender: TObject); |
procedure FormHide(Sender: TObject); |
procedure CheatEditKeyPress(Sender: TObject; var Key: Char); |
procedure Label2Click(Sender: TObject); |
procedure Label3Click(Sender: TObject); |
public |
procedure SearchCheats; |
end; |
var |
CheatForm: TCheatForm; |
implementation |
uses |
GamMain, Global; |
{$R *.DFM} |
procedure TCheatForm.AbbBtnClick(Sender: TObject); |
begin |
close; |
end; |
procedure TCheatForm.SearchCheats; |
begin |
Cheatbox.Items.Clear; |
if ctInfiniteLives in mainform.FCheats then Cheatbox.Items.Append(Cheat1Text); |
end; |
procedure TCheatForm.OKBtnClick(Sender: TObject); |
resourcestring |
SCheatUnlocked = 'Dieser Cheat wurde freigeschaltet!'; |
SCheckAlreadyUnlocked = 'Dieser Cheat wurde bereits freigeschaltet!'; |
SNoCheat = 'Dies ist kein offizieller Cheat!'; |
var |
temp: string; |
i, j: integer; |
begin |
temp := ''; |
j := 0; |
if CheatEdit.text = '' then |
begin |
Close; |
Exit; |
end; |
for i := 1 to length(CheatEdit.text) do |
begin |
inc(j); |
temp := temp + chr(byte(copy(CheatEdit.text, i, 1)[1]) xor j); |
end; |
{$REGION 'Check and unlock Cheat 1 (Infinite lives)'} |
if lowercase(temp) = lowercase(Cheat1) then |
begin |
if ctInfiniteLives in mainform.FCheats then |
showmessage(SCheckAlreadyUnlocked) |
else |
begin |
showmessage(SCheatUnlocked); |
Include(mainform.FCheats, ctInfiniteLives); |
SearchCheats; |
end; |
close; |
end |
{$ENDREGION} |
else |
begin |
showmessage(SNoCheat); |
CheatEdit.text := ''; |
CheatEdit.setfocus; |
end; |
end; |
procedure TCheatForm.FormShow(Sender: TObject); |
begin |
mainform.dxtimer.enabled := false; |
SearchCheats; |
CheatEdit.text := ''; |
CheatEdit.setfocus; |
end; |
procedure TCheatForm.FormHide(Sender: TObject); |
begin |
if not mainform.gamepause.checked then mainform.dxtimer.enabled := true; |
end; |
procedure TCheatForm.CheatEditKeyPress(Sender: TObject; var Key: Char); |
begin |
if key = #13 then |
begin |
// key := #0; |
OKBtn.click; |
end; |
end; |
procedure TCheatForm.Label2Click(Sender: TObject); |
resourcestring |
SDisableCheat = 'Diesen Cheat wirklich deaktivieren?'; |
SCheatDisabled = 'Dieser Cheat wurde deaktiviert!'; |
begin |
{$REGION 'Disable Cheat 1 (Infinite lives)'} |
if not CheatBox.items.IndexOf(Cheat1Text) = -1 then |
begin |
if CheatBox.Selected[CheatBox.items.IndexOf(Cheat1Text)] then |
begin |
if MessageDlg(SDisableCheat, mtConfirmation, mbYesNoCancel, 0) = mrYes then |
begin |
Exclude(mainform.FCheats, ctInfiniteLives); |
showmessage(SCheatDisabled); |
SearchCheats; |
end; |
end; |
end; |
{$ENDREGION} |
end; |
procedure TCheatForm.Label3Click(Sender: TObject); |
begin |
shellexecute(handle, 'open', pchar('mailto:daniel-marschall@viathinksoft.de?subject=Cheats für SpaceMission '+ProgramVersion), '', '', 1); // do not localize |
end; |
end. |
/GamSpeicherung.pas |
---|
0,0 → 1,415 |
unit GamSpeicherung; |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
StdCtrls, ExtCtrls, Spin{$IF CompilerVersion >= 23.0}, System.UITypes{$IFEND}; |
type |
TSpeicherungForm = class(TForm) |
Bevel1: TBevel; |
LadenBtn: TButton; |
LoeschenBtn: TButton; |
AktualisierenBtn: TButton; |
SpeichernBtn: TButton; |
AbbrechenBtn: TButton; |
LevelListBox: TListBox; |
Label2: TLabel; |
Label3: TLabel; |
Label1: TLabel; |
LevelName: TEdit; |
ElPanel1: TPanel; |
li4a: TLabel; |
li1: TLabel; |
li3b: TLabel; |
li3a: TLabel; |
li4b: TLabel; |
liu: TLabel; |
liw: TLabel; |
li2a: TLabel; |
li2b: TLabel; |
procedure LoeschenBtnClick(Sender: TObject); |
procedure LadenBtnClick(Sender: TObject); |
procedure SpeichernBtnClick(Sender: TObject); |
procedure LevelListBoxClick(Sender: TObject); |
procedure LevelNameChange(Sender: TObject); |
procedure Button4Click(Sender: TObject); |
procedure FormShow(Sender: TObject); |
procedure DsFancyButton2Click(Sender: TObject); |
procedure AbbrechenBtnClick(Sender: TObject); |
procedure FormHide(Sender: TObject); |
procedure LevelListBoxDblClick(Sender: TObject); |
private |
function GetSpielstandVerzeichnisSystem: string; |
function GetSpielstandVerzeichnisUser: string; |
function GetSaveGameFileName(SpielstandName: string; forceuserdir: boolean): string; |
public |
procedure SearchSaves; |
end; |
var |
SpeicherungForm: TSpeicherungForm; |
implementation |
uses |
Global, GamMain, ComLevelReader; |
{$R *.DFM} |
resourcestring |
SSaveGameFileNotFound = 'Spielstandsdatei nicht gefunden'; |
SNa = 'n/a'; |
SSaveGameFolder = 'Spielstände'; |
SSaveGameSubFolder = 'SpaceMission'; |
{ TSpeicherungForm } |
procedure TSpeicherungForm.SearchSaves; |
var |
sr: TSearchRec; |
res: integer; |
begin |
LevelName.text := ''; |
LevelListBox.items.clear; |
li1.visible := false; |
li2a.visible := false; |
li2b.visible := false; |
li3a.visible := false; |
li3b.visible := false; |
li4a.visible := false; |
li4b.visible := false; |
liu.visible := false; |
liw.visible := true; |
li1.caption := SNa; |
li2b.caption := SNa; |
li3b.caption := SNa; |
li4b.caption := SNa; |
LadenBtn.enabled := false; |
LoeschenBtn.enabled := false; |
res := FindFirst(IncludeTrailingPathDelimiter(GetSpielstandVerzeichnisSystem)+'*.sav', 0, sr); |
try |
while (res = 0) do |
begin |
if (sr.name <> '.') and (sr.name <> '..') then |
LevelListBox.items.Add(ChangeFileExt(sr.Name, '')); |
res := FindNext(sr); |
end; |
finally |
FindClose(sr); |
end; |
res := FindFirst(IncludeTrailingPathDelimiter(GetSpielstandVerzeichnisUser)+'*.sav', 0, sr); |
try |
while (res = 0) do |
begin |
// Anmerkung: Contains() oder IndexOf() sind nicht case-sensitive |
if (sr.name <> '.') and (sr.name <> '..') and (LevelListBox.Items.IndexOf(ChangeFileExt(sr.Name, ''))=-1) then |
LevelListBox.items.Add(ChangeFileExt(sr.Name, '')); |
res := FindNext(sr); |
end; |
finally |
FindClose(sr); |
end; |
LevelListBox.Sorted := true; |
end; |
procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject); |
resourcestring |
SDeleteSaveGame = 'Diesen Spielstand wirklich löschen?'; |
var |
fil: string; |
begin |
if LevelListBox.ItemIndex = -1 then exit; |
if MessageDlg(SDeleteSaveGame, mtConfirmation, mbYesNoCancel, 0) = mrYes then |
begin |
li1.visible := false; |
li2a.visible := false; |
li2b.visible := false; |
li3a.visible := false; |
li3b.visible := false; |
li4a.visible := false; |
li4b.visible := false; |
liu.visible := false; |
liw.visible := false; |
li1.caption := SNa; |
li2b.caption := SNa; |
li3b.caption := SNa; |
li4b.caption := SNa; |
LadenBtn.enabled := false; |
LoeschenBtn.enabled := false; |
fil := GetSaveGameFileName(LevelListBox.Items.strings[LevelListBox.itemindex], false); |
if not fileexists(fil) then raise Exception.Create(SSaveGameFileNotFound); |
deletefile(fil); |
searchsaves; |
end; |
end; |
function TSpeicherungForm.GetSaveGameFileName(SpielstandName: string; forceuserdir: boolean): string; |
var |
usr, sys: string; |
begin |
usr := IncludeTrailingPathDelimiter(GetSpielstandVerzeichnisUser) + SpielstandName + '.sav'; // ab SpaceMission 1.2+ // do not localize |
sys := IncludeTrailingPathDelimiter(GetSpielstandVerzeichnisSystem) + SpielstandName + '.sav'; // alte Versionen von SpaceMission <1.2 // do not localize |
if fileexists(usr) or forceuserdir then exit(usr); |
if fileexists(sys) then exit(sys); |
exit(usr); |
end; |
procedure TSpeicherungForm.LadenBtnClick(Sender: TObject); |
var |
SavGame: TSaveData; |
fil: string; |
begin |
if LevelListBox.ItemIndex = -1 then exit; |
if LevelListBox.items.count = 0 then |
begin |
li1.visible := false; |
li2a.visible := false; |
li2b.visible := false; |
li3a.visible := false; |
li3b.visible := false; |
li4a.visible := false; |
li4b.visible := false; |
liu.visible := false; |
liw.visible := false; |
li1.caption := SNa; |
li2b.caption := SNa; |
li3b.caption := SNa; |
li4b.caption := SNa; |
LadenBtn.enabled := false; |
LoeschenBtn.enabled := false; |
end; |
{if liu.visible or (LevelListBox.items.count=0) then |
exit;} |
SavGame := TSaveData.Create; |
try |
fil := GetSaveGameFileName(LevelListBox.Items.strings[LevelListBox.itemindex], false); |
if not fileexists(fil) then raise Exception.Create(SSaveGameFileNotFound); |
SavGame.LoadFromFile(fil); |
mainform.FScore := SavGame.Score; |
mainform.FLife := SavGame.Life; |
mainform.FLevel := SavGame.Level; |
mainform.FGameMode := SavGame.GameMode; |
MainForm.FLevelDataAlreadyLoaded := true; // do not call NewLevel() in StartSceneMain |
if Assigned(SavGame.LevelData) then |
begin |
MainForm.LevelData.Assign(SavGame.LevelData); |
end; |
finally |
FreeAndNil(SavGame); |
end; |
mainform.playsound(smsSceneMov, false); |
mainform.FNextScene := gsNewLevel; |
mainform.FCheats := []; |
close; |
end; |
procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject); |
resourcestring |
SNoValidSaveGameName = 'Dies ist kein gültiger Spielstandname!'; |
SEmptySaveGameName = 'Bitte geben Sie einen Namen für den Spielstand ein'; |
SReplaceSaveGame = 'Spielstand ist bereits vorhanden. Ersetzen?'; |
var |
SavGame: TSaveData; |
i: integer; |
begin |
if Levelname.text = '' then |
begin |
MessageDlg(SEmptySaveGameName, mtError, [mbOK], 0); |
LevelName.setfocus; |
exit; |
end; |
for i := 1 to length(LevelName.text) do |
begin |
if (copy(LevelName.text, i, 1) = '\') or |
(copy(LevelName.text, i, 1) = '/') or |
(copy(LevelName.text, i, 1) = ':') or |
(copy(LevelName.text, i, 1) = '*') or |
(copy(LevelName.text, i, 1) = '?') or |
(copy(LevelName.text, i, 1) = '"') or |
(copy(LevelName.text, i, 1) = '<') or |
(copy(LevelName.text, i, 1) = '>') or |
(copy(LevelName.text, i, 1) = '|') then |
begin |
MessageDlg(SNoValidSaveGameName, mtError, [mbOK], 0); |
LevelName.setfocus; |
exit; |
end; |
end; |
if LevelListBox.items.IndexOf(LevelName.text) > -1 then |
begin |
if MessageDlg(SReplaceSaveGame, mtConfirmation, mbYesNoCancel, 0) <> mrYes then |
exit; |
end; |
SavGame := TSaveData.Create; |
try |
SavGame.Score := mainform.FScoreAtLevelStart;//mainform.FScore; |
SavGame.Life := mainform.FLifeAtLevelStart;//mainform.FLife; |
SavGame.Level := mainform.FLevel; |
SavGame.GameMode := mainform.FGameMode; |
if not Assigned(SavGame.LevelData) then SavGame.LevelData := TLevelData.Create; |
SavGame.LevelData.Assign(mainForm.LevelData); |
SavGame.SaveToFile(GetSaveGameFileName(LevelName.text, true)); |
finally |
FreeAndNil(SavGame); |
end; |
SearchSaves; |
end; |
procedure TSpeicherungForm.LevelListBoxClick(Sender: TObject); |
resourcestring |
SNoNA = 'n/a'; |
SIsNormalLevel = 'Das Level ist ein norm. Level'; |
SIsRandomLevel = 'Das Level ist ein Zufallslevel'; |
SHasAttachedLevel = '%s mit Karte'; |
var |
SavGame: TSaveData; |
Punkte, Leben, Level: integer; |
BeinhaltetLevelDaten: boolean; |
Art: TGameMode; |
fil: string; |
begin |
ladenbtn.enabled := true; |
loeschenbtn.enabled := true; |
li1.visible := false; |
li2a.visible := false; |
li2b.visible := false; |
li3a.visible := false; |
li3b.visible := false; |
li4a.visible := false; |
li4b.visible := false; |
liu.visible := false; |
liw.visible := false; |
li1.caption := SNoNA; |
li2b.caption := SNoNA; |
li3b.caption := SNoNA; |
li4b.caption := SNoNA; |
if (LevelListBox.items.count=0) or (LevelListBox.itemindex = -1) then |
begin |
ladenbtn.enabled := false; |
loeschenbtn.enabled := false; |
liw.visible := true; |
exit; |
end; |
LevelName.Text := LevelListBox.Items.strings[LevelListBox.itemindex]; |
SavGame := TSaveData.Create; |
try |
try |
fil := GetSaveGameFileName(LevelListBox.Items.strings[LevelListBox.itemindex], false); |
if not fileexists(fil) then raise Exception.Create(SSaveGameFileNotFound); |
SavGame.LoadFromFile(fil); |
Punkte := SavGame.Score; |
Leben := SavGame.Life; |
Level := SavGame.Level; |
Art := SavGame.GameMode; |
BeinhaltetLevelDaten := Assigned(SavGame.LevelData); |
except |
liu.visible := true; |
ladenbtn.enabled := false; |
exit; |
end; |
finally |
FreeAndNil(SavGame); |
end; |
li1.visible := true; |
li2a.visible := true; |
li2b.visible := true; |
li3a.visible := true; |
li3b.visible := true; |
li4a.visible := true; |
li4b.visible := true; |
if Art = gmLevels then |
li1.caption := SIsNormalLevel |
else |
li1.caption := SIsRandomLevel; |
if BeinhaltetLevelDaten then |
li1.Caption := Format(SHasAttachedLevel, [li1.Caption]); |
li2b.caption := FloatToStrF(Punkte,ffNumber,14,0); |
li3b.caption := inttostr(Level); |
li4b.caption := inttostr(Leben); |
end; |
procedure TSpeicherungForm.LevelNameChange(Sender: TObject); |
begin |
//listbox1.Items.indexof('Level '+spinedit1.text); |
end; |
procedure TSpeicherungForm.Button4Click(Sender: TObject); |
begin |
mainform.dxtimer.enabled := not mainform.gamepause.checked; |
close; |
end; |
procedure TSpeicherungForm.FormShow(Sender: TObject); |
begin |
mainform.dxtimer.enabled := false; |
SearchSaves; |
if mainform.FNotSave then |
begin |
label1.enabled := false; |
LevelName.enabled := false; |
SpeichernBtn.enabled := false; |
end |
else |
begin |
label1.enabled := true; |
LevelName.enabled := true; |
SpeichernBtn.enabled := true; |
end; |
end; |
function TSpeicherungForm.GetSpielstandVerzeichnisSystem: string; |
begin |
// nicht mehr verwendet seit version 1.2 |
result := OwnDirectory + SSaveGameFolder; |
end; |
function TSpeicherungForm.GetSpielstandVerzeichnisUser: string; |
begin |
try |
result := GetKnownFolderPath(FOLDERID_SavedGames); |
except |
result := ''; |
end; |
if result = '' then |
begin |
// Pre Vista |
result := OwnDirectory + SSaveGameFolder; |
end |
else |
begin |
result := IncludeTrailingPathDelimiter(result); |
result := result + SSaveGameSubFolder; |
end; |
result := IncludeTrailingPathDelimiter(result); |
ForceDirectories(result); |
end; |
procedure TSpeicherungForm.DsFancyButton2Click(Sender: TObject); |
begin |
SearchSaves; |
end; |
procedure TSpeicherungForm.AbbrechenBtnClick(Sender: TObject); |
begin |
close; |
end; |
procedure TSpeicherungForm.FormHide(Sender: TObject); |
begin |
if not mainform.gamepause.checked then mainform.dxtimer.enabled := true; |
end; |
procedure TSpeicherungForm.LevelListBoxDblClick(Sender: TObject); |
begin |
LadenBtn.click; |
end; |
end. |
/GamSpeicherung.dfm |
---|
0,0 → 1,202 |
object SpeicherungForm: TSpeicherungForm |
Left = 280 |
Top = 152 |
BorderStyle = bsDialog |
Caption = 'Spielst'#228'nde' |
ClientHeight = 424 |
ClientWidth = 447 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Position = poMainFormCenter |
OnHide = FormHide |
OnShow = FormShow |
TextHeight = 13 |
object Bevel1: TBevel |
Left = 8 |
Top = 56 |
Width = 433 |
Height = 2 |
Shape = bsBottomLine |
end |
object Label2: TLabel |
Left = 8 |
Top = 72 |
Width = 58 |
Height = 13 |
Caption = 'Spielst'#228'nde:' |
end |
object Label3: TLabel |
Left = 8 |
Top = 336 |
Width = 67 |
Height = 13 |
Caption = 'Informationen:' |
end |
object Label1: TLabel |
Left = 8 |
Top = 20 |
Width = 78 |
Height = 13 |
Caption = 'Spielstandname:' |
Enabled = False |
end |
object LadenBtn: TButton |
Left = 336 |
Top = 72 |
Width = 105 |
Height = 25 |
Caption = '&Laden' |
Enabled = False |
TabOrder = 0 |
OnClick = LadenBtnClick |
end |
object LoeschenBtn: TButton |
Left = 336 |
Top = 104 |
Width = 105 |
Height = 25 |
Caption = 'L'#246'&schen' |
Enabled = False |
TabOrder = 1 |
OnClick = LoeschenBtnClick |
end |
object AktualisierenBtn: TButton |
Left = 336 |
Top = 144 |
Width = 105 |
Height = 25 |
Caption = '&Aktualisieren' |
TabOrder = 2 |
OnClick = DsFancyButton2Click |
end |
object SpeichernBtn: TButton |
Left = 336 |
Top = 16 |
Width = 105 |
Height = 25 |
Caption = '&Speichern' |
Enabled = False |
TabOrder = 3 |
OnClick = SpeichernBtnClick |
end |
object AbbrechenBtn: TButton |
Left = 336 |
Top = 392 |
Width = 105 |
Height = 25 |
Cancel = True |
Caption = 'Schli&e'#223'en' |
Default = True |
ModalResult = 1 |
TabOrder = 4 |
OnClick = AbbrechenBtnClick |
end |
object LevelListBox: TListBox |
Left = 112 |
Top = 72 |
Width = 201 |
Height = 249 |
ItemHeight = 13 |
TabOrder = 5 |
OnClick = LevelListBoxClick |
OnDblClick = LevelListBoxDblClick |
end |
object LevelName: TEdit |
Left = 112 |
Top = 16 |
Width = 201 |
Height = 21 |
Enabled = False |
TabOrder = 6 |
end |
object ElPanel1: TPanel |
Left = 112 |
Top = 336 |
Width = 201 |
Height = 81 |
BevelOuter = bvLowered |
Color = clWindow |
TabOrder = 7 |
object li4a: TLabel |
Left = 8 |
Top = 56 |
Width = 33 |
Height = 13 |
Caption = 'Leben:' |
end |
object li1: TLabel |
Left = 8 |
Top = 8 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
object li3b: TLabel |
Left = 96 |
Top = 40 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
object li3a: TLabel |
Left = 8 |
Top = 40 |
Width = 29 |
Height = 13 |
Caption = 'Level:' |
end |
object li4b: TLabel |
Left = 96 |
Top = 56 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
object liu: TLabel |
Left = 8 |
Top = 8 |
Width = 156 |
Height = 13 |
Caption = 'Der Spielstand ist nicht einlesbar!' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clMaroon |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
Visible = False |
end |
object liw: TLabel |
Left = 8 |
Top = 8 |
Width = 160 |
Height = 13 |
Caption = 'Bitte w'#228'hlen Sie einen Spielstand.' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clNavy |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
Visible = False |
end |
object li2a: TLabel |
Left = 8 |
Top = 24 |
Width = 37 |
Height = 13 |
Caption = 'Punkte:' |
end |
object li2b: TLabel |
Left = 96 |
Top = 24 |
Width = 17 |
Height = 13 |
Caption = 'n/a' |
end |
end |
end |
/LevSpeicherung.dfm |
---|
1,11 → 1,10 |
object SpeicherungForm: TSpeicherungForm |
Left = 281 |
Top = 153 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsSingle |
BorderStyle = bsDialog |
Caption = 'Levels' |
ClientHeight = 409 |
ClientWidth = 449 |
ClientHeight = 424 |
ClientWidth = 447 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
12,11 → 11,10 |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
OldCreateOrder = False |
Position = poMainFormCenter |
OnCreate = FormCreate |
OnHide = FormHide |
OnShow = FormShow |
PixelsPerInch = 96 |
TextHeight = 13 |
object Bevel1: TBevel |
Left = 8 |
28,23 → 26,23 |
object Label2: TLabel |
Left = 8 |
Top = 72 |
Width = 58 |
Width = 34 |
Height = 13 |
Caption = 'Spielst'#228'nde:' |
Caption = 'Levels:' |
end |
object Label3: TLabel |
Left = 8 |
Top = 336 |
Width = 92 |
Width = 67 |
Height = 13 |
Caption = 'Levelinformationen:' |
Caption = 'Informationen:' |
end |
object Label1: TLabel |
Left = 8 |
Top = 20 |
Width = 78 |
Width = 55 |
Height = 13 |
Caption = 'Spielstandname:' |
Caption = 'Levelname:' |
end |
object LadenBtn: TButton |
Left = 336 |
86,7 → 84,7 |
end |
object AbbrechenBtn: TButton |
Left = 336 |
Top = 376 |
Top = 391 |
Width = 105 |
Height = 25 |
Cancel = True |
104,13 → 102,12 |
ItemHeight = 13 |
TabOrder = 5 |
OnClick = LevelListBoxClick |
OnDblClick = LevelListBoxDblClick |
end |
object ElPanel1: TPanel |
Left = 112 |
Top = 336 |
Width = 201 |
Height = 65 |
Height = 80 |
BevelOuter = bvLowered |
Color = clWindow |
TabOrder = 6 |
173,9 → 170,9 |
object liw: TLabel |
Left = 8 |
Top = 8 |
Width = 104 |
Width = 125 |
Height = 13 |
Caption = 'W'#228'hlen Sie ein Level.' |
Caption = 'Bitte w'#228'hlen Sie ein Level.' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clNavy |
Font.Height = -11 |
184,27 → 181,22 |
ParentFont = False |
Visible = False |
end |
object li4: TLabel |
Left = 8 |
Top = 56 |
Width = 118 |
Height = 13 |
Caption = 'Name / Autor unbekannt' |
end |
object SpinEditEdt: TEdit |
end |
object LevelNumber: TSpinEdit |
Left = 112 |
Top = 20 |
Width = 185 |
Height = 21 |
MaxLength = 4 |
Top = 16 |
Width = 201 |
Height = 22 |
MaxValue = 0 |
MinValue = 0 |
TabOrder = 7 |
Text = '1' |
OnChange = SpinEditEdtChange |
OnKeyPress = SpinEditEdtKeyPress |
Value = 0 |
end |
object SpinEdit: TUpDown |
Left = 296 |
Top = 22 |
Width = 17 |
Height = 19 |
Min = 1 |
Max = 9999 |
Position = 1 |
TabOrder = 8 |
OnClick = SpinEditClick |
end |
end |
/ComHilfe.pas |
---|
0,0 → 1,107 |
unit ComHilfe; |
interface |
uses |
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, |
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.OleCtrls, SHDocVw; |
type |
THilfeForm = class(TForm) |
WebBrowser1: TWebBrowser; |
procedure WebBrowser1BeforeNavigate2(ASender: TObject; |
const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData, |
Headers: OleVariant; var Cancel: WordBool); |
private |
FDirectory: string; |
public |
procedure ShowHTMLHelp(AHTML: string); |
procedure ShowMarkDownHelp(AMarkDownFile: string); |
end; |
var |
HilfeForm: THilfeForm; |
implementation |
uses |
MarkDownProcessor, ShellAPI, Global; |
{$R *.dfm} |
procedure THilfeForm.ShowHTMLHelp(AHTML: string); |
var |
DOC: Variant; |
begin |
if not Assigned(WebBrowser1.Document) then |
WebBrowser1.Navigate('about:blank'); // do not localize |
DOC := WebBrowser1.Document; |
DOC.Clear; |
DOC.Write(AHTML); |
Doc.Close; |
end; |
procedure THilfeForm.ShowMarkDownHelp(AMarkDownFile: string); |
var |
md: TMarkdownProcessor; |
slHtml, slCss: TStringList; |
cssFile: string; |
begin |
FDirectory := ExtractFilePath(AMarkDownFile); |
slHtml := TStringList.Create(); |
slCss := TStringList.Create(); |
try |
slHtml.LoadFromFile(AMarkDownFile); |
cssFile := IncludeTrailingPathDelimiter(FDirectory) + 'Style.css'; // do not localize |
if FileExists(cssFile) then |
slCss.LoadFromFile(cssFile); |
md := TMarkdownProcessor.CreateDialect(mdCommonMark); |
try |
//md.AllowUnsafe := true; |
ShowHTMLHelp( |
'<html>'+ // do not localize |
'<head>'+ // do not localize |
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'+ // do not localize |
'<style>'+slCss.Text+'</style>'+ // do not localize |
'</head>'+ // do not localize |
'<body>'+ // do not localize |
md.process(UTF8ToString(RawByteString(slHtml.Text)))+ |
'</body>'+ // do not localize |
'</html>'); // do not localize |
finally |
FreeAndNil(md); |
end; |
finally |
FreeAndNil(slHtml); |
FreeAndNil(slCss); |
end; |
end; |
procedure THilfeForm.WebBrowser1BeforeNavigate2(ASender: TObject; |
const pDisp: IDispatch; const URL, Flags, TargetFrameName, PostData, |
Headers: OleVariant; var Cancel: WordBool); |
begin |
if SameText(Copy(URL,1,7),'http://') or // do not localize |
SameText(Copy(URL,1,8),'https://') or // do not localize |
SameText(Copy(URL,1,7),'mailto:') then // do not localize |
begin |
// Links in default Browser anzeigen |
ShellExecute(handle, 'open', PChar(string(URL)), '', '', SW_NORMAL); // do not localize |
Cancel := true; |
end |
else if SameText(ExtractFileExt(URL), '.md') then // do not localize |
begin |
if SameText(Copy(URL,1,6), 'about:') then // do not localize |
ShowMarkDownHelp(IncludeTrailingPathDelimiter(FDirectory) + Copy(URL,7,Length(URL))) |
else |
ShowMarkDownHelp(URL); |
Cancel := true; |
end |
else |
begin |
Cancel := false; |
end; |
end; |
end. |
/ComInfo.pas |
---|
0,0 → 1,62 |
unit ComInfo; |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
StdCtrls, ShellAPI, ExtCtrls; |
type |
TInfoForm = class(TForm) |
OkBtn: TButton; |
HomeLbl: TLabel; |
Image: TImage; |
FirmaLbl: TLabel; |
NameLbl: TLabel; |
VersionLbl: TLabel; |
EMailLbl: TLabel; |
CopyrightLbl: TLabel; |
Copyright2Lbl: TLabel; |
URL2: TLabel; |
URL1: TLabel; |
MemoMitwirkende: TMemo; |
procedure OkBtnClick(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
procedure WebsiteClick(Sender: TObject); |
procedure EMailClick(Sender: TObject); |
end; |
var |
InfoForm: TInfoForm; |
implementation |
uses |
Global; |
{$R *.DFM} |
procedure TInfoForm.OkBtnClick(Sender: TObject); |
begin |
close; |
end; |
procedure TInfoForm.FormCreate(Sender: TObject); |
resourcestring |
SVersion = 'Version %s'; |
begin |
VersionLbl.caption := Format(SVersion, [ProgramVersion]); |
end; |
procedure TInfoForm.WebsiteClick(Sender: TObject); |
begin |
ShellExecute(application.Handle, 'open', pchar('https://'+url2.caption+'/'), nil, nil, SW_SHOW); // do not localize |
end; |
procedure TInfoForm.EMailClick(Sender: TObject); |
begin |
ShellExecute(application.Handle, 'open', pchar('mailto:'+url1.Caption+'?subject=SpaceMission ' + ProgramVersion), nil, nil, SW_SHOW); // do not localize |
end; |
end. |
/LevOptions.dfm |
---|
1,11 → 1,10 |
object LevelForm: TLevelForm |
Left = 195 |
Top = 103 |
BorderIcons = [biSystemMenu, biMinimize] |
BorderStyle = bsSingle |
BorderStyle = bsDialog |
Caption = 'Leveleigenschaften' |
ClientHeight = 252 |
ClientWidth = 388 |
ClientHeight = 251 |
ClientWidth = 384 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
12,11 → 11,9 |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
OldCreateOrder = False |
Position = poMainFormCenter |
OnHide = FormHide |
OnShow = FormShow |
PixelsPerInch = 96 |
TextHeight = 13 |
object ElPopupButton1: TButton |
Left = 280 |
52,6 → 49,20 |
Height = 13 |
Caption = 'Gr'#246#223'e des Spielfeldes:' |
end |
object Label2: TLabel |
Left = 16 |
Top = 136 |
Width = 124 |
Height = 13 |
Caption = 'Interner Name des Levels:' |
end |
object Label3: TLabel |
Left = 16 |
Top = 168 |
Width = 57 |
Height = 13 |
Caption = 'Level-Autor:' |
end |
object Panel1: TPanel |
Left = 16 |
Top = 56 |
58,6 → 69,7 |
Width = 329 |
Height = 57 |
Color = clInfoBk |
ParentBackground = False |
TabOrder = 0 |
object ElLabel1: TLabel |
Left = 8 |
75,40 → 87,45 |
object ElLabel2: TLabel |
Left = 80 |
Top = 10 |
Width = 225 |
Width = 228 |
Height = 39 |
Caption = |
'Die Spielfeldgr'#246#223'e wird nur von dem Leveleditor'#13#10'ben'#246'tigt. Das '#228 + |
'ndern dieser Gr'#246#223'e wirkt sich'#13#10'nicht auf die Gr'#246#223'e der Levels au' + |
's.' |
'Die Spielfeldgr'#246#223'e wird nur von dem Leveleditor '#13#10'ben'#246'tigt. Das ' + |
#196'ndern dieser Gr'#246#223'e wirkt sich '#13#10'nicht auf die Gr'#246#223'e der Levels ' + |
'aus.' |
Color = clInfoBk |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentColor = False |
ParentFont = False |
end |
end |
object GroesseEdt: TEdit |
object Groesse: TSpinEdit |
Left = 144 |
Top = 28 |
Width = 185 |
Height = 21 |
MaxLength = 4 |
Width = 121 |
Height = 22 |
MaxValue = 65000 |
MinValue = 100 |
TabOrder = 1 |
Text = '1200' |
OnChange = GroesseEdtChange |
OnKeyPress = GroesseEdtKeyPress |
Value = 1200 |
end |
object Groesse: TUpDown |
Left = 328 |
Top = 30 |
Width = 17 |
Height = 19 |
Max = 9999 |
Position = 1 |
object LevName: TEdit |
Left = 167 |
Top = 133 |
Width = 178 |
Height = 21 |
TabOrder = 2 |
OnClick = GroesseClick |
end |
object LevAuthor: TEdit |
Left = 167 |
Top = 160 |
Width = 178 |
Height = 21 |
TabOrder = 3 |
end |
end |
end |
/LevSpeicherung.pas |
---|
4,7 → 4,7 |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
StdCtrls, ExtCtrls, Spin, ComCtrls; |
StdCtrls, ExtCtrls, Spin, ComCtrls{$IF CompilerVersion >= 23.0}, System.UITypes{$IFEND}; |
type |
TSpeicherungForm = class(TForm) |
25,10 → 25,10 |
li2b: TLabel; |
li2a: TLabel; |
li3b: TLabel; |
li4: TLabel; |
liu: TLabel; |
liw: TLabel; |
SpinEditEdt: TEdit; |
SpinEdit: TUpDown; |
LevelNumber: TSpinEdit; |
procedure LoeschenBtnClick(Sender: TObject); |
procedure LadenBtnClick(Sender: TObject); |
procedure SpeichernBtnClick(Sender: TObject); |
38,35 → 38,33 |
procedure DsFancyButton2Click(Sender: TObject); |
procedure AbbrechenBtnClick(Sender: TObject); |
procedure LevelNameChange(Sender: TObject); |
procedure LevelListBoxDblClick(Sender: TObject); |
procedure FormHide(Sender: TObject); |
procedure SpinEditClick(Sender: TObject; Button: TUDBtnType); |
procedure SpinEditEdtKeyPress(Sender: TObject; var Key: Char); |
procedure SpinEditEdtChange(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
private |
function GetListBoxSelectedLevelNumber: integer; |
public |
procedure SearchLevels; |
function RightStr(str: string; count: integer): string; |
function Filter(n: integer; s: string): string; |
end; |
var |
SpeicherungForm: TSpeicherungForm; |
const |
FCompVersion = '1.0'; |
implementation |
uses |
LevMain; |
Global, LevMain, ComLevelReader; |
{$R *.DFM} |
resourcestring |
SLevelListBox = 'Level %d'; |
SSelbsterstellt = 'Selbsterstellt'; |
SLevelFileNotFound = 'Leveldatei nicht gefunden'; |
procedure TSpeicherungForm.SearchLevels; |
var |
{sr: TSearchRec; |
res: integer;} |
i: integer; |
fil: TLevelFile; |
begin |
//SpinEdit.Value := 1; |
LevelListBox.items.clear; |
76,40 → 74,34 |
li1b.visible := false; |
li2b.visible := false; |
li3b.visible := false; |
li4.visible := false; |
liu.Visible := false; |
liw.visible := true; |
LadenBtn.enabled := false; |
LoeschenBtn.enabled := false; |
{res := FindFirst(mainform.fdirectory+'Levels\*.lev', 0, sr); |
try |
while (res = 0) do |
for i := 1 to MaxPossibleLevels do |
begin |
if (sr.name <> '.') and (sr.name <> '..') then |
LevelListBox.items.Add(copy(sr.Name, 0, length(sr.name)-4)); |
res := FindNext(sr); |
end; |
finally |
FindClose(sr); |
end;} |
for i := 1 to 9999 do |
fil := GetLevelFileName(i, false); |
if fil.found then |
begin |
if fileexists(mainform.fdirectory+'Levels\Level '+inttostr(i)+'.lev') then |
LevelListBox.items.Add('Level ' + inttostr(i)); |
if fil.isUser then |
LevelListBox.items.Add(Format(SLevelListBox, [i])+' ('+SSelbsterstellt+')') |
else |
LevelListBox.items.Add(Format(SLevelListBox, [i])); |
end; |
end; |
end; |
procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject); |
resourcestring |
SReallyDeleteLevel = 'Dieses Level wirklich löschen?'; |
var |
Markiert: boolean; |
i: integer; |
fil: TLevelFile; |
begin |
Markiert := false; |
for i := 0 to LevelListBox.items.Count-1 do |
if LevelListBox.ItemIndex = -1 then exit; |
if MessageDlg(SReallyDeleteLevel, mtConfirmation, mbYesNoCancel, 0) = mrYes then |
begin |
if LevelListBox.Selected[i] then Markiert := true; |
end; |
if not Markiert then exit; |
if MessageDlg('Dieses Level wirklich löschen?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then |
begin |
li1a.visible := false; |
li2a.visible := false; |
li3a.visible := false; |
116,154 → 108,59 |
li1b.visible := false; |
li2b.visible := false; |
li3b.visible := false; |
li4.visible := false; |
liu.visible := false; |
liw.visible := true; |
LadenBtn.enabled := false; |
LoeschenBtn.enabled := false; |
deletefile(mainform.FDirectory+'Levels\'+ |
LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
if not fil.found then raise Exception.Create(SLevelFileNotFound); |
deletefile(fil.fileLocation); |
SearchLevels; |
end; |
end; |
procedure TSpeicherungForm.LadenBtnClick(Sender: TObject); |
resourcestring |
SLoadNewLevelAndDiscardChanges = 'Neues Level laden und Änderungen verwerfen?'; |
var |
Markiert: boolean; |
i, TempArtMain, TempLiveMain: integer; |
SavGame: textfile; |
Ergebnis: array[1..5] of string; |
fil: TLevelFile; |
begin |
Markiert := false; |
for i := 0 to LevelListBox.items.Count-1 do |
if LevelListBox.ItemIndex = -1 then exit; |
if MainForm.LevChanged and (MainForm.LevData.CountEnemies>0) then |
begin |
if LevelListBox.Selected[i] then Markiert := true; |
if MessageDlg(SLoadNewLevelAndDiscardChanges, mtConfirmation, mbYesNoCancel, 0) <> mrYes then exit; |
end; |
if not Markiert then exit; |
if LevelListBox.items.count = 0 then |
begin |
li1a.visible := false; |
li2a.visible := false; |
li3a.visible := false; |
li1b.visible := false; |
li2b.visible := false; |
li3b.visible := false; |
liw.visible := true; |
LadenBtn.enabled := false; |
LoeschenBtn.enabled := false; |
end; |
// Da Button bei ungültigen Level deaktiviert wird, ist das nicht mehr nötig. |
{if liu.visible or (LevelListBox.items.count=0) then |
exit;} |
// Vorbereiten |
MainForm.DestroyLevel; |
MainForm.LevData.RasterErzwingen := true; |
fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
if not fil.found then raise Exception.Create(SLevelFileNotFound); |
MainForm.LevData.LoadFromFile(fil.fileLocation); |
MainForm.RefreshFromLevData; |
MainForm.LevChanged := false; |
// Öffnen |
AssignFile(SavGame, mainform.FDirectory+'Levels\'+ |
LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
Reset(SavGame); |
// Laden |
ReadLN(SavGame); // --> Copyrightinfo |
ReadLN(SavGame); // --> Copyrightinfo |
ReadLN(SavGame, Ergebnis[5]); // --> Länge der Karte |
MainForm.ScrollBar.Max := strtoint(Ergebnis[5]); |
MainForm.Enemys.Clear; |
TempArtMain := MainForm.ArtChecked; |
TempLiveMain := MainForm.LiveEdit; |
while not seekEoF(SavGame) do |
begin |
ReadLN(SavGame, Ergebnis[3]); |
ReadLN(SavGame, Ergebnis[1]); |
ReadLN(SavGame, Ergebnis[2]); |
ReadLN(SavGame, Ergebnis[4]); |
MainForm.EnemyAdd(strtoint(Ergebnis[1]), strtoint(Ergebnis[2]), strtoint(Ergebnis[3]), strtoint(Ergebnis[4])); |
MainForm.ArtChecked := strtoint(Ergebnis[3]); |
MainForm.LiveEdit := strtoint(Ergebnis[4]); |
MainForm.EnemyCreate(strtoint(Ergebnis[1]), strtoint(Ergebnis[2])); |
inc(MainForm.NumEnemys); |
if Ergebnis[3] = '7' then MainForm.Boss := true; |
end; |
MainForm.LiveEdit := TempLiveMain; |
MainForm.ArtChecked := TempArtMain; |
// Schließen |
CloseFile(SavGame); |
// Nacharbeiten |
MainForm.AnzeigeAct; |
close; |
end; |
function TSpeicherungForm.RightStr(str: string; count: integer): string; |
begin |
result := copy(str, length(str)-(count-1), count); |
end; |
function TSpeicherungForm.Filter(n: integer; s: string): string; |
var |
i, last: integer; |
start, start2: boolean; |
temp: string; |
begin |
last := 0; |
start := false; |
start2 := false; |
temp := ''; |
if n = 1 then |
begin |
for i := 1 to length(s)+1 do |
begin |
if copy(s, i, 1) = '-' then |
begin |
last := i; |
break; |
end; |
end; |
temp := copy(s, 1, last-1); |
end; |
if n = 2 then |
begin |
for i := 1 to length(s)+1 do |
begin |
if start2 then start := true; |
if copy(s, i, 1) = '-' then start2 := true; |
if (copy(s, i, 1) = ':') and start then break; |
if start then temp := temp + copy(s, i, 1) |
end; |
end; |
if n = 3 then |
begin |
for i := 1 to length(s)+1 do |
begin |
if start2 then start := true; |
if copy(s, i, 1) = ':' then start2 := true; |
if (copy(s, i, 1) = '(') and start then break; |
if start then temp := temp + copy(s, i, 1) |
end; |
end; |
if n = 4 then |
begin |
for i := 1 to length(s)+1 do |
begin |
if start2 then start := true; |
if copy(s, i, 1) = '(' then start2 := true; |
if (copy(s, i, 1) = ')') and start then break; |
if start then temp := temp + copy(s, i, 1) |
end; |
end; |
result := temp; |
end; |
procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject); |
var |
SavGame: textfile; |
i, j: integer; |
puffer: string; |
resourcestring |
SLevelIsEmpty = 'Das Level ist leer!'; |
SLevelAlreadyExists = 'Level ist bereits vorhanden. Ersetzen?'; |
SNoValidLevelName = 'Dies ist kein gültiger Levelname!'; |
begin |
if mainform.Enemys.count = 0 then |
if MainForm.LevData.CountEnemies = 0 then |
begin |
MessageDlg('Das Level ist leer!', mtError, [mbOK], 0); |
SpinEdit.SetFocus; |
MessageDlg(SLevelIsEmpty, mtError, [mbOK], 0); |
LevelNumber.SetFocus; |
exit; |
end; |
{for i := 0 to length(LevelName.text) do |
{for i := 1 to length(LevelName.text) do |
begin |
if (copy(LevelName.text, i, 1) = '\') or |
(copy(LevelName.text, i, 1) = '/') or |
275,45 → 172,22 |
(copy(LevelName.text, i, 1) = '>') or |
(copy(LevelName.text, i, 1) = '|') then |
begin |
MessageDlg('Dies ist kein gültiger Levelname!', mtError, [mbOK], 0); |
MessageDlg(SNoValidLevelName, mtError, [mbOK], 0); |
LevelName.SetFocus; |
exit; |
end; |
end;} |
if LevelListBox.items.IndexOf('Level ' + inttostr(SpinEdit.Position)) > -1 then |
if (LevelListBox.items.IndexOf(Format(SLevelListBox, [LevelNumber.Value])) > -1) or |
(LevelListBox.items.IndexOf(Format(SLevelListBox, [LevelNumber.Value])+' ('+SSelbsterstellt+')') > -1) then |
begin |
if MessageDlg('Level ist bereits vorhanden. Ersetzen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then |
if MessageDlg(SLevelAlreadyExists, mtConfirmation, mbYesNoCancel, 0) <> mrYes then |
exit; |
end; |
// Öffnen oder erstellen |
AssignFile(SavGame, mainform.FDirectory+'Levels\Level '+inttostr(SpinEdit.Position)+'.lev'); |
Rewrite(SavGame); |
// Sortierung |
for j := 0 to mainform.enemys.Count - 2 do |
begin |
for i := 0 to mainform.enemys.Count - 2 do |
begin |
if strtoint(filter(1, mainform.enemys.Strings[i])) > strtoint(filter(1, mainform.enemys.Strings[i + 1])) then |
begin |
puffer := mainform.enemys.Strings[i]; |
mainform.enemys.Strings[i] := mainform.enemys.Strings[i + 1]; |
mainform.enemys.Strings[i + 1] := puffer; |
end; |
end; |
end; |
// Speichern |
WriteLN(SavGame, '; SpaceMission ' + FCompVersion); |
WriteLN(SavGame, '; LEV-File'); |
WriteLN(SavGame, inttostr(MainForm.ScrollBar.Max)); // --> Länge der Karte |
for i := 0 to mainform.enemys.count-1 do |
begin |
WriteLN(SavGame, filter(3, mainform.enemys.Strings[i])); |
WriteLN(SavGame, filter(1, mainform.enemys.Strings[i])); |
WriteLN(SavGame, filter(2, mainform.enemys.Strings[i])); |
WriteLN(SavGame, filter(4, mainform.enemys.Strings[i])); |
end; |
// Schließen |
CloseFile(SavGame); |
MainForm.LevData.LevelEditorLength := MainForm.ScrollBar.Max; |
MainForm.LevData.SaveToFile(GetLevelFileName(LevelNumber.Value,true).fileLocation); |
// Nacharbeiten |
MainForm.LevChanged := false; |
MainForm.AnzeigeAct; |
321,10 → 195,17 |
end; |
procedure TSpeicherungForm.LevelListBoxClick(Sender: TObject); |
resourcestring |
SYes = 'Ja'; |
SNo = 'Nein'; |
SFields = '%d Felder'; |
SXbyY = '%s von %s'; |
var |
Ergebnis, boss, l, temp: string; |
SavGame: textfile; |
x, a: integer; |
LevelData: TLevelData; |
boss: boolean; |
i: Integer; |
anzahlEinheiten: integer; |
fil: TLevelFile; |
begin |
li1a.visible := false; |
li2a.visible := false; |
332,6 → 213,7 |
li1b.visible := false; |
li2b.visible := false; |
li3b.visible := false; |
li4.visible := false; |
liu.visible := false; |
liw.visible := false; |
if (LevelListBox.items.count=0) or (LevelListBox.itemindex = -1) then |
341,47 → 223,27 |
liw.visible := true; |
exit; |
end; |
temp := LevelListBox.Items.strings[LevelListBox.itemindex]; |
SpinEdit.Position := strtoint(RightStr(temp, length(temp)-6)); |
AssignFile(SavGame, mainform.FDirectory+'Levels\'+ |
LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev'); |
Reset(SavGame); |
ReadLN(SavGame, Ergebnis); |
if Ergebnis <> '; SpaceMission '+FCompVersion then |
LevelNumber.Value := GetListBoxSelectedLevelNumber; |
LevelData := TLevelData.Create; |
try |
try |
LevelData.RasterErzwingen := true; |
fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false); |
if not fil.found then raise Exception.Create(SLevelFileNotFound); |
LevelData.LoadFromFile(fil.fileLocation); |
boss := false; |
anzahlEinheiten := Length(LevelData.EnemyAdventTable); |
for i := 0 to anzahlEinheiten - 1 do |
begin |
liu.visible := true; |
LadenBtn.enabled := false; |
CloseFile(SavGame); |
exit; |
end; |
ReadLN(SavGame, Ergebnis); |
if Ergebnis <> '; LEV-File' then |
if LevelData.EnemyAdventTable[i].enemyType = etEnemyBoss then |
begin |
liu.visible := true; |
LadenBtn.enabled := false; |
CloseFile(SavGame); |
exit; |
boss := true; |
end; |
ReadLN(SavGame, l); |
x := 0; |
a := 0; |
boss := 'Nein'; |
while not SeekEOF(SavGame) do |
begin |
ReadLN(SavGame, Ergebnis); |
inc(a); |
if a = 5 then a := 1; |
if (a = 1) and (Ergebnis = '7') then boss := 'Ja'; |
inc(x); |
end; |
CloseFile(SavGame); |
if a <> 4 then |
begin |
liu.visible := true; |
LadenBtn.enabled := false; |
end |
else |
begin |
li1a.visible := true; |
li2a.visible := true; |
li3a.visible := true; |
388,13 → 250,24 |
li1b.visible := true; |
li2b.visible := true; |
li3b.visible := true; |
li4.visible := true; |
LadenBtn.enabled := true; |
LoeschenBtn.enabled := true; |
li1b.caption := inttostr(trunc(x / 4)); |
li2b.caption := boss; |
li3b.caption := l + ' Felder'; |
li1b.caption := inttostr(anzahlEinheiten); |
if boss then |
li2b.caption := SYes |
else |
li2b.caption := SNo; |
li3b.caption := Format(SFields, [LevelData.LevelEditorLength]); |
li4.Caption := Trim(Format(SXbyY, [LevelData.LevelName, LevelData.LevelAuthor])); |
finally |
FreeAndNil(LevelData); |
end; |
except |
liu.visible := true; |
LadenBtn.enabled := false; |
end; |
end; |
procedure TSpeicherungForm.Button4Click(Sender: TObject); |
begin |
407,6 → 280,23 |
SearchLevels; |
end; |
function TSpeicherungForm.GetListBoxSelectedLevelNumber: integer; |
var |
i: integer; |
begin |
result := -1; |
if LevelListBox.itemindex = -1 then exit; |
for i := 1 to MaxPossibleLevels do |
begin |
if (LevelListBox.Items.strings[LevelListBox.itemindex] = Format(SLevelListBox, [i])) or |
(LevelListBox.Items.strings[LevelListBox.itemindex] = Format(SLevelListBox, [i])+' ('+SSelbstErstellt+')') then |
begin |
result := i; |
exit; |
end; |
end; |
end; |
procedure TSpeicherungForm.DsFancyButton2Click(Sender: TObject); |
begin |
SearchLevels; |
422,9 → 312,11 |
{...} |
end; |
procedure TSpeicherungForm.LevelListBoxDblClick(Sender: TObject); |
procedure TSpeicherungForm.FormCreate(Sender: TObject); |
begin |
LadenBtn.click; |
LevelNumber.MinValue := 1; |
LevelNumber.MaxValue := MaxPossibleLevels; |
LevelNumber.Value := 1; |
end; |
procedure TSpeicherungForm.FormHide(Sender: TObject); |
432,23 → 324,5 |
mainform.dxtimer.enabled := true; |
end; |
procedure TSpeicherungForm.SpinEditClick(Sender: TObject; |
Button: TUDBtnType); |
begin |
SpinEditEdt.Text := inttostr(SpinEdit.position); |
end; |
procedure TSpeicherungForm.SpinEditEdtKeyPress(Sender: TObject; |
var Key: Char); |
begin |
if not (Key in [#13, #08, '0'..'9']) then |
Key := #0; |
end; |
procedure TSpeicherungForm.SpinEditEdtChange(Sender: TObject); |
begin |
SpinEdit.Position := strtoint(SpinEditEdt.text); |
end; |
end. |
/DirectX/Graphic.dxg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/DirectX/Graphics.dxg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/DirectX/Sound.dxw |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/DirectX/Music.dxm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/DirectX |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/ComHilfe.dfm |
---|
0,0 → 1,29 |
object HilfeForm: THilfeForm |
Left = 0 |
Top = 0 |
ClientHeight = 484 |
ClientWidth = 730 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'Segoe UI' |
Font.Style = [] |
Position = poMainFormCenter |
TextHeight = 15 |
object WebBrowser1: TWebBrowser |
Left = 0 |
Top = 0 |
Width = 730 |
Height = 484 |
Align = alClient |
TabOrder = 0 |
OnBeforeNavigate2 = WebBrowser1BeforeNavigate2 |
ControlData = { |
4C000000734B0000063200000000000000000000000000000000000000000000 |
000000004C000000000000000000000001000000E0D057007335CF11AE690800 |
2B2E126208000000000000004C0000000114020000000000C000000000000046 |
8000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000100000000000000000000000000000000000000} |
end |
end |
/README.md |
---|
0,0 → 1,8 |
# SpaceMission |
The game SpaceMission developed by Daniel Marschall is a simple space game, similar to Astroids or similar classics, in which you have to fly through a hail of comets and shoot down UFOs and other spaceships. It is equipped with a level editor and can also generation of random levels as well as 31 predefined levels. Despite the simple way of playing, the game is fun and easy to play, especially during short breaks. |
SpaceMission, Version 1.0 was rated 90% by Gamer AG and was published in the magazines PC Games and Chip. |
Licensed under the terms of the Apache 2.0 license. |
/VCL_MARKDOWN/MarkdownCommonMark.pas |
---|
0,0 → 1,3697 |
Unit MarkdownCommonMark; |
{ |
Copyright (c) 2011+, Health Intersections Pty Ltd (http://www.healthintersections.com.au) |
All rights reserved. |
Redistribution and use in source and binary forms, with or without modification, |
are permitted provided that the following conditions are met: |
* Redistributions of source code must retain the above copyright notice, this |
list of conditions and the following disclaimer. |
* Redistributions in binary form must reproduce the above copyright notice, |
this list of conditions and the following disclaimer in the documentation |
and/or other materials provided with the distribution. |
* Neither the name of HL7 nor the names of its contributors may be used to |
endorse or promote products derived from this software without specific |
prior written permission. |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND |
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
POSSIBILITY OF SUCH DAMAGE. |
} |
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF} |
{ |
How to use this - see MarkdownProcessor; this unit is not intended to be used directly |
Still to do: |
- link references |
- follow up on a few failing tests that I don't understand - see mode : too-hard |
- test under FPC |
not planned to be supported |
- HTML blocks |
note: tests related to link references and HTML blocks run (to check that the processing doesn't blow up), but output comparison is never checked |
note about GFM: |
the GFM tests and the CommonMark tests disagree about proper |
processing of lists indented more than 3 spaces. This is probably |
just poor quality in the GFM tests, which do have a number of inconsistencies |
} |
{$IFDEF FPC} |
{$WARN 4105 off : Implicit string type conversion with potential data loss from "$1" to "$2"} |
{$WARN 4044 off : Comparison might be always false due to range of constant and expression} |
{$ENDIF} |
interface |
uses |
SysUtils, Classes, Math, Generics.Collections, Character, |
MarkdownUnicodeUtils, |
{$IFDEF FPC} |
RegExpr, |
UnicodeData, |
{$ELSE} |
System.RegularExpressions, |
{$ENDIF} |
MarkdownHTMLEntities, |
MarkdownProcessor; |
const |
LENGTH_INCREMENT = 116; |
EMAIL_REGEX = '^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$'; |
TEST_STYLING = false; // set this true to check style tracking while doing unit tests (10% speed hit) |
type |
TCommonMarkStyle = (cmUnknown, cmText, cmEntity, cmControlChar, cmDelimiter, cmCode, cmURL, cmTableMarker, cmDel); |
{$IFDEF FPC} |
{ TStringBuilder } |
TStringBuilder = class |
private |
FBuild : String; |
FLength : integer; |
public |
procedure clear; |
procedure append(c : char); overload; |
procedure append(s : String); overload; |
function toString : String; override; |
end; |
{ TRegEx } |
TRegEx = class |
public |
class function isMatch(cnt, regex : String) : boolean; |
end; |
{$ENDIF} |
TCMWhitespaceMode = (wsLeave, wsTrim, wsStrip); |
// parser location tracking is done to support syntax highlighting. The parser won't report any errors from the markdown |
TLocation = record |
line : integer; |
col : integer; |
end; |
// Abstract Syntax Tree |
// inlines |
TCMTextNode = class |
private |
FName: String; |
FAttrs: TDictionary<String, String>; |
FContent : String; |
FBuild : String; |
FLength : integer; |
FOpener, FCloser : boolean; |
FActive: boolean; |
FPos : TLocation; // start offset in this text |
// Start : Integer; |
function GetAttrs: TDictionary<String, String>; |
function renderAttrs : String; |
procedure render(b : TStringBuilder); |
function getText : String; |
procedure SetName(const Value: String); |
procedure SetActive(const Value: boolean); |
public |
constructor Create(loc : TLocation); |
destructor Destroy; override; |
property name : String read FName write SetName; // '' means just a test node |
property attrs : TDictionary<String,String> read GetAttrs; |
property opener : boolean read FOpener write FOpener; |
property closer : boolean read FCloser write FCloser; |
property active : boolean read FActive write SetActive; |
procedure addText(ch : char); overload; |
procedure addText(s : String); overload; |
procedure removeChars(count : integer); |
function isEmpty : boolean; |
end; |
TCMTextNodes = class (TObjectList<TCMTextNode>) |
public |
function addOpener(loc : TLocation; name : String) : TCMTextNode; |
function addText(loc : TLocation; cnt : String) : TCMTextNode; // if the last is text and active, add to that |
function addTextNode(loc : TLocation; cnt : String) : TCMTextNode; // always make a new node, and make it inactive |
function addCloser(loc : TLocation; name : String) : TCMTextNode; |
// image parsing |
function plainTextSince(node : TCMTextNode) : String; |
procedure removeAfter(node : TCMTextNode); |
// emph processing |
procedure addOpenerAfter(name : String; node : TCMTextNode); // line/col = 0,0 |
procedure addCloserBefore(name : String; node : TCMTextNode); // line/col = 0,0 |
end; |
// blocks |
TCMBlock = class abstract (TObject) |
private |
FClosed: boolean; |
FLine : integer; |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); virtual; abstract; |
function wsMode : TCMWhitespaceMode; virtual; |
public |
constructor Create(line : Integer); |
property closed : boolean read FClosed write FClosed; |
property line : Integer read FLine; |
end; |
TCMContainerBlock = class abstract (TCMBlock) |
private |
FBlocks: TObjectList<TCMBlock>; |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
public |
constructor Create(line : Integer); |
destructor Destroy; override; |
property blocks : TObjectList<TCMBlock> read FBlocks; |
end; |
TCommonMarkDocument = class (TCMContainerBlock); |
TCMParagraphBlock = class (TCMContainerBlock) |
private |
FHeader: integer; |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
public |
function isPlainPara : boolean; virtual; |
property header : integer read FHeader write FHeader; |
end; |
TCMQuoteBlock = class (TCMParagraphBlock) |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
public |
function isPlainPara : boolean; override; |
end; |
TCMListBlock = class (TCMContainerBlock) |
private |
FOrdered: boolean; |
FStart: String; |
FMarker: String; |
FLoose: boolean; |
FLastIndent: integer; |
FBaseIndent: integer; |
FHasSeenEmptyLine : boolean; // parser state |
function grace : integer; |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
public |
property ordered : boolean read FOrdered write FOrdered; |
property baseIndent : integer read FBaseIndent write FBaseIndent; |
property lastIndent : integer read FLastIndent write FLastIndent; |
property start : String read FStart write FStart; |
property marker : String read FMarker write FMarker; |
property loose : boolean read FLoose write FLoose; |
end; |
TCMListItemBlock = class (TCMParagraphBlock) |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
public |
function isPlainPara : boolean; override; |
end; |
TCMHeadingBlock = class (TCMContainerBlock) |
private |
FLevel: integer; |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
public |
constructor Create(line, level : Integer); |
property level : integer read FLevel write FLevel; |
end; |
TCMCodeBlock = class (TCMContainerBlock) |
private |
FFenced: boolean; |
FLang: String; |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
function wsMode : TCMWhitespaceMode; override; |
public |
property fenced : boolean read FFenced write FFenced; |
property lang : String read FLang write FLang; |
end; |
// contained blocks are cells |
TCMTableRowBlock = class (TCMContainerBlock) |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
end; |
TTextAlign = (taLeft, taCenter, taRight); |
// contained blocks are rows. The first row is the title row |
TCMTableBlock = class (TCMContainerBlock) |
private |
FColumns: TArray<TTextAlign>; |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
public |
property columns : TArray<TTextAlign> read FColumns; |
end; |
TCMLeafBlock = class abstract (TCMBlock); |
TCMThematicBreakBlock = class (TCMLeafBlock) |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
end; |
TCMTextBlock = class (TCMLeafBlock) |
private |
FText: String; |
FNodes : TCMTextNodes; |
protected |
procedure render(parent : TCMBlock; b : TStringBuilder); override; |
public |
constructor Create(line : integer; text : String); |
destructor Destroy; override; |
property text : String read FText write FText; |
end; |
// Parser Infrastructure |
TCommonMarkEngine = class; |
TCMLine = class |
private |
FLine : String; |
FIndex : integer; |
FCursor : integer; // fCursor is the corrected character cursor, not the character offset |
FMark : integer; |
FStyling : boolean; |
FStyles : Array of TCommonMarkStyle; |
FBlockOffset : integer; |
FBlockPreSpaces : integer; |
procedure getOffset(position : integer; out index : integer; out preSpaces : integer); |
procedure reset; |
procedure markBlock(stop : integer); |
procedure markStyle(stop : integer; style : TCommonMarkStyle); |
procedure updateStyle(start, length : integer; style : TCommonMarkStyle); |
procedure markRemainder(style : TCommonMarkStyle); |
function GetStyle(index: integer): TCommonMarkStyle; |
function GetStyleCount: integer; |
public |
constructor create(styling : boolean; line : string; index : integer); |
procedure mark; |
procedure rewind; |
procedure advance(len : integer); // advance x number of spaces or characters |
procedure skipWS; // advance from the current cursor until not pointing at whitespace |
function isEmpty : boolean; // is cursor at end of string |
function focus : String; // what is left after cursor |
function countWS : integer; // whitespace count from cursor |
function isWhitespace : boolean; // if everything after cursor is whitespace |
property Styles[index : integer] : TCommonMarkStyle read GetStyle; |
property StyleCount : integer read GetStyleCount; |
end; |
TCMBlockProcessingContext = (bpGeneral, bpCodeBlock, bpFencedCodeBlock); |
TCMBlockProcessor = class abstract (TObject) |
protected |
FParent : TCMBlockProcessor; |
// this procedure processes a line for nested blocks |
// return true if the block is done. |
// if false, modify the line, removing prepended characters, and remember to grab the characters as you go |
function processLine(line : TCMLine; root : boolean; context : TCMBlockProcessingContext; isGFM : boolean; var isLazy : boolean) : boolean; virtual; abstract; |
function isList(ordered : boolean; marker : String; indent : integer) : boolean; virtual; |
function inListOrQuote : boolean; virtual; |
function parser : TCommonMarkEngine; virtual; |
public |
constructor Create(processor : TCMBlockProcessor); |
end; |
// this anchors the chain |
TCMDocumentProcessor = class (TCMBlockProcessor) |
private |
FParser : TCommonMarkEngine; |
protected |
function processLine(line : TCMLine; root : boolean; context : TCMBlockProcessingContext; isGFM : boolean; var isLazy : boolean) : boolean; override; |
function parser : TCommonMarkEngine; override; |
public |
constructor Create(parser : TCommonMarkEngine); |
end; |
TCMQuoteProcessor = class (TCMBlockProcessor) |
private |
quote : TCMQuoteBlock; |
protected |
function processLine(line : TCMLine; root : boolean; context : TCMBlockProcessingContext; isGFM : boolean; var isLazy : boolean) : boolean; override; |
function inListOrQuote : boolean; override; |
public |
constructor Create(processor : TCMBlockProcessor; q : TCMQuoteBlock); |
end; |
TCMListProcessor = class (TCMBlockProcessor) |
private |
FList : TCMListBlock; |
FItem : TCMListItemBlock; |
FHasContent : boolean; |
FEmptyLine : integer; |
protected |
function processLine(line : TCMLine; root : boolean; context : TCMBlockProcessingContext; isGFM : boolean; var isLazy : boolean) : boolean; override; |
function isList(ordered : boolean; marker : String; indent : integer) : boolean; override; |
function inListOrQuote : boolean; override; |
public |
constructor Create(processor : TCMBlockProcessor; list : TCMListBlock; item : TCMListItemBlock); |
destructor Destroy; override; |
end; |
TCMTextLexer = class |
private |
FText : String; |
FCursor : integer; |
FMark, FMarkCol, FMarkLine : Integer; |
FBuilder : TStringBuilder; |
FLine : integer; |
FCol : integer; |
FStartLine : integer; |
FLines : TObjectList<TCMLine>; |
FStyling : boolean; |
function GetDone: boolean; |
function GetPeek: char; |
function GetPeekNext: char; |
function GetPeekLast: char; |
function GetPeekEndRun: char; |
public |
constructor Create(text : String; lines : TObjectList<TCMLine>; startline : integer; styling : boolean); |
destructor Destroy; override; |
procedure mark; |
procedure rewind; |
property done : boolean read GetDone; |
property peek : char read GetPeek; |
property peekNext : char read GetPeekNext; |
property peekLast : char read GetPeekLast; |
property peekEndRun : char read GetPeekEndRun; |
function peekRun(checkBefore : boolean): String; |
function peekLen(length : integer) : String; |
function peekUntil(chs : TSysCharSet) : String; |
function peekWhile(chs : TSysCharSet) : String; |
function grab(style : TCommonMarkStyle) : char; overload; |
function grabRun(style : TCommonMarkStyle) : String; overload; |
function grab(style : TCommonMarkStyle; length : integer) : String; overload; |
function has(s : string) : boolean; |
function runExistsAfter(s : String) : boolean; |
function runExistsAfterBeforeChar(s : String; c : char) : boolean; |
procedure skipWS; |
function location : TLocation; |
end; |
TCMDelimiterMode = (dmNeither, dmOpener, dmCloser, dmBoth); |
TCMDelimiter = class |
private |
Fmode: TCMDelimiterMode; |
Fdelimiter: String; |
Factive: boolean; |
FNode: TCMTextNode; |
public |
constructor Create(node : TCMTextNode; delimiter : String; mode : TCMDelimiterMode); |
function isOpener : boolean; |
function isCloser : boolean; |
property node : TCMTextNode read FNode; |
property delimiter : String read Fdelimiter write Fdelimiter; |
property active : boolean read Factive write Factive; |
property mode : TCMDelimiterMode read Fmode write Fmode; |
function isEmph : boolean; |
end; |
TCommonMarkEngine = class |
private |
FLines : TObjectList<TCMLine>; |
FCurrentLine : integer; |
FBuilder : TStringBuilder; |
FEntities : TDictionary<String, String>; |
FStack : TObjectList<TCMDelimiter>; |
FStyling : boolean; |
FGFMExtensions : boolean; |
// line operations |
procedure parseLines(src : String); |
function grabLine : TCMLine; |
function peekLine : TCMLine; |
procedure redoLine; |
function done : boolean; |
// string operations |
function allCharsSame(s : String) : boolean; |
function copyTo(s : String; chs : TSysCharSet) : String; |
function after(s : String; chs : TSysCharSet) : String; |
function copyWhile(s : String; chs : TSysCharSet) : String; |
function startsWithWS(s : String; c : char; out length : integer; wsLen : integer = 3) : boolean; overload; |
function startsWithWS(s : String; c : String; out length : integer; wsLen : integer = 3) : boolean; overload; |
function countWS(s : String) : integer; |
function lengthWSCorrected(s : String) : integer; |
function removeWS(s : String; count : integer) : String; |
function stripWhitespace(s : String) : String; |
function htmlEscape(s : String) : String; overload; |
function htmlEscape(c : char) : String; overload; |
function urlEscape(s : String; ignoreExisting : boolean = false) : String; overload; |
function urlEscape(c : UnicodeChar) : String; overload; |
function parseEntityString(entity : String): String; |
function isEndOfTable(line : TCMLine) : boolean; |
procedure parseTableLine(t : TCMTableBlock; line : TCMLine); |
// status |
function inPara(blocks : TObjectList<TCMBlock>; canBeQuote : boolean) : boolean; |
function inList(blocks : TObjectList<TCMBlock>; ordered : boolean; marker : String; indent : integer; grace : integer; out list : TCMListBlock) : boolean; |
function isBlock(cont : TCMBlock; blocks : TObjectList<TCMBlock>; line : String; wsLen : integer = 3) : boolean; |
// block parsing |
function parseThematicBreak(blocks : TObjectList<TCMBlock>; line : TCMLine) : boolean; |
function parseHeader(blocks : TObjectList<TCMBlock>; line : TCMLine) : boolean; |
function parseCodeBlock(blocks : TObjectList<TCMBlock>; line : TCMLine; processor : TCMBlockProcessor) : boolean; |
function parseFencedCodeBlock(blocks : TObjectList<TCMBlock>; line : TCMLine; processor : TCMBlockProcessor) : boolean; |
function parseSeTextHeader(blocks : TObjectList<TCMBlock>; line : TCMLine; isLazy : boolean; processor : TCMBlockProcessor) : boolean; |
function parseQuoteBlock(blocks : TObjectList<TCMBlock>; line : TCMLine; processor : TCMBlockProcessor) : boolean; |
function parseUListBlock(blocks : TObjectList<TCMBlock>; line : TCMLine; processor : TCMBlockProcessor) : boolean; |
function parseOListBlock(blocks : TObjectList<TCMBlock>; line : TCMLine; processor : TCMBlockProcessor) : boolean; |
function parseTableBlock(blocks : TObjectList<TCMBlock>; line : TCMLine; processor : TCMBlockProcessor) : boolean; |
procedure parse(block : TCMContainerBlock; processor : TCMBlockProcessor); overload; |
// link references |
procedure parseLinkReferences; |
// inlines |
function hasEmailAddress(lexer: TCMTextLexer; var len : integer) : boolean; |
procedure parseTextEscape(lexer : TCMTextLexer; nodes: TCMTextNodes; wsMode : TCMWhitespaceMode); |
procedure parseEntity(lexer : TCMTextLexer; nodes : TCMTextNodes; wsMode : TCMWhitespaceMode); |
function parseEntityInner(lexer : TCMTextLexer) : String; |
procedure parseBackTick(lexer : TCMTextLexer; nodes: TCMTextNodes; wsMode : TCMWhitespaceMode); |
procedure parseTilde(lexer : TCMTextLexer; nodes: TCMTextNodes; wsMode : TCMWhitespaceMode); |
procedure parseAutoLink(lexer : TCMTextLexer; nodes : TCMTextNodes; wsMode : TCMWhitespaceMode); |
procedure parseExtendedAutoLinkWeb(lexer : TCMTextLexer; nodes : TCMTextNodes; wsMode : TCMWhitespaceMode; start, linkStart : String); |
procedure parseExtendedAutoLinkEmail(lexer : TCMTextLexer; nodes : TCMTextNodes; len : integer); |
procedure parseDelimiter(lexer : TCMTextLexer; nodes : TCMTextNodes; wsMode : TCMWhitespaceMode; canRun : boolean); |
procedure parseCloseDelimiter(lexer : TCMTextLexer; nodes : TCMTextNodes; wsMode : TCMWhitespaceMode); |
function processInlineLink(lexer : TCMTextLexer; nodes : TCMTextNodes; del : TCMDelimiter) : boolean; |
procedure parseTextCore(lexer : TCMTextLexer; nodes : TCMTextNodes; wsMode : TCMWhitespaceMode); |
procedure parseText(lexer : TCMTextLexer; nodes : TCMTextNodes; wsMode : TCMWhitespaceMode); |
function processText(text : String; wsMode : TCMWhitespaceMode; startLine : integer) : TCMTextNodes; |
procedure parseInline(blocks : TObjectList<TCMBlock>; line : String); |
procedure processInlines(block : TCMBlock; wsMode : TCMWhitespaceMode); |
procedure processEmphasis(nodes : TCMTextNodes; stopDel : TCMDelimiter); |
procedure checkLines; |
public |
Constructor Create; |
Destructor Destroy; override; |
property GFMExtensions : boolean read FGFMExtensions write FGFMExtensions; |
class function process(src : String; gfm : boolean) : String; |
// divided into 2 steps in case some consumer wants to process the syntax tree |
class function parse(src : String; gfm : boolean) : TCommonMarkDocument; overload; |
class function parseStyles(src : String; gfm : boolean) : TObjectList<TCMLine>; overload; |
class function render(doc : TCommonMarkDocument) : String; |
end; |
TCommonMarkProcessor = class (TMarkdownProcessor) |
protected |
function GetAllowUnSafe: boolean; override; |
procedure SetAllowUnSafe(const value: boolean); override; |
public |
function process(source : String) : String; override; // want to process the syntax tree? Use the TCommonMarkEngine Directly |
end; |
implementation |
function null_loc : TLocation; |
begin |
result.line := 0; |
result.col := 0; |
end; |
procedure debug(s : String); |
begin |
// writeln(s); |
end; |
function isWhitespaceChar(ch: char): boolean; |
begin |
result := CharInSet(ch, [#10, #9, ' ']); |
end; |
function isWhitespace(s: String): boolean; |
var |
ch : char; |
begin |
result := true; |
for ch in s do |
if not isWhitespaceChar(ch) then |
exit(false); |
end; |
function isEscapable(ch : char) : boolean; |
begin |
result := CharInSet(ch, ['!', '"', '#', '$', '%', '&', '''', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', |
'@', '[', '\', ']', '^', '_', '`', '{', '|', '}', '~']); |
end; |
function isUnicodePunctuation(ch : char) : boolean; |
{$IFDEF FPC} |
var |
NType: byte; |
{$ENDIF} |
begin |
{$IFDEF FPC} |
case ch of |
'0'..'9', |
'a'..'z', |
'A'..'Z', |
'_': exit(false); |
end; |
if Ord(ch)<128 then |
Result:= true |
else if Ord(ch) >= LOW_SURROGATE_BEGIN then |
exit(true) |
else |
begin |
NType:= GetProps(Ord(ch))^.Category; |
Result := not (NType<=UGC_OtherNumber); |
end; |
{$ELSE} |
result := (ch.GetUnicodeCategory in [TUnicodeCategory.ucConnectPunctuation, TUnicodeCategory.ucDashPunctuation, TUnicodeCategory.ucClosePunctuation, |
TUnicodeCategory.ucFinalPunctuation, TUnicodeCategory.ucInitialPunctuation, TUnicodeCategory.ucOtherPunctuation, TUnicodeCategory.ucOpenPunctuation, TUnicodeCategory.ucMathSymbol]); |
{$ENDIF} |
end; |
{$IFDEF FPC} |
{ TRegEx } |
class function TRegEx.isMatch(cnt, regex: String): boolean; |
var |
r : TRegExpr; |
begin |
if cnt = '' then |
result := false |
else |
begin |
r := TRegExpr.create(regex); |
try |
result := r.exec(cnt); |
finally |
r.free; |
end; |
end; |
end; |
{ TStringBuilder } |
procedure TStringBuilder.clear; |
begin |
FLength := 0; |
end; |
procedure TStringBuilder.append(c: char); |
begin |
if FLength+1 > FBuild.Length then |
setLength(FBuild, FBuild.Length+LENGTH_INCREMENT); |
inc(FLength); |
FBuild[FLength] := c; |
end; |
procedure TStringBuilder.append(s: String); |
var |
i : integer; |
begin |
if FLength+length(s) > FBuild.Length then |
setLength(FBuild, FBuild.Length+length(s)+LENGTH_INCREMENT); |
for i := 1 to length(s) do |
FBuild[FLength+i] := s[i]; |
inc(FLength, length(s)); |
end; |
function TStringBuilder.toString: String; |
begin |
result := Copy(FBuild, 1, FLength); |
end; |
{$ENDIF} |
{ TCMTextNode } |
procedure TCMTextNode.addText(s: String); |
var |
ch : char; |
begin |
for ch in s do |
addText(ch); |
end; |
constructor TCMTextNode.Create; |
begin |
inherited Create; |
FActive := true; |
FPos := loc; |
end; |
procedure TCMTextNode.addText(ch: char); |
begin |
if FLength+1 > FBuild.Length then |
setLength(FBuild, FBuild.Length+LENGTH_INCREMENT); |
inc(FLength); |
FBuild[FLength] := ch; |
end; |
destructor TCMTextNode.Destroy; |
begin |
FAttrs.Free; |
inherited; |
end; |
function TCMTextNode.GetAttrs: TDictionary<String, String>; |
begin |
if FAttrs = nil then |
FAttrs := TDictionary<String, String>.create; |
result := FAttrs; |
end; |
function TCMTextNode.getText: String; |
begin |
Active := false; |
result := FContent; |
end; |
function TCMTextNode.isEmpty: boolean; |
begin |
result := FContent = ''; |
end; |
procedure TCMTextNode.removeChars(count : integer); |
begin |
active := false; |
delete(FContent, 1, count); |
end; |
procedure TCMTextNode.render(b: TStringBuilder); |
begin |
if FOpener then |
begin |
b.Append('<'); |
b.Append(FName); |
b.Append(renderAttrs); |
if FCloser then |
b.Append(' />') |
else |
b.Append('>'); |
end |
else if FCloser then |
begin |
b.Append('</'); |
b.Append(FName); |
b.Append('>'); |
end |
else |
begin |
active := false; |
b.Append(Copy(FContent, 1, FLength)); |
end; |
end; |
function TCMTextNode.renderAttrs: String; |
var |
s : String; |
begin |
result := ''; |
if FAttrs <> nil then |
begin |
// arbitrary order to pass the standard tests |
if FAttrs.TryGetValue('src', s) then |
result := result + ' src="'+s+'"'; |
if FAttrs.TryGetValue('alt', s) then |
result := result + ' alt="'+s+'"'; |
if FAttrs.TryGetValue('href', s) then |
result := result + ' href="'+s+'"'; |
if FAttrs.TryGetValue('title', s) then |
result := result + ' title="'+s+'"'; |
for s in FAttrs.Keys do |
if (s <> 'src') and (s <> 'alt') and (s <> 'href') and (s <> 'title') then |
result := result + ' '+s+'="'+FAttrs[s]+'"'; |
end; |
end; |
procedure TCMTextNode.SetActive(const Value: boolean); |
begin |
if active <> Value then |
begin |
Factive := value; |
if not active then |
FContent := Copy(FBuild, 1, FLength); |
end; |
end; |
procedure TCMTextNode.SetName(const Value: String); |
begin |
FContent := ''; |
FLength := 0; |
FName := Value; |
active := false; |
end; |
{ TCMTextNodes } |
function TCMTextNodes.addCloser(loc : TLocation; name: String): TCMTextNode; |
begin |
if count > 0 then |
last.active := false; |
result := TCMTextNode.Create(loc); |
add(result); |
result.name := name; |
result.closer := true; |
end; |
procedure TCMTextNodes.addCloserBefore(name: String; node: TCMTextNode); |
var |
n : TCMTextNode; |
begin |
n := TCMTextNode.Create(null_loc); |
insert(IndexOf(node), n); |
n.name := name; |
n.closer := true; |
end; |
function TCMTextNodes.addOpener(loc : TLocation; name: String): TCMTextNode; |
begin |
if count > 0 then |
last.active := false; |
result := TCMTextNode.Create(loc); |
add(result); |
result.name := name; |
result.opener := true; |
end; |
procedure TCMTextNodes.addOpenerAfter(name: String; node: TCMTextNode); |
var |
n : TCMTextNode; |
begin |
n := TCMTextNode.Create(null_loc); |
Insert(IndexOf(node)+1, n); |
n.name := name; |
n.opener := true; |
end; |
function TCMTextNodes.addText(loc : TLocation; cnt: String): TCMTextNode; |
begin |
if (count = 0) or (not last.active or last.opener or last.closer) then |
begin |
result := TCMTextNode.Create(loc); |
add(result); |
end |
else |
result := last; |
result.addText(cnt); |
end; |
function TCMTextNodes.addTextNode(loc : TLocation; cnt: String): TCMTextNode; |
begin |
if count > 0 then |
last.active := false; |
result := TCMTextNode.Create(loc); |
add(result); |
result.addText(cnt); |
result.active := false; |
end; |
function TCMTextNodes.plainTextSince(node: TCMTextNode): String; |
var |
i : integer; |
begin |
result := ''; |
for i := IndexOf(node)+1 to count - 1 do |
if Items[i].name = 'img' then |
result := result + Items[i].attrs['alt'] |
else |
result := result + Items[i].getText; |
end; |
procedure TCMTextNodes.removeAfter(node: TCMTextNode); |
var |
i : integer; |
ndx : integer; |
begin |
ndx := indexOf(node); |
for i := count - 1 downto ndx + 1 do |
Delete(i); |
end; |
{ TCMBlock } |
constructor TCMBlock.Create(line: Integer); |
begin |
Inherited Create; |
FLine := line; |
end; |
function TCMBlock.wsMode: TCMWhitespaceMode; |
begin |
result := wsTrim; |
end; |
{ TCMContainerBlock } |
constructor TCMContainerBlock.Create; |
begin |
inherited create(line); |
FBlocks := TObjectList<TCMBlock>.create(true); |
end; |
destructor TCMContainerBlock.Destroy; |
begin |
FBlocks.Free; |
inherited Destroy; |
end; |
procedure TCMContainerBlock.render(parent : TCMBlock; b: TStringBuilder); |
var |
c : TCMBlock; |
begin |
for c in FBlocks do |
c.render(self, b); |
end; |
{ TCMParagraphBlock } |
function TCMParagraphBlock.isPlainPara: boolean; |
begin |
result := FHeader = 0; |
end; |
procedure TCMParagraphBlock.render(parent : TCMBlock; b: TStringBuilder); |
var |
c : TCMBlock; |
first : boolean; |
begin |
case header of |
0: b.Append('<p>'); |
1: b.Append('<h1>'); |
2: b.Append('<h2>'); |
end; |
first := true; |
for c in FBlocks do |
begin |
if first then |
first := false |
else |
b.Append(#10); |
c.render(self, b); |
end; |
case header of |
0: b.Append('</p>'); |
1: b.Append('</h1>'); |
2: b.Append('</h2>'); |
end; |
b.Append(#10); |
end; |
{ TCMQuoteBlock } |
function TCMQuoteBlock.isPlainPara: boolean; |
begin |
result := false; |
end; |
procedure TCMQuoteBlock.render(parent : TCMBlock; b: TStringBuilder); |
var |
c : TCMBlock; |
begin |
b.Append('<blockquote>'#10); |
for c in FBlocks do |
c.render(self, b); |
b.Append('</blockquote>'#10); |
end; |
{ TCMListBlock } |
function TCMListBlock.grace: integer; |
begin |
if ordered then |
result := 2 |
else |
result := 1; |
end; |
procedure TCMListBlock.render(parent : TCMBlock; b: TStringBuilder); |
var |
c : TCMBlock; |
begin |
if not ordered then |
b.Append('<ul>'#10) |
else if start = '1' then |
b.Append('<ol>'#10) |
else |
b.Append('<ol start="'+start+'">'#10); |
for c in FBlocks do |
c.render(self, b); |
if ordered then |
b.Append('</ol>'#10) |
else |
b.Append('</ul>'#10); |
end; |
{ TCMListItemBlock } |
function TCMListItemBlock.isPlainPara: boolean; |
begin |
result := false; |
end; |
procedure TCMListItemBlock.render(parent : TCMBlock; b: TStringBuilder); |
var |
c, cp : TCMBlock; |
first, rFirst : boolean; |
begin |
if Blocks.Count = 0 then |
b.Append('<li>') |
else |
begin |
b.Append('<li>'); |
rFirst := true; |
for c in FBlocks do |
if (c is TCMParagraphBlock) and (c as TCMParagraphBlock).isPlainPara and not (parent as TCMListBlock).loose then |
begin |
first := true; |
for cp in (c as TCMParagraphBlock).Blocks do |
begin |
if first then |
first := false |
else |
b.Append(#10); |
cp.render(self, b); |
end; |
end |
else |
begin |
if rFirst then |
begin |
rFirst := false; |
b.Append(#10); |
end; |
c.render(self, b); |
end; |
end; |
b.Append('</li>'#10); |
end; |
{ TCMHeadingBlock } |
constructor TCMHeadingBlock.Create(line, level: Integer); |
begin |
Inherited Create(line); |
FLevel := level; |
end; |
procedure TCMHeadingBlock.render(parent : TCMBlock; b: TStringBuilder); |
begin |
b.Append('<h'+inttostr(FLevel)+'>'); |
inherited render(parent, b); |
b.Append('</h'+inttostr(FLevel)+'>'); |
b.Append(#10); |
end; |
{ TCMCodeBlock } |
procedure TCMCodeBlock.render(parent : TCMBlock; b: TStringBuilder); |
var |
c : TCMBlock; |
begin |
if lang <> '' then |
b.Append('<pre><code class="language-'+lang+'">') |
else |
b.Append('<pre><code>'); |
for c in FBlocks do |
begin |
c.render(self, b); |
b.Append(#10); |
end; |
b.Append('</code></pre>'); |
b.Append(#10); |
end; |
function TCMCodeBlock.wsMode: TCMWhitespaceMode; |
begin |
result := wsLeave; |
end; |
{ TCMThematicBreakBlock } |
procedure TCMThematicBreakBlock.render(parent : TCMBlock; b: TStringBuilder); |
begin |
b.Append('<hr />'); |
b.Append(#10); |
end; |
{ TCMTextBlock } |
constructor TCMTextBlock.Create(line : integer; text: String); |
begin |
inherited Create(line); |
FText := text; |
end; |
destructor TCMTextBlock.Destroy; |
begin |
FNodes.Free; |
inherited; |
end; |
procedure TCMTextBlock.render(parent : TCMBlock; b: TStringBuilder); |
var |
n : TCMTextNode; |
begin |
for n in FNodes do |
n.render(b); |
end; |
{ TCMLine } |
procedure TCMLine.reset; |
var |
i : integer; |
begin |
FCursor := 1; |
if FStyling then |
begin |
SetLength(FStyles, length(FLine)); |
for i := 0 to length(FLine) - 1 do |
FStyles[i] := cmUnknown; |
end; |
end; |
procedure TCMLine.rewind; |
begin |
FCursor := FMark; |
end; |
procedure TCMLine.advance(len: integer); |
begin |
inc(FCursor, len); |
markBlock(FCursor-1); |
end; |
function TCMLine.isEmpty: boolean; |
var |
index, preSpaces: integer; |
begin |
getOffset(FCursor, index, preSpaces); |
result := (preSpaces = 0) and (index > FLine.Length); |
end; |
function TCMLine.isWhitespace: boolean; |
var |
index, preSpaces, i: integer; |
begin |
getOffset(FCursor, index, preSpaces); |
result := true; |
for i := index to FLine.Length do |
if not isWhitespaceChar(Fline[i]) then |
exit(false); |
end; |
procedure TCMLine.mark; |
begin |
FMark := FCursor; |
end; |
procedure TCMLine.markBlock(stop: integer); |
var |
i : integer; |
begin |
getOffset(stop+1, i, FBlockPreSpaces); |
FBlockOffset := i-1; |
markStyle(FBlockOffset, cmControlChar); |
end; |
procedure TCMLine.markRemainder(style: TCommonMarkStyle); |
var |
i : integer; |
begin |
if not FStyling then |
exit; |
i := Length(FStyles) - 1; |
while (i >=0) and (FStyles[i] = cmUnknown) do |
begin |
FStyles[i] := style; |
dec(i); |
end; |
end; |
procedure TCMLine.markStyle(stop: integer; style: TCommonMarkStyle); |
var |
i : integer; |
begin |
if not FStyling then |
exit; |
for i := 0 to Min(stop, FLine.length) - 1 do |
FStyles[i] := style; |
end; |
function TCMLine.countWS: integer; |
var |
index, preSpaces, c, len: integer; |
begin |
getOffset(FCursor, index, preSpaces); |
result := preSpaces; |
c := FCursor + preSpaces; // for tab stop tracking |
while (index <= FLine.Length) and isWhitespaceChar(FLine[index]) do |
begin |
if FLine[index] = #9 then |
begin |
len := (c - 1) mod 4; |
if len = 0 then |
len := 4; |
end |
else |
len := 1; |
inc(c, len); |
inc(result, len); |
inc(index); |
end; |
end; |
constructor TCMLine.create(styling : boolean; line: string; index: integer); |
begin |
inherited create; |
FStyling := styling; |
FLine := line; |
FIndex := index; |
reset; |
end; |
function TCMLine.focus: String; |
var |
index, preSpaces, i: integer; |
begin |
getOffset(FCursor, index, preSpaces); |
SetLength(result, preSpaces); |
for i := 1 to result.Length do |
result[i] := ' '; |
result := result+FLine.Substring(index-1); |
end; |
procedure TCMLine.getOffset(position : integer; out index, preSpaces: integer); |
var |
c, len : integer; |
begin |
c := 1; |
index := 1; |
while (c < position) and (index <= Fline.length) do |
begin |
if FLine[index] = #9 then |
len := 4 - ((c - 1) mod 4) |
else |
len := 1; |
inc(index, 1); |
inc(c, len); |
end; |
if index > Fline.length then |
preSpaces := 0 |
else |
preSpaces := c - position; |
end; |
function TCMLine.GetStyle(index: integer): TCommonMarkStyle; |
begin |
result := FStyles[index]; |
end; |
function TCMLine.GetStyleCount: integer; |
begin |
result := length(FStyles); |
end; |
procedure TCMLine.skipWS; |
var |
index, preSpaces, c, len: integer; |
begin |
getOffset(FCursor, index, preSpaces); |
c := FCursor + preSpaces; // for tab stop tracking |
while (index <= FLine.Length) and isWhitespaceChar(FLine[index]) do |
begin |
if FLine[index] = #9 then |
begin |
len := c mod 4; |
if len = 0 then |
len := 4; |
end |
else |
len := 1; |
inc(c, len); |
inc(index); |
end; |
FCursor := c; |
end; |
procedure TCMLine.updateStyle(start, length: integer; style: TCommonMarkStyle); |
var |
i : integer; |
begin |
if not FStyling then |
exit; |
for i := start + FBlockOffset to Min(start + FBlockOffset + length, FLine.length) - 1 do |
FStyles[i] := style; |
end; |
{ TCMBlockProcessor } |
constructor TCMBlockProcessor.Create(processor: TCMBlockProcessor); |
begin |
inherited Create; |
FParent := processor; |
end; |
function TCMBlockProcessor.inListOrQuote: boolean; |
begin |
result := false; |
end; |
function TCMBlockProcessor.isList(ordered: boolean; marker: String; indent: integer): boolean; |
begin |
result := false; |
end; |
function TCMBlockProcessor.parser: TCommonMarkEngine; |
begin |
result := FParent.parser; |
end; |
{ TCMDocumentProcessor } |
constructor TCMDocumentProcessor.Create(parser : TCommonMarkEngine); |
begin |
inherited Create(nil); |
FParser := parser; |
end; |
function TCMDocumentProcessor.parser: TCommonMarkEngine; |
begin |
result := FParser; |
end; |
function TCMDocumentProcessor.processLine(line: TCMLine; root : boolean; context : TCMBlockProcessingContext; isGFM : boolean; var isLazy : boolean): boolean; |
begin |
result := false; // document is only ended by end of source |
isLazy := false; |
end; |
{ TCMQuoteProcessor } |
constructor TCMQuoteProcessor.Create(processor : TCMBlockProcessor; q: TCMQuoteBlock); |
begin |
inherited Create(processor); |
quote := q; |
end; |
function TCMQuoteProcessor.inListOrQuote: boolean; |
begin |
result := true; |
end; |
function TCMQuoteProcessor.processLine(line: TCMLine; root : boolean; context : TCMBlockProcessingContext; isGFM : boolean; var isLazy : boolean): boolean; |
var |
len : integer; |
begin |
result := FParent.processLine(line, false, context, isGFM, isLazy); |
if not result then |
begin |
if parser.startsWithWS(line.focus, '>', len) then |
begin |
line.advance(len); |
if not line.isEmpty and isWhitespaceChar(line.focus[1]) then |
line.advance(1); |
end |
else if root then // only can do that else we walk into descendents |
begin |
// decide whether the block is a continuation, or the end. |
// it's the end if it's empty, or it starts a new kind of block |
// plain text isn't the end of the block (lazy :-( ) |
if line.isWhitespace then |
result := true |
else if parser.isBlock(quote, quote.FBlocks, line.focus) then |
result := true |
else if not parser.inPara(quote.blocks, false) then |
result := true |
else |
isLazy := true; |
end; |
end |
end; |
{ TCMListProcessor } |
constructor TCMListProcessor.Create(processor: TCMBlockProcessor; list : TCMListBlock; item: TCMListItemBlock); |
begin |
inherited Create(processor); |
Flist := list; |
Fitem := item; |
FEmptyLine := -1; |
end; |
destructor TCMListProcessor.Destroy; |
begin |
if FList.FHasSeenEmptyLine and not FList.FLoose and (FParent is TCMListProcessor) then |
(FParent as TCMListProcessor).FList.FHasSeenEmptyLine := true; |
inherited; |
end; |
function TCMListProcessor.inListOrQuote: boolean; |
begin |
result := true; |
end; |
function TCMListProcessor.isList(ordered: boolean; marker: String; indent: integer): boolean; |
begin |
result := (FList.ordered = ordered) and (FList.marker = marker) and (indent < FList.lastIndent + 1); |
end; |
function TCMListProcessor.processLine(line: TCMLine; root: boolean; context : TCMBlockProcessingContext; isGFM : boolean; var isLazy : boolean): boolean; |
var |
len : integer; |
cws, linc : integer; |
begin |
result := FParent.processLine(line, false, context, isGFM, isLazy); |
if not result then |
begin |
cws := line.countWS; |
linc := parser.FCurrentLine; |
if linc = FItem.line then |
line.advance(FList.lastIndent) |
else if cws >= FList.LastIndent then |
begin |
len := cws; |
if len > FList.lastIndent+1 then |
len := FList.baseIndent; |
line.advance(len); |
end |
else if isGFM and (cws > 3) and (line.focus.Trim.StartsWith('-')) then |
result := false |
else if not line.isWhitespace and parser.isBlock(FList, FItem.blocks, line.focus, FList.lastIndent+FList.grace) then |
begin |
result := true; |
end; |
if root then |
begin |
if not line.isWhiteSpace then |
begin |
FHasContent := true; |
if root and not result and FList.FHasSeenEmptyLine then |
FList.loose := true; |
end |
else if not result then |
begin |
isLazy := true; |
if not FHasContent then |
begin |
if FEmptyLine = -1 then |
FEmptyLine := linc |
else if FEmptyLine <> parser.FCurrentLine then |
result := true; |
end; |
if (context = bpGeneral) and (linc <> FItem.line) then |
FList.FHasSeenEmptyLine := true; |
end; |
end; |
end; |
end; |
{ TCMTextLexer } |
constructor TCMTextLexer.Create(text: String; lines : TObjectList<TCMLine>; startline : integer; styling : boolean); |
begin |
inherited Create; |
FText := text; |
FCursor := 1; |
FBuilder := TStringBuilder.create; |
FLines := lines; |
FStartLine := startline; |
FLine := 0; |
FCol := 1; |
FStyling := styling; |
end; |
destructor TCMTextLexer.Destroy; |
begin |
FBuilder.Free; |
inherited; |
end; |
procedure TCMTextLexer.rewind; |
begin |
FCursor := FMark; |
FLine := FMarkLine; |
FCol := FMarkCol; |
end; |
function TCMTextLexer.runExistsAfter(s: String): boolean; |
var |
i, len : integer; |
begin |
len := s.Length; |
i := FCursor + len + 1; |
result := false; |
while i+len <= FText.Length + 1 do |
begin |
if (copy(FText, i, len) = s) and (FText[i-1] <> s[1]) and ((i+len = FText.Length+1) or (FText[i+len] <> s[1])) then |
exit(true); |
inc(i); |
end; |
end; |
function TCMTextLexer.runExistsAfterBeforeChar(s: String; c : char): boolean; |
var |
i, len : integer; |
begin |
len := s.Length; |
i := FCursor + len; |
result := false; |
while i+len <= FText.Length + 1 do |
begin |
if FText[i] = c then |
exit(false); |
if (copy(FText, i, len) = s) and (FText[i-1] <> s[1]) and ((i+len = FText.Length+1) or (FText[i+len] <> s[1])) then |
exit(true); |
inc(i); |
end; |
end; |
procedure TCMTextLexer.skipWS; |
begin |
while isWhitespaceChar(peek) do |
grab(cmText); |
end; |
function TCMTextLexer.GetDone: boolean; |
begin |
result := FCursor > FText.Length; |
end; |
function TCMTextLexer.GetPeek: char; |
begin |
if done then |
result := #0 |
else |
result := FText[FCursor]; |
end; |
function TCMTextLexer.GetPeekEndRun: char; |
var |
i : integer; |
c : char; |
begin |
if FCursor >= FText.Length then |
result := #0 |
else |
begin |
i := FCursor; |
c := FText[i]; |
while (i <= FText.Length) and (FText[i] = c) do |
inc(i); |
if i > FText.Length then |
result := #0 |
else |
result := FText[i]; |
end; |
end; |
function TCMTextLexer.GetPeekLast: char; |
begin |
if FCursor = 1 then |
result := #0 |
else |
result := FText[FCursor-1]; |
end; |
function TCMTextLexer.GetPeekNext: char; |
begin |
if FCursor >= FText.Length then |
result := #0 |
else |
result := FText[FCursor+1]; |
end; |
function TCMTextLexer.peekRun(checkBefore : boolean): String; |
var |
i : integer; |
c : char; |
begin |
FBuilder.clear; |
c := peek; |
i := FCursor; |
if checkBefore and (i > 2) and (FText[i-1] = c) then |
exit(''); |
while (i <= FText.Length) and (FText[i] = c) do |
begin |
FBuilder.Append(c); |
inc(i); |
end; |
result := FBuilder.ToString; |
end; |
function TCMTextLexer.grab(style : TCommonMarkStyle; length: integer): String; |
var |
i : integer; |
begin |
FBuilder.clear; |
for i := 1 to length do |
if not done then |
FBuilder.Append(grab(style)); |
result := FBuilder.toString; |
end; |
function TCMTextLexer.grabRun(style : TCommonMarkStyle): String; |
var |
c : char; |
begin |
FBuilder.Clear; |
c := peek; |
while peek = c do |
FBuilder.append(grab(style)); |
result := FBuilder.ToString; |
end; |
function TCMTextLexer.grab(style : TCommonMarkStyle): char; |
var |
line : TCMLine; |
begin |
if done then |
result := #0 |
else |
begin |
// first task: mark the character we are grabbing with the specified style |
result := FText[FCursor]; |
if result <> #10 then |
begin |
line := FLines[FStartLine + FLine]; |
if FStyling and (FCol - 1 >= line.FBlockPreSpaces) then |
begin |
if FCol - 1 + line.FBlockOffset - line.FBlockPreSpaces >= length(line.FStyles) then |
raise EMarkdownProcessor.create('problem'); |
line.FStyles[FCol - 1 + line.FBlockOffset - line.FBlockPreSpaces] := style; |
end; |
end; |
inc(FCursor); |
if result = #10 then |
begin |
FCol := 1; |
inc(FLine); |
end |
else |
inc(FCol); |
end; |
end; |
function TCMTextLexer.has(s: string): boolean; |
begin |
result := peekLen(s.Length) = s; |
end; |
function TCMTextLexer.location: TLocation; |
begin |
result.line := FLine + FStartLine; |
result.col := FCol; |
end; |
procedure TCMTextLexer.mark; |
begin |
FMark := FCursor; |
FMarkLine := FLine; |
FMarkCol := FCol; |
end; |
function TCMTextLexer.peekUntil(chs : TSysCharSet) : String; |
var |
i : integer; |
begin |
FBuilder.clear; |
i := FCursor; |
while (i <= FText.Length) and not CharInSet(FText[i], chs) do |
begin |
FBuilder.Append(FText[i]); |
inc(i); |
end; |
if (i > FText.Length) then |
result := '' |
else |
result := FBuilder.ToString; |
end; |
function TCMTextLexer.peekWhile(chs: TSysCharSet): String; |
var |
i : integer; |
begin |
FBuilder.clear; |
i := FCursor; |
while (i <= FText.Length) and CharInSet(FText[i], chs) do |
begin |
FBuilder.Append(FText[i]); |
inc(i); |
end; |
result := FBuilder.ToString; |
end; |
function TCMTextLexer.peekLen(length: integer): String; |
var |
i : integer; |
begin |
FBuilder.clear; |
for i := FCursor to FCursor+length-1 do |
begin |
if i <= FText.Length then |
FBuilder.Append(FText[i]); |
end; |
result := FBuilder.ToString; |
end; |
{ TCMDelimiter } |
constructor TCMDelimiter.Create(node: TCMTextNode; delimiter : String; mode: TCMDelimiterMode); |
begin |
inherited create; |
FNode := node; |
FMode := mode; |
Fdelimiter := delimiter; |
FActive := true; |
end; |
function TCMDelimiter.isCloser: boolean; |
begin |
result := mode in [dmCloser, dmBoth]; |
end; |
function TCMDelimiter.isEmph: boolean; |
begin |
result := (delimiter <> '[') and (delimiter <> '!['); |
end; |
function TCMDelimiter.isOpener: boolean; |
begin |
result := mode in [dmOpener, dmBoth]; |
end; |
{ TCommonMarkEngine } |
class function TCommonMarkEngine.parse(src: String; gfm : boolean): TCommonMarkDocument; |
var |
this : TCommonMarkEngine; |
doc : TCMDocumentProcessor; |
begin |
this := TCommonMarkEngine.Create; |
try |
this.FStyling := TEST_STYLING; |
this.parseLines(src.Replace(#13#10, #10).replace(#13, #10)); |
this.GFMExtensions := gfm; |
doc := TCMDocumentProcessor.Create(this); |
try |
result := TCommonMarkDocument.Create(1); |
this.parse(result, doc); |
this.parseLinkReferences; |
this.processInlines(result, wsTrim); |
this.checkLines; |
finally |
doc.Free; |
end; |
finally |
this.free; |
end; |
end; |
class function TCommonMarkEngine.parseStyles(src: String; gfm : boolean): TObjectList<TCMLine>; |
var |
this : TCommonMarkEngine; |
doc : TCMDocumentProcessor; |
obj : TCommonMarkDocument; |
begin |
this := TCommonMarkEngine.Create; |
try |
this.FStyling := true; |
this.parseLines(src.Replace(#13#10, #10).replace(#13, #10)); |
this.GFMExtensions := gfm; |
doc := TCMDocumentProcessor.Create(this); |
try |
obj := TCommonMarkDocument.Create(1); |
try |
this.parse(obj, doc); |
this.parseLinkReferences; |
this.processInlines(obj, wsTrim); |
result := this.FLines; |
this.FLines := nil; |
finally |
obj.Free; |
end; |
finally |
doc.Free; |
end; |
finally |
this.free; |
end; |
end; |
class function TCommonMarkEngine.render(doc: TCommonMarkDocument): String; |
var |
b : TStringBuilder; |
begin |
b := TStringBuilder.Create; |
try |
doc.render(nil, b); |
result := b.ToString; |
finally |
b.Free; |
end; |
end; |
constructor TCommonMarkEngine.Create; |
begin |
inherited Create; |
FGFMExtensions := true; |
FBuilder := TStringBuilder.Create; |
FStack := TObjectList<TCMDelimiter>.Create(true); |
FLines := TObjectList<TCMLine>.create(true); |
FEntities := TDictionary<String, String>.create; |
registerEntities(FEntities); |
end; |
destructor TCommonMarkEngine.Destroy; |
begin |
FEntities.Free; |
FStack.Free; |
FBuilder.Free; |
FLines.Free; |
inherited; |
end; |
function TCommonMarkEngine.grabLine: TCMLine; |
begin |
inc(FCurrentLine); |
result := FLines[FCurrentLine]; |
result.reset; |
end; |
function TCommonMarkEngine.peekLine: TCMLine; |
begin |
if FCurrentLine = FLines.Count - 1 then |
result := nil |
else |
result := FLines[FCurrentLine+1]; |
end; |
procedure TCommonMarkEngine.redoLine; |
begin |
FLines[FCurrentLine].reset; |
dec(FCurrentLine); |
end; |
function TCommonMarkEngine.done: boolean; |
begin |
result := FCurrentLine = FLines.Count - 1 |
end; |
function TCommonMarkEngine.htmlEscape(c : char): String; |
begin |
case c of |
'<' : result := '<'; |
'>' : result := '>'; |
'"' : result := '"'; |
'&' : result := '&'; |
else |
result := c; |
end; |
end; |
function TCommonMarkEngine.htmlEscape(s: String): String; |
var |
ch : char; |
begin |
FBuilder.Clear; |
for ch in s do |
FBuilder.Append(htmlEscape(ch)); |
result := FBuilder.ToString; |
end; |
function TCommonMarkEngine.after(s: String; chs: TSysCharSet): String; |
var |
i : integer; |
begin |
if (s = '') then |
exit(s); |
i := 0; |
while (i < length(s)) and CharInSet(s[i+1], chs) do |
inc(i); |
result := s.Substring(i); |
end; |
function TCommonMarkEngine.allCharsSame(s : String) : boolean; |
var |
i : integer; |
begin |
result := true; |
for i := 2 to length(s) do |
if s[i] <> s[1] then |
exit(false); |
end; |
const |
STYLE_CODES : array [TCommonMarkStyle] of String = ('?', '.', '&', 'C', 'D', 'X', 'u', 't', '~'); |
procedure TCommonMarkEngine.checkLines; |
var |
i : integer; |
l : TCMLine; |
begin |
if not TEST_STYLING then |
exit; |
// for l in FLines do |
// begin |
// for i := 0 to length(l.FStyles) - 1 do |
// write(STYLE_CODES[l.FStyles[i]]); |
// writeln; |
// end; |
for l in FLines do |
for i := 0 to length(l.FStyles) - 1 do |
if l.FStyles[i] = cmUnknown then |
raise EMarkdownProcessor.Create('Unknown style @ '+inttostr(l.FIndex)+', '+inttostr(i)); |
end; |
function TCommonMarkEngine.copyTo(s : String; chs : TSysCharSet) : String; |
var |
i : integer; |
begin |
i := 1; |
while (i <= s.Length) and not CharInSet(s[i], chs) do |
inc(i); |
if i > s.Length then |
result := s |
else |
result := copy(s, 1, i-1); |
end; |
function TCommonMarkEngine.copyWhile(s : String; chs : TSysCharSet) : String; |
var |
i : integer; |
begin |
i := 1; |
while (i <= s.Length) and CharInSet(s[i], chs) do |
inc(i); |
if i > s.Length then |
result := s |
else |
result := copy(s, 1, i-1); |
end; |
// allows up to 3 spaces before c; returns the length to remove from the front as well as a boolean for whether to match |
function TCommonMarkEngine.startsWithWS(s : String; c : char; out length : integer; wsLen : integer = 3) : boolean; |
var |
i : integer; |
begin |
if s = '' then |
exit(false); |
length := 1; |
for i := 1 to wsLen do |
begin |
if (s.Length >= length) and (s[length] = ' ') then |
inc(length); |
end; |
result := s[length] = c; |
end; |
function TCommonMarkEngine.startsWithWS(s : String; c : String; out length : integer; wsLen : integer = 3) : boolean; |
var |
i : integer; |
begin |
if s = '' then |
exit(false); |
length := 1; |
for i := 1 to wsLen do |
begin |
if (s.Length >= length) and (s[length] = ' ') then |
inc(length); |
end; |
result := copy(s, length, c.Length) = c; |
end; |
function TCommonMarkEngine.lengthWSCorrected(s : String) : integer; |
var |
i : integer; |
begin |
result := 0; |
for i := 1 to length(s) do |
if s[i] = #9 then |
inc(result, 4) |
else |
inc(result, 1); |
end; |
function TCommonMarkEngine.countWS(s : String) : integer; |
var |
i : integer; |
begin |
result := 0; |
i := 0; |
while (i < s.Length) and CharInSet(s[i+1], [' ', #9]) do |
begin |
if s[i+1] = #9 then |
inc(result, 4) |
else |
inc(result); |
inc(i); |
end; |
end; |
function TCommonMarkEngine.removeWS(s: String; count: integer): String; |
var |
i, j, c : integer; |
begin |
i := 0; |
c := 0; |
while (i <= s.Length) and (c < count) do |
begin |
inc(i); |
if (i <= s.Length) then |
if s[i] = ' ' then |
inc(c) |
else if s[i] = #9 then |
inc(c, 4) |
else |
break; |
end; |
if c > count then |
begin |
SetLength(result, c-count); |
for j := 1 to result.length do |
result[j] := ' '; |
result := result + s.Substring(i) |
end |
else |
result := s.Substring(i); |
end; |
function TCommonMarkEngine.stripWhitespace(s: String): String; |
var |
ch : Char; |
begin |
FBuilder.Clear; |
for ch in s do |
if not isWhitespace(ch) then |
FBuilder.append(ch); |
result := FBuilder.ToString; |
end; |
function TCommonMarkEngine.urlEscape(c: UnicodeChar): String; |
var |
b : TBytes; |
i : integer; |
begin |
case c of |
'&' : result := '&'; // not escaped in URL but is escaped in html |
'\', '[', ']', '"', '`' : result := '%'+inttoHex(ord(c), 2).ToUpper; |
else if ord(c) > 126 then |
begin |
b := TEncoding.UTF8.GetBytes(c); |
result := ''; |
for i := 0 to length(b) - 1 do |
result := result + '%'+inttoHex(b[i], 2).ToUpper; |
end |
else if ord(c) > 126 then |
result := '%'+inttoHex(ord(c), 2).ToUpper |
else |
result := c; |
end; |
end; |
function TCommonMarkEngine.urlEscape(s: String; ignoreExisting : boolean = false): String; |
var |
ch : UnicodeChar; |
cs : String; |
begin |
FBuilder.Clear; |
for ch in unicodeChars(s) do |
begin |
if ignoreExisting {and (ch = '%') and (StrToIntDef('X'+copy(s, i+1, 2), -1) <> -1)} then |
begin |
cs := ch; |
FBuilder.Append(cs); |
end |
else |
FBuilder.Append(urlEscape(ch)); |
end; |
result := FBuilder.ToString; |
end; |
function TCommonMarkEngine.inList(blocks: TObjectList<TCMBlock>; ordered: boolean; marker : String; indent : integer; grace : integer; out list: TCMListBlock): boolean; |
begin |
result := (blocks.Count > 0) and (blocks.Last is TCMListBlock); |
if result then |
begin |
list := blocks.Last as TCMListBlock; |
result := not list.closed and (list.ordered = ordered) and (list.marker = marker) |
and (indent <= list.LastIndent + grace); |
end; |
end; |
function TCommonMarkEngine.inPara(blocks: TObjectList<TCMBlock>; canBeQuote : boolean): boolean; |
begin |
result := (blocks.Count > 0) and (blocks.Last is TCMParagraphBlock) and not (blocks.Last as TCMParagraphBlock).closed and ((blocks.Last as TCMParagraphBlock).header = 0); |
if result and not canBeQuote and not (blocks.Last as TCMParagraphBlock).isPlainPara then |
result := false; |
end; |
function TCommonMarkEngine.isBlock(cont : TCMBlock; blocks : TObjectList<TCMBlock>; line: String; wsLen : integer = 3): boolean; |
function inOrderedList : boolean; |
begin |
result := (cont is TCMListBlock) and (cont as TCMListBlock).ordered; |
end; |
var |
len : integer; |
s, t : String; |
p : boolean; |
begin |
if startsWithWS(line, '*', len, wsLen) then |
exit(true); |
if startsWithWS(line, '-', len, wsLen) then |
exit(true); |
if startsWithWS(line, '+', len, wsLen) then |
exit(true); |
if startsWithWS(line, '___', len) then |
exit(true); |
if startsWithWS(line, '#', len) then |
exit(true); |
if startsWithWS(line, '`', len) then |
exit(true); |
if startsWithWS(line, '~', len) then |
exit(true); |
if startsWithWS(line, '>', len) then |
exit(true); |
if (countWS(line) >= 4) and not InPara(blocks, false) then // code block |
exit(true); |
p := (blocks.count > 0) and (blocks.last is TCMParagraphBlock) and not (blocks.last.closed); |
// ok now look for ordered list |
len := countWS(line); |
s := removeWS(line, len); |
t := copyWhile(s, ['0'..'9']); |
if t.Length > 0 then |
begin |
if not p or (t = '1') or inOrderedList then |
begin |
s := s.Substring(t.Length); |
if (s <> '') then |
begin |
if (s = ')') or (s = '.') or s.StartsWith(') ') or s.StartsWith('. ') then |
exit(true); |
end; |
end; |
end; |
result := not p; |
end; |
function TCommonMarkEngine.isEndOfTable(line: TCMLine): boolean; |
var |
s : String; |
begin |
if line = nil then |
exit(true); |
s := line.FLine; |
result := (s.Trim = '') or s.StartsWith('>') or line.FLine.StartsWith(' ') or s.StartsWith('#') or s.StartsWith('~'); |
end; |
function TCommonMarkEngine.parseThematicBreak(blocks : TObjectList<TCMBlock>; line: TCMLine): boolean; |
var |
s : String; |
begin |
if line.countWS >= 4 then |
exit(false); |
s := stripWhitespace(line.focus); |
if (s.StartsWith('***') or s.StartsWith('---') or s.StartsWith('___')) and AllCharsSame(s) then |
begin |
blocks.Add(TCMThematicBreakBlock.Create(FCurrentLine)); |
line.markStyle(line.FLine.Length, cmControlChar); |
result := true; |
end |
else |
result := false; |
end; |
function TCommonMarkEngine.parseUListBlock(blocks: TObjectList<TCMBlock>; line: TCMLine; processor: TCMBlockProcessor): boolean; |
var |
list : TCMListBlock; |
li : TCMListItemBlock; |
lp : TCMListProcessor; |
i, i2 : integer; |
s, m : String; |
begin |
if line.isEmpty then |
exit(false); |
if line.countWS >= 4 then |
begin |
m := after(line.focus, [' ']); |
if (m = '') or not inList(blocks, false, m[1], line.countWS, 1, list) then |
exit(false); |
end; |
i := line.countWS; |
s := line.focus; |
if (s.length < 1+i) then |
exit(false); |
if not CharInSet(s[1+i], ['+', '-', '*']) then |
exit(false); |
m := s[1+i]; |
s := s.Substring(1+i); |
if isWhitespace(s) and inPara(blocks, false) then |
exit(false); |
if isWhitespace(s) then // nothing after if it's the only thing on the line |
i2 := 1 |
else |
begin |
i2 := countWS(s); |
if (i2 = 0) then |
exit(false); |
if (i2 >= 5) then |
i2 := 1; |
end; |
if not inList(blocks, false, m, i+i2+1, 1, list) then |
begin |
list := TCMListBlock.Create(FCurrentLine); |
blocks.add(list); |
list.ordered := false; |
list.BaseIndent := i+i2+1; |
list.lastIndent := list.BaseIndent; |
list.marker := m; |
end |
else |
list.Lastindent := i+i2+1; |
li := TCMListItemBlock.Create(FCurrentLine); |
list.blocks.Add(li); |
result := true; |
redoLine; |
// now, instead of grabbing the >, we recurse and get the processor to do that |
lp := TCMListProcessor.Create(processor, list, li); |
try |
parse(li, lp); |
finally |
lp.Free; |
end; |
end; |
function TCommonMarkEngine.parseHeader(blocks : TObjectList<TCMBlock>; line: TCMLine): boolean; |
var |
len : integer; |
ls, s : String; |
b : TCMHeadingBlock; |
begin |
if line.countWS >= 4 then |
exit(false); |
ls := line.focus.Trim; |
if ls.StartsWith('# ') or ls.StartsWith('#'#9) or (ls = '#') then |
len := 1 |
else if ls.StartsWith('## ') or ls.StartsWith('##'#9) or (ls = '##') then |
len := 2 |
else if ls.StartsWith('### ') or ls.StartsWith('###'#9) or (ls = '###') then |
len := 3 |
else if ls.StartsWith('#### ') or ls.StartsWith('####'#9) or (ls = '####') then |
len := 4 |
else if ls.StartsWith('##### ') or ls.StartsWith('#####'#9) or (ls = '#####') then |
len := 5 |
else if ls.StartsWith('###### ') or ls.StartsWith('######'#9) or (ls = '######') then |
len := 6 |
else |
exit(False); |
result := true; |
b := TCMHeadingBlock.Create(FCurrentLine, len); |
blocks.Add(b); |
line.markBlock(len); |
line.skipWS; |
s := ls.substring(len); |
if not isWhitespace(s) then |
begin |
len := length(s); |
while (len > 0) and (s[len] = '#') do |
dec(len); |
if (len = 0) then |
s := '' |
else if (s[len] = ' ') then |
s := copy(s, 1, len-1); |
end; |
line.markRemainder(cmText); |
parseInline(b.blocks, s); |
end; |
procedure TCommonMarkEngine.parseInline(blocks : TObjectList<TCMBlock>; line : String); |
var |
b : TCMTextBlock; |
begin |
if (blocks.Count > 0) and (blocks.Last is TCMTextBlock) then |
begin |
b := blocks.Last as TCMTextBlock; |
b.FText := b.FText+#10+line; |
end |
else |
blocks.Add(TCMTextBlock.create(FCurrentLine, line)); |
end; |
function TCommonMarkEngine.parseOListBlock(blocks: TObjectList<TCMBlock>; line: TCMLine; processor: TCMBlockProcessor): boolean; |
var |
list : TCMListBlock; |
li : TCMListItemBlock; |
lp : TCMListProcessor; |
i, i2 : integer; |
s,sl, m, ls : String; |
begin |
result := false; |
if line.isEmpty then |
exit(false); |
if line.countWS >= 4 then |
begin |
m := after(line.focus, [' ']); |
m := after(m, ['0'..'9']); |
if (m = '') or not inList(blocks, true, m[1], line.countWS, 2, list) then |
exit(false); |
end; |
i := line.countWS; |
line.mark; |
try |
line.skipWS; |
ls := line.focus; |
s := copyWhile(ls, ['0'..'9']); |
if (s = '') or (length(s) > 9) then |
exit(false); |
if not CharInSet(ls[s.Length+1], ['.', ')']) then |
exit(false); |
if inPara(blocks, false) and (s <> '1') then |
exit(false); // rule 267 |
m := ls[s.Length+1]; |
i := i+s.Length+1; |
sl := ls.Substring(s.Length+1); |
if isWhitespace(sl) and inPara(blocks, false) then |
exit(false); |
result := true; |
finally |
if not result then |
line.rewind; |
end; |
if isWhitespace(sl) then // nothing after if it's the only thing on the line |
i2 := 1 |
else |
begin |
i2 := countWS(sl); |
if (i2 = 0) then |
exit(false); |
if (i2 >= 5) then |
i2 := 1; |
end; |
if not inList(blocks, true, m, i+i2, 2, list) then |
begin |
list := TCMListBlock.Create(FCurrentLine); |
blocks.add(list); |
list.ordered := true; |
list.baseIndent := i+i2; |
list.lastIndent := list.baseIndent; |
list.marker := m; |
s := after(s, ['0']); |
if s = '' then |
s := '0'; |
list.start := s; |
end |
else |
list.lastIndent := i+i2; |
li := TCMListItemBlock.Create(FCurrentLine); |
list.blocks.Add(li); |
redoLine; |
// now, instead of grabbing the >, we recurse and get the processor to do that |
lp := TCMListProcessor.Create(processor, list, li); |
try |
parse(li, lp); |
finally |
lp.Free; |
end; |
end; |
function TCommonMarkEngine.parseQuoteBlock(blocks: TObjectList<TCMBlock>; line: TCMLine; processor : TCMBlockProcessor): boolean; |
var |
s : String; |
q : TCMQuoteBlock; |
qp : TCMQuoteProcessor; |
begin |
if line.countWS >= 4 then |
exit(false); |
s := line.focus.Trim; |
if not s.StartsWith('>') then |
exit(false); |
q := TCMQuoteBlock.Create(FCurrentLine); |
blocks.add(q); |
result := true; |
redoline; |
// now, instead of grabbing the >, we recurse and get the processor to do that |
qp := TCMQuoteProcessor.Create(processor, q); |
try |
parse(q, qp); |
finally |
qp.Free; |
end; |
q.closed := true; |
end; |
function TCommonMarkEngine.parseSeTextHeader(blocks : TObjectList<TCMBlock>; line: TCMLine; isLazy : boolean; processor : TCMBlockProcessor): boolean; |
var |
p : TCMParagraphBlock; |
s : String; |
begin |
if line.countWS >= 4 then |
exit(false); |
if blocks.Count = 0 then |
exit(false); |
if not inPara(blocks, false) then |
exit(false); |
p := blocks.Last as TCMParagraphBlock; |
if p.closed then |
exit(false); |
if p.header <> 0 then |
exit(false); |
if isLazy and processor.inListOrQuote then |
exit(false); |
s := line.focus.Trim; |
if s = '' then |
exit(false); |
if not allCharsSame(s) then |
exit(false); |
if s[1] = '-' then |
begin |
p.header := 2; |
line.markStyle(line.FLine.Length, cmControlChar); |
exit(true); |
end |
else if s[1] = '=' then |
begin |
p.header := 1; |
line.markStyle(line.FLine.Length, cmControlChar); |
exit(true); |
end |
else |
exit(false); |
end; |
function TCommonMarkEngine.parseCodeBlock(blocks : TObjectList<TCMBlock>; line: TCMLine; processor : TCMBlockProcessor): boolean; |
var |
c : TCMCodeBlock; |
s : String; |
more : boolean; |
isLazy : boolean; |
indent : integer; |
begin |
indent := line.countWS; |
if indent < 4 then |
exit(false); |
indent := 4; |
if line.isWhitespace then |
exit(false); |
if inPara(blocks, true) then |
exit(false); |
result := true; |
c := TCMCodeBlock.Create(FCurrentLine); |
blocks.Add(c); |
line.advance(indent); |
s := line.focus; |
repeat |
c.FBlocks.Add(TCMTextBlock.Create(line.FIndex, s)); |
if done then |
more := false |
else |
begin |
line := peekLine; |
if (line = nil) or processor.processLine(line, true, bpCodeBlock, FGFMExtensions, isLazy) then |
break; |
s := line.focus; |
if lengthWSCorrected(s) <= indent then |
more := isWhitespace(s) |
else |
more := countWS(s) >= indent; |
if more then |
begin |
line := grabLine; |
processor.processLine(line, true, bpCodeBlock, FGFMExtensions, isLazy); |
line.advance(indent); |
s := line.focus; |
end; |
end; |
until not more; |
// remove any whitespace lines at the end: |
while (c.blocks.Count > 0) and isWhitespace((c.blocks.Last as TCMTextBlock).text) do |
c.blocks.Delete(c.blocks.Count - 1); |
end; |
function TCommonMarkEngine.parseFencedCodeBlock(blocks: TObjectList<TCMBlock>; line: TCMLine; processor : TCMBlockProcessor): boolean; |
var |
toEnd : String; |
isLazy : boolean; |
terminated : boolean; |
function isEnded: boolean; |
var |
s : String; |
begin |
line := peekLine; |
if (line = nil) or processor.processLine(line, true, bpFencedCodeBlock, FGFMExtensions, isLazy) then |
begin |
result := true; |
terminated := true; |
end |
else if line.countWS >= 4 then |
result := false |
else |
begin |
s := line.focus.Trim; |
result := allCharsSame(s) and s.StartsWith(toEnd); |
end; |
end; |
var |
c : TCMCodeBlock; |
s, s1, lang : String; |
indent, i, j : integer; |
begin |
if line.countWS >= 4 then |
exit(false); |
s := line.focus.Trim; |
if not (s.StartsWith('`') or s.StartsWith('~')) then |
exit(false); |
s := copyWhile(s, [s[1]]); |
if not (s.StartsWith('```') or s.StartsWith('~~~')) or s.Substring(s.Length).Contains('~') then |
exit(false); |
toEnd := s; |
result := true; |
// now, try to find anything off the end of the fence |
s := line.focus; |
indent := 0; |
while s[indent+1] = ' ' do |
inc(indent); |
s := s.subString(indent); |
s := after(s, [toEnd[1]]).trim; |
i := 1; |
while i <= s.length do |
begin |
if s[i] = '\' then |
delete(s, i, 1) // and omit checking the next character |
else if s[i] = '`' then |
exit(false) |
else if s[i] = '&' then |
begin |
j := i+1; |
while (j <= s.Length) and (s[j] <> ';') do |
inc(j); |
if j <= length(s) then |
begin |
s1 := parseEntityString(copy(s, i, j-i+1)); |
delete(s, i, j-1); |
insert(s1, s, i); |
inc(i, s1.Length-1); |
end; |
end; |
inc(i); |
end; |
if (s <> '') then |
begin |
lang := copyTo(s, [' ']); |
if lang.contains(toEnd[1]) then |
exit(false); |
end; |
line.markStyle(indent, cmText); |
line.markStyle(indent+toEnd.Length, cmControlChar); |
line.markRemainder(cmText); |
c := TCMCodeBlock.Create(FCurrentLine); |
blocks.Add(c); |
c.fenced := true; |
c.lang := lang; |
terminated := false; |
while not done and not terminated and not isEnded do |
begin |
line := grabLine; |
if (line = nil) or processor.processLine(line, true, bpFencedCodeBlock, FGFMExtensions, isLazy) then |
break; |
s := line.focus; |
if indent > 0 then |
begin |
i := 0; |
while (i < s.Length) and (i < indent) and (s[i+1] = ' ') do |
inc(i); |
if i > 0 then |
s := s.Substring(i); |
line.advance(i); |
end; |
c.FBlocks.Add(TCMTextBlock.Create(FCurrentLine, s)); |
end; |
if not done and not terminated then |
grabLine.markRemainder(cmControlChar); |
end; |
procedure TCommonMarkEngine.parse(block: TCMContainerBlock; processor : TCMBlockProcessor); |
var |
line : TCMLine; |
p : TCMParagraphBlock; |
isLazy : boolean; |
begin |
while not done do |
begin |
line := grabLine; |
if processor.processLine(line, true, bpGeneral, FGFMExtensions, isLazy) then |
begin |
// ok, we're done with this set of blocks, we'll try the line again one further up |
debug('redo: "'+line.focus+'"'); |
redoLine; |
exit; |
end |
else |
debug('Line: "'+line.focus+'"'); |
if parseSeTextHeader(block.blocks, line, isLazy, processor) then |
else if parseThematicBreak(block.blocks, line) then |
else if parseHeader(block.blocks, line) then |
else if parseQuoteBlock(block.blocks, line, processor) then |
else if parseUListBlock(block.blocks, line, processor) then |
else if parseOListBlock(block.blocks, line, processor) then |
else if parseCodeBlock(block.blocks, line, processor) then |
else if parseFencedCodeBlock(block.blocks, line, processor) then |
else if FGFMExtensions and parseTableBlock(block.blocks, line, processor) then |
else |
begin |
if inPara(block.blocks, true) then |
p := block.Blocks.Last as TCMParagraphBlock |
else |
p := nil; |
if line.isEmpty or line.isWhitespace then |
begin |
line.markRemainder(cmText); |
if (p <> nil) then |
p.closed := true; |
end |
else |
begin |
if (p = nil) then |
begin |
p := TCMParagraphBlock.Create(FCurrentLine); |
block.blocks.Add(p); |
end; |
parseInLine(p.blocks, line.focus); |
end; |
end; |
end; |
end; |
procedure TCommonMarkEngine.parseLines(src: String); |
var |
i, j : integer; |
begin |
FLines.Clear; |
i := 1; |
while (i <= src.Length) do |
begin |
j := i; |
while (i <= src.Length) and (src[i] <> #10) do |
inc(i); |
FLines.Add(TCMLine.Create(FStyling, copy(src, j, i - j), FLines.Count)); |
inc(i); |
end; |
FCurrentLine := -1; |
end; |
procedure TCommonMarkEngine.parseLinkReferences; |
begin |
// not doing this for the moment? |
end; |
procedure TCommonMarkEngine.parseAutoLink(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode: TCMWhitespaceMode); |
function isAbsoluteUri(s : String) : boolean; |
var |
scheme, tail : String; |
i : integer; |
begin |
if not s.Contains(':') then |
exit(false); |
scheme := s.Substring(0, s.IndexOf(':')); |
if (scheme.Length < 2) or (scheme.length > 32) then |
exit(false); |
if not CharInSet(scheme[1], ['a'..'z', 'A'..'Z']) then |
exit(false); |
for i := 2 to scheme.Length do |
if not CharInSet(scheme[i], ['a'..'z', 'A'..'Z', '0'..'9', '+', '.', '-']) then |
exit(false); |
tail := s.Substring(s.IndexOf(':')+1); |
for i := 1 to tail.Length do |
if CharInSet(tail[i], [' ', #9, #10, '<']) then |
exit(false); |
result := true; |
end; |
var |
s : String; |
a : TCMTextNode; |
ok : boolean; |
begin |
lexer.mark; |
lexer.grab(cmControlChar); |
s := lexer.peekUntil(['>']); |
if (wsMode <> wsLeave) then |
begin |
ok := true; |
if isAbsoluteURI(s) then |
begin |
a := nodes.addOpener(lexer.location, 'a'); |
a.attrs.Add('href', urlEscape(s)); |
nodes.addText(lexer.location, htmlEscape(s)); |
nodes.addCloser(lexer.location, 'a'); |
lexer.grab(cmURL, s.Length); |
lexer.grab(cmControlChar); |
end else if TRegEx.IsMatch(s, EMAIL_REGEX) then |
begin |
a := nodes.addOpener(lexer.location, 'a'); |
a.attrs.Add('href', 'mailto:'+urlEscape(s)); |
nodes.addText(lexer.location, htmlEscape(s)); |
nodes.addCloser(lexer.location, 'a'); |
lexer.grab(cmURL, s.Length); |
lexer.grab(cmControlChar); |
end |
else |
ok := false; |
end |
else |
ok := false; |
if not ok then |
begin |
lexer.rewind; |
nodes.addText(lexer.location, '<'); |
lexer.grab(cmText); |
end; |
end; |
procedure TCommonMarkEngine.parseDelimiter(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode: TCMWhitespaceMode; canRun : boolean); |
function isWSForFLanking(c : char) : boolean; |
begin |
result := CharInSet(c,[#0, #10]) or IsWhiteSpace(c); |
end; |
function isPuncForFLanking(c : char) : boolean; |
begin |
result := CharInSet(c, ['!', '"', '#', '$', '%', '&', '''', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\', ']', '^', '_', '`', '{', '|', '}', '~']) |
or isUnicodePunctuation(c); |
end; |
function isLeftFlanking(cb, ca : char) : boolean; |
var |
fws, fp, pws, pp : boolean; |
begin |
fws := isWSForFLanking(ca); |
fp := isPuncForFLanking(ca); |
pws := isWSForFLanking(cb); |
pp := isPuncForFLanking(cb); |
// (a) not followed by Unicode whitespace, and (b) not followed by a punctuation character, or preceded by Unicode whitespace or a punctuation character. |
if fws then |
exit(false) |
else |
result := not (fp) or pws or pp; |
end; |
function isRightFlanking(cb, ca : char) : boolean; |
var |
fws, fp, pws, pp : boolean; |
begin |
fws := isWSForFLanking(ca); |
fp := isPuncForFLanking(ca); |
pws := isWSForFLanking(cb); |
pp := isPuncForFLanking(cb); |
if pws then |
exit(false) |
else |
result := not (pp) or fws or fp; |
end; |
var |
s : String; |
cb, ca : char; |
bb, ba : boolean; |
m : TCMDelimiterMode; |
n : TCMTextNode; |
p : TLocation; |
begin |
if canRun then |
s := lexer.peekRun(false) |
else if lexer.peek = '!' then |
s := lexer.peekLen(2) |
else |
s := lexer.peek; |
cb := lexer.peekLast; |
p := lexer.location; |
lexer.grab(cmUnknown, s.Length); // have to sort out the style later |
ca := lexer.peek; |
bb := isLeftFlanking(cb, ca); |
ba := isRightFLanking(cb, ca); |
if bb then |
begin |
if ba then |
m := dmBoth |
else |
m := dmOpener |
end |
else if ba then |
m := dmCloser |
else |
m := dmNeither; |
n := nodes.addTextNode(p, s); |
FStack.Add(TCMDelimiter.Create(n, s, m)); |
end; |
procedure TCommonMarkEngine.parseTilde(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode: TCMWhitespaceMode); |
var |
s : String; |
ws, first : boolean; |
ch : char; |
begin |
s := lexer.peekRun(false); |
if FGFMExtensions and (length(s) = 2) and lexer.runExistsAfterBeforeChar(s, #10) then |
begin |
nodes.addOpener(lexer.location, 'del'); |
lexer.grab(cmControlChar, s.Length); |
ws := false; |
first := true; |
while lexer.peekRun(true) <> s do |
begin |
ch := lexer.peek; |
if CharInSet(ch, [' ', #10]) then |
begin |
ws := true; |
lexer.grab(cmDel); |
end |
else |
begin |
if ws and not first then |
nodes.addText(lexer.location, ' '); |
first := false; |
ws := false; |
nodes.addText(lexer.location, htmlEscape(lexer.grab(cmDel))); |
end; |
end; |
nodes.addCloser(lexer.location, 'del'); |
lexer.grab(cmControlChar, s.Length); |
end |
else |
nodes.addText(lexer.location, lexer.grab(cmText, s.Length)); |
end; |
procedure TCommonMarkEngine.parseBackTick(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode: TCMWhitespaceMode); |
var |
s : String; |
ws, first : boolean; |
ch : char; |
begin |
s := lexer.peekRun(false); |
if lexer.runExistsAfter(s) then |
begin |
nodes.addOpener(lexer.location, 'code'); |
lexer.grab(cmControlChar, s.Length); |
ws := false; |
first := true; |
while lexer.peekRun(true) <> s do |
begin |
ch := lexer.peek; |
if CharInSet(ch, [' ', #10]) then |
begin |
ws := true; |
lexer.grab(cmText); |
end |
else |
begin |
if ws and not first then |
nodes.addText(lexer.location, ' '); |
first := false; |
ws := false; |
nodes.addText(lexer.location, htmlEscape(lexer.grab(cmCode))); |
end; |
end; |
nodes.addCloser(lexer.location, 'code'); |
lexer.grab(cmControlChar, s.Length); |
end |
else |
nodes.addText(lexer.location, lexer.grab(cmText, s.Length)); |
end; |
procedure TCommonMarkEngine.parseTextEscape(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode: TCMWhitespaceMode); |
begin |
lexer.mark; |
lexer.grab(cmControlChar); |
if isEscapable(lexer.peek) then |
nodes.addText(lexer.location, htmlEscape(lexer.grab(cmEntity))) |
else if lexer.peek = #10 then |
nodes.addText(lexer.location, '<br />') |
else |
begin |
lexer.rewind; |
nodes.addText(lexer.location, lexer.grab(cmText)); |
end; |
end; |
function TCommonMarkEngine.processInlineLink(lexer: TCMTextLexer; nodes: TCMTextNodes; del : TCMDelimiter): boolean; |
var |
lvl : integer; |
url : String; |
marker : char; |
title : String; |
b : TStringBuilder; |
d : TCMDelimiter; |
line : TCMLine; |
begin |
result := false; |
b := TStringBuilder.Create; |
lexer.mark; |
try |
lexer.grab(cmDelimiter); |
if lexer.peek <> '(' then |
exit(false); |
lexer.grab(cmControlChar); // ( |
lexer.skipWS; |
if lexer.peek = '<' then |
begin |
lexer.grab(cmControlChar); |
while not lexer.done and (lexer.peek <> '>') do |
begin |
if (lexer.peek = '\') and isEscapable(lexer.peekNext) then |
begin |
lexer.grab(cmControlChar); |
if lexer.done then |
exit; |
b.Append(lexer.grab(cmURL)); |
end |
else if isWhitespaceChar(lexer.peek) then |
begin |
if GFMExtensions and (lexer.peek = ' ') then |
begin |
b.Append('%20'); |
lexer.grab(cmURL); |
end |
else |
exit |
end |
else if lexer.peek = '&' then |
b.Append(parseEntityInner(lexer)) |
else |
b.Append(lexer.grab(cmUrl)); |
end; |
if lexer.done then |
exit; |
lexer.grab(cmControlChar); |
end |
else |
begin |
lvl := 0; |
while not lexer.done and not ((lexer.peek = ')') and (lvl = 0)) and not isWhitespace(lexer.peek) do |
begin |
if (lexer.peek = '\') and isEscapable(lexer.peekNext) then |
begin |
lexer.grab(cmControlChar); |
if lexer.done then |
exit; |
b.Append(lexer.grab(cmURL)); |
end |
else if isWhitespaceChar(lexer.peek) then |
exit |
else if lexer.peek = '&' then |
b.Append(parseEntityInner(lexer)) |
else |
begin |
if lexer.peek = '(' then |
inc(lvl) |
else if lexer.peek = ')' then |
dec(lvl); |
b.Append(lexer.grab(cmUrl)); |
end; |
end; |
if lexer.done then |
exit; |
end; |
url := urlEscape(b.ToString, true); |
title := ''; |
if lexer.peek <> ')' then |
begin |
b.clear; |
lexer.skipWS; |
marker := lexer.grab(cmControlChar); |
if not CharInSet(marker, ['"', '''', '(']) then |
exit; |
if marker = '(' then |
marker := ')'; |
while not lexer.done and (lexer.peek <> marker) do |
begin |
if (lexer.peek = '\') then |
begin |
lexer.grab(cmControlChar); |
if lexer.done then |
exit; |
b.Append(htmlEscape(lexer.grab(cmEntity))); |
end |
else if lexer.peek = '&' then |
b.Append(htmlEscape(parseEntityInner(lexer))) |
else if lexer.peek = #10 then |
b.Append(' ') |
else if lexer.peek = '"' then |
b.Append(htmlEscape(lexer.grab(cmControlChar))) |
else |
b.Append(lexer.grab(cmText)); |
end; |
if lexer.done then |
exit; |
lexer.grab(cmControlChar); |
title := b.toString; |
end; |
lexer.skipWS; |
if lexer.peek <> ')' then |
exit; |
lexer.grab(cmControlChar); |
line := FLines[del.FNode.FPos.line]; |
line.updateStyle(del.FNode.FPos.col-1, length(del.FNode.FContent), cmDelimiter); |
if del.delimiter = '![' then |
begin |
del.Node.name := 'img'; |
del.Node.attrs.Add('src', urlEscape(url)); |
del.node.opener := true; |
del.node.closer := true; |
if title <> '' then |
del.node.attrs.Add('title', title); |
del.Node.attrs.Add('alt', nodes.plainTextSince(del.node)); |
nodes.removeAfter(del.node); |
end |
else |
begin |
del.Node.name := 'a'; // clears the text |
del.Node.opener := true; |
del.Node.attrs.Add('href', urlEscape(url)); |
if title <> '' then |
del.node.attrs.Add('title', title); |
nodes.addCloser(lexer.location, 'a'); |
for d in FStack do |
if d = del then |
break |
else if d.delimiter = '[' then |
d.active := false; |
end; |
processEmphasis(nodes, del); |
FStack.remove(del); |
result := true; |
finally |
if not result then |
lexer.rewind; |
b.free; |
end; |
end; |
procedure TCommonMarkEngine.parseCloseDelimiter(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode: TCMWhitespaceMode); |
var |
i : integer; |
d : TCMDelimiter; |
line : TCMLine; |
begin |
d := nil; |
for i := FStack.Count - 1 downto 0 do |
if (FStack[i].delimiter = '[') or (FStack[i].delimiter = '![') then |
begin |
d := FStack[i]; |
break; |
end; |
if d = nil then |
begin |
nodes.addText(lexer.location, lexer.grab(cmText)); |
exit; |
end; |
if not d.active then |
begin |
line := FLines[d.FNode.FPos.line]; |
line.updateStyle(d.FNode.FPos.col-1, length(d.FNode.FContent), cmText); |
FStack.Remove(d); |
nodes.addText(lexer.location, lexer.grab(cmText)); |
exit; |
end; |
// now, look ahead, do we have |
// - inline link/image [text](link title) |
// - reference link/image [text][ref] |
// - compact reference link/image [label][] |
// - shortcut reference link/image [label] |
if not processInlineLink(lexer, nodes, d) then |
begin |
line := FLines[d.FNode.FPos.line]; |
line.updateStyle(d.FNode.FPos.col-1, length(d.FNode.FContent), cmText); |
FStack.Remove(d); |
nodes.addText(lexer.location, lexer.grab(cmText)); |
exit; |
end; |
end; |
function TCommonMarkEngine.parseEntityString(entity : String): String; |
var |
s, c : String; |
ch : char; |
i : integer; |
begin |
s := copy(entity, 2, length(entity)-2); |
if FEntities.TryGetValue(entity, c) then |
begin |
exit(c); |
end |
else if (s <> '') and s.StartsWith('#') and (s.Length <= 9) and (StrToIntDef(s.Substring(1), -1) <> -1) then |
begin |
i := StrToInt(s.Substring(1)); |
if i > 65535 then |
ch := #$FFFD |
else |
begin |
ch := char(i); |
if (i = 0) {$IFNDEF FPC}or (ch.GetUnicodeCategory = TUnicodeCategory.ucUnassigned) {$ENDIF} then |
ch := #$FFFD; |
end; |
exit(ch); |
end |
else |
exit(''); |
end; |
function checkForEntity(s : String) : integer; |
var |
c : char; |
begin |
if s.Contains('&') then |
begin |
s := s.Substring(s.lastIndexOf('&')+1); |
s := s.subString(0, s.Length-1); |
for c in s do |
if not CharInSet(c, ['a'..'z', 'A'..'Z', '0'..'9']) then |
exit(0); |
exit(s.Length+2); |
end |
else |
result := 0; |
end; |
procedure TCommonMarkEngine.parseExtendedAutoLinkEmail(lexer: TCMTextLexer; nodes: TCMTextNodes; len : integer); |
var |
s : String; |
a : TCMTextNode; |
begin |
s := lexer.grab(cmUrl, len); |
a := nodes.addOpener(lexer.location, 'a'); |
a.attrs.Add('href', 'mailto:'+urlEscape(s)); |
nodes.addText(lexer.location, htmlEscape(s)); |
nodes.addCloser(lexer.location, 'a'); |
end; |
procedure TCommonMarkEngine.parseExtendedAutoLinkWeb(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode: TCMWhitespaceMode; start, linkStart : String); |
var |
ok : boolean; |
tail : Integer; |
s : string; |
a : TCMTextNode; |
begin |
lexer.mark; |
ok := false; |
try |
lexer.grab(cmURL, start.Length); |
s := ''; |
while CharInSet(lexer.peek, ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) do |
s := s + lexer.grab(cmUrl); |
if not s.Contains('.') then |
exit; |
ok := true; |
while not lexer.done and not CharInSet(lexer.peek, [' ', #10, '<']) do |
s := s + lexer.grab(cmUrl); |
// is that last char part of the link? |
case s[s.Length] of |
'?', '!', '.', ',', ':', '*', '_', '~': tail := 1; |
')': if s.CountChar('(') < s.CountChar(')') then tail := 1 else tail := 0; |
';': tail := checkForEntity(s); |
else |
tail := 0; |
end; |
if tail = 0 then |
begin |
a := nodes.addOpener(lexer.location, 'a'); |
a.attrs.Add('href', linkStart+start+urlEscape(s)); |
nodes.addText(lexer.location, start+htmlEscape(s)); |
nodes.addCloser(lexer.location, 'a'); |
end |
else |
begin |
a := nodes.addOpener(lexer.location, 'a'); |
a.attrs.Add('href', linkStart+start+urlEscape(s.Substring(0, s.Length-tail))); |
nodes.addText(lexer.location, start+htmlEscape(s.Substring(0, s.Length-tail))); |
nodes.addCloser(lexer.location, 'a'); |
nodes.addText(lexer.location, htmlEscape(s.Substring(s.length-tail))); |
end; |
finally |
if not ok then |
begin |
lexer.rewind; |
nodes.addText(lexer.location, lexer.grab(cmText)); |
end; |
end; |
end; |
procedure TCommonMarkEngine.parseEntity(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode: TCMWhitespaceMode); |
begin |
if wsMode = wsLeave then // code block |
begin |
nodes.addText(lexer.location, '&'); |
lexer.grab(cmEntity); |
end |
else |
nodes.addText(lexer.location, htmlEscape(parseEntityInner(lexer))); |
end; |
function TCommonMarkEngine.parseEntityInner(lexer: TCMTextLexer): String; |
var |
s, c : String; |
ch : UnicodeChar; |
i : integer; |
begin |
lexer.grab(cmEntity); |
s := lexer.peekUntil([';']); |
if FEntities.TryGetValue('&'+s+';', c) then |
begin |
lexer.grab(cmEntity, s.Length+1); |
exit(c); |
end |
else if (s <> '') and s.StartsWith('#') and (s.Length <= 9) and (StrToIntDef(s.Substring(1), -1) <> -1) then |
begin |
i := StrToInt(s.Substring(1)); |
if (i = 0) or (i > 65535) then |
ch := #$FFFD |
else |
begin |
ch := UnicodeChar(i); |
{$IFNDEF FPC} |
if (ch.GetUnicodeCategory = TUnicodeCategory.ucUnassigned) then |
ch := #$FFFD; |
{$ENDIF} |
end; |
lexer.grab(cmEntity, s.Length+1); |
exit(ch); |
end |
else |
exit('&'); |
end; |
function TCommonMarkEngine.hasEmailAddress(lexer: TCMTextLexer; var len : integer) : boolean; |
var |
s : String; |
state : integer; |
c : char; |
begin |
s := lexer.peekWhile(['a'..'z', 'A'..'Z', '0'..'9', '+', '-', '_', '@', '.']); |
if s.CountChar('@') <> 1 then |
exit(false); |
if CharInSet(s[s.Length], ['_', '-']) then |
exit(false); |
if s[s.Length] = '.' then |
s := s.Substring(0, s.Length-1); |
len := s.Length; |
state := 0; |
for c in s do |
if state = 0 then |
begin |
if c = '@' then exit(false) else state := 1; |
end |
else if state = 1 then |
begin |
if c = '@' then state := 2 |
end |
else |
begin |
if c = '.' then |
state := 3 |
else if c = '+' then |
exit(false); |
end; |
exit(state = 3); |
end; |
procedure TCommonMarkEngine.parseTextCore(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode: TCMWhitespaceMode); |
var |
len : integer; |
begin |
if wsMode = wsLeave then // code block |
nodes.addText(lexer.location, htmlEscape(lexer.grab(cmCode))) |
else |
case lexer.peek of |
'\' : parseTextEscape(lexer, nodes, wsMode); |
'<' : parseAutoLink(lexer, nodes, wsMode); |
'>', '"' : nodes.addText(lexer.location, htmlEscape(lexer.grab(cmText))); |
'&' : parseEntity(lexer, nodes, wsMode); |
'`' : parseBackTick(lexer, nodes, wsMode); |
'~' : parseTilde(lexer, nodes, wsMode); |
'*' : parseDelimiter(lexer, nodes, wsMode, true); |
'_' : if isWhitespaceChar(lexer.peekLast) or isEscapable(lexer.peekLast) or (lexer.peekLast = #0) or |
isWhitespaceChar(lexer.peekEndRun) or isEscapable(lexer.peekEndRun) or (lexer.peekEndRun = #0) then |
parseDelimiter(lexer, nodes, wsMode, true) |
else |
nodes.addText(lexer.location, htmlEscape(lexer.grabRun(cmText))); |
'[' : parseDelimiter(lexer, nodes, wsMode, false); |
'!' : if lexer.peekNext = '[' then |
parseDelimiter(lexer, nodes, wsMode, false) |
else |
nodes.addText(lexer.location, lexer.grab(cmText)); |
']' : parseCloseDelimiter(lexer, nodes, wsMode); |
else |
if GFMExtensions and lexer.has('www.') then |
parseExtendedAutoLinkWeb(lexer, nodes, wsMode, 'www.', 'http://') |
else if GFMExtensions and lexer.has('http://') then |
parseExtendedAutoLinkWeb(lexer, nodes, wsMode, 'http://', '') |
else if GFMExtensions and lexer.has('https://') then |
parseExtendedAutoLinkWeb(lexer, nodes, wsMode, 'https://', '') |
else if GFMExtensions and lexer.has('ftp://') then |
parseExtendedAutoLinkWeb(lexer, nodes, wsMode, 'ftp://', '') |
else if GFMExtensions and hasEmailAddress(lexer, len) then |
parseExtendedAutoLinkEmail(lexer, nodes, len) |
else |
nodes.addText(lexer.location, lexer.grab(cmText)); |
end; |
end; |
function TCommonMarkEngine.parseTableBlock(blocks: TObjectList<TCMBlock>; line: TCMLine; processor: TCMBlockProcessor): boolean; |
function cellCount(line : TCMLine) : Integer; |
var |
c : char; |
esc : boolean; |
begin |
result := 0; |
esc := false; |
for c in line.FLine do |
begin |
if not esc and (c = '|') then |
inc(result) |
else if esc then |
esc := false |
else if c = '\' then |
esc := true; |
end; |
if result > 0 then |
begin |
if not line.FLine.Trim.StartsWith('|') then |
inc(result); |
if not line.FLine.Trim.EndsWith('|') or line.FLine.Trim.EndsWith('\|') then |
inc(result); |
end; |
end; |
var |
c1, c2, i : integer; |
s : String; |
nl : TCMLine; |
c : char; |
t : TCMTableBlock; |
a : TArray<String>; |
begin |
if line.isEmpty then |
exit(false); |
c1 := cellCount(line); |
if c1 = 0 then |
exit(false); |
nl := peekLine; |
if (nl = nil) then |
exit(false); |
for c in nl.FLine.Trim do |
if not CharInSet(c, [' ', '|', '-', ':']) then |
exit(false); |
c2 := cellCount(nl); |
if c1 <> c2 then |
exit(false); |
// ok, we have a table..... |
result := true; |
t := TCMTableBlock.Create(FCurrentLine); |
blocks.Add(t); |
parseTableLine(t, line); |
grabLine; // nl |
nl.markRemainder(cmTableMarker); |
s := nl.FLine.Trim; |
if s.StartsWith('|') then |
s := s.Substring(1); |
if s.EndsWith('|') then |
s := s.Substring(0, s.Length-1); |
a := s.Split(['|']); |
SetLength(t.FColumns, length(a)); |
for i := 0 to length(a) - 1 do |
begin |
s := a[i].Trim; |
if s.StartsWith(':') and s.EndsWith(':') then |
t.FColumns[i] := taCenter |
else if s.EndsWith(':') then |
t.FColumns[i] := taRight |
else |
t.FColumns[i] := taLeft; |
end; |
while not isEndOfTable(peekLine) do |
parseTableLine(t, grabLine); |
end; |
procedure TCommonMarkEngine.parseTableLine(t: TCMTableBlock; line: TCMLine); |
var |
l, i : integer; |
esc : boolean; |
r : TCMTableRowBlock; |
procedure addCell(b, e : integer); |
var |
s : String; |
begin |
s := copy(line.FLine, b, e-b); |
s := s.Trim.replace('\|', '|'); |
r.blocks.Add(TCMTextBlock.Create(line.FIndex, s)); |
end; |
begin |
r := TCMTableRowBlock.Create(line.FIndex); |
t.blocks.Add(r); |
line.markRemainder(cmText); |
i := 1; |
l := 1; |
esc := false; |
while i <= line.FLine.Length do |
begin |
if (i = 1) and (line.fLine[i] = '|') then |
begin |
line.updateStyle(l, i+1, cmTableMarker); |
l := i+1; |
end |
else if esc then |
esc := false |
else if line.FLine[i] = '\' then |
esc := true |
else if line.FLine[i] = '|' then |
begin |
addCell(l, i); |
line.updateStyle(l, i+1, cmTableMarker); |
l := i+1; |
end; |
inc(i); |
end; |
if (l < i) then |
addCell(l, i); |
end; |
procedure TCommonMarkEngine.parseText(lexer: TCMTextLexer; nodes: TCMTextNodes; wsMode : TCMWhitespaceMode); |
var |
seenNonWhitespace : boolean; |
whiteSpace : string; |
c : String; |
begin |
whiteSpace := ''; |
seenNonWhitespace := false; |
while not lexer.done do |
begin |
if (wsMode <> wsLeave) and isWhitespace(lexer.peek) and ((lexer.peek <> #10) or (wsMode = wsStrip)) then |
begin |
c := lexer.grab(cmText); |
if seenNonWhitespace then |
begin |
whitespace := whitespace + c; |
end; |
end |
else |
begin |
if (wsMode <> wsLeave) then |
begin |
if lexer.peek = #10 then |
begin |
seenNonWhitespace := false; |
if whitespace.EndsWith(' ') then |
nodes.addText(lexer.location, '<br />'); |
whitespace := ''; |
end |
else |
begin |
if whiteSpace <> '' then |
begin |
if wsMode = wsStrip then |
nodes.addText(lexer.location, ' ') |
else |
nodes.addText(lexer.location, whitespace); |
whiteSpace := ''; |
end; |
seenNonWhitespace := true; |
end; |
end; |
parseTextCore(lexer, nodes, wsMode); |
end; |
end; |
end; |
function TCommonMarkEngine.processText(text: String; wsMode : TCMWhitespaceMode; startLine : integer): TCMTextNodes; |
var |
lexer : TCMTextLexer; |
begin |
result := TCMTextNodes.Create; |
lexer := TCMTextLexer.Create(text, FLines, startLine, FStyling); |
try |
parseText(lexer, result, wsMode); |
finally |
lexer.Free; |
end; |
processEmphasis(result, nil); |
Assert(FStack.count = 0); |
end; |
procedure TCommonMarkEngine.processInlines(block: TCMBlock; wsMode : TCMWhitespaceMode); |
var |
c : TCMBlock; |
begin |
if block is TCMTextBlock then |
begin |
(block as TCMTextBlock).FNodes := processText((block as TCMTextBlock).FText, wsMode, block.line); |
end; |
if block is TCMContainerBlock then |
for c in (block as TCMContainerBlock).blocks do |
processInlines(c, block.wsMode); |
end; |
class function TCommonMarkEngine.process(src: String; gfm : boolean): String; |
var |
doc : TCommonMarkDocument; |
begin |
doc := parse(src, gfm); |
try |
result := render(doc); |
finally |
doc.Free; |
end; |
end; |
procedure TCommonMarkEngine.processEmphasis(nodes : TCMTextNodes; stopDel: TCMDelimiter); |
var |
current, index, bottom, bottomU, bottomA, bottomW, count, iO, iC, i : integer; |
strong : boolean; |
n : String; |
o, c : TCMDelimiter; |
ol, cl, line : TCMLine; |
function IsMatch(i, c : TCMDelimiter) : boolean; |
begin |
result := (i.delimiter[1] = c.delimiter[1]) and i.isOpener; |
if result and ((i.mode = dmBoth) or (c.mode = dmBoth)) then |
result := (i.delimiter.length + c.delimiter.length) mod 3 <> 0; |
end; |
begin |
if stopDel = nil then |
bottom := 0 |
else |
bottom := FStack.IndexOf(stopDel) + 1; |
bottomU := bottom; |
bottomA := bottom; |
current := bottom; |
while current < FStack.count do |
begin |
while (current < FStack.Count) and FStack[current].isEmph and not FStack[current].isCloser do |
inc(current); |
if current = FStack.count then |
break; // we're done. |
if FStack[current].delimiter = '*' then |
bottomW := bottomA |
else |
bottomW := bottomU; |
index := current - 1; |
while (index >= bottomW) and (index >= bottom) and not isMatch(FStack[index], FStack[current]) do |
dec(index); |
if (index >= 0) and (FStack[index].delimiter[1] = FStack[current].delimiter[1]) and (FStack[index].mode in [dmOpener, dmBoth]) then |
begin |
// we have a match |
o := FStack[index]; |
c := FStack[current]; |
ol := FLines[o.FNode.FPos.line]; |
cl := FLines[c.FNode.FPos.line]; |
strong := (c.delimiter.Length > 1) and (o.delimiter.Length > 1); |
if strong then n := 'strong' else n := 'em'; |
if strong then count := 2 else count := 1; |
nodes.addOpenerAfter(n, o.node); |
nodes.addCloserBefore(n, c.node); |
ol.updateStyle(o.FNode.FPos.col-1+(o.FNode.FContent.Length - count), count, cmDelimiter); |
o.node.removeChars(count); |
cl.updateStyle(c.FNode.FPos.col-1, count, cmDelimiter); |
c.FNode.FPos.col := c.FNode.FPos.col + count; |
c.node.removeChars(count); |
o.delimiter := o.delimiter.Substring(count); |
c.delimiter := c.delimiter.Substring(count); |
iO := FStack.IndexOf(o); |
iC := FStack.IndexOf(c); |
if iC > iO + 1 then |
begin |
for i := iO+1 to iC-iO do |
begin |
line := FLines[FStack[i].FNode.FPos.line]; |
line.updateStyle(FStack[i].FNode.FPos.col-1, length(FStack[i].FNode.FContent), cmText); |
end; |
FStack.DeleteRange(iO+1, iC-iO-1); |
dec(current, iC-iO-1); |
end; |
if o.node.isEmpty then |
begin |
nodes.Remove(o.node); |
FStack.Remove(o); |
dec(current); |
end; |
if c.node.isEmpty then |
begin |
nodes.Remove(c.node); |
FStack.Remove(c); |
end; |
end |
else |
begin |
// No match is found |
if FStack[current].delimiter = '*' then |
bottomA := index + 1 |
else |
bottomU := index + 1; |
if FStack[current].mode = dmBoth then |
inc(current) |
else |
begin |
cl := FLines[FStack[current].FNode.FPos.line]; |
cl.updateStyle(FStack[current].FNode.FPos.col-1, FStack[current].node.FContent.Length, cmText); |
FStack.Delete(current); |
end; |
end; |
end; |
for index := FStack.Count - 1 downto bottom do |
begin |
line := FLines[FStack[index].FNode.FPos.line]; |
line.updateStyle(FStack[index].FNode.FPos.col-1, length(FStack[index].FNode.FContent), cmText); |
FStack.Delete(index); |
end; |
end; |
{ TCommonMarkProcessor } |
function TCommonMarkProcessor.GetAllowUnSafe: boolean; |
begin |
result := false; |
end; |
function TCommonMarkProcessor.process(source: String): String; |
var |
doc : TCommonMarkDocument; |
begin |
doc := TCommonMarkEngine.parse(source, true); |
try |
result := TCommonMarkEngine.render(doc); |
finally |
doc.Free; |
end; |
end; |
procedure TCommonMarkProcessor.SetAllowUnSafe(const value: boolean); |
begin |
if value then |
raise EMarkdownProcessor.Create('The common mark processor cannot operate in unsafe mode+'); |
end; |
{ TCMTableBlock } |
procedure TCMTableBlock.render(parent: TCMBlock; b: TStringBuilder); |
var |
i : integer; |
begin |
b.Append('<table>'#10); |
b.Append('<thead>'#10); |
blocks[0].render(self, b); |
b.Append('</thead>'#10); |
if blocks.Count > 1 then |
begin |
b.Append('<tbody>'#10); |
for i := 1 to blocks.Count -1 do |
blocks[i].render(self, b); |
b.Append('</tbody>'#10); |
end; |
b.Append('</table>'#10); |
end; |
{ TCMTableRowBlock } |
procedure TCMTableRowBlock.render(parent: TCMBlock; b: TStringBuilder); |
var |
first : boolean; |
i : integer; |
attr : String; |
begin |
first := (parent as TCMContainerBlock).blocks.First = self; |
b.Append('<tr>'#10); |
for i := 0 to length((parent as TCMTableBlock).FColumns) - 1 do |
begin |
case (parent as TCMTableBlock).FColumns[i] of |
taLeft : attr := ''; |
taCenter : attr := ' align="center"'; |
taRight : attr := ' align="right"'; |
end; |
if first then |
b.Append('<th'+attr+'>') |
else |
b.Append('<td'+attr+'>'); |
if i < blocks.Count then |
blocks[i].render(self, b); |
if first then |
b.Append('</th>'#10) |
else |
b.Append('</td>'#10) |
end; |
b.Append('</tr>'#10); |
end; |
end. |
/VCL_MARKDOWN/MarkdownDaringFireball.pas |
---|
0,0 → 1,3392 |
Unit MarkdownDaringFireball; |
{ |
This code was translated from TxtMark (https://github.com/rjeschke/txtmark) |
Copyright (C) 2011-2015 René Jeschke <rene_jeschke@yahoo.de> |
Copyright (C) 2015+ Grahame Grieve <grahameg@gmail.com> (pascal port) |
Licensed under the Apache License, Version 2.0 (the "License"); |
you may not use this file except in compliance with the License. |
You may obtain a copy of the License at |
http://www.apache.org/licenses/LICENSE-2.0 |
Unless required by applicable law or agreed to in writing, software |
distributed under the License is distributed on an "AS IS" BASIS, |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
See the License for the specific language governing permissions and |
limitations under the License. |
} |
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF} |
interface |
uses |
SysUtils, StrUtils, Classes, Character, TypInfo, Math, |
MarkdownProcessor; |
type |
THTMLElement = (heNONE, hea, heabbr, heacronym, headdress, heapplet, hearea, heb, hebase, hebasefont, hebdo, hebig, heblockquote, hebody, hebr, hebutton, hecaption, hecite, |
hecode, hecol, hecolgroup, hedd, hedel, hedfn, hediv, hedl, hedt, heem, hefieldset, hefont, heform, heframe, heframeset, heh1, heh2, heh3, heh4, heh5, heh6, hehead, hehr, |
hehtml, hei, heiframe, heimg, heinput, heins, hekbd, helabel, helegend, heli, helink, hemap, hemeta, henoscript, heobject, heol, heoptgroup, heoption, hep, heparam, hepre, heq, |
hes, hesamp, hescript, heselect, hesmall, hespan, hestrike, hestrong, hestyle, hesub, hesup, hetable, hetbody, hetd, hetextarea, hetfoot, heth, hethead, hetitle, hetr, hett, |
heu, heul, hevar); |
const |
// pstfix |
ENTITY_NAMES: array[0..249] of String = ('Â', 'â', '´', 'Æ', 'æ', 'À', 'à', 'ℵ', 'Α', 'α', '&', '∧', '∠', |
''', 'Å', 'å', '≈', 'Ã', 'ã', 'Ä', 'ä', '„', 'Β', 'β', '¦', '•', '∩', 'Ç', 'ç', |
'¸', '¢', 'Χ', 'χ', 'ˆ', '♣', '≅', '©', '↵', '∪', '¤', '‡', '†', '⇓', '↓', '°', 'Δ', |
'δ', '♦', '÷', 'É', 'é', 'Ê', 'ê', 'È', 'è', '∅', ' ', ' ', 'Ε', 'ε', '≡', |
'Η', 'η', 'Ð', 'ð', 'Ë', 'ë', '€', '∃', 'ƒ', '∀', '½', '¼', '¾', '⁄', 'Γ', 'γ', '≥', |
'>', '⇔', '↔', '♥', '…', 'Í', 'í', 'Î', 'î', '¡', 'Ì', 'ì', 'ℑ', '∞', '∫', 'Ι', |
'ι', '¿', '∈', 'Ï', 'ï', 'Κ', 'κ', 'Λ', 'λ', '⟨', '«', '⇐', '←', '⌈', '“', '≤', |
'⌊', '∗', '◊', '‎', '‹', '‘', '<', '¯', '—', 'µ', '·', '−', 'Μ', 'μ', '∇', ' ', '–', |
'≠', '∋', '¬', '∉', '⊄', 'Ñ', 'ñ', 'Ν', 'ν', 'Ó', 'ó', 'Ô', 'ô', 'Œ', 'œ', 'Ò', |
'ò', '‾', 'Ω', 'ω', 'Ο', 'ο', '⊕', '∨', 'ª', 'º', 'Ø', 'ø', 'Õ', 'õ', '⊗', |
'Ö', 'ö', '¶', '∂', '‰', '⊥', 'Φ', 'φ', 'Π', 'π', 'ϖ', '±', '£', '″', '′', '∏', '∝', |
'Ψ', 'ψ', '"', '√', '⟩', '»', '⇒', '→', '⌉', '”', 'ℜ', '®', '⌋', 'Ρ', 'ρ', '‏', '›', |
'’', '‚', 'Š', 'š', '⋅', '§', '­', 'Σ', 'σ', 'ς', '∼', '♠', '⊂', '⊆', '∑', '⊃', '¹', |
'²', '³', '⊇', 'ß', 'Τ', 'τ', '∴', 'Θ', 'θ', 'ϑ', ' ', 'þ', '˜', '×', '™', 'Ú', |
'ú', '⇑', '↑', 'Û', 'û', 'Ù', 'ù', '¨', 'ϒ', 'Υ', 'υ', 'Ü', 'ü', '℘', 'Ξ', 'ξ', |
'Ý', 'ý', '¥', 'Ÿ', 'ÿ', 'Ζ', 'ζ', '‍', '‌'); |
// Characters corresponding to ENTITY_NAMES. */ |
// pstfix |
ENTITY_CHARS: array[0..249] of integer = ($00C2, $00E2, $00B4, $00C6, $00E6, $00C0, $00E0, $2135, $0391, $03B1, $0026, $2227, $2220, ord(''''), $00C5, $00E5, $2248, $00C3, $00E3, $00C4, |
$00E4, $201E, $0392, $03B2, $00A6, $2022, $2229, $00C7, $00E7, $00B8, $00A2, $03A7, $03C7, $02C6, $2663, $2245, $00A9, $21B5, $222A, $00A4, $2021, $2020, $21D3, $2193, $00B0, |
$0394, $03B4, $2666, $00F7, $00C9, $00E9, $00CA, $00EA, $00C8, $00E8, $2205, $2003, $2002, $0395, $03B5, $2261, $0397, $03B7, $00D0, $00F0, $00CB, $00EB, $20AC, $2203, $0192, |
$2200, $00BD, $00BC, $00BE, $2044, $0393, $03B3, $2265, $003E, $21D4, $2194, $2665, $2026, $00CD, $00ED, $00CE, $00EE, $00A1, $00CC, $00EC, $2111, $221E, $222B, $0399, $03B9, |
$00BF, $2208, $00CF, $00EF, $039A, $03BA, $039B, $03BB, $2329, $00AB, $21D0, $2190, $2308, $201C, $2264, $230A, $2217, $25CA, $200E, $2039, $2018, $003C, $00AF, $2014, $00B5, |
$00B7, $2212, $039C, $03BC, $2207, $00A0, $2013, $2260, $220B, $00AC, $2209, $2284, $00D1, $00F1, $039D, $03BD, $00D3, $00F3, $00D4, $00F4, $0152, $0153, $00D2, $00F2, $203E, |
$03A9, $03C9, $039F, $03BF, $2295, $2228, $00AA, $00BA, $00D8, $00F8, $00D5, $00F5, $2297, $00D6, $00F6, $00B6, $2202, $2030, $22A5, $03A6, $03C6, $03A0, $03C0, $03D6, $00B1, |
$00A3, $2033, $2032, $220F, $221D, $03A8, $03C8, $0022, $221A, $232A, $00BB, $21D2, $2192, $2309, $201D, $211C, $00AE, $230B, $03A1, $03C1, $200F, $203A, $2019, $201A, $0160, |
$0161, $22C5, $00A7, $00AD, $03A3, $03C3, $03C2, $223C, $2660, $2282, $2286, $2211, $2283, $00B9, $00B2, $00B3, $2287, $00DF, $03A4, $03C4, $2234, $0398, $03B8, $03D1, $00DE, |
$00FE, $02DC, $00D7, $2122, $00DA, $00FA, $21D1, $2191, $00DB, $00FB, $00D9, $00F9, $00A8, $03D2, $03A5, $03C5, $00DC, $00FC, $2118, $039E, $03BE, $00DD, $00FD, $00A5, $0178, |
$00FF, $0396, $03B6, $200D, $200C); |
LINK_PREFIXES: array[0..3] of String = ('http', 'https', 'ftp', 'ftps'); |
BLOCK_ELEMENTS: set of THTMLElement = [headdress, heblockquote, hedel, hediv, hedl, hefieldset, heform, heh1, heh2, heh3, heh4, heh5, heh6, hehr, heins, henoscript, heol, hep, |
hepre, hetable, heul]; |
UNSAFE_ELEMENTS: set of THTMLElement = [heapplet, hehead, hehtml, hebody, heframe, heframeset, heiframe, hescript, heobject]; |
BUFFER_INCREMENT_SIZE = 1024; |
Type |
TReader = class |
private |
FValue: String; |
FCursor: integer; |
public |
Constructor Create(source: String); |
function read: char; |
end; |
{$IFDEF FPC} |
TStringBuilder = class |
private |
FContent : String; |
FLength : Integer; |
FBufferSize : integer; |
function GetChar(index: integer): char; |
public |
Constructor Create; |
procedure Clear; |
procedure Append(value : String); overload; |
procedure Append(value : integer); overload; |
procedure Append(value : TStringBuilder); overload; |
property ch[index : integer] : char read GetChar; default; |
function toString : String; override; |
Property Length : Integer Read FLength; |
end; |
{$ENDIF} |
TUtils = class |
public |
// Skips spaces in the given String. return The new position or -1 if EOL has been reached. |
class function skipSpaces(s: String; start: integer): integer; |
// Process the given escape sequence. return The new position. |
class function escape(out_: TStringBuilder; ch: char; position: integer): integer; |
// Reads characters until any 'end' character is encountered. return The new position or -1 if no 'end' char was found. |
class function readUntil(out_: TStringBuilder; s: String; start: integer; cend: TSysCharSet): integer; overload; |
// Reads characters until the 'end' character is encountered. return The new position or -1 if no 'end' char was found. |
class function readUntil(out_: TStringBuilder; s: String; start: integer; cend: char): integer; overload; |
// Reads a markdown link. return The new position or -1 if this is no valid markdown link. |
class function readMdLink(out_: TStringBuilder; s: String; start: integer): integer; |
class function readMdLinkId(out_: TStringBuilder; s: String; start: integer): integer; |
// Reads characters until any 'end' character is encountered, ignoring escape sequences. |
class function readRawUntil(out_: TStringBuilder; s: String; start: integer; cend: TSysCharSet): integer; overload; |
// Reads characters until the end character is encountered, taking care of HTML/XML strings. |
class function readRawUntil(out_: TStringBuilder; s: String; start: integer; cend: char): integer; overload; |
// Reads characters until any 'end' character is encountered, ignoring escape sequences. |
class function readXMLUntil(out_: TStringBuilder; s: String; start: integer; cend: TSysCharSet): integer; |
// Appends the given string encoding special HTML characters. |
class procedure appendCode(out_: TStringBuilder; s: String; start: integer; e: integer); |
// Appends the given string encoding special HTML characters (used in HTML |
class procedure appendValue(out_: TStringBuilder; s: String; start: integer; e: integer); |
// Append the given char as a decimal HTML entity. |
class procedure appendDecEntity(out_: TStringBuilder; value: char); |
// Append the given char as a hexadecimal HTML entity. |
class procedure appendHexEntity(out_: TStringBuilder; value: char); |
// Appends the given mailto link using obfuscation. |
class procedure appendMailto(out_: TStringBuilder; s: String; start: integer; e: integer); |
// Extracts the tag from an XML element. |
class procedure getXMLTag(out_: TStringBuilder; bin: TStringBuilder); overload; |
// Extracts the tag from an XML element. |
class procedure getXMLTag(out_: TStringBuilder; s: String); overload; |
// Reads an XML element. |
// return The new position or -1 if this is no valid XML element. |
class function readXML(out_: TStringBuilder; s: String; start: integer; safeMode: boolean): integer; |
// Appends the given string to the given StringBuilder, replacing '&', '<' and '>' by their respective HTML entities. |
class procedure codeEncode(out_: TStringBuilder; value: String; offset: integer); |
// Removes trailing <code>`</code> or <code>~</code> and trims spaces. |
class function getMetaFromFence(fenceLine: String): String; |
end; |
THTML = class |
public |
class function isLinkPrefix(s: String): boolean; |
class function isEntity(s: String): boolean; |
class function isUnsafeHtmlElement(s: String): boolean; |
class function isHtmlBlockElement(s: String): boolean; |
end; |
TDecorator = class |
private |
public |
procedure openParagraph(out_: TStringBuilder); virtual; |
procedure closeParagraph(out_: TStringBuilder); virtual; |
procedure openBlockQuote(out_: TStringBuilder); virtual; |
procedure closeBlockQuote(out_: TStringBuilder); virtual; |
procedure openCodeBlock(out_: TStringBuilder); virtual; |
procedure closeCodeBlock(out_: TStringBuilder); virtual; |
procedure openCodeSpan(out_: TStringBuilder); virtual; |
procedure closeCodeSpan(out_: TStringBuilder); virtual; |
procedure openHeadline(out_: TStringBuilder; level: integer); virtual; |
procedure closeHeadline(out_: TStringBuilder; level: integer); virtual; |
procedure openStrong(out_: TStringBuilder); virtual; |
procedure closeStrong(out_: TStringBuilder); virtual; |
procedure openEmphasis(out_: TStringBuilder); virtual; |
procedure closeEmphasis(out_: TStringBuilder); virtual; |
procedure openSuper(out_: TStringBuilder); virtual; |
procedure closeSuper(out_: TStringBuilder); virtual; |
procedure openOrderedList(out_: TStringBuilder); virtual; |
procedure closeOrderedList(out_: TStringBuilder); virtual; |
procedure openUnOrderedList(out_: TStringBuilder); virtual; |
procedure closeUnOrderedList(out_: TStringBuilder); virtual; |
procedure openListItem(out_: TStringBuilder); virtual; |
procedure closeListItem(out_: TStringBuilder); virtual; |
procedure horizontalRuler(out_: TStringBuilder); virtual; |
procedure openLink(out_: TStringBuilder); virtual; |
procedure closeLink(out_: TStringBuilder); virtual; |
procedure openImage(out_: TStringBuilder); virtual; |
procedure closeImage(out_: TStringBuilder); virtual; |
end; |
TSpanEmitter = class |
public |
procedure emitSpan(out_: TStringBuilder; content: String); virtual; abstract; |
end; |
TBlockEmitter = class |
public |
procedure emitBlock(out_: TStringBuilder; lines: TStringList; meta: String); virtual; abstract; |
end; |
TConfiguration = class |
private |
Fdecorator: TDecorator; |
FsafeMode: boolean; |
FallowSpacesInFencedDelimiters: boolean; |
FforceExtendedProfile: boolean; |
FcodeBlockEmitter: TBlockEmitter; |
FpanicMode: boolean; |
FspecialLinkEmitter: TSpanEmitter; |
public |
Constructor Create(safe : boolean); |
Destructor Destroy; override; |
property safeMode: boolean read FsafeMode write FsafeMode; |
property panicMode: boolean read FpanicMode write FpanicMode; |
property decorator: TDecorator read Fdecorator write Fdecorator; |
property codeBlockEmitter: TBlockEmitter read FcodeBlockEmitter write FcodeBlockEmitter; |
property forceExtendedProfile: boolean read FforceExtendedProfile write FforceExtendedProfile; |
property allowSpacesInFencedDelimiters: boolean read FallowSpacesInFencedDelimiters write FallowSpacesInFencedDelimiters; |
property specialLinkEmitter: TSpanEmitter read FspecialLinkEmitter write FspecialLinkEmitter; |
end; |
TLineType = ( |
// Empty line. */ |
ltEMPTY, |
// Undefined content. */ |
ltOTHER, |
// A markdown headline. */ |
ltHEADLINE, ltHEADLINE1, ltHEADLINE2, |
// A code block line. */ |
ltCODE, |
// A list. */ |
ltULIST, ltOLIST, |
// A block quote. */ |
ltBQUOTE, |
// A horizontal ruler. */ |
ltHR, |
// Start of a XML block. */ |
ltXML, |
// Fenced code block start/end */ |
ltFENCED_CODE); |
TLine = class |
private |
FXmlEndLine: TLine; |
FPrevEmpty: boolean; |
FPrevious: TLine; |
FPosition: integer; |
FValue: string; |
FIsEmpty: boolean; |
FTrailing: integer; |
FNextEmpty: boolean; |
FLeading: integer; |
FNext: TLine; |
function countChars(ch: char): integer; |
function countCharsStart(ch: char; allowSpaces: boolean): integer; |
function readXMLComment(firstLine: TLine; start: integer): integer; |
function checkHTML(): boolean; |
public |
Constructor Create; |
Destructor Destroy; Override; |
// Current cursor position. |
property position: integer read FPosition write FPosition; |
// Leading and trailing spaces. |
property leading: integer read FLeading write FLeading; |
property trailing: integer read FTrailing write FTrailing; |
// Is this line empty? |
property isEmpty: boolean read FIsEmpty write FIsEmpty; |
// This line's value. |
property value: string read FValue write FValue; |
// Previous and next line. |
property previous: TLine read FPrevious write FPrevious; |
property next: TLine read FNext write FNext; |
// Is previous/next line empty? |
property prevEmpty: boolean read FPrevEmpty write FPrevEmpty; |
property nextEmpty: boolean read FNextEmpty write FNextEmpty; |
// Final line of a XML block. |
property xmlEndLine: TLine read FXmlEndLine write FXmlEndLine; |
procedure Init; |
procedure InitLeading; |
function skipSpaces: boolean; |
function readUntil(chend: TSysCharSet): String; |
procedure setEmpty; |
function getLineType(configuration: TConfiguration): TLineType; |
function stripID: String; |
end; |
TLinkRef = class |
private |
FLink: String; |
FTitle: String; |
FIsAbbrev: boolean; |
public |
Constructor Create(link, title: String; isAbbrev: boolean); |
property link: String read FLink write FLink; |
property title: String read FTitle write FTitle; |
property isAbbrev: boolean read FIsAbbrev write FIsAbbrev; |
end; |
TBlockType = ( |
// Unspecified. Used for root block and list items without paragraphs. |
btNONE, |
// A block quote. |
btBLOCKQUOTE, |
// A code block. |
btCODE, |
// A fenced code block. |
btFENCED_CODE, |
// A headline. |
btHEADLINE, |
// A list item. |
btLIST_ITEM, |
// An ordered list. |
btORDERED_LIST, |
// A paragraph. |
btPARAGRAPH, |
// A horizontal ruler. |
btRULER, |
// An unordered list. |
btUNORDERED_LIST, |
// A XML block. |
btXML); |
TBlock = class |
private |
FType: TBlockType; |
FId: String; |
FBlocks: TBlock; |
FBlockTail: TBlock; |
FLines: TLine; |
FLineTail: TLine; |
FHlDepth: integer; |
FNext: TBlock; |
FMeta: String; |
procedure AppendLine(line: TLine); |
function split(line: TLine): TBlock; |
procedure removeListIndent(config: TConfiguration); |
function removeLeadingEmptyLines: boolean; |
procedure removeTrailingEmptyLines; |
procedure transfromHeadline; |
procedure expandListParagraphs; |
function hasLines: boolean; |
procedure removeSurroundingEmptyLines; |
procedure removeBlockQuotePrefix; |
procedure removeLine(line: TLine); |
public |
Constructor Create; |
Destructor Destroy; Override; |
// This block's type. |
property type_: TBlockType read FType write FType; |
property lines: TLine read FLines; |
property lineTail: TLine read FLineTail; |
// child blocks. |
property blocks: TBlock read FBlocks; |
property blockTail: TBlock read FBlockTail; |
// Next block. |
property next: TBlock read FNext write FNext; |
// Depth of headline BlockType. |
property hlDepth: integer read FHlDepth write FHlDepth; |
// ID for headlines and list items |
property id: String read FId write FId; |
// Block meta information |
property meta: String read FMeta write FMeta; |
end; |
TMarkToken = ( |
// No token. |
mtNONE, |
// * |
mtEM_STAR, // x*x |
// _ |
mtEM_UNDERSCORE, // x_x |
// ** |
mtSTRONG_STAR, // x**x |
// __ |
mtSTRONG_UNDERSCORE, // x__x |
// ` |
mtCODE_SINGLE, // ` |
// `` |
mtCODE_DOUBLE, // `` |
// [ |
mtLINK, // [ |
// < |
mtHTML, // < |
// ![ |
mtIMAGE, // ![ |
// & |
mtENTITY, // & |
// \ |
mtESCAPE, // \x |
// Extended: ^ |
mtSUPER, // ^ |
// Extended: (C) |
mtX_COPY, // (C) |
// Extended: (R) |
mtX_REG, // (R) |
// Extended: (TM) |
mtX_TRADE, // (TM) |
// Extended: << |
mtX_LAQUO, // << |
// Extended: >> |
mtX_RAQUO, // >> |
// Extended: -- |
mtX_NDASH, // -- |
// Extended: --- |
mtX_MDASH, // --- |
// Extended: ... |
mtX_HELLIP, // ... |
// Extended: "x |
mtX_RDQUO, // " |
// Extended: x" |
mtX_LDQUO, // " |
// [[ |
mtX_LINK_OPEN, // [[ |
// ]] |
mtX_LINK_CLOSE // ]] |
); |
// Emitter class responsible for generating HTML output. |
TEmitter = class |
private |
linkRefs: TStringList; |
FConfig: TConfiguration; |
FuseExtensions: boolean; |
procedure emitCodeLines(out_: TStringBuilder; lines: TLine; meta: String; removeIndent: boolean); |
procedure emitRawLines(out_: TStringBuilder; lines: TLine); |
procedure emitMarkedLines(out_: TStringBuilder; lines: TLine); |
function findToken(s: String; start: integer; token: TMarkToken): integer; |
function getToken(s: String; position: integer): TMarkToken; |
function checkLink(out_: TStringBuilder; s: String; start: integer; token: TMarkToken): integer; |
function recursiveEmitLine(out_: TStringBuilder; s: String; start: integer; token: TMarkToken): integer; |
function checkHTML(out_: TStringBuilder; s: String; start: integer): integer; |
class function checkEntity(out_: TStringBuilder; s: String; start: integer): integer; |
class function whitespaceToSpace(c: char): char; |
public |
Constructor Create(config: TConfiguration); |
Destructor Destroy; override; |
procedure addLinkRef(key: String; linkRef: TLinkRef); |
procedure emit(out_: TStringBuilder; root: TBlock); |
procedure emitLines(out_: TStringBuilder; block: TBlock); |
end; |
TMarkdownDaringFireball = class(TMarkdownProcessor) |
private |
FConfig: TConfiguration; |
Femitter: TEmitter; |
FuseExtensions: boolean; |
function readLines(reader : TReader): TBlock; |
procedure initListBlock(root: TBlock); |
procedure recurse(root: TBlock; listMode: boolean); |
protected |
function GetAllowUnSafe: boolean; override; |
procedure SetAllowUnSafe(const value: boolean); override; |
public |
Constructor Create; |
Destructor Destroy; override; |
function process(source: String): String; override; |
property config: TConfiguration read FConfig; |
end; |
implementation |
Function StringsContains(Const aNames: Array Of String; Const sName: String): boolean; |
var |
i: integer; |
Begin |
for i := 0 to length(aNames) - 1 do |
if sName <> aNames[i] then |
exit(true); |
result := false; |
End; |
function StringToShortString(const S: String) : ShortString; |
var |
i : integer; |
begin |
SetLength(result, min(s.Length, 255)); |
for i := 1 to length(result) do |
result[i] := AnsiChar(s[i]); |
end; |
function StringToEnum(ATypeInfo: PTypeInfo; const AStr: String; defValue: integer): integer; |
var |
LTypeData: PTypeData; |
LPChar: PAnsiChar; |
LValue: ShortString; |
begin |
LValue := StringToShortString(AStr); |
if ATypeInfo^.Kind = tkEnumeration then |
begin |
LTypeData := GetTypeData(ATypeInfo); |
if LTypeData^.MinValue <> 0 then |
exit(defValue); |
LPChar := @LTypeData^.NameList[0]; |
result := 0; |
while (result <= LTypeData^.MaxValue) and (ShortString(pointer(LPChar)^) <> LValue) do |
begin |
inc(LPChar, ord(LPChar^) + 1); // move to next string |
inc(result); |
end; |
if result > LTypeData^.MaxValue then |
exit(defValue); |
end |
else |
exit(defValue); |
end; |
{ TMarkdownDaringFireball } |
constructor TMarkdownDaringFireball.Create; |
begin |
inherited Create; |
FConfig := TConfiguration.Create(true); |
Femitter := TEmitter.Create(config); |
end; |
destructor TMarkdownDaringFireball.Destroy; |
begin |
FConfig.Free; |
Femitter.Free; |
inherited; |
end; |
function TMarkdownDaringFireball.GetAllowUnSafe: boolean; |
begin |
result := not FConfig.safeMode; |
end; |
procedure TMarkdownDaringFireball.initListBlock(root: TBlock); |
var |
line: TLine; |
t: TLineType; |
begin |
line := root.lines; |
line := line.next; |
while (line <> nil) do |
begin |
t := line.getLineType(FConfig); |
if ((t = ltOLIST) or (t = ltULIST) or (not line.isEmpty and (line.prevEmpty and (line.leading = 0) and not((t = ltOLIST) or (t = ltULIST))))) then |
root.split(line.previous).type_ := btLIST_ITEM; |
line := line.next; |
end; |
root.split(root.lineTail).type_ := btLIST_ITEM; |
end; |
function TMarkdownDaringFireball.process(source: String): String; |
var |
out_: TStringBuilder; |
parent, block: TBlock; |
rdr : TReader; |
begin |
FuseExtensions := config.forceExtendedProfile; |
rdr := TReader.Create(source); |
try |
out_ := TStringBuilder.Create; |
try |
parent := readLines(rdr); |
try |
parent.removeSurroundingEmptyLines; |
recurse(parent, false); |
block := parent.blocks; |
while (block <> nil) do |
begin |
Femitter.emit(out_, block); |
block := block.next; |
end; |
result := out_.ToString; |
finally |
parent.Free; |
end; |
finally |
out_.Free; |
end; |
finally |
rdr.Free; |
end; |
end; |
function TMarkdownDaringFireball.readLines(reader : TReader): TBlock; |
var |
block: TBlock; |
sb: TStringBuilder; |
c, ch: char; |
position, np: integer; |
eol, isLinkRef, lineAdded: boolean; |
lastLinkRef, lr: TLinkRef; |
line: TLine; |
id, link, comment: String; |
begin |
block := TBlock.Create; |
sb := TStringBuilder.Create; |
try |
c := reader.read(); |
lastLinkRef := nil; |
while (c <> #0) do |
begin |
sb.Clear; |
position := 0; |
eol := false; |
while (not eol) do |
begin |
case c of |
#0: |
eol := true; |
#10: |
begin |
c := reader.read(); |
if (c = #13) then |
c := reader.read(); |
eol := true; |
end; |
#13: |
begin |
c := reader.read(); |
if (c = #10) then |
c := reader.read(); |
eol := true; |
end; |
#9: |
begin |
np := position + (4 - (position and 3)); |
while (position < np) do |
begin |
sb.append(' '); |
inc(position); |
end; |
c := reader.read(); |
end; |
else |
if (c <> '<') or (not FConfig.panicMode) then |
begin |
inc(position); |
sb.append(c); |
end |
else |
begin |
inc(position, 4); |
sb.append('<'); |
end; |
c := reader.read(); |
end; |
end; |
lineAdded := false; |
line := TLine.Create; |
try |
line.value := sb.ToString(); |
line.Init(); |
// Check for link definitions |
isLinkRef := false; |
id := ''; |
link := ''; |
comment := ''; |
if (not line.isEmpty) and (line.leading < 4) and (line.value[1 + line.leading] = '[') then |
begin |
line.position := line.leading + 1; |
// Read ID up to ']' |
id := line.readUntil([']']); |
// Is ID valid and are there any more characters? |
if (id <> '') and (line.position + 2 < Length(line.value)) then |
begin |
// Check for ':' ([...]:...) |
if (line.value[1 + line.position + 1] = ':') then |
begin |
line.position := line.position + 2; |
line.skipSpaces(); |
// Check for link syntax |
if (line.value[1 + line.position] = '<') then |
begin |
line.position := line.position + 1; |
link := line.readUntil(['>']); |
line.position := line.position + 1; |
end |
else |
link := line.readUntil([' ', #10]); |
// Is link valid? |
if (link <> '') then |
begin |
// Any non-whitespace characters following? |
if (line.skipSpaces()) then |
begin |
ch := line.value[1 + line.position]; |
// Read comment |
if (ch = '"') or (ch = '''') or (ch = '(') then |
begin |
line.position := line.position + 1; |
if ch = '(' then |
comment := line.readUntil([')']) |
else |
comment := line.readUntil([ch]); |
// Valid linkRef only if comment is valid |
if (comment <> '') then |
isLinkRef := true; |
end; |
end |
else |
isLinkRef := true; |
end; |
end; |
end; |
end; |
if (isLinkRef) then |
begin |
if (LowerCase(id) = '$profile$') then |
begin |
FuseExtensions := LowerCase(link) = 'extended'; |
Femitter.FuseExtensions := FuseExtensions; |
lastLinkRef := nil; |
end |
else |
begin |
// Store linkRef and skip line |
lr := TLinkRef.Create(link, comment, (comment <> '') and (Length(link) = 1) and (link[1 + 1] = '*')); |
Femitter.addLinkRef(id, lr); |
if (comment = '') then |
lastLinkRef := lr; |
end; |
end |
else |
begin |
comment := ''; |
// Check for multi-line linkRef |
if (not line.isEmpty and (lastLinkRef <> nil)) then |
begin |
line.position := line.leading; |
ch := line.value[1 + line.position]; |
if (ch = '"') or (ch = '''') or (ch = '(') then |
begin |
line.position := line.position + 1; |
if ch = '(' then |
comment := line.readUntil([')']) |
else |
comment := line.readUntil([ch]); |
end; |
if (comment <> '') then |
lastLinkRef.title := comment; |
lastLinkRef := nil; |
end; |
// No multi-line linkRef, store line |
if (comment = '') then |
begin |
line.position := 0; |
block.AppendLine(line); |
lineAdded := true; |
end; |
end; |
finally |
if not lineAdded then |
line.Free; |
end; |
end; |
result := block; |
finally |
sb.Free; |
end; |
end; |
procedure TMarkdownDaringFireball.recurse(root: TBlock; listMode: boolean); |
var |
block, list: TBlock; |
line: TLine; |
type_, t: TLineType; |
wasEmpty: boolean; |
bt: TBlockType; |
begin |
line := root.lines; |
if (listMode) then |
begin |
root.removeListIndent(FConfig); |
if (FuseExtensions and (root.lines <> nil) and (root.lines.getLineType(FConfig) <> ltCODE)) then |
root.id := root.lines.stripID(); |
end; |
while (line <> nil) and line.isEmpty do |
line := line.next; |
if (line = nil) then |
exit; |
while (line <> nil) do |
begin |
type_ := line.getLineType(FConfig); |
case type_ of |
ltOTHER: |
begin |
wasEmpty := line.prevEmpty; |
while (line <> nil) and (not line.isEmpty) do |
begin |
t := line.getLineType(FConfig); |
if (listMode or FuseExtensions) and (t in [ltOLIST, ltULIST]) then |
break; |
if (FuseExtensions and (t in [ltCODE, ltFENCED_CODE])) then |
break; |
if (t in [ltHEADLINE, ltHEADLINE1, ltHEADLINE2, ltHR, ltBQUOTE, ltXML]) then |
break; |
line := line.next; |
end; |
if (line <> nil) and not line.isEmpty then |
begin |
if (listMode and not wasEmpty) then |
bt := btNONE |
else |
bt := btPARAGRAPH; |
if line = nil then |
root.split(root.lineTail).type_ := bt |
else |
root.split(line.previous).type_ := bt; |
root.removeLeadingEmptyLines(); |
end |
else |
begin |
if (listMode and ((line = nil) or (not line.isEmpty)) and not wasEmpty) then |
bt := btNONE |
else |
bt := btPARAGRAPH; |
root.removeLeadingEmptyLines(); |
if (line <> nil) then |
root.split(line.previous).type_ := bt |
else |
root.split(root.lineTail).type_ := bt; |
end; |
line := root.lines; |
end; |
ltCODE: |
begin |
while (line <> nil) and (line.isEmpty or (line.leading > 3)) do |
line := line.next; |
if (line <> nil) then |
block := root.split(line.previous) |
else |
block := root.split(root.lineTail); |
block.type_ := btCODE; |
block.removeSurroundingEmptyLines(); |
end; |
ltXML: |
begin |
if (line.previous <> nil) then |
// FIXME ... this looks wrong |
root.split(line.previous); |
root.split(line.xmlEndLine).type_ := btXML; |
root.removeLeadingEmptyLines(); |
line := root.lines; |
end; |
ltBQUOTE: |
begin |
while (line <> nil) do |
begin |
if (not line.isEmpty and (line.prevEmpty and (line.leading = 0) and (line.getLineType(FConfig) <> ltBQUOTE))) then |
break; |
line := line.next; |
end; |
if line <> nil then |
block := root.split(line.previous) |
else |
block := root.split(root.lineTail); |
block.type_ := btBLOCKQUOTE; |
block.removeSurroundingEmptyLines(); |
block.removeBlockQuotePrefix(); |
recurse(block, false); |
line := root.lines; |
end; |
ltHR: |
begin |
if (line.previous <> nil) then |
// FIXME ... this looks wrong |
root.split(line.previous); |
root.split(line).type_ := btRULER; |
root.removeLeadingEmptyLines(); |
line := root.lines; |
end; |
ltFENCED_CODE: |
begin |
line := line.next; |
while (line <> nil) do |
begin |
if (line.getLineType(FConfig) = ltFENCED_CODE) then |
break; |
// TODO ... is this really necessary? Maybe add a special flag? |
line := line.next; |
end; |
if (line <> nil) then |
line := line.next; |
if line <> nil then |
block := root.split(line.previous) |
else |
block := root.split(root.lineTail); |
block.type_ := btFENCED_CODE; |
block.meta := TUtils.getMetaFromFence(block.lines.value); |
block.lines.setEmpty(); |
if (block.lineTail.getLineType(FConfig) = ltFENCED_CODE) then |
block.lineTail.setEmpty(); |
block.removeSurroundingEmptyLines(); |
end; |
ltHEADLINE, ltHEADLINE1, ltHEADLINE2: |
begin |
if (line.previous <> nil) then |
root.split(line.previous); |
if (type_ <> ltHEADLINE) then |
line.next.setEmpty(); |
block := root.split(line); |
block.type_ := btHEADLINE; |
if (type_ <> ltHEADLINE) then |
if type_ = ltHEADLINE1 then |
block.hlDepth := 1 |
else |
block.hlDepth := 2; |
if (FuseExtensions) then |
block.id := block.lines.stripID(); |
block.transfromHeadline(); |
root.removeLeadingEmptyLines(); |
line := root.lines; |
end; |
ltOLIST, ltULIST: |
begin |
while (line <> nil) do |
begin |
t := line.getLineType(FConfig); |
if (not line.isEmpty and (line.prevEmpty and (line.leading = 0) and (not(t = type_)))) then |
break; |
line := line.next; |
end; |
if line <> nil then |
list := root.split(line.previous) |
else |
list := root.split(root.lineTail); |
if type_ = ltOLIST then |
list.type_ := btORDERED_LIST |
else |
list.type_ := btUNORDERED_LIST; |
list.lines.prevEmpty := false; |
list.lineTail.nextEmpty := false; |
list.removeSurroundingEmptyLines(); |
list.lineTail.nextEmpty := false; |
list.lines.prevEmpty := list.lineTail.nextEmpty; |
initListBlock(list); |
block := list.blocks; |
while (block <> nil) do |
begin |
recurse(block, true); |
block := block.next; |
end; |
list.expandListParagraphs(); |
end |
else |
line := line.next; |
end; |
end; |
end; |
procedure TMarkdownDaringFireball.SetAllowUnSafe(const value: boolean); |
begin |
FConfig.safeMode := not value; |
end; |
{ TLine } |
constructor TLine.Create; |
begin |
inherited; |
FIsEmpty := true; |
end; |
destructor TLine.Destroy; |
begin |
FNext.Free; |
inherited; |
end; |
{ TConfiguration } |
constructor TConfiguration.Create(safe : boolean); |
begin |
inherited Create; |
FallowSpacesInFencedDelimiters := true; |
Fdecorator := TDecorator.Create; |
FsafeMode := safe; |
end; |
destructor TConfiguration.Destroy; |
begin |
FcodeBlockEmitter.Free; |
Fdecorator.Free; |
FspecialLinkEmitter.Free; |
inherited; |
end; |
{ TDecorator } |
procedure TDecorator.openParagraph(out_: TStringBuilder); |
begin |
out_.append('<p>'); |
end; |
procedure TDecorator.closeParagraph(out_: TStringBuilder); |
begin |
out_.append('</p>'#10); |
end; |
procedure TDecorator.openBlockQuote(out_: TStringBuilder); |
begin |
out_.append('<blockquote>'); |
end; |
procedure TDecorator.closeBlockQuote(out_: TStringBuilder); |
begin |
out_.append('</blockquote>'#10); |
end; |
procedure TDecorator.openCodeBlock(out_: TStringBuilder); |
begin |
out_.append('<pre><code>'); |
end; |
procedure TDecorator.closeCodeBlock(out_: TStringBuilder); |
begin |
out_.append('</code></pre>'#10); |
end; |
procedure TDecorator.openCodeSpan(out_: TStringBuilder); |
begin |
out_.append('<code>'); |
end; |
procedure TDecorator.closeCodeSpan(out_: TStringBuilder); |
begin |
out_.append('</code>'); |
end; |
procedure TDecorator.openHeadline(out_: TStringBuilder; level: integer); |
begin |
out_.append('<h'); |
out_.append(level); |
end; |
procedure TDecorator.closeHeadline(out_: TStringBuilder; level: integer); |
begin |
out_.append('</h'); |
out_.append(level); |
out_.append('>'#10); |
end; |
procedure TDecorator.openStrong(out_: TStringBuilder); |
begin |
out_.append('<strong>'); |
end; |
procedure TDecorator.closeStrong(out_: TStringBuilder); |
begin |
out_.append('</strong>'); |
end; |
procedure TDecorator.openEmphasis(out_: TStringBuilder); |
begin |
out_.append('<em>'); |
end; |
procedure TDecorator.closeEmphasis(out_: TStringBuilder); |
begin |
out_.append('</em>'); |
end; |
procedure TDecorator.openSuper(out_: TStringBuilder); |
begin |
out_.append('<sup>'); |
end; |
procedure TDecorator.closeSuper(out_: TStringBuilder); |
begin |
out_.append('</sup>'); |
end; |
procedure TDecorator.openOrderedList(out_: TStringBuilder); |
begin |
out_.append('<ol>'#10); |
end; |
procedure TDecorator.closeOrderedList(out_: TStringBuilder); |
begin |
out_.append('</ol>'#10); |
end; |
procedure TDecorator.openUnOrderedList(out_: TStringBuilder); |
begin |
out_.append('<ul>'#10); |
end; |
procedure TDecorator.closeUnOrderedList(out_: TStringBuilder); |
begin |
out_.append('</ul>'#10); |
end; |
procedure TDecorator.openListItem(out_: TStringBuilder); |
begin |
out_.append('<li'); |
end; |
procedure TDecorator.closeListItem(out_: TStringBuilder); |
begin |
out_.append('</li>'#10); |
end; |
procedure TDecorator.horizontalRuler(out_: TStringBuilder); |
begin |
out_.append('<hr/>'#10); |
end; |
procedure TDecorator.openLink(out_: TStringBuilder); |
begin |
out_.append('<a'); |
end; |
procedure TDecorator.closeLink(out_: TStringBuilder); |
begin |
out_.append('</a>'); |
end; |
procedure TDecorator.openImage(out_: TStringBuilder); |
begin |
out_.append('<img'); |
end; |
procedure TDecorator.closeImage(out_: TStringBuilder); |
begin |
out_.append(' />'); |
end; |
{ TEmitter } |
constructor TEmitter.Create(config: TConfiguration); |
begin |
inherited Create; |
FConfig := config; |
linkRefs := TStringList.Create; |
linkRefs.Sorted := true; |
linkRefs.Duplicates := dupError; |
end; |
destructor TEmitter.Destroy; |
var |
i : integer; |
begin |
for i := 0 to linkRefs.Count - 1 do |
linkRefs.Objects[i].Free; |
linkRefs.Free; |
inherited; |
end; |
procedure TEmitter.addLinkRef(key: String; linkRef: TLinkRef); |
var |
k : String; |
i : integer; |
begin |
k := LowerCase(key); |
if linkRefs.find(k, i) then |
begin |
linkRefs.Objects[i].Free; |
linkRefs.Objects[i] := linkRef; |
end |
else |
linkRefs.AddObject(k, linkRef); |
end; |
procedure TEmitter.emit(out_: TStringBuilder; root: TBlock); |
var |
block: TBlock; |
begin |
root.removeSurroundingEmptyLines(); |
case root.type_ of |
btRULER: |
begin |
FConfig.decorator.horizontalRuler(out_); |
exit; |
end; |
btNONE, btXML: |
; // nothing |
btHEADLINE: |
begin |
FConfig.decorator.openHeadline(out_, root.hlDepth); |
if (FuseExtensions and (root.id <> '')) then |
begin |
out_.append(' id="'); |
TUtils.appendCode(out_, root.id, 0, Length(root.id)); |
out_.append('"'); |
end; |
out_.append('>'); |
end; |
btPARAGRAPH: |
FConfig.decorator.openParagraph(out_); |
btCODE, btFENCED_CODE: |
if (FConfig.codeBlockEmitter = nil) then |
FConfig.decorator.openCodeBlock(out_); |
btBLOCKQUOTE: |
FConfig.decorator.openBlockQuote(out_); |
btUNORDERED_LIST: |
FConfig.decorator.openUnOrderedList(out_); |
btORDERED_LIST: |
FConfig.decorator.openOrderedList(out_); |
btLIST_ITEM: |
begin |
FConfig.decorator.openListItem(out_); |
if (FuseExtensions and (root.id <> '')) then |
begin |
out_.append(' id="'); |
TUtils.appendCode(out_, root.id, 0, Length(root.id)); |
out_.append('"'); |
end; |
out_.append('>'); |
end; |
end; |
if (root.hasLines()) then |
emitLines(out_, root) |
else |
begin |
block := root.blocks; |
while (block <> nil) do |
begin |
emit(out_, block); |
block := block.next; |
end; |
end; |
case (root.type_) of |
btRULER, btNONE, btXML: |
; // nothing |
btHEADLINE: |
FConfig.decorator.closeHeadline(out_, root.hlDepth); |
btPARAGRAPH: |
FConfig.decorator.closeParagraph(out_); |
btCODE, btFENCED_CODE: |
if (FConfig.codeBlockEmitter = nil) then |
FConfig.decorator.closeCodeBlock(out_); |
btBLOCKQUOTE: |
FConfig.decorator.closeBlockQuote(out_); |
btUNORDERED_LIST: |
FConfig.decorator.closeUnOrderedList(out_); |
btORDERED_LIST: |
FConfig.decorator.closeOrderedList(out_); |
btLIST_ITEM: |
FConfig.decorator.closeListItem(out_); |
end; |
end; |
procedure TEmitter.emitLines(out_: TStringBuilder; block: TBlock); |
begin |
case (block.type_) of |
btCODE: |
emitCodeLines(out_, block.lines, block.meta, true); |
btFENCED_CODE: |
emitCodeLines(out_, block.lines, block.meta, false); |
btXML: |
emitRawLines(out_, block.lines); |
else |
emitMarkedLines(out_, block.lines); |
end; |
end; |
function TEmitter.findToken(s: String; start: integer; token: TMarkToken): integer; |
var |
position: integer; |
begin |
position := start; |
while (position < Length(s)) do |
begin |
if getToken(s, position) = token then |
exit(position); |
inc(position); |
end; |
result := -1; |
end; |
function TEmitter.checkLink(out_: TStringBuilder; s: String; start: integer; token: TMarkToken): integer; |
var |
isAbbrev, useLt, hasLink: boolean; |
position, oldPos, i: integer; |
temp: TStringBuilder; |
name, link, comment, id: String; |
lr: TLinkRef; |
begin |
isAbbrev := false; |
if (token = mtLINK) then |
position := start + 1 |
else |
position := start + 2; |
temp := TStringBuilder.Create; |
try |
position := TUtils.readMdLinkId(temp, s, position); |
if (position < start) then |
exit(-1); |
name := temp.ToString(); |
link := ''; |
hasLink := false; |
comment := ''; |
oldPos := position; |
inc(position); |
position := TUtils.skipSpaces(s, position); |
if (position < start) then |
begin |
if linkRefs.find(LowerCase(name), i) then |
begin |
lr := TLinkRef(linkRefs.Objects[i]); |
isAbbrev := lr.isAbbrev; |
link := lr.link; |
hasLink := true; |
comment := lr.title; |
position := oldPos; |
end |
else |
exit(-1); |
end |
else if (s[1 + position] = '(') then |
begin |
inc(position); |
position := TUtils.skipSpaces(s, position); |
if (position < start) then |
exit(-1); |
temp.Clear; |
useLt := s[1 + position] = '<'; |
if useLt then |
position := TUtils.readUntil(temp, s, position + 1, '>') |
else |
position := TUtils.readMdLink(temp, s, position); |
if (position < start) then |
exit(-1); |
if (useLt) then |
inc(position); |
link := temp.ToString(); |
hasLink := true; |
if (s[1 + position] = ' ') then |
begin |
position := TUtils.skipSpaces(s, position); |
if (position > start) and (s[1 + position] = '"') then |
begin |
inc(position); |
temp.Clear; |
position := TUtils.readUntil(temp, s, position, '"'); |
if (position < start) then |
exit(-1); |
comment := temp.ToString(); |
inc(position); |
position := TUtils.skipSpaces(s, position); |
if (position = -1) then |
exit(-1); |
end; |
end; |
if (s[1 + position] <> ')') then |
exit(-1); |
end |
else if (s[1 + position] = '[') then |
begin |
inc(position); |
temp.Clear; |
position := TUtils.readRawUntil(temp, s, position, ']'); |
if (position < start) then |
exit(-1); |
if temp.length > 0 then |
id := temp.ToString() |
else |
id := name; |
if linkRefs.find(LowerCase(id), i) then |
begin |
lr := TLinkRef(linkRefs.Objects[i]); |
link := lr.link; |
hasLink := true; |
comment := lr.title; |
end |
end |
else |
begin |
if linkRefs.find(LowerCase(name), i) then |
begin |
lr := TLinkRef(linkRefs.Objects[i]); |
isAbbrev := lr.isAbbrev; |
link := lr.link; |
hasLink := true; |
comment := lr.title; |
position := oldPos; |
end |
else |
exit(-1); |
end; |
if (not hasLink) then |
exit(-1); |
if (token = mtLINK) then |
begin |
if (isAbbrev) and (comment <> '') then |
begin |
if (not FuseExtensions) then |
exit(-1); |
out_.append('<abbr title:="'); |
TUtils.appendValue(out_, comment, 0, Length(comment)); |
out_.append('">'); |
recursiveEmitLine(out_, name, 0, mtNONE); |
out_.append('</abbr>'); |
end |
else |
begin |
FConfig.decorator.openLink(out_); |
out_.append(' href="'); |
TUtils.appendValue(out_, link, 0, Length(link)); |
out_.append('"'); |
if (comment <> '') then |
begin |
out_.append(' title="'); |
TUtils.appendValue(out_, comment, 0, Length(comment)); |
out_.append('"'); |
end; |
out_.append('>'); |
recursiveEmitLine(out_, name, 0, mtNONE); |
FConfig.decorator.closeLink(out_); |
end |
end |
else |
begin |
FConfig.decorator.openImage(out_); |
out_.append(' src="'); |
TUtils.appendValue(out_, link, 0, Length(link)); |
out_.append('" alt="'); |
TUtils.appendValue(out_, name, 0, Length(name)); |
out_.append('"'); |
if (comment <> '') then |
begin |
out_.append(' title="'); |
TUtils.appendValue(out_, comment, 0, Length(comment)); |
out_.append('"'); |
end; |
FConfig.decorator.closeImage(out_); |
end; |
result := position; |
finally |
temp.Free; |
end; |
end; |
function TEmitter.checkHTML(out_: TStringBuilder; s: String; start: integer): integer; |
var |
temp: TStringBuilder; |
position: integer; |
link: String; |
begin |
temp := TStringBuilder.Create(); |
try |
// Check for auto links |
temp.Clear; |
position := TUtils.readUntil(temp, s, start + 1, [':', ' ', '>', #10]); |
if (position <> -1) and (s[1 + position] = ':') and (THTML.isLinkPrefix(temp.ToString())) then |
begin |
position := TUtils.readUntil(temp, s, position, ['>']); |
if (position <> -1) then |
begin |
link := temp.ToString(); |
FConfig.decorator.openLink(out_); |
out_.append(' href="'); |
TUtils.appendValue(out_, link, 0, Length(link)); |
out_.append('">'); |
TUtils.appendValue(out_, link, 0, Length(link)); |
FConfig.decorator.closeLink(out_); |
exit(position); |
end; |
end; |
// Check for mailto auto link |
temp.Clear; |
position := TUtils.readUntil(temp, s, start + 1, ['@', ' ', '>', #10]); |
if (position <> -1) and (s[1 + position] = '@') then |
begin |
position := TUtils.readUntil(temp, s, position, '>'); |
if (position <> -1) then |
begin |
link := temp.ToString(); |
FConfig.decorator.openLink(out_); |
out_.append(' href="'); |
TUtils.appendMailto(out_, 'mailto:', 0, 7); |
TUtils.appendMailto(out_, link, 0, Length(link)); |
out_.append('">'); |
TUtils.appendMailto(out_, link, 0, Length(link)); |
FConfig.decorator.closeLink(out_); |
exit(position); |
end; |
end; |
// Check for inline html |
if (start + 2 < Length(s)) then |
begin |
temp.Clear; |
exit(TUtils.readXML(out_, s, start, FConfig.safeMode)); |
end; |
result := -1; |
finally |
temp.Free; |
end; |
end; |
function isLetterOrDigit(c : char) : boolean; |
begin |
{$IFDEF FPC} |
result := c in ['A'..'Z', 'a'..'z', '0'..'9']; |
{$ELSE} |
result := c.isLetterOrDigit(); |
{$ENDIF} |
end; |
function isDigit(c : char) : boolean; |
begin |
{$IFDEF FPC} |
result := c in ['0'..'9']; |
{$ELSE} |
result := c.isDigit(); |
{$ENDIF} |
end; |
function isWhitespace(c : char) : boolean; |
begin |
{$IFDEF FPC} |
result := c in [' ', #9, #10, #13]; |
{$ELSE} |
result := c.isWhitespace(); |
{$ENDIF} |
end; |
class function TEmitter.checkEntity(out_: TStringBuilder; s: String; start: integer): integer; |
var |
position, i: integer; |
c: char; |
begin |
position := TUtils.readUntil(out_, s, start, ';'); |
if (position < 0) or (out_.length < 3) then |
exit(-1); |
if (out_[1] = '#') then |
begin |
if (out_[2] = 'x') or (out_[2] = 'X') then |
begin |
if (out_.length < 4) then |
exit(-1); |
for i := 3 to out_.length do |
begin |
c := out_[i]; |
if ((c < '0') or (c > '9')) and (((c < 'a') or (c > 'f')) and ((c < 'A') or (c > 'F'))) then |
exit(-1); |
end; |
end |
else |
begin |
for i := 2 to out_.length do |
begin |
c := out_[i]; |
if (c < '0') or (c > '9') then |
exit(-1); |
end; |
end; |
out_.append(';'); |
end |
else |
begin |
for i := 1 to out_.length - 1 do |
begin |
c := out_[i]; // zero based |
if (not isLetterOrDigit(c)) then |
exit(-1); |
end; |
out_.append(';'); |
if THTML.isEntity(out_.ToString()) then |
exit(position) |
else |
exit(-1); |
end; |
result := position; |
end; |
function TEmitter.recursiveEmitLine(out_: TStringBuilder; s: String; start: integer; token: TMarkToken): integer; |
var |
position, a, b: integer; |
temp: TStringBuilder; |
mt: TMarkToken; |
begin |
position := start; |
temp := TStringBuilder.Create(); |
try |
while (position < Length(s)) do |
begin |
mt := getToken(s, position); |
if (token <> mtNONE) and ((mt = token) or ((token = mtEM_STAR) and (mt = mtSTRONG_STAR)) or ((token = mtEM_UNDERSCORE) and (mt = mtSTRONG_UNDERSCORE))) then |
exit(position); |
case mt of |
mtIMAGE, mtLINK: |
begin |
temp.Clear; |
b := checkLink(temp, s, position, mt); |
if (b > 0) then |
begin |
out_.append(temp); |
position := b; |
end |
else |
out_.append(s[1 + position]); |
end; |
mtEM_STAR, mtEM_UNDERSCORE: |
begin |
temp.Clear; |
b := recursiveEmitLine(temp, s, position + 1, mt); |
if (b > 0) then |
begin |
FConfig.decorator.openEmphasis(out_); |
out_.append(temp); |
FConfig.decorator.closeEmphasis(out_); |
position := b; |
end |
else |
out_.append(s[1 + position]); |
end; |
mtSTRONG_STAR, mtSTRONG_UNDERSCORE: |
begin |
temp.Clear; |
b := recursiveEmitLine(temp, s, position + 2, mt); |
if (b > 0) then |
begin |
FConfig.decorator.openStrong(out_); |
out_.append(temp); |
FConfig.decorator.closeStrong(out_); |
position := b + 1; |
end |
else |
out_.append(s[1 + position]); |
end; |
mtSUPER: |
begin |
temp.Clear; |
b := recursiveEmitLine(temp, s, position + 1, mt); |
if (b > 0) then |
begin |
FConfig.decorator.openSuper(out_); |
out_.append(temp); |
FConfig.decorator.closeSuper(out_); |
position := b; |
end |
else |
out_.append(s[1 + position]); |
end; |
mtCODE_SINGLE, mtCODE_DOUBLE: |
begin |
if mt = mtCODE_DOUBLE then |
a := position + 2 |
else |
a := position + 1; |
b := findToken(s, a, mt); |
if (b > 0) then |
begin |
if mt = mtCODE_DOUBLE then |
position := b + 1 |
else |
position := b + 0; |
while (a < b) and (s[1 + a] = ' ') do |
inc(a); |
if (a < b) then |
begin |
while (s[1 + b - 1] = ' ') do |
dec(b); |
end; |
FConfig.decorator.openCodeSpan(out_); |
TUtils.appendCode(out_, s, a, b); |
FConfig.decorator.closeCodeSpan(out_); |
end |
else |
out_.append(s[1 + position]); |
end; |
mtHTML: |
begin |
temp.Clear; |
b := checkHTML(temp, s, position); |
if (b > 0) then |
begin |
out_.append(temp); |
position := b; |
end |
else |
out_.append('<'); |
end; |
mtENTITY: |
begin |
temp.Clear; |
b := checkEntity(temp, s, position); |
if (b > 0) then |
begin |
out_.append(temp); |
position := b; |
end |
else |
out_.append('&'); |
end; |
mtX_LINK_OPEN: |
begin |
temp.Clear; |
b := recursiveEmitLine(temp, s, position + 2, mtX_LINK_CLOSE); |
if (b > 0) and (FConfig.specialLinkEmitter <> nil) then |
begin |
FConfig.specialLinkEmitter.emitSpan(out_, temp.ToString()); |
position := b + 1; |
end |
else |
out_.append(s[1 + position]); |
end; |
mtX_COPY: |
begin |
out_.append('©'); |
inc(position, 2); |
end; |
mtX_REG: |
begin |
out_.append('®'); |
inc(position, 2); |
end; |
mtX_TRADE: |
begin |
out_.append('™'); |
inc(position, 3); |
end; |
mtX_NDASH: |
begin |
out_.append('–'); |
inc(position); |
end; |
mtX_MDASH: |
begin |
out_.append('—'); |
inc(position, 2); |
end; |
mtX_HELLIP: |
begin |
out_.append('…'); |
inc(position, 2); |
end; |
mtX_LAQUO: |
begin |
out_.append('«'); |
inc(position); |
end; |
mtX_RAQUO: |
begin |
out_.append('»'); |
inc(position); |
end; |
mtX_RDQUO: |
out_.append('”'); |
mtX_LDQUO: |
out_.append('“'); |
mtESCAPE: |
begin |
inc(position); |
out_.append(s[1 + position]); |
end; |
// $FALL-THROUGH$ |
else |
out_.append(s[1 + position]); |
end; |
inc(position); |
end; |
result := -1; |
finally |
temp.Free; |
end; |
end; |
class function TEmitter.whitespaceToSpace(c: char): char; |
begin |
if isWhitespace(c) then |
result := ' ' |
else |
result := c; |
end; |
function TEmitter.getToken(s: String; position: integer): TMarkToken; |
var |
c0, c, c1, c2, c3: char; |
begin |
result := mtNONE; |
if (position > 0) then |
c0 := whitespaceToSpace(s[1 + position - 1]) |
else |
c0 := ' '; |
c := whitespaceToSpace(s[1 + position]); |
if (position + 1 < Length(s)) then |
c1 := whitespaceToSpace(s[1 + position + 1]) |
else |
c1 := ' '; |
if (position + 2 < Length(s)) then |
c2 := whitespaceToSpace(s[1 + position + 2]) |
else |
c2 := ' '; |
if (position + 3 < Length(s)) then |
c3 := whitespaceToSpace(s[1 + position + 3]) |
else |
c3 := ' '; |
case (c) of |
'*': |
if (c1 = '*') then |
begin |
if (c0 <> ' ') or (c2 <> ' ') then |
exit(mtSTRONG_STAR) |
else |
exit(mtEM_STAR); |
end |
else if (c0 <> ' ') or (c1 <> ' ') then |
exit(mtEM_STAR) |
else |
exit(mtNONE); |
'_': |
if (c1 = '_') then |
begin |
if (c0 <> ' ') or (c2 <> ' ') then |
exit(mtSTRONG_UNDERSCORE) |
else |
exit(mtEM_UNDERSCORE); |
end |
else if (FuseExtensions) then |
begin |
if (isLetterOrDigit(c0)) and (c0 <> '_') and (isLetterOrDigit(c1)) then |
exit(mtNONE) |
else |
exit(mtEM_UNDERSCORE); |
end |
else if (c0 <> ' ') or (c1 <> ' ') then |
exit(mtEM_UNDERSCORE) |
else |
exit(mtNONE); |
'!': |
if (c1 = '[') then |
exit(mtIMAGE) |
else |
exit(mtNONE); |
'[': |
if (FuseExtensions) and (c1 = '[') then |
exit(mtX_LINK_OPEN) |
else |
exit(mtLINK); |
']': |
if (FuseExtensions) and (c1 = ']') then |
exit(mtX_LINK_CLOSE) |
else |
exit(mtNONE); |
'`': |
if (c1 = '`') then |
exit(mtCODE_DOUBLE) |
else |
exit(mtCODE_SINGLE); |
'\': |
if CharInSet(c1, ['\', '[', ']', '(', ')', '{', '}', '#', '"', '''', '.', '>', '<', '*', '+', '-', '_', '!', '`', '~', '^']) then |
exit(mtESCAPE) |
else |
exit(mtNONE); |
'<': |
if (FuseExtensions) and (c1 = '<') then |
exit(mtX_LAQUO) |
else |
exit(mtHTML); |
'&': |
exit(mtENTITY); |
else |
if (FuseExtensions) then |
case (c) of |
'-': |
if (c1 = '-') and (c2 = '-') then |
exit(mtX_MDASH) |
else |
exit(mtX_NDASH); |
'^': |
if (c0 = '^') or (c1 = '^') then |
exit(mtNONE) |
else |
exit(mtSUPER); |
'>': |
if (c1 = '>') then |
exit(mtX_RAQUO); |
'.': |
if (c1 = '.') and (c2 = '.') then |
exit(mtX_HELLIP); |
'(': |
begin |
if (c1 = 'C') and (c2 = ')') then |
exit(mtX_COPY); |
if (c1 = 'R') and (c2 = ')') then |
exit(mtX_REG); |
if (c1 = 'T') and (c2 = 'M') and (c3 = ')') then |
exit(mtX_TRADE); |
end; |
'"': |
begin |
if (not isLetterOrDigit(c0)) and (c1 <> ' ') then |
exit(mtX_LDQUO); |
if (c0 <> ' ') and (not isLetterOrDigit(c1)) then |
exit(mtX_RDQUO); |
exit(mtNONE); |
end; |
end; |
end; |
end; |
procedure TEmitter.emitMarkedLines(out_: TStringBuilder; lines: TLine); |
var |
s: TStringBuilder; |
line: TLine; |
begin |
s := TStringBuilder.Create(); |
try |
line := lines; |
while (line <> nil) do |
begin |
if (not line.isEmpty) then |
begin |
// s.append(line.value.substring(line.leading, line.value.length - line.trailing)); PSTfix |
s.Append( Copy(line.value, line.leading + 1, Length(line.value) - line.trailing)); |
if (line.trailing >= 2) then |
s.append('<br />'); |
end; |
if (line.next <> nil) then |
s.append(#10); |
line := line.next; |
end; |
recursiveEmitLine(out_, s.ToString(), 0, mtNONE); |
finally |
s.Free; |
end; |
end; |
procedure TEmitter.emitRawLines(out_: TStringBuilder; lines: TLine); |
var |
s: String; |
line: TLine; |
temp: TStringBuilder; |
position, t: integer; |
begin |
line := lines; |
if (FConfig.safeMode) then |
begin |
temp := TStringBuilder.Create(); |
try |
while (line <> nil) do |
begin |
if (not line.isEmpty) then |
temp.append(line.value); |
temp.append(#10); |
line := line.next; |
end; |
s := temp.ToString(); |
position := 0; |
while position < length(s) do |
begin |
if (s[1 + position] = '<') then |
begin |
temp.Clear; |
t := TUtils.readXML(temp, s, position, FConfig.safeMode); |
if (t <> -1) then |
begin |
out_.append(temp); |
position := t; |
end |
else |
out_.append(s[1 + position]); |
end |
else |
out_.append(s[1 + position]); |
inc(position); |
end |
finally |
temp.Free; |
end; |
end |
else |
begin |
while (line <> nil) do |
begin |
if (not line.isEmpty) then |
out_.append(line.value); |
out_.append(#10); |
line := line.next; |
end; |
end; |
end; |
procedure TEmitter.emitCodeLines(out_: TStringBuilder; lines: TLine; meta: String; removeIndent: boolean); |
var |
line: TLine; |
list: TStringList; |
i, sp: integer; |
c: char; |
begin |
line := lines; |
if (FConfig.codeBlockEmitter <> nil) then |
begin |
list := TStringList.Create; |
try |
while (line <> nil) do |
begin |
if (line.isEmpty) then |
list.add('') |
else if removeIndent then |
// list.add(line.value.substring(4)) P{STfix |
list.Add( Copy(line.value, 5)) |
else |
list.add(line.value); |
line := line.next; |
end; |
FConfig.codeBlockEmitter.emitBlock(out_, list, meta); |
finally |
list.Free |
end |
end |
else |
begin |
while (line <> nil) do |
begin |
if (not line.isEmpty) then |
begin |
if removeIndent then |
sp := 4 |
else |
sp := 0; |
for i := sp to Length(line.value) - 1 do |
begin |
c := line.value[1 + i]; |
case c of |
'&': |
out_.append('&'); |
'<': |
out_.append('<'); |
'>': |
out_.append('>'); |
else |
out_.append(c); |
end; |
end; |
end; |
out_.append(#10); |
line := line.next; |
end; |
end; |
end; |
{ TReader } |
constructor TReader.Create(source: String); |
begin |
inherited Create; |
FValue := source; |
FCursor := 0; |
end; |
function TReader.read: char; |
begin |
inc(FCursor); |
if FCursor > Length(FValue) then |
result := #0 |
else |
result := FValue[FCursor]; |
end; |
{ TUtils } |
class function TUtils.skipSpaces(s: String; start: integer): integer; |
var |
position: integer; |
begin |
position := start; |
while (position < Length(s)) and ((s[1 + position] = ' ') or (s[1 + position] = #10)) do |
inc(position); |
if position < Length(s) then |
result := position |
else |
result := -1; |
end; |
class function TUtils.escape(out_: TStringBuilder; ch: char; position: integer): integer; |
begin |
if CharInSet(ch, ['\', '[', ']', '(', ')', '{', '}', '#', '"', '''', '.', '>', '<', '*', '+', '-', '_', '!', '`', '^']) then |
begin |
out_.append(ch); |
result := position + 1; |
end |
else |
begin |
out_.append('\'); |
result := position; |
end; |
end; |
class function TUtils.readUntil(out_: TStringBuilder; s: String; start: integer; cend: TSysCharSet): integer; |
var |
position: integer; |
ch: char; |
begin |
position := start; |
while (position < Length(s)) do |
begin |
ch := s[1 + position]; |
if (ch = '\') and (position + 1 < Length(s)) then |
position := escape(out_, s[1 + position + 1], position) |
else |
begin |
if CharInSet(ch, cend) then |
break |
else |
out_.append(ch); |
end; |
inc(position); |
end; |
if position = Length(s) then |
result := -1 |
else |
result := position; |
end; |
class function TUtils.readUntil(out_: TStringBuilder; s: String; start: integer; cend: char): integer; |
var |
position: integer; |
ch: char; |
begin |
position := start; |
while (position < Length(s)) do |
begin |
ch := s[1 + position]; |
if (ch = '\') and (position + 1 < Length(s)) then |
position := escape(out_, s[1 + position + 1], position) |
else |
begin |
if (ch = cend) then |
break; |
out_.append(ch); |
end; |
inc(position); |
end; |
if position = Length(s) then |
result := -1 |
else |
result := position; |
end; |
class function TUtils.readMdLink(out_: TStringBuilder; s: String; start: integer): integer; |
var |
position, counter: integer; |
ch: char; |
endReached: boolean; |
begin |
position := start; |
counter := 1; |
while (position < Length(s)) do |
begin |
ch := s[1 + position]; |
if (ch = '\') and (position + 1 < Length(s)) then |
position := escape(out_, s[1 + position + 1], position) |
else |
begin |
endReached := false; |
case ch of |
'(': |
inc(counter); |
' ': |
if (counter = 1) then |
endReached := true; |
')': |
begin |
dec(counter); |
if (counter = 0) then |
endReached := true; |
end; |
end; |
if (endReached) then |
break; |
out_.append(ch); |
end; |
inc(position); |
end; |
if position = Length(s) then |
result := -1 |
else |
result := position; |
end; |
class function TUtils.readMdLinkId(out_: TStringBuilder; s: String; start: integer): integer; |
var |
position, counter: integer; |
ch: char; |
endReached: boolean; |
begin |
position := start; |
counter := 1; |
while (position < Length(s)) do |
begin |
ch := s[1 + position]; |
endReached := false; |
case ch of |
#10: |
out_.append(' '); |
'[': |
begin |
inc(counter); |
out_.append(ch); |
end; |
']': |
begin |
dec(counter); |
if (counter = 0) then |
endReached := true |
else |
out_.append(ch); |
end; |
else |
out_.append(ch); |
end; |
if (endReached) then |
break; |
inc(position); |
end; |
if position = Length(s) then |
result := -1 |
else |
result := position; |
end; |
class function TUtils.readRawUntil(out_: TStringBuilder; s: String; start: integer; cend: TSysCharSet): integer; |
var |
position: integer; |
ch: char; |
begin |
position := start; |
while (position < Length(s)) do |
begin |
ch := s[1 + position]; |
if CharInSet(ch, cend) then |
break; |
out_.append(ch); |
inc(position); |
end; |
if position = Length(s) then |
result := -1 |
else |
result := position; |
end; |
class function TUtils.readRawUntil(out_: TStringBuilder; s: String; start: integer; cend: char): integer; |
var |
position: integer; |
ch: char; |
begin |
position := start; |
while (position < Length(s)) do |
begin |
ch := s[1 + position]; |
if (ch = cend) then |
break; |
out_.append(ch); |
inc(position); |
end; |
if position = Length(s) then |
result := -1 |
else |
result := position; |
end; |
class function TUtils.readXMLUntil(out_: TStringBuilder; s: String; start: integer; cend: TSysCharSet): integer; |
var |
position : integer; |
ch, stringChar: char; |
inString: boolean; |
begin |
position := start; |
inString := false; |
stringChar := #0; |
while (position < Length(s)) do |
begin |
ch := s[1 + position]; |
if (inString) then |
begin |
if (ch = '\') then |
begin |
out_.append(ch); |
inc(position); |
if (position < Length(s)) then |
begin |
out_.append(ch); |
inc(position); |
end; |
continue; |
end; |
if (ch = stringChar) then |
begin |
inString := false; |
out_.append(ch); |
inc(position); |
continue; |
end; |
end; |
if CharInSet(ch, ['"', '''']) then |
begin |
inString := true; |
stringChar := ch; |
end; |
if (not inString) then |
begin |
if CharInSet(ch, cend) then |
break; |
end; |
out_.append(ch); |
inc(position); |
end; |
if position = Length(s) then |
result := -1 |
else |
result := position; |
end; |
class procedure TUtils.appendCode(out_: TStringBuilder; s: String; start: integer; e: integer); |
var |
i: integer; |
c: char; |
begin |
for i := start to e - 1 do |
begin |
c := s[1 + i]; |
case c of |
'&': |
out_.append('&'); |
'<': |
out_.append('<'); |
'>': |
out_.append('>'); |
else |
out_.append(c); |
end; |
end; |
end; |
class procedure TUtils.appendValue(out_: TStringBuilder; s: String; start: integer; e: integer); |
var |
i: integer; |
c: char; |
begin |
for i := start to e - 1 do |
begin |
c := s[1 + i]; |
case c of |
'&': |
out_.append('&'); |
'<': |
out_.append('<'); |
'>': |
out_.append('>'); |
'"': |
out_.append('"'); |
'''': |
out_.append('''); |
else |
out_.append(c); |
end; |
end; |
end; |
class procedure TUtils.appendDecEntity(out_: TStringBuilder; value: char); |
begin |
out_.append('&#'); |
out_.append(IntToStr(ord(value))); |
out_.append(';'); |
end; |
class procedure TUtils.appendHexEntity(out_: TStringBuilder; value: char); |
begin |
out_.append('&#'); |
out_.append(IntToHex(ord(value), 2)); |
out_.append(';'); |
end; |
class procedure TUtils.appendMailto(out_: TStringBuilder; s: String; start: integer; e: integer); |
var |
i: integer; |
c: char; |
begin |
for i := start to e - 1 do |
begin |
c := s[1 + i]; |
if CharInSet(c, ['&', '<', '>', '"', '''']) then |
appendHexEntity(out_, c) |
else |
out_.append(c); |
end; |
end; |
class procedure TUtils.getXMLTag(out_: TStringBuilder; bin: TStringBuilder); |
var |
position: integer; |
begin |
position := 1; |
if (bin[1] = '/') then |
inc(position); |
while (isLetterOrDigit(bin[position])) do |
begin |
out_.append(bin[position]); |
inc(position) |
end; |
end; |
class procedure TUtils.getXMLTag(out_: TStringBuilder; s: String); |
var |
position: integer; |
begin |
if (1 + 1 > s.length) then |
exit; |
position := 1; |
if (s[1 + 1] = '/') then |
inc(position); |
while (isLetterOrDigit(s[1 + position])) do |
begin |
out_.append(s[1 + position]); |
inc(position) |
end; |
end; |
class function TUtils.readXML(out_: TStringBuilder; s: String; start: integer; safeMode: boolean): integer; |
var |
position: integer; |
isCloseTag: boolean; |
temp: TStringBuilder; |
tag: String; |
begin |
if (1 + start + 1) > s.length then |
exit(start); |
if (s[1 + start + 1] = '/') then |
begin |
isCloseTag := true; |
position := start + 2; |
end |
else if (s[1 + start + 1] = '!') then |
begin |
out_.append('<!'); |
exit(start + 1); |
end |
else |
begin |
isCloseTag := false; |
position := start + 1; |
end; |
if (safeMode) then |
begin |
temp := TStringBuilder.Create(); |
try |
position := readXMLUntil(temp, s, position, [' ', '/', '>']); |
if (position = -1) then |
exit(-1); |
// tag := temp.ToString().trim().ToLower; PSTFix |
tag := LowerCase( Trim( temp.ToString)); |
if (THTML.isUnsafeHtmlElement(tag)) then |
out_.append('<') |
else |
out_.append('<'); |
if (isCloseTag) then |
out_.append('/'); |
out_.append(temp); |
finally |
temp.Free; |
end; |
end |
else |
begin |
out_.append('<'); |
if (isCloseTag) then |
out_.append('/'); |
position := readXMLUntil(out_, s, position, [' ', '/', '>']); |
end; |
if (position = -1) then |
exit(-1); |
position := readXMLUntil(out_, s, position, ['/', '>']); |
if (position = -1) then |
exit(-1); |
if (s[1 + position] = '/') then |
begin |
out_.append(' /'); |
position := readXMLUntil(out_, s, position + 1, ['>']); |
if (position = -1) then |
exit(-1); |
end; |
if (s[1 + position] = '>') then |
begin |
out_.append('>'); |
exit(position); |
end; |
result := -1; |
end; |
class procedure TUtils.codeEncode(out_: TStringBuilder; value: String; offset: integer); |
var |
i: integer; |
c: char; |
begin |
for i := offset to Length(value) - 1 do |
begin |
c := value[1 + i]; |
case c of |
'&': |
out_.append('&'); |
'<': |
out_.append('<'); |
'>': |
out_.append('>'); |
else |
out_.append(c); |
end; |
end; |
end; |
class function TUtils.getMetaFromFence(fenceLine: String): String; |
var |
i: integer; |
c: char; |
begin |
for i := 0 to Length(fenceLine) - 1 do |
begin |
c := fenceLine[1 + i]; |
if (not isWhitespace(c)) and (c <> '`') and (c <> '~') then |
// exit(fenceLine.substring(i).trim()); PSTfix |
Exit( Trim( Copy(fenceLine, i+1))); |
end; |
result := ''; |
end; |
{ THTML } |
class function THTML.isHtmlBlockElement(s: String): boolean; |
var |
ht: THTMLElement; |
begin |
ht := THTMLElement(StringToEnum(TypeInfo(THTMLElement), 'he' + s, ord(heNONE))); |
result := ht in BLOCK_ELEMENTS; |
end; |
class function THTML.isLinkPrefix(s: String): boolean; |
begin |
result := StringsContains(LINK_PREFIXES, s); |
end; |
class function THTML.isEntity(s: String): boolean; |
begin |
result := StringsContains(ENTITY_NAMES, s); |
end; |
class function THTML.isUnsafeHtmlElement(s: String): boolean; |
var |
ht: THTMLElement; |
begin |
ht := THTMLElement(StringToEnum(TypeInfo(THTMLElement), s, ord(heNONE))); |
result := ht in UNSAFE_ELEMENTS; |
end; |
{ TLine } |
procedure TLine.Init(); |
begin |
FLeading := 0; |
while (leading < Length(value)) and (value[1 + leading] = ' ') do |
inc(FLeading); |
if (leading = Length(value)) then |
setEmpty() |
else |
begin |
isEmpty := false; |
trailing := 0; |
while (value[1 + Length(value) - trailing - 1] = ' ') do |
inc(FTrailing); |
end; |
end; |
procedure TLine.InitLeading(); |
begin |
FLeading := 0; |
while (leading < Length(value)) and (value[1 + leading] = ' ') do |
inc(FLeading); |
if (leading = Length(value)) then |
setEmpty(); |
end; |
// TODO use Util#skipSpaces |
function TLine.skipSpaces(): boolean; |
begin |
while (position < Length(value)) and (value[1 + position] = ' ') do |
inc(FPosition); |
result := position < Length(value); |
end; |
// TODO use Util#readUntil |
function TLine.readUntil(chend: TSysCharSet): String; |
var |
sb: TStringBuilder; |
pos: integer; |
ch, c: char; |
begin |
sb := TStringBuilder.Create(); |
try |
pos := self.position; |
while (pos < Length(value)) do |
begin |
ch := value[1 + pos]; |
if (ch = '\') and (pos + 1 < Length(value)) then |
begin |
c := value[1 + pos + 1]; |
if CharInSet(c, ['\', '[', ']', '(', ')', '{', '}', '#', '"', '''', '.', '>', '*', '+', '-', '_', '!', '`', '~']) then |
begin |
sb.append(c); |
inc(pos); |
end |
else |
begin |
sb.append(ch); |
break; |
end; |
end |
else if CharInSet(ch, chend) then |
break |
else |
sb.append(ch); |
inc(pos); |
end; |
if (pos < Length(value)) then |
ch := value[1 + pos] |
else |
ch := #10; |
if CharInSet(ch, chend) then |
begin |
self.position := pos; |
result := sb.ToString(); |
end |
else |
result := ''; |
finally |
sb.Free; |
end; |
end; |
procedure TLine.setEmpty(); |
begin |
value := ''; |
leading := 0; |
trailing := 0; |
isEmpty := true; |
if (previous <> nil) then |
previous.nextEmpty := true; |
if (next <> nil) then |
next.prevEmpty := true; |
end; |
function TLine.countChars(ch: char): integer; |
var |
count, i: integer; |
c: char; |
begin |
count := 0; |
for i := 0 to Length(value) - 1 do |
begin |
c := value[1 + i]; |
if (c = ' ') then |
continue; |
if (c = ch) then |
begin |
inc(count); |
continue; |
end; |
count := 0; |
break; |
end; |
result := count; |
end; |
function TLine.countCharsStart(ch: char; allowSpaces: boolean): integer; |
var |
count, i: integer; |
c: char; |
begin |
count := 0; |
for i := 0 to Length(value) - 1 do |
begin |
c := value[1 + i]; |
if (c = ' ') and (allowSpaces) then |
begin |
continue; |
end; |
if (c = ch) then |
inc(count) |
else |
break; |
end; |
result := count; |
end; |
function TLine.getLineType(configuration: TConfiguration): TLineType; |
var |
i: integer; |
begin |
if (isEmpty) then |
exit(ltEMPTY); |
if (leading > 3) then |
exit(ltCODE); |
if (value[1 + leading] = '#') then |
exit(ltHEADLINE); |
if (value[1 + leading] = '>') then |
exit(ltBQUOTE); |
if (configuration.forceExtendedProfile) then |
begin |
if (Length(value) - leading - trailing > 2) then |
begin |
if (value[1 + leading] = '`') and (countCharsStart('`', configuration.allowSpacesInFencedDelimiters) >= 3) then |
exit(ltFENCED_CODE); |
if (value[1 + leading] = '~') and (countCharsStart('~', configuration.allowSpacesInFencedDelimiters) >= 3) then |
exit(ltFENCED_CODE); |
end; |
end; |
if (Length(value) - leading - trailing > 2) and ((value[1 + leading] = '*') or (value[1 + leading] = '-') or (value[1 + leading] = '_')) then |
begin |
if (countChars(value[1 + leading]) >= 3) then |
exit(ltHR); |
end; |
if (Length(value) - leading >= 2) and (value[1 + leading + 1] = ' ') then |
begin |
if CharInSet(value[1 + leading], ['*', '-', '+']) then |
exit(ltULIST); |
end; |
if (Length(value) - leading >= 3) and (isDigit(value[1 + leading])) then |
begin |
i := leading + 1; |
while (i < Length(value)) and (isDigit(value[1 + i])) do |
inc(i); |
if (i + 1 < Length(value)) and (value[1 + i] = '.') and (value[1 + i + 1] = ' ') then |
exit(ltOLIST); |
end; |
if (value[1 + leading] = '<') then |
begin |
if (checkHTML()) then |
exit(ltXML); |
end; |
if (next <> nil) and (not next.isEmpty) then |
begin |
if ((next.value[1 + 0] = '-')) and ((next.countChars('-') > 0)) then |
exit(ltHEADLINE2); |
if ((next.value[1 + 0] = '=')) and ((next.countChars('=') > 0)) then |
exit(ltHEADLINE1); |
end; |
exit(ltOTHER); |
end; |
function TLine.readXMLComment(firstLine: TLine; start: integer): integer; |
var |
line: TLine; |
pos: integer; |
begin |
line := firstLine; |
if (start + 3 < Length(line.value)) then |
begin |
if (line.value[1 + 2] = '-') and (line.value[1 + 3] = '-') then |
begin |
pos := start + 4; |
while (line <> nil) do |
begin |
while (pos < Length(line.value)) and (line.value[1 + pos] <> '-') do |
inc(pos); |
if (pos = Length(line.value)) then |
begin |
line := line.next; |
pos := 0; |
end |
else |
begin |
if (pos + 2 < Length(line.value)) then |
begin |
if (line.value[1 + pos + 1] = '-') and (line.value[1 + pos + 2] = '>') then |
begin |
xmlEndLine := line; |
exit(pos + 3); |
end; |
end; |
inc(pos); |
end; |
end; |
end; |
end; |
exit(-1); |
end; |
// FIXME ... hack |
function TLine.stripID(): String; |
var |
p, start: integer; |
found: boolean; |
id: String; |
begin |
if (isEmpty or (value[1 + Length(value) - trailing - 1] <> '}')) then |
exit(''); |
p := leading; |
found := false; |
while (p < Length(value)) and (not found) do |
begin |
case value[1 + p] of |
'\': |
begin |
if (p + 1 < Length(value)) then |
begin |
if (value[1 + p + 1]) = '{' then |
begin |
inc(p); |
break; |
end; |
end; |
inc(p); |
break; |
end; |
'{': |
begin |
found := true; |
break; |
end |
else |
begin |
inc(p); |
break; |
end; |
end; |
end; |
if (found) then |
begin |
if (p + 1 < Length(value)) and (value[1 + p + 1] = '#') then |
begin |
start := p + 2; |
p := start; |
found := false; |
while (p < Length(value)) and (not found) do |
begin |
case (value[1 + p]) of |
'\': |
begin |
if (p + 1 < Length(value)) then |
begin |
if (value[1 + p + 1]) = '}' then |
inc(p); |
end; |
inc(p); |
end; |
'}': |
begin |
found := true; |
end; |
else |
begin |
inc(p); |
end; |
end; |
if (found) then |
begin |
// id := value.substring(start, p).trim(); PSTfix |
id := Trim( Copy(value, start + 1, p)); |
if (leading <> 0) then |
begin |
// value := value.substring(0, leading) + value.substring(leading, start - 2).trim(); PSTfix |
value := Copy(value, 1, leading) + Trim( Copy( value, leading + 1, start -2)); |
end |
else |
begin |
// value := value.substring(leading, start - 2).trim(); PSTFix |
value := Trim( Copy(value, leading +1, start -2)); |
end; |
trailing := 0; |
if (Length(id) > 0) then |
exit(id) |
else |
exit(''); |
end; |
end; |
end; |
end; |
exit(''); |
end; |
function TLine.checkHTML: boolean; |
var |
tags: TStringList; |
temp: TStringBuilder; |
element, tag: String; |
line: TLine; |
newPos: integer; |
begin |
result := false; |
tags := TStringList.Create(); |
temp := TStringBuilder.Create(); |
try |
position := leading; |
if (value.length >= 1 + leading + 1) and (value[1 + leading + 1] = '!') then |
begin |
if (readXMLComment(self, leading) > 0) then |
begin |
exit(true); |
end; |
end; |
position := TUtils.readXML(temp, value, leading, false); |
if (position > -1) then |
begin |
element := temp.ToString(); |
temp.Clear; |
TUtils.getXMLTag(temp, element); |
tag := LowerCase(temp.ToString()); |
if (not THTML.isHtmlBlockElement(tag)) then |
exit(false); |
// if (tag.equals('hr') or element.endsWith('/>')) then PSTFix |
if (tag = 'hr') or AnsiEndsText('/>', element) then |
begin |
xmlEndLine := self; |
exit(true); |
end; |
tags.add(tag); |
line := self; |
while (line <> nil) do |
begin |
while (position < Length(line.value)) and ((line.value[1 + position] <> '<') or (position = Length(line.value)-1)) do |
inc(FPosition); |
if (position >= Length(line.value)) then |
begin |
line := line.next; |
position := 0; |
end |
else |
begin |
temp.Clear; |
newPos := TUtils.readXML(temp, line.value, position, false); |
if (newPos > 0) then |
begin |
element := temp.ToString(); |
temp.Clear; |
TUtils.getXMLTag(temp, element); |
tag := LowerCase(temp.ToString()); |
if (THTML.isHtmlBlockElement(tag)) and (tag <> 'hr') and (not AnsiEndsText('/>', element)) then |
begin |
if (element[1 + 1] = '/') then |
begin |
if (tags[tags.Count - 1] <> tag) then |
exit(false); |
tags.Delete(tags.count - 1); |
end |
else |
tags.add(tag); |
end; |
if (tags.count = 0) then |
begin |
xmlEndLine := line; |
break; |
end; |
position := newPos; |
end |
else |
begin |
inc(FPosition); |
end; |
end; |
end; |
result := tags.count = 0; |
end; |
finally |
temp.Free; |
tags.Free; |
end; |
end; |
{ TLinkRef } |
constructor TLinkRef.Create(link, title: String; isAbbrev: boolean); |
begin |
inherited Create; |
FLink := link; |
FTitle := title; |
FIsAbbrev := isAbbrev; |
end; |
{ TBlock } |
constructor TBlock.Create; |
begin |
inherited; |
end; |
destructor TBlock.Destroy; |
begin |
FLines.Free; |
FBlocks.Free; |
FNext.free; |
inherited; |
end; |
procedure TBlock.AppendLine(line: TLine); |
begin |
if (self.lineTail = nil) then |
begin |
self.FLines := line; |
self.FLineTail := line; |
end |
else |
begin |
self.lineTail.nextEmpty := line.isEmpty; |
line.prevEmpty := self.lineTail.isEmpty; |
line.previous := self.lineTail; |
self.lineTail.next := line; |
self.FLineTail := line; |
end; |
end; |
procedure TBlock.expandListParagraphs; |
var |
outer: TBlock; |
inner: TBlock; |
hasParagraph: boolean; |
begin |
if (self.type_ <> btORDERED_LIST) and (self.type_ <> btUNORDERED_LIST) then |
exit; |
outer := self.blocks; |
hasParagraph := false; |
while (outer <> nil) and (not hasParagraph) do |
begin |
if (outer.type_ = btLIST_ITEM) then |
begin |
inner := outer.blocks; |
while (inner <> nil) and (not hasParagraph) do |
begin |
if (inner.type_ = btPARAGRAPH) then |
begin |
hasParagraph := true; |
end; |
inner := inner.next; |
end; |
end; |
outer := outer.next; |
end; |
if (hasParagraph) then |
begin |
outer := self.blocks; |
while (outer <> nil) do |
begin |
if (outer.type_ = btLIST_ITEM) then |
begin |
inner := outer.blocks; |
while (inner <> nil) do |
begin |
if (inner.type_ = btNONE) then |
begin |
inner.type_ := btPARAGRAPH; |
end; |
inner := inner.next; |
end; |
end; |
outer := outer.next; |
end; |
end; |
end; |
function TBlock.hasLines: boolean; |
begin |
result := lines <> nil; |
end; |
procedure TBlock.removeLine(line: TLine); |
begin |
if (line.previous = nil) then |
begin |
self.FLines := line.next; |
end |
else |
begin |
line.previous.next := line.next; |
end; |
if (line.next = nil) then |
begin |
self.FLineTail := line.previous; |
end |
else |
begin |
line.next.previous := line.previous; |
end; |
line.previous := nil; |
line.next := nil; |
line.free; |
end; |
procedure TBlock.removeBlockQuotePrefix; |
var |
line: TLine; |
rem: integer; |
begin |
line := self.lines; |
while (line <> nil) do |
begin |
if (not line.isEmpty) then |
begin |
if (line.value[1 + line.leading] = '>') then |
begin |
rem := line.leading + 1; |
if (line.leading + 1 < Length(line.value)) and (line.value[1 + line.leading + 1] = ' ') then |
begin |
inc(rem); |
end; |
line.value := Copy(line.value, rem+1); |
line.InitLeading(); |
end; |
end; |
line := line.next; |
end; |
end; |
function TBlock.removeLeadingEmptyLines: boolean; |
var |
wasEmpty: boolean; |
line: TLine; |
begin |
wasEmpty := false; |
line := self.lines; |
while (line <> nil) and (line.isEmpty) do |
begin |
self.removeLine(line); |
line := self.lines; |
wasEmpty := true; |
end; |
result := wasEmpty; |
end; |
procedure TBlock.removeTrailingEmptyLines; |
var |
line: TLine; |
begin |
line := self.lineTail; |
while (line <> nil) and (line.isEmpty) do |
begin |
self.removeLine(line); |
line := self.lineTail; |
end; |
end; |
procedure TBlock.removeListIndent(config: TConfiguration); |
var |
line: TLine; |
begin |
line := self.lines; |
while (line <> nil) do |
begin |
if (not line.isEmpty) then |
begin |
case (line.getLineType(config)) of |
ltULIST: |
// line.value := line.value.substring(line.leading + 2); PSTfix |
line.value := Copy(line.value, line.leading +3); |
ltOLIST: |
// line.value := line.value.substring(line.value.indexOf('.') + 2); pstfix |
line.value := Copy(line.value, pos('.', line.value) + 2); |
else |
// line.value := line.value.substring(Math.min(line.leading, 4)); pstfix |
line.value := Copy(line.value, Math.Min(line.leading + 1, 5)); |
end; |
line.InitLeading(); |
end; |
line := line.next; |
end; |
end; |
procedure TBlock.removeSurroundingEmptyLines; |
begin |
if (self.lines <> nil) then |
begin |
self.removeTrailingEmptyLines(); |
self.removeLeadingEmptyLines(); |
end; |
end; |
function TBlock.split(line: TLine): TBlock; |
var |
block: TBlock; |
begin |
block := TBlock.Create(); |
block.FLines := self.lines; |
block.FLineTail := line; |
self.FLines := line.next; |
line.next := nil; |
if (self.lines = nil) then |
begin |
self.FLineTail := nil; |
end |
else |
begin |
self.lines.previous := nil; |
end; |
if (self.blocks = nil) then |
begin |
self.FBlocks := block; |
self.FBlockTail := block; |
end |
else |
begin |
self.blockTail.next := block; |
self.FBlockTail := block; |
end; |
result := block; |
end; |
procedure TBlock.transfromHeadline; |
var |
level, start, end_: integer; |
line: TLine; |
begin |
if (self.hlDepth > 0) then |
begin |
exit; |
end; |
level := 0; |
line := self.lines; |
if (line.isEmpty) then |
begin |
exit; |
end; |
start := line.leading; |
while (start < Length(line.value)) and (line.value[1 + start] = '#') do |
begin |
inc(level); |
inc(start); |
end; |
while (start < Length(line.value)) and (line.value[1 + start] = ' ') do |
begin |
inc(start); |
end; |
if (start >= Length(line.value)) then |
begin |
line.setEmpty(); |
end |
else |
begin |
end_ := Length(line.value) - line.trailing - 1; |
while (line.value[1 + end_] = '#') do |
begin |
dec(end_); |
end; |
while (line.value[1 + end_] = ' ') do |
begin |
dec(end_); |
end; |
line.value := Copy(line.value, start+1, end_-start+1); |
line.leading := 0; |
line.trailing := 0; |
end; |
self.hlDepth := Math.min(level, 6); |
end; |
{$IFDEF FPC} |
{ TStringBuilder } |
constructor TStringBuilder.Create; |
begin |
Inherited; |
FBufferSize := BUFFER_INCREMENT_SIZE; |
end; |
procedure TStringBuilder.Append(value: TStringBuilder); |
begin |
append(value.ToString); |
end; |
procedure TStringBuilder.Append(value: integer); |
begin |
append(inttostr(value)); |
end; |
procedure TStringBuilder.Append(value: String); |
begin |
If (value <> '') Then |
Begin |
If FLength + System.Length(value) > System.Length(FContent) Then |
SetLength(FContent, System.Length(FContent) + Math.Max(FBufferSize, System.Length(value))); |
Move(value[1], FContent[FLength + 1], System.Length(value) * SizeOf(Char)); |
Inc(FLength, System.Length(value)); |
End; |
end; |
procedure TStringBuilder.Clear; |
begin |
FContent := ''; |
FLength := 0; |
end; |
function TStringBuilder.GetChar(index: integer): char; |
begin |
if (index < 0) or (index >= Length) then |
raise EMarkdownProcessor.Create('Out of bounds'); |
result := FContent[index+1]; |
end; |
function TStringBuilder.toString: String; |
begin |
Result := Copy(FContent, 1, FLength); |
end; |
{$ENDIF} |
end. |
/VCL_MARKDOWN/MarkdownHTMLEntities.pas |
---|
0,0 → 1,2180 |
unit MarkdownHTMLEntities; |
// from https://html.spec.whatwg.org/entities.json |
{ |
Copyright (c) 2011+, Health Intersections Pty Ltd (http://www.healthintersections.com.au) |
All rights reserved. |
Redistribution and use in source and binary forms, with or without modification, |
are permitted provided that the following conditions are met: |
* Redistributions of source code must retain the above copyright notice, this |
list of conditions and the following disclaimer. |
* Redistributions in binary form must reproduce the above copyright notice, |
this list of conditions and the following disclaimer in the documentation |
and/or other materials provided with the distribution. |
* Neither the name of HL7 nor the names of its contributors may be used to |
endorse or promote products derived from this software without specific |
prior written permission. |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND |
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
POSSIBILITY OF SUCH DAMAGE. |
} |
{$IFDEF FPC} |
{$WARN 4108 off : Unicode constant cast with potential data loss} |
{$ENDIF} |
interface |
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF} |
uses |
SysUtils, Generics.Collections; |
procedure registerEntities(dict : TDictionary<String,String>); |
implementation |
procedure registerEntities(dict : TDictionary<String,String>); |
procedure add(name, value : {$IFDEF FPC}UTF8String{$ELSE}String{$ENDIF}); |
begin |
dict.add(name, value); |
end; |
begin |
add('Æ', #$00C6); |
add('&', #$0026); |
add('Á', #$00C1); |
add('Ă', #$0102); |
add('Â', #$00C2); |
add('А', #$0410); |
add('𝔄', #$D835#$DD04); |
add('À', #$00C0); |
add('Α', #$0391); |
add('Ā', #$0100); |
add('⩓', #$2A53); |
add('Ą', #$0104); |
add('𝔸', #$D835#$DD38); |
add('⁡', #$2061); |
add('Å', #$00C5); |
add('𝒜', #$D835#$DC9C); |
add('≔', #$2254); |
add('Ã', #$00C3); |
add('Ä', #$00C4); |
add('∖', #$2216); |
add('⫧', #$2AE7); |
add('⌆', #$2306); |
add('Б', #$0411); |
add('∵', #$2235); |
add('ℬ', #$212C); |
add('Β', #$0392); |
add('𝔅', #$D835#$DD05); |
add('𝔹', #$D835#$DD39); |
add('˘', #$02D8); |
add('ℬ', #$212C); |
add('≎', #$224E); |
add('Ч', #$0427); |
add('©', #$00A9); |
add('Ć', #$0106); |
add('⋒', #$22D2); |
add('ⅅ', #$2145); |
add('ℭ', #$212D); |
add('Č', #$010C); |
add('Ç', #$00C7); |
add('Ĉ', #$0108); |
add('∰', #$2230); |
add('Ċ', #$010A); |
add('¸', #$00B8); |
add('·', #$00B7); |
add('ℭ', #$212D); |
add('Χ', #$03A7); |
add('⊙', #$2299); |
add('⊖', #$2296); |
add('⊕', #$2295); |
add('⊗', #$2297); |
add('∲', #$2232); |
add('”', #$201D); |
add('’', #$2019); |
add('∷', #$2237); |
add('⩴', #$2A74); |
add('≡', #$2261); |
add('∯', #$222F); |
add('∮', #$222E); |
add('ℂ', #$2102); |
add('∐', #$2210); |
add('∳', #$2233); |
add('⨯', #$2A2F); |
add('𝒞', #$D835#$DC9E); |
add('⋓', #$22D3); |
add('≍', #$224D); |
add('ⅅ', #$2145); |
add('⤑', #$2911); |
add('Ђ', #$0402); |
add('Ѕ', #$0405); |
add('Џ', #$040F); |
add('‡', #$2021); |
add('↡', #$21A1); |
add('⫤', #$2AE4); |
add('Ď', #$010E); |
add('Д', #$0414); |
add('∇', #$2207); |
add('Δ', #$0394); |
add('𝔇', #$D835#$DD07); |
add('´', #$00B4); |
add('˙', #$02D9); |
add('˝', #$02DD); |
add('`', #$0060); |
add('˜', #$02DC); |
add('⋄', #$22C4); |
add('ⅆ', #$2146); |
add('𝔻', #$D835#$DD3B); |
add('¨', #$00A8); |
add('⃜', #$20DC); |
add('≐', #$2250); |
add('∯', #$222F); |
add('¨', #$00A8); |
add('⇓', #$21D3); |
add('⇐', #$21D0); |
add('⇔', #$21D4); |
add('⫤', #$2AE4); |
add('⟸', #$27F8); |
add('⟺', #$27FA); |
add('⟹', #$27F9); |
add('⇒', #$21D2); |
add('⊨', #$22A8); |
add('⇑', #$21D1); |
add('⇕', #$21D5); |
add('∥', #$2225); |
add('↓', #$2193); |
add('⤓', #$2913); |
add('⇵', #$21F5); |
add('̑', #$0311); |
add('⥐', #$2950); |
add('⥞', #$295E); |
add('↽', #$21BD); |
add('⥖', #$2956); |
add('⥟', #$295F); |
add('⇁', #$21C1); |
add('⥗', #$2957); |
add('⊤', #$22A4); |
add('↧', #$21A7); |
add('⇓', #$21D3); |
add('𝒟', #$D835#$DC9F); |
add('Đ', #$0110); |
add('Ŋ', #$014A); |
add('Ð', #$00D0); |
add('É', #$00C9); |
add('Ě', #$011A); |
add('Ê', #$00CA); |
add('Э', #$042D); |
add('Ė', #$0116); |
add('𝔈', #$D835#$DD08); |
add('È', #$00C8); |
add('∈', #$2208); |
add('Ē', #$0112); |
add('◻', #$25FB); |
add('▫', #$25AB); |
add('Ę', #$0118); |
add('𝔼', #$D835#$DD3C); |
add('Ε', #$0395); |
add('⩵', #$2A75); |
add('≂', #$2242); |
add('⇌', #$21CC); |
add('ℰ', #$2130); |
add('⩳', #$2A73); |
add('Η', #$0397); |
add('Ë', #$00CB); |
add('∃', #$2203); |
add('ⅇ', #$2147); |
add('Ф', #$0424); |
add('𝔉', #$D835#$DD09); |
add('◼', #$25FC); |
add('▪', #$25AA); |
add('𝔽', #$D835#$DD3D); |
add('∀', #$2200); |
add('ℱ', #$2131); |
add('ℱ', #$2131); |
add('Ѓ', #$0403); |
add('>', #$003E); |
add('Γ', #$0393); |
add('Ϝ', #$03DC); |
add('Ğ', #$011E); |
add('Ģ', #$0122); |
add('Ĝ', #$011C); |
add('Г', #$0413); |
add('Ġ', #$0120); |
add('𝔊', #$D835#$DD0A); |
add('⋙', #$22D9); |
add('𝔾', #$D835#$DD3E); |
add('≥', #$2265); |
add('⋛', #$22DB); |
add('≧', #$2267); |
add('⪢', #$2AA2); |
add('≷', #$2277); |
add('⩾', #$2A7E); |
add('≳', #$2273); |
add('𝒢', #$D835#$DCA2); |
add('≫', #$226B); |
add('Ъ', #$042A); |
add('ˇ', #$02C7); |
add('^', #$005E); |
add('Ĥ', #$0124); |
add('ℌ', #$210C); |
add('ℋ', #$210B); |
add('ℍ', #$210D); |
add('─', #$2500); |
add('ℋ', #$210B); |
add('Ħ', #$0126); |
add('≎', #$224E); |
add('≏', #$224F); |
add('Е', #$0415); |
add('IJ', #$0132); |
add('Ё', #$0401); |
add('Í', #$00CD); |
add('Î', #$00CE); |
add('И', #$0418); |
add('İ', #$0130); |
add('ℑ', #$2111); |
add('Ì', #$00CC); |
add('ℑ', #$2111); |
add('Ī', #$012A); |
add('ⅈ', #$2148); |
add('⇒', #$21D2); |
add('∬', #$222C); |
add('∫', #$222B); |
add('⋂', #$22C2); |
add('⁣', #$2063); |
add('⁢', #$2062); |
add('Į', #$012E); |
add('𝕀', #$D835#$DD40); |
add('Ι', #$0399); |
add('ℐ', #$2110); |
add('Ĩ', #$0128); |
add('І', #$0406); |
add('Ï', #$00CF); |
add('Ĵ', #$0134); |
add('Й', #$0419); |
add('𝔍', #$D835#$DD0D); |
add('𝕁', #$D835#$DD41); |
add('𝒥', #$D835#$DCA5); |
add('Ј', #$0408); |
add('Є', #$0404); |
add('Х', #$0425); |
add('Ќ', #$040C); |
add('Κ', #$039A); |
add('Ķ', #$0136); |
add('К', #$041A); |
add('𝔎', #$D835#$DD0E); |
add('𝕂', #$D835#$DD42); |
add('𝒦', #$D835#$DCA6); |
add('Љ', #$0409); |
add('<', #$003C); |
add('Ĺ', #$0139); |
add('Λ', #$039B); |
add('⟪', #$27EA); |
add('ℒ', #$2112); |
add('↞', #$219E); |
add('Ľ', #$013D); |
add('Ļ', #$013B); |
add('Л', #$041B); |
add('⟨', #$27E8); |
add('←', #$2190); |
add('⇤', #$21E4); |
add('⇆', #$21C6); |
add('⌈', #$2308); |
add('⟦', #$27E6); |
add('⥡', #$2961); |
add('⇃', #$21C3); |
add('⥙', #$2959); |
add('⌊', #$230A); |
add('↔', #$2194); |
add('⥎', #$294E); |
add('⊣', #$22A3); |
add('↤', #$21A4); |
add('⥚', #$295A); |
add('⊲', #$22B2); |
add('⧏', #$29CF); |
add('⊴', #$22B4); |
add('⥑', #$2951); |
add('⥠', #$2960); |
add('↿', #$21BF); |
add('⥘', #$2958); |
add('↼', #$21BC); |
add('⥒', #$2952); |
add('⇐', #$21D0); |
add('⇔', #$21D4); |
add('⋚', #$22DA); |
add('≦', #$2266); |
add('≶', #$2276); |
add('⪡', #$2AA1); |
add('⩽', #$2A7D); |
add('≲', #$2272); |
add('𝔏', #$D835#$DD0F); |
add('⋘', #$22D8); |
add('⇚', #$21DA); |
add('Ŀ', #$013F); |
add('⟵', #$27F5); |
add('⟷', #$27F7); |
add('⟶', #$27F6); |
add('⟸', #$27F8); |
add('⟺', #$27FA); |
add('⟹', #$27F9); |
add('𝕃', #$D835#$DD43); |
add('↙', #$2199); |
add('↘', #$2198); |
add('ℒ', #$2112); |
add('↰', #$21B0); |
add('Ł', #$0141); |
add('≪', #$226A); |
add('⤅', #$2905); |
add('М', #$041C); |
add(' ', #$205F); |
add('ℳ', #$2133); |
add('𝔐', #$D835#$DD10); |
add('∓', #$2213); |
add('𝕄', #$D835#$DD44); |
add('ℳ', #$2133); |
add('Μ', #$039C); |
add('Њ', #$040A); |
add('Ń', #$0143); |
add('Ň', #$0147); |
add('Ņ', #$0145); |
add('Н', #$041D); |
add('​', #$200B); |
add('​', #$200B); |
add('​', #$200B); |
add('​', #$200B); |
add('≫', #$226B); |
add('≪', #$226A); |
add('
', #$000A); |
add('𝔑', #$D835#$DD11); |
add('⁠', #$2060); |
add(' ', #$00A0); |
add('ℕ', #$2115); |
add('⫬', #$2AEC); |
add('≢', #$2262); |
add('≭', #$226D); |
add('∦', #$2226); |
add('∉', #$2209); |
add('≠', #$2260); |
add('≂̸', #$2242#$0338); |
add('∄', #$2204); |
add('≯', #$226F); |
add('≱', #$2271); |
add('≧̸', #$2267#$033); |
add('≫̸', #$226B#$033); |
add('≹', #$2279); |
add('⩾̸', #$2A7E#$0338); |
add('≵', #$2275); |
add('≎̸', #$224E#$0338); |
add('≏̸', #$224F#$0338); |
add('⋪', #$22EA); |
add('⧏̸', #$29CF#$0338); |
add('⋬', #$22EC); |
add('≮', #$226E); |
add('≰', #$2270); |
add('≸', #$2278); |
add('≪̸', #$226A#$0338); |
add('⩽̸', #$2A7D#$0338); |
add('≴', #$2274); |
add('⪢̸', #$2AA2#$0338); |
add('⪡̸', #$2AA1#$0338); |
add('⊀', #$2280); |
add('⪯̸', #$2AAF#$0338); |
add('⋠', #$22E0); |
add('∌', #$220C); |
add('⋫', #$22EB); |
add('⧐̸', #$29D0#$0338); |
add('⋭', #$22ED); |
add('⊏̸', #$228F#$0338); |
add('⋢', #$22E2); |
add('⊐̸', #$2290#$0338); |
add('⋣', #$22E3); |
add('⊂⃒', #$2282#$20D2); |
add('⊈', #$2288); |
add('⊁', #$2281); |
add('⪰̸', #$2AB0#$0338); |
add('⋡', #$22E1); |
add('≿̸', #$227F#$0338); |
add('⊃⃒', #$2283#$20D2); |
add('⊉', #$2289); |
add('≁', #$2241); |
add('≄', #$2244); |
add('≇', #$2247); |
add('≉', #$2249); |
add('∤', #$2224); |
add('𝒩', #$D835#$DCA9); |
add('Ñ', #$00D1); |
add('Ν', #$039D); |
add('Œ', #$0152); |
add('Ó', #$00D3); |
add('Ô', #$00D4); |
add('О', #$041E); |
add('Ő', #$0150); |
add('𝔒', #$D835#$DD12); |
add('Ò', #$00D2); |
add('Ō', #$014C); |
add('Ω', #$03A9); |
add('Ο', #$039F); |
add('𝕆', #$D835#$DD46); |
add('“', #$201C); |
add('‘', #$2018); |
add('⩔', #$2A54); |
add('𝒪', #$D835#$DCAA); |
add('Ø', #$00D8); |
add('Õ', #$00D5); |
add('⨷', #$2A37); |
add('Ö', #$00D6); |
add('‾', #$203E); |
add('⏞', #$23DE); |
add('⎴', #$23B4); |
add('⏜', #$23DC); |
add('∂', #$2202); |
add('П', #$041F); |
add('𝔓', #$D835#$DD13); |
add('Φ', #$03A6); |
add('Π', #$03A0); |
add('±', #$00B1); |
add('ℌ', #$210C); |
add('ℙ', #$2119); |
add('⪻', #$2ABB); |
add('≺', #$227A); |
add('⪯', #$2AAF); |
add('≼', #$227C); |
add('≾', #$227E); |
add('″', #$2033); |
add('∏', #$220F); |
add('∷', #$2237); |
add('∝', #$221D); |
add('𝒫', #$D835#$DCAB); |
add('Ψ', #$03A8); |
add('"', #$0022); |
add('𝔔', #$D835#$DD14); |
add('ℚ', #$211A); |
add('𝒬', #$D835#$DCAC); |
add('⤐', #$2910); |
add('®', #$00AE); |
add('Ŕ', #$0154); |
add('⟫', #$27EB); |
add('↠', #$21A0); |
add('⤖', #$2916); |
add('Ř', #$0158); |
add('Ŗ', #$0156); |
add('Р', #$0420); |
add('ℜ', #$211C); |
add('∋', #$220B); |
add('⇋', #$21CB); |
add('⥯', #$296F); |
add('ℜ', #$211C); |
add('Ρ', #$03A1); |
add('⟩', #$27E9); |
add('→', #$2192); |
add('⇥', #$21E5); |
add('⇄', #$21C4); |
add('⌉', #$2309); |
add('⟧', #$27E7); |
add('⥝', #$295D); |
add('⇂', #$21C2); |
add('⥕', #$2955); |
add('⌋', #$230B); |
add('⊢', #$22A2); |
add('↦', #$21A6); |
add('⥛', #$295B); |
add('⊳', #$22B3); |
add('⧐', #$29D0); |
add('⊵', #$22B5); |
add('⥏', #$294F); |
add('⥜', #$295C); |
add('↾', #$21BE); |
add('⥔', #$2954); |
add('⇀', #$21C0); |
add('⥓', #$2953); |
add('⇒', #$21D2); |
add('ℝ', #$211D); |
add('⥰', #$2970); |
add('⇛', #$21DB); |
add('ℛ', #$211B); |
add('↱', #$21B1); |
add('⧴', #$29F4); |
add('Щ', #$0429); |
add('Ш', #$0428); |
add('Ь', #$042C); |
add('Ś', #$015A); |
add('⪼', #$2ABC); |
add('Š', #$0160); |
add('Ş', #$015E); |
add('Ŝ', #$015C); |
add('С', #$0421); |
add('𝔖', #$D835#$DD16); |
add('↓', #$2193); |
add('←', #$2190); |
add('→', #$2192); |
add('↑', #$2191); |
add('Σ', #$03A3); |
add('∘', #$2218); |
add('𝕊', #$D835#$DD4A); |
add('√', #$221A); |
add('□', #$25A1); |
add('⊓', #$2293); |
add('⊏', #$228F); |
add('⊑', #$2291); |
add('⊐', #$2290); |
add('⊒', #$2292); |
add('⊔', #$2294); |
add('𝒮', #$D835#$DCAE); |
add('⋆', #$22C6); |
add('⋐', #$22D0); |
add('⋐', #$22D0); |
add('⊆', #$2286); |
add('≻', #$227B); |
add('⪰', #$2AB0); |
add('≽', #$227D); |
add('≿', #$227F); |
add('∋', #$220B); |
add('∑', #$2211); |
add('⋑', #$22D1); |
add('⊃', #$2283); |
add('⊇', #$2287); |
add('⋑', #$22D1); |
add('Þ', #$00DE); |
add('™', #$2122); |
add('Ћ', #$040B); |
add('Ц', #$0426); |
add('	', #$0009); |
add('Τ', #$03A4); |
add('Ť', #$0164); |
add('Ţ', #$0162); |
add('Т', #$0422); |
add('𝔗', #$D835#$DD17); |
add('∴', #$2234); |
add('Θ', #$0398); |
add('  ', #$205F#$200A); |
add(' ', #$2009); |
add('∼', #$223C); |
add('≃', #$2243); |
add('≅', #$2245); |
add('≈', #$2248); |
add('𝕋', #$D835#$DD4B); |
add('⃛', #$20DB); |
add('𝒯', #$D835#$DCAF); |
add('Ŧ', #$0166); |
add('Ú', #$00DA); |
add('↟', #$219F); |
add('⥉', #$2949); |
add('Ў', #$040E); |
add('Ŭ', #$016C); |
add('Û', #$00DB); |
add('У', #$0423); |
add('Ű', #$0170); |
add('𝔘', #$D835#$DD18); |
add('Ù', #$00D9); |
add('Ū', #$016A); |
add('_', #$005F); |
add('⏟', #$23DF); |
add('⎵', #$23B5); |
add('⏝', #$23DD); |
add('⋃', #$22C3); |
add('⊎', #$228E); |
add('Ų', #$0172); |
add('𝕌', #$D835#$DD4C); |
add('↑', #$2191); |
add('⤒', #$2912); |
add('⇅', #$21C5); |
add('↕', #$2195); |
add('⥮', #$296E); |
add('⊥', #$22A5); |
add('↥', #$21A5); |
add('⇑', #$21D1); |
add('⇕', #$21D5); |
add('↖', #$2196); |
add('↗', #$2197); |
add('ϒ', #$03D2); |
add('Υ', #$03A5); |
add('Ů', #$016E); |
add('𝒰', #$D835#$DCB0); |
add('Ũ', #$0168); |
add('Ü', #$00DC); |
add('⊫', #$22AB); |
add('⫫', #$2AEB); |
add('В', #$0412); |
add('⊩', #$22A9); |
add('⫦', #$2AE6); |
add('⋁', #$22C1); |
add('‖', #$2016); |
add('‖', #$2016); |
add('∣', #$2223); |
add('|', #$007C); |
add('❘', #$2758); |
add('≀', #$2240); |
add(' ', #$200A); |
add('𝔙', #$D835#$DD19); |
add('𝕍', #$D835#$DD4D); |
add('𝒱', #$D835#$DCB1); |
add('⊪', #$22AA); |
add('Ŵ', #$0174); |
add('⋀', #$22C0); |
add('𝔚', #$D835#$DD1A); |
add('𝕎', #$D835#$DD4E); |
add('𝒲', #$D835#$DCB2); |
add('𝔛', #$D835#$DD1B); |
add('Ξ', #$039E); |
add('𝕏', #$D835#$DD4F); |
add('𝒳', #$D835#$DCB3); |
add('Я', #$042F); |
add('Ї', #$0407); |
add('Ю', #$042E); |
add('Ý', #$00DD); |
add('Ŷ', #$0176); |
add('Ы', #$042B); |
add('𝔜', #$D835#$DD1C); |
add('𝕐', #$D835#$DD50); |
add('𝒴', #$D835#$DCB4); |
add('Ÿ', #$0178); |
add('Ж', #$0416); |
add('Ź', #$0179); |
add('Ž', #$017D); |
add('З', #$0417); |
add('Ż', #$017B); |
add('​', #$200B); |
add('Ζ', #$0396); |
add('ℨ', #$2128); |
add('ℤ', #$2124); |
add('𝒵', #$D835#$DCB5); |
add('á', #$00E1); |
add('ă', #$0103); |
add('∾', #$223E); |
add('∾̳', #$223E#$0333); |
add('∿', #$223F); |
add('â', #$00E2); |
add('´', #$00B4); |
add('а', #$0430); |
add('æ', #$00E6); |
add('⁡', #$2061); |
add('𝔞', #$D835#$DD1E); |
add('à', #$00E0); |
add('ℵ', #$2135); |
add('ℵ', #$2135); |
add('α', #$03B1); |
add('ā', #$0101); |
add('⨿', #$2A3F); |
add('&', #$0026); |
add('∧', #$2227); |
add('⩕', #$2A55); |
add('⩜', #$2A5C); |
add('⩘', #$2A58); |
add('⩚', #$2A5A); |
add('∠', #$2220); |
add('⦤', #$29A4); |
add('∠', #$2220); |
add('∡', #$2221); |
add('⦨', #$29A8); |
add('⦩', #$29A9); |
add('⦪', #$29AA); |
add('⦫', #$29AB); |
add('⦬', #$29AC); |
add('⦭', #$29AD); |
add('⦮', #$29AE); |
add('⦯', #$29AF); |
add('∟', #$221F); |
add('⊾', #$22BE); |
add('⦝', #$299D); |
add('∢', #$2222); |
add('Å', #$00C5); |
add('⍼', #$237C); |
add('ą', #$0105); |
add('𝕒', #$D835#$DD52); |
add('≈', #$2248); |
add('⩰', #$2A70); |
add('⩯', #$2A6F); |
add('≊', #$224A); |
add('≋', #$224B); |
add(''', #$0027); |
add('≈', #$2248); |
add('≊', #$224A); |
add('å', #$00E5); |
add('𝒶', #$D835#$DCB6); |
add('*', #$002A); |
add('≈', #$2248); |
add('≍', #$224D); |
add('ã', #$00E3); |
add('ä', #$00E4); |
add('∳', #$2233); |
add('⨑', #$2A11); |
add('⫭', #$2AED); |
add('≌', #$224C); |
add('϶', #$03F6); |
add('‵', #$2035); |
add('∽', #$223D); |
add('⋍', #$22CD); |
add('⊽', #$22BD); |
add('⌅', #$2305); |
add('⌅', #$2305); |
add('⎵', #$23B5); |
add('⎶', #$23B6); |
add('≌', #$224C); |
add('б', #$0431); |
add('„', #$201E); |
add('∵', #$2235); |
add('∵', #$2235); |
add('⦰', #$29B0); |
add('϶', #$03F6); |
add('ℬ', #$212C); |
add('β', #$03B2); |
add('ℶ', #$2136); |
add('≬', #$226C); |
add('𝔟', #$D835#$DD1F); |
add('⋂', #$22C2); |
add('◯', #$25EF); |
add('⋃', #$22C3); |
add('⨀', #$2A00); |
add('⨁', #$2A01); |
add('⨂', #$2A02); |
add('⨆', #$2A06); |
add('★', #$2605); |
add('▽', #$25BD); |
add('△', #$25B3); |
add('⨄', #$2A04); |
add('⋁', #$22C1); |
add('⋀', #$22C0); |
add('⤍', #$290D); |
add('⧫', #$29EB); |
add('▪', #$25AA); |
add('▴', #$25B4); |
add('▾', #$25BE); |
add('◂', #$25C2); |
add('▸', #$25B8); |
add('␣', #$2423); |
add('▒', #$2592); |
add('░', #$2591); |
add('▓', #$2593); |
add('█', #$2588); |
add('=⃥', #$003D#$20E5); |
add('≡⃥', #$2261#$20E5); |
add('⌐', #$2310); |
add('𝕓', #$D835#$DD53); |
add('⊥', #$22A5); |
add('⊥', #$22A5); |
add('⋈', #$22C8); |
add('╗', #$2557); |
add('╔', #$2554); |
add('╖', #$2556); |
add('╓', #$2553); |
add('═', #$2550); |
add('╦', #$2566); |
add('╩', #$2569); |
add('╤', #$2564); |
add('╧', #$2567); |
add('╝', #$255D); |
add('╚', #$255A); |
add('╜', #$255C); |
add('╙', #$2559); |
add('║', #$2551); |
add('╬', #$256C); |
add('╣', #$2563); |
add('╠', #$2560); |
add('╫', #$256B); |
add('╢', #$2562); |
add('╟', #$255F); |
add('⧉', #$29C9); |
add('╕', #$2555); |
add('╒', #$2552); |
add('┐', #$2510); |
add('┌', #$250C); |
add('─', #$2500); |
add('╥', #$2565); |
add('╨', #$2568); |
add('┬', #$252C); |
add('┴', #$2534); |
add('⊟', #$229F); |
add('⊞', #$229E); |
add('⊠', #$22A0); |
add('╛', #$255B); |
add('╘', #$2558); |
add('┘', #$2518); |
add('└', #$2514); |
add('│', #$2502); |
add('╪', #$256A); |
add('╡', #$2561); |
add('╞', #$255E); |
add('┼', #$253C); |
add('┤', #$2524); |
add('├', #$251C); |
add('‵', #$2035); |
add('˘', #$02D8); |
add('¦', #$00A6); |
add('𝒷', #$D835#$DCB7); |
add('⁏', #$204F); |
add('∽', #$223D); |
add('⋍', #$22CD); |
add('\', #$005C); |
add('⧅', #$29C5); |
add('⟈', #$27C8); |
add('•', #$2022); |
add('•', #$2022); |
add('≎', #$224E); |
add('⪮', #$2AAE); |
add('≏', #$224F); |
add('≏', #$224F); |
add('ć', #$0107); |
add('∩', #$2229); |
add('⩄', #$2A44); |
add('⩉', #$2A49); |
add('⩋', #$2A4B); |
add('⩇', #$2A47); |
add('⩀', #$2A40); |
add('∩︀', #$2229#$FE00); |
add('⁁', #$2041); |
add('ˇ', #$02C7); |
add('⩍', #$2A4D); |
add('č', #$010D); |
add('ç', #$00E7); |
add('ĉ', #$0109); |
add('⩌', #$2A4C); |
add('⩐', #$2A50); |
add('ċ', #$010B); |
add('¸', #$00B8); |
add('⦲', #$29B2); |
add('¢', #$00A2); |
add('·', #$00B7); |
add('𝔠', #$D835#$DD20); |
add('ч', #$0447); |
add('✓', #$2713); |
add('✓', #$2713); |
add('χ', #$03C7); |
add('○', #$25CB); |
add('⧃', #$29C3); |
add('ˆ', #$02C6); |
add('≗', #$2257); |
add('↺', #$21BA); |
add('↻', #$21BB); |
add('®', #$00AE); |
add('Ⓢ', #$24C8); |
add('⊛', #$229B); |
add('⊚', #$229A); |
add('⊝', #$229D); |
add('≗', #$2257); |
add('⨐', #$2A10); |
add('⫯', #$2AEF); |
add('⧂', #$29C2); |
add('♣', #$2663); |
add('♣', #$2663); |
add(':', #$003A); |
add('≔', #$2254); |
add('≔', #$2254); |
add(',', #$002C); |
add('@', #$0040); |
add('∁', #$2201); |
add('∘', #$2218); |
add('∁', #$2201); |
add('ℂ', #$2102); |
add('≅', #$2245); |
add('⩭', #$2A6D); |
add('∮', #$222E); |
add('𝕔', #$D835#$DD54); |
add('∐', #$2210); |
add('©', #$00A9); |
add('℗', #$2117); |
add('↵', #$21B5); |
add('✗', #$2717); |
add('𝒸', #$D835#$DCB8); |
add('⫏', #$2ACF); |
add('⫑', #$2AD1); |
add('⫐', #$2AD0); |
add('⫒', #$2AD2); |
add('⋯', #$22EF); |
add('⤸', #$2938); |
add('⤵', #$2935); |
add('⋞', #$22DE); |
add('⋟', #$22DF); |
add('↶', #$21B6); |
add('⤽', #$293D); |
add('∪', #$222A); |
add('⩈', #$2A48); |
add('⩆', #$2A46); |
add('⩊', #$2A4A); |
add('⊍', #$228D); |
add('⩅', #$2A45); |
add('∪︀', #$222A#$FE00); |
add('↷', #$21B7); |
add('⤼', #$293C); |
add('⋞', #$22DE); |
add('⋟', #$22DF); |
add('⋎', #$22CE); |
add('⋏', #$22CF); |
add('¤', #$00A4); |
add('↶', #$21B6); |
add('↷', #$21B7); |
add('⋎', #$22CE); |
add('⋏', #$22CF); |
add('∲', #$2232); |
add('∱', #$2231); |
add('⌭', #$232D); |
add('⇓', #$21D3); |
add('⥥', #$2965); |
add('†', #$2020); |
add('ℸ', #$2138); |
add('↓', #$2193); |
add('‐', #$2010); |
add('⊣', #$22A3); |
add('⤏', #$290F); |
add('˝', #$02DD); |
add('ď', #$010F); |
add('д', #$0434); |
add('ⅆ', #$2146); |
add('‡', #$2021); |
add('⇊', #$21CA); |
add('⩷', #$2A77); |
add('°', #$00B0); |
add('δ', #$03B4); |
add('⦱', #$29B1); |
add('⥿', #$297F); |
add('𝔡', #$D835#$DD21); |
add('⇃', #$21C3); |
add('⇂', #$21C2); |
add('⋄', #$22C4); |
add('⋄', #$22C4); |
add('♦', #$2666); |
add('♦', #$2666); |
add('¨', #$00A8); |
add('ϝ', #$03DD); |
add('⋲', #$22F2); |
add('÷', #$00F7); |
add('÷', #$00F7); |
add('⋇', #$22C7); |
add('⋇', #$22C7); |
add('ђ', #$0452); |
add('⌞', #$231E); |
add('⌍', #$230D); |
add('$', #$0024); |
add('𝕕', #$D835#$DD55); |
add('˙', #$02D9); |
add('≐', #$2250); |
add('≑', #$2251); |
add('∸', #$2238); |
add('∔', #$2214); |
add('⊡', #$22A1); |
add('⌆', #$2306); |
add('↓', #$2193); |
add('⇊', #$21CA); |
add('⇃', #$21C3); |
add('⇂', #$21C2); |
add('⤐', #$2910); |
add('⌟', #$231F); |
add('⌌', #$230C); |
add('𝒹', #$D835#$DCB9); |
add('ѕ', #$0455); |
add('⧶', #$29F6); |
add('đ', #$0111); |
add('⋱', #$22F1); |
add('▿', #$25BF); |
add('▾', #$25BE); |
add('⇵', #$21F5); |
add('⥯', #$296F); |
add('⦦', #$29A6); |
add('џ', #$045F); |
add('⟿', #$27FF); |
add('⩷', #$2A77); |
add('≑', #$2251); |
add('é', #$00E9); |
add('⩮', #$2A6E); |
add('ě', #$011B); |
add('≖', #$2256); |
add('ê', #$00EA); |
add('≕', #$2255); |
add('э', #$044D); |
add('ė', #$0117); |
add('ⅇ', #$2147); |
add('≒', #$2252); |
add('𝔢', #$D835#$DD22); |
add('⪚', #$2A9A); |
add('è', #$00E8); |
add('⪖', #$2A96); |
add('⪘', #$2A98); |
add('⪙', #$2A99); |
add('⏧', #$23E7); |
add('ℓ', #$2113); |
add('⪕', #$2A95); |
add('⪗', #$2A97); |
add('ē', #$0113); |
add('∅', #$2205); |
add('∅', #$2205); |
add('∅', #$2205); |
add(' ', #$2004); |
add(' ', #$2005); |
add(' ', #$2003); |
add('ŋ', #$014B); |
add(' ', #$2002); |
add('ę', #$0119); |
add('𝕖', #$D835#$DD56); |
add('⋕', #$22D5); |
add('⧣', #$29E3); |
add('⩱', #$2A71); |
add('ε', #$03B5); |
add('ε', #$03B5); |
add('ϵ', #$03F5); |
add('≖', #$2256); |
add('≕', #$2255); |
add('≂', #$2242); |
add('⪖', #$2A96); |
add('⪕', #$2A95); |
add('=', #$003D); |
add('≟', #$225F); |
add('≡', #$2261); |
add('⩸', #$2A78); |
add('⧥', #$29E5); |
add('≓', #$2253); |
add('⥱', #$2971); |
add('ℯ', #$212F); |
add('≐', #$2250); |
add('≂', #$2242); |
add('η', #$03B7); |
add('ð', #$00F0); |
add('ë', #$00EB); |
add('€', #$20AC); |
add('!', #$0021); |
add('∃', #$2203); |
add('ℰ', #$2130); |
add('ⅇ', #$2147); |
add('≒', #$2252); |
add('ф', #$0444); |
add('♀', #$2640); |
add('ffi', #$FB03); |
add('ff', #$FB00); |
add('ffl', #$FB04); |
add('𝔣', #$D835#$DD23); |
add('fi', #$FB01); |
add('fj', #$0066#$006A); |
add('♭', #$266D); |
add('fl', #$FB02); |
add('▱', #$25B1); |
add('ƒ', #$0192); |
add('𝕗', #$D835#$DD57); |
add('∀', #$2200); |
add('⋔', #$22D4); |
add('⫙', #$2AD9); |
add('⨍', #$2A0D); |
add('½', #$00BD); |
add('⅓', #$2153); |
add('¼', #$00BC); |
add('⅕', #$2155); |
add('⅙', #$2159); |
add('⅛', #$215B); |
add('⅔', #$2154); |
add('⅖', #$2156); |
add('¾', #$00BE); |
add('⅗', #$2157); |
add('⅜', #$215C); |
add('⅘', #$2158); |
add('⅚', #$215A); |
add('⅝', #$215D); |
add('⅞', #$215E); |
add('⁄', #$2044); |
add('⌢', #$2322); |
add('𝒻', #$D835#$DCBB); |
add('≧', #$2267); |
add('⪌', #$2A8C); |
add('ǵ', #$01F5); |
add('γ', #$03B3); |
add('ϝ', #$03DD); |
add('⪆', #$2A86); |
add('ğ', #$011F); |
add('ĝ', #$011D); |
add('г', #$0433); |
add('ġ', #$0121); |
add('≥', #$2265); |
add('⋛', #$22DB); |
add('≥', #$2265); |
add('≧', #$2267); |
add('⩾', #$2A7E); |
add('⩾', #$2A7E); |
add('⪩', #$2AA9); |
add('⪀', #$2A80); |
add('⪂', #$2A82); |
add('⪄', #$2A84); |
add('⋛︀', #$22DB#$FE00); |
add('⪔', #$2A94); |
add('𝔤', #$D835#$DD24); |
add('≫', #$226B); |
add('⋙', #$22D9); |
add('ℷ', #$2137); |
add('ѓ', #$0453); |
add('≷', #$2277); |
add('⪒', #$2A92); |
add('⪥', #$2AA5); |
add('⪤', #$2AA4); |
add('≩', #$2269); |
add('⪊', #$2A8A); |
add('⪊', #$2A8A); |
add('⪈', #$2A88); |
add('⪈', #$2A88); |
add('≩', #$2269); |
add('⋧', #$22E7); |
add('𝕘', #$D835#$DD58); |
add('`', #$0060); |
add('ℊ', #$210A); |
add('≳', #$2273); |
add('⪎', #$2A8E); |
add('⪐', #$2A90); |
add('>', #$003E); |
add('⪧', #$2AA7); |
add('⩺', #$2A7A); |
add('⋗', #$22D7); |
add('⦕', #$2995); |
add('⩼', #$2A7C); |
add('⪆', #$2A86); |
add('⥸', #$2978); |
add('⋗', #$22D7); |
add('⋛', #$22DB); |
add('⪌', #$2A8C); |
add('≷', #$2277); |
add('≳', #$2273); |
add('≩︀', #$2269#$FE00); |
add('≩︀', #$2269#$FE00); |
add('⇔', #$21D4); |
add(' ', #$200A); |
add('½', #$00BD); |
add('ℋ', #$210B); |
add('ъ', #$044A); |
add('↔', #$2194); |
add('⥈', #$2948); |
add('↭', #$21AD); |
add('ℏ', #$210F); |
add('ĥ', #$0125); |
add('♥', #$2665); |
add('♥', #$2665); |
add('…', #$2026); |
add('⊹', #$22B9); |
add('𝔥', #$D835#$DD25); |
add('⤥', #$2925); |
add('⤦', #$2926); |
add('⇿', #$21FF); |
add('∻', #$223B); |
add('↩', #$21A9); |
add('↪', #$21AA); |
add('𝕙', #$D835#$DD59); |
add('―', #$2015); |
add('𝒽', #$D835#$DCBD); |
add('ℏ', #$210F); |
add('ħ', #$0127); |
add('⁃', #$2043); |
add('‐', #$2010); |
add('í', #$00ED); |
add('⁣', #$2063); |
add('î', #$00EE); |
add('и', #$0438); |
add('е', #$0435); |
add('¡', #$00A1); |
add('⇔', #$21D4); |
add('𝔦', #$D835#$DD26); |
add('ì', #$00EC); |
add('ⅈ', #$2148); |
add('⨌', #$2A0C); |
add('∭', #$222D); |
add('⧜', #$29DC); |
add('℩', #$2129); |
add('ij', #$0133); |
add('ī', #$012B); |
add('ℑ', #$2111); |
add('ℐ', #$2110); |
add('ℑ', #$2111); |
add('ı', #$0131); |
add('⊷', #$22B7); |
add('Ƶ', #$01B5); |
add('∈', #$2208); |
add('℅', #$2105); |
add('∞', #$221E); |
add('⧝', #$29DD); |
add('ı', #$0131); |
add('∫', #$222B); |
add('⊺', #$22BA); |
add('ℤ', #$2124); |
add('⊺', #$22BA); |
add('⨗', #$2A17); |
add('⨼', #$2A3C); |
add('ё', #$0451); |
add('į', #$012F); |
add('𝕚', #$D835#$DD5A); |
add('ι', #$03B9); |
add('⨼', #$2A3C); |
add('¿', #$00BF); |
add('𝒾', #$D835#$DCBE); |
add('∈', #$2208); |
add('⋹', #$22F9); |
add('⋵', #$22F5); |
add('⋴', #$22F4); |
add('⋳', #$22F3); |
add('∈', #$2208); |
add('⁢', #$2062); |
add('ĩ', #$0129); |
add('і', #$0456); |
add('ï', #$00EF); |
add('ĵ', #$0135); |
add('й', #$0439); |
add('𝔧', #$D835#$DD27); |
add('ȷ', #$0237); |
add('𝕛', #$D835#$DD5B); |
add('𝒿', #$D835#$DCBF); |
add('ј', #$0458); |
add('є', #$0454); |
add('κ', #$03BA); |
add('ϰ', #$03F0); |
add('ķ', #$0137); |
add('к', #$043A); |
add('𝔨', #$D835#$DD28); |
add('ĸ', #$0138); |
add('х', #$0445); |
add('ќ', #$045C); |
add('𝕜', #$D835#$DD5C); |
add('𝓀', #$D835#$DCC0); |
add('⇚', #$21DA); |
add('⇐', #$21D0); |
add('⤛', #$291B); |
add('⤎', #$290E); |
add('≦', #$2266); |
add('⪋', #$2A8B); |
add('⥢', #$2962); |
add('ĺ', #$013A); |
add('⦴', #$29B4); |
add('ℒ', #$2112); |
add('λ', #$03BB); |
add('⟨', #$27E8); |
add('⦑', #$2991); |
add('⟨', #$27E8); |
add('⪅', #$2A85); |
add('«', #$00AB); |
add('←', #$2190); |
add('⇤', #$21E4); |
add('⤟', #$291F); |
add('⤝', #$291D); |
add('↩', #$21A9); |
add('↫', #$21AB); |
add('⤹', #$2939); |
add('⥳', #$2973); |
add('↢', #$21A2); |
add('⪫', #$2AAB); |
add('⤙', #$2919); |
add('⪭', #$2AAD); |
add('⪭︀', #$2AAD#$FE00); |
add('⤌', #$290C); |
add('❲', #$2772); |
add('{', #$007B); |
add('[', #$005B); |
add('⦋', #$298B); |
add('⦏', #$298F); |
add('⦍', #$298D); |
add('ľ', #$013E); |
add('ļ', #$013C); |
add('⌈', #$2308); |
add('{', #$007B); |
add('л', #$043B); |
add('⤶', #$2936); |
add('“', #$201C); |
add('„', #$201E); |
add('⥧', #$2967); |
add('⥋', #$294B); |
add('↲', #$21B2); |
add('≤', #$2264); |
add('←', #$2190); |
add('↢', #$21A2); |
add('↽', #$21BD); |
add('↼', #$21BC); |
add('⇇', #$21C7); |
add('↔', #$2194); |
add('⇆', #$21C6); |
add('⇋', #$21CB); |
add('↭', #$21AD); |
add('⋋', #$22CB); |
add('⋚', #$22DA); |
add('≤', #$2264); |
add('≦', #$2266); |
add('⩽', #$2A7D); |
add('⩽', #$2A7D); |
add('⪨', #$2AA8); |
add('⩿', #$2A7F); |
add('⪁', #$2A81); |
add('⪃', #$2A83); |
add('⋚︀', #$22DA#$FE00); |
add('⪓', #$2A93); |
add('⪅', #$2A85); |
add('⋖', #$22D6); |
add('⋚', #$22DA); |
add('⪋', #$2A8B); |
add('≶', #$2276); |
add('≲', #$2272); |
add('⥼', #$297C); |
add('⌊', #$230A); |
add('𝔩', #$D835#$DD29); |
add('≶', #$2276); |
add('⪑', #$2A91); |
add('↽', #$21BD); |
add('↼', #$21BC); |
add('⥪', #$296A); |
add('▄', #$2584); |
add('љ', #$0459); |
add('≪', #$226A); |
add('⇇', #$21C7); |
add('⌞', #$231E); |
add('⥫', #$296B); |
add('◺', #$25FA); |
add('ŀ', #$0140); |
add('⎰', #$23B0); |
add('⎰', #$23B0); |
add('≨', #$2268); |
add('⪉', #$2A89); |
add('⪉', #$2A89); |
add('⪇', #$2A87); |
add('⪇', #$2A87); |
add('≨', #$2268); |
add('⋦', #$22E6); |
add('⟬', #$27EC); |
add('⇽', #$21FD); |
add('⟦', #$27E6); |
add('⟵', #$27F5); |
add('⟷', #$27F7); |
add('⟼', #$27FC); |
add('⟶', #$27F6); |
add('↫', #$21AB); |
add('↬', #$21AC); |
add('⦅', #$2985); |
add('𝕝', #$D835#$DD5D); |
add('⨭', #$2A2D); |
add('⨴', #$2A34); |
add('∗', #$2217); |
add('_', #$005F); |
add('◊', #$25CA); |
add('◊', #$25CA); |
add('⧫', #$29EB); |
add('(', #$0028); |
add('⦓', #$2993); |
add('⇆', #$21C6); |
add('⌟', #$231F); |
add('⇋', #$21CB); |
add('⥭', #$296D); |
add('‎', #$200E); |
add('⊿', #$22BF); |
add('‹', #$2039); |
add('𝓁', #$D835#$DCC1); |
add('↰', #$21B0); |
add('≲', #$2272); |
add('⪍', #$2A8D); |
add('⪏', #$2A8F); |
add('[', #$005B); |
add('‘', #$2018); |
add('‚', #$201A); |
add('ł', #$0142); |
add('<', #$003C); |
add('⪦', #$2AA6); |
add('⩹', #$2A79); |
add('⋖', #$22D6); |
add('⋋', #$22CB); |
add('⋉', #$22C9); |
add('⥶', #$2976); |
add('⩻', #$2A7B); |
add('⦖', #$2996); |
add('◃', #$25C3); |
add('⊴', #$22B4); |
add('◂', #$25C2); |
add('⥊', #$294A); |
add('⥦', #$2966); |
add('≨︀', #$2268#$FE00); |
add('≨︀', #$2268#$FE00); |
add('∺', #$223A); |
add('¯', #$00AF); |
add('♂', #$2642); |
add('✠', #$2720); |
add('✠', #$2720); |
add('↦', #$21A6); |
add('↦', #$21A6); |
add('↧', #$21A7); |
add('↤', #$21A4); |
add('↥', #$21A5); |
add('▮', #$25AE); |
add('⨩', #$2A29); |
add('м', #$043C); |
add('—', #$2014); |
add('∡', #$2221); |
add('𝔪', #$D835#$DD2A); |
add('℧', #$2127); |
add('µ', #$00B5); |
add('∣', #$2223); |
add('*', #$002A); |
add('⫰', #$2AF0); |
add('·', #$00B7); |
add('−', #$2212); |
add('⊟', #$229F); |
add('∸', #$2238); |
add('⨪', #$2A2A); |
add('⫛', #$2ADB); |
add('…', #$2026); |
add('∓', #$2213); |
add('⊧', #$22A7); |
add('𝕞', #$D835#$DD5E); |
add('∓', #$2213); |
add('𝓂', #$D835#$DCC2); |
add('∾', #$223E); |
add('μ', #$03BC); |
add('⊸', #$22B8); |
add('⊸', #$22B8); |
add('⋙̸', #$22D9#$0338); |
add('≫⃒', #$226B#$20D2); |
add('≫̸', #$226B#$0338); |
add('⇍', #$21CD); |
add('⇎', #$21CE); |
add('⋘̸', #$22D8#$0338); |
add('≪⃒', #$226A#$20D2); |
add('≪̸', #$226A#$0338); |
add('⇏', #$21CF); |
add('⊯', #$22AF); |
add('⊮', #$22AE); |
add('∇', #$2207); |
add('ń', #$0144); |
add('∠⃒', #$2220#$20D2); |
add('≉', #$2249); |
add('⩰̸', #$2A70#$0338); |
add('≋̸', #$224B#$0338); |
add('ʼn', #$0149); |
add('≉', #$2249); |
add('♮', #$266E); |
add('♮', #$266E); |
add('ℕ', #$2115); |
add(' ', #$00A0); |
add('≎̸', #$224E#$0338); |
add('≏̸', #$224F#$0338); |
add('⩃', #$2A43); |
add('ň', #$0148); |
add('ņ', #$0146); |
add('≇', #$2247); |
add('⩭̸', #$2A6D#$0338); |
add('⩂', #$2A42); |
add('н', #$043D); |
add('–', #$2013); |
add('≠', #$2260); |
add('⇗', #$21D7); |
add('⤤', #$2924); |
add('↗', #$2197); |
add('↗', #$2197); |
add('≐̸', #$2250#$0338); |
add('≢', #$2262); |
add('⤨', #$2928); |
add('≂̸', #$2242#$0338); |
add('∄', #$2204); |
add('∄', #$2204); |
add('𝔫', #$D835#$DD2B); |
add('≧̸', #$2267#$0338); |
add('≱', #$2271); |
add('≱', #$2271); |
add('≧̸', #$2267#$0338); |
add('⩾̸', #$2A7E#$0338); |
add('⩾̸', #$2A7E#$0338); |
add('≵', #$2275); |
add('≯', #$226F); |
add('≯', #$226F); |
add('⇎', #$21CE); |
add('↮', #$21AE); |
add('⫲', #$2AF2); |
add('∋', #$220B); |
add('⋼', #$22FC); |
add('⋺', #$22FA); |
add('∋', #$220B); |
add('њ', #$045A); |
add('⇍', #$21CD); |
add('≦̸', #$2266#$0338); |
add('↚', #$219A); |
add('‥', #$2025); |
add('≰', #$2270); |
add('↚', #$219A); |
add('↮', #$21AE); |
add('≰', #$2270); |
add('≦̸', #$2266#$0338); |
add('⩽̸', #$2A7D#$0338); |
add('⩽̸', #$2A7D#$0338); |
add('≮', #$226E); |
add('≴', #$2274); |
add('≮', #$226E); |
add('⋪', #$22EA); |
add('⋬', #$22EC); |
add('∤', #$2224); |
add('𝕟', #$D835#$DD5F); |
add('¬', #$00AC); |
add('∉', #$2209); |
add('⋹̸', #$22F9#$0338); |
add('⋵̸', #$22F5#$0338); |
add('∉', #$2209); |
add('⋷', #$22F7); |
add('⋶', #$22F6); |
add('∌', #$220C); |
add('∌', #$220C); |
add('⋾', #$22FE); |
add('⋽', #$22FD); |
add('∦', #$2226); |
add('∦', #$2226); |
add('⫽⃥', #$2AFD#$20E5); |
add('∂̸', #$2202#$0338); |
add('⨔', #$2A14); |
add('⊀', #$2280); |
add('⋠', #$22E0); |
add('⪯̸', #$2AAF#$0338); |
add('⊀', #$2280); |
add('⪯̸', #$2AAF#$0338); |
add('⇏', #$21CF); |
add('↛', #$219B); |
add('⤳̸', #$2933#$0338); |
add('↝̸', #$219D#$0338); |
add('↛', #$219B); |
add('⋫', #$22EB); |
add('⋭', #$22ED); |
add('⊁', #$2281); |
add('⋡', #$22E1); |
add('⪰̸', #$2AB0#$0338); |
add('𝓃', #$D835#$DCC3); |
add('∤', #$2224); |
add('∦', #$2226); |
add('≁', #$2241); |
add('≄', #$2244); |
add('≄', #$2244); |
add('∤', #$2224); |
add('∦', #$2226); |
add('⋢', #$22E2); |
add('⋣', #$22E3); |
add('⊄', #$2284); |
add('⫅̸', #$2AC5#$0338); |
add('⊈', #$2288); |
add('⊂⃒', #$2282#$20D2); |
add('⊈', #$2288); |
add('⫅̸', #$2AC5#$0338); |
add('⊁', #$2281); |
add('⪰̸', #$2AB0#$0338); |
add('⊅', #$2285); |
add('⫆̸', #$2AC6#$0338); |
add('⊉', #$2289); |
add('⊃⃒', #$2283#$20D2); |
add('⊉', #$2289); |
add('⫆̸', #$2AC6#$0338); |
add('≹', #$2279); |
add('ñ', #$00F1); |
add('≸', #$2278); |
add('⋪', #$22EA); |
add('⋬', #$22EC); |
add('⋫', #$22EB); |
add('⋭', #$22ED); |
add('ν', #$03BD); |
add('#', #$0023); |
add('№', #$2116); |
add(' ', #$2007); |
add('⊭', #$22AD); |
add('⤄', #$2904); |
add('≍⃒', #$224D#$20D2); |
add('⊬', #$22AC); |
add('≥⃒', #$2265#$20D2); |
add('>⃒', #$003E#$20D2); |
add('⧞', #$29DE); |
add('⤂', #$2902); |
add('≤⃒', #$2264#$20D2); |
add('<⃒', #$003C#$20D2); |
add('⊴⃒', #$22B4#$20D2); |
add('⤃', #$2903); |
add('⊵⃒', #$22B5#$20D2); |
add('∼⃒', #$223C#$20D2); |
add('⇖', #$21D6); |
add('⤣', #$2923); |
add('↖', #$2196); |
add('↖', #$2196); |
add('⤧', #$2927); |
add('Ⓢ', #$24C8); |
add('ó', #$00F3); |
add('⊛', #$229B); |
add('⊚', #$229A); |
add('ô', #$00F4); |
add('о', #$043E); |
add('⊝', #$229D); |
add('ő', #$0151); |
add('⨸', #$2A38); |
add('⊙', #$2299); |
add('⦼', #$29BC); |
add('œ', #$0153); |
add('⦿', #$29BF); |
add('𝔬', #$D835#$DD2C); |
add('˛', #$02DB); |
add('ò', #$00F2); |
add('⧁', #$29C1); |
add('⦵', #$29B5); |
add('Ω', #$03A9); |
add('∮', #$222E); |
add('↺', #$21BA); |
add('⦾', #$29BE); |
add('⦻', #$29BB); |
add('‾', #$203E); |
add('⧀', #$29C0); |
add('ō', #$014D); |
add('ω', #$03C9); |
add('ο', #$03BF); |
add('⦶', #$29B6); |
add('⊖', #$2296); |
add('𝕠', #$D835#$DD60); |
add('⦷', #$29B7); |
add('⦹', #$29B9); |
add('⊕', #$2295); |
add('∨', #$2228); |
add('↻', #$21BB); |
add('⩝', #$2A5D); |
add('ℴ', #$2134); |
add('ℴ', #$2134); |
add('ª', #$00AA); |
add('º', #$00BA); |
add('⊶', #$22B6); |
add('⩖', #$2A56); |
add('⩗', #$2A57); |
add('⩛', #$2A5B); |
add('ℴ', #$2134); |
add('ø', #$00F8); |
add('⊘', #$2298); |
add('õ', #$00F5); |
add('⊗', #$2297); |
add('⨶', #$2A36); |
add('ö', #$00F6); |
add('⌽', #$233D); |
add('∥', #$2225); |
add('¶', #$00B6); |
add('∥', #$2225); |
add('⫳', #$2AF3); |
add('⫽', #$2AFD); |
add('∂', #$2202); |
add('п', #$043F); |
add('%', #$0025); |
add('.', #$002E); |
add('‰', #$2030); |
add('⊥', #$22A5); |
add('‱', #$2031); |
add('𝔭', #$D835#$DD2D); |
add('φ', #$03C6); |
add('ϕ', #$03D5); |
add('ℳ', #$2133); |
add('☎', #$260E); |
add('π', #$03C0); |
add('⋔', #$22D4); |
add('ϖ', #$03D6); |
add('ℏ', #$210F); |
add('ℎ', #$210E); |
add('ℏ', #$210F); |
add('+', #$002B); |
add('⨣', #$2A23); |
add('⊞', #$229E); |
add('⨢', #$2A22); |
add('∔', #$2214); |
add('⨥', #$2A25); |
add('⩲', #$2A72); |
add('±', #$00B1); |
add('⨦', #$2A26); |
add('⨧', #$2A27); |
add('±', #$00B1); |
add('⨕', #$2A15); |
add('𝕡', #$D835#$DD61); |
add('£', #$00A3); |
add('≺', #$227A); |
add('⪳', #$2AB3); |
add('⪷', #$2AB7); |
add('≼', #$227C); |
add('⪯', #$2AAF); |
add('≺', #$227A); |
add('⪷', #$2AB7); |
add('≼', #$227C); |
add('⪯', #$2AAF); |
add('⪹', #$2AB9); |
add('⪵', #$2AB5); |
add('⋨', #$22E8); |
add('≾', #$227E); |
add('′', #$2032); |
add('ℙ', #$2119); |
add('⪵', #$2AB5); |
add('⪹', #$2AB9); |
add('⋨', #$22E8); |
add('∏', #$220F); |
add('⌮', #$232E); |
add('⌒', #$2312); |
add('⌓', #$2313); |
add('∝', #$221D); |
add('∝', #$221D); |
add('≾', #$227E); |
add('⊰', #$22B0); |
add('𝓅', #$D835#$DCC5); |
add('ψ', #$03C8); |
add(' ', #$2008); |
add('𝔮', #$D835#$DD2E); |
add('⨌', #$2A0C); |
add('𝕢', #$D835#$DD62); |
add('⁗', #$2057); |
add('𝓆', #$D835#$DCC6); |
add('ℍ', #$210D); |
add('⨖', #$2A16); |
add('?', #$003F); |
add('≟', #$225F); |
add('"', #$0022); |
add('⇛', #$21DB); |
add('⇒', #$21D2); |
add('⤜', #$291C); |
add('⤏', #$290F); |
add('⥤', #$2964); |
add('∽̱', #$223D#$0331); |
add('ŕ', #$0155); |
add('√', #$221A); |
add('⦳', #$29B3); |
add('⟩', #$27E9); |
add('⦒', #$2992); |
add('⦥', #$29A5); |
add('⟩', #$27E9); |
add('»', #$00BB); |
add('→', #$2192); |
add('⥵', #$2975); |
add('⇥', #$21E5); |
add('⤠', #$2920); |
add('⤳', #$2933); |
add('⤞', #$291E); |
add('↪', #$21AA); |
add('↬', #$21AC); |
add('⥅', #$2945); |
add('⥴', #$2974); |
add('↣', #$21A3); |
add('↝', #$219D); |
add('⤚', #$291A); |
add('∶', #$2236); |
add('ℚ', #$211A); |
add('⤍', #$290D); |
add('❳', #$2773); |
add('}', #$007D); |
add(']', #$005D); |
add('⦌', #$298C); |
add('⦎', #$298E); |
add('⦐', #$2990); |
add('ř', #$0159); |
add('ŗ', #$0157); |
add('⌉', #$2309); |
add('}', #$007D); |
add('р', #$0440); |
add('⤷', #$2937); |
add('⥩', #$2969); |
add('”', #$201D); |
add('”', #$201D); |
add('↳', #$21B3); |
add('ℜ', #$211C); |
add('ℛ', #$211B); |
add('ℜ', #$211C); |
add('ℝ', #$211D); |
add('▭', #$25AD); |
add('®', #$00AE); |
add('⥽', #$297D); |
add('⌋', #$230B); |
add('𝔯', #$D835#$DD2F); |
add('⇁', #$21C1); |
add('⇀', #$21C0); |
add('⥬', #$296C); |
add('ρ', #$03C1); |
add('ϱ', #$03F1); |
add('→', #$2192); |
add('↣', #$21A3); |
add('⇁', #$21C1); |
add('⇀', #$21C0); |
add('⇄', #$21C4); |
add('⇌', #$21CC); |
add('⇉', #$21C9); |
add('↝', #$219D); |
add('⋌', #$22CC); |
add('˚', #$02DA); |
add('≓', #$2253); |
add('⇄', #$21C4); |
add('⇌', #$21CC); |
add('‏', #$200F); |
add('⎱', #$23B1); |
add('⎱', #$23B1); |
add('⫮', #$2AEE); |
add('⟭', #$27ED); |
add('⇾', #$21FE); |
add('⟧', #$27E7); |
add('⦆', #$2986); |
add('𝕣', #$D835#$DD63); |
add('⨮', #$2A2E); |
add('⨵', #$2A35); |
add(')', #$0029); |
add('⦔', #$2994); |
add('⨒', #$2A12); |
add('⇉', #$21C9); |
add('›', #$203A); |
add('𝓇', #$D835#$DCC7); |
add('↱', #$21B1); |
add(']', #$005D); |
add('’', #$2019); |
add('’', #$2019); |
add('⋌', #$22CC); |
add('⋊', #$22CA); |
add('▹', #$25B9); |
add('⊵', #$22B5); |
add('▸', #$25B8); |
add('⧎', #$29CE); |
add('⥨', #$2968); |
add('℞', #$211E); |
add('ś', #$015B); |
add('‚', #$201A); |
add('≻', #$227B); |
add('⪴', #$2AB4); |
add('⪸', #$2AB8); |
add('š', #$0161); |
add('≽', #$227D); |
add('⪰', #$2AB0); |
add('ş', #$015F); |
add('ŝ', #$015D); |
add('⪶', #$2AB6); |
add('⪺', #$2ABA); |
add('⋩', #$22E9); |
add('⨓', #$2A13); |
add('≿', #$227F); |
add('с', #$0441); |
add('⋅', #$22C5); |
add('⊡', #$22A1); |
add('⩦', #$2A66); |
add('⇘', #$21D8); |
add('⤥', #$2925); |
add('↘', #$2198); |
add('↘', #$2198); |
add('§', #$00A7); |
add(';', #$003B); |
add('⤩', #$2929); |
add('∖', #$2216); |
add('∖', #$2216); |
add('✶', #$2736); |
add('𝔰', #$D835#$DD30); |
add('⌢', #$2322); |
add('♯', #$266F); |
add('щ', #$0449); |
add('ш', #$0448); |
add('∣', #$2223); |
add('∥', #$2225); |
add('­', #$00AD); |
add('σ', #$03C3); |
add('ς', #$03C2); |
add('ς', #$03C2); |
add('∼', #$223C); |
add('⩪', #$2A6A); |
add('≃', #$2243); |
add('≃', #$2243); |
add('⪞', #$2A9E); |
add('⪠', #$2AA0); |
add('⪝', #$2A9D); |
add('⪟', #$2A9F); |
add('≆', #$2246); |
add('⨤', #$2A24); |
add('⥲', #$2972); |
add('←', #$2190); |
add('∖', #$2216); |
add('⨳', #$2A33); |
add('⧤', #$29E4); |
add('∣', #$2223); |
add('⌣', #$2323); |
add('⪪', #$2AAA); |
add('⪬', #$2AAC); |
add('⪬︀', #$2AAC#$FE00); |
add('ь', #$044C); |
add('/', #$002F); |
add('⧄', #$29C4); |
add('⌿', #$233F); |
add('𝕤', #$D835#$DD64); |
add('♠', #$2660); |
add('♠', #$2660); |
add('∥', #$2225); |
add('⊓', #$2293); |
add('⊓︀', #$2293#$FE00); |
add('⊔', #$2294); |
add('⊔︀', #$2294#$FE00); |
add('⊏', #$228F); |
add('⊑', #$2291); |
add('⊏', #$228F); |
add('⊑', #$2291); |
add('⊐', #$2290); |
add('⊒', #$2292); |
add('⊐', #$2290); |
add('⊒', #$2292); |
add('□', #$25A1); |
add('□', #$25A1); |
add('▪', #$25AA); |
add('▪', #$25AA); |
add('→', #$2192); |
add('𝓈', #$D835#$DCC8); |
add('∖', #$2216); |
add('⌣', #$2323); |
add('⋆', #$22C6); |
add('☆', #$2606); |
add('★', #$2605); |
add('ϵ', #$03F5); |
add('ϕ', #$03D5); |
add('¯', #$00AF); |
add('⊂', #$2282); |
add('⫅', #$2AC5); |
add('⪽', #$2ABD); |
add('⊆', #$2286); |
add('⫃', #$2AC3); |
add('⫁', #$2AC1); |
add('⫋', #$2ACB); |
add('⊊', #$228A); |
add('⪿', #$2ABF); |
add('⥹', #$2979); |
add('⊂', #$2282); |
add('⊆', #$2286); |
add('⫅', #$2AC5); |
add('⊊', #$228A); |
add('⫋', #$2ACB); |
add('⫇', #$2AC7); |
add('⫕', #$2AD5); |
add('⫓', #$2AD3); |
add('≻', #$227B); |
add('⪸', #$2AB8); |
add('≽', #$227D); |
add('⪰', #$2AB0); |
add('⪺', #$2ABA); |
add('⪶', #$2AB6); |
add('⋩', #$22E9); |
add('≿', #$227F); |
add('∑', #$2211); |
add('♪', #$266A); |
add('¹', #$00B9); |
add('²', #$00B2); |
add('³', #$00B3); |
add('⊃', #$2283); |
add('⫆', #$2AC6); |
add('⪾', #$2ABE); |
add('⫘', #$2AD8); |
add('⊇', #$2287); |
add('⫄', #$2AC4); |
add('⟉', #$27C9); |
add('⫗', #$2AD7); |
add('⥻', #$297B); |
add('⫂', #$2AC2); |
add('⫌', #$2ACC); |
add('⊋', #$228B); |
add('⫀', #$2AC0); |
add('⊃', #$2283); |
add('⊇', #$2287); |
add('⫆', #$2AC6); |
add('⊋', #$228B); |
add('⫌', #$2ACC); |
add('⫈', #$2AC8); |
add('⫔', #$2AD4); |
add('⫖', #$2AD6); |
add('⇙', #$21D9); |
add('⤦', #$2926); |
add('↙', #$2199); |
add('↙', #$2199); |
add('⤪', #$292A); |
add('ß', #$00DF); |
add('⌖', #$2316); |
add('τ', #$03C4); |
add('⎴', #$23B4); |
add('ť', #$0165); |
add('ţ', #$0163); |
add('т', #$0442); |
add('⃛', #$20DB); |
add('⌕', #$2315); |
add('𝔱', #$D835#$DD31); |
add('∴', #$2234); |
add('∴', #$2234); |
add('θ', #$03B8); |
add('ϑ', #$03D1); |
add('ϑ', #$03D1); |
add('≈', #$2248); |
add('∼', #$223C); |
add(' ', #$2009); |
add('≈', #$2248); |
add('∼', #$223C); |
add('þ', #$00FE); |
add('˜', #$02DC); |
add('×', #$00D7); |
add('⊠', #$22A0); |
add('⨱', #$2A31); |
add('⨰', #$2A30); |
add('∭', #$222D); |
add('⤨', #$2928); |
add('⊤', #$22A4); |
add('⌶', #$2336); |
add('⫱', #$2AF1); |
add('𝕥', #$D835#$DD65); |
add('⫚', #$2ADA); |
add('⤩', #$2929); |
add('‴', #$2034); |
add('™', #$2122); |
add('▵', #$25B5); |
add('▿', #$25BF); |
add('◃', #$25C3); |
add('⊴', #$22B4); |
add('≜', #$225C); |
add('▹', #$25B9); |
add('⊵', #$22B5); |
add('◬', #$25EC); |
add('≜', #$225C); |
add('⨺', #$2A3A); |
add('⨹', #$2A39); |
add('⧍', #$29CD); |
add('⨻', #$2A3B); |
add('⏢', #$23E2); |
add('𝓉', #$D835#$DCC9); |
add('ц', #$0446); |
add('ћ', #$045B); |
add('ŧ', #$0167); |
add('≬', #$226C); |
add('↞', #$219E); |
add('↠', #$21A0); |
add('⇑', #$21D1); |
add('⥣', #$2963); |
add('ú', #$00FA); |
add('↑', #$2191); |
add('ў', #$045E); |
add('ŭ', #$016D); |
add('û', #$00FB); |
add('у', #$0443); |
add('⇅', #$21C5); |
add('ű', #$0171); |
add('⥮', #$296E); |
add('⥾', #$297E); |
add('𝔲', #$D835#$DD32); |
add('ù', #$00F9); |
add('↿', #$21BF); |
add('↾', #$21BE); |
add('▀', #$2580); |
add('⌜', #$231C); |
add('⌜', #$231C); |
add('⌏', #$230F); |
add('◸', #$25F8); |
add('ū', #$016B); |
add('¨', #$00A8); |
add('ų', #$0173); |
add('𝕦', #$D835#$DD66); |
add('↑', #$2191); |
add('↕', #$2195); |
add('↿', #$21BF); |
add('↾', #$21BE); |
add('⊎', #$228E); |
add('υ', #$03C5); |
add('ϒ', #$03D2); |
add('υ', #$03C5); |
add('⇈', #$21C8); |
add('⌝', #$231D); |
add('⌝', #$231D); |
add('⌎', #$230E); |
add('ů', #$016F); |
add('◹', #$25F9); |
add('𝓊', #$D835#$DCCA); |
add('⋰', #$22F0); |
add('ũ', #$0169); |
add('▵', #$25B5); |
add('▴', #$25B4); |
add('⇈', #$21C8); |
add('ü', #$00FC); |
add('⦧', #$29A7); |
add('⇕', #$21D5); |
add('⫨', #$2AE8); |
add('⫩', #$2AE9); |
add('⊨', #$22A8); |
add('⦜', #$299C); |
add('ϵ', #$03F5); |
add('ϰ', #$03F0); |
add('∅', #$2205); |
add('ϕ', #$03D5); |
add('ϖ', #$03D6); |
add('∝', #$221D); |
add('↕', #$2195); |
add('ϱ', #$03F1); |
add('ς', #$03C2); |
add('⊊︀', #$228A#$FE00); |
add('⫋︀', #$2ACB#$FE00); |
add('⊋︀', #$228B#$FE00); |
add('⫌︀', #$2ACC#$FE00); |
add('ϑ', #$03D1); |
add('⊲', #$22B2); |
add('⊳', #$22B3); |
add('в', #$0432); |
add('⊢', #$22A2); |
add('∨', #$2228); |
add('⊻', #$22BB); |
add('≚', #$225A); |
add('⋮', #$22EE); |
add('|', #$007C); |
add('|', #$007C); |
add('𝔳', #$D835#$DD33); |
add('⊲', #$22B2); |
add('⊂⃒', #$2282#$20D2); |
add('⊃⃒', #$2283#$20D2); |
add('𝕧', #$D835#$DD67); |
add('∝', #$221D); |
add('⊳', #$22B3); |
add('𝓋', #$D835#$DCCB); |
add('⫋︀', #$2ACB#$FE00); |
add('⊊︀', #$228A#$FE00); |
add('⫌︀', #$2ACC#$FE00); |
add('⊋︀', #$228B#$FE00); |
add('⦚', #$299A); |
add('ŵ', #$0175); |
add('⩟', #$2A5F); |
add('∧', #$2227); |
add('≙', #$2259); |
add('℘', #$2118); |
add('𝔴', #$D835#$DD34); |
add('𝕨', #$D835#$DD68); |
add('℘', #$2118); |
add('≀', #$2240); |
add('≀', #$2240); |
add('𝓌', #$D835#$DCCC); |
add('⋂', #$22C2); |
add('◯', #$25EF); |
add('⋃', #$22C3); |
add('▽', #$25BD); |
add('𝔵', #$D835#$DD35); |
add('⟺', #$27FA); |
add('⟷', #$27F7); |
add('ξ', #$03BE); |
add('⟸', #$27F8); |
add('⟵', #$27F5); |
add('⟼', #$27FC); |
add('⋻', #$22FB); |
add('⨀', #$2A00); |
add('𝕩', #$D835#$DD69); |
add('⨁', #$2A01); |
add('⨂', #$2A02); |
add('⟹', #$27F9); |
add('⟶', #$27F6); |
add('𝓍', #$D835#$DCCD); |
add('⨆', #$2A06); |
add('⨄', #$2A04); |
add('△', #$25B3); |
add('⋁', #$22C1); |
add('⋀', #$22C0); |
add('ý', #$00FD); |
add('я', #$044F); |
add('ŷ', #$0177); |
add('ы', #$044B); |
add('¥', #$00A5); |
add('𝔶', #$D835#$DD36); |
add('ї', #$0457); |
add('𝕪', #$D835#$DD6A); |
add('𝓎', #$D835#$DCCE); |
add('ю', #$044E); |
add('ÿ', #$00FF); |
add('ź', #$017A); |
add('ž', #$017E); |
add('з', #$0437); |
add('ż', #$017C); |
add('ℨ', #$2128); |
add('ζ', #$03B6); |
add('𝔷', #$D835#$DD37); |
add('ж', #$0436); |
add('⇝', #$21DD); |
add('𝕫', #$D835#$DD6B); |
add('𝓏', #$D835#$DCCF); |
add('‍', #$200D); |
add('‌', #$200C); |
end; |
end. |
/VCL_MARKDOWN/MarkdownProcessor.pas |
---|
0,0 → 1,99 |
{ |
Copyright (c) 2011+, Health Intersections Pty Ltd (http://www.healthintersections.com.au) |
All rights reserved. |
Redistribution and use in source and binary forms, with or without modification, |
are permitted provided that the following conditions are met: |
* Redistributions of source code must retain the above copyright notice, this |
list of conditions and the following disclaimer. |
* Redistributions in binary form must reproduce the above copyright notice, |
this list of conditions and the following disclaimer in the documentation |
and/or other materials provided with the distribution. |
* Neither the name of HL7 nor the names of its contributors may be used to |
endorse or promote products derived from this software without specific |
prior written permission. |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND |
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
POSSIBILITY OF SUCH DAMAGE. |
} |
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF} |
{ |
How to process markdown: |
function processMarkdown(markdownSource : String) : String; |
var |
proc : TMarkdownProcessor; |
begin |
proc := TMarkdownProcessor.createDialect(mdDaringFireball); // or flavor of your choice |
try |
proc.unsafe := false; |
result := proc.process(markdownSource); |
finally |
proc.free; |
end; |
end; |
} |
{ |
Contribution Credits |
-------------------- |
- Pavel Stugel - revisions for support of older Delphi versions and FPC |
} |
Unit MarkdownProcessor; |
interface |
uses |
SysUtils; |
Type |
TMarkdownProcessorDialect = (mdDaringFireball, mdCommonMark{, mdAsciiDoc}); |
EMarkdownProcessor = class (Exception); |
TMarkdownProcessor = class abstract |
protected |
function GetAllowUnSafe: boolean; virtual; abstract; |
procedure SetAllowUnSafe(const Value: boolean); virtual; abstract; |
public |
class function CreateDialect(dialect : TMarkdownProcessorDialect) : TMarkdownProcessor; |
// when AllowUnsafe = true, then the processor can create scripts etc. |
property AllowUnsafe : boolean read GetAllowUnSafe write SetAllowUnSafe; |
function process(source : String) : String; virtual; abstract; |
end; |
implementation |
uses |
MarkdownDaringFireball, |
MarkdownCommonMark; |
{ TMarkdownProcessor } |
class function TMarkdownProcessor.CreateDialect(dialect: TMarkdownProcessorDialect): TMarkdownProcessor; |
begin |
case dialect of |
mdDaringFireball : result := TMarkdownDaringFireball.Create; |
mdCommonMark : result := TCommonMarkProcessor.Create; |
else |
raise EMarkdownProcessor.Create('Unknown Markdown dialect'); |
end; |
end; |
end. |
/VCL_MARKDOWN/MarkdownUnicodeUtils.pas |
---|
0,0 → 1,74 |
unit MarkdownUnicodeUtils; |
{ |
Copyright (c) 2011+, Health Intersections Pty Ltd (http://www.healthintersections.com.au) |
All rights reserved. |
Redistribution and use in source and binary forms, with or without modification, |
are permitted provided that the following conditions are met: |
* Redistributions of source code must retain the above copyright notice, this |
list of conditions and the following disclaimer. |
* Redistributions in binary form must reproduce the above copyright notice, |
this list of conditions and the following disclaimer in the documentation |
and/or other materials provided with the distribution. |
* Neither the name of HL7 nor the names of its contributors may be used to |
endorse or promote products derived from this software without specific |
prior written permission. |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND |
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
POSSIBILITY OF SUCH DAMAGE. |
} |
{$IFDEF FPC}{$MODE DELPHI}{$ENDIF} |
interface |
uses |
SysUtils; |
{$IFNDEF FPC} |
type |
UnicodeChar = char; |
{$ENDIF} |
function unicodeChars(s : String) : TArray<UnicodeChar>; |
implementation |
{$IFDEF FPC} |
function unicodeChars(s : String) : TArray<UnicodeChar>; |
var |
i, l: integer; |
us: UnicodeString; |
begin |
us := UTF8Decode(s); |
l := Length(us); |
SetLength(result, l); |
for i:=1 to l do result[i-1] := us[i]; |
end; |
{$ELSE} |
function unicodeChars(s : String) : TArray<UnicodeChar>; |
var |
i : Integer; |
begin |
SetLength(result, length(s)); |
for i := 1 to length(s) do |
result[i-1] := s[i]; |
end; |
{$ENDIF} |
end. |
/VCL_MARKDOWN |
---|
Property changes: |
Added: svn:global-ignores |
+*.dcu |
/Levels/Level 1.lev |
---|
1,99 → 1,29 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
5 |
144 |
32 |
1 |
5 |
144 |
384 |
1 |
5 |
240 |
128 |
1 |
5 |
336 |
288 |
1 |
1 |
576 |
64 |
1 |
1 |
672 |
448 |
1 |
1 |
768 |
256 |
1 |
1 |
864 |
64 |
1 |
1 |
960 |
384 |
1 |
5 |
1104 |
128 |
1 |
5 |
1296 |
32 |
1 |
5 |
1296 |
192 |
1 |
1 |
1392 |
416 |
1 |
1 |
1440 |
384 |
1 |
1 |
1488 |
352 |
1 |
1 |
1536 |
320 |
1 |
1 |
1584 |
320 |
1 |
1 |
1632 |
320 |
1 |
4 |
1632 |
32 |
1 |
1680 |
320 |
1 |
4 |
1872 |
32 |
4 |
1968 |
256 |
4 |
1968 |
384 |
4 |
2112 |
96 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 1 |
Author Daniel Marschall |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 5 144 32 1 |
Enemy 5 144 384 1 |
Enemy 5 240 128 1 |
Enemy 5 336 288 1 |
Enemy 1 576 64 1 |
Enemy 1 672 448 1 |
Enemy 1 768 256 1 |
Enemy 1 864 64 1 |
Enemy 1 960 384 1 |
Enemy 5 1104 128 1 |
Enemy 5 1296 32 1 |
Enemy 5 1296 192 1 |
Enemy 1 1392 416 1 |
Enemy 1 1440 384 1 |
Enemy 1 1488 352 1 |
Enemy 1 1536 320 1 |
Enemy 1 1584 320 1 |
Enemy 4 1632 32 0 |
Enemy 1 1632 320 1 |
Enemy 1 1680 320 1 |
Enemy 4 1872 32 0 |
Enemy 4 1968 256 0 |
Enemy 4 1968 384 0 |
Enemy 4 2112 96 0 |
/Levels/Level 10.lev |
---|
1,147 → 1,41 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
4 |
192 |
32 |
4 |
336 |
288 |
4 |
384 |
96 |
5 |
480 |
416 |
3 |
5 |
480 |
224 |
3 |
5 |
480 |
32 |
3 |
6 |
480 |
128 |
3 |
6 |
480 |
320 |
3 |
4 |
624 |
64 |
4 |
720 |
352 |
1 |
864 |
64 |
3 |
1 |
864 |
352 |
3 |
1 |
864 |
224 |
3 |
1 |
864 |
192 |
3 |
4 |
1008 |
32 |
4 |
1056 |
256 |
4 |
1200 |
64 |
4 |
1248 |
288 |
6 |
1392 |
64 |
3 |
6 |
1392 |
352 |
3 |
6 |
1392 |
192 |
1 |
6 |
1392 |
224 |
1 |
4 |
1536 |
64 |
4 |
1536 |
384 |
4 |
1584 |
256 |
4 |
1680 |
128 |
5 |
1728 |
64 |
1 |
5 |
1728 |
352 |
1 |
4 |
2016 |
32 |
4 |
2016 |
320 |
4 |
2112 |
128 |
4 |
2304 |
32 |
4 |
2352 |
288 |
3 |
2688 |
224 |
8 |
1 |
2688 |
192 |
8 |
1 |
2688 |
256 |
8 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 10 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 4 192 32 0 |
Enemy 4 336 288 0 |
Enemy 4 384 96 0 |
Enemy 5 480 32 3 |
Enemy 6 480 128 3 |
Enemy 5 480 224 3 |
Enemy 6 480 320 3 |
Enemy 5 480 416 3 |
Enemy 4 624 64 0 |
Enemy 4 720 352 0 |
Enemy 1 864 64 3 |
Enemy 1 864 192 3 |
Enemy 1 864 224 3 |
Enemy 1 864 352 3 |
Enemy 4 1008 32 0 |
Enemy 4 1056 256 0 |
Enemy 4 1200 64 0 |
Enemy 4 1248 288 0 |
Enemy 6 1392 64 3 |
Enemy 6 1392 192 1 |
Enemy 6 1392 224 1 |
Enemy 6 1392 352 3 |
Enemy 4 1536 64 0 |
Enemy 4 1536 384 0 |
Enemy 4 1584 256 0 |
Enemy 4 1680 128 0 |
Enemy 5 1728 64 1 |
Enemy 5 1728 352 1 |
Enemy 4 2016 32 0 |
Enemy 4 2016 320 0 |
Enemy 4 2112 128 0 |
Enemy 4 2304 32 0 |
Enemy 4 2352 288 0 |
Enemy 1 2688 192 8 |
Enemy 3 2688 224 8 |
Enemy 1 2688 256 8 |
/Levels/Level 11.lev |
---|
1,139 → 1,39 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
48 |
192 |
1 |
1 |
96 |
256 |
1 |
5 |
240 |
160 |
1 |
5 |
240 |
288 |
6 |
5 |
240 |
128 |
3 |
5 |
288 |
32 |
1 |
3 |
432 |
256 |
1 |
5 |
480 |
352 |
3 |
5 |
528 |
128 |
3 |
3 |
528 |
64 |
3 |
5 |
816 |
32 |
4 |
2 |
864 |
384 |
4 |
2 |
1008 |
96 |
4 |
5 |
1008 |
160 |
4 |
3 |
1152 |
32 |
4 |
1 |
1152 |
384 |
4 |
1 |
1296 |
192 |
4 |
6 |
1344 |
160 |
4 |
6 |
1392 |
64 |
4 |
6 |
1392 |
320 |
4 |
3 |
1488 |
256 |
4 |
6 |
1584 |
384 |
4 |
2 |
1824 |
192 |
4 |
2 |
1872 |
384 |
4 |
2 |
1968 |
32 |
4 |
2 |
2208 |
416 |
4 |
2 |
2352 |
288 |
4 |
1 |
2496 |
384 |
1 |
2 |
2544 |
32 |
4 |
2 |
2736 |
352 |
4 |
6 |
2784 |
64 |
5 |
1 |
2784 |
192 |
1 |
6 |
3024 |
352 |
5 |
7 |
3360 |
256 |
7 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 11 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 48 192 1 |
Enemy 1 96 256 1 |
Enemy 5 240 128 3 |
Enemy 5 240 160 1 |
Enemy 5 240 288 6 |
Enemy 5 288 32 1 |
Enemy 3 432 256 1 |
Enemy 5 480 352 3 |
Enemy 3 528 64 3 |
Enemy 5 528 128 3 |
Enemy 5 816 32 4 |
Enemy 2 864 384 4 |
Enemy 2 1008 96 4 |
Enemy 5 1008 160 4 |
Enemy 3 1152 32 4 |
Enemy 1 1152 384 4 |
Enemy 1 1296 192 4 |
Enemy 6 1344 160 4 |
Enemy 6 1392 64 4 |
Enemy 6 1392 320 4 |
Enemy 3 1488 256 4 |
Enemy 6 1584 384 4 |
Enemy 2 1824 192 4 |
Enemy 2 1872 384 4 |
Enemy 2 1968 32 4 |
Enemy 2 2208 416 4 |
Enemy 2 2352 288 4 |
Enemy 1 2496 384 1 |
Enemy 2 2544 32 4 |
Enemy 2 2736 352 4 |
Enemy 6 2784 64 5 |
Enemy 1 2784 192 1 |
Enemy 6 3024 352 5 |
Enemy 7 3360 256 7 |
/Levels/Level 12.lev |
---|
1,131 → 1,37 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
4 |
288 |
32 |
4 |
384 |
416 |
1 |
480 |
96 |
3 |
1 |
480 |
320 |
3 |
2 |
480 |
160 |
3 |
2 |
480 |
256 |
3 |
3 |
480 |
224 |
3 |
3 |
480 |
192 |
3 |
1 |
480 |
128 |
3 |
1 |
480 |
288 |
3 |
4 |
528 |
64 |
4 |
672 |
288 |
4 |
912 |
64 |
4 |
1008 |
384 |
5 |
1056 |
160 |
3 |
6 |
1056 |
192 |
3 |
5 |
1056 |
224 |
3 |
4 |
1104 |
96 |
4 |
1296 |
32 |
4 |
1392 |
384 |
1 |
1536 |
224 |
3 |
1 |
1536 |
192 |
3 |
4 |
1632 |
64 |
4 |
1680 |
320 |
4 |
1872 |
32 |
4 |
1872 |
416 |
4 |
2160 |
384 |
4 |
2256 |
96 |
3 |
2256 |
224 |
9 |
6 |
2256 |
256 |
9 |
6 |
2256 |
192 |
9 |
4 |
2448 |
352 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 12 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 4 288 32 0 |
Enemy 4 384 416 0 |
Enemy 1 480 96 3 |
Enemy 1 480 128 3 |
Enemy 2 480 160 3 |
Enemy 3 480 192 3 |
Enemy 3 480 224 3 |
Enemy 2 480 256 3 |
Enemy 1 480 288 3 |
Enemy 1 480 320 3 |
Enemy 4 528 64 0 |
Enemy 4 672 288 0 |
Enemy 4 912 64 0 |
Enemy 4 1008 384 0 |
Enemy 5 1056 160 3 |
Enemy 6 1056 192 3 |
Enemy 5 1056 224 3 |
Enemy 4 1104 96 0 |
Enemy 4 1296 32 0 |
Enemy 4 1392 384 0 |
Enemy 1 1536 192 3 |
Enemy 1 1536 224 3 |
Enemy 4 1632 64 0 |
Enemy 4 1680 320 0 |
Enemy 4 1872 32 0 |
Enemy 4 1872 416 0 |
Enemy 4 2160 384 0 |
Enemy 4 2256 96 0 |
Enemy 6 2256 192 9 |
Enemy 3 2256 224 9 |
Enemy 6 2256 256 9 |
Enemy 4 2448 352 0 |
/Levels/Level 13.lev |
---|
1,107 → 1,31 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
336 |
32 |
4 |
1 |
336 |
224 |
4 |
1 |
336 |
416 |
4 |
4 |
336 |
256 |
4 |
384 |
160 |
2 |
432 |
32 |
4 |
2 |
432 |
224 |
4 |
2 |
432 |
416 |
4 |
3 |
528 |
32 |
4 |
3 |
528 |
224 |
4 |
3 |
528 |
416 |
4 |
4 |
528 |
352 |
4 |
672 |
32 |
4 |
720 |
320 |
4 |
960 |
256 |
4 |
1056 |
32 |
6 |
1104 |
160 |
4 |
6 |
1104 |
288 |
4 |
6 |
1104 |
224 |
4 |
4 |
1248 |
320 |
4 |
1392 |
64 |
1 |
1680 |
160 |
10 |
5 |
1680 |
192 |
10 |
1 |
1680 |
224 |
10 |
4 |
1824 |
96 |
4 |
1920 |
320 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 13 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 336 32 4 |
Enemy 1 336 224 4 |
Enemy 4 336 256 0 |
Enemy 1 336 416 4 |
Enemy 4 384 160 0 |
Enemy 2 432 32 4 |
Enemy 2 432 224 4 |
Enemy 2 432 416 4 |
Enemy 3 528 32 4 |
Enemy 3 528 224 4 |
Enemy 4 528 352 0 |
Enemy 3 528 416 4 |
Enemy 4 672 32 0 |
Enemy 4 720 320 0 |
Enemy 4 960 256 0 |
Enemy 4 1056 32 0 |
Enemy 6 1104 160 4 |
Enemy 6 1104 224 4 |
Enemy 6 1104 288 4 |
Enemy 4 1248 320 0 |
Enemy 4 1392 64 0 |
Enemy 1 1680 160 10 |
Enemy 5 1680 192 10 |
Enemy 1 1680 224 10 |
Enemy 4 1824 96 0 |
Enemy 4 1920 320 0 |
/Levels/Level 14.lev |
---|
1,223 → 1,60 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
96 |
224 |
4 |
1 |
240 |
384 |
4 |
1 |
336 |
32 |
4 |
1 |
576 |
160 |
4 |
5 |
672 |
128 |
4 |
5 |
768 |
320 |
4 |
5 |
864 |
128 |
4 |
5 |
1104 |
32 |
4 |
3 |
1104 |
224 |
4 |
5 |
1152 |
416 |
4 |
1 |
1296 |
96 |
3 |
1 |
1392 |
352 |
3 |
6 |
1440 |
192 |
3 |
6 |
1632 |
32 |
3 |
5 |
1632 |
416 |
4 |
3 |
1680 |
128 |
4 |
3 |
1776 |
224 |
4 |
3 |
1824 |
32 |
4 |
5 |
1872 |
320 |
4 |
2 |
1968 |
96 |
4 |
5 |
1968 |
320 |
4 |
2 |
2112 |
160 |
4 |
6 |
2256 |
416 |
4 |
6 |
2256 |
384 |
4 |
3 |
2352 |
32 |
4 |
3 |
2352 |
192 |
4 |
6 |
2400 |
384 |
4 |
6 |
2400 |
448 |
4 |
3 |
2544 |
96 |
4 |
3 |
2688 |
384 |
4 |
2 |
2736 |
64 |
4 |
2 |
2832 |
160 |
4 |
2 |
3024 |
32 |
4 |
5 |
3072 |
224 |
4 |
5 |
3264 |
352 |
5 |
6 |
3312 |
64 |
4 |
6 |
3408 |
384 |
4 |
5 |
3504 |
160 |
5 |
6 |
3552 |
224 |
4 |
6 |
3648 |
384 |
4 |
6 |
3648 |
64 |
4 |
6 |
3744 |
256 |
4 |
6 |
3840 |
448 |
4 |
5 |
3888 |
64 |
5 |
5 |
4032 |
352 |
5 |
5 |
4128 |
192 |
5 |
6 |
4176 |
448 |
4 |
5 |
4224 |
32 |
5 |
2 |
4272 |
160 |
5 |
1 |
4416 |
320 |
3 |
1 |
4464 |
32 |
3 |
2 |
4608 |
416 |
1 |
2 |
4656 |
256 |
1 |
2 |
4656 |
64 |
1 |
7 |
5184 |
224 |
8 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 14 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 96 224 4 |
Enemy 1 240 384 4 |
Enemy 1 336 32 4 |
Enemy 1 576 160 4 |
Enemy 5 672 128 4 |
Enemy 5 768 320 4 |
Enemy 5 864 128 4 |
Enemy 5 1104 32 4 |
Enemy 3 1104 224 4 |
Enemy 5 1152 416 4 |
Enemy 1 1296 96 3 |
Enemy 1 1392 352 3 |
Enemy 6 1440 192 3 |
Enemy 6 1632 32 3 |
Enemy 5 1632 416 4 |
Enemy 3 1680 128 4 |
Enemy 3 1776 224 4 |
Enemy 3 1824 32 4 |
Enemy 5 1872 320 4 |
Enemy 2 1968 96 4 |
Enemy 5 1968 320 4 |
Enemy 2 2112 160 4 |
Enemy 6 2256 384 4 |
Enemy 6 2256 416 4 |
Enemy 3 2352 32 4 |
Enemy 3 2352 192 4 |
Enemy 6 2400 384 4 |
Enemy 6 2400 448 4 |
Enemy 3 2544 96 4 |
Enemy 3 2688 384 4 |
Enemy 2 2736 64 4 |
Enemy 2 2832 160 4 |
Enemy 2 3024 32 4 |
Enemy 5 3072 224 4 |
Enemy 5 3264 352 5 |
Enemy 6 3312 64 4 |
Enemy 6 3408 384 4 |
Enemy 5 3504 160 5 |
Enemy 6 3552 224 4 |
Enemy 6 3648 64 4 |
Enemy 6 3648 384 4 |
Enemy 6 3744 256 4 |
Enemy 6 3840 448 4 |
Enemy 5 3888 64 5 |
Enemy 5 4032 352 5 |
Enemy 5 4128 192 5 |
Enemy 6 4176 448 4 |
Enemy 5 4224 32 5 |
Enemy 2 4272 160 5 |
Enemy 1 4416 320 3 |
Enemy 1 4464 32 3 |
Enemy 2 4608 416 1 |
Enemy 2 4656 64 1 |
Enemy 2 4656 256 1 |
Enemy 7 5184 224 8 |
/Levels/Level 15.lev |
---|
1,203 → 1,55 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
3 |
64 |
6 |
3 |
192 |
224 |
6 |
3 |
432 |
96 |
6 |
3 |
432 |
352 |
6 |
4 |
528 |
64 |
4 |
624 |
288 |
3 |
672 |
256 |
6 |
4 |
768 |
416 |
4 |
768 |
32 |
3 |
1008 |
160 |
6 |
3 |
1056 |
352 |
6 |
3 |
1152 |
96 |
9 |
3 |
1152 |
320 |
9 |
1 |
1344 |
128 |
9 |
1 |
1440 |
352 |
9 |
6 |
1440 |
64 |
9 |
6 |
1632 |
32 |
9 |
6 |
1776 |
160 |
9 |
6 |
1872 |
64 |
9 |
6 |
2064 |
416 |
9 |
6 |
2112 |
128 |
9 |
6 |
2160 |
320 |
9 |
3 |
2208 |
32 |
9 |
3 |
2256 |
416 |
9 |
2 |
2448 |
160 |
9 |
4 |
2496 |
96 |
2 |
2640 |
160 |
9 |
2 |
2640 |
192 |
9 |
4 |
2688 |
416 |
5 |
2832 |
160 |
9 |
2 |
2880 |
64 |
9 |
4 |
2976 |
448 |
5 |
3120 |
288 |
9 |
5 |
3216 |
96 |
9 |
6 |
3216 |
384 |
9 |
6 |
3360 |
64 |
9 |
6 |
3408 |
192 |
9 |
6 |
3456 |
384 |
9 |
1 |
3648 |
64 |
9 |
1 |
3696 |
384 |
9 |
1 |
3744 |
128 |
9 |
1 |
3936 |
64 |
9 |
1 |
3936 |
256 |
9 |
6 |
4128 |
160 |
9 |
6 |
4272 |
96 |
9 |
6 |
4272 |
448 |
9 |
1 |
4368 |
320 |
9 |
1 |
4416 |
32 |
14 |
1 |
4464 |
224 |
9 |
7 |
5232 |
224 |
14 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 15 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 3 0 64 6 |
Enemy 3 192 224 6 |
Enemy 3 432 96 6 |
Enemy 3 432 352 6 |
Enemy 4 528 64 0 |
Enemy 4 624 288 0 |
Enemy 3 672 256 6 |
Enemy 4 768 32 0 |
Enemy 4 768 416 0 |
Enemy 3 1008 160 6 |
Enemy 3 1056 352 6 |
Enemy 3 1152 96 9 |
Enemy 3 1152 320 9 |
Enemy 1 1344 128 9 |
Enemy 6 1440 64 9 |
Enemy 1 1440 352 9 |
Enemy 6 1632 32 9 |
Enemy 6 1776 160 9 |
Enemy 6 1872 64 9 |
Enemy 6 2064 416 9 |
Enemy 6 2112 128 9 |
Enemy 6 2160 320 9 |
Enemy 3 2208 32 9 |
Enemy 3 2256 416 9 |
Enemy 2 2448 160 9 |
Enemy 4 2496 96 0 |
Enemy 2 2640 160 9 |
Enemy 2 2640 192 9 |
Enemy 4 2688 416 0 |
Enemy 5 2832 160 9 |
Enemy 2 2880 64 9 |
Enemy 4 2976 448 0 |
Enemy 5 3120 288 9 |
Enemy 5 3216 96 9 |
Enemy 6 3216 384 9 |
Enemy 6 3360 64 9 |
Enemy 6 3408 192 9 |
Enemy 6 3456 384 9 |
Enemy 1 3648 64 9 |
Enemy 1 3696 384 9 |
Enemy 1 3744 128 9 |
Enemy 1 3936 64 9 |
Enemy 1 3936 256 9 |
Enemy 6 4128 160 9 |
Enemy 6 4272 96 9 |
Enemy 6 4272 448 9 |
Enemy 1 4368 320 9 |
Enemy 1 4416 32 14 |
Enemy 1 4464 224 9 |
Enemy 7 5232 224 14 |
/Levels/Level 16.lev |
---|
1,303 → 1,80 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
4 |
192 |
64 |
4 |
192 |
384 |
4 |
240 |
256 |
1 |
384 |
32 |
1 |
1 |
384 |
416 |
1 |
1 |
384 |
224 |
1 |
1 |
384 |
288 |
1 |
1 |
384 |
160 |
1 |
1 |
432 |
64 |
1 |
1 |
432 |
384 |
1 |
1 |
432 |
224 |
1 |
1 |
432 |
256 |
1 |
1 |
432 |
192 |
1 |
4 |
576 |
160 |
4 |
576 |
416 |
4 |
624 |
32 |
2 |
768 |
32 |
1 |
2 |
768 |
160 |
1 |
2 |
768 |
224 |
1 |
2 |
768 |
288 |
1 |
2 |
768 |
416 |
1 |
2 |
816 |
64 |
1 |
2 |
816 |
192 |
1 |
2 |
816 |
224 |
1 |
2 |
816 |
256 |
1 |
2 |
816 |
384 |
1 |
4 |
912 |
64 |
4 |
960 |
384 |
4 |
1152 |
160 |
3 |
1200 |
32 |
1 |
3 |
1200 |
160 |
1 |
3 |
1200 |
288 |
1 |
3 |
1200 |
224 |
1 |
3 |
1200 |
416 |
1 |
3 |
1248 |
64 |
1 |
3 |
1248 |
192 |
1 |
3 |
1248 |
224 |
1 |
3 |
1248 |
256 |
1 |
3 |
1248 |
384 |
1 |
4 |
1488 |
32 |
4 |
1536 |
256 |
4 |
1584 |
352 |
5 |
1776 |
32 |
1 |
5 |
1776 |
160 |
1 |
5 |
1776 |
288 |
1 |
5 |
1776 |
224 |
1 |
5 |
1776 |
416 |
1 |
5 |
1824 |
64 |
1 |
5 |
1824 |
192 |
1 |
5 |
1824 |
224 |
1 |
5 |
1824 |
256 |
1 |
5 |
1824 |
384 |
1 |
4 |
1968 |
32 |
4 |
2064 |
96 |
4 |
2112 |
224 |
4 |
2112 |
288 |
6 |
2256 |
32 |
1 |
6 |
2256 |
160 |
1 |
6 |
2256 |
288 |
1 |
6 |
2256 |
224 |
1 |
6 |
2256 |
416 |
1 |
6 |
2304 |
64 |
1 |
6 |
2304 |
192 |
1 |
6 |
2304 |
224 |
1 |
6 |
2304 |
256 |
1 |
6 |
2304 |
384 |
1 |
4 |
2496 |
64 |
4 |
2496 |
384 |
4 |
2640 |
224 |
5 |
2832 |
192 |
15 |
5 |
2832 |
224 |
15 |
5 |
2832 |
256 |
15 |
5 |
2832 |
288 |
15 |
5 |
2832 |
320 |
15 |
5 |
2832 |
160 |
15 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 16 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 4 192 64 0 |
Enemy 4 192 384 0 |
Enemy 4 240 256 0 |
Enemy 1 384 32 1 |
Enemy 1 384 160 1 |
Enemy 1 384 224 1 |
Enemy 1 384 288 1 |
Enemy 1 384 416 1 |
Enemy 1 432 64 1 |
Enemy 1 432 192 1 |
Enemy 1 432 224 1 |
Enemy 1 432 256 1 |
Enemy 1 432 384 1 |
Enemy 4 576 160 0 |
Enemy 4 576 416 0 |
Enemy 4 624 32 0 |
Enemy 2 768 32 1 |
Enemy 2 768 160 1 |
Enemy 2 768 224 1 |
Enemy 2 768 288 1 |
Enemy 2 768 416 1 |
Enemy 2 816 64 1 |
Enemy 2 816 192 1 |
Enemy 2 816 224 1 |
Enemy 2 816 256 1 |
Enemy 2 816 384 1 |
Enemy 4 912 64 0 |
Enemy 4 960 384 0 |
Enemy 4 1152 160 0 |
Enemy 3 1200 32 1 |
Enemy 3 1200 160 1 |
Enemy 3 1200 224 1 |
Enemy 3 1200 288 1 |
Enemy 3 1200 416 1 |
Enemy 3 1248 64 1 |
Enemy 3 1248 192 1 |
Enemy 3 1248 224 1 |
Enemy 3 1248 256 1 |
Enemy 3 1248 384 1 |
Enemy 4 1488 32 0 |
Enemy 4 1536 256 0 |
Enemy 4 1584 352 0 |
Enemy 5 1776 32 1 |
Enemy 5 1776 160 1 |
Enemy 5 1776 224 1 |
Enemy 5 1776 288 1 |
Enemy 5 1776 416 1 |
Enemy 5 1824 64 1 |
Enemy 5 1824 192 1 |
Enemy 5 1824 224 1 |
Enemy 5 1824 256 1 |
Enemy 5 1824 384 1 |
Enemy 4 1968 32 0 |
Enemy 4 2064 96 0 |
Enemy 4 2112 224 0 |
Enemy 4 2112 288 0 |
Enemy 6 2256 32 1 |
Enemy 6 2256 160 1 |
Enemy 6 2256 224 1 |
Enemy 6 2256 288 1 |
Enemy 6 2256 416 1 |
Enemy 6 2304 64 1 |
Enemy 6 2304 192 1 |
Enemy 6 2304 224 1 |
Enemy 6 2304 256 1 |
Enemy 6 2304 384 1 |
Enemy 4 2496 64 0 |
Enemy 4 2496 384 0 |
Enemy 4 2640 224 0 |
Enemy 5 2832 160 15 |
Enemy 5 2832 192 15 |
Enemy 5 2832 224 15 |
Enemy 5 2832 256 15 |
Enemy 5 2832 288 15 |
Enemy 5 2832 320 15 |
/Levels/Level 17.lev |
---|
1,171 → 1,47 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
3 |
144 |
128 |
1 |
3 |
336 |
352 |
1 |
4 |
432 |
128 |
4 |
480 |
3 |
528 |
224 |
12 |
3 |
768 |
64 |
12 |
4 |
768 |
192 |
3 |
864 |
416 |
12 |
3 |
912 |
96 |
12 |
4 |
912 |
192 |
5 |
1152 |
160 |
12 |
5 |
1200 |
384 |
12 |
3 |
1248 |
256 |
12 |
3 |
1296 |
64 |
12 |
4 |
1392 |
320 |
4 |
1392 |
64 |
4 |
1536 |
224 |
5 |
1536 |
416 |
12 |
4 |
1584 |
32 |
3 |
1632 |
352 |
12 |
3 |
1632 |
192 |
12 |
3 |
1872 |
160 |
12 |
3 |
2064 |
320 |
12 |
1 |
2304 |
64 |
12 |
1 |
2400 |
448 |
12 |
1 |
2496 |
224 |
12 |
5 |
2592 |
32 |
14 |
5 |
2784 |
256 |
12 |
5 |
2784 |
32 |
14 |
5 |
2832 |
384 |
12 |
2 |
2976 |
384 |
16 |
2 |
3024 |
256 |
16 |
4 |
3072 |
96 |
4 |
3216 |
320 |
4 |
3312 |
96 |
4 |
3360 |
288 |
2 |
3408 |
32 |
16 |
2 |
3504 |
448 |
16 |
2 |
3648 |
192 |
12 |
2 |
3648 |
320 |
12 |
3 |
3648 |
32 |
12 |
7 |
4368 |
256 |
16 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 17 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 3 144 128 1 |
Enemy 3 336 352 1 |
Enemy 4 432 128 0 |
Enemy 4 480 0 0 |
Enemy 3 528 224 12 |
Enemy 3 768 64 12 |
Enemy 4 768 192 0 |
Enemy 3 864 416 12 |
Enemy 3 912 96 12 |
Enemy 4 912 192 0 |
Enemy 5 1152 160 12 |
Enemy 5 1200 384 12 |
Enemy 3 1248 256 12 |
Enemy 3 1296 64 12 |
Enemy 4 1392 64 0 |
Enemy 4 1392 320 0 |
Enemy 4 1536 224 0 |
Enemy 5 1536 416 12 |
Enemy 4 1584 32 0 |
Enemy 3 1632 192 12 |
Enemy 3 1632 352 12 |
Enemy 3 1872 160 12 |
Enemy 3 2064 320 12 |
Enemy 1 2304 64 12 |
Enemy 1 2400 448 12 |
Enemy 1 2496 224 12 |
Enemy 5 2592 32 14 |
Enemy 5 2784 32 14 |
Enemy 5 2784 256 12 |
Enemy 5 2832 384 12 |
Enemy 2 2976 384 16 |
Enemy 2 3024 256 16 |
Enemy 4 3072 96 0 |
Enemy 4 3216 320 0 |
Enemy 4 3312 96 0 |
Enemy 4 3360 288 0 |
Enemy 2 3408 32 16 |
Enemy 2 3504 448 16 |
Enemy 3 3648 32 12 |
Enemy 2 3648 192 12 |
Enemy 2 3648 320 12 |
Enemy 7 4368 256 16 |
/Levels/Level 18.lev |
---|
1,255 → 1,68 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
6 |
144 |
160 |
1 |
6 |
192 |
384 |
1 |
6 |
240 |
32 |
1 |
6 |
336 |
160 |
1 |
6 |
384 |
384 |
1 |
6 |
480 |
192 |
1 |
2 |
672 |
96 |
1 |
2 |
720 |
32 |
1 |
3 |
1008 |
352 |
3 |
3 |
1248 |
448 |
3 |
3 |
1392 |
128 |
3 |
5 |
1536 |
352 |
5 |
5 |
1584 |
64 |
5 |
5 |
1632 |
416 |
5 |
5 |
1680 |
352 |
5 |
5 |
1728 |
64 |
5 |
5 |
1824 |
448 |
5 |
6 |
2064 |
32 |
6 |
6 |
2064 |
128 |
6 |
6 |
2064 |
256 |
6 |
3 |
2976 |
64 |
5 |
3 |
3024 |
160 |
5 |
3 |
3024 |
288 |
5 |
3 |
3120 |
384 |
5 |
2 |
3456 |
32 |
5 |
2 |
3456 |
128 |
5 |
2 |
3552 |
416 |
5 |
5 |
3744 |
160 |
3 |
5 |
3936 |
96 |
3 |
5 |
3984 |
384 |
3 |
1 |
4368 |
256 |
3 |
1 |
4416 |
32 |
3 |
1 |
4416 |
416 |
3 |
6 |
4800 |
448 |
9 |
6 |
4896 |
128 |
3 |
6 |
5040 |
448 |
6 |
6 |
5040 |
32 |
6 |
3 |
5328 |
64 |
2 |
3 |
5472 |
256 |
1 |
3 |
5472 |
160 |
1 |
3 |
5472 |
320 |
1 |
1 |
5904 |
448 |
8 |
1 |
5904 |
416 |
8 |
1 |
5904 |
384 |
8 |
1 |
5904 |
320 |
8 |
1 |
5904 |
352 |
8 |
1 |
5904 |
288 |
8 |
1 |
6000 |
320 |
8 |
1 |
6000 |
352 |
8 |
1 |
6000 |
384 |
8 |
1 |
6000 |
416 |
8 |
1 |
6000 |
448 |
8 |
1 |
6000 |
288 |
8 |
1 |
6048 |
448 |
8 |
1 |
6048 |
288 |
8 |
1 |
6048 |
352 |
8 |
1 |
6048 |
384 |
8 |
1 |
6096 |
320 |
8 |
1 |
6096 |
352 |
8 |
1 |
6096 |
384 |
8 |
1 |
6096 |
416 |
8 |
1 |
6096 |
448 |
8 |
1 |
6096 |
288 |
8 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 18 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 6 144 160 1 |
Enemy 6 192 384 1 |
Enemy 6 240 32 1 |
Enemy 6 336 160 1 |
Enemy 6 384 384 1 |
Enemy 6 480 192 1 |
Enemy 2 672 96 1 |
Enemy 2 720 32 1 |
Enemy 3 1008 352 3 |
Enemy 3 1248 448 3 |
Enemy 3 1392 128 3 |
Enemy 5 1536 352 5 |
Enemy 5 1584 64 5 |
Enemy 5 1632 416 5 |
Enemy 5 1680 352 5 |
Enemy 5 1728 64 5 |
Enemy 5 1824 448 5 |
Enemy 6 2064 32 6 |
Enemy 6 2064 128 6 |
Enemy 6 2064 256 6 |
Enemy 3 2976 64 5 |
Enemy 3 3024 160 5 |
Enemy 3 3024 288 5 |
Enemy 3 3120 384 5 |
Enemy 2 3456 32 5 |
Enemy 2 3456 128 5 |
Enemy 2 3552 416 5 |
Enemy 5 3744 160 3 |
Enemy 5 3936 96 3 |
Enemy 5 3984 384 3 |
Enemy 1 4368 256 3 |
Enemy 1 4416 32 3 |
Enemy 1 4416 416 3 |
Enemy 6 4800 448 9 |
Enemy 6 4896 128 3 |
Enemy 6 5040 32 6 |
Enemy 6 5040 448 6 |
Enemy 3 5328 64 2 |
Enemy 3 5472 160 1 |
Enemy 3 5472 256 1 |
Enemy 3 5472 320 1 |
Enemy 1 5904 288 8 |
Enemy 1 5904 320 8 |
Enemy 1 5904 352 8 |
Enemy 1 5904 384 8 |
Enemy 1 5904 416 8 |
Enemy 1 5904 448 8 |
Enemy 1 6000 288 8 |
Enemy 1 6000 320 8 |
Enemy 1 6000 352 8 |
Enemy 1 6000 384 8 |
Enemy 1 6000 416 8 |
Enemy 1 6000 448 8 |
Enemy 1 6048 288 8 |
Enemy 1 6048 352 8 |
Enemy 1 6048 384 8 |
Enemy 1 6048 448 8 |
Enemy 1 6096 288 8 |
Enemy 1 6096 320 8 |
Enemy 1 6096 352 8 |
Enemy 1 6096 384 8 |
Enemy 1 6096 416 8 |
Enemy 1 6096 448 8 |
/Levels/Level 19.lev |
---|
1,263 → 1,70 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
240 |
128 |
1 |
1 |
288 |
64 |
1 |
1 |
480 |
288 |
1 |
1 |
528 |
64 |
1 |
5 |
720 |
128 |
7 |
5 |
864 |
320 |
7 |
5 |
912 |
416 |
7 |
5 |
960 |
32 |
7 |
6 |
1200 |
352 |
7 |
6 |
1296 |
7 |
6 |
1296 |
256 |
7 |
6 |
1392 |
416 |
7 |
6 |
1488 |
96 |
7 |
2 |
1728 |
384 |
7 |
2 |
1824 |
224 |
7 |
2 |
1872 |
448 |
7 |
4 |
2304 |
128 |
4 |
2304 |
352 |
2 |
2688 |
352 |
7 |
4 |
2736 |
64 |
6 |
2832 |
448 |
7 |
6 |
2832 |
7 |
3 |
3072 |
320 |
7 |
3 |
3168 |
160 |
7 |
3 |
3168 |
384 |
7 |
5 |
3456 |
32 |
7 |
5 |
3600 |
416 |
7 |
4 |
3696 |
224 |
4 |
3792 |
416 |
4 |
3840 |
64 |
3 |
4032 |
320 |
7 |
3 |
4032 |
448 |
7 |
3 |
4080 |
96 |
7 |
4 |
4176 |
448 |
1 |
4416 |
192 |
7 |
1 |
4608 |
96 |
7 |
1 |
4608 |
416 |
7 |
3 |
4704 |
288 |
5 |
5 |
4896 |
64 |
5 |
1 |
4944 |
448 |
5 |
3 |
4992 |
416 |
5 |
5 |
5184 |
32 |
5 |
5 |
5184 |
96 |
5 |
5 |
5232 |
224 |
5 |
2 |
5952 |
64 |
5 |
2 |
5952 |
96 |
5 |
2 |
5952 |
224 |
5 |
2 |
5952 |
416 |
5 |
2 |
6048 |
416 |
5 |
6 |
6240 |
128 |
5 |
6 |
6240 |
192 |
5 |
6 |
6240 |
416 |
5 |
6 |
6288 |
416 |
5 |
6 |
6288 |
384 |
5 |
4 |
6384 |
64 |
4 |
6480 |
128 |
4 |
6528 |
256 |
6 |
6576 |
32 |
7 |
6 |
6672 |
96 |
7 |
6 |
6672 |
256 |
7 |
5 |
6816 |
7 |
5 |
6864 |
96 |
7 |
5 |
6960 |
384 |
7 |
5 |
7104 |
416 |
7 |
7 |
7296 |
256 |
16 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 19 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 240 128 1 |
Enemy 1 288 64 1 |
Enemy 1 480 288 1 |
Enemy 1 528 64 1 |
Enemy 5 720 128 7 |
Enemy 5 864 320 7 |
Enemy 5 912 416 7 |
Enemy 5 960 32 7 |
Enemy 6 1200 352 7 |
Enemy 6 1296 0 7 |
Enemy 6 1296 256 7 |
Enemy 6 1392 416 7 |
Enemy 6 1488 96 7 |
Enemy 2 1728 384 7 |
Enemy 2 1824 224 7 |
Enemy 2 1872 448 7 |
Enemy 4 2304 128 0 |
Enemy 4 2304 352 0 |
Enemy 2 2688 352 7 |
Enemy 4 2736 64 0 |
Enemy 6 2832 0 7 |
Enemy 6 2832 448 7 |
Enemy 3 3072 320 7 |
Enemy 3 3168 160 7 |
Enemy 3 3168 384 7 |
Enemy 5 3456 32 7 |
Enemy 5 3600 416 7 |
Enemy 4 3696 224 0 |
Enemy 4 3792 416 0 |
Enemy 4 3840 64 0 |
Enemy 3 4032 320 7 |
Enemy 3 4032 448 7 |
Enemy 3 4080 96 7 |
Enemy 4 4176 448 0 |
Enemy 1 4416 192 7 |
Enemy 1 4608 96 7 |
Enemy 1 4608 416 7 |
Enemy 3 4704 288 5 |
Enemy 5 4896 64 5 |
Enemy 1 4944 448 5 |
Enemy 3 4992 416 5 |
Enemy 5 5184 32 5 |
Enemy 5 5184 96 5 |
Enemy 5 5232 224 5 |
Enemy 2 5952 64 5 |
Enemy 2 5952 96 5 |
Enemy 2 5952 224 5 |
Enemy 2 5952 416 5 |
Enemy 2 6048 416 5 |
Enemy 6 6240 128 5 |
Enemy 6 6240 192 5 |
Enemy 6 6240 416 5 |
Enemy 6 6288 384 5 |
Enemy 6 6288 416 5 |
Enemy 4 6384 64 0 |
Enemy 4 6480 128 0 |
Enemy 4 6528 256 0 |
Enemy 6 6576 32 7 |
Enemy 6 6672 96 7 |
Enemy 6 6672 256 7 |
Enemy 5 6816 0 7 |
Enemy 5 6864 96 7 |
Enemy 5 6960 384 7 |
Enemy 5 7104 416 7 |
Enemy 7 7296 256 16 |
/Levels/Level 2.lev |
---|
1,79 → 1,24 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
432 |
64 |
1 |
1 |
432 |
384 |
1 |
1 |
432 |
224 |
1 |
1 |
912 |
64 |
1 |
1 |
912 |
384 |
1 |
1 |
912 |
224 |
1 |
1 |
1392 |
64 |
1 |
1 |
1392 |
224 |
1 |
1 |
1392 |
384 |
1 |
1 |
1872 |
64 |
1 |
1 |
1872 |
224 |
1 |
1 |
1872 |
384 |
1 |
5 |
2256 |
128 |
1 |
5 |
2400 |
320 |
1 |
5 |
2496 |
64 |
1 |
5 |
2544 |
256 |
1 |
3 |
3120 |
192 |
3 |
3 |
3120 |
224 |
3 |
3 |
3120 |
256 |
3 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 2 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 432 64 1 |
Enemy 1 432 224 1 |
Enemy 1 432 384 1 |
Enemy 1 912 64 1 |
Enemy 1 912 224 1 |
Enemy 1 912 384 1 |
Enemy 1 1392 64 1 |
Enemy 1 1392 224 1 |
Enemy 1 1392 384 1 |
Enemy 1 1872 64 1 |
Enemy 1 1872 224 1 |
Enemy 1 1872 384 1 |
Enemy 5 2256 128 1 |
Enemy 5 2400 320 1 |
Enemy 5 2496 64 1 |
Enemy 5 2544 256 1 |
Enemy 3 3120 192 3 |
Enemy 3 3120 224 3 |
Enemy 3 3120 256 3 |
/Levels/Level 20.lev |
---|
1,195 → 1,53 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
96 |
352 |
1 |
1 |
240 |
224 |
1 |
1 |
528 |
32 |
1 |
1 |
576 |
416 |
1 |
1 |
624 |
448 |
8 |
1 |
960 |
8 |
1 |
1008 |
448 |
8 |
1 |
1104 |
256 |
8 |
1 |
1296 |
448 |
8 |
1 |
1344 |
8 |
5 |
1632 |
416 |
8 |
5 |
1776 |
32 |
8 |
5 |
1872 |
224 |
8 |
5 |
2064 |
448 |
8 |
5 |
2064 |
64 |
8 |
5 |
2112 |
288 |
8 |
2 |
2160 |
96 |
1 |
2 |
2448 |
288 |
1 |
2 |
2544 |
96 |
1 |
2 |
2640 |
448 |
1 |
6 |
2880 |
8 |
6 |
2880 |
448 |
8 |
6 |
3024 |
384 |
8 |
6 |
3024 |
96 |
8 |
4 |
3024 |
32 |
4 |
3120 |
416 |
4 |
3408 |
64 |
6 |
3456 |
256 |
8 |
3 |
3696 |
160 |
5 |
1 |
4080 |
352 |
5 |
1 |
4224 |
64 |
5 |
1 |
4320 |
288 |
5 |
1 |
4464 |
160 |
5 |
1 |
4608 |
448 |
5 |
1 |
4704 |
288 |
1 |
1 |
4848 |
96 |
1 |
3 |
4992 |
64 |
1 |
3 |
4992 |
384 |
6 |
3 |
5088 |
256 |
1 |
6 |
5472 |
416 |
6 |
4 |
5616 |
224 |
6 |
5616 |
448 |
6 |
4 |
5712 |
32 |
6 |
5712 |
416 |
6 |
4 |
5808 |
416 |
6 |
5952 |
96 |
6 |
7 |
6000 |
224 |
6 |
6 |
6000 |
128 |
6 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 20 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 96 352 1 |
Enemy 1 240 224 1 |
Enemy 1 528 32 1 |
Enemy 1 576 416 1 |
Enemy 1 624 448 8 |
Enemy 1 960 0 8 |
Enemy 1 1008 448 8 |
Enemy 1 1104 256 8 |
Enemy 1 1296 448 8 |
Enemy 1 1344 0 8 |
Enemy 5 1632 416 8 |
Enemy 5 1776 32 8 |
Enemy 5 1872 224 8 |
Enemy 5 2064 64 8 |
Enemy 5 2064 448 8 |
Enemy 5 2112 288 8 |
Enemy 2 2160 96 1 |
Enemy 2 2448 288 1 |
Enemy 2 2544 96 1 |
Enemy 2 2640 448 1 |
Enemy 6 2880 0 8 |
Enemy 6 2880 448 8 |
Enemy 4 3024 32 0 |
Enemy 6 3024 96 8 |
Enemy 6 3024 384 8 |
Enemy 4 3120 416 0 |
Enemy 4 3408 64 0 |
Enemy 6 3456 256 8 |
Enemy 3 3696 160 5 |
Enemy 1 4080 352 5 |
Enemy 1 4224 64 5 |
Enemy 1 4320 288 5 |
Enemy 1 4464 160 5 |
Enemy 1 4608 448 5 |
Enemy 1 4704 288 1 |
Enemy 1 4848 96 1 |
Enemy 3 4992 64 1 |
Enemy 3 4992 384 6 |
Enemy 3 5088 256 1 |
Enemy 6 5472 416 6 |
Enemy 4 5616 224 0 |
Enemy 6 5616 448 6 |
Enemy 4 5712 32 0 |
Enemy 6 5712 416 6 |
Enemy 4 5808 416 0 |
Enemy 6 5952 96 6 |
Enemy 6 6000 128 6 |
Enemy 7 6000 224 6 |
/Levels/Level 21.lev |
---|
1,183 → 1,50 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
6 |
96 |
64 |
10 |
6 |
240 |
320 |
10 |
6 |
432 |
224 |
10 |
4 |
432 |
32 |
4 |
528 |
352 |
5 |
768 |
384 |
14 |
5 |
816 |
128 |
14 |
5 |
816 |
320 |
14 |
5 |
816 |
384 |
14 |
5 |
864 |
352 |
14 |
5 |
960 |
416 |
14 |
5 |
960 |
384 |
14 |
5 |
1104 |
384 |
14 |
5 |
1104 |
96 |
14 |
3 |
1104 |
256 |
14 |
3 |
1824 |
416 |
7 |
3 |
2016 |
96 |
7 |
3 |
2016 |
256 |
7 |
3 |
2304 |
32 |
7 |
3 |
2304 |
128 |
7 |
3 |
2304 |
352 |
1 |
2 |
2592 |
224 |
7 |
2 |
2640 |
192 |
7 |
2 |
2640 |
256 |
7 |
2 |
2688 |
256 |
7 |
2 |
2688 |
192 |
7 |
2 |
2736 |
224 |
7 |
3 |
2928 |
448 |
1 |
2 |
3120 |
448 |
6 |
2 |
3456 |
448 |
6 |
2 |
3504 |
32 |
6 |
5 |
3504 |
128 |
6 |
2 |
3600 |
448 |
6 |
2 |
3696 |
448 |
6 |
2 |
3696 |
384 |
6 |
5 |
3744 |
128 |
6 |
6 |
3792 |
256 |
3 |
6 |
3840 |
288 |
3 |
6 |
3936 |
224 |
3 |
6 |
4128 |
192 |
3 |
3 |
4272 |
32 |
3 |
3 |
4272 |
160 |
3 |
3 |
4464 |
416 |
3 |
3 |
4608 |
192 |
3 |
3 |
4656 |
352 |
3 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 21 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 6 96 64 10 |
Enemy 6 240 320 10 |
Enemy 4 432 32 0 |
Enemy 6 432 224 10 |
Enemy 4 528 352 0 |
Enemy 5 768 384 14 |
Enemy 5 816 128 14 |
Enemy 5 816 320 14 |
Enemy 5 816 384 14 |
Enemy 5 864 352 14 |
Enemy 5 960 384 14 |
Enemy 5 960 416 14 |
Enemy 5 1104 96 14 |
Enemy 3 1104 256 14 |
Enemy 5 1104 384 14 |
Enemy 3 1824 416 7 |
Enemy 3 2016 96 7 |
Enemy 3 2016 256 7 |
Enemy 3 2304 32 7 |
Enemy 3 2304 128 7 |
Enemy 3 2304 352 1 |
Enemy 2 2592 224 7 |
Enemy 2 2640 192 7 |
Enemy 2 2640 256 7 |
Enemy 2 2688 192 7 |
Enemy 2 2688 256 7 |
Enemy 2 2736 224 7 |
Enemy 3 2928 448 1 |
Enemy 2 3120 448 6 |
Enemy 2 3456 448 6 |
Enemy 2 3504 32 6 |
Enemy 5 3504 128 6 |
Enemy 2 3600 448 6 |
Enemy 2 3696 384 6 |
Enemy 2 3696 448 6 |
Enemy 5 3744 128 6 |
Enemy 6 3792 256 3 |
Enemy 6 3840 288 3 |
Enemy 6 3936 224 3 |
Enemy 6 4128 192 3 |
Enemy 3 4272 32 3 |
Enemy 3 4272 160 3 |
Enemy 3 4464 416 3 |
Enemy 3 4608 192 3 |
Enemy 3 4656 352 3 |
/Levels/Level 22.lev |
---|
1,255 → 1,68 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
384 |
32 |
1 |
1 |
384 |
64 |
1 |
1 |
384 |
96 |
1 |
1 |
384 |
416 |
1 |
1 |
384 |
384 |
1 |
1 |
384 |
352 |
1 |
5 |
384 |
192 |
1 |
5 |
384 |
224 |
1 |
5 |
384 |
256 |
1 |
6 |
432 |
192 |
1 |
6 |
432 |
224 |
1 |
6 |
432 |
256 |
1 |
2 |
432 |
32 |
1 |
2 |
432 |
64 |
1 |
2 |
432 |
96 |
1 |
2 |
432 |
352 |
1 |
2 |
432 |
384 |
1 |
2 |
432 |
416 |
1 |
5 |
480 |
192 |
1 |
5 |
480 |
224 |
1 |
5 |
480 |
256 |
1 |
3 |
480 |
32 |
1 |
3 |
480 |
96 |
1 |
3 |
480 |
64 |
1 |
3 |
480 |
352 |
1 |
3 |
480 |
384 |
1 |
3 |
480 |
416 |
1 |
1 |
576 |
32 |
1 |
1 |
576 |
64 |
1 |
1 |
576 |
96 |
1 |
1 |
576 |
352 |
1 |
1 |
576 |
384 |
1 |
1 |
576 |
416 |
1 |
5 |
576 |
192 |
1 |
5 |
576 |
224 |
1 |
5 |
576 |
256 |
1 |
6 |
624 |
192 |
1 |
6 |
624 |
224 |
1 |
6 |
624 |
256 |
1 |
2 |
624 |
32 |
1 |
2 |
624 |
64 |
1 |
2 |
624 |
96 |
1 |
2 |
624 |
352 |
1 |
2 |
624 |
384 |
1 |
2 |
624 |
416 |
1 |
3 |
672 |
32 |
1 |
3 |
672 |
64 |
1 |
3 |
672 |
96 |
1 |
3 |
672 |
352 |
1 |
3 |
672 |
384 |
1 |
3 |
672 |
416 |
1 |
5 |
672 |
192 |
1 |
5 |
672 |
224 |
1 |
5 |
672 |
256 |
1 |
4 |
960 |
96 |
4 |
1056 |
32 |
4 |
1056 |
320 |
4 |
1200 |
256 |
4 |
1248 |
384 |
4 |
1392 |
288 |
4 |
1488 |
64 |
4 |
1680 |
384 |
3 |
1728 |
224 |
10 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 22 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 384 32 1 |
Enemy 1 384 64 1 |
Enemy 1 384 96 1 |
Enemy 5 384 192 1 |
Enemy 5 384 224 1 |
Enemy 5 384 256 1 |
Enemy 1 384 352 1 |
Enemy 1 384 384 1 |
Enemy 1 384 416 1 |
Enemy 2 432 32 1 |
Enemy 2 432 64 1 |
Enemy 2 432 96 1 |
Enemy 6 432 192 1 |
Enemy 6 432 224 1 |
Enemy 6 432 256 1 |
Enemy 2 432 352 1 |
Enemy 2 432 384 1 |
Enemy 2 432 416 1 |
Enemy 3 480 32 1 |
Enemy 3 480 64 1 |
Enemy 3 480 96 1 |
Enemy 5 480 192 1 |
Enemy 5 480 224 1 |
Enemy 5 480 256 1 |
Enemy 3 480 352 1 |
Enemy 3 480 384 1 |
Enemy 3 480 416 1 |
Enemy 1 576 32 1 |
Enemy 1 576 64 1 |
Enemy 1 576 96 1 |
Enemy 5 576 192 1 |
Enemy 5 576 224 1 |
Enemy 5 576 256 1 |
Enemy 1 576 352 1 |
Enemy 1 576 384 1 |
Enemy 1 576 416 1 |
Enemy 2 624 32 1 |
Enemy 2 624 64 1 |
Enemy 2 624 96 1 |
Enemy 6 624 192 1 |
Enemy 6 624 224 1 |
Enemy 6 624 256 1 |
Enemy 2 624 352 1 |
Enemy 2 624 384 1 |
Enemy 2 624 416 1 |
Enemy 3 672 32 1 |
Enemy 3 672 64 1 |
Enemy 3 672 96 1 |
Enemy 5 672 192 1 |
Enemy 5 672 224 1 |
Enemy 5 672 256 1 |
Enemy 3 672 352 1 |
Enemy 3 672 384 1 |
Enemy 3 672 416 1 |
Enemy 4 960 96 0 |
Enemy 4 1056 32 0 |
Enemy 4 1056 320 0 |
Enemy 4 1200 256 0 |
Enemy 4 1248 384 0 |
Enemy 4 1392 288 0 |
Enemy 4 1488 64 0 |
Enemy 4 1680 384 0 |
Enemy 3 1728 224 10 |
/Levels/Level 23.lev |
---|
1,251 → 1,67 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
7 |
432 |
224 |
12 |
3 |
768 |
64 |
40 |
3 |
816 |
256 |
40 |
3 |
864 |
384 |
40 |
5 |
1056 |
96 |
40 |
5 |
1248 |
416 |
15 |
5 |
1296 |
32 |
40 |
5 |
1296 |
128 |
40 |
2 |
1440 |
256 |
15 |
2 |
2160 |
128 |
15 |
2 |
2208 |
352 |
15 |
2 |
2256 |
64 |
15 |
2 |
2304 |
288 |
15 |
2 |
2352 |
15 |
2 |
2352 |
224 |
15 |
2 |
2496 |
352 |
15 |
6 |
2928 |
320 |
3 |
6 |
2928 |
256 |
3 |
6 |
2928 |
224 |
3 |
6 |
2928 |
288 |
3 |
6 |
2928 |
192 |
3 |
6 |
2928 |
160 |
3 |
6 |
2928 |
128 |
3 |
6 |
2976 |
128 |
3 |
6 |
2976 |
224 |
3 |
6 |
3024 |
128 |
3 |
6 |
3024 |
224 |
3 |
6 |
3072 |
128 |
3 |
6 |
3072 |
160 |
3 |
6 |
3072 |
192 |
3 |
6 |
3072 |
224 |
3 |
6 |
3072 |
288 |
3 |
6 |
3072 |
256 |
3 |
6 |
3072 |
320 |
3 |
6 |
3216 |
192 |
3 |
6 |
3216 |
224 |
3 |
6 |
3216 |
256 |
3 |
6 |
3216 |
288 |
3 |
6 |
3216 |
320 |
3 |
6 |
3264 |
224 |
3 |
6 |
3312 |
224 |
3 |
6 |
3312 |
256 |
3 |
6 |
3312 |
288 |
3 |
6 |
3312 |
320 |
3 |
6 |
3408 |
224 |
3 |
6 |
3408 |
256 |
3 |
6 |
3408 |
320 |
3 |
6 |
3408 |
288 |
3 |
6 |
3456 |
224 |
3 |
6 |
3456 |
320 |
3 |
6 |
3504 |
224 |
3 |
6 |
3504 |
320 |
3 |
6 |
3504 |
128 |
3 |
6 |
3504 |
160 |
3 |
6 |
3504 |
192 |
3 |
6 |
3504 |
256 |
3 |
6 |
3504 |
288 |
3 |
6 |
3600 |
224 |
3 |
6 |
3600 |
256 |
3 |
6 |
3600 |
288 |
3 |
6 |
3600 |
320 |
3 |
6 |
3600 |
160 |
3 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 23 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 7 432 224 12 |
Enemy 3 768 64 40 |
Enemy 3 816 256 40 |
Enemy 3 864 384 40 |
Enemy 5 1056 96 40 |
Enemy 5 1248 416 15 |
Enemy 5 1296 32 40 |
Enemy 5 1296 128 40 |
Enemy 2 1440 256 15 |
Enemy 2 2160 128 15 |
Enemy 2 2208 352 15 |
Enemy 2 2256 64 15 |
Enemy 2 2304 288 15 |
Enemy 2 2352 0 15 |
Enemy 2 2352 224 15 |
Enemy 2 2496 352 15 |
Enemy 6 2928 128 3 |
Enemy 6 2928 160 3 |
Enemy 6 2928 192 3 |
Enemy 6 2928 224 3 |
Enemy 6 2928 256 3 |
Enemy 6 2928 288 3 |
Enemy 6 2928 320 3 |
Enemy 6 2976 128 3 |
Enemy 6 2976 224 3 |
Enemy 6 3024 128 3 |
Enemy 6 3024 224 3 |
Enemy 6 3072 128 3 |
Enemy 6 3072 160 3 |
Enemy 6 3072 192 3 |
Enemy 6 3072 224 3 |
Enemy 6 3072 256 3 |
Enemy 6 3072 288 3 |
Enemy 6 3072 320 3 |
Enemy 6 3216 192 3 |
Enemy 6 3216 224 3 |
Enemy 6 3216 256 3 |
Enemy 6 3216 288 3 |
Enemy 6 3216 320 3 |
Enemy 6 3264 224 3 |
Enemy 6 3312 224 3 |
Enemy 6 3312 256 3 |
Enemy 6 3312 288 3 |
Enemy 6 3312 320 3 |
Enemy 6 3408 224 3 |
Enemy 6 3408 256 3 |
Enemy 6 3408 288 3 |
Enemy 6 3408 320 3 |
Enemy 6 3456 224 3 |
Enemy 6 3456 320 3 |
Enemy 6 3504 128 3 |
Enemy 6 3504 160 3 |
Enemy 6 3504 192 3 |
Enemy 6 3504 224 3 |
Enemy 6 3504 256 3 |
Enemy 6 3504 288 3 |
Enemy 6 3504 320 3 |
Enemy 6 3600 160 3 |
Enemy 6 3600 224 3 |
Enemy 6 3600 256 3 |
Enemy 6 3600 288 3 |
Enemy 6 3600 320 3 |
/Levels/Level 24.lev |
---|
1,403 → 1,105 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
192 |
64 |
1 |
1 |
288 |
192 |
1 |
1 |
288 |
352 |
1 |
1 |
288 |
64 |
1 |
1 |
336 |
256 |
1 |
1 |
384 |
160 |
1 |
1 |
432 |
352 |
1 |
1 |
816 |
384 |
16 |
1 |
864 |
384 |
16 |
1 |
864 |
352 |
16 |
1 |
912 |
320 |
16 |
1 |
912 |
288 |
16 |
1 |
960 |
288 |
16 |
1 |
1008 |
288 |
16 |
1 |
1056 |
256 |
16 |
1 |
1104 |
192 |
16 |
1 |
1152 |
160 |
16 |
1 |
1152 |
96 |
16 |
1 |
1296 |
448 |
16 |
4 |
1968 |
4 |
2016 |
128 |
4 |
2016 |
416 |
6 |
2016 |
352 |
8 |
6 |
2064 |
352 |
8 |
6 |
2064 |
224 |
8 |
4 |
2112 |
128 |
4 |
2160 |
96 |
4 |
2160 |
32 |
4 |
2160 |
160 |
6 |
2160 |
288 |
8 |
4 |
2208 |
32 |
4 |
2208 |
416 |
6 |
2256 |
320 |
8 |
4 |
2304 |
192 |
4 |
2304 |
416 |
6 |
2304 |
288 |
8 |
6 |
2304 |
352 |
8 |
4 |
2352 |
96 |
6 |
2496 |
192 |
8 |
6 |
2544 |
64 |
8 |
6 |
2544 |
160 |
8 |
6 |
2544 |
320 |
8 |
6 |
2592 |
128 |
8 |
6 |
2640 |
192 |
8 |
6 |
2640 |
128 |
8 |
6 |
2688 |
128 |
8 |
6 |
2736 |
256 |
8 |
6 |
2784 |
384 |
8 |
6 |
2880 |
352 |
8 |
6 |
2880 |
96 |
8 |
6 |
2880 |
128 |
8 |
6 |
2928 |
224 |
8 |
6 |
2976 |
384 |
8 |
6 |
2976 |
64 |
8 |
6 |
3168 |
32 |
12 |
6 |
3216 |
32 |
12 |
6 |
3264 |
32 |
12 |
6 |
3312 |
32 |
12 |
6 |
3360 |
32 |
12 |
6 |
3360 |
96 |
12 |
6 |
3360 |
160 |
12 |
6 |
3408 |
288 |
12 |
6 |
3456 |
352 |
12 |
6 |
3456 |
384 |
12 |
6 |
3456 |
448 |
12 |
6 |
3504 |
416 |
12 |
6 |
3552 |
416 |
12 |
6 |
3552 |
448 |
12 |
6 |
3600 |
448 |
12 |
1 |
3936 |
352 |
12 |
1 |
3936 |
416 |
12 |
1 |
3984 |
288 |
12 |
1 |
3984 |
128 |
12 |
1 |
4032 |
64 |
12 |
1 |
4080 |
160 |
12 |
6 |
4128 |
2 |
6 |
4128 |
32 |
2 |
6 |
4128 |
256 |
2 |
6 |
4128 |
352 |
2 |
6 |
4128 |
416 |
2 |
6 |
4128 |
384 |
2 |
6 |
4176 |
96 |
2 |
6 |
4176 |
384 |
2 |
6 |
4176 |
224 |
2 |
6 |
4176 |
160 |
2 |
6 |
4224 |
224 |
2 |
5 |
4320 |
64 |
3 |
5 |
4320 |
128 |
3 |
5 |
4368 |
3 |
5 |
4368 |
192 |
3 |
5 |
4368 |
288 |
3 |
5 |
4368 |
352 |
3 |
5 |
4368 |
416 |
3 |
2 |
4752 |
96 |
9 |
2 |
4752 |
192 |
9 |
2 |
4800 |
32 |
9 |
2 |
4800 |
288 |
9 |
2 |
4896 |
352 |
9 |
2 |
4992 |
352 |
9 |
2 |
4992 |
32 |
9 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 24 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 192 64 1 |
Enemy 1 288 64 1 |
Enemy 1 288 192 1 |
Enemy 1 288 352 1 |
Enemy 1 336 256 1 |
Enemy 1 384 160 1 |
Enemy 1 432 352 1 |
Enemy 1 816 384 16 |
Enemy 1 864 352 16 |
Enemy 1 864 384 16 |
Enemy 1 912 288 16 |
Enemy 1 912 320 16 |
Enemy 1 960 288 16 |
Enemy 1 1008 288 16 |
Enemy 1 1056 256 16 |
Enemy 1 1104 192 16 |
Enemy 1 1152 96 16 |
Enemy 1 1152 160 16 |
Enemy 1 1296 448 16 |
Enemy 4 1968 0 0 |
Enemy 4 2016 128 0 |
Enemy 6 2016 352 8 |
Enemy 4 2016 416 0 |
Enemy 6 2064 224 8 |
Enemy 6 2064 352 8 |
Enemy 4 2112 128 0 |
Enemy 4 2160 32 0 |
Enemy 4 2160 96 0 |
Enemy 4 2160 160 0 |
Enemy 6 2160 288 8 |
Enemy 4 2208 32 0 |
Enemy 4 2208 416 0 |
Enemy 6 2256 320 8 |
Enemy 4 2304 192 0 |
Enemy 6 2304 288 8 |
Enemy 6 2304 352 8 |
Enemy 4 2304 416 0 |
Enemy 4 2352 96 0 |
Enemy 6 2496 192 8 |
Enemy 6 2544 64 8 |
Enemy 6 2544 160 8 |
Enemy 6 2544 320 8 |
Enemy 6 2592 128 8 |
Enemy 6 2640 128 8 |
Enemy 6 2640 192 8 |
Enemy 6 2688 128 8 |
Enemy 6 2736 256 8 |
Enemy 6 2784 384 8 |
Enemy 6 2880 96 8 |
Enemy 6 2880 128 8 |
Enemy 6 2880 352 8 |
Enemy 6 2928 224 8 |
Enemy 6 2976 64 8 |
Enemy 6 2976 384 8 |
Enemy 6 3168 32 12 |
Enemy 6 3216 32 12 |
Enemy 6 3264 32 12 |
Enemy 6 3312 32 12 |
Enemy 6 3360 32 12 |
Enemy 6 3360 96 12 |
Enemy 6 3360 160 12 |
Enemy 6 3408 288 12 |
Enemy 6 3456 352 12 |
Enemy 6 3456 384 12 |
Enemy 6 3456 448 12 |
Enemy 6 3504 416 12 |
Enemy 6 3552 416 12 |
Enemy 6 3552 448 12 |
Enemy 6 3600 448 12 |
Enemy 1 3936 352 12 |
Enemy 1 3936 416 12 |
Enemy 1 3984 128 12 |
Enemy 1 3984 288 12 |
Enemy 1 4032 64 12 |
Enemy 1 4080 160 12 |
Enemy 6 4128 0 2 |
Enemy 6 4128 32 2 |
Enemy 6 4128 256 2 |
Enemy 6 4128 352 2 |
Enemy 6 4128 384 2 |
Enemy 6 4128 416 2 |
Enemy 6 4176 96 2 |
Enemy 6 4176 160 2 |
Enemy 6 4176 224 2 |
Enemy 6 4176 384 2 |
Enemy 6 4224 224 2 |
Enemy 5 4320 64 3 |
Enemy 5 4320 128 3 |
Enemy 5 4368 0 3 |
Enemy 5 4368 192 3 |
Enemy 5 4368 288 3 |
Enemy 5 4368 352 3 |
Enemy 5 4368 416 3 |
Enemy 2 4752 96 9 |
Enemy 2 4752 192 9 |
Enemy 2 4800 32 9 |
Enemy 2 4800 288 9 |
Enemy 2 4896 352 9 |
Enemy 2 4992 32 9 |
Enemy 2 4992 352 9 |
/Levels/Level 25.lev |
---|
1,119 → 1,34 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
4 |
240 |
32 |
1 |
336 |
96 |
5 |
4 |
384 |
288 |
4 |
528 |
64 |
4 |
528 |
384 |
4 |
528 |
192 |
1 |
672 |
32 |
5 |
1 |
672 |
416 |
5 |
4 |
768 |
352 |
1 |
816 |
192 |
5 |
2 |
864 |
64 |
5 |
4 |
912 |
160 |
1 |
1008 |
352 |
5 |
4 |
1152 |
32 |
2 |
1296 |
288 |
5 |
4 |
1440 |
320 |
2 |
1488 |
64 |
5 |
4 |
1680 |
96 |
6 |
1680 |
384 |
5 |
4 |
1776 |
320 |
5 |
1776 |
64 |
5 |
4 |
2064 |
64 |
4 |
2064 |
288 |
4 |
2352 |
320 |
4 |
2352 |
64 |
5 |
2496 |
64 |
5 |
5 |
2496 |
384 |
5 |
3 |
2880 |
224 |
14 |
3 |
2880 |
192 |
14 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 25 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 4 240 32 0 |
Enemy 1 336 96 5 |
Enemy 4 384 288 0 |
Enemy 4 528 64 0 |
Enemy 4 528 192 0 |
Enemy 4 528 384 0 |
Enemy 1 672 32 5 |
Enemy 1 672 416 5 |
Enemy 4 768 352 0 |
Enemy 1 816 192 5 |
Enemy 2 864 64 5 |
Enemy 4 912 160 0 |
Enemy 1 1008 352 5 |
Enemy 4 1152 32 0 |
Enemy 2 1296 288 5 |
Enemy 4 1440 320 0 |
Enemy 2 1488 64 5 |
Enemy 4 1680 96 0 |
Enemy 6 1680 384 5 |
Enemy 5 1776 64 5 |
Enemy 4 1776 320 0 |
Enemy 4 2064 64 0 |
Enemy 4 2064 288 0 |
Enemy 4 2352 64 0 |
Enemy 4 2352 320 0 |
Enemy 5 2496 64 5 |
Enemy 5 2496 384 5 |
Enemy 3 2880 192 14 |
Enemy 3 2880 224 14 |
/Levels/Level 26.lev |
---|
1,203 → 1,55 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
5 |
240 |
320 |
1 |
5 |
240 |
288 |
1 |
5 |
240 |
256 |
1 |
5 |
240 |
224 |
1 |
5 |
240 |
192 |
1 |
5 |
240 |
160 |
1 |
5 |
240 |
128 |
1 |
5 |
288 |
128 |
1 |
5 |
288 |
320 |
1 |
5 |
336 |
160 |
1 |
5 |
336 |
192 |
1 |
5 |
336 |
224 |
1 |
5 |
336 |
256 |
1 |
5 |
336 |
288 |
1 |
5 |
432 |
320 |
1 |
5 |
432 |
288 |
1 |
5 |
432 |
256 |
1 |
5 |
432 |
224 |
1 |
5 |
432 |
192 |
1 |
5 |
432 |
160 |
1 |
5 |
432 |
128 |
1 |
5 |
480 |
160 |
1 |
5 |
528 |
192 |
1 |
5 |
576 |
224 |
1 |
5 |
624 |
192 |
1 |
5 |
672 |
160 |
1 |
5 |
720 |
128 |
1 |
5 |
720 |
160 |
1 |
5 |
720 |
192 |
1 |
5 |
720 |
224 |
1 |
5 |
720 |
256 |
1 |
5 |
720 |
288 |
1 |
5 |
720 |
320 |
1 |
5 |
816 |
160 |
1 |
5 |
816 |
192 |
1 |
5 |
816 |
224 |
1 |
5 |
816 |
256 |
1 |
5 |
816 |
288 |
1 |
5 |
864 |
128 |
1 |
5 |
864 |
320 |
1 |
5 |
960 |
160 |
1 |
5 |
960 |
192 |
1 |
5 |
960 |
224 |
1 |
5 |
960 |
320 |
1 |
5 |
1008 |
128 |
1 |
5 |
1008 |
224 |
1 |
5 |
1008 |
320 |
1 |
5 |
1056 |
128 |
1 |
5 |
1056 |
256 |
1 |
5 |
1056 |
288 |
1 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 26 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 5 240 128 1 |
Enemy 5 240 160 1 |
Enemy 5 240 192 1 |
Enemy 5 240 224 1 |
Enemy 5 240 256 1 |
Enemy 5 240 288 1 |
Enemy 5 240 320 1 |
Enemy 5 288 128 1 |
Enemy 5 288 320 1 |
Enemy 5 336 160 1 |
Enemy 5 336 192 1 |
Enemy 5 336 224 1 |
Enemy 5 336 256 1 |
Enemy 5 336 288 1 |
Enemy 5 432 128 1 |
Enemy 5 432 160 1 |
Enemy 5 432 192 1 |
Enemy 5 432 224 1 |
Enemy 5 432 256 1 |
Enemy 5 432 288 1 |
Enemy 5 432 320 1 |
Enemy 5 480 160 1 |
Enemy 5 528 192 1 |
Enemy 5 576 224 1 |
Enemy 5 624 192 1 |
Enemy 5 672 160 1 |
Enemy 5 720 128 1 |
Enemy 5 720 160 1 |
Enemy 5 720 192 1 |
Enemy 5 720 224 1 |
Enemy 5 720 256 1 |
Enemy 5 720 288 1 |
Enemy 5 720 320 1 |
Enemy 5 816 160 1 |
Enemy 5 816 192 1 |
Enemy 5 816 224 1 |
Enemy 5 816 256 1 |
Enemy 5 816 288 1 |
Enemy 5 864 128 1 |
Enemy 5 864 320 1 |
Enemy 5 960 160 1 |
Enemy 5 960 192 1 |
Enemy 5 960 224 1 |
Enemy 5 960 320 1 |
Enemy 5 1008 128 1 |
Enemy 5 1008 224 1 |
Enemy 5 1008 320 1 |
Enemy 5 1056 128 1 |
Enemy 5 1056 256 1 |
Enemy 5 1056 288 1 |
/Levels/Level 27.lev |
---|
1,91 → 1,27 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
4 |
48 |
32 |
4 |
288 |
384 |
4 |
480 |
288 |
1 |
528 |
224 |
10 |
4 |
576 |
64 |
4 |
768 |
96 |
4 |
960 |
96 |
4 |
960 |
320 |
4 |
1104 |
352 |
4 |
1200 |
128 |
2 |
1200 |
224 |
10 |
4 |
1344 |
288 |
4 |
1440 |
192 |
4 |
1584 |
192 |
4 |
1584 |
96 |
4 |
1632 |
384 |
4 |
1680 |
224 |
5 |
1680 |
32 |
10 |
6 |
1680 |
416 |
10 |
4 |
1776 |
352 |
4 |
1824 |
96 |
3 |
1920 |
224 |
10 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 27 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 4 48 32 0 |
Enemy 4 288 384 0 |
Enemy 4 480 288 0 |
Enemy 1 528 224 10 |
Enemy 4 576 64 0 |
Enemy 4 768 96 0 |
Enemy 4 960 96 0 |
Enemy 4 960 320 0 |
Enemy 4 1104 352 0 |
Enemy 4 1200 128 0 |
Enemy 2 1200 224 10 |
Enemy 4 1344 288 0 |
Enemy 4 1440 192 0 |
Enemy 4 1584 96 0 |
Enemy 4 1584 192 0 |
Enemy 4 1632 384 0 |
Enemy 5 1680 32 10 |
Enemy 4 1680 224 0 |
Enemy 6 1680 416 10 |
Enemy 4 1776 352 0 |
Enemy 4 1824 96 0 |
Enemy 3 1920 224 10 |
/Levels/Level 28.lev |
---|
1,79 → 1,24 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
5 |
96 |
128 |
1 |
2 |
240 |
224 |
30 |
4 |
288 |
352 |
4 |
336 |
224 |
1 |
336 |
64 |
30 |
4 |
384 |
128 |
4 |
384 |
352 |
1 |
432 |
320 |
30 |
1 |
528 |
384 |
30 |
1 |
528 |
224 |
30 |
1 |
672 |
128 |
30 |
4 |
816 |
288 |
6 |
912 |
128 |
30 |
6 |
960 |
416 |
30 |
6 |
1104 |
224 |
30 |
5 |
1200 |
96 |
30 |
3 |
1536 |
192 |
30 |
3 |
1632 |
128 |
30 |
3 |
1632 |
288 |
30 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 28 |
Author Daniel Marschall |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 5 96 128 1 |
Enemy 2 240 224 30 |
Enemy 4 288 352 0 |
Enemy 1 336 64 30 |
Enemy 4 336 224 0 |
Enemy 4 384 128 0 |
Enemy 4 384 352 0 |
Enemy 1 432 320 30 |
Enemy 1 528 224 30 |
Enemy 1 528 384 30 |
Enemy 1 672 128 30 |
Enemy 4 816 288 0 |
Enemy 6 912 128 30 |
Enemy 6 960 416 30 |
Enemy 6 1104 224 30 |
Enemy 5 1200 96 30 |
Enemy 3 1536 192 30 |
Enemy 3 1632 128 30 |
Enemy 3 1632 288 30 |
/Levels/Level 29.lev |
---|
1,175 → 1,48 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
96 |
1 |
1 |
96 |
64 |
1 |
1 |
144 |
32 |
1 |
1 |
144 |
96 |
1 |
5 |
384 |
32 |
1 |
5 |
528 |
320 |
1 |
5 |
624 |
96 |
1 |
5 |
720 |
352 |
1 |
3 |
1008 |
96 |
1 |
1 |
1008 |
288 |
1 |
1 |
1056 |
448 |
1 |
1 |
1104 |
192 |
1 |
1 |
1152 |
416 |
1 |
1 |
1200 |
32 |
1 |
1 |
1248 |
320 |
1 |
1 |
1248 |
128 |
1 |
1 |
1392 |
288 |
1 |
4 |
1392 |
192 |
1 |
1 |
1440 |
64 |
1 |
1 |
1440 |
224 |
1 |
1 |
1440 |
416 |
1 |
1 |
1536 |
96 |
1 |
4 |
1536 |
160 |
1 |
4 |
1536 |
32 |
1 |
4 |
1536 |
384 |
1 |
1 |
1584 |
320 |
1 |
4 |
1584 |
224 |
1 |
1 |
1632 |
160 |
1 |
4 |
1632 |
96 |
1 |
4 |
1680 |
256 |
1 |
1 |
1728 |
64 |
1 |
1 |
1728 |
352 |
1 |
1 |
1776 |
160 |
1 |
4 |
1872 |
160 |
1 |
4 |
1920 |
64 |
1 |
4 |
1920 |
288 |
1 |
6 |
1968 |
224 |
1 |
6 |
2064 |
288 |
1 |
6 |
2064 |
96 |
1 |
6 |
2112 |
384 |
1 |
5 |
2160 |
32 |
1 |
2 |
2256 |
192 |
1 |
7 |
2496 |
192 |
30 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 29 |
Author Daniel Marschall |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 96 0 1 |
Enemy 1 96 64 1 |
Enemy 1 144 32 1 |
Enemy 1 144 96 1 |
Enemy 5 384 32 1 |
Enemy 5 528 320 1 |
Enemy 5 624 96 1 |
Enemy 5 720 352 1 |
Enemy 3 1008 96 1 |
Enemy 1 1008 288 1 |
Enemy 1 1056 448 1 |
Enemy 1 1104 192 1 |
Enemy 1 1152 416 1 |
Enemy 1 1200 32 1 |
Enemy 1 1248 128 1 |
Enemy 1 1248 320 1 |
Enemy 4 1392 192 0 |
Enemy 1 1392 288 1 |
Enemy 1 1440 64 1 |
Enemy 1 1440 224 1 |
Enemy 1 1440 416 1 |
Enemy 4 1536 32 0 |
Enemy 1 1536 96 1 |
Enemy 4 1536 160 0 |
Enemy 4 1536 384 0 |
Enemy 4 1584 224 0 |
Enemy 1 1584 320 1 |
Enemy 4 1632 96 0 |
Enemy 1 1632 160 1 |
Enemy 4 1680 256 0 |
Enemy 1 1728 64 1 |
Enemy 1 1728 352 1 |
Enemy 1 1776 160 1 |
Enemy 4 1872 160 0 |
Enemy 4 1920 64 0 |
Enemy 4 1920 288 0 |
Enemy 6 1968 224 1 |
Enemy 6 2064 96 1 |
Enemy 6 2064 288 1 |
Enemy 6 2112 384 1 |
Enemy 5 2160 32 1 |
Enemy 2 2256 192 1 |
Enemy 7 2496 192 30 |
/Levels/Level 3.lev |
---|
1,55 → 1,18 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
624 |
64 |
1 |
1 |
624 |
192 |
1 |
1 |
624 |
256 |
1 |
1 |
624 |
384 |
1 |
5 |
1104 |
160 |
1 |
5 |
1104 |
320 |
1 |
5 |
1104 |
128 |
1 |
5 |
1104 |
288 |
1 |
1 |
1584 |
160 |
1 |
1 |
1584 |
256 |
1 |
6 |
2160 |
160 |
2 |
6 |
2160 |
288 |
2 |
6 |
2160 |
224 |
2 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 3 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 624 64 1 |
Enemy 1 624 192 1 |
Enemy 1 624 256 1 |
Enemy 1 624 384 1 |
Enemy 5 1104 128 1 |
Enemy 5 1104 160 1 |
Enemy 5 1104 288 1 |
Enemy 5 1104 320 1 |
Enemy 1 1584 160 1 |
Enemy 1 1584 256 1 |
Enemy 6 2160 160 2 |
Enemy 6 2160 224 2 |
Enemy 6 2160 288 2 |
/Levels/Level 30.lev |
---|
1,1103 → 1,280 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
3 |
48 |
1 |
3 |
48 |
448 |
1 |
3 |
96 |
32 |
1 |
3 |
96 |
416 |
1 |
3 |
144 |
384 |
1 |
3 |
144 |
64 |
1 |
3 |
192 |
352 |
1 |
3 |
192 |
96 |
1 |
3 |
240 |
320 |
1 |
3 |
240 |
128 |
1 |
3 |
288 |
288 |
1 |
3 |
288 |
160 |
1 |
3 |
336 |
256 |
1 |
3 |
336 |
192 |
1 |
5 |
336 |
64 |
1 |
5 |
336 |
384 |
1 |
6 |
384 |
224 |
1 |
4 |
432 |
32 |
4 |
432 |
160 |
4 |
480 |
192 |
4 |
480 |
224 |
1 |
480 |
448 |
1 |
4 |
528 |
96 |
4 |
528 |
416 |
4 |
576 |
32 |
7 |
576 |
224 |
99 |
4 |
624 |
96 |
4 |
624 |
416 |
4 |
672 |
32 |
4 |
672 |
448 |
1 |
672 |
64 |
1 |
1 |
672 |
416 |
1 |
4 |
720 |
64 |
4 |
720 |
128 |
4 |
768 |
384 |
4 |
768 |
160 |
4 |
768 |
224 |
1 |
816 |
448 |
99 |
4 |
864 |
32 |
4 |
864 |
96 |
4 |
912 |
288 |
4 |
960 |
320 |
4 |
960 |
64 |
4 |
1008 |
416 |
4 |
1056 |
448 |
1 |
1056 |
224 |
1 |
4 |
1104 |
192 |
4 |
1104 |
128 |
4 |
1152 |
416 |
4 |
1152 |
320 |
4 |
1200 |
224 |
4 |
1296 |
64 |
1 |
1296 |
384 |
1 |
4 |
1392 |
256 |
4 |
1440 |
32 |
1 |
1488 |
224 |
1 |
4 |
1536 |
448 |
4 |
1584 |
96 |
4 |
1584 |
256 |
4 |
1728 |
352 |
1 |
1728 |
32 |
1 |
4 |
1776 |
160 |
4 |
1920 |
32 |
4 |
1920 |
416 |
1 |
1920 |
320 |
1 |
4 |
2064 |
256 |
4 |
2064 |
4 |
2208 |
64 |
1 |
2208 |
192 |
1 |
4 |
2256 |
320 |
1 |
2352 |
32 |
1 |
4 |
2352 |
128 |
1 |
2400 |
384 |
1 |
4 |
2400 |
320 |
2 |
2448 |
160 |
1 |
4 |
2496 |
64 |
4 |
2496 |
416 |
2 |
2592 |
384 |
1 |
3 |
2592 |
32 |
1 |
4 |
2592 |
224 |
4 |
2640 |
416 |
4 |
2688 |
128 |
4 |
2688 |
352 |
5 |
2736 |
32 |
4 |
5 |
2736 |
192 |
4 |
5 |
2736 |
352 |
4 |
4 |
2784 |
256 |
5 |
2784 |
416 |
4 |
4 |
2784 |
64 |
4 |
2784 |
32 |
4 |
2832 |
128 |
4 |
2832 |
320 |
4 |
2832 |
192 |
4 |
2880 |
384 |
4 |
2880 |
448 |
4 |
2880 |
128 |
4 |
2880 |
416 |
4 |
2928 |
256 |
1 |
2976 |
320 |
5 |
4 |
3024 |
64 |
4 |
3024 |
384 |
4 |
3072 |
224 |
2 |
3072 |
96 |
3 |
3 |
3120 |
416 |
4 |
4 |
3216 |
64 |
4 |
3216 |
352 |
4 |
3264 |
160 |
3 |
3360 |
128 |
5 |
4 |
3408 |
32 |
4 |
3408 |
352 |
4 |
3408 |
224 |
3 |
3456 |
384 |
5 |
4 |
3552 |
160 |
3 |
3552 |
224 |
5 |
4 |
3600 |
384 |
4 |
3696 |
224 |
4 |
3696 |
1 |
3744 |
352 |
5 |
1 |
3792 |
96 |
5 |
4 |
3840 |
352 |
4 |
3936 |
64 |
4 |
4032 |
416 |
4 |
4032 |
192 |
3 |
4032 |
5 |
4 |
4128 |
64 |
4 |
4176 |
288 |
1 |
4176 |
5 |
4 |
4224 |
160 |
4 |
4272 |
384 |
3 |
4272 |
256 |
5 |
2 |
4320 |
96 |
3 |
4 |
4368 |
352 |
4 |
4368 |
224 |
4 |
4416 |
64 |
1 |
4464 |
320 |
5 |
4 |
4512 |
160 |
4 |
4512 |
320 |
4 |
4512 |
448 |
4 |
4608 |
32 |
4 |
4656 |
416 |
4 |
4656 |
128 |
4 |
4704 |
256 |
3 |
4752 |
5 |
4 |
4800 |
96 |
4 |
4800 |
384 |
4 |
4848 |
160 |
3 |
4848 |
256 |
5 |
4 |
4896 |
352 |
4 |
4944 |
32 |
4 |
4944 |
192 |
3 |
4944 |
128 |
5 |
4 |
5040 |
256 |
4 |
5040 |
96 |
4 |
5040 |
384 |
1 |
5040 |
5 |
4 |
5088 |
64 |
1 |
5088 |
160 |
5 |
4 |
5184 |
352 |
4 |
5184 |
4 |
5232 |
224 |
4 |
5280 |
96 |
4 |
5280 |
320 |
4 |
5376 |
64 |
4 |
5376 |
192 |
4 |
5424 |
416 |
4 |
5520 |
224 |
1 |
5520 |
64 |
5 |
4 |
5568 |
384 |
4 |
5616 |
64 |
2 |
5616 |
128 |
3 |
4 |
5664 |
224 |
3 |
5664 |
320 |
5 |
4 |
5760 |
384 |
4 |
5760 |
32 |
1 |
5760 |
288 |
5 |
4 |
5808 |
96 |
3 |
5808 |
192 |
5 |
4 |
5904 |
352 |
1 |
5904 |
32 |
5 |
4 |
5952 |
192 |
4 |
6000 |
64 |
4 |
6000 |
352 |
4 |
6096 |
160 |
4 |
6096 |
320 |
3 |
6096 |
32 |
5 |
4 |
6144 |
352 |
3 |
6144 |
64 |
5 |
1 |
6144 |
256 |
5 |
3 |
6192 |
96 |
5 |
1 |
6192 |
416 |
5 |
4 |
6240 |
32 |
4 |
6288 |
192 |
4 |
6288 |
288 |
4 |
6336 |
416 |
4 |
6384 |
288 |
4 |
6384 |
1 |
6384 |
128 |
5 |
4 |
6432 |
96 |
4 |
6432 |
416 |
1 |
6432 |
352 |
5 |
4 |
6528 |
128 |
4 |
6528 |
320 |
1 |
6528 |
5 |
1 |
6576 |
416 |
5 |
4 |
6624 |
416 |
4 |
6624 |
64 |
4 |
6624 |
256 |
3 |
6672 |
448 |
5 |
4 |
6720 |
128 |
4 |
6720 |
32 |
3 |
6768 |
320 |
5 |
1 |
6816 |
96 |
5 |
4 |
6864 |
352 |
4 |
6864 |
224 |
4 |
6912 |
32 |
1 |
6960 |
352 |
5 |
2 |
7008 |
160 |
3 |
4 |
7056 |
4 |
7104 |
192 |
4 |
7104 |
288 |
4 |
7104 |
64 |
4 |
7152 |
416 |
4 |
7200 |
384 |
4 |
7200 |
128 |
1 |
7200 |
64 |
5 |
1 |
7248 |
224 |
5 |
1 |
7248 |
416 |
5 |
4 |
7296 |
32 |
4 |
7344 |
128 |
4 |
7344 |
288 |
4 |
7344 |
384 |
3 |
7392 |
5 |
4 |
7440 |
224 |
4 |
7488 |
352 |
4 |
7488 |
64 |
1 |
7488 |
128 |
5 |
1 |
7584 |
320 |
5 |
4 |
7632 |
192 |
4 |
7680 |
64 |
1 |
7680 |
5 |
3 |
7728 |
384 |
5 |
4 |
7776 |
288 |
4 |
7824 |
160 |
3 |
7824 |
32 |
5 |
1 |
7872 |
416 |
5 |
4 |
7920 |
64 |
1 |
7920 |
192 |
5 |
4 |
7968 |
352 |
4 |
8064 |
192 |
1 |
8160 |
160 |
5 |
1 |
8160 |
128 |
5 |
1 |
8160 |
96 |
5 |
1 |
8160 |
64 |
5 |
1 |
8160 |
32 |
5 |
1 |
8160 |
5 |
2 |
8304 |
352 |
3 |
1 |
8400 |
288 |
5 |
1 |
8448 |
448 |
5 |
1 |
8448 |
256 |
5 |
1 |
8496 |
416 |
5 |
1 |
8496 |
224 |
5 |
1 |
8544 |
384 |
5 |
1 |
8544 |
192 |
5 |
1 |
8592 |
352 |
5 |
1 |
8592 |
160 |
5 |
1 |
8640 |
128 |
5 |
1 |
8640 |
320 |
5 |
1 |
8688 |
96 |
5 |
1 |
8688 |
288 |
5 |
1 |
8736 |
64 |
5 |
1 |
8736 |
256 |
5 |
1 |
8784 |
32 |
5 |
1 |
8784 |
224 |
5 |
1 |
8832 |
5 |
1 |
8832 |
192 |
5 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 30 |
Author Daniel Marschall |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 3 48 0 1 |
Enemy 3 48 448 1 |
Enemy 3 96 32 1 |
Enemy 3 96 416 1 |
Enemy 3 144 64 1 |
Enemy 3 144 384 1 |
Enemy 3 192 96 1 |
Enemy 3 192 352 1 |
Enemy 3 240 128 1 |
Enemy 3 240 320 1 |
Enemy 3 288 160 1 |
Enemy 3 288 288 1 |
Enemy 5 336 64 1 |
Enemy 3 336 192 1 |
Enemy 3 336 256 1 |
Enemy 5 336 384 1 |
Enemy 6 384 224 1 |
Enemy 4 432 32 0 |
Enemy 4 432 160 0 |
Enemy 4 480 192 0 |
Enemy 4 480 224 0 |
Enemy 1 480 448 1 |
Enemy 4 528 96 0 |
Enemy 4 528 416 0 |
Enemy 4 576 32 0 |
Enemy 7 576 224 99 |
Enemy 4 624 96 0 |
Enemy 4 624 416 0 |
Enemy 4 672 32 0 |
Enemy 1 672 64 1 |
Enemy 1 672 416 1 |
Enemy 4 672 448 0 |
Enemy 4 720 64 0 |
Enemy 4 720 128 0 |
Enemy 4 768 160 0 |
Enemy 4 768 224 0 |
Enemy 4 768 384 0 |
Enemy 1 816 448 99 |
Enemy 4 864 32 0 |
Enemy 4 864 96 0 |
Enemy 4 912 288 0 |
Enemy 4 960 64 0 |
Enemy 4 960 320 0 |
Enemy 4 1008 416 0 |
Enemy 1 1056 224 1 |
Enemy 4 1056 448 0 |
Enemy 4 1104 128 0 |
Enemy 4 1104 192 0 |
Enemy 4 1152 320 0 |
Enemy 4 1152 416 0 |
Enemy 4 1200 224 0 |
Enemy 4 1296 64 0 |
Enemy 1 1296 384 1 |
Enemy 4 1392 256 0 |
Enemy 4 1440 32 0 |
Enemy 1 1488 224 1 |
Enemy 4 1536 448 0 |
Enemy 4 1584 96 0 |
Enemy 4 1584 256 0 |
Enemy 1 1728 32 1 |
Enemy 4 1728 352 0 |
Enemy 4 1776 160 0 |
Enemy 4 1920 32 0 |
Enemy 1 1920 320 1 |
Enemy 4 1920 416 0 |
Enemy 4 2064 0 0 |
Enemy 4 2064 256 0 |
Enemy 4 2208 64 0 |
Enemy 1 2208 192 1 |
Enemy 4 2256 320 0 |
Enemy 1 2352 32 1 |
Enemy 4 2352 128 0 |
Enemy 4 2400 320 0 |
Enemy 1 2400 384 1 |
Enemy 2 2448 160 1 |
Enemy 4 2496 64 0 |
Enemy 4 2496 416 0 |
Enemy 3 2592 32 1 |
Enemy 4 2592 224 0 |
Enemy 2 2592 384 1 |
Enemy 4 2640 416 0 |
Enemy 4 2688 128 0 |
Enemy 4 2688 352 0 |
Enemy 5 2736 32 4 |
Enemy 5 2736 192 4 |
Enemy 5 2736 352 4 |
Enemy 4 2784 32 0 |
Enemy 4 2784 64 0 |
Enemy 4 2784 256 0 |
Enemy 5 2784 416 4 |
Enemy 4 2832 128 0 |
Enemy 4 2832 192 0 |
Enemy 4 2832 320 0 |
Enemy 4 2880 128 0 |
Enemy 4 2880 384 0 |
Enemy 4 2880 416 0 |
Enemy 4 2880 448 0 |
Enemy 4 2928 256 0 |
Enemy 1 2976 320 5 |
Enemy 4 3024 64 0 |
Enemy 4 3024 384 0 |
Enemy 2 3072 96 3 |
Enemy 4 3072 224 0 |
Enemy 3 3120 416 4 |
Enemy 4 3216 64 0 |
Enemy 4 3216 352 0 |
Enemy 4 3264 160 0 |
Enemy 3 3360 128 5 |
Enemy 4 3408 32 0 |
Enemy 4 3408 224 0 |
Enemy 4 3408 352 0 |
Enemy 3 3456 384 5 |
Enemy 4 3552 160 0 |
Enemy 3 3552 224 5 |
Enemy 4 3600 384 0 |
Enemy 4 3696 0 0 |
Enemy 4 3696 224 0 |
Enemy 1 3744 352 5 |
Enemy 1 3792 96 5 |
Enemy 4 3840 352 0 |
Enemy 4 3936 64 0 |
Enemy 3 4032 0 5 |
Enemy 4 4032 192 0 |
Enemy 4 4032 416 0 |
Enemy 4 4128 64 0 |
Enemy 1 4176 0 5 |
Enemy 4 4176 288 0 |
Enemy 4 4224 160 0 |
Enemy 3 4272 256 5 |
Enemy 4 4272 384 0 |
Enemy 2 4320 96 3 |
Enemy 4 4368 224 0 |
Enemy 4 4368 352 0 |
Enemy 4 4416 64 0 |
Enemy 1 4464 320 5 |
Enemy 4 4512 160 0 |
Enemy 4 4512 320 0 |
Enemy 4 4512 448 0 |
Enemy 4 4608 32 0 |
Enemy 4 4656 128 0 |
Enemy 4 4656 416 0 |
Enemy 4 4704 256 0 |
Enemy 3 4752 0 5 |
Enemy 4 4800 96 0 |
Enemy 4 4800 384 0 |
Enemy 4 4848 160 0 |
Enemy 3 4848 256 5 |
Enemy 4 4896 352 0 |
Enemy 4 4944 32 0 |
Enemy 3 4944 128 5 |
Enemy 4 4944 192 0 |
Enemy 1 5040 0 5 |
Enemy 4 5040 96 0 |
Enemy 4 5040 256 0 |
Enemy 4 5040 384 0 |
Enemy 4 5088 64 0 |
Enemy 1 5088 160 5 |
Enemy 4 5184 0 0 |
Enemy 4 5184 352 0 |
Enemy 4 5232 224 0 |
Enemy 4 5280 96 0 |
Enemy 4 5280 320 0 |
Enemy 4 5376 64 0 |
Enemy 4 5376 192 0 |
Enemy 4 5424 416 0 |
Enemy 1 5520 64 5 |
Enemy 4 5520 224 0 |
Enemy 4 5568 384 0 |
Enemy 4 5616 64 0 |
Enemy 2 5616 128 3 |
Enemy 4 5664 224 0 |
Enemy 3 5664 320 5 |
Enemy 4 5760 32 0 |
Enemy 1 5760 288 5 |
Enemy 4 5760 384 0 |
Enemy 4 5808 96 0 |
Enemy 3 5808 192 5 |
Enemy 1 5904 32 5 |
Enemy 4 5904 352 0 |
Enemy 4 5952 192 0 |
Enemy 4 6000 64 0 |
Enemy 4 6000 352 0 |
Enemy 3 6096 32 5 |
Enemy 4 6096 160 0 |
Enemy 4 6096 320 0 |
Enemy 3 6144 64 5 |
Enemy 1 6144 256 5 |
Enemy 4 6144 352 0 |
Enemy 3 6192 96 5 |
Enemy 1 6192 416 5 |
Enemy 4 6240 32 0 |
Enemy 4 6288 192 0 |
Enemy 4 6288 288 0 |
Enemy 4 6336 416 0 |
Enemy 4 6384 0 0 |
Enemy 1 6384 128 5 |
Enemy 4 6384 288 0 |
Enemy 4 6432 96 0 |
Enemy 1 6432 352 5 |
Enemy 4 6432 416 0 |
Enemy 1 6528 0 5 |
Enemy 4 6528 128 0 |
Enemy 4 6528 320 0 |
Enemy 1 6576 416 5 |
Enemy 4 6624 64 0 |
Enemy 4 6624 256 0 |
Enemy 4 6624 416 0 |
Enemy 3 6672 448 5 |
Enemy 4 6720 32 0 |
Enemy 4 6720 128 0 |
Enemy 3 6768 320 5 |
Enemy 1 6816 96 5 |
Enemy 4 6864 224 0 |
Enemy 4 6864 352 0 |
Enemy 4 6912 32 0 |
Enemy 1 6960 352 5 |
Enemy 2 7008 160 3 |
Enemy 4 7056 0 0 |
Enemy 4 7104 64 0 |
Enemy 4 7104 192 0 |
Enemy 4 7104 288 0 |
Enemy 4 7152 416 0 |
Enemy 1 7200 64 5 |
Enemy 4 7200 128 0 |
Enemy 4 7200 384 0 |
Enemy 1 7248 224 5 |
Enemy 1 7248 416 5 |
Enemy 4 7296 32 0 |
Enemy 4 7344 128 0 |
Enemy 4 7344 288 0 |
Enemy 4 7344 384 0 |
Enemy 3 7392 0 5 |
Enemy 4 7440 224 0 |
Enemy 4 7488 64 0 |
Enemy 1 7488 128 5 |
Enemy 4 7488 352 0 |
Enemy 1 7584 320 5 |
Enemy 4 7632 192 0 |
Enemy 1 7680 0 5 |
Enemy 4 7680 64 0 |
Enemy 3 7728 384 5 |
Enemy 4 7776 288 0 |
Enemy 3 7824 32 5 |
Enemy 4 7824 160 0 |
Enemy 1 7872 416 5 |
Enemy 4 7920 64 0 |
Enemy 1 7920 192 5 |
Enemy 4 7968 352 0 |
Enemy 4 8064 192 0 |
Enemy 1 8160 0 5 |
Enemy 1 8160 32 5 |
Enemy 1 8160 64 5 |
Enemy 1 8160 96 5 |
Enemy 1 8160 128 5 |
Enemy 1 8160 160 5 |
Enemy 2 8304 352 3 |
Enemy 1 8400 288 5 |
Enemy 1 8448 256 5 |
Enemy 1 8448 448 5 |
Enemy 1 8496 224 5 |
Enemy 1 8496 416 5 |
Enemy 1 8544 192 5 |
Enemy 1 8544 384 5 |
Enemy 1 8592 160 5 |
Enemy 1 8592 352 5 |
Enemy 1 8640 128 5 |
Enemy 1 8640 320 5 |
Enemy 1 8688 96 5 |
Enemy 1 8688 288 5 |
Enemy 1 8736 64 5 |
Enemy 1 8736 256 5 |
Enemy 1 8784 32 5 |
Enemy 1 8784 224 5 |
Enemy 1 8832 0 5 |
Enemy 1 8832 192 5 |
/Levels/Level 31.lev |
---|
1,755 → 1,193 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
4 |
48 |
32 |
4 |
48 |
64 |
4 |
48 |
96 |
4 |
48 |
128 |
4 |
48 |
160 |
4 |
48 |
192 |
4 |
96 |
160 |
4 |
144 |
128 |
4 |
192 |
160 |
4 |
240 |
192 |
4 |
240 |
160 |
4 |
240 |
128 |
4 |
240 |
64 |
4 |
240 |
32 |
4 |
240 |
96 |
4 |
336 |
32 |
4 |
336 |
64 |
4 |
336 |
96 |
4 |
336 |
128 |
4 |
336 |
160 |
4 |
336 |
192 |
4 |
384 |
192 |
4 |
384 |
32 |
4 |
384 |
96 |
4 |
384 |
128 |
4 |
432 |
192 |
4 |
432 |
32 |
4 |
432 |
128 |
4 |
432 |
96 |
4 |
528 |
32 |
4 |
528 |
64 |
4 |
528 |
96 |
4 |
528 |
128 |
4 |
528 |
160 |
4 |
528 |
192 |
4 |
576 |
192 |
4 |
624 |
192 |
4 |
720 |
192 |
4 |
720 |
160 |
4 |
720 |
128 |
4 |
720 |
96 |
4 |
720 |
64 |
4 |
720 |
32 |
4 |
768 |
192 |
4 |
816 |
192 |
4 |
960 |
192 |
4 |
960 |
160 |
4 |
960 |
96 |
4 |
960 |
128 |
4 |
960 |
64 |
4 |
960 |
32 |
4 |
1008 |
32 |
4 |
1008 |
192 |
4 |
1056 |
160 |
4 |
1056 |
128 |
4 |
1056 |
96 |
4 |
1056 |
64 |
4 |
1152 |
96 |
4 |
1152 |
64 |
4 |
1152 |
128 |
4 |
1152 |
160 |
4 |
1200 |
192 |
4 |
1200 |
32 |
4 |
1248 |
160 |
4 |
1248 |
128 |
4 |
1248 |
96 |
4 |
1248 |
64 |
4 |
1344 |
192 |
4 |
1344 |
160 |
4 |
1344 |
128 |
4 |
1344 |
96 |
4 |
1344 |
64 |
4 |
1344 |
32 |
4 |
1392 |
64 |
4 |
1392 |
96 |
4 |
1392 |
128 |
4 |
1440 |
192 |
4 |
1440 |
160 |
4 |
1440 |
128 |
4 |
1488 |
192 |
4 |
1488 |
160 |
4 |
1488 |
128 |
4 |
1488 |
96 |
4 |
1488 |
64 |
4 |
1488 |
32 |
4 |
1584 |
32 |
4 |
1584 |
64 |
4 |
1584 |
96 |
4 |
1584 |
128 |
4 |
1584 |
160 |
4 |
1584 |
192 |
4 |
1632 |
192 |
4 |
1632 |
32 |
4 |
1632 |
96 |
4 |
1632 |
128 |
4 |
1680 |
192 |
4 |
1680 |
32 |
4 |
1680 |
96 |
4 |
1680 |
128 |
4 |
1776 |
32 |
4 |
1776 |
96 |
4 |
1776 |
64 |
4 |
1776 |
128 |
4 |
1776 |
192 |
4 |
1872 |
192 |
4 |
1872 |
128 |
4 |
1872 |
96 |
4 |
1872 |
64 |
4 |
1872 |
32 |
4 |
1968 |
32 |
4 |
1968 |
64 |
4 |
1968 |
96 |
4 |
1968 |
128 |
4 |
1968 |
192 |
1 |
2064 |
448 |
1 |
1 |
2064 |
1 |
1 |
2112 |
416 |
1 |
1 |
2112 |
32 |
1 |
1 |
2160 |
448 |
1 |
1 |
2160 |
1 |
1 |
2208 |
416 |
1 |
1 |
2208 |
32 |
1 |
1 |
2256 |
448 |
1 |
1 |
2256 |
1 |
1 |
2304 |
416 |
1 |
1 |
2304 |
32 |
1 |
1 |
2352 |
448 |
1 |
1 |
2352 |
1 |
1 |
2400 |
416 |
1 |
1 |
2400 |
32 |
1 |
1 |
2448 |
448 |
1 |
1 |
2448 |
1 |
1 |
2496 |
32 |
1 |
1 |
2496 |
416 |
1 |
1 |
2544 |
1 |
1 |
2544 |
448 |
1 |
1 |
2592 |
32 |
1 |
1 |
2592 |
416 |
1 |
1 |
2640 |
448 |
1 |
1 |
2640 |
1 |
1 |
2688 |
416 |
1 |
1 |
2688 |
32 |
1 |
1 |
2736 |
448 |
1 |
1 |
2736 |
1 |
1 |
2784 |
416 |
1 |
1 |
2784 |
32 |
1 |
1 |
2832 |
448 |
1 |
1 |
2832 |
1 |
1 |
2880 |
416 |
1 |
1 |
2880 |
32 |
1 |
1 |
2928 |
448 |
1 |
1 |
2928 |
1 |
1 |
2976 |
416 |
1 |
1 |
2976 |
32 |
1 |
1 |
3024 |
384 |
1 |
1 |
3024 |
64 |
1 |
1 |
3072 |
352 |
1 |
1 |
3072 |
96 |
1 |
4 |
3072 |
416 |
4 |
3072 |
32 |
4 |
3120 |
64 |
4 |
3120 |
384 |
4 |
3168 |
32 |
4 |
3168 |
416 |
4 |
3168 |
352 |
4 |
3168 |
96 |
4 |
3216 |
352 |
4 |
3216 |
96 |
4 |
3264 |
352 |
4 |
3264 |
96 |
6 |
3264 |
32 |
1 |
6 |
3264 |
416 |
1 |
4 |
3312 |
352 |
4 |
3312 |
96 |
4 |
3360 |
96 |
4 |
3360 |
352 |
4 |
3408 |
96 |
4 |
3408 |
352 |
4 |
3456 |
96 |
4 |
3456 |
352 |
3 |
3504 |
64 |
1 |
3 |
3504 |
384 |
1 |
3 |
3552 |
32 |
1 |
3 |
3552 |
416 |
1 |
3 |
3600 |
1 |
3 |
3600 |
448 |
1 |
5 |
3696 |
416 |
1 |
5 |
3696 |
32 |
1 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 31 |
Author Daniel Marschall |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 4 48 32 0 |
Enemy 4 48 64 0 |
Enemy 4 48 96 0 |
Enemy 4 48 128 0 |
Enemy 4 48 160 0 |
Enemy 4 48 192 0 |
Enemy 4 96 160 0 |
Enemy 4 144 128 0 |
Enemy 4 192 160 0 |
Enemy 4 240 32 0 |
Enemy 4 240 64 0 |
Enemy 4 240 96 0 |
Enemy 4 240 128 0 |
Enemy 4 240 160 0 |
Enemy 4 240 192 0 |
Enemy 4 336 32 0 |
Enemy 4 336 64 0 |
Enemy 4 336 96 0 |
Enemy 4 336 128 0 |
Enemy 4 336 160 0 |
Enemy 4 336 192 0 |
Enemy 4 384 32 0 |
Enemy 4 384 96 0 |
Enemy 4 384 128 0 |
Enemy 4 384 192 0 |
Enemy 4 432 32 0 |
Enemy 4 432 96 0 |
Enemy 4 432 128 0 |
Enemy 4 432 192 0 |
Enemy 4 528 32 0 |
Enemy 4 528 64 0 |
Enemy 4 528 96 0 |
Enemy 4 528 128 0 |
Enemy 4 528 160 0 |
Enemy 4 528 192 0 |
Enemy 4 576 192 0 |
Enemy 4 624 192 0 |
Enemy 4 720 32 0 |
Enemy 4 720 64 0 |
Enemy 4 720 96 0 |
Enemy 4 720 128 0 |
Enemy 4 720 160 0 |
Enemy 4 720 192 0 |
Enemy 4 768 192 0 |
Enemy 4 816 192 0 |
Enemy 4 960 32 0 |
Enemy 4 960 64 0 |
Enemy 4 960 96 0 |
Enemy 4 960 128 0 |
Enemy 4 960 160 0 |
Enemy 4 960 192 0 |
Enemy 4 1008 32 0 |
Enemy 4 1008 192 0 |
Enemy 4 1056 64 0 |
Enemy 4 1056 96 0 |
Enemy 4 1056 128 0 |
Enemy 4 1056 160 0 |
Enemy 4 1152 64 0 |
Enemy 4 1152 96 0 |
Enemy 4 1152 128 0 |
Enemy 4 1152 160 0 |
Enemy 4 1200 32 0 |
Enemy 4 1200 192 0 |
Enemy 4 1248 64 0 |
Enemy 4 1248 96 0 |
Enemy 4 1248 128 0 |
Enemy 4 1248 160 0 |
Enemy 4 1344 32 0 |
Enemy 4 1344 64 0 |
Enemy 4 1344 96 0 |
Enemy 4 1344 128 0 |
Enemy 4 1344 160 0 |
Enemy 4 1344 192 0 |
Enemy 4 1392 64 0 |
Enemy 4 1392 96 0 |
Enemy 4 1392 128 0 |
Enemy 4 1440 128 0 |
Enemy 4 1440 160 0 |
Enemy 4 1440 192 0 |
Enemy 4 1488 32 0 |
Enemy 4 1488 64 0 |
Enemy 4 1488 96 0 |
Enemy 4 1488 128 0 |
Enemy 4 1488 160 0 |
Enemy 4 1488 192 0 |
Enemy 4 1584 32 0 |
Enemy 4 1584 64 0 |
Enemy 4 1584 96 0 |
Enemy 4 1584 128 0 |
Enemy 4 1584 160 0 |
Enemy 4 1584 192 0 |
Enemy 4 1632 32 0 |
Enemy 4 1632 96 0 |
Enemy 4 1632 128 0 |
Enemy 4 1632 192 0 |
Enemy 4 1680 32 0 |
Enemy 4 1680 96 0 |
Enemy 4 1680 128 0 |
Enemy 4 1680 192 0 |
Enemy 4 1776 32 0 |
Enemy 4 1776 64 0 |
Enemy 4 1776 96 0 |
Enemy 4 1776 128 0 |
Enemy 4 1776 192 0 |
Enemy 4 1872 32 0 |
Enemy 4 1872 64 0 |
Enemy 4 1872 96 0 |
Enemy 4 1872 128 0 |
Enemy 4 1872 192 0 |
Enemy 4 1968 32 0 |
Enemy 4 1968 64 0 |
Enemy 4 1968 96 0 |
Enemy 4 1968 128 0 |
Enemy 4 1968 192 0 |
Enemy 1 2064 0 1 |
Enemy 1 2064 448 1 |
Enemy 1 2112 32 1 |
Enemy 1 2112 416 1 |
Enemy 1 2160 0 1 |
Enemy 1 2160 448 1 |
Enemy 1 2208 32 1 |
Enemy 1 2208 416 1 |
Enemy 1 2256 0 1 |
Enemy 1 2256 448 1 |
Enemy 1 2304 32 1 |
Enemy 1 2304 416 1 |
Enemy 1 2352 0 1 |
Enemy 1 2352 448 1 |
Enemy 1 2400 32 1 |
Enemy 1 2400 416 1 |
Enemy 1 2448 0 1 |
Enemy 1 2448 448 1 |
Enemy 1 2496 32 1 |
Enemy 1 2496 416 1 |
Enemy 1 2544 0 1 |
Enemy 1 2544 448 1 |
Enemy 1 2592 32 1 |
Enemy 1 2592 416 1 |
Enemy 1 2640 0 1 |
Enemy 1 2640 448 1 |
Enemy 1 2688 32 1 |
Enemy 1 2688 416 1 |
Enemy 1 2736 0 1 |
Enemy 1 2736 448 1 |
Enemy 1 2784 32 1 |
Enemy 1 2784 416 1 |
Enemy 1 2832 0 1 |
Enemy 1 2832 448 1 |
Enemy 1 2880 32 1 |
Enemy 1 2880 416 1 |
Enemy 1 2928 0 1 |
Enemy 1 2928 448 1 |
Enemy 1 2976 32 1 |
Enemy 1 2976 416 1 |
Enemy 1 3024 64 1 |
Enemy 1 3024 384 1 |
Enemy 4 3072 32 0 |
Enemy 1 3072 96 1 |
Enemy 1 3072 352 1 |
Enemy 4 3072 416 0 |
Enemy 4 3120 64 0 |
Enemy 4 3120 384 0 |
Enemy 4 3168 32 0 |
Enemy 4 3168 96 0 |
Enemy 4 3168 352 0 |
Enemy 4 3168 416 0 |
Enemy 4 3216 96 0 |
Enemy 4 3216 352 0 |
Enemy 6 3264 32 1 |
Enemy 4 3264 96 0 |
Enemy 4 3264 352 0 |
Enemy 6 3264 416 1 |
Enemy 4 3312 96 0 |
Enemy 4 3312 352 0 |
Enemy 4 3360 96 0 |
Enemy 4 3360 352 0 |
Enemy 4 3408 96 0 |
Enemy 4 3408 352 0 |
Enemy 4 3456 96 0 |
Enemy 4 3456 352 0 |
Enemy 3 3504 64 1 |
Enemy 3 3504 384 1 |
Enemy 3 3552 32 1 |
Enemy 3 3552 416 1 |
Enemy 3 3600 0 1 |
Enemy 3 3600 448 1 |
Enemy 5 3696 32 1 |
Enemy 5 3696 416 1 |
/Levels/Level 4.lev |
---|
1,63 → 1,20 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
480 |
224 |
1 |
1 |
528 |
160 |
1 |
1 |
528 |
288 |
1 |
5 |
528 |
192 |
1 |
5 |
528 |
256 |
1 |
6 |
1248 |
96 |
2 |
6 |
1248 |
352 |
2 |
1 |
1872 |
96 |
2 |
1 |
1872 |
352 |
2 |
1 |
1872 |
224 |
2 |
5 |
2400 |
64 |
2 |
5 |
2400 |
384 |
2 |
1 |
2976 |
224 |
4 |
1 |
2976 |
192 |
4 |
1 |
2976 |
256 |
4 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 4 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 480 224 1 |
Enemy 1 528 160 1 |
Enemy 5 528 192 1 |
Enemy 5 528 256 1 |
Enemy 1 528 288 1 |
Enemy 6 1248 96 2 |
Enemy 6 1248 352 2 |
Enemy 1 1872 96 2 |
Enemy 1 1872 224 2 |
Enemy 1 1872 352 2 |
Enemy 5 2400 64 2 |
Enemy 5 2400 384 2 |
Enemy 1 2976 192 4 |
Enemy 1 2976 224 4 |
Enemy 1 2976 256 4 |
/Levels/Level 5.lev |
---|
1,83 → 1,25 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
5 |
336 |
96 |
1 |
5 |
336 |
384 |
1 |
5 |
912 |
352 |
1 |
5 |
1152 |
384 |
1 |
5 |
1200 |
64 |
1 |
6 |
1392 |
320 |
2 |
6 |
1632 |
384 |
2 |
6 |
1680 |
32 |
2 |
1 |
1968 |
64 |
1 |
3 |
2352 |
64 |
1 |
2 |
2736 |
128 |
1 |
6 |
2832 |
128 |
2 |
6 |
2976 |
448 |
2 |
6 |
3072 |
352 |
2 |
6 |
3408 |
32 |
2 |
1 |
3504 |
384 |
1 |
1 |
3648 |
448 |
1 |
6 |
3696 |
32 |
2 |
3 |
3936 |
64 |
2 |
7 |
4608 |
256 |
5 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 5 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 5 336 96 1 |
Enemy 5 336 384 1 |
Enemy 5 912 352 1 |
Enemy 5 1152 384 1 |
Enemy 5 1200 64 1 |
Enemy 6 1392 320 2 |
Enemy 6 1632 384 2 |
Enemy 6 1680 32 2 |
Enemy 1 1968 64 1 |
Enemy 3 2352 64 1 |
Enemy 2 2736 128 1 |
Enemy 6 2832 128 2 |
Enemy 6 2976 448 2 |
Enemy 6 3072 352 2 |
Enemy 6 3408 32 2 |
Enemy 1 3504 384 1 |
Enemy 1 3648 448 1 |
Enemy 6 3696 32 2 |
Enemy 3 3936 64 2 |
Enemy 7 4608 256 5 |
/Levels/Level 6.lev |
---|
1,159 → 1,44 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
576 |
64 |
1 |
1 |
576 |
384 |
1 |
1 |
576 |
288 |
1 |
1 |
576 |
160 |
1 |
1 |
576 |
224 |
1 |
1 |
624 |
64 |
1 |
1 |
624 |
160 |
1 |
1 |
624 |
224 |
1 |
1 |
624 |
288 |
1 |
1 |
624 |
384 |
1 |
5 |
912 |
160 |
1 |
5 |
912 |
288 |
1 |
5 |
912 |
224 |
1 |
5 |
960 |
160 |
1 |
5 |
960 |
288 |
1 |
5 |
960 |
224 |
1 |
5 |
1008 |
224 |
1 |
5 |
1008 |
160 |
1 |
5 |
1008 |
288 |
1 |
2 |
1104 |
160 |
1 |
2 |
1104 |
224 |
1 |
2 |
1104 |
288 |
1 |
2 |
1152 |
288 |
1 |
2 |
1152 |
224 |
1 |
2 |
1152 |
160 |
1 |
2 |
1200 |
288 |
1 |
2 |
1200 |
224 |
1 |
2 |
1200 |
160 |
1 |
6 |
1296 |
160 |
1 |
6 |
1296 |
224 |
1 |
6 |
1296 |
288 |
1 |
6 |
1344 |
288 |
1 |
6 |
1344 |
224 |
1 |
6 |
1344 |
160 |
1 |
6 |
1392 |
288 |
1 |
6 |
1392 |
224 |
1 |
6 |
1392 |
160 |
1 |
3 |
2064 |
192 |
5 |
3 |
2064 |
256 |
5 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 6 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 576 64 1 |
Enemy 1 576 160 1 |
Enemy 1 576 224 1 |
Enemy 1 576 288 1 |
Enemy 1 576 384 1 |
Enemy 1 624 64 1 |
Enemy 1 624 160 1 |
Enemy 1 624 224 1 |
Enemy 1 624 288 1 |
Enemy 1 624 384 1 |
Enemy 5 912 160 1 |
Enemy 5 912 224 1 |
Enemy 5 912 288 1 |
Enemy 5 960 160 1 |
Enemy 5 960 224 1 |
Enemy 5 960 288 1 |
Enemy 5 1008 160 1 |
Enemy 5 1008 224 1 |
Enemy 5 1008 288 1 |
Enemy 2 1104 160 1 |
Enemy 2 1104 224 1 |
Enemy 2 1104 288 1 |
Enemy 2 1152 160 1 |
Enemy 2 1152 224 1 |
Enemy 2 1152 288 1 |
Enemy 2 1200 160 1 |
Enemy 2 1200 224 1 |
Enemy 2 1200 288 1 |
Enemy 6 1296 160 1 |
Enemy 6 1296 224 1 |
Enemy 6 1296 288 1 |
Enemy 6 1344 160 1 |
Enemy 6 1344 224 1 |
Enemy 6 1344 288 1 |
Enemy 6 1392 160 1 |
Enemy 6 1392 224 1 |
Enemy 6 1392 288 1 |
Enemy 3 2064 192 5 |
Enemy 3 2064 256 5 |
/Levels/Level 7.lev |
---|
1,235 → 1,63 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
1 |
48 |
256 |
1 |
1 |
144 |
416 |
1 |
1 |
192 |
96 |
1 |
1 |
240 |
160 |
1 |
1 |
288 |
256 |
1 |
1 |
336 |
288 |
1 |
1 |
480 |
224 |
1 |
1 |
480 |
320 |
1 |
5 |
1056 |
160 |
1 |
2 |
1056 |
416 |
1 |
1 |
1104 |
64 |
1 |
2 |
1152 |
96 |
1 |
5 |
1248 |
416 |
1 |
5 |
1248 |
160 |
1 |
3 |
1488 |
224 |
1 |
5 |
1536 |
384 |
1 |
2 |
1680 |
160 |
1 |
2 |
1968 |
320 |
1 |
2 |
1968 |
448 |
1 |
1 |
2016 |
96 |
2 |
1 |
2112 |
384 |
5 |
1 |
2160 |
128 |
5 |
6 |
2208 |
352 |
1 |
6 |
2256 |
320 |
1 |
6 |
2256 |
384 |
1 |
6 |
2304 |
64 |
1 |
1 |
2304 |
256 |
5 |
6 |
2352 |
192 |
1 |
2 |
2400 |
416 |
1 |
1 |
2400 |
128 |
1 |
2 |
2448 |
256 |
1 |
6 |
2496 |
128 |
1 |
1 |
2496 |
192 |
1 |
2 |
2544 |
64 |
1 |
1 |
2544 |
352 |
5 |
1 |
2592 |
256 |
5 |
6 |
2688 |
288 |
1 |
6 |
2688 |
64 |
1 |
1 |
2880 |
96 |
1 |
1 |
2928 |
416 |
1 |
2 |
3120 |
416 |
1 |
5 |
3168 |
256 |
1 |
1 |
3216 |
320 |
1 |
6 |
3312 |
384 |
1 |
5 |
3408 |
64 |
1 |
2 |
3456 |
256 |
1 |
1 |
3552 |
256 |
1 |
6 |
3600 |
192 |
1 |
5 |
3600 |
416 |
1 |
5 |
3696 |
128 |
1 |
5 |
3792 |
256 |
1 |
2 |
3936 |
32 |
1 |
5 |
3984 |
320 |
1 |
5 |
4080 |
64 |
1 |
2 |
4080 |
288 |
1 |
2 |
4128 |
416 |
1 |
1 |
4176 |
224 |
2 |
7 |
4560 |
224 |
7 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 7 |
Author Andreas Kübelsbeck |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 1 48 256 1 |
Enemy 1 144 416 1 |
Enemy 1 192 96 1 |
Enemy 1 240 160 1 |
Enemy 1 288 256 1 |
Enemy 1 336 288 1 |
Enemy 1 480 224 1 |
Enemy 1 480 320 1 |
Enemy 5 1056 160 1 |
Enemy 2 1056 416 1 |
Enemy 1 1104 64 1 |
Enemy 2 1152 96 1 |
Enemy 5 1248 160 1 |
Enemy 5 1248 416 1 |
Enemy 3 1488 224 1 |
Enemy 5 1536 384 1 |
Enemy 2 1680 160 1 |
Enemy 2 1968 320 1 |
Enemy 2 1968 448 1 |
Enemy 1 2016 96 2 |
Enemy 1 2112 384 5 |
Enemy 1 2160 128 5 |
Enemy 6 2208 352 1 |
Enemy 6 2256 320 1 |
Enemy 6 2256 384 1 |
Enemy 6 2304 64 1 |
Enemy 1 2304 256 5 |
Enemy 6 2352 192 1 |
Enemy 1 2400 128 1 |
Enemy 2 2400 416 1 |
Enemy 2 2448 256 1 |
Enemy 6 2496 128 1 |
Enemy 1 2496 192 1 |
Enemy 2 2544 64 1 |
Enemy 1 2544 352 5 |
Enemy 1 2592 256 5 |
Enemy 6 2688 64 1 |
Enemy 6 2688 288 1 |
Enemy 1 2880 96 1 |
Enemy 1 2928 416 1 |
Enemy 2 3120 416 1 |
Enemy 5 3168 256 1 |
Enemy 1 3216 320 1 |
Enemy 6 3312 384 1 |
Enemy 5 3408 64 1 |
Enemy 2 3456 256 1 |
Enemy 1 3552 256 1 |
Enemy 6 3600 192 1 |
Enemy 5 3600 416 1 |
Enemy 5 3696 128 1 |
Enemy 5 3792 256 1 |
Enemy 2 3936 32 1 |
Enemy 5 3984 320 1 |
Enemy 5 4080 64 1 |
Enemy 2 4080 288 1 |
Enemy 2 4128 416 1 |
Enemy 1 4176 224 2 |
Enemy 7 4560 224 7 |
/Levels/Level 8.lev |
---|
1,95 → 1,28 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
4 |
240 |
288 |
4 |
336 |
64 |
3 |
432 |
224 |
2 |
2 |
432 |
192 |
2 |
2 |
432 |
256 |
2 |
1 |
432 |
160 |
2 |
1 |
432 |
288 |
2 |
4 |
576 |
352 |
4 |
672 |
224 |
4 |
768 |
320 |
3 |
960 |
224 |
2 |
2 |
1008 |
192 |
2 |
2 |
1008 |
256 |
2 |
1 |
1056 |
160 |
2 |
1 |
1056 |
288 |
2 |
6 |
1056 |
224 |
2 |
2 |
1104 |
192 |
2 |
2 |
1104 |
256 |
2 |
3 |
1152 |
224 |
2 |
5 |
1776 |
224 |
5 |
5 |
1776 |
256 |
5 |
6 |
1824 |
224 |
5 |
6 |
1824 |
256 |
5 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 8 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 4 240 288 0 |
Enemy 4 336 64 0 |
Enemy 1 432 160 2 |
Enemy 2 432 192 2 |
Enemy 3 432 224 2 |
Enemy 2 432 256 2 |
Enemy 1 432 288 2 |
Enemy 4 576 352 0 |
Enemy 4 672 224 0 |
Enemy 4 768 320 0 |
Enemy 3 960 224 2 |
Enemy 2 1008 192 2 |
Enemy 2 1008 256 2 |
Enemy 1 1056 160 2 |
Enemy 6 1056 224 2 |
Enemy 1 1056 288 2 |
Enemy 2 1104 192 2 |
Enemy 2 1104 256 2 |
Enemy 3 1152 224 2 |
Enemy 5 1776 224 5 |
Enemy 5 1776 256 5 |
Enemy 6 1824 224 5 |
Enemy 6 1824 256 5 |
/Levels/Level 9.lev |
---|
1,155 → 1,43 |
; SpaceMission 1.0 |
; LEV-File |
1200 |
4 |
240 |
128 |
4 |
288 |
352 |
1 |
384 |
64 |
2 |
1 |
384 |
384 |
2 |
1 |
384 |
224 |
2 |
2 |
432 |
64 |
2 |
2 |
432 |
224 |
2 |
2 |
432 |
384 |
2 |
3 |
480 |
64 |
2 |
3 |
480 |
224 |
2 |
3 |
480 |
384 |
2 |
4 |
624 |
128 |
4 |
768 |
64 |
4 |
864 |
224 |
4 |
864 |
416 |
4 |
912 |
32 |
5 |
1104 |
96 |
2 |
5 |
1104 |
352 |
2 |
5 |
1104 |
224 |
2 |
4 |
1296 |
192 |
4 |
1440 |
64 |
6 |
1536 |
320 |
2 |
6 |
1680 |
96 |
2 |
4 |
1728 |
160 |
4 |
1824 |
320 |
6 |
2016 |
64 |
2 |
6 |
2112 |
384 |
2 |
6 |
2208 |
128 |
2 |
6 |
2352 |
288 |
2 |
4 |
2400 |
64 |
4 |
2544 |
416 |
4 |
2592 |
128 |
4 |
2880 |
64 |
4 |
2880 |
320 |
4 |
2976 |
160 |
3 |
3456 |
160 |
7 |
3 |
3456 |
192 |
7 |
3 |
3456 |
224 |
7 |
[1.3.6.1.4.1.37476.2.8.1.1] |
Name Level 9 |
Author Patrick Büssecker |
Width 1200 |
; Type XCoord YCoord Lives |
Enemy 4 240 128 0 |
Enemy 4 288 352 0 |
Enemy 1 384 64 2 |
Enemy 1 384 224 2 |
Enemy 1 384 384 2 |
Enemy 2 432 64 2 |
Enemy 2 432 224 2 |
Enemy 2 432 384 2 |
Enemy 3 480 64 2 |
Enemy 3 480 224 2 |
Enemy 3 480 384 2 |
Enemy 4 624 128 0 |
Enemy 4 768 64 0 |
Enemy 4 864 224 0 |
Enemy 4 864 416 0 |
Enemy 4 912 32 0 |
Enemy 5 1104 96 2 |
Enemy 5 1104 224 2 |
Enemy 5 1104 352 2 |
Enemy 4 1296 192 0 |
Enemy 4 1440 64 0 |
Enemy 6 1536 320 2 |
Enemy 6 1680 96 2 |
Enemy 4 1728 160 0 |
Enemy 4 1824 320 0 |
Enemy 6 2016 64 2 |
Enemy 6 2112 384 2 |
Enemy 6 2208 128 2 |
Enemy 6 2352 288 2 |
Enemy 4 2400 64 0 |
Enemy 4 2544 416 0 |
Enemy 4 2592 128 0 |
Enemy 4 2880 64 0 |
Enemy 4 2880 320 0 |
Enemy 4 2976 160 0 |
Enemy 3 3456 160 7 |
Enemy 3 3456 192 7 |
Enemy 3 3456 224 7 |
/Levels |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/DXGUIDEdit.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX_for6.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXPlayFm.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DAnim.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXReg_original.pas |
---|
File deleted |
/VCL_DELPHIX_D6/DXFFBEdit.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXPlay.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXDraws.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXETable.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DIB.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DirectX.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXPictEdit.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXConsts.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXRender.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DirectX.txt |
---|
File deleted |
/VCL_DELPHIX_D6/DXInput.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/Wave.pas |
---|
File deleted |
/VCL_DELPHIX_D6/Wave.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXInptEdit.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXSounds.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DShow.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXSprite.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXTexImg.pas |
---|
File deleted |
/VCL_DELPHIX_D6/DXClass.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXReg.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXTexImg.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXWaveEdit.dcu |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Deleted: svn:mime-type |
-application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DXETable.pas |
---|
5,15 → 5,36 |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, SysUtils, DirectX; |
Windows, SysUtils, |
{$IfDef StandardDX} |
{$ifdef DX7} |
DirectDraw, Direct3D,DirectInput,DirectPlay,DirectSound; |
{$else} |
{$IfDef DX9} |
DirectDraw, Direct3D9, Direct3D, D3DX9, {Direct3D8,} DX7toDX8, DirectInput, DirectPlay8, DirectSound; |
// {$Else} |
// {$IfDef DX81} |
// D3DX8, Direct3D8, DirectInput8, DirectXGraphics, DX7toDX8, DirectPlay8; |
// {$Else} |
// DirectInput, Direct3D, Direct3DRM, DirectPlay; |
{$EndIf} |
{$EndIf} |
{$Else} |
DirectX; |
{$EndIf} |
function WindowsErrorMsg(ErrorCode: HRESULT): string; |
function DDrawErrorMsg(ErrorCode: HRESULT): string; |
function D3DErrorMsg(ErrorCode: HRESULT): string; |
{$IFDEF D3DRM} |
function D3DRMErrorMsg(ErrorCode: HRESULT): string; |
{$ENDIF} |
function DSoundErrorMsg(ErrorCode: HRESULT): string; |
function DInputErrorMsg(ErrorCode: HRESULT): string; |
{$IFDEF UseDirectPlay} |
function DPlayErrorMsg(ErrorCode: HRESULT): string; |
{$EndIf} // UseDirectPlay |
implementation |
204,7 → 225,7 |
Result := WindowsErrorMsg(ErrorCode); |
end; |
end; |
{$IFDEF D3DRM} |
function D3DRMErrorMsg(ErrorCode: HRESULT): string; |
begin |
case ErrorCode of |
226,7 → 247,7 |
Result := WindowsErrorMsg(ErrorCode); |
end; |
end; |
{$ENDIF} |
function DSoundErrorMsg(ErrorCode: HRESULT): string; |
begin |
case ErrorCode of |
271,15 → 292,82 |
DIERR_INPUTLOST : Result := 'DIERR_INPUTLOST'; |
DIERR_ACQUIRED : Result := 'DIERR_ACQUIRED'; |
DIERR_NOTACQUIRED : Result := 'DIERR_NOTACQUIRED'; |
E_PENDING : Result := 'E_PENDING'; |
HRESULT(E_PENDING) : Result := 'E_PENDING'; |
else |
Result := WindowsErrorMsg(ErrorCode); |
end; |
end; |
{$IFDEF UseDirectPlay} |
{$IfDef DX9} |
function DPlayErrorMsg(ErrorCode: HRESULT): string; |
begin |
case ErrorCode of |
DPN_OK : Result := 'DPN_OK'; |
DPNERR_ALREADYINITIALIZED : Result := 'DPNERR_ALREADYINITIALIZED'; |
//DPNERR_ACCESSDENIED : Result := 'DPNERR_ACCESSDENIED'; |
//DPNERR_ACTIVEPLAYERS : Result := 'DPNERR_ACTIVEPLAYERS'; |
DPNERR_BUFFERTOOSMALL : Result := 'DPNERR_BUFFERTOOSMALL'; |
//DPNERR_CANTADDPLAYER : Result := 'DPNERR_CANTADDPLAYER'; |
DPNERR_CANTCREATEGROUP : Result := 'DPNERR_CANTCREATEGROUP'; |
DPNERR_CANTCREATEPLAYER : Result := 'DPNERR_CANTCREATEPLAYER'; |
//DPNERR_CANTCREATESESSION : Result := 'DPNERR_CANTCREATESESSION'; |
//DPNERR_CAPSNOTAVAILABLEYET : Result := 'DPNERR_CAPSNOTAVAILABLEYET'; |
DPNERR_EXCEPTION : Result := 'DPNERR_EXCEPTION'; |
DPNERR_GENERIC : Result := 'DPNERR_GENERIC'; |
DPNERR_INVALIDFLAGS : Result := 'DPNERR_INVALIDFLAGS'; |
DPNERR_INVALIDOBJECT : Result := 'DPNERR_INVALIDOBJECT'; |
DPNERR_INVALIDPARAM : Result := 'DPNERR_INVALIDPARAM, DPNERR_INVALIDPARAMS'; |
DPNERR_INVALIDPLAYER : Result := 'DPNERR_INVALIDPLAYER'; |
DPNERR_INVALIDGROUP : Result := 'DPNERR_INVALIDGROUP'; |
DPNERR_NOCAPS : Result := 'DPNERR_NOCAPS'; |
DPNERR_NOCONNECTION : Result := 'DPNERR_NOCONNECTION'; |
//DPNERR_NOMEMORY : Result := 'DPNERR_NOMEMORY, DPNERR_OUTOFMEMORY'; |
//DPNERR_NOMESSAGES : Result := 'DPNERR_NOMESSAGES'; |
//DPNERR_NONAMESERVERFOUND : Result := 'DPNERR_NONAMESERVERFOUND'; |
//DPNERR_NOPLAYERS : Result := 'DPNERR_NOPLAYERS'; |
//DPNERR_NOSESSIONS : Result := 'DPNERR_NOSESSIONS'; |
DPNERR_PENDING : Result := 'DPNERR_PENDING'; |
//DPNERR_SENDTOOBIG : Result := 'DPNERR_SENDTOOBIG'; |
//DPNERR_TIMEOUT : Result := 'DPNERR_TIMEOUT'; |
//DPNERR_UNAVAILABLE : Result := 'DPNERR_UNAVAILABLE'; |
DPNERR_UNSUPPORTED : Result := 'DPNERR_UNSUPPORTED'; |
//DPNERR_BUSY : Result := 'DPNERR_BUSY'; |
DPNERR_USERCANCEL : Result := 'DPNERR_USERCANCEL'; |
DPNERR_NOINTERFACE : Result := 'DPNERR_NOINTERFACE'; |
//DPNERR_CANNOTCREATESERVER : Result := 'DPNERR_CANNOTCREATESERVER'; |
DPNERR_PLAYERLOST : Result := 'DPNERR_PLAYERLOST'; |
//DPNERR_SESSIONLOST : Result := 'DPNERR_SESSIONLOST'; |
DPNERR_UNINITIALIZED : Result := 'DPNERR_UNINITIALIZED'; |
//DPNERR_NONEWPLAYERS : Result := 'DPNERR_NONEWPLAYERS'; |
DPNERR_INVALIDPASSWORD : Result := 'DPNERR_INVALIDPASSWORD'; |
DPNERR_CONNECTING : Result := 'DPNERR_CONNECTING'; |
//DPNERR_BUFFERTOOLARGE : Result := 'DPNERR_BUFFERTOOLARGE'; |
//DPNERR_CANTCREATEPROCESS : Result := 'DPNERR_CANTCREATEPROCESS'; |
//DPNERR_APPNOTSTARTED : Result := 'DPNERR_APPNOTSTARTED'; |
DPNERR_INVALIDINTERFACE : Result := 'DPNERR_INVALIDINTERFACE'; |
//DPNERR_NOSERVICEPROVIDER : Result := 'DPNERR_NOSERVICEPROVIDER'; |
//DPNERR_UNKNOWNAPPLICATION : Result := 'DPNERR_UNKNOWNAPPLICATION'; |
//DPNERR_NOTLOBBIED : Result := 'DPNERR_NOTLOBBIED'; |
//DPNERR_SERVICEPROVIDERLOADED : Result := 'DPNERR_SERVICEPROVIDERLOADED'; |
DPNERR_NOTREGISTERED : Result := 'DPNERR_NOTREGISTERED'; |
// Security related errors |
//DPNERR_AUTHENTICATIONFAILED : Result := 'DPNERR_AUTHENTICATIONFAILED'; |
//DPNERR_CANTLOADSSPI : Result := 'DPNERR_CANTLOADSSPI'; |
//DPNERR_ENCRYPTIONFAILED : Result := 'DPNERR_ENCRYPTIONFAILED'; |
//DPNERR_SIGNFAILED : Result := 'DPNERR_SIGNFAILED'; |
//DPNERR_CANTLOADSECURITYPACKAGE : Result := 'DPNERR_CANTLOADSECURITYPACKAGE'; |
//DPNERR_ENCRYPTIONNOTSUPPORTED : Result := 'DPNERR_ENCRYPTIONNOTSUPPORTED'; |
//DPNERR_CANTLOADCAPI : Result := 'DPNERR_CANTLOADCAPI'; |
//DPNERR_NOTLOGGEDIN : Result := 'DPNERR_NOTLOGGEDIN'; |
//DPNERR_LOGONDENIED : Result := 'DPNERR_LOGONDENIED'; |
else |
Result := WindowsErrorMsg(ErrorCode); |
end; |
end; |
{$Else} |
function DPlayErrorMsg(ErrorCode: HRESULT): string; |
begin |
case ErrorCode of |
DP_OK : Result := 'DP_OK'; |
DPERR_ALREADYINITIALIZED : Result := 'DPERR_ALREADYINITIALIZED'; |
DPERR_ACCESSDENIED : Result := 'DPERR_ACCESSDENIED'; |
342,5 → 430,6 |
Result := WindowsErrorMsg(ErrorCode); |
end; |
end; |
{$EndIf} |
{$EndIf} // UseDirectPlay |
end. |
/VCL_DELPHIX_D6/DXPlay.pas |
---|
1,13 → 1,33 |
unit DXPlay; |
{$INCLUDE DelphiXcfg.inc} |
{$IFNDEF UseDirectPlay} |
// If you want to use DXPlay.pas, please enable the IFDEF UseDirectPlay in DelphiXcfg.inc |
interface |
implementation |
{$ELSE} // !UseDirectPlay |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses |
Windows, SysUtils, Classes, Forms, DXClass, ActiveX, DirectX, DXETable; |
Windows, SysUtils, Classes, Forms, DXClass, ActiveX, DXETable, |
{$IfDef StandardDX} |
DirectDraw, |
// Delphi 2010 cannot be use DirectPlay8 because structure was not rewriten |
// {$IfDef DX9} |
// DirectPlay8, DX7toDX8; |
// {$Else} |
DirectPlay; //old wersion, current in directory |
// {$EndIf} |
{$Else} |
DirectX; |
{$EndIf} |
type |
{$IfDef DX9} |
TDPID = DWORD; |
{$EndIf} |
{ TDXPlayPlayer } |
88,7 → 108,8 |
TCustomDXPlay = class(TComponent) |
private |
FDPlay: IDirectPlay4A; |
FDPlay: //{$IfDef DX7} |
IDirectPlay4A;//{$Else}IDirectPlay8Address{$EndIf}; |
FGUID: string; |
FIsHost: Boolean; |
FLocalPlayer: TDXPlayPlayer; |
116,7 → 137,11 |
FAsync: Boolean; |
FAsyncSupported: Boolean; |
procedure ChangeDPlay; |
procedure CreateDPlayWithoutDialog(out DPlay: IDirectPlay4A; const ProviderName: string); |
procedure CreateDPlayWithoutDialog(out DPlay: |
//{$IfDef DX7} |
IDirectPlay4A; |
//{$Else}IDirectPlay8Address{$EndIf}; |
const ProviderName: string); |
function OpenDPlayWithLobby(out Name: string): Boolean; |
function OpenDPlayWithoutLobby(out Name: string): Boolean; |
function OpenDPlayWithoutLobby2(const NewSession: Boolean; const ProviderName, SessionName, PlayerName: string): Boolean; |
191,7 → 216,10 |
function DXPlayMessageType(P: Pointer): DWORD; |
function DXPlayStringToGUID(const S: string): TGUID; |
function DXDirectPlayCreate(const lpGUID: TGUID; out lplpDP: IDirectPlay; |
function DXDirectPlayCreate(const lpGUID: TGUID; out lplpDP: |
//{$IfDef DX7} |
IDirectPlay; |
//{$Else}IDirectPlay8Server{$EndIf}; |
pUnk: IUnknown): HRESULT; |
implementation |
224,7 → 252,10 |
CoTaskMemFree(P); |
end; |
function DXDirectPlayCreate(const lpGUID: TGUID; out lplpDP: IDirectPlay; |
function DXDirectPlayCreate(const lpGUID: TGUID; out lplpDP: |
//{$IfDef DX7} |
IDirectPlay; |
//{$Else}IDirectPlay8Server{$EndIf}; |
pUnk: IUnknown): HRESULT; |
type |
TDirectPlayCreate= function(const lpGUID: TGUID; out lplpDP: IDirectPlay; pUnk: IUnknown): HRESULT; stdcall; |
232,9 → 263,27 |
Result := TDirectPlayCreate(DXLoadLibrary('DPlayX.dll', 'DirectPlayCreate')) |
(lpGUID, lplpDP, pUnk); |
end; |
{$IFDEF UNICODE} |
function DXDirectPlayEnumerate(lpEnumDPCallback: TDPEnumDPCallbackW; lpContext: Pointer): HRESULT; |
type |
TDirectPlayEnumerateW= function(lpEnumDPCallback: TDPEnumDPCallbackW; lpContext: Pointer): HRESULT; stdcall; |
begin |
Result := TDirectPlayEnumerateW(DXLoadLibrary('DPlayX.dll', 'DirectPlayEnumerateW')) |
(lpEnumDPCallback, lpContext); |
end; |
function DXDirectPlayEnumerateA(lpEnumDPCallback: TDPEnumDPCallbackA; lpContext: Pointer): HRESULT; |
function DXDirectPlayLobbyCreate(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobbyW; |
lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HRESULT; |
type |
TDirectPlayLobbyCreateW = function(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobbyW; |
lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HRESULT; stdcall; |
begin |
Result := TDirectPlayLobbyCreateW(DXLoadLibrary('DPlayX.dll', 'DirectPlayLobbyCreateW')) |
(lpguidSP, lplpDPL, lpUnk, lpData, dwDataSize); |
end; |
{$ELSE} |
function DXDirectPlayEnumerate(lpEnumDPCallback: TDPEnumDPCallbackA; lpContext: Pointer): HRESULT; |
type |
TDirectPlayEnumerateA= function(lpEnumDPCallback: TDPEnumDPCallbackA; lpContext: Pointer): HRESULT; stdcall; |
begin |
Result := TDirectPlayEnumerateA(DXLoadLibrary('DPlayX.dll', 'DirectPlayEnumerateA')) |
241,7 → 290,7 |
(lpEnumDPCallback, lpContext); |
end; |
function DXDirectPlayLobbyCreateA(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobbyA; |
function DXDirectPlayLobbyCreate(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobbyA; |
lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HRESULT; |
type |
TDirectPlayLobbyCreateA = function(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobbyA; |
250,7 → 299,7 |
Result := TDirectPlayLobbyCreateA(DXLoadLibrary('DPlayX.dll', 'DirectPlayLobbyCreateA')) |
(lpguidSP, lplpDPL, lpUnk, lpData, dwDataSize); |
end; |
{$ENDIF} |
{ TDXPlayPlayers } |
constructor TDXPlayPlayers.Create; |
316,10 → 365,16 |
end; |
var |
{$IFDEF UNICODE} |
Lobby1: IDirectPlayLobbyW; |
Lobby: IDirectPlayLobby2W; |
DPlay: IDirectPlay4W; |
{$ELSE} |
Lobby1: IDirectPlayLobbyA; |
Lobby: IDirectPlayLobby2A; |
DPlay: IDirectPlay4A; |
{$ENDIF} |
DPlay1: IDirectPlay; |
DPlay: IDirectPlay4A; |
lpAddress: Pointer; |
dwAddressSize: DWORD; |
begin |
327,16 → 382,16 |
begin |
FModemNames := TStringList.Create; |
try |
if DXDirectPlayLobbyCreateA(PGUID(nil)^, Lobby1, nil, nil, 0)<>0 then |
if DXDirectPlayLobbyCreate(PGUID(nil)^, Lobby1, nil, nil, 0)<>0 then |
raise EDXPlayError.CreateFmt(SCannotInitialized, [SDirectPlay]); |
Lobby := Lobby1 as IDirectPlayLobby2A; |
Lobby := Lobby1 as {$IFDEF UNICODE}IDirectPlayLobby2W{$ELSE}IDirectPlayLobby2A{$ENDIF}; |
if DXDirectPlayCreate(DPSPGUID_MODEM, DPlay1, nil)<>0 then |
raise EDXPlayError.CreateFmt(SCannotInitialized, [SDirectPlay]); |
DPlay := DPlay1 as IDirectPlay4A; |
DPlay := DPlay1 as {$IFDEF UNICODE}IDirectPlay4W{$ELSE}IDirectPlay4A{$ENDIF}; |
{ get size of player address for all players } |
if DPlay.GetPlayerAddress(DPID_ALLPLAYERS, nil^, dwAddressSize)<>DPERR_BUFFERTOOSMALL then |
if DPlay.GetPlayerAddress(DPID_ALLPLAYERS, nil, dwAddressSize)<>DPERR_BUFFERTOOSMALL then |
raise EDXPlayError.Create(SDXPlayModemListCannotBeAcquired); |
GetMem(lpAddress, dwAddressSize); |
344,7 → 399,7 |
FillChar(lpAddress^, dwAddressSize, 0); |
{ get the address } |
if DPlay.GetPlayerAddress(DPID_ALLPLAYERS, lpAddress^, dwAddressSize)<>0 then |
if DPlay.GetPlayerAddress(DPID_ALLPLAYERS, lpAddress, dwAddressSize)<>0 then |
raise EDXPlayError.Create(SDXPlayModemListCannotBeAcquired); |
{ get modem strings from address and put them in the combo box } |
470,12 → 525,12 |
try |
repeat |
hr := FDPlay.Receive(idFrom, idTo, DPRECEIVE_ALL, lpvMsgBuffer^, dwMsgBufferSize); |
hr := FDPlay.Receive(idFrom, idTo, DPRECEIVE_ALL, lpvMsgBuffer, dwMsgBufferSize); |
if hr=DPERR_BUFFERTOOSMALL then |
begin |
ReAllocMem(lpvMsgBuffer, dwMsgBufferSize); |
hr := FDPlay.Receive(idFrom, idTo, DPRECEIVE_ALL, lpvMsgBuffer^, dwMsgBufferSize); |
hr := FDPlay.Receive(idFrom, idTo, DPRECEIVE_ALL, lpvMsgBuffer, dwMsgBufferSize); |
end; |
if (hr=0) and (dwMsgBufferSize>=SizeOf(TDPMSG_GENERIC)) then |
497,8 → 552,13 |
with Msg_CreatePlayerOrGroup.dpnName do |
begin |
{$IFDEF UNICODE} |
if lpszShortNameW<>nil then |
Player.FName := lpszShortNameW; |
{$ELSE} |
if lpszShortNameA<>nil then |
Player.FName := lpszShortNameA; |
{$ENDIF} |
end; |
DoAddPlayer(Player); |
604,7 → 664,7 |
function TCustomDXPlay.GetProviders: TStrings; |
function EnumProviderCallback(const lpguidSP: TGUID; lpSPName: LPSTR; |
function EnumProviderCallback(const lpguidSP: TGUID; lpSPName: {$IFDEF UNICODE}LPCTSTR{$ELSE}LPSTR{$ENDIF}; |
dwMajorVersion: DWORD; dwMinorVersion: DWORD; lpContext: Pointer): |
BOOL; stdcall; |
var |
621,7 → 681,7 |
begin |
FProviders := TStringList.Create; |
try |
DXDirectPlayEnumerateA(@EnumProviderCallback, FProviders); |
DXDirectPlayEnumerate(@EnumProviderCallback, FProviders); |
except |
FProviders.Free; FProviders := nil; |
raise; |
646,8 → 706,11 |
Guid := New(PGUID); |
Move(lpThisSD.guidInstance, Guid^, SizeOf(TGUID)); |
{$IFDEF UNICODE} |
TStrings(lpContext).AddObject(lpThisSD.lpszSessionNameW, TObject(Guid)); |
{$ELSE} |
TStrings(lpContext).AddObject(lpThisSD.lpszSessionNameA, TObject(Guid)); |
{$ENDIF} |
Result := True; |
end; |
698,8 → 761,13 |
ProviderGUID: TGUID; |
addressElements: array[0..15] of TDPCompoundAddressElement; |
dwElementCount: Integer; |
{$IFDEF UNICODE} |
Lobby1: IDirectPlayLobbyW; |
Lobby: IDirectPlayLobby2W; |
{$ELSE} |
Lobby1: IDirectPlayLobbyA; |
Lobby: IDirectPlayLobby2A; |
{$ENDIF} |
lpAddress: Pointer; |
dwAddressSize: DWORD; |
begin |
709,9 → 777,9 |
ProviderGUID := PGUID(Providers.Objects[i])^; |
{ DirectPlay address making } |
if DXDirectPlayLobbyCreateA(PGUID(nil)^, Lobby1, nil, nil, 0)<>0 then |
if DXDirectPlayLobbyCreate(PGUID(nil)^, Lobby1, nil, nil, 0)<>0 then |
raise EDXPlayError.CreateFmt(SCannotInitialized, [SDirectPlay]); |
Lobby := Lobby1 as IDirectPlayLobby2A; |
Lobby := Lobby1 as {$IFDEF UNICODE}IDirectPlayLobby2W{$ELSE}IDirectPlayLobby2A{$ENDIF}; |
FillChar(addressElements, SizeOf(addressElements), 0); |
dwElementCount := 0; |
760,7 → 828,7 |
end; |
end; |
if Lobby.CreateCompoundAddress(addressElements[0], dwElementCount, nil^, dwAddressSize)<>DPERR_BUFFERTOOSMALL then |
if Lobby.CreateCompoundAddress(addressElements[0], dwElementCount, nil, dwAddressSize)<>DPERR_BUFFERTOOSMALL then |
raise EDXPlayError.CreateFmt(SCannotInitialized, [SDirectPlay]); |
GetMem(lpAddress, dwAddressSize); |
767,7 → 835,7 |
try |
FillChar(lpAddress^, dwAddressSize, 0); |
if Lobby.CreateCompoundAddress(addressElements[0], dwElementCount, lpAddress^, dwAddressSize)<>0 then |
if Lobby.CreateCompoundAddress(addressElements[0], dwElementCount, lpAddress, dwAddressSize)<>0 then |
raise EDXPlayError.CreateFmt(SCannotInitialized, [SDirectPlay]); |
{ DirectPlay initialization } |
837,8 → 905,13 |
with lpName do |
begin |
{$IFDEF UNICODE} |
if lpszShortNameW<>nil then |
Player.FName := lpszShortNameW; |
{$ELSE} |
if lpszShortNameA<>nil then |
Player.FName := lpszShortNameA; |
{$ENDIF} |
end; |
Result := True; |
862,11 → 935,11 |
FLocalPlayer := TDXPlayPlayer.Create(FPlayers); |
FLocalPlayer.FName := NameS; |
if FDPlay.CreatePlayer(FLocalPlayer.FID, Name, FRecvEvent[0], nil^, 0, 0)<>DP_OK then |
if FDPlay.CreatePlayer(FLocalPlayer.FID, @Name, FRecvEvent[0], nil, 0, 0)<>DP_OK then |
raise EDXPlayError.CreateFmt(SCannotOpened, [FSessionName]); |
{ Player enumeration } |
FDPlay.EnumPlayers(PGUID(nil)^, @EnumPlayersCallback2, Self, DPENUMPLAYERS_REMOTE); |
FDPlay.EnumPlayers(PGUID(nil), @EnumPlayersCallback2, Self, DPENUMPLAYERS_REMOTE); |
FIsHost := FPlayers.Count=1; |
875,7 → 948,7 |
{ Thread start } |
FRecvThread := TDXPlayRecvThread.Create(Self); |
FRecvThread.Resume; |
FRecvThread.{$IFDEF VER14UP}Start{$ELSE}Resume{$ENDIF}; |
except |
Close; |
raise; |
900,21 → 973,25 |
function TCustomDXPlay.OpenDPlayWithLobby(out Name: string): Boolean; |
var |
DPlay1: IDirectPlay2; |
{$IFDEF UNICODE} |
Lobby: IDirectPlayLobbyW; |
{$ELSE} |
Lobby: IDirectPlayLobbyA; |
{$ENDIF} |
dwSize: DWORD; |
ConnectionSettings: PDPLConnection; |
begin |
Result := False; |
if DXDirectPlayLobbyCreateA(PGUID(nil)^, Lobby, nil, nil, 0)<>0 then |
if DXDirectPlayLobbyCreate(PGUID(nil)^, Lobby, nil, nil, 0)<>0 then |
Exit; |
if Lobby.GetConnectionSettings(0, PDPLConnection(nil)^, dwSize)<>DPERR_BUFFERTOOSMALL then |
if Lobby.GetConnectionSettings(0, PDPLConnection(nil), dwSize)<>DPERR_BUFFERTOOSMALL then |
Exit; |
GetMem(ConnectionSettings, dwSize); |
try |
if Lobby.GetConnectionSettings(0, ConnectionSettings^, dwSize)<>0 then |
if Lobby.GetConnectionSettings(0, ConnectionSettings, dwSize)<>0 then |
Exit; |
with ConnectionSettings^.lpSessionDesc^ do |
933,14 → 1010,24 |
with ConnectionSettings.lpSessionDesc^ do |
begin |
{$IFDEF UNICODE} |
if lpszSessionNameW<>nil then |
FSessionName := lpszSessionNameW; |
{$ELSE} |
if lpszSessionNameA<>nil then |
FSessionName := lpszSessionNameA; |
{$ENDIF} |
end; |
with ConnectionSettings.lpPlayerName^ do |
begin |
{$IFDEF UNICODE} |
if lpszShortNameW<>nil then |
Name := lpszShortNameW; |
{$ELSE} |
if lpszShortNameA<>nil then |
Name := lpszShortNameA; |
{$ENDIF} |
end; |
finally |
FreeMem(ConnectionSettings); |
995,7 → 1082,11 |
FillChar(dpDesc, SizeOf(dpDesc), 0); |
dpDesc.dwSize := SizeOf(dpDesc); |
dpDesc.dwFlags := DPSESSION_MIGRATEHOST or DPSESSION_KEEPALIVE; |
dpDesc.lpszSessionNameA := PChar(SessionName); |
{$IFDEF UNICODE} |
dpDesc.lpszSessionNameW := {$IFDEF VER12UP}PChar{$ELSE}PWideChar{$ENDIF}(SessionName); |
{$ELSE} |
dpDesc.lpszSessionNameA := PAnsiChar(SessionName); |
{$ENDIF} |
dpDesc.guidApplication := DXPlayStringToGUID(GUID); |
dpDesc.dwMaxPlayers := MaxPlayers; |
1079,7 → 1170,7 |
DoMessage(FLocalPlayer, Data, DataSize); |
end else |
if FAsync and FAsyncSupported then |
FDPlay.SendEx(FLocalPlayer.ID, ToID, DPSEND_GUARANTEED or DPSEND_ASYNC, Data^, DataSize, 0, 0, nil, nil) |
FDPlay.SendEx(FLocalPlayer.ID, ToID, DPSEND_GUARANTEED or DPSEND_ASYNC, Data, DataSize, 0, 0, nil, nil) |
else |
FDPlay.Send(FLocalPlayer.ID, ToID, DPSEND_GUARANTEED, Data^, DataSize); |
end; |
1098,7 → 1189,7 |
{ ©ª¶ÌbZ[W } |
DoMessage(FLocalPlayer, Data, DataSize); |
end else |
FDPlay.SendEx(FLocalPlayer.ID, ToID, dwFlags, Data^, DataSize, |
FDPlay.SendEx(FLocalPlayer.ID, ToID, dwFlags, Data, DataSize, |
0, 0, nil, @Result); // 0 ÈOÍT|[gµÈ¢foCX éÌÅgíÈ¢ |
end; |
1143,4 → 1234,6 |
CoInitialize(nil); |
finalization |
CoUninitialize; |
end. |
{$ENDIF} // UseDirectPlay |
end. |
/VCL_DELPHIX_D6/DXPlayFm.pas |
---|
1,10 → 1,23 |
unit DXPlayFm; |
{$INCLUDE DelphiXcfg.inc} |
{$IFNDEF UseDirectPlay} |
// If you want to use DXPlayFm.pas, please enable the IFDEF UseDirectPlay in DelphiXcfg.inc |
interface |
implementation |
{$ELSE} // !UseDirectPlay |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
StdCtrls, ExtCtrls, DirectX, DXPlay, ActiveX, DXETable, DIB; |
StdCtrls, ExtCtrls, DXPlay, ActiveX, DXETable, DIB, |
{$IfDef StandardDX} |
DirectDraw, DirectPlay; |
{$Else} |
DirectX; |
{$EndIf} |
type |
TDelphiXDXPlayForm = class(TForm) |
54,7 → 67,9 |
private |
FProviderGUID: TGUID; |
public |
DPlay: IDirectPlay4A; |
DPlay: //{$IfDef DX7} |
IDirectPlay4A; |
//{$Else}IDirectPlay8Address{$EndIf}; |
DXPlay: TCustomDXPlay; |
PlayerName: string; |
ProviderName: string; |
104,12 → 119,15 |
procedure InitDirectPlay; |
var |
DPlay1: IDirectPlay; |
DPlay1: //{$IfDef DX7} |
IDirectPlay; |
//{$Else}IDirectPlay8Server{$EndIf}; |
begin |
if DXDirectPlayCreate(FProviderGUID, DPlay1, nil)<>0 then |
raise EDXPlayError.CreateFmt(SCannotInitialized, [SDirectPlay]); |
DPlay := DPlay1 as IDirectPlay4A; |
DPlay := DPlay1 as //{$IfDef DX7} |
IDirectPlay4A//{$Else}IDirectPlay8Address{$EndIf} |
end; |
function EnumSessionsCallback(const lpThisSD: TDPSessionDesc2; |
125,8 → 143,11 |
Guid := New(PGUID); |
Move(lpThisSD.guidInstance, Guid^, SizeOf(TGUID)); |
{$IFDEF UNICODE} |
TDelphiXDXPlayForm(lpContext).JoinGameSessionList.Items.AddObject(lpThisSD.lpszSessionNameW, Pointer(Guid)); |
{$ELSE} |
TDelphiXDXPlayForm(lpContext).JoinGameSessionList.Items.AddObject(lpThisSD.lpszSessionNameA, Pointer(Guid)); |
{$ENDIF} |
Result := True; |
end; |
232,7 → 253,11 |
with lpName do |
begin |
if lpszShortNameA<>nil then |
{$IFDEF UNICODE} |
TDelphiXDXPlayForm(lpContext).JoinGamePlayerList.Items.Add(lpszShortNameW); |
{$ELSE} |
TDelphiXDXPlayForm(lpContext).JoinGamePlayerList.Items.Add(lpszShortNameA); |
{$ENDIF} |
end; |
Result := True; |
264,7 → 289,7 |
hr := TempDPlay.Open(dpDesc, DPOPEN_JOIN); |
if hr<>0 then Exit; |
try |
TempDPlay.EnumPlayers(PGUID(nil)^, @EnumPlayersCallback2, Self, DPENUMPLAYERS_REMOTE); |
TempDPlay.EnumPlayers(PGUID(nil), @EnumPlayersCallback2, Self, DPENUMPLAYERS_REMOTE); |
finally |
TempDPlay.Close; |
end; |
411,5 → 436,7 |
end; |
end; |
{$ENDIF} // UseDirectPlay |
end. |
/VCL_DELPHIX_D6/DXReg.pas |
---|
1,53 → 1,1302 |
unit DXReg; |
interface |
{$I DelphiXcfg.inc} |
{$WARNINGS OFF} |
uses |
Windows, SysUtils, Classes, Forms, Dialogs, Graphics, TypInfo, |
DXDraws, DXSounds, DIB, Wave, DXInput, DXPlay, DXSprite, |
DXClass; |
Controls, StdCtrls, ExtCtrls, Buttons, |
{$IFDEF D3DRM}Colli3DX, {$ENDIF} |
{$IFNDEF VER6UP}DsgnIntf, |
{$ELSE}Designintf, DesignEditors, VCLEditors, PropertyCategories, |
{$ENDIF} |
DXDraws, DXSounds, DIB, DXWave, DXInput, DXPlay, DXSprite, DXClass; |
type |
{ TDXDrawDisplayProperty } |
TDXDrawDisplayProperty = class(TClassProperty) |
public |
function GetAttributes: TPropertyAttributes; override; |
function GetValue: string; override; |
procedure GetValues(Proc: TGetStrProc); override; |
procedure SetValue(const Value: string); override; |
end; |
{ TDIBProperty } |
TDIBProperty = class(TPropertyEditor) |
public |
procedure Edit; override; |
function GetValue: string; override; |
function GetAttributes: TPropertyAttributes; override; |
end; |
{ TDXDIBEditor } |
TDXDIBEditor = class(TComponentEditor) |
public |
procedure Edit; override; |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
{ TPictureCollectionItem_PictureProperty } |
TPictureCollectionItem_PictureProperty = class(TPropertyEditor) |
public |
procedure Edit; override; |
function GetValue: string; override; |
function GetAttributes: TPropertyAttributes; override; |
end; |
{ TDXImageListEditor } |
TDXImageListEditor = class(TComponentEditor) |
private |
procedure ListBox1DblClick(Sender: TObject); |
public |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
{ TDXSpriteEngineEditor} |
TDXSpriteEngineEditor = class(TComponentEditor) |
private |
procedure ListBox1DblClick(Sender: TObject); |
public |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
{ TWaveProperty } |
TWaveProperty = class(TPropertyEditor) |
public |
procedure Edit; override; |
function GetValue: string; override; |
function GetAttributes: TPropertyAttributes; override; |
end; |
{ TDXWaveEditor } |
TDXWaveEditor = class(TComponentEditor) |
public |
procedure Edit; override; |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
{ TDXWaveListEditor } |
TDXWaveListEditor = class(TComponentEditor) |
public |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
{ TForceFeedbackEffectsProperty } |
TForceFeedbackEffectsProperty = class(TClassProperty) |
public |
procedure Edit; override; |
function GetValue: string; override; |
function GetAttributes: TPropertyAttributes; override; |
end; |
{ TDXInputEditor } |
TDXInputEditor = class(TComponentEditor) |
public |
procedure Edit; override; |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
{ TGUIDProperty } |
TGUIDProperty = class(TStringProperty) |
public |
procedure Edit; override; |
function GetAttributes: TPropertyAttributes; override; |
end; |
{ TSpriteProperty } |
TSpriteProperty = class(TClassProperty) |
public |
procedure Edit; override; |
function GetValue: string; override; |
function GetAttributes: TPropertyAttributes; override; |
end; |
{ TMidiProperty } |
TMidiProperty = class(TClassProperty) |
public |
procedure Edit; override; |
function GetValue: string; override; |
function GetAttributes: TPropertyAttributes; override; |
end; |
TMidiEditor = class(TDefaultEditor) |
public |
{$IFDEF VER6UP} |
procedure EditProperty(const Prop: IProperty; var Continue: Boolean); override; |
{$ELSE} |
procedure EditProperty(PropertyEditor: TPropertyEditor; |
var continue, FreeEditor: Boolean); override; |
{$ENDIF} |
end; |
{ TDXMidiListEditor } |
TDXMidiListEditor = class(TComponentEditor) |
public |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
{ Trace editor} |
TDXDrawEditor = class(TComponentEditor) |
public |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
procedure Register; |
implementation |
uses DXPictEdit, DXWaveEdit, DXFFBEdit, DXInptEdit, DXGUIDEdit, DXSpriteEdit, |
DXMidiEdit, DXDIBEffectEdit, {$IFDEF VER4UP}DXGlueItEdit,{$ENDIF} DXPathEdit; |
const |
SNone = '(None)'; |
SSettingImage = '&Image...'; |
SSettingWave = '&Wave...'; |
SDXGFileFilter = 'DXG file(*.dxg)|*.dxg|All files(*.*)|*.*'; |
SDXGOpenFileFilter = 'DXG file(*.dxg)|*.dxg|Bitmap file(*.bmp)|*.bmp|All files(*.*)|*.*'; |
SDXWFileFilter = 'DXW file(*.dxw)|*.dxw|All files(*.*)|*.*'; |
SDXWFileFilter = 'DXW file(*.dxw)|*.dxg|All files(*.*)|*.*'; |
SDXWOpenFileFilter = 'DXW file(*.dxw)|*.dxw|Wave file(*.wav)|*.wav|All files(*.*)|*.*'; |
SDXMFileFilter = 'DXM file(*.dxm)|*.dxm|All files(*.*)|*.*'; |
SDXMOpenFileFilter = 'DXM file(*.dxm)|*.dxm|Midi file(*.mid)|*.mid|All files(*.*)|*.*'; |
SSinglePlayer = '&Single player'; |
SMultiPlayer1 = 'Multi player &1'; |
SMultiPlayer2 = 'Multi player &2'; |
SOpen = '&Open...'; |
SSave = '&Save..'; |
SSave = '&Save...'; |
procedure Register; |
begin |
RegisterPropertyEditor(TypeInfo(TDXDrawDisplay), nil, '', |
TDXDrawDisplayProperty); |
RegisterPropertyEditor(TypeInfo(TDIB), nil, '', TDIBProperty); |
RegisterComponentEditor(TCustomDXDIB, TDXDIBEditor); |
RegisterPropertyEditor(TypeInfo(TPicture), TPictureCollectionItem, 'Picture', TPictureCollectionItem_PictureProperty); |
RegisterComponentEditor(TCustomDXImageList, TDXImageListEditor); |
RegisterPropertyEditor(TypeInfo(TWave), nil, '', TWaveProperty); |
RegisterComponentEditor(TCustomDXWave, TDXWaveEditor); |
RegisterComponentEditor(TCustomDXWaveList, TDXWaveListEditor); |
RegisterPropertyEditor(TypeInfo(TForceFeedbackEffects), nil, '', TForceFeedbackEffectsProperty); |
RegisterComponentEditor(TCustomDXInput, TDXInputEditor); |
{$IFDEF UseDirectPlay} |
RegisterPropertyEditor(TypeInfo(string), TCustomDXPlay, 'GUID', TGUIDProperty); |
{$ENDIF} // UseDirectPlay |
RegisterPropertyEditor(TypeInfo(TImageSprite), NIL, '', TSpriteProperty); |
RegisterPropertyEditor(TypeInfo(TImageSpriteEx), NIL, '', TSpriteProperty); |
RegisterPropertyEditor(TypeInfo(TSprite), NIL, '', TSpriteProperty); |
RegisterPropertyEditor(TypeInfo(TBackgroundSprite), NIL, '', TSpriteProperty); |
RegisterPropertyEditor(TypeInfo(TMusicDataProp), nil, 'MIDI', TMidiProperty); |
RegisterComponentEditor(TDXMusic, TDXMidiListEditor); |
RegisterComponentEditor(TDXSpriteEngine, TDXSpriteEngineEditor); |
RegisterComponents('DelphiX', |
[TDXDraw, |
TDXDIB, |
TDXImageList, |
{$IFDEF DX3D_deprecated} |
TDX3D, |
{$ENDIF} |
TDXSound, |
TDXWave, |
TDXWaveList, |
TDXInput, |
{$IFDEF UseDirectPlay} |
TDXPlay, |
{$ENDIF} // UseDirectPlay |
TDXSpriteEngine, |
TDXTimer, |
TDXPaintBox]); |
TDXPaintBox, |
TDXFont, |
TDXPowerFont, |
TDXMusic |
]); |
RegisterComponentEditor(TCustomDXDraw, TDXDrawEditor); |
end; |
end. |
{ TDXDrawDisplayProperty } |
function TDXDrawDisplayProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := inherited GetAttributes + [paValueList] - [paReadOnly]; |
end; |
const |
SDisplayMode = '%dx%dx%d'; |
function TDXDrawDisplayProperty.GetValue: string; |
begin |
with TDXDrawDisplay(GetOrdValue) do |
Result := Format(SDisplayMode, [Width, Height, BitCount]); |
end; |
procedure TDXDrawDisplayProperty.GetValues(Proc: TGetStrProc); |
const |
List: array[0..2] of TPoint = ( |
(X: 640; Y: 480), |
(X: 800; Y: 600), |
(X: 1024; Y: 768)); |
var |
BitCount, i: Integer; |
begin |
for i := Low(List) to High(List) do |
for BitCount := 1 to 3 do |
Proc(Format(SDisplayMode, [List[i].x, List[i].y, BitCount * 8])); |
end; |
procedure TDXDrawDisplayProperty.SetValue(const Value: string); |
var |
s: string; |
i, AWidth, AHeight, ABitCount: Integer; |
begin |
s := Value; |
i := Pos('x', s); |
AWidth := StrToInt(Copy(s, 1, i - 1)); |
s := Copy(s, i + 1, Length(s)); |
i := Pos('x', s); |
AHeight := StrToInt(Copy(s, 1, i - 1)); |
s := Copy(s, i + 1, Length(s)); |
ABitCount := StrToInt(s); |
with TDXDrawDisplay(GetOrdValue) do |
begin |
Width := AWidth; |
Height := AHeight; |
BitCount := ABitCount; |
end; |
SetOrdValue(GetOrdValue); |
end; |
{ TDIBProperty } |
procedure TDIBProperty.Edit; |
var |
Form: TDelphiXPictureEditForm; |
begin |
Form := TDelphiXPictureEditForm.Create(nil); |
try |
Form.ViewBox.Picture.Assign(TDIB(GetOrdValue)); |
Form.DIBClassOnly := True; |
Form.ShowModal; |
if Form.Tag <> 0 then |
begin |
SetOrdValue(Integer(Form.ViewBox.Picture.Graphic)); |
Designer.Modified; |
end; |
finally |
Form.Free; |
end; |
end; |
function TDIBProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := [paDialog, paReadOnly]; |
end; |
function TDIBProperty.GetValue: string; |
begin |
if TDIB(GetOrdValue).Size = 0 then |
Result := SNone |
else |
Result := Format('(%s)', [TObject(GetOrdValue).ClassName]); |
end; |
{ TDXDIBEditor } |
procedure TDXDIBEditor.Edit; |
var |
Form: TDelphiXPictureEditForm; |
begin |
Form := TDelphiXPictureEditForm.Create(nil); |
try |
Form.ViewBox.Picture.Assign(TCustomDXDIB(Component).DIB); |
Form.DIBClassOnly := True; |
Form.ShowModal; |
if Form.Tag <> 0 then |
begin |
TCustomDXDIB(Component).DIB.Assign(TGraphic(Form.ViewBox.Picture.Graphic)); |
Designer.Modified; |
end; |
finally |
Form.Free; |
end; |
end; |
procedure TDXDIBEditor.ExecuteVerb(Index: Integer); |
begin |
case Index of |
0: Edit; |
end; |
end; |
function TDXDIBEditor.GetVerb(Index: Integer): string; |
begin |
case Index of |
0: Result := SSettingImage; |
end; |
end; |
function TDXDIBEditor.GetVerbCount: Integer; |
begin |
Result := 1; |
end; |
{ TPictureCollectionItem_PictureProperty } |
procedure TPictureCollectionItem_PictureProperty.Edit; |
var |
Form: TDelphiXPictureEditForm; |
Item: TPictureCollectionItem; |
TempDIB: TDIB; |
begin |
Form := TDelphiXPictureEditForm.Create(nil); |
try |
Form.ViewBox.Picture := TPicture(GetOrdValue); |
Form.ShowModal; |
if Form.Tag <> 0 then |
begin |
SetOrdValue(Integer(Form.ViewBox.Picture)); |
Item := GetComponent(0) as TPictureCollectionItem; |
if Item.Picture.Graphic <> nil then |
begin |
TempDIB := TDIB.Create; |
try |
TempDIB.SetSize(1, 1, 24); |
TempDIB.Canvas.Draw(0, 0, Item.Picture.Graphic); |
Item.TransparentColor := TempDIB.Pixels[0, 0]; |
finally |
TempDIB.Free; |
end; |
end; |
Designer.Modified; |
end; |
finally |
Form.Free; |
end; |
end; |
function TPictureCollectionItem_PictureProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := [paDialog, paReadOnly]; |
end; |
function TPictureCollectionItem_PictureProperty.GetValue: string; |
begin |
if (TPicture(GetOrdValue).Graphic = nil) or (TPicture(GetOrdValue).Graphic.Empty) then |
Result := SNone |
else |
Result := Format('(%s)', [TPicture(GetOrdValue).Graphic.ClassName]); |
end; |
{ dialog } |
function CreateListBox(DblClck: TNotifyEvent; out lstbx: TListBox): TForm; |
var |
Panel1: TPanel; |
Panel2: TPanel; |
BitBtn1: TBitBtn; |
BitBtn2: TBitBtn; |
begin |
Result := TForm.Create(nil); |
Panel1 := TPanel.Create(Result); |
lstbx := TListBox.Create(Result); |
Panel2 := TPanel.Create(Result); |
BitBtn1 := TBitBtn.Create(Result); |
BitBtn2 := TBitBtn.Create(Result); |
with Result do |
begin |
Name := 'Form12'; |
Left := 0; |
Top := 0; |
BorderStyle := bsDialog; |
Caption := 'Select Item'; |
ClientHeight := 206; |
ClientWidth := 228; |
Color := clBtnFace; |
Font.Charset := DEFAULT_CHARSET; |
Font.Color := clWindowText; |
Font.Height := -11; |
Font.Name := 'Tahoma'; |
Font.Style := []; |
Position := poScreenCenter; |
PixelsPerInch := 96; |
end; |
with Panel1 do |
begin |
Name := 'Panel1'; |
Parent := Result; |
Left := 0; |
Top := 0; |
Width := 228; |
Height := 165; |
Align := alClient; |
BevelOuter := bvNone; |
BorderWidth := 4; |
Caption := ''; |
TabOrder := 0; |
end; |
with lstbx do |
begin |
Name := 'ListBox1'; |
Parent := Panel1; |
Left := 4; |
Top := 4; |
Width := 220; |
Height := 157; |
Align := alClient; |
ItemHeight := 13; |
TabOrder := 0; |
OnDblClick := DblClck; |
end; |
with Panel2 do |
begin |
Name := 'Panel2'; |
Parent := Result; |
Left := 0; |
Top := 165; |
Width := 228; |
Height := 41; |
Align := alBottom; |
BevelOuter := bvNone; |
Caption := ''; |
TabOrder := 1; |
end; |
with BitBtn1 do |
begin |
Name := 'BitBtn1'; |
Parent := Panel2; |
Left := 24; |
Top := 8; |
Width := 75; |
Height := 25; |
TabOrder := 0; |
Kind := bkOK; |
end; |
with BitBtn2 do |
begin |
Name := 'BitBtn2'; |
Parent := Panel2; |
Left := 128; |
Top := 8; |
Width := 75; |
Height := 25; |
TabOrder := 1; |
Kind := bkCancel; |
end; |
end; |
function Alter(const str, altstr: string): string; |
begin |
if str = '' then Result := altstr |
else Result := str; |
end; |
{ TDXImageListEditor } |
procedure TDXImageListEditor.ExecuteVerb(Index: Integer); |
var |
OpenDialog: TOpenDialog; |
SaveDialog: TSaveDialog; |
DelphiXDIBEffectEditForm: TTDelphiXDIBEffectEditForm; |
{$IFDEF VER4UP} |
DXGlueItEditForm: TDXGlueItEditor; |
{$ENDIF} |
Q: TPictureCollectionItem; |
I, N: Integer; |
S, Z: string; |
{$IFDEF VER4UP} |
QQ: TCustomDXImageList; |
FrmListBox: TForm; |
ListBox1: TListBox; |
{$ENDIF} |
begin |
case Index of |
0: begin |
OpenDialog := TOpenDialog.Create(nil); |
try |
OpenDialog.DefaultExt := 'dxg'; |
OpenDialog.Filter := SDXGOpenFileFilter; |
OpenDialog.Options := [ofPathMustExist, ofFileMustExist, ofAllowMultiSelect]; |
if OpenDialog.Execute then |
begin |
if OpenDialog.FilterIndex = 2 then |
begin |
for i := 0 to OpenDialog.Files.Count - 1 do |
with TPictureCollectionItem.Create(TCustomDXImageList(Component).Items) do |
begin |
try |
Picture.LoadFromFile(OpenDialog.Files[i]); |
Name := ExtractFileName(OpenDialog.Files[i]); |
except |
Free; |
raise; |
end; |
end; |
end else |
TCustomDXImageList(Component).Items.LoadFromFile(OpenDialog.FileName); |
Designer.Modified; |
end; |
finally |
OpenDialog.Free; |
end; |
end; |
1: begin |
SaveDialog := TSaveDialog.Create(nil); |
try |
SaveDialog.DefaultExt := 'dxg'; |
SaveDialog.Filter := SDXGFileFilter; |
SaveDialog.Options := [ofOverwritePrompt, ofPathMustExist]; |
if SaveDialog.Execute then |
TCustomDXImageList(Component).Items.SaveToFile(SaveDialog.FileName); |
finally |
SaveDialog.Free; |
end; |
end; |
2: |
begin {Create shine effect...} |
{special effect} |
DelphiXDIBEffectEditForm := TTDelphiXDIBEffectEditForm.Create(nil); |
try |
DelphiXDIBEffectEditForm.ShowModal; |
if DelphiXDIBEffectEditForm.Tag = 1 then begin |
{check all names in list of images} |
N := 0; |
Z := DelphiXDIBEffectEditForm.eName.Text; S := Z; |
I := TCustomDXImageList(Component).Items.IndexOf(Z); |
{hleda jmeno} |
while I <> -1 do begin |
S := Format('%s_%d', [Z, N]); {new name} |
I := TCustomDXImageList(Component).Items.IndexOf(S); |
Inc(N); |
end; |
{add item} |
Q := TPictureCollectionItem(TCustomDXImageList(Component).Items.Add); |
Q.Picture.Assign(DelphiXDIBEffectEditForm.ResultDIB); |
Q.Name := S; {it has to name!} |
Q.Transparent := False; {transparend will be set in future} |
Designer.Modified; |
end; |
finally |
DelphiXDIBEffectEditForm.Free; |
end; |
end; |
{$IFDEF VER4UP} |
3: {Glue-it editor} |
begin |
DXGlueItEditForm := TDXGlueItEditor.Create(nil); |
try |
QQ := TCustomDXImageList(Component); Q := nil; |
if QQ.Items.Count > 0 then begin |
FrmListBox := CreateListBox(ListBox1DblClick, ListBox1); |
try |
for I := 0 to QQ.Items.Count - 1 do begin |
S := QQ.Items[I].Name; |
ListBox1.Items.Add(Alter(S, '(unnamed).' + IntToStr(I))); |
end; |
case FrmListBox.ShowModal of |
mrOk: //when select one |
begin |
//when image selected |
if ListBox1.ItemIndex <> -1 then begin |
Q := QQ.Items[ListBox1.ItemIndex]; |
//load one image into editor |
DXGlueItEditForm.LoadImageFromList(Q.Name, Q.Picture, Q.Width, |
Q.Height, Q.Transparent, Q.TransparentColor); |
//image loadet, noe se up edit mode |
DXGlueItEditForm.Operation := ogiEdit; |
end; |
end; |
mrCancel: DXGlueItEditForm.Operation := ogiNew; |
else |
Exit |
end {case}; |
finally |
FrmListBox.Free; |
end; |
end |
else |
DXGlueItEditForm.Operation := ogiNew; |
DXGlueItEditForm.ShowModal; |
if DXGlueItEditForm.Tag = 1 then begin |
//when image as new. it has to create new item |
if DXGlueItEditForm.Operation = ogiNew then |
Q := TPictureCollectionItem(TCustomDXImageList(Component).Items.Add); |
//and store edited image into |
if Assigned(Q) then |
DXGlueItEditForm.SaveImageIntoList(Q); |
//signal to designer that anything was changed; |
Designer.Modified; |
end; |
finally |
DXGlueItEditForm.Free; |
end; |
end; |
{$ENDIF} |
end; |
end; |
function TDXImageListEditor.GetVerb(Index: Integer): string; |
begin |
case Index of |
0: Result := SOpen; |
1: Result := SSave; |
2: Result := 'Shine effect...'; |
{$IFDEF VER4UP} |
//fix bug by Pásztor Károly [fenistil@hu.hu] |
3: Result := 'Glue it...'; |
{$ENDIF} |
end; |
end; |
function TDXImageListEditor.GetVerbCount: Integer; |
begin |
Result := {$IFDEF VER4UP}4{$ELSE}3{$ENDIF}; |
end; |
procedure TDXImageListEditor.ListBox1DblClick(Sender: TObject); |
begin |
if Sender is TListBox then with (Sender as TListBox) do |
if ItemIndex <> -1 then |
(Owner as TForm).ModalResult := mrOk; |
end; |
{ TWaveProperty } |
procedure TWaveProperty.Edit; |
var |
Form: TDelphiXWaveEditForm; |
begin |
Form := TDelphiXWaveEditForm.Create(nil); |
try |
Form.Wave := TWave(GetOrdValue); |
Form.ShowModal; |
if Form.Tag <> 0 then |
begin |
SetOrdValue(Integer(Form.Wave)); |
Designer.Modified; |
end; |
finally |
Form.Free; |
end; |
end; |
function TWaveProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := [paDialog, paReadOnly]; |
end; |
function TWaveProperty.GetValue: string; |
begin |
if TWave(GetOrdValue).Size = 0 then |
Result := SNone |
else |
Result := Format('(%s)', [TObject(GetOrdValue).ClassName]); |
end; |
{ TDXWaveEditor } |
procedure TDXWaveEditor.Edit; |
var |
Form: TDelphiXWaveEditForm; |
begin |
Form := TDelphiXWaveEditForm.Create(nil); |
try |
Form.Wave := TCustomDXWave(Component).Wave; |
Form.ShowModal; |
if Form.Tag <> 0 then |
begin |
TCustomDXWave(Component).Wave := Form.Wave; |
Designer.Modified; |
end; |
finally |
Form.Free; |
end; |
end; |
procedure TDXWaveEditor.ExecuteVerb(Index: Integer); |
begin |
case Index of |
0: Edit; |
end; |
end; |
function TDXWaveEditor.GetVerb(Index: Integer): string; |
begin |
case Index of |
0: Result := SSettingWave; |
end; |
end; |
function TDXWaveEditor.GetVerbCount: Integer; |
begin |
Result := 1; |
end; |
{ TDXWaveListEditor } |
procedure TDXWaveListEditor.ExecuteVerb(Index: Integer); |
var |
OpenDialog: TOpenDialog; |
SaveDialog: TSaveDialog; |
i: Integer; |
begin |
case Index of |
0: begin |
OpenDialog := TOpenDialog.Create(nil); |
try |
OpenDialog.DefaultExt := 'dxw'; |
OpenDialog.Filter := SDXWOpenFileFilter; |
OpenDialog.Options := [ofPathMustExist, ofFileMustExist, ofAllowMultiSelect]; |
if OpenDialog.Execute then |
begin |
if OpenDialog.FilterIndex = 2 then |
begin |
for i := 0 to OpenDialog.Files.Count - 1 do |
with TWaveCollectionItem.Create(TCustomDXWaveList(Component).Items) do |
begin |
try |
Wave.LoadFromFile(OpenDialog.Files[i]); |
Name := ExtractFileName(OpenDialog.Files[i]); |
except |
Free; |
raise; |
end; |
end; |
end else |
TCustomDXWaveList(Component).Items.LoadFromFile(OpenDialog.FileName); |
Designer.Modified; |
end; |
finally |
OpenDialog.Free; |
end; |
end; |
1: begin |
SaveDialog := TSaveDialog.Create(nil); |
try |
SaveDialog.DefaultExt := 'dxw'; |
SaveDialog.Filter := SDXWFileFilter; |
SaveDialog.Options := [ofOverwritePrompt, ofPathMustExist]; |
if SaveDialog.Execute then |
TCustomDXWaveList(Component).Items.SaveToFile(SaveDialog.FileName); |
finally |
SaveDialog.Free; |
end; |
end; |
end; |
end; |
function TDXWaveListEditor.GetVerb(Index: Integer): string; |
begin |
case Index of |
0: Result := SOpen; |
1: Result := SSave; |
end; |
end; |
function TDXWaveListEditor.GetVerbCount: Integer; |
begin |
Result := 2; |
end; |
{ TForceFeedbackEffectsProperty } |
procedure TForceFeedbackEffectsProperty.Edit; |
var |
Form: TDelphiXFFEditForm; |
Effects: TForceFeedbackEffects; |
begin |
Effects := TForceFeedbackEffects(GetOrdValue); |
Form := TDelphiXFFEditForm.Create(nil); |
try |
if Effects.Input is TJoystick then |
Form.Effects := Form.DXInput.Joystick.Effects |
else if Effects.Input is TKeyboard then |
Form.Effects := Form.DXInput.Keyboard.Effects |
else if Effects.Input is TMouse then |
Form.Effects := Form.DXInput.Mouse.Effects |
else Exit; |
Form.Effects.Assign(TForceFeedbackEffects(GetOrdValue)); |
Form.ShowModal; |
if Form.Tag <> 0 then |
begin |
SetOrdValue(Integer(Form.Effects)); |
Designer.Modified; |
end; |
finally |
Form.Free; |
end; |
end; |
function TForceFeedbackEffectsProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := [paDialog, paReadOnly]; |
end; |
function TForceFeedbackEffectsProperty.GetValue: string; |
begin |
if TForceFeedbackEffects(GetOrdValue).Count = 0 then |
Result := SNone |
else |
Result := Format('(%s)', [TObject(GetOrdValue).ClassName]); |
end; |
{ TDXInputEditor } |
procedure TDXInputEditor.Edit; |
var |
Form: TDelphiXInputEditForm; |
begin |
Form := TDelphiXInputEditForm.Create(nil); |
try |
Form.DXInput := TCustomDXInput(Component); |
Form.ShowModal; |
if Form.Tag <> 0 then |
Designer.Modified; |
finally |
Form.Free; |
end; |
end; |
procedure TDXInputEditor.ExecuteVerb(Index: Integer); |
begin |
case Index of |
0: begin |
with TCustomDXInput(Component) do |
begin |
Joystick.ID := 0; |
Keyboard.KeyAssigns := DefKeyAssign; |
end; |
Designer.Modified; |
end; |
1: begin |
with TCustomDXInput(Component) do |
begin |
Joystick.ID := 0; |
Keyboard.KeyAssigns := DefKeyAssign2_1; |
end; |
Designer.Modified; |
end; |
2: begin |
with TCustomDXInput(Component) do |
begin |
Joystick.ID := 1; |
Keyboard.KeyAssigns := DefKeyAssign2_2; |
end; |
Designer.Modified; |
end; |
end; |
end; |
function TDXInputEditor.GetVerb(Index: Integer): string; |
begin |
case Index of |
0: Result := SSinglePlayer; |
1: Result := SMultiPlayer1; |
2: Result := SMultiPlayer2; |
end; |
end; |
function TDXInputEditor.GetVerbCount: Integer; |
begin |
Result := 3; |
end; |
{ TGUIDProperty } |
procedure TGUIDProperty.Edit; |
var |
Form: TDelphiXGUIDEditForm; |
begin |
Form := TDelphiXGUIDEditForm.Create(nil); |
try |
Form.GUID := GetStrValue; |
Form.ShowModal; |
if Form.Tag <> 0 then |
begin |
SetStrValue(Form.GUID); |
Designer.Modified; |
end; |
finally |
Form.Free; |
end; |
end; |
function TGUIDProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := inherited GetAttributes + [paDialog]; |
end; |
{ TSpriteProperty } |
procedure TSpriteProperty.Edit; |
var |
DirectAccessToSprite: TSprite; |
Form: TDelphiXSpriteEditForm; |
//FormDesigner: IDesigner; |
begin |
DirectAccessToSprite := TSprite(GetOrdValue); |
//FormDesigner := Designer; |
Form := TDelphiXSpriteEditForm.Create(nil); |
{FormDesigner.GetComponentNames(GetTypeData(GetPropType), Proc);} |
try |
Form.LoadDataToForm(DirectAccessToSprite); |
//Form.Sprite.AsSign(TPersistent(GetOrdValue)); |
Form.ShowModal; |
if Form.Tag <> 0 then |
begin |
DirectAccessToSprite := TSprite(Form.SaveDataFromForm); |
SetOrdValue(Integer(DirectAccessToSprite)); |
Designer.Modified; |
end; |
finally |
Form.Free; |
end; |
end; |
function TSpriteProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := [paDialog]; |
end; |
function TSpriteProperty.GetValue: string; |
begin |
Result := Format('(%s)', [TObject(GetOrdValue).ClassName]); |
end; |
{ TMidiProperty } |
procedure TMidiProperty.Edit; |
var |
DelphiXMidiEditForm: TDelphiXMidiEditForm; |
DirectAccessToMidiData: TMusicDataProp; |
S: string; I: Integer; |
begin |
DirectAccessToMidiData := TMusicDataProp(GetOrdValue); |
DelphiXMidiEditForm := TDelphiXMidiEditForm.Create(nil); |
try |
DelphiXMidiEditForm.MidiData := DirectAccessToMidiData.MusicData; |
DelphiXMidiEditForm.MidiFileName := DirectAccessToMidiData.MidiName; |
DelphiXMidiEditForm.Showmodal; |
if DelphiXMidiEditForm.Tag = 1 then begin |
DirectAccessToMidiData.MusicData := DelphiXMidiEditForm.MidiData; |
S := ''; |
if DelphiXMidiEditForm.MidiFileName <> '' then begin |
S := ExtractFileName(DelphiXMidiEditForm.MidiFileName); |
I := Pos(ExtractFileExt(S), S); |
if I > 0 then S := Copy(S, 1, I - 1); |
end; |
DirectAccessToMidiData.MidiName := S; |
Designer.Modified; |
end; |
finally |
DelphiXMidiEditForm.Free; |
end; |
end; |
function TMidiProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := [paDialog]; |
end; |
function TMidiProperty.GetValue: string; |
var |
S: string; |
begin |
S := TMusicDataProp(GetOrdValue).MusicData; |
if Length(S) = 0 then |
Result := SNone |
else |
Result := '(Midi)'; |
end; |
{$IFDEF VER6UP} |
procedure TMidiEditor.EditProperty(const Prop: IProperty; var Continue: Boolean); |
{$ELSE} |
procedure TMidiEditor.EditProperty(PropertyEditor: TPropertyEditor; |
var continue, FreeEditor: Boolean); |
{$ENDIF} |
var |
PropName: string; |
begin |
PropName := {$IFDEF VER6UP}Prop{$ELSE}PropertyEditor{$ENDIF}.GetName; |
if (CompareText(PropName, 'Midi') = 0) then |
begin |
{$IFDEF VER6UP}Prop{$ELSE}PropertyEditor{$ENDIF}.edit; |
continue := false; |
end; |
end; |
{ TDXMidiListEditor } |
procedure TDXMidiListEditor.ExecuteVerb(Index: Integer); |
var |
OpenDialog: TOpenDialog; |
SaveDialog: TSaveDialog; |
i: Integer; |
begin |
case Index of |
0: begin |
OpenDialog := TOpenDialog.Create(nil); |
try |
OpenDialog.DefaultExt := 'dxm'; |
OpenDialog.Filter := SDXMOpenFileFilter; |
OpenDialog.Options := [ofPathMustExist, ofFileMustExist, ofAllowMultiSelect]; |
if OpenDialog.Execute then |
begin |
if OpenDialog.FilterIndex = 2 then |
begin |
for i := 0 to OpenDialog.Files.Count - 1 do |
with TMusicListCollectionItem.Create(TDXMusic(Component).Midis) do |
begin |
try |
LoadFromFile(OpenDialog.Files[i]); |
Name := ExtractFileName(OpenDialog.Files[i]); |
except |
Free; |
raise; |
end; |
end; |
end |
else |
TDXMusic(Component).Midis.LoadFromFile(OpenDialog.FileName); |
Designer.Modified; |
end; |
finally |
OpenDialog.Free; |
end; |
end; |
1: begin |
SaveDialog := TSaveDialog.Create(nil); |
try |
SaveDialog.DefaultExt := 'dxm'; |
SaveDialog.Filter := SDXMFileFilter; |
SaveDialog.Options := [ofOverwritePrompt, ofPathMustExist]; |
if SaveDialog.Execute then |
TCustomDXWaveList(Component).Items.SaveToFile(SaveDialog.FileName); |
finally |
SaveDialog.Free; |
end; |
end; |
end; |
end; |
function TDXMidiListEditor.GetVerbCount: Integer; |
begin |
Result := 2; |
end; |
function TDXMidiListEditor.GetVerb(Index: Integer): string; |
begin |
case Index of |
0: Result := SOpen; |
1: Result := SSave; |
end; |
end; |
{ TDXSpriteEngineEditor } |
procedure TDXSpriteEngineEditor.ListBox1DblClick(Sender: TObject); |
begin |
if Sender is TListBox then with (Sender as TListBox) do |
if ItemIndex <> -1 then |
(Owner as TForm).ModalResult := mrOk; |
end; |
procedure TDXSpriteEngineEditor.ExecuteVerb(Index: Integer); |
var |
FrmListBox: TForm; |
ListBox1: TListBox; |
DelphiXSpriteEditForm: TDelphiXSpriteEditForm; |
ASprite: TSprite; |
I, Z: Integer; |
S: string; |
Q: TCustomDXSpriteEngine; |
begin |
case Index of |
0: begin |
FrmListBox := nil; |
Z := 0; //default value |
DelphiXSpriteEditForm := TDelphiXSpriteEditForm.Create(nil); |
try |
Q := TCustomDXSpriteEngine(Component); |
case Q.Items.Count of |
0: begin |
ShowMessage('You must create any item of sprite first!'); |
Exit; |
end; |
1: ASprite := Q.Items[Z].Sprite; |
else |
FrmListBox := CreateListBox(ListBox1DblClick, ListBox1); |
for I := 0 to Q.Items.Count - 1 do begin |
S := Q.Items[I].Name; |
ListBox1.Items.Add(Alter(S, '(unnamed).' + IntToStr(I))); |
end; |
if FrmListBox.ShowModal <> mrOk then Exit; |
Z := ListBox1.ItemIndex; |
if Z = -1 then Exit; |
ASprite := Q.Items[Z].Sprite; |
{synchronize of names} |
if ASprite.Caption = '' then |
if Q.Items[ListBox1.ItemIndex].Name <> '' then |
ASprite.Caption := Q.Items[Z].Name; |
end {case}; |
DelphiXSpriteEditForm.LoadDataToForm(ASprite); |
DelphiXSpriteEditForm.ShowModal; |
if DelphiXSpriteEditForm.Tag <> 0 then begin |
ASprite := TSprite(DelphiXSpriteEditForm.SaveDataFromForm); |
if Q.Items[Z].Name = '' then |
if ASprite.Caption <> '' then |
Q.Items[Z].Name := ASprite.Caption; |
Designer.Modified; |
end; |
finally |
if Assigned(FrmListBox) then FrmListBox.Free; |
DelphiXSpriteEditForm.Free; |
end; |
end; |
end; |
end; |
function TDXSpriteEngineEditor.GetVerbCount: Integer; |
begin |
Result := 1; |
end; |
function TDXSpriteEngineEditor.GetVerb(Index: Integer): string; |
begin |
case Index of |
0: Result := 'Sprite Editor'; |
end; |
end; |
{ TDXDrawEditor } |
procedure TDXDrawEditor.ExecuteVerb(Index: Integer); |
var |
ediform: TDelphiXPathsEditForm; |
Q: TCustomDXDraw; |
I: Integer; |
S: string; |
T: TTrace; |
{$IFNDEF VER4UP} |
H: TTrace; |
J: Integer; |
{$ENDIF} |
begin |
case Index of |
0: begin |
Q := TCustomDXDraw(Component); |
{paths editor} |
ediform := TDelphiXPathsEditForm.Create(nil); |
try |
ediform.Pane.Width := Q.Display.Width; |
ediform.Pane.Height := Q.Display.Width; |
for I := 0 to Q.Traces.Count - 1 do begin |
S := Q.Traces.Items[I].Name; |
T := ediform.PrivateTraces.Add; |
T.Name := S; |
{$IFDEF VER4UP} |
T.Assign(Q.Traces.Items[I]); |
{$ELSE} |
T.Blit := Q.Traces.Items[I].Blit; |
{$ENDIF} |
if Trim(S) = '' then S := Format('(unnamed[%d])', [I]); |
ediform.cbListOfTraces.Items.Add(S); |
end; |
ediform.ShowTracesOnPane; |
ediform.ShowModal; |
if ediform.Tag = 1 then begin |
{clear traces} |
Q.Traces.Clear; |
{rewrite backward} |
for i := 0 to ediform.PrivateTraces.Count -1 do begin |
T := Q.Traces.Add; |
T.Name := ediform.PrivateTraces.Items[I].Name; |
{$IFDEF VER4UP} |
T.Assign(ediform.PrivateTraces.Items[i]); |
{$ELSE} |
H := ediform.PrivateTraces.Items[i]; |
T.Blit := H.Blit; |
T.Blit.SetPathLen(H.Blit.GetPathCount); |
for J := 0 to H.Blit.GetPathCount - 1 do begin |
T.Blit.Path[J] := H.Blit.Path[J] |
end |
{$ENDIF} |
end; |
{prepis zmeny} |
Designer.Modified; |
end; |
finally |
ediform.Free; |
end; |
end; |
end; |
end; |
function TDXDrawEditor.GetVerbCount: Integer; |
begin |
Result := 1; |
end; |
function TDXDrawEditor.GetVerb(Index: Integer): string; |
begin |
case Index of |
0: Result := 'Traces Editor'; |
end; |
end; |
end. |
/VCL_DELPHIX_D6/DXSounds.pas |
---|
5,8 → 5,13 |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Controls, Forms, ExtCtrls, MMSystem, |
DirectX, DXClass, Wave; |
Windows, Messages, SysUtils, Classes, Controls, Forms, ExtCtrls, MMSystem, ActiveX, |
DXClass, DXWave, D3DUtils, {$IFDEF VER17UP} Types, {$ENDIF} |
{$IFDEF StandardDX} |
DirectSound, DirectMusic; |
{$ELSE} |
DirectX; |
{$ENDIF} |
type |
43,6 → 48,50 |
property ISound: IDirectSound read GetISound; |
end; |
{ TD3DSParams } |
TConeAngle = record |
Inside,Outside:DWord; |
end; |
TD3DSParams = class |
private |
FOwner: TDirectSoundBuffer; |
FDsb: TDS3DBUFFER; |
function GetPosition: TD3DVector; |
function GetVelocity: TD3DVector; |
function GetConeOrientation: TD3DVector; |
function GetConeAngle: TConeAngle; |
function GetConeOutsideVolume: Integer; |
function GetMinDistance: TD3DValue; |
function GetMaxDistance: TD3DValue; |
function GetRaw: TDS3DBuffer; |
procedure SetPosition(const v: TD3DVector); |
procedure SetVelocity(const v: TD3DVector); |
procedure SetConeOrientation(const v: TD3DVector); |
procedure SetConeAngle(const v: TConeAngle); |
procedure SetConeOutsideVolume(const v: Integer); |
procedure SetMinDistance(const v: TD3DValue); |
procedure SetMaxDistance(const v: TD3DValue); |
procedure SetRaw(const v: TDS3DBuffer); |
function CheckValidity: Boolean; |
public |
constructor Create(Owner: TDirectSoundBuffer); |
destructor Destroy; override; |
property Position: TD3DVector read getPosition write setPosition; |
property Velocity: TD3DVector read getVelocity write setVelocity; |
property ConeOrientation: TD3DVector read getConeOrientation write setConeOrientation; |
property ConeAngle: TConeAngle read getConeAngle write setConeAngle; |
property ConeOutsideVolume: Integer read getConeOutsideVolume write setConeOutsideVolume; |
property MinDistance: TD3DValue read getMinDistance write setMinDistance; |
property MaxDistance: TD3DValue read getMaxDistance write setMaxDistance; |
property RawParams: TDS3DBuffer read getRaw write setRaw; |
procedure Assign(Prms: TD3DSParams); |
end; |
{ TDirectSoundBuffer } |
TDirectSoundBuffer = class(TDirectX) |
49,6 → 98,8 |
private |
FDSound: TDirectSound; |
FIDSBuffer: IDirectSoundBuffer; |
FIDS3DBuffer:IDirectSound3DBuffer; |
FD3DSParams: TD3DSParams; |
FCaps: TDSBCaps; |
FFormat: PWaveFormatEx; |
FFormatSize: Integer; |
55,6 → 106,7 |
FLockAudioPtr1, FLockAudioPtr2: array[0..0] of Pointer; |
FLockAudioSize1, FLockAudioSize2: array[0..0] of DWORD; |
FLockCount: Integer; |
FIsD3D: Boolean; |
function GetBitCount: Longint; |
function GetFormat: PWaveFormatEx; |
function GetFrequency: Integer; |
71,6 → 123,9 |
procedure SetPan(Value: Integer); |
procedure SetPosition(Value: Longint); |
procedure SetVolume(Value: Integer); |
function GetIDS3DBuffer: IDirectSound3DBuffer; |
procedure SetIDS3DBuffer(const Value: IDirectSound3DBuffer); |
procedure SetD3DSParams(const Value: TD3DSParams); |
protected |
procedure Check; override; |
public |
89,7 → 144,7 |
function Play(Loop: Boolean{$IFNDEF VER100}=False{$ENDIF}): Boolean; |
function Restore: Boolean; |
function SetFormat(const Format: TWaveFormatEx): Boolean; |
procedure SetSize(const Format: TWaveFormatEx; Size: Integer); |
procedure SetSize(const Format: TWaveFormatEx; Size: Integer; D3D: Boolean {$IFNDEF VER100}= False{$ENDIF}); |
procedure Stop; |
procedure UnLock; |
property BitCount: Longint read GetBitCount; |
99,8 → 154,11 |
property Frequency: Integer read GetFrequency write SetFrequency; |
property IBuffer: IDirectSoundBuffer read GetIBuffer; |
property IDSBuffer: IDirectSoundBuffer read GetIDSBuffer write SetIDSBuffer; |
property IDS3DBuffer: IDirectSound3DBuffer read GetIDS3DBuffer write SetIDS3DBuffer; |
property Playing: Boolean read GetPlaying; |
property Pan: Integer read GetPan write SetPan; |
property D3DSParams: TD3DSParams read FD3DSParams write SetD3DSParams; |
property IsD3D: Boolean read FIsD3D write FIsD3D default False; |
property Position: Longint read GetPosition write SetPosition; |
property Size: Integer read GetSize; |
property Volume: Integer read GetVolume write SetVolume; |
377,6 → 435,8 |
procedure SetPan(Value: Integer); |
procedure SetVolume(Value: Integer); |
procedure SetWave(Value: TWave); |
protected |
function GetPlaying: boolean; |
public |
constructor Create(Collection: TCollection); override; |
destructor Destroy; override; |
389,6 → 449,8 |
property Pan: Integer read FPan write SetPan; |
property Volume: Integer read FVolume write SetVolume; |
property WaveCollection: TWaveCollection read GetWaveCollection; |
property Playing: boolean read GetPlaying; |
published |
property Looped: Boolean read FLooped write SetLooped; |
property MaxPlayingCount: Integer read FMaxPlayingCount write SetMaxPlayingCount; |
445,10 → 507,125 |
property Items; |
end; |
{ EDXMusicError } |
EDXMusicError = class(Exception); |
TMusicListCollection = class; |
{ TMusicListCollectionItem } |
TMusicDataProp = class(TPersistent) |
private |
FMusicData: string; |
FMidiname: string; |
function GetMusicData: string; |
procedure SetMusicData(const Value: string); |
protected |
procedure DefineProperties(Filer: TFiler); override; |
procedure ReadMidiData(Stream: TStream); |
procedure WriteMidiData(Stream: TStream); |
public |
property MusicData: string read GetMusicData write SetMusicData; |
published |
property MidiName: string read FMidiname write FMidiname; |
end; |
TMusicListCollectionItem = class(THashCollectionItem) |
private |
{ Private declarations } |
FDirectMusicPerformance: IDirectMusicPerformance; |
FDirectSound: IDirectSound; |
FDirectMusic: IDirectMusic; |
FDirectMusicLoader: IDirectMusicLoader; |
FDirectMusicSegment: IDirectMusicSegment; |
FMusicObjDesc: TDMus_ObjectDesc; |
FDirectMusicSegmentState: IDirectMusicSegmentState; |
FRepeats: Cardinal; |
FStartpoint: Integer; |
FDuration: Integer; |
// startpoint props in seconds these used to hold millisecond value |
FActualDuration: Integer; |
FActualStartPoint: Integer; |
FIsInitialized: Boolean; |
FMusicDataProp: TMusicDataProp; |
procedure SetDuration(const Value: integer); |
procedure SetRepeats(const Value: Cardinal); |
procedure SetStartPoint(const Value: integer); |
function GetMusicListCollection: TMusicListCollection; |
protected |
function GetDisplayName: string; override; |
public |
constructor Create(Collection: TCollection); override; |
destructor Destroy; override; |
function Size: Integer; |
procedure Play; |
function IsPlaying: Boolean; |
procedure Stop; |
procedure Load; |
procedure Init; |
procedure LoadFromFile(const MidiFileName: string); |
procedure SaveToFile(const MidiFileName: string); |
property MusicCollection: TMusicListCollection read GetMusicListCollection; |
property IsInitialized: Boolean read FIsInitialized write FIsInitialized; |
published |
property Name; |
property Repeats: Cardinal read Frepeats write SetRepeats; |
property Duration: integer read FDuration write SetDuration; |
property StartPoint: integer read FStartPoint write SetStartPoint; |
property Midi: TMusicDataProp read FMusicDataProp write FMusicDataProp; |
end; |
{ TMusicListCollection } |
TMusicListCollection = class(THashCollection) |
private |
FOwner: TPersistent; |
FDirectSound: IDirectSound; |
protected |
function GetItem(Index: Integer): TMusicListCollectionItem; |
procedure SetItem(Index: Integer; Value: TMusicListCollectionItem); |
procedure Update(Item: TCollectionItem); override; |
function GetOwner: TPersistent; override; |
public |
constructor Create(AOwner: TComponent); |
function Add: TMusicListCollectionItem; |
function Find(const Name: string): TMusicListCollectionItem; |
procedure Restore; |
procedure LoadFromFile(const FileName: string); |
procedure LoadFromStream(Stream: TStream); |
procedure SaveToFile(const FileName: string); |
procedure SaveToStream(Stream: TStream); |
{$IFDEF VER4UP} |
function Insert(Index: Integer): TMusicListCollectionItem; |
{$ENDIF} |
property Items[Index: Integer]: TMusicListCollectionItem read GetItem write SetItem; |
published |
end; |
{ TDXMusic } |
TDXMusic = class(TComponent) |
private |
FDXSound: TDXSound; |
FMidis: TMusicListCollection; |
procedure SetMidis(const value: TMusicListCollection); |
procedure SetDXSound(const Value: TDXSound); |
public |
constructor Create(AOwner: TComponent); override; |
destructor Destroy; override; |
published |
property DXSound: TDXSound read FDXSound write SetDXSound; |
property Midis: TMusicListCollection read FMidis write SetMidis; |
end; |
implementation |
uses DXConsts; |
const |
dm_OK = 0; |
function DXDirectSoundCreate(lpGUID: PGUID; out lpDS: IDirectSound; |
pUnkOuter: IUnknown): HRESULT; |
type |
459,13 → 636,13 |
(lpGUID, lpDS, pUnkOuter); |
end; |
function DXDirectSoundEnumerate(lpCallback: TDSEnumCallbackA; |
function DXDirectSoundEnumerate(lpCallback: {$IFDEF UNICODE}TDSEnumCallbackW{$ELSE}TDSEnumCallbackA{$ENDIF}; |
lpContext: Pointer): HRESULT; |
type |
TDirectSoundEnumerate = function(lpCallback: TDSEnumCallbackA; |
TDirectSoundEnumerate = function(lpCallback: {$IFDEF UNICODE}TDSEnumCallbackW{$ELSE}TDSEnumCallbackA{$ENDIF}; |
lpContext: Pointer): HRESULT; stdcall; |
begin |
Result := TDirectSoundEnumerate(DXLoadLibrary('DSound.dll', 'DirectSoundEnumerateA')) |
Result := TDirectSoundEnumerate(DXLoadLibrary('DSound.dll', {$IFDEF UNICODE}'DirectSoundEnumerateW'{$ELSE}'DirectSoundEnumerateA'{$ENDIF})) |
(lpCallback, lpContext); |
end; |
490,7 → 667,7 |
lpContext: Pointer): HRESULT; stdcall; |
begin |
try |
Result := TDirectSoundCaptureEnumerate(DXLoadLibrary('DSound.dll', 'DirectSoundCaptureEnumerateA')) |
Result := TDirectSoundCaptureEnumerate(DXLoadLibrary('DSound.dll', {$IFDEF UNICODE}'DirectSoundCaptureEnumerateW'{$ELSE}'DirectSoundCaptureEnumerateA'{$ENDIF})) |
(lpCallback, lpContext); |
except |
raise EDirectXError.Create(SSinceDirectX5); |
501,8 → 678,8 |
DirectSoundDrivers: TDirectXDrivers; |
DirectSoundCaptureDrivers: TDirectXDrivers; |
function EnumDirectSoundDrivers_DSENUMCALLBACK(lpGuid: PGUID; lpstrDescription: LPCSTR; |
lpstrModule: LPCSTR; lpContext: Pointer): BOOL; stdcall; |
function EnumDirectSoundDrivers_DSENUMCALLBACK(lpGuid: PGUID; lpstrDescription: {$IFDEF UNICODE}LPCTSTR{$ELSE}LPCSTR{$ENDIF}; |
lpstrModule: {$IFDEF UNICODE}LPCTSTR{$ELSE}LPCSTR{$ENDIF}; lpContext: Pointer): BOOL; stdcall; |
begin |
Result := True; |
with TDirectXDriver.Create(TDirectXDrivers(lpContext)) do |
623,7 → 800,9 |
constructor TDirectSoundBuffer.Create(ADirectSound: TDirectSound); |
begin |
inherited Create; |
FIsD3D := False; |
FDSound := ADirectSound; |
FIDS3DBuffer := nil; |
FDSound.FBufferList.Add(Self); |
end; |
630,6 → 809,7 |
destructor TDirectSoundBuffer.Destroy; |
begin |
IDSBuffer := nil; |
IDS3DBuffer := nil; |
FDSound.FBufferList.Remove(Self); |
inherited Destroy; |
end; |
640,21 → 820,35 |
begin |
if Source=nil then |
IDSBuffer := nil |
else if Source is TWave then |
else |
if Source is TWave then |
LoadFromWave(TWave(Source)) |
else if Source is TDirectSoundBuffer then |
else |
if Source is TDirectSoundBuffer then |
begin |
if TDirectSoundBuffer(Source).IDSBuffer=nil then |
IDSBuffer := nil |
else begin |
FDSound.DXResult := FDSound.ISound.DuplicateSoundBuffer(TDirectSoundBuffer(Source).IDSBuffer, |
TempBuffer); |
if FDSound.DXResult=0 then |
else |
begin |
FDSound.DXResult := FDSound.ISound.DuplicateSoundBuffer(TDirectSoundBuffer(Source).IDSBuffer, TempBuffer); |
if FDSound.DXResult = DS_OK then |
begin |
IDSBuffer := TempBuffer; |
end; |
end; |
end else |
if FIsD3D then |
if TDirectSoundBuffer(Source).IDS3DBuffer = nil then |
IDS3DBuffer := nil |
else |
begin |
FDSound.DXResult := FDSound.ISound.QueryInterface(IID_IDirectSound3DBuffer, FIDS3DBuffer); |
if FDSound.DXResult = DS_OK then |
FD3DSParams := TDirectSoundBuffer(Source).FD3DSParams; |
end; |
end |
else |
inherited Assign(Source); |
end; |
692,6 → 886,14 |
DXResult := IBuffer.GetFrequency(DWORD(Result)); |
end; |
function TDirectSoundBuffer.GetIDS3DBuffer: IDirectSound3DBuffer; |
begin |
if Self <> nil then |
Result := FIDS3DBuffer |
else |
Result := nil; |
end; |
function TDirectSoundBuffer.GetIDSBuffer: IDirectSoundBuffer; |
begin |
if Self<>nil then |
721,7 → 923,7 |
var |
dwCurrentWriteCursor: Longint; |
begin |
IBuffer.GetCurrentPosition(DWORD(Result), DWORD(dwCurrentWriteCursor)); |
IBuffer.GetCurrentPosition(@DWORD(Result), @DWORD(dwCurrentWriteCursor)); |
end; |
function TDirectSoundBuffer.GetSize: Integer; |
757,7 → 959,7 |
Data1, Data2: Pointer; |
Data1Size, Data2Size: Longint; |
begin |
SetSize(Format, Size); |
SetSize(Format, Size, FIsD3D); |
if Data<>nil then |
begin |
770,9 → 972,11 |
finally |
UnLock; |
end; |
end else |
end |
else |
begin |
FIDSBuffer := nil; |
FIDS3DBuffer := nil; |
raise EDirectSoundBufferError.CreateFmt(SCannotLock, [SDirectSoundBuffer]); |
end; |
end; |
804,10 → 1008,9 |
if IDSBuffer=nil then Exit; |
if FLockCount>High(FLockAudioPtr1) then Exit; |
DXResult := IBuffer.Lock(LockPosition, LockSize, |
FLockAudioPtr1[FLockCount], FLockAudioSize1[FLockCount], |
FLockAudioPtr2[FLockCount], FLockAudioSize2[FLockCount], 0); |
{$IFNDEF DX7}@{$ENDIF}FLockAudioPtr1[FLockCount], {$IFNDEF DX7}@{$ENDIF}FLockAudioSize1[FLockCount], |
{$IFNDEF DX7}@{$ENDIF}FLockAudioPtr2[FLockCount], {$IFNDEF DX7}@{$ENDIF}FLockAudioSize2[FLockCount], 0); |
Result := DXResult=DS_OK; |
if Result then |
835,9 → 1038,14 |
Result := DXResult=DS_OK; |
end; |
procedure TDirectSoundBuffer.SetD3DSParams(const Value: TD3DSParams); |
begin |
FD3DSParams.Assign(Value); |
end; |
function TDirectSoundBuffer.SetFormat(const Format: TWaveFormatEx): Boolean; |
begin |
DXResult := IBuffer.SetFormat(Format); |
DXResult := IBuffer.SetFormat(FFormat{$IFDEF DX7}^{$ENDIF}); |
Result := DXResult=DS_OK; |
if Result then |
845,10 → 1053,10 |
FreeMem(FFormat); |
FFormat := nil; |
FFormatSize := 0; |
if IBuffer.GetFormat(PWaveFormatEx(nil)^, 0, DWORD(FFormatSize))=DS_OK then |
if IBuffer.GetFormat(PWaveFormatEx(nil), 0, @DWORD(FFormatSize)) = DS_OK then |
begin |
GetMem(FFormat, FFormatSize); |
IBuffer.GetFormat(FFormat^, FFormatSize, PDWORD(nil)^); |
IBuffer.GetFormat(FFormat, FFormatSize, nil); |
end; |
end; |
end; |
858,6 → 1066,30 |
DXResult := IBuffer.SetFrequency(Value); |
end; |
procedure TDirectSoundBuffer.SetIDS3DBuffer(const Value: IDirectSound3DBuffer); |
begin |
if FIDS3DBuffer = Value then Exit; |
FIDS3DBuffer := Value; |
FillChar(FCaps, SizeOf(FCaps), 0); |
FreeMem(FFormat); |
FFormat := nil; |
FFormatSize := 0; |
FLockCount := 0; |
if FIDS3DBuffer <> nil then |
begin |
FCaps.dwSize := SizeOf(FCaps); |
IBuffer.GetCaps(FCaps); |
if IBuffer.GetFormat(PWaveFormatEx(nil), 0, @DWORD(FFormatSize)) = DS_OK then |
begin |
GetMem(FFormat, FFormatSize); |
IBuffer.GetFormat(FFormat, FFormatSize, nil); |
end; |
end; |
end; |
procedure TDirectSoundBuffer.SetIDSBuffer(Value: IDirectSoundBuffer); |
begin |
if FIDSBuffer=Value then Exit; |
874,10 → 1106,10 |
FCaps.dwSize := SizeOf(FCaps); |
IBuffer.GetCaps(FCaps); |
if IBuffer.GetFormat(PWaveFormatEx(nil)^, 0, DWORD(FFormatSize))=DS_OK then |
if IBuffer.GetFormat(PWaveFormatEx(nil), 0, @DWORD(FFormatSize)) = DS_OK then |
begin |
GetMem(FFormat, FFormatSize); |
IBuffer.GetFormat(FFormat^, FFormatSize, PDWORD(nil)^); |
IBuffer.GetFormat(FFormat, FFormatSize, nil); |
end; |
end; |
end; |
891,8 → 1123,12 |
begin |
DXResult := IBuffer.SetCurrentPosition(Value); |
end; |
{$IFNDEF DX7} |
const |
DSBCAPS_CTRLDEFAULT = DSBCAPS_CTRLFREQUENCY or DSBCAPS_CTRLPAN or DSBCAPS_CTRLVOLUME; |
{$ENDIF} |
procedure TDirectSoundBuffer.SetSize(const Format: TWaveFormatEx; Size: Integer); |
procedure TDirectSoundBuffer.SetSize(const Format: TWaveFormatEx; Size: Integer; D3D: Boolean {$IFNDEF VER100}= False{$ENDIF}); |
var |
BufferDesc: TDSBufferDesc; |
begin |
907,6 → 1143,8 |
dwFlags := dwFlags or DSBCAPS_STICKYFOCUS |
else if DSound.FGlobalFocus then |
dwFlags := dwFlags or DSBCAPS_GLOBALFOCUS; |
if D3D then |
dwFlags := DSBCAPS_STATIC + DSBCAPS_CTRLDEFAULT + DSBCAPS_CTRL3D - DSBCAPS_CTRLPAN; |
dwBufferBytes := Size; |
lpwfxFormat := @Format; |
end; |
935,6 → 1173,207 |
FLockAudioPtr2[FLockCount], FLockAudioSize2[FLockCount]); |
end; |
{ TD3DSParams } |
function TD3DSParams.CheckValidity: Boolean; |
begin |
Result := (FOwner <> nil) and (TDirectSoundBuffer(FOwner).IDS3DBuffer <> nil) |
end; |
constructor TD3DSParams.Create(Owner: TDirectSoundBuffer); |
{$IFDEF VER14UP} |
function MakeD3DVector(x, y, z: TD3DValue): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
begin |
Result.x := x; |
Result.y := y; |
Result.z := z; |
end; |
{$ENDIF} |
begin |
inherited Create; |
FOwner := Owner; |
with FDsb do |
begin |
dwSize := SizeOf(TDS3DBuffer); |
vPosition := MakeD3DVector(0, 0, 0); |
vVelocity := MakeD3DVector(0, 0, 0); |
dwInsideConeAngle := DS3D_DEFAULTCONEANGLE; |
dwOutsideConeAngle := DS3D_DEFAULTCONEANGLE; |
vConeOrientation := MakeD3DVector(0, 0, 0); |
lConeoutsideVolume := DS3D_DEFAULTCONEOUTSIDEVOLUME; |
flMinDistance := 5; |
flMaxDistance := 100.0; |
dwMode := DS3DMODE_NORMAL; |
end; |
end; |
destructor TD3DSParams.destroy; |
begin |
inherited destroy; |
end; |
function TD3DSParams.getPosition: TD3DVector; |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.GetPosition(FDsb.vPosition); |
end; |
result := FDsb.vPosition; |
end; |
function TD3DSParams.getVelocity: TD3DVector; |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.GetVelocity(FDsb.vVelocity); |
end; |
result := FDsb.vVelocity; |
end; |
function TD3DSParams.getConeOrientation: TD3DVector; |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.GetConeOrientation(FDsb.vConeOrientation); |
end; |
result := FDsb.vConeOrientation; |
end; |
function TD3DSParams.getConeAngle: TConeAngle; |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.GetConeAngles(FDsb.dwInsideConeAngle, FDsb.dwOutsideConeAngle); |
end; |
with result do |
begin |
Inside := FDsb.dwInsideConeAngle; |
OutSide := FDsb.dwOutsideConeAngle; |
end; |
end; |
function TD3DSParams.getConeOutsideVolume: Integer; |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.GetConeOutsideVolume(FDsb.lConeOutsideVolume); |
end; |
result := FDsb.lConeOutsideVolume; |
end; |
function TD3DSParams.getMinDistance: TD3DValue; |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.GetMinDistance(FDsb.flMinDistance); |
end; |
result := FDsb.flMinDistance; |
end; |
function TD3DSParams.getMaxDistance: TD3DValue; |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.GetMaxDistance(FDsb.flMaxDistance); |
end; |
result := FDsb.flMaxDistance; |
end; |
function TD3DSParams.getRaw: TDS3DBuffer; |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.GetAllParameters(FDsb); |
end; |
result := FDsb; |
end; |
procedure TD3DSParams.setPosition(const v: TD3DVector); |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.SetPosition(v.x, v.y, v.z, DS3D_IMMEDIATE); |
end; |
FDsb.vPosition := v; |
end; |
procedure TD3DSParams.setVelocity(const v: TD3DVector); |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.SetVelocity(v.x, v.y, v.z, DS3D_IMMEDIATE); |
end; |
FDsb.vVelocity := v; |
end; |
procedure TD3DSParams.setConeOrientation(const v: TD3DVector); |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.SetConeOrientation(v.x, v.y, v.z, DS3D_IMMEDIATE); |
end; |
FDsb.vConeOrientation := v; |
end; |
procedure TD3DSParams.setConeAngle(const v: TConeAngle); |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.SetConeAngles(v.Inside, v.Outside, DS3D_IMMEDIATE); |
end; |
FDsb.dwInsideConeAngle := v.Inside; |
FDsb.dwInsideConeAngle := v.Outside; |
end; |
procedure TD3DSParams.setConeOutsideVolume(const v: Integer); |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.SetConeOutsideVolume(v, DS3D_IMMEDIATE); |
end; |
FDsb.lConeOutsideVolume := v; |
end; |
procedure TD3DSParams.setMinDistance(const v: TD3DValue); |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.SetMinDistance(v, DS3D_IMMEDIATE); |
end; |
FDsb.flMinDistance := v; |
end; |
procedure TD3DSParams.setMaxDistance(const v: TD3DValue); |
begin |
if CheckValidity then |
begin |
FOwner.IDS3DBuffer.SetMaxDistance(v, DS3D_IMMEDIATE); |
end; |
FDsb.flMaxDistance := v; |
end; |
procedure TD3DSParams.setRaw(const v: TDS3DBuffer); |
begin |
if CheckValidity then |
begin |
if FOwner.IDS3DBuffer.SetAllParameters(v, DS3D_IMMEDIATE) <> DS_OK then |
{'Parameter is invalid for Params3D'}; |
end; |
FDsb := v; |
end; |
procedure TD3DSParams.Assign(Prms: TD3DSParams); |
begin |
FDsb := Prms.RawParams; |
if CheckValidity then |
begin |
if FOwner.IDS3DBuffer.SetAllParameters(FDsb, DS3D_IMMEDIATE) <> DS_OK then |
{'Parameter is invalid for Params3D'}; |
end; |
end; |
{ TAudioStream } |
type |
1662,7 → 2101,7 |
var |
CapturePosition, ReadPosition: DWORD; |
begin |
if FBuffer.GetCurrentPosition(CapturePosition, ReadPosition)=DS_OK then |
if FBuffer.GetCurrentPosition(@DWORD(CapturePosition), @DWORD(ReadPosition)) = DS_OK then |
begin |
if FBufferPos<=ReadPosition then |
Result := ReadPosition - FBufferPos |
1681,7 → 2120,8 |
begin |
if not FCapturing then |
Start; |
Data1 := nil; |
Data2 := nil; |
Result := 0; |
while Result<Count do |
begin |
1688,7 → 2128,8 |
Size := Min(Count-Result, GetReadSize); |
if Size>0 then |
begin |
if FBuffer.Lock(FBufferPos, Size, Data1, Data1Size, Data2, Data2Size, 0)=DS_OK then |
if FBuffer.Lock(FBufferPos, Size, Data1, {$IFNDEF DX7}@{$ENDIF}Data1Size, |
Data2, {$IFNDEF DX7}@{$ENDIF}Data2Size, 0) = DS_OK then |
begin |
Move(Data1^, Pointer(Integer(@Buffer)+Result)^, Data1Size); |
Result := Result + Integer(Data1Size); |
1737,7 → 2178,7 |
if Assigned(FOnFilledBuffer) then |
begin |
FNotifyThread := TSoundCaptureStreamNotify.Create(Self); |
FNotifyThread.Resume; |
FNotifyThread.{$IFDEF VER14UP}Start{$ELSE}Resume{$ENDIF}; |
end; |
end else |
FOnFilledBuffer := Value; |
1772,7 → 2213,7 |
if Assigned(FOnFilledBuffer) then |
begin |
FNotifyThread := TSoundCaptureStreamNotify.Create(Self); |
FNotifyThread.Resume; |
FNotifyThread.{$IFDEF VER14UP}Start{$ELSE}Resume{$ENDIF}; |
end; |
except |
Stop; |
1800,7 → 2241,6 |
FDSound := ADSound; |
FEnabled := True; |
FEffectList := TList.Create; |
FTimer := TTimer.Create(nil); |
FTimer.Interval := 500; |
2223,10 → 2663,37 |
if PrevInitialized then |
Restore; |
end else |
end |
else |
inherited Assign(Source); |
end; |
function TWaveCollectionItem.GetPlaying: boolean; |
var |
Buffer: TDirectSoundBuffer; |
index: integer; |
begin |
Result := False; |
if not FInitialized then Exit; |
Assert(GetBuffer <> nil); |
Assert(FBufferList <> nil); |
if FLooped then |
begin |
Buffer := GetBuffer; |
Assert(Buffer <> nil); |
Result := Buffer.Playing; |
end |
else |
begin |
for index := 0 to FBufferList.Count - 1 do |
begin |
Result := TDirectSoundBuffer(FBufferList[index]).Playing; |
if Result then |
Break; |
end; |
end; |
end; {GetPlaying} |
function TWaveCollectionItem.GetBuffer: TDirectSoundBuffer; |
begin |
if FInitialized and (FBuffer=nil) then |
2284,7 → 2751,8 |
GetBuffer.Stop; |
GetBuffer.Position := 0; |
GetBuffer.Play(True); |
end else |
end |
else |
begin |
NewBuffer := nil; |
for i:=0 to FBufferList.Count-1 do |
2302,7 → 2770,8 |
if NewBuffer=nil then Exit; |
FBufferList.Add(NewBuffer); |
end else |
end |
else |
begin |
if FBufferList.Count<FMaxPlayingCount then |
begin |
2310,7 → 2779,8 |
if NewBuffer=nil then Exit; |
FBufferList.Add(NewBuffer); |
end else |
end |
else |
begin |
NewBuffer := FBufferList[0]; |
FBufferList.Move(0, FBufferList.Count-1); |
2592,6 → 3062,379 |
FItems.Assign(Value); |
end; |
{(c) 2006 Jaro Benes, Play midi from memory module} |
{ TMusicDataProp } |
type |
TMidiDataHeader = packed record |
Size: Integer; |
end; |
procedure TMusicDataProp.DefineProperties(Filer: TFiler); |
begin |
inherited DefineProperties(Filer); |
Filer.DefineBinaryProperty('Midi', ReadMidiData, WriteMidiData, Length(Self.FMusicData) <> 0); |
end; |
function TMusicDataProp.GetMusicData: string; |
begin |
SetLength(Result, Length(FMusicData)); |
if Length(FMusicData) <> 0 then |
Move(FMusicData[1], Result[1], Length(FMusicData)); |
end; |
procedure TMusicDataProp.ReadMidiData(Stream: TStream); |
var |
Header: TMidiDataHeader; |
begin |
Stream.ReadBuffer(Header, SizeOf(Header)); |
SetLength(FMusicData, Header.Size); |
Stream.ReadBuffer(FMusicData[1], Header.Size); |
end; |
procedure TMusicDataProp.SetMusicData(const Value: string); |
begin |
SetLength(FMusicData, Length(Value)); |
if Length(Value) <> 0 then |
Move(Value[1], FMusicData[1], Length(Value)); |
end; |
procedure TMusicDataProp.WriteMidiData(Stream: TStream); |
var |
Header: TMidiDataHeader; |
begin |
Header.Size := Length(FMusicData); |
Stream.WriteBuffer(Header, SizeOf(Header)); |
Stream.WriteBuffer(FMusicData[1], Header.Size); |
end; |
{ TMusicListCollectionItem } |
procedure TMusicListCollectionItem.Load; |
var |
MidiFilelength: Integer; |
begin |
// kdyby nahodou uz nejaky existoval tak ho znic |
if FDirectMusicSegment <> nil then |
FDirectMusicSegment := nil; |
ZeroMemory(@FMusicObjDesc, SizeOf(TDMUS_OBJECTDESC)); |
// tohle je popisek parametru - chceme hrat z pameti |
with FMusicObjDesc do |
begin |
dwsize := SizeOf(TDMUS_OBJECTDESC); |
guidclass := CLSID_DirectMusicSegment; |
//tohle jen pokud je to ze souboru |
//dwvaliddata := DMUS_OBJ_CLASS or DMUS_OBJ_FULLPATH or DMUS_OBJ_FILENAME; |
dwvaliddata := DMUS_OBJ_CLASS or DMUS_OBJ_MEMORY or DMUS_OBJ_LOADED; |
pbMemData := @FMusicDataProp.FMusicData[1]; |
llMemLength := Length(FMusicDataProp.FMusicData); |
end; |
if FDirectMusicLoader.GetObject(FMusicObjDesc, IID_IDirectMusicSegment, FDirectMusicSegment) <> dm_ok then |
raise EDXMusicError.Create('Failed to Get object for Direct music'); ; |
if FDirectMusicSegment.setParam(GUID_StandardMidiFile, $FFFFFFFF, 0, 0, Pointer(FDirectMusicPerformance)) <> dm_ok then |
raise EDXMusicError.Create('Failed to Set param for Direct music'); ; |
if FDirectMusicSegment.setParam(GUID_Download, $FFFFFFFF, 0, 0, Pointer(FDirectMusicPerformance)) <> dm_ok then |
raise EDXMusicError.Create('Failed to Set param for Direct music'); ; |
FDirectMusicSegment.GetLength(MidiFilelength); |
if (FActualDuration < MidiFilelength) and (FActualDuration > 0) then |
FDirectMusicSegment.SetLength(FActualDuration); |
if FActualStartPoint < MidiFilelength - FActualDuration then |
FDirectMusicSegment.SetStartpoint(FActualStartPoint); |
// jak opakovat |
FDirectMusicSegment.Setrepeats(repeats - 1); |
end; |
constructor TMusicListCollectionItem.Create(Collection: TCollection); |
begin |
inherited Create(Collection); |
CoInitialize(nil); |
FMusicDataProp := TMusicDataProp.Create; |
SetLength(FMusicDataProp.FMusicData, 0); |
FDirectMusicPerformance := nil; |
FDirectMusic := nil; |
FDirectSound := nil; |
FDirectMusicSegment := nil; |
FDirectMusicLoader := nil; |
FIsInitialized := False; |
end; |
procedure TMusicListCollectionItem.Stop; |
begin |
if FDirectMusicPerformance <> nil then |
FDirectMusicPerformance.Stop(nil, nil, 0, 0); |
end; |
function TMusicListCollectionItem.GetDisplayName: string; |
begin |
Result := inherited GetDisplayName |
end; |
procedure TMusicListCollectionItem.Play; |
begin |
if not FIsInitialized then |
Init; |
Load; |
if FDirectMusicPerformance <> nil then |
FDirectMusicPerformance.PlaySegment(FDirectMusicSegment, 0, 0, @FDirectMusicSegmentState); |
end; |
function TMusicListCollectionItem.IsPlaying: Boolean; |
begin |
Result := False; |
if FDirectMusicPerformance <> nil then |
Result := FDirectMusicPerformance.IsPlaying(FDirectMusicSegment, FDirectMusicSegmentState) = DM_OK; |
end; |
destructor TMusicListCollectionItem.Destroy; |
begin |
FDirectMusicPerformance := nil; |
FDirectMusic := nil; |
FDirectSound := nil; |
FDirectMusicSegment := nil; |
FDirectMusicLoader := nil; |
FMusicDataProp.Free; |
CoUninitialize; |
inherited Destroy; |
end; |
procedure TMusicListCollectionItem.SetRepeats(const Value: Cardinal); |
begin |
Frepeats := Value; |
end; |
procedure TMusicListCollectionItem.SetStartPoint(const Value: integer); |
begin |
FStartPoint := Value; |
end; |
procedure TMusicListCollectionItem.SetDuration(const Value: integer); |
begin |
FDuration := Value; |
end; |
procedure TMusicListCollectionItem.Init; |
var OK: Boolean; |
begin |
FIsInitialized := False; |
OK := False; |
// vytvor FDirectMusicPerformance pokud uz neni vytvoreno |
if FDirectMusicPerformance = nil then |
OK := CoCreateInstance(CLSID_DirectMusicPerformance, nil, CLSCTX_INPROC, |
IID_IDirectMusicperformance, FDirectMusicPerformance) = DM_OK; |
if not OK then Exit; |
if FDirectSound <> nil then |
OK := FDirectMusicPerformance.Init({$IFDEF DX7}@{$ENDIF}FDirectMusic, FDirectSound, 0) = DM_OK |
else |
OK := FDirectMusicPerformance.Init({$IFDEF DX7}@{$ENDIF}FDirectMusic, nil, 0) = dm_OK; |
if not OK then Exit; |
// vychozi midi port |
// pridej pokud neni nastaven |
if FDirectMusicPerformance.Addport(nil) <> DM_OK then Exit; |
// zkus vytvorit loader |
OK := CoCreateInstance(CLSID_DirectMusicLoader, nil, CLSCTX_Inproc, |
IID_IDirectMusicLoader, FDirectMusicLoader) = DM_OK; |
FIsInitialized := OK; |
end; |
function TMusicListCollectionItem.GetMusicListCollection: TMusicListCollection; |
begin |
Result := Collection as TMusicListCollection; |
end; |
procedure TMusicListCollectionItem.SaveToFile(const MidiFileName: string); |
var F: file; BakFileMode: integer; |
begin |
BakFileMode := FileMode; |
FileMode := 1; // Read/Write |
try |
AssignFile(F, MidiFileName); |
Rewrite(F, 1); |
try |
BlockWrite(F, FMusicDataProp.FMusicData[1], Length(FMusicDataProp.FMusicData)); |
finally |
CloseFile(F); |
end; |
finally |
FileMode := BakFileMode; |
end; |
end; |
procedure TMusicListCollectionItem.LoadFromFile(const MidiFileName: string); |
var F: file; S: string; I: Integer; BakFileMode: integer; |
begin |
BakFileMode := FileMode; |
FileMode := 0; // Read only |
try |
AssignFile(F, MidiFileName); |
Reset(F, 1); |
try |
SetLength(FMusicDataProp.FMusicData, FileSize(F)); |
BlockRead(F, FMusicDataProp.FMusicData[1], FileSize(F)); |
S := ExtractFileName(MidiFileName); |
I := Pos(ExtractFileExt(S), S); |
if I > 0 then S := Copy(S, 1, I - 1); |
FMusicDataProp.Midiname := S; |
finally |
CloseFile(F); |
end; |
Name := ExtractFileName(MidiFileName); |
finally |
FileMode := BakFileMode; |
end; |
end; |
function TMusicListCollectionItem.Size: Integer; |
begin |
Result := Length(FMusicDataProp.FMusicData); |
end; |
{ TMusicListCollection } |
constructor TMusicListCollection.Create(AOwner: TComponent); |
begin |
inherited Create(TMusicListCollectionItem); |
FOwner := AOwner; |
end; |
function TMusicListCollection.Add: TMusicListCollectionItem; |
begin |
Result := TMusicListCollectionItem(inherited Add); |
Result.FDirectSound := Self.FDirectSound; |
end; |
function TMusicListCollection.GetItem(Index: Integer): TMusicListCollectionItem; |
begin |
Result := TMusicListCollectionItem(inherited GetItem(Index)); |
end; |
procedure TMusicListCollection.SetItem(Index: Integer; |
Value: TMusicListCollectionItem); |
begin |
inherited SetItem(Index, Value); |
end; |
procedure TMusicListCollection.Update(Item: TCollectionItem); |
begin |
inherited Update(Item); |
end; |
function TMusicListCollection.Find( |
const Name: string): TMusicListCollectionItem; |
var |
i: Integer; |
begin |
i := IndexOf(Name); |
if i = -1 then |
raise EDXMusicError.CreateFmt('The midi document does not exist: %s.', [Name]); |
Result := Items[i]; |
end; |
{$IFDEF VER4UP} |
function TMusicListCollection.Insert(Index: Integer): TMusicListCollectionItem; |
begin |
Result := TMusicListCollectionItem(inherited Insert(Index)); |
end; |
{$ENDIF} |
function TMusicListCollection.GetOwner: TPersistent; |
begin |
Result := FOwner; |
end; |
procedure TMusicListCollection.Restore; |
begin |
end; |
procedure TMusicListCollection.SaveToFile(const FileName: string); |
var |
Stream: TFileStream; |
begin |
Stream := TFileStream.Create(FileName, fmCreate); |
try |
SaveToStream(Stream); |
finally |
Stream.Free; |
end; |
end; |
procedure TMusicListCollection.LoadFromFile(const FileName: string); |
var |
Stream: TFileStream; |
begin |
Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); |
try |
LoadFromStream(Stream); |
finally |
Stream.Free; |
end; |
end; |
type |
TMidiCollectionComponent = class(TComponent) |
private |
FList: TMusicListCollection; |
published |
property List: TMusicListCollection read FList write FList; |
end; |
procedure TMusicListCollection.SaveToStream(Stream: TStream); |
var |
Component: TMidiCollectionComponent; |
begin |
Component := TMidiCollectionComponent.Create(nil); |
try |
Component.FList := Self; |
Stream.WriteComponentRes('DelphiXMidiCollection', Component); |
finally |
Component.Free; |
end; |
end; |
procedure TMusicListCollection.LoadFromStream(Stream: TStream); |
var |
Component: TMidiCollectionComponent; |
begin |
Clear; |
Component := TMidiCollectionComponent.Create(nil); |
try |
Component.FList := Self; |
Stream.ReadComponentRes(Component); |
Restore; |
finally |
Component.Free; |
end; |
end; |
{ TDXMusic } |
constructor TDXMusic.Create(AOwner: TComponent); |
begin |
inherited Create(AOwner); |
FMidis := TMusicListCollection.Create(Self); |
if Assigned(FDXSound) then |
FMidis.FDirectSound := FDXSound.DSound.IDSound; |
end; |
procedure TDXMusic.SetMidis(const value: TMusicListCollection); |
begin |
FMidis.Assign(Value); |
end; |
destructor TDXMusic.Destroy; |
begin |
FMidis.Free; |
inherited Destroy; |
end; |
procedure TDXMusic.SetDXSound(const Value: TDXSound); |
begin |
FDXSound := Value; |
if Assigned(FDXSound) then |
FMidis.FDirectSound := FDXSound.DSound.IDSound; |
end; |
initialization |
finalization |
DirectSoundDrivers.Free; |
/VCL_DELPHIX_D6/DelphiXcfg.inc |
---|
1,32 → 1,917 |
{$B-,J+,Q-,R-,T-,X+} |
//********************************************************************* |
// Main configuration file for (un)DelphiX |
//********************************************************************* |
{$IFDEF VER100} |
{$DEFINE VER3UP} |
{$ENDIF} |
{$IFDEF VER120} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$ENDIF} |
{$IFDEF VER130} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$ENDIF} |
{$IFDEF VER140} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$ENDIF} |
{$IFDEF VER150} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$ENDIF} |
{$IFDEF VER170} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} // Delphi 2005 |
{$ENDIF} |
{$IFDEF VER180} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} // Delphi 2006 |
{$IFDEF VER185} |
{$DEFINE VER11UP} // Delphi 2007 |
{$ENDIF} |
{$ENDIF} |
{$IFDEF VER200} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$ENDIF} |
{$IFDEF VER210} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$ENDIF} |
{$IFDEF VER220} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} //Delphi XE |
{$ENDIF} |
{$IFDEF VER230} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} //Delphi XE2 |
{$ENDIF} |
{$IFDEF VER240} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} //Delphi XE3 |
{$ENDIF} |
{$IFDEF VER250} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} //Delphi XE4 |
{$ENDIF} |
{$IFDEF VER260} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} //Delphi XE5 |
{$ENDIF} |
{$IFDEF VER270} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} //Delphi XE6 |
{$ENDIF} |
{$IFDEF VER280} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} //Delphi XE7 |
{$ENDIF} |
{$IFDEF VER290} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} //Delphi XE8 |
{$ENDIF} |
{$IFDEF VER300} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} //Delphi 10 Seattle |
{$ENDIF} |
{$IFDEF VER310} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP}//Delphi 10.1 Berlin |
{$ENDIF} |
{$IFDEF VER320} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} //Delphi 10.2 Tokyo |
{$ENDIF} |
{$IFDEF VER330} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} |
{$DEFINE VER26UP} //Delphi 10.3 Rio |
{$ENDIF} |
{$IFDEF VER340} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} |
{$DEFINE VER26UP} |
{$DEFINE VER27UP} //Delphi 10.4 Sydney |
{$ENDIF} |
{$IFDEF VER350} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} |
{$DEFINE VER26UP} |
{$DEFINE VER27UP} |
{$DEFINE VER28UP} //Delphi 11 Alexandria |
{$ENDIF} |
{$IFDEF VER360} |
{$DEFINE VER3UP} |
{$DEFINE VER4UP} |
{$DEFINE VER5UP} |
{$DEFINE VER6UP} |
{$DEFINE VER7UP} |
{$DEFINE VER9UP} |
{$DEFINE VER10UP} |
{$DEFINE VER11UP} |
{$DEFINE VER12UP} |
{$DEFINE VER14UP} |
{$DEFINE VER15UP} |
{$DEFINE VER16UP} |
{$DEFINE VER17UP} |
{$DEFINE VER18UP} |
{$DEFINE VER19UP} |
{$DEFINE VER20UP} |
{$DEFINE VER21UP} |
{$DEFINE VER22UP} |
{$DEFINE VER23UP} |
{$DEFINE VER24UP} |
{$DEFINE VER25UP} |
{$DEFINE VER26UP} |
{$DEFINE VER27UP} |
{$DEFINE VER28UP} |
{$DEFINE VER29UP}//Delphi 12 Athens |
{$ENDIF} |
{$IFDEF VER100} |
// Delphi 3 |
{$DEFINE DelphiX_Delphi3} |
{$Define D3UP} |
{$ENDIF} |
{$IFDEF VER120} |
// Delphi 4 |
{$DEFINE DelphiX_Delphi4} |
{$Define D3UP} |
{$Define D4UP} |
{$ENDIF} |
{$IFDEF VER130} |
// Delphi 5 |
{$DEFINE DelphiX_Delphi5} |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$ENDIF} |
{$IFDEF DelphiX_Delphi3} |
{$DEFINE DelphiX_Spt3} |
{$IFDEF VER140} |
// Delphi 6 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$ENDIF} |
{$IFDEF DelphiX_Delphi4} |
{$DEFINE DelphiX_Spt3} |
{$DEFINE DelphiX_Spt4} |
{$IFDEF VER150} |
// Delphi 7 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$ENDIF} |
{$IFDEF DelphiX_Delphi5} |
{$DEFINE DelphiX_Spt3} |
{$DEFINE DelphiX_Spt4} |
{$DEFINE DelphiX_Spt5} |
{$IFDEF VER170} |
// Delphi 9 - 2005 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$ENDIF} |
{$IFDEF VER180} |
// Delphi 10 - 2006 or Turbo |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$ENDIF} |
{$IFDEF VER185} |
// Delphi 11 - 2007 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$ENDIF} |
{$IFDEF VER200} |
// Delphi 12 - 2009 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$ENDIF} |
{$IFDEF VER210} |
// Delphi 14 - 2010 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER220} |
// Delphi 15 - XE |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER230} |
// Delphi 16 - XE2 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER240} |
// Delphi 17 - XE3 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER250} |
// Delphi 18 - XE4 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER260} |
// Delphi 19 - XE5 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER270} |
// Delphi 20 - XE6 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER280} |
// Delphi 21 - XE7 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER290} |
// Delphi 22 - XE8 |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER300} |
// Delphi 23 - 10 Seattle |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER310} |
// Delphi 24 - 10.1 Berlin |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER320} |
// Delphi 25 - 10.2 Tokyo |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER330} |
// Delphi 26 - 10.3 Rio |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
{$Define D26UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER340} |
// Delphi 27 - 10.4 Sydney |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
{$Define D26UP} |
{$Define D27UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER350} |
// Delphi 28 - 11 Alexandria |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
{$Define D26UP} |
{$Define D27UP} |
{$Define D28UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{$IFDEF VER360} |
// Delphi 29 - 12 Athens |
{$Define D3UP} |
{$Define D4UP} |
{$Define D5UP} |
{$Define D6UP} |
{$Define D7UP} |
{$Define D9UP} |
{$Define D10UP} |
{$Define D11UP} |
{$Define D12UP} |
{$Define D14UP} |
{$Define D15UP} |
{$Define D16UP} |
{$Define D17UP} |
{$Define D18UP} |
{$Define D19UP} |
{$Define D20UP} |
{$Define D21UP} |
{$Define D22UP} |
{$Define D23UP} |
{$Define D24UP} |
{$Define D25UP} |
{$Define D26UP} |
{$Define D27UP} |
{$Define D28UP} |
{$Define D29UP} |
//cannot be made, Berlin version lost older interfaces |
//{.$Define D_EE_UP} |
{$ENDIF} |
{standard feature for drawing blend textures} |
{this conditional is add-on as is for eliminate bad color key switching} |
{$DEFINE DrawHWAcc} |
{DirectX Double precision activation} |
{$DEFINE DXDOUBLEPRECISION} |
{when you can use this option, you must use separate headers unit } |
{if this turn off, you use built-in standard DirectX.pas unit (in one file)} |
{$IFDEF D_EE_UP} //Delphi 2010/XE |
{$DEFINE StandardDX} |
{$ELSE} |
{.$DEFINE StandardDX} |
{$ENDIF} |
{Only one can be set!} |
{Use standard of DirectX version 7} |
{$IFNDEF D_EE_UP} |
{$DEFINE DX7} |
{$ELSE} |
{Use standard of DirectX version 9} |
{in concert with StandardDX for separate units only} |
{$IFDEF StandardDX} |
{$DEFINE DX9} |
{$ENDIF} |
{$ENDIF} |
{for better texture compression can be use ZLIB here} |
{in some Delphi versions it errors occurred because ZLib package is "lock-like" package} |
{I recommend use it for final version application only} |
{$IFDEF VER5UP} {Delphi 5 (and lower) has any problems with ZLIB, may be replace by 3rd party lib. manually} |
{$DEFINE DXTextureImage_UseZLIB} |
{$ENDIF} |
{when videotexture is used - like change images in texture} |
{Note: it consume 2x more memory because texture is store twice unchanged and} |
{changed - this conditional add/remove store shadow image in texture buffer} |
{$IFDEF VER5UP} {Delphi 5 (and lower) has any problems with ZLIB, may be replace by 3rd party lib. manually} |
{$DEFINE VIDEOTEX} |
{$ENDIF} |
{software rendering based on Hori's DXR code} |
{this option is only for remove all DXR code, is not recommended remove it} |
{it can be remove only for special usage like use PURE DirectX for SW rendering too} |
{$DEFINE DXR_deprecated} |
{$IfDef DX7} |
{Retained mode is turn off for Vista as implicit value} |
{When you want use it, you have to add the D3DRM.DLL} |
{is recommended put library into Windows/System32 system directory} |
{in application directory does not works properly under Vista} |
{$Define D3D_deprecated} //both must be turn-on |
{.$Define D3DRM} //required D3DRM.DLL !! |
{for separete unit is DirectRM.pas required !! - it is not include in Delphi 2010/XE !!} |
{this class is deprecated; when you can it use, remove dot bellow} |
{this add additional component for D3D over DXDraw} |
{$IFDEF D3DRM} |
{$Define DX3D_deprecated} |
{$ENDIF} |
{$ELSE} |
{$Define D3D_deprecated} |
{$EndIf} |
{$IFDEF VER12UP} |
{PNG support is added in Delphi 2009 and up as native feature} |
{there is turn on, it is for backward compatibility only} |
{$DEFINE PNG_GRAPHICS} |
{$ELSE} |
{for Delphi 2007 and lower when you usen PNG support, you have write} |
{name of PNG package into required section of pavkage source .dpk} |
{and turn on this support here - remove the dot only bellow} |
{.$DEFINE PNG_GRAPHICS} |
{$ENDIF} |
{special feature for enumerate displayis like primary, secondary etc.} |
{only for special purpose, multimonitors etc.} |
{.$DEFINE _DMO_} |
{When you need DirectPlay, please remove this definition. It is not enabled by default, because} |
{DirectPlay is not shipped with Windows by default, and the user might receive a warning} |
{that the app might not work if DirectPlay is not installed.} |
{.$Define UseDirectPlay} |
/VCL_DELPHIX_D6/DirectPlay.pas |
---|
0,0 → 1,2521 |
unit DirectPlay; |
{$INCLUDE DelphiXcfg.inc} |
{$IFNDEF UseDirectPlay} |
// If you want to use DirectPlay.pas, please enable the IFDEF UseDirectPlay in DelphiXcfg.inc |
interface |
implementation |
{$ELSE} // !UseDirectPlay |
(*==========================================================================; |
* |
* Copyright (C) Microsoft Corporation. All Rights Reserved. |
* |
* File: dplay.h dplobby.h |
* Content: DirectPlay include files |
* |
* DirectX 7 Delphi adaptation by Erik Unger |
* |
* Modified: 4-Jun-2000 |
* |
* Download: http://www.delphi-jedi.org/DelphiGraphics/ |
* E-Mail: DelphiDirectX@next-reality.com |
* |
***************************************************************************) |
interface |
{$MINENUMSIZE 4} |
{$ALIGN ON} |
uses |
Windows; |
type |
{$IFDEF UNICODE} |
PCharAW = PWideChar; |
{$ELSE} |
PCharAW = PAnsiChar; |
{$ENDIF} |
var |
DPlayDLL: HMODULE = 0; |
(*==========================================================================; |
* |
* Copyright (C) 1994-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: dplay.h |
* Content: DirectPlay include file |
* |
***************************************************************************) |
function DPErrorString(Value: HResult): string; |
const |
// {D1EB6D20-8923-11d0-9D97-00A0C90A43CB} |
CLSID_DirectPlay: TGUID = |
(D1: $D1EB6D20; D2: $8923; D3: $11D0; D4: ($9D, $97, $00, $A0, $C9, $A, $43, $CB)); |
(* |
* GUIDS used by Service Providers shipped with DirectPlay |
* Use these to identify Service Provider returned by EnumConnections |
*) |
// GUID for IPX service provider |
// {685BC400-9D2C-11cf-A9CD-00AA006886E3} |
DPSPGUID_IPX: TGUID = |
(D1: $685BC400; D2: $9D2C; D3: $11CF; D4: ($A9, $CD, $00, $AA, $00, $68, $86, $E3)); |
// GUID for TCP/IP service provider |
// 36E95EE0-8577-11cf-960C-0080C7534E82 |
DPSPGUID_TCPIP: TGUID = |
(D1: $36E95EE0; D2: $8577; D3: $11CF; D4: ($96, $0C, $00, $80, $C7, $53, $4E, $82)); |
// GUID for Serial service provider |
// {0F1D6860-88D9-11cf-9C4E-00A0C905425E} |
DPSPGUID_SERIAL: TGUID = |
(D1: $F1D6860; D2: $88D9; D3: $11CF; D4: ($9C, $4E, $00, $A0, $C9, $05, $42, $5E)); |
// GUID for Modem service provider |
// {44EAA760-CB68-11cf-9C4E-00A0C905425E} |
DPSPGUID_MODEM: TGUID = |
(D1: $44EAA760; D2: $CB68; D3: $11CF; D4: ($9C, $4E, $00, $A0, $C9, $05, $42, $5E)); |
(**************************************************************************** |
* |
* DirectPlay Structures |
* |
* Various structures used to invoke DirectPlay. |
* |
****************************************************************************) |
type |
(* |
* TDPID |
* DirectPlay player and group ID |
*) |
TDPID = DWORD; |
PDPID = ^TDPID; |
const |
(* |
* DPID that system messages come from |
*) |
DPID_SYSMSG = 0; |
(* |
* DPID representing all players in the session |
*) |
DPID_ALLPLAYERS = 0; |
(* |
* DPID representing the server player |
*) |
DPID_SERVERPLAYER = 1; |
(* |
* DPID representing the maximum ID in the range of DPID's reserved for |
* use by DirectPlay. |
*) |
DPID_RESERVEDRANGE = 100; |
(* |
* The player ID is unknown (used with e.g. DPSESSION_NOMESSAGEID) |
*) |
DPID_UNKNOWN = $FFFFFFFF; |
type |
(* |
* DPCAPS |
* Used to obtain the capabilities of a DirectPlay object |
*) |
PDPCaps = ^TDPCaps; |
TDPCaps = packed record |
dwSize: DWORD; // Size of structure, in bytes |
dwFlags: DWORD; // DPCAPS_xxx flags |
dwMaxBufferSize: DWORD; // Maximum message size, in bytes, for this service provider |
dwMaxQueueSize: DWORD; // Obsolete. |
dwMaxPlayers: DWORD; // Maximum players/groups (local + remote) |
dwHundredBaud: DWORD; // Bandwidth in 100 bits per second units; |
// i.e. 24 is 2400, 96 is 9600, etc. |
dwLatency: DWORD; // Estimated latency; 0 = unknown |
dwMaxLocalPlayers: DWORD; // Maximum # of locally created players allowed |
dwHeaderLength: DWORD; // Maximum header length, in bytes, on messages |
// added by the service provider |
dwTimeout: DWORD; // Service provider's suggested timeout value |
// This is how long DirectPlay will wait for |
// responses to system messages |
end; |
const |
(* |
* This DirectPlay object is the session host. If the host exits the |
* session, another application will become the host and receive a |
* DPSYS_HOST system message. |
*) |
DPCAPS_ISHOST = $00000002; |
(* |
* The service provider bound to this DirectPlay object can optimize |
* group messaging. |
*) |
DPCAPS_GROUPOPTIMIZED = $00000008; |
(* |
* The service provider bound to this DirectPlay object can optimize |
* keep alives (see DPSESSION_KEEPALIVE) |
*) |
DPCAPS_KEEPALIVEOPTIMIZED = $00000010; |
(* |
* The service provider bound to this DirectPlay object can optimize |
* guaranteed message delivery. |
*) |
DPCAPS_GUARANTEEDOPTIMIZED = $00000020; |
(* |
* This DirectPlay object supports guaranteed message delivery. |
*) |
DPCAPS_GUARANTEEDSUPPORTED = $00000040; |
(* |
* This DirectPlay object supports digital signing of messages. |
*) |
DPCAPS_SIGNINGSUPPORTED = $00000080; |
(* |
* This DirectPlay object supports encryption of messages. |
*) |
DPCAPS_ENCRYPTIONSUPPORTED = $00000100; |
(* |
* This DirectPlay player was created on this machine |
*) |
DPPLAYERCAPS_LOCAL = $00000800; |
(* |
* Current Open settings supports all forms of Cancel |
*) |
DPCAPS_ASYNCCANCELSUPPORTED = $00001000; |
(* |
* Current Open settings supports CancelAll, but not Cancel |
*) |
DPCAPS_ASYNCCANCELALLSUPPORTED = $00002000; |
(* |
* Current Open settings supports Send Timeouts for sends |
*) |
DPCAPS_SENDTIMEOUTSUPPORTED = $00004000; |
(* |
* Current Open settings supports send priority |
*) |
DPCAPS_SENDPRIORITYSUPPORTED = $00008000; |
(* |
* Current Open settings supports DPSEND_ASYNC flag |
*) |
DPCAPS_ASYNCSUPPORTED = $00010000; |
type |
(* |
* TDPSessionDesc2 |
* Used to describe the properties of a DirectPlay |
* session instance |
*) |
PDPSessionDesc2 = ^TDPSessionDesc2; |
TDPSessionDesc2 = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // DPSESSION_xxx flags |
guidInstance: TGUID; // ID for the session instance |
guidApplication: TGUID; // GUID of the DirectPlay application. |
// GUID_NULL for all applications. |
dwMaxPlayers: DWORD; // Maximum # players allowed in session |
dwCurrentPlayers: DWORD; // Current # players in session (read only) |
case Integer of |
0: ( |
lpszSessionName: PCharAW; // Name of the session |
lpszPassword: PCharAW; // Password of the session (optional) |
dwReserved1: DWORD; // Reserved for future MS use. |
dwReserved2: DWORD; |
dwUser1: DWORD; // For use by the application |
dwUser2: DWORD; |
dwUser3: DWORD; |
dwUser4: DWORD; |
); |
1: ( |
lpszSessionNameA: PAnsiChar; // Name of the session |
lpszPasswordA: PAnsiChar // Password of the session (optional) |
); |
2: ( |
lpszSessionNameW: PWideChar; |
lpszPasswordW: PWideChar |
); |
end; |
const |
(* |
* Applications cannot create new players in this session. |
*) |
DPSESSION_NEWPLAYERSDISABLED = $00000001; |
(* |
* If the DirectPlay object that created the session, the host, |
* quits, then the host will attempt to migrate to another |
* DirectPlay object so that new players can continue to be created |
* and new applications can join the session. |
*) |
DPSESSION_MIGRATEHOST = $00000004; |
(* |
* This flag tells DirectPlay not to set the idPlayerTo and idPlayerFrom |
* fields in player messages. This cuts two DWORD's off the message |
* overhead. |
*) |
DPSESSION_NOMESSAGEID = $00000008; |
(* |
* This flag tells DirectPlay to not allow any new applications to |
* join the session. Applications already in the session can still |
* create new players. |
*) |
DPSESSION_JOINDISABLED = $00000020; |
(* |
* This flag tells DirectPlay to detect when remote players |
* exit abnormally (e.g. their computer or modem gets unplugged) |
*) |
DPSESSION_KEEPALIVE = $00000040; |
(* |
* This flag tells DirectPlay not to send a message to all players |
* when a players remote data changes |
*) |
DPSESSION_NODATAMESSAGES = $00000080; |
(* |
* This flag indicates that the session belongs to a secure server |
* and needs user authentication |
*) |
DPSESSION_SECURESERVER = $00000100; |
(* |
* This flag indicates that the session is private and requirs a password |
* for EnumSessions as well as Open. |
*) |
DPSESSION_PRIVATE = $00000200; |
(* |
* This flag indicates that the session requires a password for joining. |
*) |
DPSESSION_PASSWORDREQUIRED = $00000400; |
(* |
* This flag tells DirectPlay to route all messages through the server |
*) |
DPSESSION_MULTICASTSERVER = $00000800; |
(* |
* This flag tells DirectPlay to only download information about the |
* DPPLAYER_SERVERPLAYER. |
*) |
DPSESSION_CLIENTSERVER = $00001000; |
(* |
* This flag tells DirectPlay to use the protocol built into dplay |
* for reliability and statistics all the time. When this bit is |
* set, only other sessions with this bit set can join or be joined. |
*) |
DPSESSION_DIRECTPLAYPROTOCOL = $00002000; |
(* |
* This flag tells DirectPlay that preserving order of received |
* packets is not important, when using reliable delivery. This |
* will allow messages to be indicated out of order if preceding |
* messages have not yet arrived. Otherwise DPLAY will wait for |
* earlier messages before delivering later reliable messages. |
*) |
DPSESSION_NOPRESERVEORDER = $00004000; |
(* |
* This flag tells DirectPlay to optimize communication for latency |
*) |
DPSESSION_OPTIMIZELATENCY = $00008000; |
type |
(* |
* TDPName |
* Used to hold the name of a DirectPlay entity |
* like a player or a group |
*) |
PDPName = ^TDPName; |
TDPName = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszShortName: PCharAW; // The short or friendly name |
lpszLongName: PCharAW; // The long or formal name |
); |
1: ( |
lpszShortNameA: PAnsiChar; |
lpszLongNameA: PAnsiChar; |
); |
2: ( |
lpszShortNameW: PWideChar; |
lpszLongNameW: PWideChar; |
); |
end; |
(* |
* TDPCredentials |
* Used to hold the user name and password of a DirectPlay user |
*) |
PDPCredentials = ^TDPCredentials; |
TDPCredentials = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszUsername: PCharAW; // User name of the account |
lpszPassword: PCharAW; // Password of the account |
lpszDomain: PCharAW; // Domain name of the account |
); |
1: ( |
lpszUsernameA: PAnsiChar; // User name of the account |
lpszPasswordA: PAnsiChar; // Password of the account |
lpszDomainA: PAnsiChar; // Domain name of the account |
); |
2: ( |
lpszUsernameW: PWideChar; // User name of the account |
lpszPasswordW: PWideChar; // Password of the account |
lpszDomainW: PWideChar; // Domain name of the account |
); |
end; |
(* |
* TDPSecurityDesc |
* Used to describe the security properties of a DirectPlay |
* session instance |
*) |
PDPSecurityDesc = ^TDPSecurityDesc; |
TDPSecurityDesc = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszSSPIProvider: PCharAW; // SSPI provider name |
lpszCAPIProvider: PCharAW; // CAPI provider name |
dwCAPIProviderType: DWORD; // Crypto Service Provider type |
dwEncryptionAlgorithm: DWORD; // Encryption Algorithm type |
); |
1: ( |
lpszSSPIProviderA: PAnsiChar; // SSPI provider name |
lpszCAPIProviderA: PAnsiChar; // CAPI provider name |
); |
2: ( |
lpszSSPIProviderW: PWideChar; // SSPI provider name |
lpszCAPIProviderW: PWideChar; // CAPI provider name |
); |
end; |
(* |
* DPACCOUNTDESC |
* Used to describe a user membership account |
*) |
PDPAccountDesc = ^TDPAccountDesc; |
TDPAccountDesc = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: (lpszAccountID: PCharAW); // Account identifier |
1: (lpszAccountIDA: PAnsiChar); |
2: (lpszAccountIDW: PWideChar); |
end; |
(* |
* TDPLConnection |
* Used to hold all in the informaion needed to connect |
* an application to a session or create a session |
*) |
PDPLConnection = ^TDPLConnection; |
TDPLConnection = packed record |
dwSize: DWORD; // Size of this structure |
dwFlags: DWORD; // Flags specific to this structure |
lpSessionDesc: PDPSessionDesc2; // Pointer to session desc to use on connect |
lpPlayerName: PDPName; // Pointer to Player name structure |
guidSP: TGUID; // GUID of the DPlay SP to use |
lpAddress: Pointer; // Address for service provider |
dwAddressSize: DWORD; // Size of address data |
end; |
(* |
* TDPChat |
* Used to hold the a DirectPlay chat message |
*) |
PDPChat = ^TDPChat; |
TDPChat = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0: (lpszMessage: PCharAW); // Message string |
1: (lpszMessageA: PAnsiChar); |
2: (lpszMessageW: PWideChar); |
end; |
(* |
* TSGBuffer |
* Scatter Gather Buffer used for SendEx |
*) |
PSGBuffer = ^TSGBuffer; |
TSGBuffer = packed record |
len: UINT; |
pData: PUCHAR; |
end; |
(**************************************************************************** |
* |
* Prototypes for DirectPlay callback functions |
* |
****************************************************************************) |
(* |
* Callback for IDirectPlay2::EnumSessions |
*) |
TDPEnumSessionsCallback2 = function(lpThisSD: PDPSessionDesc2; |
var lpdwTimeOut: DWORD; dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
const |
(* |
* This flag is set on the EnumSessions callback dwFlags parameter when |
* the time out has occurred. There will be no session data for this |
* callback. If *lpdwTimeOut is set to a non-zero value and the |
* EnumSessionsCallback function returns TRUE then EnumSessions will |
* continue waiting until the next timeout occurs. Timeouts are in |
* milliseconds. |
*) |
DPESC_TIMEDOUT = $00000001; |
type |
(* |
* Callback for IDirectPlay2.EnumPlayers |
* IDirectPlay2.EnumGroups |
* IDirectPlay2.EnumGroupPlayers |
*) |
TDPEnumPlayersCallback2 = function(DPID: TDPID; dwPlayerType: DWORD; |
const lpName: TDPName; dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
(* |
* ANSI callback for DirectPlayEnumerate |
* This callback prototype will be used if compiling |
* for ANSI strings |
*) |
TDPEnumDPCallbackA = function(const lpguidSP: TGUID; lpSPName: PAnsiChar; |
dwMajorVersion: DWORD; dwMinorVersion: DWORD; lpContext: Pointer): BOOL; stdcall; |
(* |
* Unicode callback for DirectPlayEnumerate |
* This callback prototype will be used if compiling |
* for Unicode strings |
*) |
TDPEnumDPCallbackW = function(const lpguidSP: TGUID; lpSPName: PWideChar; |
dwMajorVersion: DWORD; dwMinorVersion: DWORD; lpContext: Pointer): BOOL; stdcall; |
(* |
* Callback for DirectPlayEnumerate |
*) |
{$IFDEF UNICODE} |
TDPEnumDPCallback = TDPEnumDPCallbackW; |
{$ELSE} |
TDPEnumDPCallback = TDPEnumDPCallbackA; |
{$ENDIF} |
(* |
* Callback for IDirectPlay3(A/W).EnumConnections |
*) |
TDPEnumConnectionsCallback = function(const lpguidSP: TGUID; |
lpConnection: Pointer; dwConnectionSize: DWORD; const lpName: TDPName; |
dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
(* |
* API's |
*) |
var |
DirectPlayEnumerate: function(lpEnumDPCallback: TDPEnumDPCallback; |
lpContext: Pointer): HResult; stdcall; |
DirectPlayEnumerateA: function(lpEnumDPCallback: TDPEnumDPCallbackA; |
lpContext: Pointer): HResult; stdcall; |
DirectPlayEnumerateW: function(lpEnumDPCallback: TDPEnumDPCallbackW; |
lpContext: Pointer): HResult; stdcall; |
(**************************************************************************** |
* |
* IDirectPlay2 (and IDirectPlay2A) Interface |
* |
****************************************************************************) |
type |
IDirectPlay2AW = interface(IUnknown) |
(*** IDirectPlay2 methods ***) |
function AddPlayerToGroup(idGroup: TDPID; idPlayer: TDPID): HResult; stdcall; |
function Close: HResult; stdcall; |
function CreateGroup(out lpidGroup: TDPID; lpGroupName: PDPName; |
lpData: Pointer; dwDataSize: DWORD; dwFlags: DWORD): HResult; stdcall; |
function CreatePlayer(out lpidPlayer: TDPID; pPlayerName: PDPName; |
hEvent: THandle; lpData: Pointer; dwDataSize: DWORD; dwFlags: DWORD): HResult; stdcall; |
function DeletePlayerFromGroup(idGroup: TDPID; idPlayer: TDPID): HResult; stdcall; |
function DestroyGroup(idGroup: TDPID): HResult; stdcall; |
function DestroyPlayer(idPlayer: TDPID): HResult; stdcall; |
function EnumGroupPlayers(idGroup: TDPID; lpguidInstance: PGUID; |
lpEnumPlayersCallback2: TDPEnumPlayersCallback2; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function EnumGroups(lpguidInstance: PGUID; lpEnumPlayersCallback2: |
TDPEnumPlayersCallback2; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function EnumPlayers(lpguidInstance: PGUID; lpEnumPlayersCallback2: |
TDPEnumPlayersCallback2; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function EnumSessions(const lpsd: TDPSessionDesc2; dwTimeout: DWORD; |
lpEnumSessionsCallback2: TDPEnumSessionsCallback2; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function GetCaps(var lpDPCaps: TDPCaps; dwFlags: DWORD): HResult; stdcall; |
function GetGroupData(idGroup: TDPID; lpData: Pointer; var lpdwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function GetGroupName(idGroup: TDPID; lpData: Pointer; var lpdwDataSize: DWORD): |
HResult; stdcall; |
function GetMessageCount(idPlayer: TDPID; var lpdwCount: DWORD): HResult; stdcall; |
function GetPlayerAddress(idPlayer: TDPID; lpAddress: Pointer; |
var lpdwAddressSize: DWORD): HResult; stdcall; |
function GetPlayerCaps(idPlayer: TDPID; var lpPlayerCaps: TDPCaps; |
dwFlags: DWORD): HResult; stdcall; |
function GetPlayerData(idPlayer: TDPID; lpData: Pointer; var lpdwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function GetPlayerName(idPlayer: TDPID; lpData: Pointer; var lpdwDataSize: DWORD): HResult; stdcall; |
function GetSessionDesc(lpData: Pointer; var lpdwDataSize: DWORD): HResult; stdcall; |
function Initialize(const lpGUID: TGUID): HResult; stdcall; |
function Open(var lpsd: TDPSessionDesc2; dwFlags: DWORD): HResult; stdcall; |
function Receive(var lpidFrom: TDPID; var lpidTo: TDPID; dwFlags: DWORD; |
lpData: Pointer; var lpdwDataSize: DWORD): HResult; stdcall; |
function Send(idFrom: TDPID; lpidTo: TDPID; dwFlags: DWORD; var lpData; |
lpdwDataSize: DWORD): HResult; stdcall; |
function SetGroupData(idGroup: TDPID; lpData: Pointer; dwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function SetGroupName(idGroup: TDPID; lpGroupName: PDPName; |
dwFlags: DWORD): HResult; stdcall; |
function SetPlayerData(idPlayer: TDPID; lpData: Pointer; dwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function SetPlayerName(idPlayer: TDPID; lpPlayerName: PDPName; |
dwFlags: DWORD): HResult; stdcall; |
function SetSessionDesc(var lpSessDesc: TDPSessionDesc2; dwFlags: DWORD): |
HResult; stdcall; |
end; |
IDirectPlay2W = interface(IDirectPlay2AW) |
['{2B74F7C0-9154-11CF-A9CD-00AA006886E3}'] |
end; |
IDirectPlay2A = interface(IDirectPlay2AW) |
['{9d460580-a822-11cf-960c-0080c7534e82}'] |
end; |
{$IFDEF UNICODE} |
IDirectPlay2 = IDirectPlay2W; |
{$ELSE} |
IDirectPlay2 = IDirectPlay2A; |
{$ENDIF} |
(**************************************************************************** |
* |
* IDirectPlay3 (and IDirectPlay3A) Interface |
* |
****************************************************************************) |
IDirectPlay3AW = interface(IDirectPlay2AW) |
(*** IDirectPlay3 methods ***) |
function AddGroupToGroup(idParentGroup: TDPID; idGroup: TDPID): HResult; stdcall; |
function CreateGroupInGroup(idParentGroup: TDPID; var lpidGroup: TDPID; |
lpGroupName: PDPName; lpData: Pointer; dwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function DeleteGroupFromGroup(idParentGroup: TDPID; idGroup: TDPID): HResult; stdcall; |
function EnumConnections(lpguidApplication: PGUID; |
lpEnumCallback: TDPEnumConnectionsCallback; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function EnumGroupsInGroup(idGroup: TDPID; lpguidInstance: PGUID; |
lpEnumPlayersCallback2: TDPEnumPlayersCallback2; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function GetGroupConnectionSettings(dwFlags: DWORD; idGroup: TDPID; |
lpData: Pointer; var lpdwDataSize: DWORD): HResult; stdcall; |
function InitializeConnection(lpConnection: Pointer; dwFlags: DWORD): HResult; stdcall; |
function SecureOpen(var lpsd: TDPSessionDesc2; dwFlags: DWORD; |
var lpSecurity: TDPSecurityDesc; var lpCredentials: TDPCredentials): HResult; stdcall; |
function SendChatMessage(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; |
var lpChatMessage: TDPChat): HResult; stdcall; |
function SetGroupConnectionSettings(dwFlags: DWORD; idGroup: TDPID; |
var lpConnection: TDPLConnection): HResult; stdcall; |
function StartSession(dwFlags: DWORD; idGroup: TDPID): HResult; stdcall; |
function GetGroupFlags(idGroup: TDPID; out lpdwFlags: DWORD): HResult; stdcall; |
function GetGroupParent(idGroup: TDPID; out lpidParent: TDPID): HResult; stdcall; |
function GetPlayerAccount(idPlayer: TDPID; dwFlags: DWORD; var lpData; |
var lpdwDataSize: DWORD): HResult; stdcall; |
function GetPlayerFlags(idPlayer: TDPID; out lpdwFlags: DWORD): HResult; stdcall; |
end; |
IDirectPlay3W = interface(IDirectPlay3AW) |
['{133EFE40-32DC-11D0-9CFB-00A0C90A43CB}'] |
end; |
IDirectPlay3A = interface(IDirectPlay3AW) |
['{133efe41-32dc-11d0-9cfb-00a0c90a43cb}'] |
end; |
{$IFDEF UNICODE} |
IDirectPlay3 = IDirectPlay3W; |
{$ELSE} |
IDirectPlay3 = IDirectPlay3A; |
{$ENDIF} |
(**************************************************************************** |
* |
* IDirectPlay4 (and IDirectPlay4A) Interface |
* |
****************************************************************************) |
IDirectPlay4AW = interface(IDirectPlay3AW) |
(*** IDirectPlay4 methods ***) |
function GetGroupOwner(idGroup: TDPID; out idOwner: TDPID): HResult; stdcall; |
function SetGroupOwner(idGroup: TDPID; idOwner: TDPID): HResult; stdcall; |
function SendEx(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; lpData: Pointer; |
dwDataSize: DWORD; dwPriority: DWORD; dwTimeout: DWORD; |
lpContext: Pointer; lpdwMsgId: PDWORD): HResult; stdcall; |
function GetMessageQueue(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; |
lpdwNumMsgs: PDWORD; lpdwNumBytes: PDWORD): HResult; stdcall; |
function CancelMessage(dwMessageID: DWORD; dwFlags: DWORD): HResult; stdcall; |
function CancelPriority(dwMinPriority: DWORD; dwMaxPriority: DWORD; dwFlags: DWORD): HResult; stdcall; |
end; |
IDirectPlay4W = interface(IDirectPlay4AW) |
['{0ab1c530-4745-11D1-a7a1-0000f803abfc}'] |
end; |
IDirectPlay4A = interface(IDirectPlay4AW) |
['{0ab1c531-4745-11D1-a7a1-0000f803abfc}'] |
end; |
{$IFDEF UNICODE} |
IDirectPlay4 = IDirectPlay4W; |
{$ELSE} |
IDirectPlay4 = IDirectPlay4A; |
{$ENDIF} |
const |
(**************************************************************************** |
* |
* EnumConnections API flags |
* |
****************************************************************************) |
(* |
* Enumerate Service Providers |
*) |
DPCONNECTION_DIRECTPLAY = $00000001; |
(* |
* Enumerate Lobby Providers |
*) |
DPCONNECTION_DIRECTPLAYLOBBY = $00000002; |
(**************************************************************************** |
* |
* EnumPlayers API flags |
* |
****************************************************************************) |
(* |
* Enumerate all players in the current session |
*) |
DPENUMPLAYERS_ALL = $00000000; |
DPENUMGROUPS_ALL = DPENUMPLAYERS_ALL; |
(* |
* Enumerate only local (created by this application) players |
* or groups |
*) |
DPENUMPLAYERS_LOCAL = $00000008; |
DPENUMGROUPS_LOCAL = DPENUMPLAYERS_LOCAL; |
(* |
* Enumerate only remote (non-local) players |
* or groups |
*) |
DPENUMPLAYERS_REMOTE = $00000010; |
DPENUMGROUPS_REMOTE = DPENUMPLAYERS_REMOTE; |
(* |
* Enumerate groups along with the players |
*) |
DPENUMPLAYERS_GROUP = $00000020; |
(* |
* Enumerate players or groups in another session |
* (must supply lpguidInstance) |
*) |
DPENUMPLAYERS_SESSION = $00000080; |
DPENUMGROUPS_SESSION = DPENUMPLAYERS_SESSION; |
(* |
* Enumerate server players |
*) |
DPENUMPLAYERS_SERVERPLAYER = $00000100; |
(* |
* Enumerate spectator players |
*) |
DPENUMPLAYERS_SPECTATOR = $00000200; |
(* |
* Enumerate shortcut groups |
*) |
DPENUMGROUPS_SHORTCUT = $00000400; |
(* |
* Enumerate staging area groups |
*) |
DPENUMGROUPS_STAGINGAREA = $00000800; |
(* |
* Enumerate hidden groups |
*) |
DPENUMGROUPS_HIDDEN = $00001000; |
(* |
* Enumerate the group's owner |
*) |
DPENUMPLAYERS_OWNER = $00002000; |
(**************************************************************************** |
* |
* CreatePlayer API flags |
* |
****************************************************************************) |
(* |
* This flag indicates that this player should be designated |
* the server player. The app should specify this at CreatePlayer. |
*) |
DPPLAYER_SERVERPLAYER = DPENUMPLAYERS_SERVERPLAYER; |
(* |
* This flag indicates that this player should be designated |
* a spectator. The app should specify this at CreatePlayer. |
*) |
DPPLAYER_SPECTATOR = DPENUMPLAYERS_SPECTATOR; |
(* |
* This flag indicates that this player was created locally. |
* (returned from GetPlayerFlags) |
*) |
DPPLAYER_LOCAL = DPENUMPLAYERS_LOCAL; |
(* |
* This flag indicates that this player is the group's owner |
* (Only returned in EnumGroupPlayers) |
*) |
DPPLAYER_OWNER = DPENUMPLAYERS_OWNER; |
(**************************************************************************** |
* |
* CreateGroup API flags |
* |
****************************************************************************) |
(* |
* This flag indicates that the StartSession can be called on the group. |
* The app should specify this at CreateGroup, or CreateGroupInGroup. |
*) |
DPGROUP_STAGINGAREA = DPENUMGROUPS_STAGINGAREA; |
(* |
* This flag indicates that this group was created locally. |
* (returned from GetGroupFlags) |
*) |
DPGROUP_LOCAL = DPENUMGROUPS_LOCAL; |
(* |
* This flag indicates that this group was created hidden. |
*) |
DPGROUP_HIDDEN = DPENUMGROUPS_HIDDEN; |
(**************************************************************************** |
* |
* EnumSessions API flags |
* |
****************************************************************************) |
(* |
* Enumerate sessions which can be joined |
*) |
DPENUMSESSIONS_AVAILABLE = $00000001; |
(* |
* Enumerate all sessions even if they can't be joined. |
*) |
DPENUMSESSIONS_ALL = $00000002; |
(* |
* Start an asynchronous enum sessions |
*) |
DPENUMSESSIONS_ASYNC = $00000010; |
(* |
* Stop an asynchronous enum sessions |
*) |
DPENUMSESSIONS_STOPASYNC = $00000020; |
(* |
* Enumerate sessions even if they require a password |
*) |
DPENUMSESSIONS_PASSWORDREQUIRED = $00000040; |
(* |
* Return status about progress of enumeration instead of |
* showing any status dialogs. |
*) |
DPENUMSESSIONS_RETURNSTATUS = $00000080; |
(**************************************************************************** |
* |
* GetCaps and GetPlayerCaps API flags |
* |
****************************************************************************) |
(* |
* The latency returned should be for guaranteed message sending. |
* Default is non-guaranteed messaging. |
*) |
DPGETCAPS_GUARANTEED = $00000001; |
(**************************************************************************** |
* |
* GetGroupData, GetPlayerData API flags |
* Remote and local Group/Player data is maintained separately. |
* Default is DPGET_REMOTE. |
* |
****************************************************************************) |
(* |
* Get the remote data (set by any DirectPlay object in |
* the session using DPSET_REMOTE) |
*) |
DPGET_REMOTE = $00000000; |
(* |
* Get the local data (set by this DirectPlay object |
* using DPSET_LOCAL) |
*) |
DPGET_LOCAL = $00000001; |
(**************************************************************************** |
* |
* Open API flags |
* |
****************************************************************************) |
(* |
* Join the session that is described by the DPSESSIONDESC2 structure |
*) |
DPOPEN_JOIN = $00000001; |
(* |
* Create a new session as described by the DPSESSIONDESC2 structure |
*) |
DPOPEN_CREATE = $00000002; |
(* |
* Return status about progress of open instead of showing |
* any status dialogs. |
*) |
DPOPEN_RETURNSTATUS = DPENUMSESSIONS_RETURNSTATUS; |
(**************************************************************************** |
* |
* DPLCONNECTION flags |
* |
****************************************************************************) |
(* |
* This application should create a new session as |
* described by the DPSESIONDESC structure |
*) |
DPLCONNECTION_CREATESESSION = DPOPEN_CREATE; |
(* |
* This application should join the session described by |
* the DPSESIONDESC structure with the lpAddress data |
*) |
DPLCONNECTION_JOINSESSION = DPOPEN_JOIN; |
(**************************************************************************** |
* |
* Receive API flags |
* Default is DPRECEIVE_ALL |
* |
****************************************************************************) |
(* |
* Get the first message in the queue |
*) |
DPRECEIVE_ALL = $00000001; |
(* |
* Get the first message in the queue directed to a specific player |
*) |
DPRECEIVE_TOPLAYER = $00000002; |
(* |
* Get the first message in the queue from a specific player |
*) |
DPRECEIVE_FROMPLAYER = $00000004; |
(* |
* Get the message but don't remove it from the queue |
*) |
DPRECEIVE_PEEK = $00000008; |
(**************************************************************************** |
* |
* Send API flags |
* |
****************************************************************************) |
(* |
* Send the message using a guaranteed send method. |
* Default is non-guaranteed. |
*) |
DPSEND_GUARANTEED = $00000001; |
(* |
* This flag is obsolete. It is ignored by DirectPlay |
*) |
DPSEND_HIGHPRIORITY = $00000002; |
(* |
* This flag is obsolete. It is ignored by DirectPlay |
*) |
DPSEND_OPENSTREAM = $00000008; |
(* |
* This flag is obsolete. It is ignored by DirectPlay |
*) |
DPSEND_CLOSESTREAM = $00000010; |
(* |
* Send the message digitally signed to ensure authenticity. |
*) |
DPSEND_SIGNED = $00000020; |
(* |
* Send the message with encryption to ensure privacy. |
*) |
DPSEND_ENCRYPTED = $00000040; |
(* |
* The message is a lobby system message |
*) |
DPSEND_LOBBYSYSTEMMESSAGE = $00000080; |
(* |
* andyco - added this so we can make addforward async. |
* needs to be sanitized when we add / expose full async |
* support. 8/3/97. |
*) |
DPSEND_ASYNC = $00000200; |
(* |
* When a message is completed, don't tell me. |
* by default the application is notified with a system message. |
*) |
DPSEND_NOSENDCOMPLETEMSG = $00000400; |
(* |
* Maximum priority for sends available to applications |
*) |
DPSEND_MAX_PRI = $0000FFFF; |
DPSEND_MAX_PRIORITY = DPSEND_MAX_PRI; |
(**************************************************************************** |
* |
* SetGroupData, SetGroupName, SetPlayerData, SetPlayerName, |
* SetSessionDesc API flags. |
* Default is DPSET_REMOTE. |
* |
****************************************************************************) |
(* |
* Propagate the data to all players in the session |
*) |
DPSET_REMOTE = $00000000; |
(* |
* Do not propagate the data to other players |
*) |
DPSET_LOCAL = $00000001; |
(* |
* Used with DPSET_REMOTE, use guaranteed message send to |
* propagate the data |
*) |
DPSET_GUARANTEED = $00000002; |
(**************************************************************************** |
* |
* GetMessageQueue API flags. |
* Default is DPMESSAGEQUEUE_SEND |
* |
****************************************************************************) |
(* |
* Get Send Queue - requires Service Provider Support |
*) |
DPMESSAGEQUEUE_SEND = $00000001; |
(* |
* Get Receive Queue |
*) |
DPMESSAGEQUEUE_RECEIVE = $00000002; |
(**************************************************************************** |
* |
* Connect API flags |
* |
****************************************************************************) |
(* |
* Start an asynchronous connect which returns status codes |
*) |
DPCONNECT_RETURNSTATUS = DPENUMSESSIONS_RETURNSTATUS; |
(**************************************************************************** |
* |
* DirectPlay system messages and message data structures |
* |
* All system message come 'From' player DPID_SYSMSG. To determine what type |
* of message it is, cast the lpData from Receive to TDPMsg_Generic and check |
* the dwType member against one of the following DPSYS_xxx constants. Once |
* a match is found, cast the lpData to the corresponding of the DPMSG_xxx |
* structures to access the data of the message. |
* |
****************************************************************************) |
(* |
* A new player or group has been created in the session |
* Use TDPMsg_CreatePlayerOrGroup. Check dwPlayerType to see if it |
* is a player or a group. |
*) |
DPSYS_CREATEPLAYERORGROUP = $0003; |
(* |
* A player has been deleted from the session |
* Use TDPMsg_DestroyPlayerOrGroup |
*) |
DPSYS_DESTROYPLAYERORGROUP = $0005; |
(* |
* A player has been added to a group |
* Use DPMSG_ADDPLAYERTOGROUP |
*) |
DPSYS_ADDPLAYERTOGROUP = $0007; |
(* |
* A player has been removed from a group |
* Use DPMSG_DELETEPLAYERFROMGROUP |
*) |
DPSYS_DELETEPLAYERFROMGROUP = $0021; |
(* |
* This DirectPlay object lost its connection with all the |
* other players in the session. |
* Use DPMSG_SESSIONLOST. |
*) |
DPSYS_SESSIONLOST = $0031; |
(* |
* The current host has left the session. |
* This DirectPlay object is now the host. |
* Use DPMSG_HOST. |
*) |
DPSYS_HOST = $0101; |
(* |
* The remote data associated with a player or |
* group has changed. Check dwPlayerType to see |
* if it is a player or a group |
* Use DPMSG_SETPLAYERORGROUPDATA |
*) |
DPSYS_SETPLAYERORGROUPDATA = $0102; |
(* |
* The name of a player or group has changed. |
* Check dwPlayerType to see if it is a player |
* or a group. |
* Use TDPMsg_SetPlayerOrGroupName |
*) |
DPSYS_SETPLAYERORGROUPNAME = $0103; |
(* |
* The session description has changed. |
* Use DPMSG_SETSESSIONDESC |
*) |
DPSYS_SETSESSIONDESC = $0104; |
(* |
* A group has been added to a group |
* Use TDPMsg_AddGroupToGroup |
*) |
DPSYS_ADDGROUPTOGROUP = $0105; |
(* |
* A group has been removed from a group |
* Use DPMsg_DeleteGroupFromGroup |
*) |
DPSYS_DELETEGROUPFROMGROUP = $0106; |
(* |
* A secure player-player message has arrived. |
* Use DPMSG_SECUREMESSAGE |
*) |
DPSYS_SECUREMESSAGE = $0107; |
(* |
* Start a new session. |
* Use DPMSG_STARTSESSION |
*) |
DPSYS_STARTSESSION = $0108; |
(* |
* A chat message has arrived |
* Use DPMSG_CHAT |
*) |
DPSYS_CHAT = $0109; |
(* |
* The owner of a group has changed |
* Use DPMSG_SETGROUPOWNER |
*) |
DPSYS_SETGROUPOWNER = $010A; |
(* |
* An async send has finished, failed or been cancelled |
* Use DPMSG_SENDCOMPLETE |
*) |
DPSYS_SENDCOMPLETE = $010D; |
(* |
* Used in the dwPlayerType field to indicate if it applies to a group |
* or a player |
*) |
DPPLAYERTYPE_GROUP = $00000000; |
DPPLAYERTYPE_PLAYER = $00000001; |
type |
(* |
* TDPMsg_Generic |
* Generic message structure used to identify the message type. |
*) |
PDPMsg_Generic = ^TDPMsg_Generic; |
TDPMsg_Generic = packed record |
dwType: DWORD; // Message type |
end; |
(* |
* TDPMsg_CreatePlayerOrGroup |
* System message generated when a new player or group |
* created in the session with information about it. |
*) |
PDPMsg_CreatePlayerOrGroup = ^TDPMsg_CreatePlayerOrGroup; |
TDPMsg_CreatePlayerOrGroup = packed record |
dwType: DWORD; // Message type |
dwPlayerType: DWORD; // Is it a player or group |
DPID: TDPID; // ID of the player or group |
dwCurrentPlayers: DWORD; // current # players & groups in session |
lpData: Pointer; // pointer to remote data |
dwDataSize: DWORD; // size of remote data |
dpnName: TDPName; // structure with name info |
// the following fields are only available when using |
// the IDirectPlay3 interface or greater |
dpIdParent: TDPID; // id of parent group |
dwFlags: DWORD; // player or group flags |
end; |
(* |
* TDPMsg_DestroyPlayerOrGroup |
* System message generated when a player or group is being |
* destroyed in the session with information about it. |
*) |
PDPMsg_DestroyPlayerOrGroup = ^TDPMsg_DestroyPlayerOrGroup; |
TDPMsg_DestroyPlayerOrGroup = packed record |
dwType: DWORD; // Message type |
dwPlayerType: DWORD; // Is it a player or group |
DPID: TDPID; // player ID being deleted |
lpLocalData: Pointer; // copy of players local data |
dwLocalDataSize: DWORD; // sizeof local data |
lpRemoteData: Pointer; // copy of players remote data |
dwRemoteDataSize: DWORD; // sizeof remote data |
// the following fields are only available when using |
// the IDirectPlay3 interface or greater |
dpnName: TDPName; // structure with name info |
dpIdParent: TDPID; // id of parent group |
dwFlags: DWORD; // player or group flags |
end; |
(* |
* DPMSG_ADDPLAYERTOGROUP |
* System message generated when a player is being added |
* to a group. |
*) |
PDPMsg_AddPlayerToGroup = ^TDPMsg_AddPlayerToGroup; |
TDPMsg_AddPlayerToGroup = packed record |
dwType: DWORD; // Message type |
dpIdGroup: TDPID; // group ID being added to |
dpIdPlayer: TDPID; // player ID being added |
end; |
(* |
* DPMSG_DELETEPLAYERFROMGROUP |
* System message generated when a player is being |
* removed from a group |
*) |
PDPMsg_DeletePlayerFromGroup = ^TDPMsg_DeletePlayerFromGroup; |
TDPMsg_DeletePlayerFromGroup = TDPMsg_AddPlayerToGroup; |
(* |
* TDPMsg_AddGroupToGroup |
* System message generated when a group is being added |
* to a group. |
*) |
PDPMsg_AddGroupToGroup = ^TDPMsg_AddGroupToGroup; |
TDPMsg_AddGroupToGroup = packed record |
dwType: DWORD; // Message type |
dpIdParentGroup: TDPID; // group ID being added to |
dpIdGroup: TDPID; // group ID being added |
end; |
(* |
* DPMsg_DeleteGroupFromGroup |
* System message generated when a GROUP is being |
* removed from a group |
*) |
PDPMsg_DeleteGroupFromGroup = ^TDPMsg_DeleteGroupFromGroup; |
TDPMsg_DeleteGroupFromGroup = TDPMsg_AddGroupToGroup; |
(* |
* DPMSG_SETPLAYERORGROUPDATA |
* System message generated when remote data for a player or |
* group has changed. |
*) |
PDPMsg_SetPlayerOrGroupData = ^TDPMsg_SetPlayerOrGroupData; |
TDPMsg_SetPlayerOrGroupData = packed record |
dwType: DWORD; // Message type |
dwPlayerType: DWORD; // Is it a player or group |
DPID: TDPID; // ID of player or group |
lpData: Pointer; // pointer to remote data |
dwDataSize: DWORD; // size of remote data |
end; |
(* |
* DPMSG_SETPLAYERORGROUPNAME |
* System message generated when the name of a player or |
* group has changed. |
*) |
PDPMsg_SetPlayerOrGroupName = ^TDPMsg_SetPlayerOrGroupName; |
TDPMsg_SetPlayerOrGroupName = packed record |
dwType: DWORD; // Message type |
dwPlayerType: DWORD; // Is it a player or group |
DPID: TDPID; // ID of player or group |
dpnName: TDPName; // structure with new name info |
end; |
(* |
* DPMSG_SETSESSIONDESC |
* System message generated when session desc has changed |
*) |
PDPMsg_SetSessionDesc = ^TDPMsg_SetSessionDesc; |
TDPMsg_SetSessionDesc = packed record |
dwType: DWORD; // Message type |
dpDesc: TDPSessionDesc2; // Session desc |
end; |
(* |
* DPMSG_HOST |
* System message generated when the host has migrated to this |
* DirectPlay object. |
* |
*) |
PDPMsg_Host = ^TDPMsg_Host; |
TDPMsg_Host = TDPMsg_Generic; |
(* |
* DPMSG_SESSIONLOST |
* System message generated when the connection to the session is lost. |
* |
*) |
PDPMsg_SessionLost = ^TDPMsg_SessionLost; |
TDPMsg_SessionLost = TDPMsg_Generic; |
(* |
* DPMSG_SECUREMESSAGE |
* System message generated when a player requests a secure send |
*) |
PDPMsg_SecureMessage = ^TDPMsg_SecureMessage; |
TDPMsg_SecureMessage = packed record |
dwType: DWORD; // Message Type |
dwFlags: DWORD; // Signed/Encrypted |
dpIdFrom: TDPID; // ID of Sending Player |
lpData: Pointer; // Player message |
dwDataSize: DWORD; // Size of player message |
end; |
(* |
* DPMSG_STARTSESSION |
* System message containing all information required to |
* start a new session |
*) |
PDPMsg_StartSession = ^TDPMsg_StartSession; |
TDPMsg_StartSession = packed record |
dwType: DWORD; // Message type |
lpConn: PDPLConnection; // TDPLConnection structure |
end; |
(* |
* DPMSG_CHAT |
* System message containing a chat message |
*) |
PDPMsg_Chat = ^TDPMsg_Chat; |
TDPMsg_Chat = packed record |
dwType: DWORD; // Message type |
dwFlags: DWORD; // Message flags |
idFromPlayer: TDPID; // ID of the Sending Player |
idToPlayer: TDPID; // ID of the To Player |
idToGroup: TDPID; // ID of the To Group |
lpChat: PDPChat; // Pointer to a structure containing the chat message |
end; |
(* |
* DPMSG_SETGROUPOWNER |
* System message generated when the owner of a group has changed |
*) |
PDPMsg_SetGroupOwner = ^TDPMsg_SetGroupOwner; |
TDPMsg_SetGroupOwner = packed record |
dwType: DWORD; // Message type |
idGroup: TDPID; // ID of the group |
idNewOwner: TDPID; // ID of the player that is the new owner |
idOldOwner: TDPID; // ID of the player that used to be the owner |
end; |
(* |
* DPMSG_SENDCOMPLETE |
* System message generated when finished with an Async Send message |
* |
* NOTE SENDPARMS has an overlay for DPMSG_SENDCOMPLETE, don't |
* change this message w/o changing SENDPARMS. |
*) |
PDPMsg_SendComplete = ^TDPMsg_SendComplete; |
TDPMsg_SendComplete = packed record |
dwType: DWORD; // Message type |
idFrom: TDPID; |
idTo: TDPID; |
dwFlags: DWORD; |
dwPriority: DWORD; |
dwTimeout: DWORD; |
lpvContext: Pointer; |
dwMsgID: DWORD; |
hr: HRESULT; |
dwSendTime: DWORD; |
end; |
(**************************************************************************** |
* |
* DIRECTPLAY ERRORS |
* |
* Errors are represented by negative values and cannot be combined. |
* |
****************************************************************************) |
const |
MAKE_DPHRESULT = HResult($88770000); |
DP_OK = S_OK; |
DPERR_ALREADYINITIALIZED = MAKE_DPHRESULT + 5; |
DPERR_ACCESSDENIED = MAKE_DPHRESULT + 10; |
DPERR_ACTIVEPLAYERS = MAKE_DPHRESULT + 20; |
DPERR_BUFFERTOOSMALL = MAKE_DPHRESULT + 30; |
DPERR_CANTADDPLAYER = MAKE_DPHRESULT + 40; |
DPERR_CANTCREATEGROUP = MAKE_DPHRESULT + 50; |
DPERR_CANTCREATEPLAYER = MAKE_DPHRESULT + 60; |
DPERR_CANTCREATESESSION = MAKE_DPHRESULT + 70; |
DPERR_CAPSNOTAVAILABLEYET = MAKE_DPHRESULT + 80; |
DPERR_EXCEPTION = MAKE_DPHRESULT + 90; |
DPERR_GENERIC = E_FAIL; |
DPERR_INVALIDFLAGS = MAKE_DPHRESULT + 120; |
DPERR_INVALIDOBJECT = MAKE_DPHRESULT + 130; |
DPERR_INVALIDPARAM = E_INVALIDARG; |
DPERR_INVALIDPARAMS = DPERR_INVALIDPARAM; |
DPERR_INVALIDPLAYER = MAKE_DPHRESULT + 150; |
DPERR_INVALIDGROUP = MAKE_DPHRESULT + 155; |
DPERR_NOCAPS = MAKE_DPHRESULT + 160; |
DPERR_NOCONNECTION = MAKE_DPHRESULT + 170; |
DPERR_NOMEMORY = E_OUTOFMEMORY; |
DPERR_OUTOFMEMORY = DPERR_NOMEMORY; |
DPERR_NOMESSAGES = MAKE_DPHRESULT + 190; |
DPERR_NONAMESERVERFOUND = MAKE_DPHRESULT + 200; |
DPERR_NOPLAYERS = MAKE_DPHRESULT + 210; |
DPERR_NOSESSIONS = MAKE_DPHRESULT + 220; |
DPERR_PENDING = E_PENDING; |
DPERR_SENDTOOBIG = MAKE_DPHRESULT + 230; |
DPERR_TIMEOUT = MAKE_DPHRESULT + 240; |
DPERR_UNAVAILABLE = MAKE_DPHRESULT + 250; |
DPERR_UNSUPPORTED = E_NOTIMPL; |
DPERR_BUSY = MAKE_DPHRESULT + 270; |
DPERR_USERCANCEL = MAKE_DPHRESULT + 280; |
DPERR_NOINTERFACE = E_NOINTERFACE; |
DPERR_CANNOTCREATESERVER = MAKE_DPHRESULT + 290; |
DPERR_PLAYERLOST = MAKE_DPHRESULT + 300; |
DPERR_SESSIONLOST = MAKE_DPHRESULT + 310; |
DPERR_UNINITIALIZED = MAKE_DPHRESULT + 320; |
DPERR_NONEWPLAYERS = MAKE_DPHRESULT + 330; |
DPERR_INVALIDPASSWORD = MAKE_DPHRESULT + 340; |
DPERR_CONNECTING = MAKE_DPHRESULT + 350; |
DPERR_CONNECTIONLOST = MAKE_DPHRESULT + 360; |
DPERR_UNKNOWNMESSAGE = MAKE_DPHRESULT + 370; |
DPERR_CANCELFAILED = MAKE_DPHRESULT + 380; |
DPERR_INVALIDPRIORITY = MAKE_DPHRESULT + 390; |
DPERR_NOTHANDLED = MAKE_DPHRESULT + 400; |
DPERR_CANCELLED = MAKE_DPHRESULT + 410; |
DPERR_ABORTED = MAKE_DPHRESULT + 420; |
DPERR_BUFFERTOOLARGE = MAKE_DPHRESULT + 1000; |
DPERR_CANTCREATEPROCESS = MAKE_DPHRESULT + 1010; |
DPERR_APPNOTSTARTED = MAKE_DPHRESULT + 1020; |
DPERR_INVALIDINTERFACE = MAKE_DPHRESULT + 1030; |
DPERR_NOSERVICEPROVIDER = MAKE_DPHRESULT + 1040; |
DPERR_UNKNOWNAPPLICATION = MAKE_DPHRESULT + 1050; |
DPERR_NOTLOBBIED = MAKE_DPHRESULT + 1070; |
DPERR_SERVICEPROVIDERLOADED = MAKE_DPHRESULT + 1080; |
DPERR_ALREADYREGISTERED = MAKE_DPHRESULT + 1090; |
DPERR_NOTREGISTERED = MAKE_DPHRESULT + 1100; |
// |
// Security related errors |
// |
DPERR_AUTHENTICATIONFAILED = MAKE_DPHRESULT + 2000; |
DPERR_CANTLOADSSPI = MAKE_DPHRESULT + 2010; |
DPERR_ENCRYPTIONFAILED = MAKE_DPHRESULT + 2020; |
DPERR_SIGNFAILED = MAKE_DPHRESULT + 2030; |
DPERR_CANTLOADSECURITYPACKAGE = MAKE_DPHRESULT + 2040; |
DPERR_ENCRYPTIONNOTSUPPORTED = MAKE_DPHRESULT + 2050; |
DPERR_CANTLOADCAPI = MAKE_DPHRESULT + 2060; |
DPERR_NOTLOGGEDIN = MAKE_DPHRESULT + 2070; |
DPERR_LOGONDENIED = MAKE_DPHRESULT + 2080; |
(**************************************************************************** |
* |
* dplay 1.0 obsolete structures + interfaces |
* Included for compatibility only. New apps should |
* use IDirectPlay2 |
* |
****************************************************************************) |
DPOPEN_OPENSESSION = DPOPEN_JOIN; |
DPOPEN_CREATESESSION = DPOPEN_CREATE; |
DPENUMSESSIONS_PREVIOUS = $00000004; |
DPENUMPLAYERS_PREVIOUS = $00000004; |
DPSEND_GUARANTEE = DPSEND_GUARANTEED; |
DPSEND_TRYONCE = $00000004; |
DPCAPS_NAMESERVICE = $00000001; |
DPCAPS_NAMESERVER = DPCAPS_ISHOST; |
DPCAPS_GUARANTEED = $00000004; |
DPLONGNAMELEN = 52; |
DPSHORTNAMELEN = 20; |
DPSESSIONNAMELEN = 32; |
DPPASSWORDLEN = 16; |
DPUSERRESERVED = 16; |
DPSYS_ADDPLAYER = $0003; |
DPSYS_DELETEPLAYER = $0005; |
DPSYS_DELETEGROUP = $0020; |
DPSYS_DELETEPLAYERFROMGRP = $0021; |
DPSYS_CONNECT = $484B; |
type |
PDPMsg_AddPlayer = ^TDPMsg_AddPlayer; |
TDPMsg_AddPlayer = packed record |
dwType: DWORD; |
dwPlayerType: DWORD; |
DPID: TDPID; |
szLongName: array[0..DPLONGNAMELEN - 1] of Char; |
szShortName: array[0..DPSHORTNAMELEN - 1] of Char; |
dwCurrentPlayers: DWORD; |
end; |
PDPMsg_AddGroup = ^TDPMsg_AddGroup; |
TDPMsg_AddGroup = TDPMsg_AddPlayer; |
PDPMsg_GroupAdd = ^TDPMsg_GroupAdd; |
TDPMsg_GroupAdd = packed record |
dwType: DWORD; |
dpIdGroup: TDPID; |
dpIdPlayer: TDPID; |
end; |
PDPMsg_GroupDelete = ^TDPMsg_GroupDelete; |
TDPMsg_GroupDelete = TDPMsg_GroupAdd; |
PDPMsg_DeletePlayer = ^TDPMsg_DeletePlayer; |
TDPMsg_DeletePlayer = packed record |
dwType: DWORD; |
DPID: TDPID; |
end; |
TDPEnumPlayersCallback = function(dpId: TDPID; lpFriendlyName: PChar; |
lpFormalName: PChar; dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
PDPSessionDesc = ^TDPSessionDesc; |
TDPSessionDesc = packed record |
dwSize: DWORD; |
guidSession: TGUID; |
dwSession: DWORD; |
dwMaxPlayers: DWORD; |
dwCurrentPlayers: DWORD; |
dwFlags: DWORD; |
szSessionName: array[0..DPSESSIONNAMELEN - 1] of Char; |
szUserField: array[0..DPUSERRESERVED - 1] of Char; |
dwReserved1: DWORD; |
szPassword: array[0..DPPASSWORDLEN - 1] of Char; |
dwReserved2: DWORD; |
dwUser1: DWORD; |
dwUser2: DWORD; |
dwUser3: DWORD; |
dwUser4: DWORD; |
end; |
TDPEnumSessionsCallback = function(const lpDPSessionDesc: TDPSessionDesc; |
lpContext: Pointer; var lpdwTimeOut: DWORD; dwFlags: DWORD): BOOL; stdcall; |
type |
IDirectPlay = interface(IUnknown) |
['{5454e9a0-db65-11ce-921c-00aa006c4972}'] |
(*** IDirectPlay methods ***) |
function AddPlayerToGroup(pidGroup: TDPID; pidPlayer: TDPID): HResult; stdcall; |
function Close: HResult; stdcall; |
function CreatePlayer(out lppidID: TDPID; lpPlayerFriendlyName: PChar; |
lpPlayerFormalName: PChar; lpEvent: PHandle): HResult; stdcall; |
function CreateGroup(out lppidID: TDPID; lpGroupFriendlyName: PChar; |
lpGroupFormalName: PChar): HResult; stdcall; |
function DeletePlayerFromGroup(pidGroup: TDPID; pidPlayer: TDPID): HResult; stdcall; |
function DestroyPlayer(pidID: TDPID): HResult; stdcall; |
function DestroyGroup(pidID: TDPID): HResult; stdcall; |
function EnableNewPlayers(bEnable: BOOL): HResult; stdcall; |
function EnumGroupPlayers(pidGroupPID: TDPID; lpEnumPlayersCallback: |
TDPEnumPlayersCallback; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function EnumGroups(dwSessionID: DWORD; lpEnumPlayersCallback: |
TDPEnumPlayersCallback; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function EnumPlayers(dwSessionId: DWORD; lpEnumPlayersCallback: |
TDPEnumPlayersCallback; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function EnumSessions(var lpSDesc: TDPSessionDesc; dwTimeout: DWORD; |
lpEnumSessionsCallback: TDPEnumSessionsCallback; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function GetCaps(var lpDPCaps: TDPCaps): HResult; stdcall; |
function GetMessageCount(pidID: TDPID; var lpdwCount: DWORD): HResult; stdcall; |
function GetPlayerCaps(pidID: TDPID; var lpDPPlayerCaps: TDPCaps): HResult; stdcall; |
function GetPlayerName(pidID: TDPID; lpPlayerFriendlyName: PChar; |
var lpdwFriendlyNameLength: DWORD; lpPlayerFormalName: PChar; |
var lpdwFormalNameLength: DWORD): HResult; stdcall; |
function Initialize(const lpGUID: TGUID): HResult; stdcall; |
function Open(var lpSDesc: TDPSessionDesc): HResult; stdcall; |
function Receive(var lppidFrom, lppidTo: TDPID; dwFlags: DWORD; |
var lpvBuffer; var lpdwSize: DWORD): HResult; stdcall; |
function SaveSession(lpSessionName: PChar): HResult; stdcall; |
function Send(pidFrom: TDPID; pidTo: TDPID; dwFlags: DWORD; |
var lpvBuffer; dwBuffSize: DWORD): HResult; stdcall; |
function SetPlayerName(pidID: TDPID; lpPlayerFriendlyName: PChar; |
lpPlayerFormalName: PChar): HResult; stdcall; |
end; |
(* |
* GUIDS used by DirectPlay objects |
*) |
IID_IDirectPlay2W = IDirectPlay2W; |
IID_IDirectPlay2A = IDirectPlay2A; |
IID_IDirectPlay2 = IDirectPlay2; |
IID_IDirectPlay3W = IDirectPlay3W; |
IID_IDirectPlay3A = IDirectPlay3A; |
IID_IDirectPlay3 = IDirectPlay3; |
IID_IDirectPlay4W = IDirectPlay4W; |
IID_IDirectPlay4A = IDirectPlay4A; |
IID_IDirectPlay4 = IDirectPlay4; |
IID_IDirectPlay = IDirectPlay; |
var |
DirectPlayCreate: function(lpGUID: PGUID; out lplpDP: IDirectPlay; |
pUnk: IUnknown): HResult; stdcall; |
(*==========================================================================; |
* |
* Copyright (C) 1996-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: dplobby.h |
* Content: DirectPlayLobby include file |
***************************************************************************) |
(* |
* GUIDS used by DirectPlay objects |
*) |
const |
(* {2FE8F810-B2A5-11d0-A787-0000F803ABFC} *) |
CLSID_DirectPlayLobby: TGUID = |
(D1: $2FE8F810; D2: $B2A5; D3: $11D0; D4: ($A7, $87, $00, $00, $F8, $3, $AB, $FC)); |
(**************************************************************************** |
* |
* IDirectPlayLobby Structures |
* |
* Various structures used to invoke DirectPlayLobby. |
* |
****************************************************************************) |
type |
(* |
* TDPLAppInfo |
* Used to hold information about a registered DirectPlay |
* application |
*) |
PDPLAppInfo = ^TDPLAppInfo; |
TDPLAppInfo = packed record |
dwSize: DWORD; // Size of this structure |
guidApplication: TGUID; // GUID of the Application |
case Integer of // Pointer to the Application Name |
0: (lpszAppName: PCharAW); |
1: (lpszAppNameW: PWideChar); |
3: (lpszAppNameA: PChar); |
end; |
(* |
* TDPCompoundAddressElement |
* |
* An array of these is passed to CreateCompoundAddresses() |
*) |
PDPCompoundAddressElement = ^TDPCompoundAddressElement; |
TDPCompoundAddressElement = packed record |
guidDataType: TGUID; |
dwDataSize: DWORD; |
lpData: Pointer; |
end; |
(* |
* TDPApplicationDesc |
* Used to register a DirectPlay application |
*) |
PDPApplicationDesc = ^TDPApplicationDesc; |
TDPApplicationDesc = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0: (lpszApplicationName: PCharAW; |
guidApplication: TGUID; |
lpszFilename: PCharAW; |
lpszCommandLine: PCharAW; |
lpszPath: PCharAW; |
lpszCurrentDirectory: PCharAW; |
lpszDescriptionA: PAnsiChar; |
lpszDescriptionW: PWideChar); |
1: (lpszApplicationNameA: PAnsiChar; |
filler1: TGUID; |
lpszFilenameA: PAnsiChar; |
lpszCommandLineA: PAnsiChar; |
lpszPathA: PAnsiChar; |
lpszCurrentDirectoryA: PAnsiChar); |
2: (lpszApplicationNameW: PWideChar; |
filler2: TGUID; |
lpszFilenameW: PWideChar; |
lpszCommandLineW: PWideChar; |
lpszPathW: PWideChar; |
lpszCurrentDirectoryW: PWideChar); |
end; |
(* |
* TDPApplicationDesc2 |
* Used to register a DirectPlay application |
*) |
PDPApplicationDesc2 = ^TDPApplicationDesc2; |
TDPApplicationDesc2 = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0: (lpszApplicationName: PCharAW; |
guidApplication: TGUID; |
lpszFilename: PCharAW; |
lpszCommandLine: PCharAW; |
lpszPath: PCharAW; |
lpszCurrentDirectory: PCharAW; |
lpszDescriptionA: PAnsiChar; |
lpszDescriptionW: PWideChar; |
lpszAppLauncherName: PCharAW); |
1: (lpszApplicationNameA: PAnsiChar; |
filler1: TGUID; |
lpszFilenameA: PAnsiChar; |
lpszCommandLineA: PAnsiChar; |
lpszPathA: PAnsiChar; |
lpszCurrentDirectoryA: PAnsiChar; |
filler3: PChar; |
filler4: PChar; |
lpszAppLauncherNameA: PAnsiChar); |
2: (lpszApplicationNameW: PWideChar; |
filler2: TGUID; |
lpszFilenameW: PWideChar; |
lpszCommandLineW: PWideChar; |
lpszPathW: PWideChar; |
lpszCurrentDirectoryW: PWideChar; |
filler5: PChar; |
filler6: PChar; |
lpszAppLauncherNameW: PWideChar); |
end; |
(**************************************************************************** |
* |
* Enumeration Method Callback Prototypes |
* |
****************************************************************************) |
(* |
* Callback for EnumAddress() |
*) |
TDPEnumAdressCallback = function(const guidDataType: TGUID; |
dwDataSize: DWORD; lpData: Pointer; lpContext: Pointer): BOOL; stdcall; |
(* |
* Callback for EnumAddressTypes() |
*) |
TDPLEnumAddressTypesCallback = function(const guidDataType: TGUID; |
lpContext: Pointer; dwFlags: DWORD): BOOL; stdcall; |
(* |
* Callback for EnumLocalApplications() |
*) |
TDPLEnumLocalApplicationsCallback = function(const lpAppInfo: TDPLAppInfo; |
lpContext: Pointer; dwFlags: DWORD): BOOL; stdcall; |
(**************************************************************************** |
* |
* IDirectPlayLobby (and IDirectPlayLobbyA) Interface |
* |
****************************************************************************) |
type |
IDirectPlayLobbyAW = interface(IUnknown) |
(*** IDirectPlayLobby methods ***) |
function Connect(dwFlags: DWORD; out lplpDP: IDirectPlay2; |
pUnk: IUnknown): HResult; stdcall; |
function CreateAddress(const guidSP, guidDataType: TGUID; var lpData; |
dwDataSize: DWORD; var lpAddress; var lpdwAddressSize: DWORD): HResult; stdcall; |
function EnumAddress(lpEnumAddressCallback: TDPEnumAdressCallback; |
var lpAddress; dwAddressSize: DWORD; lpContext: Pointer): HResult; stdcall; |
function EnumAddressTypes(lpEnumAddressTypeCallback: |
TDPLEnumAddressTypesCallback; const guidSP: TGUID; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function EnumLocalApplications(lpEnumLocalAppCallback: TDPLEnumLocalApplicationsCallback; |
lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function GetConnectionSettings(dwAppID: DWORD; lpData: PDPLConnection; |
var lpdwDataSize: DWORD): HResult; stdcall; |
function ReceiveLobbyMessage(dwFlags: DWORD; dwAppID: DWORD; |
var lpdwMessageFlags: DWORD; lpData: Pointer; var lpdwDataSize: DWORD): HResult; stdcall; |
function RunApplication(dwFlags: DWORD; var lpdwAppId: DWORD; |
const lpConn: TDPLConnection; hReceiveEvent: THandle): HResult; stdcall; |
function SendLobbyMessage(dwFlags: DWORD; dwAppID: DWORD; const lpData; |
dwDataSize: DWORD): HResult; stdcall; |
function SetConnectionSettings(dwFlags: DWORD; dwAppID: DWORD; |
var lpConn: TDPLConnection): HResult; stdcall; |
function SetLobbyMessageEvent(dwFlags: DWORD; dwAppID: DWORD; |
hReceiveEvent: THandle): HResult; stdcall; |
end; |
IDirectPlayLobbyW = interface(IDirectPlayLobbyAW) |
['{AF465C71-9588-11CF-A020-00AA006157AC}'] |
end; |
IDirectPlayLobbyA = interface(IDirectPlayLobbyAW) |
['{26C66A70-B367-11cf-A024-00AA006157AC}'] |
end; |
{$IFDEF UNICODE} |
IDirectPlayLobby = IDirectPlayLobbyW; |
{$ELSE} |
IDirectPlayLobby = IDirectPlayLobbyA; |
{$ENDIF} |
(**************************************************************************** |
* |
* IDirectPlayLobby2 (and IDirectPlayLobby2A) Interface |
* |
****************************************************************************) |
IDirectPlayLobby2AW = interface(IDirectPlayLobbyAW) |
(*** IDirectPlayLobby2 methods ***) |
function CreateCompoundAddress(const lpElements: TDPCompoundAddressElement; |
dwElementCount: DWORD; lpAddress: Pointer; var lpdwAddressSize: DWORD): HResult; stdcall; |
end; |
IDirectPlayLobby2W = interface(IDirectPlayLobby2AW) |
['{0194C220-A303-11D0-9C4F-00A0C905425E}'] |
end; |
IDirectPlayLobby2A = interface(IDirectPlayLobby2AW) |
['{1BB4AF80-A303-11d0-9C4F-00A0C905425E}'] |
end; |
{$IFDEF UNICODE} |
IDirectPlayLobby2 = IDirectPlayLobby2W; |
{$ELSE} |
IDirectPlayLobby2 = IDirectPlayLobby2A; |
{$ENDIF} |
(**************************************************************************** |
* |
* IDirectPlayLobby3 (and IDirectPlayLobby3A) Interface |
* |
****************************************************************************) |
IDirectPlayLobby3AW = interface(IDirectPlayLobby2AW) |
(*** IDirectPlayLobby3 methods ***) |
function ConnectEx(dwFlags: DWORD; const riid: TGUID; |
out lplpDP; pUnk: IUnknown): HResult; stdcall; |
function RegisterApplication(dwFlags: DWORD; |
var lpAppDesc: TDPApplicationDesc): HResult; stdcall; |
function UnregisterApplication(dwFlags: DWORD; |
const guidApplication: TGUID): HResult; stdcall; |
function WaitForConnectionSettings(dwFlags: DWORD): HResult; stdcall; |
end; |
IDirectPlayLobby3W = interface(IDirectPlayLobby3AW) |
['{2DB72490-652C-11d1-A7A8-0000F803ABFC}'] |
end; |
IDirectPlayLobby3A = interface(IDirectPlayLobby3AW) |
['{2DB72491-652C-11d1-A7A8-0000F803ABFC}'] |
end; |
{$IFDEF UNICODE} |
IDirectPlayLobby3 = IDirectPlayLobby3W; |
{$ELSE} |
IDirectPlayLobby3 = IDirectPlayLobby3A; |
{$ENDIF} |
IID_IDirectPlayLobbyW = IDirectPlayLobbyW; |
IID_IDirectPlayLobbyA = IDirectPlayLobbyA; |
IID_IDirectPlayLobby = IDirectPlayLobby; |
IID_IDirectPlayLobby2W = IDirectPlayLobby2W; |
IID_IDirectPlayLobby2A = IDirectPlayLobby2A; |
IID_IDirectPlayLobby2 = IDirectPlayLobby2; |
IID_IDirectPlayLobby3W = IDirectPlayLobby3W; |
IID_IDirectPlayLobby3A = IDirectPlayLobby3A; |
IID_IDirectPlayLobby3 = IDirectPlayLobby3; |
(**************************************************************************** |
* |
* DirectPlayLobby API Prototypes |
* |
****************************************************************************) |
var |
DirectPlayLobbyCreateW: function(lpguidSP: PGUID; out lplpDPL: |
IDirectPlayLobbyW; lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HResult; stdcall; |
DirectPlayLobbyCreateA: function(lpguidSP: PGUID; out lplpDPL: |
IDirectPlayLobbyA; lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HResult; stdcall; |
DirectPlayLobbyCreate: function(lpguidSP: PGUID; out lplpDPL: |
IDirectPlayLobby; lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HResult; stdcall; |
const |
(**************************************************************************** |
* |
* DirectPlayLobby Flags |
* |
****************************************************************************) |
(* |
* This flag is used by IDirectPlayLobby.WaitForConnectionSettings to |
* cancel a current wait that is in progress. |
*) |
DPLWAIT_CANCEL = $00000001; |
(* |
* This is a message flag used by ReceiveLobbyMessage. It can be |
* returned in the dwMessageFlags parameter to indicate a message from |
* the system. |
*) |
DPLMSG_SYSTEM = $00000001; |
(* |
* This is a message flag used by ReceiveLobbyMessage and SendLobbyMessage. |
* It is used to indicate that the message is a standard lobby message. |
* TDPLMsg_SetProperty, TDPLMsg_SetPropertyResponse, TDPLMsg_GetProperty, |
* TDPLMsg_GetPropertyResponse |
*) |
DPLMSG_STANDARD = $00000002; |
type |
(**************************************************************************** |
* |
* DirectPlayLobby messages and message data structures |
* |
* All system messages have a dwMessageFlags value of DPLMSG_SYSTEM returned |
* from a call to ReceiveLobbyMessage. |
* |
* All standard messages have a dwMessageFlags value of DPLMSG_STANDARD returned |
* from a call to ReceiveLobbyMessage. |
* |
****************************************************************************) |
(* |
* TDPLMsg_Generic |
* Generic message structure used to identify the message type. |
*) |
PDPLMsg_Generic = ^TDPLMsg_Generic; |
TDPLMsg_Generic = packed record |
dwType: DWORD; // Message type |
end; |
(* |
* TDPLMsg_SystemMessage |
* Generic message format for all system messages -- |
* DPLSYS_CONNECTIONSETTINGSREAD, DPLSYS_DPLYCONNECTSUCCEEDED, |
* DPLSYS_DPLAYCONNECTFAILED, DPLSYS_APPTERMINATED, DPLSYS_NEWCONNECTIONSETTINGS |
*) |
PDPLMsg_SystemMessage = ^TDPLMsg_SystemMessage; |
TDPLMsg_SystemMessage = packed record |
dwType: DWORD; // Message type |
guidInstance: TGUID; // Instance GUID of the dplay session the message corresponds to |
end; |
(* |
* TDPLMsg_SetProperty |
* Standard message sent by an application to a lobby to set a |
* property |
*) |
PDPLMsg_SetProperty = ^TDPLMsg_SetProperty; |
TDPLMsg_SetProperty = packed record |
dwType: DWORD; // Message type |
dwRequestID: DWORD; // Request ID (DPL_NOCONFIRMATION if no confirmation desired) |
guidPlayer: TGUID; // Player GUID |
guidPropertyTag: TGUID; // Property GUID |
dwDataSize: DWORD; // Size of data |
dwPropertyData: array[0..0] of DWORD; // Buffer containing data |
end; |
const |
DPL_NOCONFIRMATION = 0; |
type |
(* |
* TDPLMsg_SetPropertyResponse |
* Standard message returned by a lobby to confirm a |
* TDPLMsg_SetProperty message. |
*) |
PDPLMsg_SetPropertyResponse = ^TDPLMsg_SetPropertyResponse; |
TDPLMsg_SetPropertyResponse = packed record |
dwType: DWORD; // Message type |
dwRequestID: DWORD; // Request ID |
guidPlayer: TGUID; // Player GUID |
guidPropertyTag: TGUID; // Property GUID |
hr: HResult; // Return Code |
end; |
(* |
* TDPLMsg_GetProperty |
* Standard message sent by an application to a lobby to request |
* the current value of a property |
*) |
PDPLMsg_GetProperty = ^TDPLMsg_GetProperty; |
TDPLMsg_GetProperty = packed record |
dwType: DWORD; // Message type |
dwRequestID: DWORD; // Request ID |
guidPlayer: TGUID; // Player GUID |
guidPropertyTag: TGUID; // Property GUID |
end; |
LPDPLMSG_GETPROPERTY = ^TDPLMsg_GetProperty; |
(* |
* TDPLMsg_GetPropertyResponse |
* Standard message returned by a lobby in response to a |
* TDPLMsg_GetProperty message. |
*) |
PDPLMsg_GetPropertyResponse = ^TDPLMsg_GetPropertyResponse; |
TDPLMsg_GetPropertyResponse = packed record |
dwType: DWORD; // Message type |
dwRequestID: DWORD; // Request ID |
guidPlayer: TGUID; // Player GUID |
guidPropertyTag: TGUID; // Property GUID |
hr: HResult; // Return Code |
dwDataSize: DWORD; // Size of data |
dwPropertyData: array[0..0] of DWORD; // Buffer containing data |
end; |
(* |
* TDPLMsg_NewSessionHost |
* Standard message returned by a lobby in response to a |
* the session host migrating to a new client |
*) |
PDPLMsg_NewSessionHost = ^TDPLMsg_NewSessionHost; |
TDPLMsg_NewSessionHost = packed record |
dwType: DWORD; // Message type |
guidInstance: TGUID; // Property GUID |
end; |
const |
(****************************************** |
* |
* DirectPlay Lobby message dwType values |
* |
*****************************************) |
(* |
* The application has read the connection settings. |
* It is now O.K. for the lobby client to release |
* its IDirectPlayLobby interface. |
*) |
DPLSYS_CONNECTIONSETTINGSREAD = $00000001; |
(* |
* The application's call to DirectPlayConnect failed |
*) |
DPLSYS_DPLAYCONNECTFAILED = $00000002; |
(* |
* The application has created a DirectPlay session. |
*) |
DPLSYS_DPLAYCONNECTSUCCEEDED = $00000003; |
(* |
* The application has terminated. |
*) |
DPLSYS_APPTERMINATED = $00000004; |
(* |
* The message is a TDPLMsg_SetProperty message. |
*) |
DPLSYS_SETPROPERTY = $00000005; |
(* |
* The message is a TDPLMsg_SetPropertyResponse message. |
*) |
DPLSYS_SETPROPERTYRESPONSE = $00000006; |
(* |
* The message is a TDPLMsg_GetProperty message. |
*) |
DPLSYS_GETPROPERTY = $00000007; |
(* |
* The message is a TDPLMsg_GetPropertyResponse message. |
*) |
DPLSYS_GETPROPERTYRESPONSE = $00000008; |
(* |
* The message is a TDPLMsg_NewSessionHost message. |
*) |
DPLSYS_NEWSESSIONHOST = $00000009; |
(* |
* New connection settings are available. |
*) |
DPLSYS_NEWCONNECTIONSETTINGS = $0000000A; |
(**************************************************************************** |
* |
* DirectPlay defined property GUIDs and associated data structures |
* |
****************************************************************************) |
(* |
* DPLPROPERTY_MessagesSupported |
* |
* Request whether the lobby supports standard. Lobby with respond with either |
* TRUE or FALSE or may not respond at all. |
* |
* Property data is a single BOOL with TRUE or FALSE |
*) |
// {762CCDA1-D916-11d0-BA39-00C04FD7ED67} |
DPLPROPERTY_MessagesSupported: TGUID = |
(D1: $762CCDA1; D2: $D916; D3: $11D0; D4: ($BA, $39, $00, $C0, $4F, $D7, $ED, $67)); |
(* |
* DPLPROPERTY_LobbyGuid |
* |
* Request the GUID that identifies the lobby software that the application |
* is communicating with. |
* |
* Property data is a single GUID. |
*) |
// {F56920A0-D218-11d0-BA39-00C04FD7ED67} |
DPLPROPERTY_LobbyGuid: TGUID = |
(D1: $F56920A0; D2: $D218; D3: $11D0; D4: ($BA, $39, $00, $C0, $4F, $D7, $ED, $67)); |
(* |
* DPLPROPERTY_PlayerGuid |
* |
* Request the GUID that identifies the player on this machine for sending |
* property data back to the lobby. |
* |
* Property data is the DPLDATA_PLAYERDATA structure |
*) |
// {B4319322-D20D-11d0-BA39-00C04FD7ED67} |
DPLPROPERTY_PlayerGuid: TGUID = |
(D1: $B4319322; D2: $D20D; D3: $11D0; D4: ($BA, $39, $00, $C0, $4F, $D7, $ED, $67)); |
type |
(* |
* TDPLData_PlayerGUID |
* |
* Data structure to hold the GUID of the player and player creation flags |
* from the lobby. |
*) |
PDPLData_PlayerGUID = ^TDPLData_PlayerGUID; |
TDPLData_PlayerGUID = packed record |
guidPlayer: TGUID; |
dwPlayerFlags: DWORD; |
end; |
const |
(* |
* DPLPROPERTY_PlayerScore |
* |
* Used to send an array of long integers to the lobby indicating the |
* score of a player. |
* |
* Property data is the TDPLData_PlayerScore structure. |
*) |
// {48784000-D219-11d0-BA39-00C04FD7ED67} |
DPLPROPERTY_PlayerScore: TGUID = |
(D1: $48784000; D2: $D219; D3: $11D0; D4: ($BA, $39, $00, $C0, $4F, $D7, $ED, $67)); |
type |
(* |
* TDPLData_PlayerScore |
* |
* Data structure to hold an array of long integers representing a player score. |
* Application must allocate enough memory to hold all the scores. |
*) |
PDPLData_PlayerScore = ^TDPLData_PlayerScore; |
TDPLData_PlayerScore = packed record |
dwScoreCount: DWORD; |
Score: array[0..0] of Longint; |
end; |
(**************************************************************************** |
* |
* DirectPlay Address ID's |
* |
****************************************************************************) |
(* DirectPlay Address |
* |
* A DirectPlay address consists of multiple chunks of data, each tagged |
* with a GUID signifying the type of data in the chunk. The chunk also |
* has a length so that unknown chunk types can be skipped. |
* |
* The EnumAddress() function is used to parse these address data chunks. |
*) |
(* |
* TDPAddress |
* |
* Header for block of address data elements |
*) |
PDPAddress = ^TDPAddress; |
TDPAddress = packed record |
guidDataType: TGUID; |
dwDataSize: DWORD; |
end; |
const |
(* |
* DPAID_TotalSize |
* |
* Chunk is a DWORD containing size of entire TDPAddress structure |
*) |
// {1318F560-912C-11d0-9DAA-00A0C90A43CB} |
DPAID_TotalSize: TGUID = |
(D1: $1318F560; D2: $912C; D3: $11D0; D4: ($9D, $AA, $00, $A0, $C9, $A, $43, $CB)); |
(* |
* DPAID_ServiceProvider |
* |
* Chunk is a GUID describing the service provider that created the chunk. |
* All addresses must contain this chunk. |
*) |
// {07D916C0-E0AF-11cf-9C4E-00A0C905425E} |
DPAID_ServiceProvider: TGUID = |
(D1: $7D916C0; D2: $E0AF; D3: $11CF; D4: ($9C, $4E, $00, $A0, $C9, $5, $42, $5E)); |
(* |
* DPAID_LobbyProvider |
* |
* Chunk is a GUID describing the lobby provider that created the chunk. |
* All addresses must contain this chunk. |
*) |
// {59B95640-9667-11d0-A77D-0000F803ABFC} |
DPAID_LobbyProvider: TGUID = |
(D1: $59B95640; D2: $9667; D3: $11D0; D4: ($A7, $7D, $00, $00, $F8, $3, $AB, $FC)); |
(* |
* DPAID_Phone and DPAID_PhoneW |
* |
* Chunk is a string containing a phone number (i.e. "1-800-555-1212") |
* in ANSI or UNICODE format |
*) |
// {78EC89A0-E0AF-11cf-9C4E-00A0C905425E} |
DPAID_Phone: TGUID = |
(D1: $78EC89A0; D2: $E0AF; D3: $11CF; D4: ($9C, $4E, $00, $A0, $C9, $5, $42, $5E)); |
// {BA5A7A70-9DBF-11d0-9CC1-00A0C905425E} |
DPAID_PhoneW: TGUID = |
(D1: $BA5A7A70; D2: $9DBF; D3: $11D0; D4: ($9C, $C1, $00, $A0, $C9, $5, $42, $5E)); |
(* |
* DPAID_Modem and DPAID_ModemW |
* |
* Chunk is a string containing a modem name registered with TAPI |
* in ANSI or UNICODE format |
*) |
// {F6DCC200-A2FE-11d0-9C4F-00A0C905425E} |
DPAID_Modem: TGUID = |
(D1: $F6DCC200; D2: $A2FE; D3: $11D0; D4: ($9C, $4F, $00, $A0, $C9, $5, $42, $5E)); |
// {01FD92E0-A2FF-11d0-9C4F-00A0C905425E} |
DPAID_ModemW: TGUID = |
(D1: $1FD92E0; D2: $A2FF; D3: $11D0; D4: ($9C, $4F, $00, $A0, $C9, $5, $42, $5E)); |
(* |
* DPAID_Inet and DPAID_InetW |
* |
* Chunk is a string containing a TCP/IP host name or an IP address |
* (i.e. "dplay.microsoft.com" or "137.55.100.173") in ANSI or UNICODE format |
*) |
// {C4A54DA0-E0AF-11cf-9C4E-00A0C905425E} |
DPAID_INet: TGUID = |
(D1: $C4A54DA0; D2: $E0AF; D3: $11CF; D4: ($9C, $4E, $00, $A0, $C9, $5, $42, $5E)); |
// {E63232A0-9DBF-11d0-9CC1-00A0C905425E} |
DPAID_INetW: TGUID = |
(D1: $E63232A0; D2: $9DBF; D3: $11D0; D4: ($9C, $C1, $00, $A0, $C9, $5, $42, $5E)); |
(* |
* DPAID_InetPort |
* |
* Chunk is the port number used for creating the apps TCP and UDP sockets. |
* WORD value (i.e. 47624) |
*) |
// {E4524541-8EA5-11d1-8A96-006097B01411} |
DPAID_INetPort: TGUID = |
(D1: $E4524541; D2: $8EA5; D3: $11D1; D4: ($8A, $96, $00, $60, $97, $B0, $14, $11)); |
//@@BEGIN_MSINTERNAL |
(* |
* DPAID_MaxMessageSize |
* |
* Tells DPLAY what the maximum allowed message size is. Enables SPs to |
* combat Denial of Service attacks |
*) |
// this terrible hack is needed so the SP can work with the Elmer build. |
// it can be removed when the MSINTERNAL stuff is removed |
{$DEFINE MAXMSGSIZEGUIDDEFINED} |
// {F5D09980-F0C4-11d1-8326-006097B01411} |
DPAID_MaxMessageSize: TGUID = |
(D1: $F5D09980; D2: $F0C4; D3: $11D1; D4: ($83, $26, $00, $60, $97, $B0, $14, $11)); |
//@@END_MSINTERNAL |
(* |
* TDPComPortAddress |
* |
* Used to specify com port settings. The constants that define baud rate, |
* stop bits and parity are defined in WINBASE.H. The constants for flow |
* control are given below. |
*) |
DPCPA_NOFLOW = 0; // no flow control |
DPCPA_XONXOFFFLOW = 1; // software flow control |
DPCPA_RTSFLOW = 2; // hardware flow control with RTS |
DPCPA_DTRFLOW = 3; // hardware flow control with DTR |
DPCPA_RTSDTRFLOW = 4; // hardware flow control with RTS and DTR |
type |
PDPComPortAddress = ^TDPComPortAddress; |
TDPComPortAddress = packed record |
dwComPort: DWORD; // COM port to use (1-4) |
dwBaudRate: DWORD; // baud rate (100-256k) |
dwStopBits: DWORD; // no. stop bits (1-2) |
dwParity: DWORD; // parity (none, odd, even, mark) |
dwFlowControl: DWORD; // flow control (none, xon/xoff, rts, dtr) |
end; |
const |
(* |
* DPAID_ComPort |
* |
* Chunk contains a TDPComPortAddress structure defining the serial port. |
*) |
// {F2F0CE00-E0AF-11cf-9C4E-00A0C905425E} |
DPAID_ComPort: TGUID = |
(D1: $F2F0CE00; D2: $E0AF; D3: $11CF; D4: ($9C, $4E, $00, $A0, $C9, $5, $42, $5E)); |
(**************************************************************************** |
* |
* dplobby 1.0 obsolete definitions |
* Included for compatibility only. |
* |
****************************************************************************) |
DPLAD_SYSTEM = DPLMSG_SYSTEM; |
implementation |
(*==========================================================================; |
* |
* Copyright (C) 1994-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: dplay.h |
* Content: DirectPlay include file |
* |
***************************************************************************) |
function DPErrorString(Value: HResult): string; |
begin |
case Value of |
CLASS_E_NOAGGREGATION: Result := 'A non-NULL value was passed for the pUnkOuter parameter in DirectPlayCreate, DirectPlayLobbyCreate, or IDirectPlayLobby2::Connect.'; |
DPERR_ACCESSDENIED: Result := 'The session is full or an incorrect password was supplied.'; |
DPERR_ACTIVEPLAYERS: Result := 'The requested operation cannot be performed because there are existing active players.'; |
DPERR_ALREADYINITIALIZED: Result := 'This object is already initialized.'; |
DPERR_APPNOTSTARTED: Result := 'The application has not been started yet.'; |
DPERR_AUTHENTICATIONFAILED: Result := 'The password or credentials supplied could not be authenticated.'; |
DPERR_BUFFERTOOLARGE: Result := 'The data buffer is too large to store.'; |
DPERR_BUSY: Result := 'A message cannot be sent because the transmission medium is busy.'; |
DPERR_BUFFERTOOSMALL: Result := 'The supplied buffer is not large enough to contain the requested data.'; |
DPERR_CANTADDPLAYER: Result := 'The player cannot be added to the session.'; |
DPERR_CANTCREATEGROUP: Result := 'A new group cannot be created.'; |
DPERR_CANTCREATEPLAYER: Result := 'A new player cannot be created.'; |
DPERR_CANTCREATEPROCESS: Result := 'Cannot start the application.'; |
DPERR_CANTCREATESESSION: Result := 'A new session cannot be created.'; |
DPERR_CANTLOADCAPI: Result := 'No credentials were supplied and the CryptoAPI package (CAPI) to use for cryptography services cannot be loaded.'; |
DPERR_CANTLOADSECURITYPACKAGE: Result := 'The software security package cannot be loaded.'; |
DPERR_CANTLOADSSPI: Result := 'No credentials were supplied and the software security package (SSPI) that will prompt for credentials cannot be loaded.'; |
DPERR_CAPSNOTAVAILABLEYET: Result := 'The capabilities of the DirectPlay object have not been determined yet. This error will occur if the DirectPlay object is implemented on a connectivity solution that requires polling to determine available bandwidth and latency.'; |
DPERR_CONNECTING: Result := 'The method is in the process of connecting to the network. The application should keep calling the method until it returns DP_OK, indicating successful completion, or it returns a different error.'; |
DPERR_ENCRYPTIONFAILED: Result := 'The requested information could not be digitally encrypted. Encryption is used for message privacy. This error is only relevant in a secure session.'; |
DPERR_EXCEPTION: Result := 'An exception occurred when processing the request.'; |
DPERR_GENERIC: Result := 'An undefined error condition occurred.'; |
// DPERR_INVALIDCREDENTIALS: Result := 'The credentials supplied (as to IDirectPlay3::SecureOpen) were not valid.'; |
DPERR_INVALIDFLAGS: Result := 'The flags passed to this method are invalid.'; |
DPERR_INVALIDGROUP: Result := 'The group ID is not recognized as a valid group ID for this game session.'; |
DPERR_INVALIDINTERFACE: Result := 'The interface parameter is invalid.'; |
DPERR_INVALIDOBJECT: Result := 'The DirectPlay object pointer is invalid.'; |
DPERR_INVALIDPARAMS: Result := 'One or more of the parameters passed to the method are invalid.'; |
DPERR_INVALIDPASSWORD: Result := 'An invalid password was supplied when attempting to join a session that requires a password.'; |
DPERR_INVALIDPLAYER: Result := 'The player ID is not recognized as a valid player ID for this game session.'; |
DPERR_LOGONDENIED: Result := 'The session could not be opened because credentials are required and either no credentials were supplied or the credentials were invalid.'; |
DPERR_NOCAPS: Result := 'The communication link that DirectPlay is attempting to use is not capable of this function.'; |
DPERR_NOCONNECTION: Result := 'No communication link was established.'; |
DPERR_NOINTERFACE: Result := 'The interface is not supported.'; |
DPERR_NOMESSAGES: Result := 'There are no messages in the receive queue.'; |
DPERR_NONAMESERVERFOUND: Result := 'No name server (host) could be found or created. A host must exist to create a player.'; |
DPERR_NONEWPLAYERS: Result := 'The session is not accepting any new players.'; |
DPERR_NOPLAYERS: Result := 'There are no active players in the session.'; |
DPERR_NOSESSIONS: Result := 'There are no existing sessions for this game.'; |
DPERR_NOTLOBBIED: Result := 'Returned by the IDirectPlayLobby2::Connect method if the application was not started by using the IDirectPlayLobby2::RunApplication method or if there is no DPLCONNECTION structure currently initialized for this DirectPlayLobby object.'; |
DPERR_NOTLOGGEDIN: Result := 'An action cannot be performed because a player or client application is not logged in. Returned by the IDirectPlay3::Send method when the client application tries to send a secure message without being logged in.'; |
DPERR_OUTOFMEMORY: Result := 'There is insufficient memory to perform the requested operation.'; |
DPERR_PLAYERLOST: Result := 'A player has lost the connection to the session.'; |
DPERR_SENDTOOBIG: Result := 'The message being sent by the IDirectPlay3::Send method is too large.'; |
DPERR_SESSIONLOST: Result := 'The connection to the session has been lost.'; |
DPERR_SIGNFAILED: Result := 'The requested information could not be digitally signed. Digital signatures are used to establish the authenticity of messages.'; |
DPERR_TIMEOUT: Result := 'The operation could not be completed in the specified time.'; |
DPERR_UNAVAILABLE: Result := 'The requested function is not available at this time.'; |
DPERR_UNINITIALIZED: Result := 'The requested object has not been initialized.'; |
DPERR_UNKNOWNAPPLICATION: Result := 'An unknown application was specified.'; |
DPERR_UNSUPPORTED: Result := 'The function is not available in this implementation. Returned from IDirectPlay3::GetGroupConnectionSettings and IDirectPlay3::SetGroupConnectionSettings if they are called from a session that is not a lobby session.'; |
DPERR_USERCANCEL: Result := 'Can be returned in two ways. 1) The user canceled the connection process during a call to the IDirectPlay3::Open method. 2) The user clicked Cancel in one of the DirectPlay service provider dialog boxes during a call to IDirectPlay3::EnumSessions.'; |
else Result := 'Unrecognized Error'; |
end; |
end; |
function IsNTandDelphiRunning : boolean; |
var |
OSVersion : TOSVersionInfo; |
AppName : array[0..255] of char; |
begin |
OSVersion.dwOsVersionInfoSize := sizeof(OSVersion); |
GetVersionEx(OSVersion); |
// Not running in NT or program is not Delphi itself ? |
AppName[0] := #0; |
lstrcat(AppName, PChar(ParamStr(0))); // ParamStr(0) = Application.ExeName |
{$IFDEF UNICODE} |
CharUpperBuff(AppName, High(AppName) + 1); |
{$ELSE} |
CharUpperBuff(AppName, SizeOf(AppName)); |
{$ENDIF} |
result := ( (OSVersion.dwPlatformID = VER_PLATFORM_WIN32_NT) and |
(Pos('DELPHI32.EXE', AppName) = Length(AppName) - Length('DELPHI32.EXE') + 1) ); |
end; |
initialization |
begin |
if not IsNTandDelphiRunning then |
begin |
DPlayDLL := LoadLibrary('DPlayX.dll'); |
DirectPlayEnumerateA := GetProcAddress(DPlayDLL, 'DirectPlayEnumerateA'); |
DirectPlayEnumerateW := GetProcAddress(DPlayDLL, 'DirectPlayEnumerateW'); |
{$IFDEF UNICODE} |
DirectPlayEnumerate := DirectPlayEnumerateW; |
{$ELSE} |
DirectPlayEnumerate := DirectPlayEnumerateA; |
{$ENDIF} |
DirectPlayCreate := GetProcAddress(DPlayDLL, 'DirectPlayCreate'); |
// File: dplay.h |
DirectPlayLobbyCreateW := GetProcAddress(DPlayDLL, 'DirectPlayLobbyCreateW'); |
DirectPlayLobbyCreateA := GetProcAddress(DPlayDLL, 'DirectPlayLobbyCreateA'); |
{$IFDEF UNICODE} |
DirectPlayLobbyCreate := DirectPlayLobbyCreateW; |
{$ELSE} |
DirectPlayLobbyCreate := DirectPlayLobbyCreateA; |
{$ENDIF} |
end; |
end; |
finalization |
begin |
if DPlayDLL <> 0 then FreeLibrary(DPlayDLL); |
end; |
{$ENDIF} // UseDirectPlay |
end. |
/VCL_DELPHIX_D6/DirectX.pas |
---|
25,118 → 25,119 |
* URL : http://www.infosakyu.ne.jp/~kazuya-y/index.html |
* |
***************************************************************************) |
{ |
(c)2004 Jaro Benes Recompilation with Erik Unger's headers |
unit DirectX; |
Join in order: |
1) DirectDraw |
2) Direct3D |
3) Direct3DRM |
4) DirectInput |
5) DirectPlay |
6) DirectSetup |
7) DirectSound |
8) DirectMusic |
} |
Unit DirectX; |
interface |
Interface |
{$Z4} |
{$A+} |
{$WEAKPACKAGEUNIT} |
{Delphi version marks} |
{$IFNDEF DirectX3} |
{$IFNDEF DirectX5} |
{$IFNDEF DirectX6} |
{$IFNDEF DirectX7} |
{$DEFINE DirectX7} |
{$ENDIF} |
{$ENDIF} |
{$ENDIF} |
{$ENDIF} |
{$I DelphiXcfg.inc} |
{$IFDEF DirectX3} |
{$UNDEF DirectX5} |
{$UNDEF DirectX6} |
{$UNDEF DirectX7} |
{$DEFINE SupportDirectX3} |
{$ENDIF} |
{$MINENUMSIZE 4} |
{$ALIGN ON} |
{$IFDEF DirectX5} |
{$UNDEF DirectX3} |
{$UNDEF DirectX6} |
{$UNDEF DirectX7} |
{$DEFINE SupportDirectX3} |
{$DEFINE SupportDirectX5} |
{$ENDIF} |
uses |
Windows, MMSystem; |
{$IFDEF DirectX6} |
{$UNDEF DirectX3} |
{$UNDEF DirectX5} |
{$UNDEF DirectX7} |
{$DEFINE SupportDirectX3} |
{$DEFINE SupportDirectX5} |
{$DEFINE SupportDirectX6} |
type |
{$IFDEF UNICODE} |
PCharAW = PWideChar; |
{$ELSE} |
PCharAW = PAnsiChar; |
{$ENDIF} |
{$IFDEF DirectX7} |
{$UNDEF DirectX3} |
{$UNDEF DirectX5} |
{$UNDEF DirectX6} |
{$DEFINE SupportDirectX3} |
{$DEFINE SupportDirectX5} |
{$DEFINE SupportDirectX6} |
{$DEFINE SupportDirectX7} |
{$ENDIF} |
uses Windows, MMSystem, ActiveX; |
const |
{$IFDEF DirectX3} |
DirectXUnitVersion = 3; |
{$ENDIF}{$IFDEF DirectX5} |
DirectXUnitVersion = 5; |
{$ENDIF}{$IFDEF DirectX6} |
DirectXUnitVersion = 6; |
{$ENDIF}{$IFDEF DirectX7} |
DirectXUnitVersion = 7; |
{$ENDIF} |
//DirectDraw file |
(*==========================================================================; |
* |
* Copyright (C) Microsoft Corporation. All Rights Reserved. |
* Copyright (C) 1994-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: ddraw.h |
* Content: DirectDraw include file |
* Files: ddraw.h dvp.h |
* Content: DirectDraw and DirectDrawVideoPort include files |
* |
* DirectX 7.0 Delphi adaptation by Erik Unger |
* |
* Modified: 10-Sep-2000 |
* |
* Download: http://www.delphi-jedi.org/DelphiGraphics/ |
* E-Mail: DelphiDirectX@next-reality.com |
* |
* |
***************************************************************************) |
{ FOURCC codes for DX compressed-texture pixel formats } |
var |
DDrawDLL : HMODULE = 0; |
const |
FOURCC_DXT1 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('1') shl 24; |
FOURCC_DXT2 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('2') shl 24; |
FOURCC_DXT3 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('3') shl 24; |
FOURCC_DXT4 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('4') shl 24; |
FOURCC_DXT5 = Ord('D') + Ord('X') shl 8 + Ord('T') shl 16 + Ord('5') shl 24; |
function DDErrorString(Value: HResult) : string; |
{ GUIDS used by DirectDraw objects } |
function MAKEFOURCC(ch0, ch1, ch2, ch3: Char) : DWORD; |
(* |
* FOURCC codes for DX compressed-texture pixel formats |
*) |
const |
FOURCC_DXT1 = 'DXT1'; |
FOURCC_DXT2 = 'DXT2'; |
FOURCC_DXT3 = 'DXT3'; |
FOURCC_DXT4 = 'DXT4'; |
FOURCC_DXT5 = 'DXT5'; |
(* |
* GUIDS used by DirectDraw objects |
*) |
const |
CLSID_DirectDraw: TGUID = '{D7B70EE0-4340-11CF-B063-0020AFC2CD35}'; |
CLSID_DirectDraw7: TGUID = '{3C305196-50DB-11D3-9CFE-00C04FD930C5}'; |
CLSID_DirectDrawClipper: TGUID = '{593817A0-7DB3-11CF-A2DE-00AA00B93356}'; |
IID_IDirectDraw: TGUID = '{6C14DB80-A733-11CE-A521-0020AF0BE560}'; |
IID_IDirectDraw2: TGUID = '{B3A6F3E0-2B43-11CF-A2DE-00AA00B93356}'; |
IID_IDirectDraw4: TGUID = '{9C59509A-39BD-11D1-8C4A-00C04FD930C5}'; |
IID_IDirectDraw7: TGUID = '{15E65EC0-3B9C-11D2-B92F-00609797EA5B}'; |
IID_IDirectDrawSurface: TGUID = '{6C14DB81-A733-11CE-A521-0020AF0BE560}'; |
IID_IDirectDrawSurface2: TGUID = '{57805885-6EEC-11CF-9441-A82303C10E27}'; |
IID_IDirectDrawSurface3: TGUID = '{DA044E00-69B2-11D0-A1D5-00AA00B8DFBB}'; |
IID_IDirectDrawSurface4: TGUID = '{0B2B8630-AD35-11D0-8EA6-00609797EA5B}'; |
IID_IDirectDrawSurface7: TGUID = '{06675A80-3B9B-11D2-B92F-00609797EA5B}'; |
IID_IDirectDrawPalette: TGUID = '{6C14DB84-A733-11CE-A521-0020AF0BE560}'; |
IID_IDirectDrawClipper: TGUID = '{6C14DB85-A733-11CE-A521-0020AF0BE560}'; |
IID_IDirectDrawColorControl: TGUID = '{4B9F0EE0-0D7E-11D0-9B06-00A0C903A3B8}'; |
IID_IDirectDrawGammaControl: TGUID = '{69C11C3E-B46B-11D1-AD7A-00C04FC29B4E}'; |
CLSID_DirectDraw7: TGUID = '{3c305196-50db-11d3-9cfe-00c04fd930c5}'; |
CLSID_DirectDrawClipper: TGUID = '{593817A0-7DB3-11CF-A2DE-00AA00b93356}'; |
const |
DD_ROP_SPACE = 256 div 32; // space required to store ROP array |
DD_ROP_SPACE = (256 div 32); // space required to store ROP array |
MAX_DDDEVICEID_STRING = 512; |
{ DirectDraw Structures } |
(* |
* Flags for the IDirectDraw4::GetDeviceIdentifier method |
*) |
(* |
* This flag causes GetDeviceIdentifier to return information about the host (typically 2D) adapter in a system equipped |
* with a stacked secondary 3D adapter. Such an adapter appears to the application as if it were part of the |
* host adapter, but is typically physcially located on a separate card. The stacked secondary's information is |
* returned when GetDeviceIdentifier's dwFlags field is zero, since this most accurately reflects the qualities |
* of the DirectDraw object involved. |
*) |
DDGDI_GETHOSTIDENTIFIER = $00000001; |
(*============================================================================ |
* |
* DirectDraw Structures |
* |
* Various structures used to invoke DirectDraw. |
* |
*==========================================================================*) |
var |
NilGUID : TGUID{$IfNDef VER6UP} absolute 0{$EndIf}; |
type |
TRefGUID = packed record |
case integer of |
1: (guid : PGUID); |
2: (dwFlags : DWORD); |
end; |
IDirectDraw = interface; |
IDirectDraw2 = interface; |
IDirectDraw4 = interface; |
146,41 → 147,40 |
IDirectDrawSurface3 = interface; |
IDirectDrawSurface4 = interface; |
IDirectDrawSurface7 = interface; |
IDirectDrawPalette = interface; |
IDirectDrawClipper = interface; |
IDirectDrawColorControl = interface; |
IDirectDrawGammaControl = interface; |
{ TDDARGB structure } |
(* |
* Generic pixel format with 8-bit RGB and alpha components |
*) |
PDDARGB = ^TDDARGB; |
TDDARGB = record |
Blue: Byte; |
Green: Byte; |
Red: Byte; |
Alpha: Byte; |
TDDARGB = packed record |
blue: BYTE; |
green: BYTE; |
red: BYTE; |
alpha: BYTE; |
end; |
DDARGB = TDDARGB; |
LPDDARGB = PDDARGB; |
{ TDDRGBA structure } |
(* |
* This version of the structure remains for backwards source compatibility. |
* The DDARGB structure is the one that should be used for all DirectDraw APIs. |
*) |
PDDRGBA = ^TDDRGBA; |
TDDRGBA = record |
Red: Byte; |
Green: Byte; |
Blue: Byte; |
Alpha: Byte; |
TDDRGBA = packed record |
red : BYTE; |
green : BYTE; |
blue : BYTE; |
alpha : BYTE; |
end; |
DDRGBA = TDDRGBA; |
LPDDRGBA = PDDRGBA; |
{ TDDColorKey structure } |
(* |
* TDDColorKey |
*) |
PDDColorKey = ^TDDColorKey; |
TDDColorKey = record |
TDDColorKey = packed record |
dwColorSpaceLowValue: DWORD; // low boundary of color space that is to |
// be treated as Color Key, inclusive |
dwColorSpaceHighValue: DWORD; // high boundary of color space that is |
187,13 → 187,21 |
// to be treated as Color Key, inclusive |
end; |
DDCOLORKEY = TDDColorKey; |
LPDDCOLORKEY = PDDColorKey; |
// Delphi 5 can't handle interface in variant records |
// so we have to use pointers instead (which can be type-casted into interfaces): |
{ TDDBltFX structure } |
{$IFDEF VER5UP} |
PDirectDrawSurface = Pointer; |
{$ELSE} |
PDirectDrawSurface = IDirectDrawSurface; |
{$ENDIF} |
(* |
* TDDBltFX |
* Used to pass override information to the DIRECTDRAWSURFACE callback Blt. |
*) |
PDDBltFX = ^TDDBltFX; |
TDDBltFX = record |
TDDBltFX = packed record |
dwSize: DWORD; // size of structure |
dwDDFX: DWORD; // FX operations |
dwROP: DWORD; // Win32 raster operations |
204,89 → 212,88 |
dwZBufferHigh: DWORD; // High limit of Z buffer |
dwZBufferBaseDest: DWORD; // Destination base value |
dwZDestConstBitDepth: DWORD; // Bit depth used to specify Z constant for destination |
case Integer of |
case integer of |
0: ( |
dwZDestConst: DWORD; // Constant to use as Z buffer for dest |
dwZDestConst : DWORD // Constant to use as Z buffer for dest |
); |
1: ( |
lpDDSZBufferDest : PDirectDrawSurface; // Surface to use as Z buffer for dest |
dwZSrcConstBitDepth: DWORD; // Bit depth used to specify Z constant for source |
case integer of |
0: ( |
dwZSrcConst: DWORD; // Constant to use as Z buffer for src |
); |
1: ( |
lpDDSZBufferSrc : PDirectDrawSurface; // Surface to use as Z buffer for src |
dwAlphaEdgeBlendBitDepth: DWORD; // Bit depth used to specify constant for alpha edge blend |
dwAlphaEdgeBlend: DWORD; // Alpha for edge blending |
dwReserved: DWORD; |
dwAlphaDestConstBitDepth: DWORD; // Bit depth used to specify alpha constant for destination |
case integer of |
0: ( |
dwAlphaDestConst: DWORD; // Constant to use as Alpha Channel |
); |
1: ( |
lpDDSAlphaDest : PDirectDrawSurface; // Surface to use as Alpha Channel |
dwAlphaSrcConstBitDepth: DWORD; // Bit depth used to specify alpha constant for source |
case integer of |
0: ( |
dwAlphaSrcConst: DWORD; // Constant to use as Alpha Channel |
); |
1: ( |
lpDDSAlphaSrc : PDirectDrawSurface; // Surface to use as Alpha Channel |
case integer of |
0: ( |
dwFillColor: DWORD; // color in RGB or Palettized |
ddckDestColorkey: TDDColorKey; // DestColorkey override |
ddckSrcColorkey: TDDColorKey; // SrcColorkey override |
); |
1: ( |
lpDDSZBufferDest: Pointer{IDirectDrawSurface}; // Surface to use as Z buffer for dest |
_union1b: DWORD; |
lpDDSZBufferSrc: Pointer{IDirectDrawSurface}; // Surface to use as Z buffer for src |
_union1d: DWORD; |
_union1e: DWORD; |
_union1f: DWORD; |
_union1g: DWORD; |
lpDDSAlphaDest: Pointer{IDirectDrawSurface}; // Surface to use as Alpha Channel |
_union1i: DWORD; |
lpDDSAlphaSrc: Pointer{IDirectDrawSurface}; // Surface to use as Alpha Channel |
dwFillDepth: DWORD; // depth value for z-buffer |
); |
2: ( |
_union2a: DWORD; |
_union2b: DWORD; |
_union2c: DWORD; |
_union2d: DWORD; |
_union2e: DWORD; |
_union2f: DWORD; |
_union2g: DWORD; |
_union2h: DWORD; |
_union2i: DWORD; |
_union2j: DWORD; |
lpDDSPattern: Pointer{IDirectDrawSurface}; // Surface to use as pattern |
dwFillPixel : DWORD; // pixel value |
); |
3: ( |
lpDDSPattern : PDirectDrawSurface; // Surface to use as pattern |
ddckDestColorkey : TDDColorKey; // DestColorkey override |
ddckSrcColorkey : TDDColorKey; // SrcColorkey override |
) |
) |
) |
) |
) |
end; |
DDBLTFX = TDDBltFX; |
LPDDBLTFX = PDDBltFX; |
{ TDDSCaps structure } |
(* |
* TDDSCaps |
*) |
PDDSCaps = ^TDDSCaps; |
TDDSCaps = record |
TDDSCaps = packed record |
dwCaps: DWORD; // capabilities of surface wanted |
end; |
DDSCAPS = TDDSCaps; |
LPDDSCAPS = PDDSCaps; |
{ TDDOSCaps structure } |
(* |
* TDDOSCaps |
*) |
PDDOSCaps = ^TDDOSCaps; |
TDDOSCaps = record |
TDDOSCaps = packed record |
dwCaps: DWORD; // capabilities of surface wanted |
end; |
DDOSCAPS = TDDOSCaps; |
LPDDOSCAPS = PDDOSCaps; |
{ TDDSCapsEx structure } |
(* |
* This structure is used internally by DirectDraw. |
*) |
PDDSCapsEx = ^TDDSCapsEx; |
TDDSCapsEx = record |
TDDSCapsEx = packed record |
dwCaps2: DWORD; |
dwCaps3: DWORD; |
dwCaps4: DWORD; |
end; |
DDSCAPSEX = TDDSCapsEx; |
LPDDSCAPSEX = PDDSCapsEx; |
{ TDDSCaps2 structure } |
(* |
* TDDSCaps2 |
*) |
PDDSCaps2 = ^TDDSCaps2; |
TDDSCaps2 = record |
TDDSCaps2 = packed record |
dwCaps: DWORD; // capabilities of surface wanted |
dwCaps2: DWORD; |
dwCaps3: DWORD; |
293,53 → 300,15 |
dwCaps4: DWORD; |
end; |
DDSCAPS2 = TDDSCaps2; |
LPDDSCAPS2 = PDDSCaps2; |
{ TDDCaps structure } |
PDDCaps_DX1 = ^TDDCaps_DX1; |
TDDCaps_DX1 = record |
dwSize: DWORD; // size of the DDDRIVERCAPS structure |
dwCaps: DWORD; // driver specific capabilities |
dwCaps2: DWORD; // more driver specific capabilites |
dwCKeyCaps: DWORD; // color key capabilities of the surface |
dwFXCaps: DWORD; // driver specific stretching and effects capabilites |
dwFXAlphaCaps: DWORD; // alpha driver specific capabilities |
dwPalCaps: DWORD; // palette capabilities |
dwSVCaps: DWORD; // stereo vision capabilities |
dwAlphaBltConstBitDepths: DWORD; // DDBD_2,4,8 |
dwAlphaBltPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
dwAlphaBltSurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
dwAlphaOverlayConstBitDepths: DWORD; // DDBD_2,4,8 |
dwAlphaOverlayPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
dwAlphaOverlaySurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
dwZBufferBitDepths: DWORD; // DDBD_8,16,24,32 |
dwVidMemTotal: DWORD; // total amount of video memory |
dwVidMemFree: DWORD; // amount of free video memory |
dwMaxVisibleOverlays: DWORD; // maximum number of visible overlays |
dwCurrVisibleOverlays: DWORD; // current number of visible overlays |
dwNumFourCCCodes: DWORD; // number of four cc codes |
dwAlignBoundarySrc: DWORD; // source rectangle alignment |
dwAlignSizeSrc: DWORD; // source rectangle byte size |
dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
dwAlignSizeDest: DWORD; // dest rectangle byte size |
dwAlignStrideAlign: DWORD; // stride alignment |
dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
ddsCaps: TDDSCaps; // TDDSCaps structure has all the general capabilities |
dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMinLiveVideoStretch: DWORD; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMaxLiveVideoStretch: DWORD; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMinHwCodecStretch: DWORD; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMaxHwCodecStretch: DWORD; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwReserved1: DWORD; // reserved |
dwReserved2: DWORD; // reserved |
dwReserved3: DWORD; // reserved |
end; |
(* |
* TDDCaps |
*) |
(* |
* This structure is the TDDCaps structure as it was in version 2 and 3 of Direct X. |
* It is present for back compatability. |
*) |
PDDCaps_DX3 = ^TDDCaps_DX3; |
TDDCaps_DX3 = record |
TDDCaps_DX3 = packed record |
dwSize: DWORD; // size of the DDDRIVERCAPS structure |
dwCaps: DWORD; // driver specific capabilities |
dwCaps2: DWORD; // more driver specific capabilites |
365,7 → 334,7 |
dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
dwAlignSizeDest: DWORD; // dest rectangle byte size |
dwAlignStrideAlign: DWORD; // stride alignment |
dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
dwRops: Array [0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
ddsCaps: TDDSCaps; // TDDSCaps structure has all the general capabilities |
dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
379,22 → 348,26 |
dwSVBCaps: DWORD; // driver specific capabilities for System->Vmem blts |
dwSVBCKeyCaps: DWORD; // driver color key capabilities for System->Vmem blts |
dwSVBFXCaps: DWORD; // driver FX capabilities for System->Vmem blts |
dwSVBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
dwSVBRops: Array [0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
dwVSBCaps: DWORD; // driver specific capabilities for Vmem->System blts |
dwVSBCKeyCaps: DWORD; // driver color key capabilities for Vmem->System blts |
dwVSBFXCaps: DWORD; // driver FX capabilities for Vmem->System blts |
dwVSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
dwVSBRops: Array [0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
dwSSBCaps: DWORD; // driver specific capabilities for System->System blts |
dwSSBCKeyCaps: DWORD; // driver color key capabilities for System->System blts |
dwSSBFXCaps: DWORD; // driver FX capabilities for System->System blts |
dwSSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
dwReserved4: DWORD; // reserved |
dwReserved5: DWORD; // reserved |
dwReserved6: DWORD; // reserved |
dwSSBRops: Array [0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
dwReserved4 : DWORD; |
dwReserved5 : DWORD; |
dwReserved6 : DWORD; |
end; |
(* |
* This structure is the TDDCaps structure as it was in version 5 of Direct X. |
* It is present for back compatability. |
*) |
PDDCaps_DX5 = ^TDDCaps_DX5; |
TDDCaps_DX5 = record |
TDDCaps_DX5 = packed record |
dwSize: DWORD; // size of the DDDRIVERCAPS structure |
dwCaps: DWORD; // driver specific capabilities |
dwCaps2: DWORD; // more driver specific capabilites |
420,7 → 393,7 |
dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
dwAlignSizeDest: DWORD; // dest rectangle byte size |
dwAlignStrideAlign: DWORD; // stride alignment |
dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
dwRops: Array [0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
ddsCaps: TDDSCaps; // TDDSCaps structure has all the general capabilities |
dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
434,16 → 407,16 |
dwSVBCaps: DWORD; // driver specific capabilities for System->Vmem blts |
dwSVBCKeyCaps: DWORD; // driver color key capabilities for System->Vmem blts |
dwSVBFXCaps: DWORD; // driver FX capabilities for System->Vmem blts |
dwSVBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
dwSVBRops: Array [0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
dwVSBCaps: DWORD; // driver specific capabilities for Vmem->System blts |
dwVSBCKeyCaps: DWORD; // driver color key capabilities for Vmem->System blts |
dwVSBFXCaps: DWORD; // driver FX capabilities for Vmem->System blts |
dwVSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
dwVSBRops: Array [0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
dwSSBCaps: DWORD; // driver specific capabilities for System->System blts |
dwSSBCKeyCaps: DWORD; // driver color key capabilities for System->System blts |
dwSSBFXCaps: DWORD; // driver FX capabilities for System->System blts |
dwSSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
{ Members added for DX5 } |
dwSSBRops: Array [0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
// Members added for DX5: |
dwMaxVideoPorts: DWORD; // maximum number of usable video ports |
dwCurrVideoPorts: DWORD; // current number of video ports used |
dwSVBCaps2: DWORD; // more driver specific capabilities for System->Vmem blts |
451,79 → 424,16 |
dwNLVBCaps2: DWORD; // more driver specific capabilities non-local->local vidmem blts |
dwNLVBCKeyCaps: DWORD; // driver color key capabilities for non-local->local vidmem blts |
dwNLVBFXCaps: DWORD; // driver FX capabilities for non-local->local blts |
dwNLVBRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported for non-local->local blts |
dwNLVBRops: Array [0..DD_ROP_SPACE-1] of DWORD; // ROPS supported for non-local->local blts |
end; |
PDDCaps_DX6 = ^TDDCaps_DX6; |
TDDCaps_DX6 = record |
TDDCaps_DX6 = packed record |
dwSize: DWORD; // size of the DDDRIVERCAPS structure |
dwCaps: DWORD; // driver specific capabilities |
dwCaps2: DWORD; // more driver specific capabilites |
dwCKeyCaps: DWORD; // color key capabilities of the surface |
dwFXCaps: DWORD; // driver specific stretching and effects capabilites |
dwFXAlphaCaps: DWORD; // alpha caps |
dwPalCaps: DWORD; // palette capabilities |
dwSVCaps: DWORD; // stereo vision capabilities |
dwAlphaBltConstBitDepths: DWORD; // DDBD_2,4,8 |
dwAlphaBltPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
dwAlphaBltSurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
dwAlphaOverlayConstBitDepths: DWORD; // DDBD_2,4,8 |
dwAlphaOverlayPixelBitDepths: DWORD; // DDBD_1,2,4,8 |
dwAlphaOverlaySurfaceBitDepths: DWORD; // DDBD_1,2,4,8 |
dwZBufferBitDepths: DWORD; // DDBD_8,16,24,32 |
dwVidMemTotal: DWORD; // total amount of video memory |
dwVidMemFree: DWORD; // amount of free video memory |
dwMaxVisibleOverlays: DWORD; // maximum number of visible overlays |
dwCurrVisibleOverlays: DWORD; // current number of visible overlays |
dwNumFourCCCodes: DWORD; // number of four cc codes |
dwAlignBoundarySrc: DWORD; // source rectangle alignment |
dwAlignSizeSrc: DWORD; // source rectangle byte size |
dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
dwAlignSizeDest: DWORD; // dest rectangle byte size |
dwAlignStrideAlign: DWORD; // stride alignment |
dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
ddsOldCaps: TDDSCaps; // Was TDDSCaps ddsCaps. ddsCaps is of type DDSCAPS2 for DX6 |
dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMinLiveVideoStretch: DWORD; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMaxLiveVideoStretch: DWORD; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMinHwCodecStretch: DWORD; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMaxHwCodecStretch: DWORD; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwReserved1: DWORD; // reserved |
dwReserved2: DWORD; // reserved |
dwReserved3: DWORD; // reserved |
dwSVBCaps: DWORD; // driver specific capabilities for System->Vmem blts |
dwSVBCKeyCaps: DWORD; // driver color key capabilities for System->Vmem blts |
dwSVBFXCaps: DWORD; // driver FX capabilities for System->Vmem blts |
dwSVBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
dwVSBCaps: DWORD; // driver specific capabilities for Vmem->System blts |
dwVSBCKeyCaps: DWORD; // driver color key capabilities for Vmem->System blts |
dwVSBFXCaps: DWORD; // driver FX capabilities for Vmem->System blts |
dwVSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
dwSSBCaps: DWORD; // driver specific capabilities for System->System blts |
dwSSBCKeyCaps: DWORD; // driver color key capabilities for System->System blts |
dwSSBFXCaps: DWORD; // driver FX capabilities for System->System blts |
dwSSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
{ Members added for DX5 } |
dwMaxVideoPorts: DWORD; // maximum number of usable video ports |
dwCurrVideoPorts: DWORD; // current number of video ports used |
dwSVBCaps2: DWORD; // more driver specific capabilities for System->Vmem blts |
dwNLVBCaps: DWORD; // driver specific capabilities for non-local->local vidmem blts |
dwNLVBCaps2: DWORD; // more driver specific capabilities non-local->local vidmem blts |
dwNLVBCKeyCaps: DWORD; // driver color key capabilities for non-local->local vidmem blts |
dwNLVBFXCaps: DWORD; // driver FX capabilities for non-local->local blts |
dwNLVBRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported for non-local->local blts |
{ Members added for DX6 } |
ddsCaps: TDDSCaps2; // Surface Caps |
end; |
PDDCaps_DX7 = ^TDDCaps_DX7; |
TDDCaps_DX7 = record |
dwSize: DWORD; // size of the DDDRIVERCAPS structure |
dwCaps: DWORD; // driver specific capabilities |
dwCaps2: DWORD; // more driver specific capabilites |
dwCKeyCaps: DWORD; // color key capabilities of the surface |
dwFXCaps: DWORD; // driver specific stretching and effects capabilites |
dwFXAlphaCaps: DWORD; // alpha driver specific capabilities |
dwPalCaps: DWORD; // palette capabilities |
dwSVCaps: DWORD; // stereo vision capabilities |
544,8 → 454,8 |
dwAlignBoundaryDest: DWORD; // dest rectangle alignment |
dwAlignSizeDest: DWORD; // dest rectangle byte size |
dwAlignStrideAlign: DWORD; // stride alignment |
dwRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
ddsOldCaps: TDDSCaps; // Was TDDSCaps ddsCaps. ddsCaps is of type DDSCAPS2 for DX6 |
dwRops: Array [0..DD_ROP_SPACE-1] of DWORD; // ROPS supported |
ddsOldCaps: TDDSCaps; // Was dssCaps: TDDSCaps. ddsCaps is of type TDDScaps2 for DX6 |
dwMinOverlayStretch: DWORD; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMaxOverlayStretch: DWORD; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
dwMinLiveVideoStretch: DWORD; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
558,16 → 468,16 |
dwSVBCaps: DWORD; // driver specific capabilities for System->Vmem blts |
dwSVBCKeyCaps: DWORD; // driver color key capabilities for System->Vmem blts |
dwSVBFXCaps: DWORD; // driver FX capabilities for System->Vmem blts |
dwSVBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
dwSVBRops: Array [0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->Vmem blts |
dwVSBCaps: DWORD; // driver specific capabilities for Vmem->System blts |
dwVSBCKeyCaps: DWORD; // driver color key capabilities for Vmem->System blts |
dwVSBFXCaps: DWORD; // driver FX capabilities for Vmem->System blts |
dwVSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
dwVSBRops: Array [0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for Vmem->System blts |
dwSSBCaps: DWORD; // driver specific capabilities for System->System blts |
dwSSBCKeyCaps: DWORD; // driver color key capabilities for System->System blts |
dwSSBFXCaps: DWORD; // driver FX capabilities for System->System blts |
dwSSBRops: array[0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
{ Members added for DX5 } |
dwSSBRops: Array [0..DD_ROP_SPACE-1] of DWORD;// ROPS supported for System->System blts |
// Members added for DX5: |
dwMaxVideoPorts: DWORD; // maximum number of usable video ports |
dwCurrVideoPorts: DWORD; // current number of video ports used |
dwSVBCaps2: DWORD; // more driver specific capabilities for System->Vmem blts |
575,40 → 485,48 |
dwNLVBCaps2: DWORD; // more driver specific capabilities non-local->local vidmem blts |
dwNLVBCKeyCaps: DWORD; // driver color key capabilities for non-local->local vidmem blts |
dwNLVBFXCaps: DWORD; // driver FX capabilities for non-local->local blts |
dwNLVBRops: array[0..DD_ROP_SPACE-1] of DWORD; // ROPS supported for non-local->local blts |
{ Members added for DX6 } |
dwNLVBRops: Array [0..DD_ROP_SPACE-1] of DWORD; // ROPS supported for non-local->local blts |
// Members added for DX6 release |
ddsCaps: TDDSCaps2; // Surface Caps |
end; |
{$IFDEF DirectX1} |
TDDCaps = TDDCaps_DX1; |
PDDCaps = PDDCaps_DX1; |
{$ENDIF}{$IFDEF DirectX3} |
TDDCaps_DX7 = TDDCaps_DX6; |
PDDCaps = ^TDDCaps; |
{$IFDEF DIRECTX3} |
TDDCaps = TDDCaps_DX3; |
PDDCaps = PDDCaps_DX3; |
{$ENDIF}{$IFDEF DirectX5} |
{$ELSE} |
{$IFDEF DIRECTX5} |
TDDCaps = TDDCaps_DX5; |
PDDCaps = PDDCaps_DX5; |
{$ENDIF}{$IFDEF DirectX6} |
{$ELSE} |
{$IFDEF DIRECTX6} |
TDDCaps = TDDCaps_DX6; |
PDDCaps = PDDCaps_DX6; |
{$ENDIF}{$IFDEF DirectX7} |
{$ELSE} |
TDDCaps = TDDCaps_DX7; |
PDDCaps = PDDCaps_DX7; |
{$ENDIF} |
{$ENDIF} |
{$ENDIF} |
DDCAPS = TDDCaps; |
LPDDCAPS = PDDCaps; |
{ TDDPixelFormat structure } |
PDDPixelFormat = ^TDDPixelFormat; |
TDDPixelFormat = record |
(* |
* TDDPixelFormat |
*) |
PDDPixelFormat_DX5 = ^TDDPixelFormat_DX5; |
TDDPixelFormat_DX5 = packed record |
dwSize: DWORD; // size of structure |
dwFlags: DWORD; // pixel format flags |
dwFourCC: DWORD; // (FOURCC code) |
case Integer of |
0: ( |
dwZBufferBitDepth: DWORD; // how many bits for z buffers |
); |
1: ( |
dwAlphaBitDepth: DWORD; // how many bits for alpha channels |
); |
2: ( |
dwRGBBitCount: DWORD; // how many bits per pixel |
dwRBitMask: DWORD; // mask for red bit |
dwGBitMask: DWORD; // mask for green bits |
615,14 → 533,38 |
dwBBitMask: DWORD; // mask for blue bits |
dwRGBAlphaBitMask: DWORD; // mask for alpha channel |
); |
3: ( |
dwYUVBitCount: DWORD; // how many bits per pixel |
dwYBitMask: DWORD; // mask for Y bits |
dwUBitMask: DWORD; // mask for U bits |
dwVBitMask: DWORD; // mask for V bits |
case Integer of |
0: ( |
dwYUVAlphaBitMask: DWORD; // mask for alpha channel |
); |
1: ( |
_union1a: DWORD; |
_union1b: DWORD; |
_union1c: DWORD; |
_union1d: DWORD; |
dwRGBZBitMask: DWORD; // mask for Z channel |
dwRGBZBitMask: DWORD; |
); |
2: ( |
dwYUVZBitMask: DWORD; |
); |
); |
end; |
PDDPixelFormat_DX6 = ^TDDPixelFormat_DX6; |
TDDPixelFormat_DX6 = packed record |
dwSize: DWORD; // size of structure |
dwFlags: DWORD; // pixel format flags |
dwFourCC: DWORD; // (FOURCC code) |
case Integer of |
1: ( |
dwRGBBitCount : DWORD; // how many bits per pixel |
dwRBitMask : DWORD; // mask for red bit |
dwGBitMask : DWORD; // mask for green bits |
dwBBitMask : DWORD; // mask for blue bits |
dwRGBAlphaBitMask : DWORD; // mask for alpha channel |
); |
2: ( |
dwYUVBitCount: DWORD; // how many bits per pixel |
dwYBitMask: DWORD; // mask for Y bits |
dwUBitMask: DWORD; // mask for U bits |
630,43 → 572,52 |
dwYUVAlphaBitMask: DWORD; // mask for alpha channel |
); |
3: ( |
_union3a: DWORD; |
_union3b: DWORD; |
_union3c: DWORD; |
_union3d: DWORD; |
dwYUVZBitMask: DWORD; // mask for Z channel |
); |
4: ( |
dwZBufferBitDepth: DWORD; // how many bits for z buffers |
dwZBufferBitDepth : DWORD; // how many total bits/pixel in z buffer (including any stencil bits) |
dwStencilBitDepth: DWORD; // how many stencil bits (note: dwZBufferBitDepth-dwStencilBitDepth is total Z-only bits) |
dwZBitMask: DWORD; // mask for Z bits |
dwStencilBitMask: DWORD; // mask for stencil bits |
dwLuminanceAlphaBitMask : DWORD;// mask for alpha channel |
); |
5: ( |
4: ( |
dwAlphaBitDepth: DWORD; // how many bits for alpha channels |
); |
6: ( |
dwLuminanceBitCount: DWORD; // how many bits per pixel |
dwLuminanceBitMask: DWORD; // mask for luminance bits |
_union6c: DWORD; |
_union6d: DWORD; |
dwLuminanceAlphaBitMask: DWORD; |
); |
7: ( |
dwBumpBitCount: DWORD; // how many bits per "buxel", total |
dwBumpDuBitMask: DWORD; // mask for bump map U delta bits |
dwBumpDvBitMask: DWORD; // mask for bump map V delta bits |
dwBumpLuminanceBitMask: DWORD; // mask for luminance in bump map |
dwRGBZBitMask : DWORD; // mask for Z channel |
); |
5: ( |
dwLuminanceBitCount : DWORD; // how many bits per pixel |
dwBumpDuBitMask : DWORD; // mask for bump map U delta bits |
Fill1, Fill2 : DWORD; |
dwYUVZBitMask : DWORD; // mask for Z channel |
); |
6: ( dwBumpBitCount : DWORD; // how many bits per "buxel", total |
); |
end; |
DDPIXELFORMAT = TDDPixelFormat; |
LPDDPIXELFORMAT = PDDPixelFormat; |
TDDPixelFormat_DX3 = TDDPixelFormat_DX5; |
TDDPixelFormat_DX7 = TDDPixelFormat_DX6; |
{ DDOVERLAYFX structure } |
PDDPixelFormat = ^TDDPixelFormat; |
{$IFDEF DIRECTX3} |
TDDPixelFormat = TDDPixelFormat_DX3; |
{$ELSE} |
{$IFDEF DIRECTX5} |
TDDPixelFormat = TDDPixelFormat_DX5; |
{$ELSE} |
{$IFDEF DIRECTX6} |
TDDPixelFormat = TDDPixelFormat_DX6; |
{$ELSE} |
TDDPixelFormat = TDDPixelFormat_DX7; |
{$ENDIF} |
{$ENDIF} |
{$ENDIF} |
PDDOverlayFx = ^TDDOverlayFx; |
TDDOverlayFx = record |
(* |
* TDDOverlayFX |
*) |
PDDOverlayFX = ^TDDOverlayFX; |
TDDOverlayFX = packed record |
dwSize: DWORD; // size of structure |
dwAlphaEdgeBlendBitDepth: DWORD; // Bit depth used to specify constant for alpha edge blend |
dwAlphaEdgeBlend: DWORD; // Constant to use as alpha for edge blend |
683,157 → 634,40 |
dwFlags: DWORD; // flags |
); |
1: ( |
lpDDSAlphaDest: Pointer{IDirectDrawSurface}; // Surface to use as alpha channel for dest |
_union1b: DWORD; |
lpDDSAlphaSrc: Pointer{IDirectDrawSurface}; // Surface to use as alpha channel for src |
lpDDSAlphaDest: PDirectDrawSurface; // Surface to use as alpha channel for dest |
filler: DWORD; |
lpDDSAlphaSrc: PDirectDrawSurface; // Surface to use as alpha channel for src |
); |
end; |
DDOVERLAYFX = TDDOverlayFx; |
LPDDOVERLAYFX = PDDOverlayFx; |
{ TDDBltBatch structure } |
(* |
* TDDBltBatch: BltBatch entry structure |
*) |
PDDBltBatch = ^TDDBltBatch; |
TDDBltBatch = record |
TDDBltBatch = packed record |
lprDest: PRect; |
lpDDSSrc: IDirectDrawSurface; |
lprSrc: PRect; |
dwFlags: DWORD; |
lpDDBltFx: PDDBltFX; |
lpDDBltFx: TDDBltFX; |
end; |
DDBLTBATCH = TDDBltBatch; |
LPDDBLTBATCH = PDDBltBatch; |
{ TDDSurfaceDesc structure } |
PDDSurfaceDesc = ^TDDSurfaceDesc; |
TDDSurfaceDesc = record |
dwSize: DWORD; // size of the TDDSurfaceDesc structure |
dwFlags: DWORD; // determines what fields are valid |
dwHeight: DWORD; // height of surface to be created |
dwWidth: DWORD; // width of input surface |
case Integer of |
0: ( |
lPitch: Longint; |
dwBackBufferCount: DWORD; // number of back buffers requested |
case Integer of |
0: ( |
dwMipMapCount: DWORD; // number of mip-map levels requested |
dwAlphaBitDepth: DWORD; // depth of alpha buffer requested |
dwReserved: DWORD; // reserved |
lpSurface: Pointer; // pointer to the associated surface memory |
ddckCKDestOverlay: TDDColorKey;// color key for destination overlay use |
ddckCKDestBlt: TDDColorKey; // color key for destination blt use |
ddckCKSrcOverlay: TDDColorKey; // color key for source overlay use |
ddckCKSrcBlt: TDDColorKey; // color key for source blt use |
ddpfPixelFormat: TDDPixelFormat;// pixel format description of the surface |
ddsCaps: TDDSCaps; // direct draw surface capabilities |
); |
1: ( |
dwZBufferBitDepth: DWORD; // depth of Z buffer requested |
); |
2: ( |
dwRefreshRate: DWORD; // refresh rate (used when display mode is described) |
); |
); |
1: ( |
dwLinearSize: DWORD |
); |
end; |
DDSURFACEDESC = TDDSurfaceDesc; |
LPDDSURFACEDESC = PDDSurfaceDesc; |
{ TDDSurfaceDesc2 structure } |
PDDSurfaceDesc2 = ^TDDSurfaceDesc2; |
TDDSurfaceDesc2 = record |
dwSize: DWORD; // size of the TDDSurfaceDesc2 structure |
dwFlags: DWORD; // determines what fields are valid |
dwHeight: DWORD; // height of surface to be created |
dwWidth: DWORD; // width of input surface |
case Integer of |
0: ( |
lPitch: Longint; |
dwBackBufferCount: DWORD; // number of back buffers requested |
case Integer of |
0: ( |
dwMipMapCount: DWORD; // number of mip-map levels requested |
dwAlphaBitDepth: DWORD; // depth of alpha buffer requested |
dwReserved: DWORD; // reserved |
lpSurface: Pointer; // pointer to the associated surface memory |
ddckCKDestOverlay: TDDColorKey;// color key for destination overlay use |
ddckCKDestBlt: TDDColorKey; // color key for destination blt use |
ddckCKSrcOverlay: TDDColorKey; // color key for source overlay use |
ddckCKSrcBlt: TDDColorKey; // color key for source blt use |
ddpfPixelFormat: TDDPixelFormat;// pixel format description of the surface |
ddsCaps: TDDSCaps2; // direct draw surface capabilities |
dwTextureStage: DWORD; // stage in multitexture cascade |
); |
1: ( |
dwRefreshRate: DWORD; // refresh rate (used when display mode is described) |
); |
); |
1: ( |
dwLinearSize: DWORD |
); |
end; |
DDSURFACEDESC2 = TDDSurfaceDesc2; |
LPDDSURFACEDESC2 = PDDSurfaceDesc2; |
{ TDDOptSurfaceDesc structure } |
PDDOptSurfaceDesc = ^TDDOptSurfaceDesc; |
TDDOptSurfaceDesc = record |
dwSize: DWORD; // size of the DDOPTSURFACEDESC structure |
dwFlags: DWORD; // determines what fields are valid |
ddSCaps: TDDSCaps2; // Common caps like: Memory type |
ddOSCaps: TDDOSCaps; // Common caps like: Memory type |
guid: TGUID; // Compression technique GUID |
dwCompressionRatio: DWORD; // Compression ratio |
end; |
DDOPTSURFACEDESC = TDDOptSurfaceDesc; |
LPDDOPTSURFACEDESC = PDDOptSurfaceDesc; |
{ TDDColorControl structure } |
PDDColorControl = ^TDDColorControl; |
TDDColorControl = record |
dwSize: DWORD; |
dwFlags: DWORD; |
lBrightness: Longint; |
lContrast: Longint; |
lHue: Longint; |
lSaturation: Longint; |
lSharpness: Longint; |
lGamma: Longint; |
lColorEnable: Longint; |
dwReserved1: DWORD; |
end; |
DDCOLORCONTROL = TDDColorControl; |
LPDDCOLORCONTROL = PDDCOLORCONTROL; |
{ TDDGammaRamp structure } |
(* |
* TDDGammaRamp |
*) |
PDDGammaRamp = ^TDDGammaRamp; |
TDDGammaRamp = record |
Red: array[0..255] of Word; |
Green: array[0..255] of Word; |
Blue: array[0..255] of Word; |
TDDGammaRamp = packed record |
red : array[0..255] of WORD; |
green : array[0..255] of WORD; |
blue : array[0..255] of WORD; |
end; |
DDGAMMARAMP = TDDGammaRamp; |
LPDDGAMMARAMP = PDDGammaRamp; |
(* |
* This is the structure within which DirectDraw returns data about the current graphics driver and chipset |
*) |
{ TDDDeviceIdentifier structure } |
PDDDeviceIdentifier = ^TDDDeviceIdentifier; |
TDDDeviceIdentifier = record |
TDDDeviceIdentifier = packed record |
// |
// These elements are for presentation to the user only. They should not be used to identify particular |
// drivers, since this is unreliable and many different strings may be associated with the same |
876,13 → 710,8 |
guidDeviceIdentifier: TGUID; |
end; |
DDDEVICEIDENTIFIER = TDDDeviceIdentifier; |
LPDDDEVICEIDENTIFIER = PDDDeviceIdentifier; |
{ TDDDeviceIdentifier2 structure } |
PDDDeviceIdentifier2 = ^TDDDeviceIdentifier2; |
TDDDeviceIdentifier2 = record |
TDDDeviceIdentifier2 = packed record |
// |
// These elements are for presentation to the user only. They should not be used to identify particular |
// drivers, since this is unreliable and many different strings may be associated with the same |
924,247 → 753,432 |
// |
guidDeviceIdentifier: TGUID; |
// |
// This element is used to determine the Windows Hardware Quality Lab (WHQL) |
// certification level for this driver/device pair. |
// |
(* |
* This element is used to determine the Windows Hardware Quality Lab (WHQL) |
* certification level for this driver/device pair. |
*) |
dwWHQLLevel: DWORD; |
end; |
DDDEVICEIDENTIFIER2 = TDDDeviceIdentifier2; |
LPDDDEVICEIDENTIFIER2 = PDDDeviceIdentifier2; |
{ Callbacks } |
(* |
* callbacks |
*) |
TClipperCallback = function(lpDDClipper: IDirectDrawClipper; hWnd: HWND; |
Code: DWORD; lpContext: Pointer): HResult; stdcall; |
LPCLIPPERCALLBACK = TClipperCallback; |
TSurfacesStreamingCallback = function(Arg: DWORD): HResult; stdcall; |
LPSURFACESTREAMINGCALLBACK =TSurfacesStreamingCallback; |
(* |
* TDDSurfaceDesc |
*) |
PDDSurfaceDesc_DX5 = ^TDDSurfaceDesc_DX5; |
TDDSurfaceDesc_DX5 = packed record |
dwSize: DWORD; // size of the TDDSurfaceDesc structure |
dwFlags: DWORD; // determines what fields are valid |
dwHeight: DWORD; // height of surface to be created |
dwWidth: DWORD; // width of input surface |
case Integer of |
0: ( |
dwLinearSize : DWORD; // unused at the moment |
); |
1: ( |
lPitch: LongInt; // distance to start of next line (return value only) |
dwBackBufferCount: DWORD; // number of back buffers requested |
case Integer of |
0: ( |
dwMipMapCount: DWORD; // number of mip-map levels requested |
dwAlphaBitDepth: DWORD; // depth of alpha buffer requested |
dwReserved: DWORD; // reserved |
lpSurface: Pointer; // pointer to the associated surface memory |
ddckCKDestOverlay: TDDColorKey; // color key for destination overlay use |
ddckCKDestBlt: TDDColorKey; // color key for destination blt use |
ddckCKSrcOverlay: TDDColorKey; // color key for source overlay use |
ddckCKSrcBlt: TDDColorKey; // color key for source blt use |
ddpfPixelFormat: TDDPixelFormat_DX5; // pixel format description of the surface |
ddsCaps: TDDSCaps; // direct draw surface capabilities |
); |
1: ( |
dwZBufferBitDepth: DWORD; // depth of Z buffer requested |
); |
2: ( |
dwRefreshRate: DWORD; // refresh rate (used when display mode is described) |
); |
); |
end; |
PDDSurfaceDesc_DX6 = ^TDDSurfaceDesc_DX6; |
TDDSurfaceDesc_DX6 = packed record |
dwSize: DWORD; // size of the TDDSurfaceDesc structure |
dwFlags: DWORD; // determines what fields are valid |
dwHeight: DWORD; // height of surface to be created |
dwWidth: DWORD; // width of input surface |
case Integer of |
0: ( |
dwLinearSize : DWORD; // unused at the moment |
); |
1: ( |
lPitch: LongInt; // distance to start of next line (return value only) |
dwBackBufferCount: DWORD; // number of back buffers requested |
case Integer of |
0: ( |
dwMipMapCount: DWORD; // number of mip-map levels requested |
dwAlphaBitDepth: DWORD; // depth of alpha buffer requested |
dwReserved: DWORD; // reserved |
lpSurface: Pointer; // pointer to the associated surface memory |
ddckCKDestOverlay: TDDColorKey; // color key for destination overlay use |
ddckCKDestBlt: TDDColorKey; // color key for destination blt use |
ddckCKSrcOverlay: TDDColorKey; // color key for source overlay use |
ddckCKSrcBlt: TDDColorKey; // color key for source blt use |
ddpfPixelFormat: TDDPixelFormat_DX6; // pixel format description of the surface |
ddsCaps: TDDSCaps; // direct draw surface capabilities |
); |
1: ( |
dwZBufferBitDepth: DWORD; // depth of Z buffer requested |
); |
2: ( |
dwRefreshRate: DWORD; // refresh rate (used when display mode is described) |
); |
); |
end; |
PDDSurfaceDesc = ^TDDSurfaceDesc; |
{$IFDEF DIRECTX5} |
TDDSurfaceDesc = TDDSurfaceDesc_DX5; |
{$ELSE} |
TDDSurfaceDesc = TDDSurfaceDesc_DX6; |
{$ENDIF} |
(* |
* TDDSurfaceDesc2 |
*) |
PDDSurfaceDesc2 = ^TDDSurfaceDesc2; |
TDDSurfaceDesc2 = packed record |
dwSize: DWORD; // size of the TDDSurfaceDesc structure |
dwFlags: DWORD; // determines what fields are valid |
dwHeight: DWORD; // height of surface to be created |
dwWidth: DWORD; // width of input surface |
case Integer of |
0: ( |
lPitch : LongInt; // distance to start of next line (return value only) |
); |
1: ( |
dwLinearSize : DWORD; // Formless late-allocated optimized surface size |
dwBackBufferCount: DWORD; // number of back buffers requested |
case Integer of |
0: ( |
dwMipMapCount: DWORD; // number of mip-map levels requested |
dwAlphaBitDepth: DWORD; // depth of alpha buffer requested |
dwReserved: DWORD; // reserved |
lpSurface: Pointer; // pointer to the associated surface memory |
ddckCKDestOverlay: TDDColorKey; // color key for destination overlay use |
ddckCKDestBlt: TDDColorKey; // color key for destination blt use |
ddckCKSrcOverlay: TDDColorKey; // color key for source overlay use |
ddckCKSrcBlt: TDDColorKey; // color key for source blt use |
ddpfPixelFormat: TDDPixelFormat; // pixel format description of the surface |
ddsCaps: TDDSCaps2; // direct draw surface capabilities |
dwTextureStage: DWORD; // stage in multitexture cascade |
); |
1: ( |
dwRefreshRate: DWORD; // refresh rate (used when display mode is described) |
); |
); |
end; |
(* |
* TDDOptSurfaceDesc |
*) |
PDDOptSurfaceDesc = ^TDDOptSurfaceDesc; |
TDDOptSurfaceDesc = packed record |
dwSize : DWORD; // size of the DDOPTSURFACEDESC structure |
dwFlags : DWORD; // determines what fields are valid |
ddSCaps : TDDSCaps2; // Common caps like: Memory type |
ddOSCaps : TDDOSCaps; // Common caps like: Memory type |
guid : TGUID; // Compression technique GUID |
dwCompressionRatio : DWORD; // Compression ratio |
end; |
(* |
* DDCOLORCONTROL |
*) |
PDDColorControl = ^TDDColorControl; |
TDDColorControl = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
lBrightness: LongInt; |
lContrast: LongInt; |
lHue: LongInt; |
lSaturation: LongInt; |
lSharpness: LongInt; |
lGamma: LongInt; |
lColorEnable: LongInt; |
dwReserved1: DWORD; |
end; |
(* |
* callbacks |
*) |
{$IFNDEF WINNT} |
TDDEnumModesCallback = function(const lpDDSurfaceDesc: TDDSurfaceDesc; |
lpContext: Pointer): HResult; stdcall; |
LPDDENUMMODESCALLBACK = TDDEnumModesCallback; |
TDDEnumModesCallback2 = function(const lpDDSurfaceDesc: TDDSurfaceDesc2; |
lpContext: Pointer): HResult; stdcall; |
LPDDENUMMODESCALLBACK2 = TDDEnumModesCallback2; |
TDDEnumSurfacesCallback = function(lpDDSurface: IDirectDrawSurface; |
const lpDDSurfaceDesc: TDDSurfaceDesc; lpContext: Pointer): HResult; stdcall; |
LPDDENUMSURFACESCALLBACK = TDDEnumSurfacesCallback; |
TDDEnumSurfacesCallback2 = function(lpDDSurface: IDirectDrawSurface4; |
const lpDDSurfaceDesc: TDDSurfaceDesc2; lpContext: Pointer): HResult; stdcall; |
LPDDENUMSURFACESCALLBACK2 = TDDEnumSurfacesCallback2; |
TDDEnumSurfacesCallback7 = function(lpDDSurface: IDirectDrawSurface7; |
const lpDDSurfaceDesc: TDDSurfaceDesc2; lpContext: Pointer): HResult; stdcall; |
LPDDENUMSURFACESCALLBACK7 = TDDEnumSurfacesCallback7; |
{$ENDIF} |
{ IDirectDraw Interface } |
(* |
* INTERACES FOLLOW: |
* IDirectDraw |
* IDirectDrawClipper |
* IDirectDrawPalette |
* IDirectDrawSurface |
*) |
(* |
* IDirectDraw |
*) |
IDirectDraw = interface(IUnknown) |
['{6C14DB80-A733-11CE-A521-0020AF0BE560}'] |
// IDirectDraw methods |
(*** IDirectDraw methods ***) |
function Compact: HResult; stdcall; |
function CreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
function CreateClipper (dwFlags: DWORD; |
out lplpDDClipper: IDirectDrawClipper; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry; |
out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult; stdcall; |
function CreateSurface(const lpDDSurfaceDesc: TDDSurfaceDesc; |
out lplpDDSurface: IDirectDrawSurface; pUnkOuter: IUnknown): HResult; stdcall; |
function CreatePalette (dwFlags: DWORD; lpColorTable: pointer; |
out lplpDDPalette: IDirectDrawPalette; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function CreateSurface (var lpDDSurfaceDesc: TDDSurfaceDesc; |
out lplpDDSurface: IDirectDrawSurface; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function DuplicateSurface(lpDDSurface: IDirectDrawSurface; |
out lplpDupDDSurface: IDirectDrawSurface): HResult; stdcall; |
function EnumDisplayModes(dwFlags: DWORD; |
const lpDDSurfaceDesc: TDDSurfaceDesc; lpContext: Pointer; |
lpDDSurfaceDesc: PDDSurfaceDesc; lpContext: Pointer; |
lpEnumModesCallback: TDDEnumModesCallback): HResult; stdcall; |
function EnumSurfaces(dwFlags: DWORD; const lpDDSD: TDDSurfaceDesc; |
lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback) : |
HResult; stdcall; |
function FlipToGDISurface: HResult; stdcall; |
function GetCaps(var lpDDDriverCaps: TDDCaps; var lpDDHELCaps: TDDCaps): HResult; stdcall; |
function GetDisplayMode(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall; |
function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface): HResult; stdcall; |
function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
function GetScanLine(var lpdwScanLine: DWORD): HResult; stdcall; |
function GetVerticalBlankStatus(var lpbIsInVB: BOOL): HResult; stdcall; |
function GetCaps (lpDDDriverCaps: PDDCaps; lpDDHELCaps: PDDCaps) : HResult; stdcall; |
function GetDisplayMode (out lpDDSurfaceDesc: TDDSurfaceDesc) : HResult; stdcall; |
function GetFourCCCodes (var lpNumCodes: DWORD; lpCodes: PDWORD) : HResult; stdcall; |
function GetGDISurface (out lplpGDIDDSSurface: IDirectDrawSurface) : |
HResult; stdcall; |
function GetMonitorFrequency (out lpdwFrequency: DWORD) : HResult; stdcall; |
function GetScanLine (out lpdwScanLine: DWORD) : HResult; stdcall; |
function GetVerticalBlankStatus (out lpbIsInVB: BOOL) : HResult; stdcall; |
function Initialize(lpGUID: PGUID): HResult; stdcall; |
function RestoreDisplayMode: HResult; stdcall; |
function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall; |
function SetDisplayMode(dwWidth, dwHeight, dwBpp: DWORD): HResult; stdcall; |
function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
(*** Warning! SetDisplayMode differs between DirectDraw 1 and DirectDraw 2 ***) |
function SetDisplayMode (dwWidth: DWORD; dwHeight: DWORD; |
dwBpp: DWORD) : HResult; stdcall; |
function WaitForVerticalBlank (dwFlags: DWORD; hEvent: THandle) : |
HResult; stdcall; |
end; |
{ IDirectDraw2 Interface } |
IDirectDraw2 = interface(IUnknown) |
['{B3A6F3E0-2B43-11CF-A2DE-00AA00B93356}'] |
// IDirectDraw methods |
(*** IDirectDraw methods ***) |
function Compact: HResult; stdcall; |
function CreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
function CreateClipper (dwFlags: DWORD; |
out lplpDDClipper: IDirectDrawClipper; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry; |
out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult; stdcall; |
function CreateSurface(const lpDDSurfaceDesc: TDDSurfaceDesc; |
out lplpDDSurface: IDirectDrawSurface; pUnkOuter: IUnknown): HResult; stdcall; |
function CreatePalette (dwFlags: DWORD; lpColorTable: pointer; |
out lplpDDPalette: IDirectDrawPalette; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function CreateSurface (var lpDDSurfaceDesc: TDDSurfaceDesc; |
out lplpDDSurface: IDirectDrawSurface; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function DuplicateSurface(lpDDSurface: IDirectDrawSurface; |
out lplpDupDDSurface: IDirectDrawSurface): HResult; stdcall; |
function EnumDisplayModes(dwFlags: DWORD; |
const lpDDSurfaceDesc: TDDSurfaceDesc; lpContext: Pointer; |
lpDDSurfaceDesc: PDDSurfaceDesc; lpContext: Pointer; |
lpEnumModesCallback: TDDEnumModesCallback): HResult; stdcall; |
function EnumSurfaces(dwFlags: DWORD; const lpDDSD: TDDSurfaceDesc; |
lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback): HResult; stdcall; |
function EnumSurfaces (dwFlags: DWORD; var lpDDSD: TDDSurfaceDesc; |
lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback) : |
HResult; stdcall; |
function FlipToGDISurface: HResult; stdcall; |
function GetCaps(var lpDDDriverCaps: TDDCaps; var lpDDHELCaps: TDDCaps): HResult; stdcall; |
function GetDisplayMode(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall; |
function GetCaps (lpDDDriverCaps: PDDCaps; lpDDHELCaps: PDDCaps) : HResult; stdcall; |
function GetDisplayMode (out lpDDSurfaceDesc: TDDSurfaceDesc) : HResult; stdcall; |
function GetFourCCCodes (var lpNumCodes: DWORD; lpCodes: PDWORD) : HResult; stdcall; |
function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface): HResult; stdcall; |
function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
function GetScanLine(var lpdwScanLine: DWORD): HResult; stdcall; |
function GetVerticalBlankStatus(var lpbIsInVB: BOOL): HResult; stdcall; |
function GetMonitorFrequency (out lpdwFrequency: DWORD) : HResult; stdcall; |
function GetScanLine (out lpdwScanLine: DWORD) : HResult; stdcall; |
function GetVerticalBlankStatus (out lpbIsInVB: BOOL) : HResult; stdcall; |
function Initialize(lpGUID: PGUID): HResult; stdcall; |
function RestoreDisplayMode: HResult; stdcall; |
function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall; |
function SetDisplayMode(dwWidth, dwHeight, dwBPP, dwRefreshRate: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
// IDirectDraw2 methods |
(*** Warning! SetDisplayMode differs between DirectDraw 1 and DirectDraw 2 ***) |
function SetDisplayMode (dwWidth: DWORD; dwHeight: DWORD; dwBPP: DWORD; |
dwRefreshRate: DWORD; dwFlags: DWORD) : HResult; stdcall; |
function WaitForVerticalBlank (dwFlags: DWORD; hEvent: THandle) : |
HResult; stdcall; |
(*** Added in the v2 interface ***) |
function GetAvailableVidMem(var lpDDSCaps: TDDSCaps; |
var lpdwTotal, lpdwFree: DWORD): HResult; stdcall; |
out lpdwTotal, lpdwFree: DWORD) : HResult; stdcall; |
end; |
{ IDirectDraw4 Interface } |
IDirectDraw4 = interface(IUnknown) |
['{9C59509A-39BD-11D1-8C4A-00C04FD930C5}'] |
// IDirectDraw methods |
['{9c59509a-39bd-11d1-8c4a-00c04fd930c5}'] |
(*** IDirectDraw methods ***) |
function Compact: HResult; stdcall; |
function CreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
function CreateClipper (dwFlags: DWORD; |
out lplpDDClipper: IDirectDrawClipper; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry; |
out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult; stdcall; |
function CreatePalette (dwFlags: DWORD; lpColorTable: pointer; |
out lplpDDPalette: IDirectDrawPalette; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function CreateSurface(const lpDDSurfaceDesc: TDDSurfaceDesc2; |
out lplpDDSurface: IDirectDrawSurface4; pUnkOuter: IUnknown): HResult; stdcall; |
out lplpDDSurface: IDirectDrawSurface4; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function DuplicateSurface(lpDDSurface: IDirectDrawSurface4; |
out lplpDupDDSurface: IDirectDrawSurface4): HResult; stdcall; |
function EnumDisplayModes(dwFlags: DWORD; |
const lpDDSurfaceDesc: TDDSurfaceDesc2; lpContext: Pointer; |
lpDDSurfaceDesc: PDDSurfaceDesc2; lpContext: Pointer; |
lpEnumModesCallback: TDDEnumModesCallback2): HResult; stdcall; |
function EnumSurfaces(dwFlags: DWORD; const lpDDSD: TDDSurfaceDesc2; |
lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback2): HResult; stdcall; |
lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback2) : |
HResult; stdcall; |
function FlipToGDISurface: HResult; stdcall; |
function GetCaps(var lpDDDriverCaps: TDDCaps; var lpDDHELCaps: TDDCaps): HResult; stdcall; |
function GetDisplayMode(var lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall; |
function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface2): HResult; stdcall; |
function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
function GetScanLine(var lpdwScanLine: DWORD): HResult; stdcall; |
function GetVerticalBlankStatus(var lpbIsInVB: BOOL): HResult; stdcall; |
function GetCaps (lpDDDriverCaps: PDDCaps; lpDDHELCaps: PDDCaps) : HResult; stdcall; |
function GetDisplayMode (out lpDDSurfaceDesc: TDDSurfaceDesc2) : HResult; stdcall; |
function GetFourCCCodes (var lpNumCodes: DWORD; lpCodes: PDWORD) : HResult; stdcall; |
function GetGDISurface (out lplpGDIDDSSurface: IDirectDrawSurface4) : |
HResult; stdcall; |
function GetMonitorFrequency (out lpdwFrequency: DWORD) : HResult; stdcall; |
function GetScanLine (out lpdwScanLine: DWORD) : HResult; stdcall; |
function GetVerticalBlankStatus (out lpbIsInVB: BOOL) : HResult; stdcall; |
function Initialize(lpGUID: PGUID): HResult; stdcall; |
function RestoreDisplayMode: HResult; stdcall; |
function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall; |
function SetDisplayMode(dwWidth, dwHeight, dwBPP, dwRefreshRate: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
// IDirectDraw2 methods |
function GetAvailableVidMem(var lpDDSCaps: TDDSCaps; |
var lpdwTotal, lpdwFree: DWORD): HResult; stdcall; |
// IDirectDraw4 methods |
function GetSurfaceFromDC(hdc: HDC; lpDDS: IDirectDrawSurface4): HResult; stdcall; |
(*** Warning! SetDisplayMode differs between DirectDraw 1 and DirectDraw 2 ***) |
function SetDisplayMode (dwWidth: DWORD; dwHeight: DWORD; dwBPP: DWORD; |
dwRefreshRate: DWORD; dwFlags: DWORD) : HResult; stdcall; |
function WaitForVerticalBlank (dwFlags: DWORD; hEvent: THandle) : |
HResult; stdcall; |
(*** Added in the v2 interface ***) |
function GetAvailableVidMem (const lpDDSCaps: TDDSCaps2; |
out lpdwTotal, lpdwFree: DWORD) : HResult; stdcall; |
(*** Added in the V4 Interface ***) |
function GetSurfaceFromDC (hdc : Windows.HDC; |
out lpDDS4: IDirectDrawSurface4) : HResult; stdcall; |
function RestoreAllSurfaces: HResult; stdcall; |
function TestCooperativeLevel: HResult; stdcall; |
function GetDeviceIdentifier(var lpdddi: TDDDeviceIdentifier; dwFlags: DWORD): HResult; stdcall; |
function GetDeviceIdentifier (out lpdddi: TDDDeviceIdentifier; |
dwFlags: DWORD) : HResult; stdcall; |
end; |
{ IDirectDraw7 Interface } |
IDirectDraw7 = interface(IUnknown) |
['{15E65EC0-3B9C-11D2-B92F-00609797EA5B}'] |
// IDirectDraw methods |
['{15e65ec0-3b9c-11d2-b92f-00609797ea5b}'] |
(*** IDirectDraw methods ***) |
function Compact: HResult; stdcall; |
function CreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
function CreateClipper (dwFlags: DWORD; |
out lplpDDClipper: IDirectDrawClipper; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry; |
out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult; stdcall; |
function CreatePalette (dwFlags: DWORD; lpColorTable: pointer; |
out lplpDDPalette: IDirectDrawPalette; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function CreateSurface(const lpDDSurfaceDesc: TDDSurfaceDesc2; |
out lplpDDSurface: IDirectDrawSurface7; pUnkOuter: IUnknown): HResult; stdcall; |
out lplpDDSurface: IDirectDrawSurface7; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function DuplicateSurface(lpDDSurface: IDirectDrawSurface7; |
out lplpDupDDSurface: IDirectDrawSurface7): HResult; stdcall; |
function EnumDisplayModes(dwFlags: DWORD; |
const lpDDSurfaceDesc: TDDSurfaceDesc2; lpContext: Pointer; |
lpDDSurfaceDesc: PDDSurfaceDesc2; lpContext: Pointer; |
lpEnumModesCallback: TDDEnumModesCallback2): HResult; stdcall; |
function EnumSurfaces(dwFlags: DWORD; const lpDDSD: TDDSurfaceDesc2; |
lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback7): HResult; stdcall; |
lpContext: Pointer; lpEnumCallback: TDDEnumSurfacesCallback7) : |
HResult; stdcall; |
function FlipToGDISurface: HResult; stdcall; |
function GetCaps(var lpDDDriverCaps: TDDCaps; var lpDDHELCaps: TDDCaps): HResult; stdcall; |
function GetDisplayMode(var lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall; |
function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface7): HResult; stdcall; |
function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
function GetScanLine(var lpdwScanLine: DWORD): HResult; stdcall; |
function GetVerticalBlankStatus(var lpbIsInVB: BOOL): HResult; stdcall; |
function GetCaps (lpDDDriverCaps: PDDCaps; lpDDHELCaps: PDDCaps) : HResult; stdcall; |
function GetDisplayMode (out lpDDSurfaceDesc: TDDSurfaceDesc2) : HResult; stdcall; |
function GetFourCCCodes (var lpNumCodes: DWORD; lpCodes: PDWORD) : HResult; stdcall; |
function GetGDISurface (out lplpGDIDDSSurface: IDirectDrawSurface7) : |
HResult; stdcall; |
function GetMonitorFrequency (out lpdwFrequency: DWORD) : HResult; stdcall; |
function GetScanLine (out lpdwScanLine: DWORD) : HResult; stdcall; |
function GetVerticalBlankStatus (out lpbIsInVB: BOOL) : HResult; stdcall; |
function Initialize(lpGUID: PGUID): HResult; stdcall; |
function RestoreDisplayMode: HResult; stdcall; |
function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall; |
function SetDisplayMode(dwWidth, dwHeight, dwBPP, dwRefreshRate: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
// IDirectDraw2 methods |
function GetAvailableVidMem(var lpDDSCaps: TDDSCaps; |
var lpdwTotal, lpdwFree: DWORD): HResult; stdcall; |
// IDirectDraw4 methods |
function GetSurfaceFromDC(hdc: HDC; lpDDS: IDirectDrawSurface4): HResult; stdcall; |
function SetDisplayMode (dwWidth: DWORD; dwHeight: DWORD; dwBPP: DWORD; |
dwRefreshRate: DWORD; dwFlags: DWORD) : HResult; stdcall; |
function WaitForVerticalBlank (dwFlags: DWORD; hEvent: THandle) : |
HResult; stdcall; |
(*** Added in the v2 interface ***) |
function GetAvailableVidMem (const lpDDSCaps: TDDSCaps2; |
out lpdwTotal, lpdwFree: DWORD) : HResult; stdcall; |
(*** Added in the V4 Interface ***) |
function GetSurfaceFromDC (hdc : Windows.HDC; |
out lpDDS: IDirectDrawSurface7) : HResult; stdcall; |
function RestoreAllSurfaces: HResult; stdcall; |
function TestCooperativeLevel: HResult; stdcall; |
function GetDeviceIdentifier(var lpdddi: TDDDeviceIdentifier; dwFlags: DWORD): HResult; stdcall; |
// IDirectDraw7 methods |
function StartModeTest(var lpModesToTest: TSize; dwNumEntries: DWORD; dwFlags: DWORD): HResult; stdcall; |
function EvaluateMode(dwFlags: DWORD; var pSecondsUntilTimeout: DWORD): HResult; stdcall; |
function GetDeviceIdentifier (out lpdddi: TDDDeviceIdentifier2; |
dwFlags: DWORD) : HResult; stdcall; |
function StartModeTest(const lpModesToTest; dwNumEntries, dwFlags: DWORD) : HResult; stdcall; |
function EvaluateMode(dwFlags: DWORD; out pSecondsUntilTimeout: DWORD) : HResult; stdcall; |
end; |
{ IDirectDrawPalette Interface } |
(* |
* IDirectDrawPalette |
*) |
IDirectDrawPalette = interface(IUnknown) |
['{6C14DB84-A733-11CE-A521-0020AF0BE560}'] |
// IDirectDrawPalette methods |
function GetCaps(varlpdwCaps: DWORD): HResult; stdcall; |
(*** IDirectDrawPalette methods ***) |
function GetCaps (out lpdwCaps: DWORD) : HResult; stdcall; |
function GetEntries(dwFlags: DWORD; dwBase: DWORD; dwNumEntries: DWORD; |
lpEntries: PPaletteEntry): HResult; stdcall; |
lpEntries: pointer) : HResult; stdcall; |
function Initialize(lpDD: IDirectDraw; dwFlags: DWORD; |
lpDDColorTable: PPaletteEntry): HResult; stdcall; |
lpDDColorTable: pointer) : HResult; stdcall; |
function SetEntries(dwFlags: DWORD; dwStartingEntry: DWORD; |
dwCount: DWORD; lpEntries: PPaletteEntry): HResult; stdcall; |
dwCount: DWORD; lpEntries: pointer) : HResult; stdcall; |
end; |
{ IDirectDrawClipper Interface } |
(* |
* IDirectDrawClipper |
*) |
IDirectDrawClipper = interface(IUnknown) |
['{6C14DB85-A733-11CE-A521-0020AF0BE560}'] |
// IDirectDrawClipper methods |
function GetClipList(const lpRect: TRect; lpClipList: PRgnData; |
(*** IDirectDrawClipper methods ***) |
function GetClipList (lpRect: PRect; lpClipList: PRgnData; |
var lpdwSize: DWORD): HResult; stdcall; |
function GetHWnd(var lphWnd: HWND): HResult; stdcall; |
function GetHWnd (out lphWnd: HWND) : HResult; stdcall; |
function Initialize(lpDD: IDirectDraw; dwFlags: DWORD): HResult; stdcall; |
function IsClipListChanged(var lpbChanged: BOOL): HResult; stdcall; |
function IsClipListChanged (out lpbChanged: BOOL) : HResult; stdcall; |
function SetClipList(lpClipList: PRgnData; dwFlags: DWORD): HResult; stdcall; |
function SetHWnd(dwFlags: DWORD; hWnd: HWND): HResult; stdcall; |
end; |
{ IDirectDrawSurface Interface } |
(* |
* IDirectDrawSurface and related interfaces |
*) |
IDirectDrawSurface = interface(IUnknown) |
['{6C14DB81-A733-11CE-A521-0020AF0BE560}'] |
// IDirectDrawSurface methods |
function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface): HResult; stdcall; |
(*** IDirectDrawSurface methods ***) |
function AddAttachedSurface (lpDDSAttachedSurface: IDirectDrawSurface) : |
HResult; stdcall; |
function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface; |
const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
function Blt (lpDestRect: PRect; |
lpDDSrcSurface: IDirectDrawSurface; lpSrcRect: PRect; |
dwFlags: DWORD; lpDDBltFx: PDDBltFX) : HResult; stdcall; |
function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface; |
const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
function BltFast (dwX: DWORD; dwY: DWORD; |
lpDDSrcSurface: IDirectDrawSurface; lpSrcRect: PRect; |
dwTrans: DWORD) : HResult; stdcall; |
function DeleteAttachedSurface(dwFlags: DWORD; |
lpDDSAttachedSurface: IDirectDrawSurface): HResult; stdcall; |
function EnumAttachedSurfaces(lpContext: Pointer; |
1174,50 → 1188,57 |
function Flip(lpDDSurfaceTargetOverride: IDirectDrawSurface; |
dwFlags: DWORD): HResult; stdcall; |
function GetAttachedSurface(var lpDDSCaps: TDDSCaps; |
out lplpDDAttachedSurface: IDirectDrawSurface): HResult; stdcall; |
(*out*)var lplpDDAttachedSurface: IDirectDrawSurface) : HResult; stdcall; |
function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
function GetCaps(var lpDDSCaps: TDDSCaps): HResult; stdcall; |
function GetCaps (out lpDDSCaps: TDDSCaps) : HResult; stdcall; |
function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
function GetDC(var lphDC: HDC): HResult; stdcall; |
function GetColorKey (dwFlags: DWORD; out lpDDColorKey: TDDColorKey) : |
HResult; stdcall; |
function GetDC (out lphDC: HDC) : HResult; stdcall; |
function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
function GetOverlayPosition (out lplX, lplY: LongInt) : HResult; stdcall; |
function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
function GetPixelFormat (out lpDDPixelFormat: TDDPixelFormat) : HResult; stdcall; |
function GetSurfaceDesc (out lpDDSurfaceDesc: TDDSurfaceDesc) : HResult; stdcall; |
function Initialize(lpDD: IDirectDraw; |
const lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
out lpDDSurfaceDesc: TDDSurfaceDesc) : HResult; stdcall; |
function IsLost: HResult; stdcall; |
function Lock(lpDestRect: PRect; var lpDDSurfaceDesc: TDDSurfaceDesc; |
dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
function ReleaseDC(hDC: HDC): HResult; stdcall; |
function Restore: HResult; stdcall; |
function Lock (lpDestRect: PRect; out lpDDSurfaceDesc: |
TDDSurfaceDesc; dwFlags: DWORD; hEvent: THandle) : HResult; stdcall; |
function ReleaseDC (hDC: Windows.HDC) : HResult; stdcall; |
function _Restore: HResult; stdcall; |
function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
function SetColorKey (dwFlags: DWORD; lpDDColorKey: PDDColorKey) : |
HResult; stdcall; |
function SetOverlayPosition (lX, lY: LongInt) : HResult; stdcall; |
function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
function UpdateOverlay(const lpSrcRect: TRect; |
lpDDDestSurface: IDirectDrawSurface; const lpDestRect: TRect; |
dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
function UpdateOverlay (lpSrcRect: PRect; |
lpDDDestSurface: IDirectDrawSurface; lpDestRect: PRect; |
dwFlags: DWORD; lpDDOverlayFx: PDDOverlayFX) : HResult; stdcall; |
function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
function UpdateOverlayZOrder(dwFlags: DWORD; |
lpDDSReference: IDirectDrawSurface): HResult; stdcall; |
end; |
{ IDirectDrawSurface2 Interface } |
(* |
* IDirectDrawSurface2 and related interfaces |
*) |
IDirectDrawSurface2 = interface(IUnknown) |
['{57805885-6EEC-11CF-9441-A82303C10E27}'] |
// IDirectDrawSurface methods |
function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface2): HResult; stdcall; |
['{57805885-6eec-11cf-9441-a82303c10e27}'] |
(*** IDirectDrawSurface methods ***) |
function AddAttachedSurface (lpDDSAttachedSurface: IDirectDrawSurface2) : |
HResult; stdcall; |
function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface2; |
const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
function Blt (lpDestRect: PRect; |
lpDDSrcSurface: IDirectDrawSurface2; lpSrcRect: PRect; |
dwFlags: DWORD; lpDDBltFx: PDDBltFX) : HResult; stdcall; |
function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface2; |
const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
function BltFast (dwX: DWORD; dwY: DWORD; |
lpDDSrcSurface: IDirectDrawSurface2; lpSrcRect: PRect; |
dwTrans: DWORD) : HResult; stdcall; |
function DeleteAttachedSurface(dwFlags: DWORD; |
lpDDSAttachedSurface: IDirectDrawSurface2): HResult; stdcall; |
function EnumAttachedSurfaces(lpContext: Pointer; |
1229,51 → 1250,56 |
function GetAttachedSurface(var lpDDSCaps: TDDSCaps; |
out lplpDDAttachedSurface: IDirectDrawSurface2): HResult; stdcall; |
function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
function GetCaps(var lpDDSCaps: TDDSCaps): HResult; stdcall; |
function GetCaps (out lpDDSCaps: TDDSCaps) : HResult; stdcall; |
function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
function GetDC(var lphDC: HDC): HResult; stdcall; |
function GetColorKey (dwFlags: DWORD; out lpDDColorKey: TDDColorKey) : |
HResult; stdcall; |
function GetDC (out lphDC: HDC) : HResult; stdcall; |
function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
function GetOverlayPosition (out lplX, lplY: LongInt) : HResult; stdcall; |
function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
function Initialize(lpDD: IDirectDraw; const lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
function GetPixelFormat (out lpDDPixelFormat: TDDPixelFormat) : HResult; stdcall; |
function GetSurfaceDesc (out lpDDSurfaceDesc: TDDSurfaceDesc) : HResult; stdcall; |
function Initialize (lpDD: IDirectDraw; |
out lpDDSurfaceDesc: TDDSurfaceDesc) : HResult; stdcall; |
function IsLost: HResult; stdcall; |
function Lock(lpDestRect: PRect; const lpDDSurfaceDesc: TDDSurfaceDesc; |
dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
function ReleaseDC(hDC: HDC): HResult; stdcall; |
function Restore: HResult; stdcall; |
function Lock (lpDestRect: PRect; |
out lpDDSurfaceDesc: TDDSurfaceDesc; dwFlags: DWORD; |
hEvent: THandle) : HResult; stdcall; |
function ReleaseDC (hDC: Windows.HDC) : HResult; stdcall; |
function _Restore: HResult; stdcall; |
function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
function SetColorKey (dwFlags: DWORD; lpDDColorKey: PDDColorKey) : |
HResult; stdcall; |
function SetOverlayPosition (lX, lY: LongInt) : HResult; stdcall; |
function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
function UpdateOverlay(const lpSrcRect: TRect; |
lpDDDestSurface: IDirectDrawSurface2; const lpDestRect: TRect; |
dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
function UpdateOverlay (lpSrcRect: PRect; |
lpDDDestSurface: IDirectDrawSurface2; lpDestRect: PRect; |
dwFlags: DWORD; lpDDOverlayFx: PDDOverlayFX) : HResult; stdcall; |
function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
function UpdateOverlayZOrder(dwFlags: DWORD; |
lpDDSReference: IDirectDrawSurface2): HResult; stdcall; |
// IDirectDrawSurface2 methods |
function GetDDInterface(out lplpDD: IUnknown): HResult; stdcall; |
(*** Added in the v2 interface ***) |
function GetDDInterface (var lplpDD: IDirectDraw) : HResult; stdcall; |
function PageLock(dwFlags: DWORD): HResult; stdcall; |
function PageUnlock(dwFlags: DWORD): HResult; stdcall; |
end; |
{ IDirectDrawSurface3 Interface } |
IDirectDrawSurface3 = interface(IUnknown) |
['{DA044E00-69B2-11D0-A1D5-00AA00B8DFBB}'] |
// IDirectDrawSurface methods |
function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface3): HResult; stdcall; |
(*** IDirectDrawSurface methods ***) |
function AddAttachedSurface (lpDDSAttachedSurface: IDirectDrawSurface3) : |
HResult; stdcall; |
function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface3; |
const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
function Blt (lpDestRect: PRect; |
lpDDSrcSurface: IDirectDrawSurface3; lpSrcRect: PRect; |
dwFlags: DWORD; lpDDBltFx: PDDBltFX) : HResult; stdcall; |
function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface3; |
const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
function BltFast (dwX: DWORD; dwY: DWORD; |
lpDDSrcSurface: IDirectDrawSurface3; lpSrcRect: PRect; |
dwTrans: DWORD) : HResult; stdcall; |
function DeleteAttachedSurface(dwFlags: DWORD; |
lpDDSAttachedSurface: IDirectDrawSurface3): HResult; stdcall; |
function EnumAttachedSurfaces(lpContext: Pointer; |
1285,53 → 1311,61 |
function GetAttachedSurface(var lpDDSCaps: TDDSCaps; |
out lplpDDAttachedSurface: IDirectDrawSurface3): HResult; stdcall; |
function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
function GetCaps(var lpDDSCaps: TDDSCaps): HResult; stdcall; |
function GetCaps (out lpDDSCaps: TDDSCaps) : HResult; stdcall; |
function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
function GetDC(var lphDC: HDC): HResult; stdcall; |
function GetColorKey (dwFlags: DWORD; out lpDDColorKey: TDDColorKey) : |
HResult; stdcall; |
function GetDC (out lphDC: HDC) : HResult; stdcall; |
function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
function GetOverlayPosition (out lplX, lplY: LongInt) : HResult; stdcall; |
function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
function Initialize(lpDD: IDirectDraw; const lpDDSurfaceDesc: TDDSurfaceDesc): HResult; stdcall; |
function GetPixelFormat (out lpDDPixelFormat: TDDPixelFormat) : HResult; stdcall; |
function GetSurfaceDesc (out lpDDSurfaceDesc: TDDSurfaceDesc) : HResult; stdcall; |
function Initialize (lpDD: IDirectDraw; |
out lpDDSurfaceDesc: TDDSurfaceDesc) : HResult; stdcall; |
function IsLost: HResult; stdcall; |
function Lock(lpDestRect: PRect; const lpDDSurfaceDesc: TDDSurfaceDesc; |
dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
function ReleaseDC(hDC: HDC): HResult; stdcall; |
function Restore: HResult; stdcall; |
function Lock (lpDestRect: PRect; |
out lpDDSurfaceDesc: TDDSurfaceDesc; dwFlags: DWORD; |
hEvent: THandle) : HResult; stdcall; |
function ReleaseDC (hDC: Windows.HDC) : HResult; stdcall; |
function _Restore: HResult; stdcall; |
function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
function SetColorKey (dwFlags: DWORD; lpDDColorKey: PDDColorKey) : |
HResult; stdcall; |
function SetOverlayPosition (lX, lY: LongInt) : HResult; stdcall; |
function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
function UpdateOverlay(const lpSrcRect: TRect; |
lpDDDestSurface: IDirectDrawSurface3; const lpDestRect: TRect; |
dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
function UpdateOverlay (lpSrcRect: PRect; |
lpDDDestSurface: IDirectDrawSurface3; lpDestRect: PRect; |
dwFlags: DWORD; lpDDOverlayFx: PDDOverlayFX) : HResult; stdcall; |
function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
function UpdateOverlayZOrder(dwFlags: DWORD; |
lpDDSReference: IDirectDrawSurface3): HResult; stdcall; |
// IDirectDrawSurface2 methods |
function GetDDInterface(out lplpDD: IUnknown): HResult; stdcall; |
(*** Added in the v2 interface ***) |
function GetDDInterface (out lplpDD: IDirectDraw) : HResult; stdcall; |
function PageLock(dwFlags: DWORD): HResult; stdcall; |
function PageUnlock(dwFlags: DWORD): HResult; stdcall; |
// IDirectDrawSurface3 methods |
(*** Added in the V3 interface ***) |
function SetSurfaceDesc(const lpddsd: TDDSurfaceDesc; dwFlags: DWORD): HResult; stdcall; |
end; |
{ IDirectDrawSurface4 Interface } |
(* |
* IDirectDrawSurface4 and related interfaces |
*) |
IDirectDrawSurface4 = interface(IUnknown) |
['{0B2B8630-AD35-11D0-8EA6-00609797EA5B}'] |
// IDirectDrawSurface methods |
function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface4): HResult; stdcall; |
(*** IDirectDrawSurface methods ***) |
function AddAttachedSurface (lpDDSAttachedSurface: IDirectDrawSurface4) : |
HResult; stdcall; |
function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface4; |
const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
function Blt (lpDestRect: PRect; |
lpDDSrcSurface: IDirectDrawSurface4; lpSrcRect: PRect; |
dwFlags: DWORD; lpDDBltFx: PDDBltFX) : HResult; stdcall; |
function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface4; |
const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
function BltFast (dwX: DWORD; dwY: DWORD; |
lpDDSrcSurface: IDirectDrawSurface4; lpSrcRect: PRect; |
dwTrans: DWORD) : HResult; stdcall; |
function DeleteAttachedSurface(dwFlags: DWORD; |
lpDDSAttachedSurface: IDirectDrawSurface4): HResult; stdcall; |
function EnumAttachedSurfaces(lpContext: Pointer; |
1340,62 → 1374,69 |
lpfnCallback: TDDEnumSurfacesCallback2): HResult; stdcall; |
function Flip(lpDDSurfaceTargetOverride: IDirectDrawSurface4; |
dwFlags: DWORD): HResult; stdcall; |
function GetAttachedSurface(var lpDDSCaps: TDDSCaps2; |
function GetAttachedSurface (const lpDDSCaps: TDDSCaps2; |
out lplpDDAttachedSurface: IDirectDrawSurface4): HResult; stdcall; |
function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
function GetCaps(var lpDDSCaps: TDDSCaps2): HResult; stdcall; |
function GetCaps (out lpDDSCaps: TDDSCaps2) : HResult; stdcall; |
function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
function GetDC(var lphDC: HDC): HResult; stdcall; |
function GetColorKey (dwFlags: DWORD; out lpDDColorKey: TDDColorKey) : |
HResult; stdcall; |
function GetDC (out lphDC: HDC) : HResult; stdcall; |
function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
function GetOverlayPosition (out lplX, lplY: LongInt) : HResult; stdcall; |
function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
function Initialize(lpDD: IDirectDraw; const lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
function GetPixelFormat (out lpDDPixelFormat: TDDPixelFormat) : HResult; stdcall; |
function GetSurfaceDesc (out lpDDSurfaceDesc: TDDSurfaceDesc2) : HResult; stdcall; |
function Initialize (lpDD: IDirectDraw; |
out lpDDSurfaceDesc: TDDSurfaceDesc2) : HResult; stdcall; |
function IsLost: HResult; stdcall; |
function Lock(lpDestRect: PRect; const lpDDSurfaceDesc: TDDSurfaceDesc2; |
dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
function ReleaseDC(hDC: HDC): HResult; stdcall; |
function Restore: HResult; stdcall; |
function Lock (lpDestRect: PRect; |
out lpDDSurfaceDesc: TDDSurfaceDesc2; dwFlags: DWORD; |
hEvent: THandle) : HResult; stdcall; |
function ReleaseDC (hDC: Windows.HDC) : HResult; stdcall; |
function _Restore: HResult; stdcall; |
function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
function SetColorKey (dwFlags: DWORD; lpDDColorKey: PDDColorKey) : |
HResult; stdcall; |
function SetOverlayPosition (lX, lY: LongInt) : HResult; stdcall; |
function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
function UpdateOverlay(const lpSrcRect: TRect; lpDDDestSurface: IDirectDrawSurface4; |
const lpDestRect: TRect; dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
function Unlock (lpRect: PRect) : HResult; stdcall; |
function UpdateOverlay (lpSrcRect: PRect; |
lpDDDestSurface: IDirectDrawSurface4; lpDestRect: PRect; |
dwFlags: DWORD; lpDDOverlayFx: PDDOverlayFX) : HResult; stdcall; |
function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
function UpdateOverlayZOrder(dwFlags: DWORD; lpDDSReference: IDirectDrawSurface4): HResult; stdcall; |
// IDirectDrawSurface2 methods |
function UpdateOverlayZOrder (dwFlags: DWORD; |
lpDDSReference: IDirectDrawSurface4) : HResult; stdcall; |
(*** Added in the v2 interface ***) |
function GetDDInterface(out lplpDD: IUnknown): HResult; stdcall; |
function PageLock(dwFlags: DWORD): HResult; stdcall; |
function PageUnlock(dwFlags: DWORD): HResult; stdcall; |
// IDirectDrawSurface3 methods |
function SetSurfaceDesc(const lpddsd: TDDSurfaceDesc2; dwFlags: DWORD): HResult; stdcall; |
// IDirectDrawSurface4 methods |
function SetPrivateData(const guidTag: TGUID; lpData: Pointer; |
(*** Added in the V3 interface ***) |
function SetSurfaceDesc(const lpddsd2: TDDSurfaceDesc2; dwFlags: DWORD) : HResult; stdcall; |
(*** Added in the v4 interface ***) |
function SetPrivateData(const guidTag: TGUID; lpData: pointer; |
cbSize: DWORD; dwFlags: DWORD): HResult; stdcall; |
function GetPrivateData(const guidTag: TGUID; lpData: Pointer; |
var cbSize: DWORD): HResult; stdcall; |
function GetPrivateData(const guidTag: TGUID; lpBuffer: pointer; |
var lpcbBufferSize: DWORD) : HResult; stdcall; |
function FreePrivateData(const guidTag: TGUID): HResult; stdcall; |
function GetUniquenessValue(var lpValue: DWORD): HResult; stdcall; |
function GetUniquenessValue(out lpValue: DWORD) : HResult; stdcall; |
function ChangeUniquenessValue: HResult; stdcall; |
end; |
{ IDirectDrawSurface7 Interface } |
IDirectDrawSurface7 = interface(IUnknown) |
['{06675A80-3B9B-11D2-B92F-00609797EA5B}'] |
// IDirectDrawSurface methods |
function AddAttachedSurface(lpDDSAttachedSurface: IDirectDrawSurface7): HResult; stdcall; |
['{06675a80-3b9b-11d2-b92f-00609797ea5b}'] |
(*** IDirectDrawSurface methods ***) |
function AddAttachedSurface (lpDDSAttachedSurface: IDirectDrawSurface7) : |
HResult; stdcall; |
function AddOverlayDirtyRect(const lpRect: TRect): HResult; stdcall; |
function Blt(const lpDestRect: TRect; lpDDSrcSurface: IDirectDrawSurface7; |
const lpSrcRect: TRect; dwFlags: DWORD; const lpDDBltFx: TDDBltFX): HResult; stdcall; |
function Blt (lpDestRect: PRect; |
lpDDSrcSurface: IDirectDrawSurface7; lpSrcRect: PRect; |
dwFlags: DWORD; lpDDBltFx: PDDBltFX) : HResult; stdcall; |
function BltBatch(const lpDDBltBatch: TDDBltBatch; dwCount: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function BltFast(dwX, dwY: DWORD; lpDDSrcSurface: IDirectDrawSurface7; |
const lpSrcRect: TRect; dwTrans: DWORD): HResult; stdcall; |
function BltFast (dwX: DWORD; dwY: DWORD; |
lpDDSrcSurface: IDirectDrawSurface7; lpSrcRect: PRect; |
dwTrans: DWORD) : HResult; stdcall; |
function DeleteAttachedSurface(dwFlags: DWORD; |
lpDDSAttachedSurface: IDirectDrawSurface7): HResult; stdcall; |
function EnumAttachedSurfaces(lpContext: Pointer; |
1404,438 → 1445,2038 |
lpfnCallback: TDDEnumSurfacesCallback7): HResult; stdcall; |
function Flip(lpDDSurfaceTargetOverride: IDirectDrawSurface7; |
dwFlags: DWORD): HResult; stdcall; |
function GetAttachedSurface(var lpDDSCaps: TDDSCaps2; |
function GetAttachedSurface (const lpDDSCaps: TDDSCaps2; |
out lplpDDAttachedSurface: IDirectDrawSurface7): HResult; stdcall; |
function GetBltStatus(dwFlags: DWORD): HResult; stdcall; |
function GetCaps(var lpDDSCaps: TDDSCaps2): HResult; stdcall; |
function GetCaps (out lpDDSCaps: TDDSCaps2) : HResult; stdcall; |
function GetClipper(out lplpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function GetColorKey(dwFlags: DWORD; var lpDDColorKey: TDDColorKey): HResult; stdcall; |
function GetDC(var lphDC: HDC): HResult; stdcall; |
function GetColorKey (dwFlags: DWORD; out lpDDColorKey: TDDColorKey) : |
HResult; stdcall; |
function GetDC (out lphDC: HDC) : HResult; stdcall; |
function GetFlipStatus(dwFlags: DWORD): HResult; stdcall; |
function GetOverlayPosition(var lplX, lplY: Longint): HResult; stdcall; |
function GetOverlayPosition (out lplX, lplY: LongInt) : HResult; stdcall; |
function GetPalette(out lplpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function GetPixelFormat(var lpDDPixelFormat: TDDPixelFormat): HResult; stdcall; |
function GetSurfaceDesc(var lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
function Initialize(lpDD: IDirectDraw; const lpDDSurfaceDesc: TDDSurfaceDesc2): HResult; stdcall; |
function GetPixelFormat (out lpDDPixelFormat: TDDPixelFormat) : HResult; stdcall; |
function GetSurfaceDesc (out lpDDSurfaceDesc: TDDSurfaceDesc2) : HResult; stdcall; |
function Initialize (lpDD: IDirectDraw; |
out lpDDSurfaceDesc: TDDSurfaceDesc2) : HResult; stdcall; |
function IsLost: HResult; stdcall; |
function Lock(lpDestRect: PRect; const lpDDSurfaceDesc: TDDSurfaceDesc2; |
dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
function ReleaseDC(hDC: HDC): HResult; stdcall; |
function Restore: HResult; stdcall; |
function Lock (lpDestRect: PRect; |
out lpDDSurfaceDesc: TDDSurfaceDesc2; dwFlags: DWORD; |
hEvent: THandle) : HResult; stdcall; |
function ReleaseDC (hDC: Windows.HDC) : HResult; stdcall; |
function _Restore: HResult; stdcall; |
function SetClipper(lpDDClipper: IDirectDrawClipper): HResult; stdcall; |
function SetColorKey(dwFlags: DWORD; const lpDDColorKey: TDDColorKey): HResult; stdcall; |
function SetOverlayPosition(lX, lY: Longint): HResult; stdcall; |
function SetColorKey (dwFlags: DWORD; lpDDColorKey: PDDColorKey) : |
HResult; stdcall; |
function SetOverlayPosition (lX, lY: LongInt) : HResult; stdcall; |
function SetPalette(lpDDPalette: IDirectDrawPalette): HResult; stdcall; |
function Unlock(lpSurfaceData: Pointer): HResult; stdcall; |
function UpdateOverlay(const lpSrcRect: TRect; lpDDDestSurface: IDirectDrawSurface7; |
const lpDestRect: TRect; dwFlags: DWORD; const lpDDOverlayFx: TDDOverlayFX): HResult; stdcall; |
function Unlock (lpRect: PRect) : HResult; stdcall; |
function UpdateOverlay (lpSrcRect: PRect; |
lpDDDestSurface: IDirectDrawSurface7; lpDestRect: PRect; |
dwFlags: DWORD; lpDDOverlayFx: PDDOverlayFX) : HResult; stdcall; |
function UpdateOverlayDisplay(dwFlags: DWORD): HResult; stdcall; |
function UpdateOverlayZOrder(dwFlags: DWORD; lpDDSReference: IDirectDrawSurface7): HResult; stdcall; |
// IDirectDrawSurface2 methods |
function UpdateOverlayZOrder (dwFlags: DWORD; |
lpDDSReference: IDirectDrawSurface7) : HResult; stdcall; |
(*** Added in the v2 interface ***) |
function GetDDInterface(out lplpDD: IUnknown): HResult; stdcall; |
function PageLock(dwFlags: DWORD): HResult; stdcall; |
function PageUnlock(dwFlags: DWORD): HResult; stdcall; |
// IDirectDrawSurface3 methods |
function SetSurfaceDesc(const lpddsd: TDDSurfaceDesc2; dwFlags: DWORD): HResult; stdcall; |
// IDirectDrawSurface4 methods |
function SetPrivateData(const guidTag: TGUID; lpData: Pointer; |
(*** Added in the V3 interface ***) |
function SetSurfaceDesc(const lpddsd2: TDDSurfaceDesc2; dwFlags: DWORD) : HResult; stdcall; |
(*** Added in the v4 interface ***) |
function SetPrivateData(const guidTag: TGUID; lpData: pointer; |
cbSize: DWORD; dwFlags: DWORD): HResult; stdcall; |
function GetPrivateData(const guidTag: TGUID; lpData: Pointer; |
var cbSize: DWORD): HResult; stdcall; |
function GetPrivateData(const guidTag: TGUID; lpBuffer: pointer; |
var lpcbBufferSize: DWORD) : HResult; stdcall; |
function FreePrivateData(const guidTag: TGUID): HResult; stdcall; |
function GetUniquenessValue(var lpValue: DWORD): HResult; stdcall; |
function GetUniquenessValue(out lpValue: DWORD) : HResult; stdcall; |
function ChangeUniquenessValue: HResult; stdcall; |
// Moved Texture7 methods here |
(*** Moved Texture7 methods here ***) |
function SetPriority(dwPriority: DWORD): HResult; stdcall; |
function GetPriority(var lpdwPriority: DWORD): HResult; stdcall; |
function GetPriority(out lpdwPriority: DWORD) : HResult; stdcall; |
function SetLOD(dwMaxLOD: DWORD): HResult; stdcall; |
function GetLOD(var lpdwMaxLOD: DWORD): HResult; stdcall; |
function GetLOD(out lpdwMaxLOD: DWORD) : HResult; stdcall; |
end; |
{ IDirectDrawColorControl Interface } |
IDirectDrawColorControl = interface(IUnknown) |
['{4B9F0EE0-0D7E-11D0-9B06-00A0C903A3B8}'] |
// IDirectDrawColorControl methods |
function GetColorControls(var lpColorControl: TDDColorControl): HResult; stdcall; |
function GetColorControls(out lpColorControl: TDDColorControl) : HResult; stdcall; |
function SetColorControls(const lpColorControl: TDDColorControl): HResult; stdcall; |
end; |
{ IDirectDrawGammaControl Interface } |
(* |
* IDirectDrawGammaControl |
*) |
IDirectDrawGammaControl = interface(IUnknown) |
['{69C11C3E-B46B-11D1-AD7A-00C04FC29B4E}'] |
// IDirectDrawGammaControl methods |
function GetGammaRamp(dwFlags: DWORD; var lpRampData: TDDGammaRamp): HResult; stdcall; |
function SetGammaRamp(dwFlags: DWORD; const lpRampData: TDDGammaRamp): HResult; stdcall; |
function GetGammaRamp (dwFlags: DWORD; out lpRampData: TDDGammaRamp) |
: HResult; stdcall; |
function SetGammaRamp (dwFlags: DWORD; const lpRampData: TDDGammaRamp) |
: HResult; stdcall; |
end; |
const |
{ Flags for DirectDrawEnumerateEx } |
DDENUM_ATTACHEDSECONDARYDEVICES = $00000001; |
DDENUM_DETACHEDSECONDARYDEVICES = $00000002; |
DDENUM_NONDISPLAYDEVICES = $00000004; |
type |
IID_IDirectDraw = IDirectDraw; |
IID_IDirectDraw2 = IDirectDraw2; |
IID_IDirectDraw4 = IDirectDraw4; |
IID_IDirectDraw7 = IDirectDraw7; |
IID_IDirectDrawSurface = IDirectDrawSurface; |
IID_IDirectDrawSurface2 = IDirectDrawSurface2; |
IID_IDirectDrawSurface3 = IDirectDrawSurface3; |
IID_IDirectDrawSurface4 = IDirectDrawSurface4; |
IID_IDirectDrawSurface7 = IDirectDrawSurface7; |
{ Flags for the IDirectDraw4.GetDeviceIdentifier method } |
DDGDI_GETHOSTIDENTIFIER = $00000001; |
IID_IDirectDrawPalette = IDirectDrawPalette; |
IID_IDirectDrawClipper = IDirectDrawClipper; |
IID_IDirectDrawColorControl = IDirectDrawColorControl; |
IID_IDirectDrawGammaControl = IDirectDrawGammaControl; |
{ ddsCaps field is valid. } |
const |
(* |
* ddsCaps field is valid. |
*) |
DDSD_CAPS = $00000001; // default |
(* |
* dwHeight field is valid. |
*) |
DDSD_HEIGHT = $00000002; |
(* |
* dwWidth field is valid. |
*) |
DDSD_WIDTH = $00000004; |
(* |
* lPitch is valid. |
*) |
DDSD_PITCH = $00000008; |
(* |
* dwBackBufferCount is valid. |
*) |
DDSD_BACKBUFFERCOUNT = $00000020; |
(* |
* dwZBufferBitDepth is valid. (shouldnt be used in DDSURFACEDESC2) |
*) |
DDSD_ZBUFFERBITDEPTH = $00000040; |
(* |
* dwAlphaBitDepth is valid. |
*) |
DDSD_ALPHABITDEPTH = $00000080; |
(* |
* lpSurface is valid. |
*) |
DDSD_LPSURFACE = $00000800; |
(* |
* ddpfPixelFormat is valid. |
*) |
DDSD_PIXELFORMAT = $00001000; |
(* |
* ddckCKDestOverlay is valid. |
*) |
DDSD_CKDESTOVERLAY = $00002000; |
(* |
* ddckCKDestBlt is valid. |
*) |
DDSD_CKDESTBLT = $00004000; |
(* |
* ddckCKSrcOverlay is valid. |
*) |
DDSD_CKSRCOVERLAY = $00008000; |
(* |
* ddckCKSrcBlt is valid. |
*) |
DDSD_CKSRCBLT = $00010000; |
(* |
* dwMipMapCount is valid. |
*) |
DDSD_MIPMAPCOUNT = $00020000; |
(* |
* dwRefreshRate is valid |
*) |
DDSD_REFRESHRATE = $00040000; |
(* |
* dwLinearSize is valid |
*) |
DDSD_LINEARSIZE = $00080000; |
(* |
* dwTextureStage is valid |
*) |
DDSD_TEXTURESTAGE = $00100000; |
DDSD_FVF = $00200000; |
DDSD_SRCVBHANDLE = $00400000; |
DDSD_ALL = $007ff9ee; |
{ DirectDraw Driver Capability Flags } |
(* |
* All input fields are valid. |
*) |
DDSD_ALL = $001ff9ee; |
(* |
* guid field is valid. |
*) |
DDOSD_GUID = $00000001; |
(* |
* dwCompressionRatio field is valid. |
*) |
DDOSD_COMPRESSION_RATIO = $00000002; |
(* |
* ddSCaps field is valid. |
*) |
DDOSD_SCAPS = $00000004; |
(* |
* ddOSCaps field is valid. |
*) |
DDOSD_OSCAPS = $00000008; |
(* |
* All input fields are valid. |
*) |
DDOSD_ALL = $0000000f; |
(* |
* The surface's optimized pixelformat is compressed |
*) |
DDOSDCAPS_OPTCOMPRESSED = $00000001; |
(* |
* The surface's optimized pixelformat is reordered |
*) |
DDOSDCAPS_OPTREORDERED = $00000002; |
(* |
* The opt surface is a monolithic mipmap |
*) |
DDOSDCAPS_MONOLITHICMIPMAP = $00000004; |
(* |
* The valid Surf caps: |
* DDSCAPS_SYSTEMMEMORY = $00000800; |
* DDSCAPS_VIDEOMEMORY = $00004000; |
* DDSCAPS_LOCALVIDMEM = $10000000; |
* DDSCAPS_NONLOCALVIDMEM = $20000000; |
*) |
DDOSDCAPS_VALIDSCAPS = $30004800; |
(* |
* The valid OptSurf caps |
*) |
DDOSDCAPS_VALIDOSCAPS = $00000007; |
(* |
* DDCOLORCONTROL |
*) |
(* |
* lBrightness field is valid. |
*) |
DDCOLOR_BRIGHTNESS = $00000001; |
(* |
* lContrast field is valid. |
*) |
DDCOLOR_CONTRAST = $00000002; |
(* |
* lHue field is valid. |
*) |
DDCOLOR_HUE = $00000004; |
(* |
* lSaturation field is valid. |
*) |
DDCOLOR_SATURATION = $00000008; |
(* |
* lSharpness field is valid. |
*) |
DDCOLOR_SHARPNESS = $00000010; |
(* |
* lGamma field is valid. |
*) |
DDCOLOR_GAMMA = $00000020; |
(* |
* lColorEnable field is valid. |
*) |
DDCOLOR_COLORENABLE = $00000040; |
(*============================================================================ |
* |
* Direct Draw Capability Flags |
* |
* These flags are used to describe the capabilities of a given Surface. |
* All flags are bit flags. |
* |
*==========================================================================*) |
(**************************************************************************** |
* |
* DIRECTDRAWSURFACE CAPABILITY FLAGS |
* |
****************************************************************************) |
(* |
* This bit currently has no meaning. |
*) |
DDSCAPS_RESERVED1 = $00000001; |
(* |
* Indicates that this surface contains alpha-only information. |
* (To determine if a surface is RGBA/YUVA, the pixel format must be |
* interrogated.) |
*) |
DDSCAPS_ALPHA = $00000002; |
(* |
* Indicates that this surface is a backbuffer. It is generally |
* set by CreateSurface when the DDSCAPS_FLIP capability bit is set. |
* It indicates that this surface is THE back buffer of a surface |
* flipping structure. DirectDraw supports N surfaces in a |
* surface flipping structure. Only the surface that immediately |
* precedeces the DDSCAPS_FRONTBUFFER has this capability bit set. |
* The other surfaces are identified as back buffers by the presence |
* of the DDSCAPS_FLIP capability, their attachment order, and the |
* absence of the DDSCAPS_FRONTBUFFER and DDSCAPS_BACKBUFFER |
* capabilities. The bit is sent to CreateSurface when a standalone |
* back buffer is being created. This surface could be attached to |
* a front buffer and/or back buffers to form a flipping surface |
* structure after the CreateSurface call. See AddAttachments for |
* a detailed description of the behaviors in this case. |
*) |
DDSCAPS_BACKBUFFER = $00000004; |
(* |
* Indicates a complex surface structure is being described. A |
* complex surface structure results in the creation of more than |
* one surface. The additional surfaces are attached to the root |
* surface. The complex structure can only be destroyed by |
* destroying the root. |
*) |
DDSCAPS_COMPLEX = $00000008; |
(* |
* Indicates that this surface is a part of a surface flipping structure. |
* When it is passed to CreateSurface the DDSCAPS_FRONTBUFFER and |
* DDSCAP_BACKBUFFER bits are not set. They are set by CreateSurface |
* on the resulting creations. The dwBackBufferCount field in the |
* TDDSurfaceDesc structure must be set to at least 1 in order for |
* the CreateSurface call to succeed. The DDSCAPS_COMPLEX capability |
* must always be set with creating multiple surfaces through CreateSurface. |
*) |
DDSCAPS_FLIP = $00000010; |
(* |
* Indicates that this surface is THE front buffer of a surface flipping |
* structure. It is generally set by CreateSurface when the DDSCAPS_FLIP |
* capability bit is set. |
* If this capability is sent to CreateSurface then a standalonw front buffer |
* is created. This surface will not have the DDSCAPS_FLIP capability. |
* It can be attached to other back buffers to form a flipping structure. |
* See AddAttachments for a detailed description of the behaviors in this |
* case. |
*) |
DDSCAPS_FRONTBUFFER = $00000020; |
(* |
* Indicates that this surface is any offscreen surface that is not an overlay, |
* texture, zbuffer, front buffer, back buffer, or alpha surface. It is used |
* to identify plain vanilla surfaces. |
*) |
DDSCAPS_OFFSCREENPLAIN = $00000040; |
(* |
* Indicates that this surface is an overlay. It may or may not be directly visible |
* depending on whether or not it is currently being overlayed onto the primary |
* surface. DDSCAPS_VISIBLE can be used to determine whether or not it is being |
* overlayed at the moment. |
*) |
DDSCAPS_OVERLAY = $00000080; |
(* |
* Indicates that unique DirectDrawPalette objects can be created and |
* attached to this surface. |
*) |
DDSCAPS_PALETTE = $00000100; |
(* |
* Indicates that this surface is the primary surface. The primary |
* surface represents what the user is seeing at the moment. |
*) |
DDSCAPS_PRIMARYSURFACE = $00000200; |
(* |
* This flag used to be DDSCAPS_PRIMARYSURFACELEFT, which is now |
* obsolete. |
*) |
DDSCAPS_RESERVED3 = $00000400; |
(* |
* Indicates that this surface is the primary surface for the left eye. |
* The primary surface for the left eye represents what the user is seeing |
* at the moment with the users left eye. When this surface is created the |
* DDSCAPS_PRIMARYSURFACE represents what the user is seeing with the users |
* right eye. |
*) |
DDSCAPS_PRIMARYSURFACELEFT = DDSCAPS_RESERVED3; |
(* |
* Indicates that this surface memory was allocated in system memory |
*) |
DDSCAPS_SYSTEMMEMORY = $00000800; |
(* |
* Indicates that this surface can be used as a 3D texture. It does not |
* indicate whether or not the surface is being used for that purpose. |
*) |
DDSCAPS_TEXTURE = $00001000; |
(* |
* Indicates that a surface may be a destination for 3D rendering. This |
* bit must be set in order to query for a Direct3D Device Interface |
* from this surface. |
*) |
DDSCAPS_3DDEVICE = $00002000; |
(* |
* Indicates that this surface exists in video memory. |
*) |
DDSCAPS_VIDEOMEMORY = $00004000; |
(* |
* Indicates that changes made to this surface are immediately visible. |
* It is always set for the primary surface and is set for overlays while |
* they are being overlayed and texture maps while they are being textured. |
*) |
DDSCAPS_VISIBLE = $00008000; |
(* |
* Indicates that only writes are permitted to the surface. Read accesses |
* from the surface may or may not generate a protection fault, but the |
* results of a read from this surface will not be meaningful. READ ONLY. |
*) |
DDSCAPS_WRITEONLY = $00010000; |
(* |
* Indicates that this surface is a z buffer. A z buffer does not contain |
* displayable information. Instead it contains bit depth information that is |
* used to determine which pixels are visible and which are obscured. |
*) |
DDSCAPS_ZBUFFER = $00020000; |
(* |
* Indicates surface will have a DC associated long term |
*) |
DDSCAPS_OWNDC = $00040000; |
(* |
* Indicates surface should be able to receive live video |
*) |
DDSCAPS_LIVEVIDEO = $00080000; |
(* |
* Indicates surface should be able to have a stream decompressed |
* to it by the hardware. |
*) |
DDSCAPS_HWCODEC = $00100000; |
(* |
* Surface is a ModeX surface. |
* |
*) |
DDSCAPS_MODEX = $00200000; |
(* |
* Indicates surface is one level of a mip-map. This surface will |
* be attached to other DDSCAPS_MIPMAP surfaces to form the mip-map. |
* This can be done explicitly, by creating a number of surfaces and |
* attaching them with AddAttachedSurface or by implicitly by CreateSurface. |
* If this bit is set then DDSCAPS_TEXTURE must also be set. |
*) |
DDSCAPS_MIPMAP = $00400000; |
(* |
* This bit is reserved. It should not be specified. |
*) |
DDSCAPS_RESERVED2 = $00800000; |
(* |
* Indicates that memory for the surface is not allocated until the surface |
* is loaded (via the Direct3D texture Load() function). |
*) |
DDSCAPS_ALLOCONLOAD = $04000000; |
(* |
* Indicates that the surface will recieve data from a video port. |
*) |
DDSCAPS_VIDEOPORT = $08000000; |
(* |
* Indicates that a video memory surface is resident in true, local video |
* memory rather than non-local video memory. If this flag is specified then |
* so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with |
* DDSCAPS_NONLOCALVIDMEM. |
*) |
DDSCAPS_LOCALVIDMEM = $10000000; |
(* |
* Indicates that a video memory surface is resident in non-local video |
* memory rather than true, local video memory. If this flag is specified |
* then so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with |
* DDSCAPS_LOCALVIDMEM. |
*) |
DDSCAPS_NONLOCALVIDMEM = $20000000; |
(* |
* Indicates that this surface is a standard VGA mode surface, and not a |
* ModeX surface. (This flag will never be set in combination with the |
* DDSCAPS_MODEX flag). |
*) |
DDSCAPS_STANDARDVGAMODE = $40000000; |
(* |
* Indicates that this surface will be an optimized surface. This flag is |
* currently only valid in conjunction with the DDSCAPS_TEXTURE flag. The surface |
* will be created without any underlying video memory until loaded. |
*) |
DDSCAPS_OPTIMIZED = $80000000; |
(* |
* Indicates that this surface will receive data from a video port using |
* the de-interlacing hardware. This allows the driver to allocate memory |
* for any extra buffers that may be required. The DDSCAPS_VIDEOPORT and |
* DDSCAPS_OVERLAY flags must also be set. |
*) |
DDSCAPS2_HARDWAREDEINTERLACE = $00000002; |
(* |
* Indicates to the driver that this surface will be locked very frequently |
* (for procedural textures, dynamic lightmaps, etc). Surfaces with this cap |
* set must also have DDSCAPS_TEXTURE. This cap cannot be used with |
* DDSCAPS2_HINTSTATIC and DDSCAPS2_OPAQUE. |
*) |
DDSCAPS2_HINTDYNAMIC = $00000004; |
(* |
* Indicates to the driver that this surface can be re-ordered/retiled on |
* load. This operation will not change the size of the texture. It is |
* relatively fast and symmetrical, since the application may lock these |
* bits (although it will take a performance hit when doing so). Surfaces |
* with this cap set must also have DDSCAPS_TEXTURE. This cap cannot be |
* used with DDSCAPS2_HINTDYNAMIC and DDSCAPS2_OPAQUE. |
*) |
DDSCAPS2_HINTSTATIC = $00000008; |
(* |
* Indicates that the client would like this texture surface to be managed by the |
* DirectDraw/Direct3D runtime. Surfaces with this cap set must also have |
* DDSCAPS_TEXTURE and DDSCAPS_SYSTEMMEMORY. |
*) |
DDSCAPS2_TEXTUREMANAGE = $00000010; |
(* |
* These bits are reserved for internal use *) |
DDSCAPS2_RESERVED1 = $00000020; |
DDSCAPS2_RESERVED2 = $00000040; |
(* |
* Indicates to the driver that this surface will never be locked again. |
* The driver is free to optimize this surface via retiling and actual compression. |
* All calls to Lock() or Blts from this surface will fail. Surfaces with this |
* cap set must also have DDSCAPS_TEXTURE. This cap cannot be used with |
* DDSCAPS2_HINTDYNAMIC and DDSCAPS2_HINTSTATIC. |
*) |
DDSCAPS2_OPAQUE = $00000080; |
(* |
* Applications should set this bit at CreateSurface time to indicate that they |
* intend to use antialiasing. Only valid if DDSCAPS_3DDEVICE is also set. |
*) |
DDSCAPS2_HINTANTIALIASING = $00000100; |
(* |
* This flag is used at CreateSurface time to indicate that this set of |
* surfaces is a cubic environment map |
*) |
DDSCAPS2_CUBEMAP = $00000200; |
(* |
* These flags preform two functions: |
* - At CreateSurface time, they define which of the six cube faces are |
* required by the application. |
* - After creation, each face in the cubemap will have exactly one of these |
* bits set. |
*) |
DDSCAPS2_CUBEMAP_POSITIVEX = $00000400; |
DDSCAPS2_CUBEMAP_NEGATIVEX = $00000800; |
DDSCAPS2_CUBEMAP_POSITIVEY = $00001000; |
DDSCAPS2_CUBEMAP_NEGATIVEY = $00002000; |
DDSCAPS2_CUBEMAP_POSITIVEZ = $00004000; |
DDSCAPS2_CUBEMAP_NEGATIVEZ = $00008000; |
(* |
* This macro may be used to specify all faces of a cube map at CreateSurface time |
*) |
DDSCAPS2_CUBEMAP_ALLFACES = ( DDSCAPS2_CUBEMAP_POSITIVEX or |
DDSCAPS2_CUBEMAP_NEGATIVEX or |
DDSCAPS2_CUBEMAP_POSITIVEY or |
DDSCAPS2_CUBEMAP_NEGATIVEY or |
DDSCAPS2_CUBEMAP_POSITIVEZ or |
DDSCAPS2_CUBEMAP_NEGATIVEZ ); |
(* |
* This flag is an additional flag which is present on mipmap sublevels from DX7 onwards |
* It enables easier use of GetAttachedSurface rather than EnumAttachedSurfaces for surface |
* constructs such as Cube Maps, wherein there are more than one mipmap surface attached |
* to the root surface. |
* This caps bit is ignored by CreateSurface |
*) |
DDSCAPS2_MIPMAPSUBLEVEL = $00010000; |
(* This flag indicates that the texture should be managed by D3D only *) |
DDSCAPS2_D3DTEXTUREMANAGE = $00020000; |
(* This flag indicates that the managed surface can be safely lost *) |
DDSCAPS2_DONOTPERSIST = $00040000; |
(* indicates that this surface is part of a stereo flipping chain *) |
DDSCAPS2_STEREOSURFACELEFT = $00080000; |
(**************************************************************************** |
* |
* DIRECTDRAW DRIVER CAPABILITY FLAGS |
* |
****************************************************************************) |
(* |
* Display hardware has 3D acceleration. |
*) |
DDCAPS_3D = $00000001; |
(* |
* Indicates that DirectDraw will support only dest rectangles that are aligned |
* on DIRECTDRAWCAPS.dwAlignBoundaryDest boundaries of the surface, respectively. |
* READ ONLY. |
*) |
DDCAPS_ALIGNBOUNDARYDEST = $00000002; |
(* |
* Indicates that DirectDraw will support only source rectangles whose sizes in |
* BYTEs are DIRECTDRAWCAPS.dwAlignSizeDest multiples, respectively. READ ONLY. |
*) |
DDCAPS_ALIGNSIZEDEST = $00000004; |
(* |
* Indicates that DirectDraw will support only source rectangles that are aligned |
* on DIRECTDRAWCAPS.dwAlignBoundarySrc boundaries of the surface, respectively. |
* READ ONLY. |
*) |
DDCAPS_ALIGNBOUNDARYSRC = $00000008; |
(* |
* Indicates that DirectDraw will support only source rectangles whose sizes in |
* BYTEs are DIRECTDRAWCAPS.dwAlignSizeSrc multiples, respectively. READ ONLY. |
*) |
DDCAPS_ALIGNSIZESRC = $00000010; |
(* |
* Indicates that DirectDraw will create video memory surfaces that have a stride |
* alignment equal to DIRECTDRAWCAPS.dwAlignStride. READ ONLY. |
*) |
DDCAPS_ALIGNSTRIDE = $00000020; |
(* |
* Display hardware is capable of blt operations. |
*) |
DDCAPS_BLT = $00000040; |
(* |
* Display hardware is capable of asynchronous blt operations. |
*) |
DDCAPS_BLTQUEUE = $00000080; |
(* |
* Display hardware is capable of color space conversions during the blt operation. |
*) |
DDCAPS_BLTFOURCC = $00000100; |
(* |
* Display hardware is capable of stretching during blt operations. |
*) |
DDCAPS_BLTSTRETCH = $00000200; |
(* |
* Display hardware is shared with GDI. |
*) |
DDCAPS_GDI = $00000400; |
(* |
* Display hardware can overlay. |
*) |
DDCAPS_OVERLAY = $00000800; |
(* |
* Set if display hardware supports overlays but can not clip them. |
*) |
DDCAPS_OVERLAYCANTCLIP = $00001000; |
(* |
* Indicates that overlay hardware is capable of color space conversions during |
* the overlay operation. |
*) |
DDCAPS_OVERLAYFOURCC = $00002000; |
(* |
* Indicates that stretching can be done by the overlay hardware. |
*) |
DDCAPS_OVERLAYSTRETCH = $00004000; |
(* |
* Indicates that unique DirectDrawPalettes can be created for DirectDrawSurfaces |
* other than the primary surface. |
*) |
DDCAPS_PALETTE = $00008000; |
(* |
* Indicates that palette changes can be syncd with the veritcal refresh. |
*) |
DDCAPS_PALETTEVSYNC = $00010000; |
(* |
* Display hardware can return the current scan line. |
*) |
DDCAPS_READSCANLINE = $00020000; |
(* |
* Display hardware has stereo vision capabilities. DDSCAPS_PRIMARYSURFACELEFT |
* can be created. |
*) |
DDCAPS_STEREOVIEW = $00040000; |
(* |
* Display hardware is capable of generating a vertical blank interrupt. |
*) |
DDCAPS_VBI = $00080000; |
(* |
* Supports the use of z buffers with blt operations. |
*) |
DDCAPS_ZBLTS = $00100000; |
(* |
* Supports Z Ordering of overlays. |
*) |
DDCAPS_ZOVERLAYS = $00200000; |
(* |
* Supports color key |
*) |
DDCAPS_COLORKEY = $00400000; |
(* |
* Supports alpha surfaces |
*) |
DDCAPS_ALPHA = $00800000; |
(* |
* colorkey is hardware assisted(DDCAPS_COLORKEY will also be set) |
*) |
DDCAPS_COLORKEYHWASSIST = $01000000; |
(* |
* no hardware support at all |
*) |
DDCAPS_NOHARDWARE = $02000000; |
(* |
* Display hardware is capable of color fill with bltter |
*) |
DDCAPS_BLTCOLORFILL = $04000000; |
(* |
* Display hardware is bank switched, and potentially very slow at |
* random access to VRAM. |
*) |
DDCAPS_BANKSWITCHED = $08000000; |
(* |
* Display hardware is capable of depth filling Z-buffers with bltter |
*) |
DDCAPS_BLTDEPTHFILL = $10000000; |
(* |
* Display hardware is capable of clipping while bltting. |
*) |
DDCAPS_CANCLIP = $20000000; |
(* |
* Display hardware is capable of clipping while stretch bltting. |
*) |
DDCAPS_CANCLIPSTRETCHED = $40000000; |
(* |
* Display hardware is capable of bltting to or from system memory |
*) |
DDCAPS_CANBLTSYSMEM = $80000000; |
{ More DirectDraw Driver Capability Flags (dwCaps2) } |
(**************************************************************************** |
* |
* MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2) |
* |
****************************************************************************) |
(* |
* Display hardware is certified |
*) |
DDCAPS2_CERTIFIED = $00000001; |
(* |
* Driver cannot interleave 2D operations (lock and blt) to surfaces with |
* Direct3D rendering operations between calls to BeginScene() and EndScene() |
*) |
DDCAPS2_NO2DDURING3DSCENE = $00000002; |
(* |
* Display hardware contains a video port |
*) |
DDCAPS2_VIDEOPORT = $00000004; |
(* |
* The overlay can be automatically flipped according to the video port |
* VSYNCs, providing automatic doubled buffered display of video port |
* data using an overlay |
*) |
DDCAPS2_AUTOFLIPOVERLAY = $00000008; |
(* |
* Overlay can display each field of interlaced data individually while |
* it is interleaved in memory without causing jittery artifacts. |
*) |
DDCAPS2_CANBOBINTERLEAVED = $00000010; |
(* |
* Overlay can display each field of interlaced data individually while |
* it is not interleaved in memory without causing jittery artifacts. |
*) |
DDCAPS2_CANBOBNONINTERLEAVED = $00000020; |
(* |
* The overlay surface contains color controls (brightness, sharpness, etc.) |
*) |
DDCAPS2_COLORCONTROLOVERLAY = $00000040; |
(* |
* The primary surface contains color controls (gamma, etc.) |
*) |
DDCAPS2_COLORCONTROLPRIMARY = $00000080; |
(* |
* RGBZ -> RGB supported for 16:16 RGB:Z |
*) |
DDCAPS2_CANDROPZ16BIT = $00000100; |
(* |
* Driver supports non-local video memory. |
*) |
DDCAPS2_NONLOCALVIDMEM = $00000200; |
(* |
* Dirver supports non-local video memory but has different capabilities for |
* non-local video memory surfaces. If this bit is set then so must |
* DDCAPS2_NONLOCALVIDMEM. |
*) |
DDCAPS2_NONLOCALVIDMEMCAPS = $00000400; |
(* |
* Driver neither requires nor prefers surfaces to be pagelocked when performing |
* blts involving system memory surfaces |
*) |
DDCAPS2_NOPAGELOCKREQUIRED = $00000800; |
(* |
* Driver can create surfaces which are wider than the primary surface |
*) |
DDCAPS2_WIDESURFACES = $00001000; |
(* |
* Driver supports bob without using a video port by handling the |
* DDFLIP_ODD and DDFLIP_EVEN flags specified in Flip. |
*) |
DDCAPS2_CANFLIPODDEVEN = $00002000; |
(* |
* Driver supports bob using hardware |
*) |
DDCAPS2_CANBOBHARDWARE = $00004000; |
(* |
* Driver supports bltting any FOURCC surface to another surface of the same FOURCC |
*) |
DDCAPS2_COPYFOURCC = $00008000; |
DDCAPS2_PRIMARYGAMMA = $00020000; |
DDCAPS2_CANRENDERWINDOWED = $00080000; |
DDCAPS2_CANCALIBRATEGAMMA = $00100000; |
DDCAPS2_FLIPINTERVAL = $00200000; |
DDCAPS2_FLIPNOVSYNC = $00400000; |
DDCAPS2_CANMANAGETEXTURE = $00800000; |
DDCAPS2_TEXMANINNONLOCALVIDMEM = $01000000; |
DDCAPS2_STEREO = $02000000; |
DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL = $04000000; |
{ DirectDrawSurface Capability Flags } |
DDSCAPS_RESERVED1 = $00000001; { DDSCAPS_3D } |
DDSCAPS_ALPHA = $00000002; |
DDSCAPS_BACKBUFFER = $00000004; |
DDSCAPS_COMPLEX = $00000008; |
DDSCAPS_FLIP = $00000010; |
DDSCAPS_FRONTBUFFER = $00000020; |
DDSCAPS_OFFSCREENPLAIN = $00000040; |
DDSCAPS_OVERLAY = $00000080; |
DDSCAPS_PALETTE = $00000100; |
DDSCAPS_PRIMARYSURFACE = $00000200; |
DDSCAPS_RESERVED3 = $00000400; { DDSCAPS_PRIMARYSURFACELEFT } |
DDSCAPS_SYSTEMMEMORY = $00000800; |
DDSCAPS_TEXTURE = $00001000; |
DDSCAPS_3DDEVICE = $00002000; |
DDSCAPS_VIDEOMEMORY = $00004000; |
DDSCAPS_VISIBLE = $00008000; |
DDSCAPS_WRITEONLY = $00010000; |
DDSCAPS_ZBUFFER = $00020000; |
DDSCAPS_OWNDC = $00040000; |
DDSCAPS_LIVEVIDEO = $00080000; |
DDSCAPS_HWCODEC = $00100000; |
DDSCAPS_MODEX = $00200000; |
DDSCAPS_MIPMAP = $00400000; |
DDSCAPS_RESERVED2 = $00800000; |
DDSCAPS_ALLOCONLOAD = $04000000; |
DDSCAPS_VIDEOPORT = $08000000; |
DDSCAPS_LOCALVIDMEM = $10000000; |
DDSCAPS_NONLOCALVIDMEM = $20000000; |
DDSCAPS_STANDARDVGAMODE = $40000000; |
DDSCAPS_OPTIMIZED = $80000000; |
(* |
* Driver supports loadable gamma ramps for the primary surface |
*) |
DDCAPS2_PRIMARYGAMMA = $00020000; |
{ DirectDrawSurface Capability Flags 2 } |
(* |
* Driver can render in windowed mode. |
*) |
DDCAPS2_CANRENDERWINDOWED = $00080000; |
DDSCAPS2_HARDWAREDEINTERLACE = $00000002; |
DDSCAPS2_HINTDYNAMIC = $00000004; |
DDSCAPS2_HINTSTATIC = $00000008; |
DDSCAPS2_TEXTUREMANAGE = $00000010; |
DDSCAPS2_RESERVED1 = $00000020; |
DDSCAPS2_RESERVED2 = $00000040; |
DDSCAPS2_OPAQUE = $00000080; |
DDSCAPS2_HINTANTIALIASING = $00000100; |
DDSCAPS2_CUBEMAP = $00000200; |
DDSCAPS2_CUBEMAP_POSITIVEX = $00000400; |
DDSCAPS2_CUBEMAP_NEGATIVEX = $00000800; |
DDSCAPS2_CUBEMAP_POSITIVEY = $00001000; |
DDSCAPS2_CUBEMAP_NEGATIVEY = $00002000; |
DDSCAPS2_CUBEMAP_POSITIVEZ = $00004000; |
DDSCAPS2_CUBEMAP_NEGATIVEZ = $00008000; |
(* |
* A calibrator is available to adjust the gamma ramp according to the |
* physical display properties so that the result will be identical on |
* all calibrated systems. |
*) |
DDCAPS2_CANCALIBRATEGAMMA = $00100000; |
DDSCAPS2_CUBEMAP_ALLFACES = |
DDSCAPS2_CUBEMAP_POSITIVEX or DDSCAPS2_CUBEMAP_NEGATIVEX or |
DDSCAPS2_CUBEMAP_POSITIVEY or DDSCAPS2_CUBEMAP_NEGATIVEY or |
DDSCAPS2_CUBEMAP_POSITIVEZ or DDSCAPS2_CUBEMAP_NEGATIVEZ; |
(* |
* Indicates that the driver will respond to DDFLIP_INTERVALn flags |
*) |
DDCAPS2_FLIPINTERVAL = $00200000; |
DDSCAPS2_MIPMAPSUBLEVEL = $00010000; |
DDSCAPS2_D3DTEXTUREMANAGE = $00020000; |
DDSCAPS2_DONOTPERSIST = $00040000; |
DDSCAPS2_STEREOSURFACELEFT = $00080000; |
(* |
* Indicates that the driver will respond to DDFLIP_NOVSYNC |
*) |
DDCAPS2_FLIPNOVSYNC = $00400000; |
{ TDDOptSurfaceDesc flags } |
(* |
* Driver supports management of video memory, if this flag is ON, |
* driver manages the texture if requested with DDSCAPS2_TEXTUREMANAGE on |
* DirectX manages the texture if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE on |
*) |
DDCAPS2_CANMANAGETEXTURE = $00800000; |
DDOSD_GUID = $00000001; |
DDOSD_COMPRESSION_RATIO = $00000002; |
DDOSD_SCAPS = $00000004; |
DDOSD_OSCAPS = $00000008; |
DDOSD_ALL = $0000000F; |
(* |
* The Direct3D texture manager uses this cap to decide whether to put managed |
* surfaces in non-local video memory. If the cap is set, the texture manager will |
* put managed surfaces in non-local vidmem. Drivers that cannot texture from |
* local vidmem SHOULD NOT set this cap. |
*) |
DDCAPS2_TEXMANINNONLOCALVIDMEM = $01000000; |
{ ddOSCaps field is valid. } |
(* |
* Indicates that the driver supports DX7 type of stereo in at least one mode (which may |
* not necessarily be the current mode). Applications should use IDirectDraw7 (or higher) |
* ::EnumDisplayModes and check the DDSURFACEDESC.ddsCaps.dwCaps2 field for the presence of |
* DDSCAPS2_STEREOSURFACELEFT to check if a particular mode supports stereo. The application |
* can also use IDirectDraw7(or higher)::GetDisplayMode to check the current mode. |
*) |
DDCAPS2_STEREO = $02000000; |
DDOSDCAPS_OPTCOMPRESSED = $00000001; |
DDOSDCAPS_OPTREORDERED = $00000002; |
DDOSDCAPS_MONOLITHICMIPMAP = $00000004; |
DDOSDCAPS_VALIDSCAPS = $30004800; |
DDOSDCAPS_VALIDOSCAPS = $00000007; |
(* |
* This caps bit is intended for internal DirectDraw use. |
* -It is only valid if DDCAPS2_NONLOCALVIDMEMCAPS is set. |
* -If this bit is set, then DDCAPS_CANBLTSYSMEM MUST be set by the driver (and |
* all the assoicated system memory blt caps must be correct). |
* -It implies that the system->video blt caps in DDCAPS also apply to system to |
* nonlocal blts. I.e. the dwSVBCaps, dwSVBCKeyCaps, dwSVBFXCaps and dwSVBRops |
* members of DDCAPS (DDCORECAPS) are filled in correctly. |
* -Any blt from system to nonlocal memory that matches these caps bits will |
* be passed to the driver. |
* |
* NOTE: This is intended to enable the driver itself to do efficient reordering |
* of textures. This is NOT meant to imply that hardware can write into AGP memory. |
* This operation is not currently supported. |
*) |
DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL = $04000000; |
{ DirectDraw FX Alpha Capability Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW FX ALPHA CAPABILITY FLAGS |
* |
****************************************************************************) |
(* |
* Supports alpha blending around the edge of a source color keyed surface. |
* For Blt. |
*) |
DDFXALPHACAPS_BLTALPHAEDGEBLEND = $00000001; |
(* |
* Supports alpha information in the pixel format. The bit depth of alpha |
* information in the pixel format can be 1,2,4, or 8. The alpha value becomes |
* more opaque as the alpha value increases. (0 is transparent.) |
* For Blt. |
*) |
DDFXALPHACAPS_BLTALPHAPIXELS = $00000002; |
(* |
* Supports alpha information in the pixel format. The bit depth of alpha |
* information in the pixel format can be 1,2,4, or 8. The alpha value |
* becomes more transparent as the alpha value increases. (0 is opaque.) |
* This flag can only be set if DDCAPS_ALPHA is set. |
* For Blt. |
*) |
DDFXALPHACAPS_BLTALPHAPIXELSNEG = $00000004; |
(* |
* Supports alpha only surfaces. The bit depth of an alpha only surface can be |
* 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases. |
* (0 is transparent.) |
* For Blt. |
*) |
DDFXALPHACAPS_BLTALPHASURFACES = $00000008; |
(* |
* The depth of the alpha channel data can range can be 1,2,4, or 8. |
* The NEG suffix indicates that this alpha channel becomes more transparent |
* as the alpha value increases. (0 is opaque.) This flag can only be set if |
* DDCAPS_ALPHA is set. |
* For Blt. |
*) |
DDFXALPHACAPS_BLTALPHASURFACESNEG = $00000010; |
(* |
* Supports alpha blending around the edge of a source color keyed surface. |
* For Overlays. |
*) |
DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND = $00000020; |
(* |
* Supports alpha information in the pixel format. The bit depth of alpha |
* information in the pixel format can be 1,2,4, or 8. The alpha value becomes |
* more opaque as the alpha value increases. (0 is transparent.) |
* For Overlays. |
*) |
DDFXALPHACAPS_OVERLAYALPHAPIXELS = $00000040; |
(* |
* Supports alpha information in the pixel format. The bit depth of alpha |
* information in the pixel format can be 1,2,4, or 8. The alpha value |
* becomes more transparent as the alpha value increases. (0 is opaque.) |
* This flag can only be set if DDCAPS_ALPHA is set. |
* For Overlays. |
*) |
DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG = $00000080; |
(* |
* Supports alpha only surfaces. The bit depth of an alpha only surface can be |
* 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases. |
* (0 is transparent.) |
* For Overlays. |
*) |
DDFXALPHACAPS_OVERLAYALPHASURFACES = $00000100; |
(* |
* The depth of the alpha channel data can range can be 1,2,4, or 8. |
* The NEG suffix indicates that this alpha channel becomes more transparent |
* as the alpha value increases. (0 is opaque.) This flag can only be set if |
* DDCAPS_ALPHA is set. |
* For Overlays. |
*) |
DDFXALPHACAPS_OVERLAYALPHASURFACESNEG = $00000200; |
{ DirectDraw FX Capability Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW FX CAPABILITY FLAGS |
* |
****************************************************************************) |
(* |
* Uses arithmetic operations to stretch and shrink surfaces during blt |
* rather than pixel doubling techniques. Along the Y axis. |
*) |
DDFXCAPS_BLTARITHSTRETCHY = $00000020; |
(* |
* Uses arithmetic operations to stretch during blt |
* rather than pixel doubling techniques. Along the Y axis. Only |
* works for x1, x2, etc. |
*) |
DDFXCAPS_BLTARITHSTRETCHYN = $00000010; |
(* |
* Supports mirroring left to right in blt. |
*) |
DDFXCAPS_BLTMIRRORLEFTRIGHT = $00000040; |
(* |
* Supports mirroring top to bottom in blt. |
*) |
DDFXCAPS_BLTMIRRORUPDOWN = $00000080; |
(* |
* Supports arbitrary rotation for blts. |
*) |
DDFXCAPS_BLTROTATION = $00000100; |
(* |
* Supports 90 degree rotations for blts. |
*) |
DDFXCAPS_BLTROTATION90 = $00000200; |
(* |
* DirectDraw supports arbitrary shrinking of a surface along the |
* x axis (horizontal direction) for blts. |
*) |
DDFXCAPS_BLTSHRINKX = $00000400; |
(* |
* DirectDraw supports integer shrinking (1x,2x,) of a surface |
* along the x axis (horizontal direction) for blts. |
*) |
DDFXCAPS_BLTSHRINKXN = $00000800; |
(* |
* DirectDraw supports arbitrary shrinking of a surface along the |
* y axis (horizontal direction) for blts. |
*) |
DDFXCAPS_BLTSHRINKY = $00001000; |
(* |
* DirectDraw supports integer shrinking (1x,2x,) of a surface |
* along the y axis (vertical direction) for blts. |
*) |
DDFXCAPS_BLTSHRINKYN = $00002000; |
(* |
* DirectDraw supports arbitrary stretching of a surface along the |
* x axis (horizontal direction) for blts. |
*) |
DDFXCAPS_BLTSTRETCHX = $00004000; |
(* |
* DirectDraw supports integer stretching (1x,2x,) of a surface |
* along the x axis (horizontal direction) for blts. |
*) |
DDFXCAPS_BLTSTRETCHXN = $00008000; |
(* |
* DirectDraw supports arbitrary stretching of a surface along the |
* y axis (horizontal direction) for blts. |
*) |
DDFXCAPS_BLTSTRETCHY = $00010000; |
(* |
* DirectDraw supports integer stretching (1x,2x,) of a surface |
* along the y axis (vertical direction) for blts. |
*) |
DDFXCAPS_BLTSTRETCHYN = $00020000; |
(* |
* Uses arithmetic operations to stretch and shrink surfaces during |
* overlay rather than pixel doubling techniques. Along the Y axis |
* for overlays. |
*) |
DDFXCAPS_OVERLAYARITHSTRETCHY = $00040000; |
(* |
* Uses arithmetic operations to stretch surfaces during |
* overlay rather than pixel doubling techniques. Along the Y axis |
* for overlays. Only works for x1, x2, etc. |
*) |
DDFXCAPS_OVERLAYARITHSTRETCHYN = $00000008; |
(* |
* DirectDraw supports arbitrary shrinking of a surface along the |
* x axis (horizontal direction) for overlays. |
*) |
DDFXCAPS_OVERLAYSHRINKX = $00080000; |
(* |
* DirectDraw supports integer shrinking (1x,2x,) of a surface |
* along the x axis (horizontal direction) for overlays. |
*) |
DDFXCAPS_OVERLAYSHRINKXN = $00100000; |
(* |
* DirectDraw supports arbitrary shrinking of a surface along the |
* y axis (horizontal direction) for overlays. |
*) |
DDFXCAPS_OVERLAYSHRINKY = $00200000; |
(* |
* DirectDraw supports integer shrinking (1x,2x,) of a surface |
* along the y axis (vertical direction) for overlays. |
*) |
DDFXCAPS_OVERLAYSHRINKYN = $00400000; |
(* |
* DirectDraw supports arbitrary stretching of a surface along the |
* x axis (horizontal direction) for overlays. |
*) |
DDFXCAPS_OVERLAYSTRETCHX = $00800000; |
(* |
* DirectDraw supports integer stretching (1x,2x,) of a surface |
* along the x axis (horizontal direction) for overlays. |
*) |
DDFXCAPS_OVERLAYSTRETCHXN = $01000000; |
(* |
* DirectDraw supports arbitrary stretching of a surface along the |
* y axis (horizontal direction) for overlays. |
*) |
DDFXCAPS_OVERLAYSTRETCHY = $02000000; |
(* |
* DirectDraw supports integer stretching (1x,2x,) of a surface |
* along the y axis (vertical direction) for overlays. |
*) |
DDFXCAPS_OVERLAYSTRETCHYN = $04000000; |
(* |
* DirectDraw supports mirroring of overlays across the vertical axis |
*) |
DDFXCAPS_OVERLAYMIRRORLEFTRIGHT = $08000000; |
(* |
* DirectDraw supports mirroring of overlays across the horizontal axis |
*) |
DDFXCAPS_OVERLAYMIRRORUPDOWN = $10000000; |
(* |
* Driver can do alpha blending for blits. |
*) |
DDFXCAPS_BLTALPHA = $00000001; |
(* |
* Driver can do geometric transformations (or warps) for blits. |
*) |
DDFXCAPS_BLTTRANSFORM = $00000002; |
(* |
* Driver can do surface-reconstruction filtering for warped blits. |
*) |
DDFXCAPS_BLTFILTER = DDFXCAPS_BLTARITHSTRETCHY; |
(* |
* Driver can do alpha blending for overlays. |
*) |
DDFXCAPS_OVERLAYALPHA = $00000004; |
(* |
* Driver can do geometric transformations (or warps) for overlays. |
*) |
DDFXCAPS_OVERLAYTRANSFORM = $20000000; |
(* |
* Driver can do surface-reconstruction filtering for warped overlays. |
*) |
DDFXCAPS_OVERLAYFILTER = DDFXCAPS_OVERLAYARITHSTRETCHY; |
{ DirectDraw Stereo View Capabilities } |
(**************************************************************************** |
* |
* DIRECTDRAW STEREO VIEW CAPABILITIES |
* |
****************************************************************************) |
(* |
* This flag used to be DDSVCAPS_ENIGMA, which is now obsolete |
* The stereo view is accomplished via enigma encoding. |
*) |
DDSVCAPS_RESERVED1 = $00000001; |
DDSVCAPS_ENIGMA = DDSVCAPS_RESERVED1; |
(* |
* This flag used to be DDSVCAPS_FLICKER, which is now obsolete |
* The stereo view is accomplished via high frequency flickering. |
*) |
DDSVCAPS_RESERVED2 = $00000002; |
DDSVCAPS_FLICKER = DDSVCAPS_RESERVED2; |
(* |
* This flag used to be DDSVCAPS_REDBLUE, which is now obsolete |
* The stereo view is accomplished via red and blue filters applied |
* to the left and right eyes. All images must adapt their colorspaces |
* for this process. |
*) |
DDSVCAPS_RESERVED3 = $00000004; |
DDSVCAPS_REDBLUE = DDSVCAPS_RESERVED3; |
(* |
* This flag used to be DDSVCAPS_SPLIT, which is now obsolete |
* The stereo view is accomplished with split screen technology. |
*) |
DDSVCAPS_RESERVED4 = $00000008; |
DDSVCAPS_SPLIT = DDSVCAPS_RESERVED4; |
(* |
* The stereo view is accomplished with switching technology |
*) |
DDSVCAPS_STEREOSEQUENTIAL = $00000010; |
{ DirectDrawPalette Capabilities } |
(**************************************************************************** |
* |
* DIRECTDRAWPALETTE CAPABILITIES |
* |
****************************************************************************) |
(* |
* Index is 4 bits. There are sixteen color entries in the palette table. |
*) |
DDPCAPS_4BIT = $00000001; |
(* |
* Index is onto a 8 bit color index. This field is only valid with the |
* DDPCAPS_1BIT, DDPCAPS_2BIT or DDPCAPS_4BIT capability and the target |
* surface is in 8bpp. Each color entry is one byte long and is an index |
* into destination surface's 8bpp palette. |
*) |
DDPCAPS_8BITENTRIES = $00000002; |
(* |
* Index is 8 bits. There are 256 color entries in the palette table. |
*) |
DDPCAPS_8BIT = $00000004; |
(* |
* Indicates that this DIRECTDRAWPALETTE should use the palette color array |
* passed into the lpDDColorArray parameter to initialize the DIRECTDRAWPALETTE |
* object. |
* This flag is obsolete. DirectDraw always initializes the color array from |
* the lpDDColorArray parameter. The definition remains for source-level |
* compatibility. |
*) |
DDPCAPS_INITIALIZE = $00000008; |
(* |
* This palette is the one attached to the primary surface. Changing this |
* table has immediate effect on the display unless DDPSETPAL_VSYNC is specified |
* and supported. |
*) |
DDPCAPS_PRIMARYSURFACE = $00000010; |
(* |
* This palette is the one attached to the primary surface left. Changing |
* this table has immediate effect on the display for the left eye unless |
* DDPSETPAL_VSYNC is specified and supported. |
*) |
DDPCAPS_PRIMARYSURFACELEFT = $00000020; |
(* |
* This palette can have all 256 entries defined |
*) |
DDPCAPS_ALLOW256 = $00000040; |
(* |
* This palette can have modifications to it synced with the monitors |
* refresh rate. |
*) |
DDPCAPS_VSYNC = $00000080; |
(* |
* Index is 1 bit. There are two color entries in the palette table. |
*) |
DDPCAPS_1BIT = $00000100; |
(* |
* Index is 2 bit. There are four color entries in the palette table. |
*) |
DDPCAPS_2BIT = $00000200; |
(* |
* The peFlags member of PALETTEENTRY denotes an 8 bit alpha value |
*) |
DDPCAPS_ALPHA = $00000400; |
{ DirectDraw BitDepth Constants } |
(**************************************************************************** |
* |
* DIRECTDRAWPALETTE SETENTRY CONSTANTS |
* |
****************************************************************************) |
(**************************************************************************** |
* |
* DIRECTDRAWPALETTE GETENTRY CONSTANTS |
* |
****************************************************************************) |
(* 0 is the only legal value *) |
(**************************************************************************** |
* |
* DIRECTDRAWSURFACE SETPALETTE CONSTANTS |
* |
****************************************************************************) |
(* |
* The passed pointer is an IUnknown ptr. The cbData argument to SetPrivateData |
* must be set to sizeof(IUnknown^). DirectDraw will call AddRef through this |
* pointer and Release when the private data is destroyed. This includes when |
* the surface or palette is destroyed before such priovate data is destroyed. |
*) |
DDSPD_IUNKNOWNPOINTER = $00000001; |
(* |
* Private data is only valid for the current state of the object, |
* as determined by the uniqueness value. |
*) |
DDSPD_VOLATILE = $00000002; |
(**************************************************************************** |
* |
* DIRECTDRAWSURFACE SETPALETTE CONSTANTS |
* |
****************************************************************************) |
(**************************************************************************** |
* |
* DIRECTDRAW BITDEPTH CONSTANTS |
* |
* NOTE: These are only used to indicate supported bit depths. These |
* are flags only, they are not to be used as an actual bit depth. The |
* absolute numbers 1, 2, 4, 8, 16, 24 and 32 are used to indicate actual |
* bit depths in a surface or for changing the display mode. |
* |
****************************************************************************) |
(* |
* 1 bit per pixel. |
*) |
DDBD_1 = $00004000; |
(* |
* 2 bits per pixel. |
*) |
DDBD_2 = $00002000; |
(* |
* 4 bits per pixel. |
*) |
DDBD_4 = $00001000; |
(* |
* 8 bits per pixel. |
*) |
DDBD_8 = $00000800; |
(* |
* 16 bits per pixel. |
*) |
DDBD_16 = $00000400; |
(* |
* 24 bits per pixel. |
*) |
DDBD_24 = $00000200; |
(* |
* 32 bits per pixel. |
*) |
DDBD_32 = $00000100; |
{ DirectDraw Set/Get Color Key Flags } |
(**************************************************************************** |
* |
* DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS |
* |
****************************************************************************) |
(* |
* Set if the structure contains a color space. Not set if the structure |
* contains a single color key. |
*) |
DDCKEY_COLORSPACE = $00000001; |
(* |
* Set if the structure specifies a color key or color space which is to be |
* used as a destination color key for blt operations. |
*) |
DDCKEY_DESTBLT = $00000002; |
(* |
* Set if the structure specifies a color key or color space which is to be |
* used as a destination color key for overlay operations. |
*) |
DDCKEY_DESTOVERLAY = $00000004; |
(* |
* Set if the structure specifies a color key or color space which is to be |
* used as a source color key for blt operations. |
*) |
DDCKEY_SRCBLT = $00000008; |
(* |
* Set if the structure specifies a color key or color space which is to be |
* used as a source color key for overlay operations. |
*) |
DDCKEY_SRCOVERLAY = $00000010; |
{ DirectDraw Color Key Capability Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW COLOR KEY CAPABILITY FLAGS |
* |
****************************************************************************) |
(* |
* Supports transparent blting using a color key to identify the replaceable |
* bits of the destination surface for RGB colors. |
*) |
DDCKEYCAPS_DESTBLT = $00000001; |
(* |
* Supports transparent blting using a color space to identify the replaceable |
* bits of the destination surface for RGB colors. |
*) |
DDCKEYCAPS_DESTBLTCLRSPACE = $00000002; |
(* |
* Supports transparent blting using a color space to identify the replaceable |
* bits of the destination surface for YUV colors. |
*) |
DDCKEYCAPS_DESTBLTCLRSPACEYUV = $00000004; |
(* |
* Supports transparent blting using a color key to identify the replaceable |
* bits of the destination surface for YUV colors. |
*) |
DDCKEYCAPS_DESTBLTYUV = $00000008; |
(* |
* Supports overlaying using colorkeying of the replaceable bits of the surface |
* being overlayed for RGB colors. |
*) |
DDCKEYCAPS_DESTOVERLAY = $00000010; |
(* |
* Supports a color space as the color key for the destination for RGB colors. |
*) |
DDCKEYCAPS_DESTOVERLAYCLRSPACE = $00000020; |
(* |
* Supports a color space as the color key for the destination for YUV colors. |
*) |
DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV = $00000040; |
(* |
* Supports only one active destination color key value for visible overlay |
* surfaces. |
*) |
DDCKEYCAPS_DESTOVERLAYONEACTIVE = $00000080; |
(* |
* Supports overlaying using colorkeying of the replaceable bits of the |
* surface being overlayed for YUV colors. |
*) |
DDCKEYCAPS_DESTOVERLAYYUV = $00000100; |
(* |
* Supports transparent blting using the color key for the source with |
* this surface for RGB colors. |
*) |
DDCKEYCAPS_SRCBLT = $00000200; |
(* |
* Supports transparent blting using a color space for the source with |
* this surface for RGB colors. |
*) |
DDCKEYCAPS_SRCBLTCLRSPACE = $00000400; |
(* |
* Supports transparent blting using a color space for the source with |
* this surface for YUV colors. |
*) |
DDCKEYCAPS_SRCBLTCLRSPACEYUV = $00000800; |
(* |
* Supports transparent blting using the color key for the source with |
* this surface for YUV colors. |
*) |
DDCKEYCAPS_SRCBLTYUV = $00001000; |
(* |
* Supports overlays using the color key for the source with this |
* overlay surface for RGB colors. |
*) |
DDCKEYCAPS_SRCOVERLAY = $00002000; |
(* |
* Supports overlays using a color space as the source color key for |
* the overlay surface for RGB colors. |
*) |
DDCKEYCAPS_SRCOVERLAYCLRSPACE = $00004000; |
(* |
* Supports overlays using a color space as the source color key for |
* the overlay surface for YUV colors. |
*) |
DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV = $00008000; |
(* |
* Supports only one active source color key value for visible |
* overlay surfaces. |
*) |
DDCKEYCAPS_SRCOVERLAYONEACTIVE = $00010000; |
(* |
* Supports overlays using the color key for the source with this |
* overlay surface for YUV colors. |
*) |
DDCKEYCAPS_SRCOVERLAYYUV = $00020000; |
(* |
* there are no bandwidth trade-offs for using colorkey with an overlay |
*) |
DDCKEYCAPS_NOCOSTOVERLAY = $00040000; |
{ DirectDraw PixelFormat Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW PIXELFORMAT FLAGS |
* |
****************************************************************************) |
(* |
* The surface has alpha channel information in the pixel format. |
*) |
DDPF_ALPHAPIXELS = $00000001; |
(* |
* The pixel format contains alpha only information |
*) |
DDPF_ALPHA = $00000002; |
(* |
* The FourCC code is valid. |
*) |
DDPF_FOURCC = $00000004; |
(* |
* The surface is 4-bit color indexed. |
*) |
DDPF_PALETTEINDEXED4 = $00000008; |
(* |
* The surface is indexed into a palette which stores indices |
* into the destination surface's 8-bit palette. |
*) |
DDPF_PALETTEINDEXEDTO8 = $00000010; |
(* |
* The surface is 8-bit color indexed. |
*) |
DDPF_PALETTEINDEXED8 = $00000020; |
(* |
* The RGB data in the pixel format structure is valid. |
*) |
DDPF_RGB = $00000040; |
(* |
* The surface will accept pixel data in the format specified |
* and compress it during the write. |
*) |
DDPF_COMPRESSED = $00000080; |
(* |
* The surface will accept RGB data and translate it during |
* the write to YUV data. The format of the data to be written |
* will be contained in the pixel format structure. The DDPF_RGB |
* flag will be set. |
*) |
DDPF_RGBTOYUV = $00000100; |
(* |
* pixel format is YUV - YUV data in pixel format struct is valid |
*) |
DDPF_YUV = $00000200; |
(* |
* pixel format is a z buffer only surface |
*) |
DDPF_ZBUFFER = $00000400; |
(* |
* The surface is 1-bit color indexed. |
*) |
DDPF_PALETTEINDEXED1 = $00000800; |
(* |
* The surface is 2-bit color indexed. |
*) |
DDPF_PALETTEINDEXED2 = $00001000; |
(* |
* The surface contains Z information in the pixels |
*) |
DDPF_ZPIXELS = $00002000; |
(* |
* The surface contains stencil information along with Z |
*) |
DDPF_STENCILBUFFER = $00004000; |
(* |
* Premultiplied alpha format -- the color components have been |
* premultiplied by the alpha component. |
*) |
DDPF_ALPHAPREMULT = $00008000; |
(* |
* Luminance data in the pixel format is valid. |
* Use this flag for luminance-only or luminance+alpha surfaces, |
* the bit depth is then ddpf.dwLuminanceBitCount. |
*) |
DDPF_LUMINANCE = $00020000; |
(* |
* Luminance data in the pixel format is valid. |
* Use this flag when hanging luminance off bumpmap surfaces, |
* the bit mask for the luminance portion of the pixel is then |
* ddpf.dwBumpLuminanceBitMask |
*) |
DDPF_BUMPLUMINANCE = $00040000; |
(* |
* Bump map dUdV data in the pixel format is valid. |
*) |
DDPF_BUMPDUDV = $00080000; |
{ DirectDraw SetDisplayMode Flags } |
(*=========================================================================== |
* |
* |
* DIRECTDRAW CALLBACK FLAGS |
* |
* |
*==========================================================================*) |
(**************************************************************************** |
* |
* DIRECTDRAW ENUMSURFACES FLAGS |
* |
****************************************************************************) |
(* |
* Enumerate all of the surfaces that meet the search criterion. |
*) |
DDENUMSURFACES_ALL = $00000001; |
(* |
* A search hit is a surface that matches the surface description. |
*) |
DDENUMSURFACES_MATCH = $00000002; |
(* |
* A search hit is a surface that does not match the surface description. |
*) |
DDENUMSURFACES_NOMATCH = $00000004; |
(* |
* Enumerate the first surface that can be created which meets the search criterion. |
*) |
DDENUMSURFACES_CANBECREATED = $00000008; |
(* |
* Enumerate the surfaces that already exist that meet the search criterion. |
*) |
DDENUMSURFACES_DOESEXIST = $00000010; |
(**************************************************************************** |
* |
* DIRECTDRAW SETDISPLAYMODE FLAGS |
* |
****************************************************************************) |
(* |
* The desired mode is a standard VGA mode |
*) |
DDSDM_STANDARDVGAMODE = $00000001; |
{ DirectDraw EnumDisplayModes Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW ENUMDISPLAYMODES FLAGS |
* |
****************************************************************************) |
(* |
* Enumerate Modes with different refresh rates. EnumDisplayModes guarantees |
* that a particular mode will be enumerated only once. This flag specifies whether |
* the refresh rate is taken into account when determining if a mode is unique. |
*) |
DDEDM_REFRESHRATES = $00000001; |
(* |
* Enumerate VGA modes. Specify this flag if you wish to enumerate supported VGA |
* modes such as mode 0x13 in addition to the usual ModeX modes (which are always |
* enumerated if the application has previously called SetCooperativeLevel with the |
* DDSCL_ALLOWMODEX flag set). |
*) |
DDEDM_STANDARDVGAMODES = $00000002; |
{ DirectDraw EnumSurfaces Flags } |
DDENUMSURFACES_ALL = $00000001; |
DDENUMSURFACES_MATCH = $00000002; |
DDENUMSURFACES_NOMATCH = $00000004; |
DDENUMSURFACES_CANBECREATED = $00000008; |
DDENUMSURFACES_DOESEXIST = $00000010; |
(**************************************************************************** |
* |
* DIRECTDRAW SETCOOPERATIVELEVEL FLAGS |
* |
****************************************************************************) |
{ DirectDraw SetCooperativeLevel Flags } |
(* |
* Exclusive mode owner will be responsible for the entire primary surface. |
* GDI can be ignored. used with DD |
*) |
DDSCL_FULLSCREEN = $00000001; |
DDSCL_FULLSCREEN = $00000001; |
(* |
* allow CTRL_ALT_DEL to work while in fullscreen exclusive mode |
*) |
DDSCL_ALLOWREBOOT = $00000002; |
(* |
* prevents DDRAW from modifying the application window. |
* prevents DDRAW from minimize/restore the application window on activation. |
*) |
DDSCL_NOWINDOWCHANGES = $00000004; |
(* |
* app wants to work as a regular Windows application |
*) |
DDSCL_NORMAL = $00000008; |
(* |
* app wants exclusive access |
*) |
DDSCL_EXCLUSIVE = $00000010; |
(* |
* app can deal with non-windows display modes |
*) |
DDSCL_ALLOWMODEX = $00000040; |
(* |
* this window will receive the focus messages |
*) |
DDSCL_SETFOCUSWINDOW = $00000080; |
(* |
* this window is associated with the DDRAW object and will |
* cover the screen in fullscreen mode |
*) |
DDSCL_SETDEVICEWINDOW = $00000100; |
(* |
* app wants DDRAW to create a window to be associated with the |
* DDRAW object |
*) |
DDSCL_CREATEDEVICEWINDOW = $00000200; |
(* |
* App explicitly asks DDRAW/D3D to be multithread safe. This makes D3D |
* take the global crtisec more frequently. |
*) |
DDSCL_MULTITHREADED = $00000400; |
(* |
* App hints that it would like to keep the FPU set up for optimal Direct3D |
* performance (single precision and exceptions disabled) so Direct3D |
* does not need to explicitly set the FPU each time |
*) |
DDSCL_FPUSETUP = $00000800; |
(* |
* App specifies that it needs either double precision FPU or FPU exceptions |
* enabled. This makes Direct3D explicitly set the FPU state eah time it is |
* called. Setting the flag will reduce Direct3D performance. The flag is |
* assumed by default in DirectX 6 and earlier. See also DDSCL_FPUSETUP |
*) |
DDSCL_FPUPRESERVE = $00001000; |
{ DirectDraw Blt Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW BLT FLAGS |
* |
****************************************************************************) |
(* |
* Use the alpha information in the pixel format or the alpha channel surface |
* attached to the destination surface as the alpha channel for this blt. |
*) |
DDBLT_ALPHADEST = $00000001; |
(* |
* Use the dwConstAlphaDest field in the TDDBltFX structure as the alpha channel |
* for the destination surface for this blt. |
*) |
DDBLT_ALPHADESTCONSTOVERRIDE = $00000002; |
(* |
* The NEG suffix indicates that the destination surface becomes more |
* transparent as the alpha value increases. (0 is opaque) |
*) |
DDBLT_ALPHADESTNEG = $00000004; |
(* |
* Use the lpDDSAlphaDest field in the TDDBltFX structure as the alpha |
* channel for the destination for this blt. |
*) |
DDBLT_ALPHADESTSURFACEOVERRIDE = $00000008; |
(* |
* Use the dwAlphaEdgeBlend field in the TDDBltFX structure as the alpha channel |
* for the edges of the image that border the color key colors. |
*) |
DDBLT_ALPHAEDGEBLEND = $00000010; |
(* |
* Use the alpha information in the pixel format or the alpha channel surface |
* attached to the source surface as the alpha channel for this blt. |
*) |
DDBLT_ALPHASRC = $00000020; |
(* |
* Use the dwConstAlphaSrc field in the TDDBltFX structure as the alpha channel |
* for the source for this blt. |
*) |
DDBLT_ALPHASRCCONSTOVERRIDE = $00000040; |
(* |
* The NEG suffix indicates that the source surface becomes more transparent |
* as the alpha value increases. (0 is opaque) |
*) |
DDBLT_ALPHASRCNEG = $00000080; |
(* |
* Use the lpDDSAlphaSrc field in the TDDBltFX structure as the alpha channel |
* for the source for this blt. |
*) |
DDBLT_ALPHASRCSURFACEOVERRIDE = $00000100; |
(* |
* Do this blt asynchronously through the FIFO in the order received. If |
* there is no room in the hardware FIFO fail the call. |
*) |
DDBLT_ASYNC = $00000200; |
(* |
* Uses the dwFillColor field in the TDDBltFX structure as the RGB color |
* to fill the destination rectangle on the destination surface with. |
*) |
DDBLT_COLORFILL = $00000400; |
(* |
* Uses the dwDDFX field in the TDDBltFX structure to specify the effects |
* to use for the blt. |
*) |
DDBLT_DDFX = $00000800; |
(* |
* Uses the dwDDROPS field in the TDDBltFX structure to specify the ROPS |
* that are not part of the Win32 API. |
*) |
DDBLT_DDROPS = $00001000; |
(* |
* Use the color key associated with the destination surface. |
*) |
DDBLT_KEYDEST = $00002000; |
(* |
* Use the dckDestColorkey field in the TDDBltFX structure as the color key |
* for the destination surface. |
*) |
DDBLT_KEYDESTOVERRIDE = $00004000; |
(* |
* Use the color key associated with the source surface. |
*) |
DDBLT_KEYSRC = $00008000; |
(* |
* Use the dckSrcColorkey field in the TDDBltFX structure as the color key |
* for the source surface. |
*) |
DDBLT_KEYSRCOVERRIDE = $00010000; |
(* |
* Use the dwROP field in the TDDBltFX structure for the raster operation |
* for this blt. These ROPs are the same as the ones defined in the Win32 API. |
*) |
DDBLT_ROP = $00020000; |
(* |
* Use the dwRotationAngle field in the TDDBltFX structure as the angle |
* (specified in 1/100th of a degree) to rotate the surface. |
*) |
DDBLT_ROTATIONANGLE = $00040000; |
(* |
* Z-buffered blt using the z-buffers attached to the source and destination |
* surfaces and the dwZBufferOpCode field in the TDDBltFX structure as the |
* z-buffer opcode. |
*) |
DDBLT_ZBUFFER = $00080000; |
(* |
* Z-buffered blt using the dwConstDest Zfield and the dwZBufferOpCode field |
* in the TDDBltFX structure as the z-buffer and z-buffer opcode respectively |
* for the destination. |
*) |
DDBLT_ZBUFFERDESTCONSTOVERRIDE = $00100000; |
(* |
* Z-buffered blt using the lpDDSDestZBuffer field and the dwZBufferOpCode |
* field in the TDDBltFX structure as the z-buffer and z-buffer opcode |
* respectively for the destination. |
*) |
DDBLT_ZBUFFERDESTOVERRIDE = $00200000; |
(* |
* Z-buffered blt using the dwConstSrcZ field and the dwZBufferOpCode field |
* in the TDDBltFX structure as the z-buffer and z-buffer opcode respectively |
* for the source. |
*) |
DDBLT_ZBUFFERSRCCONSTOVERRIDE = $00400000; |
(* |
* Z-buffered blt using the lpDDSSrcZBuffer field and the dwZBufferOpCode |
* field in the TDDBltFX structure as the z-buffer and z-buffer opcode |
* respectively for the source. |
*) |
DDBLT_ZBUFFERSRCOVERRIDE = $00800000; |
(* |
* wait until the device is ready to handle the blt |
* this will cause blt to not return DDERR_WASSTILLDRAWING |
*) |
DDBLT_WAIT = $01000000; |
(* |
* Uses the dwFillDepth field in the TDDBltFX structure as the depth value |
* to fill the destination rectangle on the destination Z-buffer surface |
* with. |
*) |
DDBLT_DEPTHFILL = $02000000; |
(* |
* wait until the device is ready to handle the blt |
* this will cause blt to not return DDERR_WASSTILLDRAWING |
*) |
DDBLT_DONOTWAIT = $08000000; |
{ BltFast Flags } |
(**************************************************************************** |
* |
* BLTFAST FLAGS |
* |
****************************************************************************) |
DDBLTFAST_NOCOLORKEY = $00000000; |
DDBLTFAST_SRCCOLORKEY = $00000001; |
1843,310 → 3484,1387 |
DDBLTFAST_WAIT = $00000010; |
DDBLTFAST_DONOTWAIT = $00000020; |
{ Flip Flags } |
(**************************************************************************** |
* |
* FLIP FLAGS |
* |
****************************************************************************) |
DDFLIP_WAIT = $00000001; |
(* |
* Indicates that the target surface contains the even field of video data. |
* This flag is only valid with an overlay surface. |
*) |
DDFLIP_EVEN = $00000002; |
(* |
* Indicates that the target surface contains the odd field of video data. |
* This flag is only valid with an overlay surface. |
*) |
DDFLIP_ODD = $00000004; |
(* |
* Causes DirectDraw to perform the physical flip immediately and return |
* to the application. Typically, what was the front buffer but is now the back |
* buffer will still be visible (depending on timing) until the next vertical |
* retrace. Subsequent operations involving the two flipped surfaces will |
* not check to see if the physical flip has finished (i.e. will not return |
* DDERR_WASSTILLDRAWING for that reason (but may for other reasons)). |
* This allows an application to perform Flips at a higher frequency than the |
* monitor refresh rate, but may introduce visible artifacts. |
* Only effective if DDCAPS2_FLIPNOVSYNC is set. If that bit is not set, |
* DDFLIP_NOVSYNC has no effect. |
*) |
DDFLIP_NOVSYNC = $00000008; |
(* |
* Flip Interval Flags. These flags indicate how many vertical retraces to wait between |
* each flip. The default is one. DirectDraw will return DDERR_WASSTILLDRAWING for each |
* surface involved in the flip until the specified number of vertical retraces has |
* ocurred. Only effective if DDCAPS2_FLIPINTERVAL is set. If that bit is not set, |
* DDFLIP_INTERVALn has no effect. |
*) |
(* |
* DirectDraw will flip on every other vertical sync |
*) |
DDFLIP_INTERVAL2 = $02000000; |
(* |
* DirectDraw will flip on every third vertical sync |
*) |
DDFLIP_INTERVAL3 = $03000000; |
(* |
* DirectDraw will flip on every fourth vertical sync |
*) |
DDFLIP_INTERVAL4 = $04000000; |
(* |
* DirectDraw will flip and display a main stereo surface |
*) |
DDFLIP_STEREO = $00000010; |
(* |
* On IDirectDrawSurface7 and higher interfaces, the default is DDFLIP_WAIT. If you wish |
* to override the default and use time when the accelerator is busy (as denoted by |
* the DDERR_WASSTILLDRAWING return code) then use DDFLIP_DONOTWAIT. |
*) |
DDFLIP_DONOTWAIT = $00000020; |
{ DirectDraw Surface Overlay Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW SURFACE OVERLAY FLAGS |
* |
****************************************************************************) |
(* |
* Use the alpha information in the pixel format or the alpha channel surface |
* attached to the destination surface as the alpha channel for the |
* destination overlay. |
*) |
DDOVER_ALPHADEST = $00000001; |
(* |
* Use the dwConstAlphaDest field in the TDDOverlayFX structure as the |
* destination alpha channel for this overlay. |
*) |
DDOVER_ALPHADESTCONSTOVERRIDE = $00000002; |
(* |
* The NEG suffix indicates that the destination surface becomes more |
* transparent as the alpha value increases. |
*) |
DDOVER_ALPHADESTNEG = $00000004; |
(* |
* Use the lpDDSAlphaDest field in the TDDOverlayFX structure as the alpha |
* channel destination for this overlay. |
*) |
DDOVER_ALPHADESTSURFACEOVERRIDE = $00000008; |
(* |
* Use the dwAlphaEdgeBlend field in the TDDOverlayFX structure as the alpha |
* channel for the edges of the image that border the color key colors. |
*) |
DDOVER_ALPHAEDGEBLEND = $00000010; |
(* |
* Use the alpha information in the pixel format or the alpha channel surface |
* attached to the source surface as the source alpha channel for this overlay. |
*) |
DDOVER_ALPHASRC = $00000020; |
(* |
* Use the dwConstAlphaSrc field in the TDDOverlayFX structure as the source |
* alpha channel for this overlay. |
*) |
DDOVER_ALPHASRCCONSTOVERRIDE = $00000040; |
(* |
* The NEG suffix indicates that the source surface becomes more transparent |
* as the alpha value increases. |
*) |
DDOVER_ALPHASRCNEG = $00000080; |
(* |
* Use the lpDDSAlphaSrc field in the TDDOverlayFX structure as the alpha channel |
* source for this overlay. |
*) |
DDOVER_ALPHASRCSURFACEOVERRIDE = $00000100; |
(* |
* Turn this overlay off. |
*) |
DDOVER_HIDE = $00000200; |
(* |
* Use the color key associated with the destination surface. |
*) |
DDOVER_KEYDEST = $00000400; |
(* |
* Use the dckDestColorkey field in the TDDOverlayFX structure as the color key |
* for the destination surface |
*) |
DDOVER_KEYDESTOVERRIDE = $00000800; |
(* |
* Use the color key associated with the source surface. |
*) |
DDOVER_KEYSRC = $00001000; |
(* |
* Use the dckSrcColorkey field in the TDDOverlayFX structure as the color key |
* for the source surface. |
*) |
DDOVER_KEYSRCOVERRIDE = $00002000; |
(* |
* Turn this overlay on. |
*) |
DDOVER_SHOW = $00004000; |
(* |
* Add a dirty rect to an emulated overlayed surface. |
*) |
DDOVER_ADDDIRTYRECT = $00008000; |
(* |
* Redraw all dirty rects on an emulated overlayed surface. |
*) |
DDOVER_REFRESHDIRTYRECTS = $00010000; |
(* |
* Redraw the entire surface on an emulated overlayed surface. |
*) |
DDOVER_REFRESHALL = $00020000; |
(* |
* Use the overlay FX flags to define special overlay FX |
*) |
DDOVER_DDFX = $00080000; |
(* |
* Autoflip the overlay when ever the video port autoflips |
*) |
DDOVER_AUTOFLIP = $00100000; |
(* |
* Display each field of video port data individually without |
* causing any jittery artifacts |
*) |
DDOVER_BOB = $00200000; |
(* |
* Indicates that bob/weave decisions should not be overridden by other |
* interfaces. |
*) |
DDOVER_OVERRIDEBOBWEAVE = $00400000; |
(* |
* Indicates that the surface memory is composed of interleaved fields. |
*) |
DDOVER_INTERLEAVED = $00800000; |
(* |
* Indicates that bob will be performed using hardware rather than |
* software or emulated. |
*) |
DDOVER_BOBHARDWARE = $01000000; |
(* |
* Indicates that overlay FX structure contains valid ARGB scaling factors. |
*) |
DDOVER_ARGBSCALEFACTORS = $02000000; |
(* |
* Indicates that ARGB scaling factors can be degraded to fit driver capabilities. |
*) |
DDOVER_DEGRADEARGBSCALING = $04000000; |
{ DirectDrawSurface Lock Flags } |
(**************************************************************************** |
* |
* DIRECTDRAWSURFACE LOCK FLAGS |
* |
****************************************************************************) |
DDLOCK_SURFACEMEMORYPTR = $00000000; // default |
(* |
* The default. Set to indicate that Lock should return a valid memory pointer |
* to the top of the specified rectangle. If no rectangle is specified then a |
* pointer to the top of the surface is returned. |
*) |
DDLOCK_SURFACEMEMORYPTR = $00000000; // = default |
(* |
* Set to indicate that Lock should wait until it can obtain a valid memory |
* pointer before returning. If this bit is set, Lock will never return |
* DDERR_WASSTILLDRAWING. |
*) |
DDLOCK_WAIT = $00000001; |
(* |
* Set if an event handle is being passed to Lock. Lock will trigger the event |
* when it can return the surface memory pointer requested. |
*) |
DDLOCK_EVENT = $00000002; |
(* |
* Indicates that the surface being locked will only be read from. |
*) |
DDLOCK_READONLY = $00000010; |
(* |
* Indicates that the surface being locked will only be written to |
*) |
DDLOCK_WRITEONLY = $00000020; |
(* |
* Indicates that a system wide lock should not be taken when this surface |
* is locked. This has several advantages (cursor responsiveness, ability |
* to call more Windows functions, easier debugging) when locking video |
* memory surfaces. However, an application specifying this flag must |
* comply with a number of conditions documented in the help file. |
* Furthermore, this flag cannot be specified when locking the primary. |
*) |
DDLOCK_NOSYSLOCK = $00000800; |
(* |
* Used only with Direct3D Vertex Buffer Locks. Indicates that no vertices |
* that were referred to in Draw*PrimtiveVB calls since the start of the |
* frame (or the last lock without this flag) will be modified during the |
* lock. This can be useful when one is only appending data to the vertex |
* buffer |
*) |
DDLOCK_NOOVERWRITE = $00001000; |
(* |
* Indicates that no assumptions will be made about the contents of the |
* surface or vertex buffer during this lock. |
* This enables two things: |
* - Direct3D or the driver may provide an alternative memory |
* area as the vertex buffer. This is useful when one plans to clear the |
* contents of the vertex buffer and fill in new data. |
* - Drivers sometimes store surface data in a re-ordered format. |
* When the application locks the surface, the driver is forced to un-re-order |
* the surface data before allowing the application to see the surface contents. |
* This flag is a hint to the driver that it can skip the un-re-ordering process |
* since the application plans to overwrite every single pixel in the surface |
* or locked rectangle (and so erase any un-re-ordered pixels anyway). |
* Applications should always set this flag when they intend to overwrite the entire |
* surface or locked rectangle. |
*) |
DDLOCK_DISCARDCONTENTS = $00002000; |
(* |
* DDLOCK_OKTOSWAP is an older, less informative name for DDLOCK_DISCARDCONTENTS |
*) |
DDLOCK_OKTOSWAP = $00002000; |
(* |
* On IDirectDrawSurface7 and higher interfaces, the default is DDLOCK_WAIT. If you wish |
* to override the default and use time when the accelerator is busy (as denoted by |
* the DDERR_WASSTILLDRAWING return code) then use DDLOCK_DONOTWAIT. |
*) |
DDLOCK_DONOTWAIT = $00004000; |
{ DirectDrawSurface Blt FX Flags } |
(**************************************************************************** |
* |
* DIRECTDRAWSURFACE PAGELOCK FLAGS |
* |
****************************************************************************) |
(* |
* No flags defined at present |
*) |
(**************************************************************************** |
* |
* DIRECTDRAWSURFACE PAGEUNLOCK FLAGS |
* |
****************************************************************************) |
(* |
* No flags defined at present |
*) |
(**************************************************************************** |
* |
* DIRECTDRAWSURFACE BLT FX FLAGS |
* |
****************************************************************************) |
(* |
* If stretching, use arithmetic stretching along the Y axis for this blt. |
*) |
DDBLTFX_ARITHSTRETCHY = $00000001; |
(* |
* Do this blt mirroring the surface left to right. Spin the |
* surface around its y-axis. |
*) |
DDBLTFX_MIRRORLEFTRIGHT = $00000002; |
(* |
* Do this blt mirroring the surface up and down. Spin the surface |
* around its x-axis. |
*) |
DDBLTFX_MIRRORUPDOWN = $00000004; |
(* |
* Schedule this blt to avoid tearing. |
*) |
DDBLTFX_NOTEARING = $00000008; |
(* |
* Do this blt rotating the surface one hundred and eighty degrees. |
*) |
DDBLTFX_ROTATE180 = $00000010; |
(* |
* Do this blt rotating the surface two hundred and seventy degrees. |
*) |
DDBLTFX_ROTATE270 = $00000020; |
(* |
* Do this blt rotating the surface ninety degrees. |
*) |
DDBLTFX_ROTATE90 = $00000040; |
(* |
* Do this z blt using dwZBufferLow and dwZBufferHigh as range values |
* specified to limit the bits copied from the source surface. |
*) |
DDBLTFX_ZBUFFERRANGE = $00000080; |
(* |
* Do this z blt adding the dwZBufferBaseDest to each of the sources z values |
* before comparing it with the desting z values. |
*) |
DDBLTFX_ZBUFFERBASEDEST = $00000100; |
{ DirectDrawSurface Overlay FX Flags } |
(**************************************************************************** |
* |
* DIRECTDRAWSURFACE OVERLAY FX FLAGS |
* |
****************************************************************************) |
(* |
* If stretching, use arithmetic stretching along the Y axis for this overlay. |
*) |
DDOVERFX_ARITHSTRETCHY = $00000001; |
(* |
* Mirror the overlay across the vertical axis |
*) |
DDOVERFX_MIRRORLEFTRIGHT = $00000002; |
(* |
* Mirror the overlay across the horizontal axis |
*) |
DDOVERFX_MIRRORUPDOWN = $00000004; |
{ Flags for dwDDFX member of DDSPRITEFX structure } |
(**************************************************************************** |
* |
* Flags for dwDDFX member of DDSPRITEFX structure |
* |
****************************************************************************) |
(* |
* Use affine transformation matrix in fTransform member. |
*) |
DDSPRITEFX_AFFINETRANSFORM = $00000001; |
DDSPRITEFX_AFFINETRANSFORM = $00000001; |
(* |
* Use RGBA scaling factors in ddrgbaScaleFactors member. |
*) |
DDSPRITEFX_RGBASCALING = $00000002; |
(* |
* Degrade RGBA scaling factors to accommodate driver's capabilities. |
*) |
DDSPRITEFX_DEGRADERGBASCALING = $00000004; |
(* |
* Do bilinear filtering of stretched or warped sprite. |
*) |
DDSPRITEFX_BILINEARFILTER = $00000008; |
(* |
* Do "blur" filtering of stretched or warped sprite. |
*) |
DDSPRITEFX_BLURFILTER = $00000010; |
(* |
* Do "flat" filtering of stretched or warped sprite. |
*) |
DDSPRITEFX_FLATFILTER = $00000020; |
(* |
* Degrade filtering operation to accommodate driver's capabilities. |
*) |
DDSPRITEFX_DEGRADEFILTER = $00000040; |
{ DirectDraw WaitForVerticalBlank Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW WAITFORVERTICALBLANK FLAGS |
* |
****************************************************************************) |
(* |
* return when the vertical blank interval begins |
*) |
DDWAITVB_BLOCKBEGIN = $00000001; |
(* |
* set up an event to trigger when the vertical blank begins |
*) |
DDWAITVB_BLOCKBEGINEVENT = $00000002; |
(* |
* return when the vertical blank interval ends and display begins |
*) |
DDWAITVB_BLOCKEND = $00000004; |
{ DirectDraw GetFlipStatus Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW GETFLIPSTATUS FLAGS |
* |
****************************************************************************) |
(* |
* is it OK to flip now? |
*) |
DDGFS_CANFLIP = $00000001; |
(* |
* is the last flip finished? |
*) |
DDGFS_ISFLIPDONE = $00000002; |
{ DirectDraw GetBltStatus Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW GETBLTSTATUS FLAGS |
* |
****************************************************************************) |
(* |
* is it OK to blt now? |
*) |
DDGBS_CANBLT = $00000001; |
(* |
* is the blt to the surface finished? |
*) |
DDGBS_ISBLTDONE = $00000002; |
{ DirectDraw EnumOverlayZOrder Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW ENUMOVERLAYZORDER FLAGS |
* |
****************************************************************************) |
(* |
* Enumerate overlays back to front. |
*) |
DDENUMOVERLAYZ_BACKTOFRONT = $00000000; |
(* |
* Enumerate overlays front to back |
*) |
DDENUMOVERLAYZ_FRONTTOBACK = $00000001; |
{ DirectDraw UpdateOverlayZOrder Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW UPDATEOVERLAYZORDER FLAGS |
* |
****************************************************************************) |
(* |
* Send overlay to front |
*) |
DDOVERZ_SENDTOFRONT = $00000000; |
(* |
* Send overlay to back |
*) |
DDOVERZ_SENDTOBACK = $00000001; |
(* |
* Move Overlay forward |
*) |
DDOVERZ_MOVEFORWARD = $00000002; |
(* |
* Move Overlay backward |
*) |
DDOVERZ_MOVEBACKWARD = $00000003; |
(* |
* Move Overlay in front of relative surface |
*) |
DDOVERZ_INSERTINFRONTOF = $00000004; |
(* |
* Move Overlay in back of relative surface |
*) |
DDOVERZ_INSERTINBACKOF = $00000005; |
{ DirectDrawSurface SetPrivateData Constants } |
(**************************************************************************** |
* |
* DIRECTDRAW SETGAMMARAMP FLAGS |
* |
****************************************************************************) |
DDSPD_IUNKNOWNPOINTER = $00000001; |
DDSPD_VOLATILE = $00000002; |
{ TDDColorControl flags } |
DDCOLOR_BRIGHTNESS = $00000001; |
DDCOLOR_CONTRAST = $00000002; |
DDCOLOR_HUE = $00000004; |
DDCOLOR_SATURATION = $00000008; |
DDCOLOR_SHARPNESS = $00000010; |
DDCOLOR_GAMMA = $00000020; |
DDCOLOR_COLORENABLE = $00000040; |
{ DirectDraw SetGammaRamp Flags } |
(* |
* Request calibrator to adjust the gamma ramp according to the physical |
* properties of the display so that the result should appear identical |
* on all systems. |
*) |
DDSGR_CALIBRATE = $00000001; |
{ DirectDraw StartModeTest Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW STARTMODETEST FLAGS |
* |
****************************************************************************) |
(* |
* Indicates that the mode being tested has passed |
*) |
DDSMT_ISTESTREQUIRED = $00000001; |
{ DirectDraw EvaluateMode Flags } |
(**************************************************************************** |
* |
* DIRECTDRAW EVALUATEMODE FLAGS |
* |
****************************************************************************) |
(* |
* Indicates that the mode being tested has passed |
*) |
DDEM_MODEPASSED = $00000001; |
(* |
* Indicates that the mode being tested has failed |
*) |
DDEM_MODEFAILED = $00000002; |
{ DirectDraw Return Codes } |
(*=========================================================================== |
* |
* |
* DIRECTDRAW RETURN CODES |
* |
* The return values from DirectDraw Commands and Surface that return an HResult |
* are codes from DirectDraw concerning the results of the action |
* requested by DirectDraw. |
* |
*==========================================================================*) |
DD_OK = HResult(0); |
DD_FALSE = HResult(S_FALSE); |
(* |
* Status is OK |
* |
* Issued by: DirectDraw Commands and all callbacks |
*) |
DD_OK = 0; |
DD_FALSE = S_FALSE; |
{ DirectDraw EnumCallback Return Values } |
(**************************************************************************** |
* |
* DIRECTDRAW ENUMCALLBACK RETURN VALUES |
* |
* EnumCallback returns are used to control the flow of the DIRECTDRAW and |
* DIRECTDRAWSURFACE object enumerations. They can only be returned by |
* enumeration callback routines. |
* |
****************************************************************************) |
(* |
* stop the enumeration |
*) |
DDENUMRET_CANCEL = 0; |
(* |
* continue the enumeration |
*) |
DDENUMRET_OK = 1; |
{ DirectDraw Error Codes } |
(**************************************************************************** |
* |
* DIRECTDRAW ERRORS |
* |
* Errors are represented by negative values and cannot be combined. |
* |
****************************************************************************) |
DDERR_ALREADYINITIALIZED = HResult($88760000 + 5); |
DDERR_CANNOTATTACHSURFACE = HResult($88760000 + 10); |
DDERR_CANNOTDETACHSURFACE = HResult($88760000 + 20); |
DDERR_CURRENTLYNOTAVAIL = HResult($88760000 + 40); |
DDERR_EXCEPTION = HResult($88760000 + 55); |
DDERR_GENERIC = HResult(E_FAIL); |
DDERR_HEIGHTALIGN = HResult($88760000 + 90); |
DDERR_INCOMPATIBLEPRIMARY = HResult($88760000 + 95); |
DDERR_INVALIDCAPS = HResult($88760000 + 100); |
DDERR_INVALIDCLIPLIST = HResult($88760000 + 110); |
DDERR_INVALIDMODE = HResult($88760000 + 120); |
DDERR_INVALIDOBJECT = HResult($88760000 + 130); |
DDERR_INVALIDPARAMS = HResult(E_INVALIDARG); |
DDERR_INVALIDPIXELFORMAT = HResult($88760000 + 145); |
DDERR_INVALIDRECT = HResult($88760000 + 150); |
DDERR_LOCKEDSURFACES = HResult($88760000 + 160); |
DDERR_NO3D = HResult($88760000 + 170); |
DDERR_NOALPHAHW = HResult($88760000 + 180); |
DDERR_NOSTEREOHARDWARE = HResult($88760000 + 181); |
DDERR_NOSURFACELEFT = HResult($88760000 + 182); |
DDERR_NOCLIPLIST = HResult($88760000 + 205); |
DDERR_NOCOLORCONVHW = HResult($88760000 + 210); |
DDERR_NOCOOPERATIVELEVELSET = HResult($88760000 + 212); |
DDERR_NOCOLORKEY = HResult($88760000 + 215); |
DDERR_NOCOLORKEYHW = HResult($88760000 + 220); |
DDERR_NODIRECTDRAWSUPPORT = HResult($88760000 + 222); |
DDERR_NOEXCLUSIVEMODE = HResult($88760000 + 225); |
DDERR_NOFLIPHW = HResult($88760000 + 230); |
DDERR_NOGDI = HResult($88760000 + 240); |
DDERR_NOMIRRORHW = HResult($88760000 + 250); |
DDERR_NOTFOUND = HResult($88760000 + 255); |
DDERR_NOOVERLAYHW = HResult($88760000 + 260); |
DDERR_OVERLAPPINGRECTS = HResult($88760000 + 270); |
DDERR_NORASTEROPHW = HResult($88760000 + 280); |
DDERR_NOROTATIONHW = HResult($88760000 + 290); |
DDERR_NOSTRETCHHW = HResult($88760000 + 310); |
DDERR_NOT4BITCOLOR = HResult($88760000 + 316); |
DDERR_NOT4BITCOLORINDEX = HResult($88760000 + 317); |
DDERR_NOT8BITCOLOR = HResult($88760000 + 320); |
DDERR_NOTEXTUREHW = HResult($88760000 + 330); |
DDERR_NOVSYNCHW = HResult($88760000 + 335); |
DDERR_NOZBUFFERHW = HResult($88760000 + 340); |
DDERR_NOZOVERLAYHW = HResult($88760000 + 350); |
DDERR_OUTOFCAPS = HResult($88760000 + 360); |
DDERR_OUTOFMEMORY = HResult(E_OUTOFMEMORY); |
DDERR_OUTOFVIDEOMEMORY = HResult($88760000 + 380); |
DDERR_OVERLAYCANTCLIP = HResult($88760000 + 382); |
DDERR_OVERLAYCOLORKEYONLYONEACTIVE = HResult($88760000 + 384); |
DDERR_PALETTEBUSY = HResult($88760000 + 387); |
DDERR_COLORKEYNOTSET = HResult($88760000 + 400); |
DDERR_SURFACEALREADYATTACHED = HResult($88760000 + 410); |
DDERR_SURFACEALREADYDEPENDENT = HResult($88760000 + 420); |
DDERR_SURFACEBUSY = HResult($88760000 + 430); |
DDERR_CANTLOCKSURFACE = HResult($88760000 + 435); |
DDERR_SURFACEISOBSCURED = HResult($88760000 + 440); |
DDERR_SURFACELOST = HResult($88760000 + 450); |
DDERR_SURFACENOTATTACHED = HResult($88760000 + 460); |
DDERR_TOOBIGHEIGHT = HResult($88760000 + 470); |
DDERR_TOOBIGSIZE = HResult($88760000 + 480); |
DDERR_TOOBIGWIDTH = HResult($88760000 + 490); |
DDERR_UNSUPPORTED = HResult(E_NOTIMPL); |
DDERR_UNSUPPORTEDFORMAT = HResult($88760000 + 510); |
DDERR_UNSUPPORTEDMASK = HResult($88760000 + 520); |
DDERR_INVALIDSTREAM = HResult($88760000 + 521); |
DDERR_VERTICALBLANKINPROGRESS = HResult($88760000 + 537); |
DDERR_WASSTILLDRAWING = HResult($88760000 + 540); |
DDERR_DDSCAPSCOMPLEXREQUIRED = HResult($88760000 + 542); |
DDERR_XALIGN = HResult($88760000 + 560); |
DDERR_INVALIDDIRECTDRAWGUID = HResult($88760000 + 561); |
DDERR_DIRECTDRAWALREADYCREATED = HResult($88760000 + 562); |
DDERR_NODIRECTDRAWHW = HResult($88760000 + 563); |
DDERR_PRIMARYSURFACEALREADYEXISTS = HResult($88760000 + 564); |
DDERR_NOEMULATION = HResult($88760000 + 565); |
DDERR_REGIONTOOSMALL = HResult($88760000 + 566); |
DDERR_CLIPPERISUSINGHWND = HResult($88760000 + 567); |
DDERR_NOCLIPPERATTACHED = HResult($88760000 + 568); |
DDERR_NOHWND = HResult($88760000 + 569); |
DDERR_HWNDSUBCLASSED = HResult($88760000 + 570); |
DDERR_HWNDALREADYSET = HResult($88760000 + 571); |
DDERR_NOPALETTEATTACHED = HResult($88760000 + 572); |
DDERR_NOPALETTEHW = HResult($88760000 + 573); |
DDERR_BLTFASTCANTCLIP = HResult($88760000 + 574); |
DDERR_NOBLTHW = HResult($88760000 + 575); |
DDERR_NODDROPSHW = HResult($88760000 + 576); |
DDERR_OVERLAYNOTVISIBLE = HResult($88760000 + 577); |
DDERR_NOOVERLAYDEST = HResult($88760000 + 578); |
DDERR_INVALIDPOSITION = HResult($88760000 + 579); |
DDERR_NOTAOVERLAYSURFACE = HResult($88760000 + 580); |
DDERR_EXCLUSIVEMODEALREADYSET = HResult($88760000 + 581); |
DDERR_NOTFLIPPABLE = HResult($88760000 + 582); |
DDERR_CANTDUPLICATE = HResult($88760000 + 583); |
DDERR_NOTLOCKED = HResult($88760000 + 584); |
DDERR_CANTCREATEDC = HResult($88760000 + 585); |
DDERR_NODC = HResult($88760000 + 586); |
DDERR_WRONGMODE = HResult($88760000 + 587); |
DDERR_IMPLICITLYCREATED = HResult($88760000 + 588); |
DDERR_NOTPALETTIZED = HResult($88760000 + 589); |
DDERR_UNSUPPORTEDMODE = HResult($88760000 + 590); |
DDERR_NOMIPMAPHW = HResult($88760000 + 591); |
DDERR_INVALIDSURFACETYPE = HResult($88760000 + 592); |
DDERR_NOOPTIMIZEHW = HResult($88760000 + 600); |
DDERR_NOTLOADED = HResult($88760000 + 601); |
DDERR_NOFOCUSWINDOW = HResult($88760000 + 602); |
DDERR_NOTONMIPMAPSUBLEVEL = HResult($88760000 + 603); |
DDERR_DCALREADYCREATED = HResult($88760000 + 620); |
DDERR_NONONLOCALVIDMEM = HResult($88760000 + 630); |
DDERR_CANTPAGELOCK = HResult($88760000 + 640); |
DDERR_CANTPAGEUNLOCK = HResult($88760000 + 660); |
DDERR_NOTPAGELOCKED = HResult($88760000 + 680); |
DDERR_MOREDATA = HResult($88760000 + 690); |
DDERR_EXPIRED = HResult($88760000 + 691); |
DDERR_TESTFINISHED = HResult($88760000 + 692); |
DDERR_NEWMODE = HResult($88760000 + 693); |
DDERR_D3DNOTINITIALIZED = HResult($88760000 + 694); |
DDERR_VIDEONOTACTIVE = HResult($88760000 + 695); |
DDERR_NOMONITORINFORMATION = HResult($88760000 + 696); |
DDERR_NODRIVERSUPPORT = HResult($88760000 + 697); |
DDERR_DEVICEDOESNTOWNSURFACE = HResult($88760000 + 699); |
DDERR_NOTINITIALIZED = HResult(CO_E_NOTINITIALIZED); |
_FACDD = $876; |
MAKE_DDHRESULT = HResult(1 shl 31) or HResult(_FACDD shl 16); |
{ API's } |
function GET_WHQL_YEAR(dwWHQLLevel: DWORD): DWORD; |
function GET_WHQL_MONTH(dwWHQLLevel: DWORD): DWORD; |
function GET_WHQL_DAY(dwWHQLLevel: DWORD): DWORD; |
(* |
* This object is already initialized |
*) |
DDERR_ALREADYINITIALIZED = MAKE_DDHRESULT + 5; |
(* |
* This surface can not be attached to the requested surface. |
*) |
DDERR_CANNOTATTACHSURFACE = MAKE_DDHRESULT + 10; |
(* |
* This surface can not be detached from the requested surface. |
*) |
DDERR_CANNOTDETACHSURFACE = MAKE_DDHRESULT + 20; |
(* |
* Support is currently not available. |
*) |
DDERR_CURRENTLYNOTAVAIL = MAKE_DDHRESULT + 40; |
(* |
* An exception was encountered while performing the requested operation |
*) |
DDERR_EXCEPTION = MAKE_DDHRESULT + 55; |
(* |
* Generic failure. |
*) |
DDERR_GENERIC = E_FAIL; |
(* |
* Height of rectangle provided is not a multiple of reqd alignment |
*) |
DDERR_HEIGHTALIGN = MAKE_DDHRESULT + 90; |
(* |
* Unable to match primary surface creation request with existing |
* primary surface. |
*) |
DDERR_INCOMPATIBLEPRIMARY = MAKE_DDHRESULT + 95; |
(* |
* One or more of the caps bits passed to the callback are incorrect. |
*) |
DDERR_INVALIDCAPS = MAKE_DDHRESULT + 100; |
(* |
* DirectDraw does not support provided Cliplist. |
*) |
DDERR_INVALIDCLIPLIST = MAKE_DDHRESULT + 110; |
(* |
* DirectDraw does not support the requested mode |
*) |
DDERR_INVALIDMODE = MAKE_DDHRESULT + 120; |
(* |
* DirectDraw received a pointer that was an invalid DIRECTDRAW object. |
*) |
DDERR_INVALIDOBJECT = MAKE_DDHRESULT + 130; |
(* |
* One or more of the parameters passed to the callback function are |
* incorrect. |
*) |
DDERR_INVALIDPARAMS = E_INVALIDARG; |
(* |
* pixel format was invalid as specified |
*) |
DDERR_INVALIDPIXELFORMAT = MAKE_DDHRESULT + 145; |
(* |
* Rectangle provided was invalid. |
*) |
DDERR_INVALIDRECT = MAKE_DDHRESULT + 150; |
(* |
* Operation could not be carried out because one or more surfaces are locked |
*) |
DDERR_LOCKEDSURFACES = MAKE_DDHRESULT + 160; |
(* |
* There is no 3D present. |
*) |
DDERR_NO3D = MAKE_DDHRESULT + 170; |
(* |
* Operation could not be carried out because there is no alpha accleration |
* hardware present or available. |
*) |
DDERR_NOALPHAHW = MAKE_DDHRESULT + 180; |
(* |
* Operation could not be carried out because there is no stereo |
* hardware present or available. |
*) |
DDERR_NOSTEREOHARDWARE = MAKE_DDHRESULT + 181; |
(* |
* Operation could not be carried out because there is no hardware |
* present which supports stereo surfaces |
*) |
DDERR_NOSURFACELEFT = MAKE_DDHRESULT + 182; |
(* |
* no clip list available |
*) |
DDERR_NOCLIPLIST = MAKE_DDHRESULT + 205; |
(* |
* Operation could not be carried out because there is no color conversion |
* hardware present or available. |
*) |
DDERR_NOCOLORCONVHW = MAKE_DDHRESULT + 210; |
(* |
* Create function called without DirectDraw object method SetCooperativeLevel |
* being called. |
*) |
DDERR_NOCOOPERATIVELEVELSET = MAKE_DDHRESULT + 212; |
(* |
* Surface doesn't currently have a color key |
*) |
DDERR_NOCOLORKEY = MAKE_DDHRESULT + 215; |
(* |
* Operation could not be carried out because there is no hardware support |
* of the dest color key. |
*) |
DDERR_NOCOLORKEYHW = MAKE_DDHRESULT + 220; |
(* |
* No DirectDraw support possible with current display driver |
*) |
DDERR_NODIRECTDRAWSUPPORT = MAKE_DDHRESULT + 222; |
(* |
* Operation requires the application to have exclusive mode but the |
* application does not have exclusive mode. |
*) |
DDERR_NOEXCLUSIVEMODE = MAKE_DDHRESULT + 225; |
(* |
* Flipping visible surfaces is not supported. |
*) |
DDERR_NOFLIPHW = MAKE_DDHRESULT + 230; |
(* |
* There is no GDI present. |
*) |
DDERR_NOGDI = MAKE_DDHRESULT + 240; |
(* |
* Operation could not be carried out because there is no hardware present |
* or available. |
*) |
DDERR_NOMIRRORHW = MAKE_DDHRESULT + 250; |
(* |
* Requested item was not found |
*) |
DDERR_NOTFOUND = MAKE_DDHRESULT + 255; |
(* |
* Operation could not be carried out because there is no overlay hardware |
* present or available. |
*) |
DDERR_NOOVERLAYHW = MAKE_DDHRESULT + 260; |
(* |
* Operation could not be carried out because the source and destination |
* rectangles are on the same surface and overlap each other. |
*) |
DDERR_OVERLAPPINGRECTS = MAKE_DDHRESULT + 270; |
(* |
* Operation could not be carried out because there is no appropriate raster |
* op hardware present or available. |
*) |
DDERR_NORASTEROPHW = MAKE_DDHRESULT + 280; |
(* |
* Operation could not be carried out because there is no rotation hardware |
* present or available. |
*) |
DDERR_NOROTATIONHW = MAKE_DDHRESULT + 290; |
(* |
* Operation could not be carried out because there is no hardware support |
* for stretching |
*) |
DDERR_NOSTRETCHHW = MAKE_DDHRESULT + 310; |
(* |
* DirectDrawSurface is not in 4 bit color palette and the requested operation |
* requires 4 bit color palette. |
*) |
DDERR_NOT4BITCOLOR = MAKE_DDHRESULT + 316; |
(* |
* DirectDrawSurface is not in 4 bit color index palette and the requested |
* operation requires 4 bit color index palette. |
*) |
DDERR_NOT4BITCOLORINDEX = MAKE_DDHRESULT + 317; |
(* |
* DirectDraw Surface is not in 8 bit color mode and the requested operation |
* requires 8 bit color. |
*) |
DDERR_NOT8BITCOLOR = MAKE_DDHRESULT + 320; |
(* |
* Operation could not be carried out because there is no texture mapping |
* hardware present or available. |
*) |
DDERR_NOTEXTUREHW = MAKE_DDHRESULT + 330; |
(* |
* Operation could not be carried out because there is no hardware support |
* for vertical blank synchronized operations. |
*) |
DDERR_NOVSYNCHW = MAKE_DDHRESULT + 335; |
(* |
* Operation could not be carried out because there is no hardware support |
* for zbuffer blting. |
*) |
DDERR_NOZBUFFERHW = MAKE_DDHRESULT + 340; |
(* |
* Overlay surfaces could not be z layered based on their BltOrder because |
* the hardware does not support z layering of overlays. |
*) |
DDERR_NOZOVERLAYHW = MAKE_DDHRESULT + 350; |
(* |
* The hardware needed for the requested operation has already been |
* allocated. |
*) |
DDERR_OUTOFCAPS = MAKE_DDHRESULT + 360; |
(* |
* DirectDraw does not have enough memory to perform the operation. |
*) |
DDERR_OUTOFMEMORY = E_OUTOFMEMORY; |
(* |
* DirectDraw does not have enough memory to perform the operation. |
*) |
DDERR_OUTOFVIDEOMEMORY = MAKE_DDHRESULT + 380; |
(* |
* hardware does not support clipped overlays |
*) |
DDERR_OVERLAYCANTCLIP = MAKE_DDHRESULT + 382; |
(* |
* Can only have ony color key active at one time for overlays |
*) |
DDERR_OVERLAYCOLORKEYONLYONEACTIVE = MAKE_DDHRESULT + 384; |
(* |
* Access to this palette is being refused because the palette is already |
* locked by another thread. |
*) |
DDERR_PALETTEBUSY = MAKE_DDHRESULT + 387; |
(* |
* No src color key specified for this operation. |
*) |
DDERR_COLORKEYNOTSET = MAKE_DDHRESULT + 400; |
(* |
* This surface is already attached to the surface it is being attached to. |
*) |
DDERR_SURFACEALREADYATTACHED = MAKE_DDHRESULT + 410; |
(* |
* This surface is already a dependency of the surface it is being made a |
* dependency of. |
*) |
DDERR_SURFACEALREADYDEPENDENT = MAKE_DDHRESULT + 420; |
(* |
* Access to this surface is being refused because the surface is already |
* locked by another thread. |
*) |
DDERR_SURFACEBUSY = MAKE_DDHRESULT + 430; |
(* |
* Access to this surface is being refused because no driver exists |
* which can supply a pointer to the surface. |
* This is most likely to happen when attempting to lock the primary |
* surface when no DCI provider is present. |
* Will also happen on attempts to lock an optimized surface. |
*) |
DDERR_CANTLOCKSURFACE = MAKE_DDHRESULT + 435; |
(* |
* Access to Surface refused because Surface is obscured. |
*) |
DDERR_SURFACEISOBSCURED = MAKE_DDHRESULT + 440; |
(* |
* Access to this surface is being refused because the surface is gone. |
* The DIRECTDRAWSURFACE object representing this surface should |
* have Restore called on it. |
*) |
DDERR_SURFACELOST = MAKE_DDHRESULT + 450; |
(* |
* The requested surface is not attached. |
*) |
DDERR_SURFACENOTATTACHED = MAKE_DDHRESULT + 460; |
(* |
* Height requested by DirectDraw is too large. |
*) |
DDERR_TOOBIGHEIGHT = MAKE_DDHRESULT + 470; |
(* |
* Size requested by DirectDraw is too large -- The individual height and |
* width are OK. |
*) |
DDERR_TOOBIGSIZE = MAKE_DDHRESULT + 480; |
(* |
* Width requested by DirectDraw is too large. |
*) |
DDERR_TOOBIGWIDTH = MAKE_DDHRESULT + 490; |
(* |
* Action not supported. |
*) |
DDERR_UNSUPPORTED = E_NOTIMPL; |
(* |
* FOURCC format requested is unsupported by DirectDraw |
*) |
DDERR_UNSUPPORTEDFORMAT = MAKE_DDHRESULT + 510; |
(* |
* Bitmask in the pixel format requested is unsupported by DirectDraw |
*) |
DDERR_UNSUPPORTEDMASK = MAKE_DDHRESULT + 520; |
(* |
* The specified stream contains invalid data |
*) |
DDERR_INVALIDSTREAM = MAKE_DDHRESULT + 521; |
(* |
* vertical blank is in progress |
*) |
DDERR_VERTICALBLANKINPROGRESS = MAKE_DDHRESULT + 537; |
(* |
* Informs DirectDraw that the previous Blt which is transfering information |
* to or from this Surface is incomplete. |
*) |
DDERR_WASSTILLDRAWING = MAKE_DDHRESULT + 540; |
(* |
* The specified surface type requires specification of the COMPLEX flag |
*) |
DDERR_DDSCAPSCOMPLEXREQUIRED = MAKE_DDHRESULT + 542; |
(* |
* Rectangle provided was not horizontally aligned on reqd. boundary |
*) |
DDERR_XALIGN = MAKE_DDHRESULT + 560; |
(* |
* The GUID passed to DirectDrawCreate is not a valid DirectDraw driver |
* identifier. |
*) |
DDERR_INVALIDDIRECTDRAWGUID = MAKE_DDHRESULT + 561; |
(* |
* A DirectDraw object representing this driver has already been created |
* for this process. |
*) |
DDERR_DIRECTDRAWALREADYCREATED = MAKE_DDHRESULT + 562; |
(* |
* A hardware only DirectDraw object creation was attempted but the driver |
* did not support any hardware. |
*) |
DDERR_NODIRECTDRAWHW = MAKE_DDHRESULT + 563; |
(* |
* this process already has created a primary surface |
*) |
DDERR_PRIMARYSURFACEALREADYEXISTS = MAKE_DDHRESULT + 564; |
(* |
* software emulation not available. |
*) |
DDERR_NOEMULATION = MAKE_DDHRESULT + 565; |
(* |
* region passed to Clipper::GetClipList is too small. |
*) |
DDERR_REGIONTOOSMALL = MAKE_DDHRESULT + 566; |
(* |
* an attempt was made to set a clip list for a clipper objec that |
* is already monitoring an hwnd. |
*) |
DDERR_CLIPPERISUSINGHWND = MAKE_DDHRESULT + 567; |
(* |
* No clipper object attached to surface object |
*) |
DDERR_NOCLIPPERATTACHED = MAKE_DDHRESULT + 568; |
(* |
* Clipper notification requires an HWND or |
* no HWND has previously been set as the CooperativeLevel HWND. |
*) |
DDERR_NOHWND = MAKE_DDHRESULT + 569; |
(* |
* HWND used by DirectDraw CooperativeLevel has been subclassed, |
* this prevents DirectDraw from restoring state. |
*) |
DDERR_HWNDSUBCLASSED = MAKE_DDHRESULT + 570; |
(* |
* The CooperativeLevel HWND has already been set. |
* It can not be reset while the process has surfaces or palettes created. |
*) |
DDERR_HWNDALREADYSET = MAKE_DDHRESULT + 571; |
(* |
* No palette object attached to this surface. |
*) |
DDERR_NOPALETTEATTACHED = MAKE_DDHRESULT + 572; |
(* |
* No hardware support for 16 or 256 color palettes. |
*) |
DDERR_NOPALETTEHW = MAKE_DDHRESULT + 573; |
(* |
* If a clipper object is attached to the source surface passed into a |
* BltFast call. |
*) |
DDERR_BLTFASTCANTCLIP = MAKE_DDHRESULT + 574; |
(* |
* No blter. |
*) |
DDERR_NOBLTHW = MAKE_DDHRESULT + 575; |
(* |
* No DirectDraw ROP hardware. |
*) |
DDERR_NODDROPSHW = MAKE_DDHRESULT + 576; |
(* |
* returned when GetOverlayPosition is called on a hidden overlay |
*) |
DDERR_OVERLAYNOTVISIBLE = MAKE_DDHRESULT + 577; |
(* |
* returned when GetOverlayPosition is called on a overlay that UpdateOverlay |
* has never been called on to establish a destionation. |
*) |
DDERR_NOOVERLAYDEST = MAKE_DDHRESULT + 578; |
(* |
* returned when the position of the overlay on the destionation is no longer |
* legal for that destionation. |
*) |
DDERR_INVALIDPOSITION = MAKE_DDHRESULT + 579; |
(* |
* returned when an overlay member is called for a non-overlay surface |
*) |
DDERR_NOTAOVERLAYSURFACE = MAKE_DDHRESULT + 580; |
(* |
* An attempt was made to set the cooperative level when it was already |
* set to exclusive. |
*) |
DDERR_EXCLUSIVEMODEALREADYSET = MAKE_DDHRESULT + 581; |
(* |
* An attempt has been made to flip a surface that is not flippable. |
*) |
DDERR_NOTFLIPPABLE = MAKE_DDHRESULT + 582; |
(* |
* Can't duplicate primary & 3D surfaces, or surfaces that are implicitly |
* created. |
*) |
DDERR_CANTDUPLICATE = MAKE_DDHRESULT + 583; |
(* |
* Surface was not locked. An attempt to unlock a surface that was not |
* locked at all, or by this process, has been attempted. |
*) |
DDERR_NOTLOCKED = MAKE_DDHRESULT + 584; |
(* |
* Windows can not create any more DCs, or a DC was requested for a paltte-indexed |
* surface when the surface had no palette AND the display mode was not palette-indexed |
* (in this case DirectDraw cannot select a proper palette into the DC) |
*) |
DDERR_CANTCREATEDC = MAKE_DDHRESULT + 585; |
(* |
* No DC was ever created for this surface. |
*) |
DDERR_NODC = MAKE_DDHRESULT + 586; |
(* |
* This surface can not be restored because it was created in a different |
* mode. |
*) |
DDERR_WRONGMODE = MAKE_DDHRESULT + 587; |
(* |
* This surface can not be restored because it is an implicitly created |
* surface. |
*) |
DDERR_IMPLICITLYCREATED = MAKE_DDHRESULT + 588; |
(* |
* The surface being used is not a palette-based surface |
*) |
DDERR_NOTPALETTIZED = MAKE_DDHRESULT + 589; |
(* |
* The display is currently in an unsupported mode |
*) |
DDERR_UNSUPPORTEDMODE = MAKE_DDHRESULT + 590; |
(* |
* Operation could not be carried out because there is no mip-map |
* texture mapping hardware present or available. |
*) |
DDERR_NOMIPMAPHW = MAKE_DDHRESULT + 591; |
(* |
* The requested action could not be performed because the surface was of |
* the wrong type. |
*) |
DDERR_INVALIDSURFACETYPE = MAKE_DDHRESULT + 592; |
(* |
* Device does not support optimized surfaces, therefore no video memory optimized surfaces |
*) |
DDERR_NOOPTIMIZEHW = MAKE_DDHRESULT + 600; |
(* |
* Surface is an optimized surface, but has not yet been allocated any memory |
*) |
DDERR_NOTLOADED = MAKE_DDHRESULT + 601; |
(* |
* Attempt was made to create or set a device window without first setting |
* the focus window |
*) |
DDERR_NOFOCUSWINDOW = MAKE_DDHRESULT + 602; |
(* |
* Attempt was made to set a palette on a mipmap sublevel |
*) |
DDERR_NOTONMIPMAPSUBLEVEL = MAKE_DDHRESULT + 603; |
(* |
* A DC has already been returned for this surface. Only one DC can be |
* retrieved per surface. |
*) |
DDERR_DCALREADYCREATED = MAKE_DDHRESULT + 620; |
(* |
* An attempt was made to allocate non-local video memory from a device |
* that does not support non-local video memory. |
*) |
DDERR_NONONLOCALVIDMEM = MAKE_DDHRESULT + 630; |
(* |
* The attempt to page lock a surface failed. |
*) |
DDERR_CANTPAGELOCK = MAKE_DDHRESULT + 640; |
(* |
* The attempt to page unlock a surface failed. |
*) |
DDERR_CANTPAGEUNLOCK = MAKE_DDHRESULT + 660; |
(* |
* An attempt was made to page unlock a surface with no outstanding page locks. |
*) |
DDERR_NOTPAGELOCKED = MAKE_DDHRESULT + 680; |
(* |
* There is more data available than the specified buffer size could hold |
*) |
DDERR_MOREDATA = MAKE_DDHRESULT + 690; |
(* |
* The data has expired and is therefore no longer valid. |
*) |
DDERR_EXPIRED = MAKE_DDHRESULT + 691; |
(* |
* The mode test has finished executing. |
*) |
DDERR_TESTFINISHED = MAKE_DDHRESULT + 692; |
(* |
* The mode test has switched to a new mode. |
*) |
DDERR_NEWMODE = MAKE_DDHRESULT + 693; |
(* |
* D3D has not yet been initialized. |
*) |
DDERR_D3DNOTINITIALIZED = MAKE_DDHRESULT + 694; |
(* |
* The video port is not active |
*) |
DDERR_VIDEONOTACTIVE = MAKE_DDHRESULT + 695; |
(* |
* The monitor does not have EDID data. |
*) |
DDERR_NOMONITORINFORMATION = MAKE_DDHRESULT + 696; |
(* |
* The driver does not enumerate display mode refresh rates. |
*) |
DDERR_NODRIVERSUPPORT = MAKE_DDHRESULT + 697; |
(* |
* Surfaces created by one direct draw device cannot be used directly by |
* another direct draw device. |
*) |
DDERR_DEVICEDOESNTOWNSURFACE = MAKE_DDHRESULT + 699; |
(* |
* An attempt was made to invoke an interface member of a DirectDraw object |
* created by CoCreateInstance() before it was initialized. |
*) |
DDERR_NOTINITIALIZED = CO_E_NOTINITIALIZED; |
(* Alpha bit depth constants *) |
(* |
* API's |
*) |
type |
HMonitor = THandle; |
TDDEnumCallbackA = function(lpGUID: PGUID; lpDriverDescription: LPSTR; |
lpDriverName: LPSTR; lpContext: Pointer): BOOL; stdcall; |
LPDDENUMCALLBACKA = TDDEnumCallbackA; |
TDDEnumCallbackA = function (lpGUID: PGUID; lpDriverDescription: PAnsiChar; |
lpDriverName: PAnsiChar; lpContext: Pointer) : BOOL; stdcall; |
TDDEnumCallbackW = function (lpGUID: PGUID; lpDriverDescription: PWideChar; |
lpDriverName: PWideChar; lpContext: Pointer) : BOOL; stdcall; |
{$IFDEF UNICODE} |
TDDEnumCallback = TDDEnumCallbackW; |
{$ELSE} |
TDDEnumCallback = TDDEnumCallbackA; |
{$ENDIF} |
TDDEnumCallbackW = function(lpGUID: PGUID; lpDriverDescription: LPWSTR; |
lpDriverName: LPWSTR; lpContext: Pointer): BOOL; stdcall; |
LPDDENUMCALLBACKW = TDDEnumCallbackW; |
TDDEnumCallbackExA = function (lpGUID: PGUID; lpDriverDescription: PAnsiChar; |
lpDriverName: PAnsiChar; lpContext: Pointer; Monitor: HMonitor) : BOOL; |
stdcall; |
TDDEnumCallbackExW = function (lpGUID: PGUID; lpDriverDescription: PWideChar; |
lpDriverName: PWideChar; lpContext: Pointer; Monitor: HMonitor) : BOOL; |
stdcall; |
TDDEnumCallback = TDDEnumCallbackA; |
LPDDENUMCALLBACK = TDDEnumCallback; |
{$IFDEF UNICODE} |
TDDEnumCallbackEx = TDDEnumCallbackExW; |
{$ELSE} |
TDDEnumCallbackEx = TDDEnumCallbackExA; |
{$ENDIF} |
TDDEnumCallbackExA = function(lpGUID: PGUID; lpDriverDescription: LPSTR; |
lpDriverName: LPSTR; lpContext: Pointer; Monitor: HMonitor): BOOL; stdcall; |
LPDDENUMCALLBACKEXA = TDDEnumCallbackExA; |
var |
DirectDrawEnumerateA : function (lpCallback: TDDEnumCallbackA; |
lpContext: Pointer) : HResult; stdcall; |
DirectDrawEnumerateW : function (lpCallback: TDDEnumCallbackW; |
lpContext: Pointer) : HResult; stdcall; |
DirectDrawEnumerate : function (lpCallback: TDDEnumCallback; |
lpContext: Pointer) : HResult; stdcall; |
TDDEnumCallbackExW = function(lpGUID: PGUID; lpDriverDescription: LPWSTR; |
lpDriverName: LPWSTR; lpContext: Pointer; Monitor: HMonitor): BOOL; stdcall; |
LPDDENUMCALLBACKEXW = TDDEnumCallbackExW; |
DirectDrawEnumerateExA : function (lpCallback: TDDEnumCallbackExA; |
lpContext: Pointer; dwFlags: DWORD) : HResult; stdcall; |
DirectDrawEnumerateExW : function (lpCallback: TDDEnumCallbackExW; |
lpContext: Pointer; dwFlags: DWORD) : HResult; stdcall; |
DirectDrawEnumerateEx : function (lpCallback: TDDEnumCallbackEx; |
lpContext: Pointer; dwFlags: DWORD) : HResult; stdcall; |
TDDEnumCallbackEx = TDDEnumCallbackExA; |
LPDDENUMCALLBACKEX = TDDEnumCallbackEx; |
DirectDrawCreate : function (lpGUID: PGUID; |
out lplpDD: IDirectDraw; |
pUnkOuter: IUnknown) : HResult; stdcall; |
DirectDrawCreateEx : function (lpGUID: PGUID; |
out lplpDD: IDirectDraw7; const iid: TGUID; |
pUnkOuter: IUnknown) : HResult; stdcall; |
DirectDrawCreateClipper : function (dwFlags: DWORD; |
out lplpDDClipper: IDirectDrawClipper; |
pUnkOuter: IUnknown) : HResult; stdcall; |
const |
(* |
* Flags for DirectDrawEnumerateEx |
* DirectDrawEnumerateEx supercedes DirectDrawEnumerate. You must use GetProcAddress to |
* obtain a function pointer (of type LPDIRECTDRAWENUMERATEEX) to DirectDrawEnumerateEx. |
* By default, only the primary display device is enumerated. |
* DirectDrawEnumerate is equivalent to DirectDrawEnumerate(,,DDENUM_NONDISPLAYDEVICES) |
*) |
(* |
* This flag causes enumeration of any GDI display devices which are part of |
* the Windows Desktop |
*) |
DDENUM_ATTACHEDSECONDARYDEVICES = $00000001; |
(* |
* This flag causes enumeration of any GDI display devices which are not |
* part of the Windows Desktop |
*) |
DDENUM_DETACHEDSECONDARYDEVICES = $00000002; |
(* |
* This flag causes enumeration of non-display devices |
*) |
DDENUM_NONDISPLAYDEVICES = $00000004; |
REGSTR_KEY_DDHW_DESCRIPTION = 'Description'; |
REGSTR_KEY_DDHW_DRIVERNAME = 'DriverName'; |
REGSTR_PATH_DDHW = 'Hardware\DirectDrawDrivers'; |
2154,21 → 4872,14 |
DDCREATE_HARDWAREONLY = $00000001; |
DDCREATE_EMULATIONONLY = $00000002; |
function DirectDrawEnumerateA(lpCallback: TDDEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
function DirectDrawEnumerateW(lpCallback: TDDEnumCallbackW; lpContext: Pointer): HResult; stdcall; |
function DirectDrawEnumerate(lpCallback: TDDEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
(* |
* Macros for interpretting DDEVICEIDENTIFIER2.dwWHQLLevel |
*) |
function GET_WHQL_YEAR(dwWHQLLevel: DWORD) : DWORD; |
function GET_WHQL_MONTH(dwWHQLLevel: DWORD) : DWORD; |
function GET_WHQL_DAY(dwWHQLLevel: DWORD) : DWORD; |
function DirectDrawEnumerateExA(lpCallback: TDDEnumCallbackExA; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function DirectDrawEnumerateExW(lpCallback: TDDEnumCallbackExW; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function DirectDrawEnumerateEx(lpCallback: TDDEnumCallbackExA; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function DirectDrawCreate(lpGUID: PGUID; out lplpDD: IDirectDraw; |
pUnkOuter: IUnknown): HResult; stdcall; |
function DirectDrawCreateEx(lpGUID: PGUID; out lplpDD; const iid: TGUID; |
pUnkOuter: IUnknown): HResult; stdcall; |
function DirectDrawCreateClipper(dwFlags: DWORD; out lplpDDClipper: IDirectDrawClipper; |
pUnkOuter: IUnknown): HResult; stdcall; |
(*==========================================================================; |
* |
* Copyright (C) 1996-1997 Microsoft Corporation. All Rights Reserved. |
2178,31 → 4889,45 |
* |
***************************************************************************) |
{ GUIDS used by DirectDrawVideoPort objects } |
const |
IID_IDDVideoPortContainer: TGUID = '{6C142760-A733-11CE-A521-0020AF0BE560}'; |
IID_IDirectDrawVideoPort: TGUID = '{B36D93E0-2B43-11CF-A2DE-00AA00B93356}'; |
(* |
* GUIDS used by DirectDrawVideoPort objects |
*) |
DDVPTYPE_E_HREFH_VREFH: TGUID = |
(D1:$54F39980;D2:$DA60;D3:$11CF;D4:($9B,$06,$00,$A0,$C9,$03,$A3,$B8)); |
DDVPTYPE_E_HREFH_VREFL: TGUID = |
(D1:$92783220;D2:$DA60;D3:$11CF;D4:($9B,$06,$00,$A0,$C9,$03,$A3,$B8)); |
DDVPTYPE_E_HREFL_VREFH: TGUID = |
(D1:$A07A02E0;D2:$DA60;D3:$11CF;D4:($9B,$06,$00,$A0,$C9,$03,$A3,$B8)); |
DDVPTYPE_E_HREFL_VREFL: TGUID = |
(D1:$E09C77E0;D2:$DA60;D3:$11CF;D4:($9B,$06,$00,$A0,$C9,$03,$A3,$B8)); |
DDVPTYPE_CCIR656: TGUID = |
(D1:$FCA326A0;D2:$DA60;D3:$11CF;D4:($9B,$06,$00,$A0,$C9,$03,$A3,$B8)); |
DDVPTYPE_BROOKTREE: TGUID = |
(D1:$1352A560;D2:$DA61;D3:$11CF;D4:($9B,$06,$00,$A0,$C9,$03,$A3,$B8)); |
DDVPTYPE_PHILIPS: TGUID = |
(D1:$332CF160;D2:$DA61;D3:$11CF;D4:($9B,$06,$00,$A0,$C9,$03,$A3,$B8)); |
DDVPTYPE_E_HREFH_VREFH: TGUID = '{54F39980-DA60-11CF-9B06-00A0C903A3B8}'; |
DDVPTYPE_E_HREFH_VREFL: TGUID = '{92783220-DA60-11CF-9B06-00A0C903A3B8}'; |
DDVPTYPE_E_HREFL_VREFH: TGUID = '{A07A02E0-DA60-11CF-9B06-00A0C903A3B8}'; |
DDVPTYPE_E_HREFL_VREFL: TGUID = '{E09C77E0-DA60-11CF-9B06-00A0C903A3B8}'; |
DDVPTYPE_CCIR656: TGUID = '{FCA326A0-DA60-11CF-9B06-00A0C903A3B8}'; |
DDVPTYPE_BROOKTREE: TGUID = '{1352A560-DA61-11CF-9B06-00A0C903A3B8}'; |
DDVPTYPE_PHILIPS: TGUID = '{332CF160-DA61-11CF-9B06-00A0C903A3B8}'; |
(* |
* GUIDS used to describe connections |
*) |
{ DirectDraw Structures } |
(*============================================================================ |
* |
* DirectDraw Structures |
* |
* Various structures used to invoke DirectDraw. |
* |
*==========================================================================*) |
type |
IDDVideoPortContainer = interface; |
IDirectDrawVideoPort = interface; |
{ TDDVideoportConnect structure } |
PDDVideoportConnect = ^TDDVideoportConnect; |
TDDVideoportConnect = record |
dwSize: DWORD; // size of the TDDVideoportConnect structure |
(* |
* TDDVideoPortConnect |
*) |
PDDVideoPortConnect = ^TDDVideoPortConnect; |
TDDVideoPortConnect = packed record |
dwSize: DWORD; // size of the TDDVideoPortConnect structure |
dwPortWidth: DWORD; // Width of the video port |
guidTypeID: TGUID; // Description of video port connection |
dwFlags: DWORD; // Connection flags |
2209,14 → 4934,12 |
dwReserved1: DWORD; // Reserved, set to zero. |
end; |
DDVIDEOPORTCONNECT = TDDVideoportConnect; |
LPDDVIDEOPORTCONNECT = PDDVideoportConnect; |
{ TDDVideoportCaps structure } |
PDDVideoportCaps = ^TDDVideoportCaps; |
TDDVideoportCaps = record |
dwSize: DWORD; // size of the TDDVideoportCaps structure |
(* |
* TDDVideoPortCaps |
*) |
PDDVideoPortCaps = ^TDDVideoPortCaps; |
TDDVideoPortCaps = packed record |
dwSize: DWORD; // size of the TDDVideoPortCaps structure |
dwFlags: DWORD; // indicates which fields contain data |
dwMaxWidth: DWORD; // max width of the video port field |
dwMaxVBIWidth: DWORD; // max width of the VBI data |
2237,14 → 4960,59 |
wNumFilterTapsY: WORD; // Number of taps the prescaler uses in the Y direction (0 - no prescale, 1 - replication, etc.) |
end; |
DDVIDEOPORTCAPS = TDDVideoportCaps; |
LPDDVIDEOPORTCAPS = PDDVideoportCaps; |
const |
(* |
* The dwMaxWidth and dwMaxVBIWidth members are valid |
*) |
DDVPD_WIDTH = $00000001; |
{ TDDVideoportDesc structure } |
(* |
* The dwMaxHeight member is valid |
*) |
DDVPD_HEIGHT = $00000002; |
PDDVideoportDesc = ^TDDVideoportDesc; |
TDDVideoportDesc = record |
dwSize: DWORD; // size of the TDDVideoportDesc structure |
(* |
* The dwVideoPortID member is valid |
*) |
DDVPD_ID = $00000004; |
(* |
* The dwCaps member is valid |
*) |
DDVPD_CAPS = $00000008; |
(* |
* The dwFX member is valid |
*) |
DDVPD_FX = $00000010; |
(* |
* The dwNumAutoFlipSurfaces member is valid |
*) |
DDVPD_AUTOFLIP = $00000020; |
(* |
* All of the alignment members are valid |
*) |
DDVPD_ALIGN = $00000040; |
(* |
* The dwNumPreferredAutoflip member is valid |
*) |
DDVPD_PREFERREDAUTOFLIP = $00000080; |
(* |
* The wNumFilterTapsX and wNumFilterTapsY fields are valid |
*) |
DDVPD_FILTERQUALITY = $00000100; |
type |
(* |
* TDDVideoPortDesc |
*) |
PDDVideoPortDesc = ^TDDVideoPortDesc; |
TDDVideoPortDesc = packed record |
dwSize: DWORD; // size of the TDDVideoPortDesc structure |
dwFieldWidth: DWORD; // width of the video port field |
dwVBIWidth: DWORD; // width of the VBI data |
dwFieldHeight: DWORD; // height of the video port field |
2252,18 → 5020,16 |
dwMaxPixelsPerSecond: DWORD; // Maximum pixel rate per second |
dwVideoPortID: DWORD; // Video port ID (0 - (dwMaxVideoPorts -1)) |
dwReserved1: DWORD; // Reserved for future use - set to zero |
VideoPortType: TDDVideoportConnect; // Description of video port connection |
VideoPortType: TDDVideoPortConnect; // Description of video port connection |
dwReserved2: DWORD; // Reserved for future use - set to zero |
dwReserved3: DWORD; // Reserved for future use - set to zero |
end; |
DDVIDEOPORTDESC = TDDVideoportDesc; |
LPDDVIDEOPORTDESC = PDDVideoportDesc; |
{ TDDVideoportInfo structure } |
PDDVideoportInfo = ^TDDVideoportInfo; |
TDDVideoportInfo = record |
(* |
* TDDVideoPortInfo |
*) |
PDDVideoPortInfo = ^TDDVideoPortInfo; |
TDDVideoPortInfo = packed record |
dwSize: DWORD; // Size of the structure |
dwOriginX: DWORD; // Placement of the video data within the surface. |
dwOriginY: DWORD; // Placement of the video data within the surface. |
2279,13 → 5045,11 |
dwReserved2: DWORD; // Reserved for future use - set to zero |
end; |
DDVIDEOPORTINFO = TDDVideoportInfo; |
LPDDVIDEOPORTINFO = PDDVideoportInfo; |
{ TDDVideoportBandWidth structure } |
PDDVideoportBandWidth = ^TDDVideoportBandWidth; |
TDDVideoportBandWidth = record |
(* |
* TDDVideoPortBandWidth |
*) |
PDDVideoPortBandWidth = ^TDDVideoPortBandWidth; |
TDDVideoPortBandWidth = packed record |
dwSize: DWORD; // Size of the structure |
dwCaps: DWORD; |
dwOverlay: DWORD; // Zoom factor at which overlay is supported |
2296,226 → 5060,669 |
dwReserved2: DWORD; // Reserved for future use - set to zero |
end; |
DDVIDEOPORTBANDWIDTH = TDDVideoportBandWidth; |
LPDDVIDEOPORTBANDWIDTH = PDDVideoportBandWidth; |
{ TDDVideoportStatus structure } |
PDDVideoportStatus = ^TDDVideoportStatus; |
TDDVideoportStatus = record |
(* |
* TDDVideoPortStatus |
*) |
PDDVideoPortStatus = ^TDDVideoPortStatus; |
TDDVideoPortStatus = record |
dwSize: DWORD; // Size of the structure |
bInUse: BOOL; // TRUE if video port is currently being used |
dwFlags: DWORD; // Currently not used |
dwReserved1: DWORD; // Reserved for future use |
VideoPortType: TDDVideoportConnect; // Information about the connection |
VideoPortType: TDDVideoPortConnect; // Information about the connection |
dwReserved2: DWORD; // Reserved for future use |
dwReserved3: DWORD; // Reserved for future use |
end; |
DDVIDEOPORTSTATUS = TDDVideoportStatus; |
LPDDVIDEOPORTSTATUS = PDDVideoportStatus; |
{ API's } |
TDDEnumVideoCallback = function(const lpDDVideoPortCaps: TDDVideoportCaps; |
lpContext: Pointer): HResult; stdcall; |
LPDDENUMVIDEOCALLBACK = TDDEnumVideoCallback; |
{ IDirectDrawVideoPortContainer Interface } |
IDDVideoPortContainer = interface(IUnknown) |
['{6C142760-A733-11CE-A521-0020AF0BE560}'] |
// IDDVideoPortContainer methods |
function CreateVideoPort(dwFlags: DWORD; const lpDDVideoPortDesc: |
TDDVideoportDesc; out lplpDDVideoPort: IDirectDrawVideoPort; |
pUnkOuter: IUnknown): HResult; stdcall; |
function EnumVideoPorts(dwFlags: DWORD; |
const lpDDVideoPortCaps: TDDVideoportCaps; lpContext: Pointer; |
lpEnumVideoCallback: TDDEnumVideoCallback): HResult; stdcall; |
function GetVideoPortConnectInfo(dwPortId: DWORD; var lpNumEntries: DWORD; |
var lpConnectInfo: TDDVideoportConnect): HResult; stdcall; |
function QueryVideoPortStatus(dwPortId: DWORD; |
var lpVPStatus: TDDVideoportStatus): HResult; stdcall; |
end; |
{ IDirectDrawVideoPort Interface } |
IDirectDrawVideoPort = interface(IUnknown) |
['{B36D93E0-2B43-11CF-A2DE-00AA00B93356}'] |
// IDirectDrawVideoPort methods |
function Flip(lpDDSurface: IDirectDrawSurface; dwFlags: DWORD): HResult; stdcall; |
function GetBandwidthInfo(const lpddpfFormat: TDDPixelFormat; dwWidth: DWORD; |
dwHeight: DWORD; dwFlags: DWORD; var lpBandwidth: TDDVideoportBandWidth): HResult; stdcall; |
function GetColorControls(var lpColorControl: TDDColorControl): HResult; stdcall; |
function GetInputFormats(var lpNumFormats: DWORD; var lpFormats: |
TDDPixelFormat; dwFlags: DWORD): HResult; stdcall; |
function GetOutputFormats(const lpInputFormat: TDDPixelFormat; |
var lpNumFormats: DWORD; var lpFormats: TDDPixelFormat; dwFlags: DWORD): HResult; stdcall; |
function GetFieldPolarity(var lpbVideoField: BOOL): HResult; stdcall; |
function GetVideoLine(var lpdwLine: DWORD): HResult; stdcall; |
function GetVideoSignalStatus(varlpdwStatus: DWORD): HResult; stdcall; |
function SetColorControls(const lpColorControl: TDDColorControl): HResult; stdcall; |
function SetTargetSurface(lpDDSurface: IDirectDrawSurface; dwFlags: DWORD): HResult; stdcall; |
function StartVideo(const lpVideoInfo: TDDVideoportInfo): HResult; stdcall; |
function StopVideo: HResult; stdcall; |
function UpdateVideo(const lpVideoInfo: TDDVideoportInfo): HResult; stdcall; |
function WaitForSync(dwFlags: DWORD; dwLine: DWORD; dwTimeout: DWORD): HResult; stdcall; |
end; |
const |
{ Video Port Flags } |
(*============================================================================ |
* |
* Video Port Flags |
* |
* All flags are bit flags. |
* |
*==========================================================================*) |
DDVPD_WIDTH = $00000001; |
DDVPD_HEIGHT = $00000002; |
DDVPD_ID = $00000004; |
DDVPD_CAPS = $00000008; |
DDVPD_FX = $00000010; |
DDVPD_AUTOFLIP = $00000020; |
DDVPD_ALIGN = $00000040; |
DDVPD_PREFERREDAUTOFLIP = $00000080; |
DDVPD_FILTERQUALITY = $00000100; |
(**************************************************************************** |
* |
* VIDEOPORT TDDVideoPortConnect FLAGS |
* |
****************************************************************************) |
{ TDDVideoportConnect flags } |
(* |
* When this is set by the driver and passed to the client, this |
* indicates that the video port is capable of double clocking the data. |
* When this is set by the client, this indicates that the video port |
* should enable double clocking. This flag is only valid with external |
* syncs. |
*) |
DDVPCONNECT_DOUBLECLOCK = $00000001; |
DDVPCONNECT_DOUBLECLOCK = $00000001; |
(* |
* When this is set by the driver and passed to the client, this |
* indicates that the video port is capable of using an external VACT |
* signal. When this is set by the client, this indicates that the |
* video port should use the external VACT signal. |
*) |
DDVPCONNECT_VACT = $00000002; |
(* |
* When this is set by the driver and passed to the client, this |
* indicates that the video port is capable of treating even fields |
* like odd fields and visa versa. When this is set by the client, |
* this indicates that the video port should treat even fields like odd |
* fields. |
*) |
DDVPCONNECT_INVERTPOLARITY = $00000004; |
(* |
* Indicates that any data written to the video port during the VREF |
* period will not be written into the frame buffer. This flag is read only. |
*) |
DDVPCONNECT_DISCARDSVREFDATA = $00000008; |
(* |
* When this is set be the driver and passed to the client, this |
* indicates that the device will write half lines into the frame buffer |
* if half lines are provided by the decoder. If this is set by the client, |
* this indicates that the decoder will be supplying half lines. |
*) |
DDVPCONNECT_HALFLINE = $00000010; |
(* |
* Indicates that the signal is interlaced. This flag is only |
* set by the client. |
*) |
DDVPCONNECT_INTERLACED = $00000020; |
(* |
* Indicates that video port is shareable and that this video port |
* will use the even fields. This flag is only set by the client. |
*) |
DDVPCONNECT_SHAREEVEN = $00000040; |
(* |
* Indicates that video port is shareable and that this video port |
* will use the odd fields. This flag is only set by the client. |
*) |
DDVPCONNECT_SHAREODD = $00000080; |
{ TDDVideoportDesc caps } |
(**************************************************************************** |
* |
* VIDEOPORT TDDVideoPortDesc CAPS |
* |
****************************************************************************) |
(* |
* Flip can be performed automatically to avoid tearing. |
*) |
DDVPCAPS_AUTOFLIP = $00000001; |
(* |
* Supports interlaced video |
*) |
DDVPCAPS_INTERLACED = $00000002; |
(* |
* Supports non-interlaced video |
*) |
DDVPCAPS_NONINTERLACED = $00000004; |
(* |
* Indicates that the device can return whether the current field |
* of an interlaced signal is even or odd. |
*) |
DDVPCAPS_READBACKFIELD = $00000008; |
(* |
* Indicates that the device can return the current line of video |
* being written into the frame buffer. |
*) |
DDVPCAPS_READBACKLINE = $00000010; |
(* |
* Allows two gen-locked video streams to share a single video port, |
* where one stream uses the even fields and the other uses the odd |
* fields. Separate parameters (including address, scaling, |
* cropping, etc.) are maintained for both fields.) |
*) |
DDVPCAPS_SHAREABLE = $00000020; |
(* |
* Even fields of video can be automatically discarded. |
*) |
DDVPCAPS_SKIPEVENFIELDS = $00000040; |
(* |
* Odd fields of video can be automatically discarded. |
*) |
DDVPCAPS_SKIPODDFIELDS = $00000080; |
(* |
* Indicates that the device is capable of driving the graphics |
* VSYNC with the video port VSYNC. |
*) |
DDVPCAPS_SYNCMASTER = $00000100; |
(* |
* Indicates that data within the vertical blanking interval can |
* be written to a different surface. |
*) |
DDVPCAPS_VBISURFACE = $00000200; |
(* |
* Indicates that the video port can perform color operations |
* on the incoming data before it is written to the frame buffer. |
*) |
DDVPCAPS_COLORCONTROL = $00000400; |
(* |
* Indicates that the video port can accept VBI data in a different |
* width or format than the regular video data. |
*) |
DDVPCAPS_OVERSAMPLEDVBI = $00000800; |
(* |
* Indicates that the video port can write data directly to system memory |
*) |
DDVPCAPS_SYSTEMMEMORY = $00001000; |
(* |
* Indicates that the VBI and video portions of the video stream can |
* be controlled by an independent processes. |
*) |
DDVPCAPS_VBIANDVIDEOINDEPENDENT = $00002000; |
(* |
* Indicates that the video port contains high quality hardware |
* de-interlacing hardware that should be used instead of the |
* bob/weave algorithms. |
*) |
DDVPCAPS_HARDWAREDEINTERLACE = $00004000; |
{ TDDVideoportDesc FX } |
(**************************************************************************** |
* |
* VIDEOPORT TDDVideoPortDesc FX |
* |
****************************************************************************) |
(* |
* Limited cropping is available to crop out the vertical interval data. |
*) |
DDVPFX_CROPTOPDATA = $00000001; |
(* |
* Incoming data can be cropped in the X direction before it is written |
* to the surface. |
*) |
DDVPFX_CROPX = $00000002; |
(* |
* Incoming data can be cropped in the Y direction before it is written |
* to the surface. |
*) |
DDVPFX_CROPY = $00000004; |
(* |
* Supports interleaving interlaced fields in memory. |
*) |
DDVPFX_INTERLEAVE = $00000008; |
(* |
* Supports mirroring left to right as the video data is written |
* into the frame buffer. |
*) |
DDVPFX_MIRRORLEFTRIGHT = $00000010; |
(* |
* Supports mirroring top to bottom as the video data is written |
* into the frame buffer. |
*) |
DDVPFX_MIRRORUPDOWN = $00000020; |
(* |
* Data can be arbitrarily shrunk in the X direction before it |
* is written to the surface. |
*) |
DDVPFX_PRESHRINKX = $00000040; |
(* |
* Data can be arbitrarily shrunk in the Y direction before it |
* is written to the surface. |
*) |
DDVPFX_PRESHRINKY = $00000080; |
(* |
* Data can be binary shrunk (1/2, 1/4, 1/8, etc.) in the X |
* direction before it is written to the surface. |
*) |
DDVPFX_PRESHRINKXB = $00000100; |
(* |
* Data can be binary shrunk (1/2, 1/4, 1/8, etc.) in the Y |
* direction before it is written to the surface. |
*) |
DDVPFX_PRESHRINKYB = $00000200; |
(* |
* Data can be shrunk in increments of 1/x in the X direction |
* (where X is specified in the TDDVideoPortCaps.dwPreshrinkXStep) |
* before it is written to the surface. |
*) |
DDVPFX_PRESHRINKXS = $00000400; |
(* |
* Data can be shrunk in increments of 1/x in the Y direction |
* (where X is specified in the TDDVideoPortCaps.dwPreshrinkYStep) |
* before it is written to the surface. |
*) |
DDVPFX_PRESHRINKYS = $00000800; |
(* |
* Data can be arbitrarily stretched in the X direction before |
* it is written to the surface. |
*) |
DDVPFX_PRESTRETCHX = $00001000; |
(* |
* Data can be arbitrarily stretched in the Y direction before |
* it is written to the surface. |
*) |
DDVPFX_PRESTRETCHY = $00002000; |
(* |
* Data can be integer stretched in the X direction before it is |
* written to the surface. |
*) |
DDVPFX_PRESTRETCHXN = $00004000; |
(* |
* Data can be integer stretched in the Y direction before it is |
* written to the surface. |
*) |
DDVPFX_PRESTRETCHYN = $00008000; |
(* |
* Indicates that data within the vertical blanking interval can |
* be converted independently of the remaining video data. |
*) |
DDVPFX_VBICONVERT = $00010000; |
(* |
* Indicates that scaling can be disabled for data within the |
* vertical blanking interval. |
*) |
DDVPFX_VBINOSCALE = $00020000; |
(* |
* Indicates that the video data can ignore the left and right |
* cropping coordinates when cropping oversampled VBI data. |
*) |
DDVPFX_IGNOREVBIXCROP = $00040000; |
(* |
* Indicates that interleaving can be disabled for data within the |
* vertical blanking interval. |
*) |
DDVPFX_VBINOINTERLEAVE = $00080000; |
{ TDDVideoportInfo flags } |
(**************************************************************************** |
* |
* VIDEOPORT TDDVideoPortInfo FLAGS |
* |
****************************************************************************) |
(* |
* Perform automatic flipping. Auto-flipping is performed between |
* the overlay surface that was attached to the video port using |
* IDirectDrawVideoPort::AttachSurface and the overlay surfaces that |
* are attached to the surface via the IDirectDrawSurface::AttachSurface |
* method. The flip order is the order in which the overlay surfaces |
* were. attached. |
*) |
DDVP_AUTOFLIP = $00000001; |
(* |
* Perform conversion using the ddpfOutputFormat information. |
*) |
DDVP_CONVERT = $00000002; |
(* |
* Perform cropping using the specified rectangle. |
*) |
DDVP_CROP = $00000004; |
(* |
* Indicates that interlaced fields should be interleaved in memory. |
*) |
DDVP_INTERLEAVE = $00000008; |
(* |
* Indicates that the data should be mirrored left to right as it's |
* written into the frame buffer. |
*) |
DDVP_MIRRORLEFTRIGHT = $00000010; |
(* |
* Indicates that the data should be mirrored top to bottom as it's |
* written into the frame buffer. |
*) |
DDVP_MIRRORUPDOWN = $00000020; |
(* |
* Perform pre-scaling/zooming based on the pre-scale parameters. |
*) |
DDVP_PRESCALE = $00000040; |
(* |
* Ignore input of even fields. |
*) |
DDVP_SKIPEVENFIELDS = $00000080; |
(* |
* Ignore input of odd fields. |
*) |
DDVP_SKIPODDFIELDS = $00000100; |
(* |
* Drive the graphics VSYNCs using the video port VYSNCs. |
*) |
DDVP_SYNCMASTER = $00000200; |
(* |
* The ddpfVBIOutputFormatFormat member contains data that should be used |
* to convert the data within the vertical blanking interval. |
*) |
DDVP_VBICONVERT = $00000400; |
(* |
* Indicates that data within the vertical blanking interval |
* should not be scaled. |
*) |
DDVP_VBINOSCALE = $00000800; |
(* |
* Indicates that these bob/weave decisions should not be |
* overriden by other interfaces. |
*) |
DDVP_OVERRIDEBOBWEAVE = $00001000; |
(* |
* Indicates that the video data should ignore the left and right |
* cropping coordinates when cropping the VBI data. |
*) |
DDVP_IGNOREVBIXCROP = $00002000; |
(* |
* Indicates that interleaving can be disabled for data within the |
* vertical blanking interval. |
*) |
DDVP_VBINOINTERLEAVE = $00004000; |
(* |
* Indicates that the video port should use the hardware |
* de-interlacing hardware. |
*) |
DDVP_HARDWAREDEINTERLACE = $00008000; |
{ DirectDrawVideoport GetInputFormat/GetOutputFormat flags } |
(**************************************************************************** |
* |
* DIRIRECTDRAWVIDEOPORT GETINPUTFORMAT/GETOUTPUTFORMAT FLAGS |
* |
****************************************************************************) |
(* |
* Return formats for the video data |
*) |
DDVPFORMAT_VIDEO = $00000001; |
(* |
* Return formats for the VBI data |
*) |
DDVPFORMAT_VBI = $00000002; |
{ DirectDrawVideoport SetTargetSurface flags } |
(**************************************************************************** |
* |
* DIRIRECTDRAWVIDEOPORT SETTARGETSURFACE FLAGS |
* |
****************************************************************************) |
(* |
* Surface should receive video data (and VBI data if a surface |
* is not explicitly attached for that purpose) |
*) |
DDVPTARGET_VIDEO = $00000001; |
(* |
* Surface should receive VBI data |
*) |
DDVPTARGET_VBI = $00000002; |
{ DirectDrawVideoport WaitForSync flags } |
(**************************************************************************** |
* |
* DIRIRECTDRAWVIDEOPORT WAITFORSYNC FLAGS |
* |
****************************************************************************) |
(* |
* Waits until the beginning of the next VSYNC |
*) |
DDVPWAIT_BEGIN = $00000001; |
(* |
* Waits until the end of the next/current VSYNC |
*) |
DDVPWAIT_END = $00000002; |
(* |
* Waits until the beginning of the specified line |
*) |
DDVPWAIT_LINE = $00000003; |
{ DirectDrawVideoport flip flags } |
(**************************************************************************** |
* |
* DIRECTDRAWVIDEOPORT FLIP FLAGS |
* |
****************************************************************************) |
(* |
* Flips the normal video surface |
*) |
DDVPFLIP_VIDEO = $00000001; |
(* |
* Flips the VBI surface |
*) |
DDVPFLIP_VBI = $00000002; |
{ DirectDrawVideoport GetVideoSiginalStatus values } |
(**************************************************************************** |
* |
* DIRIRECTDRAWVIDEOPORT GETVIDEOSIGNALSTATUS VALUES |
* |
****************************************************************************) |
(* |
* No video signal is present at the video port |
*) |
DDVPSQ_NOSIGNAL = $00000001; |
(* |
* A valid video signal is present at the video port |
*) |
DDVPSQ_SIGNALOK = $00000002; |
{ TDDVideoportBandWidth Flags } |
(**************************************************************************** |
* |
* VIDEOPORTBANDWIDTH Flags |
* |
****************************************************************************) |
(* |
* The specified height/width refer to the size of the video port data |
* written into memory, after prescaling has occured. |
*) |
DDVPB_VIDEOPORT = $00000001; |
(* |
* The specified height/width refer to the source size of the overlay. |
*) |
DDVPB_OVERLAY = $00000002; |
(* |
* This is a query for the device to return which caps this device requires. |
*) |
DDVPB_TYPE = $00000004; |
{ TDDVideoportBandWidth Caps } |
(**************************************************************************** |
* |
* VIDEOPORTBANDWIDTH Caps |
* |
****************************************************************************) |
(* |
* The bandwidth for this device is dependant on the overlay source size. |
*) |
DDVPBCAPS_SOURCE = $00000001; |
(* |
* The bandwidth for this device is dependant on the overlay destination |
* size. |
*) |
DDVPBCAPS_DESTINATION = $00000002; |
{ IDDVideoportContainer.CreateVideoPort flags } |
(**************************************************************************** |
* |
* DDVIDEOPORTCONTAINER CreateVideoPort flags |
* |
****************************************************************************) |
(* |
* The process only wants to control the VBI portion of the video stream. |
*) |
DDVPCREATE_VBIONLY = $00000001; |
(* |
* The process only wants to control the non-VBI (video) portion of |
* the video stream. |
*) |
DDVPCREATE_VIDEOONLY = $00000002; |
{ TDDVideoportStatus flags } |
(**************************************************************************** |
* |
* DDVIDEOPORTSTATUS flags |
* |
****************************************************************************) |
(* |
* The video port interface is only controlling the VBI portion of the |
* video stream |
*) |
DDVPSTATUS_VBIONLY = $00000001; |
(* |
* The video port interface is only controlling the video portion of the |
* video stream |
*) |
DDVPSTATUS_VIDEOONLY = $00000002; |
type |
(* |
* API's |
*) |
TDDEnumVideoCallback = function (lpTDDVideoPortCaps: PDDVideoPortCaps; |
lpContext: Pointer) : HResult; stdcall; |
(* |
* INTERACES FOLLOW: |
* IDirectDrawVideoPort |
* IVideoPort |
*) |
(* |
* IDirectDrawVideoPort |
*) |
IDirectDrawVideoPort = interface (IUnknown) |
['{B36D93E0-2B43-11CF-A2DE-00AA00B93356}'] |
(*** IDirectDrawVideoPort methods ***) |
function Flip(lpDDSurface: IDirectDrawSurface; dwFlags: DWORD) : HResult; stdcall; |
function GetBandwidthInfo(var lpddpfFormat: TDDPixelFormat; |
dwWidth: DWORD; dwHeight: DWORD; dwFlags: DWORD; |
var lpBandwidth: TDDVideoPortBandWidth) : HResult; stdcall; |
function GetColorControls(var lpColorControl: TDDColorControl) : HResult; stdcall; |
function GetInputFormats(var lpNumFormats: DWORD; var lpFormats: |
TDDPixelFormat; dwFlags: DWORD) : HResult; stdcall; |
function GetOutputFormats(var lpInputFormat: TDDPixelFormat; |
var lpNumFormats: DWORD; lpFormats: PDDPixelFormat; dwFlags: DWORD) |
: HResult; stdcall; |
function GetFieldPolarity(var lpbVideoField: BOOL) : HResult; stdcall; |
function GetVideoLine(var lpdwLine: DWORD) : HResult; stdcall; |
function GetVideoSignalStatus(varlpdwStatus: DWORD) : HResult; stdcall; |
function SetColorControls(var lpColorControl: TDDColorControl) : HResult; stdcall; |
function SetTargetSurface(lpDDSurface: IDirectDrawSurface; dwFlags: DWORD) : |
HResult; stdcall; |
function StartVideo(var lpVideoInfo: TDDVideoPortInfo) : HResult; stdcall; |
function StopVideo: HResult; stdcall; |
function UpdateVideo(var lpVideoInfo: TDDVideoPortInfo) : HResult; stdcall; |
function WaitForSync(dwFlags: DWORD; dwLine: DWORD; dwTimeout: DWORD) : |
HResult; stdcall; |
end; |
(* |
* IDirectDrawVideoPortContainer |
*) |
IDDVideoPortContainer = interface (IUnknown) |
['{6C142760-A733-11CE-A521-0020AF0BE560}'] |
(*** IDDVideoPortContainer methods ***) |
function CreateVideoPort(dwFlags: DWORD; var lpTDDVideoPortDesc: |
TDDVideoPortDesc; var lplpDDVideoPort: IDirectDrawVideoPort; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function EnumVideoPorts(dwFlags: DWORD; |
lpTDDVideoPortCaps: PDDVideoPortCaps; lpContext: Pointer; |
lpEnumVideoCallback: TDDEnumVideoCallback) : HResult; stdcall; |
function GetVideoPortConnectInfo(dwPortId: DWORD; var lpNumEntries: DWORD; |
lpConnectInfo: PDDVideoPortConnect) : HResult; stdcall; |
function QueryVideoPortStatus(dwPortId: DWORD; |
var lpVPStatus: TDDVideoPortStatus) : HResult; stdcall; |
end; |
IID_IDDVideoPortContainer = IDDVideoPortContainer; |
IID_IDirectDrawVideoPort = IDirectDrawVideoPort; |
//Direct3D file |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* Copyright (C) 1995-1998 Microsoft Corporation. All Rights Reserved. |
* |
* File: d3dtypes.h |
* Content: Direct3D types include file |
* Files: d3dtypes.h d3dcaps.h d3d.h |
* |
* DirectX 7.0 Delphi adaptation by Erik Unger |
* |
* Modyfied: 26-Jun-2000 |
* |
* Download: http://www.delphi-jedi.org/DelphiGraphics/ |
* E-Mail: DelphiDirectX@next-reality.com |
* |
***************************************************************************) |
(* TD3DValue is the fundamental Direct3D fractional data type *) |
type |
TRefClsID = TGUID; |
type |
TD3DValue = Single; |
D3DValue = TD3DValue; |
TD3DFixed = Longint; |
D3DFIXED = TD3DFixed; |
TD3DFixed = LongInt; |
float = TD3DValue; |
PD3DColor = ^TD3DColor; |
TD3DColor = DWORD; |
D3DCOLOR = TD3DColor; |
function D3DVALP(val: TD3DValue; prec: Integer): TD3DValue; |
function D3DVAL(val: TD3DValue): TD3DValue; |
function D3DDivide(a, b: TD3DValue): TD3DValue; |
function D3DMultiply(a, b: TD3DValue): TD3DValue; |
function D3DVal(val: variant) : float; |
function D3DDivide(a,b: double) : float; |
function D3DMultiply(a,b: double) : float; |
(* |
* Format of CI colors is |
2524,13 → 5731,24 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
*) |
function CI_GETALPHA(ci: Integer): Byte; |
function CI_GETINDEX(ci: Integer): Word; |
function CI_GETFRACTION(ci: Integer): Byte; |
function CI_ROUNDINDEX(ci: Integer): Integer; |
function CI_MASKALPHA(ci: Integer): Integer; |
function CI_MAKE(a: Byte; i: Word; f: Byte): Integer; |
// #define CI_GETALPHA(ci) ((ci) >> 24) |
function CI_GETALPHA(ci: DWORD) : DWORD; |
// #define CI_GETINDEX(ci) (((ci) >> 8) & 0xffff) |
function CI_GETINDEX(ci: DWORD) : DWORD; |
// #define CI_GETFRACTION(ci) ((ci) & 0xff) |
function CI_GETFRACTION(ci: DWORD) : DWORD; |
// #define CI_ROUNDINDEX(ci) CI_GETINDEX((ci) + 0x80) |
function CI_ROUNDINDEX(ci: DWORD) : DWORD; |
// #define CI_MASKALPHA(ci) ((ci) & 0xffffff) |
function CI_MASKALPHA(ci: DWORD) : DWORD; |
// #define CI_MAKE(a, i, f) (((a) << 24) | ((i) << 8) | (f)) |
function CI_MAKE(a,i,f: DWORD) : DWORD; |
(* |
* Format of RGBA colors is |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
2538,19 → 5756,35 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
*) |
function RGBA_GETALPHA(rgb: TD3DColor): Byte; |
function RGBA_GETRED(rgb: TD3DColor): Byte; |
function RGBA_GETGREEN(rgb: TD3DColor): Byte; |
function RGBA_GETBLUE(rgb: TD3DColor): Byte; |
function RGBA_MAKE(r, g, b, a: Byte): TD3DColor; |
// #define RGBA_GETALPHA(rgb) ((rgb) >> 24) |
function RGBA_GETALPHA(rgb: TD3DColor) : DWORD; |
// #define RGBA_GETRED(rgb) (((rgb) >> 16) & 0xff) |
function RGBA_GETRED(rgb: TD3DColor) : DWORD; |
// #define RGBA_GETGREEN(rgb) (((rgb) >> 8) & 0xff) |
function RGBA_GETGREEN(rgb: TD3DColor) : DWORD; |
// #define RGBA_GETBLUE(rgb) ((rgb) & 0xff) |
function RGBA_GETBLUE(rgb: TD3DColor) : DWORD; |
// #define RGBA_MAKE(r, g, b, a) ((TD3DColor) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))) |
function RGBA_MAKE(r, g, b, a: DWORD) : TD3DColor; |
(* D3DRGB and D3DRGBA may be used as initialisers for D3DCOLORs |
* The float values must be in the range 0..1 |
*) |
function D3DRGB(r, g, b: TD3DValue): TD3DColor; |
function D3DRGBA(r, g, b, a: TD3DValue): TD3DColor; |
// #define D3DRGB(r, g, b) \ |
// (0xff000000L | (((long)((r) * 255)) << 16) | (((long)((g) * 255)) << 8) | (long)((b) * 255)) |
function D3DRGB(r, g, b: float) : TD3DColor; |
// #define D3DRGBA(r, g, b, a) \ |
// ( (((long)((a) * 255)) << 24) | (((long)((r) * 255)) << 16) \ |
// | (((long)((g) * 255)) << 8) | (long)((b) * 255) \ |
// ) |
function D3DRGBA(r, g, b, a: float) : TD3DColor; |
(* |
* Format of RGB colors is |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
2558,44 → 5792,64 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
*) |
function RGB_GETRED(rgb: TD3DColor): Byte; |
function RGB_GETGREEN(rgb: TD3DColor): Byte; |
function RGB_GETBLUE(rgb: TD3DColor): Byte; |
function RGBA_SETALPHA(rgba: TD3DColor; x: Byte): TD3DColor; |
function RGB_MAKE(r, g, b: Byte): TD3DColor; |
// #define RGB_GETRED(rgb) (((rgb) >> 16) & 0xff) |
function RGB_GETRED(rgb: TD3DColor) : DWORD; |
// #define RGB_GETGREEN(rgb) (((rgb) >> 8) & 0xff) |
function RGB_GETGREEN(rgb: TD3DColor) : DWORD; |
// #define RGB_GETBLUE(rgb) ((rgb) & 0xff) |
function RGB_GETBLUE(rgb: TD3DColor) : DWORD; |
// #define RGBA_SETALPHA(rgba, x) (((x) << 24) | ((rgba) & 0x00ffffff)) |
function RGBA_SETALPHA(rgba: TD3DColor; x: DWORD) : TD3DColor; |
// #define RGB_MAKE(r, g, b) ((TD3DColor) (((r) << 16) | ((g) << 8) | (b))) |
function RGB_MAKE(r, g, b: DWORD) : TD3DColor; |
// #define RGBA_TORGB(rgba) ((TD3DColor) ((rgba) & 0xffffff)) |
function RGBA_TORGB(rgba: TD3DColor): TD3DColor; |
// #define RGB_TORGBA(rgb) ((TD3DColor) ((rgb) | 0xff000000)) |
function RGB_TORGBA(rgb: TD3DColor): TD3DColor; |
(* |
* Flags for Enumerate functions |
*) |
const |
{ Flags for Enumerate functions } |
(* |
* Stop the enumeration |
*) |
D3DENUMRET_CANCEL = DDENUMRET_CANCEL; |
(* |
* Continue the enumeration |
*) |
D3DENUMRET_OK = DDENUMRET_OK; |
type |
TD3DValidateCallback = function(lpUserArg: Pointer; dwOffset: DWORD): HResult; stdcall; |
LPD3DVALIDATECALLBACK = TD3DValidateCallback; |
TD3DEnumTextureFormatsCalback = function(const lpDdsd: TDDSurfaceDesc; |
TD3DValidateCallback = function (lpUserArg: Pointer; |
dwOffset: DWORD): HResult; stdcall; |
TD3DEnumTextureFormatsCallback = function (var lpDdsd: TDDSurfaceDesc; |
lpContext: Pointer): HResult; stdcall; |
LPD3DENUMTEXTUREFORMATSCALLBACK = TD3DEnumTextureFormatsCalback; |
TD3DEnumPixelFormatsCallback = function(const lpDDPixFmt: TDDPixelFormat; |
TD3DEnumPixelFormatsCallback = function (var lpDDPixFmt: TDDPixelFormat; |
lpContext: Pointer): HResult; stdcall; |
PD3DMaterialHandle = ^TD3DMaterialHandle; |
TD3DMaterialHandle = DWORD; |
D3DMATERIALHANDLE = TD3DMaterialHandle; |
PD3DTextureHandle = ^TD3DTextureHandle; |
TD3DTextureHandle = DWORD; |
D3DTEXTUREHANDLE = TD3DTextureHandle; |
PD3DMatrixHandle = ^TD3DMatrixHandle; |
TD3DMatrixHandle = DWORD; |
D3DMATRIXHANDLE = TD3DMatrixHandle; |
{ TD3DColorValue structure } |
PD3DColorValue = ^TD3DColorValue; |
TD3DColorValue = record |
TD3DColorValue = packed record |
case Integer of |
0: ( |
r: TD3DValue; |
2611,34 → 5865,28 |
); |
end; |
D3DCOLORVALUE = TD3DColorValue; |
{ TD3DRect structure } |
PD3DRect = ^TD3DRect; |
TD3DRect = record |
TD3DRect = packed record |
case Integer of |
0: ( |
x1: Longint; |
y1: Longint; |
x2: Longint; |
y2: Longint; |
x1: LongInt; |
y1: LongInt; |
x2: LongInt; |
y2: LongInt; |
); |
1: ( |
lX1: Longint; |
lY1: Longint; |
lX2: Longint; |
lY2: Longint; |
lX1: LongInt; |
lY1: LongInt; |
lX2: LongInt; |
lY2: LongInt; |
); |
2: ( |
a: array[0..3] of LongInt; |
); |
end; |
D3DRECT = TD3DRect; |
LPD3DRECT = PD3DRect; |
{ TD3DVector structure } |
PD3DVector = ^TD3DVector; |
TD3DVector = record |
TD3DVector = packed record |
case Integer of |
0: ( |
x: TD3DValue; |
2652,18 → 5900,25 |
); |
end; |
D3DVECTOR = TD3DVector; |
LPD3DVECTOR = PD3DVector; |
(****************************************************************** |
* * |
* D3DVec.inl * |
* * |
* Float-valued 3D vector class for Direct3D. * |
* * |
* Copyright (c) 1996-1998 Microsoft Corp. All rights reserved. * |
* * |
******************************************************************) |
// Addition and subtraction |
function VectorAdd(v1, v2: TD3DVector) : TD3DVector; |
function VectorSub(v1, v2: TD3DVector) : TD3DVector; |
function VectorAdd(const v1, v2: TD3DVector) : TD3DVector; |
function VectorSub(const v1, v2: TD3DVector) : TD3DVector; |
// Scalar multiplication and division |
function VectorMulS(v: TD3DVector; s: TD3DValue) : TD3DVector; |
function VectorDivS(v: TD3DVector; s: TD3DValue) : TD3DVector; |
function VectorMulS(const v: TD3DVector; s: TD3DValue) : TD3DVector; |
function VectorDivS(const v: TD3DVector; s: TD3DValue) : TD3DVector; |
// Memberwise multiplication and division |
function VectorMul(v1, v2: TD3DVector) : TD3DVector; |
function VectorDiv(v1, v2: TD3DVector) : TD3DVector; |
function VectorMul(const v1, v2: TD3DVector) : TD3DVector; |
function VectorDiv(const v1, v2: TD3DVector) : TD3DVector; |
// Vector dominance |
function VectorSmaller(v1, v2: TD3DVector) : boolean; |
function VectorSmallerEquel(v1, v2: TD3DVector) : boolean; |
2673,25 → 5928,29 |
function VectorSquareMagnitude(v: TD3DVector) : TD3DValue; |
function VectorMagnitude(v: TD3DVector) : TD3DValue; |
// Returns vector with same direction and unit length |
function VectorNormalize(v: TD3DVector) : TD3DVector; |
function VectorNormalize(const v: TD3DVector) : TD3DVector; |
// Return min/max component of the input vector |
function VectorMin(v: TD3DVector) : TD3DValue; |
function VectorMax(v: TD3DVector) : TD3DValue; |
// Return memberwise min/max of input vectors |
function VectorMinimize(v1, v2: TD3DVector) : TD3DVector; |
function VectorMaximize(v1, v2: TD3DVector) : TD3DVector; |
function VectorMinimize(const v1, v2: TD3DVector) : TD3DVector; |
function VectorMaximize(const v1, v2: TD3DVector) : TD3DVector; |
// Dot and cross product |
function VectorDotProduct(v1, v2: TD3DVector) : TD3DValue; |
function VectorCrossProduct(v1, v2: TD3DVector) : TD3DVector; |
function VectorCrossProduct(const v1, v2: TD3DVector) : TD3DVector; |
type |
{ Vertex data types supported in an ExecuteBuffer. } |
(* |
* Vertex data types supported in an ExecuteBuffer. |
*) |
{ TD3DHVertex structure } |
(* |
* Homogeneous vertices |
*) |
PD3DHVertex = ^TD3DHVertex; |
TD3DHVertex = record |
dwFlags: DWORD; // Homogeneous clipping flags |
TD3DHVertex = packed record |
dwFlags: DWORD; (* Homogeneous clipping flags *) |
case Integer of |
0: ( |
hx: TD3DValue; |
2705,21 → 5964,21 |
); |
end; |
D3DHVERTEX = TD3DHVertex; |
(* |
* Transformed/lit vertices |
*) |
{ TD3DTLVertex structure } |
PD3DTLVertex = ^TD3DTLVertex; |
TD3DTLVertex = record |
TD3DTLVertex = packed record |
case Integer of |
0: ( |
sx: TD3DValue; // Screen coordinates |
sx: TD3DValue; (* Screen coordinates *) |
sy: TD3DValue; |
sz: TD3DValue; |
rhw: TD3DValue; // Reciprocal of homogeneous w |
color: TD3DColor; // Vertex color |
specular: TD3DColor; // Specular component of vertex |
tu: TD3DValue; // Texture coordinates |
rhw: TD3DValue; (* Reciprocal of homogeneous w *) |
color: TD3DColor; (* Vertex color *) |
specular: TD3DColor; (* Specular component of vertex *) |
tu: TD3DValue; (* Texture coordinates *) |
tv: TD3DValue; |
); |
1: ( |
2734,21 → 5993,21 |
); |
end; |
D3DTLVERTEX = TD3DTLVertex; |
(* |
* Untransformed/lit vertices |
*) |
{ TD3DLVertex structure } |
PD3DLVertex = ^TD3DLVertex; |
TD3DLVertex = record |
TD3DLVertex = packed record |
case Integer of |
0: ( |
x: TD3DValue; // Homogeneous coordinates |
x: TD3DValue; (* Homogeneous coordinates *) |
y: TD3DValue; |
z: TD3DValue; |
dwReserved: DWORD; |
color: TD3DColor; // Vertex color |
specular: TD3DColor; // Specular component of vertex |
tu: TD3DValue; // Texture coordinates |
color: TD3DColor; (* Vertex color *) |
specular: TD3DColor; (* Specular component of vertex *) |
tu: TD3DValue; (* Texture coordinates *) |
tv: TD3DValue; |
); |
1: ( |
2755,7 → 6014,7 |
dvX: TD3DValue; |
dvY: TD3DValue; |
dvZ: TD3DValue; |
_union1d: DWORD; |
UNIONFILLER1d: DWORD; |
dcColor: TD3DColor; |
dcSpecular: TD3DColor; |
dvTU: TD3DValue; |
2763,21 → 6022,21 |
); |
end; |
D3DLVERTEX = TD3DLVertex; |
(* |
* Untransformed/unlit vertices |
*) |
{ TD3DVertex structure } |
PD3DVertex = ^TD3DVertex; |
TD3DVertex = record |
TD3DVertex = packed record |
case Integer of |
0: ( |
x: TD3DValue; // Homogeneous coordinates |
x: TD3DValue; (* Homogeneous coordinates *) |
y: TD3DValue; |
z: TD3DValue; |
nx: TD3DValue; // Normal |
nx: TD3DValue; (* Normal *) |
ny: TD3DValue; |
nz: TD3DValue; |
tu: TD3DValue; // Texture coordinates |
tu: TD3DValue; (* Texture coordinates *) |
tv: TD3DValue; |
); |
1: ( |
2792,86 → 6051,78 |
); |
end; |
D3DVERTEX = TD3DVertex; |
(* |
* Matrix, viewport, and tranformation structures and definitions. |
*) |
{ TD3DMatrix structure } |
PD3DMatrix = ^TD3DMatrix; |
TD3DMatrix = record |
_11, _12, _13, _14: TD3DValue; |
TD3DMatrix = packed record |
case integer of |
0 : (_11, _12, _13, _14: TD3DValue; |
_21, _22, _23, _24: TD3DValue; |
_31, _32, _33, _34: TD3DValue; |
_41, _42, _43, _44: TD3DValue; |
_41, _42, _43, _44: TD3DValue); |
1 : (m : array [0..3, 0..3] of TD3DValue); |
end; |
D3DMATRIX = TD3DMatrix; |
{ TD3DViewport structure } |
PD3DViewport = ^TD3DViewport; |
TD3DViewport = record |
TD3DViewport = packed record |
dwSize: DWORD; |
dwX: DWORD; |
dwY: DWORD; // Top left |
dwY: DWORD; (* Top left *) |
dwWidth: DWORD; |
dwHeight: DWORD; // Dimensions |
dvScaleX: TD3DValue; // Scale homogeneous to screen |
dvScaleY: TD3DValue; // Scale homogeneous to screen |
dvMaxX: TD3DValue; // Min/max homogeneous x coord |
dvMaxY: TD3DValue; // Min/max homogeneous y coord |
dwHeight: DWORD; (* Dimensions *) |
dvScaleX: TD3DValue; (* Scale homogeneous to screen *) |
dvScaleY: TD3DValue; (* Scale homogeneous to screen *) |
dvMaxX: TD3DValue; (* Min/max homogeneous x coord *) |
dvMaxY: TD3DValue; (* Min/max homogeneous y coord *) |
dvMinZ: TD3DValue; |
dvMaxZ: TD3DValue; // Min/max homogeneous z coord |
dvMaxZ: TD3DValue; (* Min/max homogeneous z coord *) |
end; |
D3DVIEWPORT = TD3DViewport; |
{ TD3DViewport2 structure } |
PD3DViewport2 = ^TD3DViewport2; |
TD3DViewport2 = record |
TD3DViewport2 = packed record |
dwSize: DWORD; |
dwX: DWORD; |
dwY: DWORD; // Top left |
dwY: DWORD; (* Viewport Top left *) |
dwWidth: DWORD; |
dwHeight: DWORD; // Dimensions |
dvClipX: TD3DValue; // Top left of clip volume |
dwHeight: DWORD; (* Viewport Dimensions *) |
dvClipX: TD3DValue; (* Top left of clip volume *) |
dvClipY: TD3DValue; |
dvClipWidth: TD3DValue; // Clip Volume Dimensions |
dvClipWidth: TD3DValue; (* Clip Volume Dimensions *) |
dvClipHeight: TD3DValue; |
dvMinZ: TD3DValue; |
dvMaxZ: TD3DValue; // Min/max homogeneous z coord |
dvMinZ: TD3DValue; (* Min/max of clip Volume *) |
dvMaxZ: TD3DValue; |
end; |
D3DVIEWPORT2 = TD3DViewport2; |
{ TD3DViewport2 structure } |
PD3DViewport7 = ^TD3DViewport7; |
TD3DViewport7 = record |
TD3DViewport7 = packed record |
dwX: DWORD; |
dwY: DWORD; // Top left |
dwY: DWORD; (* Viewport Top left *) |
dwWidth: DWORD; |
dwHeight: DWORD; // Dimensions |
dvMinZ: TD3DValue; |
dvMaxZ: TD3DValue; // Min/max homogeneous z coord |
dwHeight: DWORD; (* Viewport Dimensions *) |
dvMinZ: TD3DValue; (* Min/max of clip Volume *) |
dvMaxZ: TD3DValue; |
end; |
D3DVIEWPORT7 = TD3DViewport7; |
(* |
* Values for clip fields. |
*) |
const |
{ Max number of user clipping planes, supported in D3D. } |
// Max number of user clipping planes, supported in D3D. |
D3DMAXUSERCLIPPLANES = 32; |
{ These bits could be ORed together to use with D3DRENDERSTATE_CLIPPLANEENABLE } |
D3DCLIPPLANE0 = 1 shl 0; |
D3DCLIPPLANE1 = 1 shl 1; |
D3DCLIPPLANE2 = 1 shl 2; |
D3DCLIPPLANE3 = 1 shl 3; |
D3DCLIPPLANE4 = 1 shl 4; |
D3DCLIPPLANE5 = 1 shl 5; |
// These bits could be ORed together to use with D3DRENDERSTATE_CLIPPLANEENABLE |
// |
D3DCLIPPLANE0 = (1 shl 0); |
D3DCLIPPLANE1 = (1 shl 1); |
D3DCLIPPLANE2 = (1 shl 2); |
D3DCLIPPLANE3 = (1 shl 3); |
D3DCLIPPLANE4 = (1 shl 4); |
D3DCLIPPLANE5 = (1 shl 5); |
{ Values for clip fields. } |
const |
D3DCLIP_LEFT = $00000001; |
D3DCLIP_RIGHT = $00000002; |
D3DCLIP_TOP = $00000004; |
2885,7 → 6136,9 |
D3DCLIP_GEN4 = $00000400; |
D3DCLIP_GEN5 = $00000800; |
{ Values for d3d status. } |
(* |
* Values for d3d status. |
*) |
D3DSTATUS_CLIPUNIONLEFT = D3DCLIP_LEFT; |
D3DSTATUS_CLIPUNIONRIGHT = D3DCLIP_RIGHT; |
2913,8 → 6166,9 |
D3DSTATUS_CLIPINTERSECTIONGEN4 = $00400000; |
D3DSTATUS_CLIPINTERSECTIONGEN5 = $00800000; |
D3DSTATUS_ZNOTVISIBLE = $01000000; |
(* Do not use 0x80000000 for any status flags in future as it is reserved *) |
D3DSTATUS_CLIPUNIONALL = |
D3DSTATUS_CLIPUNIONALL = ( |
D3DSTATUS_CLIPUNIONLEFT or |
D3DSTATUS_CLIPUNIONRIGHT or |
D3DSTATUS_CLIPUNIONTOP or |
2926,9 → 6180,9 |
D3DSTATUS_CLIPUNIONGEN2 or |
D3DSTATUS_CLIPUNIONGEN3 or |
D3DSTATUS_CLIPUNIONGEN4 or |
D3DSTATUS_CLIPUNIONGEN5; |
D3DSTATUS_CLIPUNIONGEN5); |
D3DSTATUS_CLIPINTERSECTIONALL = |
D3DSTATUS_CLIPINTERSECTIONALL = ( |
D3DSTATUS_CLIPINTERSECTIONLEFT or |
D3DSTATUS_CLIPINTERSECTIONRIGHT or |
D3DSTATUS_CLIPINTERSECTIONTOP or |
2940,61 → 6194,59 |
D3DSTATUS_CLIPINTERSECTIONGEN2 or |
D3DSTATUS_CLIPINTERSECTIONGEN3 or |
D3DSTATUS_CLIPINTERSECTIONGEN4 or |
D3DSTATUS_CLIPINTERSECTIONGEN5; |
D3DSTATUS_CLIPINTERSECTIONGEN5); |
D3DSTATUS_DEFAULT = ( |
D3DSTATUS_CLIPINTERSECTIONALL or |
D3DSTATUS_ZNOTVISIBLE ); |
{ Options for direct transform calls } |
(* |
* Options for direct transform calls |
*) |
D3DTRANSFORM_CLIPPED = $00000001; |
D3DTRANSFORM_UNCLIPPED = $00000002; |
type |
{ TD3DTransformData structure } |
PD3DTransformData = ^TD3DTransformData; |
TD3DTransformData = record |
TD3DTransformData = packed record |
dwSize: DWORD; |
lpIn: Pointer; // Input vertices |
dwInSize: DWORD; // Stride of input vertices |
lpOut: Pointer; // Output vertices |
dwOutSize: DWORD; // Stride of output vertices |
lpHOut: PD3DHVertex; // Output homogeneous vertices |
dwClip: DWORD; // Clipping hint |
lpIn: Pointer; (* Input vertices *) |
dwInSize: DWORD; (* Stride of input vertices *) |
lpOut: Pointer; (* Output vertices *) |
dwOutSize: DWORD; (* Stride of output vertices *) |
lpHOut: ^TD3DHVertex; (* Output homogeneous vertices *) |
dwClip: DWORD; (* Clipping hint *) |
dwClipIntersection: DWORD; |
dwClipUnion: DWORD; // Union of all clip flags |
drExtent: TD3DRect; // Extent of transformed vertices |
dwClipUnion: DWORD; (* Union of all clip flags *) |
drExtent: TD3DRect; (* Extent of transformed vertices *) |
end; |
D3DTRANSFORMDATA = TD3DTransformData; |
LPD3DTRANSFORMDATA = PD3DTransformData; |
(* |
* Structure defining position and direction properties for lighting. |
*) |
{ TD3DLightingElement structure } |
PD3DLightingElement = ^TD3DLightingElement; |
TD3DLightingElement = record |
dvPosition: TD3DVector; // Lightable point in model space |
dvNormal: TD3DVector; // Normalised unit vector |
TD3DLightingElement = packed record |
dvPosition: TD3DVector; (* Lightable point in model space *) |
dvNormal: TD3DVector; (* Normalised unit vector *) |
end; |
D3DLIGHTINGELEMENT = TD3DLightingElement; |
LPD3DLIGHTINGELEMENT = PD3DLightingElement; |
(* |
* Structure defining material properties for lighting. |
*) |
{ TD3DMaterial structure } |
PD3DMaterial = ^TD3DMaterial; |
TD3DMaterial = record |
TD3DMaterial = packed record |
dwSize: DWORD; |
case Integer of |
0: ( |
diffuse: TD3DColorValue; // Diffuse color RGBA |
ambient: TD3DColorValue; // Ambient color RGB |
specular: TD3DColorValue; // Specular 'shininess' |
emissive: TD3DColorValue; // Emissive color RGB |
power: TD3DValue; // Sharpness if specular highlight |
hTexture: TD3DTextureHandle; // Handle to texture map |
diffuse: TD3DColorValue; (* Diffuse color RGBA *) |
ambient: TD3DColorValue; (* Ambient color RGB *) |
specular: TD3DColorValue; (* Specular 'shininess' *) |
emissive: TD3DColorValue; (* Emissive color RGB *) |
power: TD3DValue; (* Sharpness if specular highlight *) |
hTexture: TD3DTextureHandle; (* Handle to texture map *) |
dwRampSize: DWORD; |
); |
1: ( |
3006,20 → 6258,15 |
); |
end; |
D3DMATERIAL = TD3DMaterial; |
LPD3DMATERIAL = PD3DMaterial; |
{ TD3DMaterial7 structure } |
PD3DMaterial7 = ^TD3DMaterial7; |
TD3DMaterial7 = record |
TD3DMaterial7 = packed record |
case Integer of |
0: ( |
diffuse: TD3DColorValue; // Diffuse color RGBA |
ambient: TD3DColorValue; // Ambient color RGB |
specular: TD3DColorValue; // Specular 'shininess' |
emissive: TD3DColorValue; // Emissive color RGB |
power: TD3DValue; // Sharpness if specular highlight |
diffuse: TD3DColorValue; (* Diffuse color RGBA *) |
ambient: TD3DColorValue; (* Ambient color RGB *) |
specular: TD3DColorValue; (* Specular 'shininess' *) |
emissive: TD3DColorValue; (* Emissive color RGB *) |
power: TD3DValue; (* Sharpness if specular highlight *) |
); |
1: ( |
dcvDiffuse: TD3DColorValue; |
3030,117 → 6277,97 |
); |
end; |
D3DMATERIAL7 = TD3DMaterial7; |
LPD3DMATERIAL7 = PD3DMaterial7; |
{ TD3DLightType } |
PD3DLightType = ^TD3DLightType; |
TD3DLightType = ( |
D3DLIGHT_INVALID_0, |
D3DLIGHT_POINT, |
D3DLIGHT_SPOT, |
D3DLIGHT_DIRECTIONAL, |
D3DLIGHT_PARALLELPOINT |
{$IFNDEF SupportDirectX5},D3DLIGHT_GLSPOT{$ENDIF} |
); |
// Note: The following light type (D3DLIGHT_PARALLELPOINT) |
// is no longer supported from D3D for DX7 onwards. |
D3DLIGHT_PARALLELPOINT, |
D3DLIGHT_GLSPOT); |
D3DLIGHTTYPE = TD3DLightType; |
(* |
* Structure defining a light source and its properties. |
*) |
{ TD3DLight structure } |
PD3DLight = ^TD3DLight; |
TD3DLight = record |
TD3DLight = packed record |
dwSize: DWORD; |
dltType: TD3DLightType; // Type of light source |
dcvColor: TD3DColorValue; // Color of light |
dvPosition: TD3DVector; // Position in world space |
dvDirection: TD3DVector; // Direction in world space |
dvRange: TD3DValue; // Cutoff range |
dvFalloff: TD3DValue; // Falloff |
dvAttenuation0: TD3DValue; // Constant attenuation |
dvAttenuation1: TD3DValue; // Linear attenuation |
dvAttenuation2: TD3DValue; // Quadratic attenuation |
dvTheta: TD3DValue; // Inner angle of spotlight cone |
dvPhi: TD3DValue; // Outer angle of spotlight cone |
dltType: TD3DLightType; (* Type of light source *) |
dcvColor: TD3DColorValue; (* Color of light *) |
dvPosition: TD3DVector; (* Position in world space *) |
dvDirection: TD3DVector; (* Direction in world space *) |
dvRange: TD3DValue; (* Cutoff range *) |
dvFalloff: TD3DValue; (* Falloff *) |
dvAttenuation0: TD3DValue; (* Constant attenuation *) |
dvAttenuation1: TD3DValue; (* Linear attenuation *) |
dvAttenuation2: TD3DValue; (* Quadratic attenuation *) |
dvTheta: TD3DValue; (* Inner angle of spotlight cone *) |
dvPhi: TD3DValue; (* Outer angle of spotlight cone *) |
end; |
D3DLIGHT = TD3DLight; |
LPD3DLIGHT = PD3DLight; |
{ TD3DLight7 structure } |
PD3DLight7 = ^TD3DLight7; |
TD3DLight7 = record |
dltType: TD3DLightType; // Type of light source |
dcvDiffuse: TD3DColorValue; // Diffuse color of light |
dcvSpecular: TD3DColorValue;// Specular color of light |
dcvAmbient: TD3DColorValue; // Ambient color of light |
dvPosition: TD3DVector; // Position in world space |
dvDirection: TD3DVector; // Direction in world space |
dvRange: TD3DValue; // Cutoff range |
dvFalloff: TD3DValue; // Falloff |
dvAttenuation0: TD3DValue; // Constant attenuation |
dvAttenuation1: TD3DValue; // Linear attenuation |
dvAttenuation2: TD3DValue; // Quadratic attenuation |
dvTheta: TD3DValue; // Inner angle of spotlight cone |
dvPhi: TD3DValue; // Outer angle of spotlight cone |
TD3DLight7 = packed record |
dltType: TD3DLightType; (* Type of light source *) |
dcvDiffuse: TD3DColorValue; (* Diffuse color of light *) |
dcvSpecular: TD3DColorValue;(* Specular color of light *) |
dcvAmbient: TD3DColorValue; (* Ambient color of light *) |
dvPosition: TD3DVector; (* Position in world space *) |
dvDirection: TD3DVector; (* Direction in world space *) |
dvRange: TD3DValue; (* Cutoff range *) |
dvFalloff: TD3DValue; (* Falloff *) |
dvAttenuation0: TD3DValue; (* Constant attenuation *) |
dvAttenuation1: TD3DValue; (* Linear attenuation *) |
dvAttenuation2: TD3DValue; (* Quadratic attenuation *) |
dvTheta: TD3DValue; (* Inner angle of spotlight cone *) |
dvPhi: TD3DValue; (* Outer angle of spotlight cone *) |
end; |
D3DLIGHT7 = TD3DLight7; |
LPD3DLIGHT7 = PD3DLight7; |
(* |
* Structure defining a light source and its properties. |
*) |
{ Structure defining a light source and its properties. } |
(* flags bits *) |
const |
{ flags bits } |
D3DLIGHT_ACTIVE = $00000001; |
D3DLIGHT_NO_SPECULAR = $00000002; |
D3DLIGHT_ALL = D3DLIGHT_ACTIVE or D3DLIGHT_NO_SPECULAR; |
D3DLIGHT_ALL = D3DLIGHT_ACTIVE or D3DLIGHT_ACTIVE; |
{ maximum valid light range } |
D3DLIGHT_RANGE_MAX: TD3DValue = 3.4 * 10e+38; |
(* maximum valid light range *) |
D3DLIGHT_RANGE_MAX = 1.8439088915e+18; //sqrt(FLT_MAX); |
type |
{ TD3DLight2 structure } |
PD3DLight2 = ^TD3DLight2; |
TD3DLight2 = record |
TD3DLight2 = packed record |
dwSize: DWORD; |
dltType: TD3DLightType; // Type of light source |
dcvColor: TD3DColorValue; // Color of light |
dvPosition: TD3DVector; // Position in world space |
dvDirection: TD3DVector; // Direction in world space |
dvRange: TD3DValue; // Cutoff range |
dvFalloff: TD3DValue; // Falloff |
dvAttenuation0: TD3DValue; // Constant attenuation |
dvAttenuation1: TD3DValue; // Linear attenuation |
dvAttenuation2: TD3DValue; // Quadratic attenuation |
dvTheta: TD3DValue; // Inner angle of spotlight cone |
dvPhi: TD3DValue; // Outer angle of spotlight cone |
dltType: TD3DLightType; (* Type of light source *) |
dcvColor: TD3DColorValue; (* Color of light *) |
dvPosition: TD3DVector; (* Position in world space *) |
dvDirection: TD3DVector; (* Direction in world space *) |
dvRange: TD3DValue; (* Cutoff range *) |
dvFalloff: TD3DValue; (* Falloff *) |
dvAttenuation0: TD3DValue; (* Constant attenuation *) |
dvAttenuation1: TD3DValue; (* Linear attenuation *) |
dvAttenuation2: TD3DValue; (* Quadratic attenuation *) |
dvTheta: TD3DValue; (* Inner angle of spotlight cone *) |
dvPhi: TD3DValue; (* Outer angle of spotlight cone *) |
dwFlags: DWORD; |
end; |
D3DLIGHT2 = TD3DLight2; |
LPD3DLIGHT2 = PD3DLight2; |
{ TD3DLightData structure } |
PD3DLightData = ^TD3DLightData; |
TD3DLightData = record |
TD3DLightData = packed record |
dwSize: DWORD; |
lpIn: PD3DLightingElement; // Input positions and normals |
dwInSize: DWORD; // Stride of input elements |
lpOut: PD3DTLVertex; // Output colors |
dwOutSize: DWORD; // Stride of output colors |
lpIn: ^TD3DLightingElement; (* Input positions and normals *) |
dwInSize: DWORD; (* Stride of input elements *) |
lpOut: ^TD3DTLVertex; (* Output colors *) |
dwOutSize: DWORD; (* Stride of output colors *) |
end; |
D3DLIGHTDATA = TD3DLightData; |
LPD3DLIGHTDATA = PD3DLightData; |
(* |
* Before DX5, these values were in an enum called |
* D3DCOLORMODEL. This was not correct, since they are |
* TD3DColorModel. This was not correct, since they are |
* bit flags. A driver can surface either or both flags |
* in the dcmColorModel member of D3DDEVICEDESC. |
*) |
3147,23 → 6374,32 |
type |
TD3DColorModel = DWORD; |
D3DCOLORMODEL = TD3DColorModel; |
const |
D3DCOLOR_INVALID_0 = 0; |
D3DCOLOR_MONO = 1; |
D3DCOLOR_RGB = 2; |
{ Options for clearing } |
(* |
* Options for clearing |
*) |
const |
D3DCLEAR_TARGET = $00000001; // Clear target surface |
D3DCLEAR_ZBUFFER = $00000002; // Clear target z buffer |
D3DCLEAR_STENCIL = $00000004; // Clear stencil planes |
D3DCLEAR_TARGET = $00000001; (* Clear target surface *) |
D3DCLEAR_ZBUFFER = $00000002; (* Clear target z buffer *) |
D3DCLEAR_STENCIL = $00000004; (* Clear stencil planes *) |
{ Supported op codes for execute instructions. } |
(* |
* Execute buffers are allocated via Direct3D. These buffers may then |
* be filled by the application with instructions to execute along with |
* vertex data. |
*) |
(* |
* Supported op codes for execute instructions. |
*) |
type |
PD3DOpcode = ^TD3DOpcode; |
TD3DOpcode = ( |
D3DOP_INVALID_0, |
D3DOP_POINT, |
3179,71 → 6415,63 |
D3DOP_EXIT, |
D3DOP_BRANCHFORWARD, |
D3DOP_SPAN, |
D3DOP_SETSTATUS |
); |
D3DOP_SETSTATUS); |
D3DOPCODE = TD3DOpcode; |
{ TD3DInstruction structure } |
TD3DInstruction = record |
bOpcode: Byte; // Instruction opcode |
bSize: Byte; // Size of each instruction data unit |
wCount: WORD; // Count of instruction data units to follow |
PD3DInstruction = ^TD3DInstruction; |
TD3DInstruction = packed record |
bOpcode: BYTE; (* Instruction opcode *) |
bSize: BYTE; (* Size of each instruction data unit *) |
wCount: WORD; (* Count of instruction data units to follow *) |
end; |
D3DINSTRUCTION = TD3DInstruction; |
{ TD3DTextureLoad structure } |
(* |
* Structure for texture loads |
*) |
TD3DTextureLoad = record |
PD3DTextureLoad = ^TD3DTextureLoad; |
TD3DTextureLoad = packed record |
hDestTexture: TD3DTextureHandle; |
hSrcTexture: TD3DTextureHandle; |
end; |
D3DTEXTURELOAD = TD3DTextureLoad; |
{ TD3DPickRecord structure } |
(* |
* Structure for picking |
*) |
TD3DPickRecord = record |
PD3DPickRecord = ^TD3DPickRecord; |
TD3DPickRecord = packed record |
bOpcode: BYTE; |
bPad: BYTE; |
dwOffset: DWORD; |
dvZ: TD3DValue; |
end; |
D3DPICKRECORD = TD3DPickRecord; |
{ TD3DShadeMode } |
(* |
* The following defines the rendering states which can be set in the |
* execute buffer. |
*) |
PD3DShadeMode = ^TD3DShadeMode; |
TD3DShadeMode = ( |
D3DSHADE_INVALID_0, |
D3DSHADE_FLAT, |
D3DSHADE_GOURAUD, |
D3DSHADE_PHONG |
); |
D3DSHADE_PHONG); |
D3DSHADEMODE = TD3DShadeMode; |
{ TD3DFillMode } |
PD3DFillMode = ^TD3DFillMode; |
TD3DFillMode = ( |
D3DFILL_INVALID_0, |
D3DFILL_POINT, |
D3DFILL_WIREFRAME, |
D3DFILL_SOLID |
); |
D3DFILL_SOLID); |
D3DFILLMODE = TD3DFillMode; |
{ TD3DLinePattern structure } |
TD3DLinePattern = record |
PD3DLinePattern = ^TD3DLinePattern; |
TD3DLinePattern = packed record |
wRepeatFactor: WORD; |
wLinePattern: WORD; |
end; |
D3DLINEPATTERN = TD3DLinePattern; |
{ TD3DTextureFilter } |
PD3DTextureFilter = ^TD3DTextureFilter; |
TD3DTextureFilter = ( |
D3DFILTER_INVALID_0, |
D3DFILTER_NEAREST, |
3251,13 → 6479,9 |
D3DFILTER_MIPNEAREST, |
D3DFILTER_MIPLINEAR, |
D3DFILTER_LINEARMIPNEAREST, |
D3DFILTER_LINEARMIPLINEAR |
); |
D3DFILTER_LINEARMIPLINEAR); |
D3DTEXTUREFILTER = TD3DTextureFilter; |
{ TD3DBlend } |
PD3DBlend = ^TD3DBlend; |
TD3DBlend = ( |
D3DBLEND_INVALID_0, |
D3DBLEND_ZERO, |
3272,13 → 6496,9 |
D3DBLEND_INVDESTCOLOR, |
D3DBLEND_SRCALPHASAT, |
D3DBLEND_BOTHSRCALPHA, |
D3DBLEND_BOTHINVSRCALPHA |
); |
D3DBLEND_BOTHINVSRCALPHA); |
D3DBLEND = TD3DBlend; |
{ TD3DTextureBlend } |
PD3DTextureBlend = ^TD3DTextureBlend; |
TD3DTextureBlend = ( |
D3DTBLEND_INVALID_0, |
D3DTBLEND_DECAL, |
3288,36 → 6508,24 |
D3DTBLEND_DECALMASK, |
D3DTBLEND_MODULATEMASK, |
D3DTBLEND_COPY, |
D3DTBLEND_ADD |
); |
D3DTBLEND_ADD); |
D3DTEXTUREBLEND = TD3DTextureBlend; |
{ TD3DTextureAddress } |
PD3DTextureAddress = ^TD3DTextureAddress; |
TD3DTextureAddress = ( |
D3DTADDRESS_INVALID_0, |
D3DTADDRESS_WRAP, |
D3DTADDRESS_MIRROR, |
D3DTADDRESS_CLAMP, |
D3DTADDRESS_BORDER |
); |
D3DTADDRESS_BORDER); |
D3DTEXTUREADDRESS = TD3DTextureAddress; |
{ TD3DCull } |
PD3DCull = ^TD3DCull; |
TD3DCull = ( |
D3DCULL_INVALID_0, |
D3DCULL_NONE, |
D3DCULL_CW, |
D3DCULL_CCW |
); |
D3DCULL_CCW); |
D3DCULL = TD3DCull; |
{ TD3DCmpFunc } |
PD3DCmpFunc = ^TD3DCmpFunc; |
TD3DCmpFunc = ( |
D3DCMP_INVALID_0, |
D3DCMP_NEVER, |
3327,13 → 6535,9 |
D3DCMP_GREATER, |
D3DCMP_NOTEQUAL, |
D3DCMP_GREATEREQUAL, |
D3DCMP_ALWAYS |
); |
D3DCMP_ALWAYS); |
D3DCMPFUNC = TD3DCmpFunc; |
{ TD3DStencilOp } |
PD3DStencilOp = ^TD3DStencilOp; |
TD3DStencilOp = ( |
D3DSTENCILOP_INVALID_0, |
D3DSTENCILOP_KEEP, |
3343,55 → 6547,37 |
D3DSTENCILOP_DECRSAT, |
D3DSTENCILOP_INVERT, |
D3DSTENCILOP_INCR, |
D3DSTENCILOP_DECR |
); |
D3DSTENCILOP_DECR); |
D3DSTENCILOP = TD3DStencilOp; |
{ TD3DFogMode } |
PD3DFogMode = ^TD3DFogMode; |
TD3DFogMode = ( |
D3DFOG_NONE, |
D3DFOG_EXP, |
D3DFOG_EXP2, |
D3DFOG_LINEAR |
); |
D3DFOG_LINEAR); |
D3DFOGMODE = TD3DFogMode; |
{ TD3DZBufferType } |
PD3DZBufferType = ^TD3DZBufferType; |
TD3DZBufferType = ( |
D3DZB_FALSE, |
D3DZB_TRUE, // Z buffering |
D3DZB_USEW // W buffering |
); |
D3DZB_USEW); // W buffering |
D3DZBUFFERTYPE = TD3DZBufferType; |
{ TD3DAntialiasMode } |
PD3DAntialiasMode = ^TD3DAntialiasMode; |
TD3DAntialiasMode = ( |
D3DANTIALIAS_NONE, |
D3DANTIALIAS_SORTDEPENDENT, |
D3DANTIALIAS_SORTINDEPENDENT |
); |
D3DANTIALIAS_SORTINDEPENDENT); |
D3DANTIALIASMODE = TD3DAntialiasMode; |
{ TD3DVertexType } |
// Vertex types supported by Direct3D |
PD3DVertexType = ^TD3DVertexType; |
TD3DVertexType = ( |
D3DVT_INVALID_0, |
D3DVT_VERTEX, |
D3DVT_LVERTEX, |
D3DVT_TLVERTEX |
); |
D3DVT_TLVERTEX); |
D3DVERTEXTYPE = TD3DVertexType; |
{ TD3DPrimitiveType } |
// Primitives supported by draw-primitive API |
PD3DPrimitiveType = ^TD3DPrimitiveType; |
TD3DPrimitiveType = ( |
D3DPT_INVALID_0, |
D3DPT_POINTLIST, |
3399,55 → 6585,42 |
D3DPT_LINESTRIP, |
D3DPT_TRIANGLELIST, |
D3DPT_TRIANGLESTRIP, |
D3DPT_TRIANGLEFAN |
); |
D3DPT_TRIANGLEFAN); |
D3DPRIMITIVETYPE = TD3DPrimitiveType; |
(* |
* Amount to add to a state to generate the override for that state. |
*) |
{ Amount to add to a state to generate the override for that state. } |
const |
D3DSTATE_OVERRIDE_BIAS = 256; |
function D3DSTATE_OVERRIDE(typ: DWORD): DWORD; |
(* |
* A state which sets the override flag for the specified state type. |
*) |
{ A state which sets the override flag for the specified state type. } |
function D3DSTATE_OVERRIDE(StateType: DWORD) : DWORD; |
type |
{ TD3DTransformStateType } |
PD3DTransformStateType = ^TD3DTransformStateType; |
TD3DTransformStateType = DWORD; |
const |
D3DTRANSFORMSTATE_WORLD = 1; |
D3DTRANSFORMSTATE_VIEW = 2; |
D3DTRANSFORMSTATE_PROJECTION = 3; |
D3DTRANSFORMSTATE_WORLD1 = 4; // 2nd matrix to blend |
D3DTRANSFORMSTATE_WORLD2 = 5; // 3rd matrix to blend |
D3DTRANSFORMSTATE_WORLD3 = 6; // 4th matrix to blend |
D3DTRANSFORMSTATE_TEXTURE0 = 16; |
D3DTRANSFORMSTATE_TEXTURE1 = 17; |
D3DTRANSFORMSTATE_TEXTURE2 = 18; |
D3DTRANSFORMSTATE_TEXTURE3 = 19; |
D3DTRANSFORMSTATE_TEXTURE4 = 20; |
D3DTRANSFORMSTATE_TEXTURE5 = 21; |
D3DTRANSFORMSTATE_TEXTURE6 = 22; |
D3DTRANSFORMSTATE_TEXTURE7 = 23; |
TD3DTransformStateType = ( |
D3DTRANSFORMSTATE_INVALID_0, |
D3DTRANSFORMSTATE_WORLD, |
D3DTRANSFORMSTATE_VIEW, |
D3DTRANSFORMSTATE_PROJECTION, |
D3DTRANSFORMSTATE_WORLD1, |
D3DTRANSFORMSTATE_WORLD2, |
D3DTRANSFORMSTATE_WORLD3, |
D3DTRANSFORMSTATE_INVALID_7, |
D3DTRANSFORMSTATE_INVALID_8, |
D3DTRANSFORMSTATE_INVALID_9, |
D3DTRANSFORMSTATE_INVALID_10, |
D3DTRANSFORMSTATE_INVALID_11, |
D3DTRANSFORMSTATE_INVALID_12, |
D3DTRANSFORMSTATE_INVALID_13, |
D3DTRANSFORMSTATE_INVALID_14, |
D3DTRANSFORMSTATE_INVALID_15, |
D3DTRANSFORMSTATE_TEXTURE0, |
D3DTRANSFORMSTATE_TEXTURE1, |
D3DTRANSFORMSTATE_TEXTURE2, |
D3DTRANSFORMSTATE_TEXTURE3, |
D3DTRANSFORMSTATE_TEXTURE4, |
D3DTRANSFORMSTATE_TEXTURE5, |
D3DTRANSFORMSTATE_TEXTURE6, |
D3DTRANSFORMSTATE_TEXTURE7 |
); |
D3DTRANSFORMSTATETYPE = TD3DTransformStateType; |
{ TD3DLightStateType } |
type |
PD3DLightStateType = ^TD3DLightStateType; |
TD3DLightStateType = ( |
D3DLIGHTSTATE_INVALID_0, |
D3DLIGHTSTATE_MATERIAL, |
3457,216 → 6630,185 |
D3DLIGHTSTATE_FOGSTART, |
D3DLIGHTSTATE_FOGEND, |
D3DLIGHTSTATE_FOGDENSITY, |
D3DLIGHTSTATE_COLORVERTEX |
); |
D3DLIGHTSTATE_COLORVERTEX); |
D3DLIGHTSTATETYPE = TD3DLightStateType; |
PD3DRenderStateType = ^TD3DRenderStateType; |
TD3DRenderStateType = DWORD; |
const |
D3DRENDERSTATE_ANTIALIAS = 2; (* D3DANTIALIASMODE *) |
D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4; (* TRUE for perspective correction *) |
D3DRENDERSTATE_ZENABLE = 7; (* D3DZBUFFERTYPE (or TRUE/FALSE for legacy) *) |
D3DRENDERSTATE_FILLMODE = 8; (* D3DFILL_MODE *) |
D3DRENDERSTATE_SHADEMODE = 9; (* D3DSHADEMODE *) |
D3DRENDERSTATE_LINEPATTERN = 10; (* D3DLINEPATTERN *) |
D3DRENDERSTATE_ZWRITEENABLE = 14; (* TRUE to enable z writes *) |
D3DRENDERSTATE_ALPHATESTENABLE = 15; (* TRUE to enable alpha tests *) |
D3DRENDERSTATE_LASTPIXEL = 16; (* TRUE for last-pixel on lines *) |
D3DRENDERSTATE_SRCBLEND = 19; (* D3DBLEND *) |
D3DRENDERSTATE_DESTBLEND = 20; (* D3DBLEND *) |
D3DRENDERSTATE_CULLMODE = 22; (* D3DCULL *) |
D3DRENDERSTATE_ZFUNC = 23; (* D3DCMPFUNC *) |
D3DRENDERSTATE_ALPHAREF = 24; (* D3DFIXED *) |
D3DRENDERSTATE_ALPHAFUNC = 25; (* D3DCMPFUNC *) |
D3DRENDERSTATE_DITHERENABLE = 26; (* TRUE to enable dithering *) |
D3DRENDERSTATE_ALPHABLENDENABLE = 27; (* TRUE to enable alpha blending *) |
D3DRENDERSTATE_FOGENABLE = 28; (* TRUE to enable fog blending *) |
D3DRENDERSTATE_SPECULARENABLE = 29; (* TRUE to enable specular *) |
D3DRENDERSTATE_ZVISIBLE = 30; (* TRUE to enable z checking *) |
D3DRENDERSTATE_STIPPLEDALPHA = 33; (* TRUE to enable stippled alpha (RGB device only) *) |
D3DRENDERSTATE_FOGCOLOR = 34; (* D3DCOLOR *) |
D3DRENDERSTATE_FOGTABLEMODE = 35; (* D3DFOGMODE *) |
D3DRENDERSTATE_FOGSTART = 36; (* Fog start (for both vertex and pixel fog) *) |
D3DRENDERSTATE_FOGEND = 37; (* Fog end *) |
D3DRENDERSTATE_FOGDENSITY = 38; (* Fog density *) |
D3DRENDERSTATE_EDGEANTIALIAS = 40; (* TRUE to enable edge antialiasing *) |
D3DRENDERSTATE_COLORKEYENABLE = 41; (* TRUE to enable source colorkeyed textures *) |
D3DRENDERSTATE_ZBIAS = 47; (* LONG Z bias *) |
D3DRENDERSTATE_RANGEFOGENABLE = 48; (* Enables range-based fog *) |
{ TD3DRenderStateType } |
D3DRENDERSTATE_STENCILENABLE = 52; (* BOOL enable/disable stenciling *) |
D3DRENDERSTATE_STENCILFAIL = 53; (* D3DSTENCILOP to do if stencil test fails *) |
D3DRENDERSTATE_STENCILZFAIL = 54; (* D3DSTENCILOP to do if stencil test passes and Z test fails *) |
D3DRENDERSTATE_STENCILPASS = 55; (* D3DSTENCILOP to do if both stencil and Z tests pass *) |
D3DRENDERSTATE_STENCILFUNC = 56; (* D3DCMPFUNC fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true *) |
D3DRENDERSTATE_STENCILREF = 57; (* Reference value used in stencil test *) |
D3DRENDERSTATE_STENCILMASK = 58; (* Mask value used in stencil test *) |
D3DRENDERSTATE_STENCILWRITEMASK = 59; (* Write mask applied to values written to stencil buffer *) |
D3DRENDERSTATE_TEXTUREFACTOR = 60; (* D3DCOLOR used for multi-texture blend *) |
TD3DRenderStateType = ( |
D3DRENDERSTATE_INVALID_0, |
D3DRENDERSTATE_TEXTUREHANDLE, // Texture handle for legacy interfaces (Texture,Texture2) |
D3DRENDERSTATE_ANTIALIAS, // TD3DAntialiasMode |
D3DRENDERSTATE_TEXTUREADDRESS, // TD3DTextureAddress |
D3DRENDERSTATE_TEXTUREPERSPECTIVE, // TRUE for perspective correction |
D3DRENDERSTATE_WRAPU, // TRUE for wrapping in u |
D3DRENDERSTATE_WRAPV, // TRUE for wrapping in v |
D3DRENDERSTATE_ZENABLE, // TD3DZBufferType (or TRUE/FALSE for legacy) |
D3DRENDERSTATE_FILLMODE, // TD3DFillMode |
D3DRENDERSTATE_SHADEMODE, // TD3DShadeMode |
D3DRENDERSTATE_LINEPATTERN, // TD3DLinePattern |
D3DRENDERSTATE_MONOENABLE, // TRUE to enable mono rasterization |
D3DRENDERSTATE_ROP2, // ROP2 |
D3DRENDERSTATE_PLANEMASK, // DWORD physical plane mask |
D3DRENDERSTATE_ZWRITEENABLE, // TRUE to enable z writes |
D3DRENDERSTATE_ALPHATESTENABLE, // TRUE to enable alpha tests |
D3DRENDERSTATE_LASTPIXEL, // TRUE for last-pixel on lines |
D3DRENDERSTATE_TEXTUREMAG, // TD3DTextureFilter |
D3DRENDERSTATE_TEXTUREMIN, // TD3DTextureFilter |
D3DRENDERSTATE_SRCBLEND, // TD3DBlend |
D3DRENDERSTATE_DESTBLEND, // TD3DBlend |
D3DRENDERSTATE_TEXTUREMAPBLEND, // TD3DTextureBlend |
D3DRENDERSTATE_CULLMODE, // TD3DCull |
D3DRENDERSTATE_ZFUNC, // TD3DCmpFunc |
D3DRENDERSTATE_ALPHAREF, // TD3DFixed |
D3DRENDERSTATE_ALPHAFUNC, // TD3DCmpFunc |
D3DRENDERSTATE_DITHERENABLE, // TRUE to enable dithering |
D3DRENDERSTATE_ALPHABLENDENABLE, // TRUE to enable alpha blending |
D3DRENDERSTATE_FOGENABLE, // TRUE to enable fog |
D3DRENDERSTATE_SPECULARENABLE, // TRUE to enable specular |
D3DRENDERSTATE_ZVISIBLE, // TRUE to enable z checking |
D3DRENDERSTATE_SUBPIXEL, // TRUE to enable subpixel correction |
D3DRENDERSTATE_SUBPIXELX, // TRUE to enable correction in X only |
D3DRENDERSTATE_STIPPLEDALPHA, // TRUE to enable stippled alpha |
D3DRENDERSTATE_FOGCOLOR, // TD3DColor |
D3DRENDERSTATE_FOGTABLEMODE, // TD3DFogMode |
D3DRENDERSTATE_FOGSTART, // Fog start (for both vertex and pixel fog) |
D3DRENDERSTATE_FOGEND, // Fog end |
D3DRENDERSTATE_FOGDENSITY, // Fog density |
D3DRENDERSTATE_STIPPLEENABLE, // TRUE to enable stippling |
D3DRENDERSTATE_EDGEANTIALIAS, // TRUE to enable edge antialiasing |
D3DRENDERSTATE_COLORKEYENABLE, // TRUE to enable source colorkeyed textures |
D3DRENDERSTATE_BORDERCOLOR, // Border color for texturing w/border |
D3DRENDERSTATE_TEXTUREADDRESSU, // Texture addressing mode for U coordinate |
D3DRENDERSTATE_TEXTUREADDRESSV, // Texture addressing mode for V coordinate |
D3DRENDERSTATE_MIPMAPLODBIAS, // TD3DValue Mipmap LOD bias |
D3DRENDERSTATE_ZBIAS, // LONG Z bias |
D3DRENDERSTATE_RANGEFOGENABLE, // Enables range-based fog |
D3DRENDERSTATE_ANISOTROPY, // Max. anisotropy. 1 = no anisotropy |
D3DRENDERSTATE_FLUSHBATCH, // Explicit flush for DP batching (DX5 Only) |
D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT,// BOOL enable sort-independent transparency |
D3DRENDERSTATE_STENCILENABLE, // BOOL enable/disable stenciling |
D3DRENDERSTATE_STENCILFAIL, // TD3DStencilOp to do if stencil test fails |
D3DRENDERSTATE_STENCILZFAIL, // TD3DStencilOp to do if stencil test passes and Z test fails |
D3DRENDERSTATE_STENCILPASS, // TD3DStencilOp to do if both stencil and Z tests pass |
D3DRENDERSTATE_STENCILFUNC , // TD3DCmpFunc fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true |
D3DRENDERSTATE_STENCILREF, // Reference value used in stencil test |
D3DRENDERSTATE_STENCILMASK, // Mask value used in stencil test |
D3DRENDERSTATE_STENCILWRITEMASK, // Write mask applied to values written to stencil buffer |
D3DRENDERSTATE_TEXTUREFACTOR, // TD3DColor used for multi-texture blend |
D3DRENDERSTATE_INVALID_61, |
D3DRENDERSTATE_INVALID_62, |
D3DRENDERSTATE_INVALID_63, |
D3DRENDERSTATE_STIPPLEPATTERN00, // Stipple pattern 01... |
D3DRENDERSTATE_STIPPLEPATTERN01, |
D3DRENDERSTATE_STIPPLEPATTERN02, |
D3DRENDERSTATE_STIPPLEPATTERN03, |
D3DRENDERSTATE_STIPPLEPATTERN04, |
D3DRENDERSTATE_STIPPLEPATTERN05, |
D3DRENDERSTATE_STIPPLEPATTERN06, |
D3DRENDERSTATE_STIPPLEPATTERN07, |
D3DRENDERSTATE_STIPPLEPATTERN08, |
D3DRENDERSTATE_STIPPLEPATTERN09, |
D3DRENDERSTATE_STIPPLEPATTERN10, |
D3DRENDERSTATE_STIPPLEPATTERN11, |
D3DRENDERSTATE_STIPPLEPATTERN12, |
D3DRENDERSTATE_STIPPLEPATTERN13, |
D3DRENDERSTATE_STIPPLEPATTERN14, |
D3DRENDERSTATE_STIPPLEPATTERN15, |
D3DRENDERSTATE_STIPPLEPATTERN16, |
D3DRENDERSTATE_STIPPLEPATTERN17, |
D3DRENDERSTATE_STIPPLEPATTERN18, |
D3DRENDERSTATE_STIPPLEPATTERN19, |
D3DRENDERSTATE_STIPPLEPATTERN20, |
D3DRENDERSTATE_STIPPLEPATTERN21, |
D3DRENDERSTATE_STIPPLEPATTERN22, |
D3DRENDERSTATE_STIPPLEPATTERN23, |
D3DRENDERSTATE_STIPPLEPATTERN24, |
D3DRENDERSTATE_STIPPLEPATTERN25, |
D3DRENDERSTATE_STIPPLEPATTERN26, |
D3DRENDERSTATE_STIPPLEPATTERN27, |
D3DRENDERSTATE_STIPPLEPATTERN28, |
D3DRENDERSTATE_STIPPLEPATTERN29, |
D3DRENDERSTATE_STIPPLEPATTERN30, |
D3DRENDERSTATE_STIPPLEPATTERN31, |
D3DRENDERSTATE_INVALID_95, |
D3DRENDERSTATE_INVALID_96, |
D3DRENDERSTATE_INVALID_97, |
D3DRENDERSTATE_INVALID_98, |
D3DRENDERSTATE_INVALID_99, |
D3DRENDERSTATE_INVALID_100, |
D3DRENDERSTATE_INVALID_101, |
D3DRENDERSTATE_INVALID_102, |
D3DRENDERSTATE_INVALID_103, |
D3DRENDERSTATE_INVALID_104, |
D3DRENDERSTATE_INVALID_105, |
D3DRENDERSTATE_INVALID_106, |
D3DRENDERSTATE_INVALID_107, |
D3DRENDERSTATE_INVALID_108, |
D3DRENDERSTATE_INVALID_109, |
D3DRENDERSTATE_INVALID_110, |
D3DRENDERSTATE_INVALID_111, |
D3DRENDERSTATE_INVALID_112, |
D3DRENDERSTATE_INVALID_113, |
D3DRENDERSTATE_INVALID_114, |
D3DRENDERSTATE_INVALID_115, |
D3DRENDERSTATE_INVALID_116, |
D3DRENDERSTATE_INVALID_117, |
D3DRENDERSTATE_INVALID_118, |
D3DRENDERSTATE_INVALID_119, |
D3DRENDERSTATE_INVALID_120, |
D3DRENDERSTATE_INVALID_121, |
D3DRENDERSTATE_INVALID_122, |
D3DRENDERSTATE_INVALID_123, |
D3DRENDERSTATE_INVALID_124, |
D3DRENDERSTATE_INVALID_125, |
D3DRENDERSTATE_INVALID_126, |
D3DRENDERSTATE_INVALID_127, |
(* |
* 128 values [128; 255] are reserved for texture coordinate wrap flags. |
* These are constructed with the D3DWRAP_U and D3DWRAP_V macros. Using |
* a flags word preserves forward compatibility with texture coordinates |
* that are >2D. |
*) |
D3DRENDERSTATE_WRAP0 = 128; (* wrap for 1st texture coord. set *) |
D3DRENDERSTATE_WRAP1 = 129; (* wrap for 2nd texture coord. set *) |
D3DRENDERSTATE_WRAP2 = 130; (* wrap for 3rd texture coord. set *) |
D3DRENDERSTATE_WRAP3 = 131; (* wrap for 4th texture coord. set *) |
D3DRENDERSTATE_WRAP4 = 132; (* wrap for 5th texture coord. set *) |
D3DRENDERSTATE_WRAP5 = 133; (* wrap for 6th texture coord. set *) |
D3DRENDERSTATE_WRAP6 = 134; (* wrap for 7th texture coord. set *) |
D3DRENDERSTATE_WRAP7 = 135; (* wrap for 8th texture coord. set *) |
D3DRENDERSTATE_CLIPPING = 136; |
D3DRENDERSTATE_LIGHTING = 137; |
D3DRENDERSTATE_EXTENTS = 138; |
D3DRENDERSTATE_AMBIENT = 139; |
D3DRENDERSTATE_FOGVERTEXMODE = 140; |
D3DRENDERSTATE_COLORVERTEX = 141; |
D3DRENDERSTATE_LOCALVIEWER = 142; |
D3DRENDERSTATE_NORMALIZENORMALS = 143; |
D3DRENDERSTATE_COLORKEYBLENDENABLE = 144; |
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE = 145; |
D3DRENDERSTATE_SPECULARMATERIALSOURCE = 146; |
D3DRENDERSTATE_AMBIENTMATERIALSOURCE = 147; |
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE = 148; |
D3DRENDERSTATE_VERTEXBLEND = 151; |
D3DRENDERSTATE_CLIPPLANEENABLE = 152; |
// |
// 128 values [128, 255] are reserved for texture coordinate wrap flags. |
// These are constructed with the D3DWRAP_U and D3DWRAP_V macros. Using |
// a flags word preserves forward compatibility with texture coordinates |
// that are >2D. |
// retired renderstates - not supported for DX7 interfaces |
// |
D3DRENDERSTATE_WRAP0, // wrap for 1st texture coord. set |
D3DRENDERSTATE_WRAP1, // wrap for 2nd texture coord. set |
D3DRENDERSTATE_WRAP2, // wrap for 3rd texture coord. set |
D3DRENDERSTATE_WRAP3, // wrap for 4th texture coord. set |
D3DRENDERSTATE_WRAP4, // wrap for 5th texture coord. set |
D3DRENDERSTATE_WRAP5, // wrap for 6th texture coord. set |
D3DRENDERSTATE_WRAP6, // wrap for 7th texture coord. set |
D3DRENDERSTATE_WRAP7, // wrap for 8th texture coord. set |
D3DRENDERSTATE_CLIPPING, |
D3DRENDERSTATE_LIGHTING, |
D3DRENDERSTATE_EXTENTS, |
D3DRENDERSTATE_AMBIENT, |
D3DRENDERSTATE_FOGVERTEXMODE, |
D3DRENDERSTATE_COLORVERTEX, |
D3DRENDERSTATE_LOCALVIEWER, |
D3DRENDERSTATE_NORMALIZENORMALS, |
D3DRENDERSTATE_COLORKEYBLENDENABLE, |
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE, |
D3DRENDERSTATE_SPECULARMATERIALSOURCE, |
D3DRENDERSTATE_AMBIENTMATERIALSOURCE, |
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE, |
D3DRENDERSTATE_INVALID_149, |
D3DRENDERSTATE_INVALID_150, |
D3DRENDERSTATE_VERTEXBLEND, |
D3DRENDERSTATE_CLIPPLANEENABLE |
); |
D3DRENDERSTATE_TEXTUREHANDLE = 1; (* Texture handle for legacy interfaces (Texture;Texture2) *) |
D3DRENDERSTATE_TEXTUREADDRESS = 3; (* D3DTEXTUREADDRESS *) |
D3DRENDERSTATE_WRAPU = 5; (* TRUE for wrapping in u *) |
D3DRENDERSTATE_WRAPV = 6; (* TRUE for wrapping in v *) |
D3DRENDERSTATE_MONOENABLE = 11; (* TRUE to enable mono rasterization *) |
D3DRENDERSTATE_ROP2 = 12; (* ROP2 *) |
D3DRENDERSTATE_PLANEMASK = 13; (* DWORD physical plane mask *) |
D3DRENDERSTATE_TEXTUREMAG = 17; (* D3DTEXTUREFILTER *) |
D3DRENDERSTATE_TEXTUREMIN = 18; (* D3DTEXTUREFILTER *) |
D3DRENDERSTATE_TEXTUREMAPBLEND = 21; (* D3DTEXTUREBLEND *) |
D3DRENDERSTATE_SUBPIXEL = 31; (* TRUE to enable subpixel correction *) |
D3DRENDERSTATE_SUBPIXELX = 32; (* TRUE to enable correction in X only *) |
D3DRENDERSTATE_STIPPLEENABLE = 39; (* TRUE to enable stippling *) |
D3DRENDERSTATE_BORDERCOLOR = 43; (* Border color for texturing w/border *) |
D3DRENDERSTATE_TEXTUREADDRESSU = 44; (* Texture addressing mode for U coordinate *) |
D3DRENDERSTATE_TEXTUREADDRESSV = 45; (* Texture addressing mode for V coordinate *) |
D3DRENDERSTATE_MIPMAPLODBIAS = 46; (* D3DVALUE Mipmap LOD bias *) |
D3DRENDERSTATE_ANISOTROPY = 49; (* Max. anisotropy. 1 = no anisotropy *) |
D3DRENDERSTATE_FLUSHBATCH = 50; (* Explicit flush for DP batching (DX5 Only) *) |
D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT=51; (* BOOL enable sort-independent transparency *) |
D3DRENDERSTATE_STIPPLEPATTERN00 = 64; (* Stipple pattern 01... *) |
D3DRENDERSTATE_STIPPLEPATTERN01 = 65; |
D3DRENDERSTATE_STIPPLEPATTERN02 = 66; |
D3DRENDERSTATE_STIPPLEPATTERN03 = 67; |
D3DRENDERSTATE_STIPPLEPATTERN04 = 68; |
D3DRENDERSTATE_STIPPLEPATTERN05 = 69; |
D3DRENDERSTATE_STIPPLEPATTERN06 = 70; |
D3DRENDERSTATE_STIPPLEPATTERN07 = 71; |
D3DRENDERSTATE_STIPPLEPATTERN08 = 72; |
D3DRENDERSTATE_STIPPLEPATTERN09 = 73; |
D3DRENDERSTATE_STIPPLEPATTERN10 = 74; |
D3DRENDERSTATE_STIPPLEPATTERN11 = 75; |
D3DRENDERSTATE_STIPPLEPATTERN12 = 76; |
D3DRENDERSTATE_STIPPLEPATTERN13 = 77; |
D3DRENDERSTATE_STIPPLEPATTERN14 = 78; |
D3DRENDERSTATE_STIPPLEPATTERN15 = 79; |
D3DRENDERSTATE_STIPPLEPATTERN16 = 80; |
D3DRENDERSTATE_STIPPLEPATTERN17 = 81; |
D3DRENDERSTATE_STIPPLEPATTERN18 = 82; |
D3DRENDERSTATE_STIPPLEPATTERN19 = 83; |
D3DRENDERSTATE_STIPPLEPATTERN20 = 84; |
D3DRENDERSTATE_STIPPLEPATTERN21 = 85; |
D3DRENDERSTATE_STIPPLEPATTERN22 = 86; |
D3DRENDERSTATE_STIPPLEPATTERN23 = 87; |
D3DRENDERSTATE_STIPPLEPATTERN24 = 88; |
D3DRENDERSTATE_STIPPLEPATTERN25 = 89; |
D3DRENDERSTATE_STIPPLEPATTERN26 = 90; |
D3DRENDERSTATE_STIPPLEPATTERN27 = 91; |
D3DRENDERSTATE_STIPPLEPATTERN28 = 92; |
D3DRENDERSTATE_STIPPLEPATTERN29 = 93; |
D3DRENDERSTATE_STIPPLEPATTERN30 = 94; |
D3DRENDERSTATE_STIPPLEPATTERN31 = 95; |
D3DRENDERSTATETYPE = TD3DRenderStateType; |
// |
// retired renderstate names - the values are still used under new naming conventions |
// |
D3DRENDERSTATE_FOGTABLESTART = 36; (* Fog table start *) |
D3DRENDERSTATE_FOGTABLEEND = 37; (* Fog table end *) |
D3DRENDERSTATE_FOGTABLEDENSITY = 38; (* Fog table density *) |
TD3DMaterialColorSource = ( |
type |
// Values for material source |
PD3DMateralColorSource = ^TD3DMateralColorSource; |
TD3DMateralColorSource = ( |
D3DMCS_MATERIAL, // Color from material is used |
D3DMCS_COLOR1, // Diffuse vertex color is used |
D3DMCS_COLOR2 // Specular vertex color is used |
); // force 32-bit size enum |
); |
const |
{ For back-compatibility with legacy compilations } |
// For back-compatibility with legacy compilations |
D3DRENDERSTATE_BLENDENABLE = D3DRENDERSTATE_ALPHABLENDENABLE; |
D3DRENDERSTATE_FOGTABLESTART = D3DRENDERSTATE_FOGSTART; |
D3DRENDERSTATE_FOGTABLEEND = D3DRENDERSTATE_FOGEND; |
D3DRENDERSTATE_FOGTABLEDENSITY = D3DRENDERSTATE_FOGDENSITY; |
{ Bias to apply to the texture coordinate set to apply a wrap to. } |
D3DRENDERSTATE_WRAPBIAS = TD3DRenderStateType(128); |
{ Flags to construct the WRAP render states } |
// Bias to apply to the texture coordinate set to apply a wrap to. |
D3DRENDERSTATE_WRAPBIAS = 128; |
(* Flags to construct the WRAP render states *) |
D3DWRAP_U = $00000001; |
D3DWRAP_V = $00000002; |
{ Flags to construct the WRAP render states for 1D thru 4D texture coordinates } |
(* Flags to construct the WRAP render states for 1D thru 4D texture coordinates *) |
D3DWRAPCOORD_0 = $00000001; // same as D3DWRAP_U |
D3DWRAPCOORD_1 = $00000002; // same as D3DWRAP_V |
D3DWRAPCOORD_2 = $00000004; |
D3DWRAPCOORD_3 = $00000008; |
function D3DRENDERSTATE_STIPPLEPATTERN(y: DWORD): TD3DRenderStateType; |
function D3DRENDERSTATE_STIPPLEPATTERN(y: integer) : TD3DRenderStateType; |
type |
TD3DState = record |
PD3DState = ^TD3DState; |
TD3DState = packed record |
case Integer of |
0: ( |
dtstTransformStateType: TD3DTransformStateType; |
dwArg: array[0..0] of DWORD; |
dwArg: Array [ 0..0 ] of DWORD; |
); |
1: ( |
dlstLightStateType: TD3DLightStateType; |
dvArg: array[0..0] of TD3DValue; |
dvArg: Array [ 0..0 ] of TD3DValue; |
); |
2: ( |
drstRenderStateType: TD3DRenderStateType; |
3673,39 → 6815,39 |
); |
end; |
D3DSTATE = TD3DState; |
{ TD3DMatrixLoad structure } |
TD3DMatrixLoad = record |
hDestMatrix: TD3DMatrixHandle; // Destination matrix |
hSrcMatrix: TD3DMatrixHandle; // Source matrix |
(* |
* Operation used to load matrices |
* hDstMat = hSrcMat |
*) |
PD3DMatrixLoad = ^TD3DMatrixLoad; |
TD3DMatrixLoad = packed record |
hDestMatrix: TD3DMatrixHandle; (* Destination matrix *) |
hSrcMatrix: TD3DMatrixHandle; (* Source matrix *) |
end; |
D3DMATRIXLOAD = TD3DMatrixLoad; |
{ TD3DMatrixMultiply structure } |
TD3DMatrixMultiply = record |
hDestMatrix: TD3DMatrixHandle; // Destination matrix |
hSrcMatrix1: TD3DMatrixHandle; // First source matrix |
hSrcMatrix2: TD3DMatrixHandle; // Second source matrix |
(* |
* Operation used to multiply matrices |
* hDstMat = hSrcMat1 * hSrcMat2 |
*) |
PD3DMatrixMultiply = ^TD3DMatrixMultiply; |
TD3DMatrixMultiply = packed record |
hDestMatrix: TD3DMatrixHandle; (* Destination matrix *) |
hSrcMatrix1: TD3DMatrixHandle; (* First source matrix *) |
hSrcMatrix2: TD3DMatrixHandle; (* Second source matrix *) |
end; |
D3DMATRIXMULTIPLY = TD3DMatrixMultiply; |
{ TD3DProcessVertices structure } |
TD3DProcessVertices = record |
dwFlags: DWORD; // Do we transform or light or just copy? |
wStart: WORD; // Index to first vertex in source |
wDest: WORD; // Index to first vertex in local buffer |
dwCount: DWORD; // Number of vertices to be processed |
dwReserved: DWORD; // Must be zero |
(* |
* Operation used to transform and light vertices. |
*) |
PD3DProcessVertices = ^TD3DProcessVertices; |
TD3DProcessVertices = packed record |
dwFlags: DWORD; (* Do we transform or light or just copy? *) |
wStart: WORD; (* Index to first vertex in source *) |
wDest: WORD; (* Index to first vertex in local buffer *) |
dwCount: DWORD; (* Number of vertices to be processed *) |
dwReserved: DWORD; (* Must be zero *) |
end; |
D3DPROCESSVERTICES = TD3DProcessVertices; |
const |
D3DPROCESSVERTICES_TRANSFORMLIGHT = $00000000; |
D3DPROCESSVERTICES_TRANSFORM = $00000001; |
3715,52 → 6857,54 |
D3DPROCESSVERTICES_UPDATEEXTENTS = $00000008; |
D3DPROCESSVERTICES_NOCOLOR = $00000010; |
{ TD3DTextureStagesStateType } |
(* |
* State enumerants for per-stage texture processing. |
*) |
type |
TD3DTextureStagesStateType = ( |
D3DTSS_INVALID_0, |
D3DTSS_COLOROP, // TD3DTextureOp - per-stage blending controls for color channels |
D3DTSS_COLORARG1, // D3DTA_* (texture arg) |
D3DTSS_COLORARG2, // D3DTA_* (texture arg) |
D3DTSS_ALPHAOP, // TD3DTextureOp - per-stage blending controls for alpha channel |
D3DTSS_ALPHAARG1, // D3DTA_* (texture arg) |
D3DTSS_ALPHAARG2, // D3DTA_* (texture arg) |
D3DTSS_BUMPENVMAT00, // TD3DValue (bump mapping matrix) |
D3DTSS_BUMPENVMAT01, // TD3DValue (bump mapping matrix) |
D3DTSS_BUMPENVMAT10, // TD3DValue (bump mapping matrix) |
D3DTSS_BUMPENVMAT11, // TD3DValue (bump mapping matrix) |
D3DTSS_TEXCOORDINDEX, // identifies which set of texture coordinates index this texture |
D3DTSS_ADDRESS, // TD3DTextureAddress for both coordinates |
D3DTSS_ADDRESSU, // TD3DTextureAddress for U coordinate |
D3DTSS_ADDRESSV, // TD3DTextureAddress for V coordinate |
D3DTSS_BORDERCOLOR, // TD3DColor |
D3DTSS_MAGFILTER, // TD3DTextureMagFilter filter to use for magnification |
D3DTSS_MINFILTER, // TD3DTextureMinFilter filter to use for minification |
D3DTSS_MIPFILTER, // TD3DTextureMipFilter filter to use between mipmaps during minification |
D3DTSS_MIPMAPLODBIAS, // D3DVALUE Mipmap LOD bias |
D3DTSS_MAXMIPLEVEL, // DWORD 0..(n-1) LOD index of largest map to use (0 == largest) |
D3DTSS_MAXANISOTROPY, // DWORD maximum anisotropy |
D3DTSS_BUMPENVLSCALE, // TD3DValue scale for bump map luminance |
D3DTSS_BUMPENVLOFFSET, // TD3DValue offset for bump map luminance |
D3DTSS_TEXTURETRANSFORMFLAGS // D3DTEXTURETRANSFORMFLAGS controls texture transform |
); |
D3DTEXTURESTAGESTATETYPE = TD3DTextureStagesStateType; |
PD3DTextureStageStateType = ^TD3DTextureStageStateType; |
TD3DTextureStageStateType = DWORD; |
const |
{ Values, used with D3DTSS_TEXCOORDINDEX, to specify that the vertex data(position } |
{ and normal in the camera space) should be taken as texture coordinates } |
{ Low 16 bits are used to specify texture coordinate index, to take the WRAP mode from } |
D3DTSS_COLOROP = 1; (* D3DTEXTUREOP - per-stage blending controls for color channels *) |
D3DTSS_COLORARG1 = 2; (* D3DTA_* (texture arg) *) |
D3DTSS_COLORARG2 = 3; (* D3DTA_* (texture arg) *) |
D3DTSS_ALPHAOP = 4; (* D3DTEXTUREOP - per-stage blending controls for alpha channel *) |
D3DTSS_ALPHAARG1 = 5; (* D3DTA_* (texture arg) *) |
D3DTSS_ALPHAARG2 = 6; (* D3DTA_* (texture arg) *) |
D3DTSS_BUMPENVMAT00 = 7; (* D3DVALUE (bump mapping matrix) *) |
D3DTSS_BUMPENVMAT01 = 8; (* D3DVALUE (bump mapping matrix) *) |
D3DTSS_BUMPENVMAT10 = 9; (* D3DVALUE (bump mapping matrix) *) |
D3DTSS_BUMPENVMAT11 = 10; (* D3DVALUE (bump mapping matrix) *) |
D3DTSS_TEXCOORDINDEX = 11; (* identifies which set of texture coordinates index this texture *) |
D3DTSS_ADDRESS = 12; (* D3DTEXTUREADDRESS for both coordinates *) |
D3DTSS_ADDRESSU = 13; (* D3DTEXTUREADDRESS for U coordinate *) |
D3DTSS_ADDRESSV = 14; (* D3DTEXTUREADDRESS for V coordinate *) |
D3DTSS_BORDERCOLOR = 15; (* D3DCOLOR *) |
D3DTSS_MAGFILTER = 16; (* D3DTEXTUREMAGFILTER filter to use for magnification *) |
D3DTSS_MINFILTER = 17; (* D3DTEXTUREMINFILTER filter to use for minification *) |
D3DTSS_MIPFILTER = 18; (* D3DTEXTUREMIPFILTER filter to use between mipmaps during minification *) |
D3DTSS_MIPMAPLODBIAS = 19; (* D3DVALUE Mipmap LOD bias *) |
D3DTSS_MAXMIPLEVEL = 20; (* DWORD 0..(n-1) LOD index of largest map to use (0 == largest) *) |
D3DTSS_MAXANISOTROPY = 21; (* DWORD maximum anisotropy *) |
D3DTSS_BUMPENVLSCALE = 22; (* D3DVALUE scale for bump map luminance *) |
D3DTSS_BUMPENVLOFFSET = 23; (* D3DVALUE offset for bump map luminance *) |
D3DTSS_TEXTURETRANSFORMFLAGS = 24; (* D3DTEXTURETRANSFORMFLAGS controls texture transform *) |
// Values, used with D3DTSS_TEXCOORDINDEX, to specify that the vertex data(position |
// and normal in the camera space) should be taken as texture coordinates |
// Low 16 bits are used to specify texture coordinate index, to take the WRAP mode from |
// |
D3DTSS_TCI_PASSTHRU = $00000000; |
D3DTSS_TCI_CAMERASPACENORMAL = $00010000; |
D3DTSS_TCI_CAMERASPACEPOSITION = $00020000; |
D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = $00030000; |
{ TD3DTextureOp } |
type |
(* |
* Enumerations for COLOROP and ALPHAOP texture blending operations set in |
* texture processing stage controls in D3DRENDERSTATE. |
*) |
PD3DTextureOp = ^TD3DTextureOp; |
TD3DTextureOp = ( |
D3DTOP_INVALID_0, |
// Control |
3767,10 → 6911,12 |
D3DTOP_DISABLE, // disables stage |
D3DTOP_SELECTARG1, // the default |
D3DTOP_SELECTARG2, |
// Modulate |
D3DTOP_MODULATE, // multiply args together |
D3DTOP_MODULATE2X, // multiply and 1 bit |
D3DTOP_MODULATE4X, // multiply and 2 bits |
// Add |
D3DTOP_ADD, // add arguments together |
D3DTOP_ADDSIGNED, // add with -0.5 bias |
3779,6 → 6925,7 |
D3DTOP_ADDSMOOTH, // add 2 args, subtract product |
// Arg1 + Arg2 - Arg1*Arg2 |
// = Arg1 + (1-Arg1)*Arg2 |
// Linear alpha blend: Arg1*(Alpha) + Arg2*(1-Alpha) |
D3DTOP_BLENDDIFFUSEALPHA, // iterated alpha |
D3DTOP_BLENDTEXTUREALPHA, // texture alpha |
3786,6 → 6933,7 |
// Linear alpha blend with pre-multiplied arg1 input: Arg1 + Arg2*(1-Alpha) |
D3DTOP_BLENDTEXTUREALPHAPM, // texture alpha |
D3DTOP_BLENDCURRENTALPHA, // by alpha of current color |
// Specular mapping |
D3DTOP_PREMODULATE, // modulate with next texture before use |
D3DTOP_MODULATEALPHA_ADDCOLOR, // Arg1.RGB + Arg1.A*Arg2.RGB |
3796,6 → 6944,7 |
// COLOROP only |
D3DTOP_MODULATEINVCOLOR_ADDALPHA, // (1-Arg1.RGB)*Arg2.RGB + Arg1.A |
// COLOROP only |
// Bump mapping |
D3DTOP_BUMPENVMAP, // per pixel env map perturbation |
D3DTOP_BUMPENVMAPLUMINANCE, // with luminance channel |
3807,11 → 6956,10 |
D3DTOP_DOTPRODUCT3 |
); |
D3DTEXTUREOP = TD3DTextureOp; |
{ Values for COLORARG1,2 and ALPHAARG1,2 texture blending operations |
set in texture processing stage controls in D3DRENDERSTATE. } |
(* |
* Values for COLORARG1,2 and ALPHAARG1,2 texture blending operations |
* set in texture processing stage controls in D3DRENDERSTATE. |
*) |
const |
D3DTA_SELECTMASK = $0000000f; // mask for arg selector |
D3DTA_DIFFUSE = $00000000; // select diffuse color |
3822,9 → 6970,11 |
D3DTA_COMPLEMENT = $00000010; // take 1.0 - x |
D3DTA_ALPHAREPLICATE = $00000020; // replicate alpha to color components |
{ IDirect3DTexture2 State Filter Types } |
(* |
* IDirect3DTexture2 State Filter Types |
*) |
type |
PD3DTextureMagFilter = ^TD3DTextureMagFilter; |
TD3DTextureMagFilter = ( |
D3DTFG_INVALID_0, |
D3DTFG_POINT, // nearest |
3834,8 → 6984,7 |
D3DTFG_ANISOTROPIC |
); |
D3DTEXTUREMAGFILTER = TD3DTextureMagFilter; |
PD3DTextureMinFilter = ^TD3DTextureMinFilter; |
TD3DTextureMinFilter = ( |
D3DTFN_INVALID_0, |
D3DTFN_POINT, // nearest |
3843,8 → 6992,7 |
D3DTFN_ANISOTROPIC |
); |
D3DTEXTUREMINFILTER = TD3DTextureMinFilter; |
PD3DTextureMipFilter = ^TD3DTextureMipFilter; |
TD3DTextureMipFilter = ( |
D3DTFP_INVALID_0, |
D3DTFP_NONE, // mipmapping disabled (use MAG filter) |
3852,37 → 7000,55 |
D3DTFP_LINEAR // linear interpolation |
); |
D3DTEXTUREMIPFILTER = TD3DTextureMipFilter; |
{ Triangle flags } |
(* |
* Triangle flags |
*) |
(* |
* Tri strip and fan flags. |
* START loads all three vertices |
* EVEN and ODD load just v3 with even or odd culling |
* START_FLAT contains a count from 0 to 29 that allows the |
* whole strip or fan to be culled in one hit. |
* e.g. for a quad len = 1 |
*) |
const |
D3DTRIFLAG_START = $00000000; |
// #define D3DTRIFLAG_STARTFLAT(len) (len) (* 0 < len < 30 *) |
function D3DTRIFLAG_STARTFLAT(len: DWORD) : DWORD; |
const |
D3DTRIFLAG_ODD = $0000001e; |
D3DTRIFLAG_EVEN = $0000001f; |
function D3DTRIFLAG_STARTFLAT(len: DWORD): DWORD; |
(* |
* Triangle edge flags |
* enable edges for wireframe or antialiasing |
*) |
D3DTRIFLAG_EDGEENABLE1 = $00000100; (* v0-v1 edge *) |
D3DTRIFLAG_EDGEENABLE2 = $00000200; (* v1-v2 edge *) |
D3DTRIFLAG_EDGEENABLE3 = $00000400; (* v2-v0 edge *) |
D3DTRIFLAG_EDGEENABLETRIANGLE = ( |
D3DTRIFLAG_EDGEENABLE1 or D3DTRIFLAG_EDGEENABLE2 or D3DTRIFLAG_EDGEENABLE3); |
{ Triangle edge flags } |
(* |
* Primitive structures and related defines. Vertex offsets are to types |
* TD3DVertex, TD3DLVertex, or TD3DTLVertex. |
*) |
const |
D3DTRIFLAG_EDGEENABLE1 = $00000100; // v0-v1 edge |
D3DTRIFLAG_EDGEENABLE2 = $00000200; // v1-v2 edge |
D3DTRIFLAG_EDGEENABLE3 = $00000400; // v2-v0 edge |
D3DTRIFLAG_EDGEENABLETRIANGLE = |
D3DTRIFLAG_EDGEENABLE1 or D3DTRIFLAG_EDGEENABLE2 or D3DTRIFLAG_EDGEENABLE3; |
{ TD3DTriangle structure } |
(* |
* Triangle list primitive structure |
*) |
type |
PD3DTriangle = ^TD3DTriangle; |
TD3DTriangle = record |
TD3DTriangle = packed record |
case Integer of |
0: ( |
v1: WORD; // Vertex indices |
v1: WORD; (* Vertex indices *) |
v2: WORD; |
v3: WORD; |
wFlags: WORD; // Edge (and other) flags |
wFlags: WORD; (* Edge (and other) flags *) |
); |
1: ( |
wV1: WORD; |
3891,16 → 7057,15 |
); |
end; |
D3DTRIANGLE = TD3DTriangle; |
LPD3DTRIANGLE = PD3DTriangle; |
{ TD3DLine structure } |
(* |
* Line strip structure. |
* The instruction count - 1 defines the number of line segments. |
*) |
PD3DLine = ^TD3DLine; |
TD3DLine = record |
TD3DLine = packed record |
case Integer of |
0: ( |
v1: WORD; // Vertex indices |
v1: WORD; (* Vertex indices *) |
v2: WORD; |
); |
1: ( |
3909,86 → 7074,77 |
); |
end; |
D3DLINE = TD3DLine; |
LPD3DLINE = PD3DLine; |
{ TD3DSpan structure } |
(* |
* Span structure |
* Spans join a list of points with the same y value. |
* If the y value changes, a new span is started. |
*) |
PD3DSpan = ^TD3DSpan; |
TD3DSpan = record |
wCount: WORD; // Number of spans |
wFirst: WORD; // Index to first vertex |
TD3DSpan = packed record |
wCount: WORD; (* Number of spans *) |
wFirst: WORD; (* Index to first vertex *) |
end; |
D3DSPAN = TD3DSpan; |
LPD3DSPAN = PD3DSpan; |
{ TD3DPoint structure } |
(* |
* Point structure |
*) |
PD3DPoint = ^TD3DPoint; |
TD3DPoint = record |
wCount: WORD; // number of points |
wFirst: WORD; // index to first vertex |
TD3DPoint = packed record |
wCount: WORD; (* number of points *) |
wFirst: WORD; (* index to first vertex *) |
end; |
D3DPOINT = TD3DPoint; |
LPD3DPOINT = PD3DPoint; |
{ TD3DBranch structure } |
(* |
* Forward branch structure. |
* Mask is logically anded with the driver status mask |
* if the result equals 'value', the branch is taken. |
*) |
PD3DBranch = ^TD3DBranch; |
TD3DBranch = record |
dwMask: DWORD; // Bitmask against D3D status |
TD3DBranch = packed record |
dwMask: DWORD; (* Bitmask against D3D status *) |
dwValue: DWORD; |
bNegate: BOOL; // TRUE to negate comparison |
dwOffset: DWORD; // How far to branch forward (0 for exit) |
bNegate: BOOL; (* TRUE to negate comparison *) |
dwOffset: DWORD; (* How far to branch forward (0 for exit)*) |
end; |
D3DBRANCH = TD3DBranch; |
LPD3DBRANCH = PD3DBranch; |
{ TD3DStatus structure } |
(* |
* Status used for set status instruction. |
* The D3D status is initialised on device creation |
* and is modified by all execute calls. |
*) |
PD3DStatus = ^TD3DStatus; |
TD3DStatus = record |
dwFlags: DWORD; // Do we set extents or status |
dwStatus: DWORD; // D3D status |
TD3DStatus = packed record |
dwFlags: DWORD; (* Do we set extents or status *) |
dwStatus: DWORD; (* D3D status *) |
drExtent: TD3DRect; |
end; |
D3DSTATUS = TD3DStatus; |
LPD3DSTATUS = PD3DStatus; |
const |
D3DSETSTATUS_STATUS = $00000001; |
D3DSETSTATUS_EXTENTS = $00000002; |
D3DSETSTATUS_ALL = D3DSETSTATUS_STATUS or D3DSETSTATUS_EXTENTS; |
D3DSETSTATUS_ALL = (D3DSETSTATUS_STATUS or D3DSETSTATUS_EXTENTS); |
{ TD3DClipStatus structure } |
type |
PD3DClipStatus = ^TD3DClipStatus; |
TD3DClipStatus = record |
dwFlags: DWORD; // Do we set 2d extents, 3D extents or status |
dwStatus: DWORD; // Clip status |
minx, maxx: Single; // X extents |
miny, maxy: Single; // Y extents |
minz, maxz: Single; // Z extents |
TD3DClipStatus = packed record |
dwFlags : DWORD; (* Do we set 2d extents, 3D extents or status *) |
dwStatus : DWORD; (* Clip status *) |
minx, maxx : float; (* X extents *) |
miny, maxy : float; (* Y extents *) |
minz, maxz : float; (* Z extents *) |
end; |
D3DCLIPSTATUS = TD3DClipStatus; |
LPD3DCLIPSTATUS = PD3DClipStatus; |
const |
D3DCLIPSTATUS_STATUS = $00000001; |
D3DCLIPSTATUS_EXTENTS2 = $00000002; |
D3DCLIPSTATUS_EXTENTS3 = $00000004; |
{ TD3DStats structure } |
(* |
* Statistics structure |
*) |
type |
PD3DStats = ^TD3DStats; |
TD3DStats = record |
TD3DStats = packed record |
dwSize: DWORD; |
dwTrianglesDrawn: DWORD; |
dwLinesDrawn: DWORD; |
3997,20 → 7153,18 |
dwVerticesProcessed: DWORD; |
end; |
D3DSTATS = TD3DStats; |
LPD3DSTATS = PD3DStats; |
{ Execute options. } |
(* |
* Execute options. |
* When calling using D3DEXECUTE_UNCLIPPED all the primitives |
* inside the buffer must be contained within the viewport. |
*) |
const |
D3DEXECUTE_CLIPPED = $00000001; |
D3DEXECUTE_UNCLIPPED = $00000002; |
{ TD3DExecuteData structure } |
type |
PD3DExecuteData = ^TD3DExecuteData; |
TD3DExecuteData = record |
TD3DExecuteData = packed record |
dwSize: DWORD; |
dwVertexOffset: DWORD; |
dwVertexCount: DWORD; |
4017,24 → 7171,23 |
dwInstructionOffset: DWORD; |
dwInstructionLength: DWORD; |
dwHVertexOffset: DWORD; |
dsStatus: D3DSTATUS; // Status after execute |
dsStatus: TD3DStatus; (* Status after execute *) |
end; |
D3DEXECUTEDATA = TD3DExecuteData; |
LPD3DEXECUTEDATA = PD3DExecuteData; |
(* |
* Palette flags. |
* This are or'ed with the peFlags in the PALETTEENTRYs passed to DirectDraw. |
*) |
{ Palette flags. } |
const |
D3DPAL_FREE = $00; // Renderer may use this entry freely |
D3DPAL_READONLY = $40; // Renderer may not set this entry |
D3DPAL_RESERVED = $80; // Renderer may not use this entry |
D3DPAL_FREE = $00; (* Renderer may use this entry freely *) |
D3DPAL_READONLY = $40; (* Renderer may not set this entry *) |
D3DPAL_RESERVED = $80; (* Renderer may not use this entry *) |
{ TD3DVertexBufferDesc structure } |
type |
PD3DVertexBufferDesc = ^TD3DVertexBufferDesc; |
TD3DVertexBufferDesc = record |
TD3DVertexBufferDesc = packed record |
dwSize: DWORD; |
dwCaps: DWORD; |
dwFVF: DWORD; |
4041,36 → 7194,35 |
dwNumVertices: DWORD; |
end; |
D3DVERTEXBUFFERDESC = TD3DVertexBufferDesc; |
LPD3DVERTEXBUFFERDESC = PD3DVertexBufferDesc; |
{ These correspond to DDSCAPS_* flags } |
const |
(* These correspond to DDSCAPS_* flags *) |
D3DVBCAPS_SYSTEMMEMORY = $00000800; |
D3DVBCAPS_WRITEONLY = $00010000; |
D3DVBCAPS_OPTIMIZED = $80000000; |
D3DVBCAPS_DONOTCLIP = $00000001; |
{ Vertex Operations for ProcessVertices } |
(* Vertex Operations for ProcessVertices *) |
D3DVOP_LIGHT = (1 shl 10); |
D3DVOP_TRANSFORM = (1 shl 0); |
D3DVOP_CLIP = (1 shl 2); |
D3DVOP_EXTENTS = (1 shl 3); |
D3DVOP_LIGHT = 1 shl 10; |
D3DVOP_TRANSFORM = 1 shl 0; |
D3DVOP_CLIP = 1 shl 2; |
D3DVOP_EXTENTS = 1 shl 3; |
(* The maximum number of vertices user can pass to any d3d |
drawing function or to create vertex buffer with |
*) |
D3DMAXNUMVERTICES = ((1 shl 16) - 1); |
(* The maximum number of primitives user can pass to any d3d |
drawing function. |
*) |
D3DMAXNUMPRIMITIVES = ((1 shl 16) - 1); |
{ The maximum number of vertices user can pass to any d3d |
drawing function or to create vertex buffer with } |
D3DMAXNUMVERTICES = (1 shl 16)-1; |
(* Bits for dwFlags in ProcessVertices call *) |
D3DPV_DONOTCOPYDATA = (1 shl 0); |
{ The maximum number of primitives user can pass to any d3d drawing function. } |
D3DMAXNUMPRIMITIVES = (1 shl 16)-1; |
//------------------------------------------------------------------- |
{ Bits for dwFlags in ProcessVertices call } |
D3DPV_DONOTCOPYDATA = 1 shl 0; |
{ Flexible vertex format bits } |
// Flexible vertex format bits |
// |
D3DFVF_RESERVED0 = $001; |
D3DFVF_POSITION_MASK = $00E; |
D3DFVF_XYZ = $002; |
4080,10 → 7232,12 |
D3DFVF_XYZB3 = $00a; |
D3DFVF_XYZB4 = $00c; |
D3DFVF_XYZB5 = $00e; |
D3DFVF_NORMAL = $010; |
D3DFVF_RESERVED1 = $020; |
D3DFVF_DIFFUSE = $040; |
D3DFVF_SPECULAR = $080; |
D3DFVF_TEXCOUNT_MASK = $f00; |
D3DFVF_TEXCOUNT_SHIFT = 8; |
D3DFVF_TEX0 = $000; |
4096,30 → 7250,27 |
D3DFVF_TEX7 = $700; |
D3DFVF_TEX8 = $800; |
D3DFVF_RESERVED2 = $F000; // 4 reserved bits |
D3DFVF_RESERVED2 = $f000; // 4 reserved bits |
D3DFVF_VERTEX = D3DFVF_XYZ or D3DFVF_NORMAL or D3DFVF_TEX1; |
D3DFVF_LVERTEX = D3DFVF_XYZ or D3DFVF_RESERVED1 or D3DFVF_DIFFUSE or |
D3DFVF_SPECULAR or D3DFVF_TEX1; |
D3DFVF_TLVERTEX = D3DFVF_XYZRHW or D3DFVF_DIFFUSE or D3DFVF_SPECULAR or |
D3DFVF_TEX1; |
D3DFVF_VERTEX = ( D3DFVF_XYZ or D3DFVF_NORMAL or D3DFVF_TEX1 ); |
D3DFVF_LVERTEX = ( D3DFVF_XYZ or D3DFVF_RESERVED1 or D3DFVF_DIFFUSE or |
D3DFVF_SPECULAR or D3DFVF_TEX1 ); |
D3DFVF_TLVERTEX = ( D3DFVF_XYZRHW or D3DFVF_DIFFUSE or D3DFVF_SPECULAR or |
D3DFVF_TEX1 ); |
{ TD3DDP_PtrStride } |
type |
TD3DDP_PtrStride = record |
lpvData: Pointer; |
PD3DDP_PtrStride = ^TD3DDP_PtrStride; |
TD3DDP_PtrStride = packed record |
lpvData : pointer; |
dwStride: DWORD; |
end; |
D3DDP_PTRSTRIDE = TD3DDP_PtrStride; |
const |
D3DDP_MAXTEXCOORD = 8; |
type |
PD3DDrawPrimitiveStridedData = ^TD3DDrawPrimitiveStridedData; |
TD3DDrawPrimitiveStridedData = record |
TD3DDrawPrimitiveStridedData = packed record |
position: TD3DDP_PtrStride; |
normal: TD3DDP_PtrStride; |
diffuse: TD3DDP_PtrStride; |
4127,62 → 7278,57 |
textureCoords: array[0..D3DDP_MAXTEXCOORD-1] of TD3DDP_PtrStride; |
end; |
D3DDRAWPRIMITIVESTRIDEDDATA = TD3DDrawPrimitiveStridedData; |
LPD3DDRAWPRIMITIVESTRIDEDDATA = PD3DDrawPrimitiveStridedData; |
{ ComputeSphereVisibility return values } |
//--------------------------------------------------------------------- |
// ComputeSphereVisibility return values |
// |
const |
D3DVIS_INSIDE_FRUSTUM = 0; |
D3DVIS_INTERSECT_FRUSTUM = 1; |
D3DVIS_OUTSIDE_FRUSTUM = 2; |
D3DVIS_INSIDE_LEFT = 0; |
D3DVIS_INTERSECT_LEFT = 1 shl 2; |
D3DVIS_OUTSIDE_LEFT = 2 shl 2; |
D3DVIS_INTERSECT_LEFT = (1 shl 2); |
D3DVIS_OUTSIDE_LEFT = (2 shl 2); |
D3DVIS_INSIDE_RIGHT = 0; |
D3DVIS_INTERSECT_RIGHT = 1 shl 4; |
D3DVIS_OUTSIDE_RIGHT = 2 shl 4; |
D3DVIS_INTERSECT_RIGHT = (1 shl 4); |
D3DVIS_OUTSIDE_RIGHT = (2 shl 4); |
D3DVIS_INSIDE_TOP = 0; |
D3DVIS_INTERSECT_TOP = 1 shl 6; |
D3DVIS_OUTSIDE_TOP = 2 shl 6; |
D3DVIS_INTERSECT_TOP = (1 shl 6); |
D3DVIS_OUTSIDE_TOP = (2 shl 6); |
D3DVIS_INSIDE_BOTTOM = 0; |
D3DVIS_INTERSECT_BOTTOM = 1 shl 8; |
D3DVIS_OUTSIDE_BOTTOM = 2 shl 8; |
D3DVIS_INTERSECT_BOTTOM = (1 shl 8); |
D3DVIS_OUTSIDE_BOTTOM = (2 shl 8); |
D3DVIS_INSIDE_NEAR = 0; |
D3DVIS_INTERSECT_NEAR = 1 shl 10; |
D3DVIS_OUTSIDE_NEAR = 2 shl 10; |
D3DVIS_INTERSECT_NEAR = (1 shl 10); |
D3DVIS_OUTSIDE_NEAR = (2 shl 10); |
D3DVIS_INSIDE_FAR = 0; |
D3DVIS_INTERSECT_FAR = 1 shl 12; |
D3DVIS_OUTSIDE_FAR = 2 shl 12; |
D3DVIS_INTERSECT_FAR = (1 shl 12); |
D3DVIS_OUTSIDE_FAR = (2 shl 12); |
D3DVIS_MASK_FRUSTUM = 3 shl 0; |
D3DVIS_MASK_LEFT = 3 shl 2; |
D3DVIS_MASK_RIGHT = 3 shl 4; |
D3DVIS_MASK_TOP = 3 shl 6; |
D3DVIS_MASK_BOTTOM = 3 shl 8; |
D3DVIS_MASK_NEAR = 3 shl 10; |
D3DVIS_MASK_FAR = 3 shl 12; |
D3DVIS_MASK_FRUSTUM = (3 shl 0); |
D3DVIS_MASK_LEFT = (3 shl 2); |
D3DVIS_MASK_RIGHT = (3 shl 4); |
D3DVIS_MASK_TOP = (3 shl 6); |
D3DVIS_MASK_BOTTOM = (3 shl 8); |
D3DVIS_MASK_NEAR = (3 shl 10); |
D3DVIS_MASK_FAR = (3 shl 12); |
{ To be used with GetInfo() } |
// To be used with GetInfo() |
D3DDEVINFOID_TEXTUREMANAGER = 1; |
D3DDEVINFOID_D3DTEXTUREMANAGER = 2; |
D3DDEVINFOID_TEXTURING = 3; |
type |
{ TD3DStateBlockType } |
PD3DStateBlockType = ^TD3DStateBlockType; |
TD3DStateBlockType = ( |
D3DBST_INVALID_0, |
D3DSBT_INVALID_0 , |
D3DSBT_ALL , // capture all state |
D3DSBT_PIXELSTATE, // capture pixel state |
D3DSBT_VERTEXSTATE // capture vertex state |
); |
D3DSTATEBLOCKTYPE = TD3DStateBlockType; |
{ TD3DVertexBlendFlags } |
// The D3DVERTEXBLENDFLAGS type is used with D3DRENDERSTATE_VERTEXBLEND state. |
// |
PD3DVertexBlendFlags = ^TD3DVertexBlendFlags; |
TD3DVertexBlendFlags = ( |
D3DVBLEND_DISABLE, // Disable vertex blending |
D3DVBLEND_1WEIGHT, // blend between 2 matrices |
4190,273 → 7336,20 |
D3DVBLEND_3WEIGHTS // blend between 4 matrices |
); |
D3DVERTEXBLENDFLAGS = TD3DVertexBlendFlags; |
{ TD3DTextureTransformFlags } |
PD3DTextureTransformFlags = ^TD3DTextureTransformFlags; |
TD3DTextureTransformFlags = ( |
D3DTTFF_DISABLE, // texture coordinates are passed directly |
D3DTTFF_COUNT1, // rasterizer should expect 1-D texture coords |
D3DTTFF_COUNT2, // rasterizer should expect 2-D texture coords |
D3DTTFF_COUNT3, // rasterizer should expect 3-D texture coords |
D3DTTFF_COUNT4, // rasterizer should expect 4-D texture coords |
D3DTIFF_INVALID_5, |
D3DTIFF_INVALID_6, |
D3DTIFF_INVALID_7, |
D3DTIFF_INVALID_8, |
D3DTIFF_INVALID_9, |
D3DTIFF_INVALID_10, |
D3DTIFF_INVALID_11, |
D3DTIFF_INVALID_12, |
D3DTIFF_INVALID_13, |
D3DTIFF_INVALID_14, |
D3DTIFF_INVALID_15, |
D3DTIFF_INVALID_16, |
D3DTIFF_INVALID_17, |
D3DTIFF_INVALID_18, |
D3DTIFF_INVALID_19, |
D3DTIFF_INVALID_20, |
D3DTIFF_INVALID_21, |
D3DTIFF_INVALID_22, |
D3DTIFF_INVALID_23, |
D3DTIFF_INVALID_24, |
D3DTIFF_INVALID_25, |
D3DTIFF_INVALID_26, |
D3DTIFF_INVALID_27, |
D3DTIFF_INVALID_28, |
D3DTIFF_INVALID_29, |
D3DTIFF_INVALID_30, |
D3DTIFF_INVALID_31, |
D3DTIFF_INVALID_32, |
D3DTIFF_INVALID_33, |
D3DTIFF_INVALID_34, |
D3DTIFF_INVALID_35, |
D3DTIFF_INVALID_36, |
D3DTIFF_INVALID_37, |
D3DTIFF_INVALID_38, |
D3DTIFF_INVALID_39, |
D3DTIFF_INVALID_40, |
D3DTIFF_INVALID_41, |
D3DTIFF_INVALID_42, |
D3DTIFF_INVALID_43, |
D3DTIFF_INVALID_44, |
D3DTIFF_INVALID_45, |
D3DTIFF_INVALID_46, |
D3DTIFF_INVALID_47, |
D3DTIFF_INVALID_48, |
D3DTIFF_INVALID_49, |
D3DTIFF_INVALID_50, |
D3DTIFF_INVALID_51, |
D3DTIFF_INVALID_52, |
D3DTIFF_INVALID_53, |
D3DTIFF_INVALID_54, |
D3DTIFF_INVALID_55, |
D3DTIFF_INVALID_56, |
D3DTIFF_INVALID_57, |
D3DTIFF_INVALID_58, |
D3DTIFF_INVALID_59, |
D3DTIFF_INVALID_60, |
D3DTIFF_INVALID_61, |
D3DTIFF_INVALID_62, |
D3DTIFF_INVALID_63, |
D3DTIFF_INVALID_64, |
D3DTIFF_INVALID_65, |
D3DTIFF_INVALID_66, |
D3DTIFF_INVALID_67, |
D3DTIFF_INVALID_68, |
D3DTIFF_INVALID_69, |
D3DTIFF_INVALID_70, |
D3DTIFF_INVALID_71, |
D3DTIFF_INVALID_72, |
D3DTIFF_INVALID_73, |
D3DTIFF_INVALID_74, |
D3DTIFF_INVALID_75, |
D3DTIFF_INVALID_76, |
D3DTIFF_INVALID_77, |
D3DTIFF_INVALID_78, |
D3DTIFF_INVALID_79, |
D3DTIFF_INVALID_80, |
D3DTIFF_INVALID_81, |
D3DTIFF_INVALID_82, |
D3DTIFF_INVALID_83, |
D3DTIFF_INVALID_84, |
D3DTIFF_INVALID_85, |
D3DTIFF_INVALID_86, |
D3DTIFF_INVALID_87, |
D3DTIFF_INVALID_88, |
D3DTIFF_INVALID_89, |
D3DTIFF_INVALID_90, |
D3DTIFF_INVALID_91, |
D3DTIFF_INVALID_92, |
D3DTIFF_INVALID_93, |
D3DTIFF_INVALID_94, |
D3DTIFF_INVALID_95, |
D3DTIFF_INVALID_96, |
D3DTIFF_INVALID_97, |
D3DTIFF_INVALID_98, |
D3DTIFF_INVALID_99, |
D3DTIFF_INVALID_100, |
D3DTIFF_INVALID_101, |
D3DTIFF_INVALID_102, |
D3DTIFF_INVALID_103, |
D3DTIFF_INVALID_104, |
D3DTIFF_INVALID_105, |
D3DTIFF_INVALID_106, |
D3DTIFF_INVALID_107, |
D3DTIFF_INVALID_108, |
D3DTIFF_INVALID_109, |
D3DTIFF_INVALID_110, |
D3DTIFF_INVALID_111, |
D3DTIFF_INVALID_112, |
D3DTIFF_INVALID_113, |
D3DTIFF_INVALID_114, |
D3DTIFF_INVALID_115, |
D3DTIFF_INVALID_116, |
D3DTIFF_INVALID_117, |
D3DTIFF_INVALID_118, |
D3DTIFF_INVALID_119, |
D3DTIFF_INVALID_120, |
D3DTIFF_INVALID_121, |
D3DTIFF_INVALID_122, |
D3DTIFF_INVALID_123, |
D3DTIFF_INVALID_124, |
D3DTIFF_INVALID_125, |
D3DTIFF_INVALID_126, |
D3DTIFF_INVALID_127, |
D3DTIFF_INVALID_128, |
D3DTIFF_INVALID_129, |
D3DTIFF_INVALID_130, |
D3DTIFF_INVALID_131, |
D3DTIFF_INVALID_132, |
D3DTIFF_INVALID_133, |
D3DTIFF_INVALID_134, |
D3DTIFF_INVALID_135, |
D3DTIFF_INVALID_136, |
D3DTIFF_INVALID_137, |
D3DTIFF_INVALID_138, |
D3DTIFF_INVALID_139, |
D3DTIFF_INVALID_140, |
D3DTIFF_INVALID_141, |
D3DTIFF_INVALID_142, |
D3DTIFF_INVALID_143, |
D3DTIFF_INVALID_144, |
D3DTIFF_INVALID_145, |
D3DTIFF_INVALID_146, |
D3DTIFF_INVALID_147, |
D3DTIFF_INVALID_148, |
D3DTIFF_INVALID_149, |
D3DTIFF_INVALID_150, |
D3DTIFF_INVALID_151, |
D3DTIFF_INVALID_152, |
D3DTIFF_INVALID_153, |
D3DTIFF_INVALID_154, |
D3DTIFF_INVALID_155, |
D3DTIFF_INVALID_156, |
D3DTIFF_INVALID_157, |
D3DTIFF_INVALID_158, |
D3DTIFF_INVALID_159, |
D3DTIFF_INVALID_160, |
D3DTIFF_INVALID_161, |
D3DTIFF_INVALID_162, |
D3DTIFF_INVALID_163, |
D3DTIFF_INVALID_164, |
D3DTIFF_INVALID_165, |
D3DTIFF_INVALID_166, |
D3DTIFF_INVALID_167, |
D3DTIFF_INVALID_168, |
D3DTIFF_INVALID_169, |
D3DTIFF_INVALID_170, |
D3DTIFF_INVALID_171, |
D3DTIFF_INVALID_172, |
D3DTIFF_INVALID_173, |
D3DTIFF_INVALID_174, |
D3DTIFF_INVALID_175, |
D3DTIFF_INVALID_176, |
D3DTIFF_INVALID_177, |
D3DTIFF_INVALID_178, |
D3DTIFF_INVALID_179, |
D3DTIFF_INVALID_180, |
D3DTIFF_INVALID_181, |
D3DTIFF_INVALID_182, |
D3DTIFF_INVALID_183, |
D3DTIFF_INVALID_184, |
D3DTIFF_INVALID_185, |
D3DTIFF_INVALID_186, |
D3DTIFF_INVALID_187, |
D3DTIFF_INVALID_188, |
D3DTIFF_INVALID_189, |
D3DTIFF_INVALID_190, |
D3DTIFF_INVALID_191, |
D3DTIFF_INVALID_192, |
D3DTIFF_INVALID_193, |
D3DTIFF_INVALID_194, |
D3DTIFF_INVALID_195, |
D3DTIFF_INVALID_196, |
D3DTIFF_INVALID_197, |
D3DTIFF_INVALID_198, |
D3DTIFF_INVALID_199, |
D3DTIFF_INVALID_200, |
D3DTIFF_INVALID_201, |
D3DTIFF_INVALID_202, |
D3DTIFF_INVALID_203, |
D3DTIFF_INVALID_204, |
D3DTIFF_INVALID_205, |
D3DTIFF_INVALID_206, |
D3DTIFF_INVALID_207, |
D3DTIFF_INVALID_208, |
D3DTIFF_INVALID_209, |
D3DTIFF_INVALID_210, |
D3DTIFF_INVALID_211, |
D3DTIFF_INVALID_212, |
D3DTIFF_INVALID_213, |
D3DTIFF_INVALID_214, |
D3DTIFF_INVALID_215, |
D3DTIFF_INVALID_216, |
D3DTIFF_INVALID_217, |
D3DTIFF_INVALID_218, |
D3DTIFF_INVALID_219, |
D3DTIFF_INVALID_220, |
D3DTIFF_INVALID_221, |
D3DTIFF_INVALID_222, |
D3DTIFF_INVALID_223, |
D3DTIFF_INVALID_224, |
D3DTIFF_INVALID_225, |
D3DTIFF_INVALID_226, |
D3DTIFF_INVALID_227, |
D3DTIFF_INVALID_228, |
D3DTIFF_INVALID_229, |
D3DTIFF_INVALID_230, |
D3DTIFF_INVALID_231, |
D3DTIFF_INVALID_232, |
D3DTIFF_INVALID_233, |
D3DTIFF_INVALID_234, |
D3DTIFF_INVALID_235, |
D3DTIFF_INVALID_236, |
D3DTIFF_INVALID_237, |
D3DTIFF_INVALID_238, |
D3DTIFF_INVALID_239, |
D3DTIFF_INVALID_240, |
D3DTIFF_INVALID_241, |
D3DTIFF_INVALID_242, |
D3DTIFF_INVALID_243, |
D3DTIFF_INVALID_244, |
D3DTIFF_INVALID_245, |
D3DTIFF_INVALID_246, |
D3DTIFF_INVALID_247, |
D3DTIFF_INVALID_248, |
D3DTIFF_INVALID_249, |
D3DTIFF_INVALID_250, |
D3DTIFF_INVALID_251, |
D3DTIFF_INVALID_252, |
D3DTIFF_INVALID_253, |
D3DTIFF_INVALID_254, |
D3DTIFF_INVALID_255, |
D3DTTFF_PROJECTED // texcoords to be divided by COUNTth element |
D3DTTFF_COUNT4 // rasterizer should expect 4-D texture coords |
); |
{ Macros to set texture coordinate format bits in the FVF id } |
const |
D3DTTFF_PROJECTED = TD3DTextureTransformFlags(256); // texcoords to be divided by COUNTth element |
const |
// Macros to set texture coordinate format bits in the FVF id |
D3DFVF_TEXTUREFORMAT2 = 0; // Two floating point values |
D3DFVF_TEXTUREFORMAT1 = 3; // One floating point value |
D3DFVF_TEXTUREFORMAT3 = 1; // Three floating point values |
4469,7 → 7362,6 |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: d3dcaps.h |
* Content: Direct3D capabilities include file |
4476,52 → 7368,46 |
* |
***************************************************************************) |
{ Description of capabilities of transform } |
(* Description of capabilities of transform *) |
type |
PD3DTransformCaps = ^TD3DTransformCaps; |
TD3DTransformCaps = record |
TD3DTransformCaps = packed record |
dwSize: DWORD; |
dwCaps: DWORD; |
end; |
D3DTRANSFORMCAPS = TD3DTransformCaps; |
LPD3DTRANSFORMCAPS = PD3DTransformCaps; |
const |
D3DTRANSFORMCAPS_CLIP = $00000001; // Will clip whilst transforming |
D3DTRANSFORMCAPS_CLIP = $00000001; (* Will clip whilst transforming *) |
{ Description of capabilities of lighting } |
(* Description of capabilities of lighting *) |
type |
PD3DLightingCaps = ^TD3DLightingCaps; |
TD3DLightingCaps = record |
TD3DLightingCaps = packed record |
dwSize: DWORD; |
dwCaps: DWORD; // Lighting caps |
dwLightingModel: DWORD; // Lighting model - RGB or mono |
dwNumLights: DWORD; // Number of lights that can be handled |
dwCaps: DWORD; (* Lighting caps *) |
dwLightingModel: DWORD; (* Lighting model - RGB or mono *) |
dwNumLights: DWORD; (* Number of lights that can be handled *) |
end; |
D3DLIGHTINGCAPS = TD3DLightingCaps; |
LPD3DLIGHTINGCAPS = PD3DLightingCaps; |
const |
D3DLIGHTINGMODEL_RGB = $00000001; |
D3DLIGHTINGMODEL_MONO = $00000002; |
D3DLIGHTCAPS_POINT = $00000001; // Point lights supported |
D3DLIGHTCAPS_SPOT = $00000002; // Spot lights supported |
D3DLIGHTCAPS_DIRECTIONAL = $00000004; // Directional lights supported |
D3DLIGHTCAPS_PARALLELPOINT = $00000008; // Parallel point lights supported |
D3DLIGHTCAPS_GLSPOT = $00000010; // GL syle spot lights supported |
D3DLIGHTCAPS_POINT = $00000001; (* Point lights supported *) |
D3DLIGHTCAPS_SPOT = $00000002; (* Spot lights supported *) |
D3DLIGHTCAPS_DIRECTIONAL = $00000004; (* Directional lights supported *) |
D3DLIGHTCAPS_PARALLELPOINT = $00000008; (* Parallel point lights supported *) |
D3DLIGHTCAPS_GLSPOT = $00000010; (* GL syle spot lights supported *) |
{ Description of capabilities for each primitive type } |
(* Description of capabilities for each primitive type *) |
type |
PD3DPrimCaps = ^TD3DPrimCaps; |
TD3DPrimCaps = record |
TD3DPrimCaps = packed record |
dwSize: DWORD; |
dwMiscCaps: DWORD; // Capability flags |
dwMiscCaps: DWORD; (* Capability flags *) |
dwRasterCaps: DWORD; |
dwZCmpCaps: DWORD; |
dwSrcBlendCaps: DWORD; |
4532,16 → 7418,13 |
dwTextureFilterCaps: DWORD; |
dwTextureBlendCaps: DWORD; |
dwTextureAddressCaps: DWORD; |
dwStippleWidth: DWORD; // maximum width and height of |
dwStippleHeight: DWORD; // of supported stipple (up to 32x32) |
dwStippleWidth: DWORD; (* maximum width and height of *) |
dwStippleHeight: DWORD; (* of supported stipple (up to 32x32) *) |
end; |
D3DPRIMCAPS = TD3DPrimCaps; |
LPD3DPRIMCAPS = PD3DPrimCaps; |
const |
(* TD3DPrimCaps dwMiscCaps *) |
{ TD3DPrimCaps dwMiscCaps } |
const |
D3DPMISCCAPS_MASKPLANES = $00000001; |
D3DPMISCCAPS_MASKZ = $00000002; |
D3DPMISCCAPS_LINEPATTERNREP = $00000004; |
4550,7 → 7433,7 |
D3DPMISCCAPS_CULLCW = $00000020; |
D3DPMISCCAPS_CULLCCW = $00000040; |
{ TD3DPrimCaps dwRasterCaps } |
(* TD3DPrimCaps dwRasterCaps *) |
D3DPRASTERCAPS_DITHER = $00000001; |
D3DPRASTERCAPS_ROP2 = $00000002; |
4575,8 → 7458,9 |
D3DPRASTERCAPS_WFOG = $00100000; |
D3DPRASTERCAPS_ZFOG = $00200000; |
{ TD3DPrimCaps dwZCmpCaps, dwAlphaCmpCaps } |
(* TD3DPrimCaps dwZCmpCaps, dwAlphaCmpCaps *) |
const |
D3DPCMPCAPS_NEVER = $00000001; |
D3DPCMPCAPS_LESS = $00000002; |
D3DPCMPCAPS_EQUAL = $00000004; |
4586,7 → 7470,7 |
D3DPCMPCAPS_GREATEREQUAL = $00000040; |
D3DPCMPCAPS_ALWAYS = $00000080; |
{ TD3DPrimCaps dwSourceBlendCaps, dwDestBlendCaps } |
(* TD3DPrimCaps dwSourceBlendCaps, dwDestBlendCaps *) |
D3DPBLENDCAPS_ZERO = $00000001; |
D3DPBLENDCAPS_ONE = $00000002; |
4602,7 → 7486,7 |
D3DPBLENDCAPS_BOTHSRCALPHA = $00000800; |
D3DPBLENDCAPS_BOTHINVSRCALPHA = $00001000; |
{ TD3DPrimCaps dwShadeCaps } |
(* TD3DPrimCaps dwShadeCaps *) |
D3DPSHADECAPS_COLORFLATMONO = $00000001; |
D3DPSHADECAPS_COLORFLATRGB = $00000002; |
4629,23 → 7513,75 |
D3DPSHADECAPS_FOGGOURAUD = $00080000; |
D3DPSHADECAPS_FOGPHONG = $00100000; |
{ TD3DPrimCaps dwTextureCaps } |
(* TD3DPrimCaps dwTextureCaps *) |
(* |
* Perspective-correct texturing is supported |
*) |
D3DPTEXTURECAPS_PERSPECTIVE = $00000001; |
(* |
* Power-of-2 texture dimensions are required |
*) |
D3DPTEXTURECAPS_POW2 = $00000002; |
(* |
* Alpha in texture pixels is supported |
*) |
D3DPTEXTURECAPS_ALPHA = $00000004; |
(* |
* Color-keyed textures are supported |
*) |
D3DPTEXTURECAPS_TRANSPARENCY = $00000008; |
(* |
* obsolete, see D3DPTADDRESSCAPS_BORDER |
*) |
D3DPTEXTURECAPS_BORDER = $00000010; |
(* |
* Only square textures are supported |
*) |
D3DPTEXTURECAPS_SQUAREONLY = $00000020; |
(* |
* Texture indices are not scaled by the texture size prior |
* to interpolation. |
*) |
D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE = $00000040; |
(* |
* Device can draw alpha from texture palettes |
*) |
D3DPTEXTURECAPS_ALPHAPALETTE = $00000080; |
(* |
* Device can use non-POW2 textures if: |
* 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage |
* 2) D3DRS_WRAP(N) is zero for this texture's coordinates |
* 3) mip mapping is not enabled (use magnification filter only) |
*) |
D3DPTEXTURECAPS_NONPOW2CONDITIONAL = $00000100; |
// 0x00000200L unused |
(* |
* Device can divide transformed texture coordinates by the |
* COUNTth texture coordinate (can do D3DTTFF_PROJECTED) |
*) |
D3DPTEXTURECAPS_PROJECTED = $00000400; |
(* |
* Device can do cubemap textures |
*) |
D3DPTEXTURECAPS_CUBEMAP = $00000800; |
D3DPTEXTURECAPS_COLORKEYBLEND = $00001000; |
{ TD3DPrimCaps dwTextureFilterCaps } |
(* TD3DPrimCaps dwTextureFilterCaps *) |
D3DPTFILTERCAPS_NEAREST = $00000001; |
D3DPTFILTERCAPS_LINEAR = $00000002; |
D3DPTFILTERCAPS_MIPNEAREST = $00000004; |
4653,19 → 7589,16 |
D3DPTFILTERCAPS_LINEARMIPNEAREST = $00000010; |
D3DPTFILTERCAPS_LINEARMIPLINEAR = $00000020; |
{ Device3 Min Filter } |
(* Device3 Min Filter *) |
D3DPTFILTERCAPS_MINFPOINT = $00000100; |
D3DPTFILTERCAPS_MINFLINEAR = $00000200; |
D3DPTFILTERCAPS_MINFANISOTROPIC = $00000400; |
{ Device3 Mip Filter } |
(* Device3 Mip Filter *) |
D3DPTFILTERCAPS_MIPFPOINT = $00010000; |
D3DPTFILTERCAPS_MIPFLINEAR = $00020000; |
{ Device3 Mag Filter } |
(* Device3 Mag Filter *) |
D3DPTFILTERCAPS_MAGFPOINT = $01000000; |
D3DPTFILTERCAPS_MAGFLINEAR = $02000000; |
D3DPTFILTERCAPS_MAGFANISOTROPIC = $04000000; |
4672,7 → 7605,7 |
D3DPTFILTERCAPS_MAGFAFLATCUBIC = $08000000; |
D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC = $10000000; |
{ TD3DPrimCaps dwTextureBlendCaps } |
(* TD3DPrimCaps dwTextureBlendCaps *) |
D3DPTBLENDCAPS_DECAL = $00000001; |
D3DPTBLENDCAPS_MODULATE = $00000002; |
4683,8 → 7616,7 |
D3DPTBLENDCAPS_COPY = $00000040; |
D3DPTBLENDCAPS_ADD = $00000080; |
{ TD3DPrimCaps dwTextureAddressCaps } |
(* TD3DPrimCaps dwTextureAddressCaps *) |
D3DPTADDRESSCAPS_WRAP = $00000001; |
D3DPTADDRESSCAPS_MIRROR = $00000002; |
D3DPTADDRESSCAPS_CLAMP = $00000004; |
4691,7 → 7623,7 |
D3DPTADDRESSCAPS_BORDER = $00000008; |
D3DPTADDRESSCAPS_INDEPENDENTUV = $00000010; |
{ D3DDEVICEDESC dwStencilCaps } |
(* D3DDEVICEDESC dwStencilCaps *) |
D3DSTENCILCAPS_KEEP = $00000001; |
D3DSTENCILCAPS_ZERO = $00000002; |
4702,7 → 7634,7 |
D3DSTENCILCAPS_INCR = $00000040; |
D3DSTENCILCAPS_DECR = $00000080; |
{ D3DDEVICEDESC dwTextureOpCaps } |
(* D3DDEVICEDESC dwTextureOpCaps *) |
D3DTEXOPCAPS_DISABLE = $00000001; |
D3DTEXOPCAPS_SELECTARG1 = $00000002; |
4729,77 → 7661,41 |
D3DTEXOPCAPS_BUMPENVMAPLUMINANCE = $00400000; |
D3DTEXOPCAPS_DOTPRODUCT3 = $00800000; |
{ D3DDEVICEDESC dwFVFCaps flags } |
(* D3DDEVICEDESC dwFVFCaps flags *) |
D3DFVFCAPS_TEXCOORDCOUNTMASK = $0000ffff; // mask for texture coordinate count field |
D3DFVFCAPS_DONOTSTRIPELEMENTS = $00080000; // Device prefers that vertex elements not be stripped |
D3DFVFCAPS_TEXCOORDCOUNTMASK = $0000ffff; (* mask for texture coordinate count field *) |
D3DFVFCAPS_DONOTSTRIPELEMENTS = $00080000; (* Device prefers that vertex elements not be stripped *) |
{ Description for a device. } |
(* |
* Description for a device. |
* This is used to describe a device that is to be created or to query |
* the current device. |
*) |
type |
PD3DDeviceDesc_DX3 = ^TD3DDeviceDesc_DX3; |
TD3DDeviceDesc_DX3 = record |
dwSize: DWORD; // Size of D3DDEVICEDESC structure |
dwFlags: DWORD; // Indicates which fields have valid data |
dcmColorModel: TD3DColorModel; // Color model of device |
dwDevCaps: DWORD; // Capabilities of device |
dtcTransformCaps: TD3DTransformCaps; // Capabilities of transform |
bClipping: BOOL; // Device can do 3D clipping |
dlcLightingCaps: TD3DLightingCaps; // Capabilities of lighting |
PD3DDeviceDesc = ^TD3DDeviceDesc; |
TD3DDeviceDesc = packed record |
dwSize: DWORD; (* Size of TD3DDeviceDesc structure *) |
dwFlags: DWORD; (* Indicates which fields have valid data *) |
dcmColorModel: TD3DColorModel; (* Color model of device *) |
dwDevCaps: DWORD; (* Capabilities of device *) |
dtcTransformCaps: TD3DTransformCaps; (* Capabilities of transform *) |
bClipping: BOOL; (* Device can do 3D clipping *) |
dlcLightingCaps: TD3DLightingCaps; (* Capabilities of lighting *) |
dpcLineCaps: TD3DPrimCaps; |
dpcTriCaps: TD3DPrimCaps; |
dwDeviceRenderBitDepth: DWORD; // One of DDBB_8, 16, etc.. |
dwDeviceZBufferBitDepth: DWORD; // One of DDBD_16, 32, etc.. |
dwMaxBufferSize: DWORD; // Maximum execute buffer size |
dwMaxVertexCount: DWORD; // Maximum vertex count |
end; |
dwDeviceRenderBitDepth: DWORD; (* One of DDBB_8, 16, etc.. *) |
dwDeviceZBufferBitDepth: DWORD; (* One of DDBD_16, 32, etc.. *) |
dwMaxBufferSize: DWORD; (* Maximum execute buffer size *) |
dwMaxVertexCount: DWORD; (* Maximum vertex count *) |
// *** New fields for DX5 *** // |
PD3DDeviceDesc_DX5 = ^TD3DDeviceDesc_DX5; |
TD3DDeviceDesc_DX5 = record |
dwSize: DWORD; // Size of D3DDEVICEDESC structure |
dwFlags: DWORD; // Indicates which fields have valid data |
dcmColorModel: TD3DColorModel; // Color model of device |
dwDevCaps: DWORD; // Capabilities of device |
dtcTransformCaps: TD3DTransformCaps; // Capabilities of transform |
bClipping: BOOL; // Device can do 3D clipping |
dlcLightingCaps: TD3DLightingCaps; // Capabilities of lighting |
dpcLineCaps: TD3DPrimCaps; |
dpcTriCaps: TD3DPrimCaps; |
dwDeviceRenderBitDepth: DWORD; // One of DDBB_8, 16, etc.. |
dwDeviceZBufferBitDepth: DWORD; // One of DDBD_16, 32, etc.. |
dwMaxBufferSize: DWORD; // Maximum execute buffer size |
dwMaxVertexCount: DWORD; // Maximum vertex count |
// New fields for DX5 |
// Width and height caps are 0 for legacy HALs. |
dwMinTextureWidth, dwMinTextureHeight : DWORD; |
dwMaxTextureWidth, dwMaxTextureHeight : DWORD; |
dwMinStippleWidth, dwMaxStippleWidth : DWORD; |
dwMinStippleHeight, dwMaxStippleHeight : DWORD; |
end; |
PD3DDeviceDesc_DX6 = ^TD3DDeviceDesc_DX6; |
TD3DDeviceDesc_DX6 = record |
dwSize: DWORD; // Size of D3DDEVICEDESC structure |
dwFlags: DWORD; // Indicates which fields have valid data |
dcmColorModel: TD3DColorModel; // Color model of device |
dwDevCaps: DWORD; // Capabilities of device |
dtcTransformCaps: TD3DTransformCaps; // Capabilities of transform |
bClipping: BOOL; // Device can do 3D clipping |
dlcLightingCaps: TD3DLightingCaps; // Capabilities of lighting |
dpcLineCaps: TD3DPrimCaps; |
dpcTriCaps: TD3DPrimCaps; |
dwDeviceRenderBitDepth: DWORD; // One of DDBB_8, 16, etc.. |
dwDeviceZBufferBitDepth: DWORD; // One of DDBD_16, 32, etc.. |
dwMaxBufferSize: DWORD; // Maximum execute buffer size |
dwMaxVertexCount: DWORD; // Maximum vertex count |
// New fields for DX5 |
// Width and height caps are 0 for legacy HALs. |
dwMinTextureWidth, dwMinTextureHeight : DWORD; |
dwMaxTextureWidth, dwMaxTextureHeight : DWORD; |
dwMinStippleWidth, dwMaxStippleWidth : DWORD; |
dwMinStippleHeight, dwMaxStippleHeight : DWORD; |
// New fields for DX6 |
dwMaxTextureRepeat: DWORD; |
dwMaxTextureAspectRatio: DWORD; |
4812,43 → 7708,26 |
dvGuardBandTop: TD3DValue; |
dvGuardBandRight: TD3DValue; |
dvGuardBandBottom: TD3DValue; |
dvExtentsAdjust: TD3DValue; |
dwStencilCaps: DWORD; |
dwFVFCaps: DWORD; // low 4 bits: 0 implies TLVERTEX only, 1..8 imply FVF aware |
dwFVFCaps : DWORD; (* low 4 bits: 0 implies TLVERTEX only, 1..8 imply FVF aware *) |
dwTextureOpCaps: DWORD; |
wMaxTextureBlendStages: Word; |
wMaxSimultaneousTextures: Word; |
wMaxTextureBlendStages : WORD; |
wMaxSimultaneousTextures : WORD; |
end; |
{$IFDEF DirectX3} |
TD3DDeviceDesc = TD3DDeviceDesc_DX3; |
PD3DDeviceDesc = PD3DDeviceDesc_DX3; |
{$ENDIF}{$IFDEF DirectX5} |
TD3DDeviceDesc = TD3DDeviceDesc_DX5; |
PD3DDeviceDesc = PD3DDeviceDesc_DX5; |
{$ENDIF}{$IFDEF DirectX6} |
TD3DDeviceDesc = TD3DDeviceDesc_DX6; |
PD3DDeviceDesc = PD3DDeviceDesc_DX6; |
{$ENDIF}{$IFDEF DirectX7} |
TD3DDeviceDesc = TD3DDeviceDesc_DX6; |
PD3DDeviceDesc = PD3DDeviceDesc_DX6; |
{$ENDIF} |
D3DDEVICEDESC = TD3DDeviceDesc; |
LPD3DDEVICEDESC = PD3DDeviceDesc; |
PD3DDeviceDesc7 = ^TD3DDeviceDesc7; |
TD3DDeviceDesc7 = record |
dwDevCaps: DWORD; |
TD3DDeviceDesc7 = packed record |
dwDevCaps: DWORD; (* Capabilities of device *) |
dpcLineCaps: TD3DPrimCaps; |
dpcTriCaps: TD3DPrimCaps; |
dwDeviceRenderBitDepth: DWORD; |
dwDeviceZBufferBitDepth: DWORD; |
dwDeviceRenderBitDepth: DWORD; (* One of DDBB_8, 16, etc.. *) |
dwDeviceZBufferBitDepth: DWORD; (* One of DDBD_16, 32, etc.. *) |
dwMinTextureWidth: DWORD; |
dwMinTextureHeight: DWORD; |
dwMaxTextureWidth: DWORD; |
dwMaxTextureHeight: DWORD; |
dwMinTextureWidth, dwMinTextureHeight: DWORD; |
dwMaxTextureWidth, dwMaxTextureHeight: DWORD; |
dwMaxTextureRepeat: DWORD; |
dwMaxTextureAspectRatio: DWORD; |
4864,15 → 7743,15 |
dwFVFCaps: DWORD; |
dwTextureOpCaps: DWORD; |
wMaxTextureBlendStages: Word; |
wMaxSimultaneousTextures: Word; |
wMaxTextureBlendStages: WORD; |
wMaxSimultaneousTextures: WORD; |
dwMaxActiveLights: DWORD; |
dvMaxVertexW: TD3DValue; |
deviceGUID: TGUID; |
wMaxUserClipPlanes: Word; |
wMaxVertexBlendMatrices: Word; |
wMaxUserClipPlanes: WORD; |
wMaxVertexBlendMatrices: WORD; |
dwVertexProcessingCaps: DWORD; |
4882,91 → 7761,102 |
dwReserved4: DWORD; |
end; |
const |
D3DDEVICEDESCSIZE = sizeof(TD3DDeviceDesc); |
D3DDEVICEDESC7SIZE = sizeof(TD3DDeviceDesc7); |
type |
TD3DEnumDevicesCallback = function(const lpGuid: TGUID; |
lpDeviceDescription: LPSTR; lpDeviceName: LPSTR; |
const lpD3DHWDeviceDesc: TD3DDeviceDesc; |
const lpD3DHELDeviceDesc: TD3DDeviceDesc; |
lpUserArg: Pointer): HResult; stdcall; |
TD3DEnumDevicesCallbackA = function (lpGuid: PGUID; // nil for the default device |
lpDeviceDescription: PAnsiChar; lpDeviceName: PAnsiChar; |
var lpD3DHWDeviceDesc: TD3DDeviceDesc; |
var lpD3DHELDeviceDesc: TD3DDeviceDesc; |
lpContext : pointer) : HResult; stdcall; |
TD3DEnumDevicesCallback = TD3DEnumDevicesCallbackA; |
LPD3DENUMDEVICESCALLBACK = TD3DEnumDevicesCallback; |
TD3DEnumDevicesCallback7A = function ( |
lpDeviceDescription: PAnsiChar; lpDeviceName: PAnsiChar; |
const lpD3DDeviceDesc: TD3DDeviceDesc7; lpContext: Pointer) : HResult; stdcall; |
TD3DEnumDevicesCallback7 = TD3DEnumDevicesCallback7A; |
TD3DEnumDevicesCallback7 = function(lpDeviceDescription: LPSTR; lpDeviceName: LPSTR; |
const lpD3DDeviceDesc: TD3DDeviceDesc7; lpUserArg: Pointer): HResult; stdcall; |
(* TD3DDeviceDesc dwFlags indicating valid fields *) |
LPD3DENUMDEVICESCALLBACK7 = TD3DEnumDevicesCallback7; |
{ TD3DDeviceDesc dwFlags indicating valid fields } |
const |
D3DDD_COLORMODEL = $00000001; // dcmColorModel is valid |
D3DDD_DEVCAPS = $00000002; // dwDevCaps is valid |
D3DDD_TRANSFORMCAPS = $00000004; // dtcTransformCaps is valid |
D3DDD_LIGHTINGCAPS = $00000008; // dlcLightingCaps is valid |
D3DDD_BCLIPPING = $00000010; // bClipping is valid |
D3DDD_LINECAPS = $00000020; // dpcLineCaps is valid |
D3DDD_TRICAPS = $00000040; // dpcTriCaps is valid |
D3DDD_DEVICERENDERBITDEPTH = $00000080; // dwDeviceRenderBitDepth is valid |
D3DDD_DEVICEZBUFFERBITDEPTH = $00000100; // dwDeviceZBufferBitDepth is valid |
D3DDD_MAXBUFFERSIZE = $00000200; // dwMaxBufferSize is valid |
D3DDD_MAXVERTEXCOUNT = $00000400; // dwMaxVertexCount is valid |
D3DDD_COLORMODEL = $00000001; (* dcmColorModel is valid *) |
D3DDD_DEVCAPS = $00000002; (* dwDevCaps is valid *) |
D3DDD_TRANSFORMCAPS = $00000004; (* dtcTransformCaps is valid *) |
D3DDD_LIGHTINGCAPS = $00000008; (* dlcLightingCaps is valid *) |
D3DDD_BCLIPPING = $00000010; (* bClipping is valid *) |
D3DDD_LINECAPS = $00000020; (* dpcLineCaps is valid *) |
D3DDD_TRICAPS = $00000040; (* dpcTriCaps is valid *) |
D3DDD_DEVICERENDERBITDEPTH = $00000080; (* dwDeviceRenderBitDepth is valid *) |
D3DDD_DEVICEZBUFFERBITDEPTH = $00000100; (* dwDeviceZBufferBitDepth is valid *) |
D3DDD_MAXBUFFERSIZE = $00000200; (* dwMaxBufferSize is valid *) |
D3DDD_MAXVERTEXCOUNT = $00000400; (* dwMaxVertexCount is valid *) |
{ TD3DDeviceDesc dwDevCaps flags } |
(* TD3DDeviceDesc dwDevCaps flags *) |
D3DDEVCAPS_FLOATTLVERTEX = $00000001; // Device accepts floating point |
// for post-transform vertex data |
D3DDEVCAPS_SORTINCREASINGZ = $00000002; // Device needs data sorted for increasing Z |
D3DDEVCAPS_SORTDECREASINGZ = $00000004; // Device needs data sorted for decreasing Z |
D3DDEVCAPS_SORTEXACT = $00000008; // Device needs data sorted exactly |
D3DDEVCAPS_FLOATTLVERTEX = $00000001; (* Device accepts floating point *) |
(* for post-transform vertex data *) |
D3DDEVCAPS_SORTINCREASINGZ = $00000002; (* Device needs data sorted for increasing Z*) |
D3DDEVCAPS_SORTDECREASINGZ = $00000004; (* Device needs data sorted for decreasing Z*) |
D3DDEVCAPS_SORTEXACT = $00000008; (* Device needs data sorted exactly *) |
D3DDEVCAPS_EXECUTESYSTEMMEMORY = $00000010; // Device can use execute buffers from system memory |
D3DDEVCAPS_EXECUTEVIDEOMEMORY = $00000020; // Device can use execute buffers from video memory |
D3DDEVCAPS_TLVERTEXSYSTEMMEMORY = $00000040; // Device can use TL buffers from system memory |
D3DDEVCAPS_TLVERTEXVIDEOMEMORY = $00000080; // Device can use TL buffers from video memory |
D3DDEVCAPS_TEXTURESYSTEMMEMORY = $00000100; // Device can texture from system memory |
D3DDEVCAPS_TEXTUREVIDEOMEMORY = $00000200; // Device can texture from device memory |
D3DDEVCAPS_DRAWPRIMTLVERTEX = $00000400; // Device can draw TLVERTEX primitives |
D3DDEVCAPS_CANRENDERAFTERFLIP = $00000800; // Device can render without waiting for flip to complete |
D3DDEVCAPS_TEXTURENONLOCALVIDMEM = $00001000; // Device can texture from nonlocal video memory |
D3DDEVCAPS_DRAWPRIMITIVES2 = $00002000; // Device can support DrawPrimitives2 |
D3DDEVCAPS_SEPARATETEXTUREMEMORIES = $00004000; // Device is texturing from separate memory pools |
D3DDEVCAPS_DRAWPRIMITIVES2EX = $00008000; // Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver |
D3DDEVCAPS_HWTRANSFORMANDLIGHT = $00010000; // Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also |
D3DDEVCAPS_CANBLTSYSTONONLOCAL = $00020000; // Device supports a Tex Blt from system memory to non-local vidmem |
D3DDEVCAPS_HWRASTERIZATION = $00080000; // Device has HW acceleration for rasterization |
D3DDEVCAPS_EXECUTESYSTEMMEMORY = $00000010; (* Device can use execute buffers from system memory *) |
D3DDEVCAPS_EXECUTEVIDEOMEMORY = $00000020; (* Device can use execute buffers from video memory *) |
D3DDEVCAPS_TLVERTEXSYSTEMMEMORY = $00000040; (* Device can use TL buffers from system memory *) |
D3DDEVCAPS_TLVERTEXVIDEOMEMORY = $00000080; (* Device can use TL buffers from video memory *) |
D3DDEVCAPS_TEXTURESYSTEMMEMORY = $00000100; (* Device can texture from system memory *) |
D3DDEVCAPS_TEXTUREVIDEOMEMORY = $00000200; (* Device can texture from device memory *) |
D3DDEVCAPS_DRAWPRIMTLVERTEX = $00000400; (* Device can draw TLVERTEX primitives *) |
D3DDEVCAPS_CANRENDERAFTERFLIP = $00000800; (* Device can render without waiting for flip to complete *) |
D3DDEVCAPS_TEXTURENONLOCALVIDMEM = $00001000; (* Device can texture from nonlocal video memory *) |
D3DDEVCAPS_DRAWPRIMITIVES2 = $00002000; (* Device can support DrawPrimitives2 *) |
D3DDEVCAPS_SEPARATETEXTUREMEMORIES = $00004000; (* Device is texturing from separate memory pools *) |
D3DDEVCAPS_DRAWPRIMITIVES2EX = $00008000; (* Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver*) |
D3DDEVCAPS_HWTRANSFORMANDLIGHT = $00010000; (* Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also *) |
D3DDEVCAPS_CANBLTSYSTONONLOCAL = $00020000; (* Device supports a Tex Blt from system memory to non-local vidmem *) |
D3DDEVCAPS_HWRASTERIZATION = $00080000; (* Device has HW acceleration for rasterization *) |
{ TD3DDeviceDesc7.dwVertexProcessingCaps field } |
(* |
* These are the flags in the D3DDEVICEDESC7.dwVertexProcessingCaps field |
*) |
(* device can do texgen *) |
D3DVTXPCAPS_TEXGEN = $00000001; |
(* device can do IDirect3DDevice7 colormaterialsource ops *) |
D3DVTXPCAPS_MATERIALSOURCE7 = $00000002; |
(* device can do vertex fog *) |
D3DVTXPCAPS_VERTEXFOG = $00000004; |
(* device can do directional lights *) |
D3DVTXPCAPS_DIRECTIONALLIGHTS = $00000008; |
(* device can do positional lights (includes point and spot) *) |
D3DVTXPCAPS_POSITIONALLIGHTS = $00000010; |
(* device can do local viewer *) |
D3DVTXPCAPS_LOCALVIEWER = $00000020; |
D3DFDS_COLORMODEL = $00000001; // Match color model |
D3DFDS_GUID = $00000002; // Match guid |
D3DFDS_HARDWARE = $00000004; // Match hardware/software |
D3DFDS_TRIANGLES = $00000008; // Match in triCaps |
D3DFDS_LINES = $00000010; // Match in lineCaps |
D3DFDS_MISCCAPS = $00000020; // Match primCaps.dwMiscCaps |
D3DFDS_RASTERCAPS = $00000040; // Match primCaps.dwRasterCaps |
D3DFDS_ZCMPCAPS = $00000080; // Match primCaps.dwZCmpCaps |
D3DFDS_ALPHACMPCAPS = $00000100; // Match primCaps.dwAlphaCmpCaps |
D3DFDS_SRCBLENDCAPS = $00000200; // Match primCaps.dwSourceBlendCaps |
D3DFDS_DSTBLENDCAPS = $00000400; // Match primCaps.dwDestBlendCaps |
D3DFDS_SHADECAPS = $00000800; // Match primCaps.dwShadeCaps |
D3DFDS_TEXTURECAPS = $00001000; // Match primCaps.dwTextureCaps |
D3DFDS_TEXTUREFILTERCAPS = $00002000; // Match primCaps.dwTextureFilterCaps |
D3DFDS_TEXTUREBLENDCAPS = $00004000; // Match primCaps.dwTextureBlendCaps |
D3DFDS_TEXTUREADDRESSCAPS = $00008000; // Match primCaps.dwTextureBlendCaps |
D3DFDS_COLORMODEL = $00000001; (* Match color model *) |
D3DFDS_GUID = $00000002; (* Match guid *) |
D3DFDS_HARDWARE = $00000004; (* Match hardware/software *) |
D3DFDS_TRIANGLES = $00000008; (* Match in triCaps *) |
D3DFDS_LINES = $00000010; (* Match in lineCaps *) |
D3DFDS_MISCCAPS = $00000020; (* Match primCaps.dwMiscCaps *) |
D3DFDS_RASTERCAPS = $00000040; (* Match primCaps.dwRasterCaps *) |
D3DFDS_ZCMPCAPS = $00000080; (* Match primCaps.dwZCmpCaps *) |
D3DFDS_ALPHACMPCAPS = $00000100; (* Match primCaps.dwAlphaCmpCaps *) |
D3DFDS_SRCBLENDCAPS = $00000200; (* Match primCaps.dwSourceBlendCaps *) |
D3DFDS_DSTBLENDCAPS = $00000400; (* Match primCaps.dwDestBlendCaps *) |
D3DFDS_SHADECAPS = $00000800; (* Match primCaps.dwShadeCaps *) |
D3DFDS_TEXTURECAPS = $00001000; (* Match primCaps.dwTextureCaps *) |
D3DFDS_TEXTUREFILTERCAPS = $00002000; (* Match primCaps.dwTextureFilterCaps *) |
D3DFDS_TEXTUREBLENDCAPS = $00004000; (* Match primCaps.dwTextureBlendCaps *) |
D3DFDS_TEXTUREADDRESSCAPS = $00008000; (* Match primCaps.dwTextureBlendCaps *) |
{ FindDevice arguments } |
(* |
* FindDevice arguments |
*) |
type |
PD3DFindDeviceSearch = ^TD3DFindDeviceSearch; |
TD3DFindDeviceSearch = record |
TD3DFindDeviceSearch = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
bHardware: BOOL; |
4976,133 → 7866,103 |
dpcPrimCaps: TD3DPrimCaps; |
end; |
D3DFINDDEVICESEARCH = TD3DFindDeviceSearch; |
LPD3DFINDDEVICESEARCH = PD3DFindDeviceSearch; |
PD3DFindDeviceResult = ^TD3DFindDeviceResult; |
TD3DFindDeviceResult = record |
TD3DFindDeviceResult = packed record |
dwSize: DWORD; |
guid: TGUID; // guid which matched |
ddHwDesc: TD3DDeviceDesc; // hardware TD3DDeviceDesc |
ddSwDesc: TD3DDeviceDesc; // software TD3DDeviceDesc |
guid: TGUID; (* guid which matched *) |
ddHwDesc: TD3DDeviceDesc; (* hardware TD3DDeviceDesc *) |
ddSwDesc: TD3DDeviceDesc; (* software TD3DDeviceDesc *) |
end; |
D3DFINDDEVICERESULT = TD3DFindDeviceResult; |
LPD3DFINDDEVICERESULT = PD3DFindDeviceResult; |
{ Description of execute buffer. } |
(* |
* Description of execute buffer. |
*) |
PD3DExecuteBufferDesc = ^TD3DExecuteBufferDesc; |
TD3DExecuteBufferDesc = record |
dwSize: DWORD; // size of this structure |
dwFlags: DWORD; // flags indicating which fields are valid |
dwCaps: DWORD; // capabilities of execute buffer |
dwBufferSize: DWORD; // size of execute buffer data |
lpData: Pointer; // pointer to actual data |
TD3DExecuteBufferDesc = packed record |
dwSize: DWORD; (* size of this structure *) |
dwFlags: DWORD; (* flags indicating which fields are valid *) |
dwCaps: DWORD; (* capabilities of execute buffer *) |
dwBufferSize: DWORD; (* size of execute buffer data *) |
lpData: Pointer; (* pointer to actual data *) |
end; |
D3DEXECUTEBUFFERDESC = TD3DExecuteBufferDesc; |
LPD3DEXECUTEBUFFERDESC = PD3DExecuteBufferDesc; |
(* D3DEXECUTEBUFFER dwFlags indicating valid fields *) |
{ D3DEXECUTEBUFFER dwFlags indicating valid fields } |
const |
D3DDEB_BUFSIZE = $00000001; // buffer size valid |
D3DDEB_CAPS = $00000002; // caps valid |
D3DDEB_LPDATA = $00000004; // lpData valid |
D3DDEB_BUFSIZE = $00000001; (* buffer size valid *) |
D3DDEB_CAPS = $00000002; (* caps valid *) |
D3DDEB_LPDATA = $00000004; (* lpData valid *) |
{ D3DEXECUTEBUFFER dwCaps } |
(* D3DEXECUTEBUFFER dwCaps *) |
D3DDEBCAPS_SYSTEMMEMORY = $00000001; // buffer in system memory |
D3DDEBCAPS_VIDEOMEMORY = $00000002; // buffer in device memory |
D3DDEBCAPS_MEM = D3DDEBCAPS_SYSTEMMEMORY or D3DDEBCAPS_VIDEOMEMORY; |
D3DDEBCAPS_SYSTEMMEMORY = $00000001; (* buffer in system memory *) |
D3DDEBCAPS_VIDEOMEMORY = $00000002; (* buffer in device memory *) |
D3DDEBCAPS_MEM = (D3DDEBCAPS_SYSTEMMEMORY or D3DDEBCAPS_VIDEOMEMORY); |
type |
{ TD3DDevInfo_TextureManager } |
PD3DDevInfo_TextureManager = ^TD3DDevInfo_TextureManager; |
TD3DDevInfo_TextureManager = record |
bThrashing: BOOL; // indicates if thrashing |
dwApproxBytesDownloaded: DWORD; // Approximate number of bytes downloaded by texture manager |
dwNumEvicts: DWORD; // number of textures evicted |
dwNumVidCreates: DWORD; // number of textures created in video memory |
dwNumTexturesUsed: DWORD; // number of textures used |
dwNumUsedTexInVid: DWORD; // number of used textures present in video memory |
dwWorkingSet: DWORD; // number of textures in video memory |
dwWorkingSetBytes: DWORD; // number of bytes in video memory |
dwTotalManaged: DWORD; // total number of managed textures |
dwTotalBytes: DWORD; // total number of bytes of managed textures |
dwLastPri: DWORD; // priority of last texture evicted |
TD3DDevInfo_TextureManager = packed record |
bThrashing: BOOL; (* indicates if thrashing *) |
dwApproxBytesDownloaded: DWORD; (* Approximate number of bytes downloaded by texture manager *) |
dwNumEvicts: DWORD; (* number of textures evicted *) |
dwNumVidCreates: DWORD; (* number of textures created in video memory *) |
dwNumTexturesUsed: DWORD; (* number of textures used *) |
dwNumUsedTexInVid: DWORD; (* number of used textures present in video memory *) |
dwWorkingSet: DWORD; (* number of textures in video memory *) |
dwWorkingSetBytes: DWORD; (* number of bytes in video memory *) |
dwTotalManaged: DWORD; (* total number of managed textures *) |
dwTotalBytes: DWORD; (* total number of bytes of managed textures *) |
dwLastPri: DWORD; (* priority of last texture evicted *) |
end; |
D3DDEVINFO_TEXTUREMANAGER = TD3DDevInfo_TextureManager; |
LPD3DDEVINFO_TEXTUREMANAGER = PD3DDevInfo_TextureManager; |
{ TD3DDevInfo_Texturing } |
PD3DDevInfo_Texturing = ^TD3DDevInfo_Texturing; |
TD3DDevInfo_Texturing = record |
dwNumLoads: DWORD; // counts Load() API calls |
dwApproxBytesLoaded: DWORD; // Approximate number bytes loaded via Load() |
dwNumPreLoads: DWORD; // counts PreLoad() API calls |
dwNumSet: DWORD; // counts SetTexture() API calls |
dwNumCreates: DWORD; // counts texture creates |
dwNumDestroys: DWORD; // counts texture destroys |
dwNumSetPriorities: DWORD; // counts SetPriority() API calls |
dwNumSetLODs: DWORD; // counts SetLOD() API calls |
dwNumLocks: DWORD; // counts number of texture locks |
dwNumGetDCs: DWORD; // counts number of GetDCs to textures |
TD3DDevInfo_Texturing = packed record |
dwNumLoads: DWORD; (* counts Load() API calls *) |
dwApproxBytesLoaded: DWORD; (* Approximate number bytes loaded via Load() *) |
dwNumPreLoads: DWORD; (* counts PreLoad() API calls *) |
dwNumSet: DWORD; (* counts SetTexture() API calls *) |
dwNumCreates: DWORD; (* counts texture creates *) |
dwNumDestroys: DWORD; (* counts texture destroys *) |
dwNumSetPriorities: DWORD; (* counts SetPriority() API calls *) |
dwNumSetLODs: DWORD; (* counts SetLOD() API calls *) |
dwNumLocks: DWORD; (* counts number of texture locks *) |
dwNumGetDCs: DWORD; (* counts number of GetDCs to textures *) |
end; |
D3DDEVINFO_TEXTURING = TD3DDevInfo_Texturing; |
LPD3DDEVINFO_TEXTURING = PD3DDevInfo_Texturing; |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: d3d.h |
* Content: Direct3D include file |
* |
***************************************************************************) |
****************************************************************************) |
{ Interface IID's } |
function D3DErrorString(Value: HResult) : string; |
(* |
* Interface IID's |
*) |
const |
IID_IDirect3D: TGUID = '{3BBA0080-2421-11CF-A31A-00AA00B93356}'; |
IID_IDirect3D2: TGUID = '{6AAE1EC1-662A-11D0-889D-00AA00BBB76A}'; |
IID_IDirect3D3: TGUID = '{BB223240-E72B-11D0-A9B4-00AA00C0993E}'; |
IID_IDirect3D7: TGUID = '{F5049E77-4861-11D2-A407-00A0C90629A8}'; |
(* |
* Internal Guid to distinguish requested MMX from MMX being used as an RGB rasterizer |
*) |
IID_IDirect3DRampDevice: TGUID = |
(D1:$F2086B20;D2:$259F;D3:$11CF;D4:($A3,$1A,$00,$AA,$00,$B9,$33,$56)); |
IID_IDirect3DRGBDevice: TGUID = |
(D1:$A4665C60;D2:$2673;D3:$11CF;D4:($A3,$1A,$00,$AA,$00,$B9,$33,$56)); |
IID_IDirect3DHALDevice: TGUID = |
(D1:$84E63dE0;D2:$46AA;D3:$11CF;D4:($81,$6F,$00,$00,$C0,$20,$15,$6E)); |
IID_IDirect3DMMXDevice: TGUID = |
(D1:$881949a1;D2:$d6f3;D3:$11d0;D4:($89,$ab,$00,$a0,$c9,$05,$41,$29)); |
IID_IDirect3DRampDevice: TGUID = '{F2086B20-259F-11CF-A31A-00AA00B93356}'; |
IID_IDirect3DRGBDevice: TGUID = '{A4665C60-2673-11CF-A31A-00AA00B93356}'; |
IID_IDirect3DHALDevice: TGUID = '{84E63DE0-46AA-11CF-816F-0000C020156E}'; |
IID_IDirect3DMMXDevice: TGUID = '{881949A1-D6F3-11D0-89AB-00A0C9054129}'; |
IID_IDirect3DRefDevice: TGUID = '{50936643-13E9-11D1-89AA-00A0C9054129}'; |
IID_IDirect3DNullDevice: TGUID = '{8767DF22-BACC-11D1-8969-00A0C90629A8}'; |
IID_IDirect3DTnLHalDevice: TGUID = '{F5049E78-4861-11D2-A407-00A0C90629A8}'; |
IID_IDirect3DRefDevice: TGUID = |
(D1:$50936643;D2:$13e9;D3:$11d1;D4:($89,$aa,$00,$a0,$c9,$05,$41,$29)); |
IID_IDirect3DNullDevice: TGUID = |
(D1:$8767df22;D2:$bacc;D3:$11d1;D4:($89,$69,$00,$a0,$c9,$06,$29,$a8)); |
IID_IDirect3DDevice: TGUID = '{64108800-957D-11D0-89AB-00A0C9054129}'; |
IID_IDirect3DDevice2: TGUID = '{93281501-8CF8-11D0-89AB-00A0C9054129}'; |
IID_IDirect3DDevice3: TGUID = '{B0AB3B60-33D7-11D1-A981-00C04FD7B174}'; |
IID_IDirect3DDevice7: TGUID = '{F5049E79-4861-11D2-A407-00A0C90629A8}'; |
IID_IDirect3DTnLHalDevice: TGUID = '{f5049e78-4861-11d2-a407-00a0c90629a8}'; |
IID_IDirect3DTexture: TGUID ='{2CDCD9E0-25A0-11CF-A31A-00AA00B93356}'; |
IID_IDirect3DTexture2: TGUID = '{93281502-8CF8-11D0-89AB-00A0C9054129}'; |
IID_IDirect3DLight: TGUID = '{4417C142-33AD-11CF-816F-0000C020156E}'; |
IID_IDirect3DMaterial: TGUID = '{4417C144-33AD-11CF-816F-0000C020156E}'; |
IID_IDirect3DMaterial2: TGUID = '{93281503-8CF8-11D0-89AB-00A0C9054129}'; |
IID_IDirect3DMaterial3: TGUID = '{CA9C46F4-D3C5-11D1-B75A-00600852B312}'; |
IID_IDirect3DExecuteBuffer: TGUID = '{4417C145-33AD-11CF-816F-0000C020156E}'; |
IID_IDirect3DViewport: TGUID = '{4417C146-33AD-11CF-816F-0000C020156E}'; |
IID_IDirect3DViewport2: TGUID = '{93281500-8CF8-11D0-89AB-00A0C9054129}'; |
IID_IDirect3DViewport3: TGUID = '{B0AB3B61-33D7-11D1-A981-00C04FD7B174}'; |
IID_IDirect3DVertexBuffer: TGUID = '{7A503555-4A83-11D1-A5DB-00A0C90367F8}'; |
IID_IDirect3DVertexBuffer7: TGUID = '{F5049E7D-4861-11D2-A407-00A0C90629A8}'; |
{ Data structures } |
type |
IDirect3D = interface; |
IDirect3D2 = interface; |
5125,89 → 7985,96 |
IDirect3DVertexBuffer = interface; |
IDirect3DVertexBuffer7 = interface; |
(* |
* Direct3D interfaces |
*) |
IDirect3D = interface(IUnknown) |
['{3BBA0080-2421-11CF-A31A-00AA00B93356}'] |
// IDirect3D methods |
function Initialize(const lpREFIID: TGUID): HResult; stdcall; |
(*** IDirect3D methods ***) |
function Initialize (lpREFIID: {REFIID} PGUID) : HResult; stdcall; |
function EnumDevices(lpEnumDevicesCallback: TD3DEnumDevicesCallback; |
lpUserArg: Pointer): HResult; stdcall; |
function CreateLight(out lplpDirect3Dlight: IDirect3DLight; |
function CreateLight (var lplpDirect3Dlight: IDirect3DLight; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreateMaterial(out lplpDirect3DMaterial: IDirect3DMaterial; |
function CreateMaterial (var lplpDirect3DMaterial: IDirect3DMaterial; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreateViewport(out lplpD3DViewport: IDirect3DViewport; |
function CreateViewport (var lplpD3DViewport: IDirect3DViewport; |
pUnkOuter: IUnknown): HResult; stdcall; |
function FindDevice(const lpD3DFDS: TD3DFindDeviceSearch; |
function FindDevice (var lpD3DFDS: TD3DFindDeviceSearch; |
var lpD3DFDR: TD3DFindDeviceResult): HResult; stdcall; |
end; |
IDirect3D2 = interface(IUnknown) |
['{6AAE1EC1-662A-11D0-889D-00AA00BBB76A}'] |
// IDirect3D methods |
['{6aae1ec1-662a-11d0-889d-00aa00bbb76a}'] |
(*** IDirect3D2 methods ***) |
function EnumDevices(lpEnumDevicesCallback: TD3DEnumDevicesCallback; |
lpUserArg: Pointer): HResult; stdcall; |
function CreateLight(out lplpDirect3Dlight: IDirect3DLight; |
lpUserArg: pointer) : HResult; stdcall; |
function CreateLight (var lplpDirect3Dlight: IDirect3DLight; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreateMaterial(out lplpDirect3DMaterial: IDirect3DMaterial2; |
function CreateMaterial (var lplpDirect3DMaterial2: IDirect3DMaterial2; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreateViewport(out lplpD3DViewport: IDirect3DViewport2; |
function CreateViewport (var lplpD3DViewport2: IDirect3DViewport2; |
pUnkOuter: IUnknown ): HResult; stdcall; |
function FindDevice(const lpD3DFDS: TD3DFindDeviceSearch; |
function FindDevice (var lpD3DFDS: TD3DFindDeviceSearch; |
var lpD3DFDR: TD3DFindDeviceResult): HResult; stdcall; |
// IDirect3D2 methods |
function CreateDevice(const rclsid: TGUID; lpDDS: IDirectDrawSurface; |
function CreateDevice (const rclsid: TRefClsID; lpDDS: IDirectDrawSurface; |
out lplpD3DDevice2: IDirect3DDevice2): HResult; stdcall; |
end; |
IDirect3D3 = interface(IUnknown) |
['{BB223240-E72B-11D0-A9B4-00AA00C0993E}'] |
// IDirect3D methods |
['{bb223240-e72b-11d0-a9b4-00aa00c0993e}'] |
(*** IDirect3D3 methods ***) |
function EnumDevices(lpEnumDevicesCallback: TD3DEnumDevicesCallback; |
lpUserArg: Pointer): HResult; stdcall; |
function CreateLight(out lplpDirect3Dlight: IDirect3DLight; |
lpUserArg: pointer) : HResult; stdcall; |
function CreateLight (var lplpDirect3Dlight: IDirect3DLight; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreateMaterial(out lplpDirect3DMaterial: IDirect3DMaterial3; |
function CreateMaterial (var lplpDirect3DMaterial3: IDirect3DMaterial3; |
pUnkOuter: IUnknown): HResult; stdcall; |
function CreateViewport(out lplpD3DViewport: IDirect3DViewport3; |
function CreateViewport (var lplpD3DViewport3: IDirect3DViewport3; |
pUnkOuter: IUnknown ): HResult; stdcall; |
function FindDevice(const lpD3DFDS: TD3DFindDeviceSearch; |
function FindDevice (var lpD3DFDS: TD3DFindDeviceSearch; |
var lpD3DFDR: TD3DFindDeviceResult): HResult; stdcall; |
// IDirect3D2 methods |
function CreateDevice(const rclsid: TGUID; lpDDS: IDirectDrawSurface4; |
out lplpD3DDevice2: IDirect3DDevice3; pUnkOuter: IUnknown): HResult; stdcall; |
// IDirect3D3 methods |
function CreateVertexBuffer(const lpVBDesc: TD3DVertexBufferDesc; |
out lpD3DVertexBuffer: IDirect3DVertexBuffer; dwFlags: DWORD; pUnkOuter: IUnknown): HResult; stdcall; |
function EnumZBufferFormats(const riidDevice: TGUID; lpEnumCallback: TD3DEnumPixelFormatsCallback; |
lpContext: Pointer): HResult; stdcall; |
function CreateDevice (const rclsid: TRefClsID; lpDDS: IDirectDrawSurface4; |
out lplpD3DDevice: IDirect3DDevice3; pUnkOuter: IUnknown) : HResult; stdcall; |
function CreateVertexBuffer (var lpVBDesc: TD3DVertexBufferDesc; |
var lpD3DVertexBuffer: IDirect3DVertexBuffer; |
dwFlags: DWORD; pUnkOuter: IUnknown) : HResult; stdcall; |
function EnumZBufferFormats (const riidDevice: TRefClsID; lpEnumCallback: |
TD3DEnumPixelFormatsCallback; lpContext: pointer) : HResult; stdcall; |
function EvictManagedTextures: HResult; stdcall; |
end; |
IDirect3D7 = interface(IUnknown) |
['{F5049E77-4861-11D2-A407-00A0C90629A8}'] |
// IDirect3D7 methods |
['{f5049e77-4861-11d2-a407-00a0c90629a8}'] |
(*** IDirect3D7 methods ***) |
function EnumDevices(lpEnumDevicesCallback: TD3DEnumDevicesCallback7; |
lpUserArg: Pointer): HResult; stdcall; |
lpUserArg: pointer) : HResult; stdcall; |
function CreateDevice(const rclsid: TGUID; lpDDS: IDirectDrawSurface7; |
out lplpD3DDevice7: IDirect3DDevice7): HResult; stdcall; |
out lplpD3DDevice: IDirect3DDevice7) : HResult; stdcall; |
function CreateVertexBuffer(const lpVBDesc: TD3DVertexBufferDesc; |
out lpD3DVertexBuffer: IDirect3DVertexBuffer7; dwFlags: DWORD): HResult; stdcall; |
function EnumZBufferFormats(const riidDevice: TGUID; lpEnumCallback: TD3DEnumPixelFormatsCallback; |
lpContext: Pointer): HResult; stdcall; |
out lplpD3DVertexBuffer: IDirect3DVertexBuffer7; |
dwFlags: DWORD) : HResult; stdcall; |
function EnumZBufferFormats (const riidDevice: TGUID; lpEnumCallback: |
TD3DEnumPixelFormatsCallback; lpContext: pointer) : HResult; stdcall; |
function EvictManagedTextures: HResult; stdcall; |
end; |
(* |
* Direct3D Device interfaces |
*) |
IDirect3DDevice = interface(IUnknown) |
['{64108800-957D-11D0-89AB-00A0C9054129}'] |
// IDirect3DDevice methods |
function Initialize(lpd3d: IDirect3D; const lpGUID: TGUID; |
const lpd3ddvdesc: TD3DDeviceDesc): HResult; stdcall; |
['{64108800-957d-11d0-89ab-00a0c9054129}'] |
(*** IDirect3DDevice methods ***) |
function Initialize (lpd3d: IDirect3D; lpGUID: PGUID; |
var lpd3ddvdesc: TD3DDeviceDesc) : HResult; stdcall; |
function GetCaps(var lpD3DHWDevDesc: TD3DDeviceDesc; |
var lpD3DHELDevDesc: TD3DDeviceDesc): HResult; stdcall; |
function SwapTextureHandles(lpD3DTex1: IDirect3DTexture; |
lpD3DTex2: IDirect3DTexture): HResult; stdcall; |
function CreateExecuteBuffer(const lpDesc: TD3DExecuteBufferDesc; |
out lplpDirect3DExecuteBuffer: IDirect3DExecuteBuffer; |
function CreateExecuteBuffer (var lpDesc: TD3DExecuteBufferDesc ; |
var lplpDirect3DExecuteBuffer: IDirect3DExecuteBuffer; |
pUnkOuter: IUnknown): HResult; stdcall; |
function GetStats(var lpD3DStats: TD3DStats): HResult; stdcall; |
function Execute(lpDirect3DExecuteBuffer: IDirect3DExecuteBuffer; |
5215,82 → 8082,94 |
function AddViewport(lpDirect3DViewport: IDirect3DViewport): HResult; stdcall; |
function DeleteViewport(lpDirect3DViewport: IDirect3DViewport): HResult; stdcall; |
function NextViewport(lpDirect3DViewport: IDirect3DViewport; |
out lplpDirect3DViewport: IDirect3DViewport; dwFlags: DWORD): HResult; stdcall; |
var lplpDirect3DViewport: IDirect3DViewport; dwFlags: DWORD) : HResult; stdcall; |
function Pick(lpDirect3DExecuteBuffer: IDirect3DExecuteBuffer; |
lpDirect3DViewport: IDirect3DViewport; dwFlags: DWORD; |
const lpRect: TD3DRect): HResult; stdcall; |
var lpRect: TD3DRect) : HResult; stdcall; |
function GetPickRecords(var lpCount: DWORD; |
var lpD3DPickRec: TD3DPickRecord): HResult; stdcall; |
function EnumTextureFormats(lpd3dEnumTextureProc: TD3DEnumTextureFormatsCalback; |
lpArg: Pointer): HResult; stdcall; |
function EnumTextureFormats (lpd3dEnumTextureProc: |
TD3DEnumTextureFormatsCallback; lpArg: Pointer) : |
HResult; stdcall; |
function CreateMatrix(var lpD3DMatHandle: TD3DMatrixHandle): HResult; stdcall; |
function SetMatrix(d3dMatHandle: TD3DMatrixHandle; |
const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
function GetMatrix(lpD3DMatHandle: TD3DMatrixHandle; |
var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
function GetMatrix (var lpD3DMatHandle: TD3DMatrixHandle; |
var lpD3DMatrix: TD3DMatrix) : HResult; stdcall; |
function DeleteMatrix(d3dMatHandle: TD3DMatrixHandle): HResult; stdcall; |
function BeginScene: HResult; stdcall; |
function EndScene: HResult; stdcall; |
function GetDirect3D(out lpD3D: IDirect3D): HResult; stdcall; |
function GetDirect3D (var lpD3D: IDirect3D) : HResult; stdcall; |
end; |
IDirect3DDevice2 = interface(IUnknown) |
['{93281501-8CF8-11D0-89AB-00A0C9054129}'] |
// IDirect3DDevice2 methods |
['{93281501-8cf8-11d0-89ab-00a0c9054129}'] |
(*** IDirect3DDevice2 methods ***) |
function GetCaps(var lpD3DHWDevDesc: TD3DDeviceDesc; |
var lpD3DHELDevDesc: TD3DDeviceDesc): HResult; stdcall; |
function SwapTextureHandles(lpD3DTex1: IDirect3DTexture2; |
lpD3DTex2: IDirect3DTexture2): HResult; stdcall; |
function GetStats(var lpD3DStats: TD3DStats): HResult; stdcall; |
function AddViewport(lpDirect3DViewport: IDirect3DViewport2): HResult; stdcall; |
function AddViewport (lpDirect3DViewport2: IDirect3DViewport2) : HResult; stdcall; |
function DeleteViewport(lpDirect3DViewport: IDirect3DViewport2): HResult; stdcall; |
function NextViewport(lpDirect3DViewport: IDirect3DViewport2; |
out lplpDirect3DViewport: IDirect3DViewport2; dwFlags: DWORD): HResult; stdcall; |
function EnumTextureFormats(lpd3dEnumTextureProc: TD3DEnumTextureFormatsCalback; |
lpArg: Pointer): HResult; stdcall; |
var lplpDirect3DViewport: IDirect3DViewport2; dwFlags: DWORD) : |
HResult; stdcall; |
function EnumTextureFormats ( |
lpd3dEnumTextureProc: TD3DEnumTextureFormatsCallback; lpArg: Pointer) : |
HResult; stdcall; |
function BeginScene: HResult; stdcall; |
function EndScene: HResult; stdcall; |
function GetDirect3D(out lpD3D: IDirect3D2): HResult; stdcall; |
function SetCurrentViewport(lpd3dViewport2: IDirect3DViewport2): HResult; stdcall; |
function GetCurrentViewport(out lplpd3dViewport2: IDirect3DViewport2): HResult; stdcall; |
function SetRenderTarget(lpNewRenderTarget: IDirectDrawSurface): HResult; stdcall; |
function GetRenderTarget(out lplpNewRenderTarget: IDirectDrawSurface): HResult; stdcall; |
function GetDirect3D (var lpD3D: IDirect3D2) : HResult; stdcall; |
(*** DrawPrimitive API ***) |
function SetCurrentViewport (lpd3dViewport2: IDirect3DViewport2) |
: HResult; stdcall; |
function GetCurrentViewport (var lplpd3dViewport2: IDirect3DViewport2) |
: HResult; stdcall; |
function SetRenderTarget (lpNewRenderTarget: IDirectDrawSurface) |
: HResult; stdcall; |
function GetRenderTarget (var lplpNewRenderTarget: IDirectDrawSurface) |
: HResult; stdcall; |
function Begin_(d3dpt: TD3DPrimitiveType; d3dvt: TD3DVertexType; |
dwFlags: DWORD): HResult; stdcall; |
function BeginIndexed(dptPrimitiveType: TD3DPrimitiveType; dvtVertexType: |
TD3DVertexType; const lpvVertices; dwNumVertices: DWORD; |
TD3DVertexType; lpvVertices: pointer; dwNumVertices: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function Vertex(const lpVertexType): HResult; stdcall; |
function Vertex (lpVertexType: pointer) : HResult; stdcall; |
function Index(wVertexIndex: WORD): HResult; stdcall; |
function End_(dwFlags: DWORD): HResult; stdcall; |
function GetRenderState(dwRenderStateType: TD3DRenderStateType; |
var lpdwRenderState: DWORD): HResult; stdcall; |
var lpdwRenderState) : HResult; stdcall; |
function SetRenderState(dwRenderStateType: TD3DRenderStateType; |
dwRenderState: DWORD): HResult; stdcall; |
function GetLightState(dwLightStateType: TD3DLightStateType; |
var lpdwLightState: DWORD): HResult; stdcall; |
var lpdwLightState) : HResult; stdcall; |
function SetLightState(dwLightStateType: TD3DLightStateType; |
dwLightState: DWORD): HResult; stdcall; |
function SetTransform(dtstTransformStateType: TD3DTransformStateType; |
const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
var lpD3DMatrix: TD3DMatrix) : HResult; stdcall; |
function GetTransform(dtstTransformStateType: TD3DTransformStateType; |
var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
function MultiplyTransform(dtstTransformStateType: TD3DTransformStateType; |
var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
function DrawPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
dvtVertexType: TD3DVertexType; const lpvVertices; dwVertexCount, |
dvtVertexType: TD3DVertexType; var lpvVertices; dwVertexCount, |
dwFlags: DWORD): HResult; stdcall; |
function DrawIndexedPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
dvtVertexType: TD3DVertexType; const lpvVertices; |
dwVertexCount: DWORD; const dwIndices; dwIndexCount: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function SetClipStatus(const lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
dwVertexTypeDesc: DWORD; lpvVertices: pointer; dwVertexCount: DWORD; |
var lpwIndices: WORD; dwIndexCount, dwFlags: DWORD) : HResult; stdcall; |
function SetClipStatus (var lpD3DClipStatus: TD3DClipStatus) : HResult; stdcall; |
function GetClipStatus(var lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
end; |
IDirect3DDevice3 = interface(IUnknown) |
['{B0AB3B60-33D7-11D1-A981-00C04FD7B174}'] |
// IDirect3DDevice3 methods |
['{b0ab3b60-33d7-11d1-a981-00c04fd7b174}'] |
(*** IDirect3DDevice2 methods ***) |
function GetCaps(var lpD3DHWDevDesc: TD3DDeviceDesc; |
var lpD3DHELDevDesc: TD3DDeviceDesc): HResult; stdcall; |
function GetStats(var lpD3DStats: TD3DStats): HResult; stdcall; |
5297,155 → 8176,193 |
function AddViewport(lpDirect3DViewport: IDirect3DViewport3): HResult; stdcall; |
function DeleteViewport(lpDirect3DViewport: IDirect3DViewport3): HResult; stdcall; |
function NextViewport(lpDirect3DViewport: IDirect3DViewport3; |
out lplpDirect3DViewport: IDirect3DViewport3; dwFlags: DWORD): HResult; stdcall; |
function EnumTextureFormats(lpd3dEnumPixelProc: TD3DEnumPixelFormatsCallback; |
lpArg: Pointer): HResult; stdcall; |
var lplpAnotherViewport: IDirect3DViewport3; dwFlags: DWORD) : HResult; stdcall; |
function EnumTextureFormats ( |
lpd3dEnumPixelProc: TD3DEnumPixelFormatsCallback; lpArg: Pointer) : |
HResult; stdcall; |
function BeginScene: HResult; stdcall; |
function EndScene: HResult; stdcall; |
function GetDirect3D(out lpD3D: IDirect3D3): HResult; stdcall; |
function SetCurrentViewport(lpd3dViewport: IDirect3DViewport3): HResult; stdcall; |
function GetCurrentViewport(out lplpd3dViewport: IDirect3DViewport3): HResult; stdcall; |
function SetRenderTarget(lpNewRenderTarget: IDirectDrawSurface4): HResult; stdcall; |
function GetRenderTarget(out lplpNewRenderTarget: IDirectDrawSurface4): HResult; stdcall; |
function GetDirect3D (var lpD3D: IDirect3D3) : HResult; stdcall; |
function SetCurrentViewport (lpd3dViewport: IDirect3DViewport3) |
: HResult; stdcall; |
function GetCurrentViewport (var lplpd3dViewport: IDirect3DViewport3) |
: HResult; stdcall; |
function SetRenderTarget (lpNewRenderTarget: IDirectDrawSurface4) |
: HResult; stdcall; |
function GetRenderTarget (var lplpNewRenderTarget: IDirectDrawSurface4) |
: HResult; stdcall; |
function Begin_(d3dpt: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function BeginIndexed(dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
const lpvVertices; dwNumVertices: DWORD; dwFlags: DWORD): HResult; stdcall; |
function Vertex(const lpVertexType): HResult; stdcall; |
function BeginIndexed (dptPrimitiveType: TD3DPrimitiveType; |
dwVertexTypeDesc: DWORD; lpvVertices: pointer; dwNumVertices: DWORD; |
dwFlags: DWORD) : HResult; stdcall; |
function Vertex (lpVertex: pointer) : HResult; stdcall; |
function Index(wVertexIndex: WORD): HResult; stdcall; |
function End_(dwFlags: DWORD): HResult; stdcall; |
function GetRenderState(dwRenderStateType: TD3DRenderStateType; |
var lpdwRenderState: DWORD): HResult; stdcall; |
var lpdwRenderState) : HResult; stdcall; |
function SetRenderState(dwRenderStateType: TD3DRenderStateType; |
dwRenderState: DWORD): HResult; stdcall; |
function GetLightState(dwLightStateType: TD3DLightStateType; |
var lpdwLightState: DWORD): HResult; stdcall; |
var lpdwLightState) : HResult; stdcall; |
function SetLightState(dwLightStateType: TD3DLightStateType; |
dwLightState: DWORD): HResult; stdcall; |
function SetTransform(dtstTransformStateType: TD3DTransformStateType; |
const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
var lpD3DMatrix: TD3DMatrix) : HResult; stdcall; |
function GetTransform(dtstTransformStateType: TD3DTransformStateType; |
var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
function MultiplyTransform(dtstTransformStateType: TD3DTransformStateType; |
var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
function DrawPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
dwVertexTypeDesc: DWORD; const lpvVertices; dwVertexCount, |
dwFlags: DWORD): HResult; stdcall; |
dwVertexTypeDesc: DWORD; const lpvVertices; |
dwVertexCount, dwFlags: DWORD) : HResult; stdcall; |
function DrawIndexedPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
dwVertexTypeDesc: DWORD; const lpvVertices; |
dwVertexCount: DWORD; const dwIndices; dwIndexCount: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function SetClipStatus(const lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
dwVertexTypeDesc: DWORD; const lpvVertices; dwVertexCount: DWORD; |
var lpwIndices: WORD; dwIndexCount, dwFlags: DWORD) : HResult; stdcall; |
function SetClipStatus (var lpD3DClipStatus: TD3DClipStatus) : HResult; stdcall; |
function GetClipStatus(var lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
function DrawPrimitiveStrided(dptPrimitiveType: TD3DPrimitiveType; |
dwVertexTypeDesc: DWORD; const lpVertexArray; |
dwVertexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
dwVertexTypeDesc : DWORD; |
var lpVertexArray: TD3DDrawPrimitiveStridedData; |
dwVertexCount, dwFlags: DWORD) : HResult; stdcall; |
function DrawIndexedPrimitiveStrided(dptPrimitiveType: TD3DPrimitiveType; |
dwVertexTypeDesc: DWORD; const lpVertexArray; |
dwVertexCount: DWORD; const lpwIndices; dwIndexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
dwVertexTypeDesc : DWORD; |
var lpVertexArray: TD3DDrawPrimitiveStridedData; dwVertexCount: DWORD; |
var lpwIndices: WORD; dwIndexCount, dwFlags: DWORD) : HResult; stdcall; |
function DrawPrimitiveVB(dptPrimitiveType: TD3DPrimitiveType; |
lpd3dVertexBuffer: IDirect3DVertexBuffer; dwStartVertex, dwNumVertices: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
lpd3dVertexBuffer: IDirect3DVertexBuffer; |
dwStartVertex, dwNumVertices, dwFlags: DWORD) : HResult; stdcall; |
function DrawIndexedPrimitiveVB(dptPrimitiveType: TD3DPrimitiveType; |
lpd3dVertexBuffer: IDirect3DVertexBuffer; const lpwIndices; dwIndexCount: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function ComputeSphereVisibility(const lpCenters; const lpRadii; |
dwNumSpheres: DWORD; dwFlags: DWORD; var lpdwReturnValues): HResult; stdcall; |
function GetTexture(dwStage: DWORD; out lplpTexture: IDirect3DTexture2): HResult; stdcall; |
function SetTexture(dwStage: DWORD; lpTexture: IDirect3DTexture2): HResult; stdcall; |
function GetTextureStageState(dwStage: DWORD; dwState: TD3DTextureStagesStateType; |
var lpdwValue: DWORD): HResult; stdcall; |
function SetTextureStageState(dwStage: DWORD; dwState: TD3DTextureStagesStateType; |
lpdwValue: DWORD): HResult; stdcall; |
function ValidateDevice(var lpdwPasses: DWORD): HResult; stdcall; |
lpd3dVertexBuffer: IDirect3DVertexBuffer; var lpwIndices: WORD; |
dwIndexCount, dwFlags: DWORD) : HResult; stdcall; |
function ComputeSphereVisibility (var lpCenters: TD3DVector; |
var lpRadii: TD3DValue; dwNumSpheres, dwFlags: DWORD; |
var lpdwReturnValues: DWORD) : HResult; stdcall; |
function GetTexture (dwStage: DWORD; var lplpTexture: IDirect3DTexture2) |
: HResult; stdcall; |
function SetTexture (dwStage: DWORD; lplpTexture: IDirect3DTexture2) |
: HResult; stdcall; |
function GetTextureStageState (dwStage: DWORD; |
dwState: TD3DTextureStageStateType; var lpdwValue: DWORD) : HResult; stdcall; |
function SetTextureStageState (dwStage: DWORD; |
dwState: TD3DTextureStageStateType; lpdwValue: DWORD) : HResult; stdcall; |
function ValidateDevice (var lpdwExtraPasses: DWORD) : HResult; stdcall; |
end; |
IDirect3DDevice7 = interface(IUnknown) |
['{F5049E79-4861-11D2-A407-00A0C90629A8}'] |
// IDirect3DDevice7 methods |
function GetCaps(var lpD3DDeviceDesc: TD3DDeviceDesc7): HResult; stdcall; |
function EnumTextureFormats(lpd3dEnumPixelProc: TD3DEnumPixelFormatsCallback; |
lpArg: Pointer): HResult; stdcall; |
['{f5049e79-4861-11d2-a407-00a0c90629a8}'] |
(*** IDirect3DDevice7 methods ***) |
function GetCaps(out lpD3DDevDesc: TD3DDeviceDesc7) : HResult; stdcall; |
function EnumTextureFormats(lpd3dEnumPixelProc: TD3DEnumPixelFormatsCallback; lpArg: Pointer) : HResult; stdcall; |
function BeginScene: HResult; stdcall; |
function EndScene: HResult; stdcall; |
function GetDirect3D(out lplpD3D: IDirect3D7): HResult; stdcall; |
function GetDirect3D(out lpD3D: IDirect3D7) : HResult; stdcall; |
function SetRenderTarget(lpNewRenderTarget: IDirectDrawSurface7; dwFlags: DWORD): HResult; stdcall; |
function GetRenderTarget(out lplpRenderTarget: IDirectDrawSurface7): HResult; stdcall; |
function Clear(dwCount: DWORD; const lpRects: TD3DRect; dwFlags: DWORD; dwColor: TD3DColor; |
dvZ: TD3DValue; dwStencil: DWORD): HResult; stdcall; |
function SetTransform(dtstTransformStateType: TD3DTransformStateType; const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
function GetTransform(dtstTransformStateType: TD3DTransformStateType; var lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
function Clear(dwCount: DWORD; lpRects: PD3DRect; dwFlags, dwColor: DWORD; dvZ: TD3DValue; dwStencil: DWORD) : HResult; stdcall; |
function SetTransform(dtstTransformStateType: TD3DTransformStateType; |
const lpD3DMatrix: TD3DMatrix) : HResult; stdcall; |
function GetTransform(dtstTransformStateType: TD3DTransformStateType; |
out lpD3DMatrix: TD3DMatrix) : HResult; stdcall; |
function SetViewport(const lpViewport: TD3DViewport7): HResult; stdcall; |
function MultiplyTransform(dtstTransformStateType: TD3DTransformStateType; const lpD3DMatrix: TD3DMatrix): HResult; stdcall; |
function GetViewport(var lpViewport: TD3DViewport7): HResult; stdcall; |
function MultiplyTransform(dtstTransformStateType: TD3DTransformStateType; |
const lpD3DMatrix: TD3DMatrix) : HResult; stdcall; |
function GetViewport(out lpViewport: TD3DViewport7) : HResult; stdcall; |
function SetMaterial(const lpMaterial: TD3DMaterial7): HResult; stdcall; |
function GetMaterial(var lpMaterial: TD3DMaterial7): HResult; stdcall; |
function GetMaterial(out lpMaterial: TD3DMaterial7) : HResult; stdcall; |
function SetLight(dwLightIndex: DWORD; const lpLight: TD3DLight7): HResult; stdcall; |
function GetLight(dwLightIndex: DWORD; var lpLight: TD3DLight7): HResult; stdcall; |
function GetLight(dwLightIndex: DWORD; out lpLight: TD3DLight7) : HResult; stdcall; |
function SetRenderState(dwRenderStateType: TD3DRenderStateType; dwRenderState: DWORD): HResult; stdcall; |
function GetRenderState(dwRenderStateType: TD3DRenderStateType; var lpdwRenderState: DWORD): HResult; stdcall; |
function GetRenderState(dwRenderStateType: TD3DRenderStateType; out dwRenderState: DWORD) : HResult; stdcall; |
function BeginStateBlock: HResult; stdcall; |
function EndStateBlock(var lpdwBlockHandle: DWORD): HResult; stdcall; |
function EndStateBlock(out lpdwBlockHandle: DWORD) : HResult; stdcall; |
function PreLoad(lpddsTexture: IDirectDrawSurface7): HResult; stdcall; |
function DrawPrimitive(dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
const lpvVertices; dwVertexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
function DrawIndexedPrimitive(d3dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
const lpvVertices; dwVertexCount: DWORD; const lpwIndices; dwIndexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
function DrawPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
dwVertexTypeDesc: DWORD; const lpvVertices; |
dwVertexCount, dwFlags: DWORD) : HResult; stdcall; |
function DrawIndexedPrimitive(dptPrimitiveType: TD3DPrimitiveType; |
dwVertexTypeDesc: DWORD; const lpvVertices; dwVertexCount: DWORD; |
const lpwIndices; dwIndexCount, dwFlags: DWORD) : HResult; stdcall; |
function SetClipStatus(const lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
function GetClipStatus(var lpD3DClipStatus: TD3DClipStatus): HResult; stdcall; |
function DrawPrimitiveStrided(dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
const lpVertexArray; dwVertexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
function DrawIndexedPrimitiveStrided(d3dptPrimitiveType: TD3DPrimitiveType; dwVertexTypeDesc: DWORD; |
const lpVertexArray; dwVertexCount: DWORD; const lpwIndices; dwIndexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
function DrawPrimitiveVB(d3dptPrimitiveType: TD3DPrimitiveType; lpd3dVertexBuffer: IDirect3DVertexBuffer7; |
dwStartVertex: DWORD; dwNumVertices: DWORD; dwFlags: DWORD): HResult; stdcall; |
function DrawIndexedPrimitiveVB(d3dptPrimitiveType: TD3DPrimitiveType; lpd3dVertexBuffer: IDirect3DVertexBuffer7; |
dwStartVertex: DWORD; dwNumVertices: DWORD; const lpwIndices; dwIndexCount: DWORD; dwFlags: DWORD): HResult; stdcall; |
function ComputeSphereVisibility(const lpCenters; const lpRadii; dwNumSpheres: DWORD; dwFlags: DWORD; var lpdwReturnValue): HResult; stdcall; |
function GetClipStatus(out lpD3DClipStatus: TD3DClipStatus) : HResult; stdcall; |
function DrawPrimitiveStrided(dptPrimitiveType: TD3DPrimitiveType; |
dwVertexTypeDesc : DWORD; |
const lpVertexArray: TD3DDrawPrimitiveStridedData; |
dwVertexCount, dwFlags: DWORD) : HResult; stdcall; |
function DrawIndexedPrimitiveStrided(dptPrimitiveType: TD3DPrimitiveType; |
dwVertexTypeDesc : DWORD; |
const lpVertexArray: TD3DDrawPrimitiveStridedData; dwVertexCount: DWORD; |
var lpwIndices: WORD; dwIndexCount, dwFlags: DWORD) : HResult; stdcall; |
function DrawPrimitiveVB(dptPrimitiveType: TD3DPrimitiveType; |
lpd3dVertexBuffer: IDirect3DVertexBuffer7; |
dwStartVertex, dwNumVertices, dwFlags: DWORD) : HResult; stdcall; |
function DrawIndexedPrimitiveVB(dptPrimitiveType: TD3DPrimitiveType; |
lpd3dVertexBuffer: IDirect3DVertexBuffer7; dwStartVertex, dwNumVertices: DWORD; |
var lpwIndices: WORD; dwIndexCount, dwFlags: DWORD) : HResult; stdcall; |
function ComputeSphereVisibility(const lpCenters: TD3DVector; |
var lpRadii: TD3DValue; dwNumSpheres, dwFlags: DWORD; |
var lpdwReturnValues: DWORD) : HResult; stdcall; |
function GetTexture(dwStage: DWORD; out lplpTexture: IDirectDrawSurface7): HResult; stdcall; |
function SetTexture(dwStage: DWORD; lpTexture: IDirectDrawSurface7): HResult; stdcall; |
function GetTextureStageState(dwStage: DWORD; dwState: TD3DTextureStagesStateType; var lpdwValue: DWORD): HResult; stdcall; |
function SetTextureStageState(dwStage: DWORD; dwState: TD3DTextureStagesStateType; dwValue: DWORD): HResult; stdcall; |
function ValidateDevice(var lpdwPasses: DWORD): HResult; stdcall; |
function GetTextureStageState(dwStage: DWORD; |
dwState: TD3DTextureStageStateType; out lpdwValue: DWORD) : HResult; stdcall; |
function SetTextureStageState(dwStage: DWORD; |
dwState: TD3DTextureStageStateType; lpdwValue: DWORD) : HResult; stdcall; |
function ValidateDevice(out lpdwExtraPasses: DWORD) : HResult; stdcall; |
function ApplyStateBlock(dwBlockHandle: DWORD): HResult; stdcall; |
function CaptureStateBlock(dwBlockHandle: DWORD): HResult; stdcall; |
function DeleteStateBlock(dwBlockHandle: DWORD): HResult; stdcall; |
function CreateStateBlock(d3dsbType: TD3DSTATEBLOCKTYPE; var lpdwBlockHandle: DWORD): HResult; stdcall; |
function Load(lpDestTex: IDirectDrawSurface7; const lpDestPoint: TPoint; lpSrcTex: IDirectDrawSurface7; const lprcSrcRect: TRect; dwFlags: DWORD): HResult; stdcall; |
function CreateStateBlock(d3dsbType: TD3DStateBlockType; out lpdwBlockHandle: DWORD) : HResult; stdcall; |
function Load(lpDestTex: IDirectDrawSurface7; lpDestPoint: PPoint; |
lpSrcTex: IDirectDrawSurface7; lprcSrcRect: PRect; dwFlags: DWORD) : HResult; stdcall; |
function LightEnable(dwLightIndex: DWORD; bEnable: BOOL): HResult; stdcall; |
function GetLightEnable(dwLightIndex: DWORD; var pbEnable: BOOL): HResult; stdcall; |
function SetClipPlane(dwIndex: DWORD; const pPlaneEquation): HResult; stdcall; |
function GetClipPlane(dwIndex: DWORD; var pPlaneEquation): HResult; stdcall; |
function GetLightEnable(dwLightIndex: DWORD; out bEnable: BOOL) : HResult; stdcall; |
function SetClipPlane(dwIndex: DWORD; var pPlaneEquation: TD3DValue) : HResult; stdcall; |
function GetClipPlane(dwIndex: DWORD; out pPlaneEquation: TD3DValue) : HResult; stdcall; |
function GetInfo(dwDevInfoID: DWORD; pDevInfoStruct: Pointer; dwSize: DWORD): HResult; stdcall; |
end; |
(* |
* Execute Buffer interface |
*) |
IDirect3DExecuteBuffer = interface(IUnknown) |
['{4417C145-33AD-11CF-816F-0000C020156E}'] |
// IDirect3DExecuteBuffer methods |
(*** IDirect3DExecuteBuffer methods ***) |
function Initialize(lpDirect3DDevice: IDirect3DDevice; |
const lpDesc: TD3DExecuteBufferDesc): HResult; stdcall; |
var lpDesc: TD3DExecuteBufferDesc) : HResult; stdcall; |
function Lock(var lpDesc: TD3DExecuteBufferDesc): HResult; stdcall; |
function Unlock: HResult; stdcall; |
function SetExecuteData(const lpData: TD3DExecuteData): HResult; stdcall; |
function SetExecuteData (var lpData: TD3DExecuteData) : HResult; stdcall; |
function GetExecuteData(var lpData: TD3DExecuteData): HResult; stdcall; |
function Validate(var lpdwOffset: DWORD; lpFunc: TD3DValidateCallback; |
lpUserArg: Pointer; dwReserved: DWORD): HResult; stdcall; |
(*** Warning! Optimize is defined differently in the header files |
and the online documentation ***) |
function Optimize(dwFlags: DWORD): HResult; stdcall; |
end; |
(* |
* Light interfaces |
*) |
IDirect3DLight = interface(IUnknown) |
['{4417C142-33AD-11CF-816F-0000C020156E}'] |
// IDirect3DLight methods |
(*** IDirect3DLight methods ***) |
function Initialize(lpDirect3D: IDirect3D): HResult; stdcall; |
function SetLight(const lpLight: TD3DLight): HResult; stdcall; |
function GetLight(var lpLight: TD3DLight): HResult; stdcall; |
function SetLight (var lpLight: TD3DLight2) : HResult; stdcall; |
function GetLight (var lpLight: TD3DLight2) : HResult; stdcall; |
end; |
(* |
* Material interfaces |
*) |
IDirect3DMaterial = interface(IUnknown) |
['{4417C144-33AD-11CF-816F-0000C020156E}'] |
// IDirect3DMaterial methods |
(*** IDirect3DMaterial methods ***) |
function Initialize(lpDirect3D: IDirect3D): HResult; stdcall; |
function SetMaterial(const lpMat: TD3DMaterial): HResult; stdcall; |
function SetMaterial (var lpMat: TD3DMaterial) : HResult; stdcall; |
function GetMaterial(var lpMat: TD3DMaterial): HResult; stdcall; |
function GetHandle(lpDirect3DDevice: IDirect3DDevice; |
var lpHandle: TD3DMaterialHandle): HResult; stdcall; |
5454,9 → 8371,9 |
end; |
IDirect3DMaterial2 = interface(IUnknown) |
['{93281503-8CF8-11D0-89AB-00A0C9054129}'] |
// IDirect3DMaterial2 methods |
function SetMaterial(const lpMat: TD3DMaterial): HResult; stdcall; |
['{93281503-8cf8-11d0-89ab-00a0c9054129}'] |
(*** IDirect3DMaterial2 methods ***) |
function SetMaterial (var lpMat: TD3DMaterial) : HResult; stdcall; |
function GetMaterial(var lpMat: TD3DMaterial): HResult; stdcall; |
function GetHandle(lpDirect3DDevice: IDirect3DDevice2; |
var lpHandle: TD3DMaterialHandle): HResult; stdcall; |
5463,17 → 8380,21 |
end; |
IDirect3DMaterial3 = interface(IUnknown) |
['{CA9C46F4-D3C5-11D1-B75A-00600852B312}'] |
// IDirect3DMaterial3 methods |
function SetMaterial(const lpMat: TD3DMaterial): HResult; stdcall; |
['{ca9c46f4-d3c5-11d1-b75a-00600852b312}'] |
(*** IDirect3DMaterial2 methods ***) |
function SetMaterial (var lpMat: TD3DMaterial) : HResult; stdcall; |
function GetMaterial(var lpMat: TD3DMaterial): HResult; stdcall; |
function GetHandle(lpDirect3DDevice: IDirect3DDevice3; |
var lpHandle: TD3DMaterialHandle): HResult; stdcall; |
end; |
(* |
* Texture interfaces |
*) |
IDirect3DTexture = interface(IUnknown) |
['{2CDCD9E0-25A0-11CF-A31A-00AA00B93356}'] |
// IDirect3DTexture methods |
(*** IDirect3DTexture methods ***) |
function Initialize(lpD3DDevice: IDirect3DDevice; |
lpDDSurface: IDirectDrawSurface): HResult; stdcall; |
function GetHandle(lpDirect3DDevice: IDirect3DDevice; |
5484,31 → 8405,37 |
end; |
IDirect3DTexture2 = interface(IUnknown) |
['{93281502-8CF8-11D0-89AB-00A0C9054129}'] |
// IDirect3DTexture2 methods |
function GetHandle(lpDirect3DDevice2: IDirect3DDevice2; |
['{93281502-8cf8-11d0-89ab-00a0c9054129}'] |
(*** IDirect3DTexture2 methods ***) |
function GetHandle (lpDirect3DDevice: IDirect3DDevice2; |
var lpHandle: TD3DTextureHandle): HResult; stdcall; |
function PaletteChanged(dwStart: DWORD; dwCount: DWORD): HResult; stdcall; |
function Load(lpD3DTexture2: IDirect3DTexture2): HResult; stdcall; |
function Load (lpD3DTexture: IDirect3DTexture2) : HResult; stdcall; |
end; |
(* |
* Viewport interfaces |
*) |
IDirect3DViewport = interface(IUnknown) |
['{4417C146-33AD-11CF-816F-0000C020156E}'] |
// IDirect3DViewport methods |
(*** IDirect3DViewport methods ***) |
function Initialize(lpDirect3D: IDirect3D): HResult; stdcall; |
function GetViewport(var lpData: TD3DViewport): HResult; stdcall; |
function GetViewport (out lpData: TD3DViewport) : HResult; stdcall; |
function SetViewport(const lpData: TD3DViewport): HResult; stdcall; |
function TransformVertices(dwVertexCount: DWORD; |
var lpData: TD3DTransformData; dwFlags: DWORD; |
var lpOffscreen: DWORD): HResult; stdcall; |
const lpData: TD3DTransformData; dwFlags: DWORD; |
out lpOffscreen: DWORD) : HResult; stdcall; |
function LightElements(dwElementCount: DWORD; |
var lpData: TD3DLightData): HResult; stdcall; |
function SetBackground(hMat: TD3DMaterialHandle): HResult; stdcall; |
function GetBackground(hMat: TD3DMaterialHandle): HResult; stdcall; |
function SetBackgroundDepth(lpDDSurface: IDirectDrawSurface): HResult; stdcall; |
function GetBackground (out hMat: TD3DMaterialHandle) : HResult; stdcall; |
function SetBackgroundDepth (lpDDSurface: IDirectDrawSurface) : |
HResult; stdcall; |
function GetBackgroundDepth(out lplpDDSurface: IDirectDrawSurface; |
var lpValid: BOOL): HResult; stdcall; |
function Clear(dwCount: DWORD; const lpRects: TD3DRect; dwFlags: DWORD): HResult; stdcall; |
out lpValid: BOOL) : HResult; stdcall; |
function Clear (dwCount: DWORD; const lpRects: TD3DRect; dwFlags: DWORD) : |
HResult; stdcall; |
function AddLight(lpDirect3DLight: IDirect3DLight): HResult; stdcall; |
function DeleteLight(lpDirect3DLight: IDirect3DLight): HResult; stdcall; |
function NextLight(lpDirect3DLight: IDirect3DLight; |
5515,28 → 8442,74 |
out lplpDirect3DLight: IDirect3DLight; dwFlags: DWORD): HResult; stdcall; |
end; |
IDirect3DViewport2 = interface(IDirect3DViewport) |
['{93281500-8CF8-11D0-89AB-00A0C9054129}'] |
// IDirect3DViewport2 methods |
function GetViewport2(var lpData: TD3DViewport2): HResult; stdcall; |
IDirect3DViewport2 = interface (IUnknown) |
['{93281500-8cf8-11d0-89ab-00a0c9054129}'] |
(*** IDirect3DViewport2 methods ***) |
function Initialize (lpDirect3D: IDirect3D) : HResult; stdcall; |
function GetViewport (out lpData: TD3DViewport) : HResult; stdcall; |
function SetViewport (const lpData: TD3DViewport) : HResult; stdcall; |
function TransformVertices (dwVertexCount: DWORD; |
const lpData: TD3DTransformData; dwFlags: DWORD; |
out lpOffscreen: DWORD) : HResult; stdcall; |
function LightElements (dwElementCount: DWORD; |
var lpData: TD3DLightData) : HResult; stdcall; |
function SetBackground (hMat: TD3DMaterialHandle) : HResult; stdcall; |
function GetBackground (out hMat: TD3DMaterialHandle) : HResult; stdcall; |
function SetBackgroundDepth (lpDDSurface: IDirectDrawSurface) : |
HResult; stdcall; |
function GetBackgroundDepth (out lplpDDSurface: IDirectDrawSurface; |
out lpValid: BOOL) : HResult; stdcall; |
function Clear (dwCount: DWORD; const lpRects: TD3DRect; dwFlags: DWORD) : |
HResult; stdcall; |
function AddLight (lpDirect3DLight: IDirect3DLight) : HResult; stdcall; |
function DeleteLight (lpDirect3DLight: IDirect3DLight) : HResult; stdcall; |
function NextLight (lpDirect3DLight: IDirect3DLight; |
out lplpDirect3DLight: IDirect3DLight; dwFlags: DWORD) : HResult; stdcall; |
(*** IDirect3DViewport2 methods ***) |
function GetViewport2 (out lpData: TD3DViewport2) : HResult; stdcall; |
function SetViewport2(const lpData: TD3DViewport2): HResult; stdcall; |
end; |
IDirect3DViewport3 = interface(IDirect3DViewport2) |
['{B0AB3B61-33D7-11D1-A981-00C04FD7B174}'] |
// IDirect3DViewport3 methods |
function SetBackgroundDepth2(lpDDS: IDirectDrawSurface4): HResult; stdcall; |
function GetBackgroundDepth2(out lplpDDS: IDirectDrawSurface4; var lpValid: BOOL): HResult; stdcall; |
IDirect3DViewport3 = interface (IUnknown) |
['{b0ab3b61-33d7-11d1-a981-00c04fd7b174}'] |
(*** IDirect3DViewport3 methods ***) |
function Initialize (lpDirect3D: IDirect3D) : HResult; stdcall; |
function GetViewport (out lpData: TD3DViewport) : HResult; stdcall; |
function SetViewport (const lpData: TD3DViewport) : HResult; stdcall; |
function TransformVertices (dwVertexCount: DWORD; |
const lpData: TD3DTransformData; dwFlags: DWORD; |
out lpOffscreen: DWORD) : HResult; stdcall; |
function LightElements (dwElementCount: DWORD; |
var lpData: TD3DLightData) : HResult; stdcall; |
function SetBackground (hMat: TD3DMaterialHandle) : HResult; stdcall; |
function GetBackground (var hMat: TD3DMaterialHandle) : HResult; stdcall; |
function SetBackgroundDepth ( |
lpDDSurface: IDirectDrawSurface) : HResult; stdcall; |
function GetBackgroundDepth (out lplpDDSurface: IDirectDrawSurface; |
out lpValid: BOOL) : HResult; stdcall; |
function Clear (dwCount: DWORD; const lpRects: TD3DRect; dwFlags: DWORD) : |
HResult; stdcall; |
function AddLight (lpDirect3DLight: IDirect3DLight) : HResult; stdcall; |
function DeleteLight (lpDirect3DLight: IDirect3DLight) : HResult; stdcall; |
function NextLight (lpDirect3DLight: IDirect3DLight; |
out lplpDirect3DLight: IDirect3DLight; dwFlags: DWORD) : HResult; stdcall; |
function GetViewport2 (out lpData: TD3DViewport2) : HResult; stdcall; |
function SetViewport2 (const lpData: TD3DViewport2) : HResult; stdcall; |
function SetBackgroundDepth2 ( |
lpDDSurface: IDirectDrawSurface4) : HResult; stdcall; |
function GetBackgroundDepth2 (out lplpDDSurface: IDirectDrawSurface4; |
out lpValid: BOOL) : HResult; stdcall; |
function Clear2(dwCount: DWORD; const lpRects: TD3DRect; dwFlags: DWORD; |
dwColor: DWORD; dvZ: TD3DValue; dwStencil: DWORD): HResult; stdcall; |
end; |
IDirect3DVertexBuffer = interface(IUnknown) |
['{7A503555-4A83-11D1-A5DB-00A0C90367F8}'] |
// IDirect3DVertexBuffer methods |
function Lock(dwFlags: DWORD; var lplpData: Pointer; var lpdwSize: DWORD): HResult; stdcall; |
['{7a503555-4a83-11d1-a5db-00a0c90367f8}'] |
(*** IDirect3DVertexBuffer methods ***) |
function Lock (dwFlags: DWORD; var lplpData: pointer; var lpdwSize: DWORD) |
: HResult; stdcall; |
function Unlock: HResult; stdcall; |
function ProcessVertices(dwVertexOp: DWORD; dwDestIndex: DWORD; dwCount: DWORD; |
function ProcessVertices (dwVertexOp, dwDestIndex, dwCount: DWORD; |
lpSrcBuffer: IDirect3DVertexBuffer; dwSrcIndex: DWORD; |
lpD3DDevice: IDirect3DDevice3; dwFlags: DWORD): HResult; stdcall; |
function GetVertexBufferDesc(var lpVBDesc: TD3DVertexBufferDesc): HResult; stdcall; |
5544,145 → 8517,770 |
end; |
IDirect3DVertexBuffer7 = interface(IUnknown) |
['{F5049E7D-4861-11D2-A407-00A0C90629A8}'] |
// IDirect3DVertexBuffer7 methods |
function Lock(dwFlags: DWORD; var lplpData: Pointer; var lpdwSize: DWORD): HResult; stdcall; |
['{f5049e7d-4861-11d2-a407-00a0c90629a8}'] |
(*** IDirect3DVertexBuffer methods ***) |
function Lock (dwFlags: DWORD; out lplpData: Pointer; out lpdwSize: DWORD) : HResult; stdcall; |
function Unlock: HResult; stdcall; |
function ProcessVertices(dwVertexOp: DWORD; dwDestIndex: DWORD; dwCount: DWORD; |
lpSrcBuffer: IDirect3DVertexBuffer7; dwSrcIndex: DWORD; lpD3DDevice: IDirect3DDevice7; dwFlags: DWORD): HResult; stdcall; |
function GetVertexBufferDesc(var lpVBDesc: TD3DVertexBufferDesc): HResult; stdcall; |
function ProcessVertices (dwVertexOp, dwDestIndex, dwCount: DWORD; |
lpSrcBuffer: IDirect3DVertexBuffer7; dwSrcIndex: DWORD; |
lpD3DDevice: IDirect3DDevice7; dwFlags: DWORD) : HResult; stdcall; |
function GetVertexBufferDesc (out lpVBDesc: TD3DVertexBufferDesc) : HResult; stdcall; |
function Optimize(lpD3DDevice: IDirect3DDevice7; dwFlags: DWORD): HResult; stdcall; |
function ProcessVerticesStrided(dwVertexOp: DWORD; dwDestIndex: DWORD; dwCount: DWORD; |
const lpVertexArray; dwSrcIndex: DWORD; lpD3DDevice: IDirect3DDevice7; dwFlags: DWORD): HResult; stdcall; |
function ProcessVerticesStrided(dwVertexOp, dwDestIndex, dwCount: DWORD; |
lpVertexArray: TD3DDrawPrimitiveStridedData; dwVertexTypeDesc: DWORD; |
lpD3DDevice: IDirect3DDevice7; dwFlags: DWORD) : HResult; stdcall; |
end; |
type |
IID_IDirect3D = IDirect3D; |
IID_IDirect3D2 = IDirect3D2; |
IID_IDirect3D3 = IDirect3D3; |
IID_IDirect3D7 = IDirect3D7; |
IID_IDirect3DDevice = IDirect3DDevice; |
IID_IDirect3DDevice2 = IDirect3DDevice2; |
IID_IDirect3DDevice3 = IDirect3DDevice3; |
IID_IDirect3DDevice7 = IDirect3DDevice7; |
IID_IDirect3DTexture = IDirect3DTexture; |
IID_IDirect3DTexture2 = IDirect3DTexture2; |
IID_IDirect3DLight = IDirect3DLight; |
IID_IDirect3DMaterial = IDirect3DMaterial; |
IID_IDirect3DMaterial2 = IDirect3DMaterial2; |
IID_IDirect3DMaterial3 = IDirect3DMaterial3; |
IID_IDirect3DExecuteBuffer = IDirect3DExecuteBuffer; |
IID_IDirect3DViewport = IDirect3DViewport; |
IID_IDirect3DViewport2 = IDirect3DViewport2; |
IID_IDirect3DViewport3 = IDirect3DViewport3; |
IID_IDirect3DVertexBuffer = IDirect3DVertexBuffer; |
IID_IDirect3DVertexBuffer7 = IDirect3DVertexBuffer7; |
const |
(**************************************************************************** |
* |
* Flags for IDirect3DDevice::NextViewport |
* |
****************************************************************************) |
{ Flags for IDirect3DDevice::NextViewport } |
(* |
* Return the next viewport |
*) |
D3DNEXT_NEXT = $00000001; |
D3DNEXT_NEXT = $00000001; |
(* |
* Return the first viewport |
*) |
D3DNEXT_HEAD = $00000002; |
(* |
* Return the last viewport |
*) |
D3DNEXT_TAIL = $00000004; |
{ Flags for DrawPrimitive/DrawIndexedPrimitive |
Also valid for Begin/BeginIndexed } |
(**************************************************************************** |
* |
* Flags for DrawPrimitive/DrawIndexedPrimitive |
* Also valid for Begin/BeginIndexed |
* Also valid for VertexBuffer::CreateVertexBuffer |
****************************************************************************) |
(* |
* Wait until the device is ready to draw the primitive |
* This will cause DP to not return DDERR_WASSTILLDRAWING |
*) |
D3DDP_WAIT = $00000001; |
(* |
* Hint that it is acceptable to render the primitive out of order. |
*) |
D3DDP_OUTOFORDER = $00000002; |
(* |
* Hint that the primitives have been clipped by the application. |
*) |
D3DDP_DONOTCLIP = $00000004; |
(* |
* Hint that the extents need not be updated. |
*) |
D3DDP_DONOTUPDATEEXTENTS = $00000008; |
(* |
* Hint that the lighting should not be applied on vertices. |
*) |
D3DDP_DONOTLIGHT = $00000010; |
{ Direct3D Errors } |
(* |
* Direct3D Errors |
* DirectDraw error codes are used when errors not specified here. |
*) |
const |
D3D_OK = HResult(DD_OK); |
D3DERR_BADMAJORVERSION = HResult($88760000 + 700); |
D3DERR_BADMINORVERSION = HResult($88760000 + 701); |
MAKE_D3DHRESULT = HResult($88760000); |
{ An invalid device was requested by the application. } |
D3D_OK = DD_OK; |
D3DERR_BADMAJORVERSION = MAKE_D3DHRESULT + 700; |
D3DERR_BADMINORVERSION = MAKE_D3DHRESULT + 701; |
D3DERR_INVALID_DEVICE = HResult($88760000 + 705); |
D3DERR_INITFAILED = HResult($88760000 + 706); |
(* |
* An invalid device was requested by the application. |
*) |
D3DERR_INVALID_DEVICE = MAKE_D3DHRESULT + 705; |
D3DERR_INITFAILED = MAKE_D3DHRESULT + 706; |
{ SetRenderTarget attempted on a device that was |
QI'd off the render target. } |
(* |
* SetRenderTarget attempted on a device that was |
* QI'd off the render target. |
*) |
D3DERR_DEVICEAGGREGATED = MAKE_D3DHRESULT + 707; |
D3DERR_DEVICEAGGREGATED = HResult($88760000 + 707); |
D3DERR_EXECUTE_CREATE_FAILED = MAKE_D3DHRESULT + 710; |
D3DERR_EXECUTE_DESTROY_FAILED = MAKE_D3DHRESULT + 711; |
D3DERR_EXECUTE_LOCK_FAILED = MAKE_D3DHRESULT + 712; |
D3DERR_EXECUTE_UNLOCK_FAILED = MAKE_D3DHRESULT + 713; |
D3DERR_EXECUTE_LOCKED = MAKE_D3DHRESULT + 714; |
D3DERR_EXECUTE_NOT_LOCKED = MAKE_D3DHRESULT + 715; |
D3DERR_EXECUTE_CREATE_FAILED = HResult($88760000 + 710); |
D3DERR_EXECUTE_DESTROY_FAILED = HResult($88760000 + 711); |
D3DERR_EXECUTE_LOCK_FAILED = HResult($88760000 + 712); |
D3DERR_EXECUTE_UNLOCK_FAILED = HResult($88760000 + 713); |
D3DERR_EXECUTE_LOCKED = HResult($88760000 + 714); |
D3DERR_EXECUTE_NOT_LOCKED = HResult($88760000 + 715); |
D3DERR_EXECUTE_FAILED = MAKE_D3DHRESULT + 716; |
D3DERR_EXECUTE_CLIPPED_FAILED = MAKE_D3DHRESULT + 717; |
D3DERR_EXECUTE_FAILED = HResult($88760000 + 716); |
D3DERR_EXECUTE_CLIPPED_FAILED = HResult($88760000 + 717); |
D3DERR_TEXTURE_NO_SUPPORT = MAKE_D3DHRESULT + 720; |
D3DERR_TEXTURE_CREATE_FAILED = MAKE_D3DHRESULT + 721; |
D3DERR_TEXTURE_DESTROY_FAILED = MAKE_D3DHRESULT + 722; |
D3DERR_TEXTURE_LOCK_FAILED = MAKE_D3DHRESULT + 723; |
D3DERR_TEXTURE_UNLOCK_FAILED = MAKE_D3DHRESULT + 724; |
D3DERR_TEXTURE_LOAD_FAILED = MAKE_D3DHRESULT + 725; |
D3DERR_TEXTURE_SWAP_FAILED = MAKE_D3DHRESULT + 726; |
D3DERR_TEXTURE_LOCKED = MAKE_D3DHRESULT + 727; |
D3DERR_TEXTURE_NOT_LOCKED = MAKE_D3DHRESULT + 728; |
D3DERR_TEXTURE_GETSURF_FAILED = MAKE_D3DHRESULT + 729; |
D3DERR_TEXTURE_NO_SUPPORT = HResult($88760000 + 720); |
D3DERR_TEXTURE_CREATE_FAILED = HResult($88760000 + 721); |
D3DERR_TEXTURE_DESTROY_FAILED = HResult($88760000 + 722); |
D3DERR_TEXTURE_LOCK_FAILED = HResult($88760000 + 723); |
D3DERR_TEXTURE_UNLOCK_FAILED = HResult($88760000 + 724); |
D3DERR_TEXTURE_LOAD_FAILED = HResult($88760000 + 725); |
D3DERR_TEXTURE_SWAP_FAILED = HResult($88760000 + 726); |
D3DERR_TEXTURE_LOCKED = HResult($88760000 + 727); |
D3DERR_TEXTURE_NOT_LOCKED = HResult($88760000 + 728); |
D3DERR_TEXTURE_GETSURF_FAILED = HResult($88760000 + 729); |
D3DERR_MATRIX_CREATE_FAILED = MAKE_D3DHRESULT + 730; |
D3DERR_MATRIX_DESTROY_FAILED = MAKE_D3DHRESULT + 731; |
D3DERR_MATRIX_SETDATA_FAILED = MAKE_D3DHRESULT + 732; |
D3DERR_MATRIX_GETDATA_FAILED = MAKE_D3DHRESULT + 733; |
D3DERR_SETVIEWPORTDATA_FAILED = MAKE_D3DHRESULT + 734; |
D3DERR_MATRIX_CREATE_FAILED = HResult($88760000 + 730); |
D3DERR_MATRIX_DESTROY_FAILED = HResult($88760000 + 731); |
D3DERR_MATRIX_SETDATA_FAILED = HResult($88760000 + 732); |
D3DERR_MATRIX_GETDATA_FAILED = HResult($88760000 + 733); |
D3DERR_SETVIEWPORTDATA_FAILED = HResult($88760000 + 734); |
D3DERR_INVALIDCURRENTVIEWPORT = MAKE_D3DHRESULT + 735; |
D3DERR_INVALIDPRIMITIVETYPE = MAKE_D3DHRESULT + 736; |
D3DERR_INVALIDVERTEXTYPE = MAKE_D3DHRESULT + 737; |
D3DERR_TEXTURE_BADSIZE = MAKE_D3DHRESULT + 738; |
D3DERR_INVALIDRAMPTEXTURE = MAKE_D3DHRESULT + 739; |
D3DERR_INVALIDCURRENTVIEWPORT = HResult($88760000 + 735); |
D3DERR_INVALIDPRIMITIVETYPE = HResult($88760000 + 736); |
D3DERR_INVALIDVERTEXTYPE = HResult($88760000 + 737); |
D3DERR_TEXTURE_BADSIZE = HResult($88760000 + 738); |
D3DERR_INVALIDRAMPTEXTURE = HResult($88760000 + 739); |
D3DERR_MATERIAL_CREATE_FAILED = MAKE_D3DHRESULT + 740; |
D3DERR_MATERIAL_DESTROY_FAILED = MAKE_D3DHRESULT + 741; |
D3DERR_MATERIAL_SETDATA_FAILED = MAKE_D3DHRESULT + 742; |
D3DERR_MATERIAL_GETDATA_FAILED = MAKE_D3DHRESULT + 743; |
D3DERR_MATERIAL_CREATE_FAILED = HResult($88760000 + 740); |
D3DERR_MATERIAL_DESTROY_FAILED = HResult($88760000 + 741); |
D3DERR_MATERIAL_SETDATA_FAILED = HResult($88760000 + 742); |
D3DERR_MATERIAL_GETDATA_FAILED = HResult($88760000 + 743); |
D3DERR_INVALIDPALETTE = MAKE_D3DHRESULT + 744; |
D3DERR_INVALIDPALETTE = HResult($88760000 + 744); |
D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY = MAKE_D3DHRESULT + 745; |
D3DERR_ZBUFF_NEEDS_VIDEOMEMORY = MAKE_D3DHRESULT + 746; |
D3DERR_SURFACENOTINVIDMEM = MAKE_D3DHRESULT + 747; |
D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY = HResult($88760000 + 745); |
D3DERR_ZBUFF_NEEDS_VIDEOMEMORY = HResult($88760000 + 746); |
D3DERR_SURFACENOTINVIDMEM = HResult($88760000 + 747); |
D3DERR_LIGHT_SET_FAILED = MAKE_D3DHRESULT + 750; |
D3DERR_LIGHTHASVIEWPORT = MAKE_D3DHRESULT + 751; |
D3DERR_LIGHTNOTINTHISVIEWPORT = MAKE_D3DHRESULT + 752; |
D3DERR_LIGHT_SET_FAILED = HResult($88760000 + 750); |
D3DERR_LIGHTHASVIEWPORT = HResult($88760000 + 751); |
D3DERR_LIGHTNOTINTHISVIEWPORT = HResult($88760000 + 752); |
D3DERR_SCENE_IN_SCENE = MAKE_D3DHRESULT + 760; |
D3DERR_SCENE_NOT_IN_SCENE = MAKE_D3DHRESULT + 761; |
D3DERR_SCENE_BEGIN_FAILED = MAKE_D3DHRESULT + 762; |
D3DERR_SCENE_END_FAILED = MAKE_D3DHRESULT + 763; |
D3DERR_SCENE_IN_SCENE = HResult($88760000 + 760); |
D3DERR_SCENE_NOT_IN_SCENE = HResult($88760000 + 761); |
D3DERR_SCENE_BEGIN_FAILED = HResult($88760000 + 762); |
D3DERR_SCENE_END_FAILED = HResult($88760000 + 763); |
D3DERR_INBEGIN = MAKE_D3DHRESULT + 770; |
D3DERR_NOTINBEGIN = MAKE_D3DHRESULT + 771; |
D3DERR_NOVIEWPORTS = MAKE_D3DHRESULT + 772; |
D3DERR_VIEWPORTDATANOTSET = MAKE_D3DHRESULT + 773; |
D3DERR_VIEWPORTHASNODEVICE = MAKE_D3DHRESULT + 774; |
D3DERR_NOCURRENTVIEWPORT = MAKE_D3DHRESULT + 775; |
D3DERR_INBEGIN = HResult($88760000 + 770); |
D3DERR_NOTINBEGIN = HResult($88760000 + 771); |
D3DERR_NOVIEWPORTS = HResult($88760000 + 772); |
D3DERR_VIEWPORTDATANOTSET = HResult($88760000 + 773); |
D3DERR_VIEWPORTHASNODEVICE = HResult($88760000 + 774); |
D3DERR_NOCURRENTVIEWPORT = HResult($88760000 + 775); |
D3DERR_INVALIDVERTEXFORMAT = MAKE_D3DHRESULT + 2048; |
D3DERR_INVALIDVERTEXFORMAT = HResult($88760000 + 2048); |
(* |
* Attempted to CreateTexture on a surface that had a color key |
*) |
D3DERR_COLORKEYATTACHED = MAKE_D3DHRESULT + 2050; |
D3DERR_COLORKEYATTACHED = HResult($88760000 + 2050); |
D3DERR_VERTEXBUFFEROPTIMIZED = MAKE_D3DHRESULT + 2060; |
D3DERR_VBUF_CREATE_FAILED = MAKE_D3DHRESULT + 2061; |
D3DERR_VERTEXBUFFERLOCKED = MAKE_D3DHRESULT + 2062; |
D3DERR_VERTEXBUFFEROPTIMIZED = HResult($88760000 + 2060); |
D3DERR_VBUF_CREATE_FAILED = HResult($88760000 + 2061); |
D3DERR_VERTEXBUFFERLOCKED = HResult($88760000 + 2062); |
D3DERR_VERTEXBUFFERUNLOCKFAILED = HResult($88760000 + 2063); |
D3DERR_ZBUFFER_NOTPRESENT = MAKE_D3DHRESULT + 2070; |
D3DERR_STENCILBUFFER_NOTPRESENT = MAKE_D3DHRESULT + 2071; |
D3DERR_ZBUFFER_NOTPRESENT = HResult($88760000 + 2070); |
D3DERR_STENCILBUFFER_NOTPRESENT = HResult($88760000 + 2071); |
D3DERR_WRONGTEXTUREFORMAT = MAKE_D3DHRESULT + 2072; |
D3DERR_UNSUPPORTEDCOLOROPERATION = MAKE_D3DHRESULT + 2073; |
D3DERR_UNSUPPORTEDCOLORARG = MAKE_D3DHRESULT + 2074; |
D3DERR_UNSUPPORTEDALPHAOPERATION = MAKE_D3DHRESULT + 2075; |
D3DERR_UNSUPPORTEDALPHAARG = MAKE_D3DHRESULT + 2076; |
D3DERR_TOOMANYOPERATIONS = MAKE_D3DHRESULT + 2077; |
D3DERR_CONFLICTINGTEXTUREFILTER = MAKE_D3DHRESULT + 2078; |
D3DERR_UNSUPPORTEDFACTORVALUE = MAKE_D3DHRESULT + 2079; |
D3DERR_CONFLICTINGRENDERSTATE = MAKE_D3DHRESULT + 2081; |
D3DERR_UNSUPPORTEDTEXTUREFILTER = MAKE_D3DHRESULT + 2082; |
D3DERR_TOOMANYPRIMITIVES = MAKE_D3DHRESULT + 2083; |
D3DERR_INVALIDMATRIX = MAKE_D3DHRESULT + 2084; |
D3DERR_TOOMANYVERTICES = MAKE_D3DHRESULT + 2085; |
D3DERR_CONFLICTINGTEXTUREPALETTE = MAKE_D3DHRESULT + 2086; |
D3DERR_WRONGTEXTUREFORMAT = HResult($88760000 + 2072); |
D3DERR_UNSUPPORTEDCOLOROPERATION = HResult($88760000 + 2073); |
D3DERR_UNSUPPORTEDCOLORARG = HResult($88760000 + 2074); |
D3DERR_UNSUPPORTEDALPHAOPERATION = HResult($88760000 + 2075); |
D3DERR_UNSUPPORTEDALPHAARG = HResult($88760000 + 2076); |
D3DERR_TOOMANYOPERATIONS = HResult($88760000 + 2077); |
D3DERR_CONFLICTINGTEXTUREFILTER = HResult($88760000 + 2078); |
D3DERR_UNSUPPORTEDFACTORVALUE = HResult($88760000 + 2079); |
D3DERR_CONFLICTINGRENDERSTATE = HResult($88760000 + 2081); |
D3DERR_UNSUPPORTEDTEXTUREFILTER = HResult($88760000 + 2082); |
D3DERR_TOOMANYPRIMITIVES = HResult($88760000 + 2083); |
D3DERR_INVALIDMATRIX = HResult($88760000 + 2084); |
D3DERR_TOOMANYVERTICES = HResult($88760000 + 2085); |
D3DERR_CONFLICTINGTEXTUREPALETTE = HResult($88760000 + 2086); |
D3DERR_INVALIDSTATEBLOCK = MAKE_D3DHRESULT + 2100; |
D3DERR_INBEGINSTATEBLOCK = MAKE_D3DHRESULT + 2101; |
D3DERR_NOTINBEGINSTATEBLOCK = MAKE_D3DHRESULT + 2102; |
D3DERR_INVALIDSTATEBLOCK = HResult($88760000 + 2100); |
D3DERR_INBEGINSTATEBLOCK = HResult($88760000 + 2101); |
D3DERR_NOTINBEGINSTATEBLOCK = HResult($88760000 + 2102); |
procedure DisableFPUExceptions; |
procedure EnableFPUExceptions; |
(*************************************************************************** |
* |
* Copyright (C) 1998-1999 Microsoft Corporation. All Rights Reserved. |
* |
* File: dxfile.h |
* |
* Content: DirectX File public header file |
* |
***************************************************************************) |
var |
DXFileDLL : HMODULE; |
function DXFileErrorString(Value: HResult) : string; |
type |
TDXFileFormat = ( |
DXFILEFORMAT_BINARY, |
DXFILEFORMAT_TEXT, |
DXFILEFORMAT_COMPRESSED |
); |
TDXFileLoadOptions = ( |
DXFILELOAD_FROMFILE, |
DXFILELOAD_FROMRESOURCE, |
DXFILELOAD_FROMMEMORY, |
DXFILELOAD_INVALID_3, |
DXFILELOAD_FROMSTREAM, |
DXFILELOAD_INVALID_5, |
DXFILELOAD_INVALID_6, |
DXFILELOAD_INVALID_7, |
DXFILELOAD_FROMURL |
); |
PDXFileLoadResource = ^TDXFileLoadResource; |
TDXFileLoadResource = packed record |
hModule: HModule; |
lpName: PAnsiChar; |
lpType: PAnsiChar; |
end; |
PDXFileLoadMemory = ^TDXFileLoadMemory; |
TDXFileLoadMemory = packed record |
lpMemory: Pointer; |
dSize: DWORD; |
end; |
(* |
* DirectX File object types. |
*) |
IDirectXFile = interface; |
IDirectXFileEnumObject = interface; |
IDirectXFileSaveObject = interface; |
IDirectXFileObject = interface; |
IDirectXFileData = interface; |
IDirectXFileDataReference = interface; |
IDirectXFileBinary = interface; |
(* |
* DirectX File interfaces. |
*) |
IDirectXFile = interface (IUnknown) |
['{3d82ab40-62da-11cf-ab39-0020af71e433}'] |
function CreateEnumObject (pvSource: Pointer; |
dwLoadOptions: TDXFileLoadOptions; |
var ppEnumObj: IDirectXFileEnumObject) : HResult; stdcall; |
function CreateSaveObject (szFileName: PChar; dwFileFormat: TDXFileFormat; |
var ppSaveObj: IDirectXFileSaveObject) : HResult; stdcall; |
function RegisterTemplates (pvData: Pointer; cbSize: DWORD) : HResult; stdcall; |
end; |
IDirectXFileEnumObject = interface (IUnknown) |
['{3d82ab41-62da-11cf-ab39-0020af71e433}'] |
function GetNextDataObject (var ppDataObj: IDirectXFileData) : HResult; stdcall; |
function GetDataObjectById |
(const rguid: TGUID; var ppDataObj: IDirectXFileData) : HResult; stdcall; |
function GetDataObjectByName |
(szName: PChar; var ppDataObj: IDirectXFileData) : HResult; stdcall; |
end; |
IDirectXFileSaveObject = interface (IUnknown) |
['{3d82ab42-62da-11cf-ab39-0020af71e433}'] |
function SaveTemplates |
(cTemplates: DWORD; var ppguidTemplates: PGUID) : HResult; stdcall; |
function CreateDataObject (const rguidTemplate: TGUID; szName: PChar; |
pguid: PGUID; cbSize: DWORD; pvData: Pointer; |
var ppDataObj: IDirectXFileData) : HResult; stdcall; |
function SaveData (pDataObj: IDirectXFileData) : HResult; stdcall; |
end; |
IDirectXFileObject = interface (IUnknown) |
['{3d82ab43-62da-11cf-ab39-0020af71e433}'] |
function GetName (pstrNameBuf: PChar; var dwBufLen: DWORD) : HResult; stdcall; |
function GetId (var pGuidBuf: TGUID) : HResult; stdcall; |
end; |
IDirectXFileData = interface (IDirectXFileObject) |
['{3d82ab44-62da-11cf-ab39-0020af71e433}'] |
function GetData |
(szMember: PChar; var pcbSize: DWORD; var ppvData: Pointer) : HResult; stdcall; |
function GetType (var ppguid: PGUID) : HResult; stdcall; |
function GetNextObject (var ppChildObj: IDirectXFileObject) : HResult; stdcall; |
function AddDataObject (pDataObj: IDirectXFileData) : HResult; stdcall; |
function AddDataReference (szRef: PChar; pguidRef: PGUID) : HResult; stdcall; |
function AddBinaryObject (szName: PChar; pguid: PGUID; szMimeType: PChar; |
pvData: Pointer; cbSize: DWORD) : HResult; stdcall; |
end; |
IDirectXFileDataReference = interface (IDirectXFileObject) |
['{3d82ab45-62da-11cf-ab39-0020af71e433}'] |
function Resolve (var ppDataObj: IDirectXFileData) : HResult; stdcall; |
end; |
IDirectXFileBinary = interface (IDirectXFileObject) |
['{3d82ab46-62da-11cf-ab39-0020af71e433}'] |
function GetSize (var pcbSize: DWORD) : HResult; stdcall; |
function GetMimeType (var pszMimeType: PChar) : HResult; stdcall; |
function Read(pvData: Pointer; cbSize: DWORD; pcbRead: PDWORD{?}) : HResult; stdcall; |
end; |
const |
(* |
* DirectXFile Object Class Id (for CoCreateInstance()) |
*) |
CLSID_CDirectXFile: TGUID = |
(D1:$4516ec43;D2:$8f20;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3)); |
(* |
* DirectX File Interface GUIDs. |
*) |
type |
IID_IDirectXFile = IDirectXFile; |
IID_IDirectXFileEnumObject = IDirectXFileEnumObject; |
IID_IDirectXFileSaveObject = IDirectXFileSaveObject; |
IID_IDirectXFileObject = IDirectXFileObject; |
IID_IDirectXFileData = IDirectXFileData; |
IID_IDirectXFileDataReference = IDirectXFileDataReference; |
IID_IDirectXFileBinary = IDirectXFileBinary; |
(* |
* DirectX File Header template's GUID. |
*) |
const |
TID_DXFILEHeader: TGUID = |
(D1:$3d82ab43;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
(* |
* DirectX File errors. |
*) |
const |
DXFILE_OK = 0; |
DXFILEERR_BADOBJECT = MAKE_D3DHRESULT or 850; |
DXFILEERR_BADVALUE = MAKE_D3DHRESULT or 851; |
DXFILEERR_BADTYPE = MAKE_D3DHRESULT or 852; |
DXFILEERR_BADSTREAMHANDLE = MAKE_D3DHRESULT or 853; |
DXFILEERR_BADALLOC = MAKE_D3DHRESULT or 854; |
DXFILEERR_NOTFOUND = MAKE_D3DHRESULT or 855; |
DXFILEERR_NOTDONEYET = MAKE_D3DHRESULT or 856; |
DXFILEERR_FILENOTFOUND = MAKE_D3DHRESULT or 857; |
DXFILEERR_RESOURCENOTFOUND = MAKE_D3DHRESULT or 858; |
DXFILEERR_URLNOTFOUND = MAKE_D3DHRESULT or 859; |
DXFILEERR_BADRESOURCE = MAKE_D3DHRESULT or 860; |
DXFILEERR_BADFILETYPE = MAKE_D3DHRESULT or 861; |
DXFILEERR_BADFILEVERSION = MAKE_D3DHRESULT or 862; |
DXFILEERR_BADFILEFLOATSIZE = MAKE_D3DHRESULT or 863; |
DXFILEERR_BADFILECOMPRESSIONTYPE = MAKE_D3DHRESULT or 864; |
DXFILEERR_BADFILE = MAKE_D3DHRESULT or 865; |
DXFILEERR_PARSEERROR = MAKE_D3DHRESULT or 866; |
DXFILEERR_NOTEMPLATE = MAKE_D3DHRESULT or 867; |
DXFILEERR_BADARRAYSIZE = MAKE_D3DHRESULT or 868; |
DXFILEERR_BADDATAREFERENCE = MAKE_D3DHRESULT or 869; |
DXFILEERR_INTERNALERROR = MAKE_D3DHRESULT or 870; |
DXFILEERR_NOMOREOBJECTS = MAKE_D3DHRESULT or 871; |
DXFILEERR_BADINTRINSICS = MAKE_D3DHRESULT or 872; |
DXFILEERR_NOMORESTREAMHANDLES = MAKE_D3DHRESULT or 873; |
DXFILEERR_NOMOREDATA = MAKE_D3DHRESULT or 874; |
DXFILEERR_BADCACHEFILE = MAKE_D3DHRESULT or 875; |
DXFILEERR_NOINTERNET = MAKE_D3DHRESULT or 876; |
{$IFDEF D3DRM} |
(* |
* API for creating IDirectXFile interface. |
*) |
var |
DirectXFileCreate : function |
(out lplpDirectXFile: IDirectXFile) : HResult; stdcall; |
(* D3DRM XFile templates in binary form *) |
const |
D3DRM_XTEMPLATE_BYTES = 3215; |
D3DRM_XTEMPLATES: array [0..D3DRM_XTEMPLATE_BYTES-1] of byte = ( |
$78, $6f, $66, $20, $30, $33, $30, $32, $62, |
$69, $6e, $20, $30, $30, $36, $34, $1f, 0, $1, |
0, $6, 0, 0, 0, $48, $65, $61, $64, $65, |
$72, $a, 0, $5, 0, $43, $ab, $82, $3d, $da, |
$62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, |
$33, $28, 0, $1, 0, $5, 0, 0, 0, $6d, |
$61, $6a, $6f, $72, $14, 0, $28, 0, $1, 0, |
$5, 0, 0, 0, $6d, $69, $6e, $6f, $72, $14, |
0, $29, 0, $1, 0, $5, 0, 0, 0, $66, |
$6c, $61, $67, $73, $14, 0, $b, 0, $1f, 0, |
$1, 0, $6, 0, 0, 0, $56, $65, $63, $74, |
$6f, $72, $a, 0, $5, 0, $5e, $ab, $82, $3d, |
$da, $62, $cf, $11, $ab, $39, 0, $20, $af, $71, |
$e4, $33, $2a, 0, $1, 0, $1, 0, 0, 0, |
$78, $14, 0, $2a, 0, $1, 0, $1, 0, 0, |
0, $79, $14, 0, $2a, 0, $1, 0, $1, 0, |
0, 0, $7a, $14, 0, $b, 0, $1f, 0, $1, |
0, $8, 0, 0, 0, $43, $6f, $6f, $72, $64, |
$73, $32, $64, $a, 0, $5, 0, $44, $3f, $f2, |
$f6, $86, $76, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $2a, 0, $1, 0, $1, 0, 0, |
0, $75, $14, 0, $2a, 0, $1, 0, $1, 0, |
0, 0, $76, $14, 0, $b, 0, $1f, 0, $1, |
0, $9, 0, 0, 0, $4d, $61, $74, $72, $69, |
$78, $34, $78, $34, $a, 0, $5, 0, $45, $3f, |
$f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, |
$33, $35, $94, $a3, $34, 0, $2a, 0, $1, 0, |
$6, 0, 0, 0, $6d, $61, $74, $72, $69, $78, |
$e, 0, $3, 0, $10, 0, 0, 0, $f, 0, |
$14, 0, $b, 0, $1f, 0, $1, 0, $9, 0, |
0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, |
$41, $a, 0, $5, 0, $e0, $44, $ff, $35, $7c, |
$6c, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, |
$a3, $2a, 0, $1, 0, $3, 0, 0, 0, $72, |
$65, $64, $14, 0, $2a, 0, $1, 0, $5, 0, |
0, 0, $67, $72, $65, $65, $6e, $14, 0, $2a, |
0, $1, 0, $4, 0, 0, 0, $62, $6c, $75, |
$65, $14, 0, $2a, 0, $1, 0, $5, 0, 0, |
0, $61, $6c, $70, $68, $61, $14, 0, $b, 0, |
$1f, 0, $1, 0, $8, 0, 0, 0, $43, $6f, |
$6c, $6f, $72, $52, $47, $42, $a, 0, $5, 0, |
$81, $6e, $e1, $d3, $35, $78, $cf, $11, $8f, $52, |
0, $40, $33, $35, $94, $a3, $2a, 0, $1, 0, |
$3, 0, 0, 0, $72, $65, $64, $14, 0, $2a, |
0, $1, 0, $5, 0, 0, 0, $67, $72, $65, |
$65, $6e, $14, 0, $2a, 0, $1, 0, $4, 0, |
0, 0, $62, $6c, $75, $65, $14, 0, $b, 0, |
$1f, 0, $1, 0, $c, 0, 0, 0, $49, $6e, |
$64, $65, $78, $65, $64, $43, $6f, $6c, $6f, $72, |
$a, 0, $5, 0, $20, $b8, $30, $16, $42, $78, |
$cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
$29, 0, $1, 0, $5, 0, 0, 0, $69, $6e, |
$64, $65, $78, $14, 0, $1, 0, $9, 0, 0, |
0, $43, $6f, $6c, $6f, $72, $52, $47, $42, $41, |
$1, 0, $a, 0, 0, 0, $69, $6e, $64, $65, |
$78, $43, $6f, $6c, $6f, $72, $14, 0, $b, 0, |
$1f, 0, $1, 0, $7, 0, 0, 0, $42, $6f, |
$6f, $6c, $65, $61, $6e, $a, 0, $5, 0, $a0, |
$a6, $7d, $53, $37, $ca, $d0, $11, $94, $1c, 0, |
$80, $c8, $c, $fa, $7b, $29, 0, $1, 0, $9, |
0, 0, 0, $74, $72, $75, $65, $66, $61, $6c, |
$73, $65, $14, 0, $b, 0, $1f, 0, $1, 0, |
$9, 0, 0, 0, $42, $6f, $6f, $6c, $65, $61, |
$6e, $32, $64, $a, 0, $5, 0, $63, $ae, $85, |
$48, $e8, $78, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $1, 0, $7, 0, 0, 0, $42, |
$6f, $6f, $6c, $65, $61, $6e, $1, 0, $1, 0, |
0, 0, $75, $14, 0, $1, 0, $7, 0, 0, |
0, $42, $6f, $6f, $6c, $65, $61, $6e, $1, 0, |
$1, 0, 0, 0, $76, $14, 0, $b, 0, $1f, |
0, $1, 0, $c, 0, 0, 0, $4d, $61, $74, |
$65, $72, $69, $61, $6c, $57, $72, $61, $70, $a, |
0, $5, 0, $60, $ae, $85, $48, $e8, $78, $cf, |
$11, $8f, $52, 0, $40, $33, $35, $94, $a3, $1, |
0, $7, 0, 0, 0, $42, $6f, $6f, $6c, $65, |
$61, $6e, $1, 0, $1, 0, 0, 0, $75, $14, |
0, $1, 0, $7, 0, 0, 0, $42, $6f, $6f, |
$6c, $65, $61, $6e, $1, 0, $1, 0, 0, 0, |
$76, $14, 0, $b, 0, $1f, 0, $1, 0, $f, |
0, 0, 0, $54, $65, $78, $74, $75, $72, $65, |
$46, $69, $6c, $65, $6e, $61, $6d, $65, $a, 0, |
$5, 0, $e1, $90, $27, $a4, $10, $78, $cf, $11, |
$8f, $52, 0, $40, $33, $35, $94, $a3, $31, 0, |
$1, 0, $8, 0, 0, 0, $66, $69, $6c, $65, |
$6e, $61, $6d, $65, $14, 0, $b, 0, $1f, 0, |
$1, 0, $8, 0, 0, 0, $4d, $61, $74, $65, |
$72, $69, $61, $6c, $a, 0, $5, 0, $4d, $ab, |
$82, $3d, $da, $62, $cf, $11, $ab, $39, 0, $20, |
$af, $71, $e4, $33, $1, 0, $9, 0, 0, 0, |
$43, $6f, $6c, $6f, $72, $52, $47, $42, $41, $1, |
0, $9, 0, 0, 0, $66, $61, $63, $65, $43, |
$6f, $6c, $6f, $72, $14, 0, $2a, 0, $1, 0, |
$5, 0, 0, 0, $70, $6f, $77, $65, $72, $14, |
0, $1, 0, $8, 0, 0, 0, $43, $6f, $6c, |
$6f, $72, $52, $47, $42, $1, 0, $d, 0, 0, |
0, $73, $70, $65, $63, $75, $6c, $61, $72, $43, |
$6f, $6c, $6f, $72, $14, 0, $1, 0, $8, 0, |
0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, |
$1, 0, $d, 0, 0, 0, $65, $6d, $69, $73, |
$73, $69, $76, $65, $43, $6f, $6c, $6f, $72, $14, |
0, $e, 0, $12, 0, $12, 0, $12, 0, $f, |
0, $b, 0, $1f, 0, $1, 0, $8, 0, 0, |
0, $4d, $65, $73, $68, $46, $61, $63, $65, $a, |
0, $5, 0, $5f, $ab, $82, $3d, $da, $62, $cf, |
$11, $ab, $39, 0, $20, $af, $71, $e4, $33, $29, |
0, $1, 0, $12, 0, 0, 0, $6e, $46, $61, |
$63, $65, $56, $65, $72, $74, $65, $78, $49, $6e, |
$64, $69, $63, $65, $73, $14, 0, $34, 0, $29, |
0, $1, 0, $11, 0, 0, 0, $66, $61, $63, |
$65, $56, $65, $72, $74, $65, $78, $49, $6e, $64, |
$69, $63, $65, $73, $e, 0, $1, 0, $12, 0, |
0, 0, $6e, $46, $61, $63, $65, $56, $65, $72, |
$74, $65, $78, $49, $6e, $64, $69, $63, $65, $73, |
$f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, |
$d, 0, 0, 0, $4d, $65, $73, $68, $46, $61, |
$63, $65, $57, $72, $61, $70, $73, $a, 0, $5, |
0, $c0, $c5, $1e, $ed, $a8, $c0, $d0, $11, $94, |
$1c, 0, $80, $c8, $c, $fa, $7b, $29, 0, $1, |
0, $f, 0, 0, 0, $6e, $46, $61, $63, $65, |
$57, $72, $61, $70, $56, $61, $6c, $75, $65, $73, |
$14, 0, $34, 0, $1, 0, $9, 0, 0, 0, |
$42, $6f, $6f, $6c, $65, $61, $6e, $32, $64, $1, |
0, $e, 0, 0, 0, $66, $61, $63, $65, $57, |
$72, $61, $70, $56, $61, $6c, $75, $65, $73, $e, |
0, $1, 0, $f, 0, 0, 0, $6e, $46, $61, |
$63, $65, $57, $72, $61, $70, $56, $61, $6c, $75, |
$65, $73, $f, 0, $14, 0, $b, 0, $1f, 0, |
$1, 0, $11, 0, 0, 0, $4d, $65, $73, $68, |
$54, $65, $78, $74, $75, $72, $65, $43, $6f, $6f, |
$72, $64, $73, $a, 0, $5, 0, $40, $3f, $f2, |
$f6, $86, $76, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $29, 0, $1, 0, $e, 0, 0, |
0, $6e, $54, $65, $78, $74, $75, $72, $65, $43, |
$6f, $6f, $72, $64, $73, $14, 0, $34, 0, $1, |
0, $8, 0, 0, 0, $43, $6f, $6f, $72, $64, |
$73, $32, $64, $1, 0, $d, 0, 0, 0, $74, |
$65, $78, $74, $75, $72, $65, $43, $6f, $6f, $72, |
$64, $73, $e, 0, $1, 0, $e, 0, 0, 0, |
$6e, $54, $65, $78, $74, $75, $72, $65, $43, $6f, |
$6f, $72, $64, $73, $f, 0, $14, 0, $b, 0, |
$1f, 0, $1, 0, $10, 0, 0, 0, $4d, $65, |
$73, $68, $4d, $61, $74, $65, $72, $69, $61, $6c, |
$4c, $69, $73, $74, $a, 0, $5, 0, $42, $3f, |
$f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, |
$33, $35, $94, $a3, $29, 0, $1, 0, $a, 0, |
0, 0, $6e, $4d, $61, $74, $65, $72, $69, $61, |
$6c, $73, $14, 0, $29, 0, $1, 0, $c, 0, |
0, 0, $6e, $46, $61, $63, $65, $49, $6e, $64, |
$65, $78, $65, $73, $14, 0, $34, 0, $29, 0, |
$1, 0, $b, 0, 0, 0, $66, $61, $63, $65, |
$49, $6e, $64, $65, $78, $65, $73, $e, 0, $1, |
0, $c, 0, 0, 0, $6e, $46, $61, $63, $65, |
$49, $6e, $64, $65, $78, $65, $73, $f, 0, $14, |
0, $e, 0, $1, 0, $8, 0, 0, 0, $4d, |
$61, $74, $65, $72, $69, $61, $6c, $f, 0, $b, |
0, $1f, 0, $1, 0, $b, 0, 0, 0, $4d, |
$65, $73, $68, $4e, $6f, $72, $6d, $61, $6c, $73, |
$a, 0, $5, 0, $43, $3f, $f2, $f6, $86, $76, |
$cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
$29, 0, $1, 0, $8, 0, 0, 0, $6e, $4e, |
$6f, $72, $6d, $61, $6c, $73, $14, 0, $34, 0, |
$1, 0, $6, 0, 0, 0, $56, $65, $63, $74, |
$6f, $72, $1, 0, $7, 0, 0, 0, $6e, $6f, |
$72, $6d, $61, $6c, $73, $e, 0, $1, 0, $8, |
0, 0, 0, $6e, $4e, $6f, $72, $6d, $61, $6c, |
$73, $f, 0, $14, 0, $29, 0, $1, 0, $c, |
0, 0, 0, $6e, $46, $61, $63, $65, $4e, $6f, |
$72, $6d, $61, $6c, $73, $14, 0, $34, 0, $1, |
0, $8, 0, 0, 0, $4d, $65, $73, $68, $46, |
$61, $63, $65, $1, 0, $b, 0, 0, 0, $66, |
$61, $63, $65, $4e, $6f, $72, $6d, $61, $6c, $73, |
$e, 0, $1, 0, $c, 0, 0, 0, $6e, $46, |
$61, $63, $65, $4e, $6f, $72, $6d, $61, $6c, $73, |
$f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, |
$10, 0, 0, 0, $4d, $65, $73, $68, $56, $65, |
$72, $74, $65, $78, $43, $6f, $6c, $6f, $72, $73, |
$a, 0, $5, 0, $21, $b8, $30, $16, $42, $78, |
$cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
$29, 0, $1, 0, $d, 0, 0, 0, $6e, $56, |
$65, $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, |
$73, $14, 0, $34, 0, $1, 0, $c, 0, 0, |
0, $49, $6e, $64, $65, $78, $65, $64, $43, $6f, |
$6c, $6f, $72, $1, 0, $c, 0, 0, 0, $76, |
$65, $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, |
$73, $e, 0, $1, 0, $d, 0, 0, 0, $6e, |
$56, $65, $72, $74, $65, $78, $43, $6f, $6c, $6f, |
$72, $73, $f, 0, $14, 0, $b, 0, $1f, 0, |
$1, 0, $4, 0, 0, 0, $4d, $65, $73, $68, |
$a, 0, $5, 0, $44, $ab, $82, $3d, $da, $62, |
$cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, |
$29, 0, $1, 0, $9, 0, 0, 0, $6e, $56, |
$65, $72, $74, $69, $63, $65, $73, $14, 0, $34, |
0, $1, 0, $6, 0, 0, 0, $56, $65, $63, |
$74, $6f, $72, $1, 0, $8, 0, 0, 0, $76, |
$65, $72, $74, $69, $63, $65, $73, $e, 0, $1, |
0, $9, 0, 0, 0, $6e, $56, $65, $72, $74, |
$69, $63, $65, $73, $f, 0, $14, 0, $29, 0, |
$1, 0, $6, 0, 0, 0, $6e, $46, $61, $63, |
$65, $73, $14, 0, $34, 0, $1, 0, $8, 0, |
0, 0, $4d, $65, $73, $68, $46, $61, $63, $65, |
$1, 0, $5, 0, 0, 0, $66, $61, $63, $65, |
$73, $e, 0, $1, 0, $6, 0, 0, 0, $6e, |
$46, $61, $63, $65, $73, $f, 0, $14, 0, $e, |
0, $12, 0, $12, 0, $12, 0, $f, 0, $b, |
0, $1f, 0, $1, 0, $14, 0, 0, 0, $46, |
$72, $61, $6d, $65, $54, $72, $61, $6e, $73, $66, |
$6f, $72, $6d, $4d, $61, $74, $72, $69, $78, $a, |
0, $5, 0, $41, $3f, $f2, $f6, $86, $76, $cf, |
$11, $8f, $52, 0, $40, $33, $35, $94, $a3, $1, |
0, $9, 0, 0, 0, $4d, $61, $74, $72, $69, |
$78, $34, $78, $34, $1, 0, $b, 0, 0, 0, |
$66, $72, $61, $6d, $65, $4d, $61, $74, $72, $69, |
$78, $14, 0, $b, 0, $1f, 0, $1, 0, $5, |
0, 0, 0, $46, $72, $61, $6d, $65, $a, 0, |
$5, 0, $46, $ab, $82, $3d, $da, $62, $cf, $11, |
$ab, $39, 0, $20, $af, $71, $e4, $33, $e, 0, |
$12, 0, $12, 0, $12, 0, $f, 0, $b, 0, |
$1f, 0, $1, 0, $9, 0, 0, 0, $46, $6c, |
$6f, $61, $74, $4b, $65, $79, $73, $a, 0, $5, |
0, $a9, $46, $dd, $10, $5b, $77, $cf, $11, $8f, |
$52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, |
0, $7, 0, 0, 0, $6e, $56, $61, $6c, $75, |
$65, $73, $14, 0, $34, 0, $2a, 0, $1, 0, |
$6, 0, 0, 0, $76, $61, $6c, $75, $65, $73, |
$e, 0, $1, 0, $7, 0, 0, 0, $6e, $56, |
$61, $6c, $75, $65, $73, $f, 0, $14, 0, $b, |
0, $1f, 0, $1, 0, $e, 0, 0, 0, $54, |
$69, $6d, $65, $64, $46, $6c, $6f, $61, $74, $4b, |
$65, $79, $73, $a, 0, $5, 0, $80, $b1, $6, |
$f4, $3b, $7b, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $29, 0, $1, 0, $4, 0, 0, |
0, $74, $69, $6d, $65, $14, 0, $1, 0, $9, |
0, 0, 0, $46, $6c, $6f, $61, $74, $4b, $65, |
$79, $73, $1, 0, $6, 0, 0, 0, $74, $66, |
$6b, $65, $79, $73, $14, 0, $b, 0, $1f, 0, |
$1, 0, $c, 0, 0, 0, $41, $6e, $69, $6d, |
$61, $74, $69, $6f, $6e, $4b, $65, $79, $a, 0, |
$5, 0, $a8, $46, $dd, $10, $5b, $77, $cf, $11, |
$8f, $52, 0, $40, $33, $35, $94, $a3, $29, 0, |
$1, 0, $7, 0, 0, 0, $6b, $65, $79, $54, |
$79, $70, $65, $14, 0, $29, 0, $1, 0, $5, |
0, 0, 0, $6e, $4b, $65, $79, $73, $14, 0, |
$34, 0, $1, 0, $e, 0, 0, 0, $54, $69, |
$6d, $65, $64, $46, $6c, $6f, $61, $74, $4b, $65, |
$79, $73, $1, 0, $4, 0, 0, 0, $6b, $65, |
$79, $73, $e, 0, $1, 0, $5, 0, 0, 0, |
$6e, $4b, $65, $79, $73, $f, 0, $14, 0, $b, |
0, $1f, 0, $1, 0, $10, 0, 0, 0, $41, |
$6e, $69, $6d, $61, $74, $69, $6f, $6e, $4f, $70, |
$74, $69, $6f, $6e, $73, $a, 0, $5, 0, $c0, |
$56, $bf, $e2, $f, $84, $cf, $11, $8f, $52, 0, |
$40, $33, $35, $94, $a3, $29, 0, $1, 0, $a, |
0, 0, 0, $6f, $70, $65, $6e, $63, $6c, $6f, |
$73, $65, $64, $14, 0, $29, 0, $1, 0, $f, |
0, 0, 0, $70, $6f, $73, $69, $74, $69, $6f, |
$6e, $71, $75, $61, $6c, $69, $74, $79, $14, 0, |
$b, 0, $1f, 0, $1, 0, $9, 0, 0, 0, |
$41, $6e, $69, $6d, $61, $74, $69, $6f, $6e, $a, |
0, $5, 0, $4f, $ab, $82, $3d, $da, $62, $cf, |
$11, $ab, $39, 0, $20, $af, $71, $e4, $33, $e, |
0, $12, 0, $12, 0, $12, 0, $f, 0, $b, |
0, $1f, 0, $1, 0, $c, 0, 0, 0, $41, |
$6e, $69, $6d, $61, $74, $69, $6f, $6e, $53, $65, |
$74, $a, 0, $5, 0, $50, $ab, $82, $3d, $da, |
$62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, |
$33, $e, 0, $1, 0, $9, 0, 0, 0, $41, |
$6e, $69, $6d, $61, $74, $69, $6f, $6e, $f, 0, |
$b, 0, $1f, 0, $1, 0, $a, 0, 0, 0, |
$49, $6e, $6c, $69, $6e, $65, $44, $61, $74, $61, |
$a, 0, $5, 0, $a0, $ee, $23, $3a, $b1, $94, |
$d0, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, |
$e, 0, $1, 0, $6, 0, 0, 0, $42, $49, |
$4e, $41, $52, $59, $f, 0, $b, 0, $1f, 0, |
$1, 0, $3, 0, 0, 0, $55, $72, $6c, $a, |
0, $5, 0, $a1, $ee, $23, $3a, $b1, $94, $d0, |
$11, $ab, $39, 0, $20, $af, $71, $e4, $33, $29, |
0, $1, 0, $5, 0, 0, 0, $6e, $55, $72, |
$6c, $73, $14, 0, $34, 0, $31, 0, $1, 0, |
$4, 0, 0, 0, $75, $72, $6c, $73, $e, 0, |
$1, 0, $5, 0, 0, 0, $6e, $55, $72, $6c, |
$73, $f, 0, $14, 0, $b, 0, $1f, 0, $1, |
0, $f, 0, 0, 0, $50, $72, $6f, $67, $72, |
$65, $73, $73, $69, $76, $65, $4d, $65, $73, $68, |
$a, 0, $5, 0, $60, $c3, $63, $8a, $7d, $99, |
$d0, $11, $94, $1c, 0, $80, $c8, $c, $fa, $7b, |
$e, 0, $1, 0, $3, 0, 0, 0, $55, $72, |
$6c, $13, 0, $1, 0, $a, 0, 0, 0, $49, |
$6e, $6c, $69, $6e, $65, $44, $61, $74, $61, $f, |
0, $b, 0, $1f, 0, $1, 0, $4, 0, 0, |
0, $47, $75, $69, $64, $a, 0, $5, 0, $e0, |
$90, $27, $a4, $10, $78, $cf, $11, $8f, $52, 0, |
$40, $33, $35, $94, $a3, $29, 0, $1, 0, $5, |
0, 0, 0, $64, $61, $74, $61, $31, $14, 0, |
$28, 0, $1, 0, $5, 0, 0, 0, $64, $61, |
$74, $61, $32, $14, 0, $28, 0, $1, 0, $5, |
0, 0, 0, $64, $61, $74, $61, $33, $14, 0, |
$34, 0, $2d, 0, $1, 0, $5, 0, 0, 0, |
$64, $61, $74, $61, $34, $e, 0, $3, 0, $8, |
0, 0, 0, $f, 0, $14, 0, $b, 0, $1f, |
0, $1, 0, $e, 0, 0, 0, $53, $74, $72, |
$69, $6e, $67, $50, $72, $6f, $70, $65, $72, $74, |
$79, $a, 0, $5, 0, $e0, $21, $f, $7f, $e1, |
$bf, $d1, $11, $82, $c0, 0, $a0, $c9, $69, $72, |
$71, $31, 0, $1, 0, $3, 0, 0, 0, $6b, |
$65, $79, $14, 0, $31, 0, $1, 0, $5, 0, |
0, 0, $76, $61, $6c, $75, $65, $14, 0, $b, |
0, $1f, 0, $1, 0, $b, 0, 0, 0, $50, |
$72, $6f, $70, $65, $72, $74, $79, $42, $61, $67, |
$a, 0, $5, 0, $e1, $21, $f, $7f, $e1, $bf, |
$d1, $11, $82, $c0, 0, $a0, $c9, $69, $72, $71, |
$e, 0, $1, 0, $e, 0, 0, 0, $53, $74, |
$72, $69, $6e, $67, $50, $72, $6f, $70, $65, $72, |
$74, $79, $f, 0, $b, 0, $1f, 0, $1, 0, |
$e, 0, 0, 0, $45, $78, $74, $65, $72, $6e, |
$61, $6c, $56, $69, $73, $75, $61, $6c, $a, 0, |
$5, 0, $a0, $6a, $11, $98, $ba, $bd, $d1, $11, |
$82, $c0, 0, $a0, $c9, $69, $72, $71, $1, 0, |
$4, 0, 0, 0, $47, $75, $69, $64, $1, 0, |
$12, 0, 0, 0, $67, $75, $69, $64, $45, $78, |
$74, $65, $72, $6e, $61, $6c, $56, $69, $73, $75, |
$61, $6c, $14, 0, $e, 0, $12, 0, $12, 0, |
$12, 0, $f, 0, $b, 0); |
//--------------- |
//Direct3DRM file |
(*==========================================================================; |
* |
* Copyright (C) 1994-1997 Microsoft Corporation. All Rights Reserved. |
* |
* Files: D3DRMDef.h D3DRMObj.h D3DRM.h D3DRMWin.h RMXFGUID.h RMXFTmpl.h |
* Content: Direct3D Retained Mode include files |
* |
* DirectX 7.0 Delphi adaptation by Erik Unger |
* |
* Modified: 10-Sep-2000 |
* |
* Download: http://www.delphi-jedi.org/DelphiGraphics/ |
* E-Mail: DelphiDirectX@next-reality.com |
* |
* |
***************************************************************************) |
var |
D3DRMDLL : HMODULE = 0; |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: d3drmdef.h |
5690,64 → 9288,37 |
* |
***************************************************************************) |
{ TD3DRMVector4D structure } |
type |
PD3DRMVector4D = ^TD3DRMVector4D; |
TD3DRMVector4D = record |
TD3DRMVector4D = packed record |
x, y, z, w: TD3DValue; |
end; |
D3DRMVECTOR4D = TD3DRMVector4D; |
LPD3DRMVECTOR4D = PD3DRMVector4D; |
{ TD3DRMMatrix4D structure } |
PD3DRMMatrix4D = ^TD3DRMMatrix4D; |
TD3DRMMatrix4D = array[0..3, 0..3] of TD3DValue; |
D3DRMMATRIX4D = TD3DRMMatrix4D; |
{ TD3DRMQuaternion structure } |
PD3DRMQuaternion = ^TD3DRMQuaternion; |
TD3DRMQuaternion = record |
TD3DRMQuaternion = packed record |
s: TD3DValue; |
v: TD3DVector; |
end; |
D3DRMQUATERNION = TD3DRMQuaternion; |
LPD3DRMQUATERNION = PD3DRMQUATERNION; |
{ TD3DRMRay structure } |
PD3DRMRay = ^TD3DRMRay; |
TD3DRMRay = record |
TD3DRMRay = packed record |
dvDir: TD3DVector; |
dvPos: TD3DVector; |
end; |
D3DRMRAY = TD3DRMRay; |
LPD3DRMRAY = PD3DRMRay; |
{ TD3DRMBox structure } |
PD3DRMBox = ^TD3DRMBox; |
TD3DRMBox = record |
TD3DRMBox = packed record |
min, max: TD3DVector; |
end; |
D3DRMBOX = TD3DRMBox; |
LPD3DRMBOX = PD3DRMBox; |
TD3DRMWrapCallback = procedure (var lpD3DVector: TD3DVector; |
var lpU, lpV: Integer; var lpD3DRMVA, lpD3DRMVB: TD3DVector; lpArg: |
Pointer); stdcall; // unused ? |
{ TD3DRMWrapCallback } |
TD3DRMWrapCallback = procedure(var lpD3DVector: TD3DVector; var lpU: Integer; |
var lpV: Integer; var lpD3DRMVA: TD3DVector; lpD3DRMVB: TD3DVector; |
lpArg: Pointer); stdcall; |
D3DRMWRAPCALLBACK = TD3DRMWrapCallback; |
{ TD3DRMLightType } |
PD3DRMLightType = ^TD3DRMLightType; // is it 16 or 32 bit ? |
TD3DRMLightType = ( |
D3DRMLIGHT_AMBIENT, |
D3DRMLIGHT_POINT, |
5756,13 → 9327,9 |
D3DRMLIGHT_PARALLELPOINT |
); |
D3DRMLIGHTTYPE = TD3DRMLightType; |
PD3DRMShadeMode = ^TD3DRMShadeMode; |
TD3DRMShadeMode = WORD; |
{ TD3DRMShadeMode } |
TD3DRMShadeMode = Word; |
D3DRMSHADEMODE = TD3DRMShadeMode; |
const |
D3DRMSHADE_FLAT = 0; |
D3DRMSHADE_GOURAUD = 1; |
5770,11 → 9337,9 |
D3DRMSHADE_MASK = 7; |
D3DRMSHADE_MAX = 8; |
{ TD3DRMLightMode } |
type |
TD3DRMLightMode = Word; |
D3DRMLIGHTMODE = TD3DRMLightMode; |
PD3DRMLightMode = ^TD3DRMLightMode; |
TD3DRMLightMode = WORD; |
const |
D3DRMLIGHT_OFF = 0 * D3DRMSHADE_MAX; |
5782,11 → 9347,9 |
D3DRMLIGHT_MASK = 7 * D3DRMSHADE_MAX; |
D3DRMLIGHT_MAX = 8 * D3DRMSHADE_MAX; |
{ TD3DRMFillMode } |
type |
TD3DRMFillMode = Word; |
D3DRMFILLMODE = TD3DRMFillMode; |
PD3DRMFillMode = ^TD3DRMFillMode; |
TD3DRMFillMode = WORD; |
const |
D3DRMFILL_POINTS = 0 * D3DRMLIGHT_MAX; |
5795,60 → 9358,59 |
D3DRMFILL_MASK = 7 * D3DRMLIGHT_MAX; |
D3DRMFILL_MAX = 8 * D3DRMLIGHT_MAX; |
{ TD3DRMRenderQuality } |
type |
PD3DRMRenderQuality = ^TD3DRMRenderQuality; |
TD3DRMRenderQuality = DWORD; |
D3DRMRENDERQUALITY = TD3DRMRenderQuality; |
const |
D3DRMRENDER_WIREFRAME = D3DRMSHADE_FLAT + D3DRMLIGHT_OFF + D3DRMFILL_WIREFRAME; |
D3DRMRENDER_UNLITFLAT = D3DRMSHADE_FLAT + D3DRMLIGHT_OFF + D3DRMFILL_SOLID; |
D3DRMRENDER_FLAT = D3DRMSHADE_FLAT + D3DRMLIGHT_ON + D3DRMFILL_SOLID; |
D3DRMRENDER_GOURAUD = D3DRMSHADE_GOURAUD + D3DRMLIGHT_ON + D3DRMFILL_SOLID; |
D3DRMRENDER_PHONG = D3DRMSHADE_PHONG + D3DRMLIGHT_ON + D3DRMFILL_SOLID; |
D3DRMRENDER_WIREFRAME = |
(D3DRMSHADE_FLAT + D3DRMLIGHT_OFF + D3DRMFILL_WIREFRAME); |
D3DRMRENDER_UNLITFLAT = |
(D3DRMSHADE_FLAT + D3DRMLIGHT_OFF + D3DRMFILL_SOLID); |
D3DRMRENDER_FLAT = |
(D3DRMSHADE_FLAT + D3DRMLIGHT_ON + D3DRMFILL_SOLID); |
D3DRMRENDER_GOURAUD = |
(D3DRMSHADE_GOURAUD + D3DRMLIGHT_ON + D3DRMFILL_SOLID); |
D3DRMRENDER_PHONG = |
(D3DRMSHADE_PHONG + D3DRMLIGHT_ON + D3DRMFILL_SOLID); |
D3DRMRENDERMODE_BLENDEDTRANSPARENCY = 1; |
D3DRMRENDERMODE_SORTEDTRANSPARENCY = 2; |
D3DRMRENDERMODE_LIGHTINMODELSPACE = 8; |
D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR = 16; |
D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE = 32; |
{ TD3DRMTextureQuality } |
type |
PD3DRMTextureQuality = ^TD3DRMTextureQuality; |
TD3DRMTextureQuality = ( |
D3DRMTEXTURE_NEAREST, // choose nearest texel |
D3DRMTEXTURE_LINEAR, // interpolate 4 texels |
D3DRMTEXTURE_MIPNEAREST, // nearest texel in nearest mipmap |
D3DRMTEXTURE_MIPLINEAR, // interpolate 2 texels from 2 mipmaps |
D3DRMTEXTURE_LINEARMIPNEAREST, // interpolate 4 texels in nearest mipmap |
D3DRMTEXTURE_LINEARMIPLINEAR // interpolate 8 texels from 2 mipmaps |
D3DRMTEXTURE_NEAREST, (* choose nearest texel *) |
D3DRMTEXTURE_LINEAR, (* interpolate 4 texels *) |
D3DRMTEXTURE_MIPNEAREST, (* nearest texel in nearest mipmap *) |
D3DRMTEXTURE_MIPLINEAR, (* interpolate 2 texels from 2 mipmaps *) |
D3DRMTEXTURE_LINEARMIPNEAREST, (* interpolate 4 texels in nearest mipmap *) |
D3DRMTEXTURE_LINEARMIPLINEAR (* interpolate 8 texels from 2 mipmaps *) |
); |
D3DRMTEXTUREQUALITY = TD3DRMTextureQuality; |
{ Texture flags } |
const |
D3DRMTEXTURE_FORCERESIDENT = $00000001; // texture should be kept in video memory |
D3DRMTEXTURE_STATIC = $00000002; // texture will not change |
D3DRMTEXTURE_DOWNSAMPLEPOINT = $00000004; // point filtering should be used when downsampling |
D3DRMTEXTURE_DOWNSAMPLEBILINEAR = $00000008; // bilinear filtering should be used when downsampling |
D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH = $00000010; // reduce bit depth when downsampling |
D3DRMTEXTURE_DOWNSAMPLENONE = $00000020; // texture should never be downsampled |
D3DRMTEXTURE_CHANGEDPIXELS = $00000040; // pixels have changed |
D3DRMTEXTURE_CHANGEDPALETTE = $00000080; // palette has changed |
D3DRMTEXTURE_INVALIDATEONLY = $00000100; // dirty regions are invalid |
(* |
* Texture flags |
*) |
D3DRMTEXTURE_FORCERESIDENT = $00000001; (* texture should be kept in video memory *) |
D3DRMTEXTURE_STATIC = $00000002; (* texture will not change *) |
D3DRMTEXTURE_DOWNSAMPLEPOINT = $00000004; (* point filtering should be used when downsampling *) |
D3DRMTEXTURE_DOWNSAMPLEBILINEAR = $00000008; (* bilinear filtering should be used when downsampling *) |
D3DRMTEXTURE_DOWNSAMPLEREDUCEDEPTH = $00000010; (* reduce bit depth when downsampling *) |
D3DRMTEXTURE_DOWNSAMPLENONE = $00000020; (* texture should never be downsampled *) |
D3DRMTEXTURE_CHANGEDPIXELS = $00000040; (* pixels have changed *) |
D3DRMTEXTURE_CHANGEDPALETTE = $00000080; (* palette has changed *) |
D3DRMTEXTURE_INVALIDATEONLY = $00000100; (* dirty regions are invalid *) |
{ Shadow flags } |
(* |
* Shadow flags |
*) |
D3DRMSHADOW_TRUEALPHA = $00000001; (* shadow should render without artifacts when true alpha is on *) |
const |
D3DRMSHADOW_TRUEALPHA = $00000001; // shadow should render without artifacts when true alpha is on |
{ TD3DRMCombineType } |
type |
PD3DRMCombineType = ^TD3DRMCombineType; |
TD3DRMCombineType = ( |
D3DRMCOMBINE_REPLACE, |
D3DRMCOMBINE_BEFORE, |
5855,40 → 9417,26 |
D3DRMCOMBINE_AFTER |
); |
D3DRMCOMBINETYPE = TD3DRMCombineType; |
{ TD3DRMColorModel } |
PD3DRMColorModel = ^TD3DRMColorModel; |
TD3DRMColorModel = TD3DColorModel; |
D3DRMCOLORMODEL = TD3DRMColorModel; |
{ TD3DRMPaletteFlags } |
PD3DRMPaletteFlags = ^TD3DRMPaletteFlags; |
TD3DRMPaletteFlags = ( |
D3DRMPALETTE_FREE, // renderer may use this entry freely |
D3DRMPALETTE_READONLY, // fixed but may be used by renderer |
D3DRMPALETTE_RESERVED // may not be used by renderer |
D3DRMPALETTE_FREE, (* renderer may use this entry freely *) |
D3DRMPALETTE_READONLY, (* fixed but may be used by renderer *) |
D3DRMPALETTE_RESERVED (* may not be used by renderer *) |
); |
D3DRMPALETTEFLAGS = TD3DRMPaletteFlags; |
{ TD3DRMPaletteEntry structure } |
PD3DRMPaletteEntry = ^TD3DRMPaletteEntry; |
TD3DRMPaletteEntry = record |
red: Byte; // 0 .. 255 |
green: Byte; // 0 .. 255 |
blue: Byte; // 0 .. 255 |
flags: Byte; // one of TD3DRMPaletteFlags |
TD3DRMPaletteEntry = packed record |
red: Byte; (* 0 .. 255 *) |
green: Byte; (* 0 .. 255 *) |
blue: Byte; (* 0 .. 255 *) |
flags: Byte; (* one of D3DRMPALETTEFLAGS *) |
end; |
D3DRMPALETTEENTRY = TD3DRMPaletteEntry; |
LPD3DRMPALETTEENTRY = PD3DRMPaletteEntry; |
{ TD3DRMImage structure } |
PD3DRMImage = ^TD3DRMImage; |
TD3DRMImage = record |
TD3DRMImage = packed record |
width, height: Integer; (* width and height in pixels *) |
aspectx, aspecty: Integer; (* aspect ratio for non-square pixels *) |
depth: Integer; (* bits per pixel *) |
5902,10 → 9450,10 |
buffer2: Pointer; (* second rendering buffer for double |
buffering, set to NULL for single |
buffering. *) |
red_mask: Longint; |
green_mask: Longint; |
blue_mask: Longint; |
alpha_mask: Longint; (* if rgb is true, these are masks for |
red_mask: DWORD; |
green_mask: DWORD; |
blue_mask: DWORD; |
alpha_mask: DWORD; (* if rgb is true, these are masks for |
the red, green and blue parts of a |
pixel. Otherwise, these are masks |
for the significant bits of the |
5920,11 → 9468,7 |
elements. *) |
end; |
D3DRMIMAGE = TD3DRMImage; |
LPD3DRMIMAGE = PD3DRMImage; |
{ TD3DRMWrapType } |
PD3DRMWrapType = ^TD3DRMWrapType; |
TD3DRMWrapType = ( |
D3DRMWRAP_FLAT, |
D3DRMWRAP_CYLINDER, |
5934,31 → 9478,29 |
D3DRMWRAP_BOX |
); |
D3DRMWRAPTYPE = TD3DRMWrapType; |
const |
D3DRMWIREFRAME_CULL = 1; // cull backfaces |
D3DRMWIREFRAME_HIDDENLINE = 2; // lines are obscured by closer objects |
D3DRMWIREFRAME_CULL = 1; (* cull backfaces *) |
D3DRMWIREFRAME_HIDDENLINE = 2; (* lines are obscured by closer objects *) |
{ TD3DRMProjectionType } |
type |
(* |
* Do not use righthanded perspective in Viewport2::SetProjection(). |
* Set up righthanded mode by using IDirect3DRM3::SetOptions(). |
*) |
PD3DRMProjectionType = ^TD3DRMProjectionType; |
TD3DRMProjectionType = ( |
D3DRMPROJECT_PERSPECTIVE, |
D3DRMPROJECT_ORTHOGRAPHIC, |
D3DRMPROJECT_RIGHTHANDPERSPECTIVE, // Only valid pre-DX6 |
D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC // Only valid pre-DX6 |
D3DRMPROJECT_RIGHTHANDPERSPECTIVE, (* Only valid pre-DX6 *) |
D3DRMPROJECT_RIGHTHANDORTHOGRAPHIC (* Only valid pre-DX6 *) |
); |
D3DRMPROJECTIONTYPE = TD3DRMProjectionType; |
const |
D3DRMOPTIONS_LEFTHANDED = $00000001; // Default |
D3DRMOPTIONS_RIGHTHANDED = $00000002; |
D3DRMOPTIONS_LEFTHANDED = 00000001; (* Default *) |
D3DRMOPTIONS_RIGHTHANDED = 00000002; |
{ TD3DRMXOFFormat } |
type |
PD3DRMXOFFormat = ^TD3DRMXOFFormat; |
TD3DRMXOFFormat = ( |
D3DRMXOF_BINARY, |
D3DRMXOF_COMPRESSED, |
5965,13 → 9507,7 |
D3DRMXOF_TEXT |
); |
D3DRMXOFFORMAT = TD3DRMXOFFormat; |
{ TD3DRMSaveOptions } |
TD3DRMSaveOptions = DWORD; |
D3DRMSAVEOPTIONS = TD3DRMSaveOptions; |
const |
D3DRMXOFSAVE_NORMALS = 1; |
D3DRMXOFSAVE_TEXTURECOORDINATES = 2; |
5981,28 → 9517,21 |
D3DRMXOFSAVE_TEMPLATES = 16; |
D3DRMXOFSAVE_TEXTURETOPOLOGY = 32; |
{ TD3DRMColorSource } |
type |
PD3DRMColorSource = ^TD3DRMColorSource; |
TD3DRMColorSource = ( |
D3DRMCOLOR_FROMFACE, |
D3DRMCOLOR_FROMVERTEX |
); |
D3DRMCOLORSOURCE = TD3DRMColorSource; |
{ TD3DRMFrameConstraint } |
PD3DRMFrameConstraint = ^TD3DRMFrameConstraint; |
TD3DRMFrameConstraint = ( |
D3DRMCONSTRAIN_Z, // use only X and Y rotations |
D3DRMCONSTRAIN_Y, // use only X and Z rotations |
D3DRMCONSTRAIN_X // use only Y and Z rotations |
D3DRMCONSTRAIN_Z, (* use only X and Y rotations *) |
D3DRMCONSTRAIN_Y, (* use only X and Z rotations *) |
D3DRMCONSTRAIN_X (* use only Y and Z rotations *) |
); |
D3DRMFRAMECONSTRAINT = TD3DRMFrameConstraint; |
{ TD3DRMMaterialMode } |
PD3DRMMaterialMode = ^TD3DRMMaterialMode; |
TD3DRMMaterialMode = ( |
D3DRMMATERIAL_FROMMESH, |
D3DRMMATERIAL_FROMPARENT, |
6009,56 → 9538,39 |
D3DRMMATERIAL_FROMFRAME |
); |
D3DRMMATERIALMODE = TD3DRMMaterialMode; |
{ TD3DRMFogMode } |
PD3DRMFogMode = ^TD3DRMFogMode; |
TD3DRMFogMode = ( |
D3DRMFOG_LINEAR, // linear between start and end |
D3DRMFOG_EXPONENTIAL, // density * exp(-distance) |
D3DRMFOG_EXPONENTIALSQUARED // density * exp(-distance*distance) |
D3DRMFOG_LINEAR, (* linear between start and end *) |
D3DRMFOG_EXPONENTIAL, (* density * exp(-distance) *) |
D3DRMFOG_EXPONENTIALSQUARED (* density * exp(-distance*distance) *) |
); |
D3DRMFOGMODE = TD3DRMFogMode; |
{ TD3DRMZBufferMode } |
PD3DRMZBufferMode = ^TD3DRMZBufferMode; |
TD3DRMZBufferMode = ( |
D3DRMZBUFFER_FROMPARENT, // default |
D3DRMZBUFFER_ENABLE, // enable zbuffering |
D3DRMZBUFFER_DISABLE // disable zbuffering |
D3DRMZBUFFER_FROMPARENT, (* default *) |
D3DRMZBUFFER_ENABLE, (* enable zbuffering *) |
D3DRMZBUFFER_DISABLE (* disable zbuffering *) |
); |
D3DRMZBUFFERMODE = TD3DRMZBufferMode; |
{ TD3DRMSortMode } |
PD3DRMSortMode = ^TD3DRMSortMode; |
TD3DRMSortMode = ( |
D3DRMSORT_FROMPARENT, // default |
D3DRMSORT_NONE, // don't sort child frames |
D3DRMSORT_FRONTTOBACK, // sort child frames front-to-back |
D3DRMSORT_BACKTOFRONT // sort child frames back-to-front |
D3DRMSORT_FROMPARENT, (* default *) |
D3DRMSORT_NONE, (* don't sort child frames *) |
D3DRMSORT_FRONTTOBACK, (* sort child frames front-to-back *) |
D3DRMSORT_BACKTOFRONT (* sort child frames back-to-front *) |
); |
D3DRMSORTMODE = TD3DRMSortMode; |
{ TD3DRMMaterialOverride structure } |
PD3DRMMaterialOverride = ^TD3DRMMaterialOverride; |
TD3DRMMaterialOverride = record |
dwSize: DWORD; // Size of this structure |
dwFlags: DWORD; // Indicate which fields are valid |
dcDiffuse: TD3DColorValue; // RGBA |
dcAmbient: TD3DColorValue; // RGB |
dcEmissive: TD3DColorValue; // RGB |
dcSpecular: TD3DColorValue; // RGB |
TD3DRMMaterialOverride = packed record |
dwSize : DWORD; (* Size of this structure *) |
dwFlags : DWORD; (* Indicate which fields are valid *) |
dcDiffuse : TD3DColorValue; (* RGBA *) |
dcAmbient : TD3DColorValue; (* RGB *) |
dcEmissive : TD3DColorValue; (* RGB *) |
dcSpecular : TD3DColorValue; (* RGB *) |
dvPower: TD3DValue; |
lpD3DRMTex: IUnknown; |
end; |
D3DRMMATERIALOVERRIDE = TD3DRMMaterialOverride; |
LPD3DRMMATERIALOVERRIDE = PD3DRMMaterialOverride; |
const |
D3DRMMATERIALOVERRIDE_DIFFUSE_ALPHAONLY = $00000001; |
D3DRMMATERIALOVERRIDE_DIFFUSE_RGBONLY = $00000002; |
6082,23 → 9594,27 |
D3DRMSTATECHANGE_RENDER = $000000020; |
D3DRMSTATECHANGE_LIGHT = $000000040; |
{ Values for flags in RM3::CreateDeviceFromSurface } |
(* |
* Values for flags in RM3::CreateDeviceFromSurface |
*) |
D3DRMDEVICE_NOZBUFFER = $00000001; |
{ Values for flags in Object2::SetClientData } |
(* |
* Values for flags in Object2::SetClientData |
*) |
D3DRMCLIENTDATA_NONE = $00000001; |
D3DRMCLIENTDATA_LOCALFREE = $00000002; |
D3DRMCLIENTDATA_IUNKNOWN = $00000004; |
{ Values for flags in Frame2::AddMoveCallback. } |
(* |
* Values for flags in Frame2::AddMoveCallback. |
*) |
D3DRMCALLBACK_PREORDER = 0; |
D3DRMCALLBACK_POSTORDER = 1; |
{ Values for flags in MeshBuilder2::RayPick. } |
(* |
* Values for flags in MeshBuilder2::RayPick. |
*) |
D3DRMRAYPICK_ONLYBOUNDINGBOXES = 1; |
D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES = 2; |
D3DRMRAYPICK_INTERPOLATEUV = 4; |
6105,37 → 9621,39 |
D3DRMRAYPICK_INTERPOLATECOLOR = 8; |
D3DRMRAYPICK_INTERPOLATENORMAL = $10; |
{ Values for flags in MeshBuilder3::AddFacesIndexed. } |
(* |
* Values for flags in MeshBuilder3::AddFacesIndexed. |
*) |
D3DRMADDFACES_VERTICESONLY = 1; |
{ Values for flags in MeshBuilder2::GenerateNormals. } |
(* |
* Values for flags in MeshBuilder2::GenerateNormals. |
*) |
D3DRMGENERATENORMALS_PRECOMPACT = 1; |
D3DRMGENERATENORMALS_USECREASEANGLE = 2; |
{ Values for MeshBuilder3::GetParentMesh } |
(* |
* Values for MeshBuilder3::GetParentMesh |
*) |
D3DRMMESHBUILDER_DIRECTPARENT = 1; |
D3DRMMESHBUILDER_ROOTMESH = 2; |
{ Flags for MeshBuilder3::Enable } |
(* |
* Flags for MeshBuilder3::Enable |
*) |
D3DRMMESHBUILDER_RENDERENABLE = $00000001; |
D3DRMMESHBUILDER_PICKENABLE = $00000002; |
{ Flags for MeshBuilder3::AddMeshBuilder } |
D3DRMADDMESHBUILDER_DONTCOPYAPPDATA = 1; |
D3DRMADDMESHBUILDER_FLATTENSUBMESHES = 2; |
D3DRMADDMESHBUILDER_NOSUBMESHES = 4; |
{ Flags for Object2::GetAge when used with MeshBuilders } |
(* |
* Flags for Object2::GetAge when used with MeshBuilders |
*) |
D3DRMMESHBUILDERAGE_GEOMETRY = $00000001; |
D3DRMMESHBUILDERAGE_MATERIALS = $00000002; |
D3DRMMESHBUILDERAGE_TEXTURES = $00000004; |
{ Format flags for MeshBuilder3::AddTriangles. } |
(* |
* Format flags for MeshBuilder3::AddTriangles. |
*) |
D3DRMFVF_TYPE = $00000001; |
D3DRMFVF_NORMAL = $00000002; |
D3DRMFVF_COLOR = $00000004; |
6145,29 → 9663,31 |
D3DRMVERTEX_FAN = $00000002; |
D3DRMVERTEX_LIST = $00000004; |
{ Values for flags in Viewport2::Clear2 } |
(* |
* Values for flags in Viewport2::Clear2 |
*) |
D3DRMCLEAR_TARGET = $00000001; |
D3DRMCLEAR_ZBUFFER = $00000002; |
D3DRMCLEAR_DIRTYRECTS = $00000004; |
D3DRMCLEAR_ALL = D3DRMCLEAR_TARGET or D3DRMCLEAR_ZBUFFER or D3DRMCLEAR_DIRTYRECTS; |
D3DRMCLEAR_ALL = (D3DRMCLEAR_TARGET or |
D3DRMCLEAR_ZBUFFER or |
D3DRMCLEAR_DIRTYRECTS); |
{ Values for flags in Frame3::SetSceneFogMethod } |
(* |
* Values for flags in Frame3::SetSceneFogMethod |
*) |
D3DRMFOGMETHOD_VERTEX = $00000001; |
D3DRMFOGMETHOD_TABLE = $00000002; |
D3DRMFOGMETHOD_ANY = $00000004; |
{ Values for flags in Frame3::SetTraversalOptions } |
(* |
* Values for flags in Frame3::SetTraversalOptions |
*) |
D3DRMFRAME_RENDERENABLE = $00000001; |
D3DRMFRAME_PICKENABLE = $00000002; |
{ TD3DRMAnimationOptions } |
type |
TD3DRMAnimationOptions = DWORD; |
D3DRMANIMATIONOPTIONS = TD3DRMAnimationOptions; |
const |
D3DRMANIMATION_OPEN = $01; |
6177,12 → 9697,8 |
D3DRMANIMATION_SCALEANDROTATION = $00000010; |
D3DRMANIMATION_POSITION = $00000020; |
{ TD3DRMInterpolationOptions } |
type |
TD3DRMInterpolationOptions = DWORD; |
D3DRMINTERPOLATIONOPTIONS = TD3DRMInterpolationOptions; |
const |
D3DRMINTERPOLATION_OPEN = $01; |
D3DRMINTERPOLATION_CLOSED = $02; |
6192,11 → 9708,8 |
D3DRMINTERPOLATION_VERTEXCOLOR = $40; |
D3DRMINTERPOLATION_SLERPNORMALS = $80; |
{ TD3DRMLoadOptions } |
type |
TD3DRMLoadOptions = DWORD; |
D3DRMLOADOPTIONS = TD3DRMLoadOptions; |
const |
D3DRMLOAD_FROMFILE = $00; |
6215,30 → 9728,20 |
D3DRMLOAD_ASYNCHRONOUS = $400; |
{ TD3DRMLoadReource } |
type |
PD3DRMLoadReource = ^TD3DRMLoadReource; |
TD3DRMLoadReource = record |
PD3DRMLoadResource = ^TD3DRMLoadResource; |
TD3DRMLoadResource = packed record |
hModule: HMODULE; |
lpName: PChar; |
lpType: PChar; |
lpName: PAnsiChar; |
lpType: PAnsiChar; |
end; |
D3DRMLOADRESOURCE = TD3DRMLoadReource; |
LPD3DRMLOADRESOURCE = PD3DRMLoadReource; |
{ TD3DRMLoadMemory } |
PD3DRMLoadMemory = ^TD3DRMLoadMemory; |
TD3DRMLoadMemory = record |
TD3DRMLoadMemory = packed record |
lpMemory: Pointer; |
dSize: DWORD; |
dwSize: DWORD; |
end; |
D3DRMLOADMEMORY = TD3DRMLoadMemory; |
LPD3DRMLOADMEMORY = PD3DRMLoadMemory; |
const |
D3DRMPMESHSTATUS_VALID = $01; |
D3DRMPMESHSTATUS_INTERRUPTED = $02; |
6249,43 → 9752,32 |
D3DRMPMESHEVENT_BASEMESH = $01; |
D3DRMPMESHEVENT_COMPLETE = $02; |
{ TD3DRMPMeshLoadStatus } |
type |
PD3DRMPMeshLoadStatus = ^TD3DRMPMeshLoadStatus; |
TD3DRMPMeshLoadStatus = record |
dwSize: DWORD; // Size of this structure |
dwPMeshSize: DWORD; // Total Size (bytes) |
dwBaseMeshSize: DWORD; // Total Size of the Base Mesh |
dwBytesLoaded: DWORD; // Total bytes loaded |
dwVerticesLoaded: DWORD; // Number of vertices loaded |
TD3DRMPMeshLoadStatus = packed record |
dwSize, // Size of this structure |
dwPMeshSize, // Total Size (bytes) |
dwBaseMeshSize, // Total Size of the Base Mesh |
dwBytesLoaded, // Total bytes loaded |
dwVerticesLoaded, // Number of vertices loaded |
dwFacesLoaded: DWORD; // Number of faces loaded |
dwLoadResult: HResult; // Result of the load operation |
dwFlags: DWORD; |
end; |
D3DRMPMESHLOADSTATUS = TD3DRMPMeshLoadStatus; |
LPD3DRMPMESHLOADSTATUS = PD3DRMPMeshLoadStatus; |
{ TD3DRMUserVisualReason } |
PD3DRMUserVisualReason = ^TD3DRMUserVisualReason; |
TD3DRMUserVisualReason = ( |
D3DRMUSERVISUAL_CANSEE, |
D3DRMUSERVISUAL_RENDER |
); |
D3DRMUSERVISUALREASON = TD3DRMUserVisualReason; |
{ TD3DRMAnimationKey } |
PD3DRMAnimationKey = ^TD3DRMAnimationKey; |
TD3DRMAnimationKey = record |
TD3DRMAnimationKey = packed record |
dwSize: DWORD; |
dwKeyType: DWORD; |
dvTime: TD3DValue; |
dwID: DWORD; |
case Integer of |
case integer of |
0: (dqRotateKey: TD3DRMQuaternion); |
1: (dvScaleKey: TD3DVector); |
2: (dvPositionKey: TD3DVector); |
6292,31 → 9784,33 |
3: (dvK: array[0..3] of TD3DValue); |
end; |
D3DRMANIMATIONKEY = TD3DRMAnimationKey; |
LPD3DRMANIMATIONKEY = PD3DRMAnimationKey; |
procedure D3DRMAnimationGetRotateKey |
(var rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion); |
procedure D3DRMAnimationGetRotateKey(const rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion); |
procedure D3DRMAnimationGetScaleKey(const rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
procedure D3DRMAnimationGetPositionKey(const rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
procedure D3DRMAnimationSetRotateKey(var rmKey: TD3DRMAnimationKey; const rmQuat: TD3DRMQuaternion); |
procedure D3DRMAnimationSetScaleKey(var rmKey: TD3DRMAnimationKey; const dvVec: TD3DVector); |
procedure D3DRMAnimationSetPositionKey(var rmKey: TD3DRMAnimationKey; const dvVec: TD3DVector); |
procedure D3DRMAnimationGetScaleKey |
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
procedure D3DRMAnimationGetPositionKey |
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
procedure D3DRMAnimatioSetRotateKey |
(var rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion); |
procedure D3DRMAnimationSetScaleKey |
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
procedure D3DRMAnimationSetPositionKey |
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
const |
D3DRMANIMATION_ROTATEKEY = $01; |
D3DRMANIMATION_SCALEKEY = $02; |
D3DRMANIMATION_POSITIONKEY = $03; |
D3DRMANIMATION_ROTATEKEY = 01; |
D3DRMANIMATION_SCALEKEY = 02; |
D3DRMANIMATION_POSITIONKEY = 03; |
{ TD3DRMMapping } |
type |
TD3DRMMapping = DWORD; |
D3DRMMAPPING = TD3DRMMapping; |
{ TD3DRMMappingFlag } |
PD3DRMMappingFlag = ^TD3DRMMappingFlag; |
TD3DRMMappingFlag = DWORD; |
D3DRMMAPPINGFLAG = TD3DRMMappingFlag; |
const |
D3DRMMAP_WRAPU = 1; |
6323,11 → 9817,9 |
D3DRMMAP_WRAPV = 2; |
D3DRMMAP_PERSPCORRECT = 4; |
{ TD3DRMVertex } |
type |
PD3DRMVertex = ^TD3DRMVertex; |
TD3DRMVertex = record |
TD3DRMVertex = packed record |
position: TD3DVector; |
normal: TD3DVector; |
tu, tv: TD3DValue; |
6334,173 → 9826,197 |
color: TD3DColor; |
end; |
D3DRMVERTEX = TD3DRMVertex; |
LPD3DRMVERTEX = PD3DRMVertex; |
TD3DRMGroupIndex = LongInt; (* group indexes begin a 0 *) |
{ TD3DRMGroupIndex } |
TD3DRMGroupIndex = Longint; |
D3DRMGROUPINDEX = TD3DRMGroupIndex; // group indexes begin a 0 |
const |
D3DRMGROUP_ALLGROUPS = -1; |
{ Create a color from three components in the range 0-1 inclusive. } |
function D3DRMCreateColorRGB(red, green, blue: TD3DValue): TD3DColor; stdcall; |
var |
(* |
* Create a color from three components in the range 0-1 inclusive. |
*) |
D3DRMCreateColorRGB : function (red, green, blue: TD3DValue) : TD3DColor; |
stdcall; |
{ Create a color from four components in the range 0-1 inclusive. } |
function D3DRMCreateColorRGBA(red, green, blue, alpha: TD3DValue): TD3DColor; stdcall; |
(* |
* Create a color from four components in the range 0-1 inclusive. |
*) |
D3DRMCreateColorRGBA : function (red, green, blue, alpha: TD3DValue) |
: TD3DColor; stdcall; |
{ Get the red component of a color. } |
function D3DRMColorGetRed(d3drmc: TD3DColor): TD3DValue; stdcall; |
(* |
* Get the red component of a color. |
*) |
D3DRMColorGetRed : function (d3drmc: TD3DColor) : TD3DValue; stdcall; |
{ Get the green component of a color. } |
function D3DRMColorGetGreen(d3drmc: TD3DColor): TD3DValue; stdcall; |
(* |
* Get the green component of a color. |
*) |
D3DRMColorGetGreen : function (d3drmc: TD3DColor) : TD3DValue; stdcall; |
{ Get the blue component of a color. } |
function D3DRMColorGetBlue(d3drmc: TD3DColor): TD3DValue; stdcall; |
(* |
* Get the blue component of a color. |
*) |
D3DRMColorGetBlue : function (d3drmc: TD3DColor) : TD3DValue; stdcall; |
{ Get the alpha component of a color. } |
function D3DRMColorGetAlpha(d3drmc: TD3DColor): TD3DValue; stdcall; |
(* |
* Get the alpha component of a color. |
*) |
D3DRMColorGetAlpha : function (d3drmc: TD3DColor) : TD3DValue; stdcall; |
{ Add two vectors. Returns its first argument. } |
function D3DRMVectorAdd(var d, s1, s2: TD3DVector): PD3DVector; stdcall; |
(* |
* Add two vectors. Returns its first argument. |
*) |
D3DRMVectorAdd : function (var d, s1, s2: TD3DVector) : PD3DVector; stdcall; |
{ Subtract two vectors. Returns its first argument. } |
function D3DRMVectorSubtract(var d, s1, s2: TD3DVector): PD3DVector; stdcall; |
(* |
* Subtract two vectors. Returns its first argument. |
*) |
D3DRMVectorSubtract : function (var d, s1, s2: TD3DVector) : PD3DVector; |
stdcall; |
{ Reflect a ray about a given normal. Returns its first argument. } |
function D3DRMVectorReflect(var d, ray, norm: TD3DVector): PD3DVector; stdcall; |
(* |
* Reflect a ray about a given normal. Returns its first argument. |
*) |
D3DRMVectorReflect : function (var d, ray, norm: TD3DVector) : PD3DVector; |
stdcall; |
{ Calculate the vector cross product. Returns its first argument. } |
function D3DRMVectorCrossProduct(var d, s1, s2: TD3DVector): PD3DVector; stdcall; |
(* |
* Calculate the vector cross product. Returns its first argument. |
*) |
D3DRMVectorCrossProduct : function (var d, s1, s2: TD3DVector) : PD3DVector; |
stdcall; |
{ Return the vector dot product. } |
function D3DRMVectorDotProduct(var s1, s2: TD3DVector): TD3DValue; stdcall; |
(* |
* Return the vector dot product. |
*) |
D3DRMVectorDotProduct : function (var s1, s2: TD3DVector) : TD3DValue; |
stdcall; |
{ Scale a vector so that its modulus is 1. Returns its argument or |
NULL if there was an error (e.g. a zero vector was passed). } |
function D3DRMVectorNormalize(var lpv: TD3DVector): PD3DVector; stdcall; |
(* |
* Scale a vector so that its modulus is 1. Returns its argument or |
* NULL if there was an error (e.g. a zero vector was passed). |
*) |
D3DRMVectorNormalize : function (var lpv: TD3DVector) : PD3DVector; stdcall; |
{ Return the length of a vector (e.g. sqrt(x*x + y*y + z*z)). } |
function D3DRMVectorModulus(var v: TD3DVector): TD3DValue; stdcall; |
(* |
* Return the length of a vector (e.g. sqrt(x*x + y*y + z*z)). |
*) |
D3DRMVectorModulus : function (var v: TD3DVector) : TD3DValue; stdcall; |
{ Set the rotation part of a matrix to be a rotation of theta radians |
around the given axis. } |
function D3DRMVectorRotate(var r, v, axis: TD3DVector; theta: TD3DValue): PD3DVector; stdcall; |
(* |
* Set the rotation part of a matrix to be a rotation of theta radians |
* around the given axis. |
*) |
D3DRMVectorRotate : function (var r, v, axis: TD3DVector; theta: TD3DValue) : |
PD3DVector; stdcall; |
{ Scale a vector uniformly in all three axes } |
function D3DRMVectorScale( var d, s: TD3DVector; factor: TD3DValue): PD3DVector; stdcall; |
(* |
* Scale a vector uniformly in all three axes |
*) |
D3DRMVectorScale : function (var d, s: TD3DVector; factor: TD3DValue) : |
PD3DVector; stdcall; |
{ Return a random unit vector } |
function D3DRMVectorRandom(var d: TD3DVector): PD3DVector; stdcall; |
(* |
* Return a random unit vector |
*) |
D3DRMVectorRandom : function (var d: TD3DVector) : PD3DVector; stdcall; |
{ Returns a unit quaternion that represents a rotation of theta radians |
around the given axis. } |
function D3DRMQuaternionFromRotation(var quat: PD3DRMQuaternion; |
(* |
* Returns a unit quaternion that represents a rotation of theta radians |
* around the given axis. |
*) |
D3DRMQuaternionFromRotation : function (var quat: TD3DRMQuaternion; |
var v: TD3DVector; theta: TD3DValue): PD3DRMQuaternion; stdcall; |
{ Calculate the product of two quaternions } |
function D3DRMQuaternionMultiply(var q, a, b: TD3DRMQuaternion): PD3DRMQuaternion; stdcall; |
(* |
* Calculate the product of two quaternions |
*) |
D3DRMQuaternionMultiply : function (var q, a, b: TD3DRMQuaternion) : |
PD3DRMQuaternion; stdcall; |
{ Interpolate between two quaternions } |
function D3DRMQuaternionSlerp(var q, a, b: TD3DRMQuaternion; alpha: TD3DValue): PD3DRMQuaternion; stdcall; |
(* |
* Interpolate between two quaternions |
*) |
D3DRMQuaternionSlerp : function (var q, a, b: TD3DRMQuaternion; |
alpha: TD3DValue) : PD3DRMQuaternion; stdcall; |
{ Calculate the matrix for the rotation that a unit quaternion represents } |
procedure D3DRMMatrixFromQuaternion(dmMat: TD3DRMMatrix4D; var lpDqQuat: TD3DRMQuaternion); stdcall; |
(* |
* Calculate the matrix for the rotation that a unit quaternion represents |
*) |
D3DRMMatrixFromQuaternion : procedure (dmMat: TD3DRMMatrix4D; var lpDqQuat: |
TD3DRMQuaternion); stdcall; |
{ Calculate the quaternion that corresponds to a rotation matrix } |
function D3DRMQuaternionFromMatrix(var lpQuat: TD3DRMQuaternion; Mat: TD3DRMMatrix4D): PD3DRMQuaternion; |
(* |
* Calculate the quaternion that corresponds to a rotation matrix |
*) |
D3DRMQuaternionFromMatrix : function (var lpQuat: TD3DRMQuaternion; |
Mat: TD3DRMMatrix4D) : PD3DRMQuaternion; stdcall; |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: d3drm.h, d3drmobj.h, d3drmwin.h |
* File: d3drmobj.h |
* Content: Direct3DRM include file |
* |
***************************************************************************) |
{ Direct3DRM Object classes } |
(* |
* Direct3DRM Object classes |
*) |
const |
CLSID_CDirect3DRMDevice: TGUID = '{4FA3568E-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMViewport: TGUID = '{4FA3568F-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMFrame: TGUID = '{4FA35690-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMMesh: TGUID = '{4FA35691-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMMeshBuilder: TGUID = '{4FA35692-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMFace: TGUID = '{4FA35693-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMLight: TGUID = '{4FA35694-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMTexture: TGUID = '{4FA35695-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMWrap: TGUID = '{4FA35696-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMMaterial: TGUID = '{4FA35697-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMAnimation: TGUID = '{4FA35698-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMAnimationSet: TGUID = '{4FA35699-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMUserVisual: TGUID = '{4FA3569A-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMShadow: TGUID = '{4FA3569B-623F-11CF-AC4A-0000C03825A1}'; |
CLSID_CDirect3DRMViewportInterpolator: TGUID = '{0DE9EAA1-3B84-11D0-9B6D-0000C0781BC3}'; |
CLSID_CDirect3DRMFrameInterpolator: TGUID = '{0DE9EAA2-3B84-11D0-9B6D-0000C0781BC3}'; |
CLSID_CDirect3DRMMeshInterpolator: TGUID = '{0DE9EAA3-3B84-11D0-9B6D-0000C0781BC3}'; |
CLSID_CDirect3DRMLightInterpolator: TGUID = '{0DE9EAA6-3B84-11D0-9B6D-0000C0781BC3}'; |
CLSID_CDirect3DRMMaterialInterpolator: TGUID = '{0DE9EAA7-3B84-11D0-9B6D-0000C0781BC3}'; |
CLSID_CDirect3DRMTextureInterpolator: TGUID = '{0DE9EAA8-3B84-11D0-9B6D-0000C0781BC3}'; |
CLSID_CDirect3DRMProgressiveMesh: TGUID = '{4516EC40-8F20-11D0-9B6D-0000C0781BC3}'; |
CLSID_CDirect3DRMClippedVisual: TGUID = '{5434E72D-6D66-11D1-BB0B-0000F875865A}'; |
CLSID_CDirect3DRMDevice: TGUID = |
(D1:$4fa3568e;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMViewport: TGUID = |
(D1:$4fa3568f;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMFrame: TGUID = |
(D1:$4fa35690;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMMesh: TGUID = |
(D1:$4fa35691;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMMeshBuilder: TGUID = |
(D1:$4fa35692;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMFace: TGUID = |
(D1:$4fa35693;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMLight: TGUID = |
(D1:$4fa35694;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMTexture: TGUID = |
(D1:$4fa35695;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMWrap: TGUID = |
(D1:$4fa35696;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMMaterial: TGUID = |
(D1:$4fa35697;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMAnimation: TGUID = |
(D1:$4fa35698;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMAnimationSet: TGUID = |
(D1:$4fa35699;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMUserVisual: TGUID = |
(D1:$4fa3569a;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMShadow: TGUID = |
(D1:$4fa3569b;D2:$623f;D3:$11cf;D4:($ac,$4a,$00,$00,$c0,$38,$25,$a1)); |
CLSID_CDirect3DRMViewportInterpolator: TGUID = |
(D1:$0de9eaa1;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3)); |
CLSID_CDirect3DRMFrameInterpolator: TGUID = |
(D1:$0de9eaa2;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3)); |
CLSID_CDirect3DRMMeshInterpolator: TGUID = |
(D1:$0de9eaa3;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3)); |
CLSID_CDirect3DRMLightInterpolator: TGUID = |
(D1:$0de9eaa6;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3)); |
CLSID_CDirect3DRMMaterialInterpolator: TGUID = |
(D1:$0de9eaa7;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3)); |
CLSID_CDirect3DRMTextureInterpolator: TGUID = |
(D1:$0de9eaa8;D2:$3b84;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3)); |
CLSID_CDirect3DRMProgressiveMesh: TGUID = |
(D1:$4516ec40;D2:$8f20;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3)); |
CLSID_CDirect3DRMClippedVisual: TGUID = |
(D1:$5434e72d;D2:$6d66;D3:$11d1;D4:($bb,$0b,$00,$00,$f8,$75,$86,$5a)); |
{ Direct3DRM Object interfaces } |
IID_IDirect3DRMObject: TGUID = '{EB16CB00-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMObject2: TGUID = '{4516EC7C-8F20-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRMDevice: TGUID = '{E9E19280-6E05-11CF-AC4A-0000C03825A1}'; |
IID_IDirect3DRMDevice2: TGUID = '{4516EC78-8F20-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRMDevice3: TGUID = '{549F498B-BFEB-11D1-8ED8-00A0C967A482}'; |
IID_IDirect3DRMViewport: TGUID = '{EB16CB02-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMViewport2: TGUID = '{4A1B1BE6-BFED-11D1-8ED8-00A0C967A482}'; |
IID_IDirect3DRMFrame: TGUID = '{EB16CB03-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMFrame2: TGUID = '{C3DFBD60-3988-11D0-9EC2-0000C0291AC3}'; |
IID_IDirect3DRMFrame3: TGUID = '{FF6B7F70-A40E-11D1-91F9-0000F8758E66}'; |
IID_IDirect3DRMVisual: TGUID = '{EB16CB04-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMMesh: TGUID = '{A3A80D01-6E12-11CF-AC4A-0000C03825A1}'; |
IID_IDirect3DRMMeshBuilder: TGUID = '{A3A80D02-6E12-11CF-AC4A-0000C03825A1}'; |
IID_IDirect3DRMMeshBuilder2: TGUID = '{4516EC77-8F20-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRMMeshBuilder3: TGUID = '{4516EC82-8F20-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRMFace: TGUID = '{EB16CB07-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMFace2: TGUID = '{4516EC81-8F20-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRMLight: TGUID = '{EB16CB08-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMTexture: TGUID = '{EB16CB09-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMTexture2: TGUID = '{120F30C0-1629-11D0-941C-0080C80CFA7B}'; |
IID_IDirect3DRMTexture3: TGUID = '{FF6B7F73-A40E-11D1-91F9-0000F8758E66}'; |
IID_IDirect3DRMWrap: TGUID = '{EB16CB0A-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMMaterial: TGUID = '{EB16CB0B-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMMaterial2: TGUID = '{FF6B7F75-A40E-11D1-91F9-0000F8758E66}'; |
IID_IDirect3DRMAnimation: TGUID = '{EB16CB0D-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMAnimation2: TGUID = '{FF6B7F77-A40E-11D1-91F9-0000F8758E66}'; |
IID_IDirect3DRMAnimationSet: TGUID = '{EB16CB0E-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMAnimationSet2: TGUID = '{FF6B7F79-A40E-11D1-91F9-0000F8758E66}'; |
IID_IDirect3DRMObjectArray: TGUID = '{242F6BC2-3849-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRMDeviceArray: TGUID = '{EB16CB10-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMViewportArray: TGUID = '{EB16CB11-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMFrameArray: TGUID = '{EB16CB12-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMVisualArray: TGUID = '{EB16CB13-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMLightArray: TGUID = '{EB16CB14-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMPickedArray: TGUID = '{EB16CB16-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMFaceArray: TGUID = '{EB16CB17-D271-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRMAnimationArray: TGUID = '{D5F1CAE0-4BD7-11D1-B974-0060083E45F3}'; |
IID_IDirect3DRMUserVisual: TGUID = '{59163DE0-6D43-11CF-AC4A-0000C03825A1}'; |
IID_IDirect3DRMShadow: TGUID = '{AF359780-6BA3-11CF-AC4A-0000C03825A1}'; |
IID_IDirect3DRMShadow2: TGUID = '{86B44E25-9C82-11D1-BB0B-00A0C981A0A6}'; |
IID_IDirect3DRMInterpolator: TGUID = '{242F6BC1-3849-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRMProgressiveMesh: TGUID = '{4516EC79-8F20-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRMPicked2Array: TGUID = '{4516EC7B-8F20-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRMClippedVisual: TGUID = '{5434E733-6D66-11D1-BB0B-0000F875865A}'; |
IID_IDirect3DRMWinDevice: TGUID = '{C5016CC0-D273-11CE-AC48-0000C03825A1}'; |
IID_IDirect3DRM: TGUID = '{2BC49361-8327-11CF-AC4A-0000C03825A1}'; |
IID_IDirect3DRM2: TGUID = '{4516ECC8-8F20-11D0-9B6D-0000C0781BC3}'; |
IID_IDirect3DRM3: TGUID = '{4516EC83-8F20-11D0-9B6D-0000C0781BC3}'; |
type |
IDirect3DRMObject = interface; |
IDirect3DRMObject2 = interface; |
IDirect3DRMDevice = interface; |
IDirect3DRMDevice2 = interface; |
IDirect3DRMDevice3 = interface; |
6523,94 → 10039,117 |
IDirect3DRMWrap = interface; |
IDirect3DRMMaterial = interface; |
IDirect3DRMMaterial2 = interface; |
IDirect3DRMInterpolator = interface; |
IDirect3DRMAnimation = interface; |
IDirect3DRMAnimation2 = interface; |
IDirect3DRMAnimationSet = interface; |
IDirect3DRMAnimationSet2 = interface; |
IDirect3DRMUserVisual = interface; |
IDirect3DRMShadow = interface; |
IDirect3DRMShadow2 = interface; |
IDirect3DRMArray= interface; |
IDirect3DRMObjectArray = interface; |
IDirect3DRMDeviceArray = interface; |
IDirect3DRMFaceArray = interface; |
IDirect3DRMViewportArray = interface; |
IDirect3DRMFrameArray = interface; |
IDirect3DRMAnimationArray = interface; |
IDirect3DRMVisualArray = interface; |
IDirect3DRMLightArray = interface; |
IDirect3DRMPickedArray = interface; |
IDirect3DRMFaceArray = interface; |
IDirect3DRMAnimationArray = interface; |
IDirect3DRMUserVisual = interface; |
IDirect3DRMShadow = interface; |
IDirect3DRMShadow2 = interface; |
IDirect3DRMInterpolator = interface; |
IDirect3DRMProgressiveMesh = interface; |
IDirect3DRMPicked2Array = interface; |
IDirect3DRMLightArray = interface; |
IDirect3DRMProgressiveMesh = interface; |
IDirect3DRMClippedVisual = interface; |
IDirect3DRMWinDevice = interface; |
IDirect3DRM = interface; |
IDirect3DRM2 = interface; |
IDirect3DRM3 = interface; |
(* |
* Direct3DRM Object interfaces |
*) |
IID_IDirect3DRMObject = IDirect3DRMObject; |
IID_IDirect3DRMDevice = IDirect3DRMDevice; |
IID_IDirect3DRMDevice2 = IDirect3DRMDevice2; |
IID_IDirect3DRMDevice3 = IDirect3DRMDevice3; |
IID_IDirect3DRMViewport = IDirect3DRMViewport; |
IID_IDirect3DRMViewport2 = IDirect3DRMViewport2; |
IID_IDirect3DRMFrame = IDirect3DRMFrame; |
IID_IDirect3DRMFrame2 = IDirect3DRMFrame2; |
IID_IDirect3DRMFrame3 = IDirect3DRMFrame3; |
IID_IDirect3DRMVisual = IDirect3DRMVisual; |
IID_IDirect3DRMMesh = IDirect3DRMMesh; |
IID_IDirect3DRMMeshBuilder = IDirect3DRMMeshBuilder; |
IID_IDirect3DRMMeshBuilder2 = IDirect3DRMMeshBuilder2; |
IID_IDirect3DRMMeshBuilder3 = IDirect3DRMMeshBuilder3; |
IID_IDirect3DRMFace = IDirect3DRMFace; |
IID_IDirect3DRMFace2 = IDirect3DRMFace2; |
IID_IDirect3DRMLight = IDirect3DRMLight; |
IID_IDirect3DRMTexture = IDirect3DRMTexture; |
IID_IDirect3DRMTexture2 = IDirect3DRMTexture2; |
IID_IDirect3DRMTexture3 = IDirect3DRMTexture3; |
IID_IDirect3DRMWrap = IDirect3DRMWrap; |
IID_IDirect3DRMMaterial = IDirect3DRMMaterial; |
IID_IDirect3DRMMaterial2 = IDirect3DRMMaterial2; |
IID_IDirect3DRMAnimation = IDirect3DRMAnimation; |
IID_IDirect3DRMAnimation2 = IDirect3DRMAnimation2; |
IID_IDirect3DRMAnimationSet = IDirect3DRMAnimationSet; |
IID_IDirect3DRMAnimationSet2 = IDirect3DRMAnimationSet2; |
IID_IDirect3DRMObjectArray = IDirect3DRMObjectArray; |
IID_IDirect3DRMDeviceArray = IDirect3DRMDeviceArray; |
IID_IDirect3DRMViewportArray = IDirect3DRMViewportArray; |
IID_IDirect3DRMFrameArray = IDirect3DRMFrameArray; |
IID_IDirect3DRMVisualArray = IDirect3DRMVisualArray; |
IID_IDirect3DRMLightArray = IDirect3DRMLightArray; |
IID_IDirect3DRMPickedArray = IDirect3DRMPickedArray; |
IID_IDirect3DRMFaceArray = IDirect3DRMFaceArray; |
IID_IDirect3DRMAnimationArray = IDirect3DRMAnimationArray; |
IID_IDirect3DRMUserVisual = IDirect3DRMUserVisual; |
IID_IDirect3DRMShadow = IDirect3DRMShadow; |
IID_IDirect3DRMShadow2 = IDirect3DRMShadow2; |
IID_IDirect3DRMInterpolator = IDirect3DRMInterpolator; |
IID_IDirect3DRMProgressiveMesh = IDirect3DRMProgressiveMesh; |
IID_IDirect3DRMPicked2Array = IDirect3DRMPicked2Array; |
IID_IDirect3DRMClippedVisual = IDirect3DRMClippedVisual; |
TD3DRMObjectCallback = procedure(obj: IDirect3DRMObject; arg: Pointer); cdecl; |
D3DRMOBJECTCALLBACK = TD3DRMObjectCallback; |
TD3DRMFrameMoveCallback = procedure(obj: IDirect3DRMFrame; arg: Pointer; delta: TD3DValue); cdecl; |
D3DRMFRAMEMOVECALLBACK = TD3DRMFrameMoveCallback; |
TD3DRMFrame3MoveCallback = procedure(obj: IDirect3DRMFrame3; arg: Pointer; delta: TD3DValue); cdecl; |
D3DRMFRAME3MOVECALLBACK = TD3DRMFrame3MoveCallback; |
TD3DRMUpdateCallback = procedure(obj: IDirect3DRMDevice; arg: Pointer; |
iRectCount: DWORD; d3dRectUpdate: PD3DRect); cdecl; |
D3DRMUPDATECALLBACK = TD3DRMUpdateCallback; |
TD3DRMDevice3UpdateCallback = procedure(obj: IDirect3DRMDevice3; arg: Pointer; |
iRectCount: DWORD; d3dRectUpdate: PD3DRect); cdecl; |
D3DRMDEVICE3UPDATECALLBACK = TD3DRMDevice3UpdateCallback; |
PIDirect3DRMFaceArray = ^IDirect3DRMFaceArray; |
TD3DRMObjectCallback = procedure (lpD3DRMobj: IDirect3DRMObject; |
lpArg: Pointer); cdecl; |
TD3DRMFrameMoveCallback = procedure (lpD3DRMFrame: IDirect3DRMFrame; |
lpArg: Pointer; delta: TD3DValue); cdecl; |
TD3DRMFrame3MoveCallback = procedure (lpD3DRMFrame: IDirect3DRMFrame3; |
lpArg: Pointer; delta: TD3DValue); cdecl; |
TD3DRMUpdateCallback = procedure (lpobj: IDirect3DRMDevice; lpArg: Pointer; |
iRectCount: Integer; const d3dRectUpdate: TD3DRect); cdecl; |
TD3DRMDevice3UpdateCallback = procedure (lpobj: IDirect3DRMDevice3; |
lpArg: Pointer; iRectCount: Integer; const d3dRectUpdate: TD3DRect);cdecl; |
TD3DRMUserVisualCallback = function(lpD3DRMUV: IDirect3DRMUserVisual; |
lpArg: Pointer; lpD3DRMUVreason: TD3DRMUserVisualReason; |
lpD3DRMDev: IDirect3DRMDevice; |
lpD3DRMview: IDirect3DRMViewport): Longint; cdecl; |
D3DRMUSERVISUALCALLBACK = TD3DRMUserVisualCallback; |
TD3DRMLoadTextureCallback = function(tex_name: PChar; arg: Pointer; |
lpD3DRMview: IDirect3DRMViewport) : Integer; cdecl; |
TD3DRMLoadTextureCallback = function (tex_name: PAnsiChar; lpArg: Pointer; |
out lpD3DRMTex: IDirect3DRMTexture): HResult; cdecl; |
D3DRMLOADTEXTURECALLBACK = TD3DRMLoadTextureCallback; |
TD3DRMLoadTexture3Callback = function(tex_name: PChar; arg: Pointer; |
TD3DRMLoadTexture3Callback = function (tex_name: PAnsiChar; lpArg: Pointer; |
out lpD3DRMTex: IDirect3DRMTexture3): HResult; cdecl; |
D3DRMLOADTEXTURE3CALLBACK = TD3DRMLoadTexture3Callback; |
TD3DRMLoadCallback = procedure(lpObject: IDirect3DRMObject; const ObjectGuid: TGUID; |
lpArg: Pointer); cdecl; |
D3DRMLOADCALLBACK = TD3DRMLoadCallback; |
TD3DRMLoadCallback = procedure (lpObject: IDirect3DRMObject; |
const ObjectGuid: TGUID; lpArg: Pointer); cdecl; |
TD3DRMDownSampleCallback = function(lpDirect3DRMTexture: IDirect3DRMTexture3; |
pArg: Pointer; pDDSSrc, pDDSDst: IDirectDrawSurface): HResult; cdecl; |
D3DRMDOWNSAMPLECALLBACK = TD3DRMDownSampleCallback; |
pArg: pointer; pDDSSrc, pDDSDst: IDirectDrawSurface) : HResult; cdecl; |
TD3DRMValidationCallback = function(lpDirect3DRMTexture: IDirect3DRMTexture3; |
pArg: Pointer; dwFlags: DWORD; dwcRects: DWORD; pRects: PRect): HResult; cdecl; |
D3DRMVALIDATIONCALLBACK = TD3DRMValidationCallback; |
pArg: pointer; dwFlags, DWcRects: DWORD; const pRects: TRect) : HResult; cdecl; |
{ TD3DRMPickDesc } |
PD3DRMPickDesc = ^TD3DRMPickDesc; |
TD3DRMPickDesc = record |
ulFaceIdx: Longint; |
lGroupIdx: Longint; |
TD3DRMPickDesc = packed record |
ulFaceIdx: DWORD; |
lGroupIdx: LongInt; |
vPosition: TD3DVector; |
end; |
D3DRMPICKDESC = TD3DRMPickDesc; |
LPD3DRMPICKDESC = PD3DRMPickDesc; |
{ TD3DRMPickDesc2 } |
PD3DRMPickDesc2 = ^TD3DRMPickDesc2; |
TD3DRMPickDesc2 = record |
ulFaceIdx: Longint; |
lGroupIdx: Longint; |
TD3DRMPickDesc2 = packed record |
ulFaceIdx: DWORD; |
lGroupIdx: LongInt; |
dvPosition: TD3DVector; |
tu, tv: TD3DValue; |
dvNormal: TD3DVector; |
6617,13 → 10156,20 |
dcColor: TD3DColor; |
end; |
D3DRMPICKDESC2 = TD3DRMPickDesc2; |
LPD3DRMPICKDESC2 = PD3DRMPickDesc2; |
(* |
* Base class |
*) |
{$IFDEF D2COM} |
IDirect3DRMObject = class (IUnknown) |
{$ELSE} |
IDirect3DRMObject = interface(IUnknown) |
['{EB16CB00-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMObject methods |
function Clone(pUnkOuter: IUnknown; const riid: TGUID; out ppvObj): HResult; stdcall; |
['{eb16cb00-d271-11ce-ac48-0000c03825a1}'] |
{$ENDIF} |
(* |
* The methods for IDirect3DRMObject |
*) |
function Clone (pUnkOuter: IUnknown; riid: TGUID; |
var ppvObj: Pointer) : HResult; stdcall; |
function AddDestroyCallback(lpCallback: TD3DRMObjectCallback; |
lpArg: Pointer): HResult; stdcall; |
function DeleteDestroyCallback(d3drmObjProc: TD3DRMObjectCallback; |
6630,38 → 10176,23 |
lpArg: Pointer): HResult; stdcall; |
function SetAppData(ulData: DWORD): HResult; stdcall; |
function GetAppData: DWORD; stdcall; |
function SetName(lpName: PChar): HResult; stdcall; |
function GetName(var lpdwSize: DWORD; lpName: PChar): HResult; stdcall; |
function GetClassName(var lpdwSize: DWORD; lpName: PChar): HResult; stdcall; |
function SetName (lpName: PAnsiChar) : HResult; stdcall; |
function GetName (var lpdwSize: DWORD; lpName: PAnsiChar) : HResult; stdcall; |
function GetClassName (var lpdwSize: DWORD; lpName: PAnsiChar) : HResult; stdcall; |
end; |
IDirect3DRMObject2 = interface(IUnknown) |
['{EB16CB00-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMObject2 methods |
function AddDestroyCallback(lpCallback: TD3DRMObjectCallback; lpArg: Pointer): HResult; stdcall; |
function Clone(pUnkOuter: IUnknown; const riid: TGUID; |
out ppvObj): HResult; stdcall; |
function DeleteDestroyCallback(d3drmObjProc: TD3DRMObjectCallback; |
lpArg: Pointer): HResult; stdcall; |
function GetClientData(dwID: DWORD; var lplpvData: Pointer): HResult; stdcall; |
function GetDirect3DRM(out lplpDirect3DRM: IDirect3DRM): HResult; stdcall; |
function GetName(var lpdwSize: DWORD; lpName: LPSTR): HResult; stdcall; |
function SetClientData(dwID: DWORD; lplpvData: Pointer; dwFlags: DWORD): HResult; stdcall; |
function SetName(lpName: PChar): HResult; stdcall; |
function GetAge(dwFlags: DWORD; var pdwAge: DWORD): HResult; stdcall; |
end; |
IDirect3DRMVisual = interface(IDirect3DRMObject) |
['{EB16CB04-D271-11CE-AC48-0000C03825A1}'] |
end; |
IDirect3DRMDevice = interface(IDirect3DRMObject) |
['{E9E19280-6E05-11CF-AC4A-0000C03825A1}'] |
// IDirect3DRMDevice methods |
function Init(width, height: DWORD): HResult; stdcall; |
['{e9e19280-6e05-11cf-ac4a-0000c03825a1}'] |
(* |
* IDirect3DRMDevice methods |
*) |
function Init (width: LongInt; height: LongInt) : HResult; stdcall; |
function InitFromD3D(lpD3D: IDirect3D; lpD3DIMDev: IDirect3DDevice): HResult; stdcall; |
function InitFromClipper(lpDDClipper: IDirectDrawClipper; |
const lpGUID: TGUID; width, height: DWORD): HResult; stdcall; |
function InitFromClipper (lpDDClipper: IDirectDrawClipper; lpGUID: PGUID; |
width: Integer; height: Integer) : HResult; stdcall; |
function Update: HResult; stdcall; |
function AddUpdateCallback(d3drmUpdateProc: TD3DRMUpdateCallback; |
arg: Pointer): HResult; stdcall; |
6687,36 → 10218,79 |
end; |
IDirect3DRMDevice2 = interface(IDirect3DRMDevice) |
['{4516EC78-8F20-11D0-9B6D-0000C0781BC3}'] |
// IDirect3DRMDevice2 methods |
['{4516ec78-8f20-11d0-9b6d-0000c0781bc3}'] |
(* |
* IDirect3DRMDevice2 methods |
*) |
function InitFromD3D2(lpD3D: IDirect3D2; lpD3DIMDev: IDirect3DDevice2): HResult; stdcall; |
function InitFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; lpDDSBack: IDirectDrawSurface) : HResult; stdcall; |
function SetRenderMode(dwFlags: DWORD ) : HResult; stdcall; |
function GetRenderMode : DWORD; stdcall; |
function GetDirect3DDevice2(out lplpD3DDevice: IDirect3DDevice2) : HResult; stdcall; |
end; |
IDirect3DRMDevice3 = interface (IDirect3DRMObject) |
['{549f498b-bfeb-11d1-8ed8-00a0c967a482}'] |
(* |
* IDirect3DRMDevice methods |
*) |
function Init (width: LongInt; height: LongInt) : HResult; stdcall; |
function InitFromD3D (lpD3D: IDirect3D2; lpD3DIMDev: IDirect3DDevice2) : HResult; stdcall; |
function InitFromClipper (lpDDClipper: IDirectDrawClipper; lpGUID: PGUID; |
width: Integer; height: Integer) : HResult; stdcall; |
function Update: HResult; stdcall; |
function AddUpdateCallback (d3drmUpdateProc: TD3DRMDevice3UpdateCallback; |
arg: Pointer) : HResult; stdcall; |
function DeleteUpdateCallback (d3drmUpdateProc: TD3DRMDevice3UpdateCallback; |
arg: Pointer) : HResult; stdcall; |
function SetBufferCount (dwCount: DWORD) : HResult; stdcall; |
function GetBufferCount: DWORD; stdcall; |
function SetDither (bDither: BOOL) : HResult; stdcall; |
function SetShades (ulShades: DWORD) : HResult; stdcall; |
function SetQuality (rqQuality: TD3DRMRenderQuality) : HResult; stdcall; |
function SetTextureQuality (tqTextureQuality: TD3DRMTextureQuality) : HResult; stdcall; |
function GetViewports (out lplpViewports: IDirect3DRMViewportArray) : HResult; stdcall; |
function GetDither: BOOL; stdcall; |
function GetShades: DWORD; stdcall; |
function GetHeight: DWORD; stdcall; |
function GetWidth: DWORD; stdcall; |
function GetTrianglesDrawn: DWORD; stdcall; |
function GetWireframeOptions: DWORD; stdcall; |
function GetQuality: TD3DRMRenderQuality; stdcall; |
function GetColorModel: TD3DColorModel; stdcall; |
function GetTextureQuality: TD3DRMTextureQuality; stdcall; |
function GetDirect3DDevice (out lplpD3DDevice: IDirect3DDevice) : HResult; stdcall; |
(* |
* IDirect3DRMDevice2 methods |
*) |
function InitFromD3D2(lpD3D: IDirect3D2; lpD3DIMDev: IDirect3DDevice2) : HResult; stdcall; |
function InitFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; |
lpDDSBack: IDirectDrawSurface): HResult; stdcall; |
function SetRenderMode(dwFlags: DWORD): HResult; stdcall; |
function GetRenderMode: DWORD; stdcall; |
function GetDirect3DDevice2(out lplpD3DDevice: IDirect3DDevice2): HResult; stdcall; |
end; |
(* |
* IDirect3DRMDevice3 methods |
*) |
function FindPreferredTextureFormat (dwBitDepths, dwFlags: DWORD; |
out lpDDPF: TDDPixelFormat) : HResult; stdcall; |
function RenderStateChange (dwStateNum, dwVal, dwFlags: DWORD) : HResult; stdcall; |
IDirect3DRMDevice3 = interface(IDirect3DRMDevice2) |
['{549F498B-BFEB-11D1-8ED8-00A0C967A482}'] |
// IDirect3DRMDevice3 methods |
function FindPreferredTextureFormat(dwBitDepths: DWORD; dwFlags: DWORD; |
var lpDDPF: TDDPixelFormat): HResult; stdcall; |
function RenderStateChange(drsType: TD3DRenderStateType; dwVal: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function LightStateChange(drsType: TD3DLightStateType; dwVal: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function GetStateChangeOptions(dwStateClass: DWORD; dwStateNum: DWORD; |
function LightStateChange (drsType: TD3DLightStateType; // defined different in header and help |
dwVal, dwFlags: DWORD) : HResult; stdcall; |
function GetStateChangeOptions (dwStateClass, dwStateNum: DWORD; |
var pdwFlags: DWORD): HResult; stdcall; |
function SetStateChangeOptions(dwStateClass: DWORD; dwStateNum: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function SetStateChangeOptions ( dwStateClass, dwStateNum, dwFlags: DWORD) : HResult; stdcall; |
end; |
IDirect3DRMViewport = interface(IDirect3DRMObject) |
['{EB16CB02-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMViewport methods |
['{eb16cb02-d271-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMViewport methods |
*) |
function Init(lpD3DRMDevice: IDirect3DRMDevice; |
lpD3DRMFrameCamera: IDirect3DRMFrame; xpos, ypos, width, height: DWORD): HResult; stdcall; |
lpD3DRMFrameCamera: IDirect3DRMFrame; xpos, ypos, |
width, height: DWORD) : HResult; stdcall; |
function Clear: HResult; stdcall; |
function Render(lpD3DRMFrame: IDirect3DRMFrame): HResult; stdcall; |
function SetFront(rvFront: TD3DValue): HResult; stdcall; |
6725,20 → 10299,20 |
function SetUniformScaling(bScale: BOOL): HResult; stdcall; |
function SetCamera(lpCamera: IDirect3DRMFrame): HResult; stdcall; |
function SetProjection(rptType: TD3DRMProjectionType): HResult; stdcall; |
function Transform(var lprvDst: TD3DRMVector4D; const lprvSrc: TD3DVector): HResult; stdcall; |
function InverseTransform(var lprvDst: TD3DVector; |
var lprvSrc: TD3DRMVector4D): HResult; stdcall; |
function Configure(lX, lY: Longint; dwWidth, dwHeight: DWORD): HResult; stdcall; |
function Transform (out lprvDst: TD3DRMVector4D; const lprvSrc: TD3DVector) : HResult; stdcall; |
function InverseTransform (out lprvDst: TD3DVector; |
const lprvSrc: TD3DRMVector4D) : HResult; stdcall; |
function Configure (lX, lY: LongInt; dwWidth, dwHeight: DWORD) : HResult; stdcall; |
function ForceUpdate(dwX1, dwY1, dwX2, dwY2: DWORD): HResult; stdcall; |
function SetPlane(rvLeft, rvRight, rvBottom, rvTop: TD3DValue): HResult; stdcall; |
function GetCamera(out lpCamera: IDirect3DRMFrame): HResult; stdcall; |
function GetDevice(out lpD3DRMDevice: IDirect3DRMDevice): HResult; stdcall; |
function GetPlane(var lpd3dvLeft, lpd3dvRight, lpd3dvBottom, |
lpd3dvTop: TD3DValue): HResult; stdcall; |
function Pick(lX, lY: Longint; out lplpVisuals: IDirect3DRMPickedArray): HResult; stdcall; |
function GetPlane (out lpd3dvLeft, lpd3dvRight, lpd3dvBottom, lpd3dvTop: |
TD3DValue) : HResult; stdcall; |
function Pick (lX, lY: LongInt; var lplpVisuals: IDirect3DRMPickedArray) : HResult; stdcall; |
function GetUniformScaling: BOOL; stdcall; |
function GetX: Longint; stdcall; |
function GetY: Longint; stdcall; |
function GetX: LongInt; stdcall; |
function GetY: LongInt; stdcall; |
function GetWidth: DWORD; stdcall; |
function GetHeight: DWORD; stdcall; |
function GetField: TD3DValue; stdcall; |
6749,10 → 10323,13 |
end; |
IDirect3DRMViewport2 = interface(IDirect3DRMObject) |
['{4A1B1BE6-BFED-11D1-8ED8-00A0C967A482}'] |
// IDirect3DRMViewport2 methods |
function Init(dec: IDirect3DRMDevice3; camera: IDirect3DRMFrame3; |
xpos, ypos: DWORD; width, height: DWORD): HResult; stdcall; |
['{4a1b1be6-bfed-11d1-8ed8-00a0c967a482}'] |
(* |
* IDirect3DRMViewport2 methods |
*) |
function Init (lpD3DRMDevice: IDirect3DRMDevice3; |
lpD3DRMFrameCamera: IDirect3DRMFrame3; xpos, ypos, |
width, height: DWORD) : HResult; stdcall; |
function Clear(dwFlags: DWORD): HResult; stdcall; |
function Render(lpD3DRMFrame: IDirect3DRMFrame3): HResult; stdcall; |
function SetFront(rvFront: TD3DValue): HResult; stdcall; |
6761,20 → 10338,20 |
function SetUniformScaling(bScale: BOOL): HResult; stdcall; |
function SetCamera(lpCamera: IDirect3DRMFrame3): HResult; stdcall; |
function SetProjection(rptType: TD3DRMProjectionType): HResult; stdcall; |
function Transform(var lprvDst: TD3DRMVector4D; const lprvSrc: TD3DVector): HResult; stdcall; |
function InverseTransform(var lprvDst: TD3DVector; |
function Transform (out lprvDst: TD3DRMVector4D; const lprvSrc: TD3DVector) : HResult; stdcall; |
function InverseTransform (out lprvDst: TD3DVector; |
const lprvSrc: TD3DRMVector4D): HResult; stdcall; |
function Configure(lX, lY: Longint; dwWidth, dwHeight: DWORD): HResult; stdcall; |
function Configure (lX, lY: LongInt; dwWidth, dwHeight: DWORD) : HResult; stdcall; |
function ForceUpdate(dwX1, dwY1, dwX2, dwY2: DWORD): HResult; stdcall; |
function SetPlane(rvLeft, rvRight, rvBottom, rvTop: TD3DValue): HResult; stdcall; |
function GetCamera(out lpCamera: IDirect3DRMFrame3): HResult; stdcall; |
function GetDevice(out lpD3DRMDevice: IDirect3DRMDevice3): HResult; stdcall; |
function GetPlane(var lpd3dvLeft, lpd3dvRight, lpd3dvBottom, |
lpd3dvTop: TD3DValue): HResult; stdcall; |
function Pick(lX, lY: Longint; out lplpVisuals: IDirect3DRMPickedArray): HResult; stdcall; |
function GetPlane (out lpd3dvLeft, lpd3dvRight, lpd3dvBottom, lpd3dvTop: |
TD3DValue) : HResult; stdcall; |
function Pick (lX, lY: LongInt; var lplpVisuals: IDirect3DRMPickedArray) : HResult; stdcall; |
function GetUniformScaling: BOOL; stdcall; |
function GetX: Longint; stdcall; |
function GetY: Longint; stdcall; |
function GetX: LongInt; stdcall; |
function GetY: LongInt; stdcall; |
function GetWidth: DWORD; stdcall; |
function GetHeight: DWORD; stdcall; |
function GetField: TD3DValue; stdcall; |
6781,16 → 10358,18 |
function GetBack: TD3DValue; stdcall; |
function GetFront: TD3DValue; stdcall; |
function GetProjection: TD3DRMProjectionType; stdcall; |
function GetDirect3DViewport(out lplpD3DViewport: IDirect3DViewport): HResult; stdcall; |
function TransformVectors(dwNumVectors: DWORD; var lpDstVectors: TD3DRMVector4D; |
const lpSrcVectors: TD3DVector): HResult; stdcall; |
function InverseTransformVectors(dwNumVectors: DWORD; var lpDstVectors: TD3DVector; |
const lpSrcVectors: TD3DRMVector4D): HResult; stdcall; |
function GetDirect3DViewport (var lplpD3DViewport: IDirect3DViewport) : HResult; stdcall; |
function TransformVectors (dwNumVectors: DWORD; out lpDstVectors: |
TD3DRMVector4D; const lpSrcVectors: TD3DVector) : HResult; stdcall; |
function InverseTransformVectors (dwNumVectors: DWORD; out lpDstVectors: |
TD3DRMVector4D; const lpSrcVectors: TD3DVector) : HResult; stdcall; |
end; |
IDirect3DRMFrame = interface(IDirect3DRMVisual) |
['{EB16CB03-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMFrame methods |
['{eb16cb03-d271-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMFrame methods |
*) |
function AddChild(lpD3DRMFrameChild: IDirect3DRMFrame): HResult; stdcall; |
function AddLight(lpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
function AddMoveCallback(d3drmFMC: TD3DRMFrameMoveCallback; |
6797,10 → 10376,9 |
lpArg: Pointer): HResult; stdcall; |
function AddTransform(rctCombine: TD3DRMCombineType; |
rmMatrix: TD3DRMMatrix4D): HResult; stdcall; |
function AddTranslation(rctCombine: TD3DRMCombineType; rvX, rvY, |
rvZ: TD3DValue): HResult; stdcall; |
function AddScale(rctCombine: TD3DRMCombineType; rvX, rvY, |
rvZ: TD3DValue): HResult; stdcall; |
function AddTranslation (rctCombine: TD3DRMCombineType; rvX, rvY, rvZ: |
TD3DValue) : HResult; stdcall; |
function AddScale (rctCombine: TD3DRMCombineType; rvX, rvY, rvZ: TD3DValue) : HResult; stdcall; |
function AddRotation(rctCombine: TD3DRMCombineType; rvX, rvY, rvZ, |
rvTheta: TD3DValue): HResult; stdcall; |
function AddVisual(lpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
6809,20 → 10387,20 |
function GetLights(out lplpLights: IDirect3DRMLightArray): HResult; stdcall; |
function GetMaterialMode: TD3DRMMaterialMode; stdcall; |
function GetParent(out lplpParent: IDirect3DRMFrame): HResult; stdcall; |
function GetPosition(lpRef: IDirect3DRMFrame; var lprvPos: TD3DVector): HResult; stdcall; |
function GetRotation(lpRef: IDirect3DRMFrame; var lprvAxis: TD3DVector; |
var lprvTheta: TD3DValue): HResult; stdcall; |
function GetPosition (lpRef: IDirect3DRMFrame; out lprvPos: TD3DVector) : HResult; stdcall; |
function GetRotation (lpRef: IDirect3DRMFrame; out lprvAxis: TD3DVector; |
out lprvTheta: TD3DValue) : HResult; stdcall; |
function GetScene(out lplpRoot: IDirect3DRMFrame): HResult; stdcall; |
function GetSortMode: TD3DRMSortMode; stdcall; |
function GetTexture(out lplpTexture: IDirect3DRMTexture): HResult; stdcall; |
function GetTransform(var rmMatrix: TD3DRMMatrix4D): HResult; stdcall; |
function GetTransform (out rmMatrix: TD3DRMMatrix4D) : HResult; stdcall; |
function GetVelocity(lpRef: IDirect3DRMFrame; var lprvVel: TD3DVector; |
fRotVel: BOOL): HResult; stdcall; |
function GetOrientation(lpRef: IDirect3DRMFrame; var lprvDir: TD3DVector; |
var lprvUp: TD3DVector): HResult; stdcall; |
function GetVisuals(out lplpVisuals: IDirect3DRMVisualArray): HResult; stdcall; |
function GetTextureTopology(var lpU, lpV: BOOL): HResult; stdcall; |
function InverseTransform(var lprvDst, lprvSrc: TD3DVector): HResult; stdcall; |
function GetTextureTopology (out lpU, lpV: BOOL) : HResult; stdcall; |
function InverseTransform (out lprvDst: TD3DVector; const lprvSrc: TD3DVector) : HResult; stdcall; |
function Load(lpvObjSource: Pointer; lpvObjID: Pointer; |
d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadTextureProc: |
TD3DRMLoadTextureCallback; lpArgLTP: Pointer): HResult; stdcall; |
6839,7 → 10417,7 |
function GetSceneFogColor: TD3DColor; stdcall; |
function GetSceneFogEnable: BOOL; stdcall; |
function GetSceneFogMode: TD3DRMFogMode; stdcall; |
function GetSceneFogParams(var lprvStart, lprvEnd, lprvDensity: TD3DValue): HResult; stdcall; |
function GetSceneFogParams (out lprvStart, lprvEnd, lprvDensity: TD3DValue) : HResult; stdcall; |
function SetSceneBackground(rcColor: TD3DColor): HResult; stdcall; |
function SetSceneBackgroundRGB(rvRed, rvGreen, rvBlue: TD3DValue): HResult; stdcall; |
function SetSceneBackgroundDepth(lpImage: IDirectDrawSurface): HResult; stdcall; |
6863,34 → 10441,41 |
function SetVelocity(lpRef: IDirect3DRMFrame; rvX, rvY, rvZ: TD3DValue; |
fRotVel: BOOL): HResult; stdcall; |
function SetZbufferMode(d3drmZBM: TD3DRMZBufferMode): HResult; stdcall; |
function Transform(var lpd3dVDst, lpd3dVSrc: TD3DVector): HResult; stdcall; |
function Transform (out lpd3dVDst: TD3DVector; const lpd3dVSrc: TD3DVector) : HResult; stdcall; |
end; |
IDirect3DRMFrame2 = interface(IDirect3DRMFrame) |
['{C3DFBD60-3988-11D0-9EC2-0000C0291AC3}'] |
// IDirect3DRMFrame2 methods |
['{c3dfbd60-3988-11d0-9ec2-0000c0291ac3}'] |
(* |
* IDirect3DRMFrame2 methods |
*) |
function AddMoveCallback2(d3drmFMC: TD3DRMFrameMoveCallback; lpArg: |
Pointer; dwFlags: DWORD): HResult; stdcall; |
function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
function GetBoxEnable: BOOL; stdcall; |
function GetAxes(var dir, up: TD3DVector): HResult; stdcall; |
function GetBox (out lpTD3DRMBox: TD3DRMBox) : HResult; stdcall; |
function GetBoxEnable : boolean; stdcall; |
function GetAxes (out dir, up: TD3DVector) : HResult; stdcall; |
function GetMaterial(out lplpMaterial: IDirect3DRMMaterial): HResult; stdcall; |
function GetInheritAxes: BOOL; stdcall; |
function GetHierarchyBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
function SetBox(const lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
function GetInheritAxes : boolean; stdcall; |
function GetHierarchyBox (out lpTD3DRMBox: TD3DRMBox) : HResult; stdcall; |
function SetBox (const lpTD3DRMBox: TD3DRMBox) : HResult; stdcall; |
function SetBoxEnable(bEnableFlag: BOOL): HResult; stdcall; |
function SetAxes(dx, dy, dz, ux, uy, uz: TD3DValue): HResult; stdcall; |
function SetInheritAxes(inherit_from_parent: BOOL): HResult; stdcall; |
function SetMaterial(lplpMaterial: IDirect3DRMMaterial): HResult; stdcall; |
function SetQuaternion(lpRef: IDirect3DRMFrame2; var quat: TD3DRMQuaternion): HResult; stdcall; |
function RayPick(lpRefFrame: IDirect3DRMFrame; const ray: TD3DRMRay; |
dwFlags: DWORD; out lplpPicked2Array: IDirect3DRMPicked2Array): HResult; stdcall; |
function Save(lpFilename: PChar; d3dFormat: TD3DRMXOFFormat; |
function SetMaterial (var lplpMaterial: IDirect3DRMMaterial) : HResult; stdcall; |
function SetQuaternion (lpRef: IDirect3DRMFrame; |
const quat: TD3DRMQuaternion) : HResult; stdcall; |
function RayPick (lpRefFrame: IDirect3DRMFrame; var ray: TD3DRMRay; |
dwFlags: DWORD; out lplpPicked2Array: IDirect3DRMPicked2Array) : |
HResult; stdcall; |
function Save (lpFilename: PAnsiChar; d3dFormat: TD3DRMXOFFormat; |
d3dSaveFlags: TD3DRMSaveOptions): HResult; stdcall; |
end; |
IDirect3DRMFrame3 = interface(IDirect3DRMVisual) |
['{FF6B7F70-A40E-11D1-91F9-0000F8758E66}'] |
['{ff6b7f70-a40e-11d1-91f9-0000f8758e66}'] |
(* |
* IDirect3DRMFrame3 methods |
*) |
function AddChild(lpD3DRMFrameChild: IDirect3DRMFrame3): HResult; stdcall; |
function AddLight(lpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
function AddMoveCallback(d3drmFMC: TD3DRMFrame3MoveCallback; |
6897,10 → 10482,9 |
lpArg: Pointer; dwFlags: DWORD): HResult; stdcall; |
function AddTransform(rctCombine: TD3DRMCombineType; |
rmMatrix: TD3DRMMatrix4D): HResult; stdcall; |
function AddTranslation(rctCombine: TD3DRMCombineType; rvX, rvY, |
rvZ: TD3DValue): HResult; stdcall; |
function AddScale(rctCombine: TD3DRMCombineType; rvX, rvY, |
rvZ: TD3DValue): HResult; stdcall; |
function AddTranslation (rctCombine: TD3DRMCombineType; rvX, rvY, rvZ: |
TD3DValue) : HResult; stdcall; |
function AddScale (rctCombine: TD3DRMCombineType; rvX, rvY, rvZ: TD3DValue) : HResult; stdcall; |
function AddRotation(rctCombine: TD3DRMCombineType; rvX, rvY, rvZ, |
rvTheta: TD3DValue): HResult; stdcall; |
function AddVisual(lpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
6909,19 → 10493,20 |
function GetLights(out lplpLights: IDirect3DRMLightArray): HResult; stdcall; |
function GetMaterialMode: TD3DRMMaterialMode; stdcall; |
function GetParent(out lplpParent: IDirect3DRMFrame3): HResult; stdcall; |
function GetPosition(lpRef: IDirect3DRMFrame3; var lprvPos: TD3DVector): HResult; stdcall; |
function GetRotation(lpRef: IDirect3DRMFrame3; var lprvAxis: TD3DVector; |
var lprvTheta: TD3DValue): HResult; stdcall; |
function GetPosition (lpRef: IDirect3DRMFrame3; out lprvPos: TD3DVector) : HResult; stdcall; |
function GetRotation (lpRef: IDirect3DRMFrame3; out lprvAxis: TD3DVector; |
out lprvTheta: TD3DValue) : HResult; stdcall; |
function GetScene(out lplpRoot: IDirect3DRMFrame3): HResult; stdcall; |
function GetSortMode: TD3DRMSortMode; stdcall; |
function GetTexture(out lplpTexture: IDirect3DRMTexture3): HResult; stdcall; |
function GetTransform(RefFrame: IDirect3DRMFrame3; var rmMatrix: TD3DRMMatrix4D): HResult; stdcall; |
function GetVelocity(lpRef: IDirect3DRMFrame3; var lprvVel: TD3DVector; |
function GetTransform (lpRefFrame: IDirect3DRMFrame3; |
var rmMatrix: TD3DRMMatrix4D) : HResult; stdcall; |
function GetVelocity (lpRef: IDirect3DRMFrame3; out lprvVel: TD3DVector; |
fRotVel: BOOL): HResult; stdcall; |
function GetOrientation(lpRef: IDirect3DRMFrame3; var lprvDir: TD3DVector; |
var lprvUp: TD3DVector): HResult; stdcall; |
function GetVisuals(var pdwNumVisuals: DWORD; var lplpVisuals: Pointer): HResult; stdcall; |
function InverseTransform(var lprvDst, lprvSrc: TD3DVector): HResult; stdcall; |
function GetOrientation (lpRef: IDirect3DRMFrame3; out lprvDir: TD3DVector; |
out lprvUp: TD3DVector) : HResult; stdcall; |
function GetVisuals (out lplpVisuals: IDirect3DRMVisualArray) : HResult; stdcall; |
function InverseTransform (out lprvDst: TD3DVector; const lprvSrc: TD3DVector) : HResult; stdcall; |
function Load(lpvObjSource: Pointer; lpvObjID: Pointer; |
d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadTextureProc: |
TD3DRMLoadTexture3Callback; lpArgLTP: Pointer): HResult; stdcall; |
6937,7 → 10522,7 |
function GetSceneFogColor: TD3DColor; stdcall; |
function GetSceneFogEnable: BOOL; stdcall; |
function GetSceneFogMode: TD3DRMFogMode; stdcall; |
function GetSceneFogParams(var lprvStart, lprvEnd, lprvDensity: TD3DValue): HResult; stdcall; |
function GetSceneFogParams (out lprvStart, lprvEnd, lprvDensity: TD3DValue) : HResult; stdcall; |
function SetSceneBackground(rcColor: TD3DColor): HResult; stdcall; |
function SetSceneBackgroundRGB(rvRed, rvGreen, rvBlue: TD3DValue): HResult; stdcall; |
function SetSceneBackgroundDepth(lpImage: IDirectDrawSurface): HResult; stdcall; |
6952,48 → 10537,59 |
function SetMaterialMode(rmmMode: TD3DRMMaterialMode): HResult; stdcall; |
function SetOrientation(lpRef: IDirect3DRMFrame3; rvDx, rvDy, rvDz, rvUx, |
rvUy, rvUz: TD3DValue): HResult; stdcall; |
function SetPosition(lpRef: IDirect3DRMFrame3; rvX, rvY, rvZ: TD3DValue): HResult; stdcall; |
function SetRotation(lpRef: IDirect3DRMFrame3; rvX, rvY, rvZ, rvTheta: TD3DValue): HResult; stdcall; |
function SetPosition (lpRef: IDirect3DRMFrame3; rvX, rvY, rvZ: TD3DValue) : |
HResult; stdcall; |
function SetRotation (lpRef: IDirect3DRMFrame3; rvX, rvY, rvZ, |
rvTheta: TD3DValue) : HResult; stdcall; |
function SetSortMode(d3drmSM: TD3DRMSortMode): HResult; stdcall; |
function SetTexture(lpD3DRMTexture: IDirect3DRMTexture3): HResult; stdcall; |
function SetVelocity(lpRef: IDirect3DRMFrame3; rvX, rvY, rvZ: TD3DValue; |
fRotVel: BOOL): HResult; stdcall; |
function SetZbufferMode(d3drmZBM: TD3DRMZBufferMode): HResult; stdcall; |
function Transform(var lpd3dVDst, lpd3dVSrc: TD3DVector): HResult; stdcall; |
function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
function GetBoxEnable: BOOL; stdcall; |
function GetAxes(var dir, up: TD3DVector): HResult; stdcall; |
function Transform (out lpd3dVDst: TD3DVector; const lpd3dVSrc: TD3DVector) : HResult; stdcall; |
function GetBox (out lpTD3DRMBox: TD3DRMBox) : HResult; stdcall; |
function GetBoxEnable : boolean; stdcall; |
function GetAxes (out dir, up: TD3DVector) : HResult; stdcall; |
function GetMaterial(out lplpMaterial: IDirect3DRMMaterial2): HResult; stdcall; |
function GetInheritAxes: BOOL; stdcall; |
function GetHierarchyBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
function SetBox(const lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
function GetInheritAxes : boolean; stdcall; |
function GetHierarchyBox (out lpTD3DRMBox: TD3DRMBox) : HResult; stdcall; |
function SetBox (const lpTD3DRMBox: TD3DRMBox) : HResult; stdcall; |
function SetBoxEnable(bEnableFlag: BOOL): HResult; stdcall; |
function SetAxes(dx, dy, dz, ux, uy, uz: TD3DValue): HResult; stdcall; |
function SetInheritAxes(inherit_from_parent: BOOL): HResult; stdcall; |
function SetMaterial(lplpMaterial: IDirect3DRMMaterial2): HResult; stdcall; |
function SetQuaternion(lpRef: IDirect3DRMFrame3; var quat: TD3DRMQuaternion): HResult; stdcall; |
function RayPick(lpRefFrame: IDirect3DRMFrame3; const ray: TD3DRMRay; |
function SetMaterial (var lplpMaterial: IDirect3DRMMaterial2) : HResult; stdcall; |
function SetQuaternion (lpRef: IDirect3DRMFrame3; |
const quat: TD3DRMQuaternion) : HResult; stdcall; |
function RayPick (lpRefFrame: IDirect3DRMFrame3; var ray: TD3DRMRay; |
dwFlags: DWORD; out lplpPicked2Array: IDirect3DRMPicked2Array): HResult; stdcall; |
function Save(lpFilename: PChar; d3dFormat: TD3DRMXOFFormat; |
function Save (lpFilename: PAnsiChar; d3dFormat: TD3DRMXOFFormat; |
d3dSaveFlags: TD3DRMSaveOptions): HResult; stdcall; |
function TransformVectors(reference: IDirect3DRMFrame3; dwNumVectors: DWORD; |
var lpDstVectors: TD3DVector; const lpSrcVectors: TD3DVector): HResult; stdcall; |
function InverseTransformVectors(reference: IDirect3DRMFrame3; dwNumVectors: DWORD; |
var lpDstVectors: TD3DVector; const lpSrcVectors: TD3DVector): HResult; stdcall; |
function TransformVectors (lpRefFrame: IDirect3DRMFrame3; |
dwNumVectors: DWORD; out lpDstVectors: TD3DVector; |
const lpSrcVectors: TD3DVector) : HResult; stdcall; |
function InverseTransformVectors (lpRefFrame: IDirect3DRMFrame3; |
dwNumVectors: DWORD; out lpDstVectors: TD3DVector; |
const lpSrcVectors: TD3DVector) : HResult; stdcall; |
function SetTraversalOptions(dwFlags: DWORD): HResult; stdcall; |
function GetTraversalOptions(var lpdwFlags: DWORD): HResult; stdcall; |
function GetTraversalOptions (out lpdwFlags: DWORD) : HResult; stdcall; |
function SetSceneFogMethod(dwFlags: DWORD): HResult; stdcall; |
function GetSceneFogMethod(var lpdwFlags: DWORD): HResult; stdcall; |
function SetMaterialOverride(lpdmOverride: TD3DRMMaterialOverride): HResult; stdcall; |
function GetMaterialOverride(var lplpdmOverride: TD3DRMMaterialOverride): HResult; stdcall; |
function GetSceneFogMethod (out lpdwFlags: DWORD) : HResult; stdcall; |
function SetMaterialOverride ( |
const lpdmOverride: TD3DRMMaterialOverride) : HResult; stdcall; |
function GetMaterialOverride ( |
const lpdmOverride: TD3DRMMaterialOverride) : HResult; stdcall; |
end; |
IDirect3DRMMesh = interface(IDirect3DRMVisual) |
['{A3A80D01-6E12-11CF-AC4A-0000C03825A1}'] |
// IDirect3DRMMesh methods |
['{a3a80d01-6e12-11cf-ac4a-0000c03825a1}'] |
(* |
* IDirect3DRMMesh methods |
*) |
function Scale(sx, sy, sz: TD3DValue): HResult; stdcall; |
function Translate(tx, ty, tz: TD3DValue): HResult; stdcall; |
function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
function GetBox (out lpTD3DRMBox: TD3DRMBox) : HResult; stdcall; |
function AddGroup(vCount, fCount, vPerFace: DWORD; var fData: DWORD; |
var returnId: TD3DRMGroupIndex): HResult; stdcall; |
function SetVertices(id: TD3DRMGroupIndex; index, count: DWORD; |
7009,10 → 10605,10 |
IDirect3DRMMaterial): HResult; stdcall; |
function SetGroupTexture(id: TD3DRMGroupIndex; value: IDirect3DRMTexture): HResult; stdcall; |
function GetGroupCount: DWORD; stdcall; |
function GetGroup(id: TD3DRMGroupIndex; var vCount, fCount, vPerFace, |
fDataSize, fData: DWORD): HResult; stdcall; |
function GetVertices(id: TD3DRMGroupIndex; index: DWORD; count: DWORD; |
var returnPtr: TD3DRMVertex): HResult; stdcall; |
function GetGroup (id: TD3DRMGroupIndex; vCount, fCount, vPerFace : PDWORD; |
var fDataSize: DWORD; fData: PDWORD) : HResult; stdcall; |
function GetVertices (id: TD3DRMGroupIndex; index, count : DWORD; |
out returnPtr : TD3DRMVertex) : HResult; stdcall; |
function GetGroupColor(id: TD3DRMGroupIndex): TD3DColor; stdcall; |
function GetGroupMapping(id: TD3DRMGroupIndex): TD3DRMMapping; stdcall; |
function GetGroupQuality(id: TD3DRMGroupIndex): TD3DRMRenderQuality; stdcall; |
7023,52 → 10619,66 |
end; |
IDirect3DRMProgressiveMesh = interface(IDirect3DRMVisual) |
['{4516EC79-8F20-11D0-9B6D-0000C0781BC3}'] |
// IDirect3DRMProgressiveMesh methods |
['{4516ec79-8f20-11d0-9b6d-0000c0781bc3}'] |
(* |
* IDirect3DRMProgressiveMesh methods |
*) |
function Load(lpSource, lpObjID: pointer; dloLoadflags: TD3DRMLoadOptions; |
lpCallback: TD3DRMLoadTextureCallback; lpArg: pointer): HResult; stdcall; |
function GetLoadStatus(var lpStatus: TD3DRMPMeshLoadStatus): HResult; stdcall; |
function GetLoadStatus (out lpStatus: TD3DRMPMeshLoadStatus) : HResult; stdcall; |
function SetMinRenderDetail(d3dVal: TD3DValue): HResult; stdcall; |
function Abort(dwFlags: DWORD): HResult; stdcall; |
function GetFaceDetail(var lpdwCount: DWORD): HResult; stdcall; |
function GetVertexDetail(var lpdwCount: DWORD): HResult; stdcall; |
function GetFaceDetail (out lpdwCount: DWORD) : HResult; stdcall; |
function GetVertexDetail (out lpdwCount: DWORD) : HResult; stdcall; |
function SetFaceDetail(dwCount: DWORD): HResult; stdcall; |
function SetVertexDetail(dwCount: DWORD): HResult; stdcall; |
function GetFaceDetailRange(var lpdwMin, lpdwMax: DWORD): HResult; stdcall; |
function GetVertexDetailRange(var lpdwMin, lpdwMax: DWORD): HResult; stdcall; |
function GetDetail(var lpdvVal: TD3DValue): HResult; stdcall; |
function GetFaceDetailRange (out lpdwMin, lpdwMax: DWORD) : HResult; stdcall; |
function GetVertexDetailRange (out lpdwMin, lpdwMax: DWORD) : HResult; stdcall; |
function GetDetail (out lpdvVal: TD3DValue) : HResult; stdcall; |
function SetDetail(lpdvVal: TD3DValue): HResult; stdcall; |
function RegisterEvents(hEvent: THANDLE; dwFlags, dwReserved: DWORD): HResult; stdcall; |
function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
function Duplicate(out lplpD3DRMPMesh: IDirect3DRMProgressiveMesh): HResult; stdcall; |
function GetBox(var lpBBox: TD3DRMBox): HResult; stdcall; |
function GetBox (out lpBBox: TD3DRMBox) : HResult; stdcall; |
function SetQuality(quality: TD3DRMRenderQuality): HResult; stdcall; |
function GetQuality(var lpdwquality: TD3DRMRenderQuality): HResult; stdcall; |
function GetQuality (out lpdwquality: TD3DRMRenderQuality) : HResult; stdcall; |
end; |
IDirect3DRMShadow = interface(IDirect3DRMVisual) |
['{AF359780-6BA3-11CF-AC4A-0000C03825A1}'] |
// IDirect3DRMShadow methods |
['{af359780-6ba3-11cf-ac4a-0000c03825a1}'] |
(* |
* IDirect3DRMShadow methods |
*) |
function Init(lpD3DRMVisual: IDirect3DRMVisual; |
lpD3DRMLight: IDirect3DRMLight; px, py, pz, nx, ny, nz: TD3DValue): HResult; stdcall; |
lpD3DRMLight: IDirect3DRMLight; |
px, py, pz, nx, ny, nz: TD3DValue) : HResult; stdcall; |
end; |
IDirect3DRMShadow2 = interface(IDirect3DRMShadow) |
['{86B44E25-9C82-11D1-BB0B-00A0C981A0A6}'] |
// IDirect3DRMShadow2 methods |
['{86b44e25-9c82-11d1-bb0b-00a0c981a0a6}'] |
(* |
* IDirect3DRMShadow2 methods |
*) |
function GetVisual(out lplpDirect3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
function SetVisual(pUNK: IUnknown; dwFlags: DWORD): HResult; stdcall; |
function SetVisual (lpDirect3DRMVisual: IDirect3DRMVisual; |
dwFlags: DWORD) : HResult; stdcall; |
function GetLight(out lplpDirect3DRMLight: IDirect3DRMLight): HResult; stdcall; |
function SetLight(lpDirect3DRMLight: IDirect3DRMLight; dwFlags: DWORD): HResult; stdcall; |
function GetPlane(var px, py, pz: TD3DValue; var nx, ny, nz: TD3DValue): HResult; stdcall; |
function SetPlane(px, py, pz: TD3DValue; nx, ny, nz: TD3DValue): HResult; stdcall; |
function GetOptions(var pdwOptions: DWORD): HResult; stdcall; |
function SetLight (lplpDirect3DRMLight: IDirect3DRMLight; |
dwFlags: DWORD) : HResult; stdcall; |
function GetPlane ( |
var pdvPX, pdvPY, pdvPZ, pdvNX, pdvNY, pdvNZ: TD3DValue) : HResult; stdcall; |
function SetPlane (px, py, pz, nx, ny, nz: TD3DValue; |
dwFlags: DWORD) : HResult; stdcall; |
function GetOptions (out pdwOptions: DWORD) : HResult; stdcall; |
function SetOptions(dwOptions: DWORD): HResult; stdcall; |
end; |
IDirect3DRMFace = interface(IDirect3DRMObject) |
['{EB16CB07-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMFace methods |
['{eb16cb07-d271-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMFace methods |
*) |
function AddVertex(x, y, z: TD3DValue): HResult; stdcall; |
function AddVertexAndNormalIndexed(vertex: DWORD; normal: DWORD): HResult; stdcall; |
function SetColorRGB(red, green, blue: TD3DValue): HResult; stdcall; |
7077,22 → 10687,26 |
function SetTextureCoordinates(vertex: DWORD; u, v: TD3DValue): HResult; stdcall; |
function SetMaterial(lpMat: IDirect3DRMMaterial): HResult; stdcall; |
function SetTextureTopology(cylU, cylV: BOOL): HResult; stdcall; |
function GetVertex(index: DWORD; var lpPosition: TD3DVector; var lpNormal: TD3DVector): HResult; stdcall; |
function GetVertices(var lpdwVertexCount: DWORD; var lpPosition, lpNormal: TD3DVector): HResult; stdcall; |
function GetTextureCoordinates(index: DWORD; var lpU, lpV: TD3DValue): HResult; stdcall; |
function GetTextureTopology(var lpU, lpV: BOOL): HResult; stdcall; |
function GetNormal(var lpNormal: TD3DVector): HResult; stdcall; |
function GetVertex (index: DWORD; out lpPosition: TD3DVector; |
out lpNormal: TD3DVector) : HResult; stdcall; |
function GetVertices (var lpdwVertexCount: DWORD; |
out lpPosition, lpNormal: TD3DVector) : HResult; stdcall; |
function GetTextureCoordinates (index: DWORD; out lpU, lpV: TD3DValue) : HResult; stdcall; |
function GetTextureTopology (out lpU, lpV: BOOL) : HResult; stdcall; |
function GetNormal (out lpNormal: TD3DVector) : HResult; stdcall; |
function GetTexture(out lplpTexture: IDirect3DRMTexture): HResult; stdcall; |
function GetMaterial(out lpMat: IDirect3DRMMaterial): HResult; stdcall; |
function GetVertexCount: Longint; stdcall; |
function GetVertexIndex(dwIndex: DWORD): Longint; stdcall; |
function GetTextureCoordinateIndex(dwIndex: DWORD): Longint; stdcall; |
function GetVertexCount: Integer; stdcall; |
function GetVertexIndex (dwIndex: DWORD) : Integer; stdcall; |
function GetTextureCoordinateIndex (dwIndex: DWORD) : Integer; stdcall; |
function GetColor: TD3DColor; stdcall; |
end; |
IDirect3DRMFace2 = interface(IDirect3DRMObject) |
['{4516EC81-8F20-11D0-9B6D-0000C0781BC3}'] |
// IDirect3DRMFace methods |
['{4516ec81-8f20-11d0-9b6d-0000c0781bc3}'] |
(* |
* IDirect3DRMFace2 methods |
*) |
function AddVertex(x, y, z: TD3DValue): HResult; stdcall; |
function AddVertexAndNormalIndexed(vertex: DWORD; normal: DWORD): HResult; stdcall; |
function SetColorRGB(red, green, blue: TD3DValue): HResult; stdcall; |
7101,30 → 10715,35 |
function SetTextureCoordinates(vertex: DWORD; u, v: TD3DValue): HResult; stdcall; |
function SetMaterial(lpMat: IDirect3DRMMaterial2): HResult; stdcall; |
function SetTextureTopology(cylU, cylV: BOOL): HResult; stdcall; |
function GetVertex(index: DWORD; var lpPosition: TD3DVector; var lpNormal: TD3DVector): HResult; stdcall; |
function GetVertices(var lpdwVertexCount: DWORD; var lpPosition, lpNormal: TD3DVector): HResult; stdcall; |
function GetTextureCoordinates(index: DWORD; var lpU, lpV: TD3DValue): HResult; stdcall; |
function GetTextureTopology(var lpU, lpV: BOOL): HResult; stdcall; |
function GetNormal(var lpNormal: TD3DVector): HResult; stdcall; |
function GetVertex (index: DWORD; out lpPosition: TD3DVector; |
out lpNormal: TD3DVector) : HResult; stdcall; |
function GetVertices (var lpdwVertexCount: DWORD; |
out lpPosition, lpNormal: TD3DVector) : HResult; stdcall; |
function GetTextureCoordinates (index: DWORD; out lpU, lpV: TD3DValue) : HResult; stdcall; |
function GetTextureTopology (out lpU, lpV: BOOL) : HResult; stdcall; |
function GetNormal (out lpNormal: TD3DVector) : HResult; stdcall; |
function GetTexture(out lplpTexture: IDirect3DRMTexture3): HResult; stdcall; |
function GetMaterial(out lpMat: IDirect3DRMMaterial2): HResult; stdcall; |
function GetVertexCount: Longint; stdcall; |
function GetVertexIndex(dwIndex: DWORD): Longint; stdcall; |
function GetTextureCoordinateIndex(dwIndex: DWORD): Longint; stdcall; |
function GetVertexCount: Integer; stdcall; |
function GetVertexIndex (dwIndex: DWORD) : Integer; stdcall; |
function GetTextureCoordinateIndex (dwIndex: DWORD) : Integer; stdcall; |
function GetColor: TD3DColor; stdcall; |
end; |
IDirect3DRMMeshBuilder = interface(IDirect3DRMVisual) |
['{A3A80D02-6E12-11CF-AC4A-0000C03825A1}'] |
// IDirect3DRMMeshBuilder methods |
function Load(lpvObjSource, lpvObjID: Pointer; d3drmLOFlags: TD3DRMLoadOptions; |
d3drmLoadTextureProc: TD3DRMLoadTextureCallback; lpvArg: Pointer): HResult; stdcall; |
['{a3a80d02-6e12-11cf-ac4a-0000c03825a1}'] |
(* |
* IDirect3DRMMeshBuilder methods |
*) |
function Load (lpvObjSource, lpvObjID: Pointer; d3drmLOFlags: |
TD3DRMLoadOptions; d3drmLoadTextureProc: TD3DRMLoadTextureCallback; |
lpvArg: Pointer) : HResult; stdcall; |
function Save(lpFilename: PChar; TD3DRMXOFFormat: TD3DRMXOFFormat; |
d3drmSOContents: TD3DRMSaveOptions): HResult; stdcall; |
function Scale(sx, sy, sz: TD3DValue): HResult; stdcall; |
function Translate(tx, ty, tz: TD3DValue): HResult; stdcall; |
function SetColorSource(source: TD3DRMColorSource): HResult; stdcall; |
function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
function GetBox (out lpTD3DRMBox: TD3DRMBox) : HResult; stdcall; |
function GenerateNormals: HResult; stdcall; |
function GetColorSource: TD3DRMColorSource; stdcall; |
function AddMesh(lpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
7131,9 → 10750,9 |
function AddMeshBuilder(lpD3DRMMeshBuild: IDirect3DRMMeshBuilder): HResult; stdcall; |
function AddFrame(lpD3DRMFrame: IDirect3DRMFrame): HResult; stdcall; |
function AddFace(lpD3DRMFace: IDirect3DRMFace): HResult; stdcall; |
function AddFaces(dwVertexCount: DWORD; var lpD3DVertices: TD3DVector; |
normalCount: DWORD; var lpNormals: TD3DVector; var lpFaceData: DWORD; |
out lplpD3DRMFaceArray: IDirect3DRMFaceArray): HResult; stdcall; |
function AddFaces (dwVertexCount: DWORD; const lpD3DVertices: TD3DVector; |
normalCount: DWORD; lpNormals: PD3DVector; var lpFaceData: DWORD; |
lplpD3DRMFaceArray: PIDirect3DRMFaceArray) : HResult; stdcall; |
function ReserveSpace(vertexCount, normalCount, faceCount: DWORD): HResult; stdcall; |
function SetColorRGB(red, green, blue: TD3DValue): HResult; stdcall; |
function SetColor(color: TD3DColor): HResult; stdcall; |
7149,52 → 10768,62 |
function SetVertexColorRGB(index: DWORD; red, green, blue: TD3DValue): HResult; stdcall; |
function GetFaces(out lplpD3DRMFaceArray: IDirect3DRMFaceArray): HResult; stdcall; |
function GetVertices(var vcount: DWORD; var vertices: TD3DVector; |
var ncount: DWORD; var normals: TD3DVector; var face_data_size: DWORD; |
var face_data: DWORD): HResult; stdcall; |
function GetTextureCoordinates(index: DWORD; var u, v: TD3DValue): HResult; stdcall; |
function AddVertex(x, y, z: TD3DValue): Longint; stdcall; |
function AddNormal(x, y, z: TD3DValue): Longint; stdcall; |
var ncount : DWORD; |
var normals : TD3DVector; |
var face_data_size, face_data : DWORD) : HResult; stdcall; |
function GetTextureCoordinates(index : DWORD; out u, v : TD3DValue) : HResult; stdcall; |
function AddVertex (x, y, z: TD3DValue) : Integer; stdcall; |
function AddNormal (x, y, z: TD3DValue) : Integer; stdcall; |
function CreateFace(out lplpd3drmFace: IDirect3DRMFace): HResult; stdcall; |
function GetQuality: TD3DRMRenderQuality; stdcall; |
function GetPerspective: BOOL; stdcall; |
function GetFaceCount: Longint; stdcall; |
function GetVertexCount: Longint; stdcall; |
function GetFaceCount: Integer; stdcall; |
function GetVertexCount: Integer; stdcall; |
function GetVertexColor(index: DWORD): TD3DColor; stdcall; |
function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
end; |
IDirect3DRMMeshBuilder2 = interface(IDirect3DRMMeshBuilder) |
['{4516EC77-8F20-11D0-9B6D-0000C0781BC3}'] |
// IDirect3DRMMeshBuilder2 methods |
function GenerateNormals2(dvCreaseAngle: TD3DValue; dwFlags: DWORD): HResult; stdcall; |
function GetFace(dwIndex: DWORD; out lplpD3DRMFace: IDirect3DRMFace): HResult; stdcall; |
['{4516ec77-8f20-11d0-9b6d-0000c0781bc3}'] |
(* |
* IDirect3DRMMeshBuilder2 methods |
*) |
function GenerateNormals2 ( |
dvCreaseAngle: TD3DValue; dwFlags: DWORD) : HResult; stdcall; |
function GetFace (dwIndex: DWORD; lplpD3DRMFace: IDirect3DRMFace) : HResult; stdcall; |
end; |
IDirect3DRMMeshBuilder3 = interface(IDirect3DRMVisual) |
['{4516EC82-8F20-11D0-9B6D-0000C0781BC3}'] |
// IDirect3DRMMeshBuilder methods |
function Load(lpvObjSource, lpvObjID: Pointer; d3drmLOFlags: TD3DRMLoadOptions; |
d3drmLoadTextureProc: TD3DRMLoadTexture3Callback; lpvArg: Pointer): HResult; stdcall; |
function Save(lpFilename: PChar; TD3DRMXOFFormat: TD3DRMXOFFormat; |
['{ff6b7f71-a40e-11d1-91f9-0000f8758e66}'] |
(* |
* IDirect3DRMMeshBuilder3 methods |
*) |
function Load (lpvObjSource, lpvObjID: Pointer; |
d3drmLOFlags: TD3DRMLoadOptions; |
d3drmLoadTextureProc: TD3DRMLoadTexture3Callback; |
lpvArg: Pointer) : HResult; stdcall; |
function Save (lpFilename: PAnsiChar; TD3DRMXOFFormat: TD3DRMXOFFormat; |
d3drmSOContents: TD3DRMSaveOptions): HResult; stdcall; |
function Scale(sx, sy, sz: TD3DValue): HResult; stdcall; |
function Translate(tx, ty, tz: TD3DValue): HResult; stdcall; |
function SetColorSource(source: TD3DRMColorSource): HResult; stdcall; |
function GetBox(var lpD3DRMBox: TD3DRMBox): HResult; stdcall; |
function GenerateNormals(dvCreaseAngle: TD3DValue; dwFlags: DWORD): HResult; stdcall; |
function GetBox (out lpTD3DRMBox: TD3DRMBox) : HResult; stdcall; |
function GenerateNormals ( |
dvCreaseAngle: TD3DValue; dwFlags: DWORD): HResult; stdcall; |
function GetColorSource: TD3DRMColorSource; stdcall; |
function AddMesh(lpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
function AddMeshBuilder(lpD3DRMMeshBuild: IDirect3DRMMeshBuilder3): HResult; stdcall; |
function AddMeshBuilder ( |
lpD3DRMMeshBuild: IDirect3DRMMeshBuilder3) : HResult; stdcall; |
function AddFrame(lpD3DRMFrame: IDirect3DRMFrame3): HResult; stdcall; |
function AddFace(lpD3DRMFace: IDirect3DRMFace2): HResult; stdcall; |
function AddFaces(dwVertexCount: DWORD; var lpD3DVertices: TD3DVector; |
normalCount: DWORD; var lpNormals: TD3DVector; var lpFaceData: DWORD; |
out lplpD3DRMFaceArray: IDirect3DRMFaceArray): HResult; stdcall; |
function AddFaces (dwVertexCount: DWORD; const lpD3DVertices: TD3DVector; |
normalCount: DWORD; lpNormals: PD3DVector; var lpFaceData: DWORD; |
lplpD3DRMFaceArray: PIDirect3DRMFaceArray) : HResult; stdcall; |
function ReserveSpace(vertexCount, normalCount, faceCount: DWORD): HResult; stdcall; |
function SetColorRGB(red, green, blue: TD3DValue): HResult; stdcall; |
function SetColor(color: TD3DColor): HResult; stdcall; |
function SetTexture(lpD3DRMTexture: IDirect3DRMTexture3): HResult; stdcall; |
function SetMaterial(lpDirect3DRMMaterial: IDirect3DRMMaterial2): HResult; stdcall; |
function SetMaterial (lpIDirect3DRMmaterial: IDirect3DRMMaterial2) : HResult; stdcall; |
function SetTextureTopology(cylU, cylV: BOOL): HResult; stdcall; |
function SetQuality(quality: TD3DRMRenderQuality): HResult; stdcall; |
function SetPerspective(perspective: BOOL): HResult; stdcall; |
7204,50 → 10833,53 |
function SetVertexColor(index: DWORD; color: TD3DColor): HResult; stdcall; |
function SetVertexColorRGB(index: DWORD; red, green, blue: TD3DValue): HResult; stdcall; |
function GetFaces(out lplpD3DRMFaceArray: IDirect3DRMFaceArray): HResult; stdcall; |
function GetGeometry(var vcount: DWORD; var vertices; var ncount: DWORD; var normals; |
var face_data_size: DWORD; var face_data): HResult; stdcall; |
function GetTextureCoordinates(index: DWORD; var u, v: TD3DValue): HResult; stdcall; |
function AddVertex(x, y, z: TD3DValue): Longint; stdcall; |
function AddNormal(x, y, z: TD3DValue): Longint; stdcall; |
function GetGeometry (var vcount: DWORD; var vertices : TD3DVector; |
var ncount : DWORD; var normals : TD3DVector; |
var face_data_size, face_data : DWORD) : HResult; stdcall; |
function GetTextureCoordinates(index : DWORD; out u, v : TD3DValue) : HResult; stdcall; |
function AddVertex (x, y, z: TD3DValue) : Integer; stdcall; |
function AddNormal (x, y, z: TD3DValue) : Integer; stdcall; |
function CreateFace(out lplpd3drmFace: IDirect3DRMFace2): HResult; stdcall; |
function GetQuality: TD3DRMRenderQuality; stdcall; |
function GetPerspective: BOOL; stdcall; |
function GetFaceCount: Longint; stdcall; |
function GetVertexCount: Longint; stdcall; |
function GetFaceCount: Integer; stdcall; |
function GetVertexCount: Integer; stdcall; |
function GetVertexColor(index: DWORD): TD3DColor; stdcall; |
function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
function GetFace(dwIndex: DWORD; out lplpD3DRMFace: IDirect3DRMFace2): HResult; stdcall; |
function GetVertex(dwIndex: DWORD; var lpVector: TD3DVector): HResult; stdcall; |
function GetNormal(dwIndex: DWORD; var lpVector: TD3DVector): HResult; stdcall; |
function DeleteVertices(dwIndexFirst: DWORD; dwCount: DWORD): HResult; stdcall; |
function DeleteNormals(dwIndexFirst: DWORD; dwCount: DWORD): HResult; stdcall; |
function DeleteFace(lpD3DRMFace: IDirect3DRMFace2): HResult; stdcall; |
function GetFace |
(dwIndex: DWORD; lplpD3DRMFace: IDirect3DRMFace) : HResult; stdcall; |
function GetVertex (dwIndex: DWORD; out lpVector: TD3DVector) : HResult; stdcall; |
function GetNormal (dwIndex: DWORD; out lpVector: TD3DVector) : HResult; stdcall; |
function DeleteVertices (dwFirstIndex, dwCount: DWORD) : HResult; stdcall; |
function DeleteNormals (dwFirstIndex, dwCount: DWORD) : HResult; stdcall; |
function DeleteFace (lpFace: IDirect3DRMFace2) : HResult; stdcall; |
function Empty(dwFlags: DWORD): HResult; stdcall; |
function Optimize(dwFlags: DWORD): HResult; stdcall; |
function AddFacesIndexed(dwFlags: DWORD; var lpdwvIndices: DWORD; |
var dwIndexFirst: DWORD; var dwCount: DWORD): HResult; stdcall; |
lpdwIndexFirst, lpdwCount: PDWORD) : HResult; stdcall; |
function CreateSubMesh(out lplpUnk: IUnknown): HResult; stdcall; |
function GetParentMesh(dwFlags: DWORD; out lplpUnk: IUnknown): HResult; stdcall; |
function GetSubMeshes(var lpdwCount: DWORD; out lplpUnk: IUnknown): HResult; stdcall; |
function DeleteSubMesh(lpUnk: IUnknown): HResult; stdcall; |
function GetSubMeshes (lpdwCount: PDWORD; lpUnk: IUnknown) : HResult; stdcall; |
function DeleteSubMesh (lplpUnk: IUnknown) : HResult; stdcall; |
function Enable(dwFlags: DWORD): HResult; stdcall; |
function GetEnable(var lpdwFlags: DWORD): HResult; stdcall; |
function AddTriangles(dwFlags: DWORD; dwFormat: DWORD; dwVertexCount: DWORD; |
lpvData: Pointer): HResult; stdcall; |
function SetVertices(dwIndexFirst: DWORD; dwCount: DWORD; |
const lpdvVector: TD3DVector): HResult; stdcall; |
function GetVertices(dwIndexFirst: DWORD; var lpdwCount: DWORD; |
function GetEnable (out lpdwFlags: DWORD) : HResult; stdcall; |
function AddTriangles (dwFlags, dwFormat, dwVertexCount: DWORD; |
lpData: pointer) : HResult; stdcall; |
function SetVertices |
(dwFirst, dwCount: DWORD; const lpdvVector: TD3DVector) : HResult; stdcall; |
function GetVertices(dwFirst: DWORD; var lpdwCount: DWORD; |
lpdvVector: PD3DVector) : HResult; stdcall; |
function SetNormals(dwFirst, dwCount: DWORD; const lpdvVector: TD3DVector) : HResult; stdcall; |
function GetNormals (dwFirst: DWORD; lpdwCount: PDWORD; |
var lpdvVector: TD3DVector): HResult; stdcall; |
function SetNormals(dwIndexFirst: DWORD; dwCount: DWORD; |
const lpdvVector: TD3DVector): HResult; stdcall; |
function GetNormals(dwIndexFirst: DWORD; var lpdwCount: DWORD; |
var lpdvVector: TD3DVector): HResult; stdcall; |
function GetNormalCount: Longint; stdcall; |
function GetNormalCount : integer; stdcall; |
end; |
IDirect3DRMLight = interface(IDirect3DRMObject) |
['{EB16CB08-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMLight methods |
['{eb16cb08-d271-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMLight methods |
*) |
function SetType(d3drmtType: TD3DRMLightType): HResult; stdcall; |
function SetColor(rcColor: TD3DColor): HResult; stdcall; |
function SetColorRGB(rvRed, rvGreen, rvBlue: TD3DValue): HResult; stdcall; |
7270,9 → 10902,11 |
end; |
IDirect3DRMTexture = interface(IDirect3DRMVisual) |
['{EB16CB09-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMTexture methods |
function InitFromFile(filename: PChar): HResult; stdcall; |
['{eb16cb09-d271-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMTexture methods |
*) |
function InitFromFile (filename: PAnsiChar) : HResult; stdcall; |
function InitFromSurface(lpDDS: IDirectDrawSurface): HResult; stdcall; |
function InitFromResource(rs: HRSRC): HResult; stdcall; |
function Changed(bPixels, bPalette: BOOL): HResult; stdcall; |
7279,12 → 10913,12 |
function SetColors(ulColors: DWORD): HResult; stdcall; |
function SetShades(ulShades: DWORD): HResult; stdcall; |
function SetDecalSize(rvWidth, rvHeight: TD3DValue): HResult; stdcall; |
function SetDecalOrigin(lX, lY: Longint): HResult; stdcall; |
function SetDecalOrigin (lX, lY: LongInt) : HResult; stdcall; |
function SetDecalScale(dwScale: DWORD): HResult; stdcall; |
function SetDecalTransparency(bTransp: BOOL): HResult; stdcall; |
function SetDecalTransparentColor(rcTransp: TD3DColor): HResult; stdcall; |
function GetDecalSize(var lprvWidth, lprvHeight: TD3DValue): HResult; stdcall; |
function GetDecalOrigin(var lplX, lplY: Longint): HResult; stdcall; |
function GetDecalSize (out lprvWidth, lprvHeight: TD3DValue) : HResult; stdcall; |
function GetDecalOrigin (out lplX, lplY: LongInt) : HResult; stdcall; |
function GetImage: PD3DRMImage; stdcall; |
function GetShades: DWORD; stdcall; |
function GetColors: DWORD; stdcall; |
7294,53 → 10928,70 |
end; |
IDirect3DRMTexture2 = interface(IDirect3DRMTexture) |
['{120F30C0-1629-11D0-941C-0080C80CFA7B}'] |
// IDirect3DRMTexture2 methods |
['{120f30c0-1629-11d0-941c-0080c80cfa7b}'] |
(* |
* IDirect3DRMTexture2 methods |
*) |
function InitFromImage(const lpImage: TD3DRMImage): HResult; stdcall; |
function InitFromResource2(hModule: HModule; strName, strType: PChar): HResult; stdcall; |
function InitFromResource2 (hModule: HModule; |
strName, strType: PAnsiChar) : HResult; stdcall; |
function GenerateMIPMap(dwFlags: DWORD): HResult; stdcall; |
end; |
IDirect3DRMTexture3 = interface(IDirect3DRMTexture2) |
['{FF6B7F73-A40E-11D1-91F9-0000F8758E66}'] |
// IDirect3DRMTexture3 methods |
function GetSurface(dwFlags: DWORD; out lplpDDS: IDirectDrawSurface): HResult; stdcall; |
function SetCacheOptions(lImportance: Longint; dwFlags: DWORD): HResult; stdcall; |
function GetCacheOptions(var lplImportance: Longint; var lpdwFlags: DWORD): HResult; stdcall; |
function SetDownsampleCallback(pCallback: TD3DRMDownSampleCallback; pArg: Pointer): HResult; stdcall; |
function SetValidationCallback(pCallback: TD3DRMValidationCallback; pArg: Pointer): HResult; stdcall; |
['{ff6b7f73-a40e-11d1-91f9-0000f8758e66}'] |
(* |
* IDirect3DRMTexture3 methods |
*) |
function GetSurface |
(dwFlags: DWORD; out lplpDDS: IDirectDrawSurface) : HResult; stdcall; |
function SetCacheOptions (lImportance: integer; dwFlags: DWORD) : HResult; stdcall; |
function GetCacheOptions (var lplImportance: integer; var lpdwFlags: DWORD) : HResult; stdcall; |
function SetDownsampleCallback ( |
pCallback: TD3DRMDownSampleCallback; pArg: pointer) : HResult; stdcall; |
function SetValidationCallback ( |
pCallback: TD3DRMValidationCallback; pArg: pointer) : HResult; stdcall; |
end; |
IDirect3DRMWrap = interface(IDirect3DRMObject) |
['{EB16CB0A-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMWrap methods |
['{eb16cb0a-d271-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMWrap methods |
*) |
function Init(d3drmwt: TD3DRMWrapType; lpd3drmfRef: IDirect3DRMFrame; |
ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv: TD3DValue): HResult; stdcall; |
ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv: TD3DValue) |
: HResult; stdcall; |
function Apply(lpObject: IDirect3DRMObject): HResult; stdcall; |
function ApplyRelative(frame: IDirect3DRMFrame; mesh: IDirect3DRMObject): HResult; stdcall; |
end; |
IDirect3DRMMaterial = interface(IDirect3DRMObject) |
['{EB16CB0B-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMMaterial methods |
['{eb16cb0b-d271-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMMaterial methods |
*) |
function SetPower(rvPower: TD3DValue): HResult; stdcall; |
function SetSpecular(r, g, b: TD3DValue): HResult; stdcall; |
function SetEmissive(r, g, b: TD3DValue): HResult; stdcall; |
function GetPower: TD3DValue; stdcall; |
function GetSpecular(var r, g, b: TD3DValue): HResult; stdcall; |
function GetEmissive(var r, g, b: TD3DValue): HResult; stdcall; |
function GetSpecular (out lpr, lpg, lpb: TD3DValue) : HResult; stdcall; |
function GetEmissive (out lpr, lpg, lpb: TD3DValue) : HResult; stdcall; |
end; |
IDirect3DRMMaterial2 = interface(IDirect3DRMMaterial) |
['{FF6B7F75-A40E-11D1-91F9-0000F8758E66}'] |
// IDirect3DRMMaterial2 methods |
function GetAmbient(var r, g, b: TD3DValue): HResult; stdcall; |
['{ff6b7f75-a40e-11d1-91f9-0000f8758e66}'] |
(* |
* IDirect3DRMMaterial2 methods |
*) |
function GetAmbient(out r,g,b: TD3DValue) : HResult; stdcall; |
function SetAmbient(r, g, b: TD3DValue): HResult; stdcall; |
end; |
IDirect3DRMAnimation = interface(IDirect3DRMObject) |
['{EB16CB0D-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMAnimation methods |
['{eb16cb0d-d271-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMAnimation methods |
*) |
function SetOptions(d3drmanimFlags: TD3DRMAnimationOptions): HResult; stdcall; |
function AddRotateKey(rvTime: TD3DValue; const rqQuat: TD3DRMQuaternion): HResult; stdcall; |
function AddPositionKey(rvTime, rvX, rvY, rvZ: TD3DValue): HResult; stdcall; |
7351,30 → 11002,27 |
function GetOptions: TD3DRMAnimationOptions; stdcall; |
end; |
IDirect3DRMAnimation2 = interface(IDirect3DRMObject) |
['{FF6B7F77-A40E-11D1-91F9-0000F8758E66}'] |
// IDirect3DRMAnimation2 methods |
function SetOptions(d3drmanimFlags: TD3DRMAnimationOptions): HResult; stdcall; |
function AddRotateKey(rvTime: TD3DValue; const rqQuat: TD3DRMQuaternion): HResult; stdcall; |
function AddPositionKey(rvTime, rvX, rvY, rvZ: TD3DValue): HResult; stdcall; |
function AddScaleKey(time, x, y, z: TD3DValue): HResult; stdcall; |
function DeleteKey(time: TD3DValue): HResult; stdcall; |
function SetFrame(lpD3DRMFrame: IDirect3DRMFrame3): HResult; stdcall; |
function SetTime(rvTime: TD3DValue): HResult; stdcall; |
function GetOptions: TD3DRMAnimationOptions; stdcall; |
IDirect3DRMAnimation2 = interface (IDirect3DRMAnimation) |
['{ff6b7f77-a40e-11d1-91f9-0000f8758e66}'] |
(* |
* IDirect3DRMAnimation methods |
*) |
function GetFrame(out lpD3DFrame: IDirect3DRMFrame3): HResult; stdcall; |
function DeleteKeyByID(dwID: DWORD): HResult; stdcall; |
function AddKey(const lpKey: TD3DRMAnimationKey): HResult; stdcall; |
function ModifyKey(const lpKey: TD3DRMAnimationKey): HResult; stdcall; |
function GetKeys(dvTimeMin, dvTimeMax: TD3DValue; var lpdwNumKeys: DWORD; |
var lpKey: TD3DRMAnimationKey): HResult; stdcall; |
lpKey: PD3DRMAnimationKey) : HResult; stdcall; |
end; |
IDirect3DRMAnimationSet = interface(IDirect3DRMObject) |
['{EB16CB0E-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMAnimationSet methods |
['{eb16cb0e-d271-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMAnimationSet methods |
*) |
function AddAnimation(lpD3DRMAnimation: IDirect3DRMAnimation): HResult; stdcall; |
function Load(lpvObjSource, lpvObjID: Pointer; d3drmLOFlags: TD3DRMLoadOptions; |
function Load (lpvObjSource, lpvObjID: Pointer; |
d3drmLOFlags: TD3DRMLoadOptions; |
d3drmLoadTextureProc: TD3DRMLoadTextureCallback; lpArgLTP: Pointer; |
lpParentFrame: IDirect3DRMFrame): HResult; stdcall; |
function DeleteAnimation(lpD3DRMAnimation: IDirect3DRMAnimation): HResult; stdcall; |
7382,21 → 11030,27 |
end; |
IDirect3DRMAnimationSet2 = interface(IDirect3DRMObject) |
['{FF6B7F79-A40E-11D1-91F9-0000F8758E66}'] |
// IDirect3DRMAnimationSet2 methods |
function AddAnimation(aid: IDirect3DRMAnimation2): HResult; stdcall; |
function Load(filename, name: Pointer; loadflags: TD3DRMLoadOptions; |
d3drmLoadTextureProc: TD3DRMLoadTexture3Callback; lpArg: Pointer; |
['{ff6b7f79-a40e-11d1-91f9-0000f8758e66}'] |
(* |
* IDirect3DRMAnimationSet methods |
*) |
function AddAnimation (lpD3DRMAnimation: IDirect3DRMAnimation2) : HResult; stdcall; |
function Load (lpvObjSource, lpvObjID: Pointer; |
d3drmLOFlags: TD3DRMLoadOptions; |
d3drmLoadTextureProc: TD3DRMLoadTexture3Callback; lpArgLTP: Pointer; |
lpParentFrame: IDirect3DRMFrame3): HResult; stdcall; |
function DeleteAnimation(aid: IDirect3DRMAnimation2): HResult; stdcall; |
function SetTime(time: TD3DValue): HResult; stdcall; |
function GetAnimations(out lpAnimationArray: IDirect3DRMAnimationArray): HResult; stdcall; |
function DeleteAnimation (lpD3DRMAnimation: IDirect3DRMAnimation2) : HResult; stdcall; |
function SetTime (rvTime: TD3DValue) : HResult; stdcall; |
function GetAnimations(out lplpArray: IDirect3DRMAnimationArray) : HResult; stdcall; |
end; |
IDirect3DRMUserVisual = interface(IDirect3DRMVisual) |
['{59163DE0-6D43-11CF-AC4A-0000C03825A1}'] |
// IDirect3DRMUserVisual methods |
function Init(d3drmUVProc: TD3DRMUserVisualCallback; lpArg: Pointer): HResult; stdcall; |
['{59163de0-6d43-11cf-ac4a-0000c03825a1}'] |
(* |
* IDirect3DRMUserVisual methods |
*) |
function Init (d3drmUVProc: TD3DRMUserVisualCallback; |
lpArg: Pointer) : HResult; stdcall; |
end; |
IDirect3DRMArray = interface(IUnknown) |
7407,72 → 11061,75 |
*) |
end; |
IDirect3DRMObjectarray = interface(IDirect3DRMArray) |
function GetElement(index: DWORD; out lplpD3DRMObject: IDirect3DRMObject): HResult; stdcall; |
IDirect3DRMObjectArray = interface (IDirect3DRMArray) |
['{242f6bc2-3849-11d0-9b6d-0000c0781bc3}'] |
function GetElement (index: DWORD; out lplpD3DRMObject: |
IDirect3DRMObject) : HResult; stdcall; |
end; |
IDirect3DRMDeviceArray = interface(IDirect3DRMArray) |
['{EB16CB10-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMDevicearraymethods |
function GetElement(index: DWORD; out lplpD3DRMDevice: IDirect3DRMDevice): HResult; stdcall; |
['{eb16cb0e-d271-11ce-ac48-0000c03825a1}'] |
function GetElement (index: DWORD; out lplpD3DRMDevice: |
IDirect3DRMDevice) : HResult; stdcall; |
end; |
IDirect3DRMFrameArray = interface(IDirect3DRMArray) |
['{EB16CB12-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMFramearraymethods |
['{eb16cb12-d271-11ce-ac48-0000c03825a1}'] |
function GetElement(index: DWORD; out lplpD3DRMFrame: IDirect3DRMFrame): HResult; stdcall; |
end; |
IDirect3DRMViewportArray = interface(IDirect3DRMArray) |
['{EB16CB11-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMViewportarraymethods |
function GetElement(index: DWORD; out lplpD3DRMViewport: IDirect3DRMViewport): HResult; stdcall; |
['{eb16cb11-d271-11ce-ac48-0000c03825a1}'] |
function GetElement (index: DWORD; out lplpD3DRMViewport: |
IDirect3DRMViewport) : HResult; stdcall; |
end; |
IDirect3DRMVisualArray = interface(IDirect3DRMArray) |
['{EB16CB13-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMVisualarraymethods |
function GetElement(index: DWORD; out lplpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
['{eb16cb13-d271-11ce-ac48-0000c03825a1}'] |
function GetElement (index: DWORD; out lplpD3DRMVisual: |
IDirect3DRMVisual) : HResult; stdcall; |
end; |
IDirect3DRMAnimationArray = interface(IDirect3DRMArray) |
['{D5F1CAE0-4BD7-11D1-B974-0060083E45F3}'] |
function GetElement(index: DWORD; out lplpD3DRMAnimation: IDirect3DRMAnimation2): HResult; stdcall; |
['{d5f1cae0-4bd7-11d1-b974-0060083e45f3}'] |
function GetElement (index: DWORD; out lplpD3DRMAnimation2: |
IDirect3DRMAnimation2) : HResult; stdcall; |
end; |
IDirect3DRMPickedArray = interface(IDirect3DRMArray) |
['{EB16CB16-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMPickedarraymethods |
['{eb16cb16-d271-11ce-ac48-0000c03825a1}'] |
function GetPick(index: DWORD; out lplpVisual: IDirect3DRMVisual; |
out lplpFrameArray: IDirect3DRMFrameArray; |
var lpD3DRMPickDesc: TD3DRMPickDesc): HResult; stdcall; |
const lpD3DRMPickDesc: TD3DRMPickDesc) : HResult; stdcall; |
end; |
IDirect3DRMLightArray = interface(IDirect3DRMArray) |
['{EB16CB14-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMLightarraymethods |
['{eb16cb14-d271-11ce-ac48-0000c03825a1}'] |
function GetElement(index: DWORD; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
end; |
IDirect3DRMFaceArray = interface(IDirect3DRMArray) |
['{EB16CB17-D271-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMFacearraymethods |
['{eb16cb17-d271-11ce-ac48-0000c03825a1}'] |
function GetElement(index: DWORD; out lplpD3DRMFace: IDirect3DRMFace): HResult; stdcall; |
end; |
IDirect3DRMPicked2Array = interface(IDirect3DRMArray) |
['{4516EC7B-8F20-11D0-9B6D-0000C0781BC3}'] |
// IDirect3DRMPicked2arraymethods |
['{4516ec7b-8f20-11d0-9b6d-0000c0781bc3}'] |
function GetPick(index: DWORD; out lplpVisual: IDirect3DRMVisual; |
out lplpFrameArray: IDirect3DRMFrameArray; |
const lpD3DRMPickDesc2: D3DRMPICKDESC2): HResult; stdcall; |
out lplpFrameArray: IDirect3DRMFrameArray; const lpD3DRMPickDesc2: |
TD3DRMPickDesc2) : HResult; stdcall; |
end; |
IDirect3DRMInterpolator = interface(IDirect3DRMObject) |
['{242F6BC1-3849-11D0-9B6D-0000C0781BC3}'] |
// IDirect3DRMInterpolator methods |
['{242f6bc1-3849-11d0-9b6d-0000c0781bc3}'] |
(* |
* IDirect3DRMInterpolator methods |
*) |
function AttachObject(lpD3DRMObject: IDirect3DRMObject): HResult; stdcall; |
function GetAttachedObjects(lpD3DRMObjectArray: IDirect3DRMObjectArray): HResult; stdcall; |
function GetAttachedObjects |
(lpD3DRMObjectArray: IDirect3DRMObjectArray) : HResult; stdcall; |
function DetachObject(lpD3DRMObject: IDirect3DRMObject): HResult; stdcall; |
function SetIndex(d3dVal: TD3DValue): HResult; stdcall; |
function GetIndex: TD3DValue; stdcall; |
7480,163 → 11137,228 |
d3drmInterpFlags: TD3DRMInterpolationOptions): HResult; stdcall; |
end; |
IDirect3DRMClippedVisual = interface(IDirect3DRMVisual) |
['{5434E733-6D66-11D1-BB0B-0000F875865A}'] |
// IDirect3DRMClippedVisual methods |
IDirect3DRMClippedVisual = interface (IDirect3DRMObject) |
['{5434e733-6d66-11d1-bb0b-0000f875865a}'] |
(* |
* IDirect3DRMClippedVisual methods |
*) |
function Init(lpD3DRMVisual: IDirect3DRMVisual): HResult; stdcall; |
function AddPlane(lpRef: IDirect3DRMFrame3; const lpdvPoint, lpdvNormal: TD3DVector; |
dwFlags: DWORD; var lpdwReturnID: DWORD): HResult; stdcall; |
function AddPlane (lpRef: IDirect3DRMFrame3; |
const lpdvPoint, lpdvNormal: TD3DVector; |
dwFlags: DWORD; out lpdwReturnID: DWORD) : HResult; stdcall; |
function DeletePlane(dwID, dwFlags: DWORD): HResult; stdcall; |
function GetPlaneIDs(var lpdwCount, lpdwID: DWORD; dwFlags: DWORD): HResult; stdcall; |
function GetPlaneIDs (var lpdwCount: DWORD; out lpdwID: DWORD; dwFlags: DWORD) : HResult; stdcall; |
function GetPlane (dwID: DWORD; lpRef: IDirect3DRMFrame3; |
var lpdvPoint, lpdvNormal: TD3DVector; dwFlags: DWORD): HResult; stdcall; |
out lpdvPoint, lpdvNormal: TD3DVector; dwFlags: DWORD) : HResult; stdcall; |
function SetPlane (dwID: DWORD; lpRef: IDirect3DRMFrame3; |
const lpdvPoint, lpdvNormal: TD3DVector; dwFlags: DWORD): HResult; stdcall; |
end; |
IDirect3DRMWinDevice = interface(IDirect3DRMObject) |
['{C5016CC0-D273-11CE-AC48-0000C03825A1}'] |
// IDirect3DRMWinDevice methods |
function HandlePaint(hDC: HDC): HResult; stdcall; |
function HandleActivate(wparam: WORD): HResult; stdcall; |
end; |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: d3drm.h |
* Content: Direct3DRM include file |
* |
***************************************************************************) |
function D3DRMErrorString(Value: HResult) : string; |
//type |
//TRefClsID = TGUID; |
type |
TD3DRMDevicePaletteCallback = procedure (lpDirect3DRMDev: IDirect3DRMDevice; |
lpArg: Pointer; dwIndex: DWORD; red, green, blue: LongInt); cdecl; |
(* |
* Direct3DRM Object Class (for CoCreateInstance()) |
*) |
const |
CLSID_CDirect3DRM: TGUID = |
(D1:$4516ec41;D2:$8f20;D3:$11d0;D4:($9b,$6d,$00,$00,$c0,$78,$1b,$c3)); |
type |
IDirect3DRM = interface(IUnknown) |
['{2BC49361-8327-11CF-AC4A-0000C03825A1}'] |
// IDirect3DRM methods |
function CreateObject(const rclsid: TGUID; pUnkOuter: IUnknown; |
['{2bc49361-8327-11cf-ac4a-0000c03825a1}'] |
function CreateObject (const rclsid: TRefClsID; pUnkOuter: IUnknown; |
const riid: TGUID; out ppv): HResult; stdcall; |
function CreateFrame(lpD3DRMFrame: IDirect3DRMFrame; |
out lplpD3DRMFrame: IDirect3DRMFrame): HResult; stdcall; |
function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
function CreateMeshBuilder(out lplpD3DRMMeshBuilder: |
var lplpD3DRMFrame: IDirect3DRMFrame) : HResult; stdcall; |
function CreateMesh (var lplpD3DRMMesh: IDirect3DRMMesh) : HResult; stdcall; |
function CreateMeshBuilder (var lplpD3DRMMeshBuilder: |
IDirect3DRMMeshBuilder): HResult; stdcall; |
function CreateFace(out lplpd3drmFace: IDirect3DRMFace): HResult; stdcall; |
function CreateAnimation(out lplpD3DRMAnimation: IDirect3DRMAnimation): HResult; stdcall; |
function CreateAnimationSet(out lplpD3DRMAnimationSet: |
function CreateFace (var lplpd3drmFace: IDirect3DRMFace) : HResult; stdcall; |
function CreateAnimation (var lplpD3DRMAnimation: IDirect3DRMAnimation) : HResult; stdcall; |
function CreateAnimationSet (var lplpD3DRMAnimationSet: |
IDirect3DRMAnimationSet): HResult; stdcall; |
function CreateTexture(const lpImage: TD3DRMImage; |
out lplpD3DRMTexture: IDirect3DRMTexture): HResult; stdcall; |
function CreateTexture (var lpImage: TD3DRMImage; |
var lplpD3DRMTexture: IDirect3DRMTexture) : HResult; stdcall; |
function CreateLight(d3drmltLightType: TD3DRMLightType; |
cColor: TD3DColor; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
function CreateLightRGB(ltLightType: TD3DRMLightType; vRed, vGreen, vBlue: |
TD3DValue; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
function CreateMaterial(vPower: TD3DValue; out lplpD3DRMMaterial: |
cColor: TD3DColor; var lplpD3DRMLight: IDirect3DRMLight) : HResult; stdcall; |
function CreateLightRGB (ltLightType: TD3DRMLightType; vRed, |
vGreen, vBlue: TD3DValue; var lplpD3DRMLight: IDirect3DRMLight) : HResult; stdcall; |
function CreateMaterial (vPower: TD3DValue; var lplpD3DRMMaterial: |
IDirect3DRMMaterial): HResult; stdcall; |
function CreateDevice(dwWidth, dwHeight: DWORD; out lplpD3DRMDevice: |
function CreateDevice (dwWidth, dwHeight: DWORD; var lplpD3DRMDevice: |
IDirect3DRMDevice): HResult; stdcall; |
function CreateDeviceFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; |
lpDDSBack: IDirectDrawSurface; out lplpD3DRMDevice: IDirect3DRMDevice): HResult; stdcall; |
(* Create a Windows Device using DirectDraw surfaces *) |
function CreateDeviceFromSurface (lpGUID: PGUID; lpDD: IDirectDraw; |
lpDDSBack: IDirectDrawSurface; var lplpD3DRMDevice: IDirect3DRMDevice) : |
HResult; stdcall; |
(* Create a Windows Device using D3D objects *) |
function CreateDeviceFromD3D(lpD3D: IDirect3D; lpD3DDev: IDirect3DDevice; |
out lplpD3DRMDevice: IDirect3DRMDevice): HResult; stdcall; |
var lplpD3DRMDevice: IDirect3DRMDevice) : HResult; stdcall; |
function CreateDeviceFromClipper(lpDDClipper: IDirectDrawClipper; |
const lpGUID: TGUID; width, height: DWORD; out lplpD3DRMDevice: |
lpGUID: PGUID; width, height: Integer; var lplpD3DRMDevice: |
IDirect3DRMDevice): HResult; stdcall; |
function CreateTextureFromSurface(lpDDS: IDirectDrawSurface; |
out lplpD3DRMTexture: IDirect3DRMTexture): HResult; stdcall; |
var lplpD3DRMTexture: IDirect3DRMTexture) : HResult; stdcall; |
function CreateShadow(lpVisual: IDirect3DRMVisual; |
lpLight: IDirect3DRMLight; px, py, pz, nx, ny, nz: TD3DValue; |
out lplpShadow: IDirect3DRMVisual): HResult; stdcall; |
var lplpShadow: IDirect3DRMVisual) : HResult; stdcall; |
function CreateViewport(lpDev: IDirect3DRMDevice; |
lpCamera: IDirect3DRMFrame; dwXPos, dwYPos, dwWidth, dwHeight: DWORD; |
out lplpD3DRMViewport: IDirect3DRMViewport): HResult; stdcall; |
var lplpD3DRMViewport: IDirect3DRMViewport) : HResult; stdcall; |
function CreateWrap(wraptype: TD3DRMWrapType; lpRef: IDirect3DRMFrame; |
ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv: TD3DValue; |
out lplpD3DRMWrap: IDirect3DRMWrap): HResult; stdcall; |
var lplpD3DRMWrap: IDirect3DRMWrap) : HResult; stdcall; |
function CreateUserVisual(fn: TD3DRMUserVisualCallback; lpArg: Pointer; |
out lplpD3DRMUV: IDirect3DRMUserVisual): HResult; stdcall; |
function LoadTexture(lpFileName: LPSTR; out lplpD3DRMTexture: |
var lplpD3DRMUV: IDirect3DRMUserVisual) : HResult; stdcall; |
function LoadTexture (lpFileName: PAnsiChar; var lplpD3DRMTexture: |
IDirect3DRMTexture): HResult; stdcall; |
function LoadTextureFromResource(rs: HRSRC; out lplpD3DRMTexture: |
function LoadTextureFromResource (rs: HRSRC; var lplpD3DRMTexture: |
IDirect3DRMTexture): HResult; stdcall; |
function SetSearchPath(lpPath: LPSTR): HResult; stdcall; |
function AddSearchPath(lpPath: LPSTR): HResult; stdcall; |
function GetSearchPath(var lpdwSize: DWORD; lpszPath: LPSTR): HResult; stdcall; |
function SetSearchPath (lpPath: PAnsiChar) : HResult; stdcall; |
function AddSearchPath (lpPath: PAnsiChar) : HResult; stdcall; |
function GetSearchPath (var lpdwSize: DWORD; lpszPath: PAnsiChar) : HResult; stdcall; |
function SetDefaultTextureColors(dwColors: DWORD): HResult; stdcall; |
function SetDefaultTextureShades(dwShades: DWORD): HResult; stdcall; |
function GetDevices(out lplpDevArray: IDirect3DRMDeviceArray): HResult; stdcall; |
function GetNamedObject(lpName: LPSTR; out lplpD3DRMObject: |
IDirect3DRMObject): HResult; stdcall; |
function GetDevices (var lplpDevArray: IDirect3DRMDeviceArray) : HResult; stdcall; |
function GetNamedObject (lpName: PAnsiChar; var lplpD3DRMObject: IDirect3DRMObject) : HResult; stdcall; |
function EnumerateObjects(func: TD3DRMObjectCallback; lpArg: Pointer): HResult; stdcall; |
function Load(lpvObjSource, lpvObjID: Pointer; var lplpGUIDs: PGUID; |
dwcGUIDs: DWORD; d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadProc: |
D3DRMLOADCALLBACK; lpArgLP: Pointer; d3drmLoadTextureProc: |
TD3DRMLoadTextureCallback; lpArgLTP: Pointer; |
lpParentFrame: IDirect3DRMFrame): HResult; stdcall; |
TD3DRMLoadCallback; lpArgLP: Pointer; d3drmLoadTextureProc: |
TD3DRMLoadTextureCallback; lpArgLTP: Pointer; lpParentFrame: |
IDirect3DRMFrame) : HResult; stdcall; |
function Tick(d3dvalTick: TD3DValue): HResult; stdcall; |
end; |
// Moved from D3DRMObj, to avoid circular unit reference: |
IDirect3DRMObject2 = interface (IUnknown) |
['{4516ec7c-8f20-11d0-9b6d-0000c0781bc3}'] |
(* |
* IDirect3DRMObject2 methods |
*) |
function AddDestroyCallback (lpCallback: TD3DRMObjectCallback; |
lpArg: Pointer) : HResult; stdcall; |
function Clone (pUnkOuter: IUnknown; const riid: TGUID; |
out ppvObj) : HResult; stdcall; |
function DeleteDestroyCallback (d3drmObjProc: TD3DRMObjectCallback; |
lpArg: Pointer) : HResult; stdcall; |
function GetClientData (dwID: DWORD; out lplpvData: Pointer) : HResult; stdcall; |
function GetDirect3DRM (out lplpDirect3DRM: IDirect3DRM) : HResult; stdcall; |
function GetName (var lpdwSize: DWORD; lpName: PAnsiChar) : HResult; stdcall; |
function SetClientData (dwID: DWORD; lpvData: pointer; dwFlags: DWORD) : HResult; stdcall; |
function SetName (lpName: PAnsiChar) : HResult; stdcall; |
function GetAge (dwFlags: DWORD; out pdwAge: DWORD) : HResult; stdcall; |
end; |
IID_IDirect3DRMObject2 = IDirect3DRMObject2; |
IDirect3DRM2 = interface(IUnknown) |
['{4516ECC8-8F20-11D0-9B6D-0000C0781BC3}'] |
// IDirect3DRM2 methods |
function CreateObject(const rclsid: TGUID; pUnkOuter: IUnknown; |
['{4516ecc8-8f20-11d0-9b6d-0000c0781bc3}'] |
function CreateObject (const rclsid: TRefClsID; pUnkOuter: IUnknown; |
const riid: TGUID; out ppv): HResult; stdcall; |
function CreateFrame(lpD3DRMFrame: IDirect3DRMFrame2; |
out lplpD3DRMFrame: IDirect3DRMFrame2): HResult; stdcall; |
function CreateMesh(out lplpD3DRMMesh: IDirect3DRMMesh): HResult; stdcall; |
function CreateMeshBuilder(out lplpD3DRMMeshBuilder: |
var lplpD3DRMFrame: IDirect3DRMFrame2) : HResult; stdcall; |
function CreateMesh (var lplpD3DRMMesh: IDirect3DRMMesh) : HResult; stdcall; |
function CreateMeshBuilder (var lplpD3DRMMeshBuilder: |
IDirect3DRMMeshBuilder2): HResult; stdcall; |
function CreateFace(out lplpd3drmFace: IDirect3DRMFace): HResult; stdcall; |
function CreateAnimation(out lplpD3DRMAnimation: IDirect3DRMAnimation): HResult; stdcall; |
function CreateAnimationSet(out lplpD3DRMAnimationSet: |
function CreateFace (var lplpd3drmFace: IDirect3DRMFace) : HResult; stdcall; |
function CreateAnimation (var lplpD3DRMAnimation: IDirect3DRMAnimation) : HResult; stdcall; |
function CreateAnimationSet (var lplpD3DRMAnimationSet: |
IDirect3DRMAnimationSet): HResult; stdcall; |
function CreateTexture(const lpImage: TD3DRMImage; |
out lplpD3DRMTexture: IDirect3DRMTexture2): HResult; stdcall; |
function CreateTexture (var lpImage: TD3DRMImage; |
var lplpD3DRMTexture: IDirect3DRMTexture2) : HResult; stdcall; |
function CreateLight(d3drmltLightType: TD3DRMLightType; |
cColor: TD3DColor; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
cColor: TD3DColor; var lplpD3DRMLight: IDirect3DRMLight) : HResult; stdcall; |
function CreateLightRGB(ltLightType: TD3DRMLightType; vRed, |
vGreen, vBlue: TD3DValue; out lplpD3DRMLight: IDirect3DRMLight): HResult; stdcall; |
function CreateMaterial(vPower: TD3DValue; out lplpD3DRMMaterial: |
vGreen, vBlue: TD3DValue; var lplpD3DRMLight: IDirect3DRMLight) : HResult; stdcall; |
function CreateMaterial (vPower: TD3DValue; var lplpD3DRMMaterial: |
IDirect3DRMMaterial): HResult; stdcall; |
function CreateDevice(dwWidth, dwHeight: DWORD; out lplpD3DRMDevice: |
function CreateDevice (dwWidth, dwHeight: DWORD; var lplpD3DRMDevice: |
IDirect3DRMDevice2): HResult; stdcall; |
function CreateDeviceFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; |
lpDDSBack: IDirectDrawSurface; out lplpD3DRMDevice: IDirect3DRMDevice2): HResult; stdcall; |
(* Create a Windows Device using DirectDraw surfaces *) |
function CreateDeviceFromSurface (lpGUID: PGUID; lpDD: IDirectDraw; |
lpDDSBack: IDirectDrawSurface; var lplpD3DRMDevice: IDirect3DRMDevice2) : |
HResult; stdcall; |
(* Create a Windows Device using D3D objects *) |
function CreateDeviceFromD3D(lpD3D: IDirect3D2; lpD3DDev: IDirect3DDevice2; |
out lplpD3DRMDevice: IDirect3DRMDevice2): HResult; stdcall; |
var lplpD3DRMDevice: IDirect3DRMDevice2) : HResult; stdcall; |
function CreateDeviceFromClipper(lpDDClipper: IDirectDrawClipper; |
const lpGUID: TGUID; width, height: DWORD; out lplpD3DRMDevice: |
lpGUID: PGUID; width, height: Integer; var lplpD3DRMDevice: |
IDirect3DRMDevice2): HResult; stdcall; |
function CreateTextureFromSurface( lpDDS: IDirectDrawSurface; |
out lplpD3DRMTexture: IDirect3DRMTexture2): HResult; stdcall; |
var lplpD3DRMTexture: IDirect3DRMTexture2) : HResult; stdcall; |
function CreateShadow(lpVisual: IDirect3DRMVisual; |
lpLight: IDirect3DRMLight; px, py, pz, nx, ny, nz: TD3DValue; |
out lplpShadow: IDirect3DRMVisual): HResult; stdcall; |
var lplpShadow: IDirect3DRMVisual) : HResult; stdcall; |
function CreateViewport(lpDev: IDirect3DRMDevice; |
lpCamera: IDirect3DRMFrame; dwXPos, dwYPos, dwWidth, dwHeight: DWORD; |
out lplpD3DRMViewport: IDirect3DRMViewport): HResult; stdcall; |
var lplpD3DRMViewport: IDirect3DRMViewport) : HResult; stdcall; |
function CreateWrap(wraptype: TD3DRMWrapType; lpRef: IDirect3DRMFrame; |
ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv: TD3DValue; |
out lplpD3DRMWrap: IDirect3DRMWrap): HResult; stdcall; |
var lplpD3DRMWrap: IDirect3DRMWrap) : HResult; stdcall; |
function CreateUserVisual(fn: TD3DRMUserVisualCallback; lpArg: Pointer; |
out lplpD3DRMUV: IDirect3DRMUserVisual): HResult; stdcall; |
function LoadTexture(lpFileName: LPSTR; out lplpD3DRMTexture: |
var lplpD3DRMUV: IDirect3DRMUserVisual) : HResult; stdcall; |
function LoadTexture (lpFileName: PAnsiChar; var lplpD3DRMTexture: |
IDirect3DRMTexture2): HResult; stdcall; |
function LoadTextureFromResource(hModule: HModule; str: LPCSTR; out lplpD3DRMTexture: |
function LoadTextureFromResource (rs: HRSRC; var lplpD3DRMTexture: |
IDirect3DRMTexture2): HResult; stdcall; |
function SetSearchPath(lpPath: LPSTR): HResult; stdcall; |
function AddSearchPath(lpPath: LPSTR): HResult; stdcall; |
function GetSearchPath(var lpdwSize: DWORD; lpszPath: LPSTR): HResult; stdcall; |
function SetSearchPath (lpPath: PAnsiChar) : HResult; stdcall; |
function AddSearchPath (lpPath: PAnsiChar) : HResult; stdcall; |
function GetSearchPath (var lpdwSize: DWORD; lpszPath: PAnsiChar) : HResult; stdcall; |
function SetDefaultTextureColors(dwColors: DWORD): HResult; stdcall; |
function SetDefaultTextureShades(dwShades: DWORD): HResult; stdcall; |
function GetDevices(out lplpDevArray: IDirect3DRMDeviceArray): HResult; stdcall; |
function GetNamedObject(lpName: LPSTR; out lplpD3DRMObject: |
function GetDevices (var lplpDevArray: IDirect3DRMDeviceArray) : HResult; stdcall; |
function GetNamedObject (lpName: PAnsiChar; var lplpD3DRMObject: |
IDirect3DRMObject): HResult; stdcall; |
function EnumerateObjects(func: TD3DRMObjectCallback; lpArg: Pointer): HResult; stdcall; |
function Load(lpvObjSource, lpvObjID: Pointer; var lplpGUIDs: PGUID; |
dwcGUIDs: DWORD; d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadProc: |
D3DRMLOADCALLBACK; lpArgLP: Pointer; d3drmLoadTextureProc: |
TD3DRMLoadCallback; lpArgLP: Pointer; d3drmLoadTextureProc: |
TD3DRMLoadTextureCallback; lpArgLTP: Pointer; lpParentFrame: |
IDirect3DRMFrame): HResult; stdcall; |
function Tick(d3dvalTick: TD3DValue): HResult; stdcall; |
function CreateProgressiveMesh(out lplpD3DRMProgressiveMesh: |
function CreateProgressiveMesh (var lplpD3DRMProgressiveMesh: |
IDirect3DRMProgressiveMesh): HResult; stdcall; |
end; |
IDirect3DRM3 = interface(IUnknown) |
['{4516EC83-8F20-11D0-9B6D-0000C0781BC3}'] |
// IDirect3DRM2 methods |
function CreateObject(const rclsid: TGUID; pUnkOuter: IUnknown; |
['{4516ec83-8f20-11d0-9b6d-0000c0781bc3}'] |
function CreateObject (const rclsid: TRefClsID; pUnkOuter: IUnknown; |
const riid: TGUID; out ppv): HResult; stdcall; |
function CreateFrame(lpD3DRMFrame: IDirect3DRMFrame3; |
out lplpD3DRMFrame: IDirect3DRMFrame3): HResult; stdcall; |
7657,18 → 11379,26 |
IDirect3DRMMaterial2): HResult; stdcall; |
function CreateDevice(dwWidth, dwHeight: DWORD; out lplpD3DRMDevice: |
IDirect3DRMDevice3): HResult; stdcall; |
function CreateDeviceFromSurface(const lpGUID: TGUID; lpDD: IDirectDraw; |
lpDDSBack: IDirectDrawSurface; out lplpD3DRMDevice: IDirect3DRMDevice3): HResult; stdcall; |
(* Create a Windows Device using DirectDraw surfaces *) |
function CreateDeviceFromSurface (lpGUID: PGUID; lpDD: IDirectDraw; |
lpDDSBack: IDirectDrawSurface; dwFlags: DWORD; |
out lplpD3DRMDevice: IDirect3DRMDevice3) : HResult; stdcall; |
(* Create a Windows Device using D3D objects *) |
function CreateDeviceFromD3D(lpD3D: IDirect3D2; lpD3DDev: IDirect3DDevice2; |
out lplpD3DRMDevice: IDirect3DRMDevice3): HResult; stdcall; |
function CreateDeviceFromClipper(lpDDClipper: IDirectDrawClipper; |
const lpGUID: TGUID; width, height: DWORD; out lplpD3DRMDevice: |
IDirect3DRMDevice3): HResult; stdcall; |
lpGUID: PGUID; width, height: Integer; |
out lplpD3DRMDevice: IDirect3DRMDevice3) : HResult; stdcall; |
function CreateTextureFromSurface( lpDDS: IDirectDrawSurface; |
out lplpD3DRMTexture: IDirect3DRMTexture3): HResult; stdcall; |
function CreateShadow(lpVisual: IDirect3DRMVisual; |
lpLight: IDirect3DRMLight; px, py, pz, nx, ny, nz: TD3DValue; |
out lplpShadow: IDirect3DRMShadow): HResult; stdcall; |
function CreateShadow (pUnk: IUnknown; lpLight: IDirect3DRMLight; |
px, py, pz, nx, ny, nz: TD3DValue; |
out lplpShadow: IDirect3DRMShadow2) : HResult; stdcall; |
function CreateViewport(lpDev: IDirect3DRMDevice3; |
lpCamera: IDirect3DRMFrame3; dwXPos, dwYPos, dwWidth, dwHeight: DWORD; |
out lplpD3DRMViewport: IDirect3DRMViewport2): HResult; stdcall; |
7677,733 → 11407,687 |
out lplpD3DRMWrap: IDirect3DRMWrap): HResult; stdcall; |
function CreateUserVisual(fn: TD3DRMUserVisualCallback; lpArg: Pointer; |
out lplpD3DRMUV: IDirect3DRMUserVisual): HResult; stdcall; |
function LoadTexture(lpFileName: LPSTR; out lplpD3DRMTexture: |
function LoadTexture (lpFileName: PAnsiChar; out lplpD3DRMTexture: |
IDirect3DRMTexture3): HResult; stdcall; |
function LoadTextureFromResource(hModule: HModule; str: LPCSTR; out lplpD3DRMTexture: |
IDirect3DRMTexture3): HResult; stdcall; |
function LoadTextureFromResource (hModule: HMODULE; |
strName, strType: PAnsiChar; |
out lplpD3DRMTexture: IDirect3DRMTexture3) : HResult; stdcall; |
function SetSearchPath(lpPath: LPSTR): HResult; stdcall; |
function AddSearchPath(lpPath: LPSTR): HResult; stdcall; |
function GetSearchPath(var lpdwSize: DWORD; lpszPath: LPSTR): HResult; stdcall; |
function SetSearchPath (lpPath: PAnsiChar) : HResult; stdcall; |
function AddSearchPath (lpPath: PAnsiChar) : HResult; stdcall; |
function GetSearchPath (var lpdwSize: DWORD; lpszPath: PAnsiChar) : HResult; stdcall; |
function SetDefaultTextureColors(dwColors: DWORD): HResult; stdcall; |
function SetDefaultTextureShades(dwShades: DWORD): HResult; stdcall; |
function GetDevices(out lplpDevArray: IDirect3DRMDeviceArray): HResult; stdcall; |
function GetNamedObject(lpName: LPSTR; out lplpD3DRMObject: |
IDirect3DRMObject): HResult; stdcall; |
function GetNamedObject (lpName: PAnsiChar; out lplpD3DRMObject: IDirect3DRMObject) : HResult; stdcall; |
function EnumerateObjects(func: TD3DRMObjectCallback; lpArg: Pointer): HResult; stdcall; |
function Load(lpvObjSource, lpvObjID: Pointer; var lplpGUIDs: PGUID; |
dwcGUIDs: DWORD; d3drmLOFlags: TD3DRMLoadOptions; d3drmLoadProc: |
D3DRMLOADCALLBACK; lpArgLP: Pointer; d3drmLoadTextureProc: |
TD3DRMLoadCallback; lpArgLP: Pointer; d3drmLoadTextureProc: |
TD3DRMLoadTexture3Callback; lpArgLTP: Pointer; lpParentFrame: |
IDirect3DRMFrame3): HResult; stdcall; |
function Tick(d3dvalTick: TD3DValue): HResult; stdcall; |
function CreateProgressiveMesh(out lplpD3DRMProgressiveMesh: |
IDirect3DRMProgressiveMesh): HResult; stdcall; |
// IDirect3RM3 methods |
function RegisterClient(const rguid: TGUID; var lpdwID: DWORD): HResult; stdcall; |
(* Used with IDirect3DRMObject2 *) |
function RegisterClient (const rguid: TGUID; out lpdwID: DWORD) : HResult; stdcall; |
function UnregisterClient(const rguid: TGUID): HResult; stdcall; |
function CreateClippedVisual(lpVisual: IDirect3DRMVisual; |
out lpClippedVisual: IDirect3DRMVisual): HResult; stdcall; |
function SetOptions(lpdwOptions: DWORD): HResult; stdcall; |
function GetOptions(var lpdwOptions: DWORD): HResult; stdcall; |
lpClippedVisual: IDirect3DRMClippedVisual) : HResult; stdcall; |
function SetOptions (dwOptions: DWORD) : HResult; stdcall; |
function GetOptions (out lpdwOptions: DWORD) : HResult; stdcall; |
end; |
IID_IDirect3DRM = IDirect3DRM; |
IID_IDirect3DRM2 = IDirect3DRM2; |
IID_IDirect3DRM3 = IDirect3DRM3; |
const |
D3DRM_OK = HResult(DD_OK); |
D3DRMERR_BADOBJECT = HResult($88760000 + 781); |
D3DRMERR_BADTYPE = HResult($88760000 + 782); |
D3DRMERR_BADALLOC = HResult($88760000 + 783); |
D3DRMERR_FACEUSED = HResult($88760000 + 784); |
D3DRMERR_NOTFOUND = HResult($88760000 + 785); |
D3DRMERR_NOTDONEYET = HResult($88760000 + 786); |
D3DRMERR_FILENOTFOUND = HResult($88760000 + 787); |
D3DRMERR_BADFILE = HResult($88760000 + 788); |
D3DRMERR_BADDEVICE = HResult($88760000 + 789); |
D3DRMERR_BADVALUE = HResult($88760000 + 790); |
D3DRMERR_BADMAJORVERSION = HResult($88760000 + 791); |
D3DRMERR_BADMINORVERSION = HResult($88760000 + 792); |
D3DRMERR_UNABLETOEXECUTE = HResult($88760000 + 793); |
D3DRMERR_LIBRARYNOTFOUND = HResult($88760000 + 794); |
D3DRMERR_INVALIDLIBRARY = HResult($88760000 + 795); |
D3DRMERR_PENDING = HResult($88760000 + 796); |
D3DRMERR_NOTENOUGHDATA = HResult($88760000 + 797); |
D3DRMERR_REQUESTTOOLARGE = HResult($88760000 + 798); |
D3DRMERR_REQUESTTOOSMALL = HResult($88760000 + 799); |
D3DRMERR_CONNECTIONLOST = HResult($88760000 + 800); |
D3DRMERR_LOADABORTED = HResult($88760000 + 801); |
D3DRMERR_NOINTERNET = HResult($88760000 + 802); |
D3DRMERR_BADCACHEFILE = HResult($88760000 + 803); |
D3DRMERR_BOXNOTSET = HResult($88760000 + 804); |
D3DRMERR_BADPMDATA = HResult($88760000 + 805); |
D3DRMERR_CLIENTNOTREGISTERED = HResult($88760000 + 806); |
D3DRMERR_NOTCREATEDFROMDDS = HResult($88760000 + 807); |
D3DRMERR_NOSUCHKEY = HResult($88760000 + 808); |
D3DRMERR_INCOMPATABLEKEY = HResult($88760000 + 809); |
D3DRMERR_ELEMENTINUSE = HResult($88760000 + 810); |
D3DRMERR_TEXTUREFORMATNOTFOUND = HResult($88760000 + 811); |
D3DRMERR_NOTAGGREGATED = HResult($88760000 + 812); |
MAKE_D3RMDHRESULT = HResult($88760000); |
{ Create a Direct3DRM API } |
function Direct3DRMCreate(out lplpDirect3DRM: IDirect3DRM): HResult; stdcall; |
D3DRM_OK = DD_OK; |
D3DRMERR_BADOBJECT = MAKE_D3RMDHRESULT + 781; |
D3DRMERR_BADTYPE = MAKE_D3RMDHRESULT + 782; |
D3DRMERR_BADALLOC = MAKE_D3RMDHRESULT + 783; |
D3DRMERR_FACEUSED = MAKE_D3RMDHRESULT + 784; |
D3DRMERR_NOTFOUND = MAKE_D3RMDHRESULT + 785; |
D3DRMERR_NOTDONEYET = MAKE_D3RMDHRESULT + 786; |
D3DRMERR_FILENOTFOUND = MAKE_D3RMDHRESULT + 787; |
D3DRMERR_BADFILE = MAKE_D3RMDHRESULT + 788; |
D3DRMERR_BADDEVICE = MAKE_D3RMDHRESULT + 789; |
D3DRMERR_BADVALUE = MAKE_D3RMDHRESULT + 790; |
D3DRMERR_BADMAJORVERSION = MAKE_D3RMDHRESULT + 791; |
D3DRMERR_BADMINORVERSION = MAKE_D3RMDHRESULT + 792; |
D3DRMERR_UNABLETOEXECUTE = MAKE_D3RMDHRESULT + 793; |
D3DRMERR_LIBRARYNOTFOUND = MAKE_D3RMDHRESULT + 794; |
D3DRMERR_INVALIDLIBRARY = MAKE_D3RMDHRESULT + 795; |
D3DRMERR_PENDING = MAKE_D3RMDHRESULT + 796; |
D3DRMERR_NOTENOUGHDATA = MAKE_D3RMDHRESULT + 797; |
D3DRMERR_REQUESTTOOLARGE = MAKE_D3RMDHRESULT + 798; |
D3DRMERR_REQUESTTOOSMALL = MAKE_D3RMDHRESULT + 799; |
D3DRMERR_CONNECTIONLOST = MAKE_D3RMDHRESULT + 800; |
D3DRMERR_LOADABORTED = MAKE_D3RMDHRESULT + 801; |
D3DRMERR_NOINTERNET = MAKE_D3RMDHRESULT + 802; |
D3DRMERR_BADCACHEFILE = MAKE_D3RMDHRESULT + 803; |
D3DRMERR_BOXNOTSET = MAKE_D3RMDHRESULT + 804; |
D3DRMERR_BADPMDATA = MAKE_D3RMDHRESULT + 805; |
D3DRMERR_CLIENTNOTREGISTERED = MAKE_D3RMDHRESULT + 806; |
D3DRMERR_NOTCREATEDFROMDDS = MAKE_D3RMDHRESULT + 807; |
D3DRMERR_NOSUCHKEY = MAKE_D3RMDHRESULT + 808; |
D3DRMERR_INCOMPATABLEKEY = MAKE_D3RMDHRESULT + 809; |
D3DRMERR_ELEMENTINUSE = MAKE_D3RMDHRESULT + 810; |
D3DRMERR_TEXTUREFORMATNOTFOUND = MAKE_D3RMDHRESULT + 811; |
(* Create a Direct3DRM API *) |
var |
Direct3DRMCreate : function (out lplpDirect3DRM: IDirect3DRM) : HResult; stdcall; |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: d3drmwin.h |
* Content: Direct3DRM include file |
* |
***************************************************************************) |
type |
IDirect3DRMWinDevice = interface (IDirect3DRMObject) |
['{c5016cc0-d273-11ce-ac48-0000c03825a1}'] |
(* |
* IDirect3DRMWinDevice methods |
*) |
(* Repaint the window with the last frame which was rendered. *) |
function HandlePaint (hDC: HDC) : HResult; stdcall; |
(* Respond to a WM_ACTIVATE message. *) |
function HandleActivate (wparam: WORD) : HResult; stdcall; |
end; |
(* |
* GUIDS used by Direct3DRM Windows interface |
*) |
IID_IDirect3DRMWinDevice = IDirect3DRMWinDevice; |
(*************************************************************************** |
* |
* Copyright (C) 1998-1999 Microsoft Corporation. All Rights Reserved. |
* |
* File: dxfile.h |
* File: rmxfguid.h |
* |
* Content: DirectX File public header file |
* Content: Defines GUIDs of D3DRM's templates. |
* |
***************************************************************************) |
{ DirectXFile Object Class Id (for CoCreateInstance()) } |
const |
CLSID_CDirectXFile: TGUID = '{4516EC43-8F20-11D0-9B6D-0000C0781BC3}'; |
(* {2B957100-9E9A-11cf-AB39-0020AF71E433} *) |
TID_D3DRMInfo: TGUID = |
(D1:$2b957100;D2:$9e9a;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
{ DirectX File Interface GUIDs. } |
(* {3D82AB44-62DA-11cf-AB39-0020AF71E433} *) |
TID_D3DRMMesh: TGUID = |
(D1:$3d82ab44;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
IID_IDirectXFile: TGUID = '{3D82AB40-62DA-11CF-AB39-0020AF71E433}'; |
IID_IDirectXFileEnumObject: TGUID = '{3D82AB41-62DA-11CF-AB39-0020AF71E433}'; |
IID_IDirectXFileSaveObject: TGUID = '{3D82AB42-62DA-11CF-AB39-0020AF71E433}'; |
IID_IDirectXFileObject: TGUID = '{3D82AB43-62DA-11CF-AB39-0020AF71E433}'; |
IID_IDirectXFileData: TGUID = '{3D82AB44-62DA-11CF-AB39-0020AF71E433}'; |
IID_IDirectXFileDataReference: TGUID = '{3D82AB45-62DA-11CF-AB39-0020AF71E433}'; |
IID_IDirectXFileBinary: TGUID = '{3D82AB46-62DA-11CF-AB39-0020AF71E433}'; |
(* {3D82AB5E-62DA-11cf-AB39-0020AF71E433} *) |
TID_D3DRMVector: TGUID = |
(D1:$3d82ab5e;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
type |
TDXFileFormat = DWORD; |
DXFILEFORMAT = TDXFileFormat; |
(* {3D82AB5F-62DA-11cf-AB39-0020AF71E433} *) |
TID_D3DRMMeshFace: TGUID = |
(D1:$3d82ab5f;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
const |
DXFILEFORMAT_BINARY = 0; |
DXFILEFORMAT_TEXT = 1; |
DXFILEFORMAT_COMPRESSED = 2; |
(* {3D82AB4D-62DA-11cf-AB39-0020AF71E433} *) |
TID_D3DRMMaterial: TGUID = |
(D1:$3d82ab4d;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
type |
TDXFileLoadOptions = DWORD; |
DXFILELOADOPTIONS = TDXFileLoadOptions; |
(* {35FF44E1-6C7C-11cf-8F52-0040333594A3} *) |
TID_D3DRMMaterialArray: TGUID = |
(D1:$35ff44e1;D2:$6c7c;D3:$11cf;D4:($8F,$52,$00,$40,$33,$35,$94,$a3)); |
const |
DXFILELOAD_FROMFILE = $00; |
DXFILELOAD_FROMRESOURCE = $01; |
DXFILELOAD_FROMMEMORY = $02; |
DXFILELOAD_FROMSTREAM = $04; |
DXFILELOAD_FROMURL = $08; |
(* {3D82AB46-62DA-11cf-AB39-0020AF71E433} *) |
TID_D3DRMFrame: TGUID = |
(D1:$3d82ab46;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
type |
PDXFileLoadResource = ^TDXFileLoadResource; |
TDXFileLoadResource = record |
hModule: HModule; |
lpName: PChar; |
lpType: PChar; |
end; |
(* {F6F23F41-7686-11cf-8F52-0040333594A3} *) |
TID_D3DRMFrameTransformMatrix: TGUID = |
(D1:$f6f23f41;D2:$7686;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
DXFILELOADRESOURCE = TDXFileLoadResource; |
LPDXFILELOADRESOURCE = PDXFileLoadResource; |
(* {F6F23F42-7686-11cf-8F52-0040333594A3} *) |
TID_D3DRMMeshMaterialList: TGUID = |
(D1:$f6f23f42;D2:$7686;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
PDXFileLoadMemory = ^TDXFileLoadMemory; |
TDXFileLoadMemory = record |
lpMemory: Pointer; |
dSize: DWORD; |
end; |
(* {F6F23F40-7686-11cf-8F52-0040333594A3} *) |
TID_D3DRMMeshTextureCoords: TGUID = |
(D1:$f6f23f40;D2:$7686;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
DXFILELOADMEMORY = TDXFileLoadMemory; |
LPDXFILELOADMEMORY = PDXFileLoadMemory; |
(* {F6F23F43-7686-11cf-8F52-0040333594A3} *) |
TID_D3DRMMeshNormals: TGUID = |
(D1:$f6f23f43;D2:$7686;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
{ DirectX File object types. } |
(* {F6F23F44-7686-11cf-8F52-0040333594A3} *) |
TID_D3DRMCoords2d: TGUID = |
(D1:$f6f23f44;D2:$7686;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
type |
IDirectXFile = interface; |
IDirectXFileEnumObject = interface; |
IDirectXFileSaveObject = interface; |
IDirectXFileObject = interface; |
IDirectXFileData = interface; |
IDirectXFileDataReference = interface; |
IDirectXFileBinary = interface; |
(* {F6F23F45-7686-11cf-8F52-0040333594A3} *) |
TID_D3DRMMatrix4x4: TGUID = |
(D1:$f6f23f45;D2:$7686;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
IDirectXFile = interface(IUnknown) |
['{3D82AB40-62DA-11CF-AB39-0020AF71E433}'] |
function CreateEnumObject(pvSource: Pointer; dwLoadOptions: TDXFileLoadOptions; |
out ppEnumObj: IDirectXFileEnumObject): HResult; stdcall; |
function CreateSaveObject(szFileName: PChar; dwFileFormat: TDXFileFormat; |
out ppSaveObj: IDirectXFileSaveObject): HResult; stdcall; |
function RegisterTemplates(pvData: Pointer; cbSize: DWORD): HResult; stdcall; |
end; |
(* {3D82AB4F-62DA-11cf-AB39-0020AF71E433} *) |
TID_D3DRMAnimation: TGUID = |
(D1:$3d82ab4f;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
IDirectXFileEnumObject = interface(IUnknown) |
['{3D82AB41-62DA-11CF-AB39-0020AF71E433}'] |
function GetNextDataObject(out ppDataObj: IDirectXFileData): HResult; stdcall; |
function GetDataObjectById(const rguid: TGUID; out ppDataObj: IDirectXFileData): HResult; stdcall; |
function GetDataObjectByName(szName: PChar; out ppDataObj: IDirectXFileData): HResult; stdcall; |
end; |
(* {3D82AB50-62DA-11cf-AB39-0020AF71E433} *) |
TID_D3DRMAnimationSet: TGUID = |
(D1:$3d82ab50;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
IDirectXFileSaveObject = interface(IUnknown) |
['{3D82AB42-62DA-11CF-AB39-0020AF71E433}'] |
function SaveTemplates(cTemplates: DWORD; var ppguidTemplates: PGUID): HResult; stdcall; |
function CreateDataObject(const rguidTemplate: TGUID; szName: PChar; |
const pguid: TGUID; cbSize: DWORD; pvData: Pointer; |
out ppDataObj: IDirectXFileData): HResult; stdcall; |
function SaveData(pDataObj: IDirectXFileData): HResult; stdcall; |
end; |
(* {10DD46A8-775B-11cf-8F52-0040333594A3} *) |
TID_D3DRMAnimationKey: TGUID = |
(D1:$10dd46a8;D2:$775b;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$A3)); |
IDirectXFileObject = interface(IUnknown) |
['{3D82AB43-62DA-11CF-AB39-0020AF71E433}'] |
function GetName(pstrNameBuf: PChar; var dwBufLen: DWORD): HResult; stdcall; |
function GetId (var pGuidBuf: TGUID): HResult; stdcall; |
end; |
(* {10DD46A9-775B-11cf-8F52-0040333594A3} *) |
TID_D3DRMFloatKeys: TGUID = |
(D1:$10dd46a9;D2:$775b;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$A3)); |
IDirectXFileData = interface(IDirectXFileObject) |
['{3D82AB44-62DA-11CF-AB39-0020AF71E433}'] |
function GetData(szMember: PChar; var pcbSize: DWORD; var ppvData: Pointer): HResult; stdcall; |
function GetType(var ppguid: PGUID): HResult; stdcall; |
function GetNextObject(out ppChildObj: IDirectXFileObject): HResult; stdcall; |
function AddDataObject(pDataObj: IDirectXFileData): HResult; stdcall; |
function AddDataReference(szRef: PChar; pguidRef: PGUID): HResult; stdcall; |
function AddBinaryObjec (szName: PChar; pguid: PGUID; szMimeType: PChar; |
pvData: Pointer; cbSize: DWORD): HResult; stdcall; |
end; |
(* {01411840-7786-11cf-8F52-0040333594A3} *) |
TID_D3DRMMaterialAmbientColor: TGUID = |
(D1:$01411840;D2:$7786;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$A3)); |
IDirectXFileDataReference = interface(IDirectXFileObject) |
['{3D82AB45-62DA-11CF-AB39-0020AF71E433}'] |
function Resolve(out ppDataObj: IDirectXFileData): HResult; stdcall; |
end; |
(* {01411841-7786-11cf-8F52-0040333594A3} *) |
TID_D3DRMMaterialDiffuseColor: TGUID = |
(D1:$01411841;D2:$7786;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$A3)); |
IDirectXFileBinary = interface(IDirectXFileObject) |
['{3D82AB46-62DA-11CF-AB39-0020AF71E433}'] |
function GetSize(var pcbSize: DWORD): HResult; stdcall; |
function GetMimeType(var pszMimeType: PChar): HResult; stdcall; |
function Read(pvData: Pointer; cbSize: DWORD; var pcbRead: DWORD): HResult; stdcall; |
end; |
(* {01411842-7786-11cf-8F52-0040333594A3} *) |
TID_D3DRMMaterialSpecularColor: TGUID = |
(D1:$01411842;D2:$7786;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$A3)); |
{ DirectX File Header template's GUID. } |
(* {D3E16E80-7835-11cf-8F52-0040333594A3} *) |
TID_D3DRMMaterialEmissiveColor: TGUID = |
(D1:$d3e16e80;D2:$7835;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
const |
TID_DXFILEHeader: TGUID = '{3D82AB43-62DA-11CF-AB39-0020AF71E433}'; |
(* {01411843-7786-11cf-8F52-0040333594A3} *) |
TID_D3DRMMaterialPower: TGUID = |
(D1:$01411843;D2:$7786;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$A3)); |
{ DirectX File errors. } |
(* {35FF44E0-6C7C-11cf-8F52-0040333594A3} *) |
TID_D3DRMColorRGBA: TGUID = |
(D1:$35ff44e0;D2:$6c7c;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$A3)); |
const |
DXFILE_OK = HResult(0); |
(* {D3E16E81-7835-11cf-8F52-0040333594A3} *) |
TID_D3DRMColorRGB: TGUID = |
(D1:$d3e16e81;D2:$7835;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
DXFILEERR_BADOBJECT = HResult($88760000 + 850); |
DXFILEERR_BADVALUE = HResult($88760000 + 851); |
DXFILEERR_BADTYPE = HResult($88760000 + 852); |
DXFILEERR_BADSTREAMHANDLE = HResult($88760000 + 853); |
DXFILEERR_BADALLOC = HResult($88760000 + 854); |
DXFILEERR_NOTFOUND = HResult($88760000 + 855); |
DXFILEERR_NOTDONEYET = HResult($88760000 + 856); |
DXFILEERR_FILENOTFOUND = HResult($88760000 + 857); |
DXFILEERR_RESOURCENOTFOUND = HResult($88760000 + 858); |
DXFILEERR_URLNOTFOUND = HResult($88760000 + 859); |
DXFILEERR_BADRESOURCE = HResult($88760000 + 860); |
DXFILEERR_BADFILETYPE = HResult($88760000 + 861); |
DXFILEERR_BADFILEVERSION = HResult($88760000 + 862); |
DXFILEERR_BADFILEFLOATSIZE = HResult($88760000 + 863); |
DXFILEERR_BADFILECOMPRESSIONTYPE = HResult($88760000 + 864); |
DXFILEERR_BADFILE = HResult($88760000 + 865); |
DXFILEERR_PARSEERROR = HResult($88760000 + 866); |
DXFILEERR_NOTEMPLATE = HResult($88760000 + 867); |
DXFILEERR_BADARRAYSIZE = HResult($88760000 + 868); |
DXFILEERR_BADDATAREFERENCE = HResult($88760000 + 869); |
DXFILEERR_INTERNALERROR = HResult($88760000 + 870); |
DXFILEERR_NOMOREOBJECTS = HResult($88760000 + 871); |
DXFILEERR_BADINTRINSICS = HResult($88760000 + 872); |
DXFILEERR_NOMORESTREAMHANDLES = HResult($88760000 + 873); |
DXFILEERR_NOMOREDATA = HResult($88760000 + 874); |
DXFILEERR_BADCACHEFILE = HResult($88760000 + 875); |
DXFILEERR_NOINTERNET = HResult($88760000 + 876); |
(* {A42790E0-7810-11cf-8F52-0040333594A3} *) |
TID_D3DRMGuid: TGUID = |
(D1:$a42790e0;D2:$7810;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
{ API for creating IDirectXFile interface. } |
(* {A42790E1-7810-11cf-8F52-0040333594A3} *) |
TID_D3DRMTextureFilename: TGUID = |
(D1:$a42790e1;D2:$7810;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
function DirectXFileCreate(out lplpDirectXFile: IDirectXFile): HResult; stdcall; |
(* {A42790E2-7810-11cf-8F52-0040333594A3} *) |
TID_D3DRMTextureReference: TGUID = |
(D1:$a42790e2;D2:$7810;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
(*************************************************************************** |
* |
* Copyright (C) 1998-1999 Microsoft Corporation. All Rights Reserved. |
* |
* File: rmxfguid.h |
* |
* Content: Defines GUIDs of D3DRM's templates. |
* |
***************************************************************************) |
(* {1630B820-7842-11cf-8F52-0040333594A3} *) |
TID_D3DRMIndexedColor: TGUID = |
(D1:$1630b820;D2:$7842;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
const |
TID_D3DRMInfo: TGUID = '{2B957100-9E9A-11cf-AB39-0020AF71E433}'; |
TID_D3DRMMesh: TGUID = '{3D82AB44-62DA-11cf-AB39-0020AF71E433}'; |
TID_D3DRMVector: TGUID = '{3D82AB5E-62DA-11cf-AB39-0020AF71E433}'; |
TID_D3DRMMeshFace: TGUID = '{3D82AB5F-62DA-11cf-AB39-0020AF71E433}'; |
TID_D3DRMMaterial: TGUID = '{3D82AB4D-62DA-11cf-AB39-0020AF71E433}'; |
TID_D3DRMMaterialArray: TGUID = '{35FF44E1-6C7C-11cf-8F52-0040333594A3}'; |
TID_D3DRMFrame: TGUID = '{3D82AB46-62DA-11cf-AB39-0020AF71E433}'; |
TID_D3DRMFrameTransformMatrix: TGUID = '{F6F23F41-7686-11cf-8F52-0040333594A3}'; |
TID_D3DRMMeshMaterialList: TGUID = '{F6F23F42-7686-11cf-8F52-0040333594A3}'; |
TID_D3DRMMeshTextureCoords: TGUID = '{F6F23F40-7686-11cf-8F52-0040333594A3}'; |
TID_D3DRMMeshNormals: TGUID = '{F6F23F43-7686-11cf-8F52-0040333594A3}'; |
TID_D3DRMCoords2d: TGUID = '{F6F23F44-7686-11cf-8F52-0040333594A3}'; |
TID_D3DRMMatrix4x4: TGUID = '{F6F23F45-7686-11cf-8F52-0040333594A3}'; |
TID_D3DRMAnimation: TGUID = '{3D82AB4F-62DA-11cf-AB39-0020AF71E433}'; |
TID_D3DRMAnimationSet: TGUID = '{3D82AB50-62DA-11cf-AB39-0020AF71E433}'; |
TID_D3DRMAnimationKey: TGUID = '{10DD46A8-775B-11cf-8F52-0040333594A3}'; |
TID_D3DRMFloatKeys: TGUID = '{10DD46A9-775B-11cf-8F52-0040333594A3}'; |
TID_D3DRMMaterialAmbientColor: TGUID = '{01411840-7786-11cf-8F52-0040333594A3}'; |
TID_D3DRMMaterialDiffuseColor: TGUID = '{01411841-7786-11cf-8F52-0040333594A3}'; |
TID_D3DRMMaterialSpecularColor: TGUID = '{01411842-7786-11cf-8F52-0040333594A3}'; |
TID_D3DRMMaterialEmissiveColor: TGUID = '{D3E16E80-7835-11cf-8F52-0040333594A3}'; |
TID_D3DRMMaterialPower: TGUID = '{01411843-7786-11cf-8F52-0040333594A3}'; |
TID_D3DRMColorRGBA: TGUID = '{35FF44E0-6C7C-11cf-8F52-0040333594A3}'; |
TID_D3DRMColorRGB: TGUID = '{D3E16E81-7835-11cf-8F52-0040333594A3}'; |
TID_D3DRMGuid: TGUID = '{A42790E0-7810-11cf-8F52-0040333594A3}'; |
TID_D3DRMTextureFilename: TGUID = '{A42790E1-7810-11cf-8F52-0040333594A3}'; |
TID_D3DRMTextureReference: TGUID = '{A42790E2-7810-11cf-8F52-0040333594A3}'; |
TID_D3DRMIndexedColor: TGUID = '{1630B820-7842-11cf-8F52-0040333594A3}'; |
TID_D3DRMMeshVertexColors: TGUID = '{1630B821-7842-11cf-8F52-0040333594A3}'; |
TID_D3DRMMaterialWrap: TGUID = '{4885AE60-78E8-11cf-8F52-0040333594A3}'; |
TID_D3DRMBoolean: TGUID = '{537DA6A0-CA37-11d0-941C-0080C80CFA7B}'; |
TID_D3DRMMeshFaceWraps: TGUID = '{ED1EC5C0-C0A8-11d0-941C-0080C80CFA7B}'; |
TID_D3DRMBoolean2d: TGUID = '{4885AE63-78E8-11cf-8F52-0040333594A3}'; |
TID_D3DRMTimedFloatKeys: TGUID = '{F406B180-7B3B-11cf-8F52-0040333594A3}'; |
TID_D3DRMAnimationOptions: TGUID = '{E2BF56C0-840F-11cf-8F52-0040333594A3}'; |
TID_D3DRMFramePosition: TGUID = '{E2BF56C1-840F-11cf-8F52-0040333594A3}'; |
TID_D3DRMFrameVelocity: TGUID = '{E2BF56C2-840F-11cf-8F52-0040333594A3}'; |
TID_D3DRMFrameRotation: TGUID = '{E2BF56C3-840F-11cf-8F52-0040333594A3}'; |
TID_D3DRMLight: TGUID = '{3D82AB4A-62DA-11cf-AB39-0020AF71E433}'; |
TID_D3DRMCamera: TGUID = '{3D82AB51-62DA-11cf-AB39-0020AF71E433}'; |
TID_D3DRMAppData: TGUID = '{E5745280-B24F-11cf-9DD5-00AA00A71A2F}'; |
TID_D3DRMLightUmbra: TGUID = '{AED22740-B31F-11cf-9DD5-00AA00A71A2F}'; |
TID_D3DRMLightRange: TGUID = '{AED22742-B31F-11cf-9DD5-00AA00A71A2F}'; |
TID_D3DRMLightPenumbra: TGUID = '{AED22741-B31F-11cf-9DD5-00AA00A71A2F}'; |
TID_D3DRMLightAttenuation: TGUID = '{A8A98BA0-C5E5-11cf-B941-0080C80CFA7B}'; |
TID_D3DRMInlineData: TGUID = '{3A23EEA0-94B1-11d0-AB39-0020AF71E433}'; |
TID_D3DRMUrl: TGUID = '{3A23EEA1-94B1-11d0-AB39-0020AF71E433}'; |
(* {1630B821-7842-11cf-8F52-0040333594A3} *) |
TID_D3DRMMeshVertexColors: TGUID = |
(D1:$1630b821;D2:$7842;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
TID_D3DRMProgressiveMesh: TGUID = '{8A63C360-997D-11d0-941C-0080C80CFA7B}'; |
TID_D3DRMExternalVisual: TGUID = '{98116AA0-BDBA-11d1-82C0-00A0C9697271}'; |
TID_D3DRMStringProperty: TGUID = '{7F0F21E0-BFE1-11d1-82C0-00A0C9697271}'; |
TID_D3DRMPropertyBag: TGUID = '{7F0F21E1-BFE1-11d1-82C0-00A0C9697271}'; |
TID_D3DRMRightHanded: TGUID = '{7F5D5EA0-D53A-11d1-82C0-00A0C9697271}'; |
(* {4885AE60-78E8-11cf-8F52-0040333594A3} *) |
TID_D3DRMMaterialWrap: TGUID = |
(D1:$4885ae60;D2:$78e8;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
(*************************************************************************** |
(* {537DA6A0-CA37-11d0-941C-0080C80CFA7B} *) |
TID_D3DRMBoolean: TGUID = |
(D1:$537da6a0;D2:$ca37;D3:$11d0;D4:($94,$1c,$00,$80,$c8,$0c,$fa,$7b)); |
(* {ED1EC5C0-C0A8-11d0-941C-0080C80CFA7B} *) |
TID_D3DRMMeshFaceWraps: TGUID = |
(D1:$ed1ec5c0;D2:$c0a8;D3:$11d0;D4:($94,$1c,$00,$80,$c8,$0c,$fa,$7b)); |
(* {4885AE63-78E8-11cf-8F52-0040333594A3} *) |
TID_D3DRMBoolean2d: TGUID = |
(D1:$4885ae63;D2:$78e8;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
(* {F406B180-7B3B-11cf-8F52-0040333594A3} *) |
TID_D3DRMTimedFloatKeys: TGUID = |
(D1:$f406b180;D2:$7b3b;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
(* {E2BF56C0-840F-11cf-8F52-0040333594A3} *) |
TID_D3DRMAnimationOptions: TGUID = |
(D1:$e2bf56c0;D2:$840f;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
(* {E2BF56C1-840F-11cf-8F52-0040333594A3} *) |
TID_D3DRMFramePosition: TGUID = |
(D1:$e2bf56c1;D2:$840f;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
(* {E2BF56C2-840F-11cf-8F52-0040333594A3} *) |
TID_D3DRMFrameVelocity: TGUID = |
(D1:$e2bf56c2;D2:$840f;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
(* {E2BF56C3-840F-11cf-8F52-0040333594A3} *) |
TID_D3DRMFrameRotation: TGUID = |
(D1:$e2bf56c3;D2:$840f;D3:$11cf;D4:($8f,$52,$00,$40,$33,$35,$94,$a3)); |
(* {3D82AB4A-62DA-11cf-AB39-0020AF71E433} *) |
TID_D3DRMLight: TGUID = |
(D1:$3d82ab4a;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
(* {3D82AB51-62DA-11cf-AB39-0020AF71E433} *) |
TID_D3DRMCamera: TGUID = |
(D1:$3d82ab51;D2:$62da;D3:$11cf;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
(* {E5745280-B24F-11cf-9DD5-00AA00A71A2F} *) |
TID_D3DRMAppData: TGUID = |
(D1:$e5745280;D2:$b24f;D3:$11cf;D4:($9d,$d5,$00,$aa,$00,$a7,$1a,$2f)); |
(* {AED22740-B31F-11cf-9DD5-00AA00A71A2F} *) |
TID_D3DRMLightUmbra: TGUID = |
(D1:$aed22740;D2:$b31f;D3:$11cf;D4:($9d,$d5,$00,$aa,$00,$a7,$1a,$2f)); |
(* {AED22742-B31F-11cf-9DD5-00AA00A71A2F} *) |
TID_D3DRMLightRange: TGUID = |
(D1:$aed22742;D2:$b31f;D3:$11cf;D4:($9d,$d5,$00,$aa,$00,$a7,$1a,$2f)); |
(* {AED22741-B31F-11cf-9DD5-00AA00A71A2F} *) |
TID_D3DRMLightPenumbra: TGUID = |
(D1:$aed22741;D2:$b31f;D3:$11cf;D4:($9d,$d5,$00,$aa,$00,$a7,$1a,$2f)); |
(* {A8A98BA0-C5E5-11cf-B941-0080C80CFA7B} *) |
TID_D3DRMLightAttenuation: TGUID = |
(D1:$a8a98ba0;D2:$c5e5;D3:$11cf;D4:($b9,$41,$00,$80,$c8,$0c,$fa,$7b)); |
(* {3A23EEA0-94B1-11d0-AB39-0020AF71E433} *) |
TID_D3DRMInlineData: TGUID = |
(D1:$3a23eea0;D2:$94b1;D3:$11d0;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
(* {3A23EEA1-94B1-11d0-AB39-0020AF71E433} *) |
TID_D3DRMUrl: TGUID = |
(D1:$3a23eea1;D2:$94b1;D3:$11d0;D4:($ab,$39,$00,$20,$af,$71,$e4,$33)); |
(* {8A63C360-997D-11d0-941C-0080C80CFA7B} *) |
TID_D3DRMProgressiveMesh: TGUID = |
(D1:$8A63C360;D2:$997D;D3:$11d0;D4:($94,$1C,$00,$80,$C8,$0C,$FA,$7B)); |
(* {98116AA0-BDBA-11d1-82C0-00A0C9697271} *) |
TID_D3DRMExternalVisual: TGUID = |
(D1:$98116AA0;D2:$BDBA;D3:$11d1;D4:($82,$C0,$00,$A0,$C9,$69,$72,$71)); |
(* {7F0F21E0-BFE1-11d1-82C0-00A0C9697271} *) |
TID_D3DRMStringProperty: TGUID = |
(D1:$7f0f21e0;D2:$bfe1;D3:$11d1;D4:($82,$c0,$00,$a0,$c9,$69,$72,$71)); |
(* {7F0F21E1-BFE1-11d1-82C0-00A0C9697271} *) |
TID_D3DRMPropertyBag: TGUID = |
(D1:$7f0f21e1;D2:$bfe1;D3:$11d1;D4:($82,$c0,$00,$a0,$c9,$69,$72,$71)); |
// {7F5D5EA0-D53A-11d1-82C0-00A0C9697271} |
TID_D3DRMRightHanded: TGUID = |
(D1:$7f5d5ea0;D2:$d53a;D3:$11d1;D4:($82,$c0,$00,$a0,$c9,$69,$72,$71)); |
(*==========================================================================; |
* |
* Copyright (C) 1998-1999 Microsoft Corporation. All Rights Reserved. |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: rmxftmpl.h |
* Content: D3DRM XFile templates in binary form |
* |
* Content: D3DRM XFile templates in binary form. |
* |
***************************************************************************) |
const |
D3DRM_XTEMPLATES: array [0..3214] of byte = ( |
$78, $6f, $66, $20, $30, $33, $30, $32, $62, |
$69, $6e, $20, $30, $30, $36, $34, $1f, 0, $1, |
0, $6, 0, 0, 0, $48, $65, $61, $64, $65, |
$72, $a, 0, $5, 0, $43, $ab, $82, $3d, $da, |
$62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, |
$33, $28, 0, $1, 0, $5, 0, 0, 0, $6d, |
$61, $6a, $6f, $72, $14, 0, $28, 0, $1, 0, |
$5, 0, 0, 0, $6d, $69, $6e, $6f, $72, $14, |
0, $29, 0, $1, 0, $5, 0, 0, 0, $66, |
$6c, $61, $67, $73, $14, 0, $b, 0, $1f, 0, |
$1, 0, $6, 0, 0, 0, $56, $65, $63, $74, |
$6f, $72, $a, 0, $5, 0, $5e, $ab, $82, $3d, |
$da, $62, $cf, $11, $ab, $39, 0, $20, $af, $71, |
$e4, $33, $2a, 0, $1, 0, $1, 0, 0, 0, |
$78, $14, 0, $2a, 0, $1, 0, $1, 0, 0, |
0, $79, $14, 0, $2a, 0, $1, 0, $1, 0, |
0, 0, $7a, $14, 0, $b, 0, $1f, 0, $1, |
0, $8, 0, 0, 0, $43, $6f, $6f, $72, $64, |
$73, $32, $64, $a, 0, $5, 0, $44, $3f, $f2, |
$f6, $86, $76, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $2a, 0, $1, 0, $1, 0, 0, |
0, $75, $14, 0, $2a, 0, $1, 0, $1, 0, |
0, 0, $76, $14, 0, $b, 0, $1f, 0, $1, |
0, $9, 0, 0, 0, $4d, $61, $74, $72, $69, |
$78, $34, $78, $34, $a, 0, $5, 0, $45, $3f, |
$f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, |
$33, $35, $94, $a3, $34, 0, $2a, 0, $1, 0, |
$6, 0, 0, 0, $6d, $61, $74, $72, $69, $78, |
$e, 0, $3, 0, $10, 0, 0, 0, $f, 0, |
$14, 0, $b, 0, $1f, 0, $1, 0, $9, 0, |
0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, |
$41, $a, 0, $5, 0, $e0, $44, $ff, $35, $7c, |
$6c, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, |
$a3, $2a, 0, $1, 0, $3, 0, 0, 0, $72, |
$65, $64, $14, 0, $2a, 0, $1, 0, $5, 0, |
0, 0, $67, $72, $65, $65, $6e, $14, 0, $2a, |
0, $1, 0, $4, 0, 0, 0, $62, $6c, $75, |
$65, $14, 0, $2a, 0, $1, 0, $5, 0, 0, |
0, $61, $6c, $70, $68, $61, $14, 0, $b, 0, |
$1f, 0, $1, 0, $8, 0, 0, 0, $43, $6f, |
$6c, $6f, $72, $52, $47, $42, $a, 0, $5, 0, |
$81, $6e, $e1, $d3, $35, $78, $cf, $11, $8f, $52, |
0, $40, $33, $35, $94, $a3, $2a, 0, $1, 0, |
$3, 0, 0, 0, $72, $65, $64, $14, 0, $2a, |
0, $1, 0, $5, 0, 0, 0, $67, $72, $65, |
$65, $6e, $14, 0, $2a, 0, $1, 0, $4, 0, |
0, 0, $62, $6c, $75, $65, $14, 0, $b, 0, |
$1f, 0, $1, 0, $c, 0, 0, 0, $49, $6e, |
$64, $65, $78, $65, $64, $43, $6f, $6c, $6f, $72, |
$a, 0, $5, 0, $20, $b8, $30, $16, $42, $78, |
$cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
$29, 0, $1, 0, $5, 0, 0, 0, $69, $6e, |
$64, $65, $78, $14, 0, $1, 0, $9, 0, 0, |
0, $43, $6f, $6c, $6f, $72, $52, $47, $42, $41, |
$1, 0, $a, 0, 0, 0, $69, $6e, $64, $65, |
$78, $43, $6f, $6c, $6f, $72, $14, 0, $b, 0, |
$1f, 0, $1, 0, $7, 0, 0, 0, $42, $6f, |
$6f, $6c, $65, $61, $6e, $a, 0, $5, 0, $a0, |
$a6, $7d, $53, $37, $ca, $d0, $11, $94, $1c, 0, |
$80, $c8, $c, $fa, $7b, $29, 0, $1, 0, $9, |
0, 0, 0, $74, $72, $75, $65, $66, $61, $6c, |
$73, $65, $14, 0, $b, 0, $1f, 0, $1, 0, |
$9, 0, 0, 0, $42, $6f, $6f, $6c, $65, $61, |
$6e, $32, $64, $a, 0, $5, 0, $63, $ae, $85, |
$48, $e8, $78, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $1, 0, $7, 0, 0, 0, $42, |
$6f, $6f, $6c, $65, $61, $6e, $1, 0, $1, 0, |
0, 0, $75, $14, 0, $1, 0, $7, 0, 0, |
0, $42, $6f, $6f, $6c, $65, $61, $6e, $1, 0, |
$1, 0, 0, 0, $76, $14, 0, $b, 0, $1f, |
0, $1, 0, $c, 0, 0, 0, $4d, $61, $74, |
$65, $72, $69, $61, $6c, $57, $72, $61, $70, $a, |
0, $5, 0, $60, $ae, $85, $48, $e8, $78, $cf, |
$11, $8f, $52, 0, $40, $33, $35, $94, $a3, $1, |
0, $7, 0, 0, 0, $42, $6f, $6f, $6c, $65, |
$61, $6e, $1, 0, $1, 0, 0, 0, $75, $14, |
0, $1, 0, $7, 0, 0, 0, $42, $6f, $6f, |
$6c, $65, $61, $6e, $1, 0, $1, 0, 0, 0, |
$76, $14, 0, $b, 0, $1f, 0, $1, 0, $f, |
0, 0, 0, $54, $65, $78, $74, $75, $72, $65, |
$46, $69, $6c, $65, $6e, $61, $6d, $65, $a, 0, |
$5, 0, $e1, $90, $27, $a4, $10, $78, $cf, $11, |
$8f, $52, 0, $40, $33, $35, $94, $a3, $31, 0, |
$1, 0, $8, 0, 0, 0, $66, $69, $6c, $65, |
$6e, $61, $6d, $65, $14, 0, $b, 0, $1f, 0, |
$1, 0, $8, 0, 0, 0, $4d, $61, $74, $65, |
$72, $69, $61, $6c, $a, 0, $5, 0, $4d, $ab, |
$82, $3d, $da, $62, $cf, $11, $ab, $39, 0, $20, |
$af, $71, $e4, $33, $1, 0, $9, 0, 0, 0, |
$43, $6f, $6c, $6f, $72, $52, $47, $42, $41, $1, |
0, $9, 0, 0, 0, $66, $61, $63, $65, $43, |
$6f, $6c, $6f, $72, $14, 0, $2a, 0, $1, 0, |
$5, 0, 0, 0, $70, $6f, $77, $65, $72, $14, |
0, $1, 0, $8, 0, 0, 0, $43, $6f, $6c, |
$6f, $72, $52, $47, $42, $1, 0, $d, 0, 0, |
0, $73, $70, $65, $63, $75, $6c, $61, $72, $43, |
$6f, $6c, $6f, $72, $14, 0, $1, 0, $8, 0, |
0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, |
$1, 0, $d, 0, 0, 0, $65, $6d, $69, $73, |
$73, $69, $76, $65, $43, $6f, $6c, $6f, $72, $14, |
0, $e, 0, $12, 0, $12, 0, $12, 0, $f, |
0, $b, 0, $1f, 0, $1, 0, $8, 0, 0, |
0, $4d, $65, $73, $68, $46, $61, $63, $65, $a, |
0, $5, 0, $5f, $ab, $82, $3d, $da, $62, $cf, |
$11, $ab, $39, 0, $20, $af, $71, $e4, $33, $29, |
0, $1, 0, $12, 0, 0, 0, $6e, $46, $61, |
$63, $65, $56, $65, $72, $74, $65, $78, $49, $6e, |
$64, $69, $63, $65, $73, $14, 0, $34, 0, $29, |
0, $1, 0, $11, 0, 0, 0, $66, $61, $63, |
$65, $56, $65, $72, $74, $65, $78, $49, $6e, $64, |
$69, $63, $65, $73, $e, 0, $1, 0, $12, 0, |
0, 0, $6e, $46, $61, $63, $65, $56, $65, $72, |
$74, $65, $78, $49, $6e, $64, $69, $63, $65, $73, |
$f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, |
$d, 0, 0, 0, $4d, $65, $73, $68, $46, $61, |
$63, $65, $57, $72, $61, $70, $73, $a, 0, $5, |
0, $c0, $c5, $1e, $ed, $a8, $c0, $d0, $11, $94, |
$1c, 0, $80, $c8, $c, $fa, $7b, $29, 0, $1, |
0, $f, 0, 0, 0, $6e, $46, $61, $63, $65, |
$57, $72, $61, $70, $56, $61, $6c, $75, $65, $73, |
$14, 0, $34, 0, $1, 0, $9, 0, 0, 0, |
$42, $6f, $6f, $6c, $65, $61, $6e, $32, $64, $1, |
0, $e, 0, 0, 0, $66, $61, $63, $65, $57, |
$72, $61, $70, $56, $61, $6c, $75, $65, $73, $e, |
0, $1, 0, $f, 0, 0, 0, $6e, $46, $61, |
$63, $65, $57, $72, $61, $70, $56, $61, $6c, $75, |
$65, $73, $f, 0, $14, 0, $b, 0, $1f, 0, |
$1, 0, $11, 0, 0, 0, $4d, $65, $73, $68, |
$54, $65, $78, $74, $75, $72, $65, $43, $6f, $6f, |
$72, $64, $73, $a, 0, $5, 0, $40, $3f, $f2, |
$f6, $86, $76, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $29, 0, $1, 0, $e, 0, 0, |
0, $6e, $54, $65, $78, $74, $75, $72, $65, $43, |
$6f, $6f, $72, $64, $73, $14, 0, $34, 0, $1, |
0, $8, 0, 0, 0, $43, $6f, $6f, $72, $64, |
$73, $32, $64, $1, 0, $d, 0, 0, 0, $74, |
$65, $78, $74, $75, $72, $65, $43, $6f, $6f, $72, |
$64, $73, $e, 0, $1, 0, $e, 0, 0, 0, |
$6e, $54, $65, $78, $74, $75, $72, $65, $43, $6f, |
$6f, $72, $64, $73, $f, 0, $14, 0, $b, 0, |
$1f, 0, $1, 0, $10, 0, 0, 0, $4d, $65, |
$73, $68, $4d, $61, $74, $65, $72, $69, $61, $6c, |
$4c, $69, $73, $74, $a, 0, $5, 0, $42, $3f, |
$f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, |
$33, $35, $94, $a3, $29, 0, $1, 0, $a, 0, |
0, 0, $6e, $4d, $61, $74, $65, $72, $69, $61, |
$6c, $73, $14, 0, $29, 0, $1, 0, $c, 0, |
0, 0, $6e, $46, $61, $63, $65, $49, $6e, $64, |
$65, $78, $65, $73, $14, 0, $34, 0, $29, 0, |
$1, 0, $b, 0, 0, 0, $66, $61, $63, $65, |
$49, $6e, $64, $65, $78, $65, $73, $e, 0, $1, |
0, $c, 0, 0, 0, $6e, $46, $61, $63, $65, |
$49, $6e, $64, $65, $78, $65, $73, $f, 0, $14, |
0, $e, 0, $1, 0, $8, 0, 0, 0, $4d, |
$61, $74, $65, $72, $69, $61, $6c, $f, 0, $b, |
0, $1f, 0, $1, 0, $b, 0, 0, 0, $4d, |
$65, $73, $68, $4e, $6f, $72, $6d, $61, $6c, $73, |
$a, 0, $5, 0, $43, $3f, $f2, $f6, $86, $76, |
$cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
$29, 0, $1, 0, $8, 0, 0, 0, $6e, $4e, |
$6f, $72, $6d, $61, $6c, $73, $14, 0, $34, 0, |
$1, 0, $6, 0, 0, 0, $56, $65, $63, $74, |
$6f, $72, $1, 0, $7, 0, 0, 0, $6e, $6f, |
$72, $6d, $61, $6c, $73, $e, 0, $1, 0, $8, |
0, 0, 0, $6e, $4e, $6f, $72, $6d, $61, $6c, |
$73, $f, 0, $14, 0, $29, 0, $1, 0, $c, |
0, 0, 0, $6e, $46, $61, $63, $65, $4e, $6f, |
$72, $6d, $61, $6c, $73, $14, 0, $34, 0, $1, |
0, $8, 0, 0, 0, $4d, $65, $73, $68, $46, |
$61, $63, $65, $1, 0, $b, 0, 0, 0, $66, |
$61, $63, $65, $4e, $6f, $72, $6d, $61, $6c, $73, |
$e, 0, $1, 0, $c, 0, 0, 0, $6e, $46, |
$61, $63, $65, $4e, $6f, $72, $6d, $61, $6c, $73, |
$f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, |
$10, 0, 0, 0, $4d, $65, $73, $68, $56, $65, |
$72, $74, $65, $78, $43, $6f, $6c, $6f, $72, $73, |
$a, 0, $5, 0, $21, $b8, $30, $16, $42, $78, |
$cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
$29, 0, $1, 0, $d, 0, 0, 0, $6e, $56, |
$65, $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, |
$73, $14, 0, $34, 0, $1, 0, $c, 0, 0, |
0, $49, $6e, $64, $65, $78, $65, $64, $43, $6f, |
$6c, $6f, $72, $1, 0, $c, 0, 0, 0, $76, |
$65, $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, |
$73, $e, 0, $1, 0, $d, 0, 0, 0, $6e, |
$56, $65, $72, $74, $65, $78, $43, $6f, $6c, $6f, |
$72, $73, $f, 0, $14, 0, $b, 0, $1f, 0, |
$1, 0, $4, 0, 0, 0, $4d, $65, $73, $68, |
$a, 0, $5, 0, $44, $ab, $82, $3d, $da, $62, |
$cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, |
$29, 0, $1, 0, $9, 0, 0, 0, $6e, $56, |
$65, $72, $74, $69, $63, $65, $73, $14, 0, $34, |
0, $1, 0, $6, 0, 0, 0, $56, $65, $63, |
$74, $6f, $72, $1, 0, $8, 0, 0, 0, $76, |
$65, $72, $74, $69, $63, $65, $73, $e, 0, $1, |
0, $9, 0, 0, 0, $6e, $56, $65, $72, $74, |
$69, $63, $65, $73, $f, 0, $14, 0, $29, 0, |
$1, 0, $6, 0, 0, 0, $6e, $46, $61, $63, |
$65, $73, $14, 0, $34, 0, $1, 0, $8, 0, |
0, 0, $4d, $65, $73, $68, $46, $61, $63, $65, |
$1, 0, $5, 0, 0, 0, $66, $61, $63, $65, |
$73, $e, 0, $1, 0, $6, 0, 0, 0, $6e, |
$46, $61, $63, $65, $73, $f, 0, $14, 0, $e, |
0, $12, 0, $12, 0, $12, 0, $f, 0, $b, |
0, $1f, 0, $1, 0, $14, 0, 0, 0, $46, |
$72, $61, $6d, $65, $54, $72, $61, $6e, $73, $66, |
$6f, $72, $6d, $4d, $61, $74, $72, $69, $78, $a, |
0, $5, 0, $41, $3f, $f2, $f6, $86, $76, $cf, |
$11, $8f, $52, 0, $40, $33, $35, $94, $a3, $1, |
0, $9, 0, 0, 0, $4d, $61, $74, $72, $69, |
$78, $34, $78, $34, $1, 0, $b, 0, 0, 0, |
$66, $72, $61, $6d, $65, $4d, $61, $74, $72, $69, |
$78, $14, 0, $b, 0, $1f, 0, $1, 0, $5, |
0, 0, 0, $46, $72, $61, $6d, $65, $a, 0, |
$5, 0, $46, $ab, $82, $3d, $da, $62, $cf, $11, |
$ab, $39, 0, $20, $af, $71, $e4, $33, $e, 0, |
$12, 0, $12, 0, $12, 0, $f, 0, $b, 0, |
$1f, 0, $1, 0, $9, 0, 0, 0, $46, $6c, |
$6f, $61, $74, $4b, $65, $79, $73, $a, 0, $5, |
0, $a9, $46, $dd, $10, $5b, $77, $cf, $11, $8f, |
$52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, |
0, $7, 0, 0, 0, $6e, $56, $61, $6c, $75, |
$65, $73, $14, 0, $34, 0, $2a, 0, $1, 0, |
$6, 0, 0, 0, $76, $61, $6c, $75, $65, $73, |
$e, 0, $1, 0, $7, 0, 0, 0, $6e, $56, |
$61, $6c, $75, $65, $73, $f, 0, $14, 0, $b, |
0, $1f, 0, $1, 0, $e, 0, 0, 0, $54, |
$69, $6d, $65, $64, $46, $6c, $6f, $61, $74, $4b, |
$65, $79, $73, $a, 0, $5, 0, $80, $b1, $6, |
$f4, $3b, $7b, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $29, 0, $1, 0, $4, 0, 0, |
0, $74, $69, $6d, $65, $14, 0, $1, 0, $9, |
0, 0, 0, $46, $6c, $6f, $61, $74, $4b, $65, |
$79, $73, $1, 0, $6, 0, 0, 0, $74, $66, |
$6b, $65, $79, $73, $14, 0, $b, 0, $1f, 0, |
$1, 0, $c, 0, 0, 0, $41, $6e, $69, $6d, |
$61, $74, $69, $6f, $6e, $4b, $65, $79, $a, 0, |
$5, 0, $a8, $46, $dd, $10, $5b, $77, $cf, $11, |
$8f, $52, 0, $40, $33, $35, $94, $a3, $29, 0, |
$1, 0, $7, 0, 0, 0, $6b, $65, $79, $54, |
$79, $70, $65, $14, 0, $29, 0, $1, 0, $5, |
0, 0, 0, $6e, $4b, $65, $79, $73, $14, 0, |
$34, 0, $1, 0, $e, 0, 0, 0, $54, $69, |
$6d, $65, $64, $46, $6c, $6f, $61, $74, $4b, $65, |
$79, $73, $1, 0, $4, 0, 0, 0, $6b, $65, |
$79, $73, $e, 0, $1, 0, $5, 0, 0, 0, |
$6e, $4b, $65, $79, $73, $f, 0, $14, 0, $b, |
0, $1f, 0, $1, 0, $10, 0, 0, 0, $41, |
$6e, $69, $6d, $61, $74, $69, $6f, $6e, $4f, $70, |
$74, $69, $6f, $6e, $73, $a, 0, $5, 0, $c0, |
$56, $bf, $e2, $f, $84, $cf, $11, $8f, $52, 0, |
$40, $33, $35, $94, $a3, $29, 0, $1, 0, $a, |
0, 0, 0, $6f, $70, $65, $6e, $63, $6c, $6f, |
$73, $65, $64, $14, 0, $29, 0, $1, 0, $f, |
0, 0, 0, $70, $6f, $73, $69, $74, $69, $6f, |
$6e, $71, $75, $61, $6c, $69, $74, $79, $14, 0, |
$b, 0, $1f, 0, $1, 0, $9, 0, 0, 0, |
$41, $6e, $69, $6d, $61, $74, $69, $6f, $6e, $a, |
0, $5, 0, $4f, $ab, $82, $3d, $da, $62, $cf, |
$11, $ab, $39, 0, $20, $af, $71, $e4, $33, $e, |
0, $12, 0, $12, 0, $12, 0, $f, 0, $b, |
0, $1f, 0, $1, 0, $c, 0, 0, 0, $41, |
$6e, $69, $6d, $61, $74, $69, $6f, $6e, $53, $65, |
$74, $a, 0, $5, 0, $50, $ab, $82, $3d, $da, |
$62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, |
$33, $e, 0, $1, 0, $9, 0, 0, 0, $41, |
$6e, $69, $6d, $61, $74, $69, $6f, $6e, $f, 0, |
$b, 0, $1f, 0, $1, 0, $a, 0, 0, 0, |
$49, $6e, $6c, $69, $6e, $65, $44, $61, $74, $61, |
$a, 0, $5, 0, $a0, $ee, $23, $3a, $b1, $94, |
$d0, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, |
$e, 0, $1, 0, $6, 0, 0, 0, $42, $49, |
$4e, $41, $52, $59, $f, 0, $b, 0, $1f, 0, |
$1, 0, $3, 0, 0, 0, $55, $72, $6c, $a, |
0, $5, 0, $a1, $ee, $23, $3a, $b1, $94, $d0, |
$11, $ab, $39, 0, $20, $af, $71, $e4, $33, $29, |
0, $1, 0, $5, 0, 0, 0, $6e, $55, $72, |
$6c, $73, $14, 0, $34, 0, $31, 0, $1, 0, |
$4, 0, 0, 0, $75, $72, $6c, $73, $e, 0, |
$1, 0, $5, 0, 0, 0, $6e, $55, $72, $6c, |
$73, $f, 0, $14, 0, $b, 0, $1f, 0, $1, |
0, $f, 0, 0, 0, $50, $72, $6f, $67, $72, |
$65, $73, $73, $69, $76, $65, $4d, $65, $73, $68, |
$a, 0, $5, 0, $60, $c3, $63, $8a, $7d, $99, |
$d0, $11, $94, $1c, 0, $80, $c8, $c, $fa, $7b, |
$e, 0, $1, 0, $3, 0, 0, 0, $55, $72, |
$6c, $13, 0, $1, 0, $a, 0, 0, 0, $49, |
$6e, $6c, $69, $6e, $65, $44, $61, $74, $61, $f, |
0, $b, 0, $1f, 0, $1, 0, $4, 0, 0, |
0, $47, $75, $69, $64, $a, 0, $5, 0, $e0, |
$90, $27, $a4, $10, $78, $cf, $11, $8f, $52, 0, |
$40, $33, $35, $94, $a3, $29, 0, $1, 0, $5, |
0, 0, 0, $64, $61, $74, $61, $31, $14, 0, |
$28, 0, $1, 0, $5, 0, 0, 0, $64, $61, |
$74, $61, $32, $14, 0, $28, 0, $1, 0, $5, |
0, 0, 0, $64, $61, $74, $61, $33, $14, 0, |
$34, 0, $2d, 0, $1, 0, $5, 0, 0, 0, |
$64, $61, $74, $61, $34, $e, 0, $3, 0, $8, |
0, 0, 0, $f, 0, $14, 0, $b, 0, $1f, |
0, $1, 0, $e, 0, 0, 0, $53, $74, $72, |
$69, $6e, $67, $50, $72, $6f, $70, $65, $72, $74, |
$79, $a, 0, $5, 0, $e0, $21, $f, $7f, $e1, |
$bf, $d1, $11, $82, $c0, 0, $a0, $c9, $69, $72, |
$71, $31, 0, $1, 0, $3, 0, 0, 0, $6b, |
$65, $79, $14, 0, $31, 0, $1, 0, $5, 0, |
0, 0, $76, $61, $6c, $75, $65, $14, 0, $b, |
0, $1f, 0, $1, 0, $b, 0, 0, 0, $50, |
$72, $6f, $70, $65, $72, $74, $79, $42, $61, $67, |
$a, 0, $5, 0, $e1, $21, $f, $7f, $e1, $bf, |
$d1, $11, $82, $c0, 0, $a0, $c9, $69, $72, $71, |
$e, 0, $1, 0, $e, 0, 0, 0, $53, $74, |
$72, $69, $6e, $67, $50, $72, $6f, $70, $65, $72, |
$74, $79, $f, 0, $b, 0, $1f, 0, $1, 0, |
$e, 0, 0, 0, $45, $78, $74, $65, $72, $6e, |
$61, $6c, $56, $69, $73, $75, $61, $6c, $a, 0, |
$5, 0, $a0, $6a, $11, $98, $ba, $bd, $d1, $11, |
$82, $c0, 0, $a0, $c9, $69, $72, $71, $1, 0, |
$4, 0, 0, 0, $47, $75, $69, $64, $1, 0, |
$12, 0, 0, 0, $67, $75, $69, $64, $45, $78, |
$74, $65, $72, $6e, $61, $6c, $56, $69, $73, $75, |
$61, $6c, $14, 0, $e, 0, $12, 0, $12, 0, |
$12, 0, $f, 0, $b, 0); |
D3DRM_XTEMPLATE_BYTES_2 = 3278; |
D3DRM_XTEMPLATE_BYTES = 3278; |
D3DRM_XTEMPLATES_2: array [0..D3DRM_XTEMPLATE_BYTES_2-1] of byte = ( |
$78, $6f, $66, $20, $30, $33, $30, $32, $62, $69, $6e, $20, $30, $30, $36, $34, $1f, 0, $1, |
0, $6, 0, 0, 0, $48, $65, $61, $64, $65, $72, $a, 0, $5, 0, $43, $ab, $82, $3d, $da, |
$62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $28, 0, $1, 0, $5, 0, 0, 0, $6d, |
$61, $6a, $6f, $72, $14, 0, $28, 0, $1, 0, $5, 0, 0, 0, $6d, $69, $6e, $6f, $72, $14, |
0, $29, 0, $1, 0, $5, 0, 0, 0, $66, $6c, $61, $67, $73, $14, 0, $b, 0, $1f, 0, |
$1, 0, $6, 0, 0, 0, $56, $65, $63, $74, $6f, $72, $a, 0, $5, 0, $5e, $ab, $82, $3d, |
$da, $62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $2a, 0, $1, 0, $1, 0, 0, 0, |
$78, $14, 0, $2a, 0, $1, 0, $1, 0, 0, 0, $79, $14, 0, $2a, 0, $1, 0, $1, 0, |
0, 0, $7a, $14, 0, $b, 0, $1f, 0, $1, 0, $8, 0, 0, 0, $43, $6f, $6f, $72, $64, |
$73, $32, $64, $a, 0, $5, 0, $44, $3f, $f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $2a, 0, $1, 0, $1, 0, 0, 0, $75, $14, 0, $2a, 0, $1, 0, $1, 0, |
0, 0, $76, $14, 0, $b, 0, $1f, 0, $1, 0, $9, 0, 0, 0, $4d, $61, $74, $72, $69, |
$78, $34, $78, $34, $a, 0, $5, 0, $45, $3f, $f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, |
$33, $35, $94, $a3, $34, 0, $2a, 0, $1, 0, $6, 0, 0, 0, $6d, $61, $74, $72, $69, $78, |
$e, 0, $3, 0, $10, 0, 0, 0, $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, $9, 0, |
0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, $41, $a, 0, $5, 0, $e0, $44, $ff, $35, $7c, |
$6c, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $2a, 0, $1, 0, $3, 0, 0, 0, $72, |
$65, $64, $14, 0, $2a, 0, $1, 0, $5, 0, 0, 0, $67, $72, $65, $65, $6e, $14, 0, $2a, |
0, $1, 0, $4, 0, 0, 0, $62, $6c, $75, $65, $14, 0, $2a, 0, $1, 0, $5, 0, 0, |
0, $61, $6c, $70, $68, $61, $14, 0, $b, 0, $1f, 0, $1, 0, $8, 0, 0, 0, $43, $6f, |
$6c, $6f, $72, $52, $47, $42, $a, 0, $5, 0, $81, $6e, $e1, $d3, $35, $78, $cf, $11, $8f, $52, |
0, $40, $33, $35, $94, $a3, $2a, 0, $1, 0, $3, 0, 0, 0, $72, $65, $64, $14, 0, $2a, |
0, $1, 0, $5, 0, 0, 0, $67, $72, $65, $65, $6e, $14, 0, $2a, 0, $1, 0, $4, 0, |
0, 0, $62, $6c, $75, $65, $14, 0, $b, 0, $1f, 0, $1, 0, $c, 0, 0, 0, $49, $6e, |
$64, $65, $78, $65, $64, $43, $6f, $6c, $6f, $72, $a, 0, $5, 0, $20, $b8, $30, $16, $42, $78, |
$cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, 0, $5, 0, 0, 0, $69, $6e, |
$64, $65, $78, $14, 0, $1, 0, $9, 0, 0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, $41, |
$1, 0, $a, 0, 0, 0, $69, $6e, $64, $65, $78, $43, $6f, $6c, $6f, $72, $14, 0, $b, 0, |
$1f, 0, $1, 0, $7, 0, 0, 0, $42, $6f, $6f, $6c, $65, $61, $6e, $a, 0, $5, 0, $a0, |
$a6, $7d, $53, $37, $ca, $d0, $11, $94, $1c, 0, $80, $c8, $c, $fa, $7b, $29, 0, $1, 0, $9, |
0, 0, 0, $74, $72, $75, $65, $66, $61, $6c, $73, $65, $14, 0, $b, 0, $1f, 0, $1, 0, |
$9, 0, 0, 0, $42, $6f, $6f, $6c, $65, $61, $6e, $32, $64, $a, 0, $5, 0, $63, $ae, $85, |
$48, $e8, $78, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $1, 0, $7, 0, 0, 0, $42, |
$6f, $6f, $6c, $65, $61, $6e, $1, 0, $1, 0, 0, 0, $75, $14, 0, $1, 0, $7, 0, 0, |
0, $42, $6f, $6f, $6c, $65, $61, $6e, $1, 0, $1, 0, 0, 0, $76, $14, 0, $b, 0, $1f, |
0, $1, 0, $c, 0, 0, 0, $4d, $61, $74, $65, $72, $69, $61, $6c, $57, $72, $61, $70, $a, |
0, $5, 0, $60, $ae, $85, $48, $e8, $78, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $1, |
0, $7, 0, 0, 0, $42, $6f, $6f, $6c, $65, $61, $6e, $1, 0, $1, 0, 0, 0, $75, $14, |
0, $1, 0, $7, 0, 0, 0, $42, $6f, $6f, $6c, $65, $61, $6e, $1, 0, $1, 0, 0, 0, |
$76, $14, 0, $b, 0, $1f, 0, $1, 0, $f, 0, 0, 0, $54, $65, $78, $74, $75, $72, $65, |
$46, $69, $6c, $65, $6e, $61, $6d, $65, $a, 0, $5, 0, $e1, $90, $27, $a4, $10, $78, $cf, $11, |
$8f, $52, 0, $40, $33, $35, $94, $a3, $31, 0, $1, 0, $8, 0, 0, 0, $66, $69, $6c, $65, |
$6e, $61, $6d, $65, $14, 0, $b, 0, $1f, 0, $1, 0, $8, 0, 0, 0, $4d, $61, $74, $65, |
$72, $69, $61, $6c, $a, 0, $5, 0, $4d, $ab, $82, $3d, $da, $62, $cf, $11, $ab, $39, 0, $20, |
$af, $71, $e4, $33, $1, 0, $9, 0, 0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, $41, $1, |
0, $9, 0, 0, 0, $66, $61, $63, $65, $43, $6f, $6c, $6f, $72, $14, 0, $2a, 0, $1, 0, |
$5, 0, 0, 0, $70, $6f, $77, $65, $72, $14, 0, $1, 0, $8, 0, 0, 0, $43, $6f, $6c, |
$6f, $72, $52, $47, $42, $1, 0, $d, 0, 0, 0, $73, $70, $65, $63, $75, $6c, $61, $72, $43, |
$6f, $6c, $6f, $72, $14, 0, $1, 0, $8, 0, 0, 0, $43, $6f, $6c, $6f, $72, $52, $47, $42, |
$1, 0, $d, 0, 0, 0, $65, $6d, $69, $73, $73, $69, $76, $65, $43, $6f, $6c, $6f, $72, $14, |
0, $e, 0, $12, 0, $12, 0, $12, 0, $f, 0, $b, 0, $1f, 0, $1, 0, $8, 0, 0, |
0, $4d, $65, $73, $68, $46, $61, $63, $65, $a, 0, $5, 0, $5f, $ab, $82, $3d, $da, $62, $cf, |
$11, $ab, $39, 0, $20, $af, $71, $e4, $33, $29, 0, $1, 0, $12, 0, 0, 0, $6e, $46, $61, |
$63, $65, $56, $65, $72, $74, $65, $78, $49, $6e, $64, $69, $63, $65, $73, $14, 0, $34, 0, $29, |
0, $1, 0, $11, 0, 0, 0, $66, $61, $63, $65, $56, $65, $72, $74, $65, $78, $49, $6e, $64, |
$69, $63, $65, $73, $e, 0, $1, 0, $12, 0, 0, 0, $6e, $46, $61, $63, $65, $56, $65, $72, |
$74, $65, $78, $49, $6e, $64, $69, $63, $65, $73, $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, |
$d, 0, 0, 0, $4d, $65, $73, $68, $46, $61, $63, $65, $57, $72, $61, $70, $73, $a, 0, $5, |
0, $c0, $c5, $1e, $ed, $a8, $c0, $d0, $11, $94, $1c, 0, $80, $c8, $c, $fa, $7b, $29, 0, $1, |
0, $f, 0, 0, 0, $6e, $46, $61, $63, $65, $57, $72, $61, $70, $56, $61, $6c, $75, $65, $73, |
$14, 0, $34, 0, $1, 0, $9, 0, 0, 0, $42, $6f, $6f, $6c, $65, $61, $6e, $32, $64, $1, |
0, $e, 0, 0, 0, $66, $61, $63, $65, $57, $72, $61, $70, $56, $61, $6c, $75, $65, $73, $e, |
0, $1, 0, $f, 0, 0, 0, $6e, $46, $61, $63, $65, $57, $72, $61, $70, $56, $61, $6c, $75, |
$65, $73, $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, $11, 0, 0, 0, $4d, $65, $73, $68, |
$54, $65, $78, $74, $75, $72, $65, $43, $6f, $6f, $72, $64, $73, $a, 0, $5, 0, $40, $3f, $f2, |
$f6, $86, $76, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, 0, $e, 0, 0, |
0, $6e, $54, $65, $78, $74, $75, $72, $65, $43, $6f, $6f, $72, $64, $73, $14, 0, $34, 0, $1, |
0, $8, 0, 0, 0, $43, $6f, $6f, $72, $64, $73, $32, $64, $1, 0, $d, 0, 0, 0, $74, |
$65, $78, $74, $75, $72, $65, $43, $6f, $6f, $72, $64, $73, $e, 0, $1, 0, $e, 0, 0, 0, |
$6e, $54, $65, $78, $74, $75, $72, $65, $43, $6f, $6f, $72, $64, $73, $f, 0, $14, 0, $b, 0, |
$1f, 0, $1, 0, $10, 0, 0, 0, $4d, $65, $73, $68, $4d, $61, $74, $65, $72, $69, $61, $6c, |
$4c, $69, $73, $74, $a, 0, $5, 0, $42, $3f, $f2, $f6, $86, $76, $cf, $11, $8f, $52, 0, $40, |
$33, $35, $94, $a3, $29, 0, $1, 0, $a, 0, 0, 0, $6e, $4d, $61, $74, $65, $72, $69, $61, |
$6c, $73, $14, 0, $29, 0, $1, 0, $c, 0, 0, 0, $6e, $46, $61, $63, $65, $49, $6e, $64, |
$65, $78, $65, $73, $14, 0, $34, 0, $29, 0, $1, 0, $b, 0, 0, 0, $66, $61, $63, $65, |
$49, $6e, $64, $65, $78, $65, $73, $e, 0, $1, 0, $c, 0, 0, 0, $6e, $46, $61, $63, $65, |
$49, $6e, $64, $65, $78, $65, $73, $f, 0, $14, 0, $e, 0, $1, 0, $8, 0, 0, 0, $4d, |
$61, $74, $65, $72, $69, $61, $6c, $f, 0, $b, 0, $1f, 0, $1, 0, $b, 0, 0, 0, $4d, |
$65, $73, $68, $4e, $6f, $72, $6d, $61, $6c, $73, $a, 0, $5, 0, $43, $3f, $f2, $f6, $86, $76, |
$cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, 0, $8, 0, 0, 0, $6e, $4e, |
$6f, $72, $6d, $61, $6c, $73, $14, 0, $34, 0, $1, 0, $6, 0, 0, 0, $56, $65, $63, $74, |
$6f, $72, $1, 0, $7, 0, 0, 0, $6e, $6f, $72, $6d, $61, $6c, $73, $e, 0, $1, 0, $8, |
0, 0, 0, $6e, $4e, $6f, $72, $6d, $61, $6c, $73, $f, 0, $14, 0, $29, 0, $1, 0, $c, |
0, 0, 0, $6e, $46, $61, $63, $65, $4e, $6f, $72, $6d, $61, $6c, $73, $14, 0, $34, 0, $1, |
0, $8, 0, 0, 0, $4d, $65, $73, $68, $46, $61, $63, $65, $1, 0, $b, 0, 0, 0, $66, |
$61, $63, $65, $4e, $6f, $72, $6d, $61, $6c, $73, $e, 0, $1, 0, $c, 0, 0, 0, $6e, $46, |
$61, $63, $65, $4e, $6f, $72, $6d, $61, $6c, $73, $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, |
$10, 0, 0, 0, $4d, $65, $73, $68, $56, $65, $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, $73, |
$a, 0, $5, 0, $21, $b8, $30, $16, $42, $78, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, |
$29, 0, $1, 0, $d, 0, 0, 0, $6e, $56, $65, $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, |
$73, $14, 0, $34, 0, $1, 0, $c, 0, 0, 0, $49, $6e, $64, $65, $78, $65, $64, $43, $6f, |
$6c, $6f, $72, $1, 0, $c, 0, 0, 0, $76, $65, $72, $74, $65, $78, $43, $6f, $6c, $6f, $72, |
$73, $e, 0, $1, 0, $d, 0, 0, 0, $6e, $56, $65, $72, $74, $65, $78, $43, $6f, $6c, $6f, |
$72, $73, $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, $4, 0, 0, 0, $4d, $65, $73, $68, |
$a, 0, $5, 0, $44, $ab, $82, $3d, $da, $62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, |
$29, 0, $1, 0, $9, 0, 0, 0, $6e, $56, $65, $72, $74, $69, $63, $65, $73, $14, 0, $34, |
0, $1, 0, $6, 0, 0, 0, $56, $65, $63, $74, $6f, $72, $1, 0, $8, 0, 0, 0, $76, |
$65, $72, $74, $69, $63, $65, $73, $e, 0, $1, 0, $9, 0, 0, 0, $6e, $56, $65, $72, $74, |
$69, $63, $65, $73, $f, 0, $14, 0, $29, 0, $1, 0, $6, 0, 0, 0, $6e, $46, $61, $63, |
$65, $73, $14, 0, $34, 0, $1, 0, $8, 0, 0, 0, $4d, $65, $73, $68, $46, $61, $63, $65, |
$1, 0, $5, 0, 0, 0, $66, $61, $63, $65, $73, $e, 0, $1, 0, $6, 0, 0, 0, $6e, |
$46, $61, $63, $65, $73, $f, 0, $14, 0, $e, 0, $12, 0, $12, 0, $12, 0, $f, 0, $b, |
0, $1f, 0, $1, 0, $14, 0, 0, 0, $46, $72, $61, $6d, $65, $54, $72, $61, $6e, $73, $66, |
$6f, $72, $6d, $4d, $61, $74, $72, $69, $78, $a, 0, $5, 0, $41, $3f, $f2, $f6, $86, $76, $cf, |
$11, $8f, $52, 0, $40, $33, $35, $94, $a3, $1, 0, $9, 0, 0, 0, $4d, $61, $74, $72, $69, |
$78, $34, $78, $34, $1, 0, $b, 0, 0, 0, $66, $72, $61, $6d, $65, $4d, $61, $74, $72, $69, |
$78, $14, 0, $b, 0, $1f, 0, $1, 0, $5, 0, 0, 0, $46, $72, $61, $6d, $65, $a, 0, |
$5, 0, $46, $ab, $82, $3d, $da, $62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $e, 0, |
$12, 0, $12, 0, $12, 0, $f, 0, $b, 0, $1f, 0, $1, 0, $9, 0, 0, 0, $46, $6c, |
$6f, $61, $74, $4b, $65, $79, $73, $a, 0, $5, 0, $a9, $46, $dd, $10, $5b, $77, $cf, $11, $8f, |
$52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, 0, $7, 0, 0, 0, $6e, $56, $61, $6c, $75, |
$65, $73, $14, 0, $34, 0, $2a, 0, $1, 0, $6, 0, 0, 0, $76, $61, $6c, $75, $65, $73, |
$e, 0, $1, 0, $7, 0, 0, 0, $6e, $56, $61, $6c, $75, $65, $73, $f, 0, $14, 0, $b, |
0, $1f, 0, $1, 0, $e, 0, 0, 0, $54, $69, $6d, $65, $64, $46, $6c, $6f, $61, $74, $4b, |
$65, $79, $73, $a, 0, $5, 0, $80, $b1, $6, $f4, $3b, $7b, $cf, $11, $8f, $52, 0, $40, $33, |
$35, $94, $a3, $29, 0, $1, 0, $4, 0, 0, 0, $74, $69, $6d, $65, $14, 0, $1, 0, $9, |
0, 0, 0, $46, $6c, $6f, $61, $74, $4b, $65, $79, $73, $1, 0, $6, 0, 0, 0, $74, $66, |
$6b, $65, $79, $73, $14, 0, $b, 0, $1f, 0, $1, 0, $c, 0, 0, 0, $41, $6e, $69, $6d, |
$61, $74, $69, $6f, $6e, $4b, $65, $79, $a, 0, $5, 0, $a8, $46, $dd, $10, $5b, $77, $cf, $11, |
$8f, $52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, 0, $7, 0, 0, 0, $6b, $65, $79, $54, |
$79, $70, $65, $14, 0, $29, 0, $1, 0, $5, 0, 0, 0, $6e, $4b, $65, $79, $73, $14, 0, |
$34, 0, $1, 0, $e, 0, 0, 0, $54, $69, $6d, $65, $64, $46, $6c, $6f, $61, $74, $4b, $65, |
$79, $73, $1, 0, $4, 0, 0, 0, $6b, $65, $79, $73, $e, 0, $1, 0, $5, 0, 0, 0, |
$6e, $4b, $65, $79, $73, $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, $10, 0, 0, 0, $41, |
$6e, $69, $6d, $61, $74, $69, $6f, $6e, $4f, $70, $74, $69, $6f, $6e, $73, $a, 0, $5, 0, $c0, |
$56, $bf, $e2, $f, $84, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, 0, $a, |
0, 0, 0, $6f, $70, $65, $6e, $63, $6c, $6f, $73, $65, $64, $14, 0, $29, 0, $1, 0, $f, |
0, 0, 0, $70, $6f, $73, $69, $74, $69, $6f, $6e, $71, $75, $61, $6c, $69, $74, $79, $14, 0, |
$b, 0, $1f, 0, $1, 0, $9, 0, 0, 0, $41, $6e, $69, $6d, $61, $74, $69, $6f, $6e, $a, |
0, $5, 0, $4f, $ab, $82, $3d, $da, $62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $e, |
0, $12, 0, $12, 0, $12, 0, $f, 0, $b, 0, $1f, 0, $1, 0, $c, 0, 0, 0, $41, |
$6e, $69, $6d, $61, $74, $69, $6f, $6e, $53, $65, $74, $a, 0, $5, 0, $50, $ab, $82, $3d, $da, |
$62, $cf, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $e, 0, $1, 0, $9, 0, 0, 0, $41, |
$6e, $69, $6d, $61, $74, $69, $6f, $6e, $f, 0, $b, 0, $1f, 0, $1, 0, $a, 0, 0, 0, |
$49, $6e, $6c, $69, $6e, $65, $44, $61, $74, $61, $a, 0, $5, 0, $a0, $ee, $23, $3a, $b1, $94, |
$d0, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $e, 0, $1, 0, $6, 0, 0, 0, $42, $49, |
$4e, $41, $52, $59, $f, 0, $b, 0, $1f, 0, $1, 0, $3, 0, 0, 0, $55, $72, $6c, $a, |
0, $5, 0, $a1, $ee, $23, $3a, $b1, $94, $d0, $11, $ab, $39, 0, $20, $af, $71, $e4, $33, $29, |
0, $1, 0, $5, 0, 0, 0, $6e, $55, $72, $6c, $73, $14, 0, $34, 0, $31, 0, $1, 0, |
$4, 0, 0, 0, $75, $72, $6c, $73, $e, 0, $1, 0, $5, 0, 0, 0, $6e, $55, $72, $6c, |
$73, $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, $f, 0, 0, 0, $50, $72, $6f, $67, $72, |
$65, $73, $73, $69, $76, $65, $4d, $65, $73, $68, $a, 0, $5, 0, $60, $c3, $63, $8a, $7d, $99, |
$d0, $11, $94, $1c, 0, $80, $c8, $c, $fa, $7b, $e, 0, $1, 0, $3, 0, 0, 0, $55, $72, |
$6c, $13, 0, $1, 0, $a, 0, 0, 0, $49, $6e, $6c, $69, $6e, $65, $44, $61, $74, $61, $f, |
0, $b, 0, $1f, 0, $1, 0, $4, 0, 0, 0, $47, $75, $69, $64, $a, 0, $5, 0, $e0, |
$90, $27, $a4, $10, $78, $cf, $11, $8f, $52, 0, $40, $33, $35, $94, $a3, $29, 0, $1, 0, $5, |
0, 0, 0, $64, $61, $74, $61, $31, $14, 0, $28, 0, $1, 0, $5, 0, 0, 0, $64, $61, |
$74, $61, $32, $14, 0, $28, 0, $1, 0, $5, 0, 0, 0, $64, $61, $74, $61, $33, $14, 0, |
$34, 0, $2d, 0, $1, 0, $5, 0, 0, 0, $64, $61, $74, $61, $34, $e, 0, $3, 0, $8, |
0, 0, 0, $f, 0, $14, 0, $b, 0, $1f, 0, $1, 0, $e, 0, 0, 0, $53, $74, $72, |
$69, $6e, $67, $50, $72, $6f, $70, $65, $72, $74, $79, $a, 0, $5, 0, $e0, $21, $f, $7f, $e1, |
$bf, $d1, $11, $82, $c0, 0, $a0, $c9, $69, $72, $71, $31, 0, $1, 0, $3, 0, 0, 0, $6b, |
$65, $79, $14, 0, $31, 0, $1, 0, $5, 0, 0, 0, $76, $61, $6c, $75, $65, $14, 0, $b, |
0, $1f, 0, $1, 0, $b, 0, 0, 0, $50, $72, $6f, $70, $65, $72, $74, $79, $42, $61, $67, |
$a, 0, $5, 0, $e1, $21, $f, $7f, $e1, $bf, $d1, $11, $82, $c0, 0, $a0, $c9, $69, $72, $71, |
$e, 0, $1, 0, $e, 0, 0, 0, $53, $74, $72, $69, $6e, $67, $50, $72, $6f, $70, $65, $72, |
$74, $79, $f, 0, $b, 0, $1f, 0, $1, 0, $e, 0, 0, 0, $45, $78, $74, $65, $72, $6e, |
$61, $6c, $56, $69, $73, $75, $61, $6c, $a, 0, $5, 0, $a0, $6a, $11, $98, $ba, $bd, $d1, $11, |
$82, $c0, 0, $a0, $c9, $69, $72, $71, $1, 0, $4, 0, 0, 0, $47, $75, $69, $64, $1, 0, |
$12, 0, 0, 0, $67, $75, $69, $64, $45, $78, $74, $65, $72, $6e, $61, $6c, $56, $69, $73, $75, |
$61, $6c, $14, 0, $e, 0, $12, 0, $12, 0, $12, 0, $f, 0, $b, 0, $1f, 0, $1, 0, |
$b, 0, 0, 0, $52, $69, $67, $68, $74, $48, $61, $6e, $64, $65, $64, $a, 0, $5, 0, $a0, |
$5e, $5d, $7f, $3a, $d5, $d1, $11, $82, $c0, 0, $a0, $c9, $69, $72, $71, $29, 0, $1, 0, $c, |
0, 0, 0, $62, $52, $69, $67, $68, $74, $48, $61, $6e, $64, $65, $64, $14, 0, $b, 0); |
//--------------- |
{$ENDIF} |
//DirectInput file |
(*==========================================================================; |
* |
* Copyright (C) 1996-1997 Microsoft Corporation. All Rights Reserved. |
* Copyright (C) 1996-1999 Microsoft Corporation. All Rights Reserved. |
* |
* File: dinput.h |
* Content: DirectInput include file |
* |
****************************************************************************) |
* DirectX 7.0 Delphi adaptation by Erik Unger, input format |
* variable structure & other fixups by Arne Schäpers (as) |
* |
* Modified: 10-Sep-2000 |
* |
* Download: http://www.delphi-jedi.org/DelphiGraphics/ |
* E-Mail: DelphiDirectX@next-reality.com |
* a.schaepers@digitalpublishing.de |
* |
***************************************************************************) |
const |
{$IFDEF DirectX3} |
DIRECTINPUT_VERSION = $0300; |
{$ENDIF}{$IFDEF DirectX5} |
DIRECTINPUT_VERSION = $0500; |
{$ENDIF}{$IFDEF DirectX6} |
DIRECTINPUT_VERSION = $0500; |
{$ENDIF}{$IFDEF DirectX7} |
DIRECTINPUT_VERSION = $0700; |
{ Some notes from as: |
1. DirectInput Enum callback functions which are documented with result |
type BOOL in the SDK had to be changed to result type integer because the debug |
version of DINPUT.DLL (which is the same for SDK versions 5.0, 5.2, 6.0, and 6.1) |
explicitely checks for two possible return values: |
0 - FALSE in C and in Delphi |
1 - TRUE in C, defined as DIENUM_CONTINUE |
In Delphi, TRUE means $FFFFFFFF (= -1) for the LongBool (= BOOL) data |
type, and AL = 1 (upper three bytes undefined) for the Boolean data type. |
The debug version of DINPUT.DLL will throw an external exception |
("invalid return value for callback") when fed with either value. |
This change affects the following methods: |
EnumDevices, EnumObjects, EnumEffects, EnumCreatedEffectObjects |
2. Windows 98 and DX6 debug versions DInput and DSound |
Under Windows 98, the "debug" setup of the DirectX SDK 6.x skips DInput.DLL |
and DSound.DLL, i.e. makes you end up with the retail version of these two |
files without any notice. |
The debug versions of DInput.DLL and DSound.DLL can be found in the |
\extras\Win98\Win98Dbg folder of the SDK CD; they need to be installed |
"manually". |
This problem has been fixed with DX7 where the SDK installs the debug versions |
of DInput and DSound without any "manual" help. |
} |
var |
DInputDLL : HMODULE; |
{$IFDEF DIRECTX3} |
const DIRECTINPUT_VERSION = $0300; |
{$ELSE} |
const DIRECTINPUT_VERSION = $0700; |
{$ENDIF} |
{ Class IDs } |
function DIErrorString(Value: HResult) : string; |
//type |
// TRefGUID = packed record |
// case integer of |
// 1: (guid : PGUID); |
// 2: (dwFlags : DWORD); |
// end; |
(**************************************************************************** |
* |
* Class IDs |
* |
****************************************************************************) |
const |
CLSID_DirectInput: TGUID = '{25E609E0-B259-11CF-BFC7-444553540000}'; |
CLSID_DirectInputDevice: TGUID = '{25E609E1-B259-11CF-BFC7-444553540000}'; |
CLSID_DirectInput: TGUID = |
(D1:$25E609E0;D2:$B259;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
CLSID_DirectInputDevice: TGUID = |
(D1:$25E609E1;D2:$B259;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
{ Interfaces } |
(**************************************************************************** |
* |
* Predefined object types |
* |
****************************************************************************) |
const |
IID_IDirectInputA: TGUID = '{89521360-AA8A-11CF-BFC7-444553540000}'; |
IID_IDirectInputW: TGUID = '{89521361-AA8A-11CF-BFC7-444553540000}'; |
IID_IDirectInput2A: TGUID = '{5944E662-AA8A-11CF-BFC7-444553540000}'; |
IID_IDirectInput2W: TGUID = '{5944E663-AA8A-11CF-BFC7-444553540000}'; |
IID_IDirectInput7A: TGUID = '{9A4CB684-236D-11D3-8E9D-00C04F6844AE}'; |
IID_IDirectInput7W: TGUID = '{9A4CB685-236D-11D3-8E9D-00C04F6844AE}'; |
IID_IDirectInputDeviceA: TGUID = '{5944E680-C92E-11CF-BFC7-444553540000}'; |
IID_IDirectInputDeviceW: TGUID = '{5944E681-C92E-11CF-BFC7-444553540000}'; |
IID_IDirectInputDevice2A: TGUID = '{5944E682-C92E-11CF-BFC7-444553540000}'; |
IID_IDirectInputDevice2W: TGUID = '{5944E683-C92E-11CF-BFC7-444553540000}'; |
IID_IDirectInputDevice7A: TGUID = '{57D7C6BC-2356-11D3-8E9D-00C04F6844AE}'; |
IID_IDirectInputDevice7W: TGUID = '{57D7C6BD-2356-11D3-8E9D-00C04F6844AE}'; |
IID_IDirectInputEffect: TGUID = '{E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35}'; |
GUID_XAxis: TGUID = |
(D1:$A36D02E0;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_YAxis: TGUID = |
(D1:$A36D02E1;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_ZAxis: TGUID = |
(D1:$A36D02E2;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_RxAxis: TGUID = |
(D1:$A36D02F4;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_RyAxis: TGUID = |
(D1:$A36D02F5;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_RzAxis: TGUID = |
(D1:$A36D02E3;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_Slider: TGUID = |
(D1:$A36D02E4;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
{ Predefined object types } |
GUID_Button: TGUID = |
(D1:$A36D02F0;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_Key: TGUID = |
(D1:$55728220;D2:$D33C;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_XAxis: TGUID = '{A36D02E0-C9F3-11CF-BFC7-444553540000}'; |
GUID_YAxis: TGUID = '{A36D02E1-C9F3-11CF-BFC7-444553540000}'; |
GUID_ZAxis: TGUID = '{A36D02E2-C9F3-11CF-BFC7-444553540000}'; |
GUID_RxAxis: TGUID = '{A36D02F4-C9F3-11CF-BFC7-444553540000}'; |
GUID_RyAxis: TGUID = '{A36D02F5-C9F3-11CF-BFC7-444553540000}'; |
GUID_RzAxis: TGUID = '{A36D02E3-C9F3-11CF-BFC7-444553540000}'; |
GUID_Slider: TGUID = '{A36D02E4-C9F3-11CF-BFC7-444553540000}'; |
GUID_Button: TGUID = '{A36D02F0-C9F3-11CF-BFC7-444553540000}'; |
GUID_Key: TGUID = '{55728220-D33C-11CF-BFC7-444553540000}'; |
GUID_POV: TGUID = '{A36D02F2-C9F3-11CF-BFC7-444553540000}'; |
GUID_Unknown: TGUID = '{A36D02F3-C9F3-11CF-BFC7-444553540000}'; |
GUID_POV: TGUID = |
(D1:$A36D02F2;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
{ Predefined product GUIDs } |
GUID_Unknown: TGUID = |
(D1:$A36D02F3;D2:$C9F3;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_SysMouse: TGUID = '{6F1D2B60-D5A0-11CF-BFC7-444553540000}'; |
GUID_SysKeyboard: TGUID = '{6F1D2B61-D5A0-11CF-BFC7-444553540000}'; |
GUID_Joystick: TGUID = '{6F1D2B70-D5A0-11CF-BFC7-444553540000}'; |
(**************************************************************************** |
* |
* Predefined product GUIDs |
* |
****************************************************************************) |
GUID_SysMouse: TGUID = |
(D1:$6F1D2B60;D2:$D5A0;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_SysKeyboard: TGUID = |
(D1:$6F1D2B61;D2:$D5A0;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_Joystick: TGUID = |
(D1:$6F1D2B70;D2:$D5A0;D3:$11CF;D4:($BF,$C7,$44,$45,$53,$54,$00,$00)); |
GUID_SysMouseEm: TGUID = '{6F1D2B80-D5A0-11CF-BFC7-444553540000}'; |
GUID_SysMouseEm2: TGUID = '{6F1D2B81-D5A0-11CF-BFC7-444553540000}'; |
GUID_SysKeyboardEm: TGUID = '{6F1D2B82-D5A0-11CF-BFC7-444553540000}'; |
GUID_SysKeyboardEm2: TGUID = '{6F1D2B83-D5A0-11CF-BFC7-444553540000}'; |
{ Predefined force feedback effects } |
(**************************************************************************** |
* |
* Predefined force feedback effects |
* |
****************************************************************************) |
GUID_ConstantForce: TGUID = '{13541C20-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_RampForce: TGUID = '{13541C21-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_Square: TGUID = '{13541C22-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_Sine: TGUID = '{13541C23-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_Triangle: TGUID = '{13541C24-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_SawtoothUp: TGUID = '{13541C25-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_SawtoothDown: TGUID = '{13541C26-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_Spring: TGUID = '{13541C27-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_Damper: TGUID = '{13541C28-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_Inertia: TGUID = '{13541C29-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_Friction: TGUID = '{13541C2A-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_CustomForce: TGUID = '{13541C2B-8E33-11D0-9AD0-00A0C9A06E35}'; |
GUID_ConstantForce: TGUID = |
(D1:$13541C20;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_RampForce: TGUID = |
(D1:$13541C21;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_Square: TGUID = |
(D1:$13541C22;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_Sine: TGUID = |
(D1:$13541C23;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_Triangle: TGUID = |
(D1:$13541C24;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_SawtoothUp: TGUID = |
(D1:$13541C25;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_SawtoothDown: TGUID = |
(D1:$13541C26;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_Spring: TGUID = |
(D1:$13541C27;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_Damper: TGUID = |
(D1:$13541C28;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_Inertia: TGUID = |
(D1:$13541C29;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_Friction: TGUID = |
(D1:$13541C2A;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
GUID_CustomForce: TGUID = |
(D1:$13541C2B;D2:$8E33;D3:$11D0;D4:($9A,$D0,$00,$A0,$C9,$A0,$6E,$35)); |
{ IDirectInputEffect } |
(**************************************************************************** |
* |
* Interfaces and Structures... |
* |
****************************************************************************) |
(**************************************************************************** |
* |
* IDirectInputEffect |
* |
****************************************************************************) |
const |
DIEFT_ALL = $00000000; |
8422,7 → 12106,7 |
DIEFT_DEADBAND = $00004000; |
DIEFT_STARTDELAY = $00008000; |
function DIEFT_GETTYPE(n: DWORD): DWORD; |
function DIEFT_GETTYPE(n: variant) : byte; |
const |
DI_DEGREES = 100; |
8431,129 → 12115,101 |
type |
PDIConstantForce = ^TDIConstantForce; |
TDIConstantForce = record |
lMagnitude: Longint; |
TDIConstantForce = packed record |
lMagnitude : LongInt; |
end; |
DICONSTANTFORCE = TDIConstantForce; |
LPDICONSTANTFORCE = PDIConstantForce; |
PDIRampForce = ^TDIRampForce; |
TDIRampForce = record |
lStart: Longint; |
lEnd: Longint; |
TDIRampForce = packed record |
lStart : LongInt; |
lEnd : LongInt; |
end; |
DIRAMPFORCE = TDIRampForce; |
LPDIRAMPFORCE = PDIRampForce; |
PDIPeriodic = ^TDIPeriodic; |
TDIPeriodic = record |
TDIPeriodic = packed record |
dwMagnitude: DWORD; |
lOffset: Longint; |
lOffset : LongInt; |
dwPhase: DWORD; |
dwPeriod: DWORD; |
end; |
DIPERIODIC = TDIPeriodic; |
LPDIPERIODIC = PDIPeriodic; |
PDICondition = ^TDICondition; |
TDICondition = record |
lOffset: Longint; |
lPositiveCoefficient: Longint; |
lNegativeCoefficient: Longint; |
TDICondition = packed record |
lOffset : LongInt; |
lPositiveCoefficient : LongInt; |
lNegativeCoefficient : LongInt; |
dwPositiveSaturation: DWORD; |
dwNegativeSaturation: DWORD; |
lDeadBand: Longint; |
lDeadBand : LongInt; |
end; |
DICONDITION = TDICondition; |
LPDICONDITION = PDICondition; |
PDICustomForce = ^TDICustomForce; |
TDICustomForce = record |
TDICustomForce = packed record |
cChannels: DWORD; |
dwSamplePeriod: DWORD; |
cSamples: DWORD; |
rglForceData: PLongint; |
rglForceData : PLongInt; |
end; |
DICUSTOMFORCE = TDICustomForce; |
LPDICUSTOMFORCE = PDICustomForce; |
PDIEnvelope = ^TDIEnvelope; |
TDIEnvelope = record |
dwSize: DWORD; // sizeof(DIENVELOPE) |
TDIEnvelope = packed record |
dwSize : DWORD; (* sizeof(DIENVELOPE) *) |
dwAttackLevel: DWORD; |
dwAttackTime: DWORD; // Microseconds |
dwAttackTime : DWORD; (* Microseconds *) |
dwFadeLevel: DWORD; |
dwFadeTime: DWORD; // Microseconds |
dwFadeTime : DWORD; (* Microseconds *) |
end; |
DIENVELOPE = TDIEnvelope; |
LPDIENVELOPE = PDIEnvelope; |
PDIEffect_DX5 = ^TDIEffect_DX5; |
TDIEffect_DX5 = record |
dwSize: DWORD; // sizeof(DIEFFECT) |
dwFlags: DWORD; // DIEFF_* |
dwDuration: DWORD; // Microseconds |
dwSamplePeriod: DWORD; // Microseconds |
TDIEffect_DX5 = packed record |
dwSize : DWORD; (* sizeof(DIEFFECT) *) |
dwFlags : DWORD; (* DIEFF_* *) |
dwDuration : DWORD; (* Microseconds *) |
dwSamplePeriod : DWORD; (* Microseconds *) |
dwGain: DWORD; |
dwTriggerButton: DWORD; // or DIEB_NOTRIGGER |
dwTriggerRepeatInterval: DWORD; // Microseconds |
cAxes: DWORD; // Number of axes |
rgdwAxes: PDWORD; // arrayof axes |
rglDirection: PLongint; // arrayof directions |
lpEnvelope: PDIEnvelope; // Optional |
cbTypeSpecificParams: DWORD; // Size of params |
lpvTypeSpecificParams: Pointer; // Pointer to params |
dwTriggerButton : DWORD; (* or DIEB_NOTRIGGER *) |
dwTriggerRepeatInterval : DWORD; (* Microseconds *) |
cAxes : DWORD; (* Number of axes *) |
rgdwAxes : PDWORD; (* Array of axes *) |
rglDirection : PLongInt; (* Array of directions *) |
lpEnvelope : PDIEnvelope; (* Optional *) |
cbTypeSpecificParams : DWORD; (* Size of params *) |
lpvTypeSpecificParams : pointer; (* Pointer to params *) |
end; |
PDIEffect_DX6 = ^TDIEffect_DX6; |
TDIEffect_DX6 = record |
dwSize: DWORD; // sizeof(DIEFFECT) |
dwFlags: DWORD; // DIEFF_* |
dwDuration: DWORD; // Microseconds |
dwSamplePeriod: DWORD; // Microseconds |
TDIEffect_DX6 = packed record |
dwSize : DWORD; (* sizeof(DIEFFECT) *) |
dwFlags : DWORD; (* DIEFF_* *) |
dwDuration : DWORD; (* Microseconds *) |
dwSamplePeriod : DWORD; (* Microseconds *) |
dwGain: DWORD; |
dwTriggerButton: DWORD; // or DIEB_NOTRIGGER |
dwTriggerRepeatInterval: DWORD; // Microseconds |
cAxes: DWORD; // Number of axes |
rgdwAxes: PDWORD; // arrayof axes |
rglDirection: PLongint; // arrayof directions |
lpEnvelope: PDIEnvelope; // Optional |
cbTypeSpecificParams: DWORD; // Size of params |
lpvTypeSpecificParams: Pointer; // Pointer to params |
dwStartDelay: DWORD; // Microseconds |
dwTriggerButton : DWORD; (* or DIEB_NOTRIGGER *) |
dwTriggerRepeatInterval : DWORD; (* Microseconds *) |
cAxes : DWORD; (* Number of axes *) |
rgdwAxes : PDWORD; (* Array of axes *) |
rglDirection : PLongInt; (* Array of directions *) |
lpEnvelope : PDIEnvelope; (* Optional *) |
cbTypeSpecificParams : DWORD; (* Size of params *) |
lpvTypeSpecificParams : pointer; (* Pointer to params *) |
dwStartDelay: DWORD; (* Microseconds *) |
end; |
{$IFDEF SupportDirectX6} |
PDIEffect = PDIEffect_DX6; |
PDIEffect = ^TDIEffect; |
{$IFDEF DIRECTX5} |
TDIEffect = TDIEffect_DX5; |
{$ELSE} |
TDIEffect = TDIEffect_DX6; |
{$ELSE} |
PDIEffect = PDIEffect_DX5; |
TDIEffect = TDIEffect_DX5; |
{$ENDIF} |
DIEFFECT = TDIEFFECT; |
LPDIEFFECT = PDIEFFECT; |
PDIFileEffect = ^TDIFileEffect; |
TDIFileEffect = record |
TDIFileEffect = packed record |
dwSize: DWORD; |
GuidEffect: TGUID; |
lpDiEffect: PDIEffect; |
szFriendlyName: array[0..MAX_PATH-1] of Char; |
szFriendlyName : array [0..MAX_PATH-1] of AnsiChar; |
end; |
DIFILEEFFECT = TDIFileEffect; |
LPDIFILEEFFECT = PDIFileEffect; |
TDIEnumEffectsInFileCallback = function(const lpDiFileEf: TDIFileEffect; pvRef: Pointer): BOOL; far pascal; |
LPDIENUMEFFECTSINFILECALLBACK = TDIEnumEffectsInFileCallback; |
const |
DIEFF_OBJECTIDS = $00000001; |
DIEFF_OBJECTOFFSETS = $00000002; |
8570,12 → 12226,12 |
DIEP_DIRECTION = $00000040; |
DIEP_ENVELOPE = $00000080; |
DIEP_TYPESPECIFICPARAMS = $00000100; |
{$IFDEF DIRECTX5} |
DIEP_ALLPARAMS = $000001FF; |
{$ELSE} |
DIEP_STARTDELAY = $00000200; |
DIEP_ALLPARAMS_DX5 = $000001FF; |
{$IFDEF SupportDirectX6} |
DIEP_ALLPARAMS = $000003FF; |
{$ELSE} |
DIEP_ALLPARAMS = $000001FF; |
{$ENDIF} |
DIEP_START = $20000000; |
DIEP_NORESTART = $40000000; |
8588,36 → 12244,43 |
DIEGES_PLAYING = $00000001; |
DIEGES_EMULATED = $00000002; |
type |
PDIEffEscape = ^TDIEffEscape; |
TDIEffEscape = record |
TDIEffEscape = packed record |
dwSize: DWORD; |
dwCommand: DWORD; |
lpvInBuffer: Pointer; |
lpvInBuffer : pointer; |
cbInBuffer: DWORD; |
lpvOutBuffer: Pointer; |
lpvOutBuffer : pointer; |
cbOutBuffer: DWORD; |
end; |
DIEFFESCAPE = TDIEffEscape; |
LPDIEFFESCAPE = PDIEffEscape; |
// |
// IDirectSoundCapture // as: ??? |
// |
IDirectInputEffect = interface(IUnknown) |
['{E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35}'] |
// IDirectInputEffect methods |
function Initialize(hinst: THandle; dwVersion: DWORD; const rguid: TGUID): HResult; stdcall; |
(** IDirectInputEffect methods ***) |
function Initialize(hinst: THandle; dwVersion: DWORD; |
const rguid: TGUID) : HResult; stdcall; |
function GetEffectGuid(var pguid: TGUID): HResult; stdcall; |
function GetParameters(var peff: TDIEffect; dwFlags: DWORD): HResult; stdcall; |
function SetParameters(const peff: TDIEffect; dwFlags: DWORD): HResult; stdcall; |
function SetParameters(var peff: TDIEffect; dwFlags: DWORD) : HResult; stdcall; |
function Start(dwIterations: DWORD; dwFlags: DWORD): HResult; stdcall; |
function Stop: HResult; stdcall; |
function GetEffectStatus(var pdwFlags: DWORD): HResult; stdcall; |
function DownLoad: HResult; stdcall; |
function Download : HResult; stdcall; |
function Unload: HResult; stdcall; |
function Escape(const pesc: TDIEffEscape): HResult; stdcall; |
function Escape(var pesc: TDIEffEscape) : HResult; stdcall; |
end; |
{ IDirectInputDevice } |
(**************************************************************************** |
* |
* IDirectInputDevice |
* |
****************************************************************************) |
const |
DIDEVTYPE_DEVICE = 1; |
8654,12 → 12317,12 |
DIDEVTYPEJOYSTICK_WHEEL = 6; |
DIDEVTYPEJOYSTICK_HEADTRACKER = 7; |
function GET_DIDEVICE_TYPE(dwDevType: DWORD): DWORD; |
function GET_DIDEVICE_SUBTYPE(dwDevType: DWORD): DWORD; |
function GET_DIDEVICE_TYPE(dwDevType: variant) : byte; |
function GET_DIDEVICE_SUBTYPE(dwDevType: variant) : byte; |
type |
PDIDevCaps_DX3 = ^TDIDevCaps_DX3; |
TDIDevCaps_DX3 = record |
TDIDevCaps_DX3 = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
dwDevType: DWORD; |
8669,7 → 12332,7 |
end; |
PDIDevCaps_DX5 = ^TDIDevCaps_DX5; |
TDIDevCaps_DX5 = record |
TDIDevCaps_DX5 = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
dwDevType: DWORD; |
8683,29 → 12346,18 |
dwFFDriverVersion: DWORD; |
end; |
{$IFDEF DirectX3} |
PDIDevCaps = ^TDIDevCaps; |
{$IFDEF DIRECTX3} |
TDIDevCaps = TDIDevCaps_DX3; |
PDIDevCaps = PDIDevCaps_DX3; |
{$ENDIF}{$IFDEF DirectX5} |
{$ELSE} |
TDIDevCaps = TDIDevCaps_DX5; |
PDIDevCaps = PDIDevCaps_DX5; |
{$ENDIF}{$IFDEF DirectX6} |
TDIDevCaps = TDIDevCaps_DX5; |
PDIDevCaps = PDIDevCaps_DX5; |
{$ENDIF}{$IFDEF DirectX7} |
TDIDevCaps = TDIDevCaps_DX5; |
PDIDevCaps = PDIDevCaps_DX5; |
{$ENDIF} |
DIDEVCAPS = TDIDevCaps; |
LPDIDEVCAPS = PDIDevCaps; |
const |
DIDC_ATTACHED = $00000001; |
DIDC_POLLEDDEVICE = $00000002; |
DIDC_EMULATED = $00000004; |
DIDC_POLLEDDATAFORMAT = $00000008; |
DIDC_FORCEFEEDBACK = $00000100; |
DIDC_FFATTACK = $00000200; |
DIDC_FFFADE = $00000400; |
8733,22 → 12385,25 |
DIDFT_ANYINSTANCE = $00FFFF00; |
DIDFT_INSTANCEMASK = DIDFT_ANYINSTANCE; |
function DIDFT_MAKEINSTANCE(n: variant) : DWORD; |
function DIDFT_GETTYPE(n: variant) : byte; |
function DIDFT_GETINSTANCE(n: variant) : DWORD; |
const |
DIDFT_FFACTUATOR = $01000000; |
DIDFT_FFEFFECTTRIGGER = $02000000; |
DIDFT_OUTPUT = $10000000; |
DIDFT_VENDORDEFINED = $04000000; |
DIDFT_ALIAS = $08000000; |
function DIDFT_ENUMCOLLECTION(n: variant) : DWORD; |
const |
DIDFT_NOCOLLECTION = $00FFFF00; |
function DIDFT_MAKEINSTANCE(n: WORD): DWORD; |
function DIDFT_GETTYPE(n: DWORD): DWORD; |
function DIDFT_GETINSTANCE(n: DWORD): WORD; |
function DIDFT_ENUMCOLLECTION(n: WORD): DWORD; |
type |
PDIObjectDataFormat = ^TDIObjectDataFormat; |
TDIObjectDataFormat = record |
TDIObjectDataFormat = packed record |
pguid: PGUID; |
dwOfs: DWORD; |
dwType: DWORD; |
8755,11 → 12410,8 |
dwFlags: DWORD; |
end; |
DIOBJECTDATAFORMAT = TDIObjectDataFormat; |
LPDIOBJECTDATAFORMAT = PDIObjectDataFormat; |
PDIDataFormat = ^TDIDataFormat; |
TDIDataFormat = record |
TDIDataFormat = packed record |
dwSize: DWORD; |
dwObjSize: DWORD; |
dwFlags: DWORD; |
8768,32 → 12420,46 |
rgodf: PDIObjectDataFormat; |
end; |
DIDATAFORMAT = TDIDataFormat; |
LPDIDATAFORMAT = PDIDataFormat; |
const |
DIDF_ABSAXIS = $00000001; |
DIDF_RELAXIS = $00000002; |
type |
PDIDeviceObjectInstanceA_DX3 = ^TDIDeviceObjectInstanceA_DX3; |
TDIDeviceObjectInstanceA_DX3 = record |
PDIDeviceObjectInstance_DX3A = ^TDIDeviceObjectInstance_DX3A; |
TDIDeviceObjectInstance_DX3A = packed record |
dwSize: DWORD; |
guidType: TGUID; |
dwOfs: DWORD; |
dwType: DWORD; |
dwFlags: DWORD; |
tszName: array[0..MAX_PATH-1] of CHAR; |
tszName: Array [0..MAX_PATH-1] of CHAR; |
end; |
PDIDeviceObjectInstanceA_DX5 = ^TDIDeviceObjectInstanceA_DX5; |
TDIDeviceObjectInstanceA_DX5 = record |
PDIDeviceObjectInstance_DX3W = ^TDIDeviceObjectInstance_DX3W; |
TDIDeviceObjectInstance_DX3W = packed record |
dwSize: DWORD; |
guidType: TGUID; |
dwOfs: DWORD; |
dwType: DWORD; |
dwFlags: DWORD; |
tszName: array[0..MAX_PATH-1] of CHAR; |
tszName: Array [0..MAX_PATH-1] of WCHAR; |
end; |
PDIDeviceObjectInstance_DX3 = ^TDIDeviceObjectInstance_DX3; |
{$IFDEF UNICODE} |
TDIDeviceObjectInstance_DX3 = TDIDeviceObjectInstance_DX3W; |
{$ELSE} |
TDIDeviceObjectInstance_DX3 = TDIDeviceObjectInstance_DX3A; |
{$ENDIF} |
PDIDeviceObjectInstance_DX5A = ^TDIDeviceObjectInstance_DX5A; |
TDIDeviceObjectInstance_DX5A = packed record |
dwSize: DWORD; |
guidType: TGUID; |
dwOfs: DWORD; |
dwType: DWORD; |
dwFlags: DWORD; |
tszName: Array [0..MAX_PATH-1] of CHAR; |
dwFFMaxForce: DWORD; |
dwFFForceResolution: DWORD; |
wCollectionNumber: WORD; |
8805,41 → 12471,14 |
wReserved: WORD; |
end; |
{$IFDEF DirectX3} |
TDIDeviceObjectInstanceA = TDIDeviceObjectInstanceA_DX3; |
PDIDeviceObjectInstanceA = PDIDeviceObjectInstanceA_DX3; |
{$ENDIF}{$IFDEF DirectX5} |
TDIDeviceObjectInstanceA = TDIDeviceObjectInstanceA_DX5; |
PDIDeviceObjectInstanceA = PDIDeviceObjectInstanceA_DX5; |
{$ENDIF}{$IFDEF DirectX6} |
TDIDeviceObjectInstanceA = TDIDeviceObjectInstanceA_DX5; |
PDIDeviceObjectInstanceA = PDIDeviceObjectInstanceA_DX5; |
{$ENDIF}{$IFDEF DirectX7} |
TDIDeviceObjectInstanceA = TDIDeviceObjectInstanceA_DX5; |
PDIDeviceObjectInstanceA = PDIDeviceObjectInstanceA_DX5; |
{$ENDIF} |
DIDEVICEOBJECTINSTANCEA = TDIDeviceObjectInstanceA; |
LPDIDEVICEOBJECTINSTANCEA = PDIDeviceObjectInstanceA; |
PDIDeviceObjectInstanceW_DX3 = ^TDIDeviceObjectInstanceW_DX3; |
TDIDeviceObjectInstanceW_DX3 = record |
PDIDeviceObjectInstance_DX5W = ^TDIDeviceObjectInstance_DX5W; |
TDIDeviceObjectInstance_DX5W = packed record |
dwSize: DWORD; |
guidType: TGUID; |
dwOfs: DWORD; |
dwType: DWORD; |
dwFlags: DWORD; |
tszName: array[0..MAX_PATH-1] of WCHAR; |
end; |
PDIDeviceObjectInstanceW_DX5 = ^TDIDeviceObjectInstanceW_DX5; |
TDIDeviceObjectInstanceW_DX5 = record |
dwSize: DWORD; |
guidType: TGUID; |
dwOfs: DWORD; |
dwType: DWORD; |
dwFlags: DWORD; |
tszName: array[0..MAX_PATH-1] of WCHAR; |
tszName: Array [0..MAX_PATH-1] of WCHAR; |
dwFFMaxForce: DWORD; |
dwFFForceResolution: DWORD; |
wCollectionNumber: WORD; |
8851,40 → 12490,39 |
wReserved: WORD; |
end; |
{$IFDEF DirectX3} |
TDIDeviceObjectInstanceW = TDIDeviceObjectInstanceW_DX3; |
PDIDeviceObjectInstanceW = PDIDeviceObjectInstanceW_DX3; |
{$ENDIF}{$IFDEF DirectX5} |
TDIDeviceObjectInstanceW = TDIDeviceObjectInstanceW_DX5; |
PDIDeviceObjectInstanceW = PDIDeviceObjectInstanceW_DX5; |
{$ENDIF}{$IFDEF DirectX6} |
TDIDeviceObjectInstanceW = TDIDeviceObjectInstanceW_DX5; |
PDIDeviceObjectInstanceW = PDIDeviceObjectInstanceW_DX5; |
{$ENDIF}{$IFDEF DirectX7} |
TDIDeviceObjectInstanceW = TDIDeviceObjectInstanceW_DX5; |
PDIDeviceObjectInstanceW = PDIDeviceObjectInstanceW_DX5; |
PDIDeviceObjectInstance_DX5 = ^TDIDeviceObjectInstance_DX5; |
{$IFDEF UNICODE} |
TDIDeviceObjectInstance_DX5 = TDIDeviceObjectInstance_DX5W; |
{$ELSE} |
TDIDeviceObjectInstance_DX5 = TDIDeviceObjectInstance_DX5A; |
{$ENDIF} |
DIDEVICEOBJECTINSTANCEW = TDIDeviceObjectInstanceW; |
LPDIDEVICEOBJECTINSTANCEW = PDIDeviceObjectInstanceW; |
PDIDeviceObjectInstanceA = ^TDIDeviceObjectInstanceA; |
PDIDeviceObjectInstanceW = ^TDIDeviceObjectInstanceA; |
PDIDeviceObjectInstance = ^TDIDeviceObjectInstance; |
{$IFDEF DIRECTX3} |
TDIDeviceObjectInstanceA = TDIDeviceObjectInstance_DX3A; |
TDIDeviceObjectInstanceW = TDIDeviceObjectInstance_DX3W; |
TDIDeviceObjectInstance = TDIDeviceObjectInstance_DX3; |
{$ELSE} |
TDIDeviceObjectInstanceA = TDIDeviceObjectInstance_DX5A; |
TDIDeviceObjectInstanceW = TDIDeviceObjectInstance_DX5W; |
TDIDeviceObjectInstance = TDIDeviceObjectInstance_DX5; |
{$ENDIF} |
TDIDeviceObjectInstance = TDIDeviceObjectInstanceA; |
PDIDeviceObjectInstance = PDIDeviceObjectInstanceA; |
// Bug fix (and deviation from the SDK). Callback *must* return |
// DIENUM_STOP (= 0) or DIENUM_CONTINUE (=1) in order to work |
// with the debug version of DINPUT.DLL |
TDIEnumDeviceObjectsCallbackA = function ( |
var lpddoi: TDIDeviceObjectInstanceA; pvRef: Pointer): Integer; stdcall; // BOOL; stdcall; |
TDIEnumDeviceObjectsCallbackW = function ( |
var lpddoi: TDIDeviceObjectInstanceW; pvRef: Pointer): Integer; stdcall; // BOOL; stdcall; |
TDIEnumDeviceObjectsCallback = function ( |
var lpddoi: TDIDeviceObjectInstance; pvRef: Pointer): Integer; stdcall; // BOOL; stdcall; |
DIDEVICEOBJECTINSTANCE = TDIDeviceObjectInstance; |
LPDIDEVICEOBJECTINSTANCE = PDIDeviceObjectInstance; |
TDIEnumDeviceObjectsProc = function ( |
var lpddoi: TDIDeviceObjectInstance; pvRef: Pointer): Integer; stdcall; // BOOL; stdcall; |
TDIEnumDeviceObjectsCallbackA = function(const peff: TDIDeviceObjectInstanceA; |
pvRef: Pointer): HResult; stdcall; |
LPDIENUMDEVICEOBJECTSCALLBACKA = TDIEnumDeviceObjectsCallbackA; |
TDIEnumDeviceObjectsCallbackW = function(const peff: TDIDeviceObjectInstanceW; |
pvRef: Pointer): HResult; stdcall; |
LPDIENUMDEVICEOBJECTSCALLBACKW = TDIEnumDeviceObjectsCallbackW; |
TDIEnumDeviceObjectsCallback = TDIEnumDeviceObjectsCallbackA; |
LPDIENUMDEVICEOBJECTSCALLBACK = TDIEnumDeviceObjectsCallback; |
const |
DIDOI_FFACTUATOR = $00000001; |
DIDOI_FFEFFECTTRIGGER = $00000002; |
8898,7 → 12536,7 |
type |
PDIPropHeader = ^TDIPropHeader; |
TDIPropHeader = record |
TDIPropHeader = packed record |
dwSize: DWORD; |
dwHeaderSize: DWORD; |
dwObj: DWORD; |
8905,9 → 12543,6 |
dwHow: DWORD; |
end; |
DIPROPHEADER = TDIPropHeader; |
LPDIPROPHEADER = PDIPropHeader; |
const |
DIPH_DEVICE = 0; |
DIPH_BYOFFSET = 1; |
8914,97 → 12549,105 |
DIPH_BYID = 2; |
DIPH_BYUSAGE = 3; |
function DIMAKEUSAGEDWORD(UsagePage, Usage: Word): DWORD; |
function DIMAKEUSAGEDWORD(UsagePage, Usage: WORD) : DWORD; |
type |
PDIPropDWORD = ^TDIPropDWORD; |
TDIPropDWORD = record |
PDIPropDWord = ^TDIPropDWord; |
TDIPropDWord = packed record |
diph: TDIPropHeader; |
dwData: DWORD; |
end; |
DIPROPDWORD = TDIPropDWORD; |
LPDIPROPDWORD = PDIPropDWORD; |
PDIPropRange = ^TDIPropRange; |
TDIPropRange = record |
TDIPropRange = packed record |
diph: TDIPropHeader; |
lMin: Longint; |
lMax: Longint; |
end; |
DIPROPRANGE = TDIPropRange; |
LPDIPROPRANGE = PDIPropRange; |
const |
DIPROPRANGE_NOMIN = $80000000; |
DIPROPRANGE_NOMAX = $7FFFFFFF; |
type |
PDIPropCal = ^TDIPropCal; |
TDIPropCal = record |
TDIPropCal = packed record |
diph: TDIPropHeader; |
lMin: Longint; |
lCenter: Longint; |
lMax: Longint; |
lMin: LongInt; |
lCenter: LongInt; |
lMax: LongInt; |
end; |
DIPROPCAL = TDIPropCal; |
LPDIPROPCAL = PDIPropCal; |
PDIPropGUIDAndPath = ^TDIPropGUIDAndPath; |
TDIPropGUIDAndPath = record |
TDIPropGUIDAndPath = packed record |
diph: TDIPropHeader; |
guidClass: TGUID; |
wszPath: array[0..MAX_PATH-1] of WCHAR; |
wszPath: array [0..MAX_PATH-1] of WideChar; |
end; |
DIPROPGUIDANDPATH = TDIPropGUIDAndPath; |
LPDIPROPGUIDANDPATH = PDIPropGUIDAndPath; |
PDIPropString = ^TDIPropString; |
TDIPropString = record |
TDIPropString = packed record |
diph: TDIPropHeader; |
wsz: array[0..MAX_PATH-1] of WCHAR; |
wsz: array [0..MAX_PATH-1] of WideChar; |
end; |
DIPROPSTRING = TDIPropString; |
LPDIPROPSTRING = PDIPropString; |
type |
MAKEDIPROP = PGUID; |
const |
DIPROPRANGE_NOMIN = $80000000; |
DIPROPRANGE_NOMAX = $7FFFFFFF; |
DIPROP_BUFFERSIZE = MAKEDIPROP(1); |
DIPROP_BUFFERSIZE = PGUID(1); |
DIPROP_AXISMODE = PGUID(2); |
DIPROP_AXISMODE = MAKEDIPROP(2); |
DIPROPAXISMODE_ABS = 0; |
DIPROPAXISMODE_REL = 1; |
DIPROP_GRANULARITY = PGUID(3); |
DIPROP_RANGE = PGUID(4); |
DIPROP_DEADZONE = PGUID(5); |
DIPROP_SATURATION = PGUID(6); |
DIPROP_FFGAIN = PGUID(7); |
DIPROP_FFLOAD = PGUID(8); |
DIPROP_AUTOCENTER = PGUID(9); |
DIPROP_GRANULARITY = MAKEDIPROP(3); |
DIPROP_RANGE = MAKEDIPROP(4); |
DIPROP_DEADZONE = MAKEDIPROP(5); |
DIPROP_SATURATION = MAKEDIPROP(6); |
DIPROP_FFGAIN = MAKEDIPROP(7); |
DIPROP_FFLOAD = MAKEDIPROP(8); |
DIPROP_AUTOCENTER = MAKEDIPROP(9); |
DIPROPAUTOCENTER_OFF = 0; |
DIPROPAUTOCENTER_ON = 1; |
DIPROP_CALIBRATIONMODE = PGUID(10); |
DIPROP_CALIBRATIONMODE = MAKEDIPROP(10); |
DIPROPCALIBRATIONMODE_COOKED = 0; |
DIPROPCALIBRATIONMODE_RAW = 1; |
DIPROP_CALIBRATION = PGUID(11); |
DIPROP_GUIDANDPATH = PGUID(12); |
DIPROP_INSTANCENAME = PGUID(13); |
DIPROP_PRODUCTNAME = PGUID(14); |
DIPROP_JOYSTICKID = PGUID(15); |
DIPROP_GETPORTDISPLAYNAME = PGUID(16); |
DIPROP_ENABLEREPORTID = PGUID(17); |
DIPROP_GETPHYSICALRANGE = PGUID(18); |
DIPROP_GETLOGICALRANGE = PGUID(19); |
DIPROP_CALIBRATION = MAKEDIPROP(11); |
DIPROP_GUIDANDPATH = MAKEDIPROP(12); |
DIPROP_INSTANCENAME = MAKEDIPROP(13); |
DIPROP_PRODUCTNAME = MAKEDIPROP(14); |
DIPROP_JOYSTICKID = MAKEDIPROP(15); |
DIPROP_GETPORTDISPLAYNAME = MAKEDIPROP(16); |
DIPROP_ENABLEREPORTID = MAKEDIPROP(17); |
DIPROP_GETPHYSICALRANGE = MAKEDIPROP(18); |
DIPROP_GETLOGICALRANGE = MAKEDIPROP(19); |
type |
PDIDeviceObjectData = ^TDIDeviceObjectData; |
TDIDeviceObjectData = record |
TDIDeviceObjectData = packed record |
dwOfs: DWORD; |
dwData: DWORD; |
dwTimeStamp: DWORD; |
9011,11 → 12654,12 |
dwSequence: DWORD; |
end; |
DIDEVICEOBJECTDATA = TDIDeviceObjectData; |
LPDIDEVICEOBJECTDATA = PDIDeviceObjectData; |
const |
DIGDD_PEEK = $00000001; |
{ |
#define DISEQUENCE_COMPARE(dwSequence1, cmp, dwSequence2) \ |
(int) ((dwSequence1) - (dwSequence2)) cmp 0 |
} |
DISCL_EXCLUSIVE = $00000001; |
DISCL_NONEXCLUSIVE = $00000002; |
9023,140 → 12667,137 |
DISCL_BACKGROUND = $00000008; |
DISCL_NOWINKEY = $00000010; |
type |
PDIDeviceInstanceA_DX3 = ^TDIDeviceInstanceA_DX3; |
TDIDeviceInstanceA_DX3 = record |
PDIDeviceInstance_DX3A = ^TDIDeviceInstance_DX3A; |
TDIDeviceInstance_DX3A = packed record |
dwSize: DWORD; |
guidInstance: TGUID; |
guidProduct: TGUID; |
dwDevType: DWORD; |
tszInstanceName: array[0..MAX_PATH-1] of CHAR; |
tszProductName: array[0..MAX_PATH-1] of CHAR; |
tszInstanceName: Array [0..MAX_PATH-1] of AnsiChar; |
tszProductName: Array [0..MAX_PATH-1] of AnsiChar; |
end; |
PDIDeviceInstanceA_DX5 = ^TDIDeviceInstanceA_DX5; |
TDIDeviceInstanceA_DX5 = record |
PDIDeviceInstance_DX3W = ^TDIDeviceInstance_DX3W; |
TDIDeviceInstance_DX3W = packed record |
dwSize: DWORD; |
guidInstance: TGUID; |
guidProduct: TGUID; |
dwDevType: DWORD; |
tszInstanceName: array[0..MAX_PATH-1] of CHAR; |
tszProductName: array[0..MAX_PATH-1] of CHAR; |
guidFFDriver: TGUID; |
wUsagePage: WORD; |
wUsage: WORD; |
tszInstanceName: Array [0..MAX_PATH-1] of WideChar; |
tszProductName: Array [0..MAX_PATH-1] of WideChar; |
end; |
{$IFDEF DirectX3} |
TDIDeviceInstanceA = TDIDeviceInstanceA_DX3; |
PDIDeviceInstanceA = PDIDeviceInstanceA_DX3; |
{$ENDIF}{$IFDEF DirectX5} |
TDIDeviceInstanceA = TDIDeviceInstanceA_DX5; |
PDIDeviceInstanceA = PDIDeviceInstanceA_DX5; |
{$ENDIF}{$IFDEF DirectX6} |
TDIDeviceInstanceA = TDIDeviceInstanceA_DX5; |
PDIDeviceInstanceA = PDIDeviceInstanceA_DX5; |
{$ENDIF}{$IFDEF DirectX7} |
TDIDeviceInstanceA = TDIDeviceInstanceA_DX5; |
PDIDeviceInstanceA = PDIDeviceInstanceA_DX5; |
PDIDeviceInstance_DX3 = ^TDIDeviceInstance_DX3; |
{$IFDEF UNICODE} |
TDIDeviceInstance_DX3 = TDIDeviceInstance_DX3W; |
{$ELSE} |
TDIDeviceInstance_DX3 = TDIDeviceInstance_DX3A; |
{$ENDIF} |
DIDEVICEINSTANCEA = TDIDeviceInstanceA; |
LPDIDEVICEINSTANCEA = PDIDeviceInstanceA; |
PDIDeviceInstanceW_DX3 = ^TDIDeviceInstanceW_DX3; |
TDIDeviceInstanceW_DX3 = record |
PDIDeviceInstance_DX5A = ^TDIDeviceInstance_DX5A; |
TDIDeviceInstance_DX5A = packed record |
dwSize: DWORD; |
guidInstance: TGUID; |
guidProduct: TGUID; |
dwDevType: DWORD; |
tszInstanceName: array[0..MAX_PATH-1] of WCHAR; |
tszProductName: array[0..MAX_PATH-1] of WCHAR; |
tszInstanceName: Array [0..MAX_PATH-1] of AnsiChar; |
tszProductName: Array [0..MAX_PATH-1] of AnsiChar; |
guidFFDriver: TGUID; |
wUsagePage: WORD; |
wUsage: WORD; |
end; |
PDIDeviceInstanceW_DX5 = ^TDIDeviceInstanceW_DX5; |
TDIDeviceInstanceW_DX5 = record |
PDIDeviceInstance_DX5W = ^TDIDeviceInstance_DX5W; |
TDIDeviceInstance_DX5W = packed record |
dwSize: DWORD; |
guidInstance: TGUID; |
guidProduct: TGUID; |
dwDevType: DWORD; |
tszInstanceName: array[0..MAX_PATH-1] of WCHAR; |
tszProductName: array[0..MAX_PATH-1] of WCHAR; |
tszInstanceName: Array [0..MAX_PATH-1] of WideChar; |
tszProductName: Array [0..MAX_PATH-1] of WideChar; |
guidFFDriver: TGUID; |
wUsagePage: WORD; |
wUsage: WORD; |
end; |
{$IFDEF DirectX3} |
TDIDeviceInstanceW = TDIDeviceInstanceW_DX3; |
PDIDeviceInstanceW = PDIDeviceInstanceW_DX3; |
{$ENDIF}{$IFDEF DirectX5} |
TDIDeviceInstanceW = TDIDeviceInstanceW_DX5; |
PDIDeviceInstanceW = PDIDeviceInstanceW_DX5; |
{$ENDIF}{$IFDEF DirectX6} |
TDIDeviceInstanceW = TDIDeviceInstanceW_DX5; |
PDIDeviceInstanceW = PDIDeviceInstanceW_DX5; |
{$ENDIF}{$IFDEF DirectX7} |
TDIDeviceInstanceW = TDIDeviceInstanceW_DX5; |
PDIDeviceInstanceW = PDIDeviceInstanceW_DX5; |
PDIDeviceInstance_DX5 = ^TDIDeviceInstance_DX5; |
{$IFDEF UNICODE} |
TDIDeviceInstance_DX5 = TDIDeviceInstance_DX5W; |
{$ELSE} |
TDIDeviceInstance_DX5 = TDIDeviceInstance_DX5A; |
{$ENDIF} |
DIDEVICEINSTANCEW = TDIDeviceInstanceW; |
LPDIDEVICEINSTANCEW = PDIDeviceInstanceW; |
PDIDeviceInstanceA = ^TDIDeviceInstanceA; |
PDIDeviceInstanceW = ^TDIDeviceInstanceW; |
PDIDeviceInstance = ^TDIDeviceInstance; |
{$IFDEF DIRECTX3} |
TDIDeviceInstanceA = TDIDeviceInstance_DX3A; |
TDIDeviceInstanceW = TDIDeviceInstance_DX3W; |
TDIDeviceInstance = TDIDeviceInstance_DX3; |
{$ELSE} |
TDIDeviceInstanceA = TDIDeviceInstance_DX5A; |
TDIDeviceInstanceW = TDIDeviceInstance_DX5W; |
TDIDeviceInstance = TDIDeviceInstance_DX5; |
{$ENDIF} |
TDIDeviceInstance = TDIDeviceInstanceA; |
PDIDeviceInstance = PDIDeviceInstanceA; |
DIDEVICEINSTANCE = TDIDeviceInstance; |
LPDIDEVICEINSTANCE = PDIDeviceInstance; |
IDirectInputDeviceW = interface(IUnknown) |
['{5944E681-C92E-11CF-BFC7-444553540000}'] |
// IDirectInputDeviceW methods |
IDirectInputDeviceA = interface (IUnknown) |
['{5944E680-C92E-11CF-BFC7-444553540000}'] |
(*** IDirectInputDeviceA methods ***) |
function GetCapabilities(var lpDIDevCaps: TDIDevCaps): HResult; stdcall; |
function EnumObjects(lpCallback: TDIEnumDeviceObjectsCallbackW; |
function EnumObjects(lpCallback: TDIEnumDeviceObjectsCallbackA; |
pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
function GetProperty(rguidProp: PGUID; var pdiph: TDIPropHeader): HResult; stdcall; |
function SetProperty(rguidProp: PGUID; const pdiph: TDIPropHeader): HResult; stdcall; |
function GetProperty(rguidProp: PGUID; var pdiph: TDIPropHeader) : |
HResult; stdcall; |
function SetProperty(rguidProp: PGUID; const pdiph: TDIPropHeader) : |
HResult; stdcall; |
function Acquire: HResult; stdcall; |
function Unacquire: HResult; stdcall; |
function GetDeviceState(cbData: DWORD; var lpvData): HResult; stdcall; |
function GetDeviceData(cbObjectData: DWORD; var rgdod: TDIDeviceObjectData; |
function GetDeviceState(cbData: DWORD; lpvData: Pointer) : HResult; stdcall; |
function GetDeviceData(cbObjectData: DWORD; rgdod: PDIDeviceObjectData; |
var pdwInOut: DWORD; dwFlags: DWORD): HResult; stdcall; |
function SetDataFormat(const lpdf: TDIDataFormat): HResult; stdcall; |
function SetDataFormat(var lpdf: TDIDataFormat) : HResult; stdcall; |
function SetEventNotification(hEvent: THandle): HResult; stdcall; |
function SetCooperativeLevel(hwnd: HWND; dwFlags: DWORD): HResult; stdcall; |
function GetObjectInfo(var pdidoi: TDIDeviceObjectInstanceW; dwObj: DWORD; |
function GetObjectInfo(var pdidoi: TDIDeviceObjectInstanceA; dwObj: DWORD; |
dwHow: DWORD): HResult; stdcall; |
function GetDeviceInfo(var pdidi: TDIDeviceInstanceW): HResult; stdcall; |
function GetDeviceInfo(var pdidi: TDIDeviceInstanceA) : HResult; stdcall; |
function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; |
function Initialize(hinst: THandle; dwVersion: DWORD; const rguid: TGUID): HResult; stdcall; |
end; |
IDirectInputDeviceA = interface(IUnknown) |
['{5944E680-C92E-11CF-BFC7-444553540000}'] |
// IDirectInputDeviceA methods |
IDirectInputDeviceW = interface (IUnknown) |
['{5944E681-C92E-11CF-BFC7-444553540000}'] |
(*** IDirectInputDeviceW methods ***) |
function GetCapabilities(var lpDIDevCaps: TDIDevCaps): HResult; stdcall; |
function EnumObjects(lpCallback: TDIEnumDeviceObjectsCallbackA; |
function EnumObjects(lpCallback: TDIEnumDeviceObjectsCallbackW; |
pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
function GetProperty(rguidProp: PGUID; var pdiph: TDIPropHeader): HResult; stdcall; |
function SetProperty(rguidProp: PGUID; const pdiph: TDIPropHeader): HResult; stdcall; |
function GetProperty(rguidProp: PGUID; var pdiph: TDIPropHeader) : |
HResult; stdcall; |
function SetProperty(rguidProp: PGUID; var pdiph: TDIPropHeader) : |
HResult; stdcall; |
function Acquire: HResult; stdcall; |
function Unacquire: HResult; stdcall; |
function GetDeviceState(cbData: DWORD; var lpvData): HResult; stdcall; |
function GetDeviceData(cbObjectData: DWORD; var rgdod: TDIDeviceObjectData; |
function GetDeviceState(cbData: DWORD; lpvData: Pointer) : HResult; stdcall; |
function GetDeviceData(cbObjectData: DWORD; rgdod: PDIDeviceObjectData; |
var pdwInOut: DWORD; dwFlags: DWORD): HResult; stdcall; |
function SetDataFormat(const lpdf: TDIDataFormat): HResult; stdcall; |
function SetDataFormat(var lpdf: TDIDataFormat) : HResult; stdcall; |
function SetEventNotification(hEvent: THandle): HResult; stdcall; |
function SetCooperativeLevel(hwnd: HWND; dwFlags: DWORD): HResult; stdcall; |
function GetObjectInfo(var pdidoi: TDIDeviceObjectInstanceA; dwObj: DWORD; |
function GetObjectInfo(var pdidoi: TDIDeviceObjectInstanceW; dwObj: DWORD; |
dwHow: DWORD): HResult; stdcall; |
function GetDeviceInfo(var pdidi: TDIDeviceInstanceA): HResult; stdcall; |
function GetDeviceInfo(var pdidi: TDIDeviceInstanceW) : HResult; stdcall; |
function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; |
function Initialize(hinst: THandle; dwVersion: DWORD; const rguid: TGUID): HResult; stdcall; |
end; |
{$IFDEF UNICODE} |
IDirectInputDevice = IDirectInputDeviceW; |
{$ELSE} |
IDirectInputDevice = IDirectInputDeviceA; |
{$ENDIF} |
const |
DISFFC_RESET = $00000001; |
9179,15 → 12820,9 |
DIGFFS_USERFFSWITCHOFF = $00000800; |
DIGFFS_DEVICELOST = $80000000; |
DISDD_CONTINUE = 1; |
DIFEF_DEFAULT = $00000000; |
DIFEF_INCLUDENONSTANDARD = $00000001; |
DIFEF_MODIFYIFNEEDED = $00000010; |
type |
PDIEffectInfoA = ^TDIEffectInfoA; |
TDIEffectInfoA = record |
TDIEffectInfoA = packed record |
dwSize: DWORD; |
guid: TGUID; |
dwEffType: DWORD; |
9196,11 → 12831,8 |
tszName: array[0..MAX_PATH-1] of CHAR; |
end; |
DIEFFECTINFOA = TDIEffectInfoA; |
LPDIEFFECTINFOA = PDIEffectInfoA; |
PDIEffectInfoW = ^TDIEffectInfoW; |
TDIEffectInfoW = record |
TDIEffectInfoW = packed record |
dwSize: DWORD; |
guid: TGUID; |
dwEffType: DWORD; |
9209,142 → 12841,255 |
tszName: array[0..MAX_PATH-1] of WCHAR; |
end; |
DIEFFECTINFOW = TDIEffectInfoW; |
LPDIEFFECTINFOW = PDIEffectInfoW; |
PDIEffectInfo = ^TDIEffectInfo; |
{$IFDEF UNICODE} |
TDIEffectInfo = TDIEffectInfoW; |
{$ELSE} |
TDIEffectInfo = TDIEffectInfoA; |
{$ENDIF} |
DIEFFECTINFO = TDIEffectInfoA; |
LPDIEFFECTINFO = PDIEffectInfoA; |
const |
DISDD_CONTINUE = $00000001; |
TDIEnumEffectsCallbackA = function(const pdei: TDIEffectInfoA; |
pvRef: Pointer): HResult; stdcall; |
LPDIENUMEFFECTSCALLBACKA = TDIEnumEffectsCallbackA; |
// Bug fix & deviation from the SDK: Must return DIENUM_STOP or |
// DIENUM_CONTINUE (=1) in order to work with the debug version of DINPUT.DLL |
type |
TDIEnumEffectsCallbackA = |
function(var pdei: TDIEffectInfoA; pvRef: pointer): Integer; stdcall; // BOOL; stdcall; |
TDIEnumEffectsCallbackW = |
function(var pdei: TDIEffectInfoW; pvRef: pointer): Integer; stdcall; // BOOL; stdcall; |
TDIEnumEffectsCallback = |
function(var pdei: TDIEffectInfo; pvRef: pointer) : Integer; stdcall; // BOOL; stdcall; |
TDIEnumEffectsProc = TDIEnumEffectsCallback; |
TDIEnumEffectsCallbackW = function(const pdei: TDIEffectInfoW; |
pvRef: Pointer): HResult; stdcall; |
LPDIENUMEFFECTSCALLBACKW = TDIEnumEffectsCallbackW; |
TDIEnumCreatedEffectObjectsCallback = |
function(peff: IDirectInputEffect; pvRev: pointer): Integer; stdcall; // BOOL; stdcall; |
TDIEnumCreatedEffectObjectsProc = TDIEnumCreatedEffectObjectsCallback; |
TDIEnumEffectsCallback = TDIEnumEffectsCallbackA; |
LPDIENUMEFFECTSCALLBACK = TDIEnumEffectsCallback; |
LPDIENUMCREATEDEFFECTOBJECTSCALLBACK = function(const peff: |
IDirectInputEffect; pvRef: Pointer): HResult; stdcall; |
IDirectInputDevice2W = interface(IDirectInputDeviceW) |
['{5944E683-C92E-11CF-BFC7-444553540000}'] |
// IDirectInputDevice2W methods |
function CreateEffect(const rguid: TGUID; const lpeff: TDIEffect; |
out ppdeff: IDirectInputEffect; punkOuter: IUnknown): HResult; stdcall; |
function EnumEffects(lpCallback: TDIEnumEffectsCallbackW; pvRef: Pointer; |
dwEffType: DWORD): HResult; stdcall; |
function GetEffectInfo(var pdei: TDIEffectInfoW; const rguid: TGUID): HResult; stdcall; |
IDirectInputDevice2A = interface (IDirectInputDeviceA) |
['{5944E682-C92E-11CF-BFC7-444553540000}'] |
(*** IDirectInputDevice2A methods ***) |
function CreateEffect(const rguid: TGUID; lpeff: PDIEffect; |
var ppdeff: IDirectInputEffect; punkOuter: IUnknown) : HResult; stdcall; |
function EnumEffects(lpCallback: TDIEnumEffectsCallbackA; |
pvRef: pointer; dwEffType: DWORD) : HResult; stdcall; |
function GetEffectInfo(pdei: TDIEffectInfoA; const rguid: TGUID) : HResult; stdcall; |
function GetForceFeedbackState(var pdwOut: DWORD): HResult; stdcall; |
function SendForceFeedbackCommand(dwFlags: DWORD): HResult; stdcall; |
function EnumCreatedEffectObjects(lpCallback: |
LPDIENUMCREATEDEFFECTOBJECTSCALLBACK; pvRef: Pointer; fl: DWORD): HResult; stdcall; |
function Escape(const pesc: TDIEffEscape): HResult; stdcall; |
TDIEnumCreatedEffectObjectsCallback; |
pvRef: pointer; fl: DWORD) : HResult; stdcall; |
function Escape(var pesc: TDIEffEscape) : HResult; stdcall; |
function Poll: HResult; stdcall; |
function SendDeviceData(cbObjectData: DWORD; const rgdod: TDIDeviceObjectData; |
function SendDeviceData |
(cbObjectData: DWORD; var rgdod: TDIDeviceObjectData; |
var pdwInOut: DWORD; fl: DWORD): HResult; stdcall; |
end; |
IDirectInputDevice2A = interface(IDirectInputDeviceA) |
['{5944E682-C92E-11CF-BFC7-444553540000}'] |
// IDirectInputDevice2A methods |
function CreateEffect(const rguid: TGUID; const lpeff: TDIEffect; |
out ppdeff: IDirectInputEffect; punkOuter: IUnknown): HResult; stdcall; |
function EnumEffects(lpCallback: TDIEnumEffectsCallbackA; pvRef: Pointer; |
dwEffType: DWORD): HResult; stdcall; |
function GetEffectInfo(var pdei: TDIEffectInfoA; const rguid: TGUID): HResult; stdcall; |
IDirectInputDevice2W = interface (IDirectInputDeviceW) |
['{5944E683-C92E-11CF-BFC7-444553540000}'] |
(*** IDirectInputDevice2W methods ***) |
function CreateEffect(const rguid: TGUID; lpeff: PDIEffect; |
var ppdeff: IDirectInputEffect; punkOuter: IUnknown) : HResult; stdcall; |
function EnumEffects(lpCallback: TDIEnumEffectsCallbackW; |
pvRef: pointer; dwEffType: DWORD) : HResult; stdcall; |
function GetEffectInfo(pdei: TDIEffectInfoW; const rguid: TGUID) : HResult; stdcall; |
function GetForceFeedbackState(var pdwOut: DWORD): HResult; stdcall; |
function SendForceFeedbackCommand(dwFlags: DWORD): HResult; stdcall; |
function EnumCreatedEffectObjects(lpCallback: |
LPDIENUMCREATEDEFFECTOBJECTSCALLBACK; pvRef: Pointer; fl: DWORD): HResult; stdcall; |
function Escape(const pesc: TDIEffEscape): HResult; stdcall; |
TDIEnumCreatedEffectObjectsCallback; |
pvRef: pointer; fl: DWORD) : HResult; stdcall; |
function Escape(var pesc: TDIEffEscape) : HResult; stdcall; |
function Poll: HResult; stdcall; |
function SendDeviceData(cbObjectData: DWORD; const rgdod: TDIDeviceObjectData; |
function SendDeviceData |
(cbObjectData: DWORD; var rgdod: TDIDeviceObjectData; |
var pdwInOut: DWORD; fl: DWORD): HResult; stdcall; |
end; |
{$IFDEF UNICODE} |
IDirectInputDevice2 = IDirectInputDevice2W; |
{$ELSE} |
IDirectInputDevice2 = IDirectInputDevice2A; |
{$ENDIF} |
const |
DIFEF_DEFAULT = $00000000; |
DIFEF_INCLUDENONSTANDARD = $00000001; |
DIFEF_MODIFYIFNEEDED = $00000010; |
///Weitermachen: (as: nur die Deklarationen eingefüllt, die ich zum Testen gebraucht habe) |
type |
TEnumEffectsInFileCallback = function(gaga, huhu: Integer): HResult; |
type |
IDirectInputDevice7W = interface(IDirectInputDevice2W) |
['{57D7C6BC-2356-11D3-8E9D-00C04F6844AE}'] |
// IDirectInputDevice7W methods |
function EnumEffectsInFile(lpszFileName: LPCWSTR; pec: TDIEnumEffectsInFileCallback; |
pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
function WriteEffectToFile(lpszFileName: LPCWSTR; dwEntries: DWORD; |
const rgDiFileEft: TDIFileEffect; dwFlags: DWORD): HResult; stdcall; |
['{57D7C6BD-2356-11D3-8E9D-00C04F6844AE}'] |
(*** IDirectInputDevice7A methods ***) |
function EnumEffectsInFile(const lpszFileName: PChar; |
pec: TEnumEffectsInFileCallback; pvRef: Pointer; dwFlags: DWord): HResult; stdcall; |
function WriteEffectToFile(const lpszFileName: PChar; |
dwEntries: DWord; const rgDIFileEft: PDIFileEffect; dwFlags: DWord): HResult; stdcall; |
end; |
IDirectInputDevice7A = interface(IDirectInputDevice2A) |
['{57D7C6BD-2356-11D3-8E9D-00C04F6844AE}'] |
// IDirectInputDevice7A methods |
function EnumEffectsInFile(lpszFileName: LPCSTR; pec: TDIEnumEffectsInFileCallback; |
pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
function WriteEffectToFile(lpszFileName: LPCSTR; dwEntries: DWORD; |
const rgDiFileEft: TDIFileEffect; dwFlags: DWORD): HResult; stdcall; |
['{57D7C6BC-2356-11D3-8E9D-00C04F6844AE}'] |
function EnumEffectsInFile(const lpszFileName: PChar; |
pec: TEnumEffectsInFileCallback; pvRef: Pointer; dwFlags: DWord): HResult; stdcall; |
function WriteEffectToFile(const lpszFileName: PChar; |
dwEntries: DWord; const rgDIFileEft: PDIFileEffect; dwFlags: DWord): HResult; stdcall; |
end; |
{$IFDEF UNICODE} |
IDirectInputDevice7 = IDirectInputDevice7W; |
{$ELSE} |
IDirectInputDevice7 = IDirectInputDevice7A; |
{$ENDIF} |
{ Mouse } |
(**************************************************************************** |
* |
* Mouse |
* |
****************************************************************************) |
type |
TDIMouseState = record |
PDIMouseState = ^TDIMouseState; |
TDIMouseState = packed record |
lX: Longint; |
lY: Longint; |
lZ: Longint; |
rgbButtons: array[0..3] of BYTE; |
rgbButtons: Array [0..3] of BYTE; // up to 4 buttons |
end; |
DIMOUSESTATE = TDIMouseState; |
TDIMouseState2 = record |
PDIMouseState2 = ^TDIMouseState2; |
TDIMouseState2 = packed record |
lX: Longint; |
lY: Longint; |
lZ: Longint; |
rgbButtons: array[0..7] of BYTE; |
rgbButtons: Array [0..7] of BYTE; // up to 8 buttons |
end; |
DIMOUSESTATE2 = TDIMouseState2; |
const |
DIMOFS_X = 0; |
DIMOFS_Y = 4; |
DIMOFS_Z = 8; |
DIMOFS_BUTTON0 = 12; |
DIMOFS_BUTTON1 = 13; |
DIMOFS_BUTTON2 = 14; |
DIMOFS_BUTTON3 = 15; |
// DX7 supports up to 8 mouse buttons |
DIMOFS_BUTTON4 = DIMOFS_BUTTON0+4; |
DIMOFS_BUTTON5 = DIMOFS_BUTTON0+5; |
DIMOFS_BUTTON6 = DIMOFS_BUTTON0+6; |
DIMOFS_BUTTON7 = DIMOFS_BUTTON0+7; |
const |
_c_dfDIMouse_Objects: array[0..1] of TDIObjectDataFormat = ( |
(pguid: nil; dwOfs: 0; dwType: DIDFT_RELAXIS or DIDFT_ANYINSTANCE; dwFlags: 0), |
(pguid: @GUID_Button; dwOfs: 12; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; dwFlags: 0) |
_c_dfDIMouse_Objects: array[0..6] of TDIObjectDataFormat = ( |
( pguid: @GUID_XAxis; |
dwOfs: DIMOFS_X; |
dwType: DIDFT_AXIS or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_YAxis; |
dwOfs: DIMOFS_Y; |
dwType: DIDFT_AXIS or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_ZAxis; |
dwOfs: DIMOFS_Z; |
dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON0; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON1; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON2; |
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON3; |
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0) |
); |
c_dfDIMouse: TDIDataFormat = ( |
dwSize: Sizeof(c_dfDIMouse); |
dwObjSize: Sizeof(TDIObjectDataFormat); |
dwFlags: DIDF_RELAXIS; |
dwDataSize: Sizeof(TDIMouseState); |
dwNumObjs: High(_c_dfDIMouse_Objects)+1; |
rgodf: @_c_dfDIMouse_Objects |
dwSize: Sizeof(c_dfDIMouse); // $18 |
dwObjSize: Sizeof(TDIObjectDataFormat); // $10 |
dwFlags: DIDF_RELAXIS; // |
dwDataSize: Sizeof(TDIMouseState); // $10 |
dwNumObjs: High(_c_dfDIMouse_Objects)+1; // 7 |
rgodf: @_c_dfDIMouse_Objects[Low(_c_dfDIMouse_Objects)] |
); |
{ Keyboard } |
type |
TDIKeyboardState = array[0..255] of Byte; |
DIKEYBOARDSTATE = TDIKeyboardState; |
const |
_c_dfDIKeyboard_Objects: array[0..0] of TDIObjectDataFormat = ( |
(pguid: @GUID_Key; dwOfs: 1; dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; dwFlags: 0) |
_c_dfDIMouse2_Objects: array[0..10] of TDIObjectDataFormat = ( |
( pguid: @GUID_XAxis; |
dwOfs: DIMOFS_X; |
dwType: DIDFT_AXIS or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_YAxis; |
dwOfs: DIMOFS_Y; |
dwType: DIDFT_AXIS or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_ZAxis; |
dwOfs: DIMOFS_Z; |
dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON0; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON1; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON2; |
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON3; |
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// fields introduced with IDirectInputDevice7.GetDeviceState |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON4; |
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON5; |
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON6; |
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: nil; |
dwOfs: DIMOFS_BUTTON7; |
dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0) |
); |
c_dfDIKeyboard: TDIDataFormat = ( |
dwSize: Sizeof(c_dfDIKeyboard); |
dwObjSize: Sizeof(TDIObjectDataFormat); |
dwFlags: 0; |
dwDataSize: SizeOf(TDIKeyboardState); |
dwNumObjs: High(_c_dfDIKeyboard_Objects)+1; |
rgodf: @_c_dfDIKeyboard_Objects |
c_dfDIMouse2: TDIDataFormat = ( |
dwSize: Sizeof(c_dfDIMouse); // $18 |
dwObjSize: Sizeof(TDIObjectDataFormat); // $10 |
dwFlags: DIDF_RELAXIS; // |
dwDataSize: Sizeof(TDIMouseState2); // $14 |
dwNumObjs: High(_c_dfDIMouse_Objects)+1; // 11 |
rgodf: @_c_dfDIMouse2_Objects[Low(_c_dfDIMouse2_Objects)] |
); |
{ DirectInput keyboard scan codes } |
(**************************************************************************** |
* |
* DirectInput keyboard scan codes |
* |
****************************************************************************) |
const |
DIK_ESCAPE = $01; |
DIK_1 = $02; |
9357,9 → 13102,9 |
DIK_8 = $09; |
DIK_9 = $0A; |
DIK_0 = $0B; |
DIK_MINUS = $0C; // - on main keyboard |
DIK_MINUS = $0C; (* - on main keyboard *) |
DIK_EQUALS = $0D; |
DIK_BACK = $0E; // backspace |
DIK_BACK = $0E; (* backspace *) |
DIK_TAB = $0F; |
DIK_Q = $10; |
DIK_W = $11; |
9373,7 → 13118,7 |
DIK_P = $19; |
DIK_LBRACKET = $1A; |
DIK_RBRACKET = $1B; |
DIK_RETURN = $1C; // Enter on main keyboard |
DIK_RETURN = $1C; (* Enter on main keyboard *) |
DIK_LCONTROL = $1D; |
DIK_A = $1E; |
DIK_S = $1F; |
9386,7 → 13131,7 |
DIK_L = $26; |
DIK_SEMICOLON = $27; |
DIK_APOSTROPHE = $28; |
DIK_GRAVE = $29; // accent grave |
DIK_GRAVE = $29; (* accent grave *) |
DIK_LSHIFT = $2A; |
DIK_BACKSLASH = $2B; |
DIK_Z = $2C; |
9397,11 → 13142,11 |
DIK_N = $31; |
DIK_M = $32; |
DIK_COMMA = $33; |
DIK_PERIOD = $34; // . on main keyboard |
DIK_SLASH = $35; // / on main keyboard |
DIK_PERIOD = $34; (* . on main keyboard *) |
DIK_SLASH = $35; (* / on main keyboard *) |
DIK_RSHIFT = $36; |
DIK_MULTIPLY = $37; // * on numeric keypad |
DIK_LMENU = $38; // left Alt |
DIK_MULTIPLY = $37; (* * on numeric keypad *) |
DIK_LMENU = $38; (* left Alt *) |
DIK_SPACE = $39; |
DIK_CAPITAL = $3A; |
DIK_F1 = $3B; |
9415,199 → 13160,849 |
DIK_F9 = $43; |
DIK_F10 = $44; |
DIK_NUMLOCK = $45; |
DIK_SCROLL = $46; // Scroll Lock |
DIK_SCROLL = $46; (* Scroll Lock *) |
DIK_NUMPAD7 = $47; |
DIK_NUMPAD8 = $48; |
DIK_NUMPAD9 = $49; |
DIK_SUBTRACT = $4A; // - on numeric keypad |
DIK_SUBTRACT = $4A; (* - on numeric keypad *) |
DIK_NUMPAD4 = $4B; |
DIK_NUMPAD5 = $4C; |
DIK_NUMPAD6 = $4D; |
DIK_ADD = $4E; // + on numeric keypad |
DIK_ADD = $4E; (* + on numeric keypad *) |
DIK_NUMPAD1 = $4F; |
DIK_NUMPAD2 = $50; |
DIK_NUMPAD3 = $51; |
DIK_NUMPAD0 = $52; |
DIK_DECIMAL = $53; // . on numeric keypad |
DIK_DECIMAL = $53; (* . on numeric keypad *) |
// $54 to $56 unassigned |
DIK_F11 = $57; |
DIK_F12 = $58; |
DIK_F13 = $64; // (NEC PC98) |
DIK_F14 = $65; // (NEC PC98) |
DIK_F15 = $66; // (NEC PC98) |
DIK_KANA = $70; // (Japanese keyboard) |
DIK_CONVERT = $79; // (Japanese keyboard) |
DIK_NOCONVERT = $7B; // (Japanese keyboard) |
DIK_YEN = $7D; // (Japanese keyboard) |
DIK_NUMPADEQUALS = $8D; // = on numeric keypad (NEC PC98) |
DIK_CIRCUMFLEX = $90; // (Japanese keyboard) |
DIK_AT = $91; // (NEC PC98) |
DIK_COLON = $92; // (NEC PC98) |
DIK_UNDERLINE = $93; // (NEC PC98) |
DIK_KANJI = $94; // (Japanese keyboard) |
DIK_STOP = $95; // (NEC PC98) |
DIK_AX = $96; // (Japan AX) |
DIK_UNLABELED = $97; // (J3100) |
DIK_NUMPADENTER = $9C; // Enter on numeric keypad |
// $59 to $63 unassigned |
DIK_F13 = $64; (* (NEC PC98) *) |
DIK_F14 = $65; (* (NEC PC98) *) |
DIK_F15 = $66; (* (NEC PC98) *) |
// $67 to $6F unassigned |
DIK_KANA = $70; (* (Japanese keyboard) *) |
DIK_CONVERT = $79; (* (Japanese keyboard) *) |
DIK_NOCONVERT = $7B; (* (Japanese keyboard) *) |
DIK_YEN = $7D; (* (Japanese keyboard) *) |
DIK_NUMPADEQUALS = $8D; (* = on numeric keypad (NEC PC98) *) |
// $8E to $8F unassigned |
DIK_CIRCUMFLEX = $90; (* (Japanese keyboard) *) |
DIK_AT = $91; (* (NEC PC98) *) |
DIK_COLON = $92; (* (NEC PC98) *) |
DIK_UNDERLINE = $93; (* (NEC PC98) *) |
DIK_KANJI = $94; (* (Japanese keyboard) *) |
DIK_STOP = $95; (* (NEC PC98) *) |
DIK_AX = $96; (* (Japan AX) *) |
DIK_UNLABELED = $97; (* (J3100) *) |
// $98 to $99 unassigned |
DIK_NUMPADENTER = $9C; (* Enter on numeric keypad *) |
DIK_RCONTROL = $9D; |
DIK_NUMPADCOMMA = $B3; // , on numeric keypad (NEC PC98) |
DIK_DIVIDE = $B5; // / on numeric keypad |
// $9E to $B2 unassigned |
DIK_NUMPADCOMMA = $B3; (* , on numeric keypad (NEC PC98) *) |
// $B4 unassigned |
DIK_DIVIDE = $B5; (* / on numeric keypad *) |
// $B6 unassigned |
DIK_SYSRQ = $B7; |
DIK_RMENU = $B8; // right Alt |
DIK_HOME = $C7; // Home on arrow keypad |
DIK_UP = $C8; // UpArrow on arrow keypad |
DIK_PRIOR = $C9; // PgUp on arrow keypad |
DIK_LEFT = $CB; // LeftArrow on arrow keypad |
DIK_RIGHT = $CD; // RightArrow on arrow keypad |
DIK_END = $CF; // End on arrow keypad |
DIK_DOWN = $D0; // DownArrow on arrow keypad |
DIK_NEXT = $D1; // PgDn on arrow keypad |
DIK_INSERT = $D2; // Insert on arrow keypad |
DIK_DELETE = $D3; // Delete on arrow keypad |
DIK_LWIN = $DB; // Left Windows key |
DIK_RWIN = $DC; // Right Windows key |
DIK_APPS = $DD; // AppMenu key |
DIK_RMENU = $B8; (* right Alt *) |
// $B9 to $C4 unassigned |
DIK_PAUSE = $C5; (* Pause (watch out - not realiable on some kbds) *) |
// $C6 unassigned |
DIK_HOME = $C7; (* Home on arrow keypad *) |
DIK_UP = $C8; (* UpArrow on arrow keypad *) |
DIK_PRIOR = $C9; (* PgUp on arrow keypad *) |
// $CA unassigned |
DIK_LEFT = $CB; (* LeftArrow on arrow keypad *) |
DIK_RIGHT = $CD; (* RightArrow on arrow keypad *) |
// $CF unassigned |
DIK_END = $CF; (* End on arrow keypad *) |
DIK_DOWN = $D0; (* DownArrow on arrow keypad *) |
DIK_NEXT = $D1; (* PgDn on arrow keypad *) |
DIK_INSERT = $D2; (* Insert on arrow keypad *) |
DIK_DELETE = $D3; (* Delete on arrow keypad *) |
DIK_LWIN = $DB; (* Left Windows key *) |
DIK_RWIN = $DC; (* Right Windows key *) |
DIK_APPS = $DD; (* AppMenu key *) |
// New with DX 6.1 & Win98 |
DIK_POWER = $DE; |
DIK_SLEEP = $DF; |
// $E0 to $E2 unassigned |
// $E3 = Wake up ("translated" in German DInput to "Kielwasser" (ship's wake) ;-) |
// |
// Alternate names for keys, to facilitate transition from DOS. |
// |
DIK_BACKSPACE = DIK_BACK; // backspace |
DIK_NUMPADSTAR = DIK_MULTIPLY; // * on numeric keypad |
DIK_LALT = DIK_LMENU; // left Alt |
DIK_CAPSLOCK = DIK_CAPITAL; // CapsLock |
DIK_NUMPADMINUS = DIK_SUBTRACT; // - on numeric keypad |
DIK_NUMPADPLUS = DIK_ADD; // + on numeric keypad |
DIK_NUMPADPERIOD = DIK_DECIMAL; // . on numeric keypad |
DIK_NUMPADSLASH = DIK_DIVIDE; // / on numeric keypad |
DIK_RALT = DIK_RMENU; // right Alt |
DIK_UPARROW = DIK_UP; // UpArrow on arrow keypad |
DIK_PGUP = DIK_PRIOR; // PgUp on arrow keypad |
DIK_LEFTARROW = DIK_LEFT; // LeftArrow on arrow keypad |
DIK_RIGHTARROW = DIK_RIGHT; // RightArrow on arrow keypad |
DIK_DOWNARROW = DIK_DOWN; // DownArrow on arrow keypad |
DIK_PGDN = DIK_NEXT; // PgDn on arrow keypad |
(* |
* Alternate names for keys, to facilitate transition from DOS. |
*) |
DIK_BACKSPACE = DIK_BACK ; (* backspace *) |
DIK_NUMPADSTAR = DIK_MULTIPLY; (* * on numeric keypad *) |
DIK_LALT = DIK_LMENU ; (* left Alt *) |
DIK_CAPSLOCK = DIK_CAPITAL ; (* CapsLock *) |
DIK_NUMPADMINUS = DIK_SUBTRACT; (* - on numeric keypad *) |
DIK_NUMPADPLUS = DIK_ADD ; (* + on numeric keypad *) |
DIK_NUMPADPERIOD = DIK_DECIMAL ; (* . on numeric keypad *) |
DIK_NUMPADSLASH = DIK_DIVIDE ; (* / on numeric keypad *) |
DIK_RALT = DIK_RMENU ; (* right Alt *) |
DIK_UPARROW = DIK_UP ; (* UpArrow on arrow keypad *) |
DIK_PGUP = DIK_PRIOR ; (* PgUp on arrow keypad *) |
DIK_LEFTARROW = DIK_LEFT ; (* LeftArrow on arrow keypad *) |
DIK_RIGHTARROW = DIK_RIGHT ; (* RightArrow on arrow keypad *) |
DIK_DOWNARROW = DIK_DOWN ; (* DownArrow on arrow keypad *) |
DIK_PGDN = DIK_NEXT ; (* PgDn on arrow keypad *) |
{ Joystick } |
(**************************************************************************** |
* |
* Keyboard |
* |
****************************************************************************) |
type |
TDIKeyboardState = array[0..255] of Byte; |
(* |
const |
_c_dfDIKeyboard_Objects: array[0..255] of TDIObjectDataFormat = ( |
( pguid: @GUID_Key; |
dwOfs: DIK_ESCAPE; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// -------- top row (except function keys) on main kbd ------------ |
( pguid: @GUID_Key; |
dwOfs: DIK_1; // "1" on main kbd, Offset 2 |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_2; // "2" on main kbd, Offset 3 |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_3; // "3" on main kbd, etc. |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_4; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_5; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_6; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_7; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_8; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_9; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_0; // "0", main kbd |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_MINUS; // "-" on US kbds, "ß" on german kbds |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_EQUALS; // "=" for US, "´" for german |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_BACK; // backspace |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// ----------- 2nd row ----------------------- |
( pguid: @GUID_Key; |
dwOfs: DIK_TAB; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_Q; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_W; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_E; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_R; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_T; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_Y; // "Z" on german & french keyboards |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_U; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_I; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_O; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_P; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_LBRACKET; // "Ü" on german keyboards |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_RBRACKET; // "+" on german keyboards |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_RETURN; // Enter on main kbd |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// next row should really start with caps lock but doesn't ;-) |
// (DIK_CAPITAL is Offset $3A, i.e. after 4th row) |
( pguid: @GUID_Key; |
dwOfs: DIK_LCONTROL; // Left Ctrl (german kbds: "Strg") |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// ----------- 3rd row ------------------------------ |
( pguid: @GUID_Key; |
dwOfs: DIK_A; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_S; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_D; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_G; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_H; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_J; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_K; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_L; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_SEMICOLON; // "Ö" on german kbds |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_APOSTROPHE; // "Ä" on german kbds |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_GRAVE; // accent grave, "'" on german kbds |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// ---------------- 4th row ----------------------- |
( pguid: @GUID_Key; |
dwOfs: DIK_LSHIFT; // left shift |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_BACKSLASH; // "<" on german kbds |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_Z; // "Y" on german kbds |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_X; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_C; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_V; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_B; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_N; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_M; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_COMMA; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_PERIOD; // on main kbd |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_SLASH; // "-" on german kbds |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_RSHIFT; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// --- misc keys (bye, bye, order) ---------------- |
( pguid: @GUID_Key; |
dwOfs: DIK_MULTIPLY; // on numeric keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_LMENU; // left ALT |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_SPACE; // space bar |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_CAPITAL; // caps lock (on main kbd, above LSHIFT) |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// ---------- function keys ----------- |
( pguid: @GUID_Key; |
dwOfs: DIK_F1; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F2; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F3; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F4; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F5; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F6; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F7; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F8; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F9; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F10; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// ------- F11, F12 after numeric keypad (for "historical reasons" -- XT kbd) |
// --------- numeric keypad (mostly, that is) ----------- |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMLOCK; // numeric keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_SCROLL; // scroll lock |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD7; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD8; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD9; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_SUBTRACT; // "-" on numeric keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD4; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD5; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD6; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_ADD; // "+" on numeric keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD1; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD2; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD3; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPAD0; // "0" or "Insert" on numeric keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_DECIMAL; // "." or "Del" on numeric keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: $54; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// "extended" function keys; F13 to F15 only on NEC PC98 |
( pguid: @GUID_Key; |
dwOfs: DIK_F11; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_F12; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// ------------------------------------------------- |
// a whole lot of keys for asian kbds only |
// ------------------------------------------------- |
( pguid: @GUID_Key; |
dwOfs: DIK_NUMPADENTER; // Enter on numeric keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_RCONTROL; // right Ctrl on main kbd |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; // "," on numeric keypad (NEC PC98 only) |
dwOfs: DIK_NUMPADCOMMA; |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_DIVIDE; // "/" on numeric keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_SYSRQ; // "System request", "Druck/S-Abf" on german kbds |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_RMENU; // right ALT |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_PAUSE; // "Pause" - not reliable on some kbds |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// ----------- arrow keypad ----------------- |
( pguid: @GUID_Key; |
dwOfs: DIK_HOME; // Home on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_UP; // UpArrow on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_PRIOR; // PgUp on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_LEFT; // LeftArrow on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_RIGHT; // RightArrow on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_END; // End on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_DOWN; // DownArrow on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_NEXT; // PgDn on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_INSERT; // Insert on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_DELETE; // Delete on arrow keypad |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_LWIN; // Left Windows key |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_RWIN; // Right Windows key |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: DIK_APPS; // AppMenu key |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
// -------- added with Win 98 / DirectX 6.1 ------------ |
( pguid: @GUID_Key; |
dwOfs: 222; // Power on key |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: 223; // Sleep key |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0), |
( pguid: @GUID_Key; |
dwOfs: 227; // Wake (up) key. The german "translation" |
// reads "Kielwasser" (ship's wake) ;-) |
dwType: DIDFT_BUTTON or DIDFT_NOCOLLECTION; |
dwFlags: 0) |
); |
*) |
var // set by initialization - I was simply too lazy |
_c_dfDIKeyboard_Objects: array[0..255] of TDIObjectDataFormat; |
const |
c_dfDIKeyboard: TDIDataFormat = ( |
dwSize: Sizeof(c_dfDIKeyboard); |
dwObjSize: Sizeof(TDIObjectDataFormat); |
dwFlags: DIDF_RELAXIS; |
dwDataSize: Sizeof(TDIKeyboardState); |
dwNumObjs: High(_c_dfDIKeyboard_Objects)+1; |
rgodf: @_c_dfDIKeyboard_Objects[Low(_c_dfDIKeyboard_Objects)] |
); |
(**************************************************************************** |
* |
* Joystick |
* |
****************************************************************************) |
type |
PDIJoyState = ^TDIJoyState; |
TDIJoyState = record |
lX: Longint; // x-axis position |
lY: Longint; // y-axis position |
lZ: Longint; // z-axis position |
lRx: Longint; // x-axis rotation |
lRy: Longint; // y-axis rotation |
lRz: Longint; // z-axis rotation |
rglSlider: array[0..1] of Longint; // extra axes positions |
rgdwPOV: array[0..3] of DWORD; // POV directions |
rgbButtons: array[0..31] of BYTE; // 32 buttons |
TDIJoyState = packed record |
lX: Longint; (* x-axis position *) |
lY: Longint; (* y-axis position *) |
lZ: Longint; (* z-axis position *) |
lRx: Longint; (* x-axis rotation *) |
lRy: Longint; (* y-axis rotation *) |
lRz: Longint; (* z-axis rotation *) |
rglSlider: Array [0..1] of Longint; (* extra axes positions *) |
rgdwPOV: Array [0..3] of DWORD; (* POV directions *) |
rgbButtons: Array [0..31] of BYTE; (* 32 buttons *) |
end; |
DIJOYSTATE = TDIJoyState; |
PDIJOYSTATE2 = ^TDIJoyState2; |
TDIJoyState2 = record |
lX: Longint; // x-axis position |
lY: Longint; // y-axis position |
lZ: Longint; // z-axis position |
lRx: Longint; // x-axis rotation |
lRy: Longint; // y-axis rotation |
lRz: Longint; // z-axis rotation |
rglSlider: array[0..1] of Longint; // extra axes positions |
rgdwPOV: array[0..3] of DWORD; // POV directions |
rgbButtons: array[0..127] of BYTE; // 128 buttons |
lVX: Longint; // x-axis velocity |
lVY: Longint; // y-axis velocity |
lVZ: Longint; // z-axis velocity |
lVRx: Longint; // x-axis angular velocity |
lVRy: Longint; // y-axis angular velocity |
lVRz: Longint; // z-axis angular velocity |
rglVSlider: array[0..1] of Longint; // extra axes velocities |
lAX: Longint; // x-axis acceleration |
lAY: Longint; // y-axis acceleration |
lAZ: Longint; // z-axis acceleration |
lARx: Longint; // x-axis angular acceleration |
lARy: Longint; // y-axis angular acceleration |
lARz: Longint; // z-axis angular acceleration |
rglASlider: array[0..1] of Longint; // extra axes accelerations |
lFX: Longint; // x-axis force |
lFY: Longint; // y-axis force |
lFZ: Longint; // z-axis force |
lFRx: Longint; // x-axis torque |
lFRy: Longint; // y-axis torque |
lFRz: Longint; // z-axis torque |
rglFSlider: array[0..1] of Longint; // extra axes forces |
PDIJoyState2 = ^TDIJoyState2; |
TDIJoyState2 = packed record |
lX: Longint; (* x-axis position *) |
lY: Longint; (* y-axis position *) |
lZ: Longint; (* z-axis position *) |
lRx: Longint; (* x-axis rotation *) |
lRy: Longint; (* y-axis rotation *) |
lRz: Longint; (* z-axis rotation *) |
rglSlider: Array [0..1] of Longint; (* extra axes positions *) |
rgdwPOV: Array [0..3] of DWORD; (* POV directions *) |
rgbButtons: Array [0..127] of BYTE; (* 128 buttons *) |
lVX: Longint; (* x-axis velocity *) |
lVY: Longint; (* y-axis velocity *) |
lVZ: Longint; (* z-axis velocity *) |
lVRx: Longint; (* x-axis angular velocity *) |
lVRy: Longint; (* y-axis angular velocity *) |
lVRz: Longint; (* z-axis angular velocity *) |
rglVSlider: Array [0..1] of Longint; (* extra axes velocities *) |
lAX: Longint; (* x-axis acceleration *) |
lAY: Longint; (* y-axis acceleration *) |
lAZ: Longint; (* z-axis acceleration *) |
lARx: Longint; (* x-axis angular acceleration *) |
lARy: Longint; (* y-axis angular acceleration *) |
lARz: Longint; (* z-axis angular acceleration *) |
rglASlider: Array [0..1] of Longint; (* extra axes accelerations *) |
lFX: Longint; (* x-axis force *) |
lFY: Longint; (* y-axis force *) |
lFZ: Longint; (* z-axis force *) |
lFRx: Longint; (* x-axis torque *) |
lFRy: Longint; (* y-axis torque *) |
lFRz: Longint; (* z-axis torque *) |
rglFSlider: Array [0..1] of Longint; (* extra axes forces *) |
end; |
DIJOYSTATE2 = TDIJoyState2; |
{const |
_c_dfDIJoystick_Objects: array[0..1] of TDIObjectDataFormat = ( |
function DIJOFS_SLIDER(n: variant) : variant; |
function DIJOFS_POV(n: variant) : variant; |
function DIJOFS_BUTTON(n: variant) : variant; |
const |
DIJOFS_BUTTON_ = 48; |
const |
DIJOFS_BUTTON0 = DIJOFS_BUTTON_ + 0; |
DIJOFS_BUTTON1 = DIJOFS_BUTTON_ + 1; |
DIJOFS_BUTTON2 = DIJOFS_BUTTON_ + 2; |
DIJOFS_BUTTON3 = DIJOFS_BUTTON_ + 3; |
DIJOFS_BUTTON4 = DIJOFS_BUTTON_ + 4; |
DIJOFS_BUTTON5 = DIJOFS_BUTTON_ + 5; |
DIJOFS_BUTTON6 = DIJOFS_BUTTON_ + 6; |
DIJOFS_BUTTON7 = DIJOFS_BUTTON_ + 7; |
DIJOFS_BUTTON8 = DIJOFS_BUTTON_ + 8; |
DIJOFS_BUTTON9 = DIJOFS_BUTTON_ + 9; |
DIJOFS_BUTTON10 = DIJOFS_BUTTON_ + 10; |
DIJOFS_BUTTON11 = DIJOFS_BUTTON_ + 11; |
DIJOFS_BUTTON12 = DIJOFS_BUTTON_ + 12; |
DIJOFS_BUTTON13 = DIJOFS_BUTTON_ + 13; |
DIJOFS_BUTTON14 = DIJOFS_BUTTON_ + 14; |
DIJOFS_BUTTON15 = DIJOFS_BUTTON_ + 15; |
DIJOFS_BUTTON16 = DIJOFS_BUTTON_ + 16; |
DIJOFS_BUTTON17 = DIJOFS_BUTTON_ + 17; |
DIJOFS_BUTTON18 = DIJOFS_BUTTON_ + 18; |
DIJOFS_BUTTON19 = DIJOFS_BUTTON_ + 19; |
DIJOFS_BUTTON20 = DIJOFS_BUTTON_ + 20; |
DIJOFS_BUTTON21 = DIJOFS_BUTTON_ + 21; |
DIJOFS_BUTTON22 = DIJOFS_BUTTON_ + 22; |
DIJOFS_BUTTON23 = DIJOFS_BUTTON_ + 23; |
DIJOFS_BUTTON24 = DIJOFS_BUTTON_ + 24; |
DIJOFS_BUTTON25 = DIJOFS_BUTTON_ + 25; |
DIJOFS_BUTTON26 = DIJOFS_BUTTON_ + 26; |
DIJOFS_BUTTON27 = DIJOFS_BUTTON_ + 27; |
DIJOFS_BUTTON28 = DIJOFS_BUTTON_ + 28; |
DIJOFS_BUTTON29 = DIJOFS_BUTTON_ + 29; |
DIJOFS_BUTTON30 = DIJOFS_BUTTON_ + 30; |
DIJOFS_BUTTON31 = DIJOFS_BUTTON_ + 31; |
const |
DIJOFS_X =0; |
DIJOFS_Y =4; |
DIJOFS_Z =8; |
DIJOFS_RX =12; |
DIJOFS_RY =16; |
DIJOFS_RZ =20; |
_c_dfDIJoystick_Objects: array[0..43] of TDIObjectDataFormat = ( |
( pguid: @GUID_XAxis; |
dwOfs: DIJOFS_X; dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; dwFlags: $100), |
( pguid: @GUID_YAxis; |
dwOfs: DIJOFS_Y; dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; dwFlags: $100), |
( pguid: @GUID_ZAxis; |
dwOfs: DIJOFS_Z; dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; dwFlags: $100), |
( pguid: @GUID_RxAxis; |
dwOfs: DIJOFS_RX; dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; dwFlags: $100), |
( pguid: @GUID_RyAxis; |
dwOfs: DIJOFS_RY; dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; dwFlags: $100), |
( pguid: @GUID_RzAxis; |
dwOfs: DIJOFS_RZ; dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; dwFlags: $100), |
( pguid: @GUID_Slider; // 2 Sliders |
dwOfs: 24; dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; dwFlags: $100), |
( pguid: @GUID_Slider; |
dwOfs: 28; dwType: $80000000 or DIDFT_AXIS or DIDFT_NOCOLLECTION; dwFlags: $100), |
( pguid: @GUID_POV; // 4 POVs (yes, really) |
dwOfs: 32; dwType: $80000000 or DIDFT_POV or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: @GUID_POV; |
dwOfs: 36; dwType: $80000000 or DIDFT_POV or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: @GUID_POV; |
dwOfs: 40; dwType: $80000000 or DIDFT_POV or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: @GUID_POV; |
dwOfs: 44; dwType: $80000000 or DIDFT_POV or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; // Buttons |
dwOfs: DIJOFS_BUTTON0; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: 0; |
dwType: DIDFT_AXIS or DIDFT_ANYINSTANCE; |
dwFlags: 0), |
dwOfs: DIJOFS_BUTTON1; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: 48; |
dwType: DIDFT_BUTTON or DIDFT_ANYINSTANCE; |
dwFlags: 0) |
dwOfs: DIJOFS_BUTTON2; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON3; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON4; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON5; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON6; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON7; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON8; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON9; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON10; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON11; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON12; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON13; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON14; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON15; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON16; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON17; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON18; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON19; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON20; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON21; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON22; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON23; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON24; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON25; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON26; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON27; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON28; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON29; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON30; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0), |
( pguid: nil; |
dwOfs: DIJOFS_BUTTON31; dwType: $80000000 or DIDFT_BUTTON or DIDFT_NOCOLLECTION; dwFlags: 0) |
); |
c_dfDIJoystick: TDIDataFormat = ( |
dwSize: Sizeof(c_dfDIJoystick); |
dwObjSize: Sizeof(TDIObjectDataFormat); |
dwObjSize: Sizeof(TDIObjectDataFormat); // $10 |
dwFlags: DIDF_ABSAXIS; |
dwDataSize: SizeOf(DIJOYSTATE); |
dwNumObjs: High(_c_dfDIJoystick_Objects)+1; |
rgodf: @_c_dfDIJoystick_Objects); |
dwDataSize: SizeOf(TDIJoyState); // $10 |
dwNumObjs: High(_c_dfDIJoystick_Objects)+1; // $2C |
rgodf: @_c_dfDIJoystick_Objects[Low(_c_dfDIJoystick_Objects)] |
); |
var // Set by initialization part -- didn't want to type in another 656 consts... |
_c_dfDIJoystick2_Objects: array[0..$A3] of TDIObjectDataFormat; |
{ Elements $00..$2B: exact copy of _c_dfDIJoystick |
Elements $2C..$8B: more "buttons" with nil GUIDs |
remaining elements ($8B..$A2): |
$8C,$8D,$8E: X axis, Y axis, Z axis with dwFlags = $0200 |
$8F,$90,$91: rX axis, rY axis, rZ axis with dwFlags = $0200 |
$92, $93: Slider with dwFlags = $0200 |
-------- |
$94,$95,$96: X axis, Y axis, Z axis with dwFlags = $0300 |
$97,$98,$99: rX axis, rY axis, rZ axis with dwFlags = $0300 |
$9A,$9B: Slider with dwFlags = $0300 |
-------- |
$9C,$9D,$9E: X axis, Y axis, Z axis with dwFlags = $0400 |
$9F, $A0, $A1: rX axis, rY axis, rZ axis with dwFlags = $0400 |
$A2, $A3: Slider with dwFlags = $0400 |
} |
const |
DIJOFS_X = 0; |
DIJOFS_Y = 4; |
DIJOFS_Z = 8; |
DIJOFS_RX = 12; |
DIJOFS_RY = 16; |
DIJOFS_RZ = 20; |
DIJOFS_SLIDER = 24; |
DIJOFS_POV = 32; |
DIJOFS_BUTTON = 48; |
c_dfDIJoystick2: TDIDataFormat = ( |
dwSize: Sizeof(c_dfDIJoystick2); |
dwObjSize: Sizeof(TDIObjectDataFormat); |
dwFlags: DIDF_ABSAXIS; |
dwDataSize: SizeOf(TDIJoyState2); // $110 |
dwNumObjs: High(_c_dfDIJoystick2_Objects)+1; |
rgodf: @_c_dfDIJoystick2_Objects[Low(_c_dfDIJoystick2_Objects)] |
); |
{ IDirectInput } |
(**************************************************************************** |
* |
* IDirectInput |
* |
****************************************************************************) |
const |
DIENUM_STOP = 0; |
DIENUM_CONTINUE = 1; |
type |
// as with the other enum functions: must rtn DIENUM_STOP or DIENUM_CONTINUE |
TDIEnumDevicesCallbackA = function (var lpddi: TDIDeviceInstanceA; |
pvRef: Pointer): Integer; stdcall; // BOOL; stdcall; |
TDIEnumDevicesCallbackW = function (var lpddi: TDIDeviceInstanceW; |
pvRef: Pointer): Integer; stdcall; // BOOL; stdcall; |
TDIEnumDevicesCallback = function (var lpddi: TDIDeviceInstance; |
pvRef: Pointer): Integer; stdcall; // BOOL; stdcall; |
TDIEnumDevicesProc = TDIEnumDevicesCallback; |
TDIEnumDevicesCallbackA = function(const lpddi: TDIDeviceInstanceA; |
pvRef: Pointer): HResult; stdcall; |
LPDIENUMDEVICESCALLBACKA = TDIEnumDevicesCallbackA; |
TDIEnumDevicesCallbackW = function(const lpddi: TDIDeviceInstanceW; |
pvRef: Pointer): HResult; stdcall; |
LPDIENUMDEVICESCALLBACKW = TDIEnumDevicesCallbackW; |
TDIEnumDevicesCallback = TDIEnumDevicesCallbackA; |
LPDIENUMDEVICESCALLBACK = TDIEnumDevicesCallback; |
const |
DIEDFL_ALLDEVICES = $00000000; |
DIEDFL_ATTACHEDONLY = $00000001; |
DIEDFL_FORCEFEEDBACK = $00000100; |
DIEDFL_INCLUDEALIASES = $00010000; |
DIEDFL_INCLUDEPHANTOMS = $00020000; |
type |
IDirectInputW = interface(IUnknown) |
['{89521361-AA8A-11CF-BFC7-444553540000}'] |
// IDirectInputW methods |
function CreateDevice(const rguid: TGUID; |
out lplpDirectInputDevice: IDirectInputDeviceW; pUnkOuter: IUnknown): HResult; stdcall; |
(*** IDirectInputW methods ***) |
function CreateDevice(const rguid: TGUID; var lplpDirectInputDevice: |
IDirectInputDeviceW; pUnkOuter: IUnknown) : HResult; stdcall; |
function EnumDevices(dwDevType: DWORD; lpCallback: TDIEnumDevicesCallbackW; |
pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
function GetDeviceStatus(var rguidInstance: TGUID): HResult; stdcall; |
function GetDeviceStatus(const rguidInstance: TGUID) : HResult; stdcall; |
function RunControlPanel(hwndOwner: HWND; dwFlags: DWORD): HResult; stdcall; |
function Initialize(hinst: THandle; dwVersion: DWORD): HResult; stdcall; |
end; |
9614,9 → 14009,9 |
IDirectInputA = interface(IUnknown) |
['{89521360-AA8A-11CF-BFC7-444553540000}'] |
// IDirectInputA methods |
function CreateDevice(const rguid: TGUID; |
out lplpDirectInputDevice: IDirectInputDeviceA; pUnkOuter: IUnknown): HResult; stdcall; |
(*** IDirectInputA methods ***) |
function CreateDevice(const rguid: TGUID; var lplpDirectInputDevice: |
IDirectInputDeviceA; pUnkOuter: IUnknown) : HResult; stdcall; |
function EnumDevices(dwDevType: DWORD; lpCallback: TDIEnumDevicesCallbackA; |
pvRef: Pointer; dwFlags: DWORD): HResult; stdcall; |
function GetDeviceStatus(const rguidInstance: TGUID): HResult; stdcall; |
9624,158 → 14019,566 |
function Initialize(hinst: THandle; dwVersion: DWORD): HResult; stdcall; |
end; |
{$IFDEF UNICODE} |
IDirectInput = IDirectInputW; |
{$ELSE} |
IDirectInput = IDirectInputA; |
{$ENDIF} |
IDirectInput2W = interface(IDirectInputW) |
['{5944E663-AA8A-11CF-BFC7-444553540000}'] |
// IDirectInput2W methods |
function FindDevice(Arg1: PGUID; Arg2: PWideChar; Arg3: PGUID): HResult; stdcall; |
(*** IDirectInput2W methods ***) |
function FindDevice(const rguidClass: TGUID; ptszName: PWideChar; out pguidInstance: TGUID): HResult; stdcall; |
end; |
IDirectInput2A = interface(IDirectInputA) |
['{5944E662-AA8A-11CF-BFC7-444553540000}'] |
// IDirectInput2A methods |
function FindDevice(Arg1: PGUID; Arg2: PAnsiChar; Arg3: PGUID): HResult; stdcall; |
(*** IDirectInput2A methods ***) |
function FindDevice(const rguidClass: TGUID; ptszName: PAnsiChar; out pguidInstance: TGUID): HResult; stdcall; |
end; |
{$IFDEF UNICODE} |
IDirectInput2 = IDirectInput2W; |
{$ELSE} |
IDirectInput2 = IDirectInput2A; |
{$ENDIF} |
type |
IDirectInput7W = interface(IDirectInput2W) |
['{9A4CB685-236D-11D3-8E9D-00C04F6844AE}'] |
// IDirectInput7W methods |
function CreateDeviceEx(const rguid: TGUID; const riid: TGUID; |
out pvOut; pUnkOuter: IUnknown): HResult; stdcall; |
{*** IDirectInput7W methods ***} |
function CreateDeviceEx(const rguid, riid: TGUID; out lplpDirectInputDevice; |
pUnkOuter: IUnknown) : HResult; stdcall; |
end; |
IDirectInput7A = interface(IDirectInput2A) |
['{9A4CB684-236D-11D3-8E9D-00C04F6844AE}'] |
// IDirectInput7A methods |
function CreateDeviceEx(const rguid: TGUID; const riid: TGUID; |
out pvOut; pUnkOuter: IUnknown): HResult; stdcall; |
{*** IDirectInput7A methods ***} |
function CreateDeviceEx(const rguid, riid: TGUID; out lplpDirectInputDevice; |
pUnkOuter: IUnknown) : HResult; stdcall; |
end; |
{$IFDEF UNICODE} |
IDirectInput7 = IDirectInput7W; |
{$ELSE} |
IDirectInput7 = IDirectInput7A; |
{$ENDIF} |
{ Return Codes } |
var |
DirectInputCreateA : function (hinst: THandle; dwVersion: DWORD; |
out ppDI: IDirectInputA; |
punkOuter: IUnknown) : HResult; stdcall; |
DirectInputCreateW : function (hinst: THandle; dwVersion: DWORD; |
out ppDI: IDirectInputW; |
punkOuter: IUnknown) : HResult; stdcall; |
DirectInputCreate : function (hinst: THandle; dwVersion: DWORD; |
out ppDI: IDirectInput; |
punkOuter: IUnknown) : HResult; stdcall; |
DirectInputCreateEx : function ( |
hinst: THandle; |
dwVersion: DWORD; |
const riidltf: TGUID; |
out ppvOut; |
punkOuter: IUnknown) : HResult; stdcall; |
(**************************************************************************** |
* |
* Interfaces |
* |
****************************************************************************) |
type |
IID_IDirectInputW = IDirectInputW; |
IID_IDirectInputA = IDirectInputA; |
IID_IDirectInput = IDirectInput; |
IID_IDirectInput2W = IDirectInput2W; |
IID_IDirectInput2A = IDirectInput2A; |
IID_IDirectInput2 = IDirectInput2; |
IID_IDirectInput7W = IDirectInput7W; |
IID_IDirectInput7A = IDirectInput7A; |
IID_IDirectInput7 = IDirectInput7; |
IID_IDirectInputDeviceW = IDirectInputDeviceW; |
IID_IDirectInputDeviceA = IDirectInputDeviceA; |
IID_IDirectInputDevice = IDirectInputDevice; |
IID_IDirectInputDevice2W = IDirectInputDevice2W; |
IID_IDirectInputDevice2A = IDirectInputDevice2A; |
IID_IDirectInputDevice2 = IDirectInputDevice2; |
IID_IDirectInputEffect = IDirectInputEffect; |
IID_IDirectInputDevice7W = IDirectInputDevice7W; |
IID_IDirectInputDevice7A = IDirectInputDevice7A; |
IID_IDirectInputDevice7 = IDirectInputDevice7; |
(**************************************************************************** |
* |
* Return Codes |
* |
****************************************************************************) |
(* |
* The operation completed successfully. |
*) |
const |
DI_OK = HResult(S_OK); |
DI_NOTATTACHED = HResult(S_FALSE); |
DI_BUFFEROVERFLOW = HResult(S_FALSE); |
DI_PROPNOEFFECT = HResult(S_FALSE); |
DI_NOEFFECT = HResult(S_FALSE); |
DI_POLLEDDEVICE = HResult($00000002); |
DI_DOWNLOADSKIPPED = HResult($00000003); |
DI_EFFECTRESTARTED = HResult($00000004); |
DI_TRUNCATED = HResult($00000008); |
DI_TRUNCATEDANDRESTARTED = HResult($0000000C); |
DI_OK = S_OK; |
DIERR_OLDDIRECTINPUTVERSION = HResult($8007047E); |
DIERR_BETADIRECTINPUTVERSION = HResult($80070481); |
DIERR_BADDRIVERVER = HResult($80070077); |
DIERR_DEVICENOTREG = HResult(REGDB_E_CLASSNOTREG); |
DIERR_NOTFOUND = HResult($80070002); |
DIERR_OBJECTNOTFOUND = HResult($80070002); |
DIERR_INVALIDPARAM = HResult(E_INVALIDARG); |
DIERR_NOINTERFACE = HResult(E_NOINTERFACE); |
DIERR_GENERIC = HResult(E_FAIL); |
DIERR_OUTOFMEMORY = HResult(E_OUTOFMEMORY); |
DIERR_UNSUPPORTED = HResult(E_NOTIMPL); |
DIERR_NOTINITIALIZED = HResult($80070015); |
DIERR_ALREADYINITIALIZED = HResult($800704DF); |
DIERR_NOAGGREGATION = HResult(CLASS_E_NOAGGREGATION); |
DIERR_OTHERAPPHASPRIO = HResult(E_ACCESSDENIED); |
DIERR_INPUTLOST = HResult($8007001E); |
DIERR_ACQUIRED = HResult($800700AA); |
DIERR_NOTACQUIRED = HResult($8007000C); |
DIERR_READONLY = HResult(E_ACCESSDENIED); |
DIERR_HANDLEEXISTS = HResult(E_ACCESSDENIED); |
DIERR_PENDING = HResult($80070007); |
(* |
* The device exists but is not currently attached. |
*) |
DI_NOTATTACHED = S_FALSE; |
(* |
* The device buffer overflowed. Some input was lost. |
*) |
DI_BUFFEROVERFLOW = S_FALSE; |
(* |
* The change in device properties had no effect. |
*) |
DI_PROPNOEFFECT = S_FALSE; |
(* |
* The operation had no effect. |
*) |
DI_NOEFFECT = S_FALSE; |
(* |
* The device is a polled device. As a result, device buffering |
* will not collect any data and event notifications will not be |
* signalled until GetDeviceState is called. |
*) |
DI_POLLEDDEVICE = $00000002; |
(* |
* The parameters of the effect were successfully updated by |
* IDirectInputEffect::SetParameters, but the effect was not |
* downloaded because the device is not exclusively acquired |
* or because the DIEP_NODOWNLOAD flag was passed. |
*) |
DI_DOWNLOADSKIPPED = $00000003; |
(* |
* The parameters of the effect were successfully updated by |
* IDirectInputEffect::SetParameters, but in order to change |
* the parameters, the effect needed to be restarted. |
*) |
DI_EFFECTRESTARTED = $00000004; |
(* |
* The parameters of the effect were successfully updated by |
* IDirectInputEffect::SetParameters, but some of them were |
* beyond the capabilities of the device and were truncated. |
*) |
DI_TRUNCATED = $00000008; |
(* |
* Equal to DI_EFFECTRESTARTED | DI_TRUNCATED. |
*) |
DI_TRUNCATEDANDRESTARTED = $0000000C; |
SEVERITY_ERROR_FACILITY_WIN32 = |
HResult(SEVERITY_ERROR shl 31) or HResult(FACILITY_WIN32 shl 16); |
(* |
* The application requires a newer version of DirectInput. |
*) |
DIERR_OLDDIRECTINPUTVERSION = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_OLD_WIN_VERSION; |
(* |
* The application was written for an unsupported prerelease version |
* of DirectInput. |
*) |
DIERR_BETADIRECTINPUTVERSION = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_RMODE_APP; |
(* |
* The object could not be created due to an incompatible driver version |
* or mismatched or incomplete driver components. |
*) |
DIERR_BADDRIVERVER = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_BAD_DRIVER_LEVEL; |
(* |
* The device or device instance or effect is not registered with DirectInput. |
*) |
DIERR_DEVICENOTREG = REGDB_E_CLASSNOTREG; |
(* |
* The requested object does not exist. |
*) |
DIERR_NOTFOUND = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_FILE_NOT_FOUND; |
(* |
* The requested object does not exist. |
*) |
DIERR_OBJECTNOTFOUND = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_FILE_NOT_FOUND; |
(* |
* An invalid parameter was passed to the returning function, |
* or the object was not in a state that admitted the function |
* to be called. |
*) |
DIERR_INVALIDPARAM = E_INVALIDARG; |
(* |
* The specified interface is not supported by the object |
*) |
DIERR_NOINTERFACE = E_NOINTERFACE; |
(* |
* An undetermined error occured inside the DInput subsystem |
*) |
DIERR_GENERIC = E_FAIL; |
(* |
* The DInput subsystem couldn't allocate sufficient memory to complete the |
* caller's request. |
*) |
DIERR_OUTOFMEMORY = E_OUTOFMEMORY; |
(* |
* The function called is not supported at this time |
*) |
DIERR_UNSUPPORTED = E_NOTIMPL; |
(* |
* This object has not been initialized |
*) |
DIERR_NOTINITIALIZED = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_NOT_READY; |
(* |
* This object is already initialized |
*) |
DIERR_ALREADYINITIALIZED = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_ALREADY_INITIALIZED; |
(* |
* This object does not support aggregation |
*) |
DIERR_NOAGGREGATION = CLASS_E_NOAGGREGATION; |
(* |
* Another app has a higher priority level, preventing this call from |
* succeeding. |
*) |
DIERR_OTHERAPPHASPRIO = E_ACCESSDENIED; |
(* |
* Access to the device has been lost. It must be re-acquired. |
*) |
DIERR_INPUTLOST = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_READ_FAULT; |
(* |
* The operation cannot be performed while the device is acquired. |
*) |
DIERR_ACQUIRED = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_BUSY; |
(* |
* The operation cannot be performed unless the device is acquired. |
*) |
DIERR_NOTACQUIRED = SEVERITY_ERROR_FACILITY_WIN32 |
or ERROR_INVALID_ACCESS; |
(* |
* The specified property cannot be changed. |
*) |
DIERR_READONLY = E_ACCESSDENIED; |
(* |
* The device already has an event notification associated with it. |
*) |
DIERR_HANDLEEXISTS = E_ACCESSDENIED; |
(* |
* Data is not yet available. |
*) |
E_PENDING = HResult($80070007); |
(* |
* Unable to IDirectInputJoyConfig_Acquire because the user |
* does not have sufficient privileges to change the joystick |
* configuration. |
*) |
DIERR_INSUFFICIENTPRIVS = HResult($80040200); |
DIERR_DEVICEFULL = HResult($80040201); |
DIERR_MOREDATA = HResult($80040202); |
DIERR_NOTDOWNLOADED = HResult($80040203); |
DIERR_HASEFFECTS = HResult($80040204); |
DIERR_NOTEXCLUSIVEACQUIRED = HResult($80040205); |
DIERR_INCOMPLETEEFFECT = HResult($80040206); |
DIERR_NOTBUFFERED = HResult($80040207); |
DIERR_EFFECTPLAYING = HResult($80040208); |
DIERR_UNPLUGGED = HResult($80040209); |
DIERR_REPORTFULL = HResult($8004020A); |
(* |
* The device is full. |
*) |
DIERR_DEVICEFULL = DIERR_INSUFFICIENTPRIVS + 1; |
{ Definitions for non-IDirectInput (VJoyD) features defined more recently |
than the current sdk files } |
(* |
* Not all the requested information fit into the buffer. |
*) |
DIERR_MOREDATA = DIERR_INSUFFICIENTPRIVS + 2; |
(* |
* The effect is not downloaded. |
*) |
DIERR_NOTDOWNLOADED = DIERR_INSUFFICIENTPRIVS + 3; |
(* |
* The device cannot be reinitialized because there are still effects |
* attached to it. |
*) |
DIERR_HASEFFECTS = DIERR_INSUFFICIENTPRIVS + 4; |
(* |
* The operation cannot be performed unless the device is acquired |
* in DISCL_EXCLUSIVE mode. |
*) |
DIERR_NOTEXCLUSIVEACQUIRED = DIERR_INSUFFICIENTPRIVS + 5; |
(* |
* The effect could not be downloaded because essential information |
* is missing. For example, no axes have been associated with the |
* effect, or no type-specific information has been created. |
*) |
DIERR_INCOMPLETEEFFECT = DIERR_INSUFFICIENTPRIVS + 6; |
(* |
* Attempted to read buffered device data from a device that is |
* not buffered. |
*) |
DIERR_NOTBUFFERED = DIERR_INSUFFICIENTPRIVS + 7; |
(* |
* An attempt was made to modify parameters of an effect while it is |
* playing. Not all hardware devices support altering the parameters |
* of an effect while it is playing. |
*) |
DIERR_EFFECTPLAYING = DIERR_INSUFFICIENTPRIVS + 8; |
(* |
* The operation could not be completed because the device is not |
* plugged in. |
*) |
DIERR_UNPLUGGED = $80040209; |
(* |
* SendDeviceData failed because more information was requested |
* to be sent than can be sent to the device. Some devices have |
* restrictions on how much data can be sent to them. (For example, |
* there might be a limit on the number of buttons that can be |
* pressed at once.) |
*) |
DIERR_REPORTFULL = $8004020A; |
(**************************************************************************** |
* |
* Definitions for non-IDirectInput (VJoyD) features defined more recently |
* than the current sdk files |
* |
****************************************************************************) |
(* |
* Flag to indicate that the dwReserved2 field of the JOYINFOEX structure |
* contains mini-driver specific data to be passed by VJoyD to the mini- |
* driver instead of doing a poll. |
*) |
JOY_PASSDRIVERDATA = $10000000; |
(* |
* Informs the joystick driver that the configuration has been changed |
* and should be reloaded from the registery. |
* dwFlags is reserved and should be set to zero |
*) |
function joyConfigChanged(dwFlags: DWORD) : MMRESULT; stdcall; |
const |
(* |
* Hardware Setting indicating that the device is a headtracker |
*) |
JOY_HWS_ISHEADTRACKER = $02000000; |
(* |
* Hardware Setting indicating that the VxD is used to replace |
* the standard analog polling |
*) |
JOY_HWS_ISGAMEPORTDRIVER = $04000000; |
(* |
* Hardware Setting indicating that the driver needs a standard |
* gameport in order to communicate with the device. |
*) |
JOY_HWS_ISANALOGPORTDRIVER = $08000000; |
(* |
* Hardware Setting indicating that VJoyD should not load this |
* driver, it will be loaded externally and will register with |
* VJoyD of it's own accord. |
*) |
JOY_HWS_AUTOLOAD = $10000000; |
(* |
* Hardware Setting indicating that the driver acquires any |
* resources needed without needing a devnode through VJoyD. |
*) |
JOY_HWS_NODEVNODE = $20000000; |
(* |
* Hardware Setting indicating that the device is a gameport bus |
*) |
JOY_HWS_ISGAMEPORTBUS = $80000000; |
JOY_HWS_GAMEPORTBUSBUSY = $00000001; |
//from older Verion: |
(* |
* Hardware Setting indicating that the VxD can be used as |
* a port 201h emulator. |
*) |
JOY_HWS_ISGAMEPORTEMULATOR = $40000000; |
(* |
* Usage Setting indicating that the settings are volatile and |
* should be removed if still present on a reboot. |
*) |
JOY_US_VOLATILE = $00000008; |
{ Definitions for non-IDirectInput (VJoyD) features defined more recently |
than the current ddk files } |
(**************************************************************************** |
* |
* Definitions for non-IDirectInput (VJoyD) features defined more recently |
* than the current ddk files |
* |
****************************************************************************) |
(* |
* Poll type in which the do_other field of the JOYOEMPOLLDATA |
* structure contains mini-driver specific data passed from an app. |
*) |
JOY_OEMPOLL_PASSDRIVERDATA = 7; |
function DirectInputCreate(hinst: THandle; dwVersion: DWORD; |
out ppDI: IDirectInputA; punkOuter: IUnknown): HResult; stdcall; |
function DirectInputCreateEx(hinst: THandle; dwVersion: DWORD; |
const riidltf: TGUID; out ppDI: IDirectInputA; punkOuter: IUnknown): HResult; stdcall; |
{$IFDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
//DirectPlay file |
(*==========================================================================; |
* |
* Copyright (C) Microsoft Corporation. All Rights Reserved. |
* |
* File: dplay.h dplobby.h |
* Content: DirectPlay include files |
* |
* DirectX 7 Delphi adaptation by Erik Unger |
* |
* Modified: 4-Jun-2000 |
* |
* Download: http://www.delphi-jedi.org/DelphiGraphics/ |
* E-Mail: DelphiDirectX@next-reality.com |
* |
***************************************************************************) |
var |
DPlayDLL : HMODULE = 0; |
(*==========================================================================; |
* |
* Copyright (C) 1994-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: dplay.h |
* Content: DirectPlay include file |
* |
***************************************************************************) |
function DPErrorString(Value: HResult) : string; |
const |
{ GUIDS used by DirectPlay objects } |
// {D1EB6D20-8923-11d0-9D97-00A0C90A43CB} |
CLSID_DirectPlay: TGUID = |
(D1:$d1eb6d20;D2:$8923;D3:$11d0;D4:($9d,$97,$00,$a0,$c9,$a,$43,$cb)); |
CLSID_DirectPlay: TGUID = '{D1EB6D20-8923-11D0-9D97-00A0C90A43CB}'; |
(* |
* GUIDS used by Service Providers shipped with DirectPlay |
* Use these to identify Service Provider returned by EnumConnections |
*) |
IID_IDirectPlay: TGUID = '{5454E9A0-DB65-11CE-921C-00AA006C4972}'; |
IID_IDirectPlay2: TGUID = '{2B74F7C0-9154-11CF-A9CD-00AA006886E3}'; |
IID_IDirectPlay2A: TGUID = '{9D460580-A822-11CF-960C-0080C7534E82}'; |
IID_IDirectPlay3: TGUID = '{133EFE40-32DC-11D0-9CFB-00A0C90A43CB}'; |
IID_IDirectPlay3A: TGUID = '{133EFE41-32DC-11D0-9CFB-00A0C90A43CB}'; |
IID_IDirectPlay4: TGUID = '{0AB1C530-4745-11D1-A7A1-0000F803ABFC}'; |
IID_IDirectPlay4A: TGUID = '{0AB1C531-4745-11D1-A7A1-0000F803ABFC}'; |
// GUID for IPX service provider |
// {685BC400-9D2C-11cf-A9CD-00AA006886E3} |
DPSPGUID_IPX: TGUID = |
(D1:$685bc400;D2:$9d2c;D3:$11cf;D4:($a9,$cd,$00,$aa,$00,$68,$86,$e3)); |
{ GUIDS used by Service Providers shipped with DirectPlay |
Use these to identify Service Provider returned by EnumConnections } |
// GUID for TCP/IP service provider |
// 36E95EE0-8577-11cf-960C-0080C7534E82 |
DPSPGUID_TCPIP: TGUID = |
(D1:$36E95EE0;D2:$8577;D3:$11cf;D4:($96,$0c,$00,$80,$c7,$53,$4e,$82)); |
DPSPGUID_IPX: TGUID = '{685BC400-9D2C-11CF-A9CD-00AA006886E3}'; |
DPSPGUID_TCPIP: TGUID = '{36E95EE0-8577-11CF-960C-0080C7534E82}'; |
DPSPGUID_SERIAL: TGUID = '{0F1D6860-88D9-11CF-9C4E-00A0C905425E}'; |
DPSPGUID_MODEM: TGUID = '{44EAA760-CB68-11CF-9C4E-00A0C905425E}'; |
// GUID for Serial service provider |
// {0F1D6860-88D9-11cf-9C4E-00A0C905425E} |
DPSPGUID_SERIAL: TGUID = |
(D1:$f1d6860;D2:$88d9;D3:$11cf;D4:($9c,$4e,$00,$a0,$c9,$05,$42,$5e)); |
{ DirectPlay Structures } |
// GUID for Modem service provider |
// {44EAA760-CB68-11cf-9C4E-00A0C905425E} |
DPSPGUID_MODEM: TGUID = |
(D1:$44eaa760;D2:$cb68;D3:$11cf;D4:($9c,$4e,$00,$a0,$c9,$05,$42,$5e)); |
(**************************************************************************** |
* |
* DirectPlay Structures |
* |
* Various structures used to invoke DirectPlay. |
* |
****************************************************************************) |
type |
(* |
* TDPID |
* DirectPlay player and group ID |
*) |
TDPID = DWORD; |
PDPID = ^TDPID; |
TDPID = DWORD; |
DPID = TDPID; |
LPDPID = PDPID; |
const |
DPID_SYSMSG = 0; // DPID that system messages come from |
DPID_ALLPLAYERS = 0; // DPID representing all players in the session |
DPID_SERVERPLAYER = 1; // DPID representing the server player |
DPID_RESERVEDRANGE = 100; // DPID representing the maxiumum ID in the range of DPID's reserved for |
// use by DirectPlay. |
DPID_UNKNOWN = $FFFFFFFF; // The player ID is unknown (used with e.g. DPSESSION_NOMESSAGEID) |
(* |
* DPID that system messages come from |
*) |
DPID_SYSMSG = 0; |
(* |
* DPID representing all players in the session |
*) |
DPID_ALLPLAYERS = 0; |
(* |
* DPID representing the server player |
*) |
DPID_SERVERPLAYER = 1; |
(* |
* DPID representing the maximum ID in the range of DPID's reserved for |
* use by DirectPlay. |
*) |
DPID_RESERVEDRANGE = 100; |
(* |
* The player ID is unknown (used with e.g. DPSESSION_NOMESSAGEID) |
*) |
DPID_UNKNOWN = $FFFFFFFF; |
type |
(* |
* DPCAPS |
* Used to obtain the capabilities of a DirectPlay object |
*) |
PDPCaps = ^TDPCaps; |
TDPCaps = record |
TDPCaps = packed record |
dwSize: DWORD; // Size of structure, in bytes |
dwFlags: DWORD; // DPCAPS_xxx flags |
dwMaxBufferSize: DWORD; // Maximum message size, in bytes, for this service provider |
9792,27 → 14595,85 |
// responses to system messages |
end; |
DPCAPS = TDPCaps; |
LPDPCAPS = PDPCaps; |
const |
(* |
* This DirectPlay object is the session host. If the host exits the |
* session, another application will become the host and receive a |
* DPSYS_HOST system message. |
*) |
DPCAPS_ISHOST = $00000002; |
(* |
* The service provider bound to this DirectPlay object can optimize |
* group messaging. |
*) |
DPCAPS_GROUPOPTIMIZED = $00000008; |
(* |
* The service provider bound to this DirectPlay object can optimize |
* keep alives (see DPSESSION_KEEPALIVE) |
*) |
DPCAPS_KEEPALIVEOPTIMIZED = $00000010; |
(* |
* The service provider bound to this DirectPlay object can optimize |
* guaranteed message delivery. |
*) |
DPCAPS_GUARANTEEDOPTIMIZED = $00000020; |
(* |
* This DirectPlay object supports guaranteed message delivery. |
*) |
DPCAPS_GUARANTEEDSUPPORTED = $00000040; |
(* |
* This DirectPlay object supports digital signing of messages. |
*) |
DPCAPS_SIGNINGSUPPORTED = $00000080; |
(* |
* This DirectPlay object supports encryption of messages. |
*) |
DPCAPS_ENCRYPTIONSUPPORTED = $00000100; |
(* |
* This DirectPlay player was created on this machine |
*) |
DPPLAYERCAPS_LOCAL = $00000800; |
(* |
* Current Open settings supports all forms of Cancel |
*) |
DPCAPS_ASYNCCANCELSUPPORTED = $00001000; |
(* |
* Current Open settings supports CancelAll, but not Cancel |
*) |
DPCAPS_ASYNCCANCELALLSUPPORTED = $00002000; |
(* |
* Current Open settings supports Send Timeouts for sends |
*) |
DPCAPS_SENDTIMEOUTSUPPORTED = $00004000; |
(* |
* Current Open settings supports send priority |
*) |
DPCAPS_SENDPRIORITYSUPPORTED = $00008000; |
(* |
* Current Open settings supports DPSEND_ASYNC flag |
*) |
DPCAPS_ASYNCSUPPORTED = $00010000; |
type |
(* |
* TDPSessionDesc2 |
* Used to describe the properties of a DirectPlay |
* session instance |
*) |
PDPSessionDesc2 = ^TDPSessionDesc2; |
TDPSessionDesc2 = record |
TDPSessionDesc2 = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // DPSESSION_xxx flags |
guidInstance: TGUID; // ID for the session instance |
9820,11 → 14681,10 |
// GUID_NULL for all applications. |
dwMaxPlayers: DWORD; // Maximum # players allowed in session |
dwCurrentPlayers: DWORD; // Current # players in session (read only) |
case Integer of |
case integer of |
0: ( |
lpszSessionName: LPWSTR; // Name of the session - Unicode |
lpszPassword: LPWSTR; // Password of the session (optional) - Unicode |
lpszSessionName: PCharAW; // Name of the session |
lpszPassword: PCharAW; // Password of the session (optional) |
dwReserved1: DWORD; // Reserved for future MS use. |
dwReserved2: DWORD; |
dwUser1: DWORD; // For use by the application |
9833,49 → 14693,130 |
dwUser4: DWORD; |
); |
1: ( |
lpszSessionNameA: LPSTR; // Name of the session - ANSI |
lpszPasswordA: LPSTR; // Password of the session (optional) - ANSI |
lpszSessionNameA: PAnsiChar; // Name of the session |
lpszPasswordA: PAnsiChar // Password of the session (optional) |
); |
2 : ( |
lpszSessionNameW: PWideChar; |
lpszPasswordW: PWideChar |
); |
end; |
DPSESSIONDESC2 = TDPSessionDesc2; |
LPDPSESSIONDESC2 = PDPSessionDesc2; |
const |
(* |
* Applications cannot create new players in this session. |
*) |
DPSESSION_NEWPLAYERSDISABLED = $00000001; |
(* |
* If the DirectPlay object that created the session, the host, |
* quits, then the host will attempt to migrate to another |
* DirectPlay object so that new players can continue to be created |
* and new applications can join the session. |
*) |
DPSESSION_MIGRATEHOST = $00000004; |
(* |
* This flag tells DirectPlay not to set the idPlayerTo and idPlayerFrom |
* fields in player messages. This cuts two DWORD's off the message |
* overhead. |
*) |
DPSESSION_NOMESSAGEID = $00000008; |
(* |
* This flag tells DirectPlay to not allow any new applications to |
* join the session. Applications already in the session can still |
* create new players. |
*) |
DPSESSION_JOINDISABLED = $00000020; |
(* |
* This flag tells DirectPlay to detect when remote players |
* exit abnormally (e.g. their computer or modem gets unplugged) |
*) |
DPSESSION_KEEPALIVE = $00000040; |
(* |
* This flag tells DirectPlay not to send a message to all players |
* when a players remote data changes |
*) |
DPSESSION_NODATAMESSAGES = $00000080; |
(* |
* This flag indicates that the session belongs to a secure server |
* and needs user authentication |
*) |
DPSESSION_SECURESERVER = $00000100; |
(* |
* This flag indicates that the session is private and requirs a password |
* for EnumSessions as well as Open. |
*) |
DPSESSION_PRIVATE = $00000200; |
(* |
* This flag indicates that the session requires a password for joining. |
*) |
DPSESSION_PASSWORDREQUIRED = $00000400; |
(* |
* This flag tells DirectPlay to route all messages through the server |
*) |
DPSESSION_MULTICASTSERVER = $00000800; |
(* |
* This flag tells DirectPlay to only download information about the |
* DPPLAYER_SERVERPLAYER. |
*) |
DPSESSION_CLIENTSERVER = $00001000; |
(* |
* This flag tells DirectPlay to use the protocol built into dplay |
* for reliability and statistics all the time. When this bit is |
* set, only other sessions with this bit set can join or be joined. |
*) |
DPSESSION_DIRECTPLAYPROTOCOL = $00002000; |
(* |
* This flag tells DirectPlay that preserving order of received |
* packets is not important, when using reliable delivery. This |
* will allow messages to be indicated out of order if preceding |
* messages have not yet arrived. Otherwise DPLAY will wait for |
* earlier messages before delivering later reliable messages. |
*) |
DPSESSION_NOPRESERVEORDER = $00004000; |
(* |
* This flag tells DirectPlay to optimize communication for latency |
*) |
DPSESSION_OPTIMIZELATENCY = $00008000; |
type |
(* |
* TDPName |
* Used to hold the name of a DirectPlay entity |
* like a player or a group |
*) |
PDPName = ^TDPName; |
TDPName = record |
TDPName = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszShortName: LPWSTR; // The short or friendly name - Unicode |
lpszLongName: LPWSTR // The long or formal name - Unicode |
lpszShortName : PCharAW; // The short or friendly name |
lpszLongName : PCharAW; // The long or formal name |
); |
1: ( |
lpszShortNameA: LPSTR; // The short or friendly name - ANSI |
lpszLongNameA: LPSTR // The long or formal name - ANSI |
lpszShortNameA : PAnsiChar; |
lpszLongNameA : PAnsiChar; |
); |
2 : ( |
lpszShortNameW : PWideChar; |
lpszLongNameW : PWideChar; |
); |
end; |
DPNAME = TDPName; |
LPDPNAME = PDPName; |
(* |
* TDPCredentials |
* Used to hold the user name and password of a DirectPlay user |
9882,79 → 14823,75 |
*) |
PDPCredentials = ^TDPCredentials; |
TDPCredentials = record |
TDPCredentials = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszUsername: LPWSTR; // User name of the account - Unicode |
lpszPassword: LPWSTR; // Password of the account - Unicode |
lpszDomain: LPWSTR; // Domain name of the account - Unicode |
lpszUsername: PCharAW; // User name of the account |
lpszPassword: PCharAW; // Password of the account |
lpszDomain: PCharAW; // Domain name of the account |
); |
1: ( |
lpszUsernameA: LPSTR; // User name of the account - ANSI |
lpszPasswordA: LPSTR; // Password of the account - ANSI |
lpszDomainA: LPSTR // Domain name of the account - ANSI |
lpszUsernameA: PAnsiChar; // User name of the account |
lpszPasswordA: PAnsiChar; // Password of the account |
lpszDomainA: PAnsiChar; // Domain name of the account |
); |
2 : ( |
lpszUsernameW: PWideChar; // User name of the account |
lpszPasswordW: PWideChar; // Password of the account |
lpszDomainW: PWideChar; // Domain name of the account |
); |
end; |
DPCREDENTIALS = TDPCredentials; |
LPDPCREDENTIALS = PDPCredentials; |
(* |
* DPSECURITYDESC |
* TDPSecurityDesc |
* Used to describe the security properties of a DirectPlay |
* session instance |
*) |
PDPSecurityDesc = ^TDPSecurityDesc; |
TDPSecurityDesc = record |
TDPSecurityDesc = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszSSPIProvider: LPWSTR; // SSPI provider name - Unicode |
lpszCAPIProvider: LPWSTR; // CAPI provider name - Unicode |
lpszSSPIProvider : PCharAW; // SSPI provider name |
lpszCAPIProvider : PCharAW; // CAPI provider name |
dwCAPIProviderType: DWORD; // Crypto Service Provider type |
dwEncryptionAlgorithm: DWORD; // Encryption Algorithm type |
); |
1: ( |
lpszSSPIProviderA: LPSTR; // SSPI provider name - ANSI |
lpszCAPIProviderA: LPSTR; // CAPI provider name - ANSI |
lpszSSPIProviderA : PAnsiChar; // SSPI provider name |
lpszCAPIProviderA : PAnsiChar; // CAPI provider name |
); |
2 : ( |
lpszSSPIProviderW : PWideChar; // SSPI provider name |
lpszCAPIProviderW : PWideChar; // CAPI provider name |
); |
end; |
DPSECURITYDESC = TDPSecurityDesc; |
LPDPSECURITYDESC = PDPSecurityDesc; |
(* |
* TDPAccountDesc |
* DPACCOUNTDESC |
* Used to describe a user membership account |
*) |
PDPAccountDesc = ^TDPAccountDesc; |
TDPAccountDesc = record |
TDPAccountDesc = packed record |
dwSize: DWORD; // Size of structure |
dwFlags: DWORD; // Not used. Must be zero. |
case Integer of |
0: ( |
lpszAccountID: LPWSTR; // Account identifier - Unicode |
); |
1: ( |
lpszAccountIDA: LPSTR; // Account identifier - ANSI |
); |
0 : (lpszAccountID : PCharAW); // Account identifier |
1 : (lpszAccountIDA : PAnsiChar); |
2 : (lpszAccountIDW : PWideChar); |
end; |
DPACCOUNTDESC = TDPAccountDesc; |
LPDPACCOUNTDESC = PDPAccountDesc; |
(* |
* TDPLConnection |
* Used to hold all in the informaion needed to connect |
* an application to a session or create a session |
*) |
PDPLConnection = ^TDPLConnection; |
TDPLConnection = record |
TDPLConnection = packed record |
dwSize: DWORD; // Size of this structure |
dwFlags: DWORD; // Flags specific to this structure |
lpSessionDesc: PDPSessionDesc2; // Pointer to session desc to use on connect |
9964,345 → 14901,796 |
dwAddressSize: DWORD; // Size of address data |
end; |
DPLCONNECTION = TDPLConnection; |
LPDPLCONNECTION = PDPLConnection; |
(* |
* TDPChat |
* Used to hold the a DirectPlay chat message |
*) |
PDPChat = ^TDPChat; |
TDPChat = record |
TDPChat = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0: ( |
lpszMessage: LPWSTR; // Message string - Unicode |
); |
1: ( |
lpszMessageA: LPSTR; // Message string - ANSI |
); |
0 : (lpszMessage : PCharAW); // Message string |
1 : (lpszMessageA : PAnsiChar); |
2 : (lpszMessageW : PWideChar); |
end; |
DPCHAT = TDPChat; |
LPDPCHAT = PDPChat; |
(* |
* SGBUFFER |
* TSGBuffer |
* Scatter Gather Buffer used for SendEx |
*) |
PSGBuffer = ^TSGBuffer; |
TSGBuffer = record |
len: UINT; // length of buffer data |
pData: PUChar; // pointer to buffer data |
TSGBuffer = packed record |
len: UINT; |
pData: PUCHAR; |
end; |
SGBUFFER = TSGBuffer; |
LPSGBUFFER = PSGBuffer; |
(**************************************************************************** |
* |
* Prototypes for DirectPlay callback functions |
* |
****************************************************************************) |
{ Prototypes for DirectPlay callback functions } |
{ Callback for IDirectPlay2::EnumSessions } |
TDPEnumSessionsCallback2 = function(const lpThisSD: TDPSessionDesc2; |
(* |
* Callback for IDirectPlay2::EnumSessions |
*) |
TDPEnumSessionsCallback2 = function(lpThisSD: PDPSessionDesc2; |
var lpdwTimeOut: DWORD; dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
LPDPENUMSESSIONSCALLBACK2 = TDPEnumSessionsCallback2; |
const |
(* |
* This flag is set on the EnumSessions callback dwFlags parameter when |
* the time out has occurred. There will be no session data for this |
* callback. If *lpdwTimeOut is set to a non-zero value and the |
* EnumSessionsCallback function returns TRUE then EnumSessions will |
* continue waiting until the next timeout occurs. Timeouts are in |
* milliseconds. |
*) |
DPESC_TIMEDOUT = $00000001; |
type |
TDPEnumPlayersCallback2 = function(dpId: TDPID; dwPlayerType: DWORD; |
(* |
* Callback for IDirectPlay2.EnumPlayers |
* IDirectPlay2.EnumGroups |
* IDirectPlay2.EnumGroupPlayers |
*) |
TDPEnumPlayersCallback2 = function(DPID: TDPID; dwPlayerType: DWORD; |
const lpName: TDPName; dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
LPDPENUMPLAYERSCALLBACK2 = TDPEnumPlayersCallback2; |
TDPEnumDPCallback = function(const lpguidSP: TGUID; lpSPName: LPWSTR; |
(* |
* ANSI callback for DirectPlayEnumerate |
* This callback prototype will be used if compiling |
* for ANSI strings |
*) |
TDPEnumDPCallbackA = function(const lpguidSP: TGUID; lpSPName: PAnsiChar; |
dwMajorVersion: DWORD; dwMinorVersion: DWORD; lpContext: Pointer): BOOL; stdcall; |
LPDPENUMDPCALLBACK = TDPEnumDPCallback; |
TDPEnumDPCallbackA = function(const lpguidSP: TGUID; lpSPName: LPSTR; |
(* |
* Unicode callback for DirectPlayEnumerate |
* This callback prototype will be used if compiling |
* for Unicode strings |
*) |
TDPEnumDPCallbackW = function(const lpguidSP: TGUID; lpSPName: PWideChar; |
dwMajorVersion: DWORD; dwMinorVersion: DWORD; lpContext: Pointer): BOOL; stdcall; |
LPDPENUMDPCALLBACKA = TDPEnumDPCallbackA; |
(* |
* Callback for DirectPlayEnumerate |
*) |
{$IFDEF UNICODE} |
TDPEnumDPCallback = TDPEnumDPCallbackW; |
{$ELSE} |
TDPEnumDPCallback = TDPEnumDPCallbackA; |
{$ENDIF} |
(* |
* Callback for IDirectPlay3(A/W).EnumConnections |
*) |
TDPEnumConnectionsCallback = function(const lpguidSP: TGUID; |
lpConnection: Pointer; dwConnectionSize: DWORD; const lpName: TDPName; |
dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
LPDPENUMCONNECTIONSCALLBACK = TDPEnumConnectionsCallback; |
{ API's } |
(* |
* API's |
*) |
function DirectPlayEnumerateA(lpEnumDPCallback: TDPEnumDPCallbackA; |
var |
DirectPlayEnumerate : function (lpEnumDPCallback: TDPEnumDPCallback; |
lpContext: Pointer): HResult; stdcall; |
function DirectPlayEnumerateW(lpEnumDPCallback: TDPEnumDPCallback; |
DirectPlayEnumerateA : function (lpEnumDPCallback: TDPEnumDPCallbackA; |
lpContext: Pointer): HResult; stdcall; |
function DirectPlayEnumerate(lpEnumDPCallback: TDPEnumDPCallbackA; |
DirectPlayEnumerateW : function (lpEnumDPCallback: TDPEnumDPCallbackW; |
lpContext: Pointer): HResult; stdcall; |
{ IDirectPlay2 (and IDirectPlay2A) Interface } |
(**************************************************************************** |
* |
* IDirectPlay2 (and IDirectPlay2A) Interface |
* |
****************************************************************************) |
type |
IDirectPlay2 = interface(IUnknown) |
['{2B74F7C0-9154-11CF-A9CD-00AA006886E3}'] |
// IDirectPlay2 methods |
IDirectPlay2AW = interface (IUnknown) |
(*** IDirectPlay2 methods ***) |
function AddPlayerToGroup(idGroup: TDPID; idPlayer: TDPID): HResult; stdcall; |
function Close: HResult; stdcall; |
function CreateGroup(var lpidGroup: TDPID; const lpGroupName: TDPName; |
const lpData; dwDataSize: DWORD; dwFlags: DWORD): HResult; stdcall; |
function CreatePlayer(var lpidPlayer: TDPID; const pPlayerName: TDPName; |
hEvent: THandle; const lpData; dwDataSize: DWORD; dwFliags: DWORD): HResult; stdcall; |
function CreateGroup(out lpidGroup: TDPID; lpGroupName: PDPName; |
lpData: Pointer; dwDataSize: DWORD; dwFlags: DWORD) : HResult; stdcall; |
function CreatePlayer(out lpidPlayer: TDPID; pPlayerName: PDPName; |
hEvent: THandle; lpData: Pointer; dwDataSize: DWORD; dwFlags: DWORD) : HResult; stdcall; |
function DeletePlayerFromGroup(idGroup: TDPID; idPlayer: TDPID): HResult; stdcall; |
function DestroyGroup(idGroup: TDPID): HResult; stdcall; |
function DestroyPlayer(idPlayer: TDPID): HResult; stdcall; |
function EnumGroupPlayers(idGroup: TDPID; const lpguidInstance: TGUID; |
function EnumGroupPlayers(idGroup: TDPID; lpguidInstance: PGUID; |
lpEnumPlayersCallback2: TDPEnumPlayersCallback2; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function EnumGroups(const lpguidInstance: TGUID; lpEnumPlayersCallback2: |
LPDPENUMPLAYERSCALLBACK2; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function EnumPlayers(const lpguidInstance: TGUID; lpEnumPlayersCallback2: |
LPDPENUMPLAYERSCALLBACK2; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function EnumGroups(lpguidInstance: PGUID; lpEnumPlayersCallback2: |
TDPEnumPlayersCallback2; lpContext: Pointer; dwFlags: DWORD) : HResult; stdcall; |
function EnumPlayers(lpguidInstance: PGUID; lpEnumPlayersCallback2: |
TDPEnumPlayersCallback2; lpContext: Pointer; dwFlags: DWORD) : HResult; stdcall; |
function EnumSessions(const lpsd: TDPSessionDesc2; dwTimeout: DWORD; |
lpEnumSessionsCallback2: TDPEnumSessionsCallback2; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function GetCaps(var lpDPCaps: TDPCaps; dwFlags: DWORD): HResult; stdcall; |
function GetGroupData(idGroup: TDPID; var lpData; var lpdwDataSize: DWORD; |
function GetGroupData(idGroup: TDPID; lpData: Pointer; var lpdwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function GetGroupName(idGroup: TDPID; var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
function GetGroupName(idGroup: TDPID; lpData: Pointer; var lpdwDataSize: DWORD) : |
HResult; stdcall; |
function GetMessageCount(idPlayer: TDPID; var lpdwCount: DWORD): HResult; stdcall; |
function GetPlayerAddress(idPlayer: TDPID; var lpAddress; |
function GetPlayerAddress(idPlayer: TDPID; lpAddress: Pointer; |
var lpdwAddressSize: DWORD): HResult; stdcall; |
function GetPlayerCaps(idPlayer: TDPID; var lpPlayerCaps: TDPCaps; |
dwFlags: DWORD): HResult; stdcall; |
function GetPlayerData(idPlayer: TDPID; var lpData; var lpdwDataSize: DWORD; |
function GetPlayerData(idPlayer: TDPID; lpData: Pointer; var lpdwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function GetPlayerName(idPlayer: TDPID; var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
function GetSessionDesc(var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
function GetPlayerName(idPlayer: TDPID; lpData: Pointer; var lpdwDataSize: DWORD) : HResult; stdcall; |
function GetSessionDesc(lpData: Pointer; var lpdwDataSize: DWORD) : HResult; stdcall; |
function Initialize(const lpGUID: TGUID): HResult; stdcall; |
function Open(var lpsd: TDPSessionDesc2; dwFlags: DWORD): HResult; stdcall; |
function Receive(var lpidFrom: TDPID; var lpidTo: TDPID; dwFlags: DWORD; |
var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
function Send(idFrom: TDPID; lpidTo: TDPID; dwFlags: DWORD; const lpData; |
lpData: Pointer; var lpdwDataSize: DWORD) : HResult; stdcall; |
function Send(idFrom: TDPID; lpidTo: TDPID; dwFlags: DWORD; var lpData; |
lpdwDataSize: DWORD): HResult; stdcall; |
function SetGroupData(idGroup: TDPID; const lpData; dwDataSize: DWORD; |
function SetGroupData(idGroup: TDPID; lpData: Pointer; dwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function SetGroupName(idGroup: TDPID; const lpGroupName: TDPName; |
function SetGroupName(idGroup: TDPID; lpGroupName: PDPName; |
dwFlags: DWORD): HResult; stdcall; |
function SetPlayerData(idPlayer: TDPID; const lpData; dwDataSize: DWORD; |
function SetPlayerData(idPlayer: TDPID; lpData: Pointer; dwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function SetPlayerName(idPlayer: TDPID; const lpPlayerName: TDPName; |
function SetPlayerName(idPlayer: TDPID; lpPlayerName: PDPName; |
dwFlags: DWORD): HResult; stdcall; |
function SetSessionDesc(const lpSessDesc: TDPSessionDesc2; dwFlags: DWORD): HResult; stdcall; |
function SetSessionDesc(var lpSessDesc: TDPSessionDesc2; dwFlags: DWORD) : |
HResult; stdcall; |
end; |
IDirectPlay2A = interface(IDirectPlay2) |
['{9D460580-A822-11CF-960C-0080C7534E82}'] |
IDirectPlay2W = interface (IDirectPlay2AW) |
['{2B74F7C0-9154-11CF-A9CD-00AA006886E3}'] |
end; |
IDirectPlay2A = interface (IDirectPlay2AW) |
['{9d460580-a822-11cf-960c-0080c7534e82}'] |
end; |
{ IDirectPlay3 (and IDirectPlay3A) Interface } |
{$IFDEF UNICODE} |
IDirectPlay2 = IDirectPlay2W; |
{$ELSE} |
IDirectPlay2 = IDirectPlay2A; |
{$ENDIF} |
IDirectPlay3 = interface(IDirectPlay2) |
['{133EFE40-32DC-11D0-9CFB-00A0C90A43CB}'] |
// IDirectPlay3 methods |
(**************************************************************************** |
* |
* IDirectPlay3 (and IDirectPlay3A) Interface |
* |
****************************************************************************) |
IDirectPlay3AW = interface (IDirectPlay2AW) |
(*** IDirectPlay3 methods ***) |
function AddGroupToGroup(idParentGroup: TDPID; idGroup: TDPID): HResult; stdcall; |
function CreateGroupInGroup(idParentGroup: TDPID; var lpidGroup: TDPID; |
var lpGroupName: TDPName; const lpData; dwDataSize: DWORD; |
lpGroupName: PDPName; lpData: Pointer; dwDataSize: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function DeleteGroupFromGroup(idParentGroup: TDPID; idGroup: TDPID): HResult; stdcall; |
function EnumConnections(const lpguidApplication: TGUID; |
function EnumConnections(lpguidApplication: PGUID; |
lpEnumCallback: TDPEnumConnectionsCallback; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function EnumGroupsInGroup(idGroup: TDPID; const lpguidInstance: TGUID; |
function EnumGroupsInGroup(idGroup: TDPID; lpguidInstance: PGUID; |
lpEnumPlayersCallback2: TDPEnumPlayersCallback2; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function GetGroupConnectionSettings(dwFlags: DWORD; idGroup: TDPID; |
var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
lpData: Pointer; var lpdwDataSize: DWORD) : HResult; stdcall; |
function InitializeConnection(lpConnection: Pointer; dwFlags: DWORD): HResult; stdcall; |
function SecureOpen(const lpsd: TDPSessionDesc2; dwFlags: DWORD; |
const lpSecurity: TDPSecurityDesc; const lpCredentials: TDPCredentials): HResult; stdcall; |
function SecureOpen(var lpsd: TDPSessionDesc2; dwFlags: DWORD; |
var lpSecurity: TDPSecurityDesc; var lpCredentials: TDPCredentials) : HResult; stdcall; |
function SendChatMessage(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; |
const lpChatMessage: TDPChat): HResult; stdcall; |
var lpChatMessage: TDPChat) : HResult; stdcall; |
function SetGroupConnectionSettings(dwFlags: DWORD; idGroup: TDPID; |
const lpConnection: TDPLConnection): HResult; stdcall; |
var lpConnection: TDPLConnection) : HResult; stdcall; |
function StartSession(dwFlags: DWORD; idGroup: TDPID): HResult; stdcall; |
function GetGroupFlags(idGroup: TDPID; var lpdwFlags: DWORD): HResult; stdcall; |
function GetGroupParent(idGroup: TDPID; var lpidParent: TDPID): HResult; stdcall; |
function GetGroupFlags(idGroup: TDPID; out lpdwFlags: DWORD) : HResult; stdcall; |
function GetGroupParent(idGroup: TDPID; out lpidParent: TDPID) : HResult; stdcall; |
function GetPlayerAccount(idPlayer: TDPID; dwFlags: DWORD; var lpData; |
var lpdwDataSize: DWORD): HResult; stdcall; |
function GetPlayerFlags(idPlayer: TDPID; var lpdwFlags: DWORD): HResult; stdcall; |
function GetPlayerFlags(idPlayer: TDPID; out lpdwFlags: DWORD) : HResult; stdcall; |
end; |
IDirectPlay3A = interface(IDirectPlay3) |
['{133EFE41-32DC-11D0-9CFB-00A0C90A43CB}'] |
IDirectPlay3W = interface (IDirectPlay3AW) |
['{133EFE40-32DC-11D0-9CFB-00A0C90A43CB}'] |
end; |
IDirectPlay3A = interface (IDirectPlay3AW) |
['{133efe41-32dc-11d0-9cfb-00a0c90a43cb}'] |
end; |
{ IDirectPlay4 (and IDirectPlay4A) Interface } |
{$IFDEF UNICODE} |
IDirectPlay3 = IDirectPlay3W; |
{$ELSE} |
IDirectPlay3 = IDirectPlay3A; |
{$ENDIF} |
IDirectPlay4 = interface(IDirectPlay3) |
['{0AB1C530-4745-11D1-A7A1-0000F803ABFC}'] |
// IDirectPlay4 methods |
function GetGroupOwner(idGroup: TDPID; var idOwner: TDPID): HResult; stdcall; |
(**************************************************************************** |
* |
* IDirectPlay4 (and IDirectPlay4A) Interface |
* |
****************************************************************************) |
IDirectPlay4AW = interface (IDirectPlay3AW) |
(*** IDirectPlay4 methods ***) |
function GetGroupOwner(idGroup: TDPID; out idOwner: TDPID) : HResult; stdcall; |
function SetGroupOwner(idGroup: TDPID; idOwner: TDPID): HResult; stdcall; |
function SendEx(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; const pData; |
function SendEx(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; lpData: Pointer; |
dwDataSize: DWORD; dwPriority: DWORD; dwTimeout: DWORD; |
lpContext: Pointer; lpdwMsgId: PDWORD): HResult; stdcall; |
function GetMessageQueue(idFrom: TDPID; idTo: TDPID; dwFlags: DWORD; |
var lpdwNumMsgs: DWORD; var lpdwNumBytes: DWORD): HResult; stdcall; |
lpdwNumMsgs: PDWORD; lpdwNumBytes: PDWORD) : HResult; stdcall; |
function CancelMessage(dwMessageID: DWORD; dwFlags: DWORD): HResult; stdcall; |
function CancelPriority(dwMinPriority: DWORD; dwMaxPriority: DWORD; dwFlags: DWORD): HResult; stdcall; |
end; |
IDirectPlay4A = interface(IDirectPlay4) |
['{0AB1C531-4745-11D1-A7A1-0000F803ABFC}'] |
IDirectPlay4W = interface (IDirectPlay4AW) |
['{0ab1c530-4745-11D1-a7a1-0000f803abfc}'] |
end; |
IDirectPlay4A = interface (IDirectPlay4AW) |
['{0ab1c531-4745-11D1-a7a1-0000f803abfc}'] |
end; |
{$IFDEF UNICODE} |
IDirectPlay4 = IDirectPlay4W; |
{$ELSE} |
IDirectPlay4 = IDirectPlay4A; |
{$ENDIF} |
const |
{ EnumConnections API flags } |
(**************************************************************************** |
* |
* EnumConnections API flags |
* |
****************************************************************************) |
(* |
* Enumerate Service Providers |
*) |
DPCONNECTION_DIRECTPLAY = $00000001; |
(* |
* Enumerate Lobby Providers |
*) |
DPCONNECTION_DIRECTPLAYLOBBY = $00000002; |
{ EnumPlayers API flags } |
(**************************************************************************** |
* |
* EnumPlayers API flags |
* |
****************************************************************************) |
(* |
* Enumerate all players in the current session |
*) |
DPENUMPLAYERS_ALL = $00000000; |
DPENUMGROUPS_ALL = DPENUMPLAYERS_ALL; |
(* |
* Enumerate only local (created by this application) players |
* or groups |
*) |
DPENUMPLAYERS_LOCAL = $00000008; |
DPENUMGROUPS_LOCAL = DPENUMPLAYERS_LOCAL; |
(* |
* Enumerate only remote (non-local) players |
* or groups |
*) |
DPENUMPLAYERS_REMOTE = $00000010; |
DPENUMGROUPS_REMOTE = DPENUMPLAYERS_REMOTE; |
(* |
* Enumerate groups along with the players |
*) |
DPENUMPLAYERS_GROUP = $00000020; |
(* |
* Enumerate players or groups in another session |
* (must supply lpguidInstance) |
*) |
DPENUMPLAYERS_SESSION = $00000080; |
DPENUMGROUPS_SESSION = DPENUMPLAYERS_SESSION; |
(* |
* Enumerate server players |
*) |
DPENUMPLAYERS_SERVERPLAYER = $00000100; |
(* |
* Enumerate spectator players |
*) |
DPENUMPLAYERS_SPECTATOR = $00000200; |
(* |
* Enumerate shortcut groups |
*) |
DPENUMGROUPS_SHORTCUT = $00000400; |
(* |
* Enumerate staging area groups |
*) |
DPENUMGROUPS_STAGINGAREA = $00000800; |
(* |
* Enumerate hidden groups |
*) |
DPENUMGROUPS_HIDDEN = $00001000; |
(* |
* Enumerate the group's owner |
*) |
DPENUMPLAYERS_OWNER = $00002000; |
{ CreatePlayer API flags } |
(**************************************************************************** |
* |
* CreatePlayer API flags |
* |
****************************************************************************) |
(* |
* This flag indicates that this player should be designated |
* the server player. The app should specify this at CreatePlayer. |
*) |
DPPLAYER_SERVERPLAYER = DPENUMPLAYERS_SERVERPLAYER; |
(* |
* This flag indicates that this player should be designated |
* a spectator. The app should specify this at CreatePlayer. |
*) |
DPPLAYER_SPECTATOR = DPENUMPLAYERS_SPECTATOR; |
(* |
* This flag indicates that this player was created locally. |
* (returned from GetPlayerFlags) |
*) |
DPPLAYER_LOCAL = DPENUMPLAYERS_LOCAL; |
(* |
* This flag indicates that this player is the group's owner |
* (Only returned in EnumGroupPlayers) |
*) |
DPPLAYER_OWNER = DPENUMPLAYERS_OWNER; |
{ CreateGroup API flags } |
(**************************************************************************** |
* |
* CreateGroup API flags |
* |
****************************************************************************) |
(* |
* This flag indicates that the StartSession can be called on the group. |
* The app should specify this at CreateGroup, or CreateGroupInGroup. |
*) |
DPGROUP_STAGINGAREA = DPENUMGROUPS_STAGINGAREA; |
(* |
* This flag indicates that this group was created locally. |
* (returned from GetGroupFlags) |
*) |
DPGROUP_LOCAL = DPENUMGROUPS_LOCAL; |
(* |
* This flag indicates that this group was created hidden. |
*) |
DPGROUP_HIDDEN = DPENUMGROUPS_HIDDEN; |
{ EnumSessions API flags } |
(**************************************************************************** |
* |
* EnumSessions API flags |
* |
****************************************************************************) |
(* |
* Enumerate sessions which can be joined |
*) |
DPENUMSESSIONS_AVAILABLE = $00000001; |
(* |
* Enumerate all sessions even if they can't be joined. |
*) |
DPENUMSESSIONS_ALL = $00000002; |
(* |
* Start an asynchronous enum sessions |
*) |
DPENUMSESSIONS_ASYNC = $00000010; |
(* |
* Stop an asynchronous enum sessions |
*) |
DPENUMSESSIONS_STOPASYNC = $00000020; |
(* |
* Enumerate sessions even if they require a password |
*) |
DPENUMSESSIONS_PASSWORDREQUIRED = $00000040; |
(* |
* Return status about progress of enumeration instead of |
* showing any status dialogs. |
*) |
DPENUMSESSIONS_RETURNSTATUS = $00000080; |
{ GetCaps and GetPlayerCaps API flags } |
(**************************************************************************** |
* |
* GetCaps and GetPlayerCaps API flags |
* |
****************************************************************************) |
(* |
* The latency returned should be for guaranteed message sending. |
* Default is non-guaranteed messaging. |
*) |
DPGETCAPS_GUARANTEED = $00000001; |
{ GetGroupData, GetPlayerData API flags } |
(**************************************************************************** |
* |
* GetGroupData, GetPlayerData API flags |
* Remote and local Group/Player data is maintained separately. |
* Default is DPGET_REMOTE. |
* |
****************************************************************************) |
(* |
* Get the remote data (set by any DirectPlay object in |
* the session using DPSET_REMOTE) |
*) |
DPGET_REMOTE = $00000000; |
(* |
* Get the local data (set by this DirectPlay object |
* using DPSET_LOCAL) |
*) |
DPGET_LOCAL = $00000001; |
{ Open API flags } |
(**************************************************************************** |
* |
* Open API flags |
* |
****************************************************************************) |
(* |
* Join the session that is described by the DPSESSIONDESC2 structure |
*) |
DPOPEN_JOIN = $00000001; |
(* |
* Create a new session as described by the DPSESSIONDESC2 structure |
*) |
DPOPEN_CREATE = $00000002; |
(* |
* Return status about progress of open instead of showing |
* any status dialogs. |
*) |
DPOPEN_RETURNSTATUS = DPENUMSESSIONS_RETURNSTATUS; |
{ TDPLConnection flags } |
(**************************************************************************** |
* |
* DPLCONNECTION flags |
* |
****************************************************************************) |
(* |
* This application should create a new session as |
* described by the DPSESIONDESC structure |
*) |
DPLCONNECTION_CREATESESSION = DPOPEN_CREATE; |
(* |
* This application should join the session described by |
* the DPSESIONDESC structure with the lpAddress data |
*) |
DPLCONNECTION_JOINSESSION = DPOPEN_JOIN; |
{ Receive API flags } |
(**************************************************************************** |
* |
* Receive API flags |
* Default is DPRECEIVE_ALL |
* |
****************************************************************************) |
(* |
* Get the first message in the queue |
*) |
DPRECEIVE_ALL = $00000001; |
(* |
* Get the first message in the queue directed to a specific player |
*) |
DPRECEIVE_TOPLAYER = $00000002; |
(* |
* Get the first message in the queue from a specific player |
*) |
DPRECEIVE_FROMPLAYER = $00000004; |
(* |
* Get the message but don't remove it from the queue |
*) |
DPRECEIVE_PEEK = $00000008; |
{ Send API flags } |
(**************************************************************************** |
* |
* Send API flags |
* |
****************************************************************************) |
(* |
* Send the message using a guaranteed send method. |
* Default is non-guaranteed. |
*) |
DPSEND_GUARANTEED = $00000001; |
(* |
* This flag is obsolete. It is ignored by DirectPlay |
*) |
DPSEND_HIGHPRIORITY = $00000002; |
(* |
* This flag is obsolete. It is ignored by DirectPlay |
*) |
DPSEND_OPENSTREAM = $00000008; |
(* |
* This flag is obsolete. It is ignored by DirectPlay |
*) |
DPSEND_CLOSESTREAM = $00000010; |
(* |
* Send the message digitally signed to ensure authenticity. |
*) |
DPSEND_SIGNED = $00000020; |
(* |
* Send the message with encryption to ensure privacy. |
*) |
DPSEND_ENCRYPTED = $00000040; |
(* |
* The message is a lobby system message |
*) |
DPSEND_LOBBYSYSTEMMESSAGE = $00000080; |
(* |
* andyco - added this so we can make addforward async. |
* needs to be sanitized when we add / expose full async |
* support. 8/3/97. |
*) |
DPSEND_ASYNC = $00000200; |
(* |
* When a message is completed, don't tell me. |
* by default the application is notified with a system message. |
*) |
DPSEND_NOSENDCOMPLETEMSG = $00000400; |
(* |
* Maximum priority for sends available to applications |
*) |
DPSEND_MAX_PRI = $0000FFFF; |
DPSEND_MAX_PRIORITY = DPSEND_MAX_PRI; |
{ SetGroupData, SetGroupName, SetPlayerData, SetPlayerName, |
SetSessionDesc API flags. } |
(**************************************************************************** |
* |
* SetGroupData, SetGroupName, SetPlayerData, SetPlayerName, |
* SetSessionDesc API flags. |
* Default is DPSET_REMOTE. |
* |
****************************************************************************) |
(* |
* Propagate the data to all players in the session |
*) |
DPSET_REMOTE = $00000000; |
(* |
* Do not propagate the data to other players |
*) |
DPSET_LOCAL = $00000001; |
(* |
* Used with DPSET_REMOTE, use guaranteed message send to |
* propagate the data |
*) |
DPSET_GUARANTEED = $00000002; |
{ GetMessageQueue API flags. } |
(**************************************************************************** |
* |
* GetMessageQueue API flags. |
* Default is DPMESSAGEQUEUE_SEND |
* |
****************************************************************************) |
DPMESSAGEQUEUE_SEND = $00000001; // Default |
DPMESSAGEQUEUE_RECEIVE = $00000002; // Default |
(* |
* Get Send Queue - requires Service Provider Support |
*) |
DPMESSAGEQUEUE_SEND = $00000001; |
{ Connect API flags } |
(* |
* Get Receive Queue |
*) |
DPMESSAGEQUEUE_RECEIVE = $00000002; |
(**************************************************************************** |
* |
* Connect API flags |
* |
****************************************************************************) |
(* |
* Start an asynchronous connect which returns status codes |
*) |
DPCONNECT_RETURNSTATUS = DPENUMSESSIONS_RETURNSTATUS; |
{ DirectPlay system messages and message data structures } |
(**************************************************************************** |
* |
* DirectPlay system messages and message data structures |
* |
* All system message come 'From' player DPID_SYSMSG. To determine what type |
* of message it is, cast the lpData from Receive to TDPMsg_Generic and check |
* the dwType member against one of the following DPSYS_xxx constants. Once |
* a match is found, cast the lpData to the corresponding of the DPMSG_xxx |
* structures to access the data of the message. |
* |
****************************************************************************) |
(* |
* A new player or group has been created in the session |
* Use TDPMsg_CreatePlayerOrGroup. Check dwPlayerType to see if it |
* is a player or a group. |
*) |
DPSYS_CREATEPLAYERORGROUP = $0003; |
(* |
* A player has been deleted from the session |
* Use TDPMsg_DestroyPlayerOrGroup |
*) |
DPSYS_DESTROYPLAYERORGROUP = $0005; |
(* |
* A player has been added to a group |
* Use DPMSG_ADDPLAYERTOGROUP |
*) |
DPSYS_ADDPLAYERTOGROUP = $0007; |
(* |
* A player has been removed from a group |
* Use DPMSG_DELETEPLAYERFROMGROUP |
*) |
DPSYS_DELETEPLAYERFROMGROUP = $0021; |
(* |
* This DirectPlay object lost its connection with all the |
* other players in the session. |
* Use DPMSG_SESSIONLOST. |
*) |
DPSYS_SESSIONLOST = $0031; |
(* |
* The current host has left the session. |
* This DirectPlay object is now the host. |
* Use DPMSG_HOST. |
*) |
DPSYS_HOST = $0101; |
(* |
* The remote data associated with a player or |
* group has changed. Check dwPlayerType to see |
* if it is a player or a group |
* Use DPMSG_SETPLAYERORGROUPDATA |
*) |
DPSYS_SETPLAYERORGROUPDATA = $0102; |
(* |
* The name of a player or group has changed. |
* Check dwPlayerType to see if it is a player |
* or a group. |
* Use TDPMsg_SetPlayerOrGroupName |
*) |
DPSYS_SETPLAYERORGROUPNAME = $0103; |
(* |
* The session description has changed. |
* Use DPMSG_SETSESSIONDESC |
*) |
DPSYS_SETSESSIONDESC = $0104; |
(* |
* A group has been added to a group |
* Use TDPMsg_AddGroupToGroup |
*) |
DPSYS_ADDGROUPTOGROUP = $0105; |
(* |
* A group has been removed from a group |
* Use DPMsg_DeleteGroupFromGroup |
*) |
DPSYS_DELETEGROUPFROMGROUP = $0106; |
(* |
* A secure player-player message has arrived. |
* Use DPMSG_SECUREMESSAGE |
*) |
DPSYS_SECUREMESSAGE = $0107; |
(* |
* Start a new session. |
* Use DPMSG_STARTSESSION |
*) |
DPSYS_STARTSESSION = $0108; |
(* |
* A chat message has arrived |
* Use DPMSG_CHAT |
*) |
DPSYS_CHAT = $0109; |
(* |
* The owner of a group has changed |
* Use DPMSG_SETGROUPOWNER |
*) |
DPSYS_SETGROUPOWNER = $010A; |
DPSYS_SENDCOMPLETE = $010d; |
(* |
* An async send has finished, failed or been cancelled |
* Use DPMSG_SENDCOMPLETE |
*) |
DPSYS_SENDCOMPLETE = $010D; |
{ Used in the dwPlayerType field to indicate if it applies to a group or a player} |
(* |
* Used in the dwPlayerType field to indicate if it applies to a group |
* or a player |
*) |
DPPLAYERTYPE_GROUP = $00000000; |
DPPLAYERTYPE_PLAYER = $00000001; |
{ TDPMsg_Generic } |
type |
(* |
* TDPMsg_Generic |
* Generic message structure used to identify the message type. |
*) |
PDPMsg_Generic = ^TDPMsg_Generic; |
TDPMsg_Generic = record |
TDPMsg_Generic = packed record |
dwType: DWORD; // Message type |
end; |
DPMSG_GENERIC = TDPMsg_Generic; |
LPDPMSG_GENERIC = PDPMsg_Generic; |
{ TDPMsg_CreatePlayerOrGroup } |
(* |
* TDPMsg_CreatePlayerOrGroup |
* System message generated when a new player or group |
* created in the session with information about it. |
*) |
PDPMsg_CreatePlayerOrGroup = ^TDPMsg_CreatePlayerOrGroup; |
TDPMsg_CreatePlayerOrGroup = record |
TDPMsg_CreatePlayerOrGroup = packed record |
dwType: DWORD; // Message type |
dwPlayerType: DWORD; // Is it a player or group |
dpId: TDPID; // ID of the player or group |
DPID: TDPID; // ID of the player or group |
dwCurrentPlayers: DWORD; // current # players & groups in session |
lpData: Pointer; // pointer to remote data |
dwDataSize: DWORD; // size of remote data |
10313,16 → 15701,16 |
dwFlags: DWORD; // player or group flags |
end; |
DPMSG_CREATEPLAYERORGROUP = TDPMsg_CreatePlayerOrGroup; |
LPDPMSG_CREATEPLAYERORGROUP = PDPMsg_CreatePlayerOrGroup; |
{ TDPMsg_DestroyPlayerOrGroup } |
(* |
* TDPMsg_DestroyPlayerOrGroup |
* System message generated when a player or group is being |
* destroyed in the session with information about it. |
*) |
PDPMsg_DestroyPlayerOrGroup = ^TDPMsg_DestroyPlayerOrGroup; |
TDPMsg_DestroyPlayerOrGroup = record |
TDPMsg_DestroyPlayerOrGroup = packed record |
dwType: DWORD; // Message type |
dwPlayerType: DWORD; // Is it a player or group |
dpId: TDPID; // player ID being deleted |
DPID: TDPID; // player ID being deleted |
lpLocalData: Pointer; // copy of players local data |
dwLocalDataSize: DWORD; // sizeof local data |
lpRemoteData: Pointer; // copy of players remote data |
10334,107 → 15722,106 |
dwFlags: DWORD; // player or group flags |
end; |
DPMSG_DESTROYPLAYERORGROUP = TDPMsg_DestroyPlayerOrGroup; |
LPDPMSG_DESTROYPLAYERORGROUP = PDPMsg_DestroyPlayerOrGroup; |
{ TDPMsg_AddPlayerOrGroup } |
PDPMsg_AddPlayerOrGroup = ^TDPMsg_AddPlayerOrGroup; |
TDPMsg_AddPlayerOrGroup = record |
(* |
* DPMSG_ADDPLAYERTOGROUP |
* System message generated when a player is being added |
* to a group. |
*) |
PDPMsg_AddPlayerToGroup = ^TDPMsg_AddPlayerToGroup; |
TDPMsg_AddPlayerToGroup = packed record |
dwType: DWORD; // Message type |
dpIdGroup: TDPID; // group ID being added to |
dpIdPlayer: TDPID; // player ID being added |
end; |
DPMSG_ADDPLAYERTOGROUP = TDPMsg_AddPlayerOrGroup; |
LPDPMSG_ADDPLAYERTOGROUP = PDPMsg_AddPlayerOrGroup; |
(* |
* DPMSG_DELETEPLAYERFROMGROUP |
* System message generated when a player is being |
* removed from a group |
*) |
PDPMsg_DeletePlayerFromGroup = ^TDPMsg_DeletePlayerFromGroup; |
TDPMsg_DeletePlayerFromGroup = TDPMsg_AddPlayerToGroup; |
{ TDPMsg_DeletePlayerFromGroup } |
TDPMsg_DeletePlayerFromGroup = TDPMsg_AddPlayerOrGroup; |
PDPMsg_DeletePlayerFromGroup = PDPMsg_AddPlayerOrGroup; |
DPMSG_DELETEPLAYERFROMGROUP = TDPMsg_DeletePlayerFromGroup; |
LPDPMSG_DELETEPLAYERFROMGROUP = PDPMsg_DeletePlayerFromGroup; |
{ TDPMsg_AddGroupToGroup } |
(* |
* TDPMsg_AddGroupToGroup |
* System message generated when a group is being added |
* to a group. |
*) |
PDPMsg_AddGroupToGroup = ^TDPMsg_AddGroupToGroup; |
TDPMsg_AddGroupToGroup = record |
TDPMsg_AddGroupToGroup = packed record |
dwType: DWORD; // Message type |
dpIdParentGroup: TDPID; // group ID being added to |
dpIdGroup: TDPID; // group ID being added |
end; |
DPMSG_ADDGROUPTOGROUP = TDPMsg_AddGroupToGroup; |
LPDPMSG_ADDGROUPTOGROUP = PDPMsg_AddGroupToGroup; |
{ TDPMsg_DeleteGroupFromGroup } |
(* |
* DPMsg_DeleteGroupFromGroup |
* System message generated when a GROUP is being |
* removed from a group |
*) |
PDPMsg_DeleteGroupFromGroup = ^TDPMsg_DeleteGroupFromGroup; |
TDPMsg_DeleteGroupFromGroup = TDPMsg_AddGroupToGroup; |
PDPMsg_DeleteGroupFromGroup = PDPMsg_AddGroupToGroup; |
DPMSG_DELETEGROUPFROMGROUP = TDPMsg_DeleteGroupFromGroup; |
LPDPMSG_DELETEGROUPFROMGROUP = PDPMsg_DeleteGroupFromGroup; |
{ TDPMsg_SetPlayerOrGroupData } |
(* |
* DPMSG_SETPLAYERORGROUPDATA |
* System message generated when remote data for a player or |
* group has changed. |
*) |
PDPMsg_SetPlayerOrGroupData = ^TDPMsg_SetPlayerOrGroupData; |
TDPMsg_SetPlayerOrGroupData = record |
TDPMsg_SetPlayerOrGroupData = packed record |
dwType: DWORD; // Message type |
dwPlayerType: DWORD; // Is it a player or group |
dpId: TDPID; // ID of player or group |
DPID: TDPID; // ID of player or group |
lpData: Pointer; // pointer to remote data |
dwDataSize: DWORD; // size of remote data |
end; |
DPMSG_SETPLAYERORGROUPDATA = TDPMsg_SetPlayerOrGroupData; |
LPDPMSG_SETPLAYERORGROUPDATA = PDPMsg_SetPlayerOrGroupData; |
{ TDPMsg_SetPlayerOrGroupName } |
(* |
* DPMSG_SETPLAYERORGROUPNAME |
* System message generated when the name of a player or |
* group has changed. |
*) |
PDPMsg_SetPlayerOrGroupName = ^TDPMsg_SetPlayerOrGroupName; |
TDPMsg_SetPlayerOrGroupName = record |
TDPMsg_SetPlayerOrGroupName = packed record |
dwType: DWORD; // Message type |
dwPlayerType: DWORD; // Is it a player or group |
dpId: TDPID; // ID of player or group |
DPID: TDPID; // ID of player or group |
dpnName: TDPName; // structure with new name info |
end; |
DPMSG_SETPLAYERORGROUPNAME = TDPMsg_SetPlayerOrGroupName; |
LPDPMSG_SETPLAYERORGROUPNAME = PDPMsg_SetPlayerOrGroupName; |
{ TDPMsg_SetSessionDesc } |
(* |
* DPMSG_SETSESSIONDESC |
* System message generated when session desc has changed |
*) |
PDPMsg_SetSessionDesc = ^TDPMsg_SetSessionDesc; |
TDPMsg_SetSessionDesc = record |
TDPMsg_SetSessionDesc = packed record |
dwType: DWORD; // Message type |
dpDesc: TDPSessionDesc2; // Session desc |
end; |
DPMSG_SETSESSIONDESC = TDPMsg_SetSessionDesc; |
LPDPMSG_SETSESSIONDESC = PDPMsg_SetSessionDesc; |
{ TDPMsg_Host } |
(* |
* DPMSG_HOST |
* System message generated when the host has migrated to this |
* DirectPlay object. |
* |
*) |
PDPMsg_Host = ^TDPMsg_Host; |
TDPMsg_Host = TDPMsg_Generic; |
DPMSG_HOST = TDPMsg_Host; |
LPDPMSG_HOST = PDPMsg_Host; |
{ TDPMsg_SessionLost } |
(* |
* DPMSG_SESSIONLOST |
* System message generated when the connection to the session is lost. |
* |
*) |
PDPMsg_SessionLost = ^TDPMsg_SessionLost; |
TDPMsg_SessionLost = TDPMsg_Generic; |
DPMSG_SESSIONLOST = TDPMsg_SessionLost; |
LPDPMSG_SESSIONLOST = PDPMsg_SessionLost; |
{ TDPMsg_SecureMessage } |
(* |
* DPMSG_SECUREMESSAGE |
* System message generated when a player requests a secure send |
*) |
PDPMsg_SecureMessage = ^TDPMsg_SecureMessage; |
TDPMsg_SecureMessage = record |
TDPMsg_SecureMessage = packed record |
dwType: DWORD; // Message Type |
dwFlags: DWORD; // Signed/Encrypted |
dpIdFrom: TDPID; // ID of Sending Player |
10442,24 → 15829,23 |
dwDataSize: DWORD; // Size of player message |
end; |
DPMSG_SECUREMESSAGE = TDPMsg_SecureMessage; |
LPDPMSG_SECUREMESSAGE = PDPMsg_SecureMessage; |
{ TDPMsg_StartSession } |
(* |
* DPMSG_STARTSESSION |
* System message containing all information required to |
* start a new session |
*) |
PDPMsg_StartSession = ^TDPMsg_StartSession; |
TDPMsg_StartSession = record |
TDPMsg_StartSession = packed record |
dwType: DWORD; // Message type |
lpConn: PDPLConnection; // TDPLConnection structure |
end; |
DPMSG_STARTSESSION = TDPMsg_StartSession; |
LPDPMSG_STARTSESSION = PDPMsg_StartSession; |
{ TDPMsg_Chat } |
(* |
* DPMSG_CHAT |
* System message containing a chat message |
*) |
PDPMsg_Chat = ^TDPMsg_Chat; |
TDPMsg_Chat = record |
TDPMsg_Chat = packed record |
dwType: DWORD; // Message type |
dwFlags: DWORD; // Message flags |
idFromPlayer: TDPID; // ID of the Sending Player |
10468,13 → 15854,12 |
lpChat: PDPChat; // Pointer to a structure containing the chat message |
end; |
DPMSG_CHAT = TDPMsg_Chat; |
LPDPMSG_CHAT = PDPMsg_Chat; |
{ TDPMsg_SetGroupOwner } |
(* |
* DPMSG_SETGROUPOWNER |
* System message generated when the owner of a group has changed |
*) |
PDPMsg_SetGroupOwner = ^TDPMsg_SetGroupOwner; |
TDPMsg_SetGroupOwner = record |
TDPMsg_SetGroupOwner = packed record |
dwType: DWORD; // Message type |
idGroup: TDPID; // ID of the group |
idNewOwner: TDPID; // ID of the player that is the new owner |
10481,13 → 15866,15 |
idOldOwner: TDPID; // ID of the player that used to be the owner |
end; |
DPMSG_SETGROUPOWNER = TDPMsg_SetGroupOwner; |
LPDPMSG_SETGROUPOWNER = PDPMsg_SetGroupOwner; |
{ TDPMsg_SendComplete } |
(* |
* DPMSG_SENDCOMPLETE |
* System message generated when finished with an Async Send message |
* |
* NOTE SENDPARMS has an overlay for DPMSG_SENDCOMPLETE, don't |
* change this message w/o changing SENDPARMS. |
*) |
PDPMsg_SendComplete= ^TDPMsg_SendComplete; |
TDPMsg_SendComplete = record |
TDPMsg_SendComplete = packed record |
dwType: DWORD; // Message type |
idFrom: TDPID; |
idTo: TDPID; |
10500,84 → 15887,98 |
dwSendTime: DWORD; |
end; |
DPMSG_SENDCOMPLETE = TDPMsg_SendComplete; |
LPDPMSG_SENDCOMPLETE = PDPMsg_SendComplete; |
{ DIRECTPLAY ERRORS } |
(**************************************************************************** |
* |
* DIRECTPLAY ERRORS |
* |
* Errors are represented by negative values and cannot be combined. |
* |
****************************************************************************) |
const |
DP_OK = HResult(S_OK); |
DPERR_ALREADYINITIALIZED = HResult($88770000 + 5); |
DPERR_ACCESSDENIED = HResult($88770000 + 10); |
DPERR_ACTIVEPLAYERS = HResult($88770000 + 20); |
DPERR_BUFFERTOOSMALL = HResult($88770000 + 30); |
DPERR_CANTADDPLAYER = HResult($88770000 + 40); |
DPERR_CANTCREATEGROUP = HResult($88770000 + 50); |
DPERR_CANTCREATEPLAYER = HResult($88770000 + 60); |
DPERR_CANTCREATESESSION = HResult($88770000 + 70); |
DPERR_CAPSNOTAVAILABLEYET = HResult($88770000 + 80); |
DPERR_EXCEPTION = HResult($88770000 + 90); |
DPERR_GENERIC = HResult(E_FAIL); |
DPERR_INVALIDFLAGS = HResult($88770000 + 120); |
DPERR_INVALIDOBJECT = HResult($88770000 + 130); |
DPERR_INVALIDPARAM = HResult(E_INVALIDARG); |
DPERR_INVALIDPARAMS = HResult(DPERR_INVALIDPARAM); |
DPERR_INVALIDPLAYER = HResult($88770000 + 150); |
DPERR_INVALIDGROUP = HResult($88770000 + 155); |
DPERR_NOCAPS = HResult($88770000 + 160); |
DPERR_NOCONNECTION = HResult($88770000 + 170); |
DPERR_NOMEMORY = HResult(E_OUTOFMEMORY); |
DPERR_OUTOFMEMORY = HResult(DPERR_NOMEMORY); |
DPERR_NOMESSAGES = HResult($88770000 + 190); |
DPERR_NONAMESERVERFOUND = HResult($88770000 + 200); |
DPERR_NOPLAYERS = HResult($88770000 + 210); |
DPERR_NOSESSIONS = HResult($88770000 + 220); |
DPERR_PENDING = HResult(E_PENDING); |
DPERR_SENDTOOBIG = HResult($88770000 + 230); |
DPERR_TIMEOUT = HResult($88770000 + 240); |
DPERR_UNAVAILABLE = HResult($88770000 + 250); |
DPERR_UNSUPPORTED = HResult(E_NOTIMPL); |
DPERR_BUSY = HResult($88770000 + 270); |
DPERR_USERCANCEL = HResult($88770000 + 280); |
DPERR_NOINTERFACE = HResult(E_NOINTERFACE); |
DPERR_CANNOTCREATESERVER = HResult($88770000 + 290); |
DPERR_PLAYERLOST = HResult($88770000 + 300); |
DPERR_SESSIONLOST = HResult($88770000 + 310); |
DPERR_UNINITIALIZED = HResult($88770000 + 320); |
DPERR_NONEWPLAYERS = HResult($88770000 + 330); |
DPERR_INVALIDPASSWORD = HResult($88770000 + 340); |
DPERR_CONNECTING = HResult($88770000 + 350); |
DPERR_CONNECTIONLOST = HResult($88770000 + 360); |
DPERR_UNKNOWNMESSAGE = HResult($88770000 + 370); |
DPERR_CANCELFAILED = HResult($88770000 + 380); |
DPERR_INVALIDPRIORITY = HResult($88770000 + 390); |
DPERR_NOTHANDLED = HResult($88770000 + 400); |
DPERR_CANCELLED = HResult($88770000 + 410); |
DPERR_ABORTED = HResult($88770000 + 420); |
DPERR_BUFFERTOOLARGE = HResult($88770000 + 1000); |
DPERR_CANTCREATEPROCESS = HResult($88770000 + 1010); |
DPERR_APPNOTSTARTED = HResult($88770000 + 1020); |
DPERR_INVALIDINTERFACE = HResult($88770000 + 1030); |
DPERR_NOSERVICEPROVIDER = HResult($88770000 + 1040); |
DPERR_UNKNOWNAPPLICATION = HResult($88770000 + 1050); |
DPERR_NOTLOBBIED = HResult($88770000 + 1070); |
DPERR_SERVICEPROVIDERLOADED = HResult($88770000 + 1080); |
DPERR_ALREADYREGISTERED = HResult($88770000 + 1090); |
DPERR_NOTREGISTERED = HResult($88770000 + 1100); |
MAKE_DPHRESULT = HResult($88770000); |
{ Security related errors } |
DP_OK = S_OK; |
DPERR_ALREADYINITIALIZED = MAKE_DPHRESULT + 5; |
DPERR_ACCESSDENIED = MAKE_DPHRESULT + 10; |
DPERR_ACTIVEPLAYERS = MAKE_DPHRESULT + 20; |
DPERR_BUFFERTOOSMALL = MAKE_DPHRESULT + 30; |
DPERR_CANTADDPLAYER = MAKE_DPHRESULT + 40; |
DPERR_CANTCREATEGROUP = MAKE_DPHRESULT + 50; |
DPERR_CANTCREATEPLAYER = MAKE_DPHRESULT + 60; |
DPERR_CANTCREATESESSION = MAKE_DPHRESULT + 70; |
DPERR_CAPSNOTAVAILABLEYET = MAKE_DPHRESULT + 80; |
DPERR_EXCEPTION = MAKE_DPHRESULT + 90; |
DPERR_GENERIC = E_FAIL; |
DPERR_INVALIDFLAGS = MAKE_DPHRESULT + 120; |
DPERR_INVALIDOBJECT = MAKE_DPHRESULT + 130; |
DPERR_INVALIDPARAM = E_INVALIDARG; |
DPERR_INVALIDPARAMS = DPERR_INVALIDPARAM; |
DPERR_INVALIDPLAYER = MAKE_DPHRESULT + 150; |
DPERR_INVALIDGROUP = MAKE_DPHRESULT + 155; |
DPERR_NOCAPS = MAKE_DPHRESULT + 160; |
DPERR_NOCONNECTION = MAKE_DPHRESULT + 170; |
DPERR_NOMEMORY = E_OUTOFMEMORY; |
DPERR_OUTOFMEMORY = DPERR_NOMEMORY; |
DPERR_NOMESSAGES = MAKE_DPHRESULT + 190; |
DPERR_NONAMESERVERFOUND = MAKE_DPHRESULT + 200; |
DPERR_NOPLAYERS = MAKE_DPHRESULT + 210; |
DPERR_NOSESSIONS = MAKE_DPHRESULT + 220; |
DPERR_PENDING = E_PENDING; |
DPERR_SENDTOOBIG = MAKE_DPHRESULT + 230; |
DPERR_TIMEOUT = MAKE_DPHRESULT + 240; |
DPERR_UNAVAILABLE = MAKE_DPHRESULT + 250; |
DPERR_UNSUPPORTED = E_NOTIMPL; |
DPERR_BUSY = MAKE_DPHRESULT + 270; |
DPERR_USERCANCEL = MAKE_DPHRESULT + 280; |
DPERR_NOINTERFACE = E_NOINTERFACE; |
DPERR_CANNOTCREATESERVER = MAKE_DPHRESULT + 290; |
DPERR_PLAYERLOST = MAKE_DPHRESULT + 300; |
DPERR_SESSIONLOST = MAKE_DPHRESULT + 310; |
DPERR_UNINITIALIZED = MAKE_DPHRESULT + 320; |
DPERR_NONEWPLAYERS = MAKE_DPHRESULT + 330; |
DPERR_INVALIDPASSWORD = MAKE_DPHRESULT + 340; |
DPERR_CONNECTING = MAKE_DPHRESULT + 350; |
DPERR_CONNECTIONLOST = MAKE_DPHRESULT + 360; |
DPERR_UNKNOWNMESSAGE = MAKE_DPHRESULT + 370; |
DPERR_CANCELFAILED = MAKE_DPHRESULT + 380; |
DPERR_INVALIDPRIORITY = MAKE_DPHRESULT + 390; |
DPERR_NOTHANDLED = MAKE_DPHRESULT + 400; |
DPERR_CANCELLED = MAKE_DPHRESULT + 410; |
DPERR_ABORTED = MAKE_DPHRESULT + 420; |
DPERR_AUTHENTICATIONFAILED = HResult($88770000 + 2000); |
DPERR_CANTLOADSSPI = HResult($88770000 + 2010); |
DPERR_ENCRYPTIONFAILED = HResult($88770000 + 2020); |
DPERR_SIGNFAILED = HResult($88770000 + 2030); |
DPERR_CANTLOADSECURITYPACKAGE = HResult($88770000 + 2040); |
DPERR_ENCRYPTIONNOTSUPPORTED = HResult($88770000 + 2050); |
DPERR_CANTLOADCAPI = HResult($88770000 + 2060); |
DPERR_NOTLOGGEDIN = HResult($88770000 + 2070); |
DPERR_LOGONDENIED = HResult($88770000 + 2080); |
// define this to ignore obsolete interfaces and constants |
DPERR_BUFFERTOOLARGE = MAKE_DPHRESULT + 1000; |
DPERR_CANTCREATEPROCESS = MAKE_DPHRESULT + 1010; |
DPERR_APPNOTSTARTED = MAKE_DPHRESULT + 1020; |
DPERR_INVALIDINTERFACE = MAKE_DPHRESULT + 1030; |
DPERR_NOSERVICEPROVIDER = MAKE_DPHRESULT + 1040; |
DPERR_UNKNOWNAPPLICATION = MAKE_DPHRESULT + 1050; |
DPERR_NOTLOBBIED = MAKE_DPHRESULT + 1070; |
DPERR_SERVICEPROVIDERLOADED = MAKE_DPHRESULT + 1080; |
DPERR_ALREADYREGISTERED = MAKE_DPHRESULT + 1090; |
DPERR_NOTREGISTERED = MAKE_DPHRESULT + 1100; |
// |
// Security related errors |
// |
DPERR_AUTHENTICATIONFAILED = MAKE_DPHRESULT + 2000; |
DPERR_CANTLOADSSPI = MAKE_DPHRESULT + 2010; |
DPERR_ENCRYPTIONFAILED = MAKE_DPHRESULT + 2020; |
DPERR_SIGNFAILED = MAKE_DPHRESULT + 2030; |
DPERR_CANTLOADSECURITYPACKAGE = MAKE_DPHRESULT + 2040; |
DPERR_ENCRYPTIONNOTSUPPORTED = MAKE_DPHRESULT + 2050; |
DPERR_CANTLOADCAPI = MAKE_DPHRESULT + 2060; |
DPERR_NOTLOGGEDIN = MAKE_DPHRESULT + 2070; |
DPERR_LOGONDENIED = MAKE_DPHRESULT + 2080; |
(**************************************************************************** |
* |
* dplay 1.0 obsolete structures + interfaces |
* Included for compatibility only. New apps should |
* use IDirectPlay2 |
* |
****************************************************************************) |
DPOPEN_OPENSESSION = DPOPEN_JOIN; |
DPOPEN_CREATESESSION = DPOPEN_CREATE; |
10605,71 → 16006,41 |
DPSYS_DELETEPLAYERFROMGRP = $0021; |
DPSYS_CONNECT = $484b; |
{ TDPMsg_AddPlayer } |
type |
PDPMsg_AddPlayer = ^TDPMsg_AddPlayer; |
TDPMsg_AddPlayer = record |
TDPMsg_AddPlayer = packed record |
dwType: DWORD; |
dwPlayerType: DWORD; |
dpId: TDPID; |
DPID: TDPID; |
szLongName: array[0..DPLONGNAMELEN-1] of Char; |
szShortName: array[0..DPSHORTNAMELEN-1] of Char; |
dwCurrentPlayers: DWORD; |
end; |
DPMSG_ADDPLAYER = TDPMsg_AddPlayer; |
LPDPMSG_ADDPLAYER = PDPMsg_AddPlayer; |
{ TDPMsg_AddGroup } |
PDPMsg_AddGroup = ^TDPMsg_AddGroup; |
TDPMsg_AddGroup = TDPMsg_AddPlayer; |
DPMSG_ADDGROUP = TDPMsg_AddGroup; |
LPDPMSG_ADDGROUP = PDPMsg_AddGroup; |
{ TDPMsg_GroupAdd } |
PDPMsg_GroupAdd = ^TDPMsg_GroupAdd; |
TDPMsg_GroupAdd = record |
TDPMsg_GroupAdd = packed record |
dwType: DWORD; |
dpIdGroup: TDPID; |
dpIdPlayer: TDPID; |
end; |
DPMSG_GROUPADD = TDPMsg_GroupAdd; |
LPDPMSG_GROUPADD = PDPMsg_GroupAdd; |
{ TDPMsg_GroupDelete } |
PDPMsg_GroupDelete = ^TDPMsg_GroupDelete; |
TDPMsg_GroupDelete = TDPMsg_GroupAdd; |
DPMSG_GROUPDELETE = TDPMsg_GroupDelete; |
LPDPMSG_GROUPDELETE = PDPMsg_GroupDelete; |
{ TDPMsg_DeletePlayer } |
PDPMsg_DeletePlayer = ^TDPMsg_DeletePlayer; |
TDPMsg_DeletePlayer = record |
TDPMsg_DeletePlayer = packed record |
dwType: DWORD; |
dpId: TDPID; |
DPID: TDPID; |
end; |
DPMSG_DELETEPLAYER = TDPMsg_DeletePlayer; |
LPDPMSG_DELETEPLAYER = PDPMsg_DeletePlayer; |
TDPEnumPlayersCallback = function(dpId: TDPID; lpFriendlyName: PChar; |
lpFormalName: PChar; dwFlags: DWORD; lpContext: Pointer) : BOOL; stdcall; |
{ TDPEnumPlayersCallback } |
TDPEnumPlayersCallback = function(dpId: TDPID; lpFriendlyName: LPSTR; |
lpFormalName: LPSTR; dwFlags: DWORD; lpContext: Pointer): BOOL; stdcall; |
LPDPENUMPLAYERSCALLBACK = TDPEnumPlayersCallback; |
{ TDPSessionDesc } |
PDPSessionDesc = ^TDPSessionDesc; |
TDPSessionDesc = record |
TDPSessionDesc = packed record |
dwSize: DWORD; |
guidSession: TGUID; |
dwSession: DWORD; |
10676,10 → 16047,10 |
dwMaxPlayers: DWORD; |
dwCurrentPlayers: DWORD; |
dwFlags: DWORD; |
szSessionName: array[0..DPSESSIONNAMELEN-1] of char; |
szUserField: array[0..DPUSERRESERVED-1] of char; |
szSessionName: Array [0..DPSESSIONNAMELEN-1] of char; |
szUserField: Array [0..DPUSERRESERVED-1] of char; |
dwReserved1: DWORD; |
szPassword: array[0..DPPASSWORDLEN-1] of char; |
szPassword: Array [0..DPPASSWORDLEN-1] of char; |
dwReserved2: DWORD; |
dwUser1: DWORD; |
dwUser2: DWORD; |
10687,57 → 16058,68 |
dwUser4: DWORD; |
end; |
DPSESSIONDESC = TDPSessionDesc; |
LPDPSESSIONDESC = PDPSessionDesc; |
{ TDPEnumSessionsCallback } |
TDPEnumSessionsCallback = function(var lpDPSessionDesc: TDPSessionDesc; |
TDPEnumSessionsCallback = function(const lpDPSessionDesc: TDPSessionDesc; |
lpContext: Pointer; var lpdwTimeOut: DWORD; dwFlags: DWORD): BOOL; stdcall; |
LPDPENUMSESSIONSCALLBACK = TDPEnumSessionsCallback; |
type |
IDirectPlay = interface(IUnknown) |
// IDirectPlay methods |
['{5454e9a0-db65-11ce-921c-00aa006c4972}'] |
(*** IDirectPlay methods ***) |
function AddPlayerToGroup(pidGroup: TDPID; pidPlayer: TDPID): HResult; stdcall; |
function Close: HResult; stdcall; |
function CreatePlayer(var lppidID: TDPID; lpPlayerFriendlyName: LPSTR; |
lpPlayerFormalName: LPSTR; lpEvent: PHandle): HResult; stdcall; |
function CreateGroup(var lppidID: TDPID; lpGroupFriendlyName: LPSTR; |
lpGroupFormalName: LPSTR): HResult; stdcall; |
function CreatePlayer(out lppidID: TDPID; lpPlayerFriendlyName: PChar; |
lpPlayerFormalName: PChar; lpEvent: PHandle) : HResult; stdcall; |
function CreateGroup(out lppidID: TDPID; lpGroupFriendlyName: PChar; |
lpGroupFormalName: PChar) : HResult; stdcall; |
function DeletePlayerFromGroup(pidGroup: TDPID; pidPlayer: TDPID): HResult; stdcall; |
function DestroyPlayer(pidID: TDPID): HResult; stdcall; |
function DestroyGroup(pidID: TDPID): HResult; stdcall; |
function EnableNewPlayers(bEnable: BOOL): HResult; stdcall; |
function EnumGroupPlayers(pidGroupPID: TDPID; lpEnumPlayersCallback: |
LPDPENUMPLAYERSCALLBACK; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
TDPEnumPlayersCallback; lpContext: Pointer; dwFlags: DWORD) : HResult; stdcall; |
function EnumGroups(dwSessionID: DWORD; lpEnumPlayersCallback: |
LPDPENUMPLAYERSCALLBACK; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
TDPEnumPlayersCallback; lpContext: Pointer; dwFlags: DWORD) : HResult; stdcall; |
function EnumPlayers(dwSessionId: DWORD; lpEnumPlayersCallback: |
LPDPENUMPLAYERSCALLBACK; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function EnumSessions(const lpSDesc: TDPSessionDesc; dwTimeout: DWORD; |
lpEnumSessionsCallback: TDPEnumPlayersCallback; lpContext: Pointer; |
TDPEnumPlayersCallback; lpContext: Pointer; dwFlags: DWORD) : HResult; stdcall; |
function EnumSessions(var lpSDesc: TDPSessionDesc; dwTimeout: DWORD; |
lpEnumSessionsCallback: TDPEnumSessionsCallback; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function GetCaps(const lpDPCaps: TDPCaps): HResult; stdcall; |
function GetCaps(var lpDPCaps: TDPCaps) : HResult; stdcall; |
function GetMessageCount(pidID: TDPID; var lpdwCount: DWORD): HResult; stdcall; |
function GetPlayerCaps(pidID: TDPID; const lpDPPlayerCaps: TDPCaps): HResult; stdcall; |
function GetPlayerName(pidID: TDPID; lpPlayerFriendlyName: LPSTR; |
var lpdwFriendlyNameLength: DWORD; lpPlayerFormalName: LPSTR; |
function GetPlayerCaps(pidID: TDPID; var lpDPPlayerCaps: TDPCaps) : HResult; stdcall; |
function GetPlayerName(pidID: TDPID; lpPlayerFriendlyName: PChar; |
var lpdwFriendlyNameLength: DWORD; lpPlayerFormalName: PChar; |
var lpdwFormalNameLength: DWORD): HResult; stdcall; |
function Initialize(const lpGUID: TGUID): HResult; stdcall; |
function Open(const lpSDesc: TDPSessionDesc): HResult; stdcall; |
function Open(var lpSDesc: TDPSessionDesc) : HResult; stdcall; |
function Receive(var lppidFrom, lppidTo: TDPID; dwFlags: DWORD; |
var lpvBuffer; var lpdwSize: DWORD): HResult; stdcall; |
function SaveSession(lpSessionName: LPSTR): HResult; stdcall; |
function SaveSession(lpSessionName: PChar) : HResult; stdcall; |
function Send(pidFrom: TDPID; pidTo: TDPID; dwFlags: DWORD; |
const lpvBuffer; dwBuffSize: DWORD): HResult; stdcall; |
function SetPlayerName(pidID: TDPID; lpPlayerFriendlyName: LPSTR; |
lpPlayerFormalName: LPSTR): HResult; stdcall; |
var lpvBuffer; dwBuffSize: DWORD) : HResult; stdcall; |
function SetPlayerName(pidID: TDPID; lpPlayerFriendlyName: PChar; |
lpPlayerFormalName: PChar) : HResult; stdcall; |
end; |
{ API's (cont.) } |
(* |
* GUIDS used by DirectPlay objects |
*) |
IID_IDirectPlay2W = IDirectPlay2W; |
IID_IDirectPlay2A = IDirectPlay2A; |
IID_IDirectPlay2 = IDirectPlay2; |
function DirectPlayCreate(const lpGUID: TGUID; out lplpDP: IDirectPlay; |
IID_IDirectPlay3W = IDirectPlay3W; |
IID_IDirectPlay3A = IDirectPlay3A; |
IID_IDirectPlay3 = IDirectPlay3; |
IID_IDirectPlay4W = IDirectPlay4W; |
IID_IDirectPlay4A = IDirectPlay4A; |
IID_IDirectPlay4 = IDirectPlay4; |
IID_IDirectPlay = IDirectPlay; |
var |
DirectPlayCreate : function (lpGUID: PGUID; out lplpDP: IDirectPlay; |
pUnk: IUnknown): HResult; stdcall; |
(*==========================================================================; |
10746,238 → 16128,345 |
* |
* File: dplobby.h |
* Content: DirectPlayLobby include file |
* |
***************************************************************************) |
{ GUIDS used by DirectPlay objects } |
(* |
* GUIDS used by DirectPlay objects |
*) |
const |
CLSID_DirectPlayLobby: TGUID = '{2FE8F810-B2A5-11D0-A787-0000F803ABFC}'; |
(* {2FE8F810-B2A5-11d0-A787-0000F803ABFC} *) |
CLSID_DirectPlayLobby: TGUID = |
(D1:$2fe8f810;D2:$b2a5;D3:$11d0;D4:($a7,$87,$00,$00,$f8,$3,$ab,$fc)); |
IID_IDirectPlayLobby: TGUID = '{AF465C71-9588-11cf-A020-00AA006157AC}'; |
IID_IDirectPlayLobbyA: TGUID = '{26C66A70-B367-11cf-A024-00AA006157AC}'; |
IID_IDirectPlayLobby2: TGUID = '{0194C220-A303-11d0-9C4F-00A0C905425E}'; |
IID_IDirectPlayLobby2A: TGUID = '{1BB4AF80-A303-11d0-9C4F-00A0C905425E}'; |
IID_IDirectPlayLobby3: TGUID = '{2DB72490-652C-11d1-A7A8-0000F803ABFC}'; |
IID_IDirectPlayLobby3A: TGUID = '{2DB72491-652C-11d1-A7A8-0000F803ABFC}'; |
(**************************************************************************** |
* |
* IDirectPlayLobby Structures |
* |
* Various structures used to invoke DirectPlayLobby. |
* |
****************************************************************************) |
{ IDirectPlayLobby Structures } |
{ TDPLAppInfo } |
type |
(* |
* TDPLAppInfo |
* Used to hold information about a registered DirectPlay |
* application |
*) |
PDPLAppInfo = ^TDPLAppInfo; |
TDPLAppInfo = record |
TDPLAppInfo = packed record |
dwSize: DWORD; // Size of this structure |
guidApplication: TGUID; // GUID of the Application |
case Integer of // Pointer to the Application Name |
0: (lpszAppNameA: LPSTR); |
1: (lpszAppName: LPWSTR); |
0: (lpszAppName: PCharAW); |
1: (lpszAppNameW: PWideChar); |
3: (lpszAppNameA: PChar); |
end; |
DPLAPPINFO = TDPLAppInfo; |
LPDPLAPPINFO = PDPLAppInfo; |
{ TDPCompoundAddressElement } |
(* |
* TDPCompoundAddressElement |
* |
* An array of these is passed to CreateCompoundAddresses() |
*) |
PDPCompoundAddressElement = ^TDPCompoundAddressElement; |
TDPCompoundAddressElement = record |
TDPCompoundAddressElement = packed record |
guidDataType: TGUID; |
dwDataSize: DWORD; |
lpData: Pointer; |
end; |
DPCOMPOUNDADDRESSELEMENT = TDPCompoundAddressElement; |
LPDPCOMPOUNDADDRESSELEMENT = PDPCompoundAddressElement; |
{ TDPApplicationDesc } |
(* |
* TDPApplicationDesc |
* Used to register a DirectPlay application |
*) |
PDPApplicationDesc = ^TDPApplicationDesc; |
TDPApplicationDesc = record |
TDPApplicationDesc = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0: ( |
lpszApplicationNameA: LPSTR; // ANSI |
case integer of |
0 : (lpszApplicationName: PCharAW; |
guidApplication: TGUID; |
lpszFilenameA: LPSTR; |
lpszCommandLineA: LPSTR; |
lpszPathA: LPSTR; |
lpszCurrentDirectoryA: LPSTR; |
lpszDescriptionA: LPSTR; |
lpszDescriptionW: LPWSTR; |
); |
1: ( |
lpszApplicationName: LPWSTR; // Unicode |
_union1b: TGUID; |
lpszFilename: LPWSTR; |
lpszCommandLine: LPWSTR; |
lpszPath: LPWSTR; |
lpszCurrentDirectory: LPWSTR; |
_union1g: LPWSTR; |
); |
lpszFilename: PCharAW; |
lpszCommandLine: PCharAW; |
lpszPath: PCharAW; |
lpszCurrentDirectory: PCharAW; |
lpszDescriptionA: PAnsiChar; |
lpszDescriptionW: PWideChar); |
1 : (lpszApplicationNameA: PAnsiChar; |
filler1: TGUID; |
lpszFilenameA: PAnsiChar; |
lpszCommandLineA: PAnsiChar; |
lpszPathA: PAnsiChar; |
lpszCurrentDirectoryA: PAnsiChar); |
2 : (lpszApplicationNameW: PWideChar; |
filler2: TGUID; |
lpszFilenameW: PWideChar; |
lpszCommandLineW: PWideChar; |
lpszPathW: PWideChar; |
lpszCurrentDirectoryW: PWideChar); |
end; |
DPAPPLICATIONDESC = TDPApplicationDesc; |
LPDPAPPLICATIONDESC = PDPApplicationDesc; |
{ TDPApplicationDesc2 } |
(* |
* TDPApplicationDesc2 |
* Used to register a DirectPlay application |
*) |
PDPApplicationDesc2 = ^TDPApplicationDesc2; |
TDPApplicationDesc2 = record |
TDPApplicationDesc2 = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
case Integer of |
0: ( |
lpszApplicationNameA: LPSTR; // ANSI |
case integer of |
0 : (lpszApplicationName: PCharAW; |
guidApplication: TGUID; |
lpszFilenameA: LPSTR; |
lpszCommandLineA: LPSTR; |
lpszPathA: LPSTR; |
lpszCurrentDirectoryA: LPSTR; |
lpszDescriptionA: LPSTR; |
lpszDescriptionW: LPWSTR; |
lpszAppLauncherNameA: LPSTR; |
); |
1: ( |
lpszApplicationName: LPWSTR; // Unicode |
_union1b: TGUID; |
lpszFilename: LPWSTR; |
lpszCommandLine: LPWSTR; |
lpszPath: LPWSTR; |
lpszCurrentDirectory: LPWSTR; |
_union1g: LPWSTR; |
lpszAppLauncherName: LPWSTR; |
); |
lpszFilename: PCharAW; |
lpszCommandLine: PCharAW; |
lpszPath: PCharAW; |
lpszCurrentDirectory: PCharAW; |
lpszDescriptionA: PAnsiChar; |
lpszDescriptionW: PWideChar; |
lpszAppLauncherName: PCharAW); |
1 : (lpszApplicationNameA: PAnsiChar; |
filler1: TGUID; |
lpszFilenameA: PAnsiChar; |
lpszCommandLineA: PAnsiChar; |
lpszPathA: PAnsiChar; |
lpszCurrentDirectoryA: PAnsiChar; |
filler3: PChar; |
filler4: PChar; |
lpszAppLauncherNameA: PAnsiChar); |
2 : (lpszApplicationNameW: PWideChar; |
filler2: TGUID; |
lpszFilenameW: PWideChar; |
lpszCommandLineW: PWideChar; |
lpszPathW: PWideChar; |
lpszCurrentDirectoryW: PWideChar; |
filler5: PChar; |
filler6: PChar; |
lpszAppLauncherNameW: PWideChar); |
end; |
DPAPPLICATIONDESC2 = TDPApplicationDesc2; |
LPDPAPPLICATIONDESC2 = PDPApplicationDesc2; |
{ Enumeration Method Callback Prototypes } |
(**************************************************************************** |
* |
* Enumeration Method Callback Prototypes |
* |
****************************************************************************) |
TDPEnumAddressCallback = function(const guidDataType: TGUID; |
(* |
* Callback for EnumAddress() |
*) |
TDPEnumAdressCallback = function(const guidDataType: TGUID; |
dwDataSize: DWORD; lpData: Pointer; lpContext: Pointer): BOOL; stdcall; |
LPDPENUMADDRESSCALLBACK = TDPEnumAddressCallback; |
(* |
* Callback for EnumAddressTypes() |
*) |
TDPLEnumAddressTypesCallback = function(const guidDataType: TGUID; |
lpContext: Pointer; dwFlags: DWORD): BOOL; stdcall; |
LPDPLENUMADDRESSTYPESCALLBACK = TDPLEnumAddressTypesCallback; |
(* |
* Callback for EnumLocalApplications() |
*) |
TDPLEnumLocalApplicationsCallback = function(const lpAppInfo: TDPLAppInfo; |
lpContext: Pointer; dwFlags: DWORD): BOOL; stdcall; |
LPDPLENUMLOCALAPPLICATIONSCALLBACK = TDPLEnumLocalApplicationsCallback; |
{ IDirectPlayLobby (and IDirectPlayLobbyA) Interface } |
(**************************************************************************** |
* |
* IDirectPlayLobby (and IDirectPlayLobbyA) Interface |
* |
****************************************************************************) |
type |
IDirectPlayLobby = interface(IUnknown) |
['{AF465C71-9588-11CF-A020-00AA006157AC}'] |
// IDirectPlayLobby methods |
IDirectPlayLobbyAW = interface (IUnknown) |
(*** IDirectPlayLobby methods ***) |
function Connect(dwFlags: DWORD; out lplpDP: IDirectPlay2; |
pUnk: IUnknown): HResult; stdcall; |
function CreateAddress(const guidSP, guidDataType: TGUID; const lpData; |
function CreateAddress(const guidSP, guidDataType: TGUID; var lpData; |
dwDataSize: DWORD; var lpAddress; var lpdwAddressSize: DWORD): HResult; stdcall; |
function EnumAddress(lpEnumAddressCallback: TDPEnumAddressCallback; |
const lpAddress; dwAddressSize: DWORD; lpContext : Pointer): HResult; stdcall; |
function EnumAddress(lpEnumAddressCallback: TDPEnumAdressCallback; |
var lpAddress; dwAddressSize: DWORD; lpContext : Pointer) : HResult; stdcall; |
function EnumAddressTypes(lpEnumAddressTypeCallback: |
TDPLEnumAddressTypesCallback; const guidSP: TGUID; lpContext: Pointer; |
dwFlags: DWORD): HResult; stdcall; |
function EnumLocalApplications(lpEnumLocalAppCallback: |
TDPLEnumLocalApplicationsCallback; lpContext: Pointer; dwFlags: DWORD): HResult; stdcall; |
function GetConnectionSettings(dwAppID: DWORD; var lpData: TDPLConnection; |
function EnumLocalApplications(lpEnumLocalAppCallback: TDPLEnumLocalApplicationsCallback; |
lpContext: Pointer; dwFlags: DWORD) : HResult; stdcall; |
function GetConnectionSettings(dwAppID: DWORD; lpData: PDPLConnection; |
var lpdwDataSize: DWORD): HResult; stdcall; |
function ReceiveLobbyMessage(dwFlags: DWORD; dwAppID: DWORD; |
var lpdwMessageFlags: DWORD; var lpData; var lpdwDataSize: DWORD): HResult; stdcall; |
var lpdwMessageFlags: DWORD; lpData: Pointer; var lpdwDataSize: DWORD) : HResult; stdcall; |
function RunApplication(dwFlags: DWORD; var lpdwAppId: DWORD; |
const lpConn: TDPLConnection; hReceiveEvent: THandle): HResult; stdcall; |
function SendLobbyMessage(dwFlags: DWORD; dwAppID: DWORD; const lpData; |
dwDataSize: DWORD): HResult; stdcall; |
function SetConnectionSettings(dwFlags: DWORD; dwAppID: DWORD; |
const lpConn: TDPLConnection): HResult; stdcall; |
var lpConn: TDPLConnection) : HResult; stdcall; |
function SetLobbyMessageEvent(dwFlags: DWORD; dwAppID: DWORD; |
hReceiveEvent: THandle): HResult; stdcall; |
end; |
IDirectPlayLobbyA = interface(IDirectPlayLobby) |
['{26C66A70-B367-11CF-A024-00AA006157AC}'] |
IDirectPlayLobbyW = interface (IDirectPlayLobbyAW) |
['{AF465C71-9588-11CF-A020-00AA006157AC}'] |
end; |
IDirectPlayLobbyA = interface (IDirectPlayLobbyAW) |
['{26C66A70-B367-11cf-A024-00AA006157AC}'] |
end; |
{ IDirectPlayLobby2 (and IDirectPlayLobby2A) Interface } |
{$IFDEF UNICODE} |
IDirectPlayLobby = IDirectPlayLobbyW; |
{$ELSE} |
IDirectPlayLobby = IDirectPlayLobbyA; |
{$ENDIF} |
IDirectPlayLobby2 = interface(IDirectPlayLobby) |
['{0194C220-A303-11D0-9C4F-00A0C905425E}'] |
// IDirectPlayLobby2 methods |
(**************************************************************************** |
* |
* IDirectPlayLobby2 (and IDirectPlayLobby2A) Interface |
* |
****************************************************************************) |
IDirectPlayLobby2AW = interface(IDirectPlayLobbyAW) |
(*** IDirectPlayLobby2 methods ***) |
function CreateCompoundAddress(const lpElements: TDPCompoundAddressElement; |
dwElementCount: DWORD; var lpAddress; var lpdwAddressSize: DWORD): HResult; stdcall; |
dwElementCount: DWORD; lpAddress: Pointer; var lpdwAddressSize: DWORD) : HResult; stdcall; |
end; |
IDirectPlayLobby2A = interface(IDirectPlayLobby2) |
['{1BB4AF80-A303-11D0-9C4F-00A0C905425E}'] |
IDirectPlayLobby2W = interface (IDirectPlayLobby2AW) |
['{0194C220-A303-11D0-9C4F-00A0C905425E}'] |
end; |
IDirectPlayLobby2A = interface (IDirectPlayLobby2AW) |
['{1BB4AF80-A303-11d0-9C4F-00A0C905425E}'] |
end; |
{ IDirectPlayLobby3 (and IDirectPlayLobby3A) Interface } |
{$IFDEF UNICODE} |
IDirectPlayLobby2 = IDirectPlayLobby2W; |
{$ELSE} |
IDirectPlayLobby2 = IDirectPlayLobby2A; |
{$ENDIF} |
IDirectPlayLobby3 = interface(IDirectPlayLobby2) |
['{2DB72490-652C-11d1-A7A8-0000F803ABFC}'] |
// IDirectPlayLobby3 Methods |
function ConnectEx(dwFlags: DWORD; const riid: TGUID; var lplpDP: Pointer; |
pUnk: IUnknown): HResult; stdcall; |
function RegisterApplication(dwFlags: DWORD; const lpAppDesc: TDPApplicationDesc): HResult; stdcall; |
function UnRegisterApplication(dwFlags: DWORD; const guidApplication: TGUID): HResult; stdcall; |
(**************************************************************************** |
* |
* IDirectPlayLobby3 (and IDirectPlayLobby3A) Interface |
* |
****************************************************************************) |
IDirectPlayLobby3AW = interface(IDirectPlayLobby2AW) |
(*** IDirectPlayLobby3 methods ***) |
function ConnectEx(dwFlags: DWORD; const riid: TGUID; |
out lplpDP; pUnk: IUnknown) : HResult; stdcall; |
function RegisterApplication(dwFlags: DWORD; |
var lpAppDesc: TDPApplicationDesc) : HResult; stdcall; |
function UnregisterApplication(dwFlags: DWORD; |
const guidApplication: TGUID) : HResult; stdcall; |
function WaitForConnectionSettings(dwFlags: DWORD): HResult; stdcall; |
end; |
IDirectPlayLobby3A = interface(IDirectPlayLobby3) |
IDirectPlayLobby3W = interface (IDirectPlayLobby3AW) |
['{2DB72490-652C-11d1-A7A8-0000F803ABFC}'] |
end; |
IDirectPlayLobby3A = interface (IDirectPlayLobby3AW) |
['{2DB72491-652C-11d1-A7A8-0000F803ABFC}'] |
end; |
{ DirectPlayLobby API Prototypes } |
{$IFDEF UNICODE} |
IDirectPlayLobby3 = IDirectPlayLobby3W; |
{$ELSE} |
IDirectPlayLobby3 = IDirectPlayLobby3A; |
{$ENDIF} |
function DirectPlayLobbyCreateW(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobby; |
lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HResult; stdcall; |
function DirectPlayLobbyCreateA(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobbyA; |
lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HResult; stdcall; |
function DirectPlayLobbyCreate(const lpguidSP: TGUID; out lplpDPL: IDirectPlayLobbyA; |
lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD): HResult; stdcall; |
IID_IDirectPlayLobbyW = IDirectPlayLobbyW; |
IID_IDirectPlayLobbyA = IDirectPlayLobbyA; |
IID_IDirectPlayLobby = IDirectPlayLobby; |
{ DirectPlayLobby Flags } |
IID_IDirectPlayLobby2W = IDirectPlayLobby2W; |
IID_IDirectPlayLobby2A = IDirectPlayLobby2A; |
IID_IDirectPlayLobby2 = IDirectPlayLobby2; |
IID_IDirectPlayLobby3W = IDirectPlayLobby3W; |
IID_IDirectPlayLobby3A = IDirectPlayLobby3A; |
IID_IDirectPlayLobby3 = IDirectPlayLobby3; |
(**************************************************************************** |
* |
* DirectPlayLobby API Prototypes |
* |
****************************************************************************) |
var |
DirectPlayLobbyCreateW : function (lpguidSP: PGUID; out lplpDPL: |
IDirectPlayLobbyW; lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD) : HResult; stdcall; |
DirectPlayLobbyCreateA : function (lpguidSP: PGUID; out lplpDPL: |
IDirectPlayLobbyA; lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD) : HResult; stdcall; |
DirectPlayLobbyCreate : function (lpguidSP: PGUID; out lplpDPL: |
IDirectPlayLobby; lpUnk: IUnknown; lpData: Pointer; dwDataSize: DWORD) : HResult; stdcall; |
const |
(**************************************************************************** |
* |
* DirectPlayLobby Flags |
* |
****************************************************************************) |
(* |
* This flag is used by IDirectPlayLobby.WaitForConnectionSettings to |
* cancel a current wait that is in progress. |
*) |
DPLWAIT_CANCEL = $00000001; |
(* |
* This is a message flag used by ReceiveLobbyMessage. It can be |
* returned in the dwMessageFlags parameter to indicate a message from |
* the system. |
*) |
DPLMSG_SYSTEM = $00000001; |
(* |
* This is a message flag used by ReceiveLobbyMessage and SendLobbyMessage. |
* It is used to indicate that the message is a standard lobby message. |
* TDPLMsg_SetProperty, TDPLMsg_SetPropertyResponse, TDPLMsg_GetProperty, |
* TDPLMsg_GetPropertyResponse |
*) |
DPLMSG_STANDARD = $00000002; |
type |
(**************************************************************************** |
* |
* DirectPlayLobby messages and message data structures |
* |
* All system messages have a dwMessageFlags value of DPLMSG_SYSTEM returned |
* from a call to ReceiveLobbyMessage. |
* |
* All standard messages have a dwMessageFlags value of DPLMSG_STANDARD returned |
* from a call to ReceiveLobbyMessage. |
* |
****************************************************************************) |
{ DirectPlayLobby messages and message data structures } |
{ TDPLMsg_Generic } |
type |
(* |
* TDPLMsg_Generic |
* Generic message structure used to identify the message type. |
*) |
PDPLMsg_Generic = ^TDPLMsg_Generic; |
TDPLMsg_Generic = record |
TDPLMsg_Generic = packed record |
dwType: DWORD; // Message type |
end; |
DPLMSG_GENERIC = TDPLMsg_Generic; |
LPDPLMSG_GENERIC = PDPLMsg_Generic; |
{ TDPLMsg_SystemMessage } |
(* |
* TDPLMsg_SystemMessage |
* Generic message format for all system messages -- |
* DPLSYS_CONNECTIONSETTINGSREAD, DPLSYS_DPLYCONNECTSUCCEEDED, |
* DPLSYS_DPLAYCONNECTFAILED, DPLSYS_APPTERMINATED, DPLSYS_NEWCONNECTIONSETTINGS |
*) |
PDPLMsg_SystemMessage = ^TDPLMsg_SystemMessage; |
TDPLMsg_SystemMessage = record |
TDPLMsg_SystemMessage = packed record |
dwType: DWORD; // Message type |
guidInstance: TGUID; // Instance GUID of the dplay session the message corresponds to |
end; |
DPLMSG_SYSTEMMESSAGE = TDPLMsg_SystemMessage; |
LPDPLMSG_SYSTEMMESSAGE = PDPLMsg_SystemMessage; |
{ TDPLMsg_SetProperty } |
(* |
* TDPLMsg_SetProperty |
* Standard message sent by an application to a lobby to set a |
* property |
*) |
PDPLMsg_SetProperty = ^TDPLMsg_SetProperty; |
TDPLMsg_SetProperty = record |
TDPLMsg_SetProperty = packed record |
dwType: DWORD; // Message type |
dwRequestID: DWORD; // Request ID (DPL_NOCONFIRMATION if no confirmation desired) |
guidPlayer: TGUID; // Player GUID |
10986,17 → 16475,17 |
dwPropertyData: array[0..0] of DWORD; // Buffer containing data |
end; |
DPLMSG_SETPROPERTY = TDPLMsg_SetProperty; |
LPDPLMSG_SETPROPERTY = PDPLMsg_SetProperty; |
const |
DPL_NOCONFIRMATION = 0; |
{ TDPLMsg_SetPropertyResponse } |
type |
(* |
* TDPLMsg_SetPropertyResponse |
* Standard message returned by a lobby to confirm a |
* TDPLMsg_SetProperty message. |
*) |
PDPLMsg_SetPropertyResponse = ^TDPLMsg_SetPropertyResponse; |
TDPLMsg_SetPropertyResponse = record |
TDPLMsg_SetPropertyResponse = packed record |
dwType: DWORD; // Message type |
dwRequestID: DWORD; // Request ID |
guidPlayer: TGUID; // Player GUID |
11004,26 → 16493,27 |
hr: HResult; // Return Code |
end; |
DPLMSG_SETPROPERTYRESPONSE = TDPLMsg_SetPropertyResponse; |
LPDPLMSG_SETPROPERTYRESPONSE = PDPLMsg_SetPropertyResponse; |
{ TDPLMsg_GetProperty } |
(* |
* TDPLMsg_GetProperty |
* Standard message sent by an application to a lobby to request |
* the current value of a property |
*) |
PDPLMsg_GetProperty = ^TDPLMsg_GetProperty; |
TDPLMsg_GetProperty = record |
TDPLMsg_GetProperty = packed record |
dwType: DWORD; // Message type |
dwRequestID: DWORD; // Request ID |
guidPlayer: TGUID; // Player GUID |
guidPropertyTag: TGUID; // Property GUID |
end; |
LPDPLMSG_GETPROPERTY = ^TDPLMsg_GetProperty; |
DPLMSG_GETPROPERTY = TDPLMsg_GetProperty; |
LPDPLMSG_GETPROPERTY = PDPLMsg_GetProperty; |
{ TDPLMsg_GetPropertyResponse } |
(* |
* TDPLMsg_GetPropertyResponse |
* Standard message returned by a lobby in response to a |
* TDPLMsg_GetProperty message. |
*) |
PDPLMsg_GetPropertyResponse = ^TDPLMsg_GetPropertyResponse; |
TDPLMsg_GetPropertyResponse = record |
TDPLMsg_GetPropertyResponse = packed record |
dwType: DWORD; // Message type |
dwRequestID: DWORD; // Request ID |
guidPlayer: TGUID; // Player GUID |
11033,97 → 16523,297 |
dwPropertyData: array[0..0] of DWORD; // Buffer containing data |
end; |
DPLMSG_GETPROPERTYRESPONSE = TDPLMsg_GetPropertyResponse; |
LPDPLMSG_GETPROPERTYRESPONSE = PDPLMsg_GetPropertyResponse; |
{ TDPLMsg_NewSessionHost } |
(* |
* TDPLMsg_NewSessionHost |
* Standard message returned by a lobby in response to a |
* the session host migrating to a new client |
*) |
PDPLMsg_NewSessionHost = ^TDPLMsg_NewSessionHost; |
TDPLMsg_NewSessionHost = record |
TDPLMsg_NewSessionHost = packed record |
dwType: DWORD; // Message type |
guidInstance: TGUID; // GUID Instance of the session |
guidInstance: TGUID; // Property GUID |
end; |
DPLMSG_NEWSESSIONHOST = TDPLMsg_NewSessionHost; |
LPDPLMSG_NEWSESSIONHOST = PDPLMsg_NewSessionHost; |
const |
(****************************************** |
* |
* DirectPlay Lobby message dwType values |
* |
*****************************************) |
{ DirectPlay Lobby message dwType values } |
(* |
* The application has read the connection settings. |
* It is now O.K. for the lobby client to release |
* its IDirectPlayLobby interface. |
*) |
DPLSYS_CONNECTIONSETTINGSREAD = $00000001; |
const |
DPLSYS_CONNECTIONSETTINGSREAD = $00000001; |
(* |
* The application's call to DirectPlayConnect failed |
*) |
DPLSYS_DPLAYCONNECTFAILED = $00000002; |
(* |
* The application has created a DirectPlay session. |
*) |
DPLSYS_DPLAYCONNECTSUCCEEDED = $00000003; |
(* |
* The application has terminated. |
*) |
DPLSYS_APPTERMINATED = $00000004; |
(* |
* The message is a TDPLMsg_SetProperty message. |
*) |
DPLSYS_SETPROPERTY = $00000005; |
(* |
* The message is a TDPLMsg_SetPropertyResponse message. |
*) |
DPLSYS_SETPROPERTYRESPONSE = $00000006; |
(* |
* The message is a TDPLMsg_GetProperty message. |
*) |
DPLSYS_GETPROPERTY = $00000007; |
(* |
* The message is a TDPLMsg_GetPropertyResponse message. |
*) |
DPLSYS_GETPROPERTYRESPONSE = $00000008; |
(* |
* The message is a TDPLMsg_NewSessionHost message. |
*) |
DPLSYS_NEWSESSIONHOST = $00000009; |
(* |
* New connection settings are available. |
*) |
DPLSYS_NEWCONNECTIONSETTINGS = $0000000A; |
{ DirectPlay defined property GUIDs and associated data structures } |
(**************************************************************************** |
* |
* DirectPlay defined property GUIDs and associated data structures |
* |
****************************************************************************) |
DPLPROPERTY_MessagesSupported: TGUID = '{762CCDA1-D916-11d0-BA39-00C04FD7ED67}'; |
DPLPROPERTY_LobbyGuid: TGUID = '{F56920A0-D218-11d0-BA39-00C04FD7ED67}'; |
DPLPROPERTY_PlayerGuid: TGUID = '{B4319322-D20D-11d0-BA39-00C04FD7ED67}'; |
(* |
* DPLPROPERTY_MessagesSupported |
* |
* Request whether the lobby supports standard. Lobby with respond with either |
* TRUE or FALSE or may not respond at all. |
* |
* Property data is a single BOOL with TRUE or FALSE |
*) |
// {762CCDA1-D916-11d0-BA39-00C04FD7ED67} |
DPLPROPERTY_MessagesSupported: TGUID = |
(D1:$762ccda1;D2:$d916;D3:$11d0;D4:($ba,$39,$00,$c0,$4f,$d7,$ed,$67)); |
{ TDPLData_PlayerGUID } |
(* |
* DPLPROPERTY_LobbyGuid |
* |
* Request the GUID that identifies the lobby software that the application |
* is communicating with. |
* |
* Property data is a single GUID. |
*) |
// {F56920A0-D218-11d0-BA39-00C04FD7ED67} |
DPLPROPERTY_LobbyGuid: TGUID = |
(D1:$F56920A0;D2:$D218;D3:$11d0;D4:($ba,$39,$00,$c0,$4f,$d7,$ed,$67)); |
(* |
* DPLPROPERTY_PlayerGuid |
* |
* Request the GUID that identifies the player on this machine for sending |
* property data back to the lobby. |
* |
* Property data is the DPLDATA_PLAYERDATA structure |
*) |
// {B4319322-D20D-11d0-BA39-00C04FD7ED67} |
DPLPROPERTY_PlayerGuid: TGUID = |
(D1:$b4319322;D2:$d20d;D3:$11d0;D4:($ba,$39,$00,$c0,$4f,$d7,$ed,$67)); |
type |
(* |
* TDPLData_PlayerGUID |
* |
* Data structure to hold the GUID of the player and player creation flags |
* from the lobby. |
*) |
PDPLData_PlayerGUID = ^TDPLData_PlayerGUID; |
TDPLData_PlayerGUID = record |
TDPLData_PlayerGUID = packed record |
guidPlayer: TGUID; |
dwPlayerFlags: DWORD; |
end; |
DPLDATA_PLAYERGUID = TDPLData_PlayerGUID; |
LPDPLDATA_PLAYERGUID = PDPLData_PlayerGUID; |
{ DPLPROPERTY_PlayerScore } |
const |
DPLPROPERTY_PlayerScore: TGUID = '{48784000-D219-11d0-BA39-00C04FD7ED67}'; |
(* |
* DPLPROPERTY_PlayerScore |
* |
* Used to send an array of long integers to the lobby indicating the |
* score of a player. |
* |
* Property data is the TDPLData_PlayerScore structure. |
*) |
// {48784000-D219-11d0-BA39-00C04FD7ED67} |
DPLPROPERTY_PlayerScore: TGUID = |
(D1:$48784000;D2:$d219;D3:$11d0;D4:($ba,$39,$00,$c0,$4f,$d7,$ed,$67)); |
{ TDPLData_PlayerScore } |
type |
(* |
* TDPLData_PlayerScore |
* |
* Data structure to hold an array of long integers representing a player score. |
* Application must allocate enough memory to hold all the scores. |
*) |
PDPLData_PlayerScore = ^TDPLData_PlayerScore; |
TDPLData_PlayerScore = record |
TDPLData_PlayerScore = packed record |
dwScoreCount: DWORD; |
Score: array[0..0] of Longint; |
Score: array[0..0] of LongInt; |
end; |
DPLDATA_PLAYERSCORE = TDPLData_PlayerScore; |
LPDPLDATA_PLAYERSCORE = PDPLData_PlayerScore; |
(**************************************************************************** |
* |
* DirectPlay Address ID's |
* |
****************************************************************************) |
{ DirectPlay Address ID's } |
(* DirectPlay Address |
* |
* A DirectPlay address consists of multiple chunks of data, each tagged |
* with a GUID signifying the type of data in the chunk. The chunk also |
* has a length so that unknown chunk types can be skipped. |
* |
* The EnumAddress() function is used to parse these address data chunks. |
*) |
type |
(* |
* TDPAddress |
* |
* Header for block of address data elements |
*) |
PDPAddress = ^TDPAddress; |
TDPAddress = record |
TDPAddress = packed record |
guidDataType: TGUID; |
dwDataSize: DWORD; |
end; |
DPADDRESS = TDPAddress; |
LPDPADDRESS = PDPAddress; |
const |
DPAID_TotalSize: TGUID = '{1318F560-912C-11d0-9DAA-00A0C90A43CB}'; |
DPAID_ServiceProvider: TGUID = '{07D916C0-E0AF-11cf-9C4E-00A0C905425E}'; |
DPAID_LobbyProvider: TGUID = '{59B95640-9667-11d0-A77D-0000F803ABFC}'; |
DPAID_Phone: TGUID = '{78EC89A0-E0AF-11cf-9C4E-00A0C905425E}'; |
DPAID_PhoneW: TGUID = '{BA5A7A70-9DBF-11d0-9CC1-00A0C905425E}'; |
DPAID_Modem: TGUID = '{F6DCC200-A2FE-11d0-9C4F-00A0C905425E}'; |
DPAID_ModemW: TGUID = '{01FD92E0-A2FF-11d0-9C4F-00A0C905425E}'; |
DPAID_INet: TGUID = '{C4A54DA0-E0AF-11cf-9C4E-00A0C905425E}'; |
DPAID_INetW: TGUID = '{E63232A0-9DBF-11d0-9CC1-00A0C905425E}'; |
DPAID_INetPort: TGUID = '{E4524541-8EA5-11d1-8A96-006097B01411}'; |
DPAID_MaxMessageSize: TGUID = '{F5D09980-F0C4-11d1-8326-006097B01411}'; |
(* |
* DPAID_TotalSize |
* |
* Chunk is a DWORD containing size of entire TDPAddress structure |
*) |
{ TDPComPortAddress } |
// {1318F560-912C-11d0-9DAA-00A0C90A43CB} |
DPAID_TotalSize: TGUID = |
(D1:$1318f560;D2:$912c;D3:$11d0;D4:($9d,$aa,$00,$a0,$c9,$a,$43,$cb)); |
const |
(* |
* DPAID_ServiceProvider |
* |
* Chunk is a GUID describing the service provider that created the chunk. |
* All addresses must contain this chunk. |
*) |
// {07D916C0-E0AF-11cf-9C4E-00A0C905425E} |
DPAID_ServiceProvider: TGUID = |
(D1:$7d916c0;D2:$e0af;D3:$11cf;D4:($9c,$4e,$00,$a0,$c9,$5,$42,$5e)); |
(* |
* DPAID_LobbyProvider |
* |
* Chunk is a GUID describing the lobby provider that created the chunk. |
* All addresses must contain this chunk. |
*) |
// {59B95640-9667-11d0-A77D-0000F803ABFC} |
DPAID_LobbyProvider: TGUID = |
(D1:$59b95640;D2:$9667;D3:$11d0;D4:($a7,$7d,$00,$00,$f8,$3,$ab,$fc)); |
(* |
* DPAID_Phone and DPAID_PhoneW |
* |
* Chunk is a string containing a phone number (i.e. "1-800-555-1212") |
* in ANSI or UNICODE format |
*) |
// {78EC89A0-E0AF-11cf-9C4E-00A0C905425E} |
DPAID_Phone: TGUID = |
(D1:$78ec89a0;D2:$e0af;D3:$11cf;D4:($9c,$4e,$00,$a0,$c9,$5,$42,$5e)); |
// {BA5A7A70-9DBF-11d0-9CC1-00A0C905425E} |
DPAID_PhoneW: TGUID = |
(D1:$ba5a7a70;D2:$9dbf;D3:$11d0;D4:($9c,$c1,$00,$a0,$c9,$5,$42,$5e)); |
(* |
* DPAID_Modem and DPAID_ModemW |
* |
* Chunk is a string containing a modem name registered with TAPI |
* in ANSI or UNICODE format |
*) |
// {F6DCC200-A2FE-11d0-9C4F-00A0C905425E} |
DPAID_Modem: TGUID = |
(D1:$f6dcc200;D2:$a2fe;D3:$11d0;D4:($9c,$4f,$00,$a0,$c9,$5,$42,$5e)); |
// {01FD92E0-A2FF-11d0-9C4F-00A0C905425E} |
DPAID_ModemW: TGUID = |
(D1:$1fd92e0;D2:$a2ff;D3:$11d0;D4:($9c,$4f,$00,$a0,$c9,$5,$42,$5e)); |
(* |
* DPAID_Inet and DPAID_InetW |
* |
* Chunk is a string containing a TCP/IP host name or an IP address |
* (i.e. "dplay.microsoft.com" or "137.55.100.173") in ANSI or UNICODE format |
*) |
// {C4A54DA0-E0AF-11cf-9C4E-00A0C905425E} |
DPAID_INet: TGUID = |
(D1:$c4a54da0;D2:$e0af;D3:$11cf;D4:($9c,$4e,$00,$a0,$c9,$5,$42,$5e)); |
// {E63232A0-9DBF-11d0-9CC1-00A0C905425E} |
DPAID_INetW: TGUID = |
(D1:$e63232a0;D2:$9dbf;D3:$11d0;D4:($9c,$c1,$00,$a0,$c9,$5,$42,$5e)); |
(* |
* DPAID_InetPort |
* |
* Chunk is the port number used for creating the apps TCP and UDP sockets. |
* WORD value (i.e. 47624) |
*) |
// {E4524541-8EA5-11d1-8A96-006097B01411} |
DPAID_INetPort: TGUID = |
(D1:$e4524541;D2:$8ea5;D3:$11d1;D4:($8a,$96,$00,$60,$97,$b0,$14,$11)); |
//@@BEGIN_MSINTERNAL |
(* |
* DPAID_MaxMessageSize |
* |
* Tells DPLAY what the maximum allowed message size is. Enables SPs to |
* combat Denial of Service attacks |
*) |
// this terrible hack is needed so the SP can work with the Elmer build. |
// it can be removed when the MSINTERNAL stuff is removed |
{$DEFINE MAXMSGSIZEGUIDDEFINED} |
// {F5D09980-F0C4-11d1-8326-006097B01411} |
DPAID_MaxMessageSize: TGUID = |
(D1:$f5d09980;D2:$f0c4;D3:$11d1;D4:($83,$26,$00,$60,$97,$b0,$14,$11)); |
//@@END_MSINTERNAL |
(* |
* TDPComPortAddress |
* |
* Used to specify com port settings. The constants that define baud rate, |
* stop bits and parity are defined in WINBASE.H. The constants for flow |
* control are given below. |
*) |
DPCPA_NOFLOW = 0; // no flow control |
DPCPA_XONXOFFFLOW = 1; // software flow control |
DPCPA_RTSFLOW = 2; // hardware flow control with RTS |
11132,7 → 16822,7 |
type |
PDPComPortAddress = ^TDPComPortAddress; |
TDPComPortAddress = record |
TDPComPortAddress = packed record |
dwComPort: DWORD; // COM port to use (1-4) |
dwBaudRate: DWORD; // baud rate (100-256k) |
dwStopBits: DWORD; // no. stop bits (1-2) |
11140,16 → 16830,28 |
dwFlowControl: DWORD; // flow control (none, xon/xoff, rts, dtr) |
end; |
DPCOMPORTADDRESS = TDPComPortAddress; |
LPDPCOMPORTADDRESS = PDPComPortAddress; |
const |
DPAID_ComPort: TGUID = '{F2F0CE00-E0AF-11cf-9C4E-00A0C905425E}'; |
(* |
* DPAID_ComPort |
* |
* Chunk contains a TDPComPortAddress structure defining the serial port. |
*) |
{ dplobby 1.0 obsolete definitions } |
// {F2F0CE00-E0AF-11cf-9C4E-00A0C905425E} |
DPAID_ComPort: TGUID = |
(D1:$f2f0ce00;D2:$e0af;D3:$11cf;D4:($9c,$4e,$00,$a0,$c9,$5,$42,$5e)); |
(**************************************************************************** |
* |
* dplobby 1.0 obsolete definitions |
* Included for compatibility only. |
* |
****************************************************************************) |
DPLAD_SYSTEM = DPLMSG_SYSTEM; |
{$ENDIF} // UseDirectPlay |
//DirectSetup file |
(*========================================================================== |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
11157,10 → 16859,28 |
* File: dsetup.h |
* Content: DirectXSetup, error codes and flags |
* |
* DirectX 7.0 Delphi adaptation by Erik Unger |
* |
* Modyfied: 05-Oct-99 |
* |
* Download: http://www.delphi-jedi.org/DelphiGraphics/ |
* E-Mail: DelphiDirectX@next-reality.com |
* |
***************************************************************************) |
var |
DSetupDLL : HModule; |
type |
PDLSVersion = ^TDLSVersion; |
TDLSVersion = packed record |
dwVersionMS: DWORD; |
dwVersionLS: DWORD; |
end; |
const |
FOURCC_VERS = Ord('v') + Ord('e')*$100 + Ord('r')*$10000 + Ord('s')*$1000000; |
FOURCC_VERS : array[0..3] of Char = ('v','e','r','s'); |
// DSETUP Error Codes, must remain compatible with previous setup. |
DSETUPERR_SUCCESS_RESTART = HResult(1); |
11174,6 → 16894,7 |
DSETUPERR_CANTFINDINF = HResult(-7); |
DSETUPERR_CANTFINDDIR = HResult(-8); |
DSETUPERR_INTERNAL = HResult(-9); |
DSETUPERR_NTWITHNO3D = HResult(-10); // REM: obsolete, you'll never see this |
DSETUPERR_UNKNOWNOS = HResult(-11); |
DSETUPERR_USERHITCANCEL = HResult(-12); |
DSETUPERR_NOTPREINSTALLEDONNT = HResult(-13); |
11186,11 → 16907,12 |
DSETUP_DIRECTX = DSETUP_DXCORE or DSETUP_DDRAWDRV or DSETUP_DSOUNDDRV; |
DSETUP_TESTINSTALL = $00020000; (* just test install, don't do anything *) |
DSETUP_USEROLDERFLAG = $02000000; (* enable return DSETUPERR_NEWERVERSION *) |
// Bug #22730 |
DSETUP_NTINSTALL = $00080000; (* install on Win2K platform *) |
// These OBSOLETE flags are here for compatibility with pre-DX5 apps only. |
// They are present to allow DX3 apps to be recompiled with DX5 and still work. |
// DO NOT USE THEM for DX5. They will go away in future DX releases. |
DSETUP_DDRAW = $00000001; (* OBSOLETE. install DirectDraw *) |
DSETUP_DSOUND = $00000002; (* OBSOLETE. install DirectSound *) |
DSETUP_DPLAY = $00000004; (* OBSOLETE. install DirectPlay *) |
11242,45 → 16964,21 |
DSETUP_CB_UPGRADE_DEVICE_DISPLAY = $1000; |
DSETUP_CB_UPGRADE_DEVICE_MEDIA = $2000; |
type |
{ TDLSVersion } |
PDLSVersion = ^TDLSVersion; |
TDLSVersion = record |
dwVersionMS: DWORD; |
dwVersionLS: WORD; |
end; |
DLSVERSION = TDLSVersion; |
LPDLSVERSION = PDLSVersion; |
{ TDSetup_CB_UpgradeInfo } |
PDSetup_CB_UpgradeInfo = ^TDSetup_CB_UpgradeInfo; |
TDSetup_CB_UpgradeInfo = record |
UpgradeFlags: DWORD; |
end; |
DSETUP_CB_UPGRADEINFO = TDSetup_CB_UpgradeInfo; |
LPDSETUP_CB_UPGRADEINFO = PDSetup_CB_UpgradeInfo; |
{ TDSetup_CB_FileCopyError } |
PDSetup_CB_FileCopyError = ^TDSetup_CB_FileCopyError; |
TDSetup_CB_FileCopyError = record |
dwError: DWORD; |
end; |
DSETUP_CB_FILECOPYERROR = TDSetup_CB_FileCopyError; |
LPDSETUP_CB_FILECOPYERROR = PDSetup_CB_FileCopyError; |
// |
// Data Structures |
// |
{ TDirectXRegisterAppA } |
PDirectXRegisterAppA = ^TDirectXRegisterAppA; |
TDirectXRegisterAppA = record |
dwSize: DWORD; |
11293,11 → 16991,6 |
lpszCurrentDirectory: PAnsiChar; |
end; |
DIRECTXREGISTERAPPA = TDirectXRegisterAppA; |
LPDIRECTXREGISTERAPPA = PDirectXRegisterAppA; |
{ TDirectXRegisterApp2A } |
PDirectXRegisterApp2A = ^TDirectXRegisterApp2A; |
TDirectXRegisterApp2A = record |
dwSize: DWORD; |
11311,11 → 17004,6 |
lpszLauncherName: PAnsiChar; |
end; |
DIRECTXREGISTERAPP2A = TDirectXRegisterApp2A; |
LPDIRECTXREGISTERAPP2A = PDirectXRegisterApp2A; |
{ TDirectXRegisterAppW } |
PDirectXRegisterAppW = ^TDirectXRegisterAppW; |
TDirectXRegisterAppW = record |
dwSize: DWORD; |
11328,11 → 17016,6 |
lpszCurrentDirectory: PWideChar; |
end; |
DIRECTXREGISTERAPPW = TDirectXRegisterAppW; |
LPDIRECTXREGISTERAPPW = PDirectXRegisterAppW; |
{ TDirectXRegisterApp2W } |
PDirectXRegisterApp2W = ^TDirectXRegisterApp2W; |
TDirectXRegisterApp2W = record |
dwSize: DWORD; |
11346,75 → 17029,102 |
lpszLauncherName: PWideChar; |
end; |
DIRECTXREGISTERAPP2W = TDirectXRegisterApp2W; |
LPDIRECTXREGISTERAPP2W = PDirectXRegisterApp2W; |
{ TDirectXRegisterApp } |
PDirectXRegisterApp = PDirectXRegisterAppA; |
PDirectXRegisterApp = ^TDirectXRegisterApp; |
PDirectXRegisterApp2 = ^TDirectXRegisterApp2; |
{$IFDEF UNICODE} |
TDirectXRegisterApp = TDirectXRegisterAppW; |
TDirectXRegisterApp2 = TDirectXRegisterApp2W; |
{$ELSE} |
TDirectXRegisterApp = TDirectXRegisterAppA; |
PDirectXRegisterApp2 = PDirectXRegisterApp2A; |
TDirectXRegisterApp2 = TDirectXRegisterApp2A; |
{$ENDIF} |
DIRECTXREGISTERAPP = TDirectXRegisterApp; |
LPDIRECTXREGISTERAPP = PDirectXRegisterApp; |
// |
// API |
// |
var |
DirectXSetupW : function (hWnd: HWND; lpszRootPath: PWideChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXSetupA : function (hWnd: HWND; lpszRootPath: PAnsiChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXSetup : function (hWnd: HWND; lpszRootPath: PCharAW; dwFlags: DWORD) : Integer; stdcall; |
DIRECTXREGISTERAPP2 = TDirectXRegisterApp2; |
LPDIRECTXREGISTERAPP2 = PDirectXRegisterApp2; |
DirectXDeviceDriverSetupW : function (hWnd: HWND; lpszDriverClass: PWideChar; |
lpszDriverPath: PWideChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXDeviceDriverSetupA : function (hWnd: HWND; lpszDriverClass: PAnsiChar; |
lpszDriverPath: PAnsiChar; dwFlags: DWORD) : Integer; stdcall; |
DirectXDeviceDriverSetup : function (hWnd: HWND; lpszDriverClass: PCharAW; |
lpszDriverPath: PCharAW; dwFlags: DWORD) : Integer; stdcall; |
{ API } |
DirectXRegisterApplicationW : function |
(hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppW) : Integer; stdcall; |
DirectXRegisterApplicationA : function |
(hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppA) : Integer; stdcall; |
DirectXRegisterApplication : function |
(hWnd: HWND; const lpDXRegApp: TDirectXRegisterApp) : Integer; stdcall; |
function DirectXSetupA(hWnd: HWND; lpszRootPath: PAnsiChar; dwFlags: DWORD): Longint; stdcall; |
function DirectXSetupW(hWnd: HWND; lpszRootPath: PWideChar; dwFlags: DWORD): Longint; stdcall; |
function DirectXSetup(hWnd: HWND; lpszRootPath: PAnsiChar; dwFlags: DWORD): Longint; stdcall; |
DirectXUnRegisterApplication : function |
(hWnd: HWND; const lpGUID: TGUID) : Integer; stdcall; |
function DirectXDeviceDriverSetupA(hWnd: HWND; lpszDriverClass: PAnsiChar; |
lpszDriverPath: PAnsiChar; dwFlags: DWORD): Longint; stdcall; |
function DirectXDeviceDriverSetupW(hWnd: HWND; lpszDriverClass: PWideChar; |
lpszDriverPath: PWideChar; dwFlags: DWORD): Longint; stdcall; |
function DirectXDeviceDriverSetup(hWnd: HWND; lpszDriverClass: PAnsiChar; |
lpszDriverPath: PAnsiChar; dwFlags: DWORD): Longint; stdcall; |
type |
TDSetup_Callback = function (Reason: DWORD; MsgType: DWORD; // Same as flags to MessageBox |
szMessage: PChar; szName: PChar; pInfo: Pointer) : DWORD; stdcall; |
function DirectXRegisterApplicationA(hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppA): Longint; stdcall; |
function DirectXRegisterApplicationW(hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppW): Longint; stdcall; |
function DirectXRegisterApplication(hWnd: HWND; const lpDXRegApp: TDirectXRegisterAppA): Longint; stdcall; |
function DirectXUnRegisterApplication(hWnd: HWND; const lpGUID: TGUID): Longint; stdcall; |
var |
DirectXSetupSetCallback : function (Callback: TDSetup_Callback) : Integer; stdcall; |
type |
TDSetup_Callback = function (Reason: DWORD; MsgType: DWORD; |
szMessage: PAnsiChar; szName: PAnsiChar; pInfo: Pointer): DWORD; stdcall; |
DSETUP_CALLBACK = TDSetup_Callback; |
DirectXSetupGetVersion : function (out lpdwVersion, lpdwMinorVersion: DWORD) : Integer; stdcall; |
function DirectXSetupSetCallback(Callback: TDSetup_Callback): Longint; stdcall; |
function DirectXSetupGetVersion(var lpdwVersion, lpdwMinorVersion: DWORD): Longint; stdcall; |
//DirectSound file |
(*==========================================================================; |
* |
* Copyright (C) 1995,1996 Microsoft Corporation. All Rights Reserved. |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: dsound.h |
* Content: DirectSound include file |
* |
**************************************************************************) |
* DirectX 7.0 Delphi adaptation by Erik Unger |
* |
* Modified: 10-Sep-2000 |
* |
* Download: http://www.delphi-jedi.org/DelphiGraphics/ |
* E-Mail: DelphiDirectX@next-reality.com |
* |
***************************************************************************) |
{ GUIDS used by DirectDraw objects } |
{ |
Windows 98 and debug versions DInput and DSound |
Under Windows 98, the "debug" setup of the DirectX SDK 6.x skips DInput.DLL |
and DSound.DLL, i.e. makes you end up with the retail version of these two |
files without any notice. |
The debug versions of DInput.DLL and DSound.DLL can be found in the |
\extras\Win98\Win98Dbg folder of the SDK CD; they need to be installed |
"manually". |
} |
var |
DSoundDLL : HMODULE; |
function DSErrorString(Value: HResult) : string; |
const |
CLSID_DirectSound: TGUID = '{47D4D946-62E8-11cf-93BC-444553540000}'; |
CLSID_DirectSoundCapture: TGUID = '{B0210780-89CD-11d0-AF08-00A0C925CD16}'; |
_FACDS = $878; |
function MAKE_DSHResult(code: DWORD) : HResult; |
IID_IDirectSound: TGUID = '{279AFA83-4981-11CE-A521-0020AF0BE560}'; |
IID_IDirectSoundBuffer: TGUID = '{279AFA85-4981-11CE-A521-0020AF0BE560}'; |
IID_IDirectSound3DListener: TGUID = '{279AFA84-4981-11CE-A521-0020AF0BE560}'; |
IID_IDirectSound3DBuffer: TGUID = '{279AFA86-4981-11CE-A521-0020AF0BE560}'; |
IID_IDirectSoundCapture: TGUID = '{B0210781-89CD-11D0-AF08-00A0C925CD16}'; |
IID_IDirectSoundCaptureBuffer: TGUID = '{B0210782-89CD-11D0-AF08-00A0C925CD16}'; |
const |
FLT_MIN = 1.175494351E-38; |
FLT_MAX = 3.402823466E+38; |
IID_IDirectSoundNotify: TGUID = '{B0210783-89CD-11D0-AF08-00A0C925CD16}'; |
const |
// Direct Sound Component GUID {47D4D946-62E8-11cf-93BC-444553540000} |
CLSID_DirectSound: TGUID = '{47D4D946-62E8-11cf-93BC-444553540000}'; |
{ DirectSound Structures } |
// DirectSound Capture Component GUID {B0210780-89CD-11d0-AF08-00A0C925CD16} |
CLSID_DirectSoundCapture: TGUID = '{47D4D946-62E8-11cf-93BC-444553540000}'; |
// |
// Structures |
// |
type |
IDirectSound = interface; |
IDirectSoundBuffer = interface; |
11423,11 → 17133,10 |
IDirectSoundCapture = interface; |
IDirectSoundCaptureBuffer = interface; |
IDirectSoundNotify = interface; |
IKsPropertySet = interface; |
{ TDSCaps } |
PDSCaps = ^TDSCaps; |
TDSCaps = record |
TDSCaps = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
dwMinSecondarySampleRate: DWORD; |
11453,14 → 17162,10 |
dwReserved1: DWORD; |
dwReserved2: DWORD; |
end; |
PCDSCaps = ^TDSCaps; |
DSCAPS = TDSCaps; |
LPDSCAPS = PDSCaps; |
{ TDSBCaps } |
PDSBCaps = ^TDSBCaps; |
TDSBCaps = record |
TDSBCaps = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
dwBufferBytes: DWORD; |
11467,45 → 17172,61 |
dwUnlockTransferRate: DWORD; |
dwPlayCpuOverhead: DWORD; |
end; |
PCDSBCaps = ^TDSBCaps; |
DSBCAPS = TDSBCaps; |
LPDSBCAPS = DSBCAPS; |
{ TDSBufferDesc } |
PDSBufferDesc = ^TDSBufferDesc; |
TDSBufferDesc = record |
TDSBufferDesc_DX6 = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
dwBufferBytes: DWORD; |
dwReserved: DWORD; |
lpwfxFormat: PWaveFormatEx; |
{$IFDEF SupportDirectX7} |
guid3DAlgorithm: TGUID; |
{$ENDIF} |
end; |
DSBUFFERDESC = TDSBufferDesc; |
LPDSBUFFERDESC = PDSBufferDesc; |
TDSBufferDesc1 = TDSBufferDesc_DX6; |
PDSBufferDesc1 = ^TDSBufferDesc1; |
PCDSBufferDesc1 = PDSBufferDesc1; |
{ TDSBufferDesc1 } |
PDSBufferDesc1 = ^TDSBufferDesc1; |
TDSBufferDesc1 = record |
TDSBufferDesc_DX7 = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
dwBufferBytes: DWORD; |
dwReserved: DWORD; |
lpwfxFormat: PWaveFormatEx; |
guid3DAlgorithm: TGUID; |
end; |
DSBUFFERDESC1 = TDSBufferDesc1; |
LPDSBUFFERDESC1 = PDSBufferDesc1; |
{$IFDEF DIRECTX6} |
TDSBufferDesc = TDSBufferDesc_DX6; |
{$ELSE} |
TDSBufferDesc = TDSBufferDesc_DX7; |
{$ENDIF} |
{ TDS3DBuffer } |
PDSBufferDesc = ^TDSBufferDesc; |
PCDSBufferDesc = PDSBufferDesc; |
(*** |
// Snipped from D3DTypes.pas: |
TD3DValue = Single; |
PD3DVector = ^TD3DVector; |
TD3DVector = packed record |
case Integer of |
0: ( |
x: TD3DValue; |
y: TD3DValue; |
z: TD3DValue; |
); |
1: ( |
dvX: TD3DValue; |
dvY: TD3DValue; |
dvZ: TD3DValue; |
); |
end; |
*) |
PDS3DBuffer = ^TDS3DBuffer; |
TDS3DBuffer = record |
TDS3DBuffer = packed record |
dwSize: DWORD; |
vPosition: TD3DVector; |
vVelocity: TD3DVector; |
11512,19 → 17233,15 |
dwInsideConeAngle: DWORD; |
dwOutsideConeAngle: DWORD; |
vConeOrientation: TD3DVector; |
lConeOutsideVolume: Longint; |
lConeOutsideVolume: LongInt; |
flMinDistance: TD3DValue; |
flMaxDistance: TD3DValue; |
dwMode: DWORD; |
end; |
TCDS3DBuffer = ^TDS3DBuffer; |
DS3DBUFFER = TDS3DBuffer; |
LPDS3DBUFFER = PDS3DBuffer; |
{ TDS3DListener } |
PDS3DListener = ^TDS3DListener; |
TDS3DListener = record |
TDS3DListener = packed record |
dwSize: DWORD; |
vPosition: TD3DVector; |
vVelocity: TD3DVector; |
11534,27 → 17251,19 |
flRolloffFactor: TD3DValue; |
flDopplerFactor: TD3DValue; |
end; |
PCDS3DListener = ^TDS3DListener; |
DS3DLISTENER = TDS3DListener; |
LPDS3DLISTENER = PDS3DListener; |
{ TDSCCaps } |
PDSCCaps = ^TDSCCaps; |
TDSCCaps = record |
TDSCCaps = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
dwFormats: DWORD; |
dwChannels: DWORD; |
end; |
PCDSCCaps = ^TDSCCaps; |
DSCCAPS = TDSCCaps; |
LPDSCCAPS = PDSCCaps; |
{ TDSCBufferDesc } |
PDSCBufferDesc = ^TDSCBufferDesc; |
TDSCBufferDesc = record |
TDSCBufferDesc = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
dwBufferBytes: DWORD; |
11561,41 → 17270,45 |
dwReserved: DWORD; |
lpwfxFormat: PWaveFormatEx; |
end; |
PCDSCBufferDesc = ^TDSCBufferDesc; |
DSCBUFFERDESC = TDSCBufferDesc; |
LPDSCBUFFERDESC = PDSCBufferDesc; |
{ TDSCBCaps } |
PDSCBCaps = ^TDSCBCaps; |
TDSCBCaps = record |
TDSCBCaps = packed record |
dwSize: DWORD; |
dwFlags: DWORD; |
dwBufferBytes: DWORD; |
dwReserved: DWORD; |
end; |
PCDSCBCaps = ^TDSCBCaps; |
DSCBCAPS = TDSCBCaps; |
LPDSCBCAPS = PDSCBCaps; |
{ TDSBPositionNotify } |
PDSBPositionNotify = ^TDSBPositionNotify; |
TDSBPositionNotify = record |
TDSBPositionNotify = packed record |
dwOffset: DWORD; |
hEventNotify: THandle; |
end; |
PCDSBPositionNotify = ^TDSBPositionNotify; |
DSBPOSITIONNOTIFY = TDSBPositionNotify; |
LPDSBPOSITIONNOTIFY = PDSBPositionNotify; |
// |
// DirectSound API |
// |
TDSEnumCallbackW = function (lpGuid: PGUID; lpstrDescription: PWideChar; |
lpstrModule: PWideChar; lpContext: Pointer) : BOOL; stdcall; |
TDSEnumCallbackA = function (lpGuid: PGUID; lpstrDescription: PAnsiChar; |
lpstrModule: PAnsiChar; lpContext: Pointer) : BOOL; stdcall; |
{$IFDEF UNICODE} |
TDSEnumCallback = TDSEnumCallbackW; |
{$ELSE} |
TDSEnumCallback = TDSEnumCallbackA; |
{$ENDIF} |
{ IDirectSound } |
// |
// IDirectSound |
// |
IDirectSound = interface(IUnknown) |
['{279AFA83-4981-11CE-A521-0020AF0BE560}'] |
// IDirectSound methods |
function CreateSoundBuffer(const lpDSBufferDesc: TDSBufferDesc; |
out lplpDirectSoundBuffer: IDirectSoundBuffer; |
out lpIDirectSoundBuffer: IDirectSoundBuffer; |
pUnkOuter: IUnknown): HResult; stdcall; |
function GetCaps(var lpDSCaps: TDSCaps): HResult; stdcall; |
function DuplicateSoundBuffer(lpDsbOriginal: IDirectSoundBuffer; |
11607,31 → 17320,32 |
function Initialize(lpGuid: PGUID): HResult; stdcall; |
end; |
{ IDirectSoundBuffer } |
// |
// IDirectSoundBuffer |
// |
IDirectSoundBuffer = interface(IUnknown) |
['{279AFA85-4981-11CE-A521-0020AF0BE560}'] |
// IDirectSoundBuffer methods |
function GetCaps(var lpDSBufferCaps: TDSBCaps): HResult; stdcall; |
function GetCurrentPosition(var lpdwCurrentPlayCursor, |
lpdwCurrentWriteCursor: DWORD): HResult; stdcall; |
function GetFormat(var lpwfxFormat: TWaveFormatEx; dwSizeAllocated: DWORD; |
var lpdwSizeWritten: DWORD): HResult; stdcall; |
function GetVolume(var lplVolume: Longint): HResult; stdcall; |
function GetPan(var lplPan: Longint): HResult; stdcall; |
function GetCaps(var lpDSCaps: TDSBCaps) : HResult; stdcall; |
function GetCurrentPosition |
(lpdwCapturePosition, lpdwReadPosition : PDWORD) : HResult; stdcall; |
function GetFormat(lpwfxFormat: PWaveFormatEx; dwSizeAllocated: DWORD; |
lpdwSizeWritten: PWORD) : HResult; stdcall; |
function GetVolume(var lplVolume: integer) : HResult; stdcall; |
function GetPan(var lplPan: integer) : HResult; stdcall; |
function GetFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
function GetStatus(var lpdwStatus: DWORD): HResult; stdcall; |
function Initialize(lpDirectSound: IDirectSound; const |
lpDSBufferDesc: TDSBufferDesc): HResult; stdcall; |
function Lock(dwWriteCursor: DWORD; dwWriteBytes: DWORD; |
function Initialize(lpDirectSound: IDirectSound; |
const lpcDSBufferDesc: TDSBufferDesc) : HResult; stdcall; |
function Lock(dwWriteCursor, dwWriteBytes: DWORD; |
var lplpvAudioPtr1: Pointer; var lpdwAudioBytes1: DWORD; |
var lplpvAudioPtr2: Pointer; var lpdwAudioBytes2: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
function Play(dwReserved1, dwReserved2: DWORD; dwFlags: DWORD): HResult; stdcall; |
function SetCurrentPosition(dwNewPosition: DWORD): HResult; stdcall; |
function SetFormat(const lpfxFormat: TWaveFormatEx): HResult; stdcall; |
function SetVolume(lVolume: Longint): HResult; stdcall; |
function SetPan(lPan: Longint): HResult; stdcall; |
function Play(dwReserved1,dwReserved2,dwFlags: DWORD) : HResult; stdcall; |
function SetCurrentPosition(dwPosition: DWORD) : HResult; stdcall; |
function SetFormat(const lpcfxFormat: TWaveFormatEx) : HResult; stdcall; |
function SetVolume(lVolume: integer) : HResult; stdcall; |
function SetPan(lPan: integer) : HResult; stdcall; |
function SetFrequency(dwFrequency: DWORD): HResult; stdcall; |
function Stop: HResult; stdcall; |
function Unlock(lpvAudioPtr1: Pointer; dwAudioBytes1: DWORD; |
11639,49 → 17353,59 |
function Restore: HResult; stdcall; |
end; |
{ IDirectSound3DListener } |
// |
// IDirectSound3DListener |
// |
IDirectSound3DListener = interface(IUnknown) |
['{279AFA84-4981-11CE-A521-0020AF0BE560}'] |
// IDirectSound3DListener methods |
// IDirectSound3D methods |
function GetAllParameters(var lpListener: TDS3DListener): HResult; stdcall; |
function GetDistanceFactor(var lpflDistanceFactor: TD3DValue): HResult; stdcall; |
function GetDopplerFactor(var lpflDopplerFactor: TD3DValue): HResult; stdcall; |
function GetOrientation(var lpvOrientFront, lpvOrientTop: TD3DVector): HResult; stdcall; |
function GetOrientation |
(var lpvOrientFront, lpvOrientTop: TD3DVector) : HResult; stdcall; |
function GetPosition(var lpvPosition: TD3DVector): HResult; stdcall; |
function GetRolloffFactor(var lpflRolloffFactor: TD3DValue): HResult; stdcall; |
function GetVelocity(var lpvVelocity: TD3DVector): HResult; stdcall; |
function SetAllParameters(const lpListener: TDS3DListener; dwApply: DWORD): HResult; stdcall; |
function SetDistanceFactor(flDistanceFactor: TD3DValue; dwApply: DWORD): HResult; stdcall; |
function SetDopplerFactor(flDopplerFactor: TD3DValue; dwApply: DWORD): HResult; stdcall; |
function SetAllParameters |
(const lpcListener: TDS3DListener; dwApply: DWORD) : HResult; stdcall; |
function SetDistanceFactor |
(flDistanceFactor: TD3DValue; dwApply: DWORD) : HResult; stdcall; |
function SetDopplerFactor |
(flDopplerFactor: TD3DValue; dwApply: DWORD) : HResult; stdcall; |
function SetOrientation(xFront, yFront, zFront, xTop, yTop, zTop: TD3DValue; |
dwApply: DWORD): HResult; stdcall; |
function SetPosition(x, y, z: TD3DValue; dwApply: DWORD): HResult; stdcall; |
function SetRolloffFactor(flRolloffFactor: TD3DValue; dwApply: DWORD): HResult; stdcall; |
function SetRolloffFactor |
(flRolloffFactor: TD3DValue; dwApply: DWORD) : HResult; stdcall; |
function SetVelocity(x, y, z: TD3DValue; dwApply: DWORD): HResult; stdcall; |
function CommitDeferredSettings: HResult; stdcall; |
end; |
{ IDirectSound3DBuffer } |
// |
// IDirectSound3DBuffer |
// |
IDirectSound3DBuffer = interface(IUnknown) |
['{279AFA86-4981-11CE-A521-0020AF0BE560}'] |
// IDirectSound3DBuffer methods |
// IDirectSoundBuffer3D methods |
function GetAllParameters(var lpDs3dBuffer: TDS3DBuffer): HResult; stdcall; |
function GetConeAngles(var lpdwInsideConeAngle: DWORD; |
var lpdwOutsideConeAngle: DWORD): HResult; stdcall; |
function GetConeAngles |
(var lpdwInsideConeAngle, lpdwOutsideConeAngle: DWORD) : HResult; stdcall; |
function GetConeOrientation(var lpvOrientation: TD3DVector): HResult; stdcall; |
function GetConeOutsideVolume(var lplConeOutsideVolume: Longint): HResult; stdcall; |
function GetConeOutsideVolume(var lplConeOutsideVolume: integer) : HResult; stdcall; |
function GetMaxDistance(var lpflMaxDistance: TD3DValue): HResult; stdcall; |
function GetMinDistance(var lpflMinDistance: TD3DValue): HResult; stdcall; |
function GetMode(var lpdwMod: DWORD): HResult; stdcall; |
function GetMode(var lpdwMode: DWORD) : HResult; stdcall; |
function GetPosition(var lpvPosition: TD3DVector): HResult; stdcall; |
function GetVelocity(var lpvVelocity: TD3DVector): HResult; stdcall; |
function SetAllParameters(const lpDs3dBuffer: TDS3DBuffer; dwApply: DWORD): HResult; stdcall; |
function SetConeAngles(dwInsideConeAngle: DWORD; dwOutsideConeAngle: DWORD; |
dwApply: DWORD): HResult; stdcall; |
function SetAllParameters |
(const lpcDs3dBuffer: TDS3DBuffer; dwApply: DWORD) : HResult; stdcall; |
function SetConeAngles |
(dwInsideConeAngle, dwOutsideConeAngle, dwApply: DWORD) : HResult; stdcall; |
function SetConeOrientation(x, y, z: TD3DValue; dwApply: DWORD): HResult; stdcall; |
function SetConeOutsideVolume(lConeOutsideVolume: Longint; dwApply: DWORD): HResult; stdcall; |
function SetConeOutsideVolume |
(lConeOutsideVolume: LongInt; dwApply: DWORD) : HResult; stdcall; |
function SetMaxDistance(flMaxDistance: TD3DValue; dwApply: DWORD): HResult; stdcall; |
function SetMinDistance(flMinDistance: TD3DValue; dwApply: DWORD): HResult; stdcall; |
function SetMode(dwMode: DWORD; dwApply: DWORD): HResult; stdcall; |
11689,32 → 17413,36 |
function SetVelocity(x, y, z: TD3DValue; dwApply: DWORD): HResult; stdcall; |
end; |
{ IDirectSoundCapture } |
// |
// IDirectSoundCapture |
// |
IDirectSoundCapture = interface(IUnknown) |
['{B0210781-89CD-11D0-AF08-00A0C925CD16}'] |
['{b0210781-89cd-11d0-af08-00a0c925cd16}'] |
// IDirectSoundCapture methods |
function CreateCaptureBuffer(const lpDSCBufferDesc: TDSCBufferDesc; |
out lplpDirectSoundCaptureBuffer: IDirectSoundCaptureBuffer; |
var lplpDirectSoundCaptureBuffer: IDirectSoundCaptureBuffer; |
pUnkOuter: IUnknown): HResult; stdcall; |
function GetCaps(var lpDSCCaps: TDSCCaps): HResult; stdcall; |
function GetCaps(var lpdwCaps: TDSCCaps) : HResult; stdcall; |
function Initialize(lpGuid: PGUID): HResult; stdcall; |
end; |
{ IDirectSoundCaptureBuffer } |
// |
// IDirectSoundCaptureBuffer |
// |
IDirectSoundCaptureBuffer = interface(IUnknown) |
['{B0210782-89CD-11D0-AF08-00A0C925CD16}'] |
['{b0210782-89cd-11d0-af08-00a0c925cd16}'] |
// IDirectSoundCaptureBuffer methods |
function GetCaps(var lpDSCBCaps: TDSCBCaps): HResult; stdcall; |
function GetCurrentPosition(var lpdwCapturePosition, |
lpdwReadPosition: DWORD): HResult; stdcall; |
function GetFormat(var lpwfxFormat: TWaveFormatEx; dwSizeAllocated: DWORD; |
var lpdwSizeWritten: DWORD): HResult; stdcall; |
function GetCaps(var lpdwCaps: TDSCBCaps) : HResult; stdcall; |
function GetCurrentPosition |
(lpdwCapturePosition, lpdwReadPosition: PDWORD) : HResult; stdcall; |
function GetFormat(lpwfxFormat: PWaveFormatEx; dwSizeAllocated: DWORD; |
lpdwSizeWritten : PDWORD) : HResult; stdcall; |
function GetStatus(var lpdwStatus: DWORD): HResult; stdcall; |
function Initialize(lpDirectSoundCapture: IDirectSoundCapture; |
const lpcDSBufferDesc: TDSCBufferDesc): HResult; stdcall; |
function Lock(dwReadCursor: DWORD; dwReadBytes: DWORD; |
function Lock(dwReadCursor, dwReadBytes: DWORD; |
var lplpvAudioPtr1: Pointer; var lpdwAudioBytes1: DWORD; |
var lplpvAudioPtr2: Pointer; var lpdwAudioBytes2: DWORD; |
dwFlags: DWORD): HResult; stdcall; |
11724,65 → 17452,148 |
lpvAudioPtr2: Pointer; dwAudioBytes2: DWORD): HResult; stdcall; |
end; |
{ IDirectSoundNotify } |
// |
// IDirectSoundNotify |
// |
IDirectSoundNotify = interface(IUnknown) |
['{B0210783-89CD-11D0-AF08-00A0C925CD16}'] |
['{b0210783-89cd-11d0-af08-00a0c925cd16}'] |
// IDirectSoundNotify methods |
function SetNotificationPositions(cPositionNotifies: DWORD; |
const lpcPositionNotifies): HResult; stdcall; |
const lpcPositionNotifies: TDSBPositionNotify) : HResult; stdcall; |
end; |
{ IKsPropertySet } |
// |
// IKsPropertySet |
// |
IKsPropertySet = interface (IUnknown) |
['{31efac30-515c-11d0-a9aa-00aa0061be93}'] |
// IKsPropertySet methods |
function Get(const rguidPropSet: TGUID; ulId: DWORD; var pInstanceData; |
ulInstanceLength: DWORD; var pPropertyData; ulDataLength: DWORD; |
var pulBytesReturned: DWORD) : HResult; stdcall; |
// Warning: The following method is defined as Set() in DirectX |
// which is a reserved word in Delphi! |
function SetProperty(const rguidPropSet: TGUID; ulId: DWORD; |
var pInstanceData; ulInstanceLength: DWORD; |
var pPropertyData; pulDataLength: DWORD) : HResult; stdcall; |
function QuerySupport(const rguidPropSet: TGUID; ulId: DWORD; |
var pulTypeSupport: DWORD) : HResult; stdcall; |
end; |
const |
KSPROPERTY_SUPPORT_GET = $00000001; |
KSPROPERTY_SUPPORT_SET = $00000002; |
IID_IKsPropertySet: TGUID = (D1:$31efac30;D2:$515c;D3:$11d0;D4:($a9,$aa,$00,$aa,$00,$61,$be,$93)); |
// |
// GUID's for all the objects |
// |
type |
IKsPropertySet = interface; |
IID_IDirectSound = IDirectSound; |
IID_IDirectSoundBuffer = IDirectSoundBuffer; |
IID_IDirectSound3DListener = IDirectSound3DListener; |
IID_IDirectSound3DBuffer = IDirectSound3DBuffer; |
IID_IDirectSoundCapture = IDirectSoundCapture; |
IID_IDirectSoundCaptureBuffer = IDirectSoundCaptureBuffer; |
IID_IDirectSoundNotify = IDirectSoundNotify; |
IID_IKsPropertySet = IKsPropertySet; |
IKsPropertySet = interface(IUnknown) |
['{31EFAC30-515C-11D0-A9AA-00AA0061BE93}'] |
// IKsPropertySet methods |
function GetProperty(const PropertySetId: TGUID; PropertyId: DWORD; |
var pPropertyParams; cbPropertyParams: DWORD; |
var pPropertyData; cbPropertyData: DWORD; |
var pcbReturnedData: ULONG): HResult; stdcall; |
function SetProperty(const PropertySetId: TGUID; PropertyId: DWORD; |
const pPropertyParams; cbPropertyParams: DWORD; |
const pPropertyData; cbPropertyData: DWORD): HResult; stdcall; |
function QuerySupport(const PropertySetId: TGUID; PropertyId: DWORD; |
var pSupport: ULONG): HResult; stdcall; |
end; |
// |
// Creation Routines |
// |
var |
DirectSoundCreate : function ( lpGuid: PGUID; out ppDS: IDirectSound; |
pUnkOuter: IUnknown) : HResult; stdcall; |
{ Return Codes } |
DirectSoundEnumerateW : function (lpDSEnumCallback: TDSEnumCallbackW; |
lpContext: Pointer) : HResult; stdcall; |
DirectSoundEnumerateA : function (lpDSEnumCallback: TDSEnumCallbackA; |
lpContext: Pointer) : HResult; stdcall; |
DirectSoundEnumerate : function (lpDSEnumCallback: TDSEnumCallback; |
lpContext: Pointer) : HResult; stdcall; |
DirectSoundCaptureCreate : function (lpGUID: PGUID; |
out lplpDSC: IDirectSoundCapture; |
pUnkOuter: IUnknown) : HResult; stdcall; |
DirectSoundCaptureEnumerateW : function (lpDSEnumCallback: TDSEnumCallbackW; |
lpContext: Pointer) : HResult; stdcall; |
DirectSoundCaptureEnumerateA : function (lpDSEnumCallback: TDSEnumCallbackA; |
lpContext: Pointer) : HResult; stdcall; |
DirectSoundCaptureEnumerate : function(lpDSEnumCallback: TDSEnumCallback; |
lpContext: Pointer) : HResult; stdcall; |
// |
// Return Codes |
// |
const |
DS_OK = HResult(S_OK); |
DS_NO_VIRTUALIZATION = HResult($878000A); |
DSERR_ALLOCATED = HResult($88780000 + 10); |
DSERR_CONTROLUNAVAIL = HResult($88780000 + 30); |
DSERR_INVALIDPARAM = HResult(E_INVALIDARG); |
DSERR_INVALIDCALL = HResult($88780000 + 50); |
DSERR_GENERIC = HResult(E_FAIL); |
DSERR_PRIOLEVELNEEDED = HResult($88780000 + 70); |
DSERR_OUTOFMEMORY = HResult(E_OUTOFMEMORY); |
DSERR_BADFORMAT = HResult($88780000 + 100); |
DSERR_UNSUPPORTED = HResult(E_NOTIMPL); |
DSERR_NODRIVER = HResult($88780000 + 120); |
DSERR_ALREADYINITIALIZED = HResult($88780000 + 130); |
DSERR_NOAGGREGATION = HResult(CLASS_E_NOAGGREGATION); |
DSERR_BUFFERLOST = HResult($88780000 + 150); |
DSERR_OTHERAPPHASPRIO = HResult($88780000 + 160); |
DSERR_UNINITIALIZED = HResult($88780000 + 170); |
DSERR_NOINTERFACE = HResult(E_NOINTERFACE); |
DSERR_ACCESSDENIED = HResult(E_ACCESSDENIED); |
MAKE_DSHRESULT_ = HResult($88780000); |
{ Flags } |
DS_OK = 0; |
// The function completed successfully, but we had to substitute the 3D algorithm |
DS_NO_VIRTUALIZATION = MAKE_DSHRESULT_ + 10; |
// The call failed because resources (such as a priority level) |
// were already being used by another caller. |
DSERR_ALLOCATED = MAKE_DSHRESULT_ + 10; |
// The control (vol,pan,etc.) requested by the caller is not available. |
DSERR_CONTROLUNAVAIL = MAKE_DSHRESULT_ + 30; |
// An invalid parameter was passed to the returning function |
DSERR_INVALIDPARAM = E_INVALIDARG; |
// This call is not valid for the current state of this object |
DSERR_INVALIDCALL = MAKE_DSHRESULT_ + 50; |
// An undetermined error occured inside the DirectSound subsystem |
DSERR_GENERIC = E_FAIL; |
// The caller does not have the priority level required for the function to |
// succeed. |
DSERR_PRIOLEVELNEEDED = MAKE_DSHRESULT_ + 70; |
// Not enough free memory is available to complete the operation |
DSERR_OUTOFMEMORY = E_OUTOFMEMORY; |
// The specified WAVE format is not supported |
DSERR_BADFORMAT = MAKE_DSHRESULT_ + 100; |
// The function called is not supported at this time |
DSERR_UNSUPPORTED = E_NOTIMPL; |
// No sound driver is available for use |
DSERR_NODRIVER = MAKE_DSHRESULT_ + 120; |
// This object is already initialized |
DSERR_ALREADYINITIALIZED = MAKE_DSHRESULT_ + 130; |
// This object does not support aggregation |
DSERR_NOAGGREGATION = CLASS_E_NOAGGREGATION; |
// The buffer memory has been lost, and must be restored. |
DSERR_BUFFERLOST = MAKE_DSHRESULT_ + 150; |
// Another app has a higher priority level, preventing this call from |
// succeeding. |
DSERR_OTHERAPPHASPRIO = MAKE_DSHRESULT_ + 160; |
// This object has not been initialized |
DSERR_UNINITIALIZED = MAKE_DSHRESULT_ + 170; |
// The requested COM interface is not available |
DSERR_NOINTERFACE = E_NOINTERFACE; |
// Access is denied |
DSERR_ACCESSDENIED = E_ACCESSDENIED; |
// |
// Flags |
// |
DSCAPS_PRIMARYMONO = $00000001; |
DSCAPS_PRIMARYSTEREO = $00000002; |
DSCAPS_PRIMARY8BIT = $00000004; |
11807,11 → 17618,16 |
DSSPEAKER_SURROUND = $00000005; |
DSSPEAKER_5POINT1 = $00000006; |
DSSPEAKER_GEOMETRY_MIN = $00000005; |
DSSPEAKER_GEOMETRY_NARROW = $0000000A; |
DSSPEAKER_GEOMETRY_WIDE = $00000014; |
DSSPEAKER_GEOMETRY_MAX = $000000B4; |
DSSPEAKER_GEOMETRY_MIN = $00000005; // 5 degrees |
DSSPEAKER_GEOMETRY_NARROW = $0000000A; // 10 degrees |
DSSPEAKER_GEOMETRY_WIDE = $00000014; // 20 degrees |
DSSPEAKER_GEOMETRY_MAX = $000000B4; // 180 degrees |
function DSSPEAKER_COMBINED(c, g: variant) : DWORD; |
function DSSPEAKER_CONFIG(a: variant) : byte; |
function DSSPEAKER_GEOMETRY(a: variant) : byte; |
const |
DSBCAPS_PRIMARYBUFFER = $00000001; |
DSBCAPS_STATIC = $00000002; |
DSBCAPS_LOCHARDWARE = $00000004; |
11821,8 → 17637,6 |
DSBCAPS_CTRLPAN = $00000040; |
DSBCAPS_CTRLVOLUME = $00000080; |
DSBCAPS_CTRLPOSITIONNOTIFY = $00000100; |
DSBCAPS_CTRLDEFAULT = $000000E0; |
DSBCAPS_CTRLALL = $000001F0; |
DSBCAPS_STICKYFOCUS = $00004000; |
DSBCAPS_GLOBALFOCUS = $00008000; |
DSBCAPS_GETCURRENTPOSITION2 = $00010000; |
11833,8 → 17647,8 |
DSBPLAY_LOCHARDWARE = $00000002; |
DSBPLAY_LOCSOFTWARE = $00000004; |
DSBPLAY_TERMINATEBY_TIME = $00000008; |
DSBPLAY_TERMINATEBY_DISTANCE = $00000010; |
DSBPLAY_TERMINATEBY_PRIORITY = $00000020; |
DSBPLAY_TERMINATEBY_DISTANCE = $000000010; |
DSBPLAY_TERMINATEBY_PRIORITY = $000000020; |
DSBSTATUS_PLAYING = $00000001; |
DSBSTATUS_BUFFERLOST = $00000002; |
11867,8 → 17681,8 |
DS3D_IMMEDIATE = $00000000; |
DS3D_DEFERRED = $00000001; |
DS3D_MINDISTANCEFACTOR = 0.0; |
DS3D_MAXDISTANCEFACTOR = 10.0; |
DS3D_MINDISTANCEFACTOR = FLT_MIN; |
DS3D_MAXDISTANCEFACTOR = FLT_MAX; |
DS3D_DEFAULTDISTANCEFACTOR = 1.0; |
DS3D_MINROLLOFFFACTOR = 0.0; |
11888,11 → 17702,16 |
DS3D_DEFAULTCONEOUTSIDEVOLUME = DSBVOLUME_MAX; |
DSCCAPS_EMULDRIVER = DSCAPS_EMULDRIVER; |
DSCCAPS_EMULDRIVER = $00000020; |
DSCCAPS_CERTIFIED = DSCAPS_CERTIFIED; |
DSCBCAPS_WAVEMAPPED = $80000000; |
DSBCAPS_CTRLDEFAULT = $000000E0; |
DSBCAPS_CTRLALL = $000001F0; |
DSCBLOCK_ENTIREBUFFER = $00000001; |
DSCBSTATUS_CAPTURING = $00000001; |
11900,42 → 17719,50 |
DSCBSTART_LOOPING = $00000001; |
DSBPN_OFFSETSTOP = $FFFFFFFF; |
DSBPN_OFFSETSTOP = DWORD(-1); |
// |
// DirectSound3D Algorithms |
// |
// Default DirectSound3D algorithm {00000000-0000-0000-0000-000000000000} |
DS3DALG_DEFAULT: TGUID = '{00000000-0000-0000-0000-000000000000}'; |
DS3DALG_NO_VIRTUALIZATION: TGUID = '{C241333F-1C1B-11D2-94F5-00C04FC28ACA}'; |
DS3DALG_HRTF_FULL: TGUID = '{C2413340-1C1B-11D2-94F5-00C04FC28ACA}'; |
DS3DALG_HRTF_LIGHT: TGUID = '{C2413342-1C1B-11D2-94F5-00C04FC28ACA}'; |
function DSSPEAKER_COMBINED(c, g: Byte): DWORD; |
function DSSPEAKER_CONFIG(a: DWORD): Byte; |
function DSSPEAKER_GEOMETRY(a: DWORD): Byte; |
// No virtualization {C241333F-1C1B-11d2-94F5-00C04FC28ACA} |
DS3DALG_NO_VIRTUALIZATION: TGUID = ''; |
{ DirectSound API } |
// High-quality HRTF algorithm {C2413340-1C1B-11d2-94F5-00C04FC28ACA} |
DS3DALG_HRTF_FULL: TGUID = '{C2413340-1C1B-11d2-94F5-00C04FC28ACA}'; |
type |
TDSEnumCallbackW = function(lpGuid: PGUID; lpstrDescription: LPCWSTR; |
lpstrModule: LPCWSTR; lpContext: Pointer): BOOL; stdcall; |
LPDSENUMCALLBACKW = TDSEnumCallbackW; |
// Lower-quality HRTF algorithm {C2413342-1C1B-11d2-94F5-00C04FC28ACA} |
DS3DALG_HRTF_LIGHT: TGUID = '{C2413342-1C1B-11d2-94F5-00C04FC28ACA}'; |
TDSEnumCallbackA = function(lpGuid: PGUID; lpstrDescription: LPCSTR; |
lpstrModule: LPCSTR; lpContext: Pointer): BOOL; stdcall; |
LPDSENUMCALLBACKA = TDSEnumCallbackA; |
//DirectMusic file |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* Files: dls1.h dls2.h dmdls.h dmerror.h dmksctrl.h |
dmusicc.h dmusici.h dmusicf.h dmusbuff.h |
* Content: DirectMusic, DirectSetup |
* |
* DirectX 7.0 Delphi adaptation by Erik Unger |
* |
* Modyfied: 10-Sep-2000 |
* |
* Download: http://www.delphi-jedi.org/DelphiGraphics/ |
* E-Mail: DelphiDirectX@next-reality.com |
* |
***************************************************************************) |
TDSEnumCallback = TDSEnumCallbackA; |
LPDSENUMCALLBACK = TDSEnumCallback; |
function DirectSoundCreate(lpGUID: PGUID; out lpDS: IDirectSound; pUnkOuter: IUnknown): HResult; stdcall; |
function DirectSoundEnumerateA(lpDSEnumCallback: TDSEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
function DirectSoundEnumerateW(lpDSEnumCallback: TDSEnumCallbackW; lpContext: Pointer): HResult; stdcall; |
function DirectSoundEnumerate(lpDSEnumCallback: TDSEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
function MAKE_HRESULT(sev,fac,code: DWORD) : HResult; |
function DirectSoundCaptureCreate(lpGUID: PGUID; out lplpDSC: IDirectSoundCapture; pUnkOuter: IUnknown): HResult; stdcall; |
function DirectSoundCaptureEnumerateA(lpDSEnumCallback: TDSEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
function DirectSoundCaptureEnumerateW(lpDSEnumCallback: TDSEnumCallbackW; lpContext: Pointer): HResult; stdcall; |
function DirectSoundCaptureEnumerate(lpDSEnumCallback: TDSEnumCallbackA; lpContext: Pointer): HResult; stdcall; |
type |
mmioFOURCC = array [0..3] of Char; |
//==========================================================================; |
(*==========================================================================; |
// |
// dls1.h |
// |
11948,9 → 17775,9 |
// |
// Written by Sonic Foundry 1996. Released for public use. |
// |
//========================================================================= |
//=========================================================================*) |
//////////////////////////////////////////////////////////////////////////// |
(*////////////////////////////////////////////////////////////////////////// |
// |
// |
// Layout of an instrument collection: |
11993,37 → 17820,37 |
// 'icmt' 'One of those crazy comments.' |
// 'icop' 'Copyright (C) 1996 Sonic Foundry' |
// |
////////////////////////////////////////////////////////////////////////// |
////////////////////////////////////////////////////////////////////////(*) |
(*///////////////////////////////////////////////////////////////////////// |
// FOURCC's used in the DLS file |
////////////////////////////////////////////////////////////////////////(*) |
/////////////////////////////////////////////////////////////////////////// |
// FOURCC's used in the DLS file |
////////////////////////////////////////////////////////////////////////// |
const |
FOURCC_DLS = Ord('D') + Ord('L') shl 8 + Ord('S') shl 16 + Ord(' ') shl 24; |
FOURCC_DLID = Ord('d') + Ord('l') shl 8 + Ord('i') shl 16 + Ord('d') shl 24; |
FOURCC_COLH = Ord('c') + Ord('o') shl 8 + Ord('l') shl 16 + Ord('h') shl 24; |
FOURCC_WVPL = Ord('w') + Ord('v') shl 8 + Ord('p') shl 16 + Ord('l') shl 24; |
FOURCC_PTBL = Ord('p') + Ord('t') shl 8 + Ord('b') shl 16 + Ord('l') shl 24; |
FOURCC_PATH = Ord('p') + Ord('a') shl 8 + Ord('t') shl 16 + Ord('h') shl 24; |
FOURCC_wave = Ord('w') + Ord('a') shl 8 + Ord('v') shl 16 + Ord('e') shl 24; |
FOURCC_LINS = Ord('l') + Ord('i') shl 8 + Ord('n') shl 16 + Ord('s') shl 24; |
FOURCC_INS = Ord('i') + Ord('n') shl 8 + Ord('s') shl 16 + Ord(' ') shl 24; |
FOURCC_INSH = Ord('i') + Ord('n') shl 8 + Ord('s') shl 16 + Ord('h') shl 24; |
FOURCC_LRGN = Ord('l') + Ord('r') shl 8 + Ord('g') shl 16 + Ord('n') shl 24; |
FOURCC_RGN = Ord('r') + Ord('g') shl 8 + Ord('n') shl 16 + Ord(' ') shl 24; |
FOURCC_RGNH = Ord('r') + Ord('g') shl 8 + Ord('n') shl 16 + Ord('h') shl 24; |
FOURCC_LART = Ord('l') + Ord('a') shl 8 + Ord('r') shl 16 + Ord('t') shl 24; |
FOURCC_ART1 = Ord('a') + Ord('r') shl 8 + Ord('t') shl 16 + Ord('1') shl 24; |
FOURCC_WLNK = Ord('w') + Ord('l') shl 8 + Ord('n') shl 16 + Ord('k') shl 24; |
FOURCC_WSMP = Ord('w') + Ord('s') shl 8 + Ord('m') shl 16 + Ord('p') shl 24; |
//FOURCC_VERS = Ord('v') + Ord('e') shl 8 + Ord('r') shl 16 + Ord('s') shl 24; |
FOURCC_DLS : mmioFOURCC = ('D','L','S',' '); |
FOURCC_DLID : mmioFOURCC = ('d','l','i','d'); |
FOURCC_COLH : mmioFOURCC = ('c','o','l','h'); |
FOURCC_WVPL : mmioFOURCC = ('w','v','p','l'); |
FOURCC_PTBL : mmioFOURCC = ('p','t','b','l'); |
FOURCC_PATH : mmioFOURCC = ('p','a','t','h'); |
FOURCC_wave : mmioFOURCC = ('w','a','v','e'); |
FOURCC_LINS : mmioFOURCC = ('l','i','n','s'); |
FOURCC_INS : mmioFOURCC = ('i','n','s',' '); |
FOURCC_INSH : mmioFOURCC = ('i','n','s','h'); |
FOURCC_LRGN : mmioFOURCC = ('l','r','g','n'); |
FOURCC_RGN : mmioFOURCC = ('r','g','n',' '); |
FOURCC_RGNH : mmioFOURCC = ('r','g','n','h'); |
FOURCC_LART : mmioFOURCC = ('l','a','r','t'); |
FOURCC_ART1 : mmioFOURCC = ('a','r','t','1'); |
FOURCC_WLNK : mmioFOURCC = ('w','l','n','k'); |
FOURCC_WSMP : mmioFOURCC = ('w','s','m','p'); |
//FOURCC_VERS : mmioFOURCC = ('v','e','r','s'); |
/////////////////////////////////////////////////////////////////////////// |
(*///////////////////////////////////////////////////////////////////////// |
// Articulation connection graph definitions |
////////////////////////////////////////////////////////////////////////// |
////////////////////////////////////////////////////////////////////////(*) |
// Generic Sources |
(* Generic Sources *) |
CONN_SRC_NONE = $0000; |
CONN_SRC_LFO = $0001; |
CONN_SRC_KEYONVELOCITY = $0002; |
12032,133 → 17859,126 |
CONN_SRC_EG2 = $0005; |
CONN_SRC_PITCHWHEEL = $0006; |
// Midi Controllers 0-127 |
(* Midi Controllers 0-127 *) |
CONN_SRC_CC1 = $0081; |
CONN_SRC_CC7 = $0087; |
CONN_SRC_CC10 = $008A; |
CONN_SRC_CC11 = $008B; |
CONN_SRC_CC10 = $008a; |
CONN_SRC_CC11 = $008b; |
// Generic Destinations |
(* Generic Destinations *) |
CONN_DST_NONE = $0000; |
CONN_DST_ATTENUATION = $0001; |
CONN_DST_PITCH = $0003; |
CONN_DST_PAN = $0004; |
// LFO Destinations |
(* LFO Destinations *) |
CONN_DST_LFO_FREQUENCY = $0104; |
CONN_DST_LFO_STARTDELAY = $0105; |
// EG1 Destinations |
(* EG1 Destinations *) |
CONN_DST_EG1_ATTACKTIME = $0206; |
CONN_DST_EG1_DECAYTIME = $0207; |
CONN_DST_EG1_RELEASETIME = $0209; |
CONN_DST_EG1_SUSTAINLEVEL = $020A; |
CONN_DST_EG1_SUSTAINLEVEL = $020a; |
// EG2 Destinations |
CONN_DST_EG2_ATTACKTIME = $030A; |
CONN_DST_EG2_DECAYTIME = $030B; |
CONN_DST_EG2_RELEASETIME = $030D; |
CONN_DST_EG2_SUSTAINLEVEL = $030E; |
(* EG2 Destinations *) |
CONN_DST_EG2_ATTACKTIME = $030a; |
CONN_DST_EG2_DECAYTIME = $030b; |
CONN_DST_EG2_RELEASETIME = $030d; |
CONN_DST_EG2_SUSTAINLEVEL = $030e; |
CONN_TRN_NONE = $0000; |
CONN_TRN_CONCAVE = $0001; |
type |
TDLSID = record |
ulData1 : Cardinal; |
PDLSId = ^TDLSId; |
TDLSId = packed record |
ulData1 : ULONG; |
usData2 : Word; |
usData3 : Word; |
abData4 : array[0..7] of Byte; |
abData4 : array [0..7] of BYTE; |
end; |
DLSID = TDLSID; |
LPDLSID = ^DLSID; |
{TDLSVERSION = record |
dwVersionMS : DWORD; |
dwVersionLS : DWORD; |
end; |
DLSVERSION = TDLSVERSION; |
LPDLSVERSION = ^DLSVERSION; |
} |
TCONNECTION = record |
// PDLSVersion = ^TDLSVersion; |
// TDLSVersion = packed record |
// dwVersionMS, |
// dwVersionLS : DWORD; |
// end; |
PConnection = ^TConnection; |
TConnection = packed record |
usSource : Word; |
usControl : Word; |
usDestination : Word; |
SuDestination : Word; |
usTransform : Word; |
lScale : Cardinal; |
lScale : LongInt; |
end; |
CONNECTION = TCONNECTION; |
LPCONNECTION = ^CONNECTION; |
// Level 1 Articulation Data |
(* Level 1 Articulation Data *) |
TCONNECTIONLIST = record |
cbSize : Cardinal; // size of the connection list structure |
cConnections : Cardinal; // count of connections in the list |
PConnectionList = ^TConnectionList; |
TConnectionList = packed record |
cbSize : ULONG; (* size of the connection list structure *) |
cConnections : ULONG; (* count of connections in the list *) |
end; |
CONNECTIONLIST = TCONNECTIONLIST; |
LPCONNECTIONLIST = ^CONNECTIONLIST; |
/////////////////////////////////////////////////////////////////////////// |
(*///////////////////////////////////////////////////////////////////////// |
// Generic type defines for regions and instruments |
////////////////////////////////////////////////////////////////////////// |
type |
TRGNRANGE = record |
////////////////////////////////////////////////////////////////////////(*) |
PRGNRange = ^TRGNRange; |
TRGNRange = packed record |
usLow : Word; |
usHigh : Word; |
end; |
RGNRANGE = TRGNRANGE; |
LPRGNRANGE = ^RGNRANGE; |
const |
FTINSTRUMENTTDRUMS = $80000000; |
F_INSTRUMENT_DRUMS = $80000000; |
type |
TMIDILOCALE = record |
ulBank : Cardinal; |
ulInstrument : Cardinal; |
PMIDILocale = ^TMIDILocale; |
TMIDILocale = packed record |
ulBank : ULONG; |
ulInstrument : ULONG; |
end; |
MIDILOCALE = TMIDILOCALE; |
LPMIDILOCALE = ^MIDILOCALE; |
/////////////////////////////////////////////////////////////////////////// |
(*///////////////////////////////////////////////////////////////////////// |
// Header structures found in an DLS file for collection, instruments, and |
// regions. |
////////////////////////////////////////////////////////////////////////// |
////////////////////////////////////////////////////////////////////////(*) |
const |
F_RGN_OPTION_SELFNONEXCLUSIVE = $0001; |
type |
TRGNHEADER = record |
RangeKey : RGNRANGE; // Key range |
RangeVelocity : RGNRANGE; // Velocity Range |
fusOptions : Word; // Synthesis options for this range |
usKeyGroup : Word; // Key grouping for non simultaneous play |
end; // 0 = no group, 1 up is group |
// for Level 1 only groups 1-15 are allowed |
RGNHEADER = TRGNHEADER; |
LPRGNHEADER = ^RGNHEADER; |
PRGNHeader = ^TRGNHeader; |
TRGNHeader = packed record |
RangeKey : TRGNRange; (* Key range *) |
RangeVelocity : TRGNRange; (* Velocity Range *) |
fusOptions : Word ; (* Synthesis options for this range *) |
usKeyGroup : Word ; (* Key grouping for non simultaneous play *) |
(* 0 = no group, 1 up is group *) |
(* for Level 1 only groups 1-15 are allowed *) |
end; |
TINSTHEADER = record |
cRegions : Cardinal; // Count of regions in this instrument |
Locale : MIDILOCALE; // Intended MIDI locale of this instrument |
PInstHeader = ^TInstHeader; |
TInstHeader = packed record |
cRegions : ULONG; (* Count of regions in this instrument *) |
Locale : TMIDILocale; (* Intended MIDI locale of this instrument *) |
end; |
INSTHEADER = TINSTHEADER; |
LPINSTHEADER = ^INSTHEADER; |
TDLSHEADER = record |
cInstruments : Cardinal; // Count of instruments in the collection |
PDLSHeader = ^TDLSHeader; |
TDLSHeader = packed record |
cInstruments : ULONG; |
end; |
DLSHEADER = TDLSHEADER; |
LPDLSHEADER = ^DLSHEADER; |
////////////////////////////////////////////////////////////////////////////// |
(*//////////////////////////////////////////////////////////////////////////// |
// definitions for the Wave link structure |
///////////////////////////////////////////////////////////////////////////// |
///////////////////////////////////////////////////////////////////////////(*) |
// **** For level 1 only WAVELINK_CHANNEL_MONO is valid **** |
// ulChannel allows for up to 32 channels of audio with each bit position |
// specifiying a channel of playback |
(* **** For level 1 only WAVELINK_CHANNEL_MONO is valid **** *) |
(* ulChannel allows for up to 32 channels of audio with each bit position *) |
(* specifiying a channel of playback *) |
const |
WAVELINK_CHANNEL_LEFT = $0001; |
12167,69 → 17987,65 |
F_WAVELINK_PHASE_MASTER = $0001; |
type |
TWAVELINK = record // any paths or links are stored right after struct |
fusOptions : Word; // options flags for this wave |
usPhaseGroup : Word; // Phase grouping for locking channels |
ulChannel : Cardinal; // channel placement |
ulTableIndex : Cardinal; // index into the wave pool table, 0 based |
PWaveLink = ^TWaveLink; |
TWaveLink = packed record (* any paths or links are stored right after struct *) |
fusOptions : Word; (* options flags for this wave *) |
usPhaseGroup : Word; (* Phase grouping for locking channels *) |
ulChannel : ULONG; (* channel placement *) |
ulTableIndex : ULONG; (* index into the wave pool table, 0 based *) |
end; |
WAVELINK = TWAVELINK; |
LPWAVELINK = ^WAVELINK; |
const |
POOL_CUE_NULL = $FFFFFFFF; |
POOL_CUE_NULL = $ffffffff; |
type |
TPOOLCUE = record |
ulOffset : Cardinal; // Offset to the entry in the list |
PPoolCUE = ^TPoolCUE; |
TPoolCUE = packed record |
ulOffset : ULONG; |
end; |
POOLCUE = TPOOLCUE; |
LPPOOLCUE = ^POOLCUE; |
TPOOLTABLE = record |
cbSize : Cardinal; // size of the pool table structure |
cCues : Cardinal; // count of cues in the list |
PPoolTable = ^TPoolTable; |
TPoolTable = packed record |
cbSize : ULONG; (* size of the pool table structure *) |
cCues : ULONG; (* count of cues in the list *) |
end; |
POOLTABLE = TPOOLTABLE; |
LPPOOLTABLE = ^POOLTABLE; |
////////////////////////////////////////////////////////////////////////////// |
(*//////////////////////////////////////////////////////////////////////////// |
// Structures for the "wsmp" chunk |
///////////////////////////////////////////////////////////////////////////// |
///////////////////////////////////////////////////////////////////////////(*) |
const |
F_WSMP_NO_TRUNCATION = $0001; |
F_WSMP_NO_COMPRESSION = $0002; |
type |
Trwsmp = record |
cbSize : Cardinal; |
usUnityNote : Word; // MIDI Unity Playback Note |
sFineTune : Smallint; // Fine Tune in log tuning |
lAttenuation : Longint; // Overall Attenuation to be applied to data |
fulOptions : Cardinal; // Flag options |
cSampleLoops : Cardinal; // Count of Sample loops, 0 loops is one shot |
PWSMPL = ^TWSMPL; |
TWSMPL = packed record |
cbSize : ULONG; |
usUnityNote : Word; (* MIDI Unity Playback Note *) |
sFineTune : SmallInt; (* Fine Tune in log tuning *) |
lAttenuation : Integer; (* Overall Attenuation to be applied to data *) |
fulOptions : ULONG; (* Flag options *) |
cSampleLoops : ULONG; (* Count of Sample loops, 0 loops is one shot *) |
end; |
WSMPL = Trwsmp; |
LPWSMPL = ^WSMPL; |
// This loop type is a normal forward playing loop which is continually |
// played until the envelope reaches an off threshold in the release |
// portion of the volume envelope |
(* This loop type is a normal forward playing loop which is continually *) |
(* played until the envelope reaches an off threshold in the release *) |
(* portion of the volume envelope *) |
const |
WLOOP_TYPE_FORWARD = 0; |
type |
Trloop = record |
cbSize : Cardinal; |
ulType : Cardinal; // Loop Type |
ulStart : Cardinal; // Start of loop in samples |
ulLength : Cardinal; // Length of loop in samples |
TWLoop = packed record |
cbSize : ULONG; |
ulType : ULONG; (* Loop Type *) |
ulStart : ULONG; (* Start of loop in samples *) |
ulLength : ULONG; (* Length of loop in samples *) |
end; |
WLOOP = Trloop; |
LPWLOOP = ^WLOOP; |
{/* |
(******************************************************************************* |
dls2.h |
12240,940 → 18056,931 |
Written by Microsoft 1998. Released for public use. |
} |
*******************************************************************************) |
(* |
FOURCC's used in the DLS2 file, in addition to DLS1 chunks |
*) |
const |
// |
// FOURCC's used in the DLS2 file, in addition to DLS1 chunks |
/// |
FOURCC_RGN2 : mmioFOURCC = ('r','g','n','2'); |
FOURCC_LAR2 : mmioFOURCC = ('l','a','r','2'); |
FOURCC_ART2 : mmioFOURCC = ('a','r','t','2'); |
FOURCC_CDL : mmioFOURCC = ('c','d','l',' '); |
// FOURCC_DLID : mmioFOURCC = ('d','l','i','d'); |
FOURCC_RGN2 = Ord('r') + Ord('g') shl 8 + Ord('n') shl 16 + Ord('2') shl 24; |
FOURCC_LAR2 = Ord('l') + Ord('a') shl 8 + Ord('r') shl 16 + Ord('2') shl 24; |
FOURCC_ART2 = Ord('a') + Ord('r') shl 8 + Ord('t') shl 16 + Ord('2') shl 24; |
FOURCC_CDL = Ord('c') + Ord('d') shl 8 + Ord('l') shl 16 + Ord(' ') shl 24; |
//FOURCC_DLID = Ord('d') + Ord('l') shl 8 + Ord('i') shl 16 + Ord('d') shl 24; |
(* |
Articulation connection graph definitions. These are in addition to |
the definitions in the DLS1 header. |
*) |
// |
// Articulation connection graph definitions. These are in addition to |
// the definitions in the DLS1 header. |
/// |
const |
(* Generic Sources (in addition to DLS1 sources. *) |
CONN_SRC_POLYPRESSURE = $0007; (* Polyphonic Pressure *) |
CONN_SRC_CHANNELPRESSURE = $0008; (* Channel Pressure *) |
CONN_SRC_VIBRATO = $0009; (* Vibrato LFO *) |
CONN_SRC_MONOPRESSURE = $000a; (* MIDI Mono pressure *) |
// Generic Sources (in addition to DLS1 sources. |
CONN_SRC_POLYPRESSURE = $0007; // Polyphonic Pressure |
CONN_SRC_CHANNELPRESSURE = $0008; // Channel Pressure |
CONN_SRC_VIBRATO = $0009; // Vibrato LFO |
CONN_SRC_MONOPRESSURE = $000a; // MIDI Mono pressure |
(* Midi Controllers *) |
CONN_SRC_CC91 = $00db; (* Reverb Send *) |
CONN_SRC_CC93 = $00dd; (* Chorus Send *) |
// Midi Controllers |
CONN_SRC_CC91 = $00db; // Reverb Send |
CONN_SRC_CC93 = $00dd; // Chorus Send |
(* Generic Destinations *) |
CONN_DST_GAIN = $0001; (* Same as CONN_DST_ ATTENUATION *) |
CONN_DST_KEYNUMBER = $0005; (* Key Number Generator *) |
// Generic Destinations |
CONN_DST_GAIN = $0001; // Same as CONN_DST_ ATTENUATION |
CONN_DST_KEYNUMBER = $0005; // Key Number Generator |
(* Audio Channel Output Destinations *) |
CONN_DST_LEFT = $0010; (* Left Channel Send *) |
CONN_DST_RIGHT = $0011; (* Right Channel Send *) |
CONN_DST_CENTER = $0012; (* Center Channel Send *) |
CONN_DST_LEFTREAR = $0013; (* Left Rear Channel Send *) |
CONN_DST_RIGHTREAR = $0014; (* Right Rear Channel Send *) |
CONN_DST_LFE_CHANNEL = $0015; (* LFE Channel Send *) |
CONN_DST_CHORUS = $0080; (* Chorus Send *) |
CONN_DST_REVERB = $0081; (* Reverb Send *) |
// Audio Channel Output Destinations |
CONN_DST_LEFT = $0010; // Left Channel Send |
CONN_DST_RIGHT = $0011; // Right Channel Send |
CONN_DST_CENTER = $0012; // Center Channel Send |
CONN_DST_LEFTREAR = $0013; // Left Rear Channel Send |
CONN_DST_RIGHTREAR = $0014; // Right Rear Channel Send |
CONN_DST_LFE_CHANNEL = $0015; // LFE Channel Send |
CONN_DST_CHORUS = $0080; // Chorus Send |
CONN_DST_REVERB = $0081; // Reverb Send |
(* Vibrato LFO Destinations *) |
CONN_DST_VIB_FREQUENCY = $0114; (* Vibrato Frequency *) |
CONN_DST_VIB_STARTDELAY = $0115; (* Vibrato Start Delay *) |
// Vibrato LFO Destinations |
CONN_DST_VIB_FREQUENCY = $0114; // Vibrato Frequency |
CONN_DST_VIB_STARTDELAY = $0115; // Vibrato Start Delay |
(* EG1 Destinations *) |
CONN_DST_EG1_DELAYTIME = $020B; (* EG1 Delay Time *) |
CONN_DST_EG1_HOLDTIME = $020C; (* EG1 Hold Time *) |
// EG1 Destinations |
CONN_DST_EG1_DELAYTIME = $020B; // EG1 Delay Time |
CONN_DST_EG1_HOLDTIME = $020C; // EG1 Hold Time |
(* EG2 Destinations *) |
CONN_DST_EG2_DELAYTIME = $030F; (* EG2 Delay Time *) |
CONN_DST_EG2_HOLDTIME = $0310; (* EG2 Hold Time *) |
// EG2 Destinations |
CONN_DST_EG2_DELAYTIME = $030F; // EG2 Delay Time |
CONN_DST_EG2_HOLDTIME = $0310; // EG2 Hold Time |
(* Filter Destinations *) |
CONN_DST_FILTER_CUTOFF = $0500; (* Filter Cutoff Frequency *) |
CONN_DST_FILTER_Q = $0501; (* Filter Resonance *) |
// Filter Destinations |
CONN_DST_FILTER_CUTOFF = $0500; // Filter Cutoff Frequency |
CONN_DST_FILTER_Q = $0501; // Filter Resonance |
(* Transforms *) |
CONN_TRN_CONVEX = $0002; (* Convex Transform *) |
CONN_TRN_SWITCH = $0003; (* Switch Transform *) |
// Transforms |
CONN_TRN_CONVEX = $0002; // Convex Transform |
CONN_TRN_SWITCH = $0003; // Switch Transform |
(* Conditional chunk operators *) |
DLS_CDL_AND = $0001; (* X = X & Y *) |
DLS_CDL_OR = $0002; (* X = X | Y *) |
DLS_CDL_XOR = $0003; (* X = X ^ Y *) |
DLS_CDL_ADD = $0004; (* X = X + Y *) |
DLS_CDL_SUBTRACT = $0005; (* X = X - Y *) |
DLS_CDL_MULTIPLY = $0006; (* X = X * Y *) |
DLS_CDL_DIVIDE = $0007; (* X = X / Y *) |
DLS_CDL_LOGICAL_AND = $0008; (* X = X && Y *) |
DLS_CDL_LOGICAL_OR = $0009; (* X = X || Y *) |
DLS_CDL_LT = $000A; (* X = (X < Y) *) |
DLS_CDL_LE = $000B; (* X = (X <= Y) *) |
DLS_CDL_GT = $000C; (* X = (X > Y) *) |
DLS_CDL_GE = $000D; (* X = (X >= Y) *) |
DLS_CDL_EQ = $000E; (* X = (X == Y) *) |
DLS_CDL_NOT = $000F; (* X = !X *) |
DLS_CDL_CONST = $0010; (* 32-bit constant *) |
DLS_CDL_QUERY = $0011; (* 32-bit value returned from query *) |
DLS_CDL_QUERYSUPPORTED = $0012; (* Test to see if DLSID Query is supported *) |
// Conditional chunk operators |
DLS_CDL_AND = $0001; // X = X & Y |
DLS_CDL_OR = $0002; // X = X | Y |
DLS_CDL_XOR = $0003; // X = X ^ Y |
DLS_CDL_ADD = $0004; // X = X + Y |
DLS_CDL_SUBTRACT = $0005; // X = X - Y |
DLS_CDL_MULTIPLY = $0006; // X = X * Y |
DLS_CDL_DIVIDE = $0007; // X = X / Y |
DLS_CDL_LOGICAL_AND = $0008; // X = X && Y |
DLS_CDL_LOGICAL_OR = $0009; // X = X || Y |
DLS_CDL_LT = $000A; // X = (X < Y) |
DLS_CDL_LE = $000B; // X = (X <= Y) |
DLS_CDL_GT = $000C; // X = (X > Y) |
DLS_CDL_GE = $000D; // X = (X >= Y) |
DLS_CDL_EQ = $000E; // X = (X == Y) |
DLS_CDL_NOT = $000F; // X = !X |
DLS_CDL_CONST = $0010; // 32-bit constant |
DLS_CDL_QUERY = $0011; // 32-bit value returned from query |
DLS_CDL_QUERYSUPPORTED = $0012; // Test to see if DLSID Query is supported |
(* |
Loop and release |
*) |
//Loop and release |
WLOOP_TYPE_RELEASE = 2; |
//DLSID queries for <cdl-ck> |
(* |
DLSID queries for <cdl-ck> |
*) |
DLSID_GMInHardware : TGUID = '{178F2F24-C364-11D1-A760-0000F875AC12}'; |
DLSID_GSInHardware : TGUID = '{178F2F25-C364-11D1-A760-0000F875AC12}'; |
DLSID_XGInHardware : TGUID = '{178F2F26-C364-11D1-A760-0000F875AC12}'; |
DLSID_SupportsDLS1 : TGUID = '{178F2F27-C364-11D1-A760-0000F875AC12}'; |
DLSID_SupportsDLS2 : TGUID = '{F14599E5-4689-11D2-AFA6-00AA0024D8B6}'; |
DLSID_SampleMemorySize : TGUID = '{178F2F28-C364-11D1-A760-0000F875AC12}'; |
DLSID_ManufacturersID : TGUID = '{B03E1181-8095-11D2-A1EF-00600833DBD8}'; |
DLSID_ProductID : TGUID = '{B03E1182-8095-11D2-A1EF-00600833DBD8}'; |
DLSID_SamplePlaybackRate : TGUID = '{2A91F713-A4BF-11D2-BBDF-00600833DBD8}'; |
DLSID_GMInHardware : TGUID = '{178f2f24-c364-11d1-a760-0000f875ac12}'; |
DLSID_GSInHardware : TGUID = '{178f2f25-c364-11d1-a760-0000f875ac12}'; |
DLSID_XGInHardware : TGUID = '{178f2f26-c364-11d1-a760-0000f875ac12}'; |
DLSID_SupportsDLS1 : TGUID = '{178f2f27-c364-11d1-a760-0000f875ac12}'; |
DLSID_SupportsDLS2 : TGUID = '{f14599e5-4689-11d2-afa6-00aa0024d8b6}'; |
DLSID_SampleMemorySize : TGUID = '{178f2f28-c364-11d1-a760-0000f875ac12}'; |
DLSID_ManufacturersID : TGUID = '{b03e1181-8095-11d2-a1ef-00600833dbd8}'; |
DLSID_ProductID : TGUID = '{b03e1182-8095-11d2-a1ef-00600833dbd8}'; |
DLSID_SamplePlaybackRate : TGUID = '{2a91f713-a4bf-11d2-bbdf-00600833dbd8}'; |
//*********************************************************************** |
// * |
// dmdls.h -- DLS download definitions for DirectMusic API's * |
// * |
// Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
// * |
//********************************************************************** |
(************************************************************************ |
* * |
* dmdls.h -- DLS download definitions for DirectMusic API's * |
* * |
* Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
* * |
************************************************************************) |
type |
PCENT = Longint; // Pitch cents |
GCENT = Longint; // Gain cents |
TCENT = Longint; // Time cents |
PERCENT = Longint; // Per.. cent! |
TPCent = LongInt; (* Pitch cents *) |
TGCent = LongInt; (* Gain cents *) |
TTCent = LongInt; (* Time cents *) |
TPercent = LongInt; (* Per.. cent! *) |
PReference_Time = ^TReference_Time; |
TReference_Time = LONGLONG; |
TReference_Time = LongLong; |
Reference_Time = TReference_Time; |
LPREFERENCE_TIME = PReference_Time; |
TFourCC = DWORD; (* a four character code *) |
function MAKEFOURCC(ch0, ch1, ch2, ch3: Char) : DWORD; |
//function MAKEFOURCC (ch0, ch1, ch2, ch3: Char) : TFourCC; |
type |
FOURCC = DWORD; // a four character code |
TDMUS_DOWNLOADINFO = record |
dwDLType : DWORD; // Instrument or Wave |
dwDLId : DWORD; // Unique identifier to tag this download. |
dwNumOffsetTableEntries : DWORD; // Number of index in the offset address table. |
cbSize : DWORD; // Total size of this memory chunk. |
TDMus_DownloadInfor = packed record |
dwDLType: DWORD; (* Instrument or Wave *) |
dwDLId: DWORD; (* Unique identifier to tag this download. *) |
dwNumOffsetTableEntries: DWORD; (* Number of index in the offset address table. *) |
cbSize: DWORD; (* Total size of this memory chunk. *) |
end; |
DMUS_DOWNLOADINFO = TDMUS_DOWNLOADINFO; |
const |
DMUS_DOWNLOADINFO_INSTRUMENT = 1; |
DMUS_DOWNLOADINFO_WAVE = 2; |
DMUS_DOWNLOADINFO_INSTRUMENT2 = 3; (* New version for better DLS2 support. *) |
DMUS_DEFAULT_SIZE_OFFSETTABLE = 1; |
// Flags for DMUS_INSTRUMENT's ulFlags member |
(* Flags for DMUS_INSTRUMENT's ulFlags member *) |
DMUS_INSTRUMENT_GM_INSTRUMENT = 1; // (1 << 0) ???? |
DMUS_INSTRUMENT_GM_INSTRUMENT = 1 shl 0; |
type |
TDMUS_OFFSETTABLE = record |
ulOffsetTable : array [0..DMUS_DEFAULT_SIZE_OFFSETTABLE] of Cardinal; |
TDMus_OffsetTable = packed record |
ulOffsetTable : array [0..DMUS_DEFAULT_SIZE_OFFSETTABLE-1] of ULONG; |
end; |
DMUS_OFFSETTABLE = TDMUS_OFFSETTABLE; |
TDMUS_INSTRUMENT = record |
ulPatch : Cardinal; |
ulFirstRegionIdx : Cardinal; |
ulGlobalArtIdx : Cardinal; // If zero the instrument does not have an articulation |
ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the instrument |
ulCopyrightIdx : Cardinal; // If zero no Copyright information associated with the instrument |
ulFlags : Cardinal; |
TDMus_Instrument = packed record |
ulPatch: ULONG; |
ulFirstRegionIdx: ULONG; |
ulGlobalArtIdx: ULONG; (* If zero the instrument does not have an articulation *) |
ulFirstExtCkIdx: ULONG; (* If zero no 3rd party entenstion chunks associated with the instrument *) |
ulCopyrightIdx: ULONG; (* If zero no Copyright information associated with the instrument *) |
ulFlags: ULONG; |
end; |
DMUS_INSTRUMENT = TDMUS_INSTRUMENT; |
TDMUS_REGION = record |
RangeKey : RGNRANGE; |
RangeVelocity : RGNRANGE; |
TDMus_Region = packed record |
RangeKey: TRGNRange; |
RangeVelocity: TRGNRange; |
fusOptions : Word; |
usKeyGroup : Word; |
ulRegionArtIdx : Cardinal; // If zero the region does not have an articulation |
ulNextRegionIdx : Cardinal; // If zero no more regions |
ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the region |
WaveLink : WAVELINK; |
WSMP : WSMPL; // If WSMP.cSampleLoops > 1 then a WLOOP is included |
WLOOP : array[0..0] of WLOOP; |
ulRegionArtIdx: ULONG; (* If zero the region does not have an articulation *) |
ulNextRegionIdx: ULONG; (* If zero no more regions *) |
ulFirstExtCkIdx: ULONG; (* If zero no 3rd party entenstion chunks associated with the region *) |
WaveLink: TWaveLink; |
WSMP: TWSMPL; (* If WSMP.cSampleLoops > 1 then a WLOOP is included *) |
WLOOP: array [0..0] of TWLoop; |
end; |
DMUS_REGION = TDMUS_REGION; |
TDMUS_LFOPARAMS = record |
pcFrequency : PCENT; |
tcDelay : TCENT; |
gcVolumeScale : GCENT; |
pcPitchScale : PCENT; |
gcMWToVolume : GCENT; |
pcMWToPitch : PCENT; |
TDMus_LFOParams = packed record |
pcFrequency: TPCent; |
tcDelay: TTCent; |
gcVolumeScale: TGCent; |
pcPitchScale: TPCent; |
gcMWToVolume: TGCent; |
pcMWToPitch: TPCent; |
end; |
DMUS_LFOPARAMS = TDMUS_LFOPARAMS; |
TDMUS_VEGPARAMS = record |
tcAttack : TCENT; |
tcDecay : TCENT; |
ptSustain : PERCENT; |
tcRelease : TCENT; |
tcVel2Attack : TCENT; |
tcKey2Decay : TCENT; |
TDMus_VEGParams = packed record |
tcAttack: TTCent; |
tcDecay: TTCent; |
ptSustain: TPercent; |
tcRelease: TTCent; |
tcVel2Attack: TTCent; |
tcKey2Decay: TTCent; |
end; |
DMUS_VEGPARAMS = TDMUS_VEGPARAMS; |
TDMUS_PEGPARAMS = record |
tcAttack : TCENT; |
tcDecay : TCENT; |
ptSustain : PERCENT; |
tcRelease : TCENT; |
tcVel2Attack : TCENT; |
tcKey2Decay : TCENT; |
pcRange : PCENT; |
TDMus_PEGParams = packed record |
tcAttack: TTCent; |
tcDecay: TTCent; |
ptSustain: TPercent; |
tcRelease: TTCent; |
tcVel2Attack: TTCent; |
tcKey2Decay: TTCent; |
pcRange: TPCent; |
end; |
DMUS_PEGPARAMS = TDMUS_PEGPARAMS; |
TDMUS_MSCPARAMS = record |
ptDefaultPan : PERCENT; |
TDMus_MSCParams = packed record |
ptDefaultPan: TPercent; |
end; |
DMUS_MSCPARAMS = TDMUS_MSCPARAMS; |
TDMUS_ARTICPARAMS = record |
LFO : DMUS_LFOPARAMS; |
VolEG : DMUS_VEGPARAMS; |
PitchEG : DMUS_PEGPARAMS; |
Misc : DMUS_MSCPARAMS; |
TDMus_ArticParams = packed record |
LFO: TDMus_LFOParams; |
VolEG: TDMus_VEGParams; |
PitchEG: TDMus_PEGParams; |
Misc: TDMus_MSCParams; |
end; |
DMUS_ARTICPARAMS = TDMUS_ARTICPARAMS; |
TDMUS_ARTICULATION = record |
ulArt1Idx : Cardinal; // If zero no DLS Level 1 articulation chunk |
ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the articulation |
ulNextArtIdx : Cardinal; // Additional articulation chunks |
TDMus_Articulation = packed record |
ulArt1Idx: ULONG; (* If zero no DLS Level 1 articulation chunk *) |
ulFirstExtCkIdx: ULONG; (* If zero no 3rd party entenstion chunks associated with the articulation *) |
end; |
DMUS_ARTICULATION = TDMUS_ARTICULATION; |
TDMUS_ARTICULATION2 = record |
ulArt1Idx : Cardinal; // If zero no DLS Level 1 articulation chunk |
ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the articulation |
end; |
DMUS_ARTICULATION2 = TDMUS_ARTICULATION2; |
const |
DMUS_MIN_DATA_SIZE = 4; |
// The actual number is determined by cbSize of struct _DMUS_EXTENSIONCHUNK |
(* The actual number is determined by cbSize of struct _DMUS_EXTENSIONCHUNK *) |
type |
TDMUS_EXTENSIONCHUNK = record |
cbSize : Cardinal; // Size of extension chunk |
ulNextExtCkIdx : Cardinal; // If zero no more 3rd party entenstion chunks |
ExtCkID : FOURCC; |
byExtCk : array[0..DMUS_MIN_DATA_SIZE - 1] of Byte; // The actual number that follows is determined by cbSize |
DMus_ExtensionChunk = packed record |
cbSize: ULONG; (* Size of extension chunk *) |
ulNextExtCkIdx: ULONG; (* If zero no more 3rd party entenstion chunks *) |
ExtCkID: TFourCC; |
byExtCk: array [0..DMUS_MIN_DATA_SIZE-1] of BYTE; (* The actual number that follows is determined by cbSize *) |
end; |
DMUS_EXTENSIONCHUNK = TDMUS_EXTENSIONCHUNK; |
// The actual number is determined by cbSize of struct TDMUS_COPYRIGHT |
(* The actual number is determined by cbSize of struct _DMUS_COPYRIGHT *) |
TDMUS_COPYRIGHT = record |
cbSize : Cardinal; // Size of copyright information |
byCopyright : array[0..DMUS_MIN_DATA_SIZE - 1] of Byte; // The actual number that follows is determined by cbSize |
TDmus_Copyright = packed record |
cbSize: ULONG; (* Size of copyright information *) |
byCopyright: array [0..DMUS_MIN_DATA_SIZE-1] of BYTE; (* The actual number that follows is determined by cbSize *) |
end; |
DMUS_COPYRIGHT = TDMUS_COPYRIGHT; |
TDMUS_WAVEDATA = record |
cbSize : Cardinal; |
byData : array[0..DMUS_MIN_DATA_SIZE - 1] of Byte; |
TDMus_WaveData = packed record |
cbSize: ULONG; |
byData: array [0..DMUS_MIN_DATA_SIZE-1] of BYTE; |
end; |
DMUS_WAVEDATA = TDMUS_WAVEDATA; |
TDMUS_WAVE = record |
ulFirstExtCkIdx : Cardinal; // If zero no 3rd party entenstion chunks associated with the wave |
ulCopyrightIdx : Cardinal; // If zero no Copyright information associated with the wave |
ulWaveDataIdx : Cardinal; // Location of actual wave data. |
WaveformatEx : TWAVEFORMATEX; |
TDMus_Wave = packed record |
ulFirstExtCkIdx: ULONG; (* If zero no 3rd party entenstion chunks associated with the wave *) |
ulCopyrightIdx: ULONG; (* If zero no Copyright information associated with the wave *) |
ulWaveDataIdx: ULONG; (* Location of actual wave data. *) |
/// WaveformatEx: TWaveFormatEx; |
end; |
DMUS_WAVE = TDMUS_WAVE; |
LPDMUS_NOTERANGE = ^TDMUS_NOTERANGE; |
TDMUS_NOTERANGE = record |
dwLowNote : DWORD; // Sets the low note for the range of MIDI note events to which the instrument responds. |
dwHighNote : DWORD; // Sets the high note for the range of MIDI note events to which the instrument responds. |
PDMus_NoteRange = ^TDMus_NoteRange; |
TDMus_NoteRange = packed record |
dwLowNote: DWORD; (* Sets the low note for the range of MIDI note events to which the instrument responds.*) |
dwHighNote: DWORD; (* Sets the high note for the range of MIDI note events to which the instrument responds.*) |
end; |
DMUS_NOTERANGE = TDMUS_NOTERANGE; |
(************************************************************************ |
* * |
* dmerror.h -- Error code returned by DirectMusic API's * |
* * |
* Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
* * |
************************************************************************) |
const |
FACILITY_DIRECTMUSIC = $878; (* Shared with DirectSound *) |
DMUS_ERRBASE = $1000; (* Make error codes human readable in hex *) |
MAKE_DMHRESULTSUCCESS = (0 shl 31) or (FACILITY_DIRECTMUSIC shl 16) or DMUS_ERRBASE; |
MAKE_DMHRESULTERROR = (1 shl 31) or (FACILITY_DIRECTMUSIC shl 16) or DMUS_ERRBASE; |
//*********************************************************************** |
// * |
// dmerror.h -- Error code returned by DirectMusic API's * |
// * |
// Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
// * |
//********************************************************************** |
(* DMUS_S_PARTIALLOAD |
* |
* The object could only load partially. This can happen if some components are |
* not registered properly, such as embedded tracks and tools. |
*) |
DMUS_S_PARTIALLOAD = MAKE_DMHRESULTSUCCESS + $091; |
const |
FACILITY_DIRECTMUSIC = $878; // Shared with DirectSound |
DMUS_ERRBASE = $1000; // Make error codes human readable in hex |
(* DMUS_S_PARTIALDOWNLOAD |
* |
* This code indicates that a band download was only successful in reaching |
* some, but not all, of the referenced ports. Some samples may not play |
* correctly. |
*) |
DMUS_S_PARTIALDOWNLOAD = MAKE_DMHRESULTSUCCESS + $092; |
function MAKE_DMHRESULTSUCCESS(code: Cardinal) : HResult; |
function MAKE_DMHRESULTERROR(code: Cardinal) : HResult; |
(* DMUS_S_REQUEUE |
* |
* Return value from IDirectMusicTool::ProcessPMsg() which indicates to the |
* performance that it should cue the PMsg again automatically. |
*) |
DMUS_S_REQUEUE = MAKE_DMHRESULTSUCCESS + $200; |
// DMUS_S_PARTIALLOAD |
// |
// The object could only load partially. This can happen if some components are |
// not registered properly, such as embedded tracks and tools. |
/// |
const |
DMUS_S_PARTIALLOAD = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $091;// MAKE_DMHRESULTSUCCESS($091); |
(* DMUS_S_FREE |
* |
* Return value from IDirectMusicTool::ProcessPMsg() which indicates to the |
* performance that it should free the PMsg automatically. |
*) |
DMUS_S_FREE = MAKE_DMHRESULTSUCCESS + $201; |
// DMUS_S_REQUEUE |
// |
// Return value from IDirectMusicTool::ProcessPMsg() which indicates to the |
// performance that it should cue the PMsg again automatically. |
/// |
DMUS_S_REQUEUE = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $200;//MAKE_DMHRESULTSUCCESS(0x200) |
(* DMUS_S_END |
* |
* Return value from IDirectMusicTrack::Play() which indicates to the |
* segment that the track has no more data after mtEnd. |
*) |
DMUS_S_END = MAKE_DMHRESULTSUCCESS + $202; |
// DMUS_S_FREE |
// |
// Return value from IDirectMusicTool::ProcessPMsg() which indicates to the |
// performance that it should free the PMsg automatically. |
/// |
DMUS_S_FREE = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $201;//MAKE_DMHRESULTSUCCESS(0x201) |
(* DMUS_S_STRING_TRUNCATED |
* |
* Returned string has been truncated to fit the buffer size. |
*) |
DMUS_S_STRING_TRUNCATED = MAKE_DMHRESULTSUCCESS + $210; |
// DMUS_S_END |
// |
// Return value from IDirectMusicTrack::Play() which indicates to the |
// segment that the track has no more data after mtEnd. |
/// |
DMUS_S_END = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $202;//MAKE_DMHRESULTSUCCESS(0x202) |
(* DMUS_S_LAST_TOOL |
* |
* Returned from IDirectMusicGraph::StampPMsg(), this indicates that the PMsg |
* is already stamped with the last tool in the graph. The returned PMsg's |
* tool pointer is now NULL. |
*) |
DMUS_S_LAST_TOOL = MAKE_DMHRESULTSUCCESS + $211; |
// DMUS_S_STRING_TRUNCATED |
// |
// Returned string has been truncated to fit the buffer size. |
/// |
DMUS_S_STRING_TRUNCATED = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $210;//MAKE_DMHRESULTSUCCESS(0x210) |
(* DMUS_S_OVER_CHORD |
* |
* Returned from IDirectMusicPerformance::MusicToMIDI(), this indicates |
* that no note has been calculated because the music value has the note |
* at a position higher than the top note of the chord. This applies only |
* to DMUS_PLAYMODE_NORMALCHORD play mode. This success code indicates |
* that the caller should not do anything with the note. It is not meant |
* to be played against this chord. |
*) |
DMUS_S_OVER_CHORD = MAKE_DMHRESULTSUCCESS + $212; |
// DMUS_S_LAST_TOOL |
// |
// Returned from IDirectMusicGraph::StampPMsg(), this indicates that the PMsg |
// is already stamped with the last tool in the graph. The returned PMsg's |
// tool pointer is now NULL. |
/// |
DMUS_S_LAST_TOOL = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $211;//MAKE_DMHRESULTSUCCESS(0x211) |
(* DMUS_S_UP_OCTAVE |
* |
* Returned from IDirectMusicPerformance::MIDIToMusic(), and |
* IDirectMusicPerformance::MusicToMIDI(), this indicates |
* that the note conversion generated a note value that is below 0, |
* so it has been bumped up one or more octaves to be in the proper |
* MIDI range of 0 through 127. |
* Note that this is valid for MIDIToMusic() when using play modes |
* DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of |
* which store MIDI values in wMusicValue. With MusicToMIDI(), it is |
* valid for all play modes. |
* Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. |
*) |
DMUS_S_UP_OCTAVE = MAKE_DMHRESULTSUCCESS + $213; |
// DMUS_S_OVER_CHORD |
// |
// Returned from IDirectMusicPerformance::MusicToMIDI(), this indicates |
// that no note has been calculated because the music value has the note |
// at a position higher than the top note of the chord. This applies only |
// to DMUS_PLAYMODE_NORMALCHORD play mode. This success code indicates |
// that the caller should not do anything with the note. It is not meant |
// to be played against this chord. |
/// |
DMUS_S_OVER_CHORD = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $212;//MAKE_DMHRESULTSUCCESS(0x212) |
(* DMUS_S_DOWN_OCTAVE |
* |
* Returned from IDirectMusicPerformance::MIDIToMusic(), and |
* IDirectMusicPerformance::MusicToMIDI(), this indicates |
* that the note conversion generated a note value that is above 127, |
* so it has been bumped down one or more octaves to be in the proper |
* MIDI range of 0 through 127. |
* Note that this is valid for MIDIToMusic() when using play modes |
* DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of |
* which store MIDI values in wMusicValue. With MusicToMIDI(), it is |
* valid for all play modes. |
* Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. |
*) |
DMUS_S_DOWN_OCTAVE = MAKE_DMHRESULTSUCCESS + $214; |
// DMUS_S_UP_OCTAVE |
// |
// Returned from IDirectMusicPerformance::MIDIToMusic(), and |
// IDirectMusicPerformance::MusicToMIDI(), this indicates |
// that the note conversion generated a note value that is below 0, |
// so it has been bumped up one or more octaves to be in the proper |
// MIDI range of 0 through 127. |
// Note that this is valid for MIDIToMusic() when using play modes |
// DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of |
// which store MIDI values in wMusicValue. With MusicToMIDI(), it is |
// valid for all play modes. |
// Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. |
/// |
DMUS_S_UP_OCTAVE = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $213;//MAKE_DMHRESULTSUCCESS(0x213) |
(* DMUS_S_NOBUFFERCONTROL |
* |
* Although the audio output from the port will be routed to the |
* same device as the given DirectSound buffer, buffer controls |
* such as pan and volume will not affect the output. |
* |
*) |
DMUS_S_NOBUFFERCONTROL = MAKE_DMHRESULTSUCCESS + $215; |
// DMUS_S_DOWN_OCTAVE |
// |
// Returned from IDirectMusicPerformance::MIDIToMusic(), and |
// IDirectMusicPerformance::MusicToMIDI(), this indicates |
// that the note conversion generated a note value that is above 127, |
// so it has been bumped down one or more octaves to be in the proper |
// MIDI range of 0 through 127. |
// Note that this is valid for MIDIToMusic() when using play modes |
// DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of |
// which store MIDI values in wMusicValue. With MusicToMIDI(), it is |
// valid for all play modes. |
// Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code. |
/// |
DMUS_S_DOWN_OCTAVE = (0 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $214;//MAKE_DMHRESULTSUCCESS(0x214) |
(* DMUS_E_DRIVER_FAILED |
* |
* An unexpected error was returned from a device driver, indicating |
* possible failure of the driver or hardware. |
*) |
DMUS_E_DRIVER_FAILED = MAKE_DMHRESULTERROR + $0101; |
// DMUS_E_DRIVER_FAILED |
// |
// An unexpected error was returned from a device driver, indicating |
// possible failure of the driver or hardware. |
/// |
DMUS_E_DRIVER_FAILED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0101;//MAKE_DMHRESULTERROR(0x0101) |
(* DMUS_E_PORTS_OPEN |
* |
* The requested operation cannot be performed while there are |
* instantiated ports in any process in the system. |
*) |
DMUS_E_PORTS_OPEN = MAKE_DMHRESULTERROR + $0102; |
// DMUS_E_PORTS_OPEN |
// |
// The requested operation cannot be performed while there are |
// instantiated ports in any process in the system. |
/// |
DMUS_E_PORTS_OPEN = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0102;//MAKE_DMHRESULTERROR(0x0102) |
(* DMUS_E_DEVICE_IN_USE |
* |
* The requested device is already in use (possibly by a non-DirectMusic |
* client) and cannot be opened again. |
*) |
DMUS_E_DEVICE_IN_USE = MAKE_DMHRESULTERROR + $0103; |
// DMUS_E_DEVICE_IN_USE |
// |
// The requested device is already in use (possibly by a non-DirectMusic |
// client) and cannot be opened again. |
/// |
DMUS_E_DEVICE_IN_USE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0103;//MAKE_DMHRESULTERROR(0x0103) |
(* DMUS_E_INSUFFICIENTBUFFER |
* |
* Buffer is not large enough for requested operation. |
*) |
DMUS_E_INSUFFICIENTBUFFER = MAKE_DMHRESULTERROR + $0104; |
// DMUS_E_INSUFFICIENTBUFFER |
// |
// Buffer is not large enough for requested operation. |
/// |
DMUS_E_INSUFFICIENTBUFFER = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0104;//MAKE_DMHRESULTERROR(0x0104) |
(* DMUS_E_BUFFERNOTSET |
* |
* No buffer was prepared for the download data. |
*) |
DMUS_E_BUFFERNOTSET = MAKE_DMHRESULTERROR + $0105; |
// DMUS_E_BUFFERNOTSET |
// |
// No buffer was prepared for the download data. |
/// |
DMUS_E_BUFFERNOTSET = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0105;//MAKE_DMHRESULTERROR(0x0105) |
(* DMUS_E_BUFFERNOTAVAILABLE |
* |
* Download failed due to inability to access or create download buffer. |
*) |
DMUS_E_BUFFERNOTAVAILABLE = MAKE_DMHRESULTERROR + $0106; |
// DMUS_E_BUFFERNOTAVAILABLE |
// |
// Download failed due to inability to access or create download buffer. |
/// |
DMUS_E_BUFFERNOTAVAILABLE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0106;//MAKE_DMHRESULTERROR(0x0106) |
(* DMUS_E_NOTADLSCOL |
* |
* Error parsing DLS collection. File is corrupt. |
*) |
DMUS_E_NOTADLSCOL = MAKE_DMHRESULTERROR + $0108; |
// DMUS_E_NOTADLSCOL |
// |
// Error parsing DLS collection. File is corrupt. |
/// |
DMUS_E_NOTADLSCOL = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0108;//MAKE_DMHRESULTERROR(0x0108) |
(* DMUS_E_INVALIDOFFSET |
* |
* Wave chunks in DLS collection file are at incorrect offsets. |
*) |
DMUS_E_INVALIDOFFSET = MAKE_DMHRESULTERROR + $0109; |
// DMUS_E_INVALIDOFFSET |
// |
// Wave chunks in DLS collection file are at incorrect offsets. |
/// |
DMUS_E_INVALIDOFFSET = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0109;//MAKE_DMHRESULTERROR(0x0109) |
(* DMUS_E_ALREADY_LOADED |
* |
* Second attempt to load a DLS collection that is currently open. |
*) |
DMUS_E_ALREADY_LOADED = MAKE_DMHRESULTERROR + $0111; |
// DMUS_E_ALREADY_LOADED |
// |
// Second attempt to load a DLS collection that is currently open. |
/// |
DMUS_E_ALREADY_LOADED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0111;//MAKE_DMHRESULTERROR(0x0111) |
(* DMUS_E_INVALIDPOS |
* |
* Error reading wave data from DLS collection. Indicates bad file. |
*) |
DMUS_E_INVALIDPOS = MAKE_DMHRESULTERROR + $0113; |
// DMUS_E_INVALIDPOS |
// |
// Error reading wave data from DLS collection. Indicates bad file. |
/// |
DMUS_E_INVALIDPOS = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0113;//MAKE_DMHRESULTERROR(0x0113) |
(* DMUS_E_INVALIDPATCH |
* |
* There is no instrument in the collection that matches patch number. |
*) |
DMUS_E_INVALIDPATCH = MAKE_DMHRESULTERROR + $0114; |
// DMUS_E_INVALIDPATCH |
// |
// There is no instrument in the collection that matches patch number. |
/// |
DMUS_E_INVALIDPATCH = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0114;//MAKE_DMHRESULTERROR(0x0114) |
(* DMUS_E_CANNOTSEEK |
* |
* The IStream* doesn't support Seek(). |
*) |
DMUS_E_CANNOTSEEK = MAKE_DMHRESULTERROR + $0115; |
// DMUS_E_CANNOTSEEK |
// |
// The IStream* doesn't support Seek(). |
/// |
DMUS_E_CANNOTSEEK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0115;//MAKE_DMHRESULTERROR(0x0115) |
(* DMUS_E_CANNOTWRITE |
* |
* The IStream* doesn't support Write(). |
*) |
DMUS_E_CANNOTWRITE = MAKE_DMHRESULTERROR + $0116; |
// DMUS_E_CANNOTWRITE |
// |
// The IStream* doesn't support Write(). |
/// |
DMUS_E_CANNOTWRITE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0116;//MAKE_DMHRESULTERROR(0x0116) |
(* DMUS_E_CHUNKNOTFOUND |
* |
* The RIFF parser doesn't contain a required chunk while parsing file. |
*) |
DMUS_E_CHUNKNOTFOUND = MAKE_DMHRESULTERROR + $0117; |
// DMUS_E_CHUNKNOTFOUND |
// |
// The RIFF parser doesn't contain a required chunk while parsing file. |
/// |
DMUS_E_CHUNKNOTFOUND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0117;//MAKE_DMHRESULTERROR(0x0117) |
(* DMUS_E_INVALID_DOWNLOADID |
* |
* Invalid download id was used in the process of creating a download buffer. |
*) |
DMUS_E_INVALID_DOWNLOADID = MAKE_DMHRESULTERROR + $0119; |
// DMUS_E_INVALID_DOWNLOADID |
// |
// Invalid download id was used in the process of creating a download buffer. |
/// |
DMUS_E_INVALID_DOWNLOADID = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0119;//MAKE_DMHRESULTERROR(0x0119) |
(* DMUS_E_NOT_DOWNLOADED_TO_PORT |
* |
* Tried to unload an object that was not downloaded or previously unloaded. |
*) |
DMUS_E_NOT_DOWNLOADED_TO_PORT = MAKE_DMHRESULTERROR + $0120; |
// DMUS_E_NOT_DOWNLOADED_TO_PORT |
// |
// Tried to unload an object that was not downloaded or previously unloaded. |
/// |
DMUS_E_NOT_DOWNLOADED_TO_PORT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0120;//MAKE_DMHRESULTERROR(0x0120) |
(* DMUS_E_ALREADY_DOWNLOADED |
* |
* Buffer was already downloaded to synth. |
*) |
DMUS_E_ALREADY_DOWNLOADED = MAKE_DMHRESULTERROR + $0121; |
// DMUS_E_ALREADY_DOWNLOADED |
// |
// Buffer was already downloaded to synth. |
/// |
DMUS_E_ALREADY_DOWNLOADED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0121;//MAKE_DMHRESULTERROR(0x0121) |
(* DMUS_E_UNKNOWN_PROPERTY |
* |
* The specified property item was not recognized by the target object. |
*) |
DMUS_E_UNKNOWN_PROPERTY = MAKE_DMHRESULTERROR + $0122; |
// DMUS_E_UNKNOWN_PROPERTY |
// |
// The specified property item was not recognized by the target object. |
/// |
DMUS_E_UNKNOWN_PROPERTY = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0122;//MAKE_DMHRESULTERROR(0x0122) |
(* DMUS_E_SET_UNSUPPORTED |
* |
* The specified property item may not be set on the target object. |
*) |
DMUS_E_SET_UNSUPPORTED = MAKE_DMHRESULTERROR + $0123; |
// DMUS_E_SET_UNSUPPORTED |
// |
// The specified property item may not be set on the target object. |
/// |
DMUS_E_SET_UNSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0123;//MAKE_DMHRESULTERROR(0x0123) |
(* DMUS_E_GET_UNSUPPORTED |
* |
* The specified property item may not be retrieved from the target object. |
*) |
DMUS_E_GET_UNSUPPORTED = MAKE_DMHRESULTERROR + $0124; |
// DMUS_E_GET_UNSUPPORTED |
// |
// The specified property item may not be retrieved from the target object. |
/// |
DMUS_E_GET_UNSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0124;//MAKE_DMHRESULTERROR(0x0124) |
(* DMUS_E_NOTMONO |
* |
* Wave chunk has more than one interleaved channel. DLS format requires MONO. |
*) |
DMUS_E_NOTMONO = MAKE_DMHRESULTERROR + $0125; |
// DMUS_E_NOTMONO |
// |
// Wave chunk has more than one interleaved channel. DLS format requires MONO. |
/// |
DMUS_E_NOTMONO = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0125;//MAKE_DMHRESULTERROR(0x0125) |
(* DMUS_E_BADARTICULATION |
* |
* Invalid articulation chunk in DLS collection. |
*) |
DMUS_E_BADARTICULATION = MAKE_DMHRESULTERROR + $0126; |
// DMUS_E_BADARTICULATION |
// |
// Invalid articulation chunk in DLS collection. |
/// |
DMUS_E_BADARTICULATION = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0126;//MAKE_DMHRESULTERROR(0x0126) |
(* DMUS_E_BADINSTRUMENT |
* |
* Invalid instrument chunk in DLS collection. |
*) |
DMUS_E_BADINSTRUMENT = MAKE_DMHRESULTERROR + $0127; |
// DMUS_E_BADINSTRUMENT |
// |
// Invalid instrument chunk in DLS collection. |
/// |
DMUS_E_BADINSTRUMENT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0127;//MAKE_DMHRESULTERROR(0x0127) |
(* DMUS_E_BADWAVELINK |
* |
* Wavelink chunk in DLS collection points to invalid wave. |
*) |
DMUS_E_BADWAVELINK = MAKE_DMHRESULTERROR + $0128; |
// DMUS_E_BADWAVELINK |
// |
// Wavelink chunk in DLS collection points to invalid wave. |
/// |
DMUS_E_BADWAVELINK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0128;//MAKE_DMHRESULTERROR(0x0128) |
(* DMUS_E_NOARTICULATION |
* |
* Articulation missing from instrument in DLS collection. |
*) |
DMUS_E_NOARTICULATION = MAKE_DMHRESULTERROR + $0129; |
// DMUS_E_NOARTICULATION |
// |
// Articulation missing from instrument in DLS collection. |
/// |
DMUS_E_NOARTICULATION = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0129;//MAKE_DMHRESULTERROR(0x0129) |
(* DMUS_E_NOTPCM |
* |
* Downoaded DLS wave is not in PCM format. |
*) |
DMUS_E_NOTPCM = MAKE_DMHRESULTERROR + $012A; |
// DMUS_E_NOTPCM |
// |
// Downoaded DLS wave is not in PCM format. |
/// |
DMUS_E_NOTPCM = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012A;//MAKE_DMHRESULTERROR(0x012A) |
(* DMUS_E_BADWAVE |
* |
* Bad wave chunk in DLS collection |
*) |
DMUS_E_BADWAVE = MAKE_DMHRESULTERROR + $012B; |
// DMUS_E_BADWAVE |
// |
// Bad wave chunk in DLS collection |
/// |
DMUS_E_BADWAVE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012B;//MAKE_DMHRESULTERROR(0x012B) |
(* DMUS_E_BADOFFSETTABLE |
* |
* Offset Table for download buffer has errors. |
*) |
DMUS_E_BADOFFSETTABLE = MAKE_DMHRESULTERROR + $012C; |
// DMUS_E_BADOFFSETTABLE |
// |
// Offset Table for download buffer has errors. |
/// |
DMUS_E_BADOFFSETTABLE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012C;//MAKE_DMHRESULTERROR(0x012C) |
(* DMUS_E_UNKNOWNDOWNLOAD |
* |
* Attempted to download unknown data type. |
*) |
DMUS_E_UNKNOWNDOWNLOAD = MAKE_DMHRESULTERROR + $012D; |
// DMUS_E_UNKNOWNDOWNLOAD |
// |
// Attempted to download unknown data type. |
/// |
DMUS_E_UNKNOWNDOWNLOAD = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012D;//MAKE_DMHRESULTERROR(0x012D) |
(* DMUS_E_NOSYNTHSINK |
* |
* The operation could not be completed because no sink was connected to |
* the synthesizer. |
*) |
DMUS_E_NOSYNTHSINK = MAKE_DMHRESULTERROR + $012E; |
// DMUS_E_NOSYNTHSINK |
// |
// The operation could not be completed because no sink was connected to |
// the synthesizer. |
/// |
DMUS_E_NOSYNTHSINK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012E;//MAKE_DMHRESULTERROR(0x012E) |
(* DMUS_E_ALREADYOPEN |
* |
* An attempt was made to open the software synthesizer while it was already |
* open. |
* ASSERT? |
*) |
DMUS_E_ALREADYOPEN = MAKE_DMHRESULTERROR + $012F; |
// DMUS_E_ALREADYOPEN |
// |
// An attempt was made to open the software synthesizer while it was already |
// open. |
// ASSERT? |
/// |
DMUS_E_ALREADYOPEN = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $012F;//MAKE_DMHRESULTERROR(0x012F) |
(* DMUS_E_ALREADYCLOSE |
* |
* An attempt was made to close the software synthesizer while it was already |
* open. |
* ASSERT? |
*) |
DMUS_E_ALREADYCLOSED = MAKE_DMHRESULTERROR + $0130; |
// DMUS_E_ALREADYCLOSE |
// |
// An attempt was made to close the software synthesizer while it was already |
// open. |
// ASSERT? |
/// |
DMUS_E_ALREADYCLOSED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0130;//MAKE_DMHRESULTERROR(0x0130) |
(* DMUS_E_SYNTHNOTCONFIGURED |
* |
* The operation could not be completed because the software synth has not |
* yet been fully configured. |
* ASSERT? |
*) |
DMUS_E_SYNTHNOTCONFIGURED = MAKE_DMHRESULTERROR + $0131; |
// DMUS_E_SYNTHNOTCONFIGURED |
// |
// The operation could not be completed because the software synth has not |
// yet been fully configured. |
// ASSERT? |
/// |
DMUS_E_SYNTHNOTCONFIGURED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0131;//MAKE_DMHRESULTERROR(0x0131) |
(* DMUS_E_SYNTHACTIVE |
* |
* The operation cannot be carried out while the synthesizer is active. |
*) |
DMUS_E_SYNTHACTIVE = MAKE_DMHRESULTERROR + $0132; |
// DMUS_E_SYNTHACTIVE |
// |
// The operation cannot be carried out while the synthesizer is active. |
/// |
DMUS_E_SYNTHACTIVE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0132;//MAKE_DMHRESULTERROR(0x0132) |
(* DMUS_E_CANNOTREAD |
* |
* An error occurred while attempting to read from the IStream* object. |
*) |
DMUS_E_CANNOTREAD = MAKE_DMHRESULTERROR + $0133; |
// DMUS_E_CANNOTREAD |
// |
// An error occurred while attempting to read from the IStream* object. |
/// |
DMUS_E_CANNOTREAD = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0133;//MAKE_DMHRESULTERROR(0x0133) |
(* DMUS_E_DMUSIC_RELEASED |
* |
* The operation cannot be performed because the final instance of the |
* DirectMusic object was released. Ports cannot be used after final |
* release of the DirectMusic object. |
*) |
DMUS_E_DMUSIC_RELEASED = MAKE_DMHRESULTERROR + $0134; |
// DMUS_E_DMUSIC_RELEASED |
// |
// The operation cannot be performed because the final instance of the |
// DirectMusic object was released. Ports cannot be used after final |
// release of the DirectMusic object. |
/// |
DMUS_E_DMUSIC_RELEASED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0134;//MAKE_DMHRESULTERROR(0x0134) |
(* DMUS_E_BUFFER_EMPTY |
* |
* There was no data in the referenced buffer. |
*) |
DMUS_E_BUFFER_EMPTY = MAKE_DMHRESULTERROR + $0135; |
// DMUS_E_BUFFER_EMPTY |
// |
// There was no data in the referenced buffer. |
/// |
DMUS_E_BUFFER_EMPTY = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0135;//MAKE_DMHRESULTERROR(0x0135) |
(* DMUS_E_BUFFER_FULL |
* |
* There is insufficient space to insert the given event into the buffer. |
*) |
DMUS_E_BUFFER_FULL = MAKE_DMHRESULTERROR + $0136; |
// DMUS_E_BUFFER_FULL |
// |
// There is insufficient space to insert the given event into the buffer. |
/// |
DMUS_E_BUFFER_FULL = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0136;//MAKE_DMHRESULTERROR(0x0136) |
(* DMUS_E_PORT_NOT_CAPTURE |
* |
* The given operation could not be carried out because the port is a |
* capture port. |
*) |
DMUS_E_PORT_NOT_CAPTURE = MAKE_DMHRESULTERROR + $0137; |
// DMUS_E_PORT_NOT_CAPTURE |
// |
// The given operation could not be carried out because the port is a |
// capture port. |
/// |
DMUS_E_PORT_NOT_CAPTURE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0137;//MAKE_DMHRESULTERROR(0x0137) |
(* DMUS_E_PORT_NOT_RENDER |
* |
* The given operation could not be carried out because the port is a |
* render port. |
*) |
DMUS_E_PORT_NOT_RENDER = MAKE_DMHRESULTERROR + $0138; |
// DMUS_E_PORT_NOT_RENDER |
// |
// The given operation could not be carried out because the port is a |
// render port. |
/// |
DMUS_E_PORT_NOT_RENDER = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0138;//MAKE_DMHRESULTERROR(0x0138) |
(* DMUS_E_DSOUND_NOT_SET |
* |
* The port could not be created because no DirectSound has been specified. |
* Specify a DirectSound interface via the IDirectMusic::SetDirectSound |
* method; pass NULL to have DirectMusic manage usage of DirectSound. |
*) |
DMUS_E_DSOUND_NOT_SET = MAKE_DMHRESULTERROR + $0139; |
// DMUS_E_DSOUND_NOT_SET |
// |
// The port could not be created because no DirectSound has been specified. |
// Specify a DirectSound interface via the IDirectMusic::SetDirectSound |
// method; pass NULL to have DirectMusic manage usage of DirectSound. |
/// |
DMUS_E_DSOUND_NOT_SET = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0139;//MAKE_DMHRESULTERROR(0x0139) |
(* DMUS_E_ALREADY_ACTIVATED |
* |
* The operation cannot be carried out while the port is active. |
*) |
DMUS_E_ALREADY_ACTIVATED = MAKE_DMHRESULTERROR + $013A; |
// DMUS_E_ALREADY_ACTIVATED |
// |
// The operation cannot be carried out while the port is active. |
/// |
DMUS_E_ALREADY_ACTIVATED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013A;//MAKE_DMHRESULTERROR(0x013A) |
(* DMUS_E_INVALIDBUFFER |
* |
* Invalid DirectSound buffer was handed to port. |
*) |
DMUS_E_INVALIDBUFFER = MAKE_DMHRESULTERROR + $013B; |
// DMUS_E_INVALIDBUFFER |
// |
// Invalid DirectSound buffer was handed to port. |
/// |
DMUS_E_INVALIDBUFFER = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013B;//MAKE_DMHRESULTERROR(0x013B) |
(* DMUS_E_WAVEFORMATNOTSUPPORTED |
* |
* Invalid buffer format was handed to the synth sink. |
*) |
DMUS_E_WAVEFORMATNOTSUPPORTED = MAKE_DMHRESULTERROR + $013C; |
// DMUS_E_WAVEFORMATNOTSUPPORTED |
// |
// Invalid buffer format was handed to the synth sink. |
/// |
DMUS_E_WAVEFORMATNOTSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013C;//MAKE_DMHRESULTERROR(0x013C) |
(* DMUS_E_SYNTHINACTIVE |
* |
* The operation cannot be carried out while the synthesizer is inactive. |
*) |
DMUS_E_SYNTHINACTIVE = MAKE_DMHRESULTERROR + $013D; |
// DMUS_E_SYNTHINACTIVE |
// |
// The operation cannot be carried out while the synthesizer is inactive. |
/// |
DMUS_E_SYNTHINACTIVE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013D;//MAKE_DMHRESULTERROR(0x013D) |
(* DMUS_E_DSOUND_ALREADY_SET |
* |
* IDirectMusic::SetDirectSound has already been called. It may not be |
* changed while in use. |
*) |
DMUS_E_DSOUND_ALREADY_SET = MAKE_DMHRESULTERROR + $013E; |
// DMUS_E_DSOUND_ALREADY_SET |
// |
// IDirectMusic::SetDirectSound has already been called. It may not be |
// changed while in use. |
/// |
DMUS_E_DSOUND_ALREADY_SET = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013E;//MAKE_DMHRESULTERROR(0x013E) |
(* DMUS_E_INVALID_EVENT |
* |
* The given event is invalid (either it is not a valid MIDI message |
* or it makes use of running status). The event cannot be packed |
* into the buffer. |
*) |
DMUS_E_INVALID_EVENT = MAKE_DMHRESULTERROR + $013F; |
// DMUS_E_INVALID_EVENT |
// |
// The given event is invalid (either it is not a valid MIDI message |
// or it makes use of running status). The event cannot be packed |
// into the buffer. |
/// |
DMUS_E_INVALID_EVENT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $013F;//MAKE_DMHRESULTERROR(0x013F) |
(* DMUS_E_UNSUPPORTED_STREAM |
* |
* The IStream* object does not contain data supported by the loading object. |
*) |
DMUS_E_UNSUPPORTED_STREAM = MAKE_DMHRESULTERROR + $0150; |
// DMUS_E_UNSUPPORTED_STREAM |
// |
// The IStream* object does not contain data supported by the loading object. |
/// |
DMUS_E_UNSUPPORTED_STREAM = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0150;//MAKE_DMHRESULTERROR(0x0150) |
(* DMUS_E_ALREADY_INITED |
* |
* The object has already been initialized. |
*) |
DMUS_E_ALREADY_INITED = MAKE_DMHRESULTERROR + $0151; |
// DMUS_E_ALREADY_INITED |
// |
// The object has already been initialized. |
/// |
DMUS_E_ALREADY_INITED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0151;//MAKE_DMHRESULTERROR(0x0151) |
(* DMUS_E_INVALID_BAND |
* |
* The file does not contain a valid band. |
*) |
DMUS_E_INVALID_BAND = MAKE_DMHRESULTERROR + $0152; |
// DMUS_E_INVALID_BAND |
// |
// The file does not contain a valid band. |
/// |
DMUS_E_INVALID_BAND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0152;//MAKE_DMHRESULTERROR(0x0152) |
(* DMUS_E_TRACK_HDR_NOT_FIRST_CK |
* |
* The IStream* object's data does not have a track header as the first chunk, |
* and therefore can not be read by the segment object. |
*) |
DMUS_E_TRACK_HDR_NOT_FIRST_CK = MAKE_DMHRESULTERROR + $0155; |
// DMUS_E_TRACK_HDR_NOT_FIRST_CK |
// |
// The IStream* object's data does not have a track header as the first chunk, |
// and therefore can not be read by the segment object. |
/// |
DMUS_E_TRACK_HDR_NOT_FIRST_CK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0155;//MAKE_DMHRESULTERROR(0x0155) |
(* DMUS_E_TOOL_HDR_NOT_FIRST_CK |
* |
* The IStream* object's data does not have a tool header as the first chunk, |
* and therefore can not be read by the graph object. |
*) |
DMUS_E_TOOL_HDR_NOT_FIRST_CK = MAKE_DMHRESULTERROR + $0156; |
// DMUS_E_TOOL_HDR_NOT_FIRST_CK |
// |
// The IStream* object's data does not have a tool header as the first chunk, |
// and therefore can not be read by the graph object. |
/// |
DMUS_E_TOOL_HDR_NOT_FIRST_CK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0156;//MAKE_DMHRESULTERROR(0x0156) |
(* DMUS_E_INVALID_TRACK_HDR |
* |
* The IStream* object's data contains an invalid track header (ckid is 0 and |
* fccType is NULL,) and therefore can not be read by the segment object. |
*) |
DMUS_E_INVALID_TRACK_HDR = MAKE_DMHRESULTERROR + $0157; |
// DMUS_E_INVALID_TRACK_HDR |
// |
// The IStream* object's data contains an invalid track header (ckid is 0 and |
// fccType is NULL,) and therefore can not be read by the segment object. |
/// |
DMUS_E_INVALID_TRACK_HDR = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0157;//MAKE_DMHRESULTERROR(0x0157) |
(* DMUS_E_INVALID_TOOL_HDR |
* |
* The IStream* object's data contains an invalid tool header (ckid is 0 and |
* fccType is NULL,) and therefore can not be read by the graph object. |
*) |
DMUS_E_INVALID_TOOL_HDR = MAKE_DMHRESULTERROR + $0158; |
// DMUS_E_INVALID_TOOL_HDR |
// |
// The IStream* object's data contains an invalid tool header (ckid is 0 and |
// fccType is NULL,) and therefore can not be read by the graph object. |
/// |
DMUS_E_INVALID_TOOL_HDR = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0158;//MAKE_DMHRESULTERROR(0x0158) |
(* DMUS_E_ALL_TOOLS_FAILED |
* |
* The graph object was unable to load all tools from the IStream* object data. |
* This may be due to errors in the stream, or the tools being incorrectly |
* registered on the client. |
*) |
DMUS_E_ALL_TOOLS_FAILED = MAKE_DMHRESULTERROR + $0159; |
// DMUS_E_ALL_TOOLS_FAILED |
// |
// The graph object was unable to load all tools from the IStream* object data. |
// This may be due to errors in the stream, or the tools being incorrectly |
// registered on the client. |
/// |
DMUS_E_ALL_TOOLS_FAILED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0159;//MAKE_DMHRESULTERROR(0x0159) |
(* DMUS_E_ALL_TRACKS_FAILED |
* |
* The segment object was unable to load all tracks from the IStream* object data. |
* This may be due to errors in the stream, or the tracks being incorrectly |
* registered on the client. |
*) |
DMUS_E_ALL_TRACKS_FAILED = MAKE_DMHRESULTERROR + $0160; |
// DMUS_E_ALL_TRACKS_FAILED |
// |
// The segment object was unable to load all tracks from the IStream* object data. |
// This may be due to errors in the stream, or the tracks being incorrectly |
// registered on the client. |
/// |
DMUS_E_ALL_TRACKS_FAILED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0160;//MAKE_DMHRESULTERROR(0x0160) |
(* DMUS_E_NOT_FOUND |
* |
* The requested item was not contained by the object. |
*) |
DMUS_E_NOT_FOUND = MAKE_DMHRESULTERROR + $0161; |
// DMUS_E_NOT_FOUND |
// |
// The requested item was not contained by the object. |
/// |
DMUS_E_NOT_FOUND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0161;//MAKE_DMHRESULTERROR(0x0161) |
(* DMUS_E_NOT_INIT |
* |
* A required object is not initialized or failed to initialize. |
*) |
DMUS_E_NOT_INIT = MAKE_DMHRESULTERROR + $0162; |
// DMUS_E_NOT_INIT |
// |
// A required object is not initialized or failed to initialize. |
/// |
DMUS_E_NOT_INIT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0162;//MAKE_DMHRESULTERROR(0x0162) |
(* DMUS_E_TYPE_DISABLED |
* |
* The requested parameter type is currently disabled. Parameter types may |
* be enabled and disabled by certain calls to SetParam(). |
*) |
DMUS_E_TYPE_DISABLED = MAKE_DMHRESULTERROR + $0163; |
// DMUS_E_TYPE_DISABLED |
// |
// The requested parameter type is currently disabled. Parameter types may |
// be enabled and disabled by certain calls to SetParam(). |
/// |
DMUS_E_TYPE_DISABLED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0163;//MAKE_DMHRESULTERROR(0x0163) |
(* DMUS_E_TYPE_UNSUPPORTED |
* |
* The requested parameter type is not supported on the object. |
*) |
DMUS_E_TYPE_UNSUPPORTED = MAKE_DMHRESULTERROR + $0164; |
// DMUS_E_TYPE_UNSUPPORTED |
// |
// The requested parameter type is not supported on the object. |
/// |
DMUS_E_TYPE_UNSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0164;//MAKE_DMHRESULTERROR(0x0164) |
(* DMUS_E_TIME_PAST |
* |
* The time is in the past, and the operation can not succeed. |
*) |
DMUS_E_TIME_PAST = MAKE_DMHRESULTERROR + $0165; |
// DMUS_E_TIME_PAST |
// |
// The time is in the past, and the operation can not succeed. |
/// |
DMUS_E_TIME_PAST = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0165;//MAKE_DMHRESULTERROR(0x0165) |
(* DMUS_E_TRACK_NOT_FOUND |
* |
* The requested track is not contained by the segment. |
*) |
DMUS_E_TRACK_NOT_FOUND = MAKE_DMHRESULTERROR + $0166; |
// DMUS_E_TRACK_NOT_FOUND |
// |
// The requested track is not contained by the segment. |
/// |
DMUS_E_TRACK_NOT_FOUND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0166;//MAKE_DMHRESULTERROR(0x0166) |
(* DMUS_E_NO_MASTER_CLOCK |
* |
* There is no master clock in the performance. Be sure to call |
* IDirectMusicPerformance::Init(). |
*) |
DMUS_E_NO_MASTER_CLOCK = MAKE_DMHRESULTERROR + $0170; |
// DMUS_E_NO_MASTER_CLOCK |
// |
// There is no master clock in the performance. Be sure to call |
// IDirectMusicPerformance::Init(). |
/// |
DMUS_E_NO_MASTER_CLOCK = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0170;//MAKE_DMHRESULTERROR(0x0170) |
(* DMUS_E_LOADER_NOCLASSID |
* |
* The class id field is required and missing in the DMUS_OBJECTDESC. |
*) |
DMUS_E_LOADER_NOCLASSID = MAKE_DMHRESULTERROR + $0180; |
// DMUS_E_LOADER_NOCLASSID |
// |
// The class id field is required and missing in the DMUS_OBJECTDESC. |
/// |
DMUS_E_LOADER_NOCLASSID = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0180;//MAKE_DMHRESULTERROR(0x0180) |
(* DMUS_E_LOADER_BADPATH |
* |
* The requested file path is invalid. |
*) |
DMUS_E_LOADER_BADPATH = MAKE_DMHRESULTERROR + $0181; |
// DMUS_E_LOADER_BADPATH |
// |
// The requested file path is invalid. |
/// |
DMUS_E_LOADER_BADPATH = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0181;//MAKE_DMHRESULTERROR(0x0181) |
(* DMUS_E_LOADER_FAILEDOPEN |
* |
* File open failed - either file doesn't exist or is locked. |
*) |
DMUS_E_LOADER_FAILEDOPEN = MAKE_DMHRESULTERROR + $0182; |
// DMUS_E_LOADER_FAILEDOPEN |
// |
// File open failed - either file doesn't exist or is locked. |
/// |
DMUS_E_LOADER_FAILEDOPEN = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0182;//MAKE_DMHRESULTERROR(0x0182) |
(* DMUS_E_LOADER_FORMATNOTSUPPORTED |
* |
* Search data type is not supported. |
*) |
DMUS_E_LOADER_FORMATNOTSUPPORTED = MAKE_DMHRESULTERROR + $0183; |
// DMUS_E_LOADER_FORMATNOTSUPPORTED |
// |
// Search data type is not supported. |
/// |
DMUS_E_LOADER_FORMATNOTSUPPORTED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0183;//MAKE_DMHRESULTERROR(0x0183) |
(* DMUS_E_LOADER_FAILEDCREATE |
* |
* Unable to find or create object. |
*) |
DMUS_E_LOADER_FAILEDCREATE = MAKE_DMHRESULTERROR + $0184; |
// DMUS_E_LOADER_FAILEDCREATE |
// |
// Unable to find or create object. |
/// |
DMUS_E_LOADER_FAILEDCREATE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0184;//MAKE_DMHRESULTERROR(0x0184) |
(* DMUS_E_LOADER_OBJECTNOTFOUND |
* |
* Object was not found. |
*) |
DMUS_E_LOADER_OBJECTNOTFOUND = MAKE_DMHRESULTERROR + $0185; |
// DMUS_E_LOADER_OBJECTNOTFOUND |
// |
// Object was not found. |
/// |
DMUS_E_LOADER_OBJECTNOTFOUND = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0185;//MAKE_DMHRESULTERROR(0x0185) |
(* DMUS_E_LOADER_NOFILENAME |
* |
* The file name is missing from the DMUS_OBJECTDESC. |
*) |
DMUS_E_LOADER_NOFILENAME = MAKE_DMHRESULTERROR + $0186; |
// DMUS_E_LOADER_NOFILENAME |
// |
// The file name is missing from the DMUS_OBJECTDESC. |
/// |
DMUS_E_LOADER_NOFILENAME = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0186;//MAKE_DMHRESULTERROR(0x0186) |
(* DMUS_E_INVALIDFILE |
* |
* The file requested is not a valid file. |
*) |
DMUS_E_INVALIDFILE = MAKE_DMHRESULTERROR + $0200; |
// DMUS_E_INVALIDFILE |
// |
// The file requested is not a valid file. |
/// |
DMUS_E_INVALIDFILE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0200;//MAKE_DMHRESULTERROR(0x0200) |
(* DMUS_E_ALREADY_EXISTS |
* |
* The tool is already contained in the graph. Create a new instance. |
*) |
DMUS_E_ALREADY_EXISTS = MAKE_DMHRESULTERROR + $0201; |
// DMUS_E_ALREADY_EXISTS |
// |
// The tool is already contained in the graph. Create a new instance. |
/// |
DMUS_E_ALREADY_EXISTS = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0201;//MAKE_DMHRESULTERROR(0x0201) |
(* DMUS_E_OUT_OF_RANGE |
* |
* Value is out of range, for instance the requested length is longer than |
* the segment. |
*) |
DMUS_E_OUT_OF_RANGE = MAKE_DMHRESULTERROR + $0202; |
// DMUS_E_OUT_OF_RANGE |
// |
// Value is out of range, for instance the requested length is longer than |
// the segment. |
/// |
DMUS_E_OUT_OF_RANGE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0202;//MAKE_DMHRESULTERROR(0x0202) |
(* DMUS_E_SEGMENT_INIT_FAILED |
* |
* Segment initialization failed, most likely due to a critical memory situation. |
*) |
DMUS_E_SEGMENT_INIT_FAILED = MAKE_DMHRESULTERROR + $0203; |
// DMUS_E_SEGMENT_INIT_FAILED |
// |
// Segment initialization failed, most likely due to a critical memory situation. |
/// |
DMUS_E_SEGMENT_INIT_FAILED = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0203;//MAKE_DMHRESULTERROR(0x0203) |
(* DMUS_E_ALREADY_SENT |
* |
* The DMUS_PMSG has already been sent to the performance object via |
* IDirectMusicPerformance::SendPMsg(). |
*) |
DMUS_E_ALREADY_SENT = MAKE_DMHRESULTERROR + $0204; |
// DMUS_E_ALREADY_SENT |
// |
// The DMUS_PMSG has already been sent to the performance object via |
// IDirectMusicPerformance::SendPMsg(). |
/// |
DMUS_E_ALREADY_SENT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0204;//MAKE_DMHRESULTERROR(0x0204) |
(* DMUS_E_CANNOT_FREE |
* |
* The DMUS_PMSG was either not allocated by the performance via |
* IDirectMusicPerformance::AllocPMsg(), or it was already freed via |
* IDirectMusicPerformance::FreePMsg(). |
*) |
DMUS_E_CANNOT_FREE = MAKE_DMHRESULTERROR + $0205; |
// DMUS_E_CANNOT_FREE |
// |
// The DMUS_PMSG was either not allocated by the performance via |
// IDirectMusicPerformance::AllocPMsg(), or it was already freed via |
// IDirectMusicPerformance::FreePMsg(). |
/// |
DMUS_E_CANNOT_FREE = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0205;//MAKE_DMHRESULTERROR(0x0205) |
(* DMUS_E_CANNOT_OPEN_PORT |
* |
* The default system port could not be opened. |
*) |
DMUS_E_CANNOT_OPEN_PORT = MAKE_DMHRESULTERROR + $0206; |
// DMUS_E_CANNOT_OPEN_PORT |
// |
// The default system port could not be opened. |
/// |
DMUS_E_CANNOT_OPEN_PORT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0206;//MAKE_DMHRESULTERROR(0x0206) |
(* DMUS_E_CONNOT_CONVERT |
* |
* A call to MIDIToMusic() or MusicToMIDI() resulted in an error because |
* the requested conversion could not happen. This usually occurs when the |
* provided DMUS_CHORD_KEY structure has an invalid chord or scale pattern. |
*) |
DMUS_E_CONNOT_CONVERT = MAKE_DMHRESULTERROR + $0207; |
// DMUS_E_CONNOT_CONVERT |
// |
// A call to MIDIToMusic() or MusicToMIDI() resulted in an error because |
// the requested conversion could not happen. This usually occurs when the |
// provided DMUS_CHORD_KEY structure has an invalid chord or scale pattern. |
/// |
DMUS_E_CONNOT_CONVERT = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0207;//MAKE_DMHRESULTERROR(0x0207) |
(* DMUS_E_DESCEND_CHUNK_FAIL |
* |
* DMUS_E_DESCEND_CHUNK_FAIL is returned when the end of the file |
* was reached before the desired chunk was found. |
*) |
DMUS_E_DESCEND_CHUNK_FAIL = MAKE_DMHRESULTERROR + $0210; |
// DMUS_E_DESCEND_CHUNK_FAIL |
// |
// DMUS_E_DESCEND_CHUNK_FAIL is returned when the end of the file |
// was reached before the desired chunk was found. |
/// |
DMUS_E_DESCEND_CHUNK_FAIL = (1 shl 31) + (FACILITY_DIRECTMUSIC shl 16) + DMUS_ERRBASE + $0210;//MAKE_DMHRESULTERROR(0x0210) |
(************************************************************************ |
* * |
* dmksctrl.h -- Definition of IKsControl * |
* * |
* Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
* * |
* * |
* This header file contains the definition of IKsControl, which * |
* duplicates definitions from ks.h and ksproxy.h. Your code should * |
* include ks.h and ksproxy.h directly if you have them (they are * |
* provided in the Windows 98 DDK and will be in the Windows NT 5 * |
* SDK). * |
* * |
************************************************************************) |
//************************************************************************ |
// * |
// dmksctrl.h -- Definition of IKsControl * |
// * |
// Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
// * |
// * |
// This header file contains the definition of IKsControl, which * |
// duplicates definitions from ks.h and ksproxy.h. Your code should * |
// include ks.h and ksproxy.h directly if you have them (they are * |
// provided in the Windows 98 DDK and will be in the Windows NT 5 * |
// SDK). * |
// * |
//********************************************************************** |
(* |
* Warning: This will prevent the rest of ks.h from being pulled in if ks.h is |
* included after dmksctrl.h. Make sure you do not include both headers in |
* the same source file. |
*) |
// |
// Warning: This will prevent the rest of ks.h from being pulled in if ks.h is |
// included after dmksctrl.h. Make sure you do not include both headers in |
// the same source file. |
/// |
type |
TData = record |
_Set : TGUID; |
Id : Cardinal; |
Flags : Cardinal; |
PKsIdentifier = ^TKsIdentifier; |
TKsIdentifier = packed record |
case integer of |
1 : ( |
Set_: TGUID; |
Id : ULONG; |
Flags: ULONG |
); |
2 : (Alignment: LONGLONG); |
end; |
TKSIDENTIFIER = record |
Data : TData; |
Alignment : LONGLONG; |
end; |
PKsProperty = ^TKsProperty; |
TKsProperty = TKsIdentifier; |
KSIDENTIFIER = TKSIDENTIFIER; |
PKSIDENTIFIER = ^KSIDENTIFIER; |
PKsMethod = ^TKsMethod; |
TKsMethod = TKsIdentifier; |
TKSPROPERTY = KSIDENTIFIER; |
KSPROPERTY = KSIDENTIFIER; |
PKSPROPERTY = ^KSIDENTIFIER; |
TKSMETHOD = KSIDENTIFIER; |
KSMETHOD = KSIDENTIFIER; |
PKSMETHOD = ^KSIDENTIFIER; |
TKSEVENT = KSIDENTIFIER; |
KSEVENT = KSIDENTIFIER; |
PKSEVENT = ^KSIDENTIFIER; |
PKsEvent = ^TKsEvent; |
TKsEvent = TKsIdentifier; |
const |
KSMETHOD_TYPE_NONE = $00000000; |
13203,64 → 19010,33 |
type |
IKsControl = interface(IUnknown) |
['{28F54685-06FD-11D2-B27A-00A0C9223196}'] |
//IKsControl |
function KsProperty(const _Property: TKSPROPERTY; PropertyLength: Cardinal; var PropertyData; |
DataLength: Cardinal; var BytesReturned: Cardinal) : HResult; stdcall; |
function KsMethod(const Method: TKSMETHOD; MethodLength: Cardinal; var PropertyData; |
DataLength: Cardinal; var BytesReturned: Cardinal) : HResult; stdcall; |
function KsEvent(const Event: TKSEVENT; EventLength: Cardinal; var EventData; |
DataLength: Cardinal; var BytesReturned: Cardinal) : HResult; stdcall; |
function KsProperty (const pProperty: TKsProperty; PropertyLength: ULONG; |
var PropertyData; DataLength: ULONG; out BytesReturned: ULONG) : HResult; stdcall; |
function KsMethod(const Method: TKsMethod; MethodLength: ULONG; |
var MethodData; DataLength: ULONG; out BytesReturned: ULONG) : HResult; stdcall; |
function KsEvent (const Event: TKsEvent; EventLength: ULONG; |
var EventData; DataLength: ULONG; out BytesReturned: ULONG) : HResult; stdcall; |
end; |
const |
IID_IKsControl : TGUID = '{28F54685-06FD-11D2-B27A-00A0C9223196}'; |
type |
IID_IKsControl = IKsControl; |
STATIC_IID_IKsControl = IID_IKsControl; |
// These formats are in ksmedia.h |
KSDATAFORMAT_SUBTYPE_MIDI : TGUID = '{1D262760-E957-11CF-A5D6-28DB04C10000}'; |
KSDATAFORMAT_SUBTYPE_DIRECTMUSIC : TGUID = '{1A82F8BC-3F8B-11D2-B774-0060083316C1}'; |
//************************************************************************** |
// * |
// DMusBuff.h -- This module defines the buffer format for DirectMusic * |
// Shared file between user mode and kernel mode components * |
// * |
// Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
// * |
//************************************************************************* |
// Format of DirectMusic events in a buffer |
// |
// A buffer contains 1 or more events, each with the following header. |
// Immediately following the header is the event data. The header+data |
// size is rounded to the nearest quadword (8 bytes). |
/// |
// Do not pad at end - that's where the data is |
type |
TDMUS_EVENTHEADER = record |
cbEvent : DWORD; // Unrounded bytes in event |
dwChannelGroup : DWORD; // Channel group of event |
rtDelta : REFERENCE_TIME; // Delta from start time of entire buffer |
dwFlags : DWORD; // Flags DMUS_EVENT_xxx |
end; |
DMUS_EVENTHEADER = TDMUS_EVENTHEADER; |
LPDMUS_EVENTHEADER = ^TDMUS_EVENTHEADER; |
const |
DMUS_EVENT_STRUCTURED = $00000001; // Unstructured data (SysEx, etc.) |
(* These formats are in ksmedia.h |
*) |
KSDATAFORMAT_SUBTYPE_MIDI : TGUID = '{1D262760-E957-11CF-A5D6-28DB04C10000}'; |
// The number of bytes to allocate for an event with 'cb' data bytes. |
// |
function QWORD_ALIGN(x: LONGLONG) : LONGLONG; //(((x) + 7) & ~7) |
function DMUS_EVENT_SIZE(cb: LONGLONG) : LONGLONG; //QWORD_ALIGN(sizeof(DMUS_EVENTHEADER) + cb) |
KSDATAFORMAT_SUBTYPE_DIRECTMUSIC : TGUID = '{1a82f8bc-3f8b-11d2-b774-0060083316c1}'; |
//*********************************************************************** |
// * |
// dmusicc.h -- This module defines the DirectMusic core API's * |
// * |
// Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
// * |
//********************************************************************** |
(************************************************************************ |
* * |
* dmusicc.h -- This module defines the DirectMusic core API's * |
* * |
* Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
* * |
************************************************************************) |
const |
DMUS_MAX_DESCRIPTION = 128; |
13267,44 → 19043,44 |
DMUS_MAX_DRIVER = 128; |
type |
TDMUS_BUFFERDESC = record |
dwSize : DWORD; |
PDMus_BufferDesc = ^TDMus_BufferDesc; |
TDMus_BufferDesc = packed record |
dwSize, |
dwFlags : DWORD; |
guidBufferFormat : TGUID; |
cbBuffer : DWORD; |
end; |
DMUS_BUFFERDESC = TDMUS_BUFFERDESC; |
LPDMUS_BUFFERDESC = ^TDMUS_BUFFERDESC; |
// DMUS_EFFECT_ flags are used in the dwEffectFlags fields of both DMUS_PORTCAPS |
// and DMUS_PORTPARAMS. |
/// |
const |
(* DMUS_EFFECT_ flags are used in the dwEffectFlags fields of both DMUS_PORTCAPS |
* and DMUS_PORTPARAMS. |
*) |
DMUS_EFFECT_NONE = $00000000; |
DMUS_EFFECT_REVERB = $00000001; |
DMUS_EFFECT_CHORUS = $00000002; |
// For DMUS_PORTCAPS dwClass |
// |
DMUS_PC_INPUTCLASS = (0); |
DMUS_PC_OUTPUTCLASS = (1); |
(* For DMUS_PORTCAPS dwClass |
*) |
DMUS_PC_INPUTCLASS = 0; |
DMUS_PC_OUTPUTCLASS = 1; |
// For DMUS_PORTCAPS dwFlags |
// |
DMUS_PC_DLS = ($00000001); |
DMUS_PC_EXTERNAL = ($00000002); |
DMUS_PC_SOFTWARESYNTH = ($00000004); |
DMUS_PC_MEMORYSIZEFIXED = ($00000008); |
DMUS_PC_GMINHARDWARE = ($00000010); |
DMUS_PC_GSINHARDWARE = ($00000020); |
DMUS_PC_XGINHARDWARE = ($00000040); |
DMUS_PC_DIRECTSOUND = ($00000080); |
DMUS_PC_SHAREABLE = ($00000100); |
DMUS_PC_SYSTEMMEMORY = ($7FFFFFFF); |
(* For DMUS_PORTCAPS dwFlags |
*) |
DMUS_PC_DLS = $00000001; |
DMUS_PC_EXTERNAL = $00000002; |
DMUS_PC_SOFTWARESYNTH = $00000004; |
DMUS_PC_MEMORYSIZEFIXED = $00000008; |
DMUS_PC_GMINHARDWARE = $00000010; |
DMUS_PC_GSINHARDWARE = $00000020; |
DMUS_PC_XGINHARDWARE = $00000040; |
DMUS_PC_DIRECTSOUND = $00000080; |
DMUS_PC_SHAREABLE = $00000100; |
DMUS_PC_DLS2 = $00000200; |
DMUS_PC_SYSTEMMEMORY = $7FFFFFFF; |
type |
TDMUS_PORTCAPS = record |
PDMus_PortCaps = ^TDMus_PortCaps; |
TDMus_PortCaps = packed record |
dwSize : DWORD; |
dwFlags : DWORD; |
guidPort : TGUID; |
13315,22 → 19091,20 |
dwMaxVoices : DWORD; |
dwMaxAudioChannels : DWORD; |
dwEffectFlags : DWORD; |
wszDescription : array[0..DMUS_MAX_DESCRIPTION - 1] of WCHAR; |
wszDescription: array [0..DMUS_MAX_DESCRIPTION-1] of WideChar; |
end; |
DMUS_PORTCAPS = TDMUS_PORTCAPS; |
LPDMUS_PORTCAPS = ^TDMUS_PORTCAPS; |
// Values for DMUS_PORTCAPS dwType. This field indicates the underlying |
// driver type of the port. |
/// |
const |
DMUS_PORT_WINMM_DRIVER = (0); |
DMUS_PORT_USER_MODE_SYNTH = (1); |
DMUS_PORT_KERNEL_MODE = (2); |
(* Values for DMUS_PORTCAPS dwType. This field indicates the underlying |
* driver type of the port. |
*) |
DMUS_PORT_WINMM_DRIVER = 0; |
DMUS_PORT_USER_MODE_SYNTH = 1; |
DMUS_PORT_KERNEL_MODE = 2; |
// These flags (set in dwValidParams) indicate which other members of the |
// DMUS_PORTPARAMS are valid. |
// |
(* These flags (set in dwValidParams) indicate which other members of the *) |
(* DMUS_PORTPARAMS are valid. *) |
(* *) |
DMUS_PORTPARAMS_VOICES = $00000001; |
DMUS_PORTPARAMS_CHANNELGROUPS = $00000002; |
DMUS_PORTPARAMS_AUDIOCHANNELS = $00000004; |
13339,7 → 19113,8 |
DMUS_PORTPARAMS_SHARE = $00000040; |
type |
TDMUS_PORTPARAMS = record |
PDMus_PortParams = ^TDMus_PortParams; |
TDMus_PortParams = packed record |
dwSize : DWORD; |
dwValidParams : DWORD; |
dwVoices : DWORD; |
13349,476 → 19124,447 |
dwEffectFlags : DWORD; |
fShare : BOOL; |
end; |
DMUS_PORTPARAMS = TDMUS_PORTPARAMS; |
LPDMUS_PORTPARAMS = ^TDMUS_PORTPARAMS; |
TDMUS_SYNTHSTATS = record |
dwSize : DWORD; // Size in bytes of the structure |
dwValidStats : DWORD; // Flags indicating which fields below are valid. |
dwVoices : DWORD; // Average number of voices playing. |
dwTotalCPU : DWORD; // Total CPU usage as percent * 100. |
dwCPUPerVoice : DWORD; // CPU per voice as percent * 100. |
dwLostNotes : DWORD; // Number of notes lost in 1 second. |
dwFreeMemory : DWORD; // Free memory in bytes |
lPeakVolume : Longint; // Decibel level * 100. |
PDMus_SynthStats = ^TDMus_SynthStats; |
TDMus_SynthStats = packed record |
dwSize: DWORD; (* Size in bytes of the structure *) |
dwValidStats: DWORD; (* Flags indicating which fields below are valid. *) |
dwVoices: DWORD; (* Average number of voices playing. *) |
dwTotalCPU: DWORD; (* Total CPU usage as percent * 100. *) |
dwCPUPerVoice: DWORD; (* CPU per voice as percent * 100. *) |
dwLostNotes: DWORD; (* Number of notes lost in 1 second. *) |
dwFreeMemory: DWORD; (* Free memory in bytes *) |
lPeakVolume: LongInt; (* Decibel level * 100. *) |
end; |
DMUS_SYNTHSTATS = TDMUS_SYNTHSTATS; |
LPDMUS_SYNTHSTATS = ^TDMUS_SYNTHSTATS; |
const |
DMUS_SYNTHSTATS_VOICES = 1; |
DMUS_SYNTHSTATS_TOTAL_CPU = 2; |
DMUS_SYNTHSTATS_CPU_PER_VOICE = 4; |
DMUS_SYNTHSTATS_LOST_NOTES = 8; |
DMUS_SYNTHSTATS_PEAK_VOLUME = 16; |
DMUS_SYNTHSTATS_FREE_MEMORY = 32; |
DMUS_SYNTHSTATS_VOICES = 1 shl 0; |
DMUS_SYNTHSTATS_TOTAL_CPU = 1 shl 1; |
DMUS_SYNTHSTATS_CPU_PER_VOICE = 1 shl 2; |
DMUS_SYNTHSTATS_LOST_NOTES = 1 shl 3; |
DMUS_SYNTHSTATS_PEAK_VOLUME = 1 shl 4; |
DMUS_SYNTHSTATS_FREE_MEMORY = 1 shl 5; |
DMUS_SYNTHSTATS_SYSTEMMEMORY = DMUS_PC_SYSTEMMEMORY; |
type |
TDMUS_WAVES_REVERB_PARAMS = record |
fInGain : Single; // Input gain in dB (to avoid output overflows) |
fReverbMix : Single; // Reverb mix in dB. 0dB means 100% wet reverb (no direct signal) |
//Negative values gives less wet signal. |
//The coeficients are calculated so that the overall output level stays |
//(approximately) constant regardless of the ammount of reverb mix. |
fReverbTime : Single; // The reverb decay time, in milliseconds. |
fHighFreqRTRatio : Single; // The ratio of the high frequencies to the global reverb time. |
//Unless very 'splashy-bright' reverbs are wanted, this should be set to |
//a value < 1.0. |
//For example if dRevTime==1000ms and dHighFreqRTRatio=0.1 than the |
//decay time for high frequencies will be 100ms. |
TDMus_Waves_Reverb_Params = packed record |
fInGain, (* Input gain in dB (to avoid output overflows) *) |
fReverbMix, (* Reverb mix in dB. 0dB means 100% wet reverb (no direct signal) |
Negative values gives less wet signal. |
The coeficients are calculated so that the overall output level stays |
(approximately) constant regardless of the ammount of reverb mix. *) |
fReverbTime, (* The reverb decay time, in milliseconds. *) |
fHighFreqRTRatio : Single; (* The ratio of the high frequencies to the global reverb time. |
Unless very 'splashy-bright' reverbs are wanted, this should be set to |
a value < 1.0. |
For example if dRevTime==1000ms and dHighFreqRTRatio=0.1 than the |
decay time for high frequencies will be 100ms.*) |
end; |
DMUS_WAVES_REVERB_PARAMS = TDMUS_WAVES_REVERB_PARAMS; |
// Note: Default values for Reverb are: |
// fInGain = 0.0dB (no change in level) |
// fReverbMix = -10.0dB (a reasonable reverb mix) |
// fReverbTime = 1000.0ms (one second global reverb time) |
// fHighFreqRTRatio = 0.001 (the ratio of the high frequencies to the global reverb time) |
/// |
DMUS_CLOCKTYPE = (DMUS_CLOCK_SYSTEM, DMUS_CLOCK_WAVE); //DMUS_CLOCK_SYSTEM = 0, |
//DMUS_CLOCK_WAVE = 1 |
(* Note: Default values for Reverb are: |
fInGain = 0.0dB (no change in level) |
fReverbMix = -10.0dB (a reasonable reverb mix) |
fReverbTime = 1000.0ms (one second global reverb time) |
fHighFreqRTRatio = 0.001 (the ratio of the high frequencies to the global reverb time) |
*) |
TDMUS_CLOCKINFO = record |
dwSize : DWORD; |
ctType : DMUS_CLOCKTYPE; |
guidClock : TGUID; // Identifies this time source |
wszDescription : array[0..DMUS_MAX_DESCRIPTION - 1] of WCHAR; |
TDMus_ClockType = ( |
DMUS_CLOCK_SYSTEM, |
DMUS_CLOCK_WAVE |
); |
PDMus_ClockInfo = ^TDMus_ClockInfo; |
TDMus_ClockInfo = packed record |
dwSize : WORD; |
ctType : TDMus_ClockType; |
guidClock : TGUID; (* Identifies this time source *) |
wszDescription : array [0..DMUS_MAX_DESCRIPTION-1] of WideChar; |
end; |
DMUS_CLOCKINFO = TDMUS_CLOCKINFO; |
LPDMUS_CLOCKINFO = ^TDMUS_CLOCKINFO; |
const |
DMUS_EVENT_STRUCTURED = $00000001; (* Unstructured data (SysEx, etc.) *) |
(* Standard values for voice priorities. Numerically higher priorities are higher in priority. |
* These priorities are used to set the voice priority for all voices on a channel. They are |
* used in the dwPriority parameter of IDirectMusicPort::GetPriority and returned in the |
* lpwPriority parameter of pdwPriority. |
* |
* These priorities are shared with DirectSound. |
*) |
const |
DAUD_CRITICAL_VOICE_PRIORITY = $F0000000; |
DAUD_HIGH_VOICE_PRIORITY = $C0000000; |
DAUD_STANDARD_VOICE_PRIORITY = $80000000; |
DAUD_LOW_VOICE_PRIORITY = $40000000; |
DAUD_PERSIST_VOICE_PRIORITY = $10000000; |
(* These are the default priorities assigned if not overridden. By default priorities are |
* equal across channel groups (e.g. channel 5 on channel group 1 has the same priority as |
* channel 5 on channel group 2;. |
* |
* In accordance with DLS level 1, channel 10 has the highest priority, followed by 1 through 16 |
* except for 10. |
*) |
DAUD_CHAN1_VOICE_PRIORITY_OFFSET = $0000000E; |
DAUD_CHAN2_VOICE_PRIORITY_OFFSET = $0000000D; |
DAUD_CHAN3_VOICE_PRIORITY_OFFSET = $0000000C; |
DAUD_CHAN4_VOICE_PRIORITY_OFFSET = $0000000B; |
DAUD_CHAN5_VOICE_PRIORITY_OFFSET = $0000000A; |
DAUD_CHAN6_VOICE_PRIORITY_OFFSET = $00000009; |
DAUD_CHAN7_VOICE_PRIORITY_OFFSET = $00000008; |
DAUD_CHAN8_VOICE_PRIORITY_OFFSET = $00000007; |
DAUD_CHAN9_VOICE_PRIORITY_OFFSET = $00000006; |
DAUD_CHAN10_VOICE_PRIORITY_OFFSET = $0000000F; |
DAUD_CHAN11_VOICE_PRIORITY_OFFSET = $00000005; |
DAUD_CHAN12_VOICE_PRIORITY_OFFSET = $00000004; |
DAUD_CHAN13_VOICE_PRIORITY_OFFSET = $00000003; |
DAUD_CHAN14_VOICE_PRIORITY_OFFSET = $00000002; |
DAUD_CHAN15_VOICE_PRIORITY_OFFSET = $00000001; |
DAUD_CHAN16_VOICE_PRIORITY_OFFSET = $00000000; |
DAUD_CHAN1_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN1_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN2_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN2_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN3_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN3_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN4_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN4_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN5_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN5_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN6_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN6_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN7_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN7_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN8_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN8_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN9_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN9_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN10_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN10_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN11_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN11_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN12_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN12_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN13_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN13_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN14_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN14_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN15_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN15_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN16_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN16_VOICE_PRIORITY_OFFSET); |
type |
IDirectMusicBuffer = interface; |
IDirectMusicPort = interface; |
IDirectMusicThru = interface; |
IReferenceClock = interface; |
PIReferenceClock = IReferenceClock; |
LPDIRECTMUSICBUFFER = IDirectMusicBuffer; |
LPDIRECTMUSICPORT = IDirectMusicPort; |
IDirectMusic = interface(IUnknown) |
['{6536115A-7B2D-11D2-BA18-0000F875AC12}'] |
// IDirectMusic |
function EnumPort(dwIndex: DWORD; var pPortCaps: TDMUS_PORTCAPS) : HResult; stdcall; |
function CreateMusicBuffer(const pBufferDesc: TDMUS_BUFFERDESC; out ppBuffer: IDirectMusicBuffer; |
['{6536115a-7b2d-11d2-ba18-0000f875ac12}'] |
function EnumPort (dwIndex: DWORD; |
var pPortCaps: TDMus_PortCaps) : HResult; stdcall; |
function CreateMusicBuffer (var pBufferDesc: TDMus_BufferDesc; |
out ppBuffer: IDirectMusicBuffer; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function CreatePort(const rclsidPort: TGUID; const pPortParams: TDMUS_PORTPARAMS; |
out ppPort: IDirectMusicPort; pUnkOuter: IUnknown) : HResult; stdcall; |
function EnumMasterClock(dwIndex: DWORD; var lpClockInfo: TDMUS_CLOCKINFO) : HResult; stdcall; |
function GetMasterClock(pguidClock: PGUID; out ppReferenceClock: IReferenceClock) : HResult; stdcall; |
function CreatePort (const rclsidPort: TGUID; |
const pPortParams: TDMus_PortParams; |
out ppPort: IDirectMusicPort; |
pUnkOuter: IUnknown) : HResult; stdcall; |
function EnumMasterClock (dwIndex: DWORD; |
var lpClockInfo: TDMus_ClockInfo) : HResult; stdcall; |
function GetMasterClock (pguidClock: PGUID; |
ppReferenceClock : PIReferenceClock) : HResult; stdcall; |
function SetMasterClock(const rguidClock: TGUID) : HResult; stdcall; |
function Activate(fEnable: BOOL) : HResult; stdcall; |
function GetDefaultPort(var pguidPort: TGUID) : HResult; stdcall; |
function SetDirectSound(pDirectSound: IDirectSound; hWnd: HWND) : HResult; stdcall; |
function GetDefaultPort (out pguidPort: TGUID) : HResult; stdcall; |
function SetDirectSound (pDirectSound: IDirectSound; |
hWnd: HWND) : HResult; stdcall; |
end; |
IDirectMusicBuffer = interface(IUnknown) |
['{D2AC2878-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicBuffer |
['{d2ac2878-b39b-11d1-8704-00600893b1bd}'] |
function Flush : HResult; stdcall; |
function TotalTime(var prtTime: TREFERENCE_TIME) : HResult; stdcall; |
function PackStructured(rt: TREFERENCE_TIME; dwChannelGroup: DWORD; |
function TotalTime (out prtTime: TReference_Time) : HResult; stdcall; |
function PackStructured (const rt: TReference_Time; |
dwChannelGroup: DWORD; |
dwChannelMessage: DWORD) : HResult; stdcall; |
function PackUnstructured(rt: TREFERENCE_TIME; dwChannelGroup: DWORD; |
cb: DWORD; const lpb) : HResult; stdcall; |
function PackUnstructured (const rt: TReference_Time; |
dwChannelGroup: DWORD; |
cb: DWORD; |
const lpb) : HResult; stdcall; |
function ResetReadPtr : HResult; stdcall; |
function GetNextEvent(var prt: TREFERENCE_TIME; var pdwChannelGroup: DWORD; |
var pdwLength: DWORD; var ppData: Pointer) : HResult; stdcall; |
function GetRawBufferPtr(var ppData: Pointer) : HResult; stdcall; |
function GetStartTime(var prt: TREFERENCE_TIME) : HResult; stdcall; |
function GetUsedBytes(var pcb: DWORD) : HResult; stdcall; |
function GetMaxBytes(var pcb: DWORD) : HResult; stdcall; |
function GetBufferFormat(var pGuidFormat: TGUID) : HResult; stdcall; |
function SetStartTime(rt: TREFERENCE_TIME) : HResult; stdcall; |
function GetNextEvent (out prt: TReference_Time; |
out pdwChannelGroup: DWORD; |
out pdwLength: DWORD; |
out ppData: Pointer) : HResult; stdcall; |
function GetRawBufferPtr (out ppData: Pointer) : HResult; stdcall; |
function GetStartTime (out prt: TReference_Time) : HResult; stdcall; |
function GetUsedBytes (out pcb: DWORD) : HResult; stdcall; |
function GetMaxBytes (out pcb: DWORD) : HResult; stdcall; |
function GetBufferFormat (out pGuidFormat: TGUID) : HResult; stdcall; |
function SetStartTime (const rt: TReference_Time) : HResult; stdcall; |
function SetUsedBytes(cb: DWORD) : HResult; stdcall; |
end; |
// Format of DirectMusic events in a buffer |
// |
// A buffer contains 1 or more events, each with the following header. |
// Immediately following the header is the event data. The header+data |
// size is rounded to the nearest quadword (8 bytes). |
/// |
{TDMUS_EVENTHEADER = record |
cbEvent : DWORD; // Unrounded bytes in event |
dwChannelGroup : DWORD; // Channel group of event |
rtDelta : REFERENCE_TIME; // Delta from start time of entire buffer |
dwFlags : DWORD; // Flags DMUS_EVENT_xxx |
(* Format of DirectMusic events in a buffer |
* |
* A buffer contains 1 or more events, each with the following header. |
* Immediately following the header is the event data. The header+data |
* size is rounded to the nearest quadword (8 bytes). |
*) |
TDMus_EventHeader = packed record |
cbEvent: DWORD; (* Unrounded bytes in event *) |
dwChannelGroup: DWORD; (* Channel group of event *) |
rtDelta: TReference_Time; (* Delta from start time of entire buffer *) |
dwFlags: DWORD; (* Flags DMUS_EVENT_xxx *) |
end; |
DMUS_EVENTHEADER = TDMUS_EVENTHEADER; |
LPDMUS_EVENTHEADER = ^TDMUS_EVENTHEADER;} |
IDirectMusicInstrument = interface(IUnknown) |
['{D2AC287D-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicInstrument |
function GetPatch(var pdwPatch: DWORD) : HResult; stdcall; |
['{d2ac287d-b39b-11d1-8704-00600893b1bd}'] |
function GetPatch (out pdwPatch: DWORD ) : HResult; stdcall; |
function SetPatch(dwPatch: DWORD) : HResult; stdcall; |
end; |
IDirectMusicDownloadedInstrument = interface(IUnknown) |
['{D2AC287E-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicDownloadedInstrument |
// None at this time |
['{d2ac287e-b39b-11d1-8704-00600893b1bd}'] |
(* None at this time *) |
end; |
IDirectMusicCollection = interface(IUnknown) |
['{D2AC287C-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicCollection |
function GetInstrument(dwPatch: DWORD; out ppInstrument: IDirectMusicInstrument) : HResult; stdcall; |
function EnumInstrument(dwIndex: DWORD; var pdwPatch: DWORD; |
pwszName: LPWSTR; dwNameLen: DWORD) : HResult; stdcall; |
['{d2ac287c-b39b-11d1-8704-00600893b1bd}'] |
function GetInstrument (dwPatch: DWORD; |
out ppInstrument: IDirectMusicInstrument) : HResult; stdcall; |
function EnumInstrument (dwIndex: DWORD; |
out pdwPatch: DWORD; |
pwszName: LPWSTR; |
dwNameLen: DWORD) : HResult; stdcall; |
end; |
IDirectMusicDownload = interface(IUnknown) |
['{D2AC287B-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicDownload |
function GetBuffer(var ppvBuffer: Pointer; var pdwSize: DWORD) : HResult; stdcall; |
['{d2ac287b-b39b-11d1-8704-00600893b1bd}'] |
function GetBuffer (out ppvBuffer: Pointer; |
out pdwSize: DWORD) : HResult; stdcall; |
end; |
IDirectMusicPortDownload = interface(IUnknown) |
['{D2AC287A-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicPortDownload |
function GetBuffer(dwDLId: DWORD; out ppIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
function AllocateBuffer(dwSize: DWORD; out ppIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
function GetDLId(var pdwStartDLId; dwCount: DWORD) : HResult; stdcall; |
function GetAppend(var pdwAppend: DWORD) : HResult; stdcall; |
['{d2ac287a-b39b-11d1-8704-00600893b1bd}'] |
function GetBuffer (dwDLId: DWORD; |
out ppIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
function AllocateBuffer (dwSize: DWORD; |
out ppIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
function GetDLId (out pdwStartDLId: DWORD; |
dwCount: DWORD) : HResult; stdcall; |
function GetAppend (out pdwAppend: DWORD) : HResult; stdcall; |
function Download(pIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
function Unload(pIDMDownload: IDirectMusicDownload) : HResult; stdcall; |
end; |
// These are the default priorities assigned if not overridden. By default priorities are |
// equal across channel groups (e.g. channel 5 on channel group 1 has the same priority as |
// channel 5 on channel group 2). |
// |
// In accordance with DLS level 1, channel 10 has the highest priority, followed by 1 through 16 |
// except for 10. |
/// |
IDirectMusicPort = interface(IUnknown) |
['{08F2D8C9-37C2-11D2-B9F9-0000F875AC12}'] |
// IDirectMusicPort |
// |
['{08f2d8c9-37c2-11d2-b9f9-0000f875ac12}'] |
function PlayBuffer(pBuffer: IDirectMusicBuffer) : HResult; stdcall; |
function SetReadNotificationHandle(hEvent: THandle) : HResult; stdcall; |
function SetReadNotificationHandle (hEvent: THANDLE) : HResult; stdcall; |
function Read(pBuffer: IDirectMusicBuffer) : HResult; stdcall; |
function DownloadInstrument(pInstrument: IDirectMusicInstrument; |
out ppDownloadedInstrument: IDirectMusicDownloadedInstrument; |
const pNoteRanges; |
pNoteRanges: PDMus_NoteRange; |
dwNumNoteRanges: DWORD) : HResult; stdcall; |
function UnloadInstrument(pDownloadedInstrument: IDirectMusicDownloadedInstrument) : HResult; stdcall; |
function GetLatencyClock(out ppClock: IReferenceClock) : HResult; stdcall; |
function GetRunningStats(var pStats: TDMUS_SYNTHSTATS) : HResult stdcall; |
function GetRunningStats (var pStats: TDMus_SynthStats) : HResult; stdcall; |
function Compact : HResult; stdcall; |
function GetCaps(var pPortCaps: TDMUS_PORTCAPS) : HResult; stdcall; |
function GetCaps (var pPortCaps: TDMus_PortCaps) : HResult; stdcall; |
function DeviceIoControl(dwIoControlCode: DWORD; |
const lpInBuffer; |
nInBufferSize: DWORD; |
var lpOutBuffer; |
out lpOutBuffer; |
nOutBufferSize: DWORD; |
var lpBytesReturned: DWORD; |
out lpBytesReturned: DWORD; |
var lpOverlapped: TOVERLAPPED) : HResult; stdcall; |
function SetNumChannelGroups(dwChannelGroups: DWORD) : HResult; stdcall; |
function GetNumChannelGroups(var pdwChannelGroups: DWORD) : HResult; stdcall; |
function GetNumChannelGroups (out pdwChannelGroups: DWORD) : HResult; stdcall; |
function Activate(fActive: BOOL) : HResult; stdcall; |
function SetChannelPriority(dwChannelGroup: DWORD; dwChannel: DWORD; dwPriority: DWORD) : HResult; stdcall; |
function GetChannelPriority(dwChannelGroup: DWORD; dwChannel: DWORD; var pdwPriority: DWORD) : HResult; stdcall; |
function SetDirectSound(pDirectSound: IDirectSound; pDirectSoundBuffer: IDirectSoundBuffer) : HResult; stdcall; |
function GetFormat(var pWaveFormatEx: TWAVEFORMATEX; var pdwWaveFormatExSize: DWORD; var pdwBufferSize: DWORD) : HResult; stdcall; |
function SetChannelPriority (dwChannelGroup, dwChannel, |
dwPriority: DWORD) : HResult; stdcall; |
function GetChannelPriority (dwChannelGroup, dwChannel: DWORD; |
out pdwPriority: DWORD) : HResult; stdcall; |
function SetDirectSound (pDirectSound: IDirectSound; |
pDirectSoundBuffer: IDirectSoundBuffer) : HResult; stdcall; |
function GetFormat (pWaveFormatEx: PWaveFormatEx; |
var pdwWaveFormatExSize: DWORD; |
out pdwBufferSize: DWORD) : HResult; stdcall; |
end; |
IDirectMusicThru = interface(IUnknown) |
['{CED153E7-3606-11D2-B9F9-0000F875AC12}'] |
// IDirectMusicThru |
/// |
function ThruChannel(dwSourceChannelGroup: DWORD; |
dwSourceChannel: DWORD; |
dwDestinationChannelGroup: DWORD; |
['{ced153e7-3606-11d2-b9f9-0000f875ac12}'] |
function ThruChannel (dwSourceChannelGroup, |
dwSourceChannel, |
dwDestinationChannelGroup, |
dwDestinationChannel: DWORD; |
pDestinationPort: IDirectMusicPort) : HResult; stdcall; |
end; |
IReferenceClock = interface(IUnknown) |
['{56A86897-0AD4-11CE-B03A-0020AF0BA770}'] |
// IReferenceClock |
// |
['{56a86897-0ad4-11ce-b03a-0020af0ba770}'] |
(* get the time now *) |
function GetTime (out pTime: TReference_Time) : HResult; stdcall; |
// get the time now |
function GetTime(var pTime: TREFERENCE_TIME) : HResult; stdcall; |
(* ask for an async notification that a time has elapsed *) |
function AdviseTime (const baseTime, (* base time *) |
streamTime: TReference_Time; (* stream offset time *) |
hEvent: THANDLE; (* advise via this event *) |
var pdwAdviseCookie: DWORD) : HResult; stdcall; (* where your cookie goes *) |
// ask for an async notification that a time has elapsed |
function AdviseTime(baseTime: TREFERENCE_TIME; // base time |
streamTime: TREFERENCE_TIME; // stream offset time |
hEvent: THandle; // advise via this event |
var pdwAdviseCookie: DWORD) : HResult; stdcall; // where your cookie goes |
(* ask for an async periodic notification that a time has elapsed *) |
function AdvisePeriodic (const startTime, (* starting at this time *) |
periodTime: TReference_Time; (* time between notifications *) |
hSemaphore: THANDLE; (* advise via a semaphore *) |
var pdwAdviseCookie: DWORD) : HResult; stdcall; (* where your cookie goes *) |
// ask for an async periodic notification that a time has elapsed |
function AdvisePeriodic(startTime: REFERENCE_TIME; // starting at this time |
periodTime: REFERENCE_TIME; // time between notifications |
hSemaphore: THandle; // advise via a semaphore |
var pdwAdviseCookie: DWORD) : HResult; stdcall; // where your cookie goes |
// cancel a request for notification |
(* cancel a request for notification *) |
function Unadvise(dwAdviseCookie: DWORD) : HResult; stdcall; |
end; |
// DelphiÌ«iãAé¾ðÚ®³¹½àÌBinterfaceAclass^Ìforwardé¾Í¯¶typejbgàÅÄé¾³êÈÄÍÈçÈ¢I |
//const |
// Format of DirectMusic events in a buffer |
// |
// A buffer contains 1 or more events, each with the following header. |
// Immediately following the header is the event data. The header+data |
// size is rounded to the nearest quadword (8 bytes). |
/// |
type |
IID_IDirectMusic = IDirectMusic; |
IID_IDirectMusicBuffer = IDirectMusicBuffer; |
IID_IDirectMusicPort = IDirectMusicPort; |
IID_IDirectMusicThru = IDirectMusicThru; |
IID_IDirectMusicPortDownload = IDirectMusicPortDownload; |
IID_IDirectMusicDownload = IDirectMusicDownload; |
IID_IDirectMusicCollection = IDirectMusicCollection; |
IID_IDirectMusicInstrument = IDirectMusicInstrument; |
IID_IDirectMusicDownloadedInstrument = IDirectMusicDownloadedInstrument; |
IID_IReferenceClock = IReferenceClock; |
//DMUS_EVENT_STRUCTURED = $00000001; // Unstructured data (SysEx, etc.) |
// The number of bytes to allocate for an event with 'cb' data bytes. |
/// |
//function QWORD_ALIGN(x: Cardinal) : Cardinal; |
//function DMUS_EVENT_SIZE(cb: Cardinal) : Cardinal; |
// Standard values for voice priorities. Numerically higher priorities are higher in priority. |
// These priorities are used to set the voice priority for all voices on a channel. They are |
// used in the dwPriority parameter of IDirectMusicPort::GetPriority and returned in the |
// lpwPriority parameter of pdwPriority. |
// |
// These priorities are shared with DirectSound. |
/// |
const |
DAUD_CRITICAL_VOICE_PRIORITY = $F0000000; |
DAUD_HIGH_VOICE_PRIORITY = $C0000000; |
DAUD_STANDARD_VOICE_PRIORITY = $80000000; |
DAUD_LOW_VOICE_PRIORITY = $40000000; |
DAUD_PERSIST_VOICE_PRIORITY = $10000000; |
CLSID_DirectMusic: TGUID = '{636b9f10-0c7d-11d1-95b2-0020afdc7421}'; |
// These are the default priorities assigned if not overridden. By default priorities are |
// equal across channel groups (e.g. channel 5 on channel group 1 has the same priority as |
// channel 5 on channel group 2). |
// |
// In accordance with DLS level 1, channel 10 has the highest priority, followed by 1 through 16 |
// except for 10. |
/// |
DAUD_CHAN1_VOICE_PRIORITY_OFFSET = $0000000E; |
DAUD_CHAN2_VOICE_PRIORITY_OFFSET = $0000000D; |
DAUD_CHAN3_VOICE_PRIORITY_OFFSET = $0000000C; |
DAUD_CHAN4_VOICE_PRIORITY_OFFSET = $0000000B; |
DAUD_CHAN5_VOICE_PRIORITY_OFFSET = $0000000A; |
DAUD_CHAN6_VOICE_PRIORITY_OFFSET = $00000009; |
DAUD_CHAN7_VOICE_PRIORITY_OFFSET = $00000008; |
DAUD_CHAN8_VOICE_PRIORITY_OFFSET = $00000007; |
DAUD_CHAN9_VOICE_PRIORITY_OFFSET = $00000006; |
DAUD_CHAN10_VOICE_PRIORITY_OFFSET = $0000000F; |
DAUD_CHAN11_VOICE_PRIORITY_OFFSET = $00000005; |
DAUD_CHAN12_VOICE_PRIORITY_OFFSET = $00000004; |
DAUD_CHAN13_VOICE_PRIORITY_OFFSET = $00000003; |
DAUD_CHAN14_VOICE_PRIORITY_OFFSET = $00000002; |
DAUD_CHAN15_VOICE_PRIORITY_OFFSET = $00000001; |
DAUD_CHAN16_VOICE_PRIORITY_OFFSET = $00000000; |
DAUD_CHAN1_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN1_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN2_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN2_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN3_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN3_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN4_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN4_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN5_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN5_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN6_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN6_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN7_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN7_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN8_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN8_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN9_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN9_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN10_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN10_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN11_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN11_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN12_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN12_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN13_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN13_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN14_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN14_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN15_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN15_VOICE_PRIORITY_OFFSET); |
DAUD_CHAN16_DEF_VOICE_PRIORITY = (DAUD_STANDARD_VOICE_PRIORITY or DAUD_CHAN16_VOICE_PRIORITY_OFFSET); |
//GUID definition |
IID_IReferenceClock : TGUID = '{56A86897-0AD4-11CE-B03A-0020AF0BA770}'; |
CLSID_DirectMusic : TGUID = '{636B9F10-0C7D-11D1-95B2-0020AFDC7421}'; |
CLSID_DirectMusicCollection : TGUID = '{480FF4B0-28B2-11D1-BEF7-00C04FBF8FEF}'; |
CLSID_DirectMusicCollection: TGUID = '{480ff4b0-28b2-11d1-bef7-00c04fbf8fef}'; |
CLSID_DirectMusicSynth : TGUID = '{58C2B4D0-46E7-11D1-89AC-00A0C9054129}'; |
IID_IDirectMusic : TGUID = '{6536115A-7B2D-11D2-BA18-0000F875AC12}'; |
IID_IDirectMusicBuffer : TGUID = '{D2AC2878-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicPort : TGUID = '{08F2D8C9-37C2-11D2-B9F9-0000F875AC12}'; |
IID_IDirectMusicThru : TGUID = '{CED153E7-3606-11D2-B9F9-0000F875AC12}'; |
IID_IDirectMusicPortDownload: TGUID = '{D2AC287A-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicDownload : TGUID = '{D2AC287B-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicCollection : TGUID = '{D2AC287C-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicInstrument : TGUID = '{D2AC287D-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicDownloadedInstrument: TGUID = '{D2AC287E-B39B-11D1-8704-00600893B1BD}'; |
(* Property Query GUID_DMUS_PROP_GM_Hardware - Local GM set, no need to download |
* Property Query GUID_DMUS_PROP_GS_Hardware - Local GS set, no need to download |
* Property Query GUID_DMUS_PROP_XG_Hardware - Local XG set, no need to download |
* Property Query GUID_DMUS_PROP_DLS1 - Support DLS level 1 |
* Property Query GUID_DMUS_PROP_XG_Capable - Support minimum requirements of XG |
* Property Query GUID_DMUS_PROP_GS_Capable - Support minimum requirements of GS |
* Property Query GUID_DMUS_PROP_SynthSink_DSOUND - Synthsink talks to DSound |
* Property Query GUID_DMUS_PROP_SynthSink_WAVE - Synthsink talks to Wave device |
* |
* Item 0: Supported |
* Returns a DWORD which is non-zero if the feature is supported |
*) |
GUID_DMUS_PROP_GM_Hardware: TGUID = '{178f2f24-c364-11d1-a760-0000f875ac12}'; |
GUID_DMUS_PROP_GS_Hardware: TGUID = '{178f2f25-c364-11d1-a760-0000f875ac12}'; |
GUID_DMUS_PROP_XG_Hardware: TGUID = '{178f2f26-c364-11d1-a760-0000f875ac12}'; |
GUID_DMUS_PROP_XG_Capable: TGUID = '{6496aba1-61b0-11d2-afa6-00aa0024d8b6}'; |
GUID_DMUS_PROP_GS_Capable: TGUID = '{6496aba2-61b0-11d2-afa6-00aa0024d8b6}'; |
GUID_DMUS_PROP_DLS1: TGUID = '{178f2f27-c364-11d1-a760-0000f875ac12}'; |
GUID_DMUS_PROP_DLS2: TGUID = '{f14599e5-4689-11d2-afa6-00aa0024d8b6}'; |
GUID_DMUS_PROP_INSTRUMENT2: TGUID = '{865fd372-9f67-11d2-872a-00600893b1bd}'; |
GUID_DMUS_PROP_SynthSink_DSOUND: TGUID = '{0aa97844-c877-11d1-870c-00600893b1bd}'; |
GUID_DMUS_PROP_SynthSink_WAVE: TGUID = '{0aa97845-c877-11d1-870c-00600893b1bd}'; |
GUID_DMUS_PROP_SampleMemorySize: TGUID = '{178f2f28-c364-11d1-a760-0000f875ac12}'; |
GUID_DMUS_PROP_SamplePlaybackRate: TGUID = '{2a91f713-a4bf-11d2-bbdf-00600833dbd8}'; |
// Alternate interface ID for IID_IDirectMusic, available in DX7 release and after. |
IID_IDirectMusic2 : TGUID = '{6FC2CAE1-BC78-11D2-AFA6-00AA0024D8B6}'; |
(* Property Get/Set GUID_DMUS_PROP_WriteLatency |
* |
* Item 0: Synth buffer write latency, in milliseconds |
* Get/Set SynthSink latency, the average time after the play head that the next buffer gets written. |
*) |
GUID_DMUS_PROP_WriteLatency: TGUID = '{268a0fa0-60f2-11d2-afa6-00aa0024d8b6}'; |
// Property Query GUID_DMUS_PROP_GM_Hardware - Local GM set, no need to download |
// Property Query GUID_DMUS_PROP_GS_Hardware - Local GS set, no need to download |
// Property Query GUID_DMUS_PROP_XG_Hardware - Local XG set, no need to download |
// Property Query GUID_DMUS_PROP_DLS1 - Support DLS level 1 |
// Property Query GUID_DMUS_PROP_XG_Capable - Support minimum requirements of XG |
// Property Query GUID_DMUS_PROP_GS_Capable - Support minimum requirements of GS |
// Property Query GUID_DMUS_PROP_SynthSink_DSOUND - Synthsink talks to DSound |
// Property Query GUID_DMUS_PROP_SynthSink_WAVE - Synthsink talks to Wave device |
// |
// Item 0: Supported |
// Returns a DWORD which is non-zero if the feature is supported |
/// |
GUID_DMUS_PROP_GM_Hardware : TGUID = '{178F2F24-C364-11D1-A760-0000F875AC12}'; |
GUID_DMUS_PROP_GS_Hardware : TGUID = '{178F2F25-C364-11D1-A760-0000F875AC12}'; |
GUID_DMUS_PROP_XG_Hardware : TGUID = '{178F2F26-C364-11D1-A760-0000F875AC12}'; |
GUID_DMUS_PROP_XG_Capable : TGUID = '{6496ABA1-61B0-11D2-AFA6-00AA0024D8B6}'; |
GUID_DMUS_PROP_GS_Capable : TGUID = '{6496ABA2-61B0-11D2-AFA6-00AA0024D8B6}'; |
GUID_DMUS_PROP_DLS1 : TGUID = '{178F2F27-C364-11D1-A760-0000F875AC12}'; |
GUID_DMUS_PROP_SynthSink_DSOUND: TGUID = '{0AA97844-C877-11D1-870C-00600893B1BD}'; |
GUID_DMUS_PROP_SynthSink_WAVE : TGUID = '{0AA97845-C877-11D1-870C-00600893B1BD}'; |
(* Property Get/Set GUID_DMUS_PROP_WritePeriod |
* |
* Item 0: Synth buffer write period, in milliseconds |
* Get/Set SynthSink buffer write period, time span between successive writes. |
*) |
GUID_DMUS_PROP_WritePeriod: TGUID = '{268a0fa1-60f2-11d2-afa6-00aa0024d8b6}'; |
// Property Get/Set GUID_DMUS_PROP_WriteLatency |
// |
// Item 0: Synth buffer write latency, in milliseconds |
// Get/Set SynthSink latency, the average time after the play head that the next buffer gets written. |
/// |
GUID_DMUS_PROP_WriteLatency : TGUID = '{268A0FA0-60F2-11D2-AFA6-00AA0024D8B6}'; |
(* Property Get GUID_DMUS_PROP_MemorySize |
* |
* Item 0: Memory size |
* Returns a DWORD containing the total number of bytes of sample RAM |
*) |
GUID_DMUS_PROP_MemorySize: TGUID = '{178f2f28-c364-11d1-a760-0000f875ac12}'; |
// Property Get/Set GUID_DMUS_PROP_WritePeriod |
// |
// Item 0: Synth buffer write period, in milliseconds |
// Get/Set SynthSink buffer write period, time span between successive writes. |
/// |
GUID_DMUS_PROP_WritePeriod : TGUID = '{268A0FA1-60F2-11D2-AFA6-00AA0024D8B6}'; |
(* Property Set GUID_DMUS_PROP_WavesReverb |
* |
* Item 0: DMUS_WAVES_REVERB structure |
* Sets reverb parameters |
*) |
GUID_DMUS_PROP_WavesReverb: TGUID = '{04cb5622-32e5-11d2-afa6-00aa0024d8b6}'; |
// Property Get GUID_DMUS_PROP_MemorySize |
// |
// Item 0: Memory size |
// Returns a DWORD containing the total number of bytes of sample RAM |
/// |
GUID_DMUS_PROP_MemorySize : TGUID = '{178F2F28-C364-11D1-A760-0000F875AC12}'; |
(* Property Set GUID_DMUS_PROP_Effects |
* |
* Item 0: DWORD with effects flags. |
* Get/Set effects bits, same as dwEffectFlags in DMUS_PORTPARAMS and DMUS_PORTCAPS: |
* DMUS_EFFECT_NONE |
* DMUS_EFFECT_REVERB |
* DMUS_EFFECT_CHORUS |
*) |
GUID_DMUS_PROP_Effects: TGUID = '{cda8d611-684a-11d2-871e-00600893b1bd}'; |
// Property Set GUID_DMUS_PROP_WavesReverb |
// |
// Item 0: DMUS_WAVES_REVERB structure |
// Sets reverb parameters |
/// |
GUID_DMUS_PROP_WavesReverb : TGUID = '{04CB5622-32E5-11D2-AFA6-00AA0024D8B6}'; |
(* Property Set GUID_DMUS_PROP_LegacyCaps |
* |
* Item 0: The MIDINCAPS or MIDIOUTCAPS which describes the port's underlying WinMM device. This property is only supported |
* by ports which wrap WinMM devices. |
*) |
// Property Set GUID_DMUS_PROP_Effects |
// |
// Item 0: DWORD with effects flags. |
// Get/Set effects bits, same as dwEffectFlags in DMUS_PORTPARAMS and DMUS_PORTCAPS: |
// DMUS_EFFECT_NONE |
// DMUS_EFFECT_REVERB |
// DMUS_EFFECT_CHORUS |
/// |
GUID_DMUS_PROP_Effects : TGUID = '{CDA8D611-684A-11D2-871E-00600893B1BD}'; |
GUID_DMUS_PROP_LegacyCaps: TGUID = '{cfa7cdc2-00a1-11d2-aad5-0000f875ac12}'; |
// Property Set GUID_DMUS_PROP_LegacyCaps |
// |
// Item 0: The MIDINCAPS or MIDIOUTCAPS which describes the port's underlying WinMM device. This property is only supported |
// by ports which wrap WinMM devices. |
/// |
(* Property Set GUID_DMUS_Volume |
* |
* Item 0: A long which contains an offset, in 1/100 dB, to be added to the final volume |
* |
*) |
GUID_DMUS_PROP_Volume: TGUID = '{fedfae25-e46e-11d1-aace-0000f875ac12}'; |
GUID_DMUS_PROP_LegacyCaps : TGUID = '{CFA7CDC2-00A1-11D2-AAD5-0000F875AC12}'; |
(* Min and Max values for setting volume with GUID_DMUS_PROP_Volume *) |
// Property Set GUID_DMUS_Volume |
// |
// Item 0: A long which contains an offset, in 1/100 dB, to be added to the final volume |
// |
/// |
GUID_DMUS_PROP_Volume : TGUID = '{FEDFAE25-E46E-11D1-AACE-0000F875AC12}'; |
DMUS_VOLUME_MAX = 2000; (* +20 dB *) |
DMUS_VOLUME_MIN = -20000; (* -200 dB *) |
(************************************************************************ |
* * |
* dmusici.h -- This module contains the API for the * |
* DirectMusic performance layer * |
* * |
* Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
* * |
************************************************************************) |
//*********************************************************************** |
// * |
// dmusici.h -- This module contains the API for the * |
// DirectMusic performance layer * |
// * |
// Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
// * |
//********************************************************************** |
type |
TRANSITION_TYPE = Word; |
MUSIC_TIME = Longint; |
TTransition_Type = WORD; |
PMusic_Time = ^TMusic_Time; |
TMusic_Time = LongInt; |
const |
DMUS_PPQ = 768; // parts per quarter note |
DMUS_PPQ = 768; (* parts per quarter note *) |
const |
DMUS_MAX_NAME = 64; // Maximum object name length. |
DMUS_MAX_CATEGORY = 64; // Maximum object category name length. |
DMUS_MAX_FILENAME = MAX_PATH; |
type |
TDMus_CommandT_Types = ( |
DMUS_COMMANDT_GROOVE, |
DMUS_COMMANDT_FILL , |
DMUS_COMMANDT_INTRO , |
DMUS_COMMANDT_BREAK , |
DMUS_COMMANDT_END , |
DMUS_COMMANDT_ENDANDINTRO |
); |
TDMus_ShapeT_Types = ( |
DMUS_SHAPET_FALLING , |
DMUS_SHAPET_LEVEL , |
DMUS_SHAPET_LOOPABLE, |
DMUS_SHAPET_LOUD , |
DMUS_SHAPET_QUIET , |
DMUS_SHAPET_PEAKING , |
DMUS_SHAPET_RANDOM , |
DMUS_SHAPET_RISING , |
DMUS_SHAPET_SONG |
); |
type |
TDMus_ComposeF_Flags = DWORD; |
const |
DMUS_COMMANDT_GROOVE = 0; |
DMUS_COMMANDT_FILL = 1; |
DMUS_COMMANDT_INTRO = 2; |
DMUS_COMMANDT_BREAK = 3; |
DMUS_COMMANDT_END = 4; |
DMUS_COMMANDT_ENDANDINTRO = 5; |
{typedef enum enumDMUS_COMMANDT_TYPES |
{ |
DMUS_COMMANDT_GROOVE = 0, |
DMUS_COMMANDT_FILL = 1, |
DMUS_COMMANDT_INTRO = 2, |
DMUS_COMMANDT_BREAK = 3, |
DMUS_COMMANDT_END = 4, |
DMUS_COMMANDT_ENDANDINTRO = 5 |
DMUS_COMMANDT_TYPES;} |
DMUS_SHAPET_FALLING = 0; |
DMUS_SHAPET_LEVEL = 1; |
DMUS_SHAPET_LOOPABLE = 2; |
DMUS_SHAPET_LOUD = 3; |
DMUS_SHAPET_QUIET = 4; |
DMUS_SHAPET_PEAKING = 5; |
DMUS_SHAPET_RANDOM = 6; |
DMUS_SHAPET_RISING = 7; |
DMUS_SHAPET_SONG = 8; |
{typedef enum enumDMUS_SHAPET_TYPES |
{ |
DMUS_SHAPET_FALLING = 0, |
DMUS_SHAPET_LEVEL = 1, |
DMUS_SHAPET_LOOPABLE = 2, |
DMUS_SHAPET_LOUD = 3, |
DMUS_SHAPET_QUIET = 4, |
DMUS_SHAPET_PEAKING = 5, |
DMUS_SHAPET_RANDOM = 6, |
DMUS_SHAPET_RISING = 7, |
DMUS_SHAPET_SONG = 8 |
DMUS_SHAPET_TYPES;} |
DMUS_COMPOSEF_NONE = 0; |
DMUS_COMPOSEF_ALIGN = $1; |
DMUS_COMPOSEF_OVERLAP = $2; |
13829,643 → 19575,198 |
DMUS_COMPOSEF_AFTERPREPARETIME = $40; |
DMUS_COMPOSEF_MODULATE = $1000; |
DMUS_COMPOSEF_LONG = $2000; |
{typedef enum enumDMUS_COMPOSEF_FLAGS |
{ |
DMUS_COMPOSEF_NONE = 0, |
DMUS_COMPOSEF_ALIGN = 0x1, |
DMUS_COMPOSEF_OVERLAP = 0x2, |
DMUS_COMPOSEF_IMMEDIATE = 0x4, |
DMUS_COMPOSEF_GRID = 0x8, |
DMUS_COMPOSEF_BEAT = 0x10, |
DMUS_COMPOSEF_MEASURE = 0x20, |
DMUS_COMPOSEF_AFTERPREPARETIME = 0x40, |
DMUS_COMPOSEF_MODULATE = 0x1000, |
DMUS_COMPOSEF_LONG = 0x2000 |
DMUS_COMPOSEF_FLAGS;} |
const |
// DMUS_PMSGF_FLAGS fill the DMUS_PMSG's dwFlags member |
DMUS_PMSGF_REFTIME = 1; // if rtTime is valid |
DMUS_PMSGF_MUSICTIME = 2; // if mtTime is valid |
DMUS_PMSGF_TOOL_IMMEDIATE = 4; // if PMSG should be processed immediately |
DMUS_PMSGF_TOOL_QUEUE = 8; // if PMSG should be processed a little early, at Queue time |
DMUS_PMSGF_TOOL_ATTIME = 16; // if PMSG should be processed at the time stamp |
DMUS_PMSGF_TOOL_FLUSH = 32; // if PMSG is being flushed |
// The values of DMUS_TIME_RESOLVE_FLAGS may also be used inside the |
// DMUS_PMSG's dwFlags member. |
type |
TDMUS_PMSGF_FLAGS = Cardinal; |
DMUS_PMSGF_FLAGS = TDMUS_PMSGF_FLAGS; |
{typedef enum enumDMUS_PMSGF_FLAGS |
{ |
DMUS_PMSGF_REFTIME = 1, /* if rtTime is valid |
DMUS_PMSGF_MUSICTIME = 2, /* if mtTime is valid |
DMUS_PMSGF_TOOL_IMMEDIATE = 4, /* if PMSG should be processed immediately |
DMUS_PMSGF_TOOL_QUEUE = 8, /* if PMSG should be processed a little early, at Queue time |
DMUS_PMSGF_TOOL_ATTIME = 16, /* if PMSG should be processed at the time stamp |
DMUS_PMSGF_TOOL_FLUSH = 32 /* if PMSG is being flushed |
/* The values of DMUS_TIME_RESOLVE_FLAGS may also be used inside the |
/* DMUS_PMSG's dwFlags member. |
DMUS_PMSGF_FLAGS;} |
(* DMUS_PMsgF_FLAGS fill the TDMus_PMsg's dwFlags member *) |
TDMus_PMsgF_Flags = DWORD; |
const |
// DMUS_PMSGT_TYPES fill the DMUS_PMSG's dwType member |
DMUS_PMSGT_MIDI = 0; // MIDI short message |
DMUS_PMSGT_NOTE = 1; // Interactive Music Note |
DMUS_PMSGT_SYSEX = 2; // MIDI long message (system exclusive message) |
DMUS_PMSGT_NOTIFICATION = 3; // Notification message |
DMUS_PMSGT_TEMPO = 4; // Tempo message |
DMUS_PMSGT_CURVE = 5; // Control change / pitch bend, etc. curve |
DMUS_PMSGT_TIMESIG = 6; // Time signature |
DMUS_PMSGT_PATCH = 7; // Patch changes |
DMUS_PMSGT_TRANSPOSE = 8; // Transposition messages |
DMUS_PMSGT_CHANNEL_PRIORITY = 9; // Channel priority |
DMUS_PMSGT_STOP = 10; // Stop message |
DMUS_PMSGT_DIRTY = 11; // Tells Tools that cache GetParam() info to refresh |
DMUS_PMSGT_USER = 255; // User message |
DMUS_PMsgF_REFTIME = 1; (* if rtTime is valid *) |
DMUS_PMsgF_MUSICTIME = 2; (* if mtTime is valid *) |
DMUS_PMsgF_TOOL_IMMEDIATE = 4; (* if PMSG should be processed immediately *) |
DMUS_PMsgF_TOOL_QUEUE = 8; (* if PMSG should be processed a little early, at Queue time *) |
DMUS_PMsgF_TOOL_ATTIME = 16; (* if PMSG should be processed at the time stamp *) |
DMUS_PMsgF_TOOL_FLUSH = 32; (* if PMSG is being flushed *) |
(* The values of DMUS_TIME_RESOLVE_FLAGS may also be used inside the *) |
(* TDMus_PMsg's dwFlags member. *) |
type |
TDMUS_PMSGT_TYPES = Cardinal; |
DMUS_PMSGT_TYPES = TDMUS_PMSGT_TYPES; |
{typedef enum enumDMUS_PMSGT_TYPES |
{ |
DMUS_PMSGT_MIDI = 0, /* MIDI short message |
DMUS_PMSGT_NOTE = 1, /* Interactive Music Note |
DMUS_PMSGT_SYSEX = 2, /* MIDI long message (system exclusive message) |
DMUS_PMSGT_NOTIFICATION = 3, /* Notification message |
DMUS_PMSGT_TEMPO = 4, /* Tempo message |
DMUS_PMSGT_CURVE = 5, /* Control change / pitch bend, etc. curve |
DMUS_PMSGT_TIMESIG = 6, /* Time signature |
DMUS_PMSGT_PATCH = 7, /* Patch changes |
DMUS_PMSGT_TRANSPOSE = 8, /* Transposition messages |
DMUS_PMSGT_CHANNEL_PRIORITY = 9, /* Channel priority |
DMUS_PMSGT_STOP = 10, /* Stop message |
DMUS_PMSGT_DIRTY = 11, /* Tells Tools that cache GetParam() info to refresh |
DMUS_PMSGT_USER = 255 /* User message |
DMUS_PMSGT_TYPES;} |
(* DMUS_PMsgT_TYPES fill the TDMus_PMsg's dwType member *) |
TDMus_PMsgT_Types = ( |
DMUS_PMsgT_MIDI , (* MIDI short message *) |
DMUS_PMsgT_NOTE , (* Interactive Music Note *) |
DMUS_PMsgT_SYSEX , (* MIDI long message (system exclusive message) *) |
DMUS_PMsgT_NOTIFICATION , (* Notification message *) |
DMUS_PMsgT_TEMPO , (* Tempo message *) |
DMUS_PMsgT_CURVE , (* Control change / pitch bend, etc. curve *) |
DMUS_PMsgT_TIMESIG , (* Time signature *) |
DMUS_PMsgT_PATCH , (* Patch changes *) |
DMUS_PMsgT_TRANSPOSE , (* Transposition messages *) |
DMUS_PMsgT_CHANNEL_PRIORITY, (* Channel priority *) |
DMUS_PMsgT_STOP , (* Stop message *) |
DMUS_PMsgT_DIRTY (* Tells Tools that cache GetParam() info to refresh *) |
); |
const |
// DMUS_SEGF_FLAGS correspond to IDirectMusicPerformance::PlaySegment, and other API |
DMUS_SEGF_REFTIME = 64; // time parameter is in reference time |
DMUS_SEGF_SECONDARY = 128; // secondary segment |
DMUS_SEGF_QUEUE = 256; // queue at the end of the primary segment queue (primary only) |
DMUS_SEGF_CONTROL = 512; // play as a control track (secondary segments only) |
DMUS_SEGF_AFTERPREPARETIME = 1 shl 10; // play after the prepare time (See IDirectMusicPerformance::GetPrepareTime) |
DMUS_SEGF_GRID = 1 shl 11; // play on grid boundary |
DMUS_SEGF_BEAT = 1 shl 12; // play on beat boundary |
DMUS_SEGF_MEASURE = 1 shl 13; // play on measure boundary |
DMUS_SEGF_DEFAULT = 1 shl 14; // use segment's default boundary |
DMUS_SEGF_NOINVALIDATE = 1 shl 15; // play without invalidating the currently playing segment(s) |
DMUS_PMsgT_USER = TDMus_PMsgT_Types(255); (* User message *) |
type |
TDMUS_SEGF_FLAGS = Cardinal; |
DMUS_SEGF_FLAGS = TDMUS_SEGF_FLAGS; |
{typedef enum enumDMUS_SEGF_FLAGS |
{ |
DMUS_SEGF_REFTIME = 64, /* time parameter is in reference time |
DMUS_SEGF_SECONDARY = 128, /* secondary segment |
DMUS_SEGF_QUEUE = 256, /* queue at the end of the primary segment queue (primary only) |
DMUS_SEGF_CONTROL = 512, /* play as a control track (secondary segments only) |
DMUS_SEGF_AFTERPREPARETIME = 1<<10, /* play after the prepare time (See IDirectMusicPerformance::GetPrepareTime) |
DMUS_SEGF_GRID = 1<<11, /* play on grid boundary |
DMUS_SEGF_BEAT = 1<<12, /* play on beat boundary |
DMUS_SEGF_MEASURE = 1<<13, /* play on measure boundary |
DMUS_SEGF_DEFAULT = 1<<14, /* use segment's default boundary |
DMUS_SEGF_NOINVALIDATE = 1<<15 /* play without invalidating the currently playing segment(s) |
DMUS_SEGF_FLAGS;} |
(* DMUS_SEGF_FLAGS correspond to IDirectMusicPerformance::PlaySegment, and other API *) |
TDMus_SegF_Flags = DWORD; |
const |
// DMUS_TIME_RESOLVE_FLAGS correspond to IDirectMusicPerformance::GetResolvedTime, and can |
// also be used interchangeably with the corresponding DMUS_SEGF_FLAGS, since their values |
// are intentionally the same |
DMUS_TIME_RESOLVE_AFTERPREPARETIME = 1 shl 10; // resolve to a time after the prepare time |
DMUS_TIME_RESOLVE_GRID = 1 shl 11; // resolve to a time on a grid boundary |
DMUS_TIME_RESOLVE_BEAT = 1 shl 12; // resolve to a time on a beat boundary |
DMUS_TIME_RESOLVE_MEASURE = 1 shl 13; // resolve to a time on a measure boundary |
DMUS_SEGF_REFTIME = 64; (* time parameter is in reference time *) |
DMUS_SEGF_SECONDARY = 128; (* secondary segment *) |
DMUS_SEGF_QUEUE = 256; (* queue at the end of the primary segment queue (primary only) *) |
DMUS_SEGF_CONTROL = 512; (* play as a control track (secondary segments only) *) |
DMUS_SEGF_AFTERPREPARETIME = 1 shl 10; (* play after the prepare time (See IDirectMusicPerformance::GetPrepareTime) *) |
DMUS_SEGF_GRID = 1 shl 11; (* play on grid boundary *) |
DMUS_SEGF_BEAT = 1 shl 12; (* play on beat boundary *) |
DMUS_SEGF_MEASURE = 1 shl 13; (* play on measure boundary *) |
DMUS_SEGF_DEFAULT = 1 shl 14; (* use segment's default boundary *) |
DMUS_SEGF_NOINVALIDATE = 1 shl 15; (* play without invalidating the currently playing segment(s) *) |
(* DMUS_TIME_RESOLVE_FLAGS correspond to IDirectMusicPerformance::GetResolvedTime, and can *) |
(* also be used interchangeably with the corresponding DMUS_SEGF_FLAGS, since their values *) |
(* are intentionally the same *) |
type |
TDMUS_TIME_RESOLVE_FLAGS = Cardinal; |
DMUS_TIME_RESOLVE_FLAGS = TDMUS_TIME_RESOLVE_FLAGS; |
{typedef enum enumDMUS_TIME_RESOLVE_FLAGS |
{ |
DMUS_TIME_RESOLVE_AFTERPREPARETIME = 1<<10, /* resolve to a time after the prepare time |
DMUS_TIME_RESOLVE_GRID = 1<<11, /* resolve to a time on a grid boundary |
DMUS_TIME_RESOLVE_BEAT = 1<<12, /* resolve to a time on a beat boundary |
DMUS_TIME_RESOLVE_MEASURE = 1<<13 /* resolve to a time on a measure boundary |
DMUS_TIME_RESOLVE_FLAGS;} |
TDMus_Time_Resolve_Flags = DWORD; |
const |
// The following flags are sent in the IDirectMusicTrack::Play() method |
// inside the dwFlags parameter |
DMUS_TRACKF_SEEK = 1; // set on a seek |
DMUS_TRACKF_LOOP = 2; // set on a loop (repeat) |
DMUS_TRACKF_START = 4; // set on first call to Play |
DMUS_TRACKF_FLUSH = 8; // set when this call is in response to a flush on the perfomance |
DMUS_TRACKF_DIRTY = 16; // set when the track should consider any cached values from a previous call to GetParam to be invalidated |
DMUS_TIME_RESOLVE_AFTERPREPARETIME = 1 shl 10; (* resolve to a time after the prepare time *) |
DMUS_TIME_RESOLVE_GRID = 1 shl 11; (* resolve to a time on a grid boundary *) |
DMUS_TIME_RESOLVE_BEAT = 1 shl 12; (* resolve to a time on a beat boundary *) |
DMUS_TIME_RESOLVE_MEASURE = 1 shl 13; (* resolve to a time on a measure boundary *) |
(* The following flags are sent in the IDirectMusicTrack::Play() method *) |
(* inside the dwFlags parameter *) |
type |
TDMUS_TRACKF_FLAGS = Cardinal; |
DMUS_TRACKF_FLAGS = TDMUS_TRACKF_FLAGS; |
TDMus_TrackF_Flags = DWORD; |
const |
DMUS_TRACKF_SEEK = 1; (* set on a seek *) |
DMUS_TRACKF_LOOP = 2; (* set on a loop (repeat) *) |
DMUS_TRACKF_START = 4; (* set on first call to Play *) |
DMUS_TRACKF_FLUSH = 8; (* set when this call is in response to a flush on the perfomance *) |
DMUS_TRACKF_DIRTY = 16; (* set when the track should consider any cached values from a previous call to GetParam to be invalidated *) |
{typedef enum enumDMUS_TRACKF_FLAGS |
{ |
DMUS_TRACKF_SEEK = 1, /* set on a seek |
DMUS_TRACKF_LOOP = 2, /* set on a loop (repeat) |
DMUS_TRACKF_START = 4, /* set on first call to Play |
DMUS_TRACKF_FLUSH = 8, /* set when this call is in response to a flush on the perfomance |
DMUS_TRACKF_DIRTY = 16, /* set when the track should consider any cached values from a previous call to GetParam to be invalidated |
DMUS_TRACKF_FLAGS;} |
const |
DMUS_MAXSUBCHORD = 8; |
type |
TDMUS_SUBCHORD = record |
dwChordPattern : DWORD; // Notes in the subchord |
dwScalePattern : DWORD; // Notes in the scale |
dwInversionPoints : DWORD; // Where inversions can occur |
dwLevels : DWORD; // Which levels are supported by this subchord |
bChordRoot : Byte; // Root of the subchord |
bScaleRoot : Byte; // Root of the scale |
end; |
DMUS_SUBCHORD = TDMUS_SUBCHORD; |
TDMUS_CHORD_KEY = record |
wszName : array[0..15] of WideChar; // Name of the chord |
wMeasure : Word; // Measure this falls on |
bBeat : Byte; // Beat this falls on |
bSubChordCount : Byte; // Number of chords in the list of subchords |
SubChordList : array[0..DMUS_MAXSUBCHORD - 1] of TDMUS_SUBCHORD;// List of sub chords |
dwScale : DWORD; // Scale underlying the entire chord |
bKey : Byte; // Key underlying the entire chord |
end; |
DMUS_CHORD_KEY = TDMUS_CHORD_KEY; |
const |
//typedef enum enumDMUS_NOTEF_FLAGS |
DMUS_NOTEF_NOTEON = 1; // Set if this is a MIDI Note On. Otherwise, it is MIDI Note Off |
type |
TDMUS_NOTEF_FLAGS = Cardinal; |
DMUS_NOTEF_FLAGS = TDMUS_NOTEF_FLAGS; |
// The DMUS_PLAYMODE_FLAGS are used to determine how to convert wMusicValue |
// into the appropriate bMidiValue. |
/// |
const |
//typedef enum enumDMUS_PLAYMODE_FLAGS |
DMUS_PLAYMODE_KEY_ROOT = 1; // Transpose on top of the key root. |
DMUS_PLAYMODE_CHORD_ROOT = 2; // Transpose on top of the chord root. |
DMUS_PLAYMODE_SCALE_INTERVALS = 4; // Use scale intervals from scale pattern. |
DMUS_PLAYMODE_CHORD_INTERVALS = 8; // Use chord intervals from chord pattern. |
DMUS_PLAYMODE_NONE = 16; // No mode. Indicates the parent part's mode should be used. |
type |
TDMUS_PLAYMODE_FLAGS = Cardinal; |
DMUS_PLAYMODE_FLAGS = TDMUS_PLAYMODE_FLAGS; |
// The following are playback modes that can be created by combining the DMUS_PLAYMODE_FLAGS |
// in various ways: |
/// |
// Fixed. wMusicValue holds final MIDI note value. This is used for drums, sound effects, and sequenced |
// notes that should not be transposed by the chord or scale. |
/// |
const |
DMUS_PLAYMODE_FIXED = 0; |
// In fixed to key, the musicvalue is again a fixed MIDI value, but it |
// is transposed on top of the key root. |
/// |
DMUS_PLAYMODE_FIXEDTOKEY = DMUS_PLAYMODE_KEY_ROOT; |
// In fixed to chord, the musicvalue is also a fixed MIDI value, but it |
// is transposed on top of the chord root. |
/// |
DMUS_PLAYMODE_FIXEDTOCHORD = DMUS_PLAYMODE_CHORD_ROOT; |
// In Pedalpoint, the key root is used and the notes only track the intervals in |
// the scale. The chord root and intervals are completely ignored. This is useful |
// for melodic lines that play relative to the key root. |
/// |
DMUS_PLAYMODE_PEDALPOINT = (DMUS_PLAYMODE_KEY_ROOT or DMUS_PLAYMODE_SCALE_INTERVALS); |
// In the Melodic mode, the chord root is used but the notes only track the intervals in |
// the scale. The key root and chord intervals are completely ignored. This is useful |
// for melodic lines that play relative to the chord root. |
/// |
DMUS_PLAYMODE_MELODIC = (DMUS_PLAYMODE_CHORD_ROOT or DMUS_PLAYMODE_SCALE_INTERVALS); |
// Normal chord mode is the prevalent playback mode. |
// The notes track the intervals in the chord, which is based on the chord root. |
// If there is a scale component to the MusicValue, the additional intervals |
// are pulled from the scale and added. |
// If the chord does not have an interval to match the chord component of |
// the MusicValue, the note is silent. |
/// |
DMUS_PLAYMODE_NORMALCHORD = (DMUS_PLAYMODE_CHORD_ROOT or DMUS_PLAYMODE_CHORD_INTERVALS); |
// If it is desirable to play a note that is above the top of the chord, the |
// always play mode (known as "purpleized" in a former life) finds a position |
// for the note by using intervals from the scale. Essentially, this mode is |
// a combination of the Normal and Melodic playback modes, where a failure |
// in Normal causes a second try in Melodic mode. |
/// |
DMUS_PLAYMODE_ALWAYSPLAY = (DMUS_PLAYMODE_MELODIC or DMUS_PLAYMODE_NORMALCHORD); |
// Legacy names for modes... |
DMUS_PLAYMODE_PURPLEIZED = DMUS_PLAYMODE_ALWAYSPLAY; |
DMUS_PLAYMODE_SCALE_ROOT = DMUS_PLAYMODE_KEY_ROOT; |
DMUS_PLAYMODE_FIXEDTOSCALE = DMUS_PLAYMODE_FIXEDTOKEY; |
const |
DMUS_TEMPO_MAX = 350; |
DMUS_TEMPO_MIN = 10; |
DMUS_MASTERTEMPO_MAX = 2.0; |
DMUS_MASTERTEMPO_MIN = 0.25; |
const |
DMUS_CURVE_RESET = 1; // Set if the curve needs to be reset. |
type |
TDMUS_CURVE_FLAGS = Cardinal; |
DMUS_CURVE_FLAGS = TDMUS_CURVE_FLAGS; |
{ |
DMUS_CURVE_RESET = 1, /* Set if the curve needs to be reset. |
DMUS_CURVE_FLAGS; } |
const |
//DMUS_CURVE_RESET = 1; |
// Curve shapes |
DMUS_CURVES_LINEAR = 0; |
DMUS_CURVES_INSTANT = 1; |
DMUS_CURVES_EXP = 2; |
DMUS_CURVES_LOG = 3; |
DMUS_CURVES_SINE = 4; |
// curve types |
DMUS_CURVET_PBCURVE = $03; |
DMUS_CURVET_CCCURVE = $04; |
DMUS_CURVET_MATCURVE = $05; |
DMUS_CURVET_PATCURVE = $06; |
// notification type values |
// The following correspond to GUID_NOTIFICATION_SEGMENT |
const |
DMUS_NOTIFICATION_SEGSTART = 0; |
DMUS_NOTIFICATION_SEGEND = 1; |
DMUS_NOTIFICATION_SEGALMOSTEND = 2; |
DMUS_NOTIFICATION_SEGLOOP = 3; |
DMUS_NOTIFICATION_SEGABORT = 4; |
// The following correspond to GUID_NOTIFICATION_PERFORMANCE |
DMUS_NOTIFICATION_MUSICSTARTED = 0; |
DMUS_NOTIFICATION_MUSICSTOPPED = 1; |
// The following corresponds to GUID_NOTIFICATION_MEASUREANDBEAT |
DMUS_NOTIFICATION_MEASUREBEAT = 0; |
// The following corresponds to GUID_NOTIFICATION_CHORD |
DMUS_NOTIFICATION_CHORD = 0; |
// The following correspond to GUID_NOTIFICATION_COMMAND |
DMUS_NOTIFICATION_GROOVE = 0; |
DMUS_NOTIFICATION_EMBELLISHMENT= 1; |
type |
// Time Signature structure, used by IDirectMusicStyle |
// Also used as a parameter for GetParam() and SetParam |
TDMUS_TIMESIGNATURE = record |
mtTime : MUSIC_TIME; |
bBeatsPerMeasure : Byte; // beats per measure (top of time sig) |
bBeat : Byte; // what note receives the beat (bottom of time sig.) |
// we can assume that 0 means 256th note |
wGridsPerBeat : Word; // grids per beat |
end; |
DMUS_TIMESIGNATURE = TDMUS_TIMESIGNATURE; |
// Flags for dwValidData. When set, a flag indicates that the |
// corresponding field in DMUSOBJECTDESC holds valid data. |
const |
DMUS_OBJ_OBJECT = 1 shl 0; // Object GUID is valid. |
DMUS_OBJ_CLASS = 1 shl 1; // Class GUID is valid. |
DMUS_OBJ_NAME = 1 shl 2; // Name is valid. |
DMUS_OBJ_CATEGORY = 1 shl 3; // Category is valid. |
DMUS_OBJ_FILENAME = 1 shl 4; // File path is valid. |
DMUS_OBJ_FULLPATH = 1 shl 5; // Path is full path. |
DMUS_OBJ_URL = 1 shl 6; // Path is URL. |
DMUS_OBJ_VERSION = 1 shl 7; // Version is valid. |
DMUS_OBJ_DATE = 1 shl 8; // Date is valid. |
DMUS_OBJ_LOADED = 1 shl 9; // Object is currently loaded in memory. |
DMUS_OBJ_MEMORY = 1 shl 10; // Object is pointed to by pbMemData. |
const |
DMUSB_LOADED = 1 shl 0; // Set when band has been loaded |
DMUSB_DEFAULT = 1 shl 1; // Set when band is default band for a style |
type |
IDirectMusicTrack = interface; |
IDirectMusicPerformance = interface; |
IDirectMusicTool = interface; |
IDirectMusicSegment = interface; |
IDirectMusicSegmentState = interface; |
IDirectMusicTool = interface; |
IDirectMusicGraph = interface; |
//IDirectMusicPort = interface; |
//IDirectMusicBuffer = interface; |
//IDirectMusicInstrument = interface; |
//IDirectMusicDownloadedInstrument = interface; |
IDirectMusicBand = interface; |
IDirectMusicChordMap = interface; |
IDirectMusicLoader = interface; |
IDirectMusicObject = interface; |
{#ifndef __cplusplus |
typedef interface IDirectMusic IDirectMusic; |
typedef interface IDirectMusicTrack IDirectMusicTrack; |
typedef interface IDirectMusicPerformance IDirectMusicPerformance; |
typedef interface IDirectMusicTool IDirectMusicTool; |
typedef interface IDirectMusicSegment IDirectMusicSegment; |
typedef interface IDirectMusicSegmentState IDirectMusicSegmentState; |
typedef interface IDirectMusicGraph IDirectMusicGraph; |
typedef interface IDirectMusicPort IDirectMusicPort; |
typedef interface IDirectMusicBuffer IDirectMusicBuffer; |
typedef interface IDirectMusicInstrument IDirectMusicInstrument; |
typedef interface IDirectMusicDownloadedInstrument IDirectMusicDownloadedInstrument; |
typedef interface IDirectMusicBand IDirectMusicBand; |
typedef interface IDirectMusicChordMap IDirectMusicChordMap; |
typedef interface IDirectMusicObject IDirectMusicObject; |
typedef interface IDirectMusicLoader IDirectMusicLoader; |
#endif} |
LPDMUS_OBJECT = IDirectMusicObject; |
LPDMUS_LOADER = IDirectMusicLoader; |
LPDMUS_BAND = IDirectMusicBand; |
TDMUS_PMSG_PART = record |
PIDirectMusicSegmentState = ^IDirectMusicSegmentState; |
TDMus_PMsg_Part = record |
dwSize : DWORD; |
rtTime : REFERENCE_TIME; // real time (in 100 nanosecond increments) \ |
mtTime : MUSIC_TIME; // music time \ |
dwFlags : DWORD; // various bits (see DMUS_PMSG_FLAGS enumeration) \ |
dwPChannel : DWORD; // Performance Channel. The Performance can \ |
// use this to determine the port/channel. \ |
dwVirtualTrackID : DWORD; // virtual track ID \ |
pTool : IDirectMusicTool; // tool interface pointer \ |
pGraph : IDirectMusicGraph; // tool graph interface pointer \ |
dwType : DWORD; // PMSG type (see DMUS_PMSGT_TYPES defines) \ |
dwVoiceID : DWORD; // unique voice id which allows synthesizers to \ |
// identify a specific event. For DirectX 6.0, \ |
// this field should always be 0. \ |
dwGroupID : DWORD; // Track group id \ |
punkUser : IUnknown; // user com pointer, auto released upon PMSG free |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
end; |
// every DMUS_PMSG is based off of this structure. The Performance needs |
// to access these members consistently in every PMSG that goes through it. |
{typedef struct _DMUS_PMSG |
{ |
/* begin DMUS_PMSG_PART |
DMUS_PMSG_PART |
/* end DMUS_PMSG_PART |
DMUS_PMSG;} |
TDMUS_PMSG = TDMUS_PMSG_PART; |
DMUS_PMSG = TDMUS_PMSG; |
(* every TDMus_PMsg is based off of this structure. The Performance needs |
to access these members consistently in every PMSG that goes through it. *) |
// DMUS_NOTE_PMSG |
TDMUS_NOTE_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
(* begin DMUS_PMsg_PART *) |
PDMus_PMsg = ^TDMus_PMsg; |
TDMus_PMsg = TDMus_PMsg_Part; |
(* end DMUS_PMsg_PART *) |
mtDuration : MUSIC_TIME; // duration |
wMusicValue : Word; // Description of note in chord and key. |
wMeasure : Word; // Measure in which this note occurs |
nOffset : Smallint; // Offset from grid at which this note occurs |
bBeat : Byte; // Beat (in measure) at which this note occurs |
bGrid : Byte; // Grid offset from beat at which this note occurs |
bVelocity : Byte; // Note velocity |
bFlags : Byte; // see DMUS_NOTE_FLAGS |
bTimeRange : Byte; // Range to randomize time. |
bDurRange : Byte; // Range to randomize duration. |
bVelRange : Byte; // Range to randomize velocity. |
bPlayModeFlags : Byte; // Play mode |
bSubChordLevel : Byte; // Which subchord level this note uses. |
bMidiValue : Byte; // The MIDI note value, converted from wMusicValue |
cTranspose : Shortint; // Transposition to add to midi note value after converted from wMusicValue. |
end; |
DMUS_NOTE_PMSG = TDMUS_NOTE_PMSG; |
(* DMUS_NOTIFICATION_PMsg *) |
PDMus_Notification_PMsg = ^TDMus_Notification_PMsg; |
TDMus_Notification_PMsg = record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
// DMUS_MIDI_PMSG |
TDMUS_MIDI_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
bStatus : Byte; |
bByte1 : Byte; |
bByte2 : Byte; |
bPad : array[0..0] of Byte; |
end; |
DMUS_MIDI_PMSG = TDMUS_MIDI_PMSG; |
// DMUS_PATCH_PMSG |
TDMUS_PATCH_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
byInstrument : Byte; |
byMSB : Byte; |
byLSB : Byte; |
byPad : array[0..0] of Byte; |
end; |
DMUS_PATCH_PMSG = TDMUS_PATCH_PMSG; |
// DMUS_TRANSPOSE_PMSG |
TDMUS_TRANSPOSE_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
nTranspose : Smallint; |
end; |
DMUS_TRANSPOSE_PMSG = TDMUS_TRANSPOSE_PMSG; |
// DMUS_CHANNEL_PRIORITY_PMSG |
TDMUS_CHANNEL_PRIORITY_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
dwChannelPriority : DWORD; |
end; |
DMUS_CHANNEL_PRIORITY_PMSG = TDMUS_CHANNEL_PRIORITY_PMSG; |
// DMUS_TEMPO_PMSG |
TDMUS_TEMPO_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
dblTempo : Double; // the tempo |
end; |
DMUS_TEMPO_PMSG = TDMUS_TEMPO_PMSG; |
// DMUS_SYSEX_PMSG |
TDMUS_SYSEX_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
dwLen : DWORD; // length of the data |
abData : array[0..0] of Byte; // array of data, length equal to dwLen |
end; |
DMUS_SYSEX_PMSG = TDMUS_SYSEX_PMSG; |
// DMUS_CURVE_PMSG |
TDMUS_CURVE_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
mtDuration : MUSIC_TIME; // how long this curve lasts |
mtOriginalStart : MUSIC_TIME; // must be set to either zero when this PMSG is created or to the original mtTime of the curve |
mtResetDuration : MUSIC_TIME; // how long after the curve is finished to reset to the |
// reset value, nResetValue |
nStartValue : Smallint; // curve's start value |
nEndValue : Smallint; // curve's end value |
nResetValue : Smallint; // curve's reset value, sent after mtResetDuration or |
// upon a flush or invalidation |
wMeasure : Word; // Measure in which this curve occurs |
nOffset : Smallint; // Offset from grid at which this curve occurs |
bBeat : Byte; // Beat (in measure) at which this curve occurs |
bGrid : Byte; // Grid offset from beat at which this curve occurs |
bType : Byte; // type of curve |
bCurveShape : Byte; // shape of curve |
bCCData : Byte; // CC# if this is a control change type |
bFlags : Byte; // set to 1 if the nResetValue must be sent when the |
// time is reached or an invalidate occurs because |
// of a transition. If 0, the curve stays |
// permanently stuck at the new value. All bits besides |
// 1 are reserved. |
end; |
DMUS_CURVE_PMSG = TDMUS_CURVE_PMSG; |
// DMUS_TIMESIG_PMSG |
TDMUS_TIMESIG_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
// Time signatures define how many beats per measure, which note receives |
// the beat, and the grid resolution. |
bBeatsPerMeasure : Byte; // beats per measure (top of time sig) |
bBeat : Byte; // what note receives the beat (bottom of time sig.) |
// we can assume that 0 means 256th note |
wGridsPerBeat : Word; // grids per beat |
end; |
DMUS_TIMESIG_PMSG = TDMUS_TIMESIG_PMSG; |
// DMUS_NOTIFICATION_PMSG |
PDMUS_NOTIFICATION_PMSG = ^TDMUS_NOTIFICATION_PMSG; |
TDMUS_NOTIFICATION_PMSG = record |
// begin DMUS_PMSG_PART |
DMUS_PMSG_PART : TDMUS_PMSG_PART; |
// end DMUS_PMSG_PART |
guidNotificationType : TGUID; |
dwNotificationOption : DWORD; |
dwField1 : DWORD; |
dwField2 : DWORD; |
end; |
DMUS_NOTIFICATION_PMSG = TDMUS_NOTIFICATION_PMSG; |
TDMUS_VERSION = record |
dwVersionMS : DWORD; |
dwVersionLS : DWORD; |
TDMus_SubChord = packed record |
dwChordPattern: DWORD; (* Notes in the subchord *) |
dwScalePattern: DWORD; (* Notes in the scale *) |
dwInversionPoints: DWORD; (* Where inversions can occur *) |
dwLevels: DWORD; (* Which levels are supported by this subchord *) |
bChordRoot: BYTE; (* Root of the subchord *) |
bScaleRoot: BYTE; (* Root of the scale *) |
end; |
DMUS_VERSION = TDMUS_VERSION; |
LPDMUS_VERSION = ^TDMUS_VERSION; |
// The DMUSOBJECTDESC structure is used to communicate everything you could |
// possibly use to describe a DirectMusic object. |
TDMUS_OBJECTDESC = record |
dwSize : DWORD; // Size of this structure. |
dwValidData : DWORD; // Flags indicating which fields below are valid. |
guidObject : TGUID; // Unique ID for this object. |
guidClass : TGUID; // GUID for the class of object. |
ftDate : TFILETIME; // Last edited date of object. |
vVersion : TDMUS_VERSION; // Version. |
wszName : array[0..DMUS_MAX_NAME - 1] of WCHAR; // Name of object. |
wszCategory : array[0..DMUS_MAX_CATEGORY - 1] of WCHAR; // Category for object (optional). |
wszFileName : array[0..DMUS_MAX_FILENAME - 1] of WCHAR; // File path. |
llMemLength : LONGLONG; // Size of Memory data. |
pbMemData : Pointer; // Memory pointer for data. |
TDMus_Chord_Key = packed record |
wszName: array [0..15] of WideChar; (* Name of the chord *) |
wMeasure: WORD; (* Measure this falls on *) |
bBeat: BYTE; (* Beat this falls on *) |
bSubChordCount: BYTE; (* Number of chords in the list of subchords *) |
SubChordList: array [0..DMUS_MAXSUBCHORD-1] of TDMus_SubChord; (* List of sub chords *) |
dwScale: DWORD; (* Scale underlying the entire chord *) |
bKey: BYTE; (* Key underlying the entire chord *) |
end; |
DMUS_OBJECTDESC = TDMUS_OBJECTDESC; |
LPDMUS_OBJECTDESC = ^TDMUS_OBJECTDESC; |
IDirectMusicBand = interface(IUnknown) |
['{D2AC28C0-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicBand |
function CreateSegment(out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
function Download(pPerformance: IDirectMusicPerformance) : HResult; stdcall; |
function Unload(pPerformance: IDirectMusicPerformance) : HResult; stdcall; |
(* Time Signature structure, used by IDirectMusicStyle *) |
(* Also used as a parameter for GetParam() and SetParam *) |
TDMus_TimeSignature = packed record |
mtTime: TMusic_Time; |
bBeatsPerMeasure: BYTE; (* beats per measure (top of time sig) *) |
bBeat: BYTE; (* what note receives the beat (bottom of time sig.) *) |
(* we can assume that 0 means 256th note *) |
wGridsPerBeat: WORD; (* grids per beat *) |
end; |
IDirectMusicObject = interface(IUnknown) |
['{D2AC28B5-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicObject |
function GetDescriptor(var pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
function SetDescriptor(const pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
function ParseDescriptor(pStream: IStream; |
var pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
(*///////////////////////////////////////////////////////////////////// |
// IDirectMusicSegmentState *) |
IDirectMusicSegmentState = interface (IUnknown) |
['{a3afdcc7-d3ee-11d1-bc8d-00a0c922e6eb}'] |
function GetRepeats (out pdwRepeats: DWORD) : HResult; stdcall; |
function GetSegment (out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
function GetStartTime (out pmtStart: TMusic_Time) : HResult; stdcall; |
function GetSeek (out pmtSeek: TMusic_Time) : HResult; stdcall; |
function GetStartPoint (out pmtStart: TMusic_Time) : HResult; stdcall; |
end; |
IDirectMusicLoader = interface(IUnknown) |
['{2FFAACA2-5DCA-11D2-AFA6-00AA0024D8B6}'] |
// IDirectMusicLoader |
function GetObject(const pDesc: TDMUS_OBJECTDESC; |
const riid: TGUID; |
out ppv) : HResult; stdcall; |
function SetObject(const pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
function SetSearchDirectory(const rguidClass: TGUID; |
pwzPath: PWCHAR; |
fClear: BOOL) : HResult; stdcall; |
function ScanDirectory(const rguidClass: TGUID; |
pwzFileExtension: PWCHAR; |
var pwzScanFileName: PWCHAR) : HResult; stdcall; |
function CacheObject(pObject: IDirectMusicObject) : HResult; stdcall; |
function ReleaseObject(pObject: IDirectMusicObject) : HResult; stdcall; |
function ClearCache(const rguidClass: TGUID) : HResult; stdcall; |
function EnableCache(const rguidClass: TGUID; |
fEnable: BOOL) : HResult; stdcall; |
function EnumObject(const rguidClass: TGUID; |
dwIndex: DWORD; |
var pDesc: TDMUS_OBJECTDESC) : HResult; stdcall; |
end; |
// Stream object supports IDirectMusicGetLoader interface to access loader while file parsing. |
IDirectMusicGetLoader = interface(IUnknown) |
['{68A04844-D13D-11D1-AFA6-00AA0024D8B6}'] |
// IDirectMusicGetLoader |
function GetLoader(out ppLoader: IDirectMusicLoader) : HResult; stdcall; |
end; |
{ IDirectMusicSegment } |
(*//////////////////////////////////////////////////////////////////// |
// IDirectMusicSegment *) |
IDirectMusicSegment = interface(IUnknown) |
['{F96029A2-4282-11D2-8717-00600893B1BD}'] |
// IDirectMusicSegment |
function GetLength(var pmtLength: MUSIC_TIME) : HResult; stdcall; |
function SetLength(mtLength: MUSIC_TIME) : HResult; stdcall; |
function GetRepeats(var pdwRepeats: DWORD) : HResult; stdcall; |
['{f96029a2-4282-11d2-8717-00600893b1bd}'] |
function GetLength (out pmtLength: TMusic_Time) : HResult; stdcall; |
function SetLength (mtLength: TMusic_Time) : HResult; stdcall; |
function GetRepeats (out pdwRepeats: DWORD) : HResult; stdcall; |
function SetRepeats(dwRepeats: DWORD) : HResult; stdcall; |
function GetDefaultResolution(var pdwResolution: DWORD) : HResult; stdcall; |
function GetDefaultResolution (out pdwResolution: DWORD) : HResult; stdcall; |
function SetDefaultResolution(dwResolution: DWORD) : HResult; stdcall; |
function GetTrack(const rguidType: TGUID; |
dwGroupBits: DWORD; |
dwIndex: DWORD; |
dwGroupBits, dwIndex: DWORD; |
out ppTrack: IDirectMusicTrack) : HResult; stdcall; |
function GetTrackGroup(pTrack: IDirectMusicTrack; |
var pdwGroupBits: DWORD) : HResult; stdcall; |
out pdwGroupBits: DWORD) : HResult; stdcall; |
function InsertTrack(pTrack: IDirectMusicTrack; |
dwGroupBits: DWORD) : HResult; stdcall; |
function RemoveTrack(pTrack: IDirectMusicTrack) : HResult; stdcall; |
14477,115 → 19778,100 |
function AddNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
function RemoveNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
function GetParam(const rguidType: TGUID; |
dwGroupBits: DWORD; |
dwIndex: DWORD; |
mtTime: MUSIC_TIME; |
var pmtNext: MUSIC_TIME; |
dwGroupBits, dwIndex: DWORD; |
mtTime: TMusic_Time; |
out pmtNext: TMusic_Time; |
pParam: Pointer) : HResult; stdcall; |
function SetParam(const rguidType: TGUID; |
dwGroupBits: DWORD; |
dwIndex: DWORD; |
mtTime: MUSIC_TIME; |
dwGroupBits, dwIndex: DWORD; |
mtTime: TMusic_Time; |
pParam: Pointer) : HResult; stdcall; |
function Clone(mtStart: MUSIC_TIME; |
mtEnd: MUSIC_TIME; |
function Clone (mtStart: TMusic_Time; |
mtEnd: TMusic_Time; |
out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
function SetStartPoint(mtStart: MUSIC_TIME) : HResult; stdcall; |
function GetStartPoint(var pmtStart: MUSIC_TIME) : HResult; stdcall; |
function SetLoopPoints(mtStart: MUSIC_TIME; |
mtEnd: MUSIC_TIME) : HResult; stdcall; |
function GetLoopPoints(var pmtStart: MUSIC_TIME; |
var pmtEnd: MUSIC_TIME) : HResult; stdcall; |
function SetStartPoint (mtStart: TMusic_Time) : HResult; stdcall; |
function GetStartPoint (out pmtStart: TMusic_Time) : HResult; stdcall; |
function SetLoopPoints (mtStart: TMusic_Time; |
mtEnd: TMusic_Time) : HResult; stdcall; |
function GetLoopPoints (out pmtStart, pmtEnd: TMusic_Time) : HResult; stdcall; |
function SetPChannelsUsed(dwNumPChannels: DWORD; |
const paPChannels) : HResult; stdcall; |
var paPChannels: DWORD) : HResult; stdcall; |
end; |
{ IDirectMusicSegmentState } |
IDirectMusicSegmentState = interface(IUnknown) |
['{A3AFDCC7-D3EE-11D1-BC8D-00A0C922E6EB}'] |
// IDirectMusicSegmentState |
function GetRepeats(var pdwRepeats: DWORD) : HResult; stdcall; |
function GetSegment(out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
function GetStartTime(var pmtStart: MUSIC_TIME) : HResult; stdcall; |
function GetSeek(var pmtSeek: MUSIC_TIME) : HResult; stdcall; |
function GetStartPoint(var pmtStart: MUSIC_TIME) : HResult; stdcall; |
end; |
{ IDirectMusicTrack } |
(*//////////////////////////////////////////////////////////////////// |
// IDirectMusicTrack *) |
IDirectMusicTrack = interface(IUnknown) |
['{F96029A1-4282-11D2-8717-00600893B1BD}'] |
// IDirectMusicTrack |
['{f96029a1-4282-11d2-8717-00600893b1bd}'] |
function Init(pSegment: IDirectMusicSegment) : HResult; stdcall; |
function InitPlay(pSegmentState: IDirectMusicSegmentState; |
pPerformance: IDirectMusicPerformance; |
var ppStateData: Pointer; |
dwVirtualTrackID: DWORD; |
dwFlags: DWORD) : HResult; stdcall; |
function EndPlay(const pStateData) : HResult; stdcall; |
function Play(const pStateData; |
mtStart: MUSIC_TIME; |
mtEnd: MUSIC_TIME; |
mtOffset: MUSIC_TIME; |
out ppStateData: Pointer; |
dwVirtualTrackID, dwFlags: DWORD) : HResult; stdcall; |
function EndPlay (pStateData: Pointer) : HResult; stdcall; |
function Play (pStateData: Pointer; |
mtStart: TMusic_Time; |
mtEnd: TMusic_Time; |
mtOffset: TMusic_Time; |
dwFlags: DWORD; |
pPerf: IDirectMusicPerformance; |
pSegSt: IDirectMusicSegmentState; |
dwVirtualID: DWORD) : HResult; stdcall; |
function GetParam(const rguidType: TGUID; |
mtTime: MUSIC_TIME; |
var pmtNext: MUSIC_TIME; |
var pParam) : HResult; stdcall; |
mtTime: TMusic_Time; |
out pmtNext: TMusic_Time; |
pParam: Pointer) : HResult; stdcall; |
function SetParam(const rguidType: TGUID; |
mtTime: MUSIC_TIME; |
const pParam) : HResult; stdcall; |
mtTime: TMusic_Time; |
pParam: Pointer) : HResult; stdcall; |
function IsParamSupported(const rguidType: TGUID) : HResult; stdcall; |
function AddNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
function RemoveNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
function Clone(mtStart: MUSIC_TIME; |
mtEnd: MUSIC_TIME; |
function Clone (mtStart: TMusic_Time; |
mtEnd: TMusic_Time; |
out ppTrack: IDirectMusicTrack) : HResult; stdcall; |
end; |
{ IDirectMusicPerformance } |
PIDirectMusic = ^IDirectMusic; |
(*//////////////////////////////////////////////////////////////////// |
// IDirectMusicPerformance *) |
IDirectMusicPerformance = interface(IUnknown) |
['{07D43D03-6523-11D2-871D-00600893B1BD}'] |
// IDirectMusicPerformance |
function Init(out ppDirectMusic: IDirectMusic; |
['{07d43d03-6523-11d2-871d-00600893b1bd}'] |
function Init (ppDirectMusic: PIDirectMusic; |
pDirectSound: IDirectSound; |
hWnd: HWND) : HResult; stdcall; |
function PlaySegment(pSegment: IDirectMusicSegment; |
dwFlags: DWORD; |
i64StartTime: LONGLONG; |
out ppSegmentState: IDirectMusicSegmentState) : HResult; stdcall; |
i64StartTime: LongLong; |
ppSegmentState: PIDirectMusicSegmentState) : HResult; stdcall; |
function Stop(pSegment: IDirectMusicSegment; |
pSegmentState: IDirectMusicSegmentState; |
mtTime: MUSIC_TIME; |
mtTime: TMusic_Time; |
dwFlags: DWORD) : HResult; stdcall; |
function GetSegmentState(out ppSegmentState: IDirectMusicSegmentState; |
mtTime: MUSIC_TIME) : HResult; stdcall; |
mtTime: TMusic_Time) : HResult; stdcall; |
function SetPrepareTime(dwMilliSeconds: DWORD) : HResult; stdcall; |
function GetPrepareTime(var pdwMilliSeconds: DWORD) : HResult; stdcall; |
function GetPrepareTime (out pdwMilliSeconds: DWORD) : HResult; stdcall; |
function SetBumperLength(dwMilliSeconds: DWORD) : HResult; stdcall; |
function GetBumperLength(var pdwMilliSeconds: DWORD) : HResult; stdcall; |
function SendPMsg(const pPMSG: TDMUS_PMSG) : HResult; stdcall; |
function MusicToReferenceTime(mtTime: MUSIC_TIME; |
var prtTime: TREFERENCE_TIME) : HResult; stdcall; |
function ReferenceToMusicTime(rtTime: TREFERENCE_TIME; |
var pmtTime: MUSIC_TIME) : HResult; stdcall; |
function GetBumperLength (out pdwMilliSeconds: DWORD) : HResult; stdcall; |
function SendPMsg (out pPMSG: TDMus_PMsg) : HResult; stdcall; |
function MusicToReferenceTime (mtTime: TMusic_Time; |
out prtTime: TReference_Time) : HResult; stdcall; |
function ReferenceToMusicTime (rtTime: TReference_Time; |
out pmtTime: TMusic_Time) : HResult; stdcall; |
function IsPlaying(pSegment: IDirectMusicSegment; |
pSegState: IDirectMusicSegmentState) : HResult; stdcall; |
function GetTime(var prtNow: TREFERENCE_TIME; |
var pmtNow: MUSIC_TIME) : HResult; stdcall; |
function AllocPMsg(cb: Cardinal; |
var ppPMSG: TDMUS_PMSG) : HResult; stdcall; |
function FreePMsg(const pPMSG: TDMUS_PMSG) : HResult; stdcall; |
function GetTime (prtNow: PReference_Time; |
pmtNow: PMusic_Time) : HResult; stdcall; |
function AllocPMsg (cb: ULONG; |
out ppPMSG: PDMus_PMsg) : HResult; stdcall; |
function FreePMsg (pPMSG: PDMus_PMsg) : HResult; stdcall; |
function GetGraph(out ppGraph: IDirectMusicGraph) : HResult; stdcall; |
function SetGraph(pGraph: IDirectMusicGraph) : HResult; stdcall; |
function SetNotificationHandle(hNotification: THandle; |
rtMinimum: TREFERENCE_TIME) : HResult; stdcall; |
function GetNotificationPMsg(var ppNotificationPMsg: PDMUS_NOTIFICATION_PMSG) : HResult; stdcall; |
function SetNotificationHandle (hNotification: THANDLE; |
rtMinimum: TReference_Time) : HResult; stdcall; |
function GetNotificationPMsg (out ppNotificationPMsg: PDMus_Notification_PMsg) : HResult; stdcall; |
function AddNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
function RemoveNotificationType(const rguidNotificationType: TGUID) : HResult; stdcall; |
function AddPort(pPort: IDirectMusicPort) : HResult; stdcall; |
14595,151 → 19881,600 |
dwGroup: DWORD) : HResult; stdcall; |
function AssignPChannel(dwPChannel: DWORD; |
pPort: IDirectMusicPort; |
dwGroup: DWORD; |
dwMChannel: DWORD) : HResult; stdcall; |
dwGroup, dwMChannel: DWORD) : HResult; stdcall; |
function PChannelInfo(dwPChannel: DWORD; |
out ppPort: IDirectMusicPort; |
var pdwGroup: DWORD; |
var pdwMChannel: DWORD) : HResult; stdcall; |
out pdwGroup, pdwMChannel: DWORD ) : HResult; stdcall; |
function DownloadInstrument(pInst: IDirectMusicInstrument; |
dwPChannel: DWORD; |
out ppDownInst: IDirectMusicDownloadedInstrument; |
const pNoteRanges; |
var pNoteRanges: TDMus_NoteRange; |
dwNumNoteRanges: DWORD; |
out ppPort: IDirectMusicPort; |
var pdwGroup: DWORD; |
var pdwMChannel: DWORD) : HResult; stdcall; |
function Invalidate(mtTime: MUSIC_TIME; |
out pdwGroup, pdwMChannel: DWORD) : HResult; stdcall; |
function Invalidate (mtTime: TMusic_Time; |
dwFlags: DWORD) : HResult; stdcall; |
function GetParam(const rguidType: TGUID; |
dwGroupBits: DWORD; |
dwIndex: DWORD; |
mtTime: MUSIC_TIME; |
var pmtNext: MUSIC_TIME; |
var pParam) : HResult; stdcall; |
dwGroupBits, dwIndex: DWORD; |
mtTime: TMusic_Time; |
out pmtNext: TMusic_Time; |
pParam: Pointer) : HResult; stdcall; |
function SetParam(const rguidType: TGUID; |
dwGroupBits: DWORD; |
dwIndex: DWORD; |
mtTime: MUSIC_TIME; |
dwGroupBits, dwIndex: DWORD; |
mtTime: TMusic_Time; |
pParam: Pointer) : HResult; stdcall; |
function GetGlobalParam(const rguidType: TGUID; |
var pParam; |
pParam: Pointer; |
dwSize: DWORD) : HResult; stdcall; |
function SetGlobalParam(const rguidType: TGUID; |
const pParam; |
pParam: Pointer; |
dwSize: DWORD) : HResult; stdcall; |
function GetLatencyTime(var prtTime: TREFERENCE_TIME) : HResult; stdcall; |
function GetQueueTime(var prtTime: TREFERENCE_TIME) : HResult; stdcall; |
function AdjustTime(rtAmount: TREFERENCE_TIME) : HResult; stdcall; |
function GetLatencyTime (out prtTime: TReference_Time) : HResult; stdcall; |
function GetQueueTime (out prtTime: TReference_Time) : HResult; stdcall; |
function AdjustTime (rtAmount: TReference_Time) : HResult; stdcall; |
function CloseDown : HResult; stdcall; |
function GetResolvedTime(rtTime: TREFERENCE_TIME; |
var prtResolved: TREFERENCE_TIME; |
function GetResolvedTime (rtTime: TReference_Time; |
out prtResolved: TReference_Time; |
dwTimeResolveFlags: DWORD) : HResult; stdcall; |
function MIDIToMusic(bMIDIValue: Byte; |
const pChord: TDMUS_CHORD_KEY; |
bPlayMode: Byte; |
bChordLevel: Byte; |
var pwMusicValue: Word) : HResult; stdcall; |
function MusicToMIDI(wMusicValue: Word; |
const pChord: TDMUS_CHORD_KEY; |
bPlayMode: Byte; |
bChordLevel: Byte; |
var pbMIDIValue: Byte) : HResult; stdcall; |
function TimeToRhythm(mtTime: MUSIC_TIME; |
const pTimeSig: TDMUS_TIMESIGNATURE; |
var pwMeasure: Word; |
var pbBeat: Byte; |
var pbGrid: Byte; |
var pnOffset: Smallint) : HResult; stdcall; |
function RhythmToTime(wMeasure: Word; |
bBeat: Byte; |
bGrid: Byte; |
nOffset: Smallint; |
const pTimeSig: TDMUS_TIMESIGNATURE; |
var pmtTime: MUSIC_TIME) : HResult; stdcall; |
function MIDIToMusic (bMIDIValue: BYTE; |
const pChord: TDMus_Chord_Key; |
bPlayMode, bChordLevel: Byte; |
out pwMusicValue: WORD) : HResult; stdcall; |
function MusicToMIDI (wMusicValue: WORD; |
const pChord: TDMus_Chord_Key; |
bPlayMode, bChordLevel: BYTE; |
out pbMIDIValue: BYTE) : HResult; stdcall; |
function TimeToRhythm (mtTime: TMusic_Time; |
const pTimeSig: TDMus_TimeSignature; |
out pwMeasure: WORD; |
out pbBeat, pbGrid: BYTE; |
out pnOffset: SmallInt) : HResult; stdcall; |
function RhythmToTime (wMeasure: WORD; |
bBeat, bGrid: BYTE; |
nOffset: SmallInt; |
const pTimeSig: TDMus_TimeSignature; |
out pmtTime: TMusic_Time) : HResult; stdcall; |
end; |
{ IDirectMusicTool } |
(*//////////////////////////////////////////////////////////////////// |
// IDirectMusicTool *) |
IDirectMusicTool = interface(IUnknown) |
['{D2AC28BA-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicTool |
['{d2ac28ba-b39b-11d1-8704-00600893b1bd}'] |
function Init(pGraph: IDirectMusicGraph) : HResult; stdcall; |
function GetMsgDeliveryType(var pdwDeliveryType: DWORD) : HResult; stdcall; |
function GetMediaTypeArraySize(var pdwNumElements: DWORD) : HResult; stdcall; |
function GetMediaTypes(var padwMediaTypes; |
function GetMsgDeliveryType (out pdwDeliveryType: DWORD) : HResult; stdcall; |
function GetMediaTypeArraySize (out pdwNumElements: DWORD) : HResult; stdcall; |
function GetMediaTypes (out padwMediaTypes: PDWORD; |
dwNumElements: DWORD) : HResult; stdcall; |
function ProcessPMsg(pPerf: IDirectMusicPerformance; |
const pPMSG: TDMUS_PMSG) : HResult; stdcall; |
var pPMSG: TDMus_PMsg) : HResult; stdcall; |
function Flush(pPerf: IDirectMusicPerformance; |
const pPMSG: TDMUS_PMSG; |
rtTime: TREFERENCE_TIME) : HResult; stdcall; |
const pPMSG: TDMus_PMsg; |
rtTime: TReference_Time) : HResult; stdcall; |
end; |
{ IDirectMusicGraph } |
(*//////////////////////////////////////////////////////////////////// |
// IDirectMusicGraph *) |
IDirectMusicGraph = interface(IUnknown) |
['{2BEFC277-5497-11D2-BCCB-00A0C922E6EB}'] |
// IDirectMusicGraph |
function StampPMsg(const pPMSG: TDMUS_PMSG) : HResult; stdcall; |
['{2befc277-5497-11d2-bccb-00a0c922e6eb}'] |
function StampPMsg (var pPMSG: TDMus_PMsg ) : HResult; stdcall; |
function InsertTool(pTool: IDirectMusicTool; |
const pdwPChannels; |
var pdwPChannels: DWORD; |
cPChannels: DWORD; |
lIndex: Longint) : HResult; stdcall; |
lIndex: LongInt) : HResult; stdcall; |
function GetTool(dwIndex: DWORD; |
out ppTool: IDirectMusicTool) : HResult; stdcall; |
function RemoveTool(pTool: IDirectMusicTool) : HResult; stdcall; |
end; |
{ IDirectMusicStyle } |
(* DMUS_NOTE_PMsg *) |
TDMus_Note_PMsg = packed record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
mtDuration: TMusic_Time; (* duration *) |
wMusicValue: WORD; (* Description of note in chord and key. *) |
wMeasure: WORD; (* Measure in which this note occurs *) |
nOffset: SmallInt; (* Offset from grid at which this note occurs *) |
bBeat: BYTE; (* Beat (in measure) at which this note occurs *) |
bGrid: BYTE; (* Grid offset from beat at which this note occurs *) |
bVelocity: BYTE; (* Note velocity *) |
bFlags: BYTE; (* see DMUS_NOTE_FLAGS *) |
bTimeRange: BYTE; (* Range to randomize time. *) |
bDurRange: BYTE; (* Range to randomize duration. *) |
bVelRange: BYTE; (* Range to randomize velocity. *) |
bPlayModeFlags: BYTE; (* Play mode *) |
bSubChordLevel: BYTE; (* Which subchord level this note uses. *) |
bMidiValue: BYTE; (* The MIDI note value, converted from wMusicValue *) |
cTranspose: char; (* Transposition to add to midi note value after converted from wMusicValue. *) |
end; |
TDMus_NoteF_Flags = DWORD; |
const |
DMUS_NOTEF_NOTEON = 1; (* Set if this is a MIDI Note On. Otherwise, it is MIDI Note Off *) |
(* The DMUS_PLAYMODE_FLAGS are used to determine how to convert wMusicValue |
into the appropriate bMidiValue. |
*) |
type |
TDMus_PlayMode_Flags = DWORD; |
const |
DMUS_PLAYMODE_KEY_ROOT = 1; (* Transpose on top of the key root. *) |
DMUS_PLAYMODE_CHORD_ROOT = 2; (* Transpose on top of the chord root. *) |
DMUS_PLAYMODE_SCALE_INTERVALS = 4; (* Use scale intervals from scale pattern. *) |
DMUS_PLAYMODE_CHORD_INTERVALS = 8; (* Use chord intervals from chord pattern. *) |
DMUS_PLAYMODE_NONE = 16; (* No mode. Indicates the parent part's mode should be used. *) |
(* The following are playback modes that can be created by combining the DMUS_PLAYMODE_FLAGS |
in various ways: |
*) |
(* Fixed. wMusicValue holds final MIDI note value. This is used for drums, sound effects, and sequenced |
notes that should not be transposed by the chord or scale. |
*) |
DMUS_PLAYMODE_FIXED = 0; |
(* In fixed to key, the musicvalue is again a fixed MIDI value, but it |
is transposed on top of the key root. |
*) |
DMUS_PLAYMODE_FIXEDTOKEY = DMUS_PLAYMODE_KEY_ROOT; |
(* In fixed to chord, the musicvalue is also a fixed MIDI value, but it |
is transposed on top of the chord root. |
*) |
DMUS_PLAYMODE_FIXEDTOCHORD = DMUS_PLAYMODE_CHORD_ROOT; |
(* In Pedalpoint, the key root is used and the notes only track the intervals in |
the scale. The chord root and intervals are completely ignored. This is useful |
for melodic lines that play relative to the key root. |
*) |
DMUS_PLAYMODE_PEDALPOINT = (DMUS_PLAYMODE_KEY_ROOT or DMUS_PLAYMODE_SCALE_INTERVALS); |
(* In the Melodic mode, the chord root is used but the notes only track the intervals in |
the scale. The key root and chord intervals are completely ignored. This is useful |
for melodic lines that play relative to the chord root. |
*) |
DMUS_PLAYMODE_MELODIC = (DMUS_PLAYMODE_CHORD_ROOT or DMUS_PLAYMODE_SCALE_INTERVALS); |
(* Normal chord mode is the prevalent playback mode. |
The notes track the intervals in the chord, which is based on the chord root. |
If there is a scale component to the MusicValue, the additional intervals |
are pulled from the scale and added. |
If the chord does not have an interval to match the chord component of |
the MusicValue, the note is silent. |
*) |
DMUS_PLAYMODE_NORMALCHORD = (DMUS_PLAYMODE_CHORD_ROOT or DMUS_PLAYMODE_CHORD_INTERVALS); |
(* If it is desirable to play a note that is above the top of the chord, the |
always play mode (known as "purpleized" in a former life) finds a position |
for the note by using intervals from the scale. Essentially, this mode is |
a combination of the Normal and Melodic playback modes, where a failure |
in Normal causes a second try in Melodic mode. |
*) |
DMUS_PLAYMODE_ALWAYSPLAY = (DMUS_PLAYMODE_MELODIC or DMUS_PLAYMODE_NORMALCHORD); |
(* Legacy names for modes... *) |
DMUS_PLAYMODE_PURPLEIZED = DMUS_PLAYMODE_ALWAYSPLAY; |
DMUS_PLAYMODE_SCALE_ROOT = DMUS_PLAYMODE_KEY_ROOT; |
DMUS_PLAYMODE_FIXEDTOSCALE = DMUS_PLAYMODE_FIXEDTOKEY; |
type |
(* DMUS_MIDI_PMsg *) |
TDMus_Midi_PMsg = record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
bStatus: BYTE; |
bByte1: BYTE; |
bByte2: BYTE; |
bPad: array [0..0] of BYTE; |
end; |
(* DMUS_PATCH_PMsg *) |
TDMus_Patch_PMsg = packed record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
byInstrument: BYTE; |
byMSB: BYTE; |
byLSB: BYTE; |
byPad: array [0..0] of BYTE; |
end; |
(* DMUS_TRANSPOSE_PMsg *) |
TDMus_Transpose_PMsg = packed record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
nTranspose: SmallInt; |
end; |
(* DMUS_CHANNEL_PRIORITY_PMsg *) |
TDMus_Channel_Priority_PMsg = packed record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
dwChannelPriority: DWORD; |
end; |
(* DMUS_TEMPO_PMsg *) |
TDMus_Tempo_PMsg = packed record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
dblTempo: double; (* the tempo *) |
end; |
const |
DMUS_TEMPO_MAX = 1000; |
DMUS_TEMPO_MIN = 1; |
DMUS_MASTERTEMPO_MAX = 100.0; |
DMUS_MASTERTEMPO_MIN = 0.01; |
type |
(* DMUS_SYSEX_PMsg *) |
TDMus_SysEx_PMsg = packed record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
dwLen: DWORD; (* length of the data *) |
abData: array [0..0] of BYTE; (* array of data, length equal to dwLen *) |
end; |
(* DMUS_CURVE_PMsg *) |
TDMus_Curve_PMsg = packed record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
mtDuration: TMusic_Time; (* how long this curve lasts *) |
mtOriginalStart: TMusic_Time; (* must be set to either zero when this PMSG is created or to the original mtTime of the curve *) |
mtResetDuration: TMusic_Time; (* how long after the curve is finished to reset to the |
reset value, nResetValue *) |
nStartValue: SmallInt; (* curve's start value *) |
nEndValue: SmallInt; (* curve's end value *) |
nResetValue: SmallInt; (* curve's reset value, sent after mtResetDuration or |
upon a flush or invalidation *) |
wMeasure: WORD; (* Measure in which this curve occurs *) |
nOffset: SmallInt; (* Offset from grid at which this curve occurs *) |
bBeat: BYTE; (* Beat (in measure) at which this curve occurs *) |
bGrid: BYTE; (* Grid offset from beat at which this curve occurs *) |
bType: BYTE; (* type of curve *) |
bCurveShape: BYTE; (* shape of curve *) |
bCCData: BYTE; (* CC# if this is a control change type *) |
bFlags: BYTE; (* set to 1 if the nResetValue must be sent when the |
time is reached or an invalidate occurs because |
of a transition. If 0, the curve stays |
permanently stuck at the new value. All bits besides |
1 are reserved. *) |
end; |
TDMus_Curve_Flags = DWORD; |
const |
DMUS_CURVE_RESET = 1; (* Set if the curve needs to be reset. *) |
(* Curve shapes *) |
type |
TDMus_Curve_Shapes = ( |
DMUS_CURVES_LINEAR , |
DMUS_CURVES_INSTANT, |
DMUS_CURVES_EXP , |
DMUS_CURVES_LOG , |
DMUS_CURVES_SINE |
); |
const |
(* curve types *) |
DMUS_CURVET_PBCURVE = $03; |
DMUS_CURVET_CCCURVE = $04; |
DMUS_CURVET_MATCURVE = $05; |
DMUS_CURVET_PATCURVE = $06; |
type |
(* DMUS_TIMESIG_PMsg *) |
TDMus_TimeSig_PMsg = packed record |
(* begin DMUS_PMsg_PART *) |
dwSize: DWORD; |
rtTime: TReference_Time; (* real time (in 100 nanosecond increments) *) |
mtTime: TMusic_Time; (* music time *) |
dwFlags: DWORD; (* various bits (see DMUS_PMsg_FLAGS enumeration) *) |
dwPChannel: DWORD; (* Performance Channel. The Performance can *) |
(* use this to determine the port/channel. *) |
dwVirtualTrackID:DWORD; (* virtual track ID *) |
pTool: IDirectMusicTool; (* tool interface pointer *) |
pGraph: IDirectMusicGraph; (* tool graph interface pointer *) |
dwType: DWORD; (* PMSG type (see DMUS_PMsgT_TYPES defines) *) |
dwVoiceID: DWORD; (* unique voice id which allows synthesizers to *) |
(* identify a specific event. For DirectX 6.0, *) |
(* this field should always be 0. *) |
dwGroupID: DWORD; (* Track group id *) |
punkUser: IUnknown; (* user com pointer, auto released upon PMSG free *) |
(* end DMUS_PMsg_PART *) |
(* Time signatures define how many beats per measure, which note receives *) |
(* the beat, and the grid resolution. *) |
bBeatsPerMeasure: BYTE; (* beats per measure (top of time sig) *) |
bBeat: BYTE; (* what note receives the beat (bottom of time sig.) *) |
(* we can assume that 0 means 256th note *) |
wGridsPerBeat: WORD; (* grids per beat *) |
end; |
const |
(* notification type values *) |
(* The following correspond to GUID_NOTIFICATION_SEGMENT *) |
DMUS_NOTIFICATION_SEGSTART = 0; |
DMUS_NOTIFICATION_SEGEND = 1; |
DMUS_NOTIFICATION_SEGALMOSTEND = 2; |
DMUS_NOTIFICATION_SEGLOOP = 3; |
DMUS_NOTIFICATION_SEGABORT = 4; |
(* The following correspond to GUID_NOTIFICATION_PERFORMANCE *) |
DMUS_NOTIFICATION_MUSICSTARTED = 0; |
DMUS_NOTIFICATION_MUSICSTOPPED = 1; |
(* The following corresponds to GUID_NOTIFICATION_MEASUREANDBEAT *) |
DMUS_NOTIFICATION_MEASUREBEAT = 0; |
(* The following corresponds to GUID_NOTIFICATION_CHORD *) |
DMUS_NOTIFICATION_CHORD = 0; |
(* The following correspond to GUID_NOTIFICATION_COMMAND *) |
DMUS_NOTIFICATION_GROOVE = 0; |
DMUS_NOTIFICATION_EMBELLISHMENT = 1; |
const |
DMUS_MAX_NAME = 64; (* Maximum object name length. *) |
DMUS_MAX_CATEGORY = 64; (* Maximum object category name length. *) |
DMUS_MAX_FILENAME = MAX_PATH; |
type |
PDMus_Version = ^TDMus_Version; |
TDMus_Version = packed record |
dwVersionMS: DWORD; |
dwVersionLS: DWORD; |
end; |
(* The DMUSOBJECTDESC structure is used to communicate everything you could *) |
(* possibly use to describe a DirectMusic object. *) |
PDMus_ObjectDesc = ^TDMus_ObjectDesc; |
TDMus_ObjectDesc = packed record |
dwSize: DWORD; (* Size of this structure. *) |
dwValidData: DWORD; (* Flags indicating which fields below are valid. *) |
guidObject: TGUID; (* Unique ID for this object. *) |
guidClass: TGUID; (* GUID for the class of object. *) |
ftDate: TFileTime; (* Last edited date of object. *) |
vVersion: TDMus_Version; (* Version. *) |
wszName: array [0..DMUS_MAX_NAME-1] of WCHAR; (* Name of object. *) |
wszCategory: array [0..DMUS_MAX_CATEGORY-1] of WCHAR; (* Category for object (optional). *) |
wszFileName: array [0..DMUS_MAX_FILENAME-1] of WCHAR; (* File path. *) |
llMemLength: LongLong; (* Size of Memory data. *) |
pbMemData: Pointer; (* Memory pointer for data. *) |
dwDummy: DWORD; ///? |
end; |
(* Flags for dwValidData. When set, a flag indicates that the *) |
(* corresponding field in DMUSOBJECTDESC holds valid data. *) |
const |
DMUS_OBJ_OBJECT = (1 shl 0); (* Object GUID is valid. *) |
DMUS_OBJ_CLASS = (1 shl 1); (* Class GUID is valid. *) |
DMUS_OBJ_NAME = (1 shl 2); (* Name is valid. *) |
DMUS_OBJ_CATEGORY = (1 shl 3); (* Category is valid. *) |
DMUS_OBJ_FILENAME = (1 shl 4); (* File path is valid. *) |
DMUS_OBJ_FULLPATH = (1 shl 5); (* Path is full path. *) |
DMUS_OBJ_URL = (1 shl 6); (* Path is URL. *) |
DMUS_OBJ_VERSION = (1 shl 7); (* Version is valid. *) |
DMUS_OBJ_DATE = (1 shl 8); (* Date is valid. *) |
DMUS_OBJ_LOADED = (1 shl 9); (* Object is currently loaded in memory. *) |
DMUS_OBJ_MEMORY = (1 shl 10); (* Object is pointed to by pbMemData. *) |
DMUSB_LOADED = (1 shl 0); (* Set when band has been loaded *) |
DMUSB_DEFAULT = (1 shl 1); (* Set when band is default band for a style *) |
type |
IDirectMusicBand = interface; |
IDirectMusicChordMap = interface; |
IDirectMusicLoader = interface; |
IDirectMusicObject = interface; |
IDirectMusicBand = interface (IUnknown) |
['{d2ac28c0-b39b-11d1-8704-00600893b1bd}'] |
function CreateSegment (out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
function Download (pPerformance: IDirectMusicPerformance) : HResult; stdcall; |
function Unload (pPerformance: IDirectMusicPerformance) : HResult; stdcall; |
end; |
IDirectMusicObject = interface (IUnknown) |
['{d2ac28b5-b39b-11d1-8704-00600893b1bd}'] |
function GetDescriptor (out pDesc: TDMus_ObjectDesc) : HResult; stdcall; |
function SetDescriptor (const pDesc: TDMus_ObjectDesc) : HResult; stdcall; |
function ParseDescriptor (var pStream; |
out pDesc: TDMus_ObjectDesc) : HResult; stdcall; |
end; |
IDirectMusicLoader = interface (IUnknown) |
['{2ffaaca2-5dca-11d2-afa6-00aa0024d8b6}'] |
function GetObject (const pDesc: TDMus_ObjectDesc; |
const riid : TGUID; |
out ppv) : HResult; stdcall; |
function SetObject (const pDesc: TDMus_ObjectDesc) : HResult; stdcall; |
function SetSearchDirectory (const rguidClass: TGUID; |
pwzPath: PWideChar; |
fClear: BOOL) : HResult; stdcall; |
function ScanDirectory (const rguidClass: TGUID; |
pwzFileExtension, |
pwzScanFileName: PWideChar) : HResult; stdcall; |
function CacheObject (pObject: IDirectMusicObject) : HResult; stdcall; |
function ReleaseObject (pObject: IDirectMusicObject) : HResult; stdcall; |
function ClearCache (const rguidClass: TGUID) : HResult; stdcall; |
function EnableCache (const rguidClass: TGUID; |
fEnable: BOOL) : HResult; stdcall; |
function EnumObject (const rguidClass: TGUID; |
dwIndex: DWORD; |
const pDesc: TDMus_ObjectDesc) : HResult; stdcall; |
end; |
(* Stream object supports IDirectMusicGetLoader interface to access loader while file parsing. *) |
IDirectMusicGetLoader = interface (IUnknown) |
['{68a04844-d13d-11d1-afa6-00aa0024d8b6}'] |
function GetLoader (out ppLoader: IDirectMusicLoader) : HResult; stdcall; |
end; |
(*///////////////////////////////////////////////////////////////////// |
// IDirectMusicStyle *) |
IDirectMusicStyle = interface(IUnknown) |
['{D2AC28BD-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicStyle |
function GetBand(pwszName: PWCHAR; |
['{d2ac28bd-b39b-11d1-8704-00600893b1bd}'] |
function GetBand (pwszName: PWideChar; |
out ppBand: IDirectMusicBand) : HResult; stdcall; |
function EnumBand(dwIndex: DWORD; |
pwszName: PWCHAR) : HResult; stdcall; |
pwszName: PWideChar) : HResult; stdcall; |
function GetDefaultBand(out ppBand: IDirectMusicBand) : HResult; stdcall; |
function EnumMotif(dwIndex: DWORD; |
pwszName: PWCHAR) : HResult; stdcall; |
function GetMotif(pwszName: PWCHAR; |
pwszName: PWideChar) : HResult; stdcall; |
function GetMotif (pwszName: PWideChar; |
out ppSegment: IDirectMusicSegment) : HResult; stdcall; |
function GetDefaultChordMap(out ppChordMap: IDirectMusicChordMap) : HResult; stdcall; |
function EnumChordMap(dwIndex: DWORD; |
pwszName: PWCHAR) : HResult; stdcall; |
function GetChordMap(pwszName: PWCHAR; |
pwszName: PWideChar) : HResult; stdcall; |
function GetChordMap (pwszName: PWideChar; |
out ppChordMap: IDirectMusicChordMap) : HResult; stdcall; |
function GetTimeSignature(var pTimeSig: TDMUS_TIMESIGNATURE) : HResult; stdcall; |
function GetEmbellishmentLength(dwType: DWORD; |
dwLevel: DWORD; |
var pdwMin: DWORD; |
var pdwMax: DWORD) : HResult; stdcall; |
function GetTempo(var pTempo: Double) : HResult; stdcall; |
function GetTimeSignature (out pTimeSig: TDMus_TimeSignature) : HResult; stdcall; |
function GetEmbellishmentLength (dwType, dwLevel: DWORD; |
out pdwMin, pdwMax: DWORD) : HResult; stdcall; |
function GetTempo (out pTempo: double) : HResult; stdcall; |
end; |
{ IDirectMusicChordMap } |
(*///////////////////////////////////////////////////////////////////// |
// IDirectMusicChordMap *) |
IDirectMusicChordMap = interface(IUnknown) |
['{D2AC28BE-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicChordMap |
function GetScale(var pdwScale: DWORD) : HResult; stdcall; |
['{d2ac28be-b39b-11d1-8704-00600893b1bd}'] |
function GetScale (out pdwScale: DWORD) : HResult; stdcall; |
end; |
{ IDirectMusicComposer } |
(*///////////////////////////////////////////////////////////////////// |
// IDirectMusicComposer *) |
IDirectMusicComposer = interface(IUnknown) |
['{D2AC28BF-B39B-11D1-8704-00600893B1BD}'] |
// IDirectMusicComposer |
['{d2ac28bf-b39b-11d1-8704-00600893b1bd}'] |
function ComposeSegmentFromTemplate(pStyle: IDirectMusicStyle; |
pTempSeg: IDirectMusicSegment; |
wActivity: Word; |
wActivity: WORD; |
pChordMap: IDirectMusicChordMap; |
out ppSectionSeg: IDirectMusicSegment) : HResult; stdcall; |
function ComposeSegmentFromShape(pStyle: IDirectMusicStyle; |
wNumMeasures: Word; |
wShape: Word; |
wActivity: Word; |
wNumMeasures, |
wShape, |
wActivity: WORD; |
fIntro: BOOL; |
fEnd: BOOL; |
pChordMap: IDirectMusicChordMap; |
14746,24 → 20481,24 |
out ppSectionSeg: IDirectMusicSegment) : HResult; stdcall; |
function ComposeTransition(pFromSeg: IDirectMusicSegment; |
pToSeg: IDirectMusicSegment; |
mtTime: MUSIC_TIME; |
wCommand: Word; |
mtTime: TMusic_Time; |
wCommand: WORD; |
dwFlags: DWORD; |
pChordMap: IDirectMusicChordMap; |
out ppSectionSeg: IDirectMusicSegment) : HResult; stdcall; |
function AutoTransition(pPerformance: IDirectMusicPerformance; |
pToSeg: IDirectMusicSegment; |
wCommand: Word; |
wCommand: WORD; |
dwFlags: DWORD; |
pChordMap: IDirectMusicChordMap; |
out ppTransSeg: IDirectMusicSegment; |
out ppToSegState: IDirectMusicSegmentState; |
out ppTransSegState: IDirectMusicSegmentState) : HResult; stdcall; |
function ComposeTemplateFromShape(wNumMeasures: Word; |
wShape: Word; |
function ComposeTemplateFromShape (wNumMeasures: WORD; |
wShape: WORD; |
fIntro: BOOL; |
fEnd: BOOL; |
wEndLength: Word; |
wEndLength: WORD; |
out ppTempSeg: IDirectMusicSegment) : HResult; stdcall; |
function ChangeChordMap(pSectionSeg: IDirectMusicSegment; |
fTrackScale: BOOL; |
14771,592 → 20506,978 |
end; |
const |
// CLSID's |
CLSID_DirectMusicPerformance : TGUID = '{D2AC2881-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicSegment : TGUID = '{D2AC2882-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicSegmentState : TGUID = '{D2AC2883-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicGraph : TGUID = '{D2AC2884-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicTempoTrack : TGUID = '{D2AC2885-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicSeqTrack : TGUID = '{D2AC2886-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicSysExTrack : TGUID = '{D2AC2887-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicTimeSigTrack : TGUID = '{D2AC2888-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicStyle : TGUID = '{D2AC288A-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicChordTrack : TGUID = '{D2AC288B-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicCommandTrack : TGUID = '{D2AC288C-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicStyleTrack : TGUID = '{D2AC288D-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicMotifTrack : TGUID = '{D2AC288E-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicChordMap : TGUID = '{D2AC288F-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicComposer : TGUID = '{D2AC2890-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicSignPostTrack: TGUID = '{F17E8672-C3B4-11D1-870B-00600893B1BD}'; |
CLSID_DirectMusicLoader : TGUID = '{D2AC2892-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicBandTrack : TGUID = '{D2AC2894-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicBand : TGUID = '{79BA9E00-B6EE-11D1-86BE-00C04FBF8FEF}'; |
CLSID_DirectMusicChordMapTrack: TGUID = '{D2AC2896-B39B-11D1-8704-00600893B1BD}'; |
CLSID_DirectMusicMuteTrack : TGUID = '{D2AC2898-B39B-11D1-8704-00600893B1BD}'; |
(* CLSID's *) |
CLSID_DirectMusicPerformance : TGUID = '{d2ac2881-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicSegment : TGUID = '{d2ac2882-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicSegmentState : TGUID = '{d2ac2883-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicGraph : TGUID = '{d2ac2884-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicTempoTrack : TGUID = '{d2ac2885-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicSeqTrack : TGUID = '{d2ac2886-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicSysExTrack : TGUID = '{d2ac2887-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicTimeSigTrack : TGUID = '{d2ac2888-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicStyle : TGUID = '{d2ac288a-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicChordTrack : TGUID = '{d2ac288b-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicCommandTrack : TGUID = '{d2ac288c-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicStyleTrack : TGUID = '{d2ac288d-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicMotifTrack : TGUID = '{d2ac288e-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicChordMap : TGUID = '{d2ac288f-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicComposer : TGUID = '{d2ac2890-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicSignPostTrack : TGUID = '{f17e8672-c3b4-11d1-870b-00600893b1bd}'; |
CLSID_DirectMusicLoader : TGUID = '{d2ac2892-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicBandTrack : TGUID = '{d2ac2894-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicBand : TGUID = '{79ba9e00-b6ee-11d1-86be-00c04fbf8fef}'; |
CLSID_DirectMusicChordMapTrack : TGUID = '{d2ac2896-b39b-11d1-8704-00600893b1bd}'; |
CLSID_DirectMusicMuteTrack : TGUID = '{d2ac2898-b39b-11d1-8704-00600893b1bd}'; |
// Special GUID for all object types. This is used by the loader. |
GUID_DirectMusicAllTypes : TGUID = '{D2AC2893-B39B-11D1-8704-00600893B1BD}'; |
(* Special GUID for all object types. This is used by the loader. *) |
GUID_DirectMusicAllTypes : TGUID = '{d2ac2893-b39b-11d1-8704-00600893b1bd}'; |
// Notification guids |
GUID_NOTIFICATION_SEGMENT : TGUID = '{D2AC2899-B39B-11D1-8704-00600893B1BD}'; |
GUID_NOTIFICATION_PERFORMANCE : TGUID = '{81F75BC5-4E5D-11D2-BCC7-00A0C922E6EB}'; |
GUID_NOTIFICATION_MEASUREANDBEAT: TGUID = '{D2AC289A-B39B-11D1-8704-00600893B1BD}'; |
GUID_NOTIFICATION_CHORD : TGUID = '{D2AC289B-B39B-11D1-8704-00600893B1BD}'; |
GUID_NOTIFICATION_COMMAND : TGUID = '{D2AC289C-B39B-11D1-8704-00600893B1BD}'; |
(* Notification guids *) |
GUID_NOTIFICATION_SEGMENT : TGUID = '{d2ac2899-b39b-11d1-8704-00600893b1bd}'; |
GUID_NOTIFICATION_PERFORMANCE : TGUID = '{81f75bc5-4e5d-11d2-bcc7-00a0c922e6eb}'; |
GUID_NOTIFICATION_MEASUREANDBEAT : TGUID = '{d2ac289a-b39b-11d1-8704-00600893b1bd}'; |
GUID_NOTIFICATION_CHORD : TGUID = '{d2ac289b-b39b-11d1-8704-00600893b1bd}'; |
GUID_NOTIFICATION_COMMAND : TGUID = '{d2ac289c-b39b-11d1-8704-00600893b1bd}'; |
// Track param type guids |
// Use to get/set a DMUS_COMMAND_PARAM param in the Command track |
GUID_CommandParam : TGUID = '{D2AC289D-B39B-11D1-8704-00600893B1BD}'; |
(* Track param type guids *) |
(* Use to get/set a DMUS_COMMAND_PARAM param in the Command track *) |
GUID_CommandParam : TGUID = '{d2ac289d-b39b-11d1-8704-00600893b1bd}'; |
// Use to get/set a DMUS_CHORD_PARAM param in the Chord track |
GUID_ChordParam : TGUID = '{D2AC289E-B39B-11D1-8704-00600893B1BD}'; |
(* Use to get a DMUS_COMMAND_PARAM_2 param in the Command track *) |
GUID_CommandParam2 : TGUID = '{28f97ef7-9538-11d2-97a9-00c04fa36e58}'; |
// Use to get a DMUS_RHYTHM_PARAM param in the Chord track |
GUID_RhythmParam : TGUID = '{D2AC289F-B39B-11D1-8704-00600893B1BD}'; |
(* Use to get/set a DMUS_CHORD_PARAM param in the Chord track *) |
GUID_ChordParam : TGUID = '{d2ac289e-b39b-11d1-8704-00600893b1bd}'; |
// Use to get/set an IDirectMusicStyle param in the Style track |
GUID_IDirectMusicStyle : TGUID = '{D2AC28A1-B39B-11D1-8704-00600893B1BD}'; |
(* Use to get a DMUS_RHYTHM_PARAM param in the Chord track *) |
GUID_RhythmParam : TGUID = '{d2ac289f-b39b-11d1-8704-00600893b1bd}'; |
// Use to get a DMUS_TIMESIGNATURE param in the Style and TimeSig tracks |
GUID_TimeSignature : TGUID = '{D2AC28A4-B39B-11D1-8704-00600893B1BD}'; |
(* Use to get/set an IDirectMusicStyle param in the Style track *) |
GUID_IDirectMusicStyle : TGUID = '{d2ac28a1-b39b-11d1-8704-00600893b1bd}'; |
// Use to get/set a DMUS_TEMPO_PARAM param in the Tempo track |
GUID_TempoParam : TGUID = '{D2AC28A5-B39B-11D1-8704-00600893B1BD}'; |
(* Use to get a DMUS_TIMESIGNATURE param in the Style and TimeSig tracks *) |
GUID_TimeSignature : TGUID = '{d2ac28a4-b39b-11d1-8704-00600893b1bd}'; |
// Use to set an IDirectMusicBand param in the Band track |
GUID_IDirectMusicBand : TGUID = '{D2AC28AC-B39B-11D1-8704-00600893B1BD}'; |
(* Use to get/set a DMUS_TEMPO_PARAM param in the Tempo track *) |
GUID_TempoParam : TGUID = '{d2ac28a5-b39b-11d1-8704-00600893b1bd}'; |
// Use to get/set an IDirectMusicChordMap param in the ChordMap track |
GUID_IDirectMusicChordMap : TGUID = '{D2AC28AD-B39B-11D1-8704-00600893B1BD}'; |
(* Use to set an IDirectMusicBand param in the Band track *) |
GUID_IDirectMusicBand : TGUID = '{d2ac28ac-b39b-11d1-8704-00600893b1bd}'; |
// Use to get/set a DMUS_MUTE_PARAM param in the Mute track |
GUID_MuteParam : TGUID = '{D2AC28AF-B39B-11D1-8704-00600893B1BD}'; |
(* Use to get/set an IDirectMusicChordMap param in the ChordMap track *) |
GUID_IDirectMusicChordMap : TGUID = '{d2ac28ad-b39b-11d1-8704-00600893b1bd}'; |
// These guids are used in IDirectMusicSegment::SetParam to tell the band track to perform various actions. |
/// |
/// Download bands for the IDirectMusicSegment |
GUID_Download : TGUID = '{D2AC28A7-B39B-11D1-8704-00600893B1BD}'; |
(* Use to get/set a DMUS_MUTE_PARAM param in the Mute track *) |
GUID_MuteParam : TGUID = '{d2ac28af-b39b-11d1-8704-00600893b1bd}'; |
// Unload bands for the IDirectMusicSegment |
GUID_Unload : TGUID = '{D2AC28A8-B39B-11D1-8704-00600893B1BD}'; |
(* These guids are used in IDirectMusicSegment::SetParam to tell the band track to perform various actions. |
*) |
(* Download bands for the IDirectMusicSegment *) |
GUID_Download : TGUID = '{d2ac28a7-b39b-11d1-8704-00600893b1bd}'; |
// Connect segment's bands to an IDirectMusicCollection |
GUID_ConnectToDLSCollection : TGUID = '{1DB1AE6B-E92E-11D1-A8C5-00C04FA3726E}'; |
(* Unload bands for the IDirectMusicSegment *) |
GUID_Unload : TGUID = '{d2ac28a8-b39b-11d1-8704-00600893b1bd}'; |
// Enable/disable autodownloading of bands |
GUID_Enable_Auto_Download : TGUID = '{D2AC28A9-B39B-11D1-8704-00600893B1BD}'; |
GUID_Disable_Auto_Download : TGUID = '{D2AC28AA-B39B-11D1-8704-00600893B1BD}'; |
(* Connect segment's bands to an IDirectMusicCollection *) |
GUID_ConnectToDLSCollection : TGUID = '{1db1ae6b-e92e-11d1-a8c5-00c04fa3726e}'; |
// Clear all bands |
GUID_Clear_All_Bands : TGUID = '{D2AC28AB-B39B-11D1-8704-00600893B1BD}'; |
(* Enable/disable autodownloading of bands *) |
GUID_Enable_Auto_Download : TGUID = '{d2ac28a9-b39b-11d1-8704-00600893b1bd}'; |
GUID_Disable_Auto_Download : TGUID = '{d2ac28aa-b39b-11d1-8704-00600893b1bd}'; |
// Set segment to manage all program changes, bank selects, etc. for simple playback of a standard MIDI file |
GUID_StandardMIDIFile : TGUID = '{06621075-E92E-11D1-A8C5-00C04FA3726E}'; |
// For compatibility with beta releases... |
GUID_IgnoreBankSelectForGM : TGUID = '{06621075-E92E-11D1-A8C5-00C04FA3726E}'; //same as GUID_StandardMIDIFile; |
(* Clear all bands *) |
GUID_Clear_All_Bands : TGUID = '{d2ac28ab-b39b-11d1-8704-00600893b1bd}'; |
// Disable/enable param guids. Use these in SetParam calls to disable or enable sending |
// specific PMsg types. |
/// |
GUID_DisableTimeSig : TGUID = '{45FC707B-1DB4-11D2-BCAC-00A0C922E6EB}'; |
GUID_EnableTimeSig : TGUID = '{45FC707C-1DB4-11D2-BCAC-00A0C922E6EB}'; |
GUID_DisableTempo : TGUID = '{45FC707D-1DB4-11D2-BCAC-00A0C922E6EB}'; |
GUID_EnableTempo : TGUID = '{45FC707E-1DB4-11D2-BCAC-00A0C922E6EB}'; |
(* Set segment to manage all program changes, bank selects, etc. for simple playback of a standard MIDI file *) |
_GUID_StandardMIDIFile = '{06621075-e92e-11d1-a8c5-00c04fa3726e}'; |
GUID_StandardMIDIFile : TGUID = _GUID_StandardMIDIFile; |
(* For compatibility with beta releases... *) |
GUID_IgnoreBankSelectForGM : TGUID = _GUID_StandardMIDIFile; |
// Global data guids |
GUID_PerfMasterTempo : TGUID = '{D2AC28B0-B39B-11D1-8704-00600893B1BD}'; |
GUID_PerfMasterVolume : TGUID = '{D2AC28B1-B39B-11D1-8704-00600893B1BD}'; |
GUID_PerfMasterGrooveLevel : TGUID = '{D2AC28B2-B39B-11D1-8704-00600893B1BD}'; |
GUID_PerfAutoDownload : TGUID = '{FB09565B-3631-11D2-BCB8-00A0C922E6EB}'; |
(* Disable/enable param guids. Use these in SetParam calls to disable or enable sending |
* specific PMsg types. |
*) |
GUID_DisableTimeSig : TGUID = '{45fc707b-1db4-11d2-bcac-00a0c922e6eb}'; |
GUID_EnableTimeSig : TGUID = '{45fc707c-1db4-11d2-bcac-00a0c922e6eb}'; |
GUID_DisableTempo : TGUID = '{45fc707d-1db4-11d2-bcac-00a0c922e6eb}'; |
GUID_EnableTempo : TGUID = '{45fc707e-1db4-11d2-bcac-00a0c922e6eb}'; |
// GUID for default GM/GS dls collection. |
GUID_DefaultGMCollection : TGUID = '{F17E8673-C3B4-11D1-870B-00600893B1BD}'; |
(* Used in SetParam calls for pattern-based tracks. A nonzero value seeds the random number |
generator for variation selection; a value of zero reverts to the default behavior of |
getting the seed from the system clock. |
*) |
GUID_SeedVariations : TGUID = '{65b76fa5-ff37-11d2-814e-00c04fa36e58}'; |
// IID's |
IID_IDirectMusicLoader : TGUID = '{2FFAACA2-5DCA-11D2-AFA6-00AA0024D8B6}'; |
IID_IDirectMusicGetLoader : TGUID = '{68A04844-D13D-11D1-AFA6-00AA0024D8B6}'; |
IID_IDirectMusicObject : TGUID = '{D2AC28B5-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicSegment : TGUID = '{F96029A2-4282-11D2-8717-00600893B1BD}'; |
IID_IDirectMusicSegmentState : TGUID = '{A3AFDCC7-D3EE-11D1-BC8D-00A0C922E6EB}'; |
IID_IDirectMusicTrack : TGUID = '{F96029A1-4282-11D2-8717-00600893B1BD}'; |
IID_IDirectMusicPerformance : TGUID = '{07D43D03-6523-11D2-871D-00600893B1BD}'; |
IID_IDirectMusicTool : TGUID = '{D2AC28BA-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicGraph : TGUID = '{2BEFC277-5497-11D2-BCCB-00A0C922E6EB}'; |
IID_IDirectMusicStyle : TGUID = '{D2AC28BD-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicChordMap : TGUID = '{D2AC28BE-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicComposer : TGUID = '{D2AC28BF-B39B-11D1-8704-00600893B1BD}'; |
IID_IDirectMusicBand : TGUID = '{D2AC28C0-B39B-11D1-8704-00600893B1BD}'; |
(* Global data guids *) |
GUID_PerfMasterTempo : TGUID = '{d2ac28b0-b39b-11d1-8704-00600893b1bd}'; |
GUID_PerfMasterVolume : TGUID = '{d2ac28b1-b39b-11d1-8704-00600893b1bd}'; |
GUID_PerfMasterGrooveLevel : TGUID = '{d2ac28b2-b39b-11d1-8704-00600893b1bd}'; |
GUID_PerfAutoDownload : TGUID = '{fb09565b-3631-11d2-bcb8-00a0c922e6eb}'; |
// Alternate interface IDs, available in DX7 release and after. |
IID_IDirectMusicPerformance2 : TGUID = '{6FC2CAE0-BC78-11D2-AFA6-00AA0024D8B6}'; |
IID_IDirectMusicSegment2 : TGUID = '{D38894D1-C052-11D2-872F-00600893B1BD}'; |
(* GUID for default GM/GS dls collection. *) |
GUID_DefaultGMCollection : TGUID = '{f17e8673-c3b4-11d1-870b-00600893b1bd}'; |
type |
(* IID's *) |
IID_IDirectMusicLoader = IDirectMusicLoader; |
IID_IDirectMusicGetLoader = IDirectMusicGetLoader; |
IID_IDirectMusicObject = IDirectMusicObject; |
IID_IDirectMusicSegment = IDirectMusicSegment; |
IID_IDirectMusicSegmentState = IDirectMusicSegmentState; |
IID_IDirectMusicTrack = IDirectMusicTrack; |
IID_IDirectMusicPerformance = IDirectMusicPerformance; |
IID_IDirectMusicTool = IDirectMusicTool; |
IID_IDirectMusicGraph = IDirectMusicGraph; |
IID_IDirectMusicStyle = IDirectMusicStyle; |
IID_IDirectMusicChordMap = IDirectMusicChordMap; |
IID_IDirectMusicComposer = IDirectMusicComposer; |
IID_IDirectMusicBand = IDirectMusicBand; |
//*********************************************************************** |
// * |
// dmusicf.h -- This module defines the DirectMusic file formats * |
// * |
// Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
// * |
//********************************************************************** |
// Common chunks |
const |
DMUS_FOURCC_GUID_CHUNK = Ord('g') + Ord('u') shl 8 + Ord('i') shl 16 + Ord('d') shl 24; |
DMUS_FOURCC_INFO_LIST = Ord('I') + Ord('N') shl 8 + Ord('F') shl 16 + Ord('O') shl 24; |
DMUS_FOURCC_UNFO_LIST = Ord('U') + Ord('N') shl 8 + Ord('F') shl 16 + Ord('O') shl 24; |
DMUS_FOURCC_UNAM_CHUNK = Ord('U') + Ord('N') shl 8 + Ord('A') shl 16 + Ord('M') shl 24; |
DMUS_FOURCC_UART_CHUNK = Ord('U') + Ord('A') shl 8 + Ord('R') shl 16 + Ord('T') shl 24; |
DMUS_FOURCC_UCOP_CHUNK = Ord('U') + Ord('C') shl 8 + Ord('O') shl 16 + Ord('P') shl 24; |
DMUS_FOURCC_USBJ_CHUNK = Ord('U') + Ord('S') shl 8 + Ord('B') shl 16 + Ord('J') shl 24; |
DMUS_FOURCC_UCMT_CHUNK = Ord('U') + Ord('C') shl 8 + Ord('M') shl 16 + Ord('T') shl 24; |
DMUS_FOURCC_CATEGORY_CHUNK = Ord('c') + Ord('a') shl 8 + Ord('t') shl 16 + Ord('g') shl 24; |
DMUS_FOURCC_VERSION_CHUNK = Ord('v') + Ord('e') shl 8 + Ord('r') shl 16 + Ord('s') shl 24; |
(* Alternate interface IDs, available in DX7 release and after. *) |
IID_IDirectMusicPerformance2 : TGUID = '{6fc2cae0-bc78-11d2-afa6-00aa0024d8b6}'; |
IID_IDirectMusicSegment2 : TGUID = '{d38894d1-c052-11d2-872f-00600893b1bd}'; |
// The following structures are used by the Tracks, and are the packed structures |
// that are passed to the Tracks inside the IStream. |
(************************************************************************ |
* * |
* dmusicf.h -- This module defines the DirectMusic file formats * |
* * |
* Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
* * |
************************************************************************) |
//type IDirectMusicCollection = interface; |
const |
(* Common chunks *) |
DMUS_FOURCC_GUID_CHUNK : mmioFOURCC = ('g','u','i','d'); |
DMUS_FOURCC_INFO_LIST : mmioFOURCC = ('I','N','F','O'); |
DMUS_FOURCC_UNFO_LIST : mmioFOURCC = ('U','N','F','O'); |
DMUS_FOURCC_UNAM_CHUNK : mmioFOURCC = ('U','N','A','M'); |
DMUS_FOURCC_UART_CHUNK : mmioFOURCC = ('U','A','R','T'); |
DMUS_FOURCC_UCOP_CHUNK : mmioFOURCC = ('U','C','O','P'); |
DMUS_FOURCC_USBJ_CHUNK : mmioFOURCC = ('U','S','B','J'); |
DMUS_FOURCC_UCMT_CHUNK : mmioFOURCC = ('U','C','M','T'); |
DMUS_FOURCC_CATEGORY_CHUNK : mmioFOURCC = ('c','a','t','g'); |
DMUS_FOURCC_VERSION_CHUNK : mmioFOURCC = ('v','e','r','s'); |
(* The following structures are used by the Tracks, and are the packed structures *) |
(* that are passed to the Tracks inside the IStream. *) |
type |
TDMUS_IO_SEQ_ITEM = record |
mtTime : MUSIC_TIME; |
mtDuration : MUSIC_TIME; |
TDMus_IO_Seq_Item = packed record |
mtTime: TMusic_Time; |
mtDuration: TMusic_Time; |
dwPChannel : DWORD; |
nOffset : Smallint; |
bStatus : Byte; |
bByte1 : Byte; |
bByte2 : Byte; |
nOffset: SmallInt; |
bStatus: BYTE; |
bByte1: BYTE; |
bByte2: BYTE; |
end; |
DMUS_IO_SEQ_ITEM = TDMUS_IO_SEQ_ITEM; |
TDMUS_IO_CURVE_ITEM = record |
mtStart : MUSIC_TIME; |
mtDuration : MUSIC_TIME; |
mtResetDuration : MUSIC_TIME; |
TDMus_IO_Curve_Item = packed record |
mtStart: TMusic_Time; |
mtDuration: TMusic_Time; |
mtResetDuration: TMusic_Time; |
dwPChannel : DWORD; |
nOffset : Smallint; |
nStartValue : Smallint; |
nEndValue : Smallint; |
nResetValue : Smallint; |
bType : Byte; |
bCurveShape : Byte; |
bCCData : Byte; |
bFlags : Byte; |
nOffset: SmallInt; |
nStartValue: SmallInt; |
nEndValue: SmallInt; |
nResetValue: SmallInt; |
bType: BYTE; |
bCurveShape: BYTE; |
bCCData: BYTE; |
bFlags: BYTE; |
end; |
DMUS_IO_CURVE_ITEM = TDMUS_IO_CURVE_ITEM; |
TDMUS_IO_TEMPO_ITEM = record |
lTime : MUSIC_TIME; |
dblTempo : Double; |
TDMus_IO_Tempo_Item = packed record |
lTime: TMusic_Time; |
dblTempo: double; |
end; |
DMUS_IO_TEMPO_ITEM = TDMUS_IO_TEMPO_ITEM; |
TDMUS_IO_SYSEX_ITEM = record |
mtTime : MUSIC_TIME; |
TDMus_IO_SysEx_Item = packed record |
mtTime: TMusic_Time; |
dwPChannel : DWORD; |
dwSysExLength : DWORD; |
end; |
DMUS_IO_SYSEX_ITEM = TDMUS_IO_SYSEX_ITEM; |
TDMus_IO_TimeSignature_Item = packed record |
lTime: TMusic_Time; |
bBeatsPerMeasure: BYTE; (* beats per measure (top of time sig) *) |
bBeat: BYTE; (* what note receives the beat (bottom of time sig.) *) |
(* we can assume that 0 means 256th note *) |
wGridsPerBeat: WORD; (* grids per beat *) |
end; |
TDMUS_IO_TIMESIGNATURE_ITEM = record |
lTime : MUSIC_TIME; |
bBeatsPerMeasure : Byte; // beats per measure (top of time sig) |
bBeat : Byte; // what note receives the beat (bottom of time sig.) |
// we can assume that 0 means 256th note |
wGridsPerBeat : Word; // grids per beat |
(* PARAM structures, used by GetParam() and SetParam() *) |
TDMus_Command_Param = packed record |
bCommand: BYTE; |
bGrooveLevel: BYTE; |
bGrooveRange: BYTE; |
end; |
DMUS_IO_TIMESIGNATURE_ITEM = TDMUS_IO_TIMESIGNATURE_ITEM; |
// PARAM structures, used by GetParam() and SetParam() |
TDMUS_COMMAND_PARAM = record |
bCommand : Byte; |
bGrooveLevel : Byte; |
bGrooveRange : Byte; |
TDMus_Command_Param_2 = packed record |
mtTime : TMusic_Time; |
bCommand: BYTE; |
bGrooveLevel: BYTE; |
bGrooveRange: BYTE; |
end; |
DMUS_COMMAND_PARAM = TDMUS_COMMAND_PARAM; |
//DMUS_CHORD_KEY = DMUS_CHORD_PARAM; // DMUS_CHORD_KEY defined in dmusici.h |
TDMus_Chord_Param = TDMus_Chord_Key; (* DMUS_CHORD_KEY defined in dmusici.h *) |
TDMUS_RHYTHM_PARAM = record |
TimeSig : TDMUS_TIMESIGNATURE; |
TDMus_Rhythm_Param = packed record |
TimeSig: TDMus_TimeSignature; |
dwRhythmPattern : DWORD; |
end; |
DMUS_RHYTHM_PARAM = TDMUS_RHYTHM_PARAM; |
TDMUS_TEMPO_PARAM = record |
mtTime : MUSIC_TIME; |
dblTempo : Double; |
TDMus_Tempo_Param = packed record |
mtTime: TMusic_Time; |
dblTempo: double; |
end; |
DMUS_TEMPO_PARAM = TDMUS_TEMPO_PARAM; |
TDMUS_MUTE_PARAM = record |
TDMus_Mute_Param = packed record |
dwPChannel : DWORD; |
dwPChannelMap : DWORD; |
fMute : BOOL; |
end; |
DMUS_MUTE_PARAM = TDMUS_MUTE_PARAM; |
const |
// Style chunks |
(* Style chunks *) |
DMUS_FOURCC_STYLE_FORM = Ord('D') + Ord('M') shl 8 + Ord('S') shl 16 + Ord('T') shl 24; |
DMUS_FOURCC_STYLE_CHUNK = Ord('s') + Ord('t') shl 8 + Ord('y') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_PART_LIST = Ord('p') + Ord('a') shl 8 + Ord('r') shl 16 + Ord('t') shl 24; |
DMUS_FOURCC_PART_CHUNK = Ord('p') + Ord('r') shl 8 + Ord('t') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_NOTE_CHUNK = Ord('n') + Ord('o') shl 8 + Ord('t') shl 16 + Ord('e') shl 24; |
DMUS_FOURCC_CURVE_CHUNK = Ord('c') + Ord('r') shl 8 + Ord('v') shl 16 + Ord('e') shl 24; |
DMUS_FOURCC_PATTERN_LIST = Ord('p') + Ord('t') shl 8 + Ord('t') shl 16 + Ord('n') shl 24; |
DMUS_FOURCC_PATTERN_CHUNK = Ord('p') + Ord('t') shl 8 + Ord('n') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_RHYTHM_CHUNK = Ord('r') + Ord('h') shl 8 + Ord('t') shl 16 + Ord('m') shl 24; |
DMUS_FOURCC_PARTREF_LIST = Ord('p') + Ord('r') shl 8 + Ord('e') shl 16 + Ord('f') shl 24; |
DMUS_FOURCC_PARTREF_CHUNK = Ord('p') + Ord('r') shl 8 + Ord('f') shl 16 + Ord('c') shl 24; |
DMUS_FOURCC_STYLE_PERS_REF_LIST = Ord('p') + Ord('r') shl 8 + Ord('r') shl 16 + Ord('f') shl 24; |
DMUS_FOURCC_MOTIFSETTINGS_CHUNK = Ord('m') + Ord('t') shl 8 + Ord('f') shl 16 + Ord('s') shl 24; |
DMUS_FOURCC_STYLE_FORM : mmioFOURCC = ('D','M','S','T'); |
DMUS_FOURCC_STYLE_CHUNK : mmioFOURCC = ('s','t','y','h'); |
DMUS_FOURCC_PART_LIST : mmioFOURCC = ('p','a','r','t'); |
DMUS_FOURCC_PART_CHUNK : mmioFOURCC = ('p','r','t','h'); |
DMUS_FOURCC_NOTE_CHUNK : mmioFOURCC = ('n','o','t','e'); |
DMUS_FOURCC_CURVE_CHUNK : mmioFOURCC = ('c','r','v','e'); |
DMUS_FOURCC_PATTERN_LIST : mmioFOURCC = ('p','t','t','n'); |
DMUS_FOURCC_PATTERN_CHUNK : mmioFOURCC = ('p','t','n','h'); |
DMUS_FOURCC_RHYTHM_CHUNK : mmioFOURCC = ('r','h','t','m'); |
DMUS_FOURCC_PARTREF_LIST : mmioFOURCC = ('p','r','e','f'); |
DMUS_FOURCC_PARTREF_CHUNK : mmioFOURCC = ('p','r','f','c'); |
DMUS_FOURCC_STYLE_PERS_REF_LIST : mmioFOURCC = ('p', 'r', 'r', 'f'); |
DMUS_FOURCC_MOTIFSETTINGS_CHUNK : mmioFOURCC = ('m', 't', 'f', 's'); |
// Flags used by variations: these make up the DWORDs in dwVariationChoices. |
(* Flags used by variations: these make up the DWORDs in dwVariationChoices. *) |
// These flags determine the types of chords supported by a given variation in DirectMusic |
// mode. The first seven flags (bits 1-7) are set if the variation supports major chords |
// rooted in scale positions, so, e.g., if bits 1, 2, and 4 are set, the variation |
// supports major chords rooted in the tonic, second, and fourth scale positions. The |
// next seven flags serve the same purpose, but for minor chords, and the following seven |
// flags serve the same purpose for chords that are not major or minor (e.g., SUS 4 |
// chords). Bits 22, 23, and 24 are set if the variation supports chords rooted in the |
// scale, chords rooted sharp of scale tones, and chords rooted flat of scale tones, |
// respectively. For example, to support a C# minor chord in the scale of C Major, |
// bits 8 (for tonic minor) and 24 (for sharp) need to be set. Bits 25, 26, an 27 handle |
// chords that are triads, 6th or 7th chords, and chords with extensions, respectively. |
// bits 28 and 29 handle chords that are followed by tonic and dominant chords, |
// respectively. |
DMUS_VARIATIONF_MAJOR = $0000007F; // Seven positions in the scale - major chords. |
DMUS_VARIATIONF_MINOR = $00003F80; // Seven positions in the scale - minor chords. |
DMUS_VARIATIONF_OTHER = $001FC000; // Seven positions in the scale - other chords. |
DMUS_VARIATIONF_ROOT_SCALE = $00200000; // Handles chord roots in the scale. |
DMUS_VARIATIONF_ROOT_FLAT = $00400000; // Handles flat chord roots (based on scale notes). |
DMUS_VARIATIONF_ROOT_SHARP = $00800000; // Handles sharp chord roots (based on scale notes). |
DMUS_VARIATIONF_TYPE_TRIAD = $01000000; // Handles simple chords - triads. |
DMUS_VARIATIONF_TYPE_6AND7 = $02000000; // Handles simple chords - 6 and 7. |
DMUS_VARIATIONF_TYPE_COMPLEX= $04000000; // Handles complex chords. |
DMUS_VARIATIONF_DEST_TO1 = $08000000; // Handles transitions to 1 chord. |
DMUS_VARIATIONF_DEST_TO5 = $10000000; // Handles transitions to 5 chord. |
(* These flags determine the types of chords supported by a given variation in DirectMusic *) |
(* mode. The first seven flags (bits 1-7) are set if the variation supports major chords *) |
(* rooted in scale positions, so, e.g., if bits 1, 2, and 4 are set, the variation *) |
(* supports major chords rooted in the tonic, second, and fourth scale positions. The *) |
(* next seven flags serve the same purpose, but for minor chords, and the following seven *) |
(* flags serve the same purpose for chords that are not major or minor (e.g., SUS 4 *) |
(* chords). Bits 22, 23, and 24 are set if the variation supports chords rooted in the *) |
(* scale, chords rooted sharp of scale tones, and chords rooted flat of scale tones, *) |
(* respectively. For example, to support a C# minor chord in the scale of C Major, *) |
(* bits 8 (for tonic minor) and 24 (for sharp) need to be set. Bits 25, 26, an 27 handle *) |
(* chords that are triads, 6th or 7th chords, and chords with extensions, respectively. *) |
(* bits 28 and 29 handle chords that are followed by tonic and dominant chords, *) |
(* respectively. *) |
DMUS_VARIATIONF_MAJOR = $0000007F; (* Seven positions in the scale - major chords. *) |
DMUS_VARIATIONF_MINOR = $00003F80; (* Seven positions in the scale - minor chords. *) |
DMUS_VARIATIONF_OTHER = $001FC000; (* Seven positions in the scale - other chords. *) |
DMUS_VARIATIONF_ROOT_SCALE = $00200000; (* Handles chord roots in the scale. *) |
DMUS_VARIATIONF_ROOT_FLAT = $00400000; (* Handles flat chord roots (based on scale notes). *) |
DMUS_VARIATIONF_ROOT_SHARP = $00800000; (* Handles sharp chord roots (based on scale notes). *) |
DMUS_VARIATIONF_TYPE_TRIAD = $01000000; (* Handles simple chords - triads. *) |
DMUS_VARIATIONF_TYPE_6AND7 = $02000000; (* Handles simple chords - 6 and 7. *) |
DMUS_VARIATIONF_TYPE_COMPLEX = $04000000; (* Handles complex chords. *) |
DMUS_VARIATIONF_DEST_TO1 = $08000000; (* Handles transitions to 1 chord. *) |
DMUS_VARIATIONF_DEST_TO5 = $10000000; (* Handles transitions to 5 chord. *) |
// The top three bits of the variation flags are the Mode bits. If all are 0, it's IMA. |
// If the smallest is 1, it's Direct Music. |
(* The top three bits of the variation flags are the Mode bits. If all are 0, it's IMA. *) |
(* If the smallest is 1, it's Direct Music. *) |
DMUS_VARIATIONF_MODES = $E0000000; |
DMUS_VARIATIONF_IMA25_MODE = $00000000; |
DMUS_VARIATIONF_DMUS_MODE = $20000000; |
//#pragma pack(2) |
type BYTE2 = Word; |
type |
TDMUS_IO_TIMESIG = record |
// Time signatures define how many beats per measure, which note receives |
// the beat, and the grid resolution. |
bBeatsPerMeasure : Byte; // beats per measure (top of time sig) |
bBeat : Byte; // what note receives the beat (bottom of time sig.) |
// we can assume that 0 means 256th note |
wGridsPerBeat : Word; // grids per beat |
TDMus_IO_TimeSig = packed record |
(* Time signatures define how many beats per measure, which note receives *) |
(* the beat, and the grid resolution. *) |
bBeatsPerMeasure: BYTE2; (* beats per measure (top of time sig) *) |
bBeat: BYTE2; (* what note receives the beat (bottom of time sig.) *) |
(* we can assume that 0 means 256th note *) |
wGridsPerBeat: WORD; (* grids per beat *) |
end; |
DMUS_IO_TIMESIG = TDMUS_IO_TIMESIG; |
TDMUS_IO_STYLE = record |
timeSig : TDMUS_IO_TIMESIG; // Styles have a default Time Signature |
dblTempo: Double; |
TDMus_IO_Style = packed record |
timeSig: TDMus_IO_TimeSig; (* Styles have a default Time Signature *) |
dblTempo: double; |
end; |
DMUS_IO_STYLE = TDMUS_IO_STYLE; |
TDMUS_IO_VERSION = record |
dwVersionMS : DWORD; // Version # high-order 32 bits |
dwVersionLS : DWORD; // Version # low-order 32 bits |
TDMus_IO_Version = packed record |
dwVersionMS: DWORD; (* Version # high-order 32 bits *) |
dwVersionLS: DWORD; (* Version # low-order 32 bits *) |
end; |
DMUS_IO_VERSION = TDMUS_IO_VERSION; |
TDMUS_IO_PATTERN = record |
timeSig : TDMUS_IO_TIMESIG; // Patterns can override the Style's Time sig. |
bGrooveBottom : Byte; // bottom of groove range |
bGrooveTop : Byte; // top of groove range |
wEmbellishment : Word; // Fill, Break, Intro, End, Normal, Motif |
wNbrMeasures : Word; // length in measures |
TDMus_IO_Pattern = packed record |
timeSig: TDMus_IO_TimeSig; (* Patterns can override the Style's Time sig. *) |
bGrooveBottom: BYTE2; (* bottom of groove range *) |
bGrooveTop: BYTE2; (* top of groove range *) |
wEmbellishment: WORD; (* Fill, Break, Intro, End, Normal, Motif *) |
wNbrMeasures: WORD; (* length in measures *) |
end; |
DMUS_IO_PATTERN = TDMUS_IO_PATTERN; |
TDMUS_IO_STYLEPART = record |
timeSig : TDMUS_IO_TIMESIG; // can override pattern's |
dwVariationChoices : array[0..31] of DWORD; // MOAW choice bitfield |
guidPartID : TGUID; // identifies the part |
wNbrMeasures : Word; // length of the Part |
bPlayModeFlags : Byte; // see PLAYMODE flags |
bInvertUpper : Byte; // inversion upper limit |
bInvertLower : Byte; // inversion lower limit |
TDMus_IO_StylePart = packed record |
timeSig: TDMus_IO_TimeSig; (* can override pattern's *) |
dwVariationChoices: array [0..31] of DWORD; (* MOAW choice bitfield *) |
guidPartID: TGUID; (* identifies the part *) |
wNbrMeasures: WORD; (* length of the Part *) |
bPlayModeFlags: BYTE2; (* see PLAYMODE flags *) |
bInvertUpper: BYTE2; (* inversion upper limit *) |
bInvertLower: BYTE2; (* inversion lower limit *) |
end; |
DMUS_IO_STYLEPART = TDMUS_IO_STYLEPART; |
TDMUS_IO_PARTREF = record |
guidPartID : TGUID; // unique ID for matching up with parts |
wLogicalPartID : Word; // corresponds to port/device/midi channel |
bVariationLockID : Byte; // parts with the same ID lock variations. |
// high bit is used to identify master Part |
bSubChordLevel : Byte; // tells which sub chord level this part wants |
bPriority : Byte; // 256 priority levels. Parts with lower priority |
// aren't played first when a device runs out of |
// notes |
bRandomVariation : Byte; // when set, matching variations play in random order |
// when clear, matching variations play sequentially |
TDMus_IO_PartRef = packed record |
guidPartID: TGUID; (* unique ID for matching up with parts *) |
wLogicalPartID: WORD; (* corresponds to port/device/midi channel *) |
bVariationLockID: BYTE2; (* parts with the same ID lock variations. *) |
(* high bit is used to identify master Part *) |
bSubChordLevel: BYTE2; (* tells which sub chord level this part wants *) |
bPriority: BYTE2; (* 256 priority levels. Parts with lower priority *) |
(* aren't played first when a device runs out of *) |
(* notes *) |
bRandomVariation: BYTE2; (* when set, matching variations play in random order *) |
(* when clear, matching variations play sequentially *) |
end; |
DMUS_IO_PARTREF = TDMUS_IO_PARTREF; |
TDMUS_IO_STYLENOTE = record |
mtGridStart : MUSIC_TIME; // when this note occurs |
dwVariation : DWORD; // variation bits |
mtDuration : MUSIC_TIME; // how long this note lasts |
nTimeOffset : Smallint; // offset from mtGridStart |
wMusicValue : Word; // Position in scale. |
bVelocity : Byte; // Note velocity. |
bTimeRange : Byte; // Range to randomize start time. |
bDurRange : Byte; // Range to randomize duration. |
bVelRange : Byte; // Range to randomize velocity. |
bInversionID : Byte; // Identifies inversion group to which this note belongs |
bPlayModeFlags : Byte; // Can override part |
TDMus_IO_StyleNote = packed record |
mtGridStart: TMusic_Time ;(* when this note occurs *) |
dwVariation: DWORD; (* variation bits *) |
mtDuration: TMusic_Time; (* how long this note lasts *) |
nTimeOffset: SmallInt; (* offset from mtGridStart *) |
wMusicValue: WORD; (* Position in scale. *) |
bVelocity: BYTE2; (* Note velocity. *) |
bTimeRange: BYTE2; (* Range to randomize start time. *) |
bDurRange: BYTE2; (* Range to randomize duration. *) |
bVelRange: BYTE2; (* Range to randomize velocity. *) |
bInversionID: BYTE2; (* Identifies inversion group to which this note belongs *) |
bPlayModeFlags: BYTE2; (* Can override part *) |
end; |
DMUS_IO_STYLENOTE = TDMUS_IO_STYLENOTE; |
TDMUS_IO_STYLECURVE = record |
mtGridStart : MUSIC_TIME;// when this curve occurs |
dwVariation : DWORD; // variation bits |
mtDuration : MUSIC_TIME;// how long this curve lasts |
mtResetDuration : MUSIC_TIME;// how long after the end of the curve to reset the curve |
nTimeOffset : Smallint; // offset from mtGridStart |
nStartValue : Smallint; // curve's start value |
nEndValue : Smallint; // curve's end value |
nResetValue : Smallint; // the value to which to reset the curve |
bEventType : Byte; // type of curve |
bCurveShape : Byte; // shape of curve |
bCCData : Byte; // CC# |
bFlags : Byte; // Bit 1=TRUE means to send nResetValue. Otherwise, don't. |
// Other bits are reserved. |
TDMus_IO_StyleCurve = packed record |
mtGridStart: TMusic_Time; (* when this curve occurs *) |
dwVariation: DWORD; (* variation bits *) |
mtDuration: TMusic_Time; (* how long this curve lasts *) |
mtResetDuration: TMusic_Time; (* how long after the end of the curve to reset the curve *) |
nTimeOffset: SmallInt; (* offset from mtGridStart *) |
nStartValue: SmallInt; (* curve's start value *) |
nEndValue: SmallInt; (* curve's end value *) |
nResetValue: SmallInt; (* the value to which to reset the curve *) |
bEventType: BYTE2; (* type of curve *) |
bCurveShape: BYTE2; (* shape of curve *) |
bCCData: BYTE2; (* CC# *) |
bFlags: BYTE2; (* Bit 1=TRUE means to send nResetValue. Otherwise, don't. |
Other bits are reserved. *) |
end; |
DMUS_IO_STYLECURVE = TDMUS_IO_STYLECURVE; |
TDMUS_IO_MOTIFSETTINGS = record |
dwRepeats : DWORD; // Number of repeats. By default, 0. |
mtPlayStart : MUSIC_TIME; // Start of playback. By default, 0. |
mtLoopStart : MUSIC_TIME; // Start of looping portion. By default, 0. |
mtLoopEnd : MUSIC_TIME; // End of loop. Must be greater than mtLoopStart. By default equal to length of motif. |
dwResolution : DWORD; // Default resolution. |
TDMus_IO_MotifSettings = packed record |
dwRepeats: DWORD; (* Number of repeats. By default, 0. *) |
mtPlayStart: TMusic_Time; (* Start of playback. By default, 0. *) |
mtLoopStart: TMusic_Time; (* Start of looping portion. By default, 0. *) |
mtLoopEnd: TMusic_Time; (* End of loop. Must be greater than mtLoopStart. By default equal to length of motif. *) |
dwResolution: DWORD; (* Default resolution. *) |
end; |
DMUS_IO_MOTIFSETTINGS = TDMUS_IO_MOTIFSETTINGS; |
//#pragma pack() |
(* |
RIFF |
( |
'DMST' // Style |
<styh-ck> // Style header chunk |
<guid-ck> // Every Style has a GUID |
[<UNFO-list>] // Name, author, copyright info., comments |
[<vers-ck>] // version chunk |
<part-list>... // List of parts in the Style, used by patterns |
<pttn-list>... // List of patterns in the Style |
<DMBD-form>... // List of bands in the Style |
[<motf-list>] // List of motifs in the Style |
[<prrf-list>] // List of chord map references in the Style |
) |
// <styh-ck> |
styh |
( |
<DMUS_IO_STYLE> |
) |
// <guid-ck> |
guid |
( |
<GUID> |
) |
// <vers-ck> |
vers |
( |
<DMUS_IO_VERSION> |
) |
// <part-list> |
LIST |
( |
'part' |
<prth-ck> // Part header chunk |
[<UNFO-list>] |
[<note-ck>] // List of notes in Part |
[<crve-ck>] // List of curves in Part |
) |
// <orth-ck> |
prth |
( |
<DMUS_IO_STYLEPART> |
) |
// <note-ck> |
'note' |
( |
// sizeof DMUS_IO_STYLENOTE:DWORD |
<DMUS_IO_STYLENOTE>... |
) |
// <crve-ck> |
'crve' |
( |
// sizeof DMUS_IO_STYLECURVE:DWORD |
<DMUS_IO_STYLECURVE>... |
) |
// <pttn-list> |
LIST |
( |
'pttn' |
<ptnh-ck> // Pattern header chunk |
<rhtm-ck> // List of rhythms for chord matching |
[<UNFO-list>] |
[<mtfs-ck>] // Motif settings chunk |
<pref-list>... // List of part reference id's |
) |
// <ptnh-ck> |
ptnh |
( |
<DMUS_IO_PATTERN> |
) |
// <rhtm-ck> |
'rhtm' |
( |
// DWORD's representing rhythms for chord matching based on number |
// of measures in the pattern |
) |
// pref-list |
LIST |
( |
'pref' |
<prfc-ck> // part ref chunk |
) |
// <prfc-ck> |
prfc |
( |
<DMUS_IO_PARTREF> |
) |
// <mtfs-ck> |
mtfs |
( |
<DMUS_IO_MOTIFSETTINGS> |
) |
// <prrf-list> |
LIST |
( |
'prrf' |
// some number of <DMRF> |
) |
*) |
(* Chord and command file formats *) |
const |
// Chord and command file formats |
DMUS_FOURCC_CHORDTRACK_LIST : mmioFOURCC = ('c','o','r','d'); |
DMUS_FOURCC_CHORDTRACKHEADER_CHUNK : mmioFOURCC = ('c','r','d','h'); |
DMUS_FOURCC_CHORDTRACKBODY_CHUNK : mmioFOURCC = ('c','r','d','b'); |
DMUS_FOURCC_CHORDTRACK_LIST = Ord('c') + Ord('o') shl 8 + Ord('r') shl 16 + Ord('d') shl 24; |
DMUS_FOURCC_CHORDTRACKHEADER_CHUNK = Ord('c') + Ord('r') shl 8 + Ord('d') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_CHORDTRACKBODY_CHUNK = Ord('c') + Ord('r') shl 8 + Ord('d') shl 16 + Ord('b') shl 24; |
DMUS_FOURCC_COMMANDTRACK_CHUNK : mmioFOURCC = ('c','m','n','d'); |
DMUS_FOURCC_COMMANDTRACK_CHUNK = Ord('c') + Ord('m') shl 8 + Ord('n') shl 16 + Ord('d') shl 24; |
type |
TDMUS_IO_CHORD = record |
wszName : array[0..15] of WCHAR; // Name of the chord |
mtTime : MUSIC_TIME; // Time of this chord |
wMeasure : Word; // Measure this falls on |
bBeat : Byte; // Beat this falls on |
TDMus_IO_Chord = packed record |
wszName: array [0..15] of WCHAR; (* Name of the chord *) |
mtTime: TMusic_Time; (* Time of this chord *) |
wMeasure: WORD; (* Measure this falls on *) |
bBeat: BYTE; (* Beat this falls on *) |
end; |
DMUS_IO_CHORD = TDMUS_IO_CHORD; |
TDMUS_IO_SUBCHORD = record |
dwChordPattern : DWORD; // Notes in the subchord |
dwScalePattern : DWORD; // Notes in the scale |
dwInversionPoints : DWORD; // Where inversions can occur |
dwLevels : DWORD; // Which levels are supported by this subchord |
bChordRoot : Byte; // Root of the subchord |
bScaleRoot : Byte; // Root of the scale |
TDMus_IO_SubChord = packed record |
dwChordPattern: DWORD; (* Notes in the subchord *) |
dwScalePattern: DWORD; (* Notes in the scale *) |
dwInversionPoints: DWORD; (* Where inversions can occur *) |
dwLevels: DWORD; (* Which levels are supported by this subchord *) |
bChordRoot: BYTE; (* Root of the subchord *) |
bScaleRoot: BYTE; (* Root of the scale *) |
end; |
DMUS_IO_SUBCHORD = TDMUS_IO_SUBCHORD; |
TDMUS_IO_COMMAND = record |
mtTime : MUSIC_TIME; // Time of this command |
wMeasure : Word; // Measure this falls on |
bBeat : Byte; // Beat this falls on |
bCommand : Byte; // Command type (see #defines below) |
bGrooveLevel : Byte; // Groove level (0 if command is not a groove) |
bGrooveRange : Byte; // Groove range |
TDMus_IO_Command = packed record |
mtTime: TMusic_Time; (* Time of this command *) |
wMeasure: WORD; (* Measure this falls on *) |
bBeat: BYTE; (* Beat this falls on *) |
bCommand: BYTE; (* Command type (see #defines below) *) |
bGrooveLevel: BYTE; (* Groove level (0 if command is not a groove) *) |
bGrooveRange: BYTE; (* Groove range *) |
end; |
DMUS_IO_COMMAND = TDMUS_IO_COMMAND; |
(* |
// File io for DirectMusic Tool and ToolGraph objects |
/// |
// <cord-list> |
LIST |
( |
'cord' |
<crdh-ck> |
<crdb-ck> // Chord body chunk |
) |
// <crdh-ck> |
crdh |
( |
// Scale: dword (upper 8 bits for root, lower 24 for scale) |
) |
// <crdb-ck> |
crdb |
( |
// sizeof DMUS_IO_CHORD:dword |
<DMUS_IO_CHORD> |
// # of DMUS_IO_SUBCHORDS:dword |
// sizeof DMUS_IO_SUBCHORDS:dword |
// a number of <DMUS_IO_SUBCHORD> |
) |
// <cmnd-list> |
'cmnd' |
( |
//sizeof DMUS_IO_COMMAND: DWORD |
<DMUS_IO_COMMAND>... |
) |
*) |
(* File io for DirectMusic Tool and ToolGraph objects |
*) |
(* RIFF ids: *) |
const |
// RIFF ids: |
DMUS_FOURCC_TOOLGRAPH_FORM : mmioFOURCC = ('D','M','T','G'); |
DMUS_FOURCC_TOOL_LIST : mmioFOURCC = ('t','o','l','l'); |
DMUS_FOURCC_TOOL_FORM : mmioFOURCC = ('D','M','T','L'); |
DMUS_FOURCC_TOOL_CHUNK : mmioFOURCC = ('t','o','l','h'); |
DMUS_FOURCC_TOOLGRAPH_FORM = Ord('D') + Ord('M') shl 8 + Ord('T') shl 16 + Ord('G') shl 24; |
DMUS_FOURCC_TOOL_LIST = Ord('t') + Ord('o') shl 8 + Ord('l') shl 16 + Ord('l') shl 24; |
DMUS_FOURCC_TOOL_FORM = Ord('D') + Ord('M') shl 8 + Ord('T') shl 16 + Ord('L') shl 24; |
DMUS_FOURCC_TOOL_CHUNK = Ord('t') + Ord('o') shl 8 + Ord('l') shl 16 + Ord('h') shl 24; |
(* io structures: *) |
type |
// io structures: |
TDMUS_IO_TOOL_HEADER = record |
guidClassID : TGUID; // Class id of tool. |
lIndex : Longint; // Position in graph. |
cPChannels : DWORD; // Number of items in channels array. |
ckid : FOURCC; // chunk ID of tool's data chunk if 0 fccType valid. |
fccType : FOURCC; // list type if NULL ckid valid. |
dwPChannels : array[0..0] of DWORD; // Array of PChannels, size determined by cPChannels. |
TDMus_IO_Tool_Header = packed record |
guidClassID: TGUID; (* Class id of tool. *) |
lIndex: LongInt; (* Position in graph. *) |
cPChannels: DWORD; (* Number of items in channels array. *) |
ckid: TFourCC; (* chunk ID of tool's data chunk if 0 fccType valid. *) |
fccType: TFourCC; (* list type if NULL ckid valid. *) |
dwPChannels: array [0..0] of DWORD; (* Array of PChannels, size determined by cPChannels. *) |
end; |
DMUS_IO_TOOL_HEADER = TDMUS_IO_TOOL_HEADER; |
(* |
RIFF |
( |
'DMTG' // DirectMusic ToolGraph chunk |
[<guid-ck>] // GUID for ToolGraph |
[<vers-ck>] // Optional version info |
[<UNFO-list>] // Name, author, copyright info., comments |
<toll-list> // List of Tools |
) |
// File io for DirectMusic Band Track object |
// <guid-ck> |
'guid' |
( |
<GUID> |
) |
// <vers-ck> |
vers |
( |
<DMUS_IO_VERSION> |
) |
// <toll-list> |
LIST |
( |
'toll' // List of tools |
<DMTL-form>... // Each tool is encapsulated in a RIFF chunk |
) |
// <DMTL-form> // Tools can be embedded in a graph or stored as separate files. |
RIFF |
( |
'DMTL' |
<tolh-ck> |
[<guid-ck>] // Optional GUID for tool object instance (not to be confused with Class id in track header) |
[<vers-ck>] // Optional version info |
[<UNFO-list>] // Optional name, author, copyright info., comments |
[<data>] // Tool data. Must be a RIFF readable chunk. |
) |
// <tolh-ck> // Tool header chunk |
( |
'tolh' |
<DMUS_IO_TOOL_HEADER> // Tool header |
) |
*) |
(* File io for DirectMusic Band Track object *) |
(* RIFF ids: *) |
const |
// RIFF ids: |
DMUS_FOURCC_BANDTRACK_FORM = Ord('D') + Ord('M') shl 8 + Ord('B') shl 16 + Ord('T') shl 24; |
DMUS_FOURCC_BANDTRACK_CHUNK = Ord('b') + Ord('d') shl 8 + Ord('t') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_BANDS_LIST = Ord('l') + Ord('b') shl 8 + Ord('d') shl 16 + Ord('l') shl 24; |
DMUS_FOURCC_BAND_LIST = Ord('l') + Ord('b') shl 8 + Ord('n') shl 16 + Ord('d') shl 24; |
DMUS_FOURCC_BANDITEM_CHUNK = Ord('b') + Ord('d') shl 8 + Ord('i') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_BANDTRACK_FORM : mmioFOURCC = ('D','M','B','T'); |
DMUS_FOURCC_BANDTRACK_CHUNK : mmioFOURCC = ('b','d','t','h'); |
DMUS_FOURCC_BANDS_LIST : mmioFOURCC = ('l','b','d','l'); |
DMUS_FOURCC_BAND_LIST : mmioFOURCC = ('l','b','n','d'); |
DMUS_FOURCC_BANDITEM_CHUNK : mmioFOURCC = ('b','d','i','h'); |
type |
// io structures |
TDMUS_IO_BAND_TRACK_HEADER = record |
bAutoDownload : BOOL; // Determines if Auto-Download is enabled. |
(* io structures *) |
TDMus_IO_Band_Track_Header = packed record |
bAutoDownload: BOOL; (* Determines if Auto-Download is enabled. *) |
end; |
DMUS_IO_BAND_TRACK_HEADER = TDMUS_IO_BAND_TRACK_HEADER; |
TDMUS_IO_BAND_ITEM_HEADER = record |
lBandTime : MUSIC_TIME; // Position in track list. |
TDMus_IO_Band_Item_Header = packed record |
lBandTime: TMusic_Time; (* Position in track list. *) |
end; |
DMUS_IO_BAND_ITEM_HEADER = TDMUS_IO_BAND_ITEM_HEADER; |
(* |
RIFF |
( |
'DMBT' // DirectMusic Band Track form-type |
[<bdth-ck>] // Band track header |
[<guid-ck>] // GUID for band track |
[<vers-ck>] // Optional version info |
[<UNFO-list>] // Name, author, copyright info., comments |
<lbdl-list> // List of Band Lists |
) |
// File io for DirectMusic Band object |
/// |
// <bnth-ck> |
'bdth' |
( |
<DMUS_IO_BAND_TRACK_HEADER> |
) |
const |
// RIFF ids: |
// <guid-ck> |
'guid' |
( |
<GUID> |
) |
DMUS_FOURCC_BAND_FORM = Ord('D') + Ord('M') shl 8 + Ord('B') shl 16 + Ord('D') shl 24; |
DMUS_FOURCC_INSTRUMENTS_LIST = Ord('l') + Ord('b') shl 8 + Ord('i') shl 16 + Ord('l') shl 24; |
DMUS_FOURCC_INSTRUMENT_LIST = Ord('l') + Ord('b') shl 8 + Ord('i') shl 16 + Ord('n') shl 24; |
DMUS_FOURCC_INSTRUMENT_CHUNK = Ord('b') + Ord('i') shl 8 + Ord('n') shl 16 + Ord('s') shl 24; |
// <vers-ck> |
vers |
( |
<DMUS_IO_VERSION> |
) |
// Flags for DMUS_IO_INSTRUMENT |
/// |
DMUS_IO_INST_PATCH = (1 shl 0); // dwPatch is valid. |
DMUS_IO_INST_BANKSELECT = (1 shl 1); // dwPatch contains a valid Bank Select MSB and LSB part |
DMUS_IO_INST_ASSIGN_PATCH = (1 shl 3); // dwAssignPatch is valid |
DMUS_IO_INST_NOTERANGES = (1 shl 4); // dwNoteRanges is valid |
DMUS_IO_INST_PAN = (1 shl 5); // bPan is valid |
DMUS_IO_INST_VOLUME = (1 shl 6); // bVolume is valid |
DMUS_IO_INST_TRANSPOSE = (1 shl 7); // nTranspose is valid |
DMUS_IO_INST_GM = (1 shl 8); // Instrument is from GM collection |
DMUS_IO_INST_GS = (1 shl 9); // Instrument is from GS collection |
DMUS_IO_INST_XG = (1 shl 10); // Instrument is from XG collection |
DMUS_IO_INST_CHANNEL_PRIORITY = (1 shl 11); // dwChannelPriority is valid |
DMUS_IO_INST_USE_DEFAULT_GM_SET = (1 shl 12); // Always use the default GM set for this patch, |
// don't rely on the synth caps stating GM or GS in hardware. |
// <lbdl-list> |
LIST |
( |
'lbdl' // List of bands |
<lbnd-list> // Each band is encapsulated in a list |
) |
// <lbnd-list> |
LIST |
( |
'lbnd' |
<bdih-ck> |
<DMBD-form> // Band |
) |
// <bdih-ck> // band item header |
( |
<DMUS_IO_BAND_ITEM_HEADER> // Band item header |
) |
*) |
(* File io for DirectMusic Band object |
*) |
(* RIFF ids: *) |
const |
DMUS_FOURCC_BAND_FORM : mmioFOURCC = ('D','M','B','D'); |
DMUS_FOURCC_INSTRUMENTS_LIST : mmioFOURCC = ('l','b','i','l'); |
DMUS_FOURCC_INSTRUMENT_LIST : mmioFOURCC = ('l','b','i','n'); |
DMUS_FOURCC_INSTRUMENT_CHUNK : mmioFOURCC = ('b','i','n','s'); |
(* Flags for DMUS_IO_INSTRUMENT |
*) |
DMUS_IO_INST_PATCH = (1 shl 0); (* dwPatch is valid. *) |
DMUS_IO_INST_BANKSELECT = (1 shl 1); (* dwPatch contains a valid Bank Select MSB and LSB part *) |
DMUS_IO_INST_ASSIGN_PATCH = (1 shl 3); (* dwAssignPatch is valid *) |
DMUS_IO_INST_NOTERANGES = (1 shl 4); (* dwNoteRanges is valid *) |
DMUS_IO_INST_PAN = (1 shl 5); (* bPan is valid *) |
DMUS_IO_INST_VOLUME = (1 shl 6); (* bVolume is valid *) |
DMUS_IO_INST_TRANSPOSE = (1 shl 7); (* nTranspose is valid *) |
DMUS_IO_INST_GM = (1 shl 8); (* Instrument is from GM collection *) |
DMUS_IO_INST_GS = (1 shl 9); (* Instrument is from GS collection *) |
DMUS_IO_INST_XG = (1 shl 10); (* Instrument is from XG collection *) |
DMUS_IO_INST_CHANNEL_PRIORITY = (1 shl 11); (* dwChannelPriority is valid *) |
DMUS_IO_INST_USE_DEFAULT_GM_SET = (1 shl 12); (* Always use the default GM set for this patch, *) |
(* don't rely on the synth caps stating GM or GS in hardware. *) |
type |
// io structures |
TDMUS_IO_INSTRUMENT = record |
dwPatch : DWORD; // MSB, LSB and Program change to define instrument |
dwAssignPatch : DWORD; // MSB, LSB and Program change to assign to instrument when downloading |
dwNoteRanges : array[0..3] of DWORD; // 128 bits; one for each MIDI note instrument needs to able to play |
dwPChannel : DWORD; // PChannel instrument plays on |
dwFlags : DWORD; // DMUS_IO_INST_ flags |
bPan : Byte; // Pan for instrument |
bVolume : Byte; // Volume for instrument |
nTranspose : Smallint; // Number of semitones to transpose notes |
dwChannelPriority : DWORD; // Channel priority |
(* io structures *) |
TDMus_IO_Instruments = packed record |
dwPatch: DWORD; (* MSB, LSB and Program change to define instrument *) |
dwAssignPatch: DWORD; (* MSB, LSB and Program change to assign to instrument when downloading *) |
dwNoteRanges: array [0..3] of DWORD;(* 128 bits: one for each MIDI note instrument needs to able to play *) |
dwPChannel: DWORD; (* PChannel instrument plays on *) |
dwFlags: DWORD; (* DMUS_IO_INST_ flags *) |
bPan: BYTE; (* Pan for instrument *) |
bVolume: BYTE; (* Volume for instrument *) |
nTranspose: SmallInt; (* Number of semitones to transpose notes *) |
dwChannelPriority: DWORD; (* Channel priority *) |
end; |
DMUS_IO_INSTRUMENT = TDMUS_IO_INSTRUMENT; |
(* |
// <DMBD-form> bands can be embedded in other forms |
RIFF |
( |
'DMBD' // DirectMusic Band chunk |
[<guid-ck>] // GUID for band |
[<vers-ck>] // Optional version info |
[<UNFO-list>] // Name, author, copyright info., comments |
<lbil-list> // List of Instruments |
) |
// File io for DirectMusic Segment object |
// <guid-ck> |
'guid' |
( |
<GUID> |
) |
// <vers-ck> |
vers |
( |
<DMUS_IO_VERSION> |
) |
// <lbil-list> |
LIST |
( |
'lbil' // List of instruments |
<lbin-list> // Each instrument is encapsulated in a list |
) |
// <lbin-list> |
LIST |
( |
'lbin' |
<bins-ck> |
[<DMRF-list>] // Optional reference to DLS Collection file. |
) |
// <bins-ck> // Instrument chunk |
( |
'bins' |
<DMUS_IO_INSTRUMENT> // Instrument header |
) |
*) |
(* File io for DirectMusic Segment object *) |
(* RIFF ids: *) |
const |
// RIFF ids: |
DMUS_FOURCC_SEGMENT_FORM : mmioFOURCC = ('D','M','S','G'); |
DMUS_FOURCC_SEGMENT_CHUNK : mmioFOURCC = ('s','e','g','h'); |
DMUS_FOURCC_TRACK_LIST : mmioFOURCC = ('t','r','k','l'); |
DMUS_FOURCC_TRACK_FORM : mmioFOURCC = ('D','M','T','K'); |
DMUS_FOURCC_TRACK_CHUNK : mmioFOURCC = ('t','r','k','h'); |
DMUS_FOURCC_SEGMENT_FORM = Ord('D') + Ord('M') shl 8 + Ord('S') shl 16 + Ord('G') shl 24; |
DMUS_FOURCC_SEGMENT_CHUNK = Ord('s') + Ord('e') shl 8 + Ord('g') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_TRACK_LIST = Ord('t') + Ord('r') shl 8 + Ord('k') shl 16 + Ord('l') shl 24; |
DMUS_FOURCC_TRACK_FORM = Ord('D') + Ord('M') shl 8 + Ord('T') shl 16 + Ord('K') shl 24; |
DMUS_FOURCC_TRACK_CHUNK = Ord('t') + Ord('r') shl 8 + Ord('k') shl 16 + Ord('h') shl 24; |
(* io structures:*) |
type |
// io structures: |
TDMUS_IO_SEGMENT_HEADER = record |
dwRepeats : DWORD; // Number of repeats. By default, 0. |
mtLength : MUSIC_TIME; // Length, in music time. |
mtPlayStart : MUSIC_TIME; // Start of playback. By default, 0. |
mtLoopStart : MUSIC_TIME; // Start of looping portion. By default, 0. |
mtLoopEnd : MUSIC_TIME; // End of loop. Must be greater than dwPlayStart. By default equal to length. |
dwResolution : DWORD; // Default resolution. |
TDMus_IO_Segment_Header = packed record |
dwRepeats: DWORD; (* Number of repeats. By default, 0. *) |
mtLength: TMusic_Time; (* Length, in music time. *) |
mtPlayStart: TMusic_Time; (* Start of playback. By default, 0. *) |
mtLoopStart: TMusic_Time; (* Start of looping portion. By default, 0. *) |
mtLoopEnd: TMusic_Time; (* End of loop. Must be greater than dwPlayStart. By default equal to length. *) |
dwResolution: DWORD; (* Default resolution. *) |
end; |
DMUS_IO_SEGMENT_HEADER = TDMUS_IO_SEGMENT_HEADER; |
TDMUS_IO_TRACK_HEADER = record |
guidClassID : TGUID; // Class id of track. |
dwPosition : DWORD; // Position in track list. |
dwGroup : DWORD; // Group bits for track. |
ckid : FOURCC; // chunk ID of track's data chunk if 0 fccType valid. |
fccType : FOURCC; // list type if NULL ckid valid |
TDMus_IO_Track_Header = packed record |
guidClassID: TGUID; (* Class id of track. *) |
dwPosition: DWORD; (* Position in track list. *) |
dwGroup: DWORD; (* Group bits for track. *) |
ckid: TFourCC; (* chunk ID of track's data chunk if 0 fccType valid. *) |
fccType: TFourCC; (* list type if NULL ckid valid *) |
end; |
DMUS_IO_TRACK_HEADER = TDMUS_IO_TRACK_HEADER; |
// File io for DirectMusic reference chunk. |
// This is used to embed a reference to an object. |
(* |
RIFF |
( |
'DMSG' // DirectMusic Segment chunk |
<segh-ck> // Segment header chunk |
[<guid-ck>] // GUID for segment |
[<vers-ck>] // Optional version info |
[<UNFO-list>] // Name, author, copyright info., comments |
<trkl-list> // List of Tracks |
[<DMTG-form>] // Optional ToolGraph |
) |
// <segh-ck> |
'segh' |
( |
<DMUS_IO_SEGMENT_HEADER> |
) |
// <guid-ck> |
'guid' |
( |
<GUID> |
) |
// <vers-ck> |
vers |
( |
<DMUS_IO_VERSION> |
) |
// <trkl-list> |
LIST |
( |
'trkl' // List of tracks |
<DMTK-form>... // Each track is encapsulated in a RIFF chunk |
) |
// <DMTK-form> // Tracks can be embedded in a segment or stored as separate files. |
RIFF |
( |
'DMTK' |
<trkh-ck> |
[<guid-ck>] // Optional GUID for track object instance (not to be confused with Class id in track header) |
[<vers-ck>] // Optional version info |
[<UNFO-list>] // Optional name, author, copyright info., comments |
[<data>] // Track data. Must be a RIFF readable chunk. |
) |
// <trkh-ck> // Track header chunk |
( |
'trkh' |
<DMUS_IO_TRACK_HEADER> // Track header |
) |
*) |
(* File io for DirectMusic reference chunk. |
This is used to embed a reference to an object. |
*) |
(* RIFF ids: *) |
const |
// RIFF ids: |
DMUS_FOURCC_REF_LIST : mmioFOURCC = ('D','M','R','F'); |
DMUS_FOURCC_REF_CHUNK : mmioFOURCC = ('r','e','f','h'); |
DMUS_FOURCC_DATE_CHUNK : mmioFOURCC = ('d','a','t','e'); |
DMUS_FOURCC_NAME_CHUNK : mmioFOURCC = ('n','a','m','e'); |
DMUS_FOURCC_FILE_CHUNK : mmioFOURCC = ('f','i','l','e'); |
DMUS_FOURCC_REF_LIST = Ord('D') + Ord('M') shl 8 + Ord('R') shl 16 + Ord('F') shl 24; |
DMUS_FOURCC_REF_CHUNK = Ord('r') + Ord('e') shl 8 + Ord('f') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_DATE_CHUNK = Ord('d') + Ord('a') shl 8 + Ord('t') shl 16 + Ord('e') shl 24; |
DMUS_FOURCC_NAME_CHUNK = Ord('n') + Ord('a') shl 8 + Ord('m') shl 16 + Ord('e') shl 24; |
DMUS_FOURCC_FILE_CHUNK = Ord('f') + Ord('i') shl 8 + Ord('l') shl 16 + Ord('e') shl 24; |
type |
TDMUS_IO_REFERENCE = record |
guidClassID : TGUID; // Class id is always required. |
dwValidData : DWORD; // Flags. |
TDMus_IO_Reference = packed record |
guidClassID: TGUID; (* Class id is always required. *) |
dwValidData: DWORD; (* Flags. *) |
end; |
DMUS_IO_REFERENCE = TDMUS_IO_REFERENCE; |
(* |
LIST |
( |
'DMRF' // DirectMusic Reference chunk |
<refh-ck> // Reference header chunk |
[<guid-ck>] // Optional object GUID. |
[<date-ck>] // Optional file date. |
[<name-ck>] // Optional name. |
[<file-ck>] // Optional file name. |
[<catg-ck>] // Optional category name. |
[<vers-ck>] // Optional version info. |
) |
// Chord Maps |
// <refh-ck> |
'refh' |
( |
<DMUS_IO_REFERENCE> |
) |
// <guid-ck> |
'guid' |
( |
<GUID> |
) |
// <date-ck> |
date |
( |
<FILETIME> |
) |
// <name-ck> |
name |
( |
// Name, stored as NULL terminated string of WCHARs |
) |
// <file-ck> |
file |
( |
// File name, stored as NULL terminated string of WCHARs |
) |
// <catg-ck> |
catg |
( |
// Category name, stored as NULL terminated string of WCHARs |
) |
// <vers-ck> |
vers |
( |
<DMUS_IO_VERSION> |
) |
*) |
(* Chord Maps *) |
const |
// runtime chunks |
DMUS_FOURCC_CHORDMAP_FORM = Ord('D') + Ord('M') shl 8 + Ord('P') shl 16 + Ord('R') shl 24; |
DMUS_FOURCC_IOCHORDMAP_CHUNK = Ord('p') + Ord('e') shl 8 + Ord('r') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_SUBCHORD_CHUNK = Ord('c') + Ord('h') shl 8 + Ord('d') shl 16 + Ord('t') shl 24; |
DMUS_FOURCC_CHORDENTRY_CHUNK = Ord('c') + Ord('h') shl 8 + Ord('e') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_SUBCHORDID_CHUNK = Ord('s') + Ord('b') shl 8 + Ord('c') shl 16 + Ord('n') shl 24; |
DMUS_FOURCC_IONEXTCHORD_CHUNK = Ord('n') + Ord('c') shl 8 + Ord('r') shl 16 + Ord('d') shl 24; |
DMUS_FOURCC_NEXTCHORDSEQ_CHUNK = Ord('n') + Ord('c') shl 8 + Ord('s') shl 16 + Ord('q') shl 24; |
DMUS_FOURCC_IOSIGNPOST_CHUNK = Ord('s') + Ord('p') shl 8 + Ord('s') shl 16 + Ord('h') shl 24; |
DMUS_FOURCC_CHORDNAME_CHUNK = Ord('I') + Ord('N') shl 8 + Ord('A') shl 16 + Ord('M') shl 24; |
(* runtime chunks *) |
DMUS_FOURCC_CHORDMAP_FORM : mmioFOURCC = ('D','M','P','R'); |
DMUS_FOURCC_IOCHORDMAP_CHUNK : mmioFOURCC = ('p','e','r','h'); |
DMUS_FOURCC_SUBCHORD_CHUNK : mmioFOURCC = ('c','h','d','t'); |
DMUS_FOURCC_CHORDENTRY_CHUNK : mmioFOURCC = ('c','h','e','h'); |
DMUS_FOURCC_SUBCHORDID_CHUNK : mmioFOURCC = ('s','b','c','n'); |
DMUS_FOURCC_IONEXTCHORD_CHUNK : mmioFOURCC = ('n','c','r','d'); |
DMUS_FOURCC_NEXTCHORDSEQ_CHUNK : mmioFOURCC = ('n','c','s','q'); |
DMUS_FOURCC_IOSIGNPOST_CHUNK : mmioFOURCC = ('s','p','s','h'); |
DMUS_FOURCC_CHORDNAME_CHUNK : mmioFOURCC = ('I','N','A','M'); |
// runtime list chunks |
DMUS_FOURCC_CHORDENTRY_LIST = Ord('c') + Ord('h') shl 8 + Ord('o') shl 16 + Ord('e') shl 24; |
DMUS_FOURCC_CHORDMAP_LIST = Ord('c') + Ord('m') shl 8 + Ord('a') shl 16 + Ord('p') shl 24; |
DMUS_FOURCC_CHORD_LIST = Ord('c') + Ord('h') shl 8 + Ord('r') shl 16 + Ord('d') shl 24; |
DMUS_FOURCC_CHORDPALETTE_LIST = Ord('c') + Ord('h') shl 8 + Ord('p') shl 16 + Ord('l') shl 24; |
DMUS_FOURCC_CADENCE_LIST = Ord('c') + Ord('a') shl 8 + Ord('d') shl 16 + Ord('e') shl 24; |
DMUS_FOURCC_SIGNPOSTITEM_LIST = Ord('s') + Ord('p') shl 8 + Ord('s') shl 16 + Ord('t') shl 24; |
(* runtime list chunks *) |
DMUS_FOURCC_CHORDENTRY_LIST : mmioFOURCC = ('c','h','o','e'); |
DMUS_FOURCC_CHORDMAP_LIST : mmioFOURCC = ('c','m','a','p'); |
DMUS_FOURCC_CHORD_LIST : mmioFOURCC = ('c','h','r','d'); |
DMUS_FOURCC_CHORDPALETTE_LIST : mmioFOURCC = ('c','h','p','l'); |
DMUS_FOURCC_CADENCE_LIST : mmioFOURCC = ('c','a','d','e'); |
DMUS_FOURCC_SIGNPOSTITEM_LIST : mmioFOURCC = ('s','p','s','t'); |
DMUS_FOURCC_SIGNPOST_LIST = Ord('s') + Ord('p') shl 8 + Ord('s') shl 16 + Ord('q') shl 24; |
DMUS_FOURCC_SIGNPOST_LIST : mmioFOURCC = ('s','p','s','q'); |
// values for dwChord field of DMUS_IO_PERS_SIGNPOST |
// DMUS_SIGNPOSTF_ flags are also used in templates (DMUS_IO_SIGNPOST) |
(* values for dwChord field of DMUS_IO_PERS_SIGNPOST *) |
(* DMUS_SIGNPOSTF_ flags are also used in templates (DMUS_IO_SIGNPOST) *) |
DMUS_SIGNPOSTF_A = 1; |
DMUS_SIGNPOSTF_B = 2; |
DMUS_SIGNPOSTF_C = 4; |
15374,271 → 21495,663 |
DMUS_SIGNPOSTF_ROOT = (DMUS_SIGNPOSTF_1 or DMUS_SIGNPOSTF_2 or DMUS_SIGNPOSTF_3 or DMUS_SIGNPOSTF_4 or DMUS_SIGNPOSTF_5 or DMUS_SIGNPOSTF_6 or DMUS_SIGNPOSTF_7); |
DMUS_SIGNPOSTF_CADENCE = $8000; |
// values for dwChord field of DMUS_IO_PERS_SIGNPOST |
DMUS_SPOSTCADENCEF_1 = 2; // Use the first cadence chord. |
DMUS_SPOSTCADENCEF_2 = 4; // Use the second cadence chord. |
(* values for dwChord field of DMUS_IO_PERS_SIGNPOST *) |
DMUS_SPOSTCADENCEF_1 = 2; (* Use the first cadence chord. *) |
DMUS_SPOSTCADENCEF_2 = 4; (* Use the second cadence chord. *) |
type |
// run time data structs |
TDMUS_IO_CHORDMAP = record |
(* run time data structs *) |
TDMus_IO_ChordMap = packed record |
wszLoadName : array[0..19] of WCHAR; |
dwScalePattern : DWORD; |
dwFlags : DWORD; |
end; |
DMUS_IO_CHORDMAP = TDMUS_IO_CHORDMAP; |
TDMUS_IO_CHORDMAP_SUBCHORD = record |
TDMus_IO_ChordMap_SubChord = packed record |
dwChordPattern : DWORD; |
dwScalePattern : DWORD; |
dwInvertPattern: DWORD; |
bChordRoot : Byte; |
bScaleRoot : Byte; |
wCFlags : Word; |
dwLevels : DWORD; // parts or which subchord levels this chord supports |
bChordRoot: BYTE; |
bScaleRoot: BYTE; |
wCFlags: WORD; |
dwLevels: DWORD; (* parts or which subchord levels this chord supports *) |
end; |
DMUS_IO_CHORDMAP_SUBCHORD = TDMUS_IO_CHORDMAP_SUBCHORD; |
// Legacy name... |
DMUS_IO_PERS_SUBCHORD = TDMUS_IO_CHORDMAP_SUBCHORD; |
(* Legacy name... *) |
TDMus_IO_Pers_SubChord = TDMus_IO_ChordMap_SubChord; |
TDMUS_IO_CHORDENTRY = record |
TDMus_IO_ChordEntry = packed record |
dwFlags : DWORD; |
wConnectionID : Word; // replaces runtime "pointer to this" |
wConnectionID: WORD; (* replaces runtime "pointer to this" *) |
end; |
DMUS_IO_CHORDENTRY = TDMUS_IO_CHORDENTRY; |
TDMUS_IO_NEXTCHORD = record |
TDMus_IO_NextChord = packed record |
dwFlags : DWORD; |
nWeight : Word; |
wMinBeats : Word; |
wMaxBeats : Word; |
wConnectionID : Word; // points to an ioChordEntry |
nWeight: WORD; |
wMinBeats: WORD; |
wMaxBeats: WORD; |
wConnectionID: WORD; (* points to an ioChordEntry *) |
end; |
DMUS_IO_NEXTCHORD = TDMUS_IO_NEXTCHORD; |
TDMUS_IO_CHORDMAP_SIGNPOST = record |
dwChords : DWORD; // 1bit per group |
TDMus_IO_ChordMap_SignPost = packed record |
dwChords: DWORD; (* 1bit per group *) |
dwFlags : DWORD; |
end; |
DMUS_IO_CHORDMAP_SIGNPOST = TDMUS_IO_CHORDMAP_SIGNPOST; |
// Legacy name... |
DMUS_IO_PERS_SIGNPOST = TDMUS_IO_CHORDMAP_SIGNPOST; |
(* Legacy name... *) |
TDMus_IO_Pers_SignPost = TDMus_IO_ChordMap_SignPost; |
(* |
RIFF |
( |
'DMPR' |
<perh-ck> // Chord map header chunk |
[<guid-ck>] // guid chunk |
[<vers-ck>] // version chunk (two DWORDS) |
[<UNFO-list>] // Unfo chunk |
<chdt-ck> // subchord database |
<chpl-list> // chord palette |
<cmap-list> // chord map |
<spsq-list> // signpost list |
) |
<cmap-list> ::= LIST('cmap' <choe-list> ) |
<choe-list> ::= LIST('choe' |
<cheh-ck> // chord entry data |
<chrd-list> // chord definition |
<ncsq-ck> // connecting(next) chords |
) |
<chrd-list> ::= LIST('chrd' |
<INAM-ck> // name of chord in wide char format |
<sbcn-ck> // list of subchords composing chord |
) |
<chpl-list> ::= LIST('chpl' |
<chrd-list> ... // chord definition |
) |
<spsq-list> ::== LIST('spsq' <spst-list> ... ) |
<spst-list> ::= LIST('spst' |
<spsh-ck> |
<chrd-list> |
[<cade-list>] |
) |
<cade-list> ::= LIST('cade' <chrd-list> ...) |
<perh-ck> ::= perh(<DMUS_IO_CHORDMAP>) |
<chdt-ck> ::= chdt(<cbChordSize::WORD> |
<DMUS_IO_PERS_SUBCHORD> ... ) |
<cheh-ck> ::= cheh(<DMUS_IO_CHORDENTRY>) |
<sbcn-ck> ::= sbcn(<cSubChordID:WORD> ...) |
<ncsq-ck> ::= ncsq(<wNextChordSize:WORD> |
<DMUS_IO_NEXTCHORD>...) |
<spsh-ck> ::= spsh(<DMUS_IO_PERS_SIGNPOST>) |
*) |
(* Signpost tracks *) |
const |
// Signpost tracks |
DMUS_FOURCC_SIGNPOST_TRACK_CHUNK = Ord('s') + Ord('g') shl 8 + Ord('n') shl 16 + Ord('p') shl 24; |
DMUS_FOURCC_SIGNPOST_TRACK_CHUNK : mmioFOURCC = ( 's', 'g', 'n', 'p' ); |
type |
TDMUS_IO_SIGNPOST = record |
mtTime : MUSIC_TIME; |
TDMus_IO_SignPost = packed record |
mtTime: TMusic_Time; |
dwChords : DWORD; |
wMeasure : Word; |
wMeasure: WORD; |
end; |
DMUS_IO_SIGNPOST = TDMUS_IO_SIGNPOST; |
(* |
// <sgnp-list> |
'sgnp' |
( |
//sizeof DMUS_IO_SIGNPOST: DWORD |
<DMUS_IO_SIGNPOST>... |
) |
*) |
const |
DMUS_FOURCC_MUTE_CHUNK = Ord('m') + Ord('u') shl 8 + Ord('t') shl 16 + Ord('e') shl 24; |
DMUS_FOURCC_MUTE_CHUNK : mmioFOURCC = ('m','u','t','e'); |
type |
TDMUS_IO_MUTE = record |
mtTime : MUSIC_TIME; |
TDMus_IO_Mute = packed record |
mtTime: TMusic_Time; |
dwPChannel : DWORD; |
dwPChannelMap : DWORD; |
end; |
DMUS_IO_MUTE = TDMUS_IO_MUTE; |
// Used for both style and chord map tracks |
const |
DMUS_FOURCC_TIME_STAMP_CHUNK = Ord('s') + Ord('t') shl 8 + Ord('m') shl 16 + Ord('p') shl 24; |
(* |
// Style tracks |
DMUS_FOURCC_STYLE_TRACK_LIST = Ord('s') + Ord('t') shl 8 + Ord('t') shl 16 + Ord('r') shl 24; |
DMUS_FOURCC_STYLE_REF_LIST = Ord('s') + Ord('t') shl 8 + Ord('r') shl 16 + Ord('f') shl 24; |
// <mute-list> |
'mute' |
( |
//sizeof DMUS_IO_MUTE:DWORD |
<DMUS_IO_MUTE>... |
) |
// Chord map tracks |
DMUS_FOURCC_PERS_TRACK_LIST = Ord('p') + Ord('f') shl 8 + Ord('t') shl 16 + Ord('r') shl 24; |
DMUS_FOURCC_PERS_REF_LIST = Ord('p') + Ord('f') shl 8 + Ord('r') shl 16 + Ord('f') shl 24; |
DMUS_FOURCC_TEMPO_TRACK = Ord('t') + Ord('e') shl 8 + Ord('t') shl 16 + Ord('r') shl 24; |
DMUS_FOURCC_SEQ_TRACK = Ord('s') + Ord('e') shl 8 + Ord('q') shl 16 + Ord('t') shl 24; |
DMUS_FOURCC_SEQ_LIST = Ord('e') + Ord('v') shl 8 + Ord('t') shl 16 + Ord('l') shl 24; |
DMUS_FOURCC_CURVE_LIST = Ord('c') + Ord('u') shl 8 + Ord('r') shl 16 + Ord('l') shl 24; |
DMUS_FOURCC_SYSEX_TRACK = Ord('s') + Ord('y') shl 8 + Ord('e') shl 16 + Ord('x') shl 24; |
DMUS_FOURCC_TIMESIGNATURE_TRACK = Ord('t') + Ord('i') shl 8 + Ord('m') shl 16 + Ord('s') shl 24; |
implementation |
*) |
const |
DDrawLib = 'DDraw.dll'; |
D3DRMLib = 'D3DRM.dll'; |
D3DXofLib = 'd3dxof.dll'; |
DInputLib = 'DInput.dll'; |
DPlayXLib = 'DPlayX.dll'; |
DSetupLib = 'DSetup.dll'; |
DSoundLib = 'DSound.dll'; |
(* Used for both style and chord map tracks *) |
DMUS_FOURCC_TIME_STAMP_CHUNK : mmioFOURCC = ('s', 't', 'm', 'p'); |
{ DirectDraw } |
(* Style tracks *) |
DMUS_FOURCC_STYLE_TRACK_LIST : mmioFOURCC = ('s', 't', 't', 'r'); |
DMUS_FOURCC_STYLE_REF_LIST : mmioFOURCC = ('s', 't', 'r', 'f'); |
(* |
// <sttr-list> |
LIST('sttr' |
( |
// some number of <strf-list> |
) |
// <strf-list> |
LIST('strf' |
( |
<stmp-ck> |
<DMRF> |
) |
// <stmp-ck> defined in ..\dmcompos\dmcompp.h |
*) |
(* Chord map tracks *) |
DMUS_FOURCC_PERS_TRACK_LIST : mmioFOURCC = ('p', 'f', 't', 'r'); |
DMUS_FOURCC_PERS_REF_LIST : mmioFOURCC = ('p', 'f', 'r', 'f'); |
(* |
// <pftr-list> |
LIST('pftr' |
( |
// some number of <pfrf-list> |
) |
// <pfrf-list> |
LIST('pfrf' |
( |
<stmp-ck> |
<DMRF> |
) |
// <stmp-ck> |
'stmp' |
( |
// time:DWORD |
) |
*) |
DMUS_FOURCC_TEMPO_TRACK : mmioFOURCC = ('t','e','t','r'); |
(* |
// tempo list |
'tetr' |
( |
// sizeof DMUS_IO_TEMPO_ITEM: DWORD |
<DMUS_IO_TEMPO_ITEM>... |
) |
*) |
DMUS_FOURCC_SEQ_TRACK : mmioFOURCC = ('s','e','q','t'); |
DMUS_FOURCC_SEQ_LIST : mmioFOURCC = ('e','v','t','l'); |
DMUS_FOURCC_CURVE_LIST : mmioFOURCC = ('c','u','r','l'); |
(* |
// sequence track |
'seqt' |
( |
// sequence list |
'evtl' |
( |
// sizeof DMUS_IO_SEQ_ITEM: DWORD |
<DMUS_IO_SEQ_ITEM>... |
) |
// curve list |
'curl' |
( |
// sizeof DMUS_IO_CURVE_ITEM: DWORD |
<DMUS_IO_CURVE_ITEM>... |
) |
) |
*) |
DMUS_FOURCC_SYSEX_TRACK : mmioFOURCC = ('s','y','e','x'); |
(* |
// sysex track |
'syex' |
( |
// list of: |
// { |
// <DMUS_IO_SYSEX_ITEM> |
// sys-ex: data |
// }... |
) |
*) |
DMUS_FOURCC_TIMESIGNATURE_TRACK : mmioFOURCC = ('t','i','m','s'); |
(* |
// time signature track |
'tims' |
( |
// size of DMUS_IO_TIMESIGNATURE_ITEM : DWORD |
<DMUS_IO_TIMESIGNATURE_ITEM>... |
) |
*) |
(*************************************************************************** |
* * |
* DMusBuff.h -- This module defines the buffer format for DirectMusic * |
* Shared file between user mode and kernel mode components * |
* * |
* Copyright (c) 1998, Microsoft Corp. All rights reserved. * |
* * |
***************************************************************************) |
(* The number of bytes to allocate for an event with 'cb' data bytes. |
*) |
function QWORD_ALIGN(x: DWORD) : DWORD; |
function DMUS_EVENT_SIZE(cb: DWORD) : DWORD; |
Implementation |
//DirectDraw file |
{ |
#define GET_WHQL_YEAR( dwWHQLLevel ) \ |
( (dwWHQLLevel) / 0x10000 ) |
#define GET_WHQL_MONTH( dwWHQLLevel ) \ |
( ( (dwWHQLLevel) / 0x100 ) & 0x00ff ) |
#define GET_WHQL_DAY( dwWHQLLevel ) \ |
( (dwWHQLLevel) & 0xff ) |
} |
function GET_WHQL_YEAR(dwWHQLLevel: DWORD): DWORD; |
begin |
Result := dwWHQLLevel div $10000; |
Result := (dwWHQLLevel) div $10000; |
end; |
function GET_WHQL_MONTH(dwWHQLLevel: DWORD): DWORD; |
begin |
Result := (dwWHQLLevel div $100) and $FF; |
Result := ( (dwWHQLLevel) div $100 ) and $00ff; |
end; |
function GET_WHQL_DAY(dwWHQLLevel: DWORD): DWORD; |
begin |
Result := dwWHQLLevel and $FF; |
Result := (dwWHQLLevel) and $ff; |
end; |
function DirectDrawEnumerateA; external DDrawLib; |
function DirectDrawEnumerateW; external DDrawLib; |
function DirectDrawEnumerate; external DDrawLib name 'DirectDrawEnumerateA'; |
function DirectDrawEnumerateExA; external DDrawLib; |
function DirectDrawEnumerateExW; external DDrawLib; |
function DirectDrawEnumerateEx; external DDrawLib name 'DirectDrawEnumerateExA'; |
function MAKEFOURCC(ch0, ch1, ch2, ch3: Char) : DWORD; |
begin |
Result := DWORD(byte(ch0) shl 0) or |
DWORD(byte(ch1) shl 8) or |
DWORD(byte(ch2) shl 16) or |
DWORD(byte(ch3) shl 24); |
end; |
function DirectDrawCreate; external DDrawLib; |
function DirectDrawCreateEx; external DDrawLib; |
function DirectDrawCreateClipper; external DDrawLib; |
function DDErrorString(Value: HResult) : string; |
begin |
case Value of |
DD_OK: Result := 'The request completed successfully.'; |
DDERR_ALREADYINITIALIZED: Result := 'This object is already initialized.'; |
DDERR_BLTFASTCANTCLIP: Result := ' if a clipper object is attached to the source surface passed into a BltFast call.'; |
DDERR_CANNOTATTACHSURFACE: Result := 'This surface can not be attached to the requested surface.'; |
DDERR_CANNOTDETACHSURFACE: Result := 'This surface can not be detached from the requested surface.'; |
DDERR_CANTCREATEDC: Result := 'Windows can not create any more DCs.'; |
DDERR_CANTDUPLICATE: Result := 'Cannot duplicate primary & 3D surfaces, or surfaces that are implicitly created.'; |
DDERR_CLIPPERISUSINGHWND: Result := 'An attempt was made to set a cliplist for a clipper object that is already monitoring an hwnd.'; |
DDERR_COLORKEYNOTSET: Result := 'No src color key specified for this operation.'; |
DDERR_CURRENTLYNOTAVAIL: Result := 'Support is currently not available.'; |
DDERR_DIRECTDRAWALREADYCREATED: Result := 'A DirectDraw object representing this driver has already been created for this process.'; |
DDERR_EXCEPTION: Result := 'An exception was encountered while performing the requested operation.'; |
DDERR_EXCLUSIVEMODEALREADYSET: Result := 'An attempt was made to set the cooperative level when it was already set to exclusive.'; |
DDERR_GENERIC: Result := 'Generic failure.'; |
DDERR_HEIGHTALIGN: Result := 'Height of rectangle provided is not a multiple of reqd alignment.'; |
DDERR_HWNDALREADYSET: Result := 'The CooperativeLevel HWND has already been set. It can not be reset while the process has surfaces or palettes created.'; |
DDERR_HWNDSUBCLASSED: Result := 'HWND used by DirectDraw CooperativeLevel has been subclassed, this prevents DirectDraw from restoring state.'; |
DDERR_IMPLICITLYCREATED: Result := 'This surface can not be restored because it is an implicitly created surface.'; |
DDERR_INCOMPATIBLEPRIMARY: Result := 'Unable to match primary surface creation request with existing primary surface.'; |
DDERR_INVALIDCAPS: Result := 'One or more of the caps bits passed to the callback are incorrect.'; |
DDERR_INVALIDCLIPLIST: Result := 'DirectDraw does not support the provided cliplist.'; |
DDERR_INVALIDDIRECTDRAWGUID: Result := 'The GUID passed to DirectDrawCreate is not a valid DirectDraw driver identifier.'; |
DDERR_INVALIDMODE: Result := 'DirectDraw does not support the requested mode.'; |
DDERR_INVALIDOBJECT: Result := 'DirectDraw received a pointer that was an invalid DIRECTDRAW object.'; |
DDERR_INVALIDPARAMS: Result := 'One or more of the parameters passed to the function are incorrect.'; |
DDERR_INVALIDPIXELFORMAT: Result := 'The pixel format was invalid as specified.'; |
DDERR_INVALIDPOSITION: Result := 'Returned when the position of the overlay on the destination is no longer legal for that destination.'; |
DDERR_INVALIDRECT: Result := 'Rectangle provided was invalid.'; |
DDERR_LOCKEDSURFACES: Result := 'Operation could not be carried out because one or more surfaces are locked.'; |
DDERR_NO3D: Result := 'There is no 3D present.'; |
DDERR_NOALPHAHW: Result := 'Operation could not be carried out because there is no alpha accleration hardware present or available.'; |
DDERR_NOBLTHW: Result := 'No blitter hardware present.'; |
DDERR_NOCLIPLIST: Result := 'No cliplist available.'; |
DDERR_NOCLIPPERATTACHED: Result := 'No clipper object attached to surface object.'; |
DDERR_NOCOLORCONVHW: Result := 'Operation could not be carried out because there is no color conversion hardware present or available.'; |
DDERR_NOCOLORKEY: Result := 'Surface does not currently have a color key'; |
DDERR_NOCOLORKEYHW: Result := 'Operation could not be carried out because there is no hardware support of the destination color key.'; |
DDERR_NOCOOPERATIVELEVELSET: Result := 'Create function called without DirectDraw object method SetCooperativeLevel being called.'; |
DDERR_NODC: Result := 'No DC was ever created for this surface.'; |
DDERR_NODDROPSHW: Result := 'No DirectDraw ROP hardware.'; |
DDERR_NODIRECTDRAWHW: Result := 'A hardware-only DirectDraw object creation was attempted but the driver did not support any hardware.'; |
DDERR_NOEMULATION: Result := 'Software emulation not available.'; |
DDERR_NOEXCLUSIVEMODE: Result := 'Operation requires the application to have exclusive mode but the application does not have exclusive mode.'; |
DDERR_NOFLIPHW: Result := 'Flipping visible surfaces is not supported.'; |
DDERR_NOGDI: Result := 'There is no GDI present.'; |
DDERR_NOHWND: Result := 'Clipper notification requires an HWND or no HWND has previously been set as the CooperativeLevel HWND.'; |
DDERR_NOMIRRORHW: Result := 'Operation could not be carried out because there is no hardware present or available.'; |
DDERR_NOOVERLAYDEST: Result := 'Returned when GetOverlayPosition is called on an overlay that UpdateOverlay has never been called on to establish a destination.'; |
DDERR_NOOVERLAYHW: Result := 'Operation could not be carried out because there is no overlay hardware present or available.'; |
DDERR_NOPALETTEATTACHED: Result := 'No palette object attached to this surface.'; |
DDERR_NOPALETTEHW: Result := 'No hardware support for 16 or 256 color palettes.'; |
DDERR_NORASTEROPHW: Result := 'Operation could not be carried out because there is no appropriate raster op hardware present or available.'; |
DDERR_NOROTATIONHW: Result := 'Operation could not be carried out because there is no rotation hardware present or available.'; |
DDERR_NOSTRETCHHW: Result := 'Operation could not be carried out because there is no hardware support for stretching.'; |
DDERR_NOT4BITCOLOR: Result := 'DirectDrawSurface is not in 4 bit color palette and the requested operation requires 4 bit color palette.'; |
DDERR_NOT4BITCOLORINDEX: Result := 'DirectDrawSurface is not in 4 bit color index palette and the requested operation requires 4 bit color index palette.'; |
DDERR_NOT8BITCOLOR: Result := 'DirectDrawSurface is not in 8 bit color mode and the requested operation requires 8 bit color.'; |
DDERR_NOTAOVERLAYSURFACE: Result := 'Returned when an overlay member is called for a non-overlay surface.'; |
DDERR_NOTEXTUREHW: Result := 'Operation could not be carried out because there is no texture mapping hardware present or available.'; |
DDERR_NOTFLIPPABLE: Result := 'An attempt has been made to flip a surface that is not flippable.'; |
DDERR_NOTFOUND: Result := 'Requested item was not found.'; |
DDERR_NOTLOCKED: Result := 'Surface was not locked. An attempt to unlock a surface that was not locked at all, or by this process, has been attempted.'; |
DDERR_NOTPALETTIZED: Result := 'The surface being used is not a palette-based surface.'; |
DDERR_NOVSYNCHW: Result := 'Operation could not be carried out because there is no hardware support for vertical blank synchronized operations.'; |
DDERR_NOZBUFFERHW: Result := 'Operation could not be carried out because there is no hardware support for zbuffer blitting.'; |
DDERR_NOZOVERLAYHW: Result := 'Overlay surfaces could not be z layered based on their BltOrder because the hardware does not support z layering of overlays.'; |
DDERR_OUTOFCAPS: Result := 'The hardware needed for the requested operation has already been allocated.'; |
DDERR_OUTOFMEMORY: Result := 'DirectDraw does not have enough memory to perform the operation.'; |
DDERR_OUTOFVIDEOMEMORY: Result := 'DirectDraw does not have enough memory to perform the operation.'; |
DDERR_OVERLAYCANTCLIP: Result := 'The hardware does not support clipped overlays.'; |
DDERR_OVERLAYCOLORKEYONLYONEACTIVE: Result := 'Can only have ony color key active at one time for overlays.'; |
DDERR_OVERLAYNOTVISIBLE: Result := 'Returned when GetOverlayPosition is called on a hidden overlay.'; |
DDERR_PALETTEBUSY: Result := 'Access to this palette is being refused because the palette is already locked by another thread.'; |
DDERR_PRIMARYSURFACEALREADYEXISTS: Result := 'This process already has created a primary surface.'; |
DDERR_REGIONTOOSMALL: Result := 'Region passed to Clipper::GetClipList is too small.'; |
DDERR_SURFACEALREADYATTACHED: Result := 'This surface is already attached to the surface it is being attached to.'; |
DDERR_SURFACEALREADYDEPENDENT: Result := 'This surface is already a dependency of the surface it is being made a dependency of.'; |
DDERR_SURFACEBUSY: Result := 'Access to this surface is being refused because the surface is already locked by another thread.'; |
DDERR_SURFACEISOBSCURED: Result := 'Access to surface refused because the surface is obscured.'; |
DDERR_SURFACELOST: Result := 'Access to this surface is being refused because the surface memory is gone. The DirectDrawSurface object representing this surface should have Restore called on it.'; |
DDERR_SURFACENOTATTACHED: Result := 'The requested surface is not attached.'; |
DDERR_TOOBIGHEIGHT: Result := 'Height requested by DirectDraw is too large.'; |
DDERR_TOOBIGSIZE: Result := 'Size requested by DirectDraw is too large, but the individual height and width are OK.'; |
DDERR_TOOBIGWIDTH: Result := 'Width requested by DirectDraw is too large.'; |
DDERR_UNSUPPORTED: Result := 'Action not supported.'; |
DDERR_UNSUPPORTEDFORMAT: Result := 'FOURCC format requested is unsupported by DirectDraw.'; |
DDERR_UNSUPPORTEDMASK: Result := 'Bitmask in the pixel format requested is unsupported by DirectDraw.'; |
DDERR_VERTICALBLANKINPROGRESS: Result := 'Vertical blank is in progress.'; |
DDERR_WASSTILLDRAWING: Result := 'Informs DirectDraw that the previous Blt which is transfering information to or from this Surface is incomplete.'; |
DDERR_WRONGMODE: Result := 'This surface can not be restored because it was created in a different mode.'; |
DDERR_XALIGN: Result := 'Rectangle provided was not horizontally aligned on required boundary.'; |
// new: |
DDERR_OVERLAPPINGRECTS: Result := 'Operation could not be carried out because the source and destination rectangles are on the same surface and overlap each other.'; |
DDERR_INVALIDSTREAM: Result := 'The specified stream contains invalid data'; |
DDERR_UNSUPPORTEDMODE: Result := 'The display is currently in an unsupported mode'; |
DDERR_NOMIPMAPHW: Result := 'Operation could not be carried out because there is no mip-map texture mapping hardware present or available.'; |
DDERR_INVALIDSURFACETYPE: Result := 'The requested action could not be performed because the surface was of the wrong type.'; |
DDERR_NOOPTIMIZEHW: Result := 'Device does not support optimized surfaces, therefore no video memory optimized surfaces'; |
DDERR_NOTLOADED: Result := 'Surface is an optimized surface, but has not yet been allocated any memory'; |
DDERR_NOFOCUSWINDOW: Result := 'Attempt was made to create or set a device window without first setting the focus window'; |
DDERR_DCALREADYCREATED: Result := 'A DC has already been returned for this surface. Only one DC can be retrieved per surface.'; |
DDERR_NONONLOCALVIDMEM: Result := 'An attempt was made to allocate non-local video memory from a device that does not support non-local video memory.'; |
DDERR_CANTPAGELOCK: Result := 'The attempt to page lock a surface failed.'; |
DDERR_CANTPAGEUNLOCK: Result := 'The attempt to page unlock a surface failed.'; |
DDERR_NOTPAGELOCKED: Result := 'An attempt was made to page unlock a surface with no outstanding page locks.'; |
DDERR_MOREDATA: Result := 'There is more data available than the specified buffer size could hold'; |
DDERR_EXPIRED: Result := 'The data has expired and is therefore no longer valid.'; |
DDERR_VIDEONOTACTIVE: Result := 'The video port is not active'; |
DDERR_DEVICEDOESNTOWNSURFACE: Result := 'Surfaces created by one direct draw device cannot be used directly by another direct draw device.'; |
DDERR_NOTINITIALIZED: Result := 'An attempt was made to invoke an interface member of a DirectDraw object created by CoCreateInstance() before it was initialized.'; |
else Result := 'Unrecognized Error'; |
end; |
end; |
{ Direct3D } |
//Direct3D file |
function D3DVALP(val: TD3DValue; prec: Integer): TD3DValue; |
function DXFileErrorString(Value: HResult) : string; |
begin |
Result := val; |
case Value of |
DXFILE_OK: Result := 'Command completed successfully. Equivalent to DD_OK.'; |
DXFILEERR_BADVALUE: Result := 'Parameter is invalid.'; |
DXFILEERR_BADTYPE: Result := 'Object type is invalid.'; |
DXFILEERR_BADALLOC: Result := 'Memory allocation failed.'; |
DXFILEERR_NOTFOUND: Result := 'Object could not be found.'; |
DXFILEERR_FILENOTFOUND: Result := 'File could not be found.'; |
DXFILEERR_RESOURCENOTFOUND: Result := 'Resource could not be found.'; |
DXFILEERR_URLNOTFOUND: Result := 'URL could not be found.'; |
DXFILEERR_BADRESOURCE: Result := 'Resource is invalid.'; |
DXFILEERR_BADFILETYPE: Result := 'File is not a DirectX file.'; |
DXFILEERR_BADFILEVERSION: Result := 'File version is not valid.'; |
DXFILEERR_BADFILEFLOATSIZE: Result := 'Floating-point size is invalid.'; |
DXFILEERR_BADFILE: Result := 'File is invalid.'; |
DXFILEERR_PARSEERROR: Result := 'File could not be parsed.'; |
DXFILEERR_BADARRAYSIZE: Result := 'Array size is invalid.'; |
DXFILEERR_BADDATAREFERENCE: Result := 'Data reference is invalid.'; |
DXFILEERR_NOMOREOBJECTS: Result := 'All objects have been enumerated.'; |
DXFILEERR_NOMOREDATA: Result := 'No further data is available.'; |
else Result := 'Unrecognized Error'; |
end; |
end; |
function D3DVAL(val: TD3DValue): TD3DValue; |
function D3DFVF_TEXCOORDSIZE3(CoordIndex: DWORD) : DWORD; |
begin |
Result := (D3DFVF_TEXTUREFORMAT3 shl (CoordIndex*2 + 16)); |
end; |
function D3DFVF_TEXCOORDSIZE2(CoordIndex: DWORD) : DWORD; |
begin |
Result := (D3DFVF_TEXTUREFORMAT2); |
end; |
function D3DFVF_TEXCOORDSIZE4(CoordIndex: DWORD) : DWORD; |
begin |
Result := (D3DFVF_TEXTUREFORMAT4 shl (CoordIndex*2 + 16)); |
end; |
function D3DFVF_TEXCOORDSIZE1(CoordIndex: DWORD) : DWORD; |
begin |
Result := (D3DFVF_TEXTUREFORMAT1 shl (CoordIndex*2 + 16)); |
end; |
function D3DVal(val: variant) : float; |
begin |
Result := val; |
end; |
function D3DDivide(a, b: TD3DValue): TD3DValue; |
function D3DDivide(a,b: double) : float; |
begin |
Result := a / b; |
end; |
function D3DMultiply(a, b: TD3DValue): TD3DValue; |
function D3DMultiply(a,b: double) : float; |
begin |
Result := a * b; |
end; |
function CI_GETALPHA(ci: Integer): Byte; |
// #define CI_GETALPHA(ci) ((ci) >> 24) |
function CI_GETALPHA(ci: DWORD) : DWORD; |
begin |
Result := ci shr 24; |
end; |
function CI_GETINDEX(ci: Integer): Word; |
// #define CI_GETINDEX(ci) (((ci) >> 8) & 0xffff) |
function CI_GETINDEX(ci: DWORD) : DWORD; |
begin |
Result := ci shr 8; |
Result := (ci shr 8) and $ffff; |
end; |
function CI_GETFRACTION(ci: Integer): Byte; |
// #define CI_GETFRACTION(ci) ((ci) & 0xff) |
function CI_GETFRACTION(ci: DWORD) : DWORD; |
begin |
Result := ci; |
Result := ci and $ff; |
end; |
function CI_ROUNDINDEX(ci: Integer): Integer; |
// #define CI_ROUNDINDEX(ci) CI_GETINDEX((ci) + 0x80) |
function CI_ROUNDINDEX(ci: DWORD) : DWORD; |
begin |
Result := CI_GETINDEX(ci)+$80; |
Result := CI_GETINDEX(ci + $80); |
end; |
function CI_MASKALPHA(ci: Integer): Integer; |
// #define CI_MASKALPHA(ci) ((ci) & 0xffffff) |
function CI_MASKALPHA(ci: DWORD) : DWORD; |
begin |
Result := ci and $FFFFFF; |
Result := ci and $ffffff; |
end; |
function CI_MAKE(a: Byte; i: Word; f: Byte): Integer; |
// #define CI_MAKE(a, i, f) (((a) << 24) | ((i) << 8) | (f)) |
function CI_MAKE(a,i,f: DWORD) : DWORD; |
begin |
Result := (a shl 24) or (i shl 8) or f; |
end; |
function RGBA_GETALPHA(rgb: TD3DColor): Byte; |
// #define RGBA_GETALPHA(rgb) ((rgb) >> 24) |
function RGBA_GETALPHA(rgb: TD3DColor) : DWORD; |
begin |
Result := rgb shr 24; |
end; |
function RGBA_GETRED(rgb: TD3DColor): Byte; |
// #define RGBA_GETRED(rgb) (((rgb) >> 16) & 0xff) |
function RGBA_GETRED(rgb: TD3DColor) : DWORD; |
begin |
Result := rgb shr 16; |
Result := (rgb shr 16) and $ff; |
end; |
function RGBA_GETGREEN(rgb: TD3DColor): Byte; |
// #define RGBA_GETGREEN(rgb) (((rgb) >> 8) & 0xff) |
function RGBA_GETGREEN(rgb: TD3DColor) : DWORD; |
begin |
Result := rgb shr 8; |
Result := (rgb shr 8) and $ff; |
end; |
function RGBA_GETBLUE(rgb: TD3DColor): Byte; |
// #define RGBA_GETBLUE(rgb) ((rgb) & 0xff) |
function RGBA_GETBLUE(rgb: TD3DColor) : DWORD; |
begin |
Result := rgb; |
Result := rgb and $ff; |
end; |
function RGBA_MAKE(r, g, b, a: Byte): TD3DColor; |
// #define RGBA_MAKE(r, g, b, a) ((TD3DColor) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))) |
function RGBA_MAKE(r, g, b, a: DWORD) : TD3DColor; |
begin |
Result := (a shl 24) or (r shl 16) or (g shl 8) or b; |
end; |
function D3DRGB(r, g, b: TD3DValue): TD3DColor; |
// #define D3DRGB(r, g, b) \ |
// (0xff000000L | (((long)((r) * 255)) << 16) | (((long)((g) * 255)) << 8) | (long)((b) * 255)) |
function D3DRGB(r, g, b: float) : TD3DColor; |
begin |
Result := $FF000000 or (Trunc(r*255) shl 16) or (Trunc(g*255) shl 8) or |
(Trunc(b*255)); |
Result := $ff000000 or (round(r * 255) shl 16) |
or (round(g * 255) shl 8) |
or round(b * 255); |
end; |
function D3DRGBA(r, g, b, a: TD3DValue): TD3DColor; |
// #define D3DRGBA(r, g, b, a) \ |
// ( (((long)((a) * 255)) << 24) | (((long)((r) * 255)) << 16) \ |
// | (((long)((g) * 255)) << 8) | (long)((b) * 255) \ |
// ) |
function D3DRGBA(r, g, b, a: float) : TD3DColor; |
begin |
Result := (Trunc(a*255) shl 24) or (Trunc(r*255) shl 16) or (Trunc(g*255) shl 8) or |
(Trunc(b*255)); |
Result := (round(a * 255) shl 24) or (round(r * 255) shl 16) |
or (round(g * 255) shl 8) |
or round(b * 255); |
end; |
function RGB_GETRED(rgb: TD3DColor): Byte; |
// #define RGB_GETRED(rgb) (((rgb) >> 16) & 0xff) |
function RGB_GETRED(rgb: TD3DColor) : DWORD; |
begin |
Result := rgb shr 16; |
Result := (rgb shr 16) and $ff; |
end; |
function RGB_GETGREEN(rgb: TD3DColor): Byte; |
// #define RGB_GETGREEN(rgb) (((rgb) >> 8) & 0xff) |
function RGB_GETGREEN(rgb: TD3DColor) : DWORD; |
begin |
Result := rgb shr 8; |
Result := (rgb shr 8) and $ff; |
end; |
function RGB_GETBLUE(rgb: TD3DColor): Byte; |
// #define RGB_GETBLUE(rgb) ((rgb) & 0xff) |
function RGB_GETBLUE(rgb: TD3DColor) : DWORD; |
begin |
Result := rgb; |
Result := rgb and $ff; |
end; |
function RGBA_SETALPHA(rgba: TD3DColor; x: Byte): TD3DColor; |
// #define RGBA_SETALPHA(rgba, x) (((x) << 24) | ((rgba) & 0x00ffffff)) |
function RGBA_SETALPHA(rgba: TD3DColor; x: DWORD) : TD3DColor; |
begin |
Result := (x shl 24) or (rgba and $00FFFFFF); |
Result := (x shl 24) or (rgba and $00ffffff); |
end; |
function RGB_MAKE(r, g, b: Byte): TD3DColor; |
// #define RGB_MAKE(r, g, b) ((TD3DColor) (((r) << 16) | ((g) << 8) | (b))) |
function RGB_MAKE(r, g, b: DWORD) : TD3DColor; |
begin |
Result := (r shl 16) or (g shl 8) or b; |
end; |
// #define RGBA_TORGB(rgba) ((TD3DColor) ((rgba) & 0xffffff)) |
function RGBA_TORGB(rgba: TD3DColor): TD3DColor; |
begin |
Result := rgba and $00FFFFFF; |
Result := rgba and $00ffffff; |
end; |
// #define RGB_TORGBA(rgb) ((TD3DColor) ((rgb) | 0xff000000)) |
function RGB_TORGBA(rgb: TD3DColor): TD3DColor; |
begin |
Result := rgb or $FF000000; |
Result := rgb or $ff000000; |
end; |
function VectorAdd(v1, v2: TD3DVector) : TD3DVector; |
function D3DSTATE_OVERRIDE(StateType: DWORD) : DWORD; |
begin |
Result := StateType + D3DSTATE_OVERRIDE_BIAS; |
end; |
function D3DTRIFLAG_STARTFLAT(len: DWORD) : DWORD; |
begin |
if not (len in [1..29]) then len := 0; |
result := len; |
end; |
// #define D3DRENDERSTATE_STIPPLEPATTERN(y) (D3DRENDERSTATE_STIPPLEPATTERN00 + (y)) |
function D3DRENDERSTATE_STIPPLEPATTERN(y: integer) : TD3DRenderStateType; |
begin |
Result := TD3DRenderStateType(Ord(D3DRENDERSTATE_STIPPLEPATTERN00) + y); |
end; |
// Addition and subtraction |
function VectorAdd(const v1, v2: TD3DVector) : TD3DVector; |
begin |
result.x := v1.x+v2.x; |
result.y := v1.y+v2.y; |
result.z := v1.z+v2.z; |
end; |
function VectorSub(v1, v2: TD3DVector) : TD3DVector; |
function VectorSub(const v1, v2: TD3DVector) : TD3DVector; |
begin |
result.x := v1.x-v2.x; |
result.y := v1.y-v2.y; |
15645,7 → 22158,8 |
result.z := v1.z-v2.z; |
end; |
function VectorMulS(v: TD3DVector; s: TD3DValue) : TD3DVector; |
// Scalar multiplication and division |
function VectorMulS(const v: TD3DVector; s: TD3DValue) : TD3DVector; |
begin |
result.x := v.x*s; |
result.y := v.y*s; |
15652,7 → 22166,7 |
result.z := v.z*s; |
end; |
function VectorDivS(v: TD3DVector; s: TD3DValue) : TD3DVector; |
function VectorDivS(const v: TD3DVector; s: TD3DValue) : TD3DVector; |
begin |
result.x := v.x/s; |
result.y := v.y/s; |
15659,7 → 22173,8 |
result.z := v.z/s; |
end; |
function VectorMul(v1, v2: TD3DVector) : TD3DVector; |
// Memberwise multiplication and division |
function VectorMul(const v1, v2: TD3DVector) : TD3DVector; |
begin |
result.x := v1.x*v2.x; |
result.y := v1.y*v2.y; |
15666,7 → 22181,7 |
result.z := v1.z*v2.z; |
end; |
function VectorDiv(v1, v2: TD3DVector) : TD3DVector; |
function VectorDiv(const v1, v2: TD3DVector) : TD3DVector; |
begin |
result.x := v1.x/v2.x; |
result.y := v1.y/v2.y; |
15673,6 → 22188,7 |
result.z := v1.z/v2.z; |
end; |
// Vector dominance |
function VectorSmaller(v1, v2: TD3DVector) : boolean; |
begin |
result := (v1.x < v2.x) and (v1.y < v2.y) and (v1.z < v2.z); |
15683,11 → 22199,13 |
result := (v1.x <= v2.x) and (v1.y <= v2.y) and (v1.z <= v2.z); |
end; |
// Bitwise equality |
function VectorEquel(v1, v2: TD3DVector) : boolean; |
begin |
result := (v1.x = v2.x) and (v1.y = v2.y) and (v1.z = v2.z); |
end; |
// Length-related functions |
function VectorSquareMagnitude(v: TD3DVector) : TD3DValue; |
begin |
result := (v.x*v.x) + (v.y*v.y) + (v.z*v.z); |
15698,11 → 22216,13 |
result := sqrt( (v.x*v.x) + (v.y*v.y) + (v.z*v.z) ); |
end; |
function VectorNormalize(v: TD3DVector) : TD3DVector; |
// Returns vector with same direction and unit length |
function VectorNormalize(const v: TD3DVector) : TD3DVector; |
begin |
result := VectorDivS(v,VectorMagnitude(v)); |
end; |
// Return min/max component of the input vector |
function VectorMin(v: TD3DVector) : TD3DValue; |
var |
ret : TD3DValue; |
15723,7 → 22243,8 |
result := ret; |
end; |
function VectorMinimize(v1, v2: TD3DVector) : TD3DVector; |
// Return memberwise min/max of input vectors |
function VectorMinimize(const v1, v2: TD3DVector) : TD3DVector; |
begin |
if v1.x < v2.x then result.x := v1.x else result.x := v2.x; |
if v1.y < v2.y then result.y := v1.y else result.y := v2.y; |
15730,7 → 22251,7 |
if v1.z < v2.z then result.z := v1.z else result.z := v2.z; |
end; |
function VectorMaximize(v1, v2: TD3DVector) : TD3DVector; |
function VectorMaximize(const v1, v2: TD3DVector) : TD3DVector; |
begin |
if v1.x > v2.x then result.x := v1.x else result.x := v2.x; |
if v1.y > v2.y then result.y := v1.y else result.y := v2.y; |
15737,12 → 22258,13 |
if v1.z > v2.z then result.z := v1.z else result.z := v2.z; |
end; |
// Dot and cross product |
function VectorDotProduct(v1, v2: TD3DVector) : TD3DValue; |
begin |
result := (v1.x*v2.x) + (v1.y * v2.y) + (v1.z*v2.z); |
end; |
function VectorCrossProduct(v1, v2: TD3DVector) : TD3DVector; |
function VectorCrossProduct(const v1, v2: TD3DVector) : TD3DVector; |
begin |
result.x := (v1.y*v2.z) - (v1.z*v2.y); |
result.y := (v1.z*v2.x) - (v1.x*v2.z); |
15749,245 → 22271,819 |
result.z := (v1.x*v2.y) - (v1.y*v2.x); |
end; |
function D3DSTATE_OVERRIDE(typ: DWORD): DWORD; |
procedure DisableFPUExceptions; |
var |
FPUControlWord: WORD; |
asm |
FSTCW FPUControlWord; |
OR FPUControlWord, $4 + $1; { Divide by zero + invalid operation } |
FLDCW FPUControlWord; |
end; |
procedure EnableFPUExceptions; |
var |
FPUControlWord: WORD; |
asm |
FSTCW FPUControlWord; |
AND FPUControlWord, $FFFF - $4 - $1; { Divide by zero + invalid operation } |
FLDCW FPUControlWord; |
end; |
function D3DErrorString(Value: HResult) : string; //Full description not available yet |
begin |
Result := typ + D3DSTATE_OVERRIDE_BIAS; |
case Value of |
D3D_OK: Result := 'No error'; |
D3DERR_BADMAJORVERSION: Result := 'D3DERR_BADMAJORVERSION'; |
D3DERR_BADMINORVERSION: Result := 'D3DERR_BADMINORVERSION'; |
D3DERR_INVALID_DEVICE: Result := 'D3DERR_INITFAILED'; |
D3DERR_INITFAILED: Result := 'D3DERR_INITFAILED'; |
D3DERR_DEVICEAGGREGATED: Result := 'D3DERR_DEVICEAGGREGATED'; |
D3DERR_EXECUTE_CREATE_FAILED: Result := 'D3DERR_EXECUTE_CREATE_FAILED'; |
D3DERR_EXECUTE_DESTROY_FAILED: Result := 'D3DERR_EXECUTE_DESTROY_FAILED'; |
D3DERR_EXECUTE_LOCK_FAILED: Result := 'D3DERR_EXECUTE_LOCK_FAILED'; |
D3DERR_EXECUTE_UNLOCK_FAILED: Result := 'D3DERR_EXECUTE_UNLOCK_FAILED'; |
D3DERR_EXECUTE_LOCKED: Result := 'D3DERR_EXECUTE_LOCKED'; |
D3DERR_EXECUTE_NOT_LOCKED: Result := 'D3DERR_EXECUTE_NOT_LOCKED'; |
D3DERR_EXECUTE_FAILED: Result := 'D3DERR_EXECUTE_FAILED'; |
D3DERR_EXECUTE_CLIPPED_FAILED: Result := 'D3DERR_EXECUTE_CLIPPED_FAILED'; |
D3DERR_TEXTURE_NO_SUPPORT: Result := 'D3DERR_TEXTURE_NO_SUPPORT'; |
D3DERR_TEXTURE_CREATE_FAILED: Result := 'D3DERR_TEXTURE_CREATE_FAILED'; |
D3DERR_TEXTURE_DESTROY_FAILED: Result := 'D3DERR_TEXTURE_DESTROY_FAILED'; |
D3DERR_TEXTURE_LOCK_FAILED: Result := 'D3DERR_TEXTURE_LOCK_FAILED'; |
D3DERR_TEXTURE_UNLOCK_FAILED: Result := 'D3DERR_TEXTURE_UNLOCK_FAILED'; |
D3DERR_TEXTURE_LOAD_FAILED: Result := 'D3DERR_TEXTURE_LOAD_FAILED'; |
D3DERR_TEXTURE_SWAP_FAILED: Result := 'D3DERR_TEXTURE_SWAP_FAILED'; |
D3DERR_TEXTURE_LOCKED: Result := 'D3DERR_TEXTURELOCKED'; |
D3DERR_TEXTURE_NOT_LOCKED: Result := 'D3DERR_TEXTURE_NOT_LOCKED'; |
D3DERR_TEXTURE_GETSURF_FAILED: Result := 'D3DERR_TEXTURE_GETSURF_FAILED'; |
D3DERR_MATRIX_CREATE_FAILED: Result := 'D3DERR_MATRIX_CREATE_FAILED'; |
D3DERR_MATRIX_DESTROY_FAILED: Result := 'D3DERR_MATRIX_DESTROY_FAILED'; |
D3DERR_MATRIX_SETDATA_FAILED: Result := 'D3DERR_MATRIX_SETDATA_FAILED'; |
D3DERR_MATRIX_GETDATA_FAILED: Result := 'D3DERR_MATRIX_GETDATA_FAILED'; |
D3DERR_SETVIEWPORTDATA_FAILED: Result := 'D3DERR_SETVIEWPORTDATA_FAILED'; |
D3DERR_INVALIDCURRENTVIEWPORT: Result := 'D3DERR_INVALIDCURRENTVIEWPORT'; |
D3DERR_INVALIDPRIMITIVETYPE: Result := 'D3DERR_INVALIDPRIMITIVETYPE'; |
D3DERR_INVALIDVERTEXTYPE: Result := 'D3DERR_INVALIDVERTEXTYPE'; |
D3DERR_TEXTURE_BADSIZE: Result := 'D3DERR_TEXTURE_BADSIZE'; |
D3DERR_INVALIDRAMPTEXTURE: Result := 'D3DERR_INVALIDRAMPTEXTURE'; |
D3DERR_MATERIAL_CREATE_FAILED: Result := 'D3DERR_MATERIAL_CREATE_FAILED'; |
D3DERR_MATERIAL_DESTROY_FAILED: Result := 'D3DERR_MATERIAL_DESTROY_FAILED'; |
D3DERR_MATERIAL_SETDATA_FAILED: Result := 'D3DERR_MATERIAL_SETDATA_FAILED'; |
D3DERR_MATERIAL_GETDATA_FAILED: Result := 'D3DERR_MATERIAL_GETDATA_FAILED'; |
D3DERR_INVALIDPALETTE: Result := 'D3DERR_INVALIDPALETTE'; |
D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY: Result := 'D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY'; |
D3DERR_ZBUFF_NEEDS_VIDEOMEMORY: Result := 'D3DERR_ZBUFF_NEEDS_VIDEOMEMORY'; |
D3DERR_SURFACENOTINVIDMEM: Result := 'D3DERR_SURFACENOTINVIDMEM'; |
D3DERR_LIGHT_SET_FAILED: Result := 'D3DERR_LIGHT_SET_FAILED'; |
D3DERR_LIGHTHASVIEWPORT: Result := 'D3DERR_LIGHTHASVIEWPORT'; |
D3DERR_LIGHTNOTINTHISVIEWPORT: Result := 'D3DERR_LIGHTNOTINTHISVIEWPORT'; |
D3DERR_SCENE_IN_SCENE: Result := 'D3DERR_SCENE_IN_SCENE'; |
D3DERR_SCENE_NOT_IN_SCENE: Result := 'D3DERR_SCENE_NOT_IN_SCENE'; |
D3DERR_SCENE_BEGIN_FAILED: Result := 'D3DERR_SCENE_BEGIN_FAILED'; |
D3DERR_SCENE_END_FAILED: Result := 'D3DERR_SCENE_END_FAILED'; |
D3DERR_INBEGIN: Result := 'D3DERR_INBEGIN'; |
D3DERR_NOTINBEGIN: Result := 'D3DERR_NOTINBEGIN'; |
D3DERR_NOVIEWPORTS: Result := 'D3DERR_NOVIEWPORTS'; |
D3DERR_VIEWPORTDATANOTSET: Result := 'D3DERR_VIEWPORTDATANOTSET'; |
D3DERR_VIEWPORTHASNODEVICE: Result := 'D3DERR_VIEWPORTHASNODEVICE'; |
D3DERR_NOCURRENTVIEWPORT: Result := 'D3DERR_NOCURRENTVIEWPORT'; |
D3DERR_INVALIDVERTEXFORMAT: Result := 'D3DERR_INVALIDVERTEXFORMAT'; |
D3DERR_COLORKEYATTACHED: Result := 'D3DERR_COLORKEYATTACHED'; |
D3DERR_VERTEXBUFFEROPTIMIZED: Result := 'D3DERR_VERTEXBUFFEROPTIMIZED'; |
D3DERR_VBUF_CREATE_FAILED: Result := 'D3DERR_VBUF_CREATE_FAILED'; |
D3DERR_VERTEXBUFFERLOCKED: Result := 'D3DERR_VERTEXBUFFERLOCKED'; |
D3DERR_ZBUFFER_NOTPRESENT: Result := 'D3DERR_ZBUFFER_NOTPRESENT'; |
D3DERR_STENCILBUFFER_NOTPRESENT: Result := 'D3DERR_STENCILBUFFER_NOTPRESENT'; |
D3DERR_WRONGTEXTUREFORMAT: Result := 'D3DERR_WRONGTEXTUREFORMAT'; |
D3DERR_UNSUPPORTEDCOLOROPERATION: Result := 'D3DERR_UNSUPPORTEDCOLOROPERATION'; |
D3DERR_UNSUPPORTEDCOLORARG: Result := 'D3DERR_UNSUPPORTEDCOLORARG'; |
D3DERR_UNSUPPORTEDALPHAOPERATION: Result := 'D3DERR_UNSUPPORTEDALPHAOPERATION'; |
D3DERR_UNSUPPORTEDALPHAARG: Result := 'D3DERR_UNSUPPORTEDALPHAARG'; |
D3DERR_TOOMANYOPERATIONS: Result := 'D3DERR_TOOMANYOPERATIONS'; |
D3DERR_CONFLICTINGTEXTUREFILTER: Result := 'D3DERR_CONFLICTINGTEXTUREFILTER'; |
D3DERR_UNSUPPORTEDFACTORVALUE: Result := 'D3DERR_UNSUPPORTEDFACTORVALUE'; |
D3DERR_CONFLICTINGRENDERSTATE: Result := 'D3DERR_CONFLICTINGRENDERSTATE'; |
D3DERR_UNSUPPORTEDTEXTUREFILTER: Result := 'D3DERR_UNSUPPORTEDTEXTUREFILTER'; |
D3DERR_TOOMANYPRIMITIVES: Result := 'D3DERR_TOOMANYPRIMITIVES'; |
D3DERR_INVALIDMATRIX: Result := 'D3DERR_INVALIDMATRIX'; |
D3DERR_TOOMANYVERTICES: Result := 'D3DERR_TOOMANYVERTICES'; |
D3DERR_CONFLICTINGTEXTUREPALETTE: Result := 'D3DERR_CONFLICTINGTEXTUREPALETTE'; |
else Result := 'Unrecognized Error'; |
end; |
end; |
{$IFDEF D3DRM} |
//Direct3DRM file |
function D3DRENDERSTATE_STIPPLEPATTERN(y: DWORD): TD3DRenderStateType; |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: d3drmdef.h |
* Content: Direct3DRM include file |
* |
***************************************************************************) |
procedure D3DRMAnimationGetRotateKey |
(var rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion); |
begin |
Result := TD3DRenderStateType(Ord(D3DRENDERSTATE_STIPPLEPATTERN00)+y); |
rmQuat := rmKey.dqRotateKey; |
end; |
function D3DTRIFLAG_STARTFLAT(len: DWORD) : DWORD; |
procedure D3DRMAnimationGetScaleKey |
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
begin |
if not (len in [1..29]) then len := 0; |
result := len; |
dvVec := rmKey.dvScaleKey; |
end; |
function D3DFVF_TEXCOORDSIZE3(CoordIndex: DWORD): DWORD; |
procedure D3DRMAnimationGetPositionKey |
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
begin |
Result := D3DFVF_TEXTUREFORMAT3 shl (CoordIndex*2 + 16); |
dvVec := rmKey.dvPositionKey; |
end; |
function D3DFVF_TEXCOORDSIZE2(CoordIndex: DWORD): DWORD; |
procedure D3DRMAnimatioSetRotateKey |
(var rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion); |
begin |
Result := D3DFVF_TEXTUREFORMAT2; |
rmKey.dqRotateKey := rmQuat; |
end; |
function D3DFVF_TEXCOORDSIZE4(CoordIndex: DWORD): DWORD; |
procedure D3DRMAnimationSetScaleKey |
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
begin |
Result := D3DFVF_TEXTUREFORMAT4 shl (CoordIndex*2 + 16); |
rmKey.dvScaleKey := dvVec; |
end; |
function D3DFVF_TEXCOORDSIZE1(CoordIndex: DWORD): DWORD; |
procedure D3DRMAnimationSetPositionKey |
(var rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
begin |
Result := D3DFVF_TEXTUREFORMAT1 shl (CoordIndex*2 + 16); |
rmKey.dvPositionKey := dvVec; |
end; |
{ Direct3DRM } |
(*==========================================================================; |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: d3drm.h |
* Content: Direct3DRM include file |
* |
***************************************************************************) |
procedure D3DRMAnimationGetRotateKey(const rmKey: TD3DRMAnimationKey; var rmQuat: TD3DRMQuaternion); |
function D3DRMErrorString(Value: HResult) : string; |
begin |
rmQuat.s := rmKey.dvK[0]; |
rmQuat.v.x := rmKey.dvK[1]; |
rmQuat.v.y := rmKey.dvK[2]; |
rmQuat.v.z := rmKey.dvK[3]; |
case Value of |
D3DRM_OK: Result := 'No error. Equivalent to DD_OK.'; |
D3DRMERR_BADALLOC: Result := 'Out of memory.'; |
D3DRMERR_BADDEVICE: Result := 'Device is not compatible with renderer.'; |
D3DRMERR_BADFILE: Result := 'Data file is corrupt.'; |
D3DRMERR_BADMAJORVERSION: Result := 'Bad DLL major version.'; |
D3DRMERR_BADMINORVERSION: Result := 'Bad DLL minor version.'; |
D3DRMERR_BADOBJECT: Result := 'Object expected in argument.'; |
D3DRMERR_BADPMDATA: Result := 'The data in the .x file is corrupted. The conversion to a progressive mesh succeeded but produced an invalid progressive mesh in the .x file.'; |
D3DRMERR_BADTYPE: Result := 'Bad argument type passed.'; |
D3DRMERR_BADVALUE: Result := 'Bad argument value passed.'; |
D3DRMERR_BOXNOTSET: Result := 'An attempt was made to access a bounding box (for example, with IDirect3DRMFrame3::GetBox) when no bounding box was set on the frame.'; |
D3DRMERR_CLIENTNOTREGISTERED: Result := 'Client has not been registered. Call IDirect3DRM3::RegisterClient.'; |
D3DRMERR_CONNECTIONLOST: Result := 'Data connection was lost during a load, clone, or duplicate.'; |
D3DRMERR_ELEMENTINUSE: Result := 'Element can´t be modified or deleted while in use. To empty a submesh, call Empty() against its parent.'; |
// D3DRMERR_ENTRYINUSE: Result := 'Vertex or normal entries are currently in use by a face and cannot be deleted.'; |
D3DRMERR_FACEUSED: Result := 'Face already used in a mesh.'; |
D3DRMERR_FILENOTFOUND: Result := 'File cannot be opened.'; |
// D3DRMERR_INCOMPATIBLEKEY: Result := 'Specified animation key is incompatible. The key cannot be modified.'; |
D3DRMERR_INVALIDLIBRARY: Result := 'Specified libary is invalid.'; |
// D3DRMERR_INVALIDOBJECT: Result := 'Method received a pointer to an object that is invalid.'; |
// D3DRMERR_INVALIDPARAMS: Result := 'One of the parameters passed to the method is invalid.'; |
D3DRMERR_LIBRARYNOTFOUND: Result := 'Specified libary not found.'; |
D3DRMERR_LOADABORTED: Result := 'Load aborted by user.'; |
D3DRMERR_NOSUCHKEY: Result := 'Specified animation key does not exist.'; |
D3DRMERR_NOTCREATEDFROMDDS: Result := 'Specified texture was not created from a DirectDraw Surface.'; |
D3DRMERR_NOTDONEYET: Result := 'Unimplemented.'; |
D3DRMERR_NOTENOUGHDATA: Result := 'Not enough data has been loaded to perform the requested operation.'; |
D3DRMERR_NOTFOUND: Result := 'Object not found in specified place.'; |
// D3DRMERR_OUTOFRANGE: Result := 'Specified value is out of range.'; |
D3DRMERR_PENDING: Result := 'Data required to supply the requested information has not finished loading.'; |
D3DRMERR_REQUESTTOOLARGE: Result := 'Attempt was made to set a level of detail in a progressive mesh greater than the maximum available.'; |
D3DRMERR_REQUESTTOOSMALL: Result := 'Attempt was made to set the minimum rendering detail of a progressive mesh smaller than the detail in the base mesh (the minimum for rendering).'; |
D3DRMERR_TEXTUREFORMATNOTFOUND: Result := 'Texture format could not be found that meets the specified criteria and that the underlying Immediate Mode device supports.'; |
D3DRMERR_UNABLETOEXECUTE: Result := 'Unable to carry out procedure.'; |
DDERR_INVALIDOBJECT: Result := 'Received pointer that was an invalid object.'; |
DDERR_INVALIDPARAMS: Result := 'One or more of the parameters passed to the method are incorrect.'; |
DDERR_NOTFOUND: Result := 'The requested item was not found.'; |
DDERR_NOTINITIALIZED: Result := 'An attempt was made to call an interface method of an object created by CoCreateInstance before the object was initialized.'; |
DDERR_OUTOFMEMORY: Result := 'DirectDraw does not have enough memory to perform the operation.'; |
else Result := 'Unrecognized Error'; |
end; |
end; |
{$ENDIF} |
//DirectInput file |
procedure D3DRMAnimationGetScaleKey(const rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
function DIMAKEUSAGEDWORD(UsagePage, Usage: WORD) : DWORD; |
begin |
dvVec.x := rmKey.dvK[0]; |
dvVec.y := rmKey.dvK[1]; |
dvVec.z := rmKey.dvK[2]; |
Result := Usage or (UsagePage shl 16); |
end; |
procedure D3DRMAnimationGetPositionKey(const rmKey: TD3DRMAnimationKey; var dvVec: TD3DVector); |
function DIEFT_GETTYPE(n: variant) : byte; |
begin |
dvVec.x := rmKey.dvK[0]; |
dvVec.y := rmKey.dvK[1]; |
dvVec.z := rmKey.dvK[2]; |
Result := byte(n); |
end; |
procedure D3DRMAnimationSetRotateKey(var rmKey: TD3DRMAnimationKey; const rmQuat: TD3DRMQuaternion); |
function GET_DIDEVICE_TYPE(dwDevType: variant) : byte; |
begin |
rmKey.dvK[0] := rmQuat.s; |
rmKey.dvK[1] := rmQuat.v.x; |
rmKey.dvK[2] := rmQuat.v.y; |
rmKey.dvK[3] := rmQuat.v.z; |
Result := byte(dwDevType); |
end; |
procedure D3DRMAnimationSetScaleKey(var rmKey: TD3DRMAnimationKey; const dvVec: TD3DVector); |
function GET_DIDEVICE_SUBTYPE(dwDevType: variant) : byte; |
begin |
rmKey.dvK[0] := dvVec.x; |
rmKey.dvK[1] := dvVec.y; |
rmKey.dvK[2] := dvVec.z; |
Result := hi(word(dwDevType)); |
end; |
procedure D3DRMAnimationSetPositionKey(var rmKey: TD3DRMAnimationKey; const dvVec: TD3DVector); |
function DIDFT_MAKEINSTANCE(n: variant) : DWORD; |
begin |
rmKey.dvK[0] := dvVec.x; |
rmKey.dvK[1] := dvVec.y; |
rmKey.dvK[2] := dvVec.z; |
Result := word(n) shl 8; |
end; |
function Direct3DRMCreate; external D3DRMLib; |
function DIDFT_GETTYPE(n: variant) : byte; |
begin |
Result := byte(n); |
end; |
function D3DRMCreateColorRGB; external D3DRMLib; |
function D3DRMCreateColorRGBA; external D3DRMLib; |
function D3DRMColorGetRed; external D3DRMLib; |
function D3DRMColorGetGreen; external D3DRMLib; |
function D3DRMColorGetBlue; external D3DRMLib; |
function D3DRMColorGetAlpha; external D3DRMLib; |
function D3DRMVectorAdd; external D3DRMLib; |
function D3DRMVectorSubtract; external D3DRMLib; |
function D3DRMVectorReflect; external D3DRMLib; |
function D3DRMVectorCrossProduct; external D3DRMLib; |
function D3DRMVectorDotProduct; external D3DRMLib; |
function D3DRMVectorNormalize; external D3DRMLib; |
function D3DRMVectorModulus; external D3DRMLib; |
function D3DRMVectorRotate; external D3DRMLib; |
function D3DRMVectorScale; external D3DRMLib; |
function D3DRMVectorRandom; external D3DRMLib; |
function D3DRMQuaternionFromRotation; external D3DRMLib; |
function D3DRMQuaternionMultiply; external D3DRMLib; |
function D3DRMQuaternionSlerp; external D3DRMLib; |
procedure D3DRMMatrixFromQuaternion; external D3DRMLib; |
function D3DRMQuaternionFromMatrix; external D3DRMLib; |
function DIDFT_GETINSTANCE(n: variant) : DWORD; |
begin |
Result := word(n) shr 8; |
end; |
function DirectXFileCreate; external D3DXofLib; |
function DIDFT_ENUMCOLLECTION(n: variant) : DWORD; |
begin |
Result := word(n) shl 8; |
end; |
{ DirectInput } |
function DIJOFS_SLIDER(n: variant) : variant; |
begin |
Result := n * 4 + 24; |
end; |
function GET_DIDEVICE_TYPE(dwDevType: DWORD): DWORD; |
function DIJOFS_POV(n: variant) : variant; |
begin |
Result := LOBYTE(dwDevType); |
Result := n * 4 + 32; |
end; |
function GET_DIDEVICE_SUBTYPE(dwDevType: DWORD): DWORD; |
function DIJOFS_BUTTON(n: variant) : variant; |
begin |
Result := HIBYTE(dwDevType); |
Result := 48 + n; |
end; |
function DIEFT_GETTYPE(n: DWORD): DWORD; |
function DIErrorString(Value: HResult) : string; |
var |
sValue: array[0..255] of char; |
begin |
Result := LOBYTE(n); |
case Value of |
DI_OK: Result := 'The operation completed successfully.'; |
S_FALSE: Result := '"The operation had no effect." or "The device buffer overflowed and some input was lost." or "The device exists but is not currently attached." or "The change in device properties had no effect."'; |
// DI_BUFFEROVERFLOW: Result := 'The device buffer overflowed and some input was lost. This value is equal to the S_FALSE standard COM return value.'; |
DI_DOWNLOADSKIPPED: Result := 'The parameters of the effect were successfully updated, but the effect could not be downloaded because the associated device was not acquired in exclusive mode.'; |
DI_EFFECTRESTARTED: Result := 'The effect was stopped, the parameters were updated, and the effect was restarted.'; |
// DI_NOEFFECT: Result := 'The operation had no effect. This value is equal to the S_FALSE standard COM return value.'; |
// DI_NOTATTACHED: Result := 'The device exists but is not currently attached. This value is equal to the S_FALSE standard COM return value.'; |
DI_POLLEDDEVICE: Result := 'The device is a polled device. As a result, device buffering will not collect any data and event notifications will not be signaled until the IDirectInputDevice2::Poll method is called.'; |
// DI_PROPNOEFFECT: Result := 'The change in device properties had no effect. This value is equal to the S_FALSE standard COM return value.'; |
DI_TRUNCATED: Result := 'The parameters of the effect were successfully updated, but some of them were beyond the capabilities of the device and were truncated to the nearest supported value.'; |
DI_TRUNCATEDANDRESTARTED: Result := 'Equal to DI_EFFECTRESTARTED | DI_TRUNCATED.'; |
DIERR_ACQUIRED: Result := 'The operation cannot be performed while the device is acquired.'; |
DIERR_ALREADYINITIALIZED: Result := 'This object is already initialized'; |
DIERR_BADDRIVERVER: Result := 'The object could not be created due to an incompatible driver version or mismatched or incomplete driver components.'; |
DIERR_BETADIRECTINPUTVERSION: Result := 'The application was written for an unsupported prerelease version of DirectInput.'; |
DIERR_DEVICEFULL: Result := 'The device is full.'; |
DIERR_DEVICENOTREG: Result := 'The device or device instance is not registered with DirectInput. This value is equal to the REGDB_E_CLASSNOTREG standard COM return value.'; |
DIERR_EFFECTPLAYING: Result := 'The parameters were updated in memory but were not downloaded to the device because the device does not support updating an effect while it is still playing.'; |
DIERR_HASEFFECTS: Result := 'The device cannot be reinitialized because there are still effects attached to it.'; |
DIERR_GENERIC: Result := 'An undetermined error occurred inside the DirectInput subsystem. This value is equal to the E_FAIL standard COM return value.'; |
// DIERR_HANDLEEXISTS: Result := 'The device already has an event notification associated with it. This value is equal to the E_ACCESSDENIED standard COM return value.'; |
DIERR_INCOMPLETEEFFECT: Result := 'The effect could not be downloaded because essential information is missing. For example, no axes have been associated with the effect, or no type-specific information has been supplied.'; |
DIERR_INPUTLOST: Result := 'Access to the input device has been lost. It must be reacquired.'; |
DIERR_INVALIDPARAM: Result := 'An invalid parameter was passed to the returning function, or the object was not in a state that permitted the function to be called. This value is equal to the E_INVALIDARG standard COM return value.'; |
DIERR_MOREDATA: Result := 'Not all the requested information fitted into the buffer.'; |
DIERR_NOAGGREGATION: Result := 'This object does not support aggregation.'; |
DIERR_NOINTERFACE: Result := 'The specified interface is not supported by the object. This value is equal to the E_NOINTERFACE standard COM return value.'; |
DIERR_NOTACQUIRED: Result := 'The operation cannot be performed unless the device is acquired.'; |
DIERR_NOTBUFFERED: Result := 'The device is not buffered. Set the DIPROP_BUFFERSIZE property to enable buffering.'; |
DIERR_NOTDOWNLOADED: Result := 'The effect is not downloaded.'; |
DIERR_NOTEXCLUSIVEACQUIRED: Result := 'The operation cannot be performed unless the device is acquired in DISCL_EXCLUSIVE mode.'; |
DIERR_NOTFOUND: Result := 'The requested object does not exist.'; |
DIERR_NOTINITIALIZED: Result := 'This object has not been initialized.'; |
// DIERR_OBJECTNOTFOUND: Result := 'The requested object does not exist.'; |
DIERR_OLDDIRECTINPUTVERSION: Result := 'The application requires a newer version of DirectInput.'; |
DIERR_OTHERAPPHASPRIO: Result := '"The device already has an event notification associated with it." or "The specified property cannot be changed." or "Another application has a higher priority level, preventing this call from succeeding. "'; |
DIERR_OUTOFMEMORY: Result := 'The DirectInput subsystem could not allocate sufficient memory to complete the call. This value is equal to the E_OUTOFMEMORY standard COM return value.'; |
// DIERR_READONLY: Result := 'The specified property cannot be changed. This value is equal to the E_ACCESSDENIED standard COM return value.'; |
DIERR_UNSUPPORTED: Result := 'The function called is not supported at this time. This value is equal to the E_NOTIMPL standard COM return value.'; |
E_PENDING: Result := 'Data is not yet available.'; |
HResult($800405CC): Result := 'No more memory for effects of this kind (not documented)'; |
else Result := 'Unrecognized Error: $' + sValue; |
end; |
end; |
function DIDFT_MAKEINSTANCE(n: WORD): DWORD; |
function joyConfigChanged(dwFlags: DWORD) : MMRESULT; external 'WinMM.dll'; |
procedure Init_c_dfDIKeyboard_Objects; // XRef: Initialization |
var x: Cardinal; |
begin |
Result := n shl 8; |
for x := 0 to 255 do |
with _c_dfDIKeyboard_Objects[x] do |
begin |
pGuid := @GUID_Key; dwOfs := x; dwFlags := 0; |
dwType := $80000000 or DIDFT_BUTTON or x shl 8; |
end; |
end; |
function DIDFT_GETTYPE(n: DWORD): DWORD; |
procedure Init_c_dfDIJoystick2_Objects; // XRef: Initialization |
var x,y, OfVal: Cardinal; |
begin |
Result := LOBYTE(n); |
Move(_c_dfDIJoystick_Objects,_c_dfDIJoystick2_Objects,SizeOf(_c_dfDIJoystick_Objects)); |
// all those empty "buttons" |
for x := $2C to $8B do |
Move(_c_dfDIJoystick_Objects[$2B],_c_dfDIJoystick2_Objects[x],SizeOf(TDIObjectDataFormat)); |
for x := 0 to 2 do |
begin // 3 more blocks of X axis..Sliders |
Move(_c_dfDIJoystick_Objects,_c_dfDIJoystick2_Objects[$8C+8*x],8*SizeOf(TDIObjectDataFormat)); |
for y := 0 to 7 do _c_dfDIJoystick2_Objects[$8C+8*x+y].dwFlags := (x+1) shl 8; |
end; |
OfVal := _c_dfDIJoystick2_Objects[$2B].dwOfs+1; |
for x := $2C to $A3 do |
begin |
_c_dfDIJoystick2_Objects[x].dwOfs := OfVal; |
if x < $8C then Inc(OfVal) else Inc(OfVal,4); |
end; |
end; |
function DIDFT_GETINSTANCE(n: DWORD): WORD; |
//DirectPlay file |
{$IFDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
(*==========================================================================; |
* |
* Copyright (C) 1994-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: dplay.h |
* Content: DirectPlay include file |
* |
***************************************************************************) |
function DPErrorString(Value: HResult) : string; |
begin |
Result := n shr 8; |
case Value of |
CLASS_E_NOAGGREGATION: Result := 'A non-NULL value was passed for the pUnkOuter parameter in DirectPlayCreate, DirectPlayLobbyCreate, or IDirectPlayLobby2::Connect.'; |
DPERR_ACCESSDENIED: Result := 'The session is full or an incorrect password was supplied.'; |
DPERR_ACTIVEPLAYERS: Result := 'The requested operation cannot be performed because there are existing active players.'; |
DPERR_ALREADYINITIALIZED: Result := 'This object is already initialized.'; |
DPERR_APPNOTSTARTED: Result := 'The application has not been started yet.'; |
DPERR_AUTHENTICATIONFAILED: Result := 'The password or credentials supplied could not be authenticated.'; |
DPERR_BUFFERTOOLARGE: Result := 'The data buffer is too large to store.'; |
DPERR_BUSY: Result := 'A message cannot be sent because the transmission medium is busy.'; |
DPERR_BUFFERTOOSMALL: Result := 'The supplied buffer is not large enough to contain the requested data.'; |
DPERR_CANTADDPLAYER: Result := 'The player cannot be added to the session.'; |
DPERR_CANTCREATEGROUP: Result := 'A new group cannot be created.'; |
DPERR_CANTCREATEPLAYER: Result := 'A new player cannot be created.'; |
DPERR_CANTCREATEPROCESS: Result := 'Cannot start the application.'; |
DPERR_CANTCREATESESSION: Result := 'A new session cannot be created.'; |
DPERR_CANTLOADCAPI: Result := 'No credentials were supplied and the CryptoAPI package (CAPI) to use for cryptography services cannot be loaded.'; |
DPERR_CANTLOADSECURITYPACKAGE: Result := 'The software security package cannot be loaded.'; |
DPERR_CANTLOADSSPI: Result := 'No credentials were supplied and the software security package (SSPI) that will prompt for credentials cannot be loaded.'; |
DPERR_CAPSNOTAVAILABLEYET: Result := 'The capabilities of the DirectPlay object have not been determined yet. This error will occur if the DirectPlay object is implemented on a connectivity solution that requires polling to determine available bandwidth and latency.'; |
DPERR_CONNECTING: Result := 'The method is in the process of connecting to the network. The application should keep calling the method until it returns DP_OK, indicating successful completion, or it returns a different error.'; |
DPERR_ENCRYPTIONFAILED: Result := 'The requested information could not be digitally encrypted. Encryption is used for message privacy. This error is only relevant in a secure session.'; |
DPERR_EXCEPTION: Result := 'An exception occurred when processing the request.'; |
DPERR_GENERIC: Result := 'An undefined error condition occurred.'; |
// DPERR_INVALIDCREDENTIALS: Result := 'The credentials supplied (as to IDirectPlay3::SecureOpen) were not valid.'; |
DPERR_INVALIDFLAGS: Result := 'The flags passed to this method are invalid.'; |
DPERR_INVALIDGROUP: Result := 'The group ID is not recognized as a valid group ID for this game session.'; |
DPERR_INVALIDINTERFACE: Result := 'The interface parameter is invalid.'; |
DPERR_INVALIDOBJECT: Result := 'The DirectPlay object pointer is invalid.'; |
DPERR_INVALIDPARAMS: Result := 'One or more of the parameters passed to the method are invalid.'; |
DPERR_INVALIDPASSWORD: Result := 'An invalid password was supplied when attempting to join a session that requires a password.'; |
DPERR_INVALIDPLAYER: Result := 'The player ID is not recognized as a valid player ID for this game session.'; |
DPERR_LOGONDENIED: Result := 'The session could not be opened because credentials are required and either no credentials were supplied or the credentials were invalid.'; |
DPERR_NOCAPS: Result := 'The communication link that DirectPlay is attempting to use is not capable of this function.'; |
DPERR_NOCONNECTION: Result := 'No communication link was established.'; |
DPERR_NOINTERFACE: Result := 'The interface is not supported.'; |
DPERR_NOMESSAGES: Result := 'There are no messages in the receive queue.'; |
DPERR_NONAMESERVERFOUND: Result := 'No name server (host) could be found or created. A host must exist to create a player.'; |
DPERR_NONEWPLAYERS: Result := 'The session is not accepting any new players.'; |
DPERR_NOPLAYERS: Result := 'There are no active players in the session.'; |
DPERR_NOSESSIONS: Result := 'There are no existing sessions for this game.'; |
DPERR_NOTLOBBIED: Result := 'Returned by the IDirectPlayLobby2::Connect method if the application was not started by using the IDirectPlayLobby2::RunApplication method or if there is no DPLCONNECTION structure currently initialized for this DirectPlayLobby object.'; |
DPERR_NOTLOGGEDIN: Result := 'An action cannot be performed because a player or client application is not logged in. Returned by the IDirectPlay3::Send method when the client application tries to send a secure message without being logged in.'; |
DPERR_OUTOFMEMORY: Result := 'There is insufficient memory to perform the requested operation.'; |
DPERR_PLAYERLOST: Result := 'A player has lost the connection to the session.'; |
DPERR_SENDTOOBIG: Result := 'The message being sent by the IDirectPlay3::Send method is too large.'; |
DPERR_SESSIONLOST: Result := 'The connection to the session has been lost.'; |
DPERR_SIGNFAILED: Result := 'The requested information could not be digitally signed. Digital signatures are used to establish the authenticity of messages.'; |
DPERR_TIMEOUT: Result := 'The operation could not be completed in the specified time.'; |
DPERR_UNAVAILABLE: Result := 'The requested function is not available at this time.'; |
DPERR_UNINITIALIZED: Result := 'The requested object has not been initialized.'; |
DPERR_UNKNOWNAPPLICATION: Result := 'An unknown application was specified.'; |
DPERR_UNSUPPORTED: Result := 'The function is not available in this implementation. Returned from IDirectPlay3::GetGroupConnectionSettings and IDirectPlay3::SetGroupConnectionSettings if they are called from a session that is not a lobby session.'; |
DPERR_USERCANCEL: Result := 'Can be returned in two ways. 1) The user canceled the connection process during a call to the IDirectPlay3::Open method. 2) The user clicked Cancel in one of the DirectPlay service provider dialog boxes during a call to IDirectPlay3::EnumSessions.'; |
else Result := 'Unrecognized Error'; |
end; |
end; |
{$ENDIF} // UseDirectPlay |
function DIDFT_ENUMCOLLECTION(n: WORD): DWORD; |
//DirectSetup file |
(*========================================================================== |
* |
* Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved. |
* |
* File: dsetup.h |
* Content: DirectXSetup, error codes and flags |
***************************************************************************) |
procedure LoadDSetup; |
function RegGetStringValue(Hive: HKEY; const KeyName, ValueName: string): string; |
var EnvKey : HKEY; |
Buf : array[0..255] of char; |
BufSize : DWord; |
RegType : DWord; |
rc : DWord; |
begin |
Result := n shl 8; |
Result := ''; |
BufSize := Sizeof(Buf); |
ZeroMemory(@Buf, BufSize); |
RegType := REG_SZ; |
try |
if (RegOpenKeyEx(Hive, PChar(KeyName), 0, KEY_READ, EnvKey) = ERROR_SUCCESS) then |
begin |
try |
if (ValueName = '') then rc := RegQueryValueEx(EnvKey, nil, nil, @RegType, @Buf, @BufSize) |
else rc := RegQueryValueEx(EnvKey, PChar(ValueName), nil, @RegType, @Buf, @BufSize); |
if rc = ERROR_SUCCESS then Result := string(Buf); |
finally |
RegCloseKey(EnvKey); |
end; |
end; |
finally |
RegCloseKey(Hive); |
end; |
end; |
function DIMAKEUSAGEDWORD(UsagePage, Usage: Word): DWORD; |
function ExistFile(const FileName: string): Boolean; |
var hFile: THandle; |
begin |
Result := MAKELONG(Usage, UsagePage); |
hFile := CreateFile(PChar(FileName), 0, 0, nil, OPEN_EXISTING, 0, 0); |
Result := hFile <> INVALID_HANDLE_VALUE; |
if hFile = INVALID_HANDLE_VALUE then CloseHandle(hFile); |
end; |
function DirectInputCreate; external DInputLib name 'DirectInputCreateA'; |
function DirectInputCreateEx; external DInputLib name 'DirectInputCreateEx'; |
function GetDSetupDLLPath : string; |
begin |
Result := RegGetStringValue(HKEY_LOCAL_MACHINE, |
'Software\Microsoft\Windows\CurrentVersion\Uninstall\DirectXDrivers', |
'UninstallString'); |
if Result <> '' then |
Result := Copy(Result,1,Length(Result)-Length('dxsetup.exe')) + 'DSetup.dll'; |
end; |
{ DirectPlay } |
begin |
DSetupDLL := LoadLibrary(PChar(GetDSetupDLLPath)); |
function DirectPlayEnumerateA; external DPlayXLib; |
function DirectPlayEnumerateW; external DPlayXLib; |
function DirectPlayEnumerate; external DPlayXLib name 'DirectPlayEnumerateA'; |
DirectXSetupA := GetProcAddress(DSetupDLL,'DirectXSetupA'); |
DirectXSetupW := GetProcAddress(DSetupDLL,'DirectXSetupW'); |
{$IFDEF UNICODE} |
DirectXSetup := DirectXSetupW; |
{$ELSE} |
DirectXSetup := DirectXSetupA; |
{$ENDIF} |
function DirectPlayCreate; external DPlayXLib; |
DirectXDeviceDriverSetupA := |
GetProcAddress(DSetupDLL,'DirectXDeviceDriverSetupA'); |
DirectXDeviceDriverSetupW := |
GetProcAddress(DSetupDLL,'DirectXDeviceDriverSetupW'); |
{$IFDEF UNICODE} |
DirectXDeviceDriverSetup := DirectXDeviceDriverSetupW; |
{$ELSE} |
DirectXDeviceDriverSetup := DirectXDeviceDriverSetupA; |
{$ENDIF} |
function DirectPlayLobbyCreateW; external DPlayXLib; |
function DirectPlayLobbyCreateA; external DPlayXLib; |
function DirectPlayLobbyCreate; external DPlayXLib name 'DirectPlayLobbyCreateA'; |
DirectXRegisterApplicationA := |
GetProcAddress(DSetupDLL,'DirectXRegisterApplicationA'); |
DirectXRegisterApplicationW := |
GetProcAddress(DSetupDLL,'DirectXRegisterApplicationW'); |
{$IFDEF UNICODE} |
DirectXRegisterApplication := DirectXRegisterApplicationW; |
{$ELSE} |
DirectXRegisterApplication := DirectXRegisterApplicationA; |
{$ENDIF} |
{ DirectSetup } |
DirectXUnRegisterApplication := |
GetProcAddress(DSetupDLL,'DirectXUnRegisterApplication'); |
function DirectXSetupA; external DSetupLib; |
function DirectXSetupW; external DSetupLib; |
function DirectXSetup; external DSetupLib name 'DirectXSetupA'; |
DirectXSetupSetCallback := |
GetProcAddress(DSetupDLL,'DirectXSetupSetCallback'); |
function DirectXDeviceDriverSetupA; external DSetupLib; |
function DirectXDeviceDriverSetupW; external DSetupLib; |
function DirectXDeviceDriverSetup; external DSetupLib name 'DirectXDeviceDriverSetupA'; |
DirectXSetupGetVersion := GetProcAddress(DSetupDLL,'DirectXSetupGetVersion'); |
function DirectXRegisterApplicationA; external DSetupLib; |
function DirectXRegisterApplicationW; external DSetupLib; |
function DirectXRegisterApplication; external DSetupLib name 'DirectXRegisterApplicationA'; |
end; |
function DirectXUnRegisterApplication; external DSetupLib; |
//DirectSound file |
function DirectXSetupSetCallback; external DSetupLib; |
function MAKE_DSHRESULT(code: DWORD) : HResult; |
begin |
Result := HResult(1 shl 31) or HResult(_FACDS shl 16) |
or HResult(code); |
end; |
function DirectXSetupGetVersion; external DSetupLib; |
function DSSPEAKER_COMBINED(c, g: variant) : DWORD; |
begin |
Result := byte(c) or (byte(g) shl 16) |
end; |
{ DirectSound } |
function DSSPEAKER_CONFIG(a: variant) : byte; |
begin |
Result := byte(a); |
end; |
function DSSPEAKER_COMBINED(c, g: Byte): DWORD; |
function DSSPEAKER_GEOMETRY(a: variant) : byte; |
begin |
Result := c or (g shl 16); |
Result := byte(a shr 16 and $FF); |
end; |
function DSSPEAKER_CONFIG(a: DWORD): Byte; |
function DSErrorString(Value: HResult) : string; |
begin |
Result := a; |
case Value of |
DS_OK: Result := 'The request completed successfully.'; |
DSERR_ALLOCATED: Result := 'The request failed because resources, such as a priority level, were already in use by another caller.'; |
DSERR_ALREADYINITIALIZED: Result := 'The object is already initialized.'; |
DSERR_BADFORMAT: Result := 'The specified wave format is not supported.'; |
DSERR_BUFFERLOST: Result := 'The buffer memory has been lost and must be restored.'; |
DSERR_CONTROLUNAVAIL: Result := 'The control (volume, pan, and so forth) requested by the caller is not available.'; |
DSERR_GENERIC: Result := 'An undetermined error occurred inside the DirectSound subsystem.'; |
DSERR_INVALIDCALL: Result := 'This function is not valid for the current state of this object.'; |
DSERR_INVALIDPARAM: Result := 'An invalid parameter was passed to the returning function.'; |
DSERR_NOAGGREGATION: Result := 'The object does not support aggregation.'; |
DSERR_NODRIVER: Result := 'No sound driver is available for use.'; |
DSERR_NOINTERFACE: Result := 'The requested COM interface is not available.'; |
DSERR_OTHERAPPHASPRIO: Result := 'Another application has a higher priority level, preventing this call from succeeding.'; |
DSERR_OUTOFMEMORY: Result := 'The DirectSound subsystem could not allocate sufficient memory to complete the caller´s request.'; |
DSERR_PRIOLEVELNEEDED: Result := 'The caller does not have the priority level required for the function to succeed.'; |
DSERR_UNINITIALIZED: Result := 'The IDirectSound::Initialize method has not been called or has not been called successfully before other methods were called.'; |
DSERR_UNSUPPORTED: Result := 'The function called is not supported at this time.'; |
else Result := 'Unrecognized Error'; |
end; |
end; |
function DSSPEAKER_GEOMETRY(a: DWORD): Byte; |
//DirectMusic file |
function MAKE_HRESULT(sev,fac,code: DWORD) : HResult; |
begin |
Result := a shr 16; |
Result := (sev shl 31) or (fac shl 16) or code; |
end; |
function DirectSoundCreate; external DSoundLib; |
function DirectSoundEnumerateA; external DSoundLib; |
function DirectSoundEnumerateW; external DSoundLib; |
function DirectSoundEnumerate; external DSoundLib name 'DirectSoundEnumerateA'; |
//function MAKEFOURCC (ch0, ch1, ch2, ch3: Char) : TFourCC; |
//type |
// tfcc = array [0..3] of Char; |
//begin |
// tfcc(Result)[0] := ch0; |
// tfcc(Result)[1] := ch1; |
// tfcc(Result)[2] := ch2; |
// tfcc(Result)[3] := ch3; |
//end; |
function DirectSoundCaptureCreate; external DSoundLib; |
function DirectSoundCaptureEnumerateA; external DSoundLib; |
function DirectSoundCaptureEnumerateW; external DSoundLib; |
function DirectSoundCaptureEnumerate; external DSoundLib name 'DirectSoundCaptureEnumerateA'; |
function QWORD_ALIGN(x: DWORD) : DWORD; |
begin |
Result := (x + 7) and (not 7); // (((x) + 7) & ~7) |
end; |
function MAKEFOURCC(ch0, ch1, ch2, ch3: Char) : DWORD; |
function DMUS_EVENT_SIZE(cb: DWORD) : DWORD; |
begin |
Result := Ord(ch0) + (Ord(ch1) shl 8) + (Ord(ch2) shl 16) + (Ord(ch3) shl 24); |
Result := QWORD_ALIGN(SizeOf(TDMus_EventHeader) + cb); // QWORD_ALIGN(sizeof(DMUS_EVENTHEADER) + cb) |
end; |
function MAKE_DMHRESULTSUCCESS(code: Cardinal) : HResult; |
function IsNTandDelphiRunning : boolean; |
var |
OSVersion : TOSVersionInfo; |
AppName : array[0..255] of char; |
begin |
Result := MakeResult(0, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code))); |
OSVersion.dwOsVersionInfoSize := sizeof(OSVersion); |
GetVersionEx(OSVersion); |
// Not running in NT or program is not Delphi itself ? |
AppName[0] := #0; |
lstrcat(AppName, PChar(ParamStr(0))); // ParamStr(0) = Application.ExeName |
{$IFDEF VER12UP} |
CharUpperBuff(AppName, High(AppName) + 1); |
{$ELSE} |
CharUpperBuff(AppName, SizeOf(AppName)); |
{$ENDIF} |
result := ( (OSVersion.dwPlatformID = VER_PLATFORM_WIN32_NT) and |
(Pos('DELPHI32.EXE', AppName) = Length(AppName) - Length('DELPHI32.EXE') + 1) ); |
end; |
function MAKE_DMHRESULTERROR(code: Cardinal) : HResult; |
initialization |
begin |
Result := MakeResult(1, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code))); |
{DirectDraw} |
if not IsNTandDelphiRunning then |
begin |
DDrawDLL := LoadLibrary('DDraw.dll'); |
DirectDrawEnumerateA := GetProcAddress(DDrawDLL,'DirectDrawEnumerateA'); |
DirectDrawEnumerateW := GetProcAddress(DDrawDLL,'DirectDrawEnumerateW'); |
{$IFDEF UNICODE} |
DirectDrawEnumerate := DirectDrawEnumerateW; |
{$ELSE} |
DirectDrawEnumerate := DirectDrawEnumerateA; |
{$ENDIF} |
DirectDrawEnumerateExA := GetProcAddress(DDrawDLL,'DirectDrawEnumerateExA'); |
DirectDrawEnumerateExW := GetProcAddress(DDrawDLL,'DirectDrawEnumerateExW'); |
{$IFDEF UNICODE} |
DirectDrawEnumerateEx := DirectDrawEnumerateExW; |
{$ELSE} |
DirectDrawEnumerateEx := DirectDrawEnumerateExA; |
{$ENDIF} |
DirectDrawCreate := GetProcAddress(DDrawDLL,'DirectDrawCreate'); |
DirectDrawCreateEx := GetProcAddress(DDrawDLL,'DirectDrawCreateEx'); |
DirectDrawCreateClipper := GetProcAddress(DDrawDLL,'DirectDrawCreateClipper'); |
{$IFDEF WINNT} |
NtDirectDrawCreate := GetProcAddress(DDrawDLL,'NtDirectDrawCreate'); |
{$ENDIF} |
end; |
{DirectDraw} |
{Direct3D} |
DisableFPUExceptions; |
{$IFDEF D3DRM} |
if not IsNTandDelphiRunning then |
begin |
DXFileDLL := LoadLibrary('D3DXOF.DLL'); |
DirectXFileCreate := GetProcAddress(DXFileDLL,'DirectXFileCreate'); |
end; |
{Direct3D} |
{Direct3DRM} |
if not IsNTandDelphiRunning then |
begin |
D3DRMDLL := LoadLibrary('D3DRM.dll'); |
//d3drmdef: |
D3DRMCreateColorRGB := GetProcAddress(D3DRMDLL,'D3DRMCreateColorRGB'); |
D3DRMCreateColorRGBA := GetProcAddress(D3DRMDLL,'D3DRMCreateColorRGBA'); |
D3DRMColorGetRed := GetProcAddress(D3DRMDLL,'D3DRMColorGetRed'); |
D3DRMColorGetGreen := GetProcAddress(D3DRMDLL,'D3DRMColorGetGreen'); |
D3DRMColorGetBlue := GetProcAddress(D3DRMDLL,'D3DRMColorGetBlue'); |
D3DRMColorGetAlpha := GetProcAddress(D3DRMDLL,'D3DRMColorGetAlpha'); |
D3DRMVectorAdd := GetProcAddress(D3DRMDLL,'D3DRMVectorAdd'); |
D3DRMVectorSubtract := GetProcAddress(D3DRMDLL,'D3DRMVectorSubtract'); |
D3DRMVectorReflect := GetProcAddress(D3DRMDLL,'D3DRMVectorReflect'); |
D3DRMVectorCrossProduct := GetProcAddress(D3DRMDLL,'D3DRMVectorCrossProduct'); |
D3DRMVectorDotProduct := GetProcAddress(D3DRMDLL,'D3DRMVectorDotProduct'); |
D3DRMVectorNormalize := GetProcAddress(D3DRMDLL,'D3DRMVectorNormalize'); |
D3DRMVectorModulus := GetProcAddress(D3DRMDLL,'D3DRMVectorModulus'); |
D3DRMVectorRotate := GetProcAddress(D3DRMDLL,'D3DRMVectorRotate'); |
D3DRMVectorScale := GetProcAddress(D3DRMDLL,'D3DRMVectorScale'); |
D3DRMVectorRandom := GetProcAddress(D3DRMDLL,'D3DRMVectorRandom'); |
D3DRMQuaternionFromRotation := GetProcAddress(D3DRMDLL,'D3DRMQuaternionFromRotation'); |
D3DRMQuaternionMultiply := GetProcAddress(D3DRMDLL,'D3DRMQuaternionMultiply'); |
D3DRMQuaternionSlerp := GetProcAddress(D3DRMDLL,'D3DRMQuaternionSlerp'); |
D3DRMMatrixFromQuaternion := GetProcAddress(D3DRMDLL,'D3DRMMatrixFromQuaternion'); |
D3DRMQuaternionFromMatrix := GetProcAddress(D3DRMDLL,'D3DRMQuaternionFromMatrix'); |
//d3drm: |
Direct3DRMCreate := GetProcAddress(D3DRMDLL,'Direct3DRMCreate'); |
end; |
{$ENDIF} |
{Direct3DRM} |
{DirectInput} |
Init_c_dfDIKeyboard_Objects; // set kbd GUIDs & flags |
Init_c_dfDIJoystick2_Objects; // construct Joystick2 from Joystick fmt |
// The number of bytes to allocate for an event with 'cb' data bytes. |
// |
function QWORD_ALIGN(x: LONGLONG): LONGLONG; |
if not IsNTandDelphiRunning then |
begin |
Result := x + 7; |
PDWORD(@Result)^ := PDWORD(@Result)^ and (not 7); |
DInputDLL := LoadLibrary('DInput.dll'); |
DirectInputCreateA := GetProcAddress(DInputDLL,'DirectInputCreateA'); |
DirectInputCreateW := GetProcAddress(DInputDLL,'DirectInputCreateW'); |
// no A/W version |
DirectInputCreateEx := GetProcAddress(DInputDLL,'DirectInputCreateEx'); |
{$IFDEF UNICODE} |
DirectInputCreate := DirectInputCreateW; |
{$ELSE} |
DirectInputCreate := DirectInputCreateA; |
{$ENDIF} |
end; |
{DirectInput} |
{DirectPlay} |
{$IFDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
if not IsNTandDelphiRunning then |
begin |
DPlayDLL := LoadLibrary('DPlayX.dll'); |
function DMUS_EVENT_SIZE(cb: LONGLONG): LONGLONG; |
DirectPlayEnumerateA := GetProcAddress(DPlayDLL,'DirectPlayEnumerateA'); |
DirectPlayEnumerateW := GetProcAddress(DPlayDLL,'DirectPlayEnumerateW'); |
{$IFDEF UNICODE} |
DirectPlayEnumerate := DirectPlayEnumerateW; |
{$ELSE} |
DirectPlayEnumerate := DirectPlayEnumerateA; |
{$ENDIF} |
DirectPlayCreate := GetProcAddress(DPlayDLL,'DirectPlayCreate'); |
// File: dplay.h |
DirectPlayLobbyCreateW := GetProcAddress(DPlayDLL,'DirectPlayLobbyCreateW'); |
DirectPlayLobbyCreateA := GetProcAddress(DPlayDLL,'DirectPlayLobbyCreateA'); |
{$IFDEF UNICODE} |
DirectPlayLobbyCreate := DirectPlayLobbyCreateW; |
{$ELSE} |
DirectPlayLobbyCreate := DirectPlayLobbyCreateA; |
{$ENDIF} |
end; |
{$ENDIF} // UseDirectPlay |
{DirectPlay} |
{DirectSetup} |
if not IsNTandDelphiRunning then |
begin |
Result := QWORD_ALIGN(SizeOf(DMUS_EVENTHEADER) + cb); |
LoadDSetup; |
end; |
{DirectSetup} |
{DirectSound} |
if not IsNTandDelphiRunning then |
begin |
DSoundDLL := LoadLibrary('DSound.dll'); |
DirectSoundCreate := GetProcAddress(DSoundDLL,'DirectSoundCreate'); |
end. |
DirectSoundEnumerateW := GetProcAddress(DSoundDLL,'DirectSoundEnumerateW'); |
DirectSoundEnumerateA := GetProcAddress(DSoundDLL,'DirectSoundEnumerateA'); |
{$IFDEF UNICODE} |
DirectSoundEnumerate := DirectSoundEnumerateW; |
{$ELSE} |
DirectSoundEnumerate := DirectSoundEnumerateA; |
{$ENDIF} |
DirectSoundCaptureCreate := |
GetProcAddress(DSoundDLL,'DirectSoundCaptureCreate'); |
DirectSoundCaptureEnumerateW := |
GetProcAddress(DSoundDLL,'DirectSoundCaptureEnumerateW'); |
DirectSoundCaptureEnumerateA := |
GetProcAddress(DSoundDLL,'DirectSoundCaptureEnumerateA'); |
{$IFDEF UNICODE} |
DirectSoundCaptureEnumerate := DirectSoundCaptureEnumerateW; |
{$ELSE} |
DirectSoundCaptureEnumerate := DirectSoundCaptureEnumerateA; |
{$ENDIF} |
end; |
{DirectSound} |
end; |
finalization |
begin |
{DirectDraw} |
if DDrawDLL <> 0 then FreeLibrary(DDrawDLL); |
{DirectDraw} |
{Direct3D} |
FreeLibrary(DXFileDLL); |
{Direct3D} |
{Direct3DRM} |
{$IFDEF D3DRM} |
if D3DRMDLL <> 0 then FreeLibrary(D3DRMDLL); |
{$ENDIF} |
{Direct3DRM} |
{DirectInput} |
FreeLibrary(DInputDLL); |
{DirectInput} |
{DirectPlay} |
{$IFDEF UseDirectPlay} // Daniel Marschall 12.04.2024 Added to avoid Windows showing "This app requires DirectPlay" |
if DPlayDLL <> 0 then FreeLibrary(DPlayDLL); |
{$ENDIF} // UseDirectPlay |
{DirectPlay} |
{DirectSetup} |
FreeLibrary(DSetupDLL); |
{DirectSetup} |
{DirectSound} |
FreeLibrary(DSoundDLL); |
{DirectSound} |
end; |
End. |
/VCL_DELPHIX_D6/DIB.pas |
---|
1,35 → 1,81 |
{*******************************************************} |
{ } |
{ DIB and PAINTBOX componets } |
{ } |
{ Copyright (C) 1997-2000 Hiroyuki Hori } |
{ base components and effects } |
{ Copyright (C) 2000 Keith Murray } |
{ supernova effect } |
{ Copyright (C) 2000 Michel Hibon } |
{ new special effects added for DIB } |
{ Copyright (C) 2001 Joakim Back } |
{ conFusion effects (as DxFusion) } |
{ Copyright (C) 2003 Babak Sateli } |
{ 24-bit DIB effect as supplement ones } |
{ Copyright (C) 2004-2012 Jaro Benes } |
{ 32-bit DIB effect with alphachannel } |
{ direct works with texture buffer } |
{ modified and adapted all adopted functions } |
{ } |
{*******************************************************} |
unit DIB; |
interface |
{$INCLUDE DelphiXcfg.inc} |
{$DEFINE USE_SCANLINE} |
uses |
Windows, SysUtils, Classes, Graphics, Controls; |
Windows, SysUtils, Classes, Graphics, Controls, |
{$IFDEF VER7UP} Types, {$ENDIF} |
{$IFDEF VER9UP} GraphUtil, {$ENDIF} |
{$IFDEF VER17UP} UITypes,{$ENDIF} |
Math; |
type |
TColorLineStyle = (csSolid, csGradient, csRainbow); |
TColorLinePixelGeometry = (pgPoint, pgCircular, pgRectangular); |
PRGBQuads = ^TRGBQuads; |
TRGBQuads = array[0..255] of TRGBQuad; |
TPaletteEntries = array[0..255] of TPaletteEntry; |
PBGRA = ^TBGRA; |
TBGRA = packed record |
B, G, R, A: Byte; |
end; |
TLinesA = array[0..0] of TBGRA; |
PLinesA = ^TLinesA; |
PBGR = ^TBGR; |
TBGR = packed record |
B, G, R: Byte; |
end; |
{ Added this type for New SPecial Effect } |
TFilter = array[0..2, 0..2] of SmallInt; |
TLines = array[0..0] of TBGR; |
PLines = ^TLines; |
TBytes = array[0..0] of Byte; |
PBytes = ^TBytes; |
TPBytes = array[0..0] of PBytes; |
PPBytes = ^TPBytes; |
{ End of type's } |
PArrayBGR = ^TArrayBGR; |
TArrayBGR = array[0..10000] of TBGR; |
TArrayBGR = array[0..0] of TBGR; |
PArrayByte = ^TArrayByte; |
TArrayByte = array[0..10000] of Byte; |
TArrayByte = array[0..0] of Byte; |
PArrayWord = ^TArrayWord; |
TArrayWord = array[0..10000] of Word; |
TArrayWord = array[0..0] of Word; |
PArrayDWord = ^TArrayDWord; |
TArrayDWord = array[0..10000] of DWord; |
TArrayDWord = array[0..0] of DWord; |
{ TDIB } |
{ TDIBPixelFormat } |
TDIBPixelFormat = record |
RBitMask, GBitMask, BBitMask: DWORD; |
38,6 → 84,8 |
RBitCount2, GBitCount2, BBitCount2: DWORD; |
end; |
{ TDIBSharedImage } |
TDIBSharedImage = class(TSharedImage) |
private |
FBitCount: Integer; |
64,7 → 112,7 |
constructor Create; |
procedure NewImage(AWidth, AHeight, ABitCount: Integer; |
const PixelFormat: TDIBPixelFormat; const ColorTable: TRGBQuads; MemoryImage, Compressed: Boolean); |
procedure Duplicate(Source: TDIBSharedImage; MemoryImage: Boolean); |
procedure Duplicate(Source: TDIBSharedImage; MemoryImage: Boolean); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure Compress(Source: TDIBSharedImage); |
procedure Decompress(Source: TDIBSharedImage; MemoryImage: Boolean); |
procedure ReadData(Stream: TStream; MemoryImage: Boolean); |
76,6 → 124,33 |
destructor Destroy; override; |
end; |
{ TFilterTypeResample } |
TFilterTypeResample = (ftrBox, ftrTriangle, ftrHermite, ftrBell, ftrBSpline, |
ftrLanczos3, ftrMitchell); |
TDistortType = (dtFast, dtSlow); |
{DXFusion effect type} |
TFilterMode = (fmNormal, fmMix50, fmMix25, fmMix75); |
{ TLightSource } |
TLightSource = record |
X, Y: Integer; |
Size1, Size2: Integer; |
Color: TColor; |
end; |
{ TLightArray } |
TLightArray = array{$IFNDEF VER4UP}[0..0]{$ENDIF} of TLightsource; |
{ TMatrixSetting } |
TMatrixSetting = array[0..9] of Integer; |
{ TDIB } |
TDIB = class(TGraphic) |
private |
FCanvas: TCanvas; |
96,6 → 171,10 |
FTopPBits: Pointer; |
FWidth: Integer; |
FWidthBytes: Integer; |
FLUTDist: array[0..255, 0..255] of Integer; |
LG_COUNT: Integer; |
LG_DETAIL: Integer; |
FFreeList: TList; |
procedure AllocHandle; |
procedure CanvasChanging(Sender: TObject); |
procedure Changing(MemoryImage: Boolean); |
113,15 → 192,28 |
function GetTopPBits: Pointer; |
function GetTopPBitsReadOnly: Pointer; |
procedure SetBitCount(Value: Integer); |
procedure SetImage(Value: TDIBSharedImage); |
procedure SetImage(Value: TDIBSharedImage); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure SetNowPixelFormat(const Value: TDIBPixelFormat); |
procedure SetPixel(X, Y: Integer; Value: DWORD); |
procedure StartProgress(const Name: string); |
procedure EndProgress; |
procedure UpdateProgress(PercentY: Integer); |
{ Added these 3 functions for New Specials Effects } |
function Interval(iMin, iMax, iValue: Integer; iMark: Boolean): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
function IntToByte(i: Integer): Byte; {$IFDEF VER9UP}inline;{$ENDIF} |
function TrimInt(i, Min, Max: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
{ End of 3 functions for New Special Effect } |
procedure Darkness(Amount: Integer); |
function GetAlphaChannel: TDIB; |
procedure SetAlphaChannel(const Value: TDIB); |
function GetClientRect: TRect; |
function GetRGBChannel: TDIB; |
procedure SetRGBChannel(const Value: TDIB); |
protected |
procedure DefineProperties(Filer: TFiler); override; |
procedure Draw(ACanvas: TCanvas; const Rect: TRect); override; |
procedure Draw(ACanvas: TCanvas; const ARect: TRect); override; |
function GetEmpty: Boolean; override; |
function GetHeight: Integer; override; |
function GetPalette: HPalette; override; |
131,6 → 223,10 |
procedure SetPalette(Value: HPalette); override; |
procedure SetWidth(Value: Integer); override; |
procedure WriteData(Stream: TStream); override; |
{$IFDEF VER16UP} |
function GetSupportsPartialTransparency: Boolean; override; |
{$ENDIF} |
function GetTransparent: Boolean; override; |
public |
ColorTable: TRGBQuads; |
PixelFormat: TDIBPixelFormat; |
141,6 → 237,9 |
procedure Compress; |
procedure Decompress; |
procedure FreeHandle; |
function HasAlphaChannel: Boolean; |
function AssignAlphaChannel(ALPHA: TDIB; ForceResize: Boolean{$IFDEF VER4UP} = False{$ENDIF}): Boolean; |
procedure RetAlphaChannel(out oDIB: TDIB); |
procedure LoadFromClipboardFormat(AFormat: Word; AData: THandle; |
APalette: HPALETTE); override; |
procedure LoadFromStream(Stream: TStream); override; |
147,14 → 246,168 |
procedure SaveToClipboardFormat(var AFormat: Word; var AData: THandle; |
var APalette: HPALETTE); override; |
procedure SaveToStream(Stream: TStream); override; |
procedure SetSize(AWidth, AHeight, ABitCount: Integer); |
procedure SetSize(AWidth, AHeight, ABitCount: Integer); {$IFDEF VER5UP}reintroduce;{$ENDIF} //{$IFDEF VER9UP} overload;{$ENDIF} |
procedure UpdatePalette; |
{ Special effect } |
procedure Blur(ABitCount: Integer; Radius: Integer); |
procedure Greyscale(ABitCount: Integer); |
procedure Mirror(MirrorX, MirrorY: Boolean); |
procedure Negative; |
procedure Negative; {$IFDEF VER9UP}inline;{$ENDIF} |
{ Added New Special Effect } |
procedure Spray(Amount: Integer); |
procedure Emboss; |
procedure AddMonoNoise(Amount: Integer); |
procedure AddGradiantNoise(Amount: byte); |
function Twist(bmp: TDIB; Amount: byte): Boolean; |
function FishEye(bmp: TDIB): Boolean; |
function SmoothRotateWrap(Bmp: TDIB; cx, cy: Integer; Degree: Extended): Boolean; |
procedure Lightness(Amount: Integer); |
procedure Saturation(Amount: Integer); |
procedure Contrast(Amount: Integer); |
procedure AddRGB(aR, aG, aB: Byte); |
function Filter(Dest: TDIB; Filter: TFilter): Boolean; |
procedure Sharpen(Amount: Integer); |
function IntToColor(i: Integer): TBGR; {$IFDEF VER9UP}inline;{$ENDIF} |
function Rotate(Dst: TDIB; cx, cy: Integer; Angle: Double): Boolean; |
procedure SplitBlur(Amount: Integer); |
procedure GaussianBlur(Bmp: TDIB; Amount: Integer); |
{ End of New Special Effect } |
{ |
New effect for TDIB |
with Some Effects like AntiAlias, Contrast, |
Lightness, Saturation, GaussianBlur, Mosaic, |
Twist, Splitlight, Trace, Emboss, etc. |
Works with 24bit color DIBs. |
This component is based on TProEffectImage component version 1.0 by |
Written By Babak Sateli (babak_sateli@yahoo.com, http://raveland.netfirms.com) |
and modified by (c) 2004 Jaro Benes |
for DelphiX use. |
Demo was modified into DXForm with function like original |
DISCLAIMER |
This component is provided AS-IS without any warranty of any kind, either express or |
implied. This component is freeware and can be used in any software product. |
} |
procedure DoInvert; |
procedure DoAddColorNoise(Amount: Integer); |
procedure DoAddMonoNoise(Amount: Integer); |
procedure DoAntiAlias; |
procedure DoContrast(Amount: Integer); |
procedure DoFishEye(Amount: Integer); |
procedure DoGrayScale; |
procedure DoLightness(Amount: Integer); |
procedure DoDarkness(Amount: Integer); |
procedure DoSaturation(Amount: Integer); |
procedure DoSplitBlur(Amount: Integer); |
procedure DoGaussianBlur(Amount: Integer); |
procedure DoMosaic(Size: Integer); |
procedure DoTwist(Amount: Integer); |
procedure DoSplitlight(Amount: Integer); |
procedure DoTile(Amount: Integer); |
procedure DoSpotLight(Amount: Integer; Spot: TRect); |
procedure DoTrace(Amount: Integer); |
procedure DoEmboss; |
procedure DoSolorize(Amount: Integer); |
procedure DoPosterize(Amount: Integer); |
procedure DoBrightness(Amount: Integer); |
procedure DoResample(AmountX, AmountY: Integer; TypeResample: TFilterTypeResample); |
{rotate} |
procedure DoSmoothRotate(Src: TDIB; cx, cy: Integer; Angle: Extended); |
procedure DoColorize(ForeColor, BackColor: TColor); |
{Simple explosion spoke effect} |
procedure DoNovaEffect(const sr, sg, sb, cx, cy, radius, |
nspokes, randomhue, randomspok, randgauss: Integer; onProgress: TProgressEvent); |
{Simple Mandelbrot-set drawing} |
procedure DrawMandelbrot(ao, au: Integer; bo, bu: Double); |
{Sephia effect} |
procedure SephiaEffect(Depth: Integer{$IFDEF VER4UP} = 20{$ENDIF}); |
{Simple blend pixel} |
procedure BlendPixel(const X, Y: Integer; aColor: Cardinal; Alpha: Byte); {$IFDEF VER9UP}inline;{$ENDIF} |
{Line in polar system} |
procedure LinePolar(x, y: Integer; AngleInDegree, Length: extended; |
Color: cardinal); |
{special version Dark/Light procedure in percent} |
procedure Darker(Percent: Integer); |
procedure Lighter(Percent: Integer); |
{Simple graphical crypt} |
procedure EncryptDecrypt(const Key: Integer); |
{ Standalone DXFusion } |
{--- c o n F u s i o n ---} |
{By Joakim Back, www.back.mine.nu} |
{Huge thanks to Ilkka Tuomioja for helping out with the project.} |
{ |
modified by (c) 2005 Jaro Benes for DelphiX use. |
} |
procedure CreateDIBFromBitmap(const Bitmap: TBitmap); |
{Drawing Methods.} |
procedure DrawOn(Dest: TRect; DestCanvas: TCanvas; |
Xsrc, Ysrc: Integer); |
procedure DrawTo(SrcDIB: TDIB; X, Y, Width, Height, SourceX, |
SourceY: Integer); |
procedure DrawTransparent(SrcDIB: TDIB; const X, Y, Width, Height, |
SourceX, SourceY: Integer; const Color: TColor); {$IFDEF VER5UP} reintroduce;{$ENDIF} //{$IFDEF VER9UP} overload;{$ENDIF} |
procedure DrawShadow(SrcDIB: TDIB; X, Y, Width, Height, Frame: Integer; |
FilterMode: TFilterMode); |
procedure DrawShadows(SrcDIB: TDIB; X, Y, Width, Height, Frame: Integer; |
Alpha: Byte); |
procedure DrawDarken(SrcDIB: TDIB; X, Y, Width, Height, |
Frame: Integer); |
procedure DrawAdditive(SrcDIB: TDIB; X, Y, Width, Height: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}; |
Frame: Integer{$IFDEF VER4UP} = 0{$ENDIF}); |
procedure DrawQuickAlpha(SrcDIB: TDIB; const X, Y, Width, Height, |
SourceX, SourceY: Integer; const Color: TColor; |
FilterMode: TFilterMode); |
procedure DrawTranslucent(SrcDIB: TDIB; const X, Y, Width, Height, |
SourceX, SourceY: Integer; const Color: TColor); |
procedure DrawMorphed(SrcDIB: TDIB; const X, Y, Width, Height, SourceX, |
SourceY: Integer; const Color: TColor); |
procedure DrawAlpha(SrcDIB: TDIB; const X, Y, Width, Height, SourceX, |
SourceY, Alpha: Integer; const Color: TColor); |
procedure DrawAlphaMask(SrcDIB, MaskDIB: TDIB; const X, Y, Width, |
Height, SourceX, SourceY: Integer); |
procedure DrawAntialias(SrcDIB: TDIB); |
procedure Draw3x3Matrix(SrcDIB: TDIB; Setting: TMatrixSetting); |
procedure DrawMono(SrcDIB: TDIB; const X, Y, Width, Height, SourceX, |
SourceY: Integer; const TransColor, ForeColor, BackColor: TColor); |
{One-color Filters.} |
procedure FilterLine(X1, Y1, X2, Y2: Integer; Color: TColor; |
FilterMode: TFilterMode); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure FilterRect(X, Y, Width, Height: Integer; Color: TColor; |
FilterMode: TFilterMode); {$IFDEF VER9UP}inline;{$ENDIF} |
{ Lightsource. } |
procedure InitLight(Count, Detail: Integer); |
procedure DrawLights(FLight: TLightArray; AmbientLight: TColor); |
// |
// effect for special purpose |
// |
procedure FadeOut(DIB2: TDIB; Step: Byte); {$IFDEF VER9UP} inline; {$ENDIF} |
procedure DoZoom(DIB2: TDIB; ZoomRatio: Real); |
procedure DoBlur(DIB2: TDIB); |
procedure FadeIn(DIB2: TDIB; Step: Byte); {$IFDEF VER9UP} inline; {$ENDIF} |
procedure FillDIB8(Color: Byte); {$IFDEF VER9UP} inline; {$ENDIF} |
procedure DoRotate(DIB1: TDIB; cX, cY, Angle: Integer); |
procedure Distort(DIB1: TDIB; dt: TDistortType; cX, cY, Angle: Integer; Factor: Real); |
function Ink(DIB: TDIB; const SprayInit: Boolean; const AmountSpray: Integer): Boolean; |
// lines |
procedure AntialiasedLine(x1, y1, x2, y2: Integer; color: TColor); {$IFDEF VER9UP} inline; {$ENDIF} |
function GetColorBetween(StartColor, EndColor: TColor; Pointvalue, |
FromPoint, ToPoint: Extended): TColor; |
procedure ColoredLine(const iStart, iEnd: TPoint; iColorStyle: TColorLineStyle; |
iGradientFrom, iGradientTo: TColor; iPixelGeometry: TColorLinePixelGeometry; |
iRadius: WORD); |
// standard property |
property BitCount: Integer read FBitCount write SetBitCount; |
property BitmapInfo: PBitmapInfo read GetBitmapInfo; |
property BitmapInfoSize: Integer read GetBitmapInfoSize; |
174,8 → 427,15 |
property TopPBitsReadOnly: Pointer read GetTopPBitsReadOnly; |
property Width: Integer read FWidth write SetWidth; |
property WidthBytes: Integer read FWidthBytes; |
property AlphaChannel: TDIB read GetAlphaChannel write SetAlphaChannel; |
property RGBChannel: TDIB read GetRGBChannel write SetRGBChannel; |
function CreateBitmapFromDIB: TBitmap; |
procedure Fill(aColor: TColor); |
property ClientRect: TRect read GetClientRect; |
end; |
{ TDIBitmap } |
TDIBitmap = class(TDIB) end; |
{ TCustomDXDIB } |
235,10 → 495,10 |
TDXPaintBox = class(TCustomDXPaintBox) |
published |
{$IFDEF DelphiX_Spt4}property Anchors;{$ENDIF} |
{$IFDEF VER4UP}property Anchors; {$ENDIF} |
property AutoStretch; |
property Center; |
{$IFDEF DelphiX_Spt4}property Constraints;{$ENDIF} |
{$IFDEF VER4UP}property Constraints; {$ENDIF} |
property DIB; |
property KeepAspect; |
property Stretch; |
261,34 → 521,140 |
property OnMouseDown; |
property OnMouseMove; |
property OnMouseUp; |
{$IFDEF VER9UP}property OnMouseWheel; {$ENDIF} |
{$IFDEF VER9UP}property OnResize; {$ENDIF} |
{$IFDEF VER9UP}property OnCanResize; {$ENDIF} |
{$IFDEF VER9UP}property OnContextPopup; {$ENDIF} |
property OnStartDrag; |
end; |
function MakeDIBPixelFormat(RBitCount, GBitCount, BBitCount: Integer): TDIBPixelFormat; |
function MakeDIBPixelFormatMask(RBitMask, GBitMask, BBitMask: Integer): TDIBPixelFormat; |
function pfRGB(const PixelFormat: TDIBPixelFormat; R, G, B: Byte): DWORD; |
procedure pfGetRGB(const PixelFormat: TDIBPixelFormat; Color: DWORD; var R, G, B: Byte); |
function pfGetRValue(const PixelFormat: TDIBPixelFormat; Color: DWORD): Byte; |
function pfGetGValue(const PixelFormat: TDIBPixelFormat; Color: DWORD): Byte; |
function pfGetBValue(const PixelFormat: TDIBPixelFormat; Color: DWORD): Byte; |
const |
DefaultFilterRadius: array[TFilterTypeResample] of Single = (0.5, 1, 1, 1.5, 2, 3, 2); |
function MakeDIBPixelFormat(RBitCount, GBitCount, BBitCount: Integer): TDIBPixelFormat; {$IFDEF VER9UP}inline;{$ENDIF} |
function MakeDIBPixelFormatMask(RBitMask, GBitMask, BBitMask: Integer): TDIBPixelFormat; {$IFDEF VER9UP}inline;{$ENDIF} |
function pfRGB(const PixelFormat: TDIBPixelFormat; R, G, B: Byte): DWORD; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure pfGetRGB(const PixelFormat: TDIBPixelFormat; Color: DWORD; var R, G, B: Byte); {$IFDEF VER9UP}inline;{$ENDIF} |
function pfGetRValue(const PixelFormat: TDIBPixelFormat; Color: DWORD): Byte; {$IFDEF VER9UP}inline;{$ENDIF} |
function pfGetGValue(const PixelFormat: TDIBPixelFormat; Color: DWORD): Byte; {$IFDEF VER9UP}inline;{$ENDIF} |
function pfGetBValue(const PixelFormat: TDIBPixelFormat; Color: DWORD): Byte; {$IFDEF VER9UP}inline;{$ENDIF} |
function GreyscaleColorTable: TRGBQuads; |
function RGBQuad(R, G, B: Byte): TRGBQuad; |
function PaletteEntryToRGBQuad(const Entry: TPaletteEntry): TRGBQuad; |
function PaletteEntriesToRGBQuads(const Entries: TPaletteEntries): TRGBQuads; |
function RGBQuadToPaletteEntry(const RGBQuad: TRGBQuad): TPaletteEntry; |
function RGBQuadsToPaletteEntries(const RGBQuads: TRGBQuads): TPaletteEntries; |
function RGBQuad(R, G, B: Byte): TRGBQuad; {$IFDEF VER9UP}inline;{$ENDIF} |
function PaletteEntryToRGBQuad(const Entry: TPaletteEntry): TRGBQuad; {$IFDEF VER9UP}inline;{$ENDIF} |
function PaletteEntriesToRGBQuads(const Entries: TPaletteEntries): TRGBQuads; {$IFDEF VER9UP}inline;{$ENDIF} |
function RGBQuadToPaletteEntry(const RGBQuad: TRGBQuad): TPaletteEntry; {$IFDEF VER9UP}inline;{$ENDIF} |
function RGBQuadsToPaletteEntries(const RGBQuads: TRGBQuads): TPaletteEntries; {$IFDEF VER9UP}inline;{$ENDIF} |
function PosValue(Value: Integer): Integer; |
type |
TOC = 0..511; |
function DSin(const C: TOC): Single; {$IFDEF VER9UP}inline; {$ENDIF} |
function DCos(const C: TOC): Single; {$IFDEF VER9UP}inline; {$ENDIF} |
{ Added Constants for TFilter Type } |
const |
EdgeFilter: TFilter = ((-1, -1, -1), (-1, 8, -1), (-1, -1, -1)); |
StrongOutlineFilter: TFilter = ((-100, 0, 0), (0, 0, 0), (0, 0, 100)); |
Enhance3DFilter: TFilter = ((-100, 5, 5), (5, 5, 5), (5, 5, 100)); |
LinearFilter: TFilter = ((-40, -40, -40), (-40, 255, -40), (-40, -40, -40)); |
GranularFilter: TFilter = ((-20, 5, 20), (5, -10, 5), (100, 5, -100)); |
SharpFilter: TFilter = ((-2, -2, -2), (-2, 20, -2), (-2, -2, -2)); |
{ End of constants } |
{ Added Constants for DXFusion Type } |
const |
{ 3x3 Matrix Presets. } |
msEmboss: TMatrixSetting = (-1, -1, 0, -1, 6, 1, 0, 1, 1, 6); |
msHardEmboss: TMatrixSetting = (-4, -2, -1, -2, 10, 2, -1, 2, 4, 8); |
msBlur: TMatrixSetting = (1, 2, 1, 2, 4, 2, 1, 2, 1, 16); |
msSharpen: TMatrixSetting = (-1, -1, -1, -1, 15, -1, -1, -1, -1, 7); |
msEdgeDetect: TMatrixSetting = (-1, -1, -1, -1, 8, -1, -1, -1, -1, 1); |
{Proportionaly scale of size, for recountin image sizes} |
function GetScale(SourceWidth, SourceHeight, TargetWidth, TargetHeight: Integer): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure MakeDib(out DIB: TDIB; const iWidth, iHeight, iBitCount: Integer; iFillColor: TColor{$IFDEF VER4UP} = clBlack{$ENDIF}); {$IFDEF VER4UP}overload; {$ENDIF} |
procedure{$IFDEF VER4UP}MakeDib{$ELSE}MakeDIB2{$ENDIF}(out DIB: TDIB; iBitmap: TBitmap); {$IFDEF VER4UP}overload; {$ENDIF} |
procedure MakeDIB32MaskByColor(var D: TDIB; const MaskColor: TColor{$IFDEF VER4UP} = clWhite{$ENDIF}); |
function BGR(B, G, R: Byte): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
implementation |
uses DXConsts; |
uses DXConsts, {$IFDEF PNG_GRAPHICS}pngimage,{$ENDIF} jpeg; |
function BGR(B, G, R: Byte): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := (B shl 16) or (G shl 8) or R; |
end; |
procedure MakeDIB32MaskByColor(var D: TDIB; const MaskColor: TColor{$IFDEF VER4UP} = clWhite{$ENDIF}); |
type |
PRGBA = ^TRGBA; |
TRGBA = array[0..0] of Windows.TRGBQuad; |
var |
p: PRGBA; |
y: Integer; |
x: Integer; |
B: TDIB; |
begin |
MakeDib(B, D.Width, D.Height, 32, $FFFFFF); |
B.RGBChannel := D.RGBChannel; |
if B.BitCount = 32 then |
for Y := 0 to B.Height - 1 do |
begin |
p := B.ScanLine[Y]; |
for X := 0 to B.Width - 1 do |
begin |
if (p[X].rgbBlue = GetBValue(MaskColor)) and (p[X].rgbGreen = GetGValue(MaskColor)) and (p[X].rgbRed = GetRValue(MaskColor)) then |
p[X].rgbReserved := 0 |
else |
p[X].rgbReserved := $FF |
end |
end; |
d.Assign(B); |
end; |
function GetScale(SourceWidth, SourceHeight, TargetWidth, TargetHeight: Integer): Single; |
var |
XScale, YScale: Single; |
begin |
XScale := 1; |
YScale := 1; |
if TargetWidth < SourceWidth then |
XScale := TargetWidth / SourceWidth; |
if TargetHeight < SourceHeight then |
YScale := TargetHeight / SourceHeight; |
Result := XScale; |
if YScale < Result then |
Result := YScale; |
end; |
{$IFNDEF VER4UP} |
function Max(B1, B2: Integer): Integer; |
begin |
if B1>=B2 then Result := B1 else Result := B2; |
end; |
function Min(B1, B2: Integer): Integer; |
begin |
if B1 <= B2 then Result := B1 else Result := B2; |
end; |
{$ENDIF} |
function DSin(const C: TOC): Single; {$IFDEF VER9UP}inline; {$ENDIF} |
begin |
Result := sin(((c * 360) / 511) * Pi / 180); |
end; |
function DCos(const C: TOC): Single; {$IFDEF VER9UP}inline; {$ENDIF} |
begin |
Result := cos(((c * 360) / 511) * Pi / 180); |
end; |
function MakeDIBPixelFormat(RBitCount, GBitCount, BBitCount: Integer): TDIBPixelFormat; |
begin |
Result.RBitMask := ((1 shl RBitCount)-1) shl (GBitCount+BBitCount); |
305,9 → 671,7 |
Result.BShift := 8-BBitCount; |
end; |
function MakeDIBPixelFormatMask(RBitMask, GBitMask, BBitMask: Integer): TDIBPixelFormat; |
function GetBitCount(b: Integer): Integer; |
function GetBitCount(b: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
var |
i: Integer; |
begin |
322,6 → 686,7 |
end; |
end; |
function MakeDIBPixelFormatMask(RBitMask, GBitMask, BBitMask: Integer): TDIBPixelFormat; |
begin |
Result := MakeDIBPixelFormat(GetBitCount(RBitMask), GetBitCount(GBitMask), |
GetBitCount(BBitMask)); |
352,7 → 717,7 |
with PixelFormat do |
begin |
Result := (Color and RBitMask) shr RShift; |
Result := Result or (Result shr RBitCount); |
Result := Result or (Result shr RBitCount2); |
end; |
end; |
361,7 → 726,7 |
with PixelFormat do |
begin |
Result := (Color and GBitMask) shr GShift; |
Result := Result or (Result shr GBitCount); |
Result := Result or (Result shr GBitCount2); |
end; |
end; |
370,7 → 735,7 |
with PixelFormat do |
begin |
Result := (Color and BBitMask) shl BShift; |
Result := Result or (Result shr BBitCount); |
Result := Result or (Result shr BBitCount2); |
end; |
end; |
447,6 → 812,8 |
RBitMask, GBitMask, BBitMask: DWORD; |
end; |
{ TPaletteItem } |
TPaletteItem = class(TCollectionItem) |
private |
ID: Integer; |
456,9 → 823,11 |
ColorTableCount: Integer; |
destructor Destroy; override; |
procedure AddRef; |
procedure Release; |
procedure Release; {$IFDEF VER17UP}reintroduce;{$ENDIF} |
end; |
{ TPaletteManager } |
TPaletteManager = class |
private |
FList: TCollection; |
468,6 → 837,8 |
procedure DeletePalette(var Palette: HPalette); |
end; |
{ TPaletteItem } |
destructor TPaletteItem.Destroy; |
begin |
DeleteObject(Palette); |
485,6 → 856,8 |
if RefCount<=0 then Free; |
end; |
{ TPaletteManager } |
constructor TPaletteManager.Create; |
begin |
inherited Create; |
577,6 → 950,8 |
Result := FPaletteManager; |
end; |
{ TDIBSharedImage } |
constructor TDIBSharedImage.Create; |
begin |
inherited Create; |
592,8 → 967,10 |
InfoOfs: Integer; |
UsePixelFormat: Boolean; |
begin |
{$IFNDEF D17UP} |
{self recreation is not allowed here} |
Create; |
{$ENDIF} |
{ Pixel format check } |
case ABitCount of |
1 : if not ((PixelFormat.RBitMask=$FF0000) and (PixelFormat.GBitMask=$00FF00) and (PixelFormat.BBitMask=$0000FF)) then |
602,16 → 979,19 |
raise EInvalidGraphicOperation.Create(SInvalidDIBPixelFormat); |
8 : if not ((PixelFormat.RBitMask=$FF0000) and (PixelFormat.GBitMask=$00FF00) and (PixelFormat.BBitMask=$0000FF)) then |
raise EInvalidGraphicOperation.Create(SInvalidDIBPixelFormat); |
16: begin |
16: |
begin |
if not (((PixelFormat.RBitMask=$7C00) and (PixelFormat.GBitMask=$03E0) and (PixelFormat.BBitMask=$001F)) or |
((PixelFormat.RBitMask=$F800) and (PixelFormat.GBitMask=$07E0) and (PixelFormat.BBitMask=$001F))) then |
raise EInvalidGraphicOperation.Create(SInvalidDIBPixelFormat); |
end; |
24: begin |
24: |
begin |
if not ((PixelFormat.RBitMask=$FF0000) and (PixelFormat.GBitMask=$00FF00) and (PixelFormat.BBitMask=$0000FF)) then |
raise EInvalidGraphicOperation.Create(SInvalidDIBPixelFormat); |
end; |
32: begin |
32: |
begin |
if not ((PixelFormat.RBitMask=$FF0000) and (PixelFormat.GBitMask=$00FF00) and (PixelFormat.BBitMask=$0000FF)) then |
raise EInvalidGraphicOperation.Create(SInvalidDIBPixelFormat); |
end; |
653,11 → 1033,13 |
biCompression := BI_BITFIELDS |
else |
begin |
biCompression := 0; //none |
if (FBitCount=4) and (Compressed) then |
biCompression := BI_RLE4 |
else if (FBitCount=8) and (Compressed) then |
biCompression := BI_RLE8 |
else |
if FBitCount = 24 then |
biCompression := BI_RGB; |
end; |
biSizeImage := FSize; |
696,7 → 1078,8 |
FPBits := Pointer(GlobalAlloc(GMEM_FIXED, FSize)); |
if FPBits=nil then |
OutOfMemoryError; |
end else |
end |
else |
begin |
FDC := CreateCompatibleDC(0); |
713,11 → 1096,17 |
procedure TDIBSharedImage.Duplicate(Source: TDIBSharedImage; MemoryImage: Boolean); |
begin |
if Source = nil then Exit; //no source |
if Source.FSize=0 then |
begin |
{$IFNDEF D17UP} |
{self recreation is not allowed here} |
Create; |
{$ENDIF} |
FMemoryImage := MemoryImage; |
end else |
end |
else |
begin |
NewImage(Source.FWidth, Source.FHeight, Source.FBitCount, |
Source.FPixelFormat, Source.FColorTable, MemoryImage, Source.FCompressed); |
726,7 → 1115,8 |
FBitmapInfo.bmiHeader.biSizeImage := Source.FBitmapInfo.bmiHeader.biSizeImage; |
GetMem(FPBits, FBitmapInfo.bmiHeader.biSizeImage); |
Move(Source.FPBits^, FPBits^, FBitmapInfo.bmiHeader.biSizeImage); |
end else |
end |
else |
begin |
Move(Source.FPBits^, FPBits^, FBitmapInfo.bmiHeader.biSizeImage); |
end; |
789,7 → 1179,8 |
AllocByte^ := B1; |
AllocByte^ := B2; |
end else |
end |
else |
if (Source.FWidth-x>5) and ((GetPixel(x)<>GetPixel(x+2)) or (GetPixel(x+1)<>GetPixel(x+3))) and |
((GetPixel(x+2)=GetPixel(x+4)) and (GetPixel(x+3)=GetPixel(x+5))) then |
begin |
797,7 → 1188,8 |
AllocByte^ := 2; |
AllocByte^ := (GetPixel(x) shl 4) or GetPixel(x+1); |
Inc(x, 2); |
end else |
end |
else |
begin |
if (Source.FWidth-x<4) then |
begin |
815,7 → 1207,8 |
AllocByte^ := GetPixel(x) shl 4; |
Inc(x); |
end; |
end else |
end |
else |
begin |
{ Absolute mode } |
PB1 := Size; AllocByte; |
904,7 → 1297,8 |
AllocByte^ := B1; |
AllocByte^ := B2; |
end else |
end |
else |
if (Source.FWidth-x>2) and (Src^<>PByte(Integer(Src)+1)^) and (PByte(Integer(Src)+1)^=PByte(Integer(Src)+2)^) then |
begin |
{ Encoding mode } |
911,7 → 1305,8 |
AllocByte^ := 1; |
AllocByte^ := Src^; Inc(Src); |
Inc(x); |
end else |
end |
else |
begin |
if (Source.FWidth-x<4) then |
begin |
924,13 → 1319,15 |
AllocByte^ := 1; |
AllocByte^ := Src^; Inc(Src); |
Inc(x, 2); |
end else |
end |
else |
begin |
AllocByte^ := 1; |
AllocByte^ := Src^; Inc(Src); |
Inc(x); |
end; |
end else |
end |
else |
begin |
{ Absolute mode } |
PB1 := Size; AllocByte; |
979,7 → 1376,8 |
begin |
if Source.FCompressed then |
Duplicate(Source, Source.FMemoryImage) |
else begin |
else |
begin |
NewImage(Source.FWidth, Source.FHeight, Source.FBitCount, |
Source.FPixelFormat, Source.FColorTable, True, True); |
case FBitmapInfo.bmiHeader.biCompression of |
1030,7 → 1428,8 |
if i and 1=0 then |
begin |
C := Src^; Inc(Src); |
end else |
end |
else |
begin |
C := C shl 4; |
end; |
1044,7 → 1443,8 |
Inc(X); |
end; |
end; |
end else |
end |
else |
begin |
{ Encoding mode } |
Dest := Pointer(Longint(FPBits)+Y*FWidthBytes); |
1101,7 → 1501,8 |
{ Absolute mode } |
Move(Src^, Dest^, B2); Inc(Dest, B2); Inc(Src, B2); |
end; |
end else |
end |
else |
begin |
{ Encoding mode } |
FillChar(Dest^, B1, B2); Inc(Dest, B1); |
1115,7 → 1516,8 |
begin |
if not Source.FCompressed then |
Duplicate(Source, MemoryImage) |
else begin |
else |
begin |
NewImage(Source.FWidth, Source.FHeight, Source.FBitCount, |
Source.FPixelFormat, Source.FColorTable, MemoryImage, False); |
case Source.FBitmapInfo.bmiHeader.biCompression of |
1136,6 → 1538,7 |
procedure LoadRLE4; |
begin |
FSize := BI.biSizeImage; |
//GetMem(FPBits, FSize); |
FPBits := GlobalAllocPtr(GMEM_FIXED, FSize); |
FBitmapInfo.bmiHeader.biSizeImage := FSize; |
Stream.ReadBuffer(FPBits^, FSize); |
1144,6 → 1547,7 |
procedure LoadRLE8; |
begin |
FSize := BI.biSizeImage; |
//GetMem(FPBits, FSize); |
FPBits := GlobalAllocPtr(GMEM_FIXED, FSize); |
FBitmapInfo.bmiHeader.biSizeImage := FSize; |
Stream.ReadBuffer(FPBits^, FSize); |
1157,7 → 1561,8 |
begin |
for y:=0 to Abs(BI.biHeight)-1 do |
Stream.ReadBuffer(Pointer(Integer(FTopPBits)+y*FNextLine)^, FWidthBytes); |
end else |
end |
else |
begin |
Stream.ReadBuffer(FPBits^, FSize); |
end; |
1170,12 → 1575,17 |
AColorTable: TRGBQuads; |
APixelFormat: TDIBPixelFormat; |
begin |
if not Assigned(Stream) then Exit; |
{ Header size reading } |
i := Stream.Read(BI.biSize, 4); |
if i=0 then |
begin |
{$IFNDEF D17UP} |
{self recreation is not allowed here} |
Create; |
{$ENDIF} |
Exit; |
end; |
if i<>4 then |
1216,7 → 1626,8 |
Stream.ReadBuffer(Localpf, SizeOf(Localpf)); |
with Localpf do |
APixelFormat := MakeDIBPixelFormatMask(RBitMask, GBitMask, BBitMask); |
end else |
end |
else |
begin |
if BI.biBitCount=16 then |
APixelFormat := MakeDIBPixelFormat(5, 5, 5) |
1243,13 → 1654,14 |
with BCRGB[i] do |
AColorTable[i] := RGBQuad(rgbtRed, rgbtGreen, rgbtBlue); |
end; |
end else |
end |
else |
begin |
{ Windows type } |
Stream.ReadBuffer(AColorTable, SizeOf(TRGBQuad)*PalCount); |
end; |
{ DIB ì¬ } |
{ DIB compilation } |
NewImage(BI.biWidth, Abs(BI.biHeight), BI.biBitCount, APixelFormat, AColorTable, |
MemoryImage, BI.biCompression in [BI_RLE4, BI_RLE8]); |
1270,7 → 1682,9 |
begin |
if FOldHandle<>0 then SelectObject(FDC, FOldHandle); |
DeleteObject(FHandle); |
end else |
end |
else |
// GlobalFree(THandle(FPBits)); |
begin |
if FPBits<>nil then |
GlobalFreePtr(FPBits); |
1333,12 → 1747,28 |
begin |
inherited Create; |
SetImage(EmptyDIBImage); |
FFreeList := TList.Create; |
end; |
destructor TDIB.Destroy; |
var |
D: TDIB; |
begin |
SetImage(EmptyDIBImage); |
FCanvas.Free; |
while FFreeList.Count > 0 do |
try |
D := TDIB(FFreeList[0]); |
FFreeList.Remove(D); |
if (D <> nil) and (D.Height > 0) and (D.Width > 0) then //is really pointed to image? |
D.Free; |
except |
// it is silent exception, but it can through outer (abstract) exception |
end; |
FFreeList.Free; |
inherited Destroy; |
end; |
1372,12 → 1802,14 |
if DIBSectionRec^.dsBm.bmBitsPixel>=24 then |
begin |
PixelFormat := MakeDIBPixelFormat(8, 8, 8); |
end else |
end |
else |
if DIBSectionRec^.dsBm.bmBitsPixel>8 then |
begin |
PixelFormat := MakeDIBPixelFormat(DIBSectionRec^.dsBitfields[0], |
PixelFormat := MakeDIBPixelFormatMask(DIBSectionRec^.dsBitfields[0], //correct I.Ceneff, thanks |
DIBSectionRec^.dsBitfields[1], DIBSectionRec^.dsBitfields[2]); |
end else |
end |
else |
begin |
PixelFormat := MakeDIBPixelFormat(8, 8, 8); |
end; |
1393,14 → 1825,64 |
end; |
procedure AssignGraphic(Source: TGraphic); |
{$IFDEF PNG_GRAPHICS} |
var |
alpha: TDIB; |
png: {$IFDEF VER12UP}TPngImage{$ELSE}TPNGObject{$ENDIF}; |
i, j: Integer; |
q: pByteArray; |
{$ENDIF} |
begin |
{$IFDEF PNG_GRAPHICS} |
if Source is {$IFDEF VER12UP}TPngImage{$ELSE}TPNGObject{$ENDIF} then |
begin |
alpha := TDIB.Create; |
try |
{png image} |
png := {$IFDEF VER12UP}TPngImage{$ELSE}TPNGObject{$ENDIF}.Create; |
try |
png.Assign(Source); |
if png.TransparencyMode = ptmPartial then |
begin |
Alpha.SetSize(png.Width, png.Height, 8); |
{separate alpha} |
for i := 0 to png.Height - 1 do |
begin |
q := png.AlphaScanline[i]; |
for j := 0 to png.Width - 1 do |
alpha.Pixels[j,i] := q[j]; |
end; |
end; |
SetSize(png.Width, png.Height, 32); |
FillChar(PBits^, Size, 0); |
Canvas.Draw(0, 0, png); |
Transparent := png.Transparent; |
finally |
png.Free; |
end; |
if not alpha.Empty then |
AssignAlphaChannel(alpha); |
finally |
alpha.Free; |
end; |
end |
else |
{$ENDIF} |
if Source is TBitmap then |
AssignBitmap(TBitmap(Source)) |
else |
begin |
SetSize(Source.Width, Source.Height, 32); |
FillChar(PBits^, Size, 0); |
Canvas.Draw(0, 0, Source); |
Transparent := Source.Transparent; |
if not HasAlphaChannel then |
begin |
SetSize(Source.Width, Source.Height, 24); |
FillChar(PBits^, Size, 0); |
Canvas.Draw(0, 0, Source); |
Transparent := Source.Transparent; |
end |
end; |
end; |
1425,7 → 1907,7 |
inherited Assign(Source); |
end; |
procedure TDIB.Draw(ACanvas: TCanvas; const Rect: TRect); |
procedure TDIB.Draw(ACanvas: TCanvas; const ARect: TRect); |
var |
OldPalette: HPalette; |
OldMode: Integer; |
1436,7 → 1918,8 |
begin |
OldPalette := SelectPalette(ACanvas.Handle, Palette, False); |
RealizePalette(ACanvas.Handle); |
end else |
end |
else |
OldPalette := 0; |
try |
OldMode := SetStretchBltMode(ACanvas.Handle, COLORONCOLOR); |
1444,14 → 1927,18 |
GdiFlush; |
if FImage.FMemoryImage then |
begin |
with Rect do |
StretchDIBits(ACanvas.Handle, Left, Top, Right - Left, Bottom - Top, |
0, 0, Width, Height, FImage.FPBits, FImage.FBitmapInfo^, DIB_RGB_COLORS , ACanvas.CopyMode); |
end else |
with ARect do |
begin |
with Rect do |
if StretchDIBits(ACanvas.Handle, Left, Top, Right - Left, Bottom - Top, |
0, 0, Self.Width, Self.Height, FImage.FPBits, FImage.FBitmapInfo^, DIB_RGB_COLORS, ACanvas.CopyMode) = 0 then |
MessageBeep(1); |
end; |
end |
else |
begin |
with ARect do |
StretchBlt(ACanvas.Handle, Left, Top, Right - Left, Bottom - Top, |
FImage.FDC, 0, 0, Width, Height, ACanvas.CopyMode); |
FImage.FDC, 0, 0, Self.Width, Self.Height, ACanvas.CopyMode); |
end; |
finally |
SetStretchBltMode(ACanvas.Handle, OldMode); |
1557,6 → 2044,161 |
end; |
end; |
type |
PRGBA = ^TRGBA; |
TRGBA = array[0..0] of Windows.TRGBQuad; |
function TDIB.HasAlphaChannel: Boolean; |
{give that DIB contain the alphachannel} |
var |
p: PRGBA; |
X, Y: Integer; |
begin |
Result := True; |
if BitCount = 32 then |
for Y := 0 to Height - 1 do |
begin |
p := ScanLine[Y]; |
for X := 0 to Width - 1 do |
begin |
if p[X].rgbReserved <> $0 then Exit; |
end |
end; |
Result := False; |
end; |
function TDIB.AssignAlphaChannel(ALPHA: TDIB; ForceResize: Boolean{$IFDEF VER4UP} = False{$ENDIF}): Boolean; |
{copy alphachannel from other DIB or add from DIB8} |
var |
p32_0, p32_1: PRGBA; |
p24: Pointer; |
pB: PArrayByte; |
X, Y: Integer; |
tmpDIB, qAlpha: TDIB; |
begin |
Result := False; |
if GetEmpty then Exit; |
{Alphachannel can be copy into 32bit DIB only!} |
if BitCount <> 32 then |
begin |
tmpDIB := TDIB.Create; |
try |
tmpDIB.Assign(Self); |
Clear; |
SetSize(tmpDIB.Width, tmpDIB.Height, 32); |
Canvas.Draw(0, 0, tmpDIB); |
finally |
tmpDIB.Free; |
end; |
end; |
qAlpha := TDIB.Create; |
try |
if not Assigned(Alpha) then Exit; |
if ForceResize then |
begin |
{create temp} |
tmpDIB := TDIB.Create; |
try |
{picture} |
tmpDIB.Assign(ALPHA); |
{resample size} |
tmpDIB.DoResample(Width, Height, ftrBSpline); |
{convert to greyscale} |
tmpDIB.Greyscale(8); |
{return picture to qAlpha} |
qAlpha.Assign(tmpDIB); |
finally |
tmpDIB.Free; |
end; |
end |
else |
{Must be the same size!} |
if not ((Width = ALPHA.Width) and (Height = ALPHA.Height)) then Exit |
else qAlpha.Assign(ALPHA); |
{It works now with qAlpha only} |
case qAlpha.BitCount of |
24: |
begin |
for Y := 0 to Height - 1 do |
begin |
p32_0 := ScanLine[Y]; |
p24 := qAlpha.ScanLine[Y]; |
for X := 0 to Width - 1 do with PBGR(p24)^ do |
begin |
p32_0[X].rgbReserved := Round(0.30 * R + 0.59 * G + 0.11 * B); |
end |
end; |
end; |
32: |
begin |
for Y := 0 to Height - 1 do |
begin |
p32_0 := ScanLine[Y]; |
p32_1 := qAlpha.ScanLine[Y]; |
for X := 0 to Width - 1 do |
begin |
p32_0[X].rgbReserved := p32_1[X].rgbReserved; |
end |
end; |
end; |
8: |
begin |
for Y := 0 to Height - 1 do |
begin |
p32_0 := ScanLine[Y]; |
pB := qAlpha.ScanLine[Y]; |
for X := 0 to Width - 1 do |
begin |
p32_0[X].rgbReserved := pB[X]; |
end |
end; |
end; |
1: |
begin |
for Y := 0 to Height - 1 do |
begin |
p32_0 := ScanLine[Y]; |
pB := qAlpha.ScanLine[Y]; |
for X := 0 to Width - 1 do |
begin |
if pB[X] = 0 then |
p32_0[X].rgbReserved := $FF |
else |
p32_0[X].rgbReserved := 0 |
end |
end; |
end; |
else |
Exit; |
end; |
Result := True; |
finally |
qAlpha.Free; |
end; |
end; |
procedure TDIB.RetAlphaChannel(out oDIB: TDIB); |
{Store alphachannel information into DIB8} |
var |
p0: PRGBA; |
pB: PArrayByte; |
X, Y: Integer; |
begin |
oDIB := nil; |
if not HasAlphaChannel then Exit; |
oDIB := TDIB.Create; |
oDIB.SetSize(Width, Height, 8); |
for Y := 0 to Height - 1 do |
begin |
p0 := ScanLine[Y]; |
pB := oDIB.ScanLine[Y]; |
for X := 0 to Width - 1 do |
begin |
pB[X] := p0[X].rgbReserved; |
end |
end; |
end; |
function TDIB.GetBitmapInfo: PBitmapInfo; |
begin |
Result := FImage.FBitmapInfo; |
1643,6 → 2285,13 |
Result := Pointer(Integer(FTopPBits)+Y*FNextLine); |
end; |
{$IFDEF VER16UP} |
function TDIB.GetSupportsPartialTransparency: Boolean; |
begin |
Result := (FBitCount = 32) and HasAlphaChannel; |
end; |
{$ENDIF} |
function TDIB.GetTopPBits: Pointer; |
begin |
Changing(True); |
1659,6 → 2308,11 |
Result := FTopPBits; |
end; |
function TDIB.GetTransparent: Boolean; |
begin |
Result := (FBitCount = 32) and HasAlphaChannel; |
end; |
function TDIB.GetWidth: Integer; |
begin |
Result := FWidth; |
1683,7 → 2337,7 |
begin |
case FBitCount of |
1 : Result := (PArrayByte(Integer(FTopPBits)+Y*FNextLine)[X shr 3] and Mask1[X and 7]) shr Shift1[X and 7]; |
4 : Result := (PArrayByte(Integer(FTopPBits)+Y*FNextLine)[X shr 1] and Mask4[X and 1]) shr Shift4[X and 1]; |
4: Result := ((PArrayByte(Integer(FTopPBits) + Y * FNextLine)[X shr 1] and Mask4[X and 1]) shr Shift4[X and 1]); |
8 : Result := PArrayByte(Integer(FTopPBits)+Y*FNextLine)[X]; |
16: Result := PArrayWord(Integer(FTopPBits)+Y*FNextLine)[X]; |
24: with PArrayBGR(Integer(FTopPBits)+Y*FNextLine)[X] do |
1693,6 → 2347,17 |
end; |
end; |
function TDIB.GetRGBChannel: TDIB; |
{Store RGB channel information into DIB24} |
begin |
Result := nil; |
if Self.Empty then Exit; |
Result := TDIB.Create; |
Result.SetSize(Width, Height, 24); |
Self.DrawOn(Bounds(0,0, Self.Width, Self.Height), Result.Canvas, 0, 0); |
FFreeList.Add(Result); |
end; |
procedure TDIB.SetPixel(X, Y: Integer; Value: DWORD); |
var |
P: PByte; |
1707,8 → 2372,8 |
P^ := (P^ and Mask1n[X and 7]) or ((Value and 1) shl Shift1[X and 7]); |
end; |
4 : begin |
P := @PArrayByte(Integer(FTopPBits)+Y*FNextLine)[X shr 3]; |
P^ := (P^ and Mask4n[X and 1]) or ((Value and 15) shl Shift4[X and 1]); |
P := (@PArrayByte(Integer(FTopPBits) + Y * FNextLine)[X shr 3]); |
P^ := ((P^ and Mask4n[X and 1]) or ((Value and 15) shl Shift4[X and 1])); |
end; |
8 : PArrayByte(Integer(FTopPBits)+Y*FNextLine)[X] := Value; |
16: PArrayWord(Integer(FTopPBits)+Y*FNextLine)[X] := Value; |
1723,6 → 2388,23 |
end; |
end; |
procedure TDIB.SetRGBChannel(const Value: TDIB); |
var |
alpha: TDIB; |
begin |
if Self.HasAlphaChannel then |
try |
RetAlphaChannel(alpha); |
Self.SetSize(Value.Width, Value.Height, 32); |
Value.DrawOn(Bounds(0,0,Value.Width, Value.Height), Self.Canvas, 0, 0); |
Self.AssignAlphaChannel(alpha, True); |
finally |
alpha.Free; |
end |
else |
Self.Assign(Value); |
end; |
procedure TDIB.DefineProperties(Filer: TFiler); |
begin |
inherited DefineProperties(Filer); |
1731,6 → 2413,8 |
end; |
type |
{ TGlobalMemoryStream } |
TGlobalMemoryStream = class(TMemoryStream) |
private |
FHandle: THandle; |
1773,6 → 2457,7 |
var |
BF: TBitmapFileHeader; |
i: Integer; |
ImageJPEG: TJPEGImage; |
begin |
{ File header reading } |
i := Stream.Read(BF, SizeOf(TBitmapFileHeader)); |
1780,6 → 2465,30 |
if i<>SizeOf(TBitmapFileHeader) then |
raise EInvalidGraphic.Create(SInvalidDIB); |
{ Is the head jpeg ?} |
if BF.bfType = $D8FF then |
begin |
ImageJPEG := TJPEGImage.Create; |
try |
try |
Stream.Position := 0; |
ImageJPEG.LoadFromStream(Stream); |
except |
on EInvalidGraphic do ImageJPEG := nil; |
end; |
if ImageJPEG <> nil then |
begin |
{set size and bitcount in natural units of jpeg} |
SetSize(ImageJPEG.Width, ImageJPEG.Height, 24); |
Canvas.Draw(0, 0, ImageJPEG); |
Exit |
end; |
finally |
ImageJPEG.Free; |
end; |
end |
else |
{ Is the head 'BM'? } |
if BF.bfType<>BitmapFileType then |
raise EInvalidGraphic.Create(SInvalidDIB); |
1838,7 → 2547,9 |
bfSize := bfOffBits+FImage.FBitmapInfo^.bmiHeader.biSizeImage; |
bfReserved1 := 0; |
bfReserved2 := 0; |
if (FBitCount = 32) and (FImage.FBitmapInfo^.bmiHeader.biCompression <> 0) then FImage.FBitmapInfo^.bmiHeader.biCompression := 0; //corrext RGB error to RGBA |
end; |
Stream.WriteBuffer(BF, SizeOf(TBitmapFileHeader)); |
WriteData(Stream); |
1864,7 → 2575,8 |
if Empty then |
begin |
SetSize(Max(Width, 1), Max(Height, 1), Value) |
end else |
end |
else |
begin |
ConvertBitCount(Value); |
end; |
2031,13 → 2743,16 |
for x:=0 to Width-1 do |
begin |
case Temp.BitCount of |
1 : begin |
1: |
begin |
i := (PArrayByte(SrcP)[X shr 3] and Mask1[X and 7]) shr Shift1[X and 7]; |
end; |
4 : begin |
4: |
begin |
i := (PArrayByte(SrcP)[X and 1] and Mask4[X and 1]) shr Shift4[X and 1]; |
end; |
8 : begin |
8: |
begin |
i := PByte(SrcP)^; |
Inc(PByte(SrcP)); |
end; |
2044,15 → 2759,18 |
end; |
case BitCount of |
1 : begin |
1: |
begin |
P := @PArrayByte(DestP)[X shr 3]; |
P^ := (P^ and Mask1n[X and 7]) or (i shl Shift1[X shr 3]); |
end; |
4 : begin |
4: |
begin |
P := @PArrayByte(DestP)[X shr 1]; |
P^ := (P^ and Mask4n[X and 1]) or (i shl Shift4[X and 1]); |
end; |
8 : begin |
8: |
begin |
PByte(DestP)^ := i; |
Inc(PByte(DestP)); |
end; |
2079,7 → 2797,8 |
for x:=0 to Width-1 do |
begin |
case Temp.BitCount of |
1 : begin |
1: |
begin |
with Temp.ColorTable[(PArrayByte(SrcP)[X shr 3] and Mask1[X and 7]) shr Shift1[X and 7]] do |
begin |
cR := rgbRed; |
2087,7 → 2806,8 |
cB := rgbBlue; |
end; |
end; |
4 : begin |
4: |
begin |
with Temp.ColorTable[(PArrayByte(SrcP)[X shr 1] and Mask4[X and 1]) shr Shift4[X and 1]] do |
begin |
cR := rgbRed; |
2095,7 → 2815,8 |
cB := rgbBlue; |
end; |
end; |
8 : begin |
8: |
begin |
with Temp.ColorTable[PByte(SrcP)^] do |
begin |
cR := rgbRed; |
2104,11 → 2825,13 |
end; |
Inc(PByte(SrcP)); |
end; |
16: begin |
16: |
begin |
pfGetRGB(Temp.NowPixelFormat, PWord(SrcP)^, cR, cG, cB); |
Inc(PWord(SrcP)); |
end; |
24: begin |
24: |
begin |
with PBGR(SrcP)^ do |
begin |
cR := R; |
2118,7 → 2841,8 |
Inc(PBGR(SrcP)); |
end; |
32: begin |
32: |
begin |
pfGetRGB(Temp.NowPixelFormat, PDWORD(SrcP)^, cR, cG, cB); |
Inc(PDWORD(SrcP)); |
end; |
2125,11 → 2849,13 |
end; |
case BitCount of |
16: begin |
16: |
begin |
PWord(DestP)^ := pfRGB(NowPixelFormat, cR, cG, cB); |
Inc(PWord(DestP)); |
end; |
24: begin |
24: |
begin |
with PBGR(DestP)^ do |
begin |
R := cR; |
2138,7 → 2864,8 |
end; |
Inc(PBGR(DestP)); |
end; |
32: begin |
32: |
begin |
PDWORD(DestP)^ := pfRGB(NowPixelFormat, cR, cG, cB); |
Inc(PDWORD(DestP)); |
end; |
2163,7 → 2890,8 |
if Temp.BitCount<=BitCount then |
begin |
PaletteToPalette_Inc; |
end else |
end |
else |
begin |
case BitCount of |
1: begin |
2177,12 → 2905,14 |
Canvas.Draw(0, 0, Temp); |
end; |
end else |
end |
else |
if (Temp.BitCount<=8) and (BitCount>8) then |
begin |
{ The image is converted from the palette color image into the rgb color image. } |
PaletteToRGB_or_RGBToRGB; |
end else |
end |
else |
if (Temp.BitCount>8) and (BitCount<=8) then |
begin |
{ The image is converted from the rgb color image into the palette color image. } |
2197,7 → 2927,8 |
UpdatePalette; |
Canvas.Draw(0, 0, Temp); |
end else |
end |
else |
if (Temp.BitCount>8) and (BitCount>8) then |
begin |
{ The image is converted from the rgb color image into the rgb color image. } |
2251,6 → 2982,211 |
Inc(FProgressY); |
end; |
procedure TDIB.Mirror(MirrorX, MirrorY: Boolean); |
var |
x, y, Width2, c: Integer; |
P1, P2, TempBuf: Pointer; |
begin |
if Empty then Exit; |
if (not MirrorX) and (not MirrorY) then Exit; |
if (not MirrorX) and (MirrorY) then |
begin |
GetMem(TempBuf, WidthBytes); |
try |
StartProgress('Mirror'); |
try |
for y := 0 to Height shr 1 - 1 do |
begin |
P1 := ScanLine[y]; |
P2 := ScanLine[Height - y - 1]; |
Move(P1^, TempBuf^, WidthBytes); |
Move(P2^, P1^, WidthBytes); |
Move(TempBuf^, P2^, WidthBytes); |
UpdateProgress(y * 2); |
end; |
finally |
EndProgress; |
end; |
finally |
FreeMem(TempBuf, WidthBytes); |
end; |
end |
else |
if (MirrorX) and (not MirrorY) then |
begin |
Width2 := Width shr 1; |
StartProgress('Mirror'); |
try |
for y := 0 to Height - 1 do |
begin |
P1 := ScanLine[y]; |
case BitCount of |
1: |
begin |
for x := 0 to Width2 - 1 do |
begin |
c := Pixels[x, y]; |
Pixels[x, y] := Pixels[Width - x - 1, y]; |
Pixels[Width - x - 1, y] := c; |
end; |
end; |
4: |
begin |
for x := 0 to Width2 - 1 do |
begin |
c := Pixels[x, y]; |
Pixels[x, y] := Pixels[Width - x - 1, y]; |
Pixels[Width - x - 1, y] := c; |
end; |
end; |
8: |
begin |
P2 := Pointer(Integer(P1) + Width - 1); |
for x := 0 to Width2 - 1 do |
begin |
PByte(@c)^ := PByte(P1)^; |
PByte(P1)^ := PByte(P2)^; |
PByte(P2)^ := PByte(@c)^; |
Inc(PByte(P1)); |
Dec(PByte(P2)); |
end; |
end; |
16: |
begin |
P2 := Pointer(Integer(P1) + (Width - 1) * 2); |
for x := 0 to Width2 - 1 do |
begin |
PWord(@c)^ := PWord(P1)^; |
PWord(P1)^ := PWord(P2)^; |
PWord(P2)^ := PWord(@c)^; |
Inc(PWord(P1)); |
Dec(PWord(P2)); |
end; |
end; |
24: |
begin |
P2 := Pointer(Integer(P1) + (Width - 1) * 3); |
for x := 0 to Width2 - 1 do |
begin |
PBGR(@c)^ := PBGR(P1)^; |
PBGR(P1)^ := PBGR(P2)^; |
PBGR(P2)^ := PBGR(@c)^; |
Inc(PBGR(P1)); |
Dec(PBGR(P2)); |
end; |
end; |
32: |
begin |
P2 := Pointer(Integer(P1) + (Width - 1) * 4); |
for x := 0 to Width2 - 1 do |
begin |
PDWORD(@c)^ := PDWORD(P1)^; |
PDWORD(P1)^ := PDWORD(P2)^; |
PDWORD(P2)^ := PDWORD(@c)^; |
Inc(PDWORD(P1)); |
Dec(PDWORD(P2)); |
end; |
end; |
end; |
UpdateProgress(y); |
end; |
finally |
EndProgress; |
end; |
end |
else |
if (MirrorX) and (MirrorY) then |
begin |
StartProgress('Mirror'); |
try |
for y := 0 to Height shr 1 - 1 do |
begin |
P1 := ScanLine[y]; |
P2 := ScanLine[Height - y - 1]; |
case BitCount of |
1: |
begin |
for x := 0 to Width - 1 do |
begin |
c := Pixels[x, y]; |
Pixels[x, y] := Pixels[Width - x - 1, Height - y - 1]; |
Pixels[Width - x - 1, Height - y - 1] := c; |
end; |
end; |
4: |
begin |
for x := 0 to Width - 1 do |
begin |
c := Pixels[x, y]; |
Pixels[x, y] := Pixels[Width - x - 1, Height - y - 1]; |
Pixels[Width - x - 1, Height - y - 1] := c; |
end; |
end; |
8: |
begin |
P2 := Pointer(Integer(P2) + Width - 1); |
for x := 0 to Width - 1 do |
begin |
PByte(@c)^ := PByte(P1)^; |
PByte(P1)^ := PByte(P2)^; |
PByte(P2)^ := PByte(@c)^; |
Inc(PByte(P1)); |
Dec(PByte(P2)); |
end; |
end; |
16: |
begin |
P2 := Pointer(Integer(P2) + (Width - 1) * 2); |
for x := 0 to Width - 1 do |
begin |
PWord(@c)^ := PWord(P1)^; |
PWord(P1)^ := PWord(P2)^; |
PWord(P2)^ := PWord(@c)^; |
Inc(PWord(P1)); |
Dec(PWord(P2)); |
end; |
end; |
24: |
begin |
P2 := Pointer(Integer(P2) + (Width - 1) * 3); |
for x := 0 to Width - 1 do |
begin |
PBGR(@c)^ := PBGR(P1)^; |
PBGR(P1)^ := PBGR(P2)^; |
PBGR(P2)^ := PBGR(@c)^; |
Inc(PBGR(P1)); |
Dec(PBGR(P2)); |
end; |
end; |
32: |
begin |
P2 := Pointer(Integer(P2) + (Width - 1) * 4); |
for x := 0 to Width - 1 do |
begin |
PDWORD(@c)^ := PDWORD(P1)^; |
PDWORD(P1)^ := PDWORD(P2)^; |
PDWORD(P2)^ := PDWORD(@c)^; |
Inc(PDWORD(P1)); |
Dec(PDWORD(P2)); |
end; |
end; |
end; |
UpdateProgress(y * 2); |
end; |
finally |
EndProgress; |
end; |
end; |
end; |
procedure TDIB.Blur(ABitCount: Integer; Radius: Integer); |
type |
TAve = record |
2270,7 → 3206,8 |
R, G, B: Byte; |
begin |
case Temp.BitCount of |
1 : begin |
1: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2285,7 → 3222,8 |
Inc(AveP); |
end; |
end; |
4 : begin |
4: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2300,7 → 3238,8 |
Inc(AveP); |
end; |
end; |
8 : begin |
8: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2316,7 → 3255,8 |
Inc(AveP); |
end; |
end; |
16: begin |
16: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2333,7 → 3273,8 |
Inc(AveP); |
end; |
end; |
24: begin |
24: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2349,7 → 3290,8 |
Inc(AveP); |
end; |
end; |
32: begin |
32: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2377,7 → 3319,8 |
R, G, B: Byte; |
begin |
case Temp.BitCount of |
1 : begin |
1: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2392,7 → 3335,8 |
Inc(AveP); |
end; |
end; |
4 : begin |
4: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2407,7 → 3351,8 |
Inc(AveP); |
end; |
end; |
8 : begin |
8: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2423,7 → 3368,8 |
Inc(AveP); |
end; |
end; |
16: begin |
16: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2440,7 → 3386,8 |
Inc(AveP); |
end; |
end; |
24: begin |
24: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2456,7 → 3403,8 |
Inc(AveP); |
end; |
end; |
32: begin |
32: |
begin |
SrcP := Pointer(Integer(Temp.TopPBits)+Y*Temp.NextLine); |
AveP := @Ave; |
for x:=0 to XCount-1 do |
2579,27 → 3527,32 |
{ The average is written. } |
case BitCount of |
1 : begin |
1: |
begin |
P := @PArrayByte(DestP)[X shr 3]; |
with Ave do |
P^ := (P^ and Mask1n[X and 7]) or (DWORD(Ord(((cR+cG+cB) div c) div 3>127)) shl Shift1[X and 7]); |
end; |
4 : begin |
4: |
begin |
P := @PArrayByte(DestP)[X shr 1]; |
with Ave do |
P^ := (P^ and Mask4n[X and 1]) or (((((cR+cG+cB) div c) div 3) shr 4) shl Shift4[X and 1]); |
end; |
8 : begin |
8: |
begin |
with Ave do |
PByte(DestP)^ := ((cR+cG+cB) div c) div 3; |
Inc(PByte(DestP)); |
end; |
16: begin |
16: |
begin |
with Ave do |
PWORD(DestP)^ := pfRGB(NowPixelFormat, cR div c, cG div c, cB div c); |
Inc(PWORD(DestP)); |
end; |
24: begin |
24: |
begin |
with PBGR(DestP)^, Ave do |
begin |
R := cR div c; |
2608,7 → 3561,8 |
end; |
Inc(PBGR(DestP)); |
end; |
32: begin |
32: |
begin |
with Ave do |
PDWORD(DestP)^ := pfRGB(NowPixelFormat, cR div c, cG div c, cB div c); |
Inc(PDWORD(DestP)); |
2657,7 → 3611,95 |
EndProgress; |
end; |
end; |
(* |
procedure TDIB.Negative; |
var |
i, i2: Integer; |
P: Pointer; |
begin |
if Empty then exit; |
if BitCount <= 8 then |
begin |
for i := 0 to 255 do |
with ColorTable[i] do |
begin |
rgbRed := 255 - rgbRed; |
rgbGreen := 255 - rgbGreen; |
rgbBlue := 255 - rgbBlue; |
end; |
UpdatePalette; |
end else |
begin |
P := PBits; |
i2 := Size; |
asm |
mov ecx,i2 |
mov eax,P |
mov edx,ecx |
{ Unit of DWORD. } |
@@qword_skip: |
shr ecx,2 |
jz @@dword_skip |
dec ecx |
@@dword_loop: |
not dword ptr [eax+ecx*4] |
dec ecx |
jnl @@dword_loop |
mov ecx,edx |
shr ecx,2 |
add eax,ecx*4 |
{ Unit of Byte. } |
@@dword_skip: |
mov ecx,edx |
and ecx,3 |
jz @@byte_skip |
dec ecx |
@@loop_byte: |
not byte ptr [eax+ecx] |
dec ecx |
jnl @@loop_byte |
@@byte_skip: |
end; |
end; |
end; |
*) |
procedure TDIB.Negative; |
var |
i: Integer; |
P: Pointer; |
i2: Integer; |
begin |
if Empty then Exit; |
if BitCount <= 8 then |
begin |
for i := 0 to 255 do |
with ColorTable[i] do |
begin |
rgbRed := 255 - rgbRed; |
rgbGreen := 255 - rgbGreen; |
rgbBlue := 255 - rgbBlue; |
end; |
UpdatePalette; |
end |
else |
begin |
P := PBits; |
i2 := Size; |
for i := 0 to i2-1 do |
begin |
PByteArray(P)^[i] := not PByteArray(P)^[i]; |
end; |
end; |
end; |
procedure TDIB.Greyscale(ABitCount: Integer); |
var |
YTblR, YTblG, YTblB: array[0..255] of Byte; |
2668,7 → 3710,7 |
DestP, SrcP: Pointer; |
P: PByte; |
begin |
if Empty then exit; |
if Empty then Exit; |
Temp := TDIB.Create; |
try |
2706,30 → 3748,36 |
for x:=0 to Width-1 do |
begin |
case Temp.BitCount of |
1 : begin |
1: |
begin |
with Temp.ColorTable[(PArrayByte(SrcP)[X shr 3] and Mask1[X and 7]) shr Shift1[X and 7]] do |
c := YTblR[rgbRed]+YTblG[rgbGreen]+YTblB[rgbBlue]; |
end; |
4 : begin |
4: |
begin |
with Temp.ColorTable[(PArrayByte(SrcP)[X shr 1] and Mask4[X and 1]) shr Shift4[X and 1]] do |
c := YTblR[rgbRed]+YTblG[rgbGreen]+YTblB[rgbBlue]; |
end; |
8 : begin |
8: |
begin |
with Temp.ColorTable[PByte(SrcP)^] do |
c := YTblR[rgbRed]+YTblG[rgbGreen]+YTblB[rgbBlue]; |
Inc(PByte(SrcP)); |
end; |
16: begin |
16: |
begin |
pfGetRGB(Temp.NowPixelFormat, PWord(SrcP)^, R, G, B); |
c := YTblR[R]+YTblR[G]+YTblR[B]; |
Inc(PWord(SrcP)); |
end; |
24: begin |
24: |
begin |
with PBGR(SrcP)^ do |
c := YTblR[R]+YTblG[G]+YTblB[B]; |
Inc(PBGR(SrcP)); |
end; |
32: begin |
32: |
begin |
pfGetRGB(Temp.NowPixelFormat, PDWORD(SrcP)^, R, G, B); |
c := YTblR[R]+YTblR[G]+YTblR[B]; |
Inc(PDWORD(SrcP)); |
2737,23 → 3785,28 |
end; |
case BitCount of |
1 : begin |
1: |
begin |
P := @PArrayByte(DestP)[X shr 3]; |
P^ := (P^ and Mask1n[X and 7]) or (DWORD(Ord(c>127)) shl Shift1[X and 7]); |
end; |
4 : begin |
4: |
begin |
P := @PArrayByte(DestP)[X shr 1]; |
P^ := (P^ and Mask4n[X and 1]) or ((c shr 4) shl Shift4[X and 1]); |
end; |
8 : begin |
8: |
begin |
PByte(DestP)^ := c; |
Inc(PByte(DestP)); |
end; |
16: begin |
16: |
begin |
PWord(DestP)^ := pfRGB(NowPixelFormat, c, c, c); |
Inc(PWord(DestP)); |
end; |
24: begin |
24: |
begin |
with PBGR(DestP)^ do |
begin |
R := c; |
2762,7 → 3815,8 |
end; |
Inc(PBGR(DestP)); |
end; |
32: begin |
32: |
begin |
PDWORD(DestP)^ := pfRGB(NowPixelFormat, c, c, c); |
Inc(PDWORD(DestP)); |
end; |
2779,253 → 3833,1597 |
end; |
end; |
procedure TDIB.Mirror(MirrorX, MirrorY: Boolean); |
var |
x, y, Width2, c: Integer; |
P1, P2, TempBuf: Pointer; |
//-------------------------------------------------------------------------------------------------- |
// Version : 0.1 - 26/06/2000 // |
// Version : 0.2 - 04/07/2000 // |
// At someone's request, i have added 3 news effects : // |
// 1 - Rotate // |
// 2 - SplitBlur // |
// 3 - GaussianBlur // |
//-------------------------------------------------------------------------------------------------- |
// - NEW SPECIAL EFFECT - (English) // |
//-------------------------------------------------------------------------------------------------- |
// At the start, my idea was to create a component derived from TCustomDXDraw. Unfortunately, // |
// it's impossible to run a graphic component (derived from TCustomDXDraw) in a conception's // |
// mode (i don't success, but perhaps, somebody know how doing ! In that case, please help me !!!)// |
// Then, i'm used the DIB's unit for my work, but this unit is poor in special effect. Knowing a // |
// library with more effect, i'm undertaked to import this library in DIB's unit. You can see the // |
// FastLib library at : // |
// // |
// -> Gordon Alex Cowie <gfody@jps.net> www.jps.net/gfody // |
// // |
// It was very difficult, because implementation's graphic was very different that DIB's unit. // |
// Sometimes, i'm deserted the possibility of original effect, particularly in conversion of DIB // |
// whith 256, 16 and 2 colors. If someone can implement this fonctionnality, thanks to tell me // |
// how this miracle is possible !!! // |
// All these procedures are translated and adapted by : // |
// // |
// -> Mickey (Michel HIBON) <mhibon@ifrance.com> http://mickey.tsx.org // |
// // |
// IMPORTANT : These procedures don't modify the DIB's unit structure // |
// Nota Bene : I don't implement these type of graphics (32 and 16 bit per pixels), // |
// for one reason : I haven't bitmaps of this type !!! // |
//-------------------------------------------------------------------------------------------------- |
//-------------------------------------------------------------------------------------------------- |
// - NOUVEAUX EFFETS SPECIAUX - (Français) // |
//-------------------------------------------------------------------------------------------------- |
// Au commencement, mon idée était de dériver un composant de TCustomDXDraw. Malheureusement, // |
// c'est impossible de faire fonctionner un composant graphique (derivé de TCustomDXDraw) en mode // |
// conception (je n'y suis pas parvenu, mais peut-être, que quelqu'un sait comment faire ! Dans // |
// ce cas, vous seriez aimable de m'aider !!!) // |
// Alors, j'ai utilisé l'unité DIB pour mon travail,mais celle-ci est pauvre en effet spéciaux. // |
// Connaissant une librairie avec beaucoup plus d'effets spéciaux, j'ai entrepris d'importer // |
// cette librairie dans l'unité DIB. Vous pouvez voir la librairie FastLib à : // |
// // |
// -> Gordon Alex Cowie <gfody@jps.net> www.jps.net/gfody // |
// // |
// C'était très difficile car l'implémentation graphique est très différente de l'unité DIB. // |
// Parfois, j'ai abandonné les possibilités de l'effet original, particulièrement dans la // |
// conversion des DIB avec 256, 16 et 2 couleurs. Si quelqu'un arrive à implémenter ces // |
// fonctionnalités, merci de me dire comment ce miracle est possible !!! // |
// Toutes ces procédures ont été traduites et adaptées par: // |
// // |
// -> Mickey (Michel HIBON) <mhibon@ifrance.com> http://mickey.tsx.org // |
// // |
// IMPORTANT : Ces procédures ne modifient pas la structure de l'unité DIB // |
// Nota Bene : Je n'ai pas implémenté ces types de graphiques (32 et 16 bit par pixels), // |
// pour une raison : je n'ai pas de bitmap de ce type !!! // |
//-------------------------------------------------------------------------------------------------- |
function TDIB.IntToColor(i: Integer): TBGR; |
begin |
if Empty then exit; |
if (not MirrorX) and (not MirrorY) then Exit; |
Result.b := i shr 16; |
Result.g := i shr 8; |
Result.r := i; |
end; |
if (not MirrorX) and (MirrorY) then |
function TDIB.Interval(iMin, iMax, iValue: Integer; iMark: Boolean): Integer; |
begin |
GetMem(TempBuf, WidthBytes); |
try |
StartProgress('Mirror'); |
try |
for y:=0 to Height shr 1-1 do |
if iMark then |
begin |
P1 := ScanLine[y]; |
P2 := ScanLine[Height-y-1]; |
if iValue < iMin then |
Result := iMin |
else |
if iValue > iMax then |
Result := iMax |
else |
Result := iValue; |
end |
else |
begin |
if iValue < iMin then |
Result := iMin |
else |
if iValue > iMax then |
Result := iMin |
else |
Result := iValue; |
end; |
end; |
Move(P1^, TempBuf^, WidthBytes); |
Move(P2^, P1^, WidthBytes); |
Move(TempBuf^, P2^, WidthBytes); |
procedure TDIB.Contrast(Amount: Integer); |
var |
x, y: Integer; |
Table1: array[0..255] of Byte; |
i: Byte; |
S, D: pointer; |
Temp1: TDIB; |
color: DWORD; |
P: PByte; |
R, G, B: Byte; |
begin |
D := nil; |
S := nil; |
Temp1 := nil; |
for i := 0 to 126 do |
begin |
y := (Abs(128 - i) * Amount) div 256; |
Table1[i] := IntToByte(i - y); |
end; |
for i := 127 to 255 do |
begin |
y := (Abs(128 - i) * Amount) div 256; |
Table1[i] := IntToByte(i + y); |
end; |
case BitCount of |
32: Exit; // I haven't bitmap of this type ! Sorry |
24: ; // nothing to do |
16: ; // I have an artificial bitmap for this type ! i don't sure that it works |
8, 4: |
begin |
Temp1 := TDIB.Create; |
Temp1.Assign(self); |
Temp1.SetSize(Width, Height, BitCount); |
for i := 0 to 255 do |
begin |
with ColorTable[i] do |
begin |
rgbRed := IntToByte(Table1[rgbRed]); |
rgbGreen := IntToByte(Table1[rgbGreen]); |
rgbBlue := IntToByte(Table1[rgbBlue]); |
end; |
end; |
UpdatePalette; |
end; |
else |
// if the number of pixel is equal to 1 then exit of procedure |
Exit; |
end; |
for y := 0 to Pred(Height) do |
begin |
case BitCount of |
24, 16: D := ScanLine[y]; |
8, 4: |
begin |
D := Temp1.ScanLine[y]; |
S := Temp1.ScanLine[y]; |
end; |
else |
end; |
for x := 0 to Pred(Width) do |
begin |
case BitCount of |
32: ; |
24: |
begin |
PBGR(D)^.B := Table1[PBGR(D)^.B]; |
PBGR(D)^.G := Table1[PBGR(D)^.G]; |
PBGR(D)^.R := Table1[PBGR(D)^.R]; |
Inc(PBGR(D)); |
end; |
16: |
begin |
pfGetRGB(NowPixelFormat, PWord(D)^, R, G, B); |
PWord(D)^ := Table1[R] + Table1[G] + Table1[B]; |
Inc(PWord(D)); |
end; |
8: |
begin |
with Temp1.ColorTable[PByte(S)^] do |
color := rgbRed + rgbGreen + rgbBlue; |
Inc(PByte(S)); |
PByte(D)^ := color; |
Inc(PByte(D)); |
end; |
4: |
begin |
with Temp1.ColorTable[PByte(S)^] do |
color := rgbRed + rgbGreen + rgbBlue; |
Inc(PByte(S)); |
P := @PArrayByte(D)[X shr 1]; |
P^ := (P^ and Mask4n[X and 1]) or (color shl Shift4[X and 1]); |
end; |
else |
end; |
end; |
end; |
case BitCount of |
8, 4: Temp1.Free; |
else |
end; |
end; |
UpdateProgress(y*2); |
procedure TDIB.Saturation(Amount: Integer); |
var |
Grays: array[0..767] of Integer; |
Alpha: array[0..255] of Word; |
Gray, x, y: Integer; |
i: Byte; |
S, D: pointer; |
Temp1: TDIB; |
color: DWORD; |
P: PByte; |
R, G, B: Byte; |
begin |
D := nil; |
S := nil; |
Temp1 := nil; |
for i := 0 to 255 do |
Alpha[i] := (i * Amount) shr 8; |
x := 0; |
for i := 0 to 255 do |
begin |
Gray := i - Alpha[i]; |
Grays[x] := Gray; |
Inc(x); |
Grays[x] := Gray; |
Inc(x); |
Grays[x] := Gray; |
Inc(x); |
end; |
finally |
EndProgress; |
case BitCount of |
32: Exit; // I haven't bitmap of this type ! Sorry |
24: ; // nothing to do |
16: ; // I have an artificial bitmap for this type ! i don't sure that it works |
8, 4: |
begin |
Temp1 := TDIB.Create; |
Temp1.Assign(self); |
Temp1.SetSize(Width, Height, BitCount); |
for i := 0 to 255 do |
begin |
with ColorTable[i] do |
begin |
Gray := Grays[rgbRed + rgbGreen + rgbBlue]; |
rgbRed := IntToByte(Gray + Alpha[rgbRed]); |
rgbGreen := IntToByte(Gray + Alpha[rgbGreen]); |
rgbBlue := IntToByte(Gray + Alpha[rgbBlue]); |
end; |
finally |
FreeMem(TempBuf, WidthBytes); |
end; |
end else if (MirrorX) and (not MirrorY) then |
UpdatePalette; |
end; |
else |
// if the number of pixel is equal to 1 then exit of procedure |
Exit; |
end; |
for y := 0 to Pred(Height) do |
begin |
Width2 := Width shr 1; |
case BitCount of |
24, 16: D := ScanLine[y]; |
8, 4: |
begin |
D := Temp1.ScanLine[y]; |
S := Temp1.ScanLine[y]; |
end; |
else |
end; |
for x := 0 to Pred(Width) do |
begin |
case BitCount of |
32: ; |
24: |
begin |
Gray := Grays[PBGR(D)^.R + PBGR(D)^.G + PBGR(D)^.B]; |
PBGR(D)^.B := IntToByte(Gray + Alpha[PBGR(D)^.B]); |
PBGR(D)^.G := IntToByte(Gray + Alpha[PBGR(D)^.G]); |
PBGR(D)^.R := IntToByte(Gray + Alpha[PBGR(D)^.R]); |
Inc(PBGR(D)); |
end; |
16: |
begin |
pfGetRGB(NowPixelFormat, PWord(D)^, R, G, B); |
PWord(D)^ := IntToByte(Gray + Alpha[B]) + IntToByte(Gray + Alpha[G]) + |
IntToByte(Gray + Alpha[R]); |
Inc(PWord(D)); |
end; |
8: |
begin |
with Temp1.ColorTable[PByte(S)^] do |
color := rgbRed + rgbGreen + rgbBlue; |
Inc(PByte(S)); |
PByte(D)^ := color; |
Inc(PByte(D)); |
end; |
4: |
begin |
with Temp1.ColorTable[PByte(S)^] do |
color := rgbRed + rgbGreen + rgbBlue; |
Inc(PByte(S)); |
P := @PArrayByte(D)[X shr 1]; |
P^ := (P^ and Mask4n[X and 1]) or (color shl Shift4[X and 1]); |
end; |
else |
end; |
end; |
end; |
case BitCount of |
8, 4: Temp1.Free; |
else |
end; |
end; |
StartProgress('Mirror'); |
try |
for y:=0 to Height-1 do |
procedure TDIB.Lightness(Amount: Integer); |
var |
x, y: Integer; |
Table1: array[0..255] of Byte; |
i: Byte; |
S, D: pointer; |
Temp1: TDIB; |
color: DWORD; |
P: PByte; |
R, G, B: Byte; |
begin |
P1 := ScanLine[y]; |
D := nil; |
S := nil; |
Temp1 := nil; |
if Amount < 0 then |
begin |
Amount := -Amount; |
for i := 0 to 255 do |
Table1[i] := IntToByte(i - ((Amount * i) shr 8)); |
end |
else |
for i := 0 to 255 do |
Table1[i] := IntToByte(i + ((Amount * (i xor 255)) shr 8)); |
case BitCount of |
1 : begin |
for x:=0 to Width2-1 do |
32: Exit; // I haven't bitmap of this type ! Sorry |
24: ; // nothing to do |
16: ; // I have an artificial bitmap for this type ! i don't sure that it works |
8, 4: |
begin |
c := Pixels[x, y]; |
Pixels[x, y] := Pixels[Width-x-1, y]; |
Pixels[Width-x-1, y] := c; |
Temp1 := TDIB.Create; |
Temp1.Assign(self); |
Temp1.SetSize(Width, Height, BitCount); |
for i := 0 to 255 do |
begin |
with ColorTable[i] do |
begin |
rgbRed := IntToByte(Table1[rgbRed]); |
rgbGreen := IntToByte(Table1[rgbGreen]); |
rgbBlue := IntToByte(Table1[rgbBlue]); |
end; |
end; |
4 : begin |
for x:=0 to Width2-1 do |
UpdatePalette; |
end; |
else |
// if the number of pixel is equal to 1 then exit of procedure |
Exit; |
end; |
for y := 0 to Pred(Height) do |
begin |
c := Pixels[x, y]; |
Pixels[x, y] := Pixels[Width-x-1, y]; |
Pixels[Width-x-1, y] := c; |
case BitCount of |
24, 16: D := ScanLine[y]; |
8, 4: |
begin |
D := Temp1.ScanLine[y]; |
S := Temp1.ScanLine[y]; |
end; |
else |
end; |
8 : begin |
P2 := Pointer(Integer(P1)+Width-1); |
for x:=0 to Width2-1 do |
for x := 0 to Pred(Width) do |
begin |
PByte(@c)^ := PByte(P1)^; |
PByte(P1)^ := PByte(P2)^; |
PByte(P2)^ := PByte(@c)^; |
Inc(PByte(P1)); |
Dec(PByte(P2)); |
case BitCount of |
32: ; |
24: |
begin |
PBGR(D)^.B := Table1[PBGR(D)^.B]; |
PBGR(D)^.G := Table1[PBGR(D)^.G]; |
PBGR(D)^.R := Table1[PBGR(D)^.R]; |
Inc(PBGR(D)); |
end; |
16: |
begin |
pfGetRGB(NowPixelFormat, PWord(D)^, R, G, B); |
PWord(D)^ := Table1[R] + Table1[G] + Table1[B]; |
Inc(PWord(D)); |
end; |
16: begin |
P2 := Pointer(Integer(P1)+(Width-1)*2); |
for x:=0 to Width2-1 do |
8: |
begin |
PWord(@c)^ := PWord(P1)^; |
PWord(P1)^ := PWord(P2)^; |
PWord(P2)^ := PWord(@c)^; |
Inc(PWord(P1)); |
Dec(PWord(P2)); |
with Temp1.ColorTable[PByte(S)^] do |
color := rgbRed + rgbGreen + rgbBlue; |
Inc(PByte(S)); |
PByte(D)^ := color; |
Inc(PByte(D)); |
end; |
4: |
begin |
with Temp1.ColorTable[PByte(S)^] do |
color := rgbRed + rgbGreen + rgbBlue; |
Inc(PByte(S)); |
P := @PArrayByte(D)[X shr 1]; |
P^ := (P^ and Mask4n[X and 1]) or (color shl Shift4[X and 1]); |
end; |
24: begin |
P2 := Pointer(Integer(P1)+(Width-1)*3); |
for x:=0 to Width2-1 do |
else |
end; |
end; |
end; |
case BitCount of |
8, 4: Temp1.Free; |
else |
end; |
end; |
procedure TDIB.AddRGB(aR, aG, aB: Byte); |
var |
Table: array[0..255] of TBGR; |
x, y: Integer; |
i: Byte; |
D: pointer; |
P: PByte; |
color: DWORD; |
Temp1: TDIB; |
R, G, B: Byte; |
begin |
PBGR(@c)^ := PBGR(P1)^; |
PBGR(P1)^ := PBGR(P2)^; |
PBGR(P2)^ := PBGR(@c)^; |
Inc(PBGR(P1)); |
Dec(PBGR(P2)); |
color := 0; |
D := nil; |
Temp1 := nil; |
case BitCount of |
32: Exit; // I haven't bitmap of this type ! Sorry |
24, 16: |
begin |
for i := 0 to 255 do |
begin |
Table[i].b := IntToByte(i + aB); |
Table[i].g := IntToByte(i + aG); |
Table[i].r := IntToByte(i + aR); |
end; |
end; |
32: begin |
P2 := Pointer(Integer(P1)+(Width-1)*4); |
for x:=0 to Width2-1 do |
8, 4: |
begin |
PDWORD(@c)^ := PDWORD(P1)^; |
PDWORD(P1)^ := PDWORD(P2)^; |
PDWORD(P2)^ := PDWORD(@c)^; |
Inc(PDWORD(P1)); |
Dec(PDWORD(P2)); |
Temp1 := TDIB.Create; |
Temp1.Assign(self); |
Temp1.SetSize(Width, Height, BitCount); |
for i := 0 to 255 do |
begin |
with ColorTable[i] do |
begin |
rgbRed := IntToByte(rgbRed + aR); |
rgbGreen := IntToByte(rgbGreen + aG); |
rgbBlue := IntToByte(rgbBlue + aB); |
end; |
end; |
UpdatePalette; |
end; |
else |
// if the number of pixel is equal to 1 then exit of procedure |
Exit; |
end; |
for y := 0 to Pred(Height) do |
begin |
case BitCount of |
24, 16: D := ScanLine[y]; |
8, 4: |
begin |
D := Temp1.ScanLine[y]; |
end; |
else |
end; |
for x := 0 to Pred(Width) do |
begin |
case BitCount of |
32: ; // I haven't bitmap of this type ! Sorry |
24: |
begin |
PBGR(D)^.B := Table[PBGR(D)^.B].b; |
PBGR(D)^.G := Table[PBGR(D)^.G].g; |
PBGR(D)^.R := Table[PBGR(D)^.R].r; |
Inc(PBGR(D)); |
end; |
16: |
begin |
pfGetRGB(NowPixelFormat, PWord(D)^, R, G, B); |
PWord(D)^ := Table[R].r + Table[G].g + Table[B].b; |
Inc(PWord(D)); |
end; |
8: |
begin |
Inc(PByte(D)); |
end; |
4: |
begin |
P := @PArrayByte(D)[X shr 1]; |
P^ := (P^ and Mask4n[X and 1]) or (color shl Shift4[X and 1]); |
end; |
else |
end; |
end; |
end; |
case BitCount of |
8, 4: Temp1.Free; |
else |
end; |
end; |
UpdateProgress(y); |
function TDIB.Filter(Dest: TDIB; Filter: TFilter): Boolean; |
var |
Sum, r, g, b, x, y: Integer; |
a, i, j: byte; |
tmp: TBGR; |
Col: PBGR; |
D: Pointer; |
begin |
Result := True; |
Sum := Filter[0, 0] + Filter[1, 0] + Filter[2, 0] + |
Filter[0, 1] + Filter[1, 1] + Filter[2, 1] + |
Filter[0, 2] + Filter[1, 2] + Filter[2, 2]; |
if Sum = 0 then |
Sum := 1; |
Col := PBits; |
for y := 0 to Pred(Height) do |
begin |
D := Dest.ScanLine[y]; |
for x := 0 to Pred(Width) do |
begin |
r := 0; g := 0; b := 0; |
case BitCount of |
32, 16, 4, 1: |
begin |
Result := False; |
Exit; |
end; |
finally |
EndProgress; |
24: |
begin |
for i := 0 to 2 do |
begin |
for j := 0 to 2 do |
begin |
Tmp := IntToColor(Pixels[Interval(0, Pred(Width), x + Pred(i), True), |
Interval(0, Pred(Height), y + Pred(j), True)]); |
Inc(b, Filter[i, j] * Tmp.b); |
Inc(g, Filter[i, j] * Tmp.g); |
Inc(r, Filter[i, j] * Tmp.r); |
end; |
end else if (MirrorX) and (MirrorY) then |
end; |
Col.b := IntToByte(b div Sum); |
Col.g := IntToByte(g div Sum); |
Col.r := IntToByte(r div Sum); |
Dest.Pixels[x, y] := rgb(Col.r, Col.g, Col.b); |
end; |
8: |
begin |
StartProgress('Mirror'); |
try |
for y:=0 to Height shr 1-1 do |
for i := 0 to 2 do |
begin |
P1 := ScanLine[y]; |
P2 := ScanLine[Height-y-1]; |
for j := 0 to 2 do |
begin |
a := (Pixels[Interval(0, Pred(Width), x + Pred(i), True), |
Interval(0, Pred(Height), y + Pred(j), True)]); |
tmp.r := ColorTable[a].rgbRed; |
tmp.g := ColorTable[a].rgbGreen; |
tmp.b := ColorTable[a].rgbBlue; |
Inc(b, Filter[i, j] * Tmp.b); |
Inc(g, Filter[i, j] * Tmp.g); |
Inc(r, Filter[i, j] * Tmp.r); |
end; |
end; |
Col.b := IntToByte(b div Sum); |
Col.g := IntToByte(g div Sum); |
Col.r := IntToByte(r div Sum); |
PByte(D)^ := rgb(Col.r, Col.g, Col.b); |
Inc(PByte(D)); |
end; |
end; |
end; |
end; |
end; |
procedure TDIB.Spray(Amount: Integer); |
var |
value, x, y: Integer; |
D: Pointer; |
color: DWORD; |
P: PByte; |
begin |
for y := Pred(Height) downto 0 do |
begin |
D := ScanLine[y]; |
for x := 0 to Pred(Width) do |
begin |
value := Random(Amount); |
color := Pixels[Interval(0, Pred(Width), x + (value - Random(value * 2)), True), |
Interval(0, Pred(Height), y + (value - Random(value * 2)), True)]; |
case BitCount of |
1 : begin |
for x:=0 to Width-1 do |
32: |
begin |
c := Pixels[x, y]; |
Pixels[x, y] := Pixels[Width-x-1, Height-y-1]; |
Pixels[Width-x-1, Height-y-1] := c; |
PDWord(D)^ := color; |
Inc(PDWord(D)); |
end; |
24: |
begin |
PBGR(D)^ := IntToColor(color); |
Inc(PBGR(D)); |
end; |
4 : begin |
for x:=0 to Width-1 do |
16: |
begin |
c := Pixels[x, y]; |
Pixels[x, y] := Pixels[Width-x-1, Height-y-1]; |
Pixels[Width-x-1, Height-y-1] := c; |
PWord(D)^ := color; |
Inc(PWord(D)); |
end; |
8: |
begin |
PByte(D)^ := color; |
Inc(PByte(D)); |
end; |
8 : begin |
P2 := Pointer(Integer(P2)+Width-1); |
for x:=0 to Width-1 do |
4: |
begin |
PByte(@c)^ := PByte(P1)^; |
PByte(P1)^ := PByte(P2)^; |
PByte(P2)^ := PByte(@c)^; |
Inc(PByte(P1)); |
Dec(PByte(P2)); |
P := @PArrayByte(D)[X shr 1]; |
P^ := (P^ and Mask4n[X and 1]) or (color shl Shift4[X and 1]); |
end; |
1: |
begin |
P := @PArrayByte(D)[X shr 3]; |
P^ := (P^ and Mask1n[X and 7]) or (color shl Shift1[X and 7]); |
end; |
16: begin |
P2 := Pointer(Integer(P2)+(Width-1)*2); |
for x:=0 to Width-1 do |
else |
end; |
end; |
end; |
end; |
procedure TDIB.Sharpen(Amount: Integer); |
var |
Lin0, Lin1, Lin2: PLines; |
pc: PBGR; |
cx, x, y: Integer; |
Buf: array[0..8] of TBGR; |
D: pointer; |
c: DWORD; |
i: byte; |
P1: PByte; |
Temp1: TDIB; |
begin |
PWord(@c)^ := PWord(P1)^; |
PWord(P1)^ := PWord(P2)^; |
PWord(P2)^ := PWord(@c)^; |
Inc(PWord(P1)); |
Dec(PWord(P2)); |
D := nil; |
GetMem(pc, SizeOf(TBGR)); |
c := 0; |
Temp1 := nil; |
case Bitcount of |
32, 16, 1: Exit; |
24: |
begin |
Temp1 := TDIB.Create; |
Temp1.Assign(self); |
Temp1.SetSize(Width, Height, bitCount); |
end; |
8: |
begin |
Temp1 := TDIB.Create; |
Temp1.Assign(self); |
Temp1.SetSize(Width, Height, bitCount); |
for i := 0 to 255 do |
begin |
with Temp1.ColorTable[i] do |
begin |
Buf[0].B := ColorTable[i - Amount].rgbBlue; |
Buf[0].G := ColorTable[i - Amount].rgbGreen; |
Buf[0].R := ColorTable[i - Amount].rgbRed; |
Buf[1].B := ColorTable[i].rgbBlue; |
Buf[1].G := ColorTable[i].rgbGreen; |
Buf[1].R := ColorTable[i].rgbRed; |
Buf[2].B := ColorTable[i + Amount].rgbBlue; |
Buf[2].G := ColorTable[i + Amount].rgbGreen; |
Buf[2].R := ColorTable[i + Amount].rgbRed; |
Buf[3].B := ColorTable[i - Amount].rgbBlue; |
Buf[3].G := ColorTable[i - Amount].rgbGreen; |
Buf[3].R := ColorTable[i - Amount].rgbRed; |
Buf[4].B := ColorTable[i].rgbBlue; |
Buf[4].G := ColorTable[i].rgbGreen; |
Buf[4].R := ColorTable[i].rgbRed; |
Buf[5].B := ColorTable[i + Amount].rgbBlue; |
Buf[5].G := ColorTable[i + Amount].rgbGreen; |
Buf[5].R := ColorTable[i + Amount].rgbRed; |
Buf[6].B := ColorTable[i - Amount].rgbBlue; |
Buf[6].G := ColorTable[i - Amount].rgbGreen; |
Buf[6].R := ColorTable[i - Amount].rgbRed; |
Buf[7].B := ColorTable[i].rgbBlue; |
Buf[7].G := ColorTable[i].rgbGreen; |
Buf[7].R := ColorTable[i].rgbRed; |
Buf[8].B := ColorTable[i + Amount].rgbBlue; |
Buf[8].G := ColorTable[i + Amount].rgbGreen; |
Buf[8].R := ColorTable[i + Amount].rgbRed; |
Temp1.colorTable[i].rgbBlue := IntToByte((256 * Buf[4].b - (Buf[0].b + Buf[1].b + Buf[2].b + Buf[3].b + |
Buf[5].b + Buf[6].b + Buf[7].b + Buf[8].b) * 16) div 128); |
Temp1.colorTable[i].rgbGreen := IntToByte((256 * Buf[4].g - (Buf[0].g + Buf[1].g + Buf[2].g + Buf[3].g + |
Buf[5].g + Buf[6].g + Buf[7].g + Buf[8].g) * 16) div 128); |
Temp1.colorTable[i].rgbRed := IntToByte((256 * Buf[4].r - (Buf[0].r + Buf[1].r + Buf[2].r + Buf[3].r + |
Buf[5].r + Buf[6].r + Buf[7].r + Buf[8].r) * 16) div 128); |
end; |
24: begin |
P2 := Pointer(Integer(P2)+(Width-1)*3); |
for x:=0 to Width-1 do |
end; |
Temp1.UpdatePalette; |
end; |
4: |
begin |
PBGR(@c)^ := PBGR(P1)^; |
PBGR(P1)^ := PBGR(P2)^; |
PBGR(P2)^ := PBGR(@c)^; |
Inc(PBGR(P1)); |
Dec(PBGR(P2)); |
Temp1 := TDIB.Create; |
Temp1.Assign(self); |
Temp1.SetSize(Width, Height, bitCount); |
for i := 0 to 255 do |
begin |
with Temp1.ColorTable[i] do |
begin |
Buf[0].B := ColorTable[i - Amount].rgbBlue; |
Buf[0].G := ColorTable[i - Amount].rgbGreen; |
Buf[0].R := ColorTable[i - Amount].rgbRed; |
Buf[1].B := ColorTable[i].rgbBlue; |
Buf[1].G := ColorTable[i].rgbGreen; |
Buf[1].R := ColorTable[i].rgbRed; |
Buf[2].B := ColorTable[i + Amount].rgbBlue; |
Buf[2].G := ColorTable[i + Amount].rgbGreen; |
Buf[2].R := ColorTable[i + Amount].rgbRed; |
Buf[3].B := ColorTable[i - Amount].rgbBlue; |
Buf[3].G := ColorTable[i - Amount].rgbGreen; |
Buf[3].R := ColorTable[i - Amount].rgbRed; |
Buf[4].B := ColorTable[i].rgbBlue; |
Buf[4].G := ColorTable[i].rgbGreen; |
Buf[4].R := ColorTable[i].rgbRed; |
Buf[5].B := ColorTable[i + Amount].rgbBlue; |
Buf[5].G := ColorTable[i + Amount].rgbGreen; |
Buf[5].R := ColorTable[i + Amount].rgbRed; |
Buf[6].B := ColorTable[i - Amount].rgbBlue; |
Buf[6].G := ColorTable[i - Amount].rgbGreen; |
Buf[6].R := ColorTable[i - Amount].rgbRed; |
Buf[7].B := ColorTable[i].rgbBlue; |
Buf[7].G := ColorTable[i].rgbGreen; |
Buf[7].R := ColorTable[i].rgbRed; |
Buf[8].B := ColorTable[i + Amount].rgbBlue; |
Buf[8].G := ColorTable[i + Amount].rgbGreen; |
Buf[8].R := ColorTable[i + Amount].rgbRed; |
colorTable[i].rgbBlue := IntToByte((256 * Buf[4].b - (Buf[0].b + Buf[1].b + Buf[2].b + Buf[3].b + |
Buf[5].b + Buf[6].b + Buf[7].b + Buf[8].b) * 16) div 128); |
colorTable[i].rgbGreen := IntToByte((256 * Buf[4].g - (Buf[0].g + Buf[1].g + Buf[2].g + Buf[3].g + |
Buf[5].g + Buf[6].g + Buf[7].g + Buf[8].g) * 16) div 128); |
colorTable[i].rgbRed := IntToByte((256 * Buf[4].r - (Buf[0].r + Buf[1].r + Buf[2].r + Buf[3].r + |
Buf[5].r + Buf[6].r + Buf[7].r + Buf[8].r) * 16) div 128); |
end; |
end; |
32: begin |
P2 := Pointer(Integer(P2)+(Width-1)*4); |
for x:=0 to Width-1 do |
UpdatePalette; |
end; |
end; |
for y := 0 to Pred(Height) do |
begin |
PDWORD(@c)^ := PDWORD(P1)^; |
PDWORD(P1)^ := PDWORD(P2)^; |
PDWORD(P2)^ := PDWORD(@c)^; |
Inc(PDWORD(P1)); |
Dec(PDWORD(P2)); |
Lin0 := ScanLine[Interval(0, Pred(Height), y - Amount, True)]; |
Lin1 := ScanLine[y]; |
Lin2 := ScanLine[Interval(0, Pred(Height), y + Amount, True)]; |
case Bitcount of |
24, 8, 4: D := Temp1.ScanLine[y]; |
end; |
for x := 0 to Pred(Width) do |
begin |
case BitCount of |
24: |
begin |
cx := Interval(0, Pred(Width), x - Amount, True); |
Buf[0] := Lin0[cx]; |
Buf[1] := Lin1[cx]; |
Buf[2] := Lin2[cx]; |
Buf[3] := Lin0[x]; |
Buf[4] := Lin1[x]; |
Buf[5] := Lin2[x]; |
cx := Interval(0, Pred(Width), x + Amount, true); |
Buf[6] := Lin0[cx]; |
Buf[7] := Lin1[cx]; |
Buf[8] := Lin0[cx]; |
pc.b := IntToByte((256 * Buf[4].b - (Buf[0].b + Buf[1].b + Buf[2].b + Buf[3].b + |
Buf[5].b + Buf[6].b + Buf[7].b + Buf[8].b) * 16) div 128); |
pc.g := IntToByte((256 * Buf[4].g - (Buf[0].g + Buf[1].g + Buf[2].g + Buf[3].g + |
Buf[5].g + Buf[6].g + Buf[7].g + Buf[8].g) * 16) div 128); |
pc.r := IntToByte((256 * Buf[4].r - (Buf[0].r + Buf[1].r + Buf[2].r + Buf[3].r + |
Buf[5].r + Buf[6].r + Buf[7].r + Buf[8].r) * 16) div 128); |
PBGR(D)^.B := pc.b; |
PBGR(D)^.G := pc.g; |
PBGR(D)^.R := pc.r; |
Inc(PBGR(D)); |
end; |
8: |
begin |
Inc(PByte(D)); |
end; |
4: |
begin |
P1 := @PArrayByte(D)[X shr 1]; |
P1^ := ((P1^ and Mask4n[X and 1]) or ((c shl Shift4[X and 1]))); |
end; |
end; |
end; |
end; |
case BitCount of |
24, 8: |
begin |
Assign(Temp1); |
Temp1.Free; |
end; |
4: Temp1.Free; |
end; |
FreeMem(pc, SizeOf(TBGR)); |
end; |
UpdateProgress(y*2); |
procedure TDIB.Emboss; |
var |
x, y: longint; |
D, D1, P: pointer; |
color: TBGR; |
c: DWORD; |
P1: PByte; |
begin |
D := nil; |
D1 := nil; |
P := nil; |
case BitCount of |
32, 16, 1: Exit; |
24: |
begin |
D := PBits; |
D1 := Ptr(Integer(D) + 3); |
end; |
finally |
EndProgress; |
else |
end; |
for y := 0 to Pred(Height) do |
begin |
case Bitcount of |
8, 4: |
begin |
P := ScanLine[y]; |
end; |
end; |
for x := 0 to Pred(Width) do |
begin |
case BitCount of |
24: |
begin |
PBGR(D)^.B := ((PBGR(D)^.B + (PBGR(D1)^.B xor $FF)) shr 1); |
PBGR(D)^.G := ((PBGR(D)^.G + (PBGR(D1)^.G xor $FF)) shr 1); |
PBGR(D)^.R := ((PBGR(D)^.R + (PBGR(D1)^.R xor $FF)) shr 1); |
Inc(PBGR(D)); |
if (y < Height - 2) and (x < Width - 2) then |
Inc(PBGR(D1)); |
end; |
8: |
begin |
color.R := (((Pixels[x, y] + (Pixels[x + 3, y] xor $FF)) shr 1) + 30) div 3; |
color.G := (((Pixels[x, y] + (Pixels[x + 3, y] xor $FF)) shr 1) + 30) div 3; |
color.B := (((Pixels[x, y] + (Pixels[x + 3, y] xor $FF)) shr 1) + 30) div 3; |
c := (color.R + color.G + color.B) shr 1; |
PByte(P)^ := c; |
Inc(PByte(P)); |
end; |
4: |
begin |
color.R := (((Pixels[x, y] + (Pixels[x + 3, y] xor $FF) + 1) shr 1) + 30) div 3; |
color.G := (((Pixels[x, y] + (Pixels[x + 3, y] xor $FF) - 1) shr 1) + 30) div 3; |
color.B := (((Pixels[x, y] + (Pixels[x + 3, y] xor $FF) + 1) shr 1) + 30) div 3; |
c := (color.R + color.G + color.B) shr 1; |
if c > 64 then |
c := c - 8; |
P1 := @PArrayByte(P)[X shr 1]; |
P1^ := (P1^ and Mask4n[X and 1]) or ((c) shl Shift4[X and 1]); |
end; |
else |
end; |
end; |
case BitCount of |
24: |
begin |
D := Ptr(Integer(D1)); |
if y < Height - 2 then |
D1 := Ptr(Integer(D1) + 6) |
else |
D1 := Ptr(Integer(ScanLine[Pred(Height)]) + 3); |
end; |
else |
end; |
end; |
end; |
procedure TDIB.Negative; |
procedure TDIB.AddMonoNoise(Amount: Integer); |
var |
i, i2: Integer; |
P: Pointer; |
value: cardinal; |
x, y: longint; |
a: byte; |
D: pointer; |
color: DWORD; |
P: PByte; |
begin |
if Empty then exit; |
for y := 0 to Pred(Height) do |
begin |
D := ScanLine[y]; |
for x := 0 to Pred(Width) do |
begin |
case BitCount of |
32: Exit; // I haven't bitmap of this type ! Sorry |
24: |
begin |
value := Random(Amount) - (Amount shr 1); |
PBGR(D)^.B := IntToByte(PBGR(D)^.B + value); |
PBGR(D)^.G := IntToByte(PBGR(D)^.G + value); |
PBGR(D)^.R := IntToByte(PBGR(D)^.R + value); |
Inc(PBGR(D)); |
end; |
16: Exit; // I haven't bitmap of this type ! Sorry |
8: |
begin |
a := ((Random(Amount shr 1) - (Amount div 4))) div 8; |
color := Interval(0, 255, (pixels[x, y] - a), True); |
PByte(D)^ := color; |
Inc(PByte(D)); |
end; |
4: |
begin |
a := ((Random(Amount shr 1) - (Amount div 4))) div 16; |
color := Interval(0, 15, (pixels[x, y] - a), True); |
P := @PArrayByte(D)[X shr 1]; |
P^ := ((P^ and Mask4n[X and 1]) or ((color shl Shift4[X and 1]))); |
end; |
1: |
begin |
a := ((Random(Amount shr 1) - (Amount div 4))) div 32; |
color := Interval(0, 1, (pixels[x, y] - a), True); |
P := @PArrayByte(D)[X shr 3]; |
P^ := (P^ and Mask1n[X and 7]) or (color shl Shift1[X and 7]); |
end; |
else |
end; |
end; |
end; |
end; |
if BitCount<=8 then |
procedure TDIB.AddGradiantNoise(Amount: byte); |
var |
a, i: byte; |
x, y: Integer; |
Table: array[0..255] of TBGR; |
S, D: pointer; |
color: DWORD; |
Temp1: TDIB; |
P: PByte; |
begin |
D := nil; |
S := nil; |
Temp1 := nil; |
case BitCount of |
32: Exit; // I haven't bitmap of this type ! Sorry |
24: |
begin |
for i:=0 to 255 do |
begin |
a := Random(Amount); |
Table[i].b := IntToByte(i + a); |
Table[i].g := IntToByte(i + a); |
Table[i].r := IntToByte(i + a); |
end; |
end; |
16: Exit; // I haven't bitmap of this type ! Sorry |
8, 4: |
begin |
Temp1 := TDIB.Create; |
Temp1.Assign(self); |
Temp1.SetSize(Width, Height, BitCount); |
for i := 0 to 255 do |
begin |
with ColorTable[i] do |
begin |
rgbRed := 255-rgbRed; |
rgbGreen := 255-rgbGreen; |
rgbBlue := 255-rgbBlue; |
a := Random(Amount); |
rgbRed := IntToByte(rgbRed + a); |
rgbGreen := IntToByte(rgbGreen + a); |
rgbBlue := IntToByte(rgbBlue + a); |
end; |
end; |
UpdatePalette; |
end else |
end; |
else |
// if the number of pixel is equal to 1 then exit of procedure |
Exit; |
end; |
for y := 0 to Pred(Height) do |
begin |
P := PBits; |
i2 := Size; |
asm |
mov ecx,i2 |
mov eax,P |
mov edx,ecx |
case BitCount of |
24: D := ScanLine[y]; |
8, 4: |
begin |
D := Temp1.ScanLine[y]; |
S := Temp1.ScanLine[y]; |
end; |
else |
end; |
for x := 0 to Pred(Width) do |
begin |
case BitCount of |
32: ; // I haven't bitmap of this type ! Sorry |
24: |
begin |
PBGR(D)^.B := Table[PBGR(D)^.B].b; |
PBGR(D)^.G := Table[PBGR(D)^.G].g; |
PBGR(D)^.R := Table[PBGR(D)^.R].r; |
Inc(PBGR(D)); |
end; |
16: ; // I haven't bitmap of this type ! Sorry |
8: |
begin |
with Temp1.ColorTable[PByte(S)^] do |
color := rgbRed + rgbGreen + rgbBlue; |
Inc(PByte(S)); |
PByte(D)^ := color; |
Inc(PByte(D)); |
end; |
4: |
begin |
with Temp1.ColorTable[PByte(S)^] do |
color := rgbRed + rgbGreen + rgbBlue; |
Inc(PByte(S)); |
P := @PArrayByte(D)[X shr 1]; |
P^ := (P^ and Mask4n[X and 1]) or (color shl Shift4[X and 1]); |
end; |
else |
end; |
end; |
end; |
case BitCount of |
8, 4: Temp1.Free; |
else |
end; |
end; |
{ Unit of DWORD. } |
@@qword_skip: |
shr ecx,2 |
jz @@dword_skip |
function TDIB.FishEye(bmp: TDIB): Boolean; |
var |
weight, xmid, ymid, fx, fy, r1, r2, dx, dy, rmax: Double; |
Amount, ifx, ify, ty, tx, new_red, new_green, new_blue, ix, iy: Integer; |
weight_x, weight_y: array[0..1] of Double; |
total_red, total_green, total_blue: Double; |
sli, slo: PLines; |
//D: Pointer; |
begin |
Result := True; |
case BitCount of |
32, 16, 8, 4, 1: |
begin |
Result := False; |
Exit; |
end; |
end; |
Amount := 1; |
xmid := Width / 2; |
ymid := Height / 2; |
rmax := Max(Bmp.Width, Bmp.Height) * Amount; |
for ty := 0 to Pred(Height) do |
begin |
for tx := 0 to Pred(Width) do |
begin |
dx := tx - xmid; |
dy := ty - ymid; |
r1 := Sqrt(Sqr(dx) + Sqr(dy)); |
if r1 <> 0 then |
begin |
r2 := rmax / 2 * (1 / (1 - r1 / rmax) - 1); |
fx := dx * r2 / r1 + xmid; |
fy := dy * r2 / r1 + ymid; |
end |
else |
begin |
fx := xmid; |
fy := ymid; |
end; |
ify := Trunc(fy); |
ifx := Trunc(fx); |
if fy >= 0 then |
begin |
weight_y[1] := fy - ify; |
weight_y[0] := 1 - weight_y[1]; |
end |
else |
begin |
weight_y[0] := -(fy - ify); |
weight_y[1] := 1 - weight_y[0]; |
end; |
if fx >= 0 then |
begin |
weight_x[1] := fx - ifx; |
weight_x[0] := 1 - weight_x[1]; |
end |
else |
begin |
weight_x[0] := -(fx - ifx); |
Weight_x[1] := 1 - weight_x[0]; |
end; |
if ifx < 0 then |
ifx := Pred(Width) - (-ifx mod Width) |
else |
if ifx > Pred(Width) then |
ifx := ifx mod Width; |
if ify < 0 then |
ify := Pred(Height) - (-ify mod Height) |
else |
if ify > Pred(Height) then |
ify := ify mod Height; |
total_red := 0.0; |
total_green := 0.0; |
total_blue := 0.0; |
for ix := 0 to 1 do |
begin |
for iy := 0 to 1 do |
begin |
if ify + iy < Height then |
sli := ScanLine[ify + iy] |
else |
sli := ScanLine[Height - ify - iy]; |
if ifx + ix < Width then |
begin |
new_red := sli^[ifx + ix].r; |
new_green := sli^[ifx + ix].g; |
new_blue := sli^[ifx + ix].b; |
end |
else |
begin |
new_red := sli^[Width - ifx - ix].r; |
new_green := sli^[Width - ifx - ix].g; |
new_blue := sli^[Width - ifx - ix].b; |
end; |
weight := weight_x[ix] * weight_y[iy]; |
total_red := total_red + new_red * weight; |
total_green := total_green + new_green * weight; |
total_blue := total_blue + new_blue * weight; |
end; |
end; |
case bitCount of |
24: |
begin |
slo := Bmp.ScanLine[ty]; |
slo^[tx].r := Round(total_red); |
slo^[tx].g := Round(total_green); |
slo^[tx].b := Round(total_blue); |
end; |
else |
// You can implement this procedure for 16,8,4,2 and 32 BitCount's DIB |
Exit; |
end; |
end; |
end; |
end; |
dec ecx |
@@dword_loop: |
not dword ptr [eax+ecx*4] |
dec ecx |
jnl @@dword_loop |
function TDIB.SmoothRotateWrap(Bmp: TDIB; cx, cy: Integer; Degree: Extended): Boolean; |
var |
weight, Theta, cosTheta, sinTheta, sfrom_y, sfrom_x: Double; |
ifrom_y, ifrom_x, xDiff, yDiff, to_y, to_x: Integer; |
weight_x, weight_y: array[0..1] of Double; |
ix, iy, new_red, new_green, new_blue: Integer; |
total_red, total_green, total_blue: Double; |
sli, slo: PLines; |
begin |
Result := True; |
case BitCount of |
32, 16, 8, 4, 1: |
begin |
Result := False; |
Exit; |
end; |
end; |
Theta := -Degree * Pi / 180; |
sinTheta := Sin(Theta); |
cosTheta := Cos(Theta); |
xDiff := (Bmp.Width - Width) div 2; |
yDiff := (Bmp.Height - Height) div 2; |
for to_y := 0 to Pred(Bmp.Height) do |
begin |
for to_x := 0 to Pred(Bmp.Width) do |
begin |
sfrom_x := (cx + (to_x - cx) * cosTheta - (to_y - cy) * sinTheta) - xDiff; |
ifrom_x := Trunc(sfrom_x); |
sfrom_y := (cy + (to_x - cx) * sinTheta + (to_y - cy) * cosTheta) - yDiff; |
ifrom_y := Trunc(sfrom_y); |
if sfrom_y >= 0 then |
begin |
weight_y[1] := sfrom_y - ifrom_y; |
weight_y[0] := 1 - weight_y[1]; |
end |
else |
begin |
weight_y[0] := -(sfrom_y - ifrom_y); |
weight_y[1] := 1 - weight_y[0]; |
end; |
if sfrom_x >= 0 then |
begin |
weight_x[1] := sfrom_x - ifrom_x; |
weight_x[0] := 1 - weight_x[1]; |
end |
else |
begin |
weight_x[0] := -(sfrom_x - ifrom_x); |
Weight_x[1] := 1 - weight_x[0]; |
end; |
if ifrom_x < 0 then |
ifrom_x := Pred(Width) - (-ifrom_x mod Width) |
else |
if ifrom_x > Pred(Width) then |
ifrom_x := ifrom_x mod Width; |
if ifrom_y < 0 then |
ifrom_y := Pred(Height) - (-ifrom_y mod Height) |
else |
if ifrom_y > Pred(Height) then |
ifrom_y := ifrom_y mod Height; |
total_red := 0.0; |
total_green := 0.0; |
total_blue := 0.0; |
for ix := 0 to 1 do |
begin |
for iy := 0 to 1 do |
begin |
if ifrom_y + iy < Height then |
sli := ScanLine[ifrom_y + iy] |
else |
sli := ScanLine[Height - ifrom_y - iy]; |
if ifrom_x + ix < Width then |
begin |
new_red := sli^[ifrom_x + ix].r; |
new_green := sli^[ifrom_x + ix].g; |
new_blue := sli^[ifrom_x + ix].b; |
end |
else |
begin |
new_red := sli^[Width - ifrom_x - ix].r; |
new_green := sli^[Width - ifrom_x - ix].g; |
new_blue := sli^[Width - ifrom_x - ix].b; |
end; |
weight := weight_x[ix] * weight_y[iy]; |
total_red := total_red + new_red * weight; |
total_green := total_green + new_green * weight; |
total_blue := total_blue + new_blue * weight; |
end; |
end; |
case bitCount of |
24: |
begin |
slo := Bmp.ScanLine[to_y]; |
slo^[to_x].r := Round(total_red); |
slo^[to_x].g := Round(total_green); |
slo^[to_x].b := Round(total_blue); |
end; |
else |
// You can implement this procedure for 16,8,4,2 and 32 BitCount's DIB |
Exit; |
end; |
end; |
end; |
end; |
mov ecx,edx |
shr ecx,2 |
add eax,ecx*4 |
function TDIB.Rotate(Dst: TDIB; cx, cy: Integer; Angle: Double): Boolean; |
var |
x, y, dx, dy, sdx, sdy, xDiff, yDiff, isinTheta, icosTheta: Integer; |
D, S: Pointer; |
sinTheta, cosTheta, Theta: Double; |
Col: TBGR; |
i: byte; |
color: DWORD; |
P: PByte; |
begin |
D := nil; |
S := nil; |
Result := True; |
dst.SetSize(Width, Height, Bitcount); |
dst.Canvas.Brush.Color := clBlack; |
Dst.Canvas.FillRect(Bounds(0, 0, Width, Height)); |
case BitCount of |
32, 16: |
begin |
Result := False; |
Exit; |
end; |
8, 4, 1: |
begin |
for i := 0 to 255 do |
Dst.ColorTable[i] := ColorTable[i]; |
Dst.UpdatePalette; |
end; |
end; |
Theta := -Angle * Pi / 180; |
sinTheta := Sin(Theta); |
cosTheta := Cos(Theta); |
xDiff := (Dst.Width - Width) div 2; |
yDiff := (Dst.Height - Height) div 2; |
isinTheta := Round(sinTheta * $10000); |
icosTheta := Round(cosTheta * $10000); |
for y := 0 to Pred(Dst.Height) do |
begin |
case BitCount of |
4, 1: |
begin |
D := Dst.ScanLine[y]; |
S := ScanLine[y]; |
end; |
else |
end; |
sdx := Round(((cx + (-cx) * cosTheta - (y - cy) * sinTheta) - xDiff) * $10000); |
sdy := Round(((cy + (-cy) * sinTheta + (y - cy) * cosTheta) - yDiff) * $10000); |
for x := 0 to Pred(Dst.Width) do |
begin |
dx := (sdx shr 16); |
dy := (sdy shr 16); |
if (dx > -1) and (dx < Width) and (dy > -1) and (dy < Height) then |
begin |
case bitcount of |
8, 24: Dst.pixels[x, y] := Pixels[dx, dy]; |
4: |
begin |
pfGetRGB(NowPixelFormat, Pixels[dx, dy], col.r, col.g, col.b); |
color := col.r + col.g + col.b; |
Inc(PByte(S)); |
P := @PArrayByte(D)[x shr 1]; |
P^ := (P^ and Mask4n[x and 1]) or (color shl Shift4[x and 1]); |
end; |
1: |
begin |
pfGetRGB(NowPixelFormat, Pixels[dx, dy], col.r, col.g, col.b); |
color := col.r + col.g + col.b; |
Inc(PByte(S)); |
P := @PArrayByte(D)[X shr 3]; |
P^ := (P^ and Mask1n[X and 7]) or (color shl Shift1[X and 7]); |
end; |
end; |
end; |
Inc(sdx, icosTheta); |
Inc(sdy, isinTheta); |
end; |
end; |
end; |
{ Unit of Byte. } |
@@dword_skip: |
mov ecx,edx |
and ecx,3 |
jz @@byte_skip |
procedure TDIB.GaussianBlur(Bmp: TDIB; Amount: Integer); |
var |
i: Integer; |
begin |
for i := 1 to Amount do |
Bmp.SplitBlur(i); |
end; |
dec ecx |
@@loop_byte: |
not byte ptr [eax+ecx] |
dec ecx |
jnl @@loop_byte |
procedure TDIB.SplitBlur(Amount: Integer); |
var |
Lin1, Lin2: PLines; |
cx, x, y: Integer; |
Buf: array[0..3] of TBGR; |
D: Pointer; |
@@byte_skip: |
begin |
case Bitcount of |
32, 16, 8, 4, 1: Exit; |
end; |
for y := 0 to Pred(Height) do |
begin |
Lin1 := ScanLine[TrimInt(y + Amount, 0, Pred(Height))]; |
Lin2 := ScanLine[TrimInt(y - Amount, 0, Pred(Height))]; |
D := ScanLine[y]; |
for x := 0 to Pred(Width) do |
begin |
cx := TrimInt(x + Amount, 0, Pred(Width)); |
Buf[0] := Lin1[cx]; |
Buf[1] := Lin2[cx]; |
cx := TrimInt(x - Amount, 0, Pred(Width)); |
Buf[2] := Lin1[cx]; |
Buf[3] := Lin2[cx]; |
PBGR(D)^.b := (Buf[0].b + Buf[1].b + Buf[2].b + Buf[3].b) shr 2; |
PBGR(D)^.g := (Buf[0].g + Buf[1].g + Buf[2].g + Buf[3].g) shr 2; |
PBGR(D)^.r := (Buf[0].r + Buf[1].r + Buf[2].r + Buf[3].r) shr 2; |
Inc(PBGR(D)); |
end; |
end; |
end; |
function TDIB.Twist(bmp: TDIB; Amount: byte): Boolean; |
var |
fxmid, fymid: Single; |
txmid, tymid: Single; |
fx, fy: Single; |
tx2, ty2: Single; |
r: Single; |
theta: Single; |
ifx, ify: Integer; |
dx, dy: Single; |
OFFSET: Single; |
ty, tx, ix, iy: Integer; |
weight_x, weight_y: array[0..1] of Single; |
weight: Single; |
new_red, new_green, new_blue: Integer; |
total_red, total_green, total_blue: Single; |
sli, slo: PLines; |
function ArcTan2(xt, yt: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if xt = 0 then |
if yt > 0 then |
Result := Pi / 2 |
else |
Result := -(Pi / 2) |
else |
begin |
Result := ArcTan(yt / xt); |
if xt < 0 then |
Result := Pi + ArcTan(yt / xt); |
end; |
end; |
begin |
Result := True; |
case BitCount of |
32, 16, 8, 4, 1: |
begin |
Result := False; |
Exit; |
end; |
end; |
if Amount = 0 then |
Amount := 1; |
OFFSET := -(Pi / 2); |
dx := Pred(Width); |
dy := Pred(Height); |
r := Sqrt(dx * dx + dy * dy); |
tx2 := r; |
ty2 := r; |
txmid := (Pred(Width)) / 2; |
tymid := (Pred(Height)) / 2; |
fxmid := (Pred(Width)) / 2; |
fymid := (Pred(Height)) / 2; |
if tx2 >= Width then |
tx2 := Pred(Width); |
if ty2 >= Height then |
ty2 := Pred(Height); |
for ty := 0 to Round(ty2) do |
begin |
for tx := 0 to Round(tx2) do |
begin |
dx := tx - txmid; |
dy := ty - tymid; |
r := Sqrt(dx * dx + dy * dy); |
if r = 0 then |
begin |
fx := 0; |
fy := 0; |
end |
else |
begin |
theta := ArcTan2(dx, dy) - r / Amount - OFFSET; |
fx := r * Cos(theta); |
fy := r * Sin(theta); |
end; |
fx := fx + fxmid; |
fy := fy + fymid; |
ify := Trunc(fy); |
ifx := Trunc(fx); |
if fy >= 0 then |
begin |
weight_y[1] := fy - ify; |
weight_y[0] := 1 - weight_y[1]; |
end |
else |
begin |
weight_y[0] := -(fy - ify); |
weight_y[1] := 1 - weight_y[0]; |
end; |
if fx >= 0 then |
begin |
weight_x[1] := fx - ifx; |
weight_x[0] := 1 - weight_x[1]; |
end |
else |
begin |
weight_x[0] := -(fx - ifx); |
Weight_x[1] := 1 - weight_x[0]; |
end; |
if ifx < 0 then |
ifx := Pred(Width) - (-ifx mod Width) |
else |
if ifx > Pred(Width) then |
ifx := ifx mod Width; |
if ify < 0 then |
ify := Pred(Height) - (-ify mod Height) |
else |
if ify > Pred(Height) then |
ify := ify mod Height; |
total_red := 0.0; |
total_green := 0.0; |
total_blue := 0.0; |
for ix := 0 to 1 do |
begin |
for iy := 0 to 1 do |
begin |
if ify + iy < Height then |
sli := ScanLine[ify + iy] |
else |
sli := ScanLine[Height - ify - iy]; |
if ifx + ix < Width then |
begin |
new_red := sli^[ifx + ix].r; |
new_green := sli^[ifx + ix].g; |
new_blue := sli^[ifx + ix].b; |
end |
else |
begin |
new_red := sli^[Width - ifx - ix].r; |
new_green := sli^[Width - ifx - ix].g; |
new_blue := sli^[Width - ifx - ix].b; |
end; |
weight := weight_x[ix] * weight_y[iy]; |
total_red := total_red + new_red * weight; |
total_green := total_green + new_green * weight; |
total_blue := total_blue + new_blue * weight; |
end; |
end; |
case bitCount of |
24: |
begin |
slo := bmp.ScanLine[ty]; |
slo^[tx].r := Round(total_red); |
slo^[tx].g := Round(total_green); |
slo^[tx].b := Round(total_blue); |
end; |
else |
// You can implement this procedure for 16,8,4,2 and 32 BitCount's DIB |
Exit; |
end; |
end; |
end; |
end; |
function TDIB.TrimInt(i, Min, Max: Integer): Integer; |
begin |
if i > Max then |
Result := Max |
else |
if i < Min then |
Result := Min |
else |
Result := i; |
end; |
function TDIB.IntToByte(i: Integer): Byte; |
begin |
if i > 255 then |
Result := 255 |
else |
if i < 0 then |
Result := 0 |
else |
Result := i; |
end; |
//-------------------------------------------------------------------------------------------------- |
// End of these New Special Effect // |
// Please contributes to add effects and filters to this collection // |
// Please, work to implement 32,16,8,4,2 BitCount's DIB // |
// Have fun - Mickey - Good job // |
//-------------------------------------------------------------------------------------------------- |
function TDIB.GetAlphaChannel: TDIB; |
var |
I: Integer; |
begin |
RetAlphaChannel(Result); |
if Result = nil then Exit; |
if FFreeList.Count > 0 then |
for I := 0 to FFreeList.Count - 1 do |
if FFreeList[I] = Result then Exit; |
FFreeList.Add(Result); |
end; |
procedure TDIB.SetAlphaChannel(const Value: TDIB); |
begin |
if not AssignAlphaChannel(Value{$IFNDEF VER4UP}, False{$ENDIF}) then |
Exception.Create('Cannot set alphachannel from DIB.'); |
end; |
procedure TDIB.Fill(aColor: TColor); |
var |
p: PRGBA; |
y: Integer; |
x: Integer; |
begin |
Canvas.Brush.Color := aColor; |
Canvas.FillRect(ClientRect); |
if Self.BitCount = 32 then |
begin |
//fill alpha chanell too with $FF |
for Y := 0 to Self.Height - 1 do |
begin |
p := Self.ScanLine[Y]; |
for X := 0 to Self.Width - 1 do |
begin |
p[X].rgbReserved := $FF |
end; |
end; |
end; |
end; |
function TDIB.GetClientRect: TRect; |
begin |
Result := Bounds(0, 0, Width, Height); |
end; |
{ TCustomDXDIB } |
constructor TCustomDXDIB.Create(AOnwer: TComponent); |
3078,17 → 5476,20 |
begin |
inherited Canvas.StretchDraw(Bounds(-(Width-ClientWidth) div 2, |
-(Height-ClientHeight) div 2, Width, Height), FDIB); |
end else |
end |
else |
begin |
inherited Canvas.StretchDraw(Bounds(0, 0, Width, Height), FDIB); |
end; |
end else |
end |
else |
begin |
if FCenter then |
begin |
inherited Canvas.Draw(-(Width-ClientWidth) div 2, -(Height-ClientHeight) div 2, |
FDIB); |
end else |
end |
else |
begin |
inherited Canvas.Draw(0, 0, FDIB); |
end; |
3128,11 → 5529,14 |
if r>r2 then |
r := r2; |
Draw2(Round(r*ClientWidth), Round(r*ClientHeight)); |
end else |
end |
else |
Draw2(ViewWidth2, ViewHeight2); |
end else |
end |
else |
Draw2(ViewWidth2, ViewHeight2); |
end else |
end |
else |
begin |
if FAutoStretch then |
begin |
3143,9 → 5547,11 |
if r>r2 then |
r := r2; |
Draw2(Round(r*FDIB.Width), Round(r*FDIB.Height)); |
end else |
end |
else |
Draw2(FDIB.Width, FDIB.Height); |
end else |
end |
else |
if FStretch then |
begin |
if FKeepAspect then |
3155,9 → 5561,11 |
if r>r2 then |
r := r2; |
Draw2(Round(r*FDIB.Width), Round(r*FDIB.Height)); |
end else |
end |
else |
Draw2(ClientWidth, ClientHeight); |
end else |
end |
else |
Draw2(FDIB.Width, FDIB.Height); |
end; |
end; |
3228,6 → 5636,4548 |
end; |
end; |
{ DXFusion -> } |
function PosValue(Value: Integer): Integer; |
begin |
if Value < 0 then result := 0 else result := Value; |
end; |
procedure TDIB.CreateDIBFromBitmap(const Bitmap: TBitmap); |
var |
pf: Integer; |
X, Y: Integer; |
P: PLinesA; |
q: PRGBA; |
begin |
if Bitmap.PixelFormat = pf32bit then pf := 32 else pf := 24; |
SetSize(Bitmap.Width, Bitmap.Height, pf); {always >=24} |
Canvas.Brush.Color := clWhite; |
Canvas.FillRect(Bounds(0, 0, Width, Height)); |
Canvas.Draw(0, 0, Bitmap); |
//Note. Transparent background from bitmap is not drawed when is alphalayer active |
if (pf = 32) {and (Bitmap.AlphaFormat <> afIgnored)} then |
begin |
for y := 0 to Bitmap.Height-1 do |
begin |
p := Bitmap.ScanLine[y]; //BGRA |
q := Self.ScanLine[y]; //ARGB |
for x := 0 to Width-1 do //copy only alphachannel |
q[x].rgbReserved := P[x].A; |
end; |
end; |
end; |
function TDIB.CreateBitmapFromDIB: TBitmap; |
var |
ach: Boolean; |
X, Y: Integer; |
P: PLinesA; |
q: PRGBA; |
begin |
ach := False; |
Result := TBitmap.Create; |
case BitCount of |
32: |
begin |
Result.PixelFormat := pf32bit; |
ach := HasAlphaChannel; |
end; |
24: Result.PixelFormat := pf24bit; |
15: Result.PixelFormat := pf16bit; |
8: Result.PixelFormat := pf8bit; |
else |
Result.PixelFormat := pf24bit; |
end; |
Result.Width := Width; |
Result.Height := Height; |
Result.Canvas.Draw(0, 0, Self); |
if (BitCount = 32) then |
begin |
if ach then |
begin |
{$IFDEF VER16UP} |
Result.AlphaFormat := afDefined; |
{$ENDIF} |
for y := 0 to Height-1 do |
begin |
p := Result.ScanLine[y]; //BGRA |
q := Self.ScanLine[y]; //ARGB |
for x := 0 to Width-1 do //copy only alphachannel |
P[x].A := q[x].rgbReserved; |
end; |
end; |
end; |
end; |
procedure TDIB.DrawTo(SrcDIB: TDIB; X, Y, Width, Height, |
SourceX, SourceY: Integer); |
begin |
SrcDIB.DrawOn(Rect(X, Y, Width, Height), Self.Canvas, SourceX, SourceY); |
end; |
procedure TDIB.DrawTransparent(SrcDIB: TDIB; const X, Y, Width, Height, |
SourceX, SourceY: Integer; const Color: TColor); |
var |
i, j: Integer; |
k1, k2: Integer; |
n: Integer; |
p1, p2: PByteArray; |
Startk1, Startk2: Integer; |
StartY: Integer; |
EndY: Integer; |
DestStartY: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
Startk1 := 3 * SourceX; |
Startk2 := 3 * X; |
DestStartY := Y - SourceY; |
StartY := SourceY; |
EndY := SourceY + Height; |
if (StartY + DestStartY < 0) then |
StartY := -DestStartY; |
if (EndY + DestStartY > Self.Height) then |
EndY := Self.Height - DestStartY; |
if (StartY < 0) then |
StartY := 0; |
if (EndY > SrcDIB.Height) then |
EndY := SrcDIB.Height; |
for j := StartY to EndY - 1 do |
begin |
p1 := Self.Scanline[j + DestStartY]; |
p2 := SrcDIB.Scanline[j]; |
k1 := Startk1; |
k2 := Startk2; |
for i := SourceX to SourceX + Width - 1 do |
begin |
n := (p2[k1] shl 16) + (p2[k1 + 1] shl 8) + p2[k1 + 2]; |
if not (n = Color) then |
begin |
p1[k2] := p2[k1]; |
p1[k2 + 1] := p2[k1 + 1]; |
p1[k2 + 2] := p2[k1 + 2]; |
end; |
k1 := k1 + 3; |
k2 := k2 + 3; |
end; |
end; |
end; |
procedure TDIB.DrawShadow(SrcDIB: TDIB; X, Y, Width, Height, |
Frame: Integer; FilterMode: TFilterMode); |
var |
i, j: Integer; |
p1, p2: PByte; |
FW: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
FW := Frame * Width; |
for i := 1 to Height - 1 do |
begin |
p1 := Self.Scanline[i + Y]; |
p2 := SrcDIB.Scanline[i]; |
Inc(p1, 3 * (X + 1)); |
Inc(p2, 3 * (FW + 1)); |
for j := 1 to Width - 1 do |
begin |
if (p2^ = 0) then |
begin |
case FilterMode of |
fmNormal, fmMix50: |
begin |
p1^ := p1^ shr 1; // Blue |
Inc(p1); |
p1^ := p1^ shr 1; // Green |
Inc(p1); |
p1^ := p1^ shr 1; // Red |
Inc(p1); |
end; |
fmMix25: |
begin |
p1^ := p1^ - p1^ shr 2; // Blue |
Inc(p1); |
p1^ := p1^ - p1^ shr 2; // Green |
Inc(p1); |
p1^ := p1^ - p1^ shr 2; // Red |
Inc(p1); |
end; |
fmMix75: |
begin |
p1^ := p1^ shr 2; // Blue |
Inc(p1); |
p1^ := p1^ shr 2; // Green |
Inc(p1); |
p1^ := p1^ shr 2; // Red |
Inc(p1); |
end; |
end; |
end |
else |
Inc(p1, 3); // Not in the loop... |
Inc(p2, 3); |
end; |
end; |
end; |
procedure TDIB.DrawShadows(SrcDIB: TDIB; X, Y, Width, Height, |
Frame: Integer; Alpha: Byte); |
{plynule nastavovani stiny dle alpha} |
type |
P3ByteArray = ^T3ByteArray; |
T3ByteArray = array[0..32767] of TBGR; |
var |
i, j, l1, l2: Integer; |
p1, p2: P3ByteArray; |
FW: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
FW := Frame * Width; |
for i := 0 to Height - 1 do |
begin |
p1 := Self.Scanline[i + Y]; |
p2 := SrcDIB.Scanline[i]; |
l1 := X; |
l2 := FW; |
for j := 0 to Width - 1 do |
begin |
if (p2[j + l2].B = 0) and (p2[j + l2].G = 0) and (p2[j + l2].R = 0) then |
begin |
p1[J + l1].B := Round(p1[J + l1].B / $FF * Alpha); |
p1[J + l1].G := Round(p1[J + l1].G / $FF * Alpha); |
p1[J + l1].R := Round(p1[J + l1].R / $FF * Alpha); |
end |
end; |
end; |
end; |
procedure TDIB.DrawDarken(SrcDIB: TDIB; X, Y, Width, Height, |
Frame: Integer); |
var |
frameoffset, i, j: Integer; |
p1, p2: pByte; |
XOffset: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
frameoffset := 3 * (Frame * Width) + 3; |
XOffset := 3 * X + 3; |
for i := 1 to Height - 1 do |
begin |
p1 := Self.Scanline[i + Y]; |
p2 := SrcDIB.Scanline[i]; |
inc(p1, XOffset); |
inc(p2, frameoffset); |
for j := 1 to Width - 1 do |
begin |
p1^ := (p2^ * p1^) shr 8; // R |
inc(p1); |
inc(p2); |
p1^ := (p2^ * p1^) shr 8; // G |
inc(p1); |
inc(p2); |
p1^ := (p2^ * p1^) shr 8; // B |
inc(p1); |
inc(p2); |
end; |
end; |
end; |
procedure TDIB.DrawQuickAlpha(SrcDIB: TDIB; const X, Y, Width, Height, |
SourceX, SourceY: Integer; const Color: TColor; FilterMode: TFilterMode); |
var |
i, j: Integer; |
k1, k2: Integer; |
n: Integer; |
p1, p2: PByteArray; |
BitSwitch1, BitSwitch2: Boolean; |
Startk1, Startk2: Integer; |
StartY: Integer; |
EndY: Integer; |
DestStartY: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
Startk1 := 3 * SourceX; |
Startk2 := 3 * X; |
DestStartY := Y - SourceY; |
StartY := SourceY; |
EndY := SourceY + Height; |
if (StartY + DestStartY < 0) then |
StartY := -DestStartY; |
if (EndY + DestStartY > Self.Height) then |
EndY := Self.Height - DestStartY; |
if (StartY < 0) then |
StartY := 0; |
if (EndY > SrcDIB.Height) then |
EndY := SrcDIB.Height; |
if Odd(Y) then BitSwitch1 := true else BitSwitch1 := false; |
if Odd(X) then BitSwitch2 := true else BitSwitch2 := false; |
for j := StartY to EndY - 1 do |
begin |
BitSwitch1 := not BitSwitch1; |
p1 := Self.Scanline[j + DestStartY]; |
p2 := SrcDIB.Scanline[j]; |
k1 := Startk1; |
k2 := Startk2; |
for i := SourceX to SourceX + Width - 1 do |
begin |
BitSwitch2 := not BitSwitch2; |
n := (p2[k1] shl 16) + (p2[k1 + 1] shl 8) + p2[k1 + 2]; |
case FilterMode of |
fmNormal, fmMix50: if not (n = Color) and (BitSwitch1 xor BitSwitch2) then |
begin |
p1[k2] := p2[k1]; |
p1[k2 + 1] := p2[k1 + 1]; |
p1[k2 + 2] := p2[k1 + 2]; |
end; |
fmMix25: if not (n = Color) and (BitSwitch1 and BitSwitch2) then |
begin |
p1[k2] := p2[k1]; |
p1[k2 + 1] := p2[k1 + 1]; |
p1[k2 + 2] := p2[k1 + 2]; |
end; |
fmMix75: if not (n = Color) and (BitSwitch1 or BitSwitch2) then |
begin |
p1[k2] := p2[k1]; |
p1[k2 + 1] := p2[k1 + 1]; |
p1[k2 + 2] := p2[k1 + 2]; |
end; |
end; |
k1 := k1 + 3; |
k2 := k2 + 3; |
end; |
end; |
end; |
procedure TDIB.DrawAdditive(SrcDIB: TDIB; X, Y, Width, Height, Alpha, Frame: |
Integer); |
var |
frameoffset, i, j, Wid: Integer; |
p1, p2: pByte; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
if (Alpha < 1) or (Alpha > 256) then Exit; |
Wid := Width shl 1 + Width; |
frameoffset := Wid * Frame; |
for i := 1 to Height - 1 do |
begin |
if (i + Y) > (Self.Height - 1) then Break; //add 25.5.2004 JB. |
p1 := Self.Scanline[i + Y]; |
p2 := SrcDIB.Scanline[i]; |
inc(p1, X shl 1 + X + 3); |
inc(p2, frameoffset + 3); |
for j := 3 to Wid - 4 do |
begin |
inc(p1^, (Alpha - p1^) * p2^ shr 8); |
inc(p1); |
inc(p2); |
end; |
end; |
end; |
procedure TDIB.DrawTranslucent(SrcDIB: TDIB; const X, Y, Width, Height, |
SourceX, SourceY: Integer; const Color: TColor); |
var |
i, j: Integer; |
k1, k2: Integer; |
n: Integer; |
p1, p2: PByteArray; |
Startk1, Startk2: Integer; |
StartY: Integer; |
EndY: Integer; |
DestStartY: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
Startk1 := 3 * SourceX; |
Startk2 := 3 * X; |
DestStartY := Y - SourceY; |
StartY := SourceY; |
EndY := SourceY + Height; |
if (StartY + DestStartY < 0) then |
StartY := -DestStartY; |
if (EndY + DestStartY > Self.Height) then |
EndY := Self.Height - DestStartY; |
if (StartY < 0) then |
StartY := 0; |
if (EndY > SrcDIB.Height) then |
EndY := SrcDIB.Height; |
for j := StartY to EndY - 1 do |
begin |
p1 := Self.Scanline[j + DestStartY]; |
p2 := SrcDIB.Scanline[j]; |
k1 := Startk1; |
k2 := Startk2; |
for i := SourceX to SourceX + Width - 1 do |
begin |
n := (p2[k1] shl 16) + (p2[k1 + 1] shl 8) + p2[k1 + 2]; |
if not (n = Color) then |
begin |
p1[k2] := (p1[k2] + p2[k1]) shr 1; |
p1[k2 + 1] := (p1[k2 + 1] + p2[k1 + 1]) shr 1; |
p1[k2 + 2] := (p1[k2 + 2] + p2[k1 + 2]) shr 1; |
end; |
k1 := k1 + 3; |
k2 := k2 + 3; |
end; |
end; |
end; |
procedure TDIB.DrawAlpha(SrcDIB: TDIB; const X, Y, Width, Height, |
SourceX, SourceY, Alpha: Integer; const Color: TColor); |
var |
i, j: Integer; |
k1, k2: Integer; |
n: Integer; |
p1, p2: PByteArray; |
Startk1, Startk2: Integer; |
StartY: Integer; |
EndY: Integer; |
DestStartY: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
Startk1 := 3 * SourceX; |
Startk2 := 3 * x; |
DestStartY := Y - SourceY; |
StartY := SourceY; |
EndY := SourceY + Height; |
if (EndY + DestStartY > Self.Height) then |
EndY := Self.Height - DestStartY; |
if (EndY > SrcDIB.Height) then |
EndY := SrcDIB.Height; |
if (StartY < 0) then |
StartY := 0; |
if (StartY + DestStartY < 0) then |
StartY := DestStartY; |
for j := StartY to EndY - 1 do |
begin |
p1 := Self.Scanline[j + DestStartY]; |
p2 := SrcDIB.Scanline[j]; |
k1 := Startk1; |
k2 := Startk2; |
for i := SourceX to SourceX + Width - 1 do |
begin |
n := (p2[k1] shl 16) + (p2[k1 + 1] shl 8) + p2[k1 + 2]; |
if not (n = Color) then |
begin |
p1[k2] := (p1[k2] * (256 - Alpha) + p2[k1] * Alpha) shr 8; |
p1[k2 + 1] := (p1[k2 + 1] * (256 - Alpha) + p2[k1 + 1] * Alpha) shr 8; |
p1[k2 + 2] := (p1[k2 + 2] * (256 - Alpha) + p2[k1 + 2] * Alpha) shr 8; |
end; |
k1 := k1 + 3; |
k2 := k2 + 3; |
end; |
end; |
end; |
procedure TDIB.DrawAlphaMask(SrcDIB, MaskDIB: TDIB; const X, Y, |
Width, Height, SourceX, SourceY: Integer); |
var |
i, j: Integer; |
k1, k2, k3: Integer; |
p1, p2, p3: PByteArray; |
Startk1, Startk2: Integer; |
StartY: Integer; |
EndY: Integer; |
DestStartY: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
Startk1 := 3 * SourceX; |
Startk2 := 3 * x; |
DestStartY := Y - SourceY; |
StartY := SourceY; |
EndY := SourceY + Height; |
if (EndY + DestStartY > Self.Height) then |
EndY := Self.Height - DestStartY; |
if (EndY > SrcDIB.Height) then |
EndY := SrcDIB.Height; |
if (StartY < 0) then |
StartY := 0; |
if (StartY + DestStartY < 0) then |
StartY := DestStartY; |
for j := StartY to EndY - 1 do |
begin |
p1 := Self.Scanline[j + DestStartY]; |
p2 := SrcDIB.Scanline[j]; |
p3 := MaskDIB.Scanline[j]; |
k1 := Startk1; |
k2 := Startk2; |
k3 := 0; |
for i := SourceX to SourceX + Width - 1 do |
begin |
p1[k2] := (p1[k2] * (256 - p3[k3]) + p2[k1] * p3[k3]) shr 8; |
p1[k2 + 1] := (p1[k2 + 1] * (256 - p3[k3]) + p2[k1 + 1] * p3[k3]) shr 8; |
p1[k2 + 2] := (p1[k2 + 2] * (256 - p3[k3]) + p2[k1 + 2] * p3[k3]) shr 8; |
k1 := k1 + 3; |
k2 := k2 + 3; |
k3 := k3 + 3; |
end; |
end; |
end; |
procedure TDIB.DrawMorphed(SrcDIB: TDIB; const X, Y, Width, Height, |
SourceX, SourceY: Integer; const Color: TColor); |
var |
i, j, r, g, b: Integer; |
k1, k2: Integer; |
n: Integer; |
p1, p2: PByteArray; |
Startk1, Startk2: Integer; |
StartY: Integer; |
EndY: Integer; |
DestStartY: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
Startk1 := 3 * SourceX; |
Startk2 := 3 * x; |
DestStartY := Y - SourceY; |
StartY := SourceY; |
EndY := SourceY + Height; |
if (EndY + DestStartY > Self.Height) then |
EndY := Self.Height - DestStartY; |
if (EndY > SrcDIB.Height) then |
EndY := SrcDIB.Height; |
if (StartY < 0) then |
StartY := 0; |
if (StartY + DestStartY < 0) then |
StartY := DestStartY; |
r := 0; |
g := 0; |
b := 0; |
for j := StartY to EndY - 1 do |
begin |
p1 := Self.Scanline[j + DestStartY]; |
p2 := SrcDIB.Scanline[j]; |
k1 := Startk1; |
k2 := Startk2; |
for i := SourceX to SourceX + Width - 1 do |
begin |
n := (p2[k1] shl 16) + (p2[k1 + 1] shl 8) + p2[k1 + 2]; |
if Random(100) < 50 then |
begin |
b := p1[k2]; |
g := p1[k2 + 1]; |
r := p1[k2 + 2]; |
end; |
if not (n = Color) then |
begin |
p1[k2] := b; |
p1[k2 + 1] := g; |
p1[k2 + 2] := r; |
end; |
k1 := k1 + 3; |
k2 := k2 + 3; |
end; |
end; |
end; |
procedure TDIB.DrawMono(SrcDIB: TDIB; const X, Y, Width, Height, |
SourceX, SourceY: Integer; const TransColor, ForeColor, BackColor: TColor); |
var |
i, j, r1, g1, b1, r2, g2, b2: Integer; |
k1, k2: Integer; |
n: Integer; |
p1, p2: PByteArray; |
Startk1, Startk2, StartY, EndY, DestStartY: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
Startk1 := 3 * SourceX; |
Startk2 := 3 * x; |
DestStartY := Y - SourceY; |
StartY := SourceY; |
EndY := SourceY + Height; |
if (EndY + DestStartY > Self.Height) then |
EndY := Self.Height - DestStartY; |
if (EndY > SrcDIB.Height) then |
EndY := SrcDIB.Height; |
if (StartY < 0) then |
StartY := 0; |
if (StartY + DestStartY < 0) then |
StartY := DestStartY; |
r1 := GetRValue(BackColor); |
g1 := GetGValue(BackColor); |
b1 := GetBValue(BackColor); |
r2 := GetRValue(ForeColor); |
g2 := GetGValue(ForeColor); |
b2 := GetBValue(ForeColor); |
for j := StartY to EndY - 1 do |
begin |
p1 := Self.Scanline[j + DestStartY]; |
p2 := SrcDIB.Scanline[j]; |
k1 := Startk1; |
k2 := Startk2; |
for i := SourceX to SourceX + Width - 1 do |
begin |
n := (p2[k1] shl 16) + (p2[k1 + 1] shl 8) + p2[k1 + 2]; |
if (n = TransColor) then |
begin |
p1[k2] := b1; |
p1[k2 + 1] := g1; |
p1[k2 + 2] := r1; |
end |
else |
begin |
p1[k2] := b2; |
p1[k2 + 1] := g2; |
p1[k2 + 2] := r2; |
end; |
k1 := k1 + 3; |
k2 := k2 + 3; |
end; |
end; |
end; |
procedure TDIB.Draw3x3Matrix(SrcDIB: TDIB; Setting: TMatrixSetting); |
var i, j, k: Integer; |
p1, p2, p3, p4: PByteArray; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
for i := 1 to SrcDIB.Height - 2 do |
begin |
p1 := SrcDIB.ScanLine[i - 1]; |
p2 := SrcDIB.ScanLine[i]; |
p3 := SrcDIB.ScanLine[i + 1]; |
p4 := Self.ScanLine[i]; |
for j := 3 to 3 * SrcDIB.Width - 4 do |
begin |
k := (p1[j - 3] * Setting[0] + p1[j] * Setting[1] + p1[j + 3] * Setting[2] + |
p2[j - 3] * Setting[3] + p2[j] * Setting[4] + p2[j + 3] * Setting[5] + |
p3[j - 3] * Setting[6] + p3[j] * Setting[7] + p3[j + 3] * Setting[8]) |
div Setting[9]; |
if k < 0 then k := 0; |
if k > 255 then k := 255; |
p4[j] := k; |
end; |
end; |
end; |
procedure TDIB.DrawAntialias(SrcDIB: TDIB); |
var i, j, k, l, m: Integer; |
p1, p2, p3: PByteArray; |
begin |
if Self.BitCount <> 24 then Exit; |
if SrcDIB.BitCount <> 24 then Exit; |
for i := 1 to Self.Height - 1 do |
begin |
k := i shl 1; |
p1 := SrcDIB.Scanline[k]; |
p2 := SrcDIB.Scanline[k + 1]; |
p3 := Self.Scanline[i]; |
for j := 1 to Self.Width - 1 do |
begin |
m := 3 * j; |
l := m shl 1; |
p3[m] := (p1[l] + p1[l + 3] + p2[l] + p2[l + 3]) shr 2; |
p3[m + 1] := (p1[l + 1] + p1[l + 4] + p2[l + 1] + p2[l + 4]) shr 2; |
p3[m + 2] := (p1[l + 2] + p1[l + 5] + p2[l + 2] + p2[l + 5]) shr 2; |
end; |
end; |
end; |
procedure TDIB.FilterLine(X1, Y1, X2, Y2: Integer; Color: TColor; |
FilterMode: TFilterMode); |
var |
i, j: Integer; |
t: TColor; |
r1, g1, b1, r2, g2, b2: Integer; |
begin |
j := ROUND(Sqrt(Sqr(ABS(X2 - X1)) + Sqr(ABS(Y2 - Y1)))); |
if j < 1 then Exit; |
r1 := GetRValue(Color); |
g1 := GetGValue(Color); |
b1 := GetBValue(Color); |
for i := 0 to j do |
begin |
t := Self.Pixels[X1 + ((X2 - X1) * i div j), Y1 + ((Y2 - Y1) * i div j)]; |
r2 := GetRValue(t); |
g2 := GetGValue(t); |
b2 := GetBValue(t); |
case FilterMode of |
fmNormal: t := RGB(r1 + (((256 - r1) * r2) shr 8), |
g1 + (((256 - g1) * g2) shr 8), |
b1 + (((256 - b1) * b2) shr 8)); |
fmMix25: t := RGB((r1 + r2 * 3) shr 2, (g1 + g2 * 3) shr 2, (b1 + b2 * 3) shr 2); |
fmMix50: t := RGB((r1 + r2) shr 1, (g1 + g2) shr 1, (b1 + b2) shr 1); |
fmMix75: t := RGB((r1 * 3 + r2) shr 2, (g1 * 3 + g2) shr 2, (b1 * 3 + b2) shr 2); |
end; |
Self.Pixels[X1 + ((X2 - X1) * i div j), Y1 + ((Y2 - Y1) * i div j)] := t; |
end; |
end; |
procedure TDIB.FilterRect(X, Y, Width, Height: Integer; |
Color: TColor; FilterMode: TFilterMode); |
var |
i, j, r, g, b, C1: Integer; |
p1, p2, p3: pByte; |
begin |
if Self.BitCount <> 24 then Exit; |
r := GetRValue(Color); |
g := GetGValue(Color); |
b := GetBValue(Color); |
for i := 0 to Height - 1 do |
begin |
p1 := Self.Scanline[i + Y]; |
Inc(p1, (3 * X)); |
for j := 0 to Width - 1 do |
begin |
case FilterMode of |
fmNormal: |
begin |
p2 := p1; |
Inc(p2); |
p3 := p2; |
Inc(p3); |
C1 := (p1^ + p2^ + p3^) div 3; |
p1^ := (C1 * b) shr 8; |
Inc(p1); |
p1^ := (C1 * g) shr 8; |
Inc(p1); |
p1^ := (C1 * r) shr 8; |
Inc(p1); |
end; |
fmMix25: |
begin |
p1^ := (3 * p1^ + b) shr 2; |
Inc(p1); |
p1^ := (3 * p1^ + g) shr 2; |
Inc(p1); |
p1^ := (3 * p1^ + r) shr 2; |
Inc(p1); |
end; |
fmMix50: |
begin |
p1^ := (p1^ + b) shr 1; |
Inc(p1); |
p1^ := (p1^ + g) shr 1; |
Inc(p1); |
p1^ := (p1^ + r) shr 1; |
Inc(p1); |
end; |
fmMix75: |
begin |
p1^ := (p1^ + 3 * b) shr 2; |
Inc(p1); |
p1^ := (p1^ + 3 * g) shr 2; |
Inc(p1); |
p1^ := (p1^ + 3 * r) shr 2; |
Inc(p1); |
end; |
end; |
end; |
end; |
end; |
procedure TDIB.InitLight(Count, Detail: Integer); |
var |
i, j: Integer; |
begin |
LG_COUNT := Count; |
LG_DETAIL := Detail; |
for i := 0 to 255 do // Build Lightning LUT |
for j := 0 to 255 do |
FLUTDist[i, j] := ROUND(Sqrt(Sqr(i * 10) + Sqr(j * 10))); |
end; |
procedure TDIB.DrawLights(FLight: TLightArray; |
AmbientLight: TColor); |
var |
i, j, l, m, n, o, q, D1, D2, R, G, B, AR, AG, AB: Integer; |
P: array{$IFNDEF VER4UP} [0..4096]{$ENDIF} of PByteArray; |
begin |
if Self.BitCount <> 24 then Exit; |
{$IFDEF VER4UP} |
SetLength(P, LG_DETAIL); |
{$ENDIF} |
AR := GetRValue(AmbientLight); |
AG := GetGValue(AmbientLight); |
AB := GetBValue(AmbientLight); |
for i := (Self.Height div (LG_DETAIL + 1)) downto 1 do |
begin |
for o := 0 to LG_DETAIL do |
P[o] := Self.Scanline[(LG_DETAIL + 1) * i - o]; |
for j := (Self.Width div (LG_DETAIL + 1)) downto 1 do |
begin |
R := AR; |
G := AG; |
B := AB; |
for l := LG_COUNT - 1 downto 0 do // Check the lightsources |
begin |
D1 := ABS(j * (LG_DETAIL + 1) - FLight[l].X) div FLight[l].Size1; |
D2 := ABS(i * (LG_DETAIL + 1) - FLight[l].Y) div FLight[l].Size2; |
if D1 > 255 then D1 := 255; |
if D2 > 255 then D2 := 255; |
m := 255 - FLUTDist[D1, D2]; |
if m < 0 then m := 0; |
Inc(R, (PosValue(GetRValue(FLight[l].Color) - R) * m shr 8)); |
Inc(G, (PosValue(GetGValue(FLight[l].Color) - G) * m shr 8)); |
Inc(B, (PosValue(GetBValue(FLight[l].Color) - B) * m shr 8)); |
end; |
for q := LG_DETAIL downto 0 do |
begin |
n := 3 * (j * (LG_DETAIL + 1) - q); |
for o := LG_DETAIL downto 0 do |
begin |
P[o][n] := (P[o][n] * B) shr 8; |
P[o][n + 1] := (P[o][n + 1] * G) shr 8; |
P[o][n + 2] := (P[o][n + 2] * R) shr 8; |
end; |
end; |
end; |
end; |
{$IFDEF VER4UP} |
SetLength(P, 0); |
{$ENDIF} |
end; |
procedure TDIB.DrawOn(Dest: TRect; DestCanvas: TCanvas; Xsrc, Ysrc: Integer); |
{procedure is supplement of original TDIBUltra function} |
begin |
//if not AsSigned(SrcCanvas) then Exit; |
if (Xsrc < 0) then |
begin |
Dec(Dest.Left, Xsrc); |
Inc(Dest.Right {Width }, Xsrc); |
Xsrc := 0 |
end; |
if (Ysrc < 0) then |
begin |
Dec(Dest.Top, Ysrc); |
Inc(Dest.Bottom {Height}, Ysrc); |
Ysrc := 0 |
end; |
BitBlt(DestCanvas.Handle, Dest.Left, Dest.Top, Dest.Right, Dest.Bottom, Self.Canvas.Handle, Xsrc, Ysrc, SRCCOPY); |
end; |
{ DXFusion <- } |
{ added effect for DIB } |
function IntToByte(i: Integer): Byte; |
begin |
if i > 255 then Result := 255 |
else if i < 0 then Result := 0 |
else Result := i; |
end; |
{standalone routine} |
procedure TDIB.Darker(Percent: Integer); |
{color to dark in percent} |
var |
p0: pbytearray; |
r, g, b, x, y: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
for y := 0 to Self.Height - 1 do |
begin |
p0 := Self.ScanLine[y]; |
for x := 0 to Self.Width - 1 do |
begin |
r := p0[x * 3]; |
g := p0[x * 3 + 1]; |
b := p0[x * 3 + 2]; |
p0[x * 3] := Round(R * Percent / 100); |
p0[x * 3 + 1] := Round(G * Percent / 100); |
p0[x * 3 + 2] := Round(B * Percent / 100); |
end; |
end; |
end; |
procedure TDIB.Lighter(Percent: Integer); |
var |
p0: pbytearray; |
r, g, b, x, y: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
for y := 0 to Self.Height - 1 do |
begin |
p0 := Self.ScanLine[y]; |
for x := 0 to Self.Width - 1 do |
begin |
r := p0[x * 3]; |
g := p0[x * 3 + 1]; |
b := p0[x * 3 + 2]; |
p0[x * 3] := Round(R * Percent / 100) + Round(255 - Percent / 100 * 255); |
p0[x * 3 + 1] := Round(G * Percent / 100) + Round(255 - Percent / 100 * 255); |
p0[x * 3 + 2] := Round(B * Percent / 100) + Round(255 - Percent / 100 * 255); |
end; |
end; |
end; |
procedure TDIB.Darkness(Amount: Integer); |
var |
p0: pbytearray; |
r, g, b, x, y: Integer; |
begin |
if Self.BitCount <> 24 then Exit; |
for y := 0 to Self.Height - 1 do |
begin |
p0 := Self.ScanLine[y]; |
for x := 0 to Self.Width - 1 do |
begin |
r := p0[x * 3]; |
g := p0[x * 3 + 1]; |
b := p0[x * 3 + 2]; |
p0[x * 3] := IntToByte(r - ((r) * Amount) div 255); |
p0[x * 3 + 1] := IntToByte(g - ((g) * Amount) div 255); |
p0[x * 3 + 2] := IntToByte(b - ((b) * Amount) div 255); |
end; |
end; |
end; |
function TrimInt(i, Min, Max: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if i > Max then Result := Max |
else if i < Min then Result := Min |
else Result := i; |
end; |
procedure TDIB.DoSmoothRotate(Src: TDIB; cx, cy: Integer; Angle: Extended); |
var |
Top, Bottom, eww, nsw, fx, fy: Extended; |
cAngle, sAngle: Double; |
xDiff, yDiff, ifx, ify, px, py, ix, iy, x, y: Integer; |
nw, ne, sw, se: TBGR; |
P1, P2, P3: Pbytearray; |
begin |
Angle := angle; |
Angle := -Angle * Pi / 180; |
sAngle := Sin(Angle); |
cAngle := Cos(Angle); |
xDiff := (Self.Width - Src.Width) div 2; |
yDiff := (Self.Height - Src.Height) div 2; |
for y := 0 to Self.Height - 1 do |
begin |
P3 := Self.scanline[y]; |
py := 2 * (y - cy) + 1; |
for x := 0 to Self.Width - 1 do |
begin |
px := 2 * (x - cx) + 1; |
fx := (((px * cAngle - py * sAngle) - 1) / 2 + cx) - xDiff; |
fy := (((px * sAngle + py * cAngle) - 1) / 2 + cy) - yDiff; |
ifx := Round(fx); |
ify := Round(fy); |
if (ifx > -1) and (ifx < Src.Width) and (ify > -1) and (ify < Src.Height) then |
begin |
eww := fx - ifx; |
nsw := fy - ify; |
iy := TrimInt(ify + 1, 0, Src.Height - 1); |
ix := TrimInt(ifx + 1, 0, Src.Width - 1); |
P1 := Src.scanline[ify]; |
P2 := Src.scanline[iy]; |
nw.r := P1[ifx * 3]; |
nw.g := P1[ifx * 3 + 1]; |
nw.b := P1[ifx * 3 + 2]; |
ne.r := P1[ix * 3]; |
ne.g := P1[ix * 3 + 1]; |
ne.b := P1[ix * 3 + 2]; |
sw.r := P2[ifx * 3]; |
sw.g := P2[ifx * 3 + 1]; |
sw.b := P2[ifx * 3 + 2]; |
se.r := P2[ix * 3]; |
se.g := P2[ix * 3 + 1]; |
se.b := P2[ix * 3 + 2]; |
Top := nw.b + eww * (ne.b - nw.b); |
Bottom := sw.b + eww * (se.b - sw.b); |
P3[x * 3 + 2] := IntToByte(Round(Top + nsw * (Bottom - Top))); |
Top := nw.g + eww * (ne.g - nw.g); |
Bottom := sw.g + eww * (se.g - sw.g); |
P3[x * 3 + 1] := IntToByte(Round(Top + nsw * (Bottom - Top))); |
Top := nw.r + eww * (ne.r - nw.r); |
Bottom := sw.r + eww * (se.r - sw.r); |
P3[x * 3] := IntToByte(Round(Top + nsw * (Bottom - Top))); |
end; |
end; |
end; |
end; |
//---------------------- |
//--- 24 bit count routines ---------------------- |
//---------------------- |
procedure TDIB.DoInvert; |
procedure PicInvert(src: TDIB); |
var w, h, x, y: Integer; |
p: pbytearray; |
begin |
w := src.width; |
h := src.height; |
src.BitCount := 24; |
for y := 0 to h - 1 do |
begin |
p := src.scanline[y]; |
for x := 0 to w - 1 do |
begin |
p[x * 3] := not p[x * 3]; |
p[x * 3 + 1] := not p[x * 3 + 1]; |
p[x * 3 + 2] := not p[x * 3 + 2]; |
end; |
end; |
end; |
begin |
PicInvert(Self); |
end; |
procedure TDIB.DoAddColorNoise(Amount: Integer); |
procedure AddColorNoise(var clip: TDIB; Amount: Integer); |
var |
p0: pbytearray; |
x, y, r, g, b: Integer; |
begin |
for y := 0 to clip.Height - 1 do |
begin |
p0 := clip.ScanLine[y]; |
for x := 0 to clip.Width - 1 do |
begin |
r := p0[x * 3] + (Random(Amount) - (Amount shr 1)); |
g := p0[x * 3 + 1] + (Random(Amount) - (Amount shr 1)); |
b := p0[x * 3 + 2] + (Random(Amount) - (Amount shr 1)); |
p0[x * 3] := IntToByte(r); |
p0[x * 3 + 1] := IntToByte(g); |
p0[x * 3 + 2] := IntToByte(b); |
end; |
end; |
end; |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.Assign(Self); |
AddColorNoise(bb, Amount); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoAddMonoNoise(Amount: Integer); |
procedure _AddMonoNoise(var clip: TDIB; Amount: Integer); |
var |
p0: pbytearray; |
x, y, a, r, g, b: Integer; |
begin |
for y := 0 to clip.Height - 1 do |
begin |
p0 := clip.scanline[y]; |
for x := 0 to clip.Width - 1 do |
begin |
a := Random(Amount) - (Amount shr 1); |
r := p0[x * 3] + a; |
g := p0[x * 3 + 1] + a; |
b := p0[x * 3 + 2] + a; |
p0[x * 3] := IntToByte(r); |
p0[x * 3 + 1] := IntToByte(g); |
p0[x * 3 + 2] := IntToByte(b); |
end; |
end; |
end; |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.Assign(Self); |
_AddMonoNoise(bb, Amount); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoAntiAlias; |
procedure AntiAlias(clip: TDIB); |
procedure AntiAliasRect(clip: TDIB; XOrigin, YOrigin, XFinal, YFinal: Integer); |
var Memo, x, y: Integer; (* Composantes primaires des points environnants *) |
p0, p1, p2: pbytearray; |
begin |
if XFinal < XOrigin then begin Memo := XOrigin; XOrigin := XFinal; XFinal := Memo; end; (* Inversion des valeurs *) |
if YFinal < YOrigin then begin Memo := YOrigin; YOrigin := YFinal; YFinal := Memo; end; (* si diffrence ngative*) |
XOrigin := max(1, XOrigin); |
YOrigin := max(1, YOrigin); |
XFinal := min(clip.width - 2, XFinal); |
YFinal := min(clip.height - 2, YFinal); |
clip.BitCount := 24; |
for y := YOrigin to YFinal do |
begin |
p0 := clip.ScanLine[y - 1]; |
p1 := clip.scanline[y]; |
p2 := clip.ScanLine[y + 1]; |
for x := XOrigin to XFinal do |
begin |
p1[x * 3] := (p0[x * 3] + p2[x * 3] + p1[(x - 1) * 3] + p1[(x + 1) * 3]) div 4; |
p1[x * 3 + 1] := (p0[x * 3 + 1] + p2[x * 3 + 1] + p1[(x - 1) * 3 + 1] + p1[(x + 1) * 3 + 1]) div 4; |
p1[x * 3 + 2] := (p0[x * 3 + 2] + p2[x * 3 + 2] + p1[(x - 1) * 3 + 2] + p1[(x + 1) * 3 + 2]) div 4; |
end; |
end; |
end; |
begin |
AntiAliasRect(clip, 0, 0, clip.width, clip.height); |
end; |
begin |
AntiAlias(Self); |
end; |
procedure TDIB.DoContrast(Amount: Integer); |
procedure _Contrast(var clip: TDIB; Amount: Integer); |
var |
p0: pbytearray; |
rg, gg, bg, r, g, b, x, y: Integer; |
begin |
for y := 0 to clip.Height - 1 do |
begin |
p0 := clip.scanline[y]; |
for x := 0 to clip.Width - 1 do |
begin |
r := p0[x * 3]; |
g := p0[x * 3 + 1]; |
b := p0[x * 3 + 2]; |
rg := (Abs(127 - r) * Amount) div 255; |
gg := (Abs(127 - g) * Amount) div 255; |
bg := (Abs(127 - b) * Amount) div 255; |
if r > 127 then r := r + rg else r := r - rg; |
if g > 127 then g := g + gg else g := g - gg; |
if b > 127 then b := b + bg else b := b - bg; |
p0[x * 3] := IntToByte(r); |
p0[x * 3 + 1] := IntToByte(g); |
p0[x * 3 + 2] := IntToByte(b); |
end; |
end; |
end; |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.Assign(Self); |
_Contrast(bb, Amount); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoFishEye(Amount: Integer); |
procedure _FishEye(var Bmp, Dst: TDIB; Amount: Extended); |
var |
xmid, ymid: Single; |
fx, fy: Single; |
r1, r2: Single; |
ifx, ify: Integer; |
dx, dy: Single; |
rmax: Single; |
ty, tx: Integer; |
weight_x, weight_y: array[0..1] of Single; |
weight: Single; |
new_red, new_green: Integer; |
new_blue: Integer; |
total_red, total_green: Single; |
total_blue: Single; |
ix, iy: Integer; |
sli, slo: PByteArray; |
begin |
xmid := Bmp.Width / 2; |
ymid := Bmp.Height / 2; |
rmax := Dst.Width * Amount; |
for ty := 0 to Dst.Height - 1 do |
begin |
for tx := 0 to Dst.Width - 1 do |
begin |
dx := tx - xmid; |
dy := ty - ymid; |
r1 := Sqrt(dx * dx + dy * dy); |
if r1 = 0 then |
begin |
fx := xmid; |
fy := ymid; |
end |
else |
begin |
r2 := rmax / 2 * (1 / (1 - r1 / rmax) - 1); |
fx := dx * r2 / r1 + xmid; |
fy := dy * r2 / r1 + ymid; |
end; |
ify := Trunc(fy); |
ifx := Trunc(fx); |
// Calculate the weights. |
if fy >= 0 then |
begin |
weight_y[1] := fy - ify; |
weight_y[0] := 1 - weight_y[1]; |
end |
else |
begin |
weight_y[0] := -(fy - ify); |
weight_y[1] := 1 - weight_y[0]; |
end; |
if fx >= 0 then |
begin |
weight_x[1] := fx - ifx; |
weight_x[0] := 1 - weight_x[1]; |
end |
else |
begin |
weight_x[0] := -(fx - ifx); |
Weight_x[1] := 1 - weight_x[0]; |
end; |
if ifx < 0 then |
ifx := Bmp.Width - 1 - (-ifx mod Bmp.Width) |
else if ifx > Bmp.Width - 1 then |
ifx := ifx mod Bmp.Width; |
if ify < 0 then |
ify := Bmp.Height - 1 - (-ify mod Bmp.Height) |
else if ify > Bmp.Height - 1 then |
ify := ify mod Bmp.Height; |
total_red := 0.0; |
total_green := 0.0; |
total_blue := 0.0; |
for ix := 0 to 1 do |
begin |
for iy := 0 to 1 do |
begin |
if ify + iy < Bmp.Height then |
sli := Bmp.scanline[ify + iy] |
else |
sli := Bmp.scanline[Bmp.Height - ify - iy]; |
if ifx + ix < Bmp.Width then |
begin |
new_red := sli[(ifx + ix) * 3]; |
new_green := sli[(ifx + ix) * 3 + 1]; |
new_blue := sli[(ifx + ix) * 3 + 2]; |
end |
else |
begin |
new_red := sli[(Bmp.Width - ifx - ix) * 3]; |
new_green := sli[(Bmp.Width - ifx - ix) * 3 + 1]; |
new_blue := sli[(Bmp.Width - ifx - ix) * 3 + 2]; |
end; |
weight := weight_x[ix] * weight_y[iy]; |
total_red := total_red + new_red * weight; |
total_green := total_green + new_green * weight; |
total_blue := total_blue + new_blue * weight; |
end; |
end; |
slo := Dst.scanline[ty]; |
slo[tx * 3] := Round(total_red); |
slo[tx * 3 + 1] := Round(total_green); |
slo[tx * 3 + 2] := Round(total_blue); |
end; |
end; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.BitCount := 24; |
BB2.Assign(BB1); |
_FishEye(BB1, BB2, Amount); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoGrayScale; |
procedure GrayScale(var clip: TDIB); |
var |
p0: pbytearray; |
Gray, x, y: Integer; |
begin |
for y := 0 to clip.Height - 1 do |
begin |
p0 := clip.scanline[y]; |
for x := 0 to clip.Width - 1 do |
begin |
Gray := Round(p0[x * 3] * 0.3 + p0[x * 3 + 1] * 0.59 + p0[x * 3 + 2] * 0.11); |
p0[x * 3] := Gray; |
p0[x * 3 + 1] := Gray; |
p0[x * 3 + 2] := Gray; |
end; |
end; |
end; |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.Assign(Self); |
GrayScale(BB); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoLightness(Amount: Integer); |
procedure _Lightness(var clip: TDIB; Amount: Integer); |
var |
p0: pbytearray; |
r, g, b, x, y: Integer; |
begin |
for y := 0 to clip.Height - 1 do |
begin |
p0 := clip.scanline[y]; |
for x := 0 to clip.Width - 1 do |
begin |
r := p0[x * 3]; |
g := p0[x * 3 + 1]; |
b := p0[x * 3 + 2]; |
p0[x * 3] := IntToByte(r + ((255 - r) * Amount) div 255); |
p0[x * 3 + 1] := IntToByte(g + ((255 - g) * Amount) div 255); |
p0[x * 3 + 2] := IntToByte(b + ((255 - b) * Amount) div 255); |
end; |
end; |
end; |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.Assign(Self); |
_Lightness(BB, Amount); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoDarkness(Amount: Integer); |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.Assign(Self); |
BB.Darkness(Amount); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoSaturation(Amount: Integer); |
procedure _Saturation(var clip: TDIB; Amount: Integer); |
var |
p0: pbytearray; |
Gray, r, g, b, x, y: Integer; |
begin |
for y := 0 to clip.Height - 1 do |
begin |
p0 := clip.scanline[y]; |
for x := 0 to clip.Width - 1 do |
begin |
r := p0[x * 3]; |
g := p0[x * 3 + 1]; |
b := p0[x * 3 + 2]; |
Gray := (r + g + b) div 3; |
p0[x * 3] := IntToByte(Gray + (((r - Gray) * Amount) div 255)); |
p0[x * 3 + 1] := IntToByte(Gray + (((g - Gray) * Amount) div 255)); |
p0[x * 3 + 2] := IntToByte(Gray + (((b - Gray) * Amount) div 255)); |
end; |
end; |
end; |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.Assign(Self); |
_Saturation(BB, Amount); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoSplitBlur(Amount: Integer); |
{NOTE: For a gaussian blur is amount 3} |
procedure _SplitBlur(var clip: TDIB; Amount: Integer); |
var |
p0, p1, p2: pbytearray; |
cx, x, y: Integer; |
Buf: array[0..3, 0..2] of byte; |
begin |
if Amount = 0 then Exit; |
for y := 0 to clip.Height - 1 do |
begin |
p0 := clip.scanline[y]; |
if y - Amount < 0 then p1 := clip.scanline[y] |
else {y-Amount>0} p1 := clip.ScanLine[y - Amount]; |
if y + Amount < clip.Height then p2 := clip.ScanLine[y + Amount] |
else {y+Amount>=Height} p2 := clip.ScanLine[clip.Height - y]; |
for x := 0 to clip.Width - 1 do |
begin |
if x - Amount < 0 then cx := x |
else {x-Amount>0} cx := x - Amount; |
Buf[0, 0] := p1[cx * 3]; |
Buf[0, 1] := p1[cx * 3 + 1]; |
Buf[0, 2] := p1[cx * 3 + 2]; |
Buf[1, 0] := p2[cx * 3]; |
Buf[1, 1] := p2[cx * 3 + 1]; |
Buf[1, 2] := p2[cx * 3 + 2]; |
if x + Amount < clip.Width then cx := x + Amount |
else {x+Amount>=Width} cx := clip.Width - x; |
Buf[2, 0] := p1[cx * 3]; |
Buf[2, 1] := p1[cx * 3 + 1]; |
Buf[2, 2] := p1[cx * 3 + 2]; |
Buf[3, 0] := p2[cx * 3]; |
Buf[3, 1] := p2[cx * 3 + 1]; |
Buf[3, 2] := p2[cx * 3 + 2]; |
p0[x * 3] := (Buf[0, 0] + Buf[1, 0] + Buf[2, 0] + Buf[3, 0]) shr 2; |
p0[x * 3 + 1] := (Buf[0, 1] + Buf[1, 1] + Buf[2, 1] + Buf[3, 1]) shr 2; |
p0[x * 3 + 2] := (Buf[0, 2] + Buf[1, 2] + Buf[2, 2] + Buf[3, 2]) shr 2; |
end; |
end; |
end; |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.Assign(Self); |
_SplitBlur(BB, Amount); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoGaussianBlur(Amount: Integer); |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.BitCount := 24; |
BB.Assign(Self); |
GaussianBlur(BB, Amount); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoMosaic(Size: Integer); |
procedure Mosaic(var Bm: TDIB; size: Integer); |
var |
x, y, i, j: Integer; |
p1, p2: pbytearray; |
r, g, b: byte; |
begin |
y := 0; |
repeat |
p1 := bm.scanline[y]; |
repeat |
j := 1; |
repeat |
p2 := bm.scanline[y]; |
x := 0; |
repeat |
r := p1[x * 3]; |
g := p1[x * 3 + 1]; |
b := p1[x * 3 + 2]; |
i := 1; |
repeat |
p2[x * 3] := r; |
p2[x * 3 + 1] := g; |
p2[x * 3 + 2] := b; |
inc(x); |
inc(i); |
until (x >= bm.width) or (i > size); |
until x >= bm.width; |
inc(j); |
inc(y); |
until (y >= bm.height) or (j > size); |
until (y >= bm.height) or (x >= bm.width); |
until y >= bm.height; |
end; |
var BB: TDIB; |
begin |
BB := TDIB.Create; |
BB.BitCount := 24; |
BB.Assign(Self); |
Mosaic(BB, Size); |
Self.Assign(BB); |
BB.Free; |
end; |
procedure TDIB.DoTwist(Amount: Integer); |
procedure _Twist(var Bmp, Dst: TDIB; Amount: Integer); |
var |
fxmid, fymid: Single; |
txmid, tymid: Single; |
fx, fy: Single; |
tx2, ty2: Single; |
r: Single; |
theta: Single; |
ifx, ify: Integer; |
dx, dy: Single; |
OFFSET: Single; |
ty, tx: Integer; |
weight_x, weight_y: array[0..1] of Single; |
weight: Single; |
new_red, new_green: Integer; |
new_blue: Integer; |
total_red, total_green: Single; |
total_blue: Single; |
ix, iy: Integer; |
sli, slo: PBytearray; |
function ArcTan2(xt, yt: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if xt = 0 then |
if yt > 0 then |
Result := Pi / 2 |
else |
Result := -(Pi / 2) |
else |
begin |
Result := ArcTan(yt / xt); |
if xt < 0 then |
Result := Pi + ArcTan(yt / xt); |
end; |
end; |
begin |
OFFSET := -(Pi / 2); |
dx := Bmp.Width - 1; |
dy := Bmp.Height - 1; |
r := Sqrt(dx * dx + dy * dy); |
tx2 := r; |
ty2 := r; |
txmid := (Bmp.Width - 1) / 2; //Adjust these to move center of rotation |
tymid := (Bmp.Height - 1) / 2; //Adjust these to move ...... |
fxmid := (Bmp.Width - 1) / 2; |
fymid := (Bmp.Height - 1) / 2; |
if tx2 >= Bmp.Width then tx2 := Bmp.Width - 1; |
if ty2 >= Bmp.Height then ty2 := Bmp.Height - 1; |
for ty := 0 to Round(ty2) do |
begin |
for tx := 0 to Round(tx2) do |
begin |
dx := tx - txmid; |
dy := ty - tymid; |
r := Sqrt(dx * dx + dy * dy); |
if r = 0 then |
begin |
fx := 0; |
fy := 0; |
end |
else |
begin |
theta := ArcTan2(dx, dy) - r / Amount - OFFSET; |
fx := r * Cos(theta); |
fy := r * Sin(theta); |
end; |
fx := fx + fxmid; |
fy := fy + fymid; |
ify := Trunc(fy); |
ifx := Trunc(fx); |
// Calculate the weights. |
if fy >= 0 then |
begin |
weight_y[1] := fy - ify; |
weight_y[0] := 1 - weight_y[1]; |
end |
else |
begin |
weight_y[0] := -(fy - ify); |
weight_y[1] := 1 - weight_y[0]; |
end; |
if fx >= 0 then |
begin |
weight_x[1] := fx - ifx; |
weight_x[0] := 1 - weight_x[1]; |
end |
else |
begin |
weight_x[0] := -(fx - ifx); |
Weight_x[1] := 1 - weight_x[0]; |
end; |
if ifx < 0 then |
ifx := Bmp.Width - 1 - (-ifx mod Bmp.Width) |
else if ifx > Bmp.Width - 1 then |
ifx := ifx mod Bmp.Width; |
if ify < 0 then |
ify := Bmp.Height - 1 - (-ify mod Bmp.Height) |
else if ify > Bmp.Height - 1 then |
ify := ify mod Bmp.Height; |
total_red := 0.0; |
total_green := 0.0; |
total_blue := 0.0; |
for ix := 0 to 1 do |
begin |
for iy := 0 to 1 do |
begin |
if ify + iy < Bmp.Height then |
sli := Bmp.scanline[ify + iy] |
else |
sli := Bmp.scanline[Bmp.Height - ify - iy]; |
if ifx + ix < Bmp.Width then |
begin |
new_red := sli[(ifx + ix) * 3]; |
new_green := sli[(ifx + ix) * 3 + 1]; |
new_blue := sli[(ifx + ix) * 3 + 2]; |
end |
else |
begin |
new_red := sli[(Bmp.Width - ifx - ix) * 3]; |
new_green := sli[(Bmp.Width - ifx - ix) * 3 + 1]; |
new_blue := sli[(Bmp.Width - ifx - ix) * 3 + 2]; |
end; |
weight := weight_x[ix] * weight_y[iy]; |
total_red := total_red + new_red * weight; |
total_green := total_green + new_green * weight; |
total_blue := total_blue + new_blue * weight; |
end; |
end; |
slo := Dst.scanline[ty]; |
slo[tx * 3] := Round(total_red); |
slo[tx * 3 + 1] := Round(total_green); |
slo[tx * 3 + 2] := Round(total_blue); |
end; |
end; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.BitCount := 24; |
BB2.Assign(BB1); |
_Twist(BB1, BB2, Amount); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoTrace(Amount: Integer); |
procedure Trace(src: TDIB; intensity: Integer); |
var |
x, y, i: Integer; |
P1, P2, P3, P4: PByteArray; |
tb, TraceB: byte; |
hasb: Boolean; |
bitmap: TDIB; |
begin |
bitmap := TDIB.create; |
bitmap.width := src.width; |
bitmap.height := src.height; |
bitmap.canvas.draw(0, 0, src); |
bitmap.BitCount := 8; |
src.BitCount := 24; |
hasb := false; |
TraceB := $00; tb := 0; |
for i := 1 to Intensity do |
begin |
for y := 0 to BitMap.height - 2 do |
begin |
P1 := BitMap.ScanLine[y]; |
P2 := BitMap.scanline[y + 1]; |
P3 := src.scanline[y]; |
P4 := src.scanline[y + 1]; |
x := 0; |
repeat |
if p1[x] <> p1[x + 1] then |
begin |
if not hasb then |
begin |
tb := p1[x + 1]; |
hasb := true; |
p3[x * 3] := TraceB; |
p3[x * 3 + 1] := TraceB; |
p3[x * 3 + 2] := TraceB; |
end |
else |
begin |
if p1[x] <> tb then |
begin |
p3[x * 3] := TraceB; |
p3[x * 3 + 1] := TraceB; |
p3[x * 3 + 2] := TraceB; |
end |
else |
begin |
p3[(x + 1) * 3] := TraceB; |
p3[(x + 1) * 3 + 1] := TraceB; |
p3[(x + 1) * 3 + 1] := TraceB; |
end; |
end; |
end; |
if p1[x] <> p2[x] then |
begin |
if not hasb then |
begin |
tb := p2[x]; |
hasb := true; |
p3[x * 3] := TraceB; |
p3[x * 3 + 1] := TraceB; |
p3[x * 3 + 2] := TraceB; |
end |
else |
begin |
if p1[x] <> tb then |
begin |
p3[x * 3] := TraceB; |
p3[x * 3 + 1] := TraceB; |
p3[x * 3 + 2] := TraceB; |
end |
else |
begin |
p4[x * 3] := TraceB; |
p4[x * 3 + 1] := TraceB; |
p4[x * 3 + 2] := TraceB; |
end; |
end; |
end; |
inc(x); |
until x >= (BitMap.width - 2); |
end; |
if i > 1 then |
for y := BitMap.height - 1 downto 1 do |
begin |
P1 := BitMap.ScanLine[y]; |
P2 := BitMap.scanline[y - 1]; |
P3 := src.scanline[y]; |
P4 := src.scanline[y - 1]; |
x := Bitmap.width - 1; |
repeat |
if p1[x] <> p1[x - 1] then |
begin |
if not hasb then |
begin |
tb := p1[x - 1]; |
hasb := true; |
p3[x * 3] := TraceB; |
p3[x * 3 + 1] := TraceB; |
p3[x * 3 + 2] := TraceB; |
end |
else |
begin |
if p1[x] <> tb then |
begin |
p3[x * 3] := TraceB; |
p3[x * 3 + 1] := TraceB; |
p3[x * 3 + 2] := TraceB; |
end |
else |
begin |
p3[(x - 1) * 3] := TraceB; |
p3[(x - 1) * 3 + 1] := TraceB; |
p3[(x - 1) * 3 + 2] := TraceB; |
end; |
end; |
end; |
if p1[x] <> p2[x] then |
begin |
if not hasb then |
begin |
tb := p2[x]; |
hasb := true; |
p3[x * 3] := TraceB; |
p3[x * 3 + 1] := TraceB; |
p3[x * 3 + 2] := TraceB; |
end |
else |
begin |
if p1[x] <> tb then |
begin |
p3[x * 3] := TraceB; |
p3[x * 3 + 1] := TraceB; |
p3[x * 3 + 2] := TraceB; |
end |
else |
begin |
p4[x * 3] := TraceB; |
p4[x * 3 + 1] := TraceB; |
p4[x * 3 + 2] := TraceB; |
end; |
end; |
end; |
dec(x); |
until x <= 1; |
end; |
end; |
bitmap.free; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.BitCount := 24; |
BB2.Assign(BB1); |
Trace(BB2, Amount); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoSplitlight(Amount: Integer); |
procedure Splitlight(var clip: TDIB; amount: Integer); |
var |
x, y, i: Integer; |
p1: pbytearray; |
function sinpixs(a: Integer): Integer; |
begin |
result := variant(sin(a / 255 * pi / 2) * 255); |
end; |
begin |
for i := 1 to amount do |
for y := 0 to clip.height - 1 do |
begin |
p1 := clip.scanline[y]; |
for x := 0 to clip.width - 1 do |
begin |
p1[x * 3] := sinpixs(p1[x * 3]); |
p1[x * 3 + 1] := sinpixs(p1[x * 3 + 1]); |
p1[x * 3 + 2] := sinpixs(p1[x * 3 + 2]); |
end; |
end; |
end; |
var BB1 {,BB2}: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
// BB2 := TDIB.Create; |
// BB2.BitCount := 24; |
// BB2.Assign (BB1); |
Splitlight(BB1, Amount); |
Self.Assign(BB1); |
BB1.Free; |
// BB2.Free; |
end; |
procedure TDIB.DoTile(Amount: Integer); |
procedure SmoothResize(var Src, Dst: TDIB); |
var |
x, y, xP, yP, |
yP2, xP2: Integer; |
Read, Read2: PByteArray; |
t, z, z2, iz2: Integer; |
pc: PBytearray; |
w1, w2, w3, w4: Integer; |
Col1r, col1g, col1b, Col2r, col2g, col2b: byte; |
begin |
xP2 := ((src.Width - 1) shl 15) div Dst.Width; |
yP2 := ((src.Height - 1) shl 15) div Dst.Height; |
yP := 0; |
for y := 0 to Dst.Height - 1 do |
begin |
xP := 0; |
Read := src.ScanLine[yP shr 15]; |
if yP shr 16 < src.Height - 1 then |
Read2 := src.ScanLine[yP shr 15 + 1] |
else |
Read2 := src.ScanLine[yP shr 15]; |
pc := Dst.scanline[y]; |
z2 := yP and $7FFF; |
iz2 := $8000 - z2; |
for x := 0 to Dst.Width - 1 do |
begin |
t := xP shr 15; |
Col1r := Read[t * 3]; |
Col1g := Read[t * 3 + 1]; |
Col1b := Read[t * 3 + 2]; |
Col2r := Read2[t * 3]; |
Col2g := Read2[t * 3 + 1]; |
Col2b := Read2[t * 3 + 2]; |
z := xP and $7FFF; |
w2 := (z * iz2) shr 15; |
w1 := iz2 - w2; |
w4 := (z * z2) shr 15; |
w3 := z2 - w4; |
pc[x * 3 + 2] := |
(Col1b * w1 + Read[(t + 1) * 3 + 2] * w2 + |
Col2b * w3 + Read2[(t + 1) * 3 + 2] * w4) shr 15; |
pc[x * 3 + 1] := |
(Col1g * w1 + Read[(t + 1) * 3 + 1] * w2 + |
Col2g * w3 + Read2[(t + 1) * 3 + 1] * w4) shr 15; |
pc[x * 3] := |
(Col1r * w1 + Read2[(t + 1) * 3] * w2 + |
Col2r * w3 + Read2[(t + 1) * 3] * w4) shr 15; |
Inc(xP, xP2); |
end; |
Inc(yP, yP2); |
end; |
end; |
procedure Tile(src, dst: TDIB; amount: Integer); |
var |
w, h, w2, h2, i, j: Integer; |
bm: TDIB; |
begin |
w := src.width; |
h := src.height; |
dst.width := w; |
dst.height := h; |
dst.Canvas.draw(0, 0, src); |
if (amount <= 0) or ((w div amount) < 5) or ((h div amount) < 5) then exit; |
h2 := h div amount; |
w2 := w div amount; |
bm := TDIB.create; |
bm.width := w2; |
bm.height := h2; |
bm.BitCount := 24; |
smoothresize(src, bm); |
for j := 0 to amount - 1 do |
for i := 0 to amount - 1 do |
dst.canvas.Draw(i * w2, j * h2, bm); |
bm.free; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.BitCount := 24; |
BB2.Assign(BB1); |
Tile(BB1, BB2, Amount); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoSpotLight(Amount: Integer; Spot: TRect); |
procedure SpotLight(var src: TDIB; Amount: Integer; Spot: TRect); |
var |
bm, z: TDIB; |
w, h: Integer; |
begin |
z := TDIB.Create; |
try |
z.SetSize(src.Width, src.Height, 24); |
z.DrawTo(src, 0, 0, src.Width, src.Height, 0, 0); |
w := z.Width; |
h := z.Height; |
bm := TDIB.create; |
try |
bm.Width := w; |
bm.Height := h; |
bm.Canvas.Brush.color := clblack; |
bm.Canvas.FillRect(rect(0, 0, w, h)); |
bm.Canvas.Brush.Color := clwhite; |
bm.Canvas.Ellipse(Spot.left, spot.top, spot.right, spot.bottom); |
bm.Transparent := true; |
z.Canvas.CopyMode := cmSrcAnd; {as transparentcolor for white} |
z.Canvas.Draw(0, 0, src); |
z.Canvas.Draw(0, 0, bm); |
src.Darkness(Amount); |
src.Canvas.CopyMode := cmSrcPaint; |
src.DrawTransparent(z, 0, 0, z.Width, z.Height, 0, 0, clBlack); |
finally |
bm.Free; |
end; |
finally |
z.Free |
end; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.BitCount := 24; |
BB2.Assign(BB1); |
SpotLight(BB2, Amount, Spot); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoEmboss; |
procedure Emboss(var Bmp: TDIB); |
var |
x, y: Integer; |
p1, p2: Pbytearray; |
begin |
for y := 0 to Bmp.Height - 2 do |
begin |
p1 := bmp.scanline[y]; |
p2 := bmp.scanline[y + 1]; |
for x := 0 to Bmp.Width - 4 do |
begin |
p1[x * 3] := (p1[x * 3] + (p2[(x + 3) * 3] xor $FF)) shr 1; |
p1[x * 3 + 1] := (p1[x * 3 + 1] + (p2[(x + 3) * 3 + 1] xor $FF)) shr 1; |
p1[x * 3 + 2] := (p1[x * 3 + 2] + (p2[(x + 3) * 3 + 2] xor $FF)) shr 1; |
end; |
end; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.BitCount := 24; |
BB2.Assign(BB1); |
Emboss(BB2); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoSolorize(Amount: Integer); |
procedure Solorize(src, dst: TDIB; amount: Integer); |
var |
w, h, x, y: Integer; |
ps, pd: pbytearray; |
c: Integer; |
begin |
w := src.width; |
h := src.height; |
src.BitCount := 24; |
dst.BitCount := 24; |
for y := 0 to h - 1 do |
begin |
ps := src.scanline[y]; |
pd := dst.scanline[y]; |
for x := 0 to w - 1 do |
begin |
c := (ps[x * 3] + ps[x * 3 + 1] + ps[x * 3 + 2]) div 3; |
if c > amount then |
begin |
pd[x * 3] := 255 - ps[x * 3]; |
pd[x * 3 + 1] := 255 - ps[x * 3 + 1]; |
pd[x * 3 + 2] := 255 - ps[x * 3 + 2]; |
end |
else |
begin |
pd[x * 3] := ps[x * 3]; |
pd[x * 3 + 1] := ps[x * 3 + 1]; |
pd[x * 3 + 2] := ps[x * 3 + 2]; |
end; |
end; |
end; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.BitCount := 24; |
BB2.Assign(BB1); |
Solorize(BB1, BB2, Amount); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoPosterize(Amount: Integer); |
procedure Posterize(src, dst: TDIB; amount: Integer); |
var |
w, h, x, y: Integer; |
ps, pd: pbytearray; |
begin |
w := src.width; |
h := src.height; |
src.BitCount := 24; |
dst.BitCount := 24; |
for y := 0 to h - 1 do |
begin |
ps := src.scanline[y]; |
pd := dst.scanline[y]; |
for x := 0 to w - 1 do |
begin |
pd[x * 3] := round(ps[x * 3] / amount) * amount; |
pd[x * 3 + 1] := round(ps[x * 3 + 1] / amount) * amount; |
pd[x * 3 + 2] := round(ps[x * 3 + 2] / amount) * amount; |
end; |
end; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.BitCount := 24; |
BB2.Assign(BB1); |
Posterize(BB1, BB2, Amount); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoBrightness(Amount: Integer); |
procedure Brightness(src, dst: TDIB; level: Integer); |
const |
MaxPixelCount = 32768; |
type |
pRGBArray = ^TRGBArray; |
TRGBArray = array[0..MaxPixelCount - 1] of TRGBTriple; |
var |
i, j, value: Integer; |
OrigRow, DestRow: pRGBArray; |
begin |
// get brightness increment value |
value := level; |
src.BitCount := 24; |
dst.BitCount := 24; |
// for each row of pixels |
for i := 0 to src.Height - 1 do |
begin |
OrigRow := src.ScanLine[i]; |
DestRow := dst.ScanLine[i]; |
// for each pixel in row |
for j := 0 to src.Width - 1 do |
begin |
// add brightness value to pixel's RGB values |
if value > 0 then |
begin |
// RGB values must be less than 256 |
DestRow[j].rgbtRed := Min(255, OrigRow[j].rgbtRed + value); |
DestRow[j].rgbtGreen := Min(255, OrigRow[j].rgbtGreen + value); |
DestRow[j].rgbtBlue := Min(255, OrigRow[j].rgbtBlue + value); |
end |
else |
begin |
// RGB values must be greater or equal than 0 |
DestRow[j].rgbtRed := Max(0, OrigRow[j].rgbtRed + value); |
DestRow[j].rgbtGreen := Max(0, OrigRow[j].rgbtGreen + value); |
DestRow[j].rgbtBlue := Max(0, OrigRow[j].rgbtBlue + value); |
end; |
end; |
end; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.BitCount := 24; |
BB2.Assign(BB1); |
Brightness(BB1, BB2, Amount); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoResample(AmountX, AmountY: Integer; TypeResample: TFilterTypeResample); |
procedure Resample(Src, Dst: TDIB; filtertype: TFilterTypeResample; fwidth: single); |
// ----------------------------------------------------------------------------- |
// |
// Filter functions |
// |
// ----------------------------------------------------------------------------- |
// Hermite filter |
function HermiteFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
// f(t) = 2|t|^3 - 3|t|^2 + 1, -1 <= t <= 1 |
if (Value < 0.0) then |
Value := -Value; |
if (Value < 1.0) then |
Result := (2.0 * Value - 3.0) * Sqr(Value) + 1.0 |
else |
Result := 0.0; |
end; |
// Box filter |
// a.k.a. "Nearest Neighbour" filter |
// anme: I have not been able to get acceptable |
// results with this filter for subsampling. |
function BoxFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if (Value > -0.5) and (Value <= 0.5) then |
Result := 1.0 |
else |
Result := 0.0; |
end; |
// Triangle filter |
// a.k.a. "Linear" or "Bilinear" filter |
function TriangleFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if (Value < 0.0) then |
Value := -Value; |
if (Value < 1.0) then |
Result := 1.0 - Value |
else |
Result := 0.0; |
end; |
// Bell filter |
function BellFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if (Value < 0.0) then |
Value := -Value; |
if (Value < 0.5) then |
Result := 0.75 - Sqr(Value) |
else |
if (Value < 1.5) then |
begin |
Value := Value - 1.5; |
Result := 0.5 * Sqr(Value); |
end |
else |
Result := 0.0; |
end; |
// B-spline filter |
function SplineFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
var |
tt: single; |
begin |
if (Value < 0.0) then |
Value := -Value; |
if (Value < 1.0) then |
begin |
tt := Sqr(Value); |
Result := 0.5 * tt * Value - tt + 2.0 / 3.0; |
end |
else |
if (Value < 2.0) then |
begin |
Value := 2.0 - Value; |
Result := 1.0 / 6.0 * Sqr(Value) * Value; |
end |
else |
Result := 0.0; |
end; |
// Lanczos3 filter |
function Lanczos3Filter(Value: Single): Single; |
function SinC(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if (Value <> 0.0) then |
begin |
Value := Value * Pi; |
Result := sin(Value) / Value |
end |
else |
Result := 1.0; |
end; |
begin |
if (Value < 0.0) then |
Value := -Value; |
if (Value < 3.0) then |
Result := SinC(Value) * SinC(Value / 3.0) |
else |
Result := 0.0; |
end; |
function MitchellFilter(Value: Single): Single; {$IFDEF VER9UP}inline;{$ENDIF} |
const |
B = (1.0 / 3.0); |
C = (1.0 / 3.0); |
var |
tt: single; |
begin |
if (Value < 0.0) then |
Value := -Value; |
tt := Sqr(Value); |
if (Value < 1.0) then |
begin |
Value := (((12.0 - 9.0 * B - 6.0 * C) * (Value * tt)) |
+ ((-18.0 + 12.0 * B + 6.0 * C) * tt) |
+ (6.0 - 2 * B)); |
Result := Value / 6.0; |
end |
else |
if (Value < 2.0) then |
begin |
Value := (((-1.0 * B - 6.0 * C) * (Value * tt)) |
+ ((6.0 * B + 30.0 * C) * tt) |
+ ((-12.0 * B - 48.0 * C) * Value) |
+ (8.0 * B + 24 * C)); |
Result := Value / 6.0; |
end |
else |
Result := 0.0; |
end; |
// ----------------------------------------------------------------------------- |
// |
// Interpolator |
// |
// ----------------------------------------------------------------------------- |
type |
// Contributor for a pixel |
TContributor = packed record |
pixel: Integer; // Source pixel |
weight: single; // Pixel weight |
end; |
TContributorList = array[0..0] of TContributor; |
PContributorList = ^TContributorList; |
// List of source pixels contributing to a destination pixel |
TCList = packed record |
n: Integer; |
p: PContributorList; |
end; |
TCListList = array[0..0] of TCList; |
PCListList = ^TCListList; |
TRGB = packed record |
r, g, b: single; |
end; |
// Physical bitmap pixel |
TColorRGB = packed record |
r, g, b: BYTE; |
end; |
PColorRGB = ^TColorRGB; |
// Physical bitmap scanline (row) |
TRGBList = packed array[0..0] of TColorRGB; |
PRGBList = ^TRGBList; |
var |
xscale, yscale: single; // Zoom scale factors |
i, j, k: Integer; // Loop variables |
center: single; // Filter calculation variables |
width, fscale, weight: single; // Filter calculation variables |
left, right: Integer; // Filter calculation variables |
n: Integer; // Pixel number |
Work: TDIB; |
contrib: PCListList; |
rgb: TRGB; |
color: TColorRGB; |
{$IFDEF USE_SCANLINE} |
SourceLine, |
DestLine: PRGBList; |
//SourcePixel, |
DestPixel: PColorRGB; |
Delta, |
DestDelta: Integer; |
{$ENDIF} |
SrcWidth, |
SrcHeight, |
DstWidth, |
DstHeight: Integer; |
function Color2RGB(Color: TColor): TColorRGB; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result.r := Color and $000000FF; |
Result.g := (Color and $0000FF00) shr 8; |
Result.b := (Color and $00FF0000) shr 16; |
end; |
function RGB2Color(Color: TColorRGB): TColor; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := Color.r or (Color.g shl 8) or (Color.b shl 16); |
end; |
begin |
DstWidth := Dst.Width; |
DstHeight := Dst.Height; |
SrcWidth := Src.Width; |
SrcHeight := Src.Height; |
if (SrcWidth < 1) or (SrcHeight < 1) then |
raise Exception.Create('Source bitmap too small'); |
// Create intermediate image to hold horizontal zoom |
Work := TDIB.Create; |
try |
Work.Height := SrcHeight; |
Work.Width := DstWidth; |
// xscale := DstWidth / SrcWidth; |
// yscale := DstHeight / SrcHeight; |
// Improvement suggested by David Ullrich: |
if (SrcWidth = 1) then |
xscale := DstWidth / SrcWidth |
else |
xscale := (DstWidth - 1) / (SrcWidth - 1); |
if (SrcHeight = 1) then |
yscale := DstHeight / SrcHeight |
else |
yscale := (DstHeight - 1) / (SrcHeight - 1); |
// This implementation only works on 24-bit images because it uses |
// TDIB.Scanline |
{$IFDEF USE_SCANLINE} |
//Src.PixelFormat := pf24bit; |
Src.BitCount := 24; |
//Dst.PixelFormat := Src.PixelFormat; |
dst.BitCount := 24; |
//Work.PixelFormat := Src.PixelFormat; |
work.BitCount := 24; |
{$ENDIF} |
// -------------------------------------------- |
// Pre-calculate filter contributions for a row |
// ----------------------------------------------- |
GetMem(contrib, DstWidth * sizeof(TCList)); |
// Horizontal sub-sampling |
// Scales from bigger to smaller width |
if (xscale < 1.0) then |
begin |
width := fwidth / xscale; |
fscale := 1.0 / xscale; |
for i := 0 to DstWidth - 1 do |
begin |
contrib^[i].n := 0; |
GetMem(contrib^[i].p, trunc(width * 2.0 + 1) * sizeof(TContributor)); |
center := i / xscale; |
// Original code: |
// left := ceil(center - width); |
// right := floor(center + width); |
left := floor(center - width); |
right := ceil(center + width); |
for j := left to right do |
begin |
case filtertype of |
ftrBox: weight := boxfilter((center - j) / fscale) / fscale; |
ftrTriangle: weight := trianglefilter((center - j) / fscale) / fscale; |
ftrHermite: weight := hermitefilter((center - j) / fscale) / fscale; |
ftrBell: weight := bellfilter((center - j) / fscale) / fscale; |
ftrBSpline: weight := splinefilter((center - j) / fscale) / fscale; |
ftrLanczos3: weight := Lanczos3filter((center - j) / fscale) / fscale; |
ftrMitchell: weight := Mitchellfilter((center - j) / fscale) / fscale; |
else |
weight := 0 |
end; |
if (weight = 0.0) then |
continue; |
if (j < 0) then |
n := -j |
else if (j >= SrcWidth) then |
n := SrcWidth - j + SrcWidth - 1 |
else |
n := j; |
k := contrib^[i].n; |
contrib^[i].n := contrib^[i].n + 1; |
contrib^[i].p^[k].pixel := n; |
contrib^[i].p^[k].weight := weight; |
end; |
end; |
end |
else |
// Horizontal super-sampling |
// Scales from smaller to bigger width |
begin |
for i := 0 to DstWidth - 1 do |
begin |
contrib^[i].n := 0; |
GetMem(contrib^[i].p, trunc(fwidth * 2.0 + 1) * sizeof(TContributor)); |
center := i / xscale; |
// Original code: |
// left := ceil(center - fwidth); |
// right := floor(center + fwidth); |
left := floor(center - fwidth); |
right := ceil(center + fwidth); |
for j := left to right do |
begin |
case filtertype of |
ftrBox: weight := boxfilter(center - j); |
ftrTriangle: weight := trianglefilter(center - j); |
ftrHermite: weight := hermitefilter(center - j); |
ftrBell: weight := bellfilter(center - j); |
ftrBSpline: weight := splinefilter(center - j); |
ftrLanczos3: weight := Lanczos3filter(center - j); |
ftrMitchell: weight := Mitchellfilter(center - j); |
else |
weight := 0 |
end; |
if (weight = 0.0) then |
continue; |
if (j < 0) then |
n := -j |
else if (j >= SrcWidth) then |
n := SrcWidth - j + SrcWidth - 1 |
else |
n := j; |
k := contrib^[i].n; |
contrib^[i].n := contrib^[i].n + 1; |
contrib^[i].p^[k].pixel := n; |
contrib^[i].p^[k].weight := weight; |
end; |
end; |
end; |
// ---------------------------------------------------- |
// Apply filter to sample horizontally from Src to Work |
// ---------------------------------------------------- |
for k := 0 to SrcHeight - 1 do |
begin |
{$IFDEF USE_SCANLINE} |
SourceLine := Src.ScanLine[k]; |
DestPixel := Work.ScanLine[k]; |
{$ENDIF} |
for i := 0 to DstWidth - 1 do |
begin |
rgb.r := 0.0; |
rgb.g := 0.0; |
rgb.b := 0.0; |
for j := 0 to contrib^[i].n - 1 do |
begin |
{$IFDEF USE_SCANLINE} |
color := SourceLine^[contrib^[i].p^[j].pixel]; |
{$ELSE} |
color := Color2RGB(Src.Canvas.Pixels[contrib^[i].p^[j].pixel, k]); |
{$ENDIF} |
weight := contrib^[i].p^[j].weight; |
if (weight = 0.0) then |
continue; |
rgb.r := rgb.r + color.r * weight; |
rgb.g := rgb.g + color.g * weight; |
rgb.b := rgb.b + color.b * weight; |
end; |
if (rgb.r > 255.0) then |
color.r := 255 |
else if (rgb.r < 0.0) then |
color.r := 0 |
else |
color.r := round(rgb.r); |
if (rgb.g > 255.0) then |
color.g := 255 |
else if (rgb.g < 0.0) then |
color.g := 0 |
else |
color.g := round(rgb.g); |
if (rgb.b > 255.0) then |
color.b := 255 |
else if (rgb.b < 0.0) then |
color.b := 0 |
else |
color.b := round(rgb.b); |
{$IFDEF USE_SCANLINE} |
// Set new pixel value |
DestPixel^ := color; |
// Move on to next column |
inc(DestPixel); |
{$ELSE} |
Work.Canvas.Pixels[i, k] := RGB2Color(color); |
{$ENDIF} |
end; |
end; |
// Free the memory allocated for horizontal filter weights |
for i := 0 to DstWidth - 1 do |
FreeMem(contrib^[i].p); |
FreeMem(contrib); |
// ----------------------------------------------- |
// Pre-calculate filter contributions for a column |
// ----------------------------------------------- |
GetMem(contrib, DstHeight * sizeof(TCList)); |
// Vertical sub-sampling |
// Scales from bigger to smaller height |
if (yscale < 1.0) then |
begin |
width := fwidth / yscale; |
fscale := 1.0 / yscale; |
for i := 0 to DstHeight - 1 do |
begin |
contrib^[i].n := 0; |
GetMem(contrib^[i].p, trunc(width * 2.0 + 1) * sizeof(TContributor)); |
center := i / yscale; |
// Original code: |
// left := ceil(center - width); |
// right := floor(center + width); |
left := floor(center - width); |
right := ceil(center + width); |
for j := left to right do |
begin |
case filtertype of |
ftrBox: weight := boxfilter((center - j) / fscale) / fscale; |
ftrTriangle: weight := trianglefilter((center - j) / fscale) / fscale; |
ftrHermite: weight := hermitefilter((center - j) / fscale) / fscale; |
ftrBell: weight := bellfilter((center - j) / fscale) / fscale; |
ftrBSpline: weight := splinefilter((center - j) / fscale) / fscale; |
ftrLanczos3: weight := Lanczos3filter((center - j) / fscale) / fscale; |
ftrMitchell: weight := Mitchellfilter((center - j) / fscale) / fscale; |
else |
weight := 0 |
end; |
if (weight = 0.0) then |
continue; |
if (j < 0) then |
n := -j |
else if (j >= SrcHeight) then |
n := SrcHeight - j + SrcHeight - 1 |
else |
n := j; |
k := contrib^[i].n; |
contrib^[i].n := contrib^[i].n + 1; |
contrib^[i].p^[k].pixel := n; |
contrib^[i].p^[k].weight := weight; |
end; |
end |
end |
else |
// Vertical super-sampling |
// Scales from smaller to bigger height |
begin |
for i := 0 to DstHeight - 1 do |
begin |
contrib^[i].n := 0; |
GetMem(contrib^[i].p, trunc(fwidth * 2.0 + 1) * sizeof(TContributor)); |
center := i / yscale; |
// Original code: |
// left := ceil(center - fwidth); |
// right := floor(center + fwidth); |
left := floor(center - fwidth); |
right := ceil(center + fwidth); |
for j := left to right do |
begin |
case filtertype of |
ftrBox: weight := boxfilter(center - j); |
ftrTriangle: weight := trianglefilter(center - j); |
ftrHermite: weight := hermitefilter(center - j); |
ftrBell: weight := bellfilter(center - j); |
ftrBSpline: weight := splinefilter(center - j); |
ftrLanczos3: weight := Lanczos3filter(center - j); |
ftrMitchell: weight := Mitchellfilter(center - j); |
else |
weight := 0 |
end; |
if (weight = 0.0) then |
continue; |
if (j < 0) then |
n := -j |
else if (j >= SrcHeight) then |
n := SrcHeight - j + SrcHeight - 1 |
else |
n := j; |
k := contrib^[i].n; |
contrib^[i].n := contrib^[i].n + 1; |
contrib^[i].p^[k].pixel := n; |
contrib^[i].p^[k].weight := weight; |
end; |
end; |
end; |
// -------------------------------------------------- |
// Apply filter to sample vertically from Work to Dst |
// -------------------------------------------------- |
{$IFDEF USE_SCANLINE} |
SourceLine := Work.ScanLine[0]; |
Delta := Integer(Work.ScanLine[1]) - Integer(SourceLine); |
DestLine := Dst.ScanLine[0]; |
DestDelta := Integer(Dst.ScanLine[1]) - Integer(DestLine); |
{$ENDIF} |
for k := 0 to DstWidth - 1 do |
begin |
{$IFDEF USE_SCANLINE} |
DestPixel := pointer(DestLine); |
{$ENDIF} |
for i := 0 to DstHeight - 1 do |
begin |
rgb.r := 0; |
rgb.g := 0; |
rgb.b := 0; |
// weight := 0.0; |
for j := 0 to contrib^[i].n - 1 do |
begin |
{$IFDEF USE_SCANLINE} |
//color := PColorRGB(PByte(SourceLine) + contrib^[i].p^[j].pixel * Delta)^; |
Move(Pointer(Integer(SourceLine) + contrib^[i].p^[j].pixel * Delta)^, Color, SizeOf(Color)); |
{$ELSE} |
color := Color2RGB(Work.Canvas.Pixels[k, contrib^[i].p^[j].pixel]); |
{$ENDIF} |
weight := contrib^[i].p^[j].weight; |
if (weight = 0.0) then |
continue; |
rgb.r := rgb.r + color.r * weight; |
rgb.g := rgb.g + color.g * weight; |
rgb.b := rgb.b + color.b * weight; |
end; |
if (rgb.r > 255.0) then |
color.r := 255 |
else if (rgb.r < 0.0) then |
color.r := 0 |
else |
color.r := round(rgb.r); |
if (rgb.g > 255.0) then |
color.g := 255 |
else if (rgb.g < 0.0) then |
color.g := 0 |
else |
color.g := round(rgb.g); |
if (rgb.b > 255.0) then |
color.b := 255 |
else if (rgb.b < 0.0) then |
color.b := 0 |
else |
color.b := round(rgb.b); |
{$IFDEF USE_SCANLINE} |
DestPixel^ := color; |
{$IFDEF WIN64} |
inc(PByte(DestPixel), DestDelta); |
{$ELSE} |
inc(Integer(DestPixel), DestDelta); |
{$ENDIF} |
{$ELSE} |
Dst.Canvas.Pixels[k, i] := RGB2Color(color); |
{$ENDIF} |
end; |
{$IFDEF USE_SCANLINE} |
Inc(SourceLine, 1); |
Inc(DestLine, 1); |
{$ENDIF} |
end; |
// Free the memory allocated for vertical filter weights |
for i := 0 to DstHeight - 1 do |
FreeMem(contrib^[i].p); |
FreeMem(contrib); |
finally |
Work.Free; |
end; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
BB2.SetSize(AmountX, AmountY, 24); |
Resample(BB1, BB2, TypeResample, DefaultFilterRadius[TypeResample]); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
procedure TDIB.DoColorize(ForeColor, BackColor: TColor); |
procedure Colorize(src, dst: TDIB; iForeColor, iBackColor: TColor; iDither: Boolean{$IFDEF VER4UP} = False{$ENDIF}); |
{for monochromatic picture change colors} |
procedure InvertBitmap(Bmp: TDIB); |
begin |
Bmp.Canvas.CopyMode := cmDstInvert; |
Bmp.Canvas.CopyRect(rect(0, 0, Bmp.Width, Bmp.Height), |
Bmp.Canvas, rect(0, 0, Bmp.Width, Bmp.Height)); |
end; |
var |
fForeColor: TColor; |
fForeDither: Boolean; |
lTempBitmap: TDIB; |
lTempBitmap2: TDIB; |
lDitherBitmap: TDIB; |
lCRect: TRect; |
x, y, w, h: Integer; |
begin |
{--} |
//fColor := iBackColor; ; |
fForeColor := iForeColor; |
fForeDither := iDither; |
w := src.Width; |
h := src.Height; |
lDitherBitmap := nil; |
lTempBitmap := TDIB.Create; |
lTempBitmap.SetSize(w, h, 24); |
lTempBitmap2 := TDIB.Create; |
lTempBitmap2.SetSize(w, h, 24); |
lCRect := rect(0, 0, w, h); |
with lTempBitmap.Canvas do |
begin |
Brush.Style := bsSolid; |
Brush.Color := iBackColor; |
FillRect(lCRect); |
CopyMode := cmSrcInvert; |
CopyRect(lCRect, src.Canvas, lCRect); |
InvertBitmap(src); |
CopyMode := cmSrcPaint; |
CopyRect(lCRect, src.Canvas, lCRect); |
InvertBitmap(lTempBitmap); |
CopyMode := cmSrcInvert; |
CopyRect(lCRect, src.Canvas, lCRect); |
InvertBitmap(src); |
end; |
with lTempBitmap2.Canvas do |
begin |
Brush.Style := bsSolid; |
Brush.Color := clBlack; |
FillRect(lCRect); |
if fForeDither then |
begin |
InvertBitmap(src); |
lDitherBitmap := TDIB.Create; |
lDitherBitmap.SetSize(8, 8, 24); |
with lDitherBitmap.Canvas do |
begin |
for x := 0 to 7 do |
for y := 0 to 7 do |
if ((x mod 2 = 0) and (y mod 2 > 0)) or ((x mod 2 > 0) and (y mod 2 = 0)) then |
pixels[x, y] := fForeColor |
else |
pixels[x, y] := iBackColor; |
end; |
Brush.Bitmap.Assign(lDitherBitmap); |
end |
else |
begin |
Brush.Style := bsSolid; |
Brush.Color := fForeColor; |
end; |
if not fForeDither then |
InvertBitmap(src); |
CopyMode := cmPatPaint; |
CopyRect(lCRect, src.Canvas, lCRect); |
if fForeDither then |
if Assigned(lDitherBitmap) then |
lDitherBitmap.Free; |
CopyMode := cmSrcInvert; |
CopyRect(lCRect, src.Canvas, lCRect); |
end; |
lTempBitmap.Canvas.CopyMode := cmSrcInvert; |
lTempBitmap.Canvas.Copyrect(lCRect, lTempBitmap2.Canvas, lCRect); |
InvertBitmap(src); |
lTempBitmap.Canvas.CopyMode := cmSrcErase; |
lTempBitmap.Canvas.Copyrect(lCRect, src.Canvas, lCRect); |
InvertBitmap(src); |
lTempBitmap.Canvas.CopyMode := cmSrcInvert; |
lTempBitmap.Canvas.Copyrect(lCRect, lTempBitmap2.Canvas, lCRect); |
InvertBitmap(lTempBitmap); |
InvertBitmap(src); |
dst.Assign(lTempBitmap); |
lTempBitmap.Free; |
end; |
var BB1, BB2: TDIB; |
begin |
BB1 := TDIB.Create; |
BB1.BitCount := 24; |
BB1.Assign(Self); |
BB2 := TDIB.Create; |
Colorize(BB1, BB2, ForeColor, BackColor{$IFNDEF VER4UP}, False{$ENDIF}); |
Self.Assign(BB2); |
BB1.Free; |
BB2.Free; |
end; |
{ procedure for special purpose } |
(* |
procedure TDIB.FadeOut(DIB2: TDIB; Step: Byte); |
var |
P1, P2: PByteArray; |
W, H: Integer; |
begin |
P1 := ScanLine[DIB2.Height - 1]; |
P2 := DIB2.ScanLine[DIB2.Height - 1]; |
W := WidthBytes; |
H := Height; |
asm |
PUSH ESI |
PUSH EDI |
MOV ESI, P1 |
MOV EDI, P2 |
MOV EDX, W |
MOV EAX, H |
IMUL EDX |
MOV ECX, EAX |
@@1: |
MOV AL, Step |
MOV AH, [ESI] |
CMP AL, AH |
JA @@2 |
MOV AL, AH |
@@2: |
MOV [EDI], AL |
INC ESI |
INC EDI |
DEC ECX |
JNZ @@1 |
POP EDI |
POP ESI |
end; |
end; |
*) |
procedure TDIB.FadeOut(DIB2: TDIB; Step: Byte); |
var |
P1, P2: PByteArray; |
W, H, i: Integer; |
begin |
P1 := ScanLine[DIB2.Height - 1]; |
P2 := DIB2.ScanLine[DIB2.Height - 1]; |
W := WidthBytes; |
H := Height; |
for i := 0 to W * H - 1 do |
begin |
if P1[i] < Step then P2[i] := P1[i] |
else P2[i] := Step; |
end; |
end; |
procedure TDIB.DoZoom(DIB2: TDIB; ZoomRatio: Real); |
var |
P1, P2: PByteArray; |
W, H: Integer; |
x, y: Integer; |
xr, yr, xstep, ystep: real; |
xstart: real; |
begin |
W := WidthBytes; |
H := Height; |
xstart := (W - (W * ZoomRatio)) / 2; |
xr := xstart; |
yr := (H - (H * ZoomRatio)) / 2; |
xstep := ZoomRatio; |
ystep := ZoomRatio; |
for y := 1 to Height - 1 do |
begin |
P2 := DIB2.ScanLine[y]; |
if (yr >= 0) and (yr <= H) then |
begin |
P1 := ScanLine[Trunc(yr)]; |
for x := 1 to Width - 1 do |
begin |
if (xr >= 0) and (xr <= W) then |
begin |
P2[x] := P1[Trunc(xr)]; |
end |
else |
begin |
P2[x] := 0; |
end; |
xr := xr + xstep; |
end; |
end |
else |
begin |
for x := 1 to Width - 1 do |
begin |
P2[x] := 0; |
end; |
end; |
xr := xstart; |
yr := yr + ystep; |
end; |
end; |
procedure TDIB.DoBlur(DIB2: TDIB); |
var |
P1, P2: PByteArray; |
W: Integer; |
x, y: Integer; |
begin |
W := WidthBytes; |
for y := 1 to Height - 1 do |
begin |
P1 := ScanLine[y]; |
P2 := DIB2.ScanLine[y]; |
for x := 1 to Width - 1 do |
begin |
P2[x] := (P1[x] + P1[x - 1] + P1[x + 1] + P1[x + W] + P1[x - W]) div 5; |
end; |
end; |
end; |
(* |
procedure TDIB.FadeIn(DIB2: TDIB; Step: Byte); |
var |
P1, P2: PByteArray; |
W, H: Integer; |
begin |
P1 := ScanLine[DIB2.Height - 1]; |
P2 := DIB2.ScanLine[DIB2.Height - 1]; |
W := WidthBytes; |
H := Height; |
asm |
PUSH ESI |
PUSH EDI |
MOV ESI, P1 |
MOV EDI, P2 |
MOV EDX, W |
MOV EAX, H |
IMUL EDX |
MOV ECX, EAX |
@@1: |
MOV AL, Step |
MOV AH, [ESI] |
CMP AL, AH |
JB @@2 |
MOV AL, AH |
@@2: |
MOV [EDI], AL |
INC ESI |
INC EDI |
DEC ECX |
JNZ @@1 |
POP EDI |
POP ESI |
end; |
end; |
*) |
procedure TDIB.FadeIn(DIB2: TDIB; Step: Byte); |
var |
P1, P2: PByteArray; |
W, H, i: Integer; |
begin |
P1 := ScanLine[DIB2.Height - 1]; |
P2 := DIB2.ScanLine[DIB2.Height - 1]; |
W := WidthBytes; |
H := Height; |
for i := 0 to W * H - 1 do |
begin |
if P1[i] > Step then P2[i] := P1[i] |
else P2[i] := Step; |
end; |
end; |
(* |
procedure TDIB.FillDIB8(Color: Byte); |
var |
P: PByteArray; |
W, H: Integer; |
begin |
P := ScanLine[Height - 1]; |
W := WidthBytes; |
H := Height; |
asm |
PUSH ESI |
MOV ESI, P |
MOV EDX, W |
MOV EAX, H |
IMUL EDX |
MOV ECX, EAX |
MOV AL, Color |
@@1: |
MOV [ESI], AL |
INC ESI |
DEC ECX |
JNZ @@1 |
POP ESI |
end; |
end; |
*) |
procedure TDIB.FillDIB8(Color: Byte); |
var |
P: PByteArray; |
W, H, I: Integer; |
begin |
P := ScanLine[Height - 1]; |
W := WidthBytes; |
H := Height; |
for I := 0 to W * H - 1 do |
P[I] := Color; |
end; |
procedure TDIB.DoRotate(DIB1: TDIB; cX, cY, Angle: Integer); |
type |
T3Byte = array[0..2] of Byte; |
P3ByteArray = ^T3ByteArray; |
T3ByteArray = array[0..32767] of T3Byte; |
PLongArray = ^TLongArray; |
TLongArray = array[0..32767] of LongInt; |
var |
p, p2: PByteArray; |
x, y, x2, y2, angled: Integer; |
cosy, siny: real; |
begin |
angled := 384 + Angle; |
for y := 0 to Height - 1 do |
begin |
p := DIB1.ScanLine[y]; |
cosy := (y - cY) * dcos(angled and $1FF); |
siny := (y - cY) * dsin(angled and $1FF); |
for x := 0 to Width - 1 do |
begin |
x2 := Trunc((x - cX) * dsin(angled and $1FF) + cosy) + cX; |
y2 := Trunc((x - cX) * dcos(angled and $1FF) - siny) + cY; |
case bitcount of |
8: |
begin |
if (y2 >= 0) and (y2 < Height) and (x2 >= 0) and (x2 < Width) then |
begin |
p2 := ScanLine[y2]; |
p[x] := p2[Width - x2]; |
end |
else |
begin |
if p[x] > 4 then |
p[x] := p[x] - 4 |
else |
p[x] := 0; |
end; |
end; |
16: |
begin |
if (y2 >= 0) and (y2 < Height) and (x2 >= 0) and (x2 < Width) then |
begin |
PWordArray(p2) := ScanLine[y2]; |
PWordArray(p)[x] := PWordArray(p2)[Width - x2]; |
end |
else |
begin |
if PWordArray(p)[x] > 4 then |
PWordArray(p)[x] := PWordArray(p)[x] - 4 |
else |
PWordArray(p)[x] := 0; |
end; |
end; |
24: |
begin |
if (y2 >= 0) and (y2 < Height) and (x2 >= 0) and (x2 < Width) then |
begin |
P3ByteArray(p2) := ScanLine[y2]; |
P3ByteArray(p)[x] := P3ByteArray(p2)[Width - x2]; |
end |
else |
begin |
if P3ByteArray(p)[x][0] > 4 then |
P3ByteArray(p)[x][0] := P3ByteArray(p)[x][0] - 4 |
else if P3ByteArray(p)[x][1] > 4 then |
P3ByteArray(p)[x][1] := P3ByteArray(p)[x][1] - 4 |
else if P3ByteArray(p)[x][2] > 4 then |
P3ByteArray(p)[x][2] := P3ByteArray(p)[x][2] - 4 |
else |
begin |
P3ByteArray(p)[x][0] := 0; |
P3ByteArray(p)[x][1] := 0; |
P3ByteArray(p)[x][2] := 0; |
end; |
end; |
end; |
32: begin |
if (y2 >= 0) and (y2 < Height) and (x2 >= 0) and (x2 < Width) then |
begin |
plongarray(p2) := ScanLine[y2]; |
plongarray(p)[x] := plongarray(p2)[Width - x2]; |
end |
else |
begin |
if plongarray(p)[x] > 4 then |
plongarray(p)[x] := plongarray(p)[x] - 4 |
else |
plongarray(p)[x] := 0; |
end; |
end; |
end |
end; |
end; |
end; |
function TDIB.Ink(DIB: TDIB; const SprayInit: Boolean; const AmountSpray: Integer): Boolean; |
type |
T3Byte = array[0..2] of Byte; |
P3ByteArray = ^T3ByteArray; |
T3ByteArray = array[0..32767] of T3Byte; |
PLongArray = ^TLongArray; |
TLongArray = array[0..32767] of LongInt; |
function ColorToRGBTriple(const Color: TColor): TRGBTriple; |
begin |
with RESULT do |
begin |
rgbtRed := GetRValue(Color); |
rgbtGreen := GetGValue(Color); |
rgbtBlue := GetBValue(Color) |
end |
end {ColorToRGBTriple}; |
function TestQuad(T: T3Byte; Color: Integer): Boolean; |
begin |
Result := (T[0] > GetRValue(Color)) and |
(T[1] > GetGValue(Color)) and |
(T[2] > GetBValue(Color)) |
end; |
var |
p0, p, p2: PByteArray; |
x, y, c: Integer; |
z: Integer; |
begin |
if SprayInit then |
begin |
DIB.Assign(Self); |
{ Spray seeds } |
for c := 0 to AmountSpray do |
begin |
DIB.Pixels[Random(Width - 1), Random(Height - 1)] := 0; |
end; |
end; |
Result := True; {all is black} |
for y := 0 to DIB.Height - 1 do |
begin |
p := DIB.ScanLine[y]; |
for x := 0 to DIB.Width - 1 do |
begin |
case bitcount of |
8: |
begin |
if p[x] < 16 then |
begin |
if p[x] > 0 then Result := False; |
if y > 0 then |
begin |
p0 := DIB.ScanLine[y - 1]; |
if p0[x] > 4 then |
p0[x] := p0[x] - 4 |
else |
p0[x] := 0; |
if x > 0 then |
if p0[x - 1] > 2 then |
p0[x - 1] := p0[x - 1] - 2 |
else |
p0[x - 1] := 0; |
if x < (DIB.Width - 1) then |
if p0[x + 1] > 2 then |
p0[x + 1] := p0[x + 1] - 2 |
else |
p0[x + 1] := 0; |
end; |
if y < (DIB.Height - 1) then |
begin |
p2 := DIB.ScanLine[y + 1]; |
if p2[x] > 4 then |
p2[x] := p2[x] - 4 |
else |
p2[x] := 0; |
if x > 0 then |
if p2[x - 1] > 2 then |
p2[x - 1] := p2[x - 1] - 2 |
else |
p2[x - 1] := 0; |
if x < (DIB.Width - 1) then |
if p2[x + 1] > 2 then |
p2[x + 1] := p2[x + 1] - 2 |
else |
p2[x + 1] := 0; |
end; |
if p[x] > 8 then |
p[x] := p[x] - 8 |
else |
p[x] := 0; |
if x > 0 then |
if p[x - 1] > 4 then |
p[x - 1] := p[x - 1] - 4 |
else |
p[x - 1] := 0; |
if x < (DIB.Width - 1) then |
if p[x + 1] > 4 then |
p[x + 1] := p[x + 1] - 4 |
else |
p[x + 1] := 0; |
end; |
end; |
16: |
begin |
if pwordarray(p)[x] < 16 then |
begin |
if pwordarray(p)[x] > 0 then Result := False; |
if y > 0 then |
begin |
pwordarray(p0) := DIB.ScanLine[y - 1]; |
if pwordarray(p0)[x] > 4 then |
pwordarray(p0)[x] := pwordarray(p0)[x] - 4 |
else |
pwordarray(p0)[x] := 0; |
if x > 0 then |
if pwordarray(p0)[x - 1] > 2 then |
pwordarray(p0)[x - 1] := pwordarray(p0)[x - 1] - 2 |
else |
pwordarray(p0)[x - 1] := 0; |
if x < (DIB.Width - 1) then |
if pwordarray(p0)[x + 1] > 2 then |
pwordarray(p0)[x + 1] := pwordarray(p0)[x + 1] - 2 |
else |
pwordarray(p0)[x + 1] := 0; |
end; |
if y < (DIB.Height - 1) then |
begin |
pwordarray(p2) := DIB.ScanLine[y + 1]; |
if pwordarray(p2)[x] > 4 then |
pwordarray(p2)[x] := pwordarray(p2)[x] - 4 |
else |
pwordarray(p2)[x] := 0; |
if x > 0 then |
if pwordarray(p2)[x - 1] > 2 then |
pwordarray(p2)[x - 1] := pwordarray(p2)[x - 1] - 2 |
else |
pwordarray(p2)[x - 1] := 0; |
if x < (DIB.Width - 1) then |
if pwordarray(p2)[x + 1] > 2 then |
pwordarray(p2)[x + 1] := pwordarray(p2)[x + 1] - 2 |
else |
pwordarray(p2)[x + 1] := 0; |
end; |
if pwordarray(p)[x] > 8 then |
pwordarray(p)[x] := pwordarray(p)[x] - 8 |
else |
pwordarray(p)[x] := 0; |
if x > 0 then |
if pwordarray(p)[x - 1] > 4 then |
pwordarray(p)[x - 1] := pwordarray(p)[x - 1] - 4 |
else |
pwordarray(p)[x - 1] := 0; |
if x < (DIB.Width - 1) then |
if pwordarray(p)[x + 1] > 4 then |
pwordarray(p)[x + 1] := pwordarray(p)[x + 1] - 4 |
else |
pwordarray(p)[x + 1] := 0; |
end; |
end; |
24: |
begin |
if not TestQuad(P3ByteArray(p)[x], 16) then |
begin |
if TestQuad(P3ByteArray(p)[x], 0) then Result := False; |
if y > 0 then |
begin |
P3ByteArray(p0) := DIB.ScanLine[y - 1]; |
if TestQuad(P3ByteArray(p0)[x], 4) then |
begin |
for z := 0 to 2 do |
if P3ByteArray(p0)[x][z] > 4 then |
P3ByteArray(p0)[x][z] := P3ByteArray(p0)[x][z] - 4 |
end |
else |
for z := 0 to 2 do |
P3ByteArray(p0)[x][z] := 0; |
if x > 0 then |
if TestQuad(P3ByteArray(p0)[x - 1], 2) then |
begin |
for z := 0 to 2 do |
if P3ByteArray(p0)[x - 1][z] > 2 then |
P3ByteArray(p0)[x - 1][z] := P3ByteArray(p0)[x - 1][z] - 2 |
end |
else |
for z := 0 to 2 do |
P3ByteArray(p0)[x - 1][z] := 0; |
if x < (DIB.Width - 1) then |
if TestQuad(P3ByteArray(p0)[x + 1], 2) then |
begin |
for z := 0 to 2 do |
if P3ByteArray(p0)[x + 1][z] > 2 then |
P3ByteArray(p0)[x + 1][z] := P3ByteArray(p0)[x + 1][z] - 2 |
end |
else |
for z := 0 to 2 do |
P3ByteArray(p0)[x + 1][z] := 0; |
end; |
if y < (DIB.Height - 1) then |
begin |
P3ByteArray(p2) := DIB.ScanLine[y + 1]; |
if TestQuad(P3ByteArray(p2)[x], 4) then |
begin |
for z := 0 to 2 do |
if P3ByteArray(p2)[x][z] > 4 then |
P3ByteArray(p2)[x][z] := P3ByteArray(p2)[x][z] - 4 |
end |
else |
for z := 0 to 2 do |
P3ByteArray(p2)[x][z] := 0; |
if x > 0 then |
if TestQuad(P3ByteArray(p2)[x - 1], 2) then |
begin |
for z := 0 to 2 do |
if P3ByteArray(p2)[x - 1][z] > 2 then |
P3ByteArray(p2)[x - 1][z] := P3ByteArray(p2)[x - 1][z] - 2 |
end |
else |
for z := 0 to 2 do |
P3ByteArray(p2)[x - 1][z] := 0; |
if x < (DIB.Width - 1) then |
if TestQuad(P3ByteArray(p2)[x + 1], 2) then |
begin |
for z := 0 to 2 do |
if P3ByteArray(p2)[x + 1][z] > 2 then |
P3ByteArray(p2)[x + 1][z] := P3ByteArray(p2)[x + 1][z] - 2 |
end |
else |
for z := 0 to 2 do |
P3ByteArray(p2)[x + 1][z] := 0; |
end; |
if TestQuad(P3ByteArray(p)[x], 8) then |
begin |
for z := 0 to 2 do |
if P3ByteArray(p)[x][z] > 8 then |
P3ByteArray(p)[x][z] := P3ByteArray(p)[x][z] - 8 |
end |
else |
for z := 0 to 2 do |
P3ByteArray(p)[x][z] := 0; |
if x > 0 then |
if TestQuad(P3ByteArray(p)[x - 1], 4) then |
begin |
for z := 0 to 2 do |
if P3ByteArray(p)[x - 1][z] > 4 then |
P3ByteArray(p)[x - 1][z] := P3ByteArray(p)[x - 1][z] - 4 |
end |
else |
for z := 0 to 2 do |
P3ByteArray(p)[x - 1][z] := 0; |
if x < (DIB.Width - 1) then |
if TestQuad(P3ByteArray(p)[x + 1], 4) then |
begin |
for z := 0 to 2 do |
if P3ByteArray(p)[x + 1][z] > 4 then |
P3ByteArray(p)[x + 1][z] := P3ByteArray(p)[x + 1][z] - 4 |
end |
else |
for z := 0 to 2 do |
P3ByteArray(p)[x + 1][z] := 0; |
end; |
end; |
32: |
begin |
if plongarray(p)[x] < 16 then |
begin |
if plongarray(p)[x] > 0 then Result := False; |
if y > 0 then |
begin |
plongarray(p0) := DIB.ScanLine[y - 1]; |
if plongarray(p0)[x] > 4 then |
plongarray(p0)[x] := plongarray(p0)[x] - 4 |
else |
plongarray(p0)[x] := 0; |
if x > 0 then |
if plongarray(p0)[x - 1] > 2 then |
plongarray(p0)[x - 1] := plongarray(p0)[x - 1] - 2 |
else |
plongarray(p0)[x - 1] := 0; |
if x < (DIB.Width - 1) then |
if plongarray(p0)[x + 1] > 2 then |
plongarray(p0)[x + 1] := plongarray(p0)[x + 1] - 2 |
else |
plongarray(p0)[x + 1] := 0; |
end; |
if y < (DIB.Height - 1) then |
begin |
plongarray(p2) := DIB.ScanLine[y + 1]; |
if plongarray(p2)[x] > 4 then |
plongarray(p2)[x] := plongarray(p2)[x] - 4 |
else |
plongarray(p2)[x] := 0; |
if x > 0 then |
if plongarray(p2)[x - 1] > 2 then |
plongarray(p2)[x - 1] := plongarray(p2)[x - 1] - 2 |
else |
plongarray(p2)[x - 1] := 0; |
if x < (DIB.Width - 1) then |
if plongarray(p2)[x + 1] > 2 then |
plongarray(p2)[x + 1] := plongarray(p2)[x + 1] - 2 |
else |
plongarray(p2)[x + 1] := 0; |
end; |
if plongarray(p)[x] > 8 then |
plongarray(p)[x] := plongarray(p)[x] - 8 |
else |
plongarray(p)[x] := 0; |
if x > 0 then |
if plongarray(p)[x - 1] > 4 then |
plongarray(p)[x - 1] := plongarray(p)[x - 1] - 4 |
else |
plongarray(p)[x - 1] := 0; |
if x < (DIB.Width - 1) then |
if plongarray(p)[x + 1] > 4 then |
plongarray(p)[x + 1] := plongarray(p)[x + 1] - 4 |
else |
plongarray(p)[x + 1] := 0; |
end; |
end; |
end {case}; |
end; |
end; |
end; |
procedure TDIB.Distort(DIB1: TDIB; dt: TDistortType; cX, cY, Angle: Integer; Factor: Real); |
type |
T3Byte = array[0..2] of Byte; |
P3ByteArray = ^T3ByteArray; |
T3ByteArray = array[0..32767] of T3Byte; |
PLongArray = ^TLongArray; |
TLongArray = array[0..32767] of LongInt; |
var |
p, p2: PByteArray; |
x, y, x2, y2, angled, ysqr: Integer; |
actdist, dist, cosy, siny: real; |
begin |
dist := Factor * sqrt(sqr(cX) + sqr(cY)); |
for y := 0 to DIB1.Height - 1 do |
begin |
p := DIB1.ScanLine[y]; |
ysqr := sqr(y - cY); |
for x := 0 to (DIB1.Width) - 1 do |
begin |
actdist := (sqrt((sqr(x - cX) + ysqr)) / dist); |
if dt = dtSlow then |
actdist := dsin((Trunc(actdist * 1024)) and $1FF); |
angled := 384 + Trunc((actdist) * Angle); |
cosy := (y - cY) * dcos(angled and $1FF); |
siny := (y - cY) * dsin(angled and $1FF); |
x2 := Trunc((x - cX) * dsin(angled and $1FF) + cosy) + cX; |
y2 := Trunc((x - cX) * dcos(angled and $1FF) - siny) + cY; |
case bitcount of |
8: |
begin |
if (y2 >= 0) and (y2 < Height) and (x2 >= 0) and (x2 < Width) then |
begin |
p2 := ScanLine[y2]; |
p[x] := p2[Width - x2]; |
end |
else |
begin |
if p[x] > 2 then |
p[x] := p[x] - 2 |
else |
p[x] := 0; |
end; |
end; |
16: |
begin |
if (y2 >= 0) and (y2 < Height) and (x2 >= 0) and (x2 < Width) then |
begin |
pwordarray(p2) := ScanLine[y2]; |
pwordarray(p)[x] := pwordarray(p2)[Width - x2]; |
end |
else |
begin |
if pwordarray(p)[x] > 2 then |
pwordarray(p)[x] := pwordarray(p)[x] - 2 |
else |
pwordarray(p)[x] := 0; |
end; |
end; |
24: |
begin |
if (y2 >= 0) and (y2 < Height) and (x2 >= 0) and (x2 < Width) then |
begin |
P3ByteArray(p2) := ScanLine[y2]; |
P3ByteArray(p)[x] := P3ByteArray(p2)[Width - x2]; |
end |
else |
begin |
if P3ByteArray(p)[x][0] > 2 then |
P3ByteArray(p)[x][0] := P3ByteArray(p)[x][0] - 2 |
else if P3ByteArray(p)[x][1] > 2 then |
P3ByteArray(p)[x][1] := P3ByteArray(p)[x][1] - 2 |
else if P3ByteArray(p)[x][2] > 2 then |
P3ByteArray(p)[x][2] := P3ByteArray(p)[x][2] - 2 |
else |
begin |
P3ByteArray(p)[x][0] := 0; |
P3ByteArray(p)[x][1] := 0; |
P3ByteArray(p)[x][2] := 0; |
end; |
end; |
end; |
32: |
begin |
if (y2 >= 0) and (y2 < Height) and (x2 >= 0) and (x2 < Width) then |
begin |
plongarray(p2) := ScanLine[y2]; |
plongarray(p)[x] := plongarray(p2)[Width - x2]; |
end |
else |
begin |
if p[x] > 2 then |
plongarray(p)[x] := plongarray(p)[x] - 2 |
else |
plongarray(p)[x] := 0; |
end; |
end; |
end {case} |
end; |
end; |
end; |
procedure TDIB.AntialiasedLine(x1, y1, x2, y2: Integer; color: TColor); |
//anti-aliased line using the Wu algorithm by Peter Bone |
var |
dX, dY, X, Y, start, finish: Integer; |
LM, LR: Integer; |
dxi, dyi, dydxi: Integer; |
P: PLines; |
R, G, B: byte; |
begin |
R := GetRValue(Color); |
G := GetGValue(Color); |
B := GetBValue(Color); |
dX := abs(x2 - x1); // Calculate deltax and deltay for initialisation |
dY := abs(y2 - y1); |
if (dX = 0) or (dY = 0) then |
begin |
Canvas.Pen.Color := (B shl 16) + (G shl 8) + R; |
Canvas.MoveTo(x1, y1); |
Canvas.LineTo(x2, y2); |
exit; |
end; |
if dX > dY then |
begin // horizontal or vertical |
if y2 > y1 then // determine rise and run |
dydxi := -dY shl 16 div dX |
else |
dydxi := dY shl 16 div dX; |
if x2 < x1 then |
begin |
start := x2; // right to left |
finish := x1; |
dyi := y2 shl 16; |
end |
else |
begin |
start := x1; // left to right |
finish := x2; |
dyi := y1 shl 16; |
dydxi := -dydxi; // inverse slope |
end; |
if finish >= Width then finish := Width - 1; |
for X := start to finish do |
begin |
Y := dyi shr 16; |
if (X < 0) or (Y < 0) or (Y > Height - 2) then |
begin |
Inc(dyi, dydxi); |
Continue; |
end; |
LM := dyi - Y shl 16; // fractional part of dyi - in fixed-point |
LR := 65536 - LM; |
P := Scanline[Y]; |
P^[X].B := (B * LR + P^[X].B * LM) shr 16; |
P^[X].G := (G * LR + P^[X].G * LM) shr 16; |
P^[X].R := (R * LR + P^[X].R * LM) shr 16; |
//Inc(Y); |
P^[X].B := (B * LM + P^[X].B * LR) shr 16; |
P^[X].G := (G * LM + P^[X].G * LR) shr 16; |
P^[X].R := (R * LM + P^[X].R * LR) shr 16; |
Inc(dyi, dydxi); // next point |
end; |
end |
else |
begin |
if x2 > x1 then // determine rise and run |
dydxi := -dX shl 16 div dY |
else |
dydxi := dX shl 16 div dY; |
if y2 < y1 then |
begin |
start := y2; // right to left |
finish := y1; |
dxi := x2 shl 16; |
end |
else |
begin |
start := y1; // left to right |
finish := y2; |
dxi := x1 shl 16; |
dydxi := -dydxi; // inverse slope |
end; |
if finish >= Height then finish := Height - 1; |
for Y := start to finish do |
begin |
X := dxi shr 16; |
if (Y < 0) or (X < 0) or (X > Width - 2) then |
begin |
Inc(dxi, dydxi); |
Continue; |
end; |
LM := dxi - X shl 16; |
LR := 65536 - LM; |
P := Scanline[Y]; |
P^[X].B := (B * LR + P^[X].B * LM) shr 16; |
P^[X].G := (G * LR + P^[X].G * LM) shr 16; |
P^[X].R := (R * LR + P^[X].R * LM) shr 16; |
Inc(X); |
P^[X].B := (B * LM + P^[X].B * LR) shr 16; |
P^[X].G := (G * LM + P^[X].G * LR) shr 16; |
P^[X].R := (R * LM + P^[X].R * LR) shr 16; |
Inc(dxi, dydxi); // next point |
end; |
end; |
end; |
(* |
function TDIB.GetColorBetween(StartColor, EndColor: TColor; Pointvalue, |
FromPoint, ToPoint: Extended): TColor; |
var F: Extended; r1, r2, r3, g1, g2, g3, b1, b2, b3: Byte; |
function CalcColorBytes(fb1, fb2: Byte): Byte; |
begin |
result := fb1; |
if fb1 < fb2 then Result := FB1 + Trunc(F * (fb2 - fb1)); |
if fb1 > fb2 then Result := FB1 - Trunc(F * (fb1 - fb2)); |
end; |
begin |
if Pointvalue <= FromPoint then |
begin |
result := StartColor; |
exit; |
end; |
if Pointvalue >= ToPoint then |
begin |
result := EndColor; |
exit; |
end; |
F := (Pointvalue - FromPoint) / (ToPoint - FromPoint); |
asm |
mov EAX, Startcolor |
cmp EAX, EndColor |
je @@exit //when equal then exit |
mov r1, AL |
shr EAX,8 |
mov g1, AL |
shr EAX,8 |
mov b1, AL |
mov EAX, Endcolor |
mov r2, AL |
shr EAX,8 |
mov g2, AL |
shr EAX,8 |
mov b2, AL |
push ebp |
mov AL, r1 |
mov DL, r2 |
call CalcColorBytes |
pop ECX |
push EBP |
Mov r3, AL |
mov DL, g2 |
mov AL, g1 |
call CalcColorBytes |
pop ECX |
push EBP |
mov g3, Al |
mov DL, B2 |
mov Al, B1 |
call CalcColorBytes |
pop ECX |
mov b3, AL |
XOR EAX,EAX |
mov AL, B3 |
shl EAX,8 |
mov AL, G3 |
shl EAX,8 |
mov AL, R3 |
@@Exit: |
mov @result, EAX |
end; |
end; |
*) |
function TDIB.GetColorBetween(StartColor, EndColor: TColor; Pointvalue, FromPoint, ToPoint: Extended): TColor; |
var |
F: Extended; |
r1, g1, b1, r2, g2, b2, r3, g3, b3: Byte; |
function CalcColorBytes(const factor: Extended; const fb1, fb2: Byte): Byte; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := fb1; |
if fb1 < fb2 then Result := fb1 + Trunc(factor * (fb2 - fb1)); |
if fb1 > fb2 then Result := fb1 - Trunc(factor * (fb1 - fb2)); |
end; |
procedure GetRGB(const AColor: TColor; var R, G, B: Byte); {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
R := AColor and $FF; |
G := (AColor shr 8) and $FF; |
B := (AColor shr 16) and $FF; |
end; |
begin |
if Pointvalue <= FromPoint then |
begin |
Result := StartColor; |
Exit; |
end; |
if Pointvalue >= ToPoint then |
begin |
Result := EndColor; |
Exit; |
end; |
F := (Pointvalue - FromPoint) / (ToPoint - FromPoint); |
GetRGB(StartColor, r1, g1, b1); |
// r1 := StartColor and $FF; |
// g1 := (StartColor shr 8) and $FF; |
// b1 := (StartColor shr 16) and $FF; |
GetRGB(StartColor, r2, g2, b2); |
// r2 := EndColor and $FF; |
// g2 := (EndColor shr 8) and $FF; |
// b2 := (EndColor shr 16) and $FF; |
r3 := CalcColorBytes(F, r1, r2); |
g3 := CalcColorBytes(F, g1, g2); |
b3 := CalcColorBytes(F, b1, b2); |
Result := (b3 shl 16) or (g3 shl 8) or r3; |
end; |
procedure TDIB.ColoredLine(const iStart, iEnd: TPoint; iColorStyle: TColorLineStyle; |
iGradientFrom, iGradientTo: TColor; iPixelGeometry: TColorLinePixelGeometry; iRadius: Word); |
var |
tempColor: TColor; |
const |
WavelengthMinimum = 380; |
WavelengthMaximum = 780; |
procedure SetColor(Color: TColor); |
begin |
Canvas.Pen.Color := Color; |
Canvas.Brush.Color := Color; |
tempColor := Color |
end {SetColor}; |
function WL2RGB(const Wavelength: Double): TColor; {$IFDEF VER9UP}inline;{$ENDIF} |
const |
Gamma = 0.80; |
IntensityMax = 255; |
var |
Red, Blue, Green, Factor: Double; |
function Adjust(const Color, Factor: Double): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if Color = 0.0 then Result := 0 |
else Result := Round(IntensityMax * Power(Color * Factor, Gamma)) |
end {Adjust}; |
begin |
case Trunc(Wavelength) of |
380..439: |
begin |
Red := -(Wavelength - 440) / (440 - 380); |
Green := 0.0; |
Blue := 1.0 |
end; |
440..489: |
begin |
Red := 0.0; |
Green := (Wavelength - 440) / (490 - 440); |
Blue := 1.0 |
end; |
490..509: |
begin |
Red := 0.0; |
Green := 1.0; |
Blue := -(Wavelength - 510) / (510 - 490) |
end; |
510..579: |
begin |
Red := (Wavelength - 510) / (580 - 510); |
Green := 1.0; |
Blue := 0.0 |
end; |
580..644: |
begin |
Red := 1.0; |
Green := -(Wavelength - 645) / (645 - 580); |
Blue := 0.0 |
end; |
645..780: |
begin |
Red := 1.0; |
Green := 0.0; |
Blue := 0.0 |
end; |
else |
Red := 0.0; |
Green := 0.0; |
Blue := 0.0 |
end; |
case Trunc(Wavelength) of |
380..419: factor := 0.3 + 0.7 * (Wavelength - 380) / (420 - 380); |
420..700: factor := 1.0; |
701..780: factor := 0.3 + 0.7 * (780 - Wavelength) / (780 - 700) |
else |
factor := 0.0 |
end; |
Result := RGB(Adjust(Red, Factor), Adjust(Green, Factor), Adjust(Blue, Factor)); |
end; |
function Rainbow(const fraction: Double): TColor; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if (fraction < 0.0) or (fraction > 1.0) then Result := clBlack |
else |
Result := WL2RGB(WavelengthMinimum + Fraction * (WavelengthMaximum - WavelengthMinimum)) |
end {Raindbow}; |
function ColorInterpolate(const fraction: Double; const Color1, Color2: TColor): TColor; {$IFDEF VER9UP}inline;{$ENDIF} |
var |
complement: Double; |
R1, R2, G1, G2, B1, B2: BYTE; |
begin |
if fraction <= 0 then Result := Color1 |
else |
if fraction >= 1.0 then Result := Color2 |
else |
begin |
R1 := GetRValue(Color1); |
G1 := GetGValue(Color1); |
B1 := GetBValue(Color1); |
R2 := GetRValue(Color2); |
G2 := GetGValue(Color2); |
B2 := GetBValue(Color2); |
complement := 1.0 - fraction; |
Result := RGB(Round(complement * R1 + fraction * R2), |
Round(complement * G1 + fraction * G2), |
Round(complement * B1 + fraction * B2)) |
end |
end {ColorInterpolate}; |
// Conversion utility routines |
function ColorToRGBTriple(const Color: TColor): TRGBTriple; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
with Result do |
begin |
rgbtRed := GetRValue(Color); |
rgbtGreen := GetGValue(Color); |
rgbtBlue := GetBValue(Color) |
end |
end {ColorToRGBTriple}; |
function RGBTripleToColor(const Triple: TRGBTriple): TColor; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := RGB(Triple.rgbtRed, Triple.rgbtGreen, Triple.rgbtBlue) |
end {RGBTripleToColor}; |
// Bresenham's Line Algorithm. Byte, March 1988, pp. 249-253. |
var |
a, b, d, diag_inc, dXdg, dXndg, dYdg, dYndg, i, nDginc, nDswap, x, y: Integer; |
begin {DrawLine} |
x := iStart.X; |
y := iStart.Y; |
a := iEnd.X - iStart.X; |
b := iEnd.Y - iStart.Y; |
if a < 0 then |
begin |
a := -a; |
dXdg := -1 |
end |
else dXdg := 1; |
if b < 0 then |
begin |
b := -b; |
dYdg := -1 |
end |
else dYdg := 1; |
if a < b then |
begin |
nDswap := a; |
a := b; |
b := nDswap; |
dXndg := 0; |
dYndg := dYdg |
end |
else |
begin |
dXndg := dXdg; |
dYndg := 0 |
end; |
d := b + b - a; |
nDginc := b + b; |
diag_inc := b + b - a - a; |
for i := 0 to a do |
begin |
case iPixelGeometry of |
pgPoint: |
case iColorStyle of |
csSolid: |
Canvas.Pixels[x, y] := tempColor; |
csGradient: |
Canvas.Pixels[x, y] := ColorInterpolate(i / a, iGradientFrom, iGradientTo); |
csRainbow: |
Canvas.Pixels[x, y] := Rainbow(i / a) |
end; |
pgCircular: |
begin |
case iColorStyle of |
csSolid: ; |
csGradient: SetColor(ColorInterpolate(i / a, iGradientFrom, iGradientTo)); |
csRainbow: SetColor(Rainbow(i / a)) |
end; |
Canvas.Ellipse(x - iRadius, y - iRadius, x + iRadius, y + iRadius) |
end; |
pgRectangular: |
begin |
case iColorStyle of |
csSolid: ; |
csGradient: SetColor(ColorInterpolate(i / a, iGradientFrom, iGradientTo)); |
csRainbow: SetColor(Rainbow(i / a)) |
end; |
Canvas.Rectangle(x - iRadius, y - iRadius, x + iRadius, y + iRadius) |
end |
end; |
if d < 0 then |
begin |
Inc(x, dXndg); |
Inc(y, dYndg); |
Inc(d, nDginc); |
end |
else |
begin |
Inc(x, dXdg); |
Inc(y, dYdg); |
Inc(d, diag_inc); |
end |
end |
end {Line}; |
procedure TDIB.DoNovaEffect(const sr, sg, sb, cx, cy, radius, |
nspokes, randomhue, randomspok, randgauss: Integer; onProgress: TProgressEvent); |
// Copyright (c) 2000 by Keith Murray (kmurray@hotfreeware.com) |
// All rights reserved. |
// Adapted for DIB by JB. |
type |
PByteArray = ^TByteArray; |
TByteArray = array[0..32767] of Byte; |
PDoubleArray = ^TDoubleArray; |
TDoubleArray = array[0..0] of Double; |
PIntegerArray = ^TIntegerArray; |
TIntegerArray = array[0..0] of Integer; |
type |
TProgressEvent = procedure(progress: Integer; message: string; |
var cancel: Boolean) of object; |
const |
M_PI = 3.14159265358979323846; |
RAND_MAX = 2147483647; |
function Gauss(const randgauss: Integer): double; {$IFDEF VER9UP}inline;{$ENDIF} |
const magnitude = 6; |
var |
sum: double; |
i: Integer; |
begin |
sum := 0; |
for i := 1 to magnitude do |
sum := sum + (randgauss / 2147483647); |
result := sum / magnitude; |
end; |
function Clamp(const i, l, h: double): double; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if i < l then |
result := l |
else |
if i > h then |
result := h |
else |
result := i; |
end; |
function IClamp(const i, l, h: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if i < l then |
result := l |
else if i > h then |
result := h |
else result := i; |
end; |
{$IFNDEF VER9UP} |
procedure rgb_to_hsl(const r, g, b: Double; var h, s, l: Double); {$IFDEF VER9UP}inline;{$ENDIF} |
{$IFNDEF VER4UP} |
function Max(a, b: Double): Double; |
begin |
Result := a; if b > a then Result := b; |
end; |
function Min(a, b: Double): Double; |
begin |
Result := a; if b < a then Result := b; |
end; |
{$ENDIF} |
var |
v, m, vm: Double; |
r2, g2, b2: Double; |
begin |
h := 0; |
s := 0; |
l := 0; |
v := Max(r, g); |
v := Max(v, b); |
m := Min(r, g); |
m := Min(m, b); |
l := (m + v) / 2.0; |
if l <= 0.0 then |
exit; |
vm := v - m; |
s := vm; |
if s > 0.0 then |
begin |
if l <= 0.5 then |
s := s / (v + m) |
else s := s / (2.0 - v - m); |
end |
else exit; |
r2 := (v - 4) / vm; |
g2 := (v - g) / vm; |
b2 := (v - b) / vm; |
if r = v then |
begin |
if g = m then |
h := b2 + 5.0 |
else h := 1.0 - g2; |
end |
else if g = v then |
begin |
if b = m then |
h := 1.0 + r2 |
else h := 3.0 - b2; |
end |
else |
begin |
if r = m then |
h := 3.0 + g2 |
else h := 5.0 - r2; |
end; |
h := h / 6; |
end; |
procedure hsl_to_rgb(h, sl, l: Double; var r, g, b: Double); {$IFDEF VER9UP}inline;{$ENDIF} |
var |
v: Double; |
m, sv: Double; |
sextant: Integer; |
fract, vsf, mid1, mid2: Double; |
begin |
if l <= 0.5 then |
v := l * (1.0 + sl) |
else v := l + sl - l * sl; |
if v <= 0 then |
begin |
r := 0.0; |
g := 0.0; |
b := 0.0; |
end |
else |
begin |
m := l + l - v; |
sv := (v - m) / v; |
h := h * 6.0; |
sextant := Trunc(h); |
fract := h - sextant; |
vsf := v * sv * fract; |
mid1 := m + vsf; |
mid2 := v - vsf; |
case sextant of |
0: |
begin |
r := v; g := mid1; b := m; |
end; |
1: |
begin |
r := mid2; g := v; b := m; |
end; |
2: |
begin |
r := m; g := v; b := mid1; |
end; |
3: |
begin |
r := m; g := mid2; b := v; |
end; |
4: |
begin |
r := mid1; g := m; b := v; |
end; |
5: |
begin |
r := v; g := m; b := mid2; |
end; |
end; |
end; |
end; |
{$ELSE} |
procedure rgb_to_hsl(const r, g, b: Double; var h, s, l: Double); {$IFDEF VER9UP}inline;{$ENDIF} |
var |
h0, s0, l0: Word; |
begin //procedure ColorRGBToHLS(clrRGB: TColorRef; var Hue, Luminance, Saturation: Word); |
GraphUtil.ColorRGBToHLS(RGB(Trunc(r),Trunc(g),Trunc(b)), h0, s0, l0); |
h := h0; |
s := s0; |
l := l0; |
end; |
procedure hsl_to_rgb(h, sl, l: Double; var r, g, b: Double); {$IFDEF VER9UP}inline;{$ENDIF} |
var X: TColorRef; |
begin //function ColorHLSToRGB(Hue, Luminance, Saturation: Word): TColorRef; |
X := GraphUtil.ColorHLSToRGB(Trunc(h), Trunc(l), Trunc(sl)); |
r := GetRValue(X); |
g := GetGValue(X); |
b := GetBValue(X); |
end; |
{$ENDIF} |
var |
src_row, dest_row: PByte; |
src, dest: PByteArray; |
color, colors: array[0..3] of Integer; |
SpokeColor: PIntegerArray; |
spoke: PDoubleArray; |
x2, row, col, x, y, alpha, has_alpha, bpp, xc, yc, i, j: Integer; |
u, v, l, l0, w, w1, c, nova_alpha, new_alpha, compl_ratio, ratio, r, g, b, h, s, lu, SpokeCol: Double; |
dstDIB: TDIB; |
begin |
colors[0] := sr; |
colors[1] := sg; |
colors[2] := sb; |
new_alpha := 0; |
GetMem(spoke, NSpokes * sizeof(Double)); |
GetMem(spokecolor, NSpokes * sizeof(Integer) * 3); |
dstDIB := TDIB.Create; |
try |
dstDIB.Assign(Self); |
dstDIB.Canvas.Brush.Color := clBlack; |
dstDIB.Canvas.FillRect(dstDIB.Canvas.ClipRect); |
// R G B |
rgb_to_hsl(colors[0] / 255.0, colors[1] / 255.0, colors[2] / 255.0, h, s, lu); |
for i := 0 to NSpokes - 1 do |
begin |
spoke[i] := gauss(randgauss); |
h := h + randomhue / 360.0 * ({Random(RAND_MAX)}RandomSpok / RAND_MAX - 0.5); |
if h < 0 then |
h := h + 1.0 |
else if h > 1.0 then |
h := h - 1.0; |
hsl_to_rgb(h, s, lu, r, g, b); |
spokecolor[3 * i + 0] := Trunc(255 * r); |
spokecolor[3 * i + 1] := Trunc(255 * g); |
spokecolor[3 * i + 2] := Trunc(255 * b); |
end; |
xc := cx; |
yc := cy; |
l0 := (x2 - xc) / 4 + 1; |
bpp := Self.BitCount div 8; |
has_alpha := 0; |
alpha := bpp; |
y := 0; |
for row := 0 to Self.Height - 1 do |
begin |
src_row := Self.ScanLine[row]; |
dest_row := dstDIB.ScanLine[row]; |
src := Pointer(src_row); |
dest := Pointer(dest_row); |
x := 0; |
for col := 0 to Self.Width - 1 do |
begin |
u := (x - xc) / radius; |
v := (y - yc) / radius; |
l := sqrt(sqr(u) + sqr(v)); |
c := (arctan2(u, v) / (2 * M_PI) + 0.51) * NSpokes; |
i := floor(c); |
c := c - i; |
i := i mod NSpokes; |
w1 := spoke[i] * (1 - c) + spoke[(i + 1) mod NSpokes] * c; |
w1 := w1 * w1; |
w := 1 / (l + 0.001) * 0.9; |
nova_alpha := Clamp(w, 0.0, 1.0); |
ratio := nova_alpha; |
compl_ratio := 1.0 - ratio; |
for j := 0 to alpha - 1 do |
begin |
spokecol := spokecolor[3 * i + j] * (1.0 - c) + spokecolor[3 * ((i + 1) mod nspokes) + j] * c; |
if w > 1.0 then |
color[j] := IClamp(Trunc(spokecol * w), 0, 255) |
else |
color[j] := Trunc(src[j] * compl_ratio + spokecol * ratio); |
color[j] := Trunc(color[j] + 255 * Clamp(w1 * w, 0.0, 1.0)); |
dest[j] := IClamp(color[j], 0, 255); |
end; |
{$IFDEF WIN64} |
Inc(PByte(src), bpp); |
Inc(PBYTE(dest), bpp); |
{$ELSE} |
Inc(Integer(src), bpp); |
Inc(Integer(dest), bpp); |
{$ENDIF} |
Inc(x); |
end; |
Inc(y); |
end; |
Self.Assign(dstDIB); |
finally |
dstDIB.Free; |
FreeMem(Spoke); |
FreeMem(SpokeColor); |
end; |
end; |
procedure TDIB.DrawMandelbrot(ao, au: Integer; bo, bu: Double); |
var |
c1, c2, z1, z2, tmp: Double; |
i, j, Count: Integer; |
dstDIB: TDIB; |
X, Y: Double; |
X2, Y2: Integer; |
begin |
dstDIB := TDIB.Create; |
dstDIB.Assign(Self); |
X2 := dstDIB.FWidth; |
Y2 := dstDIB.FHeight; |
{as Example |
ao := 1; |
au := -2; |
bo := 1.5; |
bu := -1.5; |
} |
X := (ao - au) / dstDIB.FWidth; |
Y := (bo - bu) / dstDIB.FHeight; |
try |
c2 := bu; |
for i := 10 to X2 do |
begin |
c1 := au; |
for j := 0 to Y2 do |
begin |
z1 := 0; |
z2 := 0; |
Count := 0; |
{count is deep of iteration of the mandelbrot set |
if |z| >=2 then z is not a member of a mandelset} |
while (((z1 * z1 + z2 * z2 < 4) and (Count <= 90))) do |
begin |
tmp := z1; |
z1 := z1 * z1 - z2 * z2 + c1; |
z2 := 2 * tmp * z2 + c2; |
Inc(Count); |
end; |
//the color-palette depends on TColor(n*count mod t) |
dstDIB.Canvas.Pixels[j, i] := (16 * Count mod 255); |
c1 := c1 + X; |
end; |
c2 := c2 + Y; |
end; |
finally |
Self.Assign(dstDIB); |
dstDIB.Free; |
end; |
end; |
procedure TDIB.SephiaEffect(Depth: Integer{$IFDEF VER4UP} = 20{$ENDIF}); |
{Note: when depth parameter set to 0 will produce black and white picture only} |
var |
color, color2: LongInt; |
r, g, b, rr, gg: byte; |
h, w: Integer; |
p0: PByteArray; |
x, y: Integer; |
begin |
if Self.BitCount = 24 then |
begin |
Self.DoGrayScale; |
for y := 0 to Self.Height - 1 do |
begin |
p0 := Self.ScanLine[y]; |
for x := 0 to Self.Width - 1 do |
begin |
r := p0[x * 3]; |
g := p0[x * 3 + 1]; |
b := p0[x * 3 + 2]; |
rr := r + (depth * 2); |
gg := g + depth; |
if rr <= ((depth * 2) - 1) then |
rr := 255; |
if gg <= (depth - 1) then |
gg := 255; |
p0[x * 3] := rr; |
p0[x * 3 + 1] := gg; |
p0[x * 3 + 2] := b; |
end; |
end; |
Exit |
end; |
{this alogorithm is slower because does not use scanline property} |
for h := 0 to Self.Height-1 do |
begin |
for w := 0 to Self.Width-1 do |
begin |
//first convert the bitmap to greyscale |
color := ColorToRGB(Self.Canvas.Pixels[w, h]); |
r := GetRValue(color); |
g := GetGValue(color); |
b := GetBValue(color); |
color2 := (r + g + b) div 3; |
Self.Canvas.Pixels[w, h] := RGB(color2, color2, color2); |
//then convert it to sepia |
color := ColorToRGB(Self.Canvas.Pixels[w, h]); |
r := GetRValue(color); |
g := GetGValue(color); |
b := GetBValue(color); |
rr := r + (depth * 2); |
gg := g + depth; |
if rr <= ((depth * 2) - 1) then |
rr := 255; |
if gg <= (depth - 1) then |
gg := 255; |
Self.Canvas.Pixels[w, h] := RGB(rr, gg, b); |
end; |
end; |
end; |
procedure TDIB.EncryptDecrypt(const Key: Integer); |
{for decript call it again} |
var |
BytesPorScan: Integer; |
w, h: Integer; |
p: pByteArray; |
begin |
try |
BytesPorScan := Abs(Integer(Self.ScanLine[1]) - |
Integer(Self.ScanLine[0])); |
except |
raise Exception.Create('Error '); |
end; |
RandSeed := Key; |
for h := 0 to Self.Height - 1 do |
begin |
P := Self.ScanLine[h]; |
for w := 0 to BytesPorScan - 1 do |
P^[w] := P^[w] xor Random(256); |
end; |
end; |
procedure TDIB.LinePolar(x, y: Integer; AngleInDegree, Length: extended; Color: cardinal); |
var |
xp, yp: Integer; |
begin |
xp := Round(Sin(AngleInDegree * Pi / 180) * Length) + x; |
yp := Round(Cos(AngleInDegree * Pi / 180) * Length) + y; |
AntialiasedLine(x, y, xp, yp, Color); |
end; |
//y = 0.299*g + 0.587*b + 0.114*r; |
procedure TDIB.BlendPixel(const X, Y: Integer; aColor: Cardinal; Alpha: byte); |
var |
cR, cG, cB: byte; |
aR, aG, aB: byte; |
dColor: Cardinal; |
begin |
aR := GetRValue(aColor); |
aG := GetGValue(aColor); |
aB := GetBValue(aColor); |
dColor := Self.Canvas.Pixels[x, y]; |
cR := GetRValue(dColor); |
cG := GetGValue(dColor); |
cB := GetBValue(dColor); |
Canvas.Pixels[x, y] := RGB((Alpha * (aR - cR) shr 8) + cR, // R alpha |
(Alpha * (aG - cG) shr 8) + cG, // G alpha |
(Alpha * (aB - cB) shr 8) + cB); // B alpha |
end; |
procedure MakeDib(out DIB: TDIB; const iWidth, iHeight, iBitCount: Integer; iFillColor: TColor{$IFDEF VER4UP} = clBlack{$ENDIF}); {$IFDEF VER4UP} overload; {$ENDIF} |
begin |
DIB := TDIB.Create; |
DIB.SetSize(iWidth, iHeight, iBitCount); |
DIB.Fill(iFillColor); |
end; |
procedure{$IFDEF VER4UP}MakeDib{$ELSE}MakeDib2{$ENDIF}(out DIB: TDIB; iBitmap: TBitmap); {$IFDEF VER4UP} overload; {$ENDIF} |
begin |
DIB := TDIB.Create; |
if Assigned(iBitmap) then |
DIB.CreateDIBFromBitmap(iBitmap) |
else |
DIB.Fill(clBlack); |
end; |
initialization |
TPicture.RegisterClipBoardFormat(CF_DIB, TDIB); |
TPicture.RegisterFileFormat('dib', 'Device Independent Bitmap', TDIB); |
/VCL_DELPHIX_D6/DXDIBEffectEdit.dfm |
---|
0,0 → 1,474 |
object TDelphiXDIBEffectEditForm: TTDelphiXDIBEffectEditForm |
Left = 293 |
Top = 183 |
BorderStyle = bsDialog |
Caption = 'Special effect' |
ClientHeight = 368 |
ClientWidth = 504 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
OldCreateOrder = True |
Position = poScreenCenter |
OnCreate = FormCreate |
OnDestroy = FormDestroy |
PixelsPerInch = 96 |
TextHeight = 13 |
object Bevel3: TBevel |
Left = 8 |
Top = 8 |
Width = 489 |
Height = 321 |
Shape = bsFrame |
end |
object Panel1: TPanel |
Left = 16 |
Top = 16 |
Width = 473 |
Height = 305 |
BevelOuter = bvNone |
BorderStyle = bsSingle |
TabOrder = 1 |
object Bevel1: TBevel |
Left = 8 |
Top = 39 |
Width = 258 |
Height = 258 |
end |
object Image1: TImage |
Left = 9 |
Top = 40 |
Width = 32 |
Height = 32 |
AutoSize = True |
end |
object LSpokes: TLabel |
Left = 8 |
Top = 8 |
Width = 36 |
Height = 13 |
Caption = 'Spokes' |
FocusControl = Spokes |
end |
object LRaHUE: TLabel |
Left = 160 |
Top = 8 |
Width = 66 |
Height = 13 |
Caption = 'Random HUE' |
FocusControl = RaHUE |
end |
object LCentr: TLabel |
Left = 312 |
Top = 8 |
Width = 57 |
Height = 13 |
Caption = 'Nova radius' |
FocusControl = Centr |
end |
object Label4: TLabel |
Left = 276 |
Top = 44 |
Width = 11 |
Height = 13 |
Caption = 'R:' |
end |
object Label5: TLabel |
Left = 276 |
Top = 76 |
Width = 11 |
Height = 13 |
Caption = 'G:' |
end |
object Label6: TLabel |
Left = 276 |
Top = 108 |
Width = 10 |
Height = 13 |
Caption = 'B:' |
end |
object Label7: TLabel |
Left = 274 |
Top = 140 |
Width = 13 |
Height = 13 |
Hint = 'Random spoke...' |
Caption = 'rS:' |
FocusControl = randSpok |
ParentShowHint = False |
ShowHint = True |
end |
object Label8: TLabel |
Left = 274 |
Top = 164 |
Width = 14 |
Height = 13 |
Hint = 'Random gauss...' |
Caption = 'rG:' |
FocusControl = RandGauss |
ParentShowHint = False |
ShowHint = True |
end |
object rS_max: TSpeedButton |
Left = 334 |
Top = 136 |
Width = 36 |
Height = 21 |
Caption = 'max' |
Spacing = -1 |
OnClick = rS_maxClick |
end |
object rG_max: TSpeedButton |
Left = 334 |
Top = 160 |
Width = 36 |
Height = 21 |
Caption = 'max' |
Spacing = -1 |
OnClick = rG_maxClick |
end |
object Bevel2: TBevel |
Left = 272 |
Top = 187 |
Width = 192 |
Height = 65 |
end |
object SpokesPlus: TSpeedButton |
Left = 124 |
Top = 5 |
Width = 17 |
Height = 17 |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
700077777777777770007777700077777000777770C077777000777770C07777 |
7000770000C000077000770CCCCCCC077000770000C000077000777770C07777 |
7000777770C07777700077777000777770007777777777777000777777777777 |
7000} |
OnClick = SpokesPlusClick |
end |
object SpokesMinus: TSpeedButton |
Left = 140 |
Top = 5 |
Width = 17 |
Height = 17 |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7000777777777777700077777777777770007777777777777000777777777777 |
70007700000000077000770CCCCCCC0770007700000000077000777777777777 |
7000777777777777700077777777777770007777777777777000777777777777 |
7000} |
OnClick = SpokesMinusClick |
end |
object RaHUEPlus: TSpeedButton |
Left = 276 |
Top = 5 |
Width = 17 |
Height = 17 |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
700077777777777770007777700077777000777770C077777000777770C07777 |
7000770000C000077000770CCCCCCC077000770000C000077000777770C07777 |
7000777770C07777700077777000777770007777777777777000777777777777 |
7000} |
OnClick = RaHUEPlusClick |
end |
object RaHUEMinus: TSpeedButton |
Left = 292 |
Top = 5 |
Width = 17 |
Height = 17 |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7000777777777777700077777777777770007777777777777000777777777777 |
70007700000000077000770CCCCCCC0770007700000000077000777777777777 |
7000777777777777700077777777777770007777777777777000777777777777 |
7000} |
OnClick = RaHUEMinusClick |
end |
object CentrPlus: TSpeedButton |
Left = 428 |
Top = 5 |
Width = 17 |
Height = 17 |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
700077777777777770007777700077777000777770C077777000777770C07777 |
7000770000C000077000770CCCCCCC077000770000C000077000777770C07777 |
7000777770C07777700077777000777770007777777777777000777777777777 |
7000} |
OnClick = CentrPlusClick |
end |
object CentrMinus: TSpeedButton |
Left = 444 |
Top = 5 |
Width = 17 |
Height = 17 |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7000777777777777700077777777777770007777777777777000777777777777 |
70007700000000077000770CCCCCCC0770007700000000077000777777777777 |
7000777777777777700077777777777770007777777777777000777777777777 |
7000} |
OnClick = CentrMinusClick |
end |
object LName: TLabel |
Left = 283 |
Top = 200 |
Width = 112 |
Height = 13 |
Caption = 'Picture name (required):' |
FocusControl = eName |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clPurple |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [fsUnderline] |
ParentFont = False |
end |
object eR: TEdit |
Left = 289 |
Top = 40 |
Width = 35 |
Height = 21 |
TabOrder = 0 |
Text = '16' |
OnChange = ImageChange |
end |
object eG: TEdit |
Left = 289 |
Top = 72 |
Width = 35 |
Height = 21 |
TabOrder = 1 |
Text = '48' |
OnChange = ImageChange |
end |
object eB: TEdit |
Left = 289 |
Top = 104 |
Width = 35 |
Height = 21 |
TabOrder = 2 |
Text = '255' |
OnChange = ImageChange |
end |
object randSpok: TEdit |
Left = 289 |
Top = 136 |
Width = 44 |
Height = 21 |
TabOrder = 3 |
end |
object RandGauss: TEdit |
Left = 289 |
Top = 160 |
Width = 44 |
Height = 21 |
TabOrder = 4 |
end |
object PictSize: TRadioGroup |
Left = 385 |
Top = 44 |
Width = 73 |
Height = 121 |
Caption = ' Size: ' |
ItemIndex = 0 |
Items.Strings = ( |
'256x256' |
'128x128' |
'64x64' |
'32x62' |
'16x16' |
'8x8') |
TabOrder = 5 |
OnClick = ImageChange |
end |
object R_updown: TSpinButton |
Left = 326 |
Top = 41 |
Width = 20 |
Height = 20 |
DownGlyph.Data = { |
0E010000424D0E01000000000000360000002800000009000000060000000100 |
200000000000D800000000000000000000000000000000000000008080000080 |
8000008080000080800000808000008080000080800000808000008080000080 |
8000008080000080800000808000000000000080800000808000008080000080 |
8000008080000080800000808000000000000000000000000000008080000080 |
8000008080000080800000808000000000000000000000000000000000000000 |
0000008080000080800000808000000000000000000000000000000000000000 |
0000000000000000000000808000008080000080800000808000008080000080 |
800000808000008080000080800000808000} |
TabOrder = 6 |
UpGlyph.Data = { |
0E010000424D0E01000000000000360000002800000009000000060000000100 |
200000000000D800000000000000000000000000000000000000008080000080 |
8000008080000080800000808000008080000080800000808000008080000080 |
8000000000000000000000000000000000000000000000000000000000000080 |
8000008080000080800000000000000000000000000000000000000000000080 |
8000008080000080800000808000008080000000000000000000000000000080 |
8000008080000080800000808000008080000080800000808000000000000080 |
8000008080000080800000808000008080000080800000808000008080000080 |
800000808000008080000080800000808000} |
OnDownClick = R_updownDownClick |
OnUpClick = R_updownUpClick |
end |
object G_updown: TSpinButton |
Left = 326 |
Top = 73 |
Width = 20 |
Height = 20 |
DownGlyph.Data = { |
0E010000424D0E01000000000000360000002800000009000000060000000100 |
200000000000D800000000000000000000000000000000000000008080000080 |
8000008080000080800000808000008080000080800000808000008080000080 |
8000008080000080800000808000000000000080800000808000008080000080 |
8000008080000080800000808000000000000000000000000000008080000080 |
8000008080000080800000808000000000000000000000000000000000000000 |
0000008080000080800000808000000000000000000000000000000000000000 |
0000000000000000000000808000008080000080800000808000008080000080 |
800000808000008080000080800000808000} |
TabOrder = 8 |
UpGlyph.Data = { |
0E010000424D0E01000000000000360000002800000009000000060000000100 |
200000000000D800000000000000000000000000000000000000008080000080 |
8000008080000080800000808000008080000080800000808000008080000080 |
8000000000000000000000000000000000000000000000000000000000000080 |
8000008080000080800000000000000000000000000000000000000000000080 |
8000008080000080800000808000008080000000000000000000000000000080 |
8000008080000080800000808000008080000080800000808000000000000080 |
8000008080000080800000808000008080000080800000808000008080000080 |
800000808000008080000080800000808000} |
OnDownClick = G_updownDownClick |
OnUpClick = G_updownUpClick |
end |
object B_updown: TSpinButton |
Left = 326 |
Top = 105 |
Width = 20 |
Height = 20 |
DownGlyph.Data = { |
0E010000424D0E01000000000000360000002800000009000000060000000100 |
200000000000D800000000000000000000000000000000000000008080000080 |
8000008080000080800000808000008080000080800000808000008080000080 |
8000008080000080800000808000000000000080800000808000008080000080 |
8000008080000080800000808000000000000000000000000000008080000080 |
8000008080000080800000808000000000000000000000000000000000000000 |
0000008080000080800000808000000000000000000000000000000000000000 |
0000000000000000000000808000008080000080800000808000008080000080 |
800000808000008080000080800000808000} |
TabOrder = 7 |
UpGlyph.Data = { |
0E010000424D0E01000000000000360000002800000009000000060000000100 |
200000000000D800000000000000000000000000000000000000008080000080 |
8000008080000080800000808000008080000080800000808000008080000080 |
8000000000000000000000000000000000000000000000000000000000000080 |
8000008080000080800000000000000000000000000000000000000000000080 |
8000008080000080800000808000008080000000000000000000000000000080 |
8000008080000080800000808000008080000080800000808000000000000080 |
8000008080000080800000808000008080000080800000808000008080000080 |
800000808000008080000080800000808000} |
OnDownClick = B_updownDownClick |
OnUpClick = B_updownUpClick |
end |
object Spokes: TProgressBar |
Left = 8 |
Top = 24 |
Width = 150 |
Height = 9 |
Min = 1 |
Max = 1024 |
Position = 255 |
TabOrder = 9 |
OnMouseMove = SpokesMouseMove |
end |
object RaHUE: TProgressBar |
Left = 160 |
Top = 24 |
Width = 150 |
Height = 9 |
Max = 360 |
TabOrder = 10 |
OnMouseMove = RaHUEMouseMove |
end |
object Centr: TProgressBar |
Left = 312 |
Top = 24 |
Width = 150 |
Height = 9 |
Min = 1 |
Position = 1 |
TabOrder = 11 |
OnMouseMove = CentrMouseMove |
end |
object eName: TEdit |
Left = 283 |
Top = 216 |
Width = 161 |
Height = 21 |
TabOrder = 12 |
end |
end |
object Button1: TButton |
Left = 264 |
Top = 336 |
Width = 75 |
Height = 25 |
Caption = 'Save as...' |
TabOrder = 0 |
OnClick = Button1Click |
end |
object btnOK: TButton |
Left = 344 |
Top = 336 |
Width = 75 |
Height = 25 |
Caption = 'OK' |
ModalResult = 1 |
TabOrder = 2 |
OnClick = btnOKClick |
end |
object btnCancel: TButton |
Left = 421 |
Top = 336 |
Width = 75 |
Height = 25 |
Caption = 'Cancel' |
ModalResult = 2 |
TabOrder = 3 |
OnClick = btnCancelClick |
end |
object SavePictureDialog1: TSavePictureDialog |
DefaultExt = '.bmp' |
Filter = |
'All (*.dib;*.jpg;*.jpeg;*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf)|*.' + |
'dib;*.jpg;*.jpeg;*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf|Device Ind' + |
'ependent Bitmap (*.dib)|*.dib|JPEG Image File (*.jpg)|*.jpg|JPEG' + |
' Image File (*.jpeg)|*.jpeg|JPEG Image File (*.jpg)|*.jpg|JPEG I' + |
'mage File (*.jpeg)|*.jpeg|Bitmaps (*.bmp)|*.bmp|Icons (*.ico)|*.' + |
'ico|Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmf' |
Title = 'Save NOVA picture effect' |
Left = 160 |
Top = 304 |
end |
end |
/VCL_DELPHIX_D6/DXDraws.pas |
---|
1,3 → 1,95 |
(******************************************************************************* |
EXTEND UNIT DXDRAWS FROM DELPHIX PACK |
* Copyright (c) 2004-2010 Jaro Benes |
* All Rights Reserved |
* Version 1.09 |
* D2D Hardware module |
* web site: www.micrel.cz/Dx |
* e-mail: delphix_d2d@micrel.cz |
* Enhanced by User137 |
* DISCLAIMER: |
This software is provided "as is" and is without warranty of any kind. |
The author of this software does not warrant, guarantee or make any |
representations regarding the use or results of use of this software |
in terms of reliability, accuracy or fitness for purpose. You assume |
the entire risk of direct or indirect, consequential or inconsequential |
results from the correct or incorrect usage of this software even if the |
author has been informed of the possibilities of such damage. Neither |
the author nor anybody connected to this software in any way can assume |
any responsibility. |
Tested in Delphi 4, 5, 6, 7 and Delphi 2005/2006/2007/2009/2010 |
* FEATURES: |
a) Implement Hardware acceleration for critical function like DrawAlpha {Blend}, |
DrawSub and DrawAdd for both way DXIMAGELIST and DIRECTDRAWSURFACE with rotation too. |
b) Automatic adjustement for texture size different 2^n. |
c) Minimum current source code change, all accelerated code added into: |
DXDraw.BeginScene; |
//code here |
DXDraw.EndScene; |
d) DelphiX facade continues using still. |
* HOW TO USE |
a) Design code like as DelphiX and drawing routine put into |
DXDraw.BeginScene; |
//code here |
DXDraw.EndScene; |
b) setup options in code or property for turn-on acceleration like: |
DXDraw.Finalize; {done DXDraw} |
If HardwareSwitch Then |
{hardware} |
Begin |
if NOT (doDirectX7Mode in DXDraw.Options) then |
DXDraw.Options := DXDraw.Options + [doDirectX7Mode]; |
if NOT (doHardware in DXDraw.Options) then |
DXDraw.Options := DXDraw.Options + [doHardware]; |
if NOT (do3D in DXDraw.Options) then |
DXDraw.Options := DXDraw.Options + [do3D]; |
if doSystemMemory in DXDraw.Options then |
DXDraw.Options := DXDraw.Options - [doSystemMemory]; |
End |
Else |
{software} |
Begin |
if doDirectX7Mode in DXDraw.Options then |
DXDraw.Options := DXDraw.Options - [doDirectX7Mode]; |
if do3D in DXDraw.Options then |
DXDraw.Options := DXDraw.Options - [do3D]; |
if doHardware in DXDraw.Options then |
DXDraw.Options := DXDraw.Options - [doHardware]; |
if NOT (doSystemMemory in DXDraw.Options) then |
DXDraw.Options := DXDraw.Options + [doSystemMemory]; |
End; |
{to fullscreen} |
if doFullScreen in DXDraw.Options then |
begin |
RestoreWindow; |
DXDraw.Cursor := crDefault; |
BorderStyle := bsSingle; |
DXDraw.Options := DXDraw.Options - [doFullScreen]; |
DXDraw.Options := DXDraw.Options + [doFlip]; |
end else |
begin |
StoreWindow; |
DXDraw.Cursor := crNone; |
BorderStyle := bsNone; |
DXDraw.Options := DXDraw.Options + [doFullScreen]; |
DXDraw.Options := DXDraw.Options - [doFlip]; |
end; |
DXDraw1.Initialize; {up DXDraw now} |
* NOTE Main form has to declare like: |
TForm1 = class(TDXForm) |
* KNOWN BUGS OR RESTRICTION: |
1/ Cannot be use DirectDrawSurface other from DXDraw.Surface in HW mode. |
2/ New functions was not tested for two and more DXDraws on form. Sorry. |
******************************************************************************) |
unit DXDraws; |
interface |
6,10 → 98,56 |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, |
DXClass, DIB, DXTexImg, DirectX; |
{$IFDEF VER14UP} |
DXTypes, |
{$ENDIF} |
{$IFDEF VER17UP}System.Types, System.UITypes,{$ENDIF} |
{$IFDEF DXTextureImage_UseZLIB} |
ZLIB, |
{$ENDIF} |
DXClass, DIB, |
{$IFDEF StandardDX} |
DirectDraw, DirectSound, |
{$IFDEF DX7} |
{$IFDEF D3DRM} |
Direct3DRM, |
{$ENDIF} |
Direct3D; |
{$ENDIF} |
{$IFDEF DX9} |
Direct3D9, Direct3D, D3DX9, {Direct3D8,} DX7toDX8; |
{$ENDIF} |
{$ELSE} |
DirectX; |
{$ENDIF} |
const |
maxTexBlock = 2048; {maximum textures} |
maxVideoBlockSize: Integer = 2048; {maximum size block of one texture} |
SurfaceDivWidth: Integer = 2048; |
SurfaceDivHeight: Integer = 2048; |
{This conditional is for force set square texture when use it alphachannel from DIB32} |
{$DEFINE FORCE_SQUARE} |
DXTextureImageGroupType_Normal = 0; // Normal group |
DXTextureImageGroupType_Mipmap = 1; // Mipmap group |
Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ"at 0123456789<>=()-''!_+\/{}^&%.=$#ÅÖÄ?*'; |
PowerAlphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=~!@#$%^&*()_+[];'',./\{}:"<>?|©® '; |
ccDefaultSpecular = $FFFFFFFF; |
ZeroRect: TRect = (Left: 0; Top: 0; Right: 0; Bottom: 0); |
type |
{ TRenderType } |
TRenderType = (rtDraw, rtBlend, rtAdd, rtSub); |
{ TRenderMirrorFlip } |
TRenderMirrorFlip = (rmfMirror, rmfFlip); |
TRenderMirrorFlipSet = set of TRenderMirrorFlip; |
{ EDirectDrawError } |
EDirectDrawError = class(EDirectXError); |
25,8 → 163,10 |
TDirectDraw = class(TDirectX) |
private |
{$IFDEF D3D_deprecated} |
FIDDraw: IDirectDraw; |
FIDDraw4: IDirectDraw4; |
{$ENDIF} |
FIDDraw7: IDirectDraw7; |
FDriverCaps: TDDCaps; |
FHELCaps: TDDCaps; |
35,12 → 175,16 |
FSurfaces: TList; |
function GetClipper(Index: Integer): TDirectDrawClipper; |
function GetClipperCount: Integer; |
function GetDisplayMode: TDDSurfaceDesc; |
function GetDisplayMode: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
{$IFDEF D3D_deprecated} |
function GetIDDraw: IDirectDraw; |
function GetIDDraw4: IDirectDraw4; |
{$ENDIF} |
function GetIDDraw7: IDirectDraw7; |
{$IFDEF D3D_deprecated} |
function GetIDraw: IDirectDraw; |
function GetIDraw4: IDirectDraw4; |
{$ENDIF} |
function GetIDraw7: IDirectDraw7; |
function GetPalette(Index: Integer): TDirectDrawPalette; |
function GetPaletteCount: Integer; |
51,16 → 195,21 |
constructor CreateEx(GUID: PGUID; DirectX7Mode: Boolean); |
destructor Destroy; override; |
class function Drivers: TDirectXDrivers; |
{$IFDEF _DMO_}class function DriversEx: TDirectXDriversEx;{$ENDIF} |
property ClipperCount: Integer read GetClipperCount; |
property Clippers[Index: Integer]: TDirectDrawClipper read GetClipper; |
property DisplayMode: TDDSurfaceDesc read GetDisplayMode; |
property DisplayMode: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF} read GetDisplayMode; |
property DriverCaps: TDDCaps read FDriverCaps; |
property HELCaps: TDDCaps read FHELCaps; |
{$IFDEF D3D_deprecated} |
property IDDraw: IDirectDraw read GetIDDraw; |
property IDDraw4: IDirectDraw4 read GetIDDraw4; |
{$ENDIF} |
property IDDraw7: IDirectDraw7 read GetIDDraw7; |
{$IFDEF D3D_deprecated} |
property IDraw: IDirectDraw read GetIDraw; |
property IDraw4: IDirectDraw4 read GetIDraw4; |
{$ENDIF} |
property IDraw7: IDirectDraw7 read GetIDraw7; |
property PaletteCount: Integer read GetPaletteCount; |
property Palettes[Index: Integer]: TDirectDrawPalette read GetPalette; |
135,35 → 284,63 |
FCanvas: TDirectDrawSurfaceCanvas; |
FHasClipper: Boolean; |
FDDraw: TDirectDraw; |
{$IFDEF D3D_deprecated} |
FIDDSurface: IDirectDrawSurface; |
FIDDSurface4: IDirectDrawSurface4; |
{$ENDIF} |
FIDDSurface7: IDirectDrawSurface7; |
FSystemMemory: Boolean; |
FStretchDrawClipper: IDirectDrawClipper; |
FSurfaceDesc: TDDSurfaceDesc; |
FSurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
FGammaControl: IDirectDrawGammaControl; |
FLockSurfaceDesc: TDDSurfaceDesc; |
FLockSurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
FLockCount: Integer; |
FIsLocked: Boolean; |
FModified: Boolean; |
FCaption: TCaption; |
DIB_COLMATCH: TDIB; |
function GetBitCount: Integer; |
function GetCanvas: TDirectDrawSurfaceCanvas; |
function GetClientRect: TRect; |
function GetHeight: Integer; |
function GetIDDSurface: IDirectDrawSurface; |
function GetIDDSurface4: IDirectDrawSurface4; |
function GetIDDSurface7: IDirectDrawSurface7; |
{$IFDEF D3D_deprecated} |
function GetIDDSurface: IDirectDrawSurface; {$IFDEF VER9UP}inline;{$ENDIF} |
function GetIDDSurface4: IDirectDrawSurface4; {$IFDEF VER9UP}inline;{$ENDIF} |
{$ENDIF} |
function GetIDDSurface7: IDirectDrawSurface7; {$IFDEF VER9UP}inline;{$ENDIF} |
{$IFDEF D3D_deprecated} |
function GetISurface: IDirectDrawSurface; |
function GetISurface4: IDirectDrawSurface4; |
{$ENDIF} |
function GetISurface7: IDirectDrawSurface7; |
function GetPixel(X, Y: Integer): Longint; |
function GetWidth: Integer; |
procedure SetClipper(Value: TDirectDrawClipper); |
procedure SetColorKey(Flags: DWORD; const Value: TDDColorKey); |
{$IFDEF D3D_deprecated} |
procedure SetIDDSurface(Value: IDirectDrawSurface); |
procedure SetIDDSurface4(Value: IDirectDrawSurface4); |
{$ENDIF} |
procedure SetIDDSurface7(Value: IDirectDrawSurface7); |
procedure SetPalette(Value: TDirectDrawPalette); |
procedure SetPixel(X, Y: Integer; Value: Longint); |
procedure SetTransparentColor(Col: Longint); |
{support RGB routines} |
procedure LoadRGB(Color: cardinal; var R, G, B: Byte); |
function SaveRGB(const R, G, B: Byte): cardinal; |
{asm routine for direct surface by pixel} |
{no clipping} |
function GetPixel16(x, y: Integer): Integer; register; |
function GetPixel24(x, y: Integer): Integer; register; |
function GetPixel32(x, y: Integer): Integer; register; |
function GetPixel8(x, y: Integer): Integer; register; |
procedure PutPixel16(x, y, color: Integer); register; |
procedure PutPixel24(x, y, color: Integer); register; |
procedure PutPixel32(x, y, color: Integer); register; |
procedure PutPixel8(x, y, color: Integer); register; |
{routines calls asm pixel routine} |
function Peek(X, Y: Integer): LongInt; {$IFDEF VER9UP} inline; {$ENDIF} |
procedure Poke(X, Y: Integer; const Value: LongInt); {$IFDEF VER9UP} inline; {$ENDIF} |
public |
constructor Create(ADirectDraw: TDirectDraw); |
destructor Destroy; override; |
170,17 → 347,22 |
procedure Assign(Source: TPersistent); override; |
procedure AssignTo(Dest: TPersistent); override; |
function Blt(const DestRect, SrcRect: TRect; Flags: DWORD; |
const DF: TDDBltFX; Source: TDirectDrawSurface): Boolean; |
const DF: TDDBltFX; Source: TDirectDrawSurface): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function BltFast(X, Y: Integer; const SrcRect: TRect; |
Flags: DWORD; Source: TDirectDrawSurface): Boolean; |
function ColorMatch(Col: TColor): Integer; |
{$IFDEF DelphiX_Spt4} |
function CreateSurface(const SurfaceDesc: TDDSurfaceDesc): Boolean; overload; |
function CreateSurface(const SurfaceDesc: TDDSurfaceDesc2): Boolean; overload; |
Flags: DWORD; Source: TDirectDrawSurface): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function ColorMatch(Col: TColor): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
{$IFDEF VER4UP} |
{$IFDEF D3D_deprecated} |
function CreateSurface(SurfaceDesc: TDDSurfaceDesc): Boolean; overload; |
{$ENDIF} |
function CreateSurface(SurfaceDesc: TDDSurfaceDesc2): Boolean; overload; |
{$ELSE} |
function CreateSurface(const SurfaceDesc: TDDSurfaceDesc): Boolean; |
function CreateSurface(SurfaceDesc: TDDSurfaceDesc): Boolean; |
{$ENDIF} |
{$IFDEF DelphiX_Spt4} |
procedure MirrorFlip(Value: TRenderMirrorFlipSet); |
{$IFDEF VER4UP} |
procedure Draw(X, Y: Integer; SrcRect: TRect; Source: TDirectDrawSurface; Transparent: Boolean=True); overload; |
procedure Draw(X, Y: Integer; Source: TDirectDrawSurface; Transparent: Boolean=True); overload; |
procedure StretchDraw(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
194,38 → 376,94 |
Transparent: Boolean); |
{$ENDIF} |
procedure DrawAdd(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean; Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
Transparent: Boolean; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawAlpha(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean; Alpha: Integer); |
procedure DrawSub(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean; Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
Transparent: Boolean; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawAddCol(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean; Color, Alpha: Integer); |
procedure DrawAlphaCol(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean; Color, Alpha: Integer); |
procedure DrawSubCol(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean; Color, Alpha: Integer); |
{Rotate} |
procedure DrawRotate(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: Integer); |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: single); |
procedure DrawRotateAdd(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: Integer; |
Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: single; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRotateAlpha(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: Integer; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: single; |
Alpha: Integer); |
procedure DrawRotateSub(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: Integer; |
Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: single; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRotateAddCol(X, Y, Width, Height: Integer; |
const SrcRect: TRect; Source: TDirectDrawSurface; CenterX, |
CenterY: Double; Transparent: Boolean; Angle: Single; Color: Integer; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRotateAlphaCol(X, Y, Width, Height: Integer; |
const SrcRect: TRect; Source: TDirectDrawSurface; CenterX, |
CenterY: Double; Transparent: Boolean; Angle: Single; Color: Integer; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRotateCol(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; |
Transparent: Boolean; Angle: Single; Color: Integer); |
procedure DrawRotateSubCol(X, Y, Width, Height: Integer; |
const SrcRect: TRect; Source: TDirectDrawSurface; CenterX, |
CenterY: Double; Transparent: Boolean; Angle: Single; Color: Integer; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
{WaveX} |
procedure DrawWaveX(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph: Integer); |
procedure DrawWaveXAdd(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph: Integer; |
Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawWaveXAlpha(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph: Integer; |
Alpha: Integer); |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawWaveXSub(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph: Integer; |
Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
{WaveY} |
procedure DrawWaveY(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph: Integer); |
procedure DrawWaveYAdd(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph: Integer; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawWaveYAlpha(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph: Integer; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawWaveYSub(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph: Integer; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
{Poke function} |
procedure PokeLine(X1, Y1, X2, Y2: Integer; Color: cardinal); {$IFDEF VER9UP} inline; {$ENDIF} |
procedure PokeLinePolar(x, y: Integer; angle, length: extended; |
Color: cardinal); {$IFDEF VER9UP} inline; {$ENDIF} |
procedure PokeBox(xs, ys, xd, yd: Integer; Color: cardinal); |
procedure PokeBlendPixel(const X, Y: Integer; aColor: cardinal; |
Alpha: byte); |
procedure PokeWuLine(X1, Y1, X2, Y2, aColor: Integer); |
procedure Noise(Oblast: TRect; Density: Byte); |
procedure Blur; |
procedure DoRotate(cent1, cent2, angle: Integer; coord1, coord2: Real; |
color: word); |
procedure PokeCircle(X, Y, Radius, Color: Integer); |
procedure PokeEllipse(exc, eyc, ea, eb, angle, color: Integer); |
procedure PokeFilledEllipse(exc, eyc, ea, eb, color: Integer); |
procedure PokeVLine(x, y1, y2: Integer; Color: cardinal); |
{Fill} |
procedure Fill(DevColor: Longint); |
procedure FillRect(const Rect: TRect; DevColor: Longint); |
procedure FillRectAdd(const DestRect: TRect; Color: TColor); |
procedure FillRectAdd(const DestRect: TRect; Color: TColor; Alpha: Byte{$IFDEF VER4UP} = 128{$ENDIF}); |
procedure FillRectAlpha(const DestRect: TRect; Color: TColor; Alpha: Integer); |
procedure FillRectSub(const DestRect: TRect; Color: TColor); |
procedure FillRectSub(const DestRect: TRect; Color: TColor; Alpha: Byte{$IFDEF VER4UP} = 128{$ENDIF}); |
{Load} |
procedure LoadFromDIB(DIB: TDIB); |
procedure LoadFromDIBRect(DIB: TDIB; AWidth, AHeight: Integer; const SrcRect: TRect); |
procedure LoadFromGraphic(Graphic: TGraphic); |
232,15 → 470,19 |
procedure LoadFromGraphicRect(Graphic: TGraphic; AWidth, AHeight: Integer; const SrcRect: TRect); |
procedure LoadFromFile(const FileName: string); |
procedure LoadFromStream(Stream: TStream); |
{$IFDEF DelphiX_Spt4} |
function Lock(const Rect: TRect; var SurfaceDesc: TDDSurfaceDesc): Boolean; overload; |
function Lock(var SurfaceDesc: TDDSurfaceDesc): Boolean; overload; |
{$IFDEF VER4UP} |
function Lock(const Rect: TRect; var SurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}): Boolean; overload; |
function Lock(var SurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}): Boolean; overload; |
function Lock: Boolean; overload; |
{$ELSE} |
function LockSurface: Boolean; |
function Lock(const Rect: TRect; var SurfaceDesc: TDDSurfaceDesc): Boolean; |
{$ENDIF} |
procedure UnLock; |
function Restore: Boolean; |
property IsLocked: Boolean read FIsLocked; |
procedure SetSize(AWidth, AHeight: Integer); |
property Modified: Boolean read FModified write FModified; |
property BitCount: Integer read GetBitCount; |
property Canvas: TDirectDrawSurfaceCanvas read GetCanvas; |
property ClientRect: TRect read GetClientRect; |
249,18 → 491,24 |
property DDraw: TDirectDraw read FDDraw; |
property GammaControl: IDirectDrawGammaControl read FGammaControl; |
property Height: Integer read GetHeight; |
{$IFDEF D3D_deprecated} |
property IDDSurface: IDirectDrawSurface read GetIDDSurface write SetIDDSurface; |
property IDDSurface4: IDirectDrawSurface4 read GetIDDSurface4 write SetIDDSurface4; |
{$ENDIF} |
property IDDSurface7: IDirectDrawSurface7 read GetIDDSurface7 write SetIDDSurface7; |
{$IFDEF D3D_deprecated} |
property ISurface: IDirectDrawSurface read GetISurface; |
property ISurface4: IDirectDrawSurface4 read GetISurface4; |
{$ENDIF} |
property ISurface7: IDirectDrawSurface7 read GetISurface7; |
property Palette: TDirectDrawPalette write SetPalette; |
property Pixels[X, Y: Integer]: Longint read GetPixel write SetPixel; |
property SurfaceDesc: TDDSurfaceDesc read FSurfaceDesc; |
property Pixel[X, Y: Integer]: LongInt read Peek write Poke; |
property SurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF} read FSurfaceDesc; |
property SystemMemory: Boolean read FSystemMemory write FSystemMemory; |
property TransparentColor: Longint write SetTransparentColor; |
property Width: Integer read GetWidth; |
property Caption: TCaption read FCaption write FCaption; |
end; |
{ TDXDrawDisplay } |
297,7 → 545,7 |
procedure SetBitCount(Value: Integer); |
procedure SetHeight(Value: Integer); |
procedure SetWidth(Value: Integer); |
function SetSize(AWidth, AHeight, ABitCount: Integer): Boolean; |
function SetSize(AWidth, AHeight, ABitCount{$IFNDEF D3D_deprecated}, ARefreshRate, AFlags{$ENDIF}: Integer): Boolean; |
function DynSetSize(AWidth, AHeight, ABitCount: Integer): Boolean; |
public |
constructor Create(ADXDraw: TCustomDXDraw); |
308,7 → 556,7 |
property Mode: TDXDrawDisplayMode read GetMode; |
property Modes[Index: Integer]: TDXDrawDisplayMode read GetMode2; default; |
published |
property BitCount: Integer read FBitCount write SetBitCount default 8; |
property BitCount: Integer read FBitCount write SetBitCount default 16; |
property FixedBitCount: Boolean read FFixedBitCount write FFixedBitCount; |
property FixedRatio: Boolean read FFixedRatio write FFixedRatio; |
property FixedSize: Boolean read FFixedSize write FFixedSize; |
323,11 → 571,23 |
EDXDrawError = class(Exception); |
{ TD2D HW acceleration} |
TD2D = class; |
{ TTracerCollection } |
TTraces = class; |
{ TCustomDXDraw } |
TD2DTextureFilter = (D2D_POINT, D2D_LINEAR, D2D_FLATCUBIC, D2D_GAUSSIANCUBIC, D2D_ANISOTROPIC); |
TDXDrawOption = (doFullScreen, doNoWindowChange, doAllowReboot, doWaitVBlank, |
doAllowPalette256, doSystemMemory, doStretch, doCenter, doFlip, |
do3D, doDirectX7Mode, doRetainedMode, doHardware, doSelectDriver, doZBuffer); |
{$IFDEF D3D_deprecated}do3D, doDirectX7Mode,{$ENDIF} {$IFDEF D3DRM} doRetainedMode,{$ENDIF} |
doHardware, doSelectDriver, doZBuffer); |
TDXDrawOptions = set of TDXDrawOption; |
336,6 → 596,16 |
TDXDrawNotifyEvent = procedure(Sender: TCustomDXDraw; NotifyType: TDXDrawNotifyType) of object; |
TD2DTextures = class; |
TOnUpdateTextures = procedure(const Sender: TD2DTextures; var Changed: Boolean) of object; |
TPictureCollectionItem = class; |
{$IFNDEF D3D_deprecated} |
TD3DDeviceType = (dtTnLHAL, dtHAL,dtMMX,dtRGB,dtRamp,dtRef); |
TD3DDeviceTypeSet = Set of TD3DDeviceType; |
{$ENDIF} |
TCustomDXDraw = class(TCustomControl) |
private |
FAutoInitialize: Boolean; |
364,6 → 634,9 |
FDriverGUID: TGUID; |
FDDraw: TDirectDraw; |
FDisplay: TDXDrawDisplay; |
{$IFNDEF D3D_deprecated} |
FDeviceTypeSet: TD3DDeviceTypeSet;{$ENDIF} |
{$IFDEF _DMO_}FAdapters: TDirectXDriversEx;{$ENDIF} |
FClipper: TDirectDrawClipper; |
FPalette: TDirectDrawPalette; |
FPrimary: TDirectDrawSurface; |
371,14 → 644,19 |
FSurfaceWidth: Integer; |
FSurfaceHeight: Integer; |
{ Direct3D } |
{$IFDEF D3D_deprecated} |
FD3D: IDirect3D; |
FD3D2: IDirect3D2; |
FD3D3: IDirect3D3; |
{$ENDIF} |
FD3D7: IDirect3D7; |
{$IFDEF D3D_deprecated} |
FD3DDevice: IDirect3DDevice; |
FD3DDevice2: IDirect3DDevice2; |
FD3DDevice3: IDirect3DDevice3; |
{$ENDIF} |
FD3DDevice7: IDirect3DDevice7; |
{$IFDEF D3DRM} |
FD3DRM: IDirect3DRM; |
FD3DRM2: IDirect3DRM2; |
FD3DRM3: IDirect3DRM3; |
388,14 → 666,18 |
FCamera: IDirect3DRMFrame; |
FScene: IDirect3DRMFrame; |
FViewport: IDirect3DRMViewport; |
{$ENDIF} |
FZBuffer: TDirectDrawSurface; |
FD2D: TD2D; |
FOnUpdateTextures: TOnUpdateTextures; |
FTraces: TTraces; |
FOnRender: TNotifyEvent; |
procedure FormWndProc(var Message: TMessage; DefWindowProc: TWndMethod); |
function GetCanDraw: Boolean; |
function GetCanDraw: Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function GetCanPaletteAnimation: Boolean; |
function GetSurfaceHeight: Integer; |
function GetSurfaceWidth: Integer; |
procedure NotifyEventList(NotifyType: TDXDrawNotifyType); |
procedure SetAutoSize(Value: Boolean); |
procedure SetColorTable(const ColorTable: TRGBQuads); |
procedure SetCooperativeLevel; |
procedure SetDisplay(Value: TDXDrawDisplay); |
405,6 → 687,11 |
procedure SetSurfaceWidth(Value: Integer); |
function TryRestore: Boolean; |
procedure WMCreate(var Message: TMessage); message WM_CREATE; |
function Fade2Color(colorfrom, colorto: Integer): LongInt; |
function Grey2Fade(shadefrom, shadeto: Integer): Integer; |
procedure SetTraces(const Value: TTraces); |
function CheckD3: Boolean; |
function CheckD3D(Dest: TDirectDrawSurface): Boolean; |
protected |
procedure DoFinalize; virtual; |
procedure DoFinalizeSurface; virtual; |
416,38 → 703,68 |
procedure Paint; override; |
function PaletteChanged(Foreground: Boolean): Boolean; override; |
procedure SetParent(AParent: TWinControl); override; |
procedure SetAutoSize(Value: Boolean); {$IFDEF D6UP} override; {$ENDIF} |
property OnUpdateTextures: TOnUpdateTextures read FOnUpdateTextures write FOnUpdateTextures; |
property OnRender: TNotifyEvent read FOnRender write FOnRender; |
public |
ColorTable: TRGBQuads; |
DefColorTable: TRGBQuads; |
// |
function Fade2Black(colorfrom: Integer): Longint; |
function Fade2White(colorfrom: Integer): Longint; |
// |
constructor Create(AOwner: TComponent); override; |
destructor Destroy; override; |
class function Drivers: TDirectXDrivers; |
{$IFDEF _DMO_}class function DriversEx: TDirectXDriversEx;{$ENDIF} |
procedure Finalize; |
procedure Flip; |
procedure Initialize; |
procedure Render; |
procedure Render(LagCount: Integer{$IFDEF VER4UP} = 0{$ENDIF}); |
procedure Restore; |
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override; |
procedure SetSize(ASurfaceWidth, ASurfaceHeight: Integer); |
procedure BeginScene; |
procedure EndScene; |
procedure TextureFilter(Grade: TD2DTextureFilter); |
procedure AntialiasFilter(Grade: TD3DAntialiasMode); |
procedure MirrorFlip(Value: TRenderMirrorFlipSet); |
procedure SaveTextures(path: string); |
procedure ClearStack; |
procedure UpdateTextures; |
{grab images} |
procedure PasteImage(sdib: TDIB; x, y: Integer); |
procedure GrabImage(iX, iY, iWidth, iHeight: Integer; ddib: TDIB); |
{fades} |
function Black2Screen(oldcolor: Integer): Longint; |
function Fade2Screen(oldcolor, newcolour: Integer): LongInt; |
function White2Screen(oldcolor: Integer): LongInt; |
function FadeGrey2Screen(oldcolor, newcolour: LongInt): LongInt; |
procedure UpdatePalette; |
procedure RegisterNotifyEvent(NotifyEvent: TDXDrawNotifyEvent); |
procedure UnRegisterNotifyEvent(NotifyEvent: TDXDrawNotifyEvent); |
property AutoInitialize: Boolean read FAutoInitialize write FAutoInitialize; |
property AutoSize: Boolean read FAutoSize write SetAutoSize; |
property Camera: IDirect3DRMFrame read FCamera; |
{$IFDEF D3DRM}property Camera: IDirect3DRMFrame read FCamera; {$ENDIF} |
property CanDraw: Boolean read GetCanDraw; |
property CanPaletteAnimation: Boolean read GetCanPaletteAnimation; |
property Clipper: TDirectDrawClipper read FClipper; |
property Color; |
{$IFDEF D3D_deprecated} |
property D3D: IDirect3D read FD3D; |
property D3D2: IDirect3D2 read FD3D2; |
property D3D3: IDirect3D3 read FD3D3; |
{$ENDIF} |
property D3D7: IDirect3D7 read FD3D7; |
{$IFDEF D3D_deprecated} |
property D3DDevice: IDirect3DDevice read FD3DDevice; |
property D3DDevice2: IDirect3DDevice2 read FD3DDevice2; |
property D3DDevice3: IDirect3DDevice3 read FD3DDevice3; |
{$ENDIF} |
property D3DDevice7: IDirect3DDevice7 read FD3DDevice7; |
{$IFNDEF D3D_deprecated} |
property D3DDeviceTypeSet: TD3DDeviceTypeSet read FDeviceTypeSet;{$ENDIF} |
{$IFDEF D3DRM} |
property D3DRM: IDirect3DRM read FD3DRM; |
property D3DRM2: IDirect3DRM2 read FD3DRM2; |
property D3DRM3: IDirect3DRM3 read FD3DRM3; |
454,8 → 771,10 |
property D3DRMDevice: IDirect3DRMDevice read FD3DRMDevice; |
property D3DRMDevice2: IDirect3DRMDevice2 read FD3DRMDevice2; |
property D3DRMDevice3: IDirect3DRMDevice3 read FD3DRMDevice3; |
{$ENDIF} |
property DDraw: TDirectDraw read FDDraw; |
property Display: TDXDrawDisplay read FDisplay write SetDisplay; |
{$IFDEF _DMO_}property Adapter: TDirectXDriversEx read FAdapters write FAdapters;{$ENDIF} |
property Driver: PGUID read FDriver write SetDriver; |
property Initialized: Boolean read FInitialized; |
property NowOptions: TDXDrawOptions read FNowOptions; |
468,12 → 787,14 |
property Options: TDXDrawOptions read FOptions write SetOptions; |
property Palette: TDirectDrawPalette read FPalette; |
property Primary: TDirectDrawSurface read FPrimary; |
property Scene: IDirect3DRMFrame read FScene; |
{$IFDEF D3DRM}property Scene: IDirect3DRMFrame read FScene; {$ENDIF} |
property Surface: TDirectDrawSurface read FSurface; |
property SurfaceHeight: Integer read GetSurfaceHeight write SetSurfaceHeight default 480; |
property SurfaceWidth: Integer read GetSurfaceWidth write SetSurfaceWidth default 640; |
property Viewport: IDirect3DRMViewport read FViewport; |
{$IFDEF D3DRM}property Viewport: IDirect3DRMViewport read FViewport; {$ENDIF} |
property ZBuffer: TDirectDrawSurface read FZBuffer; |
property D2D1: TD2D read FD2D; {public object is here} |
property Traces: TTraces read FTraces write SetTraces; |
end; |
{ TDXDraw } |
480,6 → 801,7 |
TDXDraw = class(TCustomDXDraw) |
published |
{$IFDEF _DMO_}property Adapter;{$ENDIF} |
property AutoInitialize; |
property AutoSize; |
property Color; |
493,10 → 815,12 |
property OnInitializeSurface; |
property OnInitializing; |
property OnRestoreSurface; |
property OnUpdateTextures; |
property OnRender; |
property Align; |
{$IFDEF DelphiX_Spt4}property Anchors;{$ENDIF} |
{$IFDEF DelphiX_Spt4}property Constraints;{$ENDIF} |
{$IFDEF VER4UP}property Anchors; {$ENDIF} |
{$IFDEF VER4UP}property Constraints; {$ENDIF} |
property DragCursor; |
property DragMode; |
property Enabled; |
505,6 → 829,7 |
property ShowHint; |
property TabOrder; |
property TabStop; |
property Traces; |
property Visible; |
property OnClick; |
property OnDblClick; |
519,7 → 844,12 |
property OnMouseDown; |
property OnMouseMove; |
property OnMouseUp; |
{$IFDEF DelphiX_Spt4}property OnResize;{$ENDIF} |
{$IFDEF VER9UP} |
property OnMouseWheel; |
property OnMouseWheelUp; |
property OnMouseWheelDown; |
{$ENDIF} |
{$IFDEF VER4UP}property OnResize; {$ENDIF} |
property OnStartDrag; |
end; |
527,6 → 857,314 |
EDX3DError = class(Exception); |
{ DxTracer } |
EDXTracerError = class(Exception); |
EDXBlitError = class(Exception); |
TTracePointsType = (tptDot, tptLine, tptCircle, tptCurve); |
TBlitMoveEvent = procedure(Sender: TObject; LagCount: Integer; var MoveIt: Boolean) of object; |
TWaveType = (wtWaveNone, wtWaveX, wtWaveY); |
TBlitRec = packed record |
FCollisioned: Boolean; |
FMoved: Boolean; |
FVisible: Boolean; |
FX: Double; |
FY: Double; |
FZ: Integer; |
FWidth: Integer; |
FHeight: Integer; |
//-- |
FAnimCount: Integer; |
FAnimLooped: Boolean; |
FAnimPos: Double; |
FAnimSpeed: Double; |
FAnimStart: Integer; |
//FTile: Boolean; |
FAngle: Single; |
FAlpha: Integer; |
FCenterX: Double; |
FCenterY: Double; |
FScale: Double; |
FBlendMode: TRenderType; |
FAmplitude: Integer; |
FAmpLength: Integer; |
FPhase: Integer; |
FWaveType: TWaveType; |
FSpeedX, FSpeedY: Single; |
FGravityX, FGravityY: Single; |
FEnergy: Single; |
FBlurImage: Boolean; |
FMirror: Boolean; |
FFlip: Boolean; |
FTextureFilter: TD2DTextureFilter; |
end; |
TBlurImageProp = packed record |
eActive: Boolean; |
eX, eY: Integer; |
ePatternIndex: Integer; {when animated or 0 always} |
eAngle: Single; //angle can be saved too |
eBlendMode: TRenderType; //blend mode |
eIntensity: Byte; {intensity of Blur/Add/Sub} |
end; |
TPath = packed record |
X, Y, Z: Single; |
StayOn: Integer; {in milisecond} |
Reserved: string[28]; {for future use} |
Tag: Integer; |
end; |
TPathArr = array{$IFNDEF VER4UP} [0..0]{$ENDIF} of TPath; |
{$IFNDEF VER4UP} |
PPathArr = ^TPathArr; |
{$ENDIF} |
TBlit = class; |
TOnRender = procedure(Sender: TBlit) of object; |
TBlurImageArr = array[0..7] of TBlurImageProp; |
TBlit = class(TPersistent) |
private |
FPathArr: {$IFNDEF VER4UP}PPathArr{$ELSE}TPathArr{$ENDIF}; |
{$IFNDEF VER4UP} |
FPathLen: Integer; |
{$ENDIF} |
FParent: TBlit; |
FBlitRec: TBlitRec; |
FBlurImageArr: TBlurImageArr; |
FActive: Boolean; |
//-- |
FImage: TPictureCollectionItem; |
FOnMove: TBlitMoveEvent; |
FOnDraw: TNotifyEvent; |
FOnCollision: TNotifyEvent; |
FOnGetImage: TNotifyEvent; |
FEngine: TCustomDXDraw; |
FMovingRepeatly: Boolean; |
FBustrofedon: Boolean; |
FOnRender: TOnRender; |
function GetWorldX: Double; |
function GetWorldY: Double; |
function GetDrawImageIndex: Integer; |
function GetAlpha: Byte; |
function GetAmpLength: Integer; |
function GetAmplitude: Integer; |
function GetAngle: Single; |
function GetAnimCount: Integer; |
function GetAnimLooped: Boolean; |
function GetAnimPos: Double; |
function GetAnimSpeed: Double; |
function GetAnimStart: Integer; |
function GetBlendMode: TRenderType; |
function GetBlurImage: Boolean; |
function GetCenterX: Double; |
function GetCenterY: Double; |
function GetCollisioned: Boolean; |
function GetEnergy: Single; |
function GetFlip: Boolean; |
function GetGravityX: Single; |
function GetGravityY: Single; |
function GetHeight: Integer; |
function GetMirror: Boolean; |
function GetMoved: Boolean; |
function GetPhase: Integer; |
function GetScale: Double; |
function GetSpeedX: Single; |
function GetSpeedY: Single; |
function GetVisible: Boolean; |
function GetWaveType: TWaveType; |
function GetWidth: Integer; |
function GetX: Double; |
function GetY: Double; |
function GetZ: Integer; |
procedure SetAlpha(const Value: Byte); |
procedure SetAmpLength(const Value: Integer); |
procedure SetAmplitude(const Value: Integer); |
procedure SetAngle(const Value: Single); |
procedure SetAnimCount(const Value: Integer); |
procedure SetAnimLooped(const Value: Boolean); |
procedure SetAnimPos(const Value: Double); |
procedure SetAnimSpeed(const Value: Double); |
procedure SetAnimStart(const Value: Integer); |
procedure SetBlendMode(const Value: TRenderType); |
procedure SetBlurImage(const Value: Boolean); |
procedure SetCenterX(const Value: Double); |
procedure SetCenterY(const Value: Double); |
procedure SetCollisioned(const Value: Boolean); |
procedure SetEnergy(const Value: Single); |
procedure SetFlip(const Value: Boolean); |
procedure SetGravityX(const Value: Single); |
procedure SetGravityY(const Value: Single); |
procedure SetHeight(const Value: Integer); |
procedure SetMirror(const Value: Boolean); |
procedure SetMoved(const Value: Boolean); |
procedure SetPhase(const Value: Integer); |
procedure SetScale(const Value: Double); |
procedure SetSpeedX(const Value: Single); |
procedure SetSpeedY(const Value: Single); |
procedure SetVisible(const Value: Boolean); |
procedure SetWaveType(const Value: TWaveType); |
procedure SetWidth(const Value: Integer); |
procedure SetX(const Value: Double); |
procedure SetY(const Value: Double); |
procedure SetZ(const Value: Integer); |
function StoreAngle: Boolean; |
function StoreAnimPos: Boolean; |
function StoreAnimSpeed: Boolean; |
function StoreCenterX: Boolean; |
function StoreCenterY: Boolean; |
function StoreEnergy: Boolean; |
function StoreGravityX: Boolean; |
function StoreGravityY: Boolean; |
function StoreScale: Boolean; |
function StoreSpeedX: Boolean; |
function StoreSpeedY: Boolean; |
function GetBoundsRect: TRect; |
function GetClientRect: TRect; |
function GetPath(index: Integer): TPath; |
procedure SetPath(index: Integer; const Value: TPath); |
procedure ReadPaths(Stream: TStream); |
procedure WritePaths(Stream: TStream); |
function GetMovingRepeatly: Boolean; |
procedure SetMovingRepeatly(const Value: Boolean); |
function GetBustrofedon: Boolean; |
procedure SetBustrofedon(const Value: Boolean); |
function GetTextureFilter: TD2DTextureFilter; |
procedure SetTextureFilter(const Value: TD2DTextureFilter); |
protected |
procedure DoDraw; virtual; |
procedure DoMove(LagCount: Integer); |
function DoCollision: TBlit; virtual; |
procedure DoGetImage; virtual; |
procedure DefineProperties(Filer: TFiler); override; |
public |
FCurrentPosition, FCurrentTime: Integer; |
FCurrentDirection: Boolean; |
constructor Create(AParent: TObject); virtual; |
destructor Destroy; override; |
procedure Assign(Source: TPersistent); override; |
property Engine: TCustomDXDraw read FEngine write FEngine; |
property Parent: TBlit read FParent; |
property WorldX: Double read GetWorldX; |
property WorldY: Double read GetWorldY; |
procedure ReAnimate(MoveCount: Integer); virtual; |
property Image: TPictureCollectionItem read FImage write FImage; |
property BoundsRect: TRect read GetBoundsRect; |
property ClientRect: TRect read GetClientRect; |
procedure SetPathLen(Len: Integer); |
function IsPathEmpty: Boolean; |
function GetPathCount: Integer; |
function GetBlitAt(X, Y: Integer): TBlit; |
property Path[index: Integer]: TPath read GetPath write SetPath; default; |
published |
property Active: Boolean read FActive write FActive default False; |
//-- |
property Collisioned: Boolean read GetCollisioned write SetCollisioned default True; |
property Moved: Boolean read GetMoved write SetMoved default True; |
property Visible: Boolean read GetVisible write SetVisible default True; |
property X: Double read GetX write SetX; |
property Y: Double read GetY write SetY; |
property Z: Integer read GetZ write SetZ; |
property Width: Integer read GetWidth write SetWidth; |
property Height: Integer read GetHeight write SetHeight; |
property MovingRepeatly: Boolean read GetMovingRepeatly write SetMovingRepeatly default True; |
property Bustrofedon: Boolean read GetBustrofedon write SetBustrofedon default False; |
//-- |
property AnimCount: Integer read GetAnimCount write SetAnimCount default 0; |
property AnimLooped: Boolean read GetAnimLooped write SetAnimLooped default False; |
property AnimPos: Double read GetAnimPos write SetAnimPos stored StoreAnimPos; |
property AnimSpeed: Double read GetAnimSpeed write SetAnimSpeed stored StoreAnimSpeed; |
property AnimStart: Integer read GetAnimStart write SetAnimStart default 0; |
property Angle: Single read GetAngle write SetAngle stored StoreAngle; |
property Alpha: Byte read GetAlpha write SetAlpha default $FF; |
property CenterX: Double read GetCenterX write SetCenterX stored StoreCenterX; |
property CenterY: Double read GetCenterY write SetCenterY stored StoreCenterY; |
property Scale: Double read GetScale write SetScale stored StoreScale; |
property BlendMode: TRenderType read GetBlendMode write SetBlendMode default rtDraw; |
property Amplitude: Integer read GetAmplitude write SetAmplitude default 0; |
property AmpLength: Integer read GetAmpLength write SetAmpLength default 0; |
property Phase: Integer read GetPhase write SetPhase default 0; |
property WaveType: TWaveType read GetWaveType write SetWaveType default wtWaveNone; |
property SpeedX: Single read GetSpeedX write SetSpeedX stored StoreSpeedX; |
property SpeedY: Single read GetSpeedY write SetSpeedY stored StoreSpeedY; |
property GravityX: Single read GetGravityX write SetGravityX stored StoreGravityX; |
property GravityY: Single read GetGravityY write SetGravityY stored StoreGravityY; |
property Energy: Single read GetEnergy write SetEnergy stored StoreEnergy; |
property BlurImage: Boolean read GetBlurImage write SetBlurImage default False; |
property Mirror: Boolean read GetMirror write SetMirror default False; |
property Flip: Boolean read GetFlip write SetFlip default False; |
property TextureFilter: TD2DTextureFilter read GetTextureFilter write SetTextureFilter default D2D_POINT; |
property OnGetImage: TNotifyEvent read FOnGetImage write FOnGetImage; |
property OnMove: TBlitMoveEvent read FOnMove write FOnMove; |
property OnDraw: TNotifyEvent read FOnDraw write FOnDraw; |
property OnCollision: TNotifyEvent read FOnCollision write FOnCollision; |
property OnRender: TOnRender read FOnRender write FOnRender; |
end; |
TTrace = class(THashCollectionItem) |
private |
FActualized: Boolean; |
FTag: Integer; |
FBlit: TBlit; |
function GetTraces: TTraces; |
function GetOnCollision: TNotifyEvent; |
function GetOnDraw: TNotifyEvent; |
function GetOnGetImage: TNotifyEvent; |
function GetOnMove: TBlitMoveEvent; |
procedure SetOnCollision(const Value: TNotifyEvent); |
procedure SetOnDraw(const Value: TNotifyEvent); |
procedure SetOnGetImage(const Value: TNotifyEvent); |
procedure SetOnMove(const Value: TBlitMoveEvent); |
function GetActive: Boolean; |
procedure SetActive(const Value: Boolean); |
function GetOnRender: TOnRender; |
procedure SetOnRender(const Value: TOnRender); |
protected |
function GetDisplayName: string; override; |
procedure SetDisplayName(const Value: string); override; |
public |
constructor Create(Collection: TCollection); override; |
destructor Destroy; override; |
procedure Render(const LagCount: Integer); |
function IsActualized: Boolean; |
procedure Assign(Source: TPersistent); override; |
property Traces: TTraces read GetTraces; |
function Clone(NewName: string; OffsetX: Integer{$IFDEF VER4UP} = 0{$ENDIF}; OffsetY: Integer{$IFDEF VER4UP} = 0{$ENDIF}; Angle: Single{$IFDEF VER4UP} = 0{$ENDIF}): TTrace; |
published |
property Active: Boolean read GetActive write SetActive; |
property Tag: Integer read FTag write FTag; |
property Blit: TBlit read FBlit write FBlit; |
{events} |
property OnGetImage: TNotifyEvent read GetOnGetImage write SetOnGetImage; |
property OnMove: TBlitMoveEvent read GetOnMove write SetOnMove; |
property OnDraw: TNotifyEvent read GetOnDraw write SetOnDraw; |
property OnCollision: TNotifyEvent read GetOnCollision write SetOnCollision; |
property OnRender: TOnRender read GetOnRender write SetOnRender; |
end; |
TTraces = class(THashCollection) |
private |
FOwner: TPersistent; |
function GetItem(Index: Integer): TTrace; |
procedure SetItem(Index: Integer; Value: TTrace); |
protected |
function GetOwner: TPersistent; override; |
public |
constructor Create(AOwner: TComponent); |
function Add: TTrace; |
function Find(const Name: string): TTrace; |
{$IFDEF VER4UP} |
function Insert(Index: Integer): TTrace; |
{$ENDIF} |
procedure Update(Item: TCollectionItem); override; |
property Items[Index: Integer]: TTrace read GetItem write SetItem; |
destructor Destroy; override; |
end; |
{$IFDEF DX3D_deprecated} |
{ TCustomDX3D } |
TDX3DOption = (toRetainedMode, toSystemMemory, toHardware, toSelectDriver, toZBuffer); |
536,15 → 1174,20 |
TCustomDX3D = class(TComponent) |
private |
FAutoSize: Boolean; |
FCamera: IDirect3DRMFrame; |
{$IFDEF D3DRM}FCamera: IDirect3DRMFrame; {$ENDIF} |
{$IFDEF D3D_deprecated} |
FD3D: IDirect3D; |
FD3D2: IDirect3D2; |
FD3D3: IDirect3D3; |
{$ENDIF} |
FD3D7: IDirect3D7; |
{$IFDEF D3D_deprecated} |
FD3DDevice: IDirect3DDevice; |
FD3DDevice2: IDirect3DDevice2; |
FD3DDevice3: IDirect3DDevice3; |
{$ENDIF} |
FD3DDevice7: IDirect3DDevice7; |
{$IFDEF D3DRM} |
FD3DRM: IDirect3DRM; |
FD3DRM2: IDirect3DRM2; |
FD3DRM3: IDirect3DRM3; |
551,6 → 1194,7 |
FD3DRMDevice: IDirect3DRMDevice; |
FD3DRMDevice2: IDirect3DRMDevice2; |
FD3DRMDevice3: IDirect3DRMDevice3; |
{$ENDIF} |
FDXDraw: TCustomDXDraw; |
FInitFlag: Boolean; |
FInitialized: Boolean; |
558,11 → 1202,11 |
FOnFinalize: TNotifyEvent; |
FOnInitialize: TNotifyEvent; |
FOptions: TDX3DOptions; |
FScene: IDirect3DRMFrame; |
{$IFDEF D3DRM}FScene: IDirect3DRMFrame; {$ENDIF} |
FSurface: TDirectDrawSurface; |
FSurfaceHeight: Integer; |
FSurfaceWidth: Integer; |
FViewport: IDirect3DRMViewport; |
{$IFDEF D3DRM}FViewport: IDirect3DRMViewport; {$ENDIF} |
FZBuffer: TDirectDrawSurface; |
procedure Finalize; |
procedure Initialize; |
572,7 → 1216,7 |
function GetSurfaceWidth: Integer; |
procedure SetAutoSize(Value: Boolean); |
procedure SetDXDraw(Value: TCustomDXDraw); |
procedure SetOptions(Value: TDX3DOptions); |
procedure SetOptions(Value: TDX3DOptions); virtual; {TridenT} |
procedure SetSurfaceHeight(Value: Integer); |
procedure SetSurfaceWidth(Value: Integer); |
protected |
585,16 → 1229,19 |
procedure Render; |
procedure SetSize(ASurfaceWidth, ASurfaceHeight: Integer); |
property AutoSize: Boolean read FAutoSize write SetAutoSize; |
property Camera: IDirect3DRMFrame read FCamera; |
{$IFDEF D3DRM}property Camera: IDirect3DRMFrame read FCamera; {$ENDIF} |
property CanDraw: Boolean read GetCanDraw; |
property D3D: IDirect3D read FD3D; |
property D3D2: IDirect3D2 read FD3D2; |
property D3D3: IDirect3D3 read FD3D3; |
property D3D7: IDirect3D7 read FD3D7; |
{$IFDEF D3D_deprecated} |
property D3DDevice: IDirect3DDevice read FD3DDevice; |
property D3DDevice2: IDirect3DDevice2 read FD3DDevice2; |
property D3DDevice3: IDirect3DDevice3 read FD3DDevice3; |
{$ENDIF} |
property D3DDevice7: IDirect3DDevice7 read FD3DDevice7; |
{$IFDEF D3DRM} |
property D3DRM: IDirect3DRM read FD3DRM; |
property D3DRM2: IDirect3DRM2 read FD3DRM2; |
property D3DRM3: IDirect3DRM3 read FD3DRM3; |
601,6 → 1248,7 |
property D3DRMDevice: IDirect3DRMDevice read FD3DRMDevice; |
property D3DRMDevice2: IDirect3DRMDevice2 read FD3DRMDevice2; |
property D3DRMDevice3: IDirect3DRMDevice3 read FD3DRMDevice3; |
{$ENDIF} |
property DXDraw: TCustomDXDraw read FDXDraw write SetDXDraw; |
property Initialized: Boolean read FInitialized; |
property NowOptions: TDX3DOptions read FNowOptions; |
607,11 → 1255,11 |
property OnFinalize: TNotifyEvent read FOnFinalize write FOnFinalize; |
property OnInitialize: TNotifyEvent read FOnInitialize write FOnInitialize; |
property Options: TDX3DOptions read FOptions write SetOptions; |
property Scene: IDirect3DRMFrame read FScene; |
{$IFDEF D3DRM}property Scene: IDirect3DRMFrame read FScene; {$ENDIF} |
property Surface: TDirectDrawSurface read FSurface; |
property SurfaceHeight: Integer read GetSurfaceHeight write SetSurfaceHeight default 480; |
property SurfaceWidth: Integer read GetSurfaceWidth write SetSurfaceWidth default 640; |
property Viewport: IDirect3DRMViewport read FViewport; |
{$IFDEF D3DRM}property Viewport: IDirect3DRMViewport read FViewport; {$ENDIF} |
property ZBuffer: TDirectDrawSurface read FZBuffer; |
end; |
627,6 → 1275,7 |
property OnFinalize; |
property OnInitialize; |
end; |
{$ENDIF} |
{ EDirect3DTextureError } |
644,13 → 1293,13 |
FHandle: TD3DTextureHandle; |
FPaletteEntries: TPaletteEntries; |
FSurface: TDirectDrawSurface; |
FTexture: IDirect3DTexture; |
FTexture: {$IFDEF D3D_deprecated}IDirect3DTexture{$ELSE}IDirect3DTexture2{$ENDIF}; |
FTransparentColor: TColor; |
procedure Clear; |
procedure DXDrawNotifyEvent(Sender: TCustomDXDraw; NotifyType: TDXDrawNotifyType); |
function GetHandle: TD3DTextureHandle; |
function GetSurface: TDirectDrawSurface; |
function GetTexture: IDirect3DTexture; |
function GetTexture: {$IFDEF D3D_deprecated}IDirect3DTexture{$ELSE}IDirect3DTexture2{$ENDIF}; |
procedure SetTransparentColor(Value: TColor); |
public |
constructor Create(Graphic: TGraphic; DXDraw: TComponent); |
659,9 → 1308,133 |
property Handle: TD3DTextureHandle read GetHandle; |
property Surface: TDirectDrawSurface read GetSurface; |
property TransparentColor: TColor read FTransparentColor write SetTransparentColor; |
property Texture: IDirect3DTexture read GetTexture; |
property Texture: {$IFDEF D3D_deprecated}IDirect3DTexture{$ELSE}IDirect3DTexture2{$ENDIF} read GetTexture; |
end; |
{ EDXTextureImageError } |
EDXTextureImageError = class(Exception); |
{ channel structure } |
TDXTextureImageChannel = record |
Mask: DWORD; |
BitCount: Integer; |
{ Internal use } |
_Mask2: DWORD; |
_rshift: Integer; |
_lshift: Integer; |
_BitCount2: Integer; |
end; |
TDXTextureImage_PaletteEntries = array[0..255] of TPaletteEntry; |
TDXTextureImageType = ( |
DXTextureImageType_PaletteIndexedColor, |
DXTextureImageType_RGBColor |
); |
TDXTextureImageFileCompressType = ( |
DXTextureImageFileCompressType_None, |
DXTextureImageFileCompressType_ZLIB |
); |
{forward} |
TDXTextureImage = class; |
{ TDXTextureImageLoadFunc } |
TDXTextureImageLoadFunc = procedure(Stream: TStream; Image: TDXTextureImage); |
{ TDXTextureImageProgressEvent } |
TDXTextureImageProgressEvent = procedure(Sender: TObject; Progress, ProgressCount: Integer) of object; |
{ TDXTextureImage } |
TDXTextureImage = class |
private |
FOwner: TDXTextureImage; |
FFileCompressType: TDXTextureImageFileCompressType; |
FOnSaveProgress: TDXTextureImageProgressEvent; |
FSubImage: TList; |
FImageType: TDXTextureImageType; |
FWidth: Integer; |
FHeight: Integer; |
FPBits: Pointer; |
FBitCount: Integer; |
FPackedPixelOrder: Boolean; |
FWidthBytes: Integer; |
FNextLine: Integer; |
FSize: Integer; |
FTopPBits: Pointer; |
FTransparent: Boolean; |
FTransparentColor: DWORD; |
FImageGroupType: DWORD; |
FImageID: DWORD; |
FImageName: string; |
FAutoFreeImage: Boolean; |
procedure ClearImage; |
function GetPixel(x, y: Integer): DWORD; |
procedure SetPixel(x, y: Integer; c: DWORD); |
function GetScanLine(y: Integer): Pointer; |
function GetSubGroupImageCount(GroupTypeID: DWORD): Integer; |
function GetSubGroupImage(GroupTypeID: DWORD; Index: Integer): TDXTextureImage; |
function GetSubImageCount: Integer; |
function GetSubImage(Index: Integer): TDXTextureImage; |
protected |
procedure DoSaveProgress(Progress, ProgressCount: Integer); virtual; |
public |
idx_index: TDXTextureImageChannel; |
idx_alpha: TDXTextureImageChannel; |
idx_palette: TDXTextureImage_PaletteEntries; |
rgb_red: TDXTextureImageChannel; |
rgb_green: TDXTextureImageChannel; |
rgb_blue: TDXTextureImageChannel; |
rgb_alpha: TDXTextureImageChannel; |
constructor Create; |
constructor CreateSub(AOwner: TDXTextureImage); |
destructor Destroy; override; |
procedure Assign(Source: TDXTextureImage); |
procedure Clear; |
procedure SetImage(ImageType: TDXTextureImageType; Width, Height, BitCount, WidthBytes, NextLine: Integer; |
PBits, TopPBits: Pointer; Size: Integer; AutoFree: Boolean); |
procedure SetSize(ImageType: TDXTextureImageType; Width, Height, BitCount, WidthBytes: Integer); |
procedure LoadFromFile(const FileName: string); |
procedure LoadFromStream(Stream: TStream); |
procedure SaveToFile(const FileName: string); |
procedure SaveToStream(Stream: TStream); |
function EncodeColor(R, G, B, A: Byte): DWORD; |
function PaletteIndex(R, G, B: Byte): DWORD; |
class procedure RegisterLoadFunc(LoadFunc: TDXTextureImageLoadFunc); |
class procedure UnRegisterLoadFunc(LoadFunc: TDXTextureImageLoadFunc); |
property BitCount: Integer read FBitCount; |
property PackedPixelOrder: Boolean read FPackedPixelOrder write FPackedPixelOrder; |
property Height: Integer read FHeight; |
property ImageType: TDXTextureImageType read FImageType; |
property ImageGroupType: DWORD read FImageGroupType write FImageGroupType; |
property ImageID: DWORD read FImageID write FImageID; |
property ImageName: string read FImageName write FImageName; |
property NextLine: Integer read FNextLine; |
property PBits: Pointer read FPBits; |
property Pixels[x, y: Integer]: DWORD read GetPixel write SetPixel; |
property ScanLine[y: Integer]: Pointer read GetScanLine; |
property Size: Integer read FSize; |
property SubGroupImageCount[GroupTypeID: DWORD]: Integer read GetSubGroupImageCount; |
property SubGroupImages[GroupTypeID: DWORD; Index: Integer]: TDXTextureImage read GetSubGroupImage; |
property SubImageCount: Integer read GetSubImageCount; |
property SubImages[Index: Integer]: TDXTextureImage read GetSubImage; |
property TopPBits: Pointer read FTopPBits; |
property Transparent: Boolean read FTransparent write FTransparent; |
property TransparentColor: DWORD read FTransparentColor write FTransparentColor; |
property Width: Integer read FWidth; |
property WidthBytes: Integer read FWidthBytes; |
property FileCompressType: TDXTextureImageFileCompressType read FFileCompressType write FFileCompressType; |
property OnSaveProgress: TDXTextureImageProgressEvent read FOnSaveProgress write FOnSaveProgress; |
end; |
{ TDirect3DTexture2 } |
TDirect3DTexture2 = class |
684,18 → 1457,20 |
FD3DDevDesc: TD3DDeviceDesc; |
procedure DXDrawNotifyEvent(Sender: TCustomDXDraw; NotifyType: TDXDrawNotifyType); |
procedure SetDXDraw(ADXDraw: TCustomDXDraw); |
procedure LoadSubTexture(Dest: IDirectDrawSurface4; SrcImage: TDXTextureImage); |
procedure LoadSubTexture(Dest: {$IFDEF D3D_deprecated}IDirectDrawSurface4{$ELSE}IDirectDrawSurface7{$ENDIF}; SrcImage: TDXTextureImage); |
procedure SetColorKey; |
procedure SetDIB(DIB: TDIB); |
function GetIsMipmap: Boolean; |
function GetSurface: TDirectDrawSurface; |
function GetTransparent: Boolean; |
procedure SetTransparent(Value: Boolean); |
procedure SetTransparentColor(Value: TColorRef); |
function GetIsMipmap: Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function GetSurface: TDirectDrawSurface; {$IFDEF VER9UP}inline;{$ENDIF} |
function GetTransparent: Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure SetTransparent(Value: Boolean); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure SetTransparentColor(Value: TColorRef); {$IFDEF VER9UP}inline;{$ENDIF} |
function GetHeight: Integer; |
function GetWidth: Integer; |
protected |
procedure DoRestoreSurface; virtual; |
public |
constructor Create(ADXDraw: TCustomDXDraw; Graphic: TObject; AutoFreeGraphic: Boolean); |
constructor Create(ADXDraw: TCustomDXDraw; Graphic: TObject; AutoFreeGraphic: Boolean{$IFDEF VER4UP} = False{$ENDIF}); |
constructor CreateFromFile(ADXDraw: TCustomDXDraw; const FileName: string); |
constructor CreateVideoTexture(ADXDraw: TCustomDXDraw); |
destructor Destroy; override; |
702,6 → 1477,8 |
procedure Finalize; |
procedure Load; |
procedure Initialize; |
property Height: Integer read GetHeight; |
property Width: Integer read GetWidth; |
property IsMipmap: Boolean read GetIsMipmap; |
property Surface: TDirectDrawSurface read GetSurface; |
property TextureFormat: TDDSurfaceDesc2 read FTextureFormat write FTextureFormat; |
710,6 → 1487,103 |
property OnRestoreSurface: TNotifyEvent read FOnRestoreSurface write FOnRestoreSurface; |
end; |
{ EDXTBaseError } |
EDXTBaseError = class(Exception); |
{ parameters for DXT generator } |
TDXTImageChannel = (rgbNone, rgbRed, rgbGreen, rgbBlue, rgbAlpha, yuvY); |
TDXTImageChannels = set of TDXTImageChannel; |
TDXTImageChannelInfo = packed record |
Image: TDXTextureImage; |
BitCount: Integer; |
end; |
TDXTImageFormat = packed record |
ImageType: TDXTextureImageType; |
Width: Integer; |
Height: Integer; |
Bits: Pointer; |
BitCount: Integer; |
WidthBytes: Integer; |
{transparent} |
Transparent: Boolean; |
TransparentColor: TColorRef; |
{texture channels} |
idx_index: TDXTextureImageChannel; |
idx_alpha: TDXTextureImageChannel; |
idx_palette: TDXTextureImage_PaletteEntries; |
rgb_red: TDXTextureImageChannel; |
rgb_green: TDXTextureImageChannel; |
rgb_blue: TDXTextureImageChannel; |
rgb_alpha: TDXTextureImageChannel; |
{compress level} |
Compress: TDXTextureImageFileCompressType; |
MipmapCount: Integer; |
Name: string; |
end; |
{ TDXTBase } |
{Note JB.} |
{Class for DXT generation files, primary use for load bitmap 32 with alphachannel} |
{recoded and class created by JB.} |
TDXTBase = class |
private |
FHasChannels: TDXTImageChannels; |
FHasChannelImages: array[TDXTImageChannel] of TDXTImageChannelInfo; |
FChannelChangeTable: array[TDXTImageChannel] of TDXTImageChannel; |
FHasImageList: TList; |
FParamsFormat: TDXTImageFormat; |
FStrImageFileName: string; |
FDIB: TDIB; |
function GetCompression: TDXTextureImageFileCompressType; |
function GetHeight: Integer; |
function GetMipmap: Integer; |
function GetTransparentColor: TColorRef; |
function GetWidth: Integer; |
procedure SetCompression(const Value: TDXTextureImageFileCompressType); |
procedure SetHeight(const Value: Integer); |
procedure SetMipmap(const Value: Integer); |
procedure SetTransparentColor(const Value: TColorRef); |
procedure SetWidth(const Value: Integer); |
procedure SetTransparentColorIndexed(const Value: TColorRef); |
function GetTexture: TDXTextureImage; |
procedure Resize(Image: TDXTextureImage; NewWidth, NewHeight: Integer; |
FilterTypeResample: TFilterTypeResample); |
procedure EvaluateChannels(const CheckChannelUsed: TDXTImageChannels; |
const CheckChannelChanged, CheckBitCountForChannel: string); |
function GetPicture: TDXTextureImage; |
protected |
procedure CalcOutputBitFormat; |
procedure BuildImage(Image: TDXTextureImage); |
public |
constructor Create; |
destructor Destroy; override; |
procedure SetChannelR(T: TDIB); |
procedure SetChannelG(T: TDIB); |
procedure SetChannelB(T: TDIB); |
procedure SetChannelA(T: TDIB); |
procedure LoadChannelAFromFile(const FileName: string); |
procedure SetChannelY(T: TDIB); |
procedure SetChannelRGB(T: TDIB); |
procedure LoadChannelRGBFromFile(const FileName: string); |
procedure SetChannelRGBA(T: TDIB); |
procedure LoadChannelRGBAFromFile(const FileName: string); |
procedure SaveToFile(iFilename: string {$IFDEF VER4UP} = ''{$ENDIF}); |
function LoadFromFile(iFilename: string): Boolean; |
property TransparentColor: TColorRef read GetTransparentColor write SetTransparentColor; |
property TransparentColorIndexed: TColorRef read GetTransparentColor write SetTransparentColorIndexed; |
property Width: Integer read GetWidth write SetWidth; |
property Height: Integer read GetHeight write SetHeight; |
property Compression: TDXTextureImageFileCompressType read GetCompression write SetCompression; |
property Mipmap: Integer read GetMipmap write SetMipmap; |
property Texture: TDXTextureImage read GetTexture; |
end; |
{$IFDEF D3DRM} |
{ EDirect3DRMUserVisualError } |
EDirect3DRMUserVisualError = class(Exception); |
727,6 → 1601,7 |
destructor Destroy; override; |
property UserVisual: IDirect3DRMUserVisual read FUserVisual; |
end; |
{$ENDIF} |
{ EPictureCollectionError } |
756,7 → 1631,7 |
function GetPictureCollection: TPictureCollection; |
function GetPatternRect(Index: Integer): TRect; |
function GetPatternSurface(Index: Integer): TDirectDrawSurface; |
function GetPatternCount: Integer; |
function GetPatternCount: Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
function GetWidth: Integer; |
procedure SetPicture(Value: TPicture); |
procedure SetTransparentColor(Value: TColor); |
763,34 → 1638,82 |
public |
constructor Create(Collection: TCollection); override; |
destructor Destroy; override; |
procedure UpdateTag; |
procedure Assign(Source: TPersistent); override; |
procedure Draw(Dest: TDirectDrawSurface; X, Y: Integer; PatternIndex: Integer); |
// Modifier par MKost d'Uk@Team tous droit réservé. |
// 22:02 04/11/2005 |
// Ajouté : |
// Dans TPictureCollectionItem |
// procedure DrawFlipH(Dest: TDirectDrawSurface; X, Y: Integer; PatternIndex: Integer); |
// -Effectue un flip Horizontale de l'image |
// procedure DrawFlipHV(Dest: TDirectDrawSurface; X, Y: Integer; PatternIndex: Integer); |
// -Effectue un flip Oblique de l'image |
// procedure DrawFlipV(Dest: TDirectDrawSurface; X, Y: Integer; PatternIndex: Integer); |
// -Effectue un flip Verticale de l'image |
procedure DrawFlipH(Dest: TDirectDrawSurface; X, Y: Integer; PatternIndex: Integer); |
procedure DrawFlipHV(Dest: TDirectDrawSurface; X, Y: Integer; PatternIndex: Integer); |
procedure DrawFlipV(Dest: TDirectDrawSurface; X, Y: Integer; PatternIndex: Integer); |
procedure StretchDraw(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer); |
procedure DrawAdd(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer; |
Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawAddCol(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer; |
Color: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawAlpha(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer; |
Alpha: Integer); |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawAlphaCol(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer; |
Color: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawSub(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer; |
Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawSubCol(Dest: TDirectDrawSurface; const DestRect: TRect; |
PatternIndex, Color: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
{Rotate} |
procedure DrawRotate(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
CenterX, CenterY: Double; Angle: Integer); |
CenterX, CenterY: Double; Angle: single); |
procedure DrawRotateAdd(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
CenterX, CenterY: Double; Angle: Integer; |
Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
CenterX, CenterY: Double; Angle: single; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRotateAddCol(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
CenterX, CenterY: Double; Angle: single; |
Color: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRotateAlpha(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
CenterX, CenterY: Double; Angle: Integer; |
Alpha: Integer); |
CenterX, CenterY: Double; Angle: single; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRotateAlphaCol(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
CenterX, CenterY: Double; Angle: single; |
Color: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRotateSub(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
CenterX, CenterY: Double; Angle: Integer; |
Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
CenterX, CenterY: Double; Angle: single; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRotateSubCol(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
CenterX, CenterY: Double; Angle: single; |
Color: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
{WaveX} |
procedure DrawWaveX(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
amp, Len, ph: Integer); |
procedure DrawWaveXAdd(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
amp, Len, ph: Integer; Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
amp, Len, ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawWaveXAlpha(Dest: TDirectDrawSurface; X, Y, Width, Height, PatternIndex: Integer; |
amp, Len, ph: Integer; Alpha: Integer); |
amp, Len, ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawWaveXSub(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
amp, Len, ph: Integer; Alpha: Integer{$IFDEF DelphiX_Spt4}=255{$ENDIF}); |
amp, Len, ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
{WaveY} |
procedure DrawWaveY(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
amp, Len, ph: Integer); |
procedure DrawWaveYAdd(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
amp, Len, ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawWaveYAlpha(Dest: TDirectDrawSurface; X, Y, Width, Height, PatternIndex: Integer; |
amp, Len, ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawWaveYSub(Dest: TDirectDrawSurface; X, Y, Width, Height: Integer; PatternIndex: Integer; |
amp, Len, ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
{SpecialDraw} |
procedure DrawCol(Dest: TDirectDrawSurface; const DestRect, SourceRect: TRect; |
PatternIndex: Integer; Faded: Boolean; RenderType: TRenderType; Color, |
Specular: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure DrawRect(Dest: TDirectDrawSurface; |
const DestRect, SourceRect: TRect; PatternIndex: Integer; |
RenderType: TRenderType; Transparent: Boolean{$IFDEF VER4UP} = True{$ENDIF}; |
Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}); |
procedure Restore; |
property Height: Integer read GetHeight; |
property Initialized: Boolean read FInitialized; |
830,6 → 1753,7 |
function Find(const Name: string): TPictureCollectionItem; |
procedure Finalize; |
procedure Initialize(DXDraw: TCustomDXDraw); |
procedure InitializeImages(DXDraw: TCustomDXDraw; Id : Integer); |
procedure LoadFromFile(const FileName: string); |
procedure LoadFromStream(Stream: TStream); |
procedure MakeColorTable; |
891,7 → 1815,7 |
constructor CreateWindowed(WindowHandle: HWND); |
destructor Destroy; override; |
procedure Finalize; |
procedure Initialize(const SurfaceDesc: TDDSurfaceDesc); |
procedure Initialize(const SurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}); |
procedure Flip; |
property OverlayColorKey: TColor read FOverlayColorKey write SetOverlayColorKey; |
property OverlayRect: TRect read FOverlayRect write SetOverlayRect; |
900,27 → 1824,542 |
property Visible: Boolean read FVisible write SetVisible; |
end; |
{ |
Modified by Michael Wilson 2/05/2001 |
- re-added redundant assignment to Offset |
Modified by Marcus Knight 19/12/2000 |
- replaces all referaces to 'pos' with 'AnsiPos' <- faster |
- replaces all referaces to 'uppercase' with 'Ansiuppercase' <- faster |
- Now only uppercases outside the loop |
- Fixed the non-virtual contructor |
- renamed & moved Offset to private(fOffSet), and added the property OffSet |
- Commented out the redundant assignment to Offset<- not needed, as Offset is now a readonly property |
- Added the Notification method to catch when the image list is destroyed |
- removed DXclasses from used list |
} |
TDXFont = class(TComponent) |
private |
FDXImageList: TDXImageList; |
FFont: string; |
FFontIndex: Integer; |
FOffset: Integer; // renamed from Offset -> fOffset |
procedure SetFont(const Value: string); |
procedure SetFontIndex(const Value: Integer); |
protected |
procedure Notification(AComponent: TComponent; Operation: TOperation); override; // added |
public |
constructor Create(AOwner: TComponent); override; // Modified |
destructor Destroy; override; |
procedure TextOut(DirectDrawSurface: TDirectDrawSurface; X, Y: Integer; const Text: string); |
property Offset: Integer read FOffset write FOffset; // added |
published |
property Font: string read FFont write SetFont; |
property FontIndex: Integer read FFontIndex write SetFontIndex; |
property DXImageList: TDXImageList read FDXImageList write FDXImageList; |
end; |
(******************************************************************************* |
* Unit Name: DXPowerFont.pas |
* Information: Writed By Ramin.S.Zaghi (Based On Wilson's DXFont Unit) |
* Last Changes: Dec 25 2000; |
* Unit Information: |
* This unit includes a VCL-Component for DelphiX. This component draws the |
* Character-Strings on a TDirectDrawSurface. This component helps the |
* progarmmers to using custom fonts and printing texts easily such as |
* TCanvas.TextOut function... |
* Includes: |
* 1. TDXPowerFontTextOutEffect ==> The kinds of drawing effects. |
* - teNormal: Uses the Draw function. (Normal output) |
* - teRotat: Uses the DrawRotate function. (Rotates each character) |
* - teAlphaBlend: Uses DrawAlpha function. (Blends each character) |
* - teWaveX: Uses DrawWaveX function. (Adds a Wave effect to the each character) |
* |
* 2. TDXPowerFontTextOutType ==> The kinds of each caracter. |
* - ttUpperCase: Uppers all characters automaticaly. |
* - ttLowerCase: Lowers all characters automaticaly. |
* - ttNormal: Uses all characters with out any converting. |
* |
* 3. TDXPowerFontEffectsParameters ==> Includes the parameters for adding effects to the characters. |
* - (CenterX, CenterY): The rotating center point. |
* - (Width, Height): The new size of each character. |
* - Angle: The angle of rotate. |
* - AlphaValue: The value of Alpha-Chanel. |
* - WAmplitude: The Amplitude of Wave function. (See The Help Of DelphiX) |
* - WLenght: The Lenght Of Wave function. (See The Help Of DelphiX) |
* - WPhase: The Phase Of Wave function. (See The Help Of DelphiX) |
* |
* 4. TDXPowerFontBeforeTextOutEvent ==> This is an event that occures before |
* drawing texts on to TDirectDrawSurface object. |
* - Sender: Retrieves the event caller object. |
* - Text: Retrieves the text sended text for drawing. |
* (NOTE: The changes will have effect) |
* - DoTextOut: The False value means that the TextOut function must be stopped. |
* (NOTE: The changes will have effect) |
* |
* 5. TDXPowerFontAfterTextOutEvent ==> This is an event that occures after |
* drawing texts on to TDirectDrawSurface object. |
* - Sender: Retrieves the event caller object. |
* - Text: Retrieves the text sended text for drawing. |
* (NOTE: The changes will not have any effects) |
* |
* 6. TDXPowerFont ==> I sthe main class of PowerFont VCL-Component. |
* - property Font: string; The name of custom-font's image in the TDXImageList items. |
* - property FontIndex: Integer; The index of custom-font's image in the TDXImageList items. |
* - property DXImageList: TDXImageList; The TDXImageList that includes the image of custom-fonts. |
* - property UseEnterChar: Boolean; When the value of this property is True, The component caculates Enter character. |
* - property EnterCharacter: String; |
*==> Note that TDXPowerFont calculates tow kinds of enter character: |
*==> E1. The Enter character that draws the characters after it self in a new line and after last drawed character, ONLY. |
*==> E2. The Enter character that draws the characters after it self in a new line such as #13#10 enter code in delphi. |
*==> Imporatant:: |
*==> (E1) TDXPowerFont uses the first caracter of EnterCharacter string as the first enter caracter (Default value is '|'). |
*==> (E2) and uses the second character as the scond enter caracter (Default value is '<') |
* - property BeforeTextOut: TDXPowerFontBeforeTextOutEvent; See TDXPowerFontBeforeTextOutEvent. |
* - property AfterTextOut: TDXPowerFontAfterTextOutEvent; See TDXPowerFontAfterTextOutEvent. |
* - property Alphabets: string; TDXPowerFont uses this character-string for retrieving the pattern number of each character. |
* - property TextOutType: TDXPowerFontTextOutType; See TDXPowerFontTextOutType. |
* - property TextOutEffect: TDXPowerFontTextOutEffect; See TDXPowerFontTextOutEffect. |
* - property EffectsParameters: TDXPowerFontEffectsParameters; See TDXPowerFontEffectsParameters. |
* |
* - function TextOut(DirectDrawSurface: TDirectDrawSurface; X, Y: Integer; const Text: string): Boolean; |
* This function draws/prints the given text on the given TDirectDrawSurface. |
* - DirectDrawSurface: The surface for drawing text (character-string). |
* - (X , Y): The first point of outputed text. (Such as X,Y parameters in TCanvas.TextOut function) |
* - Text: The text for printing. |
* Return values: This function returns False when an error occured or... |
* - function TextOutFast(DirectDrawSurface: TDirectDrawSurface; X, Y: Integer; const Text: string): Boolean; |
* This function works such as TextOut function but, |
* with out calculating any Parameters/Effects/Enter-Characters/etc... |
* This function calculates the TextOutType, ONLY. |
* |
* Ramin.S.Zaghi (ramin_zaghi@yahoo.com) |
* (Based on wilson's code for TDXFont VCL-Component/Add-On) |
* (wilson@no2games.com) |
* |
* For more information visit: |
* www.no2games.com |
* turbo.gamedev.net |
******************************************************************************) |
{ DXPowerFont types } |
TDXPowerFontTextOutEffect = (teNormal, teRotat, teAlphaBlend, teWaveX); |
TDXPowerFontTextOutType = (ttUpperCase, ttLowerCase, ttNormal); |
TDXPowerFontBeforeTextOutEvent = procedure(Sender: TObject; var Text: string; var DoTextOut: Boolean) of object; |
TDXPowerFontAfterTextOutEvent = procedure(Sender: TObject; Text: string) of object; |
{ TDXPowerFontEffectsParameters } |
TDXPowerFontEffectsParameters = class(TPersistent) |
private |
FCenterX: Integer; |
FCenterY: Integer; |
FHeight: Integer; |
FWidth: Integer; |
FAngle: Integer; |
FAlphaValue: Integer; |
FWPhase: Integer; |
FWAmplitude: Integer; |
FWLenght: Integer; |
procedure SetAngle(const Value: Integer); |
procedure SetCenterX(const Value: Integer); |
procedure SetCenterY(const Value: Integer); |
procedure SetHeight(const Value: Integer); |
procedure SetWidth(const Value: Integer); |
procedure SetAlphaValue(const Value: Integer); |
procedure SetWAmplitude(const Value: Integer); |
procedure SetWLenght(const Value: Integer); |
procedure SetWPhase(const Value: Integer); |
published |
property CenterX: Integer read FCenterX write SetCenterX; |
property CenterY: Integer read FCenterY write SetCenterY; |
property Width: Integer read FWidth write SetWidth; |
property Height: Integer read FHeight write SetHeight; |
property Angle: Integer read FAngle write SetAngle; |
property AlphaValue: Integer read FAlphaValue write SetAlphaValue; |
property WAmplitude: Integer read FWAmplitude write SetWAmplitude; |
property WLenght: Integer read FWLenght write SetWLenght; |
property WPhase: Integer read FWPhase write SetWPhase; |
end; |
{ TDXPowerFont } |
TDXPowerFont = class(TComponent) |
private |
FDXImageList: TDXImageList; |
FFont: string; |
FFontIndex: Integer; |
FUseEnterChar: Boolean; |
FEnterCharacter: string; |
FAfterTextOut: TDXPowerFontAfterTextOutEvent; |
FBeforeTextOut: TDXPowerFontBeforeTextOutEvent; |
FAlphabets: string; |
FTextOutType: TDXPowerFontTextOutType; |
FTextOutEffect: TDXPowerFontTextOutEffect; |
FEffectsParameters: TDXPowerFontEffectsParameters; |
procedure SetFont(const Value: string); |
procedure SetFontIndex(const Value: Integer); |
procedure SetUseEnterChar(const Value: Boolean); |
procedure SetEnterCharacter(const Value: string); |
procedure SetAlphabets(const Value: string); |
procedure SetTextOutType(const Value: TDXPowerFontTextOutType); |
procedure SetTextOutEffect(const Value: TDXPowerFontTextOutEffect); |
procedure SetEffectsParameters(const Value: TDXPowerFontEffectsParameters); |
published |
property Font: string read FFont write SetFont; |
property FontIndex: Integer read FFontIndex write SetFontIndex; |
property DXImageList: TDXImageList read FDXImageList write FDXImageList; |
property UseEnterChar: Boolean read FUseEnterChar write SetUseEnterChar; |
property EnterCharacter: string read FEnterCharacter write SetEnterCharacter; |
property BeforeTextOut: TDXPowerFontBeforeTextOutEvent read FBeforeTextOut write FBeforeTextOut; |
property AfterTextOut: TDXPowerFontAfterTextOutEvent read FAfterTextOut write FAfterTextOut; |
property Alphabets: string read FAlphabets write SetAlphabets; |
property TextOutType: TDXPowerFontTextOutType read FTextOutType write SetTextOutType; |
property TextOutEffect: TDXPowerFontTextOutEffect read FTextOutEffect write SetTextOutEffect; |
property EffectsParameters: TDXPowerFontEffectsParameters read FEffectsParameters write SetEffectsParameters; |
public |
Offset: Integer; |
constructor Create(AOwner: TComponent); override; |
destructor Destroy; override; |
function TextOut(DirectDrawSurface: TDirectDrawSurface; X, Y: Integer; const Text: string): Boolean; |
function TextOutFast(DirectDrawSurface: TDirectDrawSurface; X, Y: Integer; const Text: string): Boolean; |
end; |
{D2D unit for pure HW support |
* Copyright (c) 2004-2010 Jaro Benes |
* All Rights Reserved |
* Version 1.09 |
* D2D Hardware module - interface part |
* web site: www.micrel.cz/Dx |
* e-mail: delphix_d2d@micrel.cz |
} |
{supported texture vertex as substitute type from DirectX} |
{TD2D4Vertex - used with D2DTexturedOn} |
TD2D4Vertex = array[0..3] of TD3DTLVERTEX; |
{TD2DTextures - texture storage used with Direct3D} |
TTextureRec = packed record |
{$IFDEF VIDEOTEX} |
VDIB: TDIB; |
{$ENDIF} |
D2DTexture: TDirect3DTexture2; |
FloatX1, FloatY1, FloatX2, FloatY2: Double; //uschov vyrez |
Name: string{$IFNDEF VER4UP} [255]{$ENDIF}; //jmeno obrazku pro snadne dohledani |
Width, Height: Integer; |
AlphaChannel: Boolean; //.06c |
end; |
PTextureRec = ^TTextureRec; |
TTextureArr = array{$IFNDEF VER4UP} [0..0]{$ENDIF} of TTextureRec; |
{$IFNDEF VER4UP} |
PTextureArr = ^TTextureArr; |
EMaxTexturesError = class(Exception); |
{$ENDIF} |
TD2DTextures = class |
private |
FDDraw: TCustomDXDraw; |
{$IFNDEF VER4UP} |
TexLen: Integer; |
Texture: PTextureArr; |
{$ELSE} |
Texture: TTextureArr; |
{$ENDIF} |
function GetD2DMaxTextures: Integer; |
procedure SetD2DMaxTextures(const Value: Integer); |
procedure D2DPruneTextures; |
procedure D2DPruneAllTextures; |
procedure SizeAdjust(var DIB: TDIB; var FloatX1, FloatY1, FloatX2, |
FloatY2: Double); |
function SetTransparentColor(dds: TDirectDrawSurface; PixelColor: Integer; |
Transparent: Boolean): Integer; |
{$IFDEF VIDEOTEX} |
function GetTexLayoutByName(name: string): TDIB; |
{$ENDIF} |
procedure SaveTextures(path: string); |
public |
constructor Create(DDraw: TCustomDXDraw); |
destructor Destroy; override; |
procedure D2DFreeTextures; |
function Find(byName: string): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
function GetTextureByName(const byName: string): TDirect3DTexture2; |
function GetTextureByIndex(const byIndex: Integer): TDirect3DTexture2; |
function GetTextureNameByIndex(const byIndex: Integer): string; |
function Count: Integer; |
{functions support loading image or DDS} |
{$IFDEF VER4UP} |
function CanFindTexture(aImage: TPictureCollectionItem): Boolean; overload; {$IFDEF VER9UP}inline;{$ENDIF} |
function CanFindTexture(const TexName: string): Boolean; overload; {$IFDEF VER9UP}inline;{$ENDIF} |
function CanFindTexture(const Color: LongInt): Boolean; overload;{$IFDEF VER9UP}inline;{$ENDIF} |
function LoadTextures(aImage: TPictureCollectionItem): Boolean; overload; {$IFDEF VER9UP}inline;{$ENDIF} |
function LoadTextures(dds: TDirectDrawSurface; Transparent: Boolean; asTexName: string): Boolean; overload; |
function LoadTextures(dds: TDirectDrawSurface; Transparent: Boolean; TransparentColor: Integer; asTexName: string): Boolean; overload; |
function LoadTextures(Color: Integer): Boolean; overload; |
{$ELSE} |
function CanFindTexture(aImage: TPictureCollectionItem): Boolean; |
function CanFindTexture2(const TexName: string): Boolean; |
function CanFindTexture3(const Color: LongInt): Boolean; |
function LoadTextures(aImage: TPictureCollectionItem): Boolean; |
function LoadTextures2(dds: TDirectDrawSurface; Transparent: Boolean; asTexName: string): Boolean; |
function LoadTextures3(dds: TDirectDrawSurface; Transparent: Boolean; TransparentColor: Integer; asTexName: string): Boolean; |
function LoadTextures4(Color: Integer): Boolean; |
{$ENDIF} |
{$IFDEF VIDEOTEX} |
property TexLayoutByName[name: string]: TDIB read GetTexLayoutByName; |
{$ENDIF} |
//published |
property D2DMaxTextures: Integer read GetD2DMaxTextures write SetD2DMaxTextures; |
end; |
{Main component for HW support} |
TD2D = class |
private |
FDDraw: TCustomDXDraw; |
FCanUseD2D: Boolean; |
FBitCount: Integer; |
FMirrorFlipSet: TRenderMirrorFlipSet; |
FD2DTextureFilter: TD2DTextureFilter; |
FD2DAntialiasFilter: TD3DAntialiasMode; |
FVertex: TD2D4Vertex; |
FD2DTexture: TD2DTextures; |
FDIB: TDIB; |
FD3DDevDesc7: TD3DDeviceDesc7; |
FInitialized: Boolean; |
{ukazuje pocet textur} |
procedure D2DUpdateTextures; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure SetCanUseD2D(const Value: Boolean); |
function GetCanUseD2D: Boolean; |
{create the component} |
constructor Create(DDraw: TCustomDXDraw); |
procedure SetD2DTextureFilter(const Value: TD2DTextureFilter); |
procedure SetD2DAntialiasFilter(const Value: TD3DAntialiasMode); |
procedure D2DEffectSolid; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DEffectAdd; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DEffectSub; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DEffectBlend; {$IFDEF VER9UP}inline;{$ENDIF}// used with alpha |
{verticies} |
procedure InitVertex; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DWhite: Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DVertColor(RenderType: TRenderType; Alpha: Byte): DWORD; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DColoredVertex(C: Integer); {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DAlphaVertex(Alpha: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DSpecularVertex(C: Integer); {$IFDEF VER9UP}inline;{$ENDIF} |
{Fade used with Add and Sub} |
function D2DFade(Alpha: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DFadeColored(C, Alpha: Integer); {$IFDEF VER9UP}inline;{$ENDIF} |
function RenderQuad: Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DRect(R: TRect); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DTU(T: TTextureRec); {$IFDEF VER9UP}inline;{$ENDIF} |
{low lever version texturing for DDS} |
function D2DTexturedOnDDSTex(dds: TDirectDrawSurface; SubPatternRect: TRect; |
Transparent: Boolean): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
{texturing} |
function D2DTexturedOn(Image: TPictureCollectionItem; Pattern: Integer; SubPatternRect: TRect; RenderType: TRenderType; Alpha: Byte): Boolean; |
function D2DTexturedOnDDS(dds: TDirectDrawSurface; SubPatternRect: TRect; Transparent: Boolean; RenderType: TRenderType; Alpha: Byte): Boolean; |
function D2DTexturedOnRect(Rect: TRect; Color: Integer): Boolean; |
function D2DTexturedOnSubRect(Image: TPictureCollectionItem; Pattern: Integer; SubPatternRect, SubRect: TRect; RenderType: TRenderType; Alpha: Byte): Boolean; |
{low level for rotate mesh} |
procedure D2DRotate(X, Y, W, H: Integer; Px, Py: Double; Angle: single); |
{low lever routine for mesh mapping} |
function D2DMeshMapToWave(dds: TDirectDrawSurface; Transparent: Boolean; |
TransparentColor: Integer; X, Y, iWidth, iHeight, PatternIndex: Integer; |
PatternRect: TRect; |
Amp, Len, Ph, Alpha: Integer; |
Effect: TRenderType; DoY: Boolean{$IFDEF VER4UP} = False{$ENDIF}): Boolean; |
property D2DTextures: TD2DTextures read FD2DTexture; |
public |
//added to public |
procedure D2DColAlpha(C, Alpha: Integer); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DCol4Alpha(C1, C2, C3, C4, Alpha: Integer); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DFade4Colored(C1, C2, C3, C4, Alpha: Integer); {$IFDEF VER9UP}inline;{$ENDIF} |
function RenderTri: Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure D2DMeshMapToRect(R: TRect); |
// |
{destruction textures and supported objects here} |
destructor Destroy; override; |
{use before starting rendering} |
procedure BeginScene; |
{use after all images have been rendered} |
procedure EndScene; |
{set directly of texture filter} |
property TextureFilter: TD2DTextureFilter write SetD2DTextureFilter; |
property AntialiasFilter: TD3DAntialiasMode write SetD2DAntialiasFilter; |
{indicate using of this object} |
property CanUseD2D: Boolean read GetCanUseD2D write SetCanUseD2D; |
{set property mirror-flip} |
property MirrorFlip: TRenderMirrorFlipSet read FMirrorFlipSet write FMirrorFlipSet; |
{initialize surface} |
function D2DInitializeSurface: Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
{Render routines} |
function D2DRender(Image: TPictureCollectionItem; DestRect: TRect; |
Pattern: Integer; SourceRect: TRect; RenderType: TRenderType; Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean;{$IFDEF VER4UP} overload; {$ENDIF}{$IFDEF VER9UP}inline;{$ENDIF} |
function {$IFDEF VER4UP}D2DRender{$ELSE}D2DRender2{$ENDIF}(Image: TPictureCollectionItem; R: TRect; |
Pattern: Integer; RenderType: TRenderType; Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER4UP} overload; {$ENDIF}{$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderDDS(Source: TDirectDrawSurface; SourceRect, DestRect: TRect; Transparent: Boolean; |
Pattern: Integer; RenderType: TRenderType; Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderCol(Image: TPictureCollectionItem; R: TRect; |
Pattern, Color: Integer; RenderType: TRenderType; Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderColDDS(Source: TDirectDrawSurface; SourceRect, DestRect: TRect; |
Transparent: Boolean; Pattern, Color: Integer; RenderType: |
TRenderType; Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderDrawDDSXY(Source: TDirectDrawSurface; X, Y: Integer; |
Transparent: Boolean; Pattern: Integer; RenderType: TRenderType; Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; |
{$IFDEF VER4UP} overload; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderDrawDDSXY(Source: TDirectDrawSurface; X, Y: Integer; |
SrcRect: TRect; Transparent: Boolean; Pattern: Integer; RenderType: TRenderType; Alpha: Byte{$IFDEF Ver4UP} = 255{$ENDIF}): Boolean; overload; {$IFDEF VER9UP}inline;{$ENDIF} |
{$ENDIF} |
function D2DRenderDrawXY(Image: TPictureCollectionItem; X, Y: Integer; |
Pattern: Integer; RenderType: TRenderType; Alpha: Byte{$IFDEF VEr4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
{Rotate} |
function D2DRenderRotate(Image: TPictureCollectionItem; RotX, RotY, |
PictWidth, PictHeight, PatternIndex: Integer; RenderType: TRenderType; |
CenterX, CenterY: Double; Angle: single; Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderRotateDDS(Image: TDirectDrawSurface; SourceRect: TRect; RotX, RotY, |
PictWidth, PictHeight: Integer; RenderType: TRenderType; |
CenterX, CenterY: Double; Angle: single; Alpha: Byte; |
Transparent: Boolean): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderRotateModeCol(Image: TPictureCollectionItem; RenderType: TRenderType; RotX, RotY, |
PictWidth, PictHeight, PatternIndex: Integer; CenterX, CenterY: Double; |
Angle: single; Color: Integer; Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderRotateModeColDDS(Image: TDirectDrawSurface; |
RotX, RotY, PictWidth, PictHeight: Integer; RenderType: TRenderType; |
CenterX, CenterY: Double; Angle: Single; Color: Integer; Alpha: Byte; |
Transparent: Boolean): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
{WaveX} |
function D2DRenderWaveX(Image: TPictureCollectionItem; X, Y, Width, Height, |
PatternIndex: Integer; RenderType: TRenderType; Transparent: Boolean; |
Amp, Len, Ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderWaveXDDS(Source: TDirectDrawSurface; X, Y, Width, |
Height: Integer; RenderType: TRenderType; Transparent: Boolean; |
Amp, Len, Ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
{WaveY} |
function D2DRenderWaveY(Image: TPictureCollectionItem; X, Y, Width, Height, |
PatternIndex: Integer; RenderType: TRenderType; Transparent: Boolean; |
Amp, Len, Ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function D2DRenderWaveYDDS(Source: TDirectDrawSurface; X, Y, Width, |
Height: Integer; RenderType: TRenderType; Transparent: Boolean; |
Amp, Len, Ph: Integer; Alpha: Integer{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
{Rect} |
function D2DRenderFillRect(Rect: TRect; RGBColor: LongInt; |
RenderType: TRenderType; Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
{addmod} |
function D2DRenderColoredPartition(Image: TPictureCollectionItem; DestRect: TRect; PatternIndex, |
Color, Specular: Integer; Faded: Boolean; |
SourceRect: TRect; |
RenderType: TRenderType; |
Alpha: Byte{$IFDEF VER4UP} = 255{$ENDIF}): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure SaveTextures(path: string); |
end; |
{ Support functions for texturing } |
function dxtMakeChannel(Mask: DWORD; indexed: Boolean): TDXTextureImageChannel; |
function dxtEncodeChannel(const Channel: TDXTextureImageChannel; c: DWORD): DWORD; |
function dxtDecodeChannel(const Channel: TDXTextureImageChannel; c: DWORD): DWORD; |
{ Single support routine for convert DIB32 to DXT in one line } |
procedure dib2dxt(DIBImage: TDIB; out DXTImage: TDXTextureImage{$IFDEF DXTextureImage_UseZLIB}; const Shrink: Boolean = True{$ENDIF}); |
{ One line call drawing with attributes } |
{$IFDEF VER4UP} |
procedure DXDraw_Draw(DXDraw: TCustomDXDraw; Image: TPictureCollectionItem; |
Rect: TRect; Pattern: Integer; TextureFilter: TD2DTextureFilter = D2D_POINT; |
MirrorFlip: TRenderMirrorFlipSet = []; |
BlendMode: TRenderType = rtDraw; Angle: Single = 0; Alpha: Byte = 255; |
CenterX: Double = 0.5; CenterY: Double = 0.5; |
Scale: Single = 1.0); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure DXDraw_Paint(DXDraw: TCustomDXDraw; Image: TPictureCollectionItem; |
Rect: TRect; Pattern: Integer; var BlurImageArr: TBlurImageArr; BlurImage: Boolean = False; |
TextureFilter: TD2DTextureFilter = D2D_POINT; |
MirrorFlip: TRenderMirrorFlipSet = []; |
BlendMode: TRenderType = rtDraw; |
Angle: Single = 0; |
Alpha: Byte = 255; |
CenterX: Double = 0.5; CenterY: Double = 0.5); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure DXDraw_Render(DXDraw: TCustomDXDraw; Image: TPictureCollectionItem; |
Rect: TRect; Pattern: Integer; var BlurImageArr: TBlurImageArr; BlurImage: Boolean = False; |
TextureFilter: TD2DTextureFilter = D2D_POINT; |
MirrorFlip: TRenderMirrorFlipSet = []; |
BlendMode: TRenderType = rtDraw; |
Angle: Single = 0; |
Alpha: Byte = 255; |
CenterX: Double = 0.5; CenterY: Double = 0.5; |
Scale: Single = 1.0; |
WaveType: TWaveType = wtWaveNone; |
Amplitude: Integer = 0; AmpLength: Integer = 0; Phase: Integer = 0); {$IFDEF VER9UP}inline;{$ENDIF} |
{$ELSE} |
procedure DXDraw_Draw(DXDraw: TCustomDXDraw; Image: TPictureCollectionItem; |
Rect: TRect; Pattern: Integer; TextureFilter: TD2DTextureFilter; |
MirrorFlip: TRenderMirrorFlipSet; |
BlendMode: TRenderType; Angle: Single; Alpha: Byte; |
CenterX: Double; CenterY: Double; |
Scale: Single); |
procedure DXDraw_Paint(DXDraw: TCustomDXDraw; Image: TPictureCollectionItem; |
Rect: TRect; Pattern: Integer; var BlurImageArr: TBlurImageArr; BlurImage: Boolean; |
TextureFilter: TD2DTextureFilter; |
MirrorFlip: TRenderMirrorFlipSet; |
BlendMode: TRenderType; |
Angle: Single; |
Alpha: Byte; |
CenterX: Double; CenterY: Double); |
procedure DXDraw_Render(DXDraw: TCustomDXDraw; Image: TPictureCollectionItem; |
Rect: TRect; Pattern: Integer; var BlurImageArr: TBlurImageArr; BlurImage: Boolean; |
TextureFilter: TD2DTextureFilter; |
MirrorFlip: TRenderMirrorFlipSet; |
BlendMode: TRenderType; |
Angle: Single; |
Alpha: Byte; |
CenterX: Double; CenterY: Double; |
Scale: Single; |
WaveType: TWaveType; |
Amplitude: Integer; AmpLength: Integer; Phase: Integer); |
{$ENDIF} |
implementation |
uses DXConsts, DXRender; |
uses DXConsts{$IFDEF DXR_deprecated}, DXRender{$ENDIF}, D3DUtils; |
function DXDirectDrawEnumerate(lpCallback: TDDEnumCallbackA; |
function DXDirectDrawEnumerate(lpCallback: {$IFDEF UNICODE}TDDEnumCallbackW{$ELSE}TDDEnumCallbackA{$ENDIF}; |
lpContext: Pointer): HRESULT; |
type |
TDirectDrawEnumerate = function(lpCallback: TDDEnumCallbackA; |
TDirectDrawEnumerate = function(lpCallback: {$IFDEF UNICODE}TDDEnumCallbackW{$ELSE}TDDEnumCallbackA{$ENDIF}; |
lpContext: Pointer): HRESULT; stdcall; |
begin |
Result := TDirectDrawEnumerate(DXLoadLibrary('DDraw.dll', 'DirectDrawEnumerateA')) |
Result := TDirectDrawEnumerate(DXLoadLibrary('DDraw.dll', {$IFDEF UNICODE}'DirectDrawEnumerateW'{$ELSE}'DirectDrawEnumerateA'{$ENDIF})) |
(lpCallback, lpContext); |
end; |
var |
DirectDrawDrivers: TDirectXDrivers; |
{$IFDEF _DMO_}DirectDrawDriversEx: TDirectXDriversEx;{$ENDIF} |
D2D: TD2D = nil; {for internal use only, } |
RenderError: Boolean = false; |
function EnumDirectDrawDrivers: TDirectXDrivers; |
function DDENUMCALLBACK(lpGuid: PGUID; lpstrDescription: LPCSTR; |
lpstrModule: LPCSTR; lpContext: Pointer): BOOL; stdcall; |
function DDENUMCALLBACK(lpGuid: PGUID; lpstrDescription: {$IFDEF UNICODE}LPCTSTR{$ELSE}LPCSTR{$ENDIF}; |
lpstrModule: {$IFDEF UNICODE}LPCTSTR{$ELSE}LPCSTR{$ENDIF}; lpContext: Pointer): BOOL; stdcall; |
begin |
Result := True; |
with TDirectXDriver.Create(TDirectXDrivers(lpContext)) do |
946,6 → 2385,45 |
Result := DirectDrawDrivers; |
end; |
{$IFDEF _DMO_} |
function EnumDirectDrawDriversEx: TDirectXDriversEx; |
function DDENUMCALLBACKEX(lpGuid: PGUID; lpstrDescription: {$IFDEF UNICODE}LPCTSTR{$ELSE}LPCSTR{$ENDIF}; |
lpDriverName: {$IFDEF UNICODE}LPCTSTR{$ELSE}LPCSTR{$ENDIF}; lpContext: Pointer; iMonitor: HMonitor): BOOL; stdcall; |
var |
X: TDirectXDriverEx; |
begin |
Result := True; |
X := TDirectXDriverEx(DirectDrawDriversEx.Add); |
with X do |
begin |
Guid := lpGuid; |
Description := lpstrDescription; |
Monitor := iMonitor; |
DriverName := lpDriverName; |
//GetPhysicalMonitorsFromHMONITOR() |
end; |
end; |
//var |
// DevMode: TDeviceMode; |
begin |
if DirectDrawDriversEx = nil then DirectDrawDriversEx := TDirectXDriversEx.Create; |
if Assigned(DirectDrawDriversEx) then |
begin |
//FMonitors.Clear; |
try |
//FillChar(DevMode, SizeOf(TDeviceMode), 0); |
if DirectDrawEnumerateEx(@DDENUMCALLBACKEX, nil{DeviceContext}, DDENUM_ATTACHEDSECONDARYDEVICES or DDENUM_DETACHEDSECONDARYDEVICES or DDENUM_NONDISPLAYDEVICES) = DD_OK then; |
except |
DirectDrawDriversEx.Free; DirectDrawDriversEx := nil; |
raise; |
end; |
end; |
Result := DirectDrawDriversEx; |
end; |
{$ENDIF} |
function ClipRect(var DestRect: TRect; const DestRect2: TRect): Boolean; |
begin |
with DestRect do |
1033,11 → 2511,13 |
FPalettes := TList.Create; |
FSurfaces := TList.Create; |
{$IFDEF D3D_deprecated} |
if DirectX7Mode then |
begin |
begin {$ENDIF} |
{ DirectX 7 } |
if TDirectDrawCreateEx(DXLoadLibrary('DDraw.dll', 'DirectDrawCreateEx')) (GUID, FIDDraw7, IID_IDirectDraw7, nil)<>DD_OK then |
raise EDirectDrawError.CreateFmt(SCannotInitialized, [SDirectDraw]); |
{$IFDEF D3D_deprecated} |
try |
FIDDraw := FIDDraw7 as IDirectDraw; |
FIDDraw4 := FIDDraw7 as IDirectDraw4; |
1044,7 → 2524,8 |
except |
raise EDirectDrawError.Create(SSinceDirectX7); |
end; |
end else |
{$ENDIF} |
{$IFDEF D3D_deprecated}end else |
begin |
if TDirectDrawCreate(DXLoadLibrary('DDraw.dll', 'DirectDrawCreate')) (GUID, FIDDraw, nil)<>DD_OK then |
raise EDirectDrawError.CreateFmt(SCannotInitialized, [SDirectDraw]); |
1053,11 → 2534,11 |
except |
raise EDirectDrawError.Create(SSinceDirectX6); |
end; |
end; |
end;{$ENDIF} |
FDriverCaps.dwSize := SizeOf(FDriverCaps); |
FHELCaps.dwSize := SizeOf(FHELCaps); |
FIDDraw.GetCaps(FDriverCaps, FHELCaps); |
{$IFDEF D3D_deprecated}FIDDraw{$ELSE}FIDDraw7{$ENDIF}.GetCaps(@FDriverCaps, @FHELCaps); |
end; |
destructor TDirectDraw.Destroy; |
1082,6 → 2563,13 |
Result := EnumDirectDrawDrivers; |
end; |
{$IFDEF _DMO_} |
class function TDirectDraw.DriversEx: TDirectXDriversEx; |
begin |
Result := EnumDirectDrawDriversEx; |
end; |
{$ENDIF} |
function TDirectDraw.GetClipper(Index: Integer): TDirectDrawClipper; |
begin |
Result := FClippers[Index]; |
1092,14 → 2580,14 |
Result := FClippers.Count; |
end; |
function TDirectDraw.GetDisplayMode: TDDSurfaceDesc; |
function TDirectDraw.GetDisplayMode: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
begin |
Result.dwSize := SizeOf(Result); |
DXResult := IDraw.GetDisplayMode(Result); |
DXResult := {$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.GetDisplayMode(Result); |
if DXResult<>DD_OK then |
FillChar(Result, SizeOf(Result), 0); |
end; |
{$IFDEF D3D_deprecated} |
function TDirectDraw.GetIDDraw: IDirectDraw; |
begin |
if Self<>nil then |
1115,7 → 2603,7 |
else |
Result := nil; |
end; |
{$ENDIF} |
function TDirectDraw.GetIDDraw7: IDirectDraw7; |
begin |
if Self<>nil then |
1123,7 → 2611,7 |
else |
Result := nil; |
end; |
{$IFDEF D3D_deprecated} |
function TDirectDraw.GetIDraw: IDirectDraw; |
begin |
Result := IDDraw; |
1137,7 → 2625,7 |
if Result=nil then |
raise EDirectDrawError.CreateFmt(SNotMade, ['IDirectDraw4']); |
end; |
{$ENDIF} |
function TDirectDraw.GetIDraw7: IDirectDraw7; |
begin |
Result := IDDraw7; |
1186,7 → 2674,7 |
begin |
IDDPalette := nil; |
FDDraw.DXResult := FDDraw.IDraw.CreatePalette(Caps, @Entries, TempPalette, nil); |
FDDraw.DXResult := FDDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.CreatePalette(Caps, @Entries, TempPalette, nil); |
FDXResult := FDDraw.DXResult; |
Result := FDDraw.DXResult=DD_OK; |
if Result then |
1288,7 → 2776,7 |
FDDraw := ADirectDraw; |
FDDraw.FClippers.Add(Self); |
FDDraw.DXResult := FDDraw.IDraw.CreateClipper(0, FIDDClipper, nil); |
FDDraw.DXResult := FDDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.CreateClipper(0, FIDDClipper, nil); |
if FDDraw.DXResult<>DD_OK then |
raise EDirectDrawClipperError.CreateFmt(SCannotMade, [SDirectDrawClipper]); |
end; |
1381,7 → 2869,7 |
procedure TDirectDrawSurfaceCanvas.CreateHandle; |
begin |
FSurface.DXResult := FSurface.ISurface.GetDC(FDC); |
FSurface.DXResult := FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetDC(FDC); |
if FSurface.DXResult=DD_OK then |
Handle := FDC; |
end; |
1388,10 → 2876,10 |
procedure TDirectDrawSurfaceCanvas.Release; |
begin |
if (FSurface.IDDSurface<>nil) and (FDC<>0) then |
if (FSurface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil) and (FDC <> 0) then |
begin |
Handle := 0; |
FSurface.IDDSurface.ReleaseDC(FDC); |
FSurface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF}.ReleaseDC(FDC); |
FDC := 0; |
end; |
end; |
1403,16 → 2891,18 |
inherited Create; |
FDDraw := ADirectDraw; |
FDDraw.FSurfaces.Add(Self); |
DIB_COLMATCH := TDIB.Create; |
end; |
destructor TDirectDrawSurface.Destroy; |
begin |
DIB_COLMATCH.Free; |
FCanvas.Free; |
IDDSurface := nil; |
{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := nil; |
FDDraw.FSurfaces.Remove(Self); |
inherited Destroy; |
end; |
{$IFDEF D3D_deprecated} |
function TDirectDrawSurface.GetIDDSurface: IDirectDrawSurface; |
begin |
if Self<>nil then |
1428,7 → 2918,7 |
else |
Result := nil; |
end; |
{$ENDIF} |
function TDirectDrawSurface.GetIDDSurface7: IDirectDrawSurface7; |
begin |
if Self<>nil then |
1436,7 → 2926,7 |
else |
Result := nil; |
end; |
{$IFDEF D3D_deprecated} |
function TDirectDrawSurface.GetISurface: IDirectDrawSurface; |
begin |
Result := IDDSurface; |
1450,7 → 2940,7 |
if Result=nil then |
raise EDirectDrawSurfaceError.CreateFmt(SNotMade, ['IDirectDrawSurface4']); |
end; |
{$ENDIF} |
function TDirectDrawSurface.GetISurface7: IDirectDrawSurface7; |
begin |
Result := IDDSurface7; |
1457,7 → 2947,7 |
if Result=nil then |
raise EDirectDrawSurfaceError.CreateFmt(SNotMade, ['IDirectDrawSurface7']); |
end; |
{$IFDEF D3D_deprecated} |
procedure TDirectDrawSurface.SetIDDSurface(Value: IDirectDrawSurface); |
var |
Clipper: IDirectDrawClipper; |
1498,21 → 2988,50 |
else |
SetIDDSurface(Value as IDirectDrawSurface); |
end; |
{$ENDIF} |
procedure TDirectDrawSurface.SetIDDSurface7(Value: IDirectDrawSurface7); |
{$IFNDEF D3D_deprecated} |
var |
Clipper: IDirectDrawClipper; |
{$ENDIF} |
begin |
{$IFDEF D3D_deprecated} |
if Value=nil then |
SetIDDSurface(nil) |
else |
SetIDDSurface(Value as IDirectDrawSurface); |
{$ELSE} |
if Value = nil then Exit; |
if Value as IDirectDrawSurface7 = FIDDSurface7 then Exit; |
FIDDSurface7 := nil; |
FStretchDrawClipper := nil; |
FGammaControl := nil; |
FHasClipper := False; |
FLockCount := 0; |
FillChar(FSurfaceDesc, SizeOf(FSurfaceDesc), 0); |
if Value <> nil then |
begin |
if FDDraw.FIDDraw7 <> nil then FIDDSurface7 := Value as IDirectDrawSurface7; |
FHasClipper := (FIDDSurface7.GetClipper(Clipper) = DD_OK) and (Clipper <> nil); |
FSurfaceDesc.dwSize := SizeOf(FSurfaceDesc); |
{$IFDEF D3D_deprecated}FIDDSurface{$ELSE}FIDDSurface7{$ENDIF}.GetSurfaceDesc(FSurfaceDesc); |
if FDDraw.DriverCaps.dwCaps2 and DDCAPS2_PRIMARYGAMMA <> 0 then |
{$IFDEF D3D_deprecated}FIDDSurface{$ELSE}FIDDSurface7{$ENDIF}.QueryInterface(IID_IDirectDrawGammaControl, FGammaControl); |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.Assign(Source: TPersistent); |
var |
TempSurface: IDirectDrawSurface; |
TempSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface{$ELSE}IDirectDrawSurface7{$ENDIF}; |
begin |
if Source=nil then |
IDDSurface := nil |
{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := nil |
else if Source is TGraphic then |
LoadFromGraphic(TGraphic(Source)) |
else if Source is TPicture then |
1519,14 → 3038,14 |
LoadFromGraphic(TPicture(Source).Graphic) |
else if Source is TDirectDrawSurface then |
begin |
if TDirectDrawSurface(Source).IDDSurface=nil then |
IDDSurface := nil |
if TDirectDrawSurface(Source).{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} = nil then |
{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := nil |
else begin |
FDDraw.DXResult := FDDraw.IDraw.DuplicateSurface(TDirectDrawSurface(Source).IDDSurface, |
FDDraw.DXResult := FDDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.DuplicateSurface(TDirectDrawSurface(Source).{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF}, |
TempSurface); |
if FDDraw.DXResult=0 then |
begin |
IDDSurface := TempSurface; |
{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := TempSurface; |
end; |
end; |
end else |
1535,11 → 3054,31 |
procedure TDirectDrawSurface.AssignTo(Dest: TPersistent); |
begin |
if Dest is TBitmap then |
begin |
try |
TBitmap(Dest).PixelFormat := pf24bit; |
if BitCount >= 24 then {please accept the Alphachannel too} |
TBitmap(Dest).PixelFormat := pf32bit; |
TBitmap(Dest).Width := Width; |
TBitmap(Dest).Height := Height; |
TBitmap(Dest).Canvas.CopyRect(Rect(0, 0, TBitmap(Dest).Width, TBitmap(Dest).Height), Canvas, ClientRect); |
finally |
Canvas.Release; |
end |
end |
else |
if Dest is TDIB then |
begin |
try |
if BitCount >= 24 then {please accept the Alphachannel too} |
TDIB(Dest).SetSize(Width, Height, BitCount) |
else |
TDIB(Dest).SetSize(Width, Height, 24); |
TDIB(Dest).Canvas.CopyRect(Rect(0, 0, TDIB(Dest).Width, TDIB(Dest).Height), Canvas, ClientRect); |
finally |
Canvas.Release; |
end |
end else |
inherited AssignTo(Dest); |
end; |
1547,9 → 3086,9 |
function TDirectDrawSurface.Blt(const DestRect, SrcRect: TRect; Flags: DWORD; |
const DF: TDDBltFX; Source: TDirectDrawSurface): Boolean; |
begin |
if IDDSurface<>nil then |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
begin |
DXResult := ISurface.Blt(DestRect, Source.IDDSurface, SrcRect, DWORD(Flags), DF); |
DXResult := {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF}.Blt(@DestRect, Source.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF}, @SrcRect, DWORD(Flags), @DF); |
Result := DXResult=DD_OK; |
end else |
Result := False; |
1558,9 → 3097,9 |
function TDirectDrawSurface.BltFast(X, Y: Integer; const SrcRect: TRect; |
Flags: DWORD; Source: TDirectDrawSurface): Boolean; |
begin |
if IDDSurface<>nil then |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
begin |
DXResult := ISurface.BltFast(X, Y, Source.IDDSurface, SrcRect, DWORD(Flags)); |
DXResult := {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF}.BltFast(X, Y, Source.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF}, @SrcRect, DWORD(Flags)); |
Result := DXResult=DD_OK; |
end else |
Result := False; |
1568,29 → 3107,25 |
function TDirectDrawSurface.ColorMatch(Col: TColor): Integer; |
var |
DIB: TDIB; |
i, oldc: Integer; |
begin |
if IDDSurface<>nil then |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
begin |
oldc := Pixels[0, 0]; |
DIB := TDIB.Create; |
try |
i := ColorToRGB(Col); |
DIB.SetSize(1, 1, 8); |
DIB.ColorTable[0] := RGBQuad(GetRValue(i), GetGValue(i), GetBValue(i)); |
DIB.UpdatePalette; |
DIB.Pixels[0, 0] := 0; |
DIB_COLMATCH.SetSize(1, 1, 8); |
DIB_COLMATCH.ColorTable[0] := RGBQuad(GetRValue(i), GetGValue(i), GetBValue(i)); |
DIB_COLMATCH.UpdatePalette; |
DIB_COLMATCH.Pixels[0, 0] := 0; |
with Canvas do |
begin |
Draw(0, 0, DIB); |
try |
Draw(0, 0, DIB_COLMATCH); |
finally |
Release; |
end; |
finally |
DIB.Free; |
end; |
Result := Pixels[0, 0]; |
Pixels[0, 0] := oldc; |
end else |
1597,7 → 3132,8 |
Result := 0; |
end; |
function TDirectDrawSurface.CreateSurface(const SurfaceDesc: TDDSurfaceDesc): Boolean; |
{$IFDEF D3D_deprecated} |
function TDirectDrawSurface.CreateSurface(SurfaceDesc: TDDSurfaceDesc): Boolean; |
var |
TempSurface: IDirectDrawSurface; |
begin |
1612,19 → 3148,19 |
TransparentColor := 0; |
end; |
end; |
{$IFDEF DelphiX_Spt4} |
function TDirectDrawSurface.CreateSurface(const SurfaceDesc: TDDSurfaceDesc2): Boolean; |
{$ENDIF} |
{$IFDEF VER4UP} |
function TDirectDrawSurface.CreateSurface(SurfaceDesc: TDDSurfaceDesc2): Boolean; |
var |
TempSurface4: IDirectDrawSurface4; |
TempSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface4{$ELSE}IDirectDrawSurface7{$ENDIF}; |
begin |
IDDSurface := nil; |
FDDraw.DXResult := FDDraw.IDraw4.CreateSurface(SurfaceDesc, TempSurface4, nil); |
{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := nil; |
FDDraw.DXResult := FDDraw.{$IFDEF D3D_deprecated}IDraw4{$ELSE}IDraw7{$ENDIF}.CreateSurface(SurfaceDesc, TempSurface, nil); |
FDXResult := FDDraw.DXResult; |
Result := FDDraw.DXResult=DD_OK; |
if Result then |
begin |
IDDSurface4 := TempSurface4; |
{$IFDEF D3D_deprecated}IDDSurface4{$ELSE}IDDSurface7{$ENDIF} := TempSurface; |
TransparentColor := 0; |
end; |
end; |
1637,16 → 3173,27 |
(DDBLTFAST_NOCOLORKEY or DDBLTFAST_WAIT, DDBLTFAST_SRCCOLORKEY or DDBLTFAST_WAIT); |
BltFlags: array[Boolean] of Integer = |
(DDBLT_WAIT, DDBLT_KEYSRC or DDBLT_WAIT); |
var |
{$IFDEF DXR_deprecated}var |
DestRect: TRect; |
DF: TDDBltFX; |
Clipper: IDirectDrawClipper; |
i: Integer; |
i: Integer;{$ENDIF} |
begin |
if Source<>nil then |
begin |
if (X>Width) or (Y>Height) then Exit; |
{$IFDEF DrawHWAcc} |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then |
begin |
{$IFDEF VER4UP} |
D2D.D2DRenderDrawDDSXY(Source, X, Y, SrcRect, Transparent, 0, rtDraw{$IFNDEF VER4UP}, $FF{$ENDIF}); |
{$ELSE} |
D2D.D2DRenderDDS(Source, SrcRect, Bounds(X, Y, SrcRect.Right - SrcRect.Left, SrcRect.Bottom - SrcRect.Top), Transparent, 0, rtDraw, $FF); |
{$ENDIF} |
Exit; |
end; |
{$ENDIF DrawHWAcc} |
{$IFDEF DXR_deprecated} |
if (SrcRect.Left>SrcRect.Right) or (SrcRect.Top>SrcRect.Bottom) then |
begin |
{ Mirror } |
1706,7 → 3253,7 |
BltFast(DestRect.Left, DestRect.Top, SrcRect, BltFastFlags[Transparent], Source); |
if DXResult=DDERR_BLTFASTCANTCLIP then |
begin |
ISurface.GetClipper(Clipper); |
{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetClipper(Clipper); |
if Clipper<>nil then FHasClipper := True; |
DF.dwsize := SizeOf(DF); |
1716,10 → 3263,11 |
end; |
end; |
end; |
{$ENDIF} |
end; |
end; |
{$IFDEF DelphiX_Spt4} |
{$IFDEF VER4UP} |
procedure TDirectDrawSurface.Draw(X, Y: Integer; Source: TDirectDrawSurface; Transparent: Boolean); |
const |
BltFastFlags: array[Boolean] of Integer = |
1728,14 → 3276,20 |
(DDBLT_WAIT, DDBLT_KEYSRC or DDBLT_WAIT); |
var |
DestRect, SrcRect: TRect; |
DF: TDDBltFX; |
Clipper: IDirectDrawClipper; |
{$IFDEF DXR_deprecated}DF: TDDBltFX; |
Clipper: IDirectDrawClipper;{$ENDIF} |
begin |
if Source<>nil then |
begin |
SrcRect := Source.ClientRect; |
DestRect := Bounds(X, Y, Source.Width, Source.Height); |
{$IFDEF DrawHWAcc} |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderDDS(Source, ZeroRect, DestRect, Transparent, 0, rtDraw{$IFNDEF VER4UP}, $FF{$ENDIF}); |
Exit; |
end; |
{$ENDIF DrawHWAcc} |
{$IFDEF DXR_deprecated} |
if ClipRect2(DestRect, SrcRect, ClientRect, Source.ClientRect) then |
begin |
if FHasClipper then |
1748,7 → 3302,7 |
BltFast(DestRect.Left, DestRect.Top, SrcRect, BltFastFlags[Transparent], Source); |
if DXResult=DDERR_BLTFASTCANTCLIP then |
begin |
ISurface.GetClipper(Clipper); |
{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetClipper(Clipper); |
if Clipper<>nil then FHasClipper := True; |
DF.dwsize := SizeOf(DF); |
1757,6 → 3311,7 |
end; |
end; |
end; |
{$ENDIF} |
end; |
end; |
{$ENDIF} |
1766,16 → 3321,22 |
const |
BltFlags: array[Boolean] of Integer = |
(DDBLT_WAIT, DDBLT_KEYSRC or DDBLT_WAIT); |
var |
{$IFDEF DXR_deprecated}var |
DF: TDDBltFX; |
OldClipper: IDirectDrawClipper; |
Clipper: TDirectDrawClipper; |
Clipper: TDirectDrawClipper;{$ENDIF} |
begin |
if Source<>nil then |
begin |
if (DestRect.Bottom<=DestRect.Top) or (DestRect.Right<=DestRect.Left) then Exit; |
if (SrcRect.Bottom<=SrcRect.Top) or (SrcRect.Right<=SrcRect.Left) then Exit; |
{$IFDEF DrawHWAcc} |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderDDS(Source, SrcRect, DestRect, Transparent, 0, rtDraw{$IFNDEF VER4UP}, $FF{$ENDIF}); |
Exit; |
end; |
{$ENDIF DrawHWAcc} |
{$IFDEF DXR_deprecated} |
if FHasClipper then |
begin |
DF.dwsize := SizeOf(DF); |
1794,27 → 3355,26 |
end; |
end; |
ISurface.GetClipper(OldClipper); |
ISurface.SetClipper(FStretchDrawClipper); |
{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetClipper(OldClipper); |
{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.SetClipper(FStretchDrawClipper); |
DF.dwsize := SizeOf(DF); |
DF.dwDDFX := 0; |
Blt(DestRect, SrcRect, BltFlags[Transparent], df, Source); |
ISurface.SetClipper(nil); |
{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.SetClipper(nil); |
end; |
{$ENDIF} |
end; |
end; |
{$IFDEF DelphiX_Spt4} |
{$IFDEF VER4UP} |
procedure TDirectDrawSurface.StretchDraw(const DestRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean); |
const |
BltFlags: array[Boolean] of Integer = |
(DDBLT_WAIT, DDBLT_KEYSRC or DDBLT_WAIT); |
BltFlags: array[Boolean] of Integer = (DDBLT_WAIT, DDBLT_KEYSRC or DDBLT_WAIT); |
var |
DF: TDDBltFX; |
{$IFDEF DXR_deprecated}DF: TDDBltFX; |
OldClipper: IDirectDrawClipper; |
Clipper: TDirectDrawClipper; |
Clipper: TDirectDrawClipper;{$ENDIF} |
SrcRect: TRect; |
begin |
if Source<>nil then |
1822,7 → 3382,12 |
if (DestRect.Bottom<=DestRect.Top) or (DestRect.Right<=DestRect.Left) then Exit; |
SrcRect := Source.ClientRect; |
if ISurface.GetClipper(OldClipper)=DD_OK then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderDDS(Source, ZeroRect, DestRect, Transparent, 0, rtDraw{$IFNDEF VER4UP}, $FF{$ENDIF}); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if {$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetClipper(OldClipper) = DD_OK then |
begin |
DF.dwsize := SizeOf(DF); |
DF.dwDDFX := 0; |
1840,15 → 3405,16 |
end; |
end; |
ISurface.SetClipper(FStretchDrawClipper); |
{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.SetClipper(FStretchDrawClipper); |
try |
DF.dwsize := SizeOf(DF); |
DF.dwDDFX := 0; |
Blt(DestRect, SrcRect, BltFlags[Transparent], df, Source); |
finally |
ISurface.SetClipper(nil); |
{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.SetClipper(nil); |
end; |
end; |
{$ENDIF} |
end; |
end; |
{$ENDIF} |
1855,10 → 3421,10 |
procedure TDirectDrawSurface.DrawAdd(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean; Alpha: Integer); |
var |
Src_ddsd: TDDSurfaceDesc; |
{$IFDEF DXR_deprecated}var |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface; |
Blend: TDXR_Blend; |
Blend: TDXR_Blend;{$ENDIF} |
begin |
if (Self.Width=0) or (Self.Height=0) then Exit; |
if (Width=0) or (Height=0) then Exit; |
1867,10 → 3433,15 |
if Alpha<=0 then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderDDS(Source, SrcRect, DestRect, Transparent, 0, rtAdd, Alpha); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
if DestSurface.ColorType=DXR_COLORTYPE_INDEXED then |
1888,21 → 3459,22 |
dxrCopyRectBlend(DestSurface, SrcSurface, |
DestRect, SrcRect, Blend, Alpha, Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawAlpha(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean; Alpha: Integer); |
var |
Src_ddsd: TDDSurfaceDesc; |
{$IFDEF DXR_deprecated}var |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface; |
Blend: TDXR_Blend; |
Blend: TDXR_Blend;{$ENDIF} |
begin |
if (Self.Width=0) or (Self.Height=0) then Exit; |
if (Width=0) or (Height=0) then Exit; |
1911,10 → 3483,15 |
if Alpha<=0 then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderDDS(Source, SrcRect, DestRect, Transparent, 0, rtBlend, Alpha); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
if DestSurface.ColorType=DXR_COLORTYPE_INDEXED then |
1932,21 → 3509,22 |
dxrCopyRectBlend(DestSurface, SrcSurface, |
DestRect, SrcRect, Blend, Alpha, Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawSub(const DestRect, SrcRect: TRect; Source: TDirectDrawSurface; |
Transparent: Boolean; Alpha: Integer); |
var |
Src_ddsd: TDDSurfaceDesc; |
{$IFDEF DXR_deprecated}var |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface; |
Blend: TDXR_Blend; |
Blend: TDXR_Blend;{$ENDIF} |
begin |
if (Self.Width=0) or (Self.Height=0) then Exit; |
if (Width=0) or (Height=0) then Exit; |
1955,10 → 3533,15 |
if Alpha<=0 then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderDDS(Source, SrcRect, DestRect, Transparent, 0, rtSub, Alpha); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
if DestSurface.ColorType=DXR_COLORTYPE_INDEXED then |
1976,20 → 3559,79 |
dxrCopyRectBlend(DestSurface, SrcSurface, |
DestRect, SrcRect, Blend, Alpha, Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawAlphaCol(const DestRect, SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; Color, Alpha: Integer); |
begin |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if Alpha <= 0 then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderColDDS(Source, SrcRect, DestRect, Transparent, 0, Color, rtBlend, Alpha); |
Exit; |
end; |
// If no hardware acceleration, falls back to non-color DrawAlpha |
Self.DrawAlpha(DestRect, SrcRect, Source, Transparent, Alpha); |
end; |
procedure TDirectDrawSurface.DrawSubCol(const DestRect, SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; Color, Alpha: Integer); |
begin |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if Alpha <= 0 then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderColDDS(Source, SrcRect, DestRect, Transparent, 0, Color, rtSub, Alpha); |
Exit; |
end; |
// If no hardware acceleration, falls back to non-color DrawSub |
Self.DrawSub(DestRect, SrcRect, Source, Transparent, Alpha); |
end; |
procedure TDirectDrawSurface.DrawAddCol(const DestRect, SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; Color, Alpha: Integer); |
begin |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if Alpha <= 0 then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderColDDS(Source, SrcRect, DestRect, Transparent, 0, Color, rtAdd, Alpha); |
Exit; |
end; |
// If no hardware acceleration, falls back to non-color DrawAdd |
Self.DrawAdd(DestRect, SrcRect, Source, Transparent, Alpha); |
end; |
procedure TDirectDrawSurface.DrawRotate(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: Integer); |
var |
Src_ddsd: TDDSurfaceDesc; |
DestSurface, SrcSurface: TDXR_Surface; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: single); |
{$IFDEF DXR_deprecated}var |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface;{$ENDIF} |
begin |
if (Self.Width=0) or (Self.Height=0) then Exit; |
if (Width=0) or (Height=0) then Exit; |
1996,31 → 3638,37 |
if Source=nil then Exit; |
if (Source.Width=0) or (Source.Height=0) then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderRotateDDS(Source, SrcRect, X, Y, Width, Height, rtDraw, CenterX, CenterY, Angle, $FF, Transparent); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
dxrDrawRotateBlend(DestSurface, SrcSurface, |
X, Y, Width, Height, SrcRect, CenterX, CenterY, Angle, DXR_BLEND_ONE1, 0, |
X, Y, Width, Height, SrcRect, CenterX, CenterY, round(Angle), DXR_BLEND_ONE1, 0, |
Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawRotateAdd(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle, Alpha: Integer); |
var |
Src_ddsd: TDDSurfaceDesc; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: single; Alpha: Integer); |
{$IFDEF DXR_deprecated}var |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface; |
Blend: TDXR_Blend; |
Blend: TDXR_Blend; {$ENDIF} |
begin |
if Alpha<=0 then Exit; |
2029,10 → 3677,15 |
if Source=nil then Exit; |
if (Source.Width=0) or (Source.Height=0) then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderRotateDDS(Source, SrcRect, X, Y, Width, Height, rtAdd, CenterX, CenterY, Angle, Alpha, Transparent); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
if DestSurface.ColorType=DXR_COLORTYPE_INDEXED then |
2048,24 → 3701,25 |
end; |
dxrDrawRotateBlend(DestSurface, SrcSurface, |
X, Y, Width, Height, SrcRect, CenterX, CenterY, Angle, Blend, Alpha, |
X, Y, Width, Height, SrcRect, CenterX, CenterY, round(Angle), Blend, Alpha, |
Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawRotateAlpha(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle, Alpha: Integer); |
var |
Src_ddsd: TDDSurfaceDesc; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: single; Alpha: Integer); |
{$IFDEF DXR_deprecated}var |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface; |
Blend: TDXR_Blend; |
Blend: TDXR_Blend; {$ENDIF} |
begin |
if Alpha<=0 then Exit; |
2074,10 → 3728,15 |
if Source=nil then Exit; |
if (Source.Width=0) or (Source.Height=0) then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderRotateDDS(Source, SrcRect, X, Y, Width, Height, rtBlend, CenterX, CenterY, Angle, Alpha, Transparent); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
if DestSurface.ColorType=DXR_COLORTYPE_INDEXED then |
2093,24 → 3752,25 |
end; |
dxrDrawRotateBlend(DestSurface, SrcSurface, |
X, Y, Width, Height, SrcRect, CenterX, CenterY, Angle, Blend, Alpha, |
X, Y, Width, Height, SrcRect, CenterX, CenterY, round(Angle), Blend, Alpha, |
Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawRotateSub(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle, Alpha: Integer); |
var |
Src_ddsd: TDDSurfaceDesc; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: single; Alpha: Integer); |
{$IFDEF DXR_deprecated}var |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface; |
Blend: TDXR_Blend; |
Blend: TDXR_Blend;{$ENDIF} |
begin |
if Alpha<=0 then Exit; |
2119,10 → 3779,15 |
if Source=nil then Exit; |
if (Source.Width=0) or (Source.Height=0) then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderRotateDDS(Source, SrcRect, X, Y, Width, Height, rtSub, CenterX, CenterY, Angle, Alpha, Transparent); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
if DestSurface.ColorType=DXR_COLORTYPE_INDEXED then |
2138,23 → 3803,94 |
end; |
dxrDrawRotateBlend(DestSurface, SrcSurface, |
X, Y, Width, Height, SrcRect, CenterX, CenterY, Angle, Blend, Alpha, |
X, Y, Width, Height, SrcRect, CenterX, CenterY, round(Angle), Blend, Alpha, |
Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawRotateCol(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: Single; Color: Integer); |
begin |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderRotateModeColDDS(Source, X, Y, Width, Height, rtDraw, CenterX, CenterY, Angle, Color, $FF, Transparent); |
Exit; |
end; |
// If no hardware acceleration, falls back to non-color, moded DrawRotate |
Self.DrawRotate(X, Y, Width, Height, SrcRect, Source, CenterX, CenterY, Transparent, Angle); |
end; |
procedure TDirectDrawSurface.DrawRotateAlphaCol(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: Single; Color, Alpha: Integer); |
begin |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderRotateModeColDDS(Source, X, Y, Width, Height, rtBlend, CenterX, CenterY, Angle, Color, Alpha, Transparent); |
Exit; |
end; |
// If no hardware acceleration, falls back to non-color, moded DrawRotate |
Self.DrawRotateAlpha(X, Y, Width, Height, SrcRect, Source, CenterX, CenterY, Transparent, Angle, Alpha); |
end; |
procedure TDirectDrawSurface.DrawRotateAddCol(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: Single; Color, Alpha: Integer); |
begin |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderRotateModeColDDS(Source, X, Y, Width, Height, rtAdd, CenterX, CenterY, Angle, Color, Alpha, Transparent); |
Exit; |
end; |
// If no hardware acceleration, falls back to non-color, moded DrawRotate |
Self.DrawRotateAdd(X, Y, Width, Height, SrcRect, Source, CenterX, CenterY, Transparent, Angle, Alpha); |
end; |
procedure TDirectDrawSurface.DrawRotateSubCol(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; CenterX, CenterY: Double; Transparent: Boolean; Angle: Single; Color, Alpha: Integer); |
begin |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderRotateModeColDDS(Source, X, Y, Width, Height, rtSub, CenterX, CenterY, Angle, Color, Alpha, Transparent); |
Exit; |
end; |
// If no hardware acceleration, falls back to non-color, moded DrawRotate |
Self.DrawRotateSub(X, Y, Width, Height, SrcRect, Source, CenterX, CenterY, Transparent, Angle, Alpha); |
end; |
//waves |
procedure TDirectDrawSurface.DrawWaveX(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph: Integer); |
var |
Src_ddsd: TDDSurfaceDesc; |
DestSurface, SrcSurface: TDXR_Surface; |
{$IFDEF DXR_deprecated}var |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface;{$ENDIF} |
begin |
if (Self.Width=0) or (Self.Height=0) then Exit; |
if (Width=0) or (Height=0) then Exit; |
2161,10 → 3897,15 |
if Source=nil then Exit; |
if (Source.Width=0) or (Source.Height=0) then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderWaveXDDS(Source, X, Y, Width, Height, rtDraw, Transparent, amp, Len, ph{$IFNDEF VER4UP}, $FF{$ENDIF}); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
dxrDrawWaveXBlend(DestSurface, SrcSurface, |
2171,21 → 3912,22 |
X, Y, Width, Height, SrcRect, amp, Len, ph, DXR_BLEND_ONE1, 0, |
Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawWaveXAdd(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph, Alpha: Integer); |
var |
Src_ddsd: TDDSurfaceDesc; |
{$IFDEF DXR_deprecated}var |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface; |
Blend: TDXR_Blend; |
Blend: TDXR_Blend;{$ENDIF} |
begin |
if Alpha<=0 then Exit; |
2194,10 → 3936,15 |
if Source=nil then Exit; |
if (Source.Width=0) or (Source.Height=0) then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderWaveXDDS(Source, X, Y, Width, Height, rtAdd, Transparent, amp, Len, ph, Alpha); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
if DestSurface.ColorType=DXR_COLORTYPE_INDEXED then |
2216,21 → 3963,23 |
X, Y, Width, Height, SrcRect, amp, Len, ph, Blend, Alpha, |
Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawWaveXAlpha(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph, Alpha: Integer); |
{$IFDEF DXR_deprecated} |
var |
Src_ddsd: TDDSurfaceDesc; |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface; |
Blend: TDXR_Blend; |
Blend: TDXR_Blend;{$ENDIF} |
begin |
if Alpha<=0 then Exit; |
2239,10 → 3988,15 |
if Source=nil then Exit; |
if (Source.Width=0) or (Source.Height=0) then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderWaveXDDS(Source, X, Y, Width, Height, rtBlend, Transparent, amp, Len, ph, Alpha); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
if DestSurface.ColorType=DXR_COLORTYPE_INDEXED then |
2261,21 → 4015,23 |
X, Y, Width, Height, SrcRect, amp, Len, ph, Blend, Alpha, |
Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawWaveXSub(X, Y, Width, Height: Integer; const SrcRect: TRect; |
Source: TDirectDrawSurface; Transparent: Boolean; amp, Len, ph, Alpha: Integer); |
{$IFDEF DXR_deprecated} |
var |
Src_ddsd: TDDSurfaceDesc; |
Src_ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
DestSurface, SrcSurface: TDXR_Surface; |
Blend: TDXR_Blend; |
Blend: TDXR_Blend;{$ENDIF} |
begin |
if Alpha<=0 then Exit; |
2284,10 → 4040,15 |
if Source=nil then Exit; |
if (Source.Width=0) or (Source.Height=0) then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderWaveXDDS(Source, X, Y, Width, Height, rtSub, Transparent, amp, Len, ph, Alpha); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
if dxrDDSurfaceLock2(Source.ISurface, Src_ddsd, SrcSurface) then |
if dxrDDSurfaceLock2(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, Src_ddsd, SrcSurface) then |
begin |
try |
if DestSurface.ColorType=DXR_COLORTYPE_INDEXED then |
2306,15 → 4067,82 |
X, Y, Width, Height, SrcRect, amp, Len, ph, Blend, Alpha, |
Transparent, Src_ddsd.ddckCKSrcBlt.dwColorSpaceLowValue); |
finally |
dxrDDSurfaceUnLock(Source.ISurface, SrcSurface) |
dxrDDSurfaceUnLock(Source.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, SrcSurface) |
end; |
end; |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.DrawWaveYSub(X, Y, Width, Height: Integer; |
const SrcRect: TRect; Source: TDirectDrawSurface; Transparent: Boolean; amp, |
Len, ph, Alpha: Integer); |
begin |
if Alpha <= 0 then Exit; |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderWaveYDDS(Source, X, Y, Width, Height, rtSub, Transparent, amp, Len, ph, Alpha); |
Exit; |
end; |
end; |
procedure TDirectDrawSurface.DrawWaveY(X, Y, Width, Height: Integer; |
const SrcRect: TRect; Source: TDirectDrawSurface; Transparent: Boolean; amp, |
Len, ph: Integer); |
begin |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderWaveYDDS(Source, X, Y, Width, Height, rtDraw, Transparent, amp, Len, ph{$IFNDEF VER4UP}, $FF{$ENDIF}); |
Exit; |
end; |
end; |
procedure TDirectDrawSurface.DrawWaveYAdd(X, Y, Width, Height: Integer; |
const SrcRect: TRect; Source: TDirectDrawSurface; Transparent: Boolean; amp, |
Len, ph, Alpha: Integer); |
begin |
if Alpha <= 0 then Exit; |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderWaveYDDS(Source, X, Y, Width, Height, rtAdd, Transparent, amp, Len, ph, Alpha); |
Exit; |
end; |
end; |
procedure TDirectDrawSurface.DrawWaveYAlpha(X, Y, Width, Height: Integer; |
const SrcRect: TRect; Source: TDirectDrawSurface; Transparent: Boolean; amp, |
Len, ph, Alpha: Integer); |
begin |
if Alpha <= 0 then Exit; |
if (Self.Width = 0) or (Self.Height = 0) then Exit; |
if (Width = 0) or (Height = 0) then Exit; |
if Source = nil then Exit; |
if (Source.Width = 0) or (Source.Height = 0) then Exit; |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderWaveYDDS(Source, X, Y, Width, Height, rtBlend, Transparent, amp, Len, ph, Alpha); |
Exit; |
end; |
end; |
procedure TDirectDrawSurface.Fill(DevColor: Longint); |
var |
DBltEx: TDDBltFX; |
2336,9 → 4164,9 |
Blt(DestRect, TRect(nil^), DDBLT_COLORFILL or DDBLT_WAIT, DBltEx, nil); |
end; |
procedure TDirectDrawSurface.FillRectAdd(const DestRect: TRect; Color: TColor); |
var |
DestSurface: TDXR_Surface; |
procedure TDirectDrawSurface.FillRectAdd(const DestRect: TRect; Color: TColor; Alpha: Byte); |
{$IFDEF DXR_deprecated}var |
DestSurface: TDXR_Surface;{$ENDIF} |
begin |
if Color and $FFFFFF=0 then Exit; |
if (Self.Width=0) or (Self.Height=0) then Exit; |
2345,38 → 4173,49 |
if SurfaceDesc.ddpfPixelFormat.dwFlags and (DDPF_PALETTEINDEXED1 or DDPF_PALETTEINDEXED2 or |
DDPF_PALETTEINDEXED4 or DDPF_PALETTEINDEXED8)<>0 then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderFillRect(DestRect, ColorToRGB(Color), rtAdd, Alpha); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
dxrFillRectColorBlend(DestSurface, DestRect, DXR_BLEND_ONE1_ADD_ONE2, ColorToRGB(Color)); |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end; |
{$ENDIF} |
end; |
procedure TDirectDrawSurface.FillRectAlpha(const DestRect: TRect; Color: TColor; |
Alpha: Integer); |
var |
DestSurface: TDXR_Surface; |
{$IFDEF DXR_deprecated}var |
DestSurface: TDXR_Surface;{$ENDIF} |
begin |
if (Self.Width=0) or (Self.Height=0) then Exit; |
if SurfaceDesc.ddpfPixelFormat.dwFlags and (DDPF_PALETTEINDEXED1 or DDPF_PALETTEINDEXED2 or |
DDPF_PALETTEINDEXED4 or DDPF_PALETTEINDEXED8)<>0 then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderFillRect(DestRect, ColorToRGB(Color), rtBlend, Alpha); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
dxrFillRectColorBlend(DestSurface, DestRect, DXR_BLEND_SRCALPHA1_ADD_INVSRCALPHA2, ColorToRGB(Color) or (Byte(Alpha) shl 24)); |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end;{$ENDIF} |
end; |
end; |
procedure TDirectDrawSurface.FillRectSub(const DestRect: TRect; Color: TColor); |
var |
DestSurface: TDXR_Surface; |
procedure TDirectDrawSurface.FillRectSub(const DestRect: TRect; Color: TColor; Alpha: Byte); |
{$IFDEF DXR_deprecated}var |
DestSurface: TDXR_Surface;{$ENDIF} |
begin |
if Color and $FFFFFF=0 then Exit; |
if (Self.Width=0) or (Self.Height=0) then Exit; |
2383,15 → 4222,20 |
if SurfaceDesc.ddpfPixelFormat.dwFlags and (DDPF_PALETTEINDEXED1 or DDPF_PALETTEINDEXED2 or |
DDPF_PALETTEINDEXED4 or DDPF_PALETTEINDEXED8)<>0 then Exit; |
if dxrDDSurfaceLock(ISurface, DestSurface) then |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then begin |
D2D.D2DRenderFillRect(DestRect, ColorToRGB(Color), rtSub, Alpha); |
Exit; |
end; |
{$IFDEF DXR_deprecated} |
if dxrDDSurfaceLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) then |
begin |
try |
dxrFillRectColorBlend(DestSurface, DestRect, DXR_BLEND_ONE2_SUB_ONE1, ColorToRGB(Color)); |
finally |
dxrDDSurfaceUnLock(ISurface, DestSurface) |
dxrDDSurfaceUnLock({$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, DestSurface) |
end; |
end;{$ENDIF} |
end; |
end; |
function TDirectDrawSurface.GetBitCount: Integer; |
begin |
2423,10 → 4267,10 |
function TDirectDrawSurface.GetPixel(X, Y: Integer): Longint; |
var |
ddsd: TDDSurfaceDesc; |
ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
begin |
Result := 0; |
if (IDDSurface<>nil) and (X>=0) and (X<Width) and (Y>=0) and (Y<Height) then |
if ({$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil) and (X >= 0) and (X < Width) and (Y >= 0) and (Y < Height) then |
if Lock(PRect(nil)^, ddsd) then |
begin |
try |
2486,16 → 4330,18 |
if Graphic is TDIB then |
begin |
with Canvas do |
begin |
try |
StretchBlt(Handle, 0, 0, AWidth, AHeight, TDIB(Graphic).Canvas.Handle, |
Left, Top, Right-Left, Bottom-Top,SRCCOPY); |
finally |
Release; |
end; |
end else if (Right-Left=AWidth) and (Bottom-Top=AHeight) then |
begin |
with Canvas do |
begin |
try |
Draw(-Left, -Top, Graphic); |
finally |
Release; |
end; |
end else |
2506,8 → 4352,9 |
Temp.Canvas.Draw(-Left, -Top, Graphic); |
with Canvas do |
begin |
try |
StretchDraw(Bounds(0, 0, AWidth, AHeight), Temp); |
finally |
Release; |
end; |
finally |
2543,63 → 4390,81 |
end; |
end; |
function TDirectDrawSurface.Lock(const Rect: TRect; var SurfaceDesc: TDDSurfaceDesc): Boolean; |
function TDirectDrawSurface.Lock(const Rect: TRect; var SurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}): Boolean; |
begin |
Result := False; |
if IDDSurface=nil then Exit; |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} = nil then Exit; |
if FLockCount>0 then Exit; |
FIsLocked := False; |
FLockSurfaceDesc.dwSize := SizeOf(FLockSurfaceDesc); |
if (@Rect<>nil) and ((Rect.Left<>0) or (Rect.Top<>0) or (Rect.Right<>Width) or (Rect.Bottom<>Height)) then |
DXResult := ISurface.Lock(@Rect, FLockSurfaceDesc, DDLOCK_WAIT, 0) |
DXResult := {$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.Lock(@Rect, FLockSurfaceDesc, DDLOCK_WAIT, 0) |
else |
DXResult := ISurface.Lock(nil, FLockSurfaceDesc, DDLOCK_WAIT, 0); |
DXResult := {$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.Lock(nil, FLockSurfaceDesc, DDLOCK_WAIT, 0); |
if DXResult<>DD_OK then Exit; |
Inc(FLockCount); |
SurfaceDesc := FLockSurfaceDesc; |
FIsLocked := True; |
Result := True; |
end; |
{$IFDEF DelphiX_Spt4} |
function TDirectDrawSurface.Lock(var SurfaceDesc: TDDSurfaceDesc): Boolean; |
{$IFDEF VER4UP} |
function TDirectDrawSurface.Lock(var SurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}): Boolean; |
begin |
Result := False; |
if IDDSurface=nil then Exit; |
FIsLocked := False; |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} = nil then Exit; |
if FLockCount=0 then |
begin |
FLockSurfaceDesc.dwSize := SizeOf(FLockSurfaceDesc); |
DXResult := ISurface.Lock(nil, FLockSurfaceDesc, DDLOCK_WAIT, 0); |
DXResult := {$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.Lock(nil, FLockSurfaceDesc, DDLOCK_WAIT, 0); |
if DXResult<>DD_OK then Exit; |
end; |
Inc(FLockCount); |
SurfaceDesc := FLockSurfaceDesc; |
FIsLocked := True; |
Result := True; |
end; |
function TDirectDrawSurface.Lock: Boolean; |
var SurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
begin |
Result := Lock(SurfaceDesc); |
end; |
{$ELSE} |
function TDirectDrawSurface.LockSurface: Boolean; |
var SurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; R: TRect; |
begin |
Result := Lock(R, SurfaceDesc); |
end; |
{$ENDIF} |
procedure TDirectDrawSurface.UnLock; |
begin |
if IDDSurface=nil then Exit; |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} = nil then Exit; |
if FLockCount>0 then |
begin |
Dec(FLockCount); |
if FLockCount=0 then |
DXResult := ISurface.UnLock(FLockSurfaceDesc.lpSurface); |
if FLockCount = 0 then begin |
DXResult := {$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.UnLock(FLockSurfaceDesc.lpSurface); |
FIsLocked := False; |
end; |
end; |
end; |
function TDirectDrawSurface.Restore: Boolean; |
begin |
if IDDSurface<>nil then |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
begin |
DXResult := ISurface.Restore; |
DXResult := {$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}._Restore; |
Result := DXResult=DD_OK; |
end else |
Result := False; |
2607,29 → 4472,29 |
procedure TDirectDrawSurface.SetClipper(Value: TDirectDrawClipper); |
begin |
if IDDSurface<>nil then |
DXResult := ISurface.SetClipper(Value.IDDClipper); |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
DXResult := {$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.SetClipper(Value.IDDClipper); |
FHasClipper := (Value<>nil) and (DXResult=DD_OK); |
end; |
procedure TDirectDrawSurface.SetColorKey(Flags: DWORD; const Value: TDDColorKey); |
begin |
if IDDSurface<>nil then |
DXResult := ISurface.SetColorKey(Flags, Value); |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
DXResult := {$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.SetColorKey(Flags, @Value); |
end; |
procedure TDirectDrawSurface.SetPalette(Value: TDirectDrawPalette); |
begin |
if IDDSurface<>nil then |
DXResult := ISurface.SetPalette(Value.IDDPalette); |
if {$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
DXResult := {$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.SetPalette(Value.IDDPalette); |
end; |
procedure TDirectDrawSurface.SetPixel(X, Y: Integer; Value: Longint); |
var |
ddsd: TDDSurfaceDesc; |
ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
P: PByte; |
begin |
if (IDDSurface<>nil) and (X>=0) and (X<Width) and (Y>=0) and (Y<Height) then |
if ({$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil) and (X >= 0) and (X < Width) and (Y >= 0) and (Y < Height) then |
if Lock(PRect(nil)^, ddsd) then |
begin |
try |
2666,14 → 4531,15 |
procedure TDirectDrawSurface.SetSize(AWidth, AHeight: Integer); |
var |
ddsd: TDDSurfaceDesc; |
ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
begin |
if (AWidth<=0) or (AHeight<=0) then |
begin |
IDDSurface := nil; |
{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := nil; |
Exit; |
end; |
FillChar(ddsd, SizeOf(ddsd), 0); |
with ddsd do |
begin |
dwSize := SizeOf(ddsd); |
2710,6 → 4576,744 |
ColorKey[DDCKEY_SRCBLT] := ddck; |
end; |
{additional pixel routines like turbopixels} |
{ |
procedure TDirectDrawSurface.PutPixel8(x, y, color: Integer); |
var |
SurfacePtr: PByte; |
PixelOffset: Integer; |
begin |
SurfacePtr := FLockSurfaceDesc.lpSurface; |
PixelOffset := x + y * FLockSurfaceDesc.dwWidth; |
SurfacePtr[PixelOffset] := color and $FF; // set pixel (lo byte of color) |
end;} |
procedure TDirectDrawSurface.PutPixel8(x, y, color: Integer); assembler; |
{ on entry: self = eax, x = edx, y = ecx, color = ? } |
asm |
push esi // must maintain esi |
mov esi,TDirectDrawSurface[eax].FLockSurfaceDesc.lpSurface// set to surface |
add esi,edx // add x |
mov eax,[TDirectDrawSurface[eax].FLockSurfaceDesc.dwwidth] // eax = pitch |
mul ecx // eax = pitch * y |
add esi,eax // esi = pixel offset |
mov ecx, color |
mov ds:[esi],cl // set pixel (lo byte of ecx) |
pop esi // restore esi |
//ret // return |
end; |
{ |
procedure TDirectDrawSurface.PutPixel16(x, y, color: Integer); |
var |
pPixel: PWord; |
begin |
pPixel := PWord(Integer(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface) + |
x * 2 + y * TDirectDrawSurface(Self).FLockSurfaceDesc.lPitch); |
pPixel^ := color; |
end; |
} |
procedure TDirectDrawSurface.PutPixel16(x, y, color: Integer); assembler; |
{ on entry: self = eax, x = edx, y = ecx, color = ? } |
asm |
push esi |
mov esi,TDirectDrawSurface[eax].FLockSurfaceDesc.lpSurface |
shl edx,1 |
add esi,edx |
mov eax,[TDirectDrawSurface[eax].FLockSurfaceDesc.lpitch] |
mul ecx |
add esi,eax |
mov ecx, color |
mov ds:[esi],cx |
pop esi |
//ret |
end; |
{ |
procedure TDirectDrawSurface.PutPixel24(x, y, color: Integer); |
var |
pPixel: PByte; |
dwPitch: DWORD; |
dwColor: DWORD; |
begin |
pPixel := PByte(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface); |
Inc(pPixel, x * 3); |
dwPitch := TDirectDrawSurface(Self).FLockSurfaceDesc.lPitch; |
Inc(pPixel, y * dwPitch); |
dwColor := color and $FFFFFF; |
pPixel[0] := Byte(dwColor); |
pPixel[1] := Byte(dwColor shr 8); |
pPixel[2] := Byte(dwColor shr 16); |
end; |
} |
procedure TDirectDrawSurface.PutPixel24(x, y, color: Integer); assembler; |
{ on entry: self = eax, x = edx, y = ecx, color = ? } |
asm |
push esi |
mov esi,TDirectDrawSurface[eax].FLockSurfaceDesc.lpSurface |
imul edx,3 |
add esi,edx |
mov eax,[TDirectDrawSurface[eax].FLockSurfaceDesc.lpitch] |
mul ecx |
add esi,eax |
mov eax,ds:[esi] |
and eax,$FF000000 |
mov ecx, color |
or ecx,eax |
mov ds:[esi+1],ecx |
pop esi |
//ret |
end; |
{ |
procedure TDirectDrawSurface.PutPixel24(x, y, color: Integer); |
var |
offset: Integer; |
pixelColor: LongInt; |
begin |
offset := (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch) + (x * 3); |
pixelColor := color and $FFFFFF; |
Move(pixelColor, PByte(Integer(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface) + offset)^, 3); |
end; |
} |
procedure TDirectDrawSurface.PutPixel32(x, y, color: Integer); assembler; |
{ on entry: self = eax, x = edx, y = ecx, color = ? } |
asm |
push esi |
mov esi,TDirectDrawSurface[eax].FLockSurfaceDesc.lpSurface |
shl edx,2 |
add esi,edx |
mov eax,[TDirectDrawSurface[eax].FLockSurfaceDesc.lpitch] |
mul ecx |
add esi,eax |
mov ecx, color |
mov ds:[esi],ecx |
pop esi |
//ret |
end; |
procedure TDirectDrawSurface.Poke(X, Y: Integer; const Value: LongInt); |
begin |
if (X < 0) or (X > (Width - 1)) or |
(Y < 0) or (Y > (Height - 1)) or not FIsLocked then Exit; |
case Bitcount of |
8: PutPixel8(x, y, value); |
16: PutPixel16(x, y, value); |
24: PutPixel24(x, y, value); |
32: PutPixel32(x, y, value); |
end; |
end; |
{ |
function TDirectDrawSurface.GetPixel8(x, y: Integer): Integer; |
var |
Pixel: Byte; |
PixelPtr: PByte; |
begin |
PixelPtr := PByte(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface + x + (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch)); |
Pixel := PixelPtr^; |
Result := Pixel; |
end; |
function TDirectDrawSurface.GetPixel16(x, y: Integer): Integer; |
var |
Pixel: Word; |
PixelPtr: PWord; |
begin |
PixelPtr := PWord(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface + (x * 2) + (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch)); |
Pixel := PixelPtr^; |
Result := Pixel; |
end; |
function TDirectDrawSurface.GetPixel24(x, y: Integer): Integer; |
var |
Pixel: array[0..2] of Byte; |
PixelPtr: PByte; |
begin |
PixelPtr := PByte(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface + (x * 3) + (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch)); |
Pixel[0] := PixelPtr^; |
Pixel[1] := (PixelPtr+1)^; |
Pixel[2] := (PixelPtr+2)^; |
Result := Pixel[0] or (Pixel[1] shl 8) or (Pixel[2] shl 16); |
end; |
function TDirectDrawSurface.GetPixel32(x, y: Integer): Integer; |
var |
Pixel: Integer; |
PixelPtr: PInteger; |
begin |
PixelPtr := PInteger(TDirectDrawSurface(Self).FLockSurfaceDesc.lpSurface + (x * 4) + (y * TDirectDrawSurface(Self).FLockSurfaceDesc.lpitch)); |
Pixel := PixelPtr^; |
Result := Pixel; |
end; |
} |
function TDirectDrawSurface.GetPixel8(x, y: Integer): Integer; assembler; |
{ on entry: self = eax, x = edx, y = ecx, result = eax } |
asm |
push esi // myst maintain esi |
mov esi,TDirectDrawSurface[eax].FLockSurfaceDesc.lpSurface // set to surface |
add esi,edx // add x |
mov eax,[TDirectDrawSurface[eax].FLockSurfaceDesc.lpitch] // eax = pitch |
mul ecx // eax = pitch * y |
add esi,eax // esi = pixel offset |
mov eax,ds:[esi] // eax = color |
and eax,$FF // map into 8bit |
pop esi // restore esi |
//ret // return |
end; |
function TDirectDrawSurface.GetPixel16(x, y: Integer): Integer; assembler; |
{ on entry: self = eax, x = edx, y = ecx, result = eax } |
asm |
push esi |
mov esi,TDirectDrawSurface[eax].FLockSurfaceDesc.lpSurface |
shl edx,1 |
add esi,edx |
mov eax,[TDirectDrawSurface[eax].FLockSurfaceDesc.lpitch] |
mul ecx |
add esi,eax |
mov eax,ds:[esi] |
and eax,$FFFF // map into 16bit |
pop esi |
//ret |
end; |
function TDirectDrawSurface.GetPixel24(x, y: Integer): Integer; assembler; |
{ on entry: self = eax, x = edx, y = ecx, result = eax } |
asm |
push esi |
mov esi,TDirectDrawSurface[eax].FLockSurfaceDesc.lpSurface |
imul edx,3 |
add esi,edx |
mov eax,[TDirectDrawSurface[eax].FLockSurfaceDesc.lpitch] |
mul ecx |
add esi,eax |
mov eax,ds:[esi] |
and eax,$FFFFFF // map into 24bit |
pop esi |
//ret |
end; |
function TDirectDrawSurface.GetPixel32(x, y: Integer): Integer; assembler; |
{ on entry: self = eax, x = edx, y = ecx, result = eax } |
asm |
push esi |
mov esi,TDirectDrawSurface[eax].FLockSurfaceDesc.lpSurface |
shl edx,2 |
add esi,edx |
mov eax,[TDirectDrawSurface[eax].FLockSurfaceDesc.lpitch] |
mul ecx |
add esi,eax |
mov eax,ds:[esi] |
pop esi |
//ret |
end; |
function TDirectDrawSurface.Peek(X, Y: Integer): LongInt; |
begin |
Result := 0; |
if (X < 0) or (X > (Width - 1)) or |
(Y < 0) or (Y > (Height - 1)) or not FIsLocked then Exit; |
case Bitcount of |
8: Result := GetPixel8(x, y); |
16: Result := GetPixel16(x, y); |
24: Result := GetPixel24(x, y); |
32: Result := GetPixel32(x, y); |
end; |
end; |
procedure TDirectDrawSurface.PokeLine(X1, Y1, X2, Y2: Integer; Color: cardinal); |
var |
i, deltax, deltay, numpixels, |
d, dinc1, dinc2, |
x, xinc1, xinc2, |
y, yinc1, yinc2: Integer; |
begin |
if not FIsLocked then {$IFDEF VER4UP}Lock{$ELSE}LockSurface{$ENDIF}; //force lock the surface |
{ Calculate deltax and deltay for initialisation } |
deltax := abs(x2 - x1); |
deltay := abs(y2 - y1); |
{ Initialise all vars based on which is the independent variable } |
if deltax >= deltay then |
begin |
{ x is independent variable } |
numpixels := deltax + 1; |
d := (2 * deltay) - deltax; |
dinc1 := deltay shl 1; |
dinc2 := (deltay - deltax) shl 1; |
xinc1 := 1; |
xinc2 := 1; |
yinc1 := 0; |
yinc2 := 1; |
end |
else |
begin |
{ y is independent variable } |
numpixels := deltay + 1; |
d := (2 * deltax) - deltay; |
dinc1 := deltax shl 1; |
dinc2 := (deltax - deltay) shl 1; |
xinc1 := 0; |
xinc2 := 1; |
yinc1 := 1; |
yinc2 := 1; |
end; |
{ Make sure x and y move in the right directions } |
if x1 > x2 then |
begin |
xinc1 := -xinc1; |
xinc2 := -xinc2; |
end; |
if y1 > y2 then |
begin |
yinc1 := -yinc1; |
yinc2 := -yinc2; |
end; |
x := x1; |
y := y1; |
{ Draw the pixels } |
for i := 1 to numpixels do |
begin |
if (x > 0) and (x < (Width - 1)) and (y > 0) and (y < (Height - 1)) then |
Pixel[x, y] := Color; |
if d < 0 then |
begin |
Inc(d, dinc1); |
Inc(x, xinc1); |
Inc(y, yinc1); |
end |
else |
begin |
Inc(d, dinc2); |
Inc(x, xinc2); |
Inc(y, yinc2); |
end; |
end; |
end; |
procedure TDirectDrawSurface.PokeLinePolar(x, y: Integer; angle, length: extended; Color: cardinal); |
var |
xp, yp: Integer; |
begin |
xp := round(sin(angle * pi / 180) * length) + x; |
yp := round(cos(angle * pi / 180) * length) + y; |
PokeLine(x, y, xp, yp, Color); |
end; |
procedure TDirectDrawSurface.PokeBox(xs, ys, xd, yd: Integer; Color: cardinal); |
begin |
pokeline(xs, ys, xd, ys, color); |
pokeline(xs, ys, xs, yd, color); |
pokeline(xd, ys, xd, yd, color); |
pokeline(xs, yd, xd, yd, color); |
end; |
procedure TDirectDrawSurface.PokeBlendPixel(const X, Y: Integer; aColor: cardinal; Alpha: byte); |
var |
cr, cg, cb: byte; |
ar, ag, ab: byte; |
begin |
LoadRGB(aColor, ar, ag, ab); |
LoadRGB(Pixel[x, y], cr, cg, cb); |
Pixel[x, y] := SaveRGB((Alpha * (aR - cr) shr 8) + cr, // R alpha |
(Alpha * (aG - cg) shr 8) + cg, // G alpha |
(Alpha * (aB - cb) shr 8) + cb); // B alpha |
end; |
{ |
function Conv24to16(Color: Integer): Word; |
var |
r, g, b: Byte; |
begin |
r := (Color shr 16) and $FF; |
g := (Color shr 8) and $FF; |
b := Color and $FF; |
Result := ((r shr 3) shl 11) or ((g shr 2) shl 5) or (b shr 3); |
end; |
} |
function Conv24to16(Color: Integer): Word; register; |
asm |
mov ecx,eax |
shl eax,24 |
shr eax,27 |
shl eax,11 |
mov edx,ecx |
shl edx,16 |
shr edx,26 |
shl edx,5 |
or eax,edx |
mov edx,ecx |
shl edx,8 |
shr edx,27 |
or eax,edx |
end; |
procedure TDirectDrawSurface.PokeWuLine(X1, Y1, X2, Y2, aColor: Integer); |
var DeltaX, DeltaY, Loop, Start, Finish: Integer; |
Dx, Dy, DyDx: Single; // fractional parts |
Color16: DWord; |
begin |
DeltaX := Abs(X2 - X1); // Calculate DeltaX and DeltaY for initialization |
DeltaY := Abs(Y2 - Y1); |
if (DeltaX = 0) or (DeltaY = 0) then |
begin // straight lines |
PokeLine(X1, Y1, X2, Y2, aColor); |
Exit; |
end; |
if BitCount = 16 then |
Color16 := Conv24to16(aColor) |
else |
Color16 := aColor; |
if DeltaX > DeltaY then // horizontal or vertical |
begin |
{ determine rise and run } |
if Y2 > Y1 then DyDx := -(DeltaY / DeltaX) |
else DyDx := DeltaY / DeltaX; |
if X2 < X1 then |
begin |
Start := X2; // right to left |
Finish := X1; |
Dy := Y2; |
end else |
begin |
Start := X1; // left to right |
Finish := X2; |
Dy := Y1; |
DyDx := -DyDx; // inverse slope |
end; |
for Loop := Start to Finish do |
begin |
PokeBlendPixel(Loop, Trunc(Dy), Color16, Trunc((1 - Frac(Dy)) * 255)); |
PokeBlendPixel(Loop, Trunc(Dy) + 1, Color16, Trunc(Frac(Dy) * 255)); |
Dy := Dy + DyDx; // next point |
end; |
end else |
begin |
{ determine rise and run } |
if X2 > X1 then DyDx := -(DeltaX / DeltaY) |
else DyDx := DeltaX / DeltaY; |
if Y2 < Y1 then |
begin |
Start := Y2; // right to left |
Finish := Y1; |
Dx := X2; |
end else |
begin |
Start := Y1; // left to right |
Finish := Y2; |
Dx := X1; |
DyDx := -DyDx; // inverse slope |
end; |
for Loop := Start to Finish do |
begin |
PokeBlendPixel(Trunc(Dx), Loop, Color16, Trunc((1 - Frac(Dx)) * 255)); |
PokeBlendPixel(Trunc(Dx), Loop, Color16, Trunc(Frac(Dx) * 255)); |
Dx := Dx + DyDx; // next point |
end; |
end; |
end; |
procedure TDirectDrawSurface.Noise(Oblast: TRect; Density: Byte); |
var |
dx, dy: Integer; |
Dens: byte; |
begin |
{noise} |
case Density of |
0..2: Dens := 3; |
255: Dens := 254; |
else |
Dens := Density; |
end; |
if Dens >= Oblast.Right then |
Dens := Oblast.Right div 3; |
dy := Oblast.Top; |
while dy <= Oblast.Bottom do begin |
dx := Oblast.Left; |
while dx <= Oblast.Right do begin |
inc(dx, random(dens)); |
if dx <= Oblast.Right then |
Pixel[dx, dy] := not Pixel[dx, dy]; |
end; |
inc(dy); |
end; |
end; |
{ |
function Conv16to24(Color: Word): Integer; |
var |
r, g, b: Byte; |
begin |
r := (Color shr 11) and $1F; |
g := (Color shr 5) and $3F; |
b := Color and $1F; |
Result := (r shl 19) or (g shl 10) or (b shl 3); |
end; |
} |
function Conv16to24(Color: Word): Integer; register; |
asm |
xor edx,edx |
mov dx,ax |
mov eax,edx |
shl eax,27 |
shr eax,8 |
mov ecx,edx |
shr ecx,5 |
shl ecx,26 |
shr ecx,16 |
or eax,ecx |
mov ecx,edx |
shr ecx,11 |
shl ecx,27 |
shr ecx,24 |
or eax,ecx |
end; |
procedure GetRGB(Color: cardinal; var R, G, B: Byte); {$IFDEF VER9UP}inline; {$ENDIF} |
begin |
R := Color; |
G := Color shr 8; |
B := Color shr 16; |
end; |
procedure TDirectDrawSurface.LoadRGB(Color: cardinal; var R, G, B: Byte); |
var grB: Byte; |
begin |
grB := 1; |
if FLockSurfaceDesc.ddpfPixelFormat.dwGBitMask = 2016 then grB := 0; // 565 |
case BitCount of |
15, 16: begin |
R := (color shr (11 - grB)) shl 3; |
if grB = 0 then |
G := ((color and 2016) shr 5) shl 2 |
else |
G := ((color and 992) shr 5) shl 3; |
B := (color and 31) shl 3; |
end; |
else |
GetRGB(Color, R, G, B); |
end; |
end; |
function TDirectDrawSurface.SaveRGB(const R, G, B: Byte): cardinal; |
begin |
case BitCount of |
15, 16: begin |
Result := Conv24to16(RGB(R, G, B)); |
end; |
else |
Result := RGB(R, G, B); |
end; |
end; |
procedure TDirectDrawSurface.Blur; |
var |
x, y, tr, tg, tb: Integer; |
r, g, b: byte; |
begin |
for y := 1 to GetHeight - 1 do |
for x := 1 to GetWidth - 1 do begin |
LoadRGB(peek(x, y), r, g, b); |
tr := r; |
tg := g; |
tb := b; |
LoadRGB(peek(x, y + 1), r, g, b); |
Inc(tr, r); |
Inc(tg, g); |
Inc(tb, b); |
LoadRGB(peek(x, y - 1), r, g, b); |
Inc(tr, r); |
Inc(tg, g); |
Inc(tb, b); |
LoadRGB(peek(x - 1, y), r, g, b); |
Inc(tr, r); |
Inc(tg, g); |
Inc(tb, b); |
LoadRGB(peek(x + 1, y), r, g, b); |
Inc(tr, r); |
Inc(tg, g); |
Inc(tb, b); |
tr := tr shr 2; |
tg := tg shr 2; |
tb := tb shr 2; |
Poke(x, y, savergb(tr, tg, tb)); |
end; |
end; |
procedure TDirectDrawSurface.PokeCircle(X, Y, Radius, Color: Integer); |
var |
a, af, b, bf, c, |
target, r2: Integer; |
begin |
Target := 0; |
A := Radius; |
B := 0; |
R2 := Sqr(Radius); |
while a >= B do |
begin |
b := Round(Sqrt(R2 - Sqr(A))); |
c := target; target := b; b := c; |
while B < Target do |
begin |
Af := (120 * a) div 100; |
Bf := (120 * b) div 100; |
pixel[x + af, y + b] := color; |
pixel[x + bf, y + a] := color; |
pixel[x - af, y + b] := color; |
pixel[x - bf, y + a] := color; |
pixel[x - af, y - b] := color; |
pixel[x - bf, y - a] := color; |
pixel[x + af, y - b] := color; |
pixel[x + bf, y - a] := color; |
B := B + 1; |
end; |
A := A - 1; |
end; |
end; |
function RGBToBGR(Color: cardinal): cardinal; |
begin |
result := (LoByte(LoWord(Color)) shr 3 shl 11) or // Red |
(HiByte((Color)) shr 2 shl 5) or // Green |
(LoByte(HiWord(Color)) shr 3); // Blue |
end; |
procedure TDirectDrawSurface.PokeVLine(x, y1, y2: Integer; Color: cardinal); |
var |
y: Integer; |
NColor: cardinal; |
r, g, b: byte; |
begin |
if y1 < 0 then y1 := 0; |
if y2 >= Height then y2 := Height - 1; |
GetRGB(Color, r, g, b); |
NColor := RGBToBGR(rgb(r, g, b)); |
for y := y1 to y2 do |
begin |
pixel[x, y] := NColor; |
end; |
end; |
procedure TDirectDrawSurface.PokeFilledEllipse(exc, eyc, ea, eb, color: Integer); |
var x, y: Integer; aa, aa2, bb, bb2, d, dx, dy: LongInt; |
begin |
x := 0; |
y := eb; |
aa := LongInt(ea) * ea; |
aa2 := 2 * aa; |
bb := LongInt(eb) * eb; |
bb2 := 2 * bb; |
d := bb - aa * eb + aa div 4; |
dx := 0; |
dy := aa2 * eb; |
PokevLine(exc, eyc - y, eyc + y, color); |
while (dx < dy) do begin |
if (d > 0) then begin |
dec(y); dec(dy, aa2); dec(d, dy); |
end; |
inc(x); inc(dx, bb2); inc(d, bb + dx); |
PokevLine(exc - x, eyc - y, eyc + y, color); |
PokevLine(exc + x, eyc - y, eyc + y, color); |
end; |
inc(d, (3 * (aa - bb) div 2 - (dx + dy)) div 2); |
while (y >= 0) do begin |
if (d < 0) then begin |
inc(x); inc(dx, bb2); inc(d, bb + dx); |
PokevLine(exc - x, eyc - y, eyc + y, color); |
PokevLine(exc + x, eyc - y, eyc + y, color); |
end; |
dec(y); dec(dy, aa2); inc(d, aa - dy); |
end; |
end; |
procedure TDirectDrawSurface.DoRotate(cent1, cent2, angle: Integer; coord1, coord2: Real; Color: word); |
var coord1t, coord2t: Real; |
c1, c2: Integer; |
begin |
coord1t := coord1 - cent1; |
coord2t := coord2 - cent2; |
coord1 := coord1t * cos(angle * pi / 180) - coord2t * sin(angle * pi / 180); |
coord2 := coord1t * sin(angle * pi / 180) + coord2t * cos(angle * pi / 180); |
coord1 := coord1 + cent1; |
coord2 := coord2 + cent2; |
c1 := round(coord1); |
c2 := round(coord2); |
pixel[c1, c2] := Color; |
end; |
procedure TDirectDrawSurface.PokeEllipse(exc, eyc, ea, eb, angle, Color: Integer); |
var |
elx, ely: Integer; |
aa, aa2, bb, bb2, d, dx, dy: LongInt; |
x, y: real; |
begin |
elx := 0; |
ely := eb; |
aa := LongInt(ea) * ea; |
aa2 := 2 * aa; |
bb := LongInt(eb) * eb; |
bb2 := 2 * bb; |
d := bb - aa * eb + aa div 4; |
dx := 0; |
dy := aa2 * eb; |
x := exc; |
y := eyc - ely; |
dorotate(exc, eyc, angle, x, y, Color); |
x := exc; |
y := eyc + ely; |
dorotate(exc, eyc, angle, x, y, Color); |
x := exc - ea; |
y := eyc; |
dorotate(exc, eyc, angle, x, y, Color); |
x := exc + ea; |
y := eyc; |
dorotate(exc, eyc, angle, x, y, Color); |
while (dx < dy) do begin |
if (d > 0) then begin Dec(ely); Dec(dy, aa2); Dec(d, dy); end; |
Inc(elx); Inc(dx, bb2); Inc(d, bb + dx); |
x := exc + elx; y := eyc + ely; |
dorotate(exc, eyc, angle, x, y, Color); |
x := exc - elx; y := eyc + ely; |
dorotate(exc, eyc, angle, x, y, Color); |
x := exc + elx; y := eyc - ely; |
dorotate(exc, eyc, angle, x, y, Color); |
x := exc - elx; y := eyc - ely; |
dorotate(exc, eyc, angle, x, y, Color); |
end; |
Inc(d, (3 * (aa - bb) div 2 - (dx + dy)) div 2); |
while (ely > 0) do begin |
if (d < 0) then begin Inc(elx); Inc(dx, bb2); Inc(d, bb + dx); end; |
Dec(ely); Dec(dy, aa2); Inc(d, aa - dy); |
x := exc + elx; y := eyc + ely; |
dorotate(exc, eyc, angle, x, y, Color); |
x := exc - elx; y := eyc + ely; |
dorotate(exc, eyc, angle, x, y, Color); |
x := exc + elx; y := eyc - ely; |
dorotate(exc, eyc, angle, x, y, Color); |
x := exc - elx; y := eyc - ely; |
dorotate(exc, eyc, angle, x, y, Color); |
end; |
end; |
procedure TDirectDrawSurface.MirrorFlip(Value: TRenderMirrorFlipSet); |
begin |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Self) then |
D2D.MirrorFlip := Value; |
end; |
{ TDXDrawDisplayMode } |
function TDXDrawDisplayMode.GetBitCount: Integer; |
2736,10 → 5340,10 |
FModes := TCollection.Create(TDXDrawDisplayMode); |
FWidth := 640; |
FHeight := 480; |
FBitCount := 8; |
FFixedBitCount := True; |
FBitCount := 16; |
FFixedBitCount := False; //True; |
FFixedRatio := True; |
FFixedSize := False; |
FFixedSize := True; //False; |
end; |
destructor TDXDrawDisplay.Destroy; |
2776,7 → 5380,7 |
function TDXDrawDisplay.GetMode: TDXDrawDisplayMode; |
var |
i: Integer; |
ddsd: TDDSurfaceDesc; |
ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
begin |
Result := nil; |
if FDXDraw.DDraw<>nil then |
2840,13 → 5444,16 |
if FDXDraw.DDraw<>nil then |
begin |
FDXDraw.DDraw.DXResult := FDXDraw.DDraw.IDraw.EnumDisplayModes(0, PDDSurfaceDesc(nil)^, |
FDXDraw.DDraw.DXResult := FDXDraw.DDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF} |
.EnumDisplayModes(0, {$IFDEF D3D_deprecated}PDDSurfaceDesc{$ELSE}PDDSurfaceDesc2{$ENDIF}(nil), |
FModes, @EnumDisplayModesProc); |
end else |
begin |
DDraw := TDirectDraw.Create(PGUID(FDXDraw.FDriver)); |
try |
DDraw.IDraw.EnumDisplayModes(0, PDDSurfaceDesc(nil)^, FModes, @EnumDisplayModesProc); |
DDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF} |
.EnumDisplayModes(0, {$IFDEF D3D_deprecated}PDDSurfaceDesc{$ELSE}PDDSurfaceDesc2{$ENDIF}(nil), |
FModes, @EnumDisplayModesProc); |
finally |
DDraw.Free; |
end; |
2865,12 → 5472,13 |
end; |
end; |
function TDXDrawDisplay.SetSize(AWidth, AHeight, ABitCount: Integer): Boolean; |
function TDXDrawDisplay.SetSize(AWidth, AHeight, ABitCount{$IFNDEF D3D_deprecated}, ARefreshRate, AFlags{$ENDIF}: Integer): Boolean; |
begin |
Result := False; |
if FDXDraw.DDraw<>nil then |
begin |
FDXDraw.DDraw.DXResult := FDXDraw.DDraw.IDraw.SetDisplayMode(AWidth, AHeight, ABitCount); |
FDXDraw.DDraw.DXResult := FDXDraw.DDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF} |
.SetDisplayMode(AWidth, AHeight, ABitCount{$IFNDEF D3D_deprecated}, ARefreshRate, AFlags{$ENDIF}); |
Result := FDXDraw.DDraw.DXResult=DD_OK; |
if Result then |
2884,6 → 5492,13 |
function TDXDrawDisplay.DynSetSize(AWidth, AHeight, ABitCount: Integer): Boolean; |
{$IFNDEF D3D_deprecated} |
function GetDefaultRefreshRate: Integer; |
begin |
Result := 60; |
end; |
{$ENDIF} |
function TestBitCount(BitCount, ABitCount: Integer): Boolean; |
begin |
if (BitCount>8) and (ABitCount>8) then |
2897,7 → 5512,7 |
function SetSize2(Ratio: Boolean): Boolean; |
var |
DWidth, DHeight, DBitCount, i: Integer; |
DWidth, DHeight, DBitCount{$IFNDEF D3D_deprecated}, DRRate, DFlags{$ENDIF}, i: Integer; |
Flag: Boolean; |
begin |
Result := False; |
2905,7 → 5520,10 |
DWidth := Maxint; |
DHeight := Maxint; |
DBitCount := ABitCount; |
{$IFNDEF D3D_deprecated} |
DRRate := GetDefaultRefreshRate; |
DFlags := 0; |
{$ENDIF} |
Flag := False; |
for i:=0 to Count-1 do |
with Modes[i] do |
2933,7 → 5551,7 |
DBitCount := ABitCount; |
end; |
Result := SetSize(DWidth, DHeight, DBitCount); |
Result := SetSize(DWidth, DHeight, DBitCount{$IFNDEF D3D_deprecated}, DRRate, DFlags{$ENDIF}); |
end; |
end; |
2943,7 → 5561,7 |
if (AWidth<=0) or (AHeight<=0) or (not (ABitCount in [8, 16, 24, 32])) then Exit; |
{ The change is attempted by the size of default. } |
if SetSize(AWidth, AHeight, ABitCount) then |
if SetSize(AWidth, AHeight, ABitCount{$IFNDEF D3D_deprecated}, GetDefaultRefreshRate, 0{$ENDIF}) then |
begin |
Result := True; |
Exit; |
3003,8 → 5621,8 |
begin |
if ZBuffer<>nil then |
begin |
if (Surface.IDDSurface<>nil) and (ZBuffer.IDDSurface<>nil) then |
Surface.ISurface.DeleteAttachedSurface(0, ZBuffer.IDDSurface); |
if (Surface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil) and (ZBuffer.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil) then |
Surface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.DeleteAttachedSurface(0, ZBuffer.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF}); |
ZBuffer.Free; ZBuffer := nil; |
end; |
end; |
3011,12 → 5629,12 |
type |
TInitializeDirect3DOption = (idoSelectDriver, idoOptimizeDisplayMode, |
idoHardware, idoRetainedMode, idoZBuffer); |
idoHardware, {$IFDEF D3DRM}idoRetainedMode,{$ENDIF} idoZBuffer); |
TInitializeDirect3DOptions = set of TInitializeDirect3DOption; |
procedure Direct3DInitializing(Options: TInitializeDirect3DOptions; |
var BitCount: Integer; var Driver: PGUID; var DriverGUID: TGUID); |
var BitCount: Integer; var Driver: PGUID; var DriverGUID: TGUID{$IFNDEF D3D_deprecated}; var D3DDeviceTypeSet: TD3DDeviceTypeSet{$ENDIF}); |
type |
PDirect3DInitializingRecord = ^TDirect3DInitializingRecord; |
TDirect3DInitializingRecord = record |
3028,19 → 5646,29 |
Flag: Boolean; |
DriverCaps: TDDCaps; |
HELCaps: TDDCaps; |
{$IFDEF D3D_deprecated} |
HWDeviceDesc: TD3DDeviceDesc; |
HELDeviceDesc: TD3DDeviceDesc; |
DeviceDesc: TD3DDeviceDesc; |
{$ELSE} |
DeviceDesc: TD3DDeviceDesc7; |
{$ENDIF} |
D3DFlag: Boolean; |
{$IFDEF D3D_deprecated} |
HWDeviceDesc2: TD3DDeviceDesc; |
HELDeviceDesc2: TD3DDeviceDesc; |
DeviceDesc2: TD3DDeviceDesc; |
{$ELSE} |
DeviceDesc2: TD3DDeviceDesc7; |
{$ENDIF} |
end; |
function EnumDeviceCallBack(const lpGuid: TGUID; lpDeviceDescription, lpDeviceName: PChar; |
const lpD3DHWDeviceDesc, lpD3DHELDeviceDesc: TD3DDeviceDesc; |
rec: PDirect3DInitializingRecord): HRESULT; stdcall; |
{$IFDEF D3D_deprecated} |
function EnumDeviceCallBack(lpGuid: PGUID; // nil for the default device |
lpDeviceDescription: PAnsiChar; lpDeviceName: PAnsiChar; |
var lpD3DHWDeviceDesc: TD3DDeviceDesc; |
var lpD3DHELDeviceDesc: TD3DDeviceDesc; |
rec: PDirect3DInitializingRecord) : HResult; stdcall; |
procedure UseThisDevice; |
begin |
3058,7 → 5686,8 |
if idoOptimizeDisplayMode in rec.Options then |
begin |
if (lpD3DHWDeviceDesc.dwDeviceRenderBitDepth and (DDBD_16 or DDBD_24 or DDBD_32))=0 then Exit; |
end else |
end |
else |
begin |
if (lpD3DHWDeviceDesc.dwDeviceRenderBitDepth and BPPToDDBD(rec.BitCount))=0 then Exit; |
end; |
3065,12 → 5694,38 |
UseThisDevice; |
end; |
{$ELSE} |
function EnumDeviceCallBack(lpDeviceDescription: PAnsiChar; lpDeviceName: PAnsiChar; |
const lpD3DDeviceDesc: TD3DDeviceDesc7; rec: PDirect3DInitializingRecord) : HResult; stdcall; |
begin |
Result := D3DENUMRET_OK; |
function EnumDirectDrawDriverCallback(lpGUID: PGUID; lpDriverDescription: LPSTR; |
lpDriverName: LPSTR; rec: PDirect3DInitializingRecord): HRESULT; stdcall; |
maxVideoBlockSize := Min(lpD3DDeviceDesc.dwMaxTextureWidth, lpD3DDeviceDesc.dwMaxTextureHeight); |
SurfaceDivWidth := lpD3DDeviceDesc.dwMaxTextureWidth; |
SurfaceDivHeight := lpD3DDeviceDesc.dwMaxTextureHeight; |
//if lpD3DHWDeviceDesc.dcmColorModel = 0 then Exit; |
if idoOptimizeDisplayMode in rec.Options then |
begin |
if (lpD3DDeviceDesc.dwDeviceRenderBitDepth and (DDBD_16 or DDBD_24 or DDBD_32)) = 0 then Exit; |
end |
else |
begin |
if (lpD3DDeviceDesc.dwDeviceRenderBitDepth and BPPToDDBD(rec.BitCount)) = 0 then Exit; |
end; |
rec.D3DFlag := True; |
rec.DeviceDesc2 := lpD3DDeviceDesc; |
end; |
{$ENDIF} |
function EnumDirectDrawDriverCallback(lpGUID: PGUID; lpDriverDescription: {$IFDEF UNICODE}LPCTSTR{$ELSE}LPCSTR{$ENDIF}; |
lpDriverName: {$IFDEF UNICODE}LPCTSTR{$ELSE}LPCSTR{$ENDIF}; rec: PDirect3DInitializingRecord): HRESULT; stdcall; |
var |
DDraw: TDirectDraw; |
{$IFDEF D3D_deprecated} |
Direct3D: IDirect3D; |
{$ENDIF} |
Direct3D7: IDirect3D7; |
function CountBitMask(i: DWORD; const Bits: array of DWORD): DWORD; |
3123,7 → 5778,19 |
begin |
{ The Direct3D driver is examined. } |
rec.D3DFlag := False; |
Direct3D.EnumDevices(@EnumDeviceCallBack, rec); |
try |
{$IFDEF D3D_deprecated}Direct3D{$ELSE}Direct3D7{$ENDIF}.EnumDevices(@EnumDeviceCallBack, rec) {= DD_OK} |
except |
on E: Exception do |
begin |
rec.D3DFlag := False; |
// eventually catch exception to automatic log |
Log(E.Message {$IFNDEF VER4UP}, ChangefileExt(ParamStr(0), '.log'){$ENDIF}); |
//and cannot continue !!! |
Result := False; |
Exit; |
end; |
end; |
Result := rec.D3DFlag; |
if not Result then Exit; |
3131,17 → 5798,20 |
{ Comparison of DirectDraw driver. } |
if not rec.Flag then |
begin |
{$IFDEF D3D_deprecated} |
rec.HWDeviceDesc := rec.HWDeviceDesc2; |
rec.HELDeviceDesc := rec.HELDeviceDesc2; |
rec.DeviceDesc := rec.DeviceDesc2; |
{$ENDIF} |
rec.Flag := True; |
end else |
end |
else |
begin |
{ Comparison of hardware. (One with large number of functions to support is chosen. } |
Result := False; |
if DDraw.DriverCaps.dwVidMemTotal<rec.DriverCaps.dwVidMemTotal then Exit; |
{$IFDEF D3D_deprecated} |
if CompareCountBitMask(DDraw.DriverCaps.ddscaps.dwCaps, rec.DriverCaps.ddscaps.dwCaps, [DDSCAPS_TEXTURE, DDSCAPS_ZBUFFER, DDSCAPS_MIPMAP])+ |
CompareCountBit(rec.HWDeviceDesc.dpcLineCaps.dwMiscCaps, rec.HWDeviceDesc2.dpcLineCaps.dwMiscCaps)+ |
CompareCountBit(rec.HWDeviceDesc.dpcLineCaps.dwRasterCaps, rec.HWDeviceDesc2.dpcLineCaps.dwRasterCaps)+ |
3153,7 → 5823,7 |
CompareCountBit(rec.HWDeviceDesc.dpcLineCaps.dwTextureFilterCaps, rec.HWDeviceDesc2.dpcLineCaps.dwTextureFilterCaps)+ |
CompareCountBit(rec.HWDeviceDesc.dpcLineCaps.dwTextureBlendCaps, rec.HWDeviceDesc2.dpcLineCaps.dwTextureBlendCaps)+ |
CompareCountBit(rec.HWDeviceDesc.dpcLineCaps.dwTextureAddressCaps, rec.HWDeviceDesc2.dpcLineCaps.dwTextureAddressCaps)<0 then Exit; |
{$ENDIF} |
Result := True; |
end; |
end; |
3166,10 → 5836,17 |
if (DDraw.DriverCaps.dwCaps and DDCAPS_3D<>0) and |
(DDraw.DriverCaps.ddsCaps.dwCaps and DDSCAPS_TEXTURE<>0) then |
begin |
try |
if DDraw.IDDraw7<>nil then |
Direct3D7 := DDraw.IDraw7 as IDirect3D7 |
{$IFDEF D3D_deprecated} |
else |
Direct3D := DDraw.IDraw as IDirect3D; |
Direct3D := DDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF} as IDirect3D |
{$ENDIF}; |
except |
on E: Exception do |
log(E.Message {$IFNDEF VER4UP}, ChangefileExt(ParamStr(0), '.log'){$ENDIF}); |
end; |
try |
if FindDevice then |
begin |
3178,13 → 5855,16 |
if lpGUID=nil then |
rec.Driver := nil |
else begin |
else |
begin |
rec.DriverGUID^ := lpGUID^; |
rec.Driver^ := @rec.DriverGUID; |
end; |
end; |
finally |
{$IFDEF D3D_deprecated} |
Direct3D := nil; |
{$ENDIF} |
Direct3D7 := nil; |
end; |
end; |
3196,6 → 5876,9 |
var |
rec: TDirect3DInitializingRecord; |
DDraw: TDirectDraw; |
{$IFNDEF D3D_deprecated} |
devGUID: Tguid; |
{$ENDIF} |
begin |
FillChar(rec, SizeOf(rec), 0); |
rec.BitCount := BitCount; |
3208,8 → 5891,9 |
rec.Options := Options; |
rec.Driver := @Driver; |
rec.DriverGUID := @DriverGUID; |
DXDirectDrawEnumerate(@EnumDirectDrawDriverCallback, @rec) |
end else |
DXDirectDrawEnumerate(@EnumDirectDrawDriverCallback, @rec); |
end |
else |
begin |
DDraw := TDirectDraw.Create(Driver); |
try |
3217,10 → 5901,13 |
rec.HELCaps := DDraw.HELCaps; |
rec.D3DFlag := False; |
(DDraw.IDraw as IDirect3D).EnumDevices(@EnumDeviceCallBack, @rec); |
(DDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF} as IDirect3D).EnumDevices(@EnumDeviceCallBack, @rec); |
if rec.D3DFlag then |
{$IFDEF D3D_deprecated} |
rec.DeviceDesc := rec.DeviceDesc2; |
{$ELSE} |
rec.DeviceDesc := rec.DeviceDesc2; |
{$ENDIF} |
finally |
DDraw.Free; |
end; |
3234,7 → 5921,8 |
begin |
if rec.DeviceDesc.dwDeviceRenderBitDepth and DDBD_16<>0 then |
rec.BitCount := 16 |
else if rec.DeviceDesc.dwDeviceRenderBitDepth and DDBD_24<>0 then |
else |
if rec.DeviceDesc.dwDeviceRenderBitDepth and DDBD_24 <> 0 then |
rec.BitCount := 24 |
else if rec.DeviceDesc.dwDeviceRenderBitDepth and DDBD_32<>0 then |
rec.BitCount := 32; |
3241,6 → 5929,30 |
end; |
end; |
{test type of device} |
{$IFNDEF D3D_deprecated} |
D3DDeviceTypeSet := []; |
Move(rec.DeviceDesc2.deviceGUID, devGUID, Sizeof(TGUID) ); |
if CompareMem(@devGUID, @IID_IDirect3DTnLHalDevice, Sizeof(TGUID)) then |
D3DDeviceTypeSet := D3DDeviceTypeSet + [dtTnLHAL]; |
if CompareMem(@devGUID, @IID_IDirect3DHALDEVICE, Sizeof(TGUID)) then |
D3DDeviceTypeSet := D3DDeviceTypeSet + [dtHAL]; |
if CompareMem(@devGUID, @IID_IDirect3DMMXDevice, Sizeof(TGUID)) then |
D3DDeviceTypeSet := D3DDeviceTypeSet + [dtMMX]; |
if CompareMem(@devGUID, @IID_IDirect3DRGBDevice, Sizeof(TGUID)) then |
D3DDeviceTypeSet := D3DDeviceTypeSet + [dtRGB]; |
if CompareMem(@devGUID, @IID_IDirect3DRampDevice, Sizeof(TGUID)) then |
D3DDeviceTypeSet := D3DDeviceTypeSet + [dtRamp]; |
if CompareMem(@devGUID, @IID_IDirect3DRefDevice, Sizeof(TGUID)) then |
D3DDeviceTypeSet := D3DDeviceTypeSet + [dtRef]; |
{$ENDIF} |
BitCount := rec.BitCount; |
end; |
3250,14 → 5962,21 |
BitCount: Integer; |
Driver: PGUID; |
DriverGUID: TGUID; |
{$IFNDEF D3D_deprecated} |
D3DDeviceTypeSet: TD3DDeviceTypeSet; |
{$ENDIF} |
begin |
BitCount := DXDraw.Display.BitCount; |
Driver := DXDraw.Driver; |
Direct3DInitializing(Options, BitCount, Driver, DriverGUID); |
Direct3DInitializing(Options, BitCount, Driver, DriverGUID{$IFNDEF D3D_deprecated}, D3DDeviceTypeSet{$ENDIF}); |
DXDraw.Driver := Driver; |
DXDraw.Display.BitCount := BitCount; |
{$IFNDEF D3D_deprecated} |
DXDraw.FDeviceTypeSet := D3DDeviceTypeSet; |
{$ENDIF} |
end; |
{$IFDEF D3D_deprecated} |
procedure InitializeDirect3D(Surface: TDirectDrawSurface; |
var ZBuffer: TDirectDrawSurface; |
out D3D: IDirect3D; |
3266,6 → 5985,7 |
out D3DDevice: IDirect3DDevice; |
out D3DDevice2: IDirect3DDevice2; |
out D3DDevice3: IDirect3DDevice3; |
{$IFDEF D3DRM} |
var D3DRM: IDirect3DRM; |
var D3DRM2: IDirect3DRM2; |
var D3DRM3: IDirect3DRM3; |
3275,6 → 5995,7 |
out Viewport: IDirect3DRMViewport; |
var Scene: IDirect3DRMFrame; |
var Camera: IDirect3DRMFrame; |
{$ENDIF} |
var NowOptions: TInitializeDirect3DOptions); |
type |
TInitializeDirect3DRecord = record |
3302,9 → 6023,11 |
if DeviceDesc.dwDeviceZBufferBitDepth and DDBD_16<>0 then |
ZBufferBitDepth := 16 |
else if DeviceDesc.dwDeviceZBufferBitDepth and DDBD_24<>0 then |
else |
if DeviceDesc.dwDeviceZBufferBitDepth and DDBD_24 <> 0 then |
ZBufferBitDepth := 24 |
else if DeviceDesc.dwDeviceZBufferBitDepth and DDBD_32<>0 then |
else |
if DeviceDesc.dwDeviceZBufferBitDepth and DDBD_32 <> 0 then |
ZBufferBitDepth := 32 |
else |
ZBufferBitDepth := 0; |
3339,7 → 6062,6 |
end; |
end; |
function EnumDeviceCallBack(const lpGuid: TGUID; lpDeviceDescription, lpDeviceName: PChar; |
const lpD3DHWDeviceDesc, lpD3DHELDeviceDesc: TD3DDeviceDesc; |
lpUserArg: Pointer): HRESULT; stdcall; |
3422,9 → 6144,10 |
NowOptions := NowOptions + [idoZBuffer]; |
end; |
end; |
{$IFDEF D3DRM} |
type |
TDirect3DRMCreate= function(out lplpDirect3DRM: IDirect3DRM): HRESULT; stdcall; |
{$ENDIF} |
begin |
try |
Options := NowOptions; |
3463,12 → 6186,11 |
SetRenderState(TD3DRenderStateType(D3DRENDERSTATE_ZENABLE), Ord(ZBuffer<>nil)); |
SetRenderState(TD3DRenderStateType(D3DRENDERSTATE_ZWRITEENABLE), Ord(ZBuffer<>nil)); |
end; |
{$IFDEF D3DRM} |
{ Direct3D Retained Mode} |
if idoRetainedMode in Options then |
begin |
NowOptions := NowOptions + [idoRetainedMode]; |
if D3DRM=nil then |
begin |
if TDirect3DRMCreate(DXLoadLibrary('D3DRM.dll', 'Direct3DRMCreate'))(D3DRM)<>D3DRM_OK then |
3513,6 → 6235,7 |
Surface.Width, Surface.Height, Viewport); |
Viewport.SetBack(5000.0); |
end; |
{$ENDIF} |
except |
FreeZBufferSurface(Surface, ZBuffer); |
D3D := nil; |
3521,6 → 6244,7 |
D3DDevice := nil; |
D3DDevice2 := nil; |
D3DDevice3 := nil; |
{$IFDEF D3DRM} |
D3DRM := nil; |
D3DRM2 := nil; |
D3DRMDevice := nil; |
3528,9 → 6252,11 |
Viewport := nil; |
Scene := nil; |
Camera := nil; |
{$ENDIF} |
raise; |
end; |
end; |
{$ENDIF} |
procedure InitializeDirect3D7(Surface: TDirectDrawSurface; |
var ZBuffer: TDirectDrawSurface; |
3553,7 → 6279,7 |
MemPosition: array[Boolean] of Integer = (DDSCAPS_SYSTEMMEMORY, DDSCAPS_VIDEOMEMORY); |
var |
ZBufferBitDepth: Integer; |
ddsd: TDDSurfaceDesc; |
ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
begin |
Result := False; |
FreeZBufferSurface(Surface, ZBuffer); |
3572,18 → 6298,27 |
with ddsd do |
begin |
dwSize := SizeOf(ddsd); |
Surface.ISurface.GetSurfaceDesc(ddsd); |
Surface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetSurfaceDesc(ddsd); |
dwFlags := DDSD_CAPS or DDSD_WIDTH or DDSD_HEIGHT or DDSD_ZBUFFERBITDEPTH; |
ddsCaps.dwCaps := DDSCAPS_ZBUFFER or MemPosition[Hardware]; |
dwHeight := Surface.Height; |
dwWidth := Surface.Width; |
{$IFDEF D3D_deprecated} |
dwZBufferBitDepth := ZBufferBitDepth; |
{$ELSE} |
ddpfPixelFormat.dwFlags := DDPF_ZBUFFER; |
ddpfPixelFormat.dwZBufferBitDepth := ZBufferBitDepth; |
ddpfPixelFormat.dwStencilBitDepth := 0; |
ddpfPixelFormat.dwZBitMask := (1 shl ZBufferBitDepth) - 1; |
ddpfPixelFormat.dwStencilBitMask := 0; |
ddpfPixelFormat.dwLuminanceAlphaBitMask := 0; |
{$ENDIF} |
end; |
ZBuffer := TDirectDrawSurface.Create(Surface.DDraw); |
if ZBuffer.CreateSurface(ddsd) then |
begin |
if Surface.ISurface.AddAttachedSurface(ZBuffer.ISurface)<>DD_OK then |
if Surface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.AddAttachedSurface(ZBuffer.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}) <> DD_OK then |
begin |
ZBuffer.Free; ZBuffer := nil; |
Exit; |
3671,8 → 6406,9 |
end; |
begin |
try |
Options := NowOptions - [idoRetainedMode]; |
Options := NowOptions {$IFDEF D3DRM}- [idoRetainedMode]{$ENDIF}; |
NowOptions := []; |
D3D7 := Surface.DDraw.IDraw7 as IDirect3D7; |
3679,11 → 6415,9 |
{ Whether hardware can be used is tested. } |
SupportHardware := (Surface.SurfaceDesc.ddsCaps.dwCaps and DDSCAPS_VIDEOMEMORY<>0) and |
(idoHardware in Options) and (Surface.DDraw.DriverCaps.dwCaps and DDCAPS_3D<>0); |
(idoHardware in Options) and (Surface.DDraw.DriverCaps.dwCaps and DDCAPS_3D <> 0) and |
(Surface.DDraw.DriverCaps.ddsCaps.dwCaps and DDSCAPS_TEXTURE <> 0); |
if Surface.DDraw.DriverCaps.ddsCaps.dwCaps and DDSCAPS_TEXTURE=0 then |
SupportHardware := False; |
{ Direct3D } |
InitDevice; |
3703,8 → 6437,8 |
raise; |
end; |
end; |
type |
type |
{ TDXDrawDriver } |
TDXDrawDriver = class |
3734,6 → 6468,17 |
procedure Initialize; override; |
end; |
procedure TCustomDXDraw.MirrorFlip(Value: TRenderMirrorFlipSet); |
begin |
if CheckD3 then |
FD2D.MirrorFlip := Value; |
end; |
procedure TCustomDXDraw.SaveTextures(path: string); |
begin |
if CheckD3 then |
FD2D.SaveTextures(path) |
end; |
{ TDXDrawDriver } |
constructor TDXDrawDriver.Create(ADXDraw: TCustomDXDraw); |
3744,8 → 6489,8 |
FDXDraw := ADXDraw; |
{ Driver selection and Display mode optimizationn } |
if FDXDraw.FOptions*[doFullScreen, doSystemMemory, do3D, doHardware]= |
[doFullScreen, do3D, doHardware] then |
if FDXDraw.FOptions * [doFullScreen, doSystemMemory, {$IFDEF D3D_deprecated}do3D,{$ENDIF} doHardware] = |
[doFullScreen, {$IFDEF D3D_deprecated}do3D,{$ENDIF} doHardware] then |
begin |
AOptions := []; |
with FDXDraw do |
3754,7 → 6499,7 |
if not FDXDraw.Display.FixedBitCount then AOptions := AOptions + [idoOptimizeDisplayMode]; |
if doHardware in Options then AOptions := AOptions + [idoHardware]; |
if doRetainedMode in Options then AOptions := AOptions + [idoRetainedMode]; |
{$IFDEF D3DRM}if doRetainedMode in Options then AOptions := AOptions + [idoRetainedMode];{$ENDIF} |
if doZBuffer in Options then AOptions := AOptions + [idoZBuffer]; |
end; |
3762,14 → 6507,14 |
end; |
if FDXDraw.Options*[doFullScreen, doHardware, doSystemMemory]=[doFullScreen, doHardware] then |
FDXDraw.FDDraw := TDirectDraw.CreateEx(PGUID(FDXDraw.FDriver), doDirectX7Mode in FDXDraw.Options) |
FDXDraw.FDDraw := TDirectDraw.CreateEx(PGUID(FDXDraw.FDriver), {$IFDEF D3D_deprecated}doDirectX7Mode in FDXDraw.Options{$ELSE}True{$ENDIF}) |
else |
FDXDraw.FDDraw := TDirectDraw.CreateEx(nil, doDirectX7Mode in FDXDraw.Options); |
FDXDraw.FDDraw := TDirectDraw.CreateEx(nil, {$IFDEF D3D_deprecated}doDirectX7Mode in FDXDraw.Options{$ELSE}True{$ENDIF}); |
end; |
procedure TDXDrawDriver.Initialize3D; |
const |
DXDrawOptions3D = [doHardware, doRetainedMode, doSelectDriver, doZBuffer]; |
DXDrawOptions3D = [doHardware, {$IFDEF D3DRM}doRetainedMode,{$ENDIF} doSelectDriver, doZBuffer]; |
var |
AOptions: TInitializeDirect3DOptions; |
begin |
3777,10 → 6522,10 |
with FDXDraw do |
begin |
if doHardware in FOptions then AOptions := AOptions + [idoHardware]; |
if doRetainedMode in FNowOptions then AOptions := AOptions + [idoRetainedMode]; |
{$IFDEF D3DRM}if doRetainedMode in FNowOptions then AOptions := AOptions + [idoRetainedMode];{$ENDIF} |
if doSelectDriver in FOptions then AOptions := AOptions + [idoSelectDriver]; |
if doZBuffer in FOptions then AOptions := AOptions + [idoZBuffer]; |
{$IFDEF D3D_deprecated} |
if doDirectX7Mode in FOptions then |
begin |
InitializeDirect3D7(FSurface, FZBuffer, FD3D7, FD3DDevice7, AOptions); |
3787,12 → 6532,17 |
end else |
begin |
InitializeDirect3D(FSurface, FZBuffer, FD3D, FD3D2, FD3D3, FD3DDevice, FD3DDevice2, FD3DDevice3, |
FD3DRM, FD3DRM2, FD3DRM3, FD3DRMDevice, FD3DRMDevice2, FD3DRMDevice3, FViewport, FScene, FCamera, AOptions); |
{$IFDEF D3DRM} |
FD3DRM, FD3DRM2, FD3DRM3, FD3DRMDevice, FD3DRMDevice2, FD3DRMDevice3, FViewport, FScene, FCamera, |
{$ENDIF} |
AOptions); |
end; |
{$ELSE} |
InitializeDirect3D7(FSurface, FZBuffer, FD3D7, FD3DDevice7, AOptions); |
{$ENDIF} |
FNowOptions := FNowOptions - DXDrawOptions3D; |
if idoHardware in AOptions then FNowOptions := FNowOptions + [doHardware]; |
if idoRetainedMode in AOptions then FNowOptions := FNowOptions + [doRetainedMode]; |
{$IFDEF D3DRM}if idoRetainedMode in AOptions then FNowOptions := FNowOptions + [doRetainedMode];{$ENDIF} |
if idoSelectDriver in AOptions then FNowOptions := FNowOptions + [doSelectDriver]; |
if idoZBuffer in AOptions then FNowOptions := FNowOptions + [doZBuffer]; |
end; |
3809,6 → 6559,7 |
begin |
with FDXDraw do |
begin |
{$IFDEF D3DRM} |
FViewport := nil; |
FCamera := nil; |
FScene := nil; |
3816,13 → 6567,21 |
FD3DRMDevice := nil; |
FD3DRMDevice2 := nil; |
FD3DRMDevice3 := nil; |
FD3DRM3 := nil; |
FD3DRM2 := nil; |
FD3DRM := nil; |
{$ENDIF} |
{$IFDEF D3D_deprecated} |
FD3DDevice := nil; |
FD3DDevice2 := nil; |
FD3DDevice3 := nil; |
{$ENDIF} |
FD3DDevice7 := nil; |
{$IFDEF D3D_deprecated} |
FD3D := nil; |
FD3D2 := nil; |
FD3D3 := nil; |
{$ENDIF} |
FD3D7 := nil; |
FreeZBufferSurface(FSurface, FZBuffer); |
3832,9 → 6591,6 |
FSurface.Free; FSurface := nil; |
FPrimary.Free; FPrimary := nil; |
FD3DRM3 := nil; |
FD3DRM2 := nil; |
FD3DRM := nil; |
end; |
end; |
3867,8 → 6623,11 |
if not AllowPalette256 then |
begin |
dc := GetDC(0); |
try |
GetSystemPaletteEntries(dc, 0, 256, Entries); |
finally |
ReleaseDC(0, dc); |
end; |
for i:=0 to 9 do |
Result[i] := Entries[i]; |
3904,8 → 6663,9 |
end; |
if doWaitVBlank in FDXDraw.NowOptions then |
FDXDraw.FDDraw.DXResult := FDXDraw.FDDraw.IDraw.WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, 0); |
FDXDraw.FDDraw.DXResult := FDXDraw.FDDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, 0); |
FillChar(DF, SizeOf(DF), 0); |
DF.dwsize := SizeOf(DF); |
DF.dwDDFX := 0; |
3913,6 → 6673,7 |
end; |
procedure TDXDrawDriverBlt.Initialize; |
{$IFDEF D3D_deprecated} |
const |
PrimaryDesc: TDDSurfaceDesc = ( |
dwSize: SizeOf(PrimaryDesc); |
3919,10 → 6680,20 |
dwFlags: DDSD_CAPS; |
ddsCaps: (dwCaps: DDSCAPS_PRIMARYSURFACE) |
); |
{$ENDIF} |
var |
Entries: TPaletteEntries; |
PaletteCaps: Integer; |
{$IFNDEF D3D_deprecated} |
PrimaryDesc: TDDSurfaceDesc2; |
{$ENDIF} |
begin |
{$IFNDEF D3D_deprecated} |
FillChar(PrimaryDesc, SizeOf(PrimaryDesc), 0); |
PrimaryDesc.dwSize := SizeOf(PrimaryDesc); |
PrimaryDesc.dwFlags := DDSD_CAPS; |
PrimaryDesc.ddsCaps.dwCaps := DDSCAPS_PRIMARYSURFACE; |
{$ENDIF} |
{ Surface making } |
FDXDraw.FPrimary := TDirectDrawSurface.Create(FDXDraw.FDDraw); |
if not FDXDraw.FPrimary.CreateSurface(PrimaryDesc) then |
3952,9 → 6723,9 |
procedure TDXDrawDriverBlt.InitializeSurface; |
var |
ddsd: TDDSurfaceDesc; |
ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
begin |
FDXDraw.FSurface.IDDSurface := nil; |
FDXDraw.FSurface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := nil; |
{ Surface making } |
FDXDraw.FNowOptions := FDXDraw.FNowOptions - [doSystemMemory]; |
3969,7 → 6740,7 |
ddsCaps.dwCaps := DDSCAPS_OFFSCREENPLAIN; |
if doSystemMemory in FDXDraw.Options then |
ddsCaps.dwCaps := ddsCaps.dwCaps or DDSCAPS_SYSTEMMEMORY; |
if do3D in FDXDraw.FNowOptions then |
{$IFDEF D3D_deprecated}if do3D in FDXDraw.FNowOptions then{$ENDIF} |
ddsCaps.dwCaps := ddsCaps.dwCaps or DDSCAPS_3DDEVICE; |
end; |
3986,7 → 6757,7 |
FDXDraw.FSurface.Palette := FDXDraw.Palette; |
FDXDraw.FSurface.Fill(0); |
if do3D in FDXDraw.FNowOptions then |
{$IFDEF D3D_deprecated}if do3D in FDXDraw.FNowOptions then{$ENDIF} |
Initialize3D; |
end; |
4021,12 → 6792,13 |
procedure TDXDrawDriverFlip.Flip; |
begin |
if (FDXDraw.FForm<>nil) and (FDXDraw.FForm.Active) then |
FDXDraw.FPrimary.DXResult := FDXDraw.FPrimary.ISurface.Flip(nil, DDFLIP_WAIT) |
FDXDraw.FPrimary.DXResult := FDXDraw.FPrimary.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.Flip(nil, DDFLIP_WAIT) |
else |
FDXDraw.FPrimary.DXResult := 0; |
end; |
procedure TDXDrawDriverFlip.Initialize; |
{$IFDEF D3D_deprecated} |
const |
DefPrimaryDesc: TDDSurfaceDesc = ( |
dwSize: SizeOf(DefPrimaryDesc); |
4035,16 → 6807,29 |
ddsCaps: (dwCaps: DDSCAPS_PRIMARYSURFACE or DDSCAPS_FLIP or DDSCAPS_COMPLEX) |
); |
BackBufferCaps: TDDSCaps = (dwCaps: DDSCAPS_BACKBUFFER); |
{$ENDIF} |
var |
PrimaryDesc: TDDSurfaceDesc; |
PrimaryDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
PaletteCaps: Integer; |
Entries: TPaletteEntries; |
DDSurface: IDirectDrawSurface; |
DDSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface{$ELSE}IDirectDrawSurface7{$ENDIF}; |
{$IFNDEF D3D_deprecated} |
BackBufferCaps: TDDSCaps2; |
{$ENDIF} |
begin |
{ Surface making } |
{$IFDEF D3D_deprecated} |
PrimaryDesc := DefPrimaryDesc; |
if do3D in FDXDraw.FNowOptions then |
{$ELSE} |
FillChar(PrimaryDesc, SizeOf(PrimaryDesc), 0); |
PrimaryDesc.dwSize := SizeOf(PrimaryDesc); |
PrimaryDesc.dwFlags := DDSD_CAPS or DDSD_BACKBUFFERCOUNT; |
PrimaryDesc.dwBackBufferCount := 1; |
PrimaryDesc.ddsCaps.dwCaps := DDSCAPS_PRIMARYSURFACE or DDSCAPS_FLIP or DDSCAPS_COMPLEX; |
FillChar(BackBufferCaps, SizeOf(BackBufferCaps), 0); |
BackBufferCaps.dwCaps := DDSCAPS_BACKBUFFER; |
{$ENDIF} |
{$IFDEF D3D_deprecated}if do3D in FDXDraw.FNowOptions then{$ENDIF} |
PrimaryDesc.ddsCaps.dwCaps := PrimaryDesc.ddsCaps.dwCaps or DDSCAPS_3DDEVICE; |
FDXDraw.FPrimary := TDirectDrawSurface.Create(FDXDraw.FDDraw); |
4052,8 → 6837,8 |
raise EDXDrawError.CreateFmt(SCannotMade, [SDirectDrawPrimarySurface]); |
FDXDraw.FSurface := TDirectDrawSurface.Create(FDXDraw.FDDraw); |
if FDXDraw.FPrimary.ISurface.GetAttachedSurface(BackBufferCaps, DDSurface)=DD_OK then |
FDXDraw.FSurface.IDDSurface := DDSurface; |
if FDXDraw.FPrimary.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetAttachedSurface(BackBufferCaps, DDSurface) = DD_OK then |
FDXDraw.FSurface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := DDSurface; |
FDXDraw.FNowOptions := FDXDraw.FNowOptions - [doSystemMemory]; |
if FDXDraw.FSurface.SurfaceDesc.ddscaps.dwCaps and DDSCAPS_SYSTEMMEMORY<>0 then |
4075,8 → 6860,9 |
FDXDraw.FPrimary.Palette := FDXDraw.Palette; |
FDXDraw.FSurface.Palette := FDXDraw.Palette; |
if do3D in FDXDraw.FNowOptions then |
{$IFDEF D3D_deprecated}if do3D in FDXDraw.FNowOptions then{$ENDIF} |
Initialize3D; |
end; |
constructor TCustomDXDraw.Create(AOwner: TComponent); |
4088,14 → 6874,18 |
inherited Create(AOwner); |
FAutoInitialize := True; |
FDisplay := TDXDrawDisplay.Create(Self); |
{$IFDEF _DMO_}FAdapters := EnumDirectDrawDriversEx;{$ENDIF} |
Options := [doAllowReboot, doWaitVBlank, doCenter, {$IFDEF D3D_deprecated}doDirectX7Mode, do3D,{$ENDIF} |
doHardware, doSelectDriver]; |
Options := [doAllowReboot, doWaitVBlank, doCenter, doDirectX7Mode, doHardware, doSelectDriver]; |
FAutoSize := True; |
dc := GetDC(0); |
try |
GetSystemPaletteEntries(dc, 0, 256, Entries); |
finally |
ReleaseDC(0, dc); |
end; |
ColorTable := PaletteEntriesToRGBQuads(Entries); |
DefColorTable := ColorTable; |
4103,7 → 6893,11 |
Width := 100; |
Height := 100; |
ParentColor := False; |
Color := clBtnFace; |
Color := clBlack; //clBtnFace; // FIX |
FD2D := TD2D.Create(Self); |
D2D := FD2D; {as loopback} |
FTraces := TTraces.Create(Self); |
end; |
destructor TCustomDXDraw.Destroy; |
4111,8 → 6905,13 |
Finalize; |
NotifyEventList(dxntDestroying); |
FDisplay.Free; |
{$IFDEF _DMO_}FAdapters := nil;{$ENDIF} |
FSubClass.Free; FSubClass := nil; |
FNotifyEventList.Free; |
FD2D.Free; |
FD2D := nil; |
D2D := nil; |
FTraces.Free; |
inherited Destroy; |
end; |
4121,6 → 6920,13 |
Result := EnumDirectDrawDrivers; |
end; |
{$IFDEF _DMO_} |
class function TCustomDXDraw.DriversEx: TDirectXDriversEx; |
begin |
Result := EnumDirectDrawDriversEx; |
end; |
{$ENDIF} |
type |
PDXDrawNotifyEvent = ^TDXDrawNotifyEvent; |
4183,7 → 6989,7 |
procedure FlipToGDISurface; |
begin |
if Initialized and (FNowOptions*[doFullScreen, doFlip]=[doFullScreen, doFlip]) then |
DDraw.IDraw.FlipToGDISurface; |
DDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.FlipToGDISurface; |
end; |
begin |
4205,6 → 7011,23 |
Exit; |
end; |
end; |
(* |
WM_ACTIVATEAPP: |
begin |
if TWMActivateApp(Message).Active then |
begin |
FActive := True; |
DoActivate; |
// PostMessage(FHandle, CM_ACTIVATE, 0, 0) |
end |
else |
begin |
FActive := False; |
DoDeactivate; |
// PostMessage(FHandle, CM_DEACTIVATE, 0, 0); |
end; |
end; |
*) |
WM_ACTIVATE: |
begin |
if TWMActivate(Message).Active=WA_INACTIVE then |
4218,7 → 7041,25 |
begin |
Finalize; |
end; |
WM_ENTERSIZEMOVE: |
begin |
if not (csLoading in ComponentState) then |
Finalize; |
end; |
WM_EXITSIZEMOVE: |
begin |
if not (csLoading in ComponentState) then |
Initialize; |
end; |
// SW_RESTORE, SW_MAXIMIZE: |
// begin |
// {force finalize/initialize loop} |
// if not AutoInitialize or not (csLoading in ComponentState) then begin |
// Finalize; |
// Initialize; |
// end; |
// end; |
end; |
DefWindowProc(Message); |
end; |
4234,11 → 7075,26 |
procedure TCustomDXDraw.DoInitialize; |
begin |
{$IFDEF _DMO_} |
{erase items for following refresh} |
if Assigned(FAdapters) then FAdapters.Clear; |
EnumDirectDrawDriversEx; |
{$ENDIF} |
if Assigned(FOnInitialize) then FOnInitialize(Self); |
{$IFNDEF DXR_deprecated} |
{$IFDEF D3D_deprecated} |
if not (do3D in Options) then |
Options := Options + [do3D]; |
{$ENDIF} |
{$ENDIF} |
end; |
procedure TCustomDXDraw.DoInitializeSurface; |
begin |
{.06 added for better initialization} |
if Assigned(FD2D) then |
RenderError := FD2D.D2DInitializeSurface; |
if Assigned(FOnInitializeSurface) then FOnInitializeSurface(Self); |
end; |
4294,6 → 7150,10 |
FUpdating := False; |
end; |
end; |
if AsSigned(FD2D) then |
FD2D.Free; |
FD2D := nil; |
D2D := nil |
end; |
procedure TCustomDXDraw.Flip; |
4300,14 → 7160,21 |
begin |
if Initialized and (not FUpdating) then |
begin |
if TryRestore then |
if TryRestore and (not RenderError) then |
TDXDrawDriver(FDXDrawDriver).Flip; |
end; |
RenderError := false; |
end; |
function TCustomDXDraw.GetCanDraw: Boolean; |
begin |
Result := Initialized and (not FUpdating) and (Surface.IDDSurface<>nil) and |
{$IFNDEF DXR_deprecated} |
{$IFDEF D3D_deprecated} |
if not (do3D in Options) then |
Options := Options + [do3D]; |
{$ENDIF} |
{$ENDIF} |
Result := Initialized and (not FUpdating) and (Surface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil) and |
TryRestore; |
end; |
4319,7 → 7186,7 |
function TCustomDXDraw.GetSurfaceHeight: Integer; |
begin |
if Surface.IDDSurface<>nil then |
if Surface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
Result := Surface.Height |
else |
Result := FSurfaceHeight; |
4327,7 → 7194,7 |
function TCustomDXDraw.GetSurfaceWidth: Integer; |
begin |
if Surface.IDDSurface<>nil then |
if Surface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
Result := Surface.Width |
else |
Result := FSurfaceWidth; |
4417,6 → 7284,11 |
Dec(FOffNotifyRestore); |
end; |
if not Assigned(FD2D) then begin |
FD2D := TD2D.Create(Self); |
D2D := FD2D; {as loopback} |
end; |
Restore; |
end; |
4474,9 → 7346,11 |
Result := False; |
end; |
procedure TCustomDXDraw.Render; |
procedure TCustomDXDraw.Render(LagCount: Integer{$IFDEF VER4UP} = 0{$ENDIF}); |
var I: Integer; |
begin |
if FInitialized and (do3D in FNowOptions) and (doRetainedMode in FNowOptions) then |
{$IFDEF D3DRM} |
if FInitialized and {$IFDEF D3D_deprecated}(do3D in FNowOptions) and{$ENDIF} (doRetainedMode in FNowOptions) then |
begin |
asm FInit end; |
FViewport.Clear; |
4484,6 → 7358,15 |
FD3DRMDevice.Update; |
asm FInit end; |
end; |
{$ENDIF} |
{traces} |
if FTraces.Count > 0 then |
for I := 0 to FTraces.Count - 1 do |
if FTraces.Items[I].Active then |
FTraces.Items[I].Render(LagCount); |
{own rendering event} |
if Assigned(FOnRender) then |
FOnRender(Self); |
end; |
procedure TCustomDXDraw.Restore; |
4525,6 → 7408,255 |
SetSize(AWidth, AHeight); |
end; |
procedure TCustomDXDraw.BeginScene; |
begin |
if CheckD3 then |
FD2D.BeginScene |
end; |
procedure TCustomDXDraw.EndScene; |
begin |
if CheckD3 then |
FD2D.EndScene |
end; |
function TCustomDXDraw.CheckD3: Boolean; |
begin |
Result := {$IFDEF D3D_deprecated}(do3D in Options) and{$ENDIF} (doHardware in Options) and AsSigned(FD2D); |
end; |
function TCustomDXDraw.CheckD3D(Dest: TDirectDrawSurface): Boolean; |
begin |
Result := CheckD3 and (FD2D.FDDraw.FSurface = Dest) |
end; |
procedure TCustomDXDraw.ClearStack; |
begin |
if CheckD3 then |
FD2D.D2DTextures.D2DPruneAllTextures; |
end; |
procedure TCustomDXDraw.UpdateTextures; |
var Changed: Boolean; |
begin |
if CheckD3 then begin |
if Assigned(FOnUpdateTextures) then begin |
Changed := False; |
FOnUpdateTextures(FD2D.FD2DTexture, Changed); |
if Changed then FD2D.D2DUpdateTextures; |
end |
end; |
end; |
procedure TCustomDXDraw.TextureFilter(Grade: TD2DTextureFilter); |
begin |
if CheckD3 then |
FD2D.TextureFilter := Grade; |
end; |
procedure TCustomDXDraw.AntialiasFilter(Grade: TD3DAntialiasMode); |
begin |
if CheckD3 then |
FD2D.AntialiasFilter := Grade; |
end; |
// ***** fade effects |
// do not use in dxtimer cycle |
function TCustomDXDraw.Fade2Color(colorfrom, colorto: LongInt): LongInt; |
var i, r1, r2, g1, g2, b1, b2: Integer; |
begin |
r1 := GetRValue(colorfrom); |
r2 := GetRValue(colorto); |
g1 := GetGValue(colorfrom); |
g2 := GetGValue(colorto); |
b1 := GetBValue(colorfrom); |
b2 := GetBValue(colorto); |
if r1 < r2 then |
begin |
for i := r1 to r2 do |
begin |
Surface.Fill(RGB(i, g1, b1)); |
Flip; |
end; |
end |
else |
begin |
for i := r1 downto r2 do |
begin |
Surface.Fill(RGB(i, g1, b1)); |
Flip; |
end; |
end; |
if g1 < g2 then |
begin |
for i := g1 to g2 do |
begin |
Surface.Fill(RGB(r2, i, b1)); |
Flip; |
end; |
end |
else |
begin |
for i := g1 downto g2 do |
begin |
Surface.Fill(RGB(r2, i, b1)); |
Flip; |
end; |
end; |
if b1 < b2 then |
begin |
for i := b1 to b2 do |
begin |
Surface.Fill(RGB(r2, g2, i)); |
Flip; |
end; |
end |
else |
begin |
for i := b1 downto b2 do |
begin |
Surface.Fill(RGB(r2, g2, i)); |
Flip; |
end; |
end; |
Result := colorto; |
end; |
function TCustomDXDraw.Fade2Black(colorfrom: LongInt): LongInt; |
var i, r, g, b: Integer; |
begin |
r := GetRValue(colorfrom); |
g := GetGValue(colorfrom); |
b := GetBValue(colorfrom); |
for i := r downto 0 do |
begin |
Surface.Fill(RGB(i, g, b)); |
Flip; |
end; |
for i := g downto 0 do |
begin |
Surface.Fill(RGB(0, i, b)); |
Flip; |
end; |
for i := g downto 0 do |
begin |
Surface.Fill(RGB(0, 0, i)); |
Flip; |
end; |
Result := 0; |
end; |
function TCustomDXDraw.Fade2White(colorfrom: LongInt): LongInt; |
var i, r, g, b: Integer; |
begin |
r := GetRValue(colorfrom); |
g := GetGValue(colorfrom); |
b := GetBValue(colorfrom); |
for i := r to 255 do |
begin |
Surface.Fill(RGB(i, g, b)); |
Flip; |
end; |
for i := g to 255 do |
begin |
Surface.Fill(RGB(255, i, b)); |
Flip; |
end; |
for i := b to 255 do |
begin |
Surface.Fill(RGB(255, 255, i)); |
Flip; |
end; |
Result := RGB(255, 255, 255); |
end; |
function TCustomDXDraw.Grey2Fade(shadefrom, shadeto: Integer): Integer; |
var i: Integer; |
begin |
if shadefrom < shadeto then |
begin |
for i := shadefrom to shadeto do |
begin |
Surface.Fill(RGB(i, i, i)); |
Flip; |
end; |
end |
else |
begin |
for i := shadefrom downto shadeto do |
begin |
Surface.Fill(RGB(i, i, i)); |
Flip; |
end; |
end; |
Result := shadeto; |
end; |
function TCustomDXDraw.FadeGrey2Screen(oldcolor, newcolour: LongInt): LongInt; |
begin |
result := Grey2Fade(oldcolor, newcolour); |
end; |
function TCustomDXDraw.Fade2Screen(oldcolor, newcolour: LongInt): LongInt; |
begin |
result := Fade2Color(oldcolor, newcolour); |
end; |
function TCustomDXDraw.White2Screen(oldcolor: Integer): LongInt; |
begin |
result := Fade2Color(oldcolor, RGB(255, 255, 255)); |
end; |
function TCustomDXDraw.Black2Screen(oldcolor: Integer): LongInt; |
begin |
result := Fade2Color(oldcolor, RGB(0, 0, 0)); |
end; |
procedure TCustomDXDraw.GrabImage(iX, iY, iWidth, iHeight: Integer; ddib: TDIB); |
var ts, td: trect; |
begin |
ddib.SetSize(iWidth, iHeight, 24); |
ts.left := iX; |
ts.top := iY; |
ts.right := iX + iWidth - 1; |
ts.bottom := iY + iHeight - 1; |
td.left := 0; |
td.top := 0; |
td.right := iWidth; |
td.bottom := iHeight; |
with Surface.Canvas do |
begin |
ddib.Canvas.CopyRect(td, Surface.Canvas, ts); |
Release; |
end; |
end; |
procedure TCustomDXDraw.PasteImage(sdib: TDIB; x, y: Integer); |
var |
ts, td: trect; |
w, h: Integer; |
begin |
w := sdib.width - 1; |
h := sdib.height - 1; |
ts.left := 0; |
ts.top := 0; |
ts.right := w; |
ts.bottom := h; |
td.left := x; |
td.top := y; |
td.right := x + w; |
td.bottom := y + h; |
with Surface.Canvas do |
begin |
CopyRect(td, sdib.Canvas, ts); |
release; |
end; |
end; |
// ***** |
procedure TCustomDXDraw.SetColorTable(const ColorTable: TRGBQuads); |
var |
Entries: TPaletteEntries; |
4548,15 → 7680,15 |
if doFullScreen in FNowOptions then |
begin |
Flags := DDSCL_FULLSCREEN or DDSCL_EXCLUSIVE or DDSCL_ALLOWMODEX; |
Flags := DDSCL_FULLSCREEN or DDSCL_EXCLUSIVE or DDSCL_ALLOWMODEX{$IFDEF DXDOUBLEPRECISION} or DDSCL_FPUPRESERVE{$ENDIF}; |
if doNoWindowChange in FNowOptions then |
Flags := Flags or DDSCL_NOWINDOWCHANGES; |
if doAllowReboot in FNowOptions then |
Flags := Flags or DDSCL_ALLOWREBOOT; |
end else |
Flags := DDSCL_NORMAL; |
Flags := DDSCL_NORMAL{$IFDEF DXDOUBLEPRECISION} or DDSCL_FPUPRESERVE{$ENDIF}; |
DDraw.DXResult := DDraw.IDraw.SetCooperativeLevel(Control.Handle, Flags); |
DDraw.DXResult := DDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.SetCooperativeLevel(Control.Handle, Flags); |
end; |
procedure TCustomDXDraw.SetDisplay(Value: TDXDrawDisplay); |
4576,9 → 7708,10 |
procedure TCustomDXDraw.SetOptions(Value: TDXDrawOptions); |
const |
InitOptions = [doDirectX7Mode, doFullScreen, doNoWindowChange, doAllowReboot, |
doAllowPalette256, doSystemMemory, doFlip, do3D, |
doRetainedMode, doHardware, doSelectDriver, doZBuffer]; |
InitOptions = [doFullScreen, doNoWindowChange, doAllowReboot, |
doAllowPalette256, doSystemMemory, doFlip, |
{$IFDEF D3D_deprecated}doDirectX7Mode, do3D,{$ENDIF}{$IFDEF D3DRM} doRetainedMode, {$ENDIF} |
doHardware, doSelectDriver, doZBuffer]; |
var |
OldOptions: TDXDrawOptions; |
begin |
4588,9 → 7721,10 |
begin |
OldOptions := FNowOptions; |
FNowOptions := FNowOptions*InitOptions+(FOptions-InitOptions); |
{$IFDEF D3D_deprecated} |
if not (do3D in FNowOptions) then |
FNowOptions := FNowOptions - [doHardware, doRetainedMode, doSelectDriver, doZBuffer]; |
FNowOptions := FNowOptions - [doHardware, {$IFDEF D3DRM}doRetainedMode,{$ENDIF} doSelectDriver, doZBuffer]; |
{$ENDIF} |
end else |
begin |
FNowOptions := FOptions; |
4597,16 → 7731,16 |
if not (doFullScreen in FNowOptions) then |
FNowOptions := FNowOptions - [doNoWindowChange, doAllowReBoot, doAllowPalette256, doFlip]; |
{$IFDEF D3D_deprecated} |
if not (do3D in FNowOptions) then |
FNowOptions := FNowOptions - [doDirectX7Mode, doRetainedMode, doHardware, doSelectDriver, doZBuffer]; |
FNowOptions := FNowOptions - [doDirectX7Mode, {$IFDEF D3DRM}doRetainedMode,{$ENDIF} doHardware, doSelectDriver, doZBuffer]; |
{$ENDIF} |
if doSystemMemory in FNowOptions then |
FNowOptions := FNowOptions - [doFlip]; |
{$IFDEF D3DRM} |
if doDirectX7Mode in FNowOptions then |
FNowOptions := FNowOptions - [doRetainedMode]; |
{$ENDIF} |
FNowOptions := FNowOptions - [doHardware]; |
end; |
end; |
4677,24 → 7811,30 |
begin |
Result := False; |
if Initialized and (not FUpdating) and (Primary.IDDSurface<>nil) then |
if Initialized and (not FUpdating) and (Primary.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil) then |
begin |
if (Primary.ISurface.IsLost=DDERR_SURFACELOST) or |
(Surface.ISurface.IsLost=DDERR_SURFACELOST) then |
if (Primary.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.IsLost = DDERR_SURFACELOST) or |
(Surface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.IsLost = DDERR_SURFACELOST) then |
begin |
if Assigned(FD2D) and Assigned(FD2D.FD2DTexture) then FD2D.FD2DTexture.D2DPruneAllTextures;//<-Add Mr.Kawasaki |
Restore; |
Result := (Primary.ISurface.IsLost=DD_OK) and (Surface.ISurface.IsLost=DD_OK); |
Result := (Primary.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.IsLost = DD_OK) and (Surface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.IsLost = DD_OK); |
end else |
Result := True; |
end; |
end; |
procedure TCustomDXDraw.SetTraces(const Value: TTraces); |
begin |
FTraces.Assign(Value); |
end; |
procedure TCustomDXDraw.UpdatePalette; |
begin |
if Initialized and (doWaitVBlank in FNowOptions) then |
begin |
if FDDraw.FDriverCaps.dwPalCaps and DDPCAPS_VSYNC=0 then |
FDDraw.IDraw.WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, 0); |
FDDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, 0); |
end; |
SetColorTable(ColorTable); |
4711,6 → 7851,8 |
end; |
end; |
{$IFDEF DX3D_deprecated} |
{ TCustomDX3D } |
constructor TCustomDX3D.Create(AOwner: TComponent); |
4751,7 → 7893,7 |
FInitialized := False; |
SetOptions(FOptions); |
{$IFDEF D3DRM} |
FViewport := nil; |
FCamera := nil; |
FScene := nil; |
4759,22 → 7901,28 |
FD3DRMDevice := nil; |
FD3DRMDevice2 := nil; |
FD3DRMDevice3 := nil; |
{$ENDIF} |
{$IFDEF D3D_deprecated} |
FD3DDevice := nil; |
FD3DDevice2 := nil; |
FD3DDevice3 := nil; |
{$ENDIF} |
FD3DDevice7 := nil; |
{$IFDEF D3D_deprecated} |
FD3D := nil; |
FD3D2 := nil; |
FD3D3 := nil; |
{$ENDIF} |
FD3D7 := nil; |
FreeZBufferSurface(FSurface, FZBuffer); |
FSurface.Free; FSurface := nil; |
{$IFDEF D3DRM} |
FD3DRM3 := nil; |
FD3DRM2 := nil; |
FD3DRM := nil; |
{$ENDIF} |
end; |
end; |
end; |
4821,7 → 7969,8 |
end else |
begin |
InitializeDirect3D(FSurface, FZBuffer, FD3D, FD3D2, FD3D3, FD3DDevice, FD3DDevice2, FD3DDevice3, |
FD3DRM, FD3DRM2, FD3DRM3, FD3DRMDevice, FD3DRMDevice2, FD3DRMDevice3, FViewport, FScene, FCamera, AOptions); |
{$IFDEF D3DRM}FD3DRM, FD3DRM2, FD3DRM3, FD3DRMDevice, FD3DRMDevice2, FD3DRMDevice3, FViewport, FScene, FCamera, {$ENDIF} |
AOptions); |
end; |
FNowOptions := []; |
4840,6 → 7989,7 |
procedure TCustomDX3D.Render; |
begin |
{$IFDEF D3DRM} |
if FInitialized and (toRetainedMode in FNowOptions) then |
begin |
asm FInit end; |
4848,6 → 7998,7 |
FD3DRMDevice.Update; |
asm FInit end; |
end; |
{$ENDIF} |
end; |
function TCustomDX3D.GetCanDraw: Boolean; |
5004,6 → 8155,8 |
end; |
end; |
{$ENDIF} |
{ TDirect3DTexture } |
constructor TDirect3DTexture.Create(Graphic: TGraphic; DXDraw: TComponent); |
5028,12 → 8181,15 |
begin |
with (FDXDraw as TCustomDXDraw) do |
begin |
if (not Initialized) or (not (do3D in NowOptions)) then |
if (not Initialized) {$IFDEF D3D_deprecated}or (not (do3D in NowOptions)){$ENDIF} then |
raise EDirect3DTextureError.CreateFmt(SNotMade, [FDXDraw.ClassName]); |
end; |
FSurface := TDirectDrawSurface.Create((FDXDraw as TCustomDXDraw).Surface.DDraw); |
(FDXDraw as TCustomDXDraw).RegisterNotifyEvent(DXDrawNotifyEvent); |
end else if FDXDraw is TCustomDX3D then |
end |
else |
{$IFDEF DX3D_deprecated} |
if FDXDraw is TCustomDX3D then |
begin |
with (FDXDraw as TDX3D) do |
begin |
5044,6 → 8200,7 |
FSurface := TDirectDrawSurface.Create((FDXDraw as TCustomDX3D).Surface.DDraw); |
(FDXDraw as TCustomDX3D).FDXDraw.RegisterNotifyEvent(DXDrawNotifyEvent); |
end else |
{$ENDIF} |
raise EDirect3DTextureError.CreateFmt(SNotSupported, [FDXDraw.ClassName]); |
end; |
5052,11 → 8209,13 |
if FDXDraw is TCustomDXDraw then |
begin |
(FDXDraw as TCustomDXDraw).UnRegisterNotifyEvent(DXDrawNotifyEvent); |
end else if FDXDraw is TCustomDX3D then |
end |
{$IFDEF DX3D_deprecated} |
else if FDXDraw is TCustomDX3D then |
begin |
(FDXDraw as TCustomDX3D).FDXDraw.UnRegisterNotifyEvent(DXDrawNotifyEvent); |
end; |
end |
{$ENDIF}; |
Clear; |
FSurface.Free; |
inherited Destroy; |
5066,7 → 8225,7 |
begin |
FHandle := 0; |
FTexture := nil; |
FSurface.IDDSurface := nil; |
FSurface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := nil; |
end; |
function TDirect3DTexture.GetHandle: TD3DTextureHandle; |
5083,7 → 8242,7 |
Result := FSurface; |
end; |
function TDirect3DTexture.GetTexture: IDirect3DTexture; |
function TDirect3DTexture.GetTexture: {$IFDEF D3D_deprecated}IDirect3DTexture{$ELSE}IDirect3DTexture2{$ENDIF}; |
begin |
if FTexture=nil then |
Restore; |
5173,12 → 8332,12 |
end; |
var |
ddsd: TDDSurfaceDesc; |
ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
Palette: TDirectDrawPalette; |
PaletteCaps: Integer; |
TempSurface: TDirectDrawSurface; |
Width2, Height2: Integer; |
D3DDevice: IDirect3DDevice; |
D3DDevice: {$IFDEF D3D_deprecated}IDirect3DDevice{$ELSE}IDirect3DDevice7{$ENDIF}; |
Hardware: Boolean; |
DDraw: TDirectDraw; |
begin |
5189,14 → 8348,17 |
if FDXDraw is TCustomDXDraw then |
begin |
DDraw := (FDXDraw as TCustomDXDraw).DDraw; |
D3DDevice := (FDXDraw as TCustomDXDraw).D3DDevice; |
D3DDevice := (FDXDraw as TCustomDXDraw).{$IFDEF D3D_deprecated}D3DDevice{$ELSE}D3DDevice7{$ENDIF}; |
Hardware := doHardware in (FDXDraw as TCustomDXDraw).NowOptions; |
end else if FDXDraw is TCustomDX3D then |
end |
{$IFDEF DX3D_deprecated} |
else if FDXDraw is TCustomDX3D then |
begin |
DDraw := (FDXDraw as TCustomDX3D).Surface.DDraw; |
D3DDevice := (FDXDraw as TCustomDX3D).D3DDevice; |
Hardware := toHardware in (FDXDraw as TCustomDX3D).NowOptions; |
end; |
end |
{$ENDIF}; |
if (DDraw=nil) or (D3DDevice=nil) then Exit; |
5284,13 → 8446,13 |
end; |
{ Source surface is loaded into surface. } |
FTexture := FSurface.ISurface as IDirect3DTexture; |
FTexture.Load(TempSurface.ISurface as IDirect3DTexture); |
FTexture := FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF} as {$IFDEF D3D_deprecated}IDirect3DTexture{$ELSE}IDirect3DTexture2{$ENDIF}; |
FTexture.Load(TempSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF} as {$IFDEF D3D_deprecated}IDirect3DTexture{$ELSE}IDirect3DTexture2{$ENDIF}); |
finally |
TempSurface.Free; |
end; |
if FTexture.GetHandle(D3DDevice, FHandle)<>D3D_OK then |
if FTexture.GetHandle(D3DDevice as {$IFDEF D3D_deprecated}IDirect3DDevice{$ELSE}IDirect3DDevice2{$ENDIF}, FHandle) <> D3D_OK then |
raise EDirect3DTextureError.CreateFmt(SCannotMade, [STexture]); |
FSurface.TransparentColor := FSurface.ColorMatch(FTransparentColor); |
5327,9 → 8489,11 |
if FSrcImage is TDXTextureImage then |
FImage := TDXTextureImage(FSrcImage) |
else if FSrcImage is TDIB then |
else |
if FSrcImage is TDIB then |
SetDIB(TDIB(FSrcImage)) |
else if FSrcImage is TGraphic then |
else |
if FSrcImage is TGraphic then |
begin |
FSrcImage := TDIB.Create; |
try |
5340,7 → 8504,8 |
Graphic.Free; |
FAutoFreeGraphic := True; |
end; |
end else |
end |
else |
if FSrcImage is TPicture then |
begin |
FSrcImage := TDIB.Create; |
5352,7 → 8517,8 |
Graphic.Free; |
FAutoFreeGraphic := True; |
end; |
end else |
end |
else |
raise Exception.CreateFmt(SCannotLoadGraphic, [Graphic.ClassName]); |
FMipmap := FImage.SubGroupImageCount[DXTextureImageGroupType_Mipmap]>0; |
5514,6 → 8680,17 |
FImage := FImage2; |
end; |
function TDirect3DTexture2.GetHeight: Integer; |
begin |
if Assigned(FImage) then |
Result := FImage.Height |
else |
if Assigned(FImage2) then |
Result := FImage2.Height |
else |
Result := 0; |
end; |
function TDirect3DTexture2.GetIsMipmap: Boolean; |
begin |
if FSurface<>nil then |
5537,6 → 8714,17 |
Result := FTransparent; |
end; |
function TDirect3DTexture2.GetWidth: Integer; |
begin |
if Assigned(FImage) then |
Result := FImage.Width |
else |
if Assigned(FImage2) then |
Result := FImage2.Width |
else |
Result := 0; |
end; |
procedure TDirect3DTexture2.SetTransparent(Value: Boolean); |
begin |
if FTransparent<>Value then |
5722,9 → 8910,9 |
Width, Height: Integer; |
PaletteCaps: DWORD; |
Palette: IDirectDrawPalette; |
TempD3DDevDesc: TD3DDeviceDesc; |
{$IFDEF D3D_deprecated}TempD3DDevDesc: TD3DDeviceDesc;{$ENDIF} |
D3DDevDesc7: TD3DDeviceDesc7; |
TempSurface: IDirectDrawSurface4; |
TempSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface4{$ELSE}IDirectDrawSurface7{$ENDIF}; |
begin |
Finalize; |
try |
5735,12 → 8923,14 |
FD3DDevDesc.dpcTriCaps.dwTextureCaps := D3DDevDesc7.dpcTriCaps.dwTextureCaps; |
FD3DDevDesc.dwMinTextureWidth := D3DDevDesc7.dwMinTextureWidth; |
FD3DDevDesc.dwMaxTextureWidth := D3DDevDesc7.dwMaxTextureWidth; |
end else |
end |
{$IFDEF D3D_deprecated} |
else |
begin |
FD3DDevDesc.dwSize := SizeOf(FD3DDevDesc); |
TempD3DDevDesc.dwSize := SizeOf(TempD3DDevDesc); |
FDXDraw.D3DDevice3.GetCaps(FD3DDevDesc, TempD3DDevDesc); |
end; |
end{$ENDIF}; |
if FImage<>nil then |
begin |
5750,7 → 8940,8 |
{ The size of the texture is only Sqr(n). } |
Width := Max(1 shl GetBitCount(FImage.Width), 1); |
Height := Max(1 shl GetBitCount(FImage.Height), 1); |
end else |
end |
else |
begin |
Width := FImage.Width; |
Height := FImage.Height; |
5779,8 → 8970,8 |
FEnumTextureFormatFlag := False; |
if FDXDraw.D3DDevice7<>nil then |
FDXDraw.D3DDevice7.EnumTextureFormats(@EnumTextureFormatCallback, Self) |
else |
FDXDraw.D3DDevice3.EnumTextureFormats(@EnumTextureFormatCallback, Self); |
{$IFDEF D3D_deprecated}else |
FDXDraw.D3DDevice3.EnumTextureFormats(@EnumTextureFormatCallback, Self){$ENDIF}; |
if not FEnumTextureFormatFlag then |
raise EDirect3DTextureError.CreateFmt(SCannotInitialized, [STexture]); |
5814,10 → 9005,10 |
end; |
FSurface := TDirectDrawSurface.Create(FDXDraw.DDraw); |
FSurface.DDraw.DXResult := FSurface.DDraw.IDraw4.CreateSurface(FTextureFormat, TempSurface, nil); |
FSurface.DDraw.DXResult := FSurface.DDraw.{$IFDEF D3D_deprecated}IDraw4{$ELSE}IDraw7{$ENDIF}.CreateSurface(FTextureFormat, TempSurface, nil); |
if FSurface.DDraw.DXResult<>DD_OK then |
raise EDirect3DTextureError.CreateFmt(SCannotInitialized, [STexture]); |
FSurface.IDDSurface4 := TempSurface; |
FSurface.{$IFDEF D3D_deprecated}IDDSurface4{$ELSE}IDDSurface7{$ENDIF} := TempSurface; |
{ Palette making } |
if (FImage<>nil) and (FTextureFormat.ddpfPixelFormat.dwFlags and DDPF_PALETTEINDEXED<>0) then |
5824,11 → 9015,14 |
begin |
if FTextureFormat.ddpfPixelFormat.dwFlags and DDPF_PALETTEINDEXED8<>0 then |
PaletteCaps := DDPCAPS_8BIT or DDPCAPS_ALLOW256 |
else if FTextureFormat.ddpfPixelFormat.dwFlags and DDPF_PALETTEINDEXED4<>0 then |
else |
if FTextureFormat.ddpfPixelFormat.dwFlags and DDPF_PALETTEINDEXED4 <> 0 then |
PaletteCaps := DDPCAPS_4BIT |
else if FTextureFormat.ddpfPixelFormat.dwFlags and DDPF_PALETTEINDEXED2<>0 then |
else |
if FTextureFormat.ddpfPixelFormat.dwFlags and DDPF_PALETTEINDEXED2 <> 0 then |
PaletteCaps := DDPCAPS_2BIT |
else if FTextureFormat.ddpfPixelFormat.dwFlags and DDPF_PALETTEINDEXED1<>0 then |
else |
if FTextureFormat.ddpfPixelFormat.dwFlags and DDPF_PALETTEINDEXED1 <> 0 then |
PaletteCaps := DDPCAPS_1BIT |
else |
PaletteCaps := 0; |
5835,10 → 9029,10 |
if PaletteCaps<>0 then |
begin |
if FDXDraw.DDraw.IDraw.CreatePalette(PaletteCaps, @FImage.idx_palette, Palette, nil)<>0 then |
if FDXDraw.DDraw.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.CreatePalette(PaletteCaps, @FImage.idx_palette, Palette, nil) <> 0 then |
Exit; |
FSurface.ISurface.SetPalette(Palette); |
FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.SetPalette(Palette); |
end; |
end; |
5853,7 → 9047,7 |
const |
MipmapCaps: TDDSCaps2 = (dwCaps: DDSCAPS_TEXTURE or DDSCAPS_MIPMAP); |
var |
CurSurface, NextSurface: IDirectDrawSurface4; |
CurSurface, NextSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface4{$ELSE}IDirectDrawSurface7{$ENDIF}; |
Index: Integer; |
SrcImage: TDXTextureImage; |
begin |
5861,7 → 9055,7 |
Initialize; |
FNeedLoadTexture := False; |
if FSurface.ISurface.IsLost=DDERR_SURFACELOST then |
if FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.IsLost = DDERR_SURFACELOST then |
FSurface.Restore; |
{ Color key setting. } |
5873,7 → 9067,7 |
if FSrcImage is TDIB then |
SetDIB(TDIB(FSrcImage)); |
CurSurface := FSurface.ISurface4; |
CurSurface := FSurface.{$IFDEF D3D_deprecated}ISurface4{$ELSE}ISurface7{$ENDIF}; |
Index := 0; |
while CurSurface<>nil do |
begin |
5894,7 → 9088,8 |
Inc(Index); |
end; |
end else |
end |
else |
DoRestoreSurface; |
end; |
5913,7 → 9108,8 |
begin |
{ Palette index } |
ck.dwColorSpaceLowValue := FTransparentColor and $FF; |
end else |
end |
else |
if FImage<>nil then |
begin |
{ RGB value } |
5920,7 → 9116,8 |
ck.dwColorSpaceLowValue := FImage.PaletteIndex(GetRValue(FTransparentColor), GetGValue(FTransparentColor), GetBValue(FTransparentColor)); |
end else |
Exit; |
end else |
end |
else |
begin |
if (FImage<>nil) and (FImage.ImageType=DXTextureImageType_PaletteIndexedColor) and (FTransparentColor shr 24=$01) then |
begin |
5929,7 → 9126,8 |
dxtEncodeChannel(dxtMakeChannel(FSurface.SurfaceDesc.ddpfPixelFormat.dwRBitMask, False), FImage.idx_palette[FTransparentColor and $FF].peRed) or |
dxtEncodeChannel(dxtMakeChannel(FSurface.SurfaceDesc.ddpfPixelFormat.dwGBitMask, False), FImage.idx_palette[FTransparentColor and $FF].peGreen) or |
dxtEncodeChannel(dxtMakeChannel(FSurface.SurfaceDesc.ddpfPixelFormat.dwBBitMask, False), FImage.idx_palette[FTransparentColor and $FF].peBlue); |
end else |
end |
else |
if FTransparentColor shr 24=$00 then |
begin |
{ RGB value } |
5937,18 → 9135,19 |
dxtEncodeChannel(dxtMakeChannel(FSurface.SurfaceDesc.ddpfPixelFormat.dwRBitMask, False), GetRValue(FTransparentColor)) or |
dxtEncodeChannel(dxtMakeChannel(FSurface.SurfaceDesc.ddpfPixelFormat.dwGBitMask, False), GetGValue(FTransparentColor)) or |
dxtEncodeChannel(dxtMakeChannel(FSurface.SurfaceDesc.ddpfPixelFormat.dwBBitMask, False), GetBValue(FTransparentColor)); |
end else |
end |
else |
Exit; |
end; |
ck.dwColorSpaceHighValue := ck.dwColorSpaceLowValue; |
FSurface.ISurface.SetColorKey(DDCKEY_SRCBLT, ck); |
FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.SetColorKey(DDCKEY_SRCBLT, @ck); |
FUseColorKey := True; |
end; |
end; |
procedure TDirect3DTexture2.LoadSubTexture(Dest: IDirectDrawSurface4; SrcImage: TDXTextureImage); |
procedure TDirect3DTexture2.LoadSubTexture(Dest: {$IFDEF D3D_deprecated}IDirectDrawSurface4{$ELSE}IDirectDrawSurface7{$ENDIF}; SrcImage: TDXTextureImage); |
const |
Mask1: array[0..7] of DWORD = (1, 2, 4, 8, 16, 32, 64, 128); |
Mask2: array[0..3] of DWORD = (3, 12, 48, 192); |
5986,12 → 9185,16 |
if Dest.Lock(nil, ddsd, DDLOCK_WAIT, 0)=0 then |
begin |
try |
if (SrcImage.idx_index.Mask=DWORD(1 shl ddsd.ddpfPixelFormat.dwRGBBitCount)-1) and (SrcImage.idx_alpha.Mask=0) and |
(SrcImage.BitCount=Integer(ddsd.ddpfPixelFormat.dwRGBBitCount)) and (not SrcImage.PackedPixelOrder) then |
if (SrcImage.idx_index.Mask = DWORD(1 shl ddsd.ddpfPixelFormat.dwRGBBitCount) - 1) and |
(SrcImage.idx_alpha.Mask = 0) and |
(SrcImage.BitCount = Integer(ddsd.ddpfPixelFormat.dwRGBBitCount)) and |
(not SrcImage.PackedPixelOrder) |
then |
begin |
for y:=0 to ddsd.dwHeight-1 do |
Move(SrcImage.ScanLine[y]^, Pointer(Integer(ddsd.lpSurface)+ddsd.lPitch*y)^, (Integer(ddsd.dwWidth)*SrcImage.BitCount+7) div 8); |
end else |
end |
else |
begin |
for y:=0 to ddsd.dwHeight-1 do |
begin |
6036,7 → 9239,8 |
SetPixel(ddsd, x, y, c); |
end; |
end else |
end |
else |
begin |
cA := dxtEncodeChannel(dest_alpha_fmt, 255); |
6077,11 → 9281,13 |
if (dest_red_fmt.Mask=SrcImage.rgb_red.Mask) and (dest_green_fmt.Mask=SrcImage.rgb_green.Mask) and |
(dest_blue_fmt.Mask=SrcImage.rgb_blue.Mask) and (dest_alpha_fmt.Mask=SrcImage.rgb_alpha.Mask) and |
(Integer(ddsd.ddpfPixelFormat.dwRGBBitCount)=SrcImage.BitCount) and (not SrcImage.PackedPixelOrder) then |
(Integer(ddsd.ddpfPixelFormat.dwRGBBitCount) = SrcImage.BitCount) and (not SrcImage.PackedPixelOrder) |
then |
begin |
for y:=0 to ddsd.dwHeight-1 do |
Move(SrcImage.ScanLine[y]^, Pointer(Integer(ddsd.lpSurface)+ddsd.lPitch*y)^, (Integer(ddsd.dwWidth)*SrcImage.BitCount+7) div 8); |
end else |
end |
else |
if SrcImage.rgb_alpha.mask<>0 then |
begin |
for y:=0 to ddsd.dwHeight-1 do |
6096,7 → 9302,8 |
SetPixel(ddsd, x, y, c); |
end; |
end else |
end |
else |
begin |
cA := dxtEncodeChannel(dest_alpha_fmt, 255); |
6139,10 → 9346,2147 |
end; |
end; |
{ Support function } |
function GetWidthBytes(Width, BitCount: Integer): Integer; |
begin |
Result := (((Width * BitCount) + 31) div 32) * 4; |
end; |
function dxtEncodeChannel(const Channel: TDXTextureImageChannel; c: DWORD): DWORD; |
begin |
Result := ((c shl Channel._rshift) shr Channel._lshift) and Channel.Mask; |
end; |
function dxtDecodeChannel(const Channel: TDXTextureImageChannel; c: DWORD): DWORD; |
begin |
Result := ((c and Channel.Mask) shr Channel._rshift) shl Channel._lshift; |
Result := Result or (Result shr Channel._BitCount2); |
end; |
function dxtMakeChannel(Mask: DWORD; indexed: Boolean): TDXTextureImageChannel; |
function GetMaskBitCount(b: Integer): Integer; |
var |
i: Integer; |
begin |
i := 0; |
while (i < 31) and (((1 shl i) and b) = 0) do Inc(i); |
Result := 0; |
while ((1 shl i) and b) <> 0 do |
begin |
Inc(i); |
Inc(Result); |
end; |
end; |
function GetBitCount2(b: Integer): Integer; |
begin |
Result := 0; |
while (Result < 31) and (((1 shl Result) and b) = 0) do Inc(Result); |
end; |
begin |
Result.BitCount := GetMaskBitCount(Mask); |
Result.Mask := Mask; |
if indexed then |
begin |
Result._rshift := GetBitCount2(Mask); |
Result._lshift := 0; |
Result._Mask2 := 1 shl Result.BitCount - 1; |
Result._BitCount2 := 0; |
end |
else |
begin |
Result._rshift := GetBitCount2(Mask) - (8 - Result.BitCount); |
if Result._rshift < 0 then |
begin |
Result._lshift := -Result._rshift; |
Result._rshift := 0; |
end |
else |
Result._lshift := 0; |
Result._Mask2 := (1 shl Result.BitCount - 1) shl (8 - Result.BitCount); |
Result._BitCount2 := 8 - Result.BitCount; |
end; |
end; |
{ TDXTextureImage } |
var |
_DXTextureImageLoadFuncList: TList; |
procedure DXTextureImage_LoadDXTextureImageFunc(Stream: TStream; Image: TDXTextureImage); forward; |
procedure DXTextureImage_LoadBitmapFunc(Stream: TStream; Image: TDXTextureImage); forward; |
function DXTextureImageLoadFuncList: TList; |
begin |
if _DXTextureImageLoadFuncList = nil then |
begin |
_DXTextureImageLoadFuncList := TList.Create; |
_DXTextureImageLoadFuncList.Add(@DXTextureImage_LoadDXTextureImageFunc); |
_DXTextureImageLoadFuncList.Add(@DXTextureImage_LoadBitmapFunc); |
end; |
Result := _DXTextureImageLoadFuncList; |
end; |
class procedure TDXTextureImage.RegisterLoadFunc(LoadFunc: TDXTextureImageLoadFunc); |
begin |
if DXTextureImageLoadFuncList.IndexOf(@LoadFunc) = -1 then |
DXTextureImageLoadFuncList.Add(@LoadFunc); |
end; |
class procedure TDXTextureImage.UnRegisterLoadFunc(LoadFunc: TDXTextureImageLoadFunc); |
begin |
DXTextureImageLoadFuncList.Remove(@LoadFunc); |
end; |
constructor TDXTextureImage.Create; |
begin |
inherited Create; |
FSubImage := TList.Create; |
end; |
constructor TDXTextureImage.CreateSub(AOwner: TDXTextureImage); |
begin |
Create; |
FOwner := AOwner; |
try |
FOwner.FSubImage.Add(Self); |
except |
FOwner := nil; |
raise; |
end; |
end; |
destructor TDXTextureImage.Destroy; |
begin |
Clear; |
FSubImage.Free; |
if FOwner <> nil then |
FOwner.FSubImage.Remove(Self); |
inherited Destroy; |
end; |
procedure TDXTextureImage.DoSaveProgress(Progress, ProgressCount: Integer); |
begin |
if Assigned(FOnSaveProgress) then |
FOnSaveProgress(Self, Progress, ProgressCount); |
end; |
procedure TDXTextureImage.Assign(Source: TDXTextureImage); |
var |
y: Integer; |
begin |
SetSize(Source.ImageType, Source.Width, Source.Height, Source.BitCount, Source.WidthBytes); |
idx_index := Source.idx_index; |
idx_alpha := Source.idx_alpha; |
idx_palette := Source.idx_palette; |
rgb_red := Source.rgb_red; |
rgb_green := Source.rgb_green; |
rgb_blue := Source.rgb_blue; |
rgb_alpha := Source.rgb_alpha; |
for y := 0 to Height - 1 do |
Move(Source.ScanLine[y]^, ScanLine[y]^, WidthBytes); |
Transparent := Source.Transparent; |
TransparentColor := Source.TransparentColor; |
ImageGroupType := Source.ImageGroupType; |
ImageID := Source.ImageID; |
ImageName := Source.ImageName; |
end; |
procedure TDXTextureImage.ClearImage; |
begin |
if FAutoFreeImage then |
FreeMem(FPBits); |
FImageType := DXTextureImageType_PaletteIndexedColor; |
FWidth := 0; |
FHeight := 0; |
FBitCount := 0; |
FWidthBytes := 0; |
FNextLine := 0; |
FSize := 0; |
FPBits := nil; |
FTopPBits := nil; |
FAutoFreeImage := False; |
end; |
procedure TDXTextureImage.Clear; |
begin |
ClearImage; |
while SubImageCount > 0 do |
SubImages[SubImageCount - 1].Free; |
FImageGroupType := 0; |
FImageID := 0; |
FImageName := ''; |
FTransparent := False; |
FTransparentColor := 0; |
FillChar(idx_index, SizeOf(idx_index), 0); |
FillChar(idx_alpha, SizeOf(idx_alpha), 0); |
FillChar(idx_palette, SizeOf(idx_palette), 0); |
FillChar(rgb_red, SizeOf(rgb_red), 0); |
FillChar(rgb_green, SizeOf(rgb_green), 0); |
FillChar(rgb_blue, SizeOf(rgb_blue), 0); |
FillChar(rgb_alpha, SizeOf(rgb_alpha), 0); |
end; |
procedure TDXTextureImage.SetImage(ImageType: TDXTextureImageType; Width, Height, BitCount, WidthBytes, NextLine: Integer; |
PBits, TopPBits: Pointer; Size: Integer; AutoFree: Boolean); |
begin |
ClearImage; |
FAutoFreeImage := AutoFree; |
FImageType := ImageType; |
FWidth := Width; |
FHeight := Height; |
FBitCount := BitCount; |
FWidthBytes := WidthBytes; |
FNextLine := NextLine; |
FSize := Size; |
FPBits := PBits; |
FTopPBits := TopPBits; |
end; |
procedure TDXTextureImage.SetSize(ImageType: TDXTextureImageType; Width, Height, BitCount, WidthBytes: Integer); |
var |
APBits: Pointer; |
begin |
ClearImage; |
if WidthBytes = 0 then |
WidthBytes := GetWidthBytes(Width, BitCount); |
GetMem(APBits, WidthBytes * Height); |
SetImage(ImageType, Width, Height, BitCount, WidthBytes, |
WidthBytes, APBits, APBits, WidthBytes * Height, True); |
end; |
function TDXTextureImage.GetScanLine(y: Integer): Pointer; |
begin |
Result := Pointer(Integer(FTopPBits) + FNextLine * y); |
end; |
function TDXTextureImage.GetSubGroupImageCount(GroupTypeID: DWORD): Integer; |
var |
i: Integer; |
begin |
Result := 0; |
for i := 0 to SubImageCount - 1 do |
if SubImages[i].ImageGroupType = GroupTypeID then |
Inc(Result); |
end; |
function TDXTextureImage.GetSubGroupImage(GroupTypeID: DWORD; Index: Integer): TDXTextureImage; |
var |
i, j: Integer; |
begin |
j := 0; |
for i := 0 to SubImageCount - 1 do |
if SubImages[i].ImageGroupType = GroupTypeID then |
begin |
if j = Index then |
begin |
Result := SubImages[i]; |
Exit; |
end; |
Inc(j); |
end; |
Result := nil; |
SubImages[-1]; |
end; |
function TDXTextureImage.GetSubImageCount: Integer; |
begin |
Result := 0; |
if Assigned(FSubImage) then |
Result := FSubImage.Count; |
end; |
function TDXTextureImage.GetSubImage(Index: Integer): TDXTextureImage; |
begin |
Result := FSubImage[Index]; |
end; |
function TDXTextureImage.EncodeColor(R, G, B, A: Byte): DWORD; |
begin |
if ImageType = DXTextureImageType_PaletteIndexedColor then |
begin |
Result := dxtEncodeChannel(idx_index, PaletteIndex(R, G, B)) or |
dxtEncodeChannel(idx_alpha, A); |
end |
else |
begin |
Result := dxtEncodeChannel(rgb_red, R) or |
dxtEncodeChannel(rgb_green, G) or |
dxtEncodeChannel(rgb_blue, B) or |
dxtEncodeChannel(rgb_alpha, A); |
end; |
end; |
function TDXTextureImage.PaletteIndex(R, G, B: Byte): DWORD; |
var |
i, d, d2: Integer; |
begin |
Result := 0; |
if ImageType = DXTextureImageType_PaletteIndexedColor then |
begin |
d := MaxInt; |
for i := 0 to (1 shl idx_index.BitCount) - 1 do |
with idx_palette[i] do |
begin |
d2 := Abs((peRed - R)) * Abs((peRed - R)) + Abs((peGreen - G)) * Abs((peGreen - G)) + Abs((peBlue - B)) * Abs((peBlue - B)); |
if d > d2 then |
begin |
d := d2; |
Result := i; |
end; |
end; |
end; |
end; |
const |
Mask1: array[0..7] of DWORD = (1, 2, 4, 8, 16, 32, 64, 128); |
Mask2: array[0..3] of DWORD = (3, 12, 48, 192); |
Mask4: array[0..1] of DWORD = ($0F, $F0); |
Shift1: array[0..7] of DWORD = (0, 1, 2, 3, 4, 5, 6, 7); |
Shift2: array[0..3] of DWORD = (0, 2, 4, 6); |
Shift4: array[0..1] of DWORD = (0, 4); |
type |
PByte3 = ^TByte3; |
TByte3 = array[0..2] of Byte; |
function TDXTextureImage.GetPixel(x, y: Integer): DWORD; |
begin |
Result := 0; |
if (x >= 0) and (x < FWidth) and (y >= 0) and (y < FHeight) then |
begin |
case FBitCount of |
1: begin |
if FPackedPixelOrder then |
Result := (PByte(Integer(FTopPBits) + FNextLine * y + x shr 3)^ and Mask1[7 - x and 7]) shr Shift1[7 - x and 7] |
else |
Result := (PByte(Integer(FTopPBits) + FNextLine * y + x shr 3)^ and Mask1[x and 7]) shr Shift1[x and 7]; |
end; |
2: begin |
if FPackedPixelOrder then |
Result := (PByte(Integer(FTopPBits) + FNextLine * y + x shr 2)^ and Mask2[3 - x and 3]) shr Shift2[3 - x and 3] |
else |
Result := (PByte(Integer(FTopPBits) + FNextLine * y + x shr 2)^ and Mask2[x and 3]) shr Shift2[x and 3]; |
end; |
4: begin |
if FPackedPixelOrder then |
Result := (PByte(Integer(FTopPBits) + FNextLine * y + x shr 1)^ and Mask4[1 - x and 1]) shr Shift4[1 - x and 1] |
else |
Result := (PByte(Integer(FTopPBits) + FNextLine * y + x shr 1)^ and Mask4[x and 1]) shr Shift4[x and 1]; |
end; |
8: Result := PByte(Integer(FTopPBits) + FNextLine * y + x)^; |
16: Result := PWord(Integer(FTopPBits) + FNextLine * y + x * 2)^; |
24: PByte3(@Result)^ := PByte3(Integer(FTopPBits) + FNextLine * y + x * 3)^; |
32: Result := PDWORD(Integer(FTopPBits) + FNextLine * y + x * 4)^; |
end; |
end; |
end; |
procedure TDXTextureImage.SetPixel(x, y: Integer; c: DWORD); |
var |
P: PByte; |
begin |
if (x >= 0) and (x < FWidth) and (y >= 0) and (y < FHeight) then |
begin |
case FBitCount of |
1: begin |
P := Pointer(Integer(FTopPBits) + FNextLine * y + x shr 3); |
if FPackedPixelOrder then |
P^ := (P^ and (not Mask1[7 - x and 7])) or ((c and 1) shl Shift1[7 - x and 7]) |
else |
P^ := (P^ and (not Mask1[x and 7])) or ((c and 1) shl Shift1[x and 7]); |
end; |
2: begin |
P := Pointer(Integer(FTopPBits) + FNextLine * y + x shr 2); |
if FPackedPixelOrder then |
P^ := (P^ and (not Mask2[3 - x and 3])) or ((c and 3) shl Shift2[3 - x and 3]) |
else |
P^ := (P^ and (not Mask2[x and 3])) or ((c and 3) shl Shift2[x and 3]); |
end; |
4: begin |
P := Pointer(Integer(FTopPBits) + FNextLine * y + x shr 1); |
if FPackedPixelOrder then |
P^ := (P^ and (not Mask4[1 - x and 1])) or ((c and 7) shl Shift4[1 - x and 1]) |
else |
P^ := (P^ and (not Mask4[x and 1])) or ((c and 7) shl Shift4[x and 1]); |
end; |
8: PByte(Integer(FTopPBits) + FNextLine * y + x)^ := c; |
16: PWord(Integer(FTopPBits) + FNextLine * y + x * 2)^ := c; |
24: PByte3(Integer(FTopPBits) + FNextLine * y + x * 3)^ := PByte3(@c)^; |
32: PDWORD(Integer(FTopPBits) + FNextLine * y + x * 4)^ := c; |
end; |
end; |
end; |
procedure TDXTextureImage.LoadFromFile(const FileName: string); |
var |
Stream: TFileStream; |
begin |
Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); |
try |
LoadFromStream(Stream); |
finally |
Stream.Free; |
end; |
end; |
procedure TDXTextureImage.LoadFromStream(Stream: TStream); |
var |
i, p: Integer; |
begin |
Clear; |
p := Stream.Position; |
for i := 0 to DXTextureImageLoadFuncList.Count - 1 do |
begin |
Stream.Position := p; |
try |
TDXTextureImageLoadFunc(DXTextureImageLoadFuncList[i])(Stream, Self); |
Exit; |
except |
Clear; |
end; |
end; |
raise EDXTextureImageError.Create(SNotSupportGraphicFile); |
end; |
procedure TDXTextureImage.SaveToFile(const FileName: string); |
var |
Stream: TFileStream; |
begin |
Stream := TFileStream.Create(FileName, fmCreate); |
try |
SaveToStream(Stream); |
finally |
Stream.Free; |
end; |
end; |
procedure DXTextureImage_SaveDXTextureImageFunc(Stream: TStream; Image: TDXTextureImage); forward; |
procedure TDXTextureImage.SaveToStream(Stream: TStream); |
begin |
DXTextureImage_SaveDXTextureImageFunc(Stream, Self); |
end; |
{ DXTextureImage_LoadDXTextureImageFunc } |
const |
DXTextureImageFile_Type = 'dxt:'; |
DXTextureImageFile_Version = $100; |
DXTextureImageCompress_None = 0; |
DXTextureImageCompress_ZLIB = 1; // ZLIB enabled |
DXTextureImageFileCategoryType_Image = $100; |
DXTextureImageFileBlockID_EndFile = 0; |
DXTextureImageFileBlockID_EndGroup = 1; |
DXTextureImageFileBlockID_StartGroup = 2; |
DXTextureImageFileBlockID_Image_Format = DXTextureImageFileCategoryType_Image + 1; |
DXTextureImageFileBlockID_Image_PixelData = DXTextureImageFileCategoryType_Image + 2; |
DXTextureImageFileBlockID_Image_GroupInfo = DXTextureImageFileCategoryType_Image + 3; |
DXTextureImageFileBlockID_Image_Name = DXTextureImageFileCategoryType_Image + 4; |
DXTextureImageFileBlockID_Image_TransparentColor = DXTextureImageFileCategoryType_Image + 5; |
type |
TDXTextureImageFileHeader = packed record |
FileType: array[0..4] of Char; |
ver: DWORD; |
end; |
TDXTextureImageFileBlockHeader = packed record |
ID: DWORD; |
Size: Integer; |
end; |
TDXTextureImageFileBlockHeader_StartGroup = packed record |
CategoryType: DWORD; |
end; |
TDXTextureImageHeader_Image_Format = packed record |
ImageType: TDXTextureImageType; |
Width: DWORD; |
Height: DWORD; |
BitCount: DWORD; |
WidthBytes: DWORD; |
end; |
TDXTextureImageHeader_Image_Format_Index = packed record |
idx_index_Mask: DWORD; |
idx_alpha_Mask: DWORD; |
idx_palette: array[0..255] of TPaletteEntry; |
end; |
TDXTextureImageHeader_Image_Format_RGB = packed record |
rgb_red_Mask: DWORD; |
rgb_green_Mask: DWORD; |
rgb_blue_Mask: DWORD; |
rgb_alpha_Mask: DWORD; |
end; |
TDXTextureImageHeader_Image_GroupInfo = packed record |
ImageGroupType: DWORD; |
ImageID: DWORD; |
end; |
TDXTextureImageHeader_Image_PixelData = packed record |
Compress: DWORD; |
end; |
TDXTextureImageHeader_Image_TransparentColor = packed record |
Transparent: Boolean; |
TransparentColor: DWORD; |
end; |
procedure DXTextureImage_LoadDXTextureImageFunc(Stream: TStream; Image: TDXTextureImage); |
procedure ReadGroup_Image(Image: TDXTextureImage); |
var |
i: Integer; |
BlockHeader: TDXTextureImageFileBlockHeader; |
NextPos: Integer; |
SubImage: TDXTextureImage; |
Header_StartGroup: TDXTextureImageFileBlockHeader_StartGroup; |
Header_Image_Format: TDXTextureImageHeader_Image_Format; |
Header_Image_Format_Index: TDXTextureImageHeader_Image_Format_Index; |
Header_Image_Format_RGB: TDXTextureImageHeader_Image_Format_RGB; |
Header_Image_GroupInfo: TDXTextureImageHeader_Image_GroupInfo; |
Header_Image_TransparentColor: TDXTextureImageHeader_Image_TransparentColor; |
Header_Image_PixelData: TDXTextureImageHeader_Image_PixelData; |
ImageName: string; |
{$IFDEF DXTextureImage_UseZLIB} |
Decompression: TDecompressionStream; |
{$ENDIF} |
begin |
while True do |
begin |
Stream.ReadBuffer(BlockHeader, SizeOf(BlockHeader)); |
NextPos := Stream.Position + BlockHeader.Size; |
case BlockHeader.ID of |
DXTextureImageFileBlockID_EndGroup: |
begin |
{ End of group } |
Break; |
end; |
DXTextureImageFileBlockID_StartGroup: |
begin |
{ Beginning of group } |
Stream.ReadBuffer(Header_StartGroup, SizeOf(Header_StartGroup)); |
case Header_StartGroup.CategoryType of |
DXTextureImageFileCategoryType_Image: |
begin |
{ Image group } |
SubImage := TDXTextureImage.CreateSub(Image); |
try |
ReadGroup_Image(SubImage); |
except |
SubImage.Free; |
raise; |
end; |
end; |
end; |
end; |
DXTextureImageFileBlockID_Image_Format: |
begin |
{ Image information reading (size etc.) } |
Stream.ReadBuffer(Header_Image_Format, SizeOf(Header_Image_Format)); |
if (Header_Image_Format.ImageType <> DXTextureImageType_PaletteIndexedColor) and |
(Header_Image_Format.ImageType <> DXTextureImageType_RGBColor) |
then |
raise EDXTextureImageError.Create(SInvalidDXTFile); |
Image.SetSize(Header_Image_Format.ImageType, Header_Image_Format.Width, Header_Image_Format.Height, |
Header_Image_Format.BitCount, Header_Image_Format.Widthbytes); |
if Header_Image_Format.ImageType = DXTextureImageType_PaletteIndexedColor then |
begin |
{ INDEX IMAGE } |
Stream.ReadBuffer(Header_Image_Format_Index, SizeOf(Header_Image_Format_Index)); |
Image.idx_index := dxtMakeChannel(Header_Image_Format_Index.idx_index_Mask, True); |
Image.idx_alpha := dxtMakeChannel(Header_Image_Format_Index.idx_alpha_Mask, False); |
for i := 0 to 255 do |
Image.idx_palette[i] := Header_Image_Format_Index.idx_palette[i]; |
end |
else |
if Header_Image_Format.ImageType = DXTextureImageType_RGBColor then |
begin |
{ RGB IMAGE } |
Stream.ReadBuffer(Header_Image_Format_RGB, SizeOf(Header_Image_Format_RGB)); |
Image.rgb_red := dxtMakeChannel(Header_Image_Format_RGB.rgb_red_Mask, False); |
Image.rgb_green := dxtMakeChannel(Header_Image_Format_RGB.rgb_green_Mask, False); |
Image.rgb_blue := dxtMakeChannel(Header_Image_Format_RGB.rgb_blue_Mask, False); |
Image.rgb_alpha := dxtMakeChannel(Header_Image_Format_RGB.rgb_alpha_Mask, False); |
end; |
end; |
DXTextureImageFileBlockID_Image_Name: |
begin |
{ Name reading } |
SetLength(ImageName, BlockHeader.Size); |
Stream.ReadBuffer(ImageName[1], BlockHeader.Size); |
Image.ImageName := ImageName; |
end; |
DXTextureImageFileBlockID_Image_GroupInfo: |
begin |
{ Image group information reading } |
Stream.ReadBuffer(Header_Image_GroupInfo, SizeOf(Header_Image_GroupInfo)); |
Image.ImageGroupType := Header_Image_GroupInfo.ImageGroupType; |
Image.ImageID := Header_Image_GroupInfo.ImageID; |
end; |
DXTextureImageFileBlockID_Image_TransparentColor: |
begin |
{ Transparent color information reading } |
Stream.ReadBuffer(Header_Image_TransparentColor, SizeOf(Header_Image_TransparentColor)); |
Image.Transparent := Header_Image_TransparentColor.Transparent; |
Image.TransparentColor := Header_Image_TransparentColor.TransparentColor; |
end; |
DXTextureImageFileBlockID_Image_PixelData: |
begin |
{ Pixel data reading } |
Stream.ReadBuffer(Header_Image_PixelData, SizeOf(Header_Image_PixelData)); |
case Header_Image_PixelData.Compress of |
DXTextureImageCompress_None: |
begin |
{ NO compress } |
for i := 0 to Image.Height - 1 do |
Stream.ReadBuffer(Image.ScanLine[i]^, Header_Image_Format.Widthbytes); |
end; |
{$IFDEF DXTextureImage_UseZLIB} |
DXTextureImageCompress_ZLIB: |
begin |
{ ZLIB compress enabled } |
Decompression := TDecompressionStream.Create(Stream); |
try |
for i := 0 to Image.Height - 1 do |
Decompression.ReadBuffer(Image.ScanLine[i]^, Header_Image_Format.Widthbytes); |
finally |
Decompression.Free; |
end; |
end; |
{$ENDIF} |
else |
raise EDXTextureImageError.CreateFmt('Decompression error (%d)', [Header_Image_PixelData.Compress]); |
end; |
end; |
end; |
Stream.Seek(NextPos, soFromBeginning); |
end; |
end; |
var |
FileHeader: TDXTextureImageFileHeader; |
BlockHeader: TDXTextureImageFileBlockHeader; |
Header_StartGroup: TDXTextureImageFileBlockHeader_StartGroup; |
NextPos: Integer; |
begin |
{ File header reading } |
Stream.ReadBuffer(FileHeader, SizeOf(FileHeader)); |
if FileHeader.FileType <> DXTextureImageFile_Type then |
raise EDXTextureImageError.Create(SInvalidDXTFile); |
if FileHeader.ver <> DXTextureImageFile_Version then |
raise EDXTextureImageError.Create(SInvalidDXTFile); |
while True do |
begin |
Stream.ReadBuffer(BlockHeader, SizeOf(BlockHeader)); |
NextPos := Stream.Position + BlockHeader.Size; |
case BlockHeader.ID of |
DXTextureImageFileBlockID_EndFile: |
begin |
{ End of file } |
Break; |
end; |
DXTextureImageFileBlockID_StartGroup: |
begin |
{ Beginning of group } |
Stream.ReadBuffer(Header_StartGroup, SizeOf(Header_StartGroup)); |
case Header_StartGroup.CategoryType of |
DXTextureImageFileCategoryType_Image: ReadGroup_Image(Image); |
end; |
end; |
end; |
Stream.Seek(NextPos, soFromBeginning); |
end; |
end; |
type |
PDXTextureImageFileBlockHeaderWriter_BlockInfo = ^TDXTextureImageFileBlockHeaderWriter_BlockInfo; |
TDXTextureImageFileBlockHeaderWriter_BlockInfo = record |
BlockID: DWORD; |
StreamPos: Integer; |
end; |
TDXTextureImageFileBlockHeaderWriter = class |
private |
FStream: TStream; |
FList: TList; |
public |
constructor Create(Stream: TStream); |
destructor Destroy; override; |
procedure StartBlock(BlockID: DWORD); |
procedure EndBlock; |
procedure WriteBlock(BlockID: DWORD); |
procedure StartGroup(CategoryType: DWORD); |
procedure EndGroup; |
end; |
constructor TDXTextureImageFileBlockHeaderWriter.Create(Stream: TStream); |
begin |
inherited Create; |
FStream := Stream; |
FList := TList.Create; |
end; |
destructor TDXTextureImageFileBlockHeaderWriter.Destroy; |
var |
i: Integer; |
begin |
for i := 0 to FList.Count - 1 do |
Dispose(PDXTextureImageFileBlockHeaderWriter_BlockInfo(FList[i])); |
FList.Free; |
inherited Destroy; |
end; |
procedure TDXTextureImageFileBlockHeaderWriter.StartBlock(BlockID: DWORD); |
var |
BlockInfo: PDXTextureImageFileBlockHeaderWriter_BlockInfo; |
BlockHeader: TDXTextureImageFileBlockHeader; |
begin |
New(BlockInfo); |
BlockInfo.BlockID := BlockID; |
BlockInfo.StreamPos := FStream.Position; |
FList.Add(BlockInfo); |
BlockHeader.ID := BlockID; |
BlockHeader.Size := 0; |
FStream.WriteBuffer(BlockHeader, SizeOf(BlockHeader)); |
end; |
procedure TDXTextureImageFileBlockHeaderWriter.EndBlock; |
var |
BlockHeader: TDXTextureImageFileBlockHeader; |
BlockInfo: PDXTextureImageFileBlockHeaderWriter_BlockInfo; |
CurStreamPos: Integer; |
begin |
CurStreamPos := FStream.Position; |
try |
BlockInfo := FList[FList.Count - 1]; |
FStream.Position := BlockInfo.StreamPos; |
BlockHeader.ID := BlockInfo.BlockID; |
BlockHeader.Size := CurStreamPos - (BlockInfo.StreamPos + SizeOf(TDXTextureImageFileBlockHeader)); |
FStream.WriteBuffer(BlockHeader, SizeOf(BlockHeader)); |
finally |
FStream.Position := CurStreamPos; |
Dispose(FList[FList.Count - 1]); |
FList.Count := FList.Count - 1; |
end; |
end; |
procedure TDXTextureImageFileBlockHeaderWriter.WriteBlock(BlockID: DWORD); |
var |
BlockHeader: TDXTextureImageFileBlockHeader; |
begin |
BlockHeader.ID := BlockID; |
BlockHeader.Size := 0; |
FStream.WriteBuffer(BlockHeader, SizeOf(BlockHeader)); |
end; |
procedure TDXTextureImageFileBlockHeaderWriter.StartGroup(CategoryType: DWORD); |
var |
Header_StartGroup: TDXTextureImageFileBlockHeader_StartGroup; |
begin |
StartBlock(DXTextureImageFileBlockID_StartGroup); |
Header_StartGroup.CategoryType := CategoryType; |
FStream.WriteBuffer(Header_StartGroup, SizeOf(Header_StartGroup)); |
end; |
procedure TDXTextureImageFileBlockHeaderWriter.EndGroup; |
begin |
WriteBlock(DXTextureImageFileBlockID_EndGroup); |
EndBlock; |
end; |
procedure DXTextureImage_SaveDXTextureImageFunc(Stream: TStream; Image: TDXTextureImage); |
var |
Progress: Integer; |
ProgressCount: Integer; |
BlockHeaderWriter: TDXTextureImageFileBlockHeaderWriter; |
function CalcProgressCount(Image: TDXTextureImage): Integer; |
var |
i: Integer; |
begin |
Result := Image.WidthBytes * Image.Height; |
for i := 0 to Image.SubImageCount - 1 do |
Inc(Result, CalcProgressCount(Image.SubImages[i])); |
end; |
procedure AddProgress(Count: Integer); |
begin |
Inc(Progress, Count); |
Image.DoSaveProgress(Progress, ProgressCount); |
end; |
procedure WriteGroup_Image(Image: TDXTextureImage); |
var |
i: Integer; |
Header_Image_Format: TDXTextureImageHeader_Image_Format; |
Header_Image_Format_Index: TDXTextureImageHeader_Image_Format_Index; |
Header_Image_Format_RGB: TDXTextureImageHeader_Image_Format_RGB; |
Header_Image_GroupInfo: TDXTextureImageHeader_Image_GroupInfo; |
Header_Image_TransparentColor: TDXTextureImageHeader_Image_TransparentColor; |
Header_Image_PixelData: TDXTextureImageHeader_Image_PixelData; |
{$IFDEF DXTextureImage_UseZLIB} |
Compression: TCompressionStream; |
{$ENDIF} |
begin |
BlockHeaderWriter.StartGroup(DXTextureImageFileCategoryType_Image); |
try |
{ Image format writing } |
if Image.Size > 0 then |
begin |
Header_Image_Format.ImageType := Image.ImageType; |
Header_Image_Format.Width := Image.Width; |
Header_Image_Format.Height := Image.Height; |
Header_Image_Format.BitCount := Image.BitCount; |
Header_Image_Format.WidthBytes := Image.WidthBytes; |
BlockHeaderWriter.StartBlock(DXTextureImageFileBlockID_Image_Format); |
try |
Stream.WriteBuffer(Header_Image_Format, SizeOf(Header_Image_Format)); |
case Image.ImageType of |
DXTextureImageType_PaletteIndexedColor: |
begin |
{ INDEX IMAGE } |
Header_Image_Format_Index.idx_index_Mask := Image.idx_index.Mask; |
Header_Image_Format_Index.idx_alpha_Mask := Image.idx_alpha.Mask; |
for i := 0 to 255 do |
Header_Image_Format_Index.idx_palette[i] := Image.idx_palette[i]; |
Stream.WriteBuffer(Header_Image_Format_Index, SizeOf(Header_Image_Format_Index)); |
end; |
DXTextureImageType_RGBColor: |
begin |
{ RGB IMAGE } |
Header_Image_Format_RGB.rgb_red_Mask := Image.rgb_red.Mask; |
Header_Image_Format_RGB.rgb_green_Mask := Image.rgb_green.Mask; |
Header_Image_Format_RGB.rgb_blue_Mask := Image.rgb_blue.Mask; |
Header_Image_Format_RGB.rgb_alpha_Mask := Image.rgb_alpha.Mask; |
Stream.WriteBuffer(Header_Image_Format_RGB, SizeOf(Header_Image_Format_RGB)); |
end; |
end; |
finally |
BlockHeaderWriter.EndBlock; |
end; |
end; |
{ Image group information writing } |
BlockHeaderWriter.StartBlock(DXTextureImageFileBlockID_Image_GroupInfo); |
try |
Header_Image_GroupInfo.ImageGroupType := Image.ImageGroupType; |
Header_Image_GroupInfo.ImageID := Image.ImageID; |
Stream.WriteBuffer(Header_Image_GroupInfo, SizeOf(Header_Image_GroupInfo)); |
finally |
BlockHeaderWriter.EndBlock; |
end; |
{ Name writing } |
BlockHeaderWriter.StartBlock(DXTextureImageFileBlockID_Image_Name); |
try |
Stream.WriteBuffer(Image.ImageName[1], Length(Image.ImageName)); |
finally |
BlockHeaderWriter.EndBlock; |
end; |
{ Transparent color writing } |
BlockHeaderWriter.StartBlock(DXTextureImageFileBlockID_Image_TransparentColor); |
try |
Header_Image_TransparentColor.Transparent := Image.Transparent; |
Header_Image_TransparentColor.TransparentColor := Image.TransparentColor; |
Stream.WriteBuffer(Header_Image_TransparentColor, SizeOf(Header_Image_TransparentColor)); |
finally |
BlockHeaderWriter.EndBlock; |
end; |
{ Pixel data writing } |
if Image.Size > 0 then |
begin |
{ Writing start } |
BlockHeaderWriter.StartBlock(DXTextureImageFileBlockID_Image_PixelData); |
try |
{ Scan compress type } |
case Image.FileCompressType of |
DXTextureImageFileCompressType_None: |
begin |
Header_Image_PixelData.Compress := DXTextureImageCompress_None; |
end; |
{$IFDEF DXTextureImage_UseZLIB} |
DXTextureImageFileCompressType_ZLIB: |
begin |
Header_Image_PixelData.Compress := DXTextureImageCompress_ZLIB; |
end; |
{$ENDIF} |
else |
Header_Image_PixelData.Compress := DXTextureImageCompress_None; |
end; |
Stream.WriteBuffer(Header_Image_PixelData, SizeOf(Header_Image_PixelData)); |
case Header_Image_PixelData.Compress of |
DXTextureImageCompress_None: |
begin |
for i := 0 to Image.Height - 1 do |
begin |
Stream.WriteBuffer(Image.ScanLine[i]^, Image.Widthbytes); |
AddProgress(Image.Widthbytes); |
end; |
end; |
{$IFDEF DXTextureImage_UseZLIB} |
DXTextureImageCompress_ZLIB: |
begin |
Compression := TCompressionStream.Create(clMax, Stream); |
try |
for i := 0 to Image.Height - 1 do |
begin |
Compression.WriteBuffer(Image.ScanLine[i]^, Image.WidthBytes); |
AddProgress(Image.Widthbytes); |
end; |
finally |
Compression.Free; |
end; |
end; |
{$ENDIF} |
end; |
finally |
BlockHeaderWriter.EndBlock; |
end; |
end; |
{ Sub-image writing } |
for i := 0 to Image.SubImageCount - 1 do |
WriteGroup_Image(Image.SubImages[i]); |
finally |
BlockHeaderWriter.EndGroup; |
end; |
end; |
var |
FileHeader: TDXTextureImageFileHeader; |
begin |
Progress := 0; |
ProgressCount := CalcProgressCount(Image); |
{ File header writing } |
FileHeader.FileType := DXTextureImageFile_Type; |
FileHeader.ver := DXTextureImageFile_Version; |
Stream.WriteBuffer(FileHeader, SizeOf(FileHeader)); |
{ Image writing } |
BlockHeaderWriter := TDXTextureImageFileBlockHeaderWriter.Create(Stream); |
try |
{ Image writing } |
WriteGroup_Image(Image); |
{ End of file } |
BlockHeaderWriter.WriteBlock(DXTextureImageFileBlockID_EndFile); |
finally |
BlockHeaderWriter.Free; |
end; |
end; |
{ DXTextureImage_LoadBitmapFunc } |
procedure DXTextureImage_LoadBitmapFunc(Stream: TStream; Image: TDXTextureImage); |
type |
TDIBPixelFormat = packed record |
RBitMask, GBitMask, BBitMask: DWORD; |
end; |
var |
TopDown: Boolean; |
BF: TBitmapFileHeader; |
BI: TBitmapInfoHeader; |
procedure DecodeRGB; |
var |
y: Integer; |
begin |
for y := 0 to Image.Height - 1 do |
begin |
if TopDown then |
Stream.ReadBuffer(Image.ScanLine[y]^, Image.WidthBytes) |
else |
Stream.ReadBuffer(Image.ScanLine[Image.Height - y - 1]^, Image.WidthBytes); |
end; |
end; |
procedure DecodeRLE4; |
var |
SrcDataP: Pointer; |
B1, B2, C: Byte; |
Dest, Src, P: PByte; |
X, Y, i: Integer; |
begin |
GetMem(SrcDataP, BI.biSizeImage); |
try |
Stream.ReadBuffer(SrcDataP^, BI.biSizeImage); |
Dest := Image.TopPBits; |
Src := SrcDataP; |
X := 0; |
Y := 0; |
while True do |
begin |
B1 := Src^; Inc(Src); |
B2 := Src^; Inc(Src); |
if B1 = 0 then |
begin |
case B2 of |
0: begin { End of line } |
X := 0; Inc(Y); |
Dest := Image.ScanLine[Y]; |
end; |
1: Break; { End of bitmap } |
2: begin { Difference of coordinates } |
Inc(X, B1); Inc(Y, B2); Inc(Src, 2); |
Dest := Image.ScanLine[Y]; |
end; |
else |
{ Absolute mode } |
C := 0; |
for i := 0 to B2 - 1 do |
begin |
if i and 1 = 0 then |
begin |
C := Src^; Inc(Src); |
end |
else |
begin |
C := C shl 4; |
end; |
P := Pointer(Integer(Dest) + X shr 1); |
if X and 1 = 0 then |
P^ := (P^ and $0F) or (C and $F0) |
else |
P^ := (P^ and $F0) or ((C and $F0) shr 4); |
Inc(X); |
end; |
end; |
end |
else |
begin |
{ Encoding mode } |
for i := 0 to B1 - 1 do |
begin |
P := Pointer(Integer(Dest) + X shr 1); |
if X and 1 = 0 then |
P^ := (P^ and $0F) or (B2 and $F0) |
else |
P^ := (P^ and $F0) or ((B2 and $F0) shr 4); |
Inc(X); |
// Swap nibble |
B2 := (B2 shr 4) or (B2 shl 4); |
end; |
end; |
{ Word arrangement } |
Inc(Src, Longint(Src) and 1); |
end; |
finally |
FreeMem(SrcDataP); |
end; |
end; |
procedure DecodeRLE8; |
var |
SrcDataP: Pointer; |
B1, B2: Byte; |
Dest, Src: PByte; |
X, Y: Integer; |
begin |
GetMem(SrcDataP, BI.biSizeImage); |
try |
Stream.ReadBuffer(SrcDataP^, BI.biSizeImage); |
Dest := Image.TopPBits; |
Src := SrcDataP; |
X := 0; |
Y := 0; |
while True do |
begin |
B1 := Src^; Inc(Src); |
B2 := Src^; Inc(Src); |
if B1 = 0 then |
begin |
case B2 of |
0: begin { End of line } |
X := 0; Inc(Y); |
Dest := Pointer(Longint(Image.TopPBits) + Y * Image.NextLine + X); |
end; |
1: Break; { End of bitmap } |
2: begin { Difference of coordinates } |
Inc(X, B1); Inc(Y, B2); Inc(Src, 2); |
Dest := Pointer(Longint(Image.TopPBits) + Y * Image.NextLine + X); |
end; |
else |
{ Absolute mode } |
Move(Src^, Dest^, B2); Inc(Dest, B2); Inc(Src, B2); |
end; |
end |
else |
begin |
{ Encoding mode } |
FillChar(Dest^, B1, B2); Inc(Dest, B1); |
end; |
{ Word arrangement } |
Inc(Src, Longint(Src) and 1); |
end; |
finally |
FreeMem(SrcDataP); |
end; |
end; |
var |
BC: TBitmapCoreHeader; |
RGBTriples: array[0..255] of TRGBTriple; |
RGBQuads: array[0..255] of TRGBQuad; |
i, PalCount, j: Integer; |
OS2: Boolean; |
PixelFormat: TDIBPixelFormat; |
begin |
{ File header reading } |
i := Stream.Read(BF, SizeOf(TBitmapFileHeader)); |
if i = 0 then Exit; |
if i <> SizeOf(TBitmapFileHeader) then |
raise EDXTextureImageError.Create(SInvalidDIB); |
{ Is the head 'BM'? } |
if BF.bfType <> Ord('B') + Ord('M') * $100 then |
raise EDXTextureImageError.Create(SInvalidDIB); |
{ Reading of size of header } |
i := Stream.Read(BI.biSize, 4); |
if i <> 4 then |
raise EDXTextureImageError.Create(SInvalidDIB); |
{ Kind check of DIB } |
OS2 := False; |
case BI.biSize of |
SizeOf(TBitmapCoreHeader): |
begin |
{ OS/2 type } |
Stream.ReadBuffer(Pointer(Integer(@BC) + 4)^, SizeOf(TBitmapCoreHeader) - 4); |
FilLChar(BI, SizeOf(BI), 0); |
with BI do |
begin |
biClrUsed := 0; |
biCompression := BI_RGB; |
biBitCount := BC.bcBitCount; |
biHeight := BC.bcHeight; |
biWidth := BC.bcWidth; |
end; |
OS2 := True; |
end; |
SizeOf(TBitmapInfoHeader): |
begin |
{ Windows type } |
Stream.ReadBuffer(Pointer(Integer(@BI) + 4)^, SizeOf(TBitmapInfoHeader) - 4); |
end; |
else |
raise EDXTextureImageError.Create(SInvalidDIB); |
end; |
{ Bit mask reading } |
if BI.biCompression = BI_BITFIELDS then |
begin |
Stream.ReadBuffer(PixelFormat, SizeOf(PixelFormat)); |
end |
else |
begin |
if BI.biBitCount = 16 then |
begin |
PixelFormat.RBitMask := $7C00; |
PixelFormat.GBitMask := $03E0; |
PixelFormat.BBitMask := $001F; |
end else if (BI.biBitCount = 24) or (BI.biBitCount = 32) then |
begin |
PixelFormat.RBitMask := $00FF0000; |
PixelFormat.GBitMask := $0300FF00; |
PixelFormat.BBitMask := $000000FF; |
end; |
end; |
{ DIB making } |
if BI.biHeight < 0 then |
begin |
BI.biHeight := -BI.biHeight; |
TopDown := True; |
end |
else |
TopDown := False; |
if BI.biBitCount in [1, 4, 8] then |
begin |
Image.SetSize(DXTextureImageType_PaletteIndexedColor, BI.biWidth, BI.biHeight, BI.biBitCount, |
(((BI.biWidth * BI.biBitCount) + 31) div 32) * 4); |
Image.idx_index := dxtMakeChannel(1 shl BI.biBitCount - 1, True); |
Image.PackedPixelOrder := True; |
end |
else |
begin |
Image.SetSize(DXTextureImageType_RGBColor, BI.biWidth, BI.biHeight, BI.biBitCount, |
(((BI.biWidth * BI.biBitCount) + 31) div 32) * 4); |
Image.rgb_red := dxtMakeChannel(PixelFormat.RBitMask, False); |
Image.rgb_green := dxtMakeChannel(PixelFormat.GBitMask, False); |
Image.rgb_blue := dxtMakeChannel(PixelFormat.BBitMask, False); |
j := Image.rgb_red.BitCount + Image.rgb_green.BitCount + Image.rgb_blue.BitCount; |
if j < BI.biBitCount then |
Image.rgb_alpha := dxtMakeChannel((1 shl (BI.biBitCount - j) - 1) shl j, False); |
Image.PackedPixelOrder := False; |
end; |
{ palette reading } |
PalCount := BI.biClrUsed; |
if (PalCount = 0) and (BI.biBitCount <= 8) then |
PalCount := 1 shl BI.biBitCount; |
if PalCount > 256 then PalCount := 256; |
if OS2 then |
begin |
{ OS/2 type } |
Stream.ReadBuffer(RGBTriples, SizeOf(TRGBTriple) * PalCount); |
for i := 0 to PalCount - 1 do |
begin |
Image.idx_palette[i].peRed := RGBTriples[i].rgbtRed; |
Image.idx_palette[i].peGreen := RGBTriples[i].rgbtGreen; |
Image.idx_palette[i].peBlue := RGBTriples[i].rgbtBlue; |
end; |
end |
else |
begin |
{ Windows type } |
Stream.ReadBuffer(RGBQuads, SizeOf(TRGBQuad) * PalCount); |
for i := 0 to PalCount - 1 do |
begin |
Image.idx_palette[i].peRed := RGBQuads[i].rgbRed; |
Image.idx_palette[i].peGreen := RGBQuads[i].rgbGreen; |
Image.idx_palette[i].peBlue := RGBQuads[i].rgbBlue; |
end; |
end; |
{ Pixel data reading } |
case BI.biCompression of |
BI_RGB: DecodeRGB; |
BI_BITFIELDS: DecodeRGB; |
BI_RLE4: DecodeRLE4; |
BI_RLE8: DecodeRLE8; |
else |
raise EDXTextureImageError.Create(SInvalidDIB); |
end; |
end; |
{ TDXTBase } |
//Note by JB. |
//This class is supplement of original Hori's code. |
//For use alphablend you can have a bitmap 32 bit RGBA |
//when isn't alphachannel present, it works like RGB 24bit |
//functions required actualized DIB source for works with alphachannel |
function TDXTBase.GetCompression: TDXTextureImageFileCompressType; |
begin |
Result := FParamsFormat.Compress; |
end; |
procedure TDXTBase.SetCompression(const Value: TDXTextureImageFileCompressType); |
begin |
FParamsFormat.Compress := Value; |
end; |
function TDXTBase.GetWidth: Integer; |
begin |
Result := FParamsFormat.Width; |
end; |
procedure TDXTBase.SetWidth(const Value: Integer); |
begin |
FParamsFormat.Width := Value; |
end; |
function TDXTBase.GetMipmap: Integer; |
begin |
Result := FParamsFormat.MipmapCount; |
end; |
procedure TDXTBase.SetMipmap(const Value: Integer); |
begin |
if Value = -1 then |
FParamsFormat.MipmapCount := MaxInt |
else |
FParamsFormat.MipmapCount := Value; |
end; |
function TDXTBase.GetTransparentColor: TColorRef; |
begin |
Result := FParamsFormat.TransparentColor; |
end; |
procedure TDXTBase.SetTransparentColor(const Value: TColorRef); |
begin |
FParamsFormat.Transparent := True; |
FParamsFormat.TransparentColor := RGB(Value shr 16, Value shr 8, Value); |
end; |
procedure TDXTBase.SetTransparentColorIndexed(const Value: TColorRef); |
begin |
FParamsFormat.TransparentColor := PaletteIndex(Value); |
end; |
function TDXTBase.GetHeight: Integer; |
begin |
Result := FParamsFormat.Height; |
end; |
procedure TDXTBase.SetHeight(const Value: Integer); |
begin |
FParamsFormat.Height := Value; |
end; |
procedure TDXTBase.SetChannelY(T: TDIB); |
begin |
end; |
procedure TDXTBase.LoadChannelRGBFromFile(const FileName: string); |
begin |
FStrImageFileName := FileName; |
try |
EvaluateChannels([rgbRed, rgbGreen, rgbBlue], '', ''); |
finally |
FStrImageFileName := ''; |
end; |
end; |
function TDXTBase.LoadFromFile(iFilename: string): Boolean; |
begin |
Result := FileExists(iFilename); |
if Result then |
try |
Texture.LoadFromFile(iFileName); |
except |
Result := False; |
end; |
end; |
procedure TDXTBase.LoadChannelAFromFile(const FileName: string); |
begin |
FStrImageFileName := FileName; |
try |
EvaluateChannels([rgbAlpha], '', ''); |
finally |
FStrImageFileName := ''; |
end; |
end; |
constructor TDXTBase.Create; |
var |
Channel: TDXTImageChannel; |
begin |
FillChar(Channel, SizeOf(Channel), 0); |
FilLChar(FParamsFormat, SizeOf(FParamsFormat), 0); |
FParamsFormat.Compress := DXTextureImageFileCompressType_None; |
FHasImageList := TList.Create; |
for Channel := Low(Channel) to High(Channel) do |
FChannelChangeTable[Channel] := Channel; |
FChannelChangeTable[rgbAlpha] := yuvY; |
FDIB := nil; |
FStrImageFileName := ''; |
end; |
procedure TDXTBase.SetChannelRGBA(T: TDIB); |
begin |
FDIB := T; |
try |
EvaluateChannels([rgbRed, rgbGreen, rgbBlue, rgbAlpha], '', ''); |
finally |
FDIB := nil; |
end; |
end; |
procedure TDXTBase.BuildImage(Image: TDXTextureImage); |
type |
TOutputImageChannelInfo2 = record |
Image: TDXTextureImage; |
Channels: TDXTImageChannels; |
end; |
var |
cR, cG, cB: Byte; |
function GetChannelVal(const Channel: TDXTextureImageChannel; SrcChannel: TDXTImageChannel): DWORD; |
begin |
case SrcChannel of |
rgbRed: Result := dxtEncodeChannel(Channel, cR); |
rgbGreen: Result := dxtEncodeChannel(Channel, cG); |
rgbBlue: Result := dxtEncodeChannel(Channel, cB); |
yuvY: Result := dxtEncodeChannel(Channel, (cR * 306 + cG * 602 + cB * 116) div 1024); |
else Result := 0; |
end; |
end; |
var |
HasImageChannelList: array[0..Ord(High(TDXTImageChannel)) + 1] of TOutputImageChannelInfo2; |
HasImageChannelListCount: Integer; |
x, y, i: Integer; |
c, c2, c3: DWORD; |
Channel: TDXTImageChannel; |
Flag: Boolean; |
SrcImage: TDXTextureImage; |
UseChannels: TDXTImageChannels; |
begin |
HasImageChannelListCount := 0; |
for Channel := Low(Channel) to High(Channel) do |
if Channel in FHasChannels then |
begin |
Flag := False; |
for i := 0 to HasImageChannelListCount - 1 do |
if HasImageChannelList[i].Image = FHasChannelImages[Channel].Image then |
begin |
HasImageChannelList[i].Channels := HasImageChannelList[i].Channels + [Channel]; |
Flag := True; |
Break; |
end; |
if not Flag then |
begin |
HasImageChannelList[HasImageChannelListCount].Image := FHasChannelImages[Channel].Image; |
HasImageChannelList[HasImageChannelListCount].Channels := [Channel]; |
Inc(HasImageChannelListCount); |
end; |
end; |
cR := 0; |
cG := 0; |
cB := 0; |
if Image.ImageType = DXTextureImageType_PaletteIndexedColor then |
begin |
{ Index color } |
for y := 0 to Image.Height - 1 do |
for x := 0 to Image.Width - 1 do |
begin |
c := 0; |
for i := 0 to HasImageChannelListCount - 1 do |
begin |
SrcImage := HasImageChannelList[i].Image; |
UseChannels := HasImageChannelList[i].Channels; |
case SrcImage.ImageType of |
DXTextureImageType_PaletteIndexedColor: |
begin |
c2 := SrcImage.Pixels[x, y]; |
c3 := dxtDecodeChannel(SrcImage.idx_index, c2); |
if rgbRed in UseChannels then |
c := c or dxtEncodeChannel(Image.idx_index, c3); |
cR := SrcImage.idx_palette[c3].peRed; |
cG := SrcImage.idx_palette[c3].peGreen; |
cB := SrcImage.idx_palette[c3].peBlue; |
end; |
DXTextureImageType_RGBColor: |
begin |
c2 := SrcImage.Pixels[x, y]; |
cR := dxtDecodeChannel(SrcImage.rgb_red, c2); |
cG := dxtDecodeChannel(SrcImage.rgb_green, c2); |
cB := dxtDecodeChannel(SrcImage.rgb_blue, c2); |
end; |
end; |
if rgbAlpha in UseChannels then |
c := c or GetChannelVal(Image.idx_alpha, FChannelChangeTable[rgbAlpha]); |
end; |
Image.Pixels[x, y] := c; |
end; |
end |
else |
if Image.ImageType = DXTextureImageType_RGBColor then |
begin |
{ RGB color } |
for y := 0 to Image.Height - 1 do |
for x := 0 to Image.Width - 1 do |
begin |
c := 0; |
for i := 0 to HasImageChannelListCount - 1 do |
begin |
SrcImage := HasImageChannelList[i].Image; |
UseChannels := HasImageChannelList[i].Channels; |
case SrcImage.ImageType of |
DXTextureImageType_PaletteIndexedColor: |
begin |
c2 := SrcImage.Pixels[x, y]; |
c3 := dxtDecodeChannel(SrcImage.idx_index, c2); |
cR := SrcImage.idx_palette[c3].peRed; |
cG := SrcImage.idx_palette[c3].peGreen; |
cB := SrcImage.idx_palette[c3].peBlue; |
end; |
DXTextureImageType_RGBColor: |
begin |
c2 := SrcImage.Pixels[x, y]; |
cR := dxtDecodeChannel(SrcImage.rgb_red, c2); |
cG := dxtDecodeChannel(SrcImage.rgb_green, c2); |
cB := dxtDecodeChannel(SrcImage.rgb_blue, c2); |
end; |
end; |
if rgbRed in UseChannels then |
c := c or GetChannelVal(Image.rgb_red, FChannelChangeTable[rgbRed]); |
if rgbGreen in UseChannels then |
c := c or GetChannelVal(Image.rgb_green, FChannelChangeTable[rgbGreen]); |
if rgbBlue in UseChannels then |
c := c or GetChannelVal(Image.rgb_Blue, FChannelChangeTable[rgbBlue]); |
if rgbAlpha in UseChannels then |
c := c or GetChannelVal(Image.rgb_alpha, FChannelChangeTable[rgbAlpha]); |
end; |
Image.Pixels[x, y] := c; |
end; |
end; |
end; |
procedure TDXTBase.SetChannelR(T: TDIB); |
begin |
FDIB := T; |
try |
EvaluateChannels([rgbRed], '', ''); |
finally |
FDIB := nil; |
end; |
end; |
function GetBitCount(b: Integer): Integer; |
begin |
Result := 32; |
while (Result > 0) and (((1 shl (Result - 1)) and b) = 0) do Dec(Result); |
end; |
procedure TDXTBase.CalcOutputBitFormat; |
var |
BitCount: DWORD; |
NewWidth, NewHeight, i, j: Integer; |
Channel: TDXTImageChannel; |
begin |
{ Size calculation } |
NewWidth := 1 shl GetBitCount(TDXTextureImage(FHasImageList[0]).Width); |
NewHeight := 1 shl GetBitCount(TDXTextureImage(FHasImageList[0]).Height); |
NewWidth := Max(NewWidth, NewHeight); |
NewHeight := NewWidth; |
if Abs(FParamsFormat.Width - NewWidth) > Abs(FParamsFormat.Width - NewWidth div 2) then |
NewWidth := NewWidth div 2; |
if Abs(FParamsFormat.Height - NewHeight) > Abs(FParamsFormat.Height - NewHeight div 2) then |
NewHeight := NewHeight div 2; |
if FParamsFormat.Width = 0 then FParamsFormat.Width := NewWidth; |
if FParamsFormat.Height = 0 then FParamsFormat.Height := NewHeight; |
{ Other several calculation } |
i := Min(FParamsFormat.Width, FParamsFormat.Height); |
j := 0; |
while i > 1 do |
begin |
i := i div 2; |
Inc(j); |
end; |
FParamsFormat.MipmapCount := Min(j, FParamsFormat.MipmapCount); |
{ Output type calculation } |
if (FHasChannelImages[rgbRed].Image = FHasChannelImages[rgbGreen].Image) and |
(FHasChannelImages[rgbRed].Image = FHasChannelImages[rgbBlue].Image) and |
(FHasChannelImages[rgbRed].Image <> nil) and |
(FHasChannelImages[rgbRed].Image.ImageType = DXTextureImageType_PaletteIndexedColor) and |
(FHasChannelImages[rgbRed].BitCount = 8) and |
(FHasChannelImages[rgbGreen].BitCount = 8) and |
(FHasChannelImages[rgbBlue].BitCount = 8) and |
(FChannelChangeTable[rgbRed] = rgbRed) and |
(FChannelChangeTable[rgbGreen] = rgbGreen) and |
(FChannelChangeTable[rgbBlue] = rgbBlue) and |
(FParamsFormat.Width = FHasChannelImages[rgbRed].Image.Width) and |
(FParamsFormat.Height = FHasChannelImages[rgbRed].Image.Height) and |
(FParamsFormat.MipmapCount = 0) |
then |
begin |
FParamsFormat.ImageType := DXTextureImageType_PaletteIndexedColor; |
end |
else |
FParamsFormat.ImageType := DXTextureImageType_RGBColor; |
{ Bit several calculations } |
FParamsFormat.BitCount := 0; |
for Channel := Low(TDXTImageChannel) to High(TDXTImageChannel) do |
if (FHasChannelImages[Channel].Image <> nil) and (FHasChannelImages[Channel].Image.ImageType = DXTextureImageType_PaletteIndexedColor) then |
begin |
FParamsFormat.idx_palette := FHasChannelImages[Channel].Image.idx_palette; |
Break; |
end; |
if FParamsFormat.ImageType = DXTextureImageType_PaletteIndexedColor then |
begin |
{ Index channel } |
if rgbRed in FHasChannels then |
begin |
BitCount := FHasChannelImages[rgbRed].BitCount; |
FParamsFormat.idx_index := dxtMakeChannel(((1 shl BitCount) - 1) shl FParamsFormat.BitCount, True); |
Inc(FParamsFormat.BitCount, BitCount); |
end; |
{ Alpha channel } |
if rgbAlpha in FHasChannels then |
begin |
BitCount := FHasChannelImages[rgbAlpha].BitCount; |
FParamsFormat.idx_alpha := dxtMakeChannel(((1 shl BitCount) - 1) shl FParamsFormat.BitCount, False); |
Inc(FParamsFormat.BitCount, BitCount); |
end; |
end |
else |
begin |
{ B channel } |
if rgbBlue in FHasChannels then |
begin |
BitCount := FHasChannelImages[rgbBlue].BitCount; |
FParamsFormat.rgb_blue := dxtMakeChannel(((1 shl BitCount) - 1) shl FParamsFormat.BitCount, False); |
Inc(FParamsFormat.BitCount, BitCount); |
end; |
{ G channel } |
if rgbGreen in FHasChannels then |
begin |
BitCount := FHasChannelImages[rgbGreen].BitCount; |
FParamsFormat.rgb_green := dxtMakeChannel(((1 shl BitCount) - 1) shl FParamsFormat.BitCount, False); |
Inc(FParamsFormat.BitCount, BitCount); |
end; |
{ R channel } |
if rgbRed in FHasChannels then |
begin |
BitCount := FHasChannelImages[rgbRed].BitCount; |
FParamsFormat.rgb_red := dxtMakeChannel(((1 shl BitCount) - 1) shl FParamsFormat.BitCount, False); |
Inc(FParamsFormat.BitCount, BitCount); |
end; |
{ Alpha channel } |
if rgbAlpha in FHasChannels then |
begin |
BitCount := FHasChannelImages[rgbAlpha].BitCount; |
FParamsFormat.rgb_alpha := dxtMakeChannel(((1 shl BitCount) - 1) shl FParamsFormat.BitCount, False); |
Inc(FParamsFormat.BitCount, BitCount); |
end; |
end; |
{ As for the number of bits only either of 1, 2, 4, 8, 16, 24, 32 } |
if FParamsFormat.BitCount in [3] then |
FParamsFormat.BitCount := 4 |
else |
if FParamsFormat.BitCount in [5..7] then |
FParamsFormat.BitCount := 8 |
else |
if FParamsFormat.BitCount in [9..15] then |
FParamsFormat.BitCount := 16 |
else |
if FParamsFormat.BitCount in [17..23] then |
FParamsFormat.BitCount := 24 |
else |
if FParamsFormat.BitCount in [25..31] then |
FParamsFormat.BitCount := 32; |
{ Transparent color } |
if (FParamsFormat.ImageType = DXTextureImageType_RGBColor) and (FParamsFormat.TransparentColor shr 24 = $01) then |
begin |
FParamsFormat.TransparentColor := RGB(FParamsFormat.idx_palette[Byte(FParamsFormat.TransparentColor)].peRed, |
FParamsFormat.idx_palette[Byte(FParamsFormat.TransparentColor)].peGreen, |
FParamsFormat.idx_palette[Byte(FParamsFormat.TransparentColor)].peBlue); |
end; |
end; |
procedure TDXTBase.LoadChannelRGBAFromFile(const FileName: string); |
begin |
FStrImageFileName := FileName; |
try |
EvaluateChannels([rgbRed, rgbGreen, rgbBlue, rgbAlpha], '', ''); |
finally |
FStrImageFileName := ''; |
end; |
end; |
procedure TDXTBase.SetChannelB(T: TDIB); |
begin |
FDIB := T; |
try |
EvaluateChannels([rgbBlue], '', ''); |
finally |
FDIB := nil; |
end; |
end; |
procedure TDXTBase.SetChannelRGB(T: TDIB); |
begin |
FDIB := T; |
try |
EvaluateChannels([rgbRed, rgbGreen, rgbBlue], '', ''); |
finally |
FDIB := nil; |
end; |
end; |
procedure TDXTBase.SaveToFile(iFilename: string {$IFDEF VER4UP} = ''{$ENDIF}); |
var |
Image: TDXTextureImage; |
begin |
{ Create output stream } |
Image := Self.Texture; |
if (FHasImageList.Count > 0) and Assigned(Image) then |
begin |
if iFilename <> '' then |
Image.SaveToFile(iFilename) |
else |
Image.SaveToFile(FParamsFormat.Name + '.dxt'); |
end; |
end; |
procedure TDXTBase.SetChannelA(T: TDIB); |
begin |
FDIB := T; |
try |
EvaluateChannels([rgbAlpha], '', ''); |
finally |
FDIB := nil; |
end; |
end; |
procedure TDXTBase.SetChannelG(T: TDIB); |
begin |
FDIB := T; |
try |
EvaluateChannels([rgbGreen], '', ''); |
finally |
FDIB := nil; |
end; |
end; |
destructor TDXTBase.Destroy; |
var I: Integer; |
begin |
for I := 0 to FHasImageList.Count - 1 do |
TDXTextureImage(FHasImageList[I]).Free; |
FHasImageList.Free; |
inherited Destroy; |
end; |
function TDXTBase.GetPicture: TDXTextureImage; |
var |
MemoryStream: TMemoryStream; |
begin |
Result := TDXTextureImage.Create; |
try |
if (FStrImageFileName <> '') and FileExists(FStrImageFileName) then |
begin |
Result.LoadFromFile(FStrImageFileName); |
Result.FImageName := ExtractFilename(FStrImageFileName); |
end |
else |
if Assigned(FDIB) then |
begin |
MemoryStream := TMemoryStream.Create; |
try |
FDIB.SaveToStream(MemoryStream); |
MemoryStream.Position := 0; //reading from 0 |
Result.LoadFromStream(MemoryStream); |
finally |
MemoryStream.Free; |
end; |
Result.FImageName := Format('DIB%x', [Integer(Result)]); //supplement name |
end; |
except |
on E: Exception do |
begin |
EDXTBaseError.Create(E.Message); |
end; |
end |
end; |
procedure TDXTBase.Resize(Image: TDXTextureImage; NewWidth, NewHeight: Integer; |
FilterTypeResample: TFilterTypeResample); |
//resize used for Mipmap |
var |
DIB: TDIB; |
x, y: Integer; |
c: DWORD; |
MemoryStream: TMemoryStream; |
begin |
{ Exit when no resize } |
if (Image.Width = NewWidth) and (Image.Height = NewHeight) then Exit; |
{ Supplement for image resizing } |
//raise EDXTBaseError.Create('Invalid image size for texture.'); |
{ No image at start } |
DIB := TDIB.Create; //DIB accept |
try |
DIB.SetSize(Image.Width, Image.Height, Image.BitCount); |
{ of type } |
for y := 0 to Image.Height - 1 do |
for x := 0 to Image.Width - 1 do |
begin |
if Image.ImageType = DXTextureImageType_PaletteIndexedColor then |
begin |
c := dxtDecodeChannel(Image.idx_index, Image.Pixels[x, y]); |
DIB.Pixels[x, y] := (Image.idx_palette[c].peRed shl 16) or |
(Image.idx_palette[c].peGreen shl 8) or |
Image.idx_palette[c].peBlue; |
end |
else begin |
c := Image.Pixels[x, y]; |
DIB.Pixels[x, y] := (dxtDecodeChannel(Image.rgb_red, c) shl 16) or |
(dxtDecodeChannel(Image.rgb_green, c) shl 8) or |
dxtDecodeChannel(Image.rgb_blue, c); |
end; |
end; |
{ Resize for 24 bitcount deep } |
Image.SetSize(DXTextureImageType_RGBColor, Width, Height, Image.BitCount, 0); |
Image.rgb_red := dxtMakeChannel($FF0000, False); |
Image.rgb_green := dxtMakeChannel($00FF00, False); |
Image.rgb_blue := dxtMakeChannel($0000FF, False); |
Image.rgb_alpha := dxtMakeChannel(0, False); |
{ Resample routine DIB based there } |
DIB.DoResample(Width, Height, FilterTypeResample); |
{Image returned through stream} |
Image.ClearImage; |
MemoryStream := TMemoryStream.Create; |
try |
DIB.SaveToStream(MemoryStream); |
MemoryStream.Position := 0; //from first byte |
Image.LoadFromStream(MemoryStream); |
finally |
MemoryStream.Free; |
end; |
finally |
DIB.Free; |
end; |
end; |
procedure TDXTBase.EvaluateChannels |
(const CheckChannelUsed: TDXTImageChannels; |
const CheckChannelChanged, CheckBitCountForChannel: string); |
var J: Integer; |
Channel: TDXTImageChannel; |
ChannelBitCount: array[TDXTImageChannel] of Integer; |
ChannelParamName: TDXTImageChannels; |
Image: TDXTextureImage; |
Q: TDXTImageChannel; |
begin |
Fillchar(ChannelBitCount, SizeOf(ChannelBitCount), 0); |
ChannelParamName := []; |
{ The channel which you use acquisition } |
J := 0; |
for Q := rgbRed to rgbAlpha do |
begin |
if Q in CheckChannelUsed then |
begin |
Inc(J); |
Channel := Q; |
if not (Channel in FHasChannels) then |
begin |
if CheckBitCountForChannel <> '' then |
ChannelBitCount[Channel] := StrToInt(Copy(CheckBitCountForChannel, j, 1)) |
else |
ChannelBitCount[Channel] := 8; {poke default value} |
if ChannelBitCount[Channel] <> 0 then |
ChannelParamName := ChannelParamName + [Channel]; |
if CheckChannelChanged <> '' then |
begin |
case UpCase(CheckChannelChanged[j]) of |
'R': FChannelChangeTable[Channel] := rgbRed; |
'G': FChannelChangeTable[Channel] := rgbGreen; |
'B': FChannelChangeTable[Channel] := rgbBlue; |
'Y': FChannelChangeTable[Channel] := yuvY; |
'N': FChannelChangeTable[Channel] := rgbNone; |
else |
raise EDXTBaseError.CreateFmt('Invalid channel type(%s)', [CheckChannelChanged[j]]); |
end; |
end; |
end; |
end; |
end; |
{ Processing of each } |
if ChannelParamName <> [] then |
begin |
{ Picture load } |
Image := nil; |
{pokud je image uz nahrany tj. stejneho jmena, pokracuj dale} |
for j := 0 to FHasImageList.Count - 1 do |
if AnsiCompareFileName(TDXTextureImage(FHasImageList[j]).ImageName, FStrImageFileName) = 0 then |
begin |
Image := FHasImageList[j]; |
Break; |
end; |
{obrazek neexistuje, musi se dotahnout bud z proudu, souboru nebo odjinut} |
if Image = nil then |
begin |
try |
Image := GetPicture; |
except |
if Assigned(Image) then |
begin |
{$IFNDEF VER5UP} |
Image.Free; Image := nil; |
{$ELSE} |
FreeAndNil(Image); |
{$ENDIF} |
end; |
raise; |
end; |
FHasImageList.Add(Image); |
end; |
{ Each channel processing } |
for Channel := Low(Channel) to High(Channel) do |
if Channel in ChannelParamName then |
begin |
if ChannelBitCount[Channel] >= 0 then |
FHasChannelImages[Channel].BitCount := ChannelBitCount[Channel] |
else |
begin |
case Image.ImageType of |
DXTextureImageType_PaletteIndexedColor: |
begin |
case Channel of |
rgbRed: FHasChannelImages[Channel].BitCount := 8; |
rgbGreen: FHasChannelImages[Channel].BitCount := 8; |
rgbBlue: FHasChannelImages[Channel].BitCount := 8; |
rgbAlpha: FHasChannelImages[Channel].BitCount := 8; |
end; |
end; |
DXTextureImageType_RGBColor: |
begin |
case Channel of |
rgbRed: FHasChannelImages[Channel].BitCount := Image.rgb_red.BitCount; |
rgbGreen: FHasChannelImages[Channel].BitCount := Image.rgb_green.BitCount; |
rgbBlue: FHasChannelImages[Channel].BitCount := Image.rgb_blue.BitCount; |
rgbAlpha: FHasChannelImages[Channel].BitCount := 8; |
end; |
end; |
end; |
end; |
if FHasChannelImages[Channel].BitCount = 0 then Continue; |
FHasChannels := FHasChannels + [Channel]; |
FHasChannelImages[Channel].Image := Image; |
end; |
end; |
end; |
function TDXTBase.GetTexture: TDXTextureImage; |
var |
i, j: Integer; |
SubImage: TDXTextureImage; |
CurWidth, CurHeight: Integer; |
begin |
Result := nil; |
if FHasImageList.Count = 0 then |
raise EDXTBaseError.Create('No image found'); |
{ Output format calculation } |
CalcOutputBitFormat; |
Result := TDXTextureImage.Create; |
try |
Result.SetSize(FParamsFormat.ImageType, FParamsFormat.Width, FParamsFormat.Height, FParamsFormat.BitCount, 0); |
Result.idx_index := FParamsFormat.idx_index; |
Result.idx_alpha := FParamsFormat.idx_alpha; |
Result.idx_palette := FParamsFormat.idx_palette; |
Result.rgb_red := FParamsFormat.rgb_red; |
Result.rgb_green := FParamsFormat.rgb_green; |
Result.rgb_blue := FParamsFormat.rgb_blue; |
Result.rgb_alpha := FParamsFormat.rgb_alpha; |
Result.ImageName := FParamsFormat.Name; |
Result.Transparent := FParamsFormat.Transparent; |
if FParamsFormat.TransparentColor shr 24 = $01 then |
Result.TransparentColor := dxtEncodeChannel(Result.idx_index, PaletteIndex(Byte(FParamsFormat.TransparentColor))) |
else |
Result.TransparentColor := Result.EncodeColor(GetRValue(FParamsFormat.TransparentColor), GetGValue(FParamsFormat.TransparentColor), GetBValue(FParamsFormat.TransparentColor), 0); |
BuildImage(Result); |
if FParamsFormat.ImageType = DXTextureImageType_RGBColor then |
begin |
BuildImage(Result); |
{ Picture information store here } |
CurWidth := FParamsFormat.Width; |
CurHeight := FParamsFormat.Height; |
for i := 0 to FParamsFormat.MipmapCount - 1 do |
begin |
CurWidth := CurWidth div 2; |
CurHeight := CurHeight div 2; |
if (CurWidth <= 0) or (CurHeight <= 0) then Break; |
{ Resize calc here } |
for j := 0 to FHasImageList.Count - 1 do |
Resize(FHasImageList[j], CurWidth, CurHeight, ftrTriangle); |
SubImage := TDXTextureImage.CreateSub(Result); |
SubImage.SetSize(FParamsFormat.ImageType, CurWidth, CurHeight, FParamsFormat.BitCount, 0); |
SubImage.idx_index := FParamsFormat.idx_index; |
SubImage.idx_alpha := FParamsFormat.idx_alpha; |
SubImage.idx_palette := FParamsFormat.idx_palette; |
SubImage.rgb_red := FParamsFormat.rgb_red; |
SubImage.rgb_green := FParamsFormat.rgb_green; |
SubImage.rgb_blue := FParamsFormat.rgb_blue; |
SubImage.rgb_alpha := FParamsFormat.rgb_alpha; |
SubImage.ImageGroupType := DXTextureImageGroupType_Normal; |
SubImage.ImageID := i; |
SubImage.ImageName := Format('%s - mimap #%d', [Result.ImageName, i + 1]); |
BuildImage(SubImage); |
end; |
end; |
Result.FileCompressType := FParamsFormat.Compress; |
except |
on E: Exception do |
begin |
{$IFNDEF VER5UP} |
Result.Free; |
Result := nil; |
{$ELSE} |
FreeAndNil(Result); |
{$ENDIF} |
raise EDXTBaseError.Create(E.Message); |
end; |
end; |
end; |
{ DIB2DTX } |
procedure dib2dxt(DIBImage: TDIB; out DXTImage: TDXTextureImage{$IFDEF DXTextureImage_UseZLIB}; const Shrink: Boolean = True{$ENDIF}); |
var |
TexImage: TDXTBase; |
DIB: TDIB; |
begin |
TexImage := TDXTBase.Create; |
try |
{$IFDEF DXTextureImage_UseZLIB} |
if Shrink then |
begin |
TexImage.Compression := DXTextureImageFileCompressType_ZLIB; |
TexImage.Mipmap := 4; |
end; |
{$ENDIF} |
try |
if DIBImage.HasAlphaChannel then |
begin |
DIB := DIBImage.RGBChannel; |
TexImage.SetChannelRGB(DIB); |
DIB.Free; |
DIB := DIBImage.AlphaChannel; |
TexImage.SetChannelA(DIB); |
DIB.Free; |
end |
else |
TexImage.SetChannelRGB(DIBImage); |
DXTImage := TexImage.Texture; |
except |
if Assigned(DXTImage) then |
DXTImage.Free; |
DXTImage := nil; |
end; |
finally |
TexImage.Free; |
end |
end; |
{$IFDEF D3DRM} |
{ TDirect3DRMUserVisual } |
procedure TDirect3DRMUserVisual_D3DRMOBJECTCALLBACK(lpD3DRMobj: IDirect3DRMObject; |
lpArg: Pointer); CDECL; |
lpArg: Pointer); cdecl; |
begin |
TDirect3DRMUserVisual(lpArg).Free; |
end; |
6149,7 → 11493,7 |
function TDirect3DRMUserVisual_D3DRMUSERVISUALCALLBACK(lpD3DRMUV: IDirect3DRMUserVisual; |
lpArg: Pointer; lpD3DRMUVreason: TD3DRMUserVisualReason; |
lpD3DRMDev: IDirect3DRMDevice; lpD3DRMview: IDirect3DRMViewport): Integer; CDECL; |
lpD3DRMDev: IDirect3DRMDevice; lpD3DRMview: IDirect3DRMViewport): Integer; cdecl; |
begin |
Result := TDirect3DRMUserVisual(lpArg).DoRender(lpD3DRMUVreason, lpD3DRMDev, lpD3DRMview); |
end; |
6159,7 → 11503,8 |
inherited Create; |
if D3DRM.CreateUserVisual(@TDirect3DRMUserVisual_D3DRMUSERVISUALCALLBACK, |
Self, FUserVisual)<>D3DRM_OK then |
Self, FUserVisual) <> D3DRM_OK |
then |
raise EDirect3DRMUserVisualError.CreateFmt(SCannotMade, ['IDirect3DRMUserVisual']); |
FUserVisual.AddDestroyCallback(@TDirect3DRMUserVisual_D3DRMOBJECTCALLBACK, Self); |
6178,13 → 11523,10 |
begin |
Result := 0; |
end; |
{$ENDIF} |
{ TPictureCollectionItem } |
const |
SurfaceDivWidth = 512; |
SurfaceDivHeight = 512; |
type |
TPictureCollectionItemPattern = class(TCollectionItem) |
private |
6260,6 → 11602,7 |
function TPictureCollectionItem.GetPatternRect(Index: Integer): TRect; |
begin |
if (Index>=0) and (index<FPatterns.Count) then |
//Result := (FPatterns.Items[Index] as TPictureCollectionItemPattern).FRect |
Result := TPictureCollectionItemPattern(FPatterns.Items[Index]).FRect |
else |
Result := Rect(0, 0, 0, 0); |
6279,14 → 11622,14 |
begin |
if FSurfaceList.Count=0 then |
begin |
if PatternWidth = 0 then PatternWidth := FPicture.Width; //prevent division by zero |
XCount := FPicture.Width div (PatternWidth+SkipWidth); |
if FPicture.Width-XCount*(PatternWidth+SkipWidth)=PatternWidth then |
Inc(XCount); |
if PatternHeight = 0 then PatternHeight := FPicture.Height; //prevent division by zero |
YCount := FPicture.Height div (PatternHeight+SkipHeight); |
if FPicture.Height-YCount*(PatternHeight+SkipHeight)=PatternHeight then |
Inc(YCount); |
Result := XCount*YCount; |
end else |
Result := FPatterns.Count; |
6304,15 → 11647,92 |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
{$IFDEF DrawHWAcc} |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.{$IFNDEF VER4UP}D2DRender2{$ELSE}D2DRender{$ENDIF}(Self, Bounds(X, Y, Width, Height), PatternIndex, rtDraw{$IFNDEF VER4UP}, $FF{$ENDIF}); |
end |
else |
{$ENDIF DrawHWAcc} |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.Draw(X, Y, FRect, FSurface, Transparent); |
end; |
end; |
procedure TPictureCollectionItem.DrawFlipHV(Dest: TDirectDrawSurface; X, Y, |
PatternIndex: Integer); |
var |
flrc: trect; |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
begin |
flrc.Left := frect.right; flrc.Right := frect.left; |
flrc.Top := fpicture.height - frect.top; |
flrc.Bottom := fpicture.height - frect.bottom; |
Dest.Draw(X, Y, Flrc, FSurface, Transparent); |
end; |
end; |
procedure TPictureCollectionItem.DrawFlipH(Dest: TDirectDrawSurface; X, Y, |
PatternIndex: Integer); |
var |
flrc: TRect; |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
begin |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Dest) then |
begin |
flrc := frect; |
Dest.MirrorFlip([rmfMirror]); |
end |
else |
begin |
flrc.Left := fpicture.width - frect.left; |
flrc.Right := fpicture.width - frect.right; |
flrc.Top := frect.Top; flrc.Bottom := frect.Bottom; |
end; |
Dest.Draw(X, Y, Flrc, FSurface, Transparent); |
end; |
end; |
procedure TPictureCollectionItem.DrawFlipV(Dest: TDirectDrawSurface; X, Y, |
PatternIndex: Integer); |
var |
flrc: TRect; |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
begin |
if AsSigned(D2D) and D2D.CanUseD2D and (D2D.FDDraw.Surface = Dest) then |
begin |
flrc := frect; |
Dest.MirrorFlip([rmfFlip]); |
end |
else |
begin |
flrc.Left := frect.left; flrc.Right := frect.right; |
flrc.Top := fpicture.height - frect.top; |
flrc.Bottom := fpicture.height - frect.bottom; |
end; |
Dest.Draw(X, Y, Flrc, FSurface, Transparent); |
end; |
end; |
procedure TPictureCollectionItem.StretchDraw(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer); |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
{$IFDEF DrawHWAcc} |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.{$IFNDEF VER4UP}D2DRender2{$ELSE}D2DRender{$ENDIF}(Self, DestRect, PatternIndex, rtDraw{$IFNDEF VER4UP}, $FF{$ENDIF}) |
end |
else |
{$ENDIF DrawHWAcc} |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.StretchDraw(DestRect, FRect, FSurface, Transparent); |
end; |
6323,16 → 11743,44 |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.{$IFNDEF VER4UP}D2DRender2{$ELSE}D2DRender{$ENDIF}(Self, DestRect, PatternIndex, rtAdd, Alpha) |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawAdd(DestRect, FRect, FSurface, Transparent, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawAddCol(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer; |
Color: Integer; Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderCol(Self, DestRect, PatternIndex, Color, rtAdd, Alpha) |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawAdd(DestRect, FRect, FSurface, Transparent, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawAlpha(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer; |
Alpha: Integer); |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.{$IFNDEF VER4UP}D2DRender2{$ELSE}D2DRender{$ENDIF}(Self, DestRect, PatternIndex, rtBlend, Alpha) |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawAlpha(DestRect, FRect, FSurface, Transparent, Alpha); |
end; |
6343,16 → 11791,49 |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.{$IFNDEF VER4UP}D2DRender2{$ELSE}D2DRender{$ENDIF}(Self, DestRect, PatternIndex, rtSub, Alpha) |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawSub(DestRect, FRect, FSurface, Transparent, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawSubCol(Dest: TDirectDrawSurface; const DestRect: TRect; PatternIndex: Integer; |
Color: Integer; Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderCol(Self, DestRect, PatternIndex, Color, rtSub, Alpha) |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawSub(DestRect, FRect, FSurface, Transparent, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawRotate(Dest: TDirectDrawSurface; X, Y, Width, Height, PatternIndex: Integer; |
CenterX, CenterY: Double; Angle: Integer); |
CenterX, CenterY: Double; Angle: single); |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
//X,Y................ Center of rotation |
//Width,Height....... Picture |
//PatternIndex....... Piece of picture |
//CenterX,CenterY ... Center of rotation on picture |
//Angle.............. Angle of rotation |
FDXDraw.FD2D.D2DRenderRotate(Self, X, Y, Width, Height, PatternIndex, rtDraw, CenterX, CenterY, Angle{$IFNDEF VER4UP}, $FF{$ENDIF}); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawRotate(X, Y, Width, Height, FRect, FSurface, CenterX, CenterY, Transparent, Angle); |
end; |
6359,10 → 11840,16 |
end; |
procedure TPictureCollectionItem.DrawRotateAdd(Dest: TDirectDrawSurface; X, Y, Width, Height, PatternIndex: Integer; |
CenterX, CenterY: Double; Angle, Alpha: Integer); |
CenterX, CenterY: Double; Angle: single; Alpha: Integer); |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderRotate(Self, X, Y, Width, Height, PatternIndex, rtAdd, CenterX, CenterY, Angle, Alpha); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawRotateAdd(X, Y, Width, Height, FRect, FSurface, CenterX, CenterY, Transparent, Angle, Alpha); |
end; |
6369,10 → 11856,16 |
end; |
procedure TPictureCollectionItem.DrawRotateAlpha(Dest: TDirectDrawSurface; X, Y, Width, Height, PatternIndex: Integer; |
CenterX, CenterY: Double; Angle, Alpha: Integer); |
CenterX, CenterY: Double; Angle: single; Alpha: Integer); |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderRotate(Self, X, Y, Width, Height, PatternIndex, rtBlend, CenterX, CenterY, Angle, Alpha); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawRotateAlpha(X, Y, Width, Height, FRect, FSurface, CenterX, CenterY, Transparent, Angle, Alpha); |
end; |
6379,10 → 11872,16 |
end; |
procedure TPictureCollectionItem.DrawRotateSub(Dest: TDirectDrawSurface; X, Y, Width, Height, PatternIndex: Integer; |
CenterX, CenterY: Double; Angle, Alpha: Integer); |
CenterX, CenterY: Double; Angle: single; Alpha: Integer); |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderRotate(Self, X, Y, Width, Height, PatternIndex, rtSub, CenterX, CenterY, Angle, Alpha); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawRotateSub(X, Y, Width, Height, FRect, FSurface, CenterX, CenterY, Transparent, Angle, Alpha); |
end; |
6393,6 → 11892,13 |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderWaveX(Self, X, Y, Width, Height, PatternIndex, rtDraw, |
Transparent, amp, Len, ph{$IFNDEF VER4UP}, $FF{$ENDIF}); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawWaveX(X, Y, Width, Height, FRect, FSurface, Transparent, amp, Len, ph); |
end; |
6403,6 → 11909,13 |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderWaveX(Self, X, Y, Width, Height, PatternIndex, rtAdd, |
Transparent, amp, Len, ph, Alpha); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawWaveXAdd(X, Y, Width, Height, FRect, FSurface, Transparent, amp, Len, ph, Alpha); |
end; |
6413,6 → 11926,13 |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderWaveX(Self, X, Y, Width, Height, PatternIndex, rtBlend, |
Transparent, amp, Len, ph, Alpha); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawWaveXAlpha(X, Y, Width, Height, FRect, FSurface, Transparent, amp, Len, ph, Alpha); |
end; |
6423,11 → 11943,75 |
begin |
if FInitialized and (PatternIndex>=0) and (PatternIndex<FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderWaveX(Self, X, Y, Width, Height, PatternIndex, rtSub, |
Transparent, amp, Len, ph, Alpha); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawWaveXSub(X, Y, Width, Height, FRect, FSurface, Transparent, amp, Len, ph, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawWaveYSub(Dest: TDirectDrawSurface; X, Y, |
Width, Height, PatternIndex, amp, Len, ph, Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderWaveY(Self, X, Y, Width, Height, PatternIndex, rtSub, |
Transparent, amp, Len, ph, Alpha); |
end |
{there is not software version} |
end; |
end; |
procedure TPictureCollectionItem.DrawWaveY(Dest: TDirectDrawSurface; X, Y, |
Width, Height, PatternIndex, amp, Len, ph: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderWaveY(Self, X, Y, Width, Height, PatternIndex, rtDraw, |
Transparent, amp, Len, ph{$IFNDEF VER4UP}, $FF{$ENDIF}); |
end |
end; |
end; |
procedure TPictureCollectionItem.DrawWaveYAdd(Dest: TDirectDrawSurface; X, Y, |
Width, Height, PatternIndex, amp, Len, ph, Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderWaveY(Self, X, Y, Width, Height, PatternIndex, rtAdd, |
Transparent, amp, Len, ph, Alpha); |
end |
end; |
end; |
procedure TPictureCollectionItem.DrawWaveYAlpha(Dest: TDirectDrawSurface; X, Y, |
Width, Height, PatternIndex, amp, Len, ph, Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderWaveY(Self, X, Y, Width, Height, PatternIndex, rtBlend, |
Transparent, amp, Len, ph, Alpha); |
end |
end; |
end; |
procedure TPictureCollectionItem.Finalize; |
begin |
if FInitialized then |
6437,10 → 12021,98 |
end; |
end; |
procedure TPictureCollectionItem.UpdateTag; |
function AddSurface(const SrcRect: TRect): TDirectDrawSurface; |
begin |
Result := TDirectDrawSurface.Create(PictureCollection.DXDraw.DDraw); |
FSurfaceList.Add(Result); |
Result.SystemMemory := FSystemMemory; |
Result.LoadFromGraphicRect(FPicture.Graphic, 0, 0, SrcRect); |
Result.TransparentColor := Result.ColorMatch(FTransparentColor); |
end; |
var |
x, y, x2, y2: Integer; |
BlockWidth, BlockHeight, BlockXCount, BlockYCount: Integer; |
Width2, Height2: Integer; |
TempSurface : TDirectDrawSurface; |
begin |
if FPicture.Graphic = nil then Exit; |
// ClearSurface; |
Width2 := Width + SkipWidth; |
Height2 := Height + SkipHeight; |
if (Width = FPicture.Width) and (Height = FPicture.Height) then |
begin |
with TPictureCollectionItemPattern.Create(FPatterns) do |
begin |
TempSurface := TDirectDrawSurface.Create(PictureCollection.DXDraw.DDraw); |
FSurface := TempSurface; |
FRect := Bounds(0, 0, FPicture.Width, FPicture.Height); |
TempSurface.LoadFromGraphicRect(FPicture.Graphic, 0, 0, FRect); |
TempSurface.SystemMemory := FSystemMemory; |
TempSurface.TransparentColor := TempSurface.ColorMatch(FTransparentColor); |
FSurfaceList.Add(TempSurface); |
end; |
end |
else |
if FSystemMemory then |
begin |
AddSurface(Bounds(0, 0, FPicture.Width, FPicture.Height)); |
for y := 0 to (FPicture.Height + SkipHeight) div Height2 - 1 do |
for x := 0 to (FPicture.Width + SkipWidth) div Width2 - 1 do |
with TPictureCollectionItemPattern.Create(FPatterns) do |
begin |
FRect := Bounds(x * Width2, y * Height2, Width, Height); |
FSurface := TDirectDrawSurface(FSurfaceList[0]); |
end; |
end |
else |
begin |
{ Load to a video memory with dividing the image. } |
BlockWidth := Min(((SurfaceDivWidth + Width2 - 1) div Width2) * Width2, |
(FPicture.Width + SkipWidth) div Width2 * Width2); |
BlockHeight := Min(((SurfaceDivHeight + Height2 - 1) div Height2) * Height2, |
(FPicture.Height + SkipHeight) div Height2 * Height2); |
if (BlockWidth = 0) or (BlockHeight = 0) then Exit; |
BlockXCount := (FPicture.Width + BlockWidth - 1) div BlockWidth; |
BlockYCount := (FPicture.Height + BlockHeight - 1) div BlockHeight; |
for y := 0 to BlockYCount - 1 do |
for x := 0 to BlockXCount - 1 do |
begin |
x2 := Min(BlockWidth, Max(FPicture.Width - x * BlockWidth, 0)); |
if x2 = 0 then x2 := BlockWidth; |
y2 := Min(BlockHeight, Max(FPicture.Height - y * BlockHeight, 0)); |
if y2 = 0 then y2 := BlockHeight; |
AddSurface(Bounds(x * BlockWidth, y * BlockHeight, x2, y2)); |
end; |
for y := 0 to (FPicture.Height + SkipHeight) div Height2 - 1 do |
for x := 0 to (FPicture.Width + SkipWidth) div Width2 - 1 do |
begin |
x2 := x * Width2; |
y2 := y * Height2; |
with TPictureCollectionItemPattern.Create(FPatterns) do |
begin |
FRect := Bounds(x2 - (x2 div BlockWidth * BlockWidth), y2 - (y2 div BlockHeight * BlockHeight), Width, Height); |
FSurface := TDirectDrawSurface(FSurfaceList[(x2 div BlockWidth) + ((y2 div BlockHeight) * BlockXCount)]); |
end; |
end; |
end; |
end; |
procedure TPictureCollectionItem.Initialize; |
begin |
Finalize; |
FInitialized := PictureCollection.Initialized; |
UpdateTag; |
end; |
procedure TPictureCollectionItem.Restore; |
6482,7 → 12154,9 |
FRect := Bounds(0, 0, FPicture.Width, FPicture.Height); |
FSurface := AddSurface(Bounds(0, 0, FPicture.Width, FPicture.Height)); |
end; |
end else if FSystemMemory then |
end |
else |
if FSystemMemory then |
begin |
{ Load to a system memory. } |
AddSurface(Bounds(0, 0, FPicture.Width, FPicture.Height)); |
6494,7 → 12168,8 |
FRect := Bounds(x * Width2, y * Height2, Width, Height); |
FSurface := TDirectDrawSurface(FSurfaceList[0]); |
end; |
end else |
end |
else |
begin |
{ Load to a video memory with dividing the image. } |
BlockWidth := Min(((SurfaceDivWidth+Width2-1) div Width2)*Width2, |
6531,6 → 12206,13 |
end; |
end; |
end; |
{Code added for better compatibility} |
{When is any picture changed, then all textures cleared and list have to reloaded} |
with PictureCollection do |
{$IFDEF D3D_deprecated}if (do3D in FDXDraw.Options) then{$ENDIF} |
if AsSigned(FDXDraw.FD2D) then |
if Assigned(FDXDraw.FD2D.D2DTextures) then |
FDXDraw.FD2D.D2DTextures.D2DPruneAllTextures; |
end; |
procedure TPictureCollectionItem.SetPicture(Value: TPicture); |
6557,6 → 12239,121 |
end; |
end; |
procedure TPictureCollectionItem.DrawAlphaCol(Dest: TDirectDrawSurface; |
const DestRect: TRect; PatternIndex, Color, Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderCol(Self, DestRect, PatternIndex, color, rtBlend, Alpha) |
end else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawAlpha(DestRect, FRect, FSurface, Transparent, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawRotateAddCol(Dest: TDirectDrawSurface; |
X, Y, Width, Height, PatternIndex: Integer; CenterX, CenterY: Double; |
Angle: single; Color, Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderRotateModeCol(Self, rtAdd, X, Y, Width, |
Height, PatternIndex, CenterX, CenterY, Angle, Color, Alpha); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawRotateAdd(X, Y, Width, Height, FRect, FSurface, CenterX, CenterY, Transparent, Angle, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawRotateAlphaCol(Dest: TDirectDrawSurface; |
X, Y, Width, Height, PatternIndex: Integer; CenterX, CenterY: Double; |
Angle: single; Color, Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderRotateModeCol(Self, rtBlend, X, Y, Width, |
Height, PatternIndex, CenterX, CenterY, Angle, Color, Alpha); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawRotateAlpha(X, Y, Width, Height, FRect, FSurface, CenterX, CenterY, Transparent, Angle, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawRotateSubCol(Dest: TDirectDrawSurface; |
X, Y, Width, Height, PatternIndex: Integer; CenterX, CenterY: Double; |
Angle: single; Color, Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderRotateModeCol(Self, rtSub, X, Y, Width, |
Height, PatternIndex, CenterX, CenterY, Angle, Color, Alpha); |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawRotateSub(X, Y, Width, Height, FRect, FSurface, CenterX, CenterY, Transparent, Angle, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawCol(Dest: TDirectDrawSurface; |
const DestRect, SourceRect: TRect; PatternIndex: Integer; Faded: Boolean; |
RenderType: TRenderType; Color, Specular: Integer; Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRenderColoredPartition(Self, DestRect, PatternIndex, |
Color, Specular, Faded, SourceRect, RenderType, |
Alpha) |
end |
else |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
Dest.DrawAlpha(DestRect, FRect, FSurface, Transparent, Alpha); |
end; |
end; |
procedure TPictureCollectionItem.DrawRect(Dest: TDirectDrawSurface; |
const DestRect, SourceRect: TRect; PatternIndex: Integer; |
RenderType: TRenderType; Transparent: Boolean; Alpha: Integer); |
begin |
if FInitialized and (PatternIndex >= 0) and (PatternIndex < FPatterns.Count) then |
begin |
{$IFDEF DrawHWAcc} |
with TPictureCollection(Self.GetPictureCollection) do |
if FDXDraw.CheckD3D(Dest) then |
begin |
FDXDraw.FD2D.D2DRender(Self, DestRect, PatternIndex, SourceRect, RenderType, Alpha); |
end |
else |
{$ENDIF DrawHWAcc} |
with TPictureCollectionItemPattern(FPatterns.Items[PatternIndex]) do |
begin |
case RenderType of |
rtDraw: Dest.StretchDraw(DestRect, SourceRect, FSurface, Transparent); |
//Dest.Draw(DestRect.Left, DestRect.Top, SourceRect, FSurface, Transparent); |
rtBlend: Dest.DrawAlpha(DestRect, SourceRect, FSurface, Transparent, Alpha); |
rtAdd: Dest.DrawAdd(DestRect, SourceRect, FSurface, Transparent, Alpha); |
rtSub: Dest.DrawSub(DestRect, SourceRect, FSurface, Transparent, Alpha); |
end; |
end; |
end; |
end; |
{ TPictureCollection } |
constructor TPictureCollection.Create(AOwner: TPersistent); |
6603,6 → 12400,22 |
end; |
end; |
procedure TPictureCollection.InitializeImages(DXDraw: TCustomDXDraw; Id : Integer); |
var |
i: Integer; |
begin |
If id = -1 Then |
Finalize; |
FDXDraw := DXDraw; |
if not Initialized then |
raise EPictureCollectionError.CreateFmt(SCannotInitialized, [ClassName]); |
for i := 0 to Count - 1 do |
If (id = -1) or (id = i) Then |
Items[i].Initialize; |
end; |
procedure TPictureCollection.Initialize(DXDraw: TCustomDXDraw); |
var |
i: Integer; |
6861,6 → 12674,7 |
end; |
constructor TDirectDrawOverlay.CreateWindowed(WindowHandle: HWND); |
{$IFDEF D3D_deprecated} |
const |
PrimaryDesc: TDDSurfaceDesc = ( |
dwSize: SizeOf(PrimaryDesc); |
6867,12 → 12681,22 |
dwFlags: DDSD_CAPS; |
ddsCaps: (dwCaps: DDSCAPS_PRIMARYSURFACE) |
); |
{$ELSE} |
var |
PrimaryDesc: TDDSurfaceDesc2; |
{$ENDIF} |
begin |
FDDraw2 := TDirectDraw.CreateEx(nil, False); |
if FDDraw2.IDraw.SetCooperativeLevel(WindowHandle, DDSCL_NORMAL)<>DD_OK then |
if FDDraw2.{$IFDEF D3D_deprecated}IDraw{$ELSE}IDraw7{$ENDIF}.SetCooperativeLevel(WindowHandle, DDSCL_NORMAL) <> DD_OK then |
raise EDirectDrawOverlayError.CreateFmt(SCannotInitialized, [SOverlay]); |
FTargetSurface2 := TDirectDrawSurface.Create(FDDraw2); |
{$IFNDEF D3D_deprecated} |
FillChar(PrimaryDesc, SizeOf(PrimaryDesc), 0); |
PrimaryDesc.dwSize := SizeOf(PrimaryDesc); |
PrimaryDesc.dwFlags := DDSD_CAPS; |
PrimaryDesc.ddsCaps.dwCaps := DDSCAPS_PRIMARYSURFACE; |
{$ENDIF} |
if not FTargetSurface2.CreateSurface(PrimaryDesc) then |
raise EDirectDrawOverlayError.CreateFmt(SCannotInitialized, [SOverlay]); |
6893,11 → 12717,17 |
FSurface.Free; FSurface := nil; |
end; |
procedure TDirectDrawOverlay.Initialize(const SurfaceDesc: TDDSurfaceDesc); |
procedure TDirectDrawOverlay.Initialize(const SurfaceDesc: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}); |
{$IFDEF D3D_deprecated} |
const |
BackBufferCaps: TDDSCaps = (dwCaps: DDSCAPS_BACKBUFFER); |
var |
DDSurface: IDirectDrawSurface; |
{$ELSE} |
var |
DDSurface: IDirectDrawSurface7; |
BackBufferCaps: TDDSCaps2; |
{$ENDIF} |
begin |
Finalize; |
try |
6906,18 → 12736,21 |
raise EDirectDrawOverlayError.CreateFmt(SCannotInitialized, [SOverlay]); |
FBackSurface := TDirectDrawSurface.Create(FDDraw); |
{$IFNDEF D3D_deprecated} |
BackBufferCaps.dwCaps := DDSCAPS_BACKBUFFER; |
{$ENDIF} |
if SurfaceDesc.ddsCaps.dwCaps and DDSCAPS_FLIP<>0 then |
begin |
if FSurface.ISurface.GetAttachedSurface(BackBufferCaps, DDSurface)=DD_OK then |
FBackSurface.IDDSurface := DDSurface; |
end else |
FBackSurface.IDDSurface := FSurface.IDDSurface; |
if FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetAttachedSurface(BackBufferCaps, DDSurface) = DD_OK then |
FBackSurface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := DDSurface; |
end |
else |
FBackSurface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} := FSurface.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF}; |
if FVisible then |
SetOverlayRect(FOverlayRect) |
else |
FSurface.ISurface.UpdateOverlay(PRect(nil)^, FTargetSurface.ISurface, PRect(nil)^, DDOVER_HIDE, PDDOverlayFX(nil)^); |
FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.UpdateOverlay(PRect(nil), FTargetSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, PRect(nil), DDOVER_HIDE, PDDOverlayFX(nil)); |
except |
Finalize; |
raise; |
6929,7 → 12762,7 |
if FSurface=nil then Exit; |
if FSurface.SurfaceDesc.ddsCaps.dwCaps and DDSCAPS_FLIP<>0 then |
FSurface.ISurface.Flip(nil, DDFLIP_WAIT); |
FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.Flip(nil, DDFLIP_WAIT); |
end; |
procedure TDirectDrawOverlay.SetOverlayColorKey(Value: TColor); |
6964,26 → 12797,34 |
XScaleRatio := (DestRect.right - DestRect.left) * 1000 div (SrcRect.right - SrcRect.left); |
YScaleRatio := (DestRect.bottom - DestRect.top) * 1000 div (SrcRect.bottom - SrcRect.top); |
if (FDDraw.DriverCaps.dwCaps and DDCAPS_OVERLAYSTRETCH<>0) and |
(FDDraw.DriverCaps.dwMinOverlayStretch<>0) and (XScaleRatio<Integer(FDDraw.DriverCaps.dwMinOverlayStretch)) then |
if (FDDraw.DriverCaps.dwCaps and DDCAPS_OVERLAYSTRETCH <> 0) |
and (FDDraw.DriverCaps.dwMinOverlayStretch <> 0) |
and (XScaleRatio < Integer(FDDraw.DriverCaps.dwMinOverlayStretch)) |
then |
begin |
DestRect.Right := DestRect.Left + (Integer(FSurface.SurfaceDesc.dwWidth) * (Integer(FDDraw.DriverCaps.dwMinOverlayStretch) + 1)) div 1000; |
end; |
if (FDDraw.DriverCaps.dwCaps and DDCAPS_OVERLAYSTRETCH<>0) and |
(FDDraw.DriverCaps.dwMaxOverlayStretch<>0) and (XScaleRatio>Integer(FDDraw.DriverCaps.dwMaxOverlayStretch)) then |
if (FDDraw.DriverCaps.dwCaps and DDCAPS_OVERLAYSTRETCH <> 0) |
and (FDDraw.DriverCaps.dwMaxOverlayStretch <> 0) |
and (XScaleRatio > Integer(FDDraw.DriverCaps.dwMaxOverlayStretch)) |
then |
begin |
DestRect.Right := DestRect.Left + (Integer(FSurface.SurfaceDesc.dwWidth) * (Integer(FDDraw.DriverCaps.dwMaxOverlayStretch) + 999)) div 1000; |
end; |
if (FDDraw.DriverCaps.dwCaps and DDCAPS_OVERLAYSTRETCH<>0) and |
(FDDraw.DriverCaps.dwMinOverlayStretch<>0) and (YScaleRatio<Integer(FDDraw.DriverCaps.dwMinOverlayStretch)) then |
if (FDDraw.DriverCaps.dwCaps and DDCAPS_OVERLAYSTRETCH <> 0) |
and (FDDraw.DriverCaps.dwMinOverlayStretch <> 0) |
and (YScaleRatio < Integer(FDDraw.DriverCaps.dwMinOverlayStretch)) |
then |
begin |
DestRect.Bottom := DestRect.Top + (Integer(FSurface.SurfaceDesc.dwHeight) * (Integer(FDDraw.DriverCaps.dwMinOverlayStretch) + 1)) div 1000; |
end; |
if (FDDraw.DriverCaps.dwCaps and DDCAPS_OVERLAYSTRETCH<>0) and |
(FDDraw.DriverCaps.dwMaxOverlayStretch<>0) and (YScaleRatio>Integer(FDDraw.DriverCaps.dwMaxOverlayStretch)) then |
if (FDDraw.DriverCaps.dwCaps and DDCAPS_OVERLAYSTRETCH <> 0) |
and (FDDraw.DriverCaps.dwMaxOverlayStretch <> 0) |
and (YScaleRatio > Integer(FDDraw.DriverCaps.dwMaxOverlayStretch)) |
then |
begin |
DestRect.Bottom := DestRect.Top + (Integer(FSurface.SurfaceDesc.dwHeight) * (Integer(FDDraw.DriverCaps.dwMaxOverlayStretch) + 999)) div 1000; |
end; |
7051,7 → 12892,7 |
OverlayFlags := OverlayFlags or (DDOVER_KEYDESTOVERRIDE or DDOVER_DDFX); |
end; |
FSurface.ISurface.UpdateOverlay(SrcRect, FTargetSurface.ISurface, DestRect, OverlayFlags, OverlayFX); |
FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.UpdateOverlay(@SrcRect, FTargetSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, @DestRect, OverlayFlags, @OverlayFX); |
end; |
end; |
7063,13 → 12904,3614 |
if FVisible then |
SetOverlayRect(FOverlayRect) |
else |
FSurface.ISurface.UpdateOverlay(PRect(nil)^, FTargetSurface.ISurface, PRect(nil)^, DDOVER_HIDE, PDDOverlayFX(nil)^); |
FSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.UpdateOverlay(PRect(nil), FTargetSurface.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}, PRect(nil), DDOVER_HIDE, PDDOverlayFX(nil)); |
end; |
end; |
{ TDXFont } |
constructor TDXFont.Create(AOwner: TComponent); |
begin |
inherited Create(AOwner); |
end; |
destructor TDXFont.Destroy; |
begin |
inherited Destroy; |
end; |
procedure TDXFont.Notification(AComponent: TComponent; Operation: TOperation); |
begin |
inherited Notification(AComponent, Operation); |
if (Operation = opRemove) and (AComponent = FDXImageList) then |
begin |
FDXImageList := nil; |
end; |
end; {Notification} |
procedure TDXFont.SetFont(const Value: string); |
begin |
FFont := Value; |
if assigned(FDXImageList) then |
begin |
FFontIndex := FDXImageList.items.IndexOf(FFont); { find font once } |
fOffset := FDXImageList.Items[FFontIndex].PatternWidth; |
end; |
end; |
procedure TDXFont.SetFontIndex(const Value: Integer); |
begin |
FFontIndex := Value; |
if assigned(FDXImageList) then |
begin |
FFont := FDXImageList.Items[FFontIndex].Name; |
fOffset := FDXImageList.Items[FFontIndex].PatternWidth; |
end; |
end; |
procedure TDXFont.TextOut(DirectDrawSurface: TDirectDrawSurface; X, Y: Integer; const Text: string); |
var |
loop, letter: Integer; |
UpperText: string; |
begin |
if not assigned(FDXImageList) then |
exit; |
Offset := FDXImageList.Items[FFontIndex].PatternWidth; |
UpperText := AnsiUppercase(text); |
for loop := 1 to Length(UpperText) do |
begin |
letter := AnsiPos(UpperText[loop], Alphabet) - 1; |
if letter < 0 then letter := 30; |
FDXImageList.items[FFontIndex].Draw(DirectDrawSurface, x + Offset * loop, y, letter); |
end; { loop } |
end; |
{ TDXPowerFontEffectsParameters } |
procedure TDXPowerFontEffectsParameters.SetAlphaValue( |
const Value: Integer); |
begin |
FAlphaValue := Value; |
end; |
procedure TDXPowerFontEffectsParameters.SetAngle(const Value: Integer); |
begin |
FAngle := Value; |
end; |
procedure TDXPowerFontEffectsParameters.SetCenterX(const Value: Integer); |
begin |
FCenterX := Value; |
end; |
procedure TDXPowerFontEffectsParameters.SetCenterY(const Value: Integer); |
begin |
FCenterY := Value; |
end; |
procedure TDXPowerFontEffectsParameters.SetHeight(const Value: Integer); |
begin |
FHeight := Value; |
end; |
procedure TDXPowerFontEffectsParameters.SetWAmplitude( |
const Value: Integer); |
begin |
FWAmplitude := Value; |
end; |
procedure TDXPowerFontEffectsParameters.SetWidth(const Value: Integer); |
begin |
FWidth := Value; |
end; |
procedure TDXPowerFontEffectsParameters.SetWLenght(const Value: Integer); |
begin |
FWLenght := Value; |
end; |
procedure TDXPowerFontEffectsParameters.SetWPhase(const Value: Integer); |
begin |
FWPhase := Value; |
end; |
{ TDXPowerFont } |
constructor TDXPowerFont.Create(AOwner: TComponent); |
begin |
inherited Create(AOwner); |
FUseEnterChar := True; |
FEnterCharacter := '|<'; |
FAlphabets := PowerAlphaBet; |
FTextOutType := ttNormal; |
FTextOutEffect := teNormal; |
FEffectsParameters := TDXPowerFontEffectsParameters.Create; |
end; |
destructor TDXPowerFont.Destroy; |
begin |
inherited Destroy; |
end; |
procedure TDXPowerFont.SetAlphabets(const Value: string); |
begin |
if FDXImageList <> nil then |
if Length(Value) > FDXImageList.Items[FFontIndex].PatternCount - 1 then Exit; |
FAlphabets := Value; |
end; |
procedure TDXPowerFont.SetEnterCharacter(const Value: string); |
begin |
if Length(Value) >= 2 then Exit; |
FEnterCharacter := Value; |
end; |
procedure TDXPowerFont.SetFont(const Value: string); |
begin |
FFont := Value; |
if FDXImageList <> nil then |
begin |
FFontIndex := FDXImageList.Items.IndexOf(FFont); // Find font once... |
Offset := FDXImageList.Items[FFontIndex].PatternWidth; |
FEffectsParameters.Width := FDXImageList.Items[FFontIndex].PatternWidth; |
FEffectsParameters.Height := FDXImageList.Items[FFontIndex].PatternHeight; |
end; |
end; |
procedure TDXPowerFont.SetFontIndex(const Value: Integer); |
begin |
FFontIndex := Value; |
if FDXImageList <> nil then |
begin |
FFont := FDXImageList.Items[FFontIndex].Name; |
Offset := FDXImageList.Items[FFontIndex].PatternWidth; |
FEffectsParameters.Width := FDXImageList.Items[FFontIndex].PatternWidth; |
FEffectsParameters.Height := FDXImageList.Items[FFontIndex].PatternHeight; |
end; |
end; |
procedure TDXPowerFont.SetEffectsParameters(const Value: TDXPowerFontEffectsParameters); |
begin |
FEffectsParameters := Value; |
end; |
procedure TDXPowerFont.SetTextOutEffect(const Value: TDXPowerFontTextOutEffect); |
begin |
FTextOutEffect := Value; |
end; |
procedure TDXPowerFont.SetTextOutType(const Value: TDXPowerFontTextOutType); |
begin |
FTextOutType := Value; |
end; |
procedure TDXPowerFont.SetUseEnterChar(const Value: Boolean); |
begin |
FUseEnterChar := Value; |
end; |
function TDXPowerFont.TextOutFast(DirectDrawSurface: TDirectDrawSurface; X, Y: Integer; const Text: string): Boolean; |
var |
Loop, Letter: Integer; |
txt: string; |
begin |
Result := False; |
if FDXImageList = nil then Exit; |
// modified |
case FTextOutType of |
ttNormal: Txt := Text; |
ttUpperCase: Txt := AnsiUpperCase(Text); |
ttLowerCase: Txt := AnsiLowerCase(Text); |
end; |
Offset := FDXImageList.Items[FFontIndex].PatternWidth; |
Loop := 1; |
while (Loop <= Length(Text)) do |
begin |
Letter := AnsiPos(txt[Loop], FAlphabets); // modified |
if (Letter > 0) and (Letter < FDXImageList.Items[FFontIndex].PatternCount - 1) then |
FDXImageList.Items[FFontIndex].Draw(DirectDrawSurface, X + (Offset * Loop), Y, Letter - 1); |
Inc(Loop); |
end; |
Result := True; |
end; |
function TDXPowerFont.TextOut(DirectDrawSurface: TDirectDrawSurface; X, Y: Integer; const Text: string): Boolean; |
var |
Loop, Letter: Integer; |
FCalculatedEnters, EnterHeghit, XLoop: Integer; |
DoTextOut: Boolean; |
Txt: string; |
Rect: TRect; |
begin |
Result := False; |
if FDXImageList = nil then Exit; |
Txt := Text; |
DoTextOut := True; |
if Assigned(FBeforeTextOut) then FBeforeTextOut(Self, Txt, DoTextOut); |
if not DoTextOut then Exit; |
// modified |
case FTextOutType of |
ttNormal: Txt := Text; |
ttUpperCase: Txt := AnsiUpperCase(Text); |
ttLowerCase: Txt := AnsiLowerCase(Text); |
end; |
Offset := FDXImageList.Items[FFontIndex].PatternWidth; |
FCalculatedEnters := 0; |
EnterHeghit := FDXImageList.Items[FFontIndex].PatternHeight; |
XLoop := 0; |
Loop := 1; |
while (Loop <= Length(Txt)) do |
begin |
if FUseEnterChar then |
begin |
if Txt[Loop] = FEnterCharacter[1] then begin Inc(FCalculatedEnters); Inc(Loop); end; |
if Txt[Loop] = FEnterCharacter[2] then begin Inc(FCalculatedEnters); XLoop := 0; {-FCalculatedEnters;} Inc(Loop); end; |
end; |
Letter := AnsiPos(Txt[Loop], FAlphabets); // modified |
if (Letter > 0) and (Letter < FDXImageList.Items[FFontIndex].PatternCount - 1) then |
case FTextOutEffect of |
teNormal: FDXImageList.Items[FFontIndex].Draw(DirectDrawSurface, X + (Offset * XLoop), Y + (FCalculatedEnters * EnterHeghit), Letter - 1); |
teRotat: FDXImageList.Items[FFontIndex].DrawRotate(DirectDrawSurface, X + (Offset * XLoop), Y + (FCalculatedEnters * EnterHeghit), FEffectsParameters.Width, FEffectsParameters.Height, Letter - 1, FEffectsParameters.CenterX, FEffectsParameters.CenterY, FEffectsParameters.Angle); |
teAlphaBlend: |
begin |
Rect.Left := X + (Offset * XLoop); |
Rect.Top := Y + (FCalculatedEnters * EnterHeghit); |
Rect.Right := Rect.Left + FEffectsParameters.Width; |
Rect.Bottom := Rect.Top + FEffectsParameters.Height; |
FDXImageList.Items[FFontIndex].DrawAlpha(DirectDrawSurface, Rect, Letter - 1, FEffectsParameters.AlphaValue); |
end; |
teWaveX: FDXImageList.Items[FFontIndex].DrawWaveX(DirectDrawSurface, X + (Offset * XLoop), Y + (FCalculatedEnters * EnterHeghit), FEffectsParameters.Width, FEffectsParameters.Height, Letter - 1, FEffectsParameters.WAmplitude, FEffectsParameters.WLenght, FEffectsParameters.WPhase); |
end; |
Inc(Loop); |
Inc(XLoop); |
end; |
if Assigned(FAfterTextOut) then FAfterTextOut(Self, Txt); |
Result := True; |
end; |
//--------------------------------------------------------------------------- |
{ |
Main code supported hardware acceleration by videoadapteur |
* Copyright (c) 2004-2010 Jaro Benes |
* All Rights Reserved |
* Version 1.09 |
* D2D Hardware module - main implementation part |
* web site: www.micrel.cz/Dx |
* e-mail: delphix_d2d@micrel.cz |
} |
constructor TD2DTextures.Create(DDraw: TCustomDXDraw); |
begin |
//inherited; |
FDDraw := DDraw; //reload DDraw |
{$IFNDEF VER4UP} |
TexLen := 0; |
Texture := nil; |
{$ELSE} |
SetLength(Texture, 0); |
{$ENDIF} |
end; |
destructor TD2DTextures.Destroy; |
var |
I: Integer; |
begin |
if Assigned(Texture) then |
{$IFDEF VER4UP} |
for I := Low(Texture) to High(Texture) do |
begin |
Texture[I].D2DTexture.Free; |
{$IFDEF VIDEOTEX} |
if Assigned(Texture[I].VDIB) then |
Texture[I].VDIB.Free; |
{$ENDIF} |
end; |
{$ELSE} |
for I := 0 to TexLen - 1 do |
begin |
Texture[I].D2DTexture.Free; |
{$IFDEF VIDEOTEX} |
if Assigned(Texture[I].VDIB) then |
Texture[I].VDIB.Free; |
{$ENDIF} |
end; |
{$ENDIF} |
inherited; |
end; |
function TD2DTextures.GetD2DMaxTextures: Integer; |
begin |
Result := {$IFDEF VER4UP}Length(Texture){$ELSE}TexLen{$ENDIF}; |
end; |
procedure TD2DTextures.SaveTextures(path: string); |
var I: Integer; |
begin |
if Texture <> nil then |
{$IFDEF VER4UP} |
if Length(Texture) > 0 then |
for I := Low(Texture) to High(Texture) do |
{$ELSE} |
if TexLen > 0 then |
for I := 0 to TexLen - 1 do |
{$ENDIF} |
Texture[I].D2DTexture.FImage.SaveToFile(path + Texture[I].Name + '.dxt'); |
end; |
procedure TD2DTextures.SetD2DMaxTextures(const Value: Integer); |
begin |
if Value > 0 then |
{$IFDEF VER4UP} |
SetLength(Texture, Value) |
{$ELSE} |
Inc(TexLen); |
if Texture = nil then |
Texture := AllocMem(SizeOf(TTextureRec)) |
else begin |
{alokuj pamet} |
ReallocMem(Texture, TexLen * SizeOf(TTextureRec)); |
end; |
{$ENDIF} |
end; |
function TD2DTextures.Find(byName: string): Integer; |
var I: Integer; |
begin |
Result := -1; |
if Texture <> nil then |
{$IFDEF VER4UP} |
if Length(Texture) > 0 then |
for I := Low(Texture) to High(Texture) do |
if AnsiUpperCase(Texture[I].Name) = AnsiUpperCase(byName) then |
begin |
Result := I; |
Exit; |
end; |
{$ELSE} |
if TexLen > 0 then |
for I := 0 to TexLen - 1 do |
if AnsiUpperCase(Texture[I].Name) = AnsiUpperCase(byName) then |
begin |
Result := I; |
Exit; |
end; |
{$ENDIF} |
end; |
function TD2DTextures.GetTextureByName(const byName: string): TDirect3DTexture2; |
begin |
Result := nil; |
if Assigned(Texture) then |
Result := Texture[Find(byName)].D2DTexture; |
end; |
function TD2DTextures.GetTextureByIndex(const byIndex: Integer): TDirect3DTexture2; |
begin |
Result := nil; |
{$IFNDEF VER4UP} |
if Assigned(Texture) and (byIndex >= 0) and (byIndex <= (TexLen - 1)) then |
Result := Texture[byIndex].D2DTexture; |
{$ELSE} |
if Assigned(Texture) and (byIndex in [0..High(Texture)]) then |
Result := Texture[byIndex].D2DTexture; |
{$ENDIF} |
end; |
function TD2DTextures.GetTextureNameByIndex(const byIndex: Integer): string; |
begin |
Result := ''; |
{$IFNDEF VER4UP} |
if Assigned(Texture) and (byIndex >= 0) and (byIndex <= (TexLen - 1)) then |
Result := Texture[byIndex].Name; |
{$ELSE} |
if Assigned(Texture) and (byIndex in [0..High(Texture)]) then |
Result := Texture[byIndex].Name; |
{$ENDIF} |
end; |
function TD2DTextures.Count: Integer; |
begin |
Result := 0; |
if Assigned(Texture) then |
{$IFNDEF VER4UP} |
Result := TexLen; |
{$ELSE} |
Result := High(Texture) + 1; |
{$ENDIF} |
end; |
procedure TD2DTextures.D2DPruneAllTextures; |
var I: Integer; |
begin |
if not Assigned(Texture) then Exit; |
{$IFDEF VER4UP} |
for I := Low(Texture) to High(Texture) do |
{$ELSE} |
for I := 0 to TexLen - 1 do |
{$ENDIF} |
begin |
Texture[I].D2DTexture.Free; |
{$IFDEF VIDEOTEX} |
if Assigned(Texture[I].VDIB) then |
Texture[I].VDIB.Free; |
{$ENDIF} |
end; |
{$IFDEF VER4UP} |
SetLength(Texture, 0); |
{$ELSE} |
TexLen := 0; |
{$ENDIF} |
end; |
procedure TD2DTextures.D2DFreeTextures; |
var I: Integer; |
begin |
if not Assigned(Texture) then Exit; |
{$IFDEF VER4UP} |
for I := Low(Texture) to High(Texture) do |
{$ELSE} |
for I := 0 to TexLen - 1 do |
{$ENDIF} |
begin |
Texture[I].D2DTexture.Free; |
{$IFDEF VIDEOTEX} |
if Assigned(Texture[I].VDIB) then |
Texture[I].VDIB.Free; |
{$ENDIF} |
end; |
{$IFNDEF VER4UP} |
FreeMem(Texture, TexLen * SizeOf(TTextureRec)); |
Texture := nil; |
{$ENDIF} |
end; |
procedure TD2DTextures.D2DPruneTextures; |
begin |
if {$IFDEF VER4UP}Length(Texture){$ELSE}TexLen{$ENDIF} > maxTexBlock then |
begin |
D2DPruneAllTextures |
end; |
end; |
procedure TD2DTextures.SizeAdjust(var DIB: TDIB; var FloatX1, FloatY1, FloatX2, FloatY2: Double); |
var |
X, Y: Integer; |
tempDIB: TDIB; |
begin {auto-adjust size n^2 for accelerator compatibility} |
X := 1; |
repeat |
X := X * 2; |
until DIB.Width <= X; |
Y := 1; |
repeat |
Y := Y * 2 |
until DIB.Height <= Y; |
{$IFDEF FORCE_SQUARE} |
X := Max(X, Y); |
Y := X; |
{$ENDIF} |
if (X = DIB.Width) and (Y = DIB.Height) then |
begin |
if DIB.BitCount = 32 then Exit; {do not touch} |
{code for correction a DIB.BitCount to 24 bit only} |
tempDIB := TDIB.Create; |
try |
tempDIB.SetSize(X, Y, 24); |
FillChar(tempDIB.PBits^, tempDIB.Size, 0); |
tempDIB.Canvas.Draw(0, 0, DIB); |
DIB.Assign(tempDIB); |
finally |
tempDIB.Free; |
end; |
Exit; |
end; |
tempDIB := TDIB.Create; |
try |
if DIB.BitCount = 32 then |
begin |
tempDIB.SetSize(X, Y, 32); |
FillChar(tempDIB.PBits^, tempDIB.Size, 0); |
//tempDIB.Canvas.Brush.Color := clBlack; |
//tempDIB.Canvas.FillRect(Bounds(0, 0, X, Y)); |
tempDIB.Canvas.Draw(0, 0, DIB); |
// if DIB.HasAlphaChannel then |
// tempDIB.AssignAlphaChannel(DIB); |
end |
else |
begin |
tempDIB.SetSize(X, Y, 24 {DIB.BitCount}); {bad value for some 16} |
FillChar(tempDIB.PBits^, tempDIB.Size, 0); |
//tempDIB.Canvas.Brush.Color := clBlack; |
//tempDIB.Canvas.FillRect(Bounds(0, 0, X, Y)); |
tempDIB.Canvas.Draw(0, 0, DIB); |
end; |
FloatX2 := (1 / tempDIB.Width) * DIB.Width; |
FloatY2 := (1 / tempDIB.Height) * DIB.Height; |
DIB.Assign(tempDIB); |
finally |
tempDIB.Free; |
end |
end; |
function TD2DTextures.CanFindTexture(aImage: TPictureCollectionItem): Boolean; |
var I: Integer; |
begin |
Result := True; |
{$IFDEF VER4UP} |
if Length(Texture) > 0 then |
{$ELSE} |
if TexLen > 0 then |
{$ENDIF} |
for I := 0 to D2DMaxTextures - 1 do |
if Texture[I].Name = aImage.Name then Exit; |
Result := False; |
end; |
function TD2DTextures.LoadTextures(aImage: TPictureCollectionItem): Boolean; |
var |
{$IFNDEF VIDEOTEX} |
VDIB: TDIB; |
{$ENDIF} |
T: TDXTextureImage; |
begin |
Result := True; |
try |
D2DPruneTextures; {up to maxTexBlock textures only} |
D2DMaxTextures := D2DMaxTextures + 1; |
if aImage.Name = '' then // FIX: OPTIMIZED |
aImage.Name := aImage.GetNamePath; {this name is supplement name, when wasn't aImage.Name fill} |
{$IFDEF VIDEOTEX}Texture[D2DMaxTextures - 1].{$ENDIF}VDIB := TDIB.Create; |
try |
with Texture[D2DMaxTextures - 1] do |
begin |
VDIB.Assign(aImage.Picture.Graphic); |
VDIB.Transparent := aImage.Transparent; |
FloatX1 := 0; FloatY1 := 0; FloatX2 := 1; FloatY2 := 1; |
SizeAdjust(VDIB, FloatX1, FloatY1, FloatX2, FloatY2); |
Name := aImage.Name; |
Width := VDIB.Width; |
Height := VDIB.Height; |
if VDIB.HasAlphaChannel then |
begin |
DIB2DXT(VDIB, T); |
T.ImageName := aImage.Name; |
T.Transparent := aImage.Transparent; |
D2DTexture := TDirect3DTexture2.Create(FDDraw, T, False); |
D2DTexture.Transparent := aImage.Transparent; |
AlphaChannel := True; |
//**T.Free; DO NOT FREE - surface is lost ** FIX by JB. |
end |
else |
begin |
D2DTexture := TDirect3DTexture2.Create(FDDraw, VDIB, False); |
D2DTexture.TransparentColor := DWORD(aImage.TransparentColor); |
D2DTexture.Surface.TransparentColor := DWORD(aImage.TransparentColor); |
D2DTexture.Transparent := aImage.Transparent; |
AlphaChannel := False; |
end; |
end; |
finally |
{$IFNDEF VIDEOTEX} |
VDIB.Free; |
{$ENDIF} |
end; |
except |
D2DMaxTextures := D2DMaxTextures - 1; |
Result := False; |
end; |
end; |
{$IFDEF VER4UP} |
function TD2DTextures.CanFindTexture(const TexName: string): Boolean; |
{$ELSE} |
function TD2DTextures.CanFindTexture2(const TexName: string): Boolean; |
{$ENDIF} |
var I: Integer; |
begin |
Result := True; |
{$IFDEF VER4UP} |
if Length(Texture) > 0 then |
{$ELSE} |
if TexLen > 0 then |
{$ENDIF} |
for I := 0 to D2DMaxTextures - 1 do |
if Texture[I].Name = TexName then Exit; |
Result := False; |
end; |
function TD2DTextures.SetTransparentColor(dds: TDirectDrawSurface; PixelColor: Integer; Transparent: Boolean): Integer; |
{Give a speculative transparent color value from DDS} |
var |
ddck: TDDColorKey; |
CLL: Integer; |
begin |
Result := 0; |
if dds.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
if dds.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetColorKey(DDCKEY_SRCBLT, ddck) = DD_OK then |
Result := ddck.dwColorSpaceLowValue; |
CLL := PixelColor; {have to pick up color from 0,0 pix of DIB} |
if Transparent then {and must be transparent} |
if (CLL <> Result) then {when different} |
Result := CLL; {use our TransparentColor} |
end; |
{$IFDEF VER4UP} |
function TD2DTextures.LoadTextures(dds: TDirectDrawSurface; Transparent: Boolean; asTexName: string): Boolean; |
{$ELSE} |
function TD2DTextures.LoadTextures2(dds: TDirectDrawSurface; Transparent: Boolean; asTexName: string): Boolean; |
{$ENDIF} |
var |
{$IFNDEF VIDEOTEX} |
VDIB: TDIB; |
{$ENDIF} |
Col: Integer; |
T: PTextureRec; |
begin |
Result := True; |
T := nil; |
try |
if dds.Modified then |
begin |
{search existing texture and return the pointer} |
T := Addr(Texture[Find(asTexName)]); |
{$IFNDEF VIDEOTEX}VDIB := TDIB.Create;{$ENDIF} |
end |
else |
begin |
D2DPruneTextures; {up to maxTexBlock textures only} |
D2DMaxTextures := D2DMaxTextures + 1; {next to new space} |
T := Addr(Texture[D2DMaxTextures - 1]); {is new place} |
{set name} |
T.Name := asTexName; |
{and create video-dib object for store the picture periodically changed} |
{$IFDEF VIDEOTEX}T.{$ENDIF}VDIB := TDIB.Create; |
//T.VDIB.PixelFormat := MakeDIBPixelFormat(8, 8, 8); |
end; |
try |
{the dds assigned here} |
{$IFDEF VIDEOTEX}T.{$ENDIF}VDIB.Assign(dds); |
{with full adjustation} |
T.FloatX1 := 0; T.FloatY1 := 0; T.FloatX2 := 1; T.FloatY2 := 1; |
SizeAdjust({$IFDEF VIDEOTEX}T.{$ENDIF}VDIB, T.FloatX1, T.FloatY1, T.FloatX2, T.FloatY2); |
{and store 'changed' values of size here} |
T.Width := {$IFDEF VIDEOTEX}T.{$ENDIF}VDIB.Width; |
T.Height := {$IFDEF VIDEOTEX}T.{$ENDIF}VDIB.Height; |
{and it have to set by dds as transparent, when it set up} |
{$IFDEF VIDEOTEX}T.{$ENDIF}VDIB.Transparent := Transparent; |
{get up transparent color} |
Col := SetTransparentColor(dds, {$IFDEF VIDEOTEX}T.{$ENDIF}VDIB.Pixels[0, 0], Transparent); |
if dds.Modified then |
T.D2DTexture.Load {for minimize time only load as videotexture} |
else |
T.D2DTexture := TDirect3DTexture2.Create(FDDraw, {$IFDEF VIDEOTEX}T.{$ENDIF}VDIB, False); {create it} |
{don't forget set transparent values on texture!} |
T.D2DTexture.TransparentColor := DWORD(COL); |
T.D2DTexture.Surface.TransparentColor := DWORD(COL); |
T.D2DTexture.Transparent := Transparent; |
finally |
{$IFNDEF VIDEOTEX} |
if Assigned(VDIB) then VDIB.Free; |
{$ENDIF} |
end; |
except |
{eh, sorry, when is not the dds modified, roll back and release last the VDIB} |
if not dds.Modified then |
if T <> nil then |
begin |
if Assigned({$IFDEF VIDEOTEX}T.{$ENDIF}VDIB) then |
{$IFNDEF D5UP} |
begin {$IFDEF VIDEOTEX}T.{$ENDIF}VDIB.Free; {$IFDEF VIDEOTEX}T.{$ENDIF}VDIB := nil; end; |
{$ELSE} |
FreeAndNil({$IFDEF VIDEOTEX}T.{$ENDIF}VDIB); |
{$ENDIF} |
if Assigned(T.D2DTexture) then |
{$IFNDEF D5UP} |
begin T.D2DTexture.Free; T.D2DTexture := nil; end; |
{$ELSE} |
FreeAndNil(T.D2DTexture); |
{$ENDIF} |
D2DMaxTextures := D2DMaxTextures - 1; //go back |
end; |
Result := False; |
end; |
dds.Modified := False; {this flag turn off always} |
end; |
{$IFDEF VER4UP} |
function TD2DTextures.LoadTextures(dds: TDirectDrawSurface; Transparent: Boolean; |
TransparentColor: Integer; asTexName: string): Boolean; |
{$ELSE} |
function TD2DTextures.LoadTextures3(dds: TDirectDrawSurface; Transparent: Boolean; |
TransparentColor: Integer; asTexName: string): Boolean; |
{$ENDIF} |
function getDDSTransparentColor(DIB: TDIB; dds: TDirectDrawSurface): Integer; |
var CLL: Integer; ddck: TDDColorKey; |
begin |
Result := 0; |
if dds.{$IFDEF D3D_deprecated}IDDSurface{$ELSE}IDDSurface7{$ENDIF} <> nil then |
if dds.{$IFDEF D3D_deprecated}ISurface{$ELSE}ISurface7{$ENDIF}.GetColorKey(DDCKEY_SRCBLT, ddck) = DD_OK then |
Result := ddck.dwColorSpaceLowValue; |
CLL := TransparentColor; |
if (CLL = -1) or (cardinal(CLL) <> DIB.Pixels[0, 0]) then //when is DDS |
CLL := DIB.Pixels[0, 0]; //have to pick up color from 0,0 pix of DIB |
if Transparent then //and must be transparent |
if CLL <> Result then //when different |
Result := CLL; //use TransparentColor |
end; |
var |
{$IFNDEF VIDEOTEX} |
VDIB: TDIB; |
{$ENDIF} |
COL: Integer; |
T: TDXTextureImage; |
begin |
Result := True; |
try |
D2DPruneTextures; {up to maxTexBlock textures only} |
D2DMaxTextures := D2DMaxTextures + 1; |
Texture[D2DMaxTextures - 1].Name := asTexName; |
{$IFDEF VIDEOTEX}Texture[D2DMaxTextures - 1].{$ENDIF}VDIB := TDIB.Create; |
try |
with Texture[D2DMaxTextures - 1] do |
begin |
VDIB.AsSign(dds); |
VDIB.Transparent := Transparent; |
FloatX1 := 0; FloatY1 := 0; FloatX2 := 1; FloatY2 := 1; |
SizeAdjust(VDIB, FloatX1, FloatY1, FloatX2, FloatY2); |
Width := VDIB.Width; |
Height := VDIB.Height; |
if VDIB.HasAlphaChannel then |
begin |
DIB2DXT(VDIB, T); |
T.ImageName := asTexName; |
T.Transparent := Transparent; |
D2DTexture := TDirect3DTexture2.Create(FDDraw, T, False); |
D2DTexture.Transparent := Transparent; |
AlphaChannel := True; |
//**T.Free; DO NOT FREE - surface is lost ** FIX by JB. |
end |
else |
begin |
D2DTexture := TDirect3DTexture2.Create(FDDraw, VDIB, False); |
if transparentcolor = -1 then |
COL := getDDSTransparentColor(VDIB, DDS) |
else |
COL := D2DTexture.Surface.ColorMatch(transparentcolor); |
D2DTexture.TransparentColor := DWORD(COL); //** |
D2DTexture.Surface.TransparentColor := DWORD(COL); //** |
D2DTexture.Transparent := Transparent; |
AlphaChannel := False; |
end; |
end |
finally |
{$IFNDEF VIDEOTEX} |
VDIB.Free; |
{$ENDIF} |
end; |
except |
D2DMaxTextures := D2DMaxTextures - 1; |
Result := False; |
end; |
end; |
{$IFDEF VER4UP} |
function TD2DTextures.CanFindTexture(const Color: LongInt): Boolean; |
{$ELSE} |
function TD2DTextures.CanFindTexture3(const Color: LongInt): Boolean; |
{$ENDIF} |
var I: Integer; |
begin |
Result := True; |
{$IFDEF VER4UP} |
if Length(Texture) > 0 then |
{$ELSE} |
if TexLen > 0 then |
{$ENDIF} |
for I := 0 to D2DMaxTextures - 1 do |
if Texture[I].Name = '$' + IntToStr(Color) then Exit; |
Result := False; |
end; |
{$IFDEF VER4UP} |
function TD2DTextures.LoadTextures(Color: LongInt): Boolean; |
{$ELSE} |
function TD2DTextures.LoadTextures4(Color: LongInt): Boolean; |
{$ENDIF} |
var |
S: string; |
{$IFNDEF VIDEOTEX} |
VDIB: TDIB; |
{$ENDIF} |
begin |
Result := True; |
try |
D2DPruneTextures; {up to maxTexBlock textures only} |
D2DMaxTextures := D2DMaxTextures + 1; |
S := '$' + IntToStr(Color); {this name is supplement name} |
{$IFDEF VIDEOTEX}Texture[D2DMaxTextures - 1].{$ENDIF}VDIB := TDIB.Create; |
try |
with Texture[D2DMaxTextures - 1] do |
begin |
VDIB.SetSize(16, 16, 24); {16x16 good size} |
VDIB.Canvas.Brush.Color := Color; |
VDIB.Canvas.FillRect(Bounds(0, 0, 16, 16)); |
FloatX1 := 0; |
FloatY1 := 0; |
FloatX2 := 1; |
FloatY2 := 1; |
Name := S; |
D2DTexture := TDirect3DTexture2.Create(FDDraw, VDIB, False); |
D2DTexture.Transparent := False; //cannot be transparent |
end; |
finally |
{$IFNDEF VIDEOTEX} |
VDIB.Free; |
{$ENDIF} |
end; |
except |
D2DMaxTextures := D2DMaxTextures - 1; |
Result := False; |
end; |
end; |
{$IFDEF VIDEOTEX} |
function TD2DTextures.GetTexLayoutByName(name: string): TDIB; |
var |
I: Integer; |
begin |
Result := nil; |
I := Find(name); |
{$IFDEF VER4UP} |
if (I >= Low(Texture)) and (I <= High(Texture)) then |
{$ELSE} |
if I <> -1 then |
{$ENDIF} |
Result := Texture[I].VDIB |
end; |
{$ENDIF} |
//--------------------------------------------------------------------------- |
constructor TD2D.Create(DDraw: TCustomDXDraw); |
begin |
inherited Create; |
//after inheritance |
FDDraw := DDraw; |
FD2DTextureFilter := D2D_POINT {D2D_LINEAR}; |
{$IFNDEF D3D_deprecated} |
FD2DTexture := TD2DTextures.Create(FDDraw); |
{$ENDIF} |
InitVertex; |
{internal allocation of texture} |
CanUseD2D := {$IFDEF D3D_deprecated}(do3D in FDDraw.Options) and |
(doDirectX7Mode in FDDraw.Options) and |
(doHardware in FDDraw.Options){$ELSE}True{$ENDIF}; |
FDIB := TDIB.Create; |
FInitialized := False; |
end; |
destructor TD2D.Destroy; |
begin |
{freeing texture and stop using it} |
CanUseD2D := False; |
if AsSigned(FD2DTexture) then |
begin |
FD2DTexture.Free; {add 29.5.2005 Takanori Kawasaki} |
FD2DTexture := nil; |
end; |
FDIB.Free; |
inherited Destroy; |
end; |
procedure TD2D.InitVertex; |
var i: Integer; |
begin |
Fillchar(FVertex, SizeOf(FVertex), 0); |
for i := 0 to 3 do |
begin |
FVertex[i].Specular := D3DRGB(1.0, 1.0, 1.0); |
FVertex[i].rhw := 1.0; |
end; |
end; |
//--------------------------------------------------------------------------- |
procedure TD2D.BeginScene(); |
begin |
asm |
FINIT |
end; |
FDDraw.D3DDevice7.BeginScene(); |
asm |
FINIT |
end; |
FDDraw.D3DDevice7.Clear(0, nil, D3DCLEAR_TARGET, 0, 0, 0); |
end; |
//--------------------------------------------------------------------------- |
procedure TD2D.EndScene(); |
begin |
asm |
FINIT |
end; |
FDDraw.D3DDevice7.EndScene(); |
asm |
FINIT |
end; |
end; |
function TD2D.D2DTexturedOn(Image: TPictureCollectionItem; Pattern: Integer; SubPatternRect: TRect; RenderType: TRenderType; Alpha: Byte): Boolean; |
var I: Integer; |
SrcX, SrcY, diffX: Double; |
R: TRect; |
Q: TTextureRec; |
begin |
Result := False; |
FDDraw.D3DDevice7.SetTexture(0, nil); |
if not FD2DTexture.CanFindTexture(Image) then {when no texture in list try load it} |
if not FD2DTexture.LoadTextures(Image) then {loading is here} |
Exit; {on error occurr out} |
I := FD2DTexture.Find(Image.Name); |
if I = -1 then Exit; |
{set pattern as texture} |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MAGFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MINFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
try |
RenderError := FDDraw.D3DDevice7.SetTexture(0, FD2DTexture.Texture[I].D2DTexture.Surface.IDDSurface7) <> DD_OK; |
case RenderType of |
rtDraw: begin D2DEffectSolid; D2DWhite; end; |
rtBlend: begin D2DEffectBlend; D2DAlphaVertex(Alpha); end; |
rtAdd: begin D2DEffectAdd; D2DFade(Alpha); end; |
rtSub: begin D2DEffectSub; D2DFade(Alpha); end; |
end; |
except |
RenderError := True; |
FD2DTexture.D2DPruneAllTextures; |
Image.Restore; |
SetD2DTextureFilter(D2D_LINEAR); |
Exit; |
end; |
{set transparent area} |
RenderError := FDDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, Ord(FD2DTexture.Texture[I].D2DTexture.Transparent)) <> DD_OK; |
{except for Draw when alphachannel exists} |
{change for blend drawing but save transparent area still} |
if FD2DTexture.Texture[I].AlphaChannel then |
{when is Draw selected then} |
if RenderType = rtDraw then |
begin |
D2DEffectBlend; |
D2DAlphaVertex($FF); |
end; |
{pokud je obrazek rozdeleny, nastav oka site} |
if (Image.PatternHeight <> 0) or (Image.PatternWidth <> 0) then |
begin |
{vezmi rect jenom dilku} |
R := Image.PatternRects[Pattern]; |
SrcX := 1 / FD2DTexture.Texture[I].Width; |
SrcY := 1 / FD2DTexture.Texture[I].Height; |
//namapovani vertexu na texturu |
FD2DTexture.Texture[I].FloatX1 := SrcX * R.Left; |
FD2DTexture.Texture[I].FloatY1 := SrcY * R.Top; |
{for meshed subimage contain one image only can be problem there} |
diffX := 0.5; if Image.PatternCount = 1 then diffX := 0; |
FD2DTexture.Texture[I].FloatX2 := SrcX * (R.Right - diffX); |
FD2DTexture.Texture[I].FloatY2 := SrcY * (R.Bottom - diffX); |
if not ( |
(SubPatternRect.Left = Image.PatternRects[Pattern].Left) and |
(SubPatternRect.Top = Image.PatternRects[Pattern].Top) and |
(SubPatternRect.Right = Image.PatternRects[Pattern].Right) and |
(SubPatternRect.Bottom = Image.PatternRects[Pattern].Bottom)) |
then |
begin |
{remaping subtexture via subpattern} |
Q.FloatX1 := SrcX * SubPatternRect.Left; |
Q.FloatY1 := SrcY * SubPatternRect.Top; |
Q.FloatX2 := SrcX * (SubPatternRect.Right - diffX); |
Q.FloatY2 := SrcY * (SubPatternRect.Bottom - diffX); |
D2DTU(Q); {with mirroring/flipping} |
Result := not RenderError; |
Exit; |
end; |
end; {jinak celeho obrazku} |
{ X1,Y1 X2,Y1 |
0 +-----------------+ 1 |
| | |
| | |
| | |
| | |
2 +-----------------+ 3 |
X1,Y2 X2,Y2 } |
D2DTU(FD2DTexture.Texture[I]); |
Result := not RenderError; |
end; |
function TD2D.D2DTexturedOnDDSTex(dds: TDirectDrawSurface; SubPatternRect: TRect; Transparent: Boolean): Integer; |
{special version of map for TDirectDrawSurface only} |
{set up transparent color from this surface} |
var |
TexName: string; |
begin |
Result := -1; |
{pokud je seznam prazdny, nahrej texturu} |
if dds.Caption <> '' then TexName := dds.Caption |
else TexName := IntToStr(Integer(dds)); {simple but stupid} |
if not FD2DTexture.{$IFDEF VER4UP}CanFindTexture{$ELSE}CanFindTexture2{$ENDIF}(TexName) then |
begin |
{when texture doesn't exists, has to the Modified flag turn off} |
if dds.Modified then |
dds.Modified := not dds.Modified; |
if not FD2DTexture.{$IFDEF VER4UP}LoadTextures{$ELSE}LoadTextures2{$ENDIF}(dds, Transparent, TexName) then |
Exit; {nepovede-li se to, pak ven} |
end |
else |
if dds.Modified then |
begin {when modifying, load texture allways} |
if not FD2DTexture.{$IFDEF VER4UP}LoadTextures{$ELSE}LoadTextures2{$ENDIF}(dds, Transparent, TexName) then |
Exit; {nepovede-li se to, pak ven} |
end; |
Result := FD2DTexture.Find(TexName); |
end; |
function IsNotZero(Z: TRect): Boolean; |
begin |
Result := ((Z.Right - Z.Left) > 0) and ((Z.Bottom - Z.Top) > 0) |
end; |
function TD2D.D2DTexturedOnDDS(dds: TDirectDrawSurface; SubPatternRect: TRect; Transparent: Boolean; RenderType: TRenderType; Alpha: Byte): Boolean; |
var I: Integer; |
SrcX, SrcY: Double; |
begin |
Result := False; |
FDDraw.D3DDevice7.SetTexture(0, nil); |
{call a low level routine for load DDS texture} |
I := D2DTexturedOnDDSTex(dds, SubPatternRect, Transparent); |
if I = -1 then Exit; |
{set pattern as texture} |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MAGFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MINFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
try |
RenderError := FDDraw.D3DDevice7.SetTexture(0, FD2DTexture.Texture[I].D2DTexture.Surface.IDDSurface7) <> DD_OK; |
case RenderType of |
rtDraw: begin D2DEffectSolid; D2DWhite; end; |
rtBlend: begin D2DEffectBlend; D2DAlphaVertex(Alpha); end; |
rtAdd: begin D2DEffectAdd; D2DFade(Alpha); end; |
rtSub: begin D2DEffectSub; D2DFade(Alpha); end; |
end; |
except |
RenderError := True; |
FD2DTexture.D2DPruneAllTextures; |
SetD2DTextureFilter(D2D_LINEAR); //default |
Exit; |
end; |
{set transparent area} |
RenderError := FDDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, Ord(FD2DTexture.Texture[I].D2DTexture.Transparent)) <> DD_OK; |
if IsNotZero(SubPatternRect) then |
begin |
{Set Texture Coordinates} |
SrcX := 1 / FD2DTexture.Texture[I].D2DTexture.FImage.Width; |
SrcY := 1 / FD2DTexture.Texture[I].D2DTexture.FImage.Height; |
//namapovani vertexu na texturu |
FD2DTexture.Texture[I].FloatX1 := SrcX * SubPatternRect.Left; |
FD2DTexture.Texture[I].FloatY1 := SrcY * SubPatternRect.Top; |
FD2DTexture.Texture[I].FloatX2 := SrcX * (SubPatternRect.Right - 0.5 { - 1}); //by Speeeder |
FD2DTexture.Texture[I].FloatY2 := SrcY * (SubPatternRect.Bottom - 0.5 { - 1}); //by Speeeder |
end; |
D2DTU(FD2DTexture.Texture[I]); |
Result := not RenderError; |
end; |
//--------------------------------------------------------------------------- |
procedure TD2D.SaveTextures(path: string); |
begin |
FD2DTexture.SaveTextures(path); |
end; |
procedure TD2D.SetCanUseD2D(const Value: Boolean); |
begin |
case Value of |
False: {prestava se uzivat} |
if AsSigned(FD2DTexture) and (Value <> FCanUseD2D) then |
begin |
FInitialized := False; |
end; |
True: |
if Value <> FCanUseD2D then |
begin |
{$IFDEF D3D_deprecated} |
FD2DTexture := TD2DTextures.Create(FDDraw); |
TextureFilter := D2D_LINEAR; |
{$ENDIF} |
end |
end; |
FCanUseD2D := Value; |
end; |
function TD2D.GetCanUseD2D: Boolean; |
begin |
{$IFDEF D3D_deprecated} |
{Mode has to do3D, doDirectX7Mode and doHardware} |
if (do3D in FDDraw.Options) and |
(doDirectX7Mode in FDDraw.Options) and |
(doHardware in FDDraw.Options) |
then |
begin |
if not FCanUseD2D then CanUseD2D := True; |
end |
else |
if not (do3D in FDDraw.Options) or |
not (doDirectX7Mode in FDDraw.Options) or |
not (doHardware in FDDraw.Options) |
then |
if FCanUseD2D then FCanUseD2D := False; // CanUseD2D -> FCanUseD2D |
{$ELSE} |
FCanUseD2D := (doHardware in FDDraw.Options); |
{$ENDIF} |
FBitCount := FDDraw.Surface.SurfaceDesc.ddpfPixelFormat.dwRGBBitCount; |
{supported 16 or 32 bitcount deepth only} |
{$IFDEF D3D_deprecated} |
if not (FBitCount in [16, 32]) then FCanUseD2D := False; |
{$ENDIF} |
if not FInitialized then |
if FCanUseD2D and Assigned(FDDraw.D3DDevice7) then |
begin |
FDDraw.D3DDevice7.GetCaps(FD3DDevDesc7); |
FInitialized := True; |
end; |
Result := FCanUseD2D; |
end; |
procedure TD2D.SetD2DTextureFilter(const Value: TD2DTextureFilter); |
begin |
FD2DTextureFilter := Value; |
if {$IFDEF D3D_deprecated}(do3D in FDDraw.Options) and{$ENDIF} AsSigned(FDDraw.D3DDevice7) then |
begin |
FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MAGFILTER, DWord(Ord(FD2DTextureFilter) + 1)); |
FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MINFILTER, DWord(Ord(FD2DTextureFilter) + 1)); |
end; |
end; |
procedure TD2D.SetD2DAntialiasFilter(const Value: TD3DAntialiasMode); |
begin |
FD2DAntialiasFilter := Value; |
if {$IFDEF D3D_deprecated}(do3D in FDDraw.Options) and{$ENDIF} AsSigned(FDDraw.D3DDevice7) then |
begin |
FDDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_ANTIALIAS, Ord(Value)); |
end; |
end; |
procedure TD2D.D2DRect(R: TRect); |
begin |
FVertex[0].sx := R.Left - 0.5; |
FVertex[0].sy := R.Top - 0.5; |
FVertex[1].sx := R.Right - 0.5; |
FVertex[1].sy := R.Top - 0.5; |
FVertex[2].sx := R.Left - 0.5; |
FVertex[2].sy := R.Bottom - 0.5; |
FVertex[3].sx := R.Right - 0.5; |
FVertex[3].sy := R.Bottom - 0.5; |
end; |
procedure TD2D.D2DTU(T: TTextureRec); |
begin |
if FMirrorFlipSet = [rmfMirror] then |
begin |
{ X1,Y1 X2,Y1 |
0 +-----------------+ 1 |
| | |
| | |
| | |
| | |
2 +-----------------+ 3 |
X1,Y2 X2,Y2 } |
FVertex[1].tu := T.FloatX1; |
FVertex[1].tv := T.FloatY1; |
FVertex[0].tu := T.FloatX2; |
FVertex[0].tv := T.FloatY1; |
FVertex[3].tu := T.FloatX1; |
FVertex[3].tv := T.FloatY2; |
FVertex[2].tu := T.FloatX2; |
FVertex[2].tv := T.FloatY2; |
end |
else |
if FMirrorFlipSet = [rmfFlip] then |
begin |
{ X1,Y1 X2,Y1 |
0 +-----------------+ 1 |
| | |
| | |
| | |
| | |
2 +-----------------+ 3 |
X1,Y2 X2,Y2 } |
FVertex[2].tu := T.FloatX1; |
FVertex[2].tv := T.FloatY1; |
FVertex[3].tu := T.FloatX2; |
FVertex[3].tv := T.FloatY1; |
FVertex[0].tu := T.FloatX1; |
FVertex[0].tv := T.FloatY2; |
FVertex[1].tu := T.FloatX2; |
FVertex[1].tv := T.FloatY2; |
end |
else |
if FMirrorFlipSet = [rmfMirror, rmfFlip] then |
begin |
{ X1,Y1 X2,Y1 |
0 +-----------------+ 1 |
| | |
| | |
| | |
| | |
2 +-----------------+ 3 |
X1,Y2 X2,Y2 } |
FVertex[3].tu := T.FloatX1; |
FVertex[3].tv := T.FloatY1; |
FVertex[2].tu := T.FloatX2; |
FVertex[2].tv := T.FloatY1; |
FVertex[1].tu := T.FloatX1; |
FVertex[1].tv := T.FloatY2; |
FVertex[0].tu := T.FloatX2; |
FVertex[0].tv := T.FloatY2; |
end |
else |
begin |
{ X1,Y1 X2,Y1 |
0 +-----------------+ 1 |
| | |
| | |
| | |
| | |
2 +-----------------+ 3 |
X1,Y2 X2,Y2 } |
FVertex[0].tu := T.FloatX1; |
FVertex[0].tv := T.FloatY1; |
FVertex[1].tu := T.FloatX2; |
FVertex[1].tv := T.FloatY1; |
FVertex[2].tu := T.FloatX1; |
FVertex[2].tv := T.FloatY2; |
FVertex[3].tu := T.FloatX2; |
FVertex[3].tv := T.FloatY2; |
end; |
end; |
{Final public routines} |
function TD2D.D2DRender(Image: TPictureCollectionItem; DestRect: TRect; |
Pattern: Integer; SourceRect: TRect; RenderType: TRenderType; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
if D2DTexturedOnSubRect(Image, Pattern, Image.PatternRects[Pattern], SourceRect, RenderType, Alpha) then |
begin |
D2DRect(DestRect); |
Result := RenderQuad; |
end; |
end; |
function TD2D.{$IFNDEF VER4UP}D2DRender2{$ELSE}D2DRender{$ENDIF}(Image: TPictureCollectionItem; R: TRect; |
Pattern: Integer; RenderType: TRenderType; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
if D2DTexturedOn(Image, Pattern, Image.PatternRects[Pattern], RenderType, Alpha) then |
begin |
D2DRect(R); |
Result := RenderQuad; |
end; |
end; |
function TD2D.D2DRenderDDS(Source: TDirectDrawSurface; SourceRect, DestRect: TRect; |
Transparent: Boolean; Pattern: Integer; RenderType: TRenderType; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
if D2DTexturedOnDDS(Source, SourceRect, Transparent, RenderType, Alpha) then |
begin |
D2DRect(DestRect); |
Result := RenderQuad; |
end; |
end; |
function TD2D.D2DRenderCol(Image: TPictureCollectionItem; R: TRect; |
Pattern, Color: Integer; RenderType: TRenderType; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
if D2DTexturedOn(Image, Pattern, Image.PatternRects[Pattern], RenderType, Alpha) then |
begin |
D2DRect(R); |
Result := RenderQuad; |
end; |
end; |
function TD2D.D2DRenderColDDS(Source: TDirectDrawSurface; SourceRect, DestRect: TRect; |
Transparent: Boolean; Pattern, Color: Integer; RenderType: TRenderType; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{Add} |
if D2DTexturedOnDDS(Source, SourceRect, Transparent, RenderType, Alpha) then |
begin |
D2DRect(DestRect); |
Result := RenderQuad; |
end; |
end; |
function TD2D.D2DRenderDrawXY(Image: TPictureCollectionItem; X, Y: Integer; |
Pattern: Integer; RenderType: TRenderType; Alpha: Byte): Boolean; |
var PWidth, PHeight: Integer; |
begin |
Result := False; if not CanUseD2D then Exit; |
{Draw} |
if D2DTexturedOn(Image, Pattern, Image.PatternRects[Pattern], RenderType, Alpha) then |
begin |
PWidth := Image.PatternWidth; if PWidth = 0 then PWidth := Image.Width; |
PHeight := Image.PatternHeight; if PHeight = 0 then PHeight := Image.Height; |
D2DRect(Bounds(X, Y, PWidth, PHeight)); |
Result := RenderQuad; |
end; |
end; |
function TD2D.D2DRenderDrawDDSXY(Source: TDirectDrawSurface; X, Y: Integer; |
Transparent: Boolean; Pattern: Integer; RenderType: TRenderType; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{Draw} |
if D2DTexturedOnDDS(Source, ZeroRect, Transparent, RenderType, Alpha) then |
begin |
D2DRect(Bounds(X, Y, Source.Width, Source.Height)); |
Result := RenderQuad; |
end; |
end; |
{$IFDEF VER4UP} |
function TD2D.D2DRenderDrawDDSXY(Source: TDirectDrawSurface; X, Y: Integer; |
SrcRect: TRect; Transparent: Boolean; Pattern: Integer; RenderType: TRenderType; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{Draw} |
if D2DTexturedOnDDS(Source, SrcRect, Transparent, RenderType, Alpha) then |
begin |
D2DRect(Bounds(X, Y, SrcRect.Right - SrcRect.Left, SrcRect.Bottom - SrcRect.Top)); |
Result := RenderQuad; |
end; |
end; |
{$ENDIF} |
{Rotate functions} |
procedure TD2D.D2DRotate(X, Y, W, H: Integer; Px, Py: Double; Angle: Single); |
procedure SinCosS(const Theta: Single; var Sin, Cos: Single); register; |
{ EAX contains address of Sin} |
{ EDX contains address of Cos} |
{ Theta is passed over the stack} |
asm |
FLD Theta |
FSINCOS |
FSTP DWORD PTR [EDX] // cosine |
FSTP DWORD PTR [EAX] // sine |
end; |
const PI256 = 2 * PI / 256; |
var x1, y1, up, s_angle, c_angle, s_up, c_up: Single; |
begin |
angle := angle * PI256; up := angle + PI / 2; |
x1 := w * px; y1 := h * py; |
SinCosS(angle, s_angle, c_angle); |
SinCosS(up, s_up, c_up); |
FVertex[0].sx := X - x1 * c_angle - y1 * c_up; |
FVertex[0].sy := Y - x1 * s_angle - y1 * s_up; |
FVertex[1].sx := FVertex[0].sx + W * c_angle; |
FVertex[1].sy := FVertex[0].sy + W * s_angle; |
FVertex[2].sx := FVertex[0].sx + H * c_up; |
FVertex[2].sy := FVertex[0].sy + H * s_up; |
FVertex[3].sx := FVertex[2].sx + W * c_angle; |
FVertex[3].sy := FVertex[2].sy + W * s_angle; |
end; |
function TD2D.D2DRenderRotate(Image: TPictureCollectionItem; RotX, RotY, |
PictWidth, PictHeight, PatternIndex: Integer; RenderType: TRenderType; |
CenterX, CenterY: Double; |
Angle: single; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{load textures and map it, set of effect} |
if D2DTexturedOn(Image, PatternIndex, Image.PatternRects[PatternIndex], RenderType, Alpha) then |
begin |
{do rotate mesh} |
D2DRotate(RotX, RotY, PictWidth, PictHeight, CenterX, CenterY, Angle); |
{render it} |
Result := RenderQuad; |
end; |
end; |
function TD2D.D2DRenderRotateDDS(Image: TDirectDrawSurface; SourceRect: TRect; RotX, RotY, |
PictWidth, PictHeight: Integer; RenderType: TRenderType; |
CenterX, CenterY: Double; Angle: single; Alpha: Byte; |
Transparent: Boolean): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{load textures and map it, set of effect} |
if D2DTexturedOnDDS(Image, SourceRect, Transparent, RenderType, Alpha) then |
begin |
{do rotate mesh} |
D2DRotate(RotX, RotY, PictWidth, PictHeight, CenterX, CenterY, Angle); |
{render it} |
Result := RenderQuad; |
end; |
end; |
{------------------------------------------------------------------------------} |
{created 31.1.2005 JB.} |
{replacement original Hori's functionality} |
{24.4.2006 create WaveY as supplement like WaveX functions} |
{14.5.2006 added functionality for tile drawing through PatternIndex} |
function TD2D.D2DMeshMapToWave(dds: TDirectDrawSurface; Transparent: Boolean; |
TransparentColor: Integer; X, Y, iWidth, iHeight, PatternIndex: Integer; |
PatternRect: TRect; |
Amp, Len, Ph, Alpha: Integer; effect: TRenderType; DoY: Boolean): Boolean; |
function D2DTexturedOn(dds: TDirectDrawSurface; Transparent: Boolean; var TexNo: Integer): Boolean; |
{special version of mapping for TDirectDrawSurface only} |
{set up transparent color from this surface} |
var I: Integer; |
TexName: string; |
begin |
Result := False; |
TexNo := -1; |
RenderError := FDDraw.D3DDevice7.SetTexture(0, nil) <> DD_OK; |
{pokud je seznam prazdny, nahrej texturu} |
if dds.Caption <> '' then TexName := dds.Caption |
else TexName := IntToStr(Integer(dds)); |
if not FD2DTexture.{$IFDEF VER4UP}CanFindTexture{$ELSE}CanFindTexture2{$ENDIF}(TexName) then |
{nepovede-li se to, pak ven} |
if not FD2DTexture.{$IFDEF VER4UP}LoadTextures{$ELSE}LoadTextures3{$ENDIF}(dds, Transparent, TransparentColor, TexName) then Exit; |
I := FD2DTexture.Find(TexName); |
if I = -1 then Exit; |
TexNo := I; |
{set pattern as texture} |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MAGFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MINFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
try |
RenderError := FDDraw.D3DDevice7.SetTexture(0, FD2DTexture.Texture[I].D2DTexture.Surface.IDDSurface7) <> DD_OK; |
//Result := True; {not RetderError} |
except |
RenderError := True; |
Result := False; |
FD2DTexture.D2DPruneAllTextures; |
Exit; |
end; |
{set transparent area} |
RenderError := FDDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, Ord(FD2DTexture.Texture[I].D2DTexture.Transparent)) <> DD_OK; |
Result := not RenderError; |
end; |
type |
TVertexArray = array{$IFNDEF VER4UP} [0..0]{$ENDIF} of TD3DTLVERTEX; |
{$IFNDEF VER4UP} |
PVertexArray = ^TVertexArray; |
{$ENDIF} |
var |
SVertex: {$IFDEF VER4UP}TVertexArray{$ELSE}PVertexArray{$ENDIF}; |
I, maxVertex, maxPix, VStepVx, TexNo, Width, Height: Integer; |
VStep, VStepTo, D, Z, FX1, FX2, FY1, FY2, SX, SY, X1, Y1, X2, Y2: Extended; |
R: TRect; |
clr: DWORD; |
begin |
Result := False; |
{zde uschovano maximum [0..1] po adjustaci textury, ktera nemela nektery rozmer 2^n} |
{FD2DTexture.Texture[I].FloatX2;} |
{FD2DTexture.Texture[I].FloatY2;} |
{napr. pokud byl rozmer 0.7 pak je nutno prepocitat tento interval [0..0.7] na height} |
if not D2DTexturedOn(dds, Transparent, TexNo) then Exit; |
{musi se prenastavit velikost pokud je PatternIndex <> -1} |
Width := iWidth; |
Height := iHeight; |
{remove into local variabled for multi-picture adjustation} |
FX1 := FD2DTexture.Texture[TexNo].FloatX1; |
FX2 := FD2DTexture.Texture[TexNo].FloatX2; |
FY1 := FD2DTexture.Texture[TexNo].FloatY1; |
FY2 := FD2DTexture.Texture[TexNo].FloatY2; |
{when pattertindex selected, get real value of subtexture} |
if (PatternIndex <> -1) {and (PatternRect <> ZeroRect)} then |
begin |
R := PatternRect; |
Width := R.Right - R.Left; |
Height := R.Bottom - R.Top; |
{scale unit of full new width and height} |
SX := 1 / FD2DTexture.Texture[TexNo].Width; |
SY := 1 / FD2DTexture.Texture[TexNo].Height; |
{remap there} |
FX1 := R.Left * SX; |
FX2 := R.Right * SX; |
FY1 := R.Top * SY; |
FY2 := R.Bottom * SY; |
end; |
{nastavuje se tolik vertexu, kolik je potreba} |
{speculative set up of rows for better look how needed} |
if not DoY then |
begin |
maxVertex := 2 * Trunc(Height / Len * 8); |
if (maxVertex mod 2) > 0 then {top to limits} |
Inc(maxVertex, 2); |
if (maxVertex div 2) > Height then {correct to Height} |
maxVertex := 2 * Height; |
end |
else |
begin |
maxVertex := 2 * Trunc(Width / Len * 8); |
if (maxVertex mod 2) > 0 then {top to limits} |
Inc(maxVertex, 2); |
if (maxVertex div 2) > Width then {correct to Width} |
maxVertex := 2 * Width; |
end; |
{pocet pixlu mezi ploskami} |
if not DoY then |
begin |
repeat |
if (Height mod (maxVertex div 2)) <> 0 then |
Inc(maxVertex, 2); |
maxPix := Height div (maxVertex div 2); |
until (Height mod (maxVertex div 2)) = 0; |
{krok k nastaveni vertexu} |
VStep := (FY2 - FY1) / (maxVertex div 2); |
end |
else |
begin |
repeat |
if (Width mod (maxVertex div 2)) <> 0 then |
Inc(maxVertex, 2); |
maxPix := Width div (maxVertex div 2); |
until (Width mod (maxVertex div 2)) = 0; |
{krok k nastaveni vertexu} |
VStep := (FX2 - FX1) / (maxVertex div 2); |
end; |
//prostor |
{$IFDEF VER4UP} |
SetLength(SVertex, maxVertex); |
{$ELSE} |
SVertex := AllocMem(maxVertex * SizeOf(TD3DTLVERTEX)); |
try |
{$ENDIF} |
//inicializace |
VStepVx := 0; |
VStepTo := 0; |
D := ph / (128 / PI); {shift wave} |
Z := (Len / 2) / PI; {wave length to radians} |
clr := D2DVertColor(Effect, Alpha); //effect cumulate to one param and one line of code |
{vlastni nastaveni vertexu v pasu vertexu} |
for I := 0 to maxVertex - 1 do |
begin |
SVertex[I].Specular := D3DRGB(1.0, 1.0, 1.0); |
SVertex[I].rhw := 1.0; |
SVertex[I].color := clr; |
if not DoY then |
case (I + 1) mod 2 of //triangle driver |
1: begin |
if I <> 0 then Inc(VStepVx, maxPix); |
SVertex[I].sx := X + Trunc(amp * Sin((Y + VStepVx) / Z + D)) - 0.5; //levy |
SVertex[I].sy := Y + VStepVx - 0.5; |
if FMirrorFlipSet = [rmfMirror] then |
begin |
X1 := FX2; if I <> 0 then VStepTo := VStepTo + VStep; |
Y1 := FY1 + VStepTo; |
end |
else |
if FMirrorFlipSet = [rmfFlip] then |
begin |
X1 := FX1; |
Y1 := FY2 - VStepTo; |
end |
else |
if FMirrorFlipSet = [rmfMirror, rmfFlip] then |
begin |
X1 := FX2; |
Y1 := FY2 - VStepTo; |
end |
else |
begin |
X1 := FX1; if I <> 0 then VStepTo := VStepTo + VStep; |
Y1 := FY1 + VStepTo; |
end; |
SVertex[I].tu := X1; |
SVertex[I].tv := Y1; |
end; |
0: begin |
SVertex[I].sx := X + Width + Trunc(amp * Sin((Y + VStepVx) / Z + D)) - 1; //pravy |
SVertex[I].sy := Y + VStepVx; |
if FMirrorFlipSet = [rmfMirror] then |
begin |
X2 := FX1; |
Y2 := FY1 + VStepTo; |
end |
else |
if FMirrorFlipSet = [rmfFlip] then |
begin |
X2 := FX2; |
Y2 := FY2 - VStepTo; if I <> 0 then VStepTo := VStepTo + VStep; |
end |
else |
if FMirrorFlipSet = [rmfMirror, rmfFlip] then |
begin |
X2 := FX1; |
Y2 := FY2 - VStepTo; if I <> 0 then VStepTo := VStepTo + VStep; |
end |
else |
begin |
X2 := FX2; |
Y2 := FY1 + VStepTo; |
end; |
SVertex[I].tu := X2; |
SVertex[I].tv := Y2; |
end; |
end {case} |
else |
case (I + 1) mod 2 of //triangle driver |
0: begin |
if I <> 0 then Inc(VStepVx, maxPix); |
SVertex[I].sy := Y + Trunc(amp * Sin((X + VStepVx) / Z + D)) - 0.5; //hore |
SVertex[I].sx := X + VStepVx - 0.5; |
if FMirrorFlipSet = [rmfMirror] then |
begin |
Y1 := FY1; if I <> 0 then VStepTo := VStepTo + VStep; |
X1 := FX2 - VStepTo; |
end |
else |
if FMirrorFlipSet = [rmfFlip] then |
begin |
Y1 := FY2; if I <> 0 then VStepTo := VStepTo + VStep; |
X1 := FX1 + VStepTo; |
end |
else |
if FMirrorFlipSet = [rmfMirror, rmfFlip] then |
begin |
Y1 := FY2; if I <> 0 then VStepTo := VStepTo + VStep; |
X1 := FX2 - VStepTo; |
end |
else |
begin |
Y1 := FY1; if I <> 0 then VStepTo := VStepTo + VStep; |
X1 := FX1 + VStepTo; |
end; |
SVertex[I].tu := X1; |
SVertex[I].tv := Y1; |
end; |
1: begin |
SVertex[I].sy := Y + Height + Trunc(amp * Sin((X + VStepVx) / Z + D)) - 1; //dole |
SVertex[I].sx := X + VStepVx; |
if FMirrorFlipSet = [rmfMirror] then |
begin |
Y2 := FY2; |
X2 := FX2 - VStepTo; |
end |
else |
if FMirrorFlipSet = [rmfFlip] then |
begin |
Y2 := FY1; |
X2 := FX1 + VStepTo; |
end |
else |
if FMirrorFlipSet = [rmfMirror, rmfFlip] then |
begin |
Y2 := FY1; |
X2 := FX2 - VStepTo; |
end |
else |
begin |
Y2 := FY2; |
X2 := FX1 + VStepTo; |
end; |
SVertex[I].tu := X2; |
SVertex[I].tv := Y2; |
end; |
end; |
end; |
{set of effect} |
case Effect of |
rtDraw: D2DEffectSolid; |
rtBlend: D2DEffectBlend; |
rtAdd: D2DEffectAdd; |
rtSub: D2DEffectSub; |
end; |
with FDDraw.D3DDevice7 do |
begin |
{kreslime hned zde}//render now and here |
Result := DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX, SVertex[0], maxVertex, D3DDP_WAIT) = DD_OK; |
//zpet hodnoty |
//FIX InitVertex; |
FMirrorFlipSet := []; {only for one operation, back to normal position} |
{restore device status} |
RenderError := SetTextureStageState(1, D3DTSS_COLOROP, Ord(D3DTOP_DISABLE)) <> DD_OK; |
RenderError := SetTextureStageState(1, D3DTSS_ALPHAOP, Ord(D3DTOP_DISABLE)) <> DD_OK; |
RenderError := SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 0) <> DD_OK; |
end; |
{$IFNDEF VER4UP} |
finally |
FreeMem(SVertex, maxVertex * SizeOf(TD3DTLVERTEX)); |
end; |
{$ENDIF} |
end; |
function TD2D.D2DRenderWaveX(Image: TPictureCollectionItem; X, Y, Width, |
Height, PatternIndex: Integer; RenderType: TRenderType; transparent: Boolean; |
amp, Len, ph, Alpha: Integer): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{load textures and map, do make wave mesh and render it} |
Result := D2DMeshMapToWave(Image.PatternSurfaces[PatternIndex], transparent, |
Image.FTransparentColor, X, Y, Width, Height, PatternIndex, |
Image.PatternRects[PatternIndex], |
amp, Len, ph, Alpha, RenderType{$IFNDEF VER4UP}, False{$ENDIF}); |
end; |
function TD2D.D2DRenderWaveXDDS(Source: TDirectDrawSurface; X, Y, Width, |
Height: Integer; RenderType: TRenderType; Transparent: Boolean; Amp, Len, Ph, Alpha: Integer): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{load textures and map, do make wave mesh and render it} |
Result := D2DMeshMapToWave(Source, transparent, -1, X, Y, Width, Height, -1, |
ZeroRect, |
amp, Len, ph, Alpha, RenderType{$IFNDEF VER4UP}, False{$ENDIF}); |
end; |
function TD2D.D2DRenderWaveY(Image: TPictureCollectionItem; X, Y, Width, |
Height, PatternIndex: Integer; RenderType: TRenderType; Transparent: Boolean; |
Amp, Len, Ph, Alpha: Integer): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{load textures and map, do make wave mesh and render it} |
Result := D2DMeshMapToWave(Image.PatternSurfaces[PatternIndex], transparent, |
Image.FTransparentColor, X, Y, Width, Height, PatternIndex, |
Image.PatternRects[PatternIndex], |
amp, Len, ph, Alpha, RenderType, True); |
end; |
function TD2D.D2DRenderWaveYDDS(Source: TDirectDrawSurface; X, Y, Width, |
Height: Integer; RenderType: TRenderType; Transparent: Boolean; |
Amp, Len, Ph, Alpha: Integer): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{load textures and map, do make wave mesh and render it} |
Result := D2DMeshMapToWave(Source, transparent, -1, X, Y, Width, Height, -1, |
ZeroRect, |
amp, Len, ph, Alpha, RenderType, True); |
end; |
function TD2D.D2DTexturedOnRect(Rect: TRect; Color: LongInt): Boolean; |
var I: Integer; |
begin |
Result := False; |
FDDraw.D3DDevice7.SetTexture(0, nil); |
if not FD2DTexture.{$IFDEF VER4UP}CanFindTexture{$ELSE}CanFindTexture3{$ENDIF}(Color) then {when no texture in list try load it} |
if not FD2DTexture.{$IFDEF VER4UP}LoadTextures{$ELSE}LoadTextures4{$ENDIF}(Color) then Exit; {on error occurr go out} |
I := FD2DTexture.Find('$' + IntToStr(Color)); //simply .. but stupid |
if I = -1 then Exit; |
{set pattern as texture} |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MAGFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MINFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
try |
RenderError := FDDraw.D3DDevice7.SetTexture(0, FD2DTexture.Texture[I].D2DTexture.Surface.IDDSurface7) <> DD_OK; |
except |
RenderError := True; |
FD2DTexture.D2DPruneAllTextures; |
exit; |
end; |
{set transparent part} |
FDDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, 0); //no transparency |
D2DTU(FD2DTexture.Texture[I]); |
Result := not RenderError; |
end; |
function TD2D.D2DTexturedOnSubRect(Image: TPictureCollectionItem; |
Pattern: Integer; SubPatternRect, SubRect: TRect; RenderType: TRenderType; |
Alpha: Byte): Boolean; |
label |
lblHop; |
var |
I, W, H: Integer; |
SrcX, SrcY, diffX: Double; |
R, tmpSubRect: TRect; |
Q: TTextureRec; |
qFloatX1, qFloatX2, qFloatY1, qFloatY2: Double; |
begin |
Result := False; |
FDDraw.D3DDevice7.SetTexture(0, nil); |
if not FD2DTexture.CanFindTexture(Image) then {when no texture in list try load it} |
if not FD2DTexture.LoadTextures(Image) then {loading is here} |
Exit; {on error occurr out} |
I := FD2DTexture.Find(Image.Name); |
if I = -1 then Exit; |
{set pattern as texture} |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MAGFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
// FDDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_MINFILTER, DWord(Ord(FD2DTextureFilter)+1)); |
try |
FDDraw.D3DDevice7.SetTexture(0, FD2DTexture.Texture[I].D2DTexture.Surface.IDDSurface7); |
case RenderType of |
rtDraw: begin D2DEffectSolid; D2DWhite; end; |
rtBlend: begin D2DEffectBlend; D2DAlphaVertex(Alpha); end; |
rtAdd: begin D2DEffectAdd; D2DFade(Alpha); end; |
rtSub: begin D2DEffectSub; D2DFade(Alpha); end; |
end; |
except |
RenderError := true; |
FD2DTexture.D2DPruneAllTextures; |
Image.Restore; |
SetD2DTextureFilter(D2D_LINEAR); |
Exit; |
end; |
{set transparent part} |
FDDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, Ord(FD2DTexture.Texture[I].D2DTexture.Transparent)); |
{except for Draw when alphachannel exists} |
{change for blend drawing but save transparent area still} |
if FD2DTexture.Texture[I].AlphaChannel then |
{when is Draw selected then} |
if RenderType = rtDraw then |
begin |
D2DEffectBlend; D2DAlphaVertex($FF); |
end; |
{pokud je obrazek rozdeleny, nastav oka site} |
if (Image.PatternHeight <> 0) or (Image.PatternWidth <> 0) then |
begin |
{vezmi rect jenom dilku} |
R := Image.PatternRects[Pattern]; |
if not CompareMem(@SubRect, @ZeroRect, SizeOf(SubRect)) then |
begin |
{ktere oko site to je?} |
W := SubRect.Right - SubRect.Left; {takhle je siroky} |
H := SubRect.Bottom - SubRect.Top; {takhle je vysoky} |
tmpSubRect := Bounds(R.Left + SubRect.Left, R.Top + SubRect.Top, W, H); |
if RectInRect(tmpSubRect, R) then |
begin |
{pokud je subrect jeste v ramci patternu, musi se posouvat podle patternindex} |
Inc(R.Left, SubRect.Left); |
Inc(R.Top, SubRect.Top); |
if (R.Left + W) < R.Right then R.Right := R.Left + W; |
if (R.Top + H) < R.Bottom then R.Bottom := R.Top + H; |
goto lblHop; |
end; |
end; |
SrcX := 1 / FD2DTexture.Texture[I].Width; |
SrcY := 1 / FD2DTexture.Texture[I].Height; |
//namapovani vertexu na texturu |
FD2DTexture.Texture[I].FloatX1 := SrcX * R.Left; |
FD2DTexture.Texture[I].FloatY1 := SrcY * R.Top; |
{for meshed subimage contain one image only can be problem there} |
diffX := 0.5; if Image.PatternCount = 1 then diffX := 0; |
FD2DTexture.Texture[I].FloatX2 := SrcX * (R.Right - diffX); |
FD2DTexture.Texture[I].FloatY2 := SrcY * (R.Bottom - diffX); |
if not ( |
(SubPatternRect.Left = Image.PatternRects[Pattern].Left) and |
(SubPatternRect.Top = Image.PatternRects[Pattern].Top) and |
(SubPatternRect.Right = Image.PatternRects[Pattern].Right) and |
(SubPatternRect.Bottom = Image.PatternRects[Pattern].Bottom)) |
then |
begin |
{remaping subtexture via subpattern} |
Q.FloatX1 := SrcX * SubPatternRect.Left; |
Q.FloatY1 := SrcY * SubPatternRect.Top; |
Q.FloatX2 := SrcX * (SubPatternRect.Right - diffX); |
Q.FloatY2 := SrcY * (SubPatternRect.Bottom - diffX); |
D2DTU(Q); {with mirroring/flipping} |
Result := True; |
Exit; |
end; |
end; {jinak celeho obrazku} |
if not CompareMem(@SubRect, @ZeroRect, SizeOf(SubRect)) then |
if RectInRect(SubRect, Bounds(0,0, FD2DTexture.Texture[I].Width, FD2DTexture.Texture[I].Height)) then |
begin |
R := SubRect; |
lblHop: |
SrcX := 1 / FD2DTexture.Texture[I].Width; |
SrcY := 1 / FD2DTexture.Texture[I].Height; |
//namapovani vertexu na texturu |
qFloatX1 := FD2DTexture.Texture[I].FloatX1; |
qFloatY1 := FD2DTexture.Texture[I].FloatY1; |
qFloatX2 := FD2DTexture.Texture[I].FloatX2; |
qFloatY2 := FD2DTexture.Texture[I].FloatY2; |
try |
FD2DTexture.Texture[I].FloatX1 := SrcX * R.Left; |
FD2DTexture.Texture[I].FloatY1 := SrcY * R.Top; |
{for meshed subimage contain one image only can be problem there} |
diffX := 0.5; if Image.PatternCount = 1 then diffX := 0; |
FD2DTexture.Texture[I].FloatX2 := SrcX * (R.Right - diffX); |
FD2DTexture.Texture[I].FloatY2 := SrcY * (R.Bottom - diffX); |
{remaping subtexture via subpattern} |
D2DTU(FD2DTexture.Texture[I]); {with mirroring/flipping} |
Result := True; |
Exit; |
finally |
FD2DTexture.Texture[I].FloatX1 := qFloatX1; |
FD2DTexture.Texture[I].FloatY1 := qFloatY1; |
FD2DTexture.Texture[I].FloatX2 := qFloatX2; |
FD2DTexture.Texture[I].FloatY2 := qFloatY2; |
end; |
end; |
{ X1,Y1 X2,Y1 |
0 +-----------------+ 1 |
| | |
| | |
| | |
| | |
2 +-----------------+ 3 |
X1,Y2 X2,Y2 } |
D2DTU(FD2DTexture.Texture[I]); |
Result := True; |
end; |
function TD2D.D2DRenderColoredPartition(Image: TPictureCollectionItem; |
DestRect: TRect; |
PatternIndex, Color, Specular: Integer; |
Faded: Boolean; |
SourceRect: TRect; |
RenderType: TRenderType; |
Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{set of effect before fade} |
case RenderType of |
rtDraw: D2DEffectSolid; |
rtBlend: D2DEffectBlend; |
rtAdd: D2DEffectAdd; |
rtSub: D2DEffectSub; |
end; |
if Faded then D2DFade(Alpha); |
D2DColoredVertex(Color); |
if Specular <> Round(D3DRGB(1.0, 1.0, 1.0)) then |
D2DSpecularVertex(Specular); |
{load textures and map it} |
if D2DTexturedOn(Image, PatternIndex, SourceRect, RenderType, Alpha) then |
begin |
D2DRect(DestRect); |
{render it} |
Result := RenderQuad; |
end; |
end; |
function TD2D.D2DRenderFillRect(Rect: TRect; RGBColor: LongInt; |
RenderType: TRenderType; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
case RenderType of |
rtDraw: begin D2DEffectSolid; D2DColoredVertex(RGBColor); end; |
rtBlend: begin D2DEffectBlend; D2DAlphaVertex(Alpha); end; |
rtAdd: begin D2DEffectAdd; D2DFade(Alpha); end; |
rtSub: begin D2DEffectSub; D2DFade(Alpha); end; |
end; |
if D2DTexturedOnRect(Rect, RGBColor) then |
begin |
D2DRect(Rect); |
Result := RenderQuad; |
end; |
end; |
function TD2D.D2DRenderRotateModeCol(Image: TPictureCollectionItem; |
RenderType: TRenderType; |
RotX, RotY, PictWidth, PictHeight, PatternIndex: Integer; CenterX, |
CenterY: Double; Angle: single; Color: Integer; Alpha: Byte): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{set of effect before colored} |
case RenderType of |
rtDraw: D2DEffectSolid; |
rtAdd: D2DEffectAdd; |
rtSub: D2DEffectSub; |
rtBlend: D2DEffectBlend; |
end; |
D2DFadeColored(Color, Alpha); |
{load textures and map it} |
if D2DTexturedOn(Image, PatternIndex, Image.PatternRects[PatternIndex], RenderType, Alpha) then |
begin |
{do rotate mesh} |
D2DRotate(RotX, RotY, PictWidth, PictHeight, CenterX, CenterY, Angle); |
{render it} |
Result := RenderQuad; |
end; |
end; |
function TD2D.D2DRenderRotateModeColDDS(Image: TDirectDrawSurface; |
RotX, RotY, PictWidth, PictHeight: Integer; RenderType: TRenderType; |
CenterX, CenterY: Double; Angle: Single; Color: Integer; Alpha: Byte; |
Transparent: Boolean): Boolean; |
begin |
Result := False; if not CanUseD2D then Exit; |
{set of effect} |
D2DFadeColored(Color, Alpha); |
{load textures and map it} |
if D2DTexturedOnDDS(Image, ZeroRect, Transparent, RenderType, Alpha) then |
begin |
{do rotate mesh} |
D2DRotate(RotX, RotY, PictWidth, PictHeight, CenterX, CenterY, Angle); |
{render it} |
Result := RenderQuad; |
end; |
end; |
procedure TD2D.D2DEffectSolid; |
begin |
with FDDraw.D3DDevice7 do |
begin |
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 0); |
//SetRenderState(D3DRENDERSTATE_FILLMODE, Integer(D3DFILL_SOLID)); |
SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, Integer(True)); |
SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_ONE)); |
end; |
end; |
procedure TD2D.D2DEffectBlend; |
begin |
with FDDraw.D3DDevice7 do |
begin |
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 1); |
SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_SRCALPHA)); |
SetRenderState(D3DRENDERSTATE_DESTBLEND, Integer(D3DBLEND_INVSRCALPHA)); |
SetTextureStageState(0, D3DTSS_COLOROP, Integer(D3DTOP_MODULATE)); |
SetTextureStageState(0, D3DTSS_COLORARG1, Integer(D3DTA_TEXTURE)); |
SetTextureStageState(0, D3DTSS_COLORARG2, Integer(D3DTA_CURRENT)); |
SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_BLENDDIFFUSEALPHA)); |
SetTextureStageState(0, D3DTSS_ALPHAARG1, Integer(D3DTA_TEXTURE)); |
SetTextureStageState(0, D3DTSS_ALPHAARG2, Integer(D3DTA_CURRENT)); |
SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_MODULATE)); |
end; |
end; |
procedure TD2D.D2DEffectAdd; |
begin |
with FDDraw.D3DDevice7 do |
begin |
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 1); |
SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_ONE)); |
SetRenderState(D3DRENDERSTATE_DESTBLEND, Integer(D3DBLEND_ONE)); |
SetTextureStageState(0, D3DTSS_ALPHAOP, Ord(D3DTOP_SELECTARG1)); |
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_CURRENT); |
SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_MODULATE)); |
end; |
end; |
procedure TD2D.D2DEffectSub; |
begin |
with FDDraw.D3DDevice7 do |
begin |
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 1); |
SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_ZERO)); |
SetRenderState(D3DRENDERSTATE_DESTBLEND, Integer(D3DBLEND_INVSRCCOLOR)); |
SetTextureStageState(0, D3DTSS_ALPHAOP, Ord(D3DTOP_SELECTARG1)); |
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_CURRENT); |
SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_MODULATE)); |
end; |
end; |
function TD2D.D2DAlphaVertex(Alpha: Integer): Integer; |
begin |
Result := RGBA_MAKE($FF, $FF, $FF, Alpha); |
FVertex[0].Color := Result; |
FVertex[1].Color := Result; |
FVertex[2].Color := Result; |
FVertex[3].Color := Result; |
end; |
procedure TD2D.D2DColoredVertex(C: Integer); |
begin |
C := D3DRGB(C and $FF / 255, (C shr 8) and $FF / 255, (C shr 16) and $FF / 255); |
FVertex[0].Color := C; |
FVertex[1].Color := C; |
FVertex[2].Color := C; |
FVertex[3].Color := C; |
end; |
procedure TD2D.D2DColAlpha(C, Alpha: Integer); |
begin |
C := D3DRGBA(C and $FF / 255, (C shr 8) and $FF / 255, (C shr 16) and $FF / 255, Alpha / 255); |
FVertex[0].Color := C; |
FVertex[1].Color := C; |
FVertex[2].Color := C; |
FVertex[3].Color := C; |
end; |
procedure TD2D.D2DSpecularVertex(C: Integer); |
begin |
C := D3DRGB(C and $FF / 255, (C shr 8) and $FF / 255, (C shr 16) and $FF / 255); |
FVertex[0].Specular := C; |
FVertex[1].Specular := C; |
FVertex[2].Specular := C; |
FVertex[3].Specular := C; |
end; |
procedure TD2D.D2DCol4Alpha(C1, C2, C3, C4, Alpha: Integer); |
begin |
FVertex[0].Color := D3DRGBA(C1 and $FF / 255, (C1 shr 8) and $FF / 255, |
(C1 shr 16) and $FF / 255, Alpha / 255); |
FVertex[1].Color := D3DRGBA(C2 and $FF / 255, (C2 shr 8) and $FF / 255, |
(C2 shr 16) and $FF / 255, Alpha / 255); |
FVertex[2].Color := D3DRGBA(C3 and $FF / 255, (C3 shr 8) and $FF / 255, |
(C3 shr 16) and $FF / 255, Alpha / 255); |
FVertex[3].Color := D3DRGBA(C4 and $FF / 255, (C4 shr 8) and $FF / 255, |
(C4 shr 16) and $FF / 255, Alpha / 255); |
end; |
function TD2D.D2DVertColor(RenderType: TRenderType; Alpha: Byte): DWORD; |
begin |
case RenderType of //effect cumulate to one param and four line of code |
rtDraw: Result := RGB_MAKE($FF, $FF, $FF); |
rtBlend: Result := RGBA_MAKE($FF, $FF, $FF, Alpha); |
rtAdd: Result := RGB_MAKE(Alpha, Alpha, Alpha); |
rtSub: Result := RGB_MAKE(Alpha, Alpha, Alpha); |
else |
Result := RGB_MAKE($FF, $FF, $FF); |
end; |
end; |
function TD2D.D2DWhite: Integer; |
begin |
Result := RGB_MAKE($FF, $FF, $FF); |
FVertex[0].Color := Result; |
FVertex[1].Color := Result; |
FVertex[2].Color := Result; |
FVertex[3].Color := Result; |
end; |
function TD2D.D2DFade(Alpha: Integer): Integer; |
begin |
Result := RGB_MAKE(Alpha, Alpha, Alpha); |
FVertex[0].Color := Result; |
FVertex[1].Color := Result; |
FVertex[2].Color := Result; |
FVertex[3].Color := Result; |
end; |
procedure TD2D.D2DFadeColored(C, Alpha: Integer); |
var mult: single; |
begin |
mult := Alpha / 65025; //Alpha/255/255; |
C := D3DRGB((C and $FF) * mult, ((C shr 8) and $FF) * mult, ((C shr 16) and $FF) * mult); |
FVertex[0].Color := C; |
FVertex[1].Color := C; |
FVertex[2].Color := C; |
FVertex[3].Color := C; |
end; |
procedure TD2D.D2DFade4Colored(C1, C2, C3, C4, Alpha: Integer); |
var mult: single; |
begin |
mult := Alpha / 65025; //Alpha/255/255; |
FVertex[0].Color := D3DRGB((C1 and $FF) * mult, ((C1 shr 8) and $FF) * mult, |
((C1 shr 16) and $FF) * mult); |
FVertex[1].Color := D3DRGB((C2 and $FF) * mult, ((C2 shr 8) and $FF) * mult, |
((C2 shr 16) and $FF) * mult); |
FVertex[2].Color := D3DRGB((C3 and $FF) * mult, ((C3 shr 8) and $FF) * mult, |
((C3 shr 16) and $FF) * mult); |
FVertex[3].Color := D3DRGB((C4 and $FF) * mult, ((C4 shr 8) and $FF) * mult, |
((C4 shr 16) and $FF) * mult); |
end; |
function TD2D.RenderQuad: Boolean; |
begin |
Result := FDDraw.D3DDevice7.DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX, FVertex, 4, D3DDP_WAIT) <> DD_OK; |
InitVertex; |
FMirrorFlipSet := []; {only for one operation, back to normal position} |
{restore device status} |
with FDDraw.D3DDevice7 do |
begin |
SetTextureStageState(1, D3DTSS_COLOROP, Ord(D3DTOP_DISABLE)); |
SetTextureStageState(1, D3DTSS_ALPHAOP, Ord(D3DTOP_DISABLE)); |
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 0); |
end; |
end; |
function TD2D.RenderTri: Boolean; |
begin |
Result := FDDraw.D3DDevice7.DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX, FVertex, 3, D3DDP_WAIT) <> DD_OK; |
InitVertex; |
FMirrorFlipSet := []; {only for one operation, back to normal position} |
{restore device status} |
with FDDraw.D3DDevice7 do |
begin |
SetTextureStageState(1, D3DTSS_COLOROP, Ord(D3DTOP_DISABLE)); |
SetTextureStageState(1, D3DTSS_ALPHAOP, Ord(D3DTOP_DISABLE)); |
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 0); |
end; |
end; |
procedure TD2D.D2DMeshMapToRect(R: TRect); |
begin |
FVertex[0].sx := R.Left - 0.5; |
FVertex[0].sy := R.Top - 0.5; |
FVertex[1].sx := R.Right - 0.5; |
FVertex[1].sy := R.Top - 0.5; |
FVertex[2].sx := R.Left - 0.5; |
FVertex[2].sy := R.Bottom - 0.5; |
FVertex[3].sx := R.Right - 0.5; |
FVertex[3].sy := R.Bottom - 0.5; |
end; |
function TD2D.D2DInitializeSurface: Boolean; |
begin |
Result := False; |
if Assigned(FDDraw.D3DDevice7) then |
Result := FDDraw.D3DDevice7.SetRenderTarget(FDDraw.Surface.IDDSurface7, 0) = DD_OK; |
end; |
procedure TD2D.D2DUpdateTextures; |
var I: Integer; |
begin |
{$IFDEF VER4UP} |
for I := Low(FD2DTexture.Texture) to High(FD2DTexture.Texture) do |
{$ELSE} |
for I := 0 to FD2DTexture.TexLen - 1 do |
{$ENDIF} |
begin |
FD2DTexture.Texture[I].Width := FD2DTexture.Texture[I].D2DTexture.Surface.Width; |
FD2DTexture.Texture[I].Height := FD2DTexture.Texture[I].D2DTexture.Surface.Height; |
// FD2DTexture.Texture[I].AlphaChannel := ? |
end; |
end; |
{ TTrace } |
constructor TTrace.Create(Collection: TCollection); |
begin |
inherited Create(Collection); |
FBlit := TBlit.Create(Self); |
FBlit.FEngine := TCustomDXDraw(Traces.FOwner); |
end; |
destructor TTrace.Destroy; |
begin |
FBlit.Free; |
inherited Destroy; |
end; |
function TTrace.GetDisplayName: string; |
begin |
Result := inherited GetDisplayName |
end; |
procedure TTrace.SetDisplayName(const Value: string); |
begin |
if (Value <> '') and (AnsiCompareText(Value, GetDisplayName) <> 0) and |
(Collection is TTraces) and (TTraces(Collection).IndexOf(Value) >= 0) then |
raise Exception.Create(Format('Item duplicate name "%s" error', [Value])); |
inherited SetDisplayName(Value); |
end; |
function TTrace.GetTraces: TTraces; |
begin |
if Collection is TTraces then |
Result := TTraces(Collection) |
else |
Result := nil; |
end; |
procedure TTrace.Render(const LagCount: Integer); |
begin |
FBlit.DoMove(LagCount); |
FBlit.DoCollision; |
FBlit.DoDraw; |
if Assigned(FBlit.FOnRender) then |
FBlit.FOnRender(FBlit); |
end; |
function TTrace.IsActualized: Boolean; |
begin |
Result := FActualized; |
end; |
procedure TTrace.Assign(Source: TPersistent); |
begin |
if Source is TTrace then begin |
//FTracePoints.Assign(TTrace(Source).FTracePoints); |
FBlit.Assign(TTrace(Source).FBlit); |
FTag := TTrace(Source).FTag; |
end |
else |
inherited Assign(Source); |
end; |
function TTrace.GetActive: Boolean; |
begin |
Result := FBlit.FActive; |
end; |
procedure TTrace.SetActive(const Value: Boolean); |
begin |
FBlit.FActive := Value; |
end; |
function TTrace.GetOnCollision: TNotifyEvent; |
begin |
Result := FBlit.FOnCollision; |
end; |
procedure TTrace.SetOnCollision(const Value: TNotifyEvent); |
begin |
FBlit.FOnCollision := Value; |
end; |
function TTrace.GetOnGetImage: TNotifyEvent; |
begin |
Result := FBlit.FOnGetImage; |
end; |
procedure TTrace.SetOnGetImage(const Value: TNotifyEvent); |
begin |
FBlit.FOnGetImage := Value; |
end; |
function TTrace.GetOnDraw: TNotifyEvent; |
begin |
Result := FBlit.FOnDraw; |
end; |
procedure TTrace.SetOnDraw(const Value: TNotifyEvent); |
begin |
FBlit.FOnDraw := Value; |
end; |
function TTrace.GetOnMove: TBlitMoveEvent; |
begin |
Result := FBlit.FOnMove; |
end; |
procedure TTrace.SetOnMove(const Value: TBlitMoveEvent); |
begin |
FBlit.FOnMove := Value; |
end; |
function TTrace.Clone(NewName: string; OffsetX, OffsetY: Integer; |
Angle: Single): TTrace; |
var |
NewItem: TTrace; |
I: Integer; |
begin |
NewItem := GetTraces.Add; |
NewItem.Assign(Self); |
NewItem.Name := NewName; |
for I := 0 to NewItem.Blit.GetPathCount - 1 do begin |
NewItem.Blit.FPathArr[I].X := NewItem.Blit.FPathArr[I].X + OffsetX; |
NewItem.Blit.FPathArr[I].Y := NewItem.Blit.FPathArr[I].Y + OffsetY; |
end; |
Result := NewItem |
end; |
function TTrace.GetOnRender: TOnRender; |
begin |
Result := FBlit.FOnRender; |
end; |
procedure TTrace.SetOnRender(const Value: TOnRender); |
begin |
FBlit.FOnRender := Value; |
end; |
{ TTraces } |
constructor TTraces.Create(AOwner: TComponent); |
begin |
inherited Create(TTrace); |
FOwner := AOwner; |
end; |
destructor TTraces.Destroy; |
begin |
inherited Destroy; |
end; |
function TTraces.Add: TTrace; |
begin |
Result := TTrace(inherited Add); |
end; |
function TTraces.Find(const Name: string): TTrace; |
var |
i: Integer; |
begin |
i := IndexOf(Name); |
if i = -1 then |
raise EDXTracerError.CreateFmt('Tracer item named %s not found', [Name]); |
Result := Items[i]; |
end; |
function TTraces.GetItem(Index: Integer): TTrace; |
begin |
Result := TTrace(inherited GetItem(Index)); |
end; |
procedure TTraces.SetItem(Index: Integer; |
Value: TTrace); |
begin |
inherited SetItem(Index, Value); |
end; |
procedure TTraces.Update(Item: TCollectionItem); |
begin |
inherited Update(Item); |
end; |
{$IFDEF VER4UP} |
function TTraces.Insert(Index: Integer): TTrace; |
begin |
Result := TTrace(inherited Insert(Index)); |
end; |
{$ENDIF} |
function TTraces.GetOwner: TPersistent; |
begin |
Result := FOwner; |
end; |
{ TBlit } |
function TBlit.GetWorldX: Double; |
begin |
if Parent <> nil then |
Result := Parent.WorldX + FBlitRec.FX |
else |
Result := FBlitRec.FX; |
end; |
function TBlit.GetWorldY: Double; |
begin |
if Parent <> nil then |
Result := Parent.WorldY + FBlitRec.FY |
else |
Result := FBlitRec.FY; |
end; |
procedure TBlit.DoMove(LagCount: Integer); |
var |
MoveIt: Boolean; |
begin |
if not FBlitRec.FMoved then Exit; |
if AsSigned(FOnMove) then begin |
MoveIt := True; {if nothing then reanimate will force} |
FOnMove(Self, LagCount, MoveIt); {when returned MoveIt = true still that do not move} |
if MoveIt then |
ReAnimate(LagCount); //for reanimation |
end |
else begin |
ReAnimate(LagCount); |
end; |
{there is moving to next foot of the path} |
if Active then |
if GetPathCount > 0 then begin |
Dec(FCurrentTime, LagCount); |
if FCurrentTime < 0 then begin |
if FBustrofedon then begin |
case FCurrentDirection of |
True: begin |
Inc(FCurrentPosition); //go forward |
if FCurrentPosition = (GetPathCount - 1) then |
FCurrentDirection := not FCurrentDirection //change direction |
end; |
False: begin |
Dec(FCurrentPosition); //go backward |
if FCurrentPosition = 0 then |
FCurrentDirection := not FCurrentDirection //change direction |
end; |
end; |
end |
else |
if FCurrentPosition < (GetPathCount - 1) then begin |
Inc(FCurrentPosition) //go forward only |
end |
else |
if FMovingRepeatly then |
FCurrentPosition := 0; {return to start} |
{get actual new value for showing time} |
{must be pick-up there, after change of the current position} |
FCurrentTime := Path[FCurrentPosition].StayOn; {cas mezi pohyby} |
end; |
X := Path[FCurrentPosition].X; |
Y := Path[FCurrentPosition].Y; |
end; |
{} |
end; |
function TBlit.GetDrawImageIndex: Integer; |
begin |
Result := FBlitRec.FAnimStart + Trunc(FBlitRec.FAnimPos); |
end; |
procedure TBlit.DoDraw; |
var |
f: TRenderMirrorFlipSet; |
r: TRect; |
begin |
with FBlitRec do begin |
if not FVisible then Exit; |
if FImage = nil then DoGetImage; |
if FImage = nil then Exit; |
{owner draw called here} |
if AsSigned(FOnDraw) then |
FOnDraw(Self) |
else |
{when is not owner draw then go here} |
begin |
f := []; |
if FMirror then f := f + [rmfMirror]; |
if FFlip then f := f + [rmfFlip]; |
r := Bounds(Round(FX), Round(FY), FImage.Width, FImage.Height); |
DXDraw_Render(FEngine, FImage, r, |
GetDrawImageIndex, FBlurImageArr, FBlurImage, FTextureFilter, f, FBlendMode, FAngle, |
FAlpha, FCenterX, FCenterY, FScale, FWaveType, FAmplitude, FAmpLength, FPhase); |
end; |
end |
end; |
function Mod2f(i: Double; i2: Integer): Double; |
begin |
if i2 = 0 then |
Result := i |
else |
begin |
Result := i - Round(i / i2) * i2; |
if Result < 0 then |
Result := i2 + Result; |
end; |
end; |
procedure TBlit.ReAnimate(MoveCount: Integer); |
var I: Integer; |
begin |
with FBlitRec do begin |
FAnimPos := FAnimPos + FAnimSpeed * MoveCount; |
if FAnimLooped then |
begin |
if FAnimCount > 0 then |
FAnimPos := Mod2f(FAnimPos, FAnimCount) |
else |
FAnimPos := 0; |
end |
else |
begin |
if Round(FAnimPos) >= FAnimCount then |
begin |
FAnimPos := FAnimCount - 1; |
FAnimSpeed := 0; |
end; |
if FAnimPos < 0 then |
begin |
FAnimPos := 0; |
FAnimSpeed := 0; |
end; |
end; |
{incerease or decrease speed} |
if (FEnergy <> 0) then begin |
FSpeedX := FSpeedX + FSpeedX * FEnergy; |
FSpeedY := FSpeedY + FSpeedY * FEnergy; |
end; |
{adjust with speed} |
if (FSpeedX > 0) or (FSpeedY > 0) then begin |
FX := FX + FSpeedX * MoveCount; |
FY := FY + FSpeedY * MoveCount; |
end; |
{and gravity aplicable} |
if (FGravityX > 0) or (FGravityY > 0) then begin |
FX := FX + FGravityX * MoveCount; |
FY := FY + FGravityY * MoveCount; |
end; |
if FBlurImage then begin |
{ale jen jsou-li jine souradnice} |
if (FBlurImageArr[High(FBlurImageArr)].eX <> Round(WorldX)) or |
(FBlurImageArr[High(FBlurImageArr)].eY <> Round(WorldY)) then begin |
for i := Low(FBlurImageArr) + 1 to High(FBlurImageArr) do begin |
FBlurImageArr[i - 1] := FBlurImageArr[i]; |
{adjust the blur intensity} |
FBlurImageArr[i - 1].eIntensity := Round(FAlpha / (High(FBlurImageArr) + 1)) * (i - 1); |
end; |
with FBlurImageArr[High(FBlurImageArr)] do begin |
eX := Round(WorldX); |
eY := Round(WorldY); |
ePatternIndex := GetDrawImageIndex; |
eIntensity := Round(FAlpha / (High(FBlurImageArr) + 1)) * High(FBlurImageArr); |
eBlendMode := FBlendMode; |
eActive := True; |
end; |
end; |
end; |
end; |
end; |
function TBlit.DoCollision: TBlit; |
var |
i, maxzaxis: Integer; |
begin |
Result := nil; |
if not FBlitRec.FCollisioned then Exit; |
if AsSigned(FOnCollision) then |
FOnCollision(Self) |
else begin |
{over z axis} |
maxzaxis := 0; |
for i := 0 to FEngine.Traces.Count - 1 do |
maxzaxis := Max(maxzaxis, FEngine.Traces.Items[i].FBlit.Z); |
{for all items} |
for i := 0 to FEngine.Traces.Count - 1 do |
{no self item} |
if FEngine.Traces.Items[i].FBlit <> Self then |
{through engine} |
with FEngine.Traces.Items[i] do |
{test overlap} |
if OverlapRect(Bounds(Round(FBlit.WorldX), Round(FBlit.WorldY), |
FBlit.Width, FBlit.Height), Bounds(Round(WorldX), Round(WorldY), Width, Height)) then |
begin |
{if any, then return first blit} |
Result := FBlit; |
{and go out} |
Break; |
end; |
end; |
end; |
procedure TBlit.DoGetImage; |
begin |
{init image when object come from form} |
if FImage = nil then |
if AsSigned(FOnGetImage) then begin |
FOnGetImage(Self); |
if FImage = nil then |
raise EDXBlitError.Create('Undefined image file!'); |
FBlitRec.FWidth := FImage.Width; |
FBlitRec.FHeight := FImage.Height; |
end; |
end; |
constructor TBlit.Create(AParent: TObject); |
begin |
inherited Create; |
FParent := nil; |
if AParent is TBlit then |
FParent := TBlit(AParent); |
FillChar(FBlitRec, SizeOf(FBlitRec), 0); |
with FBlitRec do begin |
FCollisioned := True; {can be collisioned} |
FMoved := True; {can be moved} |
FVisible := True; {can be rendered} |
FAnimCount := 0; |
FAnimLooped := False; |
FAnimPos := 0; |
FAnimSpeed := 0; |
FAnimStart := 0; |
FAngle := 0; |
FAlpha := $FF; |
FCenterX := 0.5; |
FCenterY := 0.5; |
FScale := 1; |
FBlendMode := rtDraw; |
FAmplitude := 0; |
FAmpLength := 0; |
FPhase := 0; |
FWaveType := wtWaveNone; |
FSpeedX := 0; |
FSpeedY := 0; |
FGravityX := 0; |
FGravityY := 0; |
FEnergy := 0; |
FBlurImage := False; |
FMirror := False; |
FFlip := False; |
end; |
FillChar(FBlurImageArr, SizeOf(FBlitRec), 0); |
FActive := True; {active on} |
FMovingRepeatly := True; |
{super private} |
FCurrentTime := 0; |
FCurrentPosition := 0; |
FCurrentDirection := True; |
end; |
destructor TBlit.Destroy; |
begin |
{$IFDEF VER4UP} |
SetLength(FPathArr, 0); |
{$ELSE} |
SetPathLen(0); |
{$ENDIF} |
inherited; |
end; |
function TBlit.GetMoved: Boolean; |
begin |
Result := FBlitRec.FMoved; |
end; |
procedure TBlit.SetMoved(const Value: Boolean); |
begin |
FBlitRec.FMoved := Value; |
end; |
function TBlit.GetWaveType: TWaveType; |
begin |
Result := FBlitRec.FWaveType; |
end; |
procedure TBlit.SetWaveType(const Value: TWaveType); |
begin |
FBlitRec.FWaveType := Value; |
end; |
function TBlit.GetAmplitude: Integer; |
begin |
Result := FBlitRec.FAmplitude; |
end; |
procedure TBlit.SetAmplitude(const Value: Integer); |
begin |
FBlitRec.FAmplitude := Value; |
end; |
function TBlit.GetAnimStart: Integer; |
begin |
Result := FBlitRec.FAnimStart; |
end; |
procedure TBlit.SetAnimStart(const Value: Integer); |
begin |
FBlitRec.FAnimStart := Value; |
end; |
function TBlit.GetAmpLength: Integer; |
begin |
Result := FBlitRec.FAmpLength; |
end; |
procedure TBlit.SetAmpLength(const Value: Integer); |
begin |
FBlitRec.FAmpLength := Value; |
end; |
function TBlit.GetWidth: Integer; |
begin |
Result := FBlitRec.FWidth; |
end; |
procedure TBlit.SetWidth(const Value: Integer); |
begin |
FBlitRec.FWidth := Value; |
end; |
function TBlit.GetGravityX: Single; |
begin |
Result := FBlitRec.FGravityX; |
end; |
procedure TBlit.SetGravityX(const Value: Single); |
begin |
FBlitRec.FGravityX := Value; |
end; |
function TBlit.StoreGravityX: Boolean; |
begin |
Result := FBlitRec.FGravityX <> 1.0; |
end; |
function TBlit.GetPhase: Integer; |
begin |
Result := FBlitRec.FPhase; |
end; |
procedure TBlit.SetPhase(const Value: Integer); |
begin |
FBlitRec.FPhase := Value; |
end; |
function TBlit.GetAnimPos: Double; |
begin |
Result := FBlitRec.FAnimPos; |
end; |
procedure TBlit.SetAnimPos(const Value: Double); |
begin |
FBlitRec.FAnimPos := Value; |
end; |
function TBlit.StoreAnimPos: Boolean; |
begin |
Result := FBlitRec.FAnimPos <> 0; |
end; |
function TBlit.GetFlip: Boolean; |
begin |
Result := FBlitRec.FFlip; |
end; |
procedure TBlit.SetFlip(const Value: Boolean); |
begin |
FBlitRec.FFlip := Value; |
end; |
function TBlit.GetGravityY: Single; |
begin |
Result := FBlitRec.FGravityY; |
end; |
procedure TBlit.SetGravityY(const Value: Single); |
begin |
FBlitRec.FGravityY := Value; |
end; |
function TBlit.StoreGravityY: Boolean; |
begin |
Result := FBlitRec.FGravityY <> 1.0; |
end; |
function TBlit.GetSpeedX: Single; |
begin |
Result := FBlitRec.FSpeedX; |
end; |
procedure TBlit.SetSpeedX(const Value: Single); |
begin |
FBlitRec.FSpeedX := Value; |
end; |
function TBlit.StoreSpeedX: Boolean; |
begin |
Result := FBlitRec.FSpeedX <> 0; |
end; |
function TBlit.GetSpeedY: Single; |
begin |
Result := FBlitRec.FSpeedY; |
end; |
procedure TBlit.SetSpeedY(const Value: Single); |
begin |
FBlitRec.FSpeedY := Value; |
end; |
function TBlit.StoreSpeedY: Boolean; |
begin |
Result := FBlitRec.FSpeedY <> 0; |
end; |
function TBlit.GetCenterX: Double; |
begin |
Result := FBlitRec.FCenterX; |
end; |
procedure TBlit.SetCenterX(const Value: Double); |
begin |
FBlitRec.FCenterX := Value; |
end; |
function TBlit.StoreCenterX: Boolean; |
begin |
Result := FBlitRec.FCenterX <> 0.5; |
end; |
function TBlit.GetAngle: Single; |
begin |
Result := FBlitRec.FAngle; |
end; |
procedure TBlit.SetAngle(const Value: Single); |
begin |
FBlitRec.FAngle := Value; |
end; |
function TBlit.StoreAngle: Boolean; |
begin |
Result := FBlitRec.FAngle <> 0; |
end; |
function TBlit.GetBlurImage: Boolean; |
begin |
Result := FBlitRec.FBlurImage; |
end; |
procedure TBlit.SetBlurImage(const Value: Boolean); |
begin |
FBlitRec.FBlurImage := Value; |
end; |
function TBlit.GetCenterY: Double; |
begin |
Result := FBlitRec.FCenterY; |
end; |
procedure TBlit.SetCenterY(const Value: Double); |
begin |
FBlitRec.FCenterY := Value; |
end; |
function TBlit.StoreCenterY: Boolean; |
begin |
Result := FBlitRec.FCenterY <> 0.5; |
end; |
function TBlit.GetBlendMode: TRenderType; |
begin |
Result := FBlitRec.FBlendMode; |
end; |
procedure TBlit.SetBlendMode(const Value: TRenderType); |
begin |
FBlitRec.FBlendMode := Value; |
end; |
function TBlit.GetAnimSpeed: Double; |
begin |
Result := FBlitRec.FAnimSpeed; |
end; |
procedure TBlit.SetAnimSpeed(const Value: Double); |
begin |
FBlitRec.FAnimSpeed := Value; |
end; |
function TBlit.StoreAnimSpeed: Boolean; |
begin |
Result := FBlitRec.FAnimSpeed <> 0; |
end; |
function TBlit.GetZ: Integer; |
begin |
Result := FBlitRec.FZ; |
end; |
procedure TBlit.SetZ(const Value: Integer); |
begin |
FBlitRec.FZ := Value; |
end; |
function TBlit.GetMirror: Boolean; |
begin |
Result := FBlitRec.FMirror; |
end; |
procedure TBlit.SetMirror(const Value: Boolean); |
begin |
FBlitRec.FMirror := Value; |
end; |
function TBlit.GetX: Double; |
begin |
Result := FBlitRec.FX; |
end; |
procedure TBlit.SetX(const Value: Double); |
begin |
FBlitRec.FX := Value; |
end; |
function TBlit.GetVisible: Boolean; |
begin |
Result := FBlitRec.FVisible; |
end; |
procedure TBlit.SetVisible(const Value: Boolean); |
begin |
FBlitRec.FVisible := Value; |
end; |
function TBlit.GetY: Double; |
begin |
Result := FBlitRec.FY; |
end; |
procedure TBlit.SetY(const Value: Double); |
begin |
FBlitRec.FY := Value; |
end; |
function TBlit.GetAlpha: Byte; |
begin |
Result := FBlitRec.FAlpha; |
end; |
procedure TBlit.SetAlpha(const Value: Byte); |
begin |
FBlitRec.FAlpha := Value; |
end; |
function TBlit.GetEnergy: Single; |
begin |
Result := FBlitRec.FEnergy; |
end; |
procedure TBlit.SetEnergy(const Value: Single); |
begin |
FBlitRec.FEnergy := Value; |
end; |
function TBlit.StoreEnergy: Boolean; |
begin |
Result := FBlitRec.FEnergy <> 0; |
end; |
function TBlit.GetCollisioned: Boolean; |
begin |
Result := FBlitRec.FCollisioned; |
end; |
procedure TBlit.SetCollisioned(const Value: Boolean); |
begin |
FBlitRec.FCollisioned := Value; |
end; |
function TBlit.GetAnimLooped: Boolean; |
begin |
Result := FBlitRec.FAnimLooped; |
end; |
procedure TBlit.SetAnimLooped(const Value: Boolean); |
begin |
FBlitRec.FAnimLooped := Value; |
end; |
function TBlit.GetHeight: Integer; |
begin |
Result := FBlitRec.FHeight; |
end; |
procedure TBlit.SetHeight(const Value: Integer); |
begin |
FBlitRec.FHeight := Value; |
end; |
function TBlit.GetScale: Double; |
begin |
Result := FBlitRec.FScale; |
end; |
procedure TBlit.SetScale(const Value: Double); |
begin |
FBlitRec.FScale := Value; |
end; |
function TBlit.StoreScale: Boolean; |
begin |
Result := FBlitRec.FScale <> 1.0; |
end; |
function TBlit.GetAnimCount: Integer; |
begin |
Result := FBlitRec.FAnimCount; |
end; |
procedure TBlit.SetAnimCount(const Value: Integer); |
begin |
FBlitRec.FAnimCount := Value; |
end; |
function TBlit.GetTextureFilter: TD2DTextureFilter; |
begin |
Result := FBlitRec.FTextureFilter; |
end; |
procedure TBlit.SetTextureFilter(const Value: TD2DTextureFilter); |
begin |
FBlitRec.FTextureFilter := Value; |
end; |
function TBlit.GetBoundsRect: TRect; |
begin |
Result := Bounds(Round(WorldX), Round(WorldY), Width, Height); |
end; |
function TBlit.GetClientRect: TRect; |
begin |
Result := Bounds(0, 0, Width, Height); |
end; |
function TBlit.GetBlitAt(X, Y: Integer): TBlit; |
procedure BlitAt(X, Y: Double; Blit: TBlit); |
var |
i: Integer; |
X2, Y2: Double; |
begin |
if Blit.Visible and PointInRect(Point(Round(X), Round(Y)), |
Bounds(Round(Blit.X), Round(Blit.Y), Blit.Width, Blit.Width)) then |
begin |
if (Result = nil) or (Blit.Z > Result.Z) then |
Result := Blit; {uniquelly - where will be store last blit} |
end; |
X2 := X - Blit.X; |
Y2 := Y - Blit.Y; |
for i := 0 to Blit.Engine.FTraces.Count - 1 do |
BlitAt(X2, Y2, Blit.Engine.FTraces.Items[i].FBlit); |
end; |
var |
i: Integer; |
X2, Y2: Double; |
begin |
Result := nil; |
X2 := X - Self.X; |
Y2 := Y - Self.Y; |
for i := 0 to Engine.FTraces.Count - 1 do |
BlitAt(X2, Y2, Engine.FTraces.Items[i].FBlit); |
end; |
procedure TBlit.SetPathLen(Len: Integer); |
var I, L: Integer; |
begin |
{$IFDEF VER4UP} |
if Length(FPathArr) <> Len then |
{$ELSE} |
if FPathLen <> Len then |
{$ENDIF} |
begin |
L := Len; |
if Len <= 0 then L := 0; |
{$IFDEF VER4UP} |
SetLength(FPathArr, L); |
for I := Low(FPathArr) to High(FPathArr) do begin |
FillChar(FPathArr[i], SizeOf(FPathArr), 0); |
FPathArr[i].StayOn := 25; |
end; |
{$ELSE} |
FPathLen := L; |
if FPathArr = nil then |
FPAthArr := AllocMem(FPathLen * SizeOf(TPath)) |
else |
{alokuj pamet} |
ReallocMem(FPathArr, FPathLen * SizeOf(TPath)); |
if Assigned(FPathArr) then begin |
FillChar(FPathArr^, FPathLen * SizeOf(TPath), 0); |
for I := 0 to FPathLen do |
FPathArr[i].StayOn := 25; |
end |
{$ENDIF} |
end; |
end; |
function TBlit.IsPathEmpty: Boolean; |
begin |
{$IFNDEF VER4UP} |
Result := FPathLen = 0; |
{$ELSE} |
Result := Length(FPathArr) = 0; |
{$ENDIF} |
end; |
function TBlit.GetPathCount: Integer; |
begin |
{$IFNDEF VER4UP} |
Result := FPathLen; |
{$ELSE} |
Result := Length(FPathArr); |
{$ENDIF} |
end; |
function TBlit.GetPath(index: Integer): TPath; |
begin |
{$IFDEF VER4UP} |
if (index >= Low(FPathArr)) and (index <= High(FPathArr)) then |
{$ELSE} |
if (index >= 0) and (index < FPathLen) then |
{$ENDIF} |
Result := FPathArr[index] |
else |
raise Exception.Create('Bad path index!'); |
end; |
procedure TBlit.SetPath(index: Integer; const Value: TPath); |
begin |
{$IFDEF VER4UP} |
if (index >= Low(FPathArr)) and (index <= High(FPathArr)) then |
{$ELSE} |
if (index >= 0) and (index < FPathLen) then |
{$ENDIF} |
FPathArr[index] := Value |
else |
raise Exception.Create('Bad path index!'); |
end; |
procedure TBlit.ReadPaths(Stream: TStream); |
var |
PathLen: Integer; |
begin |
{nacti delku} |
Stream.ReadBuffer(PathLen, SizeOf(PathLen)); |
SetPathLen(PathLen); |
Stream.ReadBuffer(FPathArr[0], PathLen * SizeOf(TPath)); |
end; |
procedure TBlit.WritePaths(Stream: TStream); |
var |
PathLen: Integer; |
begin |
PathLen := GetPathCount; |
Stream.WriteBuffer(PathLen, SizeOf(PathLen)); |
Stream.WriteBuffer(FPathArr[0], PathLen * SizeOf(TPath)); |
end; |
procedure TBlit.DefineProperties(Filer: TFiler); |
begin |
inherited DefineProperties(Filer); |
Filer.DefineBinaryProperty('Paths', ReadPaths, WritePaths, not IsPathEmpty); |
end; |
procedure TBlit.Assign(Source: TPersistent); |
var I: Integer; |
begin |
if Source is TBlit then |
begin |
{$IFDEF VER4UP} |
I := Length(TBlit(Source).FPathArr); |
{$ELSE} |
I := FPathLen; |
{$ENDIF} |
SetPathLen(I); |
if I > 0 then |
Move(TBlit(Source).FPathArr[0], FPathArr[0], I * SizeOf(TPath)); |
FBlitRec := TBlit(Source).FBlitRec; |
FillChar(FBlurImageArr, SizeOf(FBlurImageArr), 0); |
FActive := TBlit(Source).FActive; |
FMovingRepeatly := TBlit(Source).FMovingRepeatly; |
FImage := nil; |
FOnMove := TBlit(Source).FOnMove; |
FOnDraw := TBlit(Source).FOnDraw; |
FOnCollision := TBlit(Source).FOnCollision; |
FOnGetImage := TBlit(Source).FOnGetImage; |
FEngine := TBlit(Source).FEngine; |
end |
else |
inherited Assign(Source); |
end; |
function TBlit.GetMovingRepeatly: Boolean; |
begin |
Result := FMovingRepeatly; |
end; |
procedure TBlit.SetMovingRepeatly(const Value: Boolean); |
begin |
FMovingRepeatly := Value; |
end; |
function TBlit.GetBustrofedon: Boolean; |
begin |
Result := FBustrofedon; |
end; |
procedure TBlit.SetBustrofedon(const Value: Boolean); |
begin |
FBustrofedon := Value; |
end; |
{ utility draw } |
procedure DXDraw_Draw(DXDraw: TCustomDXDraw; Image: TPictureCollectionItem; |
Rect: TRect; Pattern: Integer; TextureFilter: TD2DTextureFilter; |
MirrorFlip: TRenderMirrorFlipSet; |
BlendMode: TRenderType; Angle: Single; Alpha: Byte; |
CenterX: Double; CenterY: Double; |
Scale: Single); {$IFDEF VER9UP}inline;{$ENDIF} |
var |
// r: TRect; |
width, height: Integer; |
begin |
if not Assigned(DXDraw.Surface) then Exit; |
if not Assigned(Image) then Exit; |
if Scale <> 1.0 then begin |
width := Round(Scale * Image.Width); |
height := Round(Scale * Image.Height); |
end |
else begin |
width := Image.Width; |
height := Image.Height; |
end; |
//r := Bounds(X, Y, width, height); |
DXDraw.TextureFilter(TextureFilter); |
DXDraw.MirrorFlip(MirrorFlip); |
case BlendMode of |
rtDraw: begin |
if Angle = 0 then |
Image.StretchDraw(DXDraw.Surface, Rect, Pattern) |
else |
Image.DrawRotate(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle); |
end; |
rtBlend: begin |
if Angle = 0 then |
Image.DrawAlpha(DXDraw.Surface, Rect, Pattern, Alpha) |
else |
Image.DrawRotateAlpha(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle, Alpha); |
end; |
rtAdd: begin |
if Angle = 0 then |
Image.DrawAdd(DXDraw.Surface, Rect, Pattern, Alpha) |
else |
Image.DrawRotateAdd(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle, Alpha); |
end; |
rtSub: begin |
if Angle = 0 then |
Image.DrawSub(DXDraw.Surface, Rect, Pattern, Alpha) |
else |
Image.DrawRotateSub(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle, Alpha); |
end; |
end; {case} |
end; |
procedure DXDraw_Paint(DXDraw: TCustomDXDraw; Image: TPictureCollectionItem; |
Rect: TRect; Pattern: Integer; var BlurImageArr: TBlurImageArr; BlurImage: Boolean; |
TextureFilter: TD2DTextureFilter; |
MirrorFlip: TRenderMirrorFlipSet; |
BlendMode: TRenderType; |
Angle: Single; |
Alpha: Byte; |
CenterX: Double; CenterY: Double); {$IFDEF VER9UP}inline;{$ENDIF} |
var |
rr: TRect; |
i, width, height: Integer; |
begin |
if not Assigned(DXDraw.Surface) then Exit; |
if not Assigned(Image) then Exit; |
width := Image.Width; |
height := Image.Height; |
//rr := Bounds(X, Y, width, height); |
//DXDraw.MirrorFlip(MirrorFlip); |
DXDraw.TextureFilter(TextureFilter); |
case BlendMode of |
rtDraw: begin |
if BlurImage then begin |
for i := Low(BlurImageArr) to High(BlurImageArr) do if BlurImageArr[i].eActive then begin |
DXDraw.MirrorFlip(MirrorFlip); |
rr := Bounds(BlurImageArr[i].eX, BlurImageArr[i].eY, Width, Height); |
if Angle = 0 then |
Image.DrawAlpha(DXDraw.Surface, rr, BlurImageArr[i].ePatternIndex, BlurImageArr[i].eIntensity) |
else |
Image.DrawRotateAlpha(DXDraw.Surface, (rr.Left + rr.Right) div 2, |
(rr.Top + rr.Bottom) div 2, |
Width, Height, BlurImageArr[i].ePatternIndex, CenterX, CenterY, BlurImageArr[i].eAngle, BlurImageArr[i].eIntensity); |
if BlurImageArr[i].eIntensity > 0 then Dec(BlurImageArr[i].eIntensity) else FillChar(BlurImageArr[i], SizeOf(BlurImageArr[i]), 0); |
end; |
end; |
DXDraw.MirrorFlip(MirrorFlip); |
if Angle = 0 then |
Image.StretchDraw(DXDraw.Surface, Rect, Pattern) |
else |
Image.DrawRotate(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle); |
end; |
rtBlend: begin |
if BlurImage then begin |
for i := Low(BlurImageArr) to High(BlurImageArr) do if BlurImageArr[i].eActive then begin |
DXDraw.MirrorFlip(MirrorFlip); |
rr := Bounds(BlurImageArr[i].eX, BlurImageArr[i].eY, Width, Height); |
if Angle = 0 then |
Image.DrawAlpha(DXDraw.Surface, rr, Pattern, BlurImageArr[i].eIntensity) |
else |
Image.DrawRotateAlpha(DXDraw.Surface, (rr.Left + rr.Right) div 2, |
(rr.Top + rr.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, BlurImageArr[i].eAngle, BlurImageArr[i].eIntensity); |
if BlurImageArr[i].eIntensity > 0 then Dec(BlurImageArr[i].eIntensity) else FillChar(BlurImageArr[i], SizeOf(BlurImageArr[i]), 0); |
end; |
end; |
DXDraw.MirrorFlip(MirrorFlip); |
if Angle = 0 then |
Image.DrawAlpha(DXDraw.Surface, Rect, Pattern, Alpha) |
else |
Image.DrawRotateAlpha(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle, Alpha); |
end; |
rtAdd: begin |
if BlurImage then begin |
for i := Low(BlurImageArr) to High(BlurImageArr) do if BlurImageArr[i].eActive then begin |
DXDraw.MirrorFlip(MirrorFlip); |
rr := Bounds(BlurImageArr[i].eX, BlurImageArr[i].eY, Width, Height); |
if Angle = 0 then |
Image.DrawAdd(DXDraw.Surface, rr, Pattern, BlurImageArr[i].eIntensity) |
else |
Image.DrawRotateAdd(DXDraw.Surface, (rr.Left + rr.Right) div 2, |
(rr.Top + rr.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, BlurImageArr[i].eAngle, BlurImageArr[i].eIntensity); |
if BlurImageArr[i].eIntensity > 0 then Dec(BlurImageArr[i].eIntensity) else FillChar(BlurImageArr[i], SizeOf(BlurImageArr[i]), 0); |
end; |
end; |
DXDraw.MirrorFlip(MirrorFlip); |
if Angle = 0 then |
Image.DrawAdd(DXDraw.Surface, Rect, Pattern, Alpha) |
else |
Image.DrawRotateAdd(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle, Alpha); |
end; |
rtSub: begin |
if BlurImage then begin |
for i := Low(BlurImageArr) to High(BlurImageArr) do if BlurImageArr[i].eActive then begin |
DXDraw.MirrorFlip(MirrorFlip); |
rr := Bounds(BlurImageArr[i].eX, BlurImageArr[i].eY, Width, Height); |
if Angle = 0 then |
Image.DrawSub(DXDraw.Surface, rr, Pattern, BlurImageArr[i].eIntensity) |
else |
Image.DrawRotateSub(DXDraw.Surface, (rr.Left + rr.Right) div 2, |
(rr.Top + rr.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, BlurImageArr[i].eAngle, BlurImageArr[i].eIntensity); |
if BlurImageArr[i].eIntensity > 0 then Dec(BlurImageArr[i].eIntensity) else FillChar(BlurImageArr[i], SizeOf(BlurImageArr[i]), 0); |
end; |
end; |
DXDraw.MirrorFlip(MirrorFlip); |
if Angle = 0 then |
Image.DrawSub(DXDraw.Surface, Rect, Pattern, Alpha) |
else |
Image.DrawRotateSub(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle, Alpha); |
end; |
end; {case} |
end; |
procedure DXDraw_Render(DXDraw: TCustomDXDraw; Image: TPictureCollectionItem; |
Rect: TRect; Pattern: Integer; var BlurImageArr: TBlurImageArr; BlurImage: Boolean; |
TextureFilter: TD2DTextureFilter; MirrorFlip: TRenderMirrorFlipSet; |
BlendMode: TRenderType; |
Angle: Single; |
Alpha: Byte; |
CenterX: Double; CenterY: Double; |
Scale: Single; |
WaveType: TWaveType; |
Amplitude: Integer; AmpLength: Integer; Phase: Integer); {$IFDEF VER9UP}inline;{$ENDIF} |
var |
rr: TRect; |
i, width, height: Integer; |
begin |
if not Assigned(DXDraw.Surface) then Exit; |
if not Assigned(Image) then Exit; |
if Scale <> 1.0 then begin |
width := Round(Scale * Image.Width); |
height := Round(Scale * Image.Height); |
end |
else begin |
width := Image.Width; |
height := Image.Height; |
end; |
//r := Bounds(X, Y, width, height); |
DXDraw.TextureFilter(TextureFilter); |
DXDraw.MirrorFlip(MirrorFlip); |
case BlendMode of |
rtDraw: |
begin |
case WaveType of |
wtWaveNone: |
begin |
if BlurImage then begin |
for i := Low(BlurImageArr) to High(BlurImageArr) do if BlurImageArr[i].eActive then begin |
DXDraw.MirrorFlip(MirrorFlip); |
rr := Bounds(BlurImageArr[i].eX, BlurImageArr[i].eY, Round(Scale * Width), Round(Scale * Height)); |
if Angle = 0 then |
Image.DrawAlpha(DXDraw.Surface, rr, BlurImageArr[i].ePatternIndex, BlurImageArr[i].eIntensity) |
else |
Image.DrawRotateAlpha(DXDraw.Surface, (rr.Left + rr.Right) div 2, |
(rr.Top + rr.Bottom) div 2, |
Width, Height, BlurImageArr[i].ePatternIndex, CenterX, CenterY, BlurImageArr[i].eAngle, BlurImageArr[i].eIntensity); |
if BlurImageArr[i].eIntensity > 0 then Dec(BlurImageArr[i].eIntensity) else FillChar(BlurImageArr[i], SizeOf(BlurImageArr[i]), 0); |
end; |
end; |
DXDraw.MirrorFlip(MirrorFlip); |
if Angle = 0 then |
Image.StretchDraw(DXDraw.Surface, Rect, Pattern) |
else |
Image.DrawRotate(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle); |
end; |
wtWaveX: Image.DrawWaveX(DXDraw.Surface, Round(Rect.Left), Round(Rect.Top), Width, Height, Pattern, Amplitude, AmpLength, Phase); |
wtWaveY: Image.DrawWaveY(DXDraw.Surface, Round(Rect.Left), Round(Rect.Top), Width, Height, Pattern, Amplitude, AmpLength, Phase); |
end; |
end; |
rtBlend: begin |
case WaveType of |
wtWaveNone: begin |
if BlurImage then begin |
for i := Low(BlurImageArr) to High(BlurImageArr) do if BlurImageArr[i].eActive then begin |
DXDraw.MirrorFlip(MirrorFlip); |
rr := Bounds(BlurImageArr[i].eX, BlurImageArr[i].eY, Round(Scale * Width), Round(Scale * Height)); |
if Angle = 0 then |
Image.DrawAlpha(DXDraw.Surface, rr, Pattern, BlurImageArr[i].eIntensity) |
else |
Image.DrawRotateAlpha(DXDraw.Surface, (rr.Left + rr.Right) div 2, |
(rr.Top + rr.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, BlurImageArr[i].eAngle, BlurImageArr[i].eIntensity); |
if BlurImageArr[i].eIntensity > 0 then Dec(BlurImageArr[i].eIntensity) else FillChar(BlurImageArr[i], SizeOf(BlurImageArr[i]), 0); |
end; |
end; |
DXDraw.MirrorFlip(MirrorFlip); |
if Angle = 0 then |
Image.DrawAlpha(DXDraw.Surface, Rect, Pattern, Alpha) |
else |
Image.DrawRotateAlpha(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle, Alpha); |
end; |
wtWaveX: Image.DrawWaveXAlpha(DXDraw.Surface, Round(Rect.Left), Round(Rect.Top), Width, Height, Pattern, Amplitude, AmpLength, Phase, Alpha); |
wtWaveY: Image.DrawWaveYAlpha(DXDraw.Surface, Round(Rect.Top), Round(Rect.Top), Width, Height, Pattern, Amplitude, AmpLength, Phase, Alpha); |
end; |
end; |
rtAdd: begin |
case WaveType of |
wtWaveNone: begin |
if BlurImage then begin |
for i := Low(BlurImageArr) to High(BlurImageArr) do if BlurImageArr[i].eActive then begin |
DXDraw.MirrorFlip(MirrorFlip); |
rr := Bounds(BlurImageArr[i].eX, BlurImageArr[i].eY, Round(Scale * Width), Round(Scale * Height)); |
if Angle = 0 then |
Image.DrawAdd(DXDraw.Surface, rr, Pattern, BlurImageArr[i].eIntensity) |
else |
Image.DrawRotateAdd(DXDraw.Surface, (rr.Left + rr.Right) div 2, |
(rr.Top + rr.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, BlurImageArr[i].eAngle, BlurImageArr[i].eIntensity); |
if BlurImageArr[i].eIntensity > 0 then Dec(BlurImageArr[i].eIntensity) else FillChar(BlurImageArr[i], SizeOf(BlurImageArr[i]), 0); |
end; |
end; |
DXDraw.MirrorFlip(MirrorFlip); |
if Angle = 0 then |
Image.DrawAdd(DXDraw.Surface, Rect, Pattern, Alpha) |
else |
Image.DrawRotateAdd(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle, Alpha); |
end; |
wtWaveX: Image.DrawWaveXAdd(DXDraw.Surface, Round(Rect.Left), Round(Rect.Top), Width, Height, Pattern, Amplitude, AmpLength, Phase, Alpha); |
wtWaveY: Image.DrawWaveYAdd(DXDraw.Surface, Round(Rect.Top), Round(Rect.Top), Width, Height, Pattern, Amplitude, AmpLength, Phase, Alpha); |
end; |
end; |
rtSub: begin |
case WaveType of |
wtWaveNone: begin |
if BlurImage then begin |
for i := Low(BlurImageArr) to High(BlurImageArr) do if BlurImageArr[i].eActive then begin |
DXDraw.MirrorFlip(MirrorFlip); |
rr := Bounds(BlurImageArr[i].eX, BlurImageArr[i].eY, Round(Scale * Width), Round(Scale * Height)); |
if Angle = 0 then |
Image.DrawSub(DXDraw.Surface, rr, Pattern, BlurImageArr[i].eIntensity) |
else |
Image.DrawRotateSub(DXDraw.Surface, (rr.Left + rr.Right) div 2, |
(rr.Top + rr.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, BlurImageArr[i].eAngle, BlurImageArr[i].eIntensity); |
if BlurImageArr[i].eIntensity > 0 then Dec(BlurImageArr[i].eIntensity) else FillChar(BlurImageArr[i], SizeOf(BlurImageArr[i]), 0); |
end; |
end; |
DXDraw.MirrorFlip(MirrorFlip); |
if Angle = 0 then |
Image.DrawSub(DXDraw.Surface, Rect, Pattern, Alpha) |
else |
Image.DrawRotateSub(DXDraw.Surface, (Rect.Left + Rect.Right) div 2, |
(Rect.Top + Rect.Bottom) div 2, |
Width, Height, Pattern, CenterX, CenterY, Angle, Alpha); |
end; |
wtWaveX: Image.DrawWaveXSub(DXDraw.Surface, Round(Rect.Left), Round(Rect.Top), Width, Height, Pattern, Amplitude, AmpLength, Phase, Alpha); |
wtWaveY: Image.DrawWaveYSub(DXDraw.Surface, Round(Rect.Top), Round(Rect.Top), Width, Height, Pattern, Amplitude, AmpLength, Phase, Alpha); |
end; |
end; |
end; {case} |
end; |
initialization |
_DXTextureImageLoadFuncList := TList.Create; |
TDXTextureImage.RegisterLoadFunc(DXTextureImage_LoadDXTextureImageFunc); //delete Mr.Kawasaki |
TDXTextureImage.RegisterLoadFunc(DXTextureImage_LoadBitmapFunc); |
finalization |
TDXTextureImage.UnRegisterLoadFunc(DXTextureImage_LoadDXTextureImageFunc); //delete Mr.Kawasaki |
TDXTextureImage.UnRegisterLoadFunc(DXTextureImage_LoadBitmapFunc); |
_DXTextureImageLoadFuncList.Free; |
{ driver free } |
DirectDrawDrivers.Free; |
end. |
{$IFDEF _DMO_}DirectDrawDriversEx.Free;{$ENDIF} |
end. |
/VCL_DELPHIX_D6/DXInput.pas |
---|
6,7 → 6,20 |
uses |
Windows, Messages, SysUtils, Classes, Controls, Forms, MMSystem, |
DirectX, DXClass; |
DXClass, {$IFDEF VER17UP} Types, {$ENDIF} |
{$IfDef StandardDX} |
{$IfDef DX9} |
DirectInput; |
{$Else} |
{$IfDef DX81} |
DirectInput8; |
{$Else} |
DirectInput; |
{$EndIf} |
{$EndIf} |
{$Else} |
DirectX; |
{$EndIf} |
type |
765,7 → 778,7 |
FFindEffectGUID := pdei.guid; |
end; |
Result := DIENUM_STOP; |
Result := Integer(DIENUM_STOP); |
end; |
procedure CreateIEffectGuid(const GUID: TGUID; |
774,7 → 787,7 |
if EffectObject.Feff.dwSize=0 then Exit; |
if FRoot.FInput.FDevice2<>nil then |
FRoot.FInput.FDevice2.CreateEffect(GUID, EffectObject.Feff, EffectObject.FEffect, nil); |
FRoot.FInput.FDevice2.CreateEffect(GUID, @EffectObject.Feff, EffectObject.FEffect, nil); |
end; |
procedure CreateIEffect(dwFlags: DWORD; |
1405,11 → 1418,11 |
if FDevice<>nil then |
begin |
hr := FDevice.GetDeviceState(dwSize, Data); |
hr := FDevice.GetDeviceState(dwSize, @Data); |
if (hr=DIERR_INPUTLOST) or (hr=DIERR_NOTACQUIRED) then |
begin |
FDevice.Acquire; |
hr := FDevice.GetDeviceState(dwSize, Data); |
hr := FDevice.GetDeviceState(dwSize, @Data); |
end; |
Result := hr=DI_OK; |
end else |
1421,7 → 1434,7 |
function DIEnumDeviceObjectsProc(const peff: TDIDeviceObjectInstanceA; |
pvRef: Pointer): HRESULT; stdcall; |
begin |
Result := DIENUM_CONTINUE; |
Result := Integer(DIENUM_CONTINUE); |
if CompareMem(@peff.guidType, @GUID_Unknown, SizeOf(TGUID)) then Exit; |
1646,7 → 1659,10 |
DIK_APPS : Result := VK_APPS; |
end; |
end; |
{$IFDEF StandardDX} |
type |
TDIKeyboardState = array[0..255] of Byte; |
{$ENDIF} |
var |
j: Integer; |
i: TDXInputState; |
1848,7 → 1864,7 |
function TJoystick_EnumJoysticksCallback(const lpddi: TDIDeviceInstanceA; |
pvRef: Pointer): HRESULT; stdcall; |
begin |
Result := DIENUM_CONTINUE; |
Result := Integer(DIENUM_CONTINUE); |
with TJoystick(pvRef) do |
begin |
1856,7 → 1872,7 |
begin |
FDeviceGUID := lpddi.guidInstance; |
FEnumFlag := True; |
Result := DIENUM_STOP; |
Result := Integer(DIENUM_STOP); |
Exit; |
end; |
Inc(FEnumIndex); |
1880,7 → 1896,7 |
FEnumFlag := False; |
FEnumIndex := 0; |
FDXInput.FDInput.EnumDevices(DIDEVTYPE_JOYSTICK, @TJoystick_EnumJoysticksCallback, |
FDXInput.FDInput.EnumDevices({DIDEVTYPE_JOYSTICK}4, @TJoystick_EnumJoysticksCallback, |
Self, DIEDFL_ATTACHEDONLY); |
if not FEnumFlag then Exit; |
1896,7 → 1912,7 |
FForceFeedbackDevice := True; |
end; |
if FDXInput.FDInput.CreateDevice(GUID_Joystick, FDevice, nil)<>DI_OK then Exit; |
//if FDXInput.FDInput.CreateDevice(GUID_Joystick, FDevice, nil)<>DI_OK then Exit; get out by Paul van Dinther |
{ Device data format (TDIDataFormat) making. } |
2122,12 → 2138,12 |
procedure InitDirectInput(out DI: IDirectInput); |
type |
TDirectInputCreate = function(hinst: THandle; dwVersion: DWORD; |
out ppDI: IDirectInputA; punkOuter: IUnknown): HRESULT; stdcall; |
out ppDI: {$IFDEF UNICODE}IDirectInputW{$ELSE}IDirectInputA{$ENDIF}; punkOuter: IUnknown): HRESULT; stdcall; |
begin |
if FDirectInput=nil then |
begin |
try |
TDirectInputCreate(DXLoadLibrary('DInput.dll', 'DirectInputCreateA')) |
TDirectInputCreate(DXLoadLibrary('DInput.dll', {$IFDEF UNICODE}'DirectInputCreateW'{$ELSE}'DirectInputCreateA'{$ENDIF})) |
(HInstance, DIRECTINPUT_VERSION, FDirectInput, nil); |
except |
FDirectInput := nil; |
/VCL_DELPHIX_D6/DXMapEditProperties.pas |
---|
0,0 → 1,368 |
unit DXMapEditProperties; |
//(c)2007 Jaro Benes |
//All Rights Reserved |
{ |
Complex application for users of unDelphiX as component editor: |
Supported: |
a) set up or change for each chip parameters by drawing or collision brick. |
b) integrated into map editor. |
} |
interface |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, |
Dialogs, StdCtrls, ExtCtrls, Buttons, DXSprite, DXDraws; |
type |
{injected class} |
TEdit = class(StdCtrls.TEdit) |
private |
FButton: TSpeedButton; |
FEditorEnabled: Boolean; |
FOnBtnClick: TNotifyEvent; |
procedure SetGlyph(Pic: TBitmap); |
function GetGlyph: TBitmap; |
procedure SetNumGlyphs(ANumber: Integer); |
function GetNumGlyphs: Integer; |
//function GetMinHeight: Integer; |
procedure SetEditRect; |
function GetAsInteger: Integer; |
procedure SetAsInteger(const Value: Integer); |
procedure WMSize(var Message: TWMSize); message WM_SIZE; |
procedure CMEnter(var Message: TCMGotFocus); message CM_ENTER; |
procedure CMExit(var Message: TCMExit); message CM_EXIT; |
procedure WMPaste(var Message: TWMPaste); message WM_PASTE; |
procedure WMCut(var Message: TWMCut); message WM_CUT; |
function GetAsFloat: Double; |
procedure SetAsFloat(const Value: Double); |
function GetBtnVisible: Boolean; |
procedure SetBtnVisible(const Value: Boolean); |
protected |
function IsValidChar(Key: Char): Boolean; virtual; |
procedure aClick(Sender: TObject); virtual; |
procedure KeyDown(var Key: Word; Shift: TShiftState); override; |
procedure KeyPress(var Key: Char); override; |
procedure CreateParams(var Params: TCreateParams); override; |
procedure CreateWnd; override; |
public |
constructor Create(AOwner: TComponent); override; |
destructor Destroy; override; |
property Button: TSpeedButton read FButton; |
property AsInteger: Integer read GetAsInteger write SetAsInteger; |
property AsFloat: Double read GetAsFloat write SetAsFloat; |
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override; |
published |
property BtnVisible: Boolean read GetBtnVisible write SetBtnVisible default False; |
property EditorEnabled: Boolean read FEditorEnabled write FEditorEnabled default True; |
property Glyph: TBitmap read GetGlyph write SetGlyph; |
property NumGlyphs: Integer read GetNumGlyphs write SetNumGlyphs; |
property OnBtnClick: TNotifyEvent read FOnBtnClick write FOnBtnClick; |
end; |
{ TDelphiXMapEditPropertiesForm } |
TDelphiXMapEditPropertiesForm = class(TForm) |
Panel1: TPanel; |
LAlpha: TLabel; |
LAnimCount: TLabel; |
LAnimSpeed: TLabel; |
LAnimStart: TLabel; |
LAnimPos: TLabel; |
EAlpha: TEdit; |
EAnimCount: TEdit; |
EAnimSpeed: TEdit; |
EAnimStart: TEdit; |
EAnimPos: TEdit; |
Panel2: TPanel; |
chbCollisioned: TCheckBox; |
chbAnimated: TCheckBox; |
rgBlendMode: TRadioGroup; |
btnOK: TBitBtn; |
btnCancel: TBitBtn; |
GroupBox1: TGroupBox; |
chbFlip: TCheckBox; |
chbMirror: TCheckBox; |
procedure btnCancelClick(Sender: TObject); |
procedure btnOKClick(Sender: TObject); |
private |
{ Private declarations } |
LocalMapType: TMapType; |
FCol, FRow: Integer; |
public |
{ Public declarations } |
procedure LoadCellToForm(MapType: TMapType; ACol, ARow: Integer); |
function SaveCellFromForm(ACol, ARow: Integer): TMapType; |
property Col: Integer read FCol write FCol; |
property Row: Integer read FRow write FRow; |
end; |
implementation |
{$R *.dfm} |
uses DXMapEdit; |
{ TEdit } |
constructor TEdit.Create(AOwner: TComponent); |
begin |
inherited Create(AOwner); |
FButton := TSpeedButton.Create(Self); |
FButton.Align := alRight; |
FButton.Caption := '...'; |
//FButton.Height := Self.Height-4; |
FButton.Width := FButton.Height div 2; |
// if csDesigning in ComponentState then |
// FButton.Visible := True |
// else FButton.Visible := False; |
FButton.Parent := Self; |
FButton.OnClick := aClick; |
FButton.Cursor := crArrow; |
ControlStyle := ControlStyle - [csSetCaption]; |
FButton.Visible := False; {button is not visible as default} |
FEditorEnabled := True; |
end; |
destructor TEdit.Destroy; |
begin |
FButton.Free; FButton := nil; |
inherited Destroy; |
end; |
procedure TEdit.GetChildren(Proc: TGetChildProc; Root: TComponent); |
begin |
end; |
procedure TEdit.KeyDown(var Key: Word; Shift: TShiftState); |
begin |
inherited KeyDown(Key, Shift); |
end; |
procedure TEdit.SetGlyph(Pic: TBitmap); |
begin |
FButton.Glyph.Assign(Pic); |
end; |
function TEdit.GetGlyph: TBitmap; |
begin |
Result := FButton.Glyph; |
end; |
procedure TEdit.SetNumGlyphs(ANumber: Integer); |
begin |
FButton.NumGlyphs := ANumber; |
end; |
function TEdit.GetNumGlyphs: Integer; |
begin |
Result := FButton.NumGlyphs; |
end; |
procedure TEdit.KeyPress(var Key: Char); |
begin |
if not IsValidChar(Key) then |
begin |
Key := #0; |
MessageBeep(0) |
end; |
if Key <> #0 then inherited KeyPress(Key); |
end; |
function TEdit.IsValidChar(Key: Char): Boolean; |
begin |
Result := True; |
end; |
procedure TEdit.CreateParams(var Params: TCreateParams); |
begin |
inherited CreateParams(Params); |
Params.Style := Params.Style or ES_MULTILINE or WS_CLIPCHILDREN {and not WS_BORDER}; |
end; |
procedure TEdit.CreateWnd; |
begin |
inherited CreateWnd; |
SetEditRect; |
end; |
procedure TEdit.SetEditRect; |
var |
Loc: TRect; |
W: Integer; |
begin |
W := FButton.Width; |
if not FButton.Visible then W := 0; |
SendMessage(Handle, EM_GETRECT, 0, LPARAM(@Loc)); |
Loc.Bottom := ClientHeight + 1; {+1 is workaround for windows paint bug} |
Loc.Right := ClientWidth - W - 2; |
Loc.Top := 0; |
Loc.Left := 0; |
SendMessage(Handle, EM_SETRECTNP, 0, LPARAM(@Loc)); |
SendMessage(Handle, EM_GETRECT, 0, LPARAM(@Loc)); {debug} |
end; |
procedure TEdit.WMSize(var Message: TWMSize); |
var |
MinHeight: Integer; |
begin |
inherited; |
MinHeight := 5; |
{ text edit bug: if size to less than minheight, then edit ctrl does not display the text } |
if Height < MinHeight then |
Height := MinHeight |
else |
if Assigned(FButton) and FButton.Visible then |
begin |
FButton.Width := FButton.Height; |
if NewStyleControls and Ctl3D then |
FButton.SetBounds(Width - FButton.Width - 5, 0, FButton.Width, Height - 5) |
else FButton.SetBounds(Width - FButton.Width, 1, FButton.Width, Height - 1); |
SetEditRect; |
end |
else SetEditRect; |
end; |
{ |
function TEdit.GetMinHeight: Integer; |
var |
DC: HDC; |
SaveFont: HFont; |
I: Integer; |
SysMetrics, Metrics: TTextMetric; |
begin |
DC := GetDC(0); |
GetTextMetrics(DC, SysMetrics); |
SaveFont := SelectObject(DC, Font.Handle); |
GetTextMetrics(DC, Metrics); |
SelectObject(DC, SaveFont); |
ReleaseDC(0, DC); |
I := SysMetrics.tmHeight; |
if I > Metrics.tmHeight then I := Metrics.tmHeight; |
Result := Metrics.tmHeight + I div 4 + GetSystemMetrics(SM_CYBORDER) * 4 + 2; |
end; |
} |
procedure TEdit.aClick(Sender: TObject); |
begin |
if ReadOnly then MessageBeep(0) |
else if Assigned(FOnBtnClick) then FOnBtnClick(Self); |
end; |
procedure TEdit.WMPaste(var Message: TWMPaste); |
begin |
if not FEditorEnabled or ReadOnly then Exit; |
inherited; |
end; |
procedure TEdit.WMCut(var Message: TWMPaste); |
begin |
if not FEditorEnabled or ReadOnly then Exit; |
inherited; |
end; |
procedure TEdit.CMExit(var Message: TCMExit); |
begin |
//FButton.Visible := False; |
inherited; |
end; |
procedure TEdit.CMEnter(var Message: TCMGotFocus); |
begin |
//FButton.Visible := True; |
if AutoSelect and not (csLButtonDown in ControlState) then |
SelectAll; |
inherited; |
end; |
function TEdit.GetAsInteger: Integer; |
begin |
try |
Result := StrToInt(Self.Text); |
except |
Result := 0; |
end; |
end; |
function TEdit.GetBtnVisible: Boolean; |
begin |
Result := FButton.Visible |
end; |
procedure TEdit.SetAsInteger(const Value: Integer); |
begin |
Self.Text := IntToStr(Value) |
end; |
procedure TEdit.SetBtnVisible(const Value: Boolean); |
begin |
FButton.Visible := Value; |
end; |
function TEdit.GetAsFloat: Double; |
begin |
try |
Result := StrToFloat(Self.Text); |
except |
Result := 0; |
end; |
end; |
procedure TEdit.SetAsFloat(const Value: Double); |
begin |
Self.Text := FloatToStr(Value) |
end; |
{ TDelphiXMapEditPropertiesForm } |
procedure TDelphiXMapEditPropertiesForm.LoadCellToForm(MapType: TMapType; ACol, ARow: Integer); |
begin |
LocalMapType := MapType; |
Panel2.Caption := Format('Chip (%d, %d)', [ACol, ARow]); |
chbCollisioned.Checked := MapType.CollisionChip; |
chbAnimated.Checked := MapType.AnimLooped; |
EAnimStart.AsInteger := MapType.AnimStart; |
EAnimCount.AsInteger := MapType.AnimCount; |
EAnimSpeed.AsFloat := MapType.AnimSpeed; |
EAnimPos.AsFloat := MapType.AnimPos; |
rgBlendMode.ItemIndex := Ord(MapType.Rendered); |
EAlpha.AsInteger := MapType.Alpha; |
chbFlip.Checked := (rmfFlip in MapType.MirrorFlip); |
chbMirror.Checked := (rmfMirror in MapType.MirrorFlip); |
end; |
function TDelphiXMapEditPropertiesForm.SaveCellFromForm(ACol, ARow: Integer): TMapType; |
begin |
Result := LocalMapType; |
Result.CollisionChip := chbCollisioned.Checked; |
Result.AnimLooped := chbAnimated.Checked; |
Result.AnimStart := EAnimStart.AsInteger; |
Result.AnimCount := EAnimCount.AsInteger; |
Result.AnimSpeed := EAnimSpeed.AsInteger; |
Result.AnimPos := EAnimPos.AsInteger; |
Result.Rendered := TRenderType(rgBlendMode.ItemIndex); |
Result.Alpha := EAlpha.AsInteger; |
Result.MirrorFlip := []; |
if chbFlip.Checked then Result.MirrorFlip := Result.MirrorFlip + [rmfFlip]; |
if chbMirror.Checked then Result.MirrorFlip := Result.MirrorFlip + [rmfMirror]; |
end; |
procedure TDelphiXMapEditPropertiesForm.btnOKClick(Sender: TObject); |
begin |
Tag := 1; |
Panel2.Color := {$IFDEF VER6UP}clMoneyGreen{$ELSE}clGreen{$ENDIF}; |
DelphiXMapEditForm.DXBackgroundSprite.Map[FCol, FRow] := SaveCellFromForm(FCol, FRow); |
DelphiXMapEditForm.MapArea.Invalidate; |
btnCancelClick(Sender); |
Hide; |
end; |
procedure TDelphiXMapEditPropertiesForm.btnCancelClick(Sender: TObject); |
begin |
Tag := 0; |
Panel2.Color := {$IFDEF VER6UP}clSkyBlue{$ELSE}clBlue{$ENDIF}; |
end; |
end. |
/VCL_DELPHIX_D6/DXPictEdit.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DXPictEdit.pas |
---|
1,10 → 1,10 |
unit DXPictEdit; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses |
Windows, SysUtils, Classes, Forms, Dialogs, Controls, StdCtrls, ExtCtrls, |
ExtDlgs, DIB, Menus, Graphics, Clipbrd; |
ExtDlgs, DIB, Menus, Graphics, Clipbrd {$IFDEF VER28UP}, PNGImage{$ENDIF}; |
type |
/VCL_DELPHIX_D6/DXPlayFm.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DXRender.pas |
---|
5,7 → 5,18 |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, DirectX; |
Windows, |
{$IfDef StandardDX} |
DirectDraw, |
{$ifdef DX7} |
Direct3D; |
{$endif} |
{$IfDef DX9} |
Direct3D9, Direct3D, D3DX9, {Direct3D8,} DX7toDX8; |
{$EndIf} |
{$Else} |
DirectX; |
{$EndIf} |
const |
DXR_MAXTEXTURE = 4; |
16,6 → 27,15 |
TDXR_Color = DWORD; |
TDXR_SurfaceColor = DWORD; |
{ TDXR_Option } |
PDXR_Option = ^TDXR_Option; |
TDXR_Option = ( |
DXR_OPTION_VERSION, |
DXR_OPTION_MMXENABLE, |
DXR_OPTION_RENDERPRIMITIVES |
); |
{ TDXR_ShadeMode } |
TDXR_ShadeMode = ( |
34,7 → 54,6 |
DXR_BLEND_ONE1_SUB_ONE2, // r=c1-c2 |
DXR_BLEND_ONE2_SUB_ONE1, // r=c2-c1 |
DXR_BLEND_ONE1_MUL_ONE2, // r=c1*c2 |
DXR_BLEND_SRCALPHA1, // r=c1*a1 |
DXR_BLEND_SRCALPHA1_ADD_ONE2, // r=c1*a1+c2 |
DXR_BLEND_ONE2_SUB_SRCALPHA1, // r=c2-c1*a1 |
41,8 → 60,10 |
DXR_BLEND_SRCALPHA1_ADD_INVSRCALPHA2, // r=c1*a1+c2*(1-a2) |
DXR_BLEND_INVSRCALPHA1_ADD_SRCALPHA2, // r=c1*(1-a1)+c2*a2 |
// for lighting |
DXR_BLEND_DECAL, // r=c1 |
DXR_BLEND_DECALALPHA, // r=c1 ra=a2 |
DXR_BLEND_MODULATE, // r=c1*c2 ra=a2 |
DXR_BLEND_MODULATEALPHA, // r=c1*c2 |
DXR_BLEND_ADD // r=c1+c2 ra=a2 |
); |
50,7 → 71,9 |
TDXR_TextureFilter = ( |
DXR_TEXTUREFILTER_NEAREST, |
DXR_TEXTUREFILTER_LINEAR |
DXR_TEXTUREFILTER_LINEAR, |
DXR_TEXTUREFILTER_MIPMAP_NEAREST, |
DXR_TEXTUREFILTER_MIPMAP_LINEAR |
); |
{ TDXR_TextureAddress } |
60,6 → 83,19 |
DXR_TEXTUREADDRESS_DONOTCLIP // tx=tx ty=ty |
); |
{ TDXR_CmpFunc } |
TDXR_CmpFunc = ( |
DXR_CMPFUNC_NEVER, |
DXR_CMPFUNC_LESS, |
DXR_CMPFUNC_EQUAL, |
DXR_CMPFUNC_LESSEQUAL, |
DXR_CMPFUNC_GREATER, |
DXR_CMPFUNC_NOTEQUAL, |
DXR_CMPFUNC_GREATEREQUAL, |
DXR_CMPFUNC_ALWAYS |
); |
{ TDXR_ColorType } |
TDXR_ColorType = ( |
89,6 → 125,7 |
Bits: Pointer; // Pointer to pixeldata(x:0 y:0) |
Pitch: Integer; // Offset of next scanline |
PitchBit: Integer; // Offset of next scanline (Number of bit) |
MipmapChain: PDXR_Surface; |
case Integer of |
0: ( |
{ Indexed color } |
113,6 → 150,7 |
sx: TDXR_Value; // Screen coordinates |
sy: TDXR_Value; |
sz: TDXR_Value; |
rhw: TDXR_Value; // 1/sz |
color: TDXR_Color; |
specular: TDXR_Color; |
tu, tv: array[0..DXR_MAXTEXTURE-1] of TDXR_Value; |
145,6 → 183,7 |
ColorKeyEnable: Boolean; |
ColorKey: TDXR_SurfaceColor; |
TextureAddress: TDXR_TextureAddress; |
BumpTexture: Integer; |
end; |
{ TDXR_Cull } |
167,19 → 206,26 |
TextureEnable: Boolean; |
TextureList: array[0..DXR_MAXTEXTURE-1] of TDXR_TextureLayer; |
TextureFilter: TDXR_TextureFilter; |
EnableDrawLine: DWORD; |
ZBuffer: PDXR_Surface; |
ZFunc: TDXR_CmpFunc; |
ZWriteEnable: Boolean; |
EnableDrawLine: Integer; |
end; |
function dxrGetOption(Option: TDXR_Option): DWORD; |
procedure dxrSetOption(Option: TDXR_Option; Value: DWORD); |
procedure dxrMakeIndexedSurface(var Surface: TDXR_Surface; Width, Height, BitCount: DWORD; |
Bits: Pointer; pitch: Integer; idx_index, idx_alpha: DWORD); |
procedure dxrMakeRGBSurface(var Surface: TDXR_Surface; Width, Height, BitCount: DWORD; |
Bits: Pointer; pitch: Integer; rgb_red, rgb_green, rgb_blue, rgb_alpha: DWORD); |
function dxrScanLine(const Surface: TDXR_Surface; y: DWORD): Pointer; |
procedure dxrZBufferClear(const Surface: TDXR_Surface); |
function dxrDDSurfaceLock(DDSurface: IDirectDrawSurface; var Surface: TDXR_Surface): Boolean; |
function dxrDDSurfaceLock2(DDSurface: IDirectDrawSurface; var ddsd: TDDSurfaceDesc; |
var Surface: TDXR_Surface): Boolean; |
procedure dxrDDSurfaceUnLock(DDSurface: IDirectDrawSurface; const Surface: TDXR_Surface); |
function dxrDDSurfaceLock(DDSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface{$ELSE}IDirectDrawSurface7{$ENDIF}; var Surface: TDXR_Surface): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function dxrDDSurfaceLock2(DDSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface{$ELSE}IDirectDrawSurface7{$ENDIF}; var ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
var Surface: TDXR_Surface): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure dxrDDSurfaceUnLock(DDSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface{$ELSE}IDirectDrawSurface7{$ENDIF}; const Surface: TDXR_Surface); {$IFDEF VER9UP}inline;{$ENDIF} |
procedure dxrDefRenderStates(var States: TDXR_RenderStates); |
220,19 → 266,6 |
PInteger = ^Integer; |
{ TDXR_CmpFunc } |
TDXR_CmpFunc = ( |
DXR_CMPFUNC_NEVER, |
DXR_CMPFUNC_LESS, |
DXR_CMPFUNC_EQUAL, |
DXR_CMPFUNC_LESSEQUAL, |
DXR_CMPFUNC_GREATER, |
DXR_CMPFUNC_NOTEQUAL, |
DXR_CMPFUNC_GREATEREQUAL, |
DXR_CMPFUNC_ALWAYS |
); |
{ TDXRMachine } |
TDXRMachine_TreeType = ( |
240,6 → 273,9 |
DXR_TREETYPE_LOADCOLOR, // Load vertex color |
DXR_TREETYPE_LOADCONSTCOLOR, // Load constant color |
DXR_TREETYPE_LOADTEXTURE, // Load texel |
DXR_TREETYPE_LOADBUMPTEXTURE,// Load texel with Bump mapping |
// dx := nx + (BumpTexture[nx-1, ny]-BumpTexture[nx+1, ny]); |
// dy := ny + (BumpTexture[nx, ny-1]-BumpTexture[nx, ny+1]); |
DXR_TREETYPE_LOADDESTPIXEL, // Load dest pixel |
DXR_TREETYPE_BLEND // Blend color |
); |
284,10 → 320,23 |
DefaultColor: TDXRMachine_Color; |
end; |
TDXRMachine_Reg_RHW = record |
Enable: Boolean; |
nRHW: TDXRMachine_Int64; |
iRHW: TDXRMachine_Int64; |
end; |
TDXRMachine_Reg_Dither = record |
Enable: Boolean; |
end; |
TDXRMachine_Reg_ZBuffer = record |
Enable: Boolean; |
Surface: PDXR_Surface; |
CmpFunc: TDXR_CmpFunc; |
WriteEnable: Boolean; |
end; |
TDXRMachine_Reg_Axis = record |
Axis: TDXRMachine_Axis; |
IncEnable: Boolean; |
309,6 → 358,10 |
DXR_TREETYPE_LOADTEXTURE: ( |
Texture: Integer |
); |
DXR_TREETYPE_LOADBUMPTEXTURE: ( |
_Texture: Integer; |
BumpTexture: Integer; |
); |
DXR_TREETYPE_LOADDESTPIXEL: ( |
); |
DXR_TREETYPE_BLEND: ( |
326,11 → 379,15 |
FTreeCount: Integer; |
FTreeList: array[0..127] of TDXRMachine_Tree; |
FMMXUsed: Boolean; |
F_ZBuf: Pointer; |
F_BiLinearAxis: TDXRMachine_Axis; |
F_BiLinearCol1: TDXRMachine_Color; |
F_BiLinearCol2: TDXRMachine_Color; |
F_BiLinearCol3: TDXRMachine_Color; |
F_BiLinearCol4: TDXRMachine_Color; |
F_BumpAxis: TDXRMachine_Axis; |
F_BumpAxis2: TDXRMachine_Axis; |
F_BumpTempCol: DWORD; |
FStack: array[0..255] of TDXRMachine_Color; |
procedure GenerateCode(var Code: Pointer; Tree: PDXRMachine_Tree); |
public |
342,16 → 399,19 |
TextureIndex: array[0..7] of Integer; |
TextureIndexCount: Integer; |
Dither: TDXRMachine_Reg_Dither; |
ZBuffer: TDXRMachine_Reg_ZBuffer; |
Axis: TDXRMachine_Reg_Axis; |
RHW: TDXRMachine_Reg_RHW; |
constructor Create; |
destructor Destroy; override; |
function CreateTree: PDXRMachine_Tree; |
function CreateTree2(Typ: TDXRMachine_TreeType): PDXRMachine_Tree; |
function CreateTree_LoadColor(Color: DWORD): PDXRMachine_Tree; |
function CreateTree_LoadConstColor(R, G, B, A: Byte): PDXRMachine_Tree; |
function CreateTree_LoadTexture(Texture: DWORD): PDXRMachine_Tree; |
function CreateTree_Blend(Blend: TDXR_Blend; BlendTree1, BlendTree2: PDXRMachine_Tree): PDXRMachine_Tree; |
procedure Initialize; |
function CreateTree: PDXRMachine_Tree; {$IFDEF VER9UP}inline;{$ENDIF} |
function CreateTree2(Typ: TDXRMachine_TreeType): PDXRMachine_Tree; {$IFDEF VER9UP}inline;{$ENDIF} |
function CreateTree_LoadColor(Color: DWORD): PDXRMachine_Tree; {$IFDEF VER9UP}inline;{$ENDIF} |
function CreateTree_LoadConstColor(R, G, B, A: Byte): PDXRMachine_Tree; {$IFDEF VER9UP}inline;{$ENDIF} |
function CreateTree_LoadTexture(Texture: DWORD): PDXRMachine_Tree; {$IFDEF VER9UP}inline;{$ENDIF} |
function CreateTree_LoadBumpTexture(Texture, BumpTexture: DWORD): PDXRMachine_Tree; {$IFDEF VER9UP}inline;{$ENDIF} |
function CreateTree_Blend(Blend: TDXR_Blend; BlendTree1, BlendTree2: PDXRMachine_Tree): PDXRMachine_Tree; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure Initialize; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure Compile(Tree: PDXRMachine_Tree); |
procedure Run(Count: Integer); |
property Compiled: Boolean read FCompiled write FCompiled; |
418,10 → 478,42 |
@@exit: |
pop ebx |
end; |
UseMMX := CPUIDFeatures and CPUIDF_MMX<>0; |
end; |
function dxrGetOption(Option: TDXR_Option): DWORD; |
begin |
Result := 0; |
case Option of |
DXR_OPTION_VERSION: |
begin |
Result := 1*100 + 0; |
end; |
DXR_OPTION_MMXENABLE: |
begin |
Result := DWORD(LongBool(UseMMX)); |
end; |
DXR_OPTION_RENDERPRIMITIVES: |
begin |
Result := RenderPrimitiveCount; |
end; |
end; |
end; |
procedure dxrSetOption(Option: TDXR_Option; Value: DWORD); |
begin |
case Option of |
DXR_OPTION_MMXENABLE: |
begin |
UseMMX := LongBool(Value) and (CPUIDFeatures and CPUIDF_MMX<>0); |
end; |
DXR_OPTION_RENDERPRIMITIVES: |
begin |
RenderPrimitiveCount := Value; |
end; |
end; |
end; |
function GetBitCount(B: Integer): DWORD; |
begin |
Result := 31; |
538,14 → 630,14 |
Result := False; |
end; |
function dxrDDSurfaceLock(DDSurface: IDirectDrawSurface; var Surface: TDXR_Surface): Boolean; |
function dxrDDSurfaceLock(DDSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface{$ELSE}IDirectDrawSurface7{$ENDIF}; var Surface: TDXR_Surface): Boolean; |
var |
ddsd: TDDSurfaceDesc; |
ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
begin |
Result := dxrDDSurfaceLock2(DDSurface, ddsd, Surface); |
end; |
function dxrDDSurfaceLock2(DDSurface: IDirectDrawSurface; var ddsd: TDDSurfaceDesc; |
function dxrDDSurfaceLock2(DDSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface{$ELSE}IDirectDrawSurface7{$ENDIF}; var ddsd: {$IFDEF D3D_deprecated}TDDSurfaceDesc{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
var Surface: TDXR_Surface): Boolean; |
const |
DDPF_PALETTEINDEXED = DDPF_PALETTEINDEXED1 or DDPF_PALETTEINDEXED2 or |
562,12 → 654,12 |
ddsd.lpSurface, ddsd.lPitch, (1 shl ddsd.ddpfPixelFormat.dwRGBBitCount)-1, 0); |
end else |
begin |
{if ddsd.ddpfPixelFormat.dwFlags and DDPF_ALPHAPIXELS<>0 then |
if ddsd.ddpfPixelFormat.dwFlags and DDPF_ALPHAPIXELS<>0 then |
begin |
dxrMakeRGBSurface(Surface, ddsd.dwWidth, ddsd.dwHeight, ddsd.ddpfPixelFormat.dwRGBBitCount, |
ddsd.lpSurface, ddsd.lPitch, ddsd.ddpfPixelFormat.dwRBitMask, ddsd.ddpfPixelFormat.dwGBitMask, |
ddsd.ddpfPixelFormat.dwBBitMask, ddsd.ddpfPixelFormat.dwRGBAlphaBitMask); |
end else} |
end else |
begin |
dxrMakeRGBSurface(Surface, ddsd.dwWidth, ddsd.dwHeight, ddsd.ddpfPixelFormat.dwRGBBitCount, |
ddsd.lpSurface, ddsd.lPitch, ddsd.ddpfPixelFormat.dwRBitMask, ddsd.ddpfPixelFormat.dwGBitMask, |
577,7 → 669,7 |
end; |
end; |
procedure dxrDDSurfaceUnLock(DDSurface: IDirectDrawSurface; const Surface: TDXR_Surface); |
procedure dxrDDSurfaceUnLock(DDSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface{$ELSE}IDirectDrawSurface7{$ENDIF}; const Surface: TDXR_Surface); |
begin |
DDSurface.Unlock(Surface.Bits); |
end; |
587,6 → 679,14 |
Result := Pointer(Integer(Surface.Bits)+Surface.Pitch*Integer(y)); |
end; |
procedure dxrZBufferClear(const Surface: TDXR_Surface); |
var |
i: Integer; |
begin |
for i:=0 to Surface.Height-1 do |
FillChar(dxrScanLine(Surface, i)^, Abs(Surface.Pitch), $FF); |
end; |
{ TDXRMachine } |
constructor TDXRMachine.Create; |
616,7 → 716,9 |
FillChar(ColorList, SizeOf(ColorList), 0); |
FillChar(TextureList, SizeOf(TextureList), 0); |
FillChar(Dither, SizeOf(Dither), 0); |
FillChar(ZBuffer, SizeOf(ZBuffer), 0); |
FillChar(Axis, SizeOf(Axis), 0); |
FillChar(RHW, SizeOf(RHW), 0); |
end; |
function TDXRMachine.CreateTree: PDXRMachine_Tree; |
656,6 → 758,14 |
Result.Texture := Texture; |
end; |
function TDXRMachine.CreateTree_LoadBumpTexture(Texture, BumpTexture: DWORD): PDXRMachine_Tree; |
begin |
Result := CreateTree; |
Result.Typ := DXR_TREETYPE_LOADBUMPTEXTURE; |
Result.Texture := Texture; |
Result.BumpTexture := BumpTexture; |
end; |
function TDXRMachine.CreateTree_Blend(Blend: TDXR_Blend; BlendTree1, BlendTree2: PDXRMachine_Tree): PDXRMachine_Tree; |
begin |
Result := CreateTree; |
710,10 → 820,7 |
Col2_1 := [chRed, chGreen, chBlue, chAlpha]; |
Col2_2 := []; |
end; |
DXR_BLEND_ONE1_ADD_ONE2, |
DXR_BLEND_ONE1_SUB_ONE2, |
DXR_BLEND_ONE2_SUB_ONE1, |
DXR_BLEND_ONE1_MUL_ONE2: |
DXR_BLEND_ONE1_ADD_ONE2, DXR_BLEND_ONE1_SUB_ONE2: |
begin |
Col1_1 := [chRed, chGreen, chBlue, chAlpha]; |
Col1_2 := []; |
720,6 → 827,13 |
Col2_1 := [chRed, chGreen, chBlue, chAlpha]; |
Col2_2 := []; |
end; |
DXR_BLEND_ONE2_SUB_ONE1, DXR_BLEND_ONE1_MUL_ONE2: |
begin |
Col1_1 := [chRed, chGreen, chBlue, chAlpha]; |
Col1_2 := []; |
Col2_1 := [chRed, chGreen, chBlue, chAlpha]; |
Col2_2 := []; |
end; |
DXR_BLEND_SRCALPHA1: |
begin |
Col1_1 := [chRed, chGreen, chBlue]; |
756,6 → 870,13 |
Col2_2 := []; |
end; |
DXR_BLEND_DECAL: |
begin |
Col1_1 := [chRed, chGreen, chBlue, chAlpha]; |
Col1_2 := []; |
Col2_1 := []; |
Col2_2 := []; |
end; |
DXR_BLEND_DECALALPHA: |
begin |
Col1_1 := [chRed, chGreen, chBlue]; |
765,6 → 886,13 |
end; |
DXR_BLEND_MODULATE: |
begin |
Col1_1 := [chRed, chGreen, chBlue, chAlpha]; |
Col1_2 := []; |
Col2_1 := [chRed, chGreen, chBlue, chAlpha]; |
Col2_2 := []; |
end; |
DXR_BLEND_MODULATEALPHA: |
begin |
Col1_1 := [chRed, chGreen, chBlue]; |
Col1_2 := [chAlpha]; |
Col2_1 := [chRed, chGreen, chBlue]; |
797,6 → 925,10 |
begin |
// Load texel |
end; |
DXR_TREETYPE_LOADBUMPTEXTURE: |
begin |
// Load texel with Bump mapping |
end; |
DXR_TREETYPE_LOADDESTPIXEL: |
begin |
// Load dest pixel |
816,7 → 948,7 |
begin |
c := Tree.Channels; Tree^.Typ := DXR_TREETYPE_LOADBLACK; Tree.Channels := c; |
end else |
if (Tree.Blend in [DXR_BLEND_ONE1]) then |
if (Tree.Blend in [DXR_BLEND_ONE1, DXR_BLEND_DECAL]) then |
begin |
c := Tree.Channels; Tree := Tree.BlendTree1; Tree.Channels := c; |
end else |
824,12 → 956,12 |
begin |
c := Tree.Channels; Tree := Tree.BlendTree2; Tree.Channels := c; |
end else |
if (Tree.Blend in [DXR_BLEND_ONE1_ADD_ONE2, DXR_BLEND_ONE1_SUB_ONE2]) and |
if (Tree.Blend in [DXR_BLEND_ONE1_ADD_ONE2, DXR_BLEND_ONE2_SUB_ONE1]) and |
(Tree.BlendTree2.Typ=DXR_TREETYPE_LOADBLACK) then |
begin |
c := Tree.Channels; Tree := Tree.BlendTree1; Tree.Channels := c; |
end else |
if (Tree.Blend in [DXR_BLEND_ONE1_ADD_ONE2, DXR_BLEND_ONE1_SUB_ONE2]) and |
if (Tree.Blend in [DXR_BLEND_ONE1_ADD_ONE2, DXR_BLEND_ONE2_SUB_ONE1]) and |
(Tree.BlendTree1.Typ=DXR_TREETYPE_LOADBLACK) then |
begin |
c := Tree.Channels; Tree := Tree.BlendTree2; Tree.Channels := c; |
862,6 → 994,14 |
Tree.Channels*GetSurfaceChannels(TextureList[Tree.Texture].Surface^); |
TextureList[Tree.Texture].Enable := TextureList[Tree.Texture].EnableChannels<>[]; |
end; |
DXR_TREETYPE_LOADBUMPTEXTURE: |
begin |
// Load texel with Bump mapping |
TextureList[Tree.Texture].EnableChannels := TextureList[Tree.Texture].EnableChannels + |
Tree.Channels*GetSurfaceChannels(TextureList[Tree.Texture].Surface^); |
TextureList[Tree.Texture].Enable := TextureList[Tree.Texture].EnableChannels<>[]; |
TextureList[Tree.BumpTexture].Enable := True; |
end; |
DXR_TREETYPE_LOADDESTPIXEL: |
begin |
// Load dest pixel |
900,6 → 1040,9 |
Inc(TextureIndexCount); |
end; |
ZBuffer.Enable := ZBuffer.Surface<>nil; |
RHW.Enable := ZBuffer.Enable; |
Axis.IncEnable := Dither.Enable; |
{ Generate X86 code } |
1136,6 → 1279,230 |
end; |
end; |
procedure genInitZBuffer(var Code: Pointer); |
var |
_Axis: Pointer; |
ByteCount, Pitch: DWORD; |
Bits, _ZBuf: Pointer; |
begin |
if not ZBuffer.Enable then Exit; |
_Axis := @Axis.Axis; |
ByteCount := ZBuffer.Surface.BitCount div 8; |
Pitch := ZBuffer.Surface.Pitch; |
Bits := ZBuffer.Surface.Bits; |
_ZBuf := @F_ZBuf; |
asm |
jmp @@EndCode |
@@StartCode: |
mov edx,dword ptr [offset _null]{}@@AxisX: |
imul edx,$11{} @@ByteCount: // States.ZBuffer.BitCount div 8 |
mov eax,dword ptr [offset _null]{}@@AxisY: |
imul eax,$11111111{} @@Pitch: // States.ZBuffer.pitch |
add eax,$11111111{} @@Bits: // States.ZBuffer.Bits |
add eax,edx |
mov dword ptr [offset _null],eax{}@@_ZBuf: |
@@EndCode: |
{$I DXRender.inc} |
{ @@AxisX } |
mov eax,_Axis; add eax,TDXRMachine_Axis.X |
mov edx,offset @@AxisX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@AxisY } |
mov eax,_Axis; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@AxisY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@ByteCount } |
mov eax,ByteCount |
mov edx,offset @@ByteCount-1 |
sub edx,offset @@StartCode |
mov byte ptr [ecx+edx],al |
{ @@Pitch } |
mov eax,Pitch |
mov edx,offset @@Pitch-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Bits } |
mov eax,Bits |
mov edx,offset @@Bits-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_ZBuf } |
mov eax,_ZBuf |
mov edx,offset @@_ZBuf-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end; |
procedure genZBufferTest(var Code: Pointer); |
var |
_ZBuf, _RHW: Pointer; |
begin |
if not ZBuffer.Enable then Exit; |
_ZBuf := @F_ZBuf; |
_RHW := @RHW.nRHW; |
asm |
jmp @@EndCode |
@@StartCode: |
mov edx,dword ptr [offset _null]{}@@_ZBuf: |
mov ebx,dword ptr [offset _null]{}@@_RHW: |
@@EndCode: |
{$I DXRender.inc} |
{ @@_ZBuf } |
mov eax,_ZBuf |
mov edx,offset @@_ZBuf-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_RHW } |
mov eax,_RHW; add eax,4 |
mov edx,offset @@_RHW-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
if ZBuffer.CmpFunc<>DXR_CMPFUNC_ALWAYS then |
begin |
case ZBuffer.Surface.BitCount of |
8: begin |
asm |
jmp @@EndCode |
@@StartCode: |
movzx eax,byte ptr [edx] |
@@EndCode: |
{$I DXRender.inc} |
end; |
end; |
16: begin |
asm |
jmp @@EndCode |
@@StartCode: |
movzx eax,word ptr [edx] |
@@EndCode: |
{$I DXRender.inc} |
end; |
end; |
24: begin |
asm |
jmp @@EndCode |
@@StartCode: |
movzx ax,byte ptr [edx+2] |
shl eax,16 |
mov ax,word ptr [edx] |
@@EndCode: |
{$I DXRender.inc} |
end; |
end; |
32: begin |
asm |
jmp @@EndCode |
@@StartCode: |
mov eax,dword ptr [edx] |
@@EndCode: |
{$I DXRender.inc} |
end; |
end; |
end; |
asm |
jmp @@EndCode |
@@StartCode: |
cmp eax,ebx |
@@EndCode: |
{$I DXRender.inc} |
end; |
genCmpFunc(Code, ZBuffer.CmpFunc, SkipAddress); |
end; |
if ZBuffer.WriteEnable then |
begin |
case ZBuffer.Surface.BitCount of |
8: begin |
asm |
jmp @@EndCode |
@@StartCode: |
mov byte ptr [edx],bl |
@@EndCode: |
{$I DXRender.inc} |
end; |
end; |
16: begin |
asm |
jmp @@EndCode |
@@StartCode: |
mov word ptr [edx],bx |
@@EndCode: |
{$I DXRender.inc} |
end; |
end; |
24: begin |
asm |
jmp @@EndCode |
@@StartCode: |
mov word ptr [edx],bx |
bswap ebx |
mov byte ptr [edx+2],bh |
@@EndCode: |
{$I DXRender.inc} |
end; |
end; |
32: begin |
asm |
jmp @@EndCode |
@@StartCode: |
mov dword ptr [edx],ebx |
@@EndCode: |
{$I DXRender.inc} |
end; |
end; |
end; |
end; |
end; |
procedure genUpdateZBufferAddress(var Code: Pointer); |
var |
ByteCount: DWORD; |
_ZBuf: Pointer; |
begin |
if not ZBuffer.Enable then Exit; |
ByteCount := ZBuffer.Surface.BitCount shr 3; |
_ZBuf := @F_ZBuf; |
asm |
jmp @@EndCode |
@@StartCode: |
add dword ptr [offset _null],$11{}@@_ZBuf: |
@@EndCode: |
{$I DXRender.inc} |
{ @@_ZBuf } |
mov eax,ByteCount |
mov edx,offset @@_ZBuf-1 |
sub edx,offset @@StartCode |
mov byte ptr [ecx+edx],al |
{ @@_ZBuf } |
mov eax,_ZBuf |
mov edx,offset @@_ZBuf-5 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end; |
procedure genReadDestPixel(var Code: Pointer); |
begin |
case Dest.BitCount of |
2623,19 → 2990,19 |
mov dword ptr [ecx+edx],eax |
{ @@DestR } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@DestR-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@DestG } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@DestG-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@DestB } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@DestB-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2678,19 → 3045,19 |
mov dword ptr [ecx+edx],eax |
{ @@DestR } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@DestR-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@DestG } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@DestG-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@DestB } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@DestB-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2732,19 → 3099,19 |
mov dword ptr [ecx+edx],eax |
{ @@DestR } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@DestR-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@DestG } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@DestG-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@DestB } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@DestB-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2761,7 → 3128,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@DestR } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R) |
mov edx,offset @@DestR-6 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2772,7 → 3139,7 |
mov word ptr [ecx+edx],ax |
{ @@DestG } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G) |
mov edx,offset @@DestG-6 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2783,7 → 3150,7 |
mov word ptr [ecx+edx],ax |
{ @@DestB } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B) |
mov edx,offset @@DestB-6 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2825,7 → 3192,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2854,7 → 3221,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2869,7 → 3236,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A) |
mov edx,offset @@Dest-6 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2912,7 → 3279,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2941,7 → 3308,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2956,7 → 3323,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R) |
mov edx,offset @@Dest-6 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
2998,7 → 3365,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3027,7 → 3394,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3042,7 → 3409,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G) |
mov edx,offset @@Dest-6 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3084,7 → 3451,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3113,7 → 3480,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3128,7 → 3495,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B) |
mov edx,offset @@Dest-6 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3170,7 → 3537,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3199,7 → 3566,7 |
mov byte ptr [ecx+edx],al |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3214,7 → 3581,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A) |
mov edx,offset @@Dest-6 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3254,7 → 3621,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3283,7 → 3650,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3318,7 → 3685,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3347,7 → 3714,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3382,7 → 3749,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3411,7 → 3778,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3446,7 → 3813,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3475,7 → 3842,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3535,7 → 3902,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3625,7 → 3992,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3715,7 → 4082,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3805,7 → 4172,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Src } |
mov eax,Src; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Src; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Src-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
3889,10 → 4256,13 |
procedure genEncodeColor2(var Code: Pointer; const Surface: TDXR_Surface; Src: PDXRMachine_Color; EnableChannels: TDXRColorChannels); |
begin |
if Dither.Enable then |
begin |
genEncodeColor_with_Dither(Code, Surface, Src, @Axis.Axis, EnableChannels) |
else |
end else |
begin |
genEncodeColor(Code, Surface, Src, EnableChannels); |
end; |
end; |
procedure genColorKey(var Code: Pointer; const Texture: TDXRMachine_Reg_Texture); |
var |
4238,25 → 4608,25 |
@@EndCode: |
{$I DXRender.inc} |
{ @@_BiLinearCol1 } |
mov eax,_BiLinearCol1; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,_BiLinearCol1; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@_BiLinearCol1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol2 } |
mov eax,_BiLinearCol2; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,_BiLinearCol2; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@_BiLinearCol2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol3 } |
mov eax,_BiLinearCol3; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,_BiLinearCol3; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@_BiLinearCol3-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol4 } |
mov eax,_BiLinearCol4; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,_BiLinearCol4; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@_BiLinearCol4-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
4274,7 → 4644,7 |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
4314,25 → 4684,25 |
@@EndCode: |
{$I DXRender.inc} |
{ @@_BiLinearCol1 } |
mov eax,_BiLinearCol1; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,_BiLinearCol1; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@_BiLinearCol1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol2 } |
mov eax,_BiLinearCol2; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,_BiLinearCol2; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@_BiLinearCol2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol3 } |
mov eax,_BiLinearCol3; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,_BiLinearCol3; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@_BiLinearCol3-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol4 } |
mov eax,_BiLinearCol4; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,_BiLinearCol4; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@_BiLinearCol4-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
4350,7 → 4720,7 |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
4390,25 → 4760,25 |
@@EndCode: |
{$I DXRender.inc} |
{ @@_BiLinearCol1 } |
mov eax,_BiLinearCol1; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,_BiLinearCol1; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@_BiLinearCol1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol2 } |
mov eax,_BiLinearCol2; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,_BiLinearCol2; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@_BiLinearCol2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol3 } |
mov eax,_BiLinearCol3; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,_BiLinearCol3; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@_BiLinearCol3-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol4 } |
mov eax,_BiLinearCol4; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,_BiLinearCol4; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@_BiLinearCol4-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
4426,7 → 4796,7 |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
4466,25 → 4836,25 |
@@EndCode: |
{$I DXRender.inc} |
{ @@_BiLinearCol1 } |
mov eax,_BiLinearCol1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,_BiLinearCol1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@_BiLinearCol1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol2 } |
mov eax,_BiLinearCol2; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,_BiLinearCol2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@_BiLinearCol2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol3 } |
mov eax,_BiLinearCol3; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,_BiLinearCol3; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@_BiLinearCol3-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@_BiLinearCol4 } |
mov eax,_BiLinearCol4; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,_BiLinearCol4; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@_BiLinearCol4-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
4502,7 → 4872,7 |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
4514,12 → 4884,252 |
procedure genReadTexture(var Code: Pointer; Dest: PDXRMachine_Color; |
const Texture: TDXRMachine_Reg_Texture; EnableChannels: TDXRColorChannels); |
begin |
if Texture.Filter in [DXR_TEXTUREFILTER_LINEAR] then |
if Texture.Filter in [DXR_TEXTUREFILTER_LINEAR, DXR_TEXTUREFILTER_MIPMAP_LINEAR] then |
genReadTexture_BiLinear(Code, Dest, Texture, Texture.nAxis, EnableChannels) |
else |
genReadTexture_Nearest(Code, Dest, Texture, Texture.nAxis, EnableChannels); |
end; |
procedure genReadBumpTexture_Nearest(var Code: Pointer; Dest: PDXRMachine_Color; |
const Texture, BumpTexture: TDXRMachine_Reg_Texture; EnableChannels: TDXRColorChannels); |
var |
_Axis, _Axis2, _iAxis, _BumpAxis, _BumpAxis2: PDXRMachine_Axis; |
_BumpTempCol: Pointer; |
begin |
if EnableChannels=[] then Exit; |
_Axis := @BumpTexture.nAxis; |
_Axis2 := @Texture.nAxis; |
_iAxis := @BumpTexture.iAxis; |
_BumpAxis := @F_BumpAxis; |
_BumpAxis2 := @F_BumpAxis2; |
_BumpTempCol := @F_BumpTempCol; |
{ X } |
asm |
jmp @@EndCode |
@@StartCode: |
mov eax,dword ptr [offset _null]{}@@TexX: |
mov edx,dword ptr [offset _null]{}@@TexY: |
sub eax,dword ptr [offset _null]{}@@iTexX: |
mov dword ptr [offset _null],edx{}@@AxisY: |
mov dword ptr [offset _null],eax{}@@AxisX: |
@@EndCode: |
{$I DXRender.inc} |
{ @@TexX } |
mov eax,_Axis; add eax,TDXRMachine_Axis.X |
mov edx,offset @@TexX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@TexY } |
mov eax,_Axis; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@TexY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@iTexX } |
mov eax,_iAxis; add eax,TDXRMachine_Axis.X |
mov edx,offset @@iTexX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@AxisX } |
mov eax,_BumpAxis; add eax,TDXRMachine_Axis.X |
mov edx,offset @@AxisX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@AxisY } |
mov eax,_BumpAxis; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@AxisY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
genReadSurfacePixel(Code, BumpTexture, _BumpAxis); |
asm |
jmp @@EndCode |
@@StartCode: |
mov dword ptr [offset _null],eax{}@@BumpTempCol: |
@@EndCode: |
{$I DXRender.inc} |
{ @@BumpTempCol } |
mov eax,_BumpTempCol |
mov edx,offset @@BumpTempCol-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
asm |
jmp @@EndCode |
@@StartCode: |
mov edx,dword ptr [offset _null]{}@@iAxisX: |
add dword ptr [offset _null],edx{}@@AxisX: |
@@EndCode: |
{$I DXRender.inc} |
{ @@iAxisX } |
mov eax,_iAxis; add eax,TDXRMachine_Axis.X |
mov edx,offset @@iAxisX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@AxisX } |
mov eax,_BumpAxis; add eax,TDXRMachine_Axis.X |
mov edx,offset @@AxisX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
genReadSurfacePixel(Code, BumpTexture, _BumpAxis); |
asm |
jmp @@EndCode |
@@StartCode: |
sub eax,dword ptr [offset _null]{}@@BumpTempCol: |
sal eax,16 |
add eax,dword ptr [offset _null]{}@@TexX: |
mov dword ptr [offset _null],eax{}@@AxisX: |
@@EndCode: |
{$I DXRender.inc} |
{ @@BumpTempCol } |
mov eax,_BumpTempCol |
mov edx,offset @@BumpTempCol-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@TexX } |
mov eax,_Axis2; add eax,TDXRMachine_Axis.X |
mov edx,offset @@TexX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@AxisX } |
mov eax,_BumpAxis2; add eax,TDXRMachine_Axis.X |
mov edx,offset @@AxisX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
{ Y } |
asm |
jmp @@EndCode |
@@StartCode: |
mov eax,dword ptr [offset _null]{}@@TexX: |
mov edx,dword ptr [offset _null]{}@@TexY: |
sub edx,dword ptr [offset _null]{}@@iTexY: |
mov dword ptr [offset _null],eax{}@@AxisX: |
mov dword ptr [offset _null],edx{}@@AxisY: |
@@EndCode: |
{$I DXRender.inc} |
{ @@TexX } |
mov eax,_Axis; add eax,TDXRMachine_Axis.X |
mov edx,offset @@TexX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@TexY } |
mov eax,_Axis; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@TexY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@iTexY } |
mov eax,_iAxis; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@iTexY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@AxisX } |
mov eax,_BumpAxis; add eax,TDXRMachine_Axis.X |
mov edx,offset @@AxisX-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@AxisY } |
mov eax,_BumpAxis; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@AxisY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
genReadSurfacePixel(Code, BumpTexture, _BumpTempCol); |
asm |
jmp @@EndCode |
@@StartCode: |
mov dword ptr [offset _null],eax{}@@BumpTempCol: |
@@EndCode: |
{$I DXRender.inc} |
{ @@BumpTempCol } |
mov eax,_BumpTempCol |
mov edx,offset @@BumpTempCol-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
asm |
jmp @@EndCode |
@@StartCode: |
mov edx,dword ptr [offset _null]{}@@iAxisY: |
sal edx,1 |
sub dword ptr [offset _null],edx{}@@AxisY: |
@@EndCode: |
{$I DXRender.inc} |
{ @@iAxisY } |
mov eax,_iAxis; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@iAxisY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@AxisY } |
mov eax,_BumpAxis; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@AxisY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
genReadSurfacePixel(Code, BumpTexture, _BumpAxis); |
asm |
jmp @@EndCode |
@@StartCode: |
sub eax,dword ptr [offset _null]{}@@BumpTempCol: |
sal eax,16 |
add eax,dword ptr [offset _null]{}@@TexY: |
mov dword ptr [offset _null],eax{}@@AxisY: |
@@EndCode: |
{$I DXRender.inc} |
{ @@BumpTempCol } |
mov eax,_BumpTempCol |
mov edx,offset @@BumpTempCol-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@TexX } |
mov eax,_Axis2; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@TexY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@AxisX } |
mov eax,_BumpAxis2; add eax,TDXRMachine_Axis.Y |
mov edx,offset @@AxisY-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
genReadTexture_Nearest(Code, Dest, Texture, _BumpAxis2^, EnableChannels); |
end; |
procedure genReadBumpTexture(var Code: Pointer; Dest: PDXRMachine_Color; |
const Texture, BumpTexture: TDXRMachine_Reg_Texture; EnableChannels: TDXRColorChannels); |
begin |
{if Texture.Filter in [DXR_TEXTUREFILTER_LINEAR, DXR_TEXTUREFILTER_MIPMAP_LINEAR] then |
genReadBumpTexture_BiLinear(Code, Dest, Texture, BumpTexture, EnableChannels) |
else } |
genReadBumpTexture_Nearest(Code, Dest, Texture, BumpTexture, EnableChannels); |
end; |
procedure genUpdateAxis(var Code: Pointer); |
var |
_Axis: Pointer; |
4527,6 → 5137,7 |
if not Axis.IncEnable then Exit; |
_Axis := @Axis.Axis; |
asm |
jmp @@EndCode |
@@StartCode: |
4655,6 → 5266,40 |
nTex := @Texture.nAxis; |
iTex := @Texture.iAxis; |
if UseMMX then |
begin |
FMMXUsed := True; |
asm |
jmp @@EndCode |
@@StartCode: |
db $0F,$6F,$05,$11,$11,$11,$11///movq mm0,qword ptr [$11111111] |
@@nTex: |
db $0F,$FE,$05,$11,$11,$11,$11///paddd mm0,qword ptr [$11111111] |
@@iTex: |
db $0F,$7F,$05,$11,$11,$11,$11///movq qword ptr [$11111111],mm0 |
@@nTex2: |
@@EndCode: |
{$I DXRender.inc} |
{ @@nTex } |
mov eax,nTex |
mov edx,offset @@nTex-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@nTex2 } |
mov eax,nTex |
mov edx,offset @@nTex2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@iTex } |
mov eax,iTex |
mov edx,offset @@iTex-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end else |
begin |
if Texture.iAxisConstant then |
begin |
if Texture.iAxis.X<>0 then |
4699,7 → 5344,7 |
end; |
end; |
end else |
begin |
//begin |
if UseMMX then |
begin |
FMMXUsed := True; |
4734,6 → 5379,7 |
end; |
end else |
begin |
asm |
jmp @@EndCode |
@@StartCode: |
4772,6 → 5418,51 |
end; |
end; |
procedure genUpdateRHW(var Code: Pointer); |
var |
nRHW, iRHW: Pointer; |
begin |
if not RHW.Enable then Exit; |
nRHW := @RHW.nRHW; |
iRHW := @RHW.iRHW; |
asm |
jmp @@EndCode |
@@StartCode: |
// 64 bit addition |
mov eax,dword ptr [offset _null]{}@@iRHW: |
mov edx,dword ptr [offset _null]{}@@iRHW2: |
add dword ptr [offset _null],eax{}@@nRHW: |
adc dword ptr [offset _null],edx{}@@nRHW2: |
@@EndCode: |
{$I DXRender.inc} |
{ @@nRHW } |
mov eax,nRHW |
mov edx,offset @@nRHW-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@nRHW2 } |
mov eax,nRHW; add eax,4 |
mov edx,offset @@nRHW2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@iRHW } |
mov eax,iRHW |
mov edx,offset @@iRHW-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@iRHW } |
mov eax,iRHW; add eax,4 |
mov edx,offset @@iRHW2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end; |
procedure genBlend(var Code: Pointer; Blend: TDXR_Blend; |
Dest, Col1, Col2: PDXRMachine_Color; EnableChannels: TDXRColorChannels; |
ConstChannels1, ConstChannels2: TDXRColorChannels); |
4928,7 → 5619,7 |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
4963,7 → 5654,7 |
begin |
if Dest=Col1 then Exit; |
if UseMMX then |
if UseMMX then //False then//UseMMX then |
begin |
FMMXUsed := True; |
asm |
5072,8 → 5763,9 |
@@StartCode: |
db $0F,$6F,$05,$11,$11,$11,$11/// movq mm0,qword ptr [$11111111] |
@@Col1: |
db $0F,$DD,$05,$11,$11,$11,$11/// paddusw mm0,qword ptr [$11111111] |
db $0F,$6F,$0D,$11,$11,$11,$11///movq mm1,qword ptr [$11111111] |
@@Col2: |
db $0F,$DD,$C1 ///paddusw mm0,mm1 |
db $0F,$7F,$05,$11,$11,$11,$11/// movq qword ptr [$11111111],mm0 |
@@Dest: |
@@EndCode: |
5156,6 → 5848,102 |
end; |
end; |
procedure genBlend_ONE2_SUB_ONE1(var Code: Pointer; Dest, Col1, Col2: PDXRMachine_Color; |
ConstChannels1, ConstChannels12: TDXRColorChannels); |
begin |
if UseMMX then |
begin |
FMMXUsed := True; |
asm |
jmp @@EndCode |
@@StartCode: |
db $0F,$6F,$05,$11,$11,$11,$11///movq mm0,qword ptr [$11111111] |
@@Col1: |
db $0F,$6F,$0D,$11,$11,$11,$11///movq mm1,qword ptr [$11111111] |
@@Col2: |
db $0F,$D9,$C8 ///psubusw mm1,mm0 |
db $0F,$7F,$0D,$11,$11,$11,$11///movq qword ptr [$11111111],mm1 |
@@Dest: |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1 |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2 |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end else |
begin |
{ Red Channel } |
if chRed in EnableChannels then |
begin |
if chRed in ConstChannels1 then |
begin |
Func_col1_Sub_const2(Code, @Dest.R, @Col2.R, @Col1.R); |
end else |
if chRed in ConstChannels2 then |
begin |
Func_const1_Sub_col2(Code, @Dest.R, @Col1.R, @Col2.R); |
end else |
Func_col1_Sub_col2(Code, @Dest.R, @Col2.R, @Col1.R); |
end; |
{ Green Channel } |
if chRed in EnableChannels then |
begin |
if chRed in ConstChannels1 then |
begin |
Func_col1_Sub_const2(Code, @Dest.G, @Col2.G, @Col1.G); |
end else |
if chRed in ConstChannels2 then |
begin |
Func_const1_Sub_col2(Code, @Dest.G, @Col1.G, @Col2.G); |
end else |
Func_col1_Sub_col2(Code, @Dest.G, @Col2.G, @Col1.G); |
end; |
{ Blue Channel } |
if chRed in EnableChannels then |
begin |
if chRed in ConstChannels1 then |
begin |
Func_col1_Sub_const2(Code, @Dest.B, @Col2.B, @Col1.B); |
end else |
if chRed in ConstChannels2 then |
begin |
Func_const1_Sub_col2(Code, @Dest.B, @Col1.B, @Col2.B); |
end else |
Func_col1_Sub_col2(Code, @Dest.B, @Col2.B, @Col1.B); |
end; |
{ Alpha Channel } |
if chRed in EnableChannels then |
begin |
if chRed in ConstChannels1 then |
begin |
Func_col1_Sub_const2(Code, @Dest.A, @Col2.A, @Col1.A); |
end else |
if chRed in ConstChannels2 then |
begin |
Func_const1_Sub_col2(Code, @Dest.A, @Col1.A, @Col2.A); |
end else |
Func_col1_Sub_col2(Code, @Dest.A, @Col2.A, @Col1.A); |
end; |
end; |
end; |
procedure genBlend_ONE1_SUB_ONE2(var Code: Pointer; Dest, Col1, Col2: PDXRMachine_Color; |
ConstChannels1, ConstChannels12: TDXRColorChannels); |
begin |
5303,19 → 6091,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5333,19 → 6121,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5363,19 → 6151,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5393,19 → 6181,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5424,7 → 6212,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5467,13 → 6255,13 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5491,13 → 6279,13 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5542,13 → 6330,13 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5566,13 → 6354,13 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5591,7 → 6379,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5611,19 → 6399,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5644,19 → 6432,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5677,19 → 6465,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5710,19 → 6498,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5740,7 → 6528,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5761,19 → 6549,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5795,19 → 6583,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5829,19 → 6617,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5863,19 → 6651,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5895,7 → 6683,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5953,19 → 6741,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
5987,19 → 6775,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6059,19 → 6847,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6093,19 → 6881,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6126,7 → 6914,7 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1A } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1A-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6184,19 → 6972,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6218,19 → 7006,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6290,19 → 7078,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6324,19 → 7112,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6422,13 → 7210,13 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6436,7 → 7224,7 |
end; |
end; |
procedure genBlend_MODULATE_RGBONLY(var Code: Pointer; Dest, Col1, Col2: PDXRMachine_Color; |
procedure genBlend_MODULATE(var Code: Pointer; Dest, Col1, Col2: PDXRMachine_Color; |
ConstChannels1, ConstChannels12: TDXRColorChannels); |
begin |
if chRed in EnableChannels then |
6450,19 → 7238,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6480,19 → 7268,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.G+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6510,19 → 7298,19 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.B+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6539,13 → 7327,13 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6553,6 → 7341,166 |
end; |
end; |
procedure genBlend_MODULATEALPHA(var Code: Pointer; Dest, Col1, Col2: PDXRMachine_Color; |
ConstChannels1, ConstChannels12: TDXRColorChannels); |
begin |
if UseMMX then |
begin |
FMMXUsed := True; |
asm |
jmp @@EndCode |
@@StartCode: |
db $0F,$6F,$05,$11,$11,$11,$11///movq mm0,qword ptr [$11111111] |
@@Col1: |
db $0F,$6F,$0D,$11,$11,$11,$11///movq mm1,qword ptr [$11111111] |
@@Col2: |
db $0F,$E5,$C1 ///pmulhw mm0,mm1 |
db $0F,$7F,$05,$11,$11,$11,$11///movq qword ptr [$11111111],mm0 |
@@Dest: |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1 |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2 |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,offset Dest |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end else |
begin |
if chRed in EnableChannels then |
begin |
asm |
jmp @@EndCode |
@@StartCode: |
mov al,byte ptr [offset offset _null]{}@@Col1: |
mul byte ptr [offset offset _null] {}@@Col2: |
mov byte ptr [offset offset _null],ah{}@@Dest: |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.R+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end; |
if chGreen in EnableChannels then |
begin |
asm |
jmp @@EndCode |
@@StartCode: |
mov al,byte ptr [offset offset _null]{}@@Col1: |
mul byte ptr [offset offset _null] {}@@Col2: |
mov byte ptr [offset offset _null],ah{}@@Dest: |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.G+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end; |
if chBlue in EnableChannels then |
begin |
asm |
jmp @@EndCode |
@@StartCode: |
mov al,byte ptr [offset offset _null]{}@@Col1: |
mul byte ptr [offset offset _null] {}@@Col2: |
mov byte ptr [offset offset _null],ah{}@@Dest: |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.B+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end; |
if chAlpha in EnableChannels then |
begin |
asm |
jmp @@EndCode |
@@StartCode: |
mov al,byte ptr [offset offset _null]{}@@Col1: |
mul byte ptr [offset offset _null] {}@@Col2: |
mov byte ptr [offset offset _null],ah{}@@Dest: |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col1 } |
mov eax,Col1; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col1-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Col2 } |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
end; |
end; |
end; |
end; |
procedure genBlend_ADD(var Code: Pointer; Dest, Col1, Col2: PDXRMachine_Color; |
ConstChannels1, ConstChannels12: TDXRColorChannels); |
begin |
6601,13 → 7549,13 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6668,13 → 7616,13 |
@@EndCode: |
{$I DXRender.inc} |
{ @@Col2 } |
mov eax,Col2; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Col2; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Col2-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
{ @@Dest } |
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.A+1) |
mov eax,Dest; add eax,Byte(TDXRMachine_Color.A+1) |
mov edx,offset @@Dest-4 |
sub edx,offset @@StartCode |
mov dword ptr [ecx+edx],eax |
6692,7 → 7640,7 |
DXR_BLEND_ONE2 : genBlend_ONE1(Code, Dest, Col2, ConstChannels2); |
DXR_BLEND_ONE1_ADD_ONE2 : genBlend_ONE1_ADD_ONE2(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_ONE1_SUB_ONE2 : genBlend_ONE1_SUB_ONE2(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_ONE2_SUB_ONE1 : genBlend_ONE1_SUB_ONE2(Code, Dest, Col2, Col1, ConstChannels2, ConstChannels1); |
DXR_BLEND_ONE2_SUB_ONE1 : genBlend_ONE2_SUB_ONE1(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_ONE1_MUL_ONE2 : genBlend_ONE1_MUL_ONE2(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_SRCALPHA1 : genBlend_SRCALPHA1(Code, Dest, Col1, ConstChannels1); |
DXR_BLEND_SRCALPHA1_ADD_ONE2 : genBlend_SRCALPHA1_ADD_ONE2(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
6699,8 → 7647,10 |
DXR_BLEND_ONE2_SUB_SRCALPHA1 : genBlend_ONE2_SUB_SRCALPHA1(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_SRCALPHA1_ADD_INVSRCALPHA2: genBlend_SRCALPHA1_ADD_INVSRCALPHA2(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_INVSRCALPHA1_ADD_SRCALPHA2: genBlend_INVSRCALPHA1_ADD_SRCALPHA2(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_DECAL : genBlend_ONE1(Code, Dest, Col1, ConstChannels1); |
DXR_BLEND_DECALALPHA : genBlend_DECALALPHA(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_MODULATE : genBlend_MODULATE_RGBONLY(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_MODULATE : genBlend_MODULATE(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_MODULATEALPHA : genBlend_MODULATEALPHA(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
DXR_BLEND_ADD : genBlend_ADD(Code, Dest, Col1, Col2, ConstChannels1, ConstChannels2); |
end; |
end; |
6738,6 → 7688,10 |
begin |
genReadTexture(Code, Result, TextureList[Tree.Texture], Tree.Channels); |
end; |
DXR_TREETYPE_LOADBUMPTEXTURE: |
begin |
genReadBumpTexture(Code, Result, TextureList[Tree.Texture], TextureList[Tree.BumpTexture], Tree.Channels); |
end; |
DXR_TREETYPE_LOADDESTPIXEL: |
begin |
genReadDestPixel(Code); |
6883,7 → 7837,7 |
Col: PDXRMachine_Color; |
begin |
if (Tree.Typ=DXR_TREETYPE_LOADCOLOR) and (not ColorList[Tree.Color].Gouraud) and |
(not Dither.Enable) and (Dest.BitCount in [16, 32]) then |
(not ZBuffer.Enable) and (not Dither.Enable) and (Dest.BitCount in [16, 32]) then |
begin |
FCall := Code; |
genInitDestAddress(Code); |
6972,7 → 7926,9 |
genUpdateAxis(Code); |
genUpdateColor(Code); |
genUpdateTextureAxis(Code); |
genUpdateRHW(Code); |
genUpdateDestAddress(Code); |
genUpdateZBufferAddress(Code); |
asm |
jmp @@EndCode |
6986,6 → 7942,8 |
{ ----------- Main ----------- } |
MainCode := Code; |
genZBufferTest(Code); |
if Tree.Typ=DXR_TREETYPE_LOADCOLOR then |
begin |
genEncodeColor2(Code, Dest^, @ColorList[Tree.Color].nColor, Tree.Channels); |
6992,7 → 7950,7 |
genWriteDestPixel(Code); |
end else |
if (Tree.Typ=DXR_TREETYPE_LOADTEXTURE) and (not Dither.Enable) and |
(TextureList[Tree.Texture].Filter in [DXR_TEXTUREFILTER_NEAREST]) and |
(TextureList[Tree.Texture].Filter in [DXR_TEXTUREFILTER_NEAREST, DXR_TEXTUREFILTER_MIPMAP_NEAREST]) and |
(dxrCompareSurface(Dest^, TextureList[Tree.Texture].Surface^)) then |
begin |
genReadSurfacePixel(Code, TextureList[Tree.Texture], @TextureList[Tree.Texture].nAxis); |
7011,6 → 7969,7 |
FCall := Code; |
genInitDestAddress(Code); |
genInitZBuffer(Code); |
genCmpFunc(Code, DXR_CMPFUNC_ALWAYS, MainCode); |
end; |
7075,7 → 8034,10 |
TexBlend := DXR_BLEND_MODULATE; |
Blend := DXR_BLEND_ONE1; |
TextureFilter := DXR_TEXTUREFILTER_NEAREST; |
EnableDrawLine := $FFFFFFFF; |
ZBuffer := nil; |
ZFunc := DXR_CMPFUNC_LESSEQUAL; |
ZWriteEnable := True; |
EnableDrawLine := 0; |
end; |
for i:=0 to DXR_MAXTEXTURE-1 do |
7087,6 → 8049,7 |
ColorKeyEnable := False; |
ColorKey := 0; |
TextureAddress := DXR_TEXTUREADDRESS_TILE; |
BumpTexture := -1; |
end; |
end; |
7108,6 → 8071,9 |
function InitGenerator_MakeTree_LoadTexture(Texture: Integer): PDXRMachine_Tree; |
begin |
if States.TextureList[Texture].BumpTexture>=0 then |
Result := DXRMachine.CreateTree_LoadBumpTexture(Texture, States.TextureList[Texture].BumpTexture) |
else |
Result := DXRMachine.CreateTree_LoadTexture(Texture); |
end; |
7168,11 → 8134,17 |
var |
i: Integer; |
Layer: PDXR_TextureLayer; |
Mipmap1, Mipmap2, Mipmap3: Integer; |
TmpSurface2: PDXR_Surface; |
begin |
DXRMachine.Initialize; |
{ Parameter setting } |
DXRMachine.Dest := @Dest; |
DXRMachine.ZBuffer.Enable := States.ZBuffer<>nil; |
DXRMachine.ZBuffer.Surface := States.ZBuffer; |
DXRMachine.ZBuffer.CmpFunc := States.ZFunc; |
DXRMachine.ZBuffer.WriteEnable := States.ZWriteEnable; |
DXRMachine.Dither.Enable := States.DitherEnable; |
DXRMachine.ColorList[0].Gouraud := States.Shade=DXR_SHADEMODE_GOURAUD; |
7192,9 → 8164,34 |
Surface := Layer.Surface; |
Filter := States.TextureFilter; |
TextureAddress := Layer.TextureAddress; |
if (Filter in [DXR_TEXTUREFILTER_MIPMAP_NEAREST, DXR_TEXTUREFILTER_MIPMAP_LINEAR]) and |
(Surface.MipmapChain<>nil) then |
begin |
{ Mipmap } |
Mipmap1 := MaxInt; |
Mipmap3 := Trunc(Abs(Hypot(Tri[2].sx-Tri[1].sx, Tri[2].sy-Tri[1].sy))* |
Abs(Hypot(Tri[1].sx-Tri[0].sx, Tri[1].sy-Tri[0].sy))* |
Abs(Hypot(Tri[2].sx-Tri[0].sx, Tri[2].sy-Tri[0].sy))/9); |
TmpSurface2 := Surface; |
while TmpSurface2<>nil do |
begin |
Mipmap2 := TmpSurface2.Width2*TmpSurface2.Height2; |
if (Abs(Mipmap3-Mipmap2)<Abs(Mipmap3-Mipmap1)) then |
begin |
Surface := TmpSurface2; |
Mipmap1 := Mipmap2; |
end; |
TmpSurface2 := TmpSurface2.MipmapChain; |
end; |
end; |
end; |
end; |
end; |
{ Tree making } |
DXRMachine.Compile(InitGenerator_MakeTree); |
7235,9 → 8232,15 |
Result := Comp2DWORD(d*TexYFloat[i]); |
end; |
function FloatToRHWFloat(d: Extended): Comp; |
begin |
Result := d*Int32Value; |
end; |
procedure drawline(x1, x2, y: Integer; |
const x_ntex1, x_ntex2: T2DAxis64Array; |
const x_nc1, x_nc2: TCol64Array); |
const x_nc1, x_nc2: TCol64Array; |
const x_nRHW1, x_nRHW2: Comp); |
var |
i, xcount, xcount2, ofs: Integer; |
begin |
7311,6 → 8314,17 |
end; |
end; |
with DXRMachine.RHW do |
begin |
if Enable then |
begin |
nRHW := x_nRHW1; |
iRHW := (x_nRHW2-x_nRHW1) / xcount; |
if ofs<>0 then |
nRHW := nRHW + iRHW*ofs; |
end; |
end; |
DXRMachine.Run(xcount2); |
end; |
7321,6 → 8335,7 |
y_nx1, y_nx2, y_ix1, y_ix2: Comp; |
y_ntex1, y_ntex2, y_itex1, y_itex2: T2DAxis64Array; |
y_nc1, y_nc2, y_ic1, y_ic2: TCol64Array; |
y_nRHW1, y_nRHW2, y_iRHW1, y_iRHW2: Comp; |
begin |
if ycount<=0 then Exit; |
if y1=0 then Exit; |
7436,15 → 8451,40 |
end; |
end; |
if DXRMachine.RHW.Enable then |
begin |
y_nRHW1 := FloatToRHWFloat(p1.rhw); |
y_nRHW2 := FloatToRHWFloat(p2.rhw); |
y_iRHW1 := FloatToRHWFloat((pt1.rhw-p1.rhw)/y1); |
y_iRHW2 := FloatToRHWFloat((pt2.rhw-p2.rhw)/y2); |
if ofs1<>0 then |
begin |
y_nRHW1 := y_nRHW1 + y_iRHW1*ofs1; |
end; |
if ofs2<>0 then |
begin |
y_nRHW2 := y_nRHW2 + y_iRHW2*ofs2; |
end; |
end else |
begin |
y_nRHW1 := 0; |
y_nRHW2 := 0; |
y_iRHW1 := 0; |
y_iRHW2 := 0; |
end; |
for y:=starty to starty+ycount-1 do |
begin |
if States.EnableDrawLine and (1 shl (y and 31))<>0 then |
if (States.EnableDrawLine=0) or ((States.EnableDrawLine-1)=y mod 2) then |
if PInteger(Integer(@y_nx1)+4)^<PInteger(Integer(@y_nx2)+4)^ then |
begin |
drawline( |
PInteger(Integer(@y_nx1)+4)^, PInteger(Integer(@y_nx2)+4)^, y, |
y_ntex1, y_ntex2, |
y_nc1, y_nc2 |
y_nc1, y_nc2, |
y_nRHW1, y_nRHW2 |
); |
end else if PInteger(Integer(@y_nx1)+4)^>PInteger(Integer(@y_nx2)+4)^ then |
begin |
7451,7 → 8491,8 |
drawline( |
PInteger(Integer(@y_nx2)+4)^, PInteger(Integer(@y_nx1)+4)^, y, |
y_ntex2, y_ntex1, |
y_nc2, y_nc1 |
y_nc2, y_nc1, |
y_nRHW2, y_nRHW1 |
); |
end; |
7482,8 → 8523,14 |
y_nc2[i].A := y_nc2[i].A + y_ic2[i].A; |
end; |
end; |
if DXRMachine.RHW.Enable then |
begin |
y_nRHW1 := y_nRHW1 + y_iRHW1; |
y_nRHW2 := y_nRHW2 + y_iRHW2; |
end; |
end; |
end; |
var |
p: array[0..2] of PDXR_Vertex; |
7521,6 → 8568,9 |
if (p[0].sx>=Dest.Width) and (p[1].sx>=Dest.Width) and (p[2].sx>=Dest.Width) then Exit; |
{ Generate code } |
if States.TextureFilter in [DXR_TEXTUREFILTER_MIPMAP_NEAREST, DXR_TEXTUREFILTER_MIPMAP_LINEAR] then |
DXRMachine.Compiled := False; |
if not DXRMachine.Compiled then |
InitGenerator; |
7672,25 → 8722,30 |
end; |
end; |
function MulDiv64(a, b, c: Integer): Integer; assembler; |
asm |
mov eax, a |
imul b |
idiv c |
//function MulDiv64(a, b, c: Integer): Integer; assembler; |
//asm |
// mov eax, a |
// imul b |
// idiv c |
//end; |
function MulDiv64(a, b, c: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := a * b div c; |
end; |
function Max(B1, B2: Integer): Integer; |
function Max(B1, B2: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if B1>=B2 then Result := B1 else Result := B2; |
end; |
function Min(B1, B2: Integer): Integer; |
function Min(B1, B2: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if B1<=B2 then Result := B1 else Result := B2; |
end; |
function BltClipX(const Dest, Src: TDXR_Surface; |
var StartX, EndX, StartSrcX: Integer): Boolean; |
var StartX, EndX, StartSrcX: Integer): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if StartX<0 then |
begin |
7704,7 → 8759,7 |
end; |
function BltClipY(const Dest, Src: TDXR_Surface; |
var StartY, EndY, StartSrcY: Integer): Boolean; |
var StartY, EndY, StartSrcY: Integer): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
if StartY<0 then |
begin |
7718,7 → 8773,7 |
end; |
function BltClip(const Dest, Src: TDXR_Surface; |
var StartX, StartY, EndX, EndY, StartSrcX, StartSrcY: Integer): Boolean; |
var StartX, StartY, EndX, EndY, StartSrcX, StartSrcY: Integer): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := BltClipX(Dest, Src, StartX, EndX, StartSrcX) and |
BltClipY(Dest, Src, StartY, EndY, StartSrcY); |
7725,7 → 8780,7 |
end; |
function FillClip(const Dest: TDXR_Surface; |
var StartX, StartY, EndX, EndY: Integer): Boolean; |
var StartX, StartY, EndX, EndY: Integer): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
StartX := Max(StartX, 0); |
StartY := Max(StartY, 0); |
7738,7 → 8793,7 |
var |
CosinTable: array[0..255] of Double; |
procedure InitCosinTable; |
procedure InitCosinTable; {$IFDEF VER9UP}inline;{$ENDIF} |
var |
i: Integer; |
begin |
7746,12 → 8801,12 |
CosinTable[i] := Cos((i/256)*2*PI); |
end; |
function Cos256(i: Integer): Double; |
function Cos256(i: Integer): Double; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := CosinTable[i and 255]; |
end; |
function Sin256(i: Integer): Double; |
function Sin256(i: Integer): Double; {$IFDEF VER9UP}inline;{$ENDIF} |
begin |
Result := CosinTable[(i+192) and 255]; |
end; |
8072,10 → 9127,23 |
end; |
end; |
//var TextureSurface, DestSurface: TDXR_Surface; RenderStates: TDXR_RenderStates; |
// |
//dxrDefRenderStates(RenderStates); |
//if dxrDDSurfaceLock(Surf.ISurface, DestSurface then begin |
// dxrDDSurfaceLock(TextureSurface as IDirectDrawSurface, TextureSurface); |
// RenderStates.TextureList<0>.Surface:=@TextureSurface; |
// dxrDrawPrimitive(DestSurface, RenderStates, DXR_PRIMITIVETYPE_TRIANGLELIST, @VertexList, 36); |
// dxrDDSurfaceUnlock(SurfaceTexture as IDirectDrawSurface, TextureSurface); |
// dxrDDSurfaceUnlock(Surf.ISurface, DestSurface); |
//end; |
initialization |
ReadCPUID; |
Init; |
InitCosinTable; |
dxrSetOption(DXR_OPTION_MMXENABLE, 1); |
finalization |
FDXRMachine.Free; |
end. |
end. |
/VCL_DELPHIX_D6/DXSprite.pas |
---|
5,7 → 5,13 |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, SysUtils, Classes, DXClass, DXDraws, DirectX; |
Windows, SysUtils, Classes, Graphics, DXClass, DXDraws, |
{$IFDEF VER9UP} Types,{$ENDIF} |
{$IFDEF StandardDX} |
DirectDraw; |
{$ELSE} |
DirectX; |
{$ENDIF} |
type |
17,7 → 23,13 |
TSpriteEngine = class; |
TSprite = class |
TSprite = class; |
TCollisionEvent = procedure(Sender: TObject; var Done: Boolean) of object; |
TMoveEvent = procedure(Sender: TObject; var MoveCount: Integer) of object; |
TDrawEvent = procedure(Sender: TObject) of object; |
TGetImage = procedure(Sender: TObject; var Image: TPictureCollectionItem) of object; |
TSprite = class(TPersistent) |
private |
FEngine: TSpriteEngine; |
FParent: TSprite; |
32,16 → 44,31 |
FZ: Integer; |
FWidth: Integer; |
FHeight: Integer; |
{$IFDEF Ver4Up} |
FSelected: Boolean; |
FGroupNumber: Integer; |
{$ENDIF} |
FCaption: string; |
FTag: Integer; |
FDXImageList: TCustomDXImageList; |
FDXImage: TPictureCollectionItem; |
FDXImageName: string; |
FOnDraw: TDrawEvent; |
FOnMove: TMoveEvent; |
FOnCollision: TCollisionEvent; |
FOnGetImage: TGetImage; |
procedure Add(Sprite: TSprite); |
procedure Remove(Sprite: TSprite); |
procedure AddDrawList(Sprite: TSprite); |
procedure Collision2; |
procedure Draw; |
procedure Draw; {$IFDEF VER9UP}inline;{$ENDIF} |
function GetClientRect: TRect; |
function GetCount: Integer; |
function GetItem(Index: Integer): TSprite; |
function GetWorldX: Double; |
function GetWorldY: Double; |
function GetWorldX: Double; {$IFDEF VER9UP}inline;{$ENDIF} |
function GetWorldY: Double; {$IFDEF VER9UP}inline;{$ENDIF} |
procedure SetZ(Value: Integer); |
protected |
procedure DoCollision(Sprite: TSprite; var Done: Boolean); virtual; |
49,6 → 76,10 |
procedure DoMove(MoveCount: Integer); virtual; |
function GetBoundsRect: TRect; virtual; |
function TestCollision(Sprite: TSprite): Boolean; virtual; |
{$IFDEF Ver4Up} |
procedure SetGroupNumber(AGroupNumber: Integer); virtual; |
procedure SetSelected(ASelected: Boolean); virtual; |
{$ENDIF} |
public |
constructor Create(AParent: TSprite); virtual; |
destructor Destroy; override; |
56,25 → 87,46 |
function Collision: Integer; |
procedure Dead; |
procedure Move(MoveCount: Integer); |
procedure ReAnimate(MoveCount: Integer); virtual; |
function GetSpriteAt(X, Y: Integer): TSprite; |
property BoundsRect: TRect read GetBoundsRect; |
property ClientRect: TRect read GetClientRect; |
property Collisioned: Boolean read FCollisioned write FCollisioned; |
property Count: Integer read GetCount; |
property Engine: TSpriteEngine read FEngine; |
property Items[Index: Integer]: TSprite read GetItem; default; |
property Moved: Boolean read FMoved write FMoved; |
property Deaded: Boolean read FDeaded; |
property Parent: TSprite read FParent; |
property Visible: Boolean read FVisible write FVisible; |
property Width: Integer read FWidth write FWidth; |
property WorldX: Double read GetWorldX; |
property WorldY: Double read GetWorldY; |
// Group handling support |
{$IFDEF Ver4Up} // if GroupNumber < 0 then no group is assigned |
property GroupNumber: Integer read FGroupNumber write SetGroupNumber; |
property Selected: Boolean read FSelected write SetSelected; |
{$ENDIF} |
procedure Assign(Source: TPersistent); override; |
published |
property Height: Integer read FHeight write FHeight; |
property Moved: Boolean read FMoved write FMoved; |
property Visible: Boolean read FVisible write FVisible; |
property Width: Integer read FWidth write FWidth; |
property X: Double read FX write FX; |
property Y: Double read FY write FY; |
property Z: Integer read FZ write SetZ; |
property Collisioned: Boolean read FCollisioned write FCollisioned; |
property Tag: Integer read FTag write FTag; |
property Caption: string read FCaption write FCaption; |
property DXImageList: TCustomDXImageList read FDXImageList write FDXImageList; |
property DXImageName: string read FDXImageName write FDXImageName; |
property OnDraw: TDrawEvent read FOnDraw write FOnDraw; |
property OnMove: TMoveEvent read FOnMove write FOnMove; |
property OnCollision: TCollisionEvent read FOnCollision write FOnCollision; |
property OnGetImage: TGetImage read FOnGetImage write FOnGetImage; |
end; |
TSpriteClass = class of TSprite; |
{ TImageSprite } |
TImageSprite = class(TSprite) |
84,55 → 136,136 |
FAnimPos: Double; |
FAnimSpeed: Double; |
FAnimStart: Integer; |
FImage: TPictureCollectionItem; |
FPixelCheck: Boolean; |
FTile: Boolean; |
FTransparent: Boolean; |
FAngle: Single; |
FAlpha: Integer; |
FBlendMode: TRenderType; |
FCenterX: Double; |
FCenterY: Double; |
FBlurImageArr: TBlurImageArr; |
FBlurImage: Boolean; |
FMirrorFlip: TRenderMirrorFlipSet; |
FTextureFilter: TD2DTextureFilter; |
function GetDrawImageIndex: Integer; |
function GetDrawRect: TRect; |
function ImageCollisionTest(suf1, suf2: TDirectDrawSurface; |
const rect1, rect2: TRect; x1, y1, x2, y2: Integer; |
DoPixelCheck: Boolean): Boolean; |
function StoreCenterX: Boolean; |
function StoreCenterY: Boolean; |
function StoreAlpha: Boolean; |
procedure SetBlurImage(const Value: Boolean); |
procedure SetBlurImageArr(const Value: TBlurImageArr); |
function GetImage: TPictureCollectionItem; |
procedure SetMirrorFlip(const Value: TRenderMirrorFlipSet); |
procedure ReadMirrorFlip(Reader: TReader); |
procedure WriteMirrorFlip(Writer: TWriter); |
protected |
{accessed methods} |
procedure ReadAlpha(Reader: TReader); |
procedure ReadAngle(Reader: TReader); |
procedure ReadAnimCount(Reader: TReader); |
procedure ReadAnimLooped(Reader: TReader); |
procedure ReadAnimPos(Reader: TReader); |
procedure ReadAnimSpeed(Reader: TReader); |
procedure ReadAnimStart(Reader: TReader); |
procedure ReadBlendMode(Reader: TReader); |
procedure ReadCenterX(Reader: TReader); |
procedure ReadCenterY(Reader: TReader); |
procedure ReadPixelCheck(Reader: TReader); |
procedure ReadTile(Reader: TReader); |
procedure ReadBlurImage(Reader: TReader); |
procedure ReadTextureFilter(Reader: TReader); |
procedure WriteAlpha(Writer: TWriter); |
procedure WriteAngle(Writer: TWriter); |
procedure WriteAnimCount(Writer: TWriter); |
procedure WriteAnimLooped(Writer: TWriter); |
procedure WriteAnimPos(Writer: TWriter); |
procedure WriteAnimSpeed(Writer: TWriter); |
procedure WriteAnimStart(Writer: TWriter); |
procedure WriteBlendMode(Writer: TWriter); |
procedure WriteCenterX(Writer: TWriter); |
procedure WriteCenterY(Writer: TWriter); |
procedure WritePixelCheck(Writer: TWriter); |
procedure WriteTile(Writer: TWriter); |
procedure WriteBlurImage(Writer: TWriter); |
procedure WriteTextureFilter(Writer: TWriter); |
{own store of properties} |
procedure DefineProperties(Filer: TFiler); override; |
procedure LoadImage; virtual; |
procedure DoDraw; override; |
procedure DoMove(MoveCount: Integer); override; |
function GetBoundsRect: TRect; override; |
function TestCollision(Sprite: TSprite): Boolean; override; |
procedure SetImage(AImage: TPictureCollectionItem); virtual; |
public |
constructor Create(AParent: TSprite); override; |
property AnimCount: Integer read FAnimCount write FAnimCount; |
property AnimLooped: Boolean read FAnimLooped write FAnimLooped; |
procedure Assign(Source: TPersistent); override; |
procedure ReAnimate(MoveCount: Integer); override; |
property Image: TPictureCollectionItem read GetImage write SetImage; |
property BlurImageArr: TBlurImageArr read FBlurImageArr write SetBlurImageArr; |
{un-published property} |
property BlendMode: TRenderType read FBlendMode write FBlendMode default rtDraw; |
property Angle: Single read FAngle write FAngle stored StoreAlpha; |
property Alpha: Integer read FAlpha write FAlpha default $FF; |
property CenterX: Double read FCenterX write FCenterX stored StoreCenterX; |
property CenterY: Double read FCenterY write FCenterY stored StoreCenterY; |
property AnimCount: Integer read FAnimCount write FAnimCount default 0; |
property AnimLooped: Boolean read FAnimLooped write FAnimLooped default False; |
property AnimPos: Double read FAnimPos write FAnimPos; |
property AnimSpeed: Double read FAnimSpeed write FAnimSpeed; |
property AnimStart: Integer read FAnimStart write FAnimStart; |
property PixelCheck: Boolean read FPixelCheck write FPixelCheck; |
property Image: TPictureCollectionItem read FImage write FImage; |
property Tile: Boolean read FTile write FTile; |
property AnimStart: Integer read FAnimStart write FAnimStart default 0; |
property PixelCheck: Boolean read FPixelCheck write FPixelCheck default False; |
property Tile: Boolean read FTile write FTile default False; |
property BlurImage: Boolean read FBlurImage write SetBlurImage default False; |
property MirrorFlip: TRenderMirrorFlipSet read FMirrorFlip write SetMirrorFlip default []; |
property TextureFilter: TD2DTextureFilter read FTextureFilter write FTextureFilter default D2D_POINT; |
published |
property DXImageList; |
property DXImageName; |
property OnDraw; |
property OnMove; |
property OnCollision; |
property OnGetImage; |
end; |
{ TImageSpriteEx } |
TImageSpriteEx = class(TImageSprite) |
private |
FAngle: Integer; |
FAlpha: Integer; |
protected |
procedure DoDraw; override; |
function GetBoundsRect: TRect; override; |
function TestCollision(Sprite: TSprite): Boolean; override; |
public |
constructor Create(AParent: TSprite); override; |
property Angle: Integer read FAngle write FAngle; |
property Alpha: Integer read FAlpha write FAlpha; |
end; |
end{$IFDEF VER9UP}deprecated{$IFDEF VER14UP} 'Use for backward compatibility only or replace by TImageSprite instead...'{$ENDIF}{$ENDIF}; |
{ TBackgroundSprite } |
TBackgroundSprite = class(TSprite) |
PMapType = ^TMapType; |
TMapType = packed record |
MapChip: Integer; {image chip as number} |
//ImageName: string[127]; |
CollisionChip: Boolean; {is collision brick} |
CollisionRect: TRect; {dirty vollision area, can be smaller or bigger than silhouette} |
Overlap: Integer; {for pulse image, like zoom etc.} |
AnimLooped: Boolean; {chip can be live} |
AnimStart, AnimCount: Integer; |
AnimSpeed, AnimPos: Double; {phase of picture by one map chip} |
Rendered: TRenderType; {can be blended} |
Alpha: Byte; {and blend level} |
Angle: Single; |
CenterX, CenterY: Double; |
MirrorFlip: TRenderMirrorFlipSet; |
TextureFilter: TD2DTextureFilter; |
Tag: Integer; {for application use} |
end; |
TBackgroundSprite = class(TImageSprite) |
private |
FImage: TPictureCollectionItem; |
FCollisionMap: Pointer; |
FMap: Pointer; |
FMapWidth: Integer; |
FMapHeight: Integer; |
FTile: Boolean; |
FChipsRect: TRect; |
FChipsPatternIndex: Integer; |
function GetCollisionMapItem(X, Y: Integer): Boolean; |
function GetChip(X, Y: Integer): Integer; |
procedure SetChip(X, Y: Integer; Value: Integer); |
139,26 → 272,60 |
procedure SetCollisionMapItem(X, Y: Integer; Value: Boolean); |
procedure SetMapHeight(Value: Integer); |
procedure SetMapWidth(Value: Integer); |
function GetCollisionRectItem(X, Y: Integer): TRect; |
function GetMap(X, Y: Integer): TMapType; |
function GetTagMap(X, Y: Integer): Integer; |
procedure SetCollisionRectItem(X, Y: Integer; Value: TRect); |
procedure SetMap(X, Y: Integer; Value: TMapType); |
procedure SetTagMap(X, Y, Value: Integer); |
function GetOverlap(X, Y: Integer): Integer; |
procedure SetOverlap(X, Y: Integer; const Value: Integer); |
protected |
procedure ReadMapData(Stream: TStream); |
procedure WriteMapData(Stream: TStream); |
procedure DoDraw; override; |
function GetBoundsRect: TRect; override; |
function TestCollision(Sprite: TSprite): Boolean; override; |
procedure SetImage(Img: TPictureCollectionItem); override; |
procedure DefineProperties(Filer: TFiler); override; |
public |
constructor Create(AParent: TSprite); override; |
destructor Destroy; override; |
procedure ChipsDraw(Image: TPictureCollectionItem; X, Y, PatternIndex: Integer); |
procedure SetMapSize(AMapWidth, AMapHeight: Integer); |
function IsMapEmpty: Boolean; |
property Chips[X, Y: Integer]: Integer read GetChip write SetChip; |
property CollisionMap[X, Y: Integer]: Boolean read GetCollisionMapItem write SetCollisionMapItem; |
property Image: TPictureCollectionItem read FImage write FImage; |
property CollisionRect[X, Y: Integer]: TRect read GetCollisionRectItem write SetCollisionRectItem; |
property Overlap[X, Y: Integer]: Integer read GetOverlap write SetOverlap; |
property TagMap[X, Y: Integer]: Integer read GetTagMap write SetTagMap; |
property Map[X, Y: Integer]: TMapType read GetMap write SetMap; |
procedure Assign(Source: TPersistent); override; |
property ChipsRect: TRect read FChipsRect write FChipsRect; |
property ChipsPatternIndex: Integer read FChipsPatternIndex write FChipsPatternIndex default 0; |
{un-published property} |
property MapHeight: Integer read FMapHeight write SetMapHeight; |
property MapWidth: Integer read FMapWidth write SetMapWidth; |
property Tile: Boolean read FTile write FTile; |
published |
property DXImageList; |
property DXImageName; |
property OnDraw; |
property OnMove; |
property OnCollision; |
property OnGetImage; |
end; |
{ forward class } |
TCustomDXSpriteEngine = class; |
{ TSpriteEngine } |
TSpriteEngine = class(TSprite) |
private |
FOwner: TCustomDXSpriteEngine; |
FAllCount: Integer; |
FCollisionCount: Integer; |
FCollisionDone: Boolean; |
168,7 → 335,18 |
FDrawCount: Integer; |
FSurface: TDirectDrawSurface; |
FSurfaceRect: TRect; |
procedure SetSurface(Value: TDirectDrawSurface); |
{$IFDEF Ver4Up} |
FObjectsSelected: Boolean; |
FGroupCount: Integer; |
FGroups: array of Tlist; |
FCurrentSelected: Tlist; |
{$ENDIF} |
protected |
procedure SetSurface(Value: TDirectDrawSurface); virtual; |
{$IFDEF Ver4Up} |
procedure SetGroupCount(AGroupCount: Integer); virtual; |
function GetGroup(Index: Integer): Tlist; virtual; |
{$ENDIF} |
public |
constructor Create(AParent: TSprite); override; |
destructor Destroy; override; |
178,6 → 356,26 |
property DrawCount: Integer read FDrawCount; |
property Surface: TDirectDrawSurface read FSurface write SetSurface; |
property SurfaceRect: TRect read FSurfaceRect; |
// Extended Sprite Engine |
procedure Collisions; |
// Group handling support |
{$IFDEF Ver4Up} |
procedure ClearCurrent; |
procedure ClearGroup(GroupNumber: Integer); |
procedure GroupToCurrent(GroupNumber: Integer; Add: Boolean = False); |
procedure CurrentToGroup(GroupNumber: Integer; Add: Boolean = False); |
procedure GroupSelect(const Area: TRect; Filter: array of TSpriteClass; Add: Boolean = False); overload; |
procedure GroupSelect(const Area: TRect; Add: Boolean = False); overload; |
function Select(Point: TPoint; Filter: array of TSpriteClass; Add: Boolean = False): Tsprite; overload; |
function Select(Point: TPoint; Add: Boolean = False): Tsprite; overload; |
property CurrentSelected: TList read fCurrentSelected; |
property ObjectsSelected: Boolean read fObjectsSelected; |
property Groups[Index: Integer]: Tlist read GetGroup; |
property GroupCount: Integer read fGroupCount write SetGroupCount; |
{$ENDIF} |
end; |
{ EDXSpriteEngineError } |
184,6 → 382,90 |
EDXSpriteEngineError = class(Exception); |
TSpriteCollection = class; |
{ TSpriteType } |
TSpriteType = (stSprite, stImageSprite, stImageSpriteEx, stBackgroundSprite); |
{ TSpriteCollectionItem } |
TSpriteCollectionItem = class(THashCollectionItem) |
private |
FOwner: TPersistent; |
FOwnerItem: TSpriteEngine; |
FSpriteType: TSpriteType; |
FSprite: TSprite; |
procedure Finalize; |
procedure Initialize; |
function GetSpriteCollection: TSpriteCollection; |
procedure SetSprite(const Value: TSprite); |
procedure SetOnCollision(const Value: TCollisionEvent); |
procedure SetOnDraw(const Value: TDrawEvent); |
procedure SetOnMove(const Value: TMoveEvent); |
function GetSpriteType: TSpriteType; |
procedure SetSpriteType(const Value: TSpriteType); |
function GetOnCollision: TCollisionEvent; |
function GetOnDraw: TDrawEvent; |
function GetOnMove: TMoveEvent; |
function GetOnGetImage: TGetImage; |
procedure SetOnGetImage(const Value: TGetImage); |
function GetImageList: TCustomDXImageList; |
procedure SetImageList(const Value: TCustomDXImageList); |
protected |
function GetDisplayName: string; override; |
procedure SetDisplayName(const Value: string); override; |
public |
constructor Create(Collection: TCollection); override; |
destructor Destroy; override; |
procedure Assign(Source: TPersistent); override; |
property SpriteCollection: TSpriteCollection read GetSpriteCollection; |
function Clone(NewName: string): TSprite; |
published |
{published property of sprite} |
property KindSprite: TSpriteType read GetSpriteType write SetSpriteType; |
property ImageList: TCustomDXImageList read GetImageList write SetImageList; |
property Sprite: TSprite read FSprite write SetSprite; |
{published events of sprite} |
property OnDraw: TDrawEvent read GetOnDraw write SetOnDraw; |
property OnMove: TMoveEvent read GetOnMove write SetOnMove; |
property OnCollision: TCollisionEvent read GetOnCollision write SetOnCollision; |
property OnGetImage: TGetImage read GetOnGetImage write SetOnGetImage; |
end; |
{ ESpriteCollectionError } |
ESpriteCollectionError = class(Exception); |
{ TSpriteCollection } |
TSCInitialize = procedure(Owner: TSpriteEngine) of object; |
TSCFinalize = procedure(Owner: TSpriteEngine) of object; |
TSpriteCollection = class(THashCollection) |
private |
FInitializeFlag: Boolean; |
FOwner: TPersistent; |
FOwnerItem: TSpriteEngine; |
FOnInitialize: TSCInitialize; |
FOnFinalize: TSCFinalize; |
function GetItem(Index: Integer): TSpriteCollectionItem; |
protected |
function GetOwner: TPersistent; override; |
public |
constructor Create(AOwner: TPersistent); |
destructor Destroy; override; |
function Initialized: Boolean; |
function Find(const Name: string): TSpriteCollectionItem; |
function Add: TSpriteCollectionItem; |
procedure Finalize; |
function Initialize(DXSpriteEngine: TSpriteEngine): Boolean; |
property Items[Index: Integer]: TSpriteCollectionItem read GetItem; default; |
published |
property OnInitialize: TSCInitialize read FOnInitialize write FOnInitialize; |
property OnFinalize: TSCFinalize read FOnFinalize write FOnFinalize; |
end; |
{ TCustomDXSpriteEngine } |
TCustomDXSpriteEngine = class(TComponent) |
190,31 → 472,67 |
private |
FDXDraw: TCustomDXDraw; |
FEngine: TSpriteEngine; |
FItems: TSpriteCollection; |
procedure DXDrawNotifyEvent(Sender: TCustomDXDraw; NotifyType: TDXDrawNotifyType); |
procedure SetDXDraw(Value: TCustomDXDraw); |
procedure SetItems(const Value: TSpriteCollection); |
protected |
procedure Notification(AComponent: TComponent; Operation: TOperation); override; |
public |
constructor Create(AOnwer: TComponent); override; |
constructor Create(AOwner: TComponent); override; |
destructor Destroy; override; |
procedure Dead; |
procedure Draw; |
procedure Move(MoveCount: Integer); |
procedure Clone(const Amount: Word; const BaseNameOfSprite: string); |
function ForEach(PrefixNameOdSprite: string; var Names: TStringList): Boolean; |
property DXDraw: TCustomDXDraw read FDXDraw write SetDXDraw; |
property Engine: TSpriteEngine read FEngine; |
property Items: TSpriteCollection read FItems write SetItems; |
end; |
{ TDXSpriteEngine } |
TDXSpriteEngine = class(TCustomDXSpriteEngine) |
property Items; |
published |
property DXDraw; |
end; |
function Mod2(i, i2: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
function Mod2f(i: Double; i2: Integer): Double; {$IFDEF VER9UP}inline;{$ENDIF} |
function DefaultMapChip(iMapChip: Integer = -1; iCollisionChip: Boolean = False): TMapType; {$IFDEF VER9UP}inline;{$ENDIF} |
implementation |
uses DXConsts; |
uses DXConsts, TypInfo; |
const |
SSpriteNotFound = 'Sprite not found'; |
SSpriteDuplicateName = 'Item duplicate name "%s" error'; |
function DefaultMapChip(iMapChip: Integer = -1; iCollisionChip: Boolean = False): TMapType; |
begin |
FillChar(Result, SizeOf(Result), 0); |
with Result do |
begin |
MapChip := iMapChip; {image chip as number} |
CollisionChip := iCollisionChip; {is collision brick} |
// CollisionRect: TRect; {dirty vollision area, can be smaller or bigger than silhouette} |
// Overlap: Integer; {for pulse image, like zoom etc.} |
// AnimLooped: Boolean; {chip can be live} |
// AnimStart, AnimCount: Integer; |
// AnimSpeed, AnimPos: Double; {phase of picture by one map chip} |
Rendered := rtDraw; {can be blended} |
Alpha := $FF; {and blend level} |
Angle := 0; |
CenterX := 0.5; |
CenterY := 0.5; |
TextureFilter := D2D_POINT; |
// Tag: Integer; {for application use} |
end; |
end; |
function Mod2(i, i2: Integer): Integer; |
begin |
Result := i mod i2; |
228,7 → 546,7 |
Result := i |
else |
begin |
Result := i-Trunc(i/i2)*i2; |
Result := i - Round(i / i2) * i2; |
if Result<0 then |
Result := i2+Result; |
end; |
239,6 → 557,9 |
constructor TSprite.Create(AParent: TSprite); |
begin |
inherited Create; |
{$IFDEF Ver4Up} |
fGroupnumber := -1; |
{$ENDIF} |
FParent := AParent; |
if FParent<>nil then |
begin |
257,6 → 578,10 |
destructor TSprite.Destroy; |
begin |
{$IFDEF Ver4Up} |
GroupNumber := -1; |
Selected := False; |
{$ENDIF} |
Clear; |
if FParent<>nil then |
begin |
269,6 → 594,33 |
inherited Destroy; |
end; |
{$IFDEF Ver4Up} |
procedure TSprite.SetGroupNumber(AGroupNumber: Integer); |
begin |
if (AGroupNumber <> GroupNumber) and (Engine <> nil) then |
begin |
if Groupnumber >= 0 then |
Engine.Groups[GroupNumber].Remove(self); |
if AGroupNumber >= 0 then |
Engine.Groups[AGroupNumber].Add(self); |
end; |
end; {SetGroupNumber} |
procedure TSprite.SetSelected(ASelected: Boolean); |
begin |
if (ASelected <> fSelected) and (Engine <> nil) then |
begin |
fSelected := ASelected; |
if Selected then |
Engine.CurrentSelected.Add(self) |
else |
Engine.CurrentSelected.Remove(self); |
Engine.fObjectsSelected := Engine.CurrentSelected.count <> 0; |
end; |
end; |
{$ENDIF} |
procedure TSprite.Add(Sprite: TSprite); |
begin |
if FList=nil then |
303,7 → 655,9 |
begin |
I := (L + H) div 2; |
C := TSprite(FDrawList[I]).Z-Sprite.Z; |
if C < 0 then L := I + 1 else |
if C < 0 then |
L := I + 1 |
else |
H := I - 1; |
end; |
FDrawList.Insert(L, Sprite); |
343,17 → 697,20 |
begin |
if Collisioned then |
begin |
if (Self<>FEngine.FCollisionSprite) and OverlapRect(BoundsRect, FEngine.FCollisionRect) and |
FEngine.FCollisionSprite.TestCollision(Self) and TestCollision(FEngine.FCollisionSprite) then |
if (Self <> FEngine.FCollisionSprite) and OverlapRect(BoundsRect, |
FEngine.FCollisionRect) and FEngine.FCollisionSprite.TestCollision(Self) and |
TestCollision(FEngine.FCollisionSprite) then |
begin |
Inc(FEngine.FCollisionCount); |
FEngine.FCollisionSprite.DoCollision(Self, FEngine.FCollisionDone); |
if (not FEngine.FCollisionSprite.Collisioned) or (FEngine.FCollisionSprite.FDeaded) then |
if (not FEngine.FCollisionSprite.Collisioned) or |
(FEngine.FCollisionSprite.FDeaded) then |
begin |
FEngine.FCollisionDone := True; |
end; |
end; |
if FEngine.FCollisionDone then Exit; |
if FEngine.FCollisionDone then |
Exit; |
for i:=0 to Count-1 do |
Items[i].Collision2; |
end; |
368,16 → 725,22 |
end; |
end; |
procedure TSprite.DoMove; |
procedure TSprite.DoMove(MoveCount: Integer); |
begin |
if AsSigned(FOnMove) then |
FOnMove(Self, MoveCount); |
end; |
procedure TSprite.DoDraw; |
begin |
if AsSigned(FOnDraw) then |
FOnDraw(Self); |
end; |
procedure TSprite.DoCollision(Sprite: TSprite; var Done: Boolean); |
begin |
if AsSigned(FOnCollision) then |
FOnCollision(Sprite, Done); |
end; |
function TSprite.TestCollision(Sprite: TSprite): Boolean; |
391,7 → 754,7 |
begin |
if FMoved then |
begin |
DoMove(MoveCount); |
DoMove(MoveCount); ReAnimate(MoveCount); |
for i:=0 to Count-1 do |
Items[i].Move(MoveCount); |
end; |
415,10 → 778,12 |
if FDrawList<>nil then |
begin |
for i:=0 to FDrawList.Count-1 do |
begin |
TSprite(FDrawList[i]).Draw; |
end; |
end; |
end; |
end; |
function TSprite.GetSpriteAt(X, Y: Integer): TSprite; |
427,7 → 792,8 |
i: Integer; |
X2, Y2: Double; |
begin |
if Sprite.Visible and PointInRect(Point(Round(X), Round(Y)), Bounds(Round(Sprite.X), Round(Sprite.Y), Sprite.Width, Sprite.Width)) then |
if Sprite.Visible and PointInRect(Point(Round(X), Round(Y)), |
Bounds(Round(Sprite.X), Round(Sprite.Y), Sprite.Width, Sprite.Height)) then //corrected by Sergey |
begin |
if (Result=nil) or (Sprite.Z>Result.Z) then |
Result := Sprite; |
453,7 → 819,7 |
function TSprite.GetBoundsRect: TRect; |
begin |
Result := Bounds(Trunc(WorldX), Trunc(WorldY), Width, Height); |
Result := Bounds(Round(WorldX), Round(WorldY), Width, Height); |
end; |
function TSprite.GetClientRect: TRect; |
506,6 → 872,41 |
end; |
end; |
procedure TSprite.Assign(Source: TPersistent); |
begin |
if Source is TSprite then |
begin |
FCollisioned := TSprite(Source).FCollisioned; |
FMoved := TSprite(Source).FMoved; |
FVisible := TSprite(Source).FVisible; |
FHeight := TSprite(Source).FHeight; |
FWidth := TSprite(Source).FWidth; |
FX := TSprite(Source).FX; |
FY := TSprite(Source).FY; |
FZ := TSprite(Source).FZ; |
{$IFDEF Ver4Up} |
FSelected := TSprite(Source).FSelected; |
FGroupNumber := TSprite(Source).FGroupNumber; |
{$ENDIF} |
{copy image base - when exists} |
FDXImage := TSprite(Source).FDXImage; |
FDXImageName := TSprite(Source).FDXImageName; |
FDXImageList := TSprite(Source).FDXImageList; |
{events} |
FOnDraw := TSprite(Source).FOnDraw; |
FOnMove := TSprite(Source).FOnMove; |
FOnCollision := TSprite(Source).FOnCollision; |
FOnGetImage := TSprite(Source).FOnGetImage; |
end |
else |
inherited; |
end; |
procedure TSprite.ReAnimate(MoveCount: Integer); |
begin |
end; |
{ TImageSprite } |
constructor TImageSprite.Create(AParent: TSprite); |
512,14 → 913,39 |
begin |
inherited Create(AParent); |
FTransparent := True; |
FAlpha := 255; |
FAngle := 0; |
FBlendMode := rtDraw; |
FCenterX := 0.5; |
FCenterY := 0.5; |
FBlurImage := False; |
FillChar(FBlurImageArr, SizeOf(FBlurImageArr), 0); |
FTextureFilter := D2D_POINT; |
end; |
procedure TImageSprite.SetImage(AImage: TPictureCollectionItem); |
begin |
FDXImage := AImage; |
FDXImageName := ''; |
if AImage <> nil then |
begin |
Width := AImage.Width; |
Height := AImage.Height; |
FDXImageName := FDXImage.Name; |
end |
else |
begin |
Width := 0; |
Height := 0; |
end; |
end; {SetImage} |
function TImageSprite.GetBoundsRect: TRect; |
var |
dx, dy: Integer; |
begin |
dx := Trunc(WorldX); |
dy := Trunc(WorldY); |
dx := Round(WorldX); |
dy := Round(WorldY); |
if FTile then |
begin |
dx := Mod2(dx, FEngine.SurfaceRect.Right+Width); |
537,32 → 963,17 |
procedure TImageSprite.DoMove(MoveCount: Integer); |
begin |
FAnimPos := FAnimPos + FAnimSpeed*MoveCount; |
if FAnimLooped then |
begin |
if FAnimCount>0 then |
FAnimPos := Mod2f(FAnimPos, FAnimCount) |
if AsSigned(FOnMove) then |
FOnMove(Self, MoveCount) |
else |
FAnimPos := 0; |
end else |
begin |
if FAnimPos>=FAnimCount then |
begin |
FAnimPos := FAnimCount-1; |
FAnimSpeed := 0; |
ReAnimate(MoveCount); |
end; |
if FAnimPos<0 then |
begin |
FAnimPos := 0; |
FAnimSpeed := 0; |
end; |
end; |
end; |
function TImageSprite.GetDrawImageIndex: Integer; |
begin |
Result := FAnimStart+Trunc(FAnimPos); |
Result := FAnimStart + Trunc(FAnimPos); //solve 1.07f to Round() |
end; |
function TImageSprite.GetDrawRect: TRect; |
571,19 → 982,52 |
OffsetRect(Result, (Width-Image.Width) div 2, (Height-Image.Height) div 2); |
end; |
procedure TImageSprite.LoadImage; |
var |
vImage: TPictureCollectionItem; |
begin |
if Image = nil then |
if AsSigned(FOnGetImage) then |
begin |
vImage := nil; |
FOnGetImage(Self, vImage); |
if vImage <> Image then |
Image := vImage; |
end |
else |
if FDXImageName <> '' then |
if Assigned(FDXImageList) then |
begin |
Image := FDXImageList.Items.Find(FDXImageName); |
end; |
end; |
procedure TImageSprite.DoDraw; |
var |
ImageIndex: Integer; |
r: TRect; |
begin |
ImageIndex := GetDrawImageIndex; |
r := GetDrawRect; |
Image.Draw(FEngine.Surface, r.Left, r.Top, ImageIndex); |
LoadImage; |
if Image = nil then |
Exit; |
if AsSigned(FOnDraw) then {owner draw called here} |
FOnDraw(Self) |
else {when is not owner draw then go here} |
begin |
r := Bounds(Round(WorldX), Round(WorldY), Width, Height); |
{New function implemented} |
if Assigned(FEngine.FOwner) then |
DXDraws.DXDraw_Paint(FEngine.FOwner.FDXDraw, Image, r, GetDrawImageIndex, |
FBlurImageArr, FBlurImage, FTextureFilter, FMirrorFlip, FBlendMode, FAngle, |
FAlpha, FCenterX, FCenterY); |
end; |
end; |
function ImageCollisionTest(suf1, suf2: TDirectDrawSurface; const rect1, rect2: TRect; |
x1,y1,x2,y2: Integer; DoPixelCheck: Boolean): Boolean; |
{$WARNINGS OFF} |
{$HINTS OFF} |
function TImageSprite.ImageCollisionTest(suf1, suf2: TDirectDrawSurface; |
const rect1, rect2: TRect; x1, y1, x2, y2: Integer; DoPixelCheck: Boolean): Boolean; |
function ClipRect(var DestRect: TRect; const DestRect2: TRect): Boolean; |
begin |
with DestRect do |
599,31 → 1043,42 |
type |
PRGB = ^TRGB; |
TRGB = packed record |
R, G, B: Byte; |
R, G, B: byte; |
end; |
var |
ddsd1, ddsd2: TDDSurfaceDesc; |
r1, r2: TRect; |
ddsd1, ddsd2: {$IFDEF D3D_deprecated}TDDSURFACEDESC{$ELSE}TDDSurfaceDesc2{$ENDIF}; |
r1, r2, r1a, r2a: TRect; |
tc1, tc2: DWORD; |
x, y, w, h: Integer; |
P1, P2: Pointer; |
begin |
r1 := rect1; |
with rect2 do r2 := Bounds(x2-x1, y2-y1, Right-Left, Bottom-Top); |
with rect1 do |
r1 := Bounds(0, 0, Right - Left, Bottom - Top); |
r1a := r1; |
with rect2 do |
r2 := Bounds(0, 0, Right - Left, Bottom - Top); |
r2a := r2; |
with rect2 do |
r2 := Bounds(x2 - x1, y2 - y1, Right - Left, Bottom - Top); |
Result := OverlapRect(r1, r2); |
if (suf1=nil) or (suf2=nil) then Exit; |
if (suf1 = nil) or (suf2 = nil) then |
Exit; |
if DoPixelCheck and Result then |
begin |
{ Get Overlapping rectangle } |
with r1 do r1 := Bounds(Max(x2-x1, 0), Max(y2-y1, 0), Right-Left, Bottom-Top); |
with r2 do r2 := Bounds(Max(x1-x2, 0), Max(y1-y2, 0), Right-Left, Bottom-Top); |
with r1 do |
r1 := Bounds(Max(x2 - x1, 0), Max(y2 - y1, 0), Right - Left, Bottom - Top); |
with r2 do |
r2 := Bounds(Max(x1 - x2, 0), Max(y1 - y2, 0), Right - Left, Bottom - Top); |
ClipRect(r1, rect1); |
ClipRect(r2, rect2); |
ClipRect(r1, r1a); |
ClipRect(r2, r2a); |
w := Min(r1.Right-r1.Left, r2.Right-r2.Left); |
h := Min(r1.Bottom-r1.Top, r2.Bottom-r2.Top); |
633,6 → 1088,18 |
{ Pixel check !!! } |
ddsd1.dwSize := SizeOf(ddsd1); |
with rect1 do |
r1 := Bounds(r1.Left + left, r1.Top + top, w, h); |
with rect2 do |
r2 := Bounds(r2.Left + left, r2.Top + top, w, h); |
if suf1 = suf2 then |
begin |
suf2.Lock(r2, ddsd2); |
suf2.unlock; |
end; |
if suf1.Lock(r1, ddsd1) then |
begin |
try |
640,8 → 1107,10 |
if (suf1=suf2) or suf2.Lock(r2, ddsd2) then |
begin |
try |
if suf1=suf2 then ddsd2 := ddsd1; |
if ddsd1.ddpfPixelFormat.dwRGBBitCount<>ddsd2.ddpfPixelFormat.dwRGBBitCount then Exit; |
{this line out: don't test pixel but rect only, its wrong} |
{if suf1=suf2 then ddsd2 := ddsd1;} |
if ddsd1.ddpfPixelFormat.dwRGBBitCount <> ddsd2.ddpfPixelFormat.dwRGBBitCount then |
Exit; |
{ Get transparent color } |
tc1 := ddsd1.ddckCKSrcBlt.dwColorSpaceLowValue; |
648,7 → 1117,8 |
tc2 := ddsd2.ddckCKSrcBlt.dwColorSpaceLowValue; |
case ddsd1.ddpfPixelFormat.dwRGBBitCount of |
8 : begin |
8: |
begin |
for y:=0 to h-1 do |
begin |
P1 := Pointer(Integer(ddsd1.lpSurface)+y*ddsd1.lPitch); |
655,13 → 1125,15 |
P2 := Pointer(Integer(ddsd2.lpSurface)+y*ddsd2.lPitch); |
for x:=0 to w-1 do |
begin |
if (PByte(P1)^<>tc1) and (PByte(P2)^<>tc2) then Exit; |
if (PByte(P1)^ <> tc1) and (PByte(P2)^ <> tc2) then |
Exit; |
Inc(PByte(P1)); |
Inc(PByte(P2)); |
end; |
end; |
end; |
16: begin |
16: |
begin |
for y:=0 to h-1 do |
begin |
P1 := Pointer(Integer(ddsd1.lpSurface)+y*ddsd1.lPitch); |
668,13 → 1140,15 |
P2 := Pointer(Integer(ddsd2.lpSurface)+y*ddsd2.lPitch); |
for x:=0 to w-1 do |
begin |
if (PWord(P1)^<>tc1) and (PWord(P2)^<>tc2) then Exit; |
if (PWord(P1)^ <> tc1) and (PWord(P2)^ <> tc2) then |
Exit; |
Inc(PWord(P1)); |
Inc(PWord(P2)); |
end; |
end; |
end; |
24: begin |
24: |
begin |
for y:=0 to h-1 do |
begin |
P1 := Pointer(Integer(ddsd1.lpSurface)+y*ddsd1.lPitch); |
681,14 → 1155,19 |
P2 := Pointer(Integer(ddsd2.lpSurface)+y*ddsd2.lPitch); |
for x:=0 to w-1 do |
begin |
if ((PRGB(P1)^.R shl 16) or (PRGB(P1)^.G shl 8) or PRGB(P1)^.B<>tc1) and |
((PRGB(P2)^.R shl 16) or (PRGB(P2)^.G shl 8) or PRGB(P2)^.B<>tc2) then Exit; |
with PRGB(P1)^ do |
if (R shl 16) or (G shl 8) or B <> tc1 then |
Exit; |
with PRGB(P2)^ do |
if (R shl 16) or (G shl 8) or B <> tc2 then |
Exit; |
Inc(PRGB(P1)); |
Inc(PRGB(P2)); |
end; |
end; |
end; |
32: begin |
32: |
begin |
for y:=0 to h-1 do |
begin |
P1 := Pointer(Integer(ddsd1.lpSurface)+y*ddsd1.lPitch); |
695,7 → 1174,8 |
P2 := Pointer(Integer(ddsd2.lpSurface)+y*ddsd2.lPitch); |
for x:=0 to w-1 do |
begin |
if (PDWORD(P1)^ and $FFFFFF<>tc1) and (PDWORD(P2)^ and $FFFFFF<>tc2) then Exit; |
if (PDWORD(P1)^ <> tc1) and (PDWORD(P2)^ <> tc2) then |
Exit; |
Inc(PDWORD(P1)); |
Inc(PDWORD(P2)); |
end; |
703,7 → 1183,8 |
end; |
end; |
finally |
if suf1<>suf2 then suf2.UnLock; |
if suf1 <> suf2 then |
suf2.UnLock; |
end; |
end; |
finally |
715,85 → 1196,351 |
end; |
end; |
{$HINTS ON} |
{$WARNINGS ON} |
function TImageSprite.TestCollision(Sprite: TSprite): Boolean; |
var |
img1, img2: Integer; |
b1, b2: TRect; |
box1, box2: TRect; |
begin |
if (Sprite is TImageSprite) and FPixelCheck then |
if (Sprite is TImageSprite) then |
if FPixelCheck then |
begin |
b1 := GetDrawRect; |
b2 := TImageSprite(Sprite).GetDrawRect; |
box1 := GetDrawRect; |
box2 := TImageSprite(Sprite).GetDrawRect; |
img1 := GetDrawImageIndex; |
img2 := TImageSprite(Sprite).GetDrawImageIndex; |
Result := ImageCollisionTest(Image.PatternSurfaces[img1], TImageSprite(Sprite).Image.PatternSurfaces[img2], |
Image.PatternRects[img1], TImageSprite(Sprite).Image.PatternRects[img2], |
b1.Left, b1.Top, b2.Left, b2.Top, True); |
end else |
Result := ImageCollisionTest(Image.PatternSurfaces[img1], |
TImageSprite(Sprite).Image.PatternSurfaces[img2], Image.PatternRects[img1], |
TImageSprite(Sprite).Image.PatternRects[img2], box1.Left, box1.Top, |
box2.Left, box2.Top, True); |
end |
else |
Result := OverlapRect(Bounds(Round(Sprite.WorldX), Round(Sprite.WorldY), |
Sprite.Width, Sprite.Height), Bounds(Round(WorldX), Round(WorldY), Width, Height)) |
else |
Result := inherited TestCollision(Sprite); |
end; |
{ TImageSpriteEx } |
procedure TImageSprite.Assign(Source: TPersistent); |
begin |
if Source is TImageSprite then begin |
FCenterX := TImageSprite(Source).FCenterX; |
FCenterY := TImageSprite(Source).FCenterY; |
FAnimCount := TImageSprite(Source).FAnimCount; |
FAnimLooped := TImageSprite(Source).FAnimLooped; |
FAnimPos := TImageSprite(Source).FAnimPos; |
FAnimSpeed := TImageSprite(Source).FAnimSpeed; |
FAnimStart := TImageSprite(Source).FAnimStart; |
FDXImage := TImageSprite(Source).FDXImage; |
FPixelCheck := TImageSprite(Source).FPixelCheck; |
FTile := TImageSprite(Source).FTile; |
FTransparent := TImageSprite(Source).FTransparent; |
FAngle := TImageSprite(Source).FAngle; |
FAlpha := TImageSprite(Source).FAlpha; |
FBlendMode := TImageSprite(Source).FBlendMode; |
FBlurImage := TImageSprite(Source).FBlurImage; |
end; |
inherited; |
end; |
constructor TImageSpriteEx.Create(AParent: TSprite); |
procedure TImageSprite.ReAnimate(MoveCount: Integer); |
var |
I: Integer; |
begin |
inherited Create(AParent); |
FAlpha := 255; |
FAnimPos := FAnimPos + FAnimSpeed * MoveCount; |
if FAnimLooped then |
begin |
if FAnimCount > 0 then |
FAnimPos := Mod2f(FAnimPos, FAnimCount) |
else |
FAnimPos := 0; |
end |
else |
begin |
if Round(FAnimPos) >= FAnimCount then |
begin |
FAnimPos := FAnimCount - 1; |
FAnimSpeed := 0; |
end; |
if FAnimPos < 0 then |
begin |
FAnimPos := 0; |
FAnimSpeed := 0; |
end; |
end; |
if FBlurImage then |
begin |
{ale jen jsou-li jine souradnice} |
if (FBlurImageArr[High(FBlurImageArr)].eX <> Round(WorldX)) or |
(FBlurImageArr[High(FBlurImageArr)].eY <> Round(WorldY)) then |
begin |
for i := Low(FBlurImageArr) + 1 to High(FBlurImageArr) do |
begin |
FBlurImageArr[i - 1] := FBlurImageArr[i]; |
{adjust the blur intensity} |
FBlurImageArr[i - 1].eIntensity := Round(FAlpha / (High(FBlurImageArr) + 1)) * (i - 1); |
end; |
with FBlurImageArr[High(FBlurImageArr)] do |
begin |
eX := Round(WorldX); |
eY := Round(WorldY); |
ePatternIndex := GetDrawImageIndex; |
eIntensity := Round(FAlpha / (High(FBlurImageArr) + 1)) * High(FBlurImageArr); |
eBlendMode := FBlendMode; |
eActive := True; |
end; |
end; |
end; |
end; |
procedure TImageSpriteEx.DoDraw; |
function TImageSprite.StoreCenterX: Boolean; |
begin |
Result := FCenterX <> 0.5; |
end; |
function TImageSprite.StoreCenterY: Boolean; |
begin |
Result := FCenterY <> 0.5; |
end; |
function TImageSprite.StoreAlpha: Boolean; |
begin |
Result := FAlpha <> 0.0; |
end; |
procedure TImageSprite.DefineProperties(Filer: TFiler); |
begin |
inherited DefineProperties(Filer); |
Filer.DefineProperty('BlendMode', ReadBlendMode, WriteBlendMode, FBlendMode <> rtDraw); |
Filer.DefineProperty('Angle', ReadAngle, WriteAngle, FAngle <> 0); |
Filer.DefineProperty('CenterX', ReadCenterX, WriteCenterX, FCenterX <> 0.5); |
Filer.DefineProperty('CenterY', ReadCenterY, WriteCenterY, FCenterY <> 0.5); |
Filer.DefineProperty('Alpha', ReadAlpha, WriteAlpha, FAlpha <> $FF); |
Filer.DefineProperty('AnimCount', ReadAnimCount, WriteAnimCount, FAnimCount <> 0); |
Filer.DefineProperty('AnimLooped', ReadAnimLooped, WriteAnimLooped, FAnimLooped); |
Filer.DefineProperty('AnimPos', ReadAnimPos, WriteAnimPos, FAnimPos <> 0); |
Filer.DefineProperty('AnimSpeed', ReadAnimSpeed, WriteAnimSpeed, FAnimSpeed <> 0); |
Filer.DefineProperty('AnimStart', ReadAnimStart, WriteAnimStart, True); |
Filer.DefineProperty('PixelCheck', ReadPixelCheck, WritePixelCheck, FPixelCheck); |
Filer.DefineProperty('Tile', ReadTile, WriteTile, FTile); |
Filer.DefineProperty('BlurImage', ReadBlurImage, WriteBlurImage, FBlurImage); |
Filer.DefineProperty('MirrorFlip', ReadMirrorFlip, WriteMirrorFlip, FMirrorFlip <> []); |
Filer.DefineProperty('TextureFilter', ReadTextureFilter, WriteTextureFilter, FTextureFilter <> D2D_POINT); |
end; |
procedure TImageSprite.WriteMirrorFlip(Writer: TWriter); |
var |
r: TRect; |
q: TRenderMirrorFlip; |
s, ss: string; |
// I: Integer; |
//PI: PPropInfo; |
begin |
r := Bounds(Trunc(WorldX), Trunc(WorldY), Width, Height); |
// PI := GetPropInfo(Self,'MirrorFlip'); |
// I := Integer(FMirrorFlip); |
s := '[]'; ss := ''; |
for q := Low(TRenderMirrorFlip) to High(TRenderMirrorFlip) do |
if q in FMirrorFlip then |
ss := ss + GetEnumName(TypeInfo(TRenderMirrorFlip), Ord(q)) + ', '; |
if ss <> '' then |
s := '[' + Copy(ss, 1, Length(ss) - 2) + ']'; |
Writer.WriteString(s); |
//--- Writer.WriteString(SetToString(PI, GetOrdProp(Self, PI), True)); |
end; |
if FAngle and $FF=0 then |
procedure TImageSprite.ReadMirrorFlip(Reader: TReader); |
var |
q: TRenderMirrorFlip; |
qq: TRenderMirrorFlipSet; |
s {, ss}: string; |
// PI: PPropInfo; |
begin |
if FAlpha<255 then |
// PI := GetPropInfo(Self,'MirrorFlip'); |
// SetOrdProp(Self,PI,StringToSet(PI, Reader.ReadString)); |
qq := []; |
s := Reader.ReadString; |
for q := Low(TRenderMirrorFlip) to High(TRenderMirrorFlip) do |
if Pos(GetEnumName(TypeInfo(TRenderMirrorFlip), Ord(q)), s) <> 0 then |
qq := qq + [q]; |
FMirrorFlip := qq; |
end; |
procedure TImageSprite.ReadAnimLooped(Reader: TReader); |
begin |
Image.DrawAlpha(FEngine.FSurface, r, GetDrawImageIndex, FAlpha) |
end else |
FAnimLooped := Reader.ReadBoolean; |
end; |
procedure TImageSprite.WriteAnimLooped(Writer: TWriter); |
begin |
Image.StretchDraw(FEngine.FSurface, r, GetDrawImageIndex); |
Writer.WriteBoolean(FAnimLooped); |
end; |
end else |
procedure TImageSprite.ReadAnimPos(Reader: TReader); |
begin |
if FAlpha<255 then |
FAnimPos := Reader.ReadFloat; |
end; |
procedure TImageSprite.WriteAnimPos(Writer: TWriter); |
begin |
Image.DrawRotateAlpha(FEngine.FSurface, (r.Left+r.Right) div 2, (r.Top+r.Bottom) div 2, |
Width, Height, GetDrawImageIndex, 0.5, 0.5, FAngle, FAlpha) |
end else |
Writer.WriteFloat(FAnimPos); |
end; |
procedure TImageSprite.ReadAnimSpeed(Reader: TReader); |
begin |
Image.DrawRotate(FEngine.FSurface, (r.Left+r.Right) div 2, (r.Top+r.Bottom) div 2, |
Width, Height, GetDrawImageIndex, 0.5, 0.5, FAngle) |
FAnimSpeed := Reader.ReadFloat; |
end; |
procedure TImageSprite.WriteAnimSpeed(Writer: TWriter); |
begin |
Writer.WriteFloat(FAnimSpeed); |
end; |
procedure TImageSprite.ReadAnimStart(Reader: TReader); |
begin |
FAnimStart := Reader.ReadInteger; |
end; |
function TImageSpriteEx.GetBoundsRect: TRect; |
procedure TImageSprite.WriteAnimStart(Writer: TWriter); |
begin |
Result := FEngine.SurfaceRect; |
Writer.WriteInteger(FAnimStart); |
end; |
function TImageSpriteEx.TestCollision(Sprite: TSprite): Boolean; |
procedure TImageSprite.ReadPixelCheck(Reader: TReader); |
begin |
if Sprite is TImageSpriteEx then |
FPixelCheck := Reader.ReadBoolean; |
end; |
procedure TImageSprite.WritePixelCheck(Writer: TWriter); |
begin |
Result := OverlapRect(Bounds(Trunc(Sprite.WorldX), Trunc(Sprite.WorldY), Sprite.Width, Sprite.Height), |
Bounds(Trunc(WorldX), Trunc(WorldY), Width, Height)); |
end else |
Writer.WriteBoolean(FPixelCheck); |
end; |
procedure TImageSprite.ReadTile(Reader: TReader); |
begin |
Result := OverlapRect(Sprite.BoundsRect, Bounds(Trunc(WorldX), Trunc(WorldY), Width, Height)); |
FTile := Reader.ReadBoolean; |
end; |
procedure TImageSprite.WriteTile(Writer: TWriter); |
begin |
Writer.WriteBoolean(FTile); |
end; |
procedure TImageSprite.ReadAnimCount(Reader: TReader); |
begin |
FAnimCount := Reader.ReadInteger; |
end; |
procedure TImageSprite.WriteAnimCount(Writer: TWriter); |
begin |
Writer.WriteInteger(FAnimCount); |
end; |
procedure TImageSprite.ReadAlpha(Reader: TReader); |
begin |
FAlpha := Reader.ReadInteger; |
end; |
procedure TImageSprite.WriteAlpha(Writer: TWriter); |
begin |
Writer.WriteInteger(FAlpha); |
end; |
procedure TImageSprite.ReadCenterY(Reader: TReader); |
begin |
FCenterY := Reader.ReadFloat; |
end; |
procedure TImageSprite.WriteCenterY(Writer: TWriter); |
begin |
Writer.WriteFloat(FCenterY); |
end; |
procedure TImageSprite.ReadCenterX(Reader: TReader); |
begin |
FCenterX := Reader.ReadFloat; |
end; |
procedure TImageSprite.WriteCenterX(Writer: TWriter); |
begin |
Writer.WriteFloat(FCenterX); |
end; |
procedure TImageSprite.ReadAngle(Reader: TReader); |
begin |
FAngle := Reader.{$IFDEF VER4UP}ReadSingle{$ELSE}ReadFloat{$ENDIF}; |
end; |
procedure TImageSprite.WriteAngle(Writer: TWriter); |
begin |
Writer.{$IFDEF VER4UP}WriteSingle{$ELSE}WriteFloat{$ENDIF}(FAngle); |
end; |
procedure TImageSprite.ReadBlendMode(Reader: TReader); |
begin |
FBlendMode := TRenderType(GetEnumValue(TypeInfo(TRenderType), Reader.ReadString)); |
end; |
procedure TImageSprite.WriteBlendMode(Writer: TWriter); |
begin |
Writer.WriteString(GetEnumName(TypeInfo(TRenderType), Ord(FBlendMode))); |
end; |
procedure TImageSprite.ReadBlurImage(Reader: TReader); |
begin |
FBlurImage := Reader.ReadBoolean; |
end; |
procedure TImageSprite.WriteBlurImage(Writer: TWriter); |
begin |
Writer.WriteBoolean(FBlurImage); |
end; |
procedure TImageSprite.ReadTextureFilter(Reader: TReader); |
begin |
FTextureFilter := TD2DTextureFilter(Reader.ReadInteger); |
end; |
procedure TImageSprite.WriteTextureFilter(Writer: TWriter); |
begin |
Writer.WriteInteger(Ord(FTextureFilter)); |
end; |
procedure TImageSprite.SetBlurImageArr(const Value: TBlurImageArr); |
begin |
FBlurImageArr := Value; |
end; |
procedure TImageSprite.SetBlurImage(const Value: Boolean); |
begin |
if (FBlurImage <> Value) and (Value) then |
begin |
FillChar(FBlurImageArr, SizeOf(FBlurImageArr), 0); //get out when set up |
end; |
FBlurImage := Value; |
end; |
function TImageSprite.GetImage: TPictureCollectionItem; |
begin |
Result := FDXImage; |
end; |
procedure TImageSprite.SetMirrorFlip(const Value: TRenderMirrorFlipSet); |
begin |
FMirrorFlip := Value; |
end; |
{ TBackgroundSprite } |
constructor TBackgroundSprite.Create(AParent: TSprite); |
begin |
inherited Create(AParent); |
FMap := nil; |
FMapWidth := 0; |
FMapHeight := 0; |
Collisioned := False; |
end; |
803,15 → 1550,35 |
inherited Destroy; |
end; |
procedure TBackgroundSprite.ChipsDraw(Image: TPictureCollectionItem; X, Y: Integer; PatternIndex: Integer); |
begin |
if AsSigned(FOnDraw) then |
FOnDraw(Self) |
else |
begin |
//Image.Draw(FEngine.Surface, X, Y, PatternIndex); |
{New function implemented} |
if Assigned(FEngine.FOwner) then |
//Image.DrawAlpha(DXDraw1.Surface,ChipsRect,ChipsPatternIndex,Blend); |
DXDraws.DXDraw_Paint(FEngine.FOwner.FDXDraw, Image, ChipsRect, ChipsPatternIndex, |
FBlurImageArr, FBlurImage, FTextureFilter, FMirrorFlip, FBlendMode, FAngle, |
Map[X,Y].Alpha, FCenterX, FCenterY); |
end; |
end; |
procedure TBackgroundSprite.DoDraw; |
var |
_x, _y, cx, cy, cx2, cy2, c, ChipWidth, ChipHeight: Integer; |
TmpX, TmpY, cx, cy, cx2, cy2, PatternIndex, ChipWidth, ChipHeight: Integer; |
StartX, StartY, EndX, EndY, StartX_, StartY_, OfsX, OfsY, dWidth, dHeight: Integer; |
r: TRect; |
Q: TMapType; |
begin |
if Image=nil then Exit; |
LoadImage; |
if Image = nil then |
Exit; |
if (FMapWidth<=0) or (FMapHeight<=0) then Exit; |
if (FMapWidth <= 0) or (FMapHeight <= 0) then |
Exit; |
r := Image.PatternRects[0]; |
ChipWidth := r.Right-r.Left; |
820,13 → 1587,13 |
dWidth := (FEngine.SurfaceRect.Right+ChipWidth) div ChipWidth+1; |
dHeight := (FEngine.SurfaceRect.Bottom+ChipHeight) div ChipHeight+1; |
_x := Trunc(WorldX); |
_y := Trunc(WorldY); |
TmpX := Round(WorldX); |
TmpY := Round(WorldY); |
OfsX := _x mod ChipWidth; |
OfsY := _y mod ChipHeight; |
OfsX := TmpX mod ChipWidth; |
OfsY := TmpY mod ChipHeight; |
StartX := _x div ChipWidth; |
StartX := TmpX div ChipWidth; |
StartX_ := 0; |
if StartX<0 then |
835,7 → 1602,7 |
StartX := 0; |
end; |
StartY := _y div ChipHeight; |
StartY := TmpY div ChipHeight; |
StartY_ := 0; |
if StartY<0 then |
855,52 → 1622,87 |
for cx:=-1 to dWidth do |
begin |
cx2 := Mod2((cx-StartX+StartX_), FMapWidth); |
c := Chips[cx2, cy2]; |
if c>=0 then |
Image.Draw(FEngine.Surface, cx*ChipWidth+OfsX, cy*ChipHeight+OfsY, c); |
PatternIndex := Chips[cx2, cy2]; |
ChipsPatternIndex := PatternIndex; //refresh only |
ChipsRect := Bounds(cx * ChipWidth + OfsX, cy * ChipHeight + OfsY, ChipWidth, ChipHeight); |
if PatternIndex >= 0 then |
begin |
if AsSigned(FOnDraw) then |
FOnDraw(Self) |
else |
begin |
{New function implemented} |
if Assigned(FEngine.FOwner) then |
begin |
Q := Map[cx2,cy2]; |
DXDraws.DXDraw_Paint(FEngine.FOwner.FDXDraw, Image, ChipsRect, Q.MapChip, |
FBlurImageArr, FBlurImage, Q.TextureFilter, Q.MirrorFlip, Q.Rendered, Q.Angle, |
Q.Alpha, Q.CenterX, Q.CenterY); |
end; |
end; |
end else |
end; |
end; |
end; |
end |
else |
begin |
for cy:=StartY to EndY-1 do |
for cx:=StartX to EndX-1 do |
begin |
c := Chips[cx-StartX+StartX_, cy-StartY+StartY_]; |
if c>=0 then |
Image.Draw(FEngine.Surface, cx*ChipWidth+OfsX, cy*ChipHeight+OfsY, c); |
PatternIndex := Chips[cx - StartX + StartX_, cy - StartY + StartY_]; |
ChipsPatternIndex := PatternIndex; //refresh only |
ChipsRect := Bounds(cx * ChipWidth + OfsX, cy * ChipHeight + OfsY, ChipWidth, ChipHeight); |
if PatternIndex >= 0 then |
begin |
if AsSigned(FOnDraw) then |
FOnDraw(Self) |
else |
begin |
{New function implemented} |
if Assigned(FEngine.FOwner) then |
begin |
Q := Map[cx,cy]; |
DXDraws.DXDraw_Paint(FEngine.FOwner.FDXDraw, Image, ChipsRect, Q.MapChip, |
FBlurImageArr, FBlurImage, Q.TextureFilter, Q.MirrorFlip, Q.Rendered, Q.Angle, |
Q.Alpha, Q.CenterX, Q.CenterY); |
end; |
end; |
end |
end; |
end; |
end; |
function TBackgroundSprite.TestCollision(Sprite: TSprite): Boolean; |
var |
b, b1, b2: TRect; |
box0, box1, box2: TRect; |
cx, cy, ChipWidth, ChipHeight: Integer; |
r: TRect; |
begin |
Result := True; |
if Image=nil then Exit; |
if (FMapWidth<=0) or (FMapHeight<=0) then Exit; |
if Image = nil then |
Exit; |
if (FMapWidth <= 0) or (FMapHeight <= 0) then |
Exit; |
r := Image.PatternRects[0]; |
ChipWidth := r.Right-r.Left; |
ChipHeight := r.Bottom-r.Top; |
box1 := Sprite.BoundsRect; |
box2 := BoundsRect; |
IntersectRect(box0, box1, box2); |
b1 := Sprite.BoundsRect; |
b2 := BoundsRect; |
OffsetRect(box0, -Round(WorldX), -Round(WorldY)); |
OffsetRect(box1, -Round(WorldX), -Round(WorldY)); |
IntersectRect(b, b1, b2); |
OffsetRect(b, -Trunc(WorldX), -Trunc(WorldY)); |
OffsetRect(b1, -Trunc(WorldX), -Trunc(WorldY)); |
for cy:=(b.Top-ChipHeight+1) div ChipHeight to b.Bottom div ChipHeight do |
for cx:=(b.Left-ChipWidth+1) div ChipWidth to b.Right div ChipWidth do |
for cy := (box0.Top - ChipHeight + 1) div ChipHeight to box0.Bottom div ChipHeight do |
for cx := (box0.Left - ChipWidth + 1) div ChipWidth to box0.Right div ChipWidth do |
if CollisionMap[Mod2(cx, MapWidth), Mod2(cy, MapHeight)] then |
begin |
if OverlapRect(Bounds(cx*ChipWidth, cy*ChipHeight, ChipWidth, ChipHeight), b1) then Exit; |
if OverlapRect(Bounds(cx * ChipWidth, cy * ChipHeight, ChipWidth, |
ChipHeight), box1) then |
Exit; |
end; |
Result := False; |
909,22 → 1711,43 |
function TBackgroundSprite.GetChip(X, Y: Integer): Integer; |
begin |
if (X>=0) and (X<FMapWidth) and (Y>=0) and (Y<FMapHeight) then |
Result := PInteger(Integer(FMap)+(Y*FMapWidth+X)*SizeOf(Integer))^ |
Result := PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.MapChip |
else |
Result := -1; |
end; |
type |
PBoolean = ^Boolean; |
function TBackgroundSprite.GetCollisionMapItem(X, Y: Integer): Boolean; |
begin |
if (X>=0) and (X<FMapWidth) and (Y>=0) and (Y<FMapHeight) then |
Result := PBoolean(Integer(FCollisionMap)+(Y*FMapWidth+X)*SizeOf(Boolean))^ |
Result := PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.CollisionChip |
else |
Result := False; |
end; |
function TBackgroundSprite.GetCollisionRectItem(X, Y: Integer): TRect; |
begin |
if (X >= 0) and (X < FMapWidth) and (Y >= 0) and (Y < FMapHeight) then |
Result := PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.CollisionRect |
else |
Result := Rect(0, 0, 0, 0); |
end; |
function TBackgroundSprite.GetTagMap(X, Y: Integer): Integer; |
begin |
if (X >= 0) and (X < FMapWidth) and (Y >= 0) and (Y < FMapHeight) then |
Result := PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.Tag |
else |
Result := 0; |
end; |
function TBackgroundSprite.GetMap(X, Y: Integer): TMapType; |
begin |
if (X >= 0) and (X < FMapWidth) and (Y >= 0) and (Y < FMapHeight) then |
Result := PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^ |
else |
FillChar(Result, SizeOf(Result), 0); |
end; |
function TBackgroundSprite.GetBoundsRect: TRect; |
begin |
if FTile then |
931,9 → 1754,10 |
Result := FEngine.SurfaceRect |
else |
begin |
LoadImage; |
if Image<>nil then |
Result := Bounds(Trunc(WorldX), Trunc(WorldY), |
Image.Width*FMapWidth, Image.Height*FMapHeight) |
Result := Bounds(Round(WorldX), Round(WorldY), Image.Width * FMapWidth, |
Image.Height * FMapHeight) |
else |
Result := Rect(0, 0, 0, 0); |
end; |
942,15 → 1766,33 |
procedure TBackgroundSprite.SetChip(X, Y: Integer; Value: Integer); |
begin |
if (X>=0) and (X<FMapWidth) and (Y>=0) and (Y<FMapHeight) then |
PInteger(Integer(FMap)+(Y*FMapWidth+X)*SizeOf(Integer))^ := Value; |
PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.MapChip := Value; |
end; |
procedure TBackgroundSprite.SetCollisionMapItem(X, Y: Integer; Value: Boolean); |
begin |
if (X>=0) and (X<FMapWidth) and (Y>=0) and (Y<FMapHeight) then |
PBoolean(Integer(FCollisionMap)+(Y*FMapWidth+X)*SizeOf(Boolean))^ := Value; |
PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.CollisionChip := Value; |
end; |
procedure TBackgroundSprite.SetCollisionRectItem(X, Y: Integer; Value: TRect); |
begin |
if (X >= 0) and (X < FMapWidth) and (Y >= 0) and (Y < FMapHeight) then |
PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.CollisionRect := Value; |
end; |
procedure TBackgroundSprite.SetTagMap(X, Y: Integer; Value: Integer); |
begin |
if (X >= 0) and (X < FMapWidth) and (Y >= 0) and (Y < FMapHeight) then |
PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.Tag := Value; |
end; |
procedure TBackgroundSprite.SetMap(X, Y: Integer; Value: TMapType); |
begin |
if (X >= 0) and (X < FMapWidth) and (Y >= 0) and (Y < FMapHeight) then |
PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^ := Value; |
end; |
procedure TBackgroundSprite.SetMapHeight(Value: Integer); |
begin |
SetMapSize(FMapWidth, Value); |
961,25 → 1803,116 |
SetMapSize(Value, FMapHeight); |
end; |
procedure TBackgroundSprite.SetImage(Img: TPictureCollectionItem); |
begin |
inherited SetImage(Img); |
if Assigned(Img) then |
begin |
FWidth := FMapWidth * Img.Width; |
FHeight := FMapHeight * Img.Height; |
end |
else |
begin |
FWidth := 0; |
FHeight := 0; |
end; |
end; |
procedure TBackgroundSprite.SetMapSize(AMapWidth, AMapHeight: Integer); |
var I: Integer; |
begin |
if (FMapWidth<>AMapWidth) or (FMapHeight<>AMapHeight) then |
if (FMapWidth <> AMapWidth) or (FMapHeight <> AMapHeight) or (FMap = nil) then |
begin |
try |
if (AMapWidth<=0) or (AMapHeight<=0) then |
begin |
FreeMem(FMap, FMapWidth * FMapHeight * SizeOf(TMapType)); FMap := nil; |
AMapWidth := 0; |
AMapHeight := 0; |
end; |
FMapWidth := AMapWidth; |
FMapHeight := AMapHeight; |
ReAllocMem(FMap, FMapWidth*FMapHeight*SizeOf(Integer)); |
FillChar(FMap^, FMapWidth*FMapHeight*SizeOf(Integer), 0); |
System.ReallocMem(FMap, FMapWidth * FMapHeight * SizeOf(TMapType)); |
if Assigned(FMap) then |
begin |
FillChar(FMap^, FMapWidth * FMapHeight * SizeOf(TMapType), 0); |
for I := 0 to FMapWidth * FMapHeight - 1 do |
PMapType(Integer(FMap) + (I) * SizeOf(TMapType))^.CollisionChip := True; |
end |
except |
FreeMem(FMap, FMapWidth * FMapHeight * SizeOf(TMapType)); |
FMap := nil; |
end; |
end |
end; |
ReAllocMem(FCollisionMap, FMapWidth*FMapHeight*SizeOf(Boolean)); |
FillChar(FCollisionMap^, FMapWidth*FMapHeight*SizeOf(Boolean), 1); |
procedure TBackgroundSprite.Assign(Source: TPersistent); |
begin |
if Source is TBackgroundSprite then |
begin |
FMapWidth := TBackgroundSprite(Source).FMapWidth; |
FMapHeight := TBackgroundSprite(Source).FMapHeight; |
FTile := TBackgroundSprite(Source).FTile; |
end; |
inherited; |
end; |
procedure TBackgroundSprite.DefineProperties(Filer: TFiler); |
begin |
inherited DefineProperties(Filer); |
Filer.DefineBinaryProperty('Map', ReadMapData, WriteMapData, FMap <> nil); |
end; |
type |
TMapDataHeader = packed record |
MapWidth: Integer; |
MapHeight: Integer; |
end; |
procedure TBackgroundSprite.ReadMapData(Stream: TStream); |
var |
Header: TMapDataHeader; |
begin |
Stream.ReadBuffer(Header, SizeOf(Header)); |
FMapWidth := Header.MapWidth; |
FMapHeight := Header.MapHeight; |
SetMapSize(Header.MapWidth, Header.MapHeight); |
if Assigned(FMap) and (Header.MapWidth > 0) and (Header.MapHeight > 0) then |
begin |
Stream.ReadBuffer(FMap^, FMapWidth * FMapHeight * SizeOf(TMapType)); |
end; |
end; |
procedure TBackgroundSprite.WriteMapData(Stream: TStream); |
var |
Header: TMapDataHeader; |
begin |
Header.MapWidth := FMapWidth; |
Header.MapHeight := FMapHeight; |
Stream.WriteBuffer(Header, SizeOf(Header)); |
if Assigned(FMap) then |
Stream.WriteBuffer(FMap^, FMapWidth * FMapHeight * SizeOf(TMapType)); |
end; |
function TBackgroundSprite.GetOverlap(X, Y: Integer): Integer; |
begin |
if (X >= 0) and (X < FMapWidth) and (Y >= 0) and (Y < FMapHeight) then |
Result := PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.Overlap |
else |
Result := 0; |
end; |
procedure TBackgroundSprite.SetOverlap(X, Y: Integer; const Value: Integer); |
begin |
if (X >= 0) and (X < FMapWidth) and (Y >= 0) and (Y < FMapHeight) then |
PMapType(Integer(FMap) + (Y * FMapWidth + X) * SizeOf(TMapType))^.Overlap := Value; |
end; |
function TBackgroundSprite.IsMapEmpty: Boolean; |
begin |
Result := (FMap = nil) or (FMapWidth <= 0) or (FMapHeight <= 0); |
end; |
{ TSpriteEngine } |
constructor TSpriteEngine.Create(AParent: TSprite); |
986,14 → 1919,199 |
begin |
inherited Create(AParent); |
FDeadList := TList.Create; |
// group handling |
{$IFDEF Ver4Up} |
fCurrentSelected := Tlist.create; |
GroupCount := 10; |
{$ENDIF} |
end; |
destructor TSpriteEngine.Destroy; |
begin |
// cleanup Group handling |
{$IFDEF Ver4Up} |
ClearCurrent; |
GroupCount := 0; |
{$ENDIF} |
FDeadList.Free; |
inherited Destroy; |
{$IFDEF Ver4Up} |
fCurrentSelected.free; |
{$ENDIF} |
end; |
procedure TSpriteEngine.Collisions; |
var |
index: Integer; |
begin |
for index := 0 to Count - 1 do |
Items[index].Collision; |
end; |
{Collisions} |
{$IFDEF Ver4Up} |
procedure TSpriteEngine.GroupSelect(const Area: TRect; Add: Boolean = False); |
begin |
GroupSelect(Area, [Tsprite], Add); |
end; {GroupSelect} |
procedure TSpriteEngine.GroupSelect(const Area: TRect; Filter: array of TSpriteClass; Add: Boolean = False); |
var |
index, index2: Integer; |
sprite: TSprite; |
begin |
Assert(length(Filter) <> 0, 'Filter = []'); |
if not Add then |
ClearCurrent; |
if length(Filter) = 1 then |
begin |
for Index := 0 to Count - 1 do |
begin |
sprite := Items[Index]; |
if (sprite is Filter[0]) and OverlapRect(sprite.GetBoundsRect, Area) then |
sprite.Selected := true; |
end |
end |
else |
begin |
for Index := 0 to Count - 1 do |
begin |
sprite := Items[index]; |
for index2 := 0 to high(Filter) do |
if (sprite is Filter[index2]) and OverlapRect(sprite.GetBoundsRect, Area) then |
begin |
sprite.Selected := true; |
break; |
end; |
end |
end; |
fObjectsSelected := CurrentSelected.count <> 0; |
end; {GroupSelect} |
function TSpriteEngine.Select(Point: TPoint; Filter: array of TSpriteClass; Add: Boolean = False): Tsprite; |
var |
index, index2: Integer; |
begin |
Assert(length(Filter) <> 0, 'Filter = []'); |
if not Add then |
ClearCurrent; |
// By searching the Drawlist in reverse |
// we select the highest sprite if the sprit is under the point |
assert(FDrawList <> nil, 'FDrawList = nil'); |
if length(Filter) = 1 then |
begin |
for Index := FDrawList.Count - 1 downto 0 do |
begin |
Result := FDrawList[Index]; |
if (Result is Filter[0]) and PointInRect(Point, Result.GetBoundsRect) then |
begin |
Result.Selected := true; |
fObjectsSelected := CurrentSelected.count <> 0; |
exit; |
end; |
end |
end |
else |
begin |
for Index := FDrawList.Count - 1 downto 0 do |
begin |
Result := FDrawList[index]; |
for index2 := 0 to high(Filter) do |
if (Result is Filter[index2]) and PointInRect(Point, Result.GetBoundsRect) then |
begin |
Result.Selected := true; |
fObjectsSelected := CurrentSelected.count <> 0; |
exit; |
end; |
end |
end; |
Result := nil; |
end; {Select} |
function TSpriteEngine.Select(Point: TPoint; Add: Boolean = False): TSprite; |
begin |
Result := Select(Point, [Tsprite], Add); |
end; {Select} |
procedure TSpriteEngine.ClearCurrent; |
begin |
while CurrentSelected.count <> 0 do |
TSprite(CurrentSelected[CurrentSelected.count - 1]).Selected := False; |
fObjectsSelected := False; |
end; {ClearCurrent} |
procedure TSpriteEngine.ClearGroup(GroupNumber: Integer); |
var |
index: Integer; |
Group: Tlist; |
begin |
Group := Groups[GroupNumber]; |
if Group <> nil then |
for index := 0 to Group.count - 1 do |
TSprite(Group[index]).Selected := False; |
end; {ClearGroup} |
procedure TSpriteEngine.CurrentToGroup(GroupNumber: Integer; Add: Boolean = False); |
var |
Group: Tlist; |
index: Integer; |
begin |
Group := Groups[GroupNumber]; |
if Group = nil then |
exit; |
if not Add then |
ClearGroup(GroupNumber); |
for index := 0 to Group.count - 1 do |
TSprite(Group[index]).GroupNumber := GroupNumber; |
end; {CurrentToGroup} |
procedure TSpriteEngine.GroupToCurrent(GroupNumber: Integer; Add: Boolean = False); |
var |
Group: Tlist; |
index: Integer; |
begin |
if not Add then |
ClearCurrent; |
Group := Groups[GroupNumber]; |
if Group <> nil then |
for index := 0 to Group.count - 1 do |
TSprite(Group[index]).Selected := true; |
end; {GroupToCurrent} |
function TSpriteEngine.GetGroup(Index: Integer): Tlist; |
begin |
if (index >= 0) or (index < fGroupCount) then |
Result := fGroups[index] |
else |
Result := nil; |
end; {GetGroup} |
procedure TSpriteEngine.SetGroupCount(AGroupCount: Integer); |
var |
index: Integer; |
begin |
if (AGroupCount <> FGroupCount) and (AGroupCount >= 0) then |
begin |
if FGroupCount > AGroupCount then |
begin // remove groups |
for index := AGroupCount to FGroupCount - 1 do |
begin |
ClearGroup(index); |
FGroups[index].Free; |
end; |
SetLength(FGroups, AGroupCount); |
end |
else |
begin // add groups |
SetLength(FGroups, AGroupCount); |
for index := FGroupCount to AGroupCount - 1 do |
FGroups[index] := Tlist.Create; |
end; |
FGroupCount := Length(FGroups); |
end; |
end; {SetGroupCount} |
{$ENDIF} |
procedure TSpriteEngine.Dead; |
begin |
while FDeadList.Count>0 do |
1019,10 → 2137,15 |
{ TCustomDXSpriteEngine } |
constructor TCustomDXSpriteEngine.Create(AOnwer: TComponent); |
constructor TCustomDXSpriteEngine.Create(AOwner: TComponent); |
begin |
inherited Create(AOnwer); |
inherited Create(AOwner); |
FEngine := TSpriteEngine.Create(nil); |
FEngine.FOwner := Self; |
FItems := TSpriteCollection.Create(Self); |
FItems.FOwner := Self; |
FItems.FOwnerItem := FEngine; |
FItems.Initialize(FEngine); |
end; |
destructor TCustomDXSpriteEngine.Destroy; |
1076,4 → 2199,271 |
FDXDraw.RegisterNotifyEvent(DXDrawNotifyEvent); |
end; |
procedure TCustomDXSpriteEngine.SetItems(const Value: TSpriteCollection); |
begin |
FItems.Assign(Value); |
end; |
procedure TCustomDXSpriteEngine.Clone(const Amount: Word; const BaseNameOfSprite: string); |
var |
i: Integer; |
begin |
if Amount = 0 then Exit; |
for i := 1 to Amount do |
begin |
with FItems.Add do |
begin |
KindSprite := FItems.Find(BaseNameOfSprite).KindSprite; |
Sprite.AsSign(FItems.Find(BaseNameOfSprite).Sprite); |
{name has to be different} |
Name := Format(BaseNameOfSprite + '_%d', [I]); //simple name for sprite like Name_1 etc. |
Sprite.Tag := 0; //for sprite you can use Tag property in future as well |
end; |
end; |
end; |
function TCustomDXSpriteEngine.ForEach(PrefixNameOdSprite: string; var Names: TStringList): Boolean; |
var |
I: Integer; |
begin |
if Names = nil then |
Names := TStringList.Create; |
for I := 0 to Items.Count - 1 do |
begin |
if PrefixNameOdSprite = '' then |
Names.Add(Items[I].Name) |
else |
{is prefix, fo names like Player????} |
if Pos(PrefixNameOdSprite, Items[I].Name) = 1 then |
Names.Add(Items[I].Name); |
end; |
Result := Names.Count > 0; |
if not Result then {$IFDEF VER5UP}FreeAndNil(Names){$ELSE}begin Names.Free; names := nil end{$ENDIF}; |
end; |
{ TSpriteCollectionItem } |
function TSpriteCollectionItem.GetSpriteCollection: TSpriteCollection; |
begin |
Result := Collection as TSpriteCollection; |
end; |
procedure TSpriteCollectionItem.SetSprite(const Value: TSprite); |
begin |
FSprite.Assign(Value); |
end; |
constructor TSpriteCollectionItem.Create(Collection: TCollection); |
begin |
inherited Create(Collection); |
FOwner := Collection; |
FOwnerItem := (Collection as TSpriteCollection).FOwnerItem; |
FSpriteType := stSprite; |
FSprite := TSprite.Create(FOwnerItem); |
end; |
procedure TSpriteCollectionItem.Assign(Source: TPersistent); |
begin |
if Source is TSpriteCollectionItem then |
begin |
Finalize; |
FSprite.Assign(TSpriteCollectionItem(Source).FSprite); |
inherited Assign(Source); |
Initialize; |
end |
else |
inherited; |
end; |
procedure TSpriteCollectionItem.Initialize; |
begin |
end; |
destructor TSpriteCollectionItem.Destroy; |
begin |
FSprite.Destroy; |
inherited; |
end; |
procedure TSpriteCollectionItem.Finalize; |
begin |
end; |
procedure TSpriteCollectionItem.SetOnCollision( |
const Value: TCollisionEvent); |
begin |
FSprite.FOnCollision := Value; |
end; |
procedure TSpriteCollectionItem.SetOnDraw(const Value: TDrawEvent); |
begin |
FSprite.FOnDraw := Value; |
end; |
procedure TSpriteCollectionItem.SetOnMove(const Value: TMoveEvent); |
begin |
FSprite.FOnMove := Value |
end; |
function TSpriteCollectionItem.GetDisplayName: string; |
begin |
Result := inherited GetDisplayName |
end; |
procedure TSpriteCollectionItem.SetDisplayName(const Value: string); |
begin |
if (Value <> '') and (AnsiCompareText(Value, GetDisplayName) <> 0) and |
(Collection is TSpriteCollection) and (TSpriteCollection(Collection).IndexOf(Value) >= 0) then |
raise Exception.Create(Format(SSpriteDuplicateName, [Value])); |
inherited SetDisplayName(Value); |
end; |
function TSpriteCollectionItem.GetSpriteType: TSpriteType; |
begin |
Result := FSpriteType; |
end; |
procedure TSpriteCollectionItem.SetSpriteType(const Value: TSpriteType); |
var |
tmpSprite: TSprite; |
begin |
if Value <> FSpriteType then |
begin |
case Value of |
stSprite: tmpSprite := TSprite.Create(TSpriteEngine(FOwnerItem)); |
stImageSprite: TImageSprite(tmpSprite) := TImageSprite.Create(TSpriteEngine(FOwnerItem)); |
{$WARNINGS OFF} |
stImageSpriteEx: TImageSpriteEx(tmpSprite) := TImageSpriteEx.Create(TSpriteEngine(FOwnerItem)); |
{$WARNINGS ON} |
stBackgroundSprite: TBackgroundSprite(tmpSprite) := TBackgroundSprite.Create(TSpriteEngine(FOwnerItem)); |
else |
tmpSprite := nil |
end; |
if Assigned(FSprite) then |
try |
tmpSprite.Assign(FSprite); |
tmpSprite.FOnDraw := FSprite.FOnDraw; |
tmpSprite.FOnMove := FSprite.FOnMove; |
tmpSprite.FOnCollision := FSprite.FOnCollision; |
tmpSprite.FOnGetImage := FSprite.FOnGetImage; |
finally |
FSprite.Free; FSprite := nil; |
end; |
FSprite := tmpSprite; |
FSpriteType := Value; |
end; |
end; |
function TSpriteCollectionItem.GetOnCollision: TCollisionEvent; |
begin |
Result := FSprite.FOnCollision |
end; |
function TSpriteCollectionItem.GetOnDraw: TDrawEvent; |
begin |
Result := FSprite.FOnDraw |
end; |
function TSpriteCollectionItem.GetOnMove: TMoveEvent; |
begin |
Result := FSprite.FOnMove |
end; |
function TSpriteCollectionItem.GetOnGetImage: TGetImage; |
begin |
Result := FSprite.FOnGetImage; |
end; |
procedure TSpriteCollectionItem.SetOnGetImage(const Value: TGetImage); |
begin |
FSprite.FOnGetImage := Value; |
end; |
function TSpriteCollectionItem.GetImageList: TCustomDXImageList; |
begin |
Result := FSprite.FDXImageList; |
end; |
procedure TSpriteCollectionItem.SetImageList(const Value: TCustomDXImageList); |
begin |
FSprite.FDXImageList := Value; |
end; |
function TSpriteCollectionItem.Clone(NewName: string): TSprite; |
var |
T: TSpriteCollectionItem; |
begin |
T := GetSpriteCollection.Add; |
T.KindSprite := Self.FSpriteType; |
T.Assign(Self); |
T.Name := NewName; |
Result := T.FSprite; |
end; |
{ TSpriteCollection } |
function TSpriteCollection.Initialized: Boolean; |
begin |
Result := FInitializeFlag; |
end; |
constructor TSpriteCollection.Create(AOwner: TPersistent); |
begin |
inherited Create(TSpriteCollectionItem); |
FOwner := AOwner; |
FInitializeFlag := Initialize(TSpriteEngine(AOwner)); |
end; |
function TSpriteCollection.GetItem(Index: Integer): TSpriteCollectionItem; |
begin |
Result := TSpriteCollectionItem(inherited Items[Index]); |
end; |
function TSpriteCollection.Initialize(DXSpriteEngine: TSpriteEngine): Boolean; |
begin |
Result := True; |
try |
if AsSigned(FOnInitialize) then |
FOnInitialize(DXSpriteEngine); |
except |
Result := False; |
end |
end; |
function TSpriteCollection.Find(const Name: string): TSpriteCollectionItem; |
var |
i: Integer; |
begin |
i := IndexOf(Name); |
if i = -1 then |
raise ESpriteCollectionError.CreateFmt(SSpriteNotFound, [Name]); |
Result := Items[i]; |
end; |
procedure TSpriteCollection.Finalize; |
begin |
if AsSigned(FOnFinalize) then |
FOnFinalize(FOwnerItem); |
end; |
function TSpriteCollection.GetOwner: TPersistent; |
begin |
Result := FOwner; |
end; |
function TSpriteCollection.Add: TSpriteCollectionItem; |
begin |
Result := TSpriteCollectionItem(inherited Add); |
Result.FOwner := FOwner; |
Result.FOwnerItem := FOwnerItem; |
end; |
destructor TSpriteCollection.Destroy; |
begin |
Finalize; |
inherited; |
end; |
end. |
/VCL_DELPHIX_D6/DXSpriteEdit.pas |
---|
0,0 → 1,447 |
unit DXSpriteEdit; |
//(c)2006-7 Jaro Benes |
//All Rights Reserved |
{ |
Complex application for users of unDelphiX as component editor: |
Supported: |
a) create sprite and store it into rersource. |
b) allow do change and create complex sprite (background or particle). |
c) default values for complex type too. |
d) direct link to image from dximagelist. |
} |
interface |
{$INCLUDE DelphiXcfg.inc} |
{$WARNINGS OFF} |
uses |
Windows, SysUtils, Classes, Forms, Dialogs, Controls, ExtCtrls, StdCtrls, |
Graphics, DXSprite, DXDraws; |
type |
{ TEdit } |
TEdit = class(StdCtrls.TEdit) {injected class} |
private |
function GetAsInteger: Integer; |
procedure SetAsInteger(const Value: Integer); |
function GetAsFloat: Double; |
procedure SetAsFloat(const Value: Double); |
published |
public |
property AsInteger: Integer read GetAsInteger write SetAsInteger; |
property AsFloat: Double read GetAsFloat write SetAsFloat; |
end; |
{ TDelphiXWaveEditForm } |
TDelphiXSpriteEditForm = class(TForm) |
Bevel2: TBevel; |
OKButton: TButton; |
CancelButton: TButton; |
ClearButton: TButton; |
Panel1: TPanel; |
EAlpha: TEdit; |
EAngle: TEdit; |
EAnimCount: TEdit; |
EAnimPos: TEdit; |
EAnimSpeed: TEdit; |
EAnimStart: TEdit; |
EHeight: TEdit; |
EMapHeight: TEdit; |
EMapWidth: TEdit; |
EWidth: TEdit; |
EX: TEdit; |
EY: TEdit; |
EZ: TEdit; |
LAlpha: TLabel; |
LAngle: TLabel; |
LAnimCount: TLabel; |
LAnimPos: TLabel; |
LAnimSpeed: TLabel; |
LAnimStart: TLabel; |
LHeight: TLabel; |
LMapHeight: TLabel; |
LMapWidth: TLabel; |
LWidth: TLabel; |
LX: TLabel; |
LY: TLabel; |
LZ: TLabel; |
Label1: TLabel; |
EBlendMode: TComboBox; |
eImage: TComboBox; |
Label2: TLabel; |
Label3: TLabel; |
Label4: TLabel; |
ECenterX: TEdit; |
ECenterY: TEdit; |
chbBlurImage: TCheckBox; |
chbAnimLooped: TCheckBox; |
chbMoved: TCheckBox; |
chbCollisioned: TCheckBox; |
chbPixelCheck: TCheckBox; |
chbTile: TCheckBox; |
chbVisible: TCheckBox; |
btnMapEdit: TButton; |
Label5: TLabel; |
ETexFilter: TComboBox; |
procedure eImageChange(Sender: TObject); |
procedure eImageExit(Sender: TObject); |
procedure OKButtonClick(Sender: TObject); |
procedure MapEditButtonClick(Sender: TObject); |
private |
FChanged: Boolean; |
FvkType: TSpriteType; |
FSprite: TSprite; |
// |
FDXImageList: TCustomDXImageList; |
FDXImageName: string; |
procedure FieldEnabler(SpriteType: TSpriteType); |
public |
procedure LoadDataToForm(AData: TPersistent); |
function SaveDataFromForm: TPersistent; |
property Sprite: TSprite read FSprite write FSprite; |
end; |
var |
DelphiXSpriteEditForm: TDelphiXSpriteEditForm; |
implementation |
uses DXConsts, DXMapEdit, DXClass; |
{$R *.DFM} |
{ TEdit } |
function TEdit.GetAsFloat: Double; |
begin |
try |
Result := StrToFloat(Self.Text); |
except |
Result := 0; |
end; |
end; |
function TEdit.GetAsInteger: Integer; |
begin |
try |
Result := StrToInt(Self.Text); |
except |
Result := 0; |
end; |
end; |
procedure TEdit.SetAsFloat(const Value: Double); |
begin |
Self.Text := FloatToStr(Value) |
end; |
procedure TEdit.SetAsInteger(const Value: Integer); |
begin |
Self.Text := IntToStr(Value) |
end; |
{ TDelphiXSpriteEditForm } |
procedure TDelphiXSpriteEditForm.LoadDataToForm(AData: TPersistent); |
procedure LoadAsSprite; |
begin |
with AData as TSprite do begin |
chbCollisioned.Checked := Collisioned; |
chbMoved.Checked := Moved; |
chbVisible.Checked := Visible; |
EHeight.AsInteger := Height; |
EWidth.AsInteger := Width; |
EX.AsFloat := X; |
EY.AsFloat := Y; |
EZ.AsInteger := Z; |
end; |
Caption := 'Sprite Init Editor (TSprite)'; |
end; |
procedure LoadAsImageSprite; |
var |
ii: Integer; |
pci: TPictureCollectionItem; |
begin |
LoadAsSprite; |
with AData as TImageSprite do begin |
EAnimCount.AsInteger := AnimCount; |
chbAnimLooped.Checked := AnimLooped; |
EAnimPos.AsFloat := AnimPos; |
EAnimSpeed.AsFloat := AnimSpeed; |
EAnimStart.AsInteger := AnimStart; |
ECenterX.AsFloat := CenterX; |
ECenterY.AsFloat := CenterY; |
chbPixelCheck.Checked := PixelCheck; |
chbTile.Checked := Tile; |
EAlpha.AsInteger := Alpha; |
EAngle.AsFloat := Angle; |
EBlendMode.ItemIndex := Ord(BlendMode); |
ETexFilter.ItemIndex := Ord(TextureFilter); |
EImage.Clear; |
if Assigned(DXImageList) then |
for ii := 0 to DXImageList.Items.Count - 1 do begin |
if DXImageList.Items[ii].Name = '' then |
EImage.Items.Add('_unnamed_' + IntToStr(ii)) |
else |
EImage.Items.Add(DXImageList.Items[ii].Name); |
end; |
{contain image} |
pci := Image; |
{is attached} |
if Assigned(pci) then begin |
{search in imagelist} |
for ii := 0 to DXImageList.Items.Count - 1 do |
if DXImageList.Items[ii] = pci then begin |
EImage.ItemIndex := ii; |
Break; |
end; |
end |
else begin |
if DXImageName <> '' then begin |
ii := EImage.Items.IndexOf(DXImageName); |
if ii <> -1 then |
EImage.ItemIndex := ii; |
end; |
end; |
end; |
Caption := 'Sprite Init Editor (TImageSprite)'; |
end; |
procedure LoadAsImageSpriteEx; |
begin |
LoadAsImageSprite; |
Caption := 'Sprite Init Editor (TImageSpriteEx)'; |
end; |
procedure LoadAsBackgroundSprite; |
begin |
LoadAsImageSprite; |
with AData as TBackgroundSprite do begin |
EMapHeight.AsInteger := MapHeight; |
EMapWidth.AsInteger := MapWidth; |
chbTile.Checked := Tile; |
end; |
btnMapEdit.Enabled := eImage.ItemIndex <> -1; |
Caption := 'Sprite Init Editor (TBackgroundSprite)'; |
end; |
const |
cktypearr: array[TSpriteType] of Integer = (0, 2, 3, 1); |
begin |
FSprite := TSprite(AData); |
FDXImageList := TSprite(AData).DXImageList; |
if AData is TBackgroundSprite then Fvktype := stBackgroundSprite |
else if AData is TImageSpriteEx then Fvktype := stImageSpriteEx |
else if AData is TImageSprite then Fvktype := stImageSprite |
else Fvktype := stSprite; |
FieldEnabler(Fvktype); |
try |
case Fvktype of |
stSprite: LoadAsSprite; |
stImageSprite: LoadAsImageSprite; |
stImageSpriteEx: LoadAsImageSpriteEx; |
stBackgroundSprite: LoadAsBackgroundSprite; |
end; |
except |
on E: Exception do |
ShowMessage(E.Message); |
end; |
end; |
function TDelphiXSpriteEditForm.SaveDataFromForm: TPersistent; |
var AData: TSprite; |
procedure SaveAsSprite; |
begin |
with AData as TSprite do begin |
Collisioned := chbCollisioned.Checked; |
Moved := chbMoved.Checked; |
Visible := chbVisible.Checked; |
Height := EHeight.AsInteger; |
Width := EWidth.AsInteger; |
X := EX.AsFloat; |
Y := EY.AsFloat; |
Z := EZ.AsInteger; |
end; |
end; |
procedure SaveAsImageSprite; |
begin |
SaveAsSprite; |
with AData as TImageSprite do begin |
AnimCount := EAnimCount.AsInteger; |
AnimLooped := chbAnimLooped.Checked; |
AnimPos := EAnimPos.AsFloat; |
AnimSpeed := EAnimSpeed.AsFloat; |
AnimStart := EAnimStart.AsInteger; |
PixelCheck := chbPixelCheck.Checked; |
Tile := chbTile.Checked; |
Alpha := EAlpha.AsInteger; |
Angle := EAngle.AsFloat; |
CenterX := ECenterX.AsFloat; |
CenterY := ECenterY.AsFloat; |
BlendMode := TRenderType(EBlendMode.ItemIndex); |
TextureFilter := TD2DTextureFilter(ETexFilter.ItemIndex); |
BlurImage := chbBlurImage.Checked; |
if Assigned(DXImageList) then |
if DXImageName <> eImage.Text then |
if eImage.ItemIndex <> -1 then begin |
{DX}Image := DXImageList.Items[eImage.ItemIndex]; |
DXImageName := DXImageList.Items[eImage.ItemIndex].Name; |
end; |
end; |
end; |
procedure SaveAsImageSpriteEx; |
begin |
SaveAsImageSprite; |
end; |
procedure SaveAsBackgroundSprite; |
begin |
SaveAsImageSprite; |
with AData as TBackgroundSprite do begin |
MapHeight := EMapHeight.AsInteger; |
Tile := chbTile.Checked; |
MapWidth := EMapWidth.AsInteger; |
end; |
end; |
begin |
Result := nil; |
try |
AData := FSprite; |
case Fvktype of |
stSprite: SaveAsSprite; |
stImageSprite: SaveAsImageSprite; |
stImageSpriteEx: SaveAsImageSpriteEx; |
stBackgroundSprite: SaveAsBackgroundSprite; |
end; |
Result := AData; |
except |
on E: Exception do |
ShowMessage(E.Message); |
end; |
end; |
procedure TDelphiXSpriteEditForm.OKButtonClick(Sender: TObject); |
begin |
FChanged := True; |
if FChanged then |
begin |
Tag := 1; |
end; |
Close; |
end; |
procedure TDelphiXSpriteEditForm.FieldEnabler(SpriteType: TSpriteType); |
var I: Integer; |
begin |
ECenterX.Enabled := (SpriteType in [stImageSprite..stBackgroundSprite]); |
ECenterY.Enabled := (SpriteType in [stImageSprite..stBackgroundSprite]); |
EAlpha.Enabled := (SpriteType in [stImageSprite..stBackgroundSprite]); |
EAngle.Enabled := (SpriteType in [stImageSprite..stBackgroundSprite]); |
EBlendMode.Enabled := (SpriteType in [stImageSprite..stBackgroundSprite]); |
EAnimCount.Enabled := (SpriteType in [stImageSprite, stImageSpriteEx]); |
chbAnimLooped.Enabled := (SpriteType in [stImageSprite, stImageSpriteEx]); |
EAnimPos.Enabled := (SpriteType in [stImageSprite, stImageSpriteEx]); |
EAnimSpeed.Enabled := (SpriteType in [stImageSprite, stImageSpriteEx]); |
EAnimStart.Enabled := (SpriteType in [stImageSprite, stImageSpriteEx]); |
chbCollisioned.Enabled := (SpriteType in [stSprite..stBackgroundSprite]); |
chbBlurImage.Enabled := (SpriteType in [stImageSprite, stImageSpriteEx]); |
EHeight.Enabled := (SpriteType in [stSprite..stBackgroundSprite]); |
EImage.Enabled := (SpriteType in [stImageSprite..stBackgroundSprite]); |
EMapHeight.Enabled := (SpriteType in [stBackgroundSprite]); |
EMapWidth.Enabled := (SpriteType in [stBackgroundSprite]); |
chbMoved.Enabled := (SpriteType in [stSprite..stBackgroundSprite]); |
chbPixelCheck.Enabled := (SpriteType in [stImageSprite, stImageSpriteEx]); |
chbTile.Enabled := (SpriteType in [stImageSprite..stBackgroundSprite]); |
chbVisible.Enabled := (SpriteType in [stSprite..stBackgroundSprite]); |
chbBlurImage.Enabled := (SpriteType in [stImageSprite..stBackgroundSprite]); |
EWidth.Enabled := (SpriteType in [stSprite..stBackgroundSprite]); |
EX.Enabled := (SpriteType in [stSprite..stBackgroundSprite]); |
EY.Enabled := (SpriteType in [stSprite..stBackgroundSprite]); |
EZ.Enabled := (SpriteType in [stSprite..stBackgroundSprite]); |
ETexFilter.Enabled := (SpriteType in [stImageSprite..stBackgroundSprite]); |
for I := 0 to ComponentCount - 1 do begin |
if (Components[I] is TEdit) then with (Components[I] as TEdit) do |
if Enabled then Color := clWindow else Color := clBtnFace; |
if (Components[I] is TComboBox) then with (Components[I] as TComboBox) do |
if Enabled then Color := clWindow else Color := clBtnFace; |
end |
end; |
procedure TDelphiXSpriteEditForm.MapEditButtonClick(Sender: TObject); |
{only for editing maps for TBackgroudSprite} |
var |
I{, J}: Integer; |
Q: TBackgroundSprite; |
begin |
DelphiXMapEditForm := TDelphiXMapEditForm.Create(nil); |
try |
DelphiXMapEditForm.DXImageList := FDXImageList; {local instance copy} |
DelphiXMapEditForm.DXBackgroundSprite := TBackgroundSprite(FSprite); |
{vymaz combo a natahni jmena} |
DelphiXMapEditForm.ImageToSet.Items.Clear; |
DelphiXMapEditForm.ImageToSet.Items.Assign(EImage.Items); |
DelphiXMapEditForm.ImageToSet.ItemIndex := EImage.ItemIndex; |
DelphiXMapEditForm.PicturesToChip.Visible := DelphiXMapEditForm.LoadSplittedImage{$IFNDEF VER4UP}(False){$ENDIF}; |
{nepovolit zmenu, pokud byla udelana uz na hlavnim formu} |
DelphiXMapEditForm.ImageToSet.Enabled := DelphiXMapEditForm.ImageToSet.ItemIndex = -1; |
if Assigned(FSprite) then begin |
Q := TBackgroundSprite(FSprite); |
if not Q.IsMapEmpty then begin |
DelphiXMapEditForm.eMapSizeX.Value := Q.MapWidth; |
DelphiXMapEditForm.eMapSizeY.Value := Q.MapHeight; |
{velikost podle dlazdice v listu} |
I := DelphiXMapEditForm.ImageToSet.ItemIndex; |
if I <> -1 then begin |
DelphiXMapEditForm.EWidth.AsInteger := DelphiXMapEditForm.DXImageList.Items[I].Width; ; |
DelphiXMapEditForm.EHeight.AsInteger := DelphiXMapEditForm.DXImageList.Items[I].Height; |
end; |
DelphiXMapEditForm.ResizeMapArea; |
end |
else |
DelphiXMapEditForm.ResizeMapArea; |
end; |
{pokud je regulerni jmeno obrazku na spritu, vyber ho} |
with DelphiXMapEditForm.ImageToSet do |
if FDXImageName <> '' then |
ItemIndex := Items.IndexOf(FDXImageName); |
{nastav tam jeste obrabeny sprite} |
DelphiXMapEditForm.DXBackGroundSprite := TBackgroundSprite(FSprite); |
DelphiXMapEditForm.MapArea.DefaultColWidth := DelphiXMapEditForm.EWidth.AsInteger; |
DelphiXMapEditForm.MapArea.DefaultRowHeight := DelphiXMapEditForm.EHeight.AsInteger; |
{a volej dialog} |
DelphiXMapEditForm.eMapSizeX.OnChange := DelphiXMapEditForm.BtnSetSizeClick; |
DelphiXMapEditForm.eMapSizeY.OnChange := DelphiXMapEditForm.BtnSetSizeClick; |
if DelphiXMapEditForm.ShowModal = mrOK then begin |
{pokud je vse OK, uloz mapu ke spritu} |
if Assigned(DelphiXMapEditForm.DXBackGroundSprite) then begin |
FDXImageName := ''; |
if DelphiXMapEditForm.ImageToSet.ItemIndex <> -1 then |
FDXImageName := FDXImageList.Items[DelphiXMapEditForm.ImageToSet.ItemIndex].Name; |
EMapHeight.AsInteger := DelphiXMapEditForm.eMapSizeY.Value; |
EMapWidth.AsInteger := DelphiXMapEditForm.eMapSizeX.Value; |
end; |
end; |
finally |
DelphiXMapEditForm.Free; |
DelphiXMapEditForm := nil; |
end; |
end; |
procedure TDelphiXSpriteEditForm.eImageExit(Sender: TObject); |
begin |
if eImage.ItemIndex <> -1 then begin |
EWidth.AsInteger := FDXImageList.Items[eImage.ItemIndex].Width; |
EHeight.AsInteger := FDXImageList.Items[eImage.ItemIndex].Height; |
end; |
end; |
procedure TDelphiXSpriteEditForm.eImageChange(Sender: TObject); |
begin |
if FvkType = stBackgroundSprite then |
btnMapEdit.Enabled := eImage.ItemIndex <> -1 |
else |
btnMapEdit.Enabled := False; |
end; |
end. |
/VCL_DELPHIX_D6/Dcu290/.gitkeep |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DelphiX150.res |
---|
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX160.dproj |
---|
0,0 → 1,195 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{91308B77-8E11-452A-8053-24D7DF8D544D}</ProjectGuid> |
<MainSource>DelphiX160.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>13.4</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage> |
<GenPackage>true</GenPackage> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Description>DelphiX - DirectX components for Delphi XE2</DCC_Description> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<GenDll>true</GenDll> |
<DCC_K>false</DCC_K> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DCC_E>false</DCC_E> |
<DCC_F>false</DCC_F> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<Icon_MainIcon>DelphiX160_Icon.ico</Icon_MainIcon> |
<DCC_UsePackage>vclx;vcl;vclimg;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<Icon_MainIcon>DelphiX160_Icon.ico</Icon_MainIcon> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vclx;vcl;vclimg;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_DebugInformation>false</DCC_DebugInformation> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX160.dpk</Source> |
</Source> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">False</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1029</VersionInfo> |
<VersionInfo Name="CodePage">1250</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName"/> |
<VersionInfoKeys Name="FileDescription"/> |
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName"/> |
<VersionInfoKeys Name="LegalCopyright"/> |
<VersionInfoKeys Name="LegalTrademarks"/> |
<VersionInfoKeys Name="OriginalFilename"/> |
<VersionInfoKeys Name="ProductName"/> |
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Comments"/> |
</VersionInfoKeys> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win64">False</Platform> |
<Platform value="Win32">True</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> |
<Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX160.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX160_Icon.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX190.dproj |
---|
0,0 → 1,233 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{41E25D19-4508-47C8-BCF2-B3098831677C}</ProjectGuid> |
<MainSource>DelphiX190.dpk</MainSource> |
<ProjectVersion>15.3</ProjectVersion> |
<FrameworkType>None</FrameworkType> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''"> |
<Cfg_1_Win32>true</Cfg_1_Win32> |
<CfgParent>Cfg_1</CfgParent> |
<Cfg_1>true</Cfg_1> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<DCC_CBuilderOutput>All</DCC_CBuilderOutput> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput> |
<DCC_E>false</DCC_E> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>vcl;rtl;vclx;vclimg;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vcl;rtl;vclx;vclimg;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_DebugDCUs>true</DCC_DebugDCUs> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe> |
<DCC_RemoteDebug>true</DCC_RemoteDebug> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''"> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<DCC_RemoteDebug>false</DCC_RemoteDebug> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX190.dpk</Source> |
</Source> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1029</VersionInfo> |
<VersionInfo Name="CodePage">1250</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName"/> |
<VersionInfoKeys Name="FileDescription"/> |
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName"/> |
<VersionInfoKeys Name="LegalCopyright"/> |
<VersionInfoKeys Name="LegalTrademarks"/> |
<VersionInfoKeys Name="OriginalFilename"/> |
<VersionInfoKeys Name="ProductName"/> |
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Comments"/> |
<VersionInfoKeys Name="CFBundleName"/> |
<VersionInfoKeys Name="CFBundleDisplayName"/> |
<VersionInfoKeys Name="UIDeviceFamily"/> |
<VersionInfoKeys Name="CFBundleIdentifier"/> |
<VersionInfoKeys Name="CFBundleVersion"/> |
<VersionInfoKeys Name="CFBundlePackageType"/> |
<VersionInfoKeys Name="CFBundleSignature"/> |
<VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/> |
<VersionInfoKeys Name="UISupportedInterfaceOrientations"/> |
<VersionInfoKeys Name="CFBundleExecutable"/> |
<VersionInfoKeys Name="CFBundleResourceSpecification"/> |
<VersionInfoKeys Name="LSRequiresIPhoneOS"/> |
<VersionInfoKeys Name="CFBundleInfoDictionaryVersion"/> |
<VersionInfoKeys Name="CFBundleDevelopmentRegion"/> |
<VersionInfoKeys Name="package"/> |
<VersionInfoKeys Name="label"/> |
<VersionInfoKeys Name="versionCode"/> |
<VersionInfoKeys Name="versionName"/> |
<VersionInfoKeys Name="persistent"/> |
<VersionInfoKeys Name="restoreAnyVersion"/> |
<VersionInfoKeys Name="installLocation"/> |
<VersionInfoKeys Name="largeHeap"/> |
<VersionInfoKeys Name="theme"/> |
</VersionInfoKeys> |
<Excluded_Packages> |
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k190.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> |
<Excluded_Packages Name="$(BDSBIN)\dclofficexp190.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> |
</Excluded_Packages> |
</Delphi.Personality> |
<Deployment/> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX200.dpk |
---|
0,0 → 1,76 |
package DelphiX200; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi XE6'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX200.dproj |
---|
0,0 → 1,173 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{4B8D9C4D-3E58-4C54-96C6-DAB5B1E90C92}</ProjectGuid> |
<MainSource>DelphiX200.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>15.4</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<DCC_S>false</DCC_S> |
<SanitizedProjectName>DelphiX200</SanitizedProjectName> |
<DCC_K>false</DCC_K> |
<DCC_E>false</DCC_E> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
<GenDll>true</GenDll> |
<DCC_F>false</DCC_F> |
<DCC_N>false</DCC_N> |
<GenPackage>true</GenPackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX200.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX220.dpk |
---|
0,0 → 1,52 |
package DelphiX220; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi XE8'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
{$define SXEXTENSIONS} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX220.dproj |
---|
0,0 → 1,186 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{C07C3146-1FAD-40A5-AD4D-8CDB0A5D5D2F}</ProjectGuid> |
<MainSource>DelphiX220.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>17.2</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_N>false</DCC_N> |
<SanitizedProjectName>DelphiX220</SanitizedProjectName> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<GenPackage>true</GenPackage> |
<GenDll>true</GenDll> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<DCC_S>false</DCC_S> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
<DCC_F>false</DCC_F> |
<DCC_E>false</DCC_E> |
<DCC_Description>DelphiX - DirectX components for Delphi XE8</DCC_Description> |
<DCC_K>false</DCC_K> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"> |
<Form>$ENDIF</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX220.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX230.dpk |
---|
0,0 → 1,69 |
package DelphiX230; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10 - Seattle'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}; |
end. |
/VCL_DELPHIX_D6/DelphiX230.dproj |
---|
0,0 → 1,178 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{123B3D31-C9BA-4AB0-973A-A9C1D76DEAEE}</ProjectGuid> |
<MainSource>DelphiX230.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>18.1</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<SanitizedProjectName>DelphiX230</SanitizedProjectName> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<DCC_F>false</DCC_F> |
<DCC_N>false</DCC_N> |
<GenDll>true</GenDll> |
<DCC_Description>DelphiX - DirectX components for Delphi 10 - Seattle</DCC_Description> |
<DCC_K>false</DCC_K> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DCC_E>false</DCC_E> |
<DCC_S>false</DCC_S> |
<GenPackage>true</GenPackage> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX230.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">False</Platform> |
<Platform value="iOSDevice32">False</Platform> |
<Platform value="iOSSimulator">False</Platform> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX230.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX240.dpk |
---|
0,0 → 1,71 |
package DelphiX240; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10.1 - Berlin'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX240.dproj |
---|
0,0 → 1,516 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{ACFD8812-E511-42FF-885D-C0D89E119714}</ProjectGuid> |
<MainSource>DelphiX240.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>17</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>18.1</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''"> |
<Base_Android>true</Base_Android> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Cfg_2)'=='true') or '$(Cfg_2_Android)'!=''"> |
<Cfg_2_Android>true</Cfg_2_Android> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_N>false</DCC_N> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenPackage>true</GenPackage> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<SanitizedProjectName>DelphiX240</SanitizedProjectName> |
<DCC_S>false</DCC_S> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
<DCC_Description>DelphiX - DirectX components for Delphi 10.1 - Berlin</DCC_Description> |
<GenDll>true</GenDll> |
<DCC_E>false</DCC_E> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Android)'!=''"> |
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage> |
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Android)'!=''"> |
<BT_BuildType>Debug</BT_BuildType> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX240.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">True</Platform> |
<Platform value="Win32">True</Platform> |
</Platforms> |
<Deployment Version="3"> |
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\18.0\Bpl\DelphiX240.bpl" Configuration="Debug" Class="ProjectOutput"> |
<Platform Name="Win32"> |
<RemoteName>DelphiX240.bpl</RemoteName> |
<Overwrite>true</Overwrite> |
</Platform> |
</DeployFile> |
<DeployClass Name="DependencyModule"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.dll;.bpl</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXResource"> |
<Platform Name="OSX32"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidClassesDexFile"> |
<Platform Name="Android"> |
<RemoteDir>classes</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AdditionalDebugSymbols"> |
<Platform Name="Win32"> |
<RemoteDir>Contents\MacOS</RemoteDir> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch768"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon144"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeMipsFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\mips</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="ProjectOutput"> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Linux64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DependencyFramework"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch640"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch1024"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceDebug"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch320"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSInfoPList"/> |
<DeployClass Name="AndroidLibnativeArmeabiFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DebugSymbols"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch1536"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage470"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-normal</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon96"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage640"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-large</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch640x1136"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSEntitlements"/> |
<DeployClass Name="Android_LauncherIcon72"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidGDBServer"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXInfoPList"/> |
<DeployClass Name="ProjectOSXEntitlements"/> |
<DeployClass Name="iPad_Launch2048"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStyles"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage426"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-small</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashImageDef"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSResource"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectAndroidManifest"> |
<Platform Name="Android"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_DefaultAppIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="File"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Android"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidServiceOutput"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="DependencyPackage"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.bpl</Extensions> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon48"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage960"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xlarge</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon36"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-ldpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceResourceRules"/> |
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/> |
</Deployment> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX240.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX250.dpk |
---|
0,0 → 1,71 |
package DelphiX250; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10.2 - Tokyo'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX250.dproj |
---|
0,0 → 1,516 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{ACFD8812-E511-42FF-885D-C0D89E119714}</ProjectGuid> |
<MainSource>DelphiX250.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>18</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>18.1</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''"> |
<Base_Android>true</Base_Android> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Cfg_2)'=='true') or '$(Cfg_2_Android)'!=''"> |
<Cfg_2_Android>true</Cfg_2_Android> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_N>false</DCC_N> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenPackage>true</GenPackage> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<SanitizedProjectName>DelphiX250</SanitizedProjectName> |
<DCC_S>false</DCC_S> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
<DCC_Description>DelphiX - DirectX components for Delphi 10.2 - Tokyo</DCC_Description> |
<GenDll>true</GenDll> |
<DCC_E>false</DCC_E> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Android)'!=''"> |
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage> |
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Android)'!=''"> |
<BT_BuildType>Debug</BT_BuildType> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX250.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">True</Platform> |
<Platform value="Win32">True</Platform> |
</Platforms> |
<Deployment Version="3"> |
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\DelphiX250.bpl" Configuration="Debug" Class="ProjectOutput"> |
<Platform Name="Win32"> |
<RemoteName>DelphiX250.bpl</RemoteName> |
<Overwrite>true</Overwrite> |
</Platform> |
</DeployFile> |
<DeployClass Name="DependencyModule"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.dll;.bpl</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXResource"> |
<Platform Name="OSX32"> |
<RemoteDir>Contents\Resources</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidClassesDexFile"> |
<Platform Name="Android"> |
<RemoteDir>classes</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AdditionalDebugSymbols"> |
<Platform Name="Win32"> |
<RemoteDir>Contents\MacOS</RemoteDir> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch768"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon144"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xxhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidLibnativeMipsFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\mips</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="ProjectOutput"> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Linux64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DependencyFramework"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.framework</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch640"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch1024"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceDebug"> |
<Platform Name="iOSDevice64"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch320"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSInfoPList"/> |
<DeployClass Name="AndroidLibnativeArmeabiFile"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="DebugSymbols"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPad_Launch1536"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage470"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-normal</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon96"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xhdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage640"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-large</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="iPhone_Launch640x1136"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSEntitlements"/> |
<DeployClass Name="Android_LauncherIcon72"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-hdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidGDBServer"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectOSXInfoPList"/> |
<DeployClass Name="ProjectOSXEntitlements"/> |
<DeployClass Name="iPad_Launch2048"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashStyles"> |
<Platform Name="Android"> |
<RemoteDir>res\values</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage426"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-small</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidSplashImageDef"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSResource"> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectAndroidManifest"> |
<Platform Name="Android"> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_DefaultAppIcon"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="File"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="Android"> |
<Operation>0</Operation> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>0</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="AndroidServiceOutput"> |
<Platform Name="Android"> |
<RemoteDir>library\lib\armeabi-v7a</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Required="true" Name="DependencyPackage"> |
<Platform Name="Win32"> |
<Operation>0</Operation> |
<Extensions>.bpl</Extensions> |
</Platform> |
<Platform Name="iOSDevice64"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="OSX32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSDevice32"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
<Platform Name="iOSSimulator"> |
<Operation>1</Operation> |
<Extensions>.dylib</Extensions> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon48"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-mdpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_SplashImage960"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-xlarge</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="Android_LauncherIcon36"> |
<Platform Name="Android"> |
<RemoteDir>res\drawable-ldpi</RemoteDir> |
<Operation>1</Operation> |
</Platform> |
</DeployClass> |
<DeployClass Name="ProjectiOSDeviceResourceRules"/> |
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/> |
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/> |
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/> |
</Deployment> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX250.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX260.dpk |
---|
0,0 → 1,78 |
package DelphiX260; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10.3 - Rio'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas', |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX260.dproj |
---|
0,0 → 1,191 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{0E782D8A-083C-4D0F-B835-50552DA343A3}</ProjectGuid> |
<MainSource>DelphiX260.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>18.6</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_E>false</DCC_E> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<SanitizedProjectName>DelphiX260</SanitizedProjectName> |
<DCC_Description>DelphiX - DirectX components for Delphi 10.2 - Tokyo</DCC_Description> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"> |
<Form>$ENDIF</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"> |
<Form>$ENDIF</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX260.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX260.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX270.dpk |
---|
0,0 → 1,78 |
package DelphiX270; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 10.4 - Sydney'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas', |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX270.dproj |
---|
0,0 → 1,178 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{84EABC6F-D69F-4837-9DC3-7A7FE610DA69}</ProjectGuid> |
<MainSource>DelphiX270.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>19.2</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_E>false</DCC_E> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<SanitizedProjectName>DelphiX270</SanitizedProjectName> |
<DCC_Description>DelphiX - DirectX components for Delphi 10.4 - Sydney</DCC_Description> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"/> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX270.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX270.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX280.dpk |
---|
0,0 → 1,78 |
package DelphiX280; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 11 - Alexandria'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas', |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX280.dproj |
---|
0,0 → 1,189 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{988289D9-603A-42AE-84FD-B9B278FC1799}</ProjectGuid> |
<MainSource>DelphiX280.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>19.5</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_E>false</DCC_E> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<SanitizedProjectName>DelphiX280</SanitizedProjectName> |
<DCC_Description>DelphiX - DirectX components for Delphi 11 - Alexandria</DCC_Description> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vclimg;vcl;rtl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_RangeChecking>true</DCC_RangeChecking> |
<DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"/> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX280.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX280.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX290.dpk |
---|
0,0 → 1,78 |
package DelphiX290; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 12 - Athens'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
D3DUtils in 'D3DUtils.pas', |
DirectX in 'DirectX.pas', |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX290.dproj |
---|
0,0 → 1,183 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{35E4C8B0-A649-4664-A52A-82A98347F8A2}</ProjectGuid> |
<MainSource>DelphiX290.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>20.1</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_E>false</DCC_E> |
<DCC_F>false</DCC_F> |
<DCC_K>false</DCC_K> |
<DCC_N>false</DCC_N> |
<DCC_S>false</DCC_S> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenDll>true</GenDll> |
<GenPackage>true</GenPackage> |
<SanitizedProjectName>DelphiX290</SanitizedProjectName> |
<DCC_Description>DelphiX - DirectX components for Delphi 12 - Athens</DCC_Description> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;DUnitX.Loggers.GUI;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<BT_BuildType>Debug</BT_BuildType> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<DCC_UsePackage>vcl;rtl;vclimg;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vcl;rtl;vclimg;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_RangeChecking>true</DCC_RangeChecking> |
<DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="D3DUtils.pas"/> |
<DCCReference Include="DirectX.pas"/> |
<DCCReference Include="SXMedia\SXReg.pas"/> |
<DCCReference Include="SXMedia\MpSndSys.pas"/> |
<DCCReference Include="SXMedia\SXAbout.pas"> |
<Form>AboutBox</Form> |
</DCCReference> |
<DCCReference Include="SXMedia\SXEditor.pas"/> |
<DCCReference Include="SXMedia\SXEngine.pas"/> |
<DCCReference Include="SXMedia\SXModPlayer.pas"/> |
<DCCReference Include="SXMedia\SXMovie.pas"/> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX290.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">False</Platform> |
<Platform value="iOSDevice32">False</Platform> |
<Platform value="iOSSimulator">False</Platform> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX290.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/SXLib.pas |
---|
0,0 → 1,3139 |
unit SXlib; |
//Simplified X handling routine |
interface |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, |
{$IFDEF QDA_SUPPORT}QDArc,{$ENDIF} |
DXDraws, DirectX, D3DUtils, DXClass; |
(* SXF形式について |
name | ofs | length | comment |
---------------------------------------------------------------------------------------------------- |
Signature | 0 | 16 | 'Simplified_X01 ' |
nVextices | 16 | 2 | number of vertices |
nIndices | 18 | 2 | number of indices for vertices |
dwFVF | 20 | 4 | flags for flexible vertex format |
VertexSize| 24 | 4 | required bytes per vertex |
Vertices | 256 | VertexSize * nVertices | vertices |
Indices | 256+Vertices | 2 * nIndices | indices for vertices |
*) |
(* SX形式について(古い) |
name | ofs | length | comment |
---------------------------------------------------------------------------- |
Signature | 0 | 16 | 'Simplified_X00 ' |
nVextices | 16 | 2 | number of vertices |
nIndices | 18 | 2 | number of indices for vertices |
Vertices | 256 | 40 * nVertices | vertices(TSXVertex) |
Indices | 256+Vertices | 2 * nIndices | indices for vertices |
*) |
const |
//SXファイル識別子 |
//SX file identifier |
SX_SIGNATURE: string[16] = 'Simplified_X00 '; //SXFlexible |
SXF_SIGNATURE: string[16] = 'Simplified_X01 '; //古いSX |
//メッシュを描画するときに一度にDirect3Dに流し込む頂点の最大数(必ず3の倍数) |
//One at a time when drawing the flow into the maximum number of vertices Direct3D mesh (must be a multiple of 3) |
DIV_VERTICES: Word = $FFFF; |
//TSXVertex用、FVFフラグ |
FVF_SXVERTEX: DWord = (D3DFVF_VERTEX or D3DFVF_DIFFUSE or D3DFVF_SPECULAR); |
//TSXVertexMT用 |
FVF_SXVERTEXMT: DWord = (D3DFVF_XYZ or D3DFVF_NORMAL or D3DFVF_DIFFUSE or D3DFVF_SPECULAR or D3DFVF_TEX2); |
type |
TSXMesh = class; |
TSXFrame = class; |
TSXFrameList = class; |
TSXScene = class; |
TSXRenderingQueue = class; |
//SX形式のための頂点データ |
//Vertex data for the SX-style |
TSXVertex = packed record |
case Integer of |
0: ( |
x, y, z: Single; //頂点 |
nx, ny, nz: Single; //法線 |
diffuse: TD3DCOLOR; //ディフューズ |
specular: TD3DCOLOR; //スペキュラ |
tu, tv: Single; //テクスチャ座標 ** Texture coordinates |
); |
1: ( |
pos: TD3DVector; |
normal: TD3DVector; |
); |
end; |
PSXVertex = ^TSXVertex; |
TSXVertexArray = array[0..$FFFFFF] of TSXVertex; |
PSXVertexArray = ^TSXVertexArray; |
//マルチテクスチャ対応SXVertex |
//SXVertex multi-texture support |
TSXVertexMT = packed record |
case Integer of |
0: ( |
x, y, z: Single; //頂点 |
nx, ny, nz: Single; //法線 |
diffuse: TD3DCOLOR; //ディフューズ |
specular: TD3DCOLOR; //スペキュラ |
tu0, tv0: Single; //テクスチャ座標 |
tu1, tv1: Single; //テクスチャ座標(2) |
); |
1: ( |
pos: TD3DVector; |
normal: TD3DVector; |
); |
end; |
PSXVertexMT = ^TSXVertexMT; |
TSXVertexArrayMT = array[0..$FFFFFF] of TSXVertexMT; |
PSXVertexArrayMT = ^TSXVertexArrayMT; |
//ビルボードのための頂点情報 |
//Billboard top information for |
TSXVertexBB = record |
case Integer of |
0: ( |
//視点からの距離1の時の、中心からの相対座標 |
//At a distance from the viewpoint of the relative coordinate from the center |
dx, dy: Single; |
color: TD3DCOLOR; //色 |
tu, tv: Single; //テクスチャ座標 |
); |
1: ( |
size: TSngPoint; |
); |
end; |
//イベントハンドラ |
//Event handler |
TSXRenderMeshEvent = procedure(Sender: TSXFrame) of object; |
//ブレンドモード |
//Blend |
// TSXBlendMode = ( |
// sxbDefault, //普通、透けない |
// sxbAdd, //加算合成 |
// sxbAlpha, //半透明 |
// sxbSub //減算合成 |
// ); |
//可視属性 |
//Visible attribute |
TSXVisibility = ( |
sxvShow, //見える |
sxvHide, //隠れる。子フレームも含めて |
sxvHideMyself //隠れる。子フレームは隠れない。 |
); |
//クラス群 |
//Classes |
//メッシュ用クラス |
//The Mesh Class |
TSXMesh = class |
private |
procedure SetVertexSize(const Value: DWord); |
protected |
FOwner: TDXDraw; //色々お世話になるDDDDオブジェクト |
FVBuf: IDirect3DVertexBuffer7; //VertexBuffer |
FIndexCount: Word; //頂点インデクスの数 |
FVertexCount: Word; //頂点の数 |
FFaceCount: Word; //面の数、常に頂点数/3 |
FVertexSize: DWord; //1個の頂点あたりのサイズ |
FVFFlags: DWord; //描画させるときのフラグ |
VertexKeepBuf: Pointer; //頂点の配列を入れる。Keep用のバッファとして使う |
FIndices: array of Word; //頂点インデクス |
FLocked: Boolean; //ロック中? |
FPVertex: Pointer; //頂点バッファへのポインタ |
FRecovery: Boolean; //リカバリ中? |
function GetIndex(idx: Word): Word; |
function GetVertex(idx: Word): Pointer; |
procedure SetIndex(idx: Word; const Value: Word); |
procedure SetVertex(idx: Word; const Value: Pointer); |
public |
constructor Create(AOwner: TDXDraw); |
destructor Destroy; override; |
procedure KeepVB; //画面が初期化される時の事を考えて、現在のVBの状態を保持 |
procedure RecoverVB; //保持したVBを復元 |
property VertexBuffer: IDirect3DVertexBuffer7 read FVBuf; //VertexBuffer |
property IndexCount: Word read FIndexCount; //頂点インデクスの数 |
property VertexCount: Word read FVertexCount; //頂点の数 |
property FaceCount: Word read FFaceCount; //面の数(頂点の数 / 3 |
property Vertex[idx: Word]: Pointer read GetVertex write SetVertex; //頂点への参照 |
property Index[idx: Word]: Word read GetIndex write SetIndex; //頂点インデクス |
property FVF: DWord read FVFFlags write FVFFlags; //FlexibleVertexFormatに関するフラグ |
property VertexSize: DWord read FVertexSize write SetVertexSize; |
procedure Draw(dwFlags: DWord); //DrawIndexedPrimitiveVBで全部描画 |
procedure DrawPartial(start: Word; count: Word; dwFlags: DWord); //DrawIndexedPrimitiveVBで部分描画 |
procedure LoadFromStream(s: TStream); |
procedure LoadFromFile(fileName: string); |
{$IFDEF QDA_SUPPORT} |
procedure LoadFromQDA(QDAName, QDAID: string); |
{$ENDIF} |
function Lock: Pointer; |
procedure Unlock; |
procedure SetSize(newVertexCount, newIndexCount: Word); //バッファの大きさを再設定する、中身は消える |
procedure Optimize; |
end; |
{ |
TSXMesh = class(TSXGenMesh) |
private |
function GetVertex(idx: Word): TSXVertex; override; |
procedure SetVertex(idx: Word; const Value: TSXVertex); override; |
public |
property Vertex[idx:Word]:TSXVertex read GetVertex write SetVertex; //頂点 |
function Lock:PSXVertexArray; |
end; |
} |
//フレーム |
//The Frame |
TSXFrame = class |
private |
FMatrix: TD3DMATRIX; //変換行列(自分の座標系→親座標系) |
FMeshMatrix: TD3DMATRIX; //メッシュ描画時の変換行列…メッシュ座標→自分座標 |
FAncestors: TSXFrameList; //祖先フレーム達 |
FChildren: TSXFrameList; //子フレーム達 |
FParent: TSXFrame; //親フレーム(Ancestors[Ancestors.Count-1]と同) |
FVisibility: TSXVisibility; //可視属性 |
FBindRenderState: Boolean; //自分の子孫のレンダリングステートを、強制的に自分のにする |
FBindTexture: Boolean; //自分の子孫のテクスチャを、強制的に自分のにする |
FBindMaterial: Boolean; //自分の子孫のマテリアルを、強制的に自分のにする |
RenderedMatrix: TD3DMATRIX; //最後にレンダリングされたときのワールド行列(ビルボードの描画に使用) |
BBAttached: Boolean; //ビルボードがくっついてる? |
function GetWorldMatrix: TD3DMATRIX; |
procedure SetParent(const Value: TSXFrame); |
public |
//中身 |
Texture: TDirect3DTexture2; //メッシュに貼り付けるテクスチャ |
Mesh: TSXMesh; //書き込むメッシュ |
Material: TD3DMATERIAL7; //マテリアル |
//レンダリングステートの制御 |
Lighting: Boolean; //True:ライティングをする, False:頂点の色をそのまま使う |
Specular: Boolean; //スペキュラハイライトをつける |
BlendMode: TRenderType; //描画時のブレンドモード |
//イベントハンドラ |
OnRenderMesh: TSXRenderMeshEvent; //メッシュをこれから書きますですイベント |
//いろいろ |
Tag: DWord; //整数値、なんにでも使って |
RenderAttr: Integer; //整数値、OnRenderMeshで、マテリアル番号代わりにどうぞ |
//コンストラクタ・デストラクタ |
constructor Create(parentFrame: TSXFrame); |
destructor Destroy; override; |
//親子関係 |
property Ancestors: TSXFrameList read FAncestors; |
property Children: TSXFrameList read FChildren; |
property Parent: TSXFrame read FParent write SetParent; |
property BindRenderState: Boolean read FBindRenderState write FBindRenderState; |
property BindTexture: Boolean read FBindTexture write FBindTexture; |
property BindMaterial: Boolean read FBindMaterial write FBindMaterial; |
//可視属性 |
property Visibility: TSXVisibility read FVisibility write FVisibility; |
//座標変換関係 |
property Matrix: TD3DMATRIX read FMatrix write FMatrix; |
property WorldMatrix: TD3DMATRIX read GetWorldMatrix; //自分座標→ワールド座標の変換行列 |
property MeshMatrix: TD3DMATRIX read FMeshMatrix write FMeshMatrix; //メッシュ描画時の変換行列…メッシュ座標→自分座標 |
procedure SetTransform(ref: TSXFrame; const mat: TD3DMATRIX); |
function GetTransform(ref: TSXFrame): TD3DMATRIX; |
function LocalToWorld(vec: TD3DVector): TD3DVector; //フレーム内での座標を、ワールド座標に変換する |
function WorldToLocal(vec: TD3DVector): TD3DVector; //ワールド座標内の座標をフレーム内の座標に変換する |
//位置 |
procedure SetTranslation(ref: TSXFrame; const pos: TD3Dvector); |
function GetTranslation(ref: TSXFrame): TD3DVector; |
//姿勢 |
//…軸ベクトルで設定・取得 |
procedure SetOrientation(ref: TSXFrame; const vecZ: TD3DVector; const vecY: TD3DVector); |
procedure GetOrientation(ref: TSXFrame; var vecZ: TD3DVector; var vecY: TD3DVector); |
//…マトリクスを与えて姿勢だけ設定 |
procedure SetOrientationMatrix(ref: TSXFrame; const mat: TD3DMATRIX); |
//お便利 |
//…Z軸をtargetフレーム内の座標posを向ける。Y軸はworldフレーム内のY軸に向け。Y軸の傾きをbank度とする |
procedure LookAt(target: TSXFrame; const pos: TD3DVector; world: TSXFrame; const bank: Integer); |
function ViewMatrix: TD3DMatrix; //このフレームをカメラにした場合のビュー行列を生成 |
end; |
//フレームのリスト |
//List of frames |
TSXFrameList = class(TList) |
private |
function GetFrame(idx: Integer): TSXFrame; |
procedure SetFrame(idx: Integer; const Value: TSXFrame); |
public |
property Frames[idx: Integer]: TSXFrame read GetFrame write SetFrame; default; |
constructor Create; |
destructor Destroy; override; |
procedure Assign(source: TSXFrameList); |
end; |
//シーン全体 |
TSXScene = class |
private |
FCamera: TSXFrame; |
FOwner: TDXDraw; |
FProjectionMatrix: TD3DMATRIX; |
FVP: TD3DVIEWPORT7; |
OpaqueQueue: TSXRenderingQueue; //不透明体用のキュー |
AlphaQueue: TSXRenderingQueue; //半透明透明体用のキュー |
AddQueue: TSXRenderingQueue; //加算半透明体用のキュー |
SubQueue: TSXRenderingQueue; //減算半透明体用のキュー |
//ProcessVertices用 |
//MeshProcessor:TSXMesh; //Lightingをしないとき・環境マップする時用 |
//MeshProcessorMT:TSXMesh; //同上、ただしマルチテクスチャ(2ステージ)版 |
public |
constructor Create(DDCompo: TDXDraw); |
destructor Destroy; override; |
property CameraFrame: TSXFrame read FCamera write FCamera; //視点を置くフレーム |
procedure Render(rootFrame: TSXFrame); //rootFrame以下を描画 |
procedure Clear(dwFlags: DWord; color: DWORD; z: Single; stencil: DWord); //バックバッファのクリア |
procedure SetProjection(fov, aspect, nearZ, farZ: Single); //透視変換の設定 |
procedure SetViewPort(left, top, right, bottom: DWord); //ビューポート |
procedure Recover; //ビューポートなどの状態をリストア |
procedure PushBillboard(blendMode: TRenderType; ref: TSXFrame; pos: TD3DVector; points: array of TSXVertexBB; tex: TDirect3DTexture2); |
function SphereVisibility(ref: TSXFrame; pos: TD3DVector; radius: Single; depth: Single): Boolean; //refフレーム内にある、中心pos、半径radiusの球は見えるか、但し、距離がdepth以上なら見えないものとする |
end; |
//ライト |
TSXLight = class |
private |
FOwner: TDXDraw; |
FIndex: DWord; //SetLightに渡す、インデクス |
FEnabled: Boolean; |
FUpdate: Boolean; //パラメータの変更を、即反映 |
procedure SetEnabled(const Value: Boolean); |
public |
Params: TD3DLIGHT7; |
constructor Create(DDCompo: TDXDraw; index: DWord); |
destructor Destroy; override; |
procedure BeginUpdate; //Paramsの内容を、Direct3Dに伝えなくする |
procedure EndUpdate; //Paramsの内容を、Direct3Dに伝えなくした状態を解除 |
property Enabled: Boolean read FEnabled write SetEnabled; |
//お便利ルーチン |
procedure SetupDiffuse(_R, _G, _B: Single); |
procedure SetupSpecular(_R, _G, _B: Single); |
procedure SetupAmbient(_R, _G, _B: Single); |
procedure SetupColors(difR, difG, difB, specR, specG, specB, ambR, ambG, ambB: Single); |
procedure SetupRanges(range, att0, att1, att2: Single); |
procedure SetupDirectional(dir: TD3DVector); |
procedure SetupPoint(pos: TD3DVector); |
procedure SetupSpot(pos, dir: TD3DVector; theta, phi, falloff: Single); |
procedure FitFrame(target: TSXFrame); //フレームの位置・向きにセットする |
end; |
//複数のライトを管理するオブジェクト |
TSXLightGroup = class(TList) |
private |
FOwner: TDXDraw; |
FCapacity: DWord; //管理するライトの数 |
FLights: array of TSXLight; |
//FSpecularPower:Single; //スペキュラ強度 |
function GetLights(idx: DWord): TSXLight; |
function GetUnusedLight: TSXLight; |
// procedure SetSpecularPower(const Value: Single); |
public |
constructor Create(DDCompo: TDXDraw; capacity: DWord); |
destructor Destroy; override; |
property Lights[idx: DWord]: TSXLight read GetLights; default; |
property UnusedLight: TSXLight read GetUnusedLight; //Enabledになってない、最初のライトを返す |
//property SpecularPower:Single read FSpecularPower write SetSpecularPower; |
procedure EnableAll; //全部点ける |
procedure DisableAll; //全部消す |
procedure Recover; //解像度を変えた後などのリカバリ |
end; |
TSXMaterial = class |
private |
FOwner: TDXDraw; |
FUpdate: Boolean; |
public |
Params: TD3DMATERIAL7; |
constructor Create(DDCompo: TDXDraw); |
procedure BeginUpdate; //Paramsの内容を、Direct3Dに伝えなくする |
procedure EndUpdate; //Paramsの内容を、Direct3Dに伝えなくした状態を解除 |
procedure SetupDiffuse(_R, _G, _B: Single); |
procedure SetupSpecular(_R, _G, _B: Single); |
procedure SetupAmbient(_R, _G, _B: Single); |
procedure SetupEmissive(_R, _G, _B: Single); |
procedure SetupSpecularPower(pow: Single); |
procedure SetupColors(difR, difG, difB, specR, specG, specB, ambR, ambG, ambB, emsR, emsG, emsB, pow: Single); |
end; |
//メッシュ描画キューに入れる情報 |
TSXMeshInfo = record |
frame: TSXFrame; //そのメッシュを描こうとしたフレームはどれ? |
mesh: TSXMesh; //メッシュ |
mat: TD3DMatrix; //変換行列 |
tex: TDirect3DTexture2; //テクスチャ |
mtrl: TD3DMATERIAL7; //マテリアル |
lighting: Boolean; //光源計算する/しない |
OnRender: TSXRenderMeshEvent; |
end; |
//ビルボード描画キューに入れる情報 |
TSXBillboardInfo = record |
ref: TSXFrame; //基準フレーム |
pos: TD3DVector; //基準フレーム内での位置 |
tex: TDirect3DTexture2; //テクスチャ |
pts: array[0..3] of TSXVertexBB; //頂点データ |
end; |
//レンダリングの順序を保つためのバッファ、透明体かそうでないかで順序を変える。 |
//Render order to maintain the buffer, or not change the order in a transparent body. |
TSXRenderingQueue = class |
private |
FOwner: TDXDraw; //色々お世話になるDDDDオブジェクト |
Scene: TSXScene; //この |
MeshQueue: array of TSXMeshInfo; |
BillboardQueue: array of TSXBillboardInfo; |
FMeshCapacity: Integer; //メッシュを情報蓄える容量 |
FBillboardCapacity: Integer; |
FMeshCount: Integer; //キューに入ってる数 |
FBillboardCount: Integer; |
procedure SetBillBoardCapacity(const Value: Integer); |
procedure SetMeshCapacity(const Value: Integer); //ビルボードについての情報を蓄える容量 |
public |
constructor Create(AOwner: TDXDraw; _Scene: TSXScene); |
destructor Destroy; override; |
procedure PushMesh(mesh: TSXMesh; frame: TSXFrame; mat: TD3DMatrix; tex: TDirect3DTexture2; mtrl: TD3DMATERIAL7; event: TSXRenderMeshEvent); //メッシュ |
procedure PushBillboard(ref: TSXFrame; pos: TD3DVector; tex: TDirect3DTexture2; pts: array of TSXVertexBB); //ビルボード |
procedure Render(viewMat: TD3DMATRIX; viewParam: TD3DVIEWPORT7); //レンダリング |
procedure Flush; //レンダリングせず、バッファの中を空に **Without rendering the buffer to empty |
property MeshCapacity: Integer read FMeshCapacity write SetMeshCapacity; |
property BillboardCapacity: Integer read FBillboardCapacity write SetBillBoardCapacity; |
property MeshCount: Integer read FMeshCount; |
property BillboardCount: Integer read FBillboardCount; |
end; |
{Renderer of the primitive} |
TSXPrimitiveRec = packed record |
Texture: TDirect3DTexture2; //テクスチャ |
Bound: array[0..3] of TD3DTLVertex; //四角形 |
ZOrder: Integer; //Zオーダ |
BlendMode: TRenderType; //ブレンドモード |
end; |
PPrimitive = ^TSXPrimitiveRec; |
TSXTextureCoordRec = packed record |
Texture: TDirect3DTexture2; |
Top, Left, Bottom, Right: Single; //テクスチャ座標 |
end; |
PTextureCoord = ^TSXTextureCoordRec; |
TSingleRect = packed record |
Left, Top, Right, Bottom: Single; |
end; |
TSXPrimitiveRenderer = class |
private |
FDXDraw: TDXDraw; |
FZMax: Integer; //Zオーダの最大値 |
FMaxPrimitives: Integer; //格納できるTLVの最大値 |
ZSortBuf: ^Integer; //Zソート用バッファ |
ZSortCount: ^Integer; //Zソート用カウンタ |
PrimBuf: PPrimitive; //プリミティブ入れ |
PrimCount: Integer; //現在PrimBufに入ってるプリミティブの数 |
Patterns: PTextureCoord; //テクスチャパターン |
FNPrims: Integer; //最後にUpdateメソッドを発行した際の、プリミティブの数 |
FColorKey: Boolean; //カラーキーによる抜き色を行う? |
procedure setZMax(v: Integer); |
public |
constructor Create(DDCompo: TDXDraw; PrimitiveCount: Integer; PatternCount: Integer); |
destructor Destroy; override; |
property ZMax: Integer read FZMax write setZMax; |
procedure SetPattern(idx: Integer; Tex: TDirect3DTexture2; Coord: TRect); //パターンとしてTexのCoordで示される範囲を登録 |
procedure Push(Tex: TDirect3DTexture2; p1, p2, p3, p4: TD3DTLVertex; Z: Integer; blend: TRenderType); //TLVertexで四角形を入れる |
procedure Push2D(Tex: TDirect3DTexture2; p1, p2, p3, p4: TD2DVector; Z: Integer; blend: TRenderType; col: DWord); //2D的な四角形 |
procedure PushPattern(iPat: Integer; p1, p2, p3, p4: TD3DHVector; Z: Integer; blend: TRenderType; col: DWord); //パターンをプッシュ(3次元) |
procedure PushPattern2D(iPat: Integer; p1, p2, p3, p4: TD2DVector; Z: Integer; blend: TRenderType; col: DWord); //パターンをプッシュする |
procedure PushPatternRect(iPat: Integer; rect: TSingleRect; Z: Integer; blend: TRenderType; col: DWord); //パターンをプッシュする(矩形) |
procedure BeginRender; //Z値にしたがってソート |
procedure RenderOneLayer(Z: Integer); //単一のZ値を持つ集合だけ描画 |
procedure EndRender; //スタックを空に |
procedure Render; //全部描画(BeginRender~RenderOneLayer~EndRender) |
property nPrims: Integer read FNPrims; |
property ColorKey: Boolean read FColorKey write FColorKey; |
class function SingleRect(x1, y1, x2, y2: Single): TSingleRect; |
end; |
//SXVertex作成 |
function SXVertex(x, y, z, nx, ny, nz: Single; dif, spec: TD3DCOLOR; tu, tv: Single): TSXVertex; |
//SXVertexBB作成 |
function SXVertexBB(dx, dy: Single; col: TD3DCOLOR; tu, tv: Single): TSXVertexBB; |
//マテリアル設定の便宜を図る関数 |
//Convenience function for setting material |
function MakeMaterial(difR, difG, difB, specR, specG, specB, ambR, ambG, ambB, emsR, emsG, emsB, pow: Single): TD3DMATERIAL7; |
implementation |
type |
TSXTLVertexMT = packed record |
case Integer of |
0: ( |
x, y, z, rhw: Single; //頂点 |
diffuse: TD3DCOLOR; //ディフューズ |
specular: TD3DCOLOR; //スペキュラ |
tu0, tv0: Single; //テクスチャ座標 |
tu1, tv1: Single; //テクスチャ座標2 |
); |
1: ( |
pos: TD3DVector; |
); |
2: ( |
hgPos: TD3DHVector; |
); |
end; |
const |
FVF_SXTLVertexMT: DWord = (D3DFVF_XYZRHW or D3DFVF_DIFFUSE or D3DFVF_SPECULAR or D3DFVF_TEX2); |
{ Helper functions } |
function SXVertex(x, y, z, nx, ny, nz: Single; dif, spec: TD3DCOLOR; tu, tv: Single): TSXVertex; |
begin |
result.x := x; |
result.y := y; |
result.z := z; |
result.nx := nx; |
result.ny := ny; |
result.nz := nz; |
result.diffuse := dif; |
result.specular := spec; |
result.tu := tu; |
result.tv := tv; |
end; |
function SXVertexBB(dx, dy: Single; col: TD3DCOLOR; tu, tv: Single): TSXVertexBB; |
begin |
result.dx := dx; |
result.dy := dy; |
result.color := col; |
result.tu := tu; |
result.tv := tv; |
end; |
{ TSXMesh } |
//コンストラクタ |
//Constructor |
constructor TSXMesh.Create(AOwner: TDXDraw); |
begin |
inherited Create; |
FOwner := AOwner; |
FVBuf := nil; |
SetLength(FIndices, 0); |
FIndexCount := 0; |
FFaceCount := 0; |
FVertexCount := 0; |
VertexKeepBuf := nil; |
FVertexSize := sizeof(TSXVertex); |
FVFFlags := FVF_SXVERTEX; |
FLocked := False; |
FRecovery := False; |
end; |
//デストラクタ |
//Destructor |
destructor TSXMesh.Destroy; |
begin |
if FVBuf <> nil then |
FVBuf := nil; //._Release; |
if VertexKeepBuf <> nil then |
FreeMem(VertexKeepBuf); |
FIndices := nil; |
inherited; |
end; |
//現在のVertexBufferの状態を保持 |
//Currently holds the state of VertexBuffer |
procedure TSXMesh.KeepVB; |
begin |
if FVBuf <> nil then |
begin |
//バッファサイズの変更 |
//Resizing of the buffer |
if VertexKeepBuf <> nil then |
FreeMem(VertexKeepBuf); |
VertexKeepBuf := AllocMem(VertexSize * FVertexCount); |
Self.Lock; |
Move(FPVertex^, VertexKeepBuf^, VertexSize * FVertexCount); |
Self.Unlock; |
end; |
end; |
//保存したVertexBufferの状態を復元 |
//Restore the state saved VertexBuffer |
procedure TSXMesh.RecoverVB; |
begin |
if FVBuf <> nil then |
begin |
//リカバリ期間・開始 |
//Recovery period begins |
FRecovery := True; |
FVBuf := nil; |
SetSize(FVertexCount, FIndexCount); |
Self.Lock; |
Move(VertexKeepBuf^, FPVertex^, VertexSize * FVertexCount); |
Self.Unlock; |
FreeMem(VertexKeepBuf); |
VertexKeepBuf := nil; |
FRecovery := False; |
//リカバリ期間・終了 |
//Recovery period ends |
end; |
end; |
//DPで描画 |
//Simple DP draw |
procedure TSXMesh.Draw(dwFlags: DWord); |
var |
ofs: Word; |
nIs: Word; |
begin |
ofs := 0; |
while ofs < FIndexCount do |
begin |
nIs := FIndexCount - ofs; |
if nIs > DIV_VERTICES then |
nIs := DIV_VERTICES; |
FOwner.D3DDevice7.DrawIndexedPrimitiveVB( |
D3DPT_TRIANGLELIST, FVBuf, 0, FVertexCount, FIndices[ofs], nIs, dwFlags); |
Inc(ofs, nIs); |
end; |
end; |
//DPで描画 |
//Draw DP strem of primitives |
procedure TSXMesh.DrawPartial(start: Word; count: Word; dwFlags: DWord); |
begin |
FOwner.D3DDevice7.DrawIndexedPrimitiveVB( |
D3DPT_TRIANGLELIST, FVBuf, 0, FVertexCount, FIndices[start], count, dwFlags); |
end; |
//インデクス操作 |
//Check index |
function TSXMesh.GetIndex(idx: Word): Word; |
begin |
if idx >= FIndexCount then |
begin |
//DDDD_PutDebugMessage('SXLib: 範囲外の頂点インデクスを参照しようとしました'); |
result := 0; |
exit; |
end; |
result := FIndices[idx]; |
end; |
procedure TSXMesh.SetIndex(idx: Word; const Value: Word); |
begin |
if idx >= FIndexCount then |
begin |
//DDDD_PutDebugMessage('SXLib: 範囲外の頂点インデクスを設定しようとしました'); |
exit; |
end; |
FIndices[idx] := Value; |
end; |
//頂点操作 |
//Operation on Vertex |
function TSXMesh.GetVertex(idx: Word): Pointer; |
var |
pV: Pointer; |
ofs: DWord; |
lpdwSize: Cardinal; |
begin |
//範囲チェック |
//check range |
if idx >= FVertexCount then |
begin |
//DDDD_PutDebugMessage('SXLib: 範囲外の頂点を参照しようとしました'); |
result := nil; |
exit; |
end; |
//ロックされていないなら、ロック。ロックされてるなら、前に得たポインタをゲット |
//when is unlocked, then lock there |
if not FLocked then |
begin |
if FVBuf.Lock(DDLOCK_READONLY or DDLOCK_WAIT, pV, lpdwSize) <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがロックできません'); |
Halt; |
end; |
end |
else |
pV := FPVertex; |
//返り値に格納 |
//calc place of vertices |
ofs := idx * VertexSize; |
asm |
mov eax,ofs; |
add pV,eax; |
end; |
result := pV; |
//アンロック |
//unlock |
if not FLocked then |
begin |
if FVBuf.Unlock <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがアンロックできません'); |
Halt; |
end; |
end; |
end; |
procedure TSXMesh.SetVertex(idx: Word; const Value: Pointer); |
var |
ofs: DWord; |
pV: ^TSXVertex; |
lpdwSize: Cardinal; |
begin |
//範囲チェック |
//check range |
if idx >= FVertexCount then |
begin |
//DDDD_PutDebugMessage('SXLib: 範囲外の頂点を変更しようとしました'); |
exit; |
end; |
//ロックされていないなら、ロック。ロックされてるなら、前に得たポインタをゲット |
//Test when unlocked, and after test lock |
if not FLocked then |
begin |
if FVBuf.Lock(DDLOCK_WRITEONLY or DDLOCK_WAIT, Pointer(pV), lpdwSize) <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがロックできません'); |
Halt; |
end; |
end |
else |
pV := FPVertex; |
//格納するっす |
//physic size of vertices stream |
ofs := idx * VertexSize; |
asm |
mov eax,ofs; |
add pV,eax; |
end; |
Move(Value^, pV^, VertexSize); |
//Unlock |
if not FLocked then |
begin |
if FVBuf.Unlock <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがアンロックできません'); |
Halt; |
end; |
end; |
end; |
//1Vertexあたりのサイズを変更 |
//Set size for all Vertexes |
procedure TSXMesh.SetVertexSize(const Value: DWord); |
begin |
FVertexSize := Value; |
SetSize(FVertexCount, FIndexCount); |
end; |
//ストリームから読み込み |
//Reading from strem |
procedure TSXMesh.LoadFromStream(s: TStream); |
var |
sign: array[0..16] of AnsiChar; |
nVertices, nIndices: Word; |
StartPos: Integer; |
begin |
StartPos := s.Position; |
//シグネチャの確認 |
//Check of the signature |
sign[16] := Chr(0); |
s.ReadBuffer(sign, 16); |
if StrPas(sign) = SX_SIGNATURE then |
begin |
//SX形式 |
FVertexSize := Sizeof(TSXVertex); |
FVFFlags := FVF_SXVERTEX; |
//頂点数・頂点インデクス数の設定 |
//Setting the number of vertices of vertex indices |
s.ReadBuffer(nVertices, Sizeof(Word)); |
s.ReadBuffer(nIndices, Sizeof(Word)); |
end |
else |
if StrPas(sign) = SXF_SIGNATURE then |
begin |
//頂点数・頂点インデクス数の設定 |
//Setting the number of vertices of vertex indices |
s.ReadBuffer(nVertices, Sizeof(Word)); |
s.ReadBuffer(nIndices, Sizeof(Word)); |
//SXFlexible format |
s.ReadBuffer(FVFFlags, Sizeof(DWord)); |
s.ReadBuffer(FVertexSize, Sizeof(DWord)); |
end |
else |
begin |
//DDDD_PutDebugMessage('SXLib: 不正なSXファイルです'); |
Halt; |
end; |
SetSize(nVertices, nIndices); |
//ヘッダのスキップ |
//Skip header |
s.Position := StartPos + 256; |
try |
//頂点のロード |
//Peak load |
Lock; |
s.ReadBuffer(FPVertex^, VertexSize * nVertices); |
Unlock; |
//頂点インデクスのロード |
//Load indexes |
s.ReadBuffer(FIndices[0], Sizeof(Word) * nIndices); |
except |
//DDDD_PutDebugMessage('SXLib: ストリームからの読み込み中にエラーが発生しました'); |
Halt; |
end; |
end; |
//ファイルから読み込み |
//Load from file by name |
procedure TSXMesh.LoadFromFile(fileName: string); |
var |
fs: TFileStream; |
begin |
fs := nil; |
try |
fs := TFileStream.Create(filename, fmOpenRead); |
except |
//DDDD_PutDebugMessage('SXLib: ' + filename + ' が、開けません'); |
Halt; |
end; |
LoadFromStream(fs); |
fs.Free; |
end; |
{$IFDEF QDA_SUPPORT} |
//QDAから読み込み |
procedure TSXMesh.LoadFromQDA(QDAName, QDAID: string); |
var |
ms: TMemoryStream; |
begin |
ms := nil; |
try |
ms := ExtractFromQDAFile(QDAName, QDAID); |
except |
//DDDD_PutDebugMessage('SXLib: ' + QDAname + ' 内の、' + QDAID + 'が抽出できません'); |
Halt; |
end; |
LoadFromStream(ms); |
ms.Free; |
end; |
{$ENDIF} |
//VertexBuffer Lock |
function TSXMesh.Lock: Pointer; |
var lpdwSize: Cardinal; |
begin |
if FVBuf.Lock(DDLOCK_WAIT, Pointer(FPVertex), lpdwSize) <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがロックできません'); |
Halt; |
end; |
result := FPVertex; |
FLocked := True; |
end; |
//VertexBuffer unlock |
procedure TSXMesh.Unlock; |
begin |
if FVBuf.Unlock <> DD_OK then |
begin |
//DDDD_PutDebugMessage('SXLib: VertexBufferがアンロックできません'); |
Halt; |
end; |
FLocked := False; |
end; |
//頂点配列とインデクス配列のサイズを再設定 |
//Reconfigure the size of the array and vertex array indices |
procedure TSXMesh.SetSize(newVertexCount, newIndexCount: Word); |
var |
vbdesc: TD3DVERTEXBUFFERDESC; |
begin |
FVertexCount := newVertexCount; |
FIndexCount := newIndexCount; |
FFaceCount := newIndexCount div 3; |
//まず、既存のVertexBufferの解放 |
//When exist VertexBuffer, release it |
if FVBuf <> nil then |
FVBuf := nil; //.Release; |
//VertexBufferの生成 |
//Generate VertexBuffer |
ZeroMemory(@vbdesc, Sizeof(vbdesc)); |
with vbdesc do |
begin |
dwSize := Sizeof(vbdesc); |
{$IFNDEF D3D_deprecated} |
if not (dtTnLHAL in FOwner.D3DDeviceTypeSet) then |
dwCaps := D3DVBCAPS_SYSTEMMEMORY |
else |
{$ENDIF} |
dwCaps := 0; |
dwFVF := FVFFlags; |
dwNumVertices := newVertexCount; |
end; |
FOwner.D3D7.CreateVertexBuffer(vbdesc, FVBuf, 0); |
//頂点インデクス配列の設定 |
//Vertex set of the array index |
if not FRecovery then |
SetLength(FIndices, newIndexCount); |
end; |
//最適かするっ。ロックとかはできなくなるよ |
//Optimize, cannot be locked |
procedure TSXMesh.Optimize; |
begin |
FVBuf.Optimize(FOwner.D3DDevice7, 0); |
end; |
{ TSXFrame } |
constructor TSXFrame.Create(parentFrame: TSXFrame); |
begin |
inherited Create; |
//親子関係の初期化 |
//Initialize parent-child relationship |
FAncestors := TSXFrameList.Create; |
if ParentFrame <> nil then |
begin |
//Ancestral copy of the list |
FAncestors.Assign(parentFrame.Ancestors); //先祖リストのコピー |
//Fathers at the end of the list, put the parent |
FAncestors.Add(parentFrame); //先祖リストの末尾に、親を入れる |
//Parents put their children to the list |
ParentFrame.Children.Add(Self); //親の子リストに自分をつける |
end; |
FChildren := TSXFrameList.Create; |
FParent := parentFrame; |
FBindMaterial := False; |
FBindRenderState := False; |
FBindTexture := False; |
//変数とかの初期化 |
//Variable Or First Initialization |
FMatrix := D3DUtil_SetIdentityMatrix; |
FMeshMatrix := D3DUtil_SetIdentityMatrix; |
BlendMode := rtDraw; |
Material := MakeMaterial(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0); |
Visibility := sxvShow; |
Lighting := True; |
Specular := True; |
OnRenderMesh := nil; |
Mesh := nil; |
Texture := nil; |
end; |
destructor TSXFrame.Destroy; |
begin |
inherited; |
while Children.Count > 0 do |
begin //This child frame is recursively Freed |
Children[0].Free; //これで、再帰的に子フレームがFreeされる |
end; |
//リストオブジェクトの解放 |
//Object free list |
FChildren.Free; |
FAncestors.Free; |
//親のリストから自分をはずす |
//Remove yourself from the list of parents |
if Parent <> nil then |
Parent.Children.Delete(Parent.Children.IndexOf(Self)); |
end; |
//自分の座標→ワールド座標 のための変換行列を得る |
//To obtain the world coordinate transformation matrix → coordinate their |
function TSXFrame.GetWorldMatrix: TD3DMATRIX; |
var |
mat: TD3DMATRIX; |
i: Integer; |
begin |
mat := FMatrix; |
//祖先のマトリクスを 親→祖父… の順に乗じていく。 |
//Ancestors[0] はNilであり、途中にNilは入らないという前提の下に計算 |
// Parent → grandfather ... we multiply the matrix of the ancestral order. |
// Ancestors [0] is not Nil, Nil way under the assumption that the fit is calculated |
for i := Ancestors.Count - 1 downto 1 do |
begin |
{$IFDEF USE_S_MATHPACK} |
mat := NowCompositeMatrix(mat, Ancestors[i].FMatrix); |
{$ELSE} |
D3DMath_MatrixMultiply(mat, FMatrix, Ancestors[i].FMatrix) |
{$ENDIF} |
end; |
result := mat; |
end; |
//…Z軸をtargetフレーム内の座標posを向ける。worldフレームのY軸をupベクトルに指定し、Y軸のZ軸回りの傾きをbank度とする |
// Z axis toward the target coordinates in the frame pos. Y-axis of world frame specified in the up vector, Y and Z axis tilt of the axis around which at bank |
procedure TSXFrame.LookAt(target: TSXFrame; const pos: TD3DVector; world: TSXFrame; const bank: Integer); |
var |
vRel: TD3DVECTOR; //Targetとの相対座標 //Target coordinates to relative |
vecCeil: TD3Dvector; //天井のベクトル //Vector Ceiling |
vecX, vecY, vecZ: TD3DVECTOR; |
normX: Single; //X軸の長さ(天井とZが平行かどうかのチェック用) |
//The length of the X-axis (Z and for checking whether the ceiling parallel) |
begin |
{ |
//targetのposは、自分の座標系でどこなのか |
vRel:=WorldToLocal(target.LocalToWorld(pos)); |
//向き = Z軸ベクトル |
vecZ:=NowNormalize(vRel); |
//YZ平面にvRelを射影して、X軸と外積を取って新しいY軸を得る |
vecY:=NowCrossProduct(Vector(0,vecZ.Y,vecZ.Z), Vector(1,0,0)); |
vecY:=NowNormalize(vecY); |
SetOrientation(Self, vecZ, vecY); |
} |
//targetのposは、自分の座標系でどこなのか |
//pos of target, or a coordinate system where one |
vRel := WorldToLocal(target.LocalToWorld(pos)); |
//向き = Z軸ベクトル |
//Direction = Z axis vector |
{$IFDEF USE_S_MATHPACK} |
vecZ := NowNormalize(vRel); |
{$ELSE} |
vecZ := D3DMath_VecNormalize(vRel); |
{$ENDIF} |
//天井の向き = worldのY軸 |
//Ceiling Direction = World of the Y-axis |
{$IFDEF USE_S_MATHPACK} |
vecCeil := NowSub(WorldToLocal(world.LocalToWorld(Vector(0, 1, 0))), WorldToLocal(world.LocalToWorld(Vector(0, 0, 0)))); |
vecCeil := NowNormalize(vecCeil); |
{$ELSE} |
vecCeil := D3DMath_Vec3Subtract(WorldToLocal(world.LocalToWorld(MakeD3DVector(0, 1, 0))), WorldToLocal(world.LocalToWorld(MakeD3DVector(0, 0, 0)))); |
vecCeil := D3DMath_VecNormalize(vecCeil); |
{$ENDIF} |
//天井とZで外積を取って、Xの向きとする |
//Taking the cross product in the ceiling and Z and the direction of the X |
{$IFDEF USE_S_MATHPACK} |
vecX := NowCrossProduct(vecCeil, vecZ); |
{$ELSE} |
vecX := D3DMath_Vec3Cross(vecCeil, vecZ); |
{$ENDIF} |
//天井とZが平行な場合、右耳の方向をworldのX軸にする |
//And Z is parallel to the ceiling, the direction of the X-axis of the world right ear |
{$IFDEF USE_S_MATHPACK} |
normX := NowLength(vecX); |
{$ELSE} |
normX := D3DMath_Vec3Length(vecX); |
{$ENDIF} |
if normX < 0.0001 then |
{$IFDEF USE_S_MATHPACK} |
vecX := NowSub(WorldToLocal(world.LocalToWorld(Vector(1, 0, 0))), WorldToLocal(world.LocalToWorld(Vector(0, 0, 0)))); |
{$ELSE} |
vecX := D3DMath_Vec3Subtract(WorldToLocal(world.LocalToWorld(MakeD3DVector(1, 0, 0))), WorldToLocal(world.LocalToWorld(MakeD3DVector(0, 0, 0)))); |
{$ENDIF} |
{$IFDEF USE_S_MATHPACK} |
vecX := NowNormalize(vecX); |
{$ELSE} |
vecX := D3DMath_VecNormalize(vecX); |
{$ENDIF} |
//XとZで外積を取って、Yの向きとする |
//Taking the cross product in X and Z direction and the Y |
{$IFDEF USE_S_MATHPACK} |
vecY := NowNormalize(NowCrossProduct(vecZ, vecX)); |
{$ELSE} |
vecY := D3DMath_VecNormalize(D3DMath_Vec3Cross(vecZ, vecX)); |
{$ENDIF} |
//以上で姿勢の計算完了~セット |
//Complete set - at least calculate the position |
SetOrientation(Self, vecZ, vecY); |
//バンク |
//Bank |
if bank <> 0 then |
{$IFDEF USE_S_MATHPACK} |
SetTransform(Self, NowRotZMatrix(bank)); |
{$ELSE} |
begin |
SetTransform(Self, D3DUtil_SetRotateZMatrix(bank)); |
end; |
{$ENDIF} |
end; |
//refに対する変換行列の設定 |
procedure TSXFrame.SetTransform(ref: TSXFrame; const mat: TD3DMATRIX); |
begin |
if ref = Self then |
begin |
//自分への変換行列 |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, FMatrix); |
{$ELSE} |
FMatrix := D3DMath_MatrixMultiply(mat, FMatrix) |
{$ENDIF} |
end |
else |
if ref = Parent then |
begin |
//親への変換行列 |
//Transformation matrix to the parent |
FMatrix := mat; |
end |
else |
begin |
//自分→ref→ワールド→親 |
//Ones to ref to World to Parent |
if Parent <> nil then |
begin |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix( |
NowCompositeMatrix(mat, ref.WorldMatrix), |
NowInvMatrix(Parent.WorldMatrix) |
) |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(D3DMath_MatrixMultiply(mat, WorldMatrix), D3DMath_MatrixInvert(Parent.WorldMatrix)) |
end |
{$ENDIF} |
else |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, NowInvMatrix(Parent.WorldMatrix)); |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(mat, D3DMath_MatrixInvert(Parent.WorldMatrix)); |
end |
{$ENDIF} |
end |
else |
begin |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, ref.WorldMatrix) |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(mat, ref.WorldMatrix) |
end |
{$ENDIF} |
else |
FMatrix := mat; |
end; |
end; |
end; |
//refに対する変換行列の取得 |
//ref to get the transformation matrix |
function TSXFrame.GetTransform(ref: TSXFrame): TD3DMATRIX; |
begin |
if ref = Self then |
begin |
//自分への変換を得る…単位行列に決まってる。 |
//Their conversion to get ... I decided the matrix. |
result := D3DUtil_SetIdentityMatrix; |
end |
else |
if ref = Parent then |
begin |
//親へのオリエンテーションを得る |
//Get to the parent orientation |
result := FMatrix; |
end |
else |
begin |
//自分→ワールド→ref |
//Ones to World to Ref |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
result := NowCompositeMatrix(WorldMatrix, NowInvMatrix(ref.WorldMatrix)) |
{$ELSE} |
begin |
Result := D3DMath_MatrixMultiply(WorldMatrix, D3DMath_MatrixInvert(Parent.WorldMatrix)); |
end |
{$ENDIF} |
else |
result := WorldMatrix; |
end; |
end; |
//姿勢の設定 |
//Setting position |
procedure TSXFrame.SetOrientation(ref: TSXFrame; const vecZ: TD3DVector; |
const vecY: TD3DVector); |
var |
tmpMat: TD3DMATRIX; //refフレームとの相対変換行列 //relative to ref frame transformation matrix |
vTrans: array[0..3] of Single; //平行移動成分の保存用 //Translation component storage |
vecX: TD3DVECTOR; |
begin |
{$IFDEF USE_S_MATHPACK} |
vecX := NowNormalize(NowCrossProduct(vecY, vecZ)); |
{$ELSE} |
vecX := D3DMath_VecNormalize(D3DMath_Vec3Cross(vecY, vecZ)); |
{$ENDIF} |
if ref = Parent then |
begin |
//親への姿勢を作るだけなら、簡単 |
//If you just make a commitment to parents, simply |
with FMatrix do |
begin |
_11 := vecX.X; _12 := vecX.Y; _13 := vecX.Z; |
_21 := vecY.X; _22 := vecY.Y; _23 := vecY.Z; |
_31 := vecZ.X; _32 := vecZ.Y; _33 := vecZ.Z; |
end; |
end |
else |
begin |
//平行移動成分の保存 |
//Save the translation component |
vTrans[0] := FMatrix._41; |
vTrans[1] := FMatrix._42; |
vTrans[2] := FMatrix._43; |
//変換 |
//transformation |
with tmpMat do |
begin |
_11 := vecX.X; _12 := vecX.Y; _13 := vecX.Z; _14 := 0; |
_21 := vecY.X; _22 := vecY.Y; _23 := vecY.Z; _24 := 0; |
_31 := vecZ.X; _32 := vecZ.Y; _33 := vecZ.Z; _34 := 0; |
_41 := vTrans[0]; _42 := vTrans[1]; _43 := vTrans[2]; _44 := 1; |
end; |
SetTransform(ref, tmpMat); |
//Restoring the translation component |
with FMatrix do |
begin |
_41 := vTrans[0]; _42 := vTrans[1]; _43 := vTrans[2]; |
end; |
end; |
end; |
//位置の設定 |
//Set Position |
procedure TSXFrame.SetTranslation(ref: TSXFrame; const pos: TD3Dvector); |
var |
tmpMat: TD3DMATRIX; //refフレームとの相対変換行列 //relative to ref frame transformation matrix |
origMat: TD3DMATRIX; //For postural |
begin |
if ref = Parent then |
begin |
//親へのトランスレーションを作るだけなら、簡単 |
//If you only make the translation to the parent easily |
with FMatrix do |
begin |
_41 := pos.X; _42 := pos.Y; _43 := pos.Z; |
end; |
end |
else |
begin |
origMat := FMatrix; |
tmpMat := FMatrix; |
with tmpMat do |
begin |
_41 := pos.X; _42 := pos.Y; _43 := pos.Z; |
end; |
SetTransform(ref, tmpMat); |
with FMatrix do |
begin |
_11 := OrigMat._11; _12 := OrigMat._12; _13 := OrigMat._13; |
_21 := OrigMat._21; _22 := OrigMat._22; _23 := OrigMat._23; |
_31 := OrigMat._31; _32 := OrigMat._32; _33 := OrigMat._33; |
end; |
end; |
end; |
procedure TSXFrame.GetOrientation(ref: TSXFrame; var vecZ, |
vecY: TD3DVector); |
var |
tmpMat: TD3DMATRIX; //Results calculated buffer |
begin |
tmpMat := GetTransform(ref); |
with vecY, tmpMat do |
begin |
X := _21; Y := _22; Z := _23; |
end; |
with vecZ, tmpMat do |
begin |
X := _31; Y := _32; Z := _33; |
end; |
end; |
//姿勢だけをマトリクスで与える |
//Just give the attitude matrix |
procedure TSXFrame.SetOrientationMatrix(ref: TSXFrame; |
const mat: TD3DMATRIX); |
var |
pushedV: TD3DVector; //平行移動分保存用 //Save Translates for minutes |
begin |
//保存 |
//Save |
with pushedV do |
begin |
x := FMatrix._41; y := FMatrix._42; z := FMatrix._43; |
end; |
if ref = Self then |
begin |
//自分への変換行列 |
//His conversion matrix |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, FMatrix); |
{$ELSE} |
FMatrix := D3DMath_MatrixMultiply(mat, FMatrix) |
{$ENDIF} |
end |
else |
if ref = Parent then |
begin |
//親への変換行列 |
//Transformation matrix to the parent |
FMatrix := mat; |
end |
else |
begin |
//自分→ref→ワールド→親 |
//My→ref →World →Parent |
if Parent <> nil then |
begin |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix( |
NowCompositeMatrix(mat, ref.WorldMatrix), |
NowInvMatrix(Parent.WorldMatrix)) |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(D3DMath_MatrixMultiply(mat, ref.WorldMatrix), D3DMath_MatrixInvert(Parent.WorldMatrix)) |
end |
{$ENDIF} |
else |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, NowInvMatrix(Parent.WorldMatrix)); |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(mat, D3DMath_MatrixInvert(Parent.WorldMatrix)); |
end |
{$ENDIF} |
end |
else |
begin |
if ref <> nil then |
{$IFDEF USE_S_MATHPACK} |
FMatrix := NowCompositeMatrix(mat, ref.WorldMatrix) |
{$ELSE} |
begin |
FMatrix := D3DMath_MatrixMultiply(mat, ref.WorldMatrix) |
end |
{$ENDIF} |
else |
FMatrix := mat; |
end; |
end; |
//復元 |
//Restore |
with pushedV do |
begin |
FMatrix._41 := x; FMatrix._42 := y; FMatrix._43 := z; |
end; |
end; |
function TSXFrame.GetTranslation(ref: TSXFrame): TD3DVECTOR; |
var |
tmpMat: TD3DMATRIX; //結果算出用バッファ Results calculated buffer |
begin |
if ref = Parent then |
begin |
result.X := FMatrix._41; |
result.Y := FMatrix._42; |
result.Z := FMatrix._43; |
end |
else |
begin |
tmpMat := GetTransform(ref); |
result.X := tmpMat._41; |
result.Y := tmpMat._42; |
result.Z := tmpMat._43; |
end; |
end; |
//フレーム内の座標→ワールド座標 |
//Coordinates in world coordinate frame |
function TSXFrame.LocalToWorld(vec: TD3DVector): TD3DVector; |
begin |
{$IFDEF USE_S_MATHPACK} |
Result := NowHeteroginize(NowTransform(NowHomoginize(vec), WorldMatrix)); |
{$ELSE} |
Result := D3DMath_VecHeterogenize(D3DMath_VecTransform(D3DMath_VecHomogenize(vec), WorldMatrix)) |
{$ENDIF} |
end; |
//ワールド座標→フレーム内の座標 |
//Coordinates in world coordinate frame |
function TSXFrame.WorldToLocal(vec: TD3DVector): TD3DVector; |
begin |
{$IFDEF USE_S_MATHPACK} |
Result := NowHeteroginize(NowTransform(NowHomoginize(vec), NowInvMatrix(WorldMatrix))); |
{$ELSE} |
Result := D3DMath_VecHeterogenize(D3DMath_VecTransform(D3DMath_VecHomogenize(vec), D3DMath_MatrixInvert(WorldMatrix))); |
{$ENDIF} |
end; |
//親フレームの変更 |
//Changing the parent frame |
procedure TSXFrame.SetParent(const Value: TSXFrame); |
//先祖リストを再帰的に修正する |
//Fix recursive ancestor list |
procedure RebuildAncestors(me: TSXFrame); |
var |
i: Integer; |
begin |
for i := 0 to me.Children.Count - 1 do |
begin |
//ヲレの先祖を先祖と崇めなさい |
//Ancestor worship ancestors and record your Wo |
me.Children[i].Ancestors.Assign(me.Ancestors); |
//ヲレを親と崇めなさい |
//Users report your parents to revere |
me.Children[i].Ancestors.Add(me); |
//子々孫々に渡ってそうしたまへ |
//Sometimes we do that across to our children grandchildren |
RebuildAncestors(me.Children[i]); |
end; |
end; |
begin |
//元の親のリストから外す |
//Removed from the list of the original parent |
if FParent <> nil then |
FParent.Children.Delete(FParent.Children.IndexOf(Self)); |
if Value <> nil then |
begin |
//新しい親のリストに加える |
//Add to the list of new parent |
Value.Children.Add(Self); |
//先祖リストを変える |
//Changing the list of ancestors |
Ancestors.Assign(Value.Ancestors); |
Ancestors.Add(Value); |
end |
else |
begin |
Ancestors.Clear; |
end; |
//自分に子供がいるなら、それらの先祖リストも変える |
//If you have children yourself, they also change the list of ancestors |
RebuildAncestors(Self); |
FParent := Value; |
end; |
//このフレームをカメラにした場合のビュー行列を計算 |
//When calculating the view matrix of the camera frame |
function TSXFrame.ViewMatrix: TD3DMatrix; |
begin |
{$IFDEF USE_S_MATHPACK} |
Result := NowInvMatrix(WorldMatrix); |
{$ELSE} |
Result := D3DMath_MatrixInvert(WorldMatrix) |
{$ENDIF} |
end; |
{ TSXFrameList } |
//コピー |
//Copy |
procedure TSXFrameList.Assign(source: TSXFrameList); |
var |
i: Integer; |
begin |
Self.Clear; |
for i := 0 to source.Count - 1 do |
begin |
Self.Add(Pointer(source.Frames[i])); |
end; |
end; |
constructor TSXFrameList.Create; |
begin |
inherited; |
end; |
destructor TSXFrameList.Destroy; |
begin |
inherited; |
end; |
function TSXFrameList.GetFrame(idx: Integer): TSXFrame; |
begin |
result := Items[idx]; |
end; |
procedure TSXFrameList.SetFrame(idx: Integer; const Value: TSXFrame); |
begin |
Items[idx] := Pointer(Value); |
end; |
{ TSXScene } |
constructor TSXScene.Create(DDCompo: TDXDRaw); |
begin |
inherited Create; |
AlphaQueue := TSXRenderingQueue.Create(DDCompo, Self); |
OpaqueQueue := TSXRenderingQueue.Create(DDCompo, Self); |
AddQueue := TSXRenderingQueue.Create(DDCompo, Self); |
SubQueue := TSXRenderingQueue.Create(DDCompo, Self); |
{ |
MeshProcessor:=TSXMesh.Create(DDCompo); |
MeshProcessor.VertexSize:=Sizeof(D3DTLVERTEX); |
MeshProcessor.FVF:=D3DFVF_TLVERTEX; |
MeshProcessor.SetSize(65535,65535); //(^^;) |
MeshProcessorMT:=TSXMesh.Create(DDCompo); |
MeshProcessorMT.VertexSize:=Sizeof(TSXTLVertexMT); |
MeshProcessorMT.FVF:=FVF_SXTLVertexMT; |
MeshProcessorMT.SetSize(65535,65535); |
} |
FCamera := nil; |
FOwner := DDCompo; |
end; |
destructor TSXScene.Destroy; |
begin |
AlphaQueue.Free; |
OpaqueQueue.Free; |
AddQueue.Free; |
SubQueue.Free; |
//MeshProcessor.Free; |
//MeshProcessorMT.Free; |
inherited; |
end; |
//描画 |
procedure TSXScene.Render(rootFrame: TSXFrame); |
var |
viewMat: TD3DMATRIX; |
curTexture: TDirect3DTexture2; |
curMaterial: TD3DMATERIAL7; |
curBlendMode: TRenderType; |
procedure QueingFrame(frame: TSXFrame; const mat: TD3DMATRIX; RSBind, TexBind, MatBind: Boolean); |
var |
i: Integer; |
meshM: TD3DMATRIX; |
begin |
//子フレーム無し、かつ、描画するメッシュなしなら、何もしない |
//Visibilityが「子供もひっくるめて隠す」でも何もしない |
//ただし、ビルボードがくっついてる時は、マトリクスの合成だけ行う |
if (not frame.BBAttached) then |
if ((frame.Children.Count = 0) and (frame.Mesh = nil)) or (frame.Visibility = sxvHide) then |
exit; |
//変換行列の計算 |
{$IFDEF USE_S_MATHPACK} |
frame.RenderedMatrix := NowCompositeMatrix(frame.Matrix, mat); |
{$ELSE} |
frame.RenderedMatrix := D3DMath_MatrixMultiply(frame.Matrix, mat); |
{$ENDIF} |
//メッシュの描画 |
if frame.Mesh <> nil then |
begin |
{$IFDEF USE_S_MATHPACK} |
meshM := NowCompositeMatrix(frame.MeshMatrix, frame.RenderedMatrix); |
{$ELSE} |
meshM := D3DMath_MatrixMultiply(frame.MeshMatrix, frame.RenderedMatrix); |
{$ENDIF} |
//テクスチャがあるなら、貼り付ける。「親のテクスチャ使用」を強制されてないなら |
if not TexBind then |
curTexture := frame.Texture; |
//マテリアルを設定する |
if not MatBind then |
curMaterial := frame.Material; |
//レンダリングステートの設定 |
if not RSBind then |
curBlendMode := frame.BlendMode; |
//キューに放り込む |
if frame.Visibility = sxvShow then |
begin |
case curBlendMode of |
rtAdd: AddQueue.PushMesh(frame.Mesh, frame, meshM, curTexture, curMaterial, frame.OnRenderMesh); |
rtBlend: AlphaQueue.PushMesh(frame.Mesh, frame, meshM, curTexture, curMaterial, frame.OnRenderMesh); |
rtDraw: OpaqueQueue.PushMesh(frame.Mesh, frame, meshM, curTexture, curMaterial, frame.OnRenderMesh); |
rtSub: SubQueue.PushMesh(frame.Mesh, frame, meshM, curTexture, curMaterial, frame.OnRenderMesh); |
end; |
end; |
end; |
//子供の描画 |
for i := 0 to frame.Children.Count - 1 do |
begin |
QueingFrame(frame.Children[i], frame.RenderedMatrix, RSBind or frame.BindRenderState, TexBind or frame.BindTexture, MatBind or frame.BindMaterial); |
end; |
end; |
begin |
if FCamera = nil then |
begin |
//DDDD_PutDebugMessage('SXLib: カメラフレームが設定されていません'); |
exit; |
end; |
//ビュー行列の作成…(ワールド座標系でのカメラフレームの姿勢)の逆 |
//Create a view matrix (camera position in world coordinate frame), the inverse |
viewMat := CameraFrame.ViewMatrix; |
FOwner.D3DDevice7.SetTransform(D3DTRANSFORMSTATE_VIEW, viewMat); |
//再帰的にキューに入れる |
//Recursively queued |
if rootFrame.Parent = nil then |
QueingFrame(rootFrame, D3DUtil_SetIdentityMatrix, false, false, false) |
else |
QueingFrame(rootFrame, rootFrame.Parent.WorldMatrix, false, false, false); |
{ キューに入ってる物体を描く } |
{ I draw the object in the queue } |
/////不透明体 |
//Opaque |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_ZENABLE, 1); //Z比較あり |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 1); //Z書き込みあり |
//ブレンドなし |
//No Blending |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_BLENDENABLE, 0); |
OpaqueQueue.Render(viewMat, FVP); |
/////加算合成体 |
//Body additive synthesis |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 0); //Z書き込みなし |
//ブレンドの設定 |
//Set of Blend |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_BLENDENABLE, 1); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG1, DWord(D3DTA_TEXTURE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG2, DWord(D3DTA_DIFFUSE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_COLOROP, DWord(D3DTOP_MODULATE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG1, DWord(D3DTA_TEXTURE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG2, DWord(D3DTA_DIFFUSE)); |
FOwner.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAOP, DWord(D3DTOP_MODULATE)); |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, DWord(D3DBLEND_ONE)); |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, DWord(D3DBLEND_ONE)); |
AddQueue.Render(viewMat, FVP); |
//半透明体 |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, DWord(D3DBLEND_SRCALPHA)); |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, DWord(D3DBLEND_INVSRCALPHA)); |
AlphaQueue.Render(viewMat, FVP); |
//減算合成体…減算はニセ減算だけど(^^;) |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, DWord(D3DBLEND_ZERO)); |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, DWord(D3DBLEND_INVSRCCOLOR)); |
SubQueue.Render(viewMat, FVP); |
//テクスチャに何も指定しない状態で、一連のレンダリングを終える |
FOwner.D3DDevice7.SetTexture(0, nil); |
end; |
procedure TSXScene.Clear(dwFlags: DWord; color: DWORD; z: Single; stencil: DWord); |
var |
r: TD3DRect; |
begin |
with r do |
begin |
x1 := FVP.dwX; |
y1 := FVP.dwY; |
x2 := FVP.dwX + FVP.dwWidth; |
y2 := FVP.dwY + FVP.dwHeight; |
end; |
FOwner.D3DDevice7.Clear(1, @r, dwFlags, color, z, stencil); |
end; |
//透視変換の設定 |
procedure TSXScene.SetProjection(fov, aspect, nearZ, farZ: Single); //透視変換の設定 |
var |
q, w, h: Single; |
begin |
q := farZ / (farZ - nearZ); |
w := aspect * Cos(fov * 0.5) / Sin(fov * 0.5); |
h := Cos(fov * 0.5) / Sin(fov * 0.5); |
FProjectionMatrix := D3DUtil_SetIdentityMatrix; |
FProjectionMatrix._11 := w; // |
FProjectionMatrix._22 := h; // |
FProjectionMatrix._33 := q; // Q = Zf / (Zf-Zn) |
FProjectionMatrix._34 := 1.0; |
FProjectionMatrix._43 := -q * nearZ; // -QZn |
FProjectionMatrix._44 := 0.0; |
FOwner.D3DDevice7.SetTransform(D3DTRANSFORMSTATE_PROJECTION, FProjectionMatrix); |
end; |
procedure TSXScene.SetViewPort(left, top, right, bottom: DWord); |
begin |
ZeroMemory(@FVP, sizeof(FVP)); |
with FVP do |
begin |
dwX := left; |
dwY := top; |
dwWidth := right - left; |
dwHeight := bottom - top; |
dvMinZ := 0; |
dvMaxZ := 1.0; |
end; |
FOwner.D3DDevice7.SetViewport(FVP); |
end; |
//D3D解放(解像度変更)からのリカバリ |
procedure TSXScene.Recover; |
begin |
FOwner.D3DDevice7.SetViewport(FVP); |
FOwner.D3DDevice7.SetTransform(D3DTRANSFORMSTATE_PROJECTION, FProjectionMatrix); |
end; |
//ビルボードを押し込む |
procedure TSXScene.PushBillboard(blendMode: TRenderType; ref: TSXFrame; |
pos: TD3DVector; points: array of TSXVertexBB; tex: TDirect3DTexture2); |
begin |
case blendMode of |
rtAdd: AddQueue.PushBillboard(ref, pos, tex, points); |
rtBlend: AlphaQueue.PushBillboard(ref, pos, tex, points); |
rtDraw: OpaqueQueue.PushBillboard(ref, pos, tex, points); |
rtSub: SubQueue.PushBillboard(ref, pos, tex, points); |
end; |
//フラグを立てる |
ref.BBAttached := True; |
end; |
//球体の可視判定 |
function TSXScene.SphereVisibility(ref: TSXFrame; pos: TD3DVector; |
radius: Single; depth: Single): Boolean; |
var |
viewM: TD3DMATRIX; //ref.posを視野座標系に変換する行列 |
projM: TD3DMATRIX; //透視変換行列(画角ゲット用) |
p: TD3DVector; |
fovH, fovV: Single; //画角 |
cosFovH, sinFovH, cosFovV, sinFovV: Single; |
begin |
//まず、視野座標系に変換する |
{$IFDEF USE_S_MATHPACK} |
viewM := NowCompositeMatrix(ref.WorldMatrix, NowInvMatrix(CameraFrame.WorldMatrix)); |
p := NowHeteroginize(NowTransform(NowHomoginize(pos), viewM)); |
{$ELSE} |
viewM := D3DMath_MatrixMultiply(ref.WorldMatrix, D3DMath_MatrixInvert(CameraFrame.WorldMatrix)); |
p := D3DMath_VecHeterogenize(D3DMath_VecTransform(D3DMath_VecHomogenize(pos), viewM)); |
{$ENDIF} |
//視界の後方や、depthより遠くにあるってのは論外 |
if (p.z < -radius) or (p.z > depth + radius) then |
begin |
Result := False; |
Exit; |
end; |
//縦・横の画角を求める |
FOwner.D3DDevice7.GetTransform(D3DTRANSFORMSTATE_PROJECTION, projM); |
fovH := ArcTan(1.0 / projM._11); |
fovV := ArcTan(1.0 / projM._22); |
//画角のSin,Cosを出しておく |
SinFovH := Sin(fovH); CosFovH := Cos(fovH); |
SinFovV := Sin(fovV); CosFovV := Cos(fovV); |
//XZ平面での判定…画角分だけ球の中心を回転させた時、コーンの中心から球の中心までが、球の半径の値以下になるかを見る |
if ((p.x * CosFovH - p.z * SinFovH) > radius) or ((p.x * CosFovH + p.z * SinFovH) < -radius) then |
begin |
Result := False; |
Exit; |
end; |
//YZ平面での判定 |
if ((p.y * CosfovV - p.z * SinfovV) > radius) or ((p.y * CosfovV + p.z * SinfovV) < -radius) then |
begin |
Result := False; |
Exit; |
end; |
Result := True; |
end; |
{ TSXLight } |
constructor TSXLight.Create(DDCompo: TDXDraw; index: DWord); |
begin |
inherited Create; |
FOwner := DDCompo; |
FIndex := index; |
FEnabled := False; |
FUpdate := True; |
//デフォ値の設定 |
ZeroMemory(@Params, Sizeof(Params)); |
with Params do |
begin |
dltType := D3DLIGHT_DIRECTIONAL; |
dcvDiffuse.r := 1.0; |
dcvDiffuse.g := 1.0; |
dcvDiffuse.b := 1.0; |
{$IFDEF USE_S_MATHPACK} |
dvDirection := Vector(0, 0, 1); |
{$ELSE} |
dvDirection := MakeD3DVector(0, 0, 1); |
{$ENDIF} |
end; |
end; |
destructor TSXLight.Destroy; |
begin |
inherited; |
end; |
//D3Dにライトを登録 |
procedure TSXLight.SetEnabled(const Value: Boolean); |
begin |
FEnabled := Value; |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
FOwner.D3DDevice7.LightEnable(FIndex, FEnabled); |
end; |
//お便利るーちんず |
procedure TSXLight.SetupDiffuse(_R, _G, _B: Single); |
begin |
with Params.dcvDiffuse do |
begin |
dvR := _R; |
dvG := _G; |
dvB := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupSpecular(_R, _G, _B: Single); |
begin |
with Params.dcvSpecular do |
begin |
dvR := _R; |
dvG := _G; |
dvB := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupAmbient(_R, _G, _B: Single); |
begin |
with Params.dcvAmbient do |
begin |
dvR := _R; |
dvG := _G; |
dvB := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupColors(difR, difG, difB, specR, specG, specB, ambR, |
ambG, ambB: Single); |
begin |
with Params.dcvDiffuse do |
begin |
dvR := difR; |
dvG := difG; |
dvB := difB; |
end; |
with Params.dcvSpecular do |
begin |
dvR := specR; |
dvG := specG; |
dvB := specB; |
end; |
with Params.dcvAmbient do |
begin |
dvR := ambR; |
dvG := ambG; |
dvB := ambB; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupRanges(range, att0, att1, att2: Single); |
begin |
with Params do |
begin |
dvRange := range; |
dvAttenuation0 := att0; |
dvAttenuation1 := att1; |
dvAttenuation2 := att2; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupDirectional(dir: TD3DVector); |
begin |
Params.dltType := D3DLIGHT_DIRECTIONAL; |
Params.dvDirection := dir; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupPoint(pos: TD3DVector); |
begin |
Params.dltType := D3DLIGHT_POINT; |
Params.dvPosition := pos; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.SetupSpot(pos, dir: TD3DVector; theta, phi, |
falloff: Single); |
begin |
Params.dltType := D3DLIGHT_SPOT; |
Params.dvDirection := dir; |
Params.dvTheta := theta; |
Params.dvPhi := phi; |
Params.dvFalloff := falloff; |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
//フレームの位置・向きにセット |
procedure TSXLight.FitFrame(target: TSXFrame); |
var |
mat: TD3DMATRIX; |
begin |
if target = nil then |
mat := D3DUtil_SetIdentityMatrix |
else |
mat := target.WorldMatrix; |
{$IFDEF USE_S_MATHPACK} |
Params.dvDirection := Vector(mat._31, mat._32, mat._33); |
Params.dvPosition := Vector(mat._41, mat._42, mat._43); |
{$ELSE} |
Params.dvDirection := MakeD3DVector(mat._31, mat._32, mat._33); |
Params.dvPosition := MakeD3DVector(mat._41, mat._42, mat._43); |
{$ENDIF} |
if FUpdate then |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
procedure TSXLight.BeginUpdate; |
begin |
FUpdate := False; |
end; |
procedure TSXLight.EndUpdate; |
begin |
FUpdate := True; |
FOwner.D3DDevice7.SetLight(FIndex, Params); |
end; |
{ TSXLightGroup } |
constructor TSXLightGroup.Create(DDCompo: TDXDraw; capacity: DWord); |
var |
i: Integer; |
begin |
inherited Create; |
FOwner := DDCompo; |
FCapacity := capacity; |
SetLength(FLights, capacity); |
for i := 0 to capacity - 1 do |
begin |
FLights[i] := TSXLight.Create(FOwner, i); |
end; |
end; |
destructor TSXLightGroup.Destroy; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
FLights[i].Free; |
end; |
FLights := nil; |
inherited; |
end; |
procedure TSXLightGroup.DisableAll; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
FLights[i].Enabled := True; |
end; |
end; |
procedure TSXLightGroup.EnableAll; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
FLights[i].Enabled := False; |
end; |
end; |
function TSXLightGroup.GetLights(idx: DWord): TSXLight; |
begin |
//範囲チェック |
if idx >= FCapacity then |
begin |
//DDDD_PutDebugMessage('TSXLightGroup @ SXLib: 範囲外のライトを参照しようとしました'); |
result := nil; |
exit; |
end; |
result := FLights[idx]; |
end; |
//Enabledじゃないライトを探索 |
function TSXLightGroup.GetUnusedLight: TSXLight; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
if not FLights[i].Enabled then |
begin |
result := FLights[i]; |
exit; |
end; |
end; |
result := nil; |
end; |
//スペキュラ強度の設定 |
{ |
procedure TSXLightGroup.SetSpecularPower(const Value: Single); |
var |
mtrl:D3DMATERIAL7; |
begin |
FSpecularPower := Value; |
ZeroMemory(@mtrl, Sizeof(mtrl)); |
mtrl.power:=FSpecularPower; |
FOwner.D3DDevice.SetMaterial(@mtrl); |
end; |
} |
procedure TSXLightGroup.Recover; |
var |
i: Integer; |
begin |
for i := 0 to FCapacity - 1 do |
begin |
if FLights[i].Enabled then |
FLights[i].Enabled := True; |
end; |
// SpecularPower:=FSpecularPower; |
end; |
{ TSXMatetial } |
constructor TSXMaterial.Create(DDCompo: TDXDraw); |
begin |
ZeroMemory(@Params, Sizeof(Params)); |
FOwner := DDCompo; |
FUpdate := True; |
end; |
procedure TSXMaterial.SetupAmbient(_R, _G, _B: Single); |
begin |
with Params.dcvAmbient do |
begin |
R := _R; G := _G; B := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupDiffuse(_R, _G, _B: Single); |
begin |
with Params.dcvDiffuse do |
begin |
R := _R; G := _G; B := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupEmissive(_R, _G, _B: Single); |
begin |
with Params.dcvEmissive do |
begin |
R := _R; G := _G; B := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupSpecular(_R, _G, _B: Single); |
begin |
with Params.dcvSpecular do |
begin |
R := _R; G := _G; B := _B; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupSpecularPower(pow: Single); |
begin |
with Params do |
begin |
dvPower := pow; |
end; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.SetupColors(difR, difG, difB, specR, specG, specB, |
ambR, ambG, ambB, emsR, emsG, emsB, pow: Single); |
begin |
with Params.dcvDiffuse do |
begin |
dvR := difR; |
dvG := difG; |
dvB := difB; |
end; |
with Params.dcvSpecular do |
begin |
dvR := specR; |
dvG := specG; |
dvB := specB; |
end; |
with Params.dcvAmbient do |
begin |
dvR := ambR; |
dvG := ambG; |
dvB := ambB; |
end; |
with Params.dcvEmissive do |
begin |
dvR := emsR; |
dvG := emsG; |
dvB := emsB; |
end; |
Params.dvPower := pow; |
if FUpdate then |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
procedure TSXMaterial.BeginUpdate; |
begin |
FUpdate := False; |
end; |
procedure TSXMaterial.EndUpdate; |
begin |
FUpdate := True; |
FOwner.D3DDevice7.SetMaterial(Params); |
end; |
{ ヘルパー関数 } |
function MakeMaterial(difR, difG, difB, specR, specG, specB, ambR, ambG, ambB, emsR, emsG, emsB, pow: Single): TD3DMATERIAL7; |
begin |
with Result.dcvDiffuse do |
begin |
dvR := difR; |
dvG := difG; |
dvB := difB; |
dvA := 1.0; |
end; |
with Result.dcvSpecular do |
begin |
dvR := specR; |
dvG := specG; |
dvB := specB; |
dvA := 1.0; |
end; |
with Result.dcvAmbient do |
begin |
dvR := ambR; |
dvG := ambG; |
dvB := ambB; |
dvA := 1.0; |
end; |
with Result.dcvEmissive do |
begin |
dvR := emsR; |
dvG := emsG; |
dvB := emsB; |
dvA := 1.0; |
end; |
Result.dvPower := pow; |
end; |
{ TSXRenderingQueue } |
//コンストラクタ |
constructor TSXRenderingQueue.Create(AOwner: TDXDraw; _Scene: TSXScene); |
begin |
inherited create; |
FOwner := AOwner; |
Scene := _Scene; |
//デフォ値の代入 |
BillboardCapacity := 32; |
MeshCapacity := 32; |
FBillboardCount := 0; |
FMeshCount := 0; |
end; |
//デストラクタ |
destructor TSXRenderingQueue.Destroy; |
begin |
BillboardQueue := nil; |
MeshQueue := nil; |
inherited; |
end; |
//何もせずに、中身だけ消す |
procedure TSXRenderingQueue.Flush; |
begin |
FBillboardCount := 0; |
FMeshCount := 0; |
end; |
//ビルボードを入れる |
procedure TSXRenderingQueue.PushBillboard(ref: TSXFrame; pos: TD3DVector; |
tex: TDirect3DTexture2; pts: array of TSXVertexBB); //ビルボード |
begin |
//必要なら拡張する |
if BillboardCount >= BillboardCapacity then |
BillboardCapacity := BillboardCapacity * 2; |
BillboardQueue[FBillboardCount].tex := tex; |
BillboardQueue[FBillboardCount].ref := ref; |
BillboardQueue[FBillboardCount].pos := pos; |
Move(pts, BillboardQueue[FBillboardCount].Pts, Sizeof(TSXVertexBB) * 4); //4頂点分コピー |
Inc(FBillboardCount); |
end; |
//メッシュを入れる |
procedure TSXRenderingQueue.PushMesh(mesh: TSXMesh; frame: TSXFrame; mat: TD3DMatrix; |
tex: TDirect3DTexture2; mtrl: TD3DMATERIAL7; event: TSXRenderMeshEvent); |
begin |
//必要なら拡張する |
if MeshCount >= MeshCapacity then |
MeshCapacity := MeshCapacity * 2; |
MeshQueue[FmeshCount].mat := mat; |
MeshQueue[FmeshCount].mesh := mesh; |
MeshQueue[FmeshCount].mtrl := mtrl; |
MeshQueue[FmeshCount].tex := tex; |
MeshQueue[FmeshCount].OnRender := event; |
MeshQueue[FMeshCount].frame := frame; |
Inc(FMeshCount); |
end; |
//ビルボード用の情報入れをサイズを変える |
procedure TSXRenderingQueue.SetBillBoardCapacity(const Value: Integer); |
begin |
FBillboardCapacity := Value; |
SetLength(BillboardQueue, Value); |
end; |
//メッシュ用の情報入れをサイズを変える |
procedure TSXRenderingQueue.SetMeshCapacity(const Value: Integer); |
begin |
FMeshCapacity := Value; |
SetLength(MeshQueue, Value); |
end; |
//描画 |
procedure TSXRenderingQueue.Render(viewMat: TD3DMATRIX; viewParam: TD3DVIEWPORT7); |
var |
i, j: Integer; |
prevTex: TDirect3DTexture2; //前回使ったテクスチャへの参照 //With reference to the previous texture |
prevSpec: Boolean; //前回描画したものは、スペキュラを計算したか //The last drawing was either calculated specular |
prevLit: Boolean; //前回描画したものは、ライティングの計算をしたか //Was drawn last, or the lighting calculations |
prevFrame: TSXFrame; //直前に描画したビルボードの入ってたフレーム //I was drawn into the frame just before the billboard |
center: {$IFDEF USE_S_MATHPACK}THgVector{$ELSE}TD3DHVector{$ENDIF}; |
pts: array[0..3] of TD3DTLVERTEX; |
m: TD3DMATRIX; |
projM, screenM, viewProjScreenM: TD3DMATRIX; |
begin |
//メッシュの描画 |
prevTex := nil; |
FOwner.D3DDevice7.SetTexture(0, nil); |
prevSpec := True; |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SPECULARENABLE, DWord(True)); |
prevLit := True; |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_LIGHTING, DWord(True)); |
for i := 0 to MeshCount - 1 do |
begin |
//ライティング |
if prevLit <> MeshQueue[i].Frame.Lighting then |
begin |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_LIGHTING, DWord(MeshQueue[i].Frame.Lighting)); |
prevLit := MeshQueue[i].Frame.Lighting; |
end; |
//スペキュラつける? |
if prevSpec <> MeshQueue[i].Frame.Specular then |
begin |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_SPECULARENABLE, DWord(MeshQueue[i].Frame.Specular)); |
prevSpec := MeshQueue[i].Frame.Specular; |
end; |
//行列の設定 |
FOwner.D3DDevice7.SetTransform(D3DTRANSFORMSTATE_WORLD, (MeshQueue[i].mat)); |
//マテリアルの設定 |
FOwner.D3DDevice7.SetMaterial((MeshQueue[i].Mtrl)); |
//テクスチャがあるなら、貼り付ける。 |
if MeshQueue[i].tex <> prevTex then |
begin |
if MeshQueue[i].tex <> nil then |
FOwner.D3DDevice7.SetTexture(0, MeshQueue[i].tex.Surface.IDDSurface7) |
else |
FOwner.D3DDevice7.SetTexture(0, nil); |
end; |
prevTex := MeshQueue[i].tex; |
//イベントハンドラを呼ぶ |
if Assigned(MeshQueue[i].OnRender) then |
MeshQueue[i].OnRender(MeshQueue[i].Frame); |
//描画 |
MeshQueue[i].Mesh.Draw(0); |
end; |
//ビルボードの描画 |
//ライティングを切る |
FOwner.D3DDevice7.SetRenderState(D3DRENDERSTATE_LIGHTING, DWord(False)); |
FOwner.D3DDevice7.GetTransform(D3DTRANSFORMSTATE_PROJECTION, projM); |
ScreenM := D3DUtil_SetIdentityMatrix; |
with ScreenM do |
begin |
_11 := viewParam.dwWidth / 2.0; |
_22 := -(viewParam.dwHeight / 2.0); |
_33 := viewParam.dvMaxZ - viewParam.dvMinZ; |
_41 := viewParam.dwX + viewParam.dwWidth / 2.0; |
_42 := viewParam.dwY + viewParam.dwHeight / 2.0; |
_43 := viewParam.dvMinZ; |
end; |
//視野座標→画面 の変換行列 |
{$IFDEF USE_S_MATHPACK} |
viewProjScreenM := NowCompositeMatrix(viewMat, projM); |
viewProjScreenM := NowCompositeMatrix(viewProjScreenM, ScreenM); |
{$ELSE} |
viewProjScreenM := D3DMath_MatrixMultiply(viewMat, projM); |
viewProjScreenM := D3DMath_MatrixMultiply(viewProjScreenM, ScreenM); |
{$ENDIF} |
prevFrame := nil; |
for i := 0 to BillboardCount - 1 do |
begin |
if BillboardQueue[i].ref <> nil then |
begin |
//テクスチャがあるなら、貼り付ける。 |
if BillboardQueue[i].Tex <> prevTex then |
begin |
if BillboardQueue[i].Tex <> nil then |
FOwner.D3DDevice7.SetTexture(0, BillboardQueue[i].Tex.Surface.IDDSurface7) |
else |
FOwner.D3DDevice7.SetTexture(0, nil); |
end; |
prevTex := BillboardQueue[i].Tex; |
//ビルボードの中心の視野座標を求める |
if prevFrame <> BillboardQueue[i].ref then |
begin |
{$IFDEF USE_S_MATHPACK} |
m := NowCompositeMatrix(BillboardQueue[i].ref.RenderedMatrix, viewProjScreenM); |
{$ELSE} |
m := D3DMath_MatrixMultiply(BillboardQueue[i].ref.RenderedMatrix, viewProjScreenM); |
{$ENDIF} |
prevFrame := BillboardQueue[i].ref; |
end; |
{$IFDEF USE_S_MATHPACK} |
center := NowHomoginize(BillboardQueue[i].pos); |
center := NowTransform(center, m); |
{$ELSE} |
center := D3DMath_VecHomogenize(BillboardQueue[i].pos); |
center := D3DMath_VecTransform(center, m); |
{$ENDIF} |
//W値が正なら描画 |
//W is positive if the drawing |
if center.W > 0 then |
begin |
//ビルボードの中心の画面での座標を求める |
//Find the coordinates of the center of the screen, billboard |
{$IFDEF USE_S_MATHPACK} |
center := NowViewFrustumToScreen(center); |
{$ELSE} |
center := D3DMath_VecViewScreenize(center); |
{$ENDIF} |
for j := 0 to 3 do |
begin |
with BillboardQueue[i].Pts[j] do |
begin |
Pts[j].sx := center.x + BillboardQueue[i].Pts[j].dx * center.W; |
Pts[j].sy := center.y + BillboardQueue[i].Pts[j].dy * center.W; |
Pts[j].sz := center.z; |
Pts[j].rhw := center.w; |
Pts[j].color := color; |
Pts[j].specular := $FF000000; |
Pts[j].tu := tu; |
Pts[j].tv := tv; |
end; |
end; |
FOwner.D3DDevice7.DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX, Pts, 4, 0); |
end; |
//参照フレームに付いたフラグを消す |
BillboardQueue[i].ref.BBAttached := False; |
end; |
end; |
//キューを空に |
FMeshCount := 0; |
FBillBoardCount := 0; |
end; |
{-------------------------------- Primitive Renderer --------------------------} |
type |
TIntArray = array[0..$0FFFFFFF] of Integer; |
PIntArray = ^TIntArray; |
TPrimArray = array[0..$FFFFF] of TSXPrimitiveRec; |
PPrimArray = ^TPrimArray; |
TTextureCoordArray = array[0..$FFFFF] of TSXTextureCoordRec; |
PTextureCoordArray = ^TTextureCoordArray; |
class function TSXPrimitiveRenderer.SingleRect(x1, y1, x2, y2: Single): TSingleRect; |
begin |
with result do |
begin |
Left := x1; |
Top := y1; |
Right := x2; |
Bottom := y2; |
end; |
end; |
constructor TSXPrimitiveRenderer.Create(DDCompo: TDXDraw; PrimitiveCount: Integer; PatternCount: Integer); |
begin |
FDXDraw := DDCompo; |
FMaxPrimitives := PrimitiveCount; |
ZSortBuf := nil; |
ZSortCount := nil; |
PrimCount := 0; |
GetMem(PrimBuf, Sizeof(TSXPrimitiveRec) * PrimitiveCount); |
GetMem(Patterns, Sizeof(TSXTextureCoordRec) * PatternCount); |
ZMax := 0; |
ColorKey := True; |
end; |
destructor TSXPrimitiveRenderer.Destroy; |
begin |
FreeMem(ZSortBuf); |
FreeMem(ZSortCount); |
FreeMem(Patterns); |
FreeMem(PrimBuf); |
inherited; |
end; |
procedure TSXPrimitiveRenderer.setZMax(v: Integer); |
begin |
FZmax := v; |
if ZSortBuf <> nil then |
FreeMem(ZSortBuf); |
if ZSortCount <> nil then |
FreeMem(ZSortCount); |
GetMem(ZSortBuf, (FZMax + 1) * FMaxPrimitives * sizeof(Integer)); |
GetMem(ZSortCount, (FZMax + 1) * sizeof(Integer)); |
end; |
//パターンとしてTexのCoordで示される範囲を登録 |
procedure TSXPrimitiveRenderer.SetPattern(idx: Integer; Tex: TDirect3DTexture2; Coord: TRect); |
var |
pPat: PTextureCoord; |
begin |
pPat := @(PTextureCoordArray(Patterns)^[idx]); |
with pPat^ do |
begin |
Texture := Tex; |
Top := Coord.Top / Tex.Height; |
Left := Coord.Left / Tex.Width; |
Bottom := Coord.Bottom / Tex.Height; |
Right := Coord.Right / Tex.Width; |
end; |
end; |
procedure TSXPrimitiveRenderer.Push(Tex: TDirect3DTexture2; p1, p2, p3, p4: TD3DTLVertex; Z: Integer; blend: TRenderType); //TLVertexで四角形を入れる |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
Texture := Tex; |
Bound[0] := p1; |
Bound[1] := p2; |
Bound[2] := p3; |
Bound[3] := p4; |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
procedure TSXPrimitiveRenderer.Push2D(Tex: TDirect3DTexture2; p1, p2, p3, p4: TD2DVector; Z: Integer; blend: TRenderType; col: DWord); //2D的な四角形 |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
Texture := Tex; |
Bound[0] := MakeD3DTLVertex(p1.x, p1.y, 2.0, 0.5, col, 0, 0, 0); |
Bound[1] := MakeD3DTLVertex(p2.x, p2.y, 2.0, 0.5, col, 0, 1, 0); |
Bound[2] := MakeD3DTLVertex(p3.x, p3.y, 2.0, 0.5, col, 0, 0, 1); |
Bound[3] := MakeD3DTLVertex(p4.x, p4.y, 2.0, 0.5, col, 0, 1, 1); |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
//パターンをプッシュ(3次元) |
procedure TSXPrimitiveRenderer.PushPattern(iPat: Integer; p1, p2, p3, p4: TD3DHVector; Z: Integer; blend: TRenderType; col: DWord); |
var |
pPat: PTextureCoord; |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
pPat := @(PTextureCoordArray(Patterns)^[iPat]); |
Texture := pPat^.Texture; |
Bound[0] := MakeD3DTLVertex(p1.x, p1.y, p1.z, p1.w, col, 0, pPat^.Left, pPat^.Top); |
Bound[1] := MakeD3DTLVertex(p2.x, p2.y, p2.z, p2.w, col, 0, pPat^.Right, pPat^.Top); |
Bound[2] := MakeD3DTLVertex(p3.x, p3.y, p3.z, p3.w, col, 0, pPat^.Left, pPat^.Bottom); |
Bound[3] := MakeD3DTLVertex(p4.x, p4.y, p4.z, p4.w, col, 0, pPat^.Right, pPat^.Bottom); |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
procedure TSXPrimitiveRenderer.PushPattern2D(iPat: Integer; p1, p2, p3, p4: TD2DVector; Z: Integer; blend: TRenderType; col: DWord); //パターンをプッシュする |
var |
pPat: PTextureCoord; |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
pPat := @(PTextureCoordArray(Patterns)^[iPat]); |
Texture := pPat^.Texture; |
Bound[0] := MakeD3DTLVertex(p1.x, p1.y, 2, 0.5, col, 0, pPat^.Left, pPat^.Top); |
Bound[1] := MakeD3DTLVertex(p2.x, p2.y, 2, 0.5, col, 0, pPat^.Right, pPat^.Top); |
Bound[2] := MakeD3DTLVertex(p3.x, p3.y, 2, 0.5, col, 0, pPat^.Left, pPat^.Bottom); |
Bound[3] := MakeD3DTLVertex(p4.x, p4.y, 2, 0.5, col, 0, pPat^.Right, pPat^.Bottom); |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
//パターンをプッシュする(矩形) |
procedure TSXPrimitiveRenderer.PushPatternRect(iPat: Integer; rect: TSingleRect; Z: Integer; blend: TRenderType; col: DWord); |
var |
pPat: PTextureCoord; |
begin |
with PPrimArray(PrimBuf)^[PrimCount] do |
begin |
pPat := @(PTextureCoordArray(Patterns)^[iPat]); |
Texture := pPat^.Texture; |
Bound[0] := MakeD3DTLVertex(rect.Left, rect.Top, 2, 0.5, col, 0, pPat^.Left, pPat^.Top); |
Bound[1] := MakeD3DTLVertex(rect.Right, rect.Top, 2, 0.5, col, 0, pPat^.Right, pPat^.Top); |
Bound[2] := MakeD3DTLVertex(rect.Left, rect.Bottom, 2, 0.5, col, 0, pPat^.Left, pPat^.Bottom); |
Bound[3] := MakeD3DTLVertex(rect.Right, rect.Bottom, 2, 0.5, col, 0, pPat^.Right, pPat^.Bottom); |
ZOrder := Z; |
BlendMode := blend; |
end; |
Inc(PrimCount); |
end; |
//Z値にしたがってソート |
procedure TSXPrimitiveRenderer.BeginRender; |
var |
i: Integer; |
pCount: ^Integer; //各レイヤに、いくつ物体があるか |
pSort: ^Integer; |
pPrim: PPrimitive; |
begin |
FNPrims := PrimCount; |
//FSortCountのクリア |
pCount := Pointer(ZSortCount); |
ZeroMemory(pCount, Sizeof(Integer) * (FZMax + 1)); |
if PrimCount = 0 then |
Exit; |
//ビンソート |
pPrim := @(PPrimArray(PrimBuf)^[PrimCount - 1]); |
for i := PrimCount - 1 downto 0 do |
begin |
pSort := Pointer(ZSortBuf); |
pCount := Pointer(ZSortCount); |
if pPrim^.ZOrder > FZMax then |
begin |
//DDDD_PutDebugMessage(Format('Primitives: Z=%dは無効です、Z値は0から%dの範囲にしてください',[pPrim^.ZOrder,FZMax])); |
continue; |
end; |
Inc(pCount, pPrim^.ZOrder); |
Inc(pSort, pPrim^.ZOrder * FMaxPrimitives + pCount^); |
pSort^ := i; //FSortBuf[z][FSortCount[z]]:=i |
Inc(pCount^); //FSortCount[z]++ |
Dec(pPrim); |
end; |
end; |
//単一のZ値を持つ集合だけ描画 |
procedure TSXPrimitiveRenderer.RenderOneLayer(Z: Integer); |
var |
i: Integer; |
pSort: ^Integer; |
pPrim: PPrimitive; |
prevTexture: TDirect3DTexture2; |
prevBlendMode: TRenderType; |
nPrims: Integer; |
begin |
asm |
finit; |
end; |
if Z > FZMax then |
begin |
//DDDD_PutDebugMessage(Format('Render: Z=%dは無効です、Z値は0から%dの範囲にしてください',[Z,FZMax])); |
exit; |
end; |
nPrims := PIntArray(ZSortCount)^[Z]; |
if nPrims = 0 then |
Exit; |
//レンダリングステートの設定 |
with FDXDraw.D3DDevice7 do |
begin |
SetTexture(0, nil); |
SetRenderState(D3DRENDERSTATE_ZENABLE, INteger(False)); |
SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, INteger(False)); |
//SetTextureStageState(0, D3DTSS_MAGFILTER, Integer(D3DTFG_POINT)); |
//SetTextureStageState(0, D3DTSS_MINFILTER, Integer(D3DTFG_POINT)); |
SetTextureStageState(0, D3DTSS_MAGFILTER, Integer(D3DTFG_LINEAR)); |
SetTextureStageState(0, D3DTSS_MINFILTER, Integer(D3DTFG_LINEAR)); |
SetRenderState(D3DRENDERSTATE_STIPPLEDALPHA, Integer(False)); |
SetRenderState(D3DRENDERSTATE_DITHERENABLE, Integer(False)); |
SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(False)); |
SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, Integer(ColorKey)); |
end; |
prevTexture := nil; |
prevBlendMode := rtDraw; |
pSort := @(PIntArray(ZSortBuf)^[FMaxPrimitives * Z]); |
for i := 0 to nPrims - 1 do |
begin |
pPrim := @(PPrimArray(PrimBuf)^[pSort^]); |
//テクスチャの変更 |
if pPrim^.Texture <> prevTexture then |
begin |
if pPrim^.Texture = nil then |
FDXDraw.D3DDevice7.SetTexture(0, nil) |
else |
FDXDraw.D3DDevice7.SetTexture(0, pPrim^.Texture.Surface.IDDSurface7); |
prevTexture := pPrim^.Texture; |
end; |
//ブレンドモードの設定 |
if pPrim^.BlendMode <> prevBlendMode then |
begin |
case pPrim^.BlendMode of |
rtDraw: |
begin |
//QD.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(False)); |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 0); |
//QD.D3DDevice7.SetRenderState(D3DRENDERSTATE_FILLMODE, Integer(D3DFILL_SOLID)); |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_COLORKEYENABLE, Integer(True)); |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_ONE)); |
end; |
rtAdd: |
begin |
if prevBlendMode = rtDraw then |
begin |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(True)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLOROP, Integer(D3DTOP_MODULATE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_MODULATE)); |
end; |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_ONE)); // ソースブレンド設定 |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, Integer(D3DBLEND_ONE)); // ディスティネーション設定 |
end; |
rtBlend: |
begin |
if prevBlendMode = rtDraw then |
begin |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(True)); //αを有効に☆ |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLOROP, Integer(D3DTOP_MODULATE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_MODULATE)); |
end; |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_SRCALPHA)); // ソースブレンド設定 |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, Integer(D3DBLEND_INVSRCALPHA)); // ディスティネーション設定 |
end; |
rtSub: |
begin |
if prevBlendMode = rtDraw then |
begin |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, Integer(True)); //αを有効に☆ |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLORARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_COLOROP, Integer(D3DTOP_MODULATE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG1, Integer(D3DTA_TEXTURE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAARG2, Integer(D3DTA_DIFFUSE)); |
FDXDraw.D3DDevice7.SetTextureStageState(0, D3DTSS_ALPHAOP, Integer(D3DTOP_MODULATE)); |
end; |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_SRCBLEND, Integer(D3DBLEND_DESTCOLOR)); // ソースブレンド設定 |
FDXDraw.D3DDevice7.SetRenderState(D3DRENDERSTATE_DESTBLEND, Integer(D3DBLEND_ZERO)); // ディスティネーション設定 |
end; |
end; |
prevBlendMode := pPrim^.BlendMode; |
end; |
try |
asm |
finit; |
end; |
FDXDraw.D3DDevice7.DrawPrimitive(D3DPT_TRIANGLESTRIP, D3DFVF_TLVERTEX, pPrim^.Bound, 4, 0); |
asm |
finit; |
end; |
Inc(pSort); |
except |
//DDDD_PutDebugMessage('FP Fault'); |
Halt; |
end; |
end; |
end; |
//スタックを空に |
procedure TSXPrimitiveRenderer.EndRender; |
begin |
PrimCount := 0; |
end; |
//全部描画 |
procedure TSXPrimitiveRenderer.Render; |
var |
i: Integer; |
begin |
BeginRender; |
for i := 0 to FZMax do |
RenderOneLayer(i); |
EndRender; |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXEngine.pas |
---|
0,0 → 1,221 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
Testers : Dominique Louis |
Ivan Blecic |
} |
unit SXEngine; |
{$WARN SYMBOL_PLATFORM OFF} |
interface |
uses |
Windows, Messages, SysUtils, Classes, MMSystem; |
type |
TFramesPerSecond = 1..100; |
TFreeCyclesEvent = procedure (Sender: TObject; Count:Integer) of object; |
TSXEngine = class(TComponent) |
private |
{ Private Data Members } |
FFramesPerSecond:TFramesPerSecond; |
FEnabled:Boolean; |
FThreadPriority:TThreadPriority; |
FFPS:Integer; |
FActivate:TNotifyEvent; |
FDeActivate:TNotifyEvent; |
FRender:TNotifyEvent; |
FFreeCycles:TFreeCyclesEvent; |
protected |
{ Property Accessors } |
procedure SetTargetFPS(Value:TFramesPerSecond); |
function GetTargetFPS:TFramesPerSecond; |
procedure SetEnabled(Value:Boolean); |
procedure SetThreadPriority(Value:TThreadPriority); |
{ Notification methods } |
procedure DoRender; |
procedure DoActivate; |
procedure DoDeActivate; |
procedure DoFreeCycles(Count: Integer); |
{ Class Helper methods } |
public |
{ Public methods } |
constructor Create(AOwner:TComponent);override; |
destructor Destroy; override; |
{Public Properties} |
property FramesPerSecond : Integer read FFPS write FFPS; |
published |
{ Published properties } |
property TargetFPS : TFramesPerSecond read GetTargetFPS write SetTargetFPS default 30; |
property Enabled : Boolean read FEnabled write SetEnabled default False; |
property ThreadPriority : TThreadPriority read FThreadPriority write SetThreadPriority; |
{ Published Events} |
property OnActivate : TNotifyEvent read FActivate write FActivate; |
property OnDeActivate : TNotifyEvent read FDeActivate write FDeActivate; |
property OnRender : TNotifyEvent read FRender write FRender; |
property OnFreeCycles : TFreeCyclesEvent read FFreeCycles write FFreeCycles; |
end; |
implementation |
{$J+} |
const |
FPS : Single = 33.3; |
SECOND : Single = 1000.0; |
type |
TGameThread = class(TThread) |
private |
{ Private declarations } |
FThreadCallback:TThreadMethod; |
protected |
procedure Execute; override; |
property ThreadCallback: TThreadMethod read FThreadCallback write FThreadCallback; |
public |
constructor Create(CreateSupsended:Boolean;Callback:TThreadMethod); |
end; |
var Thread:TGameThread; |
{ Important: Methods and properties of objects in VCL can only be used in a |
method called using Synchronize, for example, |
Synchronize(UpdateCaption); |
and UpdateCaption could look like, |
procedure TGameThread.UpdateCaption; |
begin |
Form1.Caption := 'Updated in a thread'; |
end; } |
{ TGameThread } |
procedure TGameThread.Execute; |
begin |
{ Place thread code here } |
while not Terminated do |
begin |
try |
if Assigned(ThreadCallback) then Synchronize(ThreadCallback); |
except |
Terminate; |
end; |
end; |
end; |
constructor TGameThread.Create(CreateSupsended:Boolean;Callback:TThreadMethod); |
begin |
inherited Create(CreateSupsended); |
ThreadCallback := Callback; |
end; |
{ TSXEngine } |
constructor TSXEngine.Create(AOwner:TComponent); |
begin |
inherited Create(AOwner); |
if not (csDesigning in ComponentState) then |
begin |
if not Assigned(Thread) then |
begin |
Thread := TGameThread.Create(True,DoRender); |
Thread.FreeOnTerminate := False; |
Thread.Priority := ThreadPriority; |
Thread.Suspended := not Enabled; |
end; |
DoActivate; |
end; |
Enabled := False; |
TargetFPS := 30; |
end; |
destructor TSXEngine.Destroy; |
begin |
if not (csDesigning in ComponentState) then |
begin |
if Assigned(Thread) then |
begin |
Thread.Terminate; |
Thread.Free; |
end; |
DoDeActivate; |
end; |
inherited Destroy; |
end; |
procedure TSXEngine.SetTargetFPS(Value:TFramesPerSecond); |
begin |
FFramesPerSecond := Value; |
FPS := SECOND / Value; |
end; |
function TSXEngine.GetTargetFPS:TFramesPerSecond; |
begin |
Result := FFramesPerSecond; |
end; |
procedure TSXEngine.SetEnabled(Value:Boolean); |
begin |
FEnabled := Value; |
if Thread <> nil then |
Thread.Suspended := not Value; |
end; |
procedure TSXEngine.SetThreadPriority(Value:TThreadPriority); |
begin |
FThreadPriority := Value; |
if Thread <> nil then |
Thread.Priority := Value; |
end; |
procedure TSXEngine.DoRender; |
const Start:DWord = 0; |
OldStart:DWord = 0; |
Count:Integer =0; |
var FreeCycleCount:integer; |
begin |
try |
Start := TimeGetTime; |
FreeCycleCount := 0; |
if Assigned(FRender) then FRender(Self); |
if (Start - OldStart) < SECOND then |
Inc(Count) |
else |
begin |
FramesPerSecond := Count; |
OldStart := Start; |
Count := 0; |
end; |
repeat |
DoFreeCycles(FreeCycleCount); |
inc(FreeCycleCount); |
until (TimeGetTime - Start) >= FPS; |
except |
Enabled := False; |
Thread.Terminate; |
end; |
end; |
procedure TSXEngine.DoActivate; |
begin |
if Assigned(FActivate) then FActivate(Self); |
end; |
procedure TSXEngine.DoDeActivate; |
begin |
if Assigned(FDeActivate) then FDeActivate(Self); |
end; |
procedure TSXEngine.DoFreeCycles(Count: Integer); |
begin |
if Assigned(FFreeCycles) then FFreeCycles(Self,Count); |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXModPlayer.pas |
---|
0,0 → 1,542 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
Testers : Dominique Louis |
Ivan Blecic |
Naoki Haga |
Version History |
-------------------------------------------------------------------------------- |
25/01/2000 Modified Destroy and Stop methods to check IDSBuffer before |
calling IBuffer.Stop. Stops the "Buffer not Created exception" |
being thrown. |
06/02/2000 Added OnStop and OnStart events |
Added Finalize method. This does not have to be called but if you |
manually finalize and initialize the DXSound Component you |
need to call this method to clear the buffers and the Threads. |
22/02/2000 Modified SetLoop code to correct functionality. |
Modifed Stop method to make sure the OnStop event is only called |
if it wsa playing and that the Value of Playing would be False |
when the event is fired. |
15/05/2000 Made use of the MppSdkLibLoaded variable to make sure the component |
does nothing if the mppsdk.dll is not found. |
Removed the raising of an exception in the constructor as it seemed to |
be causing more problems than it was solving. |
-------------------------------------------------------------------------------- |
} |
unit SXModPlayer; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
DXSounds, MMSystem, MpSndSys, |
{$IFDEF StandardDX} |
DirectDraw, DirectSound, |
{$IFDEF DX7} |
{$IFDEF D3DRM} |
Direct3DRM, |
{$ENDIF} |
Direct3D; |
{$ENDIF} |
{$IFDEF DX9} |
Direct3D9, Direct3D, D3DX9, {Direct3D8,} DX7toDX8; |
{$ENDIF} |
{$ELSE} |
DirectX; |
{$ENDIF} |
type |
TModOption = (NoResampling, BassExpansion, Surround, Reverb, |
HighQuality, GainControl, NoiseReduction); |
TModOptions = Set of TModOption; |
TSXModPlayer = class(TComponent) |
private |
{ Private declarations } |
FFilename: TFilename; |
FDXSound : TDXSound; |
FSoundBuffer : TDirectSoundBuffer; |
FSoundNotify : IDirectSoundNotify; |
FBufferDesc : TDSBufferDesc; |
FWaveFormat : TWaveFormatEx; |
FLoop : Boolean; |
FPlaying : Boolean; |
FOptions : TModOptions; |
FEvents: TList; |
FNotify: TList; |
FOnStop: TNotifyEvent; |
FOnStart: TNotifyEvent; |
function GetPosition : Integer; |
function GetSilenceData:Integer; |
protected |
{ Protected declarations } |
procedure InitSoundEvents; |
procedure ThreadCallback; |
procedure SetFilename(const Value : TFilename); |
procedure SetLoop(const Value : Boolean); |
procedure SetOptions(const Value : TModOptions); |
procedure Notification(AComponent: TComponent; Operation: TOperation); override; |
procedure DoStop; |
procedure DoStart; |
function CreateEventList : TList; |
function CreateNotifyList : TList; |
function CreateSoundBuffer : TDirectSoundBuffer; |
function CreateSoundNotify : IDirectSoundNotify; |
procedure ClearSoundNotify; |
procedure CreateEventThread; |
procedure ClearSoundBuffer; |
procedure StartThread; |
procedure StopThread; |
property BufferDesc : TDSBufferDesc read FBufferDesc write FBufferDesc; |
property WaveFormat : TWaveFormatEx read FWaveFormat write FWaveFormat; |
property SoundBuffer : TDirectSoundBuffer read FSoundBuffer write FSoundBuffer; |
property SoundNotify : IDirectSoundNotify read FSoundNotify write FSoundNotify; |
property Events : TList read FEvents write FEvents; |
property Notify : TList read FNotify write FNotify; |
public |
{ Public declarations } |
constructor Create( AOwner : TComponent); override; |
destructor Destroy; override; |
procedure Initialize(Stream:TMemoryStream); |
procedure Finalize; |
procedure Play(Loop : Boolean); |
procedure Stop; |
procedure Reset; |
property Position : Integer read GetPosition; |
property Playing : Boolean read FPlaying; |
published |
{ Published declarations } |
property Filename : TFilename read FFilename write SetFilename; |
property DXSound : TDXSound read FDXSound write FDXSound; |
property Looping : Boolean read FLoop write SetLoop default False; |
property Options : TModOptions read FOptions write SetOptions; |
property OnStart : TNotifyEvent read FOnStart write FOnStart; |
property OnStop : TNotifyEvent read FOnStop write FOnStop; |
end; |
implementation |
// If you are having problems compiling the package edit this file. |
// Comment out this include Statement. You should only need to do this |
// if you are NOT using the latest version of DelphiX (991024) |
// Comment this Define out if you are using DelphiX992404 or earlier |
{$DEFINE VERSION991024} |
const |
EVENTCOUNT:Integer = 2; |
type |
{Music Event Callback thread} |
TSXEventThread = class(TThread) |
private |
FEventCallback:TThreadMethod; |
public |
procedure Execute; override; |
property EventCallback : TThreadMethod read FEventCallback write FEventCallback; |
end; |
var |
EventThread : TSXEventThread; |
CurrentEvent : Integer; |
{ TSXEventThread } |
procedure TSXEventThread.Execute; |
begin |
if not Assigned(EventCallback) then Terminate; |
while not Terminated do |
begin |
EventCallback; |
end; |
end; |
{ TSXModPlayer } |
constructor TSXModPlayer.Create(AOwner : TComponent); |
begin |
inherited Create(AOwner); |
if MppSdkLibLoaded then |
ModMixer.SetMixerOptions(0); |
Events := CreateEventList; |
Notify := CreateNotifyList; |
end; |
destructor TSXModPlayer.Destroy; |
begin |
Finalize; |
{} |
Notify.Free; |
Events.Free; |
inherited Destroy; |
end; |
procedure TSXModPlayer.Initialize(Stream:TMemoryStream); |
var Data:Pointer; |
Size:Integer; |
FreeStream:Boolean; |
begin |
try |
if MppSdkLibLoaded then |
begin |
if SoundBuffer = nil then InitSoundEvents; |
FreeStream := False; |
if Stream = nil then |
begin |
Stream := TMemoryStream.Create; |
Stream.LoadFromFile(Filename); |
FreeStream := True; |
end; |
Data := Stream.Memory; |
Size := Stream.Size; |
ModMixer.FreeSong; |
ModMixer.LoadSong(Data,Size); |
if FreeStream then Stream.Free; |
end; |
except |
end; |
end; |
procedure TSXModPlayer.Finalize; |
begin |
Stop; |
if Assigned(EventThread) then |
begin |
EventThread.Terminate; |
EventThread.Free; |
EventThread := nil; |
end; |
ClearSoundNotify; |
if Assigned(SoundBuffer) then |
begin |
try |
if Playing and (SoundBuffer.IDSBuffer <> nil) then |
SoundBuffer.IBuffer.Stop; |
finally |
SoundBuffer := nil; |
end; |
end; |
end; |
procedure TSXModPlayer.InitSoundEvents; |
// DelphiX Version 991024 Edit Version.inc to change declarations |
{$IFDEF VERSION991024} |
var SizeWritten: Cardinal; |
{$ELSE} |
// DelphiX Version 992404 and earlier |
var SizeWritten : Integer; |
{$ENDIF} |
begin |
if MppSdkLibLoaded and Assigned(DXSound) then |
begin |
DXSound.Primary.IBuffer.GetFormat(@FWaveFormat,Sizeof(WaveFormat),@SizeWritten); |
ModMixer.SetWaveFormat(WaveFormat.nSamplesPerSec,WaveFormat.nChannels,WaveFormat.wBitsPerSample); |
SoundBuffer := CreateSoundBuffer; |
SoundNotify := CreateSoundNotify; |
if (SoundBuffer <> nil) and (SoundNotify <> nil) then |
CreateEventThread; |
end; |
end; |
procedure TSXModPlayer.ThreadCallback; |
var Msg : TMsg; |
procedure ReadData(Event:Integer); |
var W1:pointer; |
// DelphiX Version 991024 Edit Version.inc to change declarations |
{$IFDEF VERSION991024} |
S1, S2 : Cardinal; |
{$ELSE} |
// DelphiX Version 992404 and earlier |
S1,S2:Integer; |
{$ENDIF} |
NumWrite:Longint; |
Pos:{$IFDEF UNICODE}Cardinal{$ELSE}Integer{$ENDIF}; |
Written1:Integer; |
begin |
if Event = 0 then |
Pos := TDSBPositionNotify(Notify[EVENTCOUNT -1]^).dwOffset |
else |
Pos := TDSBPositionNotify(Notify[Event-1]^).dwOffset; |
NumWrite := TDSBPositionNotify(Notify[Event]^).dwOffset - Pos; |
if (NumWrite < 0) then |
inc(NumWrite,BufferDesc.dwBufferBytes); |
if SoundBuffer.IBuffer.Lock(Pos,NumWrite,w1,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}s1,Pointer(nil^),{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}s2,0) = 0 then |
begin |
Written1 := ModMixer.Render(W1,S1); |
SoundBuffer.IBuffer.Unlock(w1,Written1, nil,0); |
if (Written1 = 0) then |
Stop; |
end; |
end; |
begin |
CurrentEvent := MsgWaitForMultipleObjects(EVENTCOUNT,Events.List{$IFNDEF UNICODE}^{$ENDIF}[0], False, INFINITE, QS_ALLINPUT); |
dec(CurrentEvent,WAIT_OBJECT_0); |
if CurrentEvent >= EVENTCOUNT then |
begin |
while (PeekMessage(Msg, 0, 0,0, PM_REMOVE)) do |
begin |
if Msg.Message = WM_QUIT then |
Stop |
else |
begin |
TranslateMessage(Msg); |
DispatchMessage(Msg); |
end; |
end; |
end |
else |
begin |
ReadData(CurrentEvent); |
end; |
end; |
function TSXModPlayer.CreateEventList : TList; |
begin |
Result := TList.Create; |
Result.Capacity := EVENTCOUNT; |
end; |
function TSXModPlayer.CreateNotifyList : TList; |
begin |
Result := TList.Create; |
Result.Capacity := EVENTCOUNT; |
end; |
function TSXModPlayer.CreateSoundBuffer : TDirectSoundBuffer; |
{$IFDEF UNICODE} |
const DSBCAPS_CTRLDEFAULT = DSBCAPS_CTRLPAN or DSBCAPS_CTRLVOLUME or DSBCAPS_CTRLFREQUENCY; |
{$ENDIF} |
begin |
Result := TDirectSoundBuffer.Create(DXSound.DSound); |
ZeroMemory(@BufferDesc,Sizeof(TDSBufferDesc)); |
FBufferDesc.dwSize := Sizeof(TDSBufferDesc); |
FBufferDesc.dwFlags := DSBCAPS_CTRLDEFAULT or DSBCAPS_STATIC or |
DSBCAPS_GETCURRENTPOSITION2 or DSBCAPS_CTRLPOSITIONNOTIFY; |
FBufferDesc.dwBufferBytes := WaveFormat.nAvgBytesPerSec * 2; |
FBufferDesc.lpwfxFormat := @WaveFormat; |
Result.CreateBuffer(BufferDesc); |
end; |
function TSXModPlayer.CreateSoundNotify : IDirectSoundNotify; |
type TNotifyArray = Array[0..99] of TDSBPositionNotify; |
var PDSNotify : PDSBPositionNotify; |
index : Integer; Offset: {$IFDEF UNICODE}DWORD{$ELSE}Integer{$ENDIF}; |
PNotify: ^TNotifyArray; |
begin |
Result := nil; |
if SoundBuffer.IBuffer.QueryInterface(IID_IDirectSoundNotify,Result) = 0 then |
begin |
{setup notifications here} |
Offset := 0; |
GetMem(PNotify,EVENTCOUNT * Sizeof(TDSBPositionNotify)); |
for Index := 1 to EVENTCOUNT do |
begin |
New(PDSNotify); |
PDSNotify^.dwOffset := OffSet; |
PDSNotify^.hEventNotify := CreateEvent(nil,False,False,nil); |
Notify.Add(PDSNotify); |
Events.Add(Pointer(PDSNotify^.hEventNotify)); |
PNotify[Index-1] := PDSNotify^; |
Inc(Offset, WaveFormat.nAvgBytesPerSec div {$IFDEF UNICODE}DWORD{$ELSE}Integer{$ENDIF}(EVENTCOUNT)); |
end; |
if Result.SetNotificationPositions(EVENTCOUNT,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}PNotify[0]) <> 0 then |
ShowMessage('Notification Falied'); |
FreeMem(PNotify,EVENTCOUNT * Sizeof(TDSBPositionNotify)); |
end; |
end; |
procedure TSXModPlayer.ClearSoundNotify; |
var PDSNotify : PDSBPositionNotify; |
Index : Integer; |
begin |
for Index := Notify.Count -1 downto 0 do |
begin |
PDSNotify := Notify[Index]; |
Notify.Delete(Index); |
Events.Delete(Index); |
CloseHandle(PDSNotify^.hEventNotify); |
end; |
SoundNotify := nil; |
end; |
procedure TSXModPlayer.CreateEventThread; |
begin |
if not Assigned(EventThread) then |
begin |
EventThread := TSXEventThread.Create(True); |
EventThread.Priority := tpNormal; |
EventThread.EventCallback := ThreadCallback; |
end; |
end; |
procedure TSXModPlayer.ClearSoundBuffer; |
var w1,w2:pointer; |
// DelphiX Version 991024 Edit Version.inc to change declarations |
{$IFDEF VERSION991024} |
S1, S2 : Cardinal; |
{$ELSE} |
// DelphiX Version 992404 and earlier |
S1,S2:Integer; |
{$ENDIF} |
Data:Word; |
begin |
Data := GetSilenceData; |
if SoundBuffer.IBuffer.Lock(0,0,w1,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}s1,w2,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}s2,DSBLOCK_ENTIREBUFFER) = 0 then |
begin |
FillMemory(W1,S1,Data); |
if W2 <> nil then |
FillMemory(W2,S2,Data); |
SoundBuffer.IBuffer.Unlock(W1,S1,W2,S2); |
end; |
end; |
procedure TSXModPlayer.StartThread; |
begin |
if Assigned(EventThread) then EventThread.Resume; |
end; |
procedure TSXModPlayer.StopThread; |
begin |
if Assigned(EventThread) then EventThread.Suspend; |
end; |
{} |
procedure TSXModPlayer.Play(Loop : Boolean); |
begin |
if MppSdkLibLoaded then |
begin |
if Assigned(SoundBuffer) and Assigned(EventThread) then |
begin |
SetLoop(Loop); |
ClearSoundBuffer; |
StartThread; |
FPlaying := True; |
DoStart; |
SoundBuffer.IBuffer.Play(0,0,DSBPLAY_LOOPING); |
end; |
end; |
end; |
procedure TSXModPlayer.Stop; |
begin |
if MppSdkLibLoaded then |
begin |
if Assigned(SoundBuffer) and Assigned(EventThread) then |
begin |
try |
if Playing and (SoundBuffer.IDSBuffer <> nil) then |
begin |
FPlaying := False; |
SoundBuffer.IBuffer.Stop; |
DoStop; |
end; |
finally |
StopThread; |
end; |
end; |
end; |
end; |
procedure TSXModPlayer.Reset; |
begin |
if MppSdkLibLoaded then |
ModMixer.SetCurrentOrder(0); |
end; |
{Property Accessors} |
function TSXModPlayer.GetPosition : Integer; |
begin |
Result := 0; |
end; |
procedure TSXModPlayer.SetFilename(const Value : TFilename); |
begin |
if FFilename <> Value then |
begin |
FFilename := Value; |
end; |
end; |
procedure TSXModPlayer.SetLoop( const Value : Boolean); |
var Flags : DWord; |
begin |
if FLoop <> Value then |
begin |
FLoop := Value; |
if MppSdkLibLoaded then |
begin |
Flags := ModMixer.GetMixerOptions; |
case Value of |
True:Flags := Flags or MPPMIX_LOOP; |
False:Flags := Flags and (not MPPMIX_LOOP); |
end; |
ModMixer.SetMixerOptions(Flags); |
end; |
end; |
end; |
procedure TSXModPlayer.SetOptions( const Value : TModOptions ); |
const OptionArray: array[Boolean,TModOption] of DWord = ( |
(0,0,0,0,0,0,0), |
(MPPMIX_NORESAMPLING, MPPMIX_BASSEXPANSION, MPPMIX_SURROUND, |
MPPMIX_REVERB, MPPMIX_HIGHQUALITY, MPPMIX_GAINCONTROL, |
MPPMIX_NOISEREDUCTION) |
); |
var Flags : DWord; |
begin |
if FOptions <> Value then |
begin |
FOptions := Value; |
if MppSdkLibLoaded then |
begin |
Flags := 0; |
Flags := Flags or OptionArray[NoResampling in Value,NoResampling]; |
Flags := Flags or OptionArray[BassExpansion in Value,BassExpansion]; |
Flags := Flags or OptionArray[Surround in Value,Surround]; |
Flags := Flags or OptionArray[Reverb in Value,Reverb]; |
Flags := Flags or OptionArray[HighQuality in Value,HighQuality]; |
Flags := Flags or OptionArray[GainControl in Value,GainControl]; |
Flags := Flags or OptionArray[NoiseReduction in Value,NoiseReduction]; |
ModMixer.SetMixerOptions(Flags); |
SetLoop(Looping); |
end; |
end; |
end; |
procedure TSXModPlayer.Notification(AComponent: TComponent; Operation: TOperation); |
begin |
inherited Notification( AComponent, Operation); |
if (Operation = opRemove) and (AComponent = DXSound) then |
DXSound := nil; |
end; |
procedure TSXModPlayer.DoStop; |
begin |
if Assigned(FOnStop) then |
FOnStop(Self); |
end; |
procedure TSXModPlayer.DoStart; |
begin |
if Assigned(FOnStart) then |
FOnStart(Self); |
end; |
function TSXModPlayer.GetSilenceData:integer; |
const SilenceData:array[1..2] of integer = ($80,$0); |
begin |
Result := SilenceData[WaveFormat.wBitsPerSample div 8]; |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXMovie.pas |
---|
0,0 → 1,459 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
Testers : Dominique Louis |
Ivan Blecic |
} |
unit SXMovie; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses |
Windows, Classes, SysUtils, ActiveX, Math, Dialogs, |
DXSounds, DXDraws, |
{$IFDEF StandardDX} |
DirectDraw, DirectSound, DirectShow9, |
{$IFDEF DX7} |
{$IFDEF D3DRM} |
Direct3DRM, |
{$ENDIF} |
Direct3D; |
{$ENDIF} |
{$IFDEF DX9} |
Direct3D9, Direct3D, D3DX9, {Direct3D8,} DX7toDX8; |
{$ENDIF} |
{$ELSE} |
DShow, DirectX; |
{$ENDIF} |
type |
TMovieOptions = (VideoAndSound, VideoOnly); |
TDisplay = (FullScreen, WideScreen, OriginalSize); |
TScreenRect = class(TPersistent) |
private |
FLeft: integer; |
FRight: integer; |
FTop: integer; |
FBottom: integer; |
procedure SetLeft(Value: integer); |
procedure SetRight(Value: integer); |
procedure SetTop(Value: integer); |
procedure SetBottom(Value: integer); |
protected |
public |
procedure Assign(Value: TScreenRect); reintroduce; |
published |
property Left: integer read FLeft write SetLeft; |
property Right: integer read FRight write SetRight; |
property Top: integer read FTop write SetTop; |
property Bottom: integer read FBottom write SetBottom; |
end; |
TSXMovie = class; |
TMovieThread = class(TThread) |
private |
{ Private declarations } |
FSXMovie: TSXMovie; |
protected |
procedure Execute; override; |
public |
property SXMovie: TSXMovie read FSXMovie write FSXMovie; |
end; |
TSXMovie = class(TComponent) |
private |
FMovieThread: TMovieThread; |
FDXDraw: TDXDraw; |
FDXSound: TDXSound; |
FMMStream: IMultiMediaStream; |
FPrimaryVidStream: IMediaStream; |
FDDStream: IDirectDrawMediaStream; |
FSample: IDirectDrawStreamSample; |
FSurface: IDirectDrawSurface; |
FDXSurface: TDirectDrawSurface; |
FRect: TRect; |
FDestRect: TRect; |
FScreenRect: TScreenRect; |
FFilename: TFilename; |
FPlaying: Boolean; |
FDoFlip: Boolean; |
{Event} |
FOnMovieEnd: TNotifyEvent; |
FOnBeforeRender: TNotifyEvent; |
FOnAfterRender: TNotifyEvent; |
procedure SetFilename(Value: TFilename); |
procedure SetScreenRect(Value: TScreenRect); |
procedure DoMovieEnd; |
procedure DoBeforeRender; |
procedure DoAfterRender; |
protected |
procedure Notification(AComponent: TComponent; Operation: TOperation); override; |
procedure SetMovieStateRun; |
procedure SetMovieStateStop; |
procedure CreateMediaStream; virtual; |
procedure SetupMediaSample; virtual; |
public |
constructor Create(AOwner: TComponent); override; |
destructor Destroy; override; |
procedure UpDate; virtual; |
// function SetDisplay(Value:TDisplay):Boolean; |
procedure DisplayRect(Top, Left, Right, Bottom: integer); |
procedure Play; |
procedure Stop; |
{} |
published |
property DXDraw: TDXDraw read FDXDraw write FDXDraw; |
property DXSound: TDXSound read FDXSound write FDXSound; |
property Filename: TFilename read FFilename write SetFilename; |
property Playing: Boolean read FPlaying; |
property DoFlip: Boolean read FDoFlip write FDoFlip; |
property DestinationRectangle: TScreenRect read FScreenRect write SetScreenRect; |
property OnMovieEnd: TNotifyEvent read FOnMovieEnd write FOnMovieEnd; |
property OnBeforeRender: TNotifyEvent read FOnBeforeRender write FOnBeforeRender; |
property OnAfterRender: TNotifyEvent read FOnAfterRender write FOnAfterRender; |
end; |
implementation |
uses Graphics; |
procedure TScreenRect.SetLeft(Value: integer); |
begin |
FLeft := Value; |
end; |
procedure TScreenRect.SetRight(Value: integer); |
begin |
FRight := Value; |
end; |
procedure TScreenRect.SetTop(Value: integer); |
begin |
FTop := Value; |
end; |
procedure TScreenRect.SetBottom(Value: integer); |
begin |
FBottom := Value; |
end; |
procedure TScreenRect.Assign(Value: TScreenRect); |
begin |
Left := Value.Left; |
Right := Value.Right; |
Top := Value.Top; |
Bottom := Value.Bottom; |
end; |
{ Important: Methods and properties of objects in VCL can only be used in a |
method called using Synchronize, for example, |
Synchronize(UpdateCaption); |
and UpdateCaption could look like, |
procedure TMovieThread.UpdateCaption; |
begin |
Form1.Caption := 'Updated in a thread'; |
end; } |
{ TMovieThread } |
procedure TMovieThread.Execute; |
begin |
{ Place thread code here } |
if Assigned(SXMovie) then |
SXMovie.SetMovieStateRun; |
while (not Terminated) and Assigned(SXMovie) do |
begin |
Synchronize(SXMovie.UpDate) |
end; |
if Assigned(SXMovie) then |
SXMovie.SetMovieStateStop; |
end; |
{SXMovie} |
procedure TSXMovie.SetFilename(Value: TFilename); |
begin |
if Value <> '' then |
FFilename := Value; |
end; |
procedure TSXMovie.SetScreenRect(Value: TScreenRect); |
begin |
FScreenRect.Assign(Value); |
end; |
procedure TSXMovie.DoMovieEnd; |
begin |
if Assigned(FOnMovieEnd) then FOnMovieEnd(Self); |
end; |
procedure TSXMovie.DoBeforeRender; |
begin |
if Assigned(FOnBeforeRender) then FOnBeforeRender(Self); |
end; |
procedure TSXMovie.DoAfterRender; |
begin |
if Assigned(FOnAfterRender) then FOnAfterRender(Self); |
end; |
procedure TSXMovie.Notification(AComponent: TComponent; Operation: TOperation); |
begin |
if Operation = opRemove then |
begin |
if AComponent is TDXDraw then FDXDraw := nil; |
if AComponent is TDXSound then FDXSound := nil; |
end; |
inherited; |
end; |
procedure TSXMovie.SetMovieStateRun; |
begin |
try |
if FMMStream.SetState(STREAMSTATE_RUN) <> S_OK then |
Exception.Create('Set Movie State Run Exception'); |
except |
end; |
end; |
procedure TSXMovie.SetMovieStateStop; |
begin |
try |
FMMStream.SetState(STREAMSTATE_STOP); |
finally |
FPlaying := False; |
end; |
end; |
procedure TSXMovie.CreateMediaStream; |
var |
wPath:{$IFDEF UNICODE}string{$ELSE}array[0..MAX_PATH] of WChar{$ENDIF}; |
AMStream:IAMMultiMediaStream; |
Media:IMediaStream; |
begin |
Media := nil; |
AMStream := nil; |
try |
CoCreateinstance(CLSID_AMMULTIMEDIASTREAM,nil,CLSCTX_INPROC_SERVER,IID_IAMMULTIMEDIASTREAM,AMStream); |
{$IFDEF UNICODE} |
wPath := Filename; |
{$ELSE} |
MultiByteToWideChar(CP_ACP,0,PAnsiChar(Filename),-1,wPath,Sizeof(wPAth) div sizeof(wPath[0])); |
{$ENDIF} |
AMStream.Initialize(STREAMTYPE_READ,AMMSF_NOGRAPHTHREAD,nil); |
if (DXSound <> nil) and (DXSound.DSound <> nil) and (DXSound.DSound.ISound <> nil) then |
AMStream.AddMediaStream(DXSound.DSound.ISound,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}MSPID_PrimaryAudio,AMMSF_ADDDEFAULTRENDERER,IMediaStream(nil^)); |
AMStream.AddMediaStream(DXDraw.DDraw.IDraw,{$IFDEF UNICODE}{$IFNDEF D26UP}@{$ENDIF}{$ENDIF}MSPID_PrimaryVideo,0,Media); |
AMStream.OpenFile({$IFDEF UNICODE}@wPAth[1]{$ELSE}wPAth{$ENDIF},0); |
FMMStream := AMStream; |
except |
FMMStream := nil; |
end; |
end; |
procedure TSXMovie.SetupMediaSample; |
begin |
try |
FSample := nil; |
FDDStream := nil; |
FPrimaryVidStream := nil; |
if FMMStream.GetMediaStream(MSPID_PrimaryVideo, FPrimaryVidStream) <> S_OK then Exit; |
if FPrimaryVidStream.QueryInterface(IID_IDirectDrawMediaStream, FDDStream) <> S_OK then Exit; |
if FDDStream.CreateSample(nil, PRect(nil)^, 0, FSample) <> S_OK then Exit; |
FDXSurface := TDirectDrawSurface.Create(FDXDraw.DDraw); |
if FSample.GetSurface(FSurface, FRect) <> S_OK then Exit; |
FDXSurface.IDDSurface := FSurface; |
except |
end; |
end; |
procedure TSXMovie.UpDate; |
function AspectRatio(SourceRect: TRect; var DestRect: TRect): Boolean; |
var |
SourceWidth, SourceHeight, DestWidth, DestHeight: Integer; |
SourceRatio, DestRatio: Double; |
begin |
Result := False; |
SourceWidth := SourceRect.Right - SourceRect.Left; |
SourceHeight := SourceRect.Bottom - SourceRect.Top; |
SourceRatio := SourceWidth/SourceHeight; |
DestWidth := DestRect.Right - DestRect.Left; |
DestHeight := DestRect.Bottom - DestRect.Top; |
DestRatio := DestWidth/DestHeight; |
if SourceRatio <> DestRatio then |
begin |
if DestWidth > DestHeight then |
DestRect.Bottom := DestRect.Top + Round(DestWidth / SourceRatio) |
else |
DestRect.Right := DestRect.Left + Round(SourceRatio * DestHeight); |
Result := True; |
end; |
end; |
var |
R: TRect; |
Q: HResult; |
begin |
try |
Q := FSample.Update(0, 0, nil, 0); |
case Q of |
HResult(MS_S_PENDING):; |
HResult(MS_S_NOUPDATE):; |
HResult(MS_S_ENDOFSTREAM):; |
end; |
if Q <> S_OK then |
begin |
FMovieThread.Terminate; |
SetMovieStateStop; |
FPlaying := False; |
DoMovieEnd; |
Exit; |
end; |
if (FSurface <> nil) and DXDraw.CanDraw then |
begin |
DoBeforeRender; |
R := FDestRect; |
if AspectRatio(FRect, R) then |
FDestRect := R; |
DXDraw.Surface.StretchDraw(FDestRect, FRect, FDXSurface, False); |
with DXDraw.Surface.Canvas do |
begin |
Brush.Style := bsClear; |
Font.Color := clWhite; |
Font.Size := 8; |
Textout(5, 5, 'SilleX Media - Beta 1'); |
Release; |
end; |
DoAfterRender; |
if DoFlip then |
DXDraw.Flip; |
end; |
except |
on E: Exception do |
ShowMessage(E.Message); |
end; |
end; |
procedure TSXMovie.DisplayRect(Top, Left, Right, Bottom: integer); |
begin |
if not (csDesigning in ComponentState) then |
begin |
FScreenRect.Top := Top; |
FSCreenRect.Left := Left; |
FScreenRect.Right := Right; |
FScreenRect.Bottom := Bottom; |
end; |
end; |
procedure TSXMovie.Play; |
begin |
if not (csDesigning in ComponentState) then |
begin |
FDestRect.Left := FScreenRect.Left; |
FDestRect.Right := FScreenRect.Right; |
FDestRect.Top := FScreenRect.Top; |
FDestRect.Bottom := FScreenRect.Bottom; |
FPlaying := True; |
CreateMediaStream; |
SetupMediaSample; |
if FSample <> nil then |
begin |
FMovieThread := TMovieThread.Create(True); |
if Assigned(FMovieThread) then |
begin |
FMovieThread.FreeOnTerminate := False; |
FMovieThread.SXMovie := Self; |
FMovieThread.Resume; |
end; |
end; |
end; |
end; |
procedure TSXMovie.Stop; |
begin |
if not (csDesigning in ComponentState) then |
begin |
FPlaying := False; |
if Assigned(FMovieThread) then |
begin |
if not FMovieThread.Terminated then |
begin |
FMovieThread.Terminate; |
DoMovieEnd; |
end; |
FMovieThread.Free; |
FMovieThread := nil; |
end; |
if FDXSurface <> nil then |
begin |
FDXSurface.Free; |
FSurface := nil; |
end; |
end; |
end; |
constructor TSXMovie.Create(AOwner: TComponent); |
begin |
inherited Create(AOwner); |
FScreenRect := TScreenRect.Create; |
CoInitialize(nil); |
end; |
destructor TSXMovie.Destroy; |
begin |
if not (csDesigning in ComponentState) then |
begin |
FPlaying := False; |
if Assigned(FMovieThread) then |
begin |
if not FMovieThread.Terminated then |
FMovieThread.Terminate; |
FMovieThread.Free; |
FMovieThread := nil; |
end; |
if Assigned(FSample) then |
FSample := nil; |
if Assigned(FDDStream) then |
FDDStream := nil; |
if Assigned(FPrimaryVidStream) then |
FPrimaryVidStream := nil; |
if Assigned(FMMStream) then |
FMMStream := nil; |
if Assigned(FSurface) then |
FSurface := nil; |
end; |
FScreenRect.Free; |
CoUnInitialize; |
inherited; |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SxSample/SXMedia.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/SXMedia/SxSample/main.dfm |
---|
0,0 → 1,798 |
object FrmMain: TFrmMain |
Left = 97 |
Top = 154 |
BorderStyle = bsToolWindow |
Caption = 'SX Media - Example Project' |
ClientHeight = 329 |
ClientWidth = 536 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
Menu = MainMenu1 |
OldCreateOrder = True |
OnKeyDown = DXDraw1KeyDown |
PixelsPerInch = 96 |
TextHeight = 13 |
object DXDraw1: TDXDraw |
Left = 0 |
Top = 0 |
Width = 536 |
Height = 329 |
AutoInitialize = True |
AutoSize = True |
Color = clBtnFace |
Display.FixedBitCount = True |
Display.FixedRatio = True |
Display.FixedSize = False |
Options = [doAllowReboot, doWaitVBlank, doCenter, doDirectX7Mode, doHardware, doSelectDriver] |
SurfaceHeight = 329 |
SurfaceWidth = 536 |
Align = alClient |
TabOrder = 0 |
Traces = <> |
end |
object MainMenu1: TMainMenu |
Left = 398 |
Top = 9 |
object FileMnu: TMenuItem |
Caption = '&File' |
object Exit1: TMenuItem |
Caption = 'E&xit' |
OnClick = Exit1Click |
end |
end |
object SXShowMnu: TMenuItem |
Caption = 'SXShow' |
object OpenFileItem: TMenuItem |
Caption = '&Open File' |
OnClick = OpenFileItemClick |
end |
object PlayItem: TMenuItem |
Caption = '&Play' |
OnClick = PlayItemClick |
end |
object StopItm: TMenuItem |
Caption = '&Stop' |
OnClick = PlayItemClick |
end |
end |
object SXEngineMnu: TMenuItem |
Caption = 'SXEngine' |
object StartItem: TMenuItem |
Caption = 'St&art' |
OnClick = StartItemClick |
end |
object StopItem: TMenuItem |
Caption = 'St&op' |
OnClick = StopItemClick |
end |
end |
object SXModPlayerMnu: TMenuItem |
Caption = 'SXModPlayer' |
object OpenFile1: TMenuItem |
Caption = 'O&pen File' |
OnClick = OpenFile1Click |
end |
object Start1: TMenuItem |
Caption = '&Start' |
OnClick = Start1Click |
end |
object Stop1: TMenuItem |
Caption = '&Stop' |
OnClick = Stop1Click |
end |
end |
end |
object OpenDlg: TOpenDialog |
Options = [ofHideReadOnly, ofPathMustExist, ofFileMustExist, ofNoLongNames] |
Title = 'SXMedia Open' |
Left = 364 |
Top = 8 |
end |
object SXModPlayer: TSXModPlayer |
DXSound = DXSound1 |
Options = [BassExpansion, Surround, Reverb, HighQuality, GainControl, NoiseReduction] |
Left = 470 |
Top = 8 |
end |
object SXEngine: TSXEngine |
ThreadPriority = tpIdle |
OnRender = SXEngineRender |
Left = 438 |
Top = 10 |
end |
object SXMovie: TSXMovie |
DXDraw = DXDraw1 |
DXSound = DXSound1 |
DoFlip = True |
DestinationRectangle.Left = 0 |
DestinationRectangle.Right = 200 |
DestinationRectangle.Top = 0 |
DestinationRectangle.Bottom = 200 |
Left = 470 |
Top = 48 |
end |
object DXSound1: TDXSound |
AutoInitialize = True |
Options = [soExclusive] |
Left = 330 |
Top = 12 |
end |
object DXImageList1: TDXImageList |
DXDraw = DXDraw1 |
Items.ColorTable = { |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000} |
Items = < |
item |
Name = 'logo_n.bmp' |
PatternHeight = 0 |
PatternWidth = 0 |
Picture.Data = { |
07544269746D61700A520000424D0A520000000000003608000028000000D200 |
00002D0000000100100003000000D44900000000000000000000000100000000 |
0000007C0000E00300001F000000000000000000800000800000008080008000 |
00008000800080800000C0C0C000C0DCC000F0CAA60018081000080000000800 |
0800080808001000080010080800100010001008100010101000180010001808 |
10001808180025001800210818001810100022091D0025102100181818002118 |
1800310427003110290039102D00211821002918210031182900262326003118 |
310039183100352632004A143B006B0B520066255600493A4600653358006E32 |
61006F4364008B176E00892E71008E3375009C3184007E4171008E4279009C39 |
840094468400A5007B00A5107E00A5398400A5398C00A0467F00A0468400A04A |
8800AD007F00AD108400A5428C00A54A9000C1009000B9229400D6009C00F534 |
9500565256005A5A5A00635A5E006363630075566D008452730088567B00A563 |
6B00A55A7300AD637300A5527B008C5A7B0094568400A1568800A0639400AD5A |
8400AD4A8C00AD528C00AD5A8C00AD4A9400AD529400AD5A9400AD529C00AD5A |
9C00E75A7300E75A7B00EF527B00EF5A7B00EF4A8400EC4F89009E7A6100B591 |
5C00B8C232007B71790087878700AF688A00B47B7E00CDAF4000C7CE2F00C0CA |
4500CE906000CB898000C0B65B00C4AB7600BDF70000C1F30400C6EF0800BDF7 |
0800C6F70800BDFF0000BDFF0800C6FF0000C0E41000C1DE1800BDF31000CED6 |
2100C0E91800BDE22100C4E12D00D600A500D608A500DE00A500DE08A500E700 |
A500DE00AD00EB00AD00EF00B500F700B500F708B500F700BD00FF00B500FF08 |
B500FF00BD00FF00C600E221B100F721A500F714B900FF10B100FB10BD00FF08 |
C600FC18C300EC29AF00EF2DB500E241B700F92DC700FF39CE00E246BD00FF46 |
D200A57B9C00AD639C00AD6B9C00AD739C00B55A9C00B5639C00B56B9C00B563 |
A500B56BA500B573A500BD7B9C00BD5AA500BD6BA500BD73A500BD6BAD00D673 |
9C00C66BAD00BD73AD00BD7BAD00C67BAD00D65AB500D663B500CE6BB500CE73 |
B500D66BB500D65ABD00DE52BD00EF52C600FF5AD600FF67DA009C8C9C009C94 |
9C00AD8CA900AD94AD009C9C9C00A59C9C00AD9CA500AD9CAD00B594AD00B59C |
AD00BD849C00C6849C00C68C9C00C6949C00C68CA500C694A500C684AD00C68C |
AD00C67BB500C684B500CE7BA500CE7BB500CE84BD00D68CC600E794CE00FF7B |
DE00FF84DE00FF84E700FF8CE700FF94E700B4B0B200C8B7C100D3CCD000E6B9 |
D600DED6DE00E7D6E700EFD6E700FF9CE700FFA5EF00F7ADE700FFADEF00FFBD |
EF00F7CEEF00FFCEF700DEDEDE00E7DEE700E7E7E700EFDEE700FFD6F700EFDE |
EF00EFE7EF00FBDEF300FFE7FF00EFEFEF00F7EFF700FFEFFF00F7F7F700FFF7 |
FF00FFFFFF00F0FBFF00A4A0A000808080000000FF0000FF000000FFFF00FF00 |
0000FF00FF00FFFF0000FFFFFF00FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FDE7BBD779C739C733967F75EB656734E1042EF3DEF3D |
AE398B2DAE398B2D8B2D8B2DE820E82084108410420800000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000002104420884108614E8204A298B2DAE391042B656B656 |
F75EB656F75E734E744EF75E3967BD777B6F9C739C73BD77DE7BFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FDE7BBD77BD779C739C735B6F9C73F75EB656B6561042AE398B2D4A29 |
4208E82042088410841000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000042088614E8206A298B2DEF3D744E734EB656F75E39677B6F9C73BD77 |
BD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
DE7BDE7B9C739C737B6F7B6FF75EB656744E10428B2DE820E82042088614430C |
240C440C0000240C25100208010002080208030845108614E820E820CC280D31 |
0D314E3550355035503950397139503950397139503971395039713950395039 |
7139503971395039713971395039713950397139713971395039713950397139 |
5039713950397139503971395039503950395039503971395039503971395039 |
5039503971395039713950397139503950395039503971395039503950395039 |
7139503950397139503971395039713950397139503971397139713971397139 |
5039713950397139503971397139503971395039713950395039713950395039 |
71395039503950354E350D310D31CC28E820E82086144514240C020400000000 |
00000000000000000000010002044208430C210484108410E8204A298B2D1042 |
F75EB656F75E39679C73BD77DE7BDE7BFF7FDE7BFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
DE7BDE7BBD773967F75EB656734EAE394A298410430C430C02080208030C0208 |
030C481848188C285034EF3411393445754DB751185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185A185A185A185A185A185AF859185A |
185A185A185AF755185AF859185AF755F859185AF755F859F755F859F755F859 |
F855F755F859F755F855F755F859F755F855F755F855F755F855F755F755F855 |
F755F755F855F755F755F755F755F755F755F855F755F755F855F755F855F755 |
F855F755F855F755F855F755F859F755F855F859F755F859F855F859F755F859 |
F859F755185AF859185AF755185A185AF755185A185A185A185AF859185A185A |
185A185A185A185A185A185A185A185A185A185A185A185A185A185A185AF859 |
F859B855764D1445B34050342C24481805100104000000000000000000000000 |
00002104430CE8206A291042734EF75E39677B6FBD77BD77DE7BDE7BFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
DE7BFF7F7B6FF75EF75EEF3D6B2DE820430C240C0204030C040805102C245034 |
153C7B54FB587A59B959F859185A185A185A185A185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185AF859185AF755185AF859F859F755 |
185AF755F859F755F859F755F855F755F855F755F855F755F755F755F855F755 |
F755F755F755F755D755F755F755D755F755D755F755D755F755D755D755F755 |
D755D755F755D755D755F755D755D755F755D755D755F755D755F755D755D755 |
F755D755D755F755D755F755D755F755D755F755F755D755F755F755F755F755 |
F755F755F755F755F855F755F855F755F859F755F859F855F859F755F859185A |
F859185AF755185A185A185AF755185A185A185A185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185AF8597A59FB587B54354014382C24 |
4818010400000000000000000000420800008614AE39734EB65639673967BD77 |
BD77DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
FF7F7B6F3967F75E1042E8204208430C240C020405104818143817441E58BD58 |
FB58B959F859185A185A185A185A185A185A185A185A185A185A185A185A185A |
F859185A185A185AF859185AF755185AF859F755F859185AF755F859F755F855 |
F755F859F755F755F755F855F755F755D755F755D755F755D755F755D755D755 |
D755D755D755D755D755D751D755D755D755D755D755D751D755D755D755D751 |
D755D755D755D651D755D755D751D755D755D751D755D755D751D755D755D755 |
D651D755D755D755D755D755D755D755D755D755D755D751D755D755D755D755 |
D755D755D755D755D755F755D755F755D755F755D755F755F755F755F755F755 |
F855F755F855F755F859F755F859F855F859185AF859185AF755185A185A185A |
F859185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A |
D9597A59BD585E581A50153C2C24261400000000020400000000210486148B2D |
1042F75E39677B6FBD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7B |
BD779C733967734E4A2900000000000002042C2414381B501F5C5E58FB587A59 |
185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A |
185AF859185AF859F859F755F859F755F859F755F755F855F755F755D755F755 |
D755F755D755D755F755D755D755D755D755D755D755D755D755D755D755D751 |
D755D755D651D755B651D751B651B755D755B651B755B751B651B755B651B755 |
B651B755B651B751B651B755B651B751B651B751B751B651B751B751B651B751 |
B651B751B751B651D751B751D651B751B751D751B751D651B751D755B651D751 |
D755D751D755D751D755D755D755D755D755D755D751D755D755D755D755D755 |
D755D755F755D755F755D755F755F755F755F755F855F755F855F755F859F855 |
F859F755185AF8591856185A185A185AF859185A185A185A185A185A185A185A |
185A185A185A185A185A185AB9591B5D7B541E5C1E58153C2C24051000000000 |
01000000420886148B2DB65639677B6F9C73DE7BDE7BFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BBD77 |
BD773967F75EEF3D84100000000004082C241A4C1E5C1F5C3E5CFB58B959F859 |
185A185A185A185A185A185A185A185A185A185A185A185AF859185AF755185A |
F755F859F755F859F755F855B83A372337233723372337233723372337233723 |
372337233723372337233723B755D755D755D651D755D751D755B651D751B751 |
D751B651B751B751B751B651B83A372337233723161737233723161737233723 |
16173723372316173723372337231617B83A9651B651B651B651B651B651B651 |
B651B751B651B651B651B751B651B651B651B651B651B651B651B651B751B651 |
B751B651B751B651B751B751B651B751B751D651B751D751B651D755D751D755 |
D751D755D755D755D755D751D755D755D755D755D755D755F755D755F755F755 |
F755F755F755F855F755F859F755F859F859F755185AF8591856185A185AF859 |
185A185A185A185A185A185A185A185A185A185A185AF8595B5D5E581E5C1F5C |
1B5414384818000000000104430886148B2D734EB6563967BD77DE7BFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
DE7B5B6F744EAE392204010402042C241A4C1F5C1F5C1E5CBD587A59185A185A |
185A185A185A185A185A185A185A185AF859185A185A185AF755F8591856F859 |
F755F859F755F855F755F755F755F755D72AD703F703F703F703F703F703F703 |
F703F803F703F703F703F703F703D707D751B651B751B751B751B651B751B651 |
B751B651B651B651B651B651B651B6513817F703F703F703F703F703F703F703 |
F703F803F703F703F703F703F703F703D703F703D72A964D9651965196519651 |
965196519651964D9651964D96519651964D9651964D9651B65196519651B64D |
9651B6519651B6519651B651B651B651B651B651B651B751B651B651B751B651 |
B751B751B651B751B751D651B751D755D751D755D755D751D755D755D755D755 |
D755D751D755D755F755D755F755F755F755F755F855F755F859F755F859F755 |
F859185A185A185A185A185AF859185A185A185A185A185A185A185A185A185A |
B959FB581E5C1F5C1E581D5814380510040800000000E8204A291042F75E7B6F |
BD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
BD777C737B6FAE39841001044818153C1E5C1F5C1F5C5E58FB58D959185A185A |
185A185A185A185A185A185A185AF859185AF755185AF859F755F859F755F859 |
F755F755F855F755F755D755F755D755D755D755384ED72AD72AD72A970BF703 |
F703F703F703F703F703970FD72A362EB83A362ED751B651B651B651B651B651 |
B651B6519651B6519651964D96519651964D9651F63D362EB83A362E1617F703 |
F803F703F703F703F703F703F703D703D7071617D72A362EF63D964D964D954D |
964D964D954D964D964D954D9651964D964D954D9651964D9651964D964D9651 |
964D9651964D9651964D9651965196519651964D96519651964DB6519651B651 |
9651B651B651B651B651B651B651B751B651B751B651B751B751B651D751B751 |
D755D651D755D755D755D755D751D755D755D755D755F755D755F755F755F755 |
F855F755F855F755F859F755F859F755185A185A185AF859185A185A185A185A |
185A185A185A185AF8597A599D541F5C1F5C1E581A4C2C240204000002084208 |
8614734EF75E7B6FBD77FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
DE7B7C733967734E430800002C241A4C1F5C1F583F547C39183E3852185A185A |
185A185A185A185A185A185AF859185AF755185AF859F755F859F755F855F755 |
F755F755F755D755D755F755D755D755D755D751D755D755D751D755D751B755 |
D651183E970FF703F703F703F703D72A9651B6519651B651B65196519651B64D |
965196519651964D96519651964D9651964D964D9651964D964D754D964D964D |
9541F703F703F703F703F703F703F703D703D72A7549764D754D764D754D764D |
754D764D754D764D754D764D754D764D754D764D754D964D754D764D954D764D |
764D954D764D964D764D954D964D964D964D954D964D964D9651964D9651954D |
96519651964D96519651964D96519651B64D9651B651B651B651B651B651B651 |
B751B651B751B751B651B751D751D651D755B755D751D755D755D755D751D755 |
D755D755F755F755F755F755F855F755F855F859F755F859F755185A185AF859 |
185A185A185A185AF755185A185A185A185A183E183E7E501F581E5C1D585034 |
040801004308E8208B2D744E39679C73DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FBD773967B656AE3900002C241A4C1F5C1F5C7E50392E3723384E185A185A |
185A185A185A185A185AF859185AF755185AF859F755F859F755F855F755F755 |
F755D755F755D755D755D755D755D755D751D755D755D751B755D651B751B751 |
B651B751B651B751B6513723D703F703F703F703D72A964D9651964D96519651 |
964D9651964D964D954D764D964D954D764D964D754D964D754D764D754D954D |
764D9541970BF703F703F703F803F703F703D707F63D7549754D754D754D754D |
754D754D754D7549754D754D754D754D754D754D7549754D754D7549754D754D |
7549754D754D754D754D754D754D754D754D754D764D754D764D754D964D764D |
954D764D964D954D964D964D964D9651954D96519651964D96519651964D9651 |
B6519651B651B651B651B651B651B751B651B751B751B651D751B751D755D651 |
D755D755D751D755D755D755D755F755D755F755F755F755F855F755F859F755 |
F859F755185A185AF859185A185A185A185A185A185A185A1856D72AB91E7C39 |
1F5C1F601E5850340510020486144A29EF3DB6567B6FDE7BDE7BFF7FFF7FFF7F |
FF7FFF7FBD775B6F55564A29051017441F5C1F5CDE48B91ED707B83AF859185A |
185A185A185A185AF859185AF755185AF859F755F855F755F855F755F755F755 |
D755F755D755D755D755D755D755D751D755D751B755D651B751B651B751B651 |
B751B651B651B651B6519651B6519651D72AD703F703F703F703D72A964D964D |
954D764D964D954D764D964D754D964D754D764D754D754D754D754D754D754D |
754D75499541D707D703F803F703F703F703F703770B954175495549554D5549 |
554955495549554955495549554D75495549554955495549554D55495549554D |
55495549754D5549554D7549554D7549554D754D7549754D754D754D754D754D |
7549754D754D754D754D764D754D764D964D754D964D964D954D964D964D9651 |
964D96519651964D96519651964DB6519651B651B651B651B651B751B651B751 |
B651B751D751D755D651B755D751D755D755D755D755D751D755F755F755D755 |
F755F855F755F859F755F859F755185AF859185A185A185A185A185A185A185A |
38527817770B7C351F581F601B502C240510030CE820AE39B65639679C73DE7B |
FF7FFF7FFF7FBE7B5B6F5556124150341F581F5C7E50B91EF80378171856185A |
185A185A185A185AF859F755185AF859F755F859F755F859F755F755F755D755 |
F755D755D755D755D755D755D751D755D751B755D651B751B651B751B651B751 |
B651B651B651B65196519651B64D9651964D9651964DF63DD703F703F703F703 |
1617964D754D964D754D764D754D754D754D754D754D7549754D754D5549754D |
554975495549F63DD707D703F703F703F703F703F703970F7545554955495549 |
5549554955495549554955495549554955493549554955495549554955495549 |
5549554955495549554955495549554955495549554955495549554955495549 |
554D7549554D754D7549754D7549754D754D754D754D754D754D764D754D764D |
954D764D964D954D964D964D9651964D96519651964D96519651B6519651B651 |
B651B651B751B651B751B651B751B651D755D751B755D751D755D755D755D755 |
D755F755D755F755F755F855F755F755F859F755F859185AF755185A185AF755 |
185A185A185A185AD72AD703770B5D391E581F5C153C261404088614AE39744E |
39679C73BD77FF7FFF7FDE7BD85E334135401E581E5C392ED703F703D72A185A |
185A185AF859185A185AF755F859185AF755F859F755F755F755F755D755F755 |
D755D755D755D755D755D751D755D751B755D651B751B651B751B651B751B651 |
B651B651B65196519651964D9651964D9651964D9651954D764D954DF63D970F |
F703F703F703970F9541754D754D7549754D7549754D554D5549554D55495549 |
55495549554D5549F63DD703F703F703F703F703F703D7031617754134453549 |
3445354934453549344534453445344534453445344534453445344534453445 |
3445344534453445354934453549344555493445554935495549554955495549 |
5549554955495549554955495549554D55497549554D754D7549554D754D754D |
7549754D754D764D754D764D754D964D954D764D964D954D9651964D9651964D |
965196519651B651B651B651B651B651B751B651B751B651D751D755B651D755 |
D751D755D755D755D751D755F755D755F755F855F755F855F755F859F755185A |
F859185AF859185A185A185A185AB83AD707F703B91E7E501E581C5448180408 |
E820AE39744EF75E7B6FFF7FDE7B3967EF3417445E587E50590FF703F703D72A |
185A185A185A185A185AF859F755185AF755F859F755F755F755F855F755D755 |
F755D755D755D755D755D751D755D751B755D651B751B651B751B651B751B651 |
B651B6519651964D96519651964D9651964D9651954D764D964D754D964D754D |
764D95413817F703F703F703970B954175455549554D55495549554955495549 |
55495549554955493445362ED703F703F703F703F703F703F703161734453445 |
3445344534453445344534453445144534453445344534453445144534453445 |
3445344514453445344534453445344534453445344534453445344534453445 |
3445354934453549344555495549344555495549554955495549554955497549 |
554D7549554D754D754D7549754D754D764D754D764D754D964D754D964D954D |
9651964D9651964D9651964D9651B651964DB651B651B751B651B751B651B751 |
D651B755D751D755D651D755D755D755D755D755F755D755F755F755F755F859 |
F755F855F755185A185AF755185A185A185A185A584ED703F703D7037C351F5C |
1E5C2C2426148614AE39B656F75EFF7FDE7B4E351A501E583D41D703F703F703 |
D72A185A185A185AF859185AF755185AF755F859F755F755F755F855D755F755 |
D755D755D755D755D751D755D751B755D651B751B651D651B751B651B651B651 |
B6519651964D96519651964D9651964D9651754D964D964D764D954D764D764D |
754D764D754D754D75491617F703F703F703D707F63D55495549554955493445 |
554955493445354934453445362ED703F703F703F703F703F703F703B91E3341 |
1445144534451445144534451445334114451445144514451445144514453341 |
1445144514451445344514451445144514451445144514453445144534451445 |
3445344534453445344534453445344534453549344535493549554935493445 |
55493549554955495549554955495549754D7549754D7549754D764D754D764D |
964D764D964D964D964D964D9651964D9651965196519651B6519651B6519651 |
B651B751B651B751D651B755D751B755D751D755D751D755D755D755F755D755 |
F855F755F755F859F755F859F755185AF859185AF755185A185A584EF703F703 |
F703392E1F581E5C2C242614E8201042F75EFF7FB6561A4C1E5C3D41D703F703 |
F7037817185A185AF755185A185AF755F859F755F859F755F755F855F755D755 |
F755D755D755D755D755D751D755D751B755D651B751B6515341EF340D31EF34 |
0D31EF340D310D31EF340D310D31EF340D310D310D31EF34CD2C0D310D31CD2C |
0D31CD2C0D31CD2C0D3134457549554D362EF703F703F703D703362E55495549 |
3445554934453445344534453445362EF703F703F703F803F703F703F703362E |
134114451139CD2C8C288C28CD2C8C288C28B0341445144514451445D3401445 |
1445D1388C288C28CC288C288C288C2811391445144514451445144514451445 |
14451445144533411445344514453445CD2C8C2833413445EF34CD2CEF34CD2C |
EF34EF34EF34EF34CD2CEF34EF34EF34EF34EF3455491241EF34EF34EF34EF34 |
EF34EF34EF34EF34EF34EF34EF34EF34EF347549965153415035EF3450355341 |
B65150397549B651B651B751B651B751B651D755D6515039503950395241D755 |
F755D755F755F755F855D755F859F755F855F755185AF859185A185AF755185A |
B83AF703F703F703B91E1F5C1C542C24440C6A291042FF7F35491F5CDE48D703 |
F703F703D703584E185AF859185A185AF755185AF755F859F755F755F755F755 |
D755F755D755D755D755D751D755D751B755D651B751D751B651B751E8200000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000240C554955495549F63DD703F703F703D703 |
362E3445344535453445344534451445B91ED703F703F703F703F703F703D703 |
362ED3401445144501040000000000000000000000008C28D340D340D340D340 |
D340D440D34000000000000000000000000000008C28D440D3401445D3401445 |
1445D34014451445144514451445144513414818000000001139D34000000000 |
00000000251046144614461448188614461446144818E8203549CC2800000000 |
00000104461486144614461486140308000000000000E820764D861400000000 |
00000D31964DCC2801045039B651B751B651B751B651D751B755000000000000 |
0000954DD751D755F755D755F755F755D755F859F755F859F755185AF859F755 |
185A185A18567817F703F703F703392E1F5C1A4C0408420810427D771E581F5C |
590FF703F703F7033723185A185A185AF859F755F859F755F859F755F855F755 |
F855D755F755D755D755D755D755D751D755B751D755B651B751B651B651B751 |
E820000000000000000000000000010475499349554953417549534175495341 |
3341EF3400000000000000000000000000000104554955495549344595419707 |
F703F703F7031617344534453445144534451617D703F703F703F703F703F703 |
D703F32DD4401445D340D44400000000000000000000000000004818D444D340 |
D340B340D340B340B34000000000000000000000000000008C28D340D340D340 |
D340D340D340D440D340D4401445D3401445D138240C00000104CD2C14451241 |
000000000000000034453445344534453445344535495549344555495549CC28 |
00000000000046147549554D7549754D754D8C28000000000000E820764D4614 |
000000000000CD2C9651B64DEF340104CC28B651B651B651B751B651B7510000 |
0000000000009349D755D755D755D755D755F855F755F855F859F755F859F755 |
F859185A1856F859185A584EF703F703F703F703DE481E582C2400006A291F6E |
1F5C7C35F803F703F703F703584E1856185AF859F755185AF755F859F755F755 |
F755F755D755F755D755D755D755D751D755D751B651D755B651B751B651B751 |
B651B751E82000000000000000000000000022049651754D964D954D764D754D |
754D754D754D754D481800000000000000000000000001045549554934455549 |
344575411617F703F703F70316175341144533411617F703F703F703F703F703 |
F703D70794311445D340D440D340D34000000000000000000000000000004818 |
D340B340B340B340B340B340D13800000000000000000000000000008C28B340 |
B340D340B340D340D340D340D340D340D340D340CD2C01040000030CD1381445 |
1445D13800000000000000008C28CC288C288C28CC2813413445344555493445 |
55498C2800000000000046145549754D5549754D7549E8200000000000004818 |
964D86140000000000000D31964D9651964D53414208240C440C440C86144614 |
861400000000000000009349D755D751D755F755D755F755D755F755F755F755 |
F855F755185AF859F755185A185A185A970FF703F703F70338171F5C1A500000 |
8410DF641F5C3817D703F703F703D707185A185AF755185AF859F755F859F755 |
F855F755F855D755F755D755D755D755D755D751D755D751B755D651B751B651 |
B651B751B651B651CC28440C430C240C430C240C240C4614954D964D754D764D |
764D754D764D754D554911394510000000000000000000000000020455495549 |
344555493445344535451617D703F703F703770B74351617F703F703F703F703 |
F703F70397077435D340D340D340D340D340D340000000000000000000000000 |
00004818B340B340D138B340B340B340B0340000000000000000000000000000 |
8C28B340B340B340B340B340D340B340D340D340D3408C28000000004614D340 |
1445D34014451139000000000000000025104510251045104510134134453549 |
344555493445CC2800000000000046145549754D5549754D554D8C2800000000 |
0000E820764D4614000000000000CD2C964D9651964DB651954D861400000000 |
CC28B651B75100000000000000009349D755D751D755D755D755F755D755F855 |
F755F859F755F859F755185AF755185AF859185A3723F703F703F803D7037E50 |
1F5C040800005F5C1F5CD703F703F703F7037817185AF859185A185AF755185A |
F755F859F755F755F755F755D755D755D755D755D755D751D755B751D651B755 |
B751B651B751B651B651B65196519651964D9651964D9651964D954D964D754D |
964D754D5241CD2CE820240C0000000000000000000002088614CC2811393445 |
55493445354934453445354934453445362EF703F703F703F703F703F703F703 |
F803F703D703770B5439D340D340D440D340D340D340B3400000000000000000 |
0000000000004818B340B340B340B340D138B340503400000000000000000000 |
000000008C28B340B340B340D138B340B340B340D340D1382614000000008C28 |
D340D3401445D3401445D1380000000000000000144514453445144534451445 |
34453445344535493445CC28000000000000451455495549554955497549E820 |
0000000000004818954D46140000000000000D31954D9651964D96519651B651 |
CC28000000008614954D00000000000000009349D755D751D755D755F755D755 |
F755D755F855F755F859F755F859F755185A185AF859185AD72AF703F703F703 |
F7037C391F5C481800003E5C1F5CF803F703F703F8037817F859185A185AF755 |
F859F755185AF755F859F755F859D755D755F755D755D755D755D751D755B651 |
D755B751B651B751B651B651B751B6519651B651964D96519651964D96517549 |
EF34CC2845100104000000000000000001004514CC28EF343341554955495549 |
554955493445554934453549344534453445344534459535D703F703F703F803 |
F703F703F703F703770B133DD340D340D340D340D340D340B340D34000000000 |
000000000000000000004818B340D138B3405034B3405034D138000000000000 |
00000000000000008C28D138B340B340B340B340B340B340B034020400000104 |
B034D340D3401445D3401445D340D3400000000000000000CC28CD2C8C28CD2C |
CD2CCD2CCD2CCD2CCD2CCD2C3549CC28000000000000240CCC28CC28CC28CC28 |
CC280000000000000000E820764D4614000000000000CD2C964D9651964D9651 |
B651964DB651503901040000020800000000000000009349D755D751D755D755 |
D751F755D755F855F755D755F855F755F8591856F859F755185A185AB83AF703 |
F703F703F7037C351F5C481802085F5C1F5C9707F703F703F703970F185A185A |
185AF755185AF859F755F755F855F755F755D755F755D755D755D755D755D751 |
D755B751D755B651B751D651B751B651B651B751B6519651964D5241CC288614 |
030C00000000000000000000240CE820CD2C3341754D7549554D55495549554D |
5549554955493445554934455549344534453445344534451445F32DB803F703 |
F703F703F703F703F7031617133DD444D3401445D340D444D340D340D340B340 |
00000000000000000000000000004818B340B340D138B340D138B3408C280000 |
0000000000000000000000008C28B340B340D138B340B340B3408C2800000000 |
240CD138D444D340D340D3401445D3401445D340CD2C8C288C28CC288C288C28 |
CC288C28CC288C28CC28CC28CD2CCD2C35491139CD2CCC28CD2CCC28CD2CCC28 |
CD2CCD2CCD2CCD2CCD2CCD2C0D313341954D33410D31CD2C0D3152419651964D |
9651964D9651B6519651B65175490D310D310D31EF340D315035B755D651D755 |
D755D755F755D755F755D755F755F859F755F859F755F859F755185A185AF755 |
D72AF703F803F703F7033D411F5C2614E8207F691F5C392EF803F703F703D703 |
1856185AF859185AF755F859F755F859F755F755F855D755F755D755D755D755 |
D751D755D755D751B651D751B651B755B651B751B6519651EF34440C00000000 |
00000000000000008614CD2C5039554D964D754D754D764D7549754912410D31 |
EF34CD2CEF34CD2CEF34EF3434455549344535493445344534453445362ED703 |
F703F703F703F703F703F703D70394311445D3401445D340D340D340D340D340 |
D340D34000000000000000000000000000004818B340B340B340B340B3404818 |
000000000000000000000000000000008C28B340B340B340D340B34048180000 |
00004818D340D340D340D440D3401445D3401445D34014451445334114451445 |
1445344514453445344534453549344534455549344555493445554955495549 |
5549554D7549554D7549754D754D7549764D954D764D954D764D9651754D964D |
9651964D96519651B64D9651B751B651B651B751B651D755B651D751B755D751 |
D755D755D751D755D755D755F855F755F855F755F755F859F755185AF8591856 |
F859185A3723F703F703F703D7031F581E5C0204AE39BF761F5CDE48D703F803 |
F703F703B83A185A185AF859F755185AF755F859F755F859F755F755D755F755 |
D755D755D755D755D751D755B751D755B651D751B651B651B751B651E8200000 |
0000000000000000000002049651954D764D964D754D754D764D754D764D754D |
8C2800000000000000000000000001045549554934453549554934453445362E |
F703F703F703F803F703F703F703F703F703D703362ED34014451341D444D340 |
1445D340D444D34000000000000000000000000000004818D444D340B340D138 |
26140000000000000000000000000000000000008C28B340D340B340D138240C |
000000008C28D340D444D3401445D3401445D444134114451445144514451445 |
1445344514453445344534453445344534453549554934455549554955495549 |
5549554D5549754D5549754D7549754D754D764D754D764D954D764D954D964D |
9651964D9651964D9651B64D9651B6519651B651B751B651B751B651D755B751 |
D755D651D755D751D755F755D755F755F755D755F755F755F859F755F859185A |
F755185AF8593852D707F703F703F803392E1F58153CE820534EFF7FBE601F5C |
392EF803F703F7037817185AF755185A185AF755F8591856F755F755F755F755 |
F855D755F755D755D755D755D751D755D755B651D751B755B651B751B651B651 |
E82000000000000000000000000000005241964D954D9651954D764D954D754D |
754D754DE8200000000000000000000000000104554955495549554934453549 |
362EF703F703F703F703F703F703D803362ED707F703F703D703362E13411445 |
13411445D3401445D340144500000000000000000000000000004818D340D340 |
B0340208000001048C2800000000000000000000000000008C28D340D440CD2C |
020400000208B034D3401445D3401445D3401445144513411445144514451445 |
1445344514453445344534453445344534453549554934455549344555495549 |
554955495549754D5549754D5549754D754D754D764D754D964D754D964D754D |
9651964D9651964D9651964DB6519651B751B651B651B751B651B751B651D751 |
B755D651D755D751D755D755D755D755F855F755D755F755F859F755F859F755 |
185AF755185A185A185AB83AF703F703F70397073F541F5C8C28F44DB656FF7F |
FF761F5C1F583817D703F703F703B83A185A185AF859F755185AF755F859F755 |
F859F755F755F755D755F755D755D755D755D751D755D751D755B651D751B651 |
B751B651CC2800000000000000000000000000000000240C4510451045104510 |
4510451445104510010400000000000000000000000001045549554955495549 |
55491617D703F703F703F803F703F703D703F32D35497541770BF703F703F703 |
161713411445144514451445134114450000000000000000000000000000240C |
4818461400000000240CD340D3400000000000000000000000000000240C4818 |
4614000000004510D34013411445144513411445144514451445144514451445 |
3445344534453445344534453445344535495549344555493445554955495549 |
5549554D5549754D5549754D5549754D754D7549764D754D964D754D964D754D |
964D9651954D9651964D9651964DB6519651B651B651B651B751B651B751B651 |
D755B651D755D751D755D755D751D755F755D755F755D755F755F859F755F855 |
F859F755185A185AF755185A3852D707F703F703D703DE481E5C343C93493967 |
7C73FF7FFF7F1F6E1F5C3F543817D703F803D707584E185A185AF859185AF755 |
F859185AF755F855F755F859F755D755F855D755D755D755D751D755D755D751 |
B651D755B751B6519349E8204510451045144510451045144510451045104514 |
45104510451045104510451045104510451045104510451045104614754D7549 |
554975491617F703F703F703F703F703F703D707953555493445344555451617 |
F703F703F703770B534133413445144514451445CD2C25102510440C2510240C |
2510240C2510440C25108C281341144513418C282510440C2510440C2510440C |
2510240C251045108C2814451445144514451445144514453445144534453445 |
3445344534453445344534453549344555493445554934455549554955495549 |
55495549754D5549754D5549754D7549754D754D764D754D964D754D964D754D |
964D9651964D9651964D9651964DB6519651B651B651B751B651B751B651B751 |
D651B755D751D755D751D755D751D755D755F755D755F755F755F855F755F859 |
F755F859185AF755185AF859185A18563723F703F703D7033D411E581A4C7549 |
D85E5B6FDE7BFF7FFF7FFF7F9F691F5C1F58B91EF703F703970F3856185A185A |
185AF755185AF755F859F755F859F755F755F755F755D755F755D755D755D755 |
D755D751D755D751B651D755B651B751B651B651B751B651B6519651B751964D |
B651964D9651964D9651964D954D964D754D964D754D764D754D754D764D754D |
754D554975493817F703F703F703F703F703F703D70795355549554934455549 |
344555491617F703F703F7039707953534453445344534453445144534451445 |
3445144514453445144514451445144514451445144514451445144514451445 |
1445144514453445144534451445344534453445144534453445344534453445 |
344534453549344534453549344555493445554955495549554955495549554D |
5549754D5549754D5549754D7549754D764D754D764D754D964D754D964D754D |
964D9651954D9651964D9651964DB6519651B651B751B651B751B651B651B751 |
D651B755D751B755D651D755D755D755D755F755D755F755F755F755F859F755 |
F855185AF755185AF755185A185A185A185AD72AF703F7039707DE481E5C1A50 |
0D31D85E9D77BE7BDE7BFF7FFF7FFF7FFF7FFF6D1F5C1F5C7C35D703F703970F |
3852185A185A185A185A185AF755185AF755F859F755F859F755F755F755D755 |
F755D755D755D755D751D755D755D751B755D651B751D755B651B751B651B651 |
B651B65196519651B64D9651964D9651964D964D9651954D764D954D764D754D |
964D754D954D9541970FD703F703F803F703F703F703970B9541554955495549 |
55495549554955495549362EF703F703F703D703362E34453445344534453445 |
3549344534453445344534453445344534453445344534453445344534453445 |
3445344534453445344534453445344534453445344534453549344534453549 |
344555493445554934455549554955495549554955495549554D5549554D7549 |
5549754D5549754D7549754D754D754D754D764D954D764D954D764D954D9651 |
964D9651964D9651964D9651B64D9651B6519651B651B651B751B651B751B651 |
D751B755D651D755D751D755D751D755D755F755D755F755D755F755F855F755 |
F859F755185AF859F755185AF859185A185A185AD72AF703F703B91E3F541F5C |
1A4C0D315B6FBD77DF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F9F763E5C1F5C7E50 |
B91EF703970B584E185A185A185AF755185A185AF755185AF755F859F755F859 |
F755F755F755D755D755F755D755D755D755D751D755D751D755B651B751D651 |
B755B651B751B651B651B751B6519651B6519651964D9651964D9651964D9651 |
954D964D954D764D9541970BF703F703F703F703F703F703970F95417549554D |
75495549554D5549554955495549554D362ED703F703F703D703B91E34455549 |
5549554934455549344555493445354934455549344535493445354934453445 |
3549344555493445354934455549344535493445554934455549554934455549 |
55495549554955495549554955495549554955495549554D75495549754D5549 |
754D7549754D764D754D754D764D754D964D754D964D754D964D9651954D964D |
9651964D9651964D9651964DB6519651B651B651B751B651B751B651B751D651 |
B751D755B651D755D751D755D755D755D755F755D755F755F755F755F859F755 |
F859F755185AF755185AF755185A185A185A185A18563723F80397077C391F5C |
1F601438AE39BD77FF7FDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F7E77 |
DF641F5C1F5C3D413817D703B83A185A185A185A185AF859185AF755185AF755 |
F859F755F755F859F755F855F755F755D755F755D755D755D755D755D751D755 |
D751D755B651B751D651B755B651B751B651B651B651B751B65196519651B64D |
9651964D9651964D9651F63DD707F703F703F703F703F703D703970F9541754D |
764D754D754D754D754D7549754D7549554D75495549F63DD707F703F703F703 |
1617754555495549554955495549554955495549554955495549554955495549 |
5549554955495549554955495549554955495549554955495549554955495549 |
5549554D554955495549754D55495549754D5549754D7549754D754D7549754D |
764D754D754D764D754D754D964D754D964D764D954D964D9651964D9651964D |
9651964D9651964DB6519651B651B751B651B651B751B651B751B651B751D651 |
B755D651D755D751D755D755D755D755F755D755F755D755F755F855F755F859 |
F755F859F755185AF755185AF859185A185A185A185A584E970FB803392E1F58 |
1F5C1D588C28B656FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7F7F725F5C1F5C1F5C3D41381738175852185A185A185A185AF859 |
185AF8591856185AF859F755F859F755F755F859F755F755F755D755D755F755 |
D755D755D755D751D755D751D755B651D751B651B751B651B751B651B651B751 |
B651B6519651B7519651964DF63DD703F703F703F803F703F703F70378177549 |
964D954D764D954D764D754D954D764D754D754D754D754D764D754D9541770B |
F703F703F703770B95417549754D5549754D5549754D55495549754D55495549 |
754D55495549754D5549554D75495549554D75495549754D55497549554D7549 |
754D7549554D7549754D7549754D754D7549754D764D754D754D754D764D754D |
754D764D954D764D954D764D954D964D9651954D9651964D9651964D9651964D |
9651964DB6519651B651B651B651B751B651B651B751B651B751D651B755D651 |
D755D751D755D751D755D755D755D755F755D755F755F855F755F755F859F755 |
F859F755185AF755185AF859185A185A185A185AF859185AD72A970F392E1F58 |
1F5C1F5C1438EF3DBD77FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FDF7F1F6E3E5C1F5C1F5CDE48392ED72A1856185A |
185A185A185A185AF859185AF755185A185AF755F859F755F859F755F755F855 |
F755F755D755F755D755D755D755D755D755D751D755D751D755B751D651B755 |
B651B751D651B751B651B651B651B83AD703D703F703F703F703F703F7033817 |
B64D9651964D9651964D9651954D964D9651764D954D764D954D764D754D964D |
754D964D970FD703F703F703D707F63D7549754D764D7549754D764D754D754D |
764D754D754D754D754D754D754D7549754D754D754D764D754D754D754D754D |
754D764D754D754D754D764D754D754D764D754D754D964D754D964D754D964D |
754D964D964D9651954D9651964D9651964D9651964D9651964DB6519651B651 |
9651B651B651B651B651B751B651B751B651B751B651D751B755D651D755D751 |
D755D751D755D755D755D755F755D755F755F755F755F755F859F755F859F755 |
185AF755185AF8591856F859185A185A185A185A185A185AB83AB91E7C391F58 |
1F5C1E5C153C71397B6FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBF7F3F725F5C1F5C1F5C3F54 |
3D41DA4D1856185A185A185A185A185A185AF859185AF755185AF755185AF755 |
185AF755F859F755F855F755F755F755D755D755F755D755D755D755D755D751 |
D755D751D755D651B755B651B651B755D72AD703F703F703F703F703F803F703 |
1617B651B651964DB6519651964D9651964D9651964D9651964D9651964D9651 |
964D9651954D964D964D970FD703F703F703D703D72A754D9651754D964D754D |
964D754D764D954D764D754D964D754D764D954D764D754D964D754D964D754D |
964D754D964D754D964D954D764D954D964D9651964D954D9651964D9651964D |
964D9651964D9651964D9651964D9651964DB6519651B651B6519651B651B651 |
B651B651B751B651B751B651B751B651D755B651D755D651D755D751D755D751 |
D755D755D755D755D755F755D755F755F755F755F855F755F859F755185AF755 |
185AF755185AF859185A185A185A185A185A185A185A185AF9517C399D541F58 |
1F5C1E58343C52417B6FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBF76 |
1F651F5C1F5C1F5C3E5CFB58F859185A185A185A185A185A185A185AF859185A |
F859185AF755185AF755F859F755F859F755F859F755F755F855F755D755F755 |
D755D755D755F755D755D755D751F74DB83A970FD703F703F803F703F703F703 |
F703F703D72AB651B751B6519651B651B651B751B651B6519651B651B6519651 |
9651B64D96519651964D9651964D3723D703F703F803F703F703970F362EB64D |
964D964D954D9651964D964D9651964D9651964D964D9651964D9651964D964D |
9651964D964D9651964D9651964D9651964D9651964D9651964D9651964D9651 |
964D9651B6519651B6519651B651B651B651B751B651B651B651B751B651B751 |
B651B751B651B751D651B755D651B751D755D751D755D751D755D751D755D755 |
D755D755F755D755F755F755F755F755F859F755F859F755F859F755185AF859 |
F755185A185AF859185A185A185A185A185A185A185AF8597A595E581E5C1F5C |
1F5C1A50B340334E9C73FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7F9F7F5F72DF641F5C1F5C1F5CBD587A59185A185A185A185A185A |
185A185A185A185AF859185AF859185AF755185AF755185AF755185AF755F755 |
F859F755F755F755F755F755183ED707D703F703F703F703F703F703F703F703 |
F803F703F703F703F703D703D707D7077817B651B751B651B751B651B651B751 |
B651B651B651B651B651970FD707D707D703F703F703F703F703F703F703F703 |
F703F703D703D707D72A964D96519651B64D96519651B64D96519651B651964D |
9651B6519651964DB6519651B6519651B64D9651B651B651B6519651B651B651 |
B651B751B651B651B651B751B651B651B751B651B651B751B651B751D651B751 |
D755B651D751D755D751D755D751D755D751D755D755D755D755D755F755D755 |
F755F755F755F755F755F855F755F859F755F859F755185AF755185AF859185A |
F755185A185A185A185A185A185A185A185A185A185AB959FB583E5C1E5C1F5C |
1B50343C9349F75EFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F9F7F5F721F653E5C1F5C3E5CBD589A59 |
F859185A185A185A185A185A185A185A185A185A185AF859185AF755185AF859 |
F755185AF859F755185AF755F859F755B83AF703F703F703F703F703F703F703 |
F703F703F703F703F803F703F703F703F703F703970FD751D755D751D751D651 |
B755D751B651B751D755B651B751D707F703F703F703F703F703F703F703F703 |
F703F703F703F703F703F703D72AB651B651B651B751B651B651B651B751B651 |
B651B651B651B751B651B651B751B651B651B751B651B751B651B751B651B651 |
B751B651B751B651B751D651B755B651D751D755B651D751D755D751D755D751 |
D755D755D755D755D755D755D755D755D755D755F755D755F755F755F755F755 |
F859F755F859F755F859F755F859F755185AF755185AF8591856185AF859185A |
185A185A185A185A185A185A185A185A185A185AB9591B5D5E581E5C1F5C1A4C |
343C9349F75EDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FFF76FF6D |
1F651F5C3E5CBD585B5DF859185AF859185A185A185A185A185A185A185A185A |
185A185AF859185AF755185AF859F755185AF7551856174E3852384E174E3852 |
174E384E174E384E174E174E174E174E174E174E174E174E174ED755D755D755 |
D755D755D755D751D755D755D751D755D755F74D174E174EF74D174EF74D174E |
F74D174EF74DF74D174EF74DF74DF74DF74DB651D751B751D651B755D651B751 |
D751B651D755B751D751B651D751B755D751B651D755D751D755B651D751D755 |
D651D751D755D751D755D751D755D755D751D755D755D751D755D755D755D755 |
D755D755D755F755D755F755D755F755F755F755F859F755F755F859F755F859 |
F755F855F755185AF755185AF859F755185A185AF859185AF859185A185A185A |
185AF755185A185A185A185A185A185AF8597A5DFB583E5C1E5C1A4C343C3445 |
534E3967FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FDF7F3F7B5F727F69BE605F5CFB585B5DB9591856185A185A185A |
185A185A185A185A185A185A185A185A185A185AF859185AF859185AF755185A |
F755185AF755185AF755F859F755185AF755F755F859F755F755F855F755F755 |
F755D755F755F755F755D755F755D755F755D755F755D755D755D755D755D755 |
D755D755D755D755D755D755D755D751D755D755D755D755D751D755D755D755 |
D751D755D755D755D751D755D755D755D755D751D755D755D755D751D755D755 |
D755D755D755D755D755D755D755D755D755F755D755D755F755D755F755F755 |
F755F755F755F755F755F855F755F755F755F859F755F855F755185AF755185A |
F755185AF755185AF859185AF8591856F859185A185A185A185A185A185A185A |
185A185A185A185A185A185AF8597A59FB585E581A50153CD444754975523967 |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7F3F7BBE72FF6D7F695D61 |
FB587A599A59F859185A185A185A185A185A185A185A185A185A185A185A185A |
185A185A185AF859185AF859185AF755185AF859F755185AF859F755185AF755 |
F859F755185AF755F859F755F859F755F755F859F755F755F755F855F755F755 |
F855F755F755F755F755D755F755D755F755D755F755D755F755D755F755D755 |
F755D755F755D755F755D755F755D755F755D755F755D755F755D755F755D755 |
F755000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000} |
SystemMemory = False |
Transparent = True |
TransparentColor = clBlack |
end> |
Left = 424 |
Top = 42 |
end |
end |
/VCL_DELPHIX_D6/SXMedia/SxSample/main.pas |
---|
0,0 → 1,211 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
} |
unit main; |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DirectX, |
SXMovie, SXModPlayer, SXEngine, Menus, DXSounds, DXDraws, MMSystem, DIB; |
type |
TFrmMain = class(TForm) |
MainMenu1: TMainMenu; |
FileMnu: TMenuItem; |
SXShowMnu: TMenuItem; |
SXEngineMnu: TMenuItem; |
SXModPlayerMnu: TMenuItem; |
Exit1: TMenuItem; |
OpenFileItem: TMenuItem; |
PlayItem: TMenuItem; |
StopItm: TMenuItem; |
StartItem: TMenuItem; |
StopItem: TMenuItem; |
OpenFile1: TMenuItem; |
Start1: TMenuItem; |
Stop1: TMenuItem; |
OpenDlg: TOpenDialog; |
SXModPlayer: TSXModPlayer; |
SXEngine: TSXEngine; |
SXMovie: TSXMovie; |
DXSound1: TDXSound; |
DXDraw1: TDXDraw; |
DXImageList1: TDXImageList; |
procedure Exit1Click(Sender: TObject); |
procedure DXDraw1Finalize(Sender: TObject); |
procedure OpenFileItemClick(Sender: TObject); |
procedure OpenFile1Click(Sender: TObject); |
procedure PlayItemClick(Sender: TObject); |
procedure Start1Click(Sender: TObject); |
procedure Stop1Click(Sender: TObject); |
procedure DXSound1Initialize(Sender: TObject); |
procedure SXEngineRender(Sender: TObject); |
procedure StartItemClick(Sender: TObject); |
procedure StopItemClick(Sender: TObject); |
procedure DXDraw1KeyDown(Sender: TObject; var Key: Word; |
Shift: TShiftState); |
private |
{ Private declarations } |
public |
{ Public declarations } |
end; |
var |
FrmMain: TFrmMain; |
implementation |
{$R *.DFM} |
procedure FreeObj(var Obj); |
begin |
if TObject(Obj) <> nil then |
begin |
TObject(Obj).Free; |
TObject(Obj) := nil; |
end; |
end; |
procedure ClearSurfaces; |
begin |
FrmMain.DXDraw1.Surface.Fill(clBlack); |
FrmMain.DXDraw1.Primary.Fill(clBlack); |
end; |
procedure TFrmMain.Exit1Click(Sender: TObject); |
begin |
if SXMovie.Playing then SXMovie.Stop; |
Close; |
end; |
procedure TFrmMain.DXDraw1Finalize(Sender: TObject); |
begin |
if SXEngine.Enabled then SXEngine.Enabled := False; |
end; |
procedure TFrmMain.OpenFileItemClick(Sender: TObject); |
begin |
OpenDlg.Filter := 'All Media Files|*.avi;*.mpg;*.mov|' + |
'AVI (*.avi)|*.avi|MPG (*.mpg)|*.mpg|MOV (*.mov)|*.mov'; |
if OpenDlg.Execute then |
begin |
SXMovie.Filename := OpenDlg.FileName; |
end; |
end; |
procedure TFrmMain.OpenFile1Click(Sender: TObject); |
begin |
OpenDlg.Filter := 'All Media Files|*.mod;*.it;*.s3m;*.xm|' + |
'Mod (*.mod)|*.mod|Impulse Tracker (*.it)|*.it|Scream Tracker (*.s3m)|*.s3m|Fast Tracker (*.xm)|*.xm'; |
if OpenDlg.Execute then |
begin |
SXModPlayer.Filename := OpenDlg.FileName; |
DXSound1Initialize(Sender); |
SXModPlayer.Initialize(nil); |
end; |
end; |
procedure TFrmMain.PlayItemClick(Sender: TObject); |
begin |
if not SXMovie.Playing then |
begin |
if DXDraw1.CanDraw then |
ClearSurfaces; |
SXMovie.DisplayRect(80,60, 400, 300); |
SXMovie.Play |
end |
else |
SXMovie.Stop; |
end; |
procedure TFrmMain.Start1Click(Sender: TObject); |
begin |
SXModPlayer.Play(True); |
end; |
procedure TFrmMain.Stop1Click(Sender: TObject); |
begin |
SXModPlayer.Stop; |
end; |
procedure TFrmMain.DXSound1Initialize(Sender: TObject); |
var fmt:TWaveFormatEx; |
begin |
with Fmt do |
begin |
wFormatTag := WAVE_FORMAT_PCM; |
nSamplesPerSec := 44100; |
nChannels := 2; |
wBitsPerSample := 16; |
nBlockAlign := wBitsPerSample div 8 * nChannels; |
nAvgBytesPerSec := nSamplesPerSec * nBlockAlign; |
end; |
// must be in exclusive to set the format |
DXSound1.Options := DXSound1.Options + [soExclusive]; |
DXSound1.Primary.SetFormat(Fmt); |
end; |
procedure TFrmMain.SXEngineRender(Sender: TObject); |
var Angle: Integer; |
begin |
Angle := 0; |
if DXDraw1.CanDraw then |
begin |
DXDraw1.Surface.Fill(clBlack); |
with DXImageList1.Items[0] do |
DrawWaveX(DXDraw1.Surface,160,50,Width,Height, 0, 5, 80, Angle*4); |
with DXDraw1.Surface.Canvas do |
begin |
try |
Brush.Style := bsClear; |
Font.Color := clWhite; |
Font.Size := 8; |
Textout(5, 5, 'Frames Per Sec : ' + IntToStr(SXEngine.FramesPerSecond)); |
finally |
Release; |
end; |
end; |
DXDraw1.Flip; |
Inc(Angle); |
end; |
end; |
procedure TFrmMain.StartItemClick(Sender: TObject); |
begin |
if DXDraw1.CanDraw then ClearSurfaces; |
SXEngine.Enabled := True; |
end; |
procedure TFrmMain.StopItemClick(Sender: TObject); |
begin |
SXEngine.Enabled := False; |
end; |
procedure TFrmMain.DXDraw1KeyDown(Sender: TObject; var Key: Word; |
Shift: TShiftState); |
begin |
if Key = VK_ESCAPE then Close; |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SxSample/MPPSDK.DLL |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/SXMedia/SxSample/SXMedia.dpr |
---|
0,0 → 1,14 |
program SXMedia; |
uses |
Forms, |
main in 'main.pas' {FrmMain}; |
{$R *.RES} |
begin |
Application.Initialize; |
Application.Title := 'SXMedia - Example Project'; |
Application.CreateForm(TFrmMain, FrmMain); |
Application.Run; |
end. |
/VCL_DELPHIX_D6/SXMedia/SxSample |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/SXMedia/MpSndSys.pas |
---|
0,0 → 1,237 |
(* |
* This unit is free software; you can redistribute it and modify it |
* under the terms of the GNU Library General Public License as published |
* by the Free Software Foundation; either version 2 of the license or |
* (at your option) any later version. |
* |
* Author of CPP header file : Olivier Lapicque <olivierl@jps.net> |
* Author of Delphi conversion : Dean Ellis <Dean_Ellis@sillex.freeserve.co.uk> |
* |
* NOTE : The Origonal C++ Class declarations anc constants have been left in place |
* |
*) |
unit MpSndSys; |
interface |
uses Windows,Classes; |
const |
//#ifndef MPP_SND_SYS_H |
//#define MPP_SND_SYS_H |
//#ifndef MPPDLLEXPORT |
//#define MPPDLLEXPORT |
//#endif |
//#define MPPAPI __stdcall |
//#define MPPCDECL __cdecl |
//#define MPPAPI_VERSION 0x0140 |
//#define MPPAPI_VERSION 0x0140 |
MPPAPI_VERSION = $0141; |
// Version-specific functions |
//#define MPPVERSION_HAS_NAVIGATION 0x0139 |
//#define MPPVERSION_HAS_SONGTIME 0x0141 |
MPPVERSION_HAS_NAVIGATION = $0139; |
MPPVERSION_HAS_SONGTIME = $0141; |
// Error codes |
//typedef long MPPERR; |
// |
//enum { |
// MPPERR_NOERROR=0, |
// MPPERR_FAILED, |
// MPPERR_INVALIDPARAM, |
//}; |
//enum { |
// MPPSONG_INVALID=0, |
// MPPSONG_MOD, |
// MPPSONG_S3M, |
// MPPSONG_XM, |
// MPPSONG_IT, |
// MPPSONG_MDL, |
// MPPSONG_UNKNOWN=100 |
//}; |
MPPERR_NOERROR = 0; |
MPPERR_FAILED = 1; |
MPPERR_INVALIDPARAM = 2; |
MPPSONG_INVALID = 0; |
MPPSONG_MOD = 1; |
MPPSONG_S3M = 2; |
MPPSONG_XM = 3; |
MPPSONG_IT = 4; |
MPPSONG_MDL = 5; |
MPPSONG_UNKNOWN = 100; |
// Mixer Options MPPMIX_XXXX |
//#define MPPMIX_NORESAMPLING 0x01 // Faster, but crappy quality |
//#define MPPMIX_BASSEXPANSION 0x02 // Bass Expansion |
//#define MPPMIX_SURROUND 0x04 // Surround Encoding |
//#define MPPMIX_REVERB 0x08 // Reverb |
//#define MPPMIX_LOOP 0x10 // Loop the song (backward jumps will be enabled) |
//// v1.40+ flags |
//#define MPPMIX_HIGHQUALITY 0x20 // HQ mixing (better resampling, dithering enabled) |
//#define MPPMIX_GAINCONTROL 0x40 // Automatic Gain Control |
//#define MPPMIX_NOISEREDUCTION 0x80 // Noise reduction (-6dB 22kHz lowpass filter) |
MPPMIX_NORESAMPLING = $01; // Faster, but crappy quality |
MPPMIX_BASSEXPANSION = $02; // Bass Expansion |
MPPMIX_SURROUND = $04; // Surround Encoding |
MPPMIX_REVERB = $08; // Reverb |
MPPMIX_LOOP = $10; // Loop the song (backward jumps will be enabled) |
// v1.40+ flags |
MPPMIX_HIGHQUALITY = $20; // HQ mixing (better resampling, dithering enabled) |
MPPMIX_GAINCONTROL = $40; // Automatic Gain Control |
MPPMIX_NOISEREDUCTION = $80; // Noise reduction (-6dB 22kHz lowpass filter) |
type |
//========================== |
//class MPPDLLEXPORT IModMixer |
//========================== |
(* { |
public: |
// Reference count: the initial reference count is 1, so you shouldn't have to call AddRef() |
virtual unsigned long MPPAPI AddRef() = 0; |
virtual unsigned long MPPAPI Release() = 0; |
// API Version: you should refuse to continue if the returned value is smaller than MPPAPI_VERSION |
virtual unsigned long MPPAPI GetVersion() = 0; |
// Basic I/O Functions |
virtual MPPERR MPPAPI LoadSong(const void *pmemfile, long len) = 0; |
// Songs are always loaded from memory. The pointer pmemfile can be destroyed |
// after the call to LoadSong. You can use memory-mapped files or a pointer returned |
// by LockResource(), or whatever file in memory. |
virtual MPPERR MPPAPI FreeSong() = 0; // Free the memory used by the song |
// Audio Rendering Functions: example: (44100, 2, 16) for 44.1kHz, stereo, 16-bit |
virtual MPPERR MPPAPI SetWaveFormat(long samplespersec, long channels, long bitspersample) = 0; |
// return # of SAMPLES that have been written to the buffer, 0 if end has been reached |
// Note: protect calls to Render() and SetMixerOptions() by a critical section, if they |
// are used in different threads. |
virtual long MPPAPI Render(void *pbuffer, unsigned long bufsize) = 0; |
// Player Configuration: set of MPPMIX_XXXX |
virtual MPPERR MPPAPI SetMixerOptions(unsigned long dwOptions) = 0; |
virtual unsigned long MPPAPI GetMixerOptions() = 0; |
// Song Information |
virtual long MPPAPI GetSongType() = 0; // Return MPPSONG_XXXX |
virtual void MPPAPI GetSongName(char *pszbuf) = 0; // pszbuf must be at least 32-bytes |
////////////////////////////////////////////////////////////////////////////////////// |
// v1.39+: Navigation functions |
// The order is the position in the pattern sequence list: this allows you to |
// jump to a specific part of a song. It can be useful in a game with a song that |
// uses pattern position jump effects (or pattern loops). |
// These function will not be available if GetVersion() returns a value smaller than 0x139 (MPPVERSION_HAS_NAVIGATION) |
virtual unsigned long MPPAPI GetNumOrders() = 0; |
virtual unsigned long MPPAPI GetCurrentOrder() = 0; |
virtual MPPERR MPPAPI SetCurrentOrder(unsigned long neworder) = 0; |
}; |
*) |
MppError = longint; |
PModMixer = ^IModMixer; |
IModMixer = class |
public |
function AddRef:longint; virtual; stdcall; abstract; |
function Release:longint; virtual; stdcall; abstract; |
function GetVersion:longint; virtual; stdcall; abstract; |
function LoadSong(const MemFile:pointer;Length:longint):MppError;virtual; stdcall; abstract; |
function FreeSong:MppError;virtual; stdcall; abstract; |
function SetWaveFormat(SamplesPerSec,channels,bitsPerSample:longint):MppError;virtual; stdcall; abstract; |
function Render(Buffer:pointer;BufferSize:longint):MppError;virtual; stdcall; abstract; |
function SetMixerOptions(dwOptions:longint):MppError;virtual; stdcall; abstract; |
function GetMixerOptions:longint;virtual; stdcall; abstract; |
function GetSongType:longint;virtual; stdcall; abstract; |
procedure GetSongName(Buffer:PChar);virtual; stdcall; abstract; |
function GetNumOrders:longint;virtual; stdcall; abstract; |
function SetCurrentOrder(newOrder:longint):MppError;virtual; stdcall; abstract; |
function GetSongLength:longint; virtual; stdcall; abstract; |
end; |
var |
MppSdkLibLoaded:Boolean; |
ModMixer:IModMixer; |
implementation |
const MppSdkLibrary = 'mppsdk.dll'; |
var MppSdkLibHandle:THandle; |
//#define MPP_GETMODAPIFUNCNAME "MPP_GetModAPI" |
//typedef MPPERR (MPPCDECL * MPP_GETMODAPIFUNC)(IModMixer **); |
GetModAPI : function(MODMixer:PModMixer):MppError;cdecl; |
(* |
* |
* To get a pointer to the IModMixer interface, you can use the following functions: |
* |
* HMODULE hMPPSDK = (HMODULE)LoadLibrary("mppsdk.dll"); |
* MPP_GETMODAPIFUNC pFunc = (MPP_GETMODAPIFUNC)GetProcAddress(hMPPSDK, MPP_GETMODAPIFUNCNAME); |
* IModMixer *pMPPAPI; |
* pFunc(&pMPPAPI); |
* ... |
* You can then access the MPP SDK API through the IModMixer interface |
* |
* When you are done: |
* |
* pMPPAPI->Release(); |
* FreeLibrary(hMPPSDK); |
* |
*) |
//#endif // MPP_SND_SYS_H |
{----------------------------------------------------------------------------} |
{InitLibrary - will try to load the Mppsdk.dll and get the ModMixer object} |
{----------------------------------------------------------------------------} |
function InitLibrary:Boolean; |
begin |
Result := False; |
MppSdkLibHandle := LoadLibrary(MppSdkLibrary); |
if MppSdkLibHandle = 0 then |
begin |
Exit; |
end; |
try |
GetModAPI := GetProcAddress(MppSdkLibHandle,'MPP_GetModAPI'); |
GetModAPI(@ModMixer); |
Result := True; |
except |
Result := False; |
end; |
end; |
{----------------------------------------------------------------------------} |
{UnLoadLibrary - Will unload the Mppsdk.dll if it was loaded} |
{----------------------------------------------------------------------------} |
procedure UnLoadLibrary; |
begin |
if MppSdkLibLoaded then |
begin |
FreeLibrary(MppSdkLibHandle); |
end; |
end; |
{----------------------------------------------------------------------------} |
{Automatic initialization and finalization - comment out if you want to |
do this manually} |
{----------------------------------------------------------------------------} |
initialization |
MppSdkLibLoaded:=InitLibrary; |
finalization |
UnloadLibrary; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXAbout.dfm |
---|
0,0 → 1,728 |
object AboutBox: TAboutBox |
Left = 260 |
Top = 194 |
BorderStyle = bsDialog |
Caption = 'About SXMedia' |
ClientHeight = 186 |
ClientWidth = 244 |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
FormStyle = fsStayOnTop |
Position = poScreenCenter |
PixelsPerInch = 96 |
TextHeight = 13 |
object InfoContainer: TPanel |
Left = 0 |
Top = 0 |
Width = 245 |
Height = 153 |
BevelInner = bvLowered |
BevelOuter = bvLowered |
Color = clInactiveBorder |
TabOrder = 0 |
object Version: TLabel |
Left = 7 |
Top = 57 |
Width = 53 |
Height = 13 |
Caption = 'Version 1.0' |
IsControl = True |
end |
object Copyright: TLabel |
Left = 122 |
Top = 57 |
Width = 117 |
Height = 13 |
Caption = 'Copyright SXMedia 1999' |
Transparent = True |
IsControl = True |
end |
object Author: TLabel |
Left = 76 |
Top = 74 |
Width = 87 |
Height = 13 |
Alignment = taCenter |
Caption = 'Author : Dean Ellis' |
end |
object WebSite: TLabel |
Left = 42 |
Top = 92 |
Width = 157 |
Height = 13 |
Caption = 'http://www.sillex.freeserve.co.uk' |
IsControl = True |
end |
object Credits: TLabel |
Left = 42 |
Top = 108 |
Width = 167 |
Height = 40 |
Alignment = taCenter |
AutoSize = False |
Caption = |
'MOD Player Engine provided by'#13#10'Olivier Lapicque <olivierl@jps.ne' + |
't>'#13#10'http://www/jps.net/olivierl/' |
WordWrap = True |
IsControl = True |
end |
object LogoContainer: TPanel |
Left = 13 |
Top = 2 |
Width = 221 |
Height = 53 |
Color = clBlack |
TabOrder = 0 |
object ProgramIcon: TImage |
Left = 6 |
Top = 3 |
Width = 210 |
Height = 45 |
AutoSize = True |
Center = True |
IncrementalDisplay = True |
Picture.Data = { |
07544269746D61700A4A0000424D0A4A0000000000003600000028000000D200 |
00002D0000000100100000000000D44900000000000000000000000100000000 |
000000000000000080000080000000808000800000008000800080800000C0C0 |
C000C0DCC000F0CAA60018081000080000000800080008080800100008001008 |
0800100010001008100010101000180010001808100018081800250018002108 |
18001810100022091D0025102100181818002118180031042700311029003910 |
2D00211821002918210031182900262326003118310039183100352632004A14 |
3B006B0B520066255600493A4600653358006E3261006F4364008B176E00892E |
71008E3375009C3184007E4171008E4279009C39840094468400A5007B00A510 |
7E00A5398400A5398C00A0467F00A0468400A04A8800AD007F00AD108400A542 |
8C00A54A9000C1009000B9229400D6009C00F5349500565256005A5A5A00635A |
5E006363630075566D008452730088567B00A5636B00A55A7300AD637300A552 |
7B008C5A7B0094568400A1568800A0639400AD5A8400AD4A8C00AD528C00AD5A |
8C00AD4A9400AD529400AD5A9400AD529C00AD5A9C00E75A7300E75A7B00EF52 |
7B00EF5A7B00EF4A8400EC4F89009E7A6100B5915C00B8C232007B7179008787 |
8700AF688A00B47B7E00CDAF4000C7CE2F00C0CA4500CE906000CB898000C0B6 |
5B00C4AB7600BDF70000C1F30400C6EF0800BDF70800C6F70800BDFF0000BDFF |
0800C6FF0000C0E41000C1DE1800BDF31000CED62100C0E91800BDE22100C4E1 |
2D00D600A500D608A500DE00A500DE08A500E700A500DE00AD00EB00AD00EF00 |
B500F700B500F708B500F700BD00FF00B500FF08B500FF00BD00FF00C600E221 |
B100F721A500F714B900FF10B100FB10BD00FF08C600FC18C300EC29AF00EF2D |
B500E241B700F92DC700FF39CE00E246BD00FF46D200A57B9C00AD639C00AD6B |
9C00AD739C00B55A9C00B5639C00B56B9C00B563A500B56BA500B573A500BD7B |
9C00BD5AA500BD6BA500BD73A500BD6BAD00D6739C00C66BAD00BD73AD00BD7B |
AD00C67BAD00D65AB500D663B500CE6BB500CE73B500D66BB500D65ABD00DE52 |
BD00EF52C600FF5AD600FF67DA009C8C9C009C949C00AD8CA900AD94AD009C9C |
9C00A59C9C00AD9CA500AD9CAD00B594AD00B59CAD00BD849C00C6849C00C68C |
9C00C6949C00C68CA500C694A500C684AD00C68CAD00C67BB500C684B500CE7B |
A500CE7BB500CE84BD00D68CC600E794CE00FF7BDE00FF84DE00FF84E700FF8C |
E700FF94E700B4B0B200C8B7C100D3CCD000E6B9D600DED6DE00E7D6E700EFD6 |
E700FF9CE700FFA5EF00F7ADE700FFADEF00FFBDEF00F7CEEF00FFCEF700DEDE |
DE00E7DEE700E7E7E700EFDEE700FFD6F700EFDEEF00EFE7EF00FBDEF300FFE7 |
FF00EFEFEF00F7EFF700FFEFFF00F7F7F700FFF7FF00FFFFFF00F0FBFF00A4A0 |
A000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF |
FF00FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B |
BD779C739C733967F75EB656734E1042EF3DEF3DAE398B2DAE398B2D8B2D8B2D |
E820E82084108410420800000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000002104 |
420884108614E8204A298B2DAE391042B656B656F75EB656F75E734E744EF75E |
3967BD777B6F9C739C73BD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BBD77BD779C73 |
9C735B6F9C73F75EB656B6561042AE398B2D4A294208E8204208841084100000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000000042088614E8206A29 |
8B2DEF3D744E734EB656F75E39677B6F9C73BD77BD77DE7BFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7B9C739C737B6F7B6F |
F75EB656744E10428B2DE820E82042088614430C240C440C0000240C25100208 |
010002080208030845108614E820E820CC280D310D314E355035503550395039 |
7139503950397139503971395039713950395039713950397139503971397139 |
5039713950397139713971395039713950397139503971395039713950397139 |
5039503950395039503971395039503971395039503950397139503971395039 |
7139503950395039503971395039503950395039713950395039713950397139 |
5039713950397139503971397139713971397139503971395039713950397139 |
713950397139503971395039503971395039503971395039503950354E350D31 |
0D31CC28E820E82086144514240C020400000000000000000000000000000100 |
02044208430C210484108410E8204A298B2D1042F75EB656F75E39679C73BD77 |
DE7BDE7BFF7FDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7BBD773967F75EB656 |
734EAE394A298410430C430C02080208030C0208030C481848188C285034EF34 |
11393445754DB751185A185A185A185A185A185A185A185A185A185A185A185A |
185A185A185A185A185A185A185A185AF859185A185A185A185AF755185AF859 |
185AF755F859185AF755F859F755F859F755F859F855F755F859F755F855F755 |
F859F755F855F755F855F755F855F755F755F855F755F755F855F755F755F755 |
F755F755F755F855F755F755F855F755F855F755F855F755F855F755F855F755 |
F859F755F855F859F755F859F855F859F755F859F859F755185AF859185AF755 |
185A185AF755185A185A185A185AF859185A185A185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185AF859F859B855764D1445B3405034 |
2C2448180510010400000000000000000000000000002104430CE8206A291042 |
734EF75E39677B6FBD77BD77DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7BFF7F7B6FF75EF75EEF3D |
6B2DE820430C240C0204030C040805102C245034153C7B54FB587A59B959F859 |
185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A |
185A185A185AF859185AF755185AF859F859F755185AF755F859F755F859F755 |
F855F755F855F755F855F755F755F755F855F755F755F755F755F755D755F755 |
F755D755F755D755F755D755F755D755D755F755D755D755F755D755D755F755 |
D755D755F755D755D755F755D755F755D755D755F755D755D755F755D755F755 |
D755F755D755F755F755D755F755F755F755F755F755F755F755F755F855F755 |
F855F755F859F755F859F855F859F755F859185AF859185AF755185A185A185A |
F755185A185A185A185A185A185A185A185A185A185A185A185A185A185A185A |
185A185A185AF8597A59FB587B54354014382C24481801040000000000000000 |
0000420800008614AE39734EB65639673967BD77BD77DE7BDE7BFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BFF7F7B6F3967F75E1042E820 |
4208430C240C020405104818143817441E58BD58FB58B959F859185A185A185A |
185A185A185A185A185A185A185A185A185A185AF859185A185A185AF859185A |
F755185AF859F755F859185AF755F859F755F855F755F859F755F755F755F855 |
F755F755D755F755D755F755D755F755D755D755D755D755D755D755D755D751 |
D755D755D755D755D755D751D755D755D755D751D755D755D755D651D755D755 |
D751D755D755D751D755D755D751D755D755D755D651D755D755D755D755D755 |
D755D755D755D755D755D751D755D755D755D755D755D755D755D755D755F755 |
D755F755D755F755D755F755F755F755F755F755F855F755F855F755F859F755 |
F859F855F859185AF859185AF755185A185A185AF859185A185A185A185A185A |
185A185A185A185A185A185A185A185A185A185AD9597A59BD585E581A50153C |
2C24261400000000020400000000210486148B2D1042F75E39677B6FBD77DE7B |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7BBD779C733967734E4A290000 |
0000000002042C2414381B501F5C5E58FB587A59185A185A185A185A185A185A |
185A185A185A185A185A185A185A185A185A185A185AF859185AF859F859F755 |
F859F755F859F755F755F855F755F755D755F755D755F755D755D755F755D755 |
D755D755D755D755D755D755D755D755D755D751D755D755D651D755B651D751 |
B651B755D755B651B755B751B651B755B651B755B651B755B651B751B651B755 |
B651B751B651B751B751B651B751B751B651B751B651B751B751B651D751B751 |
D651B751B751D751B751D651B751D755B651D751D755D751D755D751D755D755 |
D755D755D755D755D751D755D755D755D755D755D755D755F755D755F755D755 |
F755F755F755F755F855F755F855F755F859F855F859F755185AF8591856185A |
185A185AF859185A185A185A185A185A185A185A185A185A185A185A185A185A |
B9591B5D7B541E5C1E58153C2C2405100000000001000000420886148B2DB656 |
39677B6F9C73DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BBD77BD773967F75EEF3D84100000 |
000004082C241A4C1E5C1F5C3E5CFB58B959F859185A185A185A185A185A185A |
185A185A185A185A185A185AF859185AF755185AF755F859F755F859F755F855 |
B83A372337233723372337233723372337233723372337233723372337233723 |
B755D755D755D651D755D751D755B651D751B751D751B651B751B751B751B651 |
B83A372337233723161737233723161737233723161737233723161737233723 |
37231617B83A9651B651B651B651B651B651B651B651B751B651B651B651B751 |
B651B651B651B651B651B651B651B651B751B651B751B651B751B651B751B751 |
B651B751B751D651B751D751B651D755D751D755D751D755D755D755D755D751 |
D755D755D755D755D755D755F755D755F755F755F755F755F755F855F755F859 |
F755F859F859F755185AF8591856185A185AF859185A185A185A185A185A185A |
185A185A185A185A185AF8595B5D5E581E5C1F5C1B5414384818000000000104 |
430886148B2D734EB6563967BD77DE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BDE7B5B6F744EAE3922040104 |
02042C241A4C1F5C1F5C1E5CBD587A59185A185A185A185A185A185A185A185A |
185A185AF859185A185A185AF755F8591856F859F755F859F755F855F755F755 |
F755F755D72AD703F703F703F703F703F703F703F703F803F703F703F703F703 |
F703D707D751B651B751B751B751B651B751B651B751B651B651B651B651B651 |
B651B6513817F703F703F703F703F703F703F703F703F803F703F703F703F703 |
F703F703D703F703D72A964D9651965196519651965196519651964D9651964D |
96519651964D9651964D9651B65196519651B64D9651B6519651B6519651B651 |
B651B651B651B651B651B751B651B651B751B651B751B751B651B751B751D651 |
B751D755D751D755D755D751D755D755D755D755D755D751D755D755F755D755 |
F755F755F755F755F855F755F859F755F859F755F859185A185A185A185A185A |
F859185A185A185A185A185A185A185A185A185AB959FB581E5C1F5C1E581D58 |
14380510040800000000E8204A291042F75E7B6FBD77DE7BFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7BBD777C737B6FAE3984100104 |
4818153C1E5C1F5C1F5C5E58FB58D959185A185A185A185A185A185A185A185A |
185AF859185AF755185AF859F755F859F755F859F755F755F855F755F755D755 |
F755D755D755D755384ED72AD72AD72A970BF703F703F703F703F703F703970F |
D72A362EB83A362ED751B651B651B651B651B651B651B6519651B6519651964D |
96519651964D9651F63D362EB83A362E1617F703F803F703F703F703F703F703 |
F703D703D7071617D72A362EF63D964D964D954D964D964D954D964D964D954D |
9651964D964D954D9651964D9651964D964D9651964D9651964D9651964D9651 |
965196519651964D96519651964DB6519651B6519651B651B651B651B651B651 |
B651B751B651B751B651B751B751B651D751B751D755D651D755D755D755D755 |
D751D755D755D755D755F755D755F755F755F755F855F755F855F755F859F755 |
F859F755185A185A185AF859185A185A185A185A185A185A185A185AF8597A59 |
9D541F5C1F5C1E581A4C2C2402040000020842088614734EF75E7B6FBD77FF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDE7B7C733967734E43080000 |
2C241A4C1F5C1F583F547C39183E3852185A185A185A185A185A185A185A185A |
F859185AF755185AF859F755F859F755F855F755F755F755F755D755D755F755 |
D755D755D755D751D755D755D751D755D751B755D651183E970FF703F703F703 |
F703D72A9651B6519651B651B65196519651B64D965196519651964D96519651 |
964D9651964D964D9651964D964D754D964D964D9541F703F703F703F703F703 |
F703F703D703D72A7549764D754D764D754D764D754D764D754D764D754D764D |
754D764D754D764D754D964D754D764D954D764D764D954D764D964D764D954D |
964D964D964D954D964D964D9651964D9651954D96519651964D96519651964D |
96519651B64D9651B651B651B651B651B651B651B751B651B751B751B651B751 |
D751D651D755B755D751D755D755D755D751D755D755D755F755F755F755F755 |
F855F755F855F859F755F859F755185A185AF859185A185A185A185AF755185A |
185A185A185A183E183E7E501F581E5C1D585034040801004308E8208B2D744E |
39679C73DE7BDE7BFF7FFF7FFF7FFF7FFF7FFF7FFF7FBD773967B656AE390000 |
2C241A4C1F5C1F5C7E50392E3723384E185A185A185A185A185A185A185AF859 |
185AF755185AF859F755F859F755F855F755F755F755D755F755D755D755D755 |
D755D755D751D755D755D751B755D651B751B751B651B751B651B751B6513723 |
D703F703F703F703D72A964D9651964D96519651964D9651964D964D954D764D |
964D954D764D964D754D964D754D764D754D954D764D9541970BF703F703F703 |
F803F703F703D707F63D7549754D754D754D754D754D754D754D7549754D754D |
754D754D754D754D7549754D754D7549754D754D7549754D754D754D754D754D |
754D754D754D754D764D754D764D754D964D764D954D764D964D954D964D964D |
964D9651954D96519651964D96519651964D9651B6519651B651B651B651B651 |
B651B751B651B751B751B651D751B751D755D651D755D755D751D755D755D755 |
D755F755D755F755F755F755F855F755F859F755F859F755185A185AF859185A |
185A185A185A185A185A185A1856D72AB91E7C391F5C1F601E58503405100204 |
86144A29EF3DB6567B6FDE7BDE7BFF7FFF7FFF7FFF7FFF7FBD775B6F55564A29 |
051017441F5C1F5CDE48B91ED707B83AF859185A185A185A185A185AF859185A |
F755185AF859F755F855F755F855F755F755F755D755F755D755D755D755D755 |
D755D751D755D751B755D651B751B651B751B651B751B651B651B651B6519651 |
B6519651D72AD703F703F703F703D72A964D964D954D764D964D954D764D964D |
754D964D754D764D754D754D754D754D754D754D754D75499541D707D703F803 |
F703F703F703F703770B954175495549554D5549554955495549554955495549 |
554D75495549554955495549554D55495549554D55495549754D5549554D7549 |
554D7549554D754D7549754D754D754D754D754D7549754D754D754D754D764D |
754D764D964D754D964D964D954D964D964D9651964D96519651964D96519651 |
964DB6519651B651B651B651B651B751B651B751B651B751D751D755D651B755 |
D751D755D755D755D755D751D755F755F755D755F755F855F755F859F755F859 |
F755185AF859185A185A185A185A185A185A185A38527817770B7C351F581F60 |
1B502C240510030CE820AE39B65639679C73DE7BFF7FFF7FFF7FBE7B5B6F5556 |
124150341F581F5C7E50B91EF80378171856185A185A185A185A185AF859F755 |
185AF859F755F859F755F859F755F755F755D755F755D755D755D755D755D755 |
D751D755D751B755D651B751B651B751B651B751B651B651B651B65196519651 |
B64D9651964D9651964DF63DD703F703F703F7031617964D754D964D754D764D |
754D754D754D754D754D7549754D754D5549754D554975495549F63DD707D703 |
F703F703F703F703F703970F7545554955495549554955495549554955495549 |
5549554955493549554955495549554955495549554955495549554955495549 |
5549554955495549554955495549554955495549554D7549554D754D7549754D |
7549754D754D754D754D754D754D764D754D764D954D764D964D954D964D964D |
9651964D96519651964D96519651B6519651B651B651B651B751B651B751B651 |
B751B651D755D751B755D751D755D755D755D755D755F755D755F755F755F855 |
F755F755F859F755F859185AF755185A185AF755185A185A185A185AD72AD703 |
770B5D391E581F5C153C261404088614AE39744E39679C73BD77FF7FFF7FDE7B |
D85E334135401E581E5C392ED703F703D72A185A185A185AF859185A185AF755 |
F859185AF755F859F755F755F755F755D755F755D755D755D755D755D755D751 |
D755D751B755D651B751B651B751B651B751B651B651B651B65196519651964D |
9651964D9651964D9651954D764D954DF63D970FF703F703F703970F9541754D |
754D7549754D7549754D554D5549554D5549554955495549554D5549F63DD703 |
F703F703F703F703F703D7031617754134453549344535493445354934453445 |
3445344534453445344534453445344534453445344534453445344535493445 |
3549344555493445554935495549554955495549554955495549554955495549 |
5549554D55497549554D754D7549554D754D754D7549754D754D764D754D764D |
754D964D954D764D964D954D9651964D9651964D965196519651B651B651B651 |
B651B651B751B651B751B651D751D755B651D755D751D755D755D755D751D755 |
F755D755F755F855F755F855F755F859F755185AF859185AF859185A185A185A |
185AB83AD707F703B91E7E501E581C5448180408E820AE39744EF75E7B6FFF7F |
DE7B3967EF3417445E587E50590FF703F703D72A185A185A185A185A185AF859 |
F755185AF755F859F755F755F755F855F755D755F755D755D755D755D755D751 |
D755D751B755D651B751B651B751B651B751B651B651B6519651964D96519651 |
964D9651964D9651954D764D964D754D964D754D764D95413817F703F703F703 |
970B954175455549554D5549554955495549554955495549554955493445362E |
D703F703F703F703F703F703F703161734453445344534453445344534453445 |
3445144534453445344534453445144534453445344534451445344534453445 |
3445344534453445344534453445344534453445344535493445354934455549 |
5549344555495549554955495549554955497549554D7549554D754D754D7549 |
754D754D764D754D764D754D964D754D964D954D9651964D9651964D9651964D |
9651B651964DB651B651B751B651B751B651B751D651B755D751D755D651D755 |
D755D755D755D755F755D755F755F755F755F859F755F855F755185A185AF755 |
185A185A185A185A584ED703F703D7037C351F5C1E5C2C2426148614AE39B656 |
F75EFF7FDE7B4E351A501E583D41D703F703F703D72A185A185A185AF859185A |
F755185AF755F859F755F755F755F855D755F755D755D755D755D755D751D755 |
D751B755D651B751B651D651B751B651B651B651B6519651964D96519651964D |
9651964D9651754D964D964D764D954D764D764D754D764D754D754D75491617 |
F703F703F703D707F63D55495549554955493445554955493445354934453445 |
362ED703F703F703F703F703F703F703B91E3341144514453445144514453445 |
1445334114451445144514451445144514453341144514451445144534451445 |
1445144514451445144514453445144534451445344534453445344534453445 |
3445344534453549344535493549554935493445554935495549554955495549 |
55495549754D7549754D7549754D764D754D764D964D764D964D964D964D964D |
9651964D9651965196519651B6519651B6519651B651B751B651B751D651B755 |
D751B755D751D755D751D755D755D755F755D755F855F755F755F859F755F859 |
F755185AF859185AF755185A185A584EF703F703F703392E1F581E5C2C242614 |
E8201042F75EFF7FB6561A4C1E5C3D41D703F703F7037817185A185AF755185A |
185AF755F859F755F859F755F755F855F755D755F755D755D755D755D755D751 |
D755D751B755D651B751B6515341EF340D31EF340D31EF340D310D31EF340D31 |
0D31EF340D310D310D31EF34CD2C0D310D31CD2C0D31CD2C0D31CD2C0D313445 |
7549554D362EF703F703F703D703362E55495549344555493445344534453445 |
3445362EF703F703F703F803F703F703F703362E134114451139CD2C8C288C28 |
CD2C8C288C28B0341445144514451445D34014451445D1388C288C28CC288C28 |
8C288C2811391445144514451445144514451445144514451445334114453445 |
14453445CD2C8C2833413445EF34CD2CEF34CD2CEF34EF34EF34EF34CD2CEF34 |
EF34EF34EF34EF3455491241EF34EF34EF34EF34EF34EF34EF34EF34EF34EF34 |
EF34EF34EF347549965153415035EF3450355341B65150397549B651B651B751 |
B651B751B651D755D6515039503950395241D755F755D755F755F755F855D755 |
F859F755F855F755185AF859185A185AF755185AB83AF703F703F703B91E1F5C |
1C542C24440C6A291042FF7F35491F5CDE48D703F703F703D703584E185AF859 |
185A185AF755185AF755F859F755F755F755F755D755F755D755D755D755D751 |
D755D751B755D651B751D751B651B751E8200000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000240C554955495549F63DD703F703F703D703362E34453445354534453445 |
34451445B91ED703F703F703F703F703F703D703362ED3401445144501040000 |
000000000000000000008C28D340D340D340D340D340D440D340000000000000 |
00000000000000008C28D440D3401445D34014451445D3401445144514451445 |
1445144513414818000000001139D34000000000000000002510461446144614 |
48188614461446144818E8203549CC2800000000000001044614861446144614 |
86140308000000000000E820764D86140000000000000D31964DCC2801045039 |
B651B751B651B751B651D751B7550000000000000000954DD751D755F755D755 |
F755F755D755F859F755F859F755185AF859F755185A185A18567817F703F703 |
F703392E1F5C1A4C0408420810427D771E581F5C590FF703F703F7033723185A |
185A185AF859F755F859F755F859F755F855F755F855D755F755D755D755D755 |
D755D751D755B751D755B651B751B651B651B751E82000000000000000000000 |
00000104754993495549534175495341754953413341EF340000000000000000 |
0000000000000104554955495549344595419707F703F703F703161734453445 |
3445144534451617D703F703F703F703F703F703D703F32DD4401445D340D444 |
00000000000000000000000000004818D444D340D340B340D340B340B3400000 |
0000000000000000000000008C28D340D340D340D340D340D340D440D340D440 |
1445D3401445D138240C00000104CD2C14451241000000000000000034453445 |
344534453445344535495549344555495549CC2800000000000046147549554D |
7549754D754D8C28000000000000E820764D4614000000000000CD2C9651B64D |
EF340104CC28B651B651B651B751B651B75100000000000000009349D755D755 |
D755D755D755F855F755F855F859F755F859F755F859185A1856F859185A584E |
F703F703F703F703DE481E582C2400006A291F6E1F5C7C35F803F703F703F703 |
584E1856185AF859F755185AF755F859F755F755F755F755D755F755D755D755 |
D755D751D755D751B651D755B651B751B651B751B651B751E820000000000000 |
00000000000022049651754D964D954D764D754D754D754D754D754D48180000 |
0000000000000000000001045549554934455549344575411617F703F703F703 |
16175341144533411617F703F703F703F703F703F703D70794311445D340D440 |
D340D34000000000000000000000000000004818D340B340B340B340B340B340 |
D13800000000000000000000000000008C28B340B340D340B340D340D340D340 |
D340D340D340D340CD2C01040000030CD13814451445D1380000000000000000 |
8C28CC288C288C28CC281341344534455549344555498C280000000000004614 |
5549754D5549754D7549E8200000000000004818964D86140000000000000D31 |
964D9651964D53414208240C440C440C86144614861400000000000000009349 |
D755D751D755F755D755F755D755F755F755F755F855F755185AF859F755185A |
185A185A970FF703F703F70338171F5C1A5000008410DF641F5C3817D703F703 |
F703D707185A185AF755185AF859F755F859F755F855F755F855D755F755D755 |
D755D755D755D751D755D751B755D651B751B651B651B751B651B651CC28440C |
430C240C430C240C240C4614954D964D754D764D764D754D764D754D55491139 |
4510000000000000000000000000020455495549344555493445344535451617 |
D703F703F703770B74351617F703F703F703F703F703F70397077435D340D340 |
D340D340D340D34000000000000000000000000000004818B340B340D138B340 |
B340B340B03400000000000000000000000000008C28B340B340B340B340B340 |
D340B340D340D340D3408C28000000004614D3401445D3401445113900000000 |
0000000025104510251045104510134134453549344555493445CC2800000000 |
000046145549754D5549754D554D8C28000000000000E820764D461400000000 |
0000CD2C964D9651964DB651954D861400000000CC28B651B751000000000000 |
00009349D755D751D755D755D755F755D755F855F755F859F755F859F755185A |
F755185AF859185A3723F703F703F803D7037E501F5C040800005F5C1F5CD703 |
F703F703F7037817185AF859185A185AF755185AF755F859F755F755F755F755 |
D755D755D755D755D755D751D755B751D651B755B751B651B751B651B651B651 |
96519651964D9651964D9651964D954D964D754D964D754D5241CD2CE820240C |
0000000000000000000002088614CC2811393445554934453549344534453549 |
34453445362EF703F703F703F703F703F703F703F803F703D703770B5439D340 |
D340D440D340D340D340B34000000000000000000000000000004818B340B340 |
B340B340D138B340503400000000000000000000000000008C28B340B340B340 |
D138B340B340B340D340D1382614000000008C28D340D3401445D3401445D138 |
000000000000000014451445344514453445144534453445344535493445CC28 |
000000000000451455495549554955497549E8200000000000004818954D4614 |
0000000000000D31954D9651964D96519651B651CC28000000008614954D0000 |
0000000000009349D755D751D755D755F755D755F755D755F855F755F859F755 |
F859F755185A185AF859185AD72AF703F703F703F7037C391F5C481800003E5C |
1F5CF803F703F703F8037817F859185A185AF755F859F755185AF755F859F755 |
F859D755D755F755D755D755D755D751D755B651D755B751B651B751B651B651 |
B751B6519651B651964D96519651964D96517549EF34CC284510010400000000 |
0000000001004514CC28EF343341554955495549554955493445554934453549 |
344534453445344534459535D703F703F703F803F703F703F703F703770B133D |
D340D340D340D340D340D340B340D34000000000000000000000000000004818 |
B340D138B3405034B3405034D13800000000000000000000000000008C28D138 |
B340B340B340B340B340B340B034020400000104B034D340D3401445D3401445 |
D340D3400000000000000000CC28CD2C8C28CD2CCD2CCD2CCD2CCD2CCD2CCD2C |
3549CC28000000000000240CCC28CC28CC28CC28CC280000000000000000E820 |
764D4614000000000000CD2C964D9651964D9651B651964DB651503901040000 |
020800000000000000009349D755D751D755D755D751F755D755F855F755D755 |
F855F755F8591856F859F755185A185AB83AF703F703F703F7037C351F5C4818 |
02085F5C1F5C9707F703F703F703970F185A185A185AF755185AF859F755F755 |
F855F755F755D755F755D755D755D755D755D751D755B751D755B651B751D651 |
B751B651B651B751B6519651964D5241CC288614030C00000000000000000000 |
240CE820CD2C3341754D7549554D55495549554D554955495549344555493445 |
5549344534453445344534451445F32DB803F703F703F703F703F703F7031617 |
133DD444D3401445D340D444D340D340D340B340000000000000000000000000 |
00004818B340B340D138B340D138B3408C280000000000000000000000000000 |
8C28B340B340D138B340B340B3408C2800000000240CD138D444D340D340D340 |
1445D3401445D340CD2C8C288C28CC288C288C28CC288C28CC288C28CC28CC28 |
CD2CCD2C35491139CD2CCC28CD2CCC28CD2CCC28CD2CCD2CCD2CCD2CCD2CCD2C |
0D313341954D33410D31CD2C0D3152419651964D9651964D9651B6519651B651 |
75490D310D310D31EF340D315035B755D651D755D755D755F755D755F755D755 |
F755F859F755F859F755F859F755185A185AF755D72AF703F803F703F7033D41 |
1F5C2614E8207F691F5C392EF803F703F703D7031856185AF859185AF755F859 |
F755F859F755F755F855D755F755D755D755D755D751D755D755D751B651D751 |
B651B755B651B751B6519651EF34440C0000000000000000000000008614CD2C |
5039554D964D754D754D764D7549754912410D31EF34CD2CEF34CD2CEF34EF34 |
34455549344535493445344534453445362ED703F703F703F703F703F703F703 |
D70394311445D3401445D340D340D340D340D340D340D3400000000000000000 |
0000000000004818B340B340B340B340B3404818000000000000000000000000 |
000000008C28B340B340B340D340B3404818000000004818D340D340D340D440 |
D3401445D3401445D34014451445334114451445144534451445344534453445 |
35493445344555493445554934455549554955495549554D7549554D7549754D |
754D7549764D954D764D954D764D9651754D964D9651964D96519651B64D9651 |
B751B651B651B751B651D755B651D751B755D751D755D755D751D755D755D755 |
F855F755F855F755F755F859F755185AF8591856F859185A3723F703F703F703 |
D7031F581E5C0204AE39BF761F5CDE48D703F803F703F703B83A185A185AF859 |
F755185AF755F859F755F859F755F755D755F755D755D755D755D755D751D755 |
B751D755B651D751B651B651B751B651E8200000000000000000000000000204 |
9651954D764D964D754D754D764D754D764D754D8C2800000000000000000000 |
000001045549554934453549554934453445362EF703F703F703F803F703F703 |
F703F703F703D703362ED34014451341D444D3401445D340D444D34000000000 |
000000000000000000004818D444D340B340D138261400000000000000000000 |
00000000000000008C28B340D340B340D138240C000000008C28D340D444D340 |
1445D3401445D444134114451445144514451445144534451445344534453445 |
34453445344535495549344555495549554955495549554D5549754D5549754D |
7549754D754D764D754D764D954D764D954D964D9651964D9651964D9651B64D |
9651B6519651B651B751B651B751B651D755B751D755D651D755D751D755F755 |
D755F755F755D755F755F755F859F755F859185AF755185AF8593852D707F703 |
F703F803392E1F58153CE820534EFF7FBE601F5C392EF803F703F7037817185A |
F755185A185AF755F8591856F755F755F755F755F855D755F755D755D755D755 |
D751D755D755B651D751B755B651B751B651B651E82000000000000000000000 |
000000005241964D954D9651954D764D954D754D754D754DE820000000000000 |
0000000000000104554955495549554934453549362EF703F703F703F703F703 |
F703D803362ED707F703F703D703362E1341144513411445D3401445D3401445 |
00000000000000000000000000004818D340D340B0340208000001048C280000 |
0000000000000000000000008C28D340D440CD2C020400000208B034D3401445 |
D3401445D3401445144513411445144514451445144534451445344534453445 |
3445344534453549554934455549344555495549554955495549754D5549754D |
5549754D754D754D764D754D964D754D964D754D9651964D9651964D9651964D |
B6519651B751B651B651B751B651B751B651D751B755D651D755D751D755D755 |
D755D755F855F755D755F755F859F755F859F755185AF755185A185A185AB83A |
F703F703F70397073F541F5C8C28F44DB656FF7FFF761F5C1F583817D703F703 |
F703B83A185A185AF859F755185AF755F859F755F859F755F755F755D755F755 |
D755D755D755D751D755D751D755B651D751B651B751B651CC28000000000000 |
00000000000000000000240C4510451045104510451045144510451001040000 |
000000000000000000000104554955495549554955491617D703F703F703F803 |
F703F703D703F32D35497541770BF703F703F703161713411445144514451445 |
134114450000000000000000000000000000240C4818461400000000240CD340 |
D3400000000000000000000000000000240C48184614000000004510D3401341 |
1445144513411445144514451445144514451445344534453445344534453445 |
34453445354955493445554934455549554955495549554D5549754D5549754D |
5549754D754D7549764D754D964D754D964D754D964D9651954D9651964D9651 |
964DB6519651B651B651B651B751B651B751B651D755B651D755D751D755D755 |
D751D755F755D755F755D755F755F859F755F855F859F755185A185AF755185A |
3852D707F703F703D703DE481E5C343C934939677C73FF7FFF7F1F6E1F5C3F54 |
3817D703F803D707584E185A185AF859185AF755F859185AF755F855F755F859 |
F755D755F855D755D755D755D751D755D755D751B651D755B751B6519349E820 |
4510451045144510451045144510451045104514451045104510451045104510 |
45104510451045104510451045104614754D7549554975491617F703F703F703 |
F703F703F703D707953555493445344555451617F703F703F703770B53413341 |
3445144514451445CD2C25102510440C2510240C2510240C2510440C25108C28 |
1341144513418C282510440C2510440C2510440C2510240C251045108C281445 |
1445144514451445144514453445144534453445344534453445344534453445 |
354934455549344555493445554955495549554955495549754D5549754D5549 |
754D7549754D754D764D754D964D754D964D754D964D9651964D9651964D9651 |
964DB6519651B651B651B751B651B751B651B751D651B755D751D755D751D755 |
D751D755D755F755D755F755F755F855F755F859F755F859185AF755185AF859 |
185A18563723F703F703D7033D411E581A4C7549D85E5B6FDE7BFF7FFF7FFF7F |
9F691F5C1F58B91EF703F703970F3856185A185A185AF755185AF755F859F755 |
F859F755F755F755F755D755F755D755D755D755D755D751D755D751B651D755 |
B651B751B651B651B751B651B6519651B751964DB651964D9651964D9651964D |
954D964D754D964D754D764D754D754D764D754D754D554975493817F703F703 |
F703F703F703F703D70795355549554934455549344555491617F703F703F703 |
9707953534453445344534453445144534451445344514451445344514451445 |
1445144514451445144514451445144514451445144514451445344514453445 |
1445344534453445144534453445344534453445344534453549344534453549 |
344555493445554955495549554955495549554D5549754D5549754D5549754D |
7549754D764D754D764D754D964D754D964D754D964D9651954D9651964D9651 |
964DB6519651B651B751B651B751B651B651B751D651B755D751B755D651D755 |
D755D755D755F755D755F755F755F755F859F755F855185AF755185AF755185A |
185A185A185AD72AF703F7039707DE481E5C1A500D31D85E9D77BE7BDE7BFF7F |
FF7FFF7FFF7FFF6D1F5C1F5C7C35D703F703970F3852185A185A185A185A185A |
F755185AF755F859F755F859F755F755F755D755F755D755D755D755D751D755 |
D755D751B755D651B751D755B651B751B651B651B651B65196519651B64D9651 |
964D9651964D964D9651954D764D954D764D754D964D754D954D9541970FD703 |
F703F803F703F703F703970B954155495549554955495549554955495549362E |
F703F703F703D703362E34453445344534453445354934453445344534453445 |
3445344534453445344534453445344534453445344534453445344534453445 |
3445344534453445344534453549344534453549344555493445554934455549 |
554955495549554955495549554D5549554D75495549754D5549754D7549754D |
754D754D754D764D954D764D954D764D954D9651964D9651964D9651964D9651 |
B64D9651B6519651B651B651B751B651B751B651D751B755D651D755D751D755 |
D751D755D755F755D755F755D755F755F855F755F859F755185AF859F755185A |
F859185A185A185AD72AF703F703B91E3F541F5C1A4C0D315B6FBD77DF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7F9F763E5C1F5C7E50B91EF703970B584E185A185A |
185AF755185A185AF755185AF755F859F755F859F755F755F755D755D755F755 |
D755D755D755D751D755D751D755B651B751D651B755B651B751B651B651B751 |
B6519651B6519651964D9651964D9651964D9651954D964D954D764D9541970B |
F703F703F703F703F703F703970F95417549554D75495549554D554955495549 |
5549554D362ED703F703F703D703B91E34455549554955493445554934455549 |
3445354934455549344535493445354934453445354934455549344535493445 |
5549344535493445554934455549554934455549554955495549554955495549 |
55495549554955495549554D75495549754D5549754D7549754D764D754D754D |
764D754D964D754D964D754D964D9651954D964D9651964D9651964D9651964D |
B6519651B651B651B751B651B751B651B751D651B751D755B651D755D751D755 |
D755D755D755F755D755F755F755F755F859F755F859F755185AF755185AF755 |
185A185A185A185A18563723F80397077C391F5C1F601438AE39BD77FF7FDE7B |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F7E77DF641F5C1F5C3D413817D703 |
B83A185A185A185A185AF859185AF755185AF755F859F755F755F859F755F855 |
F755F755D755F755D755D755D755D755D751D755D751D755B651B751D651B755 |
B651B751B651B651B651B751B65196519651B64D9651964D9651964D9651F63D |
D707F703F703F703F703F703D703970F9541754D764D754D754D754D754D7549 |
754D7549554D75495549F63DD707F703F703F703161775455549554955495549 |
5549554955495549554955495549554955495549554955495549554955495549 |
55495549554955495549554955495549554955495549554D554955495549754D |
55495549754D5549754D7549754D754D7549754D764D754D754D764D754D754D |
964D754D964D764D954D964D9651964D9651964D9651964D9651964DB6519651 |
B651B751B651B651B751B651B751B651B751D651B755D651D755D751D755D755 |
D755D755F755D755F755D755F755F855F755F859F755F859F755185AF755185A |
F859185A185A185A185A584E970FB803392E1F581F5C1D588C28B656FF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F7F725F5C1F5C |
1F5C3D41381738175852185A185A185A185AF859185AF8591856185AF859F755 |
F859F755F755F859F755F755F755D755D755F755D755D755D755D751D755D751 |
D755B651D751B651B751B651B751B651B651B751B651B6519651B7519651964D |
F63DD703F703F703F803F703F703F70378177549964D954D764D954D764D754D |
954D764D754D754D754D754D764D754D9541770BF703F703F703770B95417549 |
754D5549754D5549754D55495549754D55495549754D55495549754D5549554D |
75495549554D75495549754D55497549554D7549754D7549554D7549754D7549 |
754D754D7549754D764D754D754D754D764D754D754D764D954D764D954D764D |
954D964D9651954D9651964D9651964D9651964D9651964DB6519651B651B651 |
B651B751B651B651B751B651B751D651B755D651D755D751D755D751D755D755 |
D755D755F755D755F755F855F755F755F859F755F859F755185AF755185AF859 |
185A185A185A185AF859185AD72A970F392E1F581F5C1F5C1438EF3DBD77FF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
DF7F1F6E3E5C1F5C1F5CDE48392ED72A1856185A185A185A185A185AF859185A |
F755185A185AF755F859F755F859F755F755F855F755F755D755F755D755D755 |
D755D755D755D751D755D751D755B751D651B755B651B751D651B751B651B651 |
B651B83AD703D703F703F703F703F703F7033817B64D9651964D9651964D9651 |
954D964D9651764D954D764D954D764D754D964D754D964D970FD703F703F703 |
D707F63D7549754D764D7549754D764D754D754D764D754D754D754D754D754D |
754D7549754D754D754D764D754D754D754D754D754D764D754D754D754D764D |
754D754D764D754D754D964D754D964D754D964D754D964D964D9651954D9651 |
964D9651964D9651964D9651964DB6519651B6519651B651B651B651B651B751 |
B651B751B651B751B651D751B755D651D755D751D755D751D755D755D755D755 |
F755D755F755F755F755F755F859F755F859F755185AF755185AF8591856F859 |
185A185A185A185A185A185AB83AB91E7C391F581F5C1E5C153C71397B6FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FBF7F3F725F5C1F5C1F5C3F543D41DA4D1856185A185A185A |
185A185A185AF859185AF755185AF755185AF755185AF755F859F755F855F755 |
F755F755D755D755F755D755D755D755D755D751D755D751D755D651B755B651 |
B651B755D72AD703F703F703F703F703F803F7031617B651B651964DB6519651 |
964D9651964D9651964D9651964D9651964D9651964D9651954D964D964D970F |
D703F703F703D703D72A754D9651754D964D754D964D754D764D954D764D754D |
964D754D764D954D764D754D964D754D964D754D964D754D964D754D964D954D |
764D954D964D9651964D954D9651964D9651964D964D9651964D9651964D9651 |
964D9651964DB6519651B651B6519651B651B651B651B651B751B651B751B651 |
B751B651D755B651D755D651D755D751D755D751D755D755D755D755D755F755 |
D755F755F755F755F855F755F859F755185AF755185AF755185AF859185A185A |
185A185A185A185A185A185AF9517C399D541F581F5C1E58343C52417B6FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FBF761F651F5C1F5C1F5C3E5CFB58 |
F859185A185A185A185A185A185A185AF859185AF859185AF755185AF755F859 |
F755F859F755F859F755F755F855F755D755F755D755D755D755F755D755D755 |
D751F74DB83A970FD703F703F803F703F703F703F703F703D72AB651B751B651 |
9651B651B651B751B651B6519651B651B65196519651B64D96519651964D9651 |
964D3723D703F703F803F703F703970F362EB64D964D964D954D9651964D964D |
9651964D9651964D964D9651964D9651964D964D9651964D964D9651964D9651 |
964D9651964D9651964D9651964D9651964D9651964D9651B6519651B6519651 |
B651B651B651B751B651B651B651B751B651B751B651B751B651B751D651B755 |
D651B751D755D751D755D751D755D751D755D755D755D755F755D755F755F755 |
F755F755F859F755F859F755F859F755185AF859F755185A185AF859185A185A |
185A185A185A185A185AF8597A595E581E5C1F5C1F5C1A50B340334E9C73FF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F9F7F5F72DF64 |
1F5C1F5C1F5CBD587A59185A185A185A185A185A185A185A185A185AF859185A |
F859185AF755185AF755185AF755185AF755F755F859F755F755F755F755F755 |
183ED707D703F703F703F703F703F703F703F703F803F703F703F703F703D703 |
D707D7077817B651B751B651B751B651B651B751B651B651B651B651B651970F |
D707D707D703F703F703F703F703F703F703F703F703F703D703D707D72A964D |
96519651B64D96519651B64D96519651B651964D9651B6519651964DB6519651 |
B6519651B64D9651B651B651B6519651B651B651B651B751B651B651B651B751 |
B651B651B751B651B651B751B651B751D651B751D755B651D751D755D751D755 |
D751D755D751D755D755D755D755D755F755D755F755F755F755F755F755F855 |
F755F859F755F859F755185AF755185AF859185AF755185A185A185A185A185A |
185A185A185A185A185AB959FB583E5C1E5C1F5C1B50343C9349F75EFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7F9F7F5F721F653E5C1F5C3E5CBD589A59F859185A185A185A185A185A |
185A185A185A185A185AF859185AF755185AF859F755185AF859F755185AF755 |
F859F755B83AF703F703F703F703F703F703F703F703F703F703F703F803F703 |
F703F703F703F703970FD751D755D751D751D651B755D751B651B751D755B651 |
B751D707F703F703F703F703F703F703F703F703F703F703F703F703F703F703 |
D72AB651B651B651B751B651B651B651B751B651B651B651B651B751B651B651 |
B751B651B651B751B651B751B651B751B651B651B751B651B751B651B751D651 |
B755B651D751D755B651D751D755D751D755D751D755D755D755D755D755D755 |
D755D755D755D755F755D755F755F755F755F755F859F755F859F755F859F755 |
F859F755185AF755185AF8591856185AF859185A185A185A185A185A185A185A |
185A185A185A185AB9591B5D5E581E5C1F5C1A4C343C9349F75EDE7BFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7FFF76FF6D1F651F5C3E5CBD585B5DF859 |
185AF859185A185A185A185A185A185A185A185A185A185AF859185AF755185A |
F859F755185AF7551856174E3852384E174E3852174E384E174E384E174E174E |
174E174E174E174E174E174E174ED755D755D755D755D755D755D751D755D755 |
D751D755D755F74D174E174EF74D174EF74D174EF74D174EF74DF74D174EF74D |
F74DF74DF74DB651D751B751D651B755D651B751D751B651D755B751D751B651 |
D751B755D751B651D755D751D755B651D751D755D651D751D755D751D755D751 |
D755D755D751D755D755D751D755D755D755D755D755D755D755F755D755F755 |
D755F755F755F755F859F755F755F859F755F859F755F855F755185AF755185A |
F859F755185A185AF859185AF859185A185A185A185AF755185A185A185A185A |
185A185AF8597A5DFB583E5C1E5C1A4C343C3445534E3967FF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDF7F3F7B5F72 |
7F69BE605F5CFB585B5DB9591856185A185A185A185A185A185A185A185A185A |
185A185A185A185AF859185AF859185AF755185AF755185AF755185AF755F859 |
F755185AF755F755F859F755F755F855F755F755F755D755F755F755F755D755 |
F755D755F755D755F755D755D755D755D755D755D755D755D755D755D755D755 |
D755D751D755D755D755D755D751D755D755D755D751D755D755D755D751D755 |
D755D755D755D751D755D755D755D751D755D755D755D755D755D755D755D755 |
D755D755D755F755D755D755F755D755F755F755F755F755F755F755F755F855 |
F755F755F755F859F755F855F755185AF755185AF755185AF755185AF859185A |
F8591856F859185A185A185A185A185A185A185A185A185A185A185A185A185A |
F8597A59FB585E581A50153CD444754975523967FF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F |
FF7FFF7FFF7FFF7FDF7F3F7BBE72FF6D7F695D61FB587A599A59F859185A185A |
185A185A185A185A185A185A185A185A185A185A185A185A185AF859185AF859 |
185AF755185AF859F755185AF859F755185AF755F859F755185AF755F859F755 |
F859F755F755F859F755F755F755F855F755F755F855F755F755F755F755D755 |
F755D755F755D755F755D755F755D755F755D755F755D755F755D755F755D755 |
F755D755F755D755F755D755F755D755F755D755F75500000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000} |
Stretch = True |
IsControl = True |
end |
end |
end |
object OKButton: TButton |
Left = 81 |
Top = 158 |
Width = 75 |
Height = 25 |
Caption = 'OK' |
Default = True |
ModalResult = 1 |
TabOrder = 1 |
end |
end |
/VCL_DELPHIX_D6/SXMedia/SXAbout.pas |
---|
0,0 → 1,53 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
} |
unit sxabout; |
interface |
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, |
Buttons, ExtCtrls; |
type |
TAboutBox = class(TForm) |
InfoContainer: TPanel; |
Version: TLabel; |
Copyright: TLabel; |
OKButton: TButton; |
Author: TLabel; |
WebSite: TLabel; |
Credits: TLabel; |
LogoContainer: TPanel; |
ProgramIcon: TImage; |
private |
{ Private declarations } |
public |
{ Public declarations } |
end; |
implementation |
{$R *.DFM} |
end. |
/VCL_DELPHIX_D6/SXMedia/SXEditor.pas |
---|
0,0 → 1,122 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
} |
unit SXEditor; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses Windows, Classes, |
{$IfNDef VER6UP} DsgnIntf, {$Else} Designintf, DesignEditors, {$EndIf} |
Dialogs, SXMovie, SXModPlayer, SXEngine, SXAbout; |
const |
SXMOVIE_FILTER = 'All Media Files|*.avi;*.mpg;*.mov|' + |
'AVI (*.avi)|*.avi|MPG (*.mpg)|*.mpg|MOV (*.mov)|*.mov'; |
SXMODPLAYER_FILTER = 'All Media Files|*.mod;*.it;*.sm3|' + |
'Impulse Tracker (*.it)|*.it|Scream Tracker (*.s3m)|*.s3m|Fast Tracker (*.xm)|*.xm'; |
type |
TFilenameProperty = class(TPropertyEditor) |
function GetAttributes : TPropertyAttributes; override; |
function GetValue : string; override; |
procedure SetValue(const Value : string); override; |
procedure Edit; override; |
end; |
TSXComponentEditor = class(TComponentEditor) |
procedure ExecuteVerb(Index: Integer); override; |
function GetVerb(Index: Integer): string; override; |
function GetVerbCount: Integer; override; |
end; |
implementation |
{--------------------------------------} |
{ TFilename Property Editor } |
{--------------------------------------} |
procedure TFilenameProperty.Edit; |
var |
Dialog : TOpenDialog; |
begin |
Dialog := TOpenDialog.Create(nil); |
with Dialog do |
try |
DefaultExt := 'All Media Files'; |
if GetComponent(0) is TSXMovie then |
Filter := SXMOVIE_FILTER |
else |
if GetComponent(0) is TSXModPlayer then |
Filter := SXMODPLAYER_FILTER |
else |
Exit; |
if Dialog.Execute then |
begin |
SetStrValue(Dialog.FileName); |
Designer.Modified; |
end; |
finally |
Free; |
end; |
end; |
function TFilenameProperty.GetAttributes: TPropertyAttributes; |
begin |
Result := [paDialog]; |
end; |
function TFilenameProperty.GetValue : string; |
begin |
Result := GetStrValue; |
end; |
procedure TFilenameProperty.SetValue(const Value : string); |
begin |
SetStrValue(Value); |
Designer.Modified; |
end; |
procedure TSXComponentEditor.ExecuteVerb(Index: Integer); |
begin |
with TAboutBox.Create(nil) do |
begin |
try |
ShowModal; |
finally |
Free; |
end; |
end; |
end; |
function TSXComponentEditor.GetVerb(Index: Integer): string; |
begin |
Result := 'A&bout SXMedia'; |
end; |
function TSXComponentEditor.GetVerbCount: Integer; |
begin |
Result := 1; |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia/SXReg.dcr |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/SXMedia/SXReg.pas |
---|
0,0 → 1,53 |
{ |
SXMedia Components - Beta 1 |
-------------------------------- |
Copyright 1999 Dean Ellis |
http://www.sillex.freeserve.co.uk |
This unit is part of the SXMedia Component Set. This code is |
supplied as is with no guarantees and must be used at your own |
risk. |
No modifications to this code must be made without the express |
permission of the author. Please report any problems to |
support@sillex.freeserve.co.uk |
You may use these components to create any freeware/shareware |
applications that you wish. If the components are to be used in |
a commercail product then credit for developement of these components |
should be given. |
Credits : |
Developer : Dean Ellis |
Testers : Dominique Louis |
Ivan Blecic |
} |
unit SXReg; |
{$INCLUDE DelphiXcfg.inc} |
interface |
uses Windows, Classes, SysUtils, SXEditor, SXMovie, SXEngine, SXModPlayer, |
{$IfNDef VER6UP} DsgnIntf {$Else} Designintf, DesignEditors {$EndIf}; |
procedure Register; |
implementation |
{$R SXReg.dcr} |
procedure Register; |
begin |
RegisterPropertyEditor(TypeInfo(TFilename), nil, 'Filename', TFilenameProperty); |
RegisterComponentEditor(TSXMovie,TSXComponentEditor); |
RegisterComponentEditor(TSXEngine,TSXComponentEditor); |
RegisterComponentEditor(TSXModPlayer,TSXComponentEditor); |
RegisterComponents('SX Media',[TSXMovie, TSXEngine, TSXModPlayer]); |
RegisterClass(TScreenRect); |
end; |
end. |
/VCL_DELPHIX_D6/SXMedia |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu100/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu100 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu100 (revision 98) |
/VCL_DELPHIX_D6/Dcu100 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu110/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu110 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu110 (revision 98) |
/VCL_DELPHIX_D6/Dcu110 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu120/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu120 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu120 (revision 98) |
/VCL_DELPHIX_D6/Dcu120 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu140/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu140 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu140 (revision 98) |
/VCL_DELPHIX_D6/Dcu140 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu150/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu150 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu150 (revision 98) |
/VCL_DELPHIX_D6/Dcu150 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu160/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu160 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu160 (revision 98) |
/VCL_DELPHIX_D6/Dcu160 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu170/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu170 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu170 (revision 98) |
/VCL_DELPHIX_D6/Dcu170 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu180/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu180 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu180 (revision 98) |
/VCL_DELPHIX_D6/Dcu180 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu190/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu190 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu190 (revision 98) |
/VCL_DELPHIX_D6/Dcu190 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu200/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu200 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu200 (revision 98) |
/VCL_DELPHIX_D6/Dcu200 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu210/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu210 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu210 (revision 98) |
/VCL_DELPHIX_D6/Dcu210 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu220/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu220 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu220 (revision 98) |
/VCL_DELPHIX_D6/Dcu220 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu30/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu30 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu30 (revision 98) |
/VCL_DELPHIX_D6/Dcu30 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu40/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu40 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu40 (revision 98) |
/VCL_DELPHIX_D6/Dcu40 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu50/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu50 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu50 (revision 98) |
/VCL_DELPHIX_D6/Dcu50 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu60/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu60 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu60 (revision 98) |
/VCL_DELPHIX_D6/Dcu60 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu70/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu70 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu70 (revision 98) |
/VCL_DELPHIX_D6/Dcu70 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Dcu90/.gitkeep |
---|
--- VCL_DELPHIX_D6/Dcu90 (nonexistent) |
+++ VCL_DELPHIX_D6/Dcu90 (revision 98) |
/VCL_DELPHIX_D6/Dcu90 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/VCL_DELPHIX_D6/Colli3DX.dcr |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/Colli3DX.pas |
---|
0,0 → 1,2383 |
unit colli3DX; |
{$include DelphiXcfg.inc} |
//************************************************************************* |
//* * |
//* TCollisionTester3DX vs 1.3 * |
//* * |
//************************************************************************* |
// |
// This Delphi 4, 5, 6 component is CopyRight: |
// |
// Henrik Fabricius, August 1999, March 2000, June 2002 |
// http://users.cybercity.dk/~bbl6194/delphi3dx.htm |
// E-mail: henrik_og_bodil@vip.cybercity.dk |
// |
// You may use this component for free on the following conditions: |
// 1) this text must remain part of the unit. |
// 2) Any proposals for changes or improvements should be addressed directly to |
// the copyright owner Henrik Fabricius |
// 3) The use of this component is on your own risk. The software is provided |
// as is without any garanties and warranty. The CopyRight Owner is not |
// responsible for any damage or losses of any kind caused by the use of this |
// software or the software it is intended to be used with. |
// |
// To place a link for down-loads of this component on your homepage |
// please place a link to the Delphi3DX page where the latest version |
// is available. |
// |
// To use this component you must have |
// 1) Delphi 4, 5 or 6 |
// 2) MS-DirectX 6.0 or higher |
// 3) the DelphiX components from Hori in Japan |
// |
// MS-DirectX is a trademark of the Microsoft Corporation |
// Delphi 4, 5 and 6 is a trademark of the Inprise Corporation |
// |
// Use this component to check for collisions between 3D objects in |
// Direct3D games. |
// Place your 3D-objects in a world described by : |
// - DXDrawUsed - |
// |
// Group the 3D-objects in series with different material |
// or functional properties |
// The 3D-object series are named by the property: |
// - Indexof3DSeries - |
// 3D-objects are named by the property : |
// - Indexof3Dobject - |
// A 3D-object consist of one or more 3D-elements named by the property : |
// - Indexof3DElement - |
// |
// Surround each of your 3D elements by at least one collision object |
// which must be a member of the following primitives : |
// - box3D - sphere3D - ellipsoid3D - cylinder3D - conus3D - |
// available CollOrientations are : |
// - Symmetric_X - Symmetric_Y - Symmetric_Z - |
// available material properties are : |
// - solid3D - water3D - air3D |
// the size of the small end of the conus is described by the property |
// - PercentLeftatTop - |
// a negative value means that the top is downwards |
// available functional properties are : |
// - Pickable - Shootable - Fixed3DObject |
// Add each object by specifying : |
// - FrameSeries - NextAddMesh - CoverWholeMesh - |
// - IndexOf3DSeries - IndexOf3DObject - IndexOf3DElement - |
// if coverWholeMesh is false then specify a box containing the part of the |
// 3D object which should be covered by the coll object by the commands |
// - BoxPartMin(x,y,z) - BoxPartMax(x,y,z) - |
// Finally add the collision object by executing the command |
// - AddCollisionObject - |
// |
// Bullets are described by the following properties : |
// - BulletRadius - BulletRange - BulletFrame - LongShots - |
// LongShots moves with a unlimited speed reaching the objects immediately |
// |
// The actor is described by : |
// - FrontDistance - HeadRadius - |
// |
// The camera-frame and the bullet-frames move each time the move command |
// is used in the main program. |
// Execute the following commands prior to each move command : |
// - GetOldEyePos - GetOldBulletPos - |
// The collisionTester needs this information to test for a possible collision |
// in between the starting and the ending points of the Eye/bullet |
// |
// Test for collision with the following function calls : |
// - if CollisionTester3DX1.Collision then .. |
// - if CollisionTester3DX1.BulletCollision then .. |
// On collision read the HitLinkNr and the properties of the collision object |
// |
// Destroy 3D collisionObjects by specifying : |
// - NextDestroyNr - IndexOf3DSeries - |
// and the executing command DestroyCollisionObject |
// |
// Initialize the collisionTester with the command : |
// - CollisionTester3DX1.ZeroSetIt - |
// This must always be done when DXDraw is initialized |
// |
// To install the component: |
// 1) place this unit and the dcr file in the same directory as DelphiX |
// 2) In Delphi you must click on Component - Install Component |
// 3) Select the colli3DX.pas file and choose the Samples package to install it |
// 4) Rebuild the library |
// 5) Look for a new icon with a bomb on the page named DelphiX |
// |
// Tutorial programs are available for down-load at |
// http://users.cybercity.dk/~bbl6194/delphi3dx.htm |
// |
// Good Luck |
// Henrik Fabricius |
// |
// |
//**************************************************************************** |
interface |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
StdCtrls, DXClass, DXDraws, |
{$IfDef StandardDX} |
DirectDraw, Direct3D, Direct3DRM; |
{$Else} |
DirectX; |
{$EndIf} |
Type |
Tshapes3D = (box3D, sphere3D, ellipsoid3D, cylinder3D, conus3D); |
Tmaterials3D = (solid3D, water3D, air3D); |
TOrientation3D = (symmetric_x, symmetric_y, symmetric_z); |
TFrames3D = Array of Array of IDirect3DRMFrame; |
TCollisionTester3DX = class(TComponent) |
private |
{private declarations} |
FDXDrawUsed : TDXDraw; |
FFrameSeries : TFrames3D; |
FNextAddMesh : IDirect3DRMMesh; |
FBulletFrame : IDirect3DRMFrame; |
FBoxPartMin : TD3DVector; |
FBoxPartMax : TD3DVector; |
FOldBulletPosition: TD3DVector; |
FOldEyePosition : TD3DVector; |
FNrOfSeries : integer; |
FSeriesIndex : integer; |
FSeriesNr : integer; |
FOrientation3D : TOrientation3D; |
Fshape3D : Tshapes3D; |
Fmaterial3D : Tmaterials3D; |
FPercentLeftAtTop : integer; |
Fbullet_hitLinknr : integer; |
FIndexOf3DObject : integer; |
FIndexOf3DElement : integer; |
FNextDestroyNr : integer; |
FNextAllOfMesh : Boolean; |
FFrontDistance : integer; |
FBulletRange : integer; |
FBulletRadius : integer; |
FHeadRadius : integer; |
FFixed3DObject : Boolean; |
FShootable : Boolean; |
FLongShots : Boolean; |
FPickable : Boolean; |
FCheckAllCollObj : Boolean; |
Fcoll_Nr_Objects : Array of integer; |
FSeriesIndex_for_SeriesNr : Array of integer; |
FNrinFrameSeries : Array of Array of integer; |
Fcoll_orientation : Array of Array of TOrientation3D; |
Fcoll_shape : Array of Array of Tshapes3D; |
Fcoll_material : Array of Array of Tmaterials3D; |
Fcoll_box_min : Array of Array of TD3DVector; |
Fcoll_box_max : Array of Array of TD3DVector; |
Fcoll_radius : Array of Array of TD3DValue; |
Fcoll_frac_at_top : Array of Array of TD3DValue; |
Fcoll_shootable : Array of Array of boolean; |
Fcoll_Pickable : Array of Array of boolean; |
Fcoll_Fixed3D : Array of Array of boolean; |
Fcoll_objectNr : Array of Array of integer; |
procedure SetOrientation3D(Value : TOrientation3D); |
procedure SetShape3D(Value: TShapes3D); |
procedure SetMaterial3D(Value: Tmaterials3D); |
procedure SetPercentLeftatTop(Value: integer); |
procedure SetIndexOf3DObject(Value : integer); |
procedure SetIndexOf3DElement(Value : integer); |
procedure SetIndexOf3DSeries(Value : integer); |
procedure SetNextDestroyNr(Value : Integer); |
procedure SetBulletRadius(Value : Integer); |
procedure SetHeadRadius(Value : Integer); |
procedure SetFrontDistance(Value : Integer); |
procedure SetBulletRange(Value : Integer); |
function add_space_for_one_more : boolean; |
procedure GetTheBox; |
procedure AddBox; |
procedure AddSphere; |
procedure AddCylinder; |
procedure AddConus; |
procedure AddEllipsoid; |
procedure MakeNewSeries; |
procedure Destroy_empty_series(SeriesNr : integer); |
function GetSeriesNr(Nr : integer): integer; |
procedure remove_collision_object(seriesNr, Value : integer); |
function CheckForSeriesIndex(indexnow : integer): boolean; |
procedure ListDataForCollObject; |
function coll_test_box(coll_nr : byte; |
old_attacker_position, attacker_position : TD3DVector; |
bullet_radius : TD3DValue; longshot : boolean): boolean; |
function coll_test_cylinder(coll_nr : byte; |
old_attacker_position, attacker_position : TD3DVector; |
bullet_radius : TD3DValue; longshot : boolean): boolean; |
function coll_test_sphere(coll_nr : byte; |
old_attacker_position, |
attacker_position : TD3DVector; |
bullet_radius : TD3Dvalue; longshot : boolean): boolean; |
function coll_test_ellipsoid(coll_nr : byte; |
old_attacker_position, attacker_position : TD3DVector; |
bullet_radius : TD3DValue; longshot : boolean): boolean; |
function coll_test_conus(coll_nr : byte; |
old_attacker_position, attacker_position : TD3DVector; |
bullet_radius : TD3DValue; longshot : boolean): boolean; |
protected |
public |
Constructor Create(AOwner : TComponent); override; |
destructor Destroy; override; |
property DXDrawUsed : TDXDraw write FDXDrawUsed stored false; |
property FrameSeries : TFrames3D write FFrameSeries stored false; |
property NextAddMesh : IDirect3DRMMesh write FNextAddMesh stored false; |
property BulletFrame : IDirect3DRMFrame write FBulletFrame stored false; |
procedure ZeroSetIt; |
procedure BoxPartMin(xval, yval, zval: TD3DValue); |
procedure BoxPartMax(xval, yval, zval: TD3DValue); |
procedure GetOldBulletPos; |
procedure GetOldEyePos; |
function HitLinkNr: integer; |
function DestroyCollisionObject: boolean; |
procedure AddCollisionObject; |
function Collision: boolean; |
function Bulletcollision: boolean; |
function BulletDead : boolean; |
published |
property BulletRadius : Integer read FBulletRadius write SetBulletRadius |
default 0; |
property BulletRange : Integer read FbulletRange write SetBulletRange |
Default 100; |
property CollisionCheckAll: Boolean read FCheckAllCollObj |
write FCheckAllCollObj Default true; |
property CollOrientation : TOrientation3D read FOrientation3D |
write SetOrientation3D default symmetric_y; |
property CollObjectType : Tshapes3D read Fshape3D write SetShape3D |
default box3D; |
property CollObjMaterial : Tmaterials3D read Fmaterial3D write SetMaterial3D |
default solid3D; |
property CoverWholeMesh : boolean read FNextAllOfMesh |
write FNextAllOfMesh default true; |
Property Fixed3DObject : boolean read FFixed3DObject |
write FFixed3DObject default true; |
property FrontDistance : Integer read FFrontDistance |
write SetFrontDistance default 0; |
property HeadRadius : integer read FHeadRadius write SetHeadRadius |
default 0; |
property IndexOf3DSeries : integer read FSeriesIndex |
write SetIndexOf3DSeries default 0; |
property IndexOf3DObject : integer read FIndexOf3DObject |
write SetIndexOf3DObject default 0; |
property IndexOf3DElement : integer read FIndexOf3DElement |
write SetIndexOf3DElement default 0; |
property NextDestroyNr : Integer read FNextDestroyNr |
write SetNextDestroyNr default 0; |
Property PercentLeftAtTop : integer read FPercentLeftAtTop |
write SetPercentLeftAtTop default 0; |
Property Pickable : Boolean read FPickable write FPickable |
default false; |
Property Shootable : boolean read FShootable write FShootable |
Default false; |
Property LongShots : boolean read FLongShots write FLongShots |
Default false; |
end; //end of Class |
//Registering of the Component |
Procedure Register; |
implementation |
procedure Register; |
begin |
//Register the component together with the DelphiX components from Hori |
RegisterComponents('DelphiX', [TCollisionTester3DX]); |
end; //end of Register |
constructor TCollisionTester3DX.Create(AOwner : TComponent); |
begin |
inherited Create(AOwner); |
//The constructor always clears the storage it allocates for a new object |
//Hence there is no need to initialize fields except to nonzero or nonempty |
//values |
FDXDrawUsed := nil; |
FFrameSeries := nil; |
FNextAddMesh := nil; |
FBulletFrame := nil; |
FOrientation3D := symmetric_y; |
FShape3D := box3D; |
FMaterial3D := solid3D; |
FBulletRange := 100; |
FNrOfSeries := 0; |
setlength(FSeriesIndex_for_SeriesNr, 0); |
setlength(FColl_nr_objects, 0); |
setlength(FNrinFrameSeries, 0); |
setlength(Fcoll_shape, 0); |
setlength(Fcoll_box_min, 0); |
setlength(Fcoll_box_max, 0); |
setlength(Fcoll_radius, 0); |
setlength(Fcoll_frac_at_top, 0); |
setlength(Fcoll_objectnr, 0); |
setlength(Fcoll_shootable, 0); |
setlength(Fcoll_pickable, 0); |
setlength(Fcoll_orientation, 0); |
setlength(Fcoll_material, 0); |
setlength(Fcoll_Fixed3D, 0); |
end; //end of creation |
destructor TCollisionTester3DX.Destroy; |
begin |
//destroy any embedded objects and free resources allocated by the objects |
FnrinFrameSeries := nil; |
Fcoll_shape := nil; |
Fcoll_box_min := nil; |
Fcoll_box_max := nil; |
Fcoll_radius := nil; |
Fcoll_frac_at_top := nil; |
Fcoll_objectnr := nil; |
Fcoll_shootable := nil; |
Fcoll_pickable := nil; |
Fcoll_orientation := nil; |
Fcoll_material := nil; |
Fcoll_Fixed3D := nil; |
FSeriesIndex_for_SeriesNr := nil; |
Fcoll_nr_objects := nil; |
inherited Destroy; |
end; //end of Destroy |
procedure TCollisionTester3DX.ZeroSetIt; |
begin |
//initialises the dynamic arrays |
FnrinFrameSeries := nil; |
Fcoll_shape := nil; |
Fcoll_box_min := nil; |
Fcoll_box_max := nil; |
Fcoll_radius := nil; |
Fcoll_frac_at_top := nil; |
Fcoll_objectnr := nil; |
Fcoll_shootable := nil; |
Fcoll_pickable := nil; |
Fcoll_orientation := nil; |
Fcoll_material := nil; |
Fcoll_Fixed3D := nil; |
FSeriesIndex_for_SeriesNr := nil; |
Fcoll_nr_objects := nil; |
FDXDrawUsed := nil; |
FFrameSeries := nil; |
FNextAddMesh := nil; |
FBulletFrame := nil; |
FOrientation3D := symmetric_y; |
FShape3D := box3D; |
FMaterial3D := solid3D; |
FBulletRange := 100; |
FNrOfSeries := 0; |
setlength(FSeriesIndex_for_SeriesNr, 0); |
setlength(FColl_nr_objects, 0); |
setlength(FNrinFrameSeries, 0); |
setlength(Fcoll_shape, 0); |
setlength(Fcoll_box_min, 0); |
setlength(Fcoll_box_max, 0); |
setlength(Fcoll_radius, 0); |
setlength(Fcoll_frac_at_top, 0); |
setlength(Fcoll_objectnr, 0); |
setlength(Fcoll_shootable, 0); |
setlength(Fcoll_pickable, 0); |
setlength(Fcoll_orientation, 0); |
setlength(Fcoll_material, 0); |
setlength(Fcoll_Fixed3D, 0); |
end; //end of ZeroSetIt |
function TcollisionTester3DX.HitLinkNr: integer; |
begin |
result := Fbullet_hitlinknr; |
end; //end of HitLinkNr |
procedure TCollisionTester3DX.ListDataForCollObject; |
var |
Nr : integer; |
begin |
Nr := FBullet_HitLinkNr; |
CollObjectType := Fcoll_shape[FSeriesNr, Nr]; |
CollObjMaterial := Fcoll_material[FSeriesNr, Nr]; |
Fixed3DObject := Fcoll_Fixed3D[FSeriesNr, Nr]; |
CollOrientation := Fcoll_orientation[FSeriesNr, Nr]; |
IndexOf3DObject := Fcoll_objectNr[FSeriesNr, Nr]; |
IndexOf3DSeries := FSeriesIndex; |
IndexOf3DElement := FNrinFrameSeries[FSeriesNr, Nr]; |
Pickable := Fcoll_pickable[FSeriesNr, Nr]; |
Shootable := Fcoll_shootable[FseriesNr, Nr]; |
end; //end of ListDataForCollObject |
procedure TcollisionTester3DX.SetPercentLeftAtTop(Value : Integer); |
begin |
//value can not be negative |
if (FPercentLeftAtTop <> Value) and (Value >= 0) |
then |
FPercentLeftAtTop := value; |
end; //end of SetPercentLeftAtTop |
procedure TcollisionTester3DX.SetOrientation3D(Value : TOrientation3D); |
begin |
if FOrientation3D <> Value |
then |
FOrientation3D := Value; |
end; //end setorientation3D |
procedure TcollisionTester3DX.SetShape3D(Value : Tshapes3D); |
begin |
if Fshape3D <> Value |
then |
Fshape3D := Value; |
end; //end setshapes3D |
procedure TcollisionTester3DX.SetMaterial3D(Value : Tmaterials3D); |
begin |
if Fmaterial3D <> Value |
then |
Fmaterial3D := Value; |
end; //end setshapes3D |
procedure TCollisionTester3DX.SetIndexOf3DObject(Value : integer); |
begin |
//Index can not be negative |
if (FIndexOf3DObject <> Value) and (Value >= 0) |
then |
FIndexOf3DObject := value; |
end; //end setIndexOf3DObject |
procedure TCollisionTester3DX.SetIndexOf3DElement(Value : integer); |
begin |
//Index can not be negative |
if (FIndexOf3DElement <> Value) and (Value >= 0) |
then |
FIndexOf3DElement := value; |
end; //end setIndexOf3DElement |
procedure TCollisionTester3DX.SetIndexOf3DSeries(Value : integer); |
begin |
//Index can not be negative |
if (FSeriesIndex <> Value) and (Value >= 0) |
then |
FSeriesIndex := value; |
end; //end of SetIndexOf3DSeries |
procedure TCollisionTester3DX.SetNextDestroyNr(Value : integer); |
begin |
//Index can not be negative |
if (FNextDestroyNr <> Value) and (Value >= 0) |
then |
FNextDestroyNr := value; |
end; //end of SetNextDestroyNr |
procedure TCollisionTester3DX.SetBulletRadius(Value : Integer); |
begin |
//Radius can not be negative |
if (FBulletRadius <> Value) and (Value >= 0) |
then |
FBulletRadius := value; |
end; //end of SetBulletRadius |
procedure TCollisionTester3DX.SetHeadRadius(Value : Integer); |
begin |
//Radius can not be negative |
if (FHeadRadius <> Value) and (Value >= 0) |
then |
FHeadRadius := value; |
end; //end of SetHeadRadius |
procedure TCollisionTester3DX.SetFrontDistance(Value : Integer); |
begin |
//FrontDistance can not be negative |
if (FFrontDistance <> Value) and (Value >= 0) |
then |
FFrontDistance := value; |
end; //end of SetFrontDistance |
procedure TCollisionTester3DX.SetBulletRange(Value : Integer); |
begin |
//BulletRange can not be negative |
if (FBulletRange <> Value) and (Value >= 0) |
then |
FBulletRange := value; |
end; //end of SetBulletRange |
function TcollisionTester3DX.Add_Space_For_One_More: boolean; |
var |
NewNr : integer; |
begin |
//add space for one more element in the present series |
//length of Fcoll_nr_objects and FSeries_nIndex_for_SeriesNr are unchanged |
NewNr := Fcoll_nr_objects[FseriesNr] + 1; |
result := true; |
try |
SetLength(FNrinFrameSeries[FSeriesNr], NewNr); |
SetLength(Fcoll_shape[FSeriesNr], NewNr); |
SetLength(Fcoll_box_min[FSeriesNr], NewNr); |
SetLength(Fcoll_box_max[FSeriesNr], NewNr); |
SetLength(Fcoll_radius[FSeriesNr], NewNr); |
SetLength(Fcoll_frac_at_top[FSeriesNr], NewNr); |
SetLength(Fcoll_objectnr[FSeriesNr], NewNr); |
SetLength(Fcoll_shootable[FSeriesNr], NewNr); |
SetLength(Fcoll_pickable[FSeriesNr], NewNr); |
SetLength(Fcoll_orientation[FSeriesNr], NewNr); |
SetLength(Fcoll_material[FSeriesNr], NewNr); |
SetLength(Fcoll_Fixed3D[FSeriesNr], NewNr); |
except |
on EOutOfMemory do |
begin |
//There is not enough memory available. Free some memory |
dec(NewNr); |
copy(FNrinFrameSeries[FseriesNr], 0, NewNr); |
copy(Fcoll_shape[FseriesNr], 0, NewNr); |
copy(Fcoll_box_min[FSeriesNr], 0, NewNr); |
copy(Fcoll_box_max[FSeriesNr], 0, NewNr); |
copy(Fcoll_radius[FSeriesNr], 0, NewNr); |
copy(Fcoll_frac_at_top[FSeriesNr], 0, NewNr); |
copy(Fcoll_objectnr[FSeriesNr], 0, NewNr); |
copy(Fcoll_shootable[FSeriesNr], 0, NewNr); |
copy(Fcoll_pickable[FSeriesNr], 0, NewNr); |
copy(Fcoll_orientation[FSeriesNr], 0, NewNr); |
copy(Fcoll_material[FSeriesNr], 0, NewNr); |
copy(Fcoll_Fixed3D[FSeriesNr], 0, NewNr); |
result := false; |
end; |
end; |
//update count of objects in series |
Fcoll_nr_objects[FseriesNr] := NewNr; |
end; //end of Add_Space_For_One_More |
procedure TcollisionTester3DX.MakeNewSeries; |
begin |
inc(FNrOfSeries); |
SetLength(FSeriesIndex_for_SeriesNr, FNrOfSeries); |
FSeriesIndex_for_SeriesNr[FNrOfSeries-1] := FSeriesIndex; |
SetLength(Fcoll_nr_objects, FNrOfSeries); |
Fcoll_nr_objects[FNrOfSeries-1] := 0; |
SetLength(FNrinFrameSeries, FNrOfSeries); |
SetLength(Fcoll_shape, FNrOfSeries); |
SetLength(Fcoll_box_min, FNrOfSeries); |
SetLength(Fcoll_box_max, FNrOfSeries); |
SetLength(Fcoll_radius, FNrOfSeries); |
SetLength(Fcoll_frac_at_top, FNrOfSeries); |
SetLength(Fcoll_objectnr, FNrOfSeries); |
SetLength(Fcoll_shootable, FNrOfSeries); |
SetLength(Fcoll_pickable, FNrOfSeries); |
SetLength(Fcoll_orientation, FNrOfSeries); |
SetLength(Fcoll_material, FNrOfSeries); |
SetLength(Fcoll_Fixed3D, FNrOfSeries); |
end; //end of MakeNewSeries |
procedure TcollisionTester3DX.Destroy_Empty_Series(SeriesNr : integer); |
var |
i, j : integer; |
begin |
if seriesNr < (FNrOfSeries - 1) |
then |
begin |
for i := SeriesNr to (FNrOfSeries - 2) do |
begin |
FSeriesIndex_for_SeriesNr[i] := FSeriesIndex_for_SeriesNr[i+1]; |
SetLength(FNrinFrameSeries[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
FNrinFrameSeries[i, j] := FNrinFrameSeries[(i+1), j]; |
SetLength(Fcoll_shape[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_shape[i, j] := Fcoll_shape[(i+1), j]; |
SetLength(Fcoll_box_min[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_box_min[i, j] := Fcoll_box_min[(i+1), j]; |
SetLength(Fcoll_box_max[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_box_max[i, j] := Fcoll_box_max[(i+1), j]; |
SetLength(Fcoll_radius[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_radius[i, j] := Fcoll_radius[(i+1), j]; |
SetLength(Fcoll_frac_at_top[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_frac_at_top[i, j] := Fcoll_frac_at_top[(i+1), j]; |
SetLength(Fcoll_objectnr[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_objectNr[i, j] := Fcoll_objectNr[(i+1), j]; |
SetLength(Fcoll_shootable[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_shootable[i, j] := Fcoll_shootable[(i+1), j]; |
SetLength(Fcoll_pickable[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_pickable[i, j] := Fcoll_pickable[(i+1), j]; |
SetLength(Fcoll_orientation[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_orientation[i, j] := Fcoll_orientation[(i+1), j]; |
SetLength(Fcoll_material[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_material[i, j] := Fcoll_material[(i+1), j]; |
SetLength(Fcoll_Fixed3D[i], Fcoll_Nr_objects[i+1]); |
for j := 0 to (Fcoll_Nr_objects[i+1] - 1) do |
Fcoll_Fixed3D[i, j] := Fcoll_Fixed3D[(i+1), j]; |
Fcoll_nr_objects[i] := Fcoll_nr_objects[i+1]; |
end; |
end; |
dec(FNrOfSeries); |
FSeriesIndex_For_SeriesNr := copy(FSeriesIndex_for_SeriesNr, 0, FNrOfSeries); |
Fcoll_Nr_Objects := copy(Fcoll_Nr_Objects, 0, FNrOfSeries); |
FNrinFrameSeries := copy(FNrinFrameSeries, 0, FNrOfSeries); |
Fcoll_Shape := copy(Fcoll_Shape, 0, FNrOfSeries); |
Fcoll_Box_Min := copy(Fcoll_Box_Min, 0, FNrOfSeries); |
Fcoll_Box_Max := copy(Fcoll_Box_Max, 0, FNrOfSeries); |
Fcoll_Radius := copy(Fcoll_Radius, 0, FNrOfSeries); |
Fcoll_Frac_At_Top := copy(Fcoll_Frac_At_Top, 0, FNrOfSeries); |
Fcoll_ObjectNr := copy(Fcoll_ObjectNr, 0, FNrOfSeries); |
Fcoll_Shootable := copy(Fcoll_Shootable, 0, FNrOfSeries); |
Fcoll_Pickable := copy(Fcoll_Pickable, 0, FNrOfSeries); |
Fcoll_orientation := copy(Fcoll_orientation, 0, FNrOfSeries); |
Fcoll_Material := copy(Fcoll_Material, 0, FNrOfSeries); |
Fcoll_Fixed3D := copy(Fcoll_Fixed3D, 0, FNrOfSeries); |
end; //end of Destroy_Empty_Series |
procedure TcollisionTester3DX.Remove_Collision_Object(SeriesNr, Value : integer); |
var |
i : integer; |
begin |
//Elements in the series which have a higher index than the one removed |
//gets a smaller index which is correct when the main program removes the object |
for i := 0 to (FColl_nr_objects[SeriesNr] - 1) do |
begin |
if FNrinFrameSeries[SeriesNr, i] >= value |
then |
dec(FNrinFrameSeries[SeriesNr, i]); |
end; |
for i := Value to (Fcoll_nr_objects[SeriesNr] - 2) do |
begin |
FNrinFrameSeries[SeriesNr, i] := FNrinFrameSeries[SeriesNr, (i+1)]; |
Fcoll_shape[SeriesNr, i] := Fcoll_shape[SeriesNr, (i+1)]; |
Fcoll_box_min[SeriesNr, i] := Fcoll_box_min[SeriesNr, (i+1)]; |
Fcoll_box_max[SeriesNr, i] := Fcoll_box_max[SeriesNr, (i+1)]; |
Fcoll_radius[seriesNr, i] := Fcoll_radius[SeriesNr, (i+1)]; |
Fcoll_frac_at_top[SeriesNr, i] := Fcoll_frac_at_top[SeriesNr, (i+1)]; |
Fcoll_objectnr[SeriesNr, i] := Fcoll_objectnr[SeriesNr, (i+1)]; |
Fcoll_shootable[SeriesNr, i] := Fcoll_shootable[SeriesNr, (i+1)]; |
Fcoll_Pickable[SeriesNr, i] := Fcoll_Pickable[SeriesNr, (i+1)]; |
Fcoll_orientation[SeriesNr, i] := Fcoll_orientation[SeriesNr, (i+1)]; |
Fcoll_material[SeriesNr, i] := Fcoll_material[SeriesNr, (i+1)]; |
Fcoll_Fixed3D[SeriesNr, i] := Fcoll_Fixed3D[SeriesNr, (i+1)]; |
end; |
dec(Fcoll_nr_objects[SeriesNr]); |
//remember to reduce the length of Fcoll_frame |
FNrinFrameSeries[SeriesNr] := copy(FNrinFrameSeries[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
Fcoll_shape[SeriesNr] := copy(Fcoll_shape[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
Fcoll_box_min[SeriesNr] := copy(Fcoll_box_min[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
Fcoll_box_max[SeriesNr] := copy(Fcoll_box_max[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
Fcoll_radius[SeriesNr] := copy(Fcoll_radius[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
Fcoll_frac_at_top[SeriesNr] := copy(Fcoll_frac_at_top[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
Fcoll_objectnr[SeriesNr] := copy(Fcoll_objectnr[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
Fcoll_shootable[SeriesNr] := copy(Fcoll_shootable[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
Fcoll_pickable[SeriesNr] := copy(Fcoll_pickable[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
Fcoll_material[SeriesNr] := copy(Fcoll_material[SeriesNr], 0, |
Fcoll_nr_objects[FSeriesNr]); |
Fcoll_orientation[SeriesNr] := copy(Fcoll_orientation[SeriesNr], 0, |
Fcoll_nr_objects[FSeriesNr]); |
Fcoll_fixed3D[SeriesNr] := copy(Fcoll_fixed3D[SeriesNr], 0, |
Fcoll_nr_objects[SeriesNr]); |
end; //end of Remove_Collision_Object |
procedure TCollisionTester3DX.GetTheBox; |
var |
box: TD3DRMBOX; |
begin |
if FNextAllOfMesh |
then |
begin |
FNextAddMesh.GetBox(box); |
FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := box.min; |
FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := box.max; |
end |
else |
begin |
FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FBoxPartMin; |
FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FBoxPartMax; |
end; |
end; //end of GetTheBox |
procedure TCollisionTester3DX.BoxPartMin(xval, yval, zval : TD3DValue); |
begin |
FBoxPartMin.x := xval; |
FBoxPartMin.y := yval; |
FBoxPartMin.z := zval; |
end; //end of BoxPartMin |
procedure TCollisionTester3DX.BoxPartMax(xval, yval, zval : TD3DValue); |
begin |
FBoxPartMax.x := xval; |
FBoxPartMax.y := yval; |
FBoxPartMax.z := zval; |
end; //end of BoxPartMax |
procedure TCollisionTester3DX.AddBox; |
begin |
if add_space_for_one_more |
then |
begin |
GetTheBox; |
Fcoll_objectnr[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexOf3DObject; |
Fcoll_shape[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := box3D; |
FNrinFrameSeries[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexof3Delement; |
Fcoll_radius[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := 0; //not used |
Fcoll_frac_at_top[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := 0; //not used |
Fcoll_material[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fmaterial3D; |
Fcoll_orientation[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Forientation3D; |
Fcoll_shootable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] -1)] := Fshootable; |
Fcoll_Pickable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fpickable; |
Fcoll_fixed3D[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FFixed3DObject; |
end; |
end; //end of AddBox |
procedure TCollisionTester3DX.AddSphere; |
begin |
if add_space_for_one_more |
then |
begin |
GetTheBox; |
Fcoll_objectnr[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexOf3DObject; |
Fcoll_shape[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := sphere3D; |
FNrinFrameSeries[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexof3Delement; |
Fcoll_radius[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := |
(FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].x |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].x |
+ FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].y |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].y |
+ FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].z |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FseriesNr] - 1)].z)/2/3; |
Fcoll_frac_at_top[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := 0; //not used |
Fcoll_orientation[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Forientation3D; |
Fcoll_material[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fmaterial3D; |
Fcoll_shootable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fshootable; |
Fcoll_Pickable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fpickable; |
Fcoll_fixed3D[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FFixed3DObject; |
end; |
end; //end of AddSphere |
procedure TCollisionTester3DX.Addcylinder; |
begin |
//the sphere cowers whole of the 3D-object |
if add_space_for_one_more |
then |
begin |
GetTheBox; |
Fcoll_objectnr[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexOf3DObject; |
Fcoll_shape[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := cylinder3D; |
FNrinFrameSeries[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexof3Delement; |
case Forientation3D of |
symmetric_x : Fcoll_radius[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := |
(FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].y |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FseriesNr] - 1)].y |
+ FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].z |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].z)/2/2; |
symmetric_y : Fcoll_radius[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := |
(FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].x |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FseriesNr] - 1)].x |
+ FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].z |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].z)/2/2; |
symmetric_z : Fcoll_radius[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := |
(FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].x |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FseriesNr] - 1)].x |
+ FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].y |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].y)/2/2; |
end; |
Fcoll_frac_at_top[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := 0; //not used |
Fcoll_orientation[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Forientation3D; |
Fcoll_material[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fmaterial3D; |
Fcoll_shootable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fshootable; |
Fcoll_Pickable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fpickable; |
Fcoll_fixed3D[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FFixed3DObject; |
end; |
end; //end of Addcylinder |
procedure TCollisionTester3DX.Addconus; |
begin |
//the conus cowers whole of or part of the 3D-object |
//fraction_left_at_top = 0 if sharp tip |
if add_space_for_one_more |
then |
begin |
GettheBox; |
Fcoll_objectnr[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexOf3DObject; |
Fcoll_shape[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := conus3D; |
FNrinFrameSeries[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexof3Delement; |
Fcoll_radius[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := |
(FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].x |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].x |
+ FColl_box_max[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].z |
- FColl_box_min[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)].z)/2/2; |
Fcoll_frac_at_top[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FPercentLeftAtTop/100; |
Fcoll_orientation[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Forientation3D; |
Fcoll_material[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fmaterial3D; |
Fcoll_shootable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] -1)] := Fshootable; |
Fcoll_Pickable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fpickable; |
Fcoll_fixed3D[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FFixed3DObject; |
end; |
end; //end of Addconus |
procedure TCollisionTester3DX.AddEllipsoid; |
begin |
if add_space_for_one_more |
then |
begin |
GetTheBox; |
Fcoll_objectnr[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexOf3DObject; |
Fcoll_shape[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Ellipsoid3D; |
FNrinFrameSeries[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FIndexof3Delement; |
Fcoll_radius[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := 0; //not used |
Fcoll_frac_at_top[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := 0; //not used |
Fcoll_orientation[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Forientation3D; |
Fcoll_material[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fmaterial3D; |
Fcoll_shootable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fshootable; |
Fcoll_Pickable[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := Fpickable; |
Fcoll_fixed3D[FSeriesNr, (Fcoll_Nr_objects[FSeriesNr] - 1)] := FFixed3DObject; |
end; |
end; //end of AddEllipsoid |
function TcollisionTester3DX.GetSeriesNr(Nr : integer): integer; |
var |
NrNow, i : integer; |
begin |
if FNrOfSeries = 0 |
then |
NrNow := 0 |
else |
begin |
NrNow := -1; |
for i := 0 to (FNrOfSeries - 1) do |
begin |
if Nr = FSeriesIndex_for_SeriesNr[i] |
then |
NrNow := i; |
end; |
if NrNow = -1 |
then |
NrNow := FNrOfSeries; //make new series |
end; |
if NrNow = FNrOfSeries |
then |
MakeNewSeries; |
result := NrNow; |
end; //end of GetSeriesNr |
function TcollisionTester3DX.CheckForSeriesIndex(indexnow : integer): boolean; |
var |
i : integer; |
begin |
if FNrOfSeries = 0 |
then |
result := false |
else |
begin |
FSeriesNr := -1; |
for i := 0 to (FNrOfSeries - 1) do |
begin |
if indexnow = FSeriesIndex_for_SeriesNr[i] |
then |
FSeriesNr := i; |
end; |
result := (FSeriesNr <> -1); |
end; |
end; //end of CheckForSeriesIndex |
procedure TcollisionTester3DX.AddCollisionObject; |
begin |
FSeriesNr := GetSeriesNr(FSeriesIndex); |
case Fshape3D of |
box3D : AddBox; |
sphere3D : AddSphere; |
cylinder3D : AddCylinder; |
ellipsoid3D: AddEllipsoid; |
Conus3D : AddConus; |
end; |
end; //end of AddCollisionObject |
function TCollisionTester3DX.DestroyCollisionObject: boolean; |
var |
test_nr : integer; |
begin |
//remove all collision objects connected with the 3D-object |
//with the index FnextDestroyNr |
//Check whether series index exists |
if CheckForSeriesIndex(FSeriesIndex) |
then |
begin |
//FSeriesNr was found |
test_nr := 0; |
while (test_nr <= (Fcoll_nr_objects[FSeriesNr] - 1)) do |
begin |
if Fcoll_objectnr[FSeriesNr, test_nr] = FnextDestroyNr |
then |
remove_collision_object(FSeriesNr, FnextDestroyNr) |
else |
inc(test_nr); |
end; //end of while loop |
//now we have to decrement all Fcoll_objectnr values larger than object_nr |
//because the main program does a similar decrementation when the 3D-object |
//is removed |
if Fcoll_nr_objects[FSeriesNr] > 0 |
then |
begin |
//the series is not empty |
for test_nr := 0 to (Fcoll_nr_objects[FSeriesNr] - 1) do |
begin |
if Fcoll_objectnr[FSeriesNr, test_nr] > FNextDestroyNr |
then |
dec(Fcoll_objectnr[FSeriesNr, test_nr]); |
end; |
end |
else |
destroy_empty_Series(FSeriesNr); |
result := true; //collision object was destroyed |
end //end of CheckForSeriesIndex... |
else |
result := false; //unable to destroy |
end; //end of DestroyCollisionObject |
function TcollisionTester3DX.coll_test_sphere(coll_nr : byte; |
old_attacker_position, attacker_position : TD3DVector; |
bullet_radius : TD3DValue; longshot : boolean): boolean; |
var |
new_eye, old_eye : TD3DVector; |
dstep, step, center : TD3DVector; |
radius, d0, d1, d2, rod, rod2, t1, t2 : TD3DValue; |
begin |
result := false; |
//Get the coordinates of the old eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(old_eye, old_attacker_position); |
//Get the coordinates of the eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(new_eye, attacker_position); |
center.x := (Fcoll_box_max[FSeriesNr, coll_nr].x |
+ Fcoll_box_min[FSeriesNr, coll_nr].x)/2; |
center.y := (Fcoll_box_max[FSeriesNr, coll_nr].y |
+ Fcoll_box_min[FSeriesNr, coll_nr].y)/2; |
center.z := (Fcoll_box_max[FSeriesNr, coll_nr].z |
+ Fcoll_box_min[FSeriesNr, coll_nr].z)/2; |
//radius of sphere enlarged with the radius of the bullet |
//to cover the space where a collision may occure |
radius := Fcoll_radius[FSeriesNr, coll_nr] + bullet_radius; |
//eye to center distance |
dstep.x := old_eye.x - center.x; |
dstep.y := old_eye.y - center.y; |
dstep.z := old_eye.z - center.z; |
//step in eye position |
step.x := new_eye.x - old_eye.x; |
step.y := new_eye.y - old_eye.y; |
step.z := new_eye.z - old_eye.z; |
//collision is only possible when something moves |
if (abs(step.x) < 1e-3) and (abs(step.y) < 1e-3) and (abs(step.z) < 1e-3) |
then |
begin |
result := false; |
exit; |
end; |
//factors |
d0 := sqr(dstep.x) + sqr(dstep.y) + sqr(dstep.z) - sqr(radius); |
d1 := 2 * (step.x * dstep.x + step.y * dstep.y + step.z * dstep.z); |
d2 := sqr(step.x) + sqr(step.y) + sqr(step.z); |
//solving an equation of the second degree |
rod := sqr(d1) - 4 * d2 * d0; |
//d2 is never zero |
if rod > 0 |
then |
begin |
rod2 := sqrt(rod); |
t1 := (-d1 - rod2)/2/d2; |
t2 := (-d1 + rod2)/2/d2; |
// if longshot then look into all future |
if longshot |
then |
result := (t1 >= 0) or (t2 >= 0) |
else |
begin |
//collision in between the starting and the ending point if |
result := ((t1 >= 0) and (t1 <= 1)) |
or ((t2 >= 0) and (t2 <= 1)); |
end; |
end; |
end; //end of coll_test_sphere |
function TcollisionTester3DX.coll_test_ellipsoid(coll_nr : byte; |
old_attacker_position, attacker_position : TD3DVector; |
bullet_radius : TD3DValue; longshot : boolean): boolean; |
var |
new_eye, old_eye : TD3DVector; |
dstep, step, center : TD3DVector; |
d0, d1, d2, rod, rod2, t1, t2, a, b, c : TD3DValue; |
begin |
result := false; |
//Get the coordinates of the old eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(old_eye, old_attacker_position); |
//Get the coordinates of the eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(new_eye, attacker_position); |
center.x := (Fcoll_box_max[FSeriesNr, coll_nr].x |
+ Fcoll_box_min[FSeriesNr, coll_nr].x)/2; |
center.y := (Fcoll_box_max[FSeriesNr, coll_nr].y |
+ Fcoll_box_min[FSeriesNr, coll_nr].y)/2; |
center.z := (Fcoll_box_max[FSeriesNr, coll_nr].z |
+ Fcoll_box_min[FSeriesNr, coll_nr].z)/2; |
//x, y and z radius of ellipsoid enlarged with the radius of the bullet |
//to cover the space where a collision may occure |
a := (Fcoll_box_max[FSeriesNr, coll_nr].x |
- Fcoll_box_min[FSeriesNr, coll_nr].x)/2 + bullet_radius; |
b := (Fcoll_box_max[FSeriesNr, coll_nr].y |
- Fcoll_box_min[FSeriesNr, coll_nr].y)/2 + bullet_radius; |
c := (Fcoll_box_max[FSeriesNr, coll_nr].z |
- Fcoll_box_min[FSeriesNr, coll_nr].z)/2 + bullet_radius; |
//eye to center distance |
dstep.x := old_eye.x - center.x; |
dstep.y := old_eye.y - center.y; |
dstep.z := old_eye.z - center.z; |
//step in eye position |
step.x := new_eye.x - old_eye.x; |
step.y := new_eye.y - old_eye.y; |
step.z := new_eye.z - old_eye.z; |
//collision is only possible when something moves |
if (abs(step.x) < 1e-3) and (abs(step.y) < 1e-3) and (abs(step.z) < 1e-3) |
then |
begin |
result := false; |
exit; |
end; |
//factors |
d0 := sqr(b * c * dstep.x) + sqr(a * c * dstep.y) + sqr(a * b * dstep.z) |
- sqr(a * b * c); |
d1 := 2 * (sqr(b * c) * step.x * dstep.x + sqr(a * c) * step.y * dstep.y |
+ sqr(a * b) * step.z * dstep.z); |
d2 := sqr(b * c * step.x) + sqr(a * c * step.y) + sqr(a * b * step.z); |
//solving an equation of the second degree |
rod := sqr(d1) - 4 * d2 * d0; |
//d2 is never zero |
if rod > 0 |
then |
begin |
rod2 := sqrt(rod); |
t1 := (-d1 - rod2)/2/d2; |
t2 := (-d1 + rod2)/2/d2; |
// if longshot then look into all future |
if longshot |
then |
result := (t1 >= 0) or (t2 >= 0) |
else |
begin |
//collision in between the starting and the ending point if |
result := ((t1 >= 0) and (t1 <= 1)) |
or ((t2 >= 0) and (t2 <= 1)); |
end; |
end; |
end; //end of coll_test_ellipsoid |
function TcollisionTester3DX.coll_test_cylinder(coll_nr : byte; |
old_attacker_position, attacker_position : TD3DVector; |
bullet_radius : TD3DValue; longshot : boolean): boolean; |
var |
distance : TD3DValue; |
new_eye, old_eye : TD3DVector; |
dstep, step, center : TD3DVector; |
radius, d0, d1, d2, rod, rod2, t1, t2, xc1, yc1, zc1, xc2, yc2, zc2 : TD3DValue; |
begin |
result := false; |
//Get the coordinates of the old eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(old_eye, old_attacker_position); |
//Get the coordinates of the eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(new_eye, attacker_position); |
center.x := (Fcoll_box_max[FSeriesNr, coll_nr].x |
+ Fcoll_box_min[FSeriesNr, coll_nr].x)/2; |
center.y := (Fcoll_box_max[FSeriesNr, coll_nr].y |
+ Fcoll_box_min[FSeriesNr, coll_nr].y)/2; |
center.z := (Fcoll_box_max[FSeriesNr, coll_nr].z |
+ Fcoll_box_min[FSeriesNr, coll_nr].z)/2; |
//radius of sphere enlarged with the radius of the bullet |
//to cover the space where a collision may occure |
radius := Fcoll_radius[FSeriesNr, coll_nr] + bullet_radius; |
//eye to center distance |
dstep.x := old_eye.x - center.x; |
dstep.y := old_eye.y - center.y; |
dstep.z := old_eye.z - center.z; |
//step in eye position |
step.x := new_eye.x - old_eye.x; |
step.y := new_eye.y - old_eye.y; |
step.z := new_eye.z - old_eye.z; |
//collision is only possible when something moves |
if (abs(step.x) < 1e-3) and (abs(step.y) < 1e-3) and (abs(step.z) < 1e-3) |
then |
begin |
result := false; |
exit; |
end; |
d0 := 1; //just to avoid warnings |
d1 := 1; |
d2 := 1; |
//The cylinder is alined parallel to the x, y or z axis |
case FOrientation3D of |
symmetric_x : |
begin |
//factors |
d0 := sqr(dstep.y) + sqr(dstep.z) - sqr(radius); |
d1 := 2 * (step.y * dstep.y + step.z * dstep.z); |
d2 := sqr(step.y) + sqr(step.z); |
end; |
symmetric_y : |
begin |
//factors |
d0 := sqr(dstep.x) + sqr(dstep.z) - sqr(radius); |
d1 := 2 * (step.x * dstep.x + step.z * dstep.z); |
d2 := sqr(step.x) + sqr(step.z); |
end; |
symmetric_z : |
begin |
//factors |
d0 := sqr(dstep.x) + sqr(dstep.y) - sqr(radius); |
d1 := 2 * (step.x * dstep.x + step.y * dstep.y); |
d2 := sqr(step.x) + sqr(step.y); |
end; |
end; //end of case FOrientation3D of |
//solving an equation of the second degree |
rod := sqr(d1) - 4 * d2 * d0; |
//d2 is never zero |
if rod >= 0 |
then |
begin |
//only then is the collision possible |
rod2 := sqrt(rod); |
t1 := (-d1 - rod2)/2/d2; |
t2 := (-d1 + rod2)/2/d2; |
// if longshot then look into all future |
if longshot |
then |
result := (t1 >= 0) or (t2 >= 0) |
else |
begin |
//collision in between the starting and the ending point if |
result := ((t1 >= 0) and (t1 <= 1)) |
or ((t2 >= 0) and (t2 <= 1)); |
end; |
// however the collision also affords that we are within the length of the cylinder |
if result then |
begin |
case FOrientation3D of |
symmetric_x : |
begin |
xc1 := old_eye.x + t1 * step.x; |
xc2 := old_eye.x + t2 * step.x; |
if longshot |
then |
result := |
(result and (t1 >= 0) and |
(xc1 >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc1 <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) ) |
or |
(result and (t2 >= 0) and |
(xc2 >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc2 <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) ) |
else |
result := |
(result and (t1 >= 0) and (t1 <= 1) and |
(xc1 >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc1 <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) ) |
or |
(result and (t2 >= 0) and (t2 <= 1) and |
(xc2 >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc2 <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) ); |
//if collision detected then exit now |
if result then exit; |
end; |
symmetric_y : |
begin |
yc1 := old_eye.y + t1 * step.y; |
yc2 := old_eye.y + t2 * step.y; |
if longshot |
then |
result := |
(result and (t1 >= 0) and |
(yc1 >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc1 <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)) ) |
or |
(result and (t2 >= 0) and |
(yc2 >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc2 <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)) ) |
else |
result := |
(result and (t1 >= 0) and (t1 <= 1) and |
(yc1 >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc1 <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)) ) |
or |
(result and (t2 >= 0) and (t2 <= 1) and |
(yc2 >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc2 <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)) ); |
//if collision detected then exit now |
if result then exit; |
end; |
symmetric_z : |
begin |
zc1 := old_eye.z + t1 * step.z; |
zc2 := old_eye.z + t2 * step.z; |
if longshot |
then |
result := |
(result and (t1 >= 0) and |
(zc1 >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc1 <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) ) |
or |
(result and (t2 >= 0) and |
(zc2 >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc2 <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) ) |
else |
result := |
(result and (t1 >= 0) and (t1 <= 1) and |
(zc1 >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc1 <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) ) |
or |
(result and (t2 >= 0) and (t2 <= 1) and |
(zc2 >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc2 <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) ); |
//if collision detected then exit now |
if result then exit; |
end; |
end; //end of case |
end; |
//exit if a collision occured |
if result then exit; |
end; |
//the collision may also occur with the end surfaces of the cylinder |
case FOrientation3D of |
symmetric_x : |
begin |
if step.x > 1e-6 |
then |
begin |
//1st end surface |
t1 := (Fcoll_box_min[FseriesNr, coll_Nr].x - old_eye.x)/step.x; |
yc1 := old_eye.y + t1 * step.y; |
zc1 := old_eye.z + t1 * step.z; |
distance := sqrt( sqr(yc1 - center.y) + sqr(zc1 - center.z) ); |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
//2nd end surface |
t1 := (Fcoll_box_max[FseriesNr, coll_Nr].x - old_eye.x)/step.x; |
yc1 := old_eye.y + t1 * step.y; |
zc1 := old_eye.z + t1 * step.z; |
distance := sqrt( sqr(yc1 - center.y) + sqr(zc1 - center.z) ); |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
end; |
end; |
symmetric_y : |
begin |
if step.y > 1e-6 |
then |
begin |
//1st end surface |
t1 := (Fcoll_box_min[FseriesNr, coll_Nr].y - old_eye.y)/step.y; |
xc1 := old_eye.x + t1 * step.x; |
zc1 := old_eye.z + t1 * step.z; |
distance := sqrt( sqr(xc1 - center.x) + sqr(zc1 - center.z) ); |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
//2nd end surface |
t1 := (Fcoll_box_max[FseriesNr, coll_Nr].y - old_eye.y)/step.y; |
xc1 := old_eye.x + t1 * step.x; |
zc1 := old_eye.z + t1 * step.z; |
distance := sqrt( sqr(xc1 - center.x) + sqr(zc1 - center.z) ); |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
end; |
end; |
symmetric_z : |
begin |
if step.z > 1e-6 |
then |
begin |
//1st end surface |
t1 := (Fcoll_box_min[FseriesNr, coll_Nr].z - old_eye.z)/step.z; |
xc1 := old_eye.x + t1 * step.x; |
yc1 := old_eye.y + t1 * step.y; |
distance := sqrt( sqr(xc1 - center.x) + sqr(yc1 - center.y) ); |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
//2nd end surface |
t1 := (Fcoll_box_max[FseriesNr, coll_Nr].z - old_eye.z)/step.z; |
xc1 := old_eye.x + t1 * step.x; |
yc1 := old_eye.y + t1 * step.y; |
distance := sqrt( sqr(xc1 - center.x) + sqr(yc1 - center.y) ); |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
end; |
end; |
end; //end of case |
end; //end of coll_test_cylinder |
function TcollisionTester3DX.coll_test_conus(coll_nr : byte; |
old_attacker_position, attacker_position : TD3DVector; |
bullet_radius : TD3DValue; longshot : boolean): boolean; |
var |
height3D, width3D : TD3DValue; |
distance : TD3DValue; |
new_eye, old_eye : TD3DVector; |
dstep, step, center : TD3DVector; |
radius, d0, d1, d2, rod, rod2, t1, t2, xc1, yc1, zc1, xc2, yc2, zc2 : TD3DValue; |
xc, yc, zc, conusfact : TD3DValue; |
begin |
result := false; |
//Get the coordinates of the old eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(old_eye, old_attacker_position); |
//Get the coordinates of the eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(new_eye, attacker_position); |
center.x := (Fcoll_box_max[FSeriesNr, coll_nr].x |
+ Fcoll_box_min[FSeriesNr, coll_nr].x)/2; |
center.y := (Fcoll_box_max[FSeriesNr, coll_nr].y |
+ Fcoll_box_min[FSeriesNr, coll_nr].y)/2; |
center.z := (Fcoll_box_max[FSeriesNr, coll_nr].z |
+ Fcoll_box_min[FSeriesNr, coll_nr].z)/2; |
//step in eye position |
step.x := new_eye.x - old_eye.x; |
step.y := new_eye.y - old_eye.y; |
step.z := new_eye.z - old_eye.z; |
//collision is only possible when something moves |
if (abs(step.x) < 1e-3) and (abs(step.y) < 1e-3) and (abs(step.z) < 1e-3) |
then |
begin |
result := false; |
exit; |
end; |
//if FPercentLeftatTop is positiv then the conus is largest at the bottom |
xc := center.x; |
yc := center.y; |
zc := center.z; |
width3D := 10; //just to avoid warnings |
height3D := 10; |
case FOrientation3D of |
symmetric_x : |
begin |
height3D := Fcoll_box_max[FSeriesNr, coll_nr].x |
- Fcoll_box_min[FSeriesNr, coll_nr].x; |
width3D := (Fcoll_box_max[FSeriesNr, coll_Nr].y |
- Fcoll_box_min[FSeriesNr, coll_nr].y |
+ Fcoll_box_max[FSeriesNr, coll_nr].z |
- Fcoll_box_min[FSeriesNr, coll_nr].z)/2; |
//the top of the conus is maller than the bottom of it |
if FPercentLeftatTop >= 0 |
then |
xc := center.x - height3D/2 + 100 * height3D/(100 - FpercentLeftatTop) |
else |
xc := center.x + height3D/2 - 100 * height3D/(100 + FpercentLeftatTop); |
end; //end of symmetric_x |
symmetric_y : |
begin |
height3D := Fcoll_box_max[FSeriesNr, coll_nr].y |
- Fcoll_box_min[FSeriesNr, coll_nr].y; |
width3D := (Fcoll_box_max[FSeriesNr, coll_Nr].x |
- Fcoll_box_min[FSeriesNr, coll_nr].x |
+ Fcoll_box_max[FSeriesNr, coll_nr].z |
- Fcoll_box_min[FSeriesNr, coll_nr].z)/2; |
//the top of the conus is maller than the bottom of it |
if FPercentLeftatTop >= 0 |
then |
yc := center.y - height3D/2 + 100 * height3D/(100 - FpercentLeftatTop) |
else |
yc := center.y + height3D/2 - 100 * height3D/(100 + FpercentLeftatTop); |
end; //end of symmetric_y |
symmetric_z : |
begin |
height3D := Fcoll_box_max[FSeriesNr, coll_nr].z |
- Fcoll_box_min[FSeriesNr, coll_nr].z; |
width3D := (Fcoll_box_max[FSeriesNr, coll_Nr].x |
- Fcoll_box_min[FSeriesNr, coll_nr].x |
+ Fcoll_box_max[FSeriesNr, coll_nr].y |
- Fcoll_box_min[FSeriesNr, coll_nr].y)/2; |
//the top of the conus is maller than the bottom of it |
if FPercentLeftatTop >= 0 |
then |
zc := center.z - height3D/2 + 100 * height3D/(100 - FpercentLeftatTop) |
else |
zc := center.z + height3D/2 - 100 * height3D/(100 + FpercentLeftatTop); |
end; //end of symmetric_z |
end; //end of case |
//mathematically we need the conusfact describing the ratio between the radius of |
//the large end of the conus and the height of the conus |
if width3D > 0 |
then |
conusfact := height3D/2/width3D |
else |
conusfact := 1e9; |
//eye to the fictive tip of the conus distance |
dstep.x := old_eye.x - xc; |
dstep.y := old_eye.y - yc; |
dstep.z := old_eye.z - zc; |
d0 := 1; //just to avoid warnings |
d1 := 1; |
d2 := 1; |
//The conus is aligned parallel to the x, y or z axis |
case FOrientation3D of |
symmetric_x : |
begin |
//factors |
d0 := sqr(dstep.y) + sqr(dstep.z) - sqr(dstep.x * conusfact); |
d1 := 2 * (step.y * dstep.y + step.z * dstep.z |
- sqr(conusfact) * step.x * dstep.x); |
d2 := sqr(step.y) + sqr(step.z) - sqr(conusfact * step.x); |
end; |
symmetric_y : |
begin |
//factors |
d0 := sqr(dstep.x) + sqr(dstep.z) - sqr(dstep.y * conusfact); |
d1 := 2 * (step.x * dstep.x + step.z * dstep.z |
- sqr(conusfact) * step.y * dstep.y); |
d2 := sqr(step.x) + sqr(step.z) - sqr(conusfact * step.y); |
end; |
symmetric_z : |
begin |
//factors |
d0 := sqr(dstep.x) + sqr(dstep.y) - sqr(dstep.z * conusfact); |
d1 := 2 * (step.x * dstep.x + step.y * dstep.y |
- sqr(conusfact) * step.z * dstep.z); |
d2 := sqr(step.x) + sqr(step.y) - sqr(conusfact * step.z); |
end; |
end; //end of case FOrientation3D of |
//solving an equation of the second degree |
rod := sqr(d1) - 4 * d2 * d0; |
//d2 is never zero |
if rod >= 0 |
then |
begin |
//only then is the collision possible |
rod2 := sqrt(rod); |
t1 := (-d1 - rod2)/2/d2; |
t2 := (-d1 + rod2)/2/d2; |
// if longshot then look into all future |
if longshot |
then |
result := (t1 >= 0) or (t2 >= 0) |
else |
begin |
//collision in between the starting and the ending point if |
result := ((t1 >= 0) and (t1 <= 1)) |
or ((t2 >= 0) and (t2 <= 1)); |
end; |
// however the collision also affords that we are within the length of the conus |
if result then |
begin |
case FOrientation3D of |
symmetric_x : |
begin |
xc1 := old_eye.x + t1 * step.x; |
xc2 := old_eye.x + t2 * step.x; |
if longshot |
then |
result := |
(result and (t1 >= 0) and |
(xc1 >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc1 <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) ) |
or |
(result and (t2 >= 0) and |
(xc2 >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc2 <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) ) |
else |
result := |
(result and (t1 >= 0) and (t1 <= 1) and |
(xc1 >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc1 <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) ) |
or |
(result and (t2 >= 0) and (t2 <= 1) and |
(xc2 >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc2 <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) ); |
//if collision detected then exit now |
if result then exit; |
end; |
symmetric_y : |
begin |
yc1 := old_eye.y + t1 * step.y; |
yc2 := old_eye.y + t2 * step.y; |
if longshot |
then |
result := |
(result and (t1 >= 0) and |
(yc1 >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc1 <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)) ) |
or |
(result and (t2 >= 0) and |
(yc2 >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc2 <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)) ) |
else |
result := |
(result and (t1 >= 0) and (t1 <= 1) and |
(yc1 >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc1 <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)) ) |
or |
(result and (t2 >= 0) and (t2 <= 1) and |
(yc2 >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc2 <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)) ); |
//if collision detected then exit now |
if result then exit; |
end; |
symmetric_z : |
begin |
zc1 := old_eye.z + t1 * step.z; |
zc2 := old_eye.z + t2 * step.z; |
if longshot |
then |
result := |
(result and (t1 >= 0) and |
(zc1 >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc1 <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) ) |
or |
(result and (t2 >= 0) and |
(zc2 >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc2 <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) ) |
else |
result := |
(result and (t1 >= 0) and (t1 <= 1) and |
(zc1 >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc1 <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) ) |
or |
(result and (t2 >= 0) and (t2 <= 1) and |
(zc2 >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc2 <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) ); |
//if collision detected then exit now |
if result then exit; |
end; |
end; //end of case |
end; |
//exit if a collision occured |
if result then exit; |
end; |
//the collision may also occur with the end surfaces of the cylinder |
case FOrientation3D of |
symmetric_x : |
begin |
if step.x > 1e-6 |
then |
begin |
//1st end surface |
t1 := (Fcoll_box_min[FseriesNr, coll_Nr].x - old_eye.x)/step.x; |
yc1 := old_eye.y + t1 * step.y; |
zc1 := old_eye.z + t1 * step.z; |
distance := sqrt( sqr(yc1 - center.y) + sqr(zc1 - center.z) ); |
if FPercentLeftatTop >= 0 |
then |
radius := width3D/2 //the large end of the conus is down |
else |
radius := -width3D/2 * FPercentLeftatTop; |
radius := radius + bullet_radius; |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
//2nd end surface |
t1 := (Fcoll_box_max[FseriesNr, coll_Nr].x - old_eye.x)/step.x; |
yc1 := old_eye.y + t1 * step.y; |
zc1 := old_eye.z + t1 * step.z; |
distance := sqrt( sqr(yc1 - center.y) + sqr(zc1 - center.z) ); |
if FPercentLeftatTop >= 0 |
then |
radius := width3D/2 * FPercentLeftatTop //the small end of the conus is upwards |
else |
radius := width3D/2; |
radius := radius + bullet_radius; |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
end; |
end; |
symmetric_y : |
begin |
if step.y > 1e-6 |
then |
begin |
//1st end surface |
t1 := (Fcoll_box_min[FseriesNr, coll_Nr].y - old_eye.y)/step.y; |
xc1 := old_eye.x + t1 * step.x; |
zc1 := old_eye.z + t1 * step.z; |
distance := sqrt( sqr(xc1 - center.x) + sqr(zc1 - center.z) ); |
if FPercentLeftatTop >= 0 |
then |
radius := width3D/2 //the large end of the conus is down |
else |
radius := -width3D/2 * FPercentLeftatTop; |
radius := radius + bullet_radius; |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
//2nd end surface |
t1 := (Fcoll_box_max[FseriesNr, coll_Nr].y - old_eye.y)/step.y; |
xc1 := old_eye.x + t1 * step.x; |
zc1 := old_eye.z + t1 * step.z; |
distance := sqrt( sqr(xc1 - center.x) + sqr(zc1 - center.z) ); |
if FPercentLeftatTop >= 0 |
then |
radius := width3D/2 * FPercentLeftatTop //the small end of the conus is upwards |
else |
radius := width3D/2; |
radius := radius + bullet_radius; |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
end; |
end; |
symmetric_z : |
begin |
if step.z > 1e-6 |
then |
begin |
//1st end surface |
t1 := (Fcoll_box_min[FseriesNr, coll_Nr].z - old_eye.z)/step.z; |
xc1 := old_eye.x + t1 * step.x; |
yc1 := old_eye.y + t1 * step.y; |
distance := sqrt( sqr(xc1 - center.x) + sqr(yc1 - center.y) ); |
if FPercentLeftatTop >= 0 |
then |
radius := width3D/2 //the large end of the conus is down |
else |
radius := width3D/2 * FPercentLeftatTop; |
radius := radius + bullet_radius; |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
//2nd end surface |
t1 := (Fcoll_box_max[FseriesNr, coll_Nr].z - old_eye.z)/step.z; |
xc1 := old_eye.x + t1 * step.x; |
yc1 := old_eye.y + t1 * step.y; |
distance := sqrt( sqr(xc1 - center.x) + sqr(yc1 - center.y) ); |
if FPercentLeftatTop >= 0 |
then |
radius := -width3D/2 * FPercentLeftatTop //the small end of the conus is upwards |
else |
radius := width3D/2; |
radius := radius + bullet_radius; |
result := (distance < radius) and (t1 >= 0); |
if not longshot then result := result and (t1 <= 1); |
if result then exit; |
end; |
end; |
end; //end of case |
end; //end of coll_test_conus |
function TcollisionTester3DX.coll_test_box(coll_nr : byte; |
old_attacker_position, attacker_position : TD3DVector; |
bullet_radius : TD3DValue; longshot : boolean): boolean; |
var |
new_eye, old_eye : TD3DVector; |
step : TD3DVector; |
t1, xc, yc, zc : TD3DValue; |
begin |
result := false; |
//Get the coordinates of the old eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(old_eye, old_attacker_position); |
//Get the coordinates of the eye_position in the actual coll frame |
FFrameSeries[FSeriesIndex, FNrinFrameSeries[FSeriesNr, coll_nr]].InverseTransform |
(new_eye, attacker_position); |
//step in eye position |
step.x := new_eye.x - old_eye.x; |
step.y := new_eye.y - old_eye.y; |
step.z := new_eye.z - old_eye.z; |
//collision is only possible when something moves |
if (abs(step.x) < 1e-3) and (abs(step.y) < 1e-3) and (abs(step.z) < 1e-3) |
then |
begin |
result := false; |
exit; |
end; |
//check the surfaces which are normal to the x-axis |
if abs(step.x) >= 1E-6 |
then |
begin |
//test 1st surface |
t1 := (Fcoll_box_min[FseriesNr, coll_nr].x - old_eye.x)/step.x; |
//collision point |
zc := old_eye.z + t1 * step.z; |
yc := old_eye.y + t1 * step.y; |
//collision if the collision point is close enough to the surface |
result := |
(zc >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) and |
(yc >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)); |
if longshot |
then result := result and (t1 >= 0) |
else result := result and (t1 >= 0) and (t1 <= 1); |
//if collision detected then exit now |
if result then exit; |
//test 2nd surface |
t1 := (Fcoll_box_max[FseriesNr, coll_nr].x - old_eye.x)/step.x; |
//collision point |
zc := old_eye.z + t1 * step.z; |
yc := old_eye.y + t1 * step.y; |
//collision if the collision point is close enough to the surface |
result := |
(zc >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)) and |
(yc >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)); |
if longshot |
then result := result and (t1 >= 0) |
else result := result and (t1 >= 0) and (t1 <= 1); |
//if collision detected then exit now |
if result then exit; |
end; //end of step.x <> 0 |
//check the surfaces which are normal to the y-axis |
if abs(step.y) >= 1E-6 |
then |
begin |
//test 1st surface |
t1 := (Fcoll_box_min[FseriesNr, coll_nr].y - old_eye.y)/step.y; |
//collision point |
xc := old_eye.x + t1 * step.x; |
zc := old_eye.z + t1 * step.z; |
//collision if the collision point is close enough to the surface |
result := |
(xc >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) and |
(zc >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)); |
if longshot |
then result := result and (t1 >= 0) |
else result := result and (t1 >= 0) and (t1 <= 1); |
//if collision detected then exit now |
if result then exit; |
//test 2nd surface |
t1 := (Fcoll_box_max[FseriesNr, coll_nr].y - old_eye.y)/step.y; |
//collision point |
xc := old_eye.x + t1 * step.x; |
zc := old_eye.z + t1 * step.z; |
//collision if the collision point is close enough to the surface |
result := |
(xc >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) and |
(zc >= (Fcoll_box_min[FseriesNr, coll_nr].z - bullet_radius)) and |
(zc <= (Fcoll_box_max[FseriesNr, coll_nr].z + bullet_radius)); |
if longshot |
then result := result and (t1 >= 0) |
else result := result and (t1 >= 0) and (t1 <= 1); |
//if collision detected then exit now |
if result then exit; |
end; //end of step.y <> 0 |
//check the surfaces which are normal to the z-axis |
if abs(step.z) >= 1E-6 |
then |
begin |
//test 1st surface |
t1 := (Fcoll_box_min[FseriesNr, coll_nr].z - old_eye.z)/step.z; |
//collision point |
xc := old_eye.x + t1 * step.x; |
yc := old_eye.y + t1 * step.y; |
//collision if the collision point is close enough to the surface |
result := |
(xc >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) and |
(yc >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)); |
if longshot |
then result := result and (t1 >= 0) |
else result := result and (t1 >= 0) and (t1 <= 1); |
//if collision detected then exit now |
if result then exit; |
//test 2nd surface |
t1 := (Fcoll_box_max[FseriesNr, coll_nr].z - old_eye.z)/step.z; |
//collision point |
xc := old_eye.x + t1 * step.x; |
yc := old_eye.y + t1 * step.y; |
//collision if the collision point is close enough to the surface |
result := |
(xc >= (Fcoll_box_min[FseriesNr, coll_nr].x - bullet_radius)) and |
(xc <= (Fcoll_box_max[FseriesNr, coll_nr].x + bullet_radius)) and |
(yc >= (Fcoll_box_min[FseriesNr, coll_nr].y - bullet_radius)) and |
(yc <= (Fcoll_box_max[FseriesNr, coll_nr].y + bullet_radius)); |
if longshot |
then result := result and (t1 >= 0) |
else result := result and (t1 >= 0) and (t1 <= 1); |
//if collision detected then exit now |
if result then exit; |
end; //end of step.z <> 0 |
end; //end of coll_test_box |
function TCollisionTester3DX.BulletDead:boolean; |
var |
camera_position, bullet_position : TD3DVector; |
Distance : TD3DValue; |
begin |
FBulletFrame.GetPosition(FDXDrawUsed.Scene, bullet_position); |
FDXDrawUsed.Camera.GetPosition(FDXDrawUsed.Scene, camera_position); |
Distance := sqr(Bullet_position.x - camera_position.x) |
+ sqr(Bullet_position.y - camera_position.y) |
+ sqr(Bullet_position.z - camera_position.z); |
//remove the bullet if it is beyond the bulletrange or if it is a longshot |
result := (sqrt(Distance) > FBulletRange) or FLongShots; |
end; //end of BulletDead |
//use this function to check whether the camera or an object in a distance of |
// -from camera- from the camera collides with any collision object |
function TCollisionTester3DX.collision: boolean; |
var |
i : integer; |
camera_position, camera_direction, camera_up : TD3DVECTOR; |
eye_position : TD3DVector; |
begin |
Result := false; |
FBullet_HitlinkNr := -1; |
if CheckForSeriesIndex(FSeriesIndex) |
then |
begin |
//The series exists |
if Fcoll_Nr_objects[FSeriesNr] > 0 |
then |
begin |
//The series is not empty |
//Get the position of the camera |
FDXDrawUsed.Camera.GetPosition(FDXDrawUsed.Scene, camera_position); |
FDXDrawUsed.camera.GetOrientation(FDXDrawUsed.scene, camera_direction, camera_up); |
//calculate the eye position |
eye_position.x := camera_position.x + FFrontDistance * camera_direction.x; |
eye_position.y := camera_position.y + FFrontDistance * camera_direction.y; |
eye_position.z := camera_position.z + FFrontDistance * camera_direction.z; |
//test whether the eye collides with any of the collision objects |
i := 0; |
while (not result) and (i < Fcoll_nr_objects[FSeriesNr]) do //0.. |
begin |
case Fcoll_shape[FSeriesNr, i] of |
box3D : Result := coll_test_box(i, FOldEyePosition, |
eye_position, FHeadRadius, false); |
sphere3D : Result := coll_test_sphere(i, FOldEyePosition, |
eye_position, FHeadRadius, false); |
cylinder3D : Result := coll_test_cylinder(i, FOldEyePosition, |
eye_position, FHeadRadius, false); |
ellipsoid3D: Result := coll_test_ellipsoid(i, FOldEyePosition, |
eye_position, FHeadRadius, false); |
conus3D : Result := coll_test_conus(i, FOldEyePosition, |
eye_position, FHeadRadius, false); |
end; |
if result then Fbullet_hitLinkNr := Fcoll_objectnr[FseriesNr, i]; |
inc(i); |
end; |
end; |
end; //end of if checkforseriesIndex |
if result |
then |
ListDataForCollObject; |
end; //end of collision |
//use this function to check whether an object sent from the camera collides |
//with any collision object |
function TCollisionTester3DX.BulletCollision: boolean; |
var |
i: integer; |
bullet_position : TD3DVector; |
begin |
Result := false; |
FBullet_HitLinkNr := -1; |
if checkForSeriesIndex(FSeriesIndex) |
then |
begin |
//Series exists |
//test whether eye collides with any of the collision objects |
if Fcoll_Nr_objects[FSeriesNr] > 0 |
then |
begin |
//Get position of the bullet |
FBulletFrame.GetPosition(FDXDrawUsed.Scene, bullet_position); |
i := 0; |
while (not result) and (i < Fcoll_Nr_objects[FSeriesNr]) do //0.. |
begin |
if FColl_Shootable[FseriesNr, i] or |
(FColl_material[FSeriesNr, i] = solid3D) |
then |
begin |
case Fcoll_shape[FSeriesNr, i] of |
box3D : result := coll_test_box(i, FOldBulletPosition, |
bullet_position, |
FBulletRadius, FLongShots); |
sphere3D : result := coll_test_sphere(i, FOldBulletPosition, |
bullet_position, |
FBulletRadius, FLongShots); |
cylinder3D : result := coll_test_cylinder(i, FOldBulletPosition, |
bullet_position, |
FBulletRadius, FLongShots); |
ellipsoid3D: result := coll_test_ellipsoid(i, FOldBulletPosition, |
bullet_position, |
FBulletRadius, FLongShots); |
conus3D : result := coll_test_conus(i, FOldBulletPosition, |
bullet_position, |
FBulletRadius, FLongShots); |
end; //end case |
end; //end of if.. |
if result |
then |
FBullet_HitLinkNr := Fcoll_ObjectNr[FSeriesNr, i]; |
inc(i); |
end; //end of while |
if result |
then |
ListDataForCollObject; |
end; //end if Fcoll_Nr_ob.... |
end; //end if checkForSeriesIndex... |
end; //end of bullet_collision |
procedure TCollisionTester3DX.GetOldBulletPos; |
begin |
FbulletFrame.GetPosition(FDXDrawUsed.Scene, FOldBulletPosition); |
end; //end of GetOldBulletPos |
procedure TCollisionTester3DX.GetOldEyePos; |
var |
OldPos, camera_direction, camera_up : TD3DVector; |
begin |
FDXDrawUsed.Camera.GetPosition(FDXDrawUsed.Scene, OldPos); |
FDXDrawUsed.Camera.GetOrientation(FDXDrawUsed.Scene, camera_direction, camera_up); |
FOldEyePosition.x := OldPos.x + FFrontDistance * camera_direction.x; |
FOldEyePosition.y := OldPos.y + FFrontDistance * camera_direction.y; |
FOldEyePosition.z := OldPos.z + FFrontDistance * camera_direction.z; |
end; //end of GetOldEyePos |
end. |
/VCL_DELPHIX_D6/D3DUtils.pas |
---|
0,0 → 1,1317 |
unit D3DUtils; |
interface |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Math, |
{$IFDEF StandardDX} |
{$IFDEF VER14UP} DXTypes, {$ENDIF} Direct3D, DirectDraw; |
{$ELSE} |
DirectX; |
{$ENDIF} |
const |
g_PI = 3.14159265358979323846; // Pi |
g_Uhel = g_PI / 180; |
g_2_PI = 6.28318530717958623200; // 2 * Pi |
g_PI_DIV_2 = 1.57079632679489655800; // Pi / 2 |
g_PI_DIV_4 = 0.78539816339744827900; // Pi / 4 |
g_INV_PI = 0.31830988618379069122; // 1 / Pi |
g_DEGTORAD = 0.01745329251994329547; // Degrees to Radians |
g_RADTODEG = 57.29577951308232286465; // Radians to Degrees |
g_HUGE = 1.0E+38; // Huge number for FLOAT |
g_EPSILON = 1.0E-5; // Tolerance for FLOATs |
type |
TD2DVector = packed record |
X, Y: Single; |
end; |
TD3DHVector = packed record |
X, Y, Z, W: Single; |
end; |
TQuaternion = packed record |
case Integer of |
0: (X, Y, Z, W: Single); //like TD3DHVector |
1: ( |
V: TD3DVector; |
); |
end; |
function ProjectionMatrix(near_plane, far_plane, fov_horiz, fov_vert: real): TD3DMatrix; {$IFDEF VER9UP}inline; {$ENDIF} |
//-------------------------- |
// 3D Vector |
//-------------------------- |
function MakeD3DVector(x, y, z: TD3DValue): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function MakeD2DVector(x, y: TD3DValue): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function MakeD3DVertex(hv, nv: TD3DVector; tu, tv: TD3DValue): TD3DVertex; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function MakeD3DVertex(hx, hy, hz, nx, ny, nz, tu, tv: TD3DValue): TD3DVertex; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function MakeD3DLVertex(hv: TD3DVector; col, sp: DWORD; tu, tv: TD3DValue): TD3DLVertex; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function MakeD3DLVertex(hx, hy, hz: TD3DValue; col, sp: DWORD; tu, tv: TD3DValue): TD3DLVertex; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function MakeD3DTLVertex(hx, hy, hz, rhw: TD3DValue; col, sp: DWORD; tu, tv: TD3DValue): TD3DTLVERTEX; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function MakeD3DTLVertex(hv: TD3DVector; rhw: TD3DValue; col, sp: DWORD; tu, tv: TD3DValue): TD3DTLVERTEX; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function Vector2RGBA(const v: TD3DVector; fHeight: Single): DWord; {$IFDEF VER9UP}inline; {$ENDIF} |
function VectorToRGB(NormalVector: TD3DVector): DWORD; {$IFDEF VER9UP}inline; {$ENDIF} |
//-------------------------- |
// 3D Vector |
//-------------------------- |
function Quaternion(_w, _x, _y, _z: Single): TQuaternion; |
function QuaternionLength(const a: TQuaternion): Single; |
function QuaternionNormalize(const a: TQuaternion): TQuaternion; |
function D3DMath_VecNormalize(const v: TD3DVector): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_VecViewScreenize(const v: TD3DHVector): TD3DHVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_VecHeterogenize(const hv: TD3DHVector; _div: Boolean{$IFDEF VER4UP} = False{$ENDIF}): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_VecHomogenize(const v: TD3DVector): TD3DHVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_VecTransform(const a: TD3DHVector; const m: TD3DMATRIX): TD3DHVector; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_VecTransform(const a: TD3DVector; const m: TD3DMATRIX): TD3DVector; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3Length(const v: TD3DVector): TD3DValue; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3LengthSq(const v: TD3DVector): TD3DValue; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3Dot(const v1, v2: TD3DVector): TD3DValue; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3Cross(const v1, v2: TD3DVector): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3Add(const v1, v2: TD3DVector): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3Subtract(const v1, v2: TD3DVector): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3Minimize(const v1, v2: TD3DVector): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3Maximize(const v1, v2: TD3DVector): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3Scale(const v: TD3DVector; const s: TD3DValue): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_Vec3Lerp(out vOut: TD3DVector; const v1, v2: TD3DVector; const s: TD3DValue): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_IsZero(a: Double; fTol: Double { = g_EPSILON}): Boolean; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DMath_QuaternionFromRotation(var x, y, z, w: Double; const v: TD3DVector; fTheta: Double); overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_QuaternionFromRotation(const axis: TD3DVector; const r: Double): TQuaternion; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DMath_RotationFromQuaternion(var v: TD3DVector; var fTheta: Double; x, y, z, w: Double); {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DMath_QuaternionFromAngles(var x, y, z, w: Double; fYaw, fPitch, fRoll: Double); {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DMath_MatrixFromQuaternion(var mat: TD3DMatrix; x, y, z, w: Double); overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_MatrixFromQuaternion(q: TQuaternion): TD3DMatrix; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DMath_QuaternionFromMatrix(var x, y, z, w: Double; var mat: TD3DMatrix); {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DMath_QuaternionMultiply(var Qx, Qy, Qz, Qw: Double; Ax, Ay, Az, Aw, Bx, By, Bz, Bw: Double); overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_QuaternionMultiply(a, b: TQuaternion): TQuaternion; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DMath_QuaternionSlerp(var Qx, Qy, Qz, Qw: Double; Ax, Ay, Az, Aw, Bx, By, Bz, Bw, fAlpha: Double); overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_QuaternionSlerp(A, B: TQuaternion; fAlpha: Double): TQuaternion; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DUtil_InitSurfaceDesc(var ddsd: TDDSurfaceDesc2; dwFlags, dwCaps: DWORD); {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DUtil_InitMaterial(var mtrl: TD3DMaterial7; r, g, b, a: Double); {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DUtil_InitLight(var light: TD3DLight7; ltType: TD3DLightType; x, y, z: Double); {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DMath_MatrixMultiply(var q: TD3DMatrix; const a, b: TD3DMatrix); overload; |
function D3DMath_MatrixMultiply(const a, b: TD3DMatrix): TD3DMatrix; overload; |
function D3DMath_MatrixInvert(var q: TD3DMatrix; const a: TD3DMatrix): HResult; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_MatrixInvert(const a: TD3DMatrix): TD3DMatrix; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_VectorMatrixMultiply(var vDest: TD3DVector; const vSrc: TD3DVector; const mat: TD3DMatrix): HResult; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DMath_VertexMatrixMultiply(var vDest: TD3DVertex; const vSrc: TD3DVertex; const mat: TD3DMatrix): HResult; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DUtil_SetIdentityMatrix(out m: TD3DMatrix); overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetIdentityMatrix: TD3DMatrix; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetScaleMatrix(const x, y, z: Single): TD3DMatrix; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetViewMatrix(var mat: TD3DMatrix; const vFrom, vAt, vWorldUp: TD3DVector): HResult; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetProjectionMatrix(var mat: TD3DMatrix; fFOV, fAspect, fNearPlane, fFarPlane: Double): HResult; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DUtil_SetRotateXMatrix(var mat: TD3DMatrix; fRads: Double); overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetRotateXMatrix(fRads: Double): TD3DMatrix; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DUtil_SetRotateYMatrix(var mat: TD3DMatrix; fRads: Double); overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetRotateYMatrix(fRads: Double): TD3DMatrix; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DUtil_SetRotateZMatrix(var mat: TD3DMatrix; fRads: Double); overload; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetRotateZMatrix(fRads: Double): TD3DMatrix; overload; {$IFDEF VER9UP}inline; {$ENDIF} |
procedure D3DUtil_SetRotationMatrix(var mat: TD3DMatrix; var vDir: TD3DVector; fRads: Double); {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetRotationMatrixByX(const a: TD3DVector; const r: Double): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetRotationMatrixByY(const a: TD3DVector; const r: Double): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DUtil_SetRotationMatrixByZ(const a: TD3DVector; const r: Double): TD3DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DCOLOR_ARGB(a, r, g, b: Cardinal): TD3DColor; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DCOLOR_RGBA(r, g, b, a: Cardinal): TD3DColor; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DCOLOR_XRGB(r, g, b: Cardinal): TD3DColor; {$IFDEF VER9UP}inline; {$ENDIF} |
function D3DCOLOR_COLORVALUE(r, g, b, a: Single): TD3DColor; {$IFDEF VER9UP}inline; {$ENDIF} |
// simple D2D operation |
function D2DMath_VecAdd(const a: TD2DVector; const b: TD2DVector): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecSub(const a: TD2DVector; const b: TD2DVector): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecDotProduct(const a, b: TD2DVector): Single; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecDistance(const a, b: TD2DVector): Single; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecLength(const a: TD2DVector): Single; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecNormalize(const a: TD2DVector): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecToAngle(const a: TD2DVector): Double; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecRot(const a: TD2DVector; const angle: Double): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecScale(const a: TD2DVector; const scale: Double): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecChangeLength(const a: TD2DVector; const k: Single): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecLookAt(const pos: TD2DVector; const target: TD2DVector; const k: Single): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecRandom2D(const k: Single): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
function D2DMath_VecLerp(const a: TD2DVector; const b: TD2DVector; const rate: Single): TD2DVector; {$IFDEF VER9UP}inline; {$ENDIF} |
implementation |
//function RSin(val: Integer): Double; {$IFDEF VER9UP}inline; {$ENDIF} |
//begin |
// Result := Sin(val / 2048.0 * Pi); |
//end; |
// |
//function RCos(val: Integer): Double; {$IFDEF VER9UP}inline; {$ENDIF} |
//begin |
// Result := Cos(val / 2048.0 * Pi); |
//end; |
function Quaternion(_w, _x, _y, _z: Single): TQuaternion; |
begin |
Result.W := _w; |
Result.X := _x; |
Result.Y := _y; |
Result.Z := _z; |
end; |
function QuaternionLength(const a: TQuaternion): Single; |
begin |
Result := Sqrt(a.w * a.w + a.x * a.x + a.y * a.y + a.z * a.z); |
end; |
function QuaternionNormalize(const a: TQuaternion): TQuaternion; |
var |
len: Single; |
begin |
len := QuaternionLength(a); |
if len = 0.0 then |
begin |
Result := Quaternion(1, 0, 0, 0); |
Exit; |
end; |
Result.x := a.X / len; |
Result.y := a.Y / len; |
Result.z := a.Z / len; |
Result.w := a.W / len; |
end; |
function GetMatrixFromQuaternion(const a: TQuaternion): TD3DMatrix; |
begin |
end; |
function D3DCOLOR_ARGB(a, r, g, b: Cardinal): TD3DColor; |
begin |
Result := (a shl 24) or (r shl 16) or (g shl 8) or b; |
end; |
function D3DCOLOR_RGBA(r, g, b, a: Cardinal): TD3DColor; |
begin |
Result := D3DCOLOR_ARGB(a, r, g, b); |
end; |
function D3DCOLOR_XRGB(r, g, b: Cardinal): TD3DColor; |
begin |
Result := D3DCOLOR_ARGB($FF, r, g, b); |
end; |
function D3DCOLOR_COLORVALUE(r, g, b, a: Single): TD3DColor; |
begin |
Result := D3DCOLOR_RGBA(Byte(Round(r * 255)), Byte(Round(g * 255)), Byte(Round(b * 255)), Byte(Round(a * 255))) |
end; |
function MakeD3DVector(x, y, z: TD3DValue): TD3DVector; |
begin |
Result.x := x; |
Result.y := y; |
Result.z := z; |
end; |
function MakeD2DVector(x, y: TD3DValue): TD2DVector; |
begin |
Result.x := x; |
Result.y := y; |
end; |
function MakeD3DVertex(hv, nv: TD3DVector; tu, tv: TD3DValue): TD3DVertex; |
begin |
Result.x := hv.x; |
Result.y := hv.y; |
Result.z := hv.z; |
Result.nx := nv.x; |
Result.ny := nv.y; |
Result.nz := nv.z; |
Result.tu := tu; |
Result.tv := tv; |
end; |
function MakeD3DVertex(hx, hy, hz, nx, ny, nz, tu, tv: TD3DValue): TD3DVertex; |
begin |
Result.x := hx; |
Result.y := hy; |
Result.z := hz; |
Result.nx := nx; |
Result.ny := ny; |
Result.nz := nz; |
Result.tu := tu; |
Result.tv := tv; |
end; |
function MakeD3DLVertex(hv: TD3DVector; col, sp: DWORD; tu, tv: TD3DValue): TD3DLVertex; |
begin |
FillChar(Result, SizeOf(Result), 0); |
Result.x := hv.x; |
Result.y := hv.y; |
Result.z := hv.z; |
Result.color := col; |
Result.specular := sp; |
Result.tu := tu; |
Result.tv := tv; |
end; |
function MakeD3DLVertex(hx, hy, hz: TD3DValue; col, sp: DWORD; tu, tv: TD3DValue): TD3DLVertex; |
begin |
FillChar(Result, SizeOf(Result), 0); |
Result.x := hx; |
Result.y := hy; |
Result.z := hz; |
Result.color := col; |
Result.specular := sp; |
Result.tu := tu; |
Result.tv := tv; |
end; |
function MakeD3DTLVertex(hx, hy, hz, rhw: TD3DValue; col, sp: DWORD; tu, tv: TD3DValue): TD3DTLVERTEX; |
begin |
Result.sx := hx; |
Result.sy := hy; |
Result.sz := hz; |
Result.dvRHW := rhw; |
Result.color := col; |
Result.specular := sp; |
Result.tu := tu; |
Result.tv := tv; |
end; |
function MakeD3DTLVertex(hv: TD3DVector; rhw: TD3DValue; col, sp: DWORD; tu, tv: TD3DValue): TD3DTLVERTEX; |
begin |
Result.sx := hv.x; |
Result.sy := hv.y; |
Result.sz := hv.z; |
Result.dvRHW := rhw; |
Result.color := col; |
Result.specular := sp; |
Result.tu := tu; |
Result.tv := tv; |
end; |
function Vector2RGBA(const v: TD3DVector; fHeight: Single): DWord; |
var |
r, g, b, a: DWord; |
begin |
r := Round(127.0 * v.x + 128.0); |
g := Round(127.0 * v.y + 128.0); |
b := Round(127.0 * v.z + 128.0); |
a := Round(255.0 * fHeight); |
Result := ((a shl 24) + (r shl 16) + (g shl 8) + (b shl 0)); |
end; |
function VectorToRGB(NormalVector: TD3DVector): DWORD; |
var dwR, dwG, dwB: DWORD; |
begin |
dwR := Round(127 * NormalVector.x + 128); |
dwG := Round(127 * NormalVector.y + 128); |
dwB := Round(127 * NormalVector.z + 128); |
Result := $FF000000 + dwR shl 16 + dwG shl 8 + dwB; |
end; |
function ProjectionMatrix(near_plane, // distance to near clipping plane |
far_plane, // distance to far clipping plane |
fov_horiz, // horizontal field of view angle, in radians |
fov_vert: real): TD3DMatrix; // vertical field of view angle, in radians |
var h, w, Q: real; |
begin |
Fov_horiz := g_Uhel * Fov_horiz; |
Fov_Vert := g_Uhel * Fov_Vert; |
w := cotan(fov_horiz * 0.5); |
h := cotan(fov_vert * 0.5); |
Q := far_plane / (far_plane - near_plane); |
result._11 := w; |
result._22 := h; |
result._33 := Q; |
result._43 := -Q * near_plane; |
result._34 := 1; |
end; |
// end of ProjectionMatrix() |
//-------------------------- |
// 3D Vector |
//-------------------------- |
function D3DMath_VecNormalize(const v: TD3DVector): TD3DVector; |
var |
len: Single; |
begin |
len := D3DMath_Vec3Length(v); |
if len = 0 then |
FillChar(Result, SizeOf(Result), 0) |
else |
begin |
Result.X := v.X / len; |
Result.Y := v.Y / len; |
Result.Z := v.Z / len; |
end; |
end; |
function D3DMath_VecViewScreenize(const v: TD3DHVector): TD3DHVector; |
begin |
with Result do |
begin |
if v.W <> 0.0 then |
begin |
W := 1.0 / v.W; |
X := v.X * W; |
Y := v.Y * W; |
Z := v.Z * W; |
end; |
end; |
end; |
function D3DMath_VecHeterogenize(const hv: TD3DHVector; _div: Boolean): TD3DVector; |
var |
d: Single; |
begin |
if not _div then |
begin |
Result.x := hv.X; |
Result.y := hv.Y; |
Result.z := hv.Z; |
end |
else |
begin |
d := 1.0 / hv.w; |
Result.x := hv.x * d; |
Result.y := hv.y * d; |
Result.z := hv.z * d; |
end; |
end; |
function D3DMath_VecHomogenize(const v: TD3DVector): TD3DHVector; |
begin |
Move(v, result, Sizeof(TD3DVector)); |
result.W := 1.0; |
end; |
function D3DMath_VecTransform(const a: TD3DHVector; const m: TD3DMATRIX): TD3DHVector; |
begin |
result.X := a.X * m._11 + a.Y * m._21 + a.Z * m._31 + a.W * m._41; |
result.Y := a.X * m._12 + a.Y * m._22 + a.Z * m._32 + a.W * m._42; |
result.Z := a.X * m._13 + a.Y * m._23 + a.Z * m._33 + a.W * m._43; |
result.W := a.X * m._14 + a.Y * m._24 + a.Z * m._34 + a.W * m._44; |
end; |
function D3DMath_VecTransform(const a: TD3DVector; const m: TD3DMATRIX): TD3DVector; |
begin |
result.X := a.X * m._11 + a.Y * m._21 + a.Z * m._31 + m._41; |
result.Y := a.X * m._12 + a.Y * m._22 + a.Z * m._32 + m._42; |
result.Z := a.X * m._13 + a.Y * m._23 + a.Z * m._33 + m._43; |
end; |
function D3DMath_Vec3Length(const v: TD3DVector): TD3DValue; |
begin |
with v do Result := Sqrt(Sqr(x) + Sqr(y) + Sqr(z)); |
end; |
function D3DMath_Vec3LengthSq(const v: TD3DVector): TD3DValue; |
begin |
with v do Result := Sqr(x) + Sqr(y) + Sqr(z); |
end; |
function D3DMath_Vec3Dot(const v1, v2: TD3DVector): TD3DValue; |
begin |
Result := v1.x * v2.x + v1.y * v2.y + v1.z * v2.z; |
end; |
function D3DMath_Vec3Cross(const v1, v2: TD3DVector): TD3DVector; |
begin |
Result.x := v1.y * v2.z - v1.z * v2.y; |
Result.y := v1.z * v2.x - v1.x * v2.z; |
Result.z := v1.x * v2.y - v1.y * v2.x; |
end; |
function D3DMath_Vec3Add(const v1, v2: TD3DVector): TD3DVector; |
begin |
Result.x := v1.x + v2.x; |
Result.y := v1.y + v2.y; |
Result.z := v1.z + v2.z; |
end; |
function D3DMath_Vec3Subtract(const v1, v2: TD3DVector): TD3DVector; |
begin |
Result.x := v1.x - v2.x; |
Result.y := v1.y - v2.y; |
Result.z := v1.z - v2.z; |
end; |
// Minimize each component. x = min(x1, x2), y = min(y1, y2) |
function D3DMath_Vec3Minimize(const v1, v2: TD3DVector): TD3DVector; |
begin |
if v1.x < v2.x then Result.x := v1.x else Result.x := v2.x; |
if v1.y < v2.y then Result.y := v1.y else Result.y := v2.y; |
if v1.z < v2.z then Result.z := v1.z else Result.z := v2.z; |
end; |
// Maximize each component. x = max(x1, x2), y = max(y1, y2) |
function D3DMath_Vec3Maximize(const v1, v2: TD3DVector): TD3DVector; |
begin |
if v1.x > v2.x then Result.x := v1.x else Result.x := v2.x; |
if v1.y > v2.y then Result.y := v1.y else Result.y := v2.y; |
if v1.z > v2.z then Result.z := v1.z else Result.z := v2.z; |
end; |
function D3DMath_Vec3Scale(const v: TD3DVector; const s: TD3DValue): TD3DVector; |
begin |
Result.x := v.x * s; |
Result.y := v.y * s; |
Result.z := v.z * s; |
end; |
// Linear interpolation. V1 + s(V2-V1) |
function D3DMath_Vec3Lerp(out vOut: TD3DVector; const v1, v2: TD3DVector; const s: TD3DValue): TD3DVector; |
begin |
Result.x := v1.x + s * (v2.x - v1.x); |
Result.y := v1.y + s * (v2.y - v1.y); |
Result.z := v1.z + s * (v2.z - v1.z); |
end; |
//----------------------------------------------------------------------------- |
// File: D3DMath.cpp |
// |
// Desc: Shortcut macros and functions for using DX objects |
// |
// Copyright (c) 1997-1999 Microsoft Corporation. All rights reserved |
//----------------------------------------------------------------------------- |
function D3DMath_IsZero(a: Double; fTol: Double { = g_EPSILON}): Boolean; |
begin |
if a < 0 then |
Result := a >= -fTol |
else |
Result := a <= fTol; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_MatrixMultiply() |
// Desc: Does the matrix operation: [Q] = [A] * [B]. Note that the order of |
// this operation was changed from the previous version of the DXSDK. |
//----------------------------------------------------------------------------- |
procedure D3DMath_MatrixMultiply(var q: TD3DMatrix; const a, b: TD3DMatrix); |
type |
PArrayD3DValue = ^TArrayD3DValue; |
TArrayD3DValue = array[0..15] of TD3DValue; |
var |
pA, pB, pQ: PArrayD3DValue; |
i, j, k: Integer; |
qq: TD3DMatrix; |
begin |
FillChar(qq, SizeOf(qq), 0); |
pA := @a; |
pB := @b; |
pQ := @qq; |
for i := 0 to 3 do |
for j := 0 to 3 do |
for k := 0 to 3 do |
pQ[4 * i + j] := pQ[4 * i + j] + pA[4 * i + k] * pB[4 * k + j]; |
q := qq; {== protect of recurrence} |
end; |
function D3DMath_MatrixMultiply(const a, b: TD3DMatrix): TD3DMatrix; |
begin |
D3DMath_MatrixMultiply(Result, a, b); |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_MatrixInvert() |
// Desc: Does the matrix operation: [Q] = inv[A]. Note: this function only |
// works for matrices with [0 0 0 1] for the 4th column. |
//----------------------------------------------------------------------------- |
function D3DMath_MatrixInvert(var q: TD3DMatrix; const a: TD3DMatrix): HResult; |
var |
fDetInv: Double; |
begin |
if (abs(a._44 - 1.0) > 0.001) or (abs(a._14) > 0.001) or (abs(a._24) > 0.001) or (abs(a._34) > 0.001) then |
begin |
Result := E_INVALIDARG; |
Exit; |
end; |
fDetInv := 1.0 / (a._11 * (a._22 * a._33 - a._23 * a._32) - |
a._12 * (a._21 * a._33 - a._23 * a._31) + |
a._13 * (a._21 * a._32 - a._22 * a._31)); |
q._11 := fDetInv * (a._22 * a._33 - a._23 * a._32); |
q._12 := -fDetInv * (a._12 * a._33 - a._13 * a._32); |
q._13 := fDetInv * (a._12 * a._23 - a._13 * a._22); |
q._14 := 0.0; |
q._21 := -fDetInv * (a._21 * a._33 - a._23 * a._31); |
q._22 := fDetInv * (a._11 * a._33 - a._13 * a._31); |
q._23 := -fDetInv * (a._11 * a._23 - a._13 * a._21); |
q._24 := 0.0; |
q._31 := fDetInv * (a._21 * a._32 - a._22 * a._31); |
q._32 := -fDetInv * (a._11 * a._32 - a._12 * a._31); |
q._33 := fDetInv * (a._11 * a._22 - a._12 * a._21); |
q._34 := 0.0; |
q._41 := -(a._41 * q._11 + a._42 * q._21 + a._43 * q._31); |
q._42 := -(a._41 * q._12 + a._42 * q._22 + a._43 * q._32); |
q._43 := -(a._41 * q._13 + a._42 * q._23 + a._43 * q._33); |
q._44 := 1.0; |
Result := S_OK; |
end; |
function D3DMath_MatrixInvert(const a: TD3DMatrix): TD3DMatrix; |
begin |
if D3DMath_MatrixInvert(Result, a) <> S_OK then |
FillChar(Result, SizeOf(Result), 0); |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_VectorMatrixMultiply() |
// Desc: Multiplies a vector by a matrix |
//----------------------------------------------------------------------------- |
function D3DMath_VectorMatrixMultiply(var vDest: TD3DVector; const vSrc: TD3DVector; |
const mat: TD3DMatrix): HResult; |
var |
x, y, z, w: Double; |
begin |
x := vSrc.x * mat._11 + vSrc.y * mat._21 + vSrc.z * mat._31 + mat._41; |
y := vSrc.x * mat._12 + vSrc.y * mat._22 + vSrc.z * mat._32 + mat._42; |
z := vSrc.x * mat._13 + vSrc.y * mat._23 + vSrc.z * mat._33 + mat._43; |
w := vSrc.x * mat._14 + vSrc.y * mat._24 + vSrc.z * mat._34 + mat._44; |
if abs(w) < g_EPSILON then |
begin |
Result := E_INVALIDARG; |
Exit; |
end; |
vDest.x := x / w; |
vDest.y := y / w; |
vDest.z := z / w; |
Result := S_OK; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_VertexMatrixMultiply() |
// Desc: Multiplies a vertex by a matrix |
//----------------------------------------------------------------------------- |
function D3DMath_VertexMatrixMultiply(var vDest: TD3DVertex; const vSrc: TD3DVertex; |
const mat: TD3DMatrix): HResult; |
var |
pSrcVec, pDestVec: PD3DVector; |
begin |
pSrcVec := @vSrc.x; |
pDestVec := @vDest.x; |
Result := D3DMath_VectorMatrixMultiply(pDestVec^, pSrcVec^, mat); |
if SUCCEEDED(Result) then |
begin |
pSrcVec := @vSrc.nx; |
pDestVec := @vDest.nx; |
Result := D3DMath_VectorMatrixMultiply(pDestVec^, pSrcVec^, mat); |
end; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_QuaternionFromRotation() |
// Desc: Converts a normalized axis and angle to a unit quaternion. |
//----------------------------------------------------------------------------- |
procedure D3DMath_QuaternionFromRotation(var x, y, z, w: Double; |
const v: TD3DVector; fTheta: Double); |
begin |
x := sin(fTheta / 2.0) * v.x; |
y := sin(fTheta / 2.0) * v.y; |
z := sin(fTheta / 2.0) * v.z; |
w := cos(fTheta / 2.0); |
end; |
function D3DMath_QuaternionFromRotation(const axis: TD3DVector; const r: Double): TQuaternion; |
var |
// r: Integer; |
a: TD3DVector; |
begin |
// r := (t div 2) and $FFF; |
a := VectorNormalize(axis); |
Result.X := a.X * Sin(R); |
Result.Y := a.Y * Sin(R); |
Result.Z := a.Z * Sin(R); |
Result.W := Cos(R); |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_RotationFromQuaternion() |
// Desc: Converts a normalized axis and angle to a unit quaternion. |
//----------------------------------------------------------------------------- |
procedure D3DMath_RotationFromQuaternion(var v: TD3DVector; var fTheta: Double; |
x, y, z, w: Double); |
begin |
fTheta := ArcCos(w) * 2.0; |
v.x := x / sin(fTheta / 2.0); |
v.y := y / sin(fTheta / 2.0); |
v.z := z / sin(fTheta / 2.0); |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_QuaternionFromAngles() |
// Desc: Converts euler angles to a unit quaternion. |
//----------------------------------------------------------------------------- |
procedure D3DMath_QuaternionFromAngles(var x, y, z, w: Double; fYaw, fPitch, fRoll: Double); |
var |
fSinYaw, fSinPitch, fSinRoll, fCosYaw, fCosPitch, fCosRoll: Double; |
begin |
fSinYaw := sin(fYaw / 2.0); |
fSinPitch := sin(fPitch / 2.0); |
fSinRoll := sin(fRoll / 2.0); |
fCosYaw := cos(fYaw / 2.0); |
fCosPitch := cos(fPitch / 2.0); |
fCosRoll := cos(fRoll / 2.0); |
x := fSinRoll * fCosPitch * fCosYaw - fCosRoll * fSinPitch * fSinYaw; |
y := fCosRoll * fSinPitch * fCosYaw + fSinRoll * fCosPitch * fSinYaw; |
z := fCosRoll * fCosPitch * fSinYaw - fSinRoll * fSinPitch * fCosYaw; |
w := fCosRoll * fCosPitch * fCosYaw + fSinRoll * fSinPitch * fSinYaw; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_MatrixFromQuaternion() |
// Desc: Converts a unit quaternion into a rotation matrix. |
//----------------------------------------------------------------------------- |
procedure D3DMath_MatrixFromQuaternion(var mat: TD3DMatrix; x, y, z, w: Double); |
var |
xx, yy, zz, xy, xz, yz, wx, wy, wz: Double; |
begin |
xx := x * x; yy := y * y; zz := z * z; |
xy := x * y; xz := x * z; yz := y * z; |
wx := w * x; wy := w * y; wz := w * z; |
mat._11 := 1 - 2 * (yy + zz); |
mat._12 := 2 * (xy - wz); |
mat._13 := 2 * (xz + wy); |
mat._21 := 2 * (xy + wz); |
mat._22 := 1 - 2 * (xx + zz); |
mat._23 := 2 * (yz - wx); |
mat._31 := 2 * (xz - wy); |
mat._32 := 2 * (yz + wx); |
mat._33 := 1 - 2 * (xx + yy); |
mat._14 := 0.0; mat._24 := 0.0; mat._34 := 0.0; |
mat._41 := 0.0; mat._42 := 0.0; mat._43 := 0.0; |
mat._44 := 1.0; |
end; |
function D3DMath_MatrixFromQuaternion(q: TQuaternion): TD3DMatrix; |
begin |
D3DMath_MatrixFromQuaternion(Result, q.X, q.Y, q.Z, q.W) |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_QuaternionFromMatrix() |
// Desc: Converts a rotation matrix into a unit quaternion. |
//----------------------------------------------------------------------------- |
procedure D3DMath_QuaternionFromMatrix(var x, y, z, w: Double; var mat: TD3DMatrix); |
var |
s: Double; |
xx, yy, zz, xy, xz, yz, wx, wy, wz: Double; |
begin |
if (mat._11 + mat._22 + mat._33 > 0.0) then |
begin |
s := sqrt(mat._11 + mat._22 + mat._33 + mat._44); |
x := (mat._23 - mat._32) / (2 * s); |
y := (mat._31 - mat._13) / (2 * s); |
z := (mat._12 - mat._21) / (2 * s); |
w := 0.5 * s; |
end; |
xx := x * x; yy := y * y; zz := z * z; |
xy := x * y; xz := x * z; yz := y * z; |
wx := w * x; wy := w * y; wz := w * z; |
mat._11 := 1 - 2 * (yy + zz); |
mat._12 := 2 * (xy - wz); |
mat._13 := 2 * (xz + wy); |
mat._21 := 2 * (xy + wz); |
mat._22 := 1 - 2 * (xx + zz); |
mat._23 := 2 * (yz - wx); |
mat._31 := 2 * (xz - wy); |
mat._32 := 2 * (yz + wx); |
mat._33 := 1 - 2 * (xx + yy); |
mat._14 := 0.0; mat._24 := 0.0; mat._34 := 0.0; |
mat._41 := 0.0; mat._42 := 0.0; mat._43 := 0.0; |
mat._44 := 1.0; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_QuaternionMultiply() |
// Desc: Mulitples two quaternions together as in {Q} = {A} * {B}. |
//----------------------------------------------------------------------------- |
procedure D3DMath_QuaternionMultiply(var Qx, Qy, Qz, Qw: Double; |
Ax, Ay, Az, Aw, Bx, By, Bz, Bw: Double); |
var |
Dx, Dy, Dz, Dw: Double; |
begin |
Dx := Ax * Bw + Ay * Bz - Az * By + Aw * Bx; |
Dy := -Ax * Bz + Ay * Bw + Az * Bx + Aw * By; |
Dz := Ax * By - Ay * Bx + Az * Bw + Aw * Bz; |
Dw := -Ax * Bx - Ay * By - Az * Bz + Aw * Bw; |
Qx := Dx; Qy := Dy; Qz := Dz; Qw := Dw; |
end; |
function D3DMath_QuaternionMultiply(a, b: TQuaternion): TQuaternion; |
var |
Qx, Qy, Qz, Qw: Double; |
begin |
D3DMath_QuaternionMultiply(Qx, Qy, Qz, Qw, A.x, A.y, A.z, A.w, B.x, B.y, B.z, B.w); |
Result.X := Qx; |
Result.Y := Qy; |
Result.Z := Qz; |
Result.W := Qw; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DMath_SlerpQuaternions() |
// Desc: Compute a quaternion which is the spherical linear interpolation |
// between two other quaternions by dvFraction. |
//----------------------------------------------------------------------------- |
procedure D3DMath_QuaternionSlerp(var Qx, Qy, Qz, Qw: Double; |
Ax, Ay, Az, Aw, Bx, By, Bz, Bw, fAlpha: Double); |
var |
fCosTheta: Double; |
fBeta: Double; |
fTheta: Double; |
begin |
// Compute dot product (equal to cosine of the angle between quaternions) |
fCosTheta := Ax * Bx + Ay * By + Az * Bz + Aw * Bw; |
// Check angle to see if quaternions are in opposite hemispheres |
if fCosTheta < 0.0 then |
begin |
// If so, flip one of the quaterions |
fCosTheta := -fCosTheta; |
Bx := -Bx; By := -By; Bz := -Bz; Bw := -Bw; |
end; |
// Set factors to do linear interpolation, as a special case where the |
// quaternions are close together. |
fBeta := 1.0 - fAlpha; |
// If the quaternions aren't close, proceed with spherical interpolation |
if 1.0 - fCosTheta > 0.001 then |
begin |
fTheta := arccos(fCosTheta); |
fBeta := sin(fTheta * fBeta) / sin(fTheta); |
fAlpha := sin(fTheta * fAlpha) / sin(fTheta); |
end; |
// Do the interpolation |
Qx := fBeta * Ax + fAlpha * Bx; |
Qy := fBeta * Ay + fAlpha * By; |
Qz := fBeta * Az + fAlpha * Bz; |
Qw := fBeta * Aw + fAlpha * Bw; |
end; |
function D3DMath_QuaternionSlerp(A, B: TQuaternion; fAlpha: Double): TQuaternion; |
var |
Qx, Qy, Qz, Qw: Double; |
begin |
D3DMath_QuaternionSlerp(Qx, Qy, Qz, Qw, A.x, A.y, A.z, A.w, B.x, B.y, B.z, B.w, fAlpha); |
Result.X := Qx; |
Result.Y := Qy; |
Result.Z := Qz; |
Result.W := Qw; |
end; |
//----------------------------------------------------------------------------- |
// File: D3DUtil.cpp |
// |
// Desc: Shortcut macros and functions for using DX objects |
// |
// |
// Copyright (c) 1997-1999 Microsoft Corporation. All rights reserved |
//----------------------------------------------------------------------------- |
//----------------------------------------------------------------------------- |
// Name: D3DUtil_InitSurfaceDesc() |
// Desc: Helper function called to build a DDSURFACEDESC2 structure, |
// typically before calling CreateSurface() or GetSurfaceDesc() |
//----------------------------------------------------------------------------- |
procedure D3DUtil_InitSurfaceDesc(var ddsd: TDDSurfaceDesc2; dwFlags, dwCaps: DWORD); |
begin |
FillChar(ddsd, SizeOf(ddsd), 0); |
ddsd.dwSize := SizeOf(ddsd); |
ddsd.dwFlags := dwFlags; |
ddsd.ddsCaps.dwCaps := dwCaps; |
ddsd.ddpfPixelFormat.dwSize := SizeOf(ddsd.ddpfPixelFormat); |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DUtil_InitMaterial() |
// Desc: Helper function called to build a D3DMATERIAL7 structure |
//----------------------------------------------------------------------------- |
procedure D3DUtil_InitMaterial(var mtrl: TD3DMaterial7; r, g, b, a: Double); |
begin |
FillChar(mtrl, SizeOf(mtrl), 0); |
mtrl.dcvDiffuse.r := r; mtrl.dcvAmbient.r := r; |
mtrl.dcvDiffuse.g := g; mtrl.dcvAmbient.g := g; |
mtrl.dcvDiffuse.b := b; mtrl.dcvAmbient.b := b; |
mtrl.dcvDiffuse.a := a; mtrl.dcvAmbient.a := a; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DUtil_InitLight() |
// Desc: Initializes a D3DLIGHT7 structure |
//----------------------------------------------------------------------------- |
procedure D3DUtil_InitLight(var light: TD3DLight7; ltType: TD3DLightType; x, y, z: Double); |
begin |
FillChar(light, SizeOf(light), 0); |
light.dltType := ltType; |
light.dcvDiffuse.r := 1.0; |
light.dcvDiffuse.g := 1.0; |
light.dcvDiffuse.b := 1.0; |
light.dcvSpecular := light.dcvDiffuse; |
light.dvPosition.x := x; light.dvDirection.x := x; |
light.dvPosition.y := y; light.dvDirection.y := y; |
light.dvPosition.z := z; light.dvDirection.z := z; |
light.dvAttenuation0 := 1.0; |
light.dvRange := D3DLIGHT_RANGE_MAX; |
end; |
procedure D3DUtil_SetIdentityMatrix(out m: TD3DMatrix); |
begin |
m._12 := 0; m._13 := 0; m._14 := 0; m._21 := 0; m._23 := 0; m._24 := 0; |
m._31 := 0; m._32 := 0; m._34 := 0; m._41 := 0; m._42 := 0; m._43 := 0; |
m._11 := 1; m._22 := 1; m._33 := 1; m._44 := 1; |
end; |
function D3DUtil_SetIdentityMatrix: TD3DMatrix; |
begin |
D3DUtil_SetIdentityMatrix(Result); |
end; |
function D3DUtil_SetScaleMatrix(const x, y, z: Single): TD3DMatrix; |
begin |
with Result do |
begin |
_11 := x; _12 := 0; _13 := 0; _14 := 0; |
_21 := 0; _22 := y; _23 := 0; _24 := 0; |
_31 := 0; _32 := 0; _33 := z; _34 := 0; |
_41 := 0; _42 := 0; _43 := 0; _44 := 1; |
end; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DUtil_SetViewMatrix() |
// Desc: Given an eye point, a lookat point, and an up vector, this |
// function builds a 4x4 view matrix. |
//----------------------------------------------------------------------------- |
function D3DUtil_SetViewMatrix(var mat: TD3DMatrix; const vFrom, vAt, vWorldUp: TD3DVector): HResult; |
var |
vView: TD3DVector; |
fLength: Double; |
fDotProduct: Double; |
vUp: TD3DVector; |
vRight: TD3DVector; |
begin |
// Get the z basis vector, which points straight ahead. This is the |
// difference from the eyepoint to the lookat point. |
vView := VectorSub(vAt, vFrom); |
fLength := VectorMagnitude(vView); |
if fLength < 0.1E-6 then |
begin |
Result := E_INVALIDARG; |
Exit; |
end; |
// Normalize the z basis vector |
vView := VectorDivS(vView, fLength); |
// Get the dot product, and calculate the projection of the z basis |
// vector onto the up vector. The projection is the y basis vector. |
fDotProduct := VectorDotProduct(vWorldUp, vView); |
vUp := VectorSub(vWorldUp, VectorMulS(vView, fDotProduct)); |
// If this vector has near-zero length because the input specified a |
// bogus up vector, let's try a default up vector |
fLength := VectorMagnitude(vUp); |
if 1E-6 > fLength then |
begin |
vUp := VectorSub(MakeD3DVector(0, 1, 0), VectorMulS(vView, vView.y)); |
// If we still have near-zero length, resort to a different axis. |
fLength := VectorMagnitude(vUp); |
if 1E-6 > fLength then |
begin |
vUp := VectorSub(MakeD3DVector(0, 0, 1), VectorMulS(vView, vView.z)); |
fLength := VectorMagnitude(vUp); |
if 1E-6 > fLength then |
begin |
Result := E_INVALIDARG; |
Exit; |
end; |
end; |
end; |
// Normalize the y basis vector |
vUp := VectorDivS(vUp, fLength); |
// The x basis vector is found simply with the cross product of the y |
// and z basis vectors |
vRight := VectorCrossProduct(vUp, vView); |
// Start building the matrix. The first three rows contains the basis |
// vectors used to rotate the view to point at the lookat point |
D3DUtil_SetIdentityMatrix(mat); |
mat._11 := vRight.x; mat._12 := vUp.x; mat._13 := vView.x; |
mat._21 := vRight.y; mat._22 := vUp.y; mat._23 := vView.y; |
mat._31 := vRight.z; mat._32 := vUp.z; mat._33 := vView.z; |
// Do the translation values (rotations are still about the eyepoint) |
mat._41 := -VectorDotProduct(vFrom, vRight); |
mat._42 := -VectorDotProduct(vFrom, vUp); |
mat._43 := -VectorDotProduct(vFrom, vView); |
Result := S_OK; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DUtil_SetProjectionMatrix() |
// Desc: Sets the passed in 4x4 matrix to a perpsective projection matrix built |
// from the field-of-view (fov, in y), aspect ratio, near plane (D), |
// and far plane (F). Note that the projection matrix is normalized for |
// element [3][4] to be 1.0. This is performed so that W-based range fog |
// will work correctly. |
//----------------------------------------------------------------------------- |
function D3DUtil_SetProjectionMatrix(var mat: TD3DMatrix; fFOV, fAspect, fNearPlane, fFarPlane: Double): HResult; |
var |
w, h, Q: Double; |
begin |
if (abs(fFarPlane - fNearPlane) < 0.01) or (abs(sin(fFOV / 2)) < 0.01) then |
begin |
Result := E_INVALIDARG; |
Exit; |
end; |
w := fAspect * (cos(fFOV / 2) / sin(fFOV / 2)); |
h := 1.0 * (cos(fFOV / 2) / sin(fFOV / 2)); |
Q := fFarPlane / (fFarPlane - fNearPlane); |
FillChar(mat, SizeOf(mat), 0); |
mat._11 := w; |
mat._22 := h; |
mat._33 := Q; |
mat._34 := 1.0; |
mat._43 := -Q * fNearPlane; |
Result := S_OK; |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DUtil_SetRotateXMatrix() |
// Desc: Create Rotation matrix about X axis |
//----------------------------------------------------------------------------- |
procedure D3DUtil_SetRotateXMatrix(var mat: TD3DMatrix; fRads: Double); |
begin |
D3DUtil_SetIdentityMatrix(mat); |
mat._22 := cos(fRads); |
mat._23 := sin(fRads); |
mat._32 := -sin(fRads); |
mat._33 := cos(fRads); |
end; |
function D3DUtil_SetRotateXMatrix(fRads: Double): TD3DMatrix; |
begin |
D3DUtil_SetRotateXMatrix(Result, fRads); |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DUtil_SetRotateYMatrix() |
// Desc: Create Rotation matrix about Y axis |
//----------------------------------------------------------------------------- |
procedure D3DUtil_SetRotateYMatrix(var mat: TD3DMatrix; fRads: Double); |
begin |
D3DUtil_SetIdentityMatrix(mat); |
mat._11 := cos(fRads); |
mat._13 := -sin(fRads); |
mat._31 := sin(fRads); |
mat._33 := cos(fRads); |
end; |
function D3DUtil_SetRotateYMatrix(fRads: Double): TD3DMatrix; |
begin |
D3DUtil_SetRotateYMatrix(Result, fRads); |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DUtil_SetRotateZMatrix() |
// Desc: Create Rotation matrix about Z axis |
//----------------------------------------------------------------------------- |
procedure D3DUtil_SetRotateZMatrix(var mat: TD3DMatrix; fRads: Double); |
begin |
D3DUtil_SetIdentityMatrix(mat); |
mat._11 := cos(fRads); |
mat._12 := sin(fRads); |
mat._21 := -sin(fRads); |
mat._22 := cos(fRads); |
end; |
function D3DUtil_SetRotateZMatrix(fRads: Double): TD3DMatrix; |
begin |
D3DUtil_SetRotateZMatrix(Result, fRads); |
end; |
//----------------------------------------------------------------------------- |
// Name: D3DUtil_SetRotationMatrix |
// Desc: Create a Rotation matrix about vector direction |
//----------------------------------------------------------------------------- |
procedure D3DUtil_SetRotationMatrix(var mat: TD3DMatrix; var vDir: TD3DVector; fRads: Double); |
var |
fCos, fSin: Double; |
v: TD3DVector; |
begin |
fCos := cos(fRads); |
fSin := sin(fRads); |
v := VectorNormalize(vDir); |
mat._11 := (v.x * v.x) * (1.0 - fCos) + fCos; |
mat._12 := (v.x * v.y) * (1.0 - fCos) - (v.z * fSin); |
mat._13 := (v.x * v.z) * (1.0 - fCos) + (v.y * fSin); |
mat._21 := (v.y * v.x) * (1.0 - fCos) + (v.z * fSin); |
mat._22 := (v.y * v.y) * (1.0 - fCos) + fCos; |
mat._23 := (v.y * v.z) * (1.0 - fCos) - (v.x * fSin); |
mat._31 := (v.z * v.x) * (1.0 - fCos) - (v.y * fSin); |
mat._32 := (v.z * v.y) * (1.0 - fCos) + (v.x * fSin); |
mat._33 := (v.z * v.z) * (1.0 - fCos) + fCos; |
mat._14 := 0; mat._24 := 0; mat._34 := 0; |
mat._41 := 0; mat._42 := 0; mat._43 := 0; |
mat._44 := 1.0; |
end; |
function D3DUtil_SetRotationMatrixByX(const a: TD3DVector; const r: Double): TD3DVector; |
begin |
Result.X := a.X; |
Result.Y := a.Y * Cos(r) + a.Z * Sin(r); |
Result.Z := -a.Y * Sin(r) + a.Z * Cos(r); |
end; |
function D3DUtil_SetRotationMatrixByY(const a: TD3DVector; const r: Double): TD3DVector; |
begin |
Result.X := a.X * Cos(r) - a.Z * Sin(r); |
Result.Y := a.Y; |
Result.Z := a.X * Sin(r) + a.Z * Cos(r); |
end; |
function D3DUtil_SetRotationMatrixByZ(const a: TD3DVector; const r: Double): TD3DVector; |
begin |
Result.X := a.X * Cos(r) + a.Y * Sin(r); |
Result.Y := -a.X * Sin(r) + a.Y * Cos(r); |
Result.Z := a.Z; |
end; |
// simple D2D operation |
function D2DMath_VecAdd(const a: TD2DVector; const b: TD2DVector): TD2DVector; |
begin |
Result.X := a.X + b.X; |
Result.Y := a.Y + b.Y; |
end; |
function D2DMath_VecSub(const a: TD2DVector; const b: TD2DVector): TD2DVector; |
begin |
Result.X := a.X - b.X; |
Result.Y := a.Y - b.Y; |
end; |
function D2DMath_VecDotProduct(const a, b: TD2DVector): Single; |
begin |
Result := a.X * b.X + a.Y * b.Y; |
end; |
function D2DMath_VecDistance(const a, b: TD2DVector): Single; |
begin |
Result := sqrt(SQR(a.X - b.X) + SQR(a.Y - b.Y)); |
end; |
function D2DMath_VecLength(const a: TD2DVector): Single; |
begin |
Result := sqrt(SQR(a.X) + SQR(a.Y)); |
end; |
function D2DMath_VecNormalize(const a: TD2DVector): TD2DVector; |
var |
len: Single; |
begin |
len := D2DMath_VecLength(a); |
if len = 0 then |
begin |
result := MakeD2DVector(0, 0); |
Exit; |
end; |
result.X := a.X / len; |
result.Y := a.Y / len; |
end; |
function D2DMath_VecToAngle(const a: TD2DVector): Double; |
var |
v: TD2DVector; |
sg: Integer; |
hi, lo, mid: Integer; |
begin |
Result := 0.0; |
v := D2DMath_VecNormalize(a); |
if (v.y > 0) then |
begin |
if v.x > 0 then |
sg := 1 |
else |
begin |
sg := 2; |
v.x := -v.x; |
end; |
end |
else |
if (v.y < 0) then |
begin |
if v.x >= 0 then |
sg := 4 |
else |
begin |
sg := 3; |
v.x := -v.x; |
end; |
end |
else |
begin |
if v.x >= 0 then |
sg := 1 |
else |
begin |
sg := 3; |
v.x := -v.x; |
end; |
end; |
hi := 1023; |
lo := 0; |
mid := 511; |
while hi > lo do |
begin |
if Cos(mid / 2048.0 * Pi) > v.x then |
lo := mid + 1 |
else |
hi := mid; |
mid := (hi + lo) shr 1; |
end; |
case sg of |
1: result := mid; |
2: result := 2047 - mid; |
3: result := 2048 + mid; |
4: result := 4095 - mid; |
end; |
// to radians |
Result := Result * Pi / 2048.0; |
end; |
function D2DMath_VecRot(const a: TD2DVector; const angle: Double): TD2DVector; |
begin |
Result.X := a.X * Cos(angle) - a.Y * Sin(angle); |
Result.Y := a.X * Sin(angle) + a.Y * Cos(angle); |
end; |
function D2DMath_VecScale(const a: TD2DVector; const scale: Double): TD2DVector; |
begin |
Result.X := a.X * scale; |
Result.Y := a.Y * scale; |
end; |
function D2DMath_VecChangeLength(const a: TD2DVector; const k: Single): TD2DVector; |
var |
len: Single; |
begin |
len := D2DMath_VecLength(a); |
if len = 0 then |
begin |
Result := MakeD2DVector(0, 0); |
Exit; |
end; |
Result.X := a.X * k / len; |
Result.Y := a.Y * k / len; |
end; |
function D2DMath_VecLookAt(const pos: TD2DVector; const target: TD2DVector; const k: Single): TD2DVector; |
var |
sub: TD2DVector; |
len: Single; |
begin |
sub := D2DMath_VecSub(target, pos); |
len := D2DMath_VecLength(sub); |
if len = 0 then |
begin |
Result := MakeD2DVector(0, 0); |
Exit; |
end; |
Result.X := sub.X * k / len; |
Result.Y := sub.Y * k / len; |
end; |
function D2DMath_VecRandom2D(const k: Single): TD2DVector; |
begin |
Result := D2DMath_VecChangeLength(MakeD2DVector(Random - 0.5, Random - 0.5), k); |
end; |
function D2DMath_VecLerp(const a: TD2DVector; const b: TD2DVector; const rate: Single): TD2DVector; |
begin |
Result.x := rate * b.x + (1.0 - rate) * a.x; |
Result.y := rate * b.y + (1.0 - rate) * a.y; |
end; |
end. |
/VCL_DELPHIX_D6/DAnim.pas |
---|
22,7 → 22,9 |
{$Z4} |
{$A+} |
{$IfNDef D7UP} |
{$WEAKPACKAGEUNIT} |
{$EndIf} |
uses Windows, ActiveX, DirectX, DShow; |
1109,18 → 1111,18 |
out lplpDDClipper: IDirectDrawClipper; pUnkOuter: IUnknown): HResult; stdcall; |
function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry; |
out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult;stdcall; |
function CreateSurface(const lpDDSurfaceDesc: DDSURFACEDESC; |
function CreateSurface(const lpDDSurfaceDesc: TDDSURFACEDESC; |
out lplpDDSurface: IDirectDrawSurface; pUnkOuter: IUnknown): HResult; stdcall; |
function DuplicateSurface(lpDDSurface: IDirectDrawSurface; |
out lplpDupDDSurface: IDirectDrawSurface): HResult; stdcall; |
function EnumDisplayModes(dwFlags: DWORD; |
const lpDDSurfaceDesc: DDSURFACEDESC; lpContext: Pointer; |
lpEnumModesCallback: LPDDENUMMODESCALLBACK): HResult; stdcall; |
function EnumSurfaces(dwFlags: DWORD; const lpDDSD: DDSURFACEDESC; |
lpContext: Pointer; lpEnumCallback: LPDDENUMSURFACESCALLBACK): HResult; stdcall; |
const lpDDSurfaceDesc: TDDSURFACEDESC; lpContext: Pointer; |
lpEnumModesCallback: {LPDDENUMMODESCALLBACK}TDDEnumModesCallback): HResult; stdcall; |
function EnumSurfaces(dwFlags: DWORD; const lpDDSD: TDDSURFACEDESC; |
lpContext: Pointer; lpEnumCallback: {LPDDENUMSURFACESCALLBACK}TDDEnumSurfacesCallback): HResult; stdcall; |
function FlipToGDISurface: HResult; stdcall; |
function GetCaps(var lpDDDriverCaps: DDCAPS; var lpDDHELCaps: DDCAPS): HResult; stdcall; |
function GetDisplayMode(var lpDDSurfaceDesc: DDSURFACEDESC): HResult; stdcall; |
function GetCaps(var lpDDDriverCaps: TDDCAPS; var lpDDHELCaps: TDDCAPS): HResult; stdcall; |
function GetDisplayMode(var lpDDSurfaceDesc: TDDSURFACEDESC): HResult; stdcall; |
function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall; |
function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface): HResult; stdcall; |
function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall; |
1133,7 → 1135,7 |
dwFlags: DWORD): HResult; stdcall; |
function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall; |
// IDirectDraw2 methods |
function GetAvailableVidMem(var lpDDSCaps: DDSCAPS; |
function GetAvailableVidMem(var lpDDSCaps: TDDSCAPS; |
var lpdwTotal, lpdwFree: DWORD): HResult; stdcall; |
// IDirectDraw3 methods |
function GetSurfaceFromDC(hdc: HDC; out ppSurface: IDirectDrawSurface): HResult; stdcall; |
/VCL_DELPHIX_D6/DShow.pas |
---|
22,7 → 22,9 |
{$Z4} |
{$A+} |
{$IfNDef D7UP} |
{$WEAKPACKAGEUNIT} |
{$EndIf} |
uses Windows, ActiveX, DirectX, MMSystem; |
1887,10 → 1889,10 |
IDirectDrawMediaStream = interface(IMediaStream) |
['{F4104FCE-9A70-11d0-8FDE-00C04FD9189D}'] |
function GetFormat(var pDDSDCurrent: DDSURFACEDESC; |
function GetFormat(var pDDSDCurrent: TDDSURFACEDESC; |
out ppDirectDrawPalette: IDirectDrawPalette; |
var pDDSDDesired: DDSURFACEDESC; var pdwFlags: DWORD): HResult; stdcall; |
function SetFormat(const pDDSurfaceDesc: DDSURFACEDESC; |
var pDDSDDesired: TDDSURFACEDESC; var pdwFlags: DWORD): HResult; stdcall; |
function SetFormat(const pDDSurfaceDesc: TDDSURFACEDESC; |
pDirectDrawPalette: IDirectDrawPalette): HResult; stdcall; |
function GetDirectDraw(out ppDirectDraw: IDirectDraw): HResult; stdcall; |
function SetDirectDraw(pDirectDraw: IDirectDraw): HResult; stdcall; |
2620,9 → 2622,9 |
// IDirectDrawVideo methods |
function GetSwitches(var pSwitches: DWORD): HResult; stdcall; |
function SetSwitches(pSwitches: DWORD): HResult; stdcall; |
function GetCaps(var pCaps: DDCAPS): HResult; stdcall; |
function GetEmulatedCaps(var pCaps: DDCAPS): HResult; stdcall; |
function GetSurfaceDesc(var pSurfaceDesc: DDSURFACEDESC): HResult; stdcall; |
function GetCaps(var pCaps: TDDCAPS): HResult; stdcall; |
function GetEmulatedCaps(var pCaps: TDDCAPS): HResult; stdcall; |
function GetSurfaceDesc(var pSurfaceDesc: TDDSURFACEDESC): HResult; stdcall; |
function GetFourCCCodes(var pCount, pCodes: DWORD): HResult; stdcall; |
function SetDirectDraw(pDirectDraw: IDirectDraw): HResult; stdcall; |
function GetDirectDraw(out ppDirectDraw: IDirectDraw): HResult; stdcall; |
3001,23 → 3003,23 |
// of structures. If the pointer to the array is NULL, first parameter |
// returns the total number of formats supported. |
function GetVideoFormats(var lpNumFormats: DWORD; |
const lpddpfFormats: DDPIXELFORMAT): HResult; stdcall; |
const lpddpfFormats: TDDPIXELFORMAT): HResult; stdcall; |
// retrives maximum pixels per second rate expected for a given |
// format and a given scaling factor. If decoder does not support |
// those scaling factors, then it gives the rate and the nearest |
// scaling factors. |
function GetMaxPixelRate(const ddpfFormat: DDPIXELFORMAT; |
function GetMaxPixelRate(const ddpfFormat: TDDPIXELFORMAT; |
lpdwZoomHeight, lpdwZoomWidth: DWORD; |
var lpdwMaxPixelsPerSecond: DWORD): HResult; stdcall; |
// retrives various properties of the decoder for a given format |
function GetVideoSignalInfo(const ddpfFormat: DDPIXELFORMAT; |
function GetVideoSignalInfo(const ddpfFormat: TDDPIXELFORMAT; |
var lpAMVideoSignalInfo: TAMVideoSignalInfo): HResult; stdcall; |
// asks the decoder to ouput in this format. Return value should give |
// appropriate error code |
function SetVideoFormat(const ddpfFormat: DDPIXELFORMAT): HResult; stdcall; |
function SetVideoFormat(const ddpfFormat: TDDPIXELFORMAT): HResult; stdcall; |
// asks the decoder to treat even fields like odd fields and visa versa |
function SetInvertPolarity: HResult; stdcall; |
3185,13 → 3187,13 |
// informs the callee of the videoformats supported by the videoport |
function InformVPInputFormats(dwNumFormats: DWORD; |
const pDDPixelFormats: DDPIXELFORMAT): HResult; stdcall; |
const pDDPixelFormats: TDDPIXELFORMAT): HResult; stdcall; |
// gets the various formats supported by the decoder in an array |
// of structures. If the pointer to the array is NULL, first parameter |
// returns the total number of formats supported. |
function GetVideoFormats(var pdwNumFormats: DWORD; |
var pddPixelFormats: DDPIXELFORMAT): HResult; stdcall; |
var pddPixelFormats: TDDPIXELFORMAT): HResult; stdcall; |
// sets the format entry chosen (0, 1, .. ,(dwNumProposedEntries-1)) |
function SetVideoFormat(dwChosenEntry: DWORD): HResult; stdcall; |
3269,10 → 3271,10 |
// this function gets the overlay surface that the mixer is using |
function GetOverlaySurface(out ppOverlaySurface: IDirectDrawSurface): HResult; stdcall; |
// this functions sets the color-controls, if the chip supports it. |
function SetColorControls(const pColorControl: DDCOLORCONTROL): HResult; stdcall; |
function SetColorControls(const pColorControl: TDDCOLORCONTROL): HResult; stdcall; |
// this functions also returns the capability of the hardware in the dwFlags |
// value of the struct. |
function GetColorControls(var pColorControl: DDCOLORCONTROL): HResult; stdcall; |
function GetColorControls(var pColorControl: TDDCOLORCONTROL): HResult; stdcall; |
end; |
// interface IVPVBINotify |
/VCL_DELPHIX_D6/DXClass.pas |
---|
5,7 → 5,15 |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Controls, Forms, MMSystem, DirectX; |
Windows, Messages, SysUtils, Classes, Controls, Forms, MMSystem, Graphics, {$IFDEF _DMO_}MultiMon,{$ENDIF} |
{$IfDef StandardDX} |
{$IfDef DX9} |
Direct3D, DirectInput, |
{$EndIf} |
DirectDraw, DirectSound; |
{$Else} |
DirectX; |
{$EndIf} |
type |
50,6 → 58,46 |
property Drivers[Index: Integer]: TDirectXDriver read GetDriver; default; |
end; |
{$IFDEF _DMO_} |
{ TDirectXDriverEx } |
TDirectXDriverEx = class(TCollectionItem) |
private |
FGUID: PGUID; |
FGUID2: TGUID; |
FDescription: string; |
FDriverName: string; |
FMonitor: HMonitor; |
FMonitorInfo: TMonitorInfo; |
procedure SetGUID(Value: PGUID); |
function ConvertHMonitor(iMonitor: HMonitor): TMonitorInfo; |
function GetMonitorInfo: TMonitorInfo; |
function GetFlags: DWORD; |
function GetTempSpace: TRect; |
function GetWorkSpace: TRect; |
public |
property GUID: PGUID read FGUID write SetGUID; |
property Monitor: HMonitor read FMonitor write FMonitor; |
property MonitorInfo: TMonitorInfo read GetMonitorInfo; |
published |
property Description: string read FDescription write FDescription; |
property DriverName: string read FDriverName write FDriverName; |
property WorkSpace: TRect read GetWorkSpace; |
property TempSpace: TRect read GetTempSpace; |
property Flags: DWORD read GetFlags; |
end; |
{ TDirectXDriversEx } |
TDirectXDriversEx = class(TCollection) |
private |
function GetDriver(Index: Integer): TDirectXDriverEx; |
public |
constructor Create; |
property Drivers[Index: Integer]: TDirectXDriverEx read GetDriver; default; |
end; |
{$ENDIF} |
{ TDXForm } |
TDXForm = class(TForm) |
170,20 → 218,137 |
function IndexOf(const Name: string): Integer; |
end; |
function Max(Val1, Val2: Integer): Integer; |
function Min(Val1, Val2: Integer): Integer; |
{Addapted from RXLib.PicClip} |
{ TPicClip } |
TCellRange = 1..MaxInt; |
TDXPictureClip = class(TComponent) |
private |
FPicture: TPicture; |
FRows: TCellRange; |
FCols: TCellRange; |
FBitmap: TBitmap; |
FMasked: Boolean; |
FMaskColor: TColor; |
FOnChange: TNotifyEvent; |
procedure CheckIndex(Index: Integer); |
function GetCell(Col, Row: Cardinal): TBitmap; |
function GetGraphicCell(Index: Integer): TBitmap; |
function GetDefaultMaskColor: TColor; |
function GetIsEmpty: Boolean; |
function GetCount: Integer; |
function GetHeight: Integer; |
function GetWidth: Integer; |
function IsMaskStored: Boolean; |
procedure PictureChanged(Sender: TObject); |
procedure SetHeight(Value: Integer); |
procedure SetPicture(Value: TPicture); |
procedure SetWidth(Value: Integer); |
procedure SetMaskColor(Value: TColor); |
protected |
procedure AssignTo(Dest: TPersistent); override; |
procedure Changed; dynamic; |
public |
constructor Create(AOwner: TComponent); override; |
destructor Destroy; override; |
procedure Assign(Source: TPersistent); override; |
function GetIndex(Col, Row: Cardinal): Integer; |
procedure Draw(Canvas: TCanvas; X, Y, Index: Integer); |
procedure DrawCenter(Canvas: TCanvas; Rect: TRect; Index: Integer); |
property Cells[Col, Row: Cardinal]: TBitmap read GetCell; |
property GraphicCell[Index: Integer]: TBitmap read GetGraphicCell; |
property IsEmpty: Boolean read GetIsEmpty; |
property Count: Integer read GetCount; |
published |
property Cols: TCellRange read FCols write FCols default 1; |
property Height: Integer read GetHeight write SetHeight stored False; |
property Masked: Boolean read FMasked write FMasked default True; |
property Rows: TCellRange read FRows write FRows default 1; |
property Picture: TPicture read FPicture write SetPicture; |
property MaskColor: TColor read FMaskColor write SetMaskColor stored IsMaskStored; |
property Width: Integer read GetWidth write SetWidth stored False; |
property OnChange: TNotifyEvent read FOnChange write FOnChange; |
end; |
function Max(Val1, Val2: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
function Min(Val1, Val2: Integer): Integer; {$IFDEF VER9UP}inline;{$ENDIF} |
function Cos256(i: Integer): Double; |
function Sin256(i: Integer): Double; |
function PointInRect(const Point: TPoint; const Rect: TRect): Boolean; |
function RectInRect(const Rect1, Rect2: TRect): Boolean; |
function OverlapRect(const Rect1, Rect2: TRect): Boolean; |
function PointInRect(const Point: TPoint; const Rect: TRect): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function RectInRect(const Rect1, Rect2: TRect): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function OverlapRect(const Rect1, Rect2: TRect): Boolean; {$IFDEF VER9UP}inline;{$ENDIF} |
function WideRect(ALeft, ATop, AWidth, AHeight: Integer): TRect; |
function WideRect(ALeft, ATop, AWidth, AHeight: Integer): TRect; {$IFDEF VER9UP}inline;{$ENDIF} |
{ Transformations routines} |
const |
L_Curve = 0;//The left curve |
R_Curve = 1;//The right curve |
C_Add = 0;//Increase (BTC) |
C_Dec = 1;//Decrease (ETC) |
Type |
TDblPoint = packed record |
X, Y: Double; |
end; |
TSngPoint = packed record //SinglePoint |
X, Y: Single; |
end; |
//Transformation matrix |
T2DRowCol = Array[1..3] of Array[1..3] of Double; |
T2DVector = Array[1..3] of Double; |
//Distance between 2 points |
function Get2PointRange(a,b: TDblPoint):Double; |
//From vector angular calculation |
function Get256(dX,dY: Double):Double; |
//The angular calculation of the A from B |
function GetARadFromB(A,B: TDblPoint):Double; |
//It calculates the TDblPoint |
function DblPoint(a,b:Double):TDblPoint; |
//It converts the TDboPoint to the TPoint |
function TruncDblPoint(DblPos: TDblPoint): TPoint; |
function GetPointFromRangeAndAngle(SP: TDblPoint; Range,Angle: Double): TDblPoint; |
function Ini2DRowCol: T2DRowCol; |
function Trans2DRowCol(x,y:double):T2DRowCol; |
function Scale2DRowCol(x,y:double):T2DRowCol; |
function Rotate2DRowCol(Theta:double):T2DRowCol; |
function RotateIntoX2DRowCol(x,y: double):T2DRowCol; |
function Multiply2DRowCol(A,B:T2DRowCol):T2DRowCol; |
function ScaleAt2DRowCol(x,y,Sx,Sy:double):T2DRowCol; |
function ReflectAcross2DRowCol(x,y,dx,dy:Double): T2DRowCol; |
function Apply2DVector(V:T2DVector; M:T2DRowCol): T2DVector; |
function RotateAround2DRowCol(x,y,Theta:Double): T2DRowCol; |
//Collision decision |
function PointInCircle(PPos,CPos: TPoint; R: integer): Boolean; |
function CircleInCircle(C1Pos,C2Pos: TPoint; R1,R2:Integer): Boolean; |
function SegmentInCircle(SPos,EPos,CPos: TPoint; R: Integer): Boolean; |
//If A is closer than B from starting point S, the True is returned. |
function CheckNearAThanB(S,A,B: TDblPoint): Boolean; |
//The Angle of 256 period is returned |
function Angle256(Angle: Single): Single; |
{ Support functions } |
procedure ReleaseCom(out Com); |
function DXLoadLibrary(const FileName, FuncName: string): TFarProc; |
{ Simple helper } |
procedure Log(const Co: string; const FName: string{$IFDEF VER4UP} = 'c:\logerr.txt'{$ENDIF}); |
implementation |
uses DXConsts; |
690,8 → 855,763 |
Result := -1; |
end; |
{ TDXPictureClip } |
constructor TDXPictureClip.Create(AOwner: TComponent); |
begin |
inherited Create(AOwner); |
FPicture := TPicture.Create; |
FPicture.OnChange := PictureChanged; |
FBitmap := TBitmap.Create; |
FRows := 1; |
FCols := 1; |
FMaskColor := GetDefaultMaskColor; |
FMasked := True; |
end; |
destructor TDXPictureClip.Destroy; |
begin |
FOnChange := nil; |
FPicture.OnChange := nil; |
FBitmap.Free; |
FPicture.Free; |
inherited Destroy; |
end; |
procedure TDXPictureClip.Assign(Source: TPersistent); |
begin |
if Source is TDXPictureClip then begin |
with TDXPictureClip(Source) do begin |
Self.FRows := Rows; |
Self.FCols := Cols; |
Self.FMasked := Masked; |
Self.FMaskColor := MaskColor; |
Self.FPicture.Assign(FPicture); |
end; |
end |
else if (Source is TPicture) or (Source is TGraphic) then |
FPicture.Assign(Source) |
else inherited Assign(Source); |
end; |
type |
THack = class(TImageList); |
procedure TDXPictureClip.AssignTo(Dest: TPersistent); |
var |
I: Integer; |
SaveChange: TNotifyEvent; |
begin |
if (Dest is TPicture) then Dest.Assign(FPicture) |
else if (Dest is TImageList) and not IsEmpty then begin |
with TImageList(Dest) do begin |
SaveChange := OnChange; |
try |
OnChange := nil; |
Clear; |
Width := Self.Width; |
Height := Self.Height; |
for I := 0 to Self.Count - 1 do begin |
if Self.Masked and (MaskColor <> clNone) then |
TImageList(Dest).AddMasked(GraphicCell[I], MaskColor) |
else TImageList(Dest).Add(GraphicCell[I], nil); |
end; |
Masked := Self.Masked; |
finally |
OnChange := SaveChange; |
end; |
THack(Dest).Change; |
end; |
end |
else inherited AssignTo(Dest); |
end; |
procedure TDXPictureClip.Changed; |
begin |
if Assigned(FOnChange) then FOnChange(Self); |
end; |
function TDXPictureClip.GetIsEmpty: Boolean; |
begin |
Result := not Assigned(Picture) or Picture.Graphic.Empty; |
end; |
function TDXPictureClip.GetCount: Integer; |
begin |
if IsEmpty then Result := 0 |
else Result := Cols * Rows; |
end; |
const |
{ TBitmap.GetTransparentColor from GRAPHICS.PAS uses this value } |
PaletteMask = $02000000; |
procedure TDXPictureClip.Draw(Canvas: TCanvas; X, Y, Index: Integer); |
function PaletteColor(Color: TColor): Longint; |
begin |
Result := ColorToRGB(Color) or PaletteMask; |
end; |
procedure StretchBltTransparent(DstDC: HDC; DstX, DstY, DstW, DstH: Integer; |
SrcDC: HDC; SrcX, SrcY, SrcW, SrcH: Integer; Palette: HPalette; |
TransparentColor: TColorRef); |
var |
Color: TColorRef; |
bmAndBack, bmAndObject, bmAndMem, bmSave: HBitmap; |
bmBackOld, bmObjectOld, bmMemOld, bmSaveOld: HBitmap; |
MemDC, BackDC, ObjectDC, SaveDC: HDC; |
palDst, palMem, palSave, palObj: HPalette; |
begin |
{ Create some DCs to hold temporary data } |
BackDC := CreateCompatibleDC(DstDC); |
ObjectDC := CreateCompatibleDC(DstDC); |
MemDC := CreateCompatibleDC(DstDC); |
SaveDC := CreateCompatibleDC(DstDC); |
{ Create a bitmap for each DC } |
bmAndObject := CreateBitmap(SrcW, SrcH, 1, 1, nil); |
bmAndBack := CreateBitmap(SrcW, SrcH, 1, 1, nil); |
bmAndMem := CreateCompatibleBitmap(DstDC, DstW, DstH); |
bmSave := CreateCompatibleBitmap(DstDC, SrcW, SrcH); |
{ Each DC must select a bitmap object to store pixel data } |
bmBackOld := SelectObject(BackDC, bmAndBack); |
bmObjectOld := SelectObject(ObjectDC, bmAndObject); |
bmMemOld := SelectObject(MemDC, bmAndMem); |
bmSaveOld := SelectObject(SaveDC, bmSave); |
{ Select palette } |
palDst := 0; palMem := 0; palSave := 0; palObj := 0; |
if Palette <> 0 then begin |
palDst := SelectPalette(DstDC, Palette, True); |
RealizePalette(DstDC); |
palSave := SelectPalette(SaveDC, Palette, False); |
RealizePalette(SaveDC); |
palObj := SelectPalette(ObjectDC, Palette, False); |
RealizePalette(ObjectDC); |
palMem := SelectPalette(MemDC, Palette, True); |
RealizePalette(MemDC); |
end; |
{ Set proper mapping mode } |
SetMapMode(SrcDC, GetMapMode(DstDC)); |
SetMapMode(SaveDC, GetMapMode(DstDC)); |
{ Save the bitmap sent here } |
BitBlt(SaveDC, 0, 0, SrcW, SrcH, SrcDC, SrcX, SrcY, SRCCOPY); |
{ Set the background color of the source DC to the color, } |
{ contained in the parts of the bitmap that should be transparent } |
Color := SetBkColor(SaveDC, PaletteColor(TransparentColor)); |
{ Create the object mask for the bitmap by performing a BitBlt() } |
{ from the source bitmap to a monochrome bitmap } |
BitBlt(ObjectDC, 0, 0, SrcW, SrcH, SaveDC, 0, 0, SRCCOPY); |
{ Set the background color of the source DC back to the original } |
SetBkColor(SaveDC, Color); |
{ Create the inverse of the object mask } |
BitBlt(BackDC, 0, 0, SrcW, SrcH, ObjectDC, 0, 0, NOTSRCCOPY); |
{ Copy the background of the main DC to the destination } |
BitBlt(MemDC, 0, 0, DstW, DstH, DstDC, DstX, DstY, SRCCOPY); |
{ Mask out the places where the bitmap will be placed } |
StretchBlt(MemDC, 0, 0, DstW, DstH, ObjectDC, 0, 0, SrcW, SrcH, SRCAND); |
{ Mask out the transparent colored pixels on the bitmap } |
BitBlt(SaveDC, 0, 0, SrcW, SrcH, BackDC, 0, 0, SRCAND); |
{ XOR the bitmap with the background on the destination DC } |
StretchBlt(MemDC, 0, 0, DstW, DstH, SaveDC, 0, 0, SrcW, SrcH, SRCPAINT); |
{ Copy the destination to the screen } |
BitBlt(DstDC, DstX, DstY, DstW, DstH, MemDC, 0, 0, |
SRCCOPY); |
{ Restore palette } |
if Palette <> 0 then begin |
SelectPalette(MemDC, palMem, False); |
SelectPalette(ObjectDC, palObj, False); |
SelectPalette(SaveDC, palSave, False); |
SelectPalette(DstDC, palDst, True); |
end; |
{ Delete the memory bitmaps } |
DeleteObject(SelectObject(BackDC, bmBackOld)); |
DeleteObject(SelectObject(ObjectDC, bmObjectOld)); |
DeleteObject(SelectObject(MemDC, bmMemOld)); |
DeleteObject(SelectObject(SaveDC, bmSaveOld)); |
{ Delete the memory DCs } |
DeleteDC(MemDC); |
DeleteDC(BackDC); |
DeleteDC(ObjectDC); |
DeleteDC(SaveDC); |
end; |
procedure StretchBitmapTransparent(Dest: TCanvas; Bitmap: TBitmap; |
TransparentColor: TColor; DstX, DstY, DstW, DstH, SrcX, SrcY, |
SrcW, SrcH: Integer); |
var |
CanvasChanging: TNotifyEvent; |
begin |
if DstW <= 0 then DstW := Bitmap.Width; |
if DstH <= 0 then DstH := Bitmap.Height; |
if (SrcW <= 0) or (SrcH <= 0) then begin |
SrcX := 0; SrcY := 0; |
SrcW := Bitmap.Width; |
SrcH := Bitmap.Height; |
end; |
if not Bitmap.Monochrome then |
SetStretchBltMode(Dest.Handle, STRETCH_DELETESCANS); |
CanvasChanging := Bitmap.Canvas.OnChanging; |
Bitmap.Canvas.Lock; |
try |
Bitmap.Canvas.OnChanging := nil; |
if TransparentColor = clNone then begin |
StretchBlt(Dest.Handle, DstX, DstY, DstW, DstH, Bitmap.Canvas.Handle, |
SrcX, SrcY, SrcW, SrcH, Dest.CopyMode); |
end |
else begin |
if TransparentColor = clDefault then |
TransparentColor := Bitmap.Canvas.Pixels[0, Bitmap.Height - 1]; |
if Bitmap.Monochrome then TransparentColor := clWhite |
else TransparentColor := ColorToRGB(TransparentColor); |
StretchBltTransparent(Dest.Handle, DstX, DstY, DstW, DstH, |
Bitmap.Canvas.Handle, SrcX, SrcY, SrcW, SrcH, Bitmap.Palette, |
TransparentColor); |
end; |
finally |
Bitmap.Canvas.OnChanging := CanvasChanging; |
Bitmap.Canvas.Unlock; |
end; |
end; |
procedure DrawBitmapTransparent(Dest: TCanvas; DstX, DstY: Integer; |
Bitmap: TBitmap; TransparentColor: TColor); |
begin |
StretchBitmapTransparent(Dest, Bitmap, TransparentColor, DstX, DstY, |
Bitmap.Width, Bitmap.Height, 0, 0, Bitmap.Width, Bitmap.Height); |
end; |
var |
Image: TGraphic; |
begin |
if Index < 0 then Image := Picture.Graphic |
else Image := GraphicCell[Index]; |
if (Image <> nil) and not Image.Empty then begin |
if FMasked and (FMaskColor <> clNone) and |
(Picture.Graphic is TBitmap) then |
DrawBitmapTransparent(Canvas, X, Y, TBitmap(Image), FMaskColor) |
else Canvas.Draw(X, Y, Image); |
end; |
end; |
procedure TDXPictureClip.DrawCenter(Canvas: TCanvas; Rect: TRect; Index: Integer); |
var |
X, Y: Integer; |
begin |
X := (Rect.Left + Rect.Right - Width) div 2; |
Y := (Rect.Bottom + Rect.Top - Height) div 2; |
Draw(Canvas, X, Y, Index); |
end; |
procedure TDXPictureClip.CheckIndex(Index: Integer); |
begin |
if (Index >= Cols * Rows) or (Index < 0) then |
raise EListError.CreateFmt('%s (%d)', ['Load list error', Index]); |
end; |
function TDXPictureClip.GetIndex(Col, Row: Cardinal): Integer; |
begin |
Result := Col + (Row * Cols); |
if (Result >= Cols * Rows) or IsEmpty then Result := -1; |
end; |
function TDXPictureClip.GetCell(Col, Row: Cardinal): TBitmap; |
begin |
Result := GetGraphicCell(GetIndex(Col, Row)); |
end; |
function TDXPictureClip.GetGraphicCell(Index: Integer): TBitmap; |
procedure AssignBitmapCell(Source: TGraphic; Dest: TBitmap; Cols, Rows, |
Index: Integer); |
var |
CellWidth, CellHeight: Integer; |
begin |
if (Source <> nil) and (Dest <> nil) then begin |
if Cols <= 0 then Cols := 1; |
if Rows <= 0 then Rows := 1; |
if Index < 0 then Index := 0; |
CellWidth := Source.Width div Cols; |
CellHeight := Source.Height div Rows; |
with Dest do begin |
Width := CellWidth; Height := CellHeight; |
end; |
if Source is TBitmap then begin |
Dest.Canvas.CopyRect(Bounds(0, 0, CellWidth, CellHeight), |
TBitmap(Source).Canvas, Bounds((Index mod Cols) * CellWidth, |
(Index div Cols) * CellHeight, CellWidth, CellHeight)); |
Dest.TransparentColor := TBitmap(Source).TransparentColor; |
end |
else begin |
Dest.Canvas.Brush.Color := clSilver; |
Dest.Canvas.FillRect(Bounds(0, 0, CellWidth, CellHeight)); |
Dest.Canvas.Draw(-(Index mod Cols) * CellWidth, |
-(Index div Cols) * CellHeight, Source); |
end; |
Dest.Transparent := Source.Transparent; |
end; |
end; |
begin |
CheckIndex(Index); |
AssignBitmapCell(Picture.Graphic, FBitmap, Cols, Rows, Index); |
if Picture.Graphic is TBitmap then |
if FBitmap.PixelFormat <> pfDevice then |
FBitmap.PixelFormat := TBitmap(Picture.Graphic).PixelFormat; |
FBitmap.TransparentColor := FMaskColor or PaletteMask; |
FBitmap.Transparent := (FMaskColor <> clNone) and Masked; |
Result := FBitmap; |
end; |
function TDXPictureClip.GetDefaultMaskColor: TColor; |
begin |
Result := clOlive; |
if (Picture.Graphic <> nil) and (Picture.Graphic is TBitmap) then |
Result := TBitmap(Picture.Graphic).TransparentColor and |
not PaletteMask; |
end; |
function TDXPictureClip.GetHeight: Integer; |
begin |
Result := Picture.Height div FRows; |
end; |
function TDXPictureClip.GetWidth: Integer; |
begin |
Result := Picture.Width div FCols; |
end; |
function TDXPictureClip.IsMaskStored: Boolean; |
begin |
Result := MaskColor <> GetDefaultMaskColor; |
end; |
procedure TDXPictureClip.SetMaskColor(Value: TColor); |
begin |
if Value <> FMaskColor then begin |
FMaskColor := Value; |
Changed; |
end; |
end; |
procedure TDXPictureClip.PictureChanged(Sender: TObject); |
begin |
FMaskColor := GetDefaultMaskColor; |
if not (csReading in ComponentState) then Changed; |
end; |
procedure TDXPictureClip.SetHeight(Value: Integer); |
begin |
if (Value > 0) and (Picture.Height div Value > 0) then |
Rows := Picture.Height div Value; |
end; |
procedure TDXPictureClip.SetWidth(Value: Integer); |
begin |
if (Value > 0) and (Picture.Width div Value > 0) then |
Cols := Picture.Width div Value; |
end; |
procedure TDXPictureClip.SetPicture(Value: TPicture); |
begin |
FPicture.Assign(Value); |
end; |
{ Transformations routines } |
{ Authorisation: Mr. Takanori Kawasaki} |
//Distance between 2 points is calculated |
function Get2PointRange(a,b: TDblPoint):Double; |
var |
x,y: Double; |
begin |
x := a.X - b.X; |
y := a.Y - b.Y; |
Result := Sqrt(x*x+y*y); |
end; |
//Direction angle in the coordinate A which was seen from coordinate B is calculated |
function GetARadFromB(A,B: TDblPoint):Double; |
var |
dX,dY: Double; |
begin |
dX := A.X - B.X; |
dY := A.Y - B.Y; |
Result := Get256(dX,dY); |
end; |
//Direction angle is returned with 0 - 255. |
function Get256(dX,dY:Double):Double; |
begin |
Result := 0; |
if dX > 0 then |
begin//0-63 |
if dY > 0 then Result := ArcTan(dY / dX) // 0 < Res < 90 |
else//0 |
if dY = 0 then Result := 0 // 0 |
else//192-255 |
if dY < 0 then Result := 2*Pi + ArcTan(dY / dX) // 270 < Res < 360 |
end else |
if dX = 0 then |
begin//64 |
if dY > 0 then Result := 1 / 2 * Pi // 90 |
else//0 |
if dY = 0 then Result := 0 // 0 |
else//192 |
if dY < 0 then Result := 3 / 2 * Pi // 270 |
end else |
if dX < 0 then |
begin//64-127 |
if dY > 0 then Result := Pi + ArcTan(dY / dX) // 90 < Res < 180 |
else//128 |
if dY = 0 then Result := Pi // 180 |
else//128-191 |
if dY < 0 then Result := Pi + ArcTan(dY / dX) // 180 < Res < 270 |
end; |
Result := 256 * Result / (2*Pi); |
end; |
//From the coordinate SP the Range it calculates the point which leaves with the angular Angle |
function GetPointFromRangeAndAngle(SP: TDblPoint; Range,Angle: Double): TDblPoint; |
begin |
Result.X := SP.X + Range * Cos(Angle); |
Result.Y := SP.Y + Range * Sin(Angle); |
end; |
//* As for coordinate transformation coordinate for mathematics is used |
//Identity matrix for the 2d is returned. |
function Ini2DRowCol: T2DRowCol; |
var |
i,ii:integer; |
begin |
for i := 1 to 3 do |
for ii := 1 to 3 do |
if i = ii then Result[i,ii] := 1 else Result[i,ii] := 0; |
end; |
//Transformation matrix of the portable quantity |
//where the one for 2d is appointed is returned. |
function Trans2DRowCol(x,y:double):T2DRowCol; |
begin |
Result := Ini2DRowCol; |
Result[3,1] := x; |
Result[3,2] := y; |
end; |
//Conversion coordinate of the expansion and contraction |
//quantity where the one for 2d is appointed is returned. |
function Scale2DRowCol(x,y:double):T2DRowCol; |
begin |
Result := Ini2DRowCol; |
Result[1,1] := x; |
Result[2,2] := y; |
end; |
//Coordinate transformation of the rotary quantity |
//where the one for 2d is appointed is returned. |
function Rotate2DRowCol(Theta:double):T2DRowCol; |
begin |
Result := Ini2DRowCol; |
Result[1,1] := Cos256(Trunc(Theta)); |
Result[1,2] := Sin256(Trunc(Theta)); |
Result[2,1] := -1 * Result[1,2]; |
Result[2,2] := Result[1,1]; |
end; |
//You apply two conversion coordinates and adjust. |
function Multiply2DRowCol(A,B:T2DRowCol):T2DRowCol; |
begin |
Result[1,1] := A[1,1] * B[1,1] + A[1,2] * B[2,1]; |
Result[1,2] := A[1,1] * B[1,2] + A[1,2] * B[2,2]; |
Result[1,3] := 0; |
Result[2,1] := A[2,1] * B[1,1] + A[2,2] * B[2,1]; |
Result[2,2] := A[2,1] * B[1,2] + A[2,2] * B[2,2]; |
Result[2,3] := 0; |
Result[3,1] := A[3,1] * B[1,1] + A[3,2] * B[2,1] + B[3,1]; |
Result[3,2] := A[3,1] * B[1,2] + A[3,2] * B[2,2] + B[3,2]; |
Result[3,3] := 1; |
end; |
//Until coordinate (the X and the Y) comes on the X axis, |
//the conversion coordinate which turns the position |
//of the point is returned. |
function RotateIntoX2DRowCol(x,y: double):T2DRowCol; |
var |
d: double; |
begin |
Result := Ini2DRowCol; |
d := sqrt(x*x+y*y); |
Result[1,1] := x / d; |
Result[1,2] := y / d; |
Result[2,1] := -1 * Result[1,2]; |
Result[2,2] := Result[1,1]; |
end; |
//Coordinate (the X and the Y) as a center, the conversion |
//coordinate which does the scaling of the magnification ratio |
//which is appointed with the Sx and the Sy is returned. |
function ScaleAt2DRowCol(x,y,Sx,Sy:double):T2DRowCol; |
var |
T,S,TInv,M:T2DRowCol; |
begin |
T := Trans2DRowCol(-x,-y); |
TInv := Trans2DRowCol(x,y); |
S := Scale2DRowCol(Sx,Sy); |
M := Multiply2DRowCol(T,S); |
Result := Multiply2DRowCol(M,T); |
end; |
//Coordinate (the X and the Y) it passes, comes hard and |
//(DX and the dy) with the direction which is shown it |
//returns the transformation matrix which does the reflected |
//image conversion which centers the line which faces. |
function ReflectAcross2DRowCol(x,y,dx,dy:Double): T2DRowCol; |
var |
T,R,S,RInv,TInv,M1,M2,M3: T2DRowCol; |
begin |
T := Trans2DRowCol(-x,-y); |
TInv := Trans2DRowCol(x,y); |
R := RotateIntoX2DRowCol(dx,dy); |
RInv := RotateIntoX2DRowCol(dx,-dy); |
S := Scale2DRowCol(1,-1); |
M1 := Multiply2DRowCol(T,R); |
M2 := Multiply2DRowCol(S,RInv); |
M3 := Multiply2DRowCol(M1,M2); |
Result := Multiply2DRowCol(M3,TInv); |
end; |
//Coordinate focusing on (the X and the Y) the transformation |
//matrix which turns the position of the point with angle Theta is returned. |
function RotateAround2DRowCol(x,y,Theta:Double): T2DRowCol; |
var |
T,R,TInv,M: T2DRowCol; |
begin |
T := Trans2DRowCol(-x,-y); |
TInv := Trans2DRowCol(x,y); |
R := Rotate2DRowCol(Theta); |
M := Multiply2DRowCol(T,R); |
Result := Multiply2DRowCol(M,TInv); |
end; |
//Transformation matrix is applied to the point. |
function Apply2DVector(V:T2DVector; M:T2DRowCol): T2DVector; |
begin |
Result[1] := V[1] * M[1,1] + V[2] * M[2,1] + M[3,1]; |
Result[2] := V[1] * M[1,2] + V[2] * M[2,2] + M[3,2]; |
Result[3] := 1; |
end; |
//The TDblPoint is returned |
function DblPoint(a,b:Double):TDblPoint; |
begin |
Result.X := a; |
Result.Y := b; |
end; |
function TruncDblPoint(DblPos: TDblPoint): TPoint; |
begin |
Result.X := Trunc(DblPos.X); |
Result.Y := Trunc(DblPos.Y); |
end; |
{ |
+-----------------------------------------------------------------------------+ |
|Collision decision | |
+-----------------------------------------------------------------------------+} |
//Point and circle |
function PointInCircle(PPos,CPos: TPoint; R: integer): Boolean; |
begin |
Result := (PPos.X - CPos.X)*(PPos.X - CPos.X)+(PPos.Y - CPos.Y)*(PPos.Y - CPos.Y)<= R*R; |
end; |
//Circle and circle |
function CircleInCircle(C1Pos,C2Pos: TPoint; R1,R2:Integer): Boolean; |
begin |
Result := (C1Pos.X - C2Pos.X)*(C1Pos.X - C2Pos.X)+(C1Pos.Y - C2Pos.Y)*(C1Pos.Y - C2Pos.Y) <= (R1+R2)*(R1+R2); |
end; |
//Circle and line segment |
function SegmentInCircle(SPos,EPos,CPos: TPoint; R: Integer): Boolean; |
var |
V,C: TPoint; |
VC,VV,CC:integer; |
begin |
Result := False; |
V.X := EPos.X - SPos.X; V.Y := EPos.Y - SPos.Y; |
C.X := CPos.X - SPos.X; C.Y := CPos.Y - SPos.Y; |
VC := V.X * C.X + V.Y * C.Y; |
if VC < 0 then |
begin |
Result := (C.X * C.X + C.Y * C.Y) <= R*R; |
end |
else |
begin |
VV := V.X * V.X + V.Y * V.Y; |
if VC >= VV then |
begin |
Result := (EPos.X - CPos.X)*(EPos.X - CPos.X)+(EPos.Y - CPos.Y)*(EPos.Y - CPos.Y) <= R * R; |
end |
else |
if VC < VV then |
begin |
CC := C.X * C.X + C.Y * C.Y; |
Result := CC - (VC div VV)* VC <= R*R; |
end; |
end; |
end; |
//Angle recalc |
function Angle256(Angle: Single): Single; |
begin |
Result := Angle; |
While Result < 0 do Result := Result + 256; |
While Result >= 256 do Result := Result -256; |
end; |
//If A is closer than B from starting point S, the True is returned. |
function CheckNearAThanB(S,A,B: TDblPoint): Boolean; |
begin |
Result := (S.X-A.X)*(S.X-A.X)+(S.Y-A.Y)*(S.Y-A.Y) <= (S.X-B.X)*(S.X-B.X)+(S.Y-B.Y)*(S.Y-B.Y); |
end; |
function CircumCenter3Pt(const x1, y1, x2, y2, x3, y3: Single; out Px, Py: Single): Boolean; |
var |
A,B,C,D,E,F,G: Single; |
begin |
A := x2 - x1; |
B := y2 - y1; |
C := x3 - x1; |
D := y3 - y1; |
E := A * (x1 + x2) + B * (y1 + y2); |
F := C * (x1 + x3) + D * (y1 + y3); |
G := 2.0 * (A * (y3 - y2) - B * (x3 - x2)); |
Result := G <> 0.0; |
if Result then begin |
Px := (D * E - B * F) / G; |
Py := (A * F - C * E) / G; |
end; |
end; |
function Distance(const x1, y1, x2, y2: Double): Double; |
begin |
Result := Sqrt(Sqr(y2 - y1) + Sqr(x2 - x1)); |
end; |
procedure InCenter(const x1, y1, x2, y2, x3, y3: Double; out Px, Py: Double); |
var |
Perim: Double; |
Side12: Double; |
Side23: Double; |
Side31: Double; |
begin |
Side12 := Distance(x1, y1, x2, y2); |
Side23 := Distance(x2, y2, x3, y3); |
Side31 := Distance(x3, y3, x1, y1); |
{ Using Heron's S=UR } |
Perim := 1.0 / (Side12 + Side23 + Side31); |
Px := (Side23 * x1 + Side31 * x2 + Side12 * x3) * Perim; |
Py := (Side23 * y1 + Side31 * y2 + Side12 * y3) * Perim; |
end; |
function PointInTriangle(const Px, Py, x1, y1, x2, y2, x3, y3: Double): Boolean; |
function Orientation(const x1, y1, x2, y2, Px, Py: Double): Integer; |
var |
Orin: Double; |
begin |
(* Linear determinant of the 3 points *) |
Orin := (x2 - x1) * (py - y1) - (px - x1) * (y2 - y1); |
if Orin > 0.0 then |
Result := +1 (* Orientaion is to the right-hand side *) |
else if Orin < 0.0 then |
Result := -1 (* Orientaion is to the left-hand side *) |
else |
Result := 0; (* Orientaion is neutral aka collinear *) |
end; |
var |
Or1, Or2, Or3: Integer; |
begin |
Or1 := Orientation(x1, y1, x2, y2, Px, Py); |
Or2 := Orientation(x2, y2, x3, y3, Px, Py); |
Or3 := Orientation(x3, y3, x1, y1, Px, Py); |
if (Or1 = Or2) and (Or2 = Or3) then |
Result := True |
else if Or1 = 0 then |
Result := (Or2 = 0) or (Or3 = 0) |
else if Or2 = 0 then |
Result := (Or1 = 0) or (Or3 = 0) |
else if Or3 = 0 then |
Result := (Or2 = 0) or (Or1 = 0) |
else |
Result := False; |
end; |
procedure Log(const Co: string; const FName: string); |
var F: Text; D: TDateTime; |
Hour, Minute, Second, MSec: Word; |
begin |
AsSignFile(F, FName); |
if FileExists(FName) then Append(F) |
else ReWrite(F); |
try |
D := Now; |
DecodeTime(D, Hour, Minute, Second, MSec); |
WriteLn(F, DateToStr(D) + ' ' + IntToStr(Hour)+':'+IntToStr(Minute)+':'+IntToStr(Second)+ '.'+IntToStr(MSec) +' ' + Co); |
finally |
CloseFile(F); |
end; |
end; |
{$IFDEF _DMO_} |
{ TDirectXDriverEx } |
function TDirectXDriverEx.ConvertHMonitor(iMonitor: HMonitor): TMonitorInfo; |
begin |
ZeroMemory(@Result, sizeof(Result)); |
Result.cbSize := SizeOf(Result); |
MultiMon.GetMonitorInfo(iMonitor, @Result); |
end; |
function TDirectXDriverEx.GetFlags: DWORD; |
begin |
Result := ConvertHMonitor(FMonitor).dwFlags; |
end; |
function TDirectXDriverEx.GetMonitorInfo: TMonitorInfo; |
begin |
Result:= ConvertHMonitor(FMonitor); |
end; |
function TDirectXDriverEx.GetTempSpace: TRect; |
begin |
Result := ConvertHMonitor(FMonitor).rcWork |
end; |
function TDirectXDriverEx.GetWorkSpace: TRect; |
begin |
Result := ConvertHMonitor(FMonitor).rcMonitor |
end; |
procedure TDirectXDriverEx.SetGUID(Value: PGUID); |
begin |
if not IsBadHugeReadPtr(Value, SizeOf(TGUID)) then |
begin |
FGUID2 := Value^; |
FGUID := @FGUID2; |
end else |
FGUID := Value; |
end; |
{ TDirectXDriversEx } |
constructor TDirectXDriversEx.Create; |
begin |
inherited Create(TDirectXDriverEx); |
end; |
function TDirectXDriversEx.GetDriver(Index: Integer): TDirectXDriverEx; |
begin |
Result := (inherited Items[Index]) as TDirectXDriverEx; |
end; |
{$ENDIF} |
initialization |
InitCosinTable; |
finalization |
FreeLibList; |
end. |
end. |
/VCL_DELPHIX_D6/DXConsts.pas |
---|
22,7 → 22,7 |
SSession = 'Session'; |
SNotMade = '%s not made'; |
SStreamNotOpend = 'Stream not opend'; |
SStreamNotOpend = 'Stream not opened'; |
SWaveStreamNotSet = 'WaveStream not set'; |
SCannotMade = '%s cannot be made'; |
SCannotInitialized = '%s cannot be initialized'; |
29,7 → 29,7 |
SCannotChanged = '%s cannot be changed'; |
SCannotLock = '%s cannot be locked'; |
SCannotOpened = '%s cannot be opened'; |
SDLLNotLoaded = '%s not loaded'; |
SDLLNotLoaded = '%s is not loaded'; |
SImageNotFound = 'Image ''%s'' not found'; |
SWaveNotFound = 'Wave ''%s'' not found'; |
SEffectNotFound = 'Effect ''%s'' not found'; |
36,32 → 36,32 |
SListIndexError = 'Index of the list exceeds the range. (%d)'; |
SScanline = 'Index of the scanning line exceeded the range. (%d)'; |
SNoForm = 'Form not found'; |
SSinceDirectX5 = 'Necessary since DirectX 5'; |
SSinceDirectX6 = 'Necessary since DirectX 6'; |
SSinceDirectX7 = 'Necessary since DirectX 7'; |
SSinceDirectX5 = 'Requires DirectX 5.0 or later'; |
SSinceDirectX6 = 'Requires DirectX 6.0 or later'; |
SSinceDirectX7 = 'Requires DirectX 7.0 or later'; |
S3DDeviceNotFound = '3D device not found'; |
SDisplayModeChange = 'Display mode cannot be changed (%dx%d %dbit)'; |
SDisplayModeCannotAcquired = 'A present display mode cannot be acquired'; |
SDisplayModeCannotAcquired = 'Display mode cannot be acquired'; |
SInvalidDIB = 'DIB is invalid'; |
SInvalidDIBBitCount = 'Bitcount in invalid (%d)'; |
SInvalidDIBPixelFormat = 'PixelFormat in invalid'; |
SInvalidWave = 'Wave is invalid'; |
SInvalidDisplayBitCount = 'It should be either of 8 or 16 or 24 or 32'; |
SInvalidDisplayBitCount = 'Display requires 8, 16, 24 or 32 bits'; |
SInvalidWaveFormat = 'Format is invalid'; |
SNotSupported = '%s not supported'; |
SStreamOpend = 'Stream has already been opened'; |
SNecessaryDirectInputUseMouse = 'DirectInput is necessary to use the mouse'; |
SStreamOpend = 'Stream is already open'; |
SNecessaryDirectInputUseMouse = 'DirectInput is required for mouse support'; |
{ DirectPlay } |
SDXPlayNotConnectedNow = 'TDXPlay component is not connected now.'; |
SDXPlayNotConnectedNow = 'TDXPlay component is disconnected.'; |
SDXPlayProviderNotFound = 'Provider ''%s'' not found'; |
SDXPlayProviderSpecifiedGUIDNotFound = 'Provider of specified GUID is not found'; |
SDXPlayProviderSpecifiedGUIDNotFound = 'Provider''s specified GUID is not found'; |
SDXPlayModemListCannotBeAcquired = 'Modem list cannot be acquired'; |
SDXPlaySessionListCannotBeAcquired = 'Session list cannot be acquired'; |
SDXPlaySessionNotFound = 'Session ''%s'' not found'; |
SDXPlaySessionCannotOpened = 'Session %s cannot be opened'; |
SDXPlayPlayerNotFound = 'The player of specified ID is not found'; |
SDXPlayMessageIllegal = 'The message form is illegal'; |
SDXPlayPlayerNotFound = 'Player''s specified ID is not found'; |
SDXPlayMessageIllegal = 'Illegal message form'; |
SDXPlayPlayerNameIsNotSpecified = 'Player name is not specified'; |
SDXPlaySessionNameIsNotSpecified = 'Session name is not specified'; |
69,12 → 69,11 |
DXPlayFormComplete = 'Complete'; |
SNotSupportGraphicFile = 'Graphic format not suported'; |
SInvalidDXTFile = 'DXT file is invalid'; |
SCannotLoadGraphic = 'Can not load graphic'; |
SOverlay = 'Surface overlay not possible'; |
SNotSupportGraphicFile = 'This format graphic not suported'; |
SInvalidDXTFile = 'This DXT file is invalid'; |
SCannotLoadGraphic = 'Can''t Load this Graphic'; |
SOverlay = 'Not posible Overlay Surface'; |
const |
SDIBSize = '(%dx%d)'; |
SDIBColor = '%d color'; |
/VCL_DELPHIX_D6/DXDIBEffectEdit.pas |
---|
0,0 → 1,373 |
unit DXDIBEffectEdit; |
//(c)2007 Jaro Benes |
//All Rights Reserved |
{ |
Complex application for users of unDelphiX as component editor: |
Supported: |
a) create effect for store into dximagelist. |
} |
interface |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
StdCtrls, DIB, ExtCtrls, Math, ComCtrls, Buttons, ExtDlgs, Spin; |
type |
{injected class} |
EInvalidTypeConvert = class(Exception); |
TEdit = class(StdCtrls.TEdit) |
private |
procedure SetAsInteger(Value: Integer); |
function GetAsInteger: Integer; |
public |
property AsInteger: Integer read GetAsInteger write SetAsInteger; |
end; |
TTDelphiXDIBEffectEditForm = class(TForm) |
Button1: TButton; |
Image1: TImage; |
LSpokes: TLabel; |
LRaHUE: TLabel; |
LCentr: TLabel; |
eR: TEdit; |
eG: TEdit; |
eB: TEdit; |
Label4: TLabel; |
Label5: TLabel; |
Label6: TLabel; |
randSpok: TEdit; |
Label7: TLabel; |
RandGauss: TEdit; |
Label8: TLabel; |
rS_max: TSpeedButton; |
rG_max: TSpeedButton; |
Bevel1: TBevel; |
PictSize: TRadioGroup; |
SavePictureDialog1: TSavePictureDialog; |
Bevel2: TBevel; |
R_updown: TSpinButton; |
G_updown: TSpinButton; |
B_updown: TSpinButton; |
btnOK: TButton; |
btnCancel: TButton; |
Panel1: TPanel; |
Bevel3: TBevel; |
Spokes: TProgressBar; |
RaHUE: TProgressBar; |
Centr: TProgressBar; |
SpokesPlus: TSpeedButton; |
SpokesMinus: TSpeedButton; |
RaHUEPlus: TSpeedButton; |
RaHUEMinus: TSpeedButton; |
CentrPlus: TSpeedButton; |
CentrMinus: TSpeedButton; |
LName: TLabel; |
eName: TEdit; |
procedure CentrMinusClick(Sender: TObject); |
procedure CentrPlusClick(Sender: TObject); |
procedure RaHUEMinusClick(Sender: TObject); |
procedure RaHUEPlusClick(Sender: TObject); |
procedure SpokesMinusClick(Sender: TObject); |
procedure SpokesPlusClick(Sender: TObject); |
procedure CentrMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure RaHUEMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure SpokesMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure FormDestroy(Sender: TObject); |
procedure btnOKClick(Sender: TObject); |
procedure btnCancelClick(Sender: TObject); |
procedure Button1Click(Sender: TObject); |
procedure ImageChange(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
procedure rS_maxClick(Sender: TObject); |
procedure rG_maxClick(Sender: TObject); |
procedure R_updownUpClick(Sender: TObject); |
procedure R_updownDownClick(Sender: TObject); |
procedure G_updownUpClick(Sender: TObject); |
procedure G_updownDownClick(Sender: TObject); |
procedure B_updownUpClick(Sender: TObject); |
procedure B_updownDownClick(Sender: TObject); |
private |
{ Private declarations } |
FSpokes: Integer; |
FRaHUE: Integer; |
FCentr: Integer; |
procedure Calculate; |
public |
{ Public declarations } |
ResultDIB: TDIB; |
end; |
var |
DelphiXDIBEffectEditForm: TTDelphiXDIBEffectEditForm; |
implementation |
{$R *.DFM} |
{ TEdit } |
{injected class functionality like in jbEdit.TPubEdit component} |
procedure TEdit.SetAsInteger(Value: Integer); |
begin |
Text := IntToStr(Value) |
end; |
function TEdit.GetAsInteger: Integer; |
begin |
Result := 0; |
if Text = '' then |
Exit; |
try |
Result := StrToInt(Text); |
except |
raise EInvalidTypeConvert.Create('Expected integer value !'); |
end |
end; |
{ TTDelphiXDIBEffectEditForm } |
procedure TTDelphiXDIBEffectEditForm.Calculate; |
const |
wSize: array[0..5] of Word = (256, 128, 64, 32, 16, 8); |
begin |
// call this |
// cx,cy : center x and y |
// radius : 1-100 |
// spokes : 1-1024 |
// randomhue : 0-360 |
ResultDIB.Clear; |
ResultDIB.SetSize(wSize[PictSize.ItemIndex], wSize[PictSize.ItemIndex], 24); |
ResultDIB.Canvas.Brush.Color := clBlack; |
ResultDIB.Canvas.FillRect(ResultDIB.Canvas.ClipRect); |
LSpokes.Caption := Format('Spokes (%d)', [FSpokes]); |
LRaHUE.Caption := Format('Random HUE (%d)', [FRaHUE]); |
LCentr.Caption := Format('Nova radius (%d)', [FCentr]); |
ResultDIB.DoNovaEffect(eR.AsInteger, eG.AsInteger, eB.AsInteger, ResultDIB.Width div 2, |
ResultDIB.Height div 2, FCentr, FSpokes, FRaHUE, |
randSpok.AsInteger, randGauss.AsInteger, nil); |
Image1.Picture.Assign(ResultDIB); |
end; |
procedure TTDelphiXDIBEffectEditForm.Button1Click(Sender: TObject); |
begin |
Calculate; |
if SavePictureDialog1.Execute then |
ResultDIB.SaveToFile(SavePictureDialog1.FileName); |
end; |
procedure TTDelphiXDIBEffectEditForm.FormCreate(Sender: TObject); |
begin |
Tag := 0; |
ResultDIB := TDIB.Create; |
Randomize; |
randspok.AsInteger := Random(MAXSHORT); |
randgauss.AsInteger := Random(MAXSHORT); |
FSpokes := 255; Spokes.Position := FSpokes; {$IFDEF VER4UP} Spokes.Smooth := True; {$ENDIF} |
FRaHUE := 1; RaHUE.Position := FRaHUE; {$IFDEF VER4UP} RaHUE.Smooth := True; {$ENDIF} |
FCentr := 18; Centr.Position := FCentr; {$IFDEF VER4UP} Centr.Smooth := True; {$ENDIF} |
LSpokes.Caption := Format('Spokes (%d)', [FSpokes]); |
LRaHUE.Caption := Format('Random HUE (%d)', [FRaHUE]); |
LCentr.Caption := Format('Nova radius (%d)', [FCentr]); |
Calculate; |
randSpok.OnChange := ImageChange; |
randgauss.OnChange := ImageChange; |
{$IFDEF VER4UP} |
Spokes.Smooth := True; |
RaHUE.Smooth := True; |
Centr.Smooth := True; |
{$ENDIF} |
end; |
procedure TTDelphiXDIBEffectEditForm.rS_maxClick(Sender: TObject); |
begin |
RandSpok.AsInteger := maxint; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.rG_maxClick(Sender: TObject); |
begin |
RandGauss.AsInteger := maxint; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.R_updownUpClick(Sender: TObject); |
begin |
if eR.AsInteger < 255 then eR.AsInteger := eR.AsInteger + 1; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.R_updownDownClick(Sender: TObject); |
begin |
if eR.AsInteger > 0 then eR.AsInteger := eR.AsInteger - 1; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.G_updownUpClick(Sender: TObject); |
begin |
if eG.AsInteger < 255 then eG.AsInteger := eG.AsInteger + 1; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.G_updownDownClick(Sender: TObject); |
begin |
if eG.AsInteger > 0 then eG.AsInteger := eG.AsInteger - 1; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.B_updownUpClick(Sender: TObject); |
begin |
if eB.AsInteger < 255 then eB.AsInteger := eB.AsInteger + 1; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.B_updownDownClick(Sender: TObject); |
begin |
if eB.AsInteger > 0 then eB.AsInteger := eB.AsInteger - 1; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.btnCancelClick(Sender: TObject); |
begin |
Close; |
end; |
procedure TTDelphiXDIBEffectEditForm.btnOKClick(Sender: TObject); |
begin |
if eName.Text <> '' then begin |
Tag := 1; |
Close; |
end |
else |
MessageDlg('Image name required!', mtWarning, [mbOK], 0);; |
end; |
procedure TTDelphiXDIBEffectEditForm.FormDestroy(Sender: TObject); |
begin |
ResultDIB.Free; |
end; |
procedure TTDelphiXDIBEffectEditForm.ImageChange(Sender: TObject); |
begin |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.SpokesMouseMove(Sender: TObject; |
Shift: TShiftState; X, Y: Integer); |
var |
newPosition: integer; |
begin |
with Sender as TProgressBar do begin |
if ssLeft in Shift then |
begin |
Cursor := crHSplit; |
newPosition := Round(x * Max / ClientWidth); |
Position := newPosition; |
end |
else |
begin |
Cursor := crDefault; |
end; |
FSpokes := Position; |
LSpokes.Caption := Format('Spokes (%d)', [FSpokes]); |
if ssLeft in Shift then Calculate; |
end; |
end; |
procedure TTDelphiXDIBEffectEditForm.RaHUEMouseMove(Sender: TObject; |
Shift: TShiftState; X, Y: Integer); |
var |
newPosition: integer; |
begin |
with Sender as TProgressBar do begin |
if ssLeft in Shift then |
begin |
Cursor := crHSplit; |
newPosition := Round(x * Max / ClientWidth); |
Position := newPosition; |
end |
else |
begin |
Cursor := crDefault; |
end; |
FRaHUE := Position; |
LRaHUE.Caption := Format('Random HUE (%d)', [FRaHUE]); |
if ssLeft in Shift then Calculate; |
end; |
end; |
procedure TTDelphiXDIBEffectEditForm.CentrMouseMove(Sender: TObject; |
Shift: TShiftState; X, Y: Integer); |
var |
newPosition: integer; |
begin |
with Sender as TProgressBar do begin |
if ssLeft in Shift then |
begin |
Cursor := crHSplit; |
newPosition := Round(x * Max / ClientWidth); |
Position := newPosition; |
end |
else |
begin |
Cursor := crDefault; |
end; |
FCentr := Position; |
LCentr.Caption := Format('Nova radius (%d)', [FCentr]); |
if ssLeft in Shift then Calculate; |
end; |
end; |
procedure TTDelphiXDIBEffectEditForm.SpokesPlusClick(Sender: TObject); |
begin |
Inc(FSpokes); if FSpokes > 1024 then FSpokes := 1024; |
Spokes.Position := FSpokes; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.SpokesMinusClick(Sender: TObject); |
begin |
Dec(FSpokes); if FSpokes < 1 then FSpokes := 1; |
Spokes.Position := FSpokes; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.RaHUEPlusClick(Sender: TObject); |
begin |
Inc(FRaHUE); if FRaHUE > 360 then FRaHUE := 360; |
RaHUE.Position := FRaHUE; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.RaHUEMinusClick(Sender: TObject); |
begin |
Dec(FRaHUE); if FRaHUE < 0 then FRaHUE := 0; |
RaHUE.Position := FRaHUE; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.CentrPlusClick(Sender: TObject); |
begin |
Inc(FCentr); if FCentr > 100 then FCentr := 100; |
Centr.Position := FCentr; |
Calculate; |
end; |
procedure TTDelphiXDIBEffectEditForm.CentrMinusClick(Sender: TObject); |
begin |
Dec(FCentr); if FCentr < 1 then FCentr := 1; |
Centr.Position := FCentr; |
Calculate; |
end; |
end. |
/VCL_DELPHIX_D6/DXFFBEdit.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DXGUIDEdit.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DXGlueItEdit.dfm |
---|
0,0 → 1,4846 |
object DXGlueItEditor: TDXGlueItEditor |
Left = 326 |
Top = 290 |
BorderStyle = bsSingle |
Caption = 'Glue-It' |
ClientHeight = 504 |
ClientWidth = 659 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = False |
OnCreate = FormCreate |
OnDestroy = FormDestroy |
PixelsPerInch = 96 |
TextHeight = 13 |
object Panel5: TPanel |
Left = 571 |
Top = 0 |
Width = 88 |
Height = 504 |
Align = alRight |
BevelOuter = bvNone |
TabOrder = 0 |
object Image2: TImage |
Left = 0 |
Top = 416 |
Width = 88 |
Height = 88 |
Align = alBottom |
end |
object btnExit: TButton |
Left = 10 |
Top = 9 |
Width = 71 |
Height = 24 |
Caption = 'OK' |
ModalResult = 1 |
TabOrder = 0 |
OnClick = btnExitClick |
end |
object Button1: TButton |
Left = 10 |
Top = 40 |
Width = 71 |
Height = 25 |
Caption = 'Cancel' |
ModalResult = 2 |
TabOrder = 1 |
end |
end |
object mainPageControl: TPageControl |
Left = 0 |
Top = 0 |
Width = 571 |
Height = 504 |
ActivePage = tsGlueIt |
Align = alClient |
HotTrack = True |
TabOrder = 1 |
OnChange = mainPageControlChange |
object tsGlueIt: TTabSheet |
Caption = 'Glue-It' |
object Panel1: TPanel |
Left = 0 |
Top = 0 |
Width = 563 |
Height = 476 |
Align = alClient |
BevelOuter = bvNone |
TabOrder = 0 |
object Splitter2: TSplitter |
Left = 359 |
Top = 0 |
Width = 4 |
Height = 476 |
Cursor = crHSplit |
Align = alRight |
end |
object grManagementOfTheFrames: TGroupBox |
Left = 0 |
Top = 0 |
Width = 359 |
Height = 476 |
Align = alClient |
Caption = ' Management of the frames: ' |
TabOrder = 0 |
object Panel4: TPanel |
Left = 2 |
Top = 15 |
Width = 355 |
Height = 459 |
Align = alClient |
BevelOuter = bvNone |
BorderWidth = 5 |
TabOrder = 0 |
object LWidthOfImages: TLabel |
Left = 158 |
Top = 366 |
Width = 81 |
Height = 13 |
Caption = 'Width of images:' |
Enabled = False |
FocusControl = EWidthOfImages |
end |
object LHeightOfImages: TLabel |
Left = 155 |
Top = 390 |
Width = 84 |
Height = 13 |
Caption = 'Heigth of images:' |
Enabled = False |
FocusControl = EHeightOfImages |
end |
object Label8: TLabel |
Left = 8 |
Top = 335 |
Width = 86 |
Height = 13 |
Hint = 'Initial color for background when is transparent option turn on.' |
Caption = 'Background color:' |
ParentShowHint = False |
ShowHint = True |
Transparent = True |
end |
object chbCrop: TCheckBox |
Left = 240 |
Top = 408 |
Width = 41 |
Height = 17 |
Caption = 'Crop' |
Enabled = False |
TabOrder = 6 |
end |
object chbCentered: TCheckBox |
Left = 240 |
Top = 424 |
Width = 73 |
Height = 17 |
Caption = 'Centered' |
Enabled = False |
TabOrder = 7 |
end |
object ListBox1: TListBox |
Left = 5 |
Top = 33 |
Width = 345 |
Height = 289 |
Align = alTop |
DragMode = dmAutomatic |
ExtendedSelect = False |
IntegralHeight = True |
ItemHeight = 13 |
Style = lbOwnerDrawVariable |
TabOrder = 1 |
OnDragDrop = ListBox1DragDrop |
OnDragOver = ListBox1DragOver |
OnDrawItem = ListBox1DrawItem |
OnMeasureItem = ListBox1MeasureItem |
OnMouseDown = ListBox1MouseDown |
end |
object Panel3: TPanel |
Left = 5 |
Top = 5 |
Width = 345 |
Height = 28 |
Align = alTop |
BevelOuter = bvLowered |
TabOrder = 0 |
object btnAddImages: TSpeedButton |
Left = 2 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acAddImages |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF000000000000FF000000FF000000FF000000FF00000000000000FF000000FF |
00000000000000FF000000FF000000000000FF00FF00FF00FF0000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00000000008080800000FF000000FF |
000000BF000000FF000000FF00000000000000FF000000FF000000000000FF00 |
FF00FF00FF008080800000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF000000BF000000FF000000FF000000FF000000FF000000FF |
000000FF000000000000FF00FF00FF00FF0080808000FFFF000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF000000BF |
000000FF000000FF000000BF000000FF000000BF0000FF00FF00FF00FF008080 |
8000FFFF0000FFFF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF0000FFFF0000FFFF000000BF000000FF000000FF000000BF |
0000FFFF00008080800080808000FFFF0000FFFF0000FFFF000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
0000FFFF000000BF000000BF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000BFBF0000BF |
BF00FFFF0000FFFF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF000000BFBF0000FFFF0000FFFF0000BFBF00FFFF000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000BFBF0000FFFF0000FF |
FF0000BFBF00FFFF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF000000BFBF0000BFBF00FFFF0000FFFF000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object btnDeleteSelected: TSpeedButton |
Left = 58 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acDeleteOne |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF000000000000FF000000FF000000FF000000FF00000000000000FF000000FF |
00000000000000FF000000FF000000000000C0C0C000C0C0C00000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00000000008080800000FF000000FF |
000000BF000000FF000000FF00000000000000FF000000FF000000000000C0C0 |
C000C0C0C0008080800000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF000000BF000000FF000000FF000000FF000000FF000000FF |
000000FF000000000000C0C0C000C0C0C00080808000FFFF00000000FF00C0C0 |
C000FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF000000BF |
00000000FF00C0C0C00000BF000000FF000000BF0000C0C0C000C0C0C0008080 |
8000FFFF0000FFFF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF0000FFFF00000000FF000000FF000000FF00C0C0C00000BF |
0000FFFF00008080800080808000FFFF0000FFFF00000000FF00C0C0C000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF00000000 |
FF000000FF000000FF00C0C0C000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
00000000FF00C0C0C00000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF0000FFFF0000FFFF00000000FF000000FF000000FF00C0C0 |
C000FFFF0000FFFF0000FFFF00000000FF000000FF00C0C0C00000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
0000FFFF00000000FF000000FF000000FF00C0C0C000FFFF00000000FF000000 |
FF00C0C0C000FFFF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000FF000000 |
FF000000FF000000FF000000FF00C0C0C00000BFBF00FFFF000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF00000000FF000000FF000000FF00C0C0C00000FF |
FF0000BFBF00FFFF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000FF000000 |
FF000000FF000000FF000000FF00C0C0C000FFFF0000FFFF000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
0000FFFF00000000FF000000FF000000FF00C0C0C000FFFF00000000FF00C0C0 |
C000FFFF0000FFFF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF000000000000000000000000000000FF000000FF000000FF000000FF00C0C0 |
C0000000000000000000000000000000FF000000FF00C0C0C00000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000FF000000 |
FF000000FF000000FF00C0C0C000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF000000FF000000FF00C0C0C000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000FF000000FF00C0C0C000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000FF000000FF00C0C0 |
C000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object btnClearAll: TSpeedButton |
Left = 34 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acDeleteAll |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
0000FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00000000000000000000000000FFFFFF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000000000 |
000000000000FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
0000FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000FFFFFF00FF00 |
FF00FF00FF00FF00FF000000000000000000FFFFFF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00000000000000000000000000FFFFFF00FF00FF000000000000000000FFFF |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000000000000000 |
00000000000000000000FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00000000000000000000000000FFFFFF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000000000000000 |
00000000000000000000FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00000000000000000000000000FFFFFF00FF00FF0000000000FFFFFF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000000000000000000000000000000000FFFFFF00FF00 |
FF00FF00FF00FF00FF000000000000000000FFFFFF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000000000000000 |
000000000000FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
000000000000FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF000000000000000000FFFFFF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000000000FFFFFF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object btnSave: TSpeedButton |
Left = 90 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acSaveToFile |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FF00FF008080 |
8000808080008080800080808000808080008080800080808000808080008080 |
800000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF008080800000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF00FF00 |
FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00FF008080 |
800000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
00000000000000000000FFFFFF00FF00FF000000000000000000000000000000 |
00000000000000000000FF00FF008080800000000000FF00FF00FF00FF00FF00 |
FF00FF00FF000000000000000000FFFF0000FF00000000000000FFFFFF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008080 |
800000000000FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
0000FF00000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF |
FF00FFFFFF00FFFFFF00FFFFFF00FF00FF0000000000FF00FF00FF00FF000000 |
0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
FF00FFFF0000FFFF0000FF000000FF000000FF00000000FFFF0000FFFF0000FF |
FF0000FFFF0000BFBF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000FFFF0000FFFFFF00FFFF0000FFFF0000FFFF0000FF00 |
0000FF0000008080800000FFFF0000FFFF0000FFFF0000FFFF0000BFBF000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF |
0000FFFF0000FFFF0000FFFF000000BF000000BF00008080800000FFFF0000FF |
FF000000BF0000BFBF0000FFFF0000000000FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF000000BF000000BF |
000000BF000000BF0000FFFFFF0000FFFF000000BF000000BF0000FFFF0000BF |
BF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
0000FFFF0000FFFF000000BF000000BF000000BF000000BF000000BF00000000 |
BF000000BF000000BF0000FFFF0000BFBF0000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF000000BF000000BF |
000000BF000000BF00000000BF000000BF0000FFFF0000000000000000000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF000000BF000000BF000000BF000000BF000000BF00000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF00FFFF0000FFFF |
000000BF000000BF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000FFFF0000FFFF00000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object btnGlueIt: TSpeedButton |
Left = 122 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acGlueIt |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF008080800000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000FFFF000080 |
800000FFFF000080800000FFFF000080800000FFFF000080800000FFFF000080 |
800000FFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF000000000000808000C0C0C0000000000000000000000000000000 |
000000000000C0C0C0000080800000FFFF000080800000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000FFFF000080 |
8000C0C0C0000000000000000000000000000000000000000000C0C0C0000080 |
800000FFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000000000000000 |
00000000000000000000FFFFFF00FFFFFF00C0C0C00000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF00FFFF |
FF00FFFFFF000000000000000000000000000000000000000000FFFFFF00FFFF |
FF00C0C0C00000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFF |
FF00FFFFFF0000000000FFFFFF00FFFFFF00C0C0C00000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000C0C0C000FFFF |
FF00FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFFFF00C0C0 |
C0008080800000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000000000C0C0C000FFFFFF00FFFFFF00808080000000 |
000080808000FFFFFF00C0C0C000C0C0C0000000000080808000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
0000FFFFFF00FFFFFF00808080000000000080808000C0C0C000000000000000 |
000080808000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF |
FF00FFFFFF00FFFFFF00C0C0C0000000000080808000C0C0C000808080008080 |
800000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0080808000000000000000000000000000000000000000 |
00000000000000000000000000000000000080808000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00808080000000000080808000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object btnGlue2Iso: TSpeedButton |
Left = 146 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acGlueIzonometrics |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF |
FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FF00 |
FF00FF00FF00FF00FF00FF00FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0080808000FFFFFF0000000000FFFFFF0080808000FFFFFF0000000000FFFF |
FF0080808000FFFFFF0000000000FFFFFF0080808000FFFFFF0000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FF00FF00FF00FF00FF00FF00FF00FF008000 |
0000800000008000000080000000800000008000000080000000800000008000 |
00008000000080000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF008000000000FF000000FF000000FF000000FF |
000000FF000000FF000000FF000000FF000080000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008000 |
000000FF00008000000080000000800000008000000000FF000000FF00008000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF008000000000FF000080000000808080008000 |
000000FF000000FF000080000000000000000000000080808000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008000 |
000000FF0000800000008000000000FF000000FF000080000000FF00FF000000 |
000000000000000000000000000080808000FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF008000000000FF00008000000000FF000000FF |
000080000000FF00FF00FF00FF00808080000000000000000000C0C0C0000000 |
00000000000080808000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008000 |
000000FF000000FF000000FF000080000000FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000C0C0C000FFFFFF00FFFFFF00C0C0C0000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF008000000000FF000000FF000080000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF008080800000000000FFFFFF00FFFF |
FF00FFFFFF00C0C0C0000000000000000000FF00FF00FF00FF00FF00FF008000 |
000000FF000080000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000C0C0C000FFFFFF00FFFFFF00C0C0C000000000000080 |
800000000000FF00FF00FF00FF008000000080000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008080800000000000C0C0 |
C000C0C0C0000000000000FFFF00800000000080800000000000FF00FF008000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00000000000000000000000000FFFFFF0000FFFF0000FF |
FF008000000000808000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
000000FFFF00FFFFFF00FFFFFF0000FFFF0000FFFF0080000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000FFFF00FFFFFF00FFFF |
FF0000FFFF0000FFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000FFFF00FFFFFF00FFFFFF0000FFFF00} |
ParentShowHint = False |
ShowHint = True |
end |
object btnUpSelection: TSpeedButton |
Left = 226 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acUpSelection |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000000000000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000BFBF0000BFBF0000BFBF000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000BFBF0000BFBF |
0000BFBF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000BFBF0000BFBF0000BFBF000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000000000000000000000000000000000BFBF0000BFBF |
0000BFBF000000000000000000000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
0000BFBF0000BFBF0000BFBF0000BFBF0000BFBF0000BFBF0000BFBF00000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000BFBF0000BFBF0000BFBF |
0000BFBF0000BFBF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000BFBF0000BFBF0000BFBF000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000BFBF |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF0000000000FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object btnDownSelection: TSpeedButton |
Left = 250 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acDownSelection |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000000000BFBF000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000BFBF0000BFBF |
0000BFBF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000BFBF0000BFBF0000BFBF0000BFBF0000BFBF000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF0000000000BFBF0000BFBF0000BFBF0000BFBF |
0000BFBF0000BFBF0000BFBF000000000000FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000000000 |
00000000000000000000BFBF0000BFBF0000BFBF000000000000000000000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000BFBF0000BFBF |
0000BFBF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000BFBF0000BFBF0000BFBF000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000BFBF0000BFBF |
0000BFBF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF000000000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
end |
object chbTransparent: TCheckBox |
Left = 224 |
Top = 328 |
Width = 97 |
Height = 17 |
Caption = 'Transparent' |
Checked = True |
State = cbChecked |
TabOrder = 2 |
end |
object EWidthOfImages: TEdit |
Left = 240 |
Top = 362 |
Width = 49 |
Height = 21 |
Enabled = False |
TabOrder = 4 |
end |
object EHeightOfImages: TEdit |
Left = 240 |
Top = 386 |
Width = 49 |
Height = 21 |
Enabled = False |
TabOrder = 5 |
end |
object chbForceSize: TCheckBox |
Left = 224 |
Top = 344 |
Width = 73 |
Height = 17 |
Caption = 'Force size' |
TabOrder = 3 |
OnClick = chbForceSizeClick |
end |
object panBColor: TPanel |
Left = 98 |
Top = 332 |
Width = 33 |
Height = 20 |
BevelOuter = bvLowered |
BorderStyle = bsSingle |
Caption = 'B' |
Color = clWhite |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clRed |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
TabOrder = 8 |
OnClick = pnlFGClick |
end |
end |
end |
object Panel2: TPanel |
Left = 363 |
Top = 0 |
Width = 200 |
Height = 476 |
Align = alRight |
BevelOuter = bvNone |
TabOrder = 1 |
object grPictureAnimationPreview: TGroupBox |
Left = 0 |
Top = 0 |
Width = 200 |
Height = 241 |
Align = alTop |
Caption = ' Picture animation preview: ' |
TabOrder = 0 |
object DXDraw1: TDXDraw |
Left = 2 |
Top = 43 |
Width = 196 |
Height = 196 |
AutoInitialize = True |
AutoSize = True |
Color = clBtnFace |
Display.FixedBitCount = True |
Display.FixedRatio = True |
Display.FixedSize = False |
Options = [doAllowReboot, doWaitVBlank, doCenter, doHardware, doSelectDriver] |
SurfaceHeight = 196 |
SurfaceWidth = 196 |
Align = alClient |
TabOrder = 1 |
Traces = <> |
OnMouseMove = DXDraw1MouseMove |
end |
object Panel6: TPanel |
Left = 2 |
Top = 15 |
Width = 196 |
Height = 28 |
Align = alTop |
BevelOuter = bvLowered |
TabOrder = 0 |
object btnStop: TSpeedButton |
Left = 26 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acAnimateStop |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
BF000000BF000000BF000000BF000000BF000000BF000000BF000000BF000000 |
BF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000BF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000BF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000BF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000BF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF000000BF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000BF00FF00 |
FF00FF00FF00FF00FF00FF00FF000000BF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000BF00FF00FF00FF00FF000000BF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000BF00FF00FF000000BF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF000000FF00FFFFFF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF00FFFFFF000000FF000000FF000000FF000000BF00FF00FF000000BF000000 |
FF000000FF000000FF00FFFFFF000000FF000000FF00FFFFFF000000FF000000 |
FF00FFFFFF000000FF00FFFFFF000000FF00FFFFFF000000FF000000FF000000 |
FF000000BF00FF00FF000000BF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF000000FF00FFFFFF000000FF000000FF00FFFFFF000000FF00FFFFFF000000 |
FF00FFFFFF00FFFFFF00FFFFFF000000FF000000BF00FF00FF000000BF000000 |
FF00FFFFFF000000FF000000FF000000FF000000FF00FFFFFF000000FF000000 |
FF00FFFFFF000000FF00FFFFFF000000FF00FFFFFF000000FF00FFFFFF000000 |
FF000000BF00FF00FF000000BF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF00FFFFFF00FFFFFF00FFFFFF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF00FFFFFF00FFFFFF00FFFFFF000000FF000000BF00FF00FF000000BF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000BF00FF00FF000000BF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000BF00FF00FF00FF00FF000000 |
BF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
BF00FF00FF00FF00FF00FF00FF00FF00FF000000BF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000BF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF000000BF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000BF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000BF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000BF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF000000BF000000BF000000BF000000BF000000 |
BF000000BF000000BF000000BF000000BF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object btnPlay: TSpeedButton |
Left = 2 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acAnimateOn |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF000000 |
0000C0C0C000C0C0C000FF000000FF000000FF000000FF000000C0C0C000C0C0 |
C00000000000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00000000000000000000000000C0C0C000C0C0C000FF000000FF00 |
0000FF000000FF000000C0C0C000C0C0C000000000000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF000000 |
0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0 |
C00000000000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00808080000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000000000000080808000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF0000000000C0C0 |
C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000000 |
0000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008080 |
8000000000000000000080808000C0C0C000C0C0C000C0C0C0000000FF000000 |
FF000000FF00C0C0C00080808000000000000000000080808000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF0000000000C0C0C000C0C0 |
C000FF000000FF0000000000FF000000FF000000FF00C0C0C00000000000FFFF |
FF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
00000000000000000000C0C0C000C0C0C000FF000000FF0000000000FF000000 |
FF000000FF00C0C0C000000000000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF0000000000C0C0C000C0C0 |
C000FF000000FF000000FF000000FF000000C0C0C000C0C0C00000000000FFFF |
FF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008080 |
8000000000000000000080808000C0C0C000FF000000FF000000FF000000FF00 |
0000C0C0C000C0C0C00080808000000000000000000080808000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF0000000000C0C0 |
C000FF000000FF000000FF000000FF000000C0C0C000C0C0C000C0C0C0000000 |
0000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00000000000000000000000000C0C0C000C0C0C000C0C0C000C0C0C000C0C0 |
C000C0C0C000C0C0C000C0C0C000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF00000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0080808000000000000000000000000000C0C0C000C0C0C000C0C0C000C0C0 |
C000C0C0C000C0C0C000C0C0C00080808000000000000000000080808000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF000000 |
0000C0C0C000C0C0C000C0C0C000C0C0C0000000FF000000FF000000FF00C0C0 |
C00000000000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00000000000000000000000000C0C0C000C0C0C000FF000000FF00 |
00000000FF000000FF000000FF00C0C0C000000000000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF000000 |
0000C0C0C000C0C0C000FF000000FF0000000000FF000000FF000000FF00C0C0 |
C00000000000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00000000000000000000000000C0C0C000C0C0C000FF000000FF00 |
0000FF000000FF000000C0C0C000C0C0C000000000000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object LAnimationSpeed: TLabel |
Left = 56 |
Top = 2 |
Width = 87 |
Height = 13 |
Caption = 'Animation Speed :' |
FocusControl = pbAnimationSpeed |
end |
object pbAnimationSpeed: TProgressBar |
Left = 56 |
Top = 16 |
Width = 137 |
Height = 9 |
Min = 0 |
Max = 200 |
Smooth = True |
TabOrder = 0 |
OnMouseMove = pbAnimationSpeedMouseMove |
end |
end |
end |
object Panel13: TPanel |
Left = 0 |
Top = 241 |
Width = 200 |
Height = 28 |
Align = alTop |
BevelOuter = bvLowered |
TabOrder = 1 |
object Label3: TLabel |
Left = 8 |
Top = 6 |
Width = 59 |
Height = 13 |
Caption = 'From image:' |
FocusControl = EFromImage |
end |
object LToImage: TLabel |
Left = 110 |
Top = 6 |
Width = 47 |
Height = 13 |
Caption = 'To image:' |
FocusControl = EToImage |
end |
object EFromImage: TEdit |
Left = 72 |
Top = 3 |
Width = 30 |
Height = 21 |
TabOrder = 0 |
end |
object EToImage: TEdit |
Left = 160 |
Top = 3 |
Width = 30 |
Height = 21 |
TabOrder = 1 |
end |
end |
end |
end |
end |
object tsFontGen: TTabSheet |
Caption = 'Font-Gen' |
ImageIndex = 1 |
object Panel8: TPanel |
Left = 0 |
Top = 0 |
Width = 225 |
Height = 476 |
Align = alLeft |
BevelOuter = bvNone |
BorderWidth = 3 |
TabOrder = 0 |
object Label16: TLabel |
Left = 3 |
Top = 381 |
Width = 85 |
Height = 13 |
Caption = 'Used characters :' |
end |
object Label11: TLabel |
Left = 3 |
Top = 232 |
Width = 178 |
Height = 13 |
Caption = 'Source for sizes (copy to your code):' |
end |
object gbFontSettings: TGroupBox |
Left = 3 |
Top = 3 |
Width = 219 |
Height = 78 |
Align = alTop |
Caption = '&Font Settings' |
TabOrder = 0 |
object Label1: TLabel |
Left = 12 |
Top = 24 |
Width = 27 |
Height = 13 |
Caption = '&Name' |
end |
object Label4: TLabel |
Left = 12 |
Top = 48 |
Width = 19 |
Height = 13 |
Caption = 'Si&ze' |
end |
object Label10: TLabel |
Left = 95 |
Top = 48 |
Width = 24 |
Height = 13 |
Caption = 'Style' |
end |
object cbFontName: TComboBox |
Left = 52 |
Top = 20 |
Width = 154 |
Height = 19 |
Hint = 'Font Name|Select font name' |
Style = csOwnerDrawFixed |
Ctl3D = False |
DropDownCount = 10 |
ItemHeight = 13 |
ParentCtl3D = False |
TabOrder = 0 |
OnDrawItem = cbFontNameDrawItem |
end |
object FontSize: TEdit |
Left = 52 |
Top = 44 |
Width = 37 |
Height = 21 |
TabOrder = 1 |
Text = '10' |
end |
object Panel20: TPanel |
Left = 135 |
Top = 44 |
Width = 71 |
Height = 24 |
BevelOuter = bvLowered |
TabOrder = 2 |
object btnABold: TSpeedButton |
Left = 1 |
Top = 1 |
Width = 23 |
Height = 22 |
AllowAllUp = True |
GroupIndex = 1 |
Flat = True |
Glyph.Data = { |
36040000424D3604000000000000360000002800000010000000100000000100 |
2000000000000004000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000000000000000000000000000000000000000000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000FF00FF000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000FF00FF000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000FF00FF000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000000000000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000FF00FF000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000FF00FF000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000FF00FF000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000000000000000000000000000000000000000000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
OnClick = btnABoldClick |
end |
object btnAItalic: TSpeedButton |
Left = 24 |
Top = 1 |
Width = 23 |
Height = 22 |
AllowAllUp = True |
GroupIndex = 2 |
Flat = True |
Glyph.Data = { |
36040000424D3604000000000000360000002800000010000000100000000100 |
2000000000000004000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF000000000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000000000000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
OnClick = btnAItalicClick |
end |
object btnAUnderline: TSpeedButton |
Left = 47 |
Top = 1 |
Width = 23 |
Height = 22 |
AllowAllUp = True |
GroupIndex = 3 |
Flat = True |
Glyph.Data = { |
36040000424D3604000000000000360000002800000010000000100000000100 |
2000000000000004000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF000000000000000000000000000000000000000000000000000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00000000000000000000000000000000000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00FF000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00FF000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00FF000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00FF000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00FF000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00FF000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00FF000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000000000000000000000000000FF00FF00000000000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
OnClick = btnAUnderlineClick |
end |
end |
end |
object gbFontEffects: TGroupBox |
Left = 3 |
Top = 81 |
Width = 219 |
Height = 80 |
Align = alTop |
Caption = ' Font Effects: ' |
TabOrder = 1 |
object Label5: TLabel |
Left = 12 |
Top = 44 |
Width = 31 |
Height = 13 |
Caption = '&Offset' |
end |
object Label7: TLabel |
Left = 107 |
Top = 44 |
Width = 37 |
Height = 13 |
Caption = 'O&pacity' |
end |
object eOffset: TEdit |
Left = 52 |
Top = 40 |
Width = 45 |
Height = 22 |
Hint = 'Font Size' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Arial' |
Font.Style = [] |
ParentFont = False |
ParentShowHint = False |
ShowHint = True |
TabOrder = 0 |
Text = '1' |
end |
object eOpacity: TEdit |
Left = 148 |
Top = 40 |
Width = 45 |
Height = 22 |
Hint = 'Font Size' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Arial' |
Font.Style = [] |
ParentFont = False |
ParentShowHint = False |
ShowHint = True |
TabOrder = 1 |
Text = '100' |
end |
object CheckBox1: TCheckBox |
Left = 8 |
Top = 16 |
Width = 113 |
Height = 17 |
Caption = 'Enable font effect' |
TabOrder = 2 |
end |
end |
object gbColorSettings: TGroupBox |
Left = 3 |
Top = 161 |
Width = 219 |
Height = 72 |
Align = alTop |
Caption = ' Color Settings:' |
TabOrder = 2 |
object Label14: TLabel |
Left = 12 |
Top = 48 |
Width = 56 |
Height = 13 |
Caption = '&Background' |
end |
object Label15: TLabel |
Left = 12 |
Top = 24 |
Width = 56 |
Height = 13 |
Caption = '&Foreground' |
end |
object pnlFG: TPanel |
Left = 85 |
Top = 21 |
Width = 33 |
Height = 20 |
BevelOuter = bvLowered |
BorderStyle = bsSingle |
Caption = 'FG' |
Color = clWhite |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clRed |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
TabOrder = 0 |
OnClick = pnlFGClick |
end |
object pnlBG: TPanel |
Left = 85 |
Top = 44 |
Width = 33 |
Height = 20 |
BevelOuter = bvLowered |
BorderStyle = bsSingle |
Caption = 'BG' |
Color = clBlack |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clRed |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
TabOrder = 1 |
OnClick = pnlFGClick |
end |
end |
object btnFontGenerate: TButton |
Left = 3 |
Top = 354 |
Width = 94 |
Height = 25 |
Caption = 'Gen. Font' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Arial' |
Font.Style = [fsBold] |
ParentFont = False |
TabOrder = 3 |
OnClick = btnFontGenerateClick |
end |
object btnAllChars: TButton |
Left = 180 |
Top = 381 |
Width = 41 |
Height = 17 |
Caption = 'All' |
TabOrder = 4 |
OnClick = btnAllCharsClick |
end |
object memAlphabet: TMemo |
Left = 3 |
Top = 397 |
Width = 219 |
Height = 49 |
Font.Charset = EASTEUROPE_CHARSET |
Font.Color = clWindowText |
Font.Height = -13 |
Font.Name = 'Courier' |
Font.Style = [] |
ParentFont = False |
TabOrder = 5 |
end |
object cbAntialias: TCheckBox |
Left = 3 |
Top = 449 |
Width = 97 |
Height = 17 |
Caption = 'Antialias text' |
Checked = True |
State = cbChecked |
TabOrder = 6 |
end |
object cbDrawGrid: TCheckBox |
Left = 89 |
Top = 449 |
Width = 81 |
Height = 17 |
Caption = 'Draw grid' |
Checked = True |
State = cbChecked |
TabOrder = 7 |
Visible = False |
end |
object Sources: TMemo |
Left = 3 |
Top = 248 |
Width = 219 |
Height = 100 |
TabOrder = 8 |
end |
end |
object FontPageControl: TPageControl |
Left = 225 |
Top = 0 |
Width = 338 |
Height = 476 |
ActivePage = tsPreviewFont |
Align = alClient |
HotTrack = True |
Style = tsButtons |
TabOrder = 1 |
object tsFont: TTabSheet |
Caption = 'Font' |
ImageIndex = 1 |
object ScrollBox2: TScrollBox |
Left = 0 |
Top = 0 |
Width = 330 |
Height = 445 |
Align = alClient |
BorderStyle = bsNone |
TabOrder = 0 |
object imgFont: TImage |
Left = 0 |
Top = 0 |
Width = 256 |
Height = 256 |
AutoSize = True |
end |
end |
end |
object tsMask: TTabSheet |
Caption = 'Mask' |
ImageIndex = 2 |
object ScrollBox3: TScrollBox |
Left = 0 |
Top = 0 |
Width = 330 |
Height = 445 |
Align = alClient |
BorderStyle = bsNone |
TabOrder = 0 |
object imgMask: TImage |
Left = 0 |
Top = 0 |
Width = 256 |
Height = 256 |
AutoSize = True |
end |
end |
end |
object tsPreviewFont: TTabSheet |
Caption = 'Preview' |
ImageIndex = 2 |
object Splitter1: TSplitter |
Left = 0 |
Top = 117 |
Width = 330 |
Height = 4 |
Cursor = crVSplit |
Align = alTop |
end |
object PreviewMemo: TMemo |
Left = 0 |
Top = 28 |
Width = 330 |
Height = 89 |
Align = alTop |
ScrollBars = ssVertical |
TabOrder = 0 |
OnChange = PreviewMemoChange |
end |
object PreviewDraw: TDXDraw |
Left = 0 |
Top = 121 |
Width = 330 |
Height = 324 |
AutoInitialize = True |
AutoSize = True |
Color = clBtnFace |
Display.FixedBitCount = False |
Display.FixedRatio = True |
Display.FixedSize = True |
Options = [doAllowReboot, doWaitVBlank, doCenter, doHardware, doSelectDriver] |
SurfaceHeight = 324 |
SurfaceWidth = 330 |
Align = alClient |
TabOrder = 1 |
Traces = <> |
end |
object Panel9: TPanel |
Left = 0 |
Top = 0 |
Width = 330 |
Height = 28 |
Align = alTop |
BevelOuter = bvLowered |
TabOrder = 2 |
object btnFontAnimationStop: TSpeedButton |
Left = 26 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acAnimeFontOff |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
BF000000BF000000BF000000BF000000BF000000BF000000BF000000BF000000 |
BF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF000000BF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000BF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000BF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000BF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF000000BF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000BF00FF00 |
FF00FF00FF00FF00FF00FF00FF000000BF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000BF00FF00FF00FF00FF000000BF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000BF00FF00FF000000BF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF000000FF00FFFFFF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF00FFFFFF000000FF000000FF000000FF000000BF00FF00FF000000BF000000 |
FF000000FF000000FF00FFFFFF000000FF000000FF00FFFFFF000000FF000000 |
FF00FFFFFF000000FF00FFFFFF000000FF00FFFFFF000000FF000000FF000000 |
FF000000BF00FF00FF000000BF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF000000FF00FFFFFF000000FF000000FF00FFFFFF000000FF00FFFFFF000000 |
FF00FFFFFF00FFFFFF00FFFFFF000000FF000000BF00FF00FF000000BF000000 |
FF00FFFFFF000000FF000000FF000000FF000000FF00FFFFFF000000FF000000 |
FF00FFFFFF000000FF00FFFFFF000000FF00FFFFFF000000FF00FFFFFF000000 |
FF000000BF00FF00FF000000BF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF00FFFFFF00FFFFFF00FFFFFF000000FF00FFFFFF00FFFFFF00FFFFFF000000 |
FF00FFFFFF00FFFFFF00FFFFFF000000FF000000BF00FF00FF000000BF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000BF00FF00FF000000BF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000BF00FF00FF00FF00FF000000 |
BF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
BF00FF00FF00FF00FF00FF00FF00FF00FF000000BF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000BF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF000000BF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000BF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000BF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000BF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF000000BF000000BF000000BF000000BF000000 |
BF000000BF000000BF000000BF000000BF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object btnFontAnimationStart: TSpeedButton |
Left = 2 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acAnimeFontOn |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF000000 |
0000C0C0C000C0C0C000FF000000FF000000FF000000FF000000C0C0C000C0C0 |
C00000000000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00000000000000000000000000C0C0C000C0C0C000FF000000FF00 |
0000FF000000FF000000C0C0C000C0C0C000000000000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF000000 |
0000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0 |
C00000000000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00808080000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000000000000080808000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF0000000000C0C0 |
C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C0000000 |
0000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008080 |
8000000000000000000080808000C0C0C000C0C0C000C0C0C0000000FF000000 |
FF000000FF00C0C0C00080808000000000000000000080808000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF0000000000C0C0C000C0C0 |
C000FF000000FF0000000000FF000000FF000000FF00C0C0C00000000000FFFF |
FF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
00000000000000000000C0C0C000C0C0C000FF000000FF0000000000FF000000 |
FF000000FF00C0C0C000000000000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF0000000000C0C0C000C0C0 |
C000FF000000FF000000FF000000FF000000C0C0C000C0C0C00000000000FFFF |
FF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008080 |
8000000000000000000080808000C0C0C000FF000000FF000000FF000000FF00 |
0000C0C0C000C0C0C00080808000000000000000000080808000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF0000000000C0C0 |
C000FF000000FF000000FF000000FF000000C0C0C000C0C0C000C0C0C0000000 |
0000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00000000000000000000000000C0C0C000C0C0C000C0C0C000C0C0C000C0C0 |
C000C0C0C000C0C0C000C0C0C000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF00000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0080808000000000000000000000000000C0C0C000C0C0C000C0C0C000C0C0 |
C000C0C0C000C0C0C000C0C0C00080808000000000000000000080808000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF000000 |
0000C0C0C000C0C0C000C0C0C000C0C0C0000000FF000000FF000000FF00C0C0 |
C00000000000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00000000000000000000000000C0C0C000C0C0C000FF000000FF00 |
00000000FF000000FF000000FF00C0C0C000000000000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF000000 |
0000C0C0C000C0C0C000FF000000FF0000000000FF000000FF000000FF00C0C0 |
C00000000000FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00000000000000000000000000C0C0C000C0C0C000FF000000FF00 |
0000FF000000FF000000C0C0C000C0C0C000000000000000000000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
end |
end |
end |
end |
object tsPreview: TTabSheet |
Caption = 'Preview' |
ImageIndex = 2 |
object GroupBox1: TGroupBox |
Left = 0 |
Top = 0 |
Width = 563 |
Height = 386 |
Align = alClient |
Caption = ' Preview of glued frames: ' |
TabOrder = 0 |
object Panel7: TPanel |
Left = 2 |
Top = 15 |
Width = 559 |
Height = 369 |
Align = alClient |
BevelOuter = bvNone |
BorderWidth = 5 |
Caption = 'Panel7' |
TabOrder = 0 |
object ScrollBox1: TScrollBox |
Left = 5 |
Top = 33 |
Width = 549 |
Height = 331 |
Align = alClient |
TabOrder = 0 |
object Image1: TImage |
Left = 0 |
Top = 0 |
Width = 32 |
Height = 32 |
Cursor = crCross |
AutoSize = True |
PopupMenu = PopupMenu1 |
OnMouseDown = Image1MouseDown |
OnMouseMove = Image1MouseMove |
OnMouseUp = Image1MouseUp |
end |
end |
object Panel12: TPanel |
Left = 5 |
Top = 5 |
Width = 549 |
Height = 28 |
Align = alTop |
BevelOuter = bvLowered |
TabOrder = 1 |
object SpeedButton1: TSpeedButton |
Left = 26 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acSaveImage |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FF00FF008080 |
8000808080008080800080808000808080008080800080808000808080008080 |
800000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000FFFFFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF008080800000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF00FF00 |
FF00FF00FF00FF00FF000000000000000000FF00FF00FF00FF00FF00FF008080 |
800000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
00000000000000000000FFFFFF00FF00FF000000000000000000000000000000 |
00000000000000000000FF00FF008080800000000000FF00FF00FF00FF00FF00 |
FF00FF00FF000000000000000000FFFF0000FF00000000000000FFFFFF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF008080 |
800000000000FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
0000FF00000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF |
FF00FFFFFF00FFFFFF00FFFFFF00FF00FF0000000000FF00FF00FF00FF000000 |
0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF |
FF00FFFF0000FFFF0000FF000000FF000000FF00000000FFFF0000FFFF0000FF |
FF0000FFFF0000BFBF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000FFFF0000FFFFFF00FFFF0000FFFF0000FFFF0000FF00 |
0000FF0000008080800000FFFF0000FFFF0000FFFF0000FFFF0000BFBF000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFF |
0000FFFF0000FFFF0000FFFF000000BF000000BF00008080800000FFFF0000FF |
FF000000BF0000BFBF0000FFFF0000000000FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF0000000000FFFF0000FFFF0000FFFF000000BF000000BF |
000000BF000000BF0000FFFFFF0000FFFF000000BF000000BF0000FFFF0000BF |
BF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF000000 |
0000FFFF0000FFFF000000BF000000BF000000BF000000BF000000BF00000000 |
BF000000BF000000BF0000FFFF0000BFBF0000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF0000000000FFFF0000FFFF000000BF000000BF |
000000BF000000BF00000000BF000000BF0000FFFF0000000000000000000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFF000000BF000000BF000000BF000000BF000000BF00000000 |
000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000FFFFFF00FFFF0000FFFF |
000000BF000000BF000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF0000000000FFFF0000FFFF00000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00000000000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object SpeedButton2: TSpeedButton |
Left = 2 |
Top = 2 |
Width = 24 |
Height = 24 |
Action = acLoadImage |
Flat = True |
Glyph.Data = { |
76060000424D7606000000000000360000002800000014000000140000000100 |
2000000000004006000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00808080000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000000000C0C0C00000FF |
FF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FF |
FF00C0C0C00000FFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFFFF0000000000C0C0C00000FFFF00C0C0C00000FFFF00C0C0 |
C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000000000FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000FFFF000000000000FF |
FF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FF |
FF00C0C0C00000FFFF00C0C0C00000000000FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFFFF0000FFFF000000000000FFFF00C0C0C00000FFFF00C0C0 |
C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF000000 |
0000FF00FF00FF00FF00FF00FF00FF00FF000000000000FFFF00FFFFFF000000 |
0000C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FF |
FF00C0C0C00000FFFF00C0C0C00000FFFF0000000000FF00FF00FF00FF00FF00 |
FF0000000000FFFFFF0000FFFF00FFFFFF000000000000000000000000000000 |
000000000000C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0 |
C00000000000FF00FF00FF00FF00FF00FF000000000000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000000000000000 |
000000000000000000000000000000000000FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF |
FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF000000000000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF |
FF00FFFFFF0000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF0000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 |
00000000000000000000000000000000000000000000FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0000000000000000000000 |
00000000000000000000FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 |
FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00} |
ParentShowHint = False |
ShowHint = True |
end |
object Label2: TLabel |
Left = 426 |
Top = 1 |
Width = 85 |
Height = 26 |
Hint = |
'Must be strike key SHIFT for change color on image canvas to new' + |
' selected transparent color.' |
Caption = 'Transparent color'#13#10'for manual fill:' |
ParentShowHint = False |
ShowHint = True |
Transparent = True |
end |
object btnGetTransparentcolor: TSpeedButton |
Left = 58 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Get transparent color.' |
AllowAllUp = True |
GroupIndex = 2 |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00DDDDDDDDDDDD |
DDDDDDDDDDDDDDDDDDDDDDD00DDDDDDDDDDDDDD0700DDDDDDDDDDDDD0770DDDD |
DDDDDDDD07770DDDDDDDDDDDD07770DDDDDDDDDDDD07770D0DDDD0DDDDD07770 |
0DDDD00DDDDD07000DDDDD00D0DDD00000DDDDD000DD0000000DDDD000DDDDD0 |
000DDD0000DDDDDD000DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnGetTransparentcolorClick |
end |
object btnCrop: TSpeedButton |
Left = 88 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Crop picture.' |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
8000008000000080800080000000800080008080000080808000C0C0C0000000 |
FF00C0C0C00000FFFF00FF000000C0C0C000FFFF0000FFFFFF00DADADADADADA |
DADAADADA0ADADADADADDADAD00ADADADADAADADA00DADADADADDADAD00ADADA |
DADAA00000070000ADADDA0000070000DADAADADA00DAD00ADADDADAD00ADA00 |
DADAADADA00DAD77ADADDADAD0000000000AADADA00000000000DADADADADA00 |
DADAADADADADAD00ADADDADADADADA00DADAADADADADADA0ADAD} |
Visible = False |
end |
object btnFill: TSpeedButton |
Left = 112 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Format.' |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
8000008000000080800080000000800080008080000080808000C0C0C0000000 |
FF00C0C0C00000FFFF00FF000000C0C0C000FFFF0000FFFFFF00DADADA00447A |
DADAADADADA70F44ADADDADADADA0F444ADAADADADADA0F444ADDADADADAD77F |
44DAADAD0DADAD0FF4ADDAD070DADAD0000AAD07770DA5A70B07D0888770D55A |
03B008F88877555DA0B0D08F8087755AD700AD080408555DADADDA40848755DA |
DADAAD4D0470ADADADADDA4AD40ADADADADAAD7447ADADADADAD} |
Visible = False |
end |
object SpeedButton10: TSpeedButton |
Left = 264 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Recolorize' |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777700000007000000000000000700000007077770770770AA0700000007007 |
70770770AA207000000070707777770AA270700000007077077070AA27707000 |
0000707770770722777070000000707777007777777070000000707777777777 |
77707000000070777777777337707000000070777777773BB370700000007077 |
7777773BB3707000000070777777777337707000000070777777777777707000 |
0000700000000000000070000000777777777777777770000000777777777777 |
777770000000} |
Visible = False |
end |
object SpeedButton11: TSpeedButton |
Left = 312 |
Top = 2 |
Width = 24 |
Height = 24 |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
8000008000000080800080000000800080008080000080808000C0C0C0000000 |
FF00C0C0C00000FFFF00FF000000C0C0C000FFFF0000FFFFFF00DADADADADADA |
DADAAD0DADADADADA0AD0000000000000000AD0DADADADADA0ADDA0ADADADADA |
D0DAAD0DADAD0000A0ADDA0ADADA0BB0D0DAAD0DA00D0BB0A0ADDA0A02200BB0 |
D0DAAD0D02200000A0ADDA0A0220DADAD0DAAD0DA00DADADA0AD000000000000 |
0000AD0DADADADADA0ADDA0ADADADADAD0DAAD0DADADADADA0AD} |
Visible = False |
end |
object SpeedButton12: TSpeedButton |
Left = 240 |
Top = 2 |
Width = 24 |
Height = 24 |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
77777000000070000000000000007000000070AAAA0AA0AA077070000000708A |
A2AA0AA077807000000070E2AAAAAA0778E07000000070EE2AA2A2778EE07000 |
000070EEE2AA2E88EEE07000000070EEEE22EEEEEEE07000000070EEEEEEEEEE |
EEE07000000070EEEEEEEEE33EE07000000070EEEEEEEE3BB3E07000000070EE |
EEEEEE3BB3E07000000070EEEEEEEEE33EE07000000070EEEEEEEEEEEEE07000 |
0000700000000000000070000000777777777777777770000000777777777777 |
777770000000} |
Visible = False |
end |
object SpeedButton13: TSpeedButton |
Left = 288 |
Top = 2 |
Width = 24 |
Height = 24 |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777700000007000000000000000700000007077770770770770700000007007 |
7077077077007000000070707777770770707000000070770770707707707000 |
0000707770770700777070000000707777007777777070000000707777777777 |
7770700000007077777777700770700000007077777777077070700000007077 |
7777770770707000000070777777777007707000000070777777777777707000 |
0000700000000000000070000000777777777777777770000000777777777777 |
777770000000} |
Visible = False |
end |
object btnWand: TSpeedButton |
Left = 344 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Magic wand.' |
Flat = True |
Glyph.Data = { |
36030000424D3603000000000000360000002800000010000000100000000100 |
1800000000000003000000000000000000000000000000000000FF00FFFF00FF |
FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00 |
FFFF00FF6666CC5674CAFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF |
00FFFF00FFFF00FFFF00FFFF00FFFF00FF6699CC3366991E2A4BFF00FFFF00FF |
FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF6666 |
CC3366991E2A4BFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF |
00FFFF00FFFF00FFFF00FF6699CC3366991E2A4BFF00FFFF00FFFF00FFFF00FF |
FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF6699CC6666CC1E2A |
4BFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFB0BEE4FF00FFFF |
00FFFF00FF6699CC6699CC1E2A4BFF00FFFF00FFFF00FFFF00FFFF00FFC2CEED |
FF00FFFF00FFFF00FF5674CAFF00FFFF00FF0099FF5674CA1E2A4BFF00FFFF00 |
FFFF00FFFF00FFFF00FFFF00FFFF00FFB0BEE49ADEFBFF00FFFCFDFDFF00FF8C |
D0EE9999CC1E2A4BFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF |
9ADEFB00CCFFCCFFFFD8DEE4CCFFFF00CCFF8CD0EEFF00FFFF00FFFF00FFFF00 |
FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFCCFFFF0066FF66CCFF0066FFCC |
FFFFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF9999CC5674CA |
FFFFFFFF00FF33FFFF0066FF33CCFFE5E6E6FCFDFD5674CA9999CCFF00FFFF00 |
FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFCCFFFF0066FF33CCFF0066FFCC |
FFFFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF |
9ADEFB00CCFFCCFFFFFF00FFCCFFFF00CCFF9ADEFBFF00FFFF00FFFF00FFFF00 |
FFFF00FFFF00FFFF00FFFF00FFFF00FFB0BEE49ADEFBFF00FFFEFEFEFF00FF9A |
DEFBB0BEE4FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFC2CEED |
FF00FFFF00FFFF00FF6699CCFF00FFFF00FFFF00FFC2CEEDFF00FFFF00FFFF00 |
FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFC2CEEDFF00FFFF |
00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF} |
Visible = False |
end |
object btnMask: TSpeedButton |
Left = 368 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Mask.' |
Flat = True |
Glyph.Data = { |
36030000424D3603000000000000360000002800000010000000100000000100 |
1800000000000003000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000007F7F7FC7C7C79A9A9AB2B2B2B8B8B8969696C7 |
C7C7939393C3C3C3A2A2A2A8A8A8C0C0C0939393BBBBBB000000000000C7C7C7 |
A8A8A8CFCFCFBABABAB5B5B5D1D1D1A4A4A4D2D2D2ABABABC8C8C8C3C3C3AEAE |
AED5D5D59393930000000000009A9A9ACFCFCFB2B2B2C2C2C2C6C6C684848400 |
0000000000B7B7B7B7B7B7BBBBBBCBCBCBAEAEAEC0C0C0000000000000B2B2B2 |
BABABAC2C2C2969696000000000000909090939393000000000000717171BBBB |
BBC3C3C3A8A8A8000000000000B8B8B8B5B5B5C6C6C6000000999999FFFFFFFF |
FFFFFFFFFFFFFFFF999999000000B7B7B7C8C8C8A2A2A2000000000000969696 |
D1D1D1848484000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000B7B7 |
B7ABABABC3C3C3000000000000C7C7C7A4A4A4000000909090FFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFF939393000000D2D2D2939393000000000000939393 |
D2D2D2000000939393FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9090900000 |
00A4A4A4C7C7C7000000000000C3C3C3ABABABB7B7B7000000FFFFFFFFFFFFFF |
FFFFFFFFFFFFFFFFFFFFFF000000848484D1D1D1969696000000000000A2A2A2 |
C8C8C8B7B7B7000000999999FFFFFFFFFFFFFFFFFFFFFFFF999999000000C6C6 |
C6B5B5B5B8B8B8000000000000A8A8A8C3C3C3BBBBBB71717100000000000093 |
9393909090000000000000969696C2C2C2BABABAB2B2B2000000000000C0C0C0 |
AEAEAECBCBCBBBBBBBB7B7B7B7B7B7000000000000848484C6C6C6C2C2C2B2B2 |
B2CFCFCF9A9A9A000000000000939393D5D5D5AEAEAEC3C3C3C8C8C8ABABABD2 |
D2D2A4A4A4D1D1D1B5B5B5BABABACFCFCFA8A8A8C7C7C7000000000000BBBBBB |
939393C0C0C0A8A8A8A2A2A2C3C3C3939393C7C7C7969696B8B8B8B2B2B29A9A |
9AC7C7C77F7F7F00000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000} |
Visible = False |
end |
object panTColor: TPanel |
Left = 512 |
Top = 4 |
Width = 33 |
Height = 20 |
BevelOuter = bvLowered |
BorderStyle = bsSingle |
Caption = 'T' |
Color = clWhite |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clRed |
Font.Height = -11 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
TabOrder = 0 |
OnClick = pnlFGClick |
end |
end |
end |
end |
object GroupBox4: TGroupBox |
Left = 0 |
Top = 386 |
Width = 563 |
Height = 90 |
Align = alBottom |
Caption = ' Image effects: ' |
TabOrder = 1 |
object Panel10: TPanel |
Left = 2 |
Top = 15 |
Width = 265 |
Height = 73 |
Align = alLeft |
BevelOuter = bvNone |
TabOrder = 0 |
object LDuration: TLabel |
Left = 4 |
Top = 1 |
Width = 45 |
Height = 13 |
Caption = 'Duration:' |
FocusControl = pbDuration |
end |
object Label6: TLabel |
Left = 4 |
Top = 27 |
Width = 66 |
Height = 13 |
Caption = 'Image effect:' |
FocusControl = cbEffectsList |
end |
object pbDuration: TProgressBar |
Left = 4 |
Top = 15 |
Width = 256 |
Height = 9 |
Min = 0 |
Max = 100 |
Smooth = True |
TabOrder = 0 |
OnMouseDown = pbDurationMouseDown |
OnMouseMove = pbDurationMouseMove |
OnMouseUp = pbDurationMouseUp |
end |
object cbEffectsList: TComboBox |
Left = 4 |
Top = 43 |
Width = 129 |
Height = 21 |
Style = csDropDownList |
ItemHeight = 13 |
Items.Strings = ( |
'Gaussian Blur' |
'Split Blur' |
'Add Color Noise' |
'Add Mono Noise' |
'Antialias' |
'Contrast' |
'Fisheye' |
'Lightness' |
'Darkness' |
'Saturation' |
'Mosaic' |
'Twist' |
'Split Light' |
'Tile' |
'Spot Light' |
'Trace' |
'Emboss' |
'Solorize' |
'Posterize' |
'Grayscale' |
'Invert' |
'Brightness' |
'Colorize' |
'Resample [Box]' |
'Resample [Triangle]' |
'Resample [Hermite] ' |
'Resample [Bell]' |
'Resample [BSpline]' |
'Resample [Lanczos3]' |
'Resample [Mitchell]') |
TabOrder = 1 |
OnChange = cbEffectsListChange |
end |
object btnApply: TButton |
Left = 138 |
Top = 39 |
Width = 49 |
Height = 25 |
Caption = 'Apply' |
TabOrder = 2 |
OnClick = btnApplyClick |
end |
object chbAutoAply: TCheckBox |
Left = 191 |
Top = 43 |
Width = 70 |
Height = 17 |
Caption = 'Auto apply' |
TabOrder = 3 |
OnClick = chbAutoAplyClick |
end |
end |
object Panel11: TPanel |
Left = 267 |
Top = 15 |
Width = 294 |
Height = 73 |
Align = alClient |
BevelOuter = bvNone |
TabOrder = 1 |
object grSubimages: TGroupBox |
Left = 0 |
Top = 0 |
Width = 143 |
Height = 73 |
Align = alClient |
Caption = ' Subimages:' |
TabOrder = 0 |
object LPatternWidth: TLabel |
Left = 5 |
Top = 22 |
Width = 32 |
Height = 13 |
Caption = 'Width:' |
end |
object LPatternHeight: TLabel |
Left = 71 |
Top = 22 |
Width = 35 |
Height = 13 |
Caption = 'Height:' |
end |
object ePatternWidth: TEdit |
Left = 39 |
Top = 18 |
Width = 30 |
Height = 21 |
TabOrder = 0 |
Text = '4096' |
end |
object ePatternHeight: TEdit |
Left = 108 |
Top = 18 |
Width = 30 |
Height = 21 |
TabOrder = 1 |
Text = '4096' |
end |
object btnResize: TButton |
Left = 15 |
Top = 43 |
Width = 59 |
Height = 25 |
Hint = |
'All subimages will be resized to new size from width and height ' + |
'boxes.' |
Caption = 'Resize' |
ParentShowHint = False |
ShowHint = True |
TabOrder = 2 |
OnClick = btnResizeClick |
end |
object btnReplace: TButton |
Left = 79 |
Top = 43 |
Width = 59 |
Height = 25 |
Hint = |
'All subimages will be replaced under maximum size of texture (20' + |
'48x2048 px).' |
Caption = 'Replace' |
ParentShowHint = False |
ShowHint = True |
TabOrder = 3 |
OnClick = btnReplaceClick |
end |
end |
object GroupBox2: TGroupBox |
Left = 143 |
Top = 0 |
Width = 151 |
Height = 73 |
Align = alRight |
Caption = ' Zoom factor ' |
TabOrder = 1 |
object Label13: TLabel |
Left = 36 |
Top = 48 |
Width = 14 |
Height = 13 |
Caption = '2 x' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlack |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
end |
object Label17: TLabel |
Left = 67 |
Top = 48 |
Width = 14 |
Height = 13 |
Caption = '4 x' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlack |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
end |
object Label18: TLabel |
Left = 98 |
Top = 48 |
Width = 14 |
Height = 13 |
Caption = '6 x' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlack |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
end |
object Label19: TLabel |
Left = 129 |
Top = 48 |
Width = 14 |
Height = 13 |
Caption = '8 x' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlack |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
end |
object Slider: TTrackBar |
Left = 33 |
Top = 16 |
Width = 115 |
Height = 33 |
Max = 4 |
Min = 1 |
Orientation = trHorizontal |
PageSize = 1 |
Frequency = 1 |
Position = 1 |
SelEnd = 0 |
SelStart = 0 |
TabOrder = 0 |
ThumbLength = 20 |
TickMarks = tmBottomRight |
TickStyle = tsAuto |
end |
object chbZoomOut: TCheckBox |
Left = 5 |
Top = 19 |
Width = 31 |
Height = 17 |
Caption = 'On' |
Checked = True |
State = cbChecked |
TabOrder = 1 |
OnClick = chbZoomOutClick |
end |
end |
end |
end |
end |
end |
object OpenDialog1: TOpenDialog |
DefaultExt = '.bmp' |
Filter = |
'All (*.dib;*.jpg;*.jpeg;*.bmp;*.ico)|*.dib;*.jpg;*.jpeg;*.bmp;*.' + |
'ico|Device Independent Bitmap (*.dib)|*.dib|JPEG Image File (*.j' + |
'pg)|*.jpg|JPEG Image File (*.jpeg)|*.jpeg|Bitmaps (*.bmp)|*.bmp|' + |
'Icons (*.ico)|*.ico' |
InitialDir = '.' |
Options = [ofAllowMultiSelect, ofEnableSizing] |
Title = 'Open Image(s) sequence...' |
Left = 56 |
Top = 328 |
end |
object DXTimer1: TDXTimer |
ActiveOnly = True |
Enabled = False |
Interval = 0 |
OnTimer = DXTimer1Timer |
Left = 496 |
Top = 216 |
end |
object SaveDialog1: TSaveDialog |
DefaultExt = '.bmp' |
FileName = 'Glue.bmp' |
Left = 288 |
Top = 352 |
end |
object DXImageList1: TDXImageList |
DXDraw = DXDraw1 |
Items = <> |
Left = 488 |
Top = 304 |
end |
object PopupMenu1: TPopupMenu |
Left = 80 |
Top = 80 |
object LoadImagedirectly1: TMenuItem |
Caption = 'Load Image...' |
OnClick = LoadImagedirectly1Click |
end |
end |
object PreviewTimer: TDXTimer |
ActiveOnly = True |
Enabled = False |
Interval = 0 |
OnTimer = PreviewTimerTimer |
Left = 240 |
Top = 88 |
end |
object FontDXImageList: TDXImageList |
DXDraw = PreviewDraw |
Items = <> |
Left = 272 |
Top = 88 |
end |
object SavePictureDialog: TSavePictureDialog |
DefaultExt = 'bmp' |
Filter = |
'All (*.dib;*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf)|*.dib;*.jpg;*.j' + |
'peg;*.bmp;*.ico;*.emf;*.wmf|Device Independent Bitmap (*.dib)|*.' + |
'dib|JPEG Image File (*.jpg)|*.jpg|JPEG Image File (*.jpeg)|*.jpe' + |
'g|Bitmaps (*.bmp)|*.bmp|Icons (*.ico)|*.ico|Enhanced Metafiles (' + |
'*.emf)|*.emf|Metafiles (*.wmf)|*.wmf' |
Left = 88 |
Top = 344 |
end |
object ColorDialog: TColorDialog |
Ctl3D = True |
Left = 128 |
Top = 80 |
end |
object DXDIB1: TDXDIB |
DIB.Data = { |
280000008000000080000000010018000000000000C000000000000000000000 |
00000000000000000B202F061B2A132A390D24330B22321128380D24340E2535 |
122534122330132330182730162129030F1510191D040E150D1A2215242D1B28 |
3007141C15222A09161E15232914222818282F0E1E250F2029061921000F1A0F |
232E0B1F2A0C202B15253112222E0B1C29071825152837041726021627172B3C |
12283A13293B0E24360D23350B2133172D3F0E24360B1F3010202D1828340D1D |
2A1526331528371227360F23350B213311293B0013251F3749051D2F0A213106 |
1D2D1229390E27370D263A031E32112B3C0B25360F28380A2333122736122736 |
1326350B1E2D10212E00101D0415221223300E1F2C0C1E2917262F1020271121 |
2D081A251929391C314014283A283E50203648263C4E283C4D2135462838482E |
3E4E2838452636422D3D4427373D172930273A41192B361F3540253B47253D49 |
213B49142E3C2D4856132E3C1B3742223E491E3A4517333E223C4A17313F233D |
4E1E3849193448213C50152F40183243172E3E2A415121384819314319324619 |
354D233E581B38531F3241162B3A405564243B4A263D4D294050233A4A243849 |
1B303F2E41503343502C3A462E3B431A262C1E282F111D230A19222939453443 |
4C29384133424B22313A1F2F3612222943525B1E2F3819293510222D0F222F15 |
2B37192F3B1A2D3A3F505D0F202D2738450B1E2D4659681E3243162A3B1A3042 |
21374943596B304658172D3F304658445A6C243A4C2A3E4F40515E2D3D491A2B |
382C3F4C283B4A1A2E3F3F55674A6072294153243C4E2F4759263E502F455722 |
3949182F3F253D4F354E62233E522C46572741522B44543249593247563B505F |
425564182B3A132431192A370A1B281627341D2E3B24354244555E1627301F2F |
3B142532455867203445172D3F1D35491F374B475D6F31475914283932445543 |
566525354532424F38495236484F1A2B342F424A273B46203642394E5D445B6A |
2D46561C3545334D5D1E38482D48561C37451A35432C47552D4755233C4C2741 |
522844552540542E495D2E475B3A5465263D4D2D4454253C4C223A4C2E475B28 |
425A304B6535526D3F505D4154615265723A505C364B5A3D52613E52633E5263 |
394E5D475A694758653B4B574B57612F3A42333F452B384032424E3F505D4757 |
644757643B4B573E4E5A4A5A663E505B5B6D78364A552F424F3147532A3F4E3B |
5261415868364D5D485B6A354857304352344859506475344A5C384E60324A5E |
445C704E667A41596D364E623F5567455B6D32485A4256673646564253604454 |
643B4E5D485A6B3C50613B516353697B3D556940586C364E623D556741576941 |
57693E546651697B455E723E576B486072475F71415868485F6F425766526776 |
576A793F52612E41503245543245544053624457663447564154613447543B4E |
5D30445543596B354D612B4357324A60455D73445C72455C723D5267384E604B |
5F7047596A4154633C4C594656623F4F5C4354614255643C5160435768566D7D |
435B6D3852633B5566304A5B445E6F466071375161445E6E4A6373476070435D |
6E4A65793F5A6F3B566A395266445E6F445B6B344B5B435A6A3B536547607442 |
5C7449647E3C57721728313B4E560C1E29192C390D202D172C3B172C3B213546 |
213645152A391D303F2A3B4845535F213039323F4735444D263646374B5C2F41 |
522D3F503447563144531B2E3D3E51600A1D2C465B6A304455283F4F22384A34 |
4C5E21394D435B6D203747344859273D4F263C4E30455A253D51435B6F324B5F |
2A4157334B5F1C3448253D512E43581D33452036484C6071081B2A4D606D3649 |
583045543D51622A4151283E502B41531D3549243C50253D51395165273C5126 |
3C4E2A40522A4052162E422A42542E46582F4656162D3D1930401C3140314655 |
071A29405362344756233847243948182C3D2C4051243B4B354A592439482D41 |
52283E50334B5F1C344A1B334929435B233D553B556D213951172E443C546820 |
3648142A3C3C50610515254454643040513345563C4D60283C4E3C51662D4559 |
223A502E465C2D455B2F475D1E364C3952662B44583F596A243E4F2842531C37 |
4B2843582441562E4B6041596F556E82000F214B62720F26362A4052263E521A |
324A263F591B36510B1B2249596005141D23343D1C2E392235420E2332324756 |
283C4D0C21301E31403546533B4C590F1F2B23313D1F303D213547283D523044 |
563246582E42543B4F61182C3D3D5162081C2E3C5264283E502D4557213A4E42 |
5B6F2E465C263E541E364A2A42562C4458243D512E465C4A6278475F75395469 |
2C445C334B611F374D30495D21394D1B33473E5466455C6C102534384D5C3A4E |
5F3F5666304658344C5E1A324630485C1B3248233A502940563F576B30455A1B |
304523384D293E53162C3E3C526433495B314556112536162B3A293C4B3F5261 |
061B2A506574293D4E354C5C2F46561830422C44562E46582036482B4355223A |
4E344C62122D42213D55142F492E49633A556F3D5872243F59213B5341597119 |
304631485E3D52670010234353643D4C5F28394C33465B34495F394D66334962 |
334B63223C541A344C2E48601B354D39536B28425A2843581F3A4F2A455A213C |
51233F5726425A334F67455D73546D810014263B51631B2F402036482840542F |
475F2B445E1B344E0C181C45535917252B1B2B3221323B1F313C041724405564 |
1D3142081C2D1A2E3F2C3F4E253847071A272536431D303F1B30453B52683348 |
5E22374C31465B43586D13293B485E7003182D41566B344C602D4559243C5228 |
435828425A2B455D1E385028425A223C542F49613F5971536F87465F79375169 |
26405848627A1F374F243C52354C62253D512B40553B5163021929405969253C |
4C40596930485A2840521A324630485C1D344A273E54253C52384F6542576D20 |
354A23384E455A6F102638354B5D2E42532A3E4F112635162B3A263948394C5B |
000E1D4F6473283F4F4860721B3345173044294256334C60082135223B4F324A |
60142F440D2941132F4724425B1F3C5745627D36536E17324C1A354F41597111 |
29412D445A3D52680112274F607328394E2B3E5334495F2137503D526D2E455F |
29425C223B55314A642E476119324C28415B304A62243E561731492640582B47 |
5F2B466039546E415C7646607850687E001226455B6D182C3D1D3143455A6F30 |
475D1A324A162F49131F21455153222E321422281C2D36182A350E212E455A69 |
293D4E1A31411D34442438491D3142091E2D213443192D3E23384E3A5167384F |
652F465C23384D31465B1C314630455A0E2338354A5F2B42582F465C21395126 |
3E562F48621C354F203B5528435D2E496326415B536E883B59724B668138536D |
25405A29455D1D374F2D485D30485E2C45592F475B344C5E0820324862733048 |
5A2D4758263F532E475B132B413F576D162E44233B51243A53374D66445A732A |
41571E324B384D631C2F44324658384A5B2F41521C2F3E1E31401B2E3D394C5B |
0013224B606F2D44543F576928435738556A28455A223F54274054223B4F1B33 |
49132E43112D4517334B1A385114324B415C7635506A19344E1B36503D556D1B |
334B223A503F566C0011263E516622344B293E5430445D253B542D425D283F59 |
28405C223A562C455F213A54233C562F4862314B6317314928425A28415B2E49 |
631F3C5735526D3D5872425C74526A800012263E546634485945596B22374C2C |
43591129412D46600E1818434D4D1723251524271C2C331829322233403F5463 |
283C4D1C3343162C3E23394B294050172E3E1F36461B314321364C354C62283F |
552C44581D324722374C293E5341566B04192E485D72293E542C43592B415A30 |
4860223A521D365024415C25425D304D681F3C5739567145627D34516C425F7A |
28435E223D572C465E314B63253D5330485E30485C30485C021C2D3A54652E48 |
59395364243D51213A4E1E364C354D631C344A20384E2137502D435C2F455E38 |
4E67344861384D63283B502D41533D4F6027394A1225341528370A1D2C3B4E5D |
0013224960703D55672F485C3B566B39586F17364D24435A1E394E263F53213C |
510823380B263B17334B2C4860203C542E4963334D652F4961223C54273F572C |
445A294157374F63000D2240556A192E442D445A344A632A425A3B536B2D445E |
28415B233C5627405A2C465E2A445C253F57203A52203A522B445E213C56324D |
6823405B415E79415E79435C76566E84001226384E6031455725394B2D425710 |
273D374F6737506A1119183E48480A16181D292D1F2C3423343D1223304C6170 |
1B2F40182E40193143233B4D2B4355071F311A3244263C4E2A3F543A4F64283D |
522E44563044563246582B3F513A4E600D21333B516333485D30455A2B405630 |
475D263D53233D553B5873213F5C2D4B682543603856733D5B78516F8C2F4D68 |
24415C203B553E5870213B53284056324A602840543B5367021B2F2E495D3F58 |
6C375064253E522740541B32483C536921384E1D344A243A5340566F263B5633 |
4863283D5840546D2B3E532C40523D51622A3E4F1D303F293C4B1A2D3C364958 |
061B2A4A61712A42541D384C4663783B5A7114334C15334C254055314A5E1831 |
45112C40213C50173247233E531934491A344C455D732E465C1F374D1A314725 |
3D512A42564D6375041A2C455B6D2D425728405431485E243C5240586E2C465E |
29435B2B455D28425A2742572A425830485E1F374D263E543D5670223D582F49 |
672A46643753713E5B76566F894C647C02192F3A5062394D5F2B3F5123384D2B |
4258223A52375169131B1A4650501D26291F2B2F23303821323B142532445968 |
122637172D3F142C3E21394B253D4F0A223420384A1F37491A30422A40522B41 |
53253B4D1C30423145562D41533C5061061A2C3B4F6125394B2C41562E43582A |
3F55273C52263E5636516C2A4865213F5C36547139577443617E4A6885304E69 |
25425D243F593A546C243E561E364C233B51223A4E41596D0E273B3550642E47 |
5B364F63253E521B3448243B513B52681B32481D344A2A4059354B64263B5627 |
3C57253A553B516A1E334820364830445625394A1C2E3F2F4251223544425564 |
0B202F445B6B284052203B501F3B5327465F36546F082740254055233C501A33 |
47243D51213C50173246213C501D364A273F55314A5E334B5F233B4F122A3E2E |
46583B5163465C6E0B2133364C5E1D35472B43571F384C1A32482843582E495E |
142F441E394E1F3A4F2E495D2A4357243E4F243D512A42583C556F304864233D |
5B37537135516F47627D526B85526A8200152B586E802C4052172B3D293E5322 |
3A4E3A526A334D650B13133E484820292C1B272B2330381B2C35172835445968 |
15293A1C3343172F4121394B1E36480E2638223949193040253C4C384F5F3044 |
5523374827394A3C4F5E1D2F403649580A1C2D43556622344530445632465822 |
374C273C51243C52314C662E4B66324F6A39567145627D324F6A4C6984415E79 |
2A456025405A29435B253F571E364C223A50223A4E3E566A071F3530485E3049 |
5D3F586C253D5111293D1C3448354D611C3349253C52283E57314760273E5829 |
405A243B553D556D263D532840542B4153243B4B172B3C2D41521D303F3E5160 |
0E23324E65751B3345314C6118344C22415A46647F23425B294458365061253F |
502A4455445E6F294354102A3B2E46582A42562B4355364C5E263C4E1A30422F |
46562E4253405767081F2F324B5B263F4F2C44561C3647223B4F233E522A4559 |
2C475B264155162F432F495A2B4355223B4B2840521B3448334D65304963324D |
683F5A7545607B35506B4F68825C748A051D31475D6F2E425414283A30455A27 |
3F533149612741590D14173C45481C272B1D292F24303A1E2E3A1C2D3A4A5F6E |
1D31421A31411A32441F3749183042142D3D1A3141172E3E1C33431A31411D34 |
442C40512237463A4D5C2639483144530F2231415463293B4C374B5C2D415321 |
37492B405521384E38516B2A48611E39543B597246617C47647F3A577238566F |
26415B2440581E38502A455A253D532D465A2A42563D55690A21372A42583D56 |
6A475F732840541C3448172F4331495D2F465C384F65233952364C65283F592F |
466019304A354C66243C54273F55223A4E243A4C172E3E2F43541E3140415463 |
071C2B4A61711830422C445A2541591A38513E5C77304F682D485D253F502942 |
562C46573F596A253F50122A3C233B4D152D3F1C3446293F5133495B2037472C |
43532A3E4F485F6F031C2C3952622C4555213A4A2640512741522B465A2D485C |
284357264155213B4C354F60233C4C1D36462D4656253D4F374F672A435D1E36 |
52415C7746617C4B66803E566E4F677D00152A3D5365213546294050334B5F24 |
3C523D576F112B430F181C434C501D282C1B292F19283120303C142532354A59 |
1E32430D2434182F3F1930401930401B32411429381F3646172E3E344C5E2039 |
492D44542B42523246571C3140374C5B091D2E3347582D4152374B5C20344622 |
384A2E43581C334928425A1F3B5329425C3D59713E5771435E7825405A37526C |
1D36502640582038502E465C253C5230485C30455A40586C132A402D445A3149 |
5D384D6224394E24394E1B3143253B4D31465B364B601C33492F465C2C445C2C |
445C1A334D37506A1C364E223D521C354921394B1930402D41521D303F415463 |
081D2C4259692D45571931472F496118334D36536E24425B203D521732462944 |
591C374B314C60193448142D4120394D1830421B3345243C4E435B6D162E4027 |
3F5133495B3D5365041D2D405969183042132B3D263F53213A4E284155385165 |
1D364A1D364A284052364E60223949233A4A2B42521E36482E455B243C542841 |
5B40597339546E445F792B435B546C82000E233E5466243B4B2C43532A425638 |
50663F597115304A111A1E495458222E3418252D15242D233540122232203544 |
2034450D2434162D3D162D3C2037461C3342112635253A490E2638243C4E172F |
412841511930403249592F4656344958091D2E3145562D415233495B192F411E |
364A2B4357162E443B53691C374C2E465E2A445C425C7449637B2B445E2F4B63 |
1C364E1F3951183046233B511F374B2D45592B41533B51630C2438384F65253A |
4F30455A21364B1A2F4424384A1D31432A3D522A3F5420374D21384E324A621F |
395127405A3B56701F3B5328445C213C51243D511C3446253C4C162B3A3C4F5E |
081D2C4C60712A40521C3448324A602E48601B36512F4D662140572542572F4B |
631732472A455A183347163145294256233C50344C5E2941553B53651B334529 |
415329415331495B001628496272142C3E172F411F384C2B4458243D51314A5E |
253E521F384C20384C2C44561E3446243B4B253C4C142A3C3D546A1E344D2E45 |
5F2D46603F587249627C2F475F4D657B0011263E54662C43532A43532942563C |
576C17334B25405A1B252C49535A2631391A272F202F382638431C2C3C293E4D |
203445182F3F142B3A152C3B2C4150192F3B1629362035441D35473650611E38 |
49233D4E1F37493750601D36463047570A2032394F6122384A2D45591F374B1B |
3248283F551830462F475D2B44583950663B53692B43593E596E2640583C566E |
263E561D354B162E4421394F223A4E2C4458253B4D374D5F071C313E53682C3F |
54384B602C40522236482C3D50273B4D35495B34495E2B42581B32482E465E19 |
334B28415B2B46601C3A5327465D244156243F53233B4D243B4B1C3140425766 |
011423495D6E1C3244223A4E263E543D576F0B264134516C37556E1A39502543 |
5C213D550C284014314628455A1833481732472F485C263E542A43572A435727 |
40541C3549425A6C001628445C6E243C50253D511F374D364E64253D53273F55 |
21394F243D511E364A2D45571C32441B2F412E4253263C4E2B43572A41573850 |
683F5971263F593D5670284058566E84000E234A60721C33433750602D465A1A |
354A0E2A4223415A1F293337434D16252E11202921313D182936172A37354857 |
192E3D1E3544102534142A36324854142A351B2F3A1B313D122B3B1F394A1E38 |
49294354172F4130485A172F41364E60051D2F3E566A122A3E28405429415519 |
31452A425620394D1D354B21394F3E566C364E6430485E2B455D243E56274159 |
29415720384E263E542E465C28415528405421394D40586C091E332F44592338 |
4D2A3D522A3E502E425424384A2D4153334759344A5C253A4F172E4428405626 |
3E542E486028425A213D552D4A5F2A455A263F53243C4E1E3446182C3D415463 |
0316253A4F5E344859243C501C344A3E57712A4560233E593D5B74214057132F |
4719354D0C2840203D52284358183348173247132E432A42582F475D2B435917 |
2F45132B41445D710D253730485A2C42542A4256243C502C445A233B512D455B |
2B43592A4357122A3E32485A2C40521E32442F43541A30421F364C233B533F57 |
6F37516929425C2C445C2B43594B6377001227405668283E5031495B17304418 |
3348132F4728475E21304040515E11222F11222F000F1C102330172A372C3F4C |
1D303D1F35401E323D1C303B182C370D222A1229311E343F21384721394B172F |
41334B5D1B34482B44581F384C2D465A061F333A5266142C402B4357273C511E |
3446243A4C2F475B162F492A476239546E29445E324D67274159344E6628425A |
243C52263E54273F551F374D273F551E364C263E54334C600A2236324A5C3149 |
5B2A4052374D5F1F3547253C4C314858243B4B364C5E1B314320354A29415531 |
495D2F475B273F53183042314759314759293D4F2233462233461E30413C4F5E |
091C2B4156652A3E4F233B4D2C445A3D56701F3A551C3752253F57142F441C37 |
4C213C511B364B0B263A1730441E394D1631451A3549213C511732472F4A5F0E |
28400F29413E566C051B2D3F56663347581C324432485A273F532E465A233B4F |
294155294155172C412B41532B3F511E3243283C4D2F455716304827425C3E59 |
732B445E344E66294159354C624C617600152A3F5469324A5E263E52152E4215 |
3044233E533350651B2D3E445766182B3A1023320215241326351A2D3A304350 |
1D313C162A350E232B20353D21363E1B30380F262E172D38233847283F4F192F |
4130485A223A4E2F485C263E54334B61041C32395167152D412B4357263C4E1E |
3446243849273F53132E48213F5C3A57722A476236516B213C5629435B213B53 |
233B51273F552C445A1C344A213C511C374C2A455A2F485C021A2E3951632941 |
531A324430465813293B2A4151283F4F2A4151374E5E1A304212283A22384A26 |
3C4E2F455732485A1E32433145563243562A3B4E2332451F2E411C2C3D3E4E5E |
0F222F43566324394822384A22394F3A526A2D45612038541F374F1931471D36 |
4A1730441932461C3549263F531D364A0F2A3E142F432D485D203B50435D7510 |
2A4218314B374F670A2032495D6E3246572A3E4F22384A2A40521F374B243C50 |
233B4F263E52162C3E2A4052283C4D1D314225394A243C4E1531491E3B563F5A |
7429445E385068263E542F4459485D72000B20485D721D35491931451E374B10 |
293D2843582A455A1727374C5C6C2232420E1F2C0819261526331A2B3830414E |
21333E192B360317221B2F3A1A2E39253944122631172D391D32412A4151152B |
3D253D4F243C502C4458274054334C60021B2F375064152D41253D512137491C |
3244233A4A223A4E1D385223415E37546F27445F27425C213C56213B532B465B |
1F374D1C344A253D531D354B1F3A4F1C374C2D485D344D61051D314C62742A40 |
52172D3F32485A12283A374D5F263C4E1C34462D4557132B3D152D3F253D4F27 |
3F51223A4C273F511B31432C42542D4153273B4D2031441B2C3F1D2D3E425262 |
081B28415461273C4B2E45551D3549263E562C455F243D57324A602E475B2942 |
561730441C3647253F50284253152F4010293D1B3448253D532B4359374F6714 |
2C44193149374E64041A2C3B4F603046581E34461A30421C3244172F43243C50 |
1E364A253D51172D3F273D4F2137491A3042263A4B223A4C203C542240593A55 |
6F26415B2B435B263E54283D524F647901162B54697E172C411B3347142D411A |
3347254055243F541121314D5E6B2435420718250718250E1F2C11222F263744 |
1E303B2537420E222D1E323D0F232E2B3F4A1428331B2E3B1528372C40511529 |
3B1C324423384D263E52243C502E475B031C3039526619314521394D1D33451B |
31432A4151253E5222405929476235526D26445D17324C28445C213C513B566B |
20384E122A40193147284056203B501C374C2A455A3D556B021A2E4C62742036 |
4812283A293F5112283A2E4456183042223A4C2B4355082032132B3D233B4D2A |
425418304221394B1A32442F45572D435524384A1C30421D2F401F2F3F425262 |
04172444576424394833475821364B152C42203850253D552C445A253E52213A |
4E162F431E3849223C4D284253213B4C152E42213A4E1C344A2C445A2A425A1C |
344C20385041586E081E30354C5C364C5E2137491E34461E36481E364A31495D |
1F374B2840541B3045263C4E1C32441B31432D415328405226425A2847603654 |
6D28445C1C374C2D455B243C50566B80071C313F54692A3F54172C4119314525 |
3E5220384E1A354A11212E4E5E6A21313D0515210717230C1C28091B261F313C |
1D2E3B2839461D2E3B2B3C491728352E3F4C1425321B2E3B0F22312D4152192D |
3F1A304222384A2A4254243C5030485C071F333E566A223A4C273F511D35471B |
33452E475728415519375026445F3C597427455E1A354F2D49612641563C576C |
253D53183046152D432F475D1E394E213C512540553C546A0B23374D62772338 |
4D1F3449263E5220384C253D511830442A4256274054112A3E152E4229425621 |
3A4E122B3F1932461A3445334B5D2E47571E3545172B3C1C31401E31403A4D5A |
0A1D2A5164711B303F22364720354A162D43182F451C33491E364A1D35491F37 |
4918304221394B233B4D2F4858344D5D11293B172F411B3347223A4E30475D1E |
354B273E5440576D051B2D344A5C283D52243C500F273B223A4E162D432C445A |
20384E2A435720384C2941551A32461931432D43552740541A395027465F3C5B |
7228445C1F3A4F31495F29415554697E0012273E5166283D5221364B31465B43 |
5B6F193145213A4E1725314A5B641B29350717230A1A2610202C0A1A2620323D |
2536431F303D1829362738451B2C392637440E1F2C20313E0C1E2F2C3E4F1C30 |
421D3143223648364C5E283D52324A5E051D313B5367253D4F2B435521394B1A |
32442B4454203A4B14324B23415C4260792240591F3B5328445C2B465B3B566B |
243C5220384E162E442941571A354A28435828435839516708203443586D2136 |
4B24394E1E364A233B4F1B3347112A3E243D511C3549233C501B3448344D6115 |
2E421730441C35491630412F495A2A435316303E1229381F3541203340384B58 |
0114215A6D7C25394A1D314322364820354A192E43152D41172F43243C502941 |
531B334521394B253D4F324B5B364F5F1830421C3446142C401F374B263D5329 |
40561D344A3F576B0C2234384E602F475B2840541E364A273F53243C522F475D |
21394F2A4258223A4E2E465A1D35491A32462B41531F384C14334A22445C3E5D |
741E3D54213C5129415730485C566B800011264C5F741A2F44182D42455A6F3E |
53681B33472B43571B273143535A111D270D1C25101F281829320F1F2B283844 |
2A3B48192A371627341B2C391B2B381E2E3B0E1E2B2233400F2132293B4C1F30 |
431C30421D3143415769273D4F33495B051D2F354D5F21394B294153213B4C17 |
31422842521733441A354F2B48633D5B742947601A364E25415928435841596F |
2D465A2740541C344A223A50263E542E465C304A623F576D0C2136485C6E2C41 |
562D425721394D263E52273F55172F452B43591732471D384C1833472540540F |
2A3E1A3647274354142E3F2A4455243D4D142E3C132B3720364120343F384B58 |
00101D546776304253283C4E263A4C263C4E2036481F34490B23371D3549243C |
4E162E401E3747223B4B2D46563049592940502B425213293B243A4C21364B3C |
5166182D42475C71051B2D30465830485C1E364A253D531B33492C445A263E54 |
233B51263E541D354B2D455B1F374B1C34482A40521A334716354C2A4C643A59 |
7026455C1C374C263E542F475B596E830013254054661E32440E223441566B11 |
263B24394E293E531D28303E4B5308151D101D251120291F2E3713232F2D3D49 |
2435421A2B382334411C2D3A1F2F3C1F2F3C12222F1D2D3D182839293B4C2132 |
451F30431A2E404B5F71273D4F3147590B2133334B5D1E3648273F51233D4E19 |
33442B45551934481B374F34526B35536C3D5C7316324A2E495E223A5041596F |
435C70314A5E273F55263E54364E642D455B334D65475F75051A2F44586A2D42 |
57293E531C34481D35492D455B132B412641561732471732462A4559213C5018 |
33470D293A1A34451C36472C4555243E4C16303C152E381C323D182E39344754 |
0E2130495B6C26374A2C40522A3E502F43552A40522B4153162E42223A4E263E |
501B3345223A4C1F3848243D4D2942522037471D344412283A142A3C263B5039 |
4E6314293E3F5469051B2D3A50622E465A2A425621394F20384E2B4359243C52 |
263E54233B51162E442941571E364A1E364A2C42541B344814334A35576F3554 |
6B3E5D741B364B2C445A253D51566B80000E203E52641A2E404357691A2F441A |
2F441D32472F44590A141B3C484E131F251C29311C2B34202F3820303C394956 |
1D2D3D1323332030402030402F3F4C21313E11212E1D2D3D0B1B2C3142551D2F |
402C3E4F162A3B3448592D41522F46560B22323F56662039492E4757213B4B1B |
35452E485925405416324A27455E2F4A6456728A2D475F203B50445C72364F63 |
3E576B2B44582A42582B43592E465C1931473149613D546A091E33415567243A |
4C394F611E364A223A4E374F65142C42203B50213C511530442944581C364726 |
4051102A3B1B334530485A1B32422037461A323E1F363E0F262E1127323C525E |
0317284C607225384D23364B34475C1F35471F35472C42541C3448162E422139 |
4D1B33450E26382A42541730402D4656142B3B2138481E35450C23333147593A |
5062192E433B5065051B2D384E602B43571830441D354B1E364C253D53294157 |
2D455B2D455B1A32482A4258263E521B3347354B5D253E5213324921435B2E4D |
6458778E274257294157385064576C81000F213B4F612A3E502E425420334818 |
2B40364B6021364B010C103540441C282E0D1B2124303A1A29322F3F4C2D3E4B |
1525350818281E2E3E14243425354221313E1323302636461E304127384B2335 |
463547581428393D51622135462B3F500920303F5666263D4D2C4555243D4D1A |
34442B45561E394D213D552D4C63334F674561792944592843583F586C375064 |
3B54682D465A21394F253D533A5268243C522840583A51670D23354054662339 |
4B203648223A4E1C3448324A60193147264156213C51132E422740541F394A21 |
394B1D35472036482F45571C3041243A46182E39223A401A323810272F2E4450 |
0B1F304A5D7234465D2A3F5532475D1C34482A405221394B284054223A4E2C44 |
581C344809213520384A1A3244395262243B4B1B3242283F4F162D3D253B4D36 |
4C5E152A3F3D5267071D2F304658263E52243C50223A501F374D2A4258354D63 |
2C445A2B4359263E542C445A253D511E364A2C4254223B4F2342592A49622E4D |
64405C74304B602E475B3F576B52677C05192B4D61733044562D41531A2D422C |
3F542C41561A2F44081317343F4318242A08161C2E3A4421303941515E283946 |
0A1A2A0C1F2E1B2E3B1629362A3B481B2C391B2B371D2E3B2A3C4D2236482539 |
4A273B4C25394A2D4152182D3C2F44530A1F2E405766294050274050263F4F1D |
36462C46571B364A213E5332516836526A304D62233E532C475C385165395266 |
3B5367284054294056263D53223A50253D53364E663B5268081E30485C6D1A31 |
41243A4C1F374B2C4458223A501D354B2D455B21394F173044263E521F37491C |
3343263D4D1D31422A3C4D1A2D3C2337420D222A1B313722383E152C34344A56 |
061C2E50657B3E516C283D58364C65193147253D4F1B35462B44581D354B243C |
52162F4310293D1F394A152D3F2840521F38481932421A304222384A1B314322 |
384A22374C394E630D2335344A5C1C344830485C142C40273F532D455B3B5369 |
2A42582840562C445828405421394D223A4E263C4E20394D1E3D5234546B3352 |
692D49612843582942563C5468566C7E000D1F4C60723F5365192D3F1A304226 |
3C4E263B501B30450E191D404B4F18242A15222A1928310D1D292C3D4A1D303D |
0013221D303F1326331D303D32435010222D2838440F202D263849374B5D0317 |
28273B4C2438492E4253061B2A3B505F0A1F2E3E5362283C4D1C3343253C4C1C |
35452A425417324618354A35546B304D62213E531D384D284358334C60375064 |
3850641E364A2C4359283F55162E4420384E3B536B41586E081F2F405564233A |
4A1D3444263E50284054243C521A3248273F551B334720384C283E501A314126 |
3B4A2C3F4E1D303F2030411929392739440A1D2413292E1F353B172E363E5362 |
091E33435972455A76394F6B273E58142F442F4A5E122E3F2E495E1E364C263E |
541D354B20384E2841551B3347233B4D233B4D223B4B1C3244273D4F172D3F1E |
34461F344932475C0D23352F4557293E53223A4E1B334720384C3A51672E465C |
263E54263F53233B4F1D35491C344821394B23394B1B33471330453A5970304C |
642540551B344829415532485A556B7D000D1F4E6274415567162A3C293F5128 |
3E502A3F54263B500E191D434E52101C2217242C1827301A2A362A3B48122532 |
0012211D32410B212D172A372B3D480E202B293C440E222D2B3F502E44560013 |
231F3646273C4B2C41500518273B4E5D0A1D2C3A4F5E2136451229381E354517 |
30401E36480D263A1E3B503A5970223F5419364B1A3549233E52314A5E2F485C |
2F475B193145263D53233A50294159253D552A425A465D73092030394F5B2138 |
471B32421830421F374927405419324621394D132B3F2A3F54283C4E15273837 |
4A592E3E4E253444232F41212E3E2F3E4714262D1D31361C32371229313B505F |
00142A516681425776374E6E2E466218344C223F541E3C4F2340551C364E2640 |
58193449102B40142F431730442D4758243E4F1731422A42541D35471B30453A |
4F64162B403F5469021628354C5C182E40354B5D142A3C30485A2E465A284054 |
243C502840541A2F44182E401C32441D33452135470E26381E394E3A566E2441 |
561732471B344830485C2E44564C60720011234C60721F33451A2E40253B4D28 |
3E50162E40162E40030E12434E5219242C132028212F3B2C3E493245520D232F |
051A29182D3C192F3B162C3820343F182B33182B320F242C30445513293B263D |
4D1D3444263B4A1B303F102332384B5A0B1E2D3E5160223746152A391E324318 |
2F3F172D3F092236304D6239586F13304519364B1833472540542C4559263F53 |
233B4F1A3246364D631C33491E364E273F57324A62425A6E041B2A3A505C1B32 |
412A41500E273720384A253E52142D41233B4F13283D2F43552436471121313B |
4B5826364323303E2F394A2C36472C384215252B233639203439182D353A4F5E |
03182E455B773C53733F587A29436115334C2342571A394E29455D26425A314B |
63274159142F441530451D364A3A53671C3647152F40233B4D152D3F20354A3A |
4F64182D423E53680A1E303B4F60182E40283E501B3143253B4D284054294155 |
233B4F294155182E40182E401D3345182E401B2F400B21332E495E3551692742 |
57162E4421394D2F4459314557495D6F071B2D4C607222364823394B2C425425 |
3D4F1830421931430005094C575B2F3A4217242C12202C192B361E313E0D2231 |
0E23321C3342253B471D333F1A2E39172C340A1D240E232B263D4D11293B2B42 |
52294050152A391D32411225323A4D5A0C1F2C415461243746182D3C1B2F401A |
31411A30421B33473350652A495E0F2C41223F54153044274256223B4F233C50 |
21394D193145465D73193046152D45263E563B536B3F576B031A29394F5A243C |
48243B4A203949162E402C45590F283C273F5313283D2E42542335461C2C3C36 |
465324313F1D2836333B4C343D4B252F39101E242134371D32341D323A394E5D |
0317304E6382364C6F344C703E577715324D1332491D3C5126425A233E582440 |
58254159133045163348142F432B465A274054213A4E193145172F431C34481E |
364A152C422C41560A1E304A5E6F1B2F40203445162C3E1F354720384C2A4256 |
233B4F263E521F3547172D3F1B2F401C30411A2E3F1C32442F4A5F2E4A622944 |
59253D531E364A283D522C40524B5F710115273F53652A4052213749253B4D21 |
394B1830421630410A13174A545B1D292F16212919252F2A3A461D2E3B132633 |
142A36293F4B2036421D333E0E242F0B222A0B2028122833253A491A31411B2F |
40192E3D2034451D32411D303F334655091C2B3D52611D324115293A15293A1C |
32442137492D465A2A455919374A132E422F4A5E122D41284253183145264051 |
253D511830443C5468193046344C64284058263E5641596D051C2B445C68182F |
3E223C4A173040183243294256162F43253E520F273B2A4052263A4B2E415035 |
46532838451B2836243042323F4F222F3D0E1F28203239172A311B2D38314152 |
1022394D627E395070364F7147638216334E14334A1B384D29455D244058203C |
54274159132E43193449162F432E475B2E4859162E401E36481830421C344822 |
3A4E1B3248384D62000F214458693145560B1F312A4052152A3F2941551F374B |
243C50243A4C253B4D142A3C142A3C1D33451C324431495D294459294459223A |
50364E621A2F442B4153233749475B6D071B2D4256682A40522B4153172F413A |
5266172F43142D410F151C51575E1E262D1B222B262F3818222C1A26301B2C35 |
273944384C572E424D0B212C07202A0F28320C273118313B0D212C21323F192C |
391C2F3E182A3B2234453246573E5263071B2C3B52621A3141162F3F1A32441F |
384C253D5330485E1E364A162E401C3647304A5B112B3C2F48581B33452B4454 |
21394B2840523F586C132C402C445A1C344A273F573850660720303953611B34 |
441832421E3849142E3F1D364A1D384C153044142D4121394B18304229405017 |
2B3C122637162A3B14273C1C2F44253B4D1D3444182D3C1E2F3C2532423C4658 |
131F374B5A744258744A658027445F102E471C364E1C344A2B465A243F531631 |
46122A40354D631D354B172F4320384A294252243B4B233A4A162D3D273F511A |
324619304642576C031427465869182C3E293C51273C511A31472B4258223A4E |
263B502236482E42541E34461E34461931451B33493A5268122B3F2C45591932 |
462C4456192F41324959233A4A4A61710317294D61732B40552E4358263B5028 |
3F5521384E1D344A10161D4349501D252C1820273039420E1921202D352F3F46 |
2A3B4451646C1B30380E252D0D2630152E3816313B1D36400E21291B2B371122 |
2F2737471D2F402435482D4153384C5E081F2F3C5363213A4A1A33431B344823 |
3C50314B633A52681D3549152B3D1F38481A3343193242263F4F1C35451E3747 |
364F5F2A4254243E4F233C502941571A3248223A52475F750014263F58681E36 |
481F394A233D4E253F50213A4E1C374B1833471D384C152F401D3748172F4127 |
3F51142B3B182E401C3448152C42162F43132D3E152C3C1A2A3A2D3748535A6D |
070F2656667D39516927455E1837500E2D44162E461E354B253E522B47582D45 |
5B1A3248243B51162D431B3046172D3F253C4C283F4E2037462037462840522A |
42541A31473D52670314274254652A3D522A3F54374E64152C422E455B1A3246 |
21364B283C4E314556233A4A20354A162F432C445C2D485D152E42163041233B |
4D1C3446223949283F4F1C33434F6676000E203C50621B3045283D522D425831 |
465C253B541F354E111C244F5A621B262E25303824303A232F3924333C36454E |
2A3A462A3A4600111C132732182B380319252D434F1E323D071A221628330617 |
242434441123342435483044563C5062051C2C374E5E284151203A4A233C502A |
435738526A31495F172F43263E50253D4F223A4C152E3E2C45551F38482E4757 |
294153294153173142233D4E1C3549183145223A50395266041C2E384F5F263C |
4E2F4759233B4D29435430495D1A3347294256233C501E36480C2436162E4024 |
3C4E233A4A182F3F142A3C1E36481E38480E2836102834243542343F4D475162 |
0914284F60752C445C27465D25455C102F46142C442D445A2A43572B45562F47 |
5D1B334920385021394F273E54162E421A3244253E4E203A48203A48263E502D |
45571A31473B506501122541536435485D32475C40576D182F4530475D1A3246 |
263B50273D4F2E42532A4151263B50152E423D556D223D521732461E394D243E |
4F213B4C1F37492A42541E3545536A7A00132541556724384A2F43552C415626 |
3B501E33491D32480B1B2241515818282F13232A23343D21323B2A3B442E3F48 |
25354123333F14263121333E1E2F3C263946495A671728350A1C272436411223 |
3026394807182B2236482E425433495B081F2F334C5C2A4454233D4D2740542C |
455939536B213C51152E42385062253D4F2B4355152D3F314A5A1E37473A5363 |
294153364E602943542D4758243D51253E52364E643C54680A20323C53632036 |
48263C4E304658223A4C243C50223B4F2740541B3448294153031B2D20384A18 |
3042273E4E132A3A142B3B1A31411B35431E38442039431A2E39283341485263 |
071325475A6F2540551D3D541C3E55214158264156223A4E2C4559213B4C1E36 |
4C11293F1D354D233B53263C551D344A11293B1D3646243D4D183141233B4D1E |
36481A31473E5368000F224456673043583D5267364D6322394F2F465C223A4E |
33485D2036482A3E4F2F4557284054132C403F59711F3951163146385367213A |
4E2741521C34462C4456283F4F4D647404182A485C6E2E425434485A31465B2C |
41562A3F552B405603161E30434B0C1F2713262E22343F20323D2D3F4A3F515C |
1C2D3A18293611222F31424F2131413A4A5A1726361425320C1E29233540172A |
372E41501A2B3E31455730445633495B0F2636395262304A5A233D4D1E394D26 |
41553B556D253F571A3248354E621932461C36471B35462A44551933442B4556 |
2E46582941531B3345294153223A4E21394D2940563951650F23353145561C30 |
422F45571D33451F37492A42561B3347132B3F183044243C4E172F4121394B1E |
36481C3343142B3B1A2E3F1D34431B3541243F4927404A182D35293541505B69 |
0E1C2E485B701A354A1233471E41552A4B5F2C475C223B4F354E62334D5E3048 |
5E20384E284058284058243C542E465C10293D1832431E3747193242223A4C1D |
3547172E4441566B0012244557682D405542576C2D445A243C542A4258223A4E |
354A5F1D334532485A2E445621394D152E423C566E213D55132E433550641C37 |
4B1B34481E3648253D4F293F51475D6F04182944586925394B25394B2E425431 |
45572F4459273C5104192141565E172C3420343F142833293D482E404B445661 |
10212E1425322D3E4B2A3A4A1E2E3E5060701D2C3C0B1B2B1C2D3A1629360F22 |
312638492B3F513B4F612B4153394F61051E2E3B5464354F5F2B45551C374B21 |
3C503751692A445C162E44385066122B3F1F384C1B34482E48591C36472C4657 |
324A5C243C4E1B33452C4456284054374F6322394F3C51660112254557681C2D |
402D415324384A2F455720354A21394D172F43223A4E263E501E364821394B21 |
394B182F3F1F36461C31402C4352253F4B233E4828414B20353D2E3C484C5765 |
111F314A5F7413304513364A2D526824475B18344C273F552F485C2F495A3048 |
5E233B532B425C29405A1A314B223C54162E441C3549102A3B1E374721394B2B |
4357162D4340556A05192B42566733465B3E566A30465F213951263E54162F43 |
2B405523394B40566829415318304418334839536B27435B18324A2C475C1631 |
461B364A1C3448324A5C1E34464F657705192A485C6D2B3F51213547263A4C26 |
3A4C293E5323384D071B264559642C404B152835182B38213441283B48233643 |
192C3B011423293C4B20324327394A384A5B2131420F2231314451182B381326 |
351428392E425435485D1B30453046580018283A5363344E5E324C5C203B4F24 |
3F53324C642A445C1530453F5A6F153045233E521E374B354E62253F502D4758 |
233D4E1A34452A425620384C2A4256475F73263D5341566B07182B4252632938 |
4B3445582A3B4E2B3F51263B501C314621394D2B4357294153132B3D253B4D1F |
3547193040233A4A263A4B2D425121394529444E314A541D313C2835434B5868 |
000F224F647921405712374D22465E21435A18334D1B334B38516520384A253D |
533048603A536D374F6B203854203B551732471D384C0C26371630411A32462E |
465A1B30463F54690A1E3040546536495E3D5569334962223A52263E54112A3E |
273C51283E503C52642A42541E364A213C5137516929455D1C3850335065142F |
44203B4F20384C3C54682036484F6577011526475B6C324657293D4E293D4F22 |
36482D4153304456081A2542545F20313E2637441E2F3C2C3F4C1B2E3B182B38 |
1B2E3D1E33422034450F23342337482E42530F23340B1F30273A49102534192D |
3E0C203234475C394E631C31462E465A0921333E57672D47572E4859223D512B |
465B344E662D475F213B533B566B1D384D102B402C45592F485C2C4657173142 |
1D37480D2738344C600D25392941553F576B2B4258556A7F101F32425062303F |
5229384B3B4C5F192A3D1D3045192E43182D422A425621394B122A3C23394B25 |
3B4D1229391B324220324333475820374616303C243C48263946354250485466 |
122036485F752A4962294C661C415B143751233E592C465E3F576B0C2436172F |
453A526A405874344F6A213C5726415C14304819364B0F2A3E061F33132B3F22 |
3A4E1E33493F54690B1F314155662F44593E566A2F475F284058284056152D43 |
284054293F512E44562E46582B4359284358334E6828435D1D39513D59711B36 |
4B152D432C44582D45592F45573E54660013243C506124384920344525394B18 |
2C3E1C30421D31430E1E2B4959662535420E1E2B2737442536430A1D2C112433 |
091D2E1A3141263D4D061D2D3A5363051E2E142E3F1831412C4150021726283C |
4D0E243624394E3E53691D3248385064051D2F3F596A304A5B354F6026415529 |
44592A445C344E6619334B2A445C1C344A21394F284155263F53314A5E233C50 |
2A4357233C50263E54152D433B53692B4359364E664F647A0B1A2D3E4C5E2635 |
482C3B4E2E3F52293A4D32455A23384D172C411F34491E34461E3446364C5E06 |
1C2E283F4F172E3E3344572135471D36461C36441F3645283D4C202E40445265 |
0E1E354F647F405E7B2244611035512F516E2E48663D5670273F53162E401B33 |
49374F67374F6B385270284260213D5B213F5816324A1732470F283C0F273B30 |
485C20354A43586D05192B465A6B2E4358455D713048602F49612B455D253D53 |
253D51324A5E2F4759364E60253D532B465B2A455F324D6717334B2C465E1D35 |
4B1E364C263E522A425632485A445A6C0011224155660D2132374B5C283C4E22 |
36482D4355172D3F0E19274E5B6918253323303E3C4C590314211C2C3C102534 |
182C3D263D4D1C3545132D3D253F4F0F2C3B183445213B4C162D3D0E25351E34 |
46152A3F2E43592A4157233A50395165041D313E5869284253354F6026415529 |
445928425A3A536D2A445C2641562C445A172F451F384C233C5020394D223B4F |
2F485C243D5120384E1A32483D556B223A52455D75485F75091A2D3A4A5B3443 |
562D3E512E3F52283C4E2B3E53273A4F1A2F44293E531C324422384A40566812 |
283A1E3545293D4F293C51112439183042243E4E1D36463145562E3C4F445167 |
0C1B35465C782441603A5C7A1B3F5D395877324B6B576E88193145122A3C1830 |
46415A7435506B304C6A274362314E6D26435E28465F0E2A42112C411D364A24 |
3C5032475C455A6F1226383C5264273C51435B711E364E3E5870243E56264156 |
20374D2D4559273F51365061263E5429465B27425C35506A2A445C2843582D45 |
5B162F431F374B28405423394B455B6D000F20495D6E1D31422E425334485A2B |
415323394B273D4F17202E444F5D212C3A303D4B3B4B5801121F142434142938 |
293E4D2B4251142D3D2C4656163040163342183445254152152E3E273E4E263C |
4E21394D31485E1C324B21384E3750640720343F596A203C4D3B576827425626 |
41561E3850354E68253D552A4258253D531831452740541F384C2C4559223B4F |
375267213C511B354D344E66213B533C556F2E4761445A730A1B2E3545563A49 |
5C2B3C4F3142552F43552C3F54293E53283D52273C5122384A2B41532E445616 |
2C3E203445203446192B42182D431D364A28425320384A2B41532736494F5D74 |
0A1B36485E7A2441602B4E6F224566345372344D6D3D536F162E421D35471D35 |
4B47607A37516F314D6C2D496B35547327456225435E28445C173247223B4F22 |
3A4E1D324746596E071B2D465C6E21364B3A5268324A62304A6229435B254055 |
263D5330485C233B4D3E58692A42582643581E3953324D67223C542B4359263D |
53172F43283D52253B4D2E4456465C6E000F20475B6C13293B273D4F23394B3B |
5163152A3F29415508132145505E1924323845532E3E4B091A272134431C2F3E |
324756243B4A1831413B5565193343122C3C183445264051162F3F263C4E263E |
522F465C2D435C263C55263E54455D73092236415B6C1F3B4C4864752F4A5E2A |
455A1B354D314B63284056344C62263F53213A4E2E475B2841552E475B162F43 |
385368213C5118324A4E6781132C46526D882139554057710C1F343244553243 |
5624384A3145573046582B405523384D2A3F5424394E2C4254293F511F35471C |
3244263A4B162A3C1C2E4520354B243C522B465A1A3445253B4D27354B515F76 |
0718334A607C3251701E42602A4D6E405F7E3F56762A3F5B1C3146284052223A |
503B546E395371365274385778304F702342612E4F691F3D561F39512941571B |
33471E31463F5267061A2C3E5466243B51435B712B455D213B533C566E223D52 |
2F475D354D61243C4E4962762E495E274459193750304C64233E53334C60263E |
5220384C2F45572D43552F45573B5163001324354C5C1B31431C32441F35472D |
45571F374B273F530E1C283F4F5B2F3F4C31414E1627340F202D142736213443 |
233847192E3D1E35452940501A3141041D2D1A33431A3343152D3F1E36481B33 |
473E556B253D552B435B2F475F435B710821353E576B1D394A516D7E344F6333 |
4E632741593A526A32495F2D45592941551E364A263E5240586C233C50193246 |
2F4A5F233E5318344C45607A27425D415D7B354F6D3B536F081D32374B5C2F43 |
55293D4F3145572A4052273C51162E4219314521394D2D4355263C4E30465829 |
3F51283C4D2337492B4056132A40213C51344F63152F40263E5038495E415168 |
02132D415773335370224763214361375774253D5B2136511C3146243C4E2139 |
4F27425C3A5675345072405E812E4E712E506E284865112E491430482A425836 |
4D6325384D45586D051B2D465C6E283F55364E64213B53324D67253F57375267 |
2D455B2F485C1F384C4F687C334E632C495E24425B33526930485E2D45592C41 |
56203648283E50455B6D283C4D435768000D1F42586A192F4131495B1C344836 |
4F63223A50324A60192B363446514E616E233643071A270F222F011423283B4A |
2336452A3F4E2F41521D31422034451327382C4051233A4A183042243C4E152C |
42496076273F57263E56334B633850660820363952661935464D697A2C475C31 |
4C61304963374F67354C622F44591B30451830441D3549395165243D5120394D |
2E495E26405828435D314C6734506E3955733551703E597401192D3E5263374B |
5D344A5C2F45572B4153263E521C3448172F43142C402C4254394F61384E602A |
4052304455293D4F293E541D344A2742562E4C5D1C3948233C4C334457425368 |
12233D4F66804F708A2D526C2548622C4A65203854273D562036481F3749223A |
50203B553C58772D4B6E3B5B7F3252752F50711B3B581B3954153149253D5549 |
5E741F32474A5D720C22343B536531485E3A556A1F3852304B65324C64243F54 |
284056253E521C35494D667A314C612C495E2E4C65304F66324A602C44581B31 |
431A30421E34463D5365283C4D4A5E6F00102243596B1C3446263E503F586C35 |
4E62263E54294157061C27394F5A374D581E343F0B212D1124311E313E2B3E4B |
1C2F3E3548571E2E3E12223215253619293A1F2F402537481D3547223C4D1B33 |
4940586E2A425A273E582F475F3F576D052035324D61173344476374223D522A |
455A314A642840583D5267354B5D172D3F21374920384A1F37491B3448193246 |
2C475C2E486035506A24415C3A56743B5776284466425C7A051D313C5363394F |
61344A5C283E50324A5C263E52284054223A4E142C402A4052485E702C405227 |
3B4D364A5B25394B1F344930485E2846591C3A4B2A47561C36462135464D6173 |
02172D455F7744637C20445C1A3E561F3F56263E562A3F5522384A1E3648233B |
531C37523B5678345275345478284A6E204063294867183651213D552941592D |
42582B3E533B4E63011729475F713C5369344F64314A6426415B27435B173247 |
273F551F384C1C35494861752A455A264358314F6823425938516533495B182C |
3E2236482135462337481C3041425667001628415769172F432E465A3A526836 |
4E6418324A1A344C0A202B405661324853192F3A041A26283B481C2F3C203340 |
2A3A4A4757671424341E2E3E182638253345142234314354344B5B2640513048 |
5E304860253A55233952172E443F576B031C30304A5B1B3448496276223A502C |
445A364E6620384E364E621E3348243A4C253B4D293F51223A4C0E263A223B4F |
1E394E3A566E314C67203D584C68862D4968334F6E3E597411293D3B5163344A |
5C2A40521A3246364E621F374B294155233B4F2B4357263E523F5567243A4C27 |
3D4F2F4354293F5124394E2E465A223E4F1431402D4757203949293D4E506476 |
001429455D731F3E5526465D092B421D3C531B3349273F531A30421C34461E36 |
4C162F4935516F435F813553761E3F60294869254360203D5817324C243C542A |
4157293E543A4D62071C3141596D4A63773D556B18324A2F4B6318324A193449 |
253E521B34481C3549445D71243F54223F543251681C394E354D611F3547273B |
4D293D4F2A3E4F263A4B1024354C60710B1F31374D5F31465B364E622C445A1E |
364C19334B18324A10202C4B5B672E404B0B1D280F202D253845192C391C2F3C |
2B3E4B1D303D1629361124312535450E1E2E2A3A4A112433334A590720303249 |
5F152B44283B561C30491E34463D5464071E2E374D5F1B32483F556E22385132 |
495F30485C213B4C31495F263E541D35491D33452C42542A4151192F412B4357 |
2840562E4A6235506B24415C46617C36516C3A5570364F69071C3246596E293E |
53293E53152C42364D6331495F294157263E542C45591C3549324A5C18304227 |
40502B4252223949172D3F2C4254253C4C334A5A2E425325394B1E2F4248596C |
000F24495E731E364C203B500F2C41223F54102B401D364A1C34462941532740 |
5417324729435B3C57712D4A6527445F28456035526D26415B1B344E17304A49 |
6179182E473D546A051D312F485C516A7E3B54682A42582742571C344A1C3549 |
2E475B1932461B34483E576B233C502F4A5E243F5428415530485A2B43551C32 |
442137492F4354293D4E1C2E3F4C60710C2032455B6D1B30453B53671F374D1B |
33491731491C364E07152153616D13232F0D1D29091A27091A27273A47253845 |
293C491124311B2E3B0316232030401E2E3E223242182B3A304854193341263B |
512D415A2235501C3147182C3E3F5463071C2B32485A1E324B4356712C3F5A2F |
455E2C4456264050334E63254055263E541B33451F3345243849253B4D1C3448 |
1B3349233F573C57721A37523F5A7537526D2C455F324A62071C32485B70273C |
5224394F1C33493A51672840561B334921394F263E54233C50294256162E401A |
33431A33431B3444293D4E1E324326384927394A3344572C3D501B2C3F516577 |
0C1F3443586D2941551730440B2339203B50122F4425405520394D1B33452039 |
4D1A33471E394E284358233F5739556D3D5872334E682F48620E2741152E482A |
435D2038503A52680B2339445D714C65793851652841552A4357243D51263F53 |
1E374B1F384C1932463D566A2B44582E475B30495D1F384C354D5F294153273D |
4F1D33451F3344233748283A4B4355660E223455697B31465B385064263D532D |
455B233D5529435B0B19254B59650616220A1A261E303B081A253D505D304350 |
1E313E1225321B2E3D1326351424343F4F5F1727372E41502C4450243E4C253A |
50273B5424375211263C1C30423C51600017263C526432465F3E536F2E435F36 |
4E66304A5B253F502A455A284358243C521F37491F3345263A4B2C42541E364A |
1D354B38546C3B567115324D57728D3F5A75253E58455D75081D334C5F742439 |
4E20354A2B425840576D233B51162E442941572A42582F485C223B4F172F4118 |
3042152E3E2740501D3143182C3E2135472B3F51384C5E2F435513263B475A6F |
03162B44596E2E455B2C445A1E364C2B465B2340552D485D2C4559132C401830 |
461E364C213B5326405828435D415C7638536D28435D1D385217324C0721391D |
374F213B53385066071F354C64783F576B243C50263F531D364A223B4F233C50 |
1E364C2840562A42583C546A2F4A5F314C61314C61223B4F2E4658294153273D |
4F1F35471D3142293D4E2D3F504A5C6D0011235C7082455A6F21394D1B324839 |
51672742572A455A1927333F4D590D1D290A1A2617293412242F1C2F3C192C39 |
1E313E1629362F42511124331F2F3F2333430818281F3241273F4B37515F253A |
503C50692235502E425B20344640576601182740586A3D526D3A506C2C425E31 |
48622B4458233F5019364B294459152D431D3547273B4D2337481A30421D3549 |
243C522A465E27425D213E59526D882B466129425C324A62081D32495C712136 |
4B1E3348354C623F566C223A5021394F2C445A2C445A385165263F5320384C26 |
3E50142C3E30485A1A30423044561D3143304456273B4D283C4E1C2F44485D72 |
000C2150687C182F4531495F1F3A4F2843582D4A5F3350652D485D193147172F |
45243E562741592A455F37526C3B567048637D2C47612A455F243F5916304813 |
2D452D475F324A600F273B4F677B3C54681B3347364E621E374B233C50294256 |
273F5528405641596F3550652A445C314C61243E562843581F384C2840521A30 |
421D3345243849283C4D192B3C4A5C6D000F21596D7F4D62771C34481E354B38 |
5066223D523752671927333A485414222E12222E00121D1D2F3A001320132633 |
1D303D1C2F3C2D404F1225342C3F4E091C2B0D1D2D1B2E3D2339452F4655283D |
5342566F2A3D583D516A192F413C5363081F2F354D5F3A4F6A3B506F2B405F1F |
37531934492745581F3C512A455A1D354B1B33452F43552034451B3143172F43 |
172F452A465E28435E25425D5E7B96415C77304963465E76071C314357692137 |
491E3446354D61344C60233B512D455B21394F263E543951672E475B2A425635 |
4D610C2438243C502B4055374C61253A4F31465B22374C23384D21364C4E6379 |
0012285D748A1D334C2F475F2A445C253F5727435B324E66243E561D374F152F |
472A435D28415B243F5A405B7635526D36536E26435E17324C304B65152F4728 |
425A3E596E4D657B122A3E495F7130455A193145334B5F233B4F1A32482D455B |
253D55223A52435D75334D65233C5624405817324C29435B263F532942562139 |
4B1C32442D415325394B192B3C4254650317294D617344596E253D51283F552B |
4359183348425D721C2A363A485416243014222E10202C233540172A371E313E |
1B2E3B1E313E1A2D3C1629382D404F0F22311E2E3E2C3F4E293F4B1B32412A3F |
552E425B2D405B30445D182E40384F5F092232344D613E54703B5371283F5F25 |
3F5D1D39512B485D2440581D384D2B4359172F412F4557223949354B5D1B3347 |
2C445A233E58405B7626435E34516C425F7A28435D374F67091F31405465293F |
5123394B334B5F2C4458263E5430485E223A502840563951672D455B29415539 |
51650E263A1F374B3C516623384D30455A2C41562B405522374C1D32484A6177 |
071E34556D833850682C445C39536B28425A223E56334F672A445C1C354F0E27 |
412A4560304B662C476244617C3A577236536E27445F2A455F1F3A542A445C16 |
30483752673B54681C34485066782B40552B405530485C2E465A21384E395167 |
223A52213B533D56703D567029445E223D57213C5629445E2742571E374B2E46 |
5A1830422E4456263A4C344657435566001325495D6F3A4F64233B4F243B5128 |
40561D384D344F641D29333F4B5513222B1C2B341C2C381D2F3A1C2F3C142734 |
2336431A2D3A2336450A1D2C263849081A2B1A2C3D2A3D4C2F4551273E4D2E43 |
5931455E2336513B4F68253B4D3D5464082032375064465C783D5474263F6138 |
547229485F26455A1C3850122D42263E54162E402B4153243B4B314759233B4F |
1E364C223D5736516C14304E35526D5A779229445E4A647C0820323D5464344B |
5B2A4052324A5E2B43572B4359263E542941572B43593C546A223A5020384E2F |
475D162E42223A4E3D5569172F432A425621394D22394F1A3147233A504A6177 |
0D233C4860783A526A223C542A435D1C354F29445E3A556F39546E203B561530 |
4B284260344E6C35516F3C587635516F27445F33506B27425C25405A29435B27 |
41592E495E445D7114293E4B5F71263B50283D522C41561E364A263D532F475D |
2C445C223B553D5571405B762E4964334E692845602A45601D374F152E42263E |
521830442B415323394B314557475B6D0014264D617331465B284054253C522F |
475D2D485D25405505111B3F4B550B1A233C4B5412222E283A451223301C2F3C |
223542203340273A491B2E3D1123341D2F40132536354A59253A49283F4E4358 |
6E283C552F425D3B4F68394F612C45550A22342E465C3D55714059792942643B |
577525445D224357233F57213D55263E54263F5332485A2B4252172F412B4458 |
253F572A455F2D4A65233F5D415E795C7994233E59344E66051D2F395060384F |
5F2942522F475B2C44582C445A183046233B51273F553E566C1B33491C344A24 |
3C521830441D3549233B4F1A3246273F53334B5F253C521C33492D445A3A5167 |
021A32475F7738526A3B556D2D46601A334D344F69324D673F5A752B46612C46 |
642842602642602E4A6824405E24405E25425D3C5974243F5919344E1D374F23 |
3E53233E53496276102638495D6F30455A273C51364B6012273C354C62273F55 |
39506A1A334D3F5A7538536E27425D425D78223E5C24415C233D55264156213A |
4E28405432475C283E501B2F41506476081C2E4155671C314631495D2C435928 |
40562B465B213C51030F193E4A5422313A2E3D4602121E21333E1829360E212E |
1F323F1629360A1F2E2B404F192D3E293D4E0F2132283D4C2B404F374E5D485D |
7324385126395421354E2D43553851610C2436374F653B536F3049691E375935 |
516F25445D0C2D4128445C2C48602F475D152E4233495B263C4E263E52152E42 |
2C465E213C56213E5925415F334F6D3D5A75243F5A344E66051D2F4057672E47 |
57314A5A2A42563A53672B43591C344A1833482843582E465C243C522F475D19 |
31471F374B263E521E364A2D45591E364A364E621D344A283F55354D63425A70 |
031B334B637B37516928425A243D571F38522E47612B445E2A45603E5876324C |
6A1D37552B476528446216325026426023405B36536E213C5619344E152F4711 |
2C41223A504A6276051B2D53677921364B34495E273C5131465B273E542D455B |
364D6728415B304B66344F6A213C573A5570213D5B0F2C472A445C274257354D |
6319314531465B2B4055263A4C4155670B1F3150647612273C2B43572B435729 |
42562F4A5F344F64030F19404C56222E382B3A430A1A2629394520313E0C1F2C |
102330162936152A390C21302C40511E3243081A2B1B2F4039505F263D4C3A4F |
65283C5531445F32465F22384A354C5C0E2638324B5F3C526E354C6C27406239 |
55732241580F2E4329485F26425A274257243D5132485A1A3042243C501C344A |
223C542E49632C48662B476539557339557326415C415B730D2539415868263F |
4F374F61263F53354E62273F551D354B233E53344F6430485E172F452E465C15 |
2D43243C5020384C243C502A4256172F432B43571C3349283F55374F6540586E |
021A324C647C334D65253F57203953233C562A435D223B55263E5A37516F324C |
6A253F5D2D4967203C5A0B2745203D58213E59325069233E58243E561B364B17 |
2F451F384C49617503192B40546622374C2A3F54293E533951652C43592E465C |
3E566E1A334D3C5470334E6926415C37526D2D4A650B26412A465E2A455A263E |
5429415730485C152A3F2B3F5145596B000F214155671D324730485C2F475B29 |
42562843583651660D1820414E56121E281E2D36192A333A4B542B3D4800111E |
1B2E3B0F2433243849091D2E2B3F50223647273B4D1F3344243B4A273E4D3E53 |
692D415A283B562F435C293F51364D5D0A23332E475B3F5571374F6D2E45653A |
54721F3B531534493A597028445C375267263F532D435533495B20384C183046 |
324C643C577124405E213F5C3A5674405C7A1F3A55375169041C30435A6A2F47 |
594D65772740542740541E394E1F3A4F153045233E532540551A354A445D7119 |
3246233C50273F532A425631465B273C5131465B21394D253D513A5268465E74 |
041C324B63792F475F2D455D223A52273F572D455D2E455F18304C314965314C |
6727425D2B4661223D58122D4825405B25405B334E6829425C2D475F21394F1C |
33491A3246445C7012283A3B516323384D2B40552A42562F475B294056243C52 |
324A621C364E37506A4059731F3A54415C76243F59122D473D59712B475F334E |
632941572A42562C4458273C5142576C0216283F536521364B20384C2941552D |
465A274257304B6008131B505B63202C3624333C1F2E3734454E32444F0D212C |
2134432A3F4E213546061A2B293D4E2A3E4F182C3E273B4C263D4C3B52613C51 |
6730445D2E415C2F435C405668324959071E2E2F4759445974354A692E436238 |
506C1F3A4F1F3D5028475E3D5971203A52233C502A3F5422384A2B4357071F35 |
28425A325069264260294764334F6D4B6785223D58435C760D25393E5466273F |
51496173324B5F2D465A213C51132E431F3A4F274257284358142F433A536717 |
30441D364A334B5F23384D273C51283D522D425721394D1E364A334B6140586E |
0B23394B63792C445C3B536B273F57253B542B415A40566F1C334D2F47632944 |
5F1E395427425D334E69223D58233E59243F59314A642B455D31496121384E21 |
384E193145455A6F0D233533495B192E4330485C284054243C502E465C2D455B |
223A522038503F59712E4860324B6538546C1B36501E3A522E4A6237536B243E |
56223D52243B51253D512C4156364B600013253D51631A2F440921351A324623 |
3C50223D521D384D00050D46515914212915252C0F1E2721323B21333E071B26 |
1E31402A3F4E182C3D12263724384A2F43551226382B3F503249583E58663E53 |
692E425B2D405B243851394D5F334A5909202F354D5F4055702B415D2E44603B |
526C263F5325405419354D3551691C364E213A4E253A4F162C3E1F374B172F45 |
29435B26445D29456338567334526F5D7997243F5A40597311283E3E53682A42 |
5639516530485E2A42582742571A354A0E293E2E495E3D586C1A354930495D24 |
3E4F1731422840522B4153273B4D273D4F2D43552D45572C44563C5569435C70 |
0E273B4E677B2F465C42596F2B4258293E54283D53394F682D455D324B652740 |
5A213A5429425C3B546E263F591E3751233C562A435D2F475F2D435C1F364C27 |
3C521F3449475C71172C413C5468294155334B5F172F431C35491D364A243D51 |
263E54273F553C546A264156344E663853681E385026425A1D39512F4B63203A |
52203B5020374D1930461E334841566B00112345596B263B501C344829415520 |
394D274257223D520A151D4A555D0E1B2313232A15242D2D3E4722343F122631 |
293C4B1C3140172B3C192D3E1B2F41273B4D1D31432C43532D4453395361475C |
7224385121344F2D42582A3E503A4F5E0F26353D5365384C652338543348643C |
546C2B4556244051244058254159354F671932461C3448314759142C40223A50 |
36506823415A223E5C32506D34526F597794233E59354E6809203640556A3A52 |
6638506431495F2941572843582B465B102B402A455A324D610D283C1A344519 |
33441E38483D5666293F51263A4C263C4E273D4F2137491F374931495D40596D |
082135516A7E344B613F566C30455B364B612F445A2E455B2D455D2F49612E47 |
61324B6527405A2B445E1C354F243D5728415B273E58364C652E445D253A5027 |
3C52203348485B700B2337374F63364E622C445810293D314A5E253E52314A5E |
344C622C445A2E465C2C445A2843583C576C27425727425726425A26445D2F4B |
631B354D1B33492A4157172C4144596E0012243D51631D324723384D2A425613 |
2C401A32481B364B09141C4C575F16232B1929300F1E272637401D2F3A2C404B |
2D404F2A3F4E192D3E091D2E1D3143172B3D071B2D273E4E2F46553B55633B50 |
66253952293C574C61772B3F513B505F1126353F556731455E253853394C6734 |
4A632B43552741522B475F26425A2B455D1C35491A3246273F51253D51142C42 |
203A5223415A2743612F4D6A3A58753F5D7A29445F47607A0F273D3951652E45 |
5B31485E3B53693D556B233E53274257102B402641562D485C1B364A2741520A |
24341C3646324B5B2C43532F4354364A5B3047571A3042172F412D45574A6274 |
041C30536B7F3951653C54682E4359374C62394B62364B61273E542B43592E48 |
6039536B2640582741591B344E263F592F475F2038503B516A374D6633485E29 |
3B521F3045485B70132B3F415A6E324B5F2942561C3549294256274054233C50 |
30495D294256324B5F1F384C3851652E475B2F485C243F542D496127455E2440 |
581E3850193147233A50293E53374C610B1F3145596B293E53283D522B43571F |
384C1B3448263F53141E254E585F1621291E2B3311222B2F414C1E313E394C59 |
273C4B1A2F3E1D31421A2E3F1C30421D3143182C3E253B4D1F38483A53632D42 |
57394D66293D56394E641D3143455A690A1E2F3F556730455B283C55394D6628 |
3F55263E502A4455365368132F472C475C2B44581B33471E3648263E5221394F |
1E38502E4C652E4B6635536E5876913B58732B46613D576F0F263C354D61243C |
50283F5531485E3A52681B33492D485D102B402E495D2E495D1C36472E48590A |
2434334B5D31495B273D4F2A3E502F43553044561A2E401D31432D43554A6072 |
081D32546C803D546A3B5268253A55263B563146613D546E2F475D2641561F3A |
4F2D485D29435B39536B223C541731492C445C152D433C526B3E556B41566C2A |
3F552033484D62770D263A3F5A6E152E422641552E475B162F43314A5E1B3448 |
173044334C602A4357223B4F3952662D465A1D364A2944593B576F0D29412E4B |
602A455A183046253D51263B504C6176001426485E7041566B2E465A273F532C |
4458233C50344D611A1F22474D5219232A18252D0B1B273144511C3140243B4A |
2239482138471C31401E33422B3F501C30411D3345253B4D18304440586C2941 |
552E455B263B512B4055273D4F415868091F3142586A374C612A415731485E28 |
405620394D2A45593B566A1F384C2C4458273C512C4156172C412B42582C445A |
2A455A25445B315067304F685A78912E4C65344F693B566B0E263A4157691D32 |
4731485E31485E233B53273F55233B51132C40253F501B3546132B3D31495B12 |
2A3C34495E33485D2A3F5423384D273A4F2F43551C2D401A2C3D394B5C495A6D |
06192E566B813A50693A506C1D36561B36582842662743621C3B522C4A5D1634 |
47284659264156233E532B4359172F452B42582C4458273F553F576D41596F20 |
384E273F553E576B0924383B596A1D394A3B596A1732461A35491B364A274256 |
2843572A4559364F63284155334B612941571F374D2B43593752661B364A2843 |
57233C502841551931432C4254506678000F214A607223394B172F411E364811 |
2B3C213B4C142E3F15191A43484B1D282C16232B0F202D2035441930402D4656 |
29404F152C3B192E3D1D32412C40511C3041263C4E1E3446172E443D546A2840 |
543D55691E3348354A5F213749364C5E071D2F415769253D51395165314A5E27 |
40541C374C2A455A2E475B1B35461C31461D324730435824394E33485E152D43 |
2C475C1A394E34536A2D4D6457768D2A4960233D553B53690D25373E55652C41 |
562E43583F556E344A632941571C3549122B3F223C4D223B4B1B34443A506211 |
263B30455B2F445A1A2F4524394F2B405525394B1C2D402737483444554F6172 |
11223751637A364B66314967122D4F1B385D3352792543661938512040531533 |
462341542944581E394D334C6010293D2F475B2840542E475B243D513E566C1E |
394E26415636516509273A3E5C6D2F4D5E264455213F521836491A35491E394D |
2843572A4559263F53364F63324A60263E541C344A2A43572B44581D37481E38 |
491D37482A4254223A4C3147593D5365041A2C455B6D1E36481830422A425426 |
4051243E4F152F4013181942494C1C262D18242E0D1E2B182D3C182F3F3C5565 |
1B32410F26351F3443293E4D1C304115293A2A4052253B4D2A4157384F652D45 |
59334B5F273C513E53682D4355304658041A2C3B51631B3347364E622C45591F |
384C1D384D1F3A4F1A3347253E522D42572C4156283B50172C4130455B1E364C |
2A455A26455A27465D33536A5B7A9116354C2741593C546A071F313950603247 |
5C192E433A5069344A632840561B34481B34482943540F28382D46562E445626 |
3B50253A50283C5520374D243B512B40551B2F412034463143541E3041455768 |
06192E596E84273F5728435E1D3A591E3C5F4F6F932F507116354C1D3B4E1E39 |
4D19344830495D1A33473E566A0A2236223A4E1A32461C33491830462C445A31 |
495F1A354A3A55690823373B57683551621C38492F4A5E1F3A4E1C374B213C50 |
253E52253E521A3347324B5F2C445A1F374D1F364C233B4F1E374B2741522A42 |
54294153273D4F1C32442F455742586A000D1F394F6120364810283A152D3F14 |
2C3E142E3F1B35461A1F204C5356151F261928310718251E3342193040425B6B |
162D3C081F2E192E3D1B303F2438491C30412F45571C3244182F45364D633E56 |
6A2E465A1F34492B4055253B4D3F55670D23353E54662840542E465A2F485C22 |
3B4F2641561B364B213A4E223B4F293E532A3F54283B501A2F44283D531F374D |
243F542F4E63203F5634546B56758C0B2A412E4860435B71031B2D415868394E |
63183044394F683349622E465C274054284155294354152E3E213A4A2C415622 |
374C2E425B243A53283F55172F45273F53182E4024384A334758132738445869 |
001426486074324A622A45603855742C4D6E3151744062801130472D4B5E1B36 |
4A233E52243D51253E52364E62122A3E2B435720384C1C3349283F552B435943 |
5B7111293F445F73082337375364264253264253304B5F213C50203B4F274256 |
2D465A2740542841552B445830485E233B512A415720384C253E52233D4E233B |
4D263E50263C4E203648273D4F42586A001224415769263C4E243A4C273F5121 |
394B1A34451A34452129294D5659131F2515242D0F202D253A491F3646344D5D |
0F2636081F2F1E3342091E2D324657182C3D2D4355172D3F152C423B52682C44 |
582E465A283D523F54691A3042374D5F102638384E602B43572C44582F485C28 |
4155213C511B364B1730441831452D425723384D1F3247192E431C314721394F |
203B5026455A27465D31516845647B133249243E56465E74001325465D6D374F |
632840543F556E344C642D455B223B4F2841552D4758253F4F1E38481F374B19 |
3145364A632D435C2C4359162E443850641E3648192F41243B4B112838415868 |
0014264B64782E486038566F43617E1739571C3D5E2E506E15344B2E495E1E39 |
4E1F3A4F2C445A1B33492940561E354B243B511A31471F364C1D344A273E543C |
546A0F273D445D7110293D3D5768213B4C344E5F2D465A1C3549294256213A4E |
30485C233B4F2E465A2C445831485E283F5521384E1D3549162E421A32442E46 |
58233B4D192F41172D3F1C30424F6375001426495D6F1C324422384A243C4E1D |
3547243C4E20384A242C2C454E511A262C0F1E271C2F3C223948273E4E1E3747 |
092030162D3D1A2F3E152A39293D4E1A2E3F1D334521374912293F3F566C2F47 |
5B2840542C415632475C1A3042405668091F312F45571C344831495D2C45592A |
4357122D421F3A4F253E521C35492C44581A2F442B3E5331465B1E354B10283E |
1E394E2D4A5F23425938586F3C5B7216324A2640583E566C001325445A6C2F47 |
5B2A4157374F67324A62273F551932462942562E4859233D4D253F4F1A324625 |
3D51384C652C425B2F465C1B334940586C1E36481A30422239492037473A5161 |
0D2335496173445F7427435B1836512343601A3C5A234360203B55243F541B36 |
4B213C512E465C172F451C3349253C522940562D445A29405621384E1D344A40 |
576D1C344A465F7310293D415B6C294354344E5F2F485C162F43314A5E1A3347 |
243C50162E421D354930485C2E455B2A4157142B41223A4E253D511D35472D45 |
571A3244283E503147592135473E5264000F214B5F711A30422036481F35471A |
3244284052263E50232D2D3C484A1B292F0E1F282033401D34432A4151152D3F |
182F3F182F3F071C2B1F3443293D4E263A4B182E40243A4C1D344A32495F1D35 |
49162E4230455A2C4156253B4D374D5F0A2032374D5F19314531495D314A5E2B |
44581A354A294459213A4E2740543D5569243C502C415723384E20374D1B3349 |
27415935516916354C3F5E7537526C15304A2B445E395169061E32435B6D3951 |
65263D532C445C354D652B465B223D512C475B1D394A223C4C1A344429415526 |
3E523D536C2238512940561B32483C51661D33452C4052293D4E35495A425969 |
0C2333587082354E62203B500C2B42203F5830516B203E592C47613048601C34 |
4C3E566E21394F3D556B243B512B425830475D3950662A415722394F132A402E |
455B1B32483951650C243840586A2D4557354D5F3951651A32462D4559243C50 |
253D511E364A1A324630485C344B612C43591E354B2F475B273F53273F513B51 |
63253B4D3145572A3E50223648435769061A2C566A7C314557394F613D53653B |
51632F475920384A232D2D3B474918262C14252E192C391D32412A4052183042 |
1C33430C2333172C3B1D324133475811253620364831465B193046364D632038 |
4C30485C2E435832475C2D435542586A081E303E54661A324620384C314A5E22 |
3B4F264156284358233C501E374B2941551D354931465C1A2F451F364C1A3248 |
36506829455D18374E38576E29445E203B552039533E566E031B2F3E5668465D |
73223A50243C54344C642D475F2B465B2742561C38491731422640511E364A2B |
4357344A63253B5432495F2B405644596E293C51364A5C182C3D2E405145596A |
0B1F304C6373223A4E2D465A29455D1F3E551A395228465F425B75334B63445C |
7439516939516951697F4F667C2B42582E455B2A415730475D1D344A2C435924 |
3B51334A60465E720C24383D55672B43553C546640586C1E364A1D354930485C |
2C44582D455920384C223A4E334A6021384E273E542B4258243C501E36482A40 |
522036483246581B2F411E3244425668001224526678384C5E2B41531B31431E |
344618304221394B1C282A4854581222280A1D251D303D2035443B5163192F41 |
2D4152203445273A491326353044551C30411D33452E465A263D534960762941 |
55193145253A4F354A5F1026384A60720A2032344A5C31495D273F53223B4F1D |
364A2C475C2C475C243F53253E522D45591931452F445A22374D283F55193147 |
29435B2A465E14334A3F5E75243F59223D572C455F354D65061E323C54663E56 |
6C3F576D1A324A4A647C1E3850233E532C475B122E3F254152294556132C4032 |
4B5F394F682F455E2A3F5532455A384B6024354A3445581C2D4039495A405263 |
0618295064752F4459364E623048602741591F3A54203B55455E784B627C5269 |
833F576F2B435B4058705E768E284058354D651A324A2940562D445A19304643 |
5A703D546A3C54680D25393D5567374F61253D4F3850641830442B4357284054 |
2D455920384C2C4458253D512940561A31472C4359344B612B43571E364A2E46 |
5A19314530455A1F34492E415642556A000E23415469162B401A2F441B304519 |
3145142C401E364A142022414D5116262C0C1F27182B38162A3B354B5D172D3F |
2337482135462E41501E31402F43541D3345192E431D354921384E4A61773149 |
5D132B3F394E6330455A1E34464A6072061C2E354B5D3C5468273F5327405421 |
3A4E203B50274257284357203B4F2942561E364A2B4056283D532C4359263E54 |
27415939556D1D3C532F4E651A354F2C455F233A54445C740C2438354D5F3C54 |
6A3850661E375138516B132D452540552C475C203B4F2945562844552740542A |
42583B516A2F455E2F4158384B6034455A27384D2C3B4E2534473141523C4C5D |
081A2B495D6F32455A364B61213750243C5429425C203953273E58647B953047 |
6139506A1C344C284058576F87455D753A526A18304822394F253C521D344A46 |
5D7340576D374F630A22364961732D45572A4254324A5E1B3347344C6031495D |
2B43571F374B3C54682B43572940561E354B253C522A41572B435721394D2B43 |
57223A4E2C4156293E5330435846596E0114293C516614293E11263B1B334720 |
384C1B33471E364A14212339484B182A310F232E203544203747455B6D2B4153 |
1D31421A2E3F2436471F314225394B192F41182D4221394D142B4151687E1F37 |
4B21394D2B40553B5065192F41455B6D051B2D374D5F445C70253D5128415526 |
3F531B364B2742572B465B213C512C445A294056263B512A3F55233952203850 |
1E385039556D32506923415A233E58233C56283F593C546C0A23373D57684B63 |
79334B6129425C3B546E1B374F28455A314E63213F522C48591B3748223B4F29 |
41572B435B384E673C4E65304156293A4D30415434455825364928394C435467 |
0B1C2F4A5E702E41562F445A1F354E263E56354C66405771263C58425874233C |
56243D571D36501F3852324B65435C76365068173149273F5528405620384E36 |
4E643E556B3F576B11293D425A6C2E465830485A294155263E52233B4F3F576B |
213A4E183145435C70294256253D53223A50253D53273F552E475B2740542A42 |
562A425621394D2B43572C415643586D000F2442576C2D42571B33471931451C |
34481B3448274054202F3135464915272E0A1E291E33421E35453D536522384A |
293D4E1C30412032432B3D4E293D4F1B314322374C374F63193046435A702A42 |
561A32462F445934495E22384A384E60061C2E354B5D3D556920384C213A4E24 |
3D51233E532944592641561E394E273F55253D53192E442B40562238511D354D |
1E38503E5A72314F6837556E1E37512A435D2D445E324A62031C303F596A4E66 |
7C2D485D2D46603C556F19354D274459203D522E4C5F2541523753642F475D27 |
3F552E455F2B415A41566C273A4F293D4F2E4254415265273B4D2A3B4E465A6C |
0216284D6075263B51243B51273D56223A52243B5549607A2C425E1129452D46 |
60233C56223B552C455F1C354F1E3953516B83243E56233E53223A50243C522E |
465C3A5167374F630E263A465E702F475930485A243C50273F531B3347375064 |
1A3347152E423C5569213A4E1D354B21394F2C445A284056294256243D51253D |
51243C50142C40233B4F263B5040556A0014293F576B253D511931451A32462E |
475B314A5E3B546822313333444714262D081C271A2F3E1A31412E44561C3244 |
283C4E2135472436473446572D41531C324421364B344C60263D533B52683850 |
64223A4E2C41563B50652A4052374D5F061C2E33495B2F475B20384C1831451F |
384C2B465B25405526435825405528405621394F192E443B50663D536C364E66 |
334D6539556D3E5C7524425B2B445E27405A2F46603D536C122B3F445E6F4964 |
793B566B37506A3C577117334B3754692E4B60213F522C4A5B2745561934492B |
465B273E58374F67374F632B41532E4456263C4E34485A314759283B50384D62 |
00152A50687C31485E2B435B2B425C233C56172F4B314965243C581B334F2C44 |
60344F6A243F5A2E496427425C102E47405C7426425A2541591A344C1A324826 |
3E54425A70425B6F021A2E5B7385213B4C2A4455253E521932462D465A263F53 |
1A33471B364A2E495D1C374B1833481D384D2C475C243F542641552540542B44 |
58213A4E183145243D512F475B4D6579001024455D712E465A2C4559233C5033 |
4C602942562843571D2C2E37484B1D2F361327321D32411D3444283E502A4052 |
1C304222364821334427394A24384A1A304220354A2A4256283F5531485E425A |
6E1D35492D425731465B2D4355374D5F071D2F384E602A42562840541A334723 |
3C50294459243F542542572B485D2F475D223A50273C523F546A475D76334B63 |
38526A435F7738566F213F5827405A3B546E1429444D637C0922363B54683A55 |
6A2E486026415B39546E1531493350652441562240532B495A2846572A455A24 |
3F542F4660263E562B4458243C4E223A4C253D4F1F3749334B5D193145344C60 |
061E324B63793A526A314B63233C562E496328435E25405B37526D2A425E2843 |
5E304B663C577225425D29476027455E2342592D4C633B576F27435B142F4415 |
2D43354D63364F630A2236526A7C1630412842532B4458142D412740542E475B |
193448223D51274256213C501C374C203B502843582540552742562C475B334C |
60223B4F213A4E284155324A5E526A7E0011254E667A3A53673A5367233C501B |
364A132E420B263A1B2D2E3F50531F3138142833152A39162D3D192F412E4358 |
1B2F41263A4C2032431E304124384A1A3042253A4F30485C172E4440576D2D45 |
592E465A172C4133485D172D3F3B5163071D2F4157692D45592B43571F384C2C |
45591B364B2D485D18354A2643582B435920384E31465C30455B384E67193149 |
36506848647C3B59721F3D56334C662E47611B304C4D627D0C243A3F586C405B |
702D475F29445E425D771F3B53314E633350652442553654651937482A455A39 |
5469243B552E465E2942561D37481D3748253F501933442D4758112A3E385367 |
041F343C596E304C642F4D66223F5A314E69294563223E5C445E7C233D5B2843 |
5E213C57415E7927445F213F5831506915344B15344B1F3B532C48602B465B26 |
41563D556B3B5468132C40455F701731422842532B44581E374B132E422E495D |
1D384C2540542442552442551C394E2643581B384D2B485D1A384B2745582944 |
581A354920394D263F53233C50435C70072034455E721F384C1932461B364A14 |
2F43254054102E4116272A3A4A5015272E0E202B1326331C30411D31423D5163 |
192D3E2335461B2D3E1E3041293D4F162A3C1C31462C445811283E485F753249 |
5F28405424394E22374C152B3D3C526403192B455B6D2D4559253D5120394D30 |
495D0B263B3651661A354A294459294459223A503E556B2F465C3E566E1D374F |
37536B58748C304E6736516B2B445E233C563249634C627B172F453A5367415C |
71354F67334E683A556F16324A29465B243F532945562A46571B37482D485C41 |
596F1129411B334B294458213D4E2C46571C36471731422B4556163041354E62 |
0B263B446078334E683E5C753E5B7634526D1735521F3B5928435E28435E213C |
56243F5927425C314F6827455E27455E38576E213D5519354D3550652D485D16 |
2E442B43593C55690921335771821B3345264051253E52243D511B3448193448 |
2540542843572A455A2742571B364B2A455A112C41324D6214324529475A2742 |
561E394D27405430495D223B4F425B6F0013273B556621394B163041213A4E0A |
23372C475B1833471C2931424F570817200C1B2413232F1525321A2B38435461 |
2232421E3140182B3A2A3D4C25394A213546192D3F162B40233A50425A702D45 |
5B21394F21394D31495D152A3F354A5F082032395163294155273F53263F5326 |
3F531A354A223D52334E62243F53344F632641553954693954692C48602A465E |
37566D55748B345068324E662A445C274159213951637B910D2539445D712C47 |
5C3C566E2B4660415C7629435B3853681831451C3647263E50263E502D45592B |
43592B43591B364B344F641B34482D4557273D4F273E4E2A3E4F172B3C394F61 |
051D314C647C425D7724415C314D6B3C5876223E5C122D4818344C243F542B46 |
5B234055112D4528445C203C54324E662C48602A445C0823383E566C334B611E |
364A243C50526A7E0F2537415A6A253B4D2D4557233B4F2F485C183046253D53 |
2C445A284056294159243C522C445A284056182F45253D53304B5F2843572A42 |
58324A6030475D3F566C2840544D6579001325344D5D172E3E132C3C18304222 |
3A4E263D53162D432A36404D596315212B13222B15232F14243016263232424E |
293A471D2E3B2134431D303F3044550D21322C405220354A1A31472C445C2E46 |
5C2D455B20384C28405422374C31465B0A22343850621C3448253D51213A4E31 |
4A5E1E394E2944592D465A142D413954681A35492D485D203D5229455D234259 |
3F5E753B5A7129455D28445C274257243F54263E544C647A0D2539425B6F2B43 |
593651662E49633D5872253F57324D622D45592F4759344B5B2B4252223A4E26 |
3F53233B513D586D2E495E1C35491D35492C4353263948273A49192C3B3D5162 |
0A1F34546C822F48622D4863233F5D466280304A6828435D1F3A4F1D384C2641 |
551A354919364B1F3C511A364E28445C1E3850324C641F374D354D6320384C14 |
2C401F34495066780C22343F5868283E502F47591C34482E475B1D354B233E53 |
3850681F374F1C344C263E561E354B31485E273E542940562F485C122D413B53 |
691D354B30465F22394F30455B4A6072000B1D3C53631E3544203746162C3E24 |
394E273C5221354E1E2C3842505C111F2B14222E14222E1A2A361C2C39283946 |
273845233441132635273A492A3F4E1C31402B3F50142A3C1C33492D455D1F37 |
4D21394F2F475B2D4559263B5031465B0B23353C54661A32462C445820384E39 |
5167203B502E495E3C5569314A5E344D612A4559233E53122F442F4B631E3A52 |
435E783D58722A445C233D55465E76253D551830465C748A0E263A415A6E2840 |
562F4A5F324D6738536D213B532B465B2E465A243C4E2D44543D5464324A5E20 |
394D2E465C2D485D294459253E521F374B3D54642639481F323F182B3A435768 |
0A20324F677D304963213C5625425D2E4B663D58732F4A64264156243F532843 |
581F3A4F1F3C511E3B5018344C29455D1B354D2E4860253D532A4258273E5426 |
3D532A3F5453697B0F27393E58682A42542D4758162F432D485C203B5019364B |
365068213B531731492A445C1B3349374F65273F552D455B3E596D2E495D374F |
652A42582A4059132A403A4F65445A6C000719344B5B1027362138471C32442F |
44592C41572B3F5824323E4757631D2B371B2B371525311F313C20313E21323F |
293A4720313E192C3B1F3241273C4B1F3443273B4C061C2E1A31473D556D253D |
531E364C233B4F223A4E253A4F3D5267071F313E5668243C50334B5F21394F32 |
4A601B364B2A455A2C4559223B4F2E475B2D465A2944592B465B2440581C3850 |
445F792B46602B455D2A445C3F576F233B53223A50556D8310283C415A6E2840 |
562A455A334E68304B65203A52294459334B5F183042304757182F3F39516526 |
3F531C344A314C61213C511C344A1D35493D5464283B4A1C2F3C1124333E5362 |
051B2D4A63773D576F1B36502A48610F2D4638536D2440582742572944581C37 |
4C1F3A4F19364B254257143048233F57173149243E5631495F263E5429405613 |
2A401B30454C6476102A3B3953632D47582541521934482B495C274459122F44 |
24405828445C1F3B532B475F254055314C611530452B465B2C475B223D512B43 |
5930485E293F5830475D2B405643596B001325445B6B203746233A4A13293B1C |
3146273C52394D6623333F4A5C6721313D1D2F3A11222F1D303D1E313E192C39 |
3346531E313E2235441A2D3C1E3342152A391C3140182F3F223A4E3C546A263D |
53253C52162E4229415530455A34495E051D313A52662941552E465A253D532A |
42581A354A264156223B4F2B43571B3349183046344E6618324A354F67233D55 |
4059732E4761253F57253F573951692D455D283F55485F7510283C40596D2840 |
562A455A304B6527425C203A522A455A334B5F1D354732495921384829415511 |
2A3E324A60274257213B5311293F1F374B3249592D404F223542172A37415665 |
03192B516A7E39546929455D2541591A364E2B475F223F542A45592A45591732 |
471A354A18354A2C495E1C38501E3A521E3850142E46273F55183046374E641A |
31471C3146374F610A2435314E5D324E5F213D4E223D512644572C495E17364B |
1C3B52203F5624435A26455C2744592643581330452843581F3A4E2B465A132E |
431D354B31476020374D384D63465C6E000B1D3E5565213847233A4A2E445639 |
4E63334A60283E57192B36415560192B361327320B1E2B1C2F3C1F323F1B2E3B |
4154611A2D3A1C2F3E1D303F293E4D172C3B142938263D4D253D5141596F1E35 |
4B1F364C284054445C702E43582D42570A22363850642A4256263F532B43592B |
465B243F542C475C324B5F334B5F2A4258152D43264058213B53253F57354F67 |
39526C364F691E38502A445C435B73273F571E354B556C820E263A3C5569263E |
542E495E2B4660223D57223C54294459233B4F21394B415868233A4A2D45592B |
4458172F45284358233D5519314730485C2E4253263948182B381E313E4B616D |
081F2F536D7E334E6229465B2643583552672A475C2C495E2B465A2B465A2742 |
571B364B18354A213E5328445C26425A102A4219334B3A5268243C5232495F18 |
2F452A3F54455D71051F30355261385465213D4E2641551B394C244156214055 |
29485F15354C25445B24435A21405524435828455A2B485D304B5F304B5F2843 |
58132E43294159253B542B4056556A7F001123546B7B3B5261263D4D263C4E29 |
3E53233952142A4320343F465C67172B360E242F0A202C1B313D1C31401A2F3E |
3C51601126351A2F3E0F2433445A66152B37192F3B1B32411C34484A61772B42 |
5819304631465B3F54692137494056680A22363A52662C45592841552D455B2C |
475C2A445C3651661A33472C45591F374D2A42582C445C2A425A2E455F334A64 |
364D67253C561D344E39506A374F671830482E465E526A800E263A395266243C |
5235506529445E223D57264058284358294155233B4D354C5C263D4D233B4F25 |
3E52263E541B364B1D384D223B4F30485A273B4C182B3A091A271B2F3A415763 |
0920304C6677314C601C374B2543564260732644573351642C475B2742562641 |
561E394E0F2B4315314928445C28445C233D55243E563149612941592C435923 |
3A502E43583A4F64051D2F3D5768334D5E203C4D27425619374A18354A29485F |
2F4E651A395027465D24435A24405829455D2F4C61335065163447264457203B |
50253F5731496129415932495F4C64781026385067771D3444122939172F4125 |
3D51253B54243A531A303B4056610C222D061C27081E2A1B313D1B303F1C3140 |
293E4D2035440F2433172C3B3147531B313D142A36172E3D2C41563E556B2B42 |
5812293F263B5034495E23394B3E5466041C303B5367314A5E2E475B26415627 |
4257244058365368263E541C3549253D531B33492941592C445C3B526C3F5670 |
263D57364D67203751233A543E566E2C445C3D556D4E667C0F263C375064243C |
523B566B2A455F26415B29435B2742572C4458233B4D4158681C3343273F5321 |
3A4E183046163146213C51294256223A4C2338471C2F3C122330223641334955 |
0219284962722E475B1631451634474462751634473351643F5A6E2B465A1934 |
49264156122E462541592B475F26425A28425A2741592B435B364E662B42582B |
4258374C61495E73051B2D3C5466233B4D1E38492C4559254055173149345068 |
28445C24435A2B475F2440582A465E29455D233E53375469203D52163348233D |
551731492C445C2C445C3D546A556D81041A2C415868162D3D2C4353273F5321 |
384E142A43293F58162D35384F5700131E182E390F2531243A460A1F2E1F3443 |
273C4B1C31401B303F182D3C344A56152B37192F3B19303F253A4F42596F273F |
5321394D293E531C31461F35473D5365041C303D55693A5268273F551630482A |
445C1531493451661D354B1730441C344A193147354D65142C444E657F3D546E |
1A314B29405A1F36501C334D2E465E1D354D324A624E667C051C323E576B2941 |
572742572E4963142F4929435B2843582E465A273F513E5565132A3A28405422 |
3B4F162E44183348142C422942561931432B404F182B382638431C2E39425562 |
091E2D49627220394D254054133144274558375364395468344F63466176344F |
6419344918344C29455D27425C26415B1A334D19324C243C542941591D344A3F |
566C273C52485D72061C2E43596B1D32472A425631485E2E465C1F374F274159 |
2B455D233F5738526A253F5717314929435B1931493954691734491532471E38 |
50173149283F591C344C4B6278526A7E000E20364D5D1B3242263D4D243C501B |
32483248611C314C0F262E374E56071E26182E39172D38263C48112635203544 |
314655061B2A1E3342293E4D2A3F4E152B37324854162D3C1F34493B52682139 |
4D243C50293E53283D522A40523046580B2337435B6F253D532840561D374F24 |
405819354D26425A1732471D364A1E364C1D354B385068284058526983374E68 |
1C334D2F46602138521C334D2840581F374F324A624B6379031A304760741D35 |
4B2B465B28435D15304A2741592A455A253D5131495B3B52622A41512F475B27 |
40541D354B112C41162E442C44581E3446314655192C3921333E1F313C435663 |
001423455D6F1F384C2B465A1836492A485B3651652B465A1F3A4F2D485D3D58 |
6D142F441A364E24405825405A26415B1B344E27405A2941592840581D344A39 |
5066263B51455A6F081B30465A6C2C3F542B4055394E642B4258293F58304860 |
3C546C2C465E1F3951223C542139512B435B1D354D243E561F3A4F1734491933 |
4B213B53364D6729415950667F536B7F0012243C5363122939374E5E172F432F |
465C162C45162B46091F25344A50091F250F242C172B362437441A2F3E2D4251 |
2B3F50081C2D192D3E1D324129404F081F2E1D35411027361C3244374C61273C |
5131465B243A4C273D4F273D4F2E44560D25393F576B1D354B2B4359233D552D |
4961213C562B475F213E53213C511A354A26415636506828425A455C76374E68 |
203652293F5B18314B28415B2A435D17304A223C5445607500182E4C65791B33 |
492E495E2D486217324C253F572944591C344830485A253C4C2D4454243C5025 |
3E522F475D25405511293F2B435723394B3B505F1B2E3B1B2D381E303B394C59 |
001423435B6D243D512B465B1C394E1D3A4F304B601732472B465B223D522741 |
59405A72223E56233F573C577129445E1F38522B445E243C54273F57263C5526 |
3C551D32483F546905182D495A6D38495E2B3E53394E64233A5030465F324A62 |
3B526C2D445E1D344E29405A233B532F475F233B532C465E254055203D521832 |
4A28425A374E682941594A60794F677B082032465E70193242253E4E172F431B |
32481B314A23385311252A3C52570E242910262C12272F192D381225342B404F |
20344515293A1E32431F3344435A6A19303F243B4A30475621374930455A293E |
53354A5F253B4D293F51192F413A5062082034374F632941572B465B1F395137 |
536B203E5734536A2541592643581D384D2843582C465E29435B3D546E3B526C |
283E5A2B435F162F492D466027405A16314B1C3850445F7400172D4760742840 |
562E495E3B56701B3650213B532843581931452C4456243B4B395060263E521C |
3549284056233E5310283E2F475B2A40523A4F5E182936182A35233540364956 |
071B2C435B6D2C445A2843581F3C510D2A3F2E495E1833482540552944591D37 |
4F253F572F4B6309253D1B3650213C5627405A324B65253D55213951374D661F |
354E20354B394E6300122747586B38495E2A3D52374C62233A50364C65344C64 |
2F4660213A542B425C2B445E1F374F365068263E563B556D1F3C5128455A1D37 |
4F29435B2D445E253D55445A7350687C0010244D6577112A3A273F51263E521C |
3349283E572035500D20233E535512262B20333A1B2E361C303B0E2130334655 |
263A4B0E2234223648263A4B2F4656061D2D1A3141182F3F243A4C2E43582B41 |
532C42542E44563D5365142A3C415769031B2F3A52662F475D2A455A1A344C32 |
4E66203E572C4B6213324928475C254159233F572A455F3F5A7447607A37506A |
2B435F3B536F203953243F591B3650223D572B475F3E5B7001192F40596D3149 |
5F304B6039546E243F5919334B2C475C1D3549243C4E2B42524057672F475B1B |
3448243C522C475C142D41344C602F45573146551223301B2D382C3D4A3F525F |
071B2C455D6F2B4359314B63213B53122C442F49612B455D1732472944592C46 |
5E29435B0D294129455D102B45314C6638516B3F58722C445C1A324A43597222 |
38512E4359394E63000F2444586A2E41562C415634495F2940563A526A344E66 |
2A435D1F3A542A435D26415B1D374F36526A2640582B475F18354A28455A213D |
5529435B2E455F314961485E77556D81000C20425A6C0C25351C3446364E622A |
41572E465E152C46091D1E3C50511023261F33381B2E361E303B142532415463 |
21324505192B1D31432A3E50243A4C081F2F2138481A31411E3348364B603B51 |
63283E502C4254415769152B3D3F556701192D41596D273F552A455A1E3A5228 |
445C2B49621E3D5414334A22415629455D2A465E415C76506B854C657F38516B |
28405C38506C213C562B4660233E5826445D29485F345166041C323F586C2E46 |
5C334E6329445E2A455F132D45344F641F374B1E36482B42523B5262364E6221 |
3A4E273F5539546910293D30485A334A5A30435215263321333E2738453D505F |
0014254860742840583C566E203953233C56253E58314B631732470B263B2A44 |
5C203A52031F371A364E28435D1F3A5449627C3B546E223A521B334B455B7418 |
2E47283D5341566B001328445A6C253A4F2C44582D445A273F55324C6428445C |
233E5825435C243F5926445D203C5427465D2D49611D395119364B2643582642 |
5A27435B354E68435B73495F78526A7E00172B3B5365243D4D1A3244334B5F2C |
43592239531B324C12242344565716272A14272C162730142631132431405362 |
293A4D1B2C3F1E314625394B23394B0A2032132A3A162D3D1D32473B50654056 |
68293F5123394B3147591B31433B5163041C303D5569273F552A455A25415926 |
415B2C4A631A395023435A1E3F5329485F2A49604C678148637D445C783C5470 |
253D592D45611D3852314C662C4A6325435C2342592B4A5F061E343F586C2B43 |
59344F64213C56243F591731493752671B3347233B4D2940503E55653E566A28 |
4155223A502B465B132C402B4355344B5B2E41501A2B3821313D182936384B5A |
0011234961752E465E3A536D29415D324A6620385428415B1F39512E495E142E |
46152F47112C46132E4819344E17324C435C76354E681B324C2239533B516A17 |
2D4620354B43586D0014293E56681E364A2A43572C445A223D522E4A62203F56 |
203E5722415A27455E27465F2140571F3F562C4B621A39502140552241562C48 |
6026415B3B546E4A627A43597251697D000F233F57692F48583A5264273F532E |
455B132A442B425C0515143C4C4B19282A1021241F2F361A2A361E2F3C455867 |
2C3D501C30421C2F44273A4F253B4D152B3D1E35451F3547253B4D34495E2F45 |
57263C4E213749263C4E263C4E384E60092135324A5E314A5E2A425826405827 |
4159223E561C385028475C24435A2F4E651C3A533F5A743D5873435B77405874 |
27405A314A64213A5427435B27435B2B475F2C4B622D4961061E323E566A2D46 |
5A324D6229435B1A364E1E3A523550651A3347274152172F412E4658364E6230 |
475D30485E3A5268243D5130485A344B5B263B4A1627341B2C3910212E3E5160 |
001325475F733A526A3049633A536D3C5470273F5B243D5719334B284358253F |
57001830122E4618344C29455D2640582E4860405A72294159253D552D435C2B |
415A2B40563C5167000F24374F611B33472A4357334B6126415637536B28475E |
2A496017364D2A486121405722415827445923405519364B2A475C233F57324D |
6726415B3D567048617B4157705A71870014283850622A405229415329415518 |
304629405A4059730F1A183C49470A16181D292D1D2D3423343D1223304E6170 |
1B2F41182E401B3045253A4F2D4355091F311E3244283C4E2A40523A5062283E |
502E44562E4456304658293F51384E600B21333B516331495B2E465A29415530 |
485C263E52253E523D5A6F244058304B6528435E3D5571425A76566E8A344D67 |
2A425A243C5240586E233B51284056324A62273F573B516A051A2F35495B4258 |
6A385064233E522341541634473755681C394E183649213C503D586D263D5333 |
4962283E573E556B273F532840543B51632A3E4F1B2F40293C4B1A2D3C344859 |
041A2C4A5F742A42561F374D48617B3D587217324D17324C253F572F49611630 |
48112B43213B53173247233E531B33491C344A455D732F465C20364F1A304925 |
3B542A40594D627804192E455B6D2D425728405430485E223D523E596E2A475C |
27445929465B28425A2742572A425831495D20384C273F533D576F223D572F4A |
642C47623B536F425B75596E894D637C04192E3A5062394D5F293F5121394D2A |
42581E395335506A131B1A46514F1B27291F2B2F23303821323B142532445968 |
122638172D3F162B4023384D273D4F0C223424384A2337491A30422A40522B41 |
53253B4D1A30422F45572B41533A5062041A2C394F6123394B2C42542E44562A |
4052273D4F273F533853682D4961243F5A39546F3E567448607E4F6783354E68 |
2B435B2840563C5569263F531F364C243B512237524357701327393C50613147 |
59374F61253F501935461F3D5036546716334818354A254257324D62253D5527 |
3D56273B543D52681C33491E364A2E445623394B1A2E3F2D4152203445405465 |
091F31445A6C284054223A50213B532A455F37546F092740253E58213B531832 |
4A223C54213C51173247233C501D364A274054314A5E334A60233A501228412E |
445D394F68445B710D2035384C5E1F34492B435720374D1A32482843582E495E |
142F441E394E21394F30485E2D4257273C51293D4F2D42573E566E304963233E |
5939546F39516D49617D556A8553698202142B5A6D822C4052152B3D273E541F |
3A4F36516B2F4D660913133E48481E2A2C19282B2131381B2B37172835445968 |
15293B1C3244192F4123394B2036481026382438491B2F40253B4D384E602E44 |
5621374923394B384E60192F4132485A061C2E3F55671E34462E445630465822 |
384A273D4F253D51334E63304C64344F6A3B567149617F364E6C506884455E78 |
2E465E2941572B44582740541F364C233A502237523E546D0A2032334A5A3349 |
5B42586A253D4F102A3B1B3448324D61193448223D5125405530485E273F5729 |
4159253B543E556B263D532840542B4153243A4C172B3C2D41521B2F403C5061 |
0E22334E64761B3347334B611A344C25405A47647F24425B29425C344E66233E |
53284358425D7227425710293D2D465A2942562A4357344B61243B51182F452D |
445A2A40593E556B0A1D32364A5C283D522C44581D3549223B4F233E532A455A |
2C475C264156162F432F485C2D425724394E2C40521E3348354D65304963324D |
683F5A75475F7B374F6B5267825D738C091B32495C712E425412283A2E455B24 |
3F542D486223415A0B14173A46481B272B1B292F22313A1D2F3A1C2D3A4C5F6E |
1D31421A30421C32442137491A3042162D3D1C3041192D3E1C32441A30421D33 |
452A4052203648364C5E22384A2D43550B21333D5365253B4D354B5D2B415321 |
37492B415321394D3853682C48601E39543D587348607E4B63813E56723C556F |
2A425A28405620394D2C4559263D532E455B2A3F5A3D536C0C22342D44544056 |
68495F712840521C3446172F4330495D2E475B375064223A50354D632840582F |
475F1A3049364D63253D51284054243A4C243A4C192D3E2F43541C30413F5364 |
071B2C4A61711A2F442C45592941591E3850415C76334E682D475F233D552742 |
572A455A3D586D233E53112A3E223B4F142D411B3448273E5431485E1E354B2A |
4157263C55465D73071A2F3D51632E435821394D273F532740542B465B2D485D |
284358264156213A4E354E62253A4F1F3449314557273C51374F672A435D1C37 |
52415C7748607C4D66803F546F50677D02142B3F5267213547293F51334A6022 |
3D523B56700D2B440D181C414C501C282C1B292F1928311F313C142532374A59 |
1E32430F2334182F3F1930401B2F401D3241142938213546172D3F364C5E2238 |
4A2D43552B41533046581A3042354B5D071D2F3147592B4153354B5D1E344622 |
384A2E44561C34482843581F3B5327425D3D58733E5674455D7B273F5B39526C |
1F374F28405620394D2E475B253C5230475D2E435E40566F132B3F2D45573349 |
5B384E60243A4C243A4C1B3045253A4F31465B344C601C33492F465C2C445A2C |
445A1C344A3951671F374B253D511D354923394B1B2F402D41521B2F403F5364 |
081C2D4259692F44591932463149611A344C38536D26415B223C541731492944 |
591C374C334B611B3349142D4120394D1730441A3347233B51425A70162D4327 |
3E543147603B5268081B3044586A1A2F44132B3F273F53213A4E264156365166 |
1B364B1B364B274054354E6222374C23384D2D415320354A2D455D223B552641 |
5C3E59743B536F465F792C415C556C82000D24405368263A4C2C42542A415736 |
51663D587213314A0F192048545A222E3418252D15242D233540122232223544 |
2034450F2334162D3D162D3C2237461E3342112635253A49102737263C4E192F |
412A4052192F4132485A2F455732485A071D2F2F45572B415333495B192F4120 |
36482D4355172F433954691A364E2A456028435E425A7849617F2B435F314A64 |
1E364E21394F183145233C501F364C2D445A293F58394F680C2438385062253B |
4D3046582137491C304224374C1D30452A3D522A3F5422374D21384E324A6021 |
394F2941573F576D233C502D4559243C50253D4F203446273B4C162A3B3A4E5F |
081C2D4C60712A40521C3448324A602E48601B3650314C66253F57274159314C |
611732472C445A1A3248183145294256233C50334C602840563A52681B324829 |
4056293F5831485E00152A4D6173162B40172F4320384C2B4458223D522F4A5F |
233E531D384D1F384C2B44581E334824394E273B4D14293E3C546C1B344E2A45 |
602B46613F577349627C3045604E657B0011264053682E42542C42542A42563C |
576C17334B23415A1A252D48535B2631391A2630202E3A2638431C2C3C2B3E4D |
2035441A2F3E162B3A172C3B2C4150192F3B1629362036421F3646394F612137 |
49263C4E213749394F611F35473046580A2032394F6122384A2F45572137491D |
33452A40521931452D485D27435B344F6A37526D29415F3E5674263E5A3C556F |
263E561D354B162F43213A4E22394F2C4359233952354C62041D313B55662840 |
52364C5E2C40522435482C3D50293A4D37485D38495E2F42571D32472F475B1B |
34482843582D485D223A502D455B294155273F51273B4D263A4B1E3140445766 |
001324495D6E1C3244223A4E263E543D576F0B264036516B3B556D2038502B43 |
59253D5310293D1831452C45591A33471932462F485C263F532A43572A425827 |
3F551C344C42596F00152A465C6E263C4E253D4F20384C364F63253D53273F55 |
21394F243C521D364A2C45591C3244192F412C4254243C502A425827405A344F |
6A3D5873263E5A3D5670293E59576E84000E234C60721E3244394F612E465A1A |
354A0E2A4223415A1F293337434D18242E11202921313D192936192A37354857 |
1B2E3D203544102534142A36324854142A361B2F3A1B313D162A3B22384A2137 |
492C4254192F4132485A192F41384E60071D2F405668142A3C2A40522B41531B |
31432C425421394D1B364B1D39513A556F324D682E46642B435F243C58274159 |
29415920394D263F532E4859294155283F5521375040576D061F332C46572139 |
4B283E502A3E5030415428374A31405337455B38495E293A4F192E4329415524 |
3F532E495E264358253D5331495F2D4559273F51283C4E2034451A2D3C415463 |
0115263A4E5F32485A243C4E1D344A40586E2C465E253F57435B73273F57172F |
451D354B10293D243D512A43571A3347193246152E422A43572F485C2B435917 |
2F45132B43445C720F243932485A2C42542A4254243C502C4559233B512D455B |
2B43592A4258112A3E30485C2840521C32442D43551830441E364C213B533B56 |
7035506B29415D2A435D2C415C4B62780012274256682A3E5033495B18304418 |
3348132F4728465F25313D43515D14222E14222E000F1C132330192A372C3F4C |
1D303D2134411E313E1C2F3C182B380D212C1428331E344023374823394B192F |
41354B5D1E34462E445622384A304658091F313C5264162C3E2D4355273D4F1E |
3446243A4C2F475B1631462C486039546E29445F344C6A273F5B344C6828425A |
243C54263F532740541F394A2840541F364C273D56344B61092236314B5C3149 |
5B2A4052394D5F2334472B3A4D3746592A394C3A4B5E1F304520354A2941552E |
495D2C475B224053172F452E465C2F475B253D4F2034462034451E31403C4F5E |
071B2C415566283E50233B4D2D445A3F576D213B531E3850273F57162E441E36 |
4C233B511D364A0D263A173142203A4B1832431C3647233C5019324631495F10 |
283E11293F3E576B051B2D3F56662F47591A324430485C273F532D465A223B4F |
284155284155152D41294155273F511A3244263D4D2D455718304629435B3E59 |
7329445E344C6827405A354A654A617702152A415567364A5B283E50162E4215 |
3045213D55314F68202E3A4957631D2B3713232F0515221626331C2D3A324350 |
1D303D1629360E212E2033402135401B2F3A112530172D39233748283E50192F |
4132485A243A4C32485A293F51364C5E071D2F3C5264172D3F2D4355263C4E1E |
344622384A273F531530452440583C57712C476138506C233B5729425C213B53 |
233B512740542C46571C3647243C501F374B2D435C30475D011A2E3852632941 |
531C324432465817283B2E3F522C3D502E3F523B4C5F1C2F4412273C20384C23 |
3C502A45592D485C1931472C445A2C4458243C4E1F33451B2F401A2D3C3C4F5E |
0D213241556624384A22384A223A4E3A52682F475F203A521F374D1931471D35 |
4B172F451932461C35492640511D3748112B3C1630412F485C223B4F455D7312 |
2A401A3248375064082032475E6E2E4658263E5020384C2840541E374B233C50 |
223B4F253E52142C40284054243C4E193143233A4A243C4E193147223C543F5A |
7429445E364E6A243D572D435C465D73000B204A5E702135461B32421F374B0E |
293E26425A26445D1828344D5D6923333F0F1F2B0919251527321A2B3830414E |
21323F192A370316231B2E3B1A2D3A253845122631172D391D31422A4052152B |
3D273D4F263C4E2E44562A4052364C5E051B2D3A5062172D3F273D4F2137491C |
324423394B223A4E1F3A4F26425A39546E29445E29415D233B57213A542B455D |
1F374D1C3549253F501D3748223A4E1F374B30465F354C62051D314A62742A40 |
52172D3F32485A14283A394D5F283C4E2034462F4557152B3D152D3F243E4F26 |
4051213B4C263F53183046294157294155233B4D1E3244192D3E1B2E3D405362 |
081B2A3F5463273B4C2E44561D3549263F532E465C263E54334A602F465C2A42 |
561830441C3549253E52284253152F40102A3B1B3546253E522B445835506412 |
2D41173247364F63021A2C3750602E46581C34461830421A3244172F43243C50 |
1E364A253D51152D3F253D4F1F3749183042223B4B223A4C243C522640583A55 |
6F26415B29425C243D57263C554D647A03162B566A7C192D3E1D3444152D4118 |
3348233F57203F5612222E4E5E6A2535410818240719240E202B11222F263744 |
1E2F3C2536430E212E1E313E0F222F2B3E4B1428331B2E3B1327382A40521329 |
3B1C324423394B283E50263C4E314759061C2E3C52641B314323394B1D33451B |
31432A4052263E502641562C495E37526C28435D19314D2A425E213A543B556D |
20384E122B3F193344284253233B4F1F374B2D435C3E556B021A2E4A62742036 |
4812283A293F5112283A2E44561A3042243A4C2B4355082032132B3D223C4D29 |
4354173142203A4B1931472C445A2B435720384A1C30421B2F401D303F405362 |
041726445766243849334758213749152D4120384E253D532D445A263D53223A |
4E172F431E374B223B4F284253213B4C152F40213B4C1C35492C45592843571A |
35491E394E3E596D061E30334C5C344C5E1F37491C34461E36481E364A31495D |
1F374B284054193143243C4E1A32441931432942522741522A42582D475F3853 |
6D28435D1C354F2B455D243A53546C80091C314155672C4051172E3E19314523 |
3E521C385016354C10222D4D5F6A20323D0416210618230B1D28091B261F313C |
1D2F3A283A451D2E3B2B3C491728352E3F4C1425321B2E3D0D21322B4153172D |
3F1A304222384A2C4254263C4E32485A091F31405668243A4C293F511F35471D |
33453046582941531D384D29465B3E597329445E1C34502F4763263F593C566E |
253D53183145152F402F495A21394D243C50283E573D546A0D22374D63752339 |
4B1F3547263E5020384A253D4F173142294354274152112B3C152F4029435421 |
3B4C132B3D1A32441A3248324A602E465A1C3446172B3D1C30411E31403A4D5C |
0A1D2C5164731B2F40223647203648162E42172F451B33491E354B1D344A1F37 |
4B18304421394D233B4F2E4859334D5E102A3B1630411833471F3A4E2D485C1B |
364A243F543D586C031B2D324B5B263E50243C4E0F2739223A4C162E422D4559 |
21394D2B435720384A2941531A32441931432B445427415220384E2C465E3E59 |
7328435D1F38522F4961293F58526A7E0012273E52642A3E4F2138482F475B40 |
5B6F1430481B3A51142631495B66182A35061823091B260F212C091B2620323D |
2537421F313C1829362738451B2C392637440E1F2C1E31400A1E2F283E501A30 |
421B3143203648364C5E283E50344A5C071D2F3D5365273D4F2D435523394B1C |
32442D435521394B183348264358445F79243F592139552A425E2B445E3B556D |
243C5220394D1630412943541D35492B43572B415A3A51670A1F3443596B2137 |
49243A4C1E3648223C4D1A34450F2B3C223E4F1A3647213D4E1B3546344E5F15 |
2F401830421D3547162F432F475D2A4256162E4014283A1F3344203342384B5A |
0114235A6D7C25394A1D3142203648203648172F43142C42172E44243B512941 |
551B334721394D253D51314B5C354F601731421B3546112C401C374B233E5226 |
41551A354A3C576B0A2234364F5F2F47592840521E3648273F51253D5130485C |
223A4E2B4357223A4C2E46581D35471A32442942521F394A1A324829435B405B |
75203B55213A5427415930465F546C800012244C60721C3041182F3F435B6F39 |
546816324A24435A1428333E525D0C1E290A1C270D1F2A1729340E202B273944 |
2A3C47192B361627341B2C391A2A3A1D2D3D0D1D2D2033420D2132253B4D1B31 |
431A30421B3143415769273D4F33495B071D2F374D5F23394B2B4153243A4C1A |
30422B41531A32441C374C2D4A5F3F5A742B46601C3450273F5B28415B3F5971 |
2D455B2740541C3647223C4D273F532F475B33496242576D0E2136485C6E2C42 |
542B4355203A4B233F502341521331422745561533441B394A18344527415112 |
2B3B1F36462A4254142D412A4258243C50142C3E15293B203445203342384B5A |
00101F5467762E4253283C4D243A4C263C4E1E364A1D35490B22381D344A243C |
50162E421E3648223A4C2C46572F495A2640512842530E2A3B1F3B4C1C374B37 |
5266132E43425D71031B2D2E47573049591E3747263E501C34462D4559273F53 |
243C50273F531E36482E46581F38481C35452841511A34451C344A314B633C57 |
7128435D1C354F243E562F455E576F830013254054651E32430C23333F576B0C |
273B1D3951203F561B27313C4B5406151E0C1D260E202B1C2E3912242F2C3E49 |
2435421A2B382434411D2D3A1E2E3E1E2E3E1121311B2E3D14283A253B4D1D33 |
451B3143182E40495F71273D4F3147590B2133354B5D203648293F51263C4E1C |
32442E44561C34481B384D34536A35536C3F5A7416314B2E47612039533F5971 |
435B71314A5E274152264051374F632E455B364D634A5F75071A2F44586A2D43 |
55273F511B35461A354929475A0D2D402442551533461533462A4657233D4E1B |
334510283A1B33451C344A2B4359243C50182E40172B3C1E31401C2C3C344756 |
0E2130475B6C2438492A4052283E502D43552A40522B4153162D4322394F263E |
521B3347223A4C1F3749243C4E2942521E36481B34440F293A112B3C233D4E36 |
4F63112A3E3C5569031B2D3851612E47572A4353223A4C21394B2C4458253D51 |
273F53243C50172F432A42541E36481E37472A42541B354616334838576E3553 |
6C405B751B344E2C445C253C52566B80000E203E52631A2E3F4357681A304217 |
30441833472A455913131943464E161E251E29311A2B341D2F3A1D313C364956 |
1D2D3D1423332330402330402F3E4E2030400E212E192E3D051B2D2D42571B2F |
412A3E50162A3B3448592D41523145560D213241556622384A304658223A4E1C |
34482F475B273F5514324B24455F2C4A6553728B2947601E3A52425C74344F64 |
3E576B2C44582B43572C44582F465C1A314732495F3D546A091E333D5569223A |
4E364F631B364A1F3A4F355065102D42203B50213C511530452944581C354926 |
3F5310293D1A33472B475F1431461E364A1C304123344114243016263240515E |
0517284C607221394D1F374B32485A1F36462335462E42531E3348182D432338 |
4D1D32471026382C43531930402F4655162A3B2338472034450E22333347583C |
50621B2F413B5163051C2C384F5F2D43551A30421E364A1F374B253D53294157 |
2D455B2D455B1A32482A4357253E521A3445334B5F233E5212324921435B2B4D |
6458778E254159294157384F65576C81000F213D4E612C3E4F30425320344518 |
2C3D364D5D213847100A0F403E4423262E101A2120313A152A322A404C2B3E4B |
152535091729212E3E17243425344420313E1023302237461A304223384D2135 |
473347591428393D51622135462B3F500B1F303F5666263C4E2C4456243C501B |
33472C43591E38501E3C57284B652E4F6942617A25445B2643583D586D374F65 |
3C54682E465A223A4E263E523B5268253C522940563A51670B23373C54682139 |
4D1D364A213A4E193449324A60173247284058233B51152D4327405420384C21 |
394D1D35491D364A28455A1530452039491A2D3A27384121303917262F334350 |
0D1F30485D7230475D273F5530485C1E34462C405125394A2A3F5422394F2E43 |
591E33480B21332239491C33433D5261263A4B1D32412A3E4F182C3D293B4C38 |
4C5D192A3D3F5364071E2E304757283E50263C4E233B4F20384C2A4258354D63 |
2A455A294459263E542C4559243D511D364A2A4256203B50204259264A622B4D |
653D5D742E4A622E465C3F566C52677C07182D4F60733443562F41521C2E3F2E |
41503043521E313E1511173D3D431D232A0A161C2A3B441C31393C525E263946 |
0A1A2A0F1E2E202D3D1B28382B3B481B2C39182B38192F3B263D4D1E36482339 |
4B253B4D233A4A2B4252162D3D2D4454081F2F405767293F51273F51263E521C |
35492C445A1B354D1E3D562F516933526B2D4C651F3E552A475C365166395266 |
3B5367284054294155263E52233A50263D53374D663B5268081E30465C6E1A30 |
42223A4C1F37492B4458233B4F1D364A2E455B223A4E183044263E502137491C |
3343263D4D1B3242233D4E142D3D2136450F212C20303729363E1E2A343B4856 |
0A1C2D50657A3B536B253F57354D65193147253D511C34482C43591D354B253C |
52172F4311293D20384A152D3F2A41512137491B32421A304222384A1D314322 |
384A24374C394F610D2434344B5B1C344630485A142C40273F532D455B3B5369 |
2A42582840562B445827405421394D223A4C263C4E20394D1D3C5532546C3251 |
6A2B4A6128425A2941573C5369566B80000C214E5F724152651B2C3F1E2F4228 |
3C4D283C4D1D324117171D474A4F1B232A15222A1629310A1E29283E4A1B313D |
0013221F2F3F162535222F3F33435011212D2739440B212D223949334B5D0117 |
29253C4C2239492C4353041B2B395060081F2F3C5363243C4E1A3244223B4F1B |
344829415717324716354C34546B2E4D641F3E551B384D284358334C60375064 |
3850641E364A2C4458284054172E4421384E3C526B41586E081E303E55652339 |
4B1D3345283E50284052253D4F1B33452840541D334522384A2A3E4F1C304128 |
3B4A2C3F4E1B303F1C3140152B372739440D1C251A282E28343A202D3543535F |
0D1E31455A70445C7437506A233E58122D472F4961122D422E48601C364E263E |
561B364B20384E2841551A3347223C4D233B4D223A4C1A3244253D4F152D411C |
34481F344932475C0D23352F4656273F51223A4C1B334720384C3951672E465C |
263E54263F53223B4F1C36471C344621394B23394B1B3347112F483957722E4C |
65233E581B334B293F5832465F556A80000B22506176435469162A3C2B3F512A |
3E502C4052283C4D15171F494C54111A2317242C152830172B36263C48102534 |
001221213141101F2F1A29392C3C490F1F2B293B460E222D29404F2C45550013 |
231F3646253C4C2A4150031827394E5D061D2C384F5E1D36461029391B354616 |
30411D364A0B263B1E3B503A596E223F541B364B1A3549253E52314A5E30485C |
2F475B193145263D53233A50294157253D532A425A465D73092030394E5D2337 |
481B32421A31412138482A41511C334323394B172B3C2C40512A3D4C15283739 |
4A572E3F4C24364120323D1E31392F3F4618262C2430362531371B283040505C |
03142751687E40597335506B2A476216334E223D571E3953233E581A364E2640 |
58173449102B40142F441530452B465A243D511730442942561C354918304637 |
4F65142B413D5569001628354B5D162E40334B5D112A3E2F485C2D465A274054 |
233C50274054183044162E401C32441D34442135460E26381C385038566F243F |
5917304A1B324C30465F2E425B4A5F75000F264C5F741F32471A2D42273A4F28 |
3E50182E40182E40070D14454D5419242C1120291E303B283E4A2E45540B2231 |
051A291A2D3C1D2D3D1B2B3823333F192A33192A3311232E304554132A3A263D |
4D1F3443263B4A1B303F0E2332364B5A091E2D3A5160203747112A3A1A324416 |
2E40152D41092236324D613D586C1730441D37481A33472840542D4559273F53 |
233B4F1A3246364D631C33491E364C273F55324A6242596F041B2B3A4F5E1D31 |
422C4051102737223949283F4F172E3E273B4C15293A31445324374611222F3A |
4B5826364221313D2B3C45283A412A3A4117252B29353B2733391D2C353F4F5C |
05192A465D733E566E3F5A7427445F15324D23405B1C375129445E26425A314B |
63254257122F441330451B364B3853681A3549132E42203B4F122D411D354B37 |
4F65152D433C5468081E30394F61162E40263E50183145223B4F274054284155 |
223B4F284155162E40162E401D3444182F3F1B2F400B21332E495E3551692740 |
5A162E462137502D435C2F435C475C720719304C5F7422354A23384D2C415627 |
3C511A30421B314300030C4B565E2D394313242D0D212C152B371A31400B2231 |
0E2332203342293A4721323F1D2D391A2B340B1C2511222B2A3D4A152A392D42 |
512D404F172A391F323F1225323A4D5A0C1F2C415461243746182D3C1B2F401A |
31411A30421B334538506231495B142C3E2740501830422A4254233B4D243C4E |
21394D193145465E72193145152D43263E543B536B3F566C03192B374E5E243A |
4C243A4C22384A182E402F455712283A294050132A3A2E43522336451C2D3A35 |
465322323E1929352D3E472E40472131380E1E2525323A202F3822303C3D4E5B |
07192A51667B39506638506840597317324C15304A213B532843582540552840 |
56274256153044183347142F432B465A2540541F3A4E183145162F431B34481D |
364A152D412A4256081E30485E70172F411C3446142C401D354920384C2A4256 |
233B4F263E521F3547172D3F1B2F401C30411C2F3E1E3243314A5E304B602B43 |
5B253D531E354B283D532C3E554B5E730114293F52672A3F54213749253B4D21 |
394B183042172F4105121A47545C1728310F212C122532253B47172E3D0F2635 |
142938293E4D22354221333E13242D1222291020271928312A3A472030401F2F |
3F1D2E3B25354222323F20303D3646530C1C2941525F213141172A3917293A1E |
32432337493246573145562037461A2E3F344B5B172E3E2B42521B3143273F51 |
253D511830443C5468193145344C62284056263E5441586E031B2D445A6C182E |
40243A4C192F411931432C4254172F41283E501128382A4151263B4A2E415033 |
4653273845182A3521333E2F414C20313A0E1F2820303C1828351C2C39314151 |
1224355165774054663D52674E667A1C344A1A32481F384C2E465A294153253D |
4F294354152F401B35461630412C48592E4859152F401D37481830421C344622 |
3A4C1B3345384E60000F2142586A2F4557071F31284054132B3F2941551F374B |
243C50223A4C253B4D142B3B162A3B1F334420334235495A2C44562B4458223B |
4F364E621A30422B4153233749475B6D071B2D4256682A40522B4252172F413A |
5363172F41152E3E0A19220B1C251E2E3A182A350F222F1F344309202F122938 |
1B32410B202F172A3720323D0F202904141B09141C0C19210D1B270C1C290D1D |
2A0515220B18260614200E1C281826321A283405131F000C1A0414210B1A2A06 |
162609192A2032430B1E2D0C222E051827132837142938051C2B0B2232041B2B |
0F27390F273918304411293D031B2F142C400B233701192D152D4111293D1028 |
3C11293D0A223610293D193145072034294155132B3D10283A162D3D0D243414 |
29380C1F2E182B381C323E142A36162B3A1429381428391325360E2031112433 |
172738021222000C1C011423081B2A02162705192A1E32430C20310A1E2F051C |
2C0F26360A21310B2434031C2C051F2F0E27370E2737162F3F112838041B2B16 |
2D3D0D243405192A192D3E1027370E2535172E3E061C2E142A3C193143041C2E |
2A425410283A13293B142B3B1226371126350E2130182D3C19304011293B122B |
3B1128380B2232142B3B081F2F0E25351B3242081F2F1C3343102736132C3C1E |
3846142E3E112C3A182A3510222D31434E2F404D3A4D5C3043522D425139505F |
3249581E36421C303B30434B2D3D441C2A3018222907101924303C1D2A382330 |
3E111D29232F3B17232F2B3743313D4944505C27333F141F2D0D1A28111E2E12 |
21311927392F3F4F2E3F4C172A371F323F1D303D384B5A1126352A3E4F1C3343 |
1B3143374F612A42561E364A2D45592E465A132B3F223A4E273F53233B4F223A |
4E243C501F384C2942563850662D455B4E677B30495D253D512C4456273D4F34 |
4B5B223949223948314858223B4B193242223A4C243C5033495B2B3F51324455 |
3F4F5F23334010202D0D1B270F1F2B12222E1829362F404D283946182B382336 |
43203544324756112837263D4C1E38461B35433953612D445321384732475633 |
4857182D3C273C4B304352293D4E2438492940501E34462E44563C526430485A |
4F6779334B5D233A4A2F4656223647374C5B253847283D4C364D5C1C36441A31 |
40253C4B29404F2F4655233A49314857314857223948374E5D273E4D2A445224 |
3E4C2843512742502F424F384B584154614A5D6C3C4F5E435665384C5D435867 |
3C53623D55613F535E52656D45555C2D393F3740442C343B3F49533B4753434F |
5B323B48434C59343E48434D57434D57515B653B4751323E4A2F3D4935425038 |
4553384555404F5F3D4D5A34465130424D3F525F3A4D5C2C4150384C5D354C5C |
3046583A50623A50623F5567364C5E3C52643C526433495B384E60374D5F364E |
603B5365354E6237506440586E354D635570853B566A364F633A53672F475B3F |
5769324A5C2F48584B63753E58692E475B395266344C62455D73394E63415567 |
4A5A6A374754323E48313D4737444C3A474F38475040505C3C4C583747532939 |
4541525F394C59304652394F5B2F475330475639505F3B505F405564384B583F |
525F3E515E3548553A4B583D505F3A4D5C405564364A5B3950603D5365374D5F |
586E803F55673F5567384F5F3047573D54643A4E5F3449584A61704159653B53 |
5F364E5A38505C4C64703E55643A5160445B6A3B526149606F39505F3F59672F |
49573E58663A5462283E4A2D434F3B4E5D2F42513346552C3F4E354758334857 |
3148572C454F2A3E493C4F56404E543540443E434630363B353F493844503B47 |
53343E4838424C333D47343E48333D47454F5935414B333F4B2E3C482E3B4932 |
3F4D313E4E32424F3949552E3E4A283A4530424D33465334475635495A223647 |
2B4153344A5C2D4355354B5D2C4254314858384E6032465735495A2F46562B42 |
522E46582D455730485C3B5367374F653D556B284056314A5E2C4559263E5231 |
495D30485A2C4456324A5C2D4758294256304B6028425A324C642A4157364A5C |
3E4E5E33414D353F49323D45323E4434414931404934434C38475037464F2B3B |
472D3F4A1F303D1F323F263C481C31402138472A4150253A492C415024374629 |
3C493344512B3C49293A472D3E4B21323F2336451F32412438492B3F50304658 |
2B41531C32442D43551E34461D3444243B4B293D4E1C304122394818303C1E35 |
44263E4A233A49283F4E1A3140263D4C2A41512940502940502037472841511F |
38482E4757223B4B0F2635081F2E162B3A1528371F2F400D1F30182A3B1C3140 |
0B22310B242E162A351B2E3518262C1720241D20242025281A252D1C2B341D2C |
3514202A18242E16232B1A272F1A272F212E3619262E1D293318273013212D15 |
25311626331626331C2C38162730172733162833142734102332162A3B0F2334 |
1229391C3343132738172B3C0F2334142938192D3E122534192C3B1629381326 |
35192D3E1B2F40162C3E1C3244172F431A3246061E321830440A2236122A3C13 |
2B3D192F411127390F26360D243410293D102B400D273F0D273F0B223815293B |
1C2C3C17262F1F2A321D272E17222A19262E1827301626321B29351826321F2F |
3C152633091929102332162B3A1F3646193040243B4B1B2F401F3443182B3A1D |
303F2535451D2E3B22323E22323E11212D1425321124311429381B2F40263A4B |
192F4112283A162E40183042102638263C4E192F411027371229390E2534182F |
3F2138471C33431D34441027371D344412283A1E344613293B112739152B3D19 |
2F4123394B182E40031D2B09202F1429381528371323341626370D1F300F2433 |
1328370B242E11262E12242B18242A1A21241011150B0E120E19210F20291D2E |
3708172017272E08181F1222290B1B2219262E0C1C23101F280B1C250515210C |
1E290F202D0D1F2A1A2B340C1D260E1E2A0E202B12233000111E051A29132738 |
0A2131182F3F1024350F24330E2332162B3A1326350E1F2C1829361426310E1F |
2C1326331528370D213211253612283A102638041C2E183044051D2F0D253706 |
1C2E0A20320E2233162B3A0E23320E26380C25390D273F0C263E0A223811263B |
1424340C1B24141F27111C240B161E111D2710202C0E1E2B1D2D390616220E1E |
2B0E1E2E172A391B2F40132A3A283F4F1C32442B425222384A2337482135462B |
3E4D29394A2434442A3A46293A431C2C3824344020313E1D303D1E3342283C4D |
253B4D1F3547273F511D35471D334523394B1D33451E34461C32441D34442238 |
4A1E35451A3042293F511A30421A2F44162B40293E531E33481E33491B304624 |
394F2A3F55293E54142F3D1933413F53641C2E3F3040512E3E4F304253223746 |
1D324129424C31464E2F41482733391D242722212520232719262E20333B3346 |
4E1F30392C3E451A2C3321333A17293045555C26383F192A330D2028091B2616 |
2A351E323D1C303B3F50591928311F2F3B0C1E294758651B2E3B2035441B303F |
243849485C6D2E43521B303F3B4E5D4255622435423749543A495232414A2533 |
3F253541283946273A473B4E5D4C60712B3F50283F4F354B5D2940502A415127 |
3B4C2337483247563547522C404B273E4D2B4355294459304A622E465C394E63 |
4252622836421F2933141F270E1A241B29352030401C2F3E40505D1929362332 |
420F1F2F3E52631B31431B31431A32441E364A445C6E2C44581A3042384C5E3E |
526322334639495937455132424924333C2C3C482738452A3D4A374C5B495D6E |
2B4153243A4C344C5E1D35472C44561C344620384A2B4355344A5C23394B263B |
5032485A31465B34495E2A3F543C516724394F2D4258283D53293D562F405A31 |
425C34455F3B4C66395462385260566A7B3F5162404E6042526339495A3B505F |
3C5160445D67394E5641545949555B4146494443473033373441493E535B4A5D |
653F525A40535A3E515842545B4052595A6C733A4C5330434B2F424A31455040 |
545F3F5560364A5544555E3D4C553C4C583648535364713B4E5B304554394E5D |
495D6E4F6374485D6C374C5B3B4E5B5164714355603F505943525B47545C4251 |
5A4859624757633C4E594558675568774357684054653A51613D5464465A6B4C |
60713A4E5F4D606F51646C4F626A465B6A4A62743B5369435D753C53694B6075 |
5969793C4A5635414B34414938445043536041546336495845556540505D3545 |
553548574D61733A50622E465A344C60435C704C6579465E72344C60374B5D4D |
61734051643F4F5F47556146535B3F4E574A5B643F4F5C3B4E5B475A69536877 |
43596B3D53653C54663B5365475F71455D6F364E60475F714B6075475C714A5F |
74465B703E5368495E7340556B495E7441556E3B4F68394D663A4E674F607B49 |
5A75495A7552637E} |
Left = 304 |
Top = 88 |
end |
object ImageList1: TImageList |
Height = 20 |
Width = 20 |
Left = 276 |
Top = 416 |
Bitmap = { |
494C01010D000E00040014001400FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 |
0000000000003600000028000000500000005000000001002000000000000064 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000C0C0C000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000C0C0C000C0C0C00000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000C0C0C000C0C0C000C0C0C000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000C0C0C000C0C0C000C0C0C0000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000C0C0C000C0C0C000C0C0 |
C000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000C0C0C000C0C0 |
C000C0C0C0000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000000000000000000000C0C0 |
C000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000000000000000FFFF00FFFF |
FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF |
FF0000FFFF00FFFFFF0000FFFF00FFFFFF000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000008080800080808000808080008080800080808000808080008080 |
8000808080008080800000000000000000000000000000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF00FFFFFF0000FFFF000000000000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF00FFFFFF0000FFFF000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF000000000000000000000000000000000000000000000000000000 |
000000000000808080000000000000000000000000000000000080808000FFFF |
FF0000000000FFFFFF0080808000FFFFFF0000000000FFFFFF0080808000FFFF |
FF0000000000FFFFFF0080808000FFFFFF000000000000000000000000000000 |
0000000000000000000080808000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF |
FF0000FFFF00FFFFFF0000FFFF00000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF000000000000000000000000000000000000000000000000000000 |
0000000000008080800000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000C0C0C00000FFFF00C0C0C00000FF |
FF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FF |
FF00000000000000000000000000000000000000000000000000000000008080 |
80000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF00FFFFFF0000FFFF000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF000000000000000000000000000000000000000000000000000000 |
0000000000008080800000000000000000000000000080000000800000008000 |
0000800000008000000080000000800000008000000080000000800000008000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFFFF0000000000C0C0C00000FFFF00C0C0 |
C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0 |
C0000000000000000000000000000000000000000000000000000000000000FF |
FF0000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF |
FF0000FFFF00FFFFFF0000FFFF00FFFFFF000000000000000000000000000000 |
00000000000000000000000000000000000000000000FFFF0000FF0000000000 |
0000FFFFFF000000000000000000000000000000000000000000000000000000 |
000000000000808080000000000000000000000000008000000000FF000000FF |
000000FF000000FF000000FF000000FF000000FF000000FF0000800000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000FFFF000000000000FFFF00C0C0C00000FF |
FF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FF |
FF00C0C0C0000000000000000000000000000000000000000000000000008080 |
80000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF00FFFFFF0000FFFF000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FF0000000000 |
0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF |
FF00FFFFFF00000000000000000000000000000000008000000000FF00008000 |
000080000000800000008000000000FF000000FF000080000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFFFF0000FFFF000000000000FFFF00C0C0 |
C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0 |
C00000FFFF0000000000000000000000000000000000000000000000000000FF |
FF00808080008080800000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF |
FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0080808000000000000000 |
00000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000008000000000FF00008000 |
0000808080008000000000FF000000FF00008000000000000000000000008080 |
8000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000FFFF00FFFFFF0000000000C0C0C00000FF |
FF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FFFF00C0C0C00000FF |
FF00C0C0C00000FFFF0000000000000000000000000000000000000000008080 |
800000FFFF0080808000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0080808000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFFFF00FFFF0000FFFF |
0000FF000000FF000000FF00000000FFFF0000FFFF0000FFFF0000FFFF0000BF |
BF0000000000000000000000000000000000000000008000000000FF00008000 |
00008000000000FF000000FF0000800000000000000000000000000000000000 |
0000000000008080800000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFFFF0000FFFF00FFFFFF00000000000000 |
0000000000000000000000000000C0C0C00000FFFF00C0C0C00000FFFF00C0C0 |
C00000FFFF00C0C0C000000000000000000000000000000000000000000000FF |
FF00808080008080800080808000808080008080800080808000808080008080 |
8000808080008080800080808000808080008080800080808000000000000000 |
000000000000000000000000000000000000FFFF0000FFFFFF00FFFF0000FFFF |
0000FFFF0000FF000000FF0000008080800000FFFF0000FFFF0000FFFF0000FF |
FF0000BFBF00000000000000000000000000000000008000000000FF00008000 |
000000FF000000FF000080000000000000000000000080808000000000000000 |
0000C0C0C0000000000000000000808080000000000000000000000000000000 |
000000000000000000000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF00FFFFFF00000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000008080 |
800000FFFF008080800000FFFF0080808000FFFF0000FFFF0000FFFF0000FFFF |
0000808080008080800000FFFF00808080000000000000000000000000000000 |
00000000000000000000000000000000000000000000FFFF0000FFFF0000FFFF |
0000FFFF000000BF000000BF00008080800000FFFF0000FFFF000000BF0000BF |
BF0000FFFF00000000000000000000000000000000008000000000FF000000FF |
000000FF0000800000000000000000000000000000000000000000000000C0C0 |
C000FFFFFF00FFFFFF00C0C0C000000000000000000000000000000000000000 |
0000000000000000000000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF |
FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000FFFF008080800000FFFF0000000000FFFF0000FFFF0000FFFF |
0000808080008080800080808000808080000000000000000000000000000000 |
00000000000000000000000000000000000000000000FFFF0000FFFF0000FFFF |
000000BF000000BF000000BF000000BF0000FFFFFF0000FFFF000000BF000000 |
BF0000FFFF0000BFBF000000000000000000000000008000000000FF000000FF |
0000800000000000000000000000000000000000000000000000808080000000 |
0000FFFFFF00FFFFFF00FFFFFF00C0C0C0000000000000000000000000000000 |
000000000000000000000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FF |
FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF |
0000808080000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000FFFF0000FFFF |
000000BF000000BF000000BF000000BF000000BF00000000BF000000BF000000 |
BF0000FFFF0000BFBF000000000000000000000000008000000000FF00008000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000C0C0C000FFFFFF00FFFFFF00C0C0C0000000000000808000000000000000 |
0000000000000000000000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF |
FF00000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF000000000000FFFF |
0000808080000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000FFFF0000FFFF |
000000BF000000BF000000BF000000BF00000000BF000000BF0000FFFF000000 |
0000000000000000000000000000000000000000000080000000800000000000 |
0000000000000000000000000000000000000000000000000000000000008080 |
800000000000C0C0C000C0C0C0000000000000FFFF0080000000008080000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000FFFF0000FFFF0000FFFF000000000000000000008080 |
8000808080000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000000000000000000000FFFF |
000000BF000000BF000000BF000000BF000000BF000000000000000000000000 |
0000000000000000000000000000000000000000000080000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFFFF0000FFFF0000FFFF00800000000080 |
8000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000FFFF0000FFFF0000FFFF00000000000000000000000000000000 |
0000808080000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000000000000000000000FFFF |
FF00FFFF0000FFFF000000BF000000BF00000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000FFFF00FFFFFF00FFFFFF0000FFFF0000FFFF008000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000FFFF0000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFF0000FFFF000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000FFFF00FFFFFF00FFFFFF0000FFFF0000FF |
FF00000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000FFFF00FFFFFF00FFFFFF0000FF |
FF00000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000008080 |
8000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000FFFF000080800000FFFF000080800000FFFF000080800000FFFF000080 |
800000FFFF000080800000FFFF00000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000808000C0C0C0000000000000000000000000000000000000000000C0C0 |
C0000080800000FFFF0000808000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000FF000000FF000000FF000000FF00000000 |
000000FF000000FF00000000000000FF000000FF000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000FFFF0000808000C0C0C000000000000000000000000000000000000000 |
0000C0C0C0000080800000FFFF00000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000008080800000FF000000FF000000BF000000FF |
000000FF00000000000000FF000000FF00000000000000000000000000008080 |
8000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 |
0000FFFFFF00FFFFFF00C0C0C000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF000000BF000000FF000000FF000000FF |
000000FF000000FF000000FF000000000000000000000000000080808000FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 |
0000FFFFFF00FFFFFF00C0C0C000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000BFBF000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000BFBF0000BFBF0000BFBF00000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF000000BF000000FF000000FF |
000000BF000000FF000000BF0000000000000000000080808000FFFF0000FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 |
0000FFFFFF00FFFFFF00C0C0C000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000BFBF0000BFBF0000BFBF0000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000BFBF0000BFBF0000BFBF00000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF000000BF000000FF |
000000FF000000BF0000FFFF00008080800080808000FFFF0000FFFF0000FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
0000C0C0C000FFFFFF00FFFFFF00FFFFFF00000000000000000000000000FFFF |
FF00FFFFFF00C0C0C00080808000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000000000000000000000BFBF |
0000BFBF0000BFBF0000BFBF0000BFBF00000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000BFBF0000BFBF0000BFBF00000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF000000BF |
000000BF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000C0C0C000FFFFFF00FFFFFF00808080000000000080808000FFFF |
FF00C0C0C000C0C0C00000000000808080000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000BFBF0000BFBF |
0000BFBF0000BFBF0000BFBF0000BFBF0000BFBF000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000BFBF0000BFBF0000BFBF00000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000FFFFFF00FFFFFF00808080000000000080808000C0C0 |
C000000000000000000080808000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000BFBF0000BFBF0000BFBF0000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000BFBF0000BFBF0000BFBF0000BFBF0000BFBF0000BFBF |
0000BFBF00000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF0000FFFF000000BFBF0000BFBF00FFFF0000FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000BFBF0000BFBF0000BFBF0000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000BFBF0000BFBF0000BFBF0000BFBF0000BFBF |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF000000BFBF0000FFFF0000FFFF0000BFBF00FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000FFFFFF00FFFFFF00FFFFFF00C0C0C0000000000080808000C0C0 |
C000808080008080800000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000BFBF0000BFBF0000BFBF0000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000BFBF0000BFBF0000BFBF00000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF000000BFBF0000FFFF0000FFFF0000BFBF00FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
0000808080000000000000000000000000000000000000000000000000000000 |
0000000000000000000080808000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000BFBF0000BFBF0000BFBF0000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000BFBF0000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF0000FFFF000000BFBF0000BFBF00FFFF0000FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000008080800000000000808080000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000BF000000BF000000BF000000BF000000BF000000BF000000 |
BF000000BF000000BF0000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000FFFFFF0000000000C0C0C000C0C0 |
C000FF000000FF000000FF000000FF000000C0C0C000C0C0C00000000000FFFF |
FF00000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000BF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000BF00000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000C0C0C000C0C0 |
C000FF000000FF000000FF000000FF000000C0C0C000C0C0C000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
BF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000BF000000000000000000000000000000 |
000000000000000000000000000000000000FFFFFF0000000000C0C0C000C0C0 |
C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C00000000000FFFF |
FF00000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000000000000000BF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000BF0000000000000000000000 |
0000000000000000000080808000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000808080000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000FFFFFF0000000000000000000000 |
000000000000000000000000000000FF000000FF000000FF000000FF00000000 |
000000FF000000FF00000000000000FF000000FF000000000000C0C0C000C0C0 |
C00000000000000000000000000000000000000000000000BF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000BF00000000000000 |
0000000000000000000000000000FFFFFF0000000000C0C0C000C0C0C000C0C0 |
C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C00000000000FFFFFF000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000FFFFFF00000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000008080800000FF000000FF000000BF000000FF |
000000FF00000000000000FF000000FF000000000000C0C0C000C0C0C0008080 |
8000000000000000000000000000000000000000BF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000BF000000 |
00000000000080808000000000000000000080808000C0C0C000C0C0C000C0C0 |
C0000000FF000000FF000000FF00C0C0C0008080800000000000000000008080 |
8000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFFFF000000000000000000000000000000 |
0000000000000000000000000000FFFFFF000000000000000000000000000000 |
0000000000000000000000000000FFFF000000BF000000FF000000FF000000FF |
000000FF000000FF000000FF000000000000C0C0C000C0C0C00080808000FFFF |
00000000FF00C0C0C00000000000000000000000BF000000FF00FFFFFF00FFFF |
FF00FFFFFF000000FF000000FF00FFFFFF000000FF000000FF00FFFFFF00FFFF |
FF00FFFFFF000000FF00FFFFFF000000FF000000FF000000FF000000BF000000 |
00000000000000000000FFFFFF0000000000C0C0C000C0C0C000FF000000FF00 |
00000000FF000000FF000000FF00C0C0C00000000000FFFFFF00000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFFFF000000000000000000000000000000 |
00000000000000000000FFFFFF00000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF000000BF00000000FF00C0C0 |
C00000BF000000FF000000BF0000C0C0C000C0C0C00080808000FFFF0000FFFF |
0000000000000000000000000000000000000000BF000000FF000000FF000000 |
FF00FFFFFF000000FF000000FF00FFFFFF000000FF000000FF00FFFFFF000000 |
FF00FFFFFF000000FF00FFFFFF000000FF000000FF000000FF000000BF000000 |
000000000000000000000000000000000000C0C0C000C0C0C000FF000000FF00 |
00000000FF000000FF000000FF00C0C0C0000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000FFFFFF0000000000000000000000 |
00000000000000000000FFFFFF00000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF00000000FF000000FF000000 |
FF00C0C0C00000BF0000FFFF00008080800080808000FFFF0000FFFF00000000 |
FF00C0C0C0000000000000000000000000000000BF000000FF00FFFFFF00FFFF |
FF00FFFFFF000000FF000000FF00FFFFFF000000FF000000FF00FFFFFF000000 |
FF00FFFFFF000000FF00FFFFFF00FFFFFF00FFFFFF000000FF000000BF000000 |
00000000000000000000FFFFFF0000000000C0C0C000C0C0C000FF000000FF00 |
0000FF000000FF000000C0C0C000C0C0C00000000000FFFFFF00000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000FFFFFF00000000000000 |
000000000000FFFFFF0000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF00000000FF000000FF000000 |
FF00C0C0C000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000FF00C0C0 |
C000000000000000000000000000000000000000BF000000FF00FFFFFF000000 |
FF000000FF000000FF000000FF00FFFFFF000000FF000000FF00FFFFFF000000 |
FF00FFFFFF000000FF00FFFFFF000000FF00FFFFFF000000FF000000BF000000 |
00000000000080808000000000000000000080808000C0C0C000FF000000FF00 |
0000FF000000FF000000C0C0C000C0C0C0008080800000000000000000008080 |
8000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF00000000FF000000 |
FF000000FF00C0C0C000FFFF0000FFFF0000FFFF00000000FF000000FF00C0C0 |
C000000000000000000000000000000000000000BF000000FF00FFFFFF00FFFF |
FF00FFFFFF000000FF00FFFFFF00FFFFFF00FFFFFF000000FF00FFFFFF00FFFF |
FF00FFFFFF000000FF00FFFFFF00FFFFFF00FFFFFF000000FF000000BF000000 |
0000000000000000000000000000FFFFFF0000000000C0C0C000FF000000FF00 |
0000FF000000FF000000C0C0C000C0C0C000C0C0C00000000000FFFFFF000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000000000000000000000000000FFFF |
FF00000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF00000000 |
FF000000FF000000FF00C0C0C000FFFF00000000FF000000FF00C0C0C000FFFF |
0000000000000000000000000000000000000000BF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000BF000000 |
00000000000000000000000000000000000000000000C0C0C000C0C0C000C0C0 |
C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C00000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000FFFFFF000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
00000000FF000000FF000000FF000000FF000000FF00C0C0C00000BFBF00FFFF |
0000000000000000000000000000000000000000BF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000BF000000 |
0000000000000000000000000000FFFFFF000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000FFFFFF000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
00000000000000000000000000000000000000000000FFFFFF00000000000000 |
0000FFFFFF000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
0000FFFF00000000FF000000FF000000FF00C0C0C00000FFFF0000BFBF00FFFF |
000000000000000000000000000000000000000000000000BF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000BF00000000000000 |
0000000000000000000080808000000000000000000000000000C0C0C000C0C0 |
C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C00080808000000000000000 |
0000808080000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000FFFFFF0000000000000000000000 |
00000000000000000000FFFFFF00000000000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF |
00000000FF000000FF000000FF000000FF000000FF00C0C0C000FFFF0000FFFF |
00000000000000000000000000000000000000000000000000000000BF000000 |
FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000FF000000BF0000000000000000000000 |
000000000000000000000000000000000000FFFFFF0000000000C0C0C000C0C0 |
C000C0C0C000C0C0C0000000FF000000FF000000FF00C0C0C00000000000FFFF |
FF00000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000FFFFFF000000000000000000000000000000 |
0000000000000000000000000000FFFFFF000000000000000000000000000000 |
0000000000000000000000000000FFFF0000FFFF0000FFFF0000FFFF00000000 |
FF000000FF000000FF00C0C0C000FFFF00000000FF00C0C0C000FFFF0000FFFF |
0000000000000000000000000000000000000000000000000000000000000000 |
BF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000FF000000BF000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000C0C0C000C0C0 |
C000FF000000FF0000000000FF000000FF000000FF00C0C0C000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000FFFFFF0000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000FFFFFF0000000000000000000000 |
000000000000000000000000000000000000000000000000FF000000FF000000 |
FF000000FF00C0C0C0000000000000000000000000000000FF000000FF00C0C0 |
C000000000000000000000000000000000000000000000000000000000000000 |
00000000BF000000FF000000FF000000FF000000FF000000FF000000FF000000 |
FF000000FF000000FF000000BF00000000000000000000000000000000000000 |
000000000000000000000000000000000000FFFFFF0000000000C0C0C000C0C0 |
C000FF000000FF0000000000FF000000FF000000FF00C0C0C00000000000FFFF |
FF00000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000FF000000FF000000FF000000 |
FF00C0C0C00000000000000000000000000000000000000000000000FF000000 |
FF00C0C0C0000000000000000000000000000000000000000000000000000000 |
0000000000000000BF000000BF000000BF000000BF000000BF000000BF000000 |
BF000000BF000000BF0000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000C0C0C000C0C0 |
C000FF000000FF000000FF000000FF000000C0C0C000C0C0C000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000FF000000FF00C0C0C0000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
FF000000FF00C0C0C00000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
0000000000000000000000000000000000000000000000000000000000000000 |
000000000000000000000000000000000000424D3E000000000000003E000000 |
2800000050000000500000000100010000000000C00300000000000000000000 |
000000000000000000000000FFFFFF00FFFFF0000000000000000000FFFFF000 |
0000000000000000FFFFF0000000000000000000FFFFF0000000000000000000 |
F9FFF0000000000000000000F87FF0000000000000000000FC3FF00000000000 |
00000000FC1FF0000000000000000000FE0FF0000000000000000000FF05F000 |
0000000000000000EF81F0000000000000000000E7C1F0000000000000000000 |
F2E0F0000000000000000000F8C070000000000000000000F8F8700000000000 |
00000000F0FC70000000000000000000FFFFF0000000000000000000FFFFF000 |
0000000000000000FFFFF0000000000000000000FFFFF0000000000000000000 |
FFFFFFFFFFFFFFFFFFFF000080007FFFFFFFFFFFE0010000C0007FFFFFFFFFFF |
E801000080007FFFFFC000FFE7F90000C0007C000FC000FFE739000080007C00 |
07C0007F84090000800FFC0007C0007E07F90000801FFC0003C0007C00050000 |
803FFC0003C0003800010000800FFC0001C0003C000700008083FC0001C0003E |
000300008180FC0003C000FF0003000083C07C000FC000FF0001000087C03C00 |
0FF807FF800100008FE01C001FFC07FF800300009FE00E0FFFF827FFC01F0000 |
BFF00FFFFFF077FFC07F0000FFF80FFFFFF8FFFFE0FF0000FFFC0FFFFFFDFFFF |
F3FF0000FFFF0FFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF0000FFFFFFFF |
FFFFFFFFFFFF0000E001FFFFFFFFFFFFFFFF0000E000FFFFFFFFFFFC00070000 |
E000FFFFFFFFFFFC00370000E000FFFFFFFFFFFC00670000E000FFFBFFFE0FFC |
00C70000E000FFF1FFFE0FFC01870000E000FFE0FFFE0FFC00070000E000FFC0 |
7FFE0FFC00070000F000FF803FF001FC00070000F801FF001FF803FC00070000 |
F001FFE0FFFC07FC00070000F001FFE0FFFE0FFC00070000F001FFE0FFFF1FFC |
00070000FF1FFFE0FFFFBFFC00070000FF1FFFFFFFFFFFFC00070000FFFFFFFF |
FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF0000 |
FFFFFFFFFFFFFFFFFFFF0000F803FE0007FFFFFFFFFF0000F001FE0007FFFFFF |
FFFF0000E000FE0007FFFFFC00070000C0007C0007FFFE7C0007000080003C00 |
0FF9FFFC00070000000018000FF0FCFC00030000000018001FF0F9FC00070000 |
000018001FF871FC00070000000018001FFC23FC00070000000018000FFE07FC |
0007000000001C000FFF0FFC0007000000001C000FFE07FC0007000000001C00 |
0FFC27FC0007000080003C0007F071FC00070000C0007E0007E0F8FC00070000 |
E000FE0007E3FC7C00070000F001FE0007FFFFFF07C70000F803FE0007FFFFFF |
1FE30000FFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000 |
000000000000} |
end |
object ActionList1: TActionList |
Images = ImageList1 |
OnUpdate = ActionList1Update |
Left = 292 |
Top = 440 |
object acAddImages: TAction |
Category = 'GlueIt' |
Hint = 'Add images from file.' |
ImageIndex = 7 |
OnExecute = btnAddImagesClick |
end |
object acDeleteAll: TAction |
Category = 'GlueIt' |
Hint = 'Clear all images from list.' |
ImageIndex = 2 |
OnExecute = btnClearAllClick |
end |
object acDeleteOne: TAction |
Category = 'GlueIt' |
Hint = 'Delete one selected image from list.' |
ImageIndex = 3 |
OnExecute = btnDeleteSelectedClick |
end |
object acSaveToFile: TAction |
Category = 'GlueIt' |
Hint = 'Save image to file.' |
ImageIndex = 11 |
OnExecute = btnSaveClick |
end |
object acGlueIt: TAction |
Category = 'GlueIt' |
Hint = 'Glue all images from list to one.' |
ImageIndex = 4 |
OnExecute = btnGlueItClick |
end |
object acGlueIzonometrics: TAction |
Category = 'GlueIt' |
Enabled = False |
Hint = 'Glue images as isonometric picture.' |
ImageIndex = 8 |
end |
object acUpSelection: TAction |
Category = 'GlueIt' |
Hint = 'Go up image in list.' |
ImageIndex = 6 |
OnExecute = btnUpSelectionClick |
end |
object acDownSelection: TAction |
Category = 'GlueIt' |
Hint = 'Go down image in list.' |
ImageIndex = 5 |
OnExecute = btnDownSelectionClick |
end |
object acAnimateOn: TAction |
Category = 'Anime' |
Hint = 'Start Animation' |
ImageIndex = 1 |
OnExecute = btnPlayClick |
end |
object acAnimateStop: TAction |
Category = 'Anime' |
Hint = 'Stop Animation.' |
ImageIndex = 0 |
OnExecute = btnStopClick |
end |
object acAnimeFontOff: TAction |
Category = 'AnimeFont' |
Hint = 'Start drawing font off.' |
ImageIndex = 0 |
OnExecute = btnFontAnimationStopClick |
end |
object acAnimeFontOn: TAction |
Category = 'AnimeFont' |
Hint = 'Start drawing font on.' |
ImageIndex = 1 |
OnExecute = btnFontAnimationStartClick |
end |
object acLoadImage: TAction |
Category = 'Preview' |
ImageIndex = 9 |
OnExecute = LoadImagedirectly1Click |
end |
object acSaveImage: TAction |
Category = 'Preview' |
ImageIndex = 11 |
OnExecute = btnSaveClick |
end |
object acGetTransparent: TAction |
Category = 'Preview' |
Caption = 'acGetTransparent' |
Enabled = False |
Hint = 'Get transparent color from current image.' |
ImageIndex = 12 |
OnExecute = acGetTransparentExecute |
end |
end |
end |
/VCL_DELPHIX_D6/DXGlueItEdit.pas |
---|
0,0 → 1,1461 |
unit DXGlueItEdit; |
//(c)2007 Jaro Benes |
//All Rights Reserved |
{ |
Complex application for users of unDelphiX as component editor: |
Supported: |
a) many small images glue into one image. |
b) generate font image as one image with subpictures. |
c) use image effect for DIB. |
d) animation the glued image and font preview. |
e) restructuralize of images to square size or unlimeted in one size direction up 2048 px. |
f) it works in 24bit deepth always. |
g) store into DXImageList directly. |
h) reset of transparent color. |
i) force size for all images with different size. |
j) use the loupe preview for glued image (in preview page). |
k) generate mask for alphachannel for characters of fonts. |
} |
interface |
{$I DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Graphics, ShellAPI, StdCtrls, Dialogs, |
DXClass, DIB, jpeg, Menus, DXDraws, ComCtrls, Buttons, Controls, ExtCtrls, Forms, |
{$IFDEF VER17UP}System.UITypes,{$ENDIF} |
ExtDlgs,{$IFDEF VER6UP} Types,{$ENDIF} ActnList, ImgList; |
type |
TOperationGlueIt = (ogiNew, ogiEdit); |
{injected class} |
TEdit = class(StdCtrls.TEdit) |
private |
function GetAsInteger: Integer; |
procedure SetAsInteger(const Value: Integer); |
published |
public |
property AsInteger: Integer read GetAsInteger write SetAsInteger; |
end; |
TDXGlueItEditor = class(TForm) |
OpenDialog1: TOpenDialog; |
DXTimer1: TDXTimer; |
SaveDialog1: TSaveDialog; |
DXImageList1: TDXImageList; |
Panel5: TPanel; |
btnExit: TButton; |
Button1: TButton; |
PopupMenu1: TPopupMenu; |
LoadImagedirectly1: TMenuItem; |
mainPageControl: TPageControl; |
tsGlueIt: TTabSheet; |
tsFontGen: TTabSheet; |
Panel1: TPanel; |
grManagementOfTheFrames: TGroupBox; |
Panel4: TPanel; |
chbCrop: TCheckBox; |
chbCentered: TCheckBox; |
ListBox1: TListBox; |
Panel3: TPanel; |
btnAddImages: TSpeedButton; |
btnDeleteSelected: TSpeedButton; |
btnClearAll: TSpeedButton; |
btnSave: TSpeedButton; |
btnGlueIt: TSpeedButton; |
btnGlue2Iso: TSpeedButton; |
btnUpSelection: TSpeedButton; |
btnDownSelection: TSpeedButton; |
chbTransparent: TCheckBox; |
Panel2: TPanel; |
grPictureAnimationPreview: TGroupBox; |
DXDraw1: TDXDraw; |
Panel6: TPanel; |
btnStop: TSpeedButton; |
btnPlay: TSpeedButton; |
LAnimationSpeed: TLabel; |
pbAnimationSpeed: TProgressBar; |
tsPreview: TTabSheet; |
GroupBox1: TGroupBox; |
Panel7: TPanel; |
ScrollBox1: TScrollBox; |
Image1: TImage; |
GroupBox4: TGroupBox; |
Panel8: TPanel; |
gbFontSettings: TGroupBox; |
Label1: TLabel; |
Label4: TLabel; |
Label10: TLabel; |
cbFontName: TComboBox; |
FontSize: TEdit; |
gbFontEffects: TGroupBox; |
Label5: TLabel; |
Label7: TLabel; |
eOffset: TEdit; |
eOpacity: TEdit; |
gbColorSettings: TGroupBox; |
Label14: TLabel; |
Label15: TLabel; |
btnFontGenerate: TButton; |
FontPageControl: TPageControl; |
tsFont: TTabSheet; |
ScrollBox2: TScrollBox; |
imgFont: TImage; |
tsMask: TTabSheet; |
ScrollBox3: TScrollBox; |
imgMask: TImage; |
tsPreviewFont: TTabSheet; |
PreviewMemo: TMemo; |
PreviewDraw: TDXDraw; |
PreviewTimer: TDXTimer; |
FontDXImageList: TDXImageList; |
Label16: TLabel; |
btnAllChars: TButton; |
memAlphabet: TMemo; |
cbAntialias: TCheckBox; |
cbDrawGrid: TCheckBox; |
SavePictureDialog: TSavePictureDialog; |
ColorDialog: TColorDialog; |
pnlFG: TPanel; |
pnlBG: TPanel; |
Panel20: TPanel; |
btnABold: TSpeedButton; |
btnAItalic: TSpeedButton; |
btnAUnderline: TSpeedButton; |
DXDIB1: TDXDIB; |
Label11: TLabel; |
Sources: TMemo; |
Panel9: TPanel; |
btnFontAnimationStop: TSpeedButton; |
btnFontAnimationStart: TSpeedButton; |
Splitter1: TSplitter; |
Splitter2: TSplitter; |
Panel10: TPanel; |
LDuration: TLabel; |
Label6: TLabel; |
pbDuration: TProgressBar; |
cbEffectsList: TComboBox; |
btnApply: TButton; |
Panel11: TPanel; |
grSubimages: TGroupBox; |
LPatternWidth: TLabel; |
LPatternHeight: TLabel; |
ePatternWidth: TEdit; |
ePatternHeight: TEdit; |
btnResize: TButton; |
btnReplace: TButton; |
Panel12: TPanel; |
SpeedButton1: TSpeedButton; |
SpeedButton2: TSpeedButton; |
Label2: TLabel; |
panTColor: TPanel; |
EWidthOfImages: TEdit; |
EHeightOfImages: TEdit; |
LWidthOfImages: TLabel; |
LHeightOfImages: TLabel; |
chbForceSize: TCheckBox; |
ImageList1: TImageList; |
ActionList1: TActionList; |
acAddImages: TAction; |
acDeleteAll: TAction; |
acDeleteOne: TAction; |
acSaveToFile: TAction; |
acGlueIt: TAction; |
acGlueIzonometrics: TAction; |
acUpSelection: TAction; |
acDownSelection: TAction; |
acAnimateOn: TAction; |
acAnimateStop: TAction; |
acAnimeFontOff: TAction; |
acAnimeFontOn: TAction; |
Image2: TImage; |
GroupBox2: TGroupBox; |
Label13: TLabel; |
Label17: TLabel; |
Label18: TLabel; |
Label19: TLabel; |
Slider: TTrackBar; |
chbZoomOut: TCheckBox; |
CheckBox1: TCheckBox; |
btnGetTransparentcolor: TSpeedButton; |
btnCrop: TSpeedButton; |
btnFill: TSpeedButton; |
SpeedButton10: TSpeedButton; |
SpeedButton11: TSpeedButton; |
SpeedButton12: TSpeedButton; |
SpeedButton13: TSpeedButton; |
btnWand: TSpeedButton; |
btnMask: TSpeedButton; |
acLoadImage: TAction; |
acSaveImage: TAction; |
acGetTransparent: TAction; |
Label8: TLabel; |
panBColor: TPanel; |
Panel13: TPanel; |
EFromImage: TEdit; |
EToImage: TEdit; |
Label3: TLabel; |
LToImage: TLabel; |
chbAutoAply: TCheckBox; |
procedure chbAutoAplyClick(Sender: TObject); |
procedure pbDurationMouseUp(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure pbDurationMouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure cbEffectsListChange(Sender: TObject); |
procedure chbForceSizeClick(Sender: TObject); |
procedure acGetTransparentExecute(Sender: TObject); |
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure btnGetTransparentcolorClick(Sender: TObject); |
procedure btnResizeClick(Sender: TObject); |
procedure btnReplaceClick(Sender: TObject); |
procedure btnFontAnimationStartClick(Sender: TObject); |
procedure btnFontAnimationStopClick(Sender: TObject); |
procedure PreviewMemoChange(Sender: TObject); |
procedure PreviewTimerTimer(Sender: TObject; LagCount: Integer); |
procedure btnAUnderlineClick(Sender: TObject); |
procedure btnAItalicClick(Sender: TObject); |
procedure btnABoldClick(Sender: TObject); |
procedure btnFontGenerateClick(Sender: TObject); |
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure btnAllCharsClick(Sender: TObject); |
procedure pnlFGClick(Sender: TObject); |
procedure cbFontNameDrawItem(Control: TWinControl; Index: Integer; |
Rect: TRect; State: TOwnerDrawState); |
procedure pbAnimationSpeedMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure DXDraw1MouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure LoadImagedirectly1Click(Sender: TObject); |
procedure btnApplyClick(Sender: TObject); |
procedure pbDurationMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; |
Rect: TRect; State: TOwnerDrawState); |
procedure ListBox1MeasureItem(Control: TWinControl; Index: Integer; |
var Height: Integer); |
procedure ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer); |
procedure ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; |
State: TDragState; var Accept: Boolean); |
procedure ListBox1MouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure DXTimer1Timer(Sender: TObject; LagCount: Integer); |
procedure btnStopClick(Sender: TObject); |
procedure btnAddImagesClick(Sender: TObject); |
procedure btnClearAllClick(Sender: TObject); |
procedure btnUpSelectionClick(Sender: TObject); |
procedure btnDownSelectionClick(Sender: TObject); |
procedure btnDeleteSelectedClick(Sender: TObject); |
procedure btnGlueItClick(Sender: TObject); |
procedure btnPlayClick(Sender: TObject); |
procedure btnSaveClick(Sender: TObject); |
procedure btnExitClick(Sender: TObject); |
procedure FormDestroy(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
procedure ActionList1Update(Action: TBasicAction; |
var Handled: Boolean); |
procedure chbZoomOutClick(Sender: TObject); |
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure mainPageControlChange(Sender: TObject); |
private |
{ Private declarations } |
tmpPicture: TPicture; |
StartingPoint: TPoint; |
FDuration: Integer; |
ListObjects: TStringList; |
dX, dY: Integer; |
FFontStyles: TFontStyles; |
charArr: string; |
sizesArr: array of Integer; |
Zdvih: Integer; |
WPattern: Integer; |
InitIntInMs: Integer; |
WCounter: Integer; |
FOperationGlueIt: TOperationGlueIt; |
SelectionOfTransparentColor: Boolean; |
procedure WMDropFiles(var Message: TWMDropFiles); message wm_DropFiles; |
procedure RestructuralizeWithResize(NewWidth, NewHeight: Integer; TranspColor: TColor = clMaroon); |
procedure SetOperationGlueIt(const Value: TOperationGlueIt); |
procedure DoBitmapEffect(Picture: TPicture); |
public |
{ Public declarations } |
property Operation: TOperationGlueIt read FOperationGlueIt write SetOperationGlueIt; |
procedure LoadImageFromList(const iName: string; Image: TPicture; PatternWidth, |
PatternHeight: Integer; Transparent: Boolean; TransparentColor: Integer); |
procedure SaveImageIntoList(oItem: TPictureCollectionItem); |
end; |
var |
DXGlueItEditor: TDXGlueItEditor; |
implementation |
{$R *.DFM} |
uses {$IFDEF StandardDX}DirectDraw{$ELSE}DirectX{$ENDIF}; |
{ TEdit } |
function TEdit.GetAsInteger: Integer; |
begin |
try |
Result := StrToInt(Self.Text); |
except |
Result := 0; |
end; |
end; |
procedure TEdit.SetAsInteger(const Value: Integer); |
begin |
Self.Text := IntToStr(Value) |
end; |
procedure TDXGlueItEditor.btnStopClick(Sender: TObject); |
begin |
DXTimer1.Enabled := False; |
end; |
{ TDXGlueItEditor } |
procedure TDXGlueItEditor.btnAddImagesClick(Sender: TObject); |
var |
i: Integer; |
TI: TPicture; |
begin |
if OpenDialog1.Execute then |
if OpenDialog1.Files.Count > 0 then begin |
ListObjects.Clear; |
with OpenDialog1.Files do |
for I := 0 to Count - 1 do |
if FileExists(Strings[I]) then |
begin |
TI := TPicture.Create; |
TI.LoadFromFile(Strings[I]); |
EWidthOfImages.AsInteger := Max(EWidthOfImages.AsInteger, TI.Width); |
EHeightOfImages.AsInteger := Max(EHeightOfImages.AsInteger, TI.Height); |
ListObjects.AddObject(Strings[I], TI); |
end; |
ListBox1.Items.Assign(ListObjects); |
end; |
end; |
procedure TDXGlueItEditor.btnClearAllClick(Sender: TObject); |
var |
I: Integer; |
begin |
if MessageDlg('Do you really want delete all frames?', mtWarning, [mbYes, mbNo], 0) = mrNo then Exit; |
btnStop.Click; |
for I := 0 to ListBox1.Items.Count - 1 do (ListBox1.Items.Objects[I] as TPicture).Free; |
ListBox1.Clear; |
ListObjects.Clear; |
DXImageList1.Items.Clear; |
end; |
procedure TDXGlueItEditor.btnUpSelectionClick(Sender: TObject); |
begin |
if ListBox1.ItemIndex > 0 then begin |
btnStop.Click; |
ListBox1.Items.Move(ListBox1.ItemIndex, ListBox1.ItemIndex - 1); |
end; |
end; |
procedure TDXGlueItEditor.btnDownSelectionClick(Sender: TObject); |
begin |
if (ListBox1.ItemIndex <> -1) and (ListBox1.ItemIndex < (ListBox1.Items.Count - 1)) then begin |
btnStop.Click; |
ListBox1.Items.Move(ListBox1.ItemIndex, ListBox1.ItemIndex + 1); |
end; |
end; |
procedure TDXGlueItEditor.btnDeleteSelectedClick(Sender: TObject); |
begin |
if ListBox1.ItemIndex <> -1 then begin |
if MessageDlg('Do you want delete selected item?', mtWarning, [mbYes, mbNo], 0) = mrYes then begin |
(ListBox1.Items.Objects[ListBox1.ItemIndex] as TPicture).Free; |
ListObjects.Delete(ListBox1.ItemIndex); |
ListBox1.Items.Delete(ListBox1.ItemIndex); |
end; |
end; |
end; |
procedure TDXGlueItEditor.FormCreate(Sender: TObject); |
var |
cnt: Integer; |
begin |
DXImageList1.Items.MakeColorTable; |
DXDraw1.ColorTable := DXImageList1.Items.ColorTable; |
DXDraw1.DefColorTable := DXImageList1.Items.ColorTable; |
DXDraw1.UpdatePalette; |
tmpPicture := TPicture.Create; |
ListObjects := TStringList.Create; |
DragAcceptFiles(Handle, True); |
WPattern := 0; InitIntInMs := 200; //5 pict per sec |
WCounter := 0; |
for cnt := 0 to Screen.Fonts.Count - 1 do |
cbFontName.Items.Add(Screen.Fonts.Strings[cnt]); |
pbAnimationSpeed.Position := 200; |
pbDuration.Position := 5; |
mainPageControl.ActivePage := tsGlueIt; |
FontPageControl.ActivePage := tsPreviewFont; |
if chbZoomOut.Checked then Image1.OnMouseMove := Image1MouseMove |
else Image1.OnMouseMove := nil; |
Tag := 0; |
{$IFDEF VER4UP} |
pbAnimationSpeed.Smooth := True; |
pbDuration.Smooth := True; |
{$ENDIF} |
end; |
procedure TDXGlueItEditor.SaveImageIntoList(oItem: TPictureCollectionItem); |
begin |
oItem.Picture.Assign(DXImageList1.Items[0].Picture); |
oItem.Transparent := DXImageList1.Items[0].Transparent; |
oItem.TransparentColor := DXImageList1.Items[0].TransparentColor; |
oItem.Name := DXImageList1.Items[0].Name; |
oItem.PatternWidth := DXImageList1.Items[0].Width; |
oItem.PatternHeight := DXImageList1.Items[0].Height; |
end; |
procedure TDXGlueItEditor.LoadImageFromList(const iName: string; Image: TPicture; |
PatternWidth, PatternHeight: Integer; Transparent: Boolean; TransparentColor: Integer); |
{function for loading existing image from dximagelist do component editor} |
var |
D: TPictureCollectionItem; |
begin |
btnPlay.Click; |
DXImageList1.Items.Clear; |
D := TPictureCollectionItem(DXImageList1.Items.Add); |
D.Picture.Assign(Image); |
D.Name := Name; |
Image1.Picture.Assign(Image); |
D.PatternWidth := PatternWidth; |
D.PatternHeight := PatternHeight; |
D.Transparent := Transparent; |
D.TransparentColor := TransparentColor; |
DXImageList1.Items.Restore; |
ePatternWidth.AsInteger := PatternWidth; |
ePatternHeight.AsInteger := PatternHeight; |
end; |
procedure TDXGlueItEditor.btnGlueItClick(Sender: TObject); |
// function GetScale(SourceWidth, SourceHeight, TargetWidth, TargetHeight: Integer): Single; |
// from DIB unit |
// var |
// XScale, YScale: Single; |
// begin |
// XScale := 1; |
// YScale := 1; |
// if TargetWidth < SourceWidth then |
// XScale := TargetWidth / SourceWidth; |
// if TargetHeight < SourceHeight then |
// YScale := TargetHeight / SourceHeight; |
// Result := XScale; |
// if YScale < Result then |
// Result := YScale; |
// end; |
var |
i: Integer; |
XL, YL, X, Y, QX, QY: Integer; |
P: TPicture; |
C: Double; |
Rz: Integer; |
B, BB: TBitmap; Icon: TIcon; DIB: TDIB; |
CI: TPictureCollectionItem; |
ImageIsBigger: Boolean; |
OldName: string; |
begin |
XL := 0; YL := 0; |
B := TBitmap.Create; |
B.PixelFormat := pf24bit; |
try |
if chbForceSize.Checked then begin |
XL := EWidthOfImages.AsInteger; |
YL := EHeightOfImages.AsInteger; |
end |
else begin |
//must be the same size |
for i := 0 to ListBox1.Items.Count - 1 do begin |
P := ListBox1.Items.Objects[i] as TPicture; |
if Assigned(P) then begin |
XL := Max(XL, P.Width); |
YL := Max(YL, P.Height); |
end; |
end; |
end; |
//square od image |
C := Sqrt(ListBox1.Items.Count); |
Rz := Trunc(C); |
if Frac(C) > 0 then Inc(Rz); |
//dimension of Image |
B.Width := Rz * XL; |
B.Height := Rz * YL; |
{set color by user settings} |
B.Canvas.Brush.Color := panBColor.Color; |
B.Canvas.FillRect(Bounds(0, 0, B.Width, B.Height)); |
for i := 0 to ListBox1.Items.Count - 1 do begin |
P := ListBox1.Items.Objects[i] as TPicture; |
if Assigned(P) then begin |
if P.Graphic is TIcon then begin |
Icon := (P.Graphic as TIcon); |
BB := TBitmap.Create; |
try |
BB.Width := Icon.Width; |
BB.Height := Icon.Height; |
BB.Canvas.Draw(0, 0, Icon); |
BB.Transparent := True; |
P.Graphic := BB; |
finally |
BB.Free; |
end; |
end; |
X := (i mod Rz) * XL; |
Y := (i div Rz) * YL; |
if chbForceSize.Checked then begin |
ImageIsBigger := (P.Width > XL) or (P.Height > YL); |
if ImageIsBigger then begin |
{image will be crop} |
if chbCrop.Checked then begin |
B.Canvas.CopyRect(Bounds(X, Y, XL, YL), P.Bitmap.Canvas, Bounds(0, 0, XL, YL)) |
end |
else begin {image will be shrink} |
C := GetScale(P.Width, P.Height, XL, YL); |
DIB := TDIB.Create; |
try |
DIB.SetSize(P.Width, P.Height, 24); |
DIB.Canvas.Draw(0, 0, P.Graphic); |
DIB.DoResample(Round(P.Width * C), Round(P.Height * C), ftrLanczos3); |
B.Canvas.StretchDraw(Bounds(X, Y, Round(P.Width * C), Round(P.Height * C)), {P.Graphic} DIB); |
finally |
DIB.Free; |
end; |
end; |
end |
else begin |
QX := 0; |
QY := 0; |
if chbCentered.Checked then begin |
QX := (XL - P.Width) div 2; |
QY := (YL - P.Height) div 2; |
end; |
if not chbTransparent.Checked then |
B.Canvas.Draw(X + QX, Y + QY, P.Graphic) |
else |
B.Canvas.BrushCopy(Bounds(X + QX, Y + QY, P.Width, P.Height), P.Bitmap, Bounds(0, 0, P.Width, P.Height), P.Bitmap.Canvas.Pixels[0, P.Height - 1]); |
end; |
end |
else |
if not chbTransparent.Checked then |
B.Canvas.Draw(X, Y, P.Graphic) |
else |
B.Canvas.BrushCopy(Bounds(X, Y, XL, YL), P.Bitmap, Bounds(0, 0, XL, YL), P.Bitmap.Canvas.Pixels[0, P.Height - 1]); |
end; |
end; |
Image1.Picture.Assign(B); |
{reset after image assign} |
cbEffectsList.ItemIndex := -1; pbDuration.Position := 5; chbAutoAply.Checked := False; |
OldName := 'Test'; |
if DXImageList1.Items.Count > 0 then |
if Operation = ogiEdit then |
OldName := DXImageList1.Items[0].Name; {puvodni jmeno} |
DXImageList1.Items.Clear; |
CI := TPictureCollectionItem(DXImageList1.Items.Add); |
CI.Name := OldName; |
CI.Picture.Assign(B); |
CI.Transparent := chbTransparent.Checked; |
CI.PatternWidth := XL; |
CI.PatternHeight := YL; |
ePatternWidth.AsInteger := XL; |
ePatternHeight.AsInteger := YL; |
DXImageList1.Items.Restore; |
EFromImage.AsInteger := 1; |
EToImage.AsInteger := ListBox1.Items.Count; |
finally |
B.Free; |
end; |
mainPageControl.ActivePage := tsPreview; |
end; |
procedure TDXGlueItEditor.btnPlayClick(Sender: TObject); |
begin |
DXTimer1.Enabled := True; |
if Image1.Picture.Bitmap.Empty then |
btnStop.Click; |
end; |
procedure TDXGlueItEditor.btnSaveClick(Sender: TObject); |
begin |
if MessageDlg('Do you want save image to file?', mtWarning, [mbYes, mbNo], 0) = mrNo then Exit; |
if SaveDialog1.Execute then |
Image1.Picture.SaveToFile(SaveDialog1.FileName); |
end; |
procedure TDXGlueItEditor.btnExitClick(Sender: TObject); |
begin |
btnStop.Click; |
btnFontAnimationStop.Click; |
Tag := 1; |
Close |
end; |
function SpeedConst(InitValue, PerSec, LagCount: Integer): Integer; {$IFDEF VER9UP}inline; {$ENDIF} |
begin |
Result := InitValue + (PerSec * Round(LagCount / 1000)) |
end; |
procedure TDXGlueItEditor.DXTimer1Timer(Sender: TObject; LagCount: Integer); |
begin |
if DXImageList1.Items.Count <= 0 then Exit; |
if not DXDraw1.CanDraw then Exit; |
DXDraw1.Surface.Fill(DXDraw1.Surface.ColorMatch(clBlack)); |
DXDraw1.BeginScene; |
try |
{clear surface with predefined windows color} |
DXDraw1.Surface.Fill(DXDraw1.Surface.ColorMatch(clBlack)); |
//---------------------------------------------------------------------------- |
{All drawing here like} |
Inc(WCounter, LagCount); |
{timming} |
if WCounter > InitIntInMs then begin |
Inc(WPattern); |
if WPattern > DXImageList1.Items[0].PatternCount then WPattern := 0; |
{only for interval from EFromImage to EToImage} |
if WPattern > (EToImage.AsInteger - 1) then WPattern := EFromImage.AsInteger - 1; |
{reset counter} |
WCounter := 0; |
end; |
{drawing} |
with DXImageList1.Items[0] do |
Draw(DXDraw1.Surface, dX-(Width div 2), dY-(Height div 2), WPattern); |
//---------------------------------------------------------------------------- |
finally |
DXDraw1.EndScene; |
end; |
{ Draw FrameRate } |
with DXDraw1.Surface.Canvas do |
try |
Brush.Style := bsClear; |
Font.Color := clWhite; |
Font.Size := 10; |
Textout(3, 3, 'FPS: ' + IntToStr(DXTimer1.FrameRate)); |
if doHardware in DXDraw1.NowOptions then begin |
Textout(3, 14, 'Device: Hardware'); |
end |
else begin |
Textout(3, 14, 'Device: Software'); |
end; |
finally |
Release; { Indispensability } |
end; |
DXDraw1.Flip; |
end; |
procedure TDXGlueItEditor.FormDestroy(Sender: TObject); |
begin |
tmpPicture.Free; |
ListObjects.Free; |
DragAcceptFiles(Handle, False); |
end; |
procedure TDXGlueItEditor.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
begin |
StartingPoint.X := X; |
StartingPoint.Y := Y; |
end; |
procedure TDXGlueItEditor.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; |
State: TDragState; var Accept: Boolean); |
begin |
Accept := Source = ListBox1; |
end; |
procedure TDXGlueItEditor.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer); |
var |
DropPosition, StartPosition: Integer; |
DropPoint: TPoint; |
begin |
DropPoint.X := X; |
DropPoint.Y := Y; |
with Source as TListBox do |
begin |
StartPosition := ItemAtPos(StartingPoint, True); |
DropPosition := ItemAtPos(DropPoint, True); |
Items.Move(StartPosition, DropPosition); |
end; |
end; |
procedure TDXGlueItEditor.WMDropFiles(var Message: TWMDropFiles); |
var |
FileCount, I: Integer; |
FileName: PChar; |
FileNameSize: Integer; |
S: string; |
TI: TPicture; |
begin |
try |
FileCount := DragQueryFile(Message.Drop, Cardinal(-1), nil, 0); |
for I := 0 to FileCount - 1 do |
begin |
FileNameSize := DragQueryFile(Message.Drop, I, nil, 0); |
FileName := AllocMem(FileNameSize + 1); |
try |
DragQueryFile(Message.Drop, I, FileName, FileNameSize + 1); |
S := ExtractFileExt(Filename); |
if (S = '.bmp') or (S = '.dib') or (S = '.jpg') then begin |
TI := TPicture.Create; |
TI.LoadFromFile(Filename); |
ListBox1.Items.AddObject(FileName, TObject(TI)); |
end; |
finally |
FreeMem(FileName); |
end; |
end; |
finally |
DragFinish(Message.Drop); |
end; |
end; |
procedure TDXGlueItEditor.ListBox1MeasureItem(Control: TWinControl; Index: Integer; |
var Height: Integer); |
var |
I: TPicture; |
begin |
I := TPicture(ListObjects.Objects[Index]); |
if Assigned(I) then |
Height := I.Height; |
end; |
procedure TDXGlueItEditor.ListBox1DrawItem(Control: TWinControl; Index: Integer; |
Rect: TRect; State: TOwnerDrawState); |
var |
I: TPicture; Ri: TRect; S: string; A: array[0..255] of Char; |
Dest, Src: TRect; Icon: TIcon; B: TBitmap; |
begin |
ListBox1.Canvas.FillRect(Rect); |
I := ListBox1.Items.Objects[Index] as TPicture; |
if Assigned(I) then begin |
if I.Graphic is TIcon then begin |
Icon := (I.Graphic as TIcon); |
B := TBitmap.Create; |
try |
B.Width := Icon.Width; |
B.Height := Icon.Height; |
B.Canvas.Draw(0, 0, Icon); |
B.Transparent := True; |
I.Graphic := B; |
finally |
B.Free; |
end; |
end; |
Dest := Rect; |
Dest.Right := I.Width - 1; |
Src := Bounds(0, 0, I.Width, I.Height); |
if chbTransparent.Checked then |
ListBox1.Canvas.BrushCopy(Dest, I.Bitmap, Src, I.Bitmap.Canvas.Pixels[0, I.Height]) |
else |
ListBox1.Canvas.Draw(Rect.Left, Rect.Top, I.Graphic); |
Ri := Rect; |
Ri.Left := Ri.Left + 4 + I.Width; |
S := ExtractFileName(ListBox1.Items[Index]); |
DrawText(ListBox1.Canvas.Handle, StrPCopy(A, S), -1, Ri, dt_SingleLine or dt_Left or dt_VCenter); |
end; |
end; |
procedure TDXGlueItEditor.pbDurationMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
var |
newPosition: integer; |
begin |
with Sender as TProgressBar do begin |
if ssLeft in Shift then |
begin |
Cursor := crHSplit; |
newPosition := Round(x * Max / ClientWidth); |
Position := newPosition; |
end |
else |
begin |
Cursor := crDefault; |
end; |
FDuration := Position; |
LDuration.Caption := Format('Duration (%d)', [FDuration]); |
end; |
if ssLeft in Shift then |
if chbAutoAply.Checked and (cbEffectsList.ItemIndex <> -1) and not tmpPicture.Graphic.Empty then begin |
DoBitmapEffect(tmpPicture); |
Application.ProcessMessages; |
end; |
end; |
procedure TDXGlueItEditor.DoBitmapEffect(Picture: TPicture); |
var |
I, dX, dY: Integer; |
TT: TDIB; |
tbp: Integer; |
begin |
TT := TDIB.Create; |
try |
if Assigned(Picture.Bitmap) then |
TT.Assign(Picture.Bitmap) |
else begin |
TT.Width := Picture.Width; |
TT.Height := Picture.Height; |
TT.Canvas.Draw(0, 0, Picture.Graphic); |
end; |
dX := TT.Width; |
dY := TT.Height; |
if pbDuration.Position > 5 then |
begin |
dX := Trunc(pbDuration.Position / 100 * TT.Width); |
dY := Trunc(pbDuration.Position / 100 * TT.Height); |
end; |
tbp := pbDuration.Position; |
{ E F F E C T S } |
with TT do |
case cbEffectsList.ItemIndex of |
0: DoGaussianBlur(tbp); |
1: DoSplitBlur(tbp); |
2: DoAddColorNoise(tbp * 3); |
3: DoAddMonoNoise(tbp * 3); |
4: for i := 1 to tbp do DoAntiAlias; |
5: DoContrast(tbp * 3); |
6: DoFishEye(tbp div 10 + 1); |
7: DoLightness(tbp * 2); |
8: DoDarkness(tbp * 2); |
9: DoSaturation(255 - ((tbp * 255) div 100)); |
10: DoMosaic(tbp div 2); |
11: DoTwist(200 - (tbp * 2) + 1); |
12: DoSplitlight(tbp div 20); |
13: DoTile(tbp div 10); |
14: DoSpotLight(tbp, Rect(tbp, tbp, tbp + tbp * 2, tbp + tbp * 2)); |
15: DoTrace(tbp div 10); |
16: for i := 1 to tbp do DoEmboss; |
17: DoSolorize(255 - ((tbp * 255) div 100)); |
18: DoPosterize(((tbp * 255) div 100) + 1); |
19: DoGrayscale; |
20: DoInvert; |
21: DoBrightness(tbp); |
22: DoColorize(clRed, clBlue); |
{resampling functions} |
23: DoResample(dX, dY, ftrBox); |
24: DoResample(dX, dY, ftrTriangle); |
25: DoResample(dX, dY, ftrHermite); |
26: DoResample(dX, dY, ftrBell); |
27: DoResample(dX, dY, ftrBSpline); |
28: DoResample(dX, dY, ftrLanczos3); |
29: DoResample(dX, dY, ftrMitchell); |
end; {Case} |
Image1.Picture.Bitmap := TT.CreateBitmapFromDIB; |
Image1.Invalidate; |
finally |
TT.Free; |
end; |
end; |
procedure TDXGlueItEditor.btnApplyClick(Sender: TObject); |
begin |
if not Assigned(Image1.Picture.Graphic) then begin |
MessageDlg('Not graphics found in image, please glue it first.', mtWarning, [mbOK], 0); |
Exit; |
end; |
btnApply.Enabled := False; |
Screen.Cursor := crHourGlass; |
try |
DoBitmapEffect(Image1.Picture); Application.ProcessMessages; |
finally |
Screen.Cursor := crDefault; |
btnApply.Enabled := True; |
end; |
end; |
procedure TDXGlueItEditor.LoadImagedirectly1Click(Sender: TObject); |
var |
Q: TPictureCollectionItem; |
begin |
OpenDialog1.Options := OpenDialog1.Options - [ofAllowMultiSelect]; |
try |
if OpenDialog1.Execute then begin |
Image1.Picture.LoadFromFile(OpenDialog1.FileName); |
DXImageList1.Items.Clear; |
Q := TPictureCollectionItem(DXImageList1.Items.Add); |
Q.Name := ExtractFileName(OpenDialog1.FileName); |
Q.Picture.LoadFromFile(OpenDialog1.FileName); |
Q.Transparent := True; |
if Q.Picture.Graphic is TBitmap then begin |
Q.TransparentColor := Q.Picture.Bitmap.Canvas.Pixels[Q.Width - 1, Q.Height - 1]; |
panTColor.Color := Q.TransparentColor; |
end; |
DXImageList1.Items.Restore; |
end; |
finally |
OpenDialog1.Options := OpenDialog1.Options + [ofAllowMultiSelect] |
end; |
end; |
procedure TDXGlueItEditor.DXDraw1MouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
begin |
dX := X; |
dY := Y; |
end; |
procedure TDXGlueItEditor.pbAnimationSpeedMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
var |
newPosition: integer; |
begin |
with Sender as TProgressBar do begin |
if ssLeft in Shift then |
begin |
Cursor := crHSplit; |
newPosition := Round(x * Max / ClientWidth); |
Position := newPosition; |
end |
else |
begin |
Cursor := crDefault; |
end; |
InitIntInMs := Position; |
LAnimationSpeed.Caption := Format('Animation speed (%f/sec):', [InitIntInMs / 1000]); |
end; |
end; |
procedure TDXGlueItEditor.cbFontNameDrawItem(Control: TWinControl; Index: Integer; |
Rect: TRect; State: TOwnerDrawState); |
begin |
with (Control as TComboBox).Canvas do |
begin |
Font.Name := Screen.Fonts.Strings[Index]; |
//Font.Size := seSize.AsInteger; |
FillRect(Rect); |
TextOut(Rect.Left, Rect.Top, PChar(Screen.Fonts.Strings[Index])) |
end; |
end; |
procedure TDXGlueItEditor.pnlFGClick(Sender: TObject); |
begin |
ColorDialog.Color := (Sender as TPanel).Color; |
if ColorDialog.Execute then |
(Sender as TPanel).Color := ColorDialog.Color; |
end; |
procedure TDXGlueItEditor.btnAllCharsClick(Sender: TObject); |
var |
I: Integer; |
S: string; |
begin |
S := ''; |
for I := 0 to 255 do |
if Char(I) < ' ' then S := S + ' ' else S := S + Char(I); |
memAlphabet.Lines.Add(S); |
end; |
procedure TDXGlueItEditor.Image1MouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
begin |
if ssShift in Shift then with Image1.Canvas do begin |
Brush.Color := panTColor.Color; |
Brush.Style := bsSolid; |
FloodFill(X, Y, Pixels[X, Y], fsSurface); |
end; |
end; |
procedure TDXGlueItEditor.btnFontGenerateClick(Sender: TObject); |
var |
S, vizfntname: string; |
C: Double; |
Rz, vX, vY, I, absX, absY, V, X, Y, offC: Integer; |
B: TBitmap; |
LogFont: TLogFont; |
fnt: TFont; |
dib, alpha: TDIB; |
q, d: TPictureCollectionItem; |
begin |
{no preview} |
btnFontAnimationStop.Click; |
{private font def.} |
fnt := TFont.Create; |
try |
fnt.Assign(cbFontName.Font); |
V := eOpacity.AsInteger; |
fnt.Color := RGB(V, V, V); //0..255 |
fnt.Name := cbFontName.Text; |
fnt.Size := FontSize.AsInteger; |
fnt.Style := FFontStyles; |
{antialiased/ttf} |
if not cbAntialias.Checked then begin |
GetObject(fnt.Handle, SizeOf(LogFont), Addr(LogFont)); |
with LogFont do begin |
if cbAntialias.Checked then |
lfQuality := ANTIALIASED_QUALITY |
else |
lfQuality := NONANTIALIASED_QUALITY; |
lfOutPrecision := OUT_TT_ONLY_PRECIS; |
end; |
fnt.Handle := CreateFontIndirect(LogFont); |
end; |
{get set of chars} |
S := TrimRight(memAlphabet.Lines.Text); |
if S = '' then begin |
btnAllChars.Click; |
S := TrimRight(memAlphabet.Lines.Text); |
end; |
{target square} |
C := Sqrt(Length(S)); |
Rz := Trunc(C); |
if Frac(C) > 0 then Inc(Rz); |
{generate mask font} |
B := TBitmap.Create; |
try |
B.PixelFormat := pf8bit; |
B.Canvas.Brush.Color := clBlack; |
B.Canvas.Font.Assign(fnt); |
{absolute sizes} |
charArr := s; |
SetLength(sizesArr, Length(charArr)); |
vY := B.Canvas.TextHeight(S); Zdvih := vY; |
vX := 0; |
for I := 0 to Length(S) - 1 do begin |
sizesarr[I] := B.Canvas.TextWidth(S[I + 1]); |
vX := Max(vX, sizesarr[I]); |
end; |
offC := eOffset.AsInteger; |
vX := vX + offC; |
vY := vY + offC; |
absX := Rz * vX; |
absY := Rz * vY; |
B.Width := absX; |
B.Height := absY; |
B.Canvas.FillRect(Bounds(0, 0, B.Width, B.Height)); |
B.Canvas.Brush.Style := bsClear; |
{shadow as offset} |
if eOffset.AsInteger > 0 then |
for I := 0 to Length(S) - 1 do begin |
X := offC + (i mod Rz) * vX; |
Y := offC + (i div Rz) * vY; |
B.Canvas.TextOut(X, Y, S[I + 1]); |
end; |
{masked chars} |
B.Canvas.Font.Color := clWhite; |
for I := 0 to Length(S) - 1 do begin |
X := (i mod Rz) * vX; |
Y := (i div Rz) * vY; |
B.Canvas.TextOut(X, Y, S[I + 1]); |
end; |
imgMask.Picture.Assign(B); |
finally |
B.Free; |
end; |
{generate font} |
B := TBitmap.Create; |
try |
B.PixelFormat := pf24bit; |
B.Width := absX; |
B.Height := absY; |
B.Canvas.Brush.Color := pnlBG.Color; |
B.Canvas.Font.Assign(fnt); |
B.Canvas.Font.Color := pnlFG.Color; |
B.Width := absX; |
B.Height := absY; |
B.Canvas.FillRect(Bounds(0, 0, B.Width, B.Height)); |
B.Canvas.Brush.Style := bsClear; |
for I := 0 to Length(S) - 1 do begin |
X := (i mod Rz) * vX; |
Y := (i div Rz) * vY; |
B.Canvas.TextOut(X, Y, S[I + 1]); |
end; |
imgFont.Picture.Assign(B); |
finally |
B.Free; |
end; |
finally |
vizfntname := fnt.name; |
fnt.Free; |
end; |
Sources.Lines.Clear; |
Sources.Lines.Add('{Generated constants for simple use of the font}'); |
Sources.Lines.Add('const'); |
Sources.Lines.Add(Format(' offsY = %d;', [Zdvih])); |
Sources.Lines.Add(Format(' offYbyOrder: array [0..%d] of Integer = (', [Length(charArr) - 1])); |
s := ''; |
for i := Low(sizesArr) to High(sizesArr) do |
s := s + IntToStr(sizesArr[i]) + ', '; |
Delete(s, Length(s) - 2, 2); |
Sources.Lines.Add(s); |
Sources.Lines.Add(');'); |
dib := TDIB.Create; |
alpha := TDIB.Create; |
try |
alpha.Assign(imgMask.Picture.Bitmap); |
dib.Assign(imgFont.Picture.Bitmap); |
dib.AssignAlphaChannel(alpha); |
{for preview} |
FontDXImageList.Items.Clear; |
q := TPictureCollectionItem(FontDXImageList.Items.Add); |
q.Picture.Assign(dib); |
q.Name := vizfntname; |
q.PatternWidth := vX; |
q.PatternHeight := vY; |
q.Transparent := True; |
q.TransparentColor := pnlBG.Color; |
FontDXImageList.Items.Restore; |
{showing} |
Image1.Picture := nil; |
Image1.Picture.Bitmap := dib.CreateBitmapFromDIB; |
{for exchange with master thread} |
DXImageList1.Items.Clear; |
d := TPictureCollectionItem(DXImageList1.Items.Add); |
d.Picture.Assign(dib); |
d.Name := vizfntname; |
d.PatternWidth := vX; |
d.PatternHeight := vY; |
d.Transparent := True; |
d.TransparentColor := pnlBG.Color; |
DXImageList1.Items.Restore; |
finally |
alpha.Free; |
dib.Free; |
end; |
if PreviewMemo.Lines.Count > 0 then |
btnFontAnimationStart.Click; |
end; |
procedure TDXGlueItEditor.btnABoldClick(Sender: TObject); |
begin |
if btnABold.Down then FFontStyles := FFontStyles + [fsBold] |
else FFontStyles := FFontStyles - [fsBold] |
end; |
procedure TDXGlueItEditor.btnAItalicClick(Sender: TObject); |
begin |
if btnAItalic.Down then FFontStyles := FFontStyles + [fsItalic] |
else FFontStyles := FFontStyles - [fsItalic] |
end; |
procedure TDXGlueItEditor.btnAUnderlineClick(Sender: TObject); |
begin |
if btnAUnderline.Down then FFontStyles := FFontStyles + [fsUnderline] |
else FFontStyles := FFontStyles - [fsUnderline] |
end; |
procedure TDXGlueItEditor.PreviewTimerTimer(Sender: TObject; LagCount: Integer); |
var i, x, y, j: Integer; |
s: string; |
begin |
if not PreviewDraw.CanDraw then Exit; |
PreviewDraw.Surface.Fill(PreviewDraw.Surface.ColorMatch(pnlBG.Color)); |
PreviewDraw.BeginScene; |
PreviewDraw.Surface.FillRect(Bounds(0, 0, PreviewDraw.Width, PreviewDraw.Height), pnlBG.Color); |
y := 5; |
for i := 0 to PreviewMemo.Lines.Count - 1 do begin |
s := PreviewMemo.Lines[i]; |
x := 5; |
for j := 1 to Length(s) do begin |
FontDXImageList.Items[0].Draw(PreviewDraw.Surface, x, y, Ord(s[j])); |
x := x + sizesarr[Ord(s[j])]; |
end; |
y := y + Zdvih; |
end; |
PreviewDraw.EndScene; |
PreviewDraw.Flip; |
end; |
procedure TDXGlueItEditor.PreviewMemoChange(Sender: TObject); |
begin |
PreviewTimer.Enabled := PreviewMemo.Lines.Text <> ''; |
end; |
procedure TDXGlueItEditor.btnFontAnimationStopClick(Sender: TObject); |
begin |
PreviewTimer.Enabled := False; |
PreviewDraw.Surface.FillRect(Bounds(0, 0, PreviewDraw.Width, PreviewDraw.Height), pnlBG.Color); |
PreviewDraw.Flip; |
end; |
procedure TDXGlueItEditor.btnFontAnimationStartClick(Sender: TObject); |
begin |
PreviewTimer.Enabled := True; |
end; |
procedure TDXGlueItEditor.RestructuralizeWithResize(NewWidth, NewHeight: Integer; TranspColor: TColor = clMaroon); |
var |
C: Double; |
Rz: Integer; |
Q: TPictureCollectionItem; |
IMG: TBitmap; |
DIB: TDIB; |
I, X, Y, dX, dY: Integer; |
DDS: TDirectDrawSurface; |
begin |
dX := DXImageList1.Items[0].PatternWidth; |
dY := DXImageList1.Items[0].PatternHeight; |
if NewWidth <> dX then dX := NewWidth; |
if NewHeight <> dY then dY := NewHeight; |
{target square} |
C := Sqrt(DXImageList1.Items[0].PatternCount); |
Rz := Trunc(C); |
if Frac(C) > 0 then Inc(Rz); |
{new picture}; |
IMG := TBitmap.Create; {glued picture} |
DIB := TDIB.Create; {converted sub-image} |
DDS := TDirectDrawSurface.Create(DXDraw1.DDraw); {dds} |
DDS.SetSize(dX, dY); |
{note: there occur error, when surface is not self, but nothing created} |
{for this correct run has to set size as power two and must be remaps to mesh} |
{or better simple turn off D3D acceleration} |
{$IFDEF D3D_deprecated} |
DXDraw1.Options := DXDraw1.Options - [do3d]; // dds may be any size |
{$ENDIF} |
try |
IMG.Width := Rz * dX; {new size} |
IMG.Height := Rz * dY; |
IMG.PixelFormat := pf24bit; {implicit} |
IMG.Canvas.Brush.Color := clMaroon; {fill it wit} |
IMG.Canvas.FillRect(Bounds(0, 0, IMG.Width, IMG.Height)); {fill now} |
{for all non restructuralized image} |
for i := 0 to DXImageList1.Items[0].PatternCount - 1 do begin |
{refill by transparent color as background} |
DDS.Fill(DDS.ColorMatch(TranspColor)); |
{draw sub-image to dds} |
DXImageList1.Items[0].Draw(DDS, 0, 0, i); |
{convert to dib} |
DIB.Assign(DDS); |
{draw to new position} |
X := (i mod Rz) * dX; |
Y := (i div Rz) * dY; |
IMG.Canvas.Draw(X, Y, DIB) |
end; |
{for preview} |
Image1.Picture.Assign(IMG); |
{to collection item} |
Q := TPictureCollectionItem(DXImageList1.Items.Add); |
Q.Picture.Assign(IMG); |
Q.PatternWidth := dX; |
Q.PatternHeight := dY; |
Q.Name := DXImageList1.Items[0].Name; //it has to have name |
Q.Transparent := DXImageList1.Items[0].Transparent; |
Q.TransparentColor := DXImageList1.Items[0].TransparentColor; |
{original image get out} |
{$IFNDEF VER5UP} |
DXImageList1.Items[0].Free; |
{$ELSE} |
DXImageList1.Items.Delete(0); |
{$ENDIF} |
{Indispensability restore} |
DXImageList1.Items.Restore; |
finally |
{freeing resources} |
IMG.Free; |
DIB.Free; |
DDS.Free; |
{$IFDEF D3D_deprecated} |
DXDraw1.Options := DXDraw1.Options + [do3d]; |
{$ENDIF} |
end; |
end; |
procedure TDXGlueItEditor.btnReplaceClick(Sender: TObject); |
begin |
if DXImageList1.Items.Count > 0 then |
if (ePatternWidth.AsInteger > 0) and (ePatternHeight.AsInteger > 0) then begin |
{must be set subimage first} |
if DXImageList1.Items[0].PatternWidth <> ePatternWidth.AsInteger then |
DXImageList1.Items[0].PatternWidth := ePatternWidth.AsInteger; |
if DXImageList1.Items[0].PatternHeight <> ePatternHeight.AsInteger then |
DXImageList1.Items[0].PatternHeight := ePatternHeight.AsInteger; |
DXImageList1.Items.Restore; |
RestructuralizeWithResize(DXImageList1.Items[0].PatternWidth, |
DXImageList1.Items[0].PatternHeight, panTColor.Color); |
end |
else |
MessageDlg('Please set subimage size first!', mtConfirmation, [mbOK], 0); |
end; |
procedure TDXGlueItEditor.btnResizeClick(Sender: TObject); |
begin |
if DXImageList1.Items.Count > 0 then {contain image} |
if (ePatternWidth.AsInteger > 0) and (ePatternHeight.AsInteger > 0) then begin |
{must be set subimage first} |
if DXImageList1.Items[0].PatternWidth <> ePatternWidth.AsInteger then |
DXImageList1.Items[0].PatternWidth := ePatternWidth.AsInteger; |
if DXImageList1.Items[0].PatternHeight <> ePatternHeight.AsInteger then |
DXImageList1.Items[0].PatternHeight := ePatternHeight.AsInteger; |
DXImageList1.Items.Restore; |
RestructuralizeWithResize(ePatternWidth.AsInteger, ePatternHeight.AsInteger, panTColor.Color); |
end |
else |
MessageDlg('Please set subimage size first!', mtConfirmation, [mbOK], 0); |
end; |
procedure TDXGlueItEditor.ActionList1Update(Action: TBasicAction; |
var Handled: Boolean); |
begin |
btnAllChars.Enabled := Trim(memAlphabet.Lines.Text) = ''; |
acDeleteAll.Enabled := ListBox1.Items.Count > 0; |
acDeleteOne.Enabled := ListBox1.ItemIndex <> -1; |
acSaveToFile.Enabled := not Image1.Picture.Bitmap.Empty; |
acGlueIt.Enabled := ListBox1.Items.Count > 0; |
btnGetTransparentcolor.Enabled := not Image1.Picture.Bitmap.Empty; |
end; |
procedure TDXGlueItEditor.chbZoomOutClick(Sender: TObject); |
begin |
if (Sender as TCheckBox).Checked then Image1.OnMouseMove := Image1MouseMove |
else Image1.OnMouseMove := nil; |
end; |
procedure TDXGlueItEditor.Image1MouseMove(Sender: TObject; |
Shift: TShiftState; X, Y: Integer); |
var |
Srect, Drect: TRect; |
iWidth, iHeight, DmX, DmY: Integer; |
iTmpX, iTmpY: Real; |
C: TCanvas; |
hDesktop: Hwnd; |
dx, dy: Integer; |
PP: TPoint; |
begin |
PP := Image1.ClientToScreen(Point(X, Y)); |
dx := PP.x; |
dy := PP.y; |
hDesktop := GetDesktopWindow; |
iWidth := Image2.Width; |
iHeight := Image2.Height; |
Drect := Rect(0, 0, iWidth, iHeight); |
iTmpX := iWidth / (Slider.Position * 4); |
iTmpY := iHeight / (Slider.Position * 4); |
Srect := Rect(dx, dy, dx, dy); |
InflateRect(Srect, Round(iTmpX), Round(iTmpY)); |
if Srect.Left < 0 then OffsetRect(Srect, -Srect.Left, 0); |
if Srect.Top < 0 then OffsetRect(Srect, 0, -Srect.Top); |
if Srect.Right > Screen.Width then OffsetRect(Srect, -(Srect.Right - Screen.Width), 0); |
if Srect.Bottom > Screen.Height then OffsetRect(Srect, 0, -(Srect.Bottom - Screen.Height)); |
C := TCanvas.Create; |
try |
C.Handle := GetDC(GetDesktopWindow); |
Image2.Canvas.CopyRect(Drect, C, Srect); |
finally |
ReleaseDC(hDesktop, C.Handle); |
C.Free; |
end; |
with Image2.Canvas do begin |
DmX := Slider.Position * 2 * (dX - Srect.Left); |
DmY := Slider.Position * 2 * (dY - Srect.Top); |
MoveTo(DmX - (iWidth div 4), DmY); // - |
LineTo(DmX + (iWidth div 4), DmY); // - |
MoveTo(DmX, DmY - (iHeight div 4)); // | |
LineTo(DmX, DmY + (iHeight div 4)); // | |
end; |
end; |
procedure TDXGlueItEditor.mainPageControlChange(Sender: TObject); |
begin |
Image2.Visible := mainPageControl.ActivePage = tsPreview; |
end; |
procedure TDXGlueItEditor.SetOperationGlueIt(const Value: TOperationGlueIt); |
begin |
FOperationGlueIt := Value; |
if FOperationGlueIt = ogiNew then |
mainPageControl.ActivePage := tsGlueIt |
else |
mainPageControl.ActivePage := tsPreview; |
end; |
procedure TDXGlueItEditor.btnGetTransparentcolorClick(Sender: TObject); |
begin |
SelectionOfTransparentColor := (Sender as TSpeedButton).Down; |
end; |
procedure TDXGlueItEditor.Image1MouseUp(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
begin |
if SelectionOfTransparentColor then begin |
panTColor.Color := Image1.Picture.Bitmap.Canvas.Pixels[X, Y]; |
btnGetTransparentcolor.Down := False; |
SelectionOfTransparentColor := False; |
end; |
end; |
procedure TDXGlueItEditor.acGetTransparentExecute(Sender: TObject); |
begin |
SelectionOfTransparentColor := (Sender as TSpeedButton).Down; |
end; |
procedure TDXGlueItEditor.chbForceSizeClick(Sender: TObject); |
begin |
EWidthOfImages.Enabled := chbForceSize.Checked; |
LWidthOfImages.Enabled := chbForceSize.Checked; |
EHeightOfImages.Enabled := chbForceSize.Checked; |
LHeightOfImages.Enabled := chbForceSize.Checked; |
chbCentered.Enabled := chbForceSize.Checked; |
chbCrop.Enabled := chbForceSize.Checked; |
end; |
procedure TDXGlueItEditor.cbEffectsListChange(Sender: TObject); |
begin |
if cbEffectsList.ItemIndex <> -1 then |
if Image1.Picture.Bitmap.Empty then begin |
ShowMessage('Image has not to be empty for effects!'); |
cbEffectsList.ItemIndex := -1; |
//tmpBitmap.Assign(Image1.Picture.Bitmap); |
end; |
end; |
procedure TDXGlueItEditor.pbDurationMouseDown(Sender: TObject; |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
begin |
if chbAutoAply.Checked then |
if not Image1.Picture.Bitmap.Empty then begin |
tmpPicture.Assign(Image1.Picture.Bitmap); //save default image |
if not tmpPicture.Graphic.Empty then begin |
DoBitmapEffect(tmpPicture); |
Application.ProcessMessages; |
end; |
end; |
end; |
procedure TDXGlueItEditor.pbDurationMouseUp(Sender: TObject; |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
begin |
if chbAutoAply.Checked then |
if not Image1.Picture.Bitmap.Empty then |
if (MessageDlg('Do you want make changes permanent?', mtConfirmation, [mbYes, mbNo], 0) = mrNo) then |
Image1.Picture.Bitmap.Assign(tmpPicture); //restore default image |
end; |
procedure TDXGlueItEditor.chbAutoAplyClick(Sender: TObject); |
begin |
btnApply.Enabled := not chbAutoAply.Checked; |
end; |
end. |
/VCL_DELPHIX_D6/DXInptEdit.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DXMapEdit.dfm |
---|
0,0 → 1,298 |
object DelphiXMapEditForm: TDelphiXMapEditForm |
Left = 320 |
Top = 226 |
Width = 618 |
Height = 442 |
Caption = 'Background Sprite Map Editor' |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = True |
Position = poScreenCenter |
OnCreate = FormCreate |
OnDestroy = FormDestroy |
PixelsPerInch = 96 |
TextHeight = 13 |
object pnlRight: TPanel |
Left = 467 |
Top = 0 |
Width = 143 |
Height = 408 |
Align = alRight |
BevelOuter = bvNone |
TabOrder = 0 |
object CancelButton: TButton |
Left = 5 |
Top = 40 |
Width = 73 |
Height = 25 |
Cancel = True |
Caption = 'Cancel' |
ModalResult = 2 |
TabOrder = 0 |
end |
object DelphiXMapEditPropertiesPane: TPanel |
Left = 0 |
Top = 72 |
Width = 138 |
Height = 267 |
BevelOuter = bvNone |
BorderStyle = bsSingle |
TabOrder = 1 |
end |
object OKButton: TButton |
Left = 5 |
Top = 8 |
Width = 73 |
Height = 25 |
Caption = 'OK' |
Default = True |
ModalResult = 1 |
TabOrder = 2 |
OnClick = OKButtonClick |
end |
end |
object pnlLeft: TPanel |
Left = 0 |
Top = 0 |
Width = 467 |
Height = 408 |
Align = alClient |
BevelOuter = bvNone |
BorderWidth = 8 |
TabOrder = 1 |
object pblBase: TPanel |
Left = 8 |
Top = 8 |
Width = 451 |
Height = 392 |
Align = alClient |
BevelOuter = bvNone |
BorderWidth = 4 |
BorderStyle = bsSingle |
TabOrder = 0 |
object Panel1: TPanel |
Left = 4 |
Top = 61 |
Width = 439 |
Height = 323 |
Align = alClient |
BevelOuter = bvNone |
BorderWidth = 1 |
Caption = 'Panel1' |
TabOrder = 1 |
object Splitter1: TSplitter |
Left = 114 |
Top = 1 |
Width = 3 |
Height = 321 |
Cursor = crHSplit |
end |
object PicturesToChip: TListBox |
Left = 1 |
Top = 1 |
Width = 113 |
Height = 321 |
Align = alLeft |
DragMode = dmAutomatic |
ItemHeight = 16 |
PopupMenu = PopupMenu1 |
Style = lbOwnerDrawVariable |
TabOrder = 0 |
Visible = False |
OnDrawItem = PicturesToChipDrawItem |
OnMeasureItem = PicturesToChipMeasureItem |
end |
object ScrollBox1: TScrollBox |
Left = 117 |
Top = 1 |
Width = 321 |
Height = 321 |
Align = alClient |
TabOrder = 1 |
object MapArea: TDrawGrid |
Left = 1 |
Top = 1 |
Width = 165 |
Height = 165 |
TabStop = False |
BorderStyle = bsNone |
DefaultColWidth = 32 |
DefaultRowHeight = 32 |
FixedCols = 0 |
FixedRows = 0 |
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected] |
PopupMenu = PopupMenu2 |
ScrollBars = ssNone |
TabOrder = 0 |
Visible = False |
OnDblClick = MapAreaDblClick |
OnDragDrop = MapAreaDragDrop |
OnDragOver = MapAreaDragOver |
OnDrawCell = MapAreaDrawCell |
OnMouseDown = MapAreaMouseDown |
OnMouseMove = MapAreaMouseMove |
end |
end |
end |
object pnlLabels: TPanel |
Left = 4 |
Top = 4 |
Width = 439 |
Height = 57 |
Align = alTop |
BevelOuter = bvNone |
TabOrder = 0 |
object BtnSetSize: TSpeedButton |
Left = 413 |
Top = 3 |
Width = 21 |
Height = 46 |
Hint = 'Set up size.' |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00DDDDDDDDDDDD |
DDDDDDDDDDDDDDD0DDDDDDDDDDDDDD080DDDDDDDDDDDD080DDDDDDDDDDDD080D |
DDDDDDDDDDD080DDDDDDDDDDDD080DDDDDDDDDDDD080DDDDDDDDDDD0080DDDDD |
DDDDDD0FF0DDDDDDDDDDDD0FF0DDDDDDDDDDDD0F0DDDDDDDDDDDDD00DDDDDDDD |
DDDDDD0DDDDDDDDDDDDDDD0DDDDDDDDDDDDDDDDDDDDDDDDDDDDD} |
ParentShowHint = False |
ShowHint = True |
OnClick = BtnSetSizeClick |
end |
object LAreaOfChips: TLabel |
Left = 121 |
Top = 44 |
Width = 234 |
Height = 13 |
Caption = 'Area of Chips (doubleclick to properties change):' |
FocusControl = ScrollBox1 |
Transparent = True |
end |
object LHeight: TLabel |
Left = 288 |
Top = 31 |
Width = 46 |
Height = 13 |
Caption = 'Chip size:' |
FocusControl = EHeight |
end |
object LImageToSet: TLabel |
Left = 5 |
Top = 5 |
Width = 109 |
Height = 13 |
Caption = 'Image by name to set:' |
FocusControl = ImageToSet |
end |
object LMapSizeX: TLabel |
Left = 242 |
Top = 7 |
Width = 45 |
Height = 13 |
Caption = 'Map size:' |
FocusControl = eMapSizeX |
end |
object LMapSizeY: TLabel |
Left = 347 |
Top = 7 |
Width = 6 |
Height = 13 |
Caption = 'x' |
FocusControl = eMapSizeY |
end |
object LPicturesToChip: TLabel |
Left = 5 |
Top = 44 |
Width = 42 |
Height = 13 |
Caption = 'Pictures:' |
FocusControl = PicturesToChip |
end |
object LWidth: TLabel |
Left = 370 |
Top = 31 |
Width = 6 |
Height = 13 |
Caption = 'x' |
FocusControl = EWidth |
end |
object EHeight: TEdit |
Left = 334 |
Top = 28 |
Width = 32 |
Height = 21 |
TabOrder = 0 |
Text = '32' |
end |
object eMapSizeX: TSpinEdit |
Left = 293 |
Top = 4 |
Width = 50 |
Height = 22 |
MaxValue = 128 |
MinValue = 1 |
TabOrder = 1 |
Value = 1 |
end |
object eMapSizeY: TSpinEdit |
Left = 360 |
Top = 4 |
Width = 50 |
Height = 22 |
MaxValue = 128 |
MinValue = 1 |
TabOrder = 2 |
Value = 1 |
end |
object EWidth: TEdit |
Left = 378 |
Top = 28 |
Width = 32 |
Height = 21 |
TabOrder = 3 |
Text = '32' |
end |
object ImageToSet: TComboBox |
Left = 5 |
Top = 19 |
Width = 153 |
Height = 21 |
Style = csDropDownList |
Enabled = False |
ItemHeight = 13 |
TabOrder = 4 |
OnChange = ImageToSetChange |
end |
end |
end |
end |
object PopupMenu1: TPopupMenu |
OnPopup = PopupMenu1Popup |
Left = 104 |
Top = 320 |
object Fillall1: TMenuItem |
Caption = 'Fill all' |
OnClick = Fillall1Click |
end |
end |
object PopupMenu2: TPopupMenu |
OnPopup = PopupMenu2Popup |
Left = 256 |
Top = 200 |
object ClearOneChip1: TMenuItem |
Caption = 'Clear One Chip' |
OnClick = ClearOneChip1Click |
end |
object Clear1: TMenuItem |
Caption = 'Clear All Chips' |
GroupIndex = 1 |
OnClick = Clear1Click |
end |
end |
end |
/VCL_DELPHIX_D6/DXMapEdit.pas |
---|
0,0 → 1,522 |
unit DXMapEdit; |
//(c)2007 Jaro Benes |
//All Rights Reserved |
{ |
Complex application for users of unDelphiX as component editor: |
Supported: |
a) create image map and store it into rersource. |
b) allow do change. |
c) controll map by each chip. |
} |
interface |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, |
Dialogs, StdCtrls, ExtCtrls, Buttons, {$IFDEF VER4UP}ImgList,{$ENDIF} |
Grids, Menus, DXMapEditProperties, Spin, |
DXSprite, DXClass, DXDraws{$IfNDef StandardDX}, DirectX{$EndIf}, DIB; |
type |
{injected class} |
{ TEdit } |
TEdit = class(StdCtrls.TEdit) |
private |
function GetAsInteger: Integer; |
procedure SetAsInteger(const Value: Integer); |
published |
public |
property AsInteger: Integer read GetAsInteger write SetAsInteger; |
end; |
{ TDrawGrid } |
// TDrawGrid = class(Grids.TDrawGrid) |
// procedure CMMouseEnter(var Msg: TMessage); message CM_MouseEnter; |
// procedure CMMouseLeave(var Msg: TMessage); message CM_MouseLeave; |
// end; |
{ TDelphiXMapEditForm } |
TDelphiXMapEditForm = class(TForm) |
pblBase: TPanel; |
LHeight: TLabel; |
LMapSizeX: TLabel; |
LMapSizeY: TLabel; |
EHeight: TEdit; |
EWidth: TEdit; |
eMapSizeX: TSpinEdit; |
eMapSizeY: TSpinEdit; |
OKButton: TButton; |
CancelButton: TButton; |
LWidth: TLabel; |
ImageToSet: TComboBox; |
LImageToSet: TLabel; |
ScrollBox1: TScrollBox; |
BtnSetSize: TSpeedButton; |
PicturesToChip: TListBox; |
LPicturesToChip: TLabel; |
MapArea: TDrawGrid; |
PopupMenu1: TPopupMenu; |
Fillall1: TMenuItem; |
PopupMenu2: TPopupMenu; |
Clear1: TMenuItem; |
LAreaOfChips: TLabel; |
ClearOneChip1: TMenuItem; |
DelphiXMapEditPropertiesPane: TPanel; |
pnlRight: TPanel; |
pnlLeft: TPanel; |
pnlLabels: TPanel; |
Panel1: TPanel; |
Splitter1: TSplitter; |
procedure OKButtonClick(Sender: TObject); |
procedure MapAreaDblClick(Sender: TObject); |
procedure ClearOneChip1Click(Sender: TObject); |
procedure PopupMenu1Popup(Sender: TObject); |
procedure PopupMenu2Popup(Sender: TObject); |
procedure Clear1Click(Sender: TObject); |
procedure Fillall1Click(Sender: TObject); |
procedure MapAreaMouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure ImageToSetChange(Sender: TObject); |
procedure FormDestroy(Sender: TObject); |
procedure PicturesToChipDrawItem(Control: TWinControl; Index: Integer; |
Rect: TRect; State: TOwnerDrawState); |
procedure PicturesToChipMeasureItem(Control: TWinControl; Index: Integer; |
var Height: Integer); |
procedure FormCreate(Sender: TObject); |
procedure MapAreaDrawCell(Sender: TObject; ACol, ARow: Integer; |
Rect: TRect; State: TGridDrawState); |
procedure MapAreaDragOver(Sender, Source: TObject; X, Y: Integer; |
State: TDragState; var Accept: Boolean); |
procedure BtnSetSizeClick(Sender: TObject); |
procedure MapAreaDragDrop(Sender, Source: TObject; X, Y: Integer); |
procedure MapAreaMouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
private |
{ Private declarations } |
DIB: TDIB; |
maparea_X, maparea_Y: Integer; |
pct: TDXPictureClip; |
FocusPopUpPositionCol, FocusPopUpPositionRow: Integer; |
DragPositionCol, DragPositionRow: Integer; |
DelphiXMapEditPropertiesForm: TDelphiXMapEditPropertiesForm; |
procedure MapTypeDefaultValuesByObject(out MapType: TMapType); |
public |
DXBackgroundSprite: TBackgroundSprite; |
DXImageList: TCustomDXImageList; //instance only |
function LoadSplittedImage(ClearContentOfMapArea: Boolean{$IFDEF VER4UP} = False{$ENDIF}): Boolean; |
procedure ResizeMapArea; |
end; |
var |
DelphiXMapEditForm: TDelphiXMapEditForm; |
implementation |
{$R *.dfm} |
{ TEdit } |
function TEdit.GetAsInteger: Integer; |
begin |
try |
Result := StrToInt(Self.Text); |
except |
Result := 0; |
end; |
end; |
procedure TEdit.SetAsInteger(const Value: Integer); |
begin |
Self.Text := IntToStr(Value) |
end; |
{ TDrawGrid } |
//procedure TDrawGrid.CMMouseEnter(var Msg: TMessage); |
//begin |
// |
//end; |
// |
//procedure TDrawGrid.CMMouseLeave(var Msg: TMessage); |
//begin |
//end; |
//------------------------------------------------------------------------------ |
{TDelphiXMapEditForm} |
procedure TDelphiXMapEditForm.MapAreaDragDrop(Sender, Source: TObject; X, |
Y: Integer); |
var |
DropPositionCol, DropPositionRow: Integer; |
begin |
MapArea.MouseToCell(X, Y, DropPositionCol, DropPositionRow); // convert mouse coord. |
if Source is TListBox then begin |
if Sender is TDrawGrid then |
with Sender as TDrawGrid do begin |
with DXBackgroundSprite do |
Chips[DropPositionCol, DropPositionRow] := (Source as TListBox).ItemIndex; |
Invalidate; |
end; |
end |
else |
if Source is TDrawGrid then begin |
if Sender is TDrawGrid then |
if (DropPositionCol <> DragPositionCol) or (DropPositionRow <> DragPositionRow) then |
with Sender as TDrawGrid do begin |
with DXBackgroundSprite do |
Map[DropPositionCol, DropPositionRow] := Map[DragPositionCol, DragPositionRow]; |
Invalidate; |
end; |
end; |
end; |
procedure TDelphiXMapEditForm.MapAreaDragOver(Sender, Source: TObject; X, |
Y: Integer; State: TDragState; var Accept: Boolean); |
var |
CurrentCol, CurrentRow: Integer; |
begin |
MapArea.MouseToCell(X, Y, CurrentCol, CurrentRow); // convert mouse coord. |
Accept := ((Source = PicturesToChip) or (Source = Sender)) |
{ Accept dragged stuff only when the mouse is now over an acceptable region } |
and (CurrentCol >= 0) and (CurrentRow >= 0); |
if Source = Sender then |
MapArea.SetFocus; |
end; |
procedure TDelphiXMapEditForm.MapAreaDrawCell(Sender: TObject; ACol, |
ARow: Integer; Rect: TRect; State: TGridDrawState); |
var |
TmpRect: TRect; |
A: array[1..255] of Char; |
begin |
with MapArea.Canvas do begin |
FillRect(Rect); |
if pct.IsEmpty then Exit; |
with DXBackgroundSprite do begin |
DIB.SetSize(pct.Width, pct.Height, 24); |
pct.Draw(DIB.Canvas, 0, 0, Chips[ACol, ARow]); |
if gdFocused in State then begin |
DIB.DoDarkness(80); |
end |
else begin |
if CollisionMap[ACol, ARow] then |
DIB.Darker(50) |
end; |
if Map[ACol, ARow].MirrorFlip <> [] then DIB.Mirror(rmfMirror in Map[ACol, ARow].MirrorFlip, rmfFlip in Map[ACol, ARow].MirrorFlip); |
Draw(Rect.Left, Rect.Top, DIB); |
end; |
if gdFocused in State then |
begin |
if goDrawFocusSelected in MapArea.Options then |
Pen.Color := clHighlight |
else |
Pen.Color := MapArea.Color; |
Brush.Style := bsClear; |
{$IFDEF VER5UP} |
Rectangle(Rect); InFlateRect(Rect, -1, -1); Rectangle(Rect); |
{$ELSE} |
Rectangle(Rect.Left, Rect.Top, Rect.Right, Rect.Bottom); InFlateRect(Rect, -1, -1);Rectangle(Rect.Left, Rect.Top, Rect.Right, Rect.Bottom); |
{$ENDIF} |
end; |
with DXBackgroundSprite do begin |
Font.Name := 'Arial'; |
Font.Size := 9; |
Font.Color := clHighlightText; |
Brush.Style := bsClear; |
TmpRect := Rect; |
TmpRect.Bottom := TmpRect.Bottom - ((TmpRect.Bottom - TmpRect.Top) div 2); |
if CollisionMap[ACol, ARow] then |
DrawText(MapArea.Canvas.Handle, StrPCopy(@A, 'brick'), -1, TmpRect, dt_SingleLine or dt_Center or dt_VCenter); |
TmpRect := Rect; |
TmpRect.Top := TmpRect.Bottom - ((TmpRect.Bottom - TmpRect.Top) div 2); |
case Map[ACol, ARow].Rendered of |
rtDraw: DrawText(MapArea.Canvas.Handle, StrPCopy(@A, 'D:' + IntToStr(Map[ACol, ARow].Alpha)), -1, TmpRect, dt_SingleLine or dt_Center or dt_VCenter); |
rtBlend: DrawText(MapArea.Canvas.Handle, StrPCopy(@A, 'B:' + IntToStr(Map[ACol, ARow].Alpha)), -1, TmpRect, dt_SingleLine or dt_Center or dt_VCenter); |
rtAdd: DrawText(MapArea.Canvas.Handle, StrPCopy(@A, 'A:' + IntToStr(Map[ACol, ARow].Alpha)), -1, TmpRect, dt_SingleLine or dt_Center or dt_VCenter); |
rtSub: DrawText(MapArea.Canvas.Handle, StrPCopy(@A, 'S:' + IntToStr(Map[ACol, ARow].Alpha)), -1, TmpRect, dt_SingleLine or dt_Center or dt_VCenter); |
end |
end; |
end; |
end; |
procedure TDelphiXMapEditForm.FormCreate(Sender: TObject); |
begin |
DelphiXMapEditPropertiesForm := TDelphiXMapEditPropertiesForm.Create(Self); |
DelphiXMapEditPropertiesForm.Parent := DelphiXMapEditPropertiesPane; |
DelphiXMapEditPropertiesForm.ParentWindow := Self.DelphiXMapEditPropertiesPane.Handle; |
DelphiXMapEditPropertiesForm.Top := 0; |
DelphiXMapEditPropertiesForm.Left := 0; |
DelphiXMapEditPropertiesForm.BorderStyle := bsNone; |
DelphiXMapEditPropertiesForm.Align := alClient; |
{nothing selected} |
FocusPopUpPositionCol := -1; |
FocusPopUpPositionRow := -1; |
DIB := TDIB.Create; |
pct := TDXPictureClip.Create(nil); |
{$IFDEF VER4UP} |
MapArea.DoubleBuffered := True; |
{$ENDIF} |
end; |
procedure TDelphiXMapEditForm.PicturesToChipMeasureItem(Control: TWinControl; |
Index: Integer; var Height: Integer); |
begin |
Height := pct.Height; |
end; |
procedure TDelphiXMapEditForm.ResizeMapArea; |
{$IFNDEF VER4UP} |
type |
TOldMap = array[0..0, 0..0] of TMapType; |
POldMap = ^TOldMap; |
{$ENDIF} |
var |
{$IFDEF VER4UP} |
oldmap: array of array of TMapType; |
{$ELSE} |
oldmap: POldMap; |
{$ENDIF} |
i, j, oldw, oldh: Integer; |
MapType: TMapType; |
begin |
{older size, save old layout} |
oldw := DXBackgroundSprite.MapWidth; |
oldh := DXBackgroundSprite.MapHeight; |
{$IFDEF VER4UP} |
SetLength(oldmap, oldw, oldh); |
{$ELSE} |
GetMem(oldmap, oldw * oldh * SizeOf(TMapType)); |
try |
{$ENDIF} |
{old the content of map} |
if not DXBackgroundSprite.IsMapEmpty then |
for i := 0 to oldw - 1 do |
for j := 0 to oldh - 1 do |
oldmap{$IFNDEF VER4UP}^{$ENDIF} [i, j] := DXBackgroundSprite.Map[i, j]; |
{size realocation} |
with DXBackgroundSprite do begin |
SetMapSize(eMapSizeX.Value, eMapSizeY.Value); |
{prevent resize of cleared by the content object} |
MapTypeDefaultValuesByObject(MapType); |
for i := 0 to eMapSizeX.Value - 1 do |
for j := 0 to eMapSizeY.Value - 1 do begin |
Chips[i, j] := 0; |
CollisionMap[i, j] := False; |
Map[i, j] := MapType; |
end; |
end; |
{back context} |
for i := 0 to oldw - 1 do |
for j := 0 to oldh - 1 do |
DXBackgroundSprite.Map[i, j] := oldmap{$IFNDEF VER4UP}^{$ENDIF} [i, j]; |
{$IFNDEF VER4UP} |
finally |
FreeMem(oldmap) |
end; |
{$ENDIF} |
MapArea.ColCount := eMapSizeX.Value; |
MapArea.RowCount := eMapSizeY.Value; |
MapArea.Width := eMapSizeX.Value * (EWidth.AsInteger + 1); |
MapArea.Height := eMapSizeY.Value * (EHeight.AsInteger + 1); |
MapArea.Invalidate; |
end; |
procedure TDelphiXMapEditForm.MapTypeDefaultValuesByObject(out MapType: TMapType); |
begin |
FillChar(MapType, SizeOf(MapType), 0); |
{ default values from owner's object } |
MapType.CollisionChip := DXBackgroundSprite.Collisioned; |
MapType.Overlap := 0; |
MapType.AnimLooped:= DXBackgroundSprite.AnimLooped; |
MapType.AnimStart := DXBackgroundSprite.AnimStart; |
MapType.AnimCount := DXBackgroundSprite.AnimCount; |
MapType.AnimSpeed := DXBackgroundSprite.AnimSpeed; |
MapType.Alpha := DXBackgroundSprite.Alpha; |
MapType.Rendered := DXBackgroundSprite.BlendMode; |
MapType.AnimPos := DXBackgroundSprite.AnimPos; |
MapType.Angle := DXBackgroundSprite.Angle; |
MapType.MirrorFlip := DXBackgroundSprite.MirrorFlip; |
MapType.TextureFilter := DXBackgroundSprite.TextureFilter; |
MapType.CenterX := DXBackgroundSprite.CenterX; |
MapType.CenterY := DXBackgroundSprite.CenterY; |
end; |
procedure TDelphiXMapEditForm.BtnSetSizeClick(Sender: TObject); |
begin |
ResizeMapArea |
end; |
procedure TDelphiXMapEditForm.PicturesToChipDrawItem(Control: TWinControl; |
Index: Integer; Rect: TRect; State: TOwnerDrawState); |
var |
R: TRect; |
I: Integer; |
begin |
with PicturesToChip.Canvas do begin |
if not (odSelected in State) then |
if Odd(Index) then Brush.Color := {$IFDEF VER6UP}clMoneyGreen{$ELSE}clGreen{$ENDIF} |
else Brush.Color := clWhite; |
FillRect(Rect); |
pct.Draw(PicturesToChip.Canvas, Rect.Left, Rect.Top, Index); |
Brush.Style := bsClear; |
R := Rect; |
R.Left := Rect.Left + pct.Width + 2; |
I := Rect.Top + (Rect.Bottom - Rect.Top - PicturesToChip.Canvas.TextHeight(PicturesToChip.Items[index])) div 2; |
TextOut(Rect.Left + pct.Width + 2, I, PicturesToChip.Items[index]); |
end; |
end; |
procedure TDelphiXMapEditForm.FormDestroy(Sender: TObject); |
begin |
DIB.Free; |
pct.Free; |
end; |
function TDelphiXMapEditForm.LoadSplittedImage(ClearContentOfMapArea: Boolean): Boolean; |
var |
I, V: Integer; |
begin |
if (ImageToSet.ItemIndex <> -1) and Assigned(DXImageList) then begin |
DXImageList.Items[ImageToSet.ItemIndex].Restore; |
pct.Picture := DXImageList.Items[ImageToSet.ItemIndex].Picture; |
pct.Width := DXImageList.Items[ImageToSet.ItemIndex].PatternWidth; |
pct.Height := DXImageList.Items[ImageToSet.ItemIndex].PatternHeight; |
EWidth.AsInteger := pct.Width; |
EHeight.AsInteger := pct.Height; |
PicturesToChip.Clear; |
V := DXImageList.Items[ImageToSet.ItemIndex].PatternCount; |
for I := 0 to V - 1 do begin |
PicturesToChip.Items.Add(Format(ImageToSet.Text + ' [%d]', [I])); |
end; |
PicturesToChip.ItemHeight := DXImageList.Items[ImageToSet.ItemIndex].PatternHeight; |
{seznam je videt a take MapArea} |
PicturesToChip.Visible := True; |
{pri zmene obrazku vymazat content!} |
if ClearContentOfMapArea then |
Clear1.Click; |
MapArea.Visible := True; |
MapArea.Invalidate; |
Result := True; |
end |
else |
Result := False; |
end; |
procedure TDelphiXMapEditForm.ImageToSetChange(Sender: TObject); |
begin |
if ImageToSet.ItemIndex <> -1 then |
begin |
LoadSplittedImage(True); |
end; |
end; |
procedure TDelphiXMapEditForm.MapAreaMouseDown(Sender: TObject; |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
begin |
{ Convert mouse coordinates X, Y to to StringGrid related col and row numbers } |
MapArea.MouseToCell(X, Y, DragPositionCol, DragPositionRow); |
{ Allow dragging only if an acceptable cell was clicked (cell beyond the fixed column and row) } |
if (Button = mbLeft) and (DragPositionCol >= 0) and (DragPositionRow >= 0) then |
begin |
{ Begin dragging after mouse has moved 4 pixels } |
MapArea.BeginDrag(False{$IFDEF VER4UP}, 2{$ENDIF}); |
end; |
end; |
procedure TDelphiXMapEditForm.MapAreaMouseMove(Sender: TObject; |
Shift: TShiftState; X, Y: Integer); |
var |
FocusPositionCol, FocusPositionRow: Integer; |
begin |
maparea_X := X; maparea_Y := Y; |
MapArea.MouseToCell(X, Y, FocusPositionCol, FocusPositionRow); |
if not MapArea.Focused then |
MapArea.SetFocus; |
MapArea.Row := FocusPositionRow; |
MapArea.Col := FocusPositionCol; |
end; |
procedure TDelphiXMapEditForm.Fillall1Click(Sender: TObject); |
var |
i, j: Integer; |
begin |
if PicturesToChip.ItemIndex <> -1 then |
begin |
with DXBackgroundSprite do |
for i := 0 to MapArea.ColCount - 1 do |
for j := 0 to MapArea.RowCount - 1 do |
Chips[i, j] := PicturesToChip.ItemIndex; |
MapArea.Invalidate; |
end; |
end; |
procedure TDelphiXMapEditForm.Clear1Click(Sender: TObject); |
var |
i, j: Integer; |
MapType: TMapType; |
begin |
MapTypeDefaultValuesByObject(MapType); |
with DXBackgroundSprite do |
for i := 0 to MapArea.ColCount - 1 do |
for j := 0 to MapArea.RowCount - 1 do |
begin |
Chips[i, j] := 0; |
CollisionMap[i, j] := False; |
Map[i, j] := MapType; |
end; |
MapArea.Invalidate; |
end; |
procedure TDelphiXMapEditForm.PopupMenu2Popup(Sender: TObject); |
var |
Shift: TShiftState; |
begin |
Shift := []; |
MouseMove(Shift, maparea_X, maparea_Y); |
MapArea.MouseToCell(maparea_X, maparea_Y, FocusPopUpPositionCol, FocusPopUpPositionRow); |
end; |
procedure TDelphiXMapEditForm.PopupMenu1Popup(Sender: TObject); |
begin |
Fillall1.Enabled := PicturesToChip.ItemIndex <> -1; |
end; |
procedure TDelphiXMapEditForm.ClearOneChip1Click(Sender: TObject); |
var |
MapType: TMapType; |
begin |
MapTypeDefaultValuesByObject(MapType); |
with DXBackgroundSprite do |
begin |
Map[MapArea.Col, MapArea.Row] := MapType; |
end; |
MapArea.Invalidate; |
end; |
procedure TDelphiXMapEditForm.MapAreaDblClick(Sender: TObject); |
begin |
{Reset the flag} |
DelphiXMapEditPropertiesForm.Tag := 0; |
DelphiXMapEditPropertiesForm.Panel2.Color := {$IFDEF VER6UP}clSkyBlue{$ELSE}clBlue{$ENDIF}; |
if not DelphiXMapEditPropertiesForm.Showing then |
DelphiXMapEditPropertiesForm.Show; |
Application.ProcessMessages; |
DelphiXMapEditPropertiesForm.Col := MapArea.Col; |
DelphiXMapEditPropertiesForm.Row := MapArea.Row; |
DelphiXMapEditPropertiesForm.LoadCellToForm(DXBackgroundSprite.Map[MapArea.Col, MapArea.Row], MapArea.Col, MapArea.Row); |
end; |
procedure TDelphiXMapEditForm.OKButtonClick(Sender: TObject); |
begin |
if DelphiXMapEditPropertiesForm.Tag = 1 then |
DelphiXMapEditPropertiesForm.btnOK.Click; |
end; |
end. |
/VCL_DELPHIX_D6/DXMapEditProperties.dfm |
---|
0,0 → 1,221 |
object DelphiXMapEditPropertiesForm: TDelphiXMapEditPropertiesForm |
Left = 575 |
Top = 327 |
BorderIcons = [biSystemMenu] |
BorderStyle = bsToolWindow |
Caption = 'Chip property' |
ClientHeight = 265 |
ClientWidth = 131 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = True |
Position = poDefault |
PixelsPerInch = 96 |
TextHeight = 13 |
object Panel1: TPanel |
Left = 0 |
Top = 0 |
Width = 131 |
Height = 265 |
Align = alClient |
BevelOuter = bvNone |
BorderWidth = 2 |
TabOrder = 0 |
object LAlpha: TLabel |
Left = 10 |
Top = 193 |
Width = 74 |
Height = 13 |
Caption = 'Alpha (0..255):' |
FocusControl = EAlpha |
end |
object LAnimCount: TLabel |
Left = 21 |
Top = 106 |
Width = 63 |
Height = 13 |
Caption = 'Anim. Count:' |
FocusControl = EAnimCount |
end |
object LAnimSpeed: TLabel |
Left = 20 |
Top = 125 |
Width = 64 |
Height = 13 |
Caption = 'Anim. Speed:' |
FocusControl = EAnimSpeed |
end |
object LAnimStart: TLabel |
Left = 26 |
Top = 68 |
Width = 58 |
Height = 13 |
Caption = 'Anim. Start:' |
FocusControl = EAnimStart |
end |
object LAnimPos: TLabel |
Left = 33 |
Top = 87 |
Width = 51 |
Height = 13 |
Caption = 'Anim. Pos:' |
FocusControl = EAnimPos |
end |
object EAlpha: TEdit |
Left = 84 |
Top = 190 |
Width = 43 |
Height = 18 |
AutoSize = False |
TabOrder = 0 |
Text = '255' |
end |
object EAnimCount: TEdit |
Left = 84 |
Top = 103 |
Width = 43 |
Height = 18 |
AutoSize = False |
TabOrder = 1 |
Text = '0' |
end |
object EAnimSpeed: TEdit |
Left = 84 |
Top = 122 |
Width = 43 |
Height = 18 |
AutoSize = False |
TabOrder = 2 |
Text = '0' |
end |
object EAnimStart: TEdit |
Left = 84 |
Top = 65 |
Width = 43 |
Height = 18 |
AutoSize = False |
TabOrder = 3 |
Text = '0' |
end |
object EAnimPos: TEdit |
Left = 84 |
Top = 84 |
Width = 43 |
Height = 18 |
AutoSize = False |
TabOrder = 4 |
Text = '0' |
end |
object Panel2: TPanel |
Left = 2 |
Top = 2 |
Width = 127 |
Height = 23 |
Align = alTop |
BevelOuter = bvLowered |
BorderWidth = 2 |
Caption = 'Chip (%d,%d)' |
Color = 16776176 |
TabOrder = 5 |
end |
object chbCollisioned: TCheckBox |
Left = 16 |
Top = 31 |
Width = 97 |
Height = 17 |
Caption = 'Collisioned Chip' |
TabOrder = 6 |
end |
object chbAnimated: TCheckBox |
Left = 16 |
Top = 46 |
Width = 105 |
Height = 17 |
Caption = 'Animation On/Off' |
TabOrder = 7 |
end |
object rgBlendMode: TRadioGroup |
Left = 3 |
Top = 141 |
Width = 124 |
Height = 47 |
Caption = ' Blend mode: ' |
Columns = 2 |
Items.Strings = ( |
'Draw' |
'Blend' |
'Add' |
'Sub') |
TabOrder = 8 |
end |
object btnOK: TBitBtn |
Left = 4 |
Top = 244 |
Width = 56 |
Height = 19 |
Caption = 'OK' |
Default = True |
TabOrder = 9 |
OnClick = btnOKClick |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000E0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
77007777777777777700777774F7777777007777444F777777007774444F7777 |
770077444F44F77777007444F7744F777700774F77774F7777007777777774F7 |
770077777777774F7700777777777774F7007777777777774700777777777777 |
7700} |
Spacing = -1 |
end |
object btnCancel: TBitBtn |
Left = 68 |
Top = 244 |
Width = 56 |
Height = 19 |
Cancel = True |
Caption = 'Cancel' |
TabOrder = 10 |
Visible = False |
OnClick = btnCancelClick |
Glyph.Data = { |
EE000000424DEE000000000000007600000028000000100000000F0000000100 |
0400000000007800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
777777777777777770F77770F7777777777777000F7777770F7777000F777770 |
F777777000F77700F7777777000F700F77777777700000F77777777777000F77 |
77777777700000F777777777000F70F77777770000F77700F77770000F777770 |
0F77700F7777777700F77777777777777777} |
Spacing = -1 |
end |
object GroupBox1: TGroupBox |
Left = 3 |
Top = 208 |
Width = 124 |
Height = 33 |
Caption = ' Flip/Mirror: ' |
TabOrder = 11 |
object chbFlip: TCheckBox |
Left = 8 |
Top = 13 |
Width = 38 |
Height = 17 |
Caption = 'Flip' |
TabOrder = 0 |
end |
object chbMirror: TCheckBox |
Left = 56 |
Top = 13 |
Width = 57 |
Height = 17 |
Caption = 'Mirror' |
TabOrder = 1 |
end |
end |
end |
end |
/VCL_DELPHIX_D6/DXMidiEdit.dfm |
---|
0,0 → 1,187 |
object DelphiXMidiEditForm: TDelphiXMidiEditForm |
Left = 288 |
Top = 239 |
BorderStyle = bsDialog |
Caption = 'Midi Editor' |
ClientHeight = 226 |
ClientWidth = 346 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
OldCreateOrder = True |
Position = poScreenCenter |
Scaled = False |
OnCreate = FormCreate |
OnDestroy = FormDestroy |
OnShow = FormShow |
PixelsPerInch = 96 |
TextHeight = 13 |
object Bevel2: TBevel |
Left = 8 |
Top = 8 |
Width = 249 |
Height = 209 |
Shape = bsFrame |
end |
object OKButton: TButton |
Left = 264 |
Top = 8 |
Width = 73 |
Height = 25 |
Caption = 'OK' |
Default = True |
TabOrder = 0 |
OnClick = OKButtonClick |
end |
object CancelButton: TButton |
Left = 264 |
Top = 40 |
Width = 73 |
Height = 25 |
Cancel = True |
Caption = 'Cancel' |
TabOrder = 1 |
OnClick = CancelButtonClick |
end |
object ClearButton: TButton |
Left = 176 |
Top = 184 |
Width = 73 |
Height = 25 |
Caption = '&Clear' |
TabOrder = 4 |
OnClick = ClearButtonClick |
end |
object SaveButton: TButton |
Left = 96 |
Top = 184 |
Width = 73 |
Height = 25 |
Caption = '&Save...' |
TabOrder = 3 |
OnClick = SaveButtonClick |
end |
object LoadButton: TButton |
Left = 16 |
Top = 184 |
Width = 73 |
Height = 25 |
Caption = '&Load...' |
TabOrder = 2 |
OnClick = LoadButtonClick |
end |
object Panel1: TPanel |
Left = 16 |
Top = 16 |
Width = 233 |
Height = 161 |
BevelOuter = bvNone |
BorderStyle = bsSingle |
TabOrder = 5 |
object LengthLabel: TLabel |
Left = 16 |
Top = 16 |
Width = 19 |
Height = 13 |
Caption = 'File:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlack |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
end |
object SizeLabel: TLabel |
Left = 16 |
Top = 38 |
Width = 23 |
Height = 13 |
Caption = 'Size:' |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clBlack |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
ParentFont = False |
end |
object filenamelabel: TLabel |
Left = 72 |
Top = 16 |
Width = 42 |
Height = 13 |
Caption = 'Filename' |
end |
object SizeValueLabel: TLabel |
Left = 72 |
Top = 38 |
Width = 20 |
Height = 13 |
Caption = 'Size' |
end |
end |
object btnPlay: TBitBtn |
Left = 111 |
Top = 128 |
Width = 25 |
Height = 25 |
TabOrder = 6 |
OnClick = btnPlayClick |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
80000080000000808000800000008000800080800000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777777777777777777777777777777777777777077777777777777700077777 |
7777777700000777777777770000000777777777000000000777777700000007 |
7777777700000777777777770007777777777777077777777777777777777777 |
7777777777777777777777777777777777777777777777777777} |
end |
object btnStop: TBitBtn |
Left = 136 |
Top = 128 |
Width = 25 |
Height = 25 |
TabOrder = 7 |
OnClick = btnStopClick |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
80000080000000808000800000008000800080800000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777777777777777777777777777777777777777777777777777777700000000 |
7777777700000000777777770000000077777777000000007777777700000000 |
7777777700000000777777770000000077777777000000007777777777777777 |
7777777777777777777777777777777777777777777777777777} |
end |
object SaveDialog: TSaveDialog |
DefaultExt = 'mid' |
Filter = 'Midi (*.mid)|*.mid|All files (*.*)|*.*' |
Options = [ofOverwritePrompt] |
Title = 'Save MIDI file.' |
Left = 312 |
Top = 80 |
end |
object OpenDialog: TOpenDialog |
DefaultExt = 'mid' |
Filter = 'Midi (*.mid)|*.mid|All files (*.*)|*.*' |
Options = [ofFileMustExist] |
Title = 'Load MIDI file.' |
Left = 280 |
Top = 80 |
end |
object DXSound1: TDXSound |
AutoInitialize = True |
Options = [] |
Left = 272 |
Top = 120 |
end |
object DXMusic1: TDXMusic |
DXSound = DXSound1 |
Midis = <> |
Left = 304 |
Top = 120 |
end |
end |
/VCL_DELPHIX_D6/DXMidiEdit.pas |
---|
0,0 → 1,192 |
unit DXMidiEdit; |
//(c)2007 Jaro Benes |
//All Rights Reserved |
{ |
Complex application for users of unDelphiX as component editor: |
Supported: |
a) load existing midi file and store it into rersource. |
b) allow do play. |
} |
interface |
uses |
Windows, SysUtils, Classes, Forms, Dialogs, Controls, StdCtrls, ExtCtrls, |
Buttons, ComCtrls, Graphics, DXSounds; |
type |
{ TDelphiXWaveEditForm } |
TDelphiXMidiEditForm = class(TForm) |
Bevel2: TBevel; |
OKButton: TButton; |
CancelButton: TButton; |
SaveDialog: TSaveDialog; |
OpenDialog: TOpenDialog; |
ClearButton: TButton; |
SaveButton: TButton; |
LoadButton: TButton; |
Panel1: TPanel; |
LengthLabel: TLabel; |
SizeLabel: TLabel; |
filenamelabel: TLabel; |
SizeValueLabel: TLabel; |
DXSound1: TDXSound; |
DXMusic1: TDXMusic; |
btnPlay: TBitBtn; |
btnStop: TBitBtn; |
procedure btnStopClick(Sender: TObject); |
procedure btnPlayClick(Sender: TObject); |
procedure OKButtonClick(Sender: TObject); |
procedure CancelButtonClick(Sender: TObject); |
procedure LoadButtonClick(Sender: TObject); |
procedure SaveButtonClick(Sender: TObject); |
procedure ClearButtonClick(Sender: TObject); |
procedure FormShow(Sender: TObject); |
procedure FormDestroy(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
private |
FChanged: Boolean; |
FMidiFileName: string; |
FPlaying: Boolean; |
T: TMusicListCollectionItem; |
procedure UpDateData; |
procedure SetPlaying(const Value: Boolean); |
public |
MidiData: string; |
property MidiFileName: string read FMidiFileName write FMidiFileName; |
property Playing: Boolean read FPlaying write SetPlaying; |
end; |
var |
DelphiXMidiEditForm: TDelphiXMidiEditForm; |
implementation |
uses DXConsts; |
{$R *.DFM} |
procedure TDelphiXMidiEditForm.FormDestroy(Sender: TObject); |
begin |
if Playing then T.Stop; |
end; |
procedure TDelphiXMidiEditForm.FormShow(Sender: TObject); |
begin |
if Length(MidiData) <> 0 then begin |
T := DXMusic1.Midis.Add; |
T.Midi.MusicData := MidiData; |
// if FileExists(MidiFileName) then |
// T.LoadFromFile(MidiFileName); |
end; |
filenamelabel.Caption := MidiFileName; |
SizeValueLabel.Caption := Format('%d bytes', [Length(MidiData)]); |
UpDateData; |
end; |
procedure TDelphiXMidiEditForm.OKButtonClick(Sender: TObject); |
begin |
if FChanged then |
begin |
Tag := 1; |
end; |
Close; |
end; |
procedure TDelphiXMidiEditForm.CancelButtonClick(Sender: TObject); |
begin |
Close; |
end; |
procedure TDelphiXMidiEditForm.ClearButtonClick(Sender: TObject); |
begin |
if Playing then Playing := False; |
SetLength(MidiData, 0); |
MidiFileName := ''; |
filenamelabel.Caption := ''; |
SizeValueLabel.Caption := ''; |
DXMusic1.Midis.Clear; |
FChanged := True; |
UpdateData; |
end; |
procedure TDelphiXMidiEditForm.LoadButtonClick(Sender: TObject); |
begin |
if OpenDialog.Execute then |
begin |
if Playing then Playing := False; |
MidiFileName := OpenDialog.FileName; |
filenamelabel.Caption := ExtractFileName(MidiFileName); |
T := DXMusic1.Midis.Add; |
T.LoadFromFile(MidiFileName); |
MidiData := T.Midi.MusicData; |
SizeValueLabel.Caption := Format('%d bytes', [T.Size]); |
FChanged := True; |
UpdateData; |
end; |
end; |
procedure TDelphiXMidiEditForm.SaveButtonClick(Sender: TObject); |
var |
F: file; |
begin |
if SaveDialog.Execute then |
begin |
if Playing then Playing := False; |
if Length(MidiData) = 0 then Exit; |
if FChanged then |
begin |
if AnsiCompareFileName(MidiFileName, SaveDialog.FileName)=0 then Exit; |
end; |
AssignFile(F, SaveDialog.FileName); |
Rewrite(F,1); |
try |
BlockWrite(F, MidiData[1], Length(MidiData)); |
finally |
CloseFile(F); |
end; |
end; |
end; |
procedure TDelphiXMidiEditForm.UpDateData; |
begin |
if Length(mididata) > 0 then begin |
SaveButton.Enabled := True; |
ClearButton.Enabled := True; |
btnPlay.Enabled := True; |
end |
else begin |
SaveButton.Enabled := False; |
ClearButton.Enabled := False; |
btnPlay.Enabled := false; |
end |
end; |
procedure TDelphiXMidiEditForm.FormCreate(Sender: TObject); |
begin |
Tag := 0; |
FPlaying := False; |
end; |
procedure TDelphiXMidiEditForm.SetPlaying(const Value: Boolean); |
begin |
if not Value then T.Stop; |
FPlaying := Value; |
end; |
procedure TDelphiXMidiEditForm.btnPlayClick(Sender: TObject); |
begin |
FPlaying := True; |
T.Play; |
end; |
procedure TDelphiXMidiEditForm.btnStopClick(Sender: TObject); |
begin |
if Playing then Playing := False; |
end; |
end. |
/VCL_DELPHIX_D6/DXMisc.pas |
---|
0,0 → 1,409 |
unit DXMisc; |
// Contains miscellaneous code |
interface |
uses classes, controls; |
type |
// This obtains the co-ords for the mouse relative to a control |
TMousePos = class(Tobject) |
private |
{ Private declarations } |
// Data |
fControl: TControl; |
fMouseX: integer; |
fMouseY: integer; |
fXDelta: integer; |
fYDelta: integer; |
// used to scale the mouse input |
fSensitivity: Single; |
// Options |
fClipToControl: boolean; |
protected |
{ Protected declarations } |
procedure SetClipState(Value: boolean); |
public |
{ Public declarations } |
constructor Create(Control: TControl); |
destructor Destroy; override; |
// Sets the control to use |
procedure SetControl(AControl: TControl); |
// Grabs the latest mouse co-ords |
procedure Update; |
// Relative to the parent control |
property MouseX: integer read fMouseX; |
property MouseY: integer read fMouseY; |
property XDelta: integer read fXDelta; |
property YDelta: integer read fYDelta; |
// The sensitivity of the mouse |
property Sensitivity: Single read fSensitivity write fSensitivity; |
property ClipToControl: Boolean read fClipToControl write SetClipState; |
property Control: TControl read fControl write SetControl; |
published |
{ Published declarations } |
end; |
// This is an example of how to cap the frame rate |
// this has NOT been optimized and is just to hide the relatively |
// mess code needed to properly calc the time delta for a frame |
// and the time delta since the last render |
TTiming = class(TObject) |
protected |
{ Protected declarations } |
// Used to implement frame capping |
fGraphicsTimeDelta: longword; |
LastTimeFrame: longword; |
// the number of ms each frame has in its budget |
FrameRateBudget: longword; // this is just for the graphics system |
// see the properties section |
fTimeDelta: longword; |
TimeFrame: longword; |
fFrameRate: longword; |
fFrameRateGoal: longword; |
fNoGraphics: boolean; |
// sets up various timing stuff |
procedure InitTiming(FrameRate: longword); |
public |
{ Public declarations } |
constructor Create(AFrameRateGoal: longword); |
// Calculates the time delta from the last frame |
procedure CalcNewTimeDelta; |
// Checks if the designated time till the next render has passed |
function TimeToRender: boolean; |
// Prepares internal info for the next frame |
procedure UpdateGraphicsTimeDelta; |
procedure CalcFrameRate; |
property GraphicsTimeDelta: longword read fGraphicsTimeDelta; |
// used to determine how much time has elapsed from the last frame in ms |
property TimeDelta: longword read fTimeDelta; |
// The timestamp for the current frame |
property FrameStamp: longword read TimeFrame; |
// The frame rate that is being achieved |
property FrameRate: longword read fFrameRate; |
// The goal frame rate for the frame skipping mechanism |
// This also Limits the frame rate to this to |
property FrameRateGoal: longword read fFrameRateGoal write InitTiming; |
// TimeTorender always returns false, used to disable graphics stuff |
property NoGraphics: boolean read fNoGraphics write fNoGraphics; |
end; |
TStateMachine = class; |
TState = class(TObject) // a state aware class |
private |
fStateIndex: integer; |
fStateMachine: TStateMachine; |
public |
constructor Create; virtual; |
procedure Execute; virtual; abstract; |
property StateIndex: integer read fStateIndex; |
property StateMachine: TStateMachine read fStateMachine; |
end; |
// This is a state machine which removes the need for large case statements when executing the current state |
TStateMachine = class(TObject) |
private |
{ Private declarations } |
protected |
{ Protected declarations } |
// Holds a list of the valid states |
fStatesList: Tlist; |
// the number of states |
fStates: integer; |
// The max number of allowed states |
fMaxStates: integer; |
// The current state |
fCurrentState: TState; |
// Function GetState(index :integer) : TState; virtual; |
public |
{ Public declarations } |
constructor Create; |
destructor Destroy; override; |
// This registers a state, if the state exists then it is updated |
// Dont pass < 0 as the state constant |
procedure AddState(State: TState); virtual; |
// This removes a registerd state |
procedure RemoveState(State: TState); virtual; |
// This clears all the states |
procedure ClearStates; virtual; |
// allows easy state changes |
procedure ActivateNextState; virtual; |
// The current state's id |
property CurrentState: TState read fCurrentState write fCurrentState; |
// The Number of valid states |
property States: integer read fStates; |
property MaxStates: integer read fMaxStates write fMaxStates; |
{ |
// Allows direct access to the states of an object |
Property StateList[index :integer] : TState read GetState; |
} |
property StateList: Tlist read fStatesList; |
end; |
const |
// This is the default strating number of states the TStateMachine will allocate |
StartStates = 16; // This is also what it allocates when it tries to add a new state |
MaxNumStates = 255; // this is the max number of states allowed. Why would you want more :) |
// Scans a Component and the components owned by the Component for a Component of the class type 'Classtype' |
function FindComponentType(Aowner: TComponent; Classtype: TComponentClass): TComponent; |
implementation |
uses windows, Sysutils, mmsystem; |
function FindComponentType(Aowner: TComponent; Classtype: TComponentClass): TComponent; |
var |
index: integer; |
begin |
if not assigned(AOwner) then |
begin |
result := nil; |
exit; |
end; |
if AOwner is Classtype then |
begin |
result := AOwner; |
end |
else |
begin |
// For some reason, when in the designer AOwner.ComponentIndex = -1! |
// thus this search algo would failed in designer mode |
for index := 0 to AOwner.ComponentCount - 1 do |
begin |
if AOwner.Components[index] is Classtype then |
begin |
result := AOwner.Components[index]; |
exit; |
end; |
end; |
result := nil; |
end; |
end; |
// ----------------------------------------------------------------------------- |
// TTiming |
// ----------------------------------------------------------------------------- |
constructor TTiming.Create(AFrameRateGoal: longword); |
begin |
inherited create; |
FrameRateGoal := AFrameRateGoal; |
InitTiming(FrameRateGoal); |
end; {TTiming} |
procedure TTiming.InitTiming(FrameRate: longword); |
begin |
fFrameRateGoal := FrameRate; |
FrameRateBudget := 1000 div fFrameRateGoal; |
fGraphicsTimeDelta := 0; |
fTimeDelta := 0; |
TimeFrame := timegettime; |
LastTimeFrame := TimeFrame; |
end; {InitTiming} |
procedure TTiming.CalcNewTimeDelta; |
var |
NewTimeFrame: Longword; |
begin |
// update the time delta & time frame stamps |
NewTimeFrame := TimeGetTime; |
fTimeDelta := NewTimeFrame - TimeFrame; |
TimeFrame := NewTimeFrame; |
end; {CalcNewTimeDelta} |
procedure TTiming.UpdateGraphicsTimeDelta; |
begin |
// get how long it took to render the frame |
LastTimeFrame := timegettime; |
fGraphicsTimeDelta := 0; |
end; |
procedure TTiming.CalcFrameRate; |
begin |
if GraphicsTimeDelta <> 0 then |
fFrameRate := 1000 div GraphicsTimeDelta |
else |
fFrameRate := 0; |
end; {CalcFrameRate} |
function TTiming.TimeToRender: boolean; |
begin |
// Check to see if we can update the screen |
fGraphicsTimeDelta := Timegettime - LastTimeFrame; |
result := (GraphicsTimeDelta >= FrameRateBudget) and (not fNoGraphics); |
end; {TimeToRender} |
// ----------------------------------------------------------------------------- |
// TMousePos |
// ----------------------------------------------------------------------------- |
constructor TMousePos.Create(Control: TControl); |
begin |
inherited Create; |
if not assigned(Control) then |
raise Exception.Create('Parent can''''t = nil'); |
fSensitivity := 1.0; |
fClipToControl := true; |
SetControl(Control); |
end; {Create} |
destructor TMousePos.Destroy; |
begin |
SetControl(nil); |
inherited; |
end; {Destroy} |
procedure TMousePos.SetControl(AControl: TControl); |
begin |
assert(self <> nil); |
if assigned(AControl) then |
begin |
fControl := AControl; |
// This gets the intitial value |
Update; |
// This gets the correct mouse X,Y deltas |
Update; |
end |
else |
begin |
fControl := nil; |
end; |
end; {SetControl} |
procedure TMousePos.SetClipState(Value: boolean); |
begin |
if fClipToControl <> value then |
begin |
fClipToControl := Value; |
// Re-obtain the co-ords with the correct option |
Update; |
end; |
end; {SetClipState} |
procedure TMousePos.Update; |
var |
pos: TPoint; |
begin |
// Get the latest mouse info |
pos := mouse.CursorPos; |
// Convert them to relative to the Control |
pos := fControl.ScreenToClient(pos); |
if fClipToControl then |
begin |
if pos.x >= fControl.width then |
pos.x := fControl.width - 1 |
else if pos.x < 0 then |
pos.x := 0; |
if pos.Y >= fControl.Height then |
pos.Y := fControl.Height - 1 |
else if pos.Y < 0 then |
pos.Y := 0; |
end; |
// Update the mouse delta's |
// fmouse? = old mouse pos |
// pos.? = new mouse pos |
fXDelta := pos.X - fMouseX; |
fYDelta := pos.Y - fMouseY; |
// Scale the mouse co-ords |
if fSensitivity - 1.0 > 0.00001 then |
begin |
fMouseX := fMouseX + Trunc(fXDelta * fSensitivity); |
fMouseY := fMouseY + Trunc(fYDelta * fSensitivity); |
end |
else |
begin |
fMouseX := pos.X; |
fMouseY := pos.Y; |
end; |
end; {Update} |
// ----------------------------------------------------------------------------- |
// TStateMachine |
// ----------------------------------------------------------------------------- |
constructor TStateMachine.Create; |
begin |
inherited; |
fMaxStates := MaxNumStates; |
fStatesList := Tlist.create; |
end; {Create} |
destructor TStateMachine.Destroy; |
begin |
ClearStates; |
fStatesList.free; |
inherited; |
end; {Destroy} |
procedure TStateMachine.AddState(State: TState); |
begin |
if (fStatesList.IndexOf(State) = -1) and |
(fStates < MaxStates) then |
begin |
State.fStateIndex := fStatesList.add(State); |
State.fStateMachine := self; |
if fCurrentState = nil then |
fCurrentState := state; |
inc(fStates); |
end; |
end; {AddState} |
procedure TStateMachine.RemoveState(State: TState); |
var |
index: integer; |
begin |
index := fStatesList.IndexOf(State); |
if (index <> -1) then |
begin |
if fCurrentState = state then |
fCurrentState := nil; |
fStatesList.Delete(index); |
Dec(fStates); |
end; |
end; {RemoveState} |
procedure TStateMachine.ClearStates; |
var |
state: Tstate; |
begin |
while fStatesList.count <> 0 do |
begin |
state := fStatesList.Items[fStatesList.count - 1]; |
state.free; |
fStatesList.Delete(fStatesList.count - 1); |
end; |
end; {ClearStates} |
procedure TStateMachine.ActivateNextState; |
var |
index: integer; |
begin |
if fStatesList.count = 0 then |
exit; |
if fCurrentState = nil then |
fCurrentState := fStatesList[0]; |
index := fCurrentState.StateIndex; |
inc(index); |
if index >= fStatesList.count - 1 then |
index := 0; |
fCurrentState := Tstate(fStatesList[index]); |
end; {ActivateNextState} |
constructor Tstate.Create; |
begin |
inherited Create; |
end; {Create} |
end. |
/VCL_DELPHIX_D6/DXSpriteEdit.dfm |
---|
0,0 → 1,441 |
object DelphiXSpriteEditForm: TDelphiXSpriteEditForm |
Left = 309 |
Top = 201 |
BorderStyle = bsDialog |
Caption = 'Sprite Init Editor' |
ClientHeight = 373 |
ClientWidth = 370 |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -12 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
OldCreateOrder = True |
Position = poScreenCenter |
Scaled = False |
PixelsPerInch = 96 |
TextHeight = 13 |
object Bevel2: TBevel |
Left = 8 |
Top = 8 |
Width = 273 |
Height = 361 |
Shape = bsFrame |
end |
object OKButton: TButton |
Left = 288 |
Top = 8 |
Width = 73 |
Height = 25 |
Caption = 'OK' |
Default = True |
TabOrder = 0 |
OnClick = OKButtonClick |
end |
object CancelButton: TButton |
Left = 288 |
Top = 40 |
Width = 73 |
Height = 25 |
Cancel = True |
Caption = 'Cancel' |
ModalResult = 2 |
TabOrder = 1 |
end |
object ClearButton: TButton |
Left = 288 |
Top = 344 |
Width = 73 |
Height = 25 |
Caption = '&Clear' |
TabOrder = 2 |
Visible = False |
end |
object Panel1: TPanel |
Left = 16 |
Top = 16 |
Width = 257 |
Height = 345 |
BevelOuter = bvNone |
BorderStyle = bsSingle |
TabOrder = 3 |
object LAlpha: TLabel |
Left = 8 |
Top = 74 |
Width = 69 |
Height = 13 |
Caption = 'Alpha (0..255):' |
FocusControl = EAlpha |
end |
object LAngle: TLabel |
Left = 8 |
Top = 98 |
Width = 69 |
Height = 13 |
Caption = 'Angle (0..255):' |
FocusControl = EAngle |
end |
object LAnimCount: TLabel |
Left = 23 |
Top = 122 |
Width = 54 |
Height = 13 |
Caption = 'AnimCount:' |
FocusControl = EAnimCount |
end |
object LAnimPos: TLabel |
Left = 33 |
Top = 170 |
Width = 44 |
Height = 13 |
Caption = 'AnimPos:' |
FocusControl = EAnimPos |
end |
object LAnimSpeed: TLabel |
Left = 20 |
Top = 194 |
Width = 57 |
Height = 13 |
Caption = 'AnimSpeed:' |
FocusControl = EAnimSpeed |
end |
object LAnimStart: TLabel |
Left = 29 |
Top = 218 |
Width = 48 |
Height = 13 |
Caption = 'AnimStart:' |
FocusControl = EAnimStart |
end |
object LHeight: TLabel |
Left = 43 |
Top = 242 |
Width = 34 |
Height = 13 |
Caption = 'Height:' |
FocusControl = EHeight |
end |
object LMapHeight: TLabel |
Left = 142 |
Top = 99 |
Width = 55 |
Height = 13 |
Caption = 'MapHeight:' |
FocusControl = EMapHeight |
end |
object LMapWidth: TLabel |
Left = 145 |
Top = 123 |
Width = 52 |
Height = 13 |
Caption = 'MapWidth:' |
FocusControl = EMapWidth |
end |
object LWidth: TLabel |
Left = 46 |
Top = 266 |
Width = 31 |
Height = 13 |
Caption = 'Width:' |
FocusControl = EWidth |
end |
object LX: TLabel |
Left = 187 |
Top = 267 |
Width = 10 |
Height = 13 |
Caption = 'X:' |
FocusControl = EX |
end |
object LY: TLabel |
Left = 187 |
Top = 291 |
Width = 10 |
Height = 13 |
Caption = 'Y:' |
FocusControl = EY |
end |
object LZ: TLabel |
Left = 187 |
Top = 315 |
Width = 10 |
Height = 13 |
Caption = 'Z:' |
FocusControl = EZ |
end |
object Label1: TLabel |
Left = 18 |
Top = 50 |
Width = 59 |
Height = 13 |
Caption = 'Blend mode:' |
FocusControl = EBlendMode |
end |
object Label2: TLabel |
Left = 8 |
Top = 6 |
Width = 83 |
Height = 13 |
Caption = 'Available Images:' |
FocusControl = eImage |
end |
object Label3: TLabel |
Left = 156 |
Top = 51 |
Width = 41 |
Height = 13 |
Caption = 'CenterX:' |
FocusControl = ECenterX |
end |
object Label4: TLabel |
Left = 156 |
Top = 75 |
Width = 41 |
Height = 13 |
Caption = 'CenterY:' |
FocusControl = ECenterY |
end |
object Label5: TLabel |
Left = 16 |
Top = 315 |
Width = 61 |
Height = 13 |
Caption = 'Texture filter:' |
FocusControl = ETexFilter |
end |
object EAlpha: TEdit |
Left = 80 |
Top = 71 |
Width = 48 |
Height = 21 |
TabOrder = 3 |
Text = '255' |
end |
object EAngle: TEdit |
Left = 80 |
Top = 95 |
Width = 48 |
Height = 21 |
TabOrder = 4 |
Text = '0' |
end |
object EAnimCount: TEdit |
Left = 80 |
Top = 119 |
Width = 48 |
Height = 21 |
TabOrder = 5 |
Text = '0' |
end |
object EAnimPos: TEdit |
Left = 80 |
Top = 167 |
Width = 48 |
Height = 21 |
TabOrder = 7 |
Text = '0' |
end |
object EAnimSpeed: TEdit |
Left = 80 |
Top = 191 |
Width = 48 |
Height = 21 |
TabOrder = 8 |
Text = '0' |
end |
object EAnimStart: TEdit |
Left = 80 |
Top = 215 |
Width = 48 |
Height = 21 |
TabOrder = 9 |
Text = '0' |
end |
object EHeight: TEdit |
Left = 80 |
Top = 239 |
Width = 48 |
Height = 21 |
TabOrder = 10 |
Text = '0' |
end |
object EMapHeight: TEdit |
Left = 200 |
Top = 96 |
Width = 48 |
Height = 21 |
TabOrder = 15 |
Text = '0' |
end |
object EMapWidth: TEdit |
Left = 200 |
Top = 120 |
Width = 48 |
Height = 21 |
TabOrder = 16 |
Text = '0' |
end |
object EWidth: TEdit |
Left = 80 |
Top = 263 |
Width = 48 |
Height = 21 |
TabOrder = 11 |
Text = '0' |
end |
object EX: TEdit |
Left = 200 |
Top = 264 |
Width = 48 |
Height = 21 |
TabOrder = 22 |
Text = '0' |
end |
object EY: TEdit |
Left = 200 |
Top = 288 |
Width = 48 |
Height = 21 |
TabOrder = 23 |
Text = '0' |
end |
object EZ: TEdit |
Left = 200 |
Top = 312 |
Width = 48 |
Height = 21 |
TabOrder = 24 |
Text = '0' |
end |
object EBlendMode: TComboBox |
Left = 80 |
Top = 47 |
Width = 72 |
Height = 21 |
Style = csDropDownList |
ItemHeight = 13 |
TabOrder = 2 |
Items.Strings = ( |
'Draw' |
'Blend' |
'Add' |
'Sub') |
end |
object eImage: TComboBox |
Left = 8 |
Top = 22 |
Width = 153 |
Height = 21 |
Style = csDropDownList |
ItemHeight = 13 |
TabOrder = 0 |
OnChange = eImageChange |
OnExit = eImageExit |
end |
object ECenterX: TEdit |
Left = 200 |
Top = 48 |
Width = 48 |
Height = 21 |
TabOrder = 13 |
Text = '0' |
end |
object ECenterY: TEdit |
Left = 200 |
Top = 72 |
Width = 48 |
Height = 21 |
TabOrder = 14 |
Text = '0' |
end |
object chbBlurImage: TCheckBox |
Left = 59 |
Top = 288 |
Width = 69 |
Height = 17 |
Alignment = taLeftJustify |
Caption = 'Blur Image' |
TabOrder = 12 |
end |
object chbAnimLooped: TCheckBox |
Left = 48 |
Top = 144 |
Width = 80 |
Height = 17 |
Alignment = taLeftJustify |
Caption = 'AnimLooped' |
TabOrder = 6 |
end |
object chbMoved: TCheckBox |
Left = 194 |
Top = 144 |
Width = 54 |
Height = 17 |
Alignment = taLeftJustify |
Caption = 'Moved' |
TabOrder = 17 |
end |
object chbCollisioned: TCheckBox |
Left = 177 |
Top = 168 |
Width = 71 |
Height = 17 |
Alignment = taLeftJustify |
Caption = 'Collisioned' |
TabOrder = 18 |
end |
object chbPixelCheck: TCheckBox |
Left = 175 |
Top = 192 |
Width = 73 |
Height = 17 |
Alignment = taLeftJustify |
Caption = 'PixelCheck' |
TabOrder = 19 |
end |
object chbTile: TCheckBox |
Left = 209 |
Top = 216 |
Width = 39 |
Height = 17 |
Alignment = taLeftJustify |
Caption = 'Tile' |
TabOrder = 20 |
end |
object chbVisible: TCheckBox |
Left = 196 |
Top = 240 |
Width = 52 |
Height = 17 |
Alignment = taLeftJustify |
Caption = 'Visible' |
TabOrder = 21 |
end |
object btnMapEdit: TButton |
Left = 173 |
Top = 13 |
Width = 75 |
Height = 25 |
Caption = 'Map Edit' |
Enabled = False |
TabOrder = 1 |
OnClick = MapEditButtonClick |
end |
object ETexFilter: TComboBox |
Left = 80 |
Top = 312 |
Width = 89 |
Height = 21 |
Style = csDropDownList |
ItemHeight = 13 |
TabOrder = 25 |
Items.Strings = ( |
'POINT' |
'LINEAR' |
'FLATCUBIC' |
'GAUSSIANCUBIC' |
'ANISOTROPIC') |
end |
end |
end |
/VCL_DELPHIX_D6/DXWave.pas |
---|
0,0 → 1,726 |
unit DXWave; |
interface |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, SysUtils, Classes, MMSystem; |
type |
{ EWaveError } |
EWaveError = class(Exception); |
{ TWave } |
TWave = class(TPersistent) |
private |
FData: Pointer; |
FFormat: PWaveFormatEx; |
FFormatSize: Integer; |
FSize: Integer; |
procedure SetFormatSize(Value: Integer); |
procedure SetSize(Value: Integer); |
protected |
procedure DefineProperties(Filer: TFiler); override; |
procedure ReadData(Stream: TStream); virtual; |
procedure WriteData(Stream: TStream); virtual; |
public |
destructor Destroy; override; |
procedure Assign(Source: TPersistent); override; |
procedure Clear; |
procedure LoadFromFile(const FileName : string); |
procedure LoadFromStream(Stream: TStream); |
procedure SaveToFile(const FileName : string); |
procedure SaveToStream(Stream: TStream); |
procedure SetPCMFormat(SamplesPerSec, BitsPerSample, Channels: Integer); |
property Data: Pointer read FData; |
property Format: PWaveFormatEx read FFormat; |
property FormatSize: Integer read FFormatSize write SetFormatSize; |
property Size: Integer read FSize write SetSize; |
end; |
{ TCustomDXWave } |
TCustomDXWave = class(TComponent) |
private |
FWave: TWave; |
procedure SetWave(Value: TWave); |
public |
constructor Create(AOnwer: TComponent); override; |
destructor Destroy; override; |
property Wave: TWave read FWave write SetWave; |
end; |
{ TDXWave } |
TDXWave = class(TCustomDXWave) |
published |
property Wave; |
end; |
{ EWaveStreamError } |
EWaveStreamError = class(Exception); |
{ TCustomWaveStream } |
TCustomWaveStream = class(TStream) |
private |
FPosition: Integer; |
protected |
function GetFilledSize: Integer; virtual; |
function GetFormat: PWaveFormatEx; virtual; abstract; |
function GetFormatSize: Integer; virtual; |
function GetSize: Integer; {$IFDEF VER5UP} reintroduce;{$ENDIF} virtual; |
function ReadWave(var Buffer; Count: Integer): Integer; virtual; |
procedure SetFormatSize(Value: Integer); virtual; abstract; |
procedure SetSize(Value: Integer); override; |
function WriteWave(const Buffer; Count: Integer): Integer; virtual; |
public |
function Read(var Buffer; Count: Longint): Longint; override; |
function Seek(Offset: Longint; Origin: Word): Longint; override; |
function Write(const Buffer; Count: Longint): Longint; override; |
procedure SetPCMFormat(SamplesPerSec, BitsPerSample, Channels: Integer); |
property FilledSize: Integer read GetFilledSize; |
property Format: PWaveFormatEx read GetFormat; |
property FormatSize: Integer read GetFormatSize write SetFormatSize; |
property Size: Integer read GetSize write SetSize; |
end; |
{ TCustomWaveStream2 } |
TCustomWaveStream2 = class(TCustomWaveStream) |
private |
FFormat: PWaveFormatEx; |
FFormatSize: Integer; |
protected |
function GetFormat: PWaveFormatEx; override; |
function GetFormatSize: Integer; override; |
procedure SetFormatSize(Value: Integer); override; |
public |
destructor Destroy; override; |
end; |
{ TWaveObjectStream } |
TWaveObjectStream = class(TCustomWaveStream) |
private |
FWave: TWave; |
protected |
function GetFormat: PWaveFormatEx; override; |
function GetFormatSize: Integer; override; |
function GetSize: Integer; override; |
function ReadWave(var Buffer; Count: Integer): Integer; override; |
procedure SetFormatSize(Value: Integer); override; |
procedure SetSize(Value: Integer); override; |
function WriteWave(const Buffer; Count: Integer): Integer; override; |
public |
constructor Create(AWave: TWave); |
end; |
{ TWaveStream } |
TWaveStream = class(TCustomWaveStream2) |
private |
FDataPosition: Integer; |
FDataHeaderPosition: Integer; |
FOpened: Boolean; |
FOriPosition: Integer; |
FReadMode: Boolean; |
FSize: Integer; |
FStream: TStream; |
procedure CloseWriteMode; |
procedure OpenReadMode; |
procedure OpenWriteMode; |
protected |
function GetSize: Integer; override; |
function ReadWave(var Buffer; Count: Integer): Integer; override; |
function WriteWave(const Buffer; Count: Integer): Integer; override; |
public |
constructor Create(AStream: TStream); |
destructor Destroy; override; |
procedure Open(WriteMode: Boolean); |
end; |
{ TWaveFileStream } |
TWaveFileStream = class(TWaveStream) |
private |
FFileStream: TFileStream; |
public |
constructor Create(const FileName: string; FileMode: Integer); |
destructor Destroy; override; |
end; |
procedure MakePCMWaveFormatEx(var Format: TWaveFormatEx; |
SamplesPerSec, BitsPerSample, Channels: Integer); |
implementation |
uses DXConsts; |
procedure MakePCMWaveFormatEx(var Format: TWaveFormatEx; |
SamplesPerSec, BitsPerSample, Channels: Integer); |
begin |
with Format do |
begin |
wFormatTag := WAVE_FORMAT_PCM; |
nChannels := Channels; |
nSamplesPerSec := SamplesPerSec; |
wBitsPerSample := BitsPerSample; |
nBlockAlign := nChannels*(wBitsPerSample div 8); |
nAvgBytesPerSec := nBlockAlign*nSamplesPerSec; |
cbSize := 0; |
end; |
end; |
{ TWave } |
const |
WavePoolSize = 8096; |
destructor TWave.Destroy; |
begin |
Clear; |
inherited Destroy; |
end; |
procedure TWave.Assign(Source: TPersistent); |
var |
AWave: TWave; |
begin |
if Source=nil then |
begin |
Clear; |
end else if Source is TWave then |
begin |
if Source<>Self then |
begin |
AWave := TWave(Source); |
Size := AWave.Size; |
FormatSize := AWave.FormatSize; |
Move(AWave.Data^, FData^, FSize); |
Move(AWave.Format^, FFormat^, FFormatSize); |
end; |
end else |
inherited Assign(Source); |
end; |
procedure TWave.Clear; |
begin |
FreeMem(FData, 0); FData := nil; |
FreeMem(FFormat, 0); FFormat := nil; |
FSize := 0; |
FFormatSize := 0; |
end; |
procedure TWave.DefineProperties(Filer: TFiler); |
begin |
inherited DefineProperties(Filer); |
Filer.DefineBinaryProperty('WAVE', ReadData, WriteData, True); |
end; |
procedure TWave.LoadFromFile(const FileName : string); |
var |
Stream: TFileStream; |
begin |
Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); |
try |
LoadFromStream(Stream); |
finally |
Stream.Free; |
end; |
end; |
procedure TWave.LoadFromStream(Stream: TStream); |
var |
WaveStream: TWaveStream; |
begin |
Clear; |
WaveStream := TWaveStream.Create(Stream); |
try |
WaveStream.Open(False); |
FormatSize := WaveStream.FormatSize; |
Move(WaveStream.Format^, Format^, FormatSize); |
Size := WaveStream.Size; |
WaveStream.ReadBuffer(FData^, Size); |
finally |
WaveStream.Free; |
end; |
end; |
procedure TWave.ReadData(Stream: TStream); |
begin |
LoadFromStream(Stream); |
end; |
procedure TWave.SaveToFile(const FileName : string); |
var |
Stream: TFileStream; |
begin |
Stream := TFileStream.Create(FileName, fmCreate); |
try |
SaveToStream(Stream); |
finally |
Stream.Free; |
end; |
end; |
procedure TWave.SaveToStream(Stream: TStream); |
var |
WaveStream: TWaveStream; |
begin |
if (FFormatSize<=0) or (FSize<=0) then Exit; |
WaveStream := TWaveStream.Create(Stream); |
try |
WaveStream.FormatSize := FormatSize; |
Move(Format^, WaveStream.Format^, FormatSize); |
WaveStream.Open(True); |
WaveStream.WriteBuffer(FData^, Size); |
finally |
WaveStream.Free; |
end; |
end; |
procedure TWave.SetFormatSize(Value: Integer); |
begin |
if Value<=0 then Value := 0; |
ReAllocMem(FFormat, Value); |
FFormatSize := Value; |
end; |
procedure TWave.SetPCMFormat(SamplesPerSec, BitsPerSample, Channels: Integer); |
begin |
FormatSize := SizeOf(TWaveFormatEx); |
MakePCMWaveFormatEx(Format^, SamplesPerSec, BitsPerSample, Channels); |
end; |
procedure TWave.SetSize(Value: Integer); |
var |
i: Integer; |
begin |
if Value<=0 then Value := 0; |
i := (Value+WavePoolSize-1) div WavePoolSize; |
if i<>(FSize+WavePoolSize-1) div WavePoolSize then |
ReAllocMem(FData, i*WavePoolSize); |
FSize := Value; |
end; |
procedure TWave.WriteData(Stream: TStream); |
begin |
SaveToStream(Stream); |
end; |
{ TCustomDXWave } |
constructor TCustomDXWave.Create(AOnwer: TComponent); |
begin |
inherited Create(AOnwer); |
FWave := TWave.Create; |
end; |
destructor TCustomDXWave.Destroy; |
begin |
FWave.Free; |
inherited Destroy; |
end; |
procedure TCustomDXWave.SetWave(Value: TWave); |
begin |
FWave.Assign(Value); |
end; |
{ TCustomWaveStream } |
function TCustomWaveStream.GetFilledSize: Longint; |
begin |
Result := -1; |
end; |
function TCustomWaveStream.GetFormatSize: Integer; |
begin |
Result := 0; |
end; |
function TCustomWaveStream.GetSize: Integer; |
begin |
Result := -1; |
end; |
function TCustomWaveStream.Read(var Buffer; Count: Longint): Longint; |
begin |
if GetSize<0 then |
Result := ReadWave(Buffer, Count) |
else |
begin |
if FPosition>Size then |
FPosition := Size; |
if FPosition+Count>Size then |
Result := Size-FPosition |
else |
Result := Count; |
Result := ReadWave(Buffer, Result); |
end; |
Inc(FPosition, Result); |
end; |
function TCustomWaveStream.ReadWave(var Buffer; Count: Integer): Integer; |
begin |
Result := 0; |
end; |
function TCustomWaveStream.Seek(Offset: Longint; Origin: Word): Longint; |
begin |
case Origin of |
soFromBeginning: FPosition := Offset; |
soFromCurrent : FPosition := FPosition + Offset; |
soFromEnd : FPosition := GetSize + Offset; |
end; |
if FPosition<0 then FPosition := 0; |
if FPosition>GetSize then FPosition := GetSize; |
Result := FPosition; |
end; |
procedure TCustomWaveStream.SetPCMFormat(SamplesPerSec, BitsPerSample, Channels: Integer); |
begin |
FormatSize := SizeOf(TWaveFormatEx); |
MakePCMWaveFormatEx(Format^, SamplesPerSec, BitsPerSample, Channels); |
end; |
procedure TCustomWaveStream.SetSize(Value: Integer); |
begin |
end; |
function TCustomWaveStream.Write(const Buffer; Count: Longint): Longint; |
begin |
if FPosition>Size then |
FPosition := Size; |
Result := WriteWave(Buffer, Count); |
Inc(FPosition, Result); |
end; |
function TCustomWaveStream.WriteWave(const Buffer; Count: Integer): Integer; |
begin |
Result := 0; |
end; |
{ TCustomWaveStream2 } |
destructor TCustomWaveStream2.Destroy; |
begin |
FormatSize := 0; |
inherited Destroy; |
end; |
function TCustomWaveStream2.GetFormat: PWaveFormatEx; |
begin |
Result := FFormat; |
end; |
function TCustomWaveStream2.GetFormatSize: Integer; |
begin |
Result := FFormatSize; |
end; |
procedure TCustomWaveStream2.SetFormatSize(Value: Integer); |
begin |
ReAllocMem(FFormat, Value); |
FFormatSize := Value; |
end; |
{ TWaveObjectStream } |
constructor TWaveObjectStream.Create(AWave: TWave); |
begin |
inherited Create; |
FWave := AWave; |
FormatSize := FWave.FormatSize; |
Move(FWave.Format^, Format^, FormatSize); |
end; |
function TWaveObjectStream.GetFormat: PWaveFormatEx; |
begin |
Result := FWave.Format; |
end; |
function TWaveObjectStream.GetFormatSize: Integer; |
begin |
Result := FWave.FormatSize; |
end; |
function TWaveObjectStream.GetSize: Integer; |
begin |
Result := FWave.Size; |
end; |
function TWaveObjectStream.ReadWave(var Buffer; Count: Integer): Integer; |
begin |
Result := Count; |
Move(Pointer(Integer(FWave.Data)+Position)^, Buffer, Count); |
end; |
procedure TWaveObjectStream.SetFormatSize(Value: Integer); |
begin |
FWave.FormatSize := Value; |
end; |
procedure TWaveObjectStream.SetSize(Value: Integer); |
begin |
FWave.Size := Value; |
end; |
function TWaveObjectStream.WriteWave(const Buffer; Count: Integer): Integer; |
begin |
Result := Count; |
if Position+Count>Size then |
SetSize(Size+(Position+Count+Size)); |
Move(Buffer, Pointer(Integer(FWave.Data)+Position)^, Count); |
end; |
{ TWaveStream } |
const |
ID_RIFF = Ord('R') + Ord('I')*$100 + Ord('F')*$10000 + Ord('F')*$1000000; |
ID_WAVE = Ord('W') + Ord('A')*$100 + Ord('V')*$10000 + Ord('E')*$1000000; |
ID_FMT = Ord('f') + Ord('m')*$100 + Ord('t')*$10000 + Ord(' ')*$1000000; |
ID_FACT = Ord('f') + Ord('a')*$100 + Ord('c')*$10000 + Ord('t')*$1000000; |
ID_DATA = Ord('d') + Ord('a')*$100 + Ord('t')*$10000 + Ord('a')*$1000000; |
type |
TWaveFileHeader = packed record |
FType: Integer; |
Size: Longint; |
RType: Integer; |
end; |
TWaveChunkHeader = packed record |
CType: Longint; |
Size: Longint; |
end; |
constructor TWaveStream.Create(AStream: TStream); |
begin |
inherited Create; |
FStream := AStream; |
FOriPosition := FStream.Position; |
end; |
destructor TWaveStream.Destroy; |
begin |
if FOpened and (not FReadMode) then |
CloseWriteMode; |
inherited Destroy; |
end; |
function TWaveStream.GetSize: Integer; |
begin |
if FOpened then |
begin |
if not FReadMode then |
Result := FStream.Size-FDataPosition |
else |
Result := FSize; |
end else |
Result := 0; |
end; |
function TWaveStream.ReadWave(var Buffer; Count: Integer): Integer; |
begin |
if not FOpened then |
raise EWaveStreamError.Create(SStreamNotOpend); |
FStream.Position := FDataPosition+Position; |
Result := FStream.Read(Buffer, Count); |
end; |
function TWaveStream.WriteWave(const Buffer; Count: Integer): Integer; |
begin |
if not FOpened then |
raise EWaveStreamError.Create(SStreamNotOpend); |
if FReadMode then |
begin |
if Position+Count>FSize then |
Count := FSize-Position; |
end; |
FStream.Position := FDataPosition+Position; |
Result := FStream.Write(Buffer, Count); |
end; |
procedure TWaveStream.Open(WriteMode: Boolean); |
begin |
if WriteMode then |
OpenWriteMode |
else |
OpenReadMode; |
end; |
procedure TWaveStream.OpenReadMode; |
var |
WF: TWaveFileHeader; |
WC: TWaveChunkHeader; |
procedure Readfmt; { fmt } |
begin |
FormatSize := WC.Size; |
FStream.ReadBuffer(Format^, WC.Size); |
end; |
procedure Readdata; { data } |
begin |
FSize := WC.Size; |
FDataPosition := FStream.Position; |
FStream.Seek(FSize, 1); |
end; |
begin |
if FOpened then |
raise EWaveStreamError.Create(SStreamOpend); |
FOpened := True; |
FReadMode := True; |
FStream.Position := FOriPosition; |
//if FStream.Size-FStream.Position<=0 then Exit; |
{ File header reading. } |
FStream.ReadBuffer(WF, SizeOf(TWaveFileHeader)); |
{ Is it Wave file of the file? } |
if (WF.FType<>ID_RIFF) or (WF.RType<>ID_WAVE) then |
raise EWaveStreamError.Create(SInvalidWave); |
{ Chunk reading. } |
FillChar(WC, SizeOf(WC), 0); |
FStream.Read(WC, SizeOf(TWaveChunkHeader)); |
while WC.CType<>0 do |
begin |
case WC.CType of |
ID_FMT : Readfmt; |
ID_DATA: Readdata; |
else |
{ Chunk which does not correspond is disregarded. } |
FStream.Seek(WC.Size, 1); |
end; |
FillChar(WC, SizeOf(WC), 0); |
FStream.Read(WC, SizeOf(TWaveChunkHeader)); |
end; |
end; |
procedure TWaveStream.OpenWriteMode; |
procedure WriteFmt; { fmt } |
var |
WC: TWaveChunkHeader; |
begin |
with WC do |
begin |
CType := ID_FMT; |
Size := FFormatSize; |
end; |
FStream.WriteBuffer(WC, SizeOf(WC)); |
FStream.WriteBuffer(FFormat^, FFormatSize); |
end; |
procedure WriteData; { data } |
var |
WC: TWaveChunkHeader; |
begin |
FDataHeaderPosition := FStream.Position; |
with WC do |
begin |
CType := ID_DATA; |
Size := 0; |
end; |
FStream.WriteBuffer(WC, SizeOf(WC)); |
FDataPosition := FStream.Position; |
end; |
var |
WF: TWaveFileHeader; |
begin |
if FOpened then |
raise EWaveStreamError.Create(SStreamOpend); |
if FormatSize=0 then |
raise EWaveStreamError.Create(SInvalidWaveFormat); |
FOpened := True; |
FStream.Position := FOriPosition; |
FStream.WriteBuffer(WF, SizeOf(TWaveFileHeader)); |
{ Chunk writing. } |
WriteFmt; |
WriteData; |
end; |
procedure TWaveStream.CloseWriteMode; |
procedure WriteDataHeader; { data } |
var |
WC: TWaveChunkHeader; |
begin |
FStream.Position := FDataHeaderPosition; |
with WC do |
begin |
CType := ID_DATA; |
Size := Self.Size; |
end; |
FStream.WriteBuffer(WC, SizeOf(WC)); |
end; |
var |
WF: TWaveFileHeader; |
begin |
with WF do |
begin |
FType := ID_RIFF; |
Size := (FStream.Size-FOriPosition)-SizeOf(TWaveChunkHeader); |
RType := ID_WAVE; |
end; |
FStream.Position := FOriPosition; |
FStream.WriteBuffer(WF, SizeOf(TWaveFileHeader)); |
WriteDataHeader; |
FStream.Position := FStream.Size; |
end; |
{ TWaveFileStream } |
constructor TWaveFileStream.Create(const FileName: string; FileMode: Integer); |
begin |
FFileStream := TFileStream.Create(FileName, FileMode); |
inherited Create(FFileStream); |
end; |
destructor TWaveFileStream.Destroy; |
begin |
inherited Destroy; |
FFileStream.Free; |
end; |
end. |
/VCL_DELPHIX_D6/DXWaveEdit.dfm |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DXWaveEdit.pas |
---|
4,7 → 4,7 |
uses |
Windows, SysUtils, Classes, Forms, Dialogs, Controls, StdCtrls, ExtCtrls, |
Buttons, ComCtrls, DXSounds, Wave, Graphics; |
Buttons, ComCtrls, DXSounds, DXWave, Graphics; |
type |
/VCL_DELPHIX_D6/DelphiX.bdsproj |
---|
0,0 → 1,177 |
<?xml version="1.0" encoding="utf-8"?> |
<BorlandProject> |
<PersonalityInfo> |
<Option> |
<Option Name="Personality">Delphi.Personality</Option> |
<Option Name="ProjectType"></Option> |
<Option Name="Version">1.0</Option> |
<Option Name="GUID">{6EC6E3ED-F62F-4EBA-BD15-B71B48535D8D}</Option> |
</Option> |
</PersonalityInfo> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX.dpk</Source> |
</Source> |
<FileVersion> |
<FileVersion Name="Version">7.0</FileVersion> |
</FileVersion> |
<Compiler> |
<Compiler Name="A">8</Compiler> |
<Compiler Name="B">0</Compiler> |
<Compiler Name="C">0</Compiler> |
<Compiler Name="D">0</Compiler> |
<Compiler Name="E">0</Compiler> |
<Compiler Name="F">0</Compiler> |
<Compiler Name="G">1</Compiler> |
<Compiler Name="H">1</Compiler> |
<Compiler Name="I">1</Compiler> |
<Compiler Name="J">1</Compiler> |
<Compiler Name="K">0</Compiler> |
<Compiler Name="L">0</Compiler> |
<Compiler Name="M">0</Compiler> |
<Compiler Name="N">1</Compiler> |
<Compiler Name="O">1</Compiler> |
<Compiler Name="P">1</Compiler> |
<Compiler Name="Q">0</Compiler> |
<Compiler Name="R">0</Compiler> |
<Compiler Name="S">0</Compiler> |
<Compiler Name="T">0</Compiler> |
<Compiler Name="U">0</Compiler> |
<Compiler Name="V">1</Compiler> |
<Compiler Name="W">0</Compiler> |
<Compiler Name="X">1</Compiler> |
<Compiler Name="Y">0</Compiler> |
<Compiler Name="Z">1</Compiler> |
<Compiler Name="ShowHints">True</Compiler> |
<Compiler Name="ShowWarnings">True</Compiler> |
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> |
<Compiler Name="NamespacePrefix"></Compiler> |
<Compiler Name="GenerateDocumentation">False</Compiler> |
<Compiler Name="DefaultNamespace"></Compiler> |
<Compiler Name="SymbolDeprecated">True</Compiler> |
<Compiler Name="SymbolLibrary">True</Compiler> |
<Compiler Name="SymbolPlatform">True</Compiler> |
<Compiler Name="SymbolExperimental">True</Compiler> |
<Compiler Name="UnitLibrary">True</Compiler> |
<Compiler Name="UnitPlatform">True</Compiler> |
<Compiler Name="UnitDeprecated">True</Compiler> |
<Compiler Name="UnitExperimental">True</Compiler> |
<Compiler Name="HResultCompat">True</Compiler> |
<Compiler Name="HidingMember">True</Compiler> |
<Compiler Name="HiddenVirtual">True</Compiler> |
<Compiler Name="Garbage">True</Compiler> |
<Compiler Name="BoundsError">True</Compiler> |
<Compiler Name="ZeroNilCompat">True</Compiler> |
<Compiler Name="StringConstTruncated">True</Compiler> |
<Compiler Name="ForLoopVarVarPar">True</Compiler> |
<Compiler Name="TypedConstVarPar">True</Compiler> |
<Compiler Name="AsgToTypedConst">True</Compiler> |
<Compiler Name="CaseLabelRange">True</Compiler> |
<Compiler Name="ForVariable">True</Compiler> |
<Compiler Name="ConstructingAbstract">True</Compiler> |
<Compiler Name="ComparisonFalse">True</Compiler> |
<Compiler Name="ComparisonTrue">True</Compiler> |
<Compiler Name="ComparingSignedUnsigned">True</Compiler> |
<Compiler Name="CombiningSignedUnsigned">True</Compiler> |
<Compiler Name="UnsupportedConstruct">True</Compiler> |
<Compiler Name="FileOpen">True</Compiler> |
<Compiler Name="FileOpenUnitSrc">True</Compiler> |
<Compiler Name="BadGlobalSymbol">True</Compiler> |
<Compiler Name="DuplicateConstructorDestructor">True</Compiler> |
<Compiler Name="InvalidDirective">True</Compiler> |
<Compiler Name="PackageNoLink">True</Compiler> |
<Compiler Name="PackageThreadVar">True</Compiler> |
<Compiler Name="ImplicitImport">True</Compiler> |
<Compiler Name="HPPEMITIgnored">True</Compiler> |
<Compiler Name="NoRetVal">True</Compiler> |
<Compiler Name="UseBeforeDef">True</Compiler> |
<Compiler Name="ForLoopVarUndef">True</Compiler> |
<Compiler Name="UnitNameMismatch">True</Compiler> |
<Compiler Name="NoCFGFileFound">True</Compiler> |
<Compiler Name="MessageDirective">True</Compiler> |
<Compiler Name="ImplicitVariants">True</Compiler> |
<Compiler Name="UnicodeToLocale">True</Compiler> |
<Compiler Name="LocaleToUnicode">True</Compiler> |
<Compiler Name="ImagebaseMultiple">True</Compiler> |
<Compiler Name="SuspiciousTypecast">True</Compiler> |
<Compiler Name="PrivatePropAccessor">True</Compiler> |
<Compiler Name="UnsafeType">False</Compiler> |
<Compiler Name="UnsafeCode">False</Compiler> |
<Compiler Name="UnsafeCast">False</Compiler> |
<Compiler Name="OptionTruncated">True</Compiler> |
<Compiler Name="WideCharReduced">True</Compiler> |
<Compiler Name="DuplicatesIgnored">True</Compiler> <Compiler Name="UnitInitSeq">True</Compiler> |
<Compiler Name="LocalPInvoke">True</Compiler> |
<Compiler Name="CodePage"></Compiler> |
</Compiler> |
<Linker> |
<Linker Name="MapFile">0</Linker> |
<Linker Name="OutputObjs">0</Linker> |
<Linker Name="ConsoleApp">1</Linker> |
<Linker Name="DebugInfo">False</Linker> |
<Linker Name="RemoteSymbols">False</Linker> |
<Linker Name="GenerateDRC">False</Linker> |
<Linker Name="MinStackSize">16384</Linker> |
<Linker Name="MaxStackSize">1048576</Linker> |
<Linker Name="ImageBase">4194304</Linker> |
<Linker Name="ExeDescription">DelphiX - DirectX components for Delphi</Linker> <Linker Name="GenerateHpps">False</Linker> |
</Linker> |
<Directories> |
<Directories Name="OutputDir"></Directories> |
<Directories Name="UnitOutputDir">.\</Directories> |
<Directories Name="PackageDLLOutputDir"></Directories> |
<Directories Name="PackageDCPOutputDir">.\</Directories> |
<Directories Name="SearchPath"></Directories> |
<Directories Name="Packages"></Directories> |
<Directories Name="Conditionals"></Directories> |
<Directories Name="DebugSourceDirs"></Directories> |
<Directories Name="UsePackages">False</Directories> |
</Directories> |
<Parameters> |
<Parameters Name="RunParams"></Parameters> |
<Parameters Name="HostApplication"></Parameters> |
<Parameters Name="Launcher"></Parameters> |
<Parameters Name="UseLauncher">False</Parameters> |
<Parameters Name="DebugCWD"></Parameters> |
<Parameters Name="RemoteHost"></Parameters> |
<Parameters Name="RemotePath"></Parameters> |
<Parameters Name="RemoteLauncher"></Parameters> |
<Parameters Name="RemoteCWD"></Parameters> |
<Parameters Name="RemoteDebug">False</Parameters> <Parameters Name="Debug Symbols Search Path"></Parameters> |
<Parameters Name="LoadAllSymbols">True</Parameters> |
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
</Parameters> |
<Language> |
<Language Name="ActiveLang"></Language> |
<Language Name="ProjectLang">$00000000</Language> |
<Language Name="RootDir"></Language> |
</Language> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">8</VersionInfo> |
<VersionInfo Name="Build">3</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1029</VersionInfo> |
<VersionInfo Name="CodePage">1250</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName">Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="FileDescription">unDelphiX for Delphi 6, 7, 2005, 2006, 2007, 2009</VersionInfoKeys> |
<VersionInfoKeys Name="FileVersion">1.0.8.3</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName">unDelphiX</VersionInfoKeys> |
<VersionInfoKeys Name="LegalCopyright">© Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="LegalTrademarks">© Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="OriginalFilename">DELPHIX</VersionInfoKeys> |
<VersionInfoKeys Name="ProductName">unDelphiX 1.08.3</VersionInfoKeys> |
<VersionInfoKeys Name="ProductVersion">1.0.8.3</VersionInfoKeys> |
<VersionInfoKeys Name="Comments">Unofficial version DelphiX with hardware acceleration.</VersionInfoKeys> |
</VersionInfoKeys> |
</Delphi.Personality> |
</BorlandProject> |
/VCL_DELPHIX_D6/DelphiX.dcr |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/VCL_DELPHIX_D6/DelphiX.dpk |
---|
0,0 → 1,102 |
package DelphiX; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi'} |
{$IFDEF VER140} { Borland Delphi 6.x } |
{$LIBSUFFIX '60'} |
{$ENDIF} |
{$IFDEF VER145} { Borland C++Builder 6.x } |
{$LIBSUFFIX '65'} |
{$ENDIF} |
{$IFDEF VER150} { Borland Delphi 7.x } |
{$LIBSUFFIX '70'} |
{$ENDIF} |
{$IFDEF VER170} { Borland Delphi 2005 9.x } |
{$LIBSUFFIX '90'} |
{$ENDIF} |
{$IFDEF VER180} { Borland Delphi 2006, Turbo 10.x } // JB |
{$LIBSUFFIX '100'} |
{$ENDIF} |
{$IFDEF VER185} { Borland Delphi 2007 11.x } // JB |
{$LIBSUFFIX '110'} |
{$ENDIF} |
{$IFDEF VER200} { Borland Delphi 2009 12.x } // JB |
{$LIBSUFFIX '120'} |
{$ENDIF} |
{$IFDEF VER210} { Borland Delphi 2010 14.x } // JB |
{$LIBSUFFIX '140'} |
{$ENDIF} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
{Note: must be defined as global for SXMedia using} |
{$DEFINE D3D_deprecated} |
requires |
vcl, |
vclsmp, |
designide, |
//png, |
rtl, |
vcljpg, |
vclx; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}, |
SXReg in '.\SXMedia\SXReg.pas', |
SXEditor in '.\SXMedia\SXEditor.pas', |
SXAbout in '.\SXMedia\SXAbout.pas', |
MpSndSys in '.\SXMedia\MpSndSys.pas', |
SXEngine in '.\SXMedia\SXEngine.pas', |
SXModPlayer in '.\SXMedia\SXModPlayer.pas', |
SXMovie in '.\SXMedia\SXMovie.pas'; |
end. |
/VCL_DELPHIX_D6/DelphiX.dproj |
---|
0,0 → 1,107 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{6ec6e3ed-f62f-4eba-bd15-b71b48535d8d}</ProjectGuid> |
<MainSource>DelphiX.dpk</MainSource> |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
<DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\5.0\Bpl\DelphiX110.bpl</DCC_DependencyCheckOutputName> |
</PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
<Version>7.0</Version> |
<DCC_AssertionsAtRuntime>False</DCC_AssertionsAtRuntime> |
<DCC_DebugInformation>False</DCC_DebugInformation> |
<DCC_WriteableConstants>True</DCC_WriteableConstants> |
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_DcuOutput> |
</DCC_DcuOutput> |
<DCC_ObjOutput> |
</DCC_ObjOutput> |
<DCC_HppOutput> |
</DCC_HppOutput> |
<DCC_DcpOutput> |
</DCC_DcpOutput> |
<DCC_Define>RELEASE</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
<Version>7.0</Version> |
<DCC_AssertionsAtRuntime>False</DCC_AssertionsAtRuntime> |
<DCC_DebugInformation>False</DCC_DebugInformation> |
<DCC_WriteableConstants>True</DCC_WriteableConstants> |
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="PackageDescription">DelphiX - DirectX components for Delphi</Package_Options><Package_Options Name="ImplicitBuild">True</Package_Options><Package_Options Name="DesigntimeOnly">True</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options><Package_Options Name="LibSuffix">110</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">8</VersionInfo><VersionInfo Name="Build">3</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1029</VersionInfo><VersionInfo Name="CodePage">1250</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Unofficial version DelphiX with hardware acceleration.</VersionInfoKeys><VersionInfoKeys Name="FileDescription">unDelphiX for Delphi 6, 7, 2005, 2006, 2007, 2009</VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.8.3</VersionInfoKeys><VersionInfoKeys Name="InternalName">unDelphiX</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright">© Hiroyuki Hori</VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks">© Hiroyuki Hori</VersionInfoKeys><VersionInfoKeys Name="OriginalFilename">DELPHIX</VersionInfoKeys><VersionInfoKeys Name="ProductName">unDelphiX 1.08.3</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.8.3</VersionInfoKeys><VersionInfoKeys Name="Comments">Unofficial version DelphiX with hardware acceleration.</VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">DelphiX.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> |
</ProjectExtensions> |
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> |
<ItemGroup> |
<DelphiCompile Include="DelphiX.dpk"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="$(SystemRoot)\system32\designide.dcp" /> |
<DCCReference Include="$(SystemRoot)\system32\rtl.dcp" /> |
<DCCReference Include="$(SystemRoot)\system32\vcl.dcp" /> |
<DCCReference Include="$(SystemRoot)\system32\vcljpg.dcp" /> |
<DCCReference Include="$(SystemRoot)\system32\vclsmp.dcp" /> |
<DCCReference Include="$(SystemRoot)\system32\vclx.dcp" /> |
<DCCReference Include="DelphiX.dcr" /> |
<DCCReference Include="DelphiX.dcr" /> |
<DCCReference Include="DIB.pas" /> |
<DCCReference Include="DXClass.pas" /> |
<DCCReference Include="DXConsts.pas" /> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXDraws.pas" /> |
<DCCReference Include="DXETable.pas" /> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInput.pas" /> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPlay.pas" /> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXReg.pas" /> |
<DCCReference Include="DXRender.pas" /> |
<DCCReference Include="DXSounds.pas" /> |
<DCCReference Include="DXSprite.pas" /> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWave.pas" /> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas" /> |
</ItemGroup> |
</Project> |
/VCL_DELPHIX_D6/DelphiX.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX100.bdsproj |
---|
0,0 → 1,175 |
<?xml version="1.0" encoding="utf-8"?> |
<BorlandProject> |
<PersonalityInfo> |
<Option> |
<Option Name="Personality">Delphi.Personality</Option> |
<Option Name="ProjectType">VCLApplication</Option> |
<Option Name="Version">1.0</Option> |
<Option Name="GUID">{0B6521B6-2815-496E-BCCD-81462FB6EE32}</Option> |
</Option> |
</PersonalityInfo> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX100.dpk</Source> |
</Source> |
<FileVersion> |
<FileVersion Name="Version">7.0</FileVersion> |
</FileVersion> |
<Compiler> |
<Compiler Name="A">8</Compiler> |
<Compiler Name="B">0</Compiler> |
<Compiler Name="C">0</Compiler> |
<Compiler Name="D">0</Compiler> |
<Compiler Name="E">0</Compiler> |
<Compiler Name="F">0</Compiler> |
<Compiler Name="G">1</Compiler> |
<Compiler Name="H">1</Compiler> |
<Compiler Name="I">1</Compiler> |
<Compiler Name="J">1</Compiler> |
<Compiler Name="K">0</Compiler> |
<Compiler Name="L">0</Compiler> |
<Compiler Name="M">0</Compiler> |
<Compiler Name="N">1</Compiler> |
<Compiler Name="O">1</Compiler> |
<Compiler Name="P">1</Compiler> |
<Compiler Name="Q">0</Compiler> |
<Compiler Name="R">0</Compiler> |
<Compiler Name="S">0</Compiler> |
<Compiler Name="T">0</Compiler> |
<Compiler Name="U">0</Compiler> |
<Compiler Name="V">1</Compiler> |
<Compiler Name="W">0</Compiler> |
<Compiler Name="X">1</Compiler> |
<Compiler Name="Y">0</Compiler> |
<Compiler Name="Z">1</Compiler> |
<Compiler Name="ShowHints">True</Compiler> |
<Compiler Name="ShowWarnings">True</Compiler> |
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> |
<Compiler Name="NamespacePrefix"></Compiler> |
<Compiler Name="GenerateDocumentation">False</Compiler> |
<Compiler Name="DefaultNamespace"></Compiler> |
<Compiler Name="SymbolDeprecated">True</Compiler> |
<Compiler Name="SymbolLibrary">True</Compiler> |
<Compiler Name="SymbolPlatform">True</Compiler> |
<Compiler Name="SymbolExperimental">True</Compiler> |
<Compiler Name="UnitLibrary">True</Compiler> |
<Compiler Name="UnitPlatform">True</Compiler> |
<Compiler Name="UnitDeprecated">True</Compiler> |
<Compiler Name="UnitExperimental">True</Compiler> |
<Compiler Name="HResultCompat">True</Compiler> |
<Compiler Name="HidingMember">True</Compiler> |
<Compiler Name="HiddenVirtual">True</Compiler> |
<Compiler Name="Garbage">True</Compiler> |
<Compiler Name="BoundsError">True</Compiler> |
<Compiler Name="ZeroNilCompat">True</Compiler> |
<Compiler Name="StringConstTruncated">True</Compiler> |
<Compiler Name="ForLoopVarVarPar">True</Compiler> |
<Compiler Name="TypedConstVarPar">True</Compiler> |
<Compiler Name="AsgToTypedConst">True</Compiler> |
<Compiler Name="CaseLabelRange">True</Compiler> |
<Compiler Name="ForVariable">True</Compiler> |
<Compiler Name="ConstructingAbstract">True</Compiler> |
<Compiler Name="ComparisonFalse">True</Compiler> |
<Compiler Name="ComparisonTrue">True</Compiler> |
<Compiler Name="ComparingSignedUnsigned">True</Compiler> |
<Compiler Name="CombiningSignedUnsigned">True</Compiler> |
<Compiler Name="UnsupportedConstruct">True</Compiler> |
<Compiler Name="FileOpen">True</Compiler> |
<Compiler Name="FileOpenUnitSrc">True</Compiler> |
<Compiler Name="BadGlobalSymbol">True</Compiler> |
<Compiler Name="DuplicateConstructorDestructor">True</Compiler> |
<Compiler Name="InvalidDirective">True</Compiler> |
<Compiler Name="PackageNoLink">True</Compiler> |
<Compiler Name="PackageThreadVar">True</Compiler> |
<Compiler Name="ImplicitImport">True</Compiler> |
<Compiler Name="HPPEMITIgnored">True</Compiler> |
<Compiler Name="NoRetVal">True</Compiler> |
<Compiler Name="UseBeforeDef">True</Compiler> |
<Compiler Name="ForLoopVarUndef">True</Compiler> |
<Compiler Name="UnitNameMismatch">True</Compiler> |
<Compiler Name="NoCFGFileFound">True</Compiler> |
<Compiler Name="ImplicitVariants">True</Compiler> |
<Compiler Name="UnicodeToLocale">True</Compiler> |
<Compiler Name="LocaleToUnicode">True</Compiler> |
<Compiler Name="ImagebaseMultiple">True</Compiler> |
<Compiler Name="SuspiciousTypecast">True</Compiler> |
<Compiler Name="PrivatePropAccessor">True</Compiler> |
<Compiler Name="UnsafeType">False</Compiler> |
<Compiler Name="UnsafeCode">False</Compiler> |
<Compiler Name="UnsafeCast">False</Compiler> |
<Compiler Name="OptionTruncated">True</Compiler> |
<Compiler Name="WideCharReduced">True</Compiler> |
<Compiler Name="DuplicatesIgnored">True</Compiler> |
<Compiler Name="UnitInitSeq">True</Compiler> |
<Compiler Name="LocalPInvoke">True</Compiler> |
<Compiler Name="MessageDirective">True</Compiler> |
<Compiler Name="CodePage"></Compiler> |
</Compiler> |
<Linker> |
<Linker Name="MapFile">0</Linker> |
<Linker Name="OutputObjs">0</Linker> |
<Linker Name="GenerateHpps">False</Linker> |
<Linker Name="ConsoleApp">1</Linker> |
<Linker Name="DebugInfo">False</Linker> |
<Linker Name="RemoteSymbols">False</Linker> |
<Linker Name="GenerateDRC">False</Linker> |
<Linker Name="MinStackSize">16384</Linker> |
<Linker Name="MaxStackSize">1048576</Linker> |
<Linker Name="ImageBase">4194304</Linker> |
<Linker Name="ExeDescription">DelphiX - DirectX components for Delphi</Linker> |
</Linker> |
<Directories> |
<Directories Name="OutputDir"></Directories> |
<Directories Name="UnitOutputDir"></Directories> |
<Directories Name="PackageDLLOutputDir"></Directories> |
<Directories Name="PackageDCPOutputDir"></Directories> |
<Directories Name="SearchPath"></Directories> |
<Directories Name="Packages"></Directories> |
<Directories Name="Conditionals"></Directories> |
<Directories Name="DebugSourceDirs"></Directories> |
<Directories Name="UsePackages">False</Directories> |
</Directories> |
<Parameters> |
<Parameters Name="RunParams"></Parameters> |
<Parameters Name="HostApplication"></Parameters> |
<Parameters Name="Launcher"></Parameters> |
<Parameters Name="UseLauncher">False</Parameters> |
<Parameters Name="DebugCWD"></Parameters> |
<Parameters Name="Debug Symbols Search Path"></Parameters> |
<Parameters Name="LoadAllSymbols">True</Parameters> |
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
</Parameters> |
<Language> |
<Language Name="ActiveLang"></Language> |
<Language Name="ProjectLang">$00000000</Language> |
<Language Name="RootDir"></Language> |
</Language> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">8</VersionInfo> |
<VersionInfo Name="Build">4</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1029</VersionInfo> |
<VersionInfo Name="CodePage">1250</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName">Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="FileDescription">unDelphiX for Delphi 2006/Turbo</VersionInfoKeys> |
<VersionInfoKeys Name="FileVersion">1.0.9.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName">unDelphiX</VersionInfoKeys> |
<VersionInfoKeys Name="LegalCopyright">© Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="LegalTrademarks">© Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="OriginalFilename">DELPHIX</VersionInfoKeys> |
<VersionInfoKeys Name="ProductName">unDelphiX 1.09.0</VersionInfoKeys> |
<VersionInfoKeys Name="ProductVersion">1.0.9.0</VersionInfoKeys> |
<VersionInfoKeys Name="Comments">Unofficial version DelphiX with hardware acceleration.</VersionInfoKeys> |
</VersionInfoKeys> |
</Delphi.Personality> |
</BorlandProject> |
/VCL_DELPHIX_D6/DelphiX100.dpk |
---|
0,0 → 1,73 |
package DelphiX100; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 2006'} |
{$DESIGNONLY} |
{$IMPLICITBUILD OFF} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vcljpg, |
vclx; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX100.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX110.dpk |
---|
0,0 → 1,72 |
package DelphiX110; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 2007'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vcljpg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX110.dproj |
---|
0,0 → 1,102 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{5feb56dc-7ab1-463a-b31f-4b2e44162275}</ProjectGuid> |
<MainSource>DelphiX110.dpk</MainSource> |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
<DCC_DependencyCheckOutputName>C:\Documents and Settings\Micrel\Dokumenty\RAD Studio\5.0\Bpl\DelphiX110.bpl</DCC_DependencyCheckOutputName> |
</PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
<Version>7.0</Version> |
<DCC_AssertionsAtRuntime>False</DCC_AssertionsAtRuntime> |
<DCC_DebugInformation>False</DCC_DebugInformation> |
<DCC_WriteableConstants>True</DCC_WriteableConstants> |
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_Define>RELEASE</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
<Version>7.0</Version> |
<DCC_AssertionsAtRuntime>False</DCC_AssertionsAtRuntime> |
<DCC_DebugInformation>False</DCC_DebugInformation> |
<DCC_WriteableConstants>True</DCC_WriteableConstants> |
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="PackageDescription">DelphiX - DirectX components for Delphi 2007</Package_Options><Package_Options Name="ImplicitBuild">True</Package_Options><Package_Options Name="DesigntimeOnly">True</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">8</VersionInfo><VersionInfo Name="Build">4</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1029</VersionInfo><VersionInfo Name="CodePage">1250</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Hiroyuki Hori</VersionInfoKeys><VersionInfoKeys Name="FileDescription">unDelphiX for Delphi 2007</VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.8.4</VersionInfoKeys><VersionInfoKeys Name="InternalName">unDelphiX</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright">© Hiroyuki Hori</VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks">© Hiroyuki Hori</VersionInfoKeys><VersionInfoKeys Name="OriginalFilename">DELPHIX</VersionInfoKeys><VersionInfoKeys Name="ProductName">unDelphiX 1.08.4</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.8.4</VersionInfoKeys><VersionInfoKeys Name="Comments">Unofficial version DelphiX with hardware acceleration.</VersionInfoKeys></VersionInfoKeys><Excluded_Packages> |
<Excluded_Packages Name="C:\Documents and Settings\All Users\Dokumenty\RAD Studio\5.0\Bpl\jbLib110.bpl">jbLib (part 1)</Excluded_Packages> |
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> |
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> |
</Excluded_Packages><Source><Source Name="MainSource">DelphiX110.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> |
</ProjectExtensions> |
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> |
<ItemGroup> |
<DelphiCompile Include="DelphiX110.dpk"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr" /> |
<DCCReference Include="DelphiX.dcr" /> |
<DCCReference Include="designide.dcp" /> |
<DCCReference Include="DIB.pas" /> |
<DCCReference Include="DXClass.pas" /> |
<DCCReference Include="DXConsts.pas" /> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXDraws.pas" /> |
<DCCReference Include="DXETable.pas" /> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInput.pas" /> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPlay.pas" /> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXReg.pas" /> |
<DCCReference Include="DXRender.pas" /> |
<DCCReference Include="DXSounds.pas" /> |
<DCCReference Include="DXSprite.pas" /> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWave.pas" /> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="rtl.dcp" /> |
<DCCReference Include="TurboPixels.pas" /> |
<DCCReference Include="vcl.dcp" /> |
<DCCReference Include="vcljpg.dcp" /> |
<DCCReference Include="vclsmp.dcp" /> |
</ItemGroup> |
</Project> |
/VCL_DELPHIX_D6/DelphiX110.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX120.dpk |
---|
0,0 → 1,73 |
package DelphiX120; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 2009'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX120.dproj |
---|
0,0 → 1,175 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{144096F0-D488-4452-8A4D-981EBF9B99CC}</ProjectGuid> |
<MainSource>DelphiX120.dpk</MainSource> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
<ProjectVersion>12.0</ProjectVersion> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<DCC_DebugInformation>false</DCC_DebugInformation> |
<DCC_WriteableConstants>true</DCC_WriteableConstants> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_Platform>x86</DCC_Platform> |
<DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Dokumenty\RAD Studio\6.0\Bpl\DelphiX120.bpl</DCC_DependencyCheckOutputName> |
<DCC_Description>DelphiX - DirectX components for Delphi 2009</DCC_Description> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_N>false</DCC_N> |
<DCC_K>false</DCC_K> |
<GenDll>true</GenDll> |
<DCC_S>false</DCC_S> |
<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime> |
<GenPackage>true</GenPackage> |
<DCC_F>false</DCC_F> |
<DCC_E>false</DCC_E> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_DebugInformation>false</DCC_DebugInformation> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="DelphiX120.dpk"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<DCCReference Include="DelphiX.dcr"/> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX120.dpk</Source> |
</Source> |
<Parameters> |
<Parameters Name="UseLauncher">False</Parameters> |
<Parameters Name="LoadAllSymbols">True</Parameters> |
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
</Parameters> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">8</VersionInfo> |
<VersionInfo Name="Build">4</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1029</VersionInfo> |
<VersionInfo Name="CodePage">1250</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName">Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="FileDescription">unDelphiX for Delphi 2009</VersionInfoKeys> |
<VersionInfoKeys Name="FileVersion">1.0.8.4</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName">unDelphiX</VersionInfoKeys> |
<VersionInfoKeys Name="LegalCopyright">© Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="LegalTrademarks">© Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="OriginalFilename">DELPHIX</VersionInfoKeys> |
<VersionInfoKeys Name="ProductName">unDelphiX 1.08.4</VersionInfoKeys> |
<VersionInfoKeys Name="ProductVersion">1.0.8.4</VersionInfoKeys> |
<VersionInfoKeys Name="Comments">Unofficial version DelphiX with hardware acceleration.</VersionInfoKeys> |
</VersionInfoKeys> |
<Excluded_Packages> |
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k120.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> |
<Excluded_Packages Name="$(BDS)\bin\dclofficexp120.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> |
</Excluded_Packages> |
</Delphi.Personality> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
</Project> |
/VCL_DELPHIX_D6/DelphiX120.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX140.dpk |
---|
0,0 → 1,73 |
package DelphiX140; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi 2010'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX140.dproj |
---|
0,0 → 1,172 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{EDE2D9FF-D101-436D-BE6E-B71045750312}</ProjectGuid> |
<MainSource>DelphiX140.dpk</MainSource> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
<ProjectVersion>12.0</ProjectVersion> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<DCC_DebugInformation>false</DCC_DebugInformation> |
<DCC_WriteableConstants>true</DCC_WriteableConstants> |
<DCC_DependencyCheckOutputName>..\..\..\Bpl\DelphiX140.bpl</DCC_DependencyCheckOutputName> |
<DCC_Platform>x86</DCC_Platform> |
<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> |
<DCC_Description>DelphiX - DirectX components for Delphi 2010</DCC_Description> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_N>false</DCC_N> |
<DCC_K>false</DCC_K> |
<GenDll>true</GenDll> |
<DCC_S>false</DCC_S> |
<DCC_F>false</DCC_F> |
<GenPackage>true</GenPackage> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_E>false</DCC_E> |
<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_DebugInformation>false</DCC_DebugInformation> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="DelphiX140.dpk"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX140.dpk</Source> |
</Source> |
<Parameters> |
<Parameters Name="UseLauncher">False</Parameters> |
<Parameters Name="LoadAllSymbols">True</Parameters> |
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters> |
</Parameters> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">8</VersionInfo> |
<VersionInfo Name="Build">4</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1029</VersionInfo> |
<VersionInfo Name="CodePage">1250</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName">Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="FileDescription">unDelphiX for Delphi 2010</VersionInfoKeys> |
<VersionInfoKeys Name="FileVersion">1.0.8.4</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName">unDelphiX</VersionInfoKeys> |
<VersionInfoKeys Name="LegalCopyright">© Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="LegalTrademarks">© Hiroyuki Hori</VersionInfoKeys> |
<VersionInfoKeys Name="OriginalFilename">DELPHIX</VersionInfoKeys> |
<VersionInfoKeys Name="ProductName">unDelphiX 1.08.4</VersionInfoKeys> |
<VersionInfoKeys Name="ProductVersion">1.0.8.4</VersionInfoKeys> |
<VersionInfoKeys Name="Comments">Unofficial version DelphiX with hardware acceleration.</VersionInfoKeys> |
<VersionInfoKeys Name="LastCompiledTime">25.2.2011 13:27:10</VersionInfoKeys> |
</VersionInfoKeys> |
</Delphi.Personality> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
</Project> |
/VCL_DELPHIX_D6/DelphiX140.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX140_Icon.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX150.dpk |
---|
0,0 → 1,73 |
package DelphiX150; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi XE'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX150.dproj |
---|
0,0 → 1,175 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{40C51905-1F0A-4D72-A87A-C9C8D9665324}</ProjectGuid> |
<MainSource>DelphiX150.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<Platform>Win32</Platform> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> |
<ProjectVersion>12.3</ProjectVersion> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_WriteableConstants>true</DCC_WriteableConstants> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_DebugInformation>false</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<DCC_Description>DelphiX - DirectX components for Delphi XE</DCC_Description> |
<DCC_N>false</DCC_N> |
<DCC_K>false</DCC_K> |
<GenDll>true</GenDll> |
<DCC_S>false</DCC_S> |
<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime> |
<GenPackage>true</GenPackage> |
<DCC_F>false</DCC_F> |
<DCC_E>false</DCC_E> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="DelphiX150.dpk"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> |
<Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX150.dpk</Source> |
</Source> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1029</VersionInfo> |
<VersionInfo Name="CodePage">1250</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName"/> |
<VersionInfoKeys Name="FileDescription"/> |
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName"/> |
<VersionInfoKeys Name="LegalCopyright"/> |
<VersionInfoKeys Name="LegalTrademarks"/> |
<VersionInfoKeys Name="OriginalFilename"/> |
<VersionInfoKeys Name="ProductName"/> |
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Comments"/> |
</VersionInfoKeys> |
<Excluded_Packages> |
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k150.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> |
<Excluded_Packages Name="$(BDSBIN)\dclofficexp150.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> |
</Excluded_Packages> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
</Project> |
/VCL_DELPHIX_D6/DelphiX160.dpk |
---|
0,0 → 1,73 |
package DelphiX160; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi XE2'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX170.dpk |
---|
0,0 → 1,76 |
package DelphiX170; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO ON} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi XE3'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX170.dproj |
---|
0,0 → 1,200 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{1B8334F4-5772-413C-A193-734E8502FFD1}</ProjectGuid> |
<MainSource>DelphiX170.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>14.4</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<DCC_E>false</DCC_E> |
<DCC_S>false</DCC_S> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_K>false</DCC_K> |
<DCC_Description>DelphiX - DirectX components for Delphi XE3</DCC_Description> |
<GenPackage>true</GenPackage> |
<DCC_N>false</DCC_N> |
<DCC_F>false</DCC_F> |
<GenDll>true</GenDll> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>rtl;vclimg;vcl;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>false</DCC_DebugInformation> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX170.dpk</Source> |
</Source> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">False</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1029</VersionInfo> |
<VersionInfo Name="CodePage">1250</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName"/> |
<VersionInfoKeys Name="FileDescription"/> |
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName"/> |
<VersionInfoKeys Name="LegalCopyright"/> |
<VersionInfoKeys Name="LegalTrademarks"/> |
<VersionInfoKeys Name="OriginalFilename"/> |
<VersionInfoKeys Name="ProductName"/> |
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Comments"/> |
<VersionInfoKeys Name="CFBundleName"/> |
<VersionInfoKeys Name="CFBundleDisplayName"/> |
<VersionInfoKeys Name="CFBundleIdentifier"/> |
<VersionInfoKeys Name="CFBundleVersion"/> |
<VersionInfoKeys Name="CFBundlePackageType"/> |
<VersionInfoKeys Name="CFBundleSignature"/> |
<VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/> |
<VersionInfoKeys Name="CFBundleExecutable"/> |
</VersionInfoKeys> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX170.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX180.dpk |
---|
0,0 → 1,76 |
package DelphiX180; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO ON} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi XE4'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX180.dproj |
---|
0,0 → 1,215 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{0B5603A8-5BDE-4468-8CCA-29D742741EFB}</ProjectGuid> |
<MainSource>DelphiX180.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>14.6</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> |
<Base_Win64>true</Base_Win64> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> |
<Cfg_2_Win32>true</Cfg_2_Win32> |
<CfgParent>Cfg_2</CfgParent> |
<Cfg_2>true</Cfg_2> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_N>false</DCC_N> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<GenDll>true</GenDll> |
<DCC_Description>DelphiX - DirectX components for Delphi XE3</DCC_Description> |
<DCC_K>false</DCC_K> |
<DCC_S>false</DCC_S> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<GenPackage>true</GenPackage> |
<DCC_E>false</DCC_E> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<DCC_F>false</DCC_F> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=;CFBundleDisplayName=;UIDeviceFamily=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;UISupportedInterfaceOrientations=;CFBundleExecutable=;CFBundleResourceSpecification=;LSRequiresIPhoneOS=;CFBundleInfoDictionaryVersion=;CFBundleDevelopmentRegion=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_UsePackage>vcl;rtl;vclimg;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
<DCC_Namespace>Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win64)'!=''"> |
<DCC_UsePackage>vcl;rtl;vclimg;vclx;VclSmp;$(DCC_UsePackage)</DCC_UsePackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_DebugInformation>false</DCC_DebugInformation> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX180.dpk</Source> |
</Source> |
<VersionInfo> |
<VersionInfo Name="IncludeVerInfo">False</VersionInfo> |
<VersionInfo Name="AutoIncBuild">False</VersionInfo> |
<VersionInfo Name="MajorVer">1</VersionInfo> |
<VersionInfo Name="MinorVer">0</VersionInfo> |
<VersionInfo Name="Release">0</VersionInfo> |
<VersionInfo Name="Build">0</VersionInfo> |
<VersionInfo Name="Debug">False</VersionInfo> |
<VersionInfo Name="PreRelease">False</VersionInfo> |
<VersionInfo Name="Special">False</VersionInfo> |
<VersionInfo Name="Private">False</VersionInfo> |
<VersionInfo Name="DLL">False</VersionInfo> |
<VersionInfo Name="Locale">1029</VersionInfo> |
<VersionInfo Name="CodePage">1250</VersionInfo> |
</VersionInfo> |
<VersionInfoKeys> |
<VersionInfoKeys Name="CompanyName"/> |
<VersionInfoKeys Name="FileDescription"/> |
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="InternalName"/> |
<VersionInfoKeys Name="LegalCopyright"/> |
<VersionInfoKeys Name="LegalTrademarks"/> |
<VersionInfoKeys Name="OriginalFilename"/> |
<VersionInfoKeys Name="ProductName"/> |
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> |
<VersionInfoKeys Name="Comments"/> |
<VersionInfoKeys Name="CFBundleName"/> |
<VersionInfoKeys Name="CFBundleDisplayName"/> |
<VersionInfoKeys Name="UIDeviceFamily"/> |
<VersionInfoKeys Name="CFBundleIdentifier"/> |
<VersionInfoKeys Name="CFBundleVersion"/> |
<VersionInfoKeys Name="CFBundlePackageType"/> |
<VersionInfoKeys Name="CFBundleSignature"/> |
<VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/> |
<VersionInfoKeys Name="UISupportedInterfaceOrientations"/> |
<VersionInfoKeys Name="CFBundleExecutable"/> |
<VersionInfoKeys Name="CFBundleResourceSpecification"/> |
<VersionInfoKeys Name="LSRequiresIPhoneOS"/> |
<VersionInfoKeys Name="CFBundleInfoDictionaryVersion"/> |
<VersionInfoKeys Name="CFBundleDevelopmentRegion"/> |
</VersionInfoKeys> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX180.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX190.dpk |
---|
0,0 → 1,76 |
package DelphiX190; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} |
{$ALIGN 8} |
{$ASSERTIONS ON} |
{$BOOLEVAL OFF} |
{$DEBUGINFO ON} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS ON} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION OFF} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO ON} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES ON} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST OFF} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DEFINE DEBUG} |
{$ENDIF IMPLICITBUILDING} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi XE5'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX190.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX200.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX210.dpk |
---|
0,0 → 1,52 |
package DelphiX210; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi XE7'} |
{$DESIGNONLY} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vclx, |
vclimg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}{$IFDEF SXEXTENSIONS}, |
SXReg in 'SXMedia\SXReg.pas', |
MpSndSys in 'SXMedia\MpSndSys.pas', |
SXAbout in 'SXMedia\SXAbout.pas' {AboutBox}, |
SXEditor in 'SXMedia\SXEditor.pas', |
SXEngine in 'SXMedia\SXEngine.pas', |
SXModPlayer in 'SXMedia\SXModPlayer.pas', |
SXMovie in 'SXMedia\SXMovie.pas'{$ENDIF}; |
end. |
/VCL_DELPHIX_D6/DelphiX210.dproj |
---|
0,0 → 1,160 |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
<PropertyGroup> |
<ProjectGuid>{578A4D41-825A-401C-AF9B-AC5829013818}</ProjectGuid> |
<MainSource>DelphiX210.dpk</MainSource> |
<Base>True</Base> |
<Config Condition="'$(Config)'==''">Debug</Config> |
<TargetedPlatforms>1</TargetedPlatforms> |
<AppType>Package</AppType> |
<FrameworkType>VCL</FrameworkType> |
<ProjectVersion>16.0</ProjectVersion> |
<Platform Condition="'$(Platform)'==''">Win32</Platform> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> |
<Base_Win32>true</Base_Win32> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> |
<Cfg_1>true</Cfg_1> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> |
<Cfg_2>true</Cfg_2> |
<CfgParent>Base</CfgParent> |
<Base>true</Base> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base)'!=''"> |
<DCC_Description>DelphiX - DirectX components for Delphi XE7</DCC_Description> |
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace)</DCC_Namespace> |
<DCC_E>false</DCC_E> |
<DCC_ImageBase>00400000</DCC_ImageBase> |
<VerInfo_Locale>1029</VerInfo_Locale> |
<DCC_K>false</DCC_K> |
<GenDll>true</GenDll> |
<DCC_F>false</DCC_F> |
<SanitizedProjectName>DelphiX210</SanitizedProjectName> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys> |
<DCC_S>false</DCC_S> |
<DesignOnlyPackage>true</DesignOnlyPackage> |
<DCC_N>false</DCC_N> |
<GenPackage>true</GenPackage> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Base_Win32)'!=''"> |
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> |
<VerInfo_Locale>1033</VerInfo_Locale> |
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_1)'!=''"> |
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> |
<DCC_DebugInformation>0</DCC_DebugInformation> |
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> |
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> |
</PropertyGroup> |
<PropertyGroup Condition="'$(Cfg_2)'!=''"> |
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> |
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> |
<DCC_Optimize>false</DCC_Optimize> |
</PropertyGroup> |
<ItemGroup> |
<DelphiCompile Include="$(MainSource)"> |
<MainSource>MainSource</MainSource> |
</DelphiCompile> |
<DCCReference Include="DelphiX.dcr"/> |
<DCCReference Include="vcl.dcp"/> |
<DCCReference Include="vclsmp.dcp"/> |
<DCCReference Include="designide.dcp"/> |
<DCCReference Include="rtl.dcp"/> |
<DCCReference Include="vclx.dcp"/> |
<DCCReference Include="vclimg.dcp"/> |
<DCCReference Include="DIB.pas"/> |
<DCCReference Include="DXClass.pas"/> |
<DCCReference Include="DXConsts.pas"/> |
<DCCReference Include="DXDraws.pas"/> |
<DCCReference Include="DXETable.pas"/> |
<DCCReference Include="DXInput.pas"/> |
<DCCReference Include="DXPlay.pas"/> |
<DCCReference Include="DXPlayFm.pas"> |
<Form>DelphiXDXPlayForm</Form> |
</DCCReference> |
<DCCReference Include="DXRender.pas"/> |
<DCCReference Include="DXReg.pas"/> |
<DCCReference Include="DXSounds.pas"/> |
<DCCReference Include="DXSprite.pas"/> |
<DCCReference Include="DXWave.pas"/> |
<DCCReference Include="DXFFBEdit.pas"> |
<Form>DelphiXFFEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGUIDEdit.pas"> |
<Form>DelphiXGUIDEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXInptEdit.pas"> |
<Form>DelphiXInputEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXPictEdit.pas"> |
<Form>DelphiXPictureEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXWaveEdit.pas"> |
<Form>DelphiXWaveEditForm</Form> |
</DCCReference> |
<DCCReference Include="TurboPixels.pas"/> |
<DCCReference Include="DXSpriteEdit.pas"> |
<Form>DelphiXSpriteEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMidiEdit.pas"> |
<Form>DelphiXMidiEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEditProperties.pas"> |
<Form>DelphiXMapEditPropertiesForm</Form> |
</DCCReference> |
<DCCReference Include="DXMapEdit.pas"> |
<Form>DelphiXMapEditForm</Form> |
</DCCReference> |
<DCCReference Include="DxPathEdit.pas"> |
<Form>DelphiXPathsEditForm</Form> |
</DCCReference> |
<DCCReference Include="DXGlueItEdit.pas"> |
<Form>DXGlueItEditor</Form> |
</DCCReference> |
<DCCReference Include="DXDIBEffectEdit.pas"> |
<Form>TDelphiXDIBEffectEditForm</Form> |
</DCCReference> |
<BuildConfiguration Include="Debug"> |
<Key>Cfg_2</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
<BuildConfiguration Include="Base"> |
<Key>Base</Key> |
</BuildConfiguration> |
<BuildConfiguration Include="Release"> |
<Key>Cfg_1</Key> |
<CfgParent>Base</CfgParent> |
</BuildConfiguration> |
</ItemGroup> |
<ProjectExtensions> |
<Borland.Personality>Delphi.Personality.12</Borland.Personality> |
<Borland.ProjectType>Package</Borland.ProjectType> |
<BorlandProject> |
<Delphi.Personality> |
<Source> |
<Source Name="MainSource">DelphiX210.dpk</Source> |
</Source> |
</Delphi.Personality> |
<Platforms> |
<Platform value="Android">False</Platform> |
<Platform value="iOSDevice">False</Platform> |
<Platform value="iOSSimulator">False</Platform> |
<Platform value="Win32">True</Platform> |
<Platform value="Win64">False</Platform> |
</Platforms> |
</BorlandProject> |
<ProjectFileVersion>12</ProjectFileVersion> |
</ProjectExtensions> |
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> |
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> |
</Project> |
/VCL_DELPHIX_D6/DelphiX210.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX220.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX30.dpk |
---|
0,0 → 1,60 |
package DelphiX30; |
{$R *.RES} |
{$R 'DelphiX.dcr'} |
{$ALIGN ON} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS OFF} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $00400000} |
{$DESCRIPTION 'DelphiX - DirectX component collection for Delphi'} |
{$IMPLICITBUILD ON} |
requires |
vcl30, |
VCLSMP30; |
contains |
DIB, |
DXClass, |
DXConsts, |
DXDraws, |
DXETable, |
DXInput, |
DXPlay, |
DXPlayFm, |
DXRender, |
DXReg, |
DXSounds, |
DXSprite, |
DXWave, |
DXFFBEdit, |
DXGUIDEdit, |
DXInptEdit, |
DXPictEdit, |
DXWaveEdit, |
turbopixels, |
DXSpriteEdit, |
DXMidiEdit, |
DXMapEdit, |
DXMapEditProperties, |
DXPathEdit, |
DXDIBEffectEdit; |
end. |
/VCL_DELPHIX_D6/DelphiX30.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX40.dpk |
---|
0,0 → 1,62 |
package DelphiX40; |
{$R *.RES} |
{$R 'DelphiX.dcr'} |
{$ALIGN ON} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS OFF} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $00400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi'} |
{$IMPLICITBUILD ON} |
requires |
vcl40, |
VCLSMP40, |
vcljpg40; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
turbopixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas', |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DXPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}; |
end. |
/VCL_DELPHIX_D6/DelphiX40.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX50.dpk |
---|
0,0 → 1,62 |
package DelphiX50; |
{$R *.RES} |
{$R 'DelphiX.dcr'} |
{$ALIGN ON} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS OFF} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi'} |
{$IMPLICITBUILD ON} |
requires |
vcl50, |
VCLSMP50, |
vcljpg50; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
turbopixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DXPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}; |
end. |
/VCL_DELPHIX_D6/DelphiX50.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX60.dpk |
---|
0,0 → 1,64 |
package DelphiX60; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS OFF} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi'} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vcljpg; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DXPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}; |
end. |
/VCL_DELPHIX_D6/DelphiX60.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX70.dpk |
---|
0,0 → 1,65 |
package DelphiX70; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS OFF} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi'} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vcljpg, |
vclx; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DXPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}; |
end. |
/VCL_DELPHIX_D6/DelphiX70.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DelphiX90.dpk |
---|
0,0 → 1,65 |
package DelphiX90; |
{$R *.res} |
{$R 'DelphiX.dcr'} |
{$ALIGN 8} |
{$ASSERTIONS OFF} |
{$BOOLEVAL OFF} |
{$DEBUGINFO OFF} |
{$EXTENDEDSYNTAX ON} |
{$IMPORTEDDATA ON} |
{$IOCHECKS ON} |
{$LOCALSYMBOLS OFF} |
{$LONGSTRINGS ON} |
{$OPENSTRINGS ON} |
{$OPTIMIZATION ON} |
{$OVERFLOWCHECKS OFF} |
{$RANGECHECKS OFF} |
{$REFERENCEINFO OFF} |
{$SAFEDIVIDE OFF} |
{$STACKFRAMES OFF} |
{$TYPEDADDRESS OFF} |
{$VARSTRINGCHECKS ON} |
{$WRITEABLECONST ON} |
{$MINENUMSIZE 1} |
{$IMAGEBASE $400000} |
{$DESCRIPTION 'DelphiX - DirectX components for Delphi'} |
{$IMPLICITBUILD ON} |
requires |
vcl, |
vclsmp, |
designide, |
rtl, |
vcljpg, |
vclx; |
contains |
DIB in 'DIB.pas', |
DXClass in 'DXClass.pas', |
DXConsts in 'DXConsts.pas', |
DXDraws in 'DXDraws.pas', |
DXETable in 'DXETable.pas', |
DXInput in 'DXInput.pas', |
DXPlay in 'DXPlay.pas', |
DXPlayFm in 'DXPlayFm.pas' {DelphiXDXPlayForm}, |
DXRender in 'DXRender.pas', |
DXReg in 'DXReg.pas', |
DXSounds in 'DXSounds.pas', |
DXSprite in 'DXSprite.pas', |
DXWave in 'DXWave.pas', |
DXFFBEdit in 'DXFFBEdit.pas' {DelphiXFFEditForm}, |
DXGUIDEdit in 'DXGUIDEdit.pas' {DelphiXGUIDEditForm}, |
DXInptEdit in 'DXInptEdit.pas' {DelphiXInputEditForm}, |
DXPictEdit in 'DXPictEdit.pas' {DelphiXPictureEditForm}, |
DXWaveEdit in 'DXWaveEdit.pas' {DelphiXWaveEditForm}, |
TurboPixels in 'TurboPixels.pas', |
DXSpriteEdit in 'DXSpriteEdit.pas' {DelphiXSpriteEditForm}, |
DXMidiEdit in 'DXMidiEdit.pas' {DelphiXMidiEditForm}, |
DXMapEditProperties in 'DXMapEditProperties.pas' {DelphiXMapEditPropertiesForm}, |
DXMapEdit in 'DXMapEdit.pas' {DelphiXMapEditForm}, |
DxPathEdit in 'DxPathEdit.pas' {DelphiXPathsEditForm}, |
DXGlueItEdit in 'DXGlueItEdit.pas' {DXGlueItEditor}, |
DXDIBEffectEdit in 'DXDIBEffectEdit.pas' {TDelphiXDIBEffectEditForm}; |
end. |
/VCL_DELPHIX_D6/DelphiX90.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/VCL_DELPHIX_D6/DxPathEdit.dfm |
---|
0,0 → 1,676 |
object DelphiXPathsEditForm: TDelphiXPathsEditForm |
Left = 292 |
Top = 187 |
Width = 610 |
Height = 508 |
Caption = 'Paths Editor' |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -11 |
Font.Name = 'Tahoma' |
Font.Style = [] |
OldCreateOrder = True |
Position = poScreenCenter |
OnCreate = FormCreate |
OnDestroy = FormDestroy |
PixelsPerInch = 96 |
TextHeight = 13 |
object Panel2: TPanel |
Left = 0 |
Top = 74 |
Width = 602 |
Height = 381 |
Align = alClient |
BevelOuter = bvNone |
BorderWidth = 5 |
Caption = 'Panel2' |
TabOrder = 0 |
object ScrollBox1: TScrollBox |
Left = 5 |
Top = 5 |
Width = 592 |
Height = 371 |
Align = alClient |
TabOrder = 0 |
object Pane: TPanel |
Left = 0 |
Top = 0 |
Width = 640 |
Height = 480 |
BevelOuter = bvNone |
Color = clBlack |
TabOrder = 0 |
OnResize = PaneResize |
object Image1: TImage |
Left = 0 |
Top = 0 |
Width = 640 |
Height = 480 |
Cursor = crCross |
Align = alClient |
end |
object Shape1: TShape |
Left = 16 |
Top = 16 |
Width = 16 |
Height = 16 |
Brush.Color = clYellow |
Pen.Color = clRed |
OnMouseDown = ShapeMouseDown |
OnMouseMove = ShapeMouseMove |
OnMouseUp = ShapeMouseUp |
end |
end |
end |
end |
object Panel1: TPanel |
Left = 0 |
Top = 0 |
Width = 602 |
Height = 74 |
Align = alTop |
BevelOuter = bvNone |
BorderStyle = bsSingle |
TabOrder = 1 |
object Label1: TLabel |
Left = 4 |
Top = 28 |
Width = 97 |
Height = 13 |
Caption = 'Active editing trace:' |
FocusControl = cbListOfTraces |
end |
object LAmount: TLabel |
Left = 124 |
Top = 28 |
Width = 41 |
Height = 13 |
Caption = 'Amount:' |
FocusControl = eAmount |
end |
object Label2: TLabel |
Left = 172 |
Top = 28 |
Width = 54 |
Height = 13 |
Caption = 'Show (ms):' |
FocusControl = eShowOn |
end |
object Label3: TLabel |
Left = 464 |
Top = 48 |
Width = 11 |
Height = 13 |
Caption = 'R:' |
end |
object cbListOfTraces: TComboBox |
Left = 4 |
Top = 44 |
Width = 113 |
Height = 21 |
Style = csDropDownList |
ItemHeight = 13 |
TabOrder = 1 |
OnChange = cbListOfTracesChange |
end |
object eAmount: TEdit |
Left = 124 |
Top = 44 |
Width = 41 |
Height = 21 |
TabOrder = 2 |
Text = '32' |
end |
object btnNewTrace: TButton |
Left = 312 |
Top = 40 |
Width = 65 |
Height = 25 |
Caption = 'New Trace' |
TabOrder = 5 |
OnClick = btnNewTraceClick |
end |
object eShowOn: TEdit |
Left = 172 |
Top = 44 |
Width = 41 |
Height = 21 |
TabOrder = 3 |
Text = '25' |
end |
object Panel12: TPanel |
Left = 0 |
Top = 0 |
Width = 521 |
Height = 28 |
BevelOuter = bvLowered |
TabOrder = 0 |
object btnSetTimming: TSpeedButton |
Left = 2 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Blit show time refresh.' |
AllowAllUp = True |
GroupIndex = 2 |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
80000080000000808000800000008000800080800000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777777770000077777777700FBFBF007777770BFBFBFBFB077770BFBFBFBFBF |
B07770FB0BFBFBFBF0770FBFB0BFBFBFBF070BFBFB0BFBFBFB070FBFBFB00000 |
0F070BFBFBFBFBFBFB070FBFBFBFBFBFBF0770FBFBFBFBFBF07770BFBFBFBFBF |
B077770BFBF0FBFB077777700FBFBF0077777777700000777777} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnSetTimmingClick |
end |
object btnLine: TSpeedButton |
Left = 32 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Create line.' |
AllowAllUp = True |
GroupIndex = 3 |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
8000008000000080800080000000800080008080000080808000C0C0C0000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00888888888888 |
8888888888888888888888888888888888888888888888880888888888888880 |
8888888888888808888888888888808888888888888808888888888888808888 |
8888888888088888888888888088888888888888088888888888888088888888 |
8888880888888888888888888888888888888888888888888888} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnLineClick |
end |
object btnCircle: TSpeedButton |
Left = 56 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Create ellipse/circle.' |
AllowAllUp = True |
GroupIndex = 3 |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
8000008000000080800080000000800080008080000080808000C0C0C0000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00888888888888 |
8888888888888888888888888888888888888888888888888888888800000088 |
8888880088888800888880888888888808880888888888888088088888888888 |
8088088888888888808880888888888808888800888888008888888800000088 |
8888888888888888888888888888888888888888888888888888} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnLineClick |
end |
object btnSelectionArea: TSpeedButton |
Left = 132 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Selection.' |
AllowAllUp = True |
GroupIndex = 4 |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777700000007770777777777077700000007778777777777877700000007080 |
8080808080807000000077788888888888777000000077708888888880777000 |
0000777888888888887770000000777088888888807770000000777888888888 |
8877700000007770888888888077700000007778888888888877700000007770 |
8888888880777000000077788888888888777000000070808080808080807000 |
0000777877777777787770000000777077777777707770000000777777777777 |
777770000000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnSelectionAreaClick |
end |
object btnSelectAll: TSpeedButton |
Left = 180 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Select single.' |
Enabled = False |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777700000007777000777777000700000007777000444444000700000007777 |
0007777770007000000077777477777777477000000000077477777777477000 |
0000000444777777774770000000000774777777774770000000747774777777 |
7747700000007477000777777000700000007477000444444000700000007477 |
0007747770007000000074777777747777777000000000077777000777777000 |
0000000444440007777770000000000777770007777770000000777777777777 |
777770000000} |
ParentShowHint = False |
ShowHint = True |
end |
object btnGrid: TSpeedButton |
Left = 156 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Show/hide grid...' |
AllowAllUp = True |
GroupIndex = 5 |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777777877877877877777787787787787777880880880880887777877877877 |
8777777877877877877778808808808808877778778778778777777877877877 |
8777788088088088088777787787787787777778778778778777788088088088 |
0887777877877877877777787787787787777777777777777777} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnGridClick |
end |
object brnSelectAsOne: TSpeedButton |
Left = 204 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'SSelect one.' |
Enabled = False |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777700000007000777777777700000000007000774444444400000000007000 |
7747777777000000000077777747777777747000000077777747777777747000 |
0000774444477777777470000000774777477777777470000000774777477777 |
7774700000007747774777777774700000007747774444444444700000007747 |
7777774777777000000077477777774777777000000070007777774777000000 |
0000700044444447770000000000700077777777770000000000777777777777 |
777770000000} |
ParentShowHint = False |
ShowHint = True |
end |
object btnBringToFront: TSpeedButton |
Left = 252 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Bring to front.' |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777700000007777777777777777700000007777770000000007700000007777 |
7708888888077000000077777708888888077000000070000000000088077000 |
000070FBFBFBFBF088077000000070BFBFBFBFB088077000000070FBFBFBFBF0 |
88077000000070BFBFBFBFB000077000000070FBFBFBFBF077777000000070BF |
BFBFBFB077777000000070FBFBFBFBF077777000000070BFBFBFBFB077777000 |
0000700000000000777770000000777777777777777770000000777777777777 |
777770000000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnBringToFrontClick |
end |
object btnMoveDown: TSpeedButton |
Left = 308 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Move down.' |
AllowAllUp = True |
Flat = True |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7000777777777777700077777707777770007777706077777000777706660777 |
7000777066666077700077066666660770007000066600007000777706660777 |
7000777706660777700077770666077770007777000007777000777777777777 |
7000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnMoveDownClick |
end |
object btnSendToBack: TSpeedButton |
Left = 228 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Send to back.' |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777700000007777777777777777700000007777770000000007700000007777 |
7708888888077000000077777708888888077000000070000008888888077000 |
000070FBFB08888888077000000070BFBF08888888077000000070FBFB088888 |
88077000000070BFBF00000000077000000070FBFBFBFBF077777000000070BF |
BFBFBFB077777000000070FBFBFBFBF077777000000070BFBFBFBFB077777000 |
0000700000000000777770000000777777777777777770000000777777777777 |
777770000000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnSendToBackClick |
end |
object btnMoveUp: TSpeedButton |
Left = 284 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Move up.' |
AllowAllUp = True |
Flat = True |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7000777777777777700077770000077770007777066607777000777706660777 |
7000777706660777700070000666000070007706666666077000777066666077 |
7000777706660777700077777060777770007777770777777000777777777777 |
7000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnMoveUpClick |
end |
object btnMoveLeft: TSpeedButton |
Left = 332 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Move left.' |
AllowAllUp = True |
Flat = True |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7000777777077777700077777007777770007777060777777000777066000007 |
7000770666666607700070666666660770007706666666077000777066000007 |
7000777706077777700077777007777770007777770777777000777777777777 |
7000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnMoveLeftClick |
end |
object btnMoveRight: TSpeedButton |
Left = 356 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Move right.' |
AllowAllUp = True |
Flat = True |
Glyph.Data = { |
DE000000424DDE0000000000000076000000280000000D0000000D0000000100 |
0400000000006800000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7000777777077777700077777700777770007777770607777000770000066077 |
7000770666666607700077066666666070007706666666077000770000066077 |
7000777777060777700077777700777770007777770777777000777777777777 |
7000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnMoveRightClick |
end |
object btnCurve: TSpeedButton |
Left = 104 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Free style.' |
AllowAllUp = True |
GroupIndex = 3 |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
8000008000000080800080000000800080008080000080808000C0C0C0000000 |
FF00C0C0C00000FFFF00FF000000C0C0C000FFFF0000FFFFFF00DADADADADADA |
DADAADADADADAD0DADADDADADADAD0DADADAADADADAD000DADADDADADAD0D0D0 |
DADAADADADA0A0A0ADADDADADAD0DA00DADAADADADAD0DADADADDADADADAD0DA |
DADAADAD00ADAD0DADADDAD0DA0ADA0ADADAADA0ADA0AD0DADADDADA0ADA00DA |
DADAADADA0ADADADADADDADAD0DADADADADAADADA0ADADADADAD} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnLineClick |
end |
object btnProperties: TSpeedButton |
Left = 488 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Properties...' |
GroupIndex = 11 |
Enabled = False |
Flat = True |
Glyph.Data = { |
F6000000424DF600000000000000760000002800000010000000100000000100 |
0400000000008000000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777777777777777777777B387777777777777BB387777777777777BB3877777 |
77777777BB387777777777777BB387777777777777BB387788777777777BB388 |
008777777777BB300007777777777B0008877777777770008077777777770008 |
0B77777777700080B77777777777777777777777777777777777} |
ParentShowHint = False |
ShowHint = True |
end |
object btnRect: TSpeedButton |
Left = 80 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Create rectangle.' |
AllowAllUp = True |
GroupIndex = 3 |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
7777700000007777777777777777700000007777777777777777700000007000 |
0000000000007000000070777777777777707000000070777777777777707000 |
0000707777777777777070000000707777777777777070000000707777777777 |
7770700000007077777777777770700000007077777777777770700000007077 |
7777777777707000000070777777777777707000000070777777777777707000 |
0000700000000000000070000000777777777777777770000000777777777777 |
777770000000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnLineClick |
end |
object LDist: TLabel |
Left = 384 |
Top = 7 |
Width = 26 |
Height = 13 |
Hint = 'Rotation distance 1..255' |
Caption = 'Dist.:' |
FocusControl = eDist |
ParentShowHint = False |
ShowHint = True |
Transparent = True |
end |
object btnRotateLeft: TSpeedButton |
Left = 440 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Rotate left' |
AllowAllUp = True |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
777770000000777777555555777770000000777775FBFBFB5777700000007777 |
5FBFBFBFB577700000007775FBFBFBFBFB5770000000775FBFBFBFBFBF577000 |
0000775BFBFBFBFBFBB570000000775FBFBF00BFBFF570000000775BFBFB00FF |
BFB570000000775FBFB9B9BBFBF570000000775BFB9BF9FBFB57700000007775 |
B91FB9BFBF577000000077779B1999FBF57770000000777975BFB9BF57777000 |
0000709777555955777770000000700777770977777770000000777777770077 |
777770000000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnRotateLeftClick |
end |
object btnRotateRight: TSpeedButton |
Left = 464 |
Top = 2 |
Width = 24 |
Height = 24 |
Hint = 'Rotate right' |
AllowAllUp = True |
Flat = True |
Glyph.Data = { |
42010000424D4201000000000000760000002800000011000000110000000100 |
040000000000CC00000000000000000000001000000010000000000000000000 |
BF0000BF000000BFBF00BF000000BF00BF00BFBF0000C0C0C000808080000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00777777777777 |
77777000000077777555555777777000000077775BFBFBF57777700000007775 |
BFBFBFBF577770000000775BFBFBFBFBF57770000000775FBFBFBFBFBF577000 |
000075BBFBFBFBFBFB577000000075FFBFB00FBFBF577000000075BFBFF00BFB |
FB577000000075FBFBB9B9BFBF5770000000775BFBF9FB9BFB5770000000775F |
BFB9BF19B577700000007775FBF9991B97777000000077775FB9BFB579777000 |
0000777775595557779070000000777777790777770070000000777777700777 |
777770000000} |
ParentShowHint = False |
ShowHint = True |
OnClick = btnRotateRightClick |
end |
object eDist: TEdit |
Left = 412 |
Top = 3 |
Width = 25 |
Height = 21 |
TabOrder = 0 |
Text = '1' |
end |
end |
object Panel3: TPanel |
Left = 518 |
Top = 0 |
Width = 80 |
Height = 70 |
Align = alRight |
BevelOuter = bvNone |
TabOrder = 7 |
object OKButton: TButton |
Left = 4 |
Top = 8 |
Width = 73 |
Height = 25 |
Caption = 'OK' |
Default = True |
ModalResult = 1 |
TabOrder = 0 |
OnClick = OKButtonClick |
end |
object CancelButton: TButton |
Left = 4 |
Top = 39 |
Width = 73 |
Height = 25 |
Cancel = True |
Caption = 'Cancel' |
ModalResult = 2 |
TabOrder = 1 |
end |
end |
object btnRefresh: TBitBtn |
Left = 232 |
Top = 40 |
Width = 75 |
Height = 25 |
Caption = 'Refresh' |
TabOrder = 4 |
OnClick = btnRefreshClick |
Glyph.Data = { |
76010000424D7601000000000000760000002800000020000000100000000100 |
0400000000000001000000000000000000001000000010000000000000000000 |
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333 |
3333333333FFFFF3333333333999993333333333F77777FFF333333999999999 |
3333333777333777FF33339993707399933333773337F3777FF3399933000339 |
9933377333777F3377F3399333707333993337733337333337FF993333333333 |
399377F33333F333377F993333303333399377F33337FF333373993333707333 |
333377F333777F333333993333101333333377F333777F3FFFFF993333000399 |
999377FF33777F77777F3993330003399993373FF3777F37777F399933000333 |
99933773FF777F3F777F339993707399999333773F373F77777F333999999999 |
3393333777333777337333333999993333333333377777333333} |
NumGlyphs = 2 |
end |
object Button1: TBitBtn |
Left = 384 |
Top = 40 |
Width = 74 |
Height = 25 |
Caption = 'Reset Sel.' |
TabOrder = 6 |
OnClick = Button1Click |
Glyph.Data = { |
76010000424D7601000000000000760000002800000020000000100000000100 |
0400000000000001000000000000000000001000000010000000000000000000 |
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000 |
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00500005000555 |
555557777F777555F55500000000555055557777777755F75555005500055055 |
555577F5777F57555555005550055555555577FF577F5FF55555500550050055 |
5555577FF77577FF555555005050110555555577F757777FF555555505099910 |
555555FF75777777FF555005550999910555577F5F77777775F5500505509990 |
3055577F75F77777575F55005055090B030555775755777575755555555550B0 |
B03055555F555757575755550555550B0B335555755555757555555555555550 |
BBB35555F55555575F555550555555550BBB55575555555575F5555555555555 |
50BB555555555555575F555555555555550B5555555555555575} |
NumGlyphs = 2 |
end |
end |
object StatusBar1: TStatusBar |
Left = 0 |
Top = 455 |
Width = 602 |
Height = 19 |
Panels = < |
item |
Width = 50 |
end |
item |
Width = 100 |
end |
item |
Width = 50 |
end> |
SimplePanel = False |
end |
object PopupMenu1: TPopupMenu |
Left = 216 |
Top = 64 |
object Activate1: TMenuItem |
Caption = 'Activate' |
end |
end |
end |
/VCL_DELPHIX_D6/DxPathEdit.pas |
---|
0,0 → 1,1157 |
unit DXPathEdit; |
//(c)2007 Jaro Benes |
//All Rights Reserved |
{ |
Complex application for users of unDelphiX as component editor: |
Supported: |
a) create path for default shape. |
b) allow do change like move or rotate path layout. |
c) create new trace by free-hand. |
} |
interface |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, |
Dialogs, StdCtrls, ExtCtrls, Menus, Buttons, Math, ComCtrls, |
DXClass, DXDraws, DIB; |
type |
{ TEdit } |
TEdit = class(StdCtrls.TEdit) {injected class} |
private |
function GetAsInteger: Integer; |
procedure SetAsInteger(const Value: Integer); |
published |
public |
property AsInteger: Integer read GetAsInteger write SetAsInteger; |
end; |
{ TShape } |
TShape = class(ExtCtrls.TShape) |
procedure CMMouseEnter(var Msg: TMessage); message CM_MouseEnter; |
procedure CMMouseLeave(var Msg: TMessage); message CM_MouseLeave; |
end; |
{ TDelphiXTracesEditForm } |
TDPoint = record |
X, Y: Double; |
StayOn: Double; |
end; |
TDPointArr = array{$IFNDEF VER4UP} [0..0]{$ENDIF} of TDPoint; |
{$IFNDEF VER4UP} |
PDPointArr = ^TDPointArr; |
{$ENDIF} |
TDelphiXPathsEditForm = class(TForm) |
ScrollBox1: TScrollBox; |
Pane: TPanel; |
Shape1: TShape; |
Panel2: TPanel; |
Panel1: TPanel; |
Label1: TLabel; |
LAmount: TLabel; |
cbListOfTraces: TComboBox; |
eAmount: TEdit; |
btnNewTrace: TButton; |
PopupMenu1: TPopupMenu; |
Activate1: TMenuItem; |
Label2: TLabel; |
eShowOn: TEdit; |
Panel12: TPanel; |
btnSetTimming: TSpeedButton; |
btnLine: TSpeedButton; |
btnCircle: TSpeedButton; |
btnSelectionArea: TSpeedButton; |
btnSelectAll: TSpeedButton; |
btnGrid: TSpeedButton; |
brnSelectAsOne: TSpeedButton; |
btnBringToFront: TSpeedButton; |
btnMoveDown: TSpeedButton; |
btnSendToBack: TSpeedButton; |
btnMoveUp: TSpeedButton; |
btnMoveLeft: TSpeedButton; |
btnMoveRight: TSpeedButton; |
Panel3: TPanel; |
OKButton: TButton; |
CancelButton: TButton; |
btnCurve: TSpeedButton; |
btnProperties: TSpeedButton; |
btnRect: TSpeedButton; |
Image1: TImage; |
btnRefresh: TBitBtn; |
Label3: TLabel; |
StatusBar1: TStatusBar; |
Button1: TBitBtn; |
eDist: TEdit; |
LDist: TLabel; |
btnRotateLeft: TSpeedButton; |
btnRotateRight: TSpeedButton; |
procedure btnRotateLeftClick(Sender: TObject); |
procedure btnRotateRightClick(Sender: TObject); |
procedure btnMoveRightClick(Sender: TObject); |
procedure btnMoveLeftClick(Sender: TObject); |
procedure btnMoveDownClick(Sender: TObject); |
procedure btnMoveUpClick(Sender: TObject); |
procedure Button1Click(Sender: TObject); |
procedure btnLineClick(Sender: TObject); |
procedure btnGridClick(Sender: TObject); |
procedure btnSelectionAreaClick(Sender: TObject); |
procedure btnRefreshClick(Sender: TObject); |
procedure PaneResize(Sender: TObject); |
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, |
Y: Integer); |
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure OKButtonClick(Sender: TObject); |
procedure cbListOfTracesChange(Sender: TObject); |
procedure rgShapeClick(Sender: TObject); |
procedure btnNewTraceClick(Sender: TObject); |
procedure ShapeMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); |
procedure ShapeMouseUp(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure ShapeMouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
procedure FormDestroy(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
procedure btnSendToBackClick(Sender: TObject); |
procedure btnBringToFrontClick(Sender: TObject); |
procedure btnSetTimmingClick(Sender: TObject); |
private |
{ Private declarations } |
FCapture, FClicked: Boolean; |
MouseDownSpot: TPoint; |
LastShape: TShape; |
FTracesList: TTraces; |
tmpRect: TRect; |
{$IFNDEF VER4UP} |
tmpPointArrSize: Integer; |
{$ENDIF} |
tmpPointArr: {$IFNDEF VER4UP}PDPointArr{$ELSE}TDPointArr{$ENDIF}; |
X0, Y0, LX, LY: Integer; |
IsDownNow: Boolean; |
procedure btnCreateNewTrace(Sender: TObject); |
procedure DoMakePoints; |
procedure CreatePathFromActiveTrace(index: Integer); |
function GetSizesOfTrace(out x, y, oWidth, oHeight: Integer): Boolean; |
procedure RotatePathForAngle(Angle: Integer); |
public |
{ Public declarations } |
property PrivateTraces: TTraces read FTracesList write FTracesList; |
procedure ShowTracesOnPane_; |
procedure RewriteTracesFromPane; |
procedure ShowTracesOnPane; |
procedure RefreshShowTracesOnPaneOnly; |
end; |
var |
DelphiXPathsEditForm: TDelphiXPathsEditForm; |
implementation |
{$R *.dfm} |
{ TEdit } |
procedure TEdit.SetAsInteger(const Value: Integer); |
begin |
Self.Text := IntToStr(Value) |
end; |
function TEdit.GetAsInteger: Integer; |
begin |
try |
Result := StrToInt(Self.Text); |
except |
Result := 0; |
end; |
end; |
{ TShape } |
procedure TShape.CMMouseLeave(var Msg: TMessage); |
begin |
Shape := stRectangle; |
end; |
procedure TShape.CMMouseEnter(var Msg: TMessage); |
begin |
Shape := stCircle; |
end; |
{ TDelphiXTracesEditForm } |
procedure TDelphiXPathsEditForm.FormCreate(Sender: TObject); |
begin |
FTracesList := TTraces.Create(Self); |
{$IFNDEF VER4UP} |
tmpPointArrSize := 0; |
tmpPointArr := nil; |
{$ENDIF} |
Image1.Picture.Bitmap.Width := Pane.Width; |
Image1.Picture.Bitmap.Height := Pane.Height; |
btnGrid.Click; |
end; |
procedure TDelphiXPathsEditForm.FormDestroy(Sender: TObject); |
begin |
{$IFNDEF VER4UP} |
if tmpPointArrSize > 0 then |
System.ReallocMem(tmpPointArr, 0); |
{$ENDIF} |
FTracesList.Free; |
FTracesList := nil; |
end; |
procedure SetActiveColor(Active: Boolean; S: TShape); |
begin |
if Active then S.Pen.Color := clRed |
else S.Pen.Color := $008080FF; |
if Active then |
if Active then S.Brush.Color := clYellow |
else S.Brush.Color := $0095FFFF |
else |
if Active then S.Brush.Color := clGray |
else S.Brush.Color := $00C4C4C4; |
end; |
procedure TDelphiXPathsEditForm.ShowTracesOnPane_; |
var |
I, J: Integer; |
S: TShape; |
B: Boolean; |
begin |
Screen.Cursor := crHourGlass; |
{uvolni predchozi} |
for I := ComponentCount - 1 downto 0 do |
if Components[I] is TShape then with Components[I] as TShape do begin |
if Parent = Pane then |
Free; |
end; |
{projdi seznam} |
for I := 0 to FTracesList.Count - 1 do begin |
{slozky-udelej pomocne pole} |
CreatePathFromActiveTrace(I); |
B := cbListOfTraces.ItemIndex = I; {aktivni radek} |
{vlastni stopy} |
{$IFNDEF VER4UP} |
for J := 0 to tmpPointArrSize - 1 do |
{$ELSE} |
for J := Low(tmpPointArr) to High(tmpPointArr) do |
{$ENDIF} |
begin |
S := TShape.Create(Self); |
//---------- |
S.Parent := Pane; |
S.Width := 16; |
S.Height := 16; |
SetActiveColor(B, S); |
//---------- |
S.Left := Round(tmpPointArr[J].X) - 8; {na stred} |
S.Top := Round(tmpPointArr[J].Y) - 8; {na stred} |
S.ShowHint := True; |
S.Hint := FTracesList.Items[I].Name; |
if Trim(S.Hint) = '' then S.Hint := Format('(unnamed[%d])', [I]); |
S.ShowHint := True; |
//Upravovat ale lze pouze jen tu cestu, ktera je aktivni v combobox |
if cbListOfTraces.ItemIndex = I then begin |
S.OnMouseDown := ShapeMouseDown; |
S.OnMouseMove := ShapeMouseMove; |
S.OnMouseUp := ShapeMouseUp; |
end; |
S.Tag := Integer(J); |
end; |
end; |
btnGrid.Click; |
Screen.Cursor := crDefault; |
end; |
procedure TDelphiXPathsEditForm.ShowTracesOnPane; |
var |
I, J, index: Integer; |
S: TShape; |
P: TPath; |
begin |
Screen.Cursor := crHourGlass; |
{uvolni predchozi} |
for I := ComponentCount - 1 downto 0 do |
if Components[I] is TShape then with Components[I] as TShape do begin |
if Parent = Pane then |
Free; |
end; |
{projdi seznam} |
for I := 0 to FTracesList.Count - 1 do begin |
{slozky-udelej pomocne pole} |
index := i; |
if index = -1 then Exit; |
{vlastni stopy} |
with FTracesList.Items[index].Blit do |
if GetPathCount > 0 then begin |
for J := 0 to GetPathCount - 1 do |
begin |
S := TShape.Create(Self); |
//---------- |
S.Parent := Pane; |
S.Width := 16; |
S.Height := 16; |
SetActiveColor(cbListOfTraces.ItemIndex = I, S); |
//---------- |
S.Left := Round(Path[J].X) - 8; {na stred} |
S.Top := Round(Path[J].Y) - 8; {na stred} |
S.ShowHint := True; |
S.Hint := FTracesList.Items[I].Name; |
if Trim(S.Hint) = '' then S.Hint := Format('(unnamed[%d])', [I]); |
S.ShowHint := True; |
//Upravovat ale lze pouze jen tu cestu, ktera je aktivni v combobox |
if cbListOfTraces.ItemIndex = I then begin |
S.OnMouseDown := ShapeMouseDown; |
S.OnMouseMove := ShapeMouseMove; |
S.OnMouseUp := ShapeMouseUp; |
end; |
S.Tag := Integer(J); |
P := Path[J]; |
P.Tag := Integer(S); |
Path[J] := P; |
end; |
end; |
end; |
btnGrid.Click; |
Screen.Cursor := crDefault; |
end; |
procedure TDelphiXPathsEditForm.RefreshShowTracesOnPaneOnly; |
var |
I, J, index: Integer; |
S: TShape; |
// P: TPath; |
begin |
Screen.Cursor := crHourGlass; |
{projdi seznam} |
for I := 0 to FTracesList.Count - 1 do begin |
{slozky-udelej pomocne pole} |
index := i; |
if index = -1 then Exit; |
{vlastni stopy} |
with FTracesList.Items[index].Blit do |
if GetPathCount > 0 then begin |
for J := 0 to GetPathCount - 1 do |
begin |
S := TShape(Path[J].Tag); |
if Assigned(S) then begin |
S.Left := Round(Path[J].X) - 8; |
S.Top := Round(Path[J].Y) - 8; |
SetActiveColor(cbListOfTraces.ItemIndex = I, S); |
//---------- |
//Upravovat ale lze pouze jen tu cestu, ktera je aktivni v combobox |
if cbListOfTraces.ItemIndex = I then begin |
S.OnMouseDown := ShapeMouseDown; |
S.OnMouseMove := ShapeMouseMove; |
S.OnMouseUp := ShapeMouseUp; |
end |
else |
begin |
S.OnMouseDown := nil; |
S.OnMouseMove := nil; |
S.OnMouseUp := nil; |
end; |
end; |
end; |
end; |
end; |
btnGrid.Click; |
Screen.Cursor := crDefault; |
end; |
procedure TDelphiXPathsEditForm.ShapeMouseMove(Sender: TObject; |
Shift: TShiftState; X, Y: Integer); |
var |
M: TPoint; |
begin |
if FCapture and (ssLeft in Shift) then begin |
TShape(Sender).Left := TShape(Sender).Left - (MouseDownSpot.x - x); |
TShape(Sender).Top := TShape(Sender).Top - (MouseDownSpot.y - y); |
end; |
//pro zmenu velikosti |
if FClicked and (ssRight in Shift) and Assigned(LastShape) then begin |
M := Pane.ScreenToClient({$IFNDEF VER4UP}Point(X, Y){$ELSE}Mouse.CursorPos{$ENDIF}); |
LastShape.Width := M.X - LastShape.Left; |
LastShape.Height := M.Y - LastShape.Top; |
end; |
end; |
procedure TDelphiXPathsEditForm.ShapeMouseUp(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
begin |
if FCapture then |
begin |
ReleaseCapture; |
FCapture := False; |
TShape(Sender).Left := TShape(Sender).Left - (MouseDownSpot.x - x); |
TShape(Sender).Top := TShape(Sender).Top - (MouseDownSpot.y - y); |
end; |
LastShape := nil; |
FClicked := False; |
RewriteTracesFromPane; |
ShowTracesOnPane; |
Cursor := crDefault; |
end; |
procedure TDelphiXPathsEditForm.ShapeMouseDown(Sender: TObject; Button: TMouseButton; |
Shift: TShiftState; X, Y: Integer); |
var |
P: TPoint; |
begin |
FCapture := ssLeft in Shift; |
MouseDownSpot.X := X; |
MouseDownSpot.Y := Y; |
FClicked := ssRight in Shift; |
if FClicked and (Sender is TShape) then begin |
P := TShape(Sender).ClientToScreen(Point(X, Y)); |
PopupMenu1.Popup(P.X, P.Y); |
Exit; |
end; |
ShapeMouseMove(Sender, Shift, X, Y); |
if (Sender is TShape) then |
LastShape := TShape(Sender); |
Cursor := {$IFNDEF VER4UP}crSIZE{$ELSE}crSizeAll{$ENDIF}; |
end; |
procedure TDelphiXPathsEditForm.RewriteTracesFromPane; |
var |
I: Integer; |
S: TShape; |
//TT: TTracePoint; |
T: TPath; |
begin |
for I := ComponentCount - 1 downto 0 do |
if Components[I] is TShape then begin |
S := Components[I] as TShape; |
if S.Parent = Pane then |
if S.Hint = cbListOfTraces.Text then //active item only |
begin |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex].Blit.Path[S.Tag]; |
T.X := S.Left + 8; |
T.Y := S.Top + 8; |
{tady lze prepsat jine atributy treba Rychlost...} |
PrivateTraces.Items[cbListOfTraces.ItemIndex].Blit.Path[S.Tag] := T; |
end; |
end; |
end; |
procedure TDelphiXPathsEditForm.btnBringToFrontClick(Sender: TObject); |
var |
T: TTrace; |
begin |
if cbListOfTraces.ItemIndex <> -1 then begin |
T := FTracesList.Add; |
T.Assign(FTracesList.Items[cbListOfTraces.ItemIndex]); |
{$IFDEF VER5UP} |
FTracesList.Delete(cbListOfTraces.ItemIndex); |
{$ELSE} |
FTracesList.Items[cbListOfTraces.ItemIndex].Free; |
{$ENDIF} |
cbListOfTraces.Items.Move(cbListOfTraces.ItemIndex, cbListOfTraces.Items.Count - 1); |
cbListOfTraces.ItemIndex := cbListOfTraces.Items.Count - 1; |
ShowTracesOnPane |
end; |
end; |
procedure TDelphiXPathsEditForm.btnCreateNewTrace(Sender: TObject); |
var |
S: string; |
T: TTrace; |
begin |
if InputQuery('Name of new Trace:', 'Trace name', S) then begin |
if Trim(S) = '' then begin |
ShowMessage('Name for new trace mustn''t be empty.'); |
Exit; |
end; |
if cbListOfTraces.Items.IndexOf(S) <> -1 then begin |
ShowMessage('Name for new trace has to be unique.'); |
Exit; |
end; |
T := FTracesList.Add; |
T.Name := S; |
cbListOfTraces.Items.AddObject(S, Pointer(PrivateTraces.Count - 1)); |
cbListOfTraces.ItemIndex := cbListOfTraces.Items.IndexOf(S); |
cbListOfTracesChange(cbListOfTraces); |
end; |
end; |
procedure TDelphiXPathsEditForm.btnNewTraceClick(Sender: TObject); |
begin |
btnCreateNewTrace(Sender); |
end; |
procedure TDelphiXPathsEditForm.rgShapeClick(Sender: TObject); |
begin |
btnNewTrace.Enabled := btnLine.Down or btnCircle.Down or btnCurve.Down; |
end; |
procedure TDelphiXPathsEditForm.cbListOfTracesChange(Sender: TObject); |
begin |
RewriteTracesFromPane; |
RefreshShowTracesOnPaneOnly |
end; |
procedure TDelphiXPathsEditForm.OKButtonClick(Sender: TObject); |
begin |
RewriteTracesFromPane; |
Tag := 1; |
end; |
procedure TDelphiXPathsEditForm.Image1MouseDown(Sender: TObject; |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
{zapnou se funkce pro sber} |
begin |
if ssleft in Shift then begin |
X0 := X; LX := X; |
Y0 := Y; LY := Y; |
Image1.Picture.Bitmap.Canvas.Pen.Mode := pmNotXor; |
Image1.Picture.Bitmap.Canvas.Pen.Color := clRed; |
Image1.Picture.Bitmap.Canvas.Brush.Style := bsClear; |
IsDownNow := True; |
if btnCurve.Down then begin |
{$IFNDEF VER4UP} |
tmpPointArrSize := 1; |
System.ReallocMem(tmpPointArr, tmpPointArrSize * SizeOf(TDPoint)); |
tmpPointArr[tmpPointArrSize - 1].X := X; |
tmpPointArr[tmpPointArrSize - 1].Y := Y; |
{$ELSE} |
SetLength(tmpPointArr, 1); |
tmpPointArr[High(tmpPointArr)].X := X; |
tmpPointArr[High(tmpPointArr)].Y := Y; |
{$ENDIF} |
end; |
end; |
end; |
procedure TDelphiXPathsEditForm.Image1MouseMove(Sender: TObject; |
Shift: TShiftState; X, Y: Integer); |
{zabira ze plocha} |
begin |
if IsDownNow then with Image1.Picture.Bitmap.Canvas do begin |
if btnSelectionArea.Down then begin |
Rectangle(X0, Y0, LX, LY); |
Rectangle(X0, Y0, X, Y); |
end; |
if btnLine.Down then begin |
MoveTo(x0, y0); |
LineTo(lx, ly); |
MoveTo(x0, y0); |
LineTo(x, y); |
end; |
if btnCircle.Down or btnRect.Down then begin |
Rectangle(X0, Y0, LX, LY); |
Rectangle(X0, Y0, X, Y); |
end; |
if btnCurve.Down then begin |
if (X <> LX) or (Y <> LY) then begin |
{$IFNDEF VER4UP} |
Inc(tmpPointArrSize); |
System.ReallocMem(tmpPointArr, tmpPointArrSize * SizeOf(TDPoint)); |
tmpPointArr[tmpPointArrSize - 1].X := X; |
tmpPointArr[tmpPointArrSize - 1].Y := Y; |
{$ELSE} |
SetLength(tmpPointArr, Length(tmpPointArr) + 1); |
tmpPointArr[High(tmpPointArr)].X := X; |
tmpPointArr[High(tmpPointArr)].Y := Y; |
{$ENDIF} |
MoveTo(LX, LY); |
LineTo(x, y); |
end; |
end; |
LX := X; |
LY := Y; |
end; |
StatusBar1.Panels[1].Text := Format('(x,y)=(%d,%d)', [X, Y]); |
end; |
{$IFNDEF VER4UP} |
function Min(i1, i2: integer): integer; |
begin |
if i1 < i2 then Result := i1 else Result := i2; |
end; |
function Max(i1, i2: integer): integer; |
begin |
if i1 > i2 then Result := i1 else Result := i2; |
end; |
{$ENDIF} |
procedure TDelphiXPathsEditForm.Image1MouseUp(Sender: TObject; |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
{koncovy bod} |
var |
i, v, a, b, c: Integer; |
beta, sinbeta, cosbeta, angle, step, ii, vx, vy, alpha, sinalpha, cosalpha, p, vv, a1, b1: Double; |
begin |
if IsDownNow then with Image1.Picture.Bitmap.Canvas do begin |
if btnCurve.Down then begin |
DoMakePoints; |
Label3.Caption := ''; |
Image1.OnMouseDown := nil; |
Image1.OnMouseMove := nil; |
Image1.OnMouseUp := nil; |
btnCurve.Down := False; |
end; |
if btnSelectionArea.Down then begin |
if ssShift in Shift then begin |
Rectangle(X0, Y0, LX, LY); //smazat |
Pen.Mode := pmCopy; //napevno |
v := Max(Abs(X0 - x), Abs(X0 - y)); |
Rectangle(X0, y0, X0 + v, Y0 + v); //vykreslit |
end |
else begin |
Pen.Mode := pmCopy; //napevno |
Rectangle(x0, y0, x, y); |
end; |
tmpRect := Rect(x0, y0, x, y); |
Label3.Caption := Format('R:((%d,%d),(%d,%d))', [x0, y0, x, y]); |
Image1.OnMouseDown := nil; |
Image1.OnMouseMove := nil; |
Image1.OnMouseUp := nil; |
btnSelectionArea.Down := False; |
end; |
if btnLine.Down then begin |
MoveTo(x0, y0); |
LineTo(x, y); |
{$IFNDEF VER4UP} |
tmpPointArrSize := 2; |
System.ReallocMem(tmpPointArr, tmpPointArrSize * SizeOf(TDPoint)); |
{$ELSE} |
SetLength(tmpPointArr, 2); |
{$ENDIF} |
C := 0; |
tmpPointArr[C].X := X0; |
tmpPointArr[C].Y := Y0; |
Inc(C); |
tmpPointArr[C].X := X; |
tmpPointArr[C].Y := Y; |
DoMakePoints; |
Label3.Caption := ''; |
Image1.OnMouseDown := nil; |
Image1.OnMouseMove := nil; |
Image1.OnMouseUp := nil; |
btnLine.Down := False; |
end; |
if btnCircle.Down then begin |
Rectangle(X0, Y0, LX, LY); //smazat |
{$IFNDEF VER4UP} |
tmpPointArrSize := eAmount.AsInteger; |
System.ReallocMem(tmpPointArr, tmpPointArrSize * SizeOf(TDPoint)); |
{$ELSE} |
SetLength(tmpPointArr, eAmount.AsInteger); |
{$ENDIF} |
{neni pootocena} |
angle := 0; |
beta := -angle / 180 * PI; |
sinbeta := Sin(beta); |
cosbeta := Cos(beta); |
step := 360 / eAmount.AsInteger; |
ii := 0; v := {$IFNDEF VER4UP}0{$ELSE}Low(tmpPointArr){$ENDIF}; |
a := Abs(LX - X0) div 2; //mayor |
b := Abs(LY - Y0) div 2; //minor |
vx := X0 + a; //center x |
vy := Y0 + b; //center y |
while ii < 360 do begin |
alpha := ii / 180 * PI; |
sinalpha := Sin(alpha); |
cosalpha := Cos(alpha); |
tmpPointArr[v].X := vx + (a * cosalpha * cosbeta - b * sinalpha * sinbeta); |
tmpPointArr[v].Y := vy + (a * cosalpha * sinbeta + b * sinalpha * cosbeta); |
inc(v); |
ii := ii + step; |
end; |
DoMakePoints; |
Label3.Caption := ''; |
Image1.OnMouseDown := nil; |
Image1.OnMouseMove := nil; |
Image1.OnMouseUp := nil; |
btnCircle.Down := False; |
end; |
if btnRect.Down then begin |
Rectangle(X0, Y0, LX, LY); //smazat |
{$IFNDEF VER4UP} |
tmpPointArrSize := eAmount.AsInteger; |
System.ReallocMem(tmpPointArr, tmpPointArrSize * SizeOf(TDPoint)); |
{$ELSE} |
SetLength(tmpPointArr, eAmount.AsInteger); |
{$ENDIF} |
a1 := LX - X0; |
b1 := LY - Y0; |
//c := 2 * (LX - X0) + 2 * (LY - Y0); //delka |
ii := (2 * a1 + 2 * b1) / eAmount.AsInteger; //delka useku |
//first point is here |
vv := 0; |
tmpPointArr[0].X := X0; p := X0; |
tmpPointArr[0].Y := Y0; |
{rozhodit body po obdelniku} |
for I := 1 to eAmount.AsInteger - 1 do begin |
p := p + ii; |
vv := vv + ii; |
if vv < a1 then begin |
tmpPointArr[I].X := p; |
tmpPointArr[I].Y := Y0; |
end |
else |
if vv < (a1 + b1) then begin |
tmpPointArr[I].X := LX; |
tmpPointArr[I].Y := Y0 + (vv - a1); |
end |
else |
if vv < (2 * a1 + b1) then begin |
tmpPointArr[I].X := LX - (vv - (a1 + b1)); |
tmpPointArr[I].Y := LY; |
end |
else |
if vv < (2 * a1 + 2 * b1) then begin |
tmpPointArr[I].X := X0; |
tmpPointArr[I].Y := LY - (vv - (2 * a1 + b1)); |
end; |
end; |
DoMakePoints; |
Label3.Caption := ''; |
Image1.OnMouseDown := nil; |
Image1.OnMouseMove := nil; |
Image1.OnMouseUp := nil; |
btnRect.Down := False; |
end; |
end; |
IsDownNow := False; |
end; |
procedure TDelphiXPathsEditForm.PaneResize(Sender: TObject); |
begin |
Image1.Picture.Bitmap.Width := Pane.Width; |
Image1.Picture.Bitmap.Height := Pane.Height; |
end; |
procedure TDelphiXPathsEditForm.DoMakePoints; |
function distance2d(x1, z1, x2, z2: single): single; |
var |
diffx, diffz: single; |
begin |
diffX := x1 - x2; |
diffZ := z1 - z2; |
result := system.Sqrt(diffX * diffX + diffZ * diffZ); |
end; |
var |
T: TTrace; |
Q: TPath; |
I, D, C: Integer; |
DX, DY, TX, TY: Single; |
begin |
if btnLine.Down then begin |
C := 0; |
if {$IFNDEF VER4UP}tmpPointArrSize{$ELSE}Length(tmpPointArr){$ENDIF} = 2 then begin |
D := Round(distance2d(tmpPointArr[C].X, tmpPointArr[C].Y, tmpPointArr[C + 1].X, tmpPointArr[C + 1].Y)); |
if cbListOfTraces.ItemIndex <> -1 then begin |
{ziskej aktivni stopu} |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex]; |
T.Blit.SetPathLen(0); //smaz |
{vytvoreni slozek} |
{korekce, je-li bodu vic nez delka cary} |
if eAmount.AsInteger > D then |
eAmount.AsInteger := D; |
{nastaveni velikosti cesty} |
T.Blit.SetPathLen(eAmount.AsInteger); |
{rozhozeni bodu na caru} |
DX := (tmpPointArr[C + 1].X - tmpPointArr[C].X) / eAmount.AsInteger; |
DY := (tmpPointArr[C + 1].Y - tmpPointArr[C].Y) / eAmount.AsInteger; |
TX := tmpPointArr[C].X; |
TY := tmpPointArr[C].Y; |
for I := 1 to eAmount.AsInteger do begin |
FillChar(Q, SizeOf(Q), 0); |
Q.X := Round(TX + (I - 1) * DX); |
Q.Y := Round(TY + (I - 1) * DY); |
Q.StayOn := eShowOn.AsInteger; |
T.Blit.Path[I - 1] := Q; |
end; |
T.Active := True; |
ShowTracesOnPane; |
end; |
end; |
end; |
if btnCircle.Down or btnRect.Down or btnCurve.Down then begin |
if cbListOfTraces.ItemIndex <> -1 then begin |
{ziskej aktivni stopu} |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex]; |
T.Blit.SetPathLen(0); //smaz |
{vytvoreni slozek} |
{$IFNDEF VER4UP} |
T.Blit.SetPathLen(tmpPointArrSize); |
for I := 0 to tmpPointArrSize - 1 do |
{$ELSE} |
T.Blit.SetPathLen(Length(tmpPointArr)); |
for I := Low(tmpPointArr) to High(tmpPointArr) do |
{$ENDIF} |
begin |
FillChar(Q, SizeOf(Q), 0); |
Q.X := Round(tmpPointArr[I].X); |
Q.Y := Round(tmpPointArr[I].Y); |
Q.StayOn := eShowOn.AsInteger; |
T.Blit.Path[I] := Q; |
end; |
T.Active := True; |
ShowTracesOnPane; |
end; |
end; |
end; |
procedure TDelphiXPathsEditForm.btnRefreshClick(Sender: TObject); |
begin |
DoMakePoints; |
end; |
procedure TDelphiXPathsEditForm.btnSelectionAreaClick(Sender: TObject); |
begin |
Image1.OnMouseDown := Image1MouseDown; |
Image1.OnMouseMove := Image1MouseMove; |
Image1.OnMouseUp := Image1MouseUp; |
end; |
procedure TDelphiXPathsEditForm.btnSendToBackClick(Sender: TObject); |
var |
T: TTrace; |
I: Integer; |
begin |
if cbListOfTraces.ItemIndex <> -1 then begin |
T := FTracesList.Items[cbListOfTraces.ItemIndex]; //saved |
//from selected to first |
for I := cbListOfTraces.ItemIndex-1 downto 0 do begin |
FTracesList.Items[I] := FTracesList.Items[I + 1]; |
end; |
FTracesList.Items[0] := T; |
cbListOfTraces.Items.Move(cbListOfTraces.ItemIndex, 0); |
cbListOfTraces.ItemIndex := 0; {it is first now} |
ShowTracesOnPane |
end; |
end; |
procedure TDelphiXPathsEditForm.btnSetTimmingClick(Sender: TObject); |
var |
T: TTrace; |
I: Integer; |
P: TPath; |
begin |
if MessageDlg(Format('Do you want change show time to %d ms for each point ?', [eShowOn.AsInteger]), mtConfirmation, [mbYes, mbNo], 0) = mrYes then |
begin |
{move selected path to down} |
if cbListOfTraces.ItemIndex <> -1 then begin |
{ziskej aktivni stopu} |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex]; |
for I := 0 to T.Blit.GetPathCount - 1 do |
begin |
P := T.Blit.Path[I]; |
P.StayOn := eShowOn.AsInteger; |
T.Blit.Path[I] := P; |
end; |
end; |
ShowTracesOnPane; |
end; |
end; |
procedure TDelphiXPathsEditForm.btnGridClick(Sender: TObject); |
const |
ccGrid = 32; |
ccShift = 16; |
var I: Integer; |
{$IFNDEF VER4UP} |
// pp: Pointer; |
{$ELSE} |
pp: array of TPoint; |
{$ENDIF} |
begin |
if btnGrid.Down then |
with Image1.Picture.Bitmap.Canvas do begin |
Brush.Color := clBlack; |
FillRect(Bounds(0, 0, Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Width)); |
Pen.Color := clDkGray; |
Pen.Style := psDot; |
Pen.Mode := pmCopy; |
Pen.Width := 1; |
for I := 0 to Image1.Picture.Bitmap.Width div ccGrid do begin |
MoveTo(I * ccGrid + ccShift, 0); |
LineTo(I * ccGrid + ccShift, Image1.Picture.Bitmap.Height); |
end; |
for I := 0 to Image1.Picture.Bitmap.Width div ccGrid do begin |
MoveTo(0, I * ccGrid + ccShift); |
LineTo(Image1.Picture.Bitmap.Width, I * ccGrid + ccShift); |
end; |
Pen.Color := clLtGray; |
Pen.Style := psSolid; |
Pen.Width := 1; |
for I := 0 to Image1.Picture.Bitmap.Width div 32 do begin |
MoveTo(I * 32, 0); |
LineTo(I * 32, Image1.Picture.Bitmap.Height); |
end; |
for I := 0 to Image1.Picture.Bitmap.Width div 32 do begin |
MoveTo(0, I * 32); |
LineTo(Image1.Picture.Bitmap.Width, I * 32); |
end; |
end |
else |
with Image1.Picture.Bitmap.Canvas do begin |
Brush.Color := clBlack; |
FillRect(Bounds(0, 0, Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Width)); |
end; |
if (tmpRect.Right > 0) and (tmpRect.Bottom > 0) then |
with Image1.Picture.Bitmap.Canvas do begin |
Pen.Color := clGreen; |
Pen.Width := 1; |
Pen.Mode := pmCopy; |
Brush.Style := bsClear; |
{$IFDEF VER5UP} |
Rectangle(tmpRect); |
{$ELSE} |
Rectangle(tmpRect.Left, tmpRect.Top, tmpRect.Right, tmpRect.Bottom); |
{$ENDIF} |
end; |
with Image1.Picture.Bitmap.Canvas do begin |
CreatePathFromActiveTrace(cbListOfTraces.ItemIndex); |
{$IFNDEF VER4UP} |
if tmpPointArrSize <= 0 then Exit; |
MoveTo(Round(tmpPointArr[0].X), Round(tmpPointArr[0].Y)); |
for I := 1 to tmpPointArrSize - 1 do |
LineTo(Round(tmpPointArr[I].X), Round(tmpPointArr[I].Y)); |
{$ELSE} |
if Length(tmpPointArr) = 0 then Exit; |
SetLength(pp, Length(tmpPointArr)); |
for I := Low(tmpPointArr) to High(tmpPointArr) do |
pp[I] := Point(Round(tmpPointArr[I].X), Round(tmpPointArr[I].Y)); |
Pen.Color := clWhite; |
Pen.Width := 1; |
Pen.Mode := pmCopy; |
Brush.Style := bsClear; |
Polyline(pp); |
{$ENDIF} |
end; |
end; |
procedure TDelphiXPathsEditForm.btnLineClick(Sender: TObject); |
begin |
Image1.OnMouseDown := Image1MouseDown; |
Image1.OnMouseMove := Image1MouseMove; |
Image1.OnMouseUp := Image1MouseUp; |
end; |
procedure TDelphiXPathsEditForm.Button1Click(Sender: TObject); |
begin |
tmpRect := Rect(0, 0, 0, 0); |
Label3.Caption := 'R:<none>'; |
end; |
procedure TDelphiXPathsEditForm.CreatePathFromActiveTrace(index: Integer); |
var |
J: Integer; |
begin |
{$IFNDEF VER4UP} |
tmpPointArrSize := 0; |
System.ReallocMem(tmpPointArr, tmpPointArrSize * SizeOf(TDPoint)); |
{$ELSE} |
SetLength(tmpPointArr, 0); |
{$ENDIF} |
if index = -1 then Exit; |
{vlastni stopy} |
with FTracesList.Items[index].Blit do |
if GetPathCount > 0 then begin |
{$IFNDEF VER4UP} |
tmpPointArrSize := GetPathCount; |
System.ReallocMem(tmpPointArr, tmpPointArrSize * SizeOf(TDPoint)); |
{$ELSE} |
SetLength(tmpPointArr, GetPathCount); |
{$ENDIF} |
for J := 0 to GetPathCount - 1 do |
begin |
tmpPointArr[J].X := Path[J].X; |
tmpPointArr[J].Y := Path[J].Y; |
tmpPointArr[J].StayOn := Path[J].StayOn; |
end; |
end; |
end; |
procedure TDelphiXPathsEditForm.btnMoveUpClick(Sender: TObject); |
var |
T: TTrace; |
I: Integer; |
P: TPath; |
begin |
{move selected path to up} |
if cbListOfTraces.ItemIndex <> -1 then begin |
{ziskej aktivni stopu} |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex]; |
for I := 0 to T.Blit.GetPathCount - 1 do |
begin |
P := T.Blit.Path[I]; |
P.Y := P.Y - eDist.AsInteger; |
T.Blit.Path[I] := P; |
end; |
end; |
ShowTracesOnPane; |
end; |
procedure TDelphiXPathsEditForm.btnMoveDownClick(Sender: TObject); |
var |
T: TTrace; |
I: Integer; |
P: TPath; |
begin |
{move selected path to down} |
if cbListOfTraces.ItemIndex <> -1 then begin |
{ziskej aktivni stopu} |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex]; |
for I := 0 to T.Blit.GetPathCount - 1 do |
begin |
P := T.Blit.Path[I]; |
P.Y := P.Y + eDist.AsInteger; |
T.Blit.Path[I] := P; |
end; |
end; |
ShowTracesOnPane; |
end; |
procedure TDelphiXPathsEditForm.btnMoveLeftClick(Sender: TObject); |
var |
T: TTrace; |
I: Integer; |
P: TPath; |
begin |
{move selected path to left} |
if cbListOfTraces.ItemIndex <> -1 then begin |
{ziskej aktivni stopu} |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex]; |
for I := 0 to T.Blit.GetPathCount - 1 do |
begin |
P := T.Blit.Path[I]; |
P.X := P.X - eDist.AsInteger; |
T.Blit.Path[I] := P; |
end; |
end; |
ShowTracesOnPane; |
end; |
procedure TDelphiXPathsEditForm.btnMoveRightClick(Sender: TObject); |
var |
T: TTrace; |
I: Integer; |
P: TPath; |
begin |
{move selected path to right} |
if cbListOfTraces.ItemIndex <> -1 then begin |
{ziskej aktivni stopu} |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex]; |
for I := 0 to T.Blit.GetPathCount - 1 do |
begin |
P := T.Blit.Path[I]; |
P.X := P.X + eDist.AsInteger; |
T.Blit.Path[I] := P; |
end; |
end; |
ShowTracesOnPane; |
end; |
procedure Rotate(iRotAng: Single; x, y: Double; var Nx, Ny: Double); |
procedure SinCosS(const Theta: Single; var Sin, Cos: Single); register; |
// EAX contains address of Sin |
// EDX contains address of Cos |
// Theta is passed over the stack |
asm |
FLD Theta |
FSINCOS |
FSTP DWORD PTR [EDX] // cosine |
FSTP DWORD PTR [EAX] // sine |
end; |
const PI256 = 2 * PI / 256; |
var |
SinVal, CosVal, RotAng: Single; |
begin |
RotAng := iRotAng * PI256; |
SinCosS(RotAng, SinVal, CosVal); |
Nx := x * CosVal - y * SinVal; |
Ny := y * CosVal + x * SinVal; |
end; |
procedure RotateO(RotAng: Double; x, y, ox, oy: Double; var Nx, Ny: Double); |
begin |
Rotate(RotAng, x - ox, y - oy, Nx, Ny); |
Nx := Nx + ox; |
Ny := Ny + oy; |
end; |
function TDelphiXPathsEditForm.GetSizesOfTrace(out x, y, oWidth, oHeight: Integer): Boolean; |
var |
T: TTrace; |
I: Integer; |
P: TPath; |
maxX, minX, maxY, minY: Single; |
begin |
Result := False; |
oWidth := 0; |
oHeight := 0; |
maxX := 0; |
minX := MaxInt; |
maxY := 0; |
minY := MaxInt; |
if cbListOfTraces.ItemIndex <> -1 then begin |
{ziskej aktivni stopu} |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex]; |
for I := 0 to T.Blit.GetPathCount - 1 do |
begin |
P := T.Blit.Path[I]; |
if P.X > maxX then maxX := P.X; |
if P.Y > maxY then maxY := P.Y; |
if P.X < minX then minX := P.X; |
if P.Y < minY then minY := P.Y; |
end; |
x := Round(minX); |
y := Round(minY); |
oWidth := Abs(Round(maxX) - Round(minX)); |
oHeight := Abs(Round(maxY) - Round(minY)); |
Result := True; |
end; |
end; |
procedure TDelphiXPathsEditForm.RotatePathForAngle(Angle: Integer); |
var |
T: TTrace; |
I, x, y, width, height: Integer; |
P: TPath; |
nX, nY, dX, dY: Double; |
begin |
if GetSizesOfTrace(x, y, Width, Height) then |
begin |
dX := (x + width / 2); |
dY := (y + height / 2); |
T := PrivateTraces.Items[cbListOfTraces.ItemIndex]; |
for I := 0 to T.Blit.GetPathCount - 1 do |
begin |
P := T.Blit.Path[I]; |
RotateO(Angle, P.X, P.Y, dX, dY, nX, nY); |
P.X := nX; |
P.Y := nY; |
T.Blit.Path[I] := P; |
end; |
end; |
end; |
procedure TDelphiXPathsEditForm.btnRotateLeftClick(Sender: TObject); |
begin |
RotatePathForAngle(-1 * eDist.AsInteger); |
RefreshShowTracesOnPaneOnly |
end; |
procedure TDelphiXPathsEditForm.btnRotateRightClick(Sender: TObject); |
begin |
RotatePathForAngle(eDist.AsInteger); |
RefreshShowTracesOnPaneOnly |
end; |
end. |
/VCL_DELPHIX_D6/turbopixels.pas |
---|
0,0 → 1,937 |
unit turbopixels; |
// turboPixels 1.2 |
// for use with DelphiX DirectX Headers and Components |
// (c) 2000 Michael Wilson -- no.2 games |
// www.no2games.com & turbo.gamedev.net |
// wilson@no2games.com |
// 1.2 Features: |
// DelphiX 7 support |
// Powered by PixelCore release |
// PixelCore ASM routines by Henri Hakl aka A-Lore |
// Updated WinAmp font routine |
// 1.1 Features: |
// Incorporated ASM conversion by LifePower |
// Incorporated ASM putpixels by JerK |
// Added non-RGB versions of 8/16/24 PutPixels |
// Faster clipping and no surface passing |
// Auto 565 and 555 detection that works!!! |
// Re-oganized demo for more speed and FPS counter |
// 1.0 Inital release |
// [ Credits and thanks... ] |
// Based on FastPixels v0.2 for DelphiX -- but faster ;) |
// 24-bit put loosely based on Erik Englund's Setpixel.pas |
// Thanks to Tim Baumgarten for some bit shifting ideas |
// Thanks to John Hebert for teaching me AlphaBlending |
// Thanks to Hugo for introducing me to Wu |
// ASM conversion routines by LifePower (faster...) |
// ASM put routines by JerK (jdelauney@free.fr) |
// PixelCore ASM routines by Henri Hakl aka A-Lore |
// Font from a WinAmp skin |
// Windows SDK help for confusing me about RGB values |
// [ Legal ] |
// THIS SOFTWARE AND THE ACCOMPANYING FILES |
// ARE WITHOUT WARRANTIES AS TO PERFORMANCE |
// OR MERCHANTABILITY OR ANY OTHER WARRANTIES |
// WHETHER EXPRESSED OR IMPLIED. |
// Because of the various hardware and software |
// environments into which turboPixels may be put, |
// NO WARRANTY OF FITNESS FOR A PARTICULAR |
// PURPOSE IS OFFERED. |
interface |
{$INCLUDE DelphiXcfg.inc} |
uses |
Windows, Messages, SysUtils, Classes, Graphics, |
DXDraws, DXClass, |
{$IfDef StandardDX} |
DirectDraw; |
{$Else} |
DirectX; |
{$EndIf} |
const |
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ"at 0123456789<>=()-''!_+\/{}^&%.=$#ÅÖÄ?*'; |
numbers = '0123456789-'; |
// *** locking functions *** |
function turboLock(DxDrawSurface: TDirectDrawSurface): Boolean; |
procedure turboUnlock; |
// *** pixel manipulation *** |
procedure turboSetPixel8(const X, Y: Integer; color: byte); |
procedure turboSetPixel8A(const X, Y: Integer; color: Integer); |
procedure turboSetPixel8PC(x, y, color: integer); |
procedure turboSetPixel16RGB(const X, Y: Integer; R, G, B: byte); |
procedure turboSetPixel24RGB(const X, Y: Integer; R, G, B: byte); |
procedure turboSetPixel16(const X, Y: integer; color: cardinal); |
procedure turboSetPixel16A(X, Y: Integer; color: cardinal); |
procedure turboSetPixel16PC(x, y, color: integer); |
procedure turboSetPixel32PC(x, y, color: integer); |
procedure turboSetPixel24(const X, Y: integer; color: cardinal); |
procedure turboSetPixel24A(X, Y: Integer; Color: cardinal); |
procedure turboSetPixel24PC(x, y, color: integer); |
function turboGetPixel8(const X, Y: Integer): byte; |
function turboGetPixel8PC(x, y: integer): integer; |
function turboGetPixel16(const x, y: Integer): cardinal; |
function turboGetPixel16PC(x, y: integer): integer; |
function r16(color: cardinal): byte; |
function g16(color: cardinal): byte; |
function b16(color: cardinal): byte; |
function turboGetPixel24(const x, y: Integer): dword; |
function turboGetPixel24PC(x, y: integer): integer; |
function r24(color: cardinal): byte; |
function g24(color: cardinal): byte; |
function b24(color: cardinal): byte; |
function turboGetPixel32PC(x, y: integer): integer; |
procedure turboSetPixelAlpha16(const X, Y: Integer; color: cardinal; A: byte); |
procedure turboSetPixelAlpha24(const X, Y: Integer; color: cardinal; A: byte); |
procedure turboSetPixelAlpha16RGB(const X, Y: Integer; R, G, B, A: byte); |
procedure turboSetPixelAlpha24RGB(const X, Y: Integer; R, G, B, A: byte); |
function Conv15to24(Color: Word): Integer; register; |
function Conv16to24(Color: Word): Integer; register; |
function Conv24to15(Color: Integer): Word; register; |
function Conv24to16(Color: Integer): Word; register; |
// *** graphic primitives *** |
procedure turboLine16(x1, y1, x2, y2: Integer; R, G, B: byte); |
procedure turboLine24(x1, y1, x2, y2: Integer; R, G, B: byte); |
procedure turboWuLine16(x1, y1, x2, y2: Integer; R, G, B: byte); |
procedure turboWuLine24(x1, y1, x2, y2: Integer; R, G, B: byte); |
procedure turboWrite(DxDrawSurface: TDirectDrawSurface; Imagelist: TDXImageList; font, text: string; x, y: integer); |
procedure turboWriteD(DxDrawSurface: TDirectDrawSurface; Imagelist: TDXImageList; font, text: string; x, y: integer); |
implementation |
var |
LockedSurface: {$IFDEF D3D_deprecated}IDirectDrawSurface4{$ELSE}IDirectDrawSurface7{$ENDIF}; |
LockedSurfaceDesc: TDDSurfaceDesc2; |
LockedRect: TRect; |
bitfix: cardinal; // for 555 or 565 |
xmax, ymax: integer; // clipping |
function turboLock(DxDrawSurface: TDirectDrawSurface): Boolean; |
begin |
LockedSurface := DxDrawSurface.{$IFDEF D3D_deprecated}ISurface4{$ELSE}ISurface7{$ENDIF}; |
LockedSurfaceDesc.dwSize := SizeOf(TDDSurfaceDesc); |
LockedRect := Rect(0, 0, LockedSurfaceDesc.dwWidth, |
LockedSurfaceDesc.dwHeight); |
if LockedSurface.Lock(@LockedRect, // do the lock |
LockedSurfaceDesc, |
DDLOCK_SURFACEMEMORYPTR + DDLOCK_WAIT, |
0) <> DD_OK |
then Result := False |
else Result := True; |
xmax := DxDrawSurface.Width - 1; // Max X clip |
ymax := DxDrawSurface.Height - 1; // Max Y clip |
if LockedSurfaceDesc.ddpfPixelFormat.dwGBitMask = 2016 // if there are 6 bits |
then bitfix := 0 else bitfix := 1; // of GREEN were looking at 565 |
end; |
procedure turboUnlock; |
begin |
LockedSurface.Unlock(@LockedRect); |
LockedSurface := nil; // free locked surface |
end; |
procedure turboSetPixel8(const X, Y: Integer; color: byte); |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
pbyte(integer(LockedSurfaceDesc.lpsurface) + // surface pointer |
y * LockedSurfaceDesc.lpitch + x)^ := color; // offset for 1 byte pixel |
end; |
procedure turboSetPixel8A(const X, Y: Integer; color: Integer); assembler; |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
asm |
push ebx // ASM put routines by JerK (jdelauney@free.fr) |
push esi // Don't seem much faster |
push edi |
mov esi,LockedSurfaceDesc.lpSurface |
mov eax,[LockedSurfaceDesc.lpitch] |
mul [Y] |
add esi,eax |
mov ebx,[X] |
add esi,ebx |
mov ebx,[Color] |
mov ds:[esi],ebx |
pop edi |
pop esi |
pop ebx |
end; |
end; |
procedure turboSetPixel16RGB(const X, Y: Integer; R, G, B: byte); |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
pword(integer(LockedSurfaceDesc.lpsurface) + // surface pointer |
y * LockedSurfaceDesc.lpitch + x * 2)^ := // offset for *2* byte pixel |
((R shr 3) shl (11 - bitfix)) or // r value shifted |
((G shr (2 + bitfix)) shl 5) or // g value shifted |
(B shr 3); // add blue |
end; |
procedure turboSetPixel24RGB(const X, Y: Integer; R, G, B: byte); |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
pdword(integer(LockedSurfaceDesc.lpsurface) + // surface pointer |
y * LockedSurfaceDesc.lpitch + x * 3)^ := |
(r shl 16) or (g shl 8) or b; // Could use RGB(r,g,b) |
end; |
procedure turboSetPixel16(const X, Y: integer; color: cardinal); |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
if bitfix = 0 then |
pword(integer(LockedSurfaceDesc.lpsurface) + // surface pointer |
y * LockedSurfaceDesc.lpitch + x * 2)^ := // offset for *2* byte pixel |
Conv24to16(color) |
else |
pword(integer(LockedSurfaceDesc.lpsurface) + // surface pointer |
y * LockedSurfaceDesc.lpitch + x * 2)^ := // offset for *2* byte pixel |
Conv24to15(color); |
// ((R16(color) shr 3) shl (11 - bitfix)) or // r value shifted |
// ((G16(color) shr (2 + bitfix)) shl 5) or // g value shifted |
// (B16(color) shr 3); // add blue |
end; |
procedure turboSetPixel16A(X, Y: Integer; Color: cardinal); assembler; |
var |
convertedcolor: integer; |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
if bitfix = 0 then |
convertedcolor := Conv24to16(color) |
else |
convertedcolor := Conv24to15(color); |
asm |
push ebx // ASM put routines by JerK (jdelauney@free.fr) |
push esi |
push edi |
mov esi,LockedSurfaceDesc.lpSurface |
mov eax,[LockedSurfaceDesc.lpitch] |
mul [Y] |
add esi,eax |
mov ebx,[X] |
shl ebx,1 |
add esi,ebx |
mov ebx,[convertedcolor] |
mov ds:[esi],ebx |
pop edi |
pop esi |
pop ebx |
end; |
end; |
procedure turboSetPixel24(const X, Y: Integer; color: cardinal); |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
pdword(integer(LockedSurfaceDesc.lpsurface) + // surface pointer |
y * LockedSurfaceDesc.lpitch + x * 3)^ := |
color; |
end; |
procedure turboSetPixel24A(X, Y: Integer; Color: cardinal); assembler; |
begin |
asm |
push ebx // ASM put routines by JerK (jdelauney@free.fr) |
push esi |
push edi |
mov esi,LockedSurfaceDesc.lpSurface |
mov eax,[LockedSurfaceDesc.lpitch] |
mul [Y] |
add esi,eax |
mov ebx,[X] |
imul ebx,3 |
add esi,ebx |
mov ebx,[Color] |
mov ds:[esi],ebx |
pop edi |
pop esi |
pop ebx |
end; |
end; |
function turboGetPixel8(const X, Y: Integer): byte; |
begin |
result := 0; |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
result := pbyte(integer(LockedSurfaceDesc.lpsurface) + // surface pointer |
y * LockedSurfaceDesc.lpitch + x)^; // offset for 1 byte pixel |
end; |
function turboGetPixel16(const x, y: Integer): cardinal; |
begin |
result := 0; |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
result := pword(integer(LockedSurfaceDesc.lpsurface) + // surface pointer |
y * LockedSurfaceDesc.lpitch + x * 2)^; |
end; |
function r16(color: cardinal): byte; |
begin; |
result := (color shr (11 - bitfix)) shl 3; |
end; |
function g16(color: cardinal): byte; |
begin; |
if bitfix = 0 then |
result := ((color and 2016) shr 5) shl 2 |
else |
result := ((color and 992) shr 5) shl 3; |
end; |
function b16(color: cardinal): byte; |
begin; |
result := (color and 31) shl 3; |
end; |
function turboGetPixel24(const x, y: Integer): dword; |
begin |
result := 0; |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
result := pdword(integer(LockedSurfaceDesc.lpsurface) + // surface pointer |
y * LockedSurfaceDesc.lpitch + x * 3)^; |
end; |
function r24(color: cardinal): byte; |
begin; |
result := (color shr 16) and 255; // or GetRValue(color); |
end; |
function g24(color: cardinal): byte; |
begin; |
result := (color shr 8) and 255; // or GetGValue(color); |
end; |
function b24(color: cardinal): byte; |
begin; |
// Some video boards may return a blue value in the first byte |
// i.e. result := color and 255; |
result := (color shr 24) and 255; // or GetBValue(color); |
end; |
procedure turboSetPixelAlpha16RGB(const X, Y: Integer; R, G, B, A: byte); |
var color: integer; |
begin |
// This function could use a lot of speed work, but it's faster than |
// alpha blending Canvas.Pixels ;) but Hori's FillRectAdd is faster |
// for large areas |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
color := turboGetPixel16(x, y); // get "color" |
turboSetPixel16RGB(X, Y, // set new pixel |
(A * (R - r16(color)) shr 8) + r16(color), // R alpha |
(A * (G - g16(color)) shr 8) + g16(color), // G alpha |
(A * (B - b16(color)) shr 8) + b16(color)); // B alpha |
end; |
procedure turboSetPixelAlpha24RGB(const X, Y: Integer; R, G, B, A: byte); |
var color: dword; |
begin |
// This function could use a lot of speed work, but it's faster than |
// alpha blending Canvas.Pixels ;) but Hori's FillRectAdd is faster |
// for large areas |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
color := turboGetPixel24(x, y); // get "color" |
turboSetPixel24RGB(X, Y, // set new pixel |
(A * (R - r24(color)) shr 8) + r24(color), // R alpha |
(A * (G - g24(color)) shr 8) + g24(color), // G alpha |
(A * (B - b24(color)) shr 8) + b24(color)); // B alpha |
end; |
procedure turboSetPixelAlpha16(const X, Y: Integer; color: cardinal; A: byte); |
var oldcolor: integer; |
begin |
// This function could use a lot of speed work, but it's faster than |
// alpha blending Canvas.Pixels ;) but Hori's FillRectAdd is faster |
// for large areas |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
oldcolor := turboGetPixel16(x, y); // get old color |
turboSetPixel16RGB(X, Y, // set new pixel |
(A * (r16(color) - r16(oldcolor)) shr 8) + r16(oldcolor), // R alpha |
(A * (g16(color) - g16(oldcolor)) shr 8) + g16(oldcolor), // G alpha |
(A * (b16(color) - b16(oldcolor)) shr 8) + b16(oldcolor)); // B alpha |
end; |
procedure turboSetPixelAlpha24(const X, Y: Integer; color: cardinal; A: byte); |
var oldcolor: dword; |
begin |
// This function could use a lot of speed work, but it's faster than |
// alpha blending Canvas.Pixels ;) but Hori's FillRectAdd is faster |
// for large areas |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
oldcolor := turboGetPixel24(x, y); // get "color" |
turboSetPixel24RGB(X, Y, // set new pixel |
(A * (r24(color) - r24(oldcolor)) shr 8) + r24(oldcolor), // R alpha |
(A * (g24(color) - g24(oldcolor)) shr 8) + g24(oldcolor), // G alpha |
(A * (b24(color) - b24(oldcolor)) shr 8) + b24(oldcolor)); // B alpha |
end; |
// *** ASM pixel routines straight from PixelCore by Henri Hakl aka A-Lore *** |
// *** Surface clipping added by Michael Wilson 09/07/2000 |
procedure turboSetPixel8PC(x, y, color: integer); |
{ on entry: x = eax, y = edx, color = ecx } |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
asm |
push esi // must maintain esi |
mov esi,LockedSurfaceDesc.lpSurface // set to surface |
add esi,eax // add x |
mov eax,[LockedSurfaceDesc.lpitch] // eax = pitch |
mul edx // eax = pitch * y |
add esi,eax // esi = pixel offset |
mov ds:[esi],cl // set pixel (lo byte of ecx) |
pop esi // restore esi |
ret // return |
end; |
end; |
procedure turboSetPixel16PC(x, y, color: integer); |
{ on entry: x = eax, y = edx, color = ecx } |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
asm |
push esi |
mov esi,LockedSurfaceDesc.lpSurface |
shl eax,1 |
add esi,eax // description similar to PutPixel8 |
mov eax,[LockedSurfaceDesc.lpitch] |
mul edx |
add esi,eax |
mov ds:[esi],cx |
pop esi |
ret |
end; |
end; |
procedure turboSetPixel24PC(x, y, color: integer); |
{ on entry: x = eax, y = edx, color = ecx } |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
asm |
push esi |
mov esi,LockedSurfaceDesc.lpSurface |
imul eax,3 |
add esi,eax // description similar to PutPixel8 |
mov eax,[LockedSurfaceDesc.lpitch] |
mul edx |
add esi,eax |
mov eax,ds:[esi] // the idea is to get the current pixel |
and eax,$ff000000 // and the top 8 bits of next pixel (red component) |
or ecx,eax // then bitwise OR that component to the current color |
mov ds:[esi+1],ecx // to ensure the prior bitmap isn't incorrectly manipulated |
pop esi // can't test if it works... so hope and pray |
ret |
end; |
end; |
procedure turboSetPixel32PC(x, y, color: integer); |
{ on entry: x = eax, y = edx, color = ecx } |
begin |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
asm |
push esi |
mov esi,LockedSurfaceDesc.lpSurface |
shl eax,2 |
add esi,eax // description similar to PutPixel8 |
mov eax,[LockedSurfaceDesc.lpitch] |
mul edx |
add esi,eax |
mov ds:[esi],ecx |
pop esi |
ret |
end; |
end; |
function turboGetPixel8PC(x, y: integer): integer; |
{ on entry: x = eax, y = edx } |
begin |
Result := -1; |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
asm |
push esi // myst maintain esi |
mov esi,LockedSurfaceDesc.lpSurface // set to surface |
add esi,eax // add x |
mov eax,[LockedSurfaceDesc.lpitch] // eax = pitch |
mul edx // eax = pitch * y |
add esi,eax // esi = pixel offset |
mov eax,ds:[esi] // eax = color |
and eax,$ff // map into 8bit |
pop esi // restore esi |
ret // return |
end; |
end; |
function turboGetPixel16PC(x, y: integer): integer; |
{ on entry: x = eax, y = edx } |
begin |
Result := -1; |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
asm |
push esi |
mov esi,LockedSurfaceDesc.lpSurface |
shl eax,1 |
add esi,eax // description similar to GetPixel8 |
mov eax,[LockedSurfaceDesc.lpitch] |
mul edx |
add esi,eax |
mov eax,ds:[esi] |
and eax,$ffff // map into 16bit |
pop esi |
ret |
end; |
end; |
function turboGetPixel24PC(x, y: integer): integer; |
{ on entry: x = eax, y = edx } |
begin |
Result := -1; |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
asm |
push esi |
mov esi,LockedSurfaceDesc.lpSurface |
imul eax,3 |
add esi,ebx // description similar to GetPixel8 |
mov eax,[LockedSurfaceDesc.lpitch] |
mul edx |
add esi,eax |
mov eax,ds:[esi] |
and eax,$ffffff // map into 24bit |
pop esi |
ret |
end; |
end; |
function turboGetPixel32PC(x, y: integer): integer; |
{ on entry: x = eax, y = edx } |
begin |
Result := -1; |
if (X < 0) or (X > xmax) or // Clip to DelphiX Surface |
(Y < 0) or (Y > ymax) then Exit; |
asm |
push esi |
mov esi,LockedSurfaceDesc.lpSurface |
shl eax,2 |
add esi,eax // description similar to GetPixel8 |
mov eax,[LockedSurfaceDesc.lpitch] |
mul edx |
add esi,eax |
mov eax,ds:[esi] |
pop esi |
ret |
end; |
end; |
// *** end of Pixel Core routines |
procedure turboLine16(x1, y1, x2, y2: Integer; R, G, B: byte); |
var |
i, deltax, deltay, numpixels, |
d, dinc1, dinc2, x, xinc1, xinc2, |
y, yinc1, yinc2: integer; |
begin |
deltax := abs(x2 - x1); // Calculate deltax and deltay for initialisation |
deltay := abs(y2 - y1); |
if deltax >= deltay then // Initialize all vars based on which is the independent variable |
begin |
numpixels := deltax + 1; // x is independent variable |
d := (2 * deltay) - deltax; |
dinc1 := deltay shl 1; |
dinc2 := (deltay - deltax) shl 1; |
xinc1 := 1; |
xinc2 := 1; |
yinc1 := 0; |
yinc2 := 1; |
end |
else |
begin |
numpixels := deltay + 1; // y is independent variable |
d := (2 * deltax) - deltay; |
dinc1 := deltax shl 1; |
dinc2 := (deltax - deltay) shl 1; |
xinc1 := 0; |
xinc2 := 1; |
yinc1 := 1; |
yinc2 := 1; |
end; |
if x1 > x2 then // Make sure x and y move in the right directions |
begin |
xinc1 := -xinc1; |
xinc2 := -xinc2; |
end; |
if y1 > y2 then |
begin |
yinc1 := -yinc1; |
yinc2 := -yinc2; |
end; |
x := x1; // Start drawing at <x1, y1> |
y := y1; |
for i := 1 to numpixels do // Draw the pixels |
begin |
turboSetPixel16RGB(X, Y, R, G, B); |
if d < 0 then |
begin |
d := d + dinc1; |
x := x + xinc1; |
y := y + yinc1; |
end |
else |
begin |
d := d + dinc2; |
x := x + xinc2; |
y := y + yinc2; |
end; |
end; |
end; |
procedure turboLine24(x1, y1, x2, y2: Integer; R, G, B: byte); |
var |
i, deltax, deltay, numpixels, |
d, dinc1, dinc2, x, xinc1, xinc2, |
y, yinc1, yinc2: integer; |
begin |
deltax := abs(x2 - x1); // Calculate deltax and deltay for initialisation |
deltay := abs(y2 - y1); |
if deltax >= deltay then // Initialize all vars based on which is the independent variable |
begin |
numpixels := deltax + 1; // x is independent variable |
d := (2 * deltay) - deltax; |
dinc1 := deltay shl 1; |
dinc2 := (deltay - deltax) shl 1; |
xinc1 := 1; |
xinc2 := 1; |
yinc1 := 0; |
yinc2 := 1; |
end |
else |
begin |
numpixels := deltay + 1; // y is independent variable |
d := (2 * deltax) - deltay; |
dinc1 := deltax shl 1; |
dinc2 := (deltax - deltay) shl 1; |
xinc1 := 0; |
xinc2 := 1; |
yinc1 := 1; |
yinc2 := 1; |
end; |
if x1 > x2 then // Make sure x and y move in the right directions |
begin |
xinc1 := -xinc1; |
xinc2 := -xinc2; |
end; |
if y1 > y2 then |
begin |
yinc1 := -yinc1; |
yinc2 := -yinc2; |
end; |
x := x1; // Start drawing at <x1, y1> |
y := y1; |
for i := 1 to numpixels do // Draw the pixels |
begin |
turboSetPixel24RGB(X, Y, R, G, B); |
if d < 0 then |
begin |
d := d + dinc1; |
x := x + xinc1; |
y := y + yinc1; |
end |
else |
begin |
d := d + dinc2; |
x := x + xinc2; |
y := y + yinc2; |
end; |
end; |
end; |
procedure turboWuLine16(x1, y1, x2, y2: Integer; R, G, B: byte); |
var |
deltax, deltay, loop, start, finish: integer; |
dx, dy, dydx: single; // fractional parts |
begin |
deltax := abs(x2 - x1); // Calculate deltax and deltay for initialisation |
deltay := abs(y2 - y1); |
if (deltax = 0) or (deltay = 0) then begin // straight lines |
turboLine16(x1, y1, x2, y2, R, G, B); |
exit; |
end; |
if deltax > deltay then // horizontal or verticle |
begin |
if y2 > y1 then // determine rise and run |
dydx := -(deltay / deltax) |
else |
dydx := deltay / deltax; |
if x2 < x1 then |
begin |
start := x2; // right to left |
finish := x1; |
dy := y2; |
end |
else |
begin |
start := x1; // left to right |
finish := x2; |
dy := y1; |
dydx := -dydx; // inverse slope |
end; |
for loop := start to finish do begin |
turboSetPixelAlpha16RGB(loop, trunc(dy), R, G, B, |
trunc((1 - frac(dy)) * 255)); // plot main point |
turboSetPixelAlpha16RGB(loop, trunc(dy) + 1, R, G, B, |
trunc(frac(dy) * 255)); // plot fractional difference |
dy := dy + dydx; // next point |
end; |
end |
else |
begin |
if x2 > x1 then // determine rise and run |
dydx := -(deltax / deltay) |
else |
dydx := deltax / deltay; |
if y2 < y1 then |
begin |
start := y2; // right to left |
finish := y1; |
dx := x2; |
end |
else |
begin |
start := y1; // left to right |
finish := y2; |
dx := x1; |
dydx := -dydx; // inverse slope |
end; |
for loop := start to finish do begin |
turboSetPixelAlpha16RGB(trunc(dx), loop, R, G, B, |
trunc((1 - frac(dx)) * 255)); // plot main point |
turboSetPixelAlpha16RGB(trunc(dx) + 1, loop, R, G, B, |
trunc(frac(dx) * 255)); // plot fractional difference |
dx := dx + dydx; // next point |
end; |
end; |
end; |
procedure turboWuLine24(x1, y1, x2, y2: Integer; R, G, B: byte); |
var |
deltax, deltay, loop, start, finish: integer; |
dx, dy, dydx: single; // fractional parts |
begin |
deltax := abs(x2 - x1); // Calculate deltax and deltay for initialisation |
deltay := abs(y2 - y1); |
if (deltax = 0) or (deltay = 0) then begin // straight lines |
turboLine24(x1, y1, x2, y2, R, G, B); |
exit; |
end; |
if deltax > deltay then // horizontal or verticle |
begin |
if y2 > y1 then // determine rise and run |
dydx := -(deltay / deltax) |
else |
dydx := deltay / deltax; |
if x2 < x1 then |
begin |
start := x2; // right to left |
finish := x1; |
dy := y2; |
end |
else |
begin |
start := x1; // left to right |
finish := x2; |
dy := y1; |
dydx := -dydx; // inverse slope |
end; |
for loop := start to finish do begin |
turboSetPixelAlpha24RGB(loop, trunc(dy), R, G, B, |
trunc((1 - frac(dy)) * 255)); // plot main point |
turboSetPixelAlpha24RGB(loop, trunc(dy) + 1, R, G, B, |
trunc(frac(dy) * 255)); // plot fractional difference |
dy := dy + dydx; // next point |
end; |
end |
else |
begin |
if x2 > x1 then // determine rise and run |
dydx := -(deltax / deltay) |
else |
dydx := deltax / deltay; |
if y2 < y1 then |
begin |
start := y2; // right to left |
finish := y1; |
dx := x2; |
end |
else |
begin |
start := y1; // left to right |
finish := y2; |
dx := x1; |
dydx := -dydx; // inverse slope |
end; |
for loop := start to finish do begin |
turboSetPixelAlpha24RGB(trunc(dx), loop, R, G, B, |
trunc((1 - frac(dx)) * 255)); // plot main point |
turboSetPixelAlpha24RGB(trunc(dx) + 1, loop, R, G, B, |
trunc(frac(dx) * 255)); // plot fractional difference |
dx := dx + dydx; // next point |
end; |
end; |
end; |
// *** ASM conversion routines by LifePower *** |
function Conv15to24(Color: Word): Integer; register; |
asm |
xor edx,edx // not used in LIB |
mov dx,ax // ASM code by LifePower |
mov eax,edx |
shl eax,27 |
shr eax,8 |
mov ecx,edx |
shr ecx,5 |
shl ecx,27 |
shr ecx,16 |
or eax,ecx |
mov ecx,edx |
shr ecx,10 |
shl ecx,27 |
shr ecx,24 |
or eax,ecx |
end; |
function Conv16to24(Color: Word): Integer; register; |
asm |
xor edx,edx // not used in LIB |
mov dx,ax // ASM code by LifePower |
mov eax,edx |
shl eax,27 |
shr eax,8 |
mov ecx,edx |
shr ecx,5 |
shl ecx,26 |
shr ecx,16 |
or eax,ecx |
mov ecx,edx |
shr ecx,11 |
shl ecx,27 |
shr ecx,24 |
or eax,ecx |
end; |
function Conv24to15(Color: Integer): Word; register; |
asm |
mov ecx,eax // ASM code by LifePower |
shl eax,24 |
shr eax,27 |
shl eax,10 |
mov edx,ecx |
shl edx,16 |
shr edx,27 |
shl edx,5 |
or eax,edx |
mov edx,ecx |
shl edx,8 |
shr edx,27 |
or eax,edx |
end; |
function Conv24to16(Color: Integer): Word; register; |
asm |
mov ecx,eax // ASM code by LifePower |
shl eax,24 |
shr eax,27 |
shl eax,11 |
mov edx,ecx |
shl edx,16 |
shr edx,26 |
shl edx,5 |
or eax,edx |
mov edx,ecx |
shl edx,8 |
shr edx,27 |
or eax,edx |
end; |
procedure turboWrite(DxDrawSurface: TDirectDrawSurface; Imagelist: TDXImageList; font, text: string; x, y: integer); |
var |
loop, line, letter, offset, i: integer; |
begin |
i := Imagelist.items.IndexOf(font); // find font once |
offset := Imagelist.items[i].patternwidth; |
line := 1; |
for loop := 1 to Length(text) do |
begin { each letter } |
if text[loop] = '|' then // fake a <P> |
begin |
inc(y, Imagelist.items[i].patternheight + 1); |
line := 1; |
end |
else begin |
letter := pos(uppercase(text[loop]), alphabet) - 1; |
if letter < 0 then letter := 30; |
Imagelist.items[i].draw(DxDrawSurface, x + (offset * line), y, letter); |
inc(line); |
end; |
end; { loop } |
end; { graphics write } |
procedure turboWriteD(DxDrawSurface: TDirectDrawSurface; Imagelist: TDXImageList; font, text: string; x, y: integer); |
var |
loop, line, letter, offset, i: integer; |
begin |
i := Imagelist.items.IndexOf(font); // find font once |
offset := Imagelist.items[i].patternwidth; |
line := 1; |
for loop := 1 to Length(text) do |
begin { each letter } |
if text[loop] = '|' then // fake a <P> |
begin |
inc(y, Imagelist.items[i].patternheight + 1); |
line := 1; |
end |
else begin |
letter := pos(uppercase(text[loop]), numbers) - 1; |
if letter < 0 then letter := 30; |
Imagelist.items[i].draw(DxDrawSurface, x + (offset * line), y, letter); |
inc(line); |
end; |
end; { loop } |
end; { graphics write digits } |
end. |
/VCL_DELPHIX_D6 |
---|
Property changes: |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
/LevOptions.pas |
---|
15,15 → 15,15 |
Panel1: TPanel; |
ElLabel1: TLabel; |
ElLabel2: TLabel; |
GroesseEdt: TEdit; |
Groesse: TUpDown; |
Groesse: TSpinEdit; |
Label2: TLabel; |
Label3: TLabel; |
LevName: TEdit; |
LevAuthor: TEdit; |
procedure ElPopupButton1Click(Sender: TObject); |
procedure ElPopupButton2Click(Sender: TObject); |
procedure FormHide(Sender: TObject); |
procedure FormShow(Sender: TObject); |
procedure GroesseClick(Sender: TObject; Button: TUDBtnType); |
procedure GroesseEdtKeyPress(Sender: TObject; var Key: Char); |
procedure GroesseEdtChange(Sender: TObject); |
public |
procedure Aktualisieren; |
end; |
39,12 → 39,16 |
procedure TLevelForm.Aktualisieren; |
begin |
Groesse.Position := MainForm.ScrollBar.Max; |
Groesse.Value := MainForm.ScrollBar.Max; |
LevName.Text := MainForm.LevData.LevelName; |
LevAuthor.Text := MainForm.LevData.LevelAuthor; |
end; |
procedure TLevelForm.ElPopupButton1Click(Sender: TObject); |
begin |
MainForm.ScrollBar.Max := Groesse.Position; |
MainForm.ScrollBar.Max := Groesse.Value; |
MainForm.LevData.LevelName := LevName.Text; |
MainForm.LevData.LevelAuthor := LevAuthor.Text; |
MainForm.AnzeigeAct; |
close; |
end; |
64,20 → 68,4 |
mainform.dxtimer.enabled := false; |
end; |
procedure TLevelForm.GroesseClick(Sender: TObject; Button: TUDBtnType); |
begin |
groesseedt.Text := inttostr(groesse.position); |
end; |
procedure TLevelForm.GroesseEdtKeyPress(Sender: TObject; var Key: Char); |
begin |
if not (Key in [#13, #08, '0'..'9']) then |
Key := #0; |
end; |
procedure TLevelForm.GroesseEdtChange(Sender: TObject); |
begin |
groesse.Position := strtoint(groesseedt.text); |
end; |
end. |
/AuthentiCode Sign/sign_single.bat |
---|
0,0 → 1,25 |
@echo off |
if "%~1"=="" goto :done |
echo Sign %1 ... |
>NUL 2>&1 "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\signtool.exe" verify /pa %1 && ( |
echo File %1 is already signed, skipping |
exit /b 0 |
) || ( |
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\signtool.exe" sign /a /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 /fd SHA256 /n "HickelSOFT" /v %1 |
>NUL 2>&1 "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\signtool.exe" verify /pa %1 && ( |
echo File %1 is sucessfully signed! |
exit /b 0 |
) || ( |
echo ERROR while signing file %1 ! |
echo. |
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\signtool.exe" sign /a /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 /fd SHA256 /n "HickelSOFT" /v %1 |
echo. |
pause. |
exit /b 1 |
) |
) |
:done |
/LICENSE |
---|
0,0 → 1,202 |
Apache License |
Version 2.0, January 2004 |
http://www.apache.org/licenses/ |
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
1. Definitions. |
"License" shall mean the terms and conditions for use, reproduction, |
and distribution as defined by Sections 1 through 9 of this document. |
"Licensor" shall mean the copyright owner or entity authorized by |
the copyright owner that is granting the License. |
"Legal Entity" shall mean the union of the acting entity and all |
other entities that control, are controlled by, or are under common |
control with that entity. For the purposes of this definition, |
"control" means (i) the power, direct or indirect, to cause the |
direction or management of such entity, whether by contract or |
otherwise, or (ii) ownership of fifty percent (50%) or more of the |
outstanding shares, or (iii) beneficial ownership of such entity. |
"You" (or "Your") shall mean an individual or Legal Entity |
exercising permissions granted by this License. |
"Source" form shall mean the preferred form for making modifications, |
including but not limited to software source code, documentation |
source, and configuration files. |
"Object" form shall mean any form resulting from mechanical |
transformation or translation of a Source form, including but |
not limited to compiled object code, generated documentation, |
and conversions to other media types. |
"Work" shall mean the work of authorship, whether in Source or |
Object form, made available under the License, as indicated by a |
copyright notice that is included in or attached to the work |
(an example is provided in the Appendix below). |
"Derivative Works" shall mean any work, whether in Source or Object |
form, that is based on (or derived from) the Work and for which the |
editorial revisions, annotations, elaborations, or other modifications |
represent, as a whole, an original work of authorship. For the purposes |
of this License, Derivative Works shall not include works that remain |
separable from, or merely link (or bind by name) to the interfaces of, |
the Work and Derivative Works thereof. |
"Contribution" shall mean any work of authorship, including |
the original version of the Work and any modifications or additions |
to that Work or Derivative Works thereof, that is intentionally |
submitted to Licensor for inclusion in the Work by the copyright owner |
or by an individual or Legal Entity authorized to submit on behalf of |
the copyright owner. For the purposes of this definition, "submitted" |
means any form of electronic, verbal, or written communication sent |
to the Licensor or its representatives, including but not limited to |
communication on electronic mailing lists, source code control systems, |
and issue tracking systems that are managed by, or on behalf of, the |
Licensor for the purpose of discussing and improving the Work, but |
excluding communication that is conspicuously marked or otherwise |
designated in writing by the copyright owner as "Not a Contribution." |
"Contributor" shall mean Licensor and any individual or Legal Entity |
on behalf of whom a Contribution has been received by Licensor and |
subsequently incorporated within the Work. |
2. Grant of Copyright License. Subject to the terms and conditions of |
this License, each Contributor hereby grants to You a perpetual, |
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
copyright license to reproduce, prepare Derivative Works of, |
publicly display, publicly perform, sublicense, and distribute the |
Work and such Derivative Works in Source or Object form. |
3. Grant of Patent License. Subject to the terms and conditions of |
this License, each Contributor hereby grants to You a perpetual, |
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
(except as stated in this section) patent license to make, have made, |
use, offer to sell, sell, import, and otherwise transfer the Work, |
where such license applies only to those patent claims licensable |
by such Contributor that are necessarily infringed by their |
Contribution(s) alone or by combination of their Contribution(s) |
with the Work to which such Contribution(s) was submitted. If You |
institute patent litigation against any entity (including a |
cross-claim or counterclaim in a lawsuit) alleging that the Work |
or a Contribution incorporated within the Work constitutes direct |
or contributory patent infringement, then any patent licenses |
granted to You under this License for that Work shall terminate |
as of the date such litigation is filed. |
4. Redistribution. You may reproduce and distribute copies of the |
Work or Derivative Works thereof in any medium, with or without |
modifications, and in Source or Object form, provided that You |
meet the following conditions: |
(a) You must give any other recipients of the Work or |
Derivative Works a copy of this License; and |
(b) You must cause any modified files to carry prominent notices |
stating that You changed the files; and |
(c) You must retain, in the Source form of any Derivative Works |
that You distribute, all copyright, patent, trademark, and |
attribution notices from the Source form of the Work, |
excluding those notices that do not pertain to any part of |
the Derivative Works; and |
(d) If the Work includes a "NOTICE" text file as part of its |
distribution, then any Derivative Works that You distribute must |
include a readable copy of the attribution notices contained |
within such NOTICE file, excluding those notices that do not |
pertain to any part of the Derivative Works, in at least one |
of the following places: within a NOTICE text file distributed |
as part of the Derivative Works; within the Source form or |
documentation, if provided along with the Derivative Works; or, |
within a display generated by the Derivative Works, if and |
wherever such third-party notices normally appear. The contents |
of the NOTICE file are for informational purposes only and |
do not modify the License. You may add Your own attribution |
notices within Derivative Works that You distribute, alongside |
or as an addendum to the NOTICE text from the Work, provided |
that such additional attribution notices cannot be construed |
as modifying the License. |
You may add Your own copyright statement to Your modifications and |
may provide additional or different license terms and conditions |
for use, reproduction, or distribution of Your modifications, or |
for any such Derivative Works as a whole, provided Your use, |
reproduction, and distribution of the Work otherwise complies with |
the conditions stated in this License. |
5. Submission of Contributions. Unless You explicitly state otherwise, |
any Contribution intentionally submitted for inclusion in the Work |
by You to the Licensor shall be under the terms and conditions of |
this License, without any additional terms or conditions. |
Notwithstanding the above, nothing herein shall supersede or modify |
the terms of any separate license agreement you may have executed |
with Licensor regarding such Contributions. |
6. Trademarks. This License does not grant permission to use the trade |
names, trademarks, service marks, or product names of the Licensor, |
except as required for reasonable and customary use in describing the |
origin of the Work and reproducing the content of the NOTICE file. |
7. Disclaimer of Warranty. Unless required by applicable law or |
agreed to in writing, Licensor provides the Work (and each |
Contributor provides its Contributions) on an "AS IS" BASIS, |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
implied, including, without limitation, any warranties or conditions |
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
PARTICULAR PURPOSE. You are solely responsible for determining the |
appropriateness of using or redistributing the Work and assume any |
risks associated with Your exercise of permissions under this License. |
8. Limitation of Liability. In no event and under no legal theory, |
whether in tort (including negligence), contract, or otherwise, |
unless required by applicable law (such as deliberate and grossly |
negligent acts) or agreed to in writing, shall any Contributor be |
liable to You for damages, including any direct, indirect, special, |
incidental, or consequential damages of any character arising as a |
result of this License or out of the use or inability to use the |
Work (including but not limited to damages for loss of goodwill, |
work stoppage, computer failure or malfunction, or any and all |
other commercial damages or losses), even if such Contributor |
has been advised of the possibility of such damages. |
9. Accepting Warranty or Additional Liability. While redistributing |
the Work or Derivative Works thereof, You may choose to offer, |
and charge a fee for, acceptance of support, warranty, indemnity, |
or other liability obligations and/or rights consistent with this |
License. However, in accepting such obligations, You may act only |
on Your own behalf and on Your sole responsibility, not on behalf |
of any other Contributor, and only if You agree to indemnify, |
defend, and hold each Contributor harmless for any liability |
incurred by, or claims asserted against, such Contributor by reason |
of your accepting any such warranty or additional liability. |
END OF TERMS AND CONDITIONS |
APPENDIX: How to apply the Apache License to your work. |
To apply the Apache License to your work, attach the following |
boilerplate notice, with the fields enclosed by brackets "[]" |
replaced with your own identifying information. (Don't include |
the brackets!) The text should be enclosed in the appropriate |
comment syntax for the file format. We also recommend that a |
file or class name and description of purpose be included on the |
same "printed page" as the copyright notice for easier |
identification within third-party archives. |
Copyright 2018 Daniel Marschall, ViaThinkSoft |
Licensed under the Apache License, Version 2.0 (the "License"); |
you may not use this file except in compliance with the License. |
You may obtain a copy of the License at |
http://www.apache.org/licenses/LICENSE-2.0 |
Unless required by applicable law or agreed to in writing, software |
distributed under the License is distributed on an "AS IS" BASIS, |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
See the License for the specific language governing permissions and |
limitations under the License. |
/LevEdit_Icon.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/SpaceMission_Icon.ico |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/. |
---|
Property changes: |
Added: svn:global-ignores |
+__recovery |
+*.otares |
Added: svn:ignore |
+*.local |
+*.dcu |
+*.~* |
+*.identcache |
+*.tvsconfig |
+__history |
+*.exe |
+TODO.bak |
+*.drc |
+*.ENU |